數據通路的功能
- 數據通路:數據在各功能部件之間傳送的路徑
- 功能:描述了信息從哪裏開始,中間經過哪些部件,最後傳到哪裏
- 控制單元CU產生控制信號建立數據通路
數據通路的基本結構
- 內部總線:同一部件內部連接各寄存器及運算部件之間的總線
- 系統總線:同一臺計算機系統的各部件相互連接的總線
CPU內部單總線方式
- 實現:所有寄存器的輸入端、輸出端連接到一條公共數據通路上
- 特點:結構簡單,但一個時鐘內只允許傳一個數據,數據傳輸存在較多衝突現象
- 寄存器之間的數據傳送:如上圖中,以PC寄存器爲例,把PC的內容送到MAR,實現傳送操作的控制流程及控制信號爲
a. (PC)→Bus,PCout有效
b. Bus→MAR,MARin有效 - 主存與CPU之間的數據傳送
a. (PC)→Bus→MAR,PCout,MARin有效
b. 1→R,CU發出讀命令
c. M(MAR)→MDR,MARoutE,MDRinE有效
d. (MDR)→Bus→IR,MDRout,IRin - 執行算數或邏輯運算
a. Ad(IR)→Bus→MAR,IRout(或MDRout),MARin
b. 1→R,CU發出讀控制信號
c. M(MAR)→MDR,MARoutE,MDRinE
d. MDR→Bus→Y,MDRout,Yin
e. (Y)+(ACC)→Z,ACCout,ALUin,CU向ALU發加命令
f. (Z)→ACC,Zout,ACCin
CPU內部多總線方式
- 實現:所有寄存器的輸入端、輸出端連接到多條公共數據通路上
專用數據通路方式
- 實現:根據指令執行過程中,數據和地址的流動方向安排連接線路,避免使用共享的總線
- 特點:性能高,但硬件量大
例題
例題1
設有如下圖所示的單總線結構,分析指令ADD(R0),R1的指令流程和控制信號
- 分析:((R1))+(R0)→(R1)
- 取指週期
a. (PC)→MAR,PCout,MARin
b. M(MAR)→MDR (PC)+1→PC,MemR,MARout,MDRinE
c. (MDR)→IR,MDRout,IRin
d. 指令譯碼,— - 間址週期
a.(R0)→MAR, R0out,MARin
b. M(MAR)→MDR,MemR,MARout,MDRinE
c. (MDR)→Y,MDRout,Yin - 執行週期
a. (Y)+R1→Z,R1out,ALUin,CU向ALU發加控制信號
b. (Z)→MDR,Zout,MDRin
c. (MDR)→M(MAR),MemW,MARout,MDRoutE
例題2
分析下列的取指週期
- (PC)→MAR,C0
- M(MAR)→MDR (PC)+1→PC,CU發出讀控制信號,C1,C2
- (MDR)→IR,C3
- OP(IR)→CU,C4
例題3
某計算機字長爲 16 位,採用 16 位定長指令字結構,部分數據通路結構如圖 所示,圖中所有控制信號爲 1 時表示有效、爲 0 時表示無效。例如,控制信號 MDRinE 爲 1表示允許數據從 DB 打入 MDR,MDRin 爲 1 表示允許數據從內總線打入 MDR。設 MAR 的輸出一直處於使能狀態。加法指令“ADD (R1),R0”的功能爲(R0)+((R1))→(R1),即將 R0 中的數據與R1 的內容所指主存單元的數據相加,並將結果送入 R1 的內容所指主存單元中保存
表 A-1 給出了上述指令取指和譯碼階段每個節拍(時鐘週期)的功能和有效控制信號,請按表中描述方式用表格..列出指令執行階段 ......每個節拍的功能和有效控制信號。
解:執行週期過程