计算机体系结构---第二章---指令系统
文章目錄
- 數據類型
- 數據表示:哪些數據類型可以全部用硬件表示
- 浮點數
- 自定義數據表示
- 數據結構:哪些數據類型用軟件實現
- 指令
- 指令按操作數存放方法進行分類:
- 操作碼:
- 操作數:
- 尋址(待更新。。。。)
- 尋址技術之----編址方式
- 編址單位
- 數據存儲方法
- 編址地址的起始地址要求:
- 大端數據與小端數據問題
- 編址空間組織方式
- 指令的優化(待更新。。。。)
- 優化方式
- 擴展編碼方法
- 習題:
注:本文部分內容選自網易云課堂的北京郵電大學網課,推薦
數據類型
數據表示:哪些數據類型可以全部用硬件表示
指:計算機硬件能夠直接識別,可以被指令系統直接調用的數據類型,硬件實現也比較容易的數據類型。
e.g. 定點數、邏輯數、浮點數、字符、字符串、堆棧、向量、十進制數
每一條指令都有相應的指令與之對應,并有硬件加以支持
確定哪些數據類型用數據表示的原則:
- 時間性能
- 空間性能
- CPU利用率
e.g. 用頂點數據表示浮點運算,指令多cpu與主存的通信量增大,時間加長;浮點數運算雖然硬件復雜度增加,但是浮點數據利用率高時間快
對于很復雜的數據類型,用數據表示硬件的代價很大,so軟硬件相結合的方法最好
浮點數
自定義數據表示
因為高級語言中,編譯器要根據數據的不同類型生成不同的指令,為簡化指令系統,提出在機器語言一級有數據自己定義屬性。
標志符:
描述一個數據
指用于標識數據類型,例如負數、幾機制、浮點型等;
由編譯器建立,對用戶透明,對系統程序員不透明
-
采用標識符的優點:
簡化指令系統,由硬件自動實現一致性檢查和數據類型轉換 -
問題:
數據和指令長度可能不一致----解決方法:1. 將數據和指令分別存儲在兩個存儲器上 2.指令長向數字長靠攏 關于指令和數據的分開存儲和混合存儲參考博文:指令和數據混合存儲與分開存儲的比較
指令的執行速度時間降低 ----- 因為執行時要對每個標識符進行解釋硬件復雜度增加
增加了數據區域的存儲空間
下圖反映的是代標識符和不帶標識符所占空間的比較
一般紫色>橘色,紫色:指令集字縮短,減少的存儲空間; 橘色:存儲字長加長,增加的存儲空間
因為指令條數>>字加長位數,紫<橘
描述符:
對于復雜數據結構連續存放的數據,沒有必要讓每個數據都帶標識符
e.g. 例如矩陣、向量
描述一組數據,CF:標識符只表示一個數據
數據描述符中包含數據的各種標志位、長度、數據地址。能夠使整個向量、矩陣、多維數組運算
優缺點和標志符相同
存儲空間
數據結構:哪些數據類型用軟件實現
e.g. 串,隊,列,棧,陣列,鏈表,樹,圖
指令
組成;操作碼&地址碼
指令總是有一個操作碼+0-n個操作數組成
指令按操作數存放方法進行分類:
不同類型對應的機器型號不同
其中通用寄存器有:
所以指令可以有多種表示:
操作碼:
- 指令的操作種類
- 所用操作數的數據類型:if采用自定義數據表示法,不用指出類型,只要知道種類就行
操作數:
- 操作數地址
- 地址附加信息:偏移量,塊長度,跳距
- 尋址方式
尋址(待更新。。。。)
大多數指令都有操作數,從哪里得到這些操作數,就需要尋址
- 立即尋址
- 直接尋址
- 寄存器尋址
- 變址尋址
- 基址變址尋址
尋址技術之----編址方式
在尋址之前就要編址
解釋:編址就是對各種存儲設備進行編碼
設備:
ATT: 堆棧是一種存儲設備但是他不用編址
編址單位
-
字編址
實現最容易:每個編制單位與設備的訪問單位一致
每讀完一條指令,程序計數器+1,每讀完一個數據,地址計數器+1
缺點:沒有對非數值計算提供支持,非數值要求按字節編址 -
字節編址
應用最普遍
優點:編址單位和信息的基本單位一致,有利于符號處理(ASCII碼按字節)
缺點:訪問字長為一個字節太窄了,通常主存儲器的字長是4個字節以上,地址信息浪費,存儲器空間浪費 -
位編址
優缺點同字節編址一致
應用:STAR-100
優缺點同字節編址,BUT地址信息浪費更大(e.g. 處理機字長64位,則一個地址末6位全為0,一個字節末3位為0,則訪問一個字要占64個地址編碼,一個字節要8個地址編碼)
數據存儲方法
優點:不浪費存儲器資源
缺點:存儲器讀寫復雜;存儲器工作速度降低(因為除了訪問一個字節之外,訪問雙字、單字、半字時要話費2個存儲空間)
ATT : 最重要的是存儲器訪問時間
優點:存儲器讀寫復簡單;存儲器工作速度塊(因為除了訪問一個字節之外,訪問雙字、單字、半字時要是1個存儲空間)
缺點:浪費存儲器資源
折中方案:使用最普遍
優點:保證無論雙字單字都能在1個周期內完成
缺點:有浪費存儲器資源,但優于第二種;讀寫仍然比較復雜
編址地址的起始地址要求:
大端數據與小端數據問題
究竟是左端最大還是右端最大
在按字節編址的存儲器中,從右邊開始編址:軟件人員的習慣;從左邊編址:硬件人員的習慣。
x86采用的是按右邊編址
編址空間組織方式
- 三個零地址空間: 每種設備都是從0開始編址的
RISC;只有訪問操作在3類存儲設備中都能進行,而運算位移測試操作只能在通用寄存器中進行
CISC:all操作都能在3類設備上進行
-
2個零地址空間
地址高端部分— 輸入輸出設備,低端地址— 主存儲器
缺點:指令執行過程復雜---- 所有訪問主存儲器的指令都要進行是否訪問輸入輸出設備的判斷
優點:簡化指令系統RISC:只有LOAD,STORE指令能訪問主存儲器,all運算操作都要在寄存器中進行。而訪問輸入輸出通常操作簡單,尋址方式單一因此RISC不適合2個零地址空間
CISC:訪問輸入輸出設備單一,不需要聯合在一起(主存+輸入輸出) -
一個零地址空間
all 設備統一編址,地址低端是通用寄存器,高端是輸入輸出設備 -
隱含編址
堆棧,cache,特殊的寄存器,data是先進先出的方式不用編址
指令的優化(待更新。。。。)
目標:1. 節省程序的存儲空間 2. 指令格式要盡量規整 3. 不能降低指令的執行速度
優化方式
- 定長編碼
- 優點:公平規整,譯碼簡單
- 缺點:浪費信息,操作碼總長度增加
- 不定長編碼(哈夫曼編碼)
- 優先性
- 優點:平均碼長最短,信息冗余最小
- 計算題:與擴展編碼對比
擴展編碼a-b:先擴展a位,再擴展
- 擴展編碼法:2者耦合:對于優先性大的,碼長盡量小,且相對均勻
擴展編碼方法
ATT:平均最短碼長有負號(這里少寫了)
如果直接就用HUffman編碼方法,有以下問題:
所以需要擴展編碼的方式,由固定長操作碼和Huffman編碼相結合
擴展編碼的思想:
等長編碼:
4-8-12擴展法:有采用15/15/15擴展;8/64/512擴展
ATT:
15-15-15:就是每次變低位的,高位為1111
8-64-512:擴展每4個里面的后3位
同理:3-6-9
2-4擴展法:
不等長編碼:
4-6-10;8-31-16
習題:
總結
以上是生活随笔為你收集整理的计算机体系结构---第二章---指令系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机体系结构-- 第一章4--计算机体
- 下一篇: java信息管理系统总结_java实现科