資料介紹
在航空微電子中心的某預研項目中,需要開發設計某32位浮點通用數字信號處理器(DSP)。本系統控制通路部分的設計采用超級哈佛及五級流水線結構。本文分析了該流水線的設計過程,并對遇到的數據相關問題提出了一種新的解決方法。
1 流水線結構
流水線處理器一般把一條指令的執行分成幾個步驟,或稱為級(stages)。每一級在一個時鐘周期內完成,也就是說在每個時鐘周期,處理器啟動并執行一條指令。如果處理器的流水線有m級,則同時可重疊執行的指令總條數為m。由于每條指令處在不同的執行階段,因此,如果分級分得好,每一級都沒有時間上的浪費,這就是最理想的情況。流水線處理器在理想情況下與非流水線處理器的性能加速比為:

式中,I為一個程序被執行的總的指令條數,它在流水線處理器和非流水線處理器中是相等的。CPInp是每條指令總體平均所需的時鐘周期數。因為流水線處理器把一條指令的執行時間理想地分成了m級,故有m條指令在同時(重疊)執行。T是每個時鐘周期的時間長度,本例可假設它在兩種處理器中也是相同的,那么,最后總的加速比為m(即等于流水線的級數)。并不是說把流水線級數分得越多,處理器的性能就越好。流水線處理器性能提高的關鍵在于每個時鐘周期處理器都應當能啟動一條指令的執行。
2 數據相關問題
下面來討論數據相關(data dependence)問題及解決方法,先來看看下面的程序例子:

在上述程序段中,I1指令把寄存器r2和r3的內容相加,并將結果存人寄存器r1,這樣,它下面的4條指令均與I1相關,其使用I1的結果如圖1給出的數據相關關系圖。從圖中可見,當每個周期結束時,在時鐘上升沿應把數據打入寄存器。在數據沒被打入之前,任何從該寄存器讀出的數據都是過時的。圖1中的I2到I4的3條指令就屬于這種情況。它們從r1寄存器讀出的數據都是過時的,是不能使用的。I5則沒關系,當它讀r1寄存器時,I1已將結果寫入。

I1下面有3條指令不能從寄存器r1讀出正確的數據。為了減少數據相關指令的條數,設計時可以讓寫寄存器堆的操作提前半個周期,即由時鐘的下降沿打入。實踐證明這樣做是可行的,因為假定一個時鐘周期是10 ns,寄存器堆的訪問只需要5 ns。這樣,數據相關的指令條數就減至兩條,其操作示意圖如圖2所示。

3 數據相關問題的解決
在流水線處理器中處理數據相關問題有兩種方法:一種是暫停相關指令的執行,即暫停流水線,直到能夠正確讀出寄存器操作數為止;另一種是采用專門的數據通路,直接把結果送到ALU的輸入端,也就是把內部數據前推。描述這兩種方法可參考圖2所示的方案,即把寫寄存器堆提前半個周期,這時,只需考慮兩條相關指令。下面以ALU指令為例對暫停流水線的執行方法加以分析。
1 流水線結構
流水線處理器一般把一條指令的執行分成幾個步驟,或稱為級(stages)。每一級在一個時鐘周期內完成,也就是說在每個時鐘周期,處理器啟動并執行一條指令。如果處理器的流水線有m級,則同時可重疊執行的指令總條數為m。由于每條指令處在不同的執行階段,因此,如果分級分得好,每一級都沒有時間上的浪費,這就是最理想的情況。流水線處理器在理想情況下與非流水線處理器的性能加速比為:

式中,I為一個程序被執行的總的指令條數,它在流水線處理器和非流水線處理器中是相等的。CPInp是每條指令總體平均所需的時鐘周期數。因為流水線處理器把一條指令的執行時間理想地分成了m級,故有m條指令在同時(重疊)執行。T是每個時鐘周期的時間長度,本例可假設它在兩種處理器中也是相同的,那么,最后總的加速比為m(即等于流水線的級數)。并不是說把流水線級數分得越多,處理器的性能就越好。流水線處理器性能提高的關鍵在于每個時鐘周期處理器都應當能啟動一條指令的執行。
2 數據相關問題
下面來討論數據相關(data dependence)問題及解決方法,先來看看下面的程序例子:

在上述程序段中,I1指令把寄存器r2和r3的內容相加,并將結果存人寄存器r1,這樣,它下面的4條指令均與I1相關,其使用I1的結果如圖1給出的數據相關關系圖。從圖中可見,當每個周期結束時,在時鐘上升沿應把數據打入寄存器。在數據沒被打入之前,任何從該寄存器讀出的數據都是過時的。圖1中的I2到I4的3條指令就屬于這種情況。它們從r1寄存器讀出的數據都是過時的,是不能使用的。I5則沒關系,當它讀r1寄存器時,I1已將結果寫入。

I1下面有3條指令不能從寄存器r1讀出正確的數據。為了減少數據相關指令的條數,設計時可以讓寫寄存器堆的操作提前半個周期,即由時鐘的下降沿打入。實踐證明這樣做是可行的,因為假定一個時鐘周期是10 ns,寄存器堆的訪問只需要5 ns。這樣,數據相關的指令條數就減至兩條,其操作示意圖如圖2所示。

3 數據相關問題的解決
在流水線處理器中處理數據相關問題有兩種方法:一種是暫停相關指令的執行,即暫停流水線,直到能夠正確讀出寄存器操作數為止;另一種是采用專門的數據通路,直接把結果送到ALU的輸入端,也就是把內部數據前推。描述這兩種方法可參考圖2所示的方案,即把寫寄存器堆提前半個周期,這時,只需考慮兩條相關指令。下面以ALU指令為例對暫停流水線的執行方法加以分析。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式_流水線
- 使用FPGA設計流水線的資料和程序詳細概述 3次下載
- 移植到全新的PIC24F流水線ADC和Σ-ΔADC免費下載.pdf
- 流水線狀態機20進制,101序列檢測,8位加法器流水線的程序 0次下載
- 三菱plc裝配流水線課程設計 28次下載
- 裝配流水線控制系統設計 14次下載
- 電鍍流水線的PLC控制 36次下載
- 流水線ADC的行為級仿真 21次下載
- YHFT-DX高性能DSP指令控制流水線設計與優化 36次下載
- 流水線技術在高速數字電路設計中的應用
- FPGA重要設計思想及工程應用之流水線設
- 周期精確的流水線仿真模型
- MAX1200中文資料,pdf (流水線結構的模數轉換器)
- 流水線型ADC MAX1200 及其與DSP 的接口
- 流水線型模數轉換器MAX1200及其與DSP的接口
- 流水線中Half-Buffer與Skid-Buffer的使用 422次閱讀
- 新版本Jenkins推薦使用聲明式流水線 708次閱讀
- Google GPipe為代表的流水線并行范式 1061次閱讀
- 如何通過Vivado Synthesis中的URAM矩陣自動流水線化來實現最佳時序性能 1843次閱讀
- 一個典型的流水線設計 1430次閱讀
- 報文解析規則定義 流水線劃分提取方案 1023次閱讀
- CPU流水線優缺點 4482次閱讀
- 一文詳細了解流水線設計 5032次閱讀
- FPGA中流水線的原因和方式 6190次閱讀
- 流水線設計的思想介紹與設計實例 8101次閱讀
- OYES 200系列PLC在瓶裝流水線中的應用 1300次閱讀
- 淺談GPU的渲染流水線實現 3842次閱讀
- 一文讀懂處理器流水線 2.2w次閱讀
- 處理器功能單元組成與CPU的流水線的詳細解析 1.2w次閱讀
- 新型流水線實現高速低功耗ADC的原理及方法 4522次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數發生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論