深入研究指令集架构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 深入研究指令集架構 第五章 教學目的 了解指令集架構設計的相關問題. 熟悉記憶體定址模式. 了解指令層級的管線化概念, 以及它對執行效能的影響. 5.1 簡介 本章的概念是架構在第四章之上的. 我們深入來介紹不同的指令格式, 運算元類型, 以及記憶體存取方法. 我們將會看到機器組織和指令格式間的相互關係. 這讓我們能更深入通盤了解電腦架構 5.2 指令格式 指令是由下列各項來進行區別的: 每個指令的位元個數. Stack-based 或 register-based. 每個指令所能表示的運算元個數. 運算元的位置. 運算的類型. 運算元的類型和大小. 5.2 指令格式 指令集架構是依據下列來衡量好壞: 程式所佔的主記憶體空間. 指令的複雜度. 指令的長度 (in bits). 指令集中有多少不同的指令. 5.2 指令格式 設計指令集時要考慮下列: 指令長度. 短, 長, 或是可變動長度. 運算元數目. 可定址的暫存器數目. 記憶體組織. byte- 或 word 定址. 定址模式. 提供那幾種: 直接, 間接, 或是索引法. 5.2 指令格式 Byte 順序, 或是 endianness, 是架構上的另一種考量. 如果我們有一個 two-byte的整數, 那這個整數的儲存可能是低權重byte接著高權重byte, 或是相反. 在 little endian 機器中, 低權重byte後是高權重byte. Big endian 機器則是將高權重襬在低位址. 5.2 指令格式 舉例來說, 假設我們有一個十六進制 那 big endian 和 small endian 的排列如下. 5.2 指令格式 Big endian: 較為直覺. 數目的正負號可以經由最低位元查出. 字串和整數的儲存順序相同. Little endian: 要將值放在非字組邊界比較容易. 從16-bit 整數位址轉換到32-bit 整數位址時不需要額外的算數運算. 5.2 指令格式 下一個要考慮的架構設計問題是CPU如何儲存資料. 我們有三種選擇: 1. 堆疊架構 2. 累加器架構 3. 通用暫存器架構. 在選擇時, 會考慮到硬體設計的複雜度(及成本)及執行速度和使用的簡單性. 5.2 指令格式 在堆疊架構中, 指令和運算元都是由堆疊取出的. 堆疊無法隨機存取. 在累加器架構中, 二元運算中的其中一個運算元是在累加器中. 一個是在記憶體, 提高了匯流排的流量. 在通用暫存器架構中 (GPR), 可以用暫存器代替記憶體. 比累加器架構快. 對編譯器製作上來說比較有效率. 會造成指令比較長. 5.2 指令格式 現在很多系統都是 GPR系統. 有三種類型: 記憶體-記憶體, 可能有二或三個運算元在記憶體中. 暫存器-記憶體, 至少有一個運算元在暫存器中. 載入-儲存, 沒有運算元是在記憶體的. 運算元的數目和可用的暫存器數目對指令的長度有直接的影響. 5.2 指令格式 堆疊機器使用1或0個運算元指令. LOAD 和 STORE 指令需要一個運算元的記憶體位址 其它的指令內定從堆疊取出運算元. PUSH 和 POP 只會存取堆疊的最上端元素. 二元指令 (e.g., ADD, MULT) 使用堆疊最上面的二個項目進行運算. 5.2 指令格式 使用堆疊駕構時, 我們需要以不同的角度來思考算術運算的表示式. 我們很熟悉用中置表示法來寫式子, 像是: Z = X + Y. 堆疊算術則需要後後置式表示法: Z = XY+. 又名為 reverse Polish notation, (有點) 為了紀念發明者, Jan Lukasiewicz (1878 - 1956). 5.2 指令格式 後置式的主要優點是不需要用括號. 例如, 中置表示式, Z = (X ? Y) + (W ? U), 變成: Z = X Y ? W U ? + 這樣的後置表示. 5.2 指令格式 在一個堆疊的 ISA 中, 後置表示, Z = X Y ? W U ? + 看起來就像是: PUSH X PUSH Y MULT PUSH W PUSH U MULT ADD STORE Z 5.2 指令格式 在 1個-位址的 ISA, 像 MARIE, 中置表示式, Z = X ? Y + W ? U 看起來會是: LOAD X MULT Y STORE TEMP LOAD W MULT U ADD TEMP STORE Z 5.2 指令格式 在二個位址的 ISA, (e.g.,Intel, Motorola), 中置表示式是,

您可能关注的文档

文档评论(0)

iris + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档