国产精品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>

      向量處理器的存儲器互連網(wǎng)絡體系結(jié)構(gòu)的制作方法

      文檔序號:6516324閱讀:292來源:國知局
      向量處理器的存儲器互連網(wǎng)絡體系結(jié)構(gòu)的制作方法
      【專利摘要】本公開提供了一種用于執(zhí)行并行操作的處理器(諸如向量處理器)的存儲器互連體系結(jié)構(gòu)。示例性處理器可以包括計算陣列,其包括處理元件;存儲器,其包括存儲體;和存儲器互連網(wǎng)絡體系結(jié)構(gòu),其將計算陣列互連到存儲器。在實例中,所述存儲器互連網(wǎng)絡體系結(jié)構(gòu)包括基于交換機的互連網(wǎng)絡和非基于交換機的互連網(wǎng)絡。所述處理器被配置來經(jīng)由基于交換機的互連網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步加載到處理元件中的每個,且經(jīng)由非基于交換機的互連網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步加載到處理元件中的每個。
      【專利說明】向量處理器的存儲器互連網(wǎng)絡體系結(jié)構(gòu)
      [0001]相關申請案
      [0002]本申請是2012年10月23日提交的美國臨時專利申請第61/717,561號的非臨時申請,本申請是以引用的方式全部并入本文中。
      【技術領域】
      [0003]本公開一般涉及執(zhí)行并行處理的處理器(諸如向量處理器)且更特別地說涉及一種用于執(zhí)行并行處理的處理器的存儲器互連網(wǎng)絡體系結(jié)構(gòu)。
      【背景技術】
      [0004]例如由數(shù)字信號處理器實施以優(yōu)化數(shù)字信號處理應用的并行處理趨向于集中在存儲器訪問操作。例如,數(shù)字信號處理器可用作單指令多數(shù)據(jù)(SMD)或數(shù)據(jù)并行處理器。在SMD操作中,將一個指令發(fā)送到數(shù)字信號處理器的多個處理元件,其中每個處理器元件可對不同數(shù)據(jù)執(zhí)行相同操作。為了實現(xiàn)高數(shù)據(jù)吞吐量,具有SMD體系結(jié)構(gòu)的DSP (或支持并行處理的其它處理器)的存儲器組織支持多次同步數(shù)據(jù)訪問。在實例中,處理器體系結(jié)構(gòu)可以包括由存儲器互連網(wǎng)絡體系結(jié)構(gòu)互連到處理元件的多體存儲器,使得可在給定循環(huán)期間對處理元件加載一個以上數(shù)據(jù)操作數(shù)(可由處理元件訪問一個以上數(shù)據(jù)操作數(shù))。
      [0005]存儲器互連網(wǎng)絡體系結(jié)構(gòu)通常包括用于每次各自并行數(shù)據(jù)傳送的互連網(wǎng)絡。例如,如果執(zhí)行操作需要從存儲器到處理器元件進行兩次并行數(shù)據(jù)傳送,那么存儲器互連網(wǎng)絡體系結(jié)構(gòu)實施互連網(wǎng)絡以將第一數(shù)據(jù)集從存儲器傳送到處理元件并實施另一互連網(wǎng)絡以將第二數(shù)據(jù)集從存儲器傳送到處理元件。雖然用于并行處理的現(xiàn)有存儲器互連網(wǎng)絡體系結(jié)構(gòu)一般適用于其所希望的目的,但是并非其所有方面均完全令人滿意。
      【專利附圖】

      【附圖說明】
      [0006]在閱讀附圖后根據(jù)下列詳述充分理解本公開。本公開強調(diào),根據(jù)工業(yè)中的標準慣例,并未按比例繪制不同特征且僅僅為了說明目的而使用不同特征。事實上,為了明確論述,可以強制增加或減小不同特征的尺寸。
      [0007]圖1是根據(jù)本公開的不同方面的示例性數(shù)字信號處理器的示意方框圖。
      [0008]圖2是根據(jù)本公開的不同方面的示例性數(shù)字信號處理器的示意方框圖。
      [0009]圖3是示出了互連根據(jù)本公開的不同方面的數(shù)字信號處理器的不同特征(諸如圖1和圖2的數(shù)字信號處理器的計算陣列和存儲器)的示例性交叉開關(crossbar)的示意方框圖。
      [0010]圖4是示出了互連根據(jù)本公開的不同方面的數(shù)字信號處理器的不同特征(諸如圖2的數(shù)字信號處理器存儲器的和計算陣列)的示例性廣播總線的示意方框圖。
      [0011]圖5是可由根據(jù)本公開的不同方面的數(shù)字信號處理器(諸如圖2的數(shù)字信號處理器)實施的示例性方法的流程圖。
      [0012]圖6是由根據(jù)本公開的不同方面的數(shù)字信號處理器(諸如圖2的數(shù)字信號處理器)實施的示例性矩陣乘法器算法的示意圖。
      【具體實施方式】
      [0013]本公開提供了在任何適當計算環(huán)境中實施的不同處理器實施方案。一個示例性實施方案提供了一種用于可執(zhí)行并行操作的處理器(諸如向量處理器)的存儲器互連體系結(jié)構(gòu)。在某些實施方案中,處理器可以包括計算陣列,其包括處理元件;存儲器,其包括存儲體;和存儲器互連網(wǎng)絡體系結(jié)構(gòu),其將計算陣列互連到存儲器。處理元件中的至少某些可以包括計算單元和寄存器堆。在實例中,每個處理元件均包括計算單元和寄存器堆。存儲器互連網(wǎng)絡體系結(jié)構(gòu)可以包括:基于交換機的互連網(wǎng)絡和非基于交換機的互連網(wǎng)絡,且處理器被配置來經(jīng)由基于交換機的互連網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步加載到處理元件中的至少某些,且經(jīng)由非基于交換機的互連網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步加載到處理元件中的至少某些。
      [0014]在示例性構(gòu)造中,基于交換機的互連網(wǎng)絡是交叉開關且非基于交換機的互連網(wǎng)絡是總線。在不同實施方式中,第一數(shù)據(jù)操作數(shù)是用于每個處理元件的不同數(shù)據(jù)操作數(shù)且第二數(shù)據(jù)操作數(shù)是用于每個處理元件的相同數(shù)據(jù)操作數(shù)。在不同實施方式中,計算陣列具有N個處理元件;存儲器具有η個存儲體;且交叉開關網(wǎng)絡(crossbar network)具有NXn個交換機。在不同實施方式中,n=NX由處理器執(zhí)行的同步數(shù)據(jù)操作數(shù)加載的數(shù)量。在示例性構(gòu)造中,處理器被配置來經(jīng)由基于交換機的互連網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步加載到處理元件中的每個,且經(jīng)由非基于交換機的互連網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步加載到處理元件中的每個。
      [0015]在某些實施方案中,處理器可以包括計算陣列,其具有N個處理元件;存儲器,其具有η個存儲體;交叉開關,其互連計算陣列與存儲器;和總線,其互連計算陣列與存儲器。N個處理元件中的每個可以包括計算單元和寄存器堆。交叉開關被配置來將數(shù)據(jù)從η個存儲體傳送到N個處理元件,且總線被配置來將數(shù)據(jù)從η個存儲體傳送到N個處理元件。交叉開關和總線被配置來將數(shù)據(jù)從η個存儲體同步傳送到N個處理元件。在不同實施方式中,交叉開關具有NXn個交換機且總線沒有交換機。在不同實施方式中,交叉開關被配置來將不同數(shù)據(jù)操作數(shù)傳送到N個處理元件中的每個,且總線被配置來將相同數(shù)據(jù)操作數(shù)從存儲器傳送到N個處理元件。在不同實施方式中,η=ΝΧ由處理器執(zhí)行的同步數(shù)據(jù)傳送的數(shù)量。
      [0016]在某些實施方案中,一種用于操作本文中描述的處理器的方法包括:將指令集發(fā)布到處理元件;基于所述指令集,經(jīng)由基于交換機的互聯(lián)網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步傳送到處理元件,且經(jīng)由非基于交換機的互聯(lián)網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步傳送到處理元件;和通過處理元件使用第一數(shù)據(jù)操作數(shù)和第二數(shù)據(jù)操作數(shù)執(zhí)行操作。在不同實施方式中,傳送第一數(shù)據(jù)操作數(shù)可以包括執(zhí)行廣播加載,其中相同數(shù)據(jù)操作數(shù)是從存儲器傳送到每個處理元件;且傳送第二數(shù)據(jù)操作數(shù)可以包括執(zhí)行單指令多數(shù)據(jù)(SMD)加載,其中不同數(shù)據(jù)操作數(shù)是從存儲器傳送到每個處理元件。在不同實施方式中,操作是有限響應濾波器操作和矩陣乘法操作之一。在不同實施方式中,操作可以是可與同步SIMD和廣播加載兼容的其它算法。
      [0017]示例性實施方案詳述
      [0018]下列公開提供用于實施本公開的不同特征的許多不同實施方案或?qū)嵗?。下文描述組件和配置的特定實例以簡化本公開。當然,這些僅僅是實例且并非意欲限制。此外,本公開可以在不同實例中重復參考數(shù)字和/或字母。這種重復是為了簡化和明確的目的且本身并不指示所論述的不同實施方案和/或構(gòu)造之間的關系。
      [0019]圖1是根據(jù)本發(fā)明的不同方面的示例性數(shù)字信號處理器100的示意方框圖。為了明確起見,簡化圖1以充分理解本公開的發(fā)明概念。可在數(shù)字信號處理器100中添加額外特征,且在數(shù)字信號處理器100的其它實施方案中可取代或消除下文描述的特征中的某些。
      [0020]數(shù)字信號處理器100可以包括計算陣列110、控制單元120和存儲器130。在實例中,計算陣列110和控制單元120構(gòu)成可執(zhí)行數(shù)字信號處理器100的比較和數(shù)據(jù)處理功能的核心處理器。數(shù)字信號處理器100可包括其它組件,諸如用于執(zhí)行微控制器指令的微控制器、直接存儲器訪問(DMA)單元和到芯片外裝置的不同接口。 [0021]計算陣列110可以包括處理元件PE1、PE2、PE3、……、PEN,其中N是計算陣列110的處理元件的總數(shù)。在實例中,計算陣列Iio可以包括四個處理元件(換句話說,PE1、PE2、PE3和PE4,其中N=4)。處理元件PE1、PE2、PE3、……、PEN對數(shù)字信號處理算法執(zhí)行數(shù)值處理。處理元件PE1、PE2、PE3、……、PEN進行獨立、并行操作,或用作單指令多數(shù)據(jù)(SMD)引擎。在本實例中,每個處理元件PE1、PE2、PE3、……、PEN均是向量處理器。或者,處理元件PE1、PE2、PE3、……、PEN是標量處理器和向量處理器的組合。
      [0022]每個處理元件PE1、PE2、PE3、......、PEN包括各自計算單元(CU) 112!、1122、
      1123、……、1121<和各自寄存器堆111、1142、1143、……、114N。在已描繪的實施方案中,計
      算單元112^112^112^......、1121<相同且寄存器堆111、1142、1143、......、114N相同,但是
      本公開設想其中計算單元和寄存器堆均不相同的實施方案。本公開還設想其中處理元件PE1、PE2、PE3、……、PEN中的一個或多個不包括計算單元和/或寄存器堆的構(gòu)造。在本實
      例中,計算單元112ρ1122、1123、......、112Ν包括算術邏輯單元(ALU)、乘法累加器(MAC)、移
      位器、其它計算單元或其組合。ALU可執(zhí)行算術和邏輯操作,諸如加法、減法、求反、遞增、遞減、絕對值、與、或、異或、非、除法原語、其它算術操作、其它邏輯操作或其組合。MAC可執(zhí)行乘法操作以及乘法和累加操作,諸如單循環(huán)乘法、乘法/加法、乘法/減法、其它操作或其組合。移位器可執(zhí)行邏輯和算術移位、位操作、正規(guī)化、反正規(guī)化、指數(shù)求導操作、其它操作或其組合??蓪潭c和浮點格式均執(zhí)行不同算術操作、邏輯操作和其它操作。寄存器堆傳送處理元件PE1、PE2、PE3、……、PEN與數(shù)據(jù)互連網(wǎng)絡(諸如下文詳細描述的互連網(wǎng)絡150和互連網(wǎng)絡160)之間的數(shù)據(jù)并存儲結(jié)果。在實例中,每個寄存器堆包括主要組的寄存器(例如,一組的16個寄存器)和次級組的寄存器(例如,另一組的16個寄存器)。在不同實施方案中,ALU、MAC和移位器還每個包括寄存器。
      [0023]控制單元120利于數(shù)字信號處理器100的程序執(zhí)行??刂茊卧?20可以包括算術邏輯單元和數(shù)據(jù)地址生成(ALU-DAG)單元122、程序定序器124和程序存儲器126??刂茊卧?20可包括其它組件,諸如指令高速緩存、計時器和指令寄存器。ALU-DAG單元122支持通用整數(shù)計算并對存儲器地址供應地址。例如,當在存儲器(諸如存儲器130)與寄存器(諸如寄存器堆lHplHyllt、……、114N)之間傳送數(shù)據(jù)時,ALU-DAG122提供存儲器地址。ALU-DAG單元122可將地址供應給數(shù)據(jù)存儲器(例如,存儲器130)和/或程序存儲器126。程序定序器124將指令地址提供到程序存儲器126以進行指令取出。程序存儲器126將數(shù)字信號處理器100實施的程序存儲到處理數(shù)據(jù)(諸如存儲在存儲器130中的處理數(shù)據(jù))且還可存儲處理數(shù)據(jù)。程序包括具有一個或多個指令的指令集,且數(shù)字信號處理器100通過取出指令、解碼指令和執(zhí)行指令來實施程序。在實例中,程序可以包括用于實施不同數(shù)字信號處理算法的指令集。
      [0024]存儲器130存儲由數(shù)字信號處理器100處理的信息/數(shù)據(jù)(數(shù)據(jù)存儲器)、由數(shù)字信號處理器100實施以處理信息/數(shù)據(jù)的程序(程序存儲器)或其組合。在已描繪的實施方案中,存儲器130具有多體交錯存儲器結(jié)構(gòu),使得存儲器130包括存儲體M1、M2、M3、……、Mn,其中η是存儲器130的存儲體的總數(shù)。多體交錯存儲器結(jié)構(gòu)支持低延遲、高帶寬并行等級I (LI)存儲器訪問(注意LI存儲器通常全速操作數(shù)字信號處理器100使得幾乎不延遲或沒有延遲)。在實例中,存儲器130是隨機訪問存儲器,諸如靜態(tài)隨機訪問存儲器(SRAM)。在實例中,存儲體Ml、M2、M3、……、Mn中的一個或多個是獨立SRAM。
      [0025]互連網(wǎng)絡140、互連網(wǎng)絡150和互連網(wǎng)絡160互連計算陣列110、控制單元120和存儲器130,從而在計算陣列110、控制單元120與存儲器130之間提供通信路徑?;ミB網(wǎng)絡140、互連網(wǎng)絡150和互連網(wǎng)絡160包括單總線、多總線、交叉開關網(wǎng)絡、單級網(wǎng)絡、多級網(wǎng)絡、其它類型的互連網(wǎng)絡或其組合。控制單元120經(jīng)由互連網(wǎng)絡140將指令和數(shù)據(jù)地址發(fā)布到計算陣列110?;ミB網(wǎng)絡140因此經(jīng)由互連網(wǎng)絡140將指令和數(shù)據(jù)的地址傳送到不同處理元件PE1、PE2、PE3、……、PEN?;ミB網(wǎng)絡150和160傳送來自存儲器(諸如存儲器130、程序存儲器126、其它存儲器或其組合)的數(shù)據(jù)和/或指令,使得可將數(shù)字信號處理器100中的任何寄存器的內(nèi)容傳送到任何其它寄存器或任何存儲器位置,且存儲器130可將數(shù)據(jù)操作數(shù)(值)提供到計算陣列HO。
      [0026]編程要求通常必須使處理元件PEl、PE2、PE3、……、PEN中的任何一個均訪問存儲體Ml、M2、M3、……、Mn中的任何一個。存儲體與處理元件之間的互連網(wǎng)絡支持這種靈活的訪問。例如,在圖1的數(shù)字信號處理器100中,互連網(wǎng)絡150和160互連計算陣列110與存儲器130,使得處理元件PE1、PE2、PE3、……、PEN中的任何一個均可與存儲體Ml、M2、
      M3、......、Mn中的任何一個進行通信(或訪問存儲體Ml、M2、M3、......、Mn中的任何一個)。
      存儲體的數(shù)量和互連網(wǎng)絡的數(shù)量隨著并行加載指令的數(shù)量增加而增加。例如,數(shù)字信號處理器可使用一種互連網(wǎng)絡(諸如互連網(wǎng)絡150)和數(shù)量等于處理元件的數(shù)量的多個存儲體(在本實例中,存在四個PE,n=N=4)發(fā)布并執(zhí)行下列加載指令:
      [0027]Id RO= [A0+= I],
      [0028]這引導數(shù)字信號處理器使用位于保存在地址寄存器AO中的存儲器地址處的數(shù)據(jù)操作數(shù)來加載寄存器R0。隨后,AO中的地址遞增I。為了促進實例,為了發(fā)布并執(zhí)行下列加載指令(其中并行發(fā)布兩個加載指令),數(shù)字信號處理器需要兩種互連網(wǎng)絡(每次數(shù)據(jù)加載使用一種互連網(wǎng)絡,諸如互連網(wǎng)絡150和互連網(wǎng)絡160)和數(shù)量等于處理元件的數(shù)量的兩倍的多個存儲體(在實例中,存在四個PE,n=2 X N=2 X 4=8個存儲體(Ml至M8)):
      [0029]Id RO= [A0+= I] || Id R1=[A1+=1],
      [0030]這引導數(shù)字信號處理器使用位于保存在地址寄存器AO中的存儲器地址處的數(shù)據(jù)操作數(shù)來加載數(shù)據(jù)寄存器RO并使用位于保存在地址寄存器Al中的存儲器地址處的數(shù)據(jù)操作數(shù)來加載數(shù)據(jù)寄存器R1。隨后,AO和Al中的地址均遞增I。為了更加促進實例,為使數(shù)字信號處理器的每個PE1、PE2、PE3、……、PEN執(zhí)行一次32位MAC/循環(huán)(每個循環(huán)進行的乘法和累加),需要兩次并行存儲器加載以實現(xiàn)大約100%的使用數(shù)字信號處理器的計算資源。例如,考慮乘法和累加操作的簡單有限脈沖響應(FIR)濾波器內(nèi)核,其中可如下以C/C++編程語言寫入具有樣品向量X和向量taps的最上層循環(huán):
      [0031]for(int i=0;i<numTaps;i++)
      [0032]sum+=x[i+j]*taps[i];
      [0033]對于這種FIR濾波器內(nèi)核,為了使乘法和累加操作維持一次MAC/循環(huán),F(xiàn)IR內(nèi)核循環(huán)需要兩次并行加載,為向量X加載值且為向量taps加載值。數(shù)字信號處理器因此需要兩種互連網(wǎng)絡(一種互連網(wǎng)絡為向量X加載值且一種互連網(wǎng)絡為向量taps加載值)和數(shù)量等于處理元件的數(shù)量的兩倍的多個存儲體(在實例中,存在四個PE,n=2XN=2X4=8個存儲體(Ml至M8))。
      [0034]為了改善計算資源效率,諸如如上所述,互連網(wǎng)絡150和互連網(wǎng)絡160使數(shù)字信號處理器100支持并行發(fā)布和執(zhí)行多個加載指令。在已描繪的實施方案中,為了利于并行加載,數(shù)字信號處理器100要求互連網(wǎng)絡150和互連網(wǎng)絡160是基于交換機的互連網(wǎng)絡,諸如交叉開關網(wǎng)絡、單級網(wǎng)絡、多級網(wǎng)絡或其它基于交換機的網(wǎng)絡。在已描繪的實例中,互連網(wǎng)絡150和互連網(wǎng)絡160是全交叉開關,意指交叉開關具有數(shù)量等于處理元件的數(shù)量乘以存儲體的數(shù)量的多個交換機(換句話說,交換機的數(shù)量=NXn)。如上文論述,假設計算陣列110具有四個處理元件(PEl至PE4,其中N=4)且存儲器130具有八個存儲體(Ml至M8,其中n=2*N=2*4=8),圖3是示出了實施為根據(jù)本公開的不同方面的互連網(wǎng)絡150和160的示例性交叉開關350的示意方框圖。交叉開關350包括NXn個交換機365 (這里,其中N=4且n=8,交換機的數(shù)量是32)。為了明確起見,簡化圖3以充分理解本公開的發(fā)明概念??稍诮徊骈_關350中添加額外特征,且在交叉開關350的其它實施方案中可取代或消除特征中的某些。
      [0035]在一次循環(huán)期間,使用存儲器互連網(wǎng)絡體系結(jié)構(gòu)(互連網(wǎng)絡140、150和160),處理元件PE1、PE2、PE3、……、PEN中的至少某些(經(jīng)由互連網(wǎng)絡140)訪問指令并(經(jīng)由互連網(wǎng)絡150和160)訪問來自存儲器的兩個數(shù)據(jù)操作數(shù)。在單指令多數(shù)據(jù)(SMD)模式中,處理元件PE1、PE2、PE3、……、PEN執(zhí)行相`同指令,但卻操作不同數(shù)據(jù)。例如,在圖1的數(shù)字信號處理器100的操作中,在一次循環(huán)期間,基于交換機的互連網(wǎng)絡150和160 (諸如全交叉開關)利于兩次同步并行單指令多數(shù)據(jù)(SMD)加載,其中每個處理元件PEl、PE2、PE3、……、PEN被引導來從存儲器130加載不同數(shù)據(jù)操作數(shù)。
      [0036]數(shù)字信號處理器100可因此使用其存儲器互連網(wǎng)絡體系結(jié)構(gòu)執(zhí)行不同并行操作。例如,在一次循環(huán)期間,數(shù)字信號處理器100可經(jīng)由互連網(wǎng)絡140將一個指令調(diào)度到處理元件PE1、PE2、PE3、……、PEN ;經(jīng)由互連網(wǎng)絡150和互連網(wǎng)絡160從存儲器(存儲器130、程序存儲器126、其它存儲器或其組合)加載N個數(shù)據(jù)集,處理元件PE1、PE2、PE3、……、PEN中的任何一個均具有一個數(shù)據(jù)集(在實例中,每個數(shù)據(jù)集可以包括兩個數(shù)據(jù)操作數(shù));在處理元件PE1、PE2、PE3、……、PEN中同步執(zhí)行所述一個指令;且將來自所述同步執(zhí)行的數(shù)據(jù)結(jié)果存儲在存儲器(存儲器130、程序存儲器126、其它存儲器或其組合)中。圖1的存儲器互連網(wǎng)絡體系結(jié)構(gòu)對單跨式訪問、非單跨式訪問和/或變址陣列訪問的SMD加載提供支持,從而允許在存儲器130中加載連續(xù)和/或非連續(xù)數(shù)據(jù)元件。
      [0037]因為互連網(wǎng)絡的大小隨著處理元件的數(shù)量增加而增長(在其中處理元件的數(shù)量等于存儲體的數(shù)量的情況下,互連網(wǎng)絡增長為處理元件的數(shù)量的平方),所以互連網(wǎng)絡面積和功率預算隨著處理元件的數(shù)量增加而變得極為重要。因此,在圖1的數(shù)字信號處理器100的已描繪實施方案中,包括基于交換機的互連網(wǎng)絡150和160 (具體地說,兩個全交叉開關)的存儲器互連網(wǎng)絡體系結(jié)構(gòu)非常昂貴。如上所述,對于N個處理元件和η個存儲體,每個全交叉開關使用N X η個交換機(且其中Ν=η,ΝΛ2個交換機)。因為全交叉開關是以導線為主,所以具有更多交換機的全交叉開關造成較長導線和較大面積,這造成較高通信成本、較高功耗和較低時鐘速率(換句話說,效能降低)。因此,希望存在避免需要兩個基于交換機的互連網(wǎng)絡(諸如兩個全交叉開關)并維持數(shù)字信號處理器的效能的方式。
      [0038]本公開認識到,通常由數(shù)字信號處理器實施的數(shù)字信號處理算法(諸如有限脈沖響應(FIR)算法、矩陣乘法算法等)引導處理元件PEl、ΡΕ2、ΡΕ3、……、PEN從相同存儲器位置加載數(shù)據(jù)操作數(shù)。換句話說,每個處理元件均從來自相同存儲體的相同地址接收相同數(shù)據(jù)值(例如,從存儲體Ml的相同地址接收數(shù)據(jù)值)。稱作廣播加載的這些存儲器加載未使用將計算陣列110連接到存儲器130的互連網(wǎng)絡的全容量。例如,廣播加載操作僅僅使用全交叉開關的1/Ν。
      [0039]本公開因此提出了通過用非基于交換機的互連網(wǎng)絡(諸如基于總線的互連網(wǎng)絡)取代基于交換機的互連網(wǎng)絡之一來修改數(shù)字信號處理器100的存儲器互連網(wǎng)絡體系結(jié)構(gòu)。特別地說,如下文所述,用單廣播總線取代全交叉開關之一。在不同實施方式中,用非基于交換機的互連網(wǎng)絡(諸如基于總線的互連網(wǎng)絡)取代每個基于交換機的互連網(wǎng)絡,在非基于交換機的互連網(wǎng)絡中,可經(jīng)由如下文所述的廣播加載實現(xiàn)與這種互連網(wǎng)絡相關的存儲器加載。
      [0040]圖2是根據(jù)本公開的不同方面的數(shù)字信號處理器200的示意方框圖。為了明確起見,簡化圖2以充分理解本公開的發(fā)明概念。圖2的實施方案在許多方面均類似于圖1的實施方案。因此,為了明確且簡單起見,由相同參考數(shù)字認定圖1和圖2中的類似特征??稍跀?shù)字信號處理器200中添加額外特征,且在數(shù)字信號處理器200的其它實施方案中可取代或消除下文描述的特征中的某些。
      [0041]類似于圖1的數(shù)字信號處理器10`0,基于交換機的互連網(wǎng)絡150互連處理元件
      PE1、PE2、PE3、......、ΡΕΝ 與存儲體 M1、M2、M3、......、Μη,使得處理元件 ΡΕ1、ΡΕ2、ΡΕ3、......、
      PEN中的任何一個均可與存儲體Ml、M2、M3、……、Mn中的任何一個進行通信(或訪問存儲體M1、M2、M3、……、Mn中的任何一個)。與圖1的數(shù)字信號處理器100相比,圖2的數(shù)字信號處理器200用非基于交換機的互連網(wǎng)絡260 (諸如基于總線的互連網(wǎng)絡)取代基于交換機的互連網(wǎng)絡160。非基于交換機的互連網(wǎng)絡260也互連處理元件PE1、PE2、PE3、……、PEN
      與存儲體Ml、M2、M3、......、Mn,使得處理元件PEl、PE2、PE3、......、PEN中的任何一個均可
      與存儲體Ml、M2、M3、......、Mn中的任何一個進行通信(或訪問存儲體Ml、M2、M3、......、Mn
      中的任何一個)。應注意,基于交換機的互連網(wǎng)絡150和非基于交換機的互連網(wǎng)絡260可經(jīng)設計使得其均可訪問存儲體M1、M2、M3、……、Mn中的任何一個,使得在數(shù)字信號處理器200的操作期間并未限制可將向量映射到何處。
      [0042]在實例中,非基于交換機的互連網(wǎng)絡260是單廣播總線。圖4是示出了可實施為根據(jù)本公開的不同方面的非基于交換機的互連網(wǎng)絡260的示例性廣播總線460的示意方框圖。廣播總線460沒有交換機。在實例中,廣播總線460是一根32位、一根64位廣播總線或一根128位廣播總線,其將數(shù)據(jù)從存儲器130的存儲體M1、M2、M3、……、Mn饋送到計算陣列130的處理元件PEl、PE2、PE3、……、PEN?;蛘?,廣播總線460取決于數(shù)字信號處理器200的數(shù)據(jù)大小傳送要求而具有另一大小。為了明確起見,簡化圖4以充分理解本公開的發(fā)明概念。可在廣播總線460中添加額外特征,且在廣播總線460的其它實施方案中可取代或消除特征中的某些。
      [0043]非基于交換機的互連網(wǎng)絡260利于廣播加載,其中處理元件PE1、PE2、PE3、……、PEN中的至少某些從存儲器130接收相同數(shù)據(jù)操作數(shù)。在實例中,非基于交換機的互連網(wǎng)絡260利于廣播加載,其中每個處理元件PE1、PE2、PE3、……、PEN均從存儲器130接收相同數(shù)據(jù)操作數(shù)。因此,在圖2的數(shù)字信號處理器200的操作中,在一次循環(huán)期間,互連網(wǎng)絡150利于SIMD加載,其中處理元件PE1、PE2、PE3、……、PEN中的至少某些被引導來從存儲器130加載不同數(shù)據(jù)操作數(shù);且互連網(wǎng)絡260利于廣播存儲器加載,其中處理元件PE1、PE2、PE3、……、PEN中的至少某些被引導來從存儲器130加載相同數(shù)據(jù)操作數(shù)(換句話說,處理元件從相同存儲體中的相同地址加載相同數(shù)據(jù)值)。在實例中,在一次循環(huán)期間,互連網(wǎng)絡150利于SIMD加載,其中每個處理元件PEl、PE2、PE3、……、PEN被引導來從存儲器130加載不同數(shù)據(jù)操作數(shù);且互連網(wǎng)絡260利于廣播存儲器加載,其中每個處理元件PE1、PE2、PE3、……、PEN被引導來從存儲器130加載相同數(shù)據(jù)操作數(shù)(換句話說,每個處理元件從相同存儲體中的相同地址加載相同數(shù)據(jù)值)。
      [0044]通過 實施圖2的存儲器互連體系結(jié)構(gòu)(尤其是全交叉開關和廣播總線),大幅減小處理器的面積和功率要求并維持數(shù)字信號處理應用的關鍵算法的效能。例如,已修改的存儲器互連網(wǎng)絡體系結(jié)構(gòu)在計算資源使用方面維持近似100%效率,并滿足大部分數(shù)字信號處理算法的帶寬要求。應注意,使用數(shù)字信號處理器200的存儲器互連網(wǎng)絡體系結(jié)構(gòu)(其中基于交換機的互連網(wǎng)絡150利于SIMD加載且非基于交換機的互連網(wǎng)絡160利于廣播加載),必需兩次SMD加載的數(shù)字信號處理算法(諸如點積算法)將使用兩次循環(huán)以對點積操作加載數(shù)據(jù)操作數(shù)。特別地說,在第一次循環(huán)期間,將經(jīng)由互連網(wǎng)絡150將第一數(shù)據(jù)操作數(shù)從存儲器130傳送到處理元件PEl、PE2、PE3、……、PEN中的至少某些(在實例中,每個處理元件PE1、PE2、PE3、……、PEN),且然后在第二次循環(huán)期間,將經(jīng)由互連網(wǎng)絡150將第二數(shù)據(jù)操作數(shù)從存儲器130傳送到處理元件PEl、PE2、PE3、……、PEN中的至少某些(在實例中,每個處理元件PE1、PE2、PE3、……、PEN)。雖然這樣的算法由于必需兩次循環(huán)而可能減緩處理時間,但是由數(shù)字信號處理器200的存儲器互連網(wǎng)絡體系結(jié)構(gòu)造成的面積、功率和成本節(jié)省平衡了這些影響。不同實施方案可以具有不同優(yōu)點,且任何實施方案均無需任何特別的優(yōu)點。
      [0045]數(shù)字信號處理器200可單獨使用其硬件(系統(tǒng)體系結(jié)構(gòu))來檢測廣播操作,使得數(shù)字信號處理器的硬件檢測何時使用廣播總線260從存儲器130進行廣播加載。在其中數(shù)字信號處理器200的硬件檢測到廣播操作的實施方式中,由數(shù)字信號處理器200的編譯器生成的內(nèi)循環(huán)代碼可呈現(xiàn)如下:
      [0046]loop_start:V2+=V0*V1||Vl=[Al+=8]||VO=[A2+=A3];
      [0047]if nlcOe, jump loop_start V6+=v7*v8 v7=[A4+ — 4]| v8=[A5+=A3];
      [0048]這個序列不包括廣播指令。在某些實施方式中,可用廣播指令(其可以依賴于體系結(jié)構(gòu))編程數(shù)字信號處理器200,使得數(shù)字信號處理器200知道何時使用廣播總線260從存儲器130進行廣播加載。例如,下文使用C/C++編程語言提供矩陣乘法器算法的示例性代碼,其中具有矩陣大小rl X cl的矩陣A (matA)乘以具有矩陣大小clXc2的矩陣B (matB)以確定具有矩陣大小rl X c2的積矩陣(matC)。
      [0049]

      void sp_mat_mul(const float *matA,

      int 11,

      int c I


      float *matB,


      int c2,
      [0050]

      float *matC) {
      for (int i = 0; i < rl; ++i) {

      for(int j = PE; j<c2; j+=NPE){

      float mr = 0;

      for (int k = 0; k < cl; ++k) {

      float a = matA[.1 * cl + k];

      float b = matB[j + k * c2]);

      mr = += a * b;


      }

      matC[i z Cl + j]) = mr;

      }

      }
      }[0051]在矩陣乘法器算法中,示例性代碼規(guī)定每個處理元件(PE)的j索引不同(for(intj=PE; j〈c2; j+=NPE))且每個處理元件的k索引相同(for (int k=0; k〈cl;++k))。在不同實施方式中,廣播指令可簡化數(shù)字信號處理器200的體系結(jié)構(gòu)。
      [0052]圖5是可由根據(jù)本公開的不同方面的處理器執(zhí)行的方法500的流程圖。例如,方法500可由具有包括基于交換機互連網(wǎng)絡(例如,交叉開關)和非基于交換機互連網(wǎng)絡(例如,總線)的存儲器互連體系結(jié)構(gòu)的數(shù)字信號處理器200來執(zhí)行。方法500開始于方框510,其中處理器將指令集發(fā)布到處理器的處理元件。例如,如上所述,數(shù)字信號處理器200將指令集(諸如并行存儲器加載指令)發(fā)布到處理元件PE1、PE2、PE3、……、PEN。在方框520,經(jīng)由基于交換機的互連網(wǎng)絡將第一數(shù)據(jù)操作數(shù)傳送到處理元件中的至少某些且經(jīng)由非基于交換機的互連網(wǎng)絡將第二數(shù)據(jù)操作數(shù)傳送到處理元件中的至少某些。在實例中,經(jīng)由SMD加載傳送第一數(shù)據(jù)操作數(shù),其中每個處理元件接收(或訪問)不同數(shù)據(jù)操作數(shù),且經(jīng)由廣播加載傳送第二數(shù)據(jù)操作數(shù),其中每個處理元件接收(或訪問)相同數(shù)據(jù)操作數(shù)。例如,如上所述,經(jīng)由互連網(wǎng)絡150將第一數(shù)據(jù)操作數(shù)從存儲器130傳送到每個處理元件PE1、PE2、PE3、……、PEN,且經(jīng)由廣播總線260將第二數(shù)據(jù)操作數(shù)從存儲器130傳送到每個處理元件PE1、PE2、PE3、……、PEN。在方框530,處理元件可使用第一數(shù)據(jù)操作數(shù)和第二數(shù)據(jù)操作數(shù)執(zhí)行操作。例如,如上所述,處理元件PE1、PE2、PE3、……、PEN使用其各自第一數(shù)據(jù)操作數(shù)和第二數(shù)據(jù)操作數(shù)以執(zhí)行數(shù)字信號處理算法(諸如矩陣乘法器算法或fir響應濾波器操作)。可在方法500之前、期間和之后提供額外步驟,且方法500的其它實施方案可取代或消除已描述的步驟中的某些。
      [0053]本文中已公開的存儲器互連網(wǎng)絡體系結(jié)構(gòu)有利于可由數(shù)字信號處理器200實施的廣泛的算法,尤其是可獲利于同步SIMD加載和廣播加載的任何算法(諸如矩陣乘法器算法或fir響應濾波器操作)。圖6是由根據(jù)本公開的不同方面的數(shù)字信號處理器(諸如圖2的數(shù)字信號處理器)實施的示例性矩陣乘法器算法的示意圖。可使用上文描述中提供的示例性代碼實施矩陣乘法器算法,其中具有矩陣大小rl X Cl的矩陣A(matA)乘以具有矩陣大小clXc2的矩陣B (matB)以確定具有矩陣大小rlXc2的積矩陣(matC)。在圖6中,matA是由4X4輸入矩陣A (其中rl=l,cl=4)表示,matB是由4X4輸入矩陣B (其中c2=4)表示,且matC是由4X4輸出矩陣C表示。在本文中已公開的運行實例中,其中數(shù)字信號處理器200包括四個處理元件(N=4),圖6示意地示出了輸出矩陣C的第一行的計算。例如,在第一次傳遞中(諸如在內(nèi)循環(huán)的第一次迭代中),數(shù)字信號處理器200實施廣播加載以經(jīng)由互連網(wǎng)絡260將輸入矩陣A的元素aTO傳送到處理元件PE1、PE2、PE3和PE4,且還實施SMD加載以經(jīng)由互連網(wǎng)絡150將輸入矩陣B的元素和bQ3分別傳送到處理元件PE1、PE2、PE3和PE4。然后,處理元件PE1、PE2、PE3和PE4分別使矩陣A的相同元素aQ(l乘以輸入矩陣B的各自元素b, b01, b02和bw繼續(xù)進行處理,在第二次傳遞中(諸如在內(nèi)循環(huán)的第二次迭代中),數(shù)字信號處理器200實施廣播加載以經(jīng)由互連網(wǎng)絡260將輸入矩陣A的元素aQ1傳送到處理元件PE1、PE2、PE3和PE4,且還實施SMD加載以經(jīng)由互連網(wǎng)絡150將輸入矩陣B的元素 b1(l、bn、b12和b13分別傳送到處理元件PE1、PE2、PE3和PE4。然后,處理元件PE1、PE2、PE3和PE4分別使矩陣A的相同元素aQ1乘以輸入矩陣B的各自元素b1(l、bn、b12和b13。類似地,在第三次傳遞中(諸如在內(nèi)循環(huán)的第三次迭代中),數(shù)字信號處理器200實施廣播加載以經(jīng)由互連網(wǎng)絡260將輸入矩陣A的元素aQ2傳送到處理元件PE1、PE2、PE3和PE4,且還實施SMD加載以經(jīng)由互連網(wǎng)絡150將輸入矩陣B的元素b2(l、b21、b22和b23分別傳送到處理元件PE1、PE2、PE3和PE4 ;且處理元件PE1、PE2、PE3和PE4分別使矩陣A的相同元素知乘以輸入矩陣B的各自元素b2(l、b21、b22和b23。再次類似地,在第四次傳遞中(諸如在內(nèi)循環(huán)的第四次迭代中),數(shù)字信號處理器200實施廣播加載以經(jīng)由互連網(wǎng)絡260將輸入矩陣A的元素aQ3傳送到處理元件PE1、PE2、PE3和PE4,且還實施SMD加載以經(jīng)由互連網(wǎng)絡150將輸入矩陣B的元素b3Q、b31、b32和b33分別傳送到處理元件PE1、PE2、PE3和PE4 ;且處理元件PE1、PE2、PE3和PE4分別使矩陣A的相同元素aQ3乘以輸入矩陣B的各自元素匕30、匕31、b32 和 b33。
      [0054]每當內(nèi)循環(huán)進行傳遞(迭代)時,在每個乘法操作后,處理元件PEl、PE2、PE3和PE4通過將其各自乘積與來自先前迭代的各自值相加(乘法相加值)執(zhí)行加法操作,其中相加的結(jié)果變量在進行第一次傳遞(迭代)時初始化為零。例如,在進行第一次傳遞時,處理元件PEl將乘法操作的積與零相加;在進行第二次傳遞時,處理元件PEl將乘法操作的積與PEl的第一次傳遞進行的乘法加法操作的值相加;在進行第三次傳遞時,處理元件PEl將乘法操作的積與PEl的第二次傳遞進行的乘法加法操作的值相加;且在進行第四次傳遞時,處理元件PEl將乘法操作的積與PEl的第三次傳遞進行的乘法加法操作的值相加;且以此類推,以確定輸出矩陣C的元素Ctltlt5由其它處理元件PE2、PE3和PE4執(zhí)行類似乘法加法操作以分別確定輸出矩陣C的元素Ctll、輸出矩陣C的元素Ctl2和輸出矩陣C的元素C(l3。繼續(xù)使用同步廣播和SMD加載對輸入矩陣A和輸入矩陣B的元素進行這種處理,以確定輸出矩陣C的剩余元素。矩陣乘法器算法因此極大地獲利于數(shù)字信號處理器200的存儲器互連網(wǎng)絡體系結(jié)構(gòu)。
      [0055]雖然本公開參考數(shù)字信號處理器描述了存儲器互連網(wǎng)絡體系結(jié)構(gòu),但是本公開設想本文中描述用于可執(zhí)行并行操作的任何處理器(包括微處理器、微控制器、通用計算機或可執(zhí)行并行操作的任何其它處理器)的存儲器互連網(wǎng)絡體系結(jié)構(gòu)。本文中概括的規(guī)范、尺寸和關系(例如,處理元件和存儲體的數(shù)量、邏輯操作、加載值等)僅僅是為了實例和教學的目的而提供。這些中的每個可以在不違背本公開的精神或隨附權(quán)利要求的范圍的情況下而大幅改變。所述規(guī)范僅僅適用于非限制實例,且因此其應被解釋為僅僅適用于非限制實例。在前文描述中,已參考特定處理器配置描述了示例性實施方案。在不違背隨附權(quán)利要求的范圍的情況下可以對這些實施方案作出不同修改和改變。所述描述和附圖因此被視為說明性意義而非限制性意義。
      [0056]參考前述附圖描述的操作和步驟僅僅示出了可以分別由圖1和圖2的數(shù)字信號處理器100和數(shù)字信號處理器200執(zhí)行或在其內(nèi)執(zhí)行的可能案例中的某些。在適當情況下可以刪除或取消這些操作中的某些,或在不違背已論述概念的范圍的情況下可以大幅修改或改變這些步驟。此外,可以大幅更改這些操作的時序且這些操作仍實現(xiàn)本公開中教學的結(jié)果。前述操作流程是為了實例和論述的目的而提供。所述系統(tǒng)提供了實質(zhì)性的靈活性:在不違背已論述概念的教學的情況下可以提供任何適當配置、時間順序、構(gòu)造和時序機制。
      [0057]在一個示例性實施方案中,圖1和圖2的數(shù)字信號處理器100和數(shù)字信號處理器200分別耦接到相關電子裝置的母板。所述母板可能是可固定電子裝置的內(nèi)部電子系統(tǒng)的不同組件且還對其它外圍裝置提供連接器的通用電路板。更具體地說,所述母板可提供可讓系統(tǒng)的其它組件進行通信的電連接。任何適當?shù)奶幚砥?包括數(shù)字信號處理器、微處理器、支持芯片組等)、存儲器元件等可基于特定構(gòu)造需要、處理要求、計算機設計等而適當?shù)剡B接到所述母板。諸如外部存儲裝置、用于視頻顯示的控制器和外圍裝置的其它組件可以經(jīng)由電纜作為插件附接到所述母板,或集成到其自身的母板中。在另一示例性實施方案中,圖1和圖2的數(shù)字信號處理器100/數(shù)字信號處理器200分別可以嵌入在獨立模塊(例如,具有被配置來執(zhí)行特定應用程序或功能的相關組件的裝置)中或作為插件模塊集成到電子裝置的專用硬件中。
      [0058]注意本公開的特定實施方案可以隨意地包括芯片上系統(tǒng)(S0C)、中央處理單元(CPU)封裝。SOC表示將計算機或其它電子系統(tǒng)的組件集成到一個芯片中的集成電路(1C)。其可以包括數(shù)字、模擬、混合信號且通常包括射頻功能:其全部可以被提供在一個芯片基板上。其它實施方案可以包括多芯片模塊(MCM),其中多個芯片位于一個電子封裝內(nèi)且被配置來通過電子封裝相互緊密交互。在各個其它實施方案中,數(shù)字信號處理功能可以實施于專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)和其它半導體芯片中的一個或多個硅心中。
      [0059]在示例性實施方式中,本文中概括的處理活動的至少某些部分可以實施于(例如)控制單元120中的軟件中。在某些實施方案中,這些特征中的一個或多個可以實施于提供在圖1至圖4的元件外部的硬件中或可以按任何適當方式合并以實現(xiàn)所希望的功能。不同組件可以包括可合并以實現(xiàn)如本文中概括的操作的軟件(或往復式軟件)。在另外其它實施方案中,這些元件可以包括任何適當?shù)乃惴?、硬件、軟件、組件、模塊、接口或利于其操作的物體。
      [0060]此外,本文中分別在圖1和圖2描述的數(shù)字信號處理器100和數(shù)字信號處理器200(和/或其相關結(jié)構(gòu))還可以包括用于在網(wǎng)絡環(huán)境中接收、傳輸和/或以其它方式傳達數(shù)據(jù)或信息的適當接口。此外,可以移除或以其它方式合并與已描述的處理器相關的組件中的某些。一般意義上,附圖中描繪的配置在其表示上可能更具邏輯性,而物理體系結(jié)構(gòu)則可以包括這些元件的不同排列、組合和/或混合。必須注意,可使用無數(shù)種可能的設計構(gòu)造以實現(xiàn)本文中概括的操作目標。因此,關聯(lián)的基礎設施具有大量替代配置、設計選擇、裝置可能性、硬件構(gòu)造、軟件實施方式、設備選項等。
      [0061]在示例性實施方案中的某些中,一個或多個存儲器元件(例如,存儲器130、程序存儲器126等)可存儲用于本文中描述的操作的數(shù)據(jù)。這包括能夠?qū)⒅噶?例如,軟件、邏輯、代碼等)存儲在非暫時性介質(zhì)中使得所述指令被執(zhí)行來實行本文中描述的活動的存儲器元件。
      [0062]任何適當處理器組件可執(zhí)行與數(shù)據(jù)相關的任何類型的指令以實現(xiàn)本文中詳述的操作。在一個實施方案中,圖1和圖2的數(shù)字信號處理器100和數(shù)字信號處理器200分別可將元件或物件(例如,數(shù)據(jù))從一種狀態(tài)或狀況變換成另一種狀態(tài)或狀況。在另一實例中,本文中概括的活動可以使用固定邏輯或可編程邏輯(例如,由處理器執(zhí)行的軟件和/或計算機指令)實施,且本文中認定的元件可能是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、可抹除可編程只讀存儲器(EPR0M)、電可抹除可編程只讀存儲器(EEPR0M))、包括數(shù)字邏輯、軟件、代碼、電子指令、閃存、光盤、⑶-R0M、DVD ROM、磁卡或光卡、適用于存儲電子指令的其它類型的機器可讀介質(zhì)的ASIC,或其任何適當組合。在操作中,圖1和圖2的數(shù)字信號處理器100和數(shù)字信號處理器200分別可以將信息保存在任何適當類型的非暫時性存儲介質(zhì)(例如,隨機訪問存儲器(RAM)、只讀存儲器(ROM)、現(xiàn)場可編程門陣列(FPGA)、可抹除可編程只讀存儲器(EPROM)、電可抹除可編程ROM (EEPROM)等)、軟件、硬件或任何其它適當組件、裝置、元件中或在適當情況下且基于特定需要保存在物體中。此外,正被追蹤、發(fā)送、接收或存儲在數(shù)字信號處理器100和數(shù)字信號處理器200中的信息可基于特定需要和實施方式而被提供在任何數(shù)據(jù)庫、寄存器、表格、高速緩存、隊列、控制清單或存儲結(jié)構(gòu)中,其全部以任何適當時間表加以引用。本文中論述的任何存儲器項應被解釋為包括在廣義的術語“存儲器”內(nèi)。類似地,本文中描述的可能處理元件、模塊和機器中的任何一個應被解釋為包括在廣義的術語“處理器”內(nèi)。
      [0063]實施本文中描述的功能的所有或部分的計算機程序邏輯是以各種形式(包括(但絕不限于)源代碼形式、計算機可執(zhí)行形式和不同中間形式(例如,由匯編器、編譯器、鏈接程序或定位程序產(chǎn)生的形式))具體實施。在實例中,源代碼包括以不同編程語言(諸如目標代碼、匯編語言或高級語言(諸如搭配不同操作系統(tǒng)或操作環(huán)境使用的公式翻譯程式語言、
      C、C++、JAVA或HTML))實施的一系列計算機程序指令。源代碼可以定義和使用不同數(shù)據(jù)結(jié)構(gòu)和通信訊息。源代碼可以(例如,經(jīng)由解譯器)呈現(xiàn)計算機可執(zhí)行形式,或源代碼可以(例如,經(jīng)由轉(zhuǎn)譯器、匯編程序或編譯器)而轉(zhuǎn)換為計算機可執(zhí)行形式。
      [0064]前文概括了多個實施方案的特征使得本領域一般技術人員可以更好地理解本公開的方面。本領域一般技術人員應明白,他們可以隨意地使用本公開作為用于設計或修改用于實行相同目的和/或?qū)崿F(xiàn)本文中介紹的實施方案的相同優(yōu)點的其它程序和結(jié)構(gòu)的基礎。本領域一般技術人員還應意識到這樣等效的構(gòu)造沒有違背本公開的精神和范圍,且他們可以在不等效的構(gòu)造沒有違背本公開的精神和范圍的情況下在本文中作出各種改變、替代和更改。
      [0065]本領域一般技術人員可以確認多種其它變化、替代、變動、更改和修改,且設想本公開包括屬于隨附權(quán)利要求的范圍內(nèi)的所有這些變化、替代、變動、更改和修改。為了輔助美國專利商標局(USPTO)且此外輔助關于本申請發(fā)布的任何專利的任何讀者解譯附屬于本申請的權(quán)利要求,希望 申請人:注意:(a)除非`特定權(quán)利要求中具體使用單詞“用于……的工具”或“用于……的步驟”,否則并非意欲隨附權(quán)利要求中的任一項調(diào)用35U.S.C.第112章第六(6)段,因為35U.S.C.第112章第六(6)段的存在是關于提交日期jP(b)并非意欲通過說明書中的任何聲明以隨附權(quán)利要求中未以其它方式反映出來的任何方式限制本公開。
      [0066]示例性實施方案的實施
      [0067]一個特定示例性實施方式可以包括用于以下步驟的工具(例如,軟件、邏輯、代碼、硬件或其組合):將指令集發(fā)布到處理元件;經(jīng)由基于交換機的互聯(lián)網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步傳送到處理元件中的至少某些,且經(jīng)由非基于交換機的互聯(lián)網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步傳送到處理元件中的至少某些;和通過處理元件中的至少某些使用第一數(shù)據(jù)操作數(shù)和第二數(shù)據(jù)操作數(shù)執(zhí)行操作。不同實施方式還可以包括用于執(zhí)行廣播加載的工具,其中相同數(shù)據(jù)操作數(shù)是從存儲器傳送到所述至少某些處理元件中的每個;且傳送第二數(shù)據(jù)操作數(shù)包括執(zhí)行單指令多數(shù)據(jù)(SMD)加載,其中不同數(shù)據(jù)操作數(shù)是從存儲器傳送到所述至少某些處理元件中的每個。不同實施方式可以包括執(zhí)行有限響應濾波器操作和矩陣乘法操作之一。
      【權(quán)利要求】
      1.一種處理器,其包括: 計算陣列,其包括處理元件; 存儲器,其包括存儲體;和 存儲器互連網(wǎng)絡體系結(jié)構(gòu),其用于將所述處理元件中的至少某些互連到所述存儲體中的至少某些,其中所述存儲器互連網(wǎng)絡體系結(jié)構(gòu)包括: 基于交換機的互連網(wǎng)絡,和 非基于交換機的互連網(wǎng)絡, 其中所述處理器被配置來經(jīng)由所述基于交換機的互連網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步加載到所述處理元件中的至少某些,且經(jīng)由所述非基于交換機的互連網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步加載到所述處理元件中的至少某些。
      2.根據(jù)權(quán)利要求1所述的處理器,其中所述基于交換機的互連網(wǎng)絡是交叉開關網(wǎng)絡。
      3.根據(jù)權(quán)利要求2所述的處理器,其中 所述計算陣列包括N個處理元件; 所述存儲器包括η個存儲體;且 所述交叉開關網(wǎng)絡包括NXn個交 換機。
      4.根據(jù)權(quán)利要求2所述的處理器,其中所述非基于交換機的互連網(wǎng)絡是廣播總線。
      5.根據(jù)權(quán)利要求4所述的處理器,其中所述廣播總線是32位總線和64位總線中選定的總線。
      6.根據(jù)權(quán)利要求4所述的處理器,其中所述廣播總線是單廣播總線。
      7.根據(jù)權(quán)利要求1所述的處理器,其中所述第一數(shù)據(jù)操作數(shù)是用于每個處理元件的不同數(shù)據(jù)操作數(shù)且所述第二數(shù)據(jù)操作數(shù)是用于每個處理元件的相同數(shù)據(jù)操作數(shù)。
      8.根據(jù)權(quán)利要求1所述的處理器,其中每個處理元件包括計算單元和寄存器堆。
      9.根據(jù)權(quán)利要求2所述的處理器,其中η=ΝΧ由所述處理器執(zhí)行的同步數(shù)據(jù)操作數(shù)加載的數(shù)量。
      10.根據(jù)權(quán)利要求1所述的處理器,其中所述處理器被配置來經(jīng)由所述基于交換機的互連網(wǎng)絡將所述第一數(shù)據(jù)操作數(shù)同步加載到每個處理元件,且經(jīng)由所述非基于交換機的互連網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步加載到每個處理元件。
      11.一種處理器,其包括: 計算陣列,其包括N個處理元件; 存儲器,其包括η個存儲體; 交叉開關,其用于互連所述計算陣列與所述存儲器,所述交叉開關被配置來將數(shù)據(jù)從所述η個存儲體傳送到所述N個處理元件; 總線,其用于互連所述計算陣列與所述存儲器,所述總線被配置來將數(shù)據(jù)從所述η個存儲體傳送到所述N個處理元件;以及 其中所述交叉開關和所述總線被配置來將所述數(shù)據(jù)從所述η個存儲體同步傳送到所述N個處理元件。
      12.根據(jù)權(quán)利要求11所述的處理器,其中所述交叉開關具有NXn個交換機。
      13.根據(jù)權(quán)利要求12所述的處理器,其中所述總線沒有交換機。
      14.根據(jù)權(quán)利要求11所述的處理器,其中所述交叉開關被配置來將不同數(shù)據(jù)操作數(shù)傳送到所述N個處理元件中的每個,且所述總線被配置來將相同數(shù)據(jù)操作數(shù)從所述存儲器傳送到所述N個處理元件。
      15.根據(jù)權(quán)利要求11所述的處理器,其中所述N個處理元件中的至少某些包括計算單元和寄存器堆。
      16.根據(jù)權(quán)利要求11所述的處理器,其中n=NX由所述處理器執(zhí)行的同步數(shù)據(jù)傳送的數(shù)量。
      17.一種要由處理器執(zhí)行的方法,所述處理器包括:計算陣列,其包括處理元件;和存儲器,其包括存儲體,所述方法包括: 將指令集發(fā)布到所述處理元件; 經(jīng)由基于交換機的互聯(lián)網(wǎng)絡將第一數(shù)據(jù)操作數(shù)同步傳送到所述處理元件中的至少某些,且經(jīng)由非基于交換機的互聯(lián)網(wǎng)絡將第二數(shù)據(jù)操作數(shù)同步傳送到所述處理元件中的至少某些;和 通過所述處理元件中的至少某些使用所述第一數(shù)據(jù)操作數(shù)和所述第二數(shù)據(jù)操作數(shù)執(zhí)行操作。
      18.根據(jù)權(quán)利要求17所 述的方法,其中: 傳送所述第一數(shù)據(jù)操作數(shù)包括執(zhí)行廣播加載,其中相同數(shù)據(jù)操作數(shù)是從所述存儲器傳送到每個處理元件;以及 傳送所述第二數(shù)據(jù)操作數(shù)包括執(zhí)行單指令多數(shù)據(jù)(SIMD)加載,其中不同數(shù)據(jù)操作數(shù)是從所述存儲器傳送到每個處理元件。
      19.根據(jù)權(quán)利要求17所述的方法,其中: 所述基于交換機的互聯(lián)網(wǎng)絡是交叉開關;以及 所述非基于交換機的互聯(lián)網(wǎng)絡是總線。
      20.根據(jù)權(quán)利要求17所述的方法,其中執(zhí)行所述操作包括執(zhí)行有限響應濾波器操作和矩陣乘法操作之一。
      【文檔編號】G06F15/80GK103778100SQ201310501553
      【公開日】2014年5月7日 申請日期:2013年10月23日 優(yōu)先權(quán)日:2012年10月23日
      【發(fā)明者】K·桑海, B·勒納, M·G·佩爾金斯, J·L·瑞德福特 申請人:亞德諾半導體技術公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1