• 按字寻址和按字节寻址


    基本概念
     

    位(bit)

    位是电子计算机中最小的数据单位。

    字节(Byte, B)

    字节由8个位组成,它是存储空间的基本计量单位;

    字由若干个字节组成。因此,字一定为字节的整数倍。字的位数称为字长(注意:字不等于字长乘以字节!字=字长×位)。比如一个8位的CPU,这里的8位指其字长为8位,即单位时间内可以处理8位二进制数,即一个字节数。现在的CPU大部分为64位,即单位时间内可以处理64位二进制数,即8个字节数

    什么是寻址?


    寻址指当CPU请求数据时获得该数据在内存上的位置的过程。内存上存储的所有数据都会有一个可以区分的地址,这与其存放的位置相对应,当CPU请求数据时,内存中的电路会根据CPU的地址线上的信号利用数据总线向CPU返回数据。

    那么内存是如何编码数据保存的位置的?这里涉及到上文所述的字节的概念。内存每一个存储位置的最小单元都可以储存0或1,即一个位的内容,而内存将8个位设定为一个存储空间的基本单位。而在地址线上每一个地址的编号便对应的是一个存储位置的最小的基本单位。

    如何在地址线上用信号表示这个地址,这个问题引出了两个不同的寻址方式:按字节寻址和按字寻址。

    字长度可为8的整数倍,如32,8位,按字寻址的话,32位存储字包含4个字节,地址线需留出2跟来区分四个字节的位置。按字节寻址的话,则不需要留出地址线来分区了,因为就一个字节。

    对于24位地址线的主存而言
    若字长为32位:

    ①按字节寻址的范围为16M。【2^24 B = 16 M】

    ②按字寻址的范围为4M。【2^24B / 4B = 4M】


    若字长为16位:

    ①按字节寻址的范围为16M。【2^24 B = 16 M 】

    ②按字寻址的范围为8M。【2^24 B / 2 B = 8 M】

    按字节寻址

    按字节寻址指一个地址线表示的数(即状态)与一个字节地址相对应。比如一台机器有30根地址线,如果按字节寻址,其寻址范围是=1GB。注意这里用的单位是B,原因如上文所述,30根地址线对应的是磁盘中的存储空间的基本单位,即1B,8个位。

    按字寻址

    计算机以此方式寻址时,每一个地址值指向了一个字,这里指向的便不是按字节寻址中的字节了。如前文所述对字的定义,一个字里面有任意个字节,那么计算机如何知道其地址指向的到底是字中的第几个字节呢?这便需要地址线中分出一部分标出其所指的到底是字中的第一个字节,还是第二个,亦或是其他。比如一个计算机有30根地址线,如果按字寻址,其字的字长为64位的话,那么每个字长有8个字节,8个字节用二进制编码需要3位(000 001 010 011 100 101 110 111)来区分,因此真正用来表示字的位置的地址线有30-3=27根,其寻址范围是2^27=128MW。注意这里单位为W表示一个字。

  • 相关阅读:
    【JavaScript】一文了解JS原型与原型链
    Elasticsearch通过Http请求实现索引操作以及文档操作
    从20s优化到500ms,我用了这三招
    计算机毕业设计Java机械生产企业办公设备管理系统(源码+系统+mysql数据库+lw文档)
    WIN10如何搭建自己的博客
    最详细STM32,cubeMX串口发送,接收数据
    OpenWRT配置SFTP远程文件传输,实现数据安全保护
    【数据分析】:数据分析三大思路及方法
    二叉排序树的插入(递归、非递归)和构造
    博睿数据出席阿里云可观测技术峰会,数字体验管理驱动可持续发展
  • 原文地址:https://blog.csdn.net/qq_63514555/article/details/128148928