今天我们来聊聊主存储器:之前的几期我们聊过主存储器由MAR和MDR及存储体,也就是地址存储器和数据存储器以及存储体组成,一个完整的存储器访问周期由MAR提供地址,MDR提供数据,而MAR的地址存储体本身不能识别,也就是说,在MAR和存储体中间还有译码器,驱动器等电子设备,而MDR和存储体通过读写电路进行数据交换,也就是说,MDR和存储体中间有读写电路等电子设备,也就是主存真正的结构如下图所示:
在一个读取存储周期之中,CPU想从主存中读出一段数据的情况时,首先CPU将这一段数据的地址发往MAR,然后下达读的命令,与此同时,MAR向存储体提供地址,读写电路根据地址将这一段数据读往MDR,由MDR送往主线,至此,主存读数据的功能完成,至于数据最终是由哪一个设备接收,这是CPU的事,主存不负责。
在一个写入存储周期之中,CPU将数据的地址送往MAR,然后将数据送往MDR,然后发布写的命令,与此同时,MAR将地址提供给存储体,读写电路按照地址将MDR中的数据存储至地址指定的位置,存储数据的过程完成。
下面来讲讲主存中存储单元地址的分配:
主存之中,各个单元的地址是由一串单元地址号来表示,而总线中的地址总线就是来传递存储单元的地址,读写电路根据这个地址读出或写入一个数据。
不同机器的字长也不相同,我们知道,一个字节是8位,这是由基础的编码表要求的,8位的二进制基本可以表示所有的符号,而我们的机器可能是8位的,也可能是16位,32位,64位,128位等等,但是为了满足字符处理的需要,因此,存储字长通常是8的整数倍。这样子,机器就既可以按照字节地址寻找数据,也可以用字地址寻找数据,而每个字地址必然是某一个字节地址。
好了,今天先这样,OVER。