五、算术逻辑单元
每一种算术运算的都相对应一个基本硬件配置,核心部件是加法器和寄存器。ALU电路是既能完成算术运算又能完成逻辑运算的部件。
1.ALU电路
和
为输入变量;
为控制信号,
的不同取值可决定该电路作哪一种算术运算或哪一种逻辑运算;
是输出函数。
74181是能完成4位二进制嗲吗的算逻运算部件。74181有两种工作方式,即正逻辑和负逻辑。
以正逻辑为例,
和
是两个操作数,
为输出结果。
表示最低位的外来进位,
是74181向高位的进位;P、G可供先行进位使用。M用于区别算术运算还是逻辑运算;
的不同取值可实现不同的运算。
ALU为组合逻辑电路,因此实际应用ALU时,其输入端口A和B必须与锁存器相连,而且在运算的过程中锁存器的内容是不变的。其输出也必须送至寄存器中保存。现在有的芯片将寄存器和ALU电路集成在一个芯片内,如29C101。该芯片的核心部件是一个容量为16字的双端口RAM和一个高速ALU电路。
2.快速进位链
并行加法器
并行加法器由若干个全加器组成。n+1个全加器级联就组成了一个n+1位的并行加法器。
由于每位全加器的进位输出是高一位全加器的进位输入,因此当全加器有进位时,这种一级一级传递进位的过程将会大大影响运算精度。
和
进位
可见,
进位由两部分组成:本地进位
,可记作
,与低位有关,可称
为传递条件,记作
,则
由
的组成可以将逐级传递进位的结构转换为以进位链的方式实现快速进位。目前进位链通常采用串行和并行两种。
串行进位链
串行进位链是指并行加法器中的进位信号采用串行传递。
以思维并行加法器为例,每一位的进位表达式可表示为
若设与非门的级延迟时间为 ,那么当 形成后,共需 便可产生最高位的进位。实际上每增加移位全加器,进位时间就会增加 。n位全加器的最长进位时间 。
并行进位链
并行进位链是指并行加法器中的进位信号是同时产生的,又称为先行进位、跳跃进位等。通常并行进位链有单重分组和双重分组两种实现方案。
(1)单重分组跳跃进位
单重分组跳跃进位就是将n位全加器分成若干小组,小组内的进位同时产生,小组与小组之间采用串行进位,这种进位又有组内并行、组间串行之称。
设与或非门的级延迟时间为
,与非门的级延迟时间仍为
,则
形成后,只需
就可产生全部进位。
如果将16位的全加器按4位一组分组,便可得单重分组跳跃进位链框图。单重分组方案进位时间仅为串行进位链的1/3。但随着n的增大,其优势便很快减弱。
(2)双重分组跳跃进位
双重分组跳跃进位就是将n位全加器分成若干大组,每个大组中又包含若干小组,而每个大组内所包含的各个小组的最高位进位是同时产生的,大组与大组间采用串行进位。因各小组最高位进位是同时形成的,小组内的其他进位也是同时形成的,故又有组内并行、组间并行之称。
每小组可产生本小组的本地进位
和传送条件
以及组内的各低位进位,但不能产生组内最高位进位。
按双重分组设计n=16的进位链,最长进位时间为
,比单重分组进位链又省了
。随着n的增大,双重分组的优越性显得格外突出。引入
和
可采用双重分组进位链,大大提高了运算速度。
74181芯片是4位ALU电路,其4位进位是同时产生的,多片74181级联就如单重分组跳跃进位,即组内(74181片内)并行,组间(74181片间)串行。74181芯片的G、P输出就如D、T。当需要进一步提高进位速度时,将74181与74182芯片配合,就可组成双重分组跳跃进位链。74182为先行进位部件,还提供了大组的本地进位G和大组的传送条件P。