很高心您能继续关注Lucy软考之路系列博文——编址与存储相关计算(二),在上文中,Lucy给大家讲解计算机中的单位换算和内存工作原理。本篇继续。
内存编址
一个内存可能是8位,也可能是64位,容量可能是1M,也可能是1G。那么内存是如何编址的呢?和地址总线,计算机字长之间又有什么关系呢?
计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制的位数就是“字长”。例如,我们常说的32位系统,64位系统,就是32位CPU在同一时间内处理字长为32位的二进制数据,64位CPU在同一时间内处理字长为64位的二进制数据。一般来说计算机的数据线的位数和字长是相同的。这样从内存获取数据后,只需要一次就能把数据全部传送给CPU。
地址总线的数量决定了她最大的寻址范围。就目前来说一般地址总线先字长相同。比如32位计算机拥有32为数据线和32为地线,最大寻址范围是4G(0x00000000~ 0xFFFFFFFF)。
我们知道一个内存的大小和它芯片扩展方式有关。比如我们内存模块是采用16M*8bit的内存颗粒,那么我们使用4个颗粒进行位扩展,成为16M*32bit,使用4个颗粒进行字容量扩展变为64M*32bit。那么我们内存模块使用了16个内存颗粒,实际大小是256MB。
我们需要对这个256M的内存进行编址以便CPU能够使用它,通常我们多种编址方式:
对于我们现在的计算机来说,主要采用按字节编址的方式。
编址计算
解析:16MB=2^24B=2^24*8bit
按字节编址就是每8bit编一个地址,所以需要2^24*8bit/8bit=2^24个地址,要产生这么多地址,必须要用24个二进制数表示。
举一反三:
题目中改成按4位编址?
首先算出需要多少个地址:16MB=2^24B=2^24*8bit
2^24*8bit/4bit=2^25个地址
所以需要25个二进制数来编址
题目中改成按字编址,且该计算机为64位,则主存地址需要多少位?
希望Lucy的讲解对大家解题有所帮助,博文若有不当处,欢迎批评指正。