精华内容
下载资源
问答
  • 背包容量计算

    千次阅读 2013-05-17 19:41:37
    // 计算背包容量 // nBindType: 要计算的绑定类型 // (0=可容纳非绑定数量 1=可容纳绑定数量 2=最少可容纳混合的数量) // nFreeGrid: 空格数量 // nMaxPerGrid: 每个空格可容纳的数量 // nFreeBind: 可通过叠加容纳...


    // 计算背包容量
    // nBindType: 要计算的绑定类型
    //   (0=可容纳非绑定数量 1=可容纳绑定数量 2=最少可容纳混合的数量)
    // nFreeGrid: 空格数量
    // nMaxPerGrid: 每个空格可容纳的数量
    // nFreeBind: 可通过叠加容纳的数量(绑定)
    // nFreeNoBind: 可通过叠加容纳的数量(非绑定)
    int GetBagTotalFreeCount(int nBindType, int nFreeGrid,
    	int nMaxPerGrid, int nFreeBind, int nFreeNoBind)
    {
    	int nTotalFreeCount = nFreeGrid * nMaxPerGrid;
    	if(nBindType == 0)
    	{
    		// 不绑定的
    		nTotalFreeCount += nFreeNoBind;
    	}
    	else if(nBindType == 1)
    	{
    		// 绑定的
    		nTotalFreeCount += nFreeBind;
    	}
    	else
    	{
    		// 混合的
    		int nAddMax = max(nFreeBind, nFreeNoBind);
    		int nAddMin = min(nFreeBind, nFreeNoBind);
    		if(nTotalFreeCount == 0 || nAddMax >= nMaxPerGrid)
    		{
    			nTotalFreeCount += nAddMin;
    		}
    		else
    		{
    			// 极端情况下,一个空格只能放绑定或者非绑定中的1个
    			nTotalFreeCount -= (nMaxPerGrid-1);
    			nTotalFreeCount += (nFreeBind + nFreeNoBind);
    		}
    	}
    
    	return nTotalFreeCount;
    }
    





    展开全文
  • DDR地址容量计算与理解

    千次阅读 2019-04-30 16:28:21
    转 DDR地址和容量计算、Bank理解 DDR3为减少地址线,把地址线分为行地址线和列地址线,在硬件上是同一组地址线; 地址线和列地址线是分时复用的,即地址要分两次送出,先送出行地址,再送出列地址。 一般来说...

    DDR地址和容量计算、Bank理解

    DDR3为减少地址线,把地址线分为行地址线和列地址线,在硬件上是同一组地址线
    地址线和列地址线是分时复用的,即地址要分两次送出,先送出行地址,再送出列地址。

       一般来说列地址线是10位,及A0...A9;行地址线数量根据内存大小,BANK数目,数据线位宽等决定(感觉也应该是行地址决定其他) ;
    

      BANK

         bank是存储库的意思,也就是说,一块内存内部划分出了多个存储库,访问的时候指定存储库编号,就可以访问指定的存储库,内存中划分了多少个bank,要看地址线中有几位BA地址,如果有两位,说明有4个bank,如果有3位,说明有8个bank
      

        DDR3 容量计算

           下面这张图是芯片k4t1g164qf资料中截取的;以1Gb容量的DDR2颗粒为例(其他的类似);假设数据线位宽为16位,则看64Mb x 16这一列:
        

          bank地址线位宽为3,及bank数目为 2^3=8;

          行地址线位宽位13,及A0…A12;

          列地址线位宽为10,及A0…A9;

          有 2^3 * 2^13 * 2^10 = 2^26 =2^6Mb = 64Mb

          再加上数据线,则容量为 64Mb x 16 = 128M Byte = =1G bit

          这里写图片描述

          对于4Gb的16bit DDR3,

          bank address有三个bit,所以单个16bit DDR3内部有8个bank.
          表示行的有A0~A14,共15个bit,说明一个bank中有2^15个行。
          表示列的有A0~A9,共10个bit,说明一个bank中有2^10个行。
          来看看单块16bit DDR3容量:
          2^3*2^15*2^10=2^28=256M
          我们的内存是512M,到这儿怎么变成256M了?被骗了?
          呵呵,当然没有。
          忘了我们前面一直提到的16bit。
          16bit是2个byte对吧。
          访问一个地址,内存认为是访问16bit的数据,也就是两个字节的数据。
          256M个地址,也就是对应512M的数据了。

          再来看看两个16bit是如何组成一个32bit的。
          有一个概念一定要清楚,这儿所说的两个16bit组成一个32bit,指的是数据,与地址没有关系
          我开始这一块没搞清楚,一直认为是两个16bit的地址组成了一个32bit的地址。然后高位地址,地位地址,七七八八。。。
          之后没一点头绪。
          将16bit/32bit指的是数据宽度之后,就非常明了了。
          每一块16bit DDR3中有8个bank,2^15个row,2^10个column。也就是有256M个地址
          看前面的连线可知,两块16bit DDR3的BA0~BA2和D0~D14其实是并行连接到CPU。
          也就是说,CPU其实认为只有一块内存,访问的时候按照BA0~BA2和D0~D14给出地址。
          两块16bit DDR3都收到了该地址。
          它们是怎么响应的呢?
          两块内存都是16bit,它们收到地址之后,给出的反应是要么将给定地址上2个字节送到数据线上,要么是将数据线上的两个字节写入到指定的地址。
          再看数据线的连接,第一片的D0~D15连接到了CPU的D0~D15,第二片的D0~D15连接到了CPU的D16~D31。
          CPU认为自己访问的是一块32bit的内存,所以CPU每给出一个地址,将访问4个字节的数据,读取/写入
          这4字节数据对应到CPU的D0~D31,又分别被连接到两片内存的D0~D15,这样一个32bit就被拆成了两个16bit.
          反过来,也就是两个16bit组成了一个32bit.
          CPU访问的内存地址有256M个,每访问一个地址,将访问4个字节,这样CPU能访问的内存即为1GB。

          DDR3的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑 Bank(Logical Bank,下面简称Bank)。

          这里写图片描述
          DDR3内部Bank示意图,这是一个NXN的阵列,B代表Bank地址编号,C代表列地址编号,R代表行地址编号。
          如果寻址命令是B1、R2、C6,就能确定地址是图中红格的位置
          目前DDR3内存芯片基本上都是8个Bank设计,也就是说一共有8个这样的“表格”。

          寻址的流程也就是先指定Bank地址,再指定行地址,然后指列地址最终的确寻址单元。

          目前DDR3系统而言,还存在物理Bank的概念,这是对内存子系统的一个相关术语,并不针对内存芯片。内存为了保证CPU正常工作,必须一次传输完CPU 在一个传输周期内所需要的数据。
          而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。
          控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称为物理Bank(Physical Bank,有的资料称之为Rank)的位宽。目前这个位宽基本为64bit。

          在实际工作中,Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行激活”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),我们可以理解为行选通周期。tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,DDR3-800,tRCD=3,代表30ns的延迟。

          这里写图片描述

          接下来,相关的列地址被选中之后,将会触发数据传输,但从存储单元中输出到真正出现在内存芯片的 I/O 接口之间还需要一定的时间(数据触发本身就有延迟,而且还需要进行信号放大),这段时间就是非常著名的 CL(CAS Latency,列地址脉冲选通潜伏期)。CL 的数值与 tRCD 一样,以时钟周期数表示**。
          如 DDR3-800,时钟频率为 100MHz,时钟周期为 10ns,如果 CL=2 就意味着 20ns 的潜伏期。
          不过CL只是针对读取操作

          由于芯片体积的原因,存储单元中的电容容量很小,所以信号要经过放大来保证其有效的识别性,这个放大/驱动工作由S-AMP负责,一个存储体对应一个S- AMP通道。但它要有一个准备时间才能保证信号的发送强度(事前还要进行电压比较以进行逻辑电平的判断),因此从数据I/O总线上有数据输出之前的一个时钟上升沿开始,数据即已传向S-AMP,也就是说此时数据已经被触发,经过一定的驱动时间最终传向数据I/O总线进行输出,这段时间我们称之为 tAC(Access Time from CLK,时钟触发后的访问时间)。

          这里写图片描述

          目前内存的读写基本都是连续的,因为与CPU交换的数据量以一个Cache Line(即CPU内Cache的存储单位)的容量为准,一般为64字节。而现有的Rank位宽为8字节(64bit),那么就要一次连续传输8次,这就涉及到我们也经常能遇到的突发传输的概念。突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。

          在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。

          这里写图片描述

          突发连续读取模式:只要指定起始列地址与突发长度,后续的寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期(与BL相同)即可做到连续的突发传输。

          谈到了突发长度时。如果BL=4,那么也就是说一次就传送4×64bit的数据。但是,如果其中的第二笔数据是不需要的,怎么办?还都传输吗?
          为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。
          这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。
          DQM由北桥控制,为了精确屏蔽一个P-Bank位宽中的每个字节,每个DIMM有8个DQM 信号线,每个信号针对一个字节。这样,对于4bit位宽芯片,两个芯片共用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一个DQM信号,而对于 16bit位宽芯片,则需要两个DQM引脚。

          在数据读取完之后,为了腾出读出放大器以供同一Bank内其他行的寻址并传输数据,内存芯片将进行预充电的操作来关闭当前工作行。还是以上面那个Bank示意图为例。当前寻址的存储单元是B1、R2、C6。如果接下来的寻址命令是B1、R2、C4,则不用预充电,因为读出放大器正在为这一行服务。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必须要先把R2关闭,才能对R4寻址。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP(Row Precharge command Period,行预充电有效周期),单位也是时钟周期数。

          这里写图片描述

          在不同Bank间读写也是这样,先把原来数据写回,再激活新的Bank/Row。

          DQS 是DDR中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由北桥发来的DQS信号,读取时,则由芯片生成DQS向北桥发送。完全可以说,它就是数据的同步信号。
          在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是从CAS发出到DQS生成的间隔,DQS生成时,芯片内部的预取已经完毕了,由于预取的原因,实际的数据传出可能会提前于DQS发生(数据提前于DQS传出)。由于是并行传输,DDR内存对tAC也有一定的要求,对于DDR266,tAC的允许范围是±0.75ns,对于DDR333,则是±0.7ns,有关它们的时序图示见前文,其中CL里包含了一段DQS 的导入期。
          DQS 在读取时与数据同步传输,那么接收时也是以DQS的上下沿为准吗?不,如果以DQS的上下沿区分数据周期的危险很大。由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I/O端口的出现时间可能有快有慢,会与DQS有一定的间隔,这也就是为什么要有一个tAC规定的原因。而在接收方,一切必须保证同步接收,不能有tAC之类的偏差。这样在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步,在DQS上下沿时都处于保持周期中,此时数据接收触发的准确性无疑是最高的。

          这里写图片描述

          在写入时,以DQS的高/低电平期中部为数据周期分割点,而不是上/下沿,但数据的接收触发仍为DQS的上/下沿。

          展开全文
        • 存储器容量计算及相关概念

          千次阅读 2019-11-12 14:02:04
          存储器容量计算公式: 按位计算 (b) : 存储容量 = 存储单元个数 x 存储字长 按字节计算(B): 存储容量 = 存储单元个数 x 存储字长 / 8 存储单元 :CPU访问存储器的最小单位,每个存储单元都有一个地址。 存储...

          存储容量的定义 :存储容量是指主存能存放二进制代码的总位数

          存储器容量计算公式:

             按位计算 (b)   :        存储容量 = 存储单元个数 x 存储字长

             按字节计算(B):        存储容量 = 存储单元个数 x 存储字长 / 8

          存储单元 :CPU访问存储器的最小单位,每个存储单元都有一个地址。

          存储字长 :存储器中一个存储单元(存储地址)所存储的二进制代码的位数。

          例题:一个存储器有16根地址线,8根数据线,求此存储器存储容量?

          答:按位求取  2^16 x 8位 =64K x 8位 

                按字节求取   2^16 x 8位/8 = 64K x B = 64kB

          分析:

          存储单元与地址线的关系:  我们知道CPU访问存储器的最小单位是存储单元且每个存储单元都有一个地址,1 根地址线可以查找 2 个地址既2个存储单元,16根地址线则可以查找 2^16个存储单元。

          存储字长与数据线的关系 :  我们知道存储字长是指存储器中一个存储单元(存储地址)所存储的二进制代码的位数,而二进制代码的位数是由数据线的根数决定的,也就是说: 存储字长 = 数据线根数

          字节(B)与位(b)的关系  :    计算机里规定 1Byte = 8bit ,没有为什么就是这样规定定的!!!

          所以存储器容量就有;两种表示方法 64K x 8位 = 64KB

          我们常见的内存容量表示方法 是以字节为单位的。例如 1GB  ,4MB, 512KB

          1GB = 10^3MB =10^6KB = 10^9B = 10^9 x 8b 
          ————————————————
          版权声明:本文为CSDN博主「Dingjiawang6」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
          原文链接:https://blog.csdn.net/dingjiawang6/article/details/72860759

          展开全文
        • TD容量计算

          千次阅读 2011-07-20 12:35:07
          在10M的情况下,由于TD占用带宽为1.6M,所以可以采用6载波,容量为142,W系统占用带宽为5M,而且又是FDD方式,上下行各占5M,由于 AMR12.2K的SF为128,其理论容量只能为128,从这一点上说TD容量高于W(AMR12.2K,10M为例)!...
           Td-scdma系统中每帧又分为两个子帧,每个子帧包含10个时隙。10个时隙中第一个时隙TS0为广播时隙,紧跟着是三个下行导频时隙,然后是TS1-TS6为6个业务承载时隙。其中TS0-TS6这7个时隙长一些,为125us,下行导频时隙短一些,为75us。 |  国内领先的通信技术论坛![!X1M7R7q)z%f5y-K7n
          TD-SCDMA标准中每个时隙中有多少个码道(16)www.mscbsc.com&v"L&q*@.s&w)V8o*l
          一个子帧包含7个常规时隙和3个辅助时隙,其中TS0固定作为下行公共信道,因此,若只提供语音业务,由于语音业务为上下行对称业务员,故上下行时隙配成3:3时,能容纳最多用户。
                 一个时隙能容纳的用户数为:   16(码道)/2=8个mscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。&i4u#Q,r7O!g4e
                 一个载波能容纳的用户数为:  8×3=24个4i$b*E A5J4E
          由于TS1中有2个码道被用作下行FPACH公共信道,故减掉1个用户,因此单载波配置时为最大23个用户。MSCBSC 移动通信论坛*X#\%|2L)L
          当小区采用N(3)频点配置时,分为1个主载波,2个辅载波。该小区的公共信道均在主载波的TS0配置,2个辅载波的TS0不使用(目前是这样,将来如何发展就难说了),因此,2个辅载波能容纳的用户均为24个,N(3)频点的总用户数为       23+24+24=71个
          移动通信,通信工程师的家园,通信人才,求职招聘,网络优化,通信工程,出差住宿,通信企业黑名单)@)P$S&q/E6j3g6C2S
          当15M带宽,9个载波,容纳(23+24+24)*3=213个用户;10M带宽,6个载波,容纳(23+24+24)*2=142个用户;5M带宽,3个载波,容纳23+24+24=71个用户。
          在10M的情况下,由于TD占用带宽为1.6M,所以可以采用6载波,容量为142,W系统占用带宽为5M,而且又是FDD方式,上下行各占5M,由于 AMR12.2K的SF为128,其理论容量只能为128,从这一点上说TD容量高于W(AMR12.2K,10M为例)!!!!!
          在TD-SCDMA系统中,一个信道就是载波、时隙与扩频码的组合,也叫一个资源单位(ResourceUnit)。其中一个时隙内由一个16位扩频码划分的信道是最基本的资源单位,即BRU。一个信道占用的BRU个数是不一样的,不同业务的扩频因子不同,从而其占用的BRU不同。而一个载频下,所能提供的BRU的最大个数是固定的。以12.2kbps语音业务为例,其扩频因子为8,共有8个相应的扩频码,因此一个时隙最多支持8个语音业务用户。考虑上下行对称业务,单载扇的话音用户最大可达到23个(去掉控制信道占用的信道),3载频的小区则可达到71个用户。
          71个用户,1个时隙16个码道,可以容纳8个用户,3个频点再*3=24用户,3个小区再*3=72,再减去一个下行时隙所以是71用户。
          展开全文
        • 5G-容量计算

          千次阅读 2019-12-03 17:27:08
          5G-容量计算 1.5G帧结构 2.TBS-物理层最大速率 2.1.PDSCH-TBS计算流程 3.RB数量 4.PDSCH TBS计算示例 5.容量计算 5.1.理论峰值速率 5.2.单小区平均吞吐量 6.参考文件 7.词汇缩写 8.相关连接 1.5G帧结构 一个5G帧...
        • 含LOB的表实际容量计算方法

          千次阅读 2017-06-11 23:33:05
          前两天有一个开发库,报了ORA-01654的错误,提示的是SYS_IL000…$$的对象不能分配...这次涉及的问题,就是如何计算包含LOB对象的表空间实际容量的方法,之所以是说实际容量,是因为仅检索表所占空间,并不能反映LOB的容
        • RK平台RAM和ROM容量计算

          千次阅读 2016-07-15 16:19:26
          此文章仅作为学习交流所用 转载或引用请务必注明原文地址: ...RK平台RAM和ROM容量计算 RAM 简介 1 RAM 实际容量的计算 2 RAM 标称容量的计算 ROM 简介 1 ROM究竟指什么 2 Nan
        • 上次我去某二级城市参加招标答疑会,本来...当中有个问题引起了大家的注意,就是交换机的交换容量转发率的问题,用户本来是需要24口千兆的交换机,参数要求是交换容量>=32Gbps, 转发率>=35Mpps. 咋一...
        • LPDDR4协议规范之 (一)地址映射和容量计算 LPDDR4 结构 LPDDR4 地址映射 LPDDR4协议规范之 (一)地址映射和容量计算 LPDDR4 结构 LPDDR4采用了全新的双通道设计,每个裸片包含两个Channnel,每个Channel包含8个...
        • 计算差: 在购买硬盘之后,细心的人会发现,在操作...这并不是厂商或经销商以次充好欺骗消费者,而是硬盘厂商对容量计算方法和操作系统的计算方法有不同而造成的,不同的单位转换关系造成的。 众所周知,在计...
        • DDR地址和容量计算、Bank理解

          万次阅读 多人点赞 2018-07-25 00:36:18
          DDR3 容量计算 下面这张图是芯片k4t1g164qf资料中截取的;以1Gb容量的DDR2颗粒为例(其他的类似);假设数据线位宽为16位,则看64Mb x 16这一列: bank地址线位宽为3,及bank数目为 2^3=8; 行地址线位宽...
        • 计算机存储容量计算(字节)

          千次阅读 2008-09-06 10:30:00
          计算机用来表示存储空间大小的最基本容量单位是 字节(Byte): 字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。 字节 开放分类: 计算机、单位、储存、容量、光储存 zìjié ...
        • 交换机端口转发率计算

          千次阅读 2017-02-17 17:44:34
          转发线速的衡量标准是以单位时间内发送64byte的数据包(最小)的个数作为计算基准的。 对于千兆以太网来说,计算方法如下:1,000,000,000bps/8bit/(64+8+12)byte=1,488,095pps 说明:当以太网帧为64byte...
        • 计算机中内存问题,存储芯片容量问题

          千次阅读 多人点赞 2018-11-18 15:42:34
          2、存储芯片容量计算方法: 地址线和数据线共同反应存储芯片的容量。 地址线一次确定一个存储单元,地址线上值可能取的所有组合确定了存储单元的个数。所以,存储单元的个数=2^地址线的条数 常说:8K可以用13根...
        • 转发率交换容量详解

          千次阅读 2019-03-27 12:12:00
          交换机的转发率(吞吐量)指的是交换机转发数据包的能力,单位是pps(每秒),也就是交换机每秒可以转发多少个数据包。 交换机接口速率:100Mbit/s的以太网接口,学过计算机的同学都知道,每8个bit组成一个字节...
        • 这是在中关村网站截取的H3C S5048E二层交换机参数,以此交换机参数为例子计算。       标注:评价一台二层交换机性能,不能只看接口速率和接口数量,还要从交换容量和包转发率一起衡量。     1、背板...
        • 终于开始攻克并行这一块了,有点小兴奋,来...在最后笔者在实践中遇到的问题,进行对应的解决:应用一:使用parallel时,能不能clusterExport整个函数呢?应用二:在使用parallel时,报错:Error in unserialize(no
        • 本博文只介绍SD卡V1.0和V2.0版本的SD卡的容量结算; 在对SD卡进行FATFS文件系统(最新R0.13c版本)移植时,接口函数DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void *buff )会获取SD卡的三个重要信息作为f_fdisk和f_...
        • 一般所说的交换机背板带宽与吞吐量是...3、计算 交换容量 = 交换机端口数量×端口速率×2(全双工模式) 例如:一台24口的千兆交换机,其交换容量 = 24×1000Mbps×2 = 48Gbps 4、为满足交换机线速转发标准,交换...
        • 有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 为方便讲解和理解,下面讲述的例子均先用具体的数字代入,即:eg:number=4,capacity=8 i(物品编号) ...
        • 交换机的背板带宽,交换容量转发率区别 背板带宽指的是背板整个的交换容量,交换容量指cpu的交换容量转发指的是三层转发的容量 一、背板带宽 1。交换机背板带宽含义 交换机的背板带宽也叫背板...

        空空如也

        空空如也

        1 2 3 4 5 ... 20
        收藏数 232,056
        精华内容 92,822
        关键字:

        包容量计算