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

轉(zhuǎn)置運(yùn)算裝置及其集成電路、以及轉(zhuǎn)置處理方法

文檔序號:6397097閱讀:237來源:國知局
專利名稱:轉(zhuǎn)置運(yùn)算裝置及其集成電路、以及轉(zhuǎn)置處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于執(zhí)行矩陣的轉(zhuǎn)置處理的轉(zhuǎn)置運(yùn)算技術(shù)。
背景技術(shù)
以往,作為高速進(jìn)行圖像處理的處理器,已知有數(shù)據(jù)并行處理處理器。該數(shù)據(jù)并行處理處理器通過對構(gòu)成數(shù)據(jù)的多個(gè)要素?cái)?shù)據(jù)同時(shí)進(jìn)行相同的處理,實(shí)現(xiàn)了處理的高速化。此時(shí),例如針對矩形的圖像數(shù)據(jù)的濾波處理或二維正交變換等,處理器為了并行進(jìn)行處理,有時(shí)需要通過轉(zhuǎn)置處理進(jìn)行的數(shù)據(jù)串的變換。作為將矩陣數(shù)據(jù)轉(zhuǎn)置的方法,只要對整個(gè)矩陣數(shù)據(jù)進(jìn)行各要素的替換動(dòng)作以將矩陣數(shù)據(jù)的列與行替換就可以。但是,在該方法中,有如果矩陣的要素的數(shù)量變多則交換命令的執(zhí)行次數(shù)變得龐大的問題。所以,為了使轉(zhuǎn)置處理高速化,已知有使用矩陣轉(zhuǎn)置裝置的方法(例如,參照專利文獻(xiàn)I)?,F(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)1:特開平10— 154140號公報(bào)發(fā)明概要發(fā)明要解決的問題但是,在與處理器分離地使用專利文獻(xiàn)I的矩陣轉(zhuǎn)置裝置的情況下,每當(dāng)進(jìn)行轉(zhuǎn)置處理時(shí)在處理器與矩陣轉(zhuǎn)置裝置之間發(fā)生矩陣數(shù)據(jù)的交換,所以矩陣數(shù)據(jù)的轉(zhuǎn)送所需要的時(shí)間成為新的時(shí)間成本。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種縮短轉(zhuǎn)置處理所需要的處理時(shí)間的轉(zhuǎn)置運(yùn)算裝置。用于解決問題的手段有關(guān)本發(fā)明的轉(zhuǎn)置運(yùn)算裝置,其特征在于,具備:寄存器組,由寄存器構(gòu)成,能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器;轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù)生成輸出重排信息、列位置信息以及輸入重排信息,上述輸出重排信息用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列,上述列位置信息表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所,上述輸入重排信息用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排;輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排;寄存器訪問部,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)向上述寄存器組寫入,從上述寄存器組讀出數(shù)據(jù),使用上述列位置信息按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各一個(gè)取出要素?cái)?shù)據(jù)的寄存器,并輸出上述要素?cái)?shù)據(jù)的集合;輸入數(shù)據(jù)重排部,將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合使用上述輸入重排信息重排;以及運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。發(fā)明效果根據(jù)上述結(jié)構(gòu),在轉(zhuǎn)置運(yùn)算裝置中,能夠縮短矩陣轉(zhuǎn)置處理所需要的處理時(shí)間。


圖1是表示實(shí)施方式I的轉(zhuǎn)置運(yùn)算裝置的結(jié)構(gòu)例的框圖。圖2是表示包括實(shí)施方式I的轉(zhuǎn)置運(yùn)算裝置的圖像處理裝置的結(jié)構(gòu)例的框圖。圖3是表示實(shí)施方式I的寄存器訪問部的結(jié)構(gòu)例的框圖。圖4是表示有關(guān)實(shí)施方式I的轉(zhuǎn)置處理的矩陣數(shù)據(jù)的保存形象的圖。圖5是表示有關(guān)實(shí)施方式I的轉(zhuǎn)置運(yùn)算裝置的運(yùn)算處理的動(dòng)作的流程圖。圖6是表示實(shí)施方式I的通過矩形訪問進(jìn)行的圖像數(shù)據(jù)的寄存器保存的圖。圖7是表示實(shí)施方式I的讀出數(shù)據(jù)的重排順序的圖。圖8是表示實(shí)施方式I的讀出數(shù)據(jù)的重排順序的圖。圖9是表示實(shí)施方式I的讀出數(shù)據(jù)的重排順序的圖。圖10是表示實(shí)施方式2的轉(zhuǎn)置運(yùn)算裝置的結(jié)構(gòu)例的框圖。圖11是表示實(shí)施方式2的轉(zhuǎn)置控制部的寄存器地址與列位置信息、循環(huán)量的關(guān)系的圖。圖12是表示有關(guān)實(shí)施方式2的轉(zhuǎn)置運(yùn)算裝置的運(yùn)算處理的動(dòng)作的流程圖。圖13是表示實(shí)施方式3的轉(zhuǎn)置運(yùn)算裝置的結(jié)構(gòu)例的框圖。圖14是表示實(shí)施方式3的轉(zhuǎn)置運(yùn)算裝置的動(dòng)作的流程圖。圖15是表不實(shí)施方式4的寄存器訪問部的結(jié)構(gòu)例的框圖。圖16是表示實(shí)施方式4的寫入數(shù)據(jù)的重排順序的圖。圖17是表示實(shí)施方式4的寫入數(shù)據(jù)的重排順序的圖。圖18是表示實(shí)施方式5的轉(zhuǎn)置運(yùn)算裝置的結(jié)構(gòu)例的框圖。圖19是表示實(shí)施方式5的讀出數(shù)據(jù)的重排順序的圖。圖20是表示實(shí)施方式5的讀出數(shù)據(jù)的重排順序的圖。圖21是表示以往的矩陣轉(zhuǎn)置裝置的結(jié)構(gòu)的框圖。
具體實(shí)施例方式(達(dá)成發(fā)明的經(jīng)過)一般而言,處理器將作為運(yùn)算處理的對象的數(shù)據(jù)暫時(shí)保存到稱作寄存器的存儲(chǔ)區(qū)域中。處理器能夠?qū)⒈4嬖贗個(gè)寄存器中的全部數(shù)據(jù)用I個(gè)命令一起讀出。因而,在并行處理處理器中,作為并行處理的對象的數(shù)據(jù)優(yōu)選的是以處理單位保存在單獨(dú)的寄存器中。這里,對矩陣數(shù)據(jù)的保存方法進(jìn)行說明。例如,表示矩形的圖像的圖像數(shù)據(jù)是以各像素的數(shù)據(jù)(顏色信息等的像素值)為要素?cái)?shù)據(jù)的矩陣數(shù)據(jù)。具體而言,將最左上的像素作為矩陣數(shù)據(jù)的要素(I,I ),在水平方向上相鄰的像素的數(shù)據(jù)在行方向上排列,并且在垂直方向上相鄰的像素的數(shù)據(jù)在列方向上排列。在將這樣的矩陣數(shù)據(jù)保存到寄存器時(shí),將矩陣數(shù)據(jù)按每一行分割,將作為I行的要素?cái)?shù)據(jù)的排列的數(shù)據(jù)串分別單獨(dú)地保存到寄存器。即,將在水平方向上相鄰的像素的數(shù)據(jù)保存到同一寄存器,將在垂直方向上相鄰的像素的數(shù)據(jù)保存到不同的寄存器。因而,例如在對在水平方向上排列的像素的濾波處理等、將矩陣數(shù)據(jù)的特定的行讀出的情況下,只要從保存有該行的數(shù)據(jù)的I個(gè)寄存器將數(shù)據(jù)串原樣讀出就可以,能夠用I個(gè)命令執(zhí)行讀出。但是,例如在對在垂直方向上排列的像素的濾波處理等、將矩陣數(shù)據(jù)以列單位讀出的情況下,需要進(jìn)行從保存有矩陣數(shù)據(jù)的多個(gè)寄存器各讀出I個(gè)要素?cái)?shù)據(jù)的處理。在該處理中,需要將對寄存器的讀出命令執(zhí)行與矩陣數(shù)據(jù)的列的數(shù)量相當(dāng)?shù)牧?。所以,作為由并行處理處理器將矩陣?shù)據(jù)以列單位高效率地處理的方法,有矩陣數(shù)據(jù)的轉(zhuǎn)置處理。這是因?yàn)?,如果這樣,則矩陣的行與列替換,即“轉(zhuǎn)置前的矩陣數(shù)據(jù)的列”被保存到I個(gè)寄存器中,能夠用I個(gè)命令讀出。作為將保存在寄存器中的矩陣數(shù)據(jù)轉(zhuǎn)置的方法,有如上述那樣在寄存器間進(jìn)行要素?cái)?shù)據(jù)的交換的方法。但是,如果矩陣數(shù)據(jù)的行數(shù)及列數(shù)變大,即,如果要素的數(shù)量變多,則交換命令的執(zhí)行次數(shù)變得龐大,有需要大量的處理時(shí)間的問題。此外,作為將矩陣轉(zhuǎn)置的方法,有使用如專利文獻(xiàn)I中公開的矩陣轉(zhuǎn)置裝置的方法。在圖21中表示專利文獻(xiàn)I所記載的矩陣轉(zhuǎn)置裝置900的結(jié)構(gòu)圖。矩陣轉(zhuǎn)置裝置900由輸入裝置921-0 921-p、存儲(chǔ)裝置922-0 922_p、地址產(chǎn)生器923-0 923_p、輸出選擇裝置924-0 924-n及控制電路925構(gòu)成。此外,圖中926表示運(yùn)算器。存儲(chǔ)裝置
922-1(I是O以上且P以下的整數(shù))例如由I輸入I輸出的RAM構(gòu)成,分別具有能夠用由地址產(chǎn)生器923-1產(chǎn)生的地址來指定的存儲(chǔ)區(qū)域。控制裝置925在將矩陣數(shù)據(jù)保存時(shí),控制輸入選擇裝置921-1和地址產(chǎn)生器
923-1,以使任意的行數(shù)據(jù)的各要素保存到相互不同的存儲(chǔ)裝置922-1。接著,控制裝置925在將矩陣數(shù)據(jù)讀出時(shí),控制輸出選擇裝置924-J (J是O以上且η以下的整數(shù))和地址產(chǎn)生器923-1,將轉(zhuǎn)置矩陣數(shù)據(jù)的任意的列數(shù)據(jù)以保持設(shè)定的順序及設(shè)定的列數(shù)據(jù)內(nèi)的要素的順序的方式輸出。但是,在從處理器利用專利文獻(xiàn)I的矩陣轉(zhuǎn)置裝置時(shí),有下述兩個(gè)問題。在處理器的外部設(shè)置矩陣轉(zhuǎn)置裝置的情況下,發(fā)生處理器不能進(jìn)行處理的待機(jī)時(shí)間。即,在進(jìn)行轉(zhuǎn)置處理時(shí),處理器在對矩陣轉(zhuǎn)置裝置輸出矩陣數(shù)據(jù)后,必須從矩陣轉(zhuǎn)置裝置讀出轉(zhuǎn)置后的矩陣數(shù)據(jù)。因而,至少在從矩陣數(shù)據(jù)中的第I列的數(shù)據(jù)的輸出完成至轉(zhuǎn)置后的矩陣數(shù)據(jù)中的第I行的數(shù)據(jù)被保存到寄存器中為止的期間中,處理器不能進(jìn)行對轉(zhuǎn)置前的矩陣的第I列的數(shù)據(jù)(轉(zhuǎn)置后的第I行的數(shù)據(jù))的處理。一方面,如果要在處理器內(nèi)實(shí)現(xiàn)矩陣轉(zhuǎn)置裝置,則發(fā)生以下問題。專利文獻(xiàn)I的矩陣轉(zhuǎn)置裝置為了將N行N列(N是2以上的整數(shù))的矩陣數(shù)據(jù)轉(zhuǎn)置而需要N個(gè)能夠單獨(dú)輸入輸出的存儲(chǔ)裝置。因而,如果是例如將8X8像素的塊轉(zhuǎn)置的圖像處理處理器,則需要8個(gè)能夠單獨(dú)輸入輸出的存儲(chǔ)裝置,成為處理器的成本升高的原因。另一方面,如果要僅使用I個(gè)存儲(chǔ)裝置、通過處理器和軟件實(shí)現(xiàn)矩陣轉(zhuǎn)置裝置,則不能高速地實(shí)現(xiàn)矩陣轉(zhuǎn)置處理。這是因?yàn)椋谳斎刖仃嚁?shù)據(jù)的列數(shù)據(jù)的輸入和轉(zhuǎn)置矩陣數(shù)據(jù)的列數(shù)據(jù)的輸出中,都不能以列數(shù)據(jù)單位進(jìn)行而需要以要素單位進(jìn)行。所以,發(fā)明者們得到了如下方法的構(gòu)想:將轉(zhuǎn)置前的矩陣數(shù)據(jù)的行數(shù)據(jù)的保存及轉(zhuǎn)置后的矩陣數(shù)據(jù)的行數(shù)據(jù)的讀出都能夠用I個(gè)命令進(jìn)行的、矩陣數(shù)據(jù)向寄存器組的保存方法、以及僅通過對該寄存器組的矩陣數(shù)據(jù)的保存和讀出動(dòng)作執(zhí)行矩陣轉(zhuǎn)置的方法。即,在將輸出作為轉(zhuǎn)置對象的矩陣數(shù)據(jù)的運(yùn)算的結(jié)果向寄存器保存時(shí),將矩陣數(shù)據(jù)的各行重排以使在轉(zhuǎn)置前的矩陣中屬于同一列的要素?cái)?shù)據(jù)在同一列中不存在兩個(gè)以上,并向寄存器組保存轉(zhuǎn)置對象的矩陣數(shù)據(jù)。并且,在將要求轉(zhuǎn)置后的矩陣數(shù)據(jù)的運(yùn)算的輸入數(shù)據(jù)從寄存器讀出時(shí),如某個(gè)寄存器的第I個(gè)、另一寄存器的第2個(gè)、再另一寄存器的第3個(gè)那樣,以數(shù)據(jù)串內(nèi)的順序不重復(fù)的方式從多個(gè)寄存器讀出各一個(gè)要素?cái)?shù)據(jù)作為轉(zhuǎn)置后的矩陣數(shù)據(jù)的各行(該讀出通過I個(gè)命令執(zhí)行)。最后,將讀出的各行以列的順序重排,執(zhí)行需要轉(zhuǎn)置后的矩陣數(shù)據(jù)的運(yùn)算。根據(jù)該結(jié)構(gòu),在將作為運(yùn)算處理I的結(jié)果的矩陣數(shù)據(jù)轉(zhuǎn)置并用于運(yùn)算處理2的情況下,只要僅將向寄存器保存運(yùn)算處理I的結(jié)果的命令和從寄存器讀出運(yùn)算處理2的對象的命令分別置換為用于轉(zhuǎn)置的保存命令和用于轉(zhuǎn)置的讀出命令就可以。即,通過對寄存器的矩陣數(shù)據(jù)的讀寫處理來完成矩陣轉(zhuǎn)置,所以不需要進(jìn)行將轉(zhuǎn)置對象的矩陣保存到寄存器之后由處理器的運(yùn)算器執(zhí)行轉(zhuǎn)置命令的處理。此外,由于讀出處理的對象是寄存器,所以處理器的運(yùn)算器能夠直接利用讀出的轉(zhuǎn)置后的矩陣數(shù)據(jù)的各行。因此,也不需要為了將轉(zhuǎn)置后的矩陣數(shù)據(jù)的各行作為運(yùn)算的對象而向寄存器保存的處理。因而,能夠縮短矩陣轉(zhuǎn)置處理所需要的處理時(shí)間。(實(shí)施方式)以下,參照附圖對本發(fā)明的實(shí)施方式進(jìn)行說明。(實(shí)施方式I)首先,對包括有關(guān)實(shí)施方式I的轉(zhuǎn)置運(yùn)算裝置200的圖像處理裝置100的結(jié)構(gòu)進(jìn)行說明。圖2是圖像處理裝置100的功能框圖。圖像處理裝置100具備圖像輸入部110、輸入處理部120、圖像存儲(chǔ)器130、系統(tǒng)控制部140、信號處理部150。轉(zhuǎn)置運(yùn)算裝置200是信號處理部150的一部分。圖像輸入部110以一定的幀速率進(jìn)行圖像的取入,將所生成的一定尺寸的圖像數(shù)據(jù)向輸入處理部120發(fā)送。輸入處理部120具有將從圖像輸入部110取入的圖像數(shù)據(jù)向圖像存儲(chǔ)器130轉(zhuǎn)送的功能,在圖像數(shù)據(jù)的轉(zhuǎn)送完成后,向系統(tǒng)控制部140通知。圖像存儲(chǔ)器130保持從輸入處理部120轉(zhuǎn)送的輸入圖像數(shù)據(jù)、以及由信號處理部150執(zhí)行的圖像處理的結(jié)果。系統(tǒng)控制部140具有進(jìn)行圖像處理裝置100整體的控制、及裝置內(nèi)的各塊的動(dòng)作設(shè)定的功能。信號處理部150是進(jìn)行從圖像存儲(chǔ)器130輸入的圖像數(shù)據(jù)的信號處理的塊,包括轉(zhuǎn)置處理的運(yùn)算由轉(zhuǎn)置運(yùn)算裝置200執(zhí)行。系統(tǒng)控制部140、信號處理部150及轉(zhuǎn)置運(yùn)算裝置200的參數(shù)設(shè)定及執(zhí)行控制經(jīng)由處理器總線進(jìn)行,包括輸入圖像及進(jìn)行圖像處理的圖像數(shù)據(jù)的交接在內(nèi)的、從其他構(gòu)成要素向圖像存儲(chǔ)器130的訪問經(jīng)由存儲(chǔ)器總線進(jìn)行。<轉(zhuǎn)置運(yùn)算裝置>
圖1是表示有關(guān)實(shí)施方式I的轉(zhuǎn)置運(yùn)算裝置200的框圖。轉(zhuǎn)置運(yùn)算裝置200由命令發(fā)行部210、命令解碼部220、運(yùn)算控制部230、運(yùn)算處理部240、轉(zhuǎn)置控制部250、輸入循環(huán)(旋轉(zhuǎn))部260、輸出循環(huán)(旋轉(zhuǎn))部270、寄存器訪問部300、寄存器組310構(gòu)成。命令發(fā)行部210從信號處理部150接受由轉(zhuǎn)置運(yùn)算裝置200執(zhí)行的數(shù)據(jù)并行處理處理器的運(yùn)算命令,向命令解碼部220發(fā)行。命令解碼部220如果接受到執(zhí)行命令,則根據(jù)命令代碼對寄存器訪問信息、運(yùn)算處理的信息進(jìn)行解讀,向運(yùn)算控制部230發(fā)送在命令執(zhí)行時(shí)需要的數(shù)據(jù)路徑的信息。此外,命令解碼部220將在運(yùn)算處理后是否需要轉(zhuǎn)置處理的信息輸出至運(yùn)算控制部230。寄存器組310是用于存儲(chǔ)作為運(yùn)算處理及轉(zhuǎn)置處理的對象的矩陣數(shù)據(jù)的裝置。寄存器組310由分別具有固有的地址的多個(gè)寄存器構(gòu)成。以下,將寄存器中寄存器地址相同的存儲(chǔ)區(qū)域的范圍表述為“I個(gè)寄存器”。矩陣數(shù)據(jù)按每一行作為單獨(dú)的數(shù)據(jù)串,按每個(gè)數(shù)據(jù)串存儲(chǔ)到分別不同的地址的寄存器。寄存器訪問部300進(jìn)行從寄存器組310的數(shù)據(jù)的讀出、和向寄存器組310的數(shù)據(jù)的寫入。在圖3中表示寄存器訪問部300的結(jié)構(gòu)。寄存器訪問部300具備按每個(gè)要素?cái)?shù)據(jù)而從構(gòu)成寄存器組310的寄存器接受數(shù)據(jù)、選擇I個(gè)并輸出的選擇器350-1 350-4。這里,所謂要素?cái)?shù)據(jù),是在矩陣數(shù)據(jù)中作為矩陣的成分的最小單位的數(shù)據(jù)。例如,在4X4像素的圖像數(shù)據(jù)為4行4列的矩陣數(shù)據(jù)的情況下,要素?cái)?shù)據(jù)是I像素的數(shù)據(jù)。寄存器訪問部300從運(yùn)算控制部230接受伴隨著地址的指定的讀出命令,并且在轉(zhuǎn)置控制部250沒有指定列位置信息的情況下,將寄存器組310中的具有被指定的地址的寄存器所存儲(chǔ)的數(shù)據(jù)串讀出,向輸入循環(huán)部260發(fā)送。此外,在寄存器訪問部300從運(yùn)算控制部230接受伴隨著地址的指定的讀出命令、并且轉(zhuǎn)置控制部250指定了地址修正值作為列位置信息的情況下,根據(jù)地址和地址修正值生成偏移地址,如以下那樣以要素?cái)?shù)據(jù)單位變更讀出的寄存器來讀出數(shù)據(jù)串,向輸入循環(huán)部260發(fā)送。以下,將使用列位置信息以要素?cái)?shù)據(jù)單位進(jìn)行的讀出動(dòng)作稱作偏移讀取(offset reading)。這里,所謂地址修正值,是用于通過以要素?cái)?shù)據(jù)單位指定讀出動(dòng)作的對象而將寄存器組310存儲(chǔ)的矩陣數(shù)據(jù)的特定的列讀出的列位置信息,并且是將讀出第I個(gè)要素?cái)?shù)據(jù)的寄存器的地址、讀出第2個(gè)要素?cái)?shù)據(jù)的寄存器的地址、以下同樣讀出的寄存器的地址用與運(yùn)算控制部230指定的讀出地址的差值表示的信息。以下表示詳細(xì)情況。在指定了地址修正值的情況下,寄存器訪問部300如以下這樣讀出數(shù)據(jù)。首先,使用加法器340-1 340-4將由運(yùn)算控制部230指定的讀出地址(讀地址)與地址修正值相加,來生成偏移地址。接著,從加法器340-1向選擇器350-1輸出將讀地址和與最初的要素?cái)?shù)據(jù)對應(yīng)的地址修正值相加而得到的偏移地址,選擇器350-1從寄存器組310中的保存有各寄存器的第I個(gè)要素的區(qū)域311-1中,選擇偏移地址所指示的寄存器并取得要素?cái)?shù)據(jù)。同樣,選擇器350-2從加法器340-2取得將讀地址和與第2個(gè)要素?cái)?shù)據(jù)對應(yīng)的地址相加而得到的偏移地址,從寄存器組310中的保存有各寄存器的第2個(gè)要素的區(qū)域311-2中,選擇偏移地址所指示的寄存器并取得要素?cái)?shù)據(jù)。同樣,將與全部的偏移地址對應(yīng)的要素?cái)?shù)據(jù)讀出。選擇器350-1從寄存器組310中的保存有各寄存器的第I個(gè)要素的區(qū)域311_1取得要素?cái)?shù)據(jù),選擇器350-2從寄存器組310中的保存有各寄存器的第2個(gè)要素的區(qū)域311-2取得要素?cái)?shù)據(jù)。因此,寄存器訪問部300從寄存器組310中,能夠同時(shí)從保存有各寄存器的第I個(gè)要素的區(qū)域311-1取得I個(gè)要素?cái)?shù)據(jù),從保存有全部寄存器的第2個(gè)要素的區(qū)域311-2取得I個(gè)要素?cái)?shù)據(jù),從保存有全部寄存器的第3個(gè)要素的區(qū)域311-3取得I個(gè)要素?cái)?shù)據(jù),從保存有全部寄存器的第4個(gè)要素的區(qū)域311-4取得I個(gè)要素?cái)?shù)據(jù)。所讀出的要素?cái)?shù)據(jù)作為以選擇器350-1的輸出、選擇器350-2的輸出、選擇器350-3的輸出、選擇器350-4的輸出的順序排列的數(shù)據(jù)串,從寄存器訪問部300輸出至輸入循環(huán)部260。另外,選擇器不能將兩個(gè)以上的要素?cái)?shù)據(jù)同時(shí)輸出,所以不能通過I次的讀出動(dòng)作得到地址#1的寄存器的第I個(gè)要素?cái)?shù)據(jù)和地址#2的寄存器的第I個(gè)要素?cái)?shù)據(jù)。寄存器訪問部300在從運(yùn)算控制部230接受到伴隨著地址的寫入命令的情況下,將從輸出循環(huán)部270接收到的數(shù)據(jù)串向寄存器組310中的具有被指定的地址的寄存器寫入。輸入循環(huán)部260具有如下功能:對由寄存器訪問部300從寄存器組310讀出的數(shù)據(jù)串,以要素?cái)?shù)據(jù)單位進(jìn)行循環(huán)移位,從而進(jìn)行重排。另外,所謂循環(huán)移位,是指進(jìn)行位移位(bit shift)以使數(shù)據(jù)串的右端與左端相連。具體而言,通過位移位而從數(shù)據(jù)串的右端溢出的要素?cái)?shù)據(jù)從左端插入到該數(shù)據(jù)串中,同樣,通過位移位從數(shù)據(jù)串的左端溢出的要素?cái)?shù)據(jù)從右端插入到該數(shù)據(jù)串中。例如,如果將{a,b,c,d,e,f}的數(shù)據(jù)串(&,13,(3,(1,63分別是I位的要素?cái)?shù)據(jù))向右循環(huán)移位I位,則成為{f,a, b,c,d,e}的數(shù)據(jù)串。如果對該數(shù)據(jù)串再向左循環(huán)移位2位,則成為{b,c,d,e,f,a}的數(shù)據(jù)串。將數(shù)據(jù)串向右或左的某一方循環(huán)移位幾位,由從轉(zhuǎn)置控制部250指定的循環(huán)量決定。以下,將右移位的移位量用正值、將左移位的移位量用負(fù)值表示。此外,在本實(shí)施方式中,將要素?cái)?shù)據(jù)的位寬作為移位量的單位。例如,在要素?cái)?shù)據(jù)的位寬是8位的情況下,所謂移位量+2,是指向右循環(huán)移位16位,所謂移位量一 5,是指向左循環(huán)移位40位。由輸入循環(huán)部260進(jìn)行重排后的數(shù)據(jù)串作為輸入數(shù)據(jù)傳遞至運(yùn)算處理部240。運(yùn)算處理部240由進(jìn)行算術(shù)運(yùn)算或邏輯運(yùn)算的ALlXArithmetic LogicUnit)241、乘法器242、桶形移位器243等構(gòu)成,都對多個(gè)要素?cái)?shù)據(jù)并行地進(jìn)行運(yùn)算處理。運(yùn)算處理部240將由輸入循環(huán)部260進(jìn)行重排后的數(shù)據(jù)串作為源數(shù)據(jù)分別經(jīng)由獨(dú)立的源總線提供至各運(yùn)算器。各運(yùn)算器的處理內(nèi)容基于從運(yùn)算控制部230指定的運(yùn)算命令決定,運(yùn)算結(jié)果經(jīng)由目的總線輸出至輸出循環(huán)部270。輸出循環(huán)部270具有如下功能:對由運(yùn)算處理部240處理后的運(yùn)算結(jié)果的數(shù)據(jù)串,以要素?cái)?shù)據(jù)單位進(jìn)行循環(huán)移位,從而進(jìn)行重排。循環(huán)量與輸入循環(huán)部260同樣由轉(zhuǎn)置控制部250決定。重排后的數(shù)據(jù)串輸出至寄存器訪問部300。關(guān)于循環(huán)移位及移位量的詳細(xì)情況,由于與輸入循環(huán)部260相同,所以省略說明。運(yùn)算控制部230具有根據(jù)依次執(zhí)行的運(yùn)算命令來生成用于執(zhí)行運(yùn)算處理的數(shù)據(jù)路徑信息的功能。數(shù)據(jù)路徑信息基于從命令解碼部220接收的信號而被生成,其內(nèi)容是所執(zhí)行的運(yùn)算命令的功能、讀出/寫入目的地的寄存器地址、有效的源總線及目的總線的選擇信息。此外,運(yùn)算控制部230在需要對運(yùn)算處理的結(jié)果實(shí)施轉(zhuǎn)置處理的情況下,在將該運(yùn)算的結(jié)果輸出之前,將轉(zhuǎn)置控制部250為了進(jìn)行轉(zhuǎn)置處理而需要的寫入目的地的寄存器地址等的設(shè)定信息輸出至轉(zhuǎn)置控制部250所包含的設(shè)定寄存器320。設(shè)定寄存器320保持設(shè)定信息。轉(zhuǎn)置控制部250在所包含的設(shè)定寄存器320中有設(shè)定信息的情況下,在該運(yùn)算和使用使該運(yùn)算的結(jié)果轉(zhuǎn)置而得到的數(shù)據(jù)的運(yùn)算中,在將矩陣數(shù)據(jù)向寄存器組310寫入、將該矩陣數(shù)據(jù)從寄存器組310讀出時(shí)進(jìn)行用于轉(zhuǎn)置處理的控制。在設(shè)定寄存器320中沒有設(shè)定信息的情況下,轉(zhuǎn)置控制部250在向寄存器組310的寫入、以及從寄存器組310的讀出中不進(jìn)行用于轉(zhuǎn)置處理的控制,如后述那樣,對于矩陣數(shù)據(jù),輸出循環(huán)部270及輸入循環(huán)部260都不進(jìn)行循環(huán)移位,寄存器訪問部300僅使用運(yùn)算控制部230指定的地址對寄存器組310訪問。關(guān)于轉(zhuǎn)置運(yùn)算裝置200進(jìn)行轉(zhuǎn)置處理時(shí)的動(dòng)作、以及轉(zhuǎn)置控制部250為了轉(zhuǎn)置處理而進(jìn)行的控制,使用圖4進(jìn)行說明。轉(zhuǎn)置運(yùn)算裝置200在對將運(yùn)算處理I的運(yùn)算結(jié)果進(jìn)行轉(zhuǎn)置處理而被轉(zhuǎn)置后的矩陣數(shù)據(jù)進(jìn)行運(yùn)算處理2的情況下,進(jìn)行以下的動(dòng)作。首先,轉(zhuǎn)置運(yùn)算裝置200在實(shí)施運(yùn)算處理I時(shí),如通常那樣進(jìn)行運(yùn)算(將運(yùn)算結(jié)果表示在圖4 (a)中)。接著,轉(zhuǎn)置運(yùn)算裝置200對運(yùn)算結(jié)果實(shí)施通過上述輸出循環(huán)部270的循環(huán)移位(圖4(b)),將進(jìn)行循環(huán)移位后的矩陣數(shù)據(jù)通過寄存器訪問部300保存到寄存器組310。轉(zhuǎn)置控制部250對輸出循環(huán)部270指示增加要素?cái)?shù)據(jù)單位的值,如對矩陣數(shù)據(jù)的第I行指示循環(huán)量O、對第2行指示循環(huán)量+1。由此,構(gòu)成矩陣數(shù)據(jù)的第I列的要素?cái)?shù)據(jù)屬于不同的要素?cái)?shù)據(jù)的順序,如在第I行中為第I個(gè)要素、在第2行中為第2個(gè)要素。接著,轉(zhuǎn)置運(yùn)算裝置200在實(shí)施運(yùn)算處理2時(shí),當(dāng)從寄存器讀出數(shù)據(jù)時(shí)實(shí)施上述偏移讀取和通過輸入循環(huán)部260的循環(huán)處理,將進(jìn)行循環(huán)處理后的數(shù)據(jù)串輸出至運(yùn)算處理部240 (圖4 (C))。轉(zhuǎn)置控制部250對寄存器訪問部300指示以I個(gè)要素為基準(zhǔn)按每個(gè)要素?cái)?shù)據(jù)單位各增加+1的值,如對第I要素的地址修正值O、對第2要素的地址修正值+1。由此,如保存有第I行的寄存器的第I個(gè)要素、保存有第2行的寄存器的第2個(gè)要素那樣,能夠?qū)?gòu)成以上述不同的要素?cái)?shù)據(jù)的順序分散的矩陣數(shù)據(jù)的第I列的要素?cái)?shù)據(jù)通過I次的讀出來取出。此外,如果例如是第2列的要素?cái)?shù)據(jù),則寄存器訪問部300如保存有第I行的第2個(gè)要素、保存有第2行的第3個(gè)要素那樣讀出。因此,讀出如原來的矩陣數(shù)據(jù)的第I行第2列的要素?cái)?shù)據(jù)為第2個(gè)、第2行第2列的要素?cái)?shù)據(jù)為第3個(gè)那樣,將原來的矩陣數(shù)據(jù)的第2列向右循環(huán)移位I要素量后的數(shù)據(jù)串。為了將該數(shù)據(jù)串作為使原來的矩陣數(shù)據(jù)的第I行第2列的要素?cái)?shù)據(jù)為第I個(gè)要素那樣的轉(zhuǎn)置矩陣數(shù)據(jù)的第2行的數(shù)據(jù),轉(zhuǎn)置處理部250對輸入循環(huán)部260指示與輸出循環(huán)部270中的對第2行的循環(huán)量+1相比絕對值相同而方向相反的循環(huán)量一 I。通過這些動(dòng)作,運(yùn)算處理部240在實(shí)施運(yùn)算命令2時(shí)作為輸入能夠接受對運(yùn)算命令I(lǐng)的結(jié)果施加轉(zhuǎn)置處理而得到的結(jié)果(圖4 (d))。轉(zhuǎn)置控制部250如上述那樣,在與轉(zhuǎn)置處理后執(zhí)行的運(yùn)算有關(guān)的從寄存器組310的數(shù)據(jù)讀入處理、以及與輸出該數(shù)據(jù)的運(yùn)算有關(guān)的向寄存器組310的數(shù)據(jù)寫入處理中,通過實(shí)施循環(huán)移位和偏移讀取,不使運(yùn)算處理部240進(jìn)行用于轉(zhuǎn)置的處理而實(shí)施轉(zhuǎn)置處理。轉(zhuǎn)置控制部250生成上述轉(zhuǎn)置處理所需要的輸出循環(huán)部270中的循環(huán)量(稱作輸出循環(huán)量)、用于偏移讀取的地址修正值、輸入循環(huán)部260中的循環(huán)量(稱作輸入循環(huán)量),并保持在所包含的設(shè)定寄存器320中。輸入循環(huán)部260、輸出循環(huán)部270、寄存器訪問部300從設(shè)定寄存器320取得循環(huán)量及地址修正值。另外,關(guān)于循環(huán)量及地址修正值的設(shè)定例及詳細(xì)的動(dòng)作在后面敘述?!磩?dòng)作〉以下,基于轉(zhuǎn)置運(yùn)算裝置200,關(guān)于8行8列的圖像數(shù)據(jù)的圖像處理,表示轉(zhuǎn)置處理的順序。圖5是表示在有關(guān)本實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置200中實(shí)施一個(gè)運(yùn)算命令時(shí)的動(dòng)作的流程圖。圖6表示存在將要素?cái)?shù)據(jù)集合8個(gè)而得到的數(shù)據(jù)串、將該數(shù)據(jù)串集合了 8列的狀態(tài)。假設(shè)圖6所示的POO - P77的8行8列的矩陣數(shù)據(jù)是運(yùn)算處理I的輸出數(shù)據(jù),是運(yùn)算處理2的輸入數(shù)據(jù)。如上述那樣,在將該矩陣數(shù)據(jù)保存到寄存器組310的情況下,第I行的POO - P07保存到I個(gè)寄存器,第2行的PlO - P17保存到另I個(gè)寄存器,第3行的P20 - P27同樣保存到與上述兩個(gè)不同的I個(gè)寄存器保存。此時(shí),在轉(zhuǎn)置運(yùn)算裝置200對由POO - P70的要素?cái)?shù)據(jù)構(gòu)成的數(shù)據(jù)串(圖6的矩陣中的第I列)進(jìn)行運(yùn)算的情況下,由于各個(gè)要素?cái)?shù)據(jù)保存在具有不同的地址的寄存器中并且要素?cái)?shù)據(jù)的順序相同,不能同時(shí)讀出,所以為了讀出而發(fā)生8次讀出處理。因此,為了在數(shù)據(jù)并行處理處理器上高效率地進(jìn)行運(yùn)算,需要轉(zhuǎn)置處理。運(yùn)算控制部230向設(shè)定寄存器320輸出設(shè)定信息并對轉(zhuǎn)置控制部250指示對運(yùn)算處理I的輸出進(jìn)行轉(zhuǎn)置處理(S105中“是”),轉(zhuǎn)置控制部250通過以下的方法進(jìn)行轉(zhuǎn)置。首先,在向寄存器組310保存圖像數(shù)據(jù)時(shí),轉(zhuǎn)置控制部250對設(shè)定寄存器320設(shè)定輸出循環(huán)量。輸出循環(huán)部270基于輸出循環(huán)量執(zhí)行循環(huán)移位。轉(zhuǎn)置控制部250指示按每個(gè)數(shù)據(jù)串各增加+1的循環(huán)量,如以POO - P07為基準(zhǔn)而指示循環(huán)量O、對PlO - P17指示循環(huán)量+1、對P20 - P27指示循環(huán)量+2,輸出循環(huán)部270按照指示進(jìn)行循環(huán)移位(S106)。接著,輸出循環(huán)部270將循環(huán)移位后的數(shù)據(jù)串輸出至寄存器訪問部300。寄存器訪問部300在運(yùn)算控制部230指定的寄存器地址N所指示的寄存器中保存POO — P07,在寄存器地址(N+1)所指示的寄存器中保存PlO - P17,在寄存器地址(N+2)所指示的寄存器中保存P20 — P27 (S107)。在圖7 (a)中表示保存了全部的數(shù)據(jù)串的狀態(tài)。將這樣進(jìn)行基于輸出循環(huán)部270的循環(huán)移位后保存在寄存器組310中的狀態(tài)稱作轉(zhuǎn)置準(zhǔn)備狀態(tài)。伴隨著運(yùn)算處理I的轉(zhuǎn)置處理隨著向寄存器組310的保存而完成。另外,關(guān)于運(yùn)算處理以前(S101 S104),由于依存于對運(yùn)算處理I作為輸入數(shù)據(jù)的矩陣數(shù)據(jù)是否需要轉(zhuǎn)置,所以這里省略說明。接著,對伴隨著運(yùn)算處理2的轉(zhuǎn)置處理進(jìn)行說明。由于運(yùn)算處理2伴隨著轉(zhuǎn)置(S101中“是”),所以當(dāng)從寄存器組310讀出輸入數(shù)據(jù)POO - P77時(shí),轉(zhuǎn)置控制部250按轉(zhuǎn)置前的矩陣數(shù)據(jù)的每一列制作地址修正值。寄存器訪問部300使用運(yùn)算控制部230所指定的寄存器地址N和地址修正值進(jìn)行偏移讀取,按轉(zhuǎn)置前的矩陣數(shù)據(jù)的每一列輸出數(shù)據(jù)串(S102)。對地址修正值的生成方法進(jìn)行說明。例如,如圖7 (b)所示,當(dāng)讀出相當(dāng)于轉(zhuǎn)置處理前的矩陣數(shù)據(jù)的第I列的數(shù)據(jù)串POO - P70時(shí),如指定為第I個(gè)要素地址修正值為O、第2個(gè)要素地址修正值為+1、第3個(gè)要素地址修正值為+2,地址修正值為{0,+1,+2,+3,+4,+5,+6,+7} ο寄存器訪問部300如以下這樣從寄存器組310讀出數(shù)據(jù)并生成數(shù)據(jù)串。關(guān)于第I個(gè)要素,由于修正值是0,所以讀出被指定的棚寄存器的第I個(gè)要素即P00。關(guān)于第2個(gè)要素,由于修正值是+1,所以讀出對地址N加上修正值+1后的# (N+1)寄存器的第2個(gè)要素即P10。同樣,還讀出第3 —第8個(gè)要素,數(shù)據(jù)串POO - P70成為讀出數(shù)據(jù)串。轉(zhuǎn)置控制部250為了將讀出的列數(shù)據(jù)改變而變更作為基準(zhǔn)的要素?cái)?shù)據(jù),同樣生成從作為基準(zhǔn)的要素?cái)?shù)據(jù)起依次增加各+1的讀訪問的地址修正值。這里,所謂作為基準(zhǔn)的要素?cái)?shù)據(jù),是指記錄在運(yùn)算控制部230所指定的地址的寄存器中(=地址修正值為O)、屬于要讀出的列的要素?cái)?shù)據(jù)。例如,在要讀出第2列的情況下,作為基準(zhǔn)的要素?cái)?shù)據(jù)是P01。另外,在作為基準(zhǔn)的要素?cái)?shù)據(jù)不是第I個(gè)要素的情況下,將對最后的要素?cái)?shù)據(jù)的地址修正值增加+1后的值作為第I個(gè)要素的修正值。例如,在圖8 (c)中表示將第2個(gè)要素?cái)?shù)據(jù)的地址修正值設(shè)為O的例子。此時(shí)的地址修正值為{+7,0,+1,+2,+3,+4,+5,+6}。如上述那樣,關(guān)于第I個(gè)要素,讀出對地址N加上+7的修正值后的# (N+7)寄存器的第I個(gè)要素P71。同樣,讀出第2—第8個(gè)要素,由此進(jìn)行POl — P71的數(shù)據(jù)串的讀出。同樣,例如,如圖8 Cd)所示,為了進(jìn)行P07 - P77的數(shù)據(jù)串的讀出,只要將第8個(gè)要素?cái)?shù)據(jù)的地址修正值設(shè)為O、將地址修正值設(shè)為{+1,+2,+3,+4,+5,+6,+7,0}就可以。通過這樣將作為基準(zhǔn)的要素?cái)?shù)據(jù)位置從第I個(gè)起I個(gè)I個(gè)地變更而反復(fù)偏移讀取,寄存器上的矩陣數(shù)據(jù)按轉(zhuǎn)置前的矩陣數(shù)據(jù)的每一列成為I個(gè)數(shù)據(jù)串而被取出。最后,轉(zhuǎn)置控制部250對輸入循環(huán)部260指定與為了使轉(zhuǎn)置前的矩陣數(shù)據(jù)成為轉(zhuǎn)置準(zhǔn)備狀態(tài)而使用的循環(huán)量相比絕對值相同而方向相反的循環(huán)量。如圖9 (e)所示,通過由輸入循環(huán)部260實(shí)施循環(huán)移位,向運(yùn)算處理部240的輸入數(shù)據(jù)成為與將原來的8行8列的圖像數(shù)據(jù)轉(zhuǎn)置的矩陣數(shù)據(jù)等價(jià)(S103)。通過以上的處理,運(yùn)算處理部240不執(zhí)行用于轉(zhuǎn)置處理的運(yùn)算命令,而接受將保存在寄存器組310中的矩陣數(shù)據(jù)轉(zhuǎn)置后的矩陣數(shù)據(jù)作為用于運(yùn)算的輸入(S104)。伴隨著運(yùn)算處理2的轉(zhuǎn)置處理隨著向運(yùn)算處理部240的轉(zhuǎn)置矩陣數(shù)據(jù)的輸出而完成。另外,關(guān)于運(yùn)算處理以后(S105 S107),依存于對輸出數(shù)據(jù)是否需要轉(zhuǎn)置,與伴隨著上述運(yùn)算處理I的轉(zhuǎn)置處理是同樣的,所以省略。接著,對不將運(yùn)算處理I的結(jié)果轉(zhuǎn)置而作為運(yùn)算處理2的輸入使用的情況進(jìn)行說明。在運(yùn)算處理I中,轉(zhuǎn)置控制部250不對輸出循環(huán)部270指示循環(huán)量,輸出循環(huán)部270不將從運(yùn)算處理部240接受到的數(shù)據(jù)串循環(huán)移位,而原樣輸出至寄存器訪問部300(S105中“否”)。寄存器訪問部300如圖6所示,如對運(yùn)算控制部230指定的寄存器地址N保存POO - P07、對寄存器地址(N+1)保存PlO - P17那樣,向寄存器組310保存矩陣數(shù)據(jù)(S107)。在運(yùn)算處理2中,轉(zhuǎn)置控制部250不指示地址修正值、循環(huán)量,寄存器訪問部300從運(yùn)算控制部230指定的寄存器地址N讀出POO - P07的數(shù)據(jù)串,從寄存器地址(N+1)讀出PlO — P17的數(shù)據(jù)串。輸入循環(huán)部260不將從寄存器訪問部300輸入的數(shù)據(jù)串循環(huán)移位,而原樣輸出至運(yùn)算處理部240 (S101中“否”)。另外,轉(zhuǎn)置運(yùn)算裝置200在將轉(zhuǎn)置處理后的運(yùn)算的結(jié)果以轉(zhuǎn)置的狀態(tài)的原狀處理的情況下,只要原樣作為接下來的運(yùn)算處理的輸入使用就可以,在回到原來的配置的情況下只要在接下來的運(yùn)算前再次進(jìn)行轉(zhuǎn)置處理就可以。根據(jù)這樣的結(jié)構(gòu),僅通過在轉(zhuǎn)置運(yùn)算裝置200中對轉(zhuǎn)置控制部250指示轉(zhuǎn)置處理,在進(jìn)行在輸出需要轉(zhuǎn)置的數(shù)據(jù)的運(yùn)算中從運(yùn)算處理部240向寄存器組310寫入輸出數(shù)據(jù)為止的處理、和在以需要轉(zhuǎn)置的數(shù)據(jù)為輸入的運(yùn)算中從寄存器組310讀出數(shù)據(jù)并將輸入數(shù)據(jù)提供給運(yùn)算處理部240為止的處理時(shí),能夠?qū)⑥D(zhuǎn)置處理分割執(zhí)行。特別是,如果向寄存器組310的寫入完成,則能夠通過偏移讀取和循環(huán)移位將轉(zhuǎn)置矩陣按每一行輸出至運(yùn)算處理部240,所以例如能夠一邊將整個(gè)轉(zhuǎn)置矩陣輸出一邊并行地執(zhí)行運(yùn)算處理,能夠使伴隨著轉(zhuǎn)置處理的圖像處理高速化。(實(shí)施方式2)圖10是表示實(shí)施方式2的轉(zhuǎn)置運(yùn)算裝置400的框圖。在圖10中,對于與圖1相同的構(gòu)成要素使用相同的附圖標(biāo)記,省略說明。寄存器組中包括轉(zhuǎn)置寄存器組510,該轉(zhuǎn)置寄存器組510是用于保持有關(guān)轉(zhuǎn)置處理的數(shù)據(jù)串的專用寄存器的集合。在本實(shí)施方式中,寄存器號碼O — 7是轉(zhuǎn)置寄存器組。以下,將屬于轉(zhuǎn)置寄存器組510且具有固有的地址的寄存器稱作轉(zhuǎn)置寄存器。轉(zhuǎn)置運(yùn)算裝置400由命令發(fā)行部410、命令解碼部420、運(yùn)算控制部430、運(yùn)算處理部240、轉(zhuǎn)置控制部450、寄存器訪問部500、轉(zhuǎn)置寄存器組510構(gòu)成。轉(zhuǎn)置控制部450在內(nèi)部不具有設(shè)定列位置信息或循環(huán)量的寄存器,從命令解碼部420接受控制用參數(shù)。寄存器訪問部500進(jìn)行從包括轉(zhuǎn)置寄存器組510的寄存器組的數(shù)據(jù)的讀出、以及向寄存器組的數(shù)據(jù)的寫入。詳細(xì)情況后述。命令發(fā)行部410將由轉(zhuǎn)置運(yùn)算裝置400執(zhí)行的數(shù)據(jù)并行處理處理器的運(yùn)算命令向命令解碼部420發(fā)出。命令解碼部420對命令代碼進(jìn)行解讀,得到用于從寄存器讀出數(shù)據(jù)的地址、用于向寄存器寫入數(shù)據(jù)的地址。如果用于寫入的寄存器的地址是轉(zhuǎn)置寄存器,則將該寄存器的地址、以及保存矩陣數(shù)據(jù)的寄存器的地址范圍等為了轉(zhuǎn)置處理而需要的信息輸出至轉(zhuǎn)置控制部450。另外,在用于從寄存器讀出數(shù)據(jù)的地址、用于向寄存器寫入數(shù)據(jù)的地址是不屬于轉(zhuǎn)置寄存器組510的地址(O - 7以外)的情況下,在向該寄存器的寫入及讀出時(shí)不進(jìn)行轉(zhuǎn)置處理,而將寫入的矩陣數(shù)據(jù)原樣讀出。運(yùn)算控制部430具有根據(jù)依次執(zhí)行的運(yùn)算命令生成用于執(zhí)行運(yùn)算處理的數(shù)據(jù)路徑信息的功能。數(shù)據(jù)路徑信息基于從命令解碼部420接收的信號而被生成,其內(nèi)容是執(zhí)行的運(yùn)算命令的功能、讀出/寫入目的地的寄存器地址、有效的源總線及目的總線的選擇信
肩、O轉(zhuǎn)置控制部450基于從命令解碼部420接收到的該寄存器的地址,決定用于轉(zhuǎn)置處理的數(shù)據(jù)的重排所需要的信息、即輸出循環(huán)部270中的循環(huán)量、在從轉(zhuǎn)置寄存器的數(shù)據(jù)的讀出中使用的列位置信息、輸入循環(huán)部260中的循環(huán)量。例如,在發(fā)生向寄存器號碼I的讀取的情況下,命令解碼部420唯一地設(shè)定作為列位置信息的讀地址,如從上位的要素起依次為地址{7,0,I,2,3,4,5,6}、輸入循環(huán)量為一 1、輸出循環(huán)量為+1。信息的決定方法既可以預(yù)先保持與寄存器地址對應(yīng)的列位置信息及循環(huán)量,也可以在每當(dāng)發(fā)生向轉(zhuǎn)置寄存器的寫入時(shí)生成。在將運(yùn)算處理I的結(jié)果轉(zhuǎn)置而用于運(yùn)算處理2的輸入的情況下,如果在運(yùn)算處理I中作為輸出寄存器而指定轉(zhuǎn)置寄存器、在運(yùn)算處理2中作為輸入寄存器而指定該寄存器,則轉(zhuǎn)置運(yùn)算裝置400如以下這樣動(dòng)作。即,轉(zhuǎn)置運(yùn)算裝置400對運(yùn)算處理I的結(jié)果執(zhí)行通過輸出循環(huán)部270的循環(huán)移位,由寄存器訪問部500寫入至轉(zhuǎn)置寄存器組510。接著,在進(jìn)行運(yùn)算處理2時(shí),轉(zhuǎn)置運(yùn)算裝置400中由寄存器訪問部500按照列位置信息對轉(zhuǎn)置寄存器組510進(jìn)行偏移讀取,由輸入循環(huán)部260對偏移讀取的結(jié)果進(jìn)行循環(huán)移位,并輸出至運(yùn)算處理部240。通過這樣,能夠?qū)⑥D(zhuǎn)置后的數(shù)據(jù)串作為運(yùn)算處理2的輸入。另外,轉(zhuǎn)置所需要的參數(shù),即輸出循環(huán)量、列位置信息、輸入循環(huán)量并不一定根據(jù)轉(zhuǎn)置寄存器的地址而被唯一地決定,在轉(zhuǎn)置寄存器的地址相同、但進(jìn)行數(shù)據(jù)要素的位寬或進(jìn)行轉(zhuǎn)置的數(shù)據(jù)串的數(shù)量不同的情況下,上述參數(shù)也可以不相同。在圖11中表示向寄存器號碼I 一 8保存要素?cái)?shù)據(jù)量I字節(jié)(byte)的8行8列的數(shù)據(jù)的情況下的列位置信息地址值、輸入循環(huán)量、輸出循環(huán)量的設(shè)定例?!磩?dòng)作〉圖12是表示實(shí)施有關(guān)本實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置400的一個(gè)運(yùn)算命令時(shí)的動(dòng)作的流程圖。對有關(guān)運(yùn)算處理I的轉(zhuǎn)置處理進(jìn)行說明。另外,關(guān)于從S201到S204,依存于運(yùn)算處理I的輸入數(shù)據(jù)是否需要轉(zhuǎn)置,與有關(guān)運(yùn)算處理2的S201到S204是同樣的,所以這里省略說明。在運(yùn)算命令的輸出寄存器屬于轉(zhuǎn)置寄存器組510的情況下(S205中“是”),轉(zhuǎn)置控制部450從命令解碼部420接受寄存器地址,生成輸出循環(huán)量、列位置信息地址值、輸入循環(huán)量。輸出循環(huán)部270按照從轉(zhuǎn)置控制部450接受到的輸出循環(huán)量,將運(yùn)算處理部240的輸出矩陣數(shù)據(jù)按每個(gè)數(shù)據(jù)串循環(huán)移位(S206),并輸出至寄存器訪問部500。寄存器訪問部500對由運(yùn)算控制部430指定為寫入目的地的地址的寄存器寫入從輸出循環(huán)部270接受到的數(shù)據(jù)串(S207)。接著,對有關(guān)運(yùn)算處理2的轉(zhuǎn)置處理進(jìn)行說明。由于運(yùn)算處理部240指定為讀出目的地的地址屬于轉(zhuǎn)置寄存器組510 (S201中“是”),所以寄存器訪問部500從轉(zhuǎn)置控制部450接受列位置信息地址值,通過偏移讀取按原來的矩陣的每一列數(shù)據(jù)讀出,并輸出至輸入循環(huán)部260 (S202)。與上述S102不同的是,代替使用偏移寄存器確定各個(gè)要素?cái)?shù)據(jù)的寄存器,而將上述列位置信息地址值原樣使用確定各個(gè)要素?cái)?shù)據(jù)的寄存器。輸入循環(huán)部260使用轉(zhuǎn)置控制部450生成的輸入循環(huán)量對從寄存器訪問部500輸入的原來的矩陣的列數(shù)據(jù)進(jìn)行循環(huán)移位,并輸出至運(yùn)算處理部240 (S203)。另一方面,在運(yùn)算命令I(lǐng)的輸出目的地的寄存器不屬于轉(zhuǎn)置寄存器組510的情況下(S205中“否”),輸出循環(huán)部270將運(yùn)算處理部240的輸出原樣輸出至寄存器訪問部500,將數(shù)據(jù)以如圖6所示的形式保存到寄存器組。此外,在運(yùn)算命令2的輸入源的寄存器不屬于轉(zhuǎn)置寄存器組510的情況下(S201中“否”),寄存器訪問部500不使用列位置信息,從由運(yùn)算控制部430指定的地址將數(shù)據(jù)串原樣讀出。此外,輸入循環(huán)部260將寄存器訪問部500讀出的數(shù)據(jù)串原樣輸出至運(yùn)算處理部 240。在本實(shí)施方式中,通過在運(yùn)算命令I(lǐng)中將轉(zhuǎn)置寄存器設(shè)為輸出目的地、將運(yùn)算命令2的輸入寄存器設(shè)為該轉(zhuǎn)置寄存器,能夠?qū)\(yùn)算命令I(lǐng)的運(yùn)算結(jié)果實(shí)施轉(zhuǎn)置處理而作為運(yùn)算命令2的輸入數(shù)據(jù)。此外,如果將運(yùn)算命令I(lǐng)的輸出寄存器設(shè)為轉(zhuǎn)置寄存器以外的寄存器、將運(yùn)算命令2的輸入寄存器設(shè)為該寄存器,則運(yùn)算命令2能夠?qū)⑦\(yùn)算命令I(lǐng)的運(yùn)算結(jié)果原樣接受作為輸入數(shù)據(jù)。根據(jù)該結(jié)構(gòu),通過將寄存器的一部分設(shè)為轉(zhuǎn)置處理專用的寄存器,能夠通過運(yùn)算命令的輸入輸出寄存器的地址指定來設(shè)定轉(zhuǎn)置處理的實(shí)施的有無,不需要用于進(jìn)行轉(zhuǎn)置控制部的轉(zhuǎn)置控制的寄存器的設(shè)定。此外,由于作為轉(zhuǎn)置處理的對象的數(shù)據(jù)與不為轉(zhuǎn)置處理的對象的數(shù)據(jù)不會(huì)寫入到相同的地址的寄存器中,所以能夠防止將作為轉(zhuǎn)置處理的對象的數(shù)據(jù)與不為轉(zhuǎn)置處理的對象的數(shù)據(jù)弄錯(cuò)而將數(shù)據(jù)串的排列破壞的事故。(實(shí)施方式3)圖13表示有關(guān)實(shí)施方式3的轉(zhuǎn)置運(yùn)算裝置600。在圖13中,對于與圖1相同的構(gòu)成要素使用相同的附圖標(biāo)記而省略說明。轉(zhuǎn)置運(yùn)算裝置600由命令發(fā)行部610、命令解碼部620、運(yùn)算控制部630、運(yùn)算處理部640、轉(zhuǎn)置控制部650、寄存器訪問部300、寄存器組310構(gòu)成。命令發(fā)行部610發(fā)行伴隨著轉(zhuǎn)置的運(yùn)算命令及不伴隨著轉(zhuǎn)置的運(yùn)算命令。在伴隨著轉(zhuǎn)置的運(yùn)算命令中,除了通常的運(yùn)算命令以外,還包括用于轉(zhuǎn)置的參數(shù),即列位置信息、輸入循環(huán)量、輸出循環(huán)量或?yàn)榱藳Q定它們而需要的信息。例如,如果通常的運(yùn)算命令是sub、R3、R16、R19或mul、R5、R2、R24,則發(fā)行對它們附加了轉(zhuǎn)置的參數(shù)的sub_offset0_rd0_wr3、R3、R16、R19 或 mul_offset2_rd2_wr0、R2、R0、R24 這樣的命令。這里,offset2 表示使用預(yù)先制作為列位置信息的地址修正值中的模式2,rd2表示輸入循環(huán)量是2,wr3表示輸出循環(huán)量是3。如后述那樣,針對將運(yùn)算結(jié)果以轉(zhuǎn)置準(zhǔn)備狀態(tài)輸出至寄存器的命令,設(shè)定wr的值,針對從以轉(zhuǎn)置準(zhǔn)備狀態(tài)記錄的寄存器中讀出數(shù)據(jù)、并在運(yùn)算前進(jìn)行轉(zhuǎn)置的命令,適當(dāng)設(shè)定offset和rd的值,由此能夠進(jìn)行轉(zhuǎn)置處理。命令解碼部620在命令代碼的解讀時(shí)判斷是否伴隨著轉(zhuǎn)置處理。在伴隨著轉(zhuǎn)置處理的情況下,將附加在命令中的用于轉(zhuǎn)置的信息輸出至轉(zhuǎn)置控制部650。轉(zhuǎn)置控制部650基于由命令解碼部620輸出的用于轉(zhuǎn)置的信息,生成列位置信息及輸入循環(huán)量、輸出循環(huán)量。作為決定列位置信息及輸入循環(huán)量、輸出循環(huán)量的方法,既可以如上述例子那樣原樣使用對命令直接附加的列位置信息的模式、輸入循環(huán)量、輸出循環(huán)量,也可以預(yù)先制作多個(gè)列位置信息、輸入循環(huán)量、輸出循環(huán)量的組合,通過命令代碼來指定使用哪個(gè)組合。或者,也可以關(guān)于列位置信息與輸入循環(huán)量、輸出循環(huán)量的組合,用命令代碼指定使用已制作的組合中的I個(gè)還是新制作組合,在指定了新的組合的情況下每次生成列位置信息與輸入循環(huán)量、輸出循環(huán)量的組合。此外,轉(zhuǎn)置控制部650在向寄存器組310寫入矩陣數(shù)據(jù)時(shí),向運(yùn)算處理部640輸出輸出循環(huán)量,在從寄存器組310讀出矩陣數(shù)據(jù)時(shí),向寄存器訪問部300輸出列位置信息,向運(yùn)算處理部640輸出輸入循環(huán)量。運(yùn)算控制部630在運(yùn)算前對于伴隨著轉(zhuǎn)置處理的運(yùn)算命令,生成使用具備輸入循環(huán)部260的運(yùn)算器的數(shù)據(jù)路徑信息。此外,對于對該運(yùn)算命令的結(jié)果伴隨著轉(zhuǎn)置處理的運(yùn)算命令,生成使用具備輸出循環(huán)部270的運(yùn)算器的數(shù)據(jù)路徑信息。運(yùn)算處理部640具備具有輸入數(shù)據(jù)的重排功能的運(yùn)算器和將輸入數(shù)據(jù)原樣處理的運(yùn)算器,通過從轉(zhuǎn)置控制部650和運(yùn)算控制部630接受伴隨著各種轉(zhuǎn)置處理及運(yùn)算處理的參數(shù),執(zhí)行不伴隨著轉(zhuǎn)置處理的運(yùn)算和伴隨著轉(zhuǎn)置處理的運(yùn)算。〈動(dòng)作〉圖14是表示有關(guān)本實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置600的有關(guān)I個(gè)運(yùn)算命令的動(dòng)作的流程圖。說明對運(yùn)算命令I(lǐng)的運(yùn)算結(jié)果進(jìn)行轉(zhuǎn)置處理而作為運(yùn)算命令2的輸入的情況。對有關(guān)運(yùn)算命令I(lǐng)的轉(zhuǎn)置處理進(jìn)行說明。轉(zhuǎn)置運(yùn)算裝置600使用運(yùn)算處理部640中的具有輸入循環(huán)部260和輸出循環(huán)部270的運(yùn)算器進(jìn)行運(yùn)算。在實(shí)施運(yùn)算處理后(S304),使用由該運(yùn)算命令生成的輸出循環(huán)量通過輸出循環(huán)部270執(zhí)行數(shù)據(jù)串的重排(S305)。寄存器訪問部300將運(yùn)算處理部640的輸出向運(yùn)算控制部630指定的地址的寄存器寫入(S308)。接著,對有關(guān)運(yùn)算命令2的轉(zhuǎn)置處理進(jìn)行說明。在運(yùn)算命令伴隨著轉(zhuǎn)置的情況下(S301中“是”),寄存器訪問部300接受運(yùn)算控制部630指定的讀入目的地地址,從轉(zhuǎn)置控制部650接受讀地址修正值,執(zhí)行偏移讀取而將數(shù)據(jù)串讀出(S302)。詳細(xì)的動(dòng)作與S104是同樣的,所以省略。接著,轉(zhuǎn)置運(yùn)算裝置600使用運(yùn)算處理部640中的具有輸入循環(huán)部260和輸出循環(huán)部270的運(yùn)算器執(zhí)行運(yùn)算命令。首先,輸入循環(huán)部260使用從轉(zhuǎn)置控制部650接受的輸入循環(huán)量進(jìn)行數(shù)據(jù)串的重排,生成轉(zhuǎn)置矩陣數(shù)據(jù)(S303)。由此,運(yùn)算器能夠以對運(yùn)算命令I(lǐng)的結(jié)果實(shí)施轉(zhuǎn)置后的數(shù)據(jù)為輸入來執(zhí)行運(yùn)算命令2。在運(yùn)算中不伴隨轉(zhuǎn)置的情況下(S301中“否”),為以下的處理。在運(yùn)算命令I(lǐng)中,使用運(yùn)算處理部640中的不具有輸入循環(huán)部260及輸出循環(huán)部270的運(yùn)算器進(jìn)行運(yùn)算(S307)。接著,寄存器訪問部300將運(yùn)算處理部640的輸出向運(yùn)算控制部630指定的地址的寄存器寫入(S308)。在運(yùn)算命令2中,寄存器訪問部300使用由運(yùn)算控制部630指定的讀入目的地地址來讀出數(shù)據(jù)串(S306)。接著,轉(zhuǎn)置運(yùn)算裝置600使用運(yùn)算處理部640中的不具有輸入循環(huán)部260和輸出循環(huán)部270的運(yùn)算器進(jìn)行運(yùn)算(S307)。根據(jù)該結(jié)構(gòu),通過對運(yùn)算命令I(lǐng)附加輸出循環(huán)命令、對運(yùn)算命令2附加偏移讀取和輸入循環(huán)命令,實(shí)施運(yùn)算命令2的運(yùn)算器能夠接受對運(yùn)算命令I(lǐng)的運(yùn)算結(jié)果實(shí)施轉(zhuǎn)置處理后的數(shù)據(jù)作為輸入數(shù)據(jù)。此時(shí),例如只要對運(yùn)算命令附加關(guān)于轉(zhuǎn)置的信息以使運(yùn)算命令I(lǐng)中的輸出循環(huán)量相對于矩陣數(shù)據(jù)的第I行為{+1,+2,…,+7,0}、運(yùn)算命令2中的地址修正值相對于第I行為{+7,0,+1,+2,…,+6}、輸入循環(huán)量相對于矩陣數(shù)據(jù)的第I行為{-1,-2,…,_7,0}即可。此外,如果對運(yùn)算命令I(lǐng)沒有附加輸出循環(huán)命令、且對運(yùn)算命令2也沒有附加偏移讀取命令 和輸入循環(huán)命令,則運(yùn)算命令2能夠原樣接受運(yùn)算命令I(lǐng)的結(jié)果作為輸入數(shù)據(jù)。根據(jù)該結(jié)構(gòu),關(guān)于用于轉(zhuǎn)置處理的列位置信息、輸出循環(huán)量、輸入循環(huán)量,能夠由制作運(yùn)算命令的人任意地設(shè)定,對保存作為轉(zhuǎn)置對象的矩陣數(shù)據(jù)的寄存器的地址沒有制約。(實(shí)施方式4)在實(shí)施方式I中,說明了對于進(jìn)行轉(zhuǎn)置處理后的運(yùn)算結(jié)果,在原樣(以轉(zhuǎn)置狀態(tài))作為接下來的運(yùn)算的輸入的情況下不進(jìn)行有關(guān)轉(zhuǎn)置的處理而輸出至接下來的運(yùn)算,在恢復(fù)到原來的配置的情況下在接下來的運(yùn)算之前再次進(jìn)行轉(zhuǎn)置的情況。在本實(shí)施方式中,說明對于進(jìn)行轉(zhuǎn)置處理后的運(yùn)算結(jié)果,通過與再次轉(zhuǎn)置不同的方法恢復(fù)到原來的配置的情況。有關(guān)本實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置除了代替寄存器訪問部300而具備寄存器訪問部700以外,是與實(shí)施方式I同樣的結(jié)構(gòu)。寄存器訪問部700除了寄存器訪問部300的功能以外,還具有下述的功能。寄存器訪問部700在從運(yùn)算控制部230接受伴隨著地址的指定的寫入命令、并且轉(zhuǎn)置控制部250指定了地址修正值的情況下,與偏移讀取同樣,將從輸出循環(huán)部270接收到的數(shù)據(jù)串以要素?cái)?shù)據(jù)單位分割,以要素?cái)?shù)據(jù)單位變更寫入的寄存器,并以要素?cái)?shù)據(jù)單位向寄存器寫入。將這樣的伴隨著地址修正值的寫入動(dòng)作稱作偏移寫入。對于寄存器訪問部700以要素?cái)?shù)據(jù)單位變更寫入的寄存器的方法,使用圖15進(jìn)行說明。寄存器訪問部700將用于寫入的數(shù)據(jù)串以要素?cái)?shù)據(jù)單位分割。接著,寄存器訪問部700選擇寄存器組310中的寫入對象的寄存器,從該寄存器的輸入機(jī)構(gòu)寫入要素?cái)?shù)據(jù)。寄存器訪問部700首先使用加法器740-1 740_4對由運(yùn)算控制部230指定的寫入地址(寫地址)加上地址修正值,按每個(gè)要素?cái)?shù)據(jù)生成偏移地址。接著,從加法器740-1輸出對寫地址加上與最初的要素?cái)?shù)據(jù)對應(yīng)的地址修正值而得到的偏移地址,寄存器訪問部700從寄存器組310中的保存各寄存器的第I個(gè)要素的區(qū)域311-1中,選擇保存由偏移地址表示的寄存器的第I個(gè)要素的區(qū)域,并寫入用于寫入的數(shù)據(jù)串的第I個(gè)要素。此外,使用從加法器740-2輸出的偏移地址,從寄存器組310中的保存各寄存器的第2個(gè)要素的區(qū)域311-2中選擇將用于寫入的數(shù)據(jù)串的第2個(gè)要素寫入的區(qū)域并寫入。同樣,將數(shù)據(jù)串的第3個(gè)要素使用由加法器740-3生成的偏移地址寫入至寄存器組310,將數(shù)據(jù)串的第4個(gè)要素使用由加法器740-4生成的偏移地址寫入至寄存器組310。這樣,寄存器訪問部700將用于寫入的數(shù)據(jù)串的全部的要素?cái)?shù)據(jù)寫入至寄存器組310?!磩?dòng)作〉關(guān)于在運(yùn)算處理2中進(jìn)行運(yùn)算為止的處理,與實(shí)施方式I是相同的,所以省略說明,關(guān)于以后的將運(yùn)算處理部240的運(yùn)算結(jié)果向寄存器310保存的處理使用附圖進(jìn)行說明。在圖像處理完成后再次變換為原來的數(shù)據(jù)配置的情況下,進(jìn)行以下的轉(zhuǎn)置處理。關(guān)于運(yùn)算器輸出的運(yùn)算結(jié)果,由輸出循環(huán)部270變更數(shù)據(jù)串的排列。這里,在將轉(zhuǎn)置后的要素?cái)?shù)據(jù)位置向O到7保存的情況下,循環(huán)移位的量由要素?cái)?shù)據(jù)位置相對于要素?cái)?shù)據(jù)位置O的差分決定。圖16 (a)表示由循環(huán)移位后的運(yùn)算結(jié)果構(gòu)成的寫入數(shù)據(jù)串的集合。轉(zhuǎn)置控制部250生成用于向寄存器組310進(jìn)行寫入的地址修正值。寄存器訪問部700使用運(yùn)算控制部230指定的寫入地址和轉(zhuǎn)置控制部250生成的地址修正值,按每個(gè)要素?cái)?shù)據(jù)變更寫入的寄存器的地址,將作為運(yùn)算結(jié)果的矩陣數(shù)據(jù)的列數(shù)據(jù)寫入至寄存器組310。例如,在圖16 (b)及圖17 (C)中表示以要素?cái)?shù)據(jù)位置3、要素?cái)?shù)據(jù)位置5的順序完成了數(shù)據(jù)串的運(yùn)算處理的情況下的向寄存器組的寫入。關(guān)于要素?cái)?shù)據(jù)位置3的數(shù)據(jù)串P03-73,如圖17 (c)所示,將第4個(gè)要素地址修正值設(shè)為O,指定為第5個(gè)要素地址修正值為+1,第6個(gè)要素地址修正值設(shè)為+2,并向寄存器寫入。同樣,關(guān)于要素?cái)?shù)據(jù)位置5的數(shù)據(jù)串P05-75,如圖16 (b)所示,將第6個(gè)要素地址修正值設(shè)為O、指定為第7個(gè)要素地址修正值為+1、第8個(gè)要素地址修正值為+2。為了改變寫入的列數(shù)據(jù),與實(shí)施方式I 3的偏移讀取同樣,變更作為基準(zhǔn)的要素?cái)?shù)據(jù)位置,同樣生成按每個(gè)要素?cái)?shù)據(jù)各增加+1的寫訪問的地址修正值。另外,在作為基準(zhǔn)的要素?cái)?shù)據(jù)(地址修正值為O的要素?cái)?shù)據(jù))不是第I個(gè)要素的情況下,將對最后的要素?cái)?shù)據(jù)的地址修正值增加+1后的值作為第I個(gè)要素的修正值。如圖17 (d)所示,在全部的要素?cái)?shù)據(jù)被寫入的時(shí)點(diǎn),在寄存器組310中以轉(zhuǎn)置準(zhǔn)備狀態(tài)保存著矩陣數(shù)據(jù)。在全部的要素?cái)?shù)據(jù)的寫入完成后,通過進(jìn)行循環(huán)移位,能夠回到圖6所示的圖像格式。這里,在進(jìn)行以要保存在寄存器組310中的矩陣數(shù)據(jù)為輸入數(shù)據(jù)的運(yùn)算處理的情況下,也可以如以下這樣執(zhí)行處理。在對寄存器組310進(jìn)行寫入后,不進(jìn)行循環(huán)移位,當(dāng)為了執(zhí)行該運(yùn)算而從寄存器組310讀出數(shù)據(jù)時(shí),用輸入循環(huán)部260進(jìn)行循環(huán)移位。由此,運(yùn)算處理部240能夠接受原來的數(shù)據(jù)配置的數(shù)據(jù)串。因此,在從寄存器組310讀出數(shù)據(jù)前不需要另外進(jìn)行循環(huán)移位。根據(jù)該結(jié)構(gòu),例如在使用轉(zhuǎn)置處理后的矩陣數(shù)據(jù)進(jìn)行運(yùn)算處理、將矩陣數(shù)據(jù)的一部分更新后使矩陣數(shù)據(jù)回到轉(zhuǎn)置前的配置的情況下,只要僅將通過運(yùn)算處理更新的矩陣數(shù)據(jù)的列數(shù)據(jù)(轉(zhuǎn)置狀態(tài)下的行數(shù)據(jù))保存到寄存器組310中就可以,不需要將作為運(yùn)算處理的結(jié)果的矩陣數(shù)據(jù)全部寫入到寄存器組310中并轉(zhuǎn)置,所以能夠縮短伴隨著轉(zhuǎn)置處理的圖像處理的處理時(shí)間。(實(shí)施方式5)在實(shí)施方式I至4中,說明了輸出循環(huán)量從第I列起依次為{0,+1,+2,+3,+4,+5,+6,+7}、地址修正值為圖7 (b)、圖8 (C)、圖8 (d)所示的值、輸入循環(huán)量從第I列起依次是{O,-1,-2,-3,-4,-5,-6,-7}的情況。在本實(shí)施方式中,說明關(guān)于向寄存器組310的寫入前的重排、以及從寄存器組310讀出后的重排進(jìn)行循環(huán)移位以外的重排的情況。圖18表示有關(guān)實(shí)施方式5的轉(zhuǎn)置運(yùn)算裝置800。在圖18中,對于與圖1相同的構(gòu)成要素使用相同的附圖標(biāo)記而省略說明。轉(zhuǎn)置運(yùn)算裝置800由命令發(fā)行部210、命令解碼部220、運(yùn)算控制部230、運(yùn)算處理部240、轉(zhuǎn)置控制部850、寄存器訪問部300、寄存器組310、輸入數(shù)據(jù)重排部860、輸出數(shù)據(jù)重排部870構(gòu)成。輸入數(shù)據(jù)重排部860具有將寄存器訪問部300從寄存器組310讀出的數(shù)據(jù)串以要素?cái)?shù)據(jù)單位進(jìn)行重排的功能。將數(shù)據(jù)串怎樣重排根據(jù)從轉(zhuǎn)置控制部850指定的輸入重排信息決定。由輸入數(shù)據(jù)重排部860進(jìn)行重排后的數(shù)據(jù)串作為輸入數(shù)據(jù)傳遞至運(yùn)算處理部240。輸出數(shù)據(jù)重排部870具有對由運(yùn)算處理部240處理后的運(yùn)算結(jié)果的數(shù)據(jù)串以要素?cái)?shù)據(jù)單位進(jìn)行重排的功能。數(shù)據(jù)串的重排方法與輸入數(shù)據(jù)重排部860同樣由轉(zhuǎn)置控制部850決定。重排后的數(shù)據(jù)串輸出至寄存器訪問部300。
轉(zhuǎn)置控制部850在與轉(zhuǎn)置處理后執(zhí)行的運(yùn)算有關(guān)的從寄存器組310的數(shù)據(jù)讀入處理、以及與讀出該數(shù)據(jù)的運(yùn)算有關(guān)的向寄存器組310的數(shù)據(jù)寫入處理中實(shí)施數(shù)據(jù)串重排和偏移讀取,從而不使運(yùn)算處理部240進(jìn)行用于轉(zhuǎn)置的處理來實(shí)施轉(zhuǎn)置處理。轉(zhuǎn)置控制部850生成上述轉(zhuǎn)置處理所需要的輸出重排信息、作為用于偏移讀取的列位置信息的地址修正值、輸入重排信息,保持到所包含的設(shè)定寄存器320中。輸入數(shù)據(jù)重排部860、輸出數(shù)據(jù)重排部870、寄存器訪問部300從設(shè)定寄存器320取得輸出重排信息、輸入重排信息及地址修正值?!磩?dòng)作〉以下,表示由轉(zhuǎn)置運(yùn)算裝置800進(jìn)行的8行8列的矩陣數(shù)據(jù)的轉(zhuǎn)置處理的順序。首先,當(dāng)向寄存器組310保存圖像數(shù)據(jù)時(shí),轉(zhuǎn)置控制部850對設(shè)定寄存器320設(shè)定輸出重排信息,輸出數(shù)據(jù)重排部870基于輸出重排信息執(zhí)行重排。轉(zhuǎn)置控制部850指示輸出重排信息以使轉(zhuǎn)置前 矩陣中的相同的列(例如POO — P70)不屬于相同的列,如POO —P07 不重排、對于 PlO — P17 為{6,0,1,4,3,2,7,5}、對于 P20 — P27 為{5,7,0,1,2,3,4,6}。另外,重排信息表示重排前的數(shù)據(jù)串的各要素?cái)?shù)據(jù)在重排后以怎樣的順序排列,例如如果將數(shù)據(jù)串{P00,P01,P02,P03}按照重排信息{3,1,2,0}重排,則成為數(shù)據(jù)串{P03,P01,P02, P00}。接著,輸出數(shù)據(jù)重排部870將重排后的數(shù)據(jù)串輸出至寄存器訪問部300,寄存器訪問部300向由運(yùn)算控制部230指定的寄存器地址N所指示的寄存器保存POO — P07,向寄存器地址(N+1)所指示的寄存器保存PlO - P17,向寄存器地址(N+2)所指示的寄存器保存P20 - P27。在圖19 Ca)中表示保存有全部的數(shù)據(jù)串的狀態(tài)。接著,對伴隨著運(yùn)算處理2的轉(zhuǎn)置處理進(jìn)行說明。轉(zhuǎn)置控制部850按轉(zhuǎn)置前的矩陣數(shù)據(jù)的每一列制作地址修正值。寄存器訪問部300使用由運(yùn)算控制部230指定的寄存器地址N和由轉(zhuǎn)置控制部850生成的地址修正值進(jìn)行偏移讀取,按轉(zhuǎn)置前的矩陣數(shù)據(jù)的每一列輸出數(shù)據(jù)串。對地址修正值的生成方法進(jìn)行說明。例如,如圖19 (b)所示,當(dāng)讀出相當(dāng)于轉(zhuǎn)置處理前的矩陣數(shù)據(jù)的第3列的數(shù)據(jù)串P02 - P72時(shí),地址修正值為{+6,+5,0, +7,+2,+1,+4, +3}。同樣,例如要進(jìn)行P07 - P77的數(shù)據(jù)串的讀出時(shí),只要將地址修正值設(shè)為{+3,+2,+7,+4,+5,+6,+1,0}就可以。通過這樣變更作為基準(zhǔn)的要素?cái)?shù)據(jù)位置而重復(fù)偏移讀取,寄存器上的矩陣數(shù)據(jù)按轉(zhuǎn)置前的矩陣數(shù)據(jù)的每一列成為I個(gè)數(shù)據(jù)串而被取出。在圖20 (c)中表示全部的數(shù)據(jù)串被取出的狀態(tài)。最后,轉(zhuǎn)置控制部850對輸入數(shù)據(jù)重排部860指定用于重排以使被取出的數(shù)據(jù)串成為轉(zhuǎn)置后的矩陣數(shù)據(jù)中的行數(shù)據(jù)的輸入重排信息。例如,如果是第4列(P03 - 073),則由于將{P53, P63, P33, P03, P13, P23, P73, P43}的順序重排為{P03, P13, P23, P33, P43,P53,P63,P73},所以為{3,4,5,2,7,0,1,6} 通過對取出的全部的數(shù)據(jù)串使用輸入重排信息進(jìn)行重排,如圖20(d)所示那樣,向運(yùn)算處理部240的輸入數(shù)據(jù)成為與將原來的8行8列的矩陣數(shù)據(jù)轉(zhuǎn)置后的矩陣數(shù)據(jù)等價(jià)。根據(jù)這樣的結(jié)構(gòu),在向寄存器組310的寫入前的偏移讀取的重排中,并不限于按矩陣數(shù)據(jù)的各行、向右移位量增加要素?cái)?shù)據(jù)寬度量的循環(huán)移位,通過實(shí)施重排以使原來的矩陣數(shù)據(jù)的相同列的數(shù)據(jù)屬于不同的列,能夠進(jìn)行基于本發(fā)明的矩陣數(shù)據(jù)的轉(zhuǎn)置。<有關(guān)本實(shí)施方式的其他變形例>(I)在實(shí)施方式I 5中,說明了對使用與轉(zhuǎn)置對象的矩陣數(shù)據(jù)的全部的列對應(yīng)的列位置信息(地址修正值)進(jìn)行運(yùn)算處理2的運(yùn)算處理部240或640輸出整個(gè)轉(zhuǎn)置矩陣的情況,但本發(fā)明并不限定于該情況。例如,在運(yùn)算處理2僅使用與轉(zhuǎn)置對象的矩陣數(shù)據(jù)的第I列、第2列、第3列對應(yīng)的數(shù)據(jù)串的情況下,也可以僅將該部分?jǐn)?shù)據(jù)輸出至運(yùn)算處理部240或640。通過這樣,例如能夠不生成整個(gè)轉(zhuǎn)置矩陣而并行地執(zhí)行需要轉(zhuǎn)置矩陣的一部分的運(yùn)笪
ο(2)在實(shí)施方式I 4中,說明了將循環(huán)量的最小單位設(shè)為要素?cái)?shù)據(jù)的寬度、輸入循環(huán)部260及輸出循環(huán)部270循環(huán)移位被指定的循環(huán)量X要素?cái)?shù)據(jù)的寬度所表示的量(位數(shù))的情況,但本發(fā)明并不一定限定于該情況。例如也可以將循環(huán)量的最小單位設(shè)為I位而將循環(huán)量用位數(shù)單位指定,也可以將要素?cái)?shù)據(jù)的寬度的整數(shù)倍(例如,2倍或4倍)設(shè)為最小單位。通過這樣,例如,當(dāng)要素?cái)?shù)據(jù)的寬度是8位時(shí),能夠?qū)?6位作為I個(gè)要素的矩陣數(shù)據(jù)進(jìn)行轉(zhuǎn)置處理。(3)在實(shí)施方式I中,說明了輸出循環(huán)量從第I列起依次為{0,+1,+2,+3,+4,+5,+6,+7}、地址修正值為圖7 (b)、圖8 (C)、圖8 (d)所示的值、輸入循環(huán)量從第I列起依次為{0,-1, -2,-3,-4,-5,-6,-7}的情況,在實(shí)施方式2中,說明了寄存器訪問的地址修正值、輸入循環(huán)量、輸出循環(huán)量是圖11中記載的值的情況,但本發(fā)明并不一定限定于該情況。例如,也可以使輸出循環(huán)量從第I列起依次為{+6, +7,0, +1, +2, +3, +4, +5},使輸入循環(huán)量從第I列起依次為{_6,-7,0, -1, -2,-3,-4,-5},使地址修正值為與循環(huán)量相應(yīng)的值、如果是第I列則為1+2,+3, +4, +5, +6, +7,0, +1}。這樣,通過將輸出循環(huán)量設(shè)定為從第I列起依次以要素?cái)?shù)據(jù)單位各增加 +1而得到的值,將輸入循環(huán)量設(shè)定為絕對值相同而移位方向?yàn)榉聪?,能夠進(jìn)行實(shí)施方式I 4的本發(fā)明的實(shí)施。(4)在實(shí)施方式1、2、3中,說明了將輸入循環(huán)量設(shè)為與對應(yīng)的輸出循環(huán)量相比絕對值相同而移位方向?yàn)榉聪虻那闆r,但本發(fā)明并不一定限定于該情況。例如,也可以是,在作為轉(zhuǎn)置處理對象的矩陣數(shù)據(jù)是η行η列(η是2以上的整數(shù))的情況下,第j行(j是I以上且η以下的整數(shù))的輸出循環(huán)量與第j行的輸入循環(huán)量的合計(jì)為η的整數(shù)倍(單位是要素?cái)?shù)據(jù)寬度)。(5)在實(shí)施方式2、3中,說明了在執(zhí)行伴隨著轉(zhuǎn)置處理的運(yùn)算后,為了使運(yùn)算結(jié)果回到原來的排列,在該運(yùn)算與使用該運(yùn)算的結(jié)果作為輸入數(shù)據(jù)的運(yùn)算之間實(shí)施轉(zhuǎn)置處理的情況,但本發(fā)明并不一定限定于該情況。例如,也可以如實(shí)施方式4那樣,當(dāng)將該運(yùn)算的結(jié)果向寄存器保存時(shí),寄存器訪問部300或500還具有寄存器訪問部700的功能,進(jìn)行寫地址修正而向寄存器寫入,當(dāng)執(zhí)行使用該數(shù)據(jù)的運(yùn)算時(shí),寄存器訪問部300或500進(jìn)行通常的讀入,輸入循環(huán)部260進(jìn)行循環(huán)移位?;蛘?,也可以是,當(dāng)在實(shí)施方式I 3中進(jìn)行轉(zhuǎn)置處理時(shí),在運(yùn)算命令I(lǐng)中進(jìn)行通過輸出循環(huán)部270的循環(huán)移位和通過寄存器訪問部300或500的偏移寫入,在運(yùn)算命令2中,寄存器訪問部300或500進(jìn)行通常的讀入,輸入循環(huán)部260進(jìn)行循環(huán)移位。(6)在實(shí)施方式2中,說明了將寄存器號碼O — 7作為轉(zhuǎn)置寄存器的情況,但本發(fā)明并不一定限定于該情況。例如,也可以將寄存器號碼24 - 31作為轉(zhuǎn)置寄存器,也可以將寄存器號碼O — 15作為轉(zhuǎn)置寄存器而能夠?qū)⒆畲?6行16列的數(shù)據(jù)轉(zhuǎn)置。(7)在實(shí)施方式3中,說明了不伴隨著轉(zhuǎn)置處理的運(yùn)算命令使用不具有輸入循環(huán)部260及輸出循環(huán)部270的運(yùn)算器進(jìn)行處理的情況,但本發(fā)明并不一定限定于該情況。例如,也可以將不伴隨著轉(zhuǎn)置處理的運(yùn)算命令作為伴隨著輸入循環(huán)量為O、輸出循環(huán)量為O的轉(zhuǎn)置處理的運(yùn)算命令,由具有輸入循環(huán)部260及輸出循環(huán)部270的運(yùn)算器進(jìn)行處理。相反,也可以將伴隨著輸入循環(huán)量為O、輸出循環(huán)量為O的轉(zhuǎn)置處理的運(yùn)算命令使用不具有輸入循環(huán)部260及輸出循環(huán)部270的運(yùn)算器進(jìn)行處理?;蛘撸部梢允?,運(yùn)算處理部640具備僅具有輸入循環(huán)部260的運(yùn)算器,使該運(yùn)算器執(zhí)行伴隨著輸入循環(huán)量不是O而輸出循環(huán)量是O的轉(zhuǎn)置處理的運(yùn)算命令,也可以具備僅具有輸出循環(huán)部270的運(yùn)算器,使該運(yùn)算器執(zhí)行伴隨著輸出循環(huán)量不是O而輸入循環(huán)量是O的轉(zhuǎn)置處理的運(yùn)算命令。通過這樣,能夠提高并行處理的效率,并且能夠?qū)崿F(xiàn)因運(yùn)算器資源的共用化帶來的硬件資源的削減?;蛘?,在實(shí)施方式1、2中,也可以將運(yùn)算處理部240做成如運(yùn)算處理部640那樣按每個(gè)運(yùn)算器配置輸入循環(huán)部260和輸出循環(huán)部270的結(jié)構(gòu)。例如,在實(shí)施方式2中,也可以使具有輸入循環(huán)部260的運(yùn)算器執(zhí)行伴隨著從轉(zhuǎn)置寄存器的讀出的命令,使具有輸出循環(huán)部270的運(yùn)算器執(zhí)行伴隨著向轉(zhuǎn)置寄存器的寫入的命令。(8)在實(shí)施方式1、3 5中,說明了轉(zhuǎn)置控制部250將列位置信息作為與運(yùn)算控制部230、430或630生成的用于讀入的寄存器的地址的差分即地址修正值提供的情況,但本發(fā)明并不一定限定于該情況。例如,也可以如實(shí)施方式2那樣,列位置信息是直接指定寄存器的地址的信息。通過這樣,即使用于保存用于轉(zhuǎn)置的矩陣數(shù)據(jù)的寄存器的地址是離散的值,也能夠?qū)嵤┯嘘P(guān)本發(fā)明的轉(zhuǎn)置處理,在進(jìn)行偏移讀取的情況下不需要由運(yùn)算控制部230、430、630或830生成用于讀入的寄存器的地址。(9)在實(shí)施方式1、3 5中,說明了將8行8列的矩陣數(shù)據(jù)轉(zhuǎn)置的情況,但本發(fā)明并不一定限定于該情況。例如,在I個(gè)寄存器中能夠保存M個(gè)要素?cái)?shù)據(jù)并且寄存器組由M個(gè)寄存器構(gòu)成的情況下,能夠?qū)行m列(m ( M)的矩陣數(shù)據(jù)轉(zhuǎn)置。此外,在實(shí)施方式2中,在屬于轉(zhuǎn)置寄存器組510的I個(gè)寄存器中能夠保存M個(gè)要素?cái)?shù)據(jù)、并且在轉(zhuǎn)置寄存器組510中存在M個(gè)寄存器的情況下,能夠?qū)行m列(m ( M)的矩陣數(shù)據(jù)轉(zhuǎn)置?;蛘撸谧鳛檗D(zhuǎn)置對象的矩陣不是正方矩陣的情況下,附加空行或空列以成為正方矩陣并輸出至輸出循環(huán)部270,從輸入循環(huán)部260的輸出刪除所附加的空行或空列,由此能夠用有關(guān)本發(fā)明的方法進(jìn)行轉(zhuǎn)置。(10)在實(shí)施方式I 5中,說明了對運(yùn)算處理I的運(yùn)算結(jié)果進(jìn)行轉(zhuǎn)置處理而作為運(yùn)算處理2的輸入的情況,但本發(fā)明并不一定限定于該情況。例如,在對保存在作為外部的存儲(chǔ)裝置的圖像存儲(chǔ)器130中的矩陣數(shù)據(jù)進(jìn)行轉(zhuǎn)置處理而作為運(yùn)算處理2的輸入的情況下,只要進(jìn)行將圖像存儲(chǔ)器130作為輸入目的地、將寄存器組310或轉(zhuǎn)置寄存器組510作為輸出目的地、將輸入數(shù)據(jù)原樣輸出的運(yùn)算處理I就可以。同樣,例如在對運(yùn)算處理I的運(yùn)算結(jié)果進(jìn)行轉(zhuǎn)置處理后保存到圖像存儲(chǔ)器130中的情況下,只要進(jìn)行將寄存器組310或轉(zhuǎn)置寄存器組510作為輸入目的地、將圖像存儲(chǔ)器130作為輸出目的地、將輸入數(shù)據(jù)原樣輸出的運(yùn)算處理2就可以。(11)上述各實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置典型地也可以作為集成電路即LSI (LargeScale Integration)實(shí)現(xiàn)。既可以將各電路單獨(dú)地作為I芯片,也可以包含全部的電路或一部分的電路而I芯片化。這里記載為LSI,但根據(jù)集成度的差異,也有稱作IC (Integrated Circuit)、系統(tǒng)LS1、超級LS1、特級LSI的情況。此外,集成電路化的方法并不限定于LSI,也可以通過專用電路或通用處理器實(shí)現(xiàn)。也可以利用在LSI制造后能夠編程的FPGA (Field Programmable Gate Array)、或能夠再構(gòu)成LSI內(nèi)部的電路單元的連接及設(shè)定的可重構(gòu)處理器。進(jìn)而,如果通過半導(dǎo)體技術(shù)的進(jìn)步或派生的其他技術(shù)出現(xiàn)替代LSI的集成電路化的技術(shù),則當(dāng)然也可以使用該技術(shù)進(jìn)行功能塊的集成化。(12)實(shí)施方式I 5的說明不過是本發(fā)明的例示,能夠不脫離本發(fā)明的范圍而進(jìn)行各種改良或變形?!囱a(bǔ)充〉以下,對有關(guān)實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置和其集成電路及轉(zhuǎn)置處理方法的結(jié)構(gòu)及效果進(jìn)行說明。(I)有關(guān)實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置,其特征在于,具備:寄存器組,由寄存器構(gòu)成,能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、且能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器;轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù)生成輸出重排信息、列位置信息以及輸入重排信息,上述輸出重排信息用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列,上述列位置信息表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所(位置),上述輸入重排信息用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排;輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排;寄存器訪問部,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)寫入上述寄存器組,從上述寄存器組讀出數(shù)據(jù),使用上述列位置信息按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各I個(gè)取出要素?cái)?shù)據(jù)的寄存器,并輸出上述要素?cái)?shù)據(jù)的集合;輸入數(shù)據(jù)重排部,使用上述輸入重排信息將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合重排;以及運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。此外,有關(guān)實(shí)施方式的集成電路,其特征在于,具備:寄存器組,由寄存器構(gòu)成,能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、且能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器;轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù)生成輸出重排信息、列位置信息以及輸入重排信息,上述輸出重排信息用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列,上述列位置信息表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所,上述輸入重排信息用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排;輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排;寄存器訪問部,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)寫入上述寄存器組,從上述寄存器組讀出數(shù)據(jù),使用上述列位置信息按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各I個(gè)取出要素?cái)?shù)據(jù)的寄存器,并輸出上述要素?cái)?shù)據(jù)的集合;輸入數(shù)據(jù)重排部,使用上述輸入重排信息將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合重排;以及運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。
此外,有關(guān)實(shí)施方式的轉(zhuǎn)置處理方法,是包括寄存器組、對上述矩陣數(shù)據(jù)進(jìn)行運(yùn)算處理和轉(zhuǎn)置處理的轉(zhuǎn)置運(yùn)算裝置的轉(zhuǎn)置處理方法,該寄存器組由保存構(gòu)成矩陣數(shù)據(jù)的行數(shù)據(jù)、能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器構(gòu)成,并且能夠保存上述矩陣數(shù)據(jù),該轉(zhuǎn)置處理方法的特征在于,包括:輸出數(shù)據(jù)重排步驟,對矩陣數(shù)據(jù)按每個(gè)行數(shù)據(jù)重排,以使屬于同一列的要素?cái)?shù)據(jù)分別屬于不同的列;數(shù)據(jù)存儲(chǔ)步驟,使上述寄存器組存儲(chǔ)上述重排后的矩陣數(shù)據(jù);列位置信息生成步驟,生成列位置信息,該列位置信息表示存儲(chǔ)有上述輸出矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)的上述寄存器組的場所;數(shù)據(jù)讀出步驟,使用上述列位置信息,使用上述列位置信息按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各I個(gè)取出要素?cái)?shù)據(jù)的寄存器,將上述要素?cái)?shù)據(jù)的集合從上述寄存器組讀出;輸入數(shù)據(jù)重排步驟,將在上述數(shù)據(jù)讀出步驟中讀出的上述要素?cái)?shù)據(jù)的集合重排;以及運(yùn)算步驟,對上述輸入重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算處理。根據(jù)這些上述的結(jié)構(gòu),在轉(zhuǎn)置運(yùn)算裝置中,將需要轉(zhuǎn)置處理的數(shù)據(jù)寫入寄存器組時(shí)按矩陣數(shù)據(jù)的每個(gè)行數(shù)據(jù)進(jìn)行重排來寫入寄存器組,通過讀出處理和重排,能夠生成轉(zhuǎn)置矩陣數(shù)據(jù),所以不需要將矩陣數(shù)據(jù)為了轉(zhuǎn)置而轉(zhuǎn)送至寄存器以外的存儲(chǔ)裝置,此外能夠以矩陣數(shù)據(jù)的行數(shù)據(jù)單位一次寫入到寄存器組中,能夠?qū)募拇嫫鹘M以矩陣數(shù)據(jù)的列數(shù)據(jù)單位一次讀出并重新排列的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算處理,所以能夠縮短矩陣轉(zhuǎn)置處理所需要的處理時(shí)間。(2)此外,有關(guān)實(shí)施方式的上述(I)的轉(zhuǎn)置運(yùn)算裝置也可以是,上述輸出重排信息是表示用于在上述矩陣數(shù)據(jù)中按每個(gè)行數(shù)據(jù)通過循環(huán)移位進(jìn)行重排的移位量的輸出循環(huán)量。通過這樣,能夠使在向寄存器組的數(shù)據(jù)的寫入時(shí)進(jìn)行的數(shù)據(jù)串的重排簡單化。 ( 3)此外,有關(guān)實(shí)施方式的上述(2)的轉(zhuǎn)置運(yùn)算裝置也可以是,上述輸入重排信息是表示用于將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合通過循環(huán)移位重排的移位量的輸入循環(huán)量;上述轉(zhuǎn)置控制部生成按上述矩陣數(shù)據(jù)的每一行向右各增加要素?cái)?shù)據(jù)單位的輸出循環(huán)量、以及與對應(yīng)于該矩陣數(shù)據(jù)的輸出循環(huán)量相比絕對值相同而移位的方向相反的輸入循環(huán)量。通過這樣,能夠使在向寄存器組的數(shù)據(jù)的寫入時(shí)及從寄存器組的數(shù)據(jù)的讀出時(shí)進(jìn)行的數(shù)據(jù)串的重排簡單化。(4)此外,有關(guān)實(shí)施方式的上述(I)的轉(zhuǎn)置運(yùn)算裝置也可以是,上述轉(zhuǎn)置控制部具備存儲(chǔ)是否使矩陣數(shù)據(jù)轉(zhuǎn)置的指示的設(shè)定寄存器;如果在上述設(shè)定寄存器中有使矩陣數(shù)據(jù)轉(zhuǎn)置的指示,則生成輸出重排信息、列位置信息和輸入重排信息。通過這樣,將用于轉(zhuǎn)置處理的信息與輸出需要轉(zhuǎn)置處理的數(shù)據(jù)的運(yùn)算處理及輸入轉(zhuǎn)置后的數(shù)據(jù)的運(yùn)算處理建立關(guān)聯(lián),能夠在向寄存器寫入時(shí)和從寄存器讀入時(shí)進(jìn)行需要的
重排處理。(5)此外,有關(guān)實(shí)施方式的上述(I)的轉(zhuǎn)置運(yùn)算裝置也可以是,上述寄存器組包括用于存儲(chǔ)作為轉(zhuǎn)置處理的對象的矩陣數(shù)據(jù)的專用寄存器;上述轉(zhuǎn)置控制部在上述寄存器訪問部對上述專用寄存器讀寫矩陣數(shù)據(jù)的情況下,生成輸出重排信息、列位置信息和輸入重排信息。通過這樣,轉(zhuǎn)置運(yùn)算裝置能夠根據(jù)將矩陣數(shù)據(jù)寫入的寄存器或讀出的寄存器是否是專用寄存器,來判別該矩陣數(shù)據(jù)是否是轉(zhuǎn)置處理的對象。(6)此外,有關(guān)實(shí)施方式的上述(I)的轉(zhuǎn)置運(yùn)算裝置也可以是,上述轉(zhuǎn)置運(yùn)算裝置執(zhí)行的運(yùn)算命令包括是否對該運(yùn)算命令的對象及該運(yùn)算命令的結(jié)果進(jìn)行轉(zhuǎn)置處理的信息;上述轉(zhuǎn)置控制部使用伴隨著轉(zhuǎn)置處理的運(yùn)算命令中包含的用于轉(zhuǎn)置處理的信息,生成輸出重排信息、列位置信息和輸入重排信息。通過這樣,通過對輸出需要轉(zhuǎn)置處理的數(shù)據(jù)的運(yùn)算命令和需要轉(zhuǎn)置后的數(shù)據(jù)的運(yùn)算命令附加關(guān)于轉(zhuǎn)置處理的設(shè)定信息,能夠執(zhí)行轉(zhuǎn)置處理,不需要另外的用于指示轉(zhuǎn)置處理伴隨著哪個(gè)運(yùn)算命令的命令。(7)此外,有關(guān)實(shí)施方式的轉(zhuǎn)置運(yùn)算裝置,其特征在于,具備:寄存器組,由寄存器構(gòu)成,能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位寫入的寄存器;轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù),生成用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列的輸出重排信息、表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所的列位置信息、以及用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排的輸入重排信息;輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排;寄存器訪問部,使用上述列位置信息,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的第i行(i ^ I)向存儲(chǔ)第i列的場所的上述寄存器組寫入,從上述寄存器組讀出數(shù)據(jù);輸入數(shù)據(jù)重排部,使用上述輸入重排信息將上述寄存器訪問部讀出的上述要素?cái)?shù)據(jù)的集合重排;以及運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。通過這樣,通過在將需要轉(zhuǎn)置處理的數(shù)據(jù)寫入寄存器組時(shí)按矩陣數(shù)據(jù)的每個(gè)行數(shù)據(jù)進(jìn)行重排、并且作為矩陣數(shù)據(jù)的列數(shù)據(jù)而向寄存器組記錄,僅通過將該矩陣數(shù)據(jù)從寄存器組讀出并重排,就能夠得到轉(zhuǎn)置處理后的矩陣數(shù)據(jù)。工業(yè)實(shí)用性有關(guān)本發(fā)明的轉(zhuǎn)置運(yùn)算裝置對于數(shù)字TV或記錄機(jī)、數(shù)字靜像照相機(jī)、數(shù)字?jǐn)z像機(jī)等的伴隨著轉(zhuǎn)置處理的圖像處理具有實(shí)用性。附圖標(biāo)記說明100圖像處理裝置110圖像輸入部120輸入處理部130圖像存儲(chǔ)器140系統(tǒng)控制部150信號處理部200、400、600、800 轉(zhuǎn)置運(yùn)算裝置210、410、610 命令發(fā)行部220、420、620 命令解碼部230、430、630 運(yùn)算控制部240、640運(yùn)算處理部250、450、650 轉(zhuǎn)置控制部260輸入循環(huán)部
270輸出循環(huán)部300、500、700寄存器訪問部310寄存器組510轉(zhuǎn)置寄存器組860輸入數(shù)據(jù)重排部870輸出數(shù)據(jù)重排部
權(quán)利要求
1.一種轉(zhuǎn)置運(yùn)算裝置,其特征在于,具備: 寄存器組,由下述寄存器構(gòu)成,且能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、且能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器; 轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù)生成輸出重排信息、列位置信息以及輸入重排信息,上述輸出重排信息用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列,上述列位置信息表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所,上述輸入重排信息用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排; 輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排; 寄存器訪問部,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)寫入上述寄存器組,從上述寄存器組讀出數(shù)據(jù),并使用上述列位置信息按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各一個(gè)取出要素?cái)?shù)據(jù)的寄存器,輸出上述要素?cái)?shù)據(jù)的集合; 輸入數(shù)據(jù)重排部,使用上述輸入重排信息將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合重排;以及 運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。
2.如權(quán)利要求1所述的轉(zhuǎn)置運(yùn)算裝置,其特征在于, 上述輸出重排信息是輸出循環(huán)量,該輸出循環(huán)量表示用于在上述矩陣數(shù)據(jù)中按每個(gè)行數(shù)據(jù)通過循環(huán)移位進(jìn)行重排的移位量。
3.如權(quán)利要求2所述的轉(zhuǎn)置運(yùn)算裝置,其特征在于, 上述輸入重排信息是輸入循環(huán)量,該輸入循環(huán)量表示用于將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合通過 循環(huán)移位重排的移位量; 上述轉(zhuǎn)置控制部生成按上述矩陣數(shù)據(jù)的每一行向右各增加要素?cái)?shù)據(jù)單位的輸出循環(huán)量、以及與對應(yīng)于該矩陣數(shù)據(jù)的輸出循環(huán)量相比絕對值相同而移位的方向相反的輸入循環(huán)量。
4.如權(quán)利要求1所述的轉(zhuǎn)置運(yùn)算裝置,其特征在于, 上述轉(zhuǎn)置控制部具備設(shè)定寄存器,該設(shè)定寄存器存儲(chǔ)是否使矩陣數(shù)據(jù)轉(zhuǎn)置的指示;在上述設(shè)定寄存器中有使矩陣數(shù)據(jù)轉(zhuǎn)置的指示時(shí),上述轉(zhuǎn)置控制部生成輸出重排信息、列位置信息以及輸入重排信息。
5.如權(quán)利要求1所述的轉(zhuǎn)置運(yùn)算裝置,其特征在于, 上述寄存器組包括用于存儲(chǔ)作為轉(zhuǎn)置處理的對象的矩陣數(shù)據(jù)的專用寄存器; 上述轉(zhuǎn)置控制部在上述寄存器訪問部對上述專用寄存器讀寫矩陣數(shù)據(jù)的情況下,生成輸出重排信息、列位置信息以及輸入重排信息。
6.如權(quán)利要求1所述的轉(zhuǎn)置運(yùn)算裝置,其特征在于, 上述轉(zhuǎn)置運(yùn)算裝置執(zhí)行的運(yùn)算命令包括是否對該運(yùn)算命令的對象及該運(yùn)算命令的結(jié)果進(jìn)行轉(zhuǎn)置處理的信息; 上述轉(zhuǎn)置控制部使用伴隨著轉(zhuǎn)置處理的運(yùn)算命令所包含的用于轉(zhuǎn)置處理的信息,生成輸出重排信息、列位置信息以及輸入重排信息。
7.一種轉(zhuǎn)置運(yùn)算裝置,其特征在于,具備: 寄存器組,由下述寄存器構(gòu)成,能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、且能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位寫入的寄存器; 轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù)生成輸出重排信息、列位置信息以及輸入重排信息,上述輸出重排信息用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列,上述列位置信息表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所,上述輸入重排信息用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排; 輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排; 寄存器訪問部,使用上述列位置信息,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的第i行寫入存儲(chǔ)第i列的場所的上述寄存器組,從上述寄存器組讀出數(shù)據(jù),其中i > I ; 輸入數(shù)據(jù)重排部,使用上述輸入重排信息將上述寄存器訪問部讀出的上述要素?cái)?shù)據(jù)的集合重排;以及 運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。
8.一種集成電路,其特征在于,具備: 寄存器組,由下述寄存器構(gòu)成,且能夠保存作為處理對象的矩陣數(shù)據(jù),上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、且能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器; 轉(zhuǎn)置控制部,針對矩陣數(shù)據(jù)生成輸出重排信息、列位置信息以及輸入重排信息,上述輸出重排信息用于按每個(gè)行數(shù)據(jù)重排以使同一列的要素?cái)?shù)據(jù)分別成為不同的列,上述列位置信息表示在上述矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)存儲(chǔ)于上述寄存器組中的場所,上述輸入重排信息用于將按照上述列位置信息從上述寄存器組讀出的上述矩陣數(shù)據(jù)的同一列的要素?cái)?shù)據(jù)的集合重排; 輸出數(shù)據(jù)重排部,使用上述輸出重排信息將上述矩陣數(shù)據(jù)重排; 寄存器訪問部,將上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)寫入上述寄存器組,從上述寄存器組讀出數(shù)據(jù),并使用上述列位置信息按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各一個(gè)取出要素?cái)?shù)據(jù)的寄存器,輸出上述要素?cái)?shù)據(jù)的集合; 輸入數(shù)據(jù)重排部,使用上述輸入重排信息將上述寄存器訪問部輸出的上述要素?cái)?shù)據(jù)的集合重排;以及 運(yùn)算處理部,對由上述輸入數(shù)據(jù)重排部進(jìn)行重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算。
9.一種轉(zhuǎn)置處理方法,其特征在于,是轉(zhuǎn)置運(yùn)算裝置的轉(zhuǎn)置處理方法,該轉(zhuǎn)置運(yùn)算裝置包括由下述寄存器構(gòu)成且能夠保存矩陣數(shù)據(jù)的寄存器組,并對上述矩陣數(shù)據(jù)進(jìn)行運(yùn)算處理和轉(zhuǎn)置處理,上述寄存器是保存構(gòu)成上述矩陣數(shù)據(jù)的行數(shù)據(jù)、且能夠以構(gòu)成行數(shù)據(jù)的要素?cái)?shù)據(jù)單位讀出的寄存器,上述轉(zhuǎn)置處理方法包括: 輸出數(shù)據(jù)重排步驟,對矩陣數(shù)據(jù)按每個(gè)行數(shù)據(jù)重排,以使屬于同一列的要素?cái)?shù)據(jù)分別屬于不同的列; 數(shù)據(jù)存儲(chǔ)步驟,使上述寄存器組存儲(chǔ)上述重排后的矩陣數(shù)據(jù); 列位置信息生成步驟,生成列位置信息,該列位置信息表示存儲(chǔ)有在上述輸出矩陣數(shù)據(jù)中屬于同一列的要素?cái)?shù)據(jù)的上述寄存器組的場所;數(shù)據(jù)讀出步驟,使用上述列位置信息,按上述輸出數(shù)據(jù)重排部進(jìn)行重排后的矩陣數(shù)據(jù)的每一列選擇各一個(gè)取出要素?cái)?shù)據(jù)的寄存器,從上述寄存器組讀出上述要素?cái)?shù)據(jù)的集合;輸入數(shù)據(jù)重排步驟,將在上述數(shù)據(jù)讀出步驟中讀出的上述要素?cái)?shù)據(jù)的集合重排;以及運(yùn)算步驟 ,對上述輸入重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算處理。
全文摘要
寄存器組,能夠保存矩陣數(shù)據(jù),能夠以要素?cái)?shù)據(jù)單位讀出;輸出數(shù)據(jù)重排部,按每個(gè)行數(shù)據(jù)進(jìn)行重排,以使同一列的要素?cái)?shù)據(jù)分別屬于不同的列;寄存器訪問部,將重排后的矩陣數(shù)據(jù)寫入寄存器組,使用列位置信息從寄存器組讀出要素?cái)?shù)據(jù)的集合,上述列位置信息表示屬于同一列的要素?cái)?shù)據(jù)在寄存器組中被存儲(chǔ)的場所;輸入數(shù)據(jù)重排部,將所讀出的要素?cái)?shù)據(jù)的集合重排;運(yùn)算處理部,對重排后的要素?cái)?shù)據(jù)的集合進(jìn)行運(yùn)算;以及轉(zhuǎn)置控制部,生成重排信息和列位置信息,控制數(shù)據(jù)的重排;通過在向寄存器組保存時(shí)和讀出時(shí)進(jìn)行數(shù)據(jù)串的重排,使轉(zhuǎn)置處理高速化。
文檔編號G06F9/34GK103168289SQ201280003250
公開日2013年6月19日 申請日期2012年9月11日 優(yōu)先權(quán)日2011年10月14日
發(fā)明者西村隆, 森下廣之 申請人:松下電器產(chǎn)業(yè)株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
桂平市| 运城市| 东台市| 灌阳县| 连城县| 扶沟县| 博野县| 罗城| 大理市| 弋阳县| 商丘市| 平邑县| 宁晋县| 清新县| 都昌县| 阿拉善左旗| 大冶市| 昌平区| 衢州市| 伊金霍洛旗| 江门市| 伽师县| 建湖县| 崇阳县| 达孜县| 鹿泉市| 镇坪县| 青龙| 合阳县| 越西县| 达拉特旗| 皮山县| 洛南县| 佛教| 蒲城县| 长兴县| 荆州市| 天台县| 宁夏| 灵武市| 彭阳县|