TWI533208B - Data processing device, data processing system, packet, recording medium, memory device and data processing method - Google Patents

Data processing device, data processing system, packet, recording medium, memory device and data processing method Download PDF

Info

Publication number
TWI533208B
TWI533208B TW099139208A TW99139208A TWI533208B TW I533208 B TWI533208 B TW I533208B TW 099139208 A TW099139208 A TW 099139208A TW 99139208 A TW99139208 A TW 99139208A TW I533208 B TWI533208 B TW I533208B
Authority
TW
Taiwan
Prior art keywords
packet
data
information
processing
recorded
Prior art date
Application number
TW099139208A
Other languages
English (en)
Other versions
TW201120745A (en
Inventor
Mitsuru Mushano
Original Assignee
Mush A Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mush A Co Ltd filed Critical Mush A Co Ltd
Publication of TW201120745A publication Critical patent/TW201120745A/zh
Application granted granted Critical
Publication of TWI533208B publication Critical patent/TWI533208B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Description

資料處理裝置、資料處理系統、封包、記錄媒體、記憶裝置及資料處理方法
本發明係有關於資料處理裝置、資料處理系統、封包、記錄媒體、記憶裝置及資料處理方法。
作為電腦架構,從記憶裝置(記憶體)中將指令依序讀出(fetch)、解讀(decode)、執行(execute)的馮紐曼型架構,係為一般熟知。該當馮紐曼型架構,係預先決定指令的執行順序,每次都將運算元(運算對象之資料)一面集結一面進行處理,是一種指令中心的處理體系。
又,於馮紐曼型電腦中,作為將複數指令予以平行處理的CPU(Central Processing Unit:中央處理裝置)架構,熟知的有超純量處理器。該當超純量處理器,係按照運算元的抵達順序,對執行節點發行(issue)指令並執行之,可進行非循序執行(out of order)處理。然而,在超純量處理器中,由於排程器是一面檢查資料依存性一面將執行結果排序成正確的順序,因此同時可執行之指令數的增加,會導致排程器的複雜化。
另一方面,作為非馮紐曼型架構,有著眼於資料依存性,依照資料流(資料的流動)而進行處理的資料驅動型架構,為人所知。該當資料驅動型架構,係在執行節點中湊齊了運算元的時點上發動點火(fire),把指令的執行 結果傳送至下個執行節點,藉此而可將許多的指令予以平行處理。
例如,在專利文獻1中係揭露,在處理器間的控制上採用資料驅動型(於專利文獻1中係稱作資料流機械型)架構,在處理器內的控制上採用馮紐曼型架構的多處理器系統。該當多處理器系統,係藉由將資料驅動型及馮紐曼型架構加以組合使用,就不必使用複雜的硬體構成,基於被分割成執行緒而生成的執行碼,就能進行平行處理。
又,例如,在非專利文獻1中係揭露了TRIPS(Tera-op Reliable Intelligently advanced Processing System)架構。該當TRIPS架構,係為稱作磚疊式處理器的晶片架構,和稱作EDGE(Explicit Data Graph Execution)的ISA(Instruction Set Architecture:指令集架構)所組合而成。其中,磚疊式處理器,係藉由僅在相鄰核心間作配線,而可避免配線延遲的間題,即使核心數增加仍可保持高速動作速度。另一方面,EDGE架構,係將指令對執行節點作靜態配置,和資料流型架構同樣地,在執行節點中湊齊了運算元的時點上加以執行,藉此以謀求處理平行性的最大限度提升。
如此一來,把上述的電腦架構予以單獨、或組合使用,就可將複數指令予以平行處理。
[先前技術文獻] [專利文獻]
[專利文獻1]日本特開2007-193430號公報
[非專利文獻]
[非專利文獻1]Doug Burger, et al., "Scaling to the End of Silicon with EDGE Architectures," IEEE Computer, vol. 37, no. 7, pp. 44-55, July 2004
平行電腦,係藉由採用上記的資料驅動型架構,就可將許多指令進行平行處理。然而,在資料驅動型架構下,係使用與馮紐曼型架構不同的指令集,因此既存的馮紐曼型電腦用的軟體資產,不能直接利用。
為了將既存之軟體資產在平行電腦上作利用,例如,必須要有從馮紐曼型電腦用原始程式生成平行電腦用執行碼的編譯器技術。然而,使用該當編譯器技術時的處理平行性,係受編譯器的性能所左右,在平行性的提升時會伴隨著編譯器的複雜化,有時也會導致編譯時間的增加。又,上記專利文獻1中,為了以程式處理裝置來生成多處理器系統用的執行碼,必須要在以C語言等之高階語言所撰寫成的原始程式中,預先追加執行緒描述。
又,例如,必須要有一面將馮紐曼型電腦用原始程式逐次解譯一面加以執行的解譯器技術。然而,和編譯器技術的情形相同,在處理平行性的提升時會伴隨著解譯器的複雜化,有時也會導致解譯器的動作速度降低。甚至,即 使沒有伴隨著編譯器或解譯器的複雜化,有時仍會導致平行電腦本身的複雜化或動作速度的降低。
因此,平行電腦中的平行性之提升,會招來將既存之軟體資產利用於平行電腦所需之成本的上升,而呈現取捨關係。
解決前述課題的主要之本發明,係一種資料處理裝置,其特徵為,具備複數處理部,係用來處理對每一資料附加上擴充識別資訊而成的封包,該擴充識別資訊係含有:用來識別該當資料的識別資訊、及表示對該當資料之1個以上之處理指令的指令資訊;前記複數處理部,係分別具有:輸出入部,係在前記封包當中,僅將隨著前記擴充識別資訊而決定的目的地資訊是表示著該當處理部的封包,加以取得;和運算部,係將已被前記輸出入部所取得之前記封包的前記處理指令,加以執行。
關於本發明的其他特徵,係由添附圖面及本說明書之記載就能明瞭。
若依據本發明,則可將既存之軟體資產概略地直接利用,而使處理平行性提升。
根據本說明書及添附圖面的記載,至少可以明瞭以下事項。
===資料處理系統全體構成之概略===
以下,參照圖2,說明具備資料處理裝置的資料處理系統全體構成之概略。
圖2所示的資料處理系統,係為具備資料處理裝置1的平行電腦系統,除了資料處理裝置1以外,還含有記憶裝置6、輸入裝置7、輸出裝置8、及匯流排9所構成。又,資料處理裝置1、記憶裝置6、輸入裝置7、及輸出裝置8,係透過匯流排9而彼此連接。此外,關於資料處理裝置1之構成的詳細說明,將於後述。
===資料處理系統全體動作之概略===
接著,說明資料處理系統全體動作之概略。
記憶裝置6,係由RAM(Random Access Memory)或ROM(Read Only Memory)等所構成,係將程式(執行碼)或該當程式之執行時所使用的資料等,加以記憶。又,資料處理裝置1,係相當於電腦系統的CPU,會執行記憶裝置6中所記憶的程式。此外,關於資料處理裝置1之動作的詳細說明,將於後述。
輸入裝置7,係由鍵盤或滑鼠等所構成,含有資料或程式(原始程式或執行碼)的資訊,是從外部輸入至該當資料處理系統。另一方面,輸出裝置8係由顯示器或印表 機等所構成,是將資訊以文字或影像等而輸出至外部。
此外,上記資料處理裝置1、記憶裝置6、輸入裝置7、及輸出裝置8的分類,係並非固定。例如,硬碟機或光碟機等之輔助記憶裝置,係被當成記憶裝置6來使用,但亦可分類成與外部間作資訊輸出入用的輸入裝置7及輸出裝置8。
===資料處理裝置之構成===
以下,參照圖3,說明本發明之一實施形態中的資料處理裝置之構成。
圖3所示的資料處理裝置1,係含有:PE(Processor/Processing Element:處理要素/處理元件)100至115、MCE(Memory Control/Controlling Element:記憶體控制要素/記憶體控制要素)300至303、快取記憶體400、及通訊路(傳輸路)500所構成。
資料處理裝置1,係具備複數個相當於處理部的PE,各PE是透過通訊路500而彼此連接。在本實施形態中,作為一例,假設資料處理裝置1係為具備被配置成4行4列之矩陣狀的16個PE100至115。又,和前述的磚疊式處理器同樣地,PE100至115,係僅在相鄰的PE間有被彼此連接。此外,關於各PE之構成的詳細說明,將於後述。
此處,若將PE100至115的座標(X,Y),如圖3所示,分別表示成(0,0)至(3,3),則對各PE係可設定 X座標為上位2位元、Y座標為下位2位元的識別號碼。又,如此所被設定的識別號碼,係與圖3所示之各PE的3位數符號的下2位數一致。例如,位於座標(0,3)的PE103的識別號碼係為3(2進位表示為0011),位於座標(3,0)的PE112的識別號碼係為12(2進位表示為1100)。
資料處理裝置1,係具備至少1個相當於控制部的MCE,各MCE是透過通訊路500被連接至PE100至115之任一個。在本實施形態中,作為一例,假設資料處理裝置1係為具備4個MCE300至303。又假設,MCE300至303,係分別與相鄰的PE100至103作連接。此外,如圖3所示,對MCE300至303,分別設定有0至3的識別號碼。
快取記憶體400,係與MCE300至303作連接。又,快取記憶體400,係透過前述的匯流排9(未圖示),而和資料處理裝置1外的記憶裝置6作連接。
===通訊路之構成及動作之一例===
通訊路500係為PE間或PE及MCE間的資訊傳達媒體,在該當資訊傳達上,除了以電氣配線所致之電氣訊號的傳達以外,亦包含以光纖所致之光訊號之傳達、或自由空間中的電磁波之傳達。此處,將使用電磁波、尤其是使用光來進行資訊傳達之情形的通訊路500之構成的一例,示於圖13。此情況下,各PE係含有,具備發光元件之至 少1個送訊部,及具備受光元件之至少1個收訊部。又,於圖13中,發光元件212係被含有在資訊傳達來源的PE裡,受光元件213係被含有在資訊傳達目標的PE裡。
圖13所示的通訊路500,係由讓光透過的穿透材501、將光予以反射的反射材502、及吸收光的吸收材503所成。穿透材501及反射材502,係分別相當於光纖中的芯(core)及外殼(cladding),是採用石英玻璃或塑膠等。又,係被構成為,穿透材501的折射率是高於反射材502的折射率,光訊號會一面被反射材502作全反射而一面在穿透材501中被傳達。
受光元件213,係採用OCF(On-chip Color Filter)等,是被構成為可接收對每一PE所設定之波長的光。此情況下,發光元件212所發光的光之波長係為可變,藉由與傳達目標PE所被設定之波長呈一致,就能傳達封包。又,即使交替切換使用會發出不同波長光的複數發光元件,仍只要傳達來源及傳達目標之PE所被設定的波長一致,就能傳達封包。
此外,各PE所被設定之波長,係可使用從紫外線波段至紅外光波段的任意波段。然而,隨著穿透材501及反射材502所使用的材料,紫外線會被吸收、降低穿透率,因此使用可見光波段至紅外光波段的波長,較為理想。
===資料處理裝置之動作===
接著,適宜參照圖4至圖8,說明本實施形態中的資 料處理裝置之動作。
快取記憶體400,係一面進行快取,一面控制著MCE300至303與記憶裝置6之間的輸出入。因此,記憶裝置6中所記憶之程式或資料等,係會透過快取記憶體400而被讀取至MCE300至303。
此處,原始程式與資料處理裝置1中所被處理之程式(執行碼)之關係之一例,示於圖4。以高階語言所撰寫成的原始程式P0,係事先被編譯成執行碼P1然後記憶在記憶裝置6中,執行碼P1係會被讀取到MCE300至303裡。此外,於圖4中,作為原始程式P0之一例,圖示了以C++語言所撰寫成的,將陣列sp[1024]之各要素除以2後的值儲存在陣列dp[1024]中的處理。又,執行碼P1係不僅可為機械語言程式,也可以是用和機械語言約略1對1對應的組合語言所撰寫成的程式。
MCE300至303,係從所被讀取的執行碼P1,基於資料流程圖,生成後述的封包列。此外,各MCE是沒有必要生成資料流程圖本身,但在本實施形態中係為了說明上的方便,而假設首先會生成資料流程圖,然後基於資料流程圖而生成封包列。
此處,資料處理裝置1中所採用之指令集之一例,示於圖5。於圖5中,各指令係大致分成2輸入.1輸出指令與1輸入.1輸出指令。其中,2輸入.1輸出指令,係將所被輸入的2筆資料分別當成左側及右側運算元而進行2項運算的指令。另一方面,1輸入.1輸出指令,係 將所被輸入的1筆資料當成運算元而進行單項運算的指令。又,如圖5所示,對各指令,設定有相當於運算子(operator)的記號和機械語言中的16進位表示,這些將在資料流程圖或封包列的說明中被使用。
首先說明2輸入.1輸出指令。
對於會將2筆資料(A及B)的加算結果(A+B或B+A)予以輸出的加算指令,設定有記號「+」與16進位表示的10H。另一方面,當是將2筆資料(L及R)的減算結果(L-R)予以輸出的減算指令時,由於減算是交換法則不成立的非可換運算,因此必須要有表示把各資料視為左側或右側運算元之何者用的左右資訊(方向資訊)。因此,對減算指令的記號「-」,還會附加上左右資訊「L」或「R」,且分別設定有16進位表示12H或13H。
此外,左右資訊「L」係表示這是身為左側運算元的資料,左右資訊「R」係表示這是身為右側運算元的資料。又,於該當指令集中,各指令的LSB(Least Significant Bit:最下位位元)是被指派給左右資訊專用。因此,在以下的指令(除了null文字以外)中,均為具有左右資訊「L」之指令及不具有左右資訊之指令的LSB是設為0,據有左右資訊「R」之指令的LSB是設為1。
對於會將2筆資料(A及B)的乘算結果(A×B或B×A)予以輸出的乘算指令,設定有不具左右資訊之記號「×」與16進位表示的14H。另一方面,對於會將2筆資 料(L及R)的除算結果(L÷R)予以輸出的除算指令,設定有被附加左右資訊之記號「÷L」及「÷R」,和16進位表示16H及17H。
被設定有附加左右資訊之記號「writeL」及「writeR」、和16進位表示18H及19H的寫入指令,係為對資料(L)所示之記憶裝置6之位址中所記憶的資料(*L),寫入資料(R)用的指令。此外,「*」係為間接參照運算子。
被設定有附加左右資訊之記號「app1L」及「app1R」、和16進位表示50H及51H的資料追加指令,係為對後述的封包(L)之資料部分,追加封包(R)之資料部分用的指令。又,被設定有附加左右資訊之記號「app2L」及「app2R」、和16進位表示52H及53H的指令追加指令,係為對後述的封包(L)之處理指令部分,追加封包(R)之資料部分用的指令。
接著說明1輸入.1輸出指令。此外,1輸入.1輸出指令,係只將1筆資料當成運算元,因此均不具有左右資訊。
被設定有記號「NOP」與16進位表示00H的NOP指令,係為不做任何事的指令。又,被設定有記號「read」和16進位表示02H的讀出指令,係為將資料(A)所示之記憶裝置6之位址中所記憶的資料(*A)予以讀出用的指令。此外,雖然並非指令,但作為表示封包尾端的null文字,而設定有例如16進位表示FFH。
各MCE,係使用圖5所示的指令集,和一般的資料驅動型架構同樣地,生成資料流程圖。圖6係圖示由執行碼P1所生成的資料流程圖,係對應於圖4所示之原始程式P0的for迴圈內的處理。
於圖6中,D1至D5係表示資料,I1至I5係表示指令。加算指令I4,係將資料D1(dp)及資料D2(ii)予以加算,將資料dp+ii予以輸出,加算指令I1,係將資料D3(sp)及資料D4(ii)予以加算,將資料sp+ii予以輸出。又,讀出指令I2,係從記憶裝置6讀出資料*(sp+ii)。然後,除算指令I3,係將資料*(sp+ii)除以資料D5(2),將資料*(sp+ii)/2予以輸出。然後,寫入指令I5,係對記憶裝置6的資料*(dp+ii),將資料*(sp+ii)/2予以寫入。
藉由以上的資料流,陣列sp[1024]的1個要素除以2後的值,會被儲存在陣列dp[1024]中。圖7係圖示了,基於圖6所示的資料流程圖所生成的基本封包列。
各封包係由資料部分(data section)與擴充識別資訊部分(extended identification information section)所成。又,擴充識別資訊部分係由識別資訊部分(identification information section)與處理指令部分(processing instructions section)所成。此外,各封包係亦可為了加密或壓縮等目的而被適宜地編碼。
資料部分,係除了資料本體以外,還含有該當資料的資料長度資訊。又,資料長度資訊,係例如表示資料的位 元組數,但若資料處理裝置1僅處理固定長度資料的時候,則可免除。
識別資訊部分,係含有例如MCE ID及處理ID。在這其中,處理ID係對每一基本封包列作設定,因此圖7中係為空(null文字),是在將for迴圈予以展開之際所被設定。另一方面,MCE ID係為相當於表示生成該當基本封包列之MCE用的發行者資訊,例如採用圖3所示的0至3的識別號碼。又,於基本封包列中,亦可如圖7所示,將MCE ID設成空,在for迴圈展開之際,才將MCE ID連同處理ID一起加以設定。
在本實施形態中,作為一例,處理指令部分是除了含有5個為止的指令1至5以外,還含有指令數資訊。又,各指令係為,與執行順序顛倒之順序而排列,應最先被執行之指令是被配置在最末尾,其後係設成空。甚至,指令數資訊雖然是表示未處理之指令數,但亦可按情形而加以計數。
由圖7可知,該當基本封包列,係將圖6所示的資料流程圖,按照5個資料D1至D5一一加以重新構成而成,各封包係為,對該當資料附加上識別資訊及處理指令而被生成。然後,各MCE係先將對反覆處理等之基本封包列的控制指令予以展開後,將各封包發行至相鄰的PE。圖8係圖示了,對圖7所示的基本封包列,將for迴圈予以展開後的封包列。
如圖4所示,因為該當for迴圈係為從ii=0至 ii=1023為止的重複處理,因此藉由展開,會生成5×1024個封包。又,如圖8所示,每5封包係含有1至1024為止的同一處理ID,該當5封包是分別對應於圖7所示的基本封包列。此外,於圖8中係作為一例而圖示了,MCE ID係為1,各封包是由MCE301所生成的情形。
從MCE301所發行的各封包,係在PE100至115當中,一路到後述的目的地資訊所示的PE為止,透過通訊路500而被傳達。又,各PE係相當於,將封包中所含之處理指令加以執行的執行節點。此外,關於各PE之動作的詳細說明,將於後述。
如以上所述,本實施形態的資料處理裝置,係把身為運算元的資料與身為運算子的指令視為一體的封包,當作處理對象,這點是和先前的電腦架構有很大差異。
此外,本發明的資料處理裝置係不限定於,如本實施形態所示,具備根據以機械語言或組合語言所撰寫成的執行碼P1來生成封包列之MCE之構成。
例如,亦可為,在記憶裝置6中是記憶著,作為從原始程式P0編譯成執行碼P1之際的中間階段所生成的中間碼,而以語法樹(syntax tree)所表現成的程式。在語法樹中,運算元是被配置在葉節點(leaf node),運算子是被配置在內部節點(internal node)而呈現樹狀結構,因此相較於機械語言或組合語言,較容易生成資料流程圖。
又,例如,亦可在記憶裝置6中記憶著,由具備編譯器之外部裝置所預先生成之基本封包列(sequences of base packets)或展開後的封包列(sequences of expanded packets)。當記憶著基本封包列時,各MCE係將對於已被讀取之基本封包列的控制指令予以展開,將MCE ID或處理ID加以設定後,將各封包發行至相鄰的PE。另一方面,當記憶著展開後之封包列時,則各MCE係可將各封包直接發行至相鄰的PE。
又,例如,亦可在記憶裝置6中記憶著,展開後之封包列當中,識別資訊部分之部分或全部被省略、或被設成null文字的中間封包列(sequences of interim packets)。此情況下,各MCE係先把被省略的MCE ID或處理ID加以設定後,才將各封包發行至相鄰的PE。
甚至亦可為,例如,展開後之封包列是從外部裝置直接輸入資料處理裝置。此情況下的外部裝置中,亦可含有會平行動作的其他資料處理裝置。
此處,原始程式與資料處理裝置1中所被處理之程式(執行碼)之關係之其他例,示於圖14。此情況下,編譯器係根據以高階語言所撰寫成的原始程式P0,基於資料流程圖而生成基本封包列,然後,將對該當基本封包列的控制指令予以展開。又,在記憶裝置6中,該當展開後的封包列係被適宜編碼之後,成為執行碼P2而被記憶。然後,在MCE300至303中,執行碼P2係被讀入。
===PE(處理要素)之構成===
以下,參照圖1,說明本實施形態的PE之構成。
圖1所示的PE100至115,係分別含有輸出入部210、比較選擇部230、緩衝記憶體240、運算元緩衝區250a、250b、及ALU(Arithmetic Logic Unit:算術邏輯運算部)260所構成。
輸出入部210係含有:目的地資訊算出部211、輸出埠214a至214d、及輸入埠215a至215d。又,對輸出入部210,係透過各輸入埠,輸入著封包或從記憶裝置6所讀出之資料等。再者,從輸出入部210,係透過各輸出埠,輸出著封包或要寫入至記憶裝置6之資料等。然後,各輸出入埠(輸入埠及輸出埠),係透過前述的通訊路500(未圖示),而和相鄰的PE或MCE作連接。
例如,以圖3的PE110為例,4組的輸出入埠,係分別和PE109、106、111、及114連結。又,例如PE100的情況,2組輸出入埠,係分別與PE101及104連接,1組輸出入埠係與MCE300連接,然後,1組輸出入埠係不使用。
又,亦可例如圖15所示,各輸出入埠是具備複數通道,使用該當複數通道,在相鄰的PE間或PE及MCE間,將封包或資料等予以輸出入之構成。
此外,使用光來進行資訊傳達時,例如,圖13的發光元件212係被設在各輸出埠,受光元件213係被設在各輸入埠。
對比較選擇部230,係從輸出入部210,輸入著封包。又,比較選擇部230係含有雜湊值算出部231,在與 相當於記憶部的緩衝記憶體240之間,進行封包輸出入。再者,從比較選擇部230,係透過運算元緩衝區250a及250b,而將具有分別作為左側及右側運算元之資料的封包,輸入至相當於運算部的ALU260。然後,由ALU260所新生成的封包,係再次被輸入至輸出入部210。
===PE(處理要素)之動作===
接著,適宜參照圖9至圖11,說明本實施形態中的PE之動作。
輸出入部210,係首先將目的地資訊算出部211所輸入之封包的目的地資訊,予以算出。目的地資訊,係為表示應處理封包之PE的資訊,可從該當封包的擴充識別資訊部分求出。此處,參照圖9,說明圖8中MCE ID=1、且處理ID=1,最初5封包的目的地資訊的算出方法。以下,如圖9所示,將該當5封包分別令作封包P1至P5。
目的地資訊算出部211,係首先從各封包僅把擴充識別資訊部分予以抽出(圖9中段),在各擴充識別資訊資訊當中,將應被最初執行之指令的左右資訊,加以遮蔽(圖9下段)。如前述,在本實施形態中,應被最初執行之指令是被配置在封包的最末尾,各指令的LSB係被指派給左右資訊專用。因此,只要將擴充識別資訊的最後1位元以0或1(於圖9中係為0)加以遮蔽即可。此外,擴充識別資訊中亦可含有null文字,此情況下,只要將null文字前面1位元以後加以遮蔽即可。
目的地資訊算出部211,接下來會基於上記已被遮蔽的擴充識別資訊而生成擬似(疑似)亂數,隨應於該當擬似亂數,而算出目的地資訊。例如,若0至15(2進位表示為0000至1111)的4位元之值被當成目的地資訊而算出,則該當目的地資訊係和圖3的各PE之座標同樣地,可以上位2位元為X座標、下位2位元為Y座標的座標(X,Y)形式來表示。在圖9下段中,將目的地資訊以該當座標之形式而加以表示。
擬似亂數係和實體亂數不同,具有重現性,因此從已被遮蔽的擴充識別資訊為相同的封包,係會生成出同一擬似亂數,而算出同一目的地資訊。例如圖9下段所示,從已被遮蔽的擴充識別資訊為相同的封包P1及P2,係會算出同一目的地資訊(x1,y1)。又,同樣地,從封包P3及P4,係會算出同一目的地資訊(x2,y2)。
此外,如前述,各封包係可被適宜編碼,但為了每次算出目的地資訊時不需要解碼,最好是將資料部分與擴充識別資訊部分予以個別地編碼。同樣地,在以處理指令部分單獨、或擴充識別資訊部分全體地進行編碼的情況下,採用不必解碼、就能將應被最初執行之指令的左右資訊予以遮蔽的編碼,較為理想。
又,擬似亂數的生成上,可採用公知的方法。站在目的地資訊的算出時間的觀點來看,使用LCG(Linear Congruential Generator:線性同餘法)或LFSR(Linear Feedback Shift Register:線性反饋位移暫存器)等高速 的生成方法,較為理想。
甚至,目的地資訊算出部211係亦可構成為,參照預先生成之擬似亂數表而算出目的地資訊。此情況下,由於目的地資訊算出部211係不需要對每一封包生成擬似亂數,因此能夠縮短目的地資訊的算出時間。此外,於此種構成中必須為,各PE的目的地資訊算出部係具備同一擬似亂數表,或是各PE的目的地資訊算出部會讀出共通的擬似亂數表。
另一方面,站在PE的使用效率之觀點來看,為了使封包分布均勻,擬似亂數係接近均勻分布,較為理想。又,機率變數群無法預測這件事,係和均勻分布是等價的,因此藉由使用CSPRNG(Cryptographically Secure Pseudo-Random Number Generator:密碼學安全擬似亂數產生器),可謀求PE使用效率之提升。然而,由於隨著指令不同,各封包的處理時間也不同,因此實際上即使擬似亂數是均勻分布,有時候封包分布仍無法達到均勻。
因此,使用不會讓目的地資訊的算出時間變得過長、接近均勻分布的擬似亂數,較為理想。例如,目的地資訊的算出時間,比後述之雜湊值的算出時間還長的話,就不理想。
輸出入部210,接下來係判定封包的目的地資訊是否表示著該當PE,若表示著該當PE,則將該當封包加以取得,然後輸入至比較選擇部230。另一方面,若封包的目的地資訊並非表示該當PE,則向接近於目的地資訊所示 PE的方向,將該當封包傳送至相鄰的PE。此處,參照圖10,說明實現此種封包之取得及傳送的輸出入部210之具體動作之一例。此外,於圖10中,是令現在位置、亦即該當PE的座標為(x0,y0),目的地資訊所示之PE的座標為(x1,y1)。
輸出入部210,係一旦從相鄰的PE或MCE輸入了封包(S1),則首先將現在位置的Y座標y0與目的地資訊的Y座標y1進行比較(S2)。
於S2中,當兩者的Y座標一致時(S2:=),則將現在位置的X座標x0與目的地資訊的X座標x1進行比較(S3)。
又,當y0大於y1時(S2:>),則由於目的地資訊所示之PE是位於Y座標小於現在位置的方向,因此往y0-1方向上所相鄰之PE、亦即位於座標(x0,y0-1)之PE,傳送封包(S31),結束處理(S5)。一方,當y0小於y1時(S2:<),則由於目的地資訊所示之PE是位於Y座標大於現在位置的方向,因此往y0+1方向上所相鄰之PE、亦即位於座標(x0,y0+1)之PE,傳送封包(S32),結束處理(S5)。
於S3中,當兩者的X座標一致時(S3:=),則目的地資訊係表示該當PE,因此將封包加以取得然後輸入至比較選擇部230(S4),結束處理(S5)。
又,當x0大於x1時(S3:>),則由於目的地資訊所示之PE是位於X座標小於現在位置的方向,因此往 x0-1方向上所相鄰之PE、亦即位於座標(x0-1,y0)之PE,傳送封包(S41),結束處理(S5)。一方,當x0小於x1時(S3:<),則由於目的地資訊所示之PE是位於X座標大於現在位置的方向,因此往x0+1方向上所相鄰之PE、亦即位於座標(x0+1,y0)之PE,傳送封包(S42),結束處理(S5)。
以上動作由各PE的輸出入部進行,藉此,各封包就會被傳達至目的地資訊所示的PE為止,而被取得。例如,於圖3中,從MCE301往PE101所發行之封包的目的地資訊是表示PE115的情況下,該當封包係經由PE102、PE103、PE107、及PE111,而一路被傳達至PE115。又例如,被PE115所處理而新生成的封包的目的地資訊是表示PE104的情況下,該當封包係經由PE114、PE113、PE112、及PE108,而一路被傳達至PE104。
亦即,各封包係首先在圖3的上下方向移動直到目的地資訊所示之PE與Y座標呈一致為止,然後在圖3的左右方向移動直到X座標呈一致為止。藉由採用此種移動規則,可使封包的移動路徑總是最短。又,移動中的方向轉換係為1次或0次,可使各PE間的通訊路500的使用頻率平均化。
如以上所述,雖然本實施形態的資料處理裝置係為,相當於執行節點的PE是和磚疊式處理器同樣地被配置成矩陣狀,但處理對象的封包係基於其位元列本身而被動態配置這點,是和EDGE架構有很大的不同。
此外,本發明的資料處理裝置,係不限定於本實施形態所示之矩陣狀配置及連接。例如,於圖3中,藉由將各PE間的通訊路500的一部分予以省略,可成為環型的連接。又例如,亦可將所有的PE間或PE及MCE間,作直接連接。此情況下,以電氣配線所進行的電氣訊號之傳達上,PE或MCE的個數越是增加,則配線會變得越困難。另一方面,使用前述的電磁波之資訊傳達上,就可容易地追加通訊路500。
比較選擇部230,係在已被輸出入部210所取得的封包(以下稱作取得封包)當中,將可處理的封包,輸入至ALU260。又,比較選擇部230,係將不可處理的封包,記憶在緩衝記憶體240,並且還會進行緩衝記憶體240中所記憶之封包(以下稱作記憶封包)的讀出。
更具體而言,若取得封包的應被最初執行(最末尾)之指令是1輸入.1輸出指令時,則比較選擇部230係僅將取得封包,透過運算元緩衝區250a或250b而輸入至ALU260。
另一方面,若取得封包的應被最初執行(最末尾)之指令是2輸入.1輸出指令時,則比較選擇部230係將前述之已被遮蔽的擴充識別資訊是與取得封包一致的封包,從記憶封包中檢索出來。然後,當有一致的記憶封包存在時,則比較選擇部230係將該當一致的2個封包當成一組,透過運算元緩衝區250a及250b而輸入至ALU260。又,若一致的記憶封包不存在時,則比較選擇部230係將 取得封包,記憶在緩衝記憶體240中。
此外,為了有效率地檢索出已被遮蔽的擴充識別資訊是與取得封包一致的記憶封包,在本實施形態中,緩衝記憶體240係含有雜湊表。
又,比較選擇部230係首先由雜湊值算出部231,根據取得封包而算出雜湊值。該當雜湊值,係和目的地資訊的情況相同,是基於取得封包的已被遮蔽的擴充識別資訊,而被算出。然後,當比較選擇部230將取得封包記憶至緩衝記憶體240時,是將取得封包與該雜湊值建立對應而儲存在雜湊表中。
此外,雜湊表係可採用公知的實裝方法。圖11係圖示了被實裝在緩衝記憶體240裡的雜湊表之一例。在該當雜湊表中,作為解決雜湊碰撞之方法係採用開放定址法(open addressing),作為再雜湊程序則是使用線性探索法(1inear probing)。
於圖11中,作為一例而圖示了,雜湊值為n+3的封包1被儲存後,雜湊值為n的封包2至5被儲存時的情形。封包1係被儲存在根陣列[256]的要素n+3之位置,被設定有旗標「1」及計數值「1」。又,封包2至5係分別被儲存在要素n、n+1、n+2、n+4之位置,在要素n的位置上係被設定有旗標「1」及計數值「4」。
ALU260,係對透過運算元緩衝區250a及250b而被輸入的運算元,進行算術運算(整數運算及/或浮點運算)或邏輯運算等,將運算結果予以輸出。更具體而言, ALU260,係對所被輸入的封包的資料,執行應被最初執行(最末尾)之指令,對執行結果之資料,附加上已被執行之指令除外後的擴充識別資訊而生成新的封包,再度輸入至輸出入部210。
如此一來,各PE係從所被輸入之封包的擴充識別資訊部分,求出目的地資訊,僅將目的地資訊是表示該當PE的封包加以取得,將目的地資訊並非表示該當PE的封包,傳送至其他PE。然後,對取得封包之資料,執行應被最初執行(最末尾)之指令,同時對執行結果之資料附加上已被執行之指令除外後的擴充識別資訊而生成新的封包,將已被生成之封包,隨應於該目的地資訊而加以傳送或取得。
此外,亦可不在每次封包輸入時各PE都算出目的地資訊,而是改成,將已算出之目的地資訊,附加至封包,將該當目的地資訊予以再利用。例如,藉由在MCE將封包發行至PE時,及PE生成新的封包時,附加目的地資訊,則在這些以外的情況下,就可將所被附加的目的地資訊直接加以利用。此情況下,不需要對目的地資訊所被附加之封包算出目的地資訊,各PE所取得的封包中所被附加的目的地資訊係為同一,因此亦可將目的地資訊對資料部分及擴充識別資訊部分之任一者作附加。
又,使用光來進行資訊傳達時,資訊傳達來源之PE的發光元件,係藉由發出目的地資訊所示之資訊傳達目標之PE所被設定之波長的光,就可不必重複傳送,而可對 目的地資訊所示之PE直接傳送封包。此情況下,各PE係不必判定從其他PE或MCE所輸入之封包的目的地資訊是否表示該當PE,就能僅取得目的地資訊是表示該當PE之封包。
甚至,關於被各PE所新生成的封包也是,可以不必判定目的地資訊是否表示著該當PE,而發出目的地資訊所示之資訊傳達目標之PE所被設定之波長的光之構成。此時,包含與資訊傳達來源同一PE的任一PE的受光元件會將該當波長之光予以受光,可向目的地資訊所示之PE,傳送封包。
===資料處理裝置之動作的具體例===
此處,參照圖12,說明對圖9所示之封包P1至P5的資料處理裝置1之動作的具體例。
如前述,封包P1及P2,係被算出同一目的地資訊(x1,y1),因此會被一路傳達至位於座標(x1,y1)的PE,最末尾的加算指令I4會被執行。然後,對執行結果之資料dp+0,附加上加算指令I4除外後的擴充識別資訊,生成新的封包P6。此外,假設從封包P6所算出的目的地資訊係為(x4,y4)。
同樣地,封包P3及P4,係被算出同一目的地資訊(x2,y2),因此會被一路傳達至位於座標(x2,y2)的PE,最末尾的加算指令I1會被執行。然後,對執行結果之資料sp+0,附加上加算指令I1除外後的擴充識別資 訊,生成新的封包P7。此外,假設從封包P7所算出的目的地資訊係為(x5,y5)。
封包P7係被一路傳達至位於座標(x5,y5)的PE,最末尾的讀出指令I2(1輸入.1輸出指令)會被執行。然後,對執行結果之資料*(sp+0),附加上讀出指令I2除外後的擴充識別資訊,生成新的封包P8。此外,封包P8,係已被遮蔽的擴充識別資訊是和封包P5相同,因此會被算出與封包P5相同之目的地資訊(x3,y3)。
封包P8及P5,係被一路傳達至位於座標(x3,y3)的PE,最末尾的除算指令I3會被執行。然後,對執行結果之資料*(sp+0)/2,附加上除算指令I3除外後的擴充識別資訊,生成新的封包P9。此外,封包P9,係已被遮蔽的擴充識別資訊是和封包P6相同,因此會被算出與封包P6相同之目的地資訊(x4,y4)。
封包P6及P9,係被一路傳達至位於座標(x4,y4)的PE,最末尾的寫入指令I5會被執行。然後,對執行結果之資料*(dp+0)=*(sp+0)/2,附加上寫入指令I5除外後的擴充識別資訊,生成新的封包P10。
封包P10係不含有處理指令,因此會被一路送回至MCE ID所示的MCE301。為了使封包P10一路回到MCE301,各PE的輸出入部必須要進行例外處理。於圖12中,作為一例,目的地資訊算出部211係將不含處理指令之封包的目的地資訊,算出為(-1,m)。此處係假設MCE ID=m。此時,封包P10的目的地資訊,係為(-1, 1)。例如,於圖3中,當PE115已生成封包P10時,封包P10係經由PE114、PE113、PE109、PE105、及PE101,而一路被傳達至MCE301。
此外,於各PE中,當緩衝記憶體或運算元緩衝區溢滿,無法處理取得封包之忙碌狀態時,也將該當封包一路送回到MCE ID所示的MCE,較為理想。此時的例外處理,係例如只要將封包的指令數資訊設成大於最大指令數的值,把此種封包的目的地資訊也算出成(-1,m)即可。再者,當任一PE處於忙碌狀態之期間,各MCE係停止發行新的處理ID之封包,較為理想。此種忙碌狀態之控制,係例如,只要設置對所有PE及MCE連接的控制訊號線,透過該當控制訊號線而發送表示忙碌狀態的忙碌訊號即可。
===資料處理裝置之動作的其他具體例===
圖7所示之封包的構成,處理指令部分中只能含有5個指令。因此,為了進行較複雜之處理,必須要在封包的處理指令部分,追加指令。
圖5所示的指令追加指令(記號/16進位表示:「app2L」/52H、「app2R」/53H),係可實現此種指令之追加機能。以下適宜參照圖16至18,說明包含指令追加指令之執行的資料處理裝置1之動作的具體例。此處作為一例,係說明對陣列sp[1024]之各要素乘以4之後加算1,然後將除以2後的值儲存在陣列dp[1024]中的處理。
圖16係圖示此種處理的for迴圈內之處理所對應之資料流程圖。
於圖16中,D11至D18係表示資料,Ia係表示指令追加指令,I11至I17係表示指令追加指令以外之指令。加算指令I16,係將資料D11(dp)及資料D12(ii)予以加算,將資料dp+ii予以輸出,加算指令I11,係將資料D13(sp)及資料D14(ii)予以加算,將資料sp+ii予以輸出。
資料D15係為指令串(sequence of instructions),指令追加指令Ia,係對資料sp+ii的封包的處理指令部分,追加資料D15。此外,資料D15的指令串,係對應於對資料sp+ii之封包的指令追加指令Ia以後之處理,具體而言係相當於指令I12至I15、及I17。
被指令追加指令Ia所追加的指令當中,讀出指令I12,係從記憶裝置6讀出資料*(sp+ii)。
接著,乘算指令I13,係對資料*(sp+ii)乘以資料D16(4),將資料*(sp+ii)*4予以輸出。
接著,加算指令I14,係對資料*(sp+ii)*4加算資料D17(1),將資料*(sp+ii)*4+1予以輸出。
接著,除算指令I15,係將資料*(sp+ii)*4+1除以資料D18(2),將資料[*(sp+ii)*4+1]/2予以輸出。
最後,寫入指令I17,係對記憶裝置6的資料*(dp+ii),將資料[*(sp+ii)*4+1]/2予以寫入。
藉由以上的資料流,就會對陣列sp[1024]的1個要素 乘以4然後加算1,再除以2後的值,會被儲存在陣列dp[1024]中。圖17係圖示了,對圖16所示的基於資料流程圖所生成的基本封包列,將for迴圈予以展開後的封包列當中,MCE ID=1、且處理ID=1的最初8封包P11至P18。
此處,參照圖18,說明對圖17所示之封包P11至P18的資料處理裝置1之動作的具體例。
封包P11及P12,係由於被算出同一目的地資訊,因此會被一路傳達至該當同一目的地資訊所示之PE,最末尾的加算指令I16會被執行。然後,對執行結果之資料dp+0,附加上加算指令I16除外後的擴充識別資訊,生成新的封包P19。
同樣地,封包P13及P14,係由於被算出同一目的地資訊,因此會被一路傳達至該當同一目的地資訊所示之PE,最末尾的加算指令I11會被執行。然後,對執行結果之資料sp+0,附加上加算指令I11除外後的擴充識別資訊,生成新的封包P20。此外,封包P20,係已被遮蔽的擴充識別資訊是和封包P15相同,因此會被算出與封包P15相同之目的地資訊。
封包P20及P15,係被一路傳達至同一目的地資訊所示之PE,最末尾的指令追加指令Ia會被執行。然後,對封包P20之資料sp+0,附加上從處理指令部分除去指令追加指令Ia以後再追加有資料D15的擴充識別資訊,生成新的封包P21。
封包P21係被一路傳達至已被算出之目的地資訊所示的PE,最末尾的讀出指令I12(1輸入.1輸出指令)會被執行。然後,對執行結果之資料*(sp+0),附加上讀出指令I12除外後的擴充識別資訊,生成新的封包P22。此外,封包P22,係已被遮蔽的擴充識別資訊是和封包P16相同,因此會被算出與封包P16相同之目的地資訊。
封包P22及P16,係被一路傳達至同一目的地資訊所示之PE,最末尾的乘算指令I13會被執行。然後,對執行結果之資料*(sp+0)*4,附加上乘算指令I13除外後的擴充識別資訊,生成新的封包P23。此外,封包P23,係已被遮蔽的擴充識別資訊是和封包P17相同,因此會被算出與封包P17相同之目的地資訊。
封包P23及P17,係被一路傳達至同一目的地資訊所示之PE,最末尾的加算指令I14會被執行。然後,對執行結果之資料*(sp+0)*4+1,附加上加算指令I14除外後的擴充識別資訊,生成新的封包P24。此外,封包P24,係已被遮蔽的擴充識別資訊是和封包P18相同,因此會被算出與封包P18相同之目的地資訊。
封包P24及P18,係被一路傳達至同一目的地資訊所示之PE,最末尾的除算指令I15會被執行。然後,對執行結果之資料[*(sp+0)*4+1]/2,附加上除算指令I15除外後的擴充識別資訊,生成新的封包P25。此外,封包P25,係已被遮蔽的擴充識別資訊是和封包P19相同,因此會被算出與封包P19相同之目的地資訊。
封包P19及P25,係被一路傳達至同一目的地資訊所示之PE,最末尾的寫入指令I17會被執行。然後,對執行結果之資料*(dp+0)=[*(sp+0)*4+1]/2,附加上寫入指令I17除外後的擴充識別資訊,生成新的封包P26。此外,封包P26係不含有處理指令,因此會被一路送回至MCE ID所示的MCE301。
順便一提,藉由寫入指令I17的執行,更具體而言,會對封包P19的資料dp+0所示的記憶裝置6的位址中所被記憶的資料*(dp+0),寫入封包P25的資料[*(sp+0)*4+1]/2。因此,封包P26之資料*(dp+0)=[*(sp+0)*4+1]/2,係表示著寫入指令I17的執行本身。因此,寫入指令I17的執行後,亦可不將封包P26送回MCE301而令其消滅。
如此一來,藉由執行圖5所示的指令追加指令,就可在封包的處理指令部分,追加指令。又,同樣地,藉由執行圖5所示的資料追加指令(記號/16進位表示:「app1L」/50H、「app1R」/51H),也可實現對封包之資料部分,追加資料。
===封包的其他構成例===
於圖7中,雖然圖示了被資料處理裝置1所處理之封包的構成,但並非限定於此。此處,被資料處理裝置1所處理的封包的其他構成例,示於圖19。此外,於圖19中係圖示了,會獲得和圖17所示之封包P11至P18相同執 行結果的封包P31至P38。
於圖19中,擴充識別資訊部分,係和圖7相同之構成。然而,假設各PE係在生成新的封包之際,並未從擴充識別資訊部分去除已被執行過的指令。此情況下,有時候應被最初執行之指令並未被配置在最末尾,指令數資訊係為用來表示未處理之指令數或應被最初執行之指令所必須之資訊。
另一方面,資料部分係除了資料本體以外,還含有該當資料的資料類型資訊及延長旗標。又,資料類型資訊,係用來表示例如「整數型」或「浮點型」等之資料類型,藉由對每一資料類型預先設定資料長度,就也可實現資料長度資訊的機能。又,藉由具備「指令型」來作為資料類型,就可如後述般地,實現指令的追加機能。圖20係表示該當封包之構成的資料流程圖,是沒有使用指令追加指令Ia,藉由指令追加處理Pa而實現指令的追加機能。此外,延長旗標,係被使用於指令追加處理Pa中。
又,於圖19中,封包P31、P32及P36至P38係為,資料本體及擴充識別資訊部分是和圖17所示的封包P11、P12、及P16至P18一致。此外,這些封包的資料類型資訊均為「整數型」,延長旗標為「0」。
封包P33及P34,係從封包P13及P14去除指令追加指令IaL,指令數資訊係為「1」。又,取代了指令追加指令IaL,為了於指令追加處理Pa中在處理指令部分表示這是指令追加側,因此延長旗標係為「1」。此外,這 些封包的資料類型資訊均為「整數型」。
封包P35係取代了指令追加指令IaR,含有與封包P33及P34相同的處理指令,為了於指令追加處理Pa中表示這是指令追加側,資料類型資訊係為「指令型」。然而,與封包P33及P34相同的處理指令,對於封包P35的資料D15並非應該被處理,因此指令數資訊係為「0」。此外,封包P35係為延長旗標是「0」。
此外,於圖19中,係把在算出目的地資訊之際,及將取得封包與記憶封包進行比較之際所被使用的部分,對各封包以箭頭的範圍來表示。例如,在封包P31至P34、及P36至P38中,只有識別資訊部分、及處理指令部分當中的指令數資訊所示之未處理的指令會被抽出,應被最初執行之指令的左右資訊會被遮蔽,進行目的地資訊的算出等。因此,這些封包中,係和新的封包生成之際從擴充識別資訊部分去除已被執行過之指令的情況相同,進行目的地資訊的算出等。
然而,資料類型資訊是「指令型」的封包P35、及延長旗標為「1」的封包中,當指令數資訊為「0」時,基於整個擴充識別資訊部分,而進行目的地資訊的算出等。
此處,參照圖21,說明對圖19所示之封包P31至P38的資料處理裝置1之動作的具體例。
封包P31及P32,係由於被算出同一目的地資訊,因此會被一路傳達至該當同一目的地資訊所示之PE,指令數資訊所示之應被最初執行之加算指令I16,會被執行。 然後,對執行結果之資料dp+0,附加上指令數資訊減1後的擴充識別資訊,生成新的封包P39。此外,封包P39,係由於指令數資訊是「1」,因此殘存的加算指令I16,係不被用於目的地資訊的算出。
同樣地,封包P33及P34,係由於被算出同一目的地資訊,因此會被一路傳達至該當同一目的地資訊所示之PE,指令數資訊所示之應被最初執行之加算指令I11,會被執行。然後,對執行結果之資料sp+0,附加上指令數資訊減1後的擴充識別資訊,生成新的封包P40。此外,封包P40,係由於延長旗標是「1」、指令數資訊是「0」,因此基於整個擴充識別資訊部分,而算出與封包P35相同的目的地資訊。
指令數資訊都是「0」的封包P40及P35,係被一路傳達至同一目的地資訊所示之PE,進行指令追加處理Pa。然後,對延長旗標為「1」的封包P40之資料sp+0,附加上將處理指令部分設成資料類型資訊為「指令型」之封包P35之資料D15的擴充識別資訊,生成新的封包P41。
此外,封包P41的指令數資訊,係為資料D15中所含之指令數「5」。又,封包P41的延長旗標,係繼承(inheritance)封包P35的延長旗標「0」。另一方面,藉由將資料類型資訊為「指令型」的封包的延長旗標設成「1」,對於藉由指令追加處理而被新生成之封包,也能進行指令追加處理。
封包P41係被一路傳達至已被算出之目的地資訊所示的PE,指令數資訊所示之應被最初執行之讀出指令I12(1輸入.1輸出指令)會被執行。然後,對執行結果之資料*(sP+0),附加上指令數資訊減1後的擴充識別資訊,生成新的封包P42。此外,封包P42,係由於指令數資訊是「4」,因此殘存的讀出指令I12,係不被用於目的地資訊之算出,而算出與封包P36相同的目的地資訊。
封包P42及P36,係被一路傳達至同一目的地資訊所示之PE,指令數資訊所示之應被最初執行的乘算指令I13,會被執行。然後,對執行結果之資料*(sp+0)*4,附加上指令數資訊減1後的擴充識別資訊,生成新的封包P43。此外,封包P43,係由於指令數資訊是「3」,因此殘存的乘算指令I13及讀出指令I12,係不被用於目的地資訊之算出,而算出與封包P37相同的目的地資訊。
封包P43及P37,係被一路傳達至同一目的地資訊所示之PE,指令數資訊所示之應被最初執行的加算指令I14,會被執行。然後,對執行結果之資料*(sp+0)*4+1,附加上指令數資訊減1後的擴充識別資訊,生成新的封包P44。此外,封包P44,係由於指令數資訊是「2」,因此殘存的加算指令I14、乘算指令I13、及讀出指令I12,係不被用於目的地資訊之算出,而算出與封包P38相同的目的地資訊。
封包P44及P38,係被一路傳達至同一目的地資訊所示之PE,指令數資訊所示之應被最初執行的除算指令 I15,會被執行。然後,對執行結果之資料[*(sp+0)*4+1]/2,附加上指令數資訊減1後的擴充識別資訊,生成新的封包P45。此外,封包P45,係由於指令數資訊是「1」,因此殘存的除算指令I15、加算指令I14、乘算指令I13、及讀出指令I12,係不被用於目的地資訊之算出,而算出與封包P39相同的目的地資訊。
封包P39及P45,係被一路傳達至同一目的地資訊所示之PE,指令數資訊所示之應被最初執行的寫入指令I17,會被執行。然後,對執行結果之資料*(dp+0)=[*(sp+0)*4+1]/2,附加上指令數資訊減1後的擴充識別資訊,生成新的封包P46。此外,即使封包P46的資料類型資訊不是「指令型」,延長旗標不是「1」,指令數資訊仍為「0」。因此,封包P46係不含有應被處理之處理指令,所以會被一路送回至MCE ID所示的MCE301,或是消滅。
如此一來,就可不必使用指令追加指令,藉由進行指令追加處理Pa,就可在封包的處理指令部分,追加指令。此外,亦可再藉由執行指令追加指令,來對封包的處理指令部分,追加指令。
如前述,於資料處理裝置1中,各MCE係對每一筆資料,附加含處理指令之擴充識別資訊而生成封包,各封包係被隨著擴充識別資訊所指定的目的地資訊所示的PE加以取得,藉由該當PE來執行封包的指令,處理對象的封包就會基於其位元列本身而被配置,可直接利用既存之 軟體資產,提升處理平行性。
又,目的地資訊是隨擴充識別資訊而動態決定,藉此,處理對象的封包係會基於其位元列本身而被動態配置,可更加提升處理平行性。
又,基於擴充識別資訊而生成擬似亂數,隨著該當擬似亂數而算出目的地資訊,藉此可使封包分布接近於均勻分布,可謀求PE使用效率之提升。
又,藉由將目的地資訊並非表示該當PE的封包傳送至其他PE,就可將封包一路傳達至目的地資訊所示的PE為止。
又,各PE係執行取得封包的應被最初執行之指令,在擴充識別資訊當中,將已被執行之指令的下個應被執行之指令當成應被最初執行之指令,藉此就可將該當擴充識別資訊附加至執行結果之資料而生成新的封包。
又,各PE係執行取得封包的應被最初執行之指令,從擴充識別資訊中排除已被執行過之指令,藉此就可將該當擴充識別資訊附加至執行結果之資料而生成新的封包。
又,當有已被遮蔽的擴充識別資訊是與取得封包一致的記憶封包存在時,則將該當一致的2個封包當成一組而輸入至ALU260,當沒有一致的記憶封包存在時,則將取得封包記憶至緩衝記憶體240中,藉此就可執行進行2項運算之2輸入.1輸出指令。
又,當取得封包的應被最初執行之指令是1輸入.1輸出指令時,則藉由僅將取得封包輸入至ALU260,就可 執行進行單項運算之1輸入.1輸出指令。
又,在取得封包的擴充識別資訊與記憶封包的擴充識別資訊之比較中,藉由將應被最初執行之指令的左右資訊予以遮蔽,就可執行進行屬於非可換運算之2項運算之2輸入.1輸出指令。
又,基於取得封包的已被遮蔽的擴充識別資訊而算出雜湊值,將取得封包與其雜湊值建立對應而儲存至雜湊表,藉此就有效率地進行已被遮蔽的擴充識別資訊是與取得封包一致的記憶封包的檢索。
又,基於已被遮蔽的擴充識別資訊而生成擬似亂數,隨應於該當擬似亂數而算出目的地資訊,藉此就可將已被遮蔽的擴充識別資訊是相同的封包一路傳達至PE,同時可謀求PE使用效率之提升。
又,藉由僅將相鄰的PE間彼此連接,就可避免配線延遲之問題。
又,和磚疊式處理器同樣地把PE配置成矩陣狀,各PE係向接近於目的地資訊所示PE的方向,將該當封包傳送至相鄰的PE,藉此就可使封包的移動路徑呈最短,即使PE數增加仍可保持高速的動作速度。
又,各MCE係根據記憶裝置6中所記憶的執行碼或中間碼而逐次生成封包列,藉此就可架構出解譯器型的處理系。
又,藉由將不含應被處理之處理指令的封包,一路送回至MCE ID所示的MCE,各MCE就可完成該當封包的 處理ID之處理,而可再次使用該當處理ID。
又,藉由構成將各MCE逐次生成封包的資料處理裝置1加以具備的資料處理系統,就可提升解譯器型平行電腦系統的處理平行性。
又,如前述,於圖7或圖19所示的封包之構成中,各封包係被隨著擴充識別資訊所指定的目的地資訊所示的PE加以取得而執行指令,藉此,處理對象的封包係會基於其位元列本身而被動態配置,可直接利用既存之軟體資產,提升處理平行性。
又,將從原始程式P0預先生成之封包列當作執行碼P2而記錄至記錄媒體,藉此就可將該當執行碼P2在編譯器型處理系中作利用。
又,將從原始程式P0預先生成之封包列當作執行碼P2而記錄至記憶裝置6,各MCE就可讀取該當執行碼P2而作利用。
又,在展開後之封包列當中,將識別資訊部分之至少一部分被省略(設成null文字)的中間封包列,記錄至記錄媒體,就可對該當中間封包列先設定好被省略的MCE ID或處理ID,然後於編譯器型處理系中作利用。
又,在展開後之封包列當中,將識別資訊部分之至少一部分被省略(設成null文字)的中間封包列,記錄至記憶裝置6,各MCE就可讀取該當中間封包列,先將已被省略的MCE ID或處理ID予以設定,然後加以利用。
又,藉由構成將各MCE會讀取預先生成之封包列的 資料處理裝置1加以具備的資料處理系統,就可提升編譯器型平行電腦系統的處理平行性。
又,如前述,各PE係對每一筆資料,在附加含處理指令之擴充識別資訊的封包當中,將隨著擴充識別資訊所指定的目的地資訊是表示該當PE的封包,加以取得而執行指令,藉此,處理對象的封包係會基於其位元列本身而被動態配置,可直接利用既存之軟體資產,提升處理平行性。
又,各PE係將目的地資訊並非表示該當PE的封包傳送至其他PE,藉此就可將封包一路傳達至目的地資訊所示的PE為止。
又,各PE係執行取得封包的應被最初執行(最末尾)之指令,對執行結果之資料,附加上把已被執行之指令的下一應被執行之指令當成應被最初執行之指令的擴充識別資訊而生成新的封包,藉此,即使針對該當新的封包,也能動態配置而執行指令。
此外,上記實施形態係為了容易理解本發明而揭露,並不是用來限定解釋本發明。本發明係在不脫離其宗旨的範圍內,可施加各種變更、改良,本發明中係亦包含這些的等價物。
1‧‧‧資料處理裝置
6‧‧‧記憶裝置
7‧‧‧輸入裝置
8‧‧‧輸出裝置
9‧‧‧匯流排
100~115‧‧‧PE(處理要素)
210‧‧‧輸出入部
211‧‧‧目的地資訊算出部
212‧‧‧發光元件
213‧‧‧受光元件
214a~214d‧‧‧輸出埠
215a~215d‧‧‧輸入埠
230‧‧‧比較選擇部
231‧‧‧雜湊值算出部
240‧‧‧緩衝記憶體
250a、250b‧‧‧運算元緩衝區
260‧‧‧ALU(算術邏輯運算部)
300~303‧‧‧MCE(記憶體控制要素)
400‧‧‧快取記憶體
500‧‧‧通訊路(傳輸路)
501‧‧‧穿透材(芯)
502‧‧‧反射材(外殼)
503‧‧‧吸收材
[圖1]本發明之一實施形態中的PE(處理要素)之構成的區塊圖。
[圖2]具備資料處理裝置的資料處理系統全體之構成之概略的區塊圖。
[圖3]本發明之一實施形態中的資料處理裝置之構成的區塊圖。
[圖4]原始程式與資料處理裝置中所被處理之程式(執行碼)之關係之一例的圖示。
[圖5]資料處理裝置中所採用之指令集之一例的圖示。
[圖6]由MCE(記憶體控制要素)所生成的資料流程圖之一例的圖示。
[圖7]由MCE(記憶體控制要素)所生成的基本封包列之一例的圖示。
[圖8]由MCE(記憶體控制要素)所生成的展開後之封包列之一例的圖示。
[圖9]本發明之一實施形態中的目的地資訊的算出方法的說明圖。
[圖10]說明輸出入部之動作之一例的流程圖。
[圖11]被實裝在緩衝記憶體裡的雜湊表之一例的圖示。
[圖12]本發明之一實施形態中的資料處理裝置之動作的說明圖。
[圖13]使用電磁波(光)來進行資訊傳達時的通訊路之構成之一例的圖示。
[圖14]原始程式與資料處理裝置中所被處理之程式 (執行碼)之關係之其他例的圖示。
[圖15]各輸出入埠是具備複數通道的PE(處理要素)之構成之概略的區塊圖。
[圖16]包含指令追加指令之執行的資料流程圖之一例的圖示。
[圖17]包含指令追加指令之執行的展開後之封包列之一例的圖示。
[圖18]包含指令追加指令之執行的資料處理裝置之動作的說明圖。
[圖19]被資料處理裝置所處理的封包的其他構成例的圖示。
[圖20]包含指令追加處理的資料流程圖之一例的圖示。
[圖21]包含指令追加處理的資料處理裝置之動作的說明圖。
100~115‧‧‧PE(處理要素)
210‧‧‧輸出入部
211‧‧‧目的地資訊算出部
214a~214d‧‧‧輸出埠
215a~215d‧‧‧輸入埠
230‧‧‧比較選擇部
231‧‧‧雜湊值算出部
240‧‧‧緩衝記憶體
250a、250b‧‧‧運算元緩衝區
260‧‧‧ALU(算術邏輯運算部)

Claims (31)

  1. 一種資料處理裝置,其特徵為,具備:複數處理部,係用來處理對每一資料附加上擴充識別資訊而成的封包,前記擴充識別資訊係含有:用來識別前記資料的識別資訊、及表示對前記資料之1個以上之處理指令的指令資訊;和目的地資訊算出部,係基於前記擴充識別資訊的至少前記指令資訊之位元列,而算出前記封包的目的地資訊;前記複數處理部,係分別具有:輸出入部,係在前記封包當中,僅將前記目的地資訊是表示著前記處理部的封包,加以取得;和運算部,係將已被前記輸出入部所取得之前記封包的前記處理指令,加以執行;前記目的地資訊算出部,係當前記指令資訊是表示複數處理指令時,則至少基於表示前記複數處理指令的位元列,而算出前記目的地資訊。
  2. 一種資料處理裝置,其特徵為,具備:複數處理部,係用來處理對每一資料附加上擴充識別資訊而成的封包,前記擴充識別資訊係含有:用來識別前記資料的識別資訊、及表示對前記資料之1個以上之處理指令的指令資訊;和目的地資訊算出部,係算出前記封包的目的地資訊; 前記複數處理部,係分別具有:輸出入部,係在前記封包當中,僅將前記目的地資訊是表示前記處理部的封包,加以取得;和運算部,係將已被前記輸出入部所取得之前記封包的前記處理指令,加以執行;和記憶部,係記憶前記封包;和比較選擇部,係將已被前記輸出入部所取得之前記封包的前記擴充識別資訊與前記記憶部中所記憶的前記封包的前記擴充識別資訊,進行比較,基於其比較結果,而將前記已被取得之封包及前記所被記憶之封包,成組地輸入至前記運算部;前記處理指令係含有:處理指令,其係進行,將2個封包的前記資料分別當成左側及右側運算元的2項運算;前記比較選擇部,係在已被前記輸出入部所取得之前記封包的應被最先執行之處理指令,是要進行前記2項運算的處理指令的情況下,當前記指令資訊的所定部分及前記識別資訊係與前記已被取得之封包一致的封包,是有被記憶在前記記憶部中時,則將前記所定部分及識別資訊為一致的2個封包的前記資料,分別當作前記左側及右側運算元而輸入至前記運算部;當前記指令資訊的前記所定部分及前記識別資訊係與前記已被取得之封包一致的封包,是未被記憶在前記記憶部中時,則令前記已被取得之封包,被記憶在前記記憶部 中。
  3. 如請求項1所記載之資料處理裝置,其中,前記目的地資訊算出部,係隨著從前記擴充識別資訊的至少前記指令資訊之位元列所生成之擬似亂數,來算出前記目的地資訊。
  4. 如請求項2所記載之資料處理裝置,其中,前記目的地資訊算出部,係隨著從前記指令資訊之前記所定部分及前記識別資訊之位元列所生成的擬似亂數,來算出前記目的地資訊。
  5. 如請求項3或請求項4所記載之資料處理裝置,其中,前記目的地資訊算出部,係參照預先生成之擬似亂數表而算出前記目的地資訊。
  6. 如請求項1或請求項2所記載之資料處理裝置,其中,前記複數處理部,係分別具有前記目的地資訊算出部。
  7. 如請求項1或2所記載之資料處理裝置,其中,前記運算部,係將已被前記輸出入部所取得之前記封包的前記處理指令當中應被最先執行之處理指令,加以執行,對藉由前記執行所被生成之資料,附加上把已被執行之前記處理指令的下一應被執行之處理指令當成應被最先執行之處理指令的前記擴充識別資訊,而生成封包,然後輸入至前記輸出入部。
  8. 如請求項7所記載之資料處理裝置,其中,前記運算部,係將已被前記輸出入部所取得之前記封包的前記處 理指令當中應被最先執行之處理指令,加以執行,對藉由前記執行所被生成之資料,附加上把已被執行之前記處理指令予以除外的前記擴充識別資訊,而生成封包,然後輸入至前記輸出入部。
  9. 如請求項1所記載之資料處理裝置,其中,前記處理指令係含有:處理指令,其係進行,將2個封包的前記資料分別當成左側及右側運算元的2項運算;前記複數處理部,係還分別具有:記憶部,係記憶前記封包;和比較選擇部,係將已被前記輸出入部所取得之前記封包的前記擴充識別資訊與前記記憶部中所記憶的前記封包的前記擴充識別資訊,進行比較,基於其比較結果,而將前記已被取得之封包及前記所被記憶之封包,成組地輸入至前記運算部;前記比較選擇部,係已被前記輸出入部所取得之前記封包的應被最先執行之處理指令,是要進行前記2項運算的處理指令的情況下,當前記指令資訊的所定部分及前記識別資訊係與前記已被取得之封包一致的封包,是有被記憶在前記記憶部中時,則將前記所定部分及識別資訊為一致的2個封包的前記資料,分別當作前記左側及右側運算元而輸入至前記運算部;當前記指令資訊的前記所定部分及前記識別資訊係與前記已被取得之封包一致的封包,並沒有被記憶在前記記 憶部中時,則令前記已被取得之封包,被記憶在前記記憶部中。
  10. 如請求項2或請求項9所記載之資料處理裝置,其中,前記處理指令係含有:處理指令,其係進行,將1個封包的前記資料當成運算元的單項運算;前記比較選擇部,係當已被前記輸出入部所取得之前記封包的應被最先執行之處理指令係為進行前記單項運算的處理指令時,則將前記已被取得之封包,輸入至前記運算部。
  11. 如請求項2或請求項9所記載之資料處理裝置,其中,前記處理指令,係含有左右資訊,其係用來表示,當前記2項運算為非可換運算時,要將前記資料當作前記左側或右側運算元之哪一者;前記指令資訊的前記所定部分係為,前記指令資訊當中應被最先執行之處理指令的前記左右資訊以外之部分。
  12. 如請求項2或請求項9所記載之資料處理裝置,其中,前記記憶部係含有,儲存著前記封包的雜湊表;前記比較選擇部,係含有雜湊值算出部,係基於已被前記輸出入部所取得之前記封包的前記指令資訊的前記所定部分及前記識別資訊而算出雜湊值;當令前記已被取得之封包被記憶在前記記憶部中時,係將前記已被取得之封 包與前記雜湊值建立對應而儲存在前記雜湊表中。
  13. 如請求項1或請求項2所記載之資料處理裝置,其中,前記輸出入部,係將前記封包當中的前記目的地資訊並非表示前記處理部的封包,傳送至其他處理部。
  14. 如請求項13所記載之資料處理裝置,其中,前記輸出入部,係將前記封包當中的前記目的地資訊並非表示前記處理部的封包,傳送至相鄰於前記處理部的處理部。
  15. 如請求項14所記載之資料處理裝置,其中,前記複數處理部,係被配置成矩陣狀;前記輸出入部,係將前記封包當中的前記目的地資訊並非表示前記處理部的封包,傳送至接近於前記目的地資訊所示之處理部之方向上所相鄰之處理部。
  16. 如請求項1或請求項2所記載之資料處理裝置,其中,還具備:控制部,係根據記憶裝置中所記憶之程式而生成前記封包。
  17. 如請求項16所記載之資料處理裝置,其中,前記控制部係生成前記封包,前記封包的前記識別資訊是含有發行者資訊,前記發行者資訊是表示前記控制部,而且,前記控制部係將所生成的前記封包,發行至前記複數處理部之任一者;前記輸出入部,係當前記封包不含有應被處理之前記處理指令時,則將前記封包傳送回前記發行者資訊所示之控制部。
  18. 一種資料處理系統,其特徵為,具備: 如請求項16所記載之資料處理裝置;和記憶著前記程式的前記記憶裝置;和將含有前記資料及前記程式的資訊進行輸出入的輸出入裝置。
  19. 一種資料結構,係屬於被具備複數處理部、目的地資訊算出部的資料處理裝置所處理的複數封包之資料結構,其特徵為,前記複數封包,係對每一資料附加上擴充識別資訊所構成,前記擴充識別資訊係含有:用來識別前記資料的識別資訊、及表示對前記資料之1個以上之處理指令的指令資訊;前記複數封包當中,1個封包的前記資料,係為表示1個以上之處理指令的指令串;前記複數封包的前記處理指令係含有指令追加指令;前記目的地資訊算出部,係基於前記擴充識別資訊的至少前記指令資訊之位元列,而分別算出前記複數封包的目的地資訊;前記複數處理部係分別:在前記複數封包當中,僅取得前記目的地資訊是表示前記處理部的封包,並執行前記封包的前記處理指令;在執行前記指令追加指令時,係應被最先執行之處理指令係為前記指令追加指令的2個封包當中,將一方之封包的前記指令串亦即前記資料,當作另一方之封包的前記指令資訊而追加。
  20. 一種資料結構,係屬於被具備複數處理部、目的地資訊算出部的資料處理裝置所處理的複數封包之資料結構,其特徵為,前記複數封包,係對每一資料附加上擴充識別資訊所構成,前記擴充識別資訊係含有:用來識別前記資料的識別資訊、及表示對前記資料之1個以上之處理指令的指令資訊;前記複數封包當中,1個封包的前記資料,係為表示1個以上之處理指令的指令串,其他封包的前記資料,係含有表示進行指令追加處理之旗標;前記目的地資訊算出部,係基於前記擴充識別資訊的至少前記指令資訊之位元列,而分別算出前記複數封包的目的地資訊;前記複數處理部係分別:在前記複數封包當中,僅取得前記目的地資訊是表示前記處理部的封包,並執行前記封包的前記處理指令;在執行前記指令追加處理時,係將1個封包的前記指令串亦即前記資料,當作前記資料是含有前記旗標的其他1個封包的前記指令資訊而追加。
  21. 一種記錄媒體,其特徵為,其中所記錄的封包是具有如請求項19或請求項20所記載之資料結構。
  22. 一種記憶裝置,其特徵為,其中所記憶的封包是具有如請求項19或請求項20所記載之資料結構。
  23. 一種記錄媒體,其特徵為,記錄著:在如請求項 19或請求項20所記載之資料結構當中,前記識別資訊之至少一部分是被前記資料處理裝置的控制部所附加的中間封包。
  24. 一種記憶裝置,其特徵為,記憶著:在如請求項19或請求項20所記載之資料結構當中,前記識別資訊之至少一部分是被前記資料處理裝置的控制部所附加的中間封包。
  25. 一種資料處理系統,其特徵為,具備:如請求項22所記載之記憶裝置;和前記資料處理裝置;和將含有前記資料的資訊進行輸出入的輸出入裝置。
  26. 一種資料處理系統,其特徵為,具備:請求項24所記載之記憶裝置;和前記資料處理裝置;和將含有前記資料的資訊進行輸出入的輸出入裝置。
  27. 一種資料處理方法,係屬於用來處理對每一資料附加上擴充識別資訊而成之封包的資料處理方法,前記擴充識別資訊係含有:用來識別前記資料的識別資訊、及表示對前記資料之1個以上之處理指令的指令資訊;其特徵為,當前記指令資訊是表示複數處理指令時,則至少基於表示前記複數處理指令的位元列,而算出前記封包的目的地資訊;複數處理部係分別: 在前記封包當中,僅將前記目的地資訊是表示前記處理部的封包,加以取得;執行前記封包的前記處理指令。
  28. 一種資料處理方法,係屬於用來處理對每一資料附加上擴充識別資訊而成之封包的資料處理方法,前記擴充識別資訊係含有:用來識別前記資料的識別資訊、及表示對前記資料之1個以上之處理指令的指令資訊;其特徵為,算出前記封包的目的地資訊;複數處理部係分別:在前記封包當中,僅將前記目的地資訊是表示前記處理部的封包,加以取得;若前記封包的應被最先執行之處理指令係為,要進行將2個封包的前記資料分別當成左側及右側運算元之2項運算的處理指令時,則執行將前記指令資訊的所定部分及前記識別資訊為一致的2個封包的前記資料,分別當作前記左側及右側運算元,而進行前記2項運算的處理指令。
  29. 如請求項27或請求項28所記載之資料處理方法,其中,係隨著從前記擴充識別資訊的至少前記指令資訊之位元列所生成之擬似亂數,來算出前記目的地資訊。
  30. 如請求項28所記載之資料處理方法,其中,係隨著從前記指令資訊之前記所定部分及前記識別資訊之位元列所生成的擬似亂數,來算出前記目的地資訊。
  31. 如請求項27所記載之資料處理方法,其中, 前記複數處理部係分別在前記封包當中,僅將前記目的地資訊是表示前記處理部的封包,加以取得,執行前記封包之至少1者的處理指令,生成前記指令資訊是表示前記已被執行之剩餘處理指令的封包;當已被前記複數處理部所生成之封包的前記剩餘處理指令是複數存在時,則至少基於表示前記複數剩餘處理指令的位元列,來算出表示執行前記封包之前記剩餘處理指令之處理部的前記目的地資訊,藉此,在已被前記複數處理部所分別生成的封包當中,至少表示前記剩餘處理指令的位元列的所定部分為一致的2個封包,是被同一處理部所取得,而執行前記剩餘處理指令。
TW099139208A 2009-12-02 2010-11-15 Data processing device, data processing system, packet, recording medium, memory device and data processing method TWI533208B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009274033 2009-12-02
JP2010199711A JP5057256B2 (ja) 2009-12-02 2010-09-07 データ処理装置、データ処理システムおよびデータ処理方法

Publications (2)

Publication Number Publication Date
TW201120745A TW201120745A (en) 2011-06-16
TWI533208B true TWI533208B (zh) 2016-05-11

Family

ID=44114874

Family Applications (2)

Application Number Title Priority Date Filing Date
TW099139208A TWI533208B (zh) 2009-12-02 2010-11-15 Data processing device, data processing system, packet, recording medium, memory device and data processing method
TW099139370A TW201131381A (en) 2009-12-02 2010-11-16 Data processing device, data processing system and data processing method

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW099139370A TW201131381A (en) 2009-12-02 2010-11-16 Data processing device, data processing system and data processing method

Country Status (7)

Country Link
US (1) US8817793B2 (zh)
EP (2) EP2507718A4 (zh)
JP (3) JP5057256B2 (zh)
KR (1) KR101450675B1 (zh)
CN (1) CN102770855B (zh)
TW (2) TWI533208B (zh)
WO (1) WO2011068018A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698859B2 (en) 2009-09-18 2020-06-30 The Board Of Regents Of The University Of Texas System Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture
KR101731742B1 (ko) 2010-06-18 2017-04-28 보드 오브 리전츠 더 유니버시티 오브 텍사스 시스템 결합된 분기 타깃 및 프레디킷 예측
TW201346749A (zh) * 2012-02-08 2013-11-16 Mush A Co Ltd 資料處理裝置、資料處理系統、資料結構、記錄媒體、記憶裝置及資料處理方法
JP6353359B2 (ja) * 2012-03-23 2018-07-04 株式会社Mush−A データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
JP6298937B2 (ja) * 2013-10-14 2018-03-20 武者野 満 データ処理装置
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US9940136B2 (en) 2015-06-26 2018-04-10 Microsoft Technology Licensing, Llc Reuse of decoded instructions
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
CN108139898B (zh) * 2015-08-11 2021-03-23 起元技术有限责任公司 数据处理图编译
US10061584B2 (en) 2015-09-19 2018-08-28 Microsoft Technology Licensing, Llc Store nullification in the target field
US10936316B2 (en) 2015-09-19 2021-03-02 Microsoft Technology Licensing, Llc Dense read encoding for dataflow ISA
US10095519B2 (en) 2015-09-19 2018-10-09 Microsoft Technology Licensing, Llc Instruction block address register
US10198263B2 (en) 2015-09-19 2019-02-05 Microsoft Technology Licensing, Llc Write nullification
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings
US10031756B2 (en) 2015-09-19 2018-07-24 Microsoft Technology Licensing, Llc Multi-nullification
US10871967B2 (en) 2015-09-19 2020-12-22 Microsoft Technology Licensing, Llc Register read/write ordering
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US11977891B2 (en) 2015-09-19 2024-05-07 Microsoft Technology Licensing, Llc Implicit program order
US10180840B2 (en) 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions
US10719321B2 (en) 2015-09-19 2020-07-21 Microsoft Technology Licensing, Llc Prefetching instruction blocks
US10678544B2 (en) 2015-09-19 2020-06-09 Microsoft Technology Licensing, Llc Initiating instruction block execution using a register access instruction
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10776115B2 (en) 2015-09-19 2020-09-15 Microsoft Technology Licensing, Llc Debug support for block-based processor
MA44821A (fr) * 2016-02-27 2019-01-02 Kinzinger Automation Gmbh Procédé d'allocation d'une pile de registres virtuels dans une machine à pile
US11687345B2 (en) 2016-04-28 2023-06-27 Microsoft Technology Licensing, Llc Out-of-order block-based processors and instruction schedulers using ready state data indexed by instruction position identifiers
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US10963379B2 (en) 2018-01-30 2021-03-30 Microsoft Technology Licensing, Llc Coupling wide memory interface to wide write back paths
US10824429B2 (en) 2018-09-19 2020-11-03 Microsoft Technology Licensing, Llc Commit logic and precise exceptions in explicit dataflow graph execution architectures
WO2020251170A1 (ko) * 2019-06-13 2020-12-17 엘지전자 주식회사 무선랜 시스템에서 무선 광통신을 통한 상향 링크 전송 기법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
JP2568452B2 (ja) * 1990-02-27 1997-01-08 シャープ株式会社 データフロー型情報処理装置
JP2003162514A (ja) * 2001-11-27 2003-06-06 Nec Corp 複数プロセッサによる並列分散制御方式
US7590397B2 (en) * 2003-09-10 2009-09-15 Sony Corporation Signal processing apparatus and signal processing method, program, and recording medium
JP2005108086A (ja) * 2003-10-01 2005-04-21 Handotai Rikougaku Kenkyu Center:Kk データ処理装置
JP2005198267A (ja) * 2003-12-10 2005-07-21 Japan Telecom Co Ltd 中央演算処理装置、制御センタ装置、それらを用いたネットワークシステム、及びその通信制御方法
US7324605B2 (en) * 2004-01-12 2008-01-29 Intel Corporation High-throughput multicarrier communication systems and methods for exchanging channel state information
JP2005202873A (ja) 2004-01-19 2005-07-28 Sony Corp 分散処理システム、分散処理制御端末、分散処理方法、及び分散処理プログラム
JP2005259030A (ja) * 2004-03-15 2005-09-22 Sharp Corp 性能評価装置、性能評価方法、プログラムおよびコンピュータ読取可能記録媒体
JP2006053662A (ja) 2004-08-10 2006-02-23 Matsushita Electric Ind Co Ltd 多重プロセッサ
JP4923240B2 (ja) 2006-01-17 2012-04-25 国立大学法人東京工業大学 プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラ、並列処理コンパイラを格納した記録媒体およびマルチプロセッサシステム
KR101399361B1 (ko) * 2006-08-25 2014-05-26 삼성전자주식회사 무선 통신 방법 및 장치
US7441099B2 (en) * 2006-10-03 2008-10-21 Hong Kong Applied Science and Technology Research Institute Company Limited Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
JP2008130712A (ja) 2006-11-20 2008-06-05 Hitachi Maxell Ltd 3端子型結晶シリコン素子

Also Published As

Publication number Publication date
JP2012194992A (ja) 2012-10-11
US8817793B2 (en) 2014-08-26
EP2507718A1 (en) 2012-10-10
CN102770855A (zh) 2012-11-07
TW201120745A (en) 2011-06-16
JP2011138479A (ja) 2011-07-14
JP5057256B2 (ja) 2012-10-24
CN102770855B (zh) 2015-06-17
EP2507718A4 (en) 2017-12-27
JPWO2011068018A1 (ja) 2013-04-18
TW201131381A (en) 2011-09-16
WO2011068018A1 (ja) 2011-06-09
KR20120101433A (ko) 2012-09-13
KR101450675B1 (ko) 2014-10-14
US20130028260A1 (en) 2013-01-31
EP2509002A1 (en) 2012-10-10

Similar Documents

Publication Publication Date Title
TWI533208B (zh) Data processing device, data processing system, packet, recording medium, memory device and data processing method
US10025594B2 (en) Parallel data processing apparatus, system, and method
JP4283131B2 (ja) プロセッサ及びコンパイル方法
JP6163171B2 (ja) ソート加速プロセッサ、方法、システムおよび命令
JP3797471B2 (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
CN108027769A (zh) 使用寄存器访问指令发起指令块执行
JP6340097B2 (ja) リードマスク及びライトマスクにより制御されるベクトル移動命令
CN108027729A (zh) 分段式指令块
JP6066423B2 (ja) データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法
CN108027773A (zh) 存储器访问指令顺序编码的生成和使用
CN108027731A (zh) 针对基于块的处理器的调试支持
CN107851013B (zh) 数据处理装置和方法
CN104838357A (zh) 瓦解的多嵌套循环的向量化
JP7324754B2 (ja) ベクトル・キャリー付き加算命令
JP6353359B2 (ja) データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法
CN114327635A (zh) 用于处理器的非对称执行端口和分配宽度的可缩放端口绑定的方法、系统和装置
CN112947999B (zh) 一种精简指令集计算机指令功能扩展的方法及装置
US5774740A (en) Central processing unit for execution of orthogonal and non-orthogonal instructions
CN113841126A (zh) 存储寄存器数据元素的处理器、系统及方法
JPH117388A (ja) プロセッサ