マルチセルラヌプロセッサ-それは䜕ですか

倚くの人が、マルチセルラヌアヌキテクチャ、プロセッサ、およびそれらの最初のデバむスに぀いおも聞いおいたす。 特に䞊玚ナヌザヌはアルゎリズムをテストしたした。 最初の簡単なパフォヌマンステストず、P1プロセッサチップを゚ッチングしたBarsmonsterナヌザヌが実斜されたした。 R1プロセッサはすでに最初のテストを受けおおり、すぐにすべおの人が利甚できるようになりたす。 しかし、倚现胞構造がどのように機胜し、その違いは䜕かずいう質問に察する答えを誰もが知っおいるわけではありたせん。 物事を最新のものにするために今すぐ詊しおみたしょう。



1.倚现胞性

マルチセルラヌコアは、完党に接続された単方向スむッチング環境によっお結合された、同䞀のプロセッサナニット2぀以䞊のグルヌプです。 プロセッサナニット間の盞互䜜甚の特性は、アルゎリズムの説明からわかりたすこれに぀いおは以䞋で詳しく説明したす。 マルチセルラヌアヌキテクチャのプロセッサナニットは、セルず呌ばれたす。 実行できるコマンドのセットは、特定の実装によっお決定され、アヌキテクチャに䟝存したせん。



倚现胞栞のアルゎリズム「目」

たず第䞀に。

どの匏も、階局䞊列圢匏NPFの圢匏で衚すこずができたす。 怜蚎する

単玔な䟋g = e *a + b+ac* f、NPSでは次のようになりたす。









図1. NPSの䟋



䞀般に、操䜜を実行するために、i番目の局にあるノヌドは、1番目からi-1番目たでの局で取埗した結果を䜿甚できたす。 したがっお、同じ局にあるチヌムは独立しおいたす。

アルゎリズムは、䞀連の匏であり、サブセット線圢セクション、コントロヌル転送挔算子によっお盞互接続されおいるに分割されたす。 線圢セクションLUは、特定の線圢セクションに制埡が移される堎合にのみ蚈算される数匏のサブセットです。 線圢セクション内では、情報的に無関係な数匏を任意の順序で実行できたす。



ご存じのように、任意のコマンドのプロセッサによる実行の結果は、プロセッサの状態の倉化で衚されたす。 埌続のチヌムがこの新しい状態を䜿甚するず、結果の゜ヌスコマンドずこの結果の受信者コマンド間の情報リンクが圢成されたす。 このような関係は、間接間接たたは盎接盎接のいずれかです。



間接的なコミュニケヌションでは、結果は疎倖された埌にのみ利甚可胜になりたす。぀たり、公共のレゞスタヌやメモリたたはその他のデバむスに蚘録したす。 sourceコマンドは結果をこれらのデバむスに配眮する必芁があり、receiverコマンドはそこからデヌタを取埗する必芁がありたす。 デバむス名はオペランドずしお指定されたす。 チヌム間のこのような接続は、マルチセルラヌを陀く、すべおの最新のプロセッサヌの基本です。



盎接的な情報通信の堎合、チヌムには名前が付けられ、名前はチヌムの堎所やその他の実装機胜ではなく、チヌム自䜓を識別する必芁がありたす。 結果には、゜ヌスチヌムずレシヌバヌチヌムの䞡方の名前でアクセスできたす。 最初のケヌスでは、ブロヌドキャストが䜿甚され、続いおロヌルコヌルが遞択されたす。この堎合、゜ヌスコマンドの名前は、宛先コマンドのオペランドフィヌルドで指定されたす。 2番目では、ロヌルアりトが実行され、゜ヌスコマンドが結果の宛先コマンドの名前を蚭定したす。



理論的には、NPSのノヌドには任意の名前を付けるこずができたす。 唯䞀の芁件は䞀意性です。 これを行うために、マルチセルラヌプロセッサでは、チヌムはメモリからフェッチするずきにタグラベルを受け取りたす-したがっお、ロヌカル名ず結果が䞎えられたす-そしお、チヌム間の盞互䜜甚はタグを介しお線成されたす。 デヌタは、独自のタグよりも䜎いタグを持぀チヌムから取埗できたす。 目的の結果のタグ番号は、コマンドタグの倀ず目的の結果のタグの倀の差によっお蚭定されたす。 たずえば、オペランドに@ 5が指定され、コマンドタグが7の堎合、タグ2のコマンドの結果がオペランドずしお䜿甚されたす。コマンド実行のすべおの結果はスむッチング環境に送信され、そこから必芁なものがタグによっお遞択されたす。 したがっお、マルチセルラヌプロセッサでは、ブロヌドキャスト結果は名前による埌続の遞択で䜿甚されたす。



物理的な制限により、受信偎コマンドからの゜ヌスコマンドの最倧距離を決定する「可芖性りィンドり」の抂念があるこずに泚意しおください。 コマンドを取埗するプロセスのタグは呚期的に倉化したす。 その最倧倀は、コマンドバッファヌのサむズによっお決たりたす。 実際、タグのサむズによっお、実行の異なる段階で同時に実行できるコマンドの数が決たりたす。 以前に割り圓おられたコマンドがただ実行されおいない堎合、タグ倀は䜿甚できたせん。



第二に。

マルチセルラヌプロセッサは、段萜ず呌ばれる構造で動䜜したす。

段萜は、情報ずしお閉じられた䞀連のコマンドです。 段萜はコマンドの類䌌物であり、その埌、プロセッサおよび/たたはその構成内のシステムレゞスタ、バス、メモリセル、入力/出力チャネルなどの状態が倉化したす。 ぀たり 倚现胞栞の堎合、段萜はコマンドです。

マルチセルラヌアヌキテクチャの䞻な機胜は、アルゎリズムのJPF衚珟を盎接実装するこずです。 このアルゎリズムの理解から、倚现胞アヌキテクチャの倚くの特性が続きたす。



2.マルチセルラヌアヌキテクチャのプロパティ





段萜2で説明されおいるアルゎリズムで段萜がどのように芋えるかをさらに詳しく考えおみたしょう。









倚现胞栞の堎合、次の段萜の構成スキヌムが特城的です必須ではありたせん。䞊蚘の䟋にも偏差がありたす。



段萜の終わりで、マルチセルラヌプロセッサのマシンの状態が倉化するこずを思い出しおください。



アルゎリズムはセルの数に䟝存したせん。

チヌム間の情報接続は明瀺的に瀺されおおり、プログラムの䜜成時にプロセッサナニットの数を知る必芁はありたせん。 チヌムは、オペランドの準備が敎うのを埅っおから、実行に移り、い぀誰がオペランドを準備するかを気にしたせん。 氎たき猶を想像しおみおください-氎たきの際にノズルにいく぀の穎があるかは考えたせん。 セルは同䞀であり、このセルたたはそのコマンドが実行されるセルに違いはありたせん。

チヌムは、セルが埓う順序で、1セルが0セル、2チヌムが1セルなどの順序でセルに分散されたす。チヌムが最埌の䜿甚可胜なセルに転送されるず、0セルから再分散が開始されたす。 4现胞栞の仕事を考えおみたしょう。 䞊蚘の段萜は次のように実行されたす。









図2.セルによるチヌムの分垃



同時に実行されるコマンドの数は、セルの数によっお異なりたす。 各タスクに最適なセル数を遞択するこずは、分析が必芁なタスクです。 普遍的なシステムを䜜成するこずはただ機胜しないため、次のデヌタに焊点を圓おるこずができたす4぀のセルは䞀般的なタスクに非垞に優れおおり、16のセルは信号凊理タスクに優れおいたす。

コヌドを分析しお、それらに最適なセル数を想像できたす。 これを行うには、NPSでアルゎリズムを提瀺し、階局内のチヌムの数を蚈算する必芁がありたす。 それらのチヌムの平均数は、特定のケヌスでのセルの最適数を瀺唆したす。



実行可胜なすべおのコマンドは同時に実行されたす。

䞊蚘のように、倚现胞栞はアルゎリズムのJPF衚珟を実装し、独立したチヌムが局に配眮されたす。 珟時点でできるこずはすべお、プログラマからの特別な指瀺なしに実行されたす。䞻な条件は、チヌムが実行のためにすべおのデヌタを受信する必芁があるずいうこずです。



技術的な制限を考慮する必芁がありたす。セルの数が制限されおいるため、ニュヌクリアスにあるセルず同じ数のコマンドが同時に実行されたす。



「ホむヌルアラむメント」たたはコンピュヌティングリ゜ヌスの動的割り圓お

なぜなら コヌドは、実行されるセルの数に䟝存せず、操䜜䞭にコンピュヌティングリ゜ヌスを分散する倚现胞栞の胜力が珟れ、制埡はプログラムによっお実行されたす。

リ゜ヌスを再配垃するマルチセルラヌアヌキテクチャの胜力は、 再構成ず呌ばれるものです。 たずえば、倚现胞栞の现胞は、任意のアルゎリズムたたはその䞀郚を実行するために任意に分散できたす。 グルヌプただ良い名前を思い぀いおいたせんは、任意のアルゎリズムたたはアルゎリズムの䞀郚を実行するために盞互接続されおいる倚现胞栞のセルの䞀郚です。 グルヌプには1぀以䞊のセルを含めるこずができたす。 倚现胞栞がグルヌプを郚分に分割するずき、これは分解ず呌ばれたす。 グルヌプ化のプロセスは合成です。 䞋の図3は、4セルのニュヌクリアスが時間ずずもにどのように再構成されるかを瀺しおいたす䟋。 1぀のタスクを実行するセルには、1぀の色が塗り぀ぶされたす。









図3.セル再構成の䟋。



消費電力の削枛。 仕事があるずきに機胜したす。

マルチセルラヌアヌキテクチャの基本的な基盀はブロヌドキャストです。 これたでのずころ、これは盎接的な情報通信を䜿甚しおプログラム内のチヌム間でデヌタを転送する唯䞀のアヌキテクチャです。



4セルプロセッサによるコヌド実行の䟋を瀺す図1に泚目するず、セルは実行準備ができおいるずきに階局にあるコマンドを実行するこずは明らかです。 結果はスむッチング環境に眮かれ、消費者を埅っおいたす。



倚现胞栞は䞍必芁なアクションを実行せず、仕事があるずきに機胜したす。 プロセッサのコンポヌネントのいずれかがコマンドを実行する準備ができおいない堎合、解攟されるたでそのコンポヌネントでの䜜業は䞭断されたす。



スケヌラビリティ、セルの数に制限はありたせん。

アヌキテクチャはセルの数を制限したせん。 重芁なのはテクノロゞヌです。

倚数のセルを敎理するにはいく぀かのオプションがありたすが、これは別の蚘事のトピックであり、埌で準備したす。



3実装

肉䜓のマルチセルラヌプロセッサ

マルチセルラヌプロセッサは、0〜n-1の番号を持぀N個の同䞀セルで構成され、スむッチングメディアによっお結合されたす。 各セルにはプログラムメモリナニットPM、コントロヌルナニットCU、バッファデバむスBUFが含たれ、各セルはスむッチングデバむスSUに察応し、その組み合わせがスむッチングメディアSBを圢成したす。 プロセッサには、デヌタメモリDM、汎甚レゞスタブロックGPR、および実行ナニットEUも含たれたす。これらは、浮動小数点数の算術論理デバむスALU_FLOAT、敎数のALUALU_INTEGER、およびメモリアクセスナニットで構成されたすデヌタDMS。



マルチセルアセンブラのプログラムは、段萜で構成されおいたす。 䟋



Paragraph: ;  jmp paragraph_next ;     complete
      
      







実際、次の段萜に移動するコマンドは珟圚の段萜のどこにでも配眮できたすが、珟時点ではこれに焊点を合わせおいたせん。 この䟋では、パラグラフはラベル「Paragragh」からコマンドのセクションの最埌のラベル「complete」たでのすべおのコマンドです。



段萜では、コマンドをランダムに䞊べるこずができ、チヌムは「@」挔算子を䜿甚しお以前のコマンドの結果を参照できたすが、珟圚のコマンドよりも64桁高いコマンドの結果は参照できないこずに泚意しおください。 ぀たり 各コマンドの結果の可芖性りィンドりは64ですが、段萜のサむズは制限されおいたせん。 少なくずも数千のチヌムで構成できたす。 䟋を考えおみたしょう



 Paragraph: getl 2 ;    getl 3 ;    addl @1, @2 ; 2 + 3 addl @1, @3 ; 5 +2 jmp paragraph2 complete
      
      





この䟋では、addl @ 1、@ 2コマンドは前の2぀のコマンドを远加し、addl @ 1、@ 3コマンドは前のコマンドの結果ずコマンドの結果を远加したす。



ある段萜から別の段萜に移動するず、プロセッサの状態が倉わりたす。 メモリぞの曞き蟌み、レゞスタの読み取りは、レコヌドの読み取り制埡が有効になっおいる堎合、たたは盎接読み取りおよび曞き蟌みコマンドが䜿甚されおいない堎合に、段萜の最埌に発生したす。 しかし、読み取りおよび曞き蟌み制埡を無効にする可胜性がありたす。 メモリヌぞの曞き蟌みは、その完了を埅たずに段萜自䜓で行われたす読み取りおよび曞き蟌み制埡を無効にできる堎合は、メモリヌを操䜜するずきにパフォヌマンスが著しく向䞊したす。 実際、マルチセルラヌプロセッサヌを最倧限に掻甚するのは簡単ですが、これは別の蚘事のトピックです。



状況䟝存プログラムを実行するために、各段萜のコマンドは、PMセルに配眮された同じアドレスこの段萜のアドレスから順番に実行されたす。 最初の実行可胜な段萜の堎所アドレスは、セルがコマンドを遞択するアドレスず同じです。 その結果、段萜のアドレスから始たるi番目のセルのPMに、番号i、N + i、2 * N + i、...のコマンドが順番に配眮されたす。



各セルは、指定されたアドレスから始たり、呜什を順番に遞択し、埌続のデコヌドのために呜什レゞスタに配眮したす。 セルコマンドは同期的に遞択されたす。



N個のコマンドの次の遞択された各グルヌプをデコヌドするずき、次のタグ倀tが割り圓おられ、グルヌプからのグルヌプの番号ずそれに応じた結果が割り圓おられたす。 呜什の遞択ずデコヌドは、制埡蚘号「段萜の終わり」完了でマヌクされたコマンドが遞択されるたで続きたす。 新しい段萜のアドレスは、珟圚の段萜のコマンドの遞択䞭、たたはコマンドの遞択完了埌にい぀でも受信できたす。 すべおのセルに同時に入りたす。 最埌の段萜コマンドの遞択時に次の段萜のアドレスが蚈算されない堎合、遞択はアドレスが受信されるたで䞭断されたす。 アドレスが受信されるず、このアドレスから遞択が続行されたす。 遞択されたコマンドは、第1オペランドのバッファヌ、第2オペランドのバッファヌ、およびコマンド操䜜コヌド、タグなどのバッファヌで構成されるバッファヌデバむスに到達したす。バッファヌデバむスはコマンドを生成し、察応する実行デバむスに送信したす。



操䜜郚呜什バッファヌは、呜什コヌドに加えお、結果を送受信するために必芁なすべおのサヌビス情報、぀たり呜什番号ず、呜什を実行するための第1第2オペランドの準備の兆候を含みたす。



オペランドストレヌゞバッファは連想的にアドレス指定されたす。 連想

アドレスは、芁求された結果のタグです。 操䜜䞭のオペランドずしお、以䞋を䜿甚できたす。



最初のケヌスでは、コマンドを曞き蟌む際のこのオペランドの準備フラグは「準備完了」状態に蚭定され、2番目のケヌスでは「準備完了」状態に蚭定されたす。 スむッチングデバむスから芁求された結果を受信した埌、最初のケヌスでは、サむンも「準備完了」に蚭定されたす。 すべおのオペランドを受け取ったコマンドは、バッファデバむス内の他の既補のコマンドの䞭から優先順䜍が遞択され、その埌、実行デバむスが䜿甚されおいない堎合、実行のために発行されたす。



プロセッサP1では、個別のメモリ領域が各セルに割り圓おられたした。 プログラムメモリずデヌタメモリは重耇したせんでした。 プロセッサR1では、プログラムメモリずデヌタメモリは同じアドレス空間にありたす。 セルには、プログラムメモリずデヌタメモリぞのアクセスチャネルがありたす。 図4は、プロセッサP1の䞀般的な構造を瀺しおいたす。 図5は、プロセッサヌR1のセル構造ずその説明を瀺しおいたす。









図4.マルチセルラヌプロセッサの䞀般的な構造



算術論理デバむスALUは、DMSナニットずずもに、各セルCELLで䜿甚可胜なアクチュ゚ヌタヌのセットの䞀郚です。



セルの構成には、次のデバむスが含たれたす。

1.デバむス遞択コマンドIDU呜什配垃ナニット。

2.制埡デバむス。

3.スむッチングデバむスSUスむッチナニット。

4.バッファデバむス。

5.æ•Žæ•°ALU。

6. ALU浮動小数点。

7.デヌタメモリDMSデヌタメモリサヌビスぞのアクセスをブロックしたす。

8.結果のマルチプレクサ。

9.レゞスタセットGPR汎甚レゞスタ。

10.割り蟌みコントロヌラヌIC割り蟌みコントロヌラヌ。

11.ブロックJTAG-GPRのデバッグ。



詳现なセル構造を図5に瀺したす。









図5.セル構造。



アクチュ゚ヌタの実行結果は、スむッチングデバむスに送信されたす。

æ•Žæ•°ALU、浮動小数点を持぀ALU、およびDMSコマンドの実行結果が同時に準備できおいる堎合、スむッチングデバむスはALU浮動小数点コマンドの実行結果を受け取りたす。 アクチュ゚ヌタは、結果を読み取る優先床に埓っお次のように配垃されたす。



1.浮動小数点を䜿甚したALU;

2.DMS;

3.æ•Žæ•°ALU。



珟圚のサむクルではスむッチングデバむスに結果を発行できない゚グれクティブデバむスは、コマンドの結果を出力レゞスタに曞き蟌み、結果が発行されるのを埅ちたす。

䞊蚘の状況は、コマンドを実行するために必芁な察策の数が非決定的な量であるずいう結果になりたす。

各セルには、敎数ALUず浮動小数点数甚のALUの2぀のALUがありたす。

æ•Žæ•°ALUは、敎数オペランドでコマンドを実行するように蚭蚈されおいたすが、オペランドは次の圢匏で衚瀺できたすコマンドに応じお。





浮動小数点を䜿甚するALUは、IEEE-754芏栌の芁件に埓っお、単粟床32ビットたたは倍粟床64ビットの浮動小数点数の圢匏で衚瀺されるオペランドでコマンドを実行するこずを目的ずしおいたす。

構造的に、浮動小数点ALUは3぀の郚分で構成されたす。





マルチセルラヌプロセッサずマルチコアプロセッサの違いは䜕ですか

1぀たたは耇数のコアで構成される埓来のプロセッサでは、実行の基本単䜍は特定の順序で実行されるコマンドです。 マルチセルラヌプロセッサでは、実行の基本単䜍は段萜です。 無制限の数のチヌムで構成される線圢セクション。その埌、指定されたラベルを持぀別の線圢セクションに移行したす。 このセクションのコマンドは、可胜な堎合は䞊行しお実行されたす。 䞊列化はハヌドりェアで行われたす。 プログラマは、チヌムがどのセルに入るかを心配する必芁はありたせん。 これが「自然な䞊列凊理」です。 この結果、同じコヌドを任意の数のセルで実行できたす。 マルチセルラヌプロセッサのもう1぀の違いは、ブロヌドキャストを䜿甚したコマンド凊理の結果の送信です。倚くのシングルコアシステムでは、結果はメモリずレゞスタを介しお送信されたす。 もちろん、マルチセルラヌプロセッサには、線圢セクション間でデヌタを転送するためのメモリずレゞスタがありたすが、線圢セクション内では、レゞスタずメモリを䜿甚せずに基本的な操䜜を実行できたす。 この事実により、消費電力の削枛の結果ずしお、マルチセルアヌキテクチャの実装が簡単になり、メモリアクセスが削枛されたす。 さらに、1぀、2぀、...、256個のセルで同じプログラムを実行するず、セルを再構成タスクグルヌプに結合しお、フォヌルトトレラントプロセッサずスケヌラビリティを䜜成できたす。



この蚘事の埌半で、䞊列凊理ず再構成の問題に戻りたす。



4.䟋

マルチセルラヌプロセッサは4぀のセルおそらく256以䞊で構成され、セルは完党に等しく、スむッチング環境スむッチによっお結合されたす。 セルのコマンドを実行した結果はスむッチに保存されたす。

アセンブラプログラムは、コマンドを含むセクションず段萜に分割されたす。

セル間の情報亀換にはスむッチが䜿甚され、段萜間の亀換にはRON、むンデックスレゞスタ、デヌタメモリがありたす。 呚蟺機噚を操䜜するための呚蟺機噚レゞスタがありたす。

次の圢匏のステヌトメントを陀倖するには



簡単なプログラムを考えおみたしょう。









図2.セルによるチヌムの分垃



図2に瀺すように、段萜のチヌムはセル間で分散されたす。 各セルのコマンドは䞊列に実行されたす「自然な䞊列凊理」。 コマンドの実行は、匕数の準備ができたずきに発生したす。 この堎合、プログラムは4぀のセルのグルヌプによっお実行されたす。 プログラムは、4の䞡方で正垞に実行されるため、他の任意の数のセルでも実行されたす。 倚现胞アヌキテクチャの基本原則は、现胞は互いに独立しおおり、誰からも独立しおおり、同じであるずいうこずです。 この原則は、再構成のあるプロセッサヌに適甚されたす。



再構成 -プロセッサセルがグルヌプに構成収集および分解分析する胜力、すなわち セルが1぀のセルからNNセルプロセッサの堎合たでグルヌプにたずめられ、独自のコヌドセクションを実行する胜力。 デフォルトでは、プログラムを開始するず、すべおのセルが1぀のグルヌプに属したす。 各グルヌプには独自のRON、むンデックス、制埡レゞスタのセットがあるため、独自の割り蟌みハンドラを割り圓おるこずができたす。

フォンノむマンアヌキテクチャに関する蚘事で、 Leonid Chernyakは、次の3皮類の再構成可胜なプロセッサを特定しおいたす。

1専甚プロセッサヌ

2構成可胜なプロセッサヌ

3動的に再構成可胜なプロセッサ䟋ずしお、L。Chernyak-FPGAによる蚘事の公開時に存圚するこの皮の唯䞀のクラスが提䟛されたす。

最初の2぀のタむプは補造プロセスで特異性を獲埗し、3番目のタむプはプログラム可胜です。



この分類によるず、マルチセルラヌプロセッサR1は動的に再構成できたすが、チップ䞊のプロセッサであり、マシンコヌドの独立性により、FPGAずは異なり、リ゜ヌスセルの再分配は、プロセッサを停止たたは再起動せずに、情報を倱うこずなく行われたす。 したがっお、MultiClet R1は、3番目の皮類の新しいクラスです最初のクラス-FPGA。

これたで、䞖界でこのようなプロセッサヌを補造した人はいたせんでした。

L. Chernyakによっお提案された分類は、将来の開発に合わせお調敎され、4番目のタむプによっお開発できたす。

4 自己適応プロセッサヌ 、

すべおのシステムの動䜜を独立しお保蚌し、リ゜ヌスを自動的に再配分できたす。 損傷、障害、たたは远加のタスクが発生した堎合、プロセッサたたはプロセッサのシステムは新しい条件に適応できる必芁がありたす。

そのようなシステムを䜜成する最初のステップは、おそらく、Multiclet L1プロセッサたたはそれに基づくCMSです。



セルの分解グルヌプぞの分割の䟋を考えおみたしょう











この䟋では、0ず1の番号を持぀セルが蚈算を実行し、セル2がセンサヌから情報を収集し、セル3が䜜業レポヌトをコンパむルしお倖郚環境ず察話する3぀のグルヌプにパヌティションを分割しおいたす。 セル0ず1がデヌタを凊理する時間がないこずが発生した堎合、セル3が助けになり、2぀のグルヌプを取埗できたす。 セルの再構成にはプロセッサのリセットは䞍芁であるこずに泚意するこずが重芁です。 セル3は、セル0ずセル1で同じ蚀語を話したす。 RONのセット、むンデックスレゞスタ、および制埡レゞスタはそれらを取埗したす。

アセンブラヌの通垞のプログラムの簡単な䟋暙準Cで蚘述できたす



 .text habr: getl 4 ;    getl 5 ;     addl @1, @2 ; 4 + 5 = 9 mull @3, @2 ; 4 * 5 = 20 subl @1, @2 ; 20 – 9 = 11 slrl @1, 2 ; 11 << 2 = 44 subl @1, @2 ; 44 – 11 = 33 mull @4, @5 ; 20 * 9 = 180 jmp habrahabr ;    complete habrahabr: getl 5 ;    addl @1, [10] ;        10 setl #32, @1 ;     32 complete
      
      







段萜は、「。text」ずいうラベルの付いたセクションにありたす。 段萜には無制限の数のコマンドを含めるこずができたすプログラムメモリで蚱可されおいる限りが、各コマンドは、63行以内の結果のコマンドにしか倉換できたせん。



䟿宜䞊、アセンブラヌでは、各コマンドにラベルを蚭定できたす。次に䟋を瀺したす。



 habr: arg1 := getl 5 ;    sum1 := addl @arg1, [10] ;        10 setl #32, @sum1 ;     32 complete
      
      





マルチセルラヌプロセッサには、遞択した操䜜チヌムず機胜デバむス間でのそれらの分散ずの間の情報リンクを識別するこずができるハヌドりェアはありたせん。 動的な䞊列化はありたせん。 静的な䞊列化はありたせん。 プログラムは情報の接続を蚘述したすが、線圢圢匏であり、䜕をどのように䞊列に実行できるかの指瀺は含たれおいたせん。 これは、他のプロセッサずの根本的な違いです。 同じ機胜により、マルチセルラヌプロセッサは朜圚的に存続可胜です。 個々のセルに障害が発生した堎合プロセッサの劣化、再コンパむルたたは再起動せずにプログラムを継続的に実行できる可胜性。



リ゜ヌスを動的に分散するマルチセルラヌプロセッサの特性により、䞀郚のセルに障害が発生した堎合でもタスクを実行できるシステムを䜜成できたす。



劣化は生産性の䜎䞋に぀ながり、その結果、問題を解決するための時間が長くなりたす。 しかし、倚くの組み蟌みアプリケヌションでは、マルチセルラヌプロセッサの掻力により、管理察象オブゞェクトは、品質を䜎䞋させるか、二次問題の解決を拒吊するこずにより、基本機胜を実行できたす。

システムレベル-セル間䞊列性を実装する堎合および现胞内レベル-セルブロック間コマンドを実装する堎合の䞡方で、マルチセルラヌプロセッサの非同期および分散化された組織は、さらに以䞋を提䟛したす。







その結果、プロセッサの耇雑さを劇的に削枛し、それに応じおコストを削枛し、蚭蚈品質を改善できる、適切に構造化されたモゞュヌル匏システムを取埗したす。 さらに、フォンノむマンモデルず比范しお、プロセッサの定量的特性も向䞊しおいたす。



珟時点では、POCNTや暗号化アルゎリズムなどの単玔なアルゎリズムのテストが実斜されおいたす。 アセンブラヌ甚のプログラムはpopcntテスト甚に䜜成されたもので、結果をCのPentium Dual Core 5700甚の単玔なプログラムず比范したした。

テスト結果は、次の衚に芁玄できたす32ビット蚈算サむクルあたりのクロックサむクル数。







぀たり テヌブルテストのMulticlet R1プロセッサはIntelプロセッサより15高速であり、BitHacksテストではMulticlet R1プロセッサはIntelの2倍以䞊高速であるず結論付けるこずができたす。 マルチセルラヌプロセッサのpopcntテストは、単玔に䞊列コンピュヌティングに倉換されたした。 もちろん、新しいIntelプロセッサにはpopcntのハヌドりェア実装がありたすが、このテストではプロセッサの機胜を瀺したした。



5.今䜕を持っおいたすか

珟時点では、Multiclet P1プロセッサがリリヌスされおおり、2぀のデバッグボヌドず同様に泚文可胜です。











さらに、Multiclet Key_P1情報保護デバむスは最初のマルチセルラヌプロセッサで開発され、最初の生産バッチは2014幎9月に予定されおいたす。











さらに、P1プロセッサヌに基づいお、Wirschke LLCの箔抌し甚プリンタヌが開発され、暙準ずしお提䟛されたした。











ナヌザヌは積極的にマルチセルラヌプロセッサをマスタヌし、ラむブラリを補完し、新しい有甚なサンプルを䜜成しおいたす。











R1プロセッサの最初のバッチが受信され、新しいプロセッサのテストが開始されたした。

プロセッサの最初のリビゞョンはR1-1ず呌ばれたす。

繰り返したすが、新しいプロセッサは別の蚘事のトピックであり、最初のリビゞョンのプロセッサの特性を少し埌で公開したす。











このプロセッサ甚に、LDM-Systemsはベヌスずプロセッサで構成されるデバッグボヌドをリリヌスしたした。ブロック付きの写真バヌゞョン。カスタムバヌゞョンは若干異なりたす。ベヌスボヌドのパッケヌゞバンドルはタスクに合わせお遞択できたすが、最倧構成では、ベヌス+プロセッサボヌドのコストは蚱容範囲内です。











゜フトりェア・バンドルが含たれおいたす

•アセンブラ

•Cコンパむラ

•機胜モデル

•ラむブラリ

•IDE Geanyのためのデバッガ

•OS FreeRTOS

•プログラム䟋

•プロッタ



あなたがこの蚘事を気に入った堎合はPSが、倧音量にもかかわらず、私は続線プログラミングプロセッサを曞くこずができ、レビュヌのCPU R1ずマルチセルラヌプロセッサで高性胜システムを構築する原則。



UPD popcntアルゎリズムの実行時間をチェックするプログラムは、サむトwww.strchr.com/crc32_popcntから取埗されたす。。既に蚘事で述べたように、ハヌドりェアレベルで実装された特定の呜什を必芁ずするIntelプロセッサのpopcntテストを実装するための他の高速アルゎリズムがありたす。マルチセルラヌアヌキテクチャの機胜を評䟡するために、Table and Bit hacksアルゎリズムが採甚されたした。



UPD2図2を曎新。add @ 3、@ 2コマンドは2行にたたがる必芁があり、mpy @ 4、@ 3コマンドは期間が短瞮されたした。それに察する議論は以前に準備ができおいたので、段萜の党䜓の長さも短くなりたした。mpyコマンドもmulに眮き換えられたした。



UPD3各セルには、64チヌム甚のバッファヌが含たれおいたす。セルによる段萜呜什の遞択は実行ず䞊行しお継続され、次の段萜の遞択は、その遷移のアドレスがわかっおいる堎合にのみ開始できたす。



All Articles