2. 内存地址空间
RAM和ROM
主板:在每一台PC机中都有一个主板,主板上有核心器件和一些主要器件,这些器件通过总线(地址总线、数据总线、控制总线)相连。
接口卡:在计算机系统中,所有可用此程序控制其工作的设备,必须受到CPU的控制。CPU对外部设备都不能直接控制,如显示器、音箱、打印机等。而直接控制这些设备进行工作的是插在扩展插槽上的接口卡。接口卡通过CPU和总线相连接。
- CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
存储器芯片:随机读写存储器(RAM)和只读从存储器(ROM)。
随机读写存储器可读可写,但必须带电存储,关机后存储的内容丢弃。用于存放供CPU使用的绝大部分程序和数据。
只读存储器只能读取不能写入,关机后其中的内容不丢弃。装有BIOS(Basic Input/Output System,基本输入/输出系统)的ROM。由厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。
在主板和某些接口卡上插有相应BIOS的ROM。例如:主板上的ROM存储着在主板的ROM;显卡上的ROM存储着显卡的ROM;网卡亦是如此。
接口卡上的RAM:当你的接口卡需要大批量输入、输出数据进行暂时存储的时候,在其上装有RAM。显卡的显存就是,显示卡随时将现存中的数据向显示器上输出,换句话讲,我们将需要显示的内容写入现存,就会出现在显示器上。
内存地址空间
什么是内存地址空间?一个CPU的地址总线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。
![image-20210313175009531](/img/loading.gif)
上面知识点所描述的存储器在物理上都是独立的器件,但是在以下两点上相同,都和CPU的总线相连,CPU通过控制总线发出内存读写命令。CPU在操控它们对的时候,把他们都当作内存来对待,把它们总的看作一个由若干个存储单元组组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。
所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个物理从存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在性向对应的物理存储器中读写数据。
再以上图为例:假设内存地址空间的地址段如下
* 地址0~7FFFH的32KB空间为主随机存储器的地址空间
* 地址8000H~9FFFH的8KB空间显存地址空间
* 地址A000H~FFFFH的24KB空间为各个ROM的地址空间
这样,CPU向内存地址为1000H的内存单元中写入数据,这个数据就被写入主随机存储器中;CPU向内存地址为8000H的内存单元中写入数据,这个数据就被先写入显存中,然后会被显卡输出到显示器上;CPU向内存地址为C000H的内存单元中写入数据的操作是没有结果的,C000H单元中的内容不会被改变,因为是ROM单元。
80386CPU地址总线宽度为32,则内存地址空间最大为2^32B = 4GB。当我们从某类存储器中读写数据的时候,必须知道它的第一个单元的地址和最后一个单元的地址,才能保证读写操作是在预期的存储器中进行的。