專利名稱:集成電路裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種集成電路裝置,在其中可重新配置數(shù)據(jù)流。
背景技術(shù):
當(dāng)CPU等對(duì)保存在存儲(chǔ)器如RAM,ROM或磁盤中的數(shù)據(jù)和/或指令(下面稱為“數(shù)據(jù)”,在此沒有十分必要區(qū)分“指令”與“數(shù)據(jù)”)進(jìn)行處理時(shí),使用具有較小容量、稱為“高速緩存(cache)”或“高速緩沖存儲(chǔ)器(cache memory)”的高速存儲(chǔ)器,并利用數(shù)據(jù)的時(shí)間局部性和/或空間局部性提高數(shù)據(jù)訪問速度。因此,在包含處理器或處理器核心(processor core)的諸如VLSI,系統(tǒng)LSI或系統(tǒng)ASIC的集成電路裝置中,還包含有包括高速緩沖存儲(chǔ)器的高速緩存系統(tǒng)以及控制高速緩沖存儲(chǔ)器的MMU(內(nèi)存管理單元,Memory Management Unit)。
當(dāng)使用高速緩沖存儲(chǔ)器時(shí),使用MMU和TLB(變換后援緩沖器,Translation Look-Aside Buffer),以便當(dāng)高速緩沖存儲(chǔ)器中具有從CPU核心輸出的與虛擬地址或邏輯地址相對(duì)應(yīng)的數(shù)據(jù)時(shí),在高速緩沖存儲(chǔ)器與CPU核心之間輸入和輸出數(shù)據(jù)。當(dāng)高速緩沖存儲(chǔ)器中沒有數(shù)據(jù)時(shí),MMU和TLB將虛擬地址轉(zhuǎn)換成物理地址,并為外部存儲(chǔ)器(external memory)產(chǎn)生輸入/輸出,同時(shí)還更新高速緩沖存儲(chǔ)器中的數(shù)據(jù)。通過這種方式,由于包括MMU等在內(nèi)的高速緩沖存儲(chǔ)控制機(jī)制,將高速緩沖存儲(chǔ)器設(shè)計(jì)成對(duì)于CPU核心執(zhí)行的軟件透明的裝置。因此,可以開發(fā)出基于虛擬地址,不依賴于硬件進(jìn)行操作的軟件,這可以縮短軟件開發(fā)設(shè)計(jì)所花費(fèi)的時(shí)間和費(fèi)用。而且,同一軟件可以在不同硬件上運(yùn)行,這意味著可有效利用軟件資源。
當(dāng)高速緩沖存儲(chǔ)器中沒有從CPU核心輸出的在虛擬地址處的數(shù)據(jù)時(shí),也就是說,當(dāng)高速緩沖存儲(chǔ)器未“命中(hit)”時(shí),則對(duì)外部存儲(chǔ)器進(jìn)行輸入/輸出處理。當(dāng)高速緩沖存儲(chǔ)器的命中率較低時(shí),高速緩沖存儲(chǔ)器只不過成為對(duì)程序執(zhí)行時(shí)間造成不利影響的開銷。為了提高命中率,針對(duì)諸如將高速緩存分成指令高速緩存和數(shù)據(jù)高速緩存,用分級(jí)結(jié)構(gòu)構(gòu)成高速緩存,或者通過機(jī)械和/或使用軟件預(yù)取數(shù)據(jù)的技術(shù)進(jìn)行了研究。
不過,當(dāng)使用分為指令高速緩存和數(shù)據(jù)高速緩存的高速緩存時(shí),如果指令和數(shù)據(jù)同時(shí)存在于一個(gè)塊中,則難以處理指令和數(shù)據(jù)。例如,重寫指令有可能干擾軟件處理。而且,在指令和數(shù)據(jù)不均衡訪問的軟件中,簡(jiǎn)單分割高速緩存不能提高效率。例如,當(dāng)偶爾訪問數(shù)據(jù)時(shí),數(shù)據(jù)高速緩存的使用率較低,以至于可能會(huì)造成系統(tǒng)開銷。
在高速緩存與外部存儲(chǔ)器之間當(dāng)訪問時(shí)間與存儲(chǔ)容量上存在較大差異時(shí),分級(jí)高速緩存是有效的。不過,當(dāng)分級(jí)構(gòu)成高速緩存時(shí),必然會(huì)增大對(duì)存儲(chǔ)器的訪問量,從而系統(tǒng)開銷常常取決于諸如用于所處理數(shù)據(jù)的指令和輸入/輸出介質(zhì)的條件。
即使實(shí)現(xiàn)預(yù)取(profetching),也不能避免由于分支指令(branch instruction)所帶來的性能損失。在某些種類軟件中,例如算術(shù)計(jì)算程序,其中對(duì)數(shù)組元素進(jìn)行多次訪問,并且可以事先預(yù)測(cè)被訪問的元素,可使用預(yù)取指令減少高速緩存損失量,不過這種預(yù)取指令的執(zhí)行會(huì)消耗CPU時(shí)間,從而該技術(shù)可有效用于有限范圍的軟件。
通過這種方式,在諸如由CPU執(zhí)行的軟件和保存數(shù)據(jù)的介質(zhì)的條件與使用高速緩存的所選方法相匹配的情形中,上述技術(shù)均能提高高速緩存的命中率。然而,由于高速緩沖存儲(chǔ)器是設(shè)置在CPU與外部存儲(chǔ)器之間中間位置處的硬件,當(dāng)待執(zhí)行軟件的處理內(nèi)容與對(duì)該軟件所要處理的數(shù)據(jù)進(jìn)行保存的硬件環(huán)境之間存在差異時(shí),可以引發(fā)如不能獲得預(yù)測(cè)高速緩存效率的問題,反而造成系統(tǒng)消耗,這增大了處理器的執(zhí)行時(shí)間。對(duì)于專用于某一應(yīng)用的處理器而言,可以提供一種最佳的高速緩存系統(tǒng)。不過,對(duì)于設(shè)計(jì)成具有一定程度通用性的處理器而言,為保證高速緩存物有所值,必須提供一種不會(huì)造成過多系統(tǒng)開銷的高速緩存系統(tǒng),哪怕高速緩存系統(tǒng)本身的效率并不特別高。從而,即使提供高速緩存系統(tǒng),性能的改善也并非特別顯著。
本發(fā)明的一個(gè)目的在于提供一種集成電路裝置,該集成電路裝置包括可用作高速緩存的存儲(chǔ)器,該存儲(chǔ)器對(duì)于處理器所執(zhí)行軟件的處理內(nèi)容和硬件環(huán)境而言具有最高可能的效率。本發(fā)明的另一目的在于提供一種包括控制功能的集成電路裝置,該控制功能可將存儲(chǔ)器用作具有最高可能效率的高速緩存。本發(fā)明的再一目的是提供一種能更有效地執(zhí)行多種軟件的集成電路裝置。
發(fā)明內(nèi)容
近年來,已提出在其中至少可以部分改變數(shù)據(jù)通路(path)或數(shù)據(jù)流配置的處理單元。FPGA(現(xiàn)場(chǎng)可編程門陣列)是一種相同結(jié)構(gòu)的邏輯元件或邏輯塊以陣列形式排列,并可改變其邏輯的集成電路裝置,利用它可改變這些元件或塊之間的互連,從而改變數(shù)據(jù)通路的結(jié)構(gòu)。此外還對(duì)使用相同結(jié)構(gòu)的根據(jù)指令集執(zhí)行多種處理的中型基本功能單元有可能改變數(shù)據(jù)通路結(jié)構(gòu)的集成電路裝置進(jìn)行了研究。本發(fā)明的申請(qǐng)人開發(fā)出一種處理單元,包括(i)多種類型專用處理元件,每種類型專用元件各自具有適于不同專用處理的內(nèi)部數(shù)據(jù)通路,和(ii)用于連接這些專用處理元件的布線組。在本發(fā)明中,使用一部分這類處理單元構(gòu)成控制高速緩存的電路,其中可以改變或重新配置數(shù)據(jù)流。
也就是說,根據(jù)本發(fā)明的集成電路裝置包括第一存儲(chǔ)器,用于將數(shù)據(jù)輸入第二存儲(chǔ)器和/或從第二存儲(chǔ)器輸出;和處理單元,在其中形成至少一個(gè)數(shù)據(jù)流,且其中所述至少一個(gè)數(shù)據(jù)流的至少一部分是可變的,該處理單元包括數(shù)據(jù)處理部分,對(duì)從第一存儲(chǔ)器輸入的和/或輸出到第一存儲(chǔ)器的數(shù)據(jù)進(jìn)行處理;第一地址輸出部分,將第一存儲(chǔ)器與數(shù)據(jù)處理部分之間輸入和/或輸出數(shù)據(jù)的第一地址輸出;以及第二地址輸出部分,將第一存儲(chǔ)器與第二存儲(chǔ)器之間輸入和/或輸出數(shù)據(jù)的第二地址輸出。通過使用部分可改變數(shù)據(jù)流的處理單元,使用數(shù)據(jù)處理部分的硬件結(jié)構(gòu)或數(shù)據(jù)處理部分中所執(zhí)行的軟件,構(gòu)成第一地址輸出部分和第二地址輸出部分,可以改變第一地址輸出部分或第二地址輸出部分的數(shù)據(jù)流,并控制這些部分的輸出。從而,可以在該集成電路裝置中對(duì)于集成電路裝置所執(zhí)行處理配置最佳的高速緩存系統(tǒng)設(shè)計(jì)。或者,可以在集成電路裝置中配置用于高速緩存的控制電路,以便針對(duì)集成電路裝置所執(zhí)行的處理對(duì)高速緩存系統(tǒng)而言進(jìn)行最佳控制。
利用本發(fā)明的集成電路裝置,可通過第二存儲(chǔ)器中的第二地址被動(dòng)地控制用作高速緩存的第一存儲(chǔ)器。第二地址不僅包括在第二存儲(chǔ)器中數(shù)據(jù)的物理地址,而且還包括可轉(zhuǎn)換成物理地址的邏輯地址或虛擬地址。通過這種控制,可以使第一存儲(chǔ)器對(duì)于第二存儲(chǔ)器和/或數(shù)據(jù)處理部分透明。此外,根據(jù)來自數(shù)據(jù)處理部分和/或第一地址輸出部分的數(shù)據(jù)或信號(hào),第二地址輸出部分可獨(dú)立于數(shù)據(jù)處理部分和第一地址輸出部分主動(dòng)地控制數(shù)據(jù)的輸入和輸出。還可以控制與數(shù)據(jù)處理部分和第一地址輸出部分操作并行的,在第一存儲(chǔ)器和第二存儲(chǔ)器之間的輸入/輸出操作。因此,有可能配置這樣一種高速緩存系統(tǒng)其中通過第二地址輸出部分來決定數(shù)據(jù)處理部分和第一地址輸出部分所使用數(shù)據(jù)的訪問位置,這樣不僅可以構(gòu)造出對(duì)于CPU透明的傳統(tǒng)高速緩存,還可以構(gòu)造出對(duì)處理單元中的處理進(jìn)行控制的高速緩存。
也就是說,構(gòu)造傳統(tǒng)高速緩存結(jié)構(gòu),以便提供一種能對(duì)操作在采用標(biāo)準(zhǔn)硬件結(jié)構(gòu)諸如CPU核心或DSP核心的處理結(jié)構(gòu)上軟件提高執(zhí)行速度的統(tǒng)一、透明的接口。另一方面,在本發(fā)明的集成電路中,通過使用諸如在其中可以改變數(shù)據(jù)通路自身結(jié)構(gòu)的FPGA的體系結(jié)構(gòu),可以提供作為核心的數(shù)據(jù)處理部分,并由此,高速緩存結(jié)構(gòu)動(dòng)態(tài)地改變成對(duì)于數(shù)據(jù)處理部分中的配置和由數(shù)據(jù)處理部分配置所執(zhí)行的軟件來說最佳的結(jié)構(gòu)。從而,無需一直保持統(tǒng)一性或透明,可對(duì)作為核心或執(zhí)行單元的數(shù)據(jù)處理部分提供與傳統(tǒng)高速緩存完全不同的接口或服務(wù)。
以此方式,通過本發(fā)明的集成電路裝置,根據(jù)硬件環(huán)境和處理單元所執(zhí)行軟件的處理內(nèi)容,第一存儲(chǔ)器可以最大效率地用作高速緩存。當(dāng)執(zhí)行多個(gè)軟件時(shí),可以構(gòu)造出能產(chǎn)生更高命中率的高速緩存系統(tǒng),從而可提供一種當(dāng)執(zhí)行多種軟件時(shí)對(duì)高速緩存的輸入/輸出不會(huì)產(chǎn)生系統(tǒng)開銷的集成電路裝置。
作為一個(gè)示例,當(dāng)數(shù)據(jù)處理部分執(zhí)行的數(shù)據(jù)在第二存儲(chǔ)器中的地址已知時(shí),可使用第一存儲(chǔ)器中的剩余空間,單獨(dú)通過第二地址輸出部分預(yù)取數(shù)據(jù)。因此,可將數(shù)據(jù)預(yù)取入被硬件或軟件用作高速緩存的第二存儲(chǔ)器中,軟件控制第二地址輸出部分,而不會(huì)耗費(fèi)數(shù)據(jù)處理部分的處理時(shí)間。在此示例中,從第一地址輸出部分輸出第一存儲(chǔ)器中的地址作為第一地址,第一存儲(chǔ)器中的地址不僅包括第一存儲(chǔ)器中的物理地址,而且還包括可以轉(zhuǎn)換成第一存儲(chǔ)器中物理地址的虛擬地址或邏輯地址,從第二地址輸出部分輸出第二存儲(chǔ)器中的地址作為第二地址,第二存儲(chǔ)器中的地址不僅包括第一存儲(chǔ)器中的物理地址,而且還包括可轉(zhuǎn)換成物理地址的虛擬地址或邏輯地址。在數(shù)據(jù)處理部分中,對(duì)硬件或軟件進(jìn)行配置,以便在使用作為高速緩存的第一存儲(chǔ)器中的地址之前預(yù)先進(jìn)行處理。
此外,第二地址輸出部分最好能與數(shù)據(jù)處理部分和/或第一地址輸出部分異步操作,即獨(dú)立進(jìn)行操作。由此,可通過獨(dú)立于數(shù)據(jù)處理部分的并行處理,預(yù)取數(shù)據(jù)。為了獨(dú)立且并行地處理第二存儲(chǔ)器的輸入和輸出,最好對(duì)第一存儲(chǔ)器提供多個(gè)存儲(chǔ)部分,如多個(gè)存儲(chǔ)區(qū)(memory bank),可對(duì)每個(gè)存儲(chǔ)區(qū)異步或獨(dú)立地進(jìn)行輸入和輸出。
還可以對(duì)第二地址輸出部分進(jìn)行配置,以便僅通過第二地址輸出部分,或者通過第二地址輸出部分與數(shù)據(jù)處理部分的組合,基于第一存儲(chǔ)器中的數(shù)據(jù)輸出第二地址。通過這種配置,可通過不加限制的間接尋址執(zhí)行數(shù)據(jù)處理。
對(duì)于起到高速緩存作用的第一存儲(chǔ)器最好包括保存輸入到數(shù)據(jù)處理部分中的數(shù)據(jù)的第一輸入存儲(chǔ)器,和保存從數(shù)據(jù)處理部分輸出的數(shù)據(jù)的第一輸出存儲(chǔ)器。由此,可以獨(dú)立控制在數(shù)據(jù)處理部分中所形成數(shù)據(jù)流的輸入和輸出。第一存儲(chǔ)器中的地址從第一地址輸出部分輸出,不過在第一存儲(chǔ)器中沒有空間來保存與第一地址相對(duì)應(yīng)的數(shù)據(jù)或者沒有與第一地址相對(duì)應(yīng)的數(shù)據(jù)時(shí),在數(shù)據(jù)處理部分中形成的數(shù)據(jù)流處理過程中有可能出現(xiàn)失效。為此,最好提供第一仲裁單元,來管理在第一存儲(chǔ)器與數(shù)據(jù)處理部分之間的輸入和/或輸出。
在不滿足數(shù)據(jù)處理部分的輸入或輸出條件時(shí),如沒有與第一地址相對(duì)應(yīng)的數(shù)據(jù),或者沒有用于保存與第一地址相對(duì)應(yīng)數(shù)據(jù)的空間時(shí),第一仲裁單元可以具有向數(shù)據(jù)處理部分輸出停止信號(hào)(stop signal)的功能。數(shù)據(jù)處理部分還可以具有根據(jù)停止信號(hào)在數(shù)據(jù)處理部分中對(duì)數(shù)據(jù)通路或數(shù)據(jù)流進(jìn)行配置,以停止至少一個(gè)數(shù)據(jù)通路或數(shù)據(jù)流的處理的功能,從而可以通過第一仲裁單元開啟或關(guān)閉數(shù)據(jù)通路或數(shù)據(jù)流。有可能很容易地實(shí)現(xiàn)這樣的控制使形成在數(shù)據(jù)處理部分中的數(shù)據(jù)通路或數(shù)據(jù)流,在第一次等待之后開始操作,直至準(zhǔn)備好所要處理的數(shù)據(jù)。
如果第一存儲(chǔ)器包括第一輸入存儲(chǔ)器和第一輸出存儲(chǔ)器,則最好提供用于管理從第一輸入存儲(chǔ)器向數(shù)據(jù)處理部分傳輸數(shù)據(jù)的第一輸入仲裁單元,和用于管理從數(shù)據(jù)處理部分向第一輸出存儲(chǔ)器傳輸數(shù)據(jù)的第一輸出仲裁單元,作為第一仲裁單元。有可能獨(dú)立于輸入側(cè)和輸出側(cè)對(duì)數(shù)據(jù)處理部分中所形成的數(shù)據(jù)流進(jìn)行控制。
當(dāng)?shù)谝淮鎯?chǔ)器包含多個(gè)能獨(dú)立進(jìn)行輸入和輸出的存儲(chǔ)部分時(shí),第一仲裁單元可具有獨(dú)立管理多個(gè)存儲(chǔ)部分的功能。在這種情形中,可根據(jù)相應(yīng)存儲(chǔ)部分的狀態(tài),通過第一仲裁單元獨(dú)立控制在數(shù)據(jù)處理部分中形成的多個(gè)數(shù)據(jù)流中的每一個(gè)。另一方面,第一仲裁單元可具有管理相關(guān)的多個(gè)存儲(chǔ)部分或者彼此相互聯(lián)系的多個(gè)存儲(chǔ)部分的功能。由此,易于實(shí)現(xiàn)這樣的控制使在數(shù)據(jù)處理部分中形成的數(shù)據(jù)流對(duì)從外部存儲(chǔ)器輸入到預(yù)定存儲(chǔ)部分中的處理數(shù)據(jù)予以優(yōu)先級(jí),并使通過預(yù)定存儲(chǔ)部分輸出到外部存儲(chǔ)器數(shù)據(jù)流的輸出的予以優(yōu)先級(jí)。
此外,當(dāng)在數(shù)據(jù)處理部分中可配置多個(gè)數(shù)據(jù)流時(shí),最好提供多個(gè)第一存儲(chǔ)器,在處理單元中與各個(gè)第一存儲(chǔ)器相對(duì)應(yīng)來配置一對(duì)第一和第二地址輸出部分。通過適當(dāng)配置數(shù)據(jù)處理部分和第一地址輸出部分,可以構(gòu)造出多級(jí)或分級(jí)高速緩存。并且,根據(jù)集成電路裝置所執(zhí)行的程序,可以將多個(gè)第一存儲(chǔ)器進(jìn)行分割,并用作指令高速緩存和數(shù)據(jù)高速緩存,且當(dāng)提供有多個(gè)數(shù)據(jù)處理部分時(shí),多個(gè)第一存儲(chǔ)器可用于對(duì)這些數(shù)據(jù)處理部分處理的數(shù)據(jù)進(jìn)行高速緩存,并可通過第二地址輸出部分適當(dāng)控制由各個(gè)第一存儲(chǔ)器所緩存的數(shù)據(jù)。
當(dāng)提供有多個(gè)第二地址輸出部分時(shí),最好應(yīng)提供用于管理第二存儲(chǔ)器與多個(gè)第一存儲(chǔ)器之間輸入和輸出的第二仲裁單元,且最好對(duì)第二仲裁單元提供第二地址。當(dāng)?shù)诙鎯?chǔ)器為外部存儲(chǔ)器時(shí),本發(fā)明的集成電路裝置可以通過與傳統(tǒng)集成電路裝置相同的方式訪問外部存儲(chǔ)器。此外,在同一芯片上形成第二存儲(chǔ)器的集成電路裝置中,通過提供第三地址輸出裝置,可以分級(jí)構(gòu)造高速緩存,其中第三地址輸出裝置用于輸出在第三存儲(chǔ)器與第二存儲(chǔ)器之間輸入和/或輸出數(shù)據(jù)的第三地址,從而可以在第二存儲(chǔ)器與第三存儲(chǔ)器之間輸入和/或輸出數(shù)據(jù)。也就是說,如果第三存儲(chǔ)器為外部存儲(chǔ)器,則高速緩存可以由第一和第二存儲(chǔ)器組成。第三地址輸出裝置可以為傳統(tǒng)的高速緩存控制單元,如MMU,但第三地址輸出裝置也可以具有與第二地址輸出裝置相同的結(jié)構(gòu)。還存在對(duì)第四或更高級(jí)存儲(chǔ)器進(jìn)行控制的情形(不限于ROM和RAM,可以包括多種類型的存儲(chǔ)介質(zhì),如磁盤)。
在其中數(shù)據(jù)流可以改變或重新配置的處理單元,可以包括一類包括多個(gè)相同類型邏輯元件以及連接這些邏輯元件的一組布線的處理單元,其中多個(gè)邏輯元件的功能可以改變,即上述的FPGA;和另一類處理單元,在該處理單元中可使用相同結(jié)構(gòu)的中型基本功能單元改變數(shù)據(jù)通路設(shè)置或數(shù)據(jù)流。還可以使用另一種不同類型的處理單元,該處理單元包括(i)多種類型的專用處理元件,每種專用處理元件包括分別適合于不同專用處理的內(nèi)部數(shù)據(jù)通路,和(ii)用于連接這些專用處理元件的布線。通過這類可重新配置的處理單元,可以采用專用處理元件,其中專用處理元件包括適于輸出地址的內(nèi)部數(shù)據(jù)通路,從而提高用于生成地址的處理效率,并可進(jìn)一步提高處理速度。此外,由于減少了多余電路元件數(shù)量減少,可以減少選擇用于改變數(shù)據(jù)流的元件數(shù)量,還改善AC性質(zhì),并且可以增大空間效率。
因此,通過使指示出在處理單元中至少一部分?jǐn)?shù)據(jù)流發(fā)生改變的控制單元,執(zhí)行通知處理單元構(gòu)造上述數(shù)據(jù)處理部分、第一地址輸出部分和第二地址輸出部分的處理,可在較短時(shí)間內(nèi)靈活、動(dòng)態(tài)地改變數(shù)據(jù)流。這有可能提供一種包括靈活高速緩存系統(tǒng)的小型、經(jīng)濟(jì)的集成電路裝置。
為了便于在處理單元中改變數(shù)據(jù)流,除了改變專用處理元件之間的連接以外,最好還應(yīng)包括(i)用于選擇專用處理元件的部分內(nèi)部數(shù)據(jù)通路的裝置,和(ii)用于保存內(nèi)部數(shù)據(jù)通路選擇的配置存儲(chǔ)器。通過重寫配置存儲(chǔ)器的內(nèi)容,或者通過指示出處理單元中至少部分?jǐn)?shù)據(jù)流的改變,控制單元可以重新配置數(shù)據(jù)流。如果處理單元包括專用處理元件,則控制單元可以異步和獨(dú)立地指示出數(shù)據(jù)處理部分,第一地址輸出部分,或第二地址輸出部分中數(shù)據(jù)流的改變。在將數(shù)據(jù)輸入第一存儲(chǔ)器或從第一存儲(chǔ)器輸出時(shí),可以使用包括數(shù)據(jù)處理部分和/或第一地址輸出部分的專用處理元件來配置用于另一用途的數(shù)據(jù)流。相反,當(dāng)數(shù)據(jù)處理部分在執(zhí)行處理時(shí),可使用第二地址輸出部分的專用處理元件來控制不同的存儲(chǔ)器,或者用于不同目的,從而可以靈活、高效地利用處理單元的資源。
通過采用用于保存使控制單元執(zhí)行上述處理的程序代碼的代碼存儲(chǔ)器,有可能構(gòu)造一種如單片系統(tǒng)LSI的集成電路裝置。從而,有可能提供執(zhí)行速度得到提高的集成電路裝置,其中對(duì)于多種類型軟件可以有效使用高速緩存,而不會(huì)導(dǎo)致產(chǎn)生系統(tǒng)開銷。還可能提供一種可重新配置數(shù)據(jù)流的處理單元,作為一個(gè)單獨(dú)的芯片,作為處理器核心,或者座位在其中還包含用作高速緩存的第一存儲(chǔ)器的芯片。通過這種方式,可以通過多種方式實(shí)施本發(fā)明,與這樣的實(shí)施例相對(duì)應(yīng)的處理裝置也包含在本發(fā)明范圍之內(nèi)。
圖1為表示根據(jù)本發(fā)明實(shí)施例的集成電路裝置結(jié)構(gòu)的方塊圖。
圖2表示作為處理單元的AAP結(jié)構(gòu)。
圖3表示矩陣單元的結(jié)構(gòu)。
圖4表示適于輸出地址的處理的數(shù)據(jù)通路部分的示例。
圖5表示如圖4所示數(shù)據(jù)通路部分的地址產(chǎn)生器的結(jié)構(gòu)。
圖6表示如圖5所示計(jì)數(shù)器的結(jié)構(gòu)。
圖7表示與圖5所示不同的地址產(chǎn)生器的結(jié)構(gòu)。
圖8表示如何將大容量RAM作為外部存儲(chǔ)器進(jìn)行控制。
圖9表示如何將大容量RAM和外圍設(shè)備作為外部存儲(chǔ)器進(jìn)行控制。
圖10表示如何將多個(gè)大容量RAM和外圍設(shè)備作為外部存儲(chǔ)器進(jìn)行控制。
圖11表示根據(jù)本發(fā)明的不同集成電路裝置,如何將大容量RAM作為外部存儲(chǔ)器進(jìn)行控制。
具體實(shí)施例方式
下面將參照附圖描述本發(fā)明。圖1表示根據(jù)本發(fā)明的系統(tǒng)LSI 10的總體結(jié)構(gòu)。LSI 10是包括處理單元11,AAP(AdoptiveApplication Processor)部分或單元(下面稱作AAP)20,中斷控制單元12,時(shí)鐘產(chǎn)生單元13,F(xiàn)PGA單元14,和總線控制單元15的數(shù)據(jù)處理系統(tǒng)。處理單元11(下面稱作“基本處理器(basicprocessor)”或“處理器”)具有通用結(jié)構(gòu),并基于程序等提供的指令集執(zhí)行通用處理,包括誤差處理。在AAP單元20中,通過設(shè)置成矩陣的多個(gè)操作或邏輯元件可變地形成適于專用數(shù)據(jù)處理的數(shù)據(jù)流或虛擬數(shù)據(jù)流。中斷控制單元12對(duì)于來自AAP 20的中斷控制中斷處理。時(shí)鐘產(chǎn)生單元13向AAP 20提供操作時(shí)鐘信號(hào)。FPGA單元14還改善LSI 10可實(shí)現(xiàn)的操作電路的靈活性。總線控制單元15控制去往和來自外圍設(shè)備的輸入和輸出。FPGA單元14為設(shè)置在LSI 10外圍的FPGA芯片的接口,并在后面將其稱作“offchip FPGA(片外FPGA)”和“FPGA”。在本發(fā)明的集成電路裝置LSI 10中,基本處理器11和AAP 20通過數(shù)據(jù)總線17和指令總線18相連,在數(shù)據(jù)總線17上數(shù)據(jù)可以在基本處理器11與AAP 20之間交換,指令總線使基本處理器11能控制AAP 20的配置和操作。而且,中斷信號(hào)從AAP 20經(jīng)由信號(hào)線19提供給中斷控制單元12,并且當(dāng)結(jié)束AAP 20的處理或這樣的處理期間發(fā)生錯(cuò)誤時(shí),將AAP 20的狀態(tài)反饋給基本處理器11。
AAP 20和FPGA 14通過數(shù)據(jù)總線21連接,以使數(shù)據(jù)從AAP 20提供到FPGA 14,在FPGA 14處進(jìn)行處理,然后將結(jié)果返回到AAP20。此外,AAP 20通過載入總線22(load bus)和存儲(chǔ)總線23與總線控制單元15相連,從而可以與LSI 10外部的數(shù)據(jù)總線交換數(shù)據(jù)。因此,AAP 20可以接收從外部DRAM 2或另一裝置輸入的數(shù)據(jù),并將在AAP 20中對(duì)該數(shù)據(jù)所產(chǎn)生的處理結(jié)果輸出回外部裝置?;咎幚砥?1還可以通過數(shù)據(jù)總線11a和總線控制單元15,從和向外部裝置輸入和輸出數(shù)據(jù)。
圖2表示APP單元20的大致結(jié)構(gòu)。本發(fā)明實(shí)施例的AAP單元20包括,矩陣單元或部件28,其中執(zhí)行算術(shù)和/或邏輯操作的多個(gè)邏輯塊,邏輯單元和/或邏輯元件(后面稱作“元件”)設(shè)置成矩陣;將數(shù)據(jù)提供給矩陣單元28的輸入緩沖器26;和保存從矩陣單元28輸出的數(shù)據(jù)的輸出緩沖器27。輸入緩沖器26和輸出緩沖器27分別包括四個(gè)小容量輸入存儲(chǔ)器(RAM)26a至26d和四個(gè)輸出存儲(chǔ)器(RAM)27a至27d。AAP 20還包括外部訪問仲裁單元(第二仲裁單元)25,外部訪問仲裁單元控制(i)總線控制單元15與(ii)包括多個(gè)存儲(chǔ)器的輸入緩沖器26和輸出緩沖器27之間的輸入/輸出操作。
本發(fā)明的輸入RAM 26a至26d和輸出RAM 27a至27d,分別起到1K字節(jié)的雙端口RAM的作用,并且每一個(gè)可以用作64k位寬、512字節(jié)深的雙存儲(chǔ)區(qū)RAM(dual bank RAM)81和82。從而,通過使用不同存儲(chǔ)區(qū)用于存儲(chǔ)器的輸入和輸出,有可能單獨(dú)處理輸入和輸出。還設(shè)置對(duì)于RAM 81和82的輸入和輸出進(jìn)行管理的仲裁單元85(第一仲裁單元),并且有可能通過統(tǒng)計(jì)輸入和輸出次數(shù)檢查各存儲(chǔ)器是滿還是空。
為控制輸入到輸入RAM 26a至26d以及從RAM 27a至27d輸出的數(shù)據(jù)輸入和輸出,在(i)矩陣單元28與(ii)RAM和仲裁單元85之間交換多種類型的控制信號(hào)。首先,將用于對(duì)由矩陣單元28從輸入RAM 26a至26d讀出的數(shù)據(jù)進(jìn)行控制的16位輸入讀地址數(shù)據(jù)(“ira”或“第一地址”)輸出到各輸入RAM 26a至26d。輸入讀地址61為輸入RAM 26a至26d中的邏輯或物理地址。并且,將用于根據(jù)滿和/或空狀態(tài)控制地址數(shù)據(jù)61供應(yīng)的輸入讀地址停止信號(hào)(“ira_stop”)從每個(gè)輸入RAM 26a至26d的仲裁單元85輸出至矩陣單元28。當(dāng)對(duì)于矩陣單元28的輸入條件不滿足時(shí),例如當(dāng)沒有與自矩陣單元28提供的地址數(shù)據(jù)61相對(duì)應(yīng)的數(shù)據(jù)時(shí),還從仲裁單元85輸出輸入讀地址停止信號(hào)62。
在矩陣單元28中,通過停止信號(hào)62開啟和關(guān)閉在矩陣單元28中形成的數(shù)據(jù)流。因此,在矩陣單元28中已經(jīng)配置數(shù)據(jù)流之后所執(zhí)行的執(zhí)行過程中,輸入RAM 26a至26d的仲裁單元85可分別控制由數(shù)據(jù)流所限定的處理的執(zhí)行。如果在輸入RAM 26中不存在與輸入讀地址數(shù)據(jù)61相對(duì)應(yīng)的數(shù)據(jù),則將對(duì)數(shù)據(jù)流的處理轉(zhuǎn)變成等待狀態(tài)。相反,如果在輸入RAM 26中存在與輸入讀地址數(shù)據(jù)61相對(duì)應(yīng)的數(shù)據(jù),則將32位的輸入讀出數(shù)據(jù)(“ira”)63提供給矩陣單元28,由配置的數(shù)據(jù)流進(jìn)行處理,并輸出到其中一個(gè)輸出RAM 27。并且,從矩陣單元28將控制輸入讀出數(shù)據(jù)63的停止信號(hào)(“ird_stop”)輸出給各輸入RAM 26a至26d,以便當(dāng)例如由于輸出端的原因?qū)е峦V乖诰仃噯卧?8中的數(shù)據(jù)流操作時(shí),停止數(shù)據(jù)讀出。
各個(gè)輸入RAM 26a至26d的仲裁單元85基本上獨(dú)立控制各輸入RAM 26a至26d。從而,對(duì)于每一個(gè)輸入RAM 26a至26d,分別控制和執(zhí)行在矩陣單元28與輸入RAM 26a至26d之間的數(shù)據(jù)交換,使得獨(dú)立控制在矩陣單元28中形成的與輸入RAM 26a至26d相對(duì)應(yīng)的數(shù)據(jù)流。下面所述的輸出RAM 26a至26d也存在這種情形。另一方面,可以通過輸入RAM 26a至26d之間的布線,或者通過經(jīng)由矩陣單元28的布線連接輸入RAM 26a至26d的仲裁單元85,以便能夠彼此相關(guān)或聯(lián)系地管理多個(gè)輸入RAM 26a至26d。通過對(duì)RAM 26a至26d進(jìn)行相關(guān)管理,有可能對(duì)矩陣單元28中配置的數(shù)據(jù)流指派多個(gè)輸入RAM。通過使用仲裁單元85為多個(gè)輸入RAM 26a至26d附加優(yōu)先級(jí),還可能對(duì)執(zhí)行針對(duì)數(shù)據(jù)流對(duì)來自RAM的數(shù)據(jù)提供高優(yōu)先級(jí)的控制。
此外,從各輸入RAM 26a至26d單元中的矩陣單元28輸出,對(duì)從外部存儲(chǔ)器2經(jīng)過總線控制單元15讀出和寫入各輸入RAM 26a至26d的數(shù)據(jù)進(jìn)行控制的32位輸入寫地址數(shù)據(jù)(“iwa”或“第二地址”)65,以及可指示輸入數(shù)據(jù)的數(shù)據(jù)類型等的4位控制信號(hào)(“iwd_type”)66。輸入寫地址數(shù)據(jù)65和與各輸入RAM 26a至26d相對(duì)應(yīng)的控制信號(hào)66,均輸出到外部訪問仲裁單元25。輸入寫地址數(shù)據(jù)65為RAM 2中的物理地址,其中RAM 2為外部存儲(chǔ)器;或者是與RAM 2中的物理地址相對(duì)應(yīng)的邏輯或虛擬地址。根據(jù)這些地址,將分別控制地址數(shù)據(jù)65輸出的停止信號(hào)(“iwa_stop”)67從外部訪問仲裁單元25提供給矩陣單元28。
此外,與提供給外部訪問仲裁單元25的輸入寫地址數(shù)據(jù)65相對(duì)應(yīng)的64位輸入寫地址數(shù)據(jù)(“iwd”)68,分別從仲裁單元25提供給各輸入RAM 26a至26d,并且將控制輸入寫數(shù)據(jù)68的停止信號(hào)(“iwd_stop”)69,從每個(gè)輸入RAM 26a至26d提供給外部訪問仲裁單元25。
為控制自矩陣單元28的輸出,將用于對(duì)從矩陣單元28讀出并寫入每個(gè)輸出RAM中的數(shù)據(jù)進(jìn)行控制的16位輸出寫地址數(shù)據(jù)(“owa”或“第一地址”)71輸出至每個(gè)輸出RAM 27a至27d。此輸出寫地址數(shù)據(jù)71為每個(gè)輸出RAM 27a至27d中的邏輯或物理地址?;跐M和/或空狀態(tài)控制地址數(shù)據(jù)71供應(yīng)的輸出寫地址停止信號(hào)(“owa_stop”)72,從各個(gè)輸出RAM 27a至27d的仲裁單元85提供給矩陣單元28。也就是說,當(dāng)不滿足對(duì)于接收自矩陣單元28輸出的條件時(shí),從仲裁單元85輸出輸出寫地址停止信號(hào)72。在矩陣單元28中,通過停止信號(hào)72開啟和關(guān)閉在矩陣單元28中配置的數(shù)據(jù)流,從而控制由數(shù)據(jù)流所限定的處理的執(zhí)行。如果在輸出RAM 27中存在空間,則將32位輸出寫數(shù)據(jù)(“owd”)73與輸出寫地址數(shù)據(jù)71一起從矩陣單元28輸出。從各輸出RAM 27a至27d的仲裁單元85,將控制輸出寫地址數(shù)據(jù)73的停止信號(hào)(“owd_stop”)提供給矩陣單元28。
并且,從輸出RAM 27a至27d的單元中的矩陣單元28,輸出用于對(duì)從各輸入RAM 26a至26d經(jīng)由總線控制單元15讀出和寫入外部存儲(chǔ)器2中的數(shù)據(jù)進(jìn)行控制的32位輸出讀地址數(shù)據(jù)(“ora”或“第二地址”)75,以及可指示出該數(shù)據(jù)的數(shù)據(jù)類型等的4位控制信號(hào)(“ord_type”)76。輸出讀地址數(shù)據(jù)75和控制信號(hào)76均輸出至外部訪問仲裁單元25。輸出讀地址數(shù)據(jù)75為DRAM 2中的物理地址,其中DRAM 2為外部存儲(chǔ)器,或者為與DRAM 2中的物理地址相對(duì)應(yīng)的邏輯或虛擬地址。由此,將控制地址數(shù)據(jù)75輸出的停止信號(hào)(“ora_stop”)77從外部訪問仲裁單元25輸送至矩陣單元28。
此外,64位的輸出讀出數(shù)據(jù)(“ord”)78與輸出讀地址數(shù)據(jù)75一起,從各輸出RAM 26a至26d提供給外部訪問仲裁單元25,并將控制輸出讀出數(shù)據(jù)78的停止信號(hào)(“ord_stop”)79從外部訪問仲裁單元25提供給各輸出RAM 27a至27d。
通過本發(fā)明的AAP單元20,從作為外部存儲(chǔ)器2的接口的總線控制單元15,經(jīng)過多個(gè)輸入RAM 26a至26d和外部訪問仲裁單元25,提供矩陣28的輸入數(shù)據(jù)63。并且,將自矩陣單元28的輸出數(shù)據(jù)73,通過多個(gè)輸出RAM 27a至27d和外部訪問仲裁單元25,提供給作為外部存儲(chǔ)器2的接口的總線控制單元15。輸入RAM 26a至26d以及輸出RAM 27a至27d均具有雙存儲(chǔ)區(qū)結(jié)構(gòu),從而可能獨(dú)立且異步地并行執(zhí)行(a)在輸入RAM 26a至26d,輸出RAM 27a至27d和矩陣單元28之間的處理,以及(b)在輸入RAM 26a至26d,輸出RAM 27a至27d與外部訪問仲裁單元25之間的處理,也就是涉及外部RAM 2的處理。
在外部訪問仲裁單元25與總線控制單元15之間,設(shè)置分別包括32位地址總線和256位數(shù)據(jù)總線的載入總線22和存儲(chǔ)總線23,從而可以將數(shù)據(jù)高速地輸入和輸出塊單元。通過地址總線發(fā)送輸入地址信號(hào)22a和輸出地址信號(hào)23a,通過數(shù)據(jù)總線輸出輸入信號(hào)22b和輸出數(shù)據(jù)23b。還設(shè)置傳輸5位命令22c和23c的信號(hào)線,傳輸總線控制單元15的忙信號(hào)的信號(hào)線22d和23d的信號(hào)線,以及傳輸總線控制單元15的就序信號(hào)22e的信號(hào)線。
圖3表示包括本實(shí)施例矩陣單元28和小容量RAM 26a到26d以及27a到27d的AAP 20部分配置的結(jié)構(gòu)。在本發(fā)明中,矩陣單元28為與處理單元相對(duì)應(yīng)的系統(tǒng),在處理單元中可以對(duì)數(shù)據(jù)通路或數(shù)據(jù)流重新配置或改變。矩陣單元28包括多個(gè)作為操作單元的元件30,將這些元件30設(shè)置成陣列或矩陣,從而在豎直方向形成四行。在這些元件30之間,矩陣單元28還包括沿水平方向延伸的行布線組51,和沿垂直方向延伸的列布線組52。列布線組52包括一對(duì)布線組52x和52y,它們分別由處于操作單元30左側(cè)和右側(cè)沿列方向的布線組成,通過這些布線組52x和52y,將數(shù)據(jù)輸送給各個(gè)元件30。
交換單元55設(shè)置在行布線組51與列布線組52之間的交點(diǎn)處,通過每個(gè)交換單元55能將行布線組51的任何一條通道(channel)與列布線組52中的任何一條通道交換和連接。每個(gè)交換單元55包括保存設(shè)置的配置RAM(configuration RAM),并且通過根據(jù)自處理器單元11提供的數(shù)據(jù)重寫配置RAM的內(nèi)容,可以依照需要?jiǎng)討B(tài)控制行布線組51與列布線組52之間的連接。因此,在本實(shí)施例的矩陣單元28中,可以依照需要,通過連接布線組51與52動(dòng)態(tài)控制由多個(gè)元件30的全部或部分形成至少一個(gè)數(shù)據(jù)流的配置。
每個(gè)元件30包括,一對(duì)選擇器31,它們分別從一對(duì)列布線組52x和52y選擇輸入數(shù)據(jù);和內(nèi)部數(shù)據(jù)通路32,用于對(duì)所選擇的輸入數(shù)據(jù)“dix”和“diy”執(zhí)行指定算術(shù)和/或邏輯操作處理,并將輸出數(shù)據(jù)“do”輸出至行布線組51。具有內(nèi)部數(shù)據(jù)通路、執(zhí)行不同處理的元件30設(shè)置在本實(shí)施例矩陣單元28中不同行上。行布線組51和列布線組52還包括用于傳輸進(jìn)位信號(hào)的布線。進(jìn)位信號(hào)可用作表示進(jìn)位的信號(hào),或者作為表示真或假的信號(hào),并且在矩陣單元28中,可將這些進(jìn)位信號(hào)用于控制各元件30的算術(shù)操作和邏輯操作,并將結(jié)果傳輸給其他元件30。
首先,設(shè)置在第一行的元件30包括數(shù)據(jù)通路裝置32i,數(shù)據(jù)通路單元32I適用于自輸入緩沖器26接收數(shù)據(jù)的處理。如果這些用于載入操作的數(shù)據(jù)總線單元(“LD”)32i僅接收數(shù)據(jù)的輸入,則不需要邏輯門,簡(jiǎn)單地通過載入總線22接收數(shù)據(jù),并輸出給行布線組51。在矩陣單元28中,用于載入操作的數(shù)據(jù)通路單元32i均具有停止數(shù)據(jù)流處理的功能,當(dāng)從輸入RAM 26的RAM仲裁單元85接收停止信號(hào)時(shí),停止與將包括該數(shù)據(jù)通路單元32i的元件30相連的數(shù)據(jù)流的處理。并且,用于載入操作的數(shù)據(jù)通路單元32i還各自包括這樣的功能當(dāng)由于矩陣單元28中的內(nèi)部因素或外部因素而停止與包括數(shù)據(jù)通路單元32i的元件30連接的數(shù)據(jù)流時(shí),向相應(yīng)輸入RAM 26的仲裁單元85輸出停止信號(hào)64。
設(shè)置在第二行上的元件30a是用于將來自外部RAM 2的數(shù)據(jù)寫入輸入緩沖區(qū)26的輸入RAM 26a至26d中的元件,并相當(dāng)于第二地址輸出部分。因此,這些元件30均包括具有內(nèi)部數(shù)據(jù)通路、適于產(chǎn)生用于塊載入的地址(第二地址)的數(shù)據(jù)通路部分或單元32a。這種數(shù)據(jù)通路單元32a稱為BLA(背景載入地址產(chǎn)生器)。圖4表示數(shù)據(jù)通路單元32a包括有由計(jì)數(shù)器等組成的地址產(chǎn)生器38的一個(gè)示例,從該地址產(chǎn)生器38輸出的地址作為輸出信號(hào)“do”。輸出信號(hào)“do”通過行布線組51和列布線組52原樣輸送,或者該經(jīng)過其他元件30處理之后輸送給數(shù)據(jù)通路單元32,作為輸入信號(hào)“dix”或“diy”,由選擇器“SEL”選擇一個(gè)所提供的地址,并通過觸發(fā)器“FF”從矩陣單元28輸出到外部訪問仲裁單元25,作為輸入寫地址數(shù)據(jù)65。
與組成矩陣單元28的所有元件30一樣,產(chǎn)生這些地址的元件30包括用于設(shè)置地址產(chǎn)生器38和選擇器SEL狀態(tài)的配置RAM39。通過從基本處理器11發(fā)出的控制信號(hào)18設(shè)置配置RAM39中的數(shù)據(jù)。
圖5表示地址產(chǎn)生電路38的一個(gè)示例。該地址產(chǎn)生器38包括多個(gè)計(jì)數(shù)器38a和一個(gè)加法器38b,加法器38b對(duì)這些計(jì)數(shù)器38a的輸出進(jìn)行某些操作,并以地址的形式輸出結(jié)果。如圖6所示,每個(gè)計(jì)數(shù)器38a包括算術(shù)邏輯單元ALU38c與比較器38d的組合,利用其可在ALU38c中設(shè)定ADD,SUB,移位,OR,XOR,或這些操作的組合。計(jì)數(shù)器38a均具有用作功能產(chǎn)生電路的功能,每次時(shí)鐘信號(hào)上升時(shí)產(chǎn)生數(shù)值。可通過配置RAM39由處理器單元11設(shè)置計(jì)數(shù)器38a的功能。
可以通過另一計(jì)數(shù)器38a提供的進(jìn)位信號(hào)“cy”設(shè)置ALU38c的控制信號(hào)“en”,并可將比較器38d的輸出作為進(jìn)位信號(hào)“cy”發(fā)送給另一計(jì)數(shù)器38a。以此使用進(jìn)位信號(hào),可根據(jù)計(jì)數(shù)器38a的狀態(tài)設(shè)置另一計(jì)數(shù)器38a的狀態(tài),并能產(chǎn)生所需地址。此外,雖然圖中沒有示出,不過可以根據(jù)自另一元件30提供的進(jìn)位信號(hào)設(shè)置計(jì)數(shù)器38a的控制信號(hào)“en”,并且可將其發(fā)送給另一元件30。
將輸入寫地址數(shù)據(jù)65輸出的元件(BLA)30a具有包括地址產(chǎn)生電路38的數(shù)據(jù)通路單元32a的結(jié)構(gòu),地址產(chǎn)生電路38適于產(chǎn)生地址,利用其可以控制自處理器11經(jīng)由配置RAM39產(chǎn)生地址的處理內(nèi)容。還可以自由設(shè)置元件(BLA)30a如何與其他元件30相關(guān)。BLA32a中所包含的多個(gè)計(jì)數(shù)器38a為32位計(jì)數(shù)器,例如,能夠產(chǎn)生用于從外部存儲(chǔ)器2向作為本地存儲(chǔ)緩沖器的輸入RAM 26a至26b的DMA傳輸。
在圖3中設(shè)置在第三行的元件30b包括產(chǎn)生輸入讀地址61的數(shù)據(jù)通路單元32b,輸入讀地址61用于將所需數(shù)據(jù)從每個(gè)輸入RAM26a至26d載入矩陣單元28,數(shù)據(jù)通路單元32b相當(dāng)于第一地址輸出部分。數(shù)據(jù)通路單元32b稱為L(zhǎng)DA(寫入地址產(chǎn)生器)。這些數(shù)據(jù)通路單元32b的結(jié)構(gòu)基本與上述產(chǎn)生地址的數(shù)據(jù)通路單元32a的結(jié)構(gòu)相同,不過數(shù)據(jù)通路單元32b輸出16位地址,而不像數(shù)據(jù)通路單元32a那樣輸出32位地址。因此,數(shù)據(jù)通路單元32b的基本結(jié)構(gòu)如圖4所示。
圖7表示各LDA 32b中所包含的地址產(chǎn)生電路38的一個(gè)示例。該地址產(chǎn)生器38包括四個(gè)16位計(jì)數(shù)器38a,并產(chǎn)生用于將數(shù)據(jù)從作為本地存儲(chǔ)緩沖器的輸入RAM 26a至26b傳輸?shù)骄仃噯卧?8的地址。通過另一元件30提供的進(jìn)位信號(hào)“cy”可設(shè)置計(jì)數(shù)器38a的控制信號(hào)“en”,并且將其構(gòu)造成可將控制信號(hào)“en”傳輸給另一元件30。根據(jù)從該元件30輸出的輸入讀地址數(shù)據(jù)61,將數(shù)據(jù)從輸入RAM 26a至26d提供給矩陣單元28,在構(gòu)成矩陣單元28的另一邏輯或操作元件所執(zhí)行的某些操作中對(duì)該數(shù)據(jù)進(jìn)行處理。
設(shè)置在第四和第五行上的元件30c包括適于算術(shù)操作和邏輯操作的數(shù)據(jù)通路單元(“SMA”)32c。作為一個(gè)示例,這些數(shù)據(jù)通路單元32c包括移位電路,屏蔽電路,ALU和配置RAM39,配置RAM39用于對(duì)由ALU所要執(zhí)行的操作進(jìn)行設(shè)置。從而,根據(jù)處理器11寫入的指令,可對(duì)輸入數(shù)據(jù)“dix”和“diy”進(jìn)行諸如加、減、比較、邏輯與(AND)或邏輯或(OR)的操作,以輸出數(shù)據(jù)“do”的形式輸出結(jié)果。
設(shè)置在下一行上的元件30d包括適于處理數(shù)據(jù)傳輸時(shí)間延遲的數(shù)據(jù)通路單元(“DEL”)32d。作為一個(gè)示例,在這些數(shù)據(jù)通路單元32d中,設(shè)置由多個(gè)選擇器與觸發(fā)器FF的組合構(gòu)成的數(shù)據(jù)通路,并且令輸入數(shù)據(jù)“dix”和“diy”采用選擇器根據(jù)配置RAM39中的數(shù)據(jù)選擇出的路徑,將輸入數(shù)據(jù)“dix”和“diy”延遲所需的時(shí)鐘數(shù),然后作為輸出信號(hào)“dox”和“doy”輸出。
設(shè)置在下一行上的元件30e包括數(shù)據(jù)路徑單元(“MUL”)32e,數(shù)據(jù)路徑單元32e包括乘法器等,并適合于相乘運(yùn)算。還提供以包括作為在矩陣單元28外部設(shè)置有FPGA單元14的接口的數(shù)據(jù)通路單元32f的元件,作為另一種類或類型元件30f,這些元件30f能連續(xù)進(jìn)行這樣的處理向FPGA單元14提供數(shù)據(jù),并在處理之后將數(shù)據(jù)返回給矩陣單元28。
在與設(shè)置了上述類型元件的數(shù)據(jù)處理部分相對(duì)應(yīng)的區(qū)域下面,進(jìn)一步設(shè)置分別包括數(shù)據(jù)通路單元32g和32h的元件30g和30h,其中數(shù)據(jù)通路單元32g和32h適于產(chǎn)生存儲(chǔ)地址。這些數(shù)據(jù)通路單元32g和32a分別與在前面參照?qǐng)D4到7所述產(chǎn)生地址的數(shù)據(jù)通路單元32b和32a的結(jié)構(gòu)基本相同。包括有數(shù)據(jù)通路單元32g的元件30g為第一地址輸出部分,輸出用于將自矩陣單元28輸出的數(shù)據(jù)寫入輸出RAM27a至27d中的輸出寫地址71。從而,使用上述各類元件30c至30f,將來自數(shù)據(jù)處理系統(tǒng)輸出的數(shù)據(jù)寫入到輸出RAM 27a至27d中。各數(shù)據(jù)通路單元32g稱為STA(存儲(chǔ)地址產(chǎn)生器),并具有與LDA32b相同的結(jié)構(gòu)。
包括有數(shù)據(jù)通路單元32h并設(shè)置在這些元件(STA)30g下面的元件30h為第二地址輸出部分,并將用于從輸出RAM 27a至27d讀出數(shù)據(jù)的輸出讀地址75輸出,且將數(shù)據(jù)寫入外部RAM 2中,以便將矩陣單元28處理的數(shù)據(jù)寫入外部RAM 2中。各數(shù)據(jù)通路單元32h稱作BSA(背景存儲(chǔ)地址產(chǎn)生器),具有與BLA32a相同的結(jié)構(gòu)。
在最后一行上設(shè)置包含數(shù)據(jù)通路單元32s的元件30,其中數(shù)據(jù)通路單元32s適于輸出存儲(chǔ)的數(shù)據(jù)。這些數(shù)據(jù)通路單元32s稱作“ST”,通過它有可能將與數(shù)據(jù)通路單元32c具有基本相同結(jié)構(gòu)的數(shù)據(jù)通路單元用于進(jìn)行算術(shù)操作。此外,在本實(shí)施例中,用于輸出的每個(gè)數(shù)據(jù)通路單元32s具有停止數(shù)據(jù)流的處理的功能,當(dāng)從輸出RAM27的仲裁單元85接收停止信號(hào)74時(shí),停止與包含有數(shù)據(jù)通路單元32s的元件30相連的數(shù)據(jù)流的處理。
通過這種方式,本實(shí)施例的矩陣單元28包括元件30a和元件30b,其中元件30a具有產(chǎn)生用于將來自外部RAM 2的數(shù)據(jù)輸入提供到輸入RAM 26a至26d中的地址的內(nèi)部數(shù)據(jù)通路(BLA)32a,元件30b具有產(chǎn)生用于將數(shù)據(jù)從這些輸入RAM 26a至26d輸入提供到矩陣單元28中的地址的內(nèi)部數(shù)據(jù)通路(LDA)32b。矩陣單元28還包括元件30g和元件30h,其中元件30g具有產(chǎn)生用于將來自矩陣單元28的數(shù)據(jù)輸出到輸出RAM 27a至27d的地址的內(nèi)部數(shù)據(jù)通路(STA)32g,元件30h具有產(chǎn)生將輸出RAM 27a至27d中的數(shù)據(jù)輸出(塊寫入)輸出到外部RAM 2中的地址的內(nèi)部數(shù)據(jù)通路(BSA)32h。這些元件30a,30b,30g和30h均具有適合于產(chǎn)生上述地址的數(shù)據(jù)通路,利用它有可能通過將數(shù)據(jù)重寫到配置RAM39中而改變數(shù)據(jù)通路的配置和功能。還可以通過改變行布線組51與列布線組52的連接,改變與矩陣單元28中其他元件30的連接。因此,處理器11和/或在矩陣單元28中的其他元件30可以提供用于地址產(chǎn)生的數(shù)據(jù),并且可以靈活控制產(chǎn)生地址的時(shí)間。
通過這種方式,根據(jù)各種條件和/或結(jié)構(gòu),可以將從外部RAM 2和用作高速緩存的輸入RAM 26a至26d載入數(shù)據(jù)。細(xì)分該處理,還可以根據(jù)不同條件,將數(shù)據(jù)異步和/或獨(dú)立地從輸入RAM 26a至26d載入矩陣單元28中。此外,元件30a與30b是獨(dú)立的,從而可以并行執(zhí)行這些處理。因此,多個(gè)輸入RAM 26a至26d是可獨(dú)立執(zhí)行輸入和輸出的存儲(chǔ)部分。
由于每個(gè)輸入RAM 26a至26d具有雙存儲(chǔ)區(qū)結(jié)構(gòu),對(duì)于每個(gè)輸入RAM 26a至26d,可以并行執(zhí)行輸入和輸出,從而通過這種配置,可以極其有效地執(zhí)行數(shù)據(jù)向各輸入RAM 26a至26d的輸入和輸出。對(duì)于每個(gè)輸出RAM 27a至27d也具有相同情形,這些RAM也是可獨(dú)立執(zhí)行輸入和輸出的存儲(chǔ)區(qū),并且可以獨(dú)立、并行地執(zhí)行各輸出RAM 27a至27d的輸入和輸出。因此,在本系統(tǒng)中,對(duì)于起高速緩存作用的RAM 26a至26d以及27a至27d而言,可以極其有效地執(zhí)行數(shù)據(jù)的輸入和輸出。
本實(shí)施例的矩陣單元28包括具有數(shù)據(jù)通路單元32a,32b,32g和32h的基本適于地址產(chǎn)生的元件30a,30b,30g和30h,根據(jù)基本處理器11發(fā)出的指令來決定這些元件的操作。也就是說,根據(jù)通過控制總線18從作為控制單元的基本處理器11輸送的指令,決定用于訪問作為第一存儲(chǔ)器的RAM 26a至26d以及27a至27d,還決定用于訪問作為主存儲(chǔ)器(第二存儲(chǔ)器)的DRAM的電路。
此外,將用于控制訪問這些存儲(chǔ)器的電路設(shè)置為矩陣,以便在這些電路操作過程中極易直接或間接地反映出矩陣單元28內(nèi)部的狀態(tài),例如數(shù)據(jù)流的配置,數(shù)據(jù)流的處理配置,以及使用矩陣單元28其他元件的處理結(jié)果。元件30a,30b,30g和30h不僅適于產(chǎn)生地址,而且還用于通過布線51和52以與其他元件相同的方式,任意與矩陣單元28中的其他元件連線。由此,根據(jù)在矩陣單元28中形成數(shù)據(jù)處理部分的其他元件和/或由數(shù)據(jù)處理部分執(zhí)行的軟件所配置的數(shù)據(jù)流,通過改變?cè)?0a,30b,30g和30h的參數(shù)和/或處理內(nèi)容,可以自控制元件30a,30b,30g和30h的輸出。通過還使用除元件30a,30b,30g和30h以外的其他元件構(gòu)造數(shù)據(jù)流,還可以利用其他元件的功能產(chǎn)生地址。從而,可根據(jù)矩陣單元28內(nèi)部的條件,例如數(shù)據(jù)流的結(jié)構(gòu)和處理結(jié)構(gòu),靈活確定用于訪問作為組成高速緩存系統(tǒng)的第一存儲(chǔ)器的RAM 26a至26d以及27a至27d的訪問方法,以及用于訪問作為主存儲(chǔ)器(第二存儲(chǔ)器)的DRAM 2的訪問方法。
根據(jù)基本處理器11的控制可重新配置矩陣單元28,從而也可以動(dòng)態(tài)重新配置內(nèi)部數(shù)據(jù)通路和元件30a,30b,30g和30h的功能,而且還可以動(dòng)態(tài)重建與其他元件的連接。還可以提供指示重新配置在矩陣單元28內(nèi)部的元件內(nèi)或元件之間聯(lián)系的功能。當(dāng)根據(jù)矩陣單元28所執(zhí)行的處理內(nèi)容,通過改變與矩陣單元28中其他元件30的連接而重新設(shè)置數(shù)據(jù)流或數(shù)據(jù)通路的配置時(shí),還可以改變對(duì)由輸入RAM組成的緩沖區(qū)26和由輸出RAM組成的緩沖區(qū)27輸入和輸出數(shù)據(jù)的配置。
由此,可使用特別適合于由矩陣單元28對(duì)于輸入緩沖器26和輸出緩沖器27輸入和輸出數(shù)據(jù)的高速緩存系統(tǒng)執(zhí)行處理的配置,從而可提高高速緩存的命中率,并可減少高速緩存中數(shù)據(jù)重寫頻率。還可以在逐個(gè)元件的基礎(chǔ)上重新配置產(chǎn)生地址的元件內(nèi)容以及與這些元件有關(guān)的數(shù)據(jù)通路,并且分別對(duì)于每一個(gè)RAM 26a至26d以及27a至27d重新設(shè)置高速緩存系統(tǒng)。這使本發(fā)明極為靈活。從而,在從其他元件30將數(shù)據(jù)處理系統(tǒng)或系統(tǒng)在矩陣單元28中進(jìn)行配置之前,可以實(shí)現(xiàn)適合于對(duì)數(shù)據(jù)處理系統(tǒng)所要配置的數(shù)據(jù)輸入配置,并著手?jǐn)?shù)據(jù)載入。另一方面,在完成對(duì)其他處理重新配置數(shù)據(jù)處理系統(tǒng)之后,可以保持?jǐn)?shù)據(jù)輸出配置,用于連續(xù)輸出已經(jīng)重新配置的數(shù)據(jù)處理系統(tǒng)所處理的數(shù)據(jù)。由此,可以及其靈活地執(zhí)行傳統(tǒng)技術(shù)難以想象的處理。也就是說,可以根據(jù)所需獨(dú)立于其他元件和數(shù)據(jù)流,或者作為其他元件或數(shù)據(jù)流處理的一部分,對(duì)作為第一存儲(chǔ)器的RAM 26和27以及作為第二存儲(chǔ)器的DRAM 2執(zhí)行處理。還可以使產(chǎn)生地址的元件30a,30b,30g和30h進(jìn)行相關(guān)或協(xié)同操作,使多個(gè)元件30a和/或30b相關(guān)或協(xié)同操作,并使矩陣單元28將多個(gè)RAM 26用作單個(gè)高容量高速緩存。
并且,當(dāng)輸入RAM 26a變成空時(shí),元件30a有可能執(zhí)行將輸入寫地址65輸出,并將來自RAM 2的數(shù)據(jù)寫入的處理,同時(shí)在RAM26a中有數(shù)據(jù)時(shí),元件30b執(zhí)行將數(shù)據(jù)載入矩陣單元28中的處理??梢允乖?0a和30b獨(dú)立、并行地操作,從而可以將外部RAM 2中的數(shù)據(jù)預(yù)取入輸入RAM 26a中,而不會(huì)浪費(fèi)數(shù)據(jù)處理系統(tǒng)的處理時(shí)間。如果元件30a控制從外部RAM 2輸入數(shù)據(jù)的地址,則由元件30b和矩陣單元28組成的數(shù)據(jù)處理系統(tǒng)中,僅對(duì)內(nèi)部RAM 26a中的一個(gè)地址繼續(xù)進(jìn)行處理。如果使用矩陣單元28中的多個(gè)其他元件30定義數(shù)據(jù)流類型的處理系統(tǒng),則僅使用數(shù)據(jù),不使用地址繼續(xù)在矩陣單元28中的數(shù)據(jù)處理。
還可以配置一種系統(tǒng),其虛擬地址從矩陣單元28的數(shù)據(jù)處理系統(tǒng)輸出,元件30b將該虛擬地址轉(zhuǎn)換成輸入RAM 26a中的物理地址,并提供數(shù)據(jù),其中,通過元件30a將虛擬或物理地址轉(zhuǎn)換成外部RAM 2中物理地址,并且當(dāng)輸入RAM 26a中沒有數(shù)據(jù)時(shí),從外部RAM 2載入數(shù)據(jù)。
還可以配置一種系統(tǒng),其中,元件(BLA)30a由輸入RAM26b輸入的數(shù)據(jù)產(chǎn)生地址,該地址用于將數(shù)據(jù)從外部RAM 2載入到輸入RAM 26a中。從而,僅通過獨(dú)立于設(shè)置在矩陣單元28中的數(shù)據(jù)處理系統(tǒng)進(jìn)行輸入RAM 26和輸出RAM 27的輸出和輸出操作機(jī)制,可以實(shí)現(xiàn)完全間接尋址控制。通過將多個(gè)輸入RAM 26a至26d,輸出RAM 27a至27d,以及訪問仲裁單元25的操作聯(lián)系起來,還可以實(shí)現(xiàn)多級(jí)高速緩存系統(tǒng)。
本實(shí)施例的AAP 20具有與設(shè)置成四列的元件30相對(duì)應(yīng)的四個(gè)RAM 26a至26d,和四個(gè)輸出RAM 27a至27d。從而,輸入RAM26a至26d和輸出RAM 27a至27d,可以用作分別與由矩陣單元28中其他類型元件30配置的多個(gè)數(shù)據(jù)處理系統(tǒng)相對(duì)應(yīng)的單個(gè)高速緩存。當(dāng)矩陣單元28執(zhí)行多個(gè)任務(wù)和/或應(yīng)用時(shí),輸入RAM 26a至26d和輸出RAM 27a至27d可以分別用作對(duì)于這些任務(wù)和/或應(yīng)用而言最佳的高速緩存。元件30設(shè)置成四列,不過利用這些類元件30配置的數(shù)據(jù)處理系統(tǒng)不限于四個(gè)。如果矩陣單元28中配置三個(gè)或更少數(shù)據(jù)處理系統(tǒng),則通過將輸入RAM 26a至26d以及輸出RAM 27a至27d中的多個(gè)RAM指派給一個(gè)數(shù)據(jù)處理系統(tǒng),可以增加由一個(gè)數(shù)據(jù)處理系統(tǒng)所使用的高速緩存容量。當(dāng)配置五個(gè)或更多數(shù)據(jù)處理系統(tǒng)時(shí),將一個(gè)RAM指派給多個(gè)數(shù)據(jù)處理系統(tǒng),作為高速緩存。在這種情形中,在最壞情況下,可能發(fā)生在共享RAM的數(shù)據(jù)處理系統(tǒng)的新型CPU中,執(zhí)行用于多任務(wù)的高速緩存處理。
如圖8所示,作為本發(fā)明集成電路裝置或處理單元的系統(tǒng)LSI10,包括包含有矩陣部分或部件的配置或組件29,其中矩陣部分或部件為處理單元和小容量RAM,從矩陣部件輸出到外部RAM 2的地址經(jīng)由仲裁單元25提供給外部RAM 2。通過可重新配置數(shù)據(jù)流的矩陣端口實(shí)現(xiàn)對(duì)小容量RAM的進(jìn)出數(shù)據(jù)輸入和輸出進(jìn)行控制的機(jī)制,從而還可以對(duì)起到高速緩存作用的小容量RAM進(jìn)行控制的體系結(jié)構(gòu)重新配置,從而可以改變成對(duì)矩陣單元所執(zhí)行軟件而言最佳的結(jié)構(gòu)。因此,通過作為本發(fā)明集成電路裝置或處理單元的系統(tǒng)LSI 10,可將小容量RAM對(duì)于硬件環(huán)境和所要執(zhí)行軟件的處理內(nèi)容以最為有效的方式用作高速緩存。為了執(zhí)行多種軟件程序,可以將高速緩存和用于控制該高速緩存的電路配置成,能獲得更高命中率。因此,可以提供一種集成電路裝置或處理單元(系統(tǒng)LSI或ASIC),其中,為了執(zhí)行多種軟件,自高速緩存的輸入和輸出不會(huì)導(dǎo)致過載。
可由系統(tǒng)LSI 10控制的外部存儲(chǔ)器,即第二存儲(chǔ)器,不限于RAM。用作對(duì)于輸入RAM和/或輸出RAM的外部存儲(chǔ)器的裝置不限于諸如RAM,ROM,乃至硬盤驅(qū)動(dòng)器的存儲(chǔ)裝置,而是包括當(dāng)指出地址時(shí)能輸入或輸出數(shù)據(jù)的任何裝置。作為一個(gè)示例,如圖9所示,當(dāng)LSI 10作為外部存儲(chǔ)器控制大容量RAM 2和外圍裝置3,如打印機(jī)或顯示器時(shí),對(duì)矩陣單元28進(jìn)行塊載入的元件BLA30a和BSA30h可以產(chǎn)生賦予外圍裝置3的物理地址。
而且,如圖10所示,通過多個(gè)共線控制器控制可以提供多個(gè)大容量RAM 2和外圍設(shè)備3的LSI 10。在這種情形中,可以采用變型,如設(shè)置多個(gè)仲裁單元25。而且,大容量RAM 2可以設(shè)置在LSI10內(nèi)部,另外還可能采用將大容量RAM 2用作外圍設(shè)備3的高速緩存的結(jié)構(gòu)。大容量RAM 2還可以用作處理器11的代碼RAM。
上述說明描述了矩陣單元或元件28的一個(gè)結(jié)構(gòu)示例,不過本發(fā)明不限于這種結(jié)構(gòu)。在上述描述中,將包含專用數(shù)據(jù)通路32的操作元件描述為該元件,其中專用數(shù)據(jù)通路32適用于如地址產(chǎn)生,算術(shù)操作,邏輯操作,乘法和延遲的專用處理,不過數(shù)據(jù)通路的作用和其結(jié)構(gòu)不限于上面給出的示例。通過將包含具有某些適于LSI 10所執(zhí)行應(yīng)用程序的功能的數(shù)據(jù)通路的元件設(shè)置成矩陣或陣列,其中LSI 10為本發(fā)明的集成電路裝置或數(shù)據(jù)處理單元,可以提供在其中可改變或重新配置數(shù)據(jù)流的處理單元??梢詫?shí)現(xiàn)或設(shè)置多個(gè)矩陣單元28,將多個(gè)矩陣單元設(shè)置在相同平面或設(shè)置在三維空間中,從而可以構(gòu)造包含更大數(shù)量元件的集成電路裝置。并且,本發(fā)明的集成電路裝置不限于電路,可以適用于光路或光電路。
雖然以上通過在系統(tǒng)LSI 10中包含AAP 20,基本處理器11和總線控制單元15的示例描述了本發(fā)明,不過所提供作為一個(gè)芯片的元件類型取決于諸如所要實(shí)現(xiàn)的應(yīng)用等條件。還可以以單個(gè)芯片的形式提供AAP 20,或者可以將包括有RAM 26和27的部件29,和矩陣單元28封裝在單個(gè)芯片中,其中,部件29形成高速緩存。還可以提供除基本處理器11以外還包括多個(gè)AAP單元或其他專用電路的更大的系統(tǒng)LSI或ASIC。
如圖11所示,還可以使用PFGA取代矩陣單元28作為處理單元,實(shí)現(xiàn)本發(fā)明的集成電路裝置或處理單元,并且在FPGA中,為將輸入RAM 26和輸出RAM 27用作高速緩存,除了數(shù)據(jù)處理部分以外,可以對(duì)本發(fā)明的第一和第二地址輸出部分編程或映射。FPGA是這樣一種體系結(jié)構(gòu)可以在晶體管級(jí)別改變具有較寬應(yīng)用性的數(shù)據(jù)通路的配置。還對(duì)其中數(shù)據(jù)通路或數(shù)據(jù)流可使用相同結(jié)構(gòu)的中型基本功能單元重新配置的集成電路裝置進(jìn)行了研究,基本功能單元由相同種類的元件組成(盡管不是處于晶體管級(jí)別),但根據(jù)指令集進(jìn)行多種處理。在具有這類體系結(jié)構(gòu)的處理單元中,還可以通過除數(shù)據(jù)處理部分以外對(duì)于使輸入RAM 26和輸出RAM 27具有高速緩存作用的第一和第二地址輸出部分進(jìn)行配置,實(shí)現(xiàn)本發(fā)明的集成電路裝置和處理單元。
與設(shè)置相同結(jié)構(gòu)基本單元的體系結(jié)構(gòu)不同,基于上述矩陣單元的體系結(jié)構(gòu)包括多種類型的元件,每類元件包括不同的內(nèi)部數(shù)據(jù)通路。由于這并非是一種必須在晶體管級(jí)別上具有較寬應(yīng)用性的體系結(jié)構(gòu),可以增大組裝密度,并提供一種小型、經(jīng)濟(jì)的系統(tǒng)。并且,由于每個(gè)元件30包括專用于專用處理的數(shù)據(jù)通路單元32,可以極大地減少結(jié)構(gòu)中的冗余。與FPGA或另一種其中設(shè)置相同結(jié)構(gòu)基本處理單元的處理單元相比,可以極大地增加處理速度,并還可改善AC特性。此外,由于更有效地利用空間,可以使用緊密布局,并還可減小布線長(zhǎng)度。從而,包含有矩陣的體系結(jié)構(gòu)適合于充分利用本發(fā)明所披露的高效高速緩存結(jié)構(gòu)的集成電路裝置或處理裝置,是本發(fā)明可以提供更高速度處理的低成本處理單元。
此外,與在晶體管級(jí)映射電路的FPGA不同,改變包含預(yù)先適于專用處理的數(shù)據(jù)通路單元32在內(nèi)的元件30的組合,其優(yōu)點(diǎn)在于可以在極短時(shí)間內(nèi),大多數(shù)情形下在一個(gè)時(shí)鐘周期內(nèi),改變數(shù)據(jù)處理單元的配置和功能,即改變?cè)诰仃噯卧?8中配置的數(shù)據(jù)處理系統(tǒng)。并且,在每個(gè)元件30中,構(gòu)成數(shù)據(jù)通路單元32的選擇器和邏輯門如ALU的功能,可由處理器11通過配置存儲(chǔ)器39獨(dú)立設(shè)置,從而可在數(shù)據(jù)通路單元使用功能范圍內(nèi),靈活改變各元件30的數(shù)據(jù)通路單元32。因此,在本實(shí)施例的矩陣單元28內(nèi),數(shù)據(jù)流類型的數(shù)據(jù)處理所能執(zhí)行的功能范圍極寬。對(duì)于使用LSI 10DE諸如網(wǎng)絡(luò)處理或圖像處理的應(yīng)用而言,還可以選擇和設(shè)置適當(dāng)類型的操作單元30,這可以提供具有更高安裝效率和處理速度的集成電路裝置。
如上所述,本發(fā)明形成對(duì)第一存儲(chǔ)器進(jìn)行控制的第一地址輸出部分和第二地址輸出部分,其中,第一存儲(chǔ)器在數(shù)據(jù)流可改變的處理單元中用作高速緩存。這意味著可以將高速緩存系統(tǒng)的配置動(dòng)態(tài)地重新配置成對(duì)于數(shù)據(jù)處理部分的配置和數(shù)據(jù)處理部分所執(zhí)行的軟件而言最佳的配置。當(dāng)執(zhí)行多種軟件時(shí),可以構(gòu)造具有命中率更高的高速緩存系統(tǒng)。從而,可以提供一種在更短處理時(shí)間內(nèi)執(zhí)行多種軟件或應(yīng)用的集成電路裝置。
工業(yè)應(yīng)用本發(fā)明的處理單元和集成電路裝置可以作為執(zhí)行多種數(shù)據(jù)處理的系統(tǒng)LSI,ASIC等。本發(fā)明的處理單元和集成電路裝置不限于電路,還可適用于光路或光電路。使用可以重新配置的硬件,本發(fā)明的集成電路裝置可以以較高速度執(zhí)行數(shù)據(jù)處理,并且還適用于執(zhí)行需要高速和實(shí)時(shí)處理的處理(如網(wǎng)絡(luò)處理和圖像處理)的數(shù)據(jù)處理單元。
權(quán)利要求
1.一種集成電路裝置,包括第一存儲(chǔ)器,用于將數(shù)據(jù)輸入第二存儲(chǔ)器和/或從第二存儲(chǔ)器輸出數(shù)據(jù);和處理單元,在其中形成至少一個(gè)數(shù)據(jù)流,且其中所述至少一個(gè)數(shù)據(jù)流的至少一部分是可變的,其中該處理單元包括數(shù)據(jù)處理部分,對(duì)從第一存儲(chǔ)器輸入和/或輸出到第一存儲(chǔ)器的數(shù)據(jù)進(jìn)行處理;第一地址輸出部分,將第一存儲(chǔ)器與數(shù)據(jù)處理部分之間輸入和/或輸出數(shù)據(jù)的第一地址輸出;以及第二地址輸出部分,將第一存儲(chǔ)器與第二存儲(chǔ)器之間輸入和/或輸出數(shù)據(jù)的第二地址輸出。
2.根據(jù)權(quán)利要求1所述的集成電路裝置,其中第一地址為第一存儲(chǔ)器中的地址,第二地址為第二存儲(chǔ)器中的地址。
3.根據(jù)權(quán)利要求1所述的集成電路裝置,其中第二地址輸出部分能獨(dú)立于數(shù)據(jù)處理部分和/或第一地址輸出部分進(jìn)行操作。
4.根據(jù)權(quán)利要求1所述的集成電路裝置,其中第一存儲(chǔ)器包括多個(gè)能獨(dú)立輸入和輸出的存儲(chǔ)部分。
5.根據(jù)權(quán)利要求1所述的集成電路裝置,其中第一存儲(chǔ)器包括,保存所要輸入數(shù)據(jù)處理部分中的數(shù)據(jù)的第一輸入存儲(chǔ)器,和保存已從數(shù)據(jù)處理部分輸出的數(shù)據(jù)的第一輸出存儲(chǔ)器。
6.根據(jù)權(quán)利要求1所述的集成電路裝置,還包括管理第一存儲(chǔ)器與數(shù)據(jù)處理部分之間輸入和/或輸出的第一仲裁單元。
7.根據(jù)權(quán)利要求6所述的集成電路裝置,其中第一仲裁單元具有在不滿足數(shù)據(jù)處理單元的輸入或輸出條件時(shí),向數(shù)據(jù)處理部分輸出停止信號(hào)的功能。
8.根據(jù)權(quán)利要求7所述的集成電路裝置,其中數(shù)據(jù)處理部分具有根據(jù)所述停止信號(hào),停止在數(shù)據(jù)處理中形成的至少一個(gè)數(shù)據(jù)流的處理的功能。
9.根據(jù)權(quán)利要求6所述的集成電路裝置,其中第一存儲(chǔ)器包括保存所要輸入數(shù)據(jù)處理部分中的數(shù)據(jù)的第一輸入存儲(chǔ)器,和保存已從數(shù)據(jù)處理部分輸出的數(shù)據(jù)的第一輸出存儲(chǔ)器,以及第一仲裁單元,包括對(duì)于從第一輸入存儲(chǔ)器向數(shù)據(jù)處理部分的數(shù)據(jù)傳輸進(jìn)行管理的第一輸入仲裁單元,和對(duì)于從數(shù)據(jù)處理部分向第一輸出存儲(chǔ)器的數(shù)據(jù)傳輸進(jìn)行管理的第一輸出仲裁單元。
10.根據(jù)權(quán)利要求6所述的集成電路裝置,其中第一存儲(chǔ)器包括能獨(dú)立輸入和輸出的多個(gè)存儲(chǔ)部分,和第一仲裁單元具有獨(dú)立管理多個(gè)存儲(chǔ)部分的功能。
11.根據(jù)權(quán)利要求6所述的集成電路裝置,其中第一存儲(chǔ)器包括能獨(dú)立輸入和輸出的多個(gè)存儲(chǔ)部分,和第一仲裁單元具有相互關(guān)聯(lián)地管理多個(gè)存儲(chǔ)部分的功能。
12.根據(jù)權(quán)利要求1所述的集成電路裝置,其中在數(shù)據(jù)處理部分中,能配置多個(gè)數(shù)據(jù)流,集成電路裝置包括多個(gè)第一存儲(chǔ)器,并且在與多個(gè)第一存儲(chǔ)器分別相對(duì)應(yīng)的處理單元中配置第一地址輸出部分和第二地址輸出部分。
13.根據(jù)權(quán)利要求12所述的集成電路裝置,還包括對(duì)于第二存儲(chǔ)器與多個(gè)第一存儲(chǔ)器之間的輸入和輸出進(jìn)行管理的第二仲裁單元,其中第二地址提供給第二仲裁單元。
14.根據(jù)權(quán)利要求1所述的集成電路裝置,其中處理單元包括多個(gè)相同類型且其功能可改變的邏輯元件和連接邏輯元件的一組布線。
15.根據(jù)權(quán)利要求1所述的集成電路裝置,其中處理單元包括多種專用處理元件,多種專用處理元件中的每一種包括適合于不同專用處理的內(nèi)部數(shù)據(jù)通路,和連接專用處理元件的一組布線。
16.根據(jù)權(quán)利要求15所述的集成電路裝置,其中處理單元包括一種具有用于輸出地址的內(nèi)部數(shù)據(jù)通路的專用處理元件。
17.根據(jù)權(quán)利要求15所述的集成電路裝置,其中專用處理元件包括,用于選擇部分內(nèi)部數(shù)據(jù)通路的裝置,和保存內(nèi)部數(shù)據(jù)通路的選擇的配置存儲(chǔ)器。
18.根據(jù)權(quán)利要求17所述的集成電路裝置,還包括重寫配置存儲(chǔ)器內(nèi)容的控制單元。
19.根據(jù)權(quán)利要求1所述的集成電路裝置,還包括指示出處理單元的至少一個(gè)數(shù)據(jù)流的至少一部分的改變的控制單元。
20.根據(jù)權(quán)利要求19所述的集成電路裝置,其中控制單元能獨(dú)立指示出數(shù)據(jù)處理部分、第一地址輸出部分或第二地址輸出部分的至少一個(gè)數(shù)據(jù)流的改變。
21.根據(jù)權(quán)利要求19所述的集成電路裝置,還包括代碼存儲(chǔ)器,該代碼存儲(chǔ)器保存對(duì)控制單元進(jìn)行控制的程序代碼。
22.根據(jù)權(quán)利要求1所述的集成電路裝置,還包括能對(duì)第三存儲(chǔ)器輸入數(shù)據(jù)和/或輸出數(shù)據(jù)的第二存儲(chǔ)器;和第三地址輸出裝置,用于將第三存儲(chǔ)器與第二存儲(chǔ)器之間輸入和/或輸出的數(shù)據(jù)的第三地址輸出。
23.一種集成電路裝置,包括用于對(duì)第二存儲(chǔ)器輸入和/或輸出數(shù)據(jù)的第一存儲(chǔ)器;處理單元,其中配置至少一個(gè)數(shù)據(jù)流,對(duì)第一存儲(chǔ)器輸入或輸出的數(shù)據(jù)進(jìn)行處理;以及第一仲裁單元,對(duì)于第一存儲(chǔ)器與處理單元之間的輸入和/或輸出進(jìn)行管理,其中第一仲裁單元具有當(dāng)不滿足對(duì)數(shù)據(jù)處理部分進(jìn)行輸入或輸出的條件時(shí),向數(shù)據(jù)處理部分輸出停止信號(hào)的功能,并且處理單元具有根據(jù)停止信號(hào)停止處理至少一個(gè)數(shù)據(jù)流的功能。
24.根據(jù)權(quán)利要求23所述的集成電路裝置,其中在處理單元中可以改變至少一個(gè)數(shù)據(jù)流的至少一部分。
25.根據(jù)權(quán)利要求23所述的集成電路裝置,其中第一存儲(chǔ)器包括保存所要輸入處理單元中的數(shù)據(jù)的第一輸入存儲(chǔ)器,和保存已從處理單元輸出的數(shù)據(jù)的第一輸出存儲(chǔ)器,以及第一仲裁單元包括對(duì)從第一輸入存儲(chǔ)器向處理單元傳輸數(shù)據(jù)進(jìn)行管理的第一輸入仲裁單元,和對(duì)從處理單元向第一輸出存儲(chǔ)器傳輸數(shù)據(jù)進(jìn)行管理的第一輸出仲裁單元。
26.根據(jù)權(quán)利要求23所述的集成電路裝置,其中第一存儲(chǔ)器包括能獨(dú)立輸入和輸出的多個(gè)存儲(chǔ)部分,并且第一仲裁單元具有獨(dú)立管理多個(gè)存儲(chǔ)部分的功能。
27.根據(jù)權(quán)利要求23所述的集成電路裝置,其中第一存儲(chǔ)器包括能獨(dú)立輸入和輸出的多個(gè)存儲(chǔ)部分,并且第一仲裁單元具有相互關(guān)聯(lián)地管理多個(gè)存儲(chǔ)部分的功能。
28.一種處理單元,在其中形成至少一個(gè)數(shù)據(jù)流,且其中至少一個(gè)數(shù)據(jù)流的至少一部分是可變的,處理單元包括對(duì)于輸入和/或輸出第一存儲(chǔ)器的數(shù)據(jù)進(jìn)行處理的數(shù)據(jù)處理部分,其中所述第一存儲(chǔ)器能將數(shù)據(jù)輸入和/或輸出第二存儲(chǔ)器;第一地址輸出部分,將第一存儲(chǔ)器與數(shù)據(jù)處理部分之間輸入和/或輸出的數(shù)據(jù)的第一地址輸出;以及第二地址輸出部分,將第一存儲(chǔ)器與第二存儲(chǔ)器之間輸入和/或輸出的數(shù)據(jù)的第二地址輸出。
29.根據(jù)權(quán)利要求28所述的處理單元,其中第二地址輸出部分能獨(dú)立地進(jìn)行數(shù)據(jù)處理部分和/或第一地址輸出部分的操作。
30.根據(jù)權(quán)利要求28所述的處理單元,其中在數(shù)據(jù)處理部分中,能配置多個(gè)數(shù)據(jù)流,并且處理單元包括分別與多個(gè)第一存儲(chǔ)器中每一個(gè)相對(duì)應(yīng)的第一與第二地址輸出部分對(duì)。
31.根據(jù)權(quán)利要求28所述的處理單元,還包括多種專用處理元件,多種專用處理元件中的每一種包括適于不同專用處理的內(nèi)部數(shù)據(jù)通路,和連接專用處理元件的一組布線。
32.根據(jù)權(quán)利要求31所述的處理單元,還包括一種專用處理元件,該專用處理元件包括適于輸出地址的內(nèi)部數(shù)據(jù)通路。
33.一種處理裝置,包括根據(jù)權(quán)利要求31的處理單元和第一存儲(chǔ)器。
34.根據(jù)權(quán)利要求33所述的處理裝置,還包括指示出在處理單元中至少一個(gè)數(shù)據(jù)流的至少一部分的改變的控制單元。
35.一種集成電路裝置的控制方法,所述集成電路裝置包括能將數(shù)據(jù)輸入和/或輸出第二存儲(chǔ)器的第一存儲(chǔ)器,和在其中形成至少一個(gè)數(shù)據(jù)流、且至少一個(gè)數(shù)據(jù)流的至少一部分是可變的處理單元,控制方法包括指令步驟,用于指令處理單元對(duì)如下部分進(jìn)行配置對(duì)于輸入和/或輸出第一存儲(chǔ)器的數(shù)據(jù)進(jìn)行處理的數(shù)據(jù)處理部分,將第一存儲(chǔ)器與數(shù)據(jù)處理部分之間輸入和/或輸出的數(shù)據(jù)的第一地址輸出的第一地址輸出部分,以及將第一存儲(chǔ)器與第二存儲(chǔ)器之間輸入和/或輸出的數(shù)據(jù)的第二地址輸出的第二地址輸出部分。
36.根據(jù)權(quán)利要求35所述的控制方法,在指令步驟中,包括獨(dú)立指示出數(shù)據(jù)處理部分、第一地址輸出部分,或第二地址輸出部分的數(shù)據(jù)流改變的步驟。
37.根據(jù)權(quán)利要求35所述的控制方法,在指令步驟中,包括指令配置用于獨(dú)立操作數(shù)據(jù)處理部分和/或第一地址輸出部分的第二地址輸出部分。
38.根據(jù)權(quán)利要求35所述的控制方法,其中在數(shù)據(jù)處理部分中配置多個(gè)數(shù)據(jù)流,并且包括在指令步驟中,指令形成分別與多個(gè)第一存儲(chǔ)器中每一個(gè)相對(duì)應(yīng)的一對(duì)第一地址輸出部分和第二地址輸出部分。
39.根據(jù)權(quán)利要求35所述的控制方法,還包括在數(shù)據(jù)處理部分中形成至少一個(gè)數(shù)據(jù)流、和執(zhí)行與第一存儲(chǔ)器輸入和/或輸出的數(shù)據(jù)有關(guān)的處理的執(zhí)行步驟,并且在執(zhí)行步驟中包括,當(dāng)不滿足輸入或輸出條件時(shí),使用第一仲裁單元輸出的停止信號(hào)停止在數(shù)據(jù)處理部分中形成的所述至少一個(gè)數(shù)據(jù)流的處理,其中第一仲裁單元管理第一存儲(chǔ)器與數(shù)據(jù)處理部分之間的輸入和輸出。
40.一種集成電路裝置的控制方法,該集成電路裝置包括能對(duì)于第二存儲(chǔ)器輸入數(shù)據(jù)和/或輸出數(shù)據(jù)的第一存儲(chǔ)器,和在其中形成至少一個(gè)數(shù)據(jù)流的處理單元,該處理單元對(duì)于輸入或輸出第一存儲(chǔ)器的數(shù)據(jù)進(jìn)行處理,控制方法包括執(zhí)行對(duì)于輸入和/或輸出第一存儲(chǔ)器的數(shù)據(jù)相關(guān)處理的執(zhí)行步驟,并且包括在執(zhí)行步驟中,當(dāng)不滿足輸入或輸出條件時(shí),根據(jù)第一仲裁單元輸出的停止信號(hào)停止所述至少一個(gè)數(shù)據(jù)流的處理,其中第一仲裁單元管理第一存儲(chǔ)器與數(shù)據(jù)處理部分之間的輸入和輸出。
全文摘要
本發(fā)明提出一種具有第一存儲(chǔ)器和能至少部分地改變數(shù)據(jù)流的處理單元的集成電路裝置,其中可在第一存儲(chǔ)器和第二存儲(chǔ)器之間輸入/輸出數(shù)據(jù)。在處理單元中,設(shè)置用于處理輸入/輸出第一存儲(chǔ)器的數(shù)據(jù)的數(shù)據(jù)處理部分,用于將第一存儲(chǔ)器與數(shù)據(jù)處理部分之間輸入和/或輸出的數(shù)據(jù)的第一地址輸出的第一地址輸出部分,以及用于將第二存儲(chǔ)器與第一存儲(chǔ)器之間輸入和/或輸出的數(shù)據(jù)的第二地址輸出的第二地址輸出部分。通過改變數(shù)據(jù)流,或通過部分可重新配置的處理單元構(gòu)成電路,可以將集成電路裝置上的高速緩沖存儲(chǔ)器系統(tǒng)構(gòu)制成對(duì)于該集成電路裝置上所執(zhí)行的處理最佳。
文檔編號(hào)G06F15/78GK1526100SQ0281376
公開日2004年9月1日 申請(qǐng)日期2002年7月11日 優(yōu)先權(quán)日2001年7月12日
發(fā)明者池田顯土 申請(qǐng)人:Ip菲力股份有限公司