目录
前言
一、主板和接口卡
二、存储器各类芯片
三:内存地址空间
总结
前言
什么是内存地址空间呢?如果地址线为10,那么可以寻址1024个地址空间,这1024个地址空间就构成这个CPU的内存地址空间,下面本文将会介绍两部分基础知识,主板和接口卡。
一、主板和接口卡
每一台PC机上都有主板,主板上都有核心器件和一些主要器件,这些器件通过总线相连,这些器件有CPU,存储器,外围芯片组,扩展插槽等,扩展插槽一般有RAM内存条和各类接口卡。而CPU不能直接控制外部设备例如显示器,音响,打印机等,这些都需要接口卡直接控制,而接口卡直接与CPU相连,CPU可以直接控制接口卡,从而实现对外部设备的间接控制。
二、存储器各类芯片
从读写上来看,存储器分为两类:
- 随机存储器(RAM)
- 只读存储器(ROM)
而这些存储器从功能上和连接上又可以分为以下几类
- 随机存储器
- 装有BIOS的ROM
- 接口卡上的RAM(最典型的显卡上的RAM,被称为显存)
下图展示了PC系统中各类存储器的逻辑链接情况‘
三:内存地址空间
上述存储器,在物理上都是独立的器件,但是在以下两点相同:
- 都和CPU总线相连
- CPU对他们进行读写时候都通过控制线发出内存读写命令
也就是说,在CPU操控他们的时候,把他们都当成内存,把他们总的看作一个由若干个存储单元构成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间
此时各种储存器可以假象为一个逻辑存储器,每个物理存储器在逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在对应物理存储器中读写数据
假设:
- 地址0-7FFFH的32KB空间为主RAM的地址空间
- 地址8000H-9FFFH的8KB空间为显存地址空间
- 地址A000H-FFFFH的24KB空间为各个ROM的地址空间
当此时
CPU向内存地址为1000H的内存单元中写入数据,这个数据就被写入主RAM,
CPU向内存地址为8000H的内存单元中写入数据,这个数据就被写入显存
.......
内存地址空间的大小受CPU地址总线宽度限制,8086CPU的地址总线宽度为20,可以传输2^20个不同的地址信息,既可以定位2^20个内存单元,则8086PC的内存地址空间大小为1MB。同理,80386CPU的地址总线宽度为32,内存地址最大空间为4GB
当我们对计算机硬件进行系统编程的时候,必须知道这个系统中的内存地址空间分配情况。因为我们在读写数据的时候,必须知道单元的地址,以确保在对应的存储器中进行。
不同的计算机系统对于系统内存分配情况是不同的,下图是8086PC对内存地址空间分配的基本情况
总结
最终的运行程序为CPU,我们用汇编语言的时候,必须要从CPU角度思考问题,对CPU来讲,系统中所有存储器的存储单元都处于一个统一的逻辑的存储器中,他的容量收到CPU的寻址能力的限制,这个逻辑存储器就是我们所说的内存地址空间
而对于初学者,这个概念不免有些抽象,后续乐言讲更新一些实践,来增强大家的感性认识