“32位微处理器”、“64位操作系统”
  1. 32位微处理器:是硬件指标,指CPU一次能够处理的数据长度,称为机器字长,机器字长通常等于通用寄存器长度
  2. 64位操作系统:是软件指标,需要64位CPU的支持,64位操作系统不仅是寻址范围增加到2642^{64}264,同时要求机器字长64位。
  3. 二者关系:32位操作系统是该操作系统最多可访问2322^32232个,即最多4G的地址,是一个软件的概念;32位处理器指的是一次可处理32位数据,是CPU设计时就决定好的,是硬件的概念。低位数的CPU不能运行高位数的操作系统,而高位数的CPU可运行低位数的操作系统(即64位CPU能支持32、64位操作系统)
机器字长

32位计算机
= 字长/机器字长为32位
= 通用寄存器宽度为32位
= CPU内部用于整数运算的数据通路的宽度为32位
= 计算机内部一次可以处理的二进制数的位数
= ALU算数逻辑单元里面,可以支持同时输入多少比特的信息

字和字长的概念不同,“字”表示被处理信息的单位,用来度量数据类型的宽度。字和字长的宽度可以一样,也可以不同。如对于x86体系结构,不管字长多少,定义“字”的宽度都为16位,而从386开始字长就是32位了。又例如对于MIPS 32体系结构,其字和字长都是32位。

指令字长

= 一个指令字中包含的二进制代码的位数

存储字长

= 一个存储单元存储的二进制代码的长度

数据总线宽度

= MDR位数
= 一次可取的最大数据位数
可能 ≠\ne= IR位数(因为指令字长可以为存储字长的整数倍)
(若采用64位数据线,字节编址,则每次最多可存取8个存储单元的内容)

地址总线宽度

= MAR位数
= 程序寄存器PC的位数
= 按字寻址的机器,其存储器的最大字数

控制总线线数

指一次可并行传送的控制信息位数

I/O线数

与外设通信的并行程度

操作系统位数

为操作系统可寻址的位数

关系:

  1. 指令字长与存储字长:
    • 指令字长一般是存储字长的整数倍(若指令字长等于存储字长的2倍,则需要2个访存周期来取出一条指令)
    • 若指令字长=存储字长,则取指周期=机器周期
      请添加图片描述
  2. 机器字长与指令字长没有必然关系
  3. 早期一般存储字长=指令字长=字长,所以访问一次主存就可取出一条指令或一个数据。但现在指令字长和字长都可变
  4. 机器字长与存储字长:
    如“32位机器”和“按字节编址”这两种说法,前者指的是ALU一次能处理数据的位数,是数据的宽度;而后者是指一个存储单元能存放一个字节,是数据的宽度。这二者是独立的概念,没有关系。
    但是通常为了方便,将二者设为一样的,“按字寻址”就是机器字长=存储字长的情况。所以这个不能硬要说二者相同或不同。
  5. 数据线位数、存储单元位数、MDR、MAR:
    数据线位数和一个存储单元所存的数据位数并不一定相同。例如下面的主存储器示意图,其对存储单元进行编号的方式和大多数通用计算机一样,采用字节编址方式(即存储体内一个地址中有一字节),而其采用64位数据线,所以在字节编址下,每次最多可以存取8个单元的内容。所谓“数据线的宽度与MDR的宽度相同”,

    产生疑惑的根源是因为没搞懂最大和实际的区别:MDR的位数(数据线位数)、MAR的位数(地址线位数)是指这台计算机的能力,是刻在板子上没办法改变的;而存储单元的位数(存储字长)、存储单元的地址位数是用户为这台计算机所配备的存储能力,是可以在不超过上述计算机能力的基础上,进行改变的(如加一个内存条)。

    因此下图中,MAR的位数=地址线的位数=36位,是指主存地址空间的最大可寻址范围是0~236−12^{36}-12361。而实际的存储容量,是只有25=322^{5}=3225=32个存储单元,一个存储单元8位

    请添加图片描述
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐