信息處理裝置及數(shù)據(jù)構(gòu)造
【專利說明】信息處理裝置及數(shù)據(jù)構(gòu)造
[0001]本申請基于2014年3月13日提出的日本專利申請第2014 — 050584號并主張其優(yōu)先權(quán),這里引用其全部內(nèi)容。
技術(shù)領(lǐng)域
[0002]本發(fā)明的實施方式涉及信息處理裝置及數(shù)據(jù)構(gòu)造。
【背景技術(shù)】
[0003]以往,在矩陣元素的大部分是O的稀疏矩陣中,有想要僅通過將非零成分保持在存儲器中來抑制存儲器的使用量及帶寬的要求。目前,通過使用軟件的稀疏矩陣管理庫,實現(xiàn)了僅管理非零成分的值和其位置信息而抑制存儲器的使用量及帶寬的要求。
[0004]但是,這些處理由于通過軟件進行,所以當(dāng)對非零成分訪問時存在較大的開銷。此夕卜,當(dāng)對稀疏矩陣訪問時,如果不進行依據(jù)各個庫的數(shù)據(jù)管理方法的訪問,則花費大量的時間,所以不能與由通常的2維排列構(gòu)成的矩陣同樣地進行訪問,是不方便的。以往,存在進行管理以使得在DRAM上僅能夠保持非零成分的硬件,但是有改寫時的處理較復(fù)雜、開銷較大的問題。
[0005]另一方面,通常處理器或硬件引擎的處理速度比DRAM等的主存儲器的數(shù)據(jù)供給能力高,所以有時使用將其性能差填補的高速緩沖存儲器。高速緩沖存儲器是比主存儲器更高速的SRAM等的存儲器,在數(shù)據(jù)陣列上暫時存儲數(shù)據(jù)。處理器通過對高速緩沖存儲器上的數(shù)據(jù)進行訪問,能夠高速地進行處理。
[0006]在數(shù)據(jù)陣列上沒有數(shù)據(jù)的情況下,高速緩沖存儲器以比訪問的數(shù)據(jù)尺寸大的高速緩存行尺寸(cache line size)(例如256字節(jié))為單位從主存儲器取得數(shù)據(jù)。通過以較大的單位對主存儲器訪問,實現(xiàn)向主存儲器的訪問高效率化。另一方面,在數(shù)據(jù)陣列上有數(shù)據(jù)的情況下,高速緩沖存儲器能夠不從主存儲器取得數(shù)據(jù)而從數(shù)據(jù)陣列返回數(shù)據(jù),所以處理器或硬件弓I擎能夠高速地對數(shù)據(jù)進行訪問。
【發(fā)明內(nèi)容】
[0007]實施方式提供一種通過在高速緩沖存儲器上僅保持、管理非零數(shù)據(jù)從而能夠抑制存儲器使用量及帶寬的信息處理及數(shù)據(jù)構(gòu)造。
[0008]技術(shù)方案的信息處理裝置,具有:
[0009]輸入部,輸入針對塊行的規(guī)定范圍的、讀請求及寫請求,上述塊行具備至少大于等于I個的塊,上述塊由大于等于I個的元素構(gòu)成;
[0010]存儲部,在I個塊中的全部元素為零的零數(shù)據(jù)的區(qū)域中,存儲有管理信息,上述管理信息保存著在I個塊中非零元素大于等于I個的非零數(shù)據(jù)連續(xù)的數(shù)量、以及表示到下個非零數(shù)據(jù)的距離的信息;
[0011]讀控制部,在上述讀請求被輸入時,從上述存儲部讀取包括上述管理信息的讀數(shù)據(jù),參照上述管理信息,僅輸出在上述塊行的規(guī)定范圍中包含的上述非零數(shù)據(jù);以及
[0012]寫控制部,在上述寫請求被輸入時,僅將上述數(shù)據(jù)中的在I個塊中有大于等于I個非零元素的非零數(shù)據(jù)寫入存儲部,并且更新以下管理信息:從比上述規(guī)定范圍小的位置開始的連續(xù)的非零數(shù)據(jù)中的、從最大的位置開始的上述連續(xù)的非零數(shù)據(jù)的開始位置向前I個的管理信息;在上述規(guī)定范圍中保存的最后的管理信息;以及上述規(guī)定范圍的最后的管理信息。
[0013]此外,實施方式的數(shù)據(jù)構(gòu)造是,
[0014]具備至少大于等于I個的塊在內(nèi)的塊行的數(shù)據(jù)構(gòu)造,上述塊由大于等于I個的元素構(gòu)成,
[0015]在I個塊中的全部元素為零的零數(shù)據(jù)的區(qū)域中,保存有管理信息,上述管理信息表示在I個塊中非零元素大于等于I個的非零數(shù)據(jù)連續(xù)的數(shù)量、以及到下個非零數(shù)據(jù)的距離。
[0016]根據(jù)實施方式,能夠提供一種通過在高速緩沖存儲器上僅保持、管理非零數(shù)據(jù)從而能夠抑制存儲器使用量及帶寬的信息處理及數(shù)據(jù)構(gòu)造。
【附圖說明】
[0017]圖1是表示具備有關(guān)本實施方式的信息處理裝置的計算機系統(tǒng)的結(jié)構(gòu)的圖。
[0018]圖2是用來說明在本實施方式中進行處理的矩陣的圖。
[0019]圖3是用來說明矩陣的處理單位的圖。
[0020]圖4是用來說明塊行的管理方法的圖。
[0021]圖5是用來說明使用的存儲器空間的例子的圖。
[0022]圖6是用來說明矩陣地址中的比特配置的例子的圖。
[0023]圖7是用來說明矩陣管理引擎4的詳細(xì)的結(jié)構(gòu)的圖。
[0024]圖8是用來對地址變換的處理進行說明的圖。
[0025]圖9是用來說明寫請求的例子的圖。
[0026]圖10是用來說明Read Ctrl (讀Ctrl) 23a的詳細(xì)的結(jié)構(gòu)的圖。
[0027]圖11是用來說明讀取S[m] [n0]?S[m] [nl]的數(shù)據(jù)的處理的流程的例子的流程圖。
[0028]圖12是用來說明讀取S[m] [nO]?S[m] [nl]的數(shù)據(jù)的處理的流程的例子的流程圖。
[0029]圖13是用來說明Write Ctrl (寫Ctrl) 24a的詳細(xì)的結(jié)構(gòu)的圖。
[0030]圖14是用來說明對第m行的塊行的nO塊列?nl塊列寫入數(shù)據(jù)的處理的流程的例子的流程圖。
[0031]圖15是用來說明非零數(shù)據(jù)列B及A的探索處理的流程的例子的流程圖。
[0032]圖16是用來說明非零數(shù)據(jù)列B的開始位置一 I的位置的非零管理信息的更新及寫數(shù)據(jù)的寫入處理的流程的例子的流程圖。
[0033]圖17是用來說明非零數(shù)據(jù)列B的開始位置一 I的位置的非零管理信息的更新及寫數(shù)據(jù)的寫入處理的流程的例子的流程圖。
[0034]圖18是用來說明最后的非零管理信息的更新及nl列的非零管理信息的更新處理的流程的例子的流程圖。
[0035]圖19是用來對Write Ctrl 24a的寫動作進行說明的圖。
[0036]圖20是用來對Write Ctrl 24a的寫動作進行說明的圖。
【具體實施方式】
[0037]實施方式的信息處理裝置具有輸入部、存儲部、讀控制部和寫控制部。在輸入部中,輸入針對塊行的規(guī)定范圍的、讀請求及寫請求,上述塊行具備至少大于等于I個的塊,上述塊由大于等于I個的元素構(gòu)成。在存儲部中,在I個塊中的全部元素為零的零數(shù)據(jù)的區(qū)域中,存儲有管理信息,上述管理信息保存著在I個塊中非零元素大于等于I個的非零數(shù)據(jù)連續(xù)的數(shù)量、以及表示到下個非零數(shù)據(jù)的距離的信息。在讀請求被輸入時,讀控制部從存儲部讀取包含管理信息的讀數(shù)據(jù),參照管理信息,僅輸出塊行的規(guī)定范圍中包含的非零數(shù)據(jù)。寫控制部僅將數(shù)據(jù)中的在I個塊中非零元素大于等于I個的非零數(shù)據(jù)寫入存儲部,并且更新以下管理信息:從比規(guī)定范圍小的位置開始的連續(xù)的非零數(shù)據(jù)中的、從最大的位置開始的連續(xù)的非零數(shù)據(jù)的開始位置向前I個的管理信息;保存在規(guī)定范圍中的最后的管理信息;以及規(guī)定范圍的最后的管理信息。
[0038]以下,參照附圖對本發(fā)明的實施方式詳細(xì)地進行說明。
[0039]對具備有關(guān)本實施方式的信息處理裝置的計算機系統(tǒng)進行說明。圖1是具備有關(guān)本實施方式的信息處理裝置的計算機系統(tǒng)的結(jié)構(gòu)圖。計算機系統(tǒng)I包括中央處理裝置(以下稱作CPU)2、硬件引擎(以下稱作HWE)3、矩陣管理引擎4、高速緩存5、地址變換部6、互連部7、主存儲器8和輸入輸出裝置(以下稱作1/0)9。
[0040]作為信息處理裝置的矩陣管理引擎4連接在CPU 2、HWE 3及高速緩存5上。高速緩存5經(jīng)由地址變換部6連接在互連部7上。該互連部7還連接在主存儲器8及I/O 9上。主存儲器8例如是DRAM。
[0041]向計算機系統(tǒng)I的輸入數(shù)據(jù)經(jīng)由I/O 9、互連部7而被向主存儲器8傳送。傳送后的輸入數(shù)據(jù)被向CPU 2及HWE 3傳送從而被處理。由CPU 2或HWE 3處理后的輸出數(shù)據(jù)經(jīng)由主存儲器8、互連部7、I/O 9輸出。
[0042]計算機系統(tǒng)I在對矩陣以外的數(shù)據(jù)進行訪問的情況下,不經(jīng)由矩陣管理引擎4,而從CPU 2或HWE 3直接對主存儲器8 (或高速緩存5)進行訪問。另一方面,在對矩陣進行訪問的情況下,矩陣管理引擎4進行處理。
[0043]對在本實施方式中進行處理的矩陣的一例進行說明。圖2是用來說明在本實施方式中進行處理的矩陣的圖,圖3是用來說明矩陣的處理單位的圖。
[0044]圖2的矩陣是由16行X52列的832個元素構(gòu)成的2維的稀疏矩陣S。并且,在本實施方式中,以稀疏矩陣S的規(guī)定尺寸管理零/非零。規(guī)定尺寸大于等于I元素,例如如圖3所示,是4X4的16元素單位。將該單位稱作塊。關(guān)于稀疏矩陣S中的4X4的塊,用S[y] [X] (X = I?13,y = I?4)表示。x是橫(列)方向的塊號碼,取I?稀疏矩陣S的列數(shù)/4(小數(shù)進位)的范圍。y是縱(行)方向的塊號碼,取I?稀疏矩陣S的行數(shù)/4(小數(shù)進位)的范圍。
[0045]這里,作為塊單位的零/非零的定義,將I塊全部元素為O的情況設(shè)為零,將在I塊中即便有I個不是O的元素的情況就設(shè)為非零。例如,S[l][l]及S[l][4]由于16元素全部是0,所以為零。另一方面,在如S[l] [2]那樣16元素中即便有I個不是O的情況、或如s [I] [3]那樣16元素的全部不是O的情況下,為非零。
[0046]在本實施方式中,以塊行為單位進行非零的管理。另外,即使稀疏矩陣S是大于等于3維的矩陣,通過用I維的塊行單位管理,也能夠同樣進行管理。在本實施方式中,如圖3所示,將S[l][l]?S[l][13]作為I個塊行BI,進行非零的管理。關(guān)于其他的塊行B2、B3及B4也分別同樣地進行非零的管理。
[0047]圖4是用來說明塊行的管理方法的圖。在塊行的非零管理中,與矩陣數(shù)據(jù)不同地使用I個塊的量的存儲器區(qū)域(以下,稱作非零管理區(qū)域),配置到塊行的開頭。以后,將非零管理中的塊位置用R[y][x]表示。X是橫(列)方向的塊號碼,y是縱(行)方向的塊號碼。在圖 4 中,是 R[y][x](x = 0?13,y= I ?4)。塊行 BI 使用 R[l] [O]?R[l][13]。
[0048]關(guān)于非零數(shù)據(jù)配置為,使稀疏矩陣S上的位置與塊位置R上的位置成為相同。例如,關(guān)于稀疏矩陣S上的作為非零數(shù)據(jù)的S[l] [2],配置在R[l] [2],關(guān)于S[l] [6],配置在R[l] [6]。
[0049]并且,非零數(shù)據(jù)的位置信息(以下,稱作非零管理信息)配置在零數(shù)據(jù)的位置。更具體地講,在大于等于I個的連續(xù)的非零數(shù)據(jù)向前I個的零數(shù)據(jù)的位置處配置非零管理信息。另外,在本實施方式中,在連續(xù)的非零數(shù)據(jù)向前I個的零數(shù)據(jù)的位置處記錄I個非零管理信息,但也可以在I個零數(shù)據(jù)的位置處配置多個非零數(shù)據(jù)的位置信息。
[0050]非零管理信息由參數(shù)(Num,Next)構(gòu)成。Num表示連續(xù)的非零數(shù)據(jù)的塊數(shù),Next表示到下個非零數(shù)據(jù)的距離(塊數(shù))。但是,在Next為O的情況下,表示下個連續(xù)的非零數(shù)據(jù)在塊行中不存在。另外,在圖4中,非零管理信息使用相對距離,但也可以使用絕對坐標(biāo)(塊位置X)。
[0051]例如,從圖4的S[l] [2]開始的非零數(shù)據(jù)的列的非零管理信息被配置在作為零數(shù)據(jù)的R[l][l]中。由于R[l][2]及R[l][3]為非零,所以Num為2。此外,由于下個非零數(shù)據(jù)的列從R[l] [6]開始,所以Next為4( = 6 — 2)。由此,保存到R[l] [I]中的非零管理信息為(2,4) ο
[0052]在I塊列額外地確保的非零管理區(qū)域R[l] [O]中,記錄關(guān)于從行頭R[l] [I]起的數(shù)據(jù)的非零管理信息。例如,塊行BI由于行開頭R[l][l]為零數(shù)據(jù),所以R[1][0]的Num為0,Next為到從R[l] [2]開始的非零數(shù)據(jù)的距離I ( = 2 — I)。
[0053]另一方面,塊行B2由于R[2][l]為非零數(shù)據(jù),所以R[2] [O]的Num為從R[2] [I]起的非零數(shù)據(jù)數(shù)。即,塊行B2的非零管理區(qū)域R[2][0]的Num為1,Next為到下個非零數(shù)據(jù)的距尚2 ( = 3 — I)。
[0054]此外,在如塊行B3那樣塊行全部為非零的情況下,非零管理區(qū)域R[3] [O]的數(shù)據(jù)為(13,O)。另一方面,在如塊行B4那樣塊行全部為零的情況下,非零管理區(qū)域R[4] [O]的數(shù)據(jù)為(0,0)。
[0055]矩陣管理引擎4按照管理的每個矩陣而具有