[组原]初识-地址总线,地址寄存器,存储单元,存储字长

Posted Jucway

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[组原]初识-地址总线,地址寄存器,存储单元,存储字长相关的知识,希望对你有一定的参考价值。

文章目录

💟前记:由一道做错的题总结结果

⏲ 05.09


知识点

机器字长

  • 计算机进行一次整数运算所能处理的二进制数据的位数;通常也是CPU内部数据通路的宽度;

  • 对按字寻址的机器,程序计数器和指令寄存器的位数取决于: 存储器的字数,指令字长

    程序计数器存放的是下一条指令的地址(所以地址可以用指针来表示)(指令在内存中的地址),因此位数取决于存储器的字长;(存储器的字长小于等于机器字长)

    指令寄存器存放的是接收取得的指令,位数取决于 指令的长度;

    指令包括 操作码字段和地址码字段;所以指令长度=操作码长度+操作数地址长度;同时由于指令结构的不同, 指令长度不是固定的

指令

❣️含义:指令是指示计算机执行某种操作的命令

  • 定长指令字结构
  • 变长指令字结构

​🔑 在一个指令系统内,所有指令的长度都是相等的;

这里的变长指令字结构要和扩展操作码指令格式区别;扩展操作码指令是在指令长度相等的情况下针对操作码长度进行变化的;

寻址方式

按字寻址

​❣️​一般字长为32位,同时说明存储单元大小为字长的位数;同时说明计算机中可以编址的最小单元是字存储单元;

按字节寻址

​❣️​1字节为8bit;存储单元的大小为字节的位数;说明计算机可以编址 的最小单元是字节存储单元;

存储单元

  • 🎯8位为一个存储单元;也就是1字节;这里的存储单元指的是字节存储单元,现代计算机通常是以字节进行编址,默认的存储单元大小就是1字节;

存储字

❣️含义:存储单元中二进制代码的组合;

​▶️百度百科:如存储字为0011011001111101,既可表示为由十六进制字符组成的367DH(ASCII码),又可代表16位的二进制数,此值对应十进制数为13 949,还可代表两个ASCII码:“6”和“”。一个存储字还可代表一条指令。

存储字长

​❣️​含义:存储单元中的二进制代码(存储字)的位数,存储字长可以是8位、16位、32位等。对应按字节寻址,按半字寻址,按字寻址;

💥疑惑点1:为什么存储单元是1字节,然而代表存储单元二进制位数的存储字长却出现8bit, 16bit, 32bit等?

🎯广义上的字节存储单元是表示一个字节,然而由于按照不同的寻址方式,存储单元的字长又是不同的,但都是字节的整数倍而且不大于机器字长;

🎯单纯的寄存器结构:信息存入采用电位-脉冲方式;

💥 疑惑点2:地址寄存器和地址总线的宽度(位数)有什么联系?

​▶️地址寄存器是用来保存当前CPU所访问内存单元的地址;地址寄存器的大小也代表cpu的寻址能力;

地址总线决定cpu所能访问的最大内存空间的大小;地址线一次确定一个存储单元,地址线上值可能取的所有组合确定了存储单元的个数。所以 存 储 单 元 的 个 数 = 2 地 址 线 的 条 数 存储单元的个数=2^地址线的条数 =2线

相当于地址总线所能表示的最大范围代表cpu的寻址能力(也就是能放多少个地址)因为地址总线是连接到地址寄存器上的,所以地址寄存器的位数也等于总线的根数;

💥 疑惑点3:存储容量的计算?

​▶️存储容量=地址寄存器MAR的编址数<存储单元个数>*存储字位数(存储字长)(存储单元的位数)----计算出来的是所能存储的二进制代码的总位数

上个题:

​▶️这里的容量计算和字长容易导致认为存储单元大小为32bit,最终错误计算地址总线宽度为: 4 G B 4 B = 4 G = 2 30 \\frac4GB4B=4G=2^30 4B4GB=4G=230;
地址的容量计算是按照存储单元为1字节进行计算,后面的32字长对应的是数据总线的宽度,也就是CPU一次能处理的二进制位数;


​▶️这里是按字进行编址,存储单元是4B;存储容量 8 M B = 8 ∗ 2 20 B ; 寻 址 范 围 = 8 ∗ 2 20 B 4 B = 2 ∗ 2 20 = 2 M 8MB = 8*2^20B;寻址范围=\\frac8*2^20B4B=2*2^20=2M 8MB=8220B;=4B8220B=2220=2M

❤️总结:(字长和按字编址是不一样的)

以上是关于[组原]初识-地址总线,地址寄存器,存储单元,存储字长的主要内容,如果未能解决你的问题,请参考以下文章

计算机基础

JVM内存管理

汇编语言总结

汇编语言基础总结

单片机的程序存储器和数据存储器共处同一地址空间为啥不会发生总线冲突?

汇编-----cpu总线