處理器和數(shù)據(jù)收集方法
【專利說(shuō)明】
[0001] 相關(guān)申請(qǐng)的交叉引用
[0002] 本申請(qǐng)是基于并且要求2014年5月27日提交的日本專利申請(qǐng)No. 2014-108852 的優(yōu)先權(quán)的權(quán)益,本申請(qǐng)的公開(kāi)的全部?jī)?nèi)容以引用方式并入本文中。
技術(shù)領(lǐng)域
[0003] 本發(fā)明涉及處理器和數(shù)據(jù)收集方法,例如,涉及用于讀取或?qū)懭氪鎯?chǔ)在存儲(chǔ)器中 的多個(gè)數(shù)據(jù)集合的處理器、數(shù)據(jù)處理裝置、數(shù)據(jù)收集方法和數(shù)據(jù)寫(xiě)入方法。
【背景技術(shù)】
[0004] 近年來(lái),已經(jīng)開(kāi)發(fā)了能夠執(zhí)行矢量運(yùn)算的處理器。矢量運(yùn)算對(duì)矢量數(shù)據(jù)元素執(zhí)行 的多個(gè)標(biāo)量運(yùn)算是一個(gè)運(yùn)算。專利申請(qǐng)No. 2014-504418的PCT國(guó)際公開(kāi)的公開(kāi)日文翻譯 公開(kāi)了在執(zhí)行矢量運(yùn)算之前和之后執(zhí)行的收集指令和分散指令。
[0005] 收集指令是用于從存儲(chǔ)器的對(duì)應(yīng)區(qū)域收集與數(shù)據(jù)陣列的多個(gè)指定索引對(duì)應(yīng)的數(shù) 據(jù)值的指令。通過(guò)收集指令收集的多個(gè)數(shù)據(jù)值被用作后續(xù)矢量運(yùn)算的輸入矢量。分散指令 是用于將矢量數(shù)據(jù)的數(shù)據(jù)值存儲(chǔ)在存儲(chǔ)器的與數(shù)據(jù)陣列的指定索引對(duì)應(yīng)的區(qū)域中的指令。 通過(guò)矢量運(yùn)算產(chǎn)生的輸出矢量的各個(gè)元素可被用作受支配于分散指令的矢量數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0006] 然而,當(dāng)將收集或分散指令用于矢量運(yùn)算時(shí),處理時(shí)間會(huì)增加并且處理效率會(huì)降 低。這是因?yàn)?,在一個(gè)存儲(chǔ)器訪問(wèn)中只可訪問(wèn)存儲(chǔ)器中存儲(chǔ)有數(shù)據(jù)陣列的連續(xù)區(qū)域。由此, 多個(gè)存儲(chǔ)器訪問(wèn)目標(biāo)數(shù)據(jù)值的存儲(chǔ)目的地中的存儲(chǔ)器區(qū)域是不連續(xù)的(離散的),需要在 連續(xù)區(qū)域的各個(gè)簇中執(zhí)行存儲(chǔ)器訪問(wèn)。也就是說(shuō),盡管收集和分散指令均是單個(gè)指令,但存 儲(chǔ)器訪問(wèn)的數(shù)目會(huì)根據(jù)數(shù)據(jù)值的存儲(chǔ)目的地而增加。由此,矢量運(yùn)算的預(yù)處理或后處理時(shí) 間增加。
[0007] 根據(jù)本說(shuō)明書(shū)的描述和附圖,其它目的和新特征將變得清楚。
[0008] 根據(jù)本發(fā)明的實(shí)施例,通過(guò)改變數(shù)據(jù)元素的存儲(chǔ)次序,處理器加載或存儲(chǔ)存儲(chǔ)器 和處理器中的存儲(chǔ)單元之間的多個(gè)數(shù)據(jù)集合中包含的多個(gè)數(shù)據(jù)元素。
[0009] 被替換了根據(jù)實(shí)施例的處理器的方法和系統(tǒng)、致使計(jì)算機(jī)執(zhí)行裝置的處理或裝置 的一部分的程序、包括該裝置的成像設(shè)備等也有效地作為本發(fā)明的方面。
[0010] 根據(jù)實(shí)施例,可有效執(zhí)行存儲(chǔ)器和處理器中的存儲(chǔ)單元之間的加載或存儲(chǔ)數(shù)據(jù)的 過(guò)程。
【附圖說(shuō)明】
[0011] 根據(jù)下面結(jié)合附圖對(duì)某些實(shí)施例的描述,以上和其它方面、優(yōu)點(diǎn)和特征將更清楚, 其中:
[0012] 圖1是示出包括根據(jù)實(shí)施例1的處理器的數(shù)據(jù)處理裝置的構(gòu)造的框圖;
[0013] 圖2是示出根據(jù)實(shí)施例1的數(shù)據(jù)收集方法的流程的流程圖;
[0014] 圖3是示出包括根據(jù)實(shí)施例1的處理器的數(shù)據(jù)處理裝置的另一個(gè)構(gòu)造的框圖;
[0015] 圖4是示出包括根據(jù)實(shí)施例2的處理器的數(shù)據(jù)處理裝置的構(gòu)造的框圖;
[0016] 圖5是示出根據(jù)實(shí)施例2的數(shù)據(jù)寫(xiě)入方法的流程的流程圖;
[0017] 圖6是示出包括根據(jù)實(shí)施例2的處理器的數(shù)據(jù)處理裝置的另一個(gè)構(gòu)造的框圖;
[0018] 圖7是示出包括根據(jù)實(shí)施例3的處理器的數(shù)據(jù)處理裝置的構(gòu)造的框圖;
[0019] 圖8是示出根據(jù)實(shí)施例3的收集指令的流程的流程圖;
[0020] 圖9是用于描述根據(jù)實(shí)施例3的針對(duì)多個(gè)矢量寄存器的收集指令的操作構(gòu)思的示 圖;
[0021] 圖10是示出包括根據(jù)實(shí)施例4的處理器的數(shù)據(jù)處理裝置的構(gòu)造的框圖;
[0022] 圖11是示出根據(jù)實(shí)施例4的分散指令的流程的流程圖;
[0023] 圖12是用于描述根據(jù)實(shí)施例4的針對(duì)多個(gè)矢量寄存器的分散指令的操作構(gòu)思的 示圖;
[0024] 圖13是用于描述根據(jù)現(xiàn)有技術(shù)的收集指令的構(gòu)思的示圖;
[0025] 圖14是用于描述根據(jù)現(xiàn)有技術(shù)的分散指令的構(gòu)思的示圖;
[0026] 圖15是用于描述根據(jù)現(xiàn)有技術(shù)的針對(duì)多個(gè)矢量寄存器的收集指令的操作構(gòu)思的 示圖;
[0027] 圖16是用于描述根據(jù)現(xiàn)有技術(shù)的針對(duì)多個(gè)矢量寄存器的收集指令的操作構(gòu)思的 示圖;
[0028] 圖17是用于描述根據(jù)現(xiàn)有技術(shù)的加載多個(gè)字的加載指令的操作構(gòu)思的示圖;以 及
[0029] 圖18是用于描述根據(jù)現(xiàn)有技術(shù)的在矢量寄存器中重排數(shù)據(jù)的過(guò)程的操作構(gòu)思的 示圖。
【具體實(shí)施方式】
[0030] 下文中,將參照附圖詳細(xì)描述采用用于解決以上問(wèn)題的裝置的具體實(shí)施例。在各 個(gè)附圖中,用相同的參考符號(hào)表示具有相同功能的組件,為了清楚說(shuō)明,將酌情省略對(duì)其的 冗余描述。
[0031] 在下述的實(shí)施例中,為了方便起見(jiàn),將在需要時(shí)在多個(gè)部分或?qū)嵤├忻枋霰景l(fā) 明。然而,除非另外闡述,否則這些部分或?qū)嵤├舜耸遣幌嚓P(guān)的,作為修改例、應(yīng)用例、細(xì) 節(jié)或其補(bǔ)充說(shuō)明,一個(gè)與另一個(gè)的整體或部分相關(guān)。此外,在下述的實(shí)施例中,當(dāng)參照元素 的數(shù)目(包括件數(shù)、值、量、范圍等)時(shí),元素的數(shù)目不限于特定數(shù)目,除非另外說(shuō)明,或者除 了原理上數(shù)目顯然限于具體數(shù)目之外。也可應(yīng)用數(shù)目更大或更小的具體數(shù)目。
[0032] 〈實(shí)施例1>
[0033] 圖1是示出包括根據(jù)實(shí)施例1的處理器20的數(shù)據(jù)處理裝置1000的構(gòu)造的框圖。 數(shù)據(jù)處理裝置1000包括存儲(chǔ)器10和處理器20。存儲(chǔ)器10是其中存儲(chǔ)有數(shù)據(jù)集合11和 12等的存儲(chǔ)裝置。存儲(chǔ)器10對(duì)應(yīng)于所謂的主存儲(chǔ)裝置并且存在于處理器20外部。存儲(chǔ)器 10通過(guò)存儲(chǔ)器總線(未示出)連接到處理器20。
[0034] 數(shù)據(jù)集合11包括諸如數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 b 102的多個(gè)數(shù)據(jù)元素。這里, 假設(shè)數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 b 102被存儲(chǔ)在存儲(chǔ)器10中的相鄰存儲(chǔ)區(qū)中。此外,數(shù)據(jù) 集合12包括諸如數(shù)據(jù)元素 c 103和數(shù)據(jù)元素 d 104的多個(gè)數(shù)據(jù)元素。這里,假設(shè)數(shù)據(jù)元素 c 103和數(shù)據(jù)元素 d 104被存儲(chǔ)在存儲(chǔ)器10中的相鄰存儲(chǔ)區(qū)中。
[0035] 處理器20包括存儲(chǔ)單元21、存儲(chǔ)單元22和控制單元23。存儲(chǔ)單元21和22是諸 如寄存器、高速緩沖存儲(chǔ)器或緩沖器的存儲(chǔ)裝置。存儲(chǔ)單元21被劃分成至少區(qū)域201和 203。存儲(chǔ)單元21與數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 c 103關(guān)聯(lián)。此外,存儲(chǔ)單元22被劃分成 至少區(qū)域202和204。存儲(chǔ)單元22與數(shù)據(jù)元素 b 102和數(shù)據(jù)元素 d 104關(guān)聯(lián)。
[0036] 控制單元23針對(duì)每個(gè)數(shù)據(jù)集合共同地從存儲(chǔ)器10讀取存儲(chǔ)在相鄰存儲(chǔ)區(qū)中的多 個(gè)數(shù)據(jù)元素。這里,"共同地…讀取"相當(dāng)于在從控制單元23到存儲(chǔ)器10的一個(gè)存儲(chǔ)器訪 問(wèn)過(guò)程中讀取多個(gè)字。例如,在一個(gè)存儲(chǔ)器訪問(wèn)過(guò)程中,控制單元23從存儲(chǔ)器10讀取數(shù)據(jù) 集合11中包括的數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 b 102。在另一個(gè)存儲(chǔ)器訪問(wèn)過(guò)程中,控制單 元23從存儲(chǔ)器10讀取數(shù)據(jù)集合12中包括的數(shù)據(jù)元素 c 103和數(shù)據(jù)元素 d 104。
[0037] 控制單元23將讀取的數(shù)據(jù)元素分類到多個(gè)存儲(chǔ)單元21和22之中的對(duì)應(yīng)于數(shù)據(jù) 元素的存儲(chǔ)單元并且將數(shù)據(jù)元素寫(xiě)入各個(gè)數(shù)據(jù)集合。例如,控制單元23將針對(duì)數(shù)據(jù)集合11 讀取的數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 b 102分別分類到并且寫(xiě)入存儲(chǔ)單元21和22。此外,控 制單元23將針對(duì)數(shù)據(jù)集合12讀取的數(shù)據(jù)元素 c 103和數(shù)據(jù)元素 d 104分別分類到并且寫(xiě) 入存儲(chǔ)單元21和22。
[0038] 圖2是示出根據(jù)實(shí)施例1的數(shù)據(jù)收集方法的流程的流程圖。首先,處理器20的控 制單元23從存儲(chǔ)器10共同讀取存儲(chǔ)在存儲(chǔ)器10的相鄰區(qū)域中的第一數(shù)據(jù)元素和第二數(shù) 據(jù)元素(例如,數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 b 102) (Sll)。
[0039] 隨后,控制單元23將讀取的第一數(shù)據(jù)元素寫(xiě)入第一存儲(chǔ)單元(例如,存儲(chǔ)單元21) 的第一區(qū)域(例如,區(qū)域201) (S12)。此外,控制單元23將讀取的第二數(shù)據(jù)元素寫(xiě)入第二 存儲(chǔ)單元(例如,存儲(chǔ)單元22)的第一區(qū)域(例如,區(qū)域202) (S13)。區(qū)域202可以是對(duì)應(yīng) 于區(qū)域201的區(qū)域。此外,控制單元23可將讀取的第二數(shù)據(jù)元素寫(xiě)入存儲(chǔ)單元22的區(qū)域 204〇
[0040] 隨后,控制單元23從存儲(chǔ)器10共同讀取存儲(chǔ)在存儲(chǔ)器10的相鄰區(qū)域中的第三數(shù) 據(jù)元素和第四數(shù)據(jù)元素(例如,數(shù)據(jù)元素 c 103和數(shù)據(jù)元素 d 104) (S14)。
[0041] 控制單元23將讀取的第三數(shù)據(jù)元素寫(xiě)入第一存儲(chǔ)單元的第二區(qū)域(例如,區(qū)域 203) (S15)。此外,控制單元23將讀取的第四數(shù)據(jù)元素寫(xiě)入第二存儲(chǔ)單元的第二區(qū)域(例 如,區(qū)域204) (S16)。區(qū)域204可以是對(duì)應(yīng)于區(qū)域203的區(qū)域。這里,控制單元23可將讀取 的第三數(shù)據(jù)元素寫(xiě)入第一存儲(chǔ)單元的區(qū)域之中的除了至少在步驟S12中被寫(xiě)入數(shù)據(jù)的區(qū) 域之外的區(qū)域中。類似地,控制單元23可將讀取的第四數(shù)據(jù)元素寫(xiě)入第二存儲(chǔ)單元的區(qū)域 之中的除了至少在步驟S13中被寫(xiě)入數(shù)據(jù)的區(qū)域之外的區(qū)域中。
[0042] 圖3是示出包括根據(jù)實(shí)施例1的處理器20a的數(shù)據(jù)處理裝置1000 a的構(gòu)造的框圖。 當(dāng)針對(duì)下述情況而應(yīng)用如圖1的處理器20的構(gòu)造時(shí),使用處理器20a,所述情況是指:從三 個(gè)或更多個(gè)數(shù)據(jù)集合中的每個(gè)共同地讀取N個(gè)字(N是2或更大的自然數(shù)),并且存儲(chǔ)目的 地存儲(chǔ)單元的區(qū)域作為道(way)是關(guān)聯(lián)的。Q數(shù)據(jù)陣列(array [0]至array [Q-l]) (Q是2 或更大的自然數(shù))存儲(chǔ)在存儲(chǔ)器IOa中。每個(gè)數(shù)據(jù)陣列包括數(shù)據(jù)元素 a、b、…、和p。
[0043] 處理器20a包括控制單元23a和寄存器rgk、rgk+1、…和rg k+N i (k是自然數(shù)并且N 是2或更大的自然數(shù))。這里,假設(shè)寄存器rgk至rg k+N i中的每個(gè)被劃分成作為區(qū)域的多個(gè) 道wO、wl、…和wQ-1,各個(gè)寄存器的相同道彼此對(duì)應(yīng)。處理器20a從數(shù)據(jù)陣列array [0]共 同讀取N個(gè)字并且將各個(gè)數(shù)據(jù)元素寫(xiě)入各個(gè)寄存器找,至rg k+N i的道wO。此外,處理器20a 從數(shù)據(jù)陣列array[l]共同讀取N個(gè)字并且將各個(gè)數(shù)據(jù)元素寫(xiě)入各個(gè)寄存器rgk至rg k+N ^勺 道wl。處理器20a對(duì)數(shù)據(jù)陣列array[2]至array[Q_l]執(zhí)行相同處理。例如,處理器20a 從數(shù)據(jù)陣列array [Q-1]共同讀取N個(gè)字并且將各個(gè)數(shù)據(jù)元素寫(xiě)入各個(gè)寄存器找,至rg k+N i 的道wQ-1。
[0044] 以此方式,根據(jù)實(shí)施例1,當(dāng)收集存儲(chǔ)器10的不連續(xù)區(qū)域中存儲(chǔ)的多個(gè)數(shù)據(jù)組(諸 如,例如,由數(shù)據(jù)元素 a 101和數(shù)據(jù)元素 c 103形成的組和由數(shù)據(jù)元素 b 102和數(shù)據(jù)元素 d 104形成的組)時(shí),進(jìn)行數(shù)據(jù)加載過(guò)程所需的時(shí)間可減少。這是因?yàn)椋L問(wèn)連續(xù)(相鄰)存 儲(chǔ)器區(qū)域的結(jié)果被分類并且存儲(chǔ)在處理器中的第一存儲(chǔ)單元和第二存儲(chǔ)單元中,因此,不 必單獨(dú)執(zhí)行存儲(chǔ)器訪問(wèn)。此外,由于讀取的數(shù)據(jù)組被分類和存儲(chǔ)于對(duì)應(yīng)的存儲(chǔ)單元,因此不 必另外執(zhí)行將讀取的數(shù)據(jù)組重排的過(guò)程。因此,可有效執(zhí)行在存儲(chǔ)器和處理器中的存儲(chǔ)單 元之間加載數(shù)據(jù)的過(guò)程。
[0045] 〈實(shí)施例2>
[0046] 圖4是示出包括根據(jù)實(shí)施例2的處理器20b的數(shù)據(jù)處理裝置2000的構(gòu)造的框圖。 數(shù)據(jù)處理裝置2000包括存儲(chǔ)器10和處理器20b。存儲(chǔ)器10與圖1的存儲(chǔ)器相同,將不再 重復(fù)對(duì)其的冗余描述。
[0047] 處理器20b包括存儲(chǔ)單元21、存儲(chǔ)單元22和控制單元23b。存儲(chǔ)單元21和22具 有與圖1的構(gòu)造相同的構(gòu)造。也就是說(shuō),存儲(chǔ)單元21被劃分成至少區(qū)域201和203。此外, 存儲(chǔ)單元22被劃分成至少區(qū)域202和204。假設(shè)后續(xù)數(shù)據(jù)元素被預(yù)先存儲(chǔ)在存儲(chǔ)單元21 和22中。也就是說(shuō),數(shù)據(jù)元素 a和數(shù)據(jù)元素 c被分別存儲(chǔ)在存儲(chǔ)單元21的區(qū)域201和203 中。此外,數(shù)據(jù)元素 b和數(shù)據(jù)元素 d被分別存儲(chǔ)在存儲(chǔ)單元22的區(qū)域202和204中。
[0048] 控制單元23b從多個(gè)存儲(chǔ)單元21和22讀取存儲(chǔ)單元21和22中的對(duì)應(yīng)區(qū)域中存 儲(chǔ)的各個(gè)數(shù)據(jù)元素。這里,"對(duì)應(yīng)區(qū)域"意指例如存儲(chǔ)單元21的區(qū)域201對(duì)應(yīng)于存儲(chǔ)單元 22的區(qū)域202,存儲(chǔ)單元21的區(qū)域203對(duì)應(yīng)于存儲(chǔ)單元22的區(qū)域204。因此,例如,控制單 元23b分別從區(qū)域201和202讀取數(shù)據(jù)元素 a和數(shù)據(jù)元素 b。此外,控制單元23b將