上节讲到cpu如何通过总线与存储器交互,存储器由那些部分构成呢?
cpu直接与内存进行交互。内存是计算机中的重要部件,与之对应的是外存。
"内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。"
“我们平常使用的程序,如Windows操作系统、打字软件、游戏软件等,一般都是安装在硬盘等外存上的,但仅此是不能使用其功能的,必须把它们调入内存中运行,才能真正使用其功能,我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。就好比在一个书房里,存放书籍的书架和书柜相当于电脑的外存,而我们工作的办公桌就是内存。通常我们把要永久保存的、大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上,当然内存的好坏会直接影响电脑的运行速度。”
一台PC机装有多个存储器芯片,从读写上分为:随机存储器(RAM)和只读存储器(ROM)。随机存储器关机后存储的内容丢失;只读存储器只能读取不能写入,关机后内容不丢失。
内存一般采用半导体存储单元,包括随机存储器,只读存储器,高速缓存。
其中RAM是最重要的存储器。
说了这么多,来讲讲第一节我们一笔带过的内存地址,这是个很重要的知识点。
CPU通过地址总线寻找存储器中的内存是通过内存地址,通过向内存地址交换数据也即从内存中读取或写入数据。存储器芯片在物理上是独立的器件,但是都具有以下的共同特点:
- 都通过总线与CPU相连
- 通过控制总线与CPU进行读写操作
也就是说他们都是内存,CPU都把他们当做内存进行直接的读/写操作。
CPU把这些内存当做一个总的逻辑内存空间,便于统一操作和管理,一视同仁。从地址总线的角度来说,为每个内存都分配内存地址空间,方便CPU进行寻址操作,对于CPU来说直接面对的是地址总线而不是内存空间。
所有的物理存储器被看做一个由若干存储单元组成的逻辑存储器,每个物理存储器都有属于自己的不与其他存储器冲突的逻辑地址段,即地址空间。
CPU在这段地址空间读写数据,实际上也就是在实际的物理内存中读写数据,二者其实是等价的。之所以引入逻辑存储器的原因:一是为了便于地址总线寻址;而也是方便管理众多的独立的内存。
因此内存空间的大小受地址总线的宽度限制,在上一节中我们描述了一个8条地址总线的cpu与16条地址总线的cpu在传输数据上的差别与优劣对比。可以看出16条地址总线的传入效率是优于8条地址总线的。
在地址总线上。拥有条数多的地址总线的CPU往往能够提供更多的逻辑地址来分配给实际的内存空间,而条数少的地址总线的CPU如果往往面临资源紧张的状况。
下图展示了8086PC机内存地址的地址空间分配的基本情况:
从地址0~9FFFF的内存单元中读取数据,实际上就是在读取主存储器的数据;向地址A0000~BFFFF的内存单元中写数据,就是向显存中写入数据;思考下:向地址C0000~FFFFF的内存单元写入数据89D3的正确性。
答案是:不正确,因为ROM是只读存储器,因此不能够写入数据。