用于通過中間階層運算的并行計算來加速計算的方法和裝置制造方法
【專利摘要】本發(fā)明構(gòu)成一種用于實現(xiàn)中間運算的并行計算的方法和設(shè)備,這些中間運算在給定應(yīng)用中的許多算法中為通用的并且還包括大多數(shù)計算密集型運算。該方法包括:設(shè)計適合于預(yù)先定義的應(yīng)用的一組中間級函數(shù),從處理器獲得對應(yīng)于中間級運算的指令,計算運算對象和結(jié)果的地址,執(zhí)行多個中間級運算中所涉及的計算。在一示例性實施例中,設(shè)備由本地數(shù)據(jù)地址生成器、可編程計算單元和本地存儲器接口構(gòu)成,該本地數(shù)據(jù)地址生成器計算多個運算對象和結(jié)果的地址,該可編程計算單元執(zhí)行中間級運算的并行計算,該本地存儲器接口接口到在多個塊中被組織的本地存儲器中。本地數(shù)據(jù)地址生成器和可編程計算單元可配置成覆蓋需要大量計算的任意域。
【專利說明】用于通過中間階層運算的并行計算來加速計算的方法和裝
【技術(shù)領(lǐng)域】
[0001]本發(fā)明中所設(shè)計的方法和裝置總體涉及高性能計算領(lǐng)域并且具體地涉及使用硬件加速器對不同的應(yīng)用加速。本發(fā)明特別是涉及使用為不同的應(yīng)用專門設(shè)計的運算的并行計算來設(shè)計集成電路的架構(gòu)。
【背景技術(shù)】
[0002]存在對高性能計算的日益增長的需求。常常,高計算能力的要求也與低功耗的競爭要求相關(guān)聯(lián)。例如,多媒體計算為一個這樣的情況,其中,朝高分辨率和高清晰度應(yīng)用的要求針對大多數(shù)通過蓄電池工作的裝置。對于這樣的裝置,存在嚴格的功率和性能要求。存在用來在嘗試消耗較少能量的同時增加計算功率的多項技術(shù)。
[0003]高性能處理器(RISC和DSP處理器)的設(shè)計,處理器的擴展,諸如單指令多數(shù)據(jù)(SIMD)、多指令多數(shù)據(jù)(MMD)、協(xié)處理器等等,為對處理器的現(xiàn)有改型以實現(xiàn)更好的計算能力。還嘗試了類似于多議題、VLIW(非常長的指令字)或更一般超標量架構(gòu)的具有面向性能架構(gòu)的處理器,但是,由于它們的大回路規(guī)模和功率消耗,成功率更低。
[0004]處理器架構(gòu)的擴展的SMD和MMD型嘗試在單個處理器循環(huán)中執(zhí)行多項運算來實現(xiàn)較高的計算速度。適當設(shè)計的寄存器組被用來為多個運算提供運算對象以及存儲那些運算的結(jié)果。
[0005]處理器的SMD和類似的擴展需要以特定方式組織數(shù)據(jù),并且因此僅在這樣的數(shù)據(jù)組織容易得到且無需重排的先前步驟的情況下提供優(yōu)點。此外,由于SMD技術(shù)涉及僅基礎(chǔ)數(shù)學(xué)運算,所以在處于基礎(chǔ)數(shù)學(xué)級的計算的順序次序為必須的情況下,SMD不能被用于算法的部分。因此,這些類型的擴展提供有限的計算加速,在計算類似視頻解碼的完全算法所需的周期上,最好的情況提供至多40%的縮短。因此這些類型的擴展由于所需的附加電路而產(chǎn)生更少的功率優(yōu)點。
[0006]存在用來實現(xiàn)高性能的其它創(chuàng)新途徑,諸如向量處理發(fā)動機、可配置加速器等。關(guān)于用于浮點運算[Nil]、可適應(yīng)算術(shù)節(jié)點[N2]和可配置算術(shù)單元[E4]的可重配置陣列處理器的工作試圖使用向量處理和可配置性來實現(xiàn)執(zhí)行數(shù)學(xué)運算上的效率。
[0007]實現(xiàn)上文描述的較高計算能力的方法均在于更加有效地執(zhí)行基礎(chǔ)數(shù)學(xué)運算。DSP處理器執(zhí)行諸如相乘和累加(MAC)的運算,這些運算為在基礎(chǔ)數(shù)學(xué)運算之上的步驟。盡管這些算法為在不同應(yīng)用的不同算法中產(chǎn)生的通用基本算法,但是出于上文陳述的原因,在該基礎(chǔ)運算級下加速能夠在計算中提供有限的加速。
[0008]另一方面,多芯架構(gòu)被廣闊地用來加快計算。在個人計算機、膝上型計算機和平板計算機以及甚至在高端移動電話中使用這些架構(gòu)。精細功率管理方案用來最小化因多核心而產(chǎn)生的功率消耗。
[0009]多芯架構(gòu)通過對算法的并行處理實現(xiàn)較高的計算能力。因此,算法對于并行處理(多線程)、對于將有效的多芯架構(gòu)應(yīng)是服從的。因此,除了因多個核心的存在而產(chǎn)生的較高功率消耗之外,在多芯處理器中可達到的計算加速也受到限制。
[0010]被用來對計算加速的不同的途徑是構(gòu)建實施整個算法或其需要大量計算的一部分的電路(硬件加速器)。通常設(shè)計硬件加速器來對算法的計算最昂貴的部分加速(音頻編解碼器中的傅里葉變換、視頻編解碼器中的去塊濾波器等)。常常構(gòu)建硬件加速器用于類似視頻解碼器的完全算法。該途徑提供極好的算法加速。在這種情況下,功率要求也是最小的,因為回路具體地針對給定的計算設(shè)計。
[0011]然而,在計算流程中的任意改變使得現(xiàn)有硬件加速器無用并且需要新回路的結(jié)構(gòu)。存在一些可配置硬件加速器,但是它們可配置的程度通常用于幾個模式或幾個緊密相關(guān)的算法。
[0012]使用硬件加速器來加速算法的僅一部分部分地克服上述問題,因為不在硬件加速器中的部分的流動(并且因此在通用處理器上運行)在整個算法上能夠是有意義的性能改善,并且仍然留下算法的部分不加速,因此限制整體性能。
[0013]總之,在實現(xiàn)高性能計算即以低功耗計算的高速率的當前技術(shù)能夠分類為三個類型:(A)使用向量處理、超標量架構(gòu)的基礎(chǔ)數(shù)學(xué)運算的并行計算,(B)并行/多芯處理器,和(C)計算整個算法或算法的部分的專用線路。A型技術(shù)產(chǎn)生有限的加速,主要因為基礎(chǔ)運算在算法中能夠被并行化的有限的范圍。B型技術(shù)也產(chǎn)生有限的加速,主要由于算法能夠為多線程的范圍。C型技術(shù)產(chǎn)生良好的加速,但是具有極有限的靈活性。
[0014]本發(fā)明試圖通過對在基礎(chǔ)運算級之上但是在整個算法之下的計算和包含大多數(shù)計算密集部分但是在幾個算法中公共的共用部分提出不同級的加速來消除上文所討論的限制(中間階層運算為中間級運算)。
【發(fā)明內(nèi)容】
[0015]下面提出對本公開的簡要總結(jié)以便提供對讀取器的基礎(chǔ)理解。該總結(jié)不是本公開的廣泛概述,并且它不識別本發(fā)明的關(guān)鍵/重要元件或描繪本發(fā)明的范圍。其唯一目的為以簡要形式提出本文公開的一些概念,作為稍后提供的更多詳細描述的序幕。
[0016]本發(fā)明的更多完全領(lǐng)悟及其范圍能夠從下文簡要總結(jié)的附圖和目前優(yōu)選實施例的下列詳細描述獲得。
[0017]公開了用于實現(xiàn)計算系統(tǒng)中的多個應(yīng)用中的中間階層運算的并行計算的方法和設(shè)備(通用多功能加速器)。
[0018]本發(fā)明的示例性實施例為實現(xiàn)并行計算以對諸如多媒體、通信、圖形、數(shù)據(jù)安全性、金融、其它工程和科學(xué)以及一般計算的多個應(yīng)用加速。
[0019]本發(fā)明的示例性實施例支持用于對不同的應(yīng)用加速的最佳設(shè)計指令。最佳設(shè)計指令處于在基礎(chǔ)數(shù)學(xué)運算之上的等級并且將充分共性維持為算法獨立的(中間級或中間階層運算)。
[0020]本發(fā)明的示例性實施例支持用于多媒體應(yīng)用的多個數(shù)字式信號處理器指令。
[0021]本發(fā)明的示例性目的為通過對中間運算加速來實現(xiàn)不同類型計算中的高性能計笪
ο
[0022]根據(jù)本發(fā)明的非限制示例性方面,通用多功能加速器,對諸如基_2、基-4等的傅里葉變換運算的各種計算加速。
[0023]根據(jù)非限制示例性方面,對例如基-2的運算的選擇允許該方法為算法獨立的。
[0024]本發(fā)明的示例性實施例為提供多條指令以對諸如散列法、加密、解密等的多個數(shù)據(jù)安全性算法加速。
[0025]本發(fā)明的示例性實施例支持對應(yīng)的指令以覆蓋不同的應(yīng)用。
[0026]根據(jù)非限制示例性方面,通用多功能加速器通過在通用多功能加速器的本地存儲器中存在的一組數(shù)據(jù)上的一個處理器循環(huán)中執(zhí)行多個數(shù)學(xué)運算來提供對計算的高度加速。
[0027]根據(jù)本發(fā)明的第一方面,該方法包括傳遞指令至指令解碼器,因而指令解碼器執(zhí)行對指令的解碼運算并且傳遞多個所需的控制信號至本地數(shù)據(jù)地址生成器。該方法進一步包括從處理器接收指令的步驟。
[0028]根據(jù)第一方面,該方法包括傳遞將被執(zhí)行的運算所需的多個運算對象的起始地址并且傳遞這些結(jié)果的初始目的地址至本地數(shù)據(jù)地址生成器。
[0029]根據(jù)第一方面,該方法包括通過本地數(shù)據(jù)地址生成器判定數(shù)據(jù)的源地址和目的地址,因而本地數(shù)據(jù)地址生成器計算對應(yīng)于執(zhí)行指令的計算運算所需的多個數(shù)據(jù)點的位置的地址和多個結(jié)果將被存儲的位置的地址。
[0030]根據(jù)第一方面,該方法包括執(zhí)行由可編程計算單元中的指令指定的多項計算運算,因而多項計算運算包括基礎(chǔ)數(shù)學(xué)運算和基礎(chǔ)邏輯運算的預(yù)先定義的一組組合。
[0031]根據(jù)第一方面,該方法包括通過本地存儲器接口從多個存儲器塊訪問多個數(shù)據(jù)點,其中,對應(yīng)于多個數(shù)據(jù)點的位置的地址由可編程本地數(shù)據(jù)地址生成器產(chǎn)生。
[0032]根據(jù)第一方面,該方法包括實現(xiàn)作為系統(tǒng)存儲器接口中的計算系統(tǒng)的單個存儲單元的多個存儲器塊的可視化,因而系統(tǒng)存儲器接口實現(xiàn)對標準數(shù)據(jù)傳遞運算和直接存儲器存取傳遞運算的使用。
[0033]根據(jù)第一方面,該方法包括通過系統(tǒng)數(shù)據(jù)地址生成器將從系統(tǒng)總線接收的系統(tǒng)地址轉(zhuǎn)換成本地地址。
[0034]根據(jù)第一方面,該方法進一步包括將通用多功能加速器與主處理器的緊耦合存儲器端口或緊密耦合存儲器端口接口的步驟。
[0035]根據(jù)第一方面,該方法進一步包括用于執(zhí)行計算運算的指令中的運算碼的步驟。
[0036]根據(jù)第一方面,該方法進一步包括將多個存儲器塊與本地存儲器接口接口以訪問多個數(shù)據(jù)點的步驟。
[0037]根據(jù)第一方面,該方法進一步包括基于指令執(zhí)行多項計算運算的步驟。
[0038]根據(jù)第一方面,該方法進一步包括在指令中包括配置參數(shù)以配置通用多功能加速器的步驟。
[0039]根據(jù)第一方面,該方法進一步包括基于配置參數(shù)計算多個運算對象的地址和結(jié)果的地址的步驟。
[0040]根據(jù)第一方面,該方法進一步包括基于配置參數(shù)執(zhí)行多項計算運算的步驟。
[0041]根據(jù)本發(fā)明的第二方面,通用多功能加速器包括被配置成判定指令的源地址和目的地址的可編程本地數(shù)據(jù)地址生成器。
[0042]根據(jù)本發(fā)明的第二方面,通用多功能加速器包括用于執(zhí)行指令中指定的多項計算運算的可編程計算單元,因而多項計算運算包括基礎(chǔ)數(shù)學(xué)運算和基礎(chǔ)邏輯運算的預(yù)先定義的一組組合。
[0043]根據(jù)本發(fā)明的第二方面,通用多功能加速器包括用于從計算指令所需的多個存儲器塊訪問多個數(shù)據(jù)點的步驟的本地存儲器接口,因而對應(yīng)于多個數(shù)據(jù)點的位置的地址通過可編程本地數(shù)據(jù)地址生成器產(chǎn)生。包括多個存儲器塊的本地存儲單元接口到本地存儲器接口。本地存儲器接口將多個運算對象提供給可編程計算單元。
[0044]根據(jù)本發(fā)明的第二方面,通用多功能加速器包括系統(tǒng)存儲器接口。系統(tǒng)總線在系統(tǒng)存儲器接口與計算系統(tǒng)之間通信。
[0045]根據(jù)本發(fā)明的第二方面,通用多功能加速器包括被配置成將從系統(tǒng)總線接收的系統(tǒng)地址轉(zhuǎn)換成本地存儲器地址的系統(tǒng)數(shù)據(jù)地址生成器。系統(tǒng)數(shù)據(jù)地址生成器實現(xiàn)作為計算系統(tǒng)的單個存儲單元的多個本地存儲器塊的可視化。
[0046]根據(jù)本發(fā)明的第二方面,通用多功能加速器進一步被配置成對指令中的多個中間運算加速。
[0047]根據(jù)本發(fā)明的第二方面,通用多功能加速器進一步包括用以對來自主處理器的指令解碼的指令解碼器。指令解碼器進一步被配置成傳輸多個控制信號至本地數(shù)據(jù)地址生成器。
[0048]根據(jù)本發(fā)明的第二方面,通用多功能加速器進一步包括用于對主處理器的緊耦合存儲器端口接口的處理器接口。處理器接口進一步與主處理器的緊密耦合存儲器端口接□。
【專利附圖】
【附圖說明】
[0049]圖1為描繪用于使用處理器計算基礎(chǔ)數(shù)學(xué)運算的現(xiàn)有技術(shù)系統(tǒng)的圖示。
[0050]圖2為描繪用于通過構(gòu)建專屬電路(硬件加速器)對算法的計算加速的現(xiàn)有技術(shù)系統(tǒng)的圖示。
[0051]圖3為描繪涉及通用多功能加速器的系統(tǒng)的概略圖的圖示。
[0052]圖4為描繪執(zhí)行基-2兩個中間階層運算的并行計算的示例性實施例的圖示。
[0053]圖5為描繪通用多功能加速器連同本地存儲器的概略圖的圖示。
[0054]圖6為描繪通用多功能加速器中的指令結(jié)構(gòu)的圖示。
[0055]圖7為描繪通用多功能加速器與本地存儲器之間的連接性的概略圖的圖示。
[0056]圖8為描繪通用多功能加速器的本地數(shù)據(jù)地址生成器與本地存儲器接口之間的連接性的概略圖的圖示。
[0057]圖9為描繪通用多功能加速器的可編程計算單元與本地存儲器接口之間的連接性的概略圖的圖示。
[0058]圖10為描繪通用多功能加速器的系統(tǒng)數(shù)據(jù)地址生成器與帶本地存儲器接口的系統(tǒng)存儲器接口之間的連接性的概略圖的圖示。
[0059]圖11為描繪通用多功能加速器的指令解碼器與本地數(shù)據(jù)地址生成器之間的連接性的概略圖的圖示。
[0060]圖12為描繪通用多功能加速器的指令解碼器與可編程計算單元之間的連接性的概略圖的圖示。
【具體實施方式】
[0061]應(yīng)當理解的是,本發(fā)明在其應(yīng)用上并不限于下列說明書中所闡明的或下列圖紙中所示的部件的結(jié)構(gòu)和布置的細節(jié)。本公開能夠涵蓋其它實施例并且可以各種方式實踐或?qū)嵤A硗?,需理解的是,本文所使用的措辭和術(shù)語是出于說明目的,并且不應(yīng)被視為限制性的。
[0062]此處對“包含”、“包括”或“具有”和其變型的使用意味著籠括其后列出的項目和其等同物以及另外的項目。本文的術(shù)語“一”和“一個”不指示對數(shù)量的限制,而是指示所引用的項目中的至少一個的存在。此外,對本文中的術(shù)語“第一”、“第二”、和“第三”等的使用不指示任意順序、數(shù)量、或重要性,而是用來區(qū)別一個元件與另一個元件。
[0063]參照圖1,圖1為描繪用于計算基礎(chǔ)數(shù)學(xué)運算的現(xiàn)有技術(shù)系統(tǒng)的圖示100。系統(tǒng)包括處理器核心(典型地多芯處理器)102、連接到系統(tǒng)總線106以傳輸數(shù)據(jù)或指令用于執(zhí)行基礎(chǔ)數(shù)學(xué)運算的存儲器104。處理器核心102連接到系統(tǒng)總線106用于將諸如加、減、乘等的計算數(shù)學(xué)運算傳輸至存儲器104。處理器核心102和存儲器104使用雙向通信過程連同系統(tǒng)總線106來傳輸和接收數(shù)據(jù)。
[0064]參照圖2,圖2為描繪用于通過構(gòu)建專用線路(硬件加速器)對算法加速的系統(tǒng)的現(xiàn)有技術(shù)的圖示200。系統(tǒng)包括連接到系統(tǒng)總線206以便對完全算法加速以執(zhí)行特定計算的處理器202、存儲器204和硬件加速器208。
[0065]連接到系統(tǒng)總線206的處理器202控制硬件加速器208。硬件加速器208通常設(shè)計成計算特定算法或算法的計算昂貴部分。存儲器204存儲將被計算的或已經(jīng)計算的數(shù)據(jù)。
[0066]參照圖3,圖3為描繪使用通用多功能加速器的計算系統(tǒng)的概略圖的圖示300。根據(jù)本主題的非限制示例性實施例,該系統(tǒng)包括:處理器302、存儲器304和通用多功能加速器308,各自連接到系統(tǒng)總線306 ;和本地存儲器310。通用多功能加速器308通過連接部312從處理器接收對應(yīng)于將被執(zhí)行的中間級運算的這些指令。
[0067]根據(jù)本主題的非限制示例性實施,連接到系統(tǒng)總線306的處理器302使用互連部312將這些指令傳輸至通用多功能加速器308以執(zhí)行存儲在本地存儲器310中的數(shù)據(jù)上的預(yù)先定義的中間階層運算。本地存儲器312通過專用接口 314連接到通用多功能加速器308。
[0068]參照圖4,圖4為描繪基-2計算的非限制示例性中間運算的圖示400。圖示400描繪兩個基-2運算402和404。根據(jù)本主題的非限制示例性實施例,該過程描述兩個基-2運算402和404的并行計算。
[0069]根據(jù)本主題的非限制示例性實施,諸如基_2、基-4等的并行計算運算由通用多功能加速器支持。這樣的指令在加速傅里葉變換、其任意規(guī)模和變化的逆傅里葉變換中是有用的。
[0070]根據(jù)本主題的非限制示例性實施,諸如FIR濾波器、基運算、開窗函數(shù)、量化等的多個中間階層運算在通用多功能加速器中被設(shè)計和實施以對所有多媒體應(yīng)用加速。
[0071]參照圖5,圖5為描繪通用多個函數(shù)加速器的概略圖的圖示500。根據(jù)本主題的非限制示例性實施例,通用多功能加速器包括處理器接口 502、指令解碼器504、本地數(shù)據(jù)地址生成器506、可編程計算單元508、系統(tǒng)數(shù)據(jù)地址生成器510和系統(tǒng)接口 512、連接到本地存儲器516的本地存儲器接口 514。
[0072]根據(jù)本主題的非限制示例性實施例,這些指令被如此設(shè)計成包括執(zhí)行作為用以對預(yù)先定義的應(yīng)用的不同的算法加速所需的數(shù)學(xué)運算和邏輯運算的組合的中間階層運算的信息。所設(shè)計的指令還包括運算對象的起始地址、結(jié)果的目的的起始地址和模式或配置參數(shù)。因此多個運算對象的地址基于嵌入在指令中的運算對象的起始地址來判定,并且基于這些地址獲得的多個運算對象基于嵌入在指令中的信息來執(zhí)行由中間階層函數(shù)指定的多個運算。同樣地,多個結(jié)果的目的地址的基于嵌入在指令中的結(jié)果的初始目的地址而判定并且將結(jié)果傳遞至這些地址位置。
[0073]參照圖6,圖6為描繪關(guān)于通用多功能加速器中的指令結(jié)構(gòu)的圖示600。根據(jù)本主題的非限制示例性實施例,指令包括運算碼602和兩個地址或配置參數(shù)604a和604b。運算碼602指定將被執(zhí)行的中間級運算的類型。在一個非限制示例性實施例中,指令的其它兩個域604a和604b可以包含兩個地址。兩個地址可以是兩個運算對象或一個運算對象和一個結(jié)果的初始地址。在另一個非限制示例性實施例中,兩個域604a和604b中的一個或兩個可以包含配置參數(shù)。
[0074]根據(jù)本主題的非限制示例性實施,參照圖5,處理器接口 502從處理器的緊耦合存儲器或緊密耦合存儲器端口接收特定應(yīng)用的預(yù)先設(shè)計的指令并且將它們傳遞至指令解碼器504。指令解碼器504對從處理器接口 502接收的這些指令解碼并且產(chǎn)生必需的控制信號并且將它們傳遞至通用多功能加速器500的諸如本地數(shù)據(jù)地址生成器506和可編程計算單元508的不同部分。在通用多功能加速器500中的本地數(shù)據(jù)地址生成器506判定執(zhí)行給定的指令和結(jié)果的運算所需的多個數(shù)據(jù)點的源地址和目的地址。
[0075]根據(jù)本主題的非限制示例性實施例,通用多功能加速器500的可編程計算單元508在從本地存儲器516獲得的多個數(shù)據(jù)上執(zhí)行諸如圖4中描繪的兩個基-2運算400的中間運算的并行計算。對于通用多功能加速器500支持的每個運算,可編程計算單元508從指令解碼器504接收控制信號,通過適當?shù)靥暨x如由控制信號指定的基礎(chǔ)數(shù)學(xué)運算和邏輯運算的組合而在多個數(shù)據(jù)點上執(zhí)行算術(shù)和邏輯運算以產(chǎn)生多個結(jié)果。
[0076]根據(jù)本主題的非限制示例性實施例,通用多功能加速器500的系統(tǒng)數(shù)據(jù)地址生成器510將系統(tǒng)地址轉(zhuǎn)換成本地存儲器516中的數(shù)據(jù)的位置的地址。通用多功能加速器500中的本地存儲器接口 514從本地存儲器516中配置的一組存儲器塊訪問多條指令中的每一條的數(shù)據(jù)點,所述多條指令的地址由本地數(shù)據(jù)地址生成器506計算。通用多功能加速器還進一步被配置成具有系統(tǒng)接口 512,其中,所有的本地存儲器塊作為單個存儲單元對系統(tǒng)是可見的,使得加載或存儲或執(zhí)行直接存儲器存取傳遞運算對于將數(shù)據(jù)傳遞到本地存儲器516中和從本地存儲器516傳遞出來是足夠的。
[0077]在非限制示例性實施例中,規(guī)模16kb的本地存儲器516接口到通用多功能加速器500并且每一個進一步被組織成Ikb的幾個塊。
[0078]根據(jù)本主題的非限制示例性實施例,必要的運算將在其上執(zhí)行的原始數(shù)據(jù)被傳遞至通用多功能加速器的本地存儲器516。同時,本地存儲器接口 514將本地存儲器516配置為供應(yīng)多個運算對象至可編程計算單元508的幾個存儲器塊,系統(tǒng)存儲器接口使得本地存儲器516作為單個存儲器塊呈現(xiàn)給計算系統(tǒng)。
[0079]參照圖7,圖7為描繪通用多功能加速器與本地存儲器之間的連接性的概略圖的圖示700。根據(jù)本主題的非限制示例性實施例,該系統(tǒng)包括接口到各組存儲器塊704a和704b的通用多功能加速器的本地存儲器接口 702。
[0080]根據(jù)本主題的非限制示例性實施,在通用多功能加速器中配置的本地存儲器接口702從本地存儲器704a中的一組多個塊訪問多個運算對象并且將多個結(jié)果存儲在本地存儲器704b中一組多個塊中。本地存儲器接口 702接口到本地存儲器塊704a的組-1和16kb本地存儲器的本地存儲器塊704b的組-1I中的中的每一個以將數(shù)據(jù)獨立地傳遞至被包括在組-1 704a和組-1I 704b中的每個存儲器塊以及以從被包括在組-1 704a和組-1I704b中的每個存儲器塊獨立地接收數(shù)據(jù)。
[0081]參照圖8,圖8為描繪通用多功能加速器的本地數(shù)據(jù)地址生成器與本地存儲器接口之間的連接性的概略圖的圖示800。根據(jù)本主題的非限制示例性實施例,該系統(tǒng)包括被配置成通過數(shù)據(jù)總線806與本地存儲器接口 804通信的本地數(shù)據(jù)地址生成器802。
[0082]根據(jù)本主題的非限制示例性實施,本地數(shù)據(jù)地址生成器802通過數(shù)據(jù)總線806計算本地存儲器接口 804的多個運算對象的多個地址,其中,執(zhí)行由指令指定的運算所需的多個運算對象的多個地址由本地數(shù)據(jù)地址生成器802計算。
[0083]參照圖9,圖9為描繪通用多功能加速器的可編程計算單元與本地存儲器接口之間的連接性的概略圖的圖示900。根據(jù)本主題的非限制示例性實施例,該系統(tǒng)包括被配置成通過數(shù)據(jù)總線906與本地存儲器接口 904通信的可編程計算單元902。
[0084]根據(jù)本主題的非限制示例性實施,在通用多功能加速器中配置的可編程計算單元902執(zhí)行由多條指令指定的多項計算。本地存儲器接口 904被配置成將從多個本地存儲器塊接收的多個運算對象通過數(shù)據(jù)總線906傳遞至可編程計算單元902。本地存儲器接口 902還進一步被配置成通過數(shù)據(jù)總線906接收由通用多功能加速器的可編程計算單元902產(chǎn)生的多個結(jié)果。
[0085]參照圖10,圖10描繪系統(tǒng)數(shù)據(jù)地址生成器與帶本地存儲器接口的系統(tǒng)存儲器接口之間的連接性的概略圖的圖示1000。根據(jù)本主題的非限制示例性實施例,該系統(tǒng)包括系統(tǒng)數(shù)據(jù)地址生成器1002和系統(tǒng)存儲器接口 1004,所述系統(tǒng)數(shù)據(jù)地址生成器1002和系統(tǒng)存儲器接口 1004被配置成通過地址數(shù)據(jù)總線1008和數(shù)據(jù)總線1010與本地存儲器接口 1006通信。
[0086]根據(jù)本主題的非限制示例性實施例,系統(tǒng)數(shù)據(jù)地址生成器1002被配置成計算本地存儲器中的位置的對應(yīng)于系統(tǒng)總線上的地址的地址。系統(tǒng)數(shù)據(jù)地址生成器1002將該本地地址通過地址總線1008傳遞至本地存儲器接口 1006。接口到多個本地存儲器塊的本地存儲器接口 1006使用該地址存儲從通用多功能加速器的系統(tǒng)存儲器接口 1004通過數(shù)據(jù)總線1010接收的數(shù)據(jù)。在通過系統(tǒng)傳遞以便從本地存儲器讀取的情況下,本地存儲器接口1006通過數(shù)據(jù)總線1010將從本地存儲器接收的數(shù)據(jù)傳遞至系統(tǒng)存儲器接口 1004。因此,系統(tǒng)數(shù)據(jù)地址生成器1002通過將系統(tǒng)存儲器地址轉(zhuǎn)換成本地存儲器地址促進與本地存儲器接口 1006接口的所有本地存儲器塊作為存儲器的一個單元呈現(xiàn)給系統(tǒng)總線。
[0087]參照圖11,圖11為描繪指令解碼器與本地數(shù)據(jù)地址生成器之間的連接性的概略圖的圖示1100。根據(jù)本主題的非限制示例性實施例,該系統(tǒng)包括指令解碼器1102,該指令解碼器1102被配置成通過控制總線1106和1110、通過地址總線1108與本地數(shù)據(jù)地址生成器1104通信。
[0088]根據(jù)本主題的非限制示例性實施,通用多功能加速器被配置成基于指令中的運算碼執(zhí)行中間階層運算。指令解碼器1102計算控制信號并且將控制信號通過控制總線1106傳遞至本地數(shù)據(jù)地址生成器1104。本地數(shù)據(jù)地址生成器1104基于該控制信號計算指令所需的多個運算對象的地址和結(jié)果的地址。通用多功能加速器進一步被配置成將運算對象的起始地址和結(jié)果的起始地址從指令解碼器1102通過地址總線1108傳遞至本地數(shù)據(jù)地址生成器1104。本地數(shù)據(jù)地址生成器1104基于這些初始地址計算指令所需的多個運算對象的地址和結(jié)果的地址。指令解碼器進一步被配置成通過指令解碼器1102將基于指令中的配置參數(shù)的模式信號通過模式信號數(shù)據(jù)總線1110傳遞至本地數(shù)據(jù)地址生成器1104和可編程計算單元。本地數(shù)據(jù)地址生成器1104基于該模式信號計算指令所需的多個運算對象的地址和結(jié)果的地址。因此,本地數(shù)據(jù)地址生成器1104使用對應(yīng)于運算碼的控制信號、運算對象的初始地址和結(jié)果的初始地址以及對應(yīng)于配置參數(shù)的模式信號。
[0089]根據(jù)非限制示例性實施,對應(yīng)于兩個基運算的計算的指令,本地數(shù)據(jù)地址生成器1104計算多個運算對象的地址(四個復(fù)雜的輸入因子和兩個復(fù)雜旋轉(zhuǎn)因子的地址)。這些地址基于傅里葉變換的規(guī)模和在FFT (快速傅利葉變換)算法中正被計算的基的等級隔開。在本發(fā)明的非限制示例性實施例中,F(xiàn)FT計算的規(guī)模和等級的值放置在指令的配置域中。
[0090]參照圖12,圖12為描繪指令解碼器與可編程計算單元之間的連接性的概略圖的圖示1200。根據(jù)本主題的非限制示例性實施例,系統(tǒng)包括被配置成通過控制總線1206和1208與可編程計算單元1204通信的指令解碼器1202。
[0091]根據(jù)本主題的非限制示例性實施,通用多功能加速器的可編程計算單元1202執(zhí)行多個中間階層運算的計算,所述多個中間階層運算為如由指令指定的算術(shù)運算和邏輯運算的組合。可編程計算單元1202通過來自指令解碼器1204的控制信號獲得關(guān)于將被執(zhí)行的中間階層運算的類型信息。然而,對于給定的運算碼(以及因此控制信號),將被執(zhí)行的計算的組合取決于配置參數(shù)。指令解碼器1204產(chǎn)生基于配置參數(shù)的模式信號并且將這些模式信號通過控制總線1208傳遞至可編程計算單元1202。非限制示例性配置參數(shù)為FIR濾波器中抽頭的數(shù)量,可編程計算單元1202被配置成基于該數(shù)量執(zhí)行所需乘加次數(shù)。
[0092]雖然已經(jīng)示出并且詳細地描述了本發(fā)明的特定實施例來說明發(fā)明原理,但是應(yīng)理解,本發(fā)明原本可以在不脫離這樣的原理的情況下實現(xiàn)。
【權(quán)利要求】
1.一種實現(xiàn)中間階層運算的并行計算以加快多種應(yīng)用的方法,所述方法包括: 為預(yù)先定義的應(yīng)用設(shè)計一組包括數(shù)學(xué)運算和邏輯運算的組合的中間階層運算; 設(shè)計多條指令,所述多條指令包括: 基于將被執(zhí)行的中間階層運算的預(yù)定類型的運算碼; 多個運算對象的起始地址和多個結(jié)果的目的的起始地址; 多個配置參數(shù); 從所述主處理器獲得所述多條設(shè)計的指令; 基于嵌入在所述多條設(shè)計的指令中的運算對象的起始地址來判定所述多個運算對象的地址; 基于所述判定的地址來獲得所述多個運算對象; 基于嵌入在所述多條設(shè)計的指令中的信息來執(zhí)行由所述中間階層運算指定的多個運算; 基于嵌入在所述多條設(shè)計的指令中的結(jié)果的初始目的地址來判定多個結(jié)果的目的地址;和 將所述結(jié)果傳遞至多個目的地址位置。
2.根據(jù)權(quán)利要求1所述的方法,進一步包括執(zhí)行由包括數(shù)學(xué)運算和邏輯運算的組合的所述中間階層運算指定的多個運算的步驟。
3.根據(jù)權(quán)利要求1所述的方法,進一步包括設(shè)計包括在預(yù)先定義的應(yīng)用的不同的算法中產(chǎn)生的所述數(shù)學(xué)運算和邏輯運算的組合的中間階層運算的步驟。
4.根據(jù)權(quán)利要求3所述的方法,進一步包括識別在將被加速的預(yù)先定義的應(yīng)用的不同算法中產(chǎn)生的計算的公共部分的步驟。
5.根據(jù)權(quán)利要求3和4所述的方法,進一步包括設(shè)計需要使多個應(yīng)用加速的多組中間階層運算的步驟。
6.根據(jù)權(quán)利要求1所述的方法,進一步包括允許需要用于預(yù)定定義的應(yīng)用的中間階層運算組的可配置性的步驟。
7.根據(jù)權(quán)利要求1所述的方法,進一步包括計算需要用于中間階層運算的并行計算的多個運算對象的任意有序地址。
8.根據(jù)權(quán)利要求1所述的方法,進一步包括計算由中間階層運算的并行計算產(chǎn)生的多個結(jié)果的任意有序地址的步驟。
9.根據(jù)權(quán)利要求1所述的方法,進一步包括允許需要用于所述多個預(yù)先定義的應(yīng)用的地址生成的可配置性的步驟。
10.一種用于實現(xiàn)計算系統(tǒng)中多個應(yīng)用中的中間階層運算的并行計算的通用多功能加速器,所述加速器包括: 用以存儲數(shù)據(jù)的本地存儲器的接口; 系統(tǒng)總線的接口,其用以促進所述系統(tǒng)地址空間中所述通用多功能加速器的接口以及在系統(tǒng)存儲器與所述本地存儲器之間傳遞數(shù)據(jù); 所述處理器的緊耦合存儲器和緊密耦合存儲器(CCM)端口的接口,其用于將指令傳遞到所述加速器; 用以對所述指令解碼的指令解碼器; 可配置本地數(shù)據(jù)地址生成器,其用以計算由所述指令指定的運算所需的多個運算對象的多個地址; 可編程計算單元,其用于執(zhí)行由所述指令指定的多項計算運算;和 系統(tǒng)數(shù)據(jù)地址生成器,其用以將系統(tǒng)地址轉(zhuǎn)變成本地存儲器地址。
11.根據(jù)權(quán)利要求10所述的通用多功能加速器,被配置成從所述處理器接收指令,其中,所述指令包括: 運算碼域; 配置參數(shù)域;和 多個地址域。
12.根據(jù)權(quán)利要求10所述的通用多功能加速器,進一步被配置成利用從所述處理器接收的指令中的配置參數(shù)以對它本身編程以執(zhí)行具有預(yù)先定義的性質(zhì)的運算。
13.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成訪問本地存儲器,所述本地存儲器在多個存儲器塊中被組織以訪問多個運算對象以及將多個結(jié)果存儲在在所述多個存儲器塊中被組織的所述本地存儲器中。
14.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成接口到多個本地存儲器塊以便在通用多功能加速器與獨立于其它塊的指定塊之間實現(xiàn)數(shù)據(jù)的傳遞。
15.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成接口到多個本地存儲器塊以便實現(xiàn)連續(xù)的系統(tǒng)地址以對應(yīng)于連續(xù)的本地存儲器塊。
16.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成將從多個本地存儲器塊接收的多個運算對象傳遞至所述可編程計算單元。
17.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成將從所述可編程計算單元接收的多個結(jié)果傳遞至多個本地存儲器塊。
18.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成從所述系統(tǒng)存儲器接口接收數(shù)據(jù)并且存儲在其地址由所述系統(tǒng)地址生成器計算的本地存儲器中。
19.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地存儲器接口進一步被配置成將存儲在其地址由所述系統(tǒng)地址生成器計算的本地存儲器中的數(shù)據(jù)傳遞至所述系統(tǒng)存儲器接口。
20.根據(jù)權(quán)利要求10所述的通用多功能加速器,進一步被配置成基于從所述處理器接收的指令中的運算碼域?qū)?yīng)于將被執(zhí)行的運算的多個控制信號傳遞至所述本地數(shù)據(jù)地址生成器和可編程計算單元。
21.根據(jù)權(quán)利要求10所述的通用多功能加速器,進一步被配置成基于所述指令中的地址域?qū)?yīng)于將被執(zhí)行的運算的運算對象的起始地址傳遞至所述本地數(shù)據(jù)地址生成器。
22.根據(jù)權(quán)利要求10所述的通用多功能加速器,進一步被配置成基于所述指令中的地址域?qū)⒈粓?zhí)行的運算產(chǎn)生的結(jié)果的初始目的地址傳遞至所述本地數(shù)據(jù)地址生成器。
23.根據(jù)權(quán)利要求10所述的通用多功能加速器,進一步被配置成基于所述指令中的配置參數(shù)域?qū)⒛J叫盘柾ㄟ^所述指令解碼器傳遞至所述本地數(shù)據(jù)地址生成器和所述可編程計算單元。
24.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成基于所述指令中的運算碼域接收對應(yīng)于將被執(zhí)行的運算的控制信號。
25.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成基于從所述指令解碼器獲得的控制信號來計算所述指令所需的多個運算對象的地址。
26.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成從所述指令解碼器接收所述運算對象的起始地址。
27.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成基于從所述指令解碼器獲得的所述運算對象的起始地址來計算所述指令所需的多個運算對象的地址。
28.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成從所述指令解碼器接收所述結(jié)果的初始目的地址。
29.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成基于來自所述指令解碼器的初始目的地址來計算所述指令所需的多個結(jié)果的目的地址。
30.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成從所述指令解碼器接收模式信號。
31.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,本地數(shù)據(jù)地址生成器進一步被配置成基于所述模式信號計算所述指令所需的多個運算對象的地址和多個結(jié)果的目的地址。
32.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成計算如執(zhí)行所述運算碼中指定的運算所需的處于任何任意階的運算對象的地址。
33.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述本地數(shù)據(jù)地址生成器進一步被配置成基于所述配置參數(shù)計算用以執(zhí)行由所述指令指定的運算所需的處于任何任意階的運算對象的地址。
34.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述系統(tǒng)數(shù)據(jù)地址生成器進一步被配置成計算所述本地存儲器中的位置的對應(yīng)于所述系統(tǒng)總線上的地址的地址。
35.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述系統(tǒng)數(shù)據(jù)地址生成器進一步被配置成通過將系統(tǒng)存儲器地址轉(zhuǎn)換成本地存儲器地址促進所述本地存儲器塊作為存儲器的一個單元向所述系統(tǒng)總線呈現(xiàn)。
36.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成執(zhí)行包括執(zhí)行由所述指令指定的運算所需的算術(shù)運算和邏輯運算的組合的多項計笪
ο
37.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成執(zhí)行為由預(yù)先定義的應(yīng)用的不同的算法使用的中間階層運算的多項計算。
38.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成執(zhí)行為多個運算對象上的中間階層運算的多個并行計算。
39.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成基于所述指令中的運算碼域接收對應(yīng)于將被執(zhí)行的運算的控制信號。
40.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,可配置處理單元進一步被配置成基于從所述指令解碼器接收的控制信號執(zhí)行多項計算。
41.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成從所述指令解碼器接收模式信號。
42.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成基于所述控制信號和從所述指令解碼器接收的模式信號執(zhí)行多項計算。
43.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成從所述本地存儲器接口接收多個運算對象以執(zhí)行多項計算。
44.根據(jù)權(quán)利要求10所述的通用多功能加速器,其中,所述可配置處理單元進一步被配置成將所述運算的多個結(jié)果傳遞至所述本地存儲器接口。
【文檔編號】G06F9/38GK104364755SQ201380026108
【公開日】2015年2月18日 申請日期:2013年5月7日 優(yōu)先權(quán)日:2012年5月19日
【發(fā)明者】維努·坎達戴 申請人:維努·坎達戴