2015-10-25 100 views
1

假設我有一個MIPS處理器執行beq指令,例如, beq $t1, $t2, label分支指令的MIPS關鍵路徑

我試圖找出這個指令的關鍵路徑。假設每個組件都有相同的延遲。我的關鍵路徑想法如下:

Path 1: Add -> ............ -> Add -> Mux 

Path 2: IM -> Control -> Mux -> ALU -> Mux 

Path 3: IM -> Registers -> Mux -> ALU -> Mux 

我如何去在路徑1的其餘部分填充(或其他途徑,如果他們錯了),考慮到它必須等待一些信號做好準備?

如果我們假設所有組件的延遲是相同的(並且忽略門延遲),那麼路徑3不會是關鍵路徑嗎?

回答

1

如果您希望能夠比較路徑,請選擇所有感興趣路徑必須經過的點,然後從每個路徑的那裏開始計算。在你的情況下,最簡單最明顯的一點可能是PC鎖存器,因爲這是你圖中最左邊的東西。這些路徑將全部是循環,從那一刻開始,遍歷各個塊,並最終返回到下一條指令的同一點。

如果路徑必須等待來自其他路徑的信號,那麼它不是關鍵路徑 - 它等待的路徑更重要。 (最)關鍵路徑將不需要等待來自其他路徑的任何信號,因爲在關鍵路徑到達那裏之前,其他信號將始終存在。