国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      向量交叉多線程處理方法及向量交叉多線程微處理器的制作方法

      文檔序號:6423521閱讀:251來源:國知局
      專利名稱:向量交叉多線程處理方法及向量交叉多線程微處理器的制作方法
      技術領域
      本發(fā)明涉及計算機微處理器領域,特指一種多線程微處理器。
      背景技術
      計算機領域的高速發(fā)展,對微處理器的處理能力的要求越來越高,而提高微處理器的運算能力主要有兩個途徑一是提高單個處理器核的運算能力;二是增加將多個處理器核集成在一個微處理器芯片中,即通常所稱的多核技術。1、提高處理器核的運算能力,傳統(tǒng)的方法主要依靠提高處理器核的頻率和采用指令發(fā)射寬度更大的超標量技術,由于受工藝、功耗和可靠性等因素的制約,處理器頻率的提升遇到了瓶頸,指令發(fā)射寬度也難以繼續(xù)擴大。因此,人們逐漸將關注的重點轉向其他新型微處理器體系結構技術,以充分利用不斷增長的片上硬件資源,從而使微處理器核的性能得到提升。如圖1所示,是傳統(tǒng)標量微處理器核的典型結構,它主要包括程序計數(shù)器、取指部件、指令高速緩存、譯碼部件、以及標量執(zhí)行流水線。標量執(zhí)行流水線主要包括寄存器文件單元、數(shù)據(jù)高速緩存、標量執(zhí)行部件(Load/Store部件、標量浮點運算部件和標量算術邏輯部件)以及數(shù)據(jù)寫回部件。典型的標量應用程序在傳統(tǒng)微處理器上的執(zhí)行過程如下如圖 2所示,取指部件依據(jù)程序計數(shù)器向指令高速緩存發(fā)出訪存指令獲取指令,然后取指部件將準備好的指令發(fā)往譯碼部件進行譯碼,依據(jù)譯碼部件的譯碼結果,指令進入標量執(zhí)行流水線開始執(zhí)行,執(zhí)行時標量執(zhí)行流水線依據(jù)譯碼部件的譯碼結果訪問寄存器文件單元并獲得該指令的源操作數(shù),并發(fā)往合適的功能部件完成該指令的功能,最后,數(shù)據(jù)寫回部件負責將該指令產(chǎn)生的最終結果寫回寄存器文件。在微處理器體系結構的發(fā)展過程中,曾出現(xiàn)了交叉多線程技術和向量技術。交叉多線程技術是指,微處理器能夠同時維護多個標量線程的狀態(tài)寄存器和相關信息,執(zhí)行流水線交替的執(zhí)行來自不同線程的標量指令。向量技術的特征主要體現(xiàn)在一條指令可以完成多個標量數(shù)據(jù)的處理,向量處理器通常具有極高的峰值性能。交叉多線程技術能夠使得微處理器有效地隱藏長延遲操作,確保執(zhí)行流水線充滿,然而由于多個線程共用一套運算部件,這使得單個線程的性能受到影響,且該技術無法提高微處理器的峰值性能;向量技術能夠極大地提高微處理器的峰值性能,但它對高速緩存失效帶來的存儲器訪問延遲較為敏感,難以將峰值性能轉化為實用性能。如果能夠將二者有機結合在一起,那么將有可能設計出同時具備高峰值性能和實用性能的高性能微處理器。2、多核技術,是將多個復雜度較低的處理器核心集成在一個芯片上。多核技術能夠更好的利用片上的硬件資源,提高微處理器的性能。近年來,隨著多核技術的發(fā)展,在單一芯片上集成的處理器核數(shù)越來越多,而相應的單個處理器核的運算能力卻沒有顯著提升,在某些設計中甚至明顯下降。并且,為了能夠更充分的發(fā)揮多核處理器的性能,人們越來越多的關注進程級和線程級并行的開發(fā),而忽略了指令級并行和數(shù)據(jù)級并行的研究。如何平衡芯片集成的處理器核心數(shù)目和單核心的運算能力,融合進程級、線程級、指令級以及數(shù)據(jù)級并行,從而進一步提高微處理器的性能是微處理器體系結構設計的重要問題。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術問題是針對現(xiàn)有技術存在的技術問題,本發(fā)明提供一種將向量處理技術與多線程技術相結合、能提高處理器運算性能的向量交叉多線程處理方法,以及一種硬件結構簡單、運算能力強、兼容性和擴展性好向量交叉多線程微處理器。為解決上述技術問題,本發(fā)明采用以下技術方案
      一種向量交叉多線程處理方法,其特征在于包括以下步驟
      1)讀取指令多線程取指部件以輪轉方式從N個向量線程中選擇一個向量線程進行指令讀取,并將讀取得到的指令存儲在所述向量線程對應的指令緩沖隊列中;
      2)線程選擇線程調度部件從N個指令緩沖隊列中選擇一個指令緩沖隊列,并從所述指令緩沖隊列中取出一個指令進行譯碼;
      3)執(zhí)行指令將譯碼后的指令送入向量執(zhí)行流水線或標量執(zhí)行流水線進行執(zhí)行。作為本發(fā)明的方法進一步改進 所述N=2n,其中n=l、2、3……。所述步驟3),具體包括以下步驟
      3. 1)操作數(shù)選擇根據(jù)所述譯碼后的指令的內(nèi)容,訪問向量寄存器文件單元或標量寄存器文件單元獲得源操作數(shù),并將獲得的源操作數(shù)傳遞到相應的向量執(zhí)行部件或標量執(zhí)行部件;
      3. 2)指令執(zhí)行所述向量執(zhí)行部件或標量執(zhí)行部件根據(jù)所述源操作數(shù)進行執(zhí)行運算, 執(zhí)行運算的結果分別寫回向量寄存器文件單元或標量寄存器文件單元。所述指令為標量指令或向量指令,所述向量指令包括以下類別 i ·向量訪存指令,包括
      A.向量加載指令
      vload vA rB,以標量寄存器rB中的數(shù)值作為地址,將數(shù)據(jù)讀入向量寄存器vA ; vload vA rB imm,以標量寄存器rB中的值加上立即數(shù)imm作為地址,將數(shù)據(jù)讀入向量寄存器vA ;
      vload vA imm,以立即數(shù)1_作為地址,將數(shù)據(jù)讀入向量寄存器vA;
      B.向量保存指令
      vstore vA rB imm,以標量寄存器rB中的數(shù)值加上立即數(shù)imm作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存;
      vstore vA imm,以立即數(shù)imm作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存; vstore vA rB,以標量寄存器rB中的數(shù)值作為地址,將數(shù)據(jù)從向量寄存器vA寫入主
      存;
      ·向量/標量寄存器數(shù)據(jù)傳遞指令,包括
      C.vtos vA rB idx,將向量寄存器vA中的第idx個單元送入標量寄存器rB ;
      D.stov vA rB,將標量寄存器rB中的值復制四份,送入向量寄存器vA ; iii.向量算術邏輯運算指令,包括
      E.VWOP vD vA vB,將向量寄存器vA和vB中對應的單元做某種算術邏輯運算op,結果寫入向量寄存器vD ;
      F.vvsop rD vA vB,將向量寄存器vA和vB中所有的單元做某種算術邏輯運算op,結果寫入標量寄存器rD;
      G.vsvop vD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種算術邏輯運算op,結果寫入向量寄存器VD ;
      H.vssop rD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種算術邏輯運算op,結果寫入標量寄存器rD ;
      iv.向量浮點運算指令,包括兩類
      E. vvvfop vD vA vB,將向量寄存器vA和vB中對應的單元做某種浮點運算fop,結果寫入向量寄存器vD ;
      G. vsvfop vD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種浮點運算fop,結果寫入向量寄存器VD ;
      V .向量混洗指令,vshuffle vC vB rA,依據(jù)標量寄存器rA的值,將向量寄存器vB 的各個單元重新排序并寫入向量寄存器vC。以及一種向量交叉多線程微處理器,其特征在于,包括一個以上的向量交叉多線程微處理器核,所述向量交叉多線程微處理器核包括N個程序計數(shù)器、多線程取指部件、 指令高速緩存、N個指令緩沖隊列、線程調度部件、標量\向量譯碼部件、標量執(zhí)行流水線和向量執(zhí)行流水線以及數(shù)據(jù)高速緩存,所述多線程取指部件根據(jù)所述N個程序計數(shù)器中存儲的當前指令地址,從所述指令高速緩存中輪轉讀取所述N個線程的指令,并將讀取的指令送入與所述N個線程一一對應的所述N個指令緩沖隊列中,所述線程調度部件從所述N 個指令緩沖隊列中選擇一個,從中將一條指令取出并發(fā)往所述標量\向量譯碼部件進行譯碼,將譯碼后的指令送入相應的標量執(zhí)行流水線或向量執(zhí)行流水線進行執(zhí)行,執(zhí)行過程中, 所述標量執(zhí)行流水線或向量執(zhí)行流水線從所述數(shù)據(jù)高速緩存中訪存數(shù)據(jù)。作為本發(fā)明的向量交叉多線程微處理器的進一步改進
      所述數(shù)據(jù)高速緩存包括相互連通的一級高速緩存和二級高速緩存,所述標量執(zhí)行流水線與所述一級高速緩存相連并從所述一級高速緩存中訪存數(shù)據(jù),所述向量執(zhí)行流水線通過向量訪問接口與所述二級高速緩存相連并直接從二級高速緩存中訪存數(shù)據(jù)。所述標量執(zhí)行流水線包括用于存儲標量指令的源操作數(shù)的標量寄存器文件單元、用于從所述標量寄存器文件單元中選擇源操作數(shù)的標量操作數(shù)選擇單元、用于將所述源操作數(shù)進行執(zhí)行運算的標量執(zhí)行單元和用于執(zhí)行運算完成后將結果寫回標量寄存器文件單元的標量數(shù)據(jù)寫回部件;
      所述向量執(zhí)行流水線包括用于存儲向量指令的源操作數(shù)的向量寄存器文件單元、用于從所述標量寄存器文件單元和\或所述向量寄存器文件單元中選擇源操作數(shù),并完成所述向量執(zhí)行部件和標量執(zhí)行部件間的操作數(shù)傳遞的向量操作數(shù)選擇單元、用于將所述源操作數(shù)進行執(zhí)行運算的向量執(zhí)行單元,以及用于執(zhí)行運算完成后將結果寫回向量寄存器文件單元的向量數(shù)據(jù)寫回部件,所述標量執(zhí)行單元與所述一級高速緩存相連,所述向量執(zhí)行單元與所述二級高速緩存相連。所述向量執(zhí)行單元包括用于完成向量Load/Store指令或標量Load/Store指令的向量Load/Store部件、用于完成向量浮點運算指令的向量浮點運算部件、用于完成向量算術邏輯運算指令的向量算術邏輯部件,以及用于完成向量混洗指令的向量混洗部件。所述數(shù)據(jù)高速緩存內(nèi)的數(shù)據(jù)塊的大小與所述向量寄存器文件單元的寬度相同。所述向量交叉多線程微處理器包括二個以上的向量交叉多線程微處理器核,所述二個以上的向量交叉多線程微處理器核均分別配有相互連通的一級高速緩存和二級高速緩存,所述二個以上的二級高速緩存通過交叉開關相互連接,并與設于核外的三級高速緩存、片間網(wǎng)絡接口和外設接口相連,所述每個三級高速緩存與一用于訪問外部存儲器的存儲控制器相連。與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于
      1、本發(fā)明向量交叉多線程處理方法,將交叉多線程技術和向量技術結合起來,用于處理多線程的向量指令或標量指令,采用多線程輪轉取指的方式,使多個向量線程的指令以交叉方式執(zhí)行,在某個線程遇到長延遲操作時,其它線程的指令仍可繼續(xù)執(zhí)行,可以很好的隱藏線程執(zhí)行過程中遇到的長延遲操作,達到提高微處理器峰值性能的同時,能確保向量執(zhí)行流水線的充滿,從而更充分的發(fā)揮微處理器的運算能力。2、本發(fā)明向量交叉多線程微處理器,在傳統(tǒng)標量微處理器核心的基礎上添加多線程取指部件和并增加了向量執(zhí)行流水線,使其能夠將交叉多線程技術和向量技術結合,完成多個向量線程的交叉并行處理,實現(xiàn)向量技術開發(fā)程序中的數(shù)據(jù)級并行處理,運算能力強。3、本發(fā)明向量交叉多線程微處理器,在為增加向量執(zhí)行流水線時仍保留了原有的標量處理器結構,可以完全兼容傳統(tǒng)的標量應用程序,因此兼容性好。4、本發(fā)明向量交叉多線程微處理器,使用交叉多線程技術替代了當前流行的超標量技術,在確保性能的同時降低了硬件設計的復雜度,硬件結構簡單,代價小,擴展性好。


      圖1是現(xiàn)有的典型傳統(tǒng)微處理器的結構示意圖; 圖2是現(xiàn)有的典型的標量微處理器執(zhí)行流程示意圖3是本發(fā)明的向量交叉多線程微處理器的組成結構示意圖; 圖4是本發(fā)明的向量交叉多線程處理方法的執(zhí)行流程示意圖; 圖5是本發(fā)明的向量交叉多線程處理方法中多線程交叉執(zhí)行隱藏長延遲操作的原理示意圖6是本發(fā)明的向量混洗指令vshuffle vA vB rA的實現(xiàn)原理示意圖; 圖7是本發(fā)明的標量執(zhí)行單元和向量執(zhí)行單元與數(shù)據(jù)高速緩存的連接結構示意圖; 圖8是本發(fā)明的向量交叉多線程微處理器的多核處理器的組成結構示意圖。
      具體實施例方式以下將結合說明書附圖和具體實施例對本發(fā)明作進一步詳細說明。如圖4所示,本發(fā)明的向量交叉多線程處理方法,包括以下步驟
      1)讀取指令多線程取指部件以輪轉方式從8個向量線程中選擇一個向量線程進行指令讀取,并將讀取得到的指令存儲在向量線程對應的指令緩沖隊列中。取指部件每次可將大小為一個高速緩存塊的指令讀入指令緩沖隊列,通常情況下每條指令的長度為1個機器字,若每個一級高速緩存塊的大小為4個機器字,則取指部件每個時鐘周期可將4條指令讀入指令高速緩存隊列。實際應用時,向量線程的數(shù)量N可為大于1的自然數(shù),其大小僅受硬件資源的限制;通常情況下,一般將N取做2的冪次,即N=2n,n=l、2、3……,這樣有利于簡化硬件設計。2)線程選擇線程調度部件從8個指令緩沖隊列中選擇一個指令緩沖隊列,并從指令緩沖隊列中取出一個指令進行譯碼;
      3)執(zhí)行指令將譯碼后的指令送入向量執(zhí)行流水線或標量執(zhí)行流水線進行執(zhí)行,具體執(zhí)行步驟如下
      3. 1)操作數(shù)選擇根據(jù)譯碼后的指令的內(nèi)容,訪問向量寄存器文件單元或標量寄存器文件單元獲得源操作數(shù),并將獲得的源操作數(shù)傳遞到相應的向量執(zhí)行部件或標量執(zhí)行部件;
      3. 2)指令執(zhí)行向量執(zhí)行部件或標量執(zhí)行部件根據(jù)源操作數(shù)進行執(zhí)行運算,執(zhí)行運算的結果分別寫回向量寄存器文件單元或標量寄存器文件單元。上述方法中,指令為標量指令或向量指令,標量指令為現(xiàn)有通用的標量指令,而向量指令可以包括以下五種
      i .向量訪存指令,包括
      A.向量加載指令,可以將一個向量從主存讀入一個向量寄存器
      vload vA rB,以標量寄存器rB中的數(shù)值作為地址,將數(shù)據(jù)讀入向量寄存器vA ; vload vA rB imm,以標量寄存器rB中的值加上立即數(shù)imm作為地址,將數(shù)據(jù)讀入向量寄存器vA ;
      vload vA imm,以立即數(shù)imm作為地址,將數(shù)據(jù)讀入向量寄存器vA;
      B.向量保存指令,可以將一個向量寄存器的內(nèi)容寫回主存
      vstore vA rB imm,以標量寄存器rB中的數(shù)值加上立即數(shù)imm作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存;
      vstore vA imm,以立即數(shù)imm作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存; vstore vA rB,以標量寄存器rB中的數(shù)值作為地址,將數(shù)據(jù)從向量寄存器vA寫入主
      存;
      向量加載指令和向量保存指令可支持多種不同的尋址方式,包括寄存器尋址、立即尋址以及基址尋址,在進行具體實現(xiàn)時可實現(xiàn)全部尋址方式,也可實現(xiàn)其中一種或幾種尋址方式;
      .向量/標量寄存器數(shù)據(jù)傳遞指令,包括
      C.vtos vA rB idx,將向量寄存器vA中的第idx個單元送入標量寄存器rB,為由標量寄存器向向量寄存器傳遞數(shù)據(jù)的指令;
      D.stov vA rB,將標量寄存器rB中的值復制四份,送入向量寄存器vA ;為由向量寄存器向標量寄存器傳遞數(shù)據(jù)的指令;
      由標量寄存器向向量寄存器傳遞數(shù)據(jù)的指令完成將標量寄存器的值傳入向量寄存器中的某個單元中,或根據(jù)掩碼將標量寄存器的值復制若干份同時賦給向量寄存器的多個單元;由向量寄存器向標量寄存器傳遞數(shù)據(jù)的指令將向量寄存器中的某個單元的值賦給某個標量寄存器;iii.向量算術邏輯運算指令,包括四類
      E.VWOP vD vA vB,將向量寄存器vA和vB中對應的單元做某種算術邏輯運算op,結果寫入向量寄存器vD ;該指令為vector-vector-vector指令,即兩個源操作數(shù)和一個目的操作數(shù)都是向量寄存器,這類指令主要完成向量對應單元間的算術邏輯運算;
      F.vvsop rD vA vB,將向量寄存器vA和vB中所有的單元做某種算術邏輯運算op,結果寫入標量寄存器rD;該指令為vector-vector-scalar類指令,即兩個操作數(shù)都是向量寄存器而目的操作數(shù)是標量寄存器,這類指令主要完成將向量寄存器中的所有單元的求和、 求與、求或等操作。G. vsvop vD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種算術邏輯運算op,結果寫入向量寄存器vD ;
      H. vssop rD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種算術邏輯運算op,結果寫入標量寄存器rD ;
      vsvop vD vA rB 與 vssop rD vA rB 為 vector—scalar—vector 才旨令,艮口源操作數(shù)是—— 個向量寄存器和一個標量寄存器,目的操作數(shù)是向量寄存器,這類指令完成向量各個單元與標量的算術邏輯運算;
      向量算術邏輯類指令所支持的操作包括定點算術邏輯運算指令,如加、減、乘、除等算術指令,與、或、非、異或、取反、比較等邏輯運算指令;以及位運算指令,包括按位與、按位或、按位非、按位異或、按位取反等。iv.向量浮點運算指令,包括兩類
      E. vvvfop vD vA vB,將向量寄存器vA和vB中對應的單元做某種浮點運算fop,結果寫入向量寄存器vD ;該指令為vector-vector-vector指令,即兩個源操作數(shù)和一個目的操作數(shù)都是向量寄存器,這類指令主要完成向量對應單元間的浮點運算;
      G.vsvfop vD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種浮點運算fop,結果寫入向量寄存器VD ;
      向量浮點運算指令所支持的浮點操作主要包括浮點加法、浮點減法、浮點乘法、浮點除法以及浮點比較、浮點/定點數(shù)據(jù)轉換等操作。V .向量混洗指令,vshuffle vC vB rA,依據(jù)標量寄存器rA的值,將向量寄存器vB的各個單元重新排序并寫入向量寄存器vC。該向量混洗指令的實現(xiàn)原理如圖6所示,源向量寄存器vB的四個單元的值通過兩層多路選擇器送入目的向量寄存器vA,第一層的四個多路選擇器都是四選一多路選擇器, 它們的控制信號來自標量源寄存器rA的低8位(圖中的s(Ts3),每個多路選擇器兩位;第二層的四個多路選擇器是二選一多路選擇器,用于決定是否將源向量寄存器的值送入目的向量寄存器,它們的控制信號來自標量源寄存器rA的第8到第11位(圖中的掩碼),如果對應的控制信號為1,源向量寄存器中相應單元的值就送入目的向量寄存器的對應單元,否則目的向量寄存器中相應單元的值不變。多個線程的交叉執(zhí)行能夠很好的隱藏執(zhí)行流水線中的長延遲操作(如訪存操作), 從而盡力確保執(zhí)行流水線始終處于滿負荷工作狀態(tài)。如圖5所示,為本發(fā)明的向量交叉多線程微處理器的多線程交叉執(zhí)行隱藏長延遲操作的原理,圖中以4個線程的交叉執(zhí)行為例,說明了多個交叉執(zhí)行的向量線程隱藏訪存延遲的過程。圖中C代表向量運算指令,M代
      10表向量訪存指令,L_hit為高速緩存命中延遲,L_miss為高速緩存失效延遲;四個線程分別以不同的序列執(zhí)行向量運算指令和向量訪存指令。線程0的向量訪存指令執(zhí)行時將引入兩個始終周期的延遲,如果沒有交叉執(zhí)行的其他線程,這將在執(zhí)行流水線中引入兩個周期的阻塞,在引入交叉多線程機制之后,線程1和線程2的向量運算指令填補了訪存延遲帶來的兩個空閑周期,從而確保了流水線的充滿。線程2的向量訪存指令的執(zhí)行遇到了高速緩存的失效,這可能會導致很長的流水線阻塞,而線程0、線程1和線程2的向量運算指令在處理高速緩存失效的過程中填補了執(zhí)行流水線的空閑,盡管沒有完全避免執(zhí)行流水線的阻塞, 但也大大減少了執(zhí)行流水線的阻塞時間,改善了運算性能。由上述分析可知,一般情況下, 微處理器支持的線程數(shù)越多,其隱藏長延遲操作的能力也就越強,其性能就能更好的發(fā)揮。通過本發(fā)明的向量交叉多線程微處理器可實現(xiàn)上述的向量交叉多線程處理方法, 該向量交叉多線程微處理器包括一個以上的向量交叉多線程微處理器核,如圖3所示,向量交叉多線程微處理器核包括8個程序計數(shù)器(PC)、多線程取指部件、指令高速緩存、8個指令緩沖隊列、線程調度部件、標量\向量譯碼部件、標量執(zhí)行流水線和向量執(zhí)行流水線以及數(shù)據(jù)高速緩存,多線程取指部件根據(jù)8個程序計數(shù)器中存儲的當前指令地址,從指令高速緩存中輪轉讀取N個線程的指令,并將讀取的指令送入與8個線程一一對應的8個指令緩沖隊列中,線程調度部件從8個指令緩沖隊列中選擇一個,從中將一條指令取出并發(fā)往標量\向量譯碼部件進行譯碼,將譯碼后的指令送入相應的標量執(zhí)行流水線或向量執(zhí)行流水線(標量指令將送入標量執(zhí)行流水線進行執(zhí)行,向量指令則送往向量執(zhí)行流水線進行執(zhí)行)進行執(zhí)行,執(zhí)行過程中,標量執(zhí)行流水線或向量執(zhí)行流水線從數(shù)據(jù)高速緩存中訪存數(shù)據(jù)。本實施例中,標量執(zhí)行流水線保留了現(xiàn)有的典型標量執(zhí)行流水線的結構,其包括: 用于存儲標量指令的源操作數(shù)的標量寄存器文件單元、用于從標量寄存器文件單元中選擇源操作數(shù)的標量操作數(shù)選擇單元、用于將源操作數(shù)進行執(zhí)行運算的標量執(zhí)行單元和用于執(zhí)行運算完成后將結果寫回標量寄存器文件單元的標量數(shù)據(jù)寫回部件。而本發(fā)明增加了向量執(zhí)行流水線,其包括用于存儲向量指令的源操作數(shù)的向量寄存器文件單元、用于從標量寄存器文件單元和\或向量寄存器文件單元中選擇源操作數(shù),并完成向量執(zhí)行部件和標量執(zhí)行部件間的操作數(shù)傳遞的向量操作數(shù)選擇單元、用于將源操作數(shù)進行執(zhí)行運算的向量執(zhí)行單元,以及用于執(zhí)行運算完成后將結果寫回向量寄存器文件單元的向量數(shù)據(jù)寫回部件。之所以增加操作數(shù)選擇和傳遞過程是因為某些指令(如vector-scalar-vector)同時需要向量和標量兩種操作數(shù)。由于向量執(zhí)行流水線在每個時鐘周期能夠同時完成整個向量的運算,因此它對數(shù)據(jù)需求遠遠大于標量執(zhí)行流水線,通常容量較小的一級高速緩存難以同時滿足標量運算部件和向量運算部件對數(shù)據(jù)的需求。因此,如圖7所示,在本實施例中,數(shù)據(jù)高速緩存包括相互連通的一級高速緩存和二級高速緩存,標量執(zhí)行流水線中的標量執(zhí)行單元與一級高速緩存相連并從一級高速緩存中訪存數(shù)據(jù),向量執(zhí)行流水線中的向量執(zhí)行單元通過向量訪問接口與二級高速緩存相連并直接從二級高速緩存中訪存數(shù)據(jù),即使向量Load/Store部件能夠繞過一級高速緩存,直達二級高速緩存。本實施例中,向量執(zhí)行單元包括用于完成向量Load/Store指令或標量Load/ Store指令的向量Load/Store部件、用于完成向量浮點運算指令的向量浮點運算部件、用于完成向量算術邏輯運算指令的向量算術邏輯部件,以及用于完成向量混洗指令的向量混洗部件。標量執(zhí)行單元則采用現(xiàn)有的典型結構,執(zhí)行流水線工作時,各種指令均被送入相應的執(zhí)行部件,如標量/向量訪存指令的源操作數(shù)將被送入標量或向量Load/Store部件,向量算術運算指令將被送入向量算術邏輯部件等。本實施例中,數(shù)據(jù)高速緩存內(nèi)的數(shù)據(jù)塊的大小與向量寄存器文件單元的寬度相同。如向量寄存器文件單元包括8個向量寄存器組,每個向量寄存器組對應一個線程。每個向量寄存器組包含32個向量寄存器v0 v31,每個向量寄存器的長度為4個機器字,依據(jù)機器字長度的不同向量寄存器的位寬可以是128 (對應32位機器字)或256 (對應64位機器字)。當本發(fā)明的向量交叉多線程微處理器中的向量交叉多線程微處理器核為二個以上時,如圖8所示,二個以上的向量交叉多線程微處理器核均分別配有相互連通的一級高速緩存和二級高速緩存,二個以上的二級高速緩存通過交叉開關相互連接,并與設于核外的三級高速緩存、片間網(wǎng)絡接口和外設接口相連,每個三級高速緩存與一用于訪問外部存儲器的存儲控制器相連。片間網(wǎng)絡接口為多個向量交叉微處理器芯片互聯(lián)提供高速串行接口 ;外設接口提供多種外設總線支持,包括PCI-E總線、千兆以太網(wǎng)等。向量交叉多線程多核微處理器以較為簡單的硬件結構提供極高的實用性能,能夠充分發(fā)揮應用程序中的進程級、線程級、指令級以及數(shù)據(jù)級并行;同時該處理器能夠兼容現(xiàn)有的標量應用程序,具有較好的兼容性和可擴展性。以上所述僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術方案均屬于本發(fā)明的保護范圍。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,應視為本發(fā)明的保護范圍。
      權利要求
      1.一種向量交叉多線程處理方法,其特征在于包括以下步驟1)讀取指令多線程取指部件以輪轉方式從N個向量線程中選擇一個向量線程進行指令讀取,并將讀取得到的指令存儲在所述向量線程對應的指令緩沖隊列中;2)線程選擇線程調度部件從N個指令緩沖隊列中選擇一個指令緩沖隊列,并從所述指令緩沖隊列中取出一個指令進行譯碼;3)執(zhí)行指令將譯碼后的指令送入向量執(zhí)行流水線或標量執(zhí)行流水線進行執(zhí)行。
      2.根據(jù)權利要求1所述的向量交叉多線程處理方法,其特征在于,所述N=2n,其中 η=1、2、3......ο
      3.根據(jù)權利要求1所述的向量交叉多線程處理方法,其特征在于,所述步驟3),具體包括以下步驟3. 1)操作數(shù)選擇根據(jù)所述譯碼后的指令的內(nèi)容,訪問向量寄存器文件單元或標量寄存器文件單元獲得源操作數(shù),并將獲得的源操作數(shù)傳遞到相應的向量執(zhí)行部件或標量執(zhí)行部件; 3.2)指令執(zhí)行所述向量執(zhí)行部件或標量執(zhí)行部件根據(jù)所述源操作數(shù)進行執(zhí)行運算, 執(zhí)行運算的結果分別寫回向量寄存器文件單元或標量寄存器文件單元。
      4.根據(jù)權利要求1或2或3所述的向量交叉多線程處理方法,其特征在于,所述指令為標量指令或向量指令,所述向量指令包括以下類別i ·向量訪存指令,包括A.向量加載指令vload vA rB,以標量寄存器rB中的數(shù)值作為地址,將數(shù)據(jù)讀入向量寄存器vA ; vload vA rB imm,以標量寄存器rB中的值加上立即數(shù)imm作為地址,將數(shù)據(jù)讀入向量寄存器vA ;vload vA imm,以立即數(shù)1_作為地址,將數(shù)據(jù)讀入向量寄存器vA;B.向量保存指令vstore vA rB imm,以標量寄存器rB中的數(shù)值加上立即數(shù)imm作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存;vstore vA imm,以立即數(shù)imm作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存; vstore vA rB,以標量寄存器rB中的數(shù)值作為地址,將數(shù)據(jù)從向量寄存器vA寫入主存; ·向量/標量數(shù)據(jù)傳遞指令,包括C.vtos vA rB idx,將向量寄存器vA中的第idx個單元送入標量寄存器rB ;D.stov vA rB,將標量寄存器rB中的值復制四份,送入向量寄存器vA ; iii.向量算術邏輯運算指令,包括E.VWOP vD vA vB,將向量寄存器vA和vB中對應的單元做某種算術邏輯運算op,結果寫入向量寄存器vD ;F.vvsop rD vA vB,將向量寄存器vA和vB中所有的單元做某種算術邏輯運算op,結果寫入標量寄存器rD;G.vsvop vD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種算術邏輯運算op,結果寫入向量寄存器VD ;H. vssop rD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種算術邏輯運算op,結果寫入標量寄存器rD ;iv.向量浮點運算指令,包括兩類E. vvvfop vD vA vB,將向量寄存器vA和vB中對應的單元做某種浮點運算fop,結果寫入向量寄存器vD ;G. vsvfop vD vA rB,將向量寄存器vA中的所有單元和標量寄存器rB做某種浮點運算fop,結果寫入向量寄存器VD ;V .向量混洗指令,vshuffle vC vB rA,依據(jù)標量寄存器rA的值,將向量寄存器vB 的各個單元重新排序并寫入向量寄存器vC。
      5.一種向量交叉多線程微處理器,其特征在于,包括一個以上的向量交叉多線程微處理器核,所述向量交叉多線程微處理器核包括N個程序計數(shù)器、多線程取指部件、指令高速緩存、N個指令緩沖隊列、線程調度部件、標量\向量譯碼部件、標量執(zhí)行流水線和向量執(zhí)行流水線以及數(shù)據(jù)高速緩存,所述多線程取指部件根據(jù)所述N個程序計數(shù)器中存儲的當前指令地址,從所述指令高速緩存中輪轉讀取所述N個線程的指令,并將讀取的指令送入與所述N個線程一一對應的所述N個指令緩沖隊列中,所述線程調度部件從所述N個指令緩沖隊列中選擇一個,從中將一條指令取出并發(fā)往所述標量\向量譯碼部件進行譯碼,將譯碼后的指令送入相應的標量執(zhí)行流水線或向量執(zhí)行流水線進行執(zhí)行,執(zhí)行過程中,所述標量執(zhí)行流水線或向量執(zhí)行流水線從所述數(shù)據(jù)高速緩存中訪存數(shù)據(jù)。
      6.根據(jù)權利要求5所述的向量交叉多線程微處理器,其特征在于,所述數(shù)據(jù)高速緩存包括相互連通的一級高速緩存和二級高速緩存,所述標量執(zhí)行流水線與所述一級高速緩存相連并從所述一級高速緩存中訪存數(shù)據(jù),所述向量執(zhí)行流水線通過向量訪問接口與所述二級高速緩存相連并直接從二級高速緩存中訪存數(shù)據(jù)。
      7.根據(jù)權利要求6所述的向量交叉多線程微處理器,其特征在于,所述標量執(zhí)行流水線包括用于存儲標量指令的源操作數(shù)的標量寄存器文件單元、用于從所述標量寄存器文件單元中選擇源操作數(shù)的標量操作數(shù)選擇單元、用于將所述源操作數(shù)進行執(zhí)行運算的標量執(zhí)行單元和用于執(zhí)行運算完成后將結果寫回標量寄存器文件單元的標量數(shù)據(jù)寫回部件;所述向量執(zhí)行流水線包括用于存儲向量指令的源操作數(shù)的向量寄存器文件單元、用于從所述標量寄存器文件單元和\或所述向量寄存器文件單元中選擇源操作數(shù),并完成所述向量執(zhí)行部件和標量執(zhí)行部件間的操作數(shù)傳遞的向量操作數(shù)選擇單元、用于將所述源操作數(shù)進行執(zhí)行運算的向量執(zhí)行單元,以及用于執(zhí)行運算完成后將結果寫回向量寄存器文件單元的向量數(shù)據(jù)寫回部件,所述標量執(zhí)行單元與所述一級高速緩存相連,所述向量執(zhí)行單元與所述二級高速緩存相連。
      8.根據(jù)權利要求7所述的向量交叉多線程微處理器,其特征在于,所述向量執(zhí)行單元包括用于完成向量Load/Store指令或標量Load/Store指令的向量Load/Store部件、用于完成向量浮點運算指令的向量浮點運算部件、用于完成向量算術邏輯運算指令的向量算術邏輯部件,以及用于完成向量混洗指令的向量混洗部件。
      9.根據(jù)權利要求5或6或7或8所述的向量交叉多線程微處理器,其特征在于,所述數(shù)據(jù)高速緩存內(nèi)的數(shù)據(jù)塊的大小與所述向量寄存器文件單元的寬度相同。
      10.根據(jù)權利要求5或6或7或8所述的向量交叉多線程微處理器,其特征在于,所述向量交叉多線程微處理器包括二個以上的向量交叉多線程微處理器核,所述二個以上的向量交叉多線程微處理器核均分別配有相互連通的一級高速緩存和二級高速緩存,所述二個以上的二級高速緩存通過交叉開關相互連接,并與設于核外的三級高速緩存、片間網(wǎng)絡接口和外設接口相連,所述每個三級高速緩存與一用于訪問外部存儲器的存儲控制器相連。
      全文摘要
      本發(fā)明公開了一種向量交叉多線程處理方法及向量交叉多線程微處理器,該處理方法包括以下步驟多線程取指部件以輪轉方式從N個向量線程中選擇一個向量線程進行指令讀取,并將讀取得到的指令存儲在所述向量線程對應的指令緩沖隊列中;線程調度部件從N個指令緩沖隊列中選擇一個指令緩沖隊列,并從所述指令緩沖隊列中取出一個指令進行譯碼;將譯碼后的指令送入向量執(zhí)行流水線或標量執(zhí)行流水線進行執(zhí)行;該向量交叉多線程微處理器通過硬件結構實現(xiàn)上述方法。本發(fā)明具有將向量處理技術與多線程技術相結合、硬件結構簡單、運算能力強、兼容性和擴展性好等優(yōu)點。
      文檔編號G06F9/46GK102156637SQ20111011388
      公開日2011年8月17日 申請日期2011年5月4日 優(yōu)先權日2011年5月4日
      發(fā)明者吳俊杰, 唐遇星, 徐煒遐, 晏小波, 曾坤, 楊學軍, 王永文, 竇強, 衣曉飛, 鄧讓鈺, 郭御風, 高軍, 黎鐵軍 申請人:中國人民解放軍國防科學技術大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1