算逻单元 寄存器
基本概念:MPU/CPU(微处理器、*处理器)由控制单元CU,算数/逻辑运算单元ALU和存储单元MU三大部分组成。
基本原理:指令控制,CPU从内存中取出指令,译码后产生多个操作信号送往不同的部件,控制这些部件按要求按一定的时间顺序开始动作。
一个最基本的CPU应该包括哪些模块儿?
算逻单元ALU
进行数据的算数运算和逻辑运算。构成ALU最基本的构件是一位全加器(两个数相加,接受受低位进位,输出结果和向高位的进位)
一位全加器+函数发生器可以构成一位全功能全加器,不仅可以进行算数运算还可以进行逻辑运算
由一位全功能全加器经过复合、级联、优化设计得到实际中的ALU
累加器:
累加器是CPU里的一种寄存器,用来存放数据计算的中间结果。因为上一步的计算结果很可能在下一步马上就要用,所以就不放回内存了(写进内存再读会很慢),直接放在累加器里暂存。
定点与浮点部件:
定点数:小数点位置固定不变的数,分为定点小数和定点整数。
浮点数:小数点位置不固定。一般记为N=RE*M
R是基(可以是2、8、16、一般是2),E是阶码,纯整数。M是尾数,纯小数。
在机器中存放一个浮点数一般是把寄存器分成两部分,一部分放阶码E,一部分放尾数M。
浮点运算器阶码和尾数分开计算。
寄存器
沟通硬件与软件代码之间的桥梁。从本质上来说,写代码控制CPU其实就是改各个寄存器的值,实现控制。寄存器的读写速度都比较快,可以实现快速的数据传输。
通俗的理解寄存器就是存东西的小格子,每个小格子有一个编号,格子里可以放0和1,可以是指令也可以是数据也可以是地址。但这个0或者1具体表示什么含义跟这个小格子的定义有关。数据寄存器里的0和1就用来表示数,指令寄存器里的0和1用来表示某个操作。
CPU里有大量的寄存器,有通用的,也有专用的。
寄存器可以分为用户可见寄存器,和用户透明寄存器。用户可见寄存器,用户使用编程语言可以直接访问和控制,各个通用寄存器都是用户可见寄存器。一般CPU中与运算相关的寄存器是用户可见寄存器。用户透明寄存器一般与CPU的程序运行有关,如PC(程序计数器)、IR(指令寄存器)等。