多輸入多輸出處理器流水線數據同步裝置及方法
【專利摘要】本發明公開一種多輸入多輸出處理器流水線數據同步裝置及方法,所述裝置包括:具有多個運算流水級的多輸入多輸出功能部件,通過執行對輸入操作數的運算響應指令;流水線控制器,接收指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若全部有效,則發送指令進入功能部件,若至少一個無效,則發送空指令進入功能部件;流水線控制器接收功能部件的輸出請求,并判斷可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在一定時間內將輸出請求轉發至存儲器,若不可行,則阻塞功能部件的輸出。由此,不僅解決了多輸入多輸出功能部件的流水線同步化問題,同時能很大程度降低處理器訪存開銷,提高處理器的訪存效率。
【專利說明】
多輸入多輸出處理器流水線數據同步裝置及方法
技術領域
[0001]本發明屬于計算機電子領域,特別涉及一種多輸入多輸出處理器流水線數據同步裝置及方法。
【背景技術】
[0002]數據處理設備采用切分多個流水級的流水線處理器,具有能同時執行多條指令的優勢,從而可增加處理器主頻,提高處理器數據吞吐量,提高處理器運算性能。然而,在執行任何特定指令期間,該指令都將經過處理器的各個流水級,指令經由處理器的最后一個流水級時,指令執行結束,在該點指令修改處理器數據設備反映指令的執行結果。
[0003]對數據同步化的需求源于處理器的功能部件在指令執行階段需和存儲器進行數據交互。例如,當出現了數據讀沖突導致功能部件不能在芯片的一個時鐘周期節拍內獲得所有的輸入操作數,則可以延遲指令的發射;或者功能部件的輸出數據不能寫入目標存儲地址或者緩存內,可以阻塞流水線。
[0004]專利文件1(公開號為CN 103383641A)公開了一種多流水線同步裝置,在該裝置中,控制狀態寄存器傳送單元完成流水線之間的控制狀態寄存器傳送,包括流水線A對流水線B的控制寄存器配置操作,以及流水線A對流水線B的狀態寄存器讀操作。流水線寄存器傳送單元完成流水線A中普通寄存器與流水線B中流水線配置寄存器的寄存器傳送,以此流水線B得到其運轉所需的寄存器信息。同步邏輯單元負責接收調度指令以及阻塞信息,并根據控制狀態寄存器,為流水線A產生停頓信號,為流水線B產生調度使能及傳遞調度信息。但該裝置僅支持多核CPU的核間同步,且為單輸入單輸出處理器流水線數據的同步,并且僅通過同步邏輯單元產生調度使能和停頓信號來實現核內多流水線的同步。在實現核內多流水線的同步時,當功能部件的輸入操作數或者輸出操作數的個數增加時,功能部件和存儲器的交互更加頻繁,數據沖突更為嚴重,如何以一種高效的方式解決多輸入多輸出功能部件的流水線數據同步化問題更為突出。
【發明內容】
[0005]本發明的目的在于,解決至少上述問題和缺陷,提供一種多輸入多輸出處理器流水線數據同步裝置及方法,解決多輸入多輸出功能部件流水級數據同步化的控制,提高處理器性能。
[0006]本發明的多輸入多輸出處理器流水線數據同步裝置,設置在具有指令發射器的芯片中,所述同步裝置與一個或多個存儲器相互通信,其中,所述同步裝置包括:
[0007]具有多個運算流水級的多輸入多輸出功能部件,用于通過執行對多個輸入操作數的運算響應指令;
[0008]與所述多輸入多輸出功能部件相連的流水線控制器:
[0009]用于接收所述指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件;若所述輸入操作數至少一個無效,則發送空指令進入所述多輸入多輸出功能部件;以及,
[0010]用于接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在所述芯片的一個節拍周期內將所述輸出請求轉發至所述存儲器,若判斷所述輸出請求為不可行,則阻塞所述多輸入多輸出功能部件的輸出;
[0011]與存儲器和所述多輸入多輸出功能部件相連接的預取輸入操作數邏輯,用于計算指令所需輸入操作數地址,并向所述存儲器發送輸入操作數預取請求,以及緩存被預取回的數據;
[0012]其中,所述輸入操作數的有效性是指,所述流水線控制器正在解析的指令所需的輸入操作數已經被所述預取輸入操作數邏輯預取或者是正在讀取,能夠保證在下一個芯片周期節拍內發送至所述功多輸入多輸出功能部件,則所述輸入操作數為有效,否則為無效;
[0013]其中,所述輸出請求的可行性是指,所述多輸入多輸出功能部件輸出的輸出操作數都能被緩沖器暫存或者都能被讀入的存儲器,則所述輸出請求為可行,否則為不可行。
[0014]本發明的多輸入多輸出處理器流水線數據同步裝置,其中:
[0015]所述流水線控制器是通過設置一輸入邏輯,解析指令所需的輸入操作數并對輸入操作數的有效性進行判斷;
[0016]所述流水線控制器是通過設置一輸出邏輯,接收所述多輸入多輸出功能部件的多個輸出請求并對所述輸出請求的可行性進行判斷。
[0017]本發明的多輸入多輸出處理器流水線數據同步裝置,其中:
[0018]若所述輸出邏輯阻塞所述多輸入多輸出功能部件的輸出超過芯片周期的一個節拍以上,則阻塞指令進入所述多輸入多輸出功能部件。
[0019]另外,本發明還提供一種使用上述的多輸入多輸出處理器流水線數據同步裝置實現多輸入多輸出處理器流水線數據的同步化的方法,包括如下步驟:
[0020]步驟I,所述流水線控制器接收指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件,若所述輸入操作數有至少一個無效,則發送空指令進入所述多輸入多輸出功能部件;
[0021]步驟2,所述多輸入多輸出功能部件,按照指令通過運算流水級執行對多個輸入操作數的運算,并向所述流水線控制器發送輸出請求;
[0022]步驟3,所述流水線控制器接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在所述芯片的一個節拍周期內將所述輸出請求轉發至存儲器,若所述輸出請求不可行,則阻塞所述多輸入多輸出功能部件的輸出;
[0023]其中,所述輸入操作數的有效性是指,所述流水線控制器正在解析的指令所需的輸入操作數已經被所述預取輸入操作數邏輯預取或者是正在讀取,能夠保證在下一個芯片周期節拍內發送至所述功多輸入多輸出功能部件,則所述輸入操作數為有效,否則為無效;
[0024]其中,所述輸出請求的可行性是指,所述多輸入多輸出功能部件輸出的輸出操作數都能被緩沖器暫存或者都能被讀入的存儲器,則所述輸出請求為可行,否則為不可行。
[0025]本發明的多輸入多輸出處理器流水線數據的同步化的方法,其中,進一步包括如下步驟:
[0026]步驟10,輸入邏輯接收所述指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件;或者所述輸入操作數有至少一個無效,則發送空指令進入所述多輸入多輸出功能部件;
[0027]步驟20,所述多輸入多輸出功能部件,按照指令通過運算流水級執行對多個輸入操作數的運算,并向輸出邏輯發送輸出請求;
[0028]步驟30,輸出邏輯接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在一定時間內將所述輸出請求轉發至所述存儲器;或者若所述輸出請求不可行,則阻塞所述多輸入多輸出功能部件的輸出。
[0029]本發明的多輸入多輸出處理器流水線數據的同步化的方法,其中,進一步包括如下步驟:
[0030]步驟40,預取輸入操作數邏輯計算指令所需操作數地址,并向存儲有所述操作數的存儲器發送預取請求,以及緩存被預取回的指令。
[0031]本發明的多輸入多輸出處理器流水線數據的同步化的方法,其中,若所述輸出邏輯阻塞所述多輸入多輸出功能部件的輸出超過芯片周期的一個節拍以上,則阻塞指令進入所述多輸入多輸出功能部件。
[0032]另外,本發明還提供一種包括上述多輸入多輸出處理器流水線數據同步裝置的數據處理芯片。
[0033]本發明的效果如下:
[0034]根據本發明的多輸入多輸出功能部件流水線同步化的裝置,實現輸入數據的解析和預取以及對功能部件的含有多個輸出操作數的輸出請求應答,因此能夠解決多輸入多輸出功能部件流水級數據同步化的控制,提高處理器性能。
【附圖說明】
[0035]圖1示出了本發明的實施方式的多輸入多輸出處理器流水線數據同步裝置的構成圖。
[0036]圖2示出了本發明的另一實施方式的多輸入多輸出處理器流水線數據同步裝置的構成圖。
[0037]圖3示出了圖2的多輸入多輸出處理器流水線數據同步裝置中的解析指令輸入操作數有效性的邏輯(即輸入邏輯7)的結構圖。
[0038]圖4示出了圖2的多輸入多輸出處理器流水線數據同步裝置中的功能部件輸出請求仲裁和處理邏輯(即輸出邏輯8)的結構圖。
[0039]圖5示出本發明的多輸入多輸出處理器流水線數據同步方法的流程圖。
[0040]圖6示出本發明的另一實施方式的多輸入多輸出處理器流水線數據同步方法的流程圖。
[0041]圖7示出本發明的實施方式的數據處理芯片。
[0042]附圖標記說明
[0043]I?4-_RAM存儲器、5…流水線控制器、6…多輸入多輸出功能部件、7…輸入邏輯、8…輸出邏輯、9..?兩輸入兩輸出功能部件、11…輸入邏輯7的數據預取邏輯、12…輸入邏輯7的內部控制邏輯、13...輸入邏輯7的FIFO隊列、14...輸入邏輯7的數據沖裁邏輯、15...輸入邏輯7的數據總線接口、16...輸出邏輯8的內部控制邏輯、17...輸出邏輯8的FIFO隊列、18...輸出邏輯8的數據沖裁邏輯、19...輸出邏輯8的數據總線接口、100,300…輸入控制信號、20(l...輸出控制信號、400…多輸入多輸出處理器流水線數據同步裝置、500…數據處理芯片。
【具體實施方式】
[0044]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖對本發明的多輸入多輸出處理器流水線數據同步裝置及方法進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0045]圖1本發明的多輸入多輸出處理器流水線數據同步裝置的構成圖。所述多輸入是指:a.輸入數據來源于多個不同的RAM存儲器;b.—個芯片周期節拍內功能部件的輸入操作數可以是零個至多個;所述多輸出是指:a.輸出數據的目的地址可以是多個不同的RAM存儲器;b.—個芯片周期節拍內功能部件的輸出操作數可以是零個至多個;具體地,該同步裝置包括:多輸入多輸出功能部件6,其與四個RAM存儲器1、2、3、4相對應,可執行指令序列,功能部件I可有多個輸入操作數、多個輸出操作數,具有多個流水級,通過執行對多個輸入操作數的運算響應指令;流水線控制器5,它設置在芯片中,所述流水線控制器接收芯片中指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,如果所需的數據都是有效的,則在芯片的一個節拍周期內,給功能部件發送請求,若所述輸入操作數有至少一個無效,則流水線控制器給功能部件發一條氣泡指令,此空指令不會影響功能部件內部的數據寄存器;同時此流水線控制器接收功能部件的多個輸出請求,并判斷輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收請求,然后再在一定時間內將請求轉發至存儲器;若不可行,則阻塞功能部件流水線,但是當流水線控制器阻塞功能部件運算功能時,不阻塞流水線控制器解析當前指令以及數據預取功能。其中輸入操作數的有效性是指:當流水線控制器正在解析的指令所需的輸入操作數已經被預取或者是正在讀取,能夠保證在下一個芯片周期節拍內發送至功能部件,則認為輸入操作數是有效的,否則認為無效;輸出請求的可行性是指:功能部件輸出的零個至多個輸出操作數,它們都能被buffer暫存或者被讀入了待寫入的RAM的相應地址,則認為輸出請求可行,否則認為輸出請求不可行;輸入操作數的有效性和輸出請求的可行性都是在芯片的一個周期節拍內完成。另外,該具有多個流水級的功能部件6具有一項被配置為緩存一個輸入指令操作和數據的buffer緩沖器。另外,流水線控制器在解析當前指令所需的輸入數據的有效性的同時,解析之后多條指令功能部件所需的輸入操作數,并預取數據。
[0046]圖2示出了本發明的另一實施方式的多輸入多輸出處理器流水線數據同步裝置的構成圖。在該實施方式的多輸入多輸出處理器流水線數據同步裝置中,作為多輸入多輸出功能部件而采用兩輸入兩輸出功能部件作為9,其與四個RAM存儲器1、2、3、4相對應,但是其流水線控制器包括:解析指令輸入操作數有效性的邏輯7(以下簡稱為“輸入邏輯”)、功能部件輸出請求仲裁和處理邏輯8(以下簡稱為“輸出邏輯”)以及預取指令輸入操作數的邏輯10(以下簡稱“預取輸入操作數邏輯”)。
[0047]所述功能部件6包括多個流水級,被配置為通過所述輸入操作數來執行響應指令,以及:A、寄存器寄存一條經過解析指令輸入操作數有效性的邏輯解析后進入的指令;B、當輸出數據的輸出請求被輸出請求仲裁和處理邏輯拒絕時,停頓功能部件流水線阻塞解析指令輸入操作數有效性的邏輯指令進入。兩輸入兩輸出功能部件6采用流水線結構進行運算處理想量化數據,此功能部件可用于處理神經網絡算法,圖像處理算法等算法。
[0048]輸入邏輯7,確認功能部件所需的輸入操作數個數以及每個輸入操作數來自于四個RAM中位置以及數據是否有效,即判斷所有輸入操作數是否被預取到緩存中或者是否能在芯片周期的一個節拍內被輸入到功能部件,以及:A、如果所有輸入操作數是否被預取到緩存中或者是否能在芯片周期的一個節拍內被輸入到功能部件,則發送指令進入功能部件。B、否則,發送不會影響功能部件狀態的空指令進入功能部件。其中發送空指令的目的是,不改變功能部件內部的數據寄存器以免發生數據流錯誤。另外,對于該輸入邏輯7的具體結構將在下文進行闡述。
[0049]輸出邏輯8,確認功能部件輸出的操作數個數以及輸出操作數應寫入四個RAM中位置以及相應RAM地址或緩存是否可寫入數據,以及:A、如果輸出操作數中有任何一個所對應的存儲器或者是緩存不可寫入數據,則阻塞功能部件流水級輸出。B、否則,將多個輸出操作數分別寫入各自的RAM地址或者是緩存。該輸出邏輯8阻塞功能部件6流水級輸出后,因為功能部件6能緩存一條經過解析指令輸入操作數有效性的邏輯解析后進入的指令,不會立即阻塞輸入邏輯7指令進入功能部件。該輸出邏輯8阻塞功能部件流水級輸出超過芯片周期一個節拍以上時,將阻塞輸入邏輯7指令進入功能部件。所述功能部件6阻塞輸入邏輯7指令進入時,所述預取指令輸入操作數的邏輯功能正常執行。另外,對于該輸出邏輯8的具體結構將在下文進行闡述。
[0050]預取輸入操作數邏輯10,其被配置為通過指令域和寄存器信息計算之后若干條指令所需操作數地址,并發送預取請求值相應RAM;以及緩存被預取回的指令。
[0051]另外,圖3示出了圖2中的輸入邏輯7的結構。其內部控制邏輯單元接12收外部控制并依據內部的寄存器狀態確定發送至運算單元的控制指令,并確定與之相對應所需的操作數。當內部控制邏輯12確認運算單元所需的數據準備好之后將控制指令以及輸入操作數發送給運算部件以實現流水線輸入數據的同步化控制。為了不使運算部件流水級因等待輸入數據而造成停頓,數據預取邏輯將和內部控制邏輯交互提前幾個時鐘周期解析出運算部件所需的輸入操作數并給相應的存儲塊發送數據預取請求。因此,在輸入數據同步化處理邏輯中有FIFO隊列13緩存被預取的數據。同時,還有一個輸入數據仲裁邏輯單元14確定輸入運算部件的數據來源于FIFO隊列還是直接從數據總線讀取。
[0052]圖4示出了圖2中的輸出邏輯8的結構。其內部控制邏輯單元16接收運算部件傳遞的控制信號并依照內部寄存器狀態確認運算部件輸出的操作數個數以及輸出操作數應寫入的存儲塊位置以及相應存儲塊地址或緩存是否可寫入數據。同時,輸出邏輯8依照輸出數據是否可被寫入接收判斷是否阻塞運算部件流水線。同樣的,為了避免運算部件因輸出數據被阻塞,輸出數據同步化處理邏輯8中含有FIFO隊列17緩存不能被及時寫入存儲塊的數據。而且為了維護輸出數據一致性,需要有一個數據仲裁邏輯18確定當前時鐘周期寫入存儲的數據來源于FIFO隊列或直接從總線讀取。
[0053]另外,本發明還提供一種使用上述的多輸入多輸出處理器流水線數據同步裝置實現多輸入多輸出處理器流水線數據的同步化的方法,如圖5所示,包括如下步驟:
[0054]步驟I,所述流水線控制器接收指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件,若所述輸入操作數有至少一個無效,則發送空指令進入所述多輸入多輸出功能部件;
[0055]步驟2,所述多輸入多輸出功能部件,按照指令通過運算流水級執行對多個輸入操作數的運算,并向所述流水線控制器發送輸出請求;
[0056]步驟3,所述流水線控制器接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在一定時間內將所述輸出請求轉發至存儲器,若不可行,則阻塞所述多輸入多輸出功能部件的輸出;
[0057]其中,所述輸入操作數的有效性是指,所述流水線控制器正在解析的指令所需的輸入操作數已經被預取或者是正在讀取,能夠保證在下一個芯片周期節拍內發送至所述功多輸入多輸出功能部件,則所述輸入操作數為有效,否則為無效;所述輸出請求的可行性是指,所述多輸入多輸出功能部件輸出的輸出操作數都能被緩沖器暫存或者都能被讀入的存儲器,則所述輸出請求為可行,否則為不可行。
[0058]圖6示出本發明的另一實施方式的多輸入多輸出處理器流水線數據同步方法的流程圖。包括如下步驟:
[0059]步驟10,輸入邏輯解析指令所需的輸入操作數,并判斷所有輸入操作數是否已被預取到緩存中或者是否能在芯片周期的一個節拍內被輸入到所述多輸入多輸出功能部件,若是,則發送指令進入所述多輸入多輸出功能部件,若否,則發送空指令進入所述多輸入多輸出功能部件;
[0060]步驟20,所述多輸入多輸出功能部件,按照指令通過運算流水級執行對多個輸入操作數的運算,并向輸出邏輯發送輸出請求;
[0061]步驟30,輸出邏輯判斷所述輸出請求的所有輸出操作數所對應的存儲器地址或者是緩存是否可寫入數據,若是,則將所述輸出操作數分別寫入所對應的存儲器地址或緩存,若否,則阻塞所述多輸入多輸出功能部件的輸出。
[0062]本發明的多輸入多輸出處理器流水線數據的同步化的方法,其中,進一步包括如下步驟:
[0063]步驟40,預取輸入操作數邏輯通過指令域和寄存器信息計算指令所需操作數地址,并向存儲有所述操作數的存儲器發送預取請求,以及緩存被預取回的指令。
[0064]本發明的多輸入多輸出處理器流水線數據的同步化的方法,其中,所述輸出邏輯,阻塞所述多輸入多輸出功能部件的輸出超過芯片周期的一個節拍以上,則阻塞指令進入所述多輸入多輸出功能部件。
[0065]以下,列舉幾個具體實施例來對本發明的多輸入多輸出處理器流水線數據的同步化的方法進行詳細說明。
[0066]—個實例中,指令所有所需的數據都已經被預取,同時功能部件輸出數據都能被寫入相應的RAM或者是buffer緩沖器,則功能部件能每在芯片周期一個節拍內接受一條新指令,功能部件高速運行,并且這是一種極佳的方式,但這不僅于此。
[0067]另一個實例中,指令所需的輸入操作數據中有一個未被預取,解析指令輸入操作數有效性的邏輯立即發送讀請求至此操作數據所在RAM,在此RAM不出現故障的情況下,操作數能在下一個芯片周期節拍被功能部件獲取,因此可使指令進入功能部件而不造成阻塞。
[0068]另一個實例中,指令所有所需的輸入操作數據都已經有效,但是功能部件輸出數據在當前芯片周期節拍有一個或者都不能被寫入相應的RAM或者是buffer緩沖器,然而在下一個芯片周期節拍可以寫入,由于功能部件能緩存一條輸入的指令,功能部件能仍可在下一芯片周期節拍接收指令及數據,不造成阻塞。
[0069]另一個實例中,預取指令輸入操作數的邏輯根據當前指令特定域以及寄存器信息計算出之后若干條指令所需操作數的位置地址。在功能部件不和讀取當前指令輸入操作數據或者寫入輸出操作數據發生沖突的情況下,其將預取之后指令所需的輸入操作數據,這種方式對于神經網絡算法尤其有效,因為神經網絡的數據種類繁多而且數據的空間局部性極高。在這種方式下,本發明所述的多輸入多輸出功能部件流水線同步化裝置能極大程度減小處理器訪存開銷,提高處理器性能。
[0070]另外,如圖7所示,本發明還提供一種包括上述多輸入多輸出處理器流水線數據同步裝置400的數據處理芯片500。
[0071 ]另外,應當說明的是,本發明所述“指令”是指計算機程序指令,該計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定的方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0072]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0073]盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。
[0074]以上對本發明所提供的多輸入多輸出處理器流水線數據同步裝置及方法進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限值。
【主權項】
1.一種多輸入多輸出處理器流水線數據同步裝置,設置在具有指令發射器的芯片中,所述同步裝置與一個或多個存儲器相互通信,特征在于,所述同步裝置包括: 具有多個運算流水級的多輸入多輸出功能部件,用于通過執行對多個輸入操作數的運算響應指令; 與所述多輸入多輸出功能部件相連的流水線控制器: 用于接收所述指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件;若所述輸入操作數至少一個無效,則發送空指令進入所述多輸入多輸出功能部件;以及, 用于接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在所述芯片的一個節拍周期內將所述輸出請求轉發至所述存儲器,若判斷所述輸出請求為不可行,則阻塞所述多輸入多輸出功能部件的輸出; 與存儲器和所述多輸入多輸出功能部件相連接的預取輸入操作數邏輯,用于計算指令所需輸入操作數地址,并向所述存儲器發送輸入操作數預取請求,以及緩存被預取回的數據; 其中,所述輸入操作數的有效性是指,所述流水線控制器正在解析的指令所需的輸入操作數已經被所述預取輸入操作數邏輯預取或者是正在讀取,能夠保證在下一個芯片周期節拍內發送至所述功多輸入多輸出功能部件,則所述輸入操作數為有效,否則為無效; 其中,所述輸出請求的可行性是指,所述多輸入多輸出功能部件輸出的輸出操作數都能被緩沖器暫存或者都能被讀入的存儲器,則所述輸出請求為可行,否則為不可行。2.根據權利要求1所述的多輸入多輸出處理器流水線數據同步裝置,其特征在于: 所述流水線控制器是通過設置一輸入邏輯,解析指令所需的輸入操作數并對輸入操作數的有效性進行判斷; 所述流水線控制器是通過設置一輸出邏輯,接收所述多輸入多輸出功能部件的多個輸出請求并對所述輸出請求的可行性進行判斷。3.根據權利要求2所述的多輸入多輸出處理器流水線數據同步裝置,其特征在于, 若所述輸出邏輯阻塞所述多輸入多輸出功能部件的輸出超過芯片周期的一個節拍以上,則阻塞指令進入所述多輸入多輸出功能部件。4.一種使用權利要求1?3的任一項所述的多輸入多輸出處理器流水線數據同步裝置實現多輸入多輸出處理器流水線數據的同步化的方法,其特征在于,包括如下步驟: 步驟I,所述流水線控制器接收指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件,若所述輸入操作數有至少一個無效,則發送空指令進入所述多輸入多輸出功能部件; 步驟2,所述多輸入多輸出功能部件,按照指令通過運算流水級執行對多個輸入操作數的運算,并向所述流水線控制器發送輸出請求; 步驟3,所述流水線控制器接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在所述芯片的一個節拍周期內將所述輸出請求轉發至存儲器,若所述輸出請求不可行,則阻塞所述多輸入多輸出功能部件的輸出; 其中,所述輸入操作數的有效性是指,所述流水線控制器正在解析的指令所需的輸入操作數已經被所述預取輸入操作數邏輯預取或者是正在讀取,能夠保證在下一個芯片周期節拍內發送至所述功多輸入多輸出功能部件,則所述輸入操作數為有效,否則為無效; 其中,所述輸出請求的可行性是指,所述多輸入多輸出功能部件輸出的輸出操作數都能被緩沖器暫存或者都能被讀入的存儲器,則所述輸出請求為可行,否則為不可行。5.根據權利要4所述的多輸入多輸出處理器流水線數據的同步化的方法,其特征在于,進一步包括如下步驟: 步驟10,輸入邏輯接收所述指令發射器發送的指令,解析指令所需的輸入操作數并判斷輸入操作數的有效性,若所述輸入操作數全部有效,則在芯片周期的一個節拍內,發送指令進入所述多輸入多輸出功能部件;或者所述輸入操作數有至少一個無效,則發送空指令進入所述多輸入多輸出功能部件; 步驟20,所述多輸入多輸出功能部件,按照指令通過運算流水級執行對多個輸入操作數的運算,并向輸出邏輯發送輸出請求; 步驟30,輸出邏輯接收所述多輸入多輸出功能部件的多個輸出請求,并判斷所述輸出請求的可行性,若可行,則在芯片的一個節拍周期內接收所述輸出請求,并在一定時間內將所述輸出請求轉發至所述存儲器;或者若所述輸出請求不可行,則阻塞所述多輸入多輸出功能部件的輸出。6.根據權利要5所述的多輸入多輸出處理器流水線數據的同步化的方法,其特征在于,進一步包括如下步驟: 步驟40,預取輸入操作數邏輯計算指令所需操作數地址,并向存儲有所述操作數的存儲器發送預取請求,以及緩存被預取回的指令。7.根據權利要5所述的多輸入多輸出處理器流水線數據的同步化的方法,其特征在于, 若所述輸出邏輯阻塞所述多輸入多輸出功能部件的輸出超過芯片周期的一個節拍以上,則阻塞指令進入所述多輸入多輸出功能部件。8.—種包括權利要求1?3的任一項所述的多輸入多輸出處理器流水線數據同步裝置的數據處理芯片。
【文檔編號】G06F9/52GK105824604SQ201510824901
【公開日】2016年8月3日
【申請日】2015年11月24日
【發明人】李震, 劉少禮, 張士錦, 羅韜, 錢誠, 陳云霽, 陳天石
【申請人】中國科學院計算技術研究所