專利名稱:流處理裝置、流處理方法和數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理數(shù)據(jù)串的流處理技術(shù)。
背景技術(shù):
與本發(fā)明相關(guān)的背景技術(shù)存在專利文獻(xiàn)l所示出的方法。在專利 文獻(xiàn)l中示出了這樣的裝置,即該裝置根據(jù)來(lái)自數(shù)據(jù)流處理部?jī)?nèi)的處 理器的請(qǐng)求而實(shí)現(xiàn)該處理器的命令存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器內(nèi)的程序/數(shù) 據(jù)集的重寫。
專利文獻(xiàn)l:日本特開2004- 179809號(hào)公報(bào)
發(fā)明內(nèi)容
在連續(xù)處理多個(gè)數(shù)據(jù)流的情況下,當(dāng)從某一數(shù)據(jù)流的處理完成 到下一數(shù)據(jù)流的處理開始為止需要花費(fèi)時(shí)間時(shí),這樣的時(shí)間是無(wú)用 的,會(huì)造成流處理裝置的有效性能下降。在流處理裝置中對(duì)數(shù)據(jù)流 的處理使用處理器的情況下,在數(shù)據(jù)流的處理中使用的程序的大部 分不相同,或者必需的參數(shù)存在很大不同時(shí),在開始各數(shù)據(jù)流處理 之前,直到可在流處理裝置中利用這些程序和參數(shù)為止需要很長(zhǎng)的 時(shí)間,將會(huì)給性能帶來(lái)很大的影響。另外,在流被存儲(chǔ)在外部的存 儲(chǔ)器的情況下,當(dāng)開始新的流處理時(shí),從存儲(chǔ)器到讀出流的最初部 分為止需要耗費(fèi)時(shí)間,在此期間流處理裝置的工作停止。這會(huì)帶來(lái) 如下的問(wèn)題當(dāng)特別是流切換頻率較高時(shí),將會(huì)給性能帶來(lái)很大的 影響。
本發(fā)明的目的在于,使連續(xù)處理多個(gè)數(shù)據(jù)流時(shí)的處理性能提高。
本發(fā)明的上述及其他目的和新特征將會(huì)根據(jù)本說(shuō)明書的記載以及附圖而得到明確。
簡(jiǎn)單說(shuō)明本申請(qǐng)中所公開的發(fā)明中具有代表性的技術(shù)方案的概 要,如下。
即,與數(shù)據(jù)流區(qū)分而另行準(zhǔn)備控制用的控制流,與數(shù)據(jù)流的處 理相比,先根據(jù)控制流進(jìn)行保持在可從流處理用的處理器高速訪問(wèn) 的存儲(chǔ)器中的程序和參數(shù)的重寫處理。換言之,與處理器對(duì)緩沖存 儲(chǔ)器內(nèi)的數(shù)據(jù)流的運(yùn)算處理相并行,上述數(shù)據(jù)傳送控制裝置在其外 部和上述緩沖存儲(chǔ)器之間對(duì)數(shù)據(jù)流和控制流的數(shù)據(jù)傳送進(jìn)行控制。
筒單說(shuō)明在本申請(qǐng)中所公開的發(fā)明中具有代表性的技術(shù)方案所 能得到的效果,如下。
即,能夠在進(jìn)行流處理的處理器中進(jìn)行某一數(shù)據(jù)流處理時(shí),對(duì) 于進(jìn)行下一處理的數(shù)據(jù)流的全部或者最初的部分,將它們預(yù)先準(zhǔn)備 到可從進(jìn)行數(shù)據(jù)流處理的處理器進(jìn)行高速訪問(wèn)的內(nèi)置存儲(chǔ)器中。另 外,即便是在需要按各數(shù)據(jù)流而不同的處理內(nèi)容或不同的處理參數(shù) 的情況下,也能夠利用控制流預(yù)先將必需的程序或參數(shù)準(zhǔn)備到可從 進(jìn)行數(shù)據(jù)流的處理器高速訪問(wèn)的內(nèi)置存儲(chǔ)器中。因此,在連續(xù)地處 理多個(gè)流的情況下,能夠抑制在某 一 流處理和下 一 流處理之間的轉(zhuǎn) 移期間進(jìn)行數(shù)據(jù)流的處理的處理器的等待時(shí)間,使流處理裝置的有 效性能提高。
圖l是表示流處理裝置的流輸入輸出結(jié)構(gòu)的第 一例的框圖。 圖2是應(yīng)用流處理裝置示出數(shù)據(jù)處理系統(tǒng)的 一 例的框圖。
圖3是例示從總線進(jìn)行訪問(wèn)時(shí)存儲(chǔ)器的地址映射(map)的說(shuō)明圖。
圖4是例示從總線進(jìn)行訪問(wèn)時(shí)流處理裝置的地址映射的說(shuō)明圖。 圖5是例示DMA控制寄存器的結(jié)構(gòu)的說(shuō)明圖。 圖6是例示DMA寄存器組的狀態(tài)標(biāo)志寄存器的結(jié)構(gòu)的說(shuō)明圖。 圖7是例示從流處理處理器對(duì)程序進(jìn)行訪問(wèn)時(shí)的地址映射的i兌明圖。
圖8是例示從流處理處理器對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)時(shí)的地址映射的說(shuō)明圖。
圖9是例示對(duì)第 一緩存器映射區(qū)域進(jìn)行訪問(wèn)時(shí)地址轉(zhuǎn)換的內(nèi)容的 說(shuō)明圖。
圖IO是例示控制流的結(jié)構(gòu)的說(shuō)明圖。 圖ll是例示控制指令首部的字段(field)結(jié)構(gòu)的說(shuō)明圖。 圖12是例示第 一 流處理裝置的控制指令的指令類型和功能的關(guān) 系的說(shuō)明圖。
圖13是例示指令類型0的控制指令的結(jié)構(gòu)的說(shuō)明圖。
圖14是例示指令類型1的控制指令的結(jié)構(gòu)的說(shuō)明圖。
圖15是例示指令類型4的控制指令的結(jié)構(gòu)的說(shuō)明圖。
圖16是例示的流處理裝置的工作定時(shí)的時(shí)序圖。
圖17是例示利用副控制流進(jìn)行了功能擴(kuò)展的流處理裝置中的流 輸入輸出結(jié)構(gòu)的說(shuō)明圖。
圖18是例示使用副控制流的流處理裝置中的控制指令的指令類 型和功能的關(guān)系的說(shuō)明圖。
圖19是例示第二指令類型的控制指令的結(jié)構(gòu)的說(shuō)明圖。
標(biāo)號(hào)說(shuō)明
100. .流處理裝置
110...總線接口
120...DMA控制器
130...流緩存器
131...第一緩存區(qū)域
133...第p緩存區(qū)域
140...控制寄存器
150...控制流解析單元
155...控制流地址隊(duì)列160...命令存儲(chǔ)器
161...雙緩存區(qū)域C
162...雙緩存區(qū)域D
163...固定區(qū)域B
170...數(shù)據(jù)存儲(chǔ)器
171…雙緩存區(qū)域A
172...雙緩存區(qū)域B
173...固定區(qū)域A
180...流處理器
190...位處理引擎
200...主處理器
300...存儲(chǔ)器控制裝置
350...存儲(chǔ)器
400...輸入輸出裝置
500...總線
700...控制流
706...副控制流
710...控制流存儲(chǔ)區(qū)域
801 ~ 803…輸入流
901 ~ 903...輸出流
1201…緩存器開始地址寄存器
1202…緩存器結(jié)束地址寄存器
1203...緩沖寫地址寄存器
1204…緩沖讀地址寄存器
1205...存儲(chǔ)器源地址寄存器
1206...存儲(chǔ)器偏移地址寄存器
1207…最大偏移地址寄存器
1208...狀態(tài)標(biāo)志寄存器
1210 ~ 1290...DMA寄存器組1291...工作中標(biāo)志
1292...讀/寫模式
1293...緩存充滿(full)標(biāo)志
5140...控制寄存器空間
5160...命令存儲(chǔ)器空間
5170...數(shù)據(jù)存儲(chǔ)器空間
6100...邊界標(biāo)志字段
6130...流緩存器空間
6131 --6133...緩存器映射區(qū)域
6160...命令存儲(chǔ)器空間
6170...數(shù)據(jù)存儲(chǔ)器空間
6200.,..指令類型字段
6300..,.參數(shù)字段
6301....豐lT入流組ID字^:
6302..,.末尾標(biāo)志字段
6311..,.數(shù)據(jù)長(zhǎng)度字段
6312..,.最大流長(zhǎng)度字段
6315...數(shù)據(jù)存儲(chǔ)目標(biāo)地址字段
6316..,.副控制流地址字段
7100--7200...控制指令組
7210--7220...控制指令
7221...控制指令首部
7226--7229...控制參數(shù)
具體實(shí)施例方式
1.實(shí)施方式的概要
概要進(jìn)行說(shuō)明。在對(duì)具有代表性的實(shí)施方式的概要的說(shuō)明中添加括 號(hào)來(lái)參照的附圖參照標(biāo)號(hào),只不過(guò)是例示出的包含在其所標(biāo)記的結(jié)構(gòu)要素的概念中的標(biāo)號(hào)。
(1) 一種流處理裝置,輸入數(shù)據(jù)流來(lái)實(shí)施運(yùn)算處理,將其結(jié)果 作為數(shù)據(jù)流進(jìn)行輸出,其中,
該流處理裝置具有緩沖存儲(chǔ)器(130)和處理器(180),
將流處理所需的信息作為控制流輸入到上述緩沖存儲(chǔ)器, 上述控制流具有與所要輸入的數(shù)據(jù)流的取得處有關(guān)的信息、以 及數(shù)據(jù)流的運(yùn)算處理所需要的參數(shù),根據(jù)與上述數(shù)據(jù)流的取得處有 關(guān)的信息將數(shù)據(jù)流輸入到上述緩沖存儲(chǔ)器,上述處理器根據(jù)控制流 的參數(shù)對(duì)已輸入到上述緩沖存儲(chǔ)器的數(shù)據(jù)流進(jìn)行運(yùn)算處理。
由此,能夠在處理器進(jìn)行數(shù)據(jù)流的處理時(shí),預(yù)先利用控制流將 進(jìn)行下一處理的數(shù)據(jù)流的全部或一部分或者所需要的程序、參數(shù)準(zhǔn) 備在緩沖存儲(chǔ)器等中。由此,能夠抑制在某一流處理和下一流處理 的轉(zhuǎn)移期間內(nèi)進(jìn)行的數(shù)據(jù)流的處理的處理器的等待時(shí)間,從而能夠 使流處理裝置的有效性能提高。
(2) 根據(jù)(1)所述的流處理裝置,其中,還具有從流處理裝
置的外部向上述緩沖存儲(chǔ)器傳送控制流和數(shù)據(jù)流的傳送控制裝置(
120)。可以不使上述處理器承擔(dān)這些傳送控制。
(3) 根據(jù)(2)所述的流處理裝置,其中,還具有控制單元( 150),其對(duì)控制流進(jìn)行解析而取得上述參數(shù)和與上述數(shù)據(jù)流的取得 處有關(guān)的信息,并且,對(duì)上述傳送控制裝置設(shè)定傳送控制條件???以不使上述處理器承擔(dān)基于控制流的處理。
(4) 根據(jù)(3)所述的流處理裝置,其中,還具有數(shù)據(jù)存儲(chǔ)器 (170),其被傳送上述參數(shù),并且可由上述處理器進(jìn)行訪問(wèn)。即便
在需要按各數(shù)據(jù)流而不同的處理參數(shù)的情況下,也能夠預(yù)先利用控 制流將所需要的參數(shù)準(zhǔn)備在數(shù)據(jù)存儲(chǔ)器中。
(5) 根據(jù)(4)所述的流處理裝置,其中,還具有命令存儲(chǔ)器 (160),上述控制單元從控制流取得與運(yùn)算順序有關(guān)的信息,并向
述命令存儲(chǔ)器可由上述處理器進(jìn)行訪問(wèn);上述處理器使用從命令存儲(chǔ)器所讀出的與運(yùn)算順序有關(guān)的信息來(lái)進(jìn)行上述運(yùn)算處理。即便在 需要按各數(shù)據(jù)流而不同的處理參數(shù)的情況下,也能夠預(yù)先利用控制 流將所需要的運(yùn)算順序的信息預(yù)先準(zhǔn)備在命令存儲(chǔ)器中。
(6)根據(jù)(4)所述的流處理裝置,其中,控制流具有與輔助
控制流(706)的啟動(dòng)有關(guān)的信息;上述輔助控制流具有處理數(shù)據(jù)流 所需要的參數(shù);上述控制單元根據(jù)上述控制流的內(nèi)容而對(duì)上述傳送 控制單元設(shè)定傳送控制條件,將上述輔助控制流傳送到上述緩沖存 儲(chǔ)器;上述處理器基于傳送到緩存器的輔助控制流的上述參數(shù)來(lái)進(jìn) 行運(yùn)算處理。在不同的數(shù)據(jù)流的處理中反復(fù)使用相同參數(shù)的情況下 ,不需要各控制流中每次含有相同的參數(shù),由此能有助于控制流的 數(shù)據(jù)量削減、存儲(chǔ)器區(qū)域的容量削減、以及數(shù)據(jù)傳送時(shí)間的縮短。 在流處理裝置的工作頻率的高速化方面也是有利的。
(7)根據(jù)(5)所述的流處理裝置,其中,控制流具有與輔助控 制流的啟動(dòng)有關(guān)的信息;上述輔助控制流具有與處理數(shù)據(jù)流所需的 運(yùn)算順序有關(guān)的信息;上述控制單元根據(jù)上述輔助控制流的內(nèi)容對(duì) 上述傳送控制單元設(shè)定傳送控制條件,使上述輔助流傳送到上述緩 沖存儲(chǔ)器;上述處理器基于傳送到緩存器的上述運(yùn)算順序的信息來(lái) 進(jìn)行運(yùn)算處理。在不同的數(shù)據(jù)流的處理中反復(fù)使用相同的運(yùn)算順序 的情況下,不需要各控制流每次含有相同的運(yùn)算順序的信息,由此 能夠有助于控制流的數(shù)據(jù)量削減、存儲(chǔ)器區(qū)域的容量削減、以及數(shù) 據(jù)傳送時(shí)間的縮短。在流處理裝置的工作頻率的高速化方面也是有 利的。
(8) 根據(jù)(1)所述的流處理裝置,其中,在處理l條輸入數(shù)據(jù) 流時(shí),將結(jié)果分成多個(gè)數(shù)據(jù)流而進(jìn)行輸出。對(duì)數(shù)據(jù)流的處理內(nèi)容是 任意的。
(9) 根據(jù)(1)所述的流處理裝置,其中,參照多個(gè)輸入流, 并通過(guò)參照上述多個(gè)輸入流而實(shí)施運(yùn)算處理,輸出上述運(yùn)算處理的 結(jié)果。對(duì)數(shù)據(jù)流的處理內(nèi)容是任意的。
(10) 根據(jù)(1)所述的流處理裝置,其中,上述處理器依照運(yùn)算順序進(jìn)行流處理;上述緩沖存儲(chǔ)器暫時(shí)保存已經(jīng)輸入的數(shù)據(jù)流和
所要輸出的數(shù)據(jù)流;上述處理器能夠?qū)ι鲜鼍彌_存儲(chǔ)器進(jìn)行隨機(jī)訪
問(wèn)。對(duì)處理器而言,對(duì)緩沖存儲(chǔ)器的訪問(wèn)形式是有通融性的。
(11) 根據(jù)(1)所述的流處理裝置,其中,上述處理器依照運(yùn)
算順序進(jìn)行流處理;上述流處理裝置還具有用于存儲(chǔ)上述處理器可 讀寫的數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)器,上述數(shù)據(jù)存儲(chǔ)器能夠在接受上述處理器 的訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下的處理,即 :在結(jié)束一個(gè)數(shù)據(jù)流的處理、開始下一數(shù)據(jù)流的處理時(shí),對(duì)存儲(chǔ)有 一個(gè)數(shù)據(jù)流的存儲(chǔ)器區(qū)域和存儲(chǔ)有其他數(shù)據(jù)流的存儲(chǔ)器區(qū)域各自映 射的邏輯地址進(jìn)行替換處理。利用該雙緩存器結(jié)構(gòu),能夠?qū)⒂糜谙?一流處理的控制流和數(shù)據(jù)流預(yù)先存儲(chǔ)到緩沖存儲(chǔ)器中,而并不對(duì)處 理器進(jìn)行的流處理帶來(lái)影響。通過(guò)地址映射的替換,用于處理器參 照數(shù)據(jù)存儲(chǔ)器的所要執(zhí)行的程序記敘并不需要使參照數(shù)據(jù)在雙緩存 器中任一者的區(qū)域中發(fā)生變更。
(12) 根據(jù)(1)所述的流處理裝置,其中,上述處理器依照 運(yùn)算順序進(jìn)行流處理;上述流處理裝置還具有用于存儲(chǔ)表示上述處 理器的運(yùn)算順序的程序的命令存儲(chǔ)器,上述命令存儲(chǔ)器能夠在接受 上述處理器的訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下 的處理,即在結(jié)束一個(gè)數(shù)據(jù)流的處理、開始下一數(shù)據(jù)流的處理時(shí) ,對(duì)存儲(chǔ)有表示針對(duì) 一 個(gè)數(shù)據(jù)流的運(yùn)算順序的程序的存儲(chǔ)器區(qū)域和 存儲(chǔ)有針對(duì)下 一數(shù)據(jù)流的運(yùn)算順序的程序的存儲(chǔ)器區(qū)域各自映射的 邏輯地址進(jìn)行替換處理。對(duì)于表示運(yùn)算順序的程序的存儲(chǔ)區(qū)域也具 有與上述同樣的效果。
(13) —種流處理裝置,輸入數(shù)據(jù)流來(lái)實(shí)施運(yùn)算處理,將其結(jié) 果作為數(shù)據(jù)流進(jìn)行輸出,其中,該流處理裝置具有緩沖存儲(chǔ)器; 數(shù)據(jù)傳送控制裝置,用于上述緩沖存儲(chǔ)器和上述流處理裝置的外部 之間的數(shù)據(jù)傳送控制;以及處理器,用于存儲(chǔ)在上述緩沖存儲(chǔ)器中 的數(shù)據(jù)流的運(yùn)算處理,上述數(shù)據(jù)傳送控制裝置,根據(jù)存儲(chǔ)在緩沖存 儲(chǔ)器中的控制流具有的與數(shù)據(jù)流的取得處相關(guān)的信息,將上述數(shù)據(jù)流傳送到上述緩沖存儲(chǔ)器中,上述處理器基于傳送到上述緩沖存儲(chǔ) 器中的控制流具有的數(shù)據(jù)流的運(yùn)算處理所需要的參數(shù),對(duì)上述緩沖 存儲(chǔ)器內(nèi)的數(shù)據(jù)流進(jìn)行運(yùn)算處理,與上述處理器對(duì)上述緩沖存儲(chǔ)器 內(nèi)的數(shù)據(jù)流的運(yùn)算處理相并行,上述數(shù)據(jù)傳送控制裝置在其外部與 上述緩沖存儲(chǔ)器之間對(duì)數(shù)據(jù)流和控制流的數(shù)據(jù)傳送進(jìn)行控制。
由此,可以與數(shù)據(jù)流的運(yùn)算處理并行地將下 一 數(shù)據(jù)流的處理所 需要的參數(shù)、運(yùn)算順序的信息以及數(shù)據(jù)流預(yù)先存儲(chǔ)在緩沖存儲(chǔ)器中 而進(jìn)行利用。因此,在連續(xù)地處理多個(gè)流時(shí),能夠抑制在某一流處 理和下 一 流處理的轉(zhuǎn)移期間進(jìn)行數(shù)據(jù)流處理的處理器的等待時(shí)間, 能夠使流處理裝置的有效性能提高。
(14) 根據(jù)(13 )所述的流處理裝置,其中,還具有基于存儲(chǔ) 在上述緩沖存儲(chǔ)器中的控制流的解析結(jié)果進(jìn)行控制的控制單元, 上述控制單元基于控制流具有的與數(shù)據(jù)流的取得處相關(guān)的信息,對(duì) 上述數(shù)據(jù)傳送控制裝置設(shè)定傳送條件。
(15) 根據(jù)(13 )所述的流處理裝置,其中,還具有可由上述 處理器讀寫的數(shù)據(jù)存儲(chǔ)器;上述控制單元將控制流具有的數(shù)據(jù)流的 運(yùn)算處理所需要的參數(shù)設(shè)定在上述數(shù)據(jù)存儲(chǔ)器中。能夠使用控制流 將下一數(shù)據(jù)流的處理所需要的參數(shù)等預(yù)先存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中。
(16) 根據(jù)(13 )所述的流處理裝置,其中,還具有可由上述 處理器讀寫的數(shù)據(jù)存儲(chǔ)器;上述數(shù)據(jù)存儲(chǔ)器能夠在從上述處理器進(jìn)
行訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下的處理,即 :在結(jié)束一個(gè)數(shù)據(jù)流的處理、開始下一數(shù)據(jù)流的處理時(shí),對(duì)存儲(chǔ)有 一個(gè)數(shù)據(jù)流的存儲(chǔ)器區(qū)域和存儲(chǔ)有其他數(shù)據(jù)流的存儲(chǔ)器區(qū)域各自映 射的邏輯地址進(jìn)行替換。
U7)根據(jù)(13)所述的流處理裝置,其中,還具有存儲(chǔ)表示 上述處理器的運(yùn)算順序的程序的命令存儲(chǔ)器,上述命令存儲(chǔ)器能夠
是如下的處理,即在結(jié)束一個(gè)數(shù)據(jù)流的處理、開始下一數(shù)據(jù)流的 處理時(shí),對(duì)存儲(chǔ)有表示針對(duì) 一 個(gè)數(shù)據(jù)流的運(yùn)算順序的程序的存儲(chǔ)器
15區(qū)域和存儲(chǔ)有針對(duì)下 一數(shù)據(jù)流的運(yùn)算順序的程序的存儲(chǔ)區(qū)域各自映 射的邏輯地址進(jìn)行替換。
(18) —種流處理方法,對(duì)數(shù)據(jù)流實(shí)施運(yùn)算處理并將結(jié)果作為數(shù) 據(jù)流輸出,該流處理方法包括第一處理~第三處理。第一處理是 準(zhǔn)備1個(gè)以上的控制流作為流處理所需要的信,l的處理,該控制流具 有與要處理的數(shù)據(jù)流的取得處相關(guān)的信息、以及數(shù)據(jù)流的處理所需
要的參數(shù);第二處理是根據(jù)所準(zhǔn)備的控制流的與上述數(shù)據(jù)流的取得 處相關(guān)的信息而參照數(shù)據(jù)流的處理;第三處理是參照所準(zhǔn)備的控制 流的上述參數(shù)來(lái)進(jìn)行運(yùn)算的處理。
(19) 一種數(shù)據(jù)處理系統(tǒng),具有流處理裝置,其被輸入數(shù)據(jù) 流實(shí)施運(yùn)算處理,將其結(jié)果作為數(shù)據(jù)流輸出;存儲(chǔ)器,作為針對(duì)上 述數(shù)據(jù)流的流處理所需要的信息而存儲(chǔ)有控制流和上述數(shù)據(jù)流;以 及主處理器,對(duì)上述存儲(chǔ)器和上述流處理裝置進(jìn)行控制,其中,上 述控制流具有與輸入的數(shù)據(jù)流的取得處相關(guān)的信息、以及數(shù)據(jù)流的 運(yùn)算處理所需要的參數(shù),上述流處理裝置具有緩沖存儲(chǔ)器和處理器 ,將上述控制流從上述存儲(chǔ)器輸入到緩沖存儲(chǔ)器,按照所輸入的上 述控制流擁有的與數(shù)據(jù)流的取得處相關(guān)的信息而將數(shù)據(jù)流輸入到上 述緩沖存儲(chǔ)器,上述處理器根據(jù)控制流的參數(shù)對(duì)輸入到上述緩沖存 儲(chǔ)器的數(shù)據(jù)流進(jìn)行運(yùn)算處理。
(20) 根據(jù)(19)所述的數(shù)據(jù)處理系統(tǒng),其中,上述主處理器 進(jìn)行向上述存儲(chǔ)器存儲(chǔ)控制流和上述數(shù)據(jù)流的控制,上述流處理裝 置具有從上述存儲(chǔ)器向上述緩沖存儲(chǔ)器傳送上述控制流和上述數(shù)據(jù) 流的傳送控制裝置。
(21 )根據(jù)(19)所述的數(shù)據(jù)處理系統(tǒng),其中,作為半導(dǎo)體器 件例如形成在l個(gè)半導(dǎo)體襯底上。 2.詳細(xì)的實(shí)施方式
對(duì)實(shí)施方式進(jìn)行更為詳細(xì)的描述。以下,基于附圖詳細(xì)說(shuō)明用 于實(shí)施本發(fā)明的優(yōu)選實(shí)施方式。在用于說(shuō)明用來(lái)實(shí)施發(fā)明的優(yōu)選實(shí) 施方式的所有附圖中,對(duì)具有相同功能的部件進(jìn)行相同的標(biāo)號(hào),省略其反復(fù)的說(shuō)明。
圖l例示出本發(fā)明的流處理裝置的輸入輸出流的結(jié)構(gòu)。如圖l所
示,流處理裝置100將作為數(shù)據(jù)流的輸入的第一輸入流801 ~第n輸 入流803、作為數(shù)據(jù)流的輸出的第一輸出流901 ~第m輸出流903、以 及作為控制用流的輸入的控制流700作為輸入輸出流進(jìn)行處理。輸入 流和輸出流雖然記載了多個(gè),但也可以是各為l個(gè)流的情況,還可以 是輸入輸出中僅一方為l個(gè)流的情況。
流處理裝置10 0能夠同時(shí)參照1個(gè)以上輸入流,同時(shí)輸出1個(gè)以上 輸出流。另外,流處理裝置100與輸入流、輸出流的輸入輸出處理獨(dú) 立地參照控制流700。
圖2中例示出應(yīng)用流處理裝置IOO的數(shù)據(jù)處理系統(tǒng)。首先對(duì)系統(tǒng) 結(jié)構(gòu)進(jìn)行說(shuō)明。流處理裝置100經(jīng)由總線500連接在主處理器200、存 儲(chǔ)器控制裝置300、存儲(chǔ)器350、以及輸入輸出裝置400上。
在圖2所示的系統(tǒng)結(jié)構(gòu)中,存儲(chǔ)器350為主存儲(chǔ)裝置。主處理器200 控制系統(tǒng)整體,還進(jìn)行如成為用于使用流處理裝置100的觸發(fā)器那樣 的控制。主處理器200工作所需要的程序存儲(chǔ)在存儲(chǔ)器350中,主處 理器200經(jīng)由存儲(chǔ)器控制裝置300對(duì)存儲(chǔ)器350進(jìn)行訪問(wèn)。輸入輸出裝 置400用于與外部的連接。來(lái)自外部設(shè)備的數(shù)據(jù)從輸入輸出裝置400 輸入之后,暫時(shí)存儲(chǔ)在存儲(chǔ)器350中,然后再進(jìn)行處理。流處理裝置 100和主處理器200對(duì)數(shù)據(jù)的處理結(jié)果暫時(shí)存儲(chǔ)在存儲(chǔ)器350中,從輸 入輸出裝置400向外部設(shè)備輸出。
接著,對(duì)流處理裝置100的內(nèi)部結(jié)構(gòu)進(jìn)行說(shuō)明。總線接口110是 用于連接總線5OO和流處理裝置100內(nèi)部的接口 ??刂萍拇嫫?40是用 于控制流處理裝置10 0整體的工作的控制信息被置位的寄存器,可從 總線500—方進(jìn)行訪問(wèn)。控制寄存器140有時(shí)根據(jù)需要也由多個(gè)寄存 器構(gòu)成。
DMA控制器120進(jìn)行伴隨流的輸入輸出而進(jìn)行的數(shù)據(jù)傳送、以 及命令存儲(chǔ)器160、數(shù)據(jù)存儲(chǔ)器170與總線500 —方之間的數(shù)據(jù)傳 送。另外,DMA控制器120具有分路傳送數(shù)據(jù)的功能,可從總線500 —方向命令存儲(chǔ)器160和數(shù)據(jù)存儲(chǔ)器170直接進(jìn)行訪問(wèn)。對(duì)DM A控制器120的傳送控制信息的置位,由主處理器200進(jìn)行,或者 由控制流解析單元進(jìn)行。另外,還可以由流處理器180進(jìn)行對(duì)DMA 控制器120的傳送控制信息的置位,若在流處理上存在需要,則流 處理器180也可以靈活地進(jìn)行流輸入輸出的控制。
流緩存器130是暫時(shí)保存進(jìn)行了輸入輸出處理的流的內(nèi)容的緩沖 存儲(chǔ)器。在流緩存器130中也暫時(shí)保存控制流700。在進(jìn)行流的輸入 輸出時(shí),DMA控制器120進(jìn)行流緩存器130與總線500—方的傳送。
流處理器180是主要處理數(shù)據(jù)流的處理器,按照存儲(chǔ)在命令存儲(chǔ) 器160中的程序進(jìn)行工作。另外,作為流處理器180的作業(yè)用數(shù)據(jù)存 儲(chǔ)器,配置有數(shù)據(jù)存儲(chǔ)器170。流處理器180通過(guò)檢測(cè)在流緩存器130 中存儲(chǔ)有數(shù)據(jù)流的數(shù)據(jù)這一情況,從而從流緩存器130讀取該數(shù)據(jù)并 進(jìn)行預(yù)定的數(shù)據(jù)處理(流處理),將其結(jié)果寫入流緩存器。
位處理引擎190提供如下的功能以所指定的位寬從數(shù)據(jù)流依 次取出數(shù)據(jù),或者以所指定的位寬將數(shù)據(jù)寫入到流。位處理引擎190 在流處理器180對(duì)各種位長(zhǎng)的連續(xù)的數(shù)據(jù)進(jìn)行處理時(shí)被采用,作為 所謂的加速器而發(fā)揮作用。位處理引擎190連接在流緩存器130 上,能夠以32位或64位等訪問(wèn)流緩存器130的單位統(tǒng)一從流緩存 器130讀出流數(shù)據(jù),或?qū)⒘鲾?shù)據(jù)寫入流緩存器130。
控制流地址隊(duì)列15 5是經(jīng)由控制寄存器14 0而保持存儲(chǔ)有控制流 700的起始地址的FIFO緩存器。通常,控制流700在流處理裝置100啟 動(dòng)前由主處理器200生成并被存儲(chǔ)在存儲(chǔ)器350中,流處理裝置100根 據(jù)控制流700進(jìn)行處理。因此,流處理裝置100在啟動(dòng)時(shí)需要表示存 儲(chǔ)在存儲(chǔ)器3 5 0中的控制流700的所在位置的起始地址。為了使用這 樣的地址取得所需的控制流,控制流解析單元對(duì)DMA控制器120控 制i殳定和啟動(dòng)。進(jìn)而,控制流解析單元150才艮據(jù)控制流700的內(nèi)容對(duì) DMA控制器120、流處理器180的設(shè)定和啟動(dòng)進(jìn)行控制。另外,還具 有根據(jù)需要將控制流700的內(nèi)容的 一部分寫入命令存儲(chǔ)器160和數(shù)據(jù) 存儲(chǔ)器170的功能。在此,在下面詳細(xì)說(shuō)明流處理裝置100之前,對(duì)流處理裝置100
使用了控制流的處理的概要進(jìn)行說(shuō)明。存儲(chǔ)有控制流的存儲(chǔ)器350 的地址由主處理器200寫入控制寄存器140,控制流解析單元150經(jīng) 由控制流地址隊(duì)列155使用該地址對(duì)DMA控制器120的控制流用 傳送信道進(jìn)行初始設(shè)定。據(jù)此控制流被傳送到流緩存器130??刂屏?解析單元150對(duì)傳送到流緩存器130的控制流進(jìn)行解析,將控制流 中帶有的參數(shù)等存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器170或命令存儲(chǔ)器160等中,另 外,根據(jù)控制流中帶有的輸入流地址字段所指定的地址信息,使用 DMA控制器120將數(shù)據(jù)流存儲(chǔ)在流緩存器130中。 一組流由控制 流、以及與控制流對(duì)應(yīng)的數(shù)據(jù)流構(gòu)成。當(dāng)數(shù)據(jù)流被輸入到流緩存器1 30時(shí),執(zhí)行命令存儲(chǔ)器160內(nèi)的程序的流處理器180對(duì)輸入到流緩 存器130的數(shù)據(jù)流的數(shù)據(jù)依次實(shí)施解碼等的作為預(yù)定數(shù)據(jù)處理的流 處理,處理結(jié)果通過(guò)DMA控制器120的控制而被存儲(chǔ)在由相同目 的地的控制流所指定的存儲(chǔ)器350的區(qū)域中。這樣的處理按由一組 控制流和數(shù)據(jù)流構(gòu)成的每個(gè)流反復(fù)執(zhí)行。尤其是在對(duì)構(gòu)成一組的流 的數(shù)據(jù)流進(jìn)行流處理時(shí),與其并行地,預(yù)先輸入構(gòu)成下一組的流的 控制流和數(shù)據(jù)流。即,在流處理器180對(duì)數(shù)據(jù)流進(jìn)行流處理中,預(yù) 先讀取構(gòu)成下一組的流的控制流和數(shù)據(jù)流。以下,對(duì)于實(shí)現(xiàn)這樣的 功能的流處理裝置100的各部分進(jìn)行詳細(xì)說(shuō)明。
圖3示出將流處理裝置100進(jìn)行處理的流存儲(chǔ)在存儲(chǔ)器350時(shí)的區(qū) 域分配的例子。在圖3中,存儲(chǔ)器地址是從總線500訪問(wèn)存儲(chǔ)器350時(shí) 的地址。另外,圖3所示的存儲(chǔ)器地址是一個(gè)例子,也可以根據(jù)系統(tǒng) 結(jié)構(gòu)或主處理器200的程序等情況進(jìn)行變更。
作為輸入流存儲(chǔ)區(qū)域,代表性地示出第 一輸入流存儲(chǔ)區(qū)域A811 ~第n輸入流存儲(chǔ)區(qū)域A813的區(qū)域A部分(區(qū)域組A)、第一輸入流 存儲(chǔ)區(qū)域B821 第n輸入流存儲(chǔ)區(qū)域B813的區(qū)域B部分(區(qū)域組B) 、以及第一輸入流存儲(chǔ)區(qū)域C831的區(qū)域C部分(區(qū)域組C),但其以 后根據(jù)系統(tǒng)需要也同樣存在所需量的輸入流的區(qū)域組。流處理裝置 10 0具有同時(shí)輸入多個(gè)流的功能,以區(qū)域組為單位對(duì)輸入流進(jìn)行處理。若作為輸入流存儲(chǔ)區(qū)域而準(zhǔn)備多個(gè)區(qū)域組,則能夠在多個(gè)區(qū)域組 存儲(chǔ)了多種輸入流之后連續(xù)地進(jìn)行流處理。
雖然按輸入流的區(qū)域組準(zhǔn)備有相同個(gè)數(shù)的輸入流存儲(chǔ)區(qū)域,但 也可以按每個(gè)流處理而使同時(shí)參照的輸入流的數(shù)量不相同。在這種 情況下,剩余的輸入流存儲(chǔ)區(qū)域成為未使用狀態(tài)。
為了便于說(shuō)明,采用對(duì)按區(qū)域組同時(shí)參照的輸入流存儲(chǔ)區(qū)域進(jìn)
行了總括的方式進(jìn)行了說(shuō)明,若能夠進(jìn)行存儲(chǔ)器350的區(qū)域管理,則
不需要將輸入流存儲(chǔ)區(qū)域固定配置在l處。另外,也可以根據(jù)需要?jiǎng)?態(tài)管理屬于各區(qū)域組的輸入流存儲(chǔ)區(qū)域的個(gè)數(shù)。
輸入流的存儲(chǔ)區(qū)域作為在流處理裝置10 0完成了存儲(chǔ)于區(qū)域中的 輸入流的處理的時(shí)刻而由輸入輸出裝置400新輸入的流區(qū)域再次進(jìn)行 利用。
另外,在圖3中,作為輸出流存儲(chǔ)區(qū)域,代表性地示出了第一輸 出流存儲(chǔ)區(qū)域A911 ~第m輸出流存儲(chǔ)區(qū)域A913的區(qū)域A部分(區(qū)域 組A)、第一輸出流存儲(chǔ)區(qū)域B921 ~第m輸出流存儲(chǔ)區(qū)域B913的區(qū) 域B部分(區(qū)域組B)、第一輸出流存儲(chǔ)區(qū)域C931的區(qū)域C部分(區(qū) 域組C),但其后根據(jù)系統(tǒng)需要也同樣存在所需量的輸出流的區(qū)域組 。流處理裝置100具有在某個(gè)流的處理中同時(shí)輸出多個(gè)流的功能。通 過(guò)準(zhǔn)備多個(gè)輸出流的區(qū)域組,能夠存儲(chǔ)了連續(xù)進(jìn)行了流處理的結(jié)果 而不會(huì)蓋寫以前的結(jié)果。
雖然按輸出流的區(qū)域組準(zhǔn)備了相同個(gè)數(shù)的輸出流存儲(chǔ)區(qū)域,但 也能存在按每個(gè)流處理來(lái)變更要輸出的流數(shù)的情況。
為了便于說(shuō)明,采用對(duì)按區(qū)域組的輸出流存儲(chǔ)區(qū)域進(jìn)行了總括 的方式進(jìn)行了說(shuō)明,若能夠進(jìn)行存儲(chǔ)器350的區(qū)域管理,則不需要將 輸出流存儲(chǔ)區(qū)域固定配置在l處。另外,也可以根據(jù)需要?jiǎng)討B(tài)管理屬 于各區(qū)域組的輸出流存儲(chǔ)區(qū)域的個(gè)數(shù)。
輸出流的存儲(chǔ)區(qū)域由流處理裝置100寫入結(jié)果,將其結(jié)果從輸入 輸出裝置400輸出等,從而不可能由流處理裝置1 OO寫入新的數(shù)據(jù), 并且在不需要保存輸出結(jié)果的時(shí)刻,作為流處理裝置1 OO重新寫入結(jié)果的區(qū)域而^皮再次利用。
在控制流存儲(chǔ)區(qū)域710中存儲(chǔ)在啟動(dòng)流處理裝置100時(shí)傳遞給流 處理裝置的控制流700??刂屏?00的生成由主處理器200進(jìn)行。存在 如下情況流處理裝置1 OO在根據(jù)某 一控制流700進(jìn)行處理的期間被 輸入新的數(shù)據(jù)流,當(dāng)由流處理裝置1 OO進(jìn)行處理的準(zhǔn)備已經(jīng)就緒時(shí), 將產(chǎn)生為用于新的數(shù)據(jù)流處理而生成控制流700的需要。在這樣的情 況下,預(yù)先將控制流存儲(chǔ)區(qū)域710分為多個(gè)區(qū)域,在其他區(qū)域生成新 的控制流700以避免覆蓋在當(dāng)前處理中使用著的控制流700。
當(dāng)某一控制流700的處理全部完成時(shí),控制流解析單元150經(jīng) 由控制寄存器140、總線接口 IIO對(duì)主處理器200進(jìn)行通知。主處理 器200使用該通知判斷存儲(chǔ)有該控制流700的區(qū)域是否可以再次利 用。
圖4示出從總線500—方訪問(wèn)流處理裝置IOO時(shí)的地址空間的例子 。該地址空間存在控制寄存器空間5140、命令存儲(chǔ)器空間5160、數(shù) 據(jù)存儲(chǔ)器空間5170。
在控制寄存器空間5140中,存在于控制寄存器140中的寄存器、 或存在于DMA控制器120的DMA控制用的寄存器被映射,主處理器 200可以通過(guò)這些寄存器對(duì)流處理裝置1 OO進(jìn)行控制。
在命令存儲(chǔ)器空間5160中,命令存儲(chǔ)器160被映射,在流處理裝 置100工作前,可由主處理器200寫入流處理器180的程序。
在數(shù)據(jù)存儲(chǔ)器空間5170中,數(shù)據(jù)存儲(chǔ)器170被映射,在流處理裝 置100工作前,可由主處理器200i殳定流處理裝置100所需的初始參凄t
在命令存儲(chǔ)器空間5160和數(shù)據(jù)存儲(chǔ)器空間5170中,存在一部分 實(shí)際上沒(méi)有映射存儲(chǔ)器的空間,可以對(duì)應(yīng)于命令存儲(chǔ)器160和數(shù)據(jù)存 儲(chǔ)器170的容量擴(kuò)展。
在圖5中示出存在于DM A控制器12 0中的DM A控制用的寄存器的 結(jié)構(gòu)。DMA控制用的寄存器是從第一DMA寄存器組1210到第g DMA寄存器組1290的多個(gè)寄存器組構(gòu)成。各寄存器組構(gòu)成DMA數(shù)據(jù)傳送信道。各寄存器組包括緩存器開始地址寄存器1201、緩存器結(jié)
束地址寄存器1202、緩沖寫地址寄存器1203、緩沖讀地址寄存器 1204、存儲(chǔ)器基地址寄存器1205、存儲(chǔ)器偏移地址寄存器1206、最 大偏移地址(offset)寄存器1207、狀態(tài)標(biāo)志寄存器1208。寄存器 1201 ~ 1204是流緩存器130—方的地址指定用寄存器,寄存器1205 ~ 1207是存儲(chǔ)器350—方的地址指定用寄存器??傊绾笏?,這些 寄存器用于JIS (日本工業(yè)標(biāo)準(zhǔn))流緩存器130和存儲(chǔ)器350之間的雙 地址傳送控制。
DMA寄存器組的個(gè)數(shù)需要由DMA控制器120可能同時(shí)傳送的最 大傳送數(shù)以上。即,DMA寄存器組的最低限度數(shù)量需要是如下的數(shù) 量,即流處理裝置100在處理時(shí)同時(shí)參照的可能最大輸入流數(shù)與同 時(shí)輸出的可能最大流數(shù)量之和的二倍再加上控制流的讀出所需要的 數(shù)量1 。需要同時(shí)參照的可能最大輸入流數(shù)量與同時(shí)輸出的可能最大 流數(shù)量之和的二倍是由于以下原因能夠開始進(jìn)行作為下 一處理對(duì) 象的輸入流的在先輸入處理、以及在與當(dāng)前的輸入流相關(guān)的處理結(jié) 果即輸出流在流緩存器130中剩余的時(shí)刻與要進(jìn)行下 一處理的輸入流 相關(guān)的處理結(jié)果的輸出。
但是,與由輸入流的讀出延遲引起的流處理裝置10 0的性能下降 相比,由輸出流的輸出開始延遲引起的流處理裝置IOO的性能下降通 常較小,因此考慮到電路規(guī)模等,也考慮如下的方法與當(dāng)前的輸 入流相關(guān)的處理結(jié)果即輸出流從流緩存器130完全輸出之后,進(jìn)行與 要進(jìn)行下 一 處理的輸入流相關(guān)的的處理結(jié)果的輸出所需要的DMA控 制器120的設(shè)定,并開始輸出。在這樣的情況下,所需要的DMA寄 存器組的最低限度數(shù)量是流處理裝置10 0在處理時(shí)同時(shí)參照的最大 輸入流數(shù)的2倍與同時(shí)輸出的最大流數(shù)之和再加上控制流的讀出所需 要的數(shù)量l。
1個(gè)DMA寄存器組對(duì)應(yīng)于基于DMA控制器120的DMA傳送的1個(gè) 傳送信道。緩存器開始地址寄存器1201保持被分給對(duì)應(yīng)的傳送信道 的流緩存器130的存儲(chǔ)區(qū)域的起始地址、緩存器結(jié)束地址寄存器1202保持緊接結(jié)束地址之后的地址。緩沖寫地址寄存器1203保持接著將
數(shù)據(jù)寫入緩存器的地址,緩沖讀地址寄存器1204保持接著將數(shù)據(jù)從
緩存器讀出的地址,并進(jìn)行更新以按照各數(shù)據(jù)的寫入、讀出指示下
一地址。當(dāng)通過(guò)更新地址而與保持在緩存器結(jié)束地址寄存器1202中 的地址一致時(shí),返回到保持在緩存器開始地址1201中的地址。
存儲(chǔ)器基地址寄存器1205保持存儲(chǔ)器350的傳送源區(qū)域、或者傳 送目標(biāo)區(qū)域的起始地址。存儲(chǔ)器偏移寄存器1206保持對(duì)存儲(chǔ)器350的 下一讀出或者寫入目標(biāo)地址與保持于存儲(chǔ)器基地址寄存器1205中的 值的差量。對(duì)應(yīng)的傳送信道進(jìn)行更新,使得在每次對(duì)存儲(chǔ)器350讀出 或?qū)懭霑r(shí)指示下一地址。
最大偏移地址寄存器1207表示在由存儲(chǔ)器偏移寄存器1206所保 持的值中可容許的最大值。存儲(chǔ)器偏移寄存器1206的值與最大偏移
寫入的處理時(shí),可停止該信道向流處理器180或主處理器200通知。 利用這樣的功能,能夠按DMA的傳送信道限定可在存儲(chǔ)器350中使 用的區(qū)域,能夠?qū)崿F(xiàn)存儲(chǔ)器350的內(nèi)容保護(hù)。
狀態(tài)標(biāo)志寄存器1208保持對(duì)應(yīng)的傳送信道的工作狀態(tài)、傳送方 向、以及分配給流緩存器130的區(qū)域的緩存充滿狀態(tài)。
圖6例示出狀態(tài)標(biāo)志寄存器的結(jié)構(gòu)。工作中標(biāo)志1291在對(duì)應(yīng)的 傳送信道正在工作時(shí)變?yōu)?,在處于停止時(shí)變?yōu)?。工作中標(biāo)志1291 在開始該傳送信道的傳送時(shí)一皮設(shè)定為1。當(dāng)該傳送信道的傳送完成 時(shí),DMA控制器120自動(dòng)地返回到0。讀/寫模式標(biāo)志1292在對(duì)應(yīng) 的傳送信道從流處理裝置100向存儲(chǔ)器350傳送時(shí)被設(shè)定為1、在從 存儲(chǔ)器350向流處理裝置IOO傳送時(shí)被設(shè)定為0。緩存充滿標(biāo)志129 3在分配給對(duì)應(yīng)的信道的流緩存器130內(nèi)的區(qū)域被有效的數(shù)據(jù)完全填 滿時(shí)被設(shè)定為1,除此之外被設(shè)定為0??芍?,若在DMA傳送中緩 沖寫地址寄存器1203的內(nèi)容和緩沖讀地址寄存器1204的內(nèi)容不 同,則有效的數(shù)據(jù)一定保持在流緩存器130內(nèi),但在緩沖寫地址寄 存器1203的內(nèi)容和緩沖讀地址寄存器1204的內(nèi)容相同時(shí),考慮到
23在緩存器中完全不存在有效數(shù)據(jù)的狀態(tài)和緩存器完全被有效數(shù)據(jù)所 填滿的狀態(tài)這兩者,因此為了判斷處于哪一狀態(tài)而需要緩存充滿標(biāo)
志1293。
圖7示出流處理器18 0的程序讀出用的存儲(chǔ)器空間即命令存儲(chǔ)器 空間6160的結(jié)構(gòu)。命令存儲(chǔ)器空間6160考慮將來(lái)的擴(kuò)展,僅對(duì)一部 分進(jìn)行命令存儲(chǔ)器160的映射。在命令存儲(chǔ)器160中存在雙緩存區(qū)域 C161、雙緩存區(qū)域D162、固定區(qū)域B163的區(qū)域。
雙緩存區(qū)域C 161和雙緩存區(qū)域D 162在每次由流處理器180完成 某一數(shù)據(jù)流的處理時(shí),將對(duì)命令存儲(chǔ)器空間6160的地址映射相互替 換。例如雙緩存區(qū)域C161被分配地址00000 - 08000,雙《爰存區(qū)域 D162被分配地址08000 - IOOOO時(shí),流處理器180利用地址OOOOO-08000執(zhí)行著雙緩存區(qū)域C161的程序的情況下,在雙緩存區(qū)域D162 預(yù)先存儲(chǔ)用于下 一 流處理的程序,在雙緩存區(qū)域C161的程序執(zhí)行結(jié) 束的時(shí)刻,將雙緩存區(qū)域D162的映射切換為地址00000 - 08000,將 雙緩存區(qū)域C161的映射切換為地址08000 - 10000,流處理器180能夠 利用地址00000 - 08000在上述下一流處理中執(zhí)行雙緩存區(qū)域D162的 程序。如此,若預(yù)先將用于某一數(shù)據(jù)流的處理的程序存儲(chǔ)在一個(gè)區(qū) 域,則可以在該數(shù)據(jù)流的處理期間內(nèi)對(duì)另 一 個(gè)區(qū)域的內(nèi)容進(jìn)行重寫 ,可同時(shí)進(jìn)行面向利用流處理器180的數(shù)據(jù)流處理和下 一 數(shù)據(jù)流處理 的程序的寫入處理。固定區(qū)域B 163是用于存儲(chǔ)可在各種各樣的數(shù)據(jù) 流處理中公用的程序(子程序)的區(qū)域。此外,用于對(duì)地址映射進(jìn) 行交互切換的邏輯例如存儲(chǔ)在命令存儲(chǔ)器中,切換指示根據(jù)控制流 的處理狀況和流處理器180的處理狀況進(jìn)行即可。另外,在考慮到根 據(jù)結(jié)構(gòu)而不存在固定區(qū)域B 163的情況,或者按數(shù)據(jù)流而不需要替換 程序的情況下,則不需要雙緩存區(qū)域C 161和雙緩存區(qū)域D 162 。
圖8示出流處理器18 0的數(shù)據(jù)讀寫用的存儲(chǔ)器空間的結(jié)構(gòu)。在數(shù) 據(jù)讀寫用的存儲(chǔ)器空間中存在數(shù)據(jù)存儲(chǔ)器空間6170和流緩存器空間 6130的部分。
數(shù)據(jù)存儲(chǔ)器空間617 0考慮將來(lái)的擴(kuò)展,僅在 一 部分對(duì)數(shù)據(jù)存儲(chǔ)器170進(jìn)行映射。數(shù)據(jù)存儲(chǔ)器170存在雙緩存區(qū)域A171、雙緩存區(qū)域 B172、固定區(qū)域A173的區(qū)域。
雙緩存區(qū)域A171和雙緩存區(qū)域B172在每次由流處理器180完 成某一數(shù)據(jù)流的處理時(shí),將針對(duì)數(shù)據(jù)存儲(chǔ)器空間6170的地址映射相 互替換。因此,若預(yù)先將用于某一數(shù)據(jù)流的處理的參數(shù)存儲(chǔ)在一個(gè) 區(qū)域,則可以在該數(shù)據(jù)流的處理期間內(nèi)對(duì)另 一 個(gè)區(qū)域的內(nèi)容進(jìn)行重 寫,可同時(shí)進(jìn)行面向利用流處理器180的數(shù)據(jù)流處理和下一數(shù)據(jù)流 處理的參數(shù)的寫入處理。地址映射與上述命令存儲(chǔ)器160的情況同 樣地進(jìn)行即可。
固定區(qū)域A173作為在各種數(shù)據(jù)流處理中所需要的作業(yè)用數(shù)據(jù)存 儲(chǔ)器而進(jìn)行利用。另外,考慮到根據(jù)結(jié)構(gòu)而不存在固定區(qū)域A173的 情況,或者按數(shù)據(jù)流而不需要替換程序的情況下,則不需要雙緩存 區(qū)域A171和雙緩存區(qū)域B172。
對(duì)于流緩存器空間6130,考慮流緩存器130的將來(lái)的擴(kuò)展,僅 在一部分對(duì)流緩存器130進(jìn)行映射。通過(guò)將流緩存器130映射在流 處理器180的數(shù)據(jù)讀寫用存儲(chǔ)器空間,雖然限于被分配的緩存區(qū)域 的尺寸,但可在其范圍內(nèi)對(duì)流數(shù)據(jù)進(jìn)行隨機(jī)訪問(wèn)。由于存在即便是 流數(shù)據(jù)也會(huì)局部地存在一塊數(shù)據(jù)的情況,因此可以由流處理器180 對(duì)流數(shù)據(jù)的某一部分進(jìn)行隨機(jī)訪問(wèn),這是較為便利的。例如,可用 于以下用途,即在可隨機(jī)訪問(wèn)的范圍內(nèi)預(yù)先生成了后半部分的數(shù) 據(jù)之后再生成前半部分的數(shù)據(jù),或者直到中途為止生成流,之后取 消所生成的數(shù)據(jù)的輸出。
流緩存器130被分成多個(gè)區(qū)域而進(jìn)行利用,使各區(qū)域與利用D MA控制器120的傳送信道相對(duì)應(yīng)而進(jìn)行利用。即,從在DMA寄存 器組的緩存器開始地址寄存器1201中所指定的地址到緩存器結(jié)束地 址寄存器1202的緊前的地址與流緩存器130的1個(gè)區(qū)域相對(duì)應(yīng)。流 緩存器空間6130按DMA的傳送信道而劃分空間,對(duì)于劃分出的各 空間,使其映射在各傳送信道中使用的流緩存器130的區(qū)域。
圖9示出關(guān)注分配給某一傳送信道的流緩存器130內(nèi)的區(qū)域時(shí),在流緩存器空間6130中如何被映射區(qū)域。在圖9中,關(guān)注流緩 存器空間6130的第一緩存區(qū)域131而進(jìn)行示出。第一緩存區(qū)域131 通過(guò)地址轉(zhuǎn)換來(lái)進(jìn)行映射,以使得使用其區(qū)域的DMA傳送信道的D MA寄存器組的緩沖寫地址寄存器1203或者緩沖讀地址寄存器1204 所保持的地址到達(dá)第一緩存映射區(qū)域6131的起始位置。該傳送信道 用于輸入流時(shí),使用緩沖讀地址寄存器1204保持的地址,在用于輸 出流時(shí)使用緩沖寫地址寄存器1203保持的地址。通過(guò)如此進(jìn)行地址 轉(zhuǎn)換,流處理器180在某一時(shí)刻成為處理對(duì)象的范圍的起始部分總 是成為相同的地址,由流處理器180進(jìn)行工作的程序的開發(fā)變得容 易??傊骶彺嫫?30具有作為FIFO緩存器的功能,因此流緩存 器130內(nèi)的緩存區(qū)域的物理地址為可變的。這樣的地址轉(zhuǎn)換例如在 用于流處理器180對(duì)流緩存器130進(jìn)行訪問(wèn)的訪問(wèn)地址的地址運(yùn)算 時(shí)進(jìn)行即可。此時(shí)成為所需要的偏移的緩存器讀地址或者緩存器寫 地址由DMA控制器120取得即可。
當(dāng)對(duì)流緩存器130使用緩存器空間6130而從流處理器180直接 讀寫的情況下,需要使用一部分流處理器180進(jìn)行工作的程序來(lái)進(jìn) 行成為直接讀寫的對(duì)象的緩存器所對(duì)應(yīng)的DMA傳送信道的緩存管 理指示器的管理。
需要進(jìn)行如下處理確認(rèn)在進(jìn)行著輸入流的處理的傳送信道中 是否在參照前已讀入完流緩存器130所需要的充分的數(shù)據(jù),在需要參
處理。在確認(rèn)數(shù)據(jù)是否已讀入完時(shí),使用該DMA傳送信道的緩存充 滿標(biāo)志1293、緩沖寫地址寄存器1203和緩沖讀地址寄存器1204來(lái)進(jìn) 行。為了讀進(jìn)流,通過(guò)使該DMA傳送信道的緩沖讀地址寄存器1204 的值增加讀進(jìn)的長(zhǎng)度量來(lái)進(jìn)行。當(dāng)變?yōu)榫彺嫫鹘Y(jié)束地址寄存器1202 以后的值時(shí),使成為從緩存器結(jié)束地址寄存器1202的值中減去緩存 器開始寄存器1201的值而得到的值。在緩沖讀地址寄存器1204的更 新時(shí),同時(shí)還進(jìn)行緩存充滿標(biāo)志1293的更新。
需要進(jìn)行如下處理確認(rèn)在進(jìn)行著輸出流的處理傳送信道中是否在寫入前存在流緩存器130所需要的足夠的空余,在對(duì)流緩存器 130的寫入處理完成的時(shí)刻進(jìn)行寫入流。在確認(rèn)是否存在流緩存器
130所需要的足夠的空余時(shí),使用該DMA傳送信道的緩存充滿標(biāo)志 1293、緩沖寫地址寄存器1203和緩沖讀地址寄存器1204來(lái)進(jìn)行。為 了寫入流,通過(guò)使該DMA傳送信道的緩沖寫地址寄存器1203的值增 加寫入的長(zhǎng)度量來(lái)進(jìn)行。當(dāng)變?yōu)榫彺嫫鹘Y(jié)束地址寄存器1202以后的 值時(shí),使成為從緩存器結(jié)束地址寄存器1202的值中減去緩存器開始 寄存器1201的值而得到的值。在緩沖寫地址寄存器1203更新時(shí),同 時(shí)還進(jìn)行緩存充滿標(biāo)志1293的更新。
圖10例示出控制流700的結(jié)構(gòu)??刂屏饔?個(gè)以上控制指令組 7100、 7200、 7900構(gòu)成,各自的控制指令組由l個(gè)以上控制指令7210 、7220、 7290構(gòu)成。各自的控制指令由控制指令首部7221以及與其 相連的0個(gè)以上控制參數(shù)7226構(gòu)成。1個(gè)控制指令組具有成為流處理 時(shí)同時(shí)參照的l組輸入流的處理所對(duì)應(yīng)的控制信息。通過(guò)排列多個(gè)控 制指令組,能夠由流處理裝置10 0連續(xù)地處理多個(gè)組的輸入流。
圖11例示出控制指令首部7221的字段結(jié)構(gòu)。控制指令首部7221 具有邊界標(biāo)志字段6100、指令類型字段6200、以及參數(shù)字段6300。
邊界標(biāo)志字段61 OO是用于表示是1個(gè)控制指令組的最后的控制指 令的標(biāo)志。當(dāng)為l個(gè)控制指令組的最后的控制指令時(shí)指定l,當(dāng)為除 此之外的控制指令時(shí)指定O。構(gòu)成l個(gè)控制指令組的控制指令的個(gè)數(shù) 是可變的,因此控制流解析單元150參照邊界標(biāo)志字段6100而對(duì)1個(gè) 控制指令組的最后進(jìn)行判斷。
指令類型字段6200在指定指令類型的字段中,對(duì)指定控制指令 的功能的值進(jìn)行指定??刂屏鹘馕鰡卧?50根據(jù)指令類型字段6200的 值判斷處理的內(nèi)容、以及該控制指令所包含的參數(shù)結(jié)構(gòu)。
參數(shù)字段6300在存儲(chǔ)構(gòu)成指令的參數(shù)的字段中,根據(jù)指令類型 字段6200的值不同而使字段具有的含義不同。
圖12例示出指令類型字段6200的值和指令的功能的關(guān)系。
指令類型O具有如下功能在對(duì)其指令首部所屬的控制指令組所對(duì)應(yīng)的流進(jìn)行處理時(shí),對(duì)存儲(chǔ)有作為處理對(duì)象的輸入流的地址進(jìn)行 指定。指令類型0的控制指令首部取為如圖13所示的結(jié)構(gòu)。在指令類
型O中,對(duì)指令類型字段6200指定0。末尾標(biāo)志6302是表示該控制指 令首部所屬的控制指令組位于控制流700的最后的標(biāo)志,在為最后的 情況下指定l,在除此以外的情況下指定O。即,在末尾標(biāo)志6302為1 的指令類型O的控制指令、或者其以后的控制指令中,對(duì)邊界標(biāo)志字 段指定1時(shí),作為控制流700的最后的控制指令而進(jìn)行處理。
預(yù)約區(qū)域是未使用區(qū)域。對(duì)輸入流組ID字4殳6301指定輸入流組 ID。指令類型0需要指定第一控制參數(shù)7226,在第一控制參數(shù)7226中 存在輸入流地址字段6305。對(duì)輸入流地址字段6305指定存儲(chǔ)有作為 處理對(duì)象的輸入流的地址。該地址是圖3所示的地址空間中的地址。
輸入流組ID是輸入流的識(shí)別號(hào)碼,當(dāng)在流處理時(shí)同時(shí)參照的1組 輸入流為多個(gè)輸入流的情況下,用于識(shí)別輸入流??刂屏鹘馕鰡卧?150處理控制指令時(shí),才艮據(jù)輸入流組ID,確定用于輸入流的輸入的 DMA傳送信道的分配,從而流處理器180可以正確參照要在處理時(shí) 參照的輸入流。
當(dāng)流處理時(shí)同時(shí)參照的l組輸入流的組為多個(gè)輸入流時(shí),對(duì)l個(gè) 控制指令組使用多個(gè)輸入流組ID的不重復(fù)的指令類型O,指定所有的 輸入流。當(dāng)同時(shí)參照的l組輸入流的組為單獨(dú)的輸入流時(shí),對(duì)輸入流 組ID通常指定O。
指令類型1的控制指令首部為圖14所示的結(jié)構(gòu)。指令類型l具有 如下功能對(duì)以緊前的指令類型O的控制指令所指定的輸入流的最大 尺寸進(jìn)行設(shè)定。
指令類型1在指令類型字段6200中指定1。最大流長(zhǎng)度字段6312 是指定對(duì)輸入流的尺寸限制的字段。由最大流長(zhǎng)度字段6312所設(shè)定 的值通過(guò)控制流解析單元150寫入存在于對(duì)應(yīng)的輸入流的傳送信道的 DMA寄存器組中的最大偏移地址寄存器1207。通過(guò)指定最大流長(zhǎng)度 ,能夠按每個(gè)輸入流限制存儲(chǔ)器區(qū)域,可以進(jìn)行存儲(chǔ)器保護(hù)。另外 ,當(dāng)輸入流一部分損壞而導(dǎo)致處理無(wú)法正常進(jìn)行,無(wú)法判斷輸入流的最后時(shí),也在想要對(duì)輸入流進(jìn)行以最大流長(zhǎng)度指定了輸入流的長(zhǎng)
度以上的處理的時(shí)刻由DMA控制器120向流處理器18 0發(fā)出通知,所
以能夠避免處理不結(jié)束的危險(xiǎn)。
指令類型4的控制指令首部為圖15所示的結(jié)構(gòu)。指令類型4具有 將任意的數(shù)據(jù)寫入命令存儲(chǔ)器160或數(shù)據(jù)存儲(chǔ)器170、控制寄存器140 的功能。
指令類型4在指令類型字段6200中指定4。在數(shù)據(jù)長(zhǎng)度字段6311 中指定寫入的數(shù)據(jù)長(zhǎng)度。對(duì)于長(zhǎng)度而言,指定將32位單位作為1個(gè)字 碼的字碼數(shù)。長(zhǎng)度指定單位也可以與系統(tǒng)相應(yīng)地進(jìn)行變更。在指令
類型4中,在第一控制參數(shù)中具有數(shù)據(jù)存儲(chǔ)目標(biāo)地址字段6315。在數(shù) 據(jù)存儲(chǔ)目標(biāo)地址字段6315中,作為數(shù)據(jù)存儲(chǔ)目標(biāo)指定與圖4所示的地 址空間相對(duì)應(yīng)的地址。當(dāng)存在與命令存儲(chǔ)器160或者數(shù)據(jù)存儲(chǔ)器170 的雙緩存器空間相對(duì)應(yīng)的地址時(shí),由控制流解析單元150進(jìn)行地址轉(zhuǎn) 換,在圖4所示的地址空間中一個(gè)區(qū)域由流處理器180正在使用,因 此進(jìn)行控制使得訪問(wèn)目標(biāo)成為另一個(gè)區(qū)域。因此,利用指令類型4的 控制指令寫入到命令存儲(chǔ)器160或者數(shù)據(jù)存儲(chǔ)器170的雙緩存區(qū)域時(shí) ,對(duì)數(shù)據(jù)存儲(chǔ)目標(biāo)地址字段指定較小地址一方即可。
對(duì)于用指令類型4寫入的數(shù)據(jù),依次存儲(chǔ)在第二控制參數(shù)以后由 數(shù)據(jù)長(zhǎng)度字段6311所指定的個(gè)數(shù)。
還使用指令類型4的控制指令進(jìn)行輸出流的存儲(chǔ)目標(biāo)的設(shè)定。在 指令類型4中,能夠?qū)?shù)據(jù)存儲(chǔ)器170的任意的區(qū)域?qū)懭雲(yún)?shù),所以 預(yù)先確定由數(shù)據(jù)存儲(chǔ)器170存儲(chǔ)輸出流的存儲(chǔ)目標(biāo)地址的地址,用指 令類型4的控制指令對(duì)其地址寫入輸出目標(biāo)地址,如果利用由流處理 器180進(jìn)行工作的程序參照輸出目標(biāo)地址設(shè)定位于DMA控制器120中 的DMA控制寄存器,則能夠在所指定的地址寫入輸出流。
由于利用流處理器180進(jìn)行工作的程序來(lái)進(jìn)行輸出流的存儲(chǔ)目標(biāo) 、DMA控制寄存器的設(shè)定,因此輸出流的輸出方法的自由度較高。 例如,也可以將與同時(shí)參照的1組的多個(gè)輸入流相關(guān)的處理結(jié)果匯集 為1條輸出流,或者按在流中含有的信息的種類將1條輸入流分成多個(gè)輸出流來(lái)進(jìn)行輸出。另外,還可以將用不同的控制指令組所指定 的輸入流的處理結(jié)果作為連續(xù)的1條輸出流而進(jìn)行輸出。
按在流中含有的信息的種類將1條輸入流分成多個(gè)輸出流,特別
是對(duì)于MPEG-2等圖像編解碼器的解碼處理是有效的。在對(duì)圖像編解 碼器進(jìn)行解碼時(shí),可以并行執(zhí)行IDCT處理等對(duì)系數(shù)進(jìn)行轉(zhuǎn)換的處理 、以及從已基于運(yùn)動(dòng)矢量對(duì)參照?qǐng)D像進(jìn)行了解碼的圖像讀出的處理 。在輸入流中含有IDCT處理等的系數(shù)和運(yùn)動(dòng)矢量信息這兩者,因此 ,如果由流處理裝置100將這些參數(shù)轉(zhuǎn)換為容易在IDCT處理、運(yùn)動(dòng) 矢量處理中利用的格式,進(jìn)而將各參數(shù)作為其他流進(jìn)行輸出,則容 易并行執(zhí)行IDCT處理和基于運(yùn)動(dòng)矢量讀出參照?qǐng)D像的處理。
輸入流無(wú)法在由DMA控制器12 0開始對(duì)應(yīng)的傳送信道的工作開 之后,從存儲(chǔ)器350讀出數(shù)據(jù),在已讀出到流緩存器130的內(nèi)容被寫 入為止,由流處理器180開始處理,但輸出流能夠在進(jìn)行了DMA控 制器120的設(shè)定之后向流緩存器130寫入,因此對(duì)于輸出流,即便由 流處理器180進(jìn)行DMA控制寄存器的設(shè)定,對(duì)流處理裝置IOO的處理 性能的影響也是較少的。
圖16例示出流處理裝置100的工作定時(shí)。使用該圖16整體說(shuō)明流 處理裝置100的工作。
在利用流處理裝置100之前,首先由主處理器200進(jìn)行流處理裝 置100的初始化處理(TR1)。需要設(shè)定DMA控制寄存器而對(duì)DMA 的傳送信道分配流緩存器130的區(qū)域。另外,在根據(jù)需要對(duì)命令存儲(chǔ) 器160進(jìn)行初始程序、流處理的基礎(chǔ)上,寫入可公共利用的子程序等 ,寫入可對(duì)數(shù)據(jù)存儲(chǔ)器170公用的參數(shù)。
然后,由主處理器200進(jìn)行處于存儲(chǔ)在存儲(chǔ)器350中的狀態(tài)的輸 入流的處理所需要的控制流700的生成。如果完成了控制流700的生 成,對(duì)位于控制寄存器140中的控制流700的起始地址指定用寄存器 寫入控制流700的地址。通過(guò)這樣的操作使流處理裝置100啟動(dòng)。當(dāng) 向控制流700的起始地址指定用寄存器寫入控制流700的地址時(shí),該 地址被暫時(shí)寫入控制流地址隊(duì)列155。在控制流地址隊(duì)列155中保持1
30個(gè)以上地址的狀態(tài)下,控制流解析單元15 0不進(jìn)行控制流700的處理
時(shí),控制流解析單元150進(jìn)行與控制流700的DMA傳送信道對(duì)應(yīng)的 DMA寄存器組的初始化,開始控制流700的讀出,控制流解析單元 150開始控制流700的處理(TR2)。
控制流解析單元150依照控制流700進(jìn)行處理,在與輸入流的讀 出所需要的信息相符的時(shí)刻進(jìn)行輸入流讀出處理所需要的DMA傳送 設(shè)定,使輸入流的讀出開始(TR3),在l個(gè)控制指令組的處理全部 完成的時(shí)刻啟動(dòng)基于流處理器180的流處理(TR4)。此時(shí),用于輸 入流的讀出的DMA傳送信道的信息-波傳送到流處理器180,另外可 用于輸出流的輸出的DMA傳送信道的信息也被傳到流處理器180 。 能夠根據(jù)需要將多個(gè)輸出流同時(shí)輸出,因此將作為可用于輸出流的 輸出的DMA傳送信道而由流處理裝置100所預(yù)先確定的信道條凄丈傳 到流處理器180作為可用于輸出的DMA傳送信道。
在由流處理器180開始流處理的同時(shí),控制流解析單元150開始 下一控制指令組的處理(TR5)。此時(shí),由控制指令將對(duì)命令存儲(chǔ)器 160和數(shù)據(jù)存儲(chǔ)器170進(jìn)行寫入時(shí)使用的雙緩存區(qū)域的分配調(diào)換,以 避免對(duì)流處理器180中的處理帶來(lái)影響。通過(guò)進(jìn)行下 一控制指令組的 處理,將下一輸入流的處理所需要的程序?qū)懭朊畲鎯?chǔ)器160,將參 數(shù)寫入數(shù)據(jù)存儲(chǔ)器170。另外,還進(jìn)行下一輸入流的讀出所需要的 DMA控制用的寄存器的設(shè)定。此時(shí),利用在當(dāng)前的輸入流讀出中使 用的DMA傳送信道、可用于輸出流的輸出且傳遞到流處理器18 0的 DM A傳送信道以外的信道。
在與下 一 輸入流對(duì)應(yīng)的控制指令組的處理完成的時(shí)刻,控制流
解析單元150啟動(dòng)在下一輸入流的讀出中使用的DMA傳送信道,開 始輸入流的在先讀取(TR6)。如果此時(shí)是參照多個(gè)輸入流的處理, 則進(jìn)行所需的所有輸入流的在先讀取。
在下一控制指令組的處理完成,且由流處理器180執(zhí)行的輸入流 的處理完成的時(shí)刻,控制流解析單元150使來(lái)自流處理器180的命令 存儲(chǔ)器160和數(shù)據(jù)存儲(chǔ)器170的雙緩存區(qū)域的分配交換,將用于下一輸入流的讀出的DMA傳送信道傳給流處理器180 ,在下 一輸入流處 理時(shí)將可用于輸出流的輸出的DMA傳送信道傳給流處理器180。然 后重新啟動(dòng)流處理器180。在流處理器180纟皮啟動(dòng)的時(shí)刻輸入流的起 始部分的讀出完成,程序、參數(shù)也已經(jīng)準(zhǔn)備好,因此流處理器180能 夠立刻開始處理(TR7)。
以后、反復(fù)進(jìn)行同樣的處理直到控制流700的最后的控制指令組 的處理完成為止,能夠使流處理器180幾乎不停止地進(jìn)行處理。
利用控制流地址隊(duì)列15 5 ,可在流處理裝置10 0進(jìn)行工作時(shí)指定 下一控制流700。控制流700的生成需要在輸入流被存儲(chǔ)在存儲(chǔ)器350 中的狀態(tài)下進(jìn)行。即便是在流處理裝置100工作中,也存在從輸入輸 出裝置400輸入新的輸入流而存儲(chǔ)在存儲(chǔ)器350中的情況,在這種情 況下,即便流處理裝置100處于工作中,只要由主處理器200生成下 一控制流700,寫入到位于控制寄存器140中的控制流700的起始地址 指定用寄存器,則在控制流地址隊(duì)列155中存儲(chǔ)下一控制流700的地 址,控制流解析單元150能夠連續(xù)處理多個(gè)控制流700 。
在以上的說(shuō)明中,將流處理裝置10 0作為1個(gè)裝置進(jìn)行了記述, 但也可以將流處理裝置IOO、主處理器200、存儲(chǔ)器控制裝置300、輸 入輸出裝置400、總線500作為集成在1個(gè)半導(dǎo)體襯底上的半導(dǎo)體器件 而進(jìn)行實(shí)現(xiàn)。
圖17示出對(duì)上述的流處理裝置100的功能進(jìn)行了擴(kuò)展的例子。在 圖17中,流處理裝置1 OO除了處理圖1中的輸入輸出對(duì)象的流之外, 還能處理副控制流706。因此,流處理裝置100能夠采用控制流700來(lái) 利用圖18所示的指令類型。為了處理副控制流706,對(duì)于上述流處理 裝置IOO,在可由控制流700利用的指令中追加指令類型2。指令類型 0、指令類型l、指令類型4與上述相同。
指令類型2的控制指令首部具有圖19所示的結(jié)構(gòu)。指令類型2的 具有如下功能與指令類型4的功能同樣地,將任意的數(shù)據(jù)寫入命令 存儲(chǔ)器160或數(shù)據(jù)存儲(chǔ)器170、控制寄存器140。在指令類型4中,將 要寫入的數(shù)據(jù)作為控制參數(shù)存儲(chǔ)在控制指令內(nèi),而在指令類型2中,將要寫入的數(shù)據(jù)作為副控制流706讀出。即,在指令類型2中,需要
在存儲(chǔ)器350內(nèi)準(zhǔn)備存儲(chǔ)副控制流706的區(qū)域,預(yù)先存儲(chǔ)要寫入到該 區(qū)域的數(shù)據(jù)串。
在指令類型2中對(duì)指令類型字段6200指定2。在數(shù)據(jù)長(zhǎng)度字段 6311中指定要寫入的數(shù)據(jù)長(zhǎng)度。對(duì)于長(zhǎng)度而言,指定將32位單位作 為l個(gè)字碼的字碼數(shù)。在指令類型2中,在第一控制參數(shù)中具有數(shù)據(jù) 存儲(chǔ)目標(biāo)地址字段6315。在數(shù)據(jù)存儲(chǔ)目標(biāo)地址字段6315中,作為數(shù) 據(jù)存儲(chǔ)目標(biāo)指定與圖4所示的地址空間相對(duì)應(yīng)的地址。當(dāng)存在與命令 存儲(chǔ)器160或者數(shù)據(jù)存儲(chǔ)器170的雙緩存器空間相對(duì)應(yīng)的地址時(shí),由 控制流解析單元150進(jìn)行地址轉(zhuǎn)換,進(jìn)行控制以使得成為在圖4所示 的地址空間中未被流處理器180利用的區(qū)域。因此,在利用指令類型 2的控制指令寫入到命令存儲(chǔ)器160或者數(shù)據(jù)存儲(chǔ)器170的雙緩存區(qū)域 時(shí),若在數(shù)據(jù)存儲(chǔ)目標(biāo)地址字段中指定較小地址一方,則進(jìn)行不會(huì) 對(duì)流處理器180的工作產(chǎn)生影響的處理。
在指令類型2中,使第二控制參數(shù)具有副控制流地址字段631 6。在副控制流地址字段6316中指定存^(諸有副控制流706的開始地 址。該地址是圖3所示的地址空間中的地址。
副控制流706的內(nèi)容是用指令類型2寫入到命令存儲(chǔ)器160、數(shù) 據(jù)存儲(chǔ)器170或者控制寄存器140的數(shù)據(jù)串。因此,需要使用指令 類型2寫入到命令存儲(chǔ)器160程序的種類或?qū)懭氲綌?shù)據(jù)存儲(chǔ)器170 的一塊的量來(lái)準(zhǔn)備副控制流706。
控制流解析單元150在處理指令類型2的控制指令時(shí),進(jìn)行被 分配的DMA傳送信道的初始化和啟動(dòng),以使讀出副控制流706,通 過(guò)DMA控制器120將副控制流706的內(nèi)容傳送給命令存儲(chǔ)器160、 數(shù)據(jù)存儲(chǔ)器170或者控制寄存器140。控制流解析單元150在等待副 控制流706的傳送的完成之后,進(jìn)行下一控制指令的處理。
為了副控制流706的數(shù)據(jù)傳送,與圖1的情況相比,需要具有
多條DMA的傳送信道。因此,DMA寄存器組與其相比也需要多 水當(dāng)使用指令類型2時(shí),與僅使用指令類型4生成控制流700的
情況相比,尤其是寫入命令存儲(chǔ)器160的程序的處理變得容易。一
般而言,要處理的輸入流的格式基于某一標(biāo)準(zhǔn)或規(guī)格,因此在流處
理中所需要的程序的種類也能夠進(jìn)行限定。在使用指令類型4時(shí),
需要按每個(gè)控制指令組對(duì)在指令流中相當(dāng)于程序的數(shù)據(jù)串進(jìn)行復(fù)制
等處理來(lái)生成控制流700,但在使用指令類型2時(shí),只要預(yù)先確定的 區(qū)域存儲(chǔ)所需要的程序,則用指令類型2指定存儲(chǔ)了程序的起始地 址即可,因此并不需要復(fù)制相當(dāng)于程序的數(shù)據(jù)串,能夠減少主處理 器200的處理或者對(duì)存儲(chǔ)器350的訪問(wèn)。
本發(fā)明的流處理裝置能夠應(yīng)用于對(duì)圖像、聲音等進(jìn)行了編碼的 流的生成、以及對(duì)圖像、聲音等進(jìn)行了編碼的流的解碼。圖像、音 聲分別具有編碼標(biāo)準(zhǔn)、且圖像、聲音分別具有多個(gè)編碼標(biāo)準(zhǔn)。另 外,還能夠用于含有對(duì)圖像、聲音進(jìn)行了編碼的流的各種數(shù)據(jù)流的 加密或已加密的數(shù)據(jù)流的解碼處理。數(shù)字電視、DVD等對(duì)圖像、音 頻流或加密流進(jìn)行處理的設(shè)備很多,在這些設(shè)備中流處理裝置需要 進(jìn)行各種標(biāo)準(zhǔn)的流處理,需要按照流所屬的標(biāo)準(zhǔn)來(lái)變更要處理的程 序和參數(shù)。在本發(fā)明的流處理裝置中,能夠在伴隨程序、參數(shù)的變 更的同時(shí),由流處理器有效地連續(xù)地進(jìn)行各種格式的流的處理,能 夠使用具有相同性能的流處理器進(jìn)行多個(gè)流處理。
但是本發(fā)明并不限于此,當(dāng)然在不脫離本發(fā)明的要點(diǎn)的范圍內(nèi)可以 進(jìn)行各種變更。
權(quán)利要求
1. 一種流處理裝置,輸入數(shù)據(jù)流來(lái)實(shí)施運(yùn)算處理,并將其結(jié)果作為數(shù)據(jù)流進(jìn)行輸出,其中,該流處理裝置具有緩沖存儲(chǔ)器和處理器,將流處理所需的信息作為控制流輸入到上述緩沖存儲(chǔ)器,上述控制流具有與輸入的數(shù)據(jù)流的取得處有關(guān)的信息以及數(shù)據(jù)流的運(yùn)算處理所需要的參數(shù),根據(jù)與上述數(shù)據(jù)流的取得處有關(guān)的信息將數(shù)據(jù)流輸入到上述緩沖存儲(chǔ)器,上述處理器根據(jù)控制流的參數(shù)對(duì)已輸入到上述緩沖存儲(chǔ)器的數(shù)據(jù)流進(jìn)行運(yùn)算處理。
2. 根據(jù)權(quán)利要求l所述的流處理裝置,其特征在于,還具有從流處理裝置的外部向上述緩沖存儲(chǔ)器傳送控制流和數(shù)據(jù) 流的傳送控制裝置。
3. 根據(jù)權(quán)利要求2所述的流處理裝置,其特征在于, 還具有控制單元,其對(duì)控制流進(jìn)行解析來(lái)取得上述參數(shù)和與上述數(shù)據(jù)流的取得處有關(guān)的信息,并且,對(duì)上述傳送控制裝置設(shè)定傳送控 制條件。
4. 根據(jù)權(quán)利要求3所述的流處理裝置,其特征在于, 還具有數(shù)據(jù)存儲(chǔ)器,其被傳送上述參數(shù),并且能夠由上述處理器進(jìn)行訪問(wèn)。
5. 根據(jù)權(quán)利要求4所述的流處理裝置,其特征在于, 還具有命令存儲(chǔ)器,上述控制單元從控制流取得與運(yùn)算順序有關(guān)息,并且,上述命令存儲(chǔ)器能夠由上述處理器進(jìn)行訪問(wèn);上述處理器使用從命令存儲(chǔ)器讀出的與運(yùn)算順序有關(guān)的信息來(lái)進(jìn) 行上述運(yùn)算處理。
6. 根據(jù)權(quán)利要求4所述的流處理裝置,其特征在于, 控制流具有與輔助控制流的啟動(dòng)有關(guān)的信息;上述輔助控制流具有處理數(shù)據(jù)流所需要的參數(shù);上述控制單元根據(jù)上述控制流的內(nèi)容對(duì)上述傳送控制單元設(shè)定傳 送控制條件,使上述輔助控制流傳送到上述緩沖存儲(chǔ)器;上述處理器基于傳送到緩存器的輔助控制流的上述參數(shù)來(lái)進(jìn)行運(yùn) 算處理。
7. 根據(jù)權(quán)利要求5所述的流處理裝置,其特征在于, 控制流具有與輔助控制流的啟動(dòng)有關(guān)的信息;上述輔助控制流具有與處理數(shù)據(jù)流所需的運(yùn)算順序有關(guān)的信息; 上述控制單元根據(jù)上述輔助控制流的內(nèi)容對(duì)上述傳送控制單元設(shè)定傳送控制條件,使上述輔助流傳送到上述緩沖存儲(chǔ)器;上述處理器基于傳送到緩存器的上述運(yùn)算順序的信息來(lái)進(jìn)行運(yùn)算處理。
8. 根據(jù)權(quán)利要求l所述的流處理裝置,其特征在于,在處理1條輸入數(shù)據(jù)流時(shí),將結(jié)果分成多個(gè)數(shù)據(jù)流而進(jìn)行輸出。
9. 根據(jù)權(quán)利要求l所述的流處理裝置,其特征在于, 參照多個(gè)輸入流,并通過(guò)參照上述多個(gè)輸入流來(lái)實(shí)施運(yùn)算處理,輸出上述運(yùn)算處理的結(jié)果。
10. 根據(jù)權(quán)利要求l所述的流處理裝置,其特征在于, 上述處理器依照運(yùn)算順序進(jìn)行流處理;上述緩沖存儲(chǔ)器暫時(shí)存儲(chǔ)已經(jīng)輸入的數(shù)據(jù)流和要輸出的數(shù)據(jù)流; 上述處理器能夠?qū)ι鲜鼍彌_存儲(chǔ)器進(jìn)行隨機(jī)訪問(wèn)。
11. 根據(jù)權(quán)利要求l所述的流處理裝置,其特征在于, 上述處理器依照運(yùn)算順序進(jìn)行流處理;上述流處理裝置還具有用于存儲(chǔ)上述處理器能夠讀寫的數(shù)據(jù)的數(shù) 據(jù)存儲(chǔ)器;上述數(shù)據(jù)存儲(chǔ)器能夠在接受上述處理器的訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下的處理,即在結(jié)束一個(gè)數(shù)據(jù)流的處理 、開始下一數(shù)據(jù)流的處理時(shí),對(duì)存儲(chǔ)有一個(gè)數(shù)據(jù)流的存儲(chǔ)區(qū)域和存儲(chǔ) 有其他數(shù)據(jù)流的存儲(chǔ)區(qū)域各自映射的邏輯地址進(jìn)行替換。
12. 根據(jù)權(quán)利要求l所述的流處理裝置,其特征在于,上述處理器依照運(yùn)算順序進(jìn)行流處理;序的命令存儲(chǔ)器;上述命令存儲(chǔ)器能夠在接受上述處理器的訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下的處理,即在結(jié)束一個(gè)數(shù)據(jù)流的處理 、開始下一數(shù)據(jù)流的處理時(shí),對(duì)存儲(chǔ)有表示針對(duì)一個(gè)數(shù)據(jù)流的運(yùn)算順 序的程序的存儲(chǔ)區(qū)域和存儲(chǔ)有針對(duì)下 一數(shù)據(jù)流的運(yùn)算順序的程序的存 儲(chǔ)區(qū)域各自映射的邏輯地址進(jìn)行替換。
13. —種流處理裝置,輸入數(shù)據(jù)流來(lái)實(shí)施運(yùn)算處理,將其結(jié)果作為 數(shù)據(jù)流進(jìn)行輸出,其中,該流處理裝置具有 緩沖存儲(chǔ)器;數(shù)據(jù)傳送控制裝置,用于上述緩沖存儲(chǔ)器和上述流處理裝置的外 部之間的數(shù)據(jù)傳送控制;以及處理器,用于存儲(chǔ)在上述緩沖存儲(chǔ)器中的數(shù)據(jù)流的運(yùn)算處理, 上述數(shù)據(jù)傳送控制裝置,根據(jù)存儲(chǔ)在緩沖存儲(chǔ)器中的控制流具有 的與數(shù)據(jù)流的取得處相關(guān)的信息,將上述數(shù)據(jù)流傳送到上述緩沖存儲(chǔ) 器中,上述處理器基于傳送到上述緩沖存儲(chǔ)器中的控制流具有的數(shù)據(jù) 流的運(yùn)算處理所需要的參數(shù),對(duì)上述緩沖存儲(chǔ)器內(nèi)的數(shù)據(jù)流進(jìn)行運(yùn)算 處理,與上述處理器對(duì)上述緩沖存儲(chǔ)器內(nèi)的數(shù)據(jù)流進(jìn)行的運(yùn)算處理相并 行,上述數(shù)據(jù)傳送控制裝置在其外部與上述緩沖存儲(chǔ)器之間對(duì)數(shù)據(jù)流 和控制流的數(shù)據(jù)傳送進(jìn)行控制。
14. 根據(jù)權(quán)利要求13所述的流處理裝置,其特征在于,還具有基于存儲(chǔ)在上述緩沖存儲(chǔ)器中的控制流的解析結(jié)果進(jìn)行控 制的控制單元,上述控制單元基于控制流具有的與數(shù)據(jù)流的取得處相關(guān)的信息,對(duì)上述數(shù)據(jù)傳送控制裝置設(shè)定傳送條件。
15. 根據(jù)權(quán)利要求13所述的流處理裝置,其特征在于,還具有能夠由上述處理器讀寫的數(shù)據(jù)存儲(chǔ)器; 上述控制單元將控制流具有的數(shù)據(jù)流的運(yùn)算處理所需要的參數(shù)設(shè) 定在上述數(shù)據(jù)存儲(chǔ)器中。
16. 根據(jù)權(quán)利要求13所述的流處理裝置,其特征在于, 還具有能夠由上述處理器讀寫的數(shù)據(jù)存儲(chǔ)器;上述數(shù)據(jù)存儲(chǔ)器能夠在接受上述處理器的訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下的處理,即在結(jié)束一個(gè)數(shù)據(jù)流的處理 、開始下一數(shù)據(jù)流的處理時(shí),對(duì)存儲(chǔ)有一個(gè)數(shù)據(jù)流的存儲(chǔ)區(qū)域和存儲(chǔ) 有其他數(shù)據(jù)流的存儲(chǔ)區(qū)域各自映射的邏輯地址進(jìn)行替換。
17. 根據(jù)權(quán)利要求13所述的流處理裝置,其特征在于, 還具有存儲(chǔ)表示上述處理器的運(yùn)算順序的程序的命令存儲(chǔ)器,上述命令存儲(chǔ)器能夠在從上述處理器進(jìn)行訪問(wèn)時(shí)進(jìn)行地址轉(zhuǎn)換處理;上述地址轉(zhuǎn)換處理是如下的處理,即在結(jié)束一個(gè)數(shù)據(jù)流的處理 、開始下一數(shù)據(jù)流的處理時(shí),對(duì)存儲(chǔ)有表示針對(duì)一個(gè)數(shù)據(jù)流的運(yùn)算順 序的程序的存儲(chǔ)區(qū)域和存儲(chǔ)有針對(duì)下 一數(shù)據(jù)流的運(yùn)算順序的程序的存 儲(chǔ)區(qū)域各自映射的邏輯地址進(jìn)行替換。
18. —種流處理方法,對(duì)數(shù)據(jù)流實(shí)施運(yùn)算處理并將結(jié)果作為數(shù)據(jù) 流^T出,該流處理方法包4舌如下處理準(zhǔn)備1個(gè)以上的控制流作為流處理所需要的信息的處理,該控制流 具有與要處理的數(shù)據(jù)流的取得處相關(guān)的信息、以及數(shù)據(jù)流的處理所需 要的參數(shù),;根據(jù)所準(zhǔn)備的控制流的與上述數(shù)據(jù)流的取得處相關(guān)的信息來(lái)參照 數(shù)據(jù)流的處理;以及參照所準(zhǔn)備的控制流的上述參數(shù)來(lái)進(jìn)行運(yùn)算的處理。
19. 一種數(shù)據(jù)處理系統(tǒng),具有流處理裝置,其輸入數(shù)據(jù)流而實(shí)施運(yùn)算處理,將其結(jié)果作為數(shù)據(jù)流輸出;存儲(chǔ)器,作為針對(duì)上述數(shù)據(jù)流的流處理所需要的信息而存儲(chǔ)控制流和上述IH居流;以及主處理器,對(duì)上述存儲(chǔ)器和上述流處理裝置進(jìn)行控制, 其中,上述控制流具有與輸入的數(shù)據(jù)流的取得處相關(guān)的信息、以 及數(shù)據(jù)流的運(yùn)算處理所需要的參數(shù),上述流處理裝置具有緩沖存儲(chǔ)器和處理器,將上述控制流從上述 存儲(chǔ)器輸入到緩沖存儲(chǔ)器,按照所輸入的上述控制流擁有的與數(shù)據(jù)流 的取得處相關(guān)的信息而將數(shù)據(jù)流輸入到上述緩沖存儲(chǔ)器,上述處理器 根據(jù)控制流的參數(shù)對(duì)輸入到上述緩沖存儲(chǔ)器的數(shù)據(jù)流進(jìn)行運(yùn)算處理。
20. 根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其特征在于,上述主處理器進(jìn)行向上述存儲(chǔ)器存儲(chǔ)控制流和上述數(shù)據(jù)流的控制,上述流處理裝置具有從上述存儲(chǔ)器向上述緩沖存儲(chǔ)器傳送上述控 制流和上述數(shù)據(jù)流的傳送控制裝置。
21. 根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其特征在于, 作為半導(dǎo)體器件形成在l個(gè)半導(dǎo)體襯底上。
全文摘要
本發(fā)明提供一種流處理裝置、流處理方法和數(shù)據(jù)處理系統(tǒng)。與數(shù)據(jù)流區(qū)分而另行準(zhǔn)備控制用流,根據(jù)控制用流而先進(jìn)行程序和參數(shù)的更新。在對(duì)流處理裝置內(nèi)的程序和參數(shù)進(jìn)行存儲(chǔ)的存儲(chǔ)器中準(zhǔn)備雙緩存區(qū)域。還預(yù)先記載輸入到控制用流中的數(shù)據(jù)流的位置,用于讀出數(shù)據(jù)流的緩存器也進(jìn)行多路化,從而先讀出進(jìn)行下一處理的數(shù)據(jù)流的起始部分。根據(jù)本發(fā)明,能夠提供一種能夠使連續(xù)地處理多個(gè)數(shù)據(jù)流時(shí)的處理性能提高的流處理裝置。
文檔編號(hào)G06F5/06GK101446890SQ200810179480
公開日2009年6月3日 申請(qǐng)日期2008年11月28日 優(yōu)先權(quán)日2007年11月29日
發(fā)明者中田啟明, 木村基, 湯淺隆史, 泉原史幸, 秋江一志 申請(qǐng)人:株式會(huì)社瑞薩科技