- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指令集架构的设计
指令集架構的設計
ISA(instruction set architecture,指令集架構)程式設計師或是翻譯器撰寫者所能夠看得到的機器部份包括運算種類,暫存器個數,定址空間,條件碼,...等ps:不包括快取記憶體的組織與指令管線的深度等實作相關細節........................................................................................................................................... ...........................................................................................................................................指令集設計的考量因素1指令集所提供的運算種類必須是functionally complete(功能完整),具備足夠的指令,才可讓使用者完整表達計算過程而在電腦指令集上至少需指供3種運算,才算完整的指令集: data operation instruction(資料運算指令) data transfer instruction(資料搬動指令) flow control instruction(流程控制指令)其他指令則是設計上的捨取補充:若能找出功能完整的最小集合,就可用少工具完成工作ex:只要有AND,OR,NOT三種即可提供完整的布林運算功能ex:只要有循序,選擇,迴圈三種基本指令即可設計出任何功能的高階語言2 CPU內部儲存運算元方式:stack(堆疊):用postfix expression(後序運算式)可讓計算方式變簡單,但存取效率差acc(累加暫存器):運算電路簡單,但只有1個,在運算時對memory存取次數較多general purpose register(一般目地暫存器):數量多可有彈性的運用,大多數機器採用3指令中指出的運算元個數儲存運算元方式會影響運算元個數stack:使用零個運算元格式,因為運算元與運算結果都固定在stack中ACC:使用單一運算元的格式,因為其中一個運算元與運算結果會固定ACC中general purpose register:有兩個或三個運算元格式4指令中允許的運算元位置:位置會影響存取運算元的效能,設計上有:暫存器對暫存器:load-store architecture(載入與回存架構)暫存器對記憶體記憶體對記憶體對於memory中,運算元的定址方法有:direct addressing(直接定址法)indirect addressing(間接定址法)relative addressing(相對定址法immediate data addressing(立即資料定址法)indexed addressing(索引定址法)5指令中如何指定運算元型態與大小:型態與大小決定存取的次數,一般設計上有兩種 運算碼:可靠度差,大多電子計算機用 標籤:可靠度佳,電路需要特殊設計6其他指令集的條件碼:是否給程式設計師用或隱含指令集的consistency(一致性):若有此設計,則容易學習且撰寫不易出錯...............................指令集設計步驟1分析出主要應用領域2根據應用領域的性質與特徵,決定需要提供的特殊功能3將特殊功能對映成一低階指令4根據指階指令發生次數,決定使用頻率5使用頻率高且執行時間長的指令,根據amdahls law進行優化6分析指令是否為可接受的組合語言階層,最後形成指令
好的指令集架構包括:1指令集大小與複雜度:最好適中,需考量RISC和CISC差異2功能完整性與效率:可讓演算法轉換成一個機器語言程式,並能有效率執行3設計一致性:使用的定址模式與條件碼必須一致,所有指令皆可使用好的指令集架構需考量:1 application program development:需要可讓程式設計師在各應用領域方便地撰寫應用程式2 compiler design:可容易將高階語言指令轉換成機器語言指令,並對特殊功能最佳化處理與設計3 assembly language programming: 可對應到組合語言指令,並根據需要撰寫各功能的組合語言程式4 hardware implementation: 可實作出電路並有效率地執行這些指令,根據不同加權予特別設計
...............................
文档评论(0)