專利名稱:運(yùn)算裝置、高速緩存裝置及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及運(yùn)算裝置、高速緩存(cache)裝置及其控制方法。
背景技術(shù):
存在要求確定包含于第一數(shù)據(jù)組中的各單個數(shù)據(jù)是否與第二數(shù)據(jù)組中的至少一些數(shù)據(jù)匹配的許多應(yīng)用。日本專利No. 3588487提出了逆流流水線(counterflow pipeline)技術(shù)以獲得這種確定。以下將參照圖11描述逆流流水線技術(shù)。逆流流水線技術(shù)使用作為兩個流水線的第一流水線1110和第二流水線1120。第一流水線1110具有多個第一節(jié)點(diǎn)1111,并且這些第一節(jié)點(diǎn)1111在一定的定時存儲第一數(shù)據(jù)組的數(shù)據(jù)A
至A[3]。 第一流水線1110沿右方向移動(shift)數(shù)據(jù)。作為數(shù)據(jù)移動的結(jié)果,例如,存儲數(shù)據(jù)A[2] 的第一節(jié)點(diǎn)1111存儲數(shù)據(jù)A[3]。第二流水線1120具有多個第二節(jié)點(diǎn)1121,并且這些第二節(jié)點(diǎn)1121在一定的定時存儲第二數(shù)據(jù)組的數(shù)據(jù)B
至B[3]。第二流水線1120沿左方向移動數(shù)據(jù)。確定單元1130與第一節(jié)點(diǎn)1111和第二節(jié)點(diǎn)1121連接,并且確定存儲于這些節(jié)點(diǎn)中的數(shù)據(jù)是否匹配。對于逆流流水線技術(shù),由于兩個流水線中的數(shù)據(jù)沿相反的方向移動, 因此,通過循環(huán)(round-robin)方法比較第一組和第二組的數(shù)據(jù)。為了獲得較快的逆流流水線運(yùn)算,兩個流水線獨(dú)立地移動。但是,當(dāng)?shù)谝涣魉€ 1110和第二流水線1120同時移動時,一些數(shù)據(jù)不能被比較。例如,在圖11所示的定時,比較數(shù)據(jù)A[2]和B[l]。當(dāng)?shù)谝缓偷诙魉€同時移動時,在下一定時比較數(shù)據(jù)A[2]和數(shù)據(jù) B[3]。因此,數(shù)據(jù)A[2]從不與數(shù)據(jù)B[2]比較。為了抑制這樣的數(shù)據(jù)比較差錯,在日本專利 No. 3588487中,監(jiān)視第一流水線1110和第二流水線1120的節(jié)點(diǎn)的狀態(tài)。在將出現(xiàn)數(shù)據(jù)比較差錯的狀態(tài)中,兩個流水線被停止,并且在完成比較之后被允許移動數(shù)據(jù)。并且,在日本專利No. 3588487中描述的逆流流水線技術(shù)中,數(shù)據(jù)僅經(jīng)受一對一的比較處理,但一個數(shù)據(jù)不能同時與多個數(shù)據(jù)比較,或者,不能動態(tài)地改變要與一個數(shù)據(jù)同時比較的數(shù)據(jù)的數(shù)量。
發(fā)明內(nèi)容
如上所述,日本專利No. 3588487中描述的逆流流水線技術(shù)難以確實(shí)地(surely) 且靈活地比較數(shù)據(jù)。由此,本發(fā)明的一個方面提供一種用于使用逆流流水線確實(shí)地且靈活地比較數(shù)據(jù)的技術(shù)。本發(fā)明的一個方面提供一種運(yùn)算裝置,該運(yùn)算裝置包括多個第一保持單元,所述多個第一保持單元中的每一個包含串行連接的多個第一節(jié)點(diǎn),并且將保持在各第一節(jié)點(diǎn)中的第一數(shù)據(jù)移動到位于第一方向上的相鄰節(jié)點(diǎn);多個第二保持單元,所述多個第二保持單元中的每一個包含串行連接的多個第二節(jié)點(diǎn),并且將保持在各第二節(jié)點(diǎn)中的第二數(shù)據(jù)移動到位于第二方向上的相鄰節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng); 運(yùn)算單元,所述運(yùn)算單元對于作為第一保持單元的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),使用保持在關(guān)注節(jié)點(diǎn)中的第一數(shù)據(jù)和保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的所述多個第二節(jié)點(diǎn)中的至少一個中的第二數(shù)據(jù)來執(zhí)行運(yùn)算;以及輸入單元,所述輸入單元將第一數(shù)據(jù)并行輸入到所述多個第一保持單元之中的至少兩個,并且將第二數(shù)據(jù)串行輸入到所述多個第二保持單元之中的至少兩個。本發(fā)明的另一方面提供一種高速緩存裝置,所述高速緩存裝置包括多個數(shù)據(jù)處理裝置,所述多個數(shù)據(jù)處理裝置中的每一個包括第一流水線,所述第一流水線包含多個第一節(jié)點(diǎn),并且將保持在一個第一節(jié)點(diǎn)中的地址移動到相對于所述一個第一節(jié)點(diǎn)位于第一方向上的另一第一節(jié)點(diǎn);第二流水線,所述第二流水線包含多個第二節(jié)點(diǎn),并且將保持在一個第二節(jié)點(diǎn)中的高速緩存標(biāo)記移動到相對于所述一個第二節(jié)點(diǎn)位于與第一方向相反的第二方向上的另一第二節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng);以及比較單元,所述比較單元對于作為第一流水線的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),比較保持在關(guān)注節(jié)點(diǎn)中的地址與保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的第二節(jié)點(diǎn)中的至少一個中的高速緩存標(biāo)記,以確定地址是否與高速緩存標(biāo)記匹配;所述高速緩存裝置還包括高速緩存存儲器,所述高速緩存存儲器對存儲在外部存儲器件中的數(shù)據(jù)中的一些進(jìn)行存儲;獲取單元,所述獲取單元從處理裝置獲取數(shù)據(jù)的請求;第一輸入單元,所述第一輸入單元復(fù)制獲取的數(shù)據(jù)的地址,并且將復(fù)制的地址輸入到所述多個數(shù)據(jù)處理裝置的第一流水線;第二輸入單元,所述第二輸入單元將存儲于高速緩存存儲器中的數(shù)據(jù)的高速緩存標(biāo)記輸入到所述多個數(shù)據(jù)處理裝置之一的第二流水線;以及確定單元,所述確定單元當(dāng)確定比較單元的比較結(jié)果指示匹配時,確定獲取的數(shù)據(jù)的高速緩存命中(hit),其中,所述多個數(shù)據(jù)處理裝置的第二流水線被串行連接。本發(fā)明的又一方面提供一種運(yùn)算裝置的控制方法,所述運(yùn)算裝置包括多個第一保持單元,所述多個第一保持單元中的每一個包含串行連接的多個第一節(jié)點(diǎn),并且將保持在各第一節(jié)點(diǎn)中的第一數(shù)據(jù)移動到位于第一方向上的相鄰節(jié)點(diǎn);多個第二保持單元,所述多個第二保持單元中的每一個包含串行連接的多個第二節(jié)點(diǎn),并且將保持在各第二節(jié)點(diǎn)中的第二數(shù)據(jù)移動到位于第二方向上的相鄰節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng);以及運(yùn)算單元,所述運(yùn)算單元對于作為第一保持單元的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),使用保持在關(guān)注節(jié)點(diǎn)中的第一數(shù)據(jù)和保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的所述多個第二節(jié)點(diǎn)中的至少一個中的第二數(shù)據(jù)來執(zhí)行運(yùn)算,所述方法包括將第一數(shù)據(jù)并行輸入到所述多個第一保持單元之中的至少兩個,并且將第二數(shù)據(jù)串行輸入到所述多個第二保持單元之中的至少兩個。本發(fā)明的再一方面提供一種高速緩存裝置的控制方法,所述高速緩存裝置包括多個數(shù)據(jù)處理裝置,所述多個數(shù)據(jù)處理裝置中的每一個包括第一流水線,所述第一流水線包含多個第一節(jié)點(diǎn),并且將保持在一個第一節(jié)點(diǎn)中的地址移動到相對于所述一個第一節(jié)點(diǎn)位于第一方向上的另一第一節(jié)點(diǎn);第二流水線,所述第二流水線包含多個第二節(jié)點(diǎn),并且將保持在一個第二節(jié)點(diǎn)中的高速緩存標(biāo)記移動到相對于所述一個第二節(jié)點(diǎn)位于與第一方向相反的第二方向上的另一第二節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng);以及比較單元,所述比較單元對于作為第一流水線的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),比較保持在關(guān)注節(jié)點(diǎn)中的地址與保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的第二節(jié)點(diǎn)中的至少一個中的高速緩存標(biāo)記,以確定地址是否與高速緩存標(biāo)記匹配,所述方法包括在高速緩存存儲器中存儲被存儲在外部存儲器件中的數(shù)據(jù)中的一些;控制獲取單元以從處理裝置獲取數(shù)據(jù)的請求;控制第一輸入單元以復(fù)制獲取的數(shù)據(jù)的地址并且將復(fù)制的地址輸入到所述多個數(shù)據(jù)處理裝置的第一流水線;控制第二輸入單元以將存儲于高速緩存存儲器中的數(shù)據(jù)的高速緩存標(biāo)記輸入到所述多個數(shù)據(jù)處理裝置之一的第二流水線;以及控制確定單元以在確定比較單元的比較結(jié)果指示匹配時確定獲取的數(shù)據(jù)的高速緩存命中,其中,所述多個數(shù)據(jù)處理裝置的第二流水線被串行連接。從(參照附圖)對示例性實(shí)施例的以下描述,本發(fā)明的進(jìn)一步的特征將變得明顯。
圖1是示出圖像處理裝置100的基本布置的示例性總體框圖;圖2是示出高速緩存確定單元120的基本布置的示例性電路圖;圖3是示出數(shù)據(jù)處理裝置200的基本布置的示例性電路圖;圖4是高速緩存確定單元400的示例性電路圖;圖5是高速緩存確定單元500的示例性電路圖;圖6是用于詳細(xì)解釋解碼器552的示例性電路圖;圖7示出分割(partition)信息表的示例性格式;圖8是示出分割信息表的實(shí)際例子的示例性示圖;圖9是用于解釋高速緩存存儲器900的示例性示圖;圖10是使用縱橫開關(guān)(crossbar switch)時的示例性電路圖;以及圖11是用于解釋常規(guī)的逆流流水線技術(shù)的框圖。
具體實(shí)施例方式
以下將參照附圖描述本發(fā)明的實(shí)施例。[圖像處理裝置100]圖1是示出包含高速緩存裝置110的圖像處理裝置100的總體布置的例子的示例性框圖。在高速緩存裝置110中,數(shù)據(jù)處理裝置(后面將描述)被應(yīng)用作為完全相聯(lián)的 (fully-associative)高速緩存確定單元120。圖像處理裝置100包含CPU 160、作為外部存儲器件的DRAM165、DRAM控制器166 和系統(tǒng)總線164。圖像處理裝置100還包含作為用于讀出數(shù)據(jù)的DMAC(Direct Memory Access Controller,直接存儲器訪問控制器)的RDMAC 162和用于寫入數(shù)據(jù)的WDMAC 163, 以從/向DRAM 165讀/寫數(shù)據(jù)。圖像處理裝置100進(jìn)一步包含執(zhí)行諸如圖像處理的處理的處理裝置(P.A.)A 101至D 104、以及高速緩存裝置110。多個處理裝置共享高速緩存裝置110。即,高速緩存裝置110是共享的高速緩存裝置。圖像處理裝置100可包含任意數(shù)量的處理裝置,每個處理裝置可通過執(zhí)行快速固定(permanent)處理的流水線電路、或者通過雖然處理速度低但可靈活改變處理內(nèi)容的處理器和程序來配置。CPU 160經(jīng)由控制總線161控制RDMAC 162、WDMAC 163和處理裝置A 101至D 104,由此系統(tǒng)性地控制整個圖像處理裝置100。依據(jù)來自CPU 160的指令,RDMAC 162經(jīng)由系統(tǒng)總線164和DRAM控制器166讀出存儲于DRAM 165中的圖像數(shù)據(jù),并且將讀出的圖像數(shù)據(jù)輸入到處理裝置A 101。處理裝置A 101執(zhí)行希望的圖像處理,并且將作為處理結(jié)果的圖像數(shù)據(jù)輸出到處理裝置B 102。處理裝置B102、C 103和D 104如處理裝置A 101中那樣類似地執(zhí)行各種類型的圖像處理,并且將作為處理結(jié)果的圖像數(shù)據(jù)輸出到隨后的處理裝置。處理裝置D 104將作為處理結(jié)果的圖像數(shù)據(jù)輸出到WDMAC 163。WDMAC 163依據(jù)來自CPU 160的指令經(jīng)由系統(tǒng)總線164和DRAM控制器166將從處理裝置D 104接收的圖像數(shù)據(jù)存儲在DRAM 165中。圖像處理裝置100通過執(zhí)行上述的系列的操作來實(shí)施圖像處理。在上述的圖像處理期間,處理裝置A 101至D 104可經(jīng)由共享的高速緩存裝置110 從DRAM 165讀出各種需要的數(shù)據(jù)(設(shè)置、表、屬性信息等),并且可在圖像處理中使用讀出的數(shù)據(jù)。當(dāng)通過處理器和程序來配置處理裝置中的任一個時,可經(jīng)由高速緩存裝置110依次讀出程序以實(shí)施處理。[高速緩存裝置110]以下將詳細(xì)描述高速緩存裝置110的布置和操作。上述的處理裝置A 101至D 104 在它們經(jīng)由高速緩存裝置110從DRAM 165讀出數(shù)據(jù)時將DRAM 165上的數(shù)據(jù)的存儲地址輸出到I/F 112。高速緩存裝置110包含用于訪問請求的環(huán)形總線111,以傳送DRAM 165上的數(shù)據(jù)的存儲地址。與各自的處理裝置對應(yīng)的I/F 112經(jīng)由該環(huán)形總線111相互連接。從各自的處理裝置輸出的存儲地址113經(jīng)由I/F 112和環(huán)形總線111被輸入到高速緩存確定單元120。高速緩存確定單元120基于輸入的存儲地址113確定高速緩存命中或遺漏(miss)。[高速緩存確定單元120]以下將參照圖2詳細(xì)描述高速緩存確定單元120的電路布置的例子。高速緩存確定單元120包含數(shù)據(jù)處理裝置200和高速緩存確定裝置觀0。要輸入到高速緩存確定單元120(第一輸入)的存儲地址113包含 地址有效(validity)信號 “valid”; 地址信號“data” ;和 處理裝置101至104中的每一個的識別信號“ID”。這些信號被輸入到數(shù)據(jù)處理裝置200。[數(shù)據(jù)處理裝置200]以下將參照圖3詳細(xì)描述數(shù)據(jù)處理裝置200的電路布置的例子。圖3是關(guān)注于數(shù)據(jù)處理裝置200的一部分的示圖。第一流水線300具有多個節(jié)點(diǎn)(第一節(jié)點(diǎn))。如果選擇這些節(jié)點(diǎn)中的一個作為關(guān)注節(jié)點(diǎn)(例如,節(jié)點(diǎn)310),那么數(shù)據(jù)元素(data element)(第一數(shù)據(jù))從關(guān)注節(jié)點(diǎn)沿第一方向(圖1中的右方向)移動到下游側(cè)的下一第一節(jié)點(diǎn)(例如,節(jié)點(diǎn)330)。如圖2所示,第一流水線300從數(shù)據(jù)處理裝置200外面接收 地址有效信號“valid” ; 地址信號 “data,,; 作為地址信號的處理結(jié)果的處理結(jié)果信號“tag_id” ;和 處理裝置的識別信號“ID”。信號“Valid”、“data”和“ID”包含于存儲地址113中,并且,信號“tag_id”例如
為缺省值。回過來參照圖3,例如,節(jié)點(diǎn)310接收 地址有效信號 “valid[l-l]”312 ; 地址信號 “data[l-l] ” 314 ;和 各處理裝置的識別信號“ID[1-1],,。在圖3中,為了簡化,信號“valid”和“ID”由一條信號線表示。并且,數(shù)據(jù)處理電路320接收 地址信號 “data[l-l] ” 314 ;和 作為地址信號的處理結(jié)果的處理結(jié)果信號“tag_id[l-l]”316。數(shù)據(jù)處理電路320對這些輸入信號施加后面將描述的處理,并且將處理結(jié)果輸出到節(jié)點(diǎn)310。當(dāng)作為驅(qū)動信號的信號“enable” 121有效(被斷言(asserted))時,包含流水線寄存器的節(jié)點(diǎn)310使用從上游側(cè)的節(jié)點(diǎn)和數(shù)據(jù)處理電路320輸入的數(shù)據(jù)元素來更新目前為止存儲的數(shù)據(jù)元素。另一方面,當(dāng)信號“enable”121無效(被去斷言(deasserted))時,節(jié)點(diǎn)310忽略從上游側(cè)輸入的數(shù)據(jù)元素,使存儲的數(shù)據(jù)元素保持原樣,并且不更新數(shù)據(jù)元素。 為了便于描述,在第一流水線300之中,包含一個節(jié)點(diǎn)和向該節(jié)點(diǎn)輸入處理結(jié)果信號的數(shù)據(jù)處理電路的區(qū)段(section)將被稱為級(stage)。特別地,在圖3中,包含節(jié)點(diǎn)310和數(shù)據(jù)處理電路320的區(qū)段將被稱為第一級。節(jié)點(diǎn)310向下游側(cè)的節(jié)點(diǎn)330和數(shù)據(jù)處理電路340輸出存儲的數(shù)據(jù),即 地址有效信號 “valid[1] ” 332 ; 地址信號 “data[l],,334 ; 處理結(jié)果信號 “tag_id[l] ” 336 ;和 識別信號 “ID[1]”。在圖3中,在第一流水線300之中,包含節(jié)點(diǎn)330和數(shù)據(jù)處理電路340的區(qū)段將被稱為第二級。如第一級中那樣,在第二級中執(zhí)行各種類型的數(shù)據(jù)處理。處理之后的數(shù)據(jù)元素被暫時存儲在節(jié)點(diǎn)330中。該存儲操作與第一級中的存儲操作相同。并且,節(jié)點(diǎn)330輸出 地址有效信號 “valid[l+l] "352 ; 地址信號 “data[1+1] "354 ; 處理結(jié)果信號 “tag_id[l+l],,;356 ;和 識別信號 “ID[1+1]”。通過該操作,在第一流水線300中,數(shù)據(jù)元素(有效信號“valid”、地址信號 “data”、處理結(jié)果信號“tag_id”和識別信號“ID” )從作為“上游側(cè)”的圖面上的左側(cè)向作為“下游側(cè)”的圖面上的右側(cè)移動。除了第一流水線300以外,數(shù)據(jù)處理裝置200還包含第二流水線360。該第二流水線360具有多個節(jié)點(diǎn)(第二節(jié)點(diǎn)),并且將保持在這些第二節(jié)點(diǎn)中的流水線寄存器中的數(shù)據(jù)元素移動到沿與第一流水線相反的方向(第二方向)定位的相鄰節(jié)點(diǎn)。更具體而言,第二流水線360從作為“上游側(cè)”的圖面上的右側(cè)向作為“下游側(cè)”的圖面上的左側(cè)移動數(shù)據(jù)元素。如圖2所示,第二流水線360從數(shù)據(jù)處理裝置200外面接收地址有效信號“tag_Valid” 和地址信號“tag_data” (第二輸入)?;剡^來參照圖3,節(jié)點(diǎn)370從上游側(cè)接收地址有效信號“tag_Valid[i+2] ” 372和地址信號“tag_data[i+2] ” 374。在上述的數(shù)據(jù)處理電路340中使用這些輸入信號。當(dāng)驅(qū)動信號“shift”362有效(被斷言)時,節(jié)點(diǎn)370使用從上游側(cè)的節(jié)點(diǎn)輸入的數(shù)據(jù)元素來更新目前為止存儲的數(shù)據(jù)元素。另一方面,當(dāng)驅(qū)動信號“shift” 362無效(被去斷言)時,節(jié)點(diǎn)370忽略從上游側(cè)輸入的數(shù)據(jù)元素,使存儲的數(shù)據(jù)元素保持原樣,并且不更新數(shù)據(jù)元素。在第二流水線360之中,包含一個節(jié)點(diǎn)的區(qū)段將被稱為級。特別地,在圖3 中,包含節(jié)點(diǎn)370的區(qū)段將被稱為第一級。節(jié)點(diǎn)370將存儲于流水線寄存器中的地址有效信號“tag_Valid[i+l]”382和地址信號“tag_data[i+l] ” 384輸出到節(jié)點(diǎn)380與數(shù)據(jù)處理電路320和340。并且,節(jié)點(diǎn)380 將有效信號“tag_Valid[i],,392和地址信號“tag_data[i],,394輸出到下游側(cè)。通過該操作,在第二流水線360之中,作為數(shù)據(jù)元素的有效信號“tag_Valid”和地址信號“tag_data” 從作為“上游側(cè)”的圖面上的右側(cè)移動到作為“下游側(cè)”的圖面上的左側(cè)。[數(shù)據(jù)處理電路]以下將詳細(xì)描述數(shù)據(jù)處理電路320和340。數(shù)據(jù)處理電路比較兩個方向上的地址信號“data”和“tag_data”(第一比較)。當(dāng)這些信號彼此相等時,數(shù)據(jù)處理電路將信號 “tag_data”的存儲標(biāo)號(index)(上述的“ [i] ”、“ [i+Ι] ”或“ [i+2] ”)存儲作為信號“tag_ id”。然后,同步于“data”,信號“tag_id”作為第一流水線300的數(shù)據(jù)處理結(jié)果從作為“上游側(cè)”的圖面上的左側(cè)移動到作為“下游側(cè)”的圖面上的右側(cè)。以此方式,在信號“tag_ id[l] ”336中,設(shè)定第二流水線360的數(shù)據(jù)元素的存儲標(biāo)號,其具有與第一流水線300的第 1個數(shù)據(jù)元素“data[l] ” 334的值相等的值。更具體而言,當(dāng)有效信號“tag_Valid[i]”392有效時,數(shù)據(jù)處理電路320控制比較電路322以比較地址信號“data[l-l] ”314和“tag_data[i] ”394。當(dāng)作為比較結(jié)果這些信號彼此相等時,選擇器3 選擇信號“tag_data[i]”394的存儲標(biāo)號“Node = i”。該選擇值在信號“tag_id[l-l] ”316中被設(shè)定作為第二流水線360的數(shù)據(jù)元素的存儲標(biāo)號,其具有與第一流水線300的信號“data[l-l],,314的值相等的值。如上所述,當(dāng)?shù)谝涣魉€300和第二流水線360同時操作時,在一些情況下可能出現(xiàn)比較差錯。為了避免這種差錯,當(dāng)有效信號“tag_Valid[i+l]”382有效時,數(shù)據(jù)處理電路 320控制比較電路324以比較地址信號“data[1-1] ” 314 ^P "tag_data[i+l],,384(第二比較)。當(dāng)作為比較結(jié)果這些信號彼此相等時,選擇器3 優(yōu)先選擇信號“tag_data[i+l] ”384 的存儲標(biāo)號“Node = i+1”。當(dāng)作為兩個比較結(jié)果兩對比較信號不彼此相等時,選擇器3 選擇輸入的處理結(jié)果信號“tag_id[l-l]”316。當(dāng)驅(qū)動信號“shift” 362有效(被斷言)并且第二流水線360 操作時,第二流水線360的數(shù)據(jù)元素向作為“下游側(cè)”的圖面上的左側(cè)移動。因此,在這種情況下,各信號“tag_data”的存儲標(biāo)號指示左相鄰的存儲標(biāo)號。由此,通過使用減量器(減法器)328將選擇器326的選擇結(jié)果減“ 1 ”,調(diào)整存儲標(biāo)號。以下將補(bǔ)充存儲標(biāo)號選擇方法。選擇存儲標(biāo)號“Node = i”、“Node = i+1”和“tag_ id[l-l]”316中的一個。選擇存儲標(biāo)號的準(zhǔn)則可以是簡單的準(zhǔn)則,例如,“優(yōu)先選擇具有較大值的存儲標(biāo)號”。例如,以下將檢查其中數(shù)據(jù)信號“data[l-l] ”314和“tag_data[i+l] ”384 彼此相等并且驅(qū)動信號“shift” 362有效的情況。在這種情況下,為了避免上述的比較差錯,選擇“Node = i+1”是重要的,并且,該操作與方法“優(yōu)先選擇具有較大值的存儲標(biāo)號” 匹配。另一方面,當(dāng)驅(qū)動信號“shift” 362無效時,不需要避免上述的比較差錯,并且,不需要選擇“Node = i+1”。但是,不管“Node = i+1”的選擇/不選擇,作為第一流水線300的下游級的第二級都再次評價地址信號“data[l],,334和“tag_data[i+l],,384之間的比較。 出于該原因,當(dāng)驅(qū)動信號“shift”362無效時,可以進(jìn)行或者可以不進(jìn)行第一級中的與信號"tag_data[i+l]"384的比較。相反,可以通過方法“優(yōu)先選擇具有較大值的存儲標(biāo)號”進(jìn)行選擇。在信號“tag_id[l-l]”316中設(shè)定以此方式選擇的值,所述值指示第二流水線360 的數(shù)據(jù)元素的存儲標(biāo)號,其具有與信號“data[l-l] ” 314的值相等的值。僅出于示例性的目的給出已參照圖3解釋的例子。例如,可以在選擇器3 中代入驅(qū)動信號“shift”362,以控制在驅(qū)動信號“shift”362無效時不選擇“Node = i+1”。當(dāng)兩個比較電路322和3 的比較結(jié)果為〈偽(false)〉時,選擇輸入數(shù)據(jù)信號“tag_id[l-l]”316。 在任何情況下,當(dāng)驅(qū)動信號“shift” 362有效時,執(zhí)行將存儲標(biāo)號減“1”的調(diào)整以應(yīng)對存儲位置向“下游側(cè)”的移動。出于該原因,不執(zhí)行不選擇“Node = i+1”的控制,并且,在選擇 "Node = i+1”之后再次執(zhí)行將存儲標(biāo)號減“1”的調(diào)整。這同樣適用于數(shù)據(jù)處理電路340。當(dāng)有效信號“tag_Valid[i+l]”382有效時,比較電路342比較地址信號“data[l] ”334和“tag_data[i+l] ”384。當(dāng)作為比較結(jié)果兩個信號彼此相等時,選擇器346選擇信號“tag_data[i+l]”384的存儲標(biāo)號“Node = i+1”。為了準(zhǔn)備第二流水線360的操作,當(dāng)有效信號“tag_Valid[i+2]”372有效時,數(shù)據(jù)處理電路 340控制比較電路344以比較數(shù)據(jù)信號“data[1],,334和“tag_data[i+2] ” 374。當(dāng)作為比較結(jié)果這些信號彼此相等時,選擇器346優(yōu)先選擇信號“tag_data[i+2] ” 374的存儲標(biāo)號 "Node = i+2”。當(dāng)作為兩個比較結(jié)果兩對比較信號不彼此相等時,選擇器346選擇處理結(jié)果信號“tag_id[l]”336。當(dāng)驅(qū)動信號“shift” 362有效并且第二流水線360因此操作時, 信號“tag_data”的存儲標(biāo)號向作為“下游側(cè)”的圖面上的左側(cè)移動“1”。出于該原因,從選擇器346的選擇結(jié)果使用減量器(減法器)348將存儲標(biāo)號減“1”。以此方式,可以調(diào)整匹配檢測結(jié)果,并且,可以通過簡單的處理來實(shí)現(xiàn)更精確并且更快速的數(shù)據(jù)處理。如上所述, 數(shù)據(jù)處理裝置200可在流水線的各自的級中確實(shí)地且快速地比較沿相反方向移動的數(shù)據(jù)元素。上述的數(shù)據(jù)處理電路320和340中的每一個具有第二流水線360中要比較的數(shù)據(jù)元素針對第一流水線300的每一個數(shù)據(jù)元素的比較電路。并且,數(shù)據(jù)處理電路320和340 中的每一個在第二流水線360操作的假定下具有第二流水線360的“上游”數(shù)據(jù)元素對于第二流水線360的要比較的數(shù)據(jù)元素的新的比較電路。由于這些電路可避免可能在日本專利No. 3588487的布置中出現(xiàn)的對于各特定級的聯(lián)鎖(interlocking)(內(nèi)部停止)的問題, 因此,可以總是獲得高的處理性能而不停止數(shù)據(jù)處理。在數(shù)據(jù)處理裝置200中,為了計算兩個數(shù)據(jù)元素彼此相等時的存儲位置,數(shù)據(jù)處理電路320和340中的每一個在第二流水線360操作的假定下包含用于將處理結(jié)果減“ 1” 的減量器。然后,第二流水線的數(shù)據(jù)元素的存儲標(biāo)號被事先分配,以從第二流水線的“下游
側(cè)”向“上游側(cè)”如“0、1、2.....i、i+1、i+2.....N-l(i和N是正值,i < N)”那樣增加。
將在后面描述這種分配的優(yōu)點(diǎn)。當(dāng)以相反的次序分配存儲標(biāo)號時,減量器自然用作被用于將存儲標(biāo)號加“1”的增量器。以下將再次參照圖2描述數(shù)據(jù)處理裝置200的布置。在數(shù)據(jù)處理裝置200中,第一流水線300和第二流水線360均包含八個級。圖2中的Data Slot
至Data Slot [7]與圖3所示的第一流水線300的節(jié)點(diǎn)310和330對應(yīng)。圖2中的Tag Slot
至Tag Slot [7] 與圖3所示的第二流水線360的節(jié)點(diǎn)370和380對應(yīng)。Judge
至Judge[7]與圖3所示的數(shù)據(jù)處理電路320和340對應(yīng)。如上所述,通過設(shè)置多個級,數(shù)據(jù)處理裝置200可通過流水線操作來對許多數(shù)據(jù)元素進(jìn)行并行分布和比較。存儲地址113通過數(shù)據(jù)處理裝置200的第一流水線300的Data Slot移動。數(shù)據(jù)處理裝置200可同時存儲八個信號“tag_data”,并且高速緩存標(biāo)記(tag)信息被存儲于這八個信號“tag_data”中的每一個中。使用數(shù)據(jù)處理裝置200的例子的高速緩存裝置與8 節(jié)點(diǎn)、完全相聯(lián)的高速緩存裝置對應(yīng)。并且,從第二流水線360的“下游側(cè)”依次串行設(shè)定第0個到第7個存儲位置,并且,第二流水線360具有當(dāng)驅(qū)動信號“shift” 362有效(被斷言)時向“下游側(cè)”移動數(shù)據(jù)元素的移動結(jié)構(gòu)。通過該移動結(jié)構(gòu),最舊的高速緩存標(biāo)記被存儲于第0個存儲位置處的信號“tag_data”中,最新的高速緩存標(biāo)記被存儲于第7個存儲位置處的信號“tag_data”中。每次出現(xiàn)高速緩存遺漏時,高速緩存標(biāo)記從第7個存儲位置處的信號“tag_data”依次移動到第0個存儲位置處的信號“tag_data”,并然后從第二流水線 360被掃出(sweep out)。盡管高速緩存確定單元120具有非常簡單的結(jié)構(gòu),但其總是從最舊的高速緩存標(biāo)記和高速緩存數(shù)據(jù)依次舍棄高速緩存標(biāo)記和高速緩存數(shù)據(jù)。結(jié)果,不需要執(zhí)行一般的高速緩存機(jī)構(gòu)的復(fù)雜替換(replace)控制。[高速緩存命中確定]以下將描述高速緩存命中確定序列?!案咚倬彺婷写_定”是要確定由存儲地址 113指定的數(shù)據(jù)是否被存儲于高速緩存存儲器190中。當(dāng)指定的數(shù)據(jù)被存儲于高速緩存存儲器190中時,確定高速緩存命中;否則,確定高速緩存遺漏。通過高速緩存確定裝置280 進(jìn)行高速緩存命中確定。高速緩存確定裝置280通過檢查從數(shù)據(jù)處理裝置200輸出的處理結(jié)果信號“tag_id^2的補(bǔ)碼表示(complement representation))的具有1位長度的符號位,確定高速緩存命中或遺漏。當(dāng)作為來自數(shù)據(jù)處理裝置200的輸出的有效信號“valid” 有效(被斷言)并且其符號位是“1”時,信號“tag_id”取負(fù)值,并且,高速緩存確定裝置 280確定高速緩存遺漏。當(dāng)有效信號“valid”有效(被斷言)并且其符號位是“0”時,信號 “tag_id”取非負(fù)值,并且,高速緩存確定裝置280確定高速緩存命中。當(dāng)有效信號“valid” 無效(被去斷言)時,高速緩存確定裝置280跳過(skip)確定。并且,當(dāng)來自訪問仲裁 (arbitration)單元130的信號“enable”無效(被去斷言)時,高速緩存確定裝置280跳過確定。作為數(shù)據(jù)處理裝置200的輸出的地址信號“data”、有效信號“valid”和識別信號 “ID”同步于信號“tag_id”被輸入到高速緩存確定裝置觀0。當(dāng)通過以上的處理確定高速緩存遺漏時,作為高速緩存遺漏時的地址“cachejiiissjddress”從高速緩存確定裝置280 輸出該地址信號“data”。在高速緩存遺漏的情況下,高速緩存確定裝置280使驅(qū)動信號 “shift” 362有效(斷言),并且作為高速緩存標(biāo)記“tag_data”輸出高速緩存遺漏時的地址“cachejiiissjddress”。每次高速緩存遺漏被確定,都使驅(qū)動信號“shift” 362有效,并且,如上所述處理結(jié)果“tag_id”被遞減(decrement)。即使當(dāng)處理結(jié)果“tag_id”初始保持正值時,如果高速緩存遺漏被重復(fù),那么第二流水線360移動,并且,常常從第二流水線360掃出高速緩存標(biāo)記“tag_data”。如從以上的描述可以看出的那樣,由于最舊的高速緩存標(biāo)記的存儲標(biāo)號為零,因此掃出的處理結(jié)果 “tag_id”取負(fù)值。這是僅需要在上述的高速緩存確定中檢查信號“tag_id”的符號的原因。 即,分配存儲位置的序號(number)的方法被設(shè)計,使得最舊的高速緩存標(biāo)記與第0個對應(yīng)并且最新的高速緩存標(biāo)記與第(N-I)個對應(yīng)。結(jié)果,可通過確定第一流水線300的最后級中的數(shù)據(jù)處理結(jié)果的符號,獲得高速緩存命中確定。因此,可以非常簡單地完成高速緩存確定。當(dāng)從第二流水線360的“上游側(cè)”向“下游側(cè)”從第0個到第(N-I)個分配存儲標(biāo)號時, 可通過檢查信號“tag_id”的值是否比作為第二流水線的元素的數(shù)量的N小,獲得高速緩存命中確定。對于如上所述總是從最舊的高速緩存數(shù)據(jù)依次舍棄高速緩存數(shù)據(jù)的機(jī)構(gòu),高速緩存存儲器190可使用環(huán)形FIFO。在這種情況下,高速緩存確定單元120和高速緩存存儲器 190可容易地被同步化。注意,當(dāng)高速緩存確定指示高速緩存命中時,希望的高速緩存數(shù)據(jù)被存儲于由“tag_id”指示的位置處的高速緩存存儲器中。通過上述的處理,高速緩存確定單元120向訪問仲裁單元130輸出以下的內(nèi)容作為基于輸入存儲地址113的確定結(jié)果125 地址有效信號“valid,,, 作為高速緩存遺漏時的DRAM 165的數(shù)據(jù)存儲地址的地址信號“CaChe_miSS_ address,,, 處理裝置的識別信號“ID” ; 作為高速緩存數(shù)據(jù)的存儲地址的信號“ tag_id”,和·高速緩存確定結(jié)果 “ cachejni ss_f lag,,。[訪問仲裁單元]130以下將參照圖1描述訪問仲裁單元130的操作。當(dāng)確定結(jié)果125中的有效信號 “valid”有效(被斷言)時,訪問仲裁單元130操作;否則,它等待。訪問仲裁單元130根據(jù)確定結(jié)果125中的高速緩存確定結(jié)果“CaChe_miSS_flag”的有效(被斷言)/無效(被去斷言)狀態(tài),執(zhí)行以下的處理。 當(dāng)高速緩存確定結(jié)果“CaChe_miSS_flag”有效時,訪問仲裁單元130評價發(fā)送隊(duì)列150、接收隊(duì)列170和等待隊(duì)列140的各自存儲區(qū)域的空狀態(tài)。當(dāng)三個隊(duì)列均具有空區(qū)域時,訪問仲裁單元130使信號“ID、tag_id、chche_miss_flag” 135在等待隊(duì)列140中入列(enqueue)。同時,訪問仲裁單元130使地址信號“cachejniss_address” 132在發(fā)送隊(duì)列150中入列。如果不存在空區(qū)域,那么訪問仲裁單元130使驅(qū)動信號“enable” 121無效 (去斷言)以停止高速緩存確定單元120,并且進(jìn)行等待直到存儲區(qū)域變?yōu)榭铡?當(dāng)高速緩存確定結(jié)果“CaChe_miSS_flag”無效時,訪問仲裁單元130評價等待隊(duì)列140的空狀態(tài)。如果存在空區(qū)域,那么訪問仲裁單元130使信號“ID、tag_id、cache. miss_flag" 135在等待隊(duì)列140中入列。如果不存在空區(qū)域,那么訪問仲裁單元130使驅(qū)動信號“enable” 121無效(去斷言)以停止高速緩存確定單元120,并且進(jìn)行等待直到存儲區(qū)域變?yōu)榭?。[高速緩存存儲器仲裁單元180]以下將描述高速緩存存儲器仲裁單元180的操作。高速緩存存儲器仲裁單元180 評價是否在接收隊(duì)列170和等待隊(duì)列140的存儲區(qū)域中保持?jǐn)?shù)據(jù)。高速緩存存儲器仲裁單元180使要被處理的高速緩存確定結(jié)果“103叫_丨(1、(^(^6_1^%_打叫”從等待隊(duì)列140出列(dequeue)。當(dāng)?shù)却?duì)列140為空時,由于不存在要被處理的高速緩存確定結(jié)果,因此高速緩存存儲器仲裁單元180進(jìn)行等待而沒有任何處理。接下來,高速緩存存儲器仲裁單元 180取決于高速緩存確定結(jié)果“CaChe_miSS_flag”是無效(被去斷言)還是有效(被斷言)而執(zhí)行以下的處理。 當(dāng)高速緩存確定結(jié)果“CaChe_miSS_flag”無效(被去斷言)時,這意味著高速緩存命中。由此,高速緩存存儲器仲裁單元180基于從等待隊(duì)列140出列的數(shù)據(jù)元素中的 “tag_id”和FIFO高速緩存存儲器190的寫入指針,計算高速緩存存儲器190中的存儲地址。高速緩存存儲器仲裁單元180從高速緩存存儲器190基于該存儲地址讀出高速緩存的數(shù)據(jù)作為數(shù)據(jù)“read_data”192。然后,高速緩存存儲器仲裁單元180將高速緩存數(shù)據(jù) “valid、ID、cache_data” 185 輸出到 I/F 116。 當(dāng)高速緩存確定結(jié)果“CaChe_miSS_flag”有效(被斷言)時,這意味著高速緩存遺漏。高速緩存存儲器仲裁單元180確認(rèn)是否在接收隊(duì)列170中從DRAM 165接收到未存儲于高速緩存存儲器190中的數(shù)據(jù)。如果沒有接收到數(shù)據(jù),那么高速緩存存儲器仲裁單元180 進(jìn)行等待,直到接收到數(shù)據(jù)。如果接收到數(shù)據(jù),那么高速緩存存儲器仲裁單元180使要被更新的高速緩存數(shù)據(jù)從接收隊(duì)列170出列。然后,高速緩存存儲器仲裁單元180在由寫入指針?biāo)甘镜母咚倬彺娲鎯ζ?90的存儲區(qū)域中寫入出列的數(shù)據(jù)作為數(shù)據(jù)“write_data”182。 同時,高速緩存存儲器仲裁單元180將高速緩存數(shù)據(jù)“valid、ID、cache_data" 185輸出到 I/F 116。接下來,高速緩存存儲器仲裁單元180使高速緩存存儲器190的寫入指針遞增 (increment)。當(dāng)超過FIFO容量時,高速緩存存儲器仲裁單元180將寫入指針復(fù)位為零。高速緩存裝置110將通過上述的處理所獲得的高速緩存數(shù)據(jù)分發(fā)給處理裝置101 至104。高速緩存裝置110包含用于分發(fā)高速緩存數(shù)據(jù)的環(huán)形總線115。與這些處理裝置對應(yīng)的I/F 116經(jīng)由該環(huán)形總線115相互連接。與各自的處理裝置連接的I/F 116中的每一個接收作為來自高速緩存存儲器仲裁單元180的輸出的高速緩存數(shù)據(jù)“valid、ID、cache, data” 185。然后,當(dāng)接收的高速緩存數(shù)據(jù)的識別信號“ID”與連接的處理裝置的識別信號 “ID”匹配時,相應(yīng)的I/F 116將高速緩存數(shù)據(jù)輸出到處理裝置。如果兩個識別信號不匹配, 那么各I/F 116經(jīng)由環(huán)形總線115向位于隨后的位置處的另一 I/F 116發(fā)送接收的高速緩存數(shù)據(jù)。高速緩存裝置110采用非阻擋高速緩存機(jī)構(gòu),以隱藏作為高速緩存遺漏時的處罰的重填等待時間(refill latency)。即使當(dāng)確定結(jié)果125指示高速緩存遺漏時,該機(jī)構(gòu)也在等待隊(duì)列140中保存后面需要的信息“10、丨呢_丨(1、(^(^6_1^%_打叫”135。然后,高速緩存裝置110在完成從DRAM 165讀出高速緩存遺漏數(shù)據(jù)并且將其存儲于高速緩存存儲器190 中的處理之前,執(zhí)行下一像素的高速緩存確定處理。通過該處理,即使在從DRAM 165向高速緩存存儲器190重填高速緩存遺漏數(shù)據(jù)時,高速緩存裝置110也可對于隨后的像素執(zhí)行高速緩存確定。因此,可以抑制高速緩存遺漏時的性能劣化。高速緩存裝置110可使用非常簡單的機(jī)構(gòu)來實(shí)現(xiàn)可被多個處理裝置共享的完全相聯(lián)的高速緩存裝置。當(dāng)多個處理裝置共享一個高速緩存裝置110時,具有低的相關(guān)性的地址被接連輸入到高速緩存確定單元120。由于采用一般直接映射方法的高速緩存確定單元從各地址的低位(lower bits)計算用于管理高速緩存標(biāo)記的標(biāo)記存儲器的存儲地址,因此,具有低的相關(guān)性的這種地址容易導(dǎo)致高速緩存沖突。與處理裝置的數(shù)量對應(yīng)地增加組相聯(lián)(set-associative)節(jié)點(diǎn)的數(shù)量是減少高速緩存沖突可能性的一種解決方案。但是, 當(dāng)處理裝置的數(shù)量變得非常大時,必須應(yīng)對非常大量的節(jié)點(diǎn)。由此,由于高速緩存確定單元中的選擇器的邏輯級的數(shù)量大,因此一般的高速緩存裝置實(shí)現(xiàn)方法變得難以使定時收斂(converge),并且不能以高的操作頻率來操作高速緩存確定單元。作為對比,由于高速緩存確定單元120通過流水線配置來獲得確定,因此它可以以非常高的操作頻率操作。并且,由于從較舊的數(shù)據(jù)依次自動刪除數(shù)據(jù),因此高速緩存確定單元120不需要現(xiàn)有技術(shù)中所需要的高速緩存沖突時的任何復(fù)雜的替換控制。出于該原因,高速緩存確定單元120和高速緩存存儲器仲裁單元180可通過非常簡單的機(jī)構(gòu)被同步化,并且,可以使用FIFO作為高速緩存存儲器。由此,這種布置對于提高高速緩存裝置110的操作頻率是有利的。更重要的是, 高速緩存裝置110采用完全相聯(lián)方法,并且,決不導(dǎo)致由于地址的低位相同所造成的高速緩存沖突。將描述使用圖4所示的高速緩存確定單元400的高速緩存裝置。圖4是用于解釋高速緩存確定單元400的電路布置的例子的電路圖。代替圖1所示的高速緩存裝置110 的高速緩存確定單元120,使用高速緩存確定單元400。與上述的高速緩存裝置110的基本布置中相同的部分的描述將不被重復(fù)。高速緩存確定單元400包含復(fù)制裝置410、運(yùn)算裝置430和高速緩存確定裝置480。運(yùn)算裝置430包含多個數(shù)據(jù)處理裝置(D. P. A.) 200_1至 200_N,這些數(shù)據(jù)處理裝置中的每一個具有與使用圖2描述的數(shù)據(jù)處理裝置200相同的布置。以此方式,由于高速緩存確定單元400包含多個上述的數(shù)據(jù)處理裝置,因此增加了可同時比較的數(shù)據(jù)元素的數(shù)量。由于圖4所示的高速緩存確定單元400包含多個基本的數(shù)據(jù)處理裝置,因此可以再利用已設(shè)計和驗(yàn)證的數(shù)據(jù)處理裝置,由此提高開發(fā)效率。包含于高速緩存確定單元400中的各自的Data Slot與圖3所示的節(jié)點(diǎn)310和 330相同,并且當(dāng)信號“enable” 121有效(被斷言)時使用新的數(shù)據(jù)元素更新目前為止存儲的數(shù)據(jù)元素。節(jié)點(diǎn)411從I/F 112接收存儲地址113。如上所述,存儲地址113包含有效信號“valid”、地址信號“data”和識別信號“ID”。復(fù)制裝置410如420指示的那樣復(fù)制存儲地址113,以在節(jié)點(diǎn)412_1至412_N中將其重定時(retime)。節(jié)點(diǎn)412_1至412_N分別將存儲的數(shù)據(jù)元素輸出到相應(yīng)的數(shù)據(jù)處理裝置200_1至200_N的第一流水線300。以此方式,同一存儲地址113的復(fù)制品在相同的定時被并行輸入到各自的數(shù)據(jù)處理裝置的第一流水線300。運(yùn)算裝置430接收從高速緩存確定裝置480的解碼器452輸出的信號“CaChe_ miss_flag"444作為輸入到各自的數(shù)據(jù)處理裝置200_1至200_N的驅(qū)動信號“shift”。然后,所有的數(shù)據(jù)處理裝置200_1至200_N的第二流水線360的數(shù)據(jù)元素同步移動。從高速緩存確定裝置480輸出的信號“cache_miss_flag”和“cache_miss_address”作為信號“tag_ valid”和“tag_data”被輸入到數(shù)據(jù)處理裝置(1)200_1的第二流水線360。從數(shù)據(jù)處理裝置(1)的第二流水線360輸出的信號“tag_Valid”和“tag_data”作為信號“tag_Valid” 和“tag_data”被輸入到數(shù)據(jù)處理裝置O)200_2的第二流水線360(440_1)。這同樣適用于隨后的數(shù)據(jù)處理裝置G40_2、440_N)。從數(shù)據(jù)處理裝置(i)的第二流水線360輸出的信號 "tag_valid"和“tag_data,,作為信號“tag_Valid,,和“tag_data,,被輸入到數(shù)據(jù)處理裝置 (i+1)的第二流水線360。以此方式,在運(yùn)算裝置430中,數(shù)據(jù)處理裝置被順次連接,使得某數(shù)據(jù)處理裝置的第二流水線的輸出“tag_Valid、tag_data"與隨后的數(shù)據(jù)處理裝置的第二流水線的輸入串行連接。高速緩存確定裝置480從所有的數(shù)據(jù)處理裝置200_1至200_N接收處理結(jié)果 "tag_id(l)、tag_id(2).....tag_id(N) ” 450。高速緩存確定裝置480進(jìn)一步接收從數(shù)據(jù)處理裝置200_1至200_N中的任一個的第一流水線300輸出的信號“valicUdata”。解碼器 452確認(rèn)有效信號“valid” 453是否有效(被斷言)以及信號“enable” 121是否有效。如果兩個信號均有效,那么高速緩存確定裝置480控制解碼器452以確認(rèn)N個處理結(jié)果“tag_ id(l)、tag_id(2)、. · ·、tag_id(N) ”450 的符號位 451。如果符號位 451 包含至少一個“0”, 那么作為高速緩存確定結(jié)果解碼器452確定高速緩存命中,并且輸出“0”作為信號“cache_ miss_flag"4440如果所有的符號位451為“ 1”,那么作為高速緩存確定結(jié)果解碼器452確定高速緩存遺漏,并且輸出“1”作為信號“caChe_miSS_flag”444。在高速緩存命中的情況下,解碼器452將與符號位的“0”對應(yīng)的數(shù)據(jù)處理裝置的序號456輸出到選擇器454。選
擇器454從處理結(jié)果“tag_id(l)、tag_id(2).....tag_id(N) ” 450選擇由序號456指示的
數(shù)據(jù)處理裝置的“tag_id”,并且作為信號“tag_id”458將其輸出。當(dāng)信號“enable” 121有效(被斷言)時,節(jié)點(diǎn)460使用輸入的數(shù)據(jù)元素更新目前為止存儲的數(shù)據(jù)元素。然后,節(jié)點(diǎn) 460將由自身存儲的數(shù)據(jù)元素作為確定結(jié)果125輸出到訪問仲裁單元130。如上所述,在使用圖4所示的高速緩存確定單元400的高速緩存裝置中,單個地址信號“data”在各自的數(shù)據(jù)處理裝置中同時與多個不同的地址信號“tag_Valid”比較。于是,可以容易地實(shí)現(xiàn)具有更大量的節(jié)點(diǎn)的完全相聯(lián)的高速緩存裝置。使用高速緩存確定單元400的高速緩存裝置包含各具有基本布置的多個數(shù)據(jù)處理裝置,并且可通過僅連接各自的數(shù)據(jù)處理裝置的第一流水線300和第二流水線360而實(shí)現(xiàn)。出于該原因,可以再利用已設(shè)計并驗(yàn)證的數(shù)據(jù)處理裝置。結(jié)果,例如,在需要增加/減少完全相聯(lián)的高速緩存裝置的節(jié)點(diǎn)的數(shù)量的開發(fā)中,可以提高開發(fā)效率。并且,高速緩存確定單元400使用流水線配置執(zhí)行數(shù)據(jù)處理,并且可通過僅計算所有符號位的邏輯積來確定高速緩存遺漏。以此方式,高速緩存裝置可以以與常規(guī)的高速緩存裝置相比非常高的操作頻率操作。注意,在高速緩存遺漏的情況下,可作為位于最后的位置處的數(shù)據(jù)處理裝置 (N) 200_N的第二流水線360的輸出來掃出數(shù)據(jù)元素“tag_data、tag_valid"0這些掃出的數(shù)據(jù)元素被輸出到節(jié)點(diǎn)460,節(jié)點(diǎn)460可將作為“swe印_address、swe印_address_valid”包含這些數(shù)據(jù)元素的確定結(jié)果125輸出到訪問仲裁單元130。使用這些數(shù)據(jù)元素,可以實(shí)現(xiàn)回寫(write-back)高速緩存裝置。在回寫高速緩存裝置中,暫時存儲于高速緩存存儲器190中的高速緩存數(shù)據(jù)被通過處理裝置A 101至D 104寫出的寫入數(shù)據(jù)替換。出于該原因,暫時存儲于高速緩存存儲器190中的數(shù)據(jù)必須被保存于作為外部存儲器的DRAM 165中。為了應(yīng)對回寫高速緩存裝置并允許處理裝置A 101至D 104執(zhí)行寫入操作,要輸出的存儲地址113包含 寫入標(biāo)記 “write_enable” ;和 寫入數(shù)據(jù) “write_data”。當(dāng)寫入標(biāo)記“Write_enable”有效(被斷言)時,寫入數(shù)據(jù)“Write_data”在高速緩存存儲器190的存儲地址處被寫入。當(dāng)寫入標(biāo)記“write_enable”無效(被去斷言)時, 執(zhí)行上述的讀取高速緩存裝置的操作。然后,在高速緩存確定單元400中的各自的數(shù)據(jù)處理裝置200_1至200_N的第一流水線300中同步于包含于存儲地址113中的其它的數(shù)據(jù)元素而移動數(shù)據(jù)元素“write_enable”和“write_data”。數(shù)據(jù)處理裝置(N) 200_N將數(shù)據(jù)元素 “write_enable”和“write_data”同步于其它的數(shù)據(jù)元素而輸出到節(jié)點(diǎn)460。節(jié)點(diǎn)460將包含這些數(shù)據(jù)的確定結(jié)果125輸出到訪問仲裁單元130。即,該確定結(jié)果125包含
作為高速緩存遺漏時的DRAM的數(shù)據(jù)存儲地址的地址信號“ cache_miss_ address,,; 處理裝置的識別信號“ID” ; 高速緩存數(shù)據(jù)的存儲地址“tag_id” ; 高速緩存確定結(jié)果 “cache_miss_flag” ; 寫入標(biāo)記 “write_enable” ; 寫入數(shù)據(jù) “write_data”; 掃出的地址信號;和 掃出的地址有效信號確定結(jié)果125經(jīng)由等待隊(duì)列140到達(dá)高速緩存存儲器仲裁單元180。高速緩存存儲器仲裁單元180以與如上所述相同的方式使用“ID、tag_id”計算高速緩存存儲器190的存儲地址。當(dāng)高速緩存確定結(jié)果“CaChe_miSS_flag”無效(被去斷言)時,由于這意味著高速緩存命中,因此高速緩存存儲器仲裁單元180將寫入數(shù)據(jù)“Write_data”寫入在高速緩存存儲器190的存儲地址處。另一方面,當(dāng)高速緩存確定結(jié)果“CaChe_miSS_flag”有效 (被斷言)時,由于這意味著高速緩存遺漏,因此高速緩存存儲器仲裁單元180不能立即將寫入數(shù)據(jù)“Write_data”寫入在高速緩存存儲器190中。當(dāng)掃出的地址有效信號“8恥印_ addressjalid”有效(被斷言)時,暫時存儲于高速緩存存儲器190的存儲地址處的數(shù)據(jù)被重寫(overwrite)。由此,高速緩存存儲器仲裁單元180從高速緩存存儲器190讀出存儲地址處的高速緩存數(shù)據(jù),并且在由掃出的地址信號“Sm^p_address”指示的DRAM 165的區(qū)域中保存該高速緩存數(shù)據(jù)。之后,高速緩存存儲器仲裁單元180在高速緩存存儲器190 中重填由地址信號“cache_miSS_addreSS”指示的作為外部存儲器的DRAM 165的區(qū)域中的數(shù)據(jù)。此時,高速緩存存儲器仲裁單元180通過寫入數(shù)據(jù)“write_data”重寫從DRAM 165 讀出的數(shù)據(jù),并且在高速緩存存儲器190的存儲地址處暫時存儲重寫的數(shù)據(jù)。當(dāng)讀出的數(shù)據(jù)和“write_data”具有相同的大小(相同的字節(jié)數(shù))時,高速緩存存儲器仲裁單元180可跳過該重填操作。當(dāng)掃出的地址有效信號“swe^_address_valid”無效(被去斷言)時, 不在高速緩存存儲器190的存儲地址處暫時存儲有效的高速緩存數(shù)據(jù)。因此,高速緩存存儲器仲裁單元180不需要在高速緩存存儲器190的存儲地址處保存暫時存儲的高速緩存數(shù)據(jù)。在這種情況下,如果必要的話,高速緩存存儲器仲裁單元180可在執(zhí)行上述的重填操作的同時在高速緩存存儲器190的存儲地址處暫時存儲數(shù)據(jù)“write_data”作為高速緩存數(shù)據(jù)。通過上述的布置,可以容易地實(shí)現(xiàn)回寫高速緩存裝置。用作回寫高速緩存裝置的高速緩存裝置的高速緩存確定單元400也具有與讀取高速緩存裝置相同的優(yōu)點(diǎn)。特別地, 從較舊的數(shù)據(jù)依次自動刪除數(shù)據(jù),并且,不需要執(zhí)行高速緩存沖突時的復(fù)雜替換控制。于是,僅需要在作為外部存儲器的DRAM 165中從較舊的數(shù)據(jù)依次保存暫時存儲于高速緩存存儲器中的高速緩存數(shù)據(jù)。如上所述,可通過非常簡單的方法來實(shí)現(xiàn)回寫高速緩存裝置所特有的回寫控制。以下將描述使用圖5所示的高速緩存確定單元500的高速緩存裝置。圖5是用于解釋包含分割信息表的高速緩存確定單元500的電路布置的示例性電路圖。替代圖1所示的高速緩存裝置110的高速緩存確定單元120,使用高速緩存確定單元500。
高速緩存確定單元500包含復(fù)制裝置510、運(yùn)算裝置530和高速緩存確定裝置 580。運(yùn)算裝置530包含多個數(shù)據(jù)處理裝置200_1至200_N,這些數(shù)據(jù)處理裝置中的每一個具有與使用圖2描述的數(shù)據(jù)處理裝置200相同的布置。以此方式,如高速緩存確定單元400 中那樣,高速緩存確定單元500包含多個上述的數(shù)據(jù)處理裝置,由此增加了可同時比較的數(shù)據(jù)元素的數(shù)量。并且,當(dāng)多個處理裝置A 101至D 104共享高速緩存裝置110時,高速緩存確定單元500可對于各自的處理裝置切換要被各處理裝置專用的高速緩存容量(節(jié)點(diǎn)的數(shù)量)。通過切換各處理裝置的專用分配,可以給具有高的優(yōu)先級的圖像處理分配較大的高速緩存容量(節(jié)點(diǎn)的數(shù)量)。即,在執(zhí)行圖像處理時,根據(jù)圖像處理的目的來適應(yīng)性地切換高速緩存容量(節(jié)點(diǎn)的數(shù)量)的專用分配,由此以希望的效率執(zhí)行圖像處理。與復(fù)制裝置410中不同,圖5所示的復(fù)制裝置510包含分割信息表515。因此,將不給出與復(fù)制裝置410中的部分共同的部分的描述,并且,以下將描述分割信息表515。在分割信息表515中,CPU 160事先設(shè)定分割信息,以切換要被各自的處理裝置專用的高速緩存容量(節(jié)點(diǎn)的數(shù)量)的分配。分割信息表示要被各自的處理裝置專用的數(shù)據(jù)處理裝置 200_1至200_N的分配(組)。以下將參照圖7和圖8詳細(xì)描述分割信息表515。分割信息表515如以圖7所示的格式700那樣允許對于處理裝置的各識別信號ID 702設(shè)定分割信息704。當(dāng)存在M個處理裝置并且在運(yùn)算裝置530中存在N個數(shù)據(jù)處理裝置200時,對應(yīng)于識別信號ID 702 = 1至M中的每一個存儲N位分割信息704。N位分割信息704從最高有效位(the most significant bit)依次用作標(biāo)記,該標(biāo)記的每個位指示是否要使用由該位指示的數(shù)據(jù)處理裝置200。當(dāng)各位為“1”時,它指示所指示的數(shù)據(jù)處理裝置的 < 使用 > ;當(dāng)它是“0”時,它指示〈不使用〉。以下將參照圖8描述分割信息表515的實(shí)際例子800。在實(shí)際例子800中,對應(yīng)于四個識別信號ID 702 = 1至4存儲四條8位分割信息704。這四個識別信號ID 702分別與圖1所示的四個處理裝置A 101至D 104相關(guān)聯(lián)。然后,8位分割信息704的各單個位從最高有效位依次與圖5所示的數(shù)據(jù)處理裝置(1)200_1至(N)200_N中的每一個相關(guān)聯(lián)。例如,處理裝置A 101的分割信息為“10000000”,并且具有指示處理裝置A 101使用數(shù)據(jù)處理裝置(1)(在820處示出)、但它不使用剩余的數(shù)據(jù)處理裝置( 至(8)的設(shè)置。處理裝置 B 102的分割信息為“01110000”,并且具有指示處理裝置B 102使用數(shù)據(jù)處理裝置(2)至
(在822處示出)、但它不使用剩余的數(shù)據(jù)處理裝置(1)和( 至(8)的設(shè)置。同樣地, 處理裝置C 103的設(shè)置指示它使用數(shù)據(jù)處理裝置( 和(7),但它不使用剩余的數(shù)據(jù)處理裝置。處理裝置D 104的設(shè)置指示它使用數(shù)據(jù)處理裝置(6)和(8),但它不使用剩余的數(shù)據(jù)處理裝置。在該實(shí)際例子800中,處理裝置AlOl專用數(shù)據(jù)處理裝置(1),處理裝置B 102 專用數(shù)據(jù)處理裝置( 至G),處理裝置C 103專用數(shù)據(jù)處理裝置( 和(7),并且,處理裝置D 104專用數(shù)據(jù)處理裝置(6)和(8)。各條分割信息704的設(shè)置僅需要在多個處理裝置之間是排他的,并且,可以像處理裝置C103和D 104的設(shè)置中那樣不連續(xù)地分配數(shù)據(jù)處理裝置(在擬4處示出)。回過來參照圖5,復(fù)制裝置510使用輸入的識別信號“ID”從分割信息表515讀出與該識別信號“ID”對應(yīng)的分割信息“partition” 518,并且將讀出的信息輸入到節(jié)點(diǎn)511。 節(jié)點(diǎn)511復(fù)制輸入有效信號“valid”和輸入數(shù)據(jù)信號“data、ID、partition”,并且將它們輸出到節(jié)點(diǎn)512_1至512_N。節(jié)點(diǎn)512_1至512_N分別將由它們自身存儲的數(shù)據(jù)元素輸出到相應(yīng)的數(shù)據(jù)處理裝置200_1至200_N的第一流水線300。以此方式,復(fù)制裝置510復(fù)制如數(shù)據(jù)處理裝置200的數(shù)量那樣多的數(shù)據(jù)元素以將它們重定時。[第二流水線360的連接切換]在運(yùn)算裝置530中,如虛線部分540所示,連接各自的數(shù)據(jù)處理裝置的第二流水線 360。根據(jù)從數(shù)據(jù)處理裝置(N) 200_N輸出的分割信息“partition” 535自動切換第二流水線360的連接。運(yùn)算裝置530分別計算從解碼器552輸出的信號“cache_miSS_flag”559 和從數(shù)據(jù)處理裝置(N)輸出的分割信息“partition” 535的與數(shù)據(jù)處理裝置(1)至(N)對應(yīng)的各自位的邏輯積。然后,運(yùn)算裝置530輸入計算的邏輯積作為相應(yīng)的數(shù)據(jù)處理裝置的
驅(qū)動信號“shift” (544_U544_2.....544_N)。結(jié)果,所有數(shù)據(jù)處理裝置之中的僅僅與分割
信息中的 < 使用 > 對應(yīng)的數(shù)據(jù)處理裝置的第二流水線360的數(shù)據(jù)元素被同步移動。接下來,運(yùn)算裝置530對切換第二流水線360的連接所需要的數(shù)據(jù)元素進(jìn)行匯編 (compile)。從各自的數(shù)據(jù)處理裝置(1)至(N)的第二流水線360輸出的數(shù)據(jù)元素532_1 至 532_N、“cache_miss_flag”559 和"cache_miss_address (data) ” 555 被匯聚(bundle) 于總線542上。然后,數(shù)據(jù)從總線542被輸入到用于選擇對于數(shù)據(jù)處理裝置(1)至(N)的第二流水線 360 的輸入的選擇器 545_1、545_2、. · ·、545_N。選擇器 545_1、545_2、. · ·、545_ N基于分割信息“partiti0n”535選擇相應(yīng)的數(shù)據(jù)元素,并且將選擇的數(shù)據(jù)元素輸入到數(shù)據(jù)處理裝置(1)至(N)的第二流水線360。并且,可以添加用于輸出在高速緩存遺漏時被掃出的數(shù)據(jù)元素的選擇器M8。掃出的數(shù)據(jù)元素基于分割信息“partiti0n”535從總線542被選擇,并且作為數(shù)據(jù)元素”被輸出。如上所述,當(dāng)高速緩存裝置110被用作回寫高速緩存裝置時,使用這些數(shù)據(jù)元素。例如,實(shí)際例子800中對于第二流水線的輸入選擇方法如下。如從實(shí)際例子800可以看出的那樣,當(dāng)從數(shù)據(jù)處理裝置(N)的第一流水線300輸出的識別序號“ID”是“1”時,分割信息包含設(shè)置“10000000”。當(dāng)與“ID” = “1”的數(shù)據(jù)元素相關(guān)聯(lián)的高速緩存確定結(jié)果是高速緩存遺漏時,數(shù)據(jù)處理裝置(1)的第二流水線360被移動。由此,作為對于數(shù)據(jù)處理裝置(1)的第二流水線的輸入,從總線542上的那些數(shù)據(jù)選擇數(shù)據(jù)“cache_miSS_flag”559和 "cache_miss_address (data) ”555。作為掃出的數(shù)據(jù)兀素"sweep_address、sweep_address_ valid”,選擇來自數(shù)據(jù)處理裝置(1)的第二流水線360的數(shù)據(jù)元素532_1。另一方面,如從實(shí)際例子800可以看出的那樣,當(dāng)從數(shù)據(jù)處理裝置(N)的第一流水線300輸出的識別序號 “ID”是“2”時,分割信息包含設(shè)置“01110000”。當(dāng)與“ID” = “2”的數(shù)據(jù)元素相關(guān)聯(lián)的高速緩存確定結(jié)果是高速緩存遺漏時,數(shù)據(jù)處理裝置( 至(4)的第二流水線被移動。由此, 作為對于數(shù)據(jù)處理裝置O)的第二流水線360的輸入,從總線542上的那些數(shù)據(jù)選擇數(shù)據(jù) "cache_miss_flag”559 和“cache_miss_address (data) ”555。作為對于數(shù)據(jù)處理裝置(3) 的第二流水線的輸入,來自數(shù)據(jù)處理裝置O)的第二流水線的輸出5322被選擇。作為對于數(shù)據(jù)處理裝置的第二流水線的輸入,來自數(shù)據(jù)處理裝置(3)的第二流水線的輸出被選擇。并且,作為掃出的數(shù)據(jù)元素“8 6印_3(1(1儀88、8 6印_3(1(1儀88]31丨(1”,來自數(shù)據(jù)處理裝置⑷的第二流水線的輸出被選擇。這同樣適用于與“ID” = “3”和“4”的數(shù)據(jù)元素相關(guān)聯(lián)的第二流水線的連接的切換。即使當(dāng)分割信息像實(shí)際例子800的部分824中那樣包含不連續(xù)的設(shè)置時,也以數(shù)據(jù)處理裝置的裝置序號的升序依次連接第二流水線。即,來自要使用的數(shù)據(jù)處理裝置的第二流水線的輸出僅需要根據(jù)分割信息“partition” 535的設(shè)置與要使用的下一數(shù)據(jù)處理裝置的第二流水線的輸入串行連接。高速緩存確定裝置580接收所有數(shù)據(jù)處理裝置200_1至200_N的處理結(jié)果“tag_
id(l), tag_id(2).....tag_id(N)”550。高速緩存確定裝置580從數(shù)據(jù)處理裝置200_1
至200_N中的任一個接收信號“valid、data、ID、partition”。在圖5中,從數(shù)據(jù)處理裝置 (N) 200_N輸入這些信號,但是可從另一數(shù)據(jù)處理裝置輸入它們。與解碼器452不同,解碼器 552接收分割信息“partiti0n”535。以下將參照圖6詳細(xì)描述解碼器552。解碼器552計算以下的四個信號(1位信號)的邏輯積 有效信號 “valid” 553 ; 通過反轉(zhuǎn)(invert)數(shù)據(jù)處理裝置(1)至(N)中的一個的處理結(jié)果“tag_id”的符號位(反轉(zhuǎn)符號位551的任意的1位)獲得的信號; 分割信息“partition” 535的與數(shù)據(jù)處理裝置(1)至(N)中的一個對應(yīng)的1位信號;和 驅(qū)動信號“enable” 121。當(dāng)邏輯積中的至少一個是“1”時,解碼器552將高速緩存命中確定為高速緩存確定結(jié)果;當(dāng)所有的邏輯積為“0”時,它將高速緩存遺漏確定為高速緩存確定結(jié)果。當(dāng)所有的邏輯積為“0”時,解碼器552使信號“cache_miSS_flag”559有效(斷言)并且輸出該信號。在高速緩存命中的情況下,解碼器552將與邏輯積=“1”對應(yīng)的數(shù)據(jù)處理裝置的裝置序號(1至N中的任一個)556輸出到選擇器554。高速緩存確定裝置580使用選擇器554 基于高速緩存命中裝置序號556從多個處理結(jié)果“tag_id(l)至tag_id(N) ” 550選擇高速緩存命中時的處理結(jié)果“tag_id” 558,并且將其輸出到節(jié)點(diǎn)560。以下將描述使用高速緩存確定單元500的高速緩存裝置的高速緩存存儲器仲裁單元180的操作和高速緩存存儲器900的布置。首先將描述圖9所示的高速緩存存儲器 900。替代圖1所示的高速緩存存儲器190,使用高速緩存存儲器900。高速緩存存儲器900 也由FIFO配置。高速緩存存儲器900被分成與數(shù)據(jù)處理裝置(1)至(N)對應(yīng)的區(qū)域。根據(jù)分割信息的設(shè)置,對于各ID確定作為FIFO的基準(zhǔn)的基本指針和各區(qū)域的行數(shù)(number of lines)。即使當(dāng)區(qū)域像實(shí)際例子800的部分824中那樣是不連續(xù)的時,也通過上述的第二流水線連接切換器件的功能來確保要使用的區(qū)域是連續(xù)的。這意味著,如附圖標(biāo)記901所示,與數(shù)據(jù)處理裝置(6)和(7)對應(yīng)的區(qū)域在被替換的同時在高速緩存存儲器900上被確保。于是,即使當(dāng)“ ID ” = “ 3 ”和“ 4 ”時,也可如“ ID ” = “ 1”和“ 2,,的情況中那樣通過簡單的FIFO控制來獲得對于高速緩存存儲器900的數(shù)據(jù)訪問。高速緩存存儲器仲裁單元180 獲取根據(jù)讀出“ID”的上述的基本指針和行數(shù)以及各ID的寫入指針。當(dāng)確定高速緩存命中時,高速緩存存儲器仲裁單元180基于同時讀出的結(jié)果“tag_id”以及高速緩存存儲器900 的基本指針和寫入指針來計算地址。然后,高速緩存存儲器仲裁單元180將讀出的高速緩存數(shù)據(jù)作為數(shù)據(jù)“write_data”182寫入在由高速緩存存儲器900的基本指針和寫入指針的總值所指示的存儲區(qū)域中。如上所述,高速緩存確定單元500使用流水線配置執(zhí)行數(shù)據(jù)處理。通過計算與各自數(shù)據(jù)處理裝置對應(yīng)的輸出的反轉(zhuǎn)符號位和分割信息的至多1位邏輯積,可以確定高速緩存命中。結(jié)果,與常規(guī)的高速緩存裝置相比,該高速緩存裝置可以以非常高的操作頻率來操作。由于從較舊的數(shù)據(jù)依次自動刪除數(shù)據(jù),因此不需要高速緩存沖突時的復(fù)雜替換控制。并且,高速緩存存儲器對于預(yù)定的區(qū)域僅需要環(huán)形FIFO操作。為了實(shí)現(xiàn)高速緩存存儲器900, 僅需要使用具有多個寫入指針的多儲蓄庫(multi-bank)FIFO。并且,可使用多個FIFO來實(shí)現(xiàn)高速緩存存儲器900。在以上描述的例子中,準(zhǔn)備分割信息表,并且,對于各處理裝置切換分割信息。但是,當(dāng)各處理裝置對于處理裝置的各自處理內(nèi)容(操作狀態(tài))指定分割信息時,可以實(shí)現(xiàn)以上的處理。圖5中描述的多個數(shù)據(jù)處理裝置(1)至(N)的第一流水線300和第二流水線360 的各自節(jié)點(diǎn)基于一個系統(tǒng)的時鐘信號(未示出)而操作。但是,可通過將不同系統(tǒng)的同相時鐘信號分別輸入到數(shù)據(jù)處理裝置(1)至(N),操作多個數(shù)據(jù)處理裝置(1)至(N)。在優(yōu)先節(jié)電時,對于數(shù)據(jù)處理裝置(1)至(N)中的一個的時鐘信號被停止,以停止該數(shù)據(jù)處理裝置。例如,在上述的實(shí)際例子800中,當(dāng)只有處理裝置A 101操作并且處理裝置B 102至D 104停止時,在分割信息表515中的與“ID” = “2”至“4”對應(yīng)的各條分割信息中設(shè)置信息 “00000000”。然后,數(shù)據(jù)處理裝置(1)以外的數(shù)據(jù)處理裝置被停止。另一方面,為了在優(yōu)先節(jié)電的同時操作處理裝置A 101至D 104(盡管是以低速),在與“ID”=“1”至“4”對應(yīng)的各條分割信息中設(shè)置信息“10000000”。通過該設(shè)置,數(shù)據(jù)處理裝置(1)被所有的處理裝置 A 101至D 104共享。由于不使用剩余的數(shù)據(jù)處理裝置,因此可以停止它們。并且,通過對于數(shù)據(jù)處理裝置(1)至(N)的各自區(qū)域使用不同SRAM來實(shí)現(xiàn)高速緩存存儲器900。對應(yīng)于停止的數(shù)據(jù)處理裝置,停止對于不使用的SRAM的時鐘信號(或電源電壓)的供給。以此方式,可以獲得進(jìn)一步的節(jié)電。圖10是用于解釋替代環(huán)形總線使用縱橫開關(guān)的布置的示例性電路圖。圖10示出M 個處理裝置⑴至(M)和N個數(shù)據(jù)處理裝置(1)至(N)之間的連接的例子,替代上述的經(jīng)由環(huán)形總線的連接,經(jīng)由縱橫開關(guān)1020和1060獲得所述連接。為了允許所述多個處理裝置專用數(shù)據(jù)處理裝置中的每一個,在數(shù)據(jù)處理裝置之前和之后插入基于分割信息“partition” 切換的縱橫開關(guān)1020和1060。通過該布置,多個處理裝置可并行使用多個數(shù)據(jù)處理裝置。 通過這樣的并行處理,多個處理裝置可被加速。也可通過讀出并執(zhí)行記錄在存儲器件上的程序以執(zhí)行上述實(shí)施例的功能的系統(tǒng)或裝置的計算機(jī)(或諸如CPU或MPU的器件)、以及通過由系統(tǒng)或裝置的計算機(jī)通過例如讀出并執(zhí)行記錄在存儲器件上的程序以執(zhí)行上述實(shí)施例的功能來執(zhí)行其步驟的方法,實(shí)現(xiàn)本發(fā)明的各方面。出于該目的,例如經(jīng)由網(wǎng)絡(luò)或從用作存儲器件的各種類型的記錄介質(zhì)(例如,計算機(jī)可讀介質(zhì))給計算機(jī)提供程序。雖然已參照示例性實(shí)施例描述了本發(fā)明,但要理解,本發(fā)明不限于公開的示例性實(shí)施例。所附的權(quán)利要求的范圍要被賦予最寬的解釋,以包含所有這樣的修改以及等同的結(jié)構(gòu)和功能。
權(quán)利要求
1.一種運(yùn)算裝置,包括多個第一保持單元,所述多個第一保持單元中的每一個包含串行連接的多個第一節(jié)點(diǎn),并且將保持在各第一節(jié)點(diǎn)中的第一數(shù)據(jù)移動到位于第一方向上的相鄰節(jié)點(diǎn);多個第二保持單元,所述多個第二保持單元中的每一個包含串行連接的多個第二節(jié)點(diǎn),并且將保持在各第二節(jié)點(diǎn)中的第二數(shù)據(jù)移動到位于第二方向上的相鄰節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng);運(yùn)算單元,所述運(yùn)算單元對于作為第一保持單元的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),使用保持在關(guān)注節(jié)點(diǎn)中的第一數(shù)據(jù)和保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的所述多個第二節(jié)點(diǎn)中的至少一個中的第二數(shù)據(jù)來執(zhí)行運(yùn)算;以及輸入單元,所述輸入單元將第一數(shù)據(jù)并行輸入到所述多個第一保持單元之中的至少兩個,并且將第二數(shù)據(jù)串行輸入到所述多個第二保持單元之中的至少兩個。
2.根據(jù)權(quán)利要求1的運(yùn)算裝置,還包括獲取單元,所述獲取單元從外部裝置獲取第一數(shù)據(jù)和第二數(shù)據(jù); 第一輸入單元,所述第一輸入單元復(fù)制獲取的第一數(shù)據(jù),并且將復(fù)制的第一數(shù)據(jù)輸入到所述多個第一保持單元中的每一個;以及第二輸入單元,所述第二輸入單元將獲取的第二數(shù)據(jù)輸入到所述多個第二保持單元之ο
3.根據(jù)權(quán)利要求1的運(yùn)算裝置,還包括多個運(yùn)算電路,所述多個運(yùn)算電路中的每一個包含一個第一保持單元和一個第二保持單元,其中,所述多個運(yùn)算電路被分組成多個組,以及輸入單元對于各組將第二數(shù)據(jù)輸入到組中的一個運(yùn)算電路的第二保持單元,并且第二保持單元對于各組被串行連接。
4.根據(jù)權(quán)利要求3的運(yùn)算裝置,還包括 動態(tài)改變所述組的單元。
5.一種確定裝置,包括根據(jù)權(quán)利要求1的運(yùn)算裝置,其中各第一保持單元是第一流水線,所述第一流水線包含多個第一節(jié)點(diǎn),并且將保持在一個第一節(jié)點(diǎn)中的第一數(shù)據(jù)移動到相對于所述一個第一節(jié)點(diǎn)位于第一方向上的另一第一節(jié) 各第二保持單元是第二流水線,所述第二流水線包含多個第二節(jié)點(diǎn),并且將保持在一個第二節(jié)點(diǎn)中的第二數(shù)據(jù)移動到相對于所述一個第二節(jié)點(diǎn)位于與第一方向相反的第二方向上的另一第二節(jié)點(diǎn);以及運(yùn)算單元是比較單元,所述比較單元對于作為第一流水線的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),比較保持在關(guān)注節(jié)點(diǎn)中的第一數(shù)據(jù)是否與保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的所述多個第二節(jié)點(diǎn)中的至少一個中的第二數(shù)據(jù)匹配。
6.一種高速緩存裝置,所述高速緩存裝置包括多個數(shù)據(jù)處理裝置,所述多個數(shù)據(jù)處理裝置中的每一個包括第一流水線,所述第一流水線包含多個第一節(jié)點(diǎn),并且將保持在一個第一節(jié)點(diǎn)中的地址移動到相對于所述一個第一節(jié)點(diǎn)位于第一方向上的另一第一節(jié)點(diǎn);第二流水線,所述第二流水線包含多個第二節(jié)點(diǎn),并且將保持在一個第二節(jié)點(diǎn)中的高速緩存標(biāo)記移動到相對于所述一個第二節(jié)點(diǎn)位于與第一方向相反的第二方向上的另一第二節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng);以及比較單元,所述比較單元對于作為第一流水線的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn), 比較保持在關(guān)注節(jié)點(diǎn)中的地址與保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的第二節(jié)點(diǎn)中的至少一個中的高速緩存標(biāo)記,以確定地址是否與高速緩存標(biāo)記匹配;所述高速緩存裝置還包括高速緩存存儲器,所述高速緩存存儲器對存儲在外部存儲器件中的數(shù)據(jù)中的一些進(jìn)行存儲;獲取單元,所述獲取單元從處理裝置獲取數(shù)據(jù)的請求;第一輸入單元,所述第一輸入單元復(fù)制獲取的數(shù)據(jù)的地址,并且將復(fù)制的地址輸入到所述多個數(shù)據(jù)處理裝置的第一流水線;第二輸入單元,所述第二輸入單元將存儲于高速緩存存儲器中的數(shù)據(jù)的高速緩存標(biāo)記輸入到所述多個數(shù)據(jù)處理裝置之一的第二流水線;以及確定單元,所述確定單元當(dāng)確定比較單元的比較結(jié)果指示匹配時,確定獲取的數(shù)據(jù)的高速緩存命中,其中,所述多個數(shù)據(jù)處理裝置的第二流水線被串行連接。
7.根據(jù)權(quán)利要求6的高速緩存裝置,其中,所述多個數(shù)據(jù)處理裝置被分組成多個組,第二輸入單元對于各組將高速緩存標(biāo)記輸入到組中的一個數(shù)據(jù)處理裝置的第二流水線,以及所述多個數(shù)據(jù)處理裝置的第二流水線對于各組被串行連接。
8.根據(jù)權(quán)利要求7的高速緩存裝置,還包括動態(tài)改變所述組的單元。
9.根據(jù)權(quán)利要求7的高速緩存裝置,其中,高速緩存存儲器被分成與所述多個數(shù)據(jù)處理裝置分別對應(yīng)的區(qū)域,以及與不包含于所述多個組中的任一個中的數(shù)據(jù)處理裝置對應(yīng)的高速緩存存儲器的區(qū)域被暫停。
10.根據(jù)權(quán)利要求6的高速緩存裝置,其中,當(dāng)驅(qū)動信號有效時,第一流水線將保持在所述多個第一節(jié)點(diǎn)中的每一個中的地址移動到第一方向上位于下游側(cè)的相鄰的第一節(jié)點(diǎn), 以及當(dāng)驅(qū)動信號有效并且確定單元確定高速緩存遺漏時,第二流水線將保持在所述多個第二節(jié)點(diǎn)中的每一個中的高速緩存標(biāo)記移動到第二方向上位于下游側(cè)的相鄰的第二節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求6的高速緩存裝置,其中,當(dāng)確定單元確定高速緩存遺漏時,第二輸入單元將從第一流水線輸出的地址輸入到第二流水線作為高速緩存標(biāo)記。
12.根據(jù)權(quán)利要求6的高速緩存裝置,其中,來自處理裝置的數(shù)據(jù)的請求是對于外部存儲器件的數(shù)據(jù)的寫入請求,以及高速緩存裝置還包括使用從第二流水線輸出的高速緩存標(biāo)記在高速緩存存儲器中寫入與寫入請求對應(yīng)的數(shù)據(jù)的單元。
13.—種運(yùn)算裝置的控制方法,所述運(yùn)算裝置包括多個第一保持單元,所述多個第一保持單元中的每一個包含串行連接的多個第一節(jié)點(diǎn),并且將保持在各第一節(jié)點(diǎn)中的第一數(shù)據(jù)移動到位于第一方向上的相鄰節(jié)點(diǎn),多個第二保持單元,所述多個第二保持單元中的每一個包含串行連接的多個第二節(jié)點(diǎn),并且將保持在各第二節(jié)點(diǎn)中的第二數(shù)據(jù)移動到位于第二方向上的相鄰節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng),以及運(yùn)算單元,所述運(yùn)算單元對于作為第一保持單元的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn),使用保持在關(guān)注節(jié)點(diǎn)中的第一數(shù)據(jù)和保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的所述多個第二節(jié)點(diǎn)中的至少一個中的第二數(shù)據(jù)來執(zhí)行運(yùn)算,所述控制方法包括將第一數(shù)據(jù)并行輸入到所述多個第一保持單元之中的至少兩個,并且將第二數(shù)據(jù)串行輸入到所述多個第二保持單元之中的至少兩個。
14. 一種高速緩存裝置的控制方法,所述高速緩存裝置包括多個數(shù)據(jù)處理裝置,所述多個數(shù)據(jù)處理裝置中的每一個包括第一流水線,所述第一流水線包含多個第一節(jié)點(diǎn),并且將保持在一個第一節(jié)點(diǎn)中的地址移動到相對于所述一個第一節(jié)點(diǎn)位于第一方向上的另一第一節(jié)點(diǎn),第二流水線,所述第二流水線包含多個第二節(jié)點(diǎn),并且將保持在一個第二節(jié)點(diǎn)中的高速緩存標(biāo)記移動到相對于所述一個第二節(jié)點(diǎn)位于與第一方向相反的第二方向上的另一第二節(jié)點(diǎn),其中,各第一節(jié)點(diǎn)與所述多個第二節(jié)點(diǎn)中的至少一個對應(yīng),以及比較單元,所述比較單元對于作為第一流水線的所述多個第一節(jié)點(diǎn)之一的關(guān)注節(jié)點(diǎn), 比較保持在關(guān)注節(jié)點(diǎn)中的地址與保持在關(guān)注節(jié)點(diǎn)所對應(yīng)的第二節(jié)點(diǎn)中的至少一個中的高速緩存標(biāo)記,以確定地址是否與高速緩存標(biāo)記匹配,所述控制方法包括 在高速緩存存儲器中存儲被存儲在外部存儲器件中的數(shù)據(jù)中的一些; 控制獲取單元以從處理裝置獲取數(shù)據(jù)的請求;控制第一輸入單元以復(fù)制獲取的數(shù)據(jù)的地址并且將復(fù)制的地址輸入到所述多個數(shù)據(jù)處理裝置的第一流水線;控制第二輸入單元以將存儲于高速緩存存儲器中的數(shù)據(jù)的高速緩存標(biāo)記輸入到所述多個數(shù)據(jù)處理裝置之一的第二流水線;以及控制確定單元以在確定比較單元的比較結(jié)果指示匹配時確定獲取的數(shù)據(jù)的高速緩存命中,其中,所述多個數(shù)據(jù)處理裝置的第二流水線被串行連接。
全文摘要
本發(fā)明涉及運(yùn)算裝置、高速緩存裝置及其控制方法。提供一種裝置,該裝置包括第一保持單元,該第一保持單元中的每一個包含串行連接的第一節(jié)點(diǎn),并且在第一方向上移動各第一節(jié)點(diǎn)中的第一數(shù)據(jù);第二保持單元,該第二保持單元中的每一個包含串行連接的第二節(jié)點(diǎn),并且在第二方向上移動各第二節(jié)點(diǎn)中的第二數(shù)據(jù)。各第一節(jié)點(diǎn)與第二節(jié)點(diǎn)中的至少一個對應(yīng)。該裝置還包括運(yùn)算單元,該運(yùn)算單元對于作為第一節(jié)點(diǎn)的關(guān)注節(jié)點(diǎn),使用關(guān)注節(jié)點(diǎn)中的第一數(shù)據(jù)和關(guān)注節(jié)點(diǎn)所對應(yīng)的第二節(jié)點(diǎn)中的至少一個中的第二數(shù)據(jù)執(zhí)行運(yùn)算;以及輸入單元,該輸入單元將第一數(shù)據(jù)并行輸入到第一保持單元之中的至少兩個,并且將第二數(shù)據(jù)串行輸入到第二保持單元之中的至少兩個。
文檔編號G06F12/08GK102331922SQ201110145879
公開日2012年1月25日 申請日期2011年6月1日 優(yōu)先權(quán)日2010年6月7日
發(fā)明者伊藤忠幸 申請人:佳能株式會社