JP2008097084A - プロセッサ及びデータ転送ユニット - Google Patents

プロセッサ及びデータ転送ユニット Download PDF

Info

Publication number
JP2008097084A
JP2008097084A JP2006274879A JP2006274879A JP2008097084A JP 2008097084 A JP2008097084 A JP 2008097084A JP 2006274879 A JP2006274879 A JP 2006274879A JP 2006274879 A JP2006274879 A JP 2006274879A JP 2008097084 A JP2008097084 A JP 2008097084A
Authority
JP
Japan
Prior art keywords
command
unit
data
data transfer
processor
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
Application number
JP2006274879A
Other languages
English (en)
Other versions
JP4476267B2 (ja
Inventor
Hironori Kasahara
博徳 笠原
Keiji Kimura
啓二 木村
Takashi Todaka
貴司 戸▲高▼
Tatsuya Kamei
達也 亀井
Toshihiro Hattori
俊洋 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Waseda University
Hitachi Ltd
Original Assignee
Renesas Technology Corp
Waseda University
Hitachi 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 Renesas Technology Corp, Waseda University, Hitachi Ltd filed Critical Renesas Technology Corp
Priority to JP2006274879A priority Critical patent/JP4476267B2/ja
Priority to US11/865,669 priority patent/US8200934B2/en
Publication of JP2008097084A publication Critical patent/JP2008097084A/ja
Application granted granted Critical
Publication of JP4476267B2 publication Critical patent/JP4476267B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

【課題】プロセッサコア間でのデータ転送のオーバーヘッドを低減し、プロセッサ全体の処理能力を向上させる。
【解決手段】演算処理または信号処理を行うCPU20と、データを記憶する内蔵メモリ30と、内蔵メモリ30と共有メモリ60の間でデータの転送を実行するデータ転送機構40と、を備えて、データ転送機構40は、CPU20が内蔵メモリ30に書き込んだデータ転送指令を複数のコマンドからなるコマンド列を実行するコマンドチェイン部と、コマンドが所定の監視コマンドのときには、内蔵メモリ30または共有メモリ60に予め設定されたデータを読み込んで、予め設定された比較値と前記データの値が一致するまで当該データの監視を繰り返す監視部と、を備え、コマンドチェイン部は、監視部による監視が完了した後に、コマンド列から次のコマンドを実行させる。
【選択図】図1

Description

本発明は、情報処理装置内に内蔵されるデータ転送機構に関する。
プロセッサなどの情報処理装置においてはデータ転送を効率良く行うことが、装置全体の性能向上につながる。
情報処理装置が大量のデータ転送を行う場合、これをCPU(汎用プロセッサ)で実施すると、本来CPUで実施すべき処理が滞り、装置全体の性能が低下するという問題がある。
この問題に対する解決策として、現在の情報処理装置では、一般にダイレクトメモリアクセスコントローラ(DMAC)と呼ばれるデータ転送処理装置を用いて、CPUに代わってデータ転送を実施している(例えば、特許文献1〜3)。したがって、CPU自身はデータ転送起動コマンドをDMACに設定するだけで、DMACがデータ転送を行っている間に別の処理を行うことが可能となる。
上記の方法では、CPUはデータ転送が必要なときにDMACに対してデータ転送起動コマンドを設定する必要がある。また、DMACが動作中かどうかを監視する必要も生じる。
このようにデータ転送起動コマンドの設定をデータ転送の度に行うことは、転送データ長が長い場合は、あまりオーバーヘッドとして見えてこないが、転送データ長が短い場合は、大きなオーバーヘッドとして見えてしまい、性能向上の妨げとなってしまう。また、プログラミングの難易度が高いデータ転送指示の挿入を、コンパイラが自動的に行うことで回避する最適化技術に対する要求が高まっているが、このような最適化コンパイラが、ある計算に対して複数回のデータ転送が必要と解析した場合、これらのデータ転送の度にCPUがDMACを駆動することはやはり大きなオーバーヘッドとなり、コンパイラによる効率的なデータ転送指示を生成することが難しい。
CPUによるデータ転送起動コマンドの設定回数を削減する方法として、コマンドチェインと呼ばれる方法が提案されている。コマンドチェインではデータ転送を行うたびに、CPUを介してデータ転送起動指示をDMACに与えるのではなく、全データ転送指示をリストとして、予め記憶装置上に設定し、CPUが当該リストの先頭のデータ転送指示からデータ転送を実施するよう指示することで、DMACが記憶装置上の転送指示を順に読み出して、データ転送を実施する。
本方法では、CPUは最初のデータ転送の起動のみ実施し、その後のデータ転送に関してはDMAC自身がコマンドの起動を行うため、CPUによるデータ転送起動コマンドの設定回数は1回だけとなる。そのため、これまでCPUがデータ転送コマンドの設定に要した時間を、他の処理に割り当てることができる。さらにこのような自律性の高いDMACによるデータ転送機能により、コンパイラが解析したデータ転送を実行時に効率よく行うことが可能となる。
特開平6−149749号公報 特開平6−282515号公報 特開平9−330288号公報
近年、プロセッサの動作周波数の向上の限界から、ひとつの半導体チップに複数のプロセッサコアを搭載したマルチコアプロセッサが普及している。マルチコアプロセッサでは、複数のプロセッサコアで処理を並列化することで、プロセッサの動作周波数を上昇させずに処理能力を向上させている。また、このようなマルチコアプロセッサ用のプログラムの生産性向上を目指し、最適化コンパイラによる自動並列化、メモリ管理及びデータ転送指示の生成といった研究も行われている。
しかしながら、上記従来のハードウェア技術ではDMACによるデータ転送とコマンドチェインにより単一のCPUが演算処理を行う場合には処理性能向上を図っているが、複数のプロセッサコアで並列的に処理を行う場合ではプロセッサコア間で通信を行う必要が生じて、オーバーヘッドが生じる場合がある。例えば、2つのプロセッサコアが記憶装置を介してデータ転送を行う場合、プロセッサコアAのDMACが記憶装置(共有記憶装置)に書き込んだデータを、プロセッサコアBのDMACが読み込んで、プロセッサコアBで処理を行う例について検討する。
まず、プロセッサコアAは内蔵したDMACに対してプロセッサコアAにあるデータを記憶装置に転送するよう指令し、DMACはこのデータを記憶装置へ転送する処理を開始する。一方、このデータを利用するプロセッサコアBは、プロセッサコアAによる記憶装置へのデータの書き込みが完了したか否かが不明であるため、プロセッサコアBはプロセッサコアAに対してデータ転送が完了したかを問い合わせる必要が生じる。そして、プロセッサコアBはプロセッサコアAへの問い合わせの結果、データ転送が完了した通知を受けるまでプロセッサコアBのDMACへデータ転送の指令を行うことができず、プロセッサコアBは問い合わせと、処理待ちによって演算処理を行うことができない。
このように、各プロセッサコアにDMAC等のデータ転送機構を備えながらも、複数のプロセッサコア間でデータのやり取りを行う場合には、プロセッサコア間で通信を行う必要が生じ、この通信によるオーバーヘッドや処理待ちによって、プロセッサ全体の処理能力を向上させることが難しく、このようなデータ転送をコンパイラが抽出できたとしても、効率の良いデータ転送指示の挿入が難しいという問題があった。
そこで本発明は、上記問題点に鑑みてなされたもので、複数のプロセッサコアにそれぞれデータ転送機構を備えたマルチコアプロセッサにおいて、プロセッサコア間でのデータ転送のオーバーヘッドを低減し、同時にコンパイラによるデータ転送最適化を行いやすくすることにより、プロセッサ全体の処理能力を向上させることを目的とする。
本発明は、演算処理または信号処理を行う演算部と、データを記憶する記憶部と、前記記憶部と記憶装置の間でデータの転送を実行するデータ転送部と、を備えたプロセッサにおいて、前記データ転送部は、前記記憶部または記憶装置に予め格納されたデータ転送指令を含む複数のコマンドからなるコマンド列を、前記演算部からの指令に基づいて読み込んで実行するコマンドチェイン部と、前記コマンドが所定の監視コマンドのときには、前記記憶装置または記憶部に予め設定されたデータを読み込んで、予め設定された比較値と前記データの値が一致するまで当該データの監視を繰り返す監視部と、を備え、前記コマンドチェイン部は、前記監視部による監視が完了した後に、前記コマンド列から次のコマンドを実行させる。
また、前記演算部と記憶部とデータ転送部とを含むプロセッサコアを複数備え、前記コマンドが所定のデータ設定コマンドのときには、前記記憶部または記憶装置の予め設定された領域に所定のデータを書き込むデータセット部を備える。
さらに、前記監視部は、前記記憶部または記憶装置に前記予め設定されたデータが書き込まれるのを監視する。
したがって、本発明によれば、演算部は、データ転送の指令をデータ転送部に対して行うだけで良く、指令を行った後はデータ転送部が次のコマンドの実行タイミングを自立的に決定するので、プロセッサコア間でのデータ転送のオーバーヘッドを低減して、プロセッサ全体の処理能力を向上させることが可能となる。さらにコンパイラによるデータ転送最適化が行いやすくなるため、プログラムの生産性も向上する。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の第1の実施形態であるマルチコアプロセッサシステム(情報処理装置)の構成を示すブロック図である。
図1において、マルチコアプロセッサシステム1は、複数のプロセッサコア10−0〜10−nと、これらプロセッサコア10−0〜10−nで共有する共有メモリ60及び各プロセッサコア10−0〜10−nと共有メモリ60を接続するプロセッサコア間ネットワーク50を主体にして構成される。なお、プロセッサコア間ネットワーク50は、共有バスやクロスバなどで構成してもよい。
本実施形態では、各プロセッサコアが命令セット及び構成が同一のホモジニアス・マルチコアプロセッサシステムで構成した例を示す。このため、プロセッサコア10−0〜10−nについてのみ構成の説明を行い、他のプロセッサコア10−1〜10−nも同様とする。
プロセッサコア10−0は、演算処理を行うCPU20と、データや命令を格納する内蔵メモリ(ローカルメモリ)30と、内蔵メモリ30と共有メモリ60あるいは内蔵メモリ30と他のプロセッサコア10−1〜10−nの内蔵メモリ30との間でデータの転送を行うデータ転送機構(Data Transfer Unit)40と、CPU20、内蔵メモリ30及びデータ転送機構40へクロックを供給するクロック生成部70を備えている。なお、マルチコアプロセッサシステム1の外部に記憶装置が接続されている場合には、データ転送機構40は、内蔵メモリ30と外部の記憶装置との間でデータの転送を行うことができる。
データ転送機構40は、DMAC(Direct Memory Access Controller)を含んで構成され、CPU20のバックグラウンドで、内蔵メモリ30や共有メモリ60または他のプロセッサコア10−1〜10−nとの間でデータの転送を実行する。
また、データ転送機構40は、CPU20からデータの転送指令を受け付けると、前記従来例に示したDMA及びコマンドチェインにより、連続してデータの転送を実行することができる。CPU20は、データ転送機構40へデータの転送を指令した後には、データの転送処理をデータ転送機構40に任せることで自らの演算処理を実行することができる。
図2は、データ転送機構40の機能ブロック図を示す。データ転送機構40は、内蔵メモリ30(または共有メモリ60)に予め書き込まれた転送指令を含むコマンド列を順次実行するコマンドチェイン部410と、コマンドチェイン部410が読み込んだ転送指令に基づいて、内蔵メモリ30と共有メモリ60等との間でデータの転送をDMAによって実行するデータ転送部420と、共有メモリ60(または内蔵メモリ30)の所定の領域にフラグなどの所定のデータを書き込むフラグセット部(データセット部)450と、共有メモリ60(または内蔵メモリ30)に設定されたフラグの値が予め設定した比較値と一致するまで繰り返して判定するフラグチェック部(データチェック部)430と、フラグをチェックする周期または間隔を設定するインターバル設定部440と、フラグチェックの待ち時間にデータ転送機構40の動作クロックを低減するクロック制御部460と、を含む。
データ転送機構40のコマンドチェイン部410は、CPU20から所定の指令を受けると内蔵メモリ30(または共有メモリ60)に予め読み込まれたコマンド列を順次読み込んで各部に実行させる。
コマンドチェイン部410は、CPU20が内蔵メモリ30に読み込んだコマンド列のうち、最初のコマンドをCPU20の指令に応じて読み込んで実行する。そして、コマンドチェイン部410は、一つのコマンドが終了すると後述するように次のコマンドを読み込んで順次実行する。データ転送機構40で処理するコマンドとしては、内蔵メモリ30からプロセッサコアの外部の記憶装置へデータを転送するputコマンド、プロセッサコアの外部の記憶装置から内蔵メモリ30へデータを転送するgetコマンド、共有メモリ60(または内蔵メモリ30)の所定の領域にフラグを設定して、指定された値を書き込むsetコマンド、指定された値(比較値)と共有メモリ60(または内蔵メモリ30)のフラグの値とを比較するcheckコマンドを発行し、内蔵メモリ30に格納する。
コマンドチェイン部410は、上記コマンドを内蔵メモリ30から読み込んで、コマンドに応じた各部を機能させる。
データ転送部420は、DMACを含んで構成され、putコマンドやgetコマンドを実行して、内蔵メモリ30と共有メモリ60または他のプロセッサコア10−1〜10−nとの間でデータの転送を実行する。データ転送部420は、連続領域のデータ転送に加えてストライド転送やギャザー(gather)転送やスキャッタ(scatter)転送といったアドレスが不連続なデータ転送も実行する。
フラグセット部450は、setコマンドを実行して共有メモリ60(または内蔵メモリ30)の所定の領域にフラグを設定して、指定された値を書き込む。
フラグチェック部430は、checkコマンドを実行してフラグの値が指定された値(比較値)と一致するまで繰り返して実行される。
インターバル設定部440は、フラグチェック部430が実行するフラグのチェック周期を設定し、フラグのチェックサイクルが短くなってプロセッサコア間ネットワーク50の負荷が過大になるのを防ぐ。なお、フラグのチェックを行ってから次回のフラグのチェックまでの時間はフラグチェックの待ち時間となる。この待ち時間ではデータ転送機構40は全ての機能を作動させる必要がないので、クロック制御部460によって動作クロックの低減または停止を行って、無駄な電力消費を抑制する。クロック制御部460は、クロックの低減または停止中であっても、待ち時間をカウントする回路には所定の周波数のクロックを供給し続ける。
ここで、フラグは、後述するように、複数のプロセッサコア間でデータをやり取りする際の読み込みまたは書き込みのタイミングを決定するために用いるものである。2つのプロセッサコア間でデータ転送を行うとき、一方のプロセッサコアが共有メモリ60へデータを書き込んだ後に、他のプロセッサコアが共有メモリ60のデータを読み込んで利用する場合、データを書き込むプロセッサコアがフラグをセットし、データを読み込むプロセッサコアがフラグの値をチェックする。つまり、データを書き込むプロセッサコアのデータ転送機構40は、データ転送が完了すると共有メモリ60上のフラグを所定の値にセットする。データを読み込むプロセッサコアではデータ転送機構40が共有メモリ60上のフラグの値を監視し、フラグの値が所定の値になってから読み込みを開始する。これにより、複数のプロセッサコア間でデータ転送を行う場合は、各プロセッサコア10−0〜10−nのCPU20が、データの書き込みまたは読み出しと、フラグのセットとフラグのチェックをデータ転送機構40へ指令するだけでよい。各プロセッサコア間ではデータ転送機構40がフラグを用いて、データの書き込みが完了したことをフラグの値で示し、他方のプロセッサコアは、フラグの値からデータ転送が完了したことを検知して、一方のプロセッサコアが確実に書き込んだデータを読み込むことができる。なお、セットするフラグの値と、比較する値は、プログラムで同一の値を設定しておけばよい。
このように、データ転送機構40がデータ転送を同期させるフラグを共有メモリ60(または内蔵メモリ30)上で操作することで、CPU20同士が通信することなくプロセッサコア間でデータの読み書きを正確に行うことができる。
図3は、データ転送機構40を構成するレジスタ群のうち、主要なレジスタを示すブロック図である。
転送元アドレスレジスタ461は、読み込むデータが記憶された内蔵メモリ30または共有メモリ60のアドレスをセットする。転送先アドレスレジスタ462は、データを書き込む内蔵メモリ30または共有メモリ60のアドレスをセットする。総転送量レジスタ463は、転送を行うデータのサイズを設定する。ストライド転送量レジスタ464は、アドレスが不連続なストライド転送やギャザー転送またはスキャッタ転送を行う場合のデータの転送量を設定する。ストライド幅レジスタ465は、ストライド転送やギャザー転送またはスキャッタ転送を行う場合のメモリアドレスの間隔を設定する。
コマンドチェインレジスタ466は、コマンドチェイン機能が有効なときに、内蔵メモリ30(または共有メモリ60)に格納されたコマンドのアドレスを設定する。チェックウェイトレジスタ467は、フラグのチェックの待ち時間の長さを設定するレジスタで、チェックウェイトレジスタ467に設定された値は、常時所定のクロック周波数で駆動されるカウンタ474で計数され、カウンタ474の値がチェックウェイトレジスタ467の値に一致すると、フラグチェック部430が共有メモリ60(または内蔵メモリ30)のフラグのチェックを実行する。
ステータスレジスタ468はデータ転送機構40のデータ転送状態を示す値が格納されうる。コマンドレジスタ469は、CPU20がデータ転送機構40に要求する機能に対応するコマンドを格納する。チェックパタン格納レジスタ470は、フラグのチェックの際に共有メモリ60上のフラグの値と比較するための値を格納する。セットパタン格納レジスタ471では、共有メモリ60に設定するフラグの値を格納する。フラグアドレスレジスタ472は、フラグを格納した共有メモリ60のアドレスが格納される。
クロック制御レジスタ473は、フラグのチェックの待ち時間でデータ転送機構40への動作クロックを低減または停止させる場合に、動作クロック周波数の値を設定する。
また、データ転送機構40は、CPU20からの指令やデータを一時的に格納するバッファ475を備えている。
以上の各レジスタにCPU20が所定の値をセットすることで、データ転送機構40はCPU20の指令したコマンド基づいてデータ転送や監視を実行する。
図4は、内蔵メモリ30に設定されるコマンドチェイン機能によるコマンド列の一例を示す。コマンドとしては、メモリ(内蔵メモリ30または共有メモリ60)上のアドレスが連続した領域でデータ転送を行うコマンドや、フラグのセットまたはチェックのコマンドを記述する場合には、図中ショートコマンド401を使用する。一方、メモリ上のアドレスが不連続な領域でデータ転送を行うストライド転送やギャザー転送またはスキャッタ転送を場合には、図中ロングコマンド402を使用する。
ショートコマンドは、先頭からオペコード、全転送バイト数、内蔵メモリアドレス、共有メモリアドレス、次のコマンドへのポインタ4010から構成される。
オペコードは、データ転送機構40によるデータ転送を制御し、put/getコマンド、setコマンド、checkコマンド、チェインコマンドの指示を行う。
内蔵メモリアドレスは、put/getコマンドでは転送元あるいは転送先となる内蔵メモリ30の先頭のアドレスを指定する。
共有メモリアドレスは、put/getコマンドでは転送元あるいは転送先となる共有メモリ60の先頭のアドレスを指定する。
内蔵メモリアドレスと共有メモリアドレスは、setコマンド及びcheckコマンドではいずれかがsetもしくはcheckの対象となるアドレスを指定し、残りがsetもしくはcheckすべき値を指定する。例えば、共有メモリ60上にフラグを設定した場合には、共有メモリアドレスにフラグのアドレスをセットし、内蔵メモリアドレスにフラグの値をセットする。
次のコマンドへのポインタ4010は、次に実行すべきコマンドの格納先となるメモリアドレスを指定する。なお、全転送バイト数は、put/getコマンドでの転送バイト数を指定する。
ロングコマンド402は、上記ショートコマンド401の次のコマンドへのポインタ4010以降に、全転送バイト数、ストライド時の転送バイト数、ストライド幅を加えたものである。ストライド時の転送バイト数は、put/getコマンドにおけるgather/scatter転送時の各転送バイト数を指定する。また、ストライド幅は、put/getコマンドにおけるgather/scatter転送時のストライド間隔を指定する。
CPU20は、データ転送機構40のコマンドチェイン機能を利用するときには、図5で示すように、内蔵メモリ30(または共有メモリ60)に上記図4で示したコマンド列を予め格納しておく。そして、CPU20からの指令を受けて、コマンドチェイン部410がコマンド列を読み出し、データ転送などを実行する。なお、CPU20は実行するプログラムで指定されたコマンド列を、所定の記憶域(内蔵メモリ30や共有メモリ60)に書き込むものである。
図中コマンド1〜4は、内蔵メモリ30の任意の領域に格納され、図4に示したように、次のコマンドへのポインタ4010により、データ転送機構40が次に読み込むべきコマンドのアドレスが指定される。CPU20は、内蔵メモリ30の書き込み可能な領域へ順次コマンドを書き込むため、コマンドの実行順序とコマンドのアドレスは一致しない。
コマンドチェインを利用したコマンドの実行は、CPU20から指令を受けたコマンドチェイン部410がコマンド列を順次読み込んで、実行する。
図5の例では、コマンド1が終了するとコマンド2を読み込み、順次コマンド3、4を読み込んで実行することができる。最後のコマンド4のポインタ4010には内蔵メモリ30のアドレスがないので、最後のコマンドとして判定され、コマンドチェイン部410は一連のコマンド列の実行を終了する。
CPU20は、データ転送機構40のコマンドチェイン部410が提供するコマンドチェイン機能を利用することで、複数のデータ転送に関する指令をまとめて行うことが可能となり、指令が完了した後には演算処理を実行することができる。
図6は、データ転送機構40で行われるチェインコマンドの実行処理の一例を示すフローチャートである。この処理は、上記図4に示したコマンド列の書き込みが完了した後に、CPU20からの指令を受けて実行される。なお、コマンドチェインの指令は、プログラムのコンパイル時にコンパイラが設定することができる。
ステップS11では、コマンドチェイン部410が内蔵メモリ30のコマンド列を先頭から順次読み込んで、S12でコマンドの種類を判定する。ステップS12では、コマンドの種類に応じたモジュール(図4のデータ転送部420〜フラグセット部450等の機能要素)が実行される。
読み込んだコマンドの種類がputコマンドまたはgetコマンドの場合にはステップS13ヘ進み、setコマンドの場合にはステップS14へ進み、checkコマンドの場合にはステップS15へ進み、その他のコマンドの場合にはステップS16へ進む。
ステップS13では、putコマンドの場合、転送元アドレスレジスタ461に内蔵メモリ30のアドレスを設定し、転送先アドレスレジスタ462に共有メモリ60上のアドレスを設定し、総転送量レジスタ463にデータの総量を設定し、コマンドレジスタ469にputコマンドを設定して内蔵メモリ30から共有メモリ60への書き込み処理を実行する。
一方、getコマンドの場合は、転送元アドレスレジスタ461に共有メモリ60のアドレスを設定し、転送先アドレスレジスタ462に内蔵メモリ30のアドレスを設定し、総転送量レジスタ463にデータの総量を設定し、コマンドレジスタ469にgetコマンドを設定して共有メモリ60から内蔵メモリ30への読み込み処理を実行する。
なお、ストライドやギャザー、スキャッタ等、アドレスの不連続な転送を実行する場合には、ストライド転送量レジスタ464に転送するデータの総量を設定し、ストライド幅レジスタ465に、アドレスの間隔を設定し、コマンドレジスタ469にストライド、ギャザー、スキャッタの識別子を設定する。
ステップS14のsetコマンドの場合では、フラグアドレスレジスタ472に共有メモリ60上のアドレスを設定し、セットパタン格納レジスタ471にフラグの値を設定し、コマンドレジスタ469にsetコマンドを格納して、フラグの設定処理を実行する。
ステップS15のcheckコマンドの場合では、フラグアドレスレジスタ472に共有メモリ60上のアドレスを設定し、チェックパタン格納レジスタ470にフラグの比較値を設定し、コマンドレジスタ469にcheckコマンドを格納して、フラグのチェック処理を実行する。なお、checkコマンドの詳細については後述する。
ステップS16のその他のコマンドの場合は、コマンドの種類に応じたレジスタにCPU20から指令された値を設定して処理を実行する。
上記ステップS13からS16のいずれかで処理の実行が完了すると、ステップS17へ進み、コマンドチェイン部410は、実行が完了したコマンドのポインタ4010を参照して、次に実行するコマンドのアドレスがあるか否かを判定する。ポインタ4010に次のコマンドのアドレスが設定されていればステップS11に戻って次のコマンドを実行する。一方、ポインタ4010に次のコマンドのアドレスが設定されていなければ、実行が完了したコマンドがコマンド列の最後のコマンドであったので、コマンドチェイン処理を終了する。
上記処理により、データ転送機構40は、図5で示した内蔵メモリ30上のコマンド列(コマンド1〜4)を順次実行し、データ転送に関する処理をCPU20から独立して連続的に実行する。
なお、データ転送機構40は、コマンドチェインの指令がない場合には、通常のDMACと同等に機能することができる。
次に、本発明のデータ転送機構40の特徴である、フラグチェック部430の処理について説明する。図7は、データ転送機構40のフラグチェック部430で行われる処理の一例を示すフローチャートである。このフローチャートは、コマンドチェイン部410がcheckコマンドを読み込んだときに実行されるものである。
フラグチェック部430は、コマンドチェイン部410が読み込んだcheckコマンドから、フラグが設定される共有メモリ60上のアドレスと、フラグの比較値を読み込む。そして、ステップS21で、フラグチェック部430は、checkコマンドで指定された共有メモリ60上のアドレスからフラグを読み込む。次に、ステップS22では、checkコマンドから取得したフラグの比較値と、ステップS21で読み込んだフラグの値が一致するか否かを判定する。
読み込んだフラグの値とフラグの比較値が一致していれば、他のプロセッサコアによる処理、例えば、共有メモリ60へのデータ転送が完了したと判定してフラグチェック部430の処理を終了する。この後、コマンドチェイン部410は、当該checkコマンドの次のコマンドへのポインタ4010により指定されたコマンドを読み込んで実行することになる。
一方、フラグの値とフラグの比較値が一致しない場合には、ステップS23へ進んで、フラグチェックの待ち時間のカウントを開始する。すなわち、図3のチェックウェイトレジスタ467に待ち時間に対応する値を設定し、カウンタ474でカウントを開始する。
ステップS24では、カウンタ474の値がチェックウェイトレジスタ467の値に一致したか否かを判定し、一致していれば所定の待ち時間が経過したのでステップS21に戻って、再度フラグのチェックを繰り返す。
一方、待ち時間が経過していない場合には、ステップS25に進んで、データ転送機構40の動作クロックを低減する。すなわち、クロック制御レジスタ473に低減させる動作クロック周波数を設定し、データ転送機構40を駆動する動作クロックを低下させる。
そして、再びステップS24の処理に戻って待ち時間が経過するまでステップS25のクロックの低減を繰り返す。
以上の処理により、共有メモリ60のフラグの監視を所定の待ち時間が経過する度に実行することで、プロセッサコア間ネットワーク50の負荷が過大になるのを防ぎながら、他のプロセッサコアによる共有メモリ60へのデータ転送が完了するのをデータ転送機構40で検知できるのである。この間、CPU20は所定の演算処理を行うことができるので、処理能力を損なうことがない。
なお、ステップS25のクロックの低減処理に代わって、データ転送機構40の動作クロックを停止する場合には、カウンタ474(またはタイマ)への動作クロックは常時クロック生成部70から供給させる。そして、カウンタ473(またはタイマ)は所定期間が経過したらCPU20に割り込みをかけて、データ転送機構40再起動させればよい。
次に、図8〜図10は複数のプロセッサコア間で共有メモリ60を介してデータを転送する場合に、上記setコマンドとcheckコマンドを用いてデータ転送機構40同士でデータ転送を実行する例を示す。
図8は、図1に示したプロセッサコア10−0のCPU20をCPU#0とし、データ転送機構40をDTU#0とし、内蔵メモリ30をLM#0とし、同じくプロセッサコア10−1のCPU20をCPU#1、データ転送機構40をDTU#1とし、内蔵メモリ30をLM#1とする。
そして、2つのプロセッサコアはDTU#0、#1のコマンドチェイン機能を利用して、プロセッサコア10−0のDTU#0が、LM#0の領域Aのデータを共有メモリ60の領域Bへ転送し(S33)、その後、プロセッサコア10−1のDTU#1が共有メモリ60の領域BのデータをLM#1の領域Cへ転送する(S36)場合を示す。そして、DTU#0はデータ転送が完了すると、共有メモリ60の所定の領域にフラグFをセットし(S34)、DTU#1はフラグFが所定の比較値と一致したことを判定した後に(S25)、共有メモリ60からLM#1の領域Cへのデータ転送を開始する例を示している。
図9は、プロセッサコア10−0、10−1が所定のプログラムを実行して、DTU#0、#1に指示するコマンドチェインの一例を示す。プロセッサコア10−0は、図9のコマンドチェインPGM0をDTU#0に指令し、プロセッサコア10−1は、コマンドチェインPGM1をDTU#1へ指令する。プロセッサコア10−0、1は各コマンドチェインPGM1、0をほぼ同時に指令するものとする。
プロセッサコア10−0は、次の複数のコマンドをコマンドチェインPGM0で処理するようにDTU#0へ指令する。
「put A to B」:LM#0の領域Aのデータを共有メモリ60の領域Bへ書き込み。
「set F」:書き込みの後に、共有メモリ60へフラグFをセット。
プロセッサコア10−1は、次の複数のコマンドをコマンドチェインPGM1で処理するようにDTU#1へ指令する。
「check F」:共有メモリ60のフラグFが所定の比較値と一致するまで所定の時間間隔で監視。
「get B to C」:共有メモリ60の領域BからLM#1の領域Cのデータを読み込み。
なお、共有メモリ60上のフラグFを格納する領域及びフラグFの設定値と比較値は、プロセッサコア10−0、1が実行するプログラムに予め設定したものである。
プロセッサコア10−0では、CPU#0がコマンドチェインPGM0をDTU#0に指令し、内蔵メモリLM#0にコマンド列を設定してDTU#0が実行する。同様に、プロセッサコア10−1では、CPU#1がコマンドチェインPGM1をDTU#1に指令し、内蔵メモリLM#1にコマンド列を設定してDTU#1が実行する。
以上のコマンドチェインを実行した結果を図10のタイムチャートに示す。図10において、時刻T0では、プロセッサコア10−0のDTU#0は内蔵メモリLM#0の領域Aにあるデータを、共有メモリ60の領域Bへ転送を開始する。DTU#0は領域Bへの転送を時刻T1で終了すると、次のsetコマンドを実行して、時刻T2に共有メモリ60の所定のアドレスにフラグFを設定する。すなわち、putコマンドとsetコマンドを併用することで、DTU#0のデータ転送が完了したことを共有メモリ60のフラグFで他のプロセッサコアのDTUに伝達することができるのである。
一方、プロセッサコア10−1では、時刻T0からDTU#1が、共有メモリ60のフラグFが比較値と一致したか否かを所定の時間間隔ΔTで監視する。DTU#1は、フラグFの値が所定の比較値と一致しない間は、所定の間隔ΔTで繰り返してフラグFの値を監視する。そして、DTU#1は時刻T2でフラグFがDTU#1によってセットされたことから、フラグFの値が比較値と一致したのでプロセッサコア10−0のデータ転送が完了したことを検知する。そして、DTU#1は、時刻T3で次のgetコマンドを実行して、共有メモリ60の領域BからLM#1の領域Cへデータ転送を実行する。
以上のように、2つのプロセッサコア10−0、10−1間でデータの転送を行う場合、putコマンドやgetコマンドのデータ転送コマンドに、フラグFを設定するsetコマンドとフラグFを監視するcheckコマンドをコマンドチェイン機能によって併用することで、CPU#0、#1は、データ転送の指令を行った後は、DTU同士がデータ転送のタイミングを自立的に決定するので、プロセッサコア間でのデータ転送のオーバーヘッドを低減して、マルチコアプロセッサシステム1全体の処理能力を向上させることが可能となるのである。
また、フラグFの監視を所定の時間間隔ΔTで監視することにより、プロセッサコア間ネットワーク50の通信負荷が過大になるのを防止でき、マルチコアプロセッサシステム1全体の処理能力を向上させることができる。
また、フラグFの監視の待ち時間は、データ転送機構40の動作クロックの周波数を低減することにより、無駄な消費電力を抑制して、高性能かつ低消費電力のマルチコアプロセッサシステム1を提供できる。
なお、上記実施形態では、フラグFを共有メモリ60に設定したが、内蔵メモリLM#0、#1のいずれかに設定することができる。また、上記実施形態では、共有メモリ60を介してデータ転送を行ったが、プロセッサコアの内蔵メモリ30間でデータの転送を行っても良い。
また、上記実施形態では、各プロセッサコアの命令セット及び構成が同一のホモジニアス・マルチコアプロセッサシステムに本発明を適用した例を示したが、各プロセッサコアの命令セットと構成が異なるヘテロジニアス・マルチコアプロセッサシステムに本発明を適用することができる。例えば、演算処理を行うCPU20を備えたプロセッサコアの他に、信号処理を行うDSP(Digital Signal Processor)を含むプロセッサコアや、DRP(Dynamically Reconfigurable Processor)を含むプロセッサコアを備えるようにしても良い。
また、上記実施形態では、CPU20が複数のコマンドからなるコマンド列を内蔵メモリ30に書き込んだが、共有メモリ60あるいはマルチコアプロセッサシステム1の外部の記憶装置にコマンド列を書き込んでデータ転送機構40が実行するようにしても良い。
<第2実施形態>
図11は、第2の実施形態を示し、前記第1実施形態のデータ転送機構40をプロセッサコアの外部に配置したもので、その他の構成は前記第1実施形態と同様である。データ転送機構DTU#0及びDTU#1はプロセッサコア間ネットワーク50に接続され、プロセッサコア10−0、プロセッサコア10−1から利用可能となっている。
この構成の場合、各プロセッサコア10−0、10−1は空き(処理待ち)となっているデータ転送機構を利用するようにしても良い。
なお、上記第1または第2実施形態において、上記マルチコアプロセッサシステム1は、所定のコンパイラが出力したコマンドチェインを含むコードと協調して動作するアーキテクチャとしても良い。すなわち、所定のコンパイラはプログラムの解析結果からデータ転送命令列(コマンド列)ならびにデータ転送機構間の順序関係を保証する同期命令列からなるデータ転送機構40用のコマンド列をローカルメモリ(内蔵メモリ30)上に生成する。マルチコアプロセッサシステム1は、所定のコンパイラが出力したデータ転送命令列、同期命令列からなるコマンド列の実行時に、これらコマンド列の先頭をデータ転送機構40に渡し、データ転送機構40はマルチコアプロセッサシステム1の動作とは独立して、これらのコマンド列を処理していく。
以上のように、本発明は複数のプロセッサコアを備えたマルチコアプロセッサシステムや、複数のプロセッサを備えた計算機システムに適用することで、データ転送のオーバーヘッドを低減してプロセッサの処理能力を向上させることができるのである。
本発明の第1の実施形態を示し、プロセッサの構成を示すブロック図。 データ転送機構の機能を示すブロック図。 データ転送機構の主なレジスタ構成を示すブロック図。 データ転送機構が扱うコマンドのフォーマットを示す説明図。 内蔵メモリに格納されたコマンド列を示すマップ。 コマンド列を実行するコマンドチェイン処理の一例を示すフローチャート。 フラグチェックの処理の一例を示すフローチャート。 2つのプロセッサコア間でデータの転送を行う場合のブロック図。 2つのデータ転送機構に実行させるコマンドチェインの指令の一例を示す説明図。 2つのプロセッサコア間でデータの転送を行う場合のタイムチャート。 第2の実施形態を示し、プロセッサの構成を示すブロック図。
符号の説明
10−0〜10−n プロセッサコア
20 CPU
30 内蔵メモリ
40 データ転送機構
60 共有メモリ
410 コマンドチェイン部
420 データ転送部
430 フラグチェック部
440 インターバルセット部
450 フラグセット部
460 クロック制御部

Claims (10)

  1. 演算処理または信号処理を行う演算部と、データを記憶する記憶部と、前記記憶部と記憶装置の間でデータの転送を実行するデータ転送部と、を備えたプロセッサにおいて、
    前記データ転送部は、
    前記記憶部または記憶装置に予め格納されたデータ転送指令を含む複数のコマンドからなるコマンド列を、前記演算部からの指令に基づいて読み込んで実行するコマンドチェイン部と、
    前記コマンドが所定の監視コマンドのときには、前記記憶装置または記憶部に予め設定されたデータを読み込んで、予め設定された比較値と前記データの値が一致するまで当該データの監視を繰り返す監視部と、を備え、
    前記コマンドチェイン部は、前記監視部による監視が完了した後に、前記コマンド列から次のコマンドを実行させることを特徴とするプロセッサ。
  2. 前記演算部と記憶部とデータ転送部とを含むプロセッサコアを複数備え、
    前記コマンドが所定のデータ設定コマンドのときには、前記記憶部または記憶装置の予め設定された領域に所定のデータを書き込むデータセット部を備えたことを特徴とする請求項1に記載のプロセッサ。
  3. 前記監視部は、前記他のプロセッサコアのデータセット部によって前記予め設定されたデータが書き込まれるのを監視することを特徴とする請求項2に記載のプロセッサ。
  4. 前記監視部は、
    前記予め設定されたデータの読み込みを所定の周期で実行するように時間間隔を設定するインターバル設定部を備えたことを特徴とする請求項1に記載のプロセッサ。
  5. 少なくとも前記演算部とデータ転送部にクロックを供給するクロック供給部を備え、
    前記監視部は、
    前記時間間隔が経過するまでの期間は、当該データ転送部へのクロックの周波数を低減または遮断するクロック制御部を備えたことを特徴とする請求項4に記載のプロセッサ。
  6. 演算処理または信号処理を行う演算部と、データを記憶する記憶部と、を含むプロセッサと、
    前記演算部からの指令に基づいて前記記憶部と記憶装置の間でデータの転送を実行するデータ転送ユニットにおいて、
    前記データ転送ユニットは、
    前記記憶部または記憶装置に予め格納されたデータ転送指令を含む複数のコマンドからなるコマンド列を、前記演算部からの指令に基づいて読み込んで実行するコマンドチェイン部と、
    前記コマンドが所定の監視コマンドのときには、前記記憶装置または記憶部に予め設定されたデータを読み込んで、予め設定された比較値と前記データの値が一致するまで当該データの監視を繰り返す監視部と、を備え、
    前記コマンドチェイン部は、前記監視部による監視が完了した後に、前記コマンド列から次のコマンドを実行させることを特徴とするデータ転送ユニット。
  7. 前記プロセッサは、前記演算部と記憶部とを含むプロセッサコアを複数備え、
    前記コマンドが所定のデータ設定コマンドのときには、前記記憶部または記憶装置の予め設定された領域に所定のデータを書き込むデータセット部を備えたことを特徴とする請求項6に記載のデータ転送ユニット。
  8. 前記監視部は、前記他のプロセッサコアのデータセット部によって前記予め設定されたデータが書き込まれるのを監視することを特徴とする請求項7に記載のデータ転送ユニット。
  9. 前記監視部は、
    前記予め設定されたデータの読み込みを所定の周期で実行するように時間間隔を設定するインターバル設定部を備えたことを特徴とする請求項6に記載のデータ転送ユニット。
  10. 前記監視部は、
    前記時間間隔が経過するまでの期間は、当該データ転送ユニットへのクロックの周波数を低減または遮断するクロック制御部を備えたことを特徴とする請求項6に記載のデータ転送ユニット。
JP2006274879A 2006-10-06 2006-10-06 プロセッサ及びデータ転送ユニット Active JP4476267B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006274879A JP4476267B2 (ja) 2006-10-06 2006-10-06 プロセッサ及びデータ転送ユニット
US11/865,669 US8200934B2 (en) 2006-10-06 2007-10-01 Data transfer unit in multi-core processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006274879A JP4476267B2 (ja) 2006-10-06 2006-10-06 プロセッサ及びデータ転送ユニット

Publications (2)

Publication Number Publication Date
JP2008097084A true JP2008097084A (ja) 2008-04-24
JP4476267B2 JP4476267B2 (ja) 2010-06-09

Family

ID=39275864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006274879A Active JP4476267B2 (ja) 2006-10-06 2006-10-06 プロセッサ及びデータ転送ユニット

Country Status (2)

Country Link
US (1) US8200934B2 (ja)
JP (1) JP4476267B2 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061324A (ja) * 2008-09-03 2010-03-18 Hitachi Automotive Systems Ltd 分散制御用制御ソフトウェアおよび電子制御装置
WO2010119932A1 (ja) * 2009-04-17 2010-10-21 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおけるメモリ管理方法及び通信プログラム
JP2011070259A (ja) * 2009-09-24 2011-04-07 Mitsubishi Electric Corp データ転送装置及びデータ転送方法
WO2011148920A1 (ja) * 2010-05-26 2011-12-01 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
JP2011530744A (ja) * 2008-08-06 2011-12-22 アスペン・アクイジション・コーポレーション 停止可能および再始動可能dmaエンジン
JP2012003673A (ja) * 2010-06-21 2012-01-05 Mitsubishi Electric Corp Cpu間通信システム及びcpu間通信方法
JP2013535735A (ja) * 2010-07-29 2013-09-12 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法
JP5494854B1 (ja) * 2013-02-25 2014-05-21 日本電気株式会社 半導体集積回路及びレジスタリード方法
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
JP2018120484A (ja) * 2017-01-26 2018-08-02 Necプラットフォームズ株式会社 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2019016328A (ja) * 2017-07-11 2019-01-31 富士通株式会社 情報処理装置、情報処理システム及びプログラム
JP2020071689A (ja) * 2018-10-31 2020-05-07 ルネサスエレクトロニクス株式会社 半導体装置およびそれを用いるシステム
CN112526914A (zh) * 2020-12-21 2021-03-19 苏州光格科技股份有限公司 一种毫安级数据采集单元低功耗管理流程方法
WO2021124917A1 (ja) * 2019-12-18 2021-06-24 ソニーグループ株式会社 情報処理システム、情報処理方法、及び、情報処理装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250260B2 (en) 2009-12-15 2012-08-21 International Business Machines Corporation Method, arrangement, data processing program and computer program product for exchanging message data in a distributed computer system
US8762609B1 (en) * 2010-11-03 2014-06-24 Pmc-Sierra Us, Inc. System and method for multiengine operation with super descriptor in SAS/SATA controller wherein portion of super-descriptor is executed without intervention of initiator
US8904109B2 (en) 2011-01-28 2014-12-02 Freescale Semiconductor, Inc. Selective cache access control apparatus and method thereof
US8756405B2 (en) * 2011-05-09 2014-06-17 Freescale Semiconductor, Inc. Selective routing of local memory accesses and device thereof
GB2511672B (en) * 2011-11-04 2020-04-15 Univ Waseda Processor system and accelerator
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
JP6018022B2 (ja) 2013-06-14 2016-11-02 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置
US11074169B2 (en) * 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
JP6488739B2 (ja) 2015-02-05 2019-03-27 株式会社デンソー 並列化コンパイル方法、及び、並列化コンパイラ
JP6488738B2 (ja) 2015-02-05 2019-03-27 株式会社デンソー 並列化コンパイル方法、及び、並列化コンパイラ
JP6427053B2 (ja) 2015-03-31 2018-11-21 株式会社デンソー 並列化コンパイル方法、及び並列化コンパイラ
JP6427054B2 (ja) 2015-03-31 2018-11-21 株式会社デンソー 並列化コンパイル方法、及び並列化コンパイラ
CN112328533A (zh) * 2020-11-09 2021-02-05 哲库科技(上海)有限公司 多核处理系统及其核间通信方法、存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61264829A (ja) 1985-05-17 1986-11-22 Fujitsu Ltd ネツトワ−ク制御装置の割込み制御方式
JPS6228865A (ja) 1985-07-30 1987-02-06 Nec Corp マルチプロセツサ・システム
JPS62192844A (ja) 1986-02-20 1987-08-24 Fujitsu Ltd Dma制御回路
JPS62219153A (ja) 1986-03-20 1987-09-26 Fujitsu Ltd Dmaコントロ−ラ
JPS63216170A (ja) 1987-03-05 1988-09-08 Mitsubishi Electric Corp デイジタル信号処理プロセツサ
JPH02252044A (ja) 1989-03-24 1990-10-09 Hitachi Ltd コプロセッサ及びデータ転送制御方式
JPH0462610A (ja) 1990-06-29 1992-02-27 Sharp Corp データ通信装置
JPH05282243A (ja) 1992-03-31 1993-10-29 Canon Inc バスマスター装置及び該装置を用いた電子機器
JPH06149749A (ja) 1992-11-13 1994-05-31 Kyocera Corp 複数プロセッサ間におけるデータ転送方式
JPH06282515A (ja) 1993-03-25 1994-10-07 Hitachi Ltd データ処理装置
JPH09330288A (ja) 1996-06-12 1997-12-22 Nec Corp Dmaバス転送システム
JPH11120156A (ja) 1997-10-17 1999-04-30 Nec Corp マルチプロセッサシステムにおけるデータ通信方式
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US7146391B2 (en) * 2002-01-24 2006-12-05 Broadcom Corporation Method and system for implementing SLICE instructions
JP2004021938A (ja) 2002-06-20 2004-01-22 Oki Electric Ind Co Ltd データ転送制御回路
EP1535169B1 (en) * 2002-07-23 2012-01-25 ST-Ericsson SA Improved inter-processor communication system for communication between processors
US20050055528A1 (en) * 2002-12-12 2005-03-10 International Business Machines Corporation Data processing system having a physically addressed cache of disk memory
US7779212B2 (en) * 2003-10-17 2010-08-17 Micron Technology, Inc. Method and apparatus for sending data from multiple sources over a communications bus
US7430657B2 (en) * 2003-12-31 2008-09-30 Intel Corporation System, method and device for queuing branch predictions
JP2005309649A (ja) 2004-04-20 2005-11-04 Matsushita Electric Ind Co Ltd 共有メモリ転送制御回路および共有メモリ転送制御システム
US7428619B2 (en) * 2005-01-18 2008-09-23 Sony Computer Entertainment Inc. Methods and apparatus for providing synchronization of shared data
US20060206635A1 (en) * 2005-03-11 2006-09-14 Pmc-Sierra, Inc. DMA engine for protocol processing
US20070055839A1 (en) * 2005-09-06 2007-03-08 Alcatel Processing operation information transfer control systems and methods
US20090006774A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Employing Multiple-Speed Bus

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011530744A (ja) * 2008-08-06 2011-12-22 アスペン・アクイジション・コーポレーション 停止可能および再始動可能dmaエンジン
US8732382B2 (en) 2008-08-06 2014-05-20 Qualcomm Incorporated Haltable and restartable DMA engine
JP2010061324A (ja) * 2008-09-03 2010-03-18 Hitachi Automotive Systems Ltd 分散制御用制御ソフトウェアおよび電子制御装置
JPWO2010119932A1 (ja) * 2009-04-17 2012-10-22 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおけるメモリ管理方法及び通信プログラム
WO2010119932A1 (ja) * 2009-04-17 2010-10-21 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおけるメモリ管理方法及び通信プログラム
JP2011070259A (ja) * 2009-09-24 2011-04-07 Mitsubishi Electric Corp データ転送装置及びデータ転送方法
JP5895840B2 (ja) * 2010-05-26 2016-03-30 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
WO2011148920A1 (ja) * 2010-05-26 2011-12-01 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
JPWO2011148920A1 (ja) * 2010-05-26 2013-07-25 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
CN102934102A (zh) * 2010-05-26 2013-02-13 日本电气株式会社 多处理器系统、执行控制方法和执行控制程序
US9164951B2 (en) 2010-05-26 2015-10-20 Nec Corporation Multiprocessor system, execution control method and execution control program
JP2012003673A (ja) * 2010-06-21 2012-01-05 Mitsubishi Electric Corp Cpu間通信システム及びcpu間通信方法
JP2013535735A (ja) * 2010-07-29 2013-09-12 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
US10901748B2 (en) 2012-09-27 2021-01-26 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2017224342A (ja) * 2012-09-27 2017-12-21 インテル・コーポレーション プロセッサ及び装置
US10061593B2 (en) 2012-09-27 2018-08-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US11494194B2 (en) 2012-09-27 2022-11-08 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10963263B2 (en) 2012-09-27 2021-03-30 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP5494854B1 (ja) * 2013-02-25 2014-05-21 日本電気株式会社 半導体集積回路及びレジスタリード方法
JP2018120484A (ja) * 2017-01-26 2018-08-02 Necプラットフォームズ株式会社 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2019016328A (ja) * 2017-07-11 2019-01-31 富士通株式会社 情報処理装置、情報処理システム及びプログラム
JP2020071689A (ja) * 2018-10-31 2020-05-07 ルネサスエレクトロニクス株式会社 半導体装置およびそれを用いるシステム
JP7257772B2 (ja) 2018-10-31 2023-04-14 ルネサスエレクトロニクス株式会社 半導体装置を用いるシステム
WO2021124917A1 (ja) * 2019-12-18 2021-06-24 ソニーグループ株式会社 情報処理システム、情報処理方法、及び、情報処理装置
US11983127B2 (en) 2019-12-18 2024-05-14 Sony Group Corporation Information processing system, information processing method, and information processing device to reduce load on an information processing unit
CN112526914A (zh) * 2020-12-21 2021-03-19 苏州光格科技股份有限公司 一种毫安级数据采集单元低功耗管理流程方法

Also Published As

Publication number Publication date
US20080086617A1 (en) 2008-04-10
JP4476267B2 (ja) 2010-06-09
US8200934B2 (en) 2012-06-12

Similar Documents

Publication Publication Date Title
JP4476267B2 (ja) プロセッサ及びデータ転送ユニット
US9977664B2 (en) Information processing device and information processing method in heterogenous multi-cores having different architectures
CN102567256B (zh) 处理器系统及其多通道内存拷贝dma加速器和方法
CN100454280C (zh) 处理器系统,dma控制电路,dma控制方法,dma控制器用控制方法,图形处理方法和图形处理电路
KR20140114074A (ko) 이종 멀티프로세서 컴퓨팅 플랫폼 내에서의 애플리케이션 스케줄링
US8275975B2 (en) Sequencer controlled system and method for controlling timing of operations of functional units
CN111913822B (zh) 一种基于amp架构的核间通信方式
US20140143524A1 (en) Information processing apparatus, information processing apparatus control method, and a computer-readable storage medium storing a control program for controlling an information processing apparatus
US10915488B2 (en) Inter-processor synchronization system
EP1821211A2 (en) Cooperative multitasking method in a multiprocessor system
US7966481B2 (en) Computer system and method for executing port communications without interrupting the receiving computer
US20170038791A1 (en) Clock management unit, integrated circuit including the clock management unit, system on chip, and method of operating the system on chip
JP2003036169A (ja) 複数の小規模プロセッサによって並列処理を行なうシングルチップマイクロプロセッサ
JP7428508B2 (ja) 情報処理装置
KR20090004394A (ko) 입력 소스로부터의 직접적인 명령어들의 실행
WO2019153684A1 (zh) 一种低延迟指令调度器的自动管理方法
JP2008217623A (ja) データプロセッサ
CN116303226A (zh) 粗粒度可重构阵列数据流处理器的高效执行方法及系统
JP2002278753A (ja) データ処理システム
JP2008197943A (ja) コンピュータシステム
JP2003029966A (ja) データ処理装置
KR20240035590A (ko) 처리 요소들 간에 트리거된 명령어들을 전송하기 위한 데이터 처리 장치 및 방법
CN115658601A (zh) 多核处理器系统及其控制方法
JP2004199630A (ja) データ処理装置
JP4293086B2 (ja) マルチプロセッサシステム及びプロセッサの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100127

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: 20100223

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100309

R150 Certificate of patent or registration of utility model

Ref document number: 4476267

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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