指令集架構的設計.doc

上传人:hw****26 文档编号:3559026 上传时间:2019-06-04 格式:DOC 页数:14 大小:59.50KB
下载 相关 举报
指令集架構的設計.doc_第1页
第1页 / 共14页
指令集架構的設計.doc_第2页
第2页 / 共14页
指令集架構的設計.doc_第3页
第3页 / 共14页
指令集架構的設計.doc_第4页
第4页 / 共14页
指令集架構的設計.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、指令集架構的設計ISA(instruction set architecture,指令集架構)程式設計師或是翻譯器撰寫者所能夠看得到的機器部份包括運算種類,暫存器個數,定址空間,條件碼,.等ps:不包括快取記憶體的組織與指令管線的深度等實作相關細節. .指令集設計的考量因素1指令集所提供的運算種類必須是 functionally complete(功能完整),具備足夠的指令,才可讓使用者完整表達計算過程而在電腦指令集上至少需指供3種運算,才算完整的指令集:data operation instruction(資料運算指令)data transfer instruction(資料搬動指令)flo

2、w control instruction(流程控制指令)其他指令則是設計上的捨取補充:若能找出功能完整的最小集合,就可用少工具完成工作ex:只要有 AND,OR,NOT 三種即可提供完整的布林運算功能ex:只要有循序,選擇,迴圈三種基本指令即可設計出任何功能的高階語言2 CPU 內部儲存運算元方式:stack(堆疊):用 postfix expression(後序運算式)可讓計算方式變簡單,但存取效率差acc(累加暫存器):運算電路簡單,但只有1個,在運算時對 memory 存取次數較多general purpose register(一般目地暫存器) :數量多可有彈性的運用,大多數機器採用

3、3指令中指出的運算元個數儲存運算元方式會影響運算元個數stack:使用零個運算元格式,因為運算元與運算結果都固定在 stack 中ACC:使用單一運算元的格式,因為其中一個運算元與運算結果會固定 ACC中general purpose register:有兩個或三個運算元格式4指令中允許的運算元位置:位置會影響存取運算元的效能,設計上有:暫存器對暫存器:load-store architecture(載入與回存架構)暫存器對記憶體記憶體對記憶體對於 memory 中,運算元的定址方法有:direct addressing(直接定址法)indirect addressing(間接定址法)rela

4、tive addressing(相對定址法immediate data addressing(立即資料定址法)indexed addressing(索引定址法)5指令中如何指定運算元型態與大小:型態與大小決定存取的次數,一般設計上有兩種運算碼:可靠度差,大多電子計算機用標籤:可靠度佳,電路需要特殊設計6其他指令集的條件碼:是否給程式設計師用或隱含指令集的 consistency(一致性):若有此設計,則容易學習且撰寫不易出錯.指令集設計步驟1分析出主要應用領域2根據應用領域的性質與特徵,決定需要提供的特殊功能3將特殊功能對映成一低階指令4根據指階指令發生次數,決定使用頻率5使用頻率高且執行時間

5、長的指令,根據 amdahls law 進行優化6分析指令是否為可接受的組合語言階層,最後形成指令好的指令集架構包括:1指令集大小與複雜度:最好適中,需考量 RISC 和 CISC 差異2功能完整性與效率:可讓演算法轉換成一個機器語言程式,並能有效率執行3設計一致性:使用的定址模式與條件碼必須一致,所有指令皆可使用好的指令集架構需考量:1 application program development:需要可讓程式設計師在各應用領域方便地撰寫應用程式2 compiler design:可容易將高階語言指令轉換成機器語言指令,並對特殊功能最佳化處理與設計3 assembly language p

6、rogramming: 可對應到組合語言指令,並根據需要撰寫各功能的組合語言程式4 hardware implementation: 可實作出電路並有效率地執行這些指令,根據不同加權予特別設計.CISC vs RISCCISC(Complex Instruction Set Computer,複雜指令集電腦 )設計哲學:指令集是撰寫程式的工具,一旦工具越多且功能越強,則更能有效率地設計程式觀念:提供複雜的指令,讓完成一個工作所需的 IC(指令個數)能夠減到最少提昇效率優點:撰寫組合語言方便,擁有大量指令可完成複雜工作缺點:CPI 與 CT 較大管線作業:普通特點:翻譯器設計簡單,硬體電路複雜,

7、較少 register指令特性:指令多且複雜,格式與長度不固定適合:複雜的工作ex:Motorola6800,DEC VAX,IBM370RISC(Reduced Instruction Set Computing,精簡指令集電腦)設計哲學:提供少數及常用且簡單的指令,並對指令進行特殊設計,在大部份的情況下會有較佳的效率觀念:將常使用的簡單指令特別使用硬體的來製作,以提升執行效率,減少 CPI優點:擁有少量指令且功能簡單,CPI 藉由管線作業變小,CT 藉由減少解碼和產生控制信號時間變小缺點:IC 多管線作業:可得到最大好處特點:翻譯器設計複雜,硬體電路簡單,較多 register指令特性:指

8、令少且簡單,格式與長度固定適合:簡單的工作ex:SUN SPARC,Apple PowerMac,IBM RS 系列ps:RISC 比 CISC 更適合用在 IA(intelligent appliance 智慧型家電)因為該此類產品內部只需功能相對簡單的微處理器,指令也相對少ps:現今的 cpu 通常採用 RISC 和 CISC 混合式設計精簡指令集電腦特性因為程式中有較多的 IC,因此必需減少 CPI 和 CT,所以有以下特性:管線作業架構:讓 CPI 接近1single machine cycle(單一機器週期) :提升指令效能載入與回存架構:只允許 load instruction 和

9、 store instruction 存取主記憶體資料,來盡量避免用到主記憶體register file(暫存器檔案 ):提供極多 register,讓指令盡量在 register 存取資料,減少 memory 的存取次數硬體線路控制:CU( 控制單元 )使用,以減少一道指令在執行所需的時間,以提昇整體執行效能固定長度與格式的指令:簡化指令週期中 IF 和 ID 動作,使解碼電路複雜度變低,減少 CT簡單的定址模式:提供暫存器對暫存器與少數簡單的定址模式,減少指令執行的記憶體存取次數最佳化的翻譯器:用最佳化技術使程式中指令個數盡量減少,並處理管線危機coprocessor(浮點運算協同處理器

10、):因單一機器週期不同,為不影響管線作業效能,另外使用硬體電路來完成快取記憶體:可減少主憶體的平圴存取時間,直接影響計時週期個數(CPI*IC)和 CT.指令格式機器指令的格式通常為:運算碼欄位定址指示欄位 運算元欄位ps:在 IF 與 ID 上,用固定長度格式較簡易,用變動長度格式較複雜.運算碼欄位:內含二進制編碼的 opcode(operation code,運算碼)1中央處理器在指令週期的 ID 階段,根據 opcode 的內容就可以知道要執行那一種運算2欄位長度和指令集大小有關3編碼方式:有欄位長度可以是固定或變動長度的編碼設計,如下單一運算碼欄位編碼:使用相同長度的運算碼 ,若有 n

11、 個指令則需 ceil(log2(n)個位元的運算碼欄位ex:54種不同指令 ,則欄位長度為6bitex:op code 欄位為5bit,則此機至多可提供25=32種不同的運算多個運算碼欄位編碼:長度不一定 ,但會增加解碼電路的複雜度霍夫曼編碼:對經常使用的指令進行特殊設計 ,考慮使用機率可以得到平圴長度最小的運算碼編碼ex:有6指令,機率分別為 p1=0.4 , p2=0.3 , p3=0.1 , p4=0.08 , p5=p6=0.06經編碼後各指令運算碼為 p1=0 , p2=10 , p3=1111 , p4=1110 , p5=1100 , p6=1101平均長度=1*0.4 + 2

12、*0.3 + 4*0.1 + 4*0.08 + 4*0.06 + 4*0.06=2.2bit.運算元欄位:存放運算元的位址1欄位大小和主記憶體的定址空間大小有關2欄位個數多寡會影響機器指令的長度3算術運算指令格式,需明顯指出運算元的個數,可分成:四位址指令:運算元位址| 運算元位址| 運算元位址| 下一道指令位址機器指令目前沒不使用,但微指令格式中常用三位址指令:運算元位址 | 運算元位址| 運算元位址 ,而下一道指令位址放在 program count磁蕊記憶體出現才開始有三位址指令雙位址指令:運算元位址 | 運算元位址單位址指令:運算元位址 一又二分之一位址指令零位址指令:也稱 stack

13、 architecture(堆疊結構),算術運算指令中不必指定運算元所在暫存器對暫存器指令(載入與回存架構) :優點是可減少到 memory 存取運算元的次數提高效率.定址指示欄位:用來指示運算元資料的定址模式addressing mode(定址模式) 用途:1用來推算出運算元的 EA(effective address,有效位址 ),或是取得運算元的方法2定址模式豐富,會減少 IC,但可能增加 CPI 和 CT,若定址模式簡單則相反五大類 addressing mode:direct addressing(直接定址法)/absolute mode(絕對定址法):運算元位址=存放在運算元欄位1

14、最簡單的定址模式 ,只需要到 memory 存取一次即可得到運算元2使用此模式的程式執行時,不允許隨意搬動程式位置3運算元欄位的長度要配合 memory 定址空間大小,若欄位為 nbit,則可提供2n 的定址空間4欄位的位址可指到 ,flag,register,memory,因此有分成 flag direct addressing,register direct addressing,memory direct addressingindirect addressing(間接定址法 ):運算元位址=存放在 memory 或register 中,然後在放到運算元欄位中1常用於 subroutin

15、e linkage(副程式之間的連結),表示副程式之間的dynamic linking(動態連結)2提供極大的彈性,但會使程式的執行效率變差3必須經過兩次存取,第一次先存取到有效位置,第二次在用有效位置取得運算元4可細分為:register indirect addressing:適合用於存取連續位址的資料memory indirect addressingrelative addressing(相對定址法):運算元位址=運算元欄位的值+register所指的 memory 起始位址1最普遍的定址模式2允許程式在執行可隨意搬動位置3比直接定址的執行效率差4可明確或隱含的放在指令中,因此有二種:base address relative(基底相對定址) :相對位址是指運算元相對於程式的起始位置program counter relative(程式計數相對定址):相對位址是指運算元相對於下道指令的位址immediate data addressing(立即資料定址法):運算元本身放於指令的運算

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。