头条资讯 - 为您提供最新最全的新闻资讯,每日实时更新

浅谈内存地址空间

科技数码 量子孤岛

大家晚上好。今天我们聊聊内存地址空间。一台PC机由多个物理器件组成:显卡、网卡、主板、接口卡、显示器等等。那么CPU是如何知道它们是谁,而又是如何通过数据和指令读写进而对各种物理器件进行操控呢?

统一编址的普适性方法

一台PC 机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。从读写属性上看分为两类:随机存储器(RAM)和只读存储器(ROM)。随机存储器可读可写,但必须带电存储,关机后存储的内容丢失;只读存储器只能读取不能写入,关机后其中的内容不丢失。这些存储器从功能和连接上又可分为主板上的RAM和扩展槽上的RAM,以及ROM中的系统BIOS和接口卡上的BIOS。

浅谈内存地址空间

各个物理器件如下图所示。

浅谈内存地址空间

图中的各种物理器件都是互相独立的,但是都通过总线和CPU相连。还记得之前我们讲过的三种总线吗?忘了的朋友再看视频复习下吧:

CPU对这些物理器件进行读写都是通过控制总线发出的内存读写命令。也就是说不管哪种物理器件,CPU在操控它们时都会将其当做内存处理,将它们看作由若干个存储单元组成的逻辑存储器。也就是我们常说的内存地址空间

如下图所示,所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个物理存储器在该逻辑存储器中占有一个地址段,即一段地址空间,CPU进行读写数据,实际上就是在相对应的物理存储器中读写数据。

浅谈内存地址空间

如下图左侧内存地址空间划分,是8086PC机的解决方案。该说说明了这样一个事实:如果从0~9FFFF的内存单元读取数据,实际上就是在读取主存储器的数据,向A0000~BFFFF的内存单元写数据,就是向显存写数据,而向C0000~FFFFF内存单元写数据根本不会生效,因为该处是只读区域。

浅谈内存地址空间

这个概念是一个普适的概念。我们在基于一个计算机硬件系统编程时,必须知道该系统的内存地址空间分配情况,因为当我们想在某类存储器中读写数据时,必须知道它的第一个单元的地址和最后一个单元的地址,才能保证读写操作是在预期的存储器的进行的。即CPU想要操作显示器、网卡亦或是显卡,都需要知道他们的逻辑地址划分。

总结

所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;

每个物理存储器在该逻辑存储器中占有一个地址段,即一段地址空间;

CPU进行读写数据,实际上就是在相对应的物理存储器中读写数据。

转载请超链接注明:头条资讯 » 浅谈内存地址空间
免责声明
    :非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。
加载中...