欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理器中的可再配置邏輯的制作方法

文檔序號(hào):6566758閱讀:306來源:國知局
專利名稱:處理器中的可再配置邏輯的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及處理器(例如數(shù)據(jù)處理器),其中與處理器的處理元件相 關(guān)聯(lián)的邏輯功能適合于被再配置。
背景技術(shù)
在處理器領(lǐng)域中,存在可用的許多可再配置結(jié)構(gòu)。這些結(jié)構(gòu)包含純
可再配置硬件,例如FPGA (現(xiàn)場(chǎng)可編程門陣列)、可再配置的ALU陣 列(例如Elixent的"D-Fabrix"系統(tǒng))或"制造時(shí)間(fab-time)"可再 配置處理器(例如由ARC和Tensilica制造的那些處理器)。還存在組合 解決方案,例如包含標(biāo)準(zhǔn)CPU核心的FPGA或包含某種可再配置邏輯的 處理器。所有這些方法均具有許多優(yōu)點(diǎn)和缺點(diǎn)。
嘗試提供若干程度的可再配置性的現(xiàn)有技術(shù)處理器可分為以下類

例如由ARC和Tensilica制造的那些處理器可在設(shè)計(jì)時(shí)間配置,其 中用戶選擇各種參數(shù)(例如寄存器數(shù)目)和選項(xiàng)(例如DSP指令)。這 些處理器中的一些還可擴(kuò)展,§卩,提供端口 (或總線)以連接由特殊指 令存取或控制的用戶定義的硬件。應(yīng)注意,這些結(jié)構(gòu)不是可再配置的。 其僅可在創(chuàng)建硬件時(shí)配置一次。其不可接著再定向到另一應(yīng)用程序。 FPGA和例如Elixent的較高級(jí)可再配置結(jié)構(gòu)是可再配置的,但需要硬件 設(shè)計(jì)技術(shù)。軟件應(yīng)用程序必須隨著硬件設(shè)計(jì)而再編碼。
現(xiàn)有的組合處理器與可再配置邏輯的結(jié)構(gòu)多數(shù)將處理器與FPGA封 裝在一起而不將FPGA完全集成到處理器結(jié)構(gòu)中。 一個(gè)例外是Stretch結(jié) 構(gòu),其將可再配置的數(shù)據(jù)路徑添加到Tensilica處理器以提供指令集擴(kuò)展。 在此情況下,可再配置邏輯是高度并行的,以便在處理數(shù)據(jù)時(shí)提供高級(jí) 性能。這增加了可配置邏輯塊的大小、功率消耗和配置復(fù)雜性。
所有這些技術(shù)基本上都是可經(jīng)配置以執(zhí)行不同功能的硬件解決方 案。這意味著必須使用硬件設(shè)計(jì)方法、語言和工具來定義其功能。不僅 軟件開發(fā)者不熟悉這些設(shè)計(jì)技術(shù),而且這些設(shè)計(jì)技術(shù)也不容易與現(xiàn)有的 軟件工具集成。可配置單元到處理器的耦合通常處于API層,其中程序編譯和FPGA配置具有完全獨(dú)立且極為不同的工具鏈。 發(fā)明內(nèi)容本發(fā)明以用簡單常規(guī)方式擴(kuò)展現(xiàn)有結(jié)構(gòu)的方式向現(xiàn)有處理器添加可 再配置邏輯。這使得可再配置邏輯更容易由標(biāo)準(zhǔn)編程語言存取和使用。因此本發(fā)明提供一種數(shù)據(jù)處理器,其包括處理元件陣列,所述陣列 中的每一元件均包括各自的可再配置邏輯單元,借此可隨意地再配置每 一處理元件的邏輯能力。本發(fā)明以與例如算術(shù)邏輯單元(ALU)的現(xiàn)有功能單元完全相同的 方式提供可配置邏輯與處理器的更緊密的集成。通過以SIMD方式在處 理元件陣列上分布少量可配置邏輯,縮短了配置(和再配置)所花費(fèi)的 時(shí)間??赏ㄟ^提供常用函數(shù)的庫來解決定義可配置邏輯的問題。而且, 因?yàn)榭稍倥渲眠壿媰H用于實(shí)施單一基本函數(shù)(指令或指令群組)且因?yàn)?在處理元件結(jié)構(gòu)中已定義數(shù)據(jù)來源和目的地,所以將所述功能定義為硬 件的任務(wù)減少許多,且因此更經(jīng)得起由軟件自動(dòng)完成??膳渲眠壿媶卧?CLU)的函數(shù)由用戶定義(或許通過庫)、或由編 譯工具(通常為某個(gè)算法的內(nèi)部循環(huán))自動(dòng)定義。在任一方法中,都將 新的指令引入到編譯程序以顯著加速頻繁使用的操作。CLU向處理器的緊密集成及其到寄存器文件的標(biāo)準(zhǔn)化連接使得基 于對(duì)0/0++應(yīng)用程序源代碼的分析進(jìn)行自動(dòng)配置成為可能。可通過對(duì)應(yīng) 用程序軟件的已由用戶標(biāo)記的計(jì)算密集部分進(jìn)行編譯程序分析而將定制 指令自動(dòng)并入到處理器中。與基于ASIC和FPGA的解決方案相比,此 定制指令的自動(dòng)化實(shí)施有希望大大縮短應(yīng)用程序開發(fā)時(shí)間。重要的是了解,本發(fā)明并不依賴于本身已知的用于分析軟件(源代
碼和目標(biāo)代碼兩者)的技術(shù)和用于產(chǎn)生硬件(或者同樣的,用于配置可 再配置邏輯的數(shù)據(jù))的技術(shù)。
本發(fā)明提供顯著的益處,例如較高的性能、單一處理器結(jié)構(gòu)可經(jīng)優(yōu) 化/定向以用于不同應(yīng)用程序的事實(shí),以及所述結(jié)構(gòu)可保持簡單的編程模 型的事實(shí)。
代替在處理器外部的單一較大的可再配置邏輯塊,我們的方法將少 量可再配置邏輯(CLU)集成在陣列中的每個(gè)處理元件內(nèi)。系統(tǒng)的性能
來自于并行使用大量的這些PE (ProcessingElement,處理元件)。
申請(qǐng)人的現(xiàn)有處理器已具有高度并行的結(jié)構(gòu)。因此僅必需對(duì)此進(jìn)行 擴(kuò)展以能夠在可配置邏輯中實(shí)施相對(duì)簡單的功能性,例如實(shí)施在硬件中 通常將需要若干微碼步驟的指令。較簡單/較小的可配置邏輯塊意味著將 其添加到每個(gè)PE是可行的。接著可在硬件中實(shí)施影響特定應(yīng)用程序的 性能的關(guān)鍵指令,而不會(huì)有提供用于在其它應(yīng)用程序中未使用的指令的 固定硬件的硬件開銷。舉例來說,許多DSP (Digital Signal Processing, 數(shù)字信號(hào)處理)應(yīng)用需要"飽和"算術(shù),其中原本將溢出(或下溢)的 計(jì)算"粘滯"在最大(或最小)值。在硬件中添加此額外功能性將存在 開銷,且增加了非DSP應(yīng)用的成本。在微碼中實(shí)施此功能性將對(duì)每個(gè)算 術(shù)指令添加若干循環(huán),從而不利地影響性能。
代替通過寫入微碼添加新的指令,而將功能實(shí)施在可配置硬件中。 目前從功能的高級(jí)描述產(chǎn)生微碼的相同工具可經(jīng)修改以從相同的高級(jí)描 述產(chǎn)生配置數(shù)據(jù)。
可針對(duì)系統(tǒng)(在引導(dǎo)時(shí)間)、針對(duì)應(yīng)用程序(在運(yùn)行時(shí)間)或動(dòng)態(tài)地 (例如,在線程切換時(shí)或在程序控制下)配置CLU。由于明確定義的接 口、控制和功能,配置將需要用戶了解極少的或不需要用戶了解硬件設(shè) 計(jì)或FPGA工具鏈。
可在許多應(yīng)用領(lǐng)域配置和使用并入有CLU的處理器。在某些情況 下,產(chǎn)生更加高度優(yōu)化的實(shí)施方案可能是經(jīng)濟(jì)的。在此情況下,處理
的CLU型式可用作開發(fā)和評(píng)估平臺(tái),以準(zhǔn)確確定在硬件中直接實(shí)施哪些 功能是最佳的。 一旦知道其結(jié)果,就可用更有效的實(shí)施方案來代替CLU, 所述實(shí)施方案在固定硬件中僅實(shí)施所需要的功能。


現(xiàn)將參看以下圖式描述本發(fā)明,其中 圖1展示典型的PE陣列;圖2是展示功能單元的處理元件(PE)的示意方框圖,所述功能單 元中的一者可為可配置邏輯單元(CLU);圖3是可如何通過從RAM中進(jìn)行選擇來實(shí)現(xiàn)再配置的示意表示;以及圖4是可如何通過使用微碼來實(shí)現(xiàn)再配置的示意表示。
具體實(shí)施方式
圖1描繪一般處理器1,其連接到存儲(chǔ)器2并經(jīng)由控制路徑和雙向 數(shù)據(jù)路徑連接到協(xié)處理器或FPGA3。所述協(xié)處理器或FPGA可經(jīng)配置以 便在上文引言部分中論述的層級(jí)處產(chǎn)生可配置處理器。眾所周知許多算法的專用加速適合FPGA結(jié)構(gòu),事實(shí)上許多算法經(jīng) 設(shè)計(jì)以首先配合到小件硬件中。這些算法己轉(zhuǎn)譯為軟件并形成較小的計(jì) 算內(nèi)部循環(huán)(通常極度優(yōu)化)。這些密集的內(nèi)部循環(huán)當(dāng)映射回到(可配置) 硬件上時(shí)其處理速度可展示為加快若干數(shù)量級(jí)。圖2示意說明處理元件4。其是陣列中許多處理元件之一,且因此 被視為第n個(gè)PE,在圖中標(biāo)記為PEn。所述陣列可以是SIMD陣列。PE 4包含I/O單元5、局域存儲(chǔ)器6、寄存器文件7和算術(shù)邏輯單元 (ALU) 8的通常聯(lián)合。PE 4由控制邏輯單元9指揮。外部存儲(chǔ)器10 經(jīng)由1/0單元5與PE4界接。ALU單元8緊密耦合到寄存器文件7。來 自寄存器文件7的操作數(shù)連接到ALU以執(zhí)行如控制單元9指示的功能, 且將結(jié)果反饋到寄存器文件中??膳渲眠壿媶呜l (CLU)以與例如ALU8和浮點(diǎn)單元(FPU) 12
等其它功能單元相同的方式緊密耦合到PE的寄存器文件7。 MAC單元 (未圖示)可以與其它單元相同的方式連接。CLU 11經(jīng)設(shè)計(jì)以配置為用 戶定義的邏輯功能,其通常對(duì)應(yīng)于某一算法的內(nèi)部循環(huán)內(nèi)的單一指令。 一旦CLU已經(jīng)過配置,其就以與其它功能單元相同的方式被使用;例如, 以與微碼指令控制寄存器文件與ALU (或FPU)之間的數(shù)據(jù)傳遞以及 ALU (或FPU)執(zhí)行特定功能相同的方式。數(shù)據(jù)和指令路徑在圖中用各個(gè)箭頭表示。CLU以標(biāo)準(zhǔn)方式連接到寄 存器文件,即輸入和輸出具有固定寬度和固定位置??蓪⒁恍┩ㄓ媚康?微碼位饋入到所有CLU中。這可用于配置CLU以及控制經(jīng)配置的CLU。當(dāng)將此緊密集成到PE 4中時(shí),CLU配置和編程模型可與常規(guī)編譯 工具箱集成,因?yàn)檫@形成一種加速新的指令的方法。這是可能ft,因?yàn)閿?shù)據(jù)流入和流出CLU是明確界定的且限于較小數(shù) 目的選擇,因此大大簡化了 CLU的編程。這種簡化使得編譯程序可以分 析較小內(nèi)部循環(huán)的數(shù)據(jù)流曲線圖,并確定應(yīng)在可再配置硬件中實(shí)施什么 功能。此數(shù)據(jù)流曲線圖作為新的指令直接映射到CLU邏輯上。這意味著編程人員可能相對(duì)不了解加速器的結(jié)構(gòu)(或甚至其存在), 且因此性能加速實(shí)現(xiàn)起來更加直接。圖3和4說明可對(duì)CLU進(jìn)行再配置的方式的兩個(gè)不同形式。圖3 屮,更詳細(xì)展示控制邏輯9。其包含指令取得與解碼單元13和微碼單元 14。這些單元13和14控制CLU 15,并另外將指令提供到配置數(shù)據(jù)單元 16。其優(yōu)選地是存儲(chǔ)有一組配置數(shù)據(jù)的較小的RAM,可通過使用線程 ID來調(diào)用所述配置數(shù)據(jù)以促使CLU 15再配置成預(yù)先加載于RAM 16屮 的預(yù)定數(shù)目的配置中的任一者。這種方案的主要優(yōu)點(diǎn)之一是,從控制邏 輯到RAM的指令集口r簡單許多,且因此實(shí)行起來更快。以此方式,可以選自保存在RAM 16屮的預(yù)定義函數(shù)(或指令)的"庫"的配置來加 載CLU 15??捎删幊倘藛T或由編澤工具基于對(duì)應(yīng)用的需求的分析來明確 地完成此操作。 圖4展示用于再配置CLU15的替代技術(shù)。此處,用于CLU再配置 的指令源自微碼RAM 14,其含有微碼以擴(kuò)展來自控制邏輯9的指令。 將配置數(shù)據(jù)和控制指令直接饋入到CLU以實(shí)施再配置。該圖還以虛線展 示,其它微碼RAM 17和CLU 18可在相同控制邏輯9的控制下操作。因?yàn)镃LU較小且需要少量配置數(shù)據(jù),所以可非??焖俚?例如,隨 著線程切換)完成CLU的配置。由于配置和編程模型是數(shù)據(jù)并行的,所 以可同時(shí)配置所有PE中的所有CLU。因此將了解,CLU的配置和控制均是經(jīng)由正常的微碼指令實(shí)現(xiàn)的。 配置數(shù)據(jù)可直接保存在微碼存儲(chǔ)器中;在此情況下,特殊標(biāo)記的微碼字 直接用作配置數(shù)據(jù)?;蛘撸珻LU配置數(shù)據(jù)可保存在專用于所述目的的存 儲(chǔ)器中;需要時(shí),在微碼指令的控制下將此數(shù)據(jù)加載到CLU中。這種配 置數(shù)據(jù)存儲(chǔ)器可以是所有PE所共同的,或者可復(fù)制在每一PE上。后者 需要用存儲(chǔ)器的更多區(qū)域(盡管其減小路由信號(hào)所需的區(qū)域),但將實(shí)現(xiàn) 較快的再配置。因此,系統(tǒng)具有兩個(gè)層級(jí)的微碼控制 一個(gè)配置CLU,另一個(gè)控制 CLU并將數(shù)據(jù)提供到CLU (以逐個(gè)指令為基礎(chǔ))。通常,配置數(shù)據(jù)將在 處理器"引導(dǎo)"時(shí)被加載到微碼存儲(chǔ)器中;其接著可用于視需要而加載 到CLU中。由于CLU是依據(jù)微碼指令配置的,所以程序執(zhí)行與配置可 能存在進(jìn)一步的重疊;即,在使用另一功能單元的周期期間,可將配置 數(shù)據(jù)加載到CLU中。可存在另外層級(jí)的配置,其受共同配置存儲(chǔ)器(其中從一系列配置 屮選擇特定的配置)控制或在程序控制下直接由PE本身控制。這允許可能基于對(duì)每一 PE的有條件估計(jì)而以不同方式來配置每一 CLU。這意味著,定向到CLU的特定指令操作碼可對(duì)每一PE執(zhí)行不同 功能,因此擺脫傳統(tǒng)SIMD編程模型的嚴(yán)格限制。概括來說,可在載入時(shí)間或在運(yùn)行時(shí)間(例如,在線程切換時(shí))快 速且并行地配置所有CLU。所有CLU可在程序控制下由其PE同時(shí)配置 /修改。不同的PE可以不同方式(在運(yùn)行時(shí)間確定)配置其CLU,使得 相同的操作碼實(shí)施不同功能,借此擺脫嚴(yán)格SIMD模型的限制。最后, 可通過PE在運(yùn)行時(shí)間從微碼存儲(chǔ)器中的許多配置中選擇特定的配置來 配置CLU。盡管在以上實(shí)施例中,本發(fā)明既存在ALU又存在CLU,但有可能 在適當(dāng)指示時(shí)CLU可經(jīng)配置以模仿ALU?;蛘撸珹LU可用于執(zhí)行非飽 和算術(shù)且CLU可被保留用于執(zhí)行飽和算術(shù)。
權(quán)利要求
1.一種數(shù)據(jù)處理器,其包括處理元件陣列,所述陣列中的每一元件均包括各自的可再配置邏輯單元,借此可隨意地再配置每一處理元件的邏輯能力。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理器,其進(jìn)一步包括適合于預(yù)先加載配置指令的存儲(chǔ)器構(gòu)件,借此可從所述被預(yù)先加載的存儲(chǔ)器構(gòu)件中自 動(dòng)排序每一處理元件的配置狀態(tài)。
3. 根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理器,其中所述存儲(chǔ)器構(gòu)件包括 RAM。
4. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理器,其中所述RAM對(duì)于每一處 理元件來說是局域的。
5. 根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理器,其中所述處理元件適合于再 配置為不同狀態(tài),使得不同處理元件的可配置邏輯單元實(shí)施不同的功能。
6. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理器,其中所述RAM對(duì)于所有所 述處理元件來說是全域的,使得所有處理元件均適合于經(jīng)再配置以同時(shí) 執(zhí)行相同功能。
7. 根據(jù)權(quán)利要求4或權(quán)利要求6所述的數(shù)據(jù)處理器,其中所有所述 可配置邏輯單元均適合于在加載時(shí)間或在運(yùn)行時(shí)間并行配置。
8. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理器,其中所有所述可配置邏輯單 元均適合于在線程切換時(shí)配置。
9. 根據(jù)權(quán)利要求7或權(quán)利要求8所述的數(shù)據(jù)處理器,其中所有所述 可配置邏輯單元均適合于在程序控制下由其自身各自的處理元件同時(shí)配 置/修改。
10. 根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理器,其中所有所述可配置邏輯單 元均適合于通過其自身各自的處理元件在運(yùn)行時(shí)間從微碼存儲(chǔ)器中的許 多配置中選擇特定配置來配置。
11. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理器,其中所有所述可配置邏輯單 元均適合于響應(yīng)于在編譯時(shí)間從預(yù)定義函數(shù)庫中進(jìn)行選^f—來配置。
12. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理器,其中所有所述可配置邏輯單 元均適合于按如下方式配置響應(yīng)于在編譯時(shí)間由編譯工具從對(duì)應(yīng)用程 序的分析中所作出的創(chuàng)建來配置。
13. 根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的數(shù)據(jù)處理器,其中所述 處理器為SIMD處理器。
14. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理器,其中每一所述處理元件進(jìn)一步包括算術(shù)邏輯單元。
15. 根據(jù)權(quán)利要求14所述的數(shù)據(jù)處理器,其中所述可配置邏輯單元 適合于執(zhí)行飽和算術(shù),且所述算術(shù)邏輯單元適合于執(zhí)行非飽和算術(shù)。
16. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述可配置邏輯單元適 合于模仿算術(shù)邏輯單元。
17. —種大體上如本文參看圖式所描述的數(shù)據(jù)處理器。
全文摘要
一種數(shù)據(jù)處理器包括處理元件(PEn 4)陣列,所述陣列中的每一元件均包括各自的可再配置邏輯單元(CLU 11),借此可隨意地再配置每一處理元件的邏輯能力??梢詫⑴渲弥噶铑A(yù)先加載到存儲(chǔ)器(14,圖3、4未圖示),借此可從所述被預(yù)先加載的存儲(chǔ)器中自動(dòng)排序每一處理元件的配置狀態(tài)。所述存儲(chǔ)器可為全域的,在此情況下CLU可經(jīng)并行再配置以執(zhí)行相同功能。或者,所述存儲(chǔ)器對(duì)于每一處理元件來說可為局域的,使得不同的CLU實(shí)施不同的功能。可在程序控制下在線程切換時(shí)實(shí)行配置。每一各自的處理元件可在運(yùn)行時(shí)從微碼存儲(chǔ)器中的許多配置中選擇特定配置。所述處理器優(yōu)選為SIMD處理器。
文檔編號(hào)G06F15/78GK101133409SQ200680006803
公開日2008年2月27日 申請(qǐng)日期2006年2月23日 優(yōu)先權(quán)日2005年3月3日
發(fā)明者雷蒙德·馬克·馬克尼爾 申請(qǐng)人:Clear-Speed科技公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
蒲江县| 乌什县| 夏津县| 来凤县| 安阳县| 广平县| 铜鼓县| 葵青区| 府谷县| 分宜县| 改则县| 钦州市| 修文县| 郑州市| 望谟县| 徐闻县| 铜陵市| 都江堰市| 金山区| 西乌珠穆沁旗| 桃源县| 浮山县| 襄城县| 建宁县| 枞阳县| 丰台区| 湾仔区| 易门县| 界首市| 当雄县| 凌海市| 绵阳市| 若尔盖县| 濉溪县| 山阴县| 萨迦县| 康定县| 花莲县| 吴旗县| 柳江县| 五寨县|