版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、東南大學(xué)計(jì)算機(jī)學(xué)院,主講教師: 徐造林,計(jì)算機(jī)系統(tǒng)組成,第4章 指令系統(tǒng), 計(jì)算機(jī)指令 指令:就是要計(jì)算機(jī)執(zhí)行某種操作的命令;有微指令、機(jī)器指令和宏指令之分。, 計(jì)算機(jī)能執(zhí)行的機(jī)器指令全體稱為該機(jī)的指令系統(tǒng) 指令系統(tǒng)是軟件編程的出發(fā)點(diǎn)和硬件設(shè)計(jì)的依據(jù),它衡量機(jī)器硬件的功能,反映硬件對(duì)軟件支持的程度。,4.1 指令系統(tǒng)概述 4.1.1 指令系統(tǒng)簡(jiǎn)介, 指令系統(tǒng)主要是為計(jì)算機(jī)應(yīng)用、編譯程序和操作系統(tǒng)提供支持。, 指令系統(tǒng)中指令的設(shè)計(jì),需要從性能提高和帶來(lái)的成本增加兩個(gè)方面考慮。,1. 指令系統(tǒng)組成, 兩種類型的指令,(1)非特權(quán)指令:這類指令主要供用戶使用,又可分為功能性指令和非功能性指令兩種。,
2、(2)特權(quán)指令:主要供系統(tǒng)程序員使用,一般不允許用戶使用。其中包括I/O指令、停機(jī)等待指令、存儲(chǔ)管理及保護(hù)指令、控制系統(tǒng)狀態(tài)指令、診斷指令等。,2. 對(duì)指令系統(tǒng)性能的要求, 完備性:指令系統(tǒng)應(yīng)功能齊全,給用戶帶來(lái)方便。, 規(guī)整性:指令系統(tǒng)的正交性、均勻性、對(duì)稱性。, 兼容性:不同機(jī)種之間具有相同的基本結(jié)構(gòu)和共同的基本指令集,目的是給軟件資源的重復(fù)利用帶來(lái)方便。, 可擴(kuò)充性:指令系統(tǒng)中要保留一定的指令字空間,以便在需要時(shí)進(jìn)行指令系統(tǒng)的功能擴(kuò)充。,4.1.2 指令的格式, 指令一般的格式如下:,2. 地址碼 地址碼指出指令中操作數(shù)所在的存儲(chǔ)器地址或寄存器地址。,1. 操作碼 操作碼指出指令應(yīng)該執(zhí)行
3、什么性質(zhì)的操作和具有何種功能;n位操作碼字段的指令系統(tǒng)最多能夠表示2n條指令。, 按指令包含的地址的個(gè)數(shù)可分:, 有兩種可能:一是無(wú)需任何操作數(shù),如空操作指令、停機(jī)指令等。二是所需的操作數(shù)地址是默認(rèn)的。, 指令字長(zhǎng)度,1. 指令長(zhǎng)度應(yīng)為存儲(chǔ)器基本字長(zhǎng)的整數(shù)倍,2. 指令字長(zhǎng)應(yīng)盡量短 指令短,可減少所需存儲(chǔ)量和加快運(yùn)行速度,但不能為了使指令短而影響指令系統(tǒng)的完備性和規(guī)整性。, 計(jì)算機(jī)中CPU能直接處理的二進(jìn)制的位數(shù)稱為機(jī)器字長(zhǎng);, 指令字長(zhǎng)度:一個(gè)指令字包含的所有二進(jìn)制代碼的位數(shù)。有等長(zhǎng)指令字結(jié)構(gòu)和變長(zhǎng)指令字結(jié)構(gòu)。, 指令字長(zhǎng)度選取原則, 指令助記符,表4.1 常用指令助記符,4.1.3 指令系
4、統(tǒng)設(shè)計(jì)概論, 任務(wù)是確定所有機(jī)器指令的格式、類型、操作以及對(duì)操作數(shù)的訪問(wèn)方式。出發(fā)點(diǎn)是提高指令系統(tǒng)的性能/價(jià)格比。,1. 指令系統(tǒng)設(shè)計(jì)的基本思路, 基本設(shè)計(jì)思想: (1)確定計(jì)算機(jī)系統(tǒng)中的基本操作(包括操作系統(tǒng)和高級(jí)語(yǔ)言的)是由硬件實(shí)現(xiàn)還是由軟件實(shí)現(xiàn);,(2)按照盡量縮短平均碼長(zhǎng)、方便譯碼與執(zhí)行的原則,設(shè)計(jì)指令字格式。, 功能設(shè)計(jì)和指令格式設(shè)計(jì), 基本功能設(shè)計(jì):確定指令系統(tǒng)包含哪些基本操作;, 優(yōu)化功能設(shè)計(jì):從對(duì)目標(biāo)程序、操作系統(tǒng)、高級(jí)語(yǔ)言的支持角度,確定哪些常用的、相對(duì)復(fù)雜的操作(指令串)可作為指令系統(tǒng)包含的操作(指令);, 指令格式設(shè)計(jì):設(shè)計(jì)出平均碼長(zhǎng)較短、便于譯碼和執(zhí)行的指令字;, 規(guī)整
5、和優(yōu)化設(shè)計(jì):形成長(zhǎng)度規(guī)整的、信息冗余較小的指令字。, 指令所占存儲(chǔ)空間是否盡可能??;表現(xiàn)在指令中代碼密度是否高、信息冗余量是否少;,2. 衡量指令系統(tǒng)性能的指標(biāo), 指令代碼對(duì)應(yīng)用需求的效率是否高,表現(xiàn)在非特權(quán)指令中功能性指令所占比例是否高、指令中操作數(shù)的訪問(wèn)范圍滿足應(yīng)用需求的概率是否大、對(duì)操作系統(tǒng)和編譯程序的支持程度是否高;, 指令的譯碼速度、執(zhí)行速度是否快。,4. 2 操作數(shù)類型及存儲(chǔ)方式 4.2.1 操作數(shù)類型, 數(shù)值型數(shù)據(jù);字符;地址;邏輯數(shù)據(jù)。, 操作數(shù)類型在指令中的表示, 指令中增加一些二進(jìn)制位標(biāo)識(shí);可選擇存儲(chǔ)時(shí)標(biāo)識(shí)或處理時(shí)標(biāo)識(shí)。, 操作數(shù)的4種類型, 標(biāo)識(shí)方法,(a) 每個(gè)操作數(shù)標(biāo)
6、識(shí),(b) 所有操作數(shù)共一個(gè)標(biāo)識(shí),圖4.1 二地址指令數(shù)據(jù)類型表示方法, 通常將操作碼與數(shù)據(jù)類型標(biāo)識(shí)合并成新的操作碼。,4.2.2 操作數(shù)存儲(chǔ)方式, 操作數(shù)可以存儲(chǔ)在指令、寄存器、堆棧和存儲(chǔ)器中;, 數(shù)據(jù)存儲(chǔ)采用小端存儲(chǔ)方式的處理機(jī)有Intel 80 x86/Pentium,DEC VAX,DEC Alpha等。,4.2.3 數(shù)據(jù)對(duì)齊方式, 操作數(shù)應(yīng)存儲(chǔ)在存儲(chǔ)器空間陣列的同一行;, 信息按整數(shù)邊界存儲(chǔ)原則:數(shù)據(jù)長(zhǎng)度為2n個(gè)字節(jié),則該數(shù)據(jù)在存儲(chǔ)器中最小存儲(chǔ)地址的最低n位應(yīng)為0。,圖4.3 數(shù)據(jù)的邊界對(duì)齊,4.2.4 堆棧存取方式, 堆棧是一種按特定順序訪問(wèn)的存儲(chǔ)區(qū);其特點(diǎn)是后進(jìn)先出(LIFO)或
7、先進(jìn)后出(FILO)。, 堆棧中存放的最上面數(shù)據(jù)的位置是不停變化的,該位置稱為棧頂;, 存取數(shù)據(jù)只能在棧頂進(jìn)行,不可中間插入或者從中間將數(shù)據(jù)取出。, 堆棧和其它形式的存儲(chǔ)部件之間的差別: (1)堆棧在數(shù)據(jù)存取時(shí)不需要地址,而其它存儲(chǔ)部件在數(shù)據(jù)存取時(shí)需要地址;, 堆棧操作只有入棧(push)和出棧(pop)兩種。,(2)堆棧只能按先進(jìn)后出或后進(jìn)先出方式存取數(shù)據(jù),而其它存儲(chǔ)部件可以根據(jù)地址隨機(jī)存取數(shù)據(jù);,(3)堆棧不可以在同一位置連續(xù)寫入或取出數(shù)據(jù),而其它存儲(chǔ)部件可以。,1. 用移位寄存器實(shí)現(xiàn)堆棧, 堆棧的實(shí)現(xiàn)方法,圖4.4,2. 內(nèi)存中開辟堆棧區(qū) 選取固定的存儲(chǔ)器單元為堆棧區(qū),存儲(chǔ)器堆棧的具體位
8、置由程序員指定,空間大小由程序員分配;,1)自底向上生成堆棧(滿遞減和空遞減): 建棧時(shí)堆棧指針SP指向棧底下面一個(gè)單元(棧底是堆棧中地址最大的單元); 入棧操作(PUSH)步驟: i)SP-1SP ii)存入數(shù)據(jù) (SP) 出棧操作(POP)步驟: i)(SP)內(nèi)容讀出 ii)SP+1SP, 建棧時(shí)設(shè)置堆棧指針SP,指示棧頂位置。,圖4.5 自底向上堆棧操作示例,2)自頂向下生成堆棧(滿遞增和空遞增) : 堆棧建棧時(shí)堆棧指針SP指向棧底上面一個(gè)單元(棧底是堆棧中地址最小的單元),, 入棧操作(PUSH)步驟: i) SP+1SP ii) 存入數(shù)據(jù)(SP) 出棧操作(POP)步驟: i)(SP
9、)內(nèi)容讀出 ii) SP-1SP, 兩者指針變化方向不同。,例2 某存儲(chǔ)器堆棧,棧底地址 Bottom=3000H,棧中已壓入兩個(gè)數(shù)據(jù)a和b,SP為堆棧指針。 (1)畫出此時(shí)堆棧示意圖。 (2)現(xiàn)將數(shù)據(jù) c,d 和 e 按順序壓入堆棧,且用累加器AC 進(jìn)行數(shù)據(jù)交換,寫出數(shù)據(jù)入棧步驟,畫出數(shù)據(jù)入棧后的堆棧情況。 (3)寫出數(shù)據(jù) e 出棧的操作步驟。, 堆棧操作對(duì)臨時(shí)保存和恢復(fù)某些數(shù)據(jù)極為簡(jiǎn)便。堆棧存取方式對(duì)應(yīng)的操作有建棧、入棧和出棧三種,可對(duì)應(yīng)指令系統(tǒng)中的三條指令。, 堆棧存取方式在指令中的應(yīng)用,解:(1)堆棧情況如下圖所示,2FFFH,4.3 指令系統(tǒng)功能設(shè)計(jì), 指令集中包含的所有操作功能的集
10、合稱為指令系統(tǒng)的功能集, 操作碼是指令系統(tǒng)功能集中各種功能(操作)的編碼。,4.3.1 功能類型分類,1. 數(shù)據(jù)傳送類指令, 傳送(MOV)指令:實(shí)現(xiàn)寄存器與寄存器間、常數(shù)操作數(shù)與寄存器間的數(shù)據(jù)傳送;, 取數(shù)(LOAD或LD)指令:實(shí)現(xiàn)存儲(chǔ)器到寄存器的數(shù)據(jù)傳送;, 存數(shù)(STORE或ST)指令:實(shí)現(xiàn)常數(shù)操作數(shù)或寄存器到存儲(chǔ)器的數(shù)據(jù)傳送; 數(shù)據(jù)交換(XCHG)指令:實(shí)現(xiàn)兩個(gè)數(shù)據(jù)之間的交換,可以看成是雙向傳送;, 入棧(PUSH)指令:實(shí)現(xiàn)寄存器或存儲(chǔ)器到堆棧的數(shù)據(jù)傳送; 出棧(POP)指令:實(shí)現(xiàn)堆棧到寄存器或存儲(chǔ)器的數(shù)據(jù)傳送。, 指令主要包括加(ADD)、減(SUB)、乘(MUL)、除(DIV)
11、指令,求反(NOT)、求補(bǔ)(NEG)指令,算術(shù)移位(SLA、SRA)、算術(shù)比較(COMP)指令等。,2. 算術(shù)運(yùn)算類指令,為區(qū)分?jǐn)?shù)據(jù)類型和運(yùn)算規(guī)則,形成擴(kuò)展運(yùn)算,如十進(jìn)制運(yùn)算、帶進(jìn)位運(yùn)算、雙精度運(yùn)算等指令。, 指令主要包括邏輯與(AND)、邏輯或(OR)、邏輯異或(XOR)、邏輯非(NOT)、邏輯移位(SLL、SRL)、循環(huán)移位(ROL、ROR、ROLC、RORC)指令。,3. 邏輯運(yùn)算類指令, 指令主要包括無(wú)條件轉(zhuǎn)移(JMP)、條件轉(zhuǎn)移(Jcc)、跳步(SKIP)、轉(zhuǎn)子(CALL)、返主(RET)、循環(huán)(LOOP)指令等。 。,4. 程序控制類指令, 當(dāng)前指令地址碼給出直接地址或相對(duì)于當(dāng)前指
12、令位置的偏移地址,, 實(shí)現(xiàn)CPU與外部設(shè)備間的數(shù)據(jù)交換、傳送控制命令及取得設(shè)備狀態(tài)等功能。,5. 輸入輸出類指令, 這類指令有輸入(IN)和輸出(OUT)兩種指令。, 指令包含字符串轉(zhuǎn)換、字符串傳送、字符串比較、字符串查找、字符串抽取、字符串替換等指令。,6. 字符串類指令, 能夠改變系統(tǒng)的工作狀態(tài)、實(shí)現(xiàn)操作系統(tǒng)所需要的特殊功能。大多數(shù)為特權(quán)指令。,7. 系統(tǒng)控制類指令,包括停機(jī)(HALT)、開中斷(STI)、關(guān)中斷(CLI)、自陷(Trap,即軟中斷INTn)、系統(tǒng)管理、存儲(chǔ)管理等指令。, 特定功能的專用指令;包含狀態(tài)寄存器置位(STC、CLD等)、暫停(WAIT)、測(cè)試(TEST)、空操作
13、(NOP)、中斷返回(IRET)等指令。 。,8. 其它指令,4.3.2 指令系統(tǒng)功能集設(shè)計(jì), 指令系統(tǒng)是計(jì)算機(jī)軟、硬件主要交界面,直接反映了計(jì)算機(jī)的性能/價(jià)格。, 復(fù)雜指令集計(jì)算機(jī)CISC(Complex Instruction Set Computer)的提出。, 計(jì)算機(jī)的硬件成本不斷下降,軟件成本不斷上升;, 強(qiáng)化指令功能,實(shí)現(xiàn)軟件功能向硬件功能轉(zhuǎn)移;, 指令系統(tǒng)增加了越來(lái)越多功能強(qiáng)大的復(fù)雜命令,以便使機(jī)器指令的功能接近高級(jí)語(yǔ)言語(yǔ)句的功能。, 指令系統(tǒng)越來(lái)越復(fù)雜的出發(fā)點(diǎn): 使目標(biāo)程序得到優(yōu)化:把原來(lái)要用一段程序才能完成的功能,只用一條指令來(lái)實(shí)現(xiàn);, 給高級(jí)語(yǔ)言提供更好的支持:改進(jìn)指令系統(tǒng)
14、,設(shè)置一些在語(yǔ)義上接近高級(jí)語(yǔ)言語(yǔ)句的指令,就可以減輕編譯的負(fù)擔(dān),提高編譯效率;, 提供對(duì)操作系統(tǒng)的支持:操作系統(tǒng)日益發(fā)展,其功能也日趨復(fù)雜,要求指令系統(tǒng)提供越來(lái)越復(fù)雜的功能。, 龐大的指令系統(tǒng)中,只有算術(shù)邏輯運(yùn)算、數(shù)據(jù)傳送、轉(zhuǎn)移、子程序調(diào)用等幾十條基本指令才是常使用的,在程序中出現(xiàn)的概率占到80%以上;, 復(fù)雜的指令系統(tǒng)帶來(lái)的問(wèn)題 計(jì)算機(jī)的結(jié)構(gòu)也越來(lái)越復(fù)雜,不僅增加了計(jì)算機(jī)的研制周期和成本,而且難以保證其正確性,有時(shí)還可能降低系統(tǒng)的性能;, 需要大量硬件支持的復(fù)雜指令的利用率卻很低,造成了硬件資源的大量浪費(fèi)。, 各種高級(jí)語(yǔ)言的語(yǔ)義之間有很大差別;不可能設(shè)計(jì)出一種能對(duì)所有高級(jí)語(yǔ)言都能提供很好支持
15、的指令系統(tǒng)。, 精簡(jiǎn)指令集計(jì)算機(jī)RISC(Reduced Instruction Set Computer)的提出。, 指令系統(tǒng)越復(fù)雜,包含的指令越多,編譯時(shí)生成目標(biāo)程序的方法也越多,對(duì)最終優(yōu)化編譯造成困難。, 精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)特點(diǎn) 通過(guò)簡(jiǎn)化指令使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理,從而提高機(jī)器的性能。,指令數(shù)目較少,一般都選用使用頻度最高的一些簡(jiǎn)單指令;,指令長(zhǎng)度固定,指令格式種類少,尋址方式種類少;,大多數(shù)指令可在一個(gè)機(jī)器周期內(nèi)完成;,通用寄存器數(shù)量多,只有存數(shù)/取數(shù)指令訪問(wèn)存儲(chǔ)器,而其余指令均在寄存器之間進(jìn)行操作。, 采用RISC技術(shù) 指令系統(tǒng)可以采用速度較快的硬連線邏輯來(lái)實(shí)現(xiàn),且更適合于采用指
16、令流水技術(shù),可使指令的執(zhí)行速度進(jìn)一步提高;, 指令數(shù)量少,固然使編譯工作量加大,但由于指令系統(tǒng)中的指令都是精選的,編譯時(shí)間少,反過(guò)來(lái)對(duì)編譯程序的優(yōu)化又是有利的;, CISC和RISC技術(shù)都在發(fā)展,兩者都各有自己的優(yōu)點(diǎn)和缺點(diǎn)。, 結(jié)構(gòu)更適合VLSI、并行處理,更能夠提高計(jì)算機(jī)的性能;, CISC與RISC之爭(zhēng)論 70年代中期,IBM公司、斯坦福大學(xué)、加州大學(xué)伯克利分校等機(jī)構(gòu)分別先后開始對(duì)CISC技術(shù)進(jìn)行研究,其成果分別用于IBM、SUN、MIPS等公司的產(chǎn)品中;, 八十年代中期,RISC技術(shù)蓬勃發(fā)展,先后出現(xiàn)了PowerPC、MIPSR4400、MC88000、Super Spare、Intel
17、0860等高性能RISC芯片以及相應(yīng)的計(jì)算機(jī);, RISC也隨著速度、芯片密度的不斷提高,使RISC系統(tǒng)日趨復(fù)雜;, CISC機(jī)采用了部分RISC先進(jìn)技術(shù)(強(qiáng)調(diào)指令流水線、分級(jí)Cache 和多設(shè)通用寄存器),其性能更加提高。,4. 4 尋址方式, 指令如何指定操作數(shù)或操作數(shù)地址稱為尋址方式。, 確定指令系統(tǒng)的尋址方式時(shí),須考慮以下幾點(diǎn): 希望指令內(nèi)所含地址盡可能短; 希望能訪問(wèn)盡可能大的存儲(chǔ)空間; 尋址方法盡可能簡(jiǎn)單;, 操作數(shù)的尋址方式主要解決的是操作數(shù)存放在指令、寄存器和存儲(chǔ)器中的尋址問(wèn)題。, 在不改變指令的情況下,僅改變地址的實(shí)際值,從而能方便地訪問(wèn)數(shù)組、串、表格等較復(fù)雜數(shù)據(jù)。,4.4.
18、1 常用的尋址方式,1. 立即尋址 操作數(shù)在指令中;Data=A。,圖4.6,2. 直接尋址 指令直接給出操作數(shù)(有效)地址;即EA=A。,3. 存儲(chǔ)器間接尋址 操作數(shù)地址在內(nèi)存中;即EA =(A)。,4. 寄存器(直接)尋址, 寄存器尋址有以下優(yōu)點(diǎn): CPU寄存器數(shù)量遠(yuǎn)小于內(nèi)存單元,所以寄存器號(hào)比內(nèi)存地址短,因而寄存器尋址方式指令短; 不用訪存,指令執(zhí)行速度快。, 指令地址碼字段給出存放操作數(shù)的寄存器編號(hào); 即data=(R)。,5寄存器間接尋址 操作數(shù)地址在指令指定的CPU某個(gè)寄存器中;EA=(R);如8086指令 MOV AL,BSI,6相對(duì)尋址 操作數(shù)地址為程序計(jì)數(shù)器PC中的內(nèi)容與位移
19、量A之和,即EA=(PC)+ A。,圖4.11 相對(duì)尋址,7基址尋址 把由指令中給出的地址(位移量)與CPU 中的某個(gè)基址寄存器相加而得到實(shí)際的操作數(shù)地址。,EA=(R)基址+A,圖4.12 基址尋址,8寄存器變址尋址 操作數(shù)地址為變址寄存器中的內(nèi)容與位移量之和;即EA=(R)變址+A。, 變址尋址主要解決程序內(nèi)部的循環(huán)問(wèn)題;基址尋址則要求基址寄存器的內(nèi)容能提供整個(gè)主存范圍的尋址能力;在多道程序運(yùn)行環(huán)境下,實(shí)現(xiàn)程序的再定位。,9隱含尋址方式 指令沒有明顯地給出操作數(shù)地址,而在操作碼中隱含著操作數(shù)地址。如操作數(shù)隱含在累加器,堆棧內(nèi)。,10其它尋址方式 有的計(jì)算機(jī)指令系統(tǒng)中還有更復(fù)雜的尋址方式,如
20、基址變址尋址、位尋址、塊尋址、串尋址等等。, 在使用機(jī)器時(shí),不僅要了解該機(jī)總體上有哪些尋址方式,還應(yīng)了解各指令具體有哪些尋址方式。,例. 某計(jì)算機(jī)有變址尋址、間接尋址和相對(duì)尋址等尋址方式,設(shè)當(dāng)前指令的地址碼部分為001AH,正在執(zhí)行的指令所在的地址為1F05H,變址寄存器中的內(nèi)容為23A0H。請(qǐng)?zhí)畛洌?(1)當(dāng)執(zhí)行取數(shù)指令時(shí),如為變址尋址方式,則取出的數(shù)為 。,(2)如為間接尋址方式,則取出的數(shù)為 。,(3)當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),轉(zhuǎn)移地址為 。,解:(1)變址尋址 當(dāng)前指令的地址碼為001AH,變址寄存器中的內(nèi)容為23A0H; 操作數(shù)地址為: (23A0H + 001AH)=23BAH; 則取出的
21、數(shù)為1748H。, 已知存儲(chǔ)器的部分地址及相應(yīng)內(nèi)容:,(2)間接尋址:地址碼為操作數(shù)地址; 則取出的數(shù)為2600H 。,(3)正在執(zhí)行的指令所在的地址為1F05H; 當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),轉(zhuǎn)移地址為: (IF05H+2+001AH)=1F21H。,例. 某計(jì)算機(jī)指令格式如下:,圖中X為尋址特征位,且X=0時(shí)不變址; X=1時(shí)用變址寄存器X1進(jìn)行變址;X=2時(shí)用變址寄存器X2進(jìn)行變址;X=3時(shí)相對(duì)尋址。設(shè)(PC)=1234H,(X1)=0037H,(X2)=1122H,請(qǐng)確定下列指令的有效地址。,(1)4420H(2)2244H(3)1322H(4)3521H(5)6723H,1122H+0044H
22、,4.4.2 尋址方式設(shè)計(jì), 尋址方式設(shè)計(jì)的主要內(nèi)容:, 指令系統(tǒng)的尋址方式集,是指令系統(tǒng)支持的尋址方式的集合;, 指令系統(tǒng)中每條指令的尋址方式子集,即每條指令支持的尋址方式的集合;, 尋址方式集中每種尋址方式的性能參數(shù)。, 指令系統(tǒng)尋址方式集分為常用的和必須的兩種類型。,1. 指令系統(tǒng)尋址方式集設(shè)計(jì), 頻帶分析法: 對(duì)大量應(yīng)用程序中指令的尋址方式進(jìn)行分析,特別是對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)尋址方式的分解,將所有的尋址方式進(jìn)行分類;, 對(duì)分解后的各種尋址方式進(jìn)行頻率統(tǒng)計(jì),包括每種尋址方式中性能參數(shù)(如立即數(shù)、偏移量范圍等)頻率分布的統(tǒng)計(jì);, 根據(jù)指令系統(tǒng)的風(fēng)格及計(jì)算機(jī)的性能要求,將使用頻率較高的尋址方式作為
23、指令系統(tǒng)尋址方式集的常用尋址方式。, 解決常用尋址方式設(shè)計(jì)中對(duì)寄存器、存儲(chǔ)器尋址的遺漏問(wèn)題。, 選擇使用頻率最高的對(duì)寄存器或存儲(chǔ)器尋址(常用尋址方式中所缺的)的一種尋址方式作為必須尋址方式中的尋址方式。,(2)尋址方式集的必須尋址方式設(shè)計(jì), 每條指令的尋址方式子集是那些該指令常用的尋址方式,而不是全部尋址方式;, 設(shè)計(jì)目標(biāo)是為指令系統(tǒng)中每條指令確定它所支持的尋址方式。,2. 指令尋址方式子集設(shè)計(jì),(1)尋址方式子集設(shè)計(jì)不存在必須的尋址方式問(wèn)題, (2)指令系統(tǒng)尋址方式集的設(shè)計(jì)是針對(duì)所有指令進(jìn)行的,而指令尋址方式子集設(shè)計(jì)是針對(duì)某條具體的指令進(jìn)行的。, 指令尋址方式子集與指令系統(tǒng)尋址方式集的設(shè)計(jì)區(qū)
24、別, 性能參數(shù)是指該尋址方式滿足應(yīng)用需求所需要的操作數(shù)或操作數(shù)地址碼位數(shù)。, 寄存器號(hào)編碼長(zhǎng)度設(shè)計(jì) 寄存器號(hào)編碼長(zhǎng)度為log2N位,其中N為指令系統(tǒng)可用寄存器個(gè)數(shù)。,3. 尋址方式性能參數(shù)設(shè)計(jì), 尋址方式中指定專用的寄存器,尋址方式對(duì)應(yīng)地址碼中應(yīng)省略該寄存器號(hào)編碼。, 指令中存儲(chǔ)器地址用相對(duì)于某地址的形式地址表示時(shí),形式地址編碼長(zhǎng)度不受存儲(chǔ)器地址長(zhǎng)度限制。, 存儲(chǔ)器地址編碼長(zhǎng)度設(shè)計(jì) 存儲(chǔ)器地址編碼長(zhǎng)度為log2M位,其中M為指令系統(tǒng)可用存儲(chǔ)器空間。, 尋址方式中立即數(shù)長(zhǎng)度設(shè)計(jì) 根據(jù)應(yīng)用需求對(duì)尋址方式中立即數(shù)值域的要求,確定立即數(shù)值范圍及位數(shù)范圍;, 采用頻帶分析法,在頻率分布中確定對(duì)應(yīng)的立即數(shù)
25、長(zhǎng)度(值域)范圍。,4.5 指令字格式設(shè)計(jì), 指令格式設(shè)計(jì)所要解決的問(wèn)題:,(1)指令系統(tǒng)由哪些指令構(gòu)成? (2)每條指令中操作碼表示什么?為什么這樣編碼?,(3)當(dāng)一條指令的操作數(shù)有多種表示形式時(shí),如何區(qū)分不同的尋址方式? (4)指令字格式如何確定?如何提高指令格式的性能/價(jià)格比?,4.5.1 指令系統(tǒng)指令數(shù)目設(shè)計(jì), 指令系統(tǒng)中的指令必須能夠?qū)崿F(xiàn)指令系統(tǒng)功能集中支持的所有操作;, 指令系統(tǒng)功能集中包含多少個(gè)操作,指令集中就必須對(duì)應(yīng)多少條指令;, 指令系統(tǒng)中指令數(shù)為功能集中操作的數(shù)量加上同一操作對(duì)應(yīng)多種數(shù)據(jù)類型所增加出來(lái)的指令的數(shù)量。,4.5.2 指令字操作碼編碼設(shè)計(jì), 計(jì)算機(jī)硬件識(shí)別和執(zhí)行指
26、令系統(tǒng)的指令是通過(guò)二進(jìn)制編碼實(shí)現(xiàn)的;, 不同操作碼對(duì)應(yīng)不同的操作和對(duì)不同數(shù)據(jù)類型的相同操作。, 如果指令系統(tǒng)功能集共支持N種操作,應(yīng)滿足關(guān)系式:2n-1N2n。所有操作碼的平均碼長(zhǎng)為n位;, 定長(zhǎng)操作碼主要用于具有CISC風(fēng)格指令系統(tǒng)的計(jì)算機(jī)和指令字長(zhǎng)較長(zhǎng)的計(jì)算機(jī)。,2. 變長(zhǎng)操作碼編碼, 變長(zhǎng)操作碼編碼中使用頻率較高的操作碼長(zhǎng)度較短,使用頻率較低的操作碼長(zhǎng)度較長(zhǎng);, 變長(zhǎng)操作碼的平均碼長(zhǎng)為, 定長(zhǎng)操作碼平均碼長(zhǎng)為:log2N 。,4.5.3 指令字尋址方式表示設(shè)計(jì), 設(shè)計(jì)的目標(biāo)是確定操作數(shù)地址的尋址方式用什么方法表示及如何表示。,2. 尋址方式的編碼方法, 該尋址方式編碼必須能夠?qū)θ魏沃噶钸m
27、用,一般采用等長(zhǎng)二進(jìn)制編碼方式。, 這種尋址方式的應(yīng)用范圍較均勻;, 該尋址方式就不必進(jìn)行統(tǒng)一編碼,只要對(duì)具體指令類型進(jìn)行編碼即可。, 尋址方式在地址碼中表示,4.5.4 指令字格式設(shè)計(jì), 設(shè)計(jì)任務(wù)是確定指令系統(tǒng)中各指令的具體組成格式,同時(shí)使指令字格式具有較好的性能/價(jià)格比。,3)尋址方式表示設(shè)計(jì)產(chǎn)生的尋址方式表示方法及編碼; 4)尋址方式設(shè)計(jì)產(chǎn)生的各尋址方式性能參數(shù)。,1. 指令字格式設(shè)計(jì), 變長(zhǎng)編碼格式, 該編碼格式的指令字有多種長(zhǎng)度; 可以有效地減少指令系統(tǒng)中指令字的平均長(zhǎng)度,降低目標(biāo)代碼的長(zhǎng)度;, 但會(huì)使各指令字長(zhǎng)短不一,增加了譯碼器的實(shí)現(xiàn)難度和譯碼時(shí)間; 各指令執(zhí)行時(shí)間懸殊較大,不利
28、于流水和并行處理技術(shù)的應(yīng)用。, 當(dāng)指令數(shù)量和尋址方式較少時(shí),可以有效地減少指令譯碼的復(fù)雜性和提高譯碼速度;, 定長(zhǎng)編碼格式, 但會(huì)使各指令字空間的利用率不夠高,增加了目標(biāo)代碼的長(zhǎng)度;, 指令字長(zhǎng)度均相同;, 指令操作碼采用變長(zhǎng)編碼格式,尋址方式在操作碼中表示;指令系統(tǒng)指令數(shù)量和尋址方式種類較少,多用于RISC計(jì)算機(jī)。, 指令尋址方式少,執(zhí)行速度較快,很適合流水和并行處理技術(shù)的應(yīng)用;, 混合編碼格式, 指令字長(zhǎng)度只有有限的幾種; 通過(guò)提供幾種指令字長(zhǎng)度,期望兼顧目標(biāo)代碼長(zhǎng)度和降低譯碼復(fù)雜性這兩個(gè)目標(biāo);, 對(duì)流水和并行處理技術(shù)的應(yīng)用方便性一般; 指令操作碼和尋址方式表示與變長(zhǎng)編碼方式基本一致,指令
29、數(shù)量和尋址方式種類適中。, IBM 360/370和Intel 80 x86均采用這種編碼方式。,2. 指令字格式優(yōu)化設(shè)計(jì), 優(yōu)化設(shè)計(jì):在不增加指令字長(zhǎng)的前提下,盡可能使指令功能增強(qiáng),冗余空間最少提高代碼密度。,(1)對(duì)操作碼進(jìn)行優(yōu)化 對(duì)操作碼的優(yōu)化:當(dāng)操作碼采用變長(zhǎng)編碼方式時(shí),為提高操作碼的規(guī)整性,減少譯碼器譯碼和實(shí)現(xiàn)難度而進(jìn)行的優(yōu)化;, 對(duì)定長(zhǎng)操作碼:可將相同類型的操作碼集中在一起,減少譯碼成本和提高譯碼速度,或利用指令空閑位作為操作碼擴(kuò)展。,(2)對(duì)地址碼進(jìn)行優(yōu)化 指令字中地址碼字段性能直接影響整個(gè)指令字的功能和性能;, 指令字地址碼優(yōu)化設(shè)計(jì)的兩點(diǎn)原則: 1)當(dāng)?shù)刂反a字段長(zhǎng)度富裕時(shí),可增
30、加尋址方式或地址字,以增加指令的功能;, 優(yōu)化思想:對(duì)高頻率的指令,盡量縮短其指令長(zhǎng)度以提高性能;對(duì)低頻率的指令,主要考慮擴(kuò)展指令功能以提高性能/價(jià)格比。,2)當(dāng)?shù)刂反a字段長(zhǎng)度緊張或不夠時(shí),可采用特定的尋址方式,提高指令的性能/價(jià)格比;或增加指令字長(zhǎng),擴(kuò)展指令的功能。,例:已知微機(jī)中有AX、BX、CX、DX、BP、SP、SI、DI八個(gè)寄存器,BX、BP為基址寄存器,SI、DI為變址寄存器。雙操作數(shù)指令有12條,單操作數(shù)指令有46條,無(wú)操作數(shù)指令有6條。規(guī)定雙操作數(shù)指令必須有一個(gè)操作數(shù)來(lái)自寄存器。請(qǐng)?jiān)O(shè)計(jì)該指令系統(tǒng)。,1)尋址方式設(shè)計(jì),雙操作數(shù)須有寄存器 S/D=0,Ry為源操作數(shù),2)雙操作數(shù)指
31、令,3)單操作數(shù)指令,46條,12條,0 1,1101相對(duì)尋址為轉(zhuǎn)移指令,機(jī)器語(yǔ)言規(guī)整、簡(jiǎn)單,4. 6 指令系統(tǒng)舉例 4.6.1 IBM 370系列機(jī)指令格式, RRE、S、SSE型指令的操作碼為16位,其余指令的操作碼均為8位。, 操作碼的第0位和第1位組合: 00RR型指令,01RX型指令,10RRE型、RS型、S型及SI型指令,11SS型和SSE型指令。, RR和RRE型指令都是寄存器-寄存器型指令, RX和RS型指令都是寄存器-存儲(chǔ)器型指令,第一個(gè)操作數(shù)和結(jié)果放在R1中,另一個(gè)操作數(shù)在主存中。, 采用變址尋址方式,有效地址=(X2)+(B2)+D2,B2為基址寄存器,D2為位移量,x為
32、變址寄存器號(hào)。, RS型是三地址指令:R1存放結(jié)果,R2放一個(gè)源操作數(shù),另一個(gè)源操作數(shù)在主存中; 有效地址=(B2)+D2。, SI型是立即數(shù)指令, S型是單操作數(shù)指令, SS和SSE型指令是可變字長(zhǎng)指令,用于字符串的運(yùn)算和處理,L為串之長(zhǎng)度。, SSE指令與SS指令之差別是 SS指令中的L字段(8-15位)擴(kuò)展成操作碼。,4.6.2Pentium指令系統(tǒng),1. 尋址方式 Pentium指令系統(tǒng)共支持9種尋址方式,2. 指令格式 Pentium采用可變長(zhǎng)指令格式,最短的指令只有一個(gè)字節(jié),最長(zhǎng)的指令可有十幾個(gè)字節(jié)。, 前綴:位于指令操作碼前, 前綴不是每條指令必須有的;大部分指令并無(wú)前綴,它們使
33、用默認(rèn)的條件或參數(shù)進(jìn)行操作。如有的話,各種前綴也都是可選的。, 指定功能前綴:實(shí)現(xiàn)指定指令對(duì)存儲(chǔ)器是獨(dú)占訪問(wèn)或重復(fù)執(zhí)行功能,本指令按此規(guī)則執(zhí)行;, 包括4種指令:LOCK、REP、REPE和REPNE。, 段前綴字段:實(shí)現(xiàn)指定段寄存器的功能;缺省時(shí),當(dāng)前指令使用的段寄存器與上一條相同 ;, 操作數(shù)長(zhǎng)度前綴:實(shí)現(xiàn)指定操作數(shù)長(zhǎng)度的功能 ;, 在實(shí)模式下,操作數(shù)長(zhǎng)度默認(rèn)值是16位;在保護(hù)模式下,段描述符D=1時(shí)是32位,當(dāng)D=0時(shí)是16位。, 地址長(zhǎng)度前綴字段:實(shí)現(xiàn)指定地址長(zhǎng)度功能;可能是寄存器、指令中的存儲(chǔ)器地址,非形式地址;, Pentium的各種指令前綴編碼必須能夠和指令本身的操作碼編碼區(qū)分開
34、來(lái)。, 操作碼字段 : 指定指令的操作,還指明數(shù)據(jù)是字節(jié)還是全字長(zhǎng);指明REG字段指定的寄存器是源還是目標(biāo) 。, 尋址方式字段 : 由MOD和R/M聯(lián)合指定8種寄存器尋址和24種變址尋址方式,reg/OP指定某個(gè)寄存器為操作數(shù)或作為操作碼的擴(kuò)展用。,基址變址參數(shù)(SIB)字段 : SS指定比例系數(shù)(變址尋址方式時(shí)用);Index指定變址寄存器;Base指定基址寄存器。,偏移量參數(shù)(DISP)字段: 指定與存儲(chǔ)器有關(guān)的尋址方式的操作數(shù)偏移量;非基址尋址方式時(shí)在指令中出現(xiàn) 。,立即數(shù)參數(shù)(IMME)字段: 主要指定立即尋址方式中的立即操作數(shù)。, Pentium的指令格式比較復(fù)雜 1)必須與8086
35、指令系統(tǒng)兼容; 2)Pentium要實(shí)現(xiàn)對(duì)地址和數(shù)據(jù)的32位擴(kuò)展,提高尋址方式靈活性。,3. Pentium物理地址的形成, Pentium的邏輯地址包括段和偏移量,段號(hào)經(jīng)過(guò)段表直接得到該段的首地址,和有效地址相加形成一維的線性地址。,圖4.16,4.6.3 Power PC指令系統(tǒng), Power PC處理器字長(zhǎng)為32位,數(shù)據(jù)字長(zhǎng)為32位;, 具有32個(gè)32位通用寄存器,支持32位物理地址空間訪問(wèn);, 指令系統(tǒng)屬于RISC結(jié)構(gòu),支持6種尋址方式,指令長(zhǎng)度只有32位一種,指令格式有4種。,1. 尋址方式,2. 指令格式,4.7 MMX技術(shù), MMX是Intel公司為提高PC機(jī)處理多媒體和通信能力
36、而推出的新一代處理器技術(shù),增加8個(gè)64位寄存器和57條新指令來(lái)實(shí)現(xiàn)。,MMX的由來(lái)與特點(diǎn) 多媒體應(yīng)用中的圖形、圖像、視頻、音頻的操作中存在大量共同特征的操作:, 短整數(shù)類型的并行操作(如8位圖形象素和16位音頻信號(hào)); 頻繁的乘法累加(如FIR濾波,矩陣運(yùn)算);, 短數(shù)據(jù)的高度循環(huán)運(yùn)算(如快速傅里葉變換FFT、離散余弦變換DCT); 計(jì)算密集型算法(如三維圖形、視頻壓縮); 高度并行操作(如圖像處理)。, MMX技術(shù)與以前的Intel CPU(簡(jiǎn)稱IA-Intel Architecture)結(jié)構(gòu)相比,增加的功能。,引進(jìn)了新的數(shù)據(jù)類型和通用寄存器 MMX技術(shù)的主要數(shù)據(jù)類型為定點(diǎn)緊縮整數(shù),它定義了4種新的64位數(shù)據(jù)類型。,圖4.17,(2) 采用SIMD(Single Instruction Multi Data技術(shù) 單條指令同時(shí)并行地處理多個(gè)數(shù)據(jù)元素,提高運(yùn)算速度。例如,一條指令可以完成圖形/圖像中8個(gè)象素(每象素8位)的并行操作。,(3) 飽和(Situration)運(yùn)算 環(huán)繞運(yùn)算或稱非飽和運(yùn)算,上溢或下溢的結(jié)果被截取,返回低有效位值,F(xiàn)3H+1DH=10H。, 飽和運(yùn)算:上溢與下溢結(jié)果被截取至各類數(shù)據(jù)值域的最大值或最小值。如,F(xiàn)3H+1DH=FFH 。,表5.3 MMX飽和運(yùn)算范圍, 飽和運(yùn)算的應(yīng)用:設(shè)a點(diǎn)亮度值為F3H,b點(diǎn)亮度值為1DH,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)化工廠清潔勞務(wù)協(xié)作協(xié)議(2024年度)一
- 二零二五年度電子商務(wù)O2O平臺(tái)合作協(xié)議3篇
- 2025年度產(chǎn)業(yè)園區(qū)新能源車充電基礎(chǔ)設(shè)施建設(shè)協(xié)議4篇
- 2025年度節(jié)能環(huán)保產(chǎn)業(yè)項(xiàng)目合作協(xié)議書4篇
- 2025版電商供應(yīng)鏈金融合作框架協(xié)議4篇
- 2025年度企業(yè)差旅管理服務(wù)全面合作協(xié)議4篇
- 個(gè)人投資企業(yè)股份合作簡(jiǎn)明協(xié)議版A版
- 2025年度復(fù)雜地質(zhì)條件邊坡支護(hù)與護(hù)壁樁施工技術(shù)規(guī)范合同3篇
- 專業(yè)印刷服務(wù)訂購(gòu)協(xié)議集錦版B版
- 2024綜合汽車維修服務(wù)協(xié)議典范版
- TB 10010-2008 鐵路給水排水設(shè)計(jì)規(guī)范
- 黑色素的合成與美白產(chǎn)品的研究進(jìn)展
- 建筑史智慧樹知到期末考試答案2024年
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓(xùn)考試題庫(kù)(含答案)
- 2023年(中級(jí))電工職業(yè)技能鑒定考試題庫(kù)(必刷500題)
- 藏歷新年文化活動(dòng)的工作方案
- 果酒釀造完整
- 第4章-理想氣體的熱力過(guò)程
- 生涯發(fā)展展示
評(píng)論
0/150
提交評(píng)論