專利名稱:基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu)的制作方法
基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu)技術(shù)領(lǐng)域
本發(fā)明主要涉及到單片多處理器領(lǐng)域,特指一種基于單片多處理器系統(tǒng)的共享 前端流水線結(jié)構(gòu)。
背景技術(shù):
多核處理器也稱為片上多處理器(chip multi-processor,CMP),或單芯片多處 理器。自1996年美國斯坦福大學(xué)首次提出片上多處理器(CMP)思想和首個(gè)多核結(jié)構(gòu) 原型,到2001年IBM推出第一個(gè)商用多核處理器POWER4,再到2005年Intel和AMD多核處理器的大規(guī)模應(yīng)用,最后到現(xiàn)在多核成為市場主流,多核處理器經(jīng)歷了十幾年的 發(fā)展。在這個(gè)過程中,多核處理器的應(yīng)用范圍已覆蓋了多媒體計(jì)算、嵌入式設(shè)備、個(gè)人 計(jì)算機(jī)、商用服務(wù)器和高性能計(jì)算機(jī)等眾多領(lǐng)域,多核技術(shù)及其相關(guān)研究也迅速發(fā)展, 比如多核結(jié)構(gòu)設(shè)計(jì)方法、片上互連技術(shù)、可重構(gòu)技術(shù)、下一代眾核技術(shù)等。多核處理器 將多個(gè)完全功能的核心集成在同一個(gè)芯片內(nèi),整個(gè)芯片作為一個(gè)統(tǒng)一的結(jié)構(gòu)對(duì)外提供服 務(wù),輸出性能。多核處理器首先通過集成多個(gè)單線程處理核心或者集成多個(gè)同時(shí)多線程 處理核心,使得整個(gè)處理器可同時(shí)執(zhí)行的線程數(shù)或任務(wù)數(shù)是單處理器的數(shù)倍,這極大地 提升了處理器的并行性能;其次,多個(gè)核集成在片內(nèi),極大地縮短了核間的互連線,核 間通信延遲變低,提高了通信效率,數(shù)據(jù)傳輸帶寬也得到提高;再者,多核結(jié)構(gòu)有效共 享資源,片上資源的利用率得到了提高,功耗也隨著器件的減少得到了降低;最后,多 核結(jié)構(gòu)簡單,易于優(yōu)化設(shè)計(jì),擴(kuò)展性強(qiáng)。這些優(yōu)勢最終推動(dòng)了多核的發(fā)展并逐漸取代單 處理器成為主流。但現(xiàn)有的CMP的還有很多不足之處,主要體現(xiàn)在當(dāng)前面向微處理器 的以順序結(jié)構(gòu)為主的通用程序,能高效的運(yùn)行,但面向科學(xué)計(jì)算、圖形圖像處理等以并 行運(yùn)算為主的程序還不能在CMP上高效運(yùn)行;另外,CMP的有些技術(shù)還不成熟在資 源利用的靈活性上不如SMT,對(duì)于某些應(yīng)用可能性能很差。發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就在于針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供 一種結(jié)構(gòu)簡單緊湊、成本低廉、能夠有效緩解存儲(chǔ)墻瓶頸、具有深度并行性、從而能夠 極大地提升媒體處理和數(shù)據(jù)密集型科學(xué)計(jì)算等應(yīng)用的處理性能的基于單片多處理器系統(tǒng) 的共享前端流水線結(jié)構(gòu)。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案一種基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu),其特征在于包括設(shè)置于兩個(gè) 以上流核心的執(zhí)行部件之前并被所有流核心共享的取指單元、譯碼單元和預(yù)取單元,所 述取指單元完成取指操作后經(jīng)譯碼單元將指令送入流核心的執(zhí)行部件,不同流核心用來 處理同一條指令的不同線程,所述預(yù)取單元用于當(dāng)指令在流核心的執(zhí)行部件阻塞時(shí)進(jìn)行 斷續(xù)預(yù)取指,形成指令隊(duì)列,待執(zhí)行部件阻塞狀態(tài)結(jié)束后,預(yù)取單元中的指令隊(duì)列依次 送至執(zhí)行部件。
作為本發(fā)明的進(jìn)一步改進(jìn)所述取指單元與譯碼單元之間設(shè)有PC0,所述每個(gè)流核心中均設(shè)有不同的PC,通過 各PC之間的比較及判決電路實(shí)現(xiàn)PC間的同步保證流核心執(zhí)行同一條指令。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于1、本發(fā)明通過在多核中使用共享前端技術(shù),可使各個(gè)流核心共享取指部件和譯碼部 件,可以減少硬件數(shù)量,減少硬件成本和功耗。能夠有效緩解存儲(chǔ)墻瓶頸、開發(fā)多種級(jí) 別的程序并行性。
2、本發(fā)明提出的共享前端部件結(jié)構(gòu)簡單,且全部由同步邏輯單元實(shí)現(xiàn),在硬件 復(fù)雜性有限增加的情況下能夠有效緩解存儲(chǔ)墻瓶頸。
3、本發(fā)明通過開發(fā)深度并行性的流多核體系結(jié)構(gòu),從而極大地提升媒體處理和 數(shù)據(jù)密集型科學(xué)計(jì)算等應(yīng)用的處理性能。
圖1是本發(fā)明的各個(gè)流核心共享取指部件和譯碼部件的流水線結(jié)構(gòu)示意圖; 圖2是本發(fā)明具體實(shí)施的原理示意圖;圖3是本發(fā)明具體實(shí)施中各PC變化及其狀態(tài)的具體示意圖。
具體實(shí)施方式
以下將結(jié)合說明書附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。
在經(jīng)典的5段流水線中,共包含以下5段取指段、譯碼段、執(zhí)行段、訪存段、 寫回段,在現(xiàn)有的單核處理器中如此,在現(xiàn)有的多核處理器中也是這樣,在本發(fā)明中, 針對(duì)在CMP還不能高效運(yùn)行面向科學(xué)計(jì)算、圖形圖像處理等以并行運(yùn)算為主的程序及 CMP在資源利用的靈活性上不如SMT,對(duì)于某些應(yīng)用可能性能很差的不足,設(shè)計(jì)了基于 單片多處理器系統(tǒng)的共享前端流水線。
如圖1和圖2所示,本發(fā)明基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu),包括 設(shè)置于兩個(gè)以上流核心的執(zhí)行部件之前并被所有流核心共享的取指單元、譯碼單元和預(yù) 取單元。本實(shí)施例中,是由四個(gè)流核心組成一個(gè)流多核,每個(gè)流核心都有各自的流水線 后端執(zhí)行段、訪存段、寫回段,同時(shí),四個(gè)流核心共享同一個(gè)流水線前端取指段、 譯碼段。即,每個(gè)流核心有各自獨(dú)立的流水線后端執(zhí)行段(執(zhí)行部件)、訪存段(訪 存部件)、寫回段(寫回部件),但所有的流核心都共享本發(fā)明的流水線前端取指單 元、譯碼單元和預(yù)取單元。取指單元完成取指操作后經(jīng)譯碼單元將指令送入流核心的執(zhí) 行部件,不同流核心用來處理同一條指令的不同線程,預(yù)取單元用于當(dāng)指令在流核心的 執(zhí)行部件阻塞時(shí)進(jìn)行斷續(xù)預(yù)取指,形成指令隊(duì)列,待執(zhí)行部件阻塞狀態(tài)結(jié)束后,預(yù)取單 元中的指令隊(duì)列依次送至執(zhí)行部件。即,若流水線在執(zhí)行段阻塞時(shí),此時(shí)取指單元是“非空的”且其中的指令不能送至譯碼單元,也將處于阻塞狀態(tài);通過增加了預(yù)取單元 后,預(yù)取單元可以斷續(xù)預(yù)取指,形成指令隊(duì)列,待執(zhí)行部件阻塞狀態(tài)結(jié)束后,預(yù)取單元 中的指令隊(duì)列就能迅速的送至執(zhí)行部件,這樣可以提高IPC。
本實(shí)施例中,本發(fā)明進(jìn)一步在取指單元與譯碼單元之間設(shè)有PC0,每個(gè)流核心 中均設(shè)有不同的PC,通過各PC之間的比較及判決電路實(shí)現(xiàn)PC間的同步保證流核心執(zhí)行4同一條指令。PC為“程序主數(shù)器” (Program counter),用來完成計(jì)數(shù)。
參見圖2,在具體實(shí)施例中,假設(shè)一列指令隊(duì)列正在單片多處理器中執(zhí)行,其具 體執(zhí)行模式為當(dāng)處于某一時(shí)鐘節(jié)拍時(shí),指令1恰好經(jīng)過取指單元、譯碼單元后送至執(zhí) 行部件,指令2則正處在譯碼單元,指令3處在取指單元,后面的指令4、指令5、指令6 等則形成指令隊(duì)列等待取指單元的取指。指令1進(jìn)入譯碼單元后則被4個(gè)流核心同時(shí)執(zhí) 行,每個(gè)流核心分別執(zhí)行此條指令的不同線程。
由此可見,流核心1、流核心2、流核心3、流核心4在流水線前端時(shí)對(duì)某一條 指令采用共同的功能部件取指、譯碼操作,而在后端時(shí),則是不同的4條流水線對(duì)同一 條指令進(jìn)行執(zhí)行、訪存、寫回操作。在后端操作時(shí),每條流水線分別執(zhí)行同一條指令的 不同線程,即流核心1執(zhí)行線程1、流核心執(zhí)行線程2、流核心3執(zhí)行線程3、流核心 4執(zhí)行線程4。通過此設(shè)計(jì),從而能大大提高針對(duì)以科學(xué)計(jì)算、圖形圖像處理等以并行運(yùn) 算和數(shù)值運(yùn)算為主的程序的效率,現(xiàn)時(shí)也能提高流水線前端各資源的利用率,還能提高 各流水線后端各資源的協(xié)同能力。
如圖3所示,顯示了本發(fā)明具體實(shí)施中各PC變化及其狀態(tài)的具體示意圖。下 面通過描述圖2結(jié)構(gòu)中數(shù)據(jù)的傳輸來解釋整個(gè)流水線的工作過程?,F(xiàn)有的程序主要有三 種典型的結(jié)構(gòu)順序、分支、循環(huán),下面分別就此發(fā)明對(duì)三種典型的程序結(jié)構(gòu)的執(zhí)行流 程予以詳細(xì)說明,重點(diǎn)說明程序的控制流。當(dāng)程序順序執(zhí)行時(shí),此發(fā)明的執(zhí)行和經(jīng)典 流水線完全一致。S卩,在初始化時(shí),PCO、PCU PC2、PC3、PC4中值完全一樣,取 指后,PCO自動(dòng)加4,同時(shí)PCI、PC2、PC3、PC4也分別自動(dòng)加4,此時(shí),PCO、PCU PC2、PC3、PC4中的值完全保持一致,經(jīng)高速判決電路后,分別判決PCO與PCI、PCO 與PC2、PCO與PC3、PCO與PC4—致,流水線不停頓的執(zhí)行,下條指令繼續(xù)流進(jìn)并執(zhí) 行。當(dāng)程序分支執(zhí)行時(shí),PCI、PC2、PC3、PC4中增加的值不一樣,導(dǎo)致PCO、PCU PC2、PC3、PC4值不完全一致,經(jīng)判決電路后,其判決值不可能同時(shí)為0或?yàn)?,則致 使流水線發(fā)生阻塞,也即4個(gè)流核心的非共享流水線后端只有部分繼續(xù)運(yùn)行,部分則處 于等待狀態(tài),只有等PCO、PCU PC2、PC3、PC4值完全一致時(shí),4個(gè)流核心的非共享 流水線后端才繼續(xù)執(zhí)行。我們?cè)O(shè)定在程序發(fā)生分支時(shí),所有5個(gè)PC值以其中最大的那 個(gè)PC值為基準(zhǔn),也即以分支跳轉(zhuǎn)最遠(yuǎn)的PC為基準(zhǔn),當(dāng)PCO、PCU PC2、PC3、PC4不 完全一致時(shí),上述5個(gè)PC是如此動(dòng)作的PCI、PC2、PC3、PC4則處于停頓狀態(tài),只 有PCO是不停的運(yùn)行的,PCO的賦值由PCI、PC2、PC3、PC4所決定,通過比較器對(duì) PCU PC2、PC3、PC4進(jìn)行比較,將其最小值送至PC0,執(zhí)行一個(gè)分支后,又將PC1、 PC2、PC3、PC4中除卻最小的PC余下的幾個(gè)PC中最小值送至PC0,如此反復(fù),直至所 有PCO、PCU PC2、PC3、PC4值完全一致時(shí)整個(gè)多核處理器系統(tǒng)才往下繼續(xù)執(zhí)行。當(dāng) 程序循環(huán)執(zhí)行時(shí),其執(zhí)行流程同分支執(zhí)行情況。
以上僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施 例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù) 領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,應(yīng)視為本發(fā) 明的保護(hù)范圍。
權(quán)利要求
1.一種基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu),其特征在于包括設(shè)置于兩 個(gè)以上流核心的執(zhí)行部件之前并被所有流核心共享的取指單元、譯碼單元和預(yù)取單元, 所述取指單元完成取指操作后經(jīng)譯碼單元將指令送入流核心的執(zhí)行部件,不同流核心用 來處理同一條指令的不同線程,所述預(yù)取單元用于當(dāng)指令在流核心的執(zhí)行部件阻塞時(shí)進(jìn) 行斷續(xù)預(yù)取指,形成指令隊(duì)列,待執(zhí)行部件阻塞狀態(tài)結(jié)束后,預(yù)取單元中的指令隊(duì)列依 次送至執(zhí)行部件。
2.根據(jù)權(quán)利要求1所述的基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu),其特征在 于所述取指單元與譯碼單元之間以及每個(gè)流核心中均設(shè)有不同的程序計(jì)數(shù)器PC,通過 各PC之間的比較及判決電路實(shí)現(xiàn)PC間的同步保證流核心執(zhí)行同一條指令。
全文摘要
本發(fā)明公開了一種基于單片多處理器系統(tǒng)的共享前端流水線結(jié)構(gòu),包括設(shè)置于兩個(gè)以上流核心的執(zhí)行部件之前并被所有流核心共享的取指單元、譯碼單元和預(yù)取單元,所述取指單元完成取指操作后經(jīng)譯碼單元將指令送入流核心的執(zhí)行部件,不同流核心用來處理同一條指令的不同線程,所述預(yù)取單元用于當(dāng)指令在流核心的執(zhí)行部件阻塞時(shí)進(jìn)行斷續(xù)預(yù)取指,形成指令隊(duì)列,待執(zhí)行部件阻塞狀態(tài)結(jié)束后,預(yù)取單元中的指令隊(duì)列依次送至執(zhí)行部件。本發(fā)明具有結(jié)構(gòu)簡單緊湊、成本低廉、能夠有效緩解存儲(chǔ)墻瓶頸、具有深度并行性、從而能夠極大地提升媒體處理和數(shù)據(jù)密集型科學(xué)計(jì)算等應(yīng)用的處理性能等優(yōu)點(diǎn)。
文檔編號(hào)G06F9/38GK102023846SQ20111000155
公開日2011年4月20日 申請(qǐng)日期2011年1月6日 優(yōu)先權(quán)日2011年1月6日
發(fā)明者付桂濤, 何銳, 孟曉冬, 晏小波, 李方圓, 梅家祥, 湯先拓, 王宏燕, 王慶林, 蔡放, 趙齊, 邢座程, 邱建雄, 閔銀皮, 陳小保, 馬安國, 黃平 申請(qǐng)人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)