机器字长,存储字长,存储芯片的数据线,CPU的数据总线,MDR位数,MAR位数,存储芯片和存储器的关系。

CPU总线的宽度=运算器的位数=通用寄存器的宽度=数据总线宽度

(字长:不加修饰的一般为机器字长)

———————————————————————————————————————————

        首先明确一点,32k*32位“存储器”是看不出编址方式的。编址方式是从CPU角度定义的逻辑分配单元,32K*32位是从存储器角度看的物理传送方式,两个没有直接关系。编址的方式现在都是字节编址(除非题目说明),但是数据总线是32位的,说明一次传32位数据,但是定位粒度是按照字节定位的(因为是按字节编址。)

(上述引用知乎回答@Hollywang)

存储器的编址方式只和最后的寻址范围和地址线需要的根数有关。编址方式决定了地址线的根数(编址方式需要设计电路,由硬件就决定了),如果是按字节编址,那么32k*32位就是17根地址线,如果是按字编址,那么就是15根地址线。同时编址方式也决定了寻址的范围,如果是按字节编址,那么可以进行按字寻址和按字编址,按字寻址就是0-2^15-1,如果是按字节寻址就是0-2^17-1;但如果是按字编址,那么只可以进行按字寻址,因为只有15根地址线可以用来寻址。

然后说说存储器和存储芯片,若干个存储芯片可以通过位扩展和字扩展然后组成一个存储器,可以理解为存储器不再进行扩展,直接和CPU对接使用(相当于内存条,双通道就是多个存储器进行低位交叉编址形成的多体并行存储器)而MDR是针对于存储器来说的,每个存储器都有独立的读写电路和地址寄存器和数据寄存器。MDR数据寄存器的位数 = 存储字长(存储器)存储器存储字长可以理解为存储器对外暴露的借口,如果存储器内进行位扩展,那么存储字长也就会发生变化。一般来说 MDR的位数和数据总线的位数是一样的,即 存储器存储字长= MDR = 数据总线 = 机器字长。 

MAR的位数和地址线总线的根数有关。MAR = PC的位数。MDR于数据总线,就像MAR于地址总线。平常的存储器的练习中,常常出现32k*16位存储芯片,求其数据线和地址线,如果没有告诉告诉按照什么编址的话,理论上地址线是求不出,因为按字编址是15根,按字节编址是16根。(而32k*8位 不管是按字编址还是按字节编址都是15根。)但是数据线可以知道是16根,但这里的数据线不是数据总线,地址线也不是地址总线。地址线和数据线是元件内部的线路,而地址总线和数据总线是CPU沟通其他部件,比如存储器等部件的根数。

你可能感兴趣的:(计算机组成原理,其他)