【正文】
CnG P CnG P Cn圖 四片 74181和一片 74182構(gòu)成的快速 16位 ALU 3. 3 定點(diǎn)加、減法運(yùn)算 ■ 計(jì)算機(jī)的一個(gè)重要特點(diǎn)是它只能用有限的數(shù)碼位數(shù)來(lái)表示操作數(shù)和操作結(jié)果 ? 制定用來(lái)表示正、負(fù)數(shù)的各種碼制;通過(guò)數(shù)據(jù)編碼來(lái)簡(jiǎn)化數(shù)據(jù)的運(yùn)算,特別是補(bǔ)碼,把加法和減法巧妙地結(jié)合起來(lái)。 ▲ 在 圖 74181的邏輯圖中,用先行進(jìn)位方法產(chǎn)生的進(jìn)位輸出 Cn+4和圖中 P、 G的輸出信號(hào)用表達(dá)式: ? 考慮算術(shù)運(yùn)算, M=L P = P3P2P1P0 G = G3 +P3G2 +P3P2G1 +P3P2P1G0 Cn+4 = G P3P2P1P0 Cn = G +P Cn = G P +G Cn ? P稱為片間進(jìn)位傳遞函數(shù), G稱為片間進(jìn)位產(chǎn)生函數(shù) ▲ 根據(jù) 74181提供的 G、 P信號(hào),很容易實(shí)現(xiàn)芯片之間的先行進(jìn)位。 ▲ 按以上方法,可全面分析、理解 74181的邏輯圖和真值表。 ? S3S2S1S0=HLLH時(shí), Fi=Pi?Gi= Ai?Bi,對(duì)輸入數(shù)據(jù)A3A2A1A0和 B3B2B1B0執(zhí)行邏輯“ 同或 ” (異或非 )操作。 ? 圖 是一個(gè)由先行進(jìn)位加法器組成的單元,電路輸出: ? Fi=Xi?Yi ? Cn+i = Ai?Bi ? Cn+I 。 ▲ 圖 是 74181型 4位 ALU的邏輯圖及其在正邏輯下的功能表 M = L 算 術(shù) 運(yùn) 算S3S2S1S0M = H邏 輯 運(yùn) 算Cn=1 Cn=0L L L L A A A + 1L L L H A + B A + B (A + B) 加 1L L H L A ? B A + B (A + B) 加 1L L H H “ 0 ” 減 1 “ 0 ”L H L L A ? B A 加 (A ? B) A 加 (A ? B) 加 1L H L H B (A ? B) 加 ( A + B) (A ? B) 加 ( A + B) 加 1L H H L A ? B A 減 B 減 1 A 減 BL H H H A ? B (A ? B) 減 1 A ? BH L L L A + B A 加 (A ? B) A 加 (A ? B) 加 1H L L H A ? B A 加 B A 加 B 加 1H L H L B (A ? B) 加 ( A + B) (A ? B) 加 ( A + B) 加 1H L H H A ? B (A ? B) 減 1 A ? BH H L L “ 1 ” A 加 A A 加 A 加 1H H L H A + B A 加 ( A + B) A 加 ( A + B) 加 1H H H L A + B A 加 ( A + B) A 加 ( A + B) 加 1H H H H A A 減 1 A圖 (a) 正邏輯功能表 圖3.9(b) 74181型ALU邏輯圖 1. ALU實(shí)現(xiàn)加法操作的原理 ▲ 當(dāng) S3S2S1S0=HLLH, M=L時(shí), ALU實(shí)現(xiàn)對(duì) A3A2A1A0和 B3B2B1B0兩個(gè) 4位二進(jìn)制代碼在進(jìn)位輸入 Cn參與下的加法運(yùn)算; ? 即: Fi= Ai?Bi?Cn+i(i=3,2,1,0)。 ◆ 74181型 4位 ALU中規(guī)模集成電路工作原理 ? 能對(duì)兩個(gè) 4位二進(jìn)制代碼 A3A2A1A0和 B3B2B1B0進(jìn)行 16種算術(shù)運(yùn)算(當(dāng) M為低電位時(shí))和 16種邏輯運(yùn)算(當(dāng)M為高電位時(shí)),產(chǎn)生結(jié)果 F3F2F1F0。 ? Cm=Gm+PmC0 ? Pm 和 Gm分別為: Pm= P4P3P2P1 Gm= G4 +P4 G3 + P4P3G2 +P4P3P2G1 ? 應(yīng)用于四個(gè) 4位先行進(jìn)位加法器,則有 : Cm1=Gm1+Pm1C0 Cm2=Gm2+Pm2Cm1 = Gm2+ Pm2Gm1 + Pm2 Pm1C0 Cm3=Gm3+Pm3Cm2 = Gm3+ Pm3Gm2 + Pm3Pm2Gm1+ Pm3 Pm2 Pm1C0 Cm4=Gm4+Pm4Cm3 = Gm4+ Pm4Gm3 + Pm4Pm3Gm2+ Pm4Pm3Pm2 Gm1+ Pm4Pm3Pm2P m1C0 圖 組間由先行進(jìn)位鏈構(gòu)成的 16位加法器 ▲ 可將并行進(jìn)位的概念用于更大位數(shù)的加法器上,隨著加法器位數(shù)的增加,加法電路變得越來(lái)越復(fù)雜。 圖 組間為串行進(jìn)位構(gòu)成的 16位加法器 ▲ 并行進(jìn)位的概念可用于 16位加法器;進(jìn)一步提高 16位加法器的運(yùn)算速度。 ? Gi表示 進(jìn)位產(chǎn)生函數(shù) ,當(dāng) Xi、 Yi均為“ 1‖時(shí),不管有無(wú)低位進(jìn)位輸入,本位一定向高位產(chǎn)生進(jìn)位輸出。 1) X Y2均為“ 1‖; 2) X Y2任一個(gè)為“ 1‖, 且進(jìn)位 C1為“ 1‖。 2) X Y1任一個(gè)為 “ 1‖,且進(jìn)位 C0為 “ 1‖。 圖 n位加法器 ◆ 先行進(jìn)位或并行進(jìn)位加法器 ? 預(yù)先形成各位進(jìn)位,將進(jìn)位信號(hào)同時(shí)送到各位全加器的進(jìn)位輸入端。 Xi Yi Hi Ci 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 表 半加運(yùn)算的真值表 HA ? ? Xi Yi Xi Yi Hi Ci Hi Ci 圖 (a) 邏輯圖 (b) 符號(hào)表示 ▲ 表 是兩個(gè)一位二進(jìn)制數(shù) Xi、 Yi相加的真值表, Hi和 Ci的邏輯表達(dá)式如下: iiiii YXYXH ??iii YXC ?2. 全加器 ▲ 考慮低位進(jìn)位的加法運(yùn)算就是全加運(yùn)算,實(shí)現(xiàn)全加運(yùn)算的電路稱為全加器。 ▲ 兩個(gè)一位二進(jìn)制數(shù)相加 (不考慮低位的進(jìn)位 ),稱為半加。 ? 移位線路是一個(gè)多路選擇器。 ? 如:運(yùn)算器中的乘除運(yùn)算和某些邏輯運(yùn)算是通過(guò)移位操作來(lái)實(shí)現(xiàn)的。 ? 堆棧指針 SP(Stack Pointer),它指示了堆棧的使用情況。 ? 程序狀態(tài)字 PSW(Program Status Word),它存放著指令執(zhí)行結(jié)果的某些狀態(tài);如是否溢出、是否為零、是否有進(jìn)位 /借位、是否為負(fù)等。 ? 如: ADD A, Rj ▲ 運(yùn)算器需要 記錄下指令執(zhí)行過(guò)程中的重要狀態(tài)標(biāo)記 ,以及提供運(yùn)算前后數(shù)據(jù)的暫存緩沖等,這通過(guò)在運(yùn)算器中設(shè)置若干專用寄存器來(lái)實(shí)現(xiàn)。 ? 通用寄存器的數(shù)量越多,對(duì)提高運(yùn)算器性能和程序執(zhí)行速度越有利。 圖 ALU的邏輯符號(hào)表示與多路開(kāi)關(guān) 2. 通用寄存器組 ▲ 運(yùn)算器內(nèi)設(shè)有若干通用寄存器,構(gòu)成通用寄存器組;用于 暫時(shí)存放參加運(yùn)算的數(shù)據(jù)和某些中間結(jié)果 。 ALU是運(yùn)算器的核心。 基本組成 1. 算術(shù)邏輯運(yùn)算單元 ALU ▲ 運(yùn)算器實(shí)現(xiàn)了對(duì)計(jì)算機(jī)中 數(shù)據(jù)的加工處理 ;包括數(shù)值數(shù)據(jù)的 算術(shù)運(yùn)算 和 邏輯數(shù)據(jù)的 邏輯操作 。第 3章 運(yùn)算器與運(yùn)算方法 本章學(xué)習(xí)導(dǎo)讀: ( 1)運(yùn)算器由哪幾部分組成? ( 2)如何實(shí)現(xiàn)定點(diǎn) /浮點(diǎn)的加、減、乘、除和移位等操作? ( 3)為了提高運(yùn)算器速度采取了哪些措施? ● 運(yùn)算器部件 是計(jì)算機(jī)中的執(zhí)行部件,它可以對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行各種 算術(shù)和邏輯運(yùn)算 ; ? 運(yùn)算器也是計(jì)算機(jī) 內(nèi)部數(shù)據(jù)信息的重要通路 。 ● 本章重點(diǎn)介紹運(yùn)算器的核心部件 ——算術(shù)邏輯運(yùn)算單元 ALU的組成與工作原理 ,以及數(shù)據(jù)在運(yùn)算器的基本 運(yùn)算方法 。 ▲ 運(yùn)算器中完成數(shù)據(jù)算術(shù)與邏輯運(yùn)算的部件稱之為算術(shù)與 邏輯運(yùn)算單元 ( Arithmetic and Logic Unit,簡(jiǎn)稱 ALU)。 ▲ ALU通常表示為 兩個(gè)輸入端口 , 一個(gè)輸出端口 和 多個(gè)功能控制信號(hào)端 的這樣的一個(gè)邏輯符號(hào)。 ▲ 在運(yùn)算器中用來(lái)提供一個(gè)操作數(shù)并存放運(yùn)算結(jié)果的通用寄存器稱作為 累加器 。 ? 通用寄存器組是對(duì)用戶開(kāi)放的,用戶可以 通過(guò)指令去使用這些寄存器 。 ? 循環(huán)計(jì)數(shù)器 對(duì)程序員是透明的。它對(duì)程序員是開(kāi)放的。 4. 附加的控制線路 ▲ 在運(yùn)算器中附加一些控制線路;以達(dá)到運(yùn)算速度快,運(yùn)算精度高的目的。在 ALU的輸出端設(shè)置移位線路來(lái)實(shí)現(xiàn)左移、右移和直送。 ? 圖 實(shí)現(xiàn)移位功能的多路選擇器 算術(shù)與邏輯單元 半加器與全加器 ◆ 運(yùn)算器中各種運(yùn)算都是分解成加法運(yùn)算進(jìn)行的,因此加法器是計(jì)算機(jī)中最基本的運(yùn)算單元。實(shí)現(xiàn)半加操作的電路,稱為半加器。 ▲ 根據(jù)真值表表 可寫(xiě)出 Fi和 Ci的邏輯表達(dá)式: 11111 ????? ??????? iiiiiiiiiiiiiiii CYXCYXCYXCYXCYXFiiiiiiiiiiiiiiiiii YXCYXCYXCYXCYXCYXC ??????? ????? 11111 )(表 全加運(yùn)算的真值表 圖 全加器的邏輯圖和符號(hào)表示 ▲ 實(shí)現(xiàn)邏輯表達(dá)式的全加器邏輯圖和全加器的符號(hào)表示 串行進(jìn)位與并行進(jìn)位 ◆ n個(gè)全加器相連可得 n位的加法器;圖 或行波進(jìn)位加法器。 ▲ 就 4位加法器,討論一下其進(jìn)位 C C C3和 C4的產(chǎn)生條件: ① 下述條件中任一條滿足就可生成 C1=1: 1) X Y1均為 “ 1‖。 ? 可得 C1的表達(dá)式為: C1=X1Y1+( X1+Y1) C0 ② 下述條件中任一條滿足,就可生成 C2=1。 ? 可得 C2的表達(dá)式為: C2=X2Y2+(X2+Y2)C1 =X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0 ③ 同理, 可得 C3的表達(dá)式為: C3=X3Y3+(X3+Y3)C2 =X3Y3+(X3+Y3)[X2Y2+(X2+Y2)X1Y1+ (X2+Y2)(X1+Y1)C0] = X3Y3+(X3+Y3)X2Y2+(X3+Y3) (X2+Y2)X1Y1+ (X3+Y3) (X2+Y2)(X1+Y1)C0 ④ 同理 ,可得 C4的表達(dá)式為: C4=X4Y4+(X4+Y4)C3 =X4Y4+(X4+Y4)[X3Y3+(X3+Y3)X2Y2+ (X3+Y3)(X2+Y2)X1Y1+(X3+Y3) (X2+Y2)(X1+Y1)C0] =X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+ (X4+Y4)(X3+Y3)(X2+Y2)X1Y1+ (X4+Y4) (X3+Y3) (X2+Y2)(X1+Y1)C0 ▲ 定義兩個(gè)輔助函數(shù): Pi= Xi+Yi Gi= XiYi ? Pi表示進(jìn)位 傳遞函數(shù) ,當(dāng) Xi、 Yi中有一個(gè)為“ 1‖時(shí),若有低位進(jìn)位輸入,則本位向高位傳送進(jìn)位。 ▲ 將 Pi、 Gi代入前面的 C1~C4式,可得: C1=G1+P1C0 C2=G2+P2 G1+ P2P1C0 C3=G3+P3 G2+ P3 P2 G1+ P3 P2P1C0 C4=G4+P4 G3+ P4P3 G2+ P4P3 P2 G1 +P4P3 P2P1C0 ▲ ―先行進(jìn)位產(chǎn)生電路” (圖 (a))及“ 4位先行進(jìn)位加法器”的邏輯圖(圖 (b)) 圖 (a) 先行進(jìn)位產(chǎn)生電路 圖 (b) 4位先行進(jìn)位加法器 ▲ 四個(gè) 4位先行進(jìn)位加法器串接起來(lái)構(gòu)成 16位加法器 ? 在各加法單元之間,進(jìn)位信號(hào)是串行傳送的,而在加法單元內(nèi),進(jìn)位信號(hào)是并行傳送的。 ? Cm表示 4位加法器的進(jìn)位輸出, Pm表示 4位加法器的進(jìn)位傳遞輸出, Gm表示 4位加法器的進(jìn)位產(chǎn)生輸出。 ALU部件 ◆ ALU是一種能進(jìn)行多種算術(shù)運(yùn)算與邏輯運(yùn)算的組合邏輯電路,它的基本邏輯結(jié)構(gòu)是先行進(jìn)位加法器。 ? 16種運(yùn)算操作由 S3S2S1S0四位控制選擇 ? Cn是 ALU的最