本节内容:主板、接口、各类存储芯片及计算机1M内存空间的布局。
■主板:计算机各个硬件插槽的载体。计算机各个部件通过主板上的插槽和总线与CPU连接。
■接口卡:从程序的角度理解,主板上的各种插槽就是计算机各个硬件的接口地址。计算机系统有两套各自独立的地址。硬件的接口地址独立于1M主存的线性地址,每个接口都有预定的端口地址。我们将在第十六章输入和输出中断中详细讲解。
■各类存储芯片:RAM、ROM、显存、BIOS。RAM称为动态随机存储器,用于动态读写数据,断电后数据丢失。ROM称为静态存储器,保存BIOS和各种驱动程序,断电后不会消失,ROM只能读不能写。显存比较特殊,既有RAM也有ROM存储。显存的RAM用于显示数据,显存的ROM存储显卡驱动。BIOS为系统引导程序。
■内存地址空间:计算机内存地址空间划分为主存、显存和各类ROM三个部分,共同构成1M大小的线性地址空间。
1.6.1主板主板上有CPU和一些主要器件,这些器件通过总线(地址总线、数据总线和控制总线)与CPU相连。这些器件有存储器、外围芯片组、扩展插槽等。扩展插槽用来将外部硬件设备连接到主板。
1.6.2接口卡计算机系统中,所有可以使用程序控制的设备都必须受到CPU控制,如显示器、音箱、打印机等。CPU对外部设备不能直接控制。需要通过插在扩展插槽上的接口卡来控制。扩展插槽通过总线和CPU相连,所以接口卡也通过总线同CPU相连。CPU可以直接控制这些接口卡,从而实现对外部设备的控制。
每一个接口卡都有一个设定的端口地址,CPU通过控制总线向接口卡的端口地址发送控制命令,接口卡根据CPU的控制命令进行工作。
1.6.3各类存储芯片如图1-22所示,PC机中装有多个独立的存储芯片,属于不同的部件。从属性可以划分:
■随机存储器(RAM):用于存放供CPU使用的绝大部分程序和数据,主随机存储器一般由两个位置上的RAM组成,装在主板上的RAM和插在扩展插槽上的RAM(内存条)。
■静态存储器ROM:存放BIOS基本输入输出程序,是由主板和各类接口卡(如显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。例如主板上的ROM中存储系统BIOS,显卡的ROM中存储显卡的BIOS,网卡上装有ROM存储网卡的BIOS。
■接口卡上的RAM:某些接口卡需要对大批量输入和输出数据进行暂时存储,装有RAM。最典型的是显卡上的RAM,称为显存。我们将要显示的内容写入显存,显卡将显存中的数据向显示器输出,就会出现在屏幕上。
■BIOS:基本输入输出程序、开机自检系统和自启动程序。
CMOS芯片是主板上的BIOS芯片中一块可读写的RAM芯片,主要用来保存当前系统的硬件配置和操作人员对某些参数的设定。CMOSRAM芯片由系统通过主板上的一块圆形后备电池供电,因此在关机状态后信息也不会丢失。
图1-22PC机各类存储器
1.6.4内存地址空间■各类存储器都和CPU相连。
■CPU对它们进行读或写的时候都通过控制线发出内存读写命令。
■计算机将各类存储器全部当作内存来对待,把它们总的看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器称为内存地址空间。
注意
回顾上一节的内容—地址空间:
假如CPU的地址总线宽度为10,可以编写个内存地址编号,即可以寻到个字节内存单元称为该CPU的内存地址空间。
计算机有20根地址线,其寻址范围为个字节,即1MB。
计算机有32根地址线,其寻址范围为个字节,即4GB。
X64计算机有64根地址线,其寻址范围为个字节。
■CPU将系统中各类存储器看作一个逻辑存储器。所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个物理存储器占用一个地址段,即一段地址空间。CPU在这段地址空间读写数据,就是在相对应的物理存储器中读写数据。
举例
假设内存地址空间的地址段分配如下:
地址0~7FFFH的32KB空间为主存储空间;
地址H~9FFFH的8KB空间为显存;
地址AH~FFFFH的24KB空间为其他ROM存储器地址空间;
CPU向地址1H内存单元写入数据,数据就被写入主随机存储器中;
CPU向地址H内存单元写入数据,数据被写入显存,出现在显示器上。
CPU向CH内存单元写入数据这样的操作无效,因为CH是ROM只读存储器单元。
图1-23PC机内存地址空间分布
图1-23展示了PC机中各类存储器的内存地址空间分配情况。这些存储器将作为一个整体与计算机的寻址范围相对应。
1.6.5PC机内存地址空间分配内存地址空间的大小受地址总线宽度的限制。CPU
地址总线为20根,可以定位个内存单元,地址范
围0~-1,地址空间大小1MB。
CPU的地址总线宽度为32,则内存地址空间为
4GB。
基于一个计算机硬件系统编程的时候,必须知道这个
计算机系统的内存地址空间的分配情况。向某类存储
器读写数据时,需要知道它的第一个单元地址和最后
一个单元地址。
CPU的地址分配如图1-24:
图1-24PC机内存地址空间分配
●0~9FFFF的内存单元为主随机存储器。
●A0~BFFFF的内存单元为显存。
●C0~FFFFF内存单元为只读存储器。
本文摘自编程达人系列教材《X86汇编语言基础教程》!