JP2013156783A - プロセッサ・コア、およびマルチコア・プロセッサ・システム - Google Patents
プロセッサ・コア、およびマルチコア・プロセッサ・システム Download PDFInfo
- Publication number
- JP2013156783A JP2013156783A JP2012015988A JP2012015988A JP2013156783A JP 2013156783 A JP2013156783 A JP 2013156783A JP 2012015988 A JP2012015988 A JP 2012015988A JP 2012015988 A JP2012015988 A JP 2012015988A JP 2013156783 A JP2013156783 A JP 2013156783A
- Authority
- JP
- Japan
- Prior art keywords
- core
- fifo
- inter
- cores
- value
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 275
- 230000008569 process Effects 0.000 claims abstract description 199
- 238000012545 processing Methods 0.000 claims abstract description 84
- 238000004891 communication Methods 0.000 claims abstract description 76
- 230000006870 function Effects 0.000 claims description 119
- 238000011144 upstream manufacturing Methods 0.000 claims description 102
- 230000015654 memory Effects 0.000 claims description 44
- 239000004065 semiconductor Substances 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 9
- 230000001174 ascending effect Effects 0.000 claims description 2
- 238000011017 operating method Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101710192523 30S ribosomal protein S9 Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101710171204 30S ribosomal protein S20 Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】FIFO200を利用するプロセス間通信を含む一連の命令実行プロセスを処理するための複数のコアを備えるプロセッサ1000において、プロセッサの少なくとも二つのコア100A、100Bにはコア間割込信号fintを伝達可能な信号路140が接続されている。少なくとも二つのコアそれぞれは、コア間割込みカウント設定レジスタ(ICSR)110A、110BとFIFOカウンタ120A、120Bとを有するとともに、コア間割込同期機能、コア間割込生成機能、FIFOカウンタ更新機能が処理可能である。
【選択図】図1
Description
[1 構成]
以下図面を参照し本実施形態の複数のコアを含むプロセッサの構成について説明する。図1は、本実施形態のプロセッサ1000の一例の構成を含むコンピュータ1の全体構成を示すブロック図である。コンピュータ1はCPU(中央演算装置)2000を備えており、CPU2000は適当なバス3000を通じてプロセッサ1000と通信可能になっている。プロセッサ1000は一例として、複数の同様に構成されたものがコンピュータ1の構成の一部として接続されている。この構成では、プロセッサ1000はCPU2000と連携して動作する。ただし、このような利用方法がプロセッサ1000の唯一の利用方法ではない。例えばプロセッサ1000が単数のみ含まれている場合や、コンピュータ1がCPU2000を持たずにプロセッサ1000のみが含まれている場合もある。また、本実施形態のプロセッサは任意の電子機器に利用することができるものである。
複数のコアのうちの少なくとも二つのコア100Aおよび100Bは、コア間割込信号fintを伝達可能であり各コアに接続されている信号路140を有している。そして、プロセッサ1000のコア100Aおよび100Bは、FIFO(先入れ先出しバッファ)200を利用しプロセス間通信を処理する。FIFO200は、コア100Aおよび100Bのいずれからもアクセス可能なハードウエアを利用して構成される。FIFO200の典型例は、一例として、当該チップと同一のチップのオンチップメモリ、あるいは、当該チップとは別のチップのメモリであり、別例としては、コア100Aおよび100Bを形成されている半導体チップと同一のチップのレジスタである。図1には、これらをいずれも含む構成として、FIFO200を機能ブロックにより示している。
本実施形態のプロセッサ1000は、少なくとも二つのコア100Aおよび100Bを連携して一連の命令実行プロセスを進め、プロセス間通信を実行する。この異なるコアの間でプロセス間通信を実現するために、FIFO200を利用する。コア100Aおよび100Bの一連の命令実行プロセスの動作を大別すると、次の4ステップに分けることができる。第1ステップとして、コア100Aがある段階まで当該一連の命令実行プロセスを実行する。つまり、一連の命令実行プロセスをなすプロセスの集合のうち一部のプロセスまでをコア100Aが処理する。第2ステップとして、コア100Aが当該一連のプロセスの実行状態または結果をデータの要素(以下、単に「要素」ともいう)としてFIFO200に格納する。第3ステップとして、コア100Bは、FIFO200にアクセスし上記状態または結果を引き継ぐための上記要素を読み出す。そして第4ステップとして、コア100Bが、その上記要素を利用し引き継ぐべき状態または結果を使用して、それを初期状態として、上記一連の命令実行プロセスのうちの残りのプロセス、つまりその後に処理すべきプロセス行を処理する。FIFO200は、多段のFIFOであれば先入れ先出し動作を実行する。多段のFIFOを使用するため、コア100Aによる処理である上記第1および第2ステップと、コア100Bによる処理である上記第3および第4ステップとの間では、プロセスの処理時間のばらつき、即ちプロセス間の負荷のインバランスが許容される。また、FIFO200の先入れ先出しの動作により、プロセス間通信を含む一連の命令実行プロセスは、相互の順序は維持される。
上述したFIFO200を用いたプロセス間通信はFIFOを利用する一般的処理を説明したものである。本実施形態のプロセッサ1000においては、コア100Aおよび100Bに工夫が施されているために、FIFO200を利用したプロセス間通信にあたり、実行を可能な限り停止させない。そればかりか、プロセッサ1000では、FIFOを通じた受け渡しの処理のための命令を増大させない。すなわち、プロセス間通信を実行する少なくとも二つのコア100Aおよび100Bは、ハードウエア構成として、コア間割込みカウント設定レジスタ(ICSR)110とよぶレジスタと、FIFOカウンタ120とよぶレジスタとを備えていることができる。以下、コア100Aのものとコア100Bのものとを区別する説明においてはそれぞれに対応させてA、Bを付し、共通した説明となる場合においてはA、Bの記載を省略する。コアについても同様とする。
コア間割込みカウント設定レジスタ(Interrupt Count Setting Register, ICSR)110は、FIFO深さ値を格納するためのレジスタである。ここで、FIFO深さ値は、当該コアが担うプロセスと、別のコアが担うプロセスとの間のプロセス間通信の受け渡し処理に用いられるFIFO200のエントリー数を表している。例えば、FIFO深さ値が「4」またはそれに対応する何らかの値であるとき、FIFO200は、第1エントリー202、第2エントリー目204、第3エントリー206、そして第4エントリー208という4段分のエントリーを利用することにより、演算に利用されるプロセスのための要素を一時記憶しうるものである。本実施形態における上記FIFO深さ値は、ICSR110に格納する値をプログラムにおいて指定することなどにより、プログラム上で可変であり明示的に指定することができる。こうしてFIFO200のエントリー数を、コア100Aおよび100Bを連携させる動作のために適切なエントリー数に調整しうることはプロセス間通信を処理する態様として好適なものとなる。なお、このICSR110は、典型的にはプロセス間通信を含む一連の命令実行プロセスの範囲で固定され、別のプロセスに切り換えるときに必要に応じて再度設定することが可能である。つまり、典型的なICSR110は、処理中のプロセス間通信を含む一連の命令実行プロセスの範囲において、FIFO200のエントリー数の上限値を示すものである。ただし、このFIFO深さ値は可変であり、FIFO200のための有限のリソースであるメモリまたはレジスタを割り当てる事情から、動的に、つまりプロセスの実行の途中において、プロセス間の負荷のインバランスを軽減するために調整されることもできる(この点については、「1−9 FIFOエントリー数の動的な調整」の欄にて詳述する)。
本実施形態のプロセッサ1000の各コア100におけるFIFOカウンタ120は、FIFO200の使用中のエントリー数を示す値を格納するためのカウンタレジスタである。FIFOカウンタ120の値により示されるFIFO200の使用中のエントリー数は、0以上の値であって、ICSR110により示されるFIFO200の処理中のプロセスの範囲における上限値を含みそれ以下の範囲の値のうちのいずれかの値である。特に、FIFOカウンタ120の値が0を示している場合、コア100は、FIFO200の使用されているエントリー数が0、つまりFIFO200が空(empty)であると判定することが可能となる。同様に、FIFOカウンタ120の値がICSR110と同一の値を示している場合、コア100は、FIFO200の使用されているエントリー数が上限、つまりFIFO200が満杯(full)であると判定することが可能となる。
次に、上述したICSR110およびFIFOカウンタ120を利用して上記少なくとも二つのコア100Aおよび100Bのそれぞれが実行する機能のうち、FIFO200に密接な関連を有する機能であるコア間割込同期機能、コア間割込生成機能、および、FIFOカウンタ更新機能の概要を説明する。コア100Aおよびコア100Bは、プログラム上の簡単な表現によりここに説明する各機能を実行可能なように実装されている。なお、コア100Aおよび100Bは、プロセスを処理するための演算機能としてここに説明しない算術演算機能を有している。
一つのFIFO200に関するコア100Aの機能であるコア間割込同期機能は、端的には、少なくとも二つのコア100Aおよび100Bのうちの別のコア100Bから受信したコア間割込信号fint、FIFOカウンタの値、およびICSRの値の少なくともいずれかに基づいて、当該コアと別のコアとの間で一連の命令実行プロセスをなす各プロセス、つまり各コアにおいて処理させる各プロセスを互いに同期させる機能である。ここで、このコア間割込信号fintやコア間割込同期機能のために、「割込」との表現を含めているが、本実施形態にて説明するコア間割込は、一般的な割込みとは異なり、割込みはイベントの通知のみを行い、割込みによって割込み処理ルーチンに移行することはしない。すなわち、コンピュータ1のCPU2000に対する割込や、CPU2000からのプロセッサ1000に対する割込、プロセッサ1000同士の間におけるプロセッサ1000に対する割込などとは別のものである。本実施形態のFIFOカウンタの値、およびICSRの値は、本実施形態のコア間割込信号fintとともに、FIFO200を通じてコア100Aと100Bとを連携させてプロセス間通信を処理する目的のために用いられる。端的には、FIFOカウンタの値、およびICSRの値は、FIFO200の状態が空または満杯である際に、当該コア(例えばコア100A)を待機状態にするかそのまま処理を続行させるかの判断に利用される。また、本実施形態のコア間割込信号fintは、各コアの動作制御のためにコア間において発行して送られ、受信して一連の命令実行プロセスの進行の制御のために利用される。端的には、本実施形態のコア間割込信号fintは、当該コア(例えばコア100A)において、第1に、FIFO200の状態が空または満杯である際の待機状態からの解除のために用いられ、第2に、コア間割込信号fintを別のコア(例えばコア100B)から受信したコア100AにおけるFIFOカウンタの更新のために用いられる。
FIFO200に関するコア100Aのもう一つの機能であるコア間割込生成機能は、端的には、一連の命令実行プロセスのうちの、当該コア100A自体によるFIFO200の1エントリー分のプロセスのためのFIFO200へのアクセスの完了時に、別のコア100Bがコア100B自体の一連の命令実行プロセスの制御のために利用するコア間割込信号fintを発行して送る機能である。このコア間割込信号fintが、例えばコア100Aから送信されコア100Bにより受信される場合を例に説明する。仮に、FIFO200の状態がEmptyの場合、コア100Bの実行が待機状態になっており、そのコア間割込信号fintを受信することに応じて、コア100Bは待機状態を解除して実行を再開する。つまり、コア間割込信号fintは、各コア(例えばコア100A)がFIFOの1エントリー分の処理(書込み)を完了したことを、連携する別のコア(例えばコア100B)に対し通知する信号である。なお、ここでの「割込」との表現も、プロセス間通信を適切に処理するためのコア間割込を意味している。また、コア間割込信号fintが示すFIFO200へのアクセスの完了とは、例えばFIFO200に対するReadやWriteの処理が完了することを含んでいる。また、このコア間割込生成機能も、プロセッサ1000の動作方法とみた場合のコア間割込生成ステップともなる。
そして、FIFOカウンタ更新機能について説明する。この機能は、端的には、FIFOカウンタの値を、コア間割込信号fintの受信または当該コア自体によるコア間割込信号fintの送信(発行)に応じてインクリメント(カウントアップ)またはデクリメント(カウントダウン)させる機能である。このため、FIFOカウンタ120の値には、FIFO200の使用中のエントリー数を示す値が反映されることとなる。
FIFOを通じた受け渡し動作は、プログラムにより、受け渡しの態様や実行のタイミングが制御される。そこで、まずFIFOやコアを受け渡しの向きの観点から整理した上で(1−5−1)、受け渡し動作の説明を行ない(1−5−2)、最後に、そのような動作のために必要となるコアの構成について上流側のコアと下流側のコアとに分けてまとめる(1−5−3、および−4)
FIFO200の動作面からの構成は、あるプロセスの範囲では一つのコアからみると、入力FIFOおよび出力FIFOとして整理される。これに対し、FIFOからの視点でみると、各コアは、そのFIFOに向けてプロセス間通信のためのプロセスの要素を出力する側の上流側コアと、そのFIFOから上記要素を受け付ける側の下流側コアとしても整理される。これらの入力および出力、ならびに、上流および下流という表現は、プロセス間通信における要素の受け渡しの向きを示すものである。本実施形態のプロセッサ1000におけるこの受け渡しの向きは、プログラムの制御により任意のタイミングで変更することが可能である。つまり、一つの向きは、図1に示したコア100Aがそれ自体が上流側コアとなり出力FIFOとなるFIFO200に要素を格納し、コア100Bが下流側コアとなり入力FIFOとなるFIFO200からその要素を受け取る、という向きである。これは逆の向きとすることもできる。ここでは、この受け渡しの概念を明確に説明するため、図1に示したハードウエア構成との関連を一旦離れ、受け渡しの向きを固定したプロセスおよびコアの表現により以下説明し、その代わりに図1に示したハードウエアの構成との関係を抽象化したものとする。なお、図1のハードウエア構成との対応付けの例は適宜併記する。
図3を参照し、FIFO1を通じ上流側コアC0から下流側コアC1にプロセス間通信の要素を受け渡しする動作を説明する。ここでは、一例として、メモリによりFIFOを構成する場合を説明する。図3は、上流側コアC0から下流側コアC1にプロセス間通信のための要素がFIFO1を通じて受け渡される動作を示すフローチャートである。
上記動作を実現するためにコア100(図1)は、それ自体が上流側コアC0として機能するための適切なハードウエアを備え、適切に動作することができる。この際、FIFO200は、上流側コアC0にとっての出力FIFOとなっている。つまり、FIFO200は、少なくとも二つのコア100Aおよび100Bのうちのいずれか一のコアである下流側コアC1により処理すべき要素として、下流側コアC1とは別のコアである上流側コアC0からの要素を受け付ける。
同様に、コア100(図1)は、それ自体が下流側コアC1として機能するために、適切なハードウエアを備えるとともに、適切に動作することができる。この際のFIFO200は、下流側コアC1にとっての入力FIFOとなっている。つまり、FIFO200は、少なくとも二つのコア100Aおよび100Bのうちのいずれか一のコアである下流側コアC1が処理すべき要素として、下流側コアC1とは別のコアである上流側コアC0からの要素を受け付ける。
上述したように、上記コア間割込生成機能についての割込生成用プリフィクスFINT、ならびにコア間割込同期機能についてのFOWAITおよびFISYNCは、FIFOを利用したコア間割込および同期処理のために利用される。このプリフィクスを利用した制御を利用する利点は、プログラムが簡便であることと、処理効率が高いことである。
上述したプリフィクスすなわち、FINT、FOWAITおよびFISYNCは、プログラムにおいて、それぞれに後続する命令の実行の完了時に、またはその命令を対象としてFIFOを利用するために明示される。これは、プロセス間の同期制御や排他制御を行なったり、FIFOを利用したりするプログラムとしては平易なものである。具体的には、上記コア間割込生成機能は、いわば、FIFOへのアクセスの完了を通知するための機能である。このため、端的には、FIFOの1エントリー分の処理を完了する命令に割込生成用プリフィクスFINTが付される。同様に、コア間割込同期機能は、FIFOに対するアクセスが必要なときにFIFOの状態を見る機能を含む。このため、FOWAITおよびFISYNCは、FIFOの状態が適切である条件を課すために、つまり、FIFOが満杯でないこと(FOWAIT)、および、空でないこと(FISYNC)を実行の条件とすべき各命令に付される。特に、プリフィクス以外の命令が処理目的のプログラムをそのまま記載する観点からは、プログラムや、そのプログラムを高級言語から生成するコンパイラーの構成が簡便となる利点が大きい。高級言語からアセンブリプログラムまたは機械語プログラムを生成するコンパイラーに対して、上述したようなコードを出力させることにも特段の困難性はない。
上記プリフィクスを用いるもう一つの利点は、オーバーヘッドが少なく、そのコア間割込のために必要となるサイクルが皆無またはごくわずかとなるため高い処理効率が得られることである。上記プリフィクスを用いるプログラムにおいては、FIFOを利用したプロセス間通信のためにFIFOの状態を確認したり、その状態による場合分けしたりする処理は、不要またはごくわずかである。このため、FIFOを利用するためにオーバーヘッドとなるサイクルを殆ど伴うことはない。しかも、コア間割込同期機能のためのFOWAITやFISYNCが明示されていたとしても、実行が待機状態になるのは、出力FIFOが満杯のときまたは入力FIFOが空のとき、つまり処理を進めることができないときのみである。つまり、もしFIFOの状態が処理に支障が無い場合には、FIFOを利用しながらも、あたかもFIFOの状態の確認を省略しているかのような高い処理効率で進行する。
図4は、本実施形態の各コアのICSRの典型的な構成を示す説明図である。図4に示すように、各ICSRは、適当なビット長(ここでは32ビット長)とされる。このうち、プロセッサ1000において、図2に示したFIFO0〜FIFO2のようなFIFOを合計8本使用する場合には、典型的には、各FIFOに4ビットが対応付けされる。そして、図4に示した構成のICSRでは、各FIFO(FIFOn、nは0〜7)に対応する4ビットのうち、下位3ビット(FIFOn(2:0))はFIFOnのFIFO深さ値を格納する。これに対し、当該4ビットのうちの最上位の1ビット(Fn)は、FIFOnの方向を格納する方向ビットである。ここで、FIFO深さ値が1であることは、そのFIFOが1エントリーのものあることを意味する。さらに、FIFO深さ値を示さない値、例えば0を、そのコアから見て当該FIFOがアクセスできないこと、または、そのFIFOに関するコア間割込信号fintを通信できないことを示すために採用することも有効である。さらに上記方向とは、そのICSRを有するコアから見て、当該FIFOが入力FIFOであるか出力FIFOであるかを意味している。このため、この方向とは図2(a)の左右方向に対応付けされる。例えば上記方向ビットの0および1を、それぞれ、関連するFIFOが入力FIFOであること、および出力FIFOであることに対応付けする。
次に、コア間割込信号fintの典型的な構成について説明する。図2に示したように典型的なコア間割込信号fintは、出力方向コア間割込信号fointと入力方向コア間割込信号fiintにより構成される。また、図2において、FIFOのサフィックスにより、例えば「FOINT1」としてFIFO1に対応することが明示されるように、入力方向コア間割込信号fiintおよび出力方向コア間割込信号fointは、対象とするFIFOと対応付けすることができる。
再び図1および図2を参照して、二つのFIFOのエントリー数のバランスを動的に調整する構成について説明する。FIFO200は、プロセッサ1000の複数のコアがコア100Aおよび100Bに加えて三つ目のコア100Cを含んでおり、論理的に互いに区別される複数のFIFO、例えばFIFO1とFIFO2(図2)を利用する場合がある。なお、三つ目のコア100Cも、ICSR110CとFIFOカウンタ120Cとを有するとともに、コア間割込同期機能、コア間割込生成機能、およびFIFOカウンタ更新機能を処理可能なように実装されているとする。この場合、これら三つのコア100A、100Bおよび100Cに含まれる第1対のコアのうち、いずれかのコアのICSRである第1のICSRが、第1対のコアが担うプロセスの間のプロセス間通信のために用いられるFIFO1(第1のFIFO)のための値を含んでいる。FIFO2(第2のFIFO)に対しても、三つのコアに含まれる第2対のコアのうちのいずれかのコアのICSRが、第2対のコアが担うプロセスの間のプロセス間通信のために用いられる第2のICSRとなる。なお、第1対をなす二つのコアのうちの一つと、第2対をなす二つのコアのうちの一つは重複していてもよい。図1では、例えば、第1対をなすコアをコア100Aおよびコア100Bとし、第2対をなすコアをコア100Bおよびコア100Cとする。
次にFIFOのより具体的な実装形態について説明する。図2に示したフローチャートによって図3に示した受け渡しまたはそれに同等な受け渡しを実行するためのFIFO1のためのハードウエアは、上述したように二つの典型的な構成において実施することができる。一つはメモリを用いものであり、もう一つはコア間で共有される共有レジスタを用いるものである。ここでは、各構成についてのサンプルのプログラムを説明する。なお、以下の説明において、メモリか共有レジスタバンクかが変更されるのは、図2におけるFIFO1のみである。FIFO0およびFIFO2は、いずれもメモリであるとする。
FIFO200をソフトウエア上にて実装するためにメモリを用いることは、FIFOとして、プロセッサとは別の半導体チップのメモリを利用するもの、および、プロセッサと同一の半導体チップのオンチップメモリを利用するもの、という典型的な二つの形態を含んでいる。いずれの場合であっても、FIFOは、アドレスを指定することによりアクセスすることができる。
図6は、FIFO200のすべてのFIFOをメモリ上に実装する場合の例示のプログラムリストである。ここでは、再び図2に示した上流側コアC0と下流側コアC1に実行させるプログラムとして説明する。図6に示すとおり、上流側コアC0と下流側コアC1にはそれぞれのプログラムが与えられる。つまり、一連の命令実行プロセスの一部として、上流側コアC0はプロセスP0を実行し、下流側コアC1はプロセスP1を実行する。本プログラムリストにおいては、「;」により開始する行はコメント行であり、「<」と「>」で囲んだ記載は本出願にて動作を説明するためのものである。また、上述した図3のフローチャートは、以下の上流側コアC0におけるプロセスP0、ストリームアウト、下流側コアC1におけるストリームインおよびプロセスP1に対応している。
上流側コアC0が実行する処理は、順に、初期化、FIFO0を入力FIFO(メモリ)とするストリームイン、カーネルであるプロセスP0、そしてFIF01を出力FIFOとするストリームアウトである。初期化では、上流側コアC0にとっての入力FIFOであるFIFO0、および上流側コアC0にとっての出力FIFOであるFIFO1のためのベースアドレスを設定する。そして、ICSRの値としてFIFO0とFIFO1に対応する値を設定する。
下流側コアC1のプログラムにおける受け渡しのためのプログラムも、上述した上流側コアC0のプログラムと同様に、初期化、ストリームイン、プロセスP1、ストリームアウトという構成となっている。各命令に対するプリフィクスの作用も上述したものと同様である。下流側コアC1のプログラムを、上流側コアC0のプログラムとの違いのみ説明すれば、利用するFIFOがFIFO1とFIFO2になっていることの違いのみである。また、プロセスP1が一連の命令実行プロセスの最終のものであれば、最終のFOWAIT2、FINT2、STM[R2]、D7x16におけるFIFOに関するプリフィクスは不要となる。
別の典型的な実施形態は、プロセッサのコア間にて共有される共有レジスタバンクを利用するものである。この共有レジスタバンクの各レジスタへのアクセスは、メモリアクセスのためのサイクル(例えばロード命令やストア命令)を消費することなく、即座に可能である。このため、FIFOを利用した演算を高速に行ないうる利点を有する。なお、本実施形態の共有レジスタバンクを実装するためには、共有レジスタバンクは、FIFO200の各エントリーを構成可能なものとされる。特に、FIFOの各エントリーを共有レジスタバンクの各バンクに割り当てると、各コアがアクセスするバンクを切り替える動作によって先入れ先出し動作するFIFO200を構成することも可能となる。このような負荷のない処理の結果、上記メモリアクセスレイテンシーの制約からの解放と併せて、極めて高い演算効率にてFIFOを利用する演算を実行することが可能となる。
図7は、データレジスタである共有レジスタバンクを利用してFIFOを実装する典型的な構成を示す説明図である。図7(a)は、隣接するコアで互いに参照される共有レジスタバンクの参照関係を示しており、図7(b)は、共有レジスタバンクの参照・被参照時のレジスタバンクの対応関係を示す図である。本構成においては、隣接するコア間において互いに他のコアのレジスタバンクを参照することが可能となる。
図8は、共有レジスタバンクを利用しFIFO200を実装する場合に動作される例示のプログラムリストである。ここでは、再び図2に示した上流側コアC0と下流側コアC1に実行させるプログラムとして説明する。図8に示すとおり、上流側コアC0と下流側コアC1には、それぞれのプログラムが与えられる。メモリを利用したFIFOの場合と同様に、図3のフローチャートは、以下の上流側コアC0におけるプロセスP0、ストリームアウト、下流側コアC1におけるストリームインおよびプロセスP1に対応している。なお、以下のプログラムにおいては、FIFO1のみを共有レジスタバンクにより実現し、FIFO0およびFIFO2はメモリであるとする。以下、メモリを利用したFIFOの場合(図6)との違いを中心に説明する。また、共有レジスタバンクを用いる場合の処理は、図3に示したフローチャートの各ステップとは順序が前後しており、ストリームインおよびストリームアウトの範囲も図3のものとは異なっている。
上流側コアC0が実行する処理は、順に、初期化、FIFO0を入力FIFO(メモリ)とするストリームイン、カーネルであるプロセスP0、そして共有レジスタバンクに構成されるFIF01を出力FIFOとするストリームアウトである。初期化では、上流側コアC0にとっての入力FIFOであるFIFO0のためのベースアドレスを設定する。そして、ICSRの値としてFIFO0とFIFO1に対応する値を設定する。
下流側コアC1が実行する処理も、順に、初期化、ストリームイン、カーネルであるプロセスP1、そしてストリームアウトである。ストリームインは、共有レジスタバンクに構成されるFIF01を入力FIFOとするものであり、ストリームアウトは、FIFO2を出力FIFO(メモリ)とする。
上述した説明において、本実施形態は、プロセッサとしてその構成要素、機能、および動作を説明した。本実施形態は、上述した各構成要素、機能、および動作を実現するプロセッサに備わるコアとして、または、上述した各動作を実現する上記プロセッサの動作方法として実施することが可能である。
例えば、例示したプログラムにおいては、プロセッサ間通信のためのFIFOのエントリー数は3エントリー(図6)などとしているが、このエントリー数は、1エントリーまたは複数のエントリーのための任意の値とすることができる。本実施形態のプロセッサの複数のコアには、通常の演算コアに装備されないコア間割込信号fintを送信する機能があるため、FIFOとして必ずしも多段のFIFOを利用しなくとも、コア同士の連携を適切に実行することが可能となる。
さらに、例示したプログラムにおいては、ICSRの値は初期化の段階に設定している。本実施形態では、別の例として、ICSRの値、特にFIFOのエントリー数を指定する値を変更することにより、少なくとも三つのコアにおいて利用される二つのFIFOのエントリー数のバランスを動的に調整することが可能である。このような構成とすると、有限のメモリなどのリソースを適切に配分することが可能となり有用性が高いプロセッサを作成することが可能となる。
2000 CPU(中央演算装置)
3000 バス
1000 プロセッサ
100 コア
100A、100B、100C コア
110、110A、110B、110C ICSR
120、120A、120B、120C FIFOカウンタ
140 信号路
170 管理用コア
200 FIFO(先入れ先出しバッファ)
202 第1エントリー
204 第2エントリー
206 第3エントリー
208 第4エントリー
C1 上流側コア
C2 下流側コア
P0、P1 プロセス
B0〜B15 レジスタバンク
Claims (17)
- プロセス間通信を含む一連の命令実行プロセスを処理するための複数のコアを備えるプロセッサであって、
該複数のコアのうちの少なくとも二つのコアに接続されコア間割込信号fintを伝達可能な信号路を有しており、
前記少なくとも二つのコアそれぞれが、
FIFO深さ値を格納するためのコア間割込みカウント設定レジスタ(ICSR)と、ここで、前記FIFO深さ値は、当該コアが担うプロセスと別のコアが担うプロセスとの間のプロセス間通信のために用いられる先入れ先出しバッファ(FIFO)のエントリー数を表しているとともに、処理中のプロセス間通信を含む前記一連の命令実行プロセスの範囲における上限値となるものであり、
前記FIFOの使用中のエントリー数を示す値を格納するためのFIFOカウンタと
を有しており、
前記少なくとも二つのコアそれぞれは、
前記少なくとも二つのコアのうちの別のコアから受信したコア間割込信号fint、前記FIFOカウンタの値、および前記ICSRの値の少なくともいずれかに基づいて、当該コアと前記別のコアとの間でプロセス間通信を行なうためのコア間割込同期機能と、
当該コア自体による前記FIFOへのアクセスの完了時に、前記別のコアがそれ自体のプロセスの制御に利用するコア間割込信号fintを発行して送るコア間割込生成機能と、
前記FIFOカウンタの値を、前記コア間割込信号fintの受信または当該コア自体によるコア間割込信号fintの発行に応じてインクリメントまたはデクリメントさせるFIFOカウンタ更新機能と
が処理可能なように実装されているものであり、
これにより、前記FIFOを利用するプロセス間通信を含む前記一連の命令実行プロセスを、前記少なくとも二つのコアのプロセスを同期させることにより実行するプロセッサ。 - 前記FIFOが、前記少なくとも二つのコアのうちのいずれか一のコアである下流側コアが処理すべき要素として、前記少なくとも二つのコアのうちの該下流側コアとは別のコアである上流側コアからの要素を受け付ける、該上流側コアにとっての出力FIFOとなっており、
前記上流側コアが備える前記ICSR、および、前記上流側コアが備える前記FIFOカウンタが、前記出力FIFOのための値を格納可能になっており、
前記上流側コアに実装された前記FIFOカウンタ更新機能は、前記出力FIFOのための前記FIFOカウンタの値を、前記下流側コアからの入力方向コア間割込信号fiintを受信したときデクリメントし、該下流側コアに対する出力方向コア間割込信号fointを送信したときインクリメントする機能を含んでいるものである、請求項1に記載のプロセッサ。 - 前記上流側コアに実装された前記コア間割込同期機能は、前記出力FIFOのための前記FIFOカウンタの値と前記ICSRの値とを比較し、前記出力FIFOが満杯である場合、前記上流側コア自体によるプロセスを待機状態にするとともに、前記下流側コアからの入力方向コア間割込信号fiintを前記上流側コアがその後に受信することにより、前記待機状態を解除して前記上流側コアによるプロセスを再開させる待機制御機能を含んでいるものである、請求項2に記載のプロセッサ。
- 前記待機制御機能は、実行される一の命令に待機制御用プリフィクスFOWAITを明示することにより、当該一の命令のプロセスを対象として作用するものである、請求項3に記載のプロセッサ。
- 前記FIFOが、前記少なくとも二つのコアのうちのいずれか一のコアである下流側コアが処理すべき要素として、前記少なくとも二つのコアのうちの該下流側コアとは別のコアである上流側コアからの要素を受け付ける、該下流側コアにとっての入力FIFOとなっており、
前記下流側コアが備える前記ICSR、および、前記下流側コアが備える前記FIFOカウンタが、前記入力FIFOのための値を格納可能になっており、
前記下流側コアに実装された前記FIFOカウンタ更新機能は、前記入力FIFOのための前記FIFOカウンタの値を、前記上流側コアからの出力方向コア間割込信号fointを受信したときインクリメントし、該上流側コアに対する入力方向コア間割込信号fiintを送信したときデクリメントする機能を含んでいるものである、請求項1に記載のプロセッサ。 - 前記下流側コアに実装されたコア間割込同期機能は、前記入力FIFOのための前記FIFOカウンタの値と前記入力FIFOが空であることを示す値とを比較し、前記入力FIFOが空である場合、前記下流側コア自体によるプロセスを待機状態にするとともに、前記上流側コアからの出力方向コア間割込信号fointを前記下流側コアがその後に受信することにより、前記待機状態を解除して前記下流側コアによるプロセスを再開させる進行制御機能を含んでいるものである、請求項5に記載のプロセッサ。
- 前記進行制御機能は、実行される一の命令に進行制御用プリフィクスFISYNCを明示することにより、当該一の命令のプロセスを対象として作用するものである、請求項6に記載のプロセッサ。
- 前記コア間割込生成機能は、実行される一の命令に割込生成用プリフィクスFINTを明示することにより、当該一の命令のプロセスのための前記FIFOへのアクセス完了時に実行されるものである、請求項1に記載のプロセッサ。
- 前記複数のコアは、前記少なくとも二つのコアに少なくとも一つのコアを加えた少なくとも三つのコアを含んでおり、
該少なくとも一つのコアは、前記ICSRと前記FIFOカウンタとを有するとともに、前記コア間割込同期機能、前記コア間割込生成機能、および前記FIFOカウンタ更新機能とを処理可能なように実装されており、
前記少なくとも三つのコアに含まれる第1対のコアのうちのいずれかのコアの前記ICSRである第1のICSRが、該第1対のコアが担うプロセスの間のプロセス間通信のために用いられる第1のFIFOのための値を含んでおり、
前記少なくとも三つのコアに含まれる第2対のコアのうちのいずれかのコアの前記ICSRである第2のICSRが、該第2対のコアが担うプロセスの間のプロセス間通信のために用いられる第2のFIFOのための値を含んでおり、
前記第1のICSRの値を変化させて前記第1のFIFOのエントリー数が増加され、かつ、前記第2のICSRの値を変化させて前記第2のFIFOのエントリー数が削減される、請求項1に記載のプロセッサ。 - 各コアの前記ICSRが、当該コアがアクセスしうるFIFOのために、前記FIFO深さ値に対応させて、該FIFOが当該コアにとっての入力FIFOであるか出力FIFOであるかを示す方向ビットを有している、請求項1に記載のプロセッサ。
- 前記複数のコアは、前記少なくとも二つのコアに少なくとも一つのコアを加えた少なくとも三つのコアを含んでおり、
該少なくとも一つのコアは、前記ICSRと前記FIFOカウンタとを有するとともに、前記コア間割込同期機能、前記コア間割込生成機能、および前記FIFOカウンタ更新機能とを処理可能なように実装されており、
前記信号路が複数の系統の信号路を含んでおり、
前記信号路の各系統が、前記少なくとも三つのコアのそれぞれに接続されており、
前記信号路の一の系統が、前記少なくとも三つのコアそれぞれにとっての入力FIFOに関する入力方向コア間割込信号fiintを伝達するものであり、
前記信号路の他の系統が、前記少なくとも三つのコアそれぞれにとっての出力FIFOに関する出力方向コア間割込信号fointを伝達するものである、請求項2または請求項5に記載のプロセッサ。 - 前記FIFOは、前記プロセッサとは別の半導体チップのメモリ、または、前記プロセッサと同一のオンチップメモリのいずれかを利用して構成されるものである、請求項1に記載のプロセッサ。
- 前記少なくとも二つのコアからアクセス可能な共有レジスタバンクをさらに備えており、
該共有レジスタバンクの各バンクは、前記FIFOの各エントリーを構成可能なものである、請求項1に記載のプロセッサ。 - 前記複数のコアは、前記少なくとも二つのコアに少なくとも一つのコアを加えた少なくとも三つのコアを含んでおり、
該少なくとも一つのコアは、前記ICSRと前記FIFOカウンタとを有するとともに、前記コア間割込同期機能、前記コア間割込生成機能、および前記FIFOカウンタ更新機能とを処理可能なように実装されており、
前記少なくとも三つのコアが、各コアが順序づけされたリング型接続のコアの並びをなしており、
前記共有レジスタバンクは、前記コアの並びにおいて互いに隣接する一対のコアの間で、前記順序の昇順または降順の少なくともいずれか一の向きに、一のコアから他のコアへ参照可能なものである、請求項13に記載のプロセッサ。 - 前記共有レジスタバンクは、前記リング型接続の前記コアの並びにおいて互いに隣接する一対のコアの間で相互に参照可能なものである、請求項14に記載のプロセッサ。
- プロセス間通信を含む一連の命令実行プロセスを処理するために複数のコアを備えるプロセッサのためのコアであって、
該複数のコアのうちの少なくとも二つのコアは、前記プロセッサに備わるコア間割込信号fintを伝達可能な信号路に接続されており、
前記少なくとも二つのコアそれぞれが、
FIFO深さ値を格納するためのコア間割込みカウント設定レジスタ(ICSR)と、ここで、前記FIFO深さ値は、当該コアが担うプロセスと別のコアが担うプロセスとの間のプロセス間通信のために用いられる先入れ先出しバッファ(FIFO)のエントリー数を表しているとともに、処理中のプロセス間通信を含む前記一連の命令実行プロセスの範囲における上限値となるものであり、
前記FIFOの使用中のエントリー数を示す値を格納するためのFIFOカウンタと
を有しており、
前記少なくとも二つのコアそれぞれは、
前記少なくとも二つのコアのうちの別のコアから受信したコア間割込信号fint、前記FIFOカウンタの値、および前記ICSRの値の少なくともいずれかに基づいて、当該コアと前記別のコアとの間でプロセス間通信を行なうためのコア間割込同期機能と、
当該コア自体による前記FIFOへのアクセスの完了時に、前記別のコアがそれ自体のプロセスの制御に利用するコア間割込信号fintを発行して送るコア間割込生成機能と、
前記FIFOカウンタの値を、前記コア間割込信号fintの受信または当該コア自体によるコア間割込信号fintの発行に応じてインクリメントまたはデクリメントさせるFIFOカウンタ更新機能と
が処理可能なように実装されているものであり、
これにより、前記プロセッサが、前記FIFOを利用するプロセス間通信を含む前記一連の命令実行プロセスを、前記少なくとも二つのコアのプロセスにより実行するものである、前記少なくとも二つのコアのいずれかであるコア。 - 複数のコアを備えるプロセッサによりプロセス間通信を含む一連の命令実行プロセスを処理するためのプロセッサの動作方法であって、
ここで、該複数のコアのうちの少なくとも二つのコアそれぞれは、当該コアが担うプロセスと別のコアが担うプロセスとの間のプロセス間通信のために用いられる先入れ先出しバッファ(FIFO)の使用中のエントリー数を示す値を格納するためのFIFOカウンタとFIFO深さ値を格納するためのコア間割込みカウント設定レジスタ(ICSR)とを有するとともに、コア間割込信号fintを伝達可能な信号路に接続されており、ここで、前記FIFO深さ値は、前記FIFOのエントリー数を表しているとともに、処理中のプロセス間通信を含む前記一連の命令実行プロセスの範囲における上限値となるものであり、
前記少なくとも二つのコアそれぞれは、実装されている機能手段により、
前記少なくとも二つのコアのうちの別のコアから受信したコア間割込信号fint、前記FIFOカウンタの値、および前記ICSRの値の少なくともいずれかに基づいて、当該コアと前記別のコアとの間でプロセス間通信を行なうためのコア間割込同期ステップと、
当該コア自体による前記FIFOへのアクセスの完了時に、前記別のコアがそれ自体のプロセスの制御に利用するコア間割込信号fintを発行して送るコア間割込生成ステップと、
前記FIFOカウンタの値を、前記コア間割込信号fintの受信または当該コア自体によるコア間割込信号fintの発行に応じてインクリメントまたはデクリメントさせるFIFOカウンタ更新ステップと
を実行し、これにより、前記FIFOを利用するプロセス間通信を含む前記一連の命令実行プロセスが、前記少なくとも二つのコアのプロセスを同期させることにより実行される
プロセッサの動作方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012015988A JP5842206B2 (ja) | 2012-01-27 | 2012-01-27 | プロセッサ・コア、およびマルチコア・プロセッサ・システム |
US13/718,796 US9135210B2 (en) | 2012-01-27 | 2012-12-18 | Processor core and multi-core processor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012015988A JP5842206B2 (ja) | 2012-01-27 | 2012-01-27 | プロセッサ・コア、およびマルチコア・プロセッサ・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013156783A true JP2013156783A (ja) | 2013-08-15 |
JP5842206B2 JP5842206B2 (ja) | 2016-01-13 |
Family
ID=49051911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012015988A Expired - Fee Related JP5842206B2 (ja) | 2012-01-27 | 2012-01-27 | プロセッサ・コア、およびマルチコア・プロセッサ・システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9135210B2 (ja) |
JP (1) | JP5842206B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331388A (zh) * | 2013-08-28 | 2015-02-04 | 威盛电子股份有限公司 | 微处理器及在微处理器的处理核间同步的方法 |
US9685219B2 (en) | 2015-05-13 | 2017-06-20 | Samsung Electronics Co., Ltd. | Semiconductor memory device for deconcentrating refresh commands and system including the same |
JP2019502201A (ja) * | 2015-12-11 | 2019-01-24 | ビバンテ コーポレーション | マルチスレッドアクセスのためのソフトウェア定義のfifoバッファ |
CN111026697A (zh) * | 2019-11-21 | 2020-04-17 | Oppo广东移动通信有限公司 | 核间通信方法、系统、电子器件以及电子设备 |
US10769004B2 (en) | 2017-01-27 | 2020-09-08 | Fujitsu Limited | Processor circuit, information processing apparatus, and operation method of processor circuit |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8972923B2 (en) * | 2011-02-08 | 2015-03-03 | Maxeler Technologies Ltd. | Method and apparatus and software code for generating a hardware stream processor design |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9507404B2 (en) | 2013-08-28 | 2016-11-29 | Via Technologies, Inc. | Single core wakeup multi-core synchronization mechanism |
US10136384B1 (en) * | 2014-10-14 | 2018-11-20 | Altera Corporation | Methods and apparatus for performing buffer fill level controlled dynamic power scaling |
US9779043B2 (en) * | 2015-11-16 | 2017-10-03 | International Business Machines Corporation | Techniques for handling queued interrupts in a data processing system |
RU2611337C1 (ru) * | 2016-01-13 | 2017-02-21 | Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) | Способ передачи сообщений между вычислительными устройствами |
CN105843771A (zh) * | 2016-04-11 | 2016-08-10 | 浪潮电子信息产业股份有限公司 | 一种多核dsp中edma不同带宽设备间通信的方法 |
EP3401784A1 (en) * | 2017-05-11 | 2018-11-14 | Tredzone SAS | Multicore processing system |
DE102017210076B4 (de) | 2017-06-14 | 2023-08-24 | Elektrobit Automotive Gmbh | Verfahren und System zur Multikern-Kommunikation mit Sicherheitseigenschaften |
JP2019053600A (ja) * | 2017-09-15 | 2019-04-04 | ルネサスエレクトロニクス株式会社 | 半導体集積回路装置及びデータ比較方法 |
CN107835318B (zh) * | 2017-11-21 | 2021-02-02 | Oppo广东移动通信有限公司 | 进程启动的管控方法、装置及存储介质和移动终端 |
CN111971663A (zh) | 2018-04-16 | 2020-11-20 | 埃米尔·巴登霍斯特 | 处理器和操作处理器的方法 |
US11263043B1 (en) * | 2019-07-19 | 2022-03-01 | Marvell Asia Pte, Ltd. | Managing processor core synchronization using interrupts |
US20210409265A1 (en) * | 2021-01-28 | 2021-12-30 | Intel Corporation | In-network multicast operations |
US11886343B2 (en) * | 2021-03-31 | 2024-01-30 | Dreamworks Animation Llc | Lock-free ring buffer |
CN113886054B (zh) * | 2021-12-03 | 2022-04-15 | 芯来科技(武汉)有限公司 | 一种中断处理装置、芯片和电子设备 |
CN114443322A (zh) * | 2022-01-20 | 2022-05-06 | Oppo广东移动通信有限公司 | 核间通信方法、装置、电子设备及存储介质 |
CN117331720B (zh) * | 2023-11-08 | 2024-02-23 | 瀚博半导体(上海)有限公司 | 用于多核间通信的方法、寄存器组、芯片及计算机设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06325565A (ja) | 1993-05-14 | 1994-11-25 | Nec Corp | カウント機能付きfifoメモリ |
US5841988A (en) * | 1996-05-23 | 1998-11-24 | Lsi Logic Corporation | Interprocessor communications data transfer and error detection in a multiprocessing environment |
US7228375B1 (en) * | 2001-01-12 | 2007-06-05 | Slt Logic, Llc | System and method for efficient input/output of a computer system |
US8843928B2 (en) | 2010-01-21 | 2014-09-23 | Qst Holdings, Llc | Method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
US7734797B2 (en) * | 2004-03-29 | 2010-06-08 | Marvell International Ltd. | Inter-processor communication link with manageability port |
JP4439491B2 (ja) | 2006-05-24 | 2010-03-24 | 株式会社ソニー・コンピュータエンタテインメント | マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法 |
US8095816B1 (en) * | 2007-04-05 | 2012-01-10 | Marvell International Ltd. | Processor management using a buffer |
US8661458B2 (en) * | 2008-03-11 | 2014-02-25 | Nec Corporation | Multiprocessor system, and method for shared use of devices among operating systems of multiprocessor system |
US20100287320A1 (en) * | 2009-05-06 | 2010-11-11 | Lsi Corporation | Interprocessor Communication Architecture |
JP5375650B2 (ja) | 2010-02-15 | 2013-12-25 | 日本電気株式会社 | マルチコアシステム、マルチコアシステムの制御方法及びプログラム |
JP5895840B2 (ja) | 2010-05-26 | 2016-03-30 | 日本電気株式会社 | マルチプロセッサシステム、実行制御方法、実行制御プログラム |
US8745291B2 (en) * | 2011-10-04 | 2014-06-03 | Qualcomm Incorporated | Inter-processor communication apparatus and method |
-
2012
- 2012-01-27 JP JP2012015988A patent/JP5842206B2/ja not_active Expired - Fee Related
- 2012-12-18 US US13/718,796 patent/US9135210B2/en active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331388A (zh) * | 2013-08-28 | 2015-02-04 | 威盛电子股份有限公司 | 微处理器及在微处理器的处理核间同步的方法 |
CN104331388B (zh) * | 2013-08-28 | 2018-09-11 | 威盛电子股份有限公司 | 微处理器及在微处理器的处理核间同步的方法 |
CN108984464A (zh) * | 2013-08-28 | 2018-12-11 | 威盛电子股份有限公司 | 微处理器及在微处理器的处理核间同步的方法 |
CN108984464B (zh) * | 2013-08-28 | 2022-01-28 | 威盛电子股份有限公司 | 微处理器及在微处理器的处理核间同步的方法 |
US9685219B2 (en) | 2015-05-13 | 2017-06-20 | Samsung Electronics Co., Ltd. | Semiconductor memory device for deconcentrating refresh commands and system including the same |
US10090038B2 (en) | 2015-05-13 | 2018-10-02 | Samsung Electronics Co., Ltd. | Semiconductor memory device for deconcentrating refresh commands and system including the same |
JP2019502201A (ja) * | 2015-12-11 | 2019-01-24 | ビバンテ コーポレーション | マルチスレッドアクセスのためのソフトウェア定義のfifoバッファ |
US10769004B2 (en) | 2017-01-27 | 2020-09-08 | Fujitsu Limited | Processor circuit, information processing apparatus, and operation method of processor circuit |
CN111026697A (zh) * | 2019-11-21 | 2020-04-17 | Oppo广东移动通信有限公司 | 核间通信方法、系统、电子器件以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20140013021A1 (en) | 2014-01-09 |
US9135210B2 (en) | 2015-09-15 |
JP5842206B2 (ja) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5842206B2 (ja) | プロセッサ・コア、およびマルチコア・プロセッサ・システム | |
EP3400688B1 (en) | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications | |
TWI628594B (zh) | 用戶等級分叉及會合處理器、方法、系統及指令 | |
JP5789072B2 (ja) | マルチコアアーキテクチャにおけるリソース管理 | |
US10268609B2 (en) | Resource management in a multicore architecture | |
US7676588B2 (en) | Programmable network protocol handler architecture | |
US8566828B2 (en) | Accelerator for multi-processing system and method | |
US6829697B1 (en) | Multiple logical interfaces to a shared coprocessor resource | |
US7802255B2 (en) | Thread execution scheduler for multi-processing system and method | |
US7873816B2 (en) | Pre-loading context states by inactive hardware thread in advance of context switch | |
JP2021529488A (ja) | ゲートウェイ上のホストプロキシ | |
JP5895840B2 (ja) | マルチプロセッサシステム、実行制御方法、実行制御プログラム | |
KR20130009746A (ko) | 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치 | |
WO2022217823A1 (zh) | 量子控制系统、量子控制处理器及量子指令集的执行方法 | |
US20170147345A1 (en) | Multiple operation interface to shared coprocessor | |
CN112540796B (zh) | 一种指令处理装置、处理器及其处理方法 | |
CN112199173A (zh) | 双核cpu实时操作系统数据处理方法 | |
JP2021528929A (ja) | データ通過ゲートウェイ | |
CN116414464B (zh) | 调度任务的方法和装置、电子设备和计算机可读介质 | |
Govindarajan et al. | Design and performance evaluation of a multithreaded architecture | |
Contini et al. | Enabling Reconfigurable HPC through MPI-based Inter-FPGA Communication | |
US8171259B2 (en) | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal | |
Ginosar | The plural many-core architecture-high performance at low power | |
Chadwick | Communication centric, multi-core, fine-grained processor architecture | |
Cataldo et al. | Subutai: Speeding Up Legacy Parallel Applications Through Data Synchronization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140827 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150430 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150512 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150706 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150924 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5842206 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |