JP6160717B1 - プロセッサ、および、データ転送方法 - Google Patents

プロセッサ、および、データ転送方法 Download PDF

Info

Publication number
JP6160717B1
JP6160717B1 JP2016005771A JP2016005771A JP6160717B1 JP 6160717 B1 JP6160717 B1 JP 6160717B1 JP 2016005771 A JP2016005771 A JP 2016005771A JP 2016005771 A JP2016005771 A JP 2016005771A JP 6160717 B1 JP6160717 B1 JP 6160717B1
Authority
JP
Japan
Prior art keywords
read command
engine
command
read
instruction
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.)
Active
Application number
JP2016005771A
Other languages
English (en)
Other versions
JP2017126237A (ja
Inventor
慎 上山根
慎 上山根
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2016005771A priority Critical patent/JP6160717B1/ja
Priority to US15/398,055 priority patent/US10733128B2/en
Application granted granted Critical
Publication of JP6160717B1 publication Critical patent/JP6160717B1/ja
Publication of JP2017126237A publication Critical patent/JP2017126237A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

【課題】リプライデータ読み込み時のレイテンシを短縮するSIMD型コンピュータを提供する。【解決手段】プロセッサ3は、通過してきた命令を実行する手段であって、命令を順次受信して命令転送手段1に送信し、命令がリード命令である場合は、記憶手段13,14に複数のデータリード要求を発行し、返信されるリプライデータを受信してバッファ16に蓄積し、リード命令の全リプライデータの受信が完了すると外部に出力するエンジン10と、エンジンから定期的に命令を受信して通過させるが、リード命令の通過後、通過させたリード命令の転送データ長に応じて与えられる発行間隔制御値が示す期間は、通過させたリード命令を送信したエンジンから送信される後続のリード命令を通過させない命令転送手段と、複数の記憶手段13,14を備える。【選択図】図1

Description

本発明は、プロセッサ、および、データ転送方法、特に、SIMD(Single Instruction Multiple Data)型のコンピュータのプロセッサ、および、データ転送方法に関する。
特許文献1は、共有メモリを有する複数のノードからなるシステムであって、共有メモリのレイテンシを短縮するシステムを開示する。このシステムは、複数のノードからリクエストが発行された場合に、その発行元を特定する制御情報を記憶し、発行されたリクエストのうち最初に返却すべきリクエストを決定することによってレイテンシを短縮する。
特許第5571327号公報
ベクトル型スーパーコンピュータやGPGPU(General-Purpose Graphics Processing Unit)に代表されるSIMD型のコンピュータは、1つの命令で多数個のデータがリプライされる。したがって、SIMD型のコンピュータでは、リプライパスが性能のボトルネックとなり易い。また近年のマルチコア化の流れによって、より多数個のコアから各種命令が多並列で実行され、リプライパスに対する競合がさらに増す傾向にある。多数個のリプライデータが混ざり合うと、各命令に対応するリプライデータが揃うまでの時間が増加し、各命令のレイテンシが大きくなる。このレイテンシを最小限に抑えて、装置の全体性能を低下させないことが大きな課題である。さらには構成要素であるハードウェアリソースを無駄なく最大限に稼働させることも、全体性能を最大化する上で重要なポイントである。
特許文献1が開示するシステムは、リプライパスに対する競合を低下させることはできない。
本発明は、上記課題を解決するプロセッサ、および、データ転送方法を提供することを目的とする。
本発明の1実施の形態のプロセッサは、命令を順次受信して命令転送手段に送信し、通過してきた前記命令を実行する手段であって、前記命令がリード命令である場合は、記憶手段に複数のデータリード要求を発行し、返信されるリプライデータを受信してバッファに蓄積し、前記リード命令の全リプライデータの受信が完了すると外部に出力するエンジンと、前記エンジンから定期的に前記命令を受信して通過させるが、前記リード命令の通過後、通過させた前記リード命令の転送データ長に応じて与えられる発行間隔制御値が示す期間は、通過させた前記リード命令を送信した前記エンジンから送信される後続の前記リード命令を通過させない前記命令転送手段と、複数の前記記憶手段と、を備える。
本発明の1実施の形態のデータ転送方法は、命令を順次受信して命令転送手段に送信し、通過してきた前記命令を実行するエンジンは、前記命令がリード命令である場合は、記憶手段に複数のデータリード要求を発行し、返信されるリプライデータを受信してバッファに蓄積し、前記リード命令の全リプライデータの受信が完了すると外部に出力し、前記命令転送手段は、前記エンジンから定期的に前記命令を受信して通過させるが、前記リード命令の通過後、通過させた前記リード命令の転送データ長に応じて与えられる発行間隔制御値が示す期間は、通過させた前記リード命令を送信した前記エンジンから送信される後続の前記リード命令を通過させない。
本発明にかかるプロセッサは、SIMD型コンピュータのリプライデータ読み込み時のレイテンシを短縮する。
図1は、本発明の第1の実施の形態にかかるプロセッサ3の構成を示す図である。 図2は、発行間隔制御値を示すテーブルを示す。 図3は、プロセッサ3の動作フローチャート(その2)である。 図4は、プロセッサ3の動作フローチャート(その1)である。 図5は、エンジン10が備えるバッファ16を示す図である。 図6は、エンジン10がリードリクエストを発行するタイミングと、読み出されたリプライデータが当該エンジン10のバッファ16に蓄積されるタイミングを、本発明適用前後を対比して示すタイムチャートである。 図7は、リプライデータにヘッダ情報がある場合のタイムチャートである。 図8は、本発明の第2の実施の形態にかかるプロセッサ3の構成を示す図である。
<第1の実施の形態>
<概要>
本実施の形態のプロセッサ3は、例えば、命令の種別とデータ転送長を識別する命令転送制御部1を備える。命令は、命令転送制御部1により、リード命令とリード命令以外の命令(以降、その他命令と略記)に分類され、それぞれがクロスバスイッチ2の対応ポートに入力される。クロスバスイッチ2は、リード命令のデータ転送長に応じて命令の調停参加タイミングを調整する機能を備える。調停参加タイミングは、リード命令のデータ転送長ごとに予め与えられた値に基づいて決定される。
クロスバスイッチ2は、その他の命令は、通常通り、クロックごとに調停に参加させて、リード命令の上述した調停間隔の隙間を埋める。クロスバスイッチ2は、リード命令入力ポート4と、その他入力ポート5を有する。クロスバスイッチ2の入力ポートが、リード命令用とその他用に分かれていることから、リード命令の発行間隔が空いた状態においても、その他の命令の実行は続けられる。
従って、本実施の形態のプロセッサ3は、ハードウェアリソースを無駄なく稼働させることが出来、全体性能を向上させることが可能となる。
<構成>
図1は、本実施の形態にかかるプロセッサ3の構成を示す図である。プロセッサ3は、入出力制御部11、ダイレクトメモリアクセス部9、命令転送部6、コア12、キャッシュメモリ13、および、メインメモリ14を備える。ダイレクトメモリアクセス部9、命令転送部6、キャッシュメモリ13、および、メインメモリ14は、リングバス15により接続されている。入出力制御部11は、ダイレクトメモリアクセス部9、命令転送部6、および、コア12と接続されている。
ダイレクトメモリアクセス部9は1以上のエンジン10を包含し、各エンジン10はバッファ16を備えている。
命令転送部6は、命令転送制御部1とクロスバスイッチ2を包含する。クロスバスイッチ2は、各エンジン10に対応して、リード命令入力ポート4とその他入力ポート5を備えている。
各エンジン10は、命令転送制御部1を介して、クロスバスイッチ2が備える、自装置に対応するリード命令入力ポート4とその他入力ポート5に接続されている。
エンジン10は、DMA(Direct Memory Access)機能の制御部であり、いわゆる、DMAエンジンである。エンジン10は、例えば、入出力制御部11を介して外部装置から命令を順次受信し、受信した命令を実行する。エンジン10は、命令をコア12から受信しても良い。
命令は、リード命令とその他の命令に分類される。リード命令は、複数個のリプライデータを、キャッシュメモリ13、メインメモリ14、または、コア12のレジスタから読み出す命令である。
エンジン10は、リード命令を受信すると、例えば、複数のキャッシュメモリ13、メインメモリ14、または、コア12にリプライデータリード要求を発行して、返信されるリプライデータをリングバス15経由で受信する。エンジン10は、受信したリプライデータを、一つのリード命令が読み出したリプライデータが全て揃うまで、内部にあるバッファ16に蓄積する。一つのリード命令が読み出したリプライデータが全て揃うと、エンジン10は、揃った全リプライ以データを外部、例えば、リード命令で指定されたメインメモリ14に出力して、当該リプライデータを蓄積していたバッファ16の領域を解放する。
エンジン10は、複数のリード命令を並行して実行することが出来るが、このバッファ16が満杯、あるいは、満杯近く、すなわち、空き容量があらかじめ定められた基準以下になると、新たなリード命令の実行が出来なくなる。
なお、エンジン10は、命令を受信すると、命令の実行に先立ち、当該命令の実行可能タイミングを計るために、命令転送制御部1に送信する。
ダイレクトメモリアクセス部9は、入出力制御部11から入力された命令や、リングバス15から入力されたリプライデータを、各エンジン10に振り分ける機能を包含する。
命令転送制御部1は、各々のエンジン10が送信した命令をデコードして、リード命令とその他命令に分類し、リード命令であれば、当該リード命令を、後述する発行間隔制御値と共に、当該エンジン10に対応するリード命令入力ポート4に送信する。エンジン10から受信した命令がその他命令であれば、命令転送制御部1は、当該その他命令を、当該エンジン10に対応するその他入力ポート5に送信する。
クロスバスイッチ2は、各エンジン10から、リード命令入力ポート4、または、その他入力ポート5に送信された命令を候補とし、クロスバスイッチ2を通過させて実行に移す命令の選択、すなわち、調停を行う。調停はクロックごとに行われ、例えば、固定優先方式やラウンドロビン方式で行われる。クロスバスイッチ2を通過した命令を送信したエンジン10が、通過した命令を実行する。なお、以降、命令が、クロスバスイッチ2を通過して実行に移されることを、『調停に勝利する』という場合が有る。
なお、クロスバスイッチ2は、あるエンジン10に対応するリード命令入力ポート4からリード命令を通過させた場合、当該ポートからは、通過させたリード命令に付加された発行間隔制御値が示す期間、次のリード命令を通過させない。
プロセッサ3は、複数のコア12を備えており、それぞれのコア12には、キャッシュメモリ13とメインメモリ14が接続されている。エンジン10は、受信したリード命令がクロスバスイッチ2を通過すると、リード命令の対象となる各データを格納しているコア12、キャッシュメモリ13、および、メインメモリ14にリプライデータリードリクエストを発行する。リプライデータリードリクエストを受けた、コア12、キャッシュメモリ13とメインメモリ14はリクエストされたリプライデータをリングバス15経由で、リクエストを発行したエンジン10に送信する。この間コア12は、通常の処理、例えば、アプリケーションプログラムの実行を行っている。
なお、リングバス15の各部には、以下のリプライデータが流される。命令転送部6と最初のコア12/キャッシュメモリ13/メインメモリ14(以降、メモリ等と略記)との間(図中の二重線部)は、リクエストが流される。最初のメモリ等と最後のメモリ等と間(破線部)は、リクエストと読み出されたリプライデータが流される。最後のメモリ等とダイレクトメモリアクセス部9との間(実線部)は、リプライデータが流される。
図2は、発行間隔制御値を示すテーブルを示す。図2が示すように、発行間隔制御値は、リード命令のリプライデータ転送長に依存して与えられている。ここで、転送長はバイト数、発行間隔制御値はクロック数で与えられている。この値は、例えば、リプライヘッダ情報なしの転送長32バイトのリード命令が調停に勝利した後、クロスバスイッチ2は、当該命令を送信してきたリード命令入力ポート4は、4クロックの間隔を空けてから次の調停に参加させることを意味している。同様に、リプライデータ転送長64バイトのリード命令後は8クロック、転送長128バイトのリード命令後は16クロックの間、クロスバスイッチ2は、当該リード命令入力ポート4を調停に参加させない。
これは、一つのリプライデータが1クロックに8バイト転送される構成を例として取り上げて、データを示しているためで、リプライデータ転送に要する時間が、例えば、64バイト=8バイトx8クロックとなるからである。
またリプライデータ転送時にリプライヘッダ情報が有る場合、無い場合に比べて、発行間隔制御値は1クロック大きな値となる。これは、リプライヘッダ情報を転送するのに、1クロックを要するからである。
入出力制御部11、ダイレクトメモリアクセス部9、および、命令転送部6は、論理回路、および、半導体記憶素子、例えば、フリップフロップ回路やSRAM(Static Random Access Memory)で構成される。
本実施の形態のプロセッサ3が行う制御は、輻輳やフロー制御のような負荷を下げる制御とは異なる。プロセッサ3において、性能・負荷のボトルネックとなるバッファ16を含むリプライパスは、フルスループットを発揮できる。一方、リクエストパスのリソースは、リード以外の命令を発行し続けることによって、帯域をフル稼働させることが出来る。それをソフトウェアの介在なく、ハードウェア自身が制御するところに本実施形態のプロセッサ3の特徴がある。
<動作>
図3及び図4は、プロセッサ3の動作フローチャートである。
エンジン10から命令を受信した命令転送制御部1は、命令をデコードし(S1)、リード命令とその他命令とに分類する(S2)。リード命令の場合は(S2でリード命令)、命令転送制御部1は、図2のテーブルに示される発行間隔制御の値を付与して(S11)、クロスバスイッチ2のリード命令入力ポート4へ送信する(S12)。命令転送制御部1は、その他命令の場合は(S2でその他命令)、クロスバスイッチ2のその他入力ポート5へ送信する(S3)。
送信された命令は、クロスバスイッチ2において調停に参加する(S3とS12)。調停においてリード命令が勝利した場合は(S13で勝利)、クロスバスイッチ2は、勝利したリード命令入力ポート4の調停参加までに間隔を設ける。その間隔は、図2のテーブルに従って付与された値が示す期間である。
調停に敗北した場合(S13で敗北)は、当該リード命令は、次のクロックも調停に参加する。調停においてその他命令は勝利または敗北によらず、毎クロック調停に参加する。
リード命令が調停に勝利して(S13で勝利)クロスバスイッチ2を通過したとき(S14)、エンジン10は、リード命令に従って、プロセッサ3内のキャッシュメモリ13、メインメモリ14、または、コア12内のレジスタからリード対象のデータを読み出す(S15)。読み出されたリプライデータは、ダイレクトメモリアクセス部9内のエンジン10に返却され(S16)、バッファ16に格納される(S17)。
リード命令で指示された転送長のリプライデータが全て揃うと、エンジン10は、それらのリプライデータをリード命令で指定されたメインメモリ14に出力し、バッファ16を解放して、後続の命令を実行できるようになる(S18)。
その他命令が調停に勝利して(S4で勝利)クロスバスイッチ2を通過したとき(S5)、エンジン10は、その他命令に従って処理を実行する(S6)。
図5は、エンジン10が備えるバッファ16を示す図である。例えば、1つのエンジン10のバッファ16は、32キロバイトの容量があり、転送長1キロバイトのリード命令で得られるリプライデータを32命令分格納することが出来る。エンジン10が、1キロバイトのリプライデータについて、リードリクエストを8個に分けて発行するとき、1キロバイト=128バイトx8であるため、転送長128バイトのリードリクエストを8個発行することになる。
転送長128バイトのリード命令は、8バイトのリプライデータを16個受信することにより完結し、エンジン10は、そのリプライデータを出力することで、そのバッファ16を解放する。したがって、この8個のリプライデータを連続したクロックで受信すれば、リード命令のレイテンシは最短となる。
図6は、エンジン10がリードリクエストを発行するタイミングと、読み出されたリプライデータが当該エンジン10のバッファ16に蓄積されるタイミングを、本発明適用前後を対比して示すタイムチャートである。
本図のタイムチャートは、リード命令のリプライデータ転送長が64バイト、リード単位が8バイトのケースを例として取り上げて示している。ここで、リードリクエストRn(n=1〜4)に対するリプライデータは、rnで表されている。また、他の命令に関するリクエストは、『他』で表されている。次図(図7)のタイムチャートも、同様である。
リード命令の発行間隔に特別な制御を行わない場合(図中(a))、リプライデータがバッファ16内で混じり合うため、1つのリード命令に対する全てのリプライデータが揃うまでのレイテンシにバラつきがある。発行される命令が多くなれば多くなるほど、レイテンシは悪化することになる。
すなわち、この場合、複数のリード命令に対するリプライデータが、バッファ16内で競合し、混在し合ってレイテンシが大きくなり、リクエストの発行レートが低下する。そして、定常状態ではリクエストに隙間が空き、次第に全体性能が低下する。
一方、本実施の形態のプロセッサ3の場合(図中(b))、リード命令のリプライデータ転送長に応じた適切な間隔を空けて、後続のリード命令を発行しているため、互いのリード命令のリプライデータが混ざり合うことがなく、レイテンシが遅延しない。このためバッファ16の解放が早くなり、後続命令の実行が早くなる。リード命令と後続のリード命令との間には、リード命令以外の命令であるライトなどの一般的な命令が実行されるため、リクエストが発行される隙間がなく、プロセッサ3全体のリソースを無駄なく稼働させている。当然リプライデータがバッファ16に到着するタイミングにも隙間は無い。
すなわち、この場合、レイテンシが短く、かつ、後続リクエストは隙間なく発行され得る。
図7は、リプライデータにヘッダ情報がある場合のタイムチャートである。他の条件は、図6と同様である。
リプライヘッダ情報は、1つのリード命令に対応するリプライデータを隙間なく連続して返却するための情報である。この情報による制御は公知である。図中(a)は、ある1つのエンジン10から4つのリード命令が、間隔を空けずに発行された場合を示している。この場合、それぞれのリプライヘッダ情報によって、4つのリード命令に対して連続してリプライデータが返却される。但し、互いの返却順序は入れ替わることがある。その順序は、各リード命令がどこのメモリのリプライデータを読み出すかによって様々である。順序が入れ替わることにより、レイテンシが遅延する。
すなわち、この場合、リード命令単位で連続してリプライデータが受信されても、リード命令単位では順不同となりレイテンシが増大し、発行レートが低下する。そして、定常状態ではリクエストに隙間が空き、次第に全体性能が低下する。
一方、本実施の形態のプロセッサ3の場合(図中(b))、同一のエンジン10から発行されるリード命令にリプライデータ転送長に応じた適切な間隔を空けているため、リプライデータの順序が入れ替わることがない。このためバッファ16の解放が早くなり、後続命令の発行が早くなる。
すなわち、この場合も、レイテンシが短く、かつ、後続リクエストは隙間なく発行され得る。
<変形例>
図1は、プロセッサ3の内部で命令転送部6と、コア12とキャッシュメモリ13とメインメモリ14をリングバス15で接続した構成を示しているが、一般的なクロスバで接続しても良い。
プロセッサ3が備えるエンジン10は、1個だけであっても良い。この場合、調停は、当該エンジン10のリード命令とその他命令の間でだけ行えば良いため、当該調停機能を命令転送制御部1に取り込んで、クロスバスイッチ2を備えない構成としても良い。すなわち、命令転送部6と命令転送制御部1が同一であっても良い。
構成要素の数、容量、リプライデータ転送サイズは、上記で例示した値に限られない。例えば、クロスバスイッチ2が備えるリード命令入力ポート4の数、エンジン10の数、そのバッファ16の容量、発行間隔制御値の値、1クロックあたりの転送の単位は、適宜変更しても良い。
<効果>
第1の効果として、本実施の形態のプロセッサ3は、リプライデータ読み込み時のレイテンシを短縮し、後続命令を遅延無く実行する。そのため、プロセッサ3は、データ転送が大量に競合する状況においても、全体性能の低下を抑止できる。その理由は、命令転送部6が、リプライデータのスループットに合せてリード命令の発行タイミングを調整するからである。
第2の効果として、本実施の形態のプロセッサ3は、ハードウェアリソースを無駄なく稼働できる。その理由は、命令転送部6が、リード命令の発行タイミングを調整している間は、リード以外の命令を隙間なく発行しているためである。つまり全体性能が、向上する。これは、輻輳やフロー制御のような負荷を下げる制御とは異なる。プロセッサ3は、リクエストパスとリプライパス双方の帯域をフル活用できており、最大スループットを維持できている。
第3の効果として、本実施の形態のプロセッサ3は、本データ転送の制御にソフトウェアの介在が必要無い事である。その理由は、ハードウェアがデータ転送のタイミングを調整するからである。
<第2の実施形態>
図8は、本実施の形態にかかるプロセッサ3の構成を示す図である。プロセッサ3は、エンジン10と、命令転送部6と、記憶部17と、を備える。
エンジン10は、命令を順次受信して命令転送部6に送信し、通過してきた命令を実行する装置である。エンジン10は、命令がリード命令である場合は、記憶部17に複数のデータリード要求を発行し、返信されるリプライデータを受信してバッファ16に蓄積し、リード命令の全リプライデータの受信が完了すると外部に出力する。
命令転部6は、エンジン10から定期的に命令を受信して通過させる。しかし、命令転部6は、リード命令の通過後、通過させたリード命令の転送データ長に応じて与えられる発行間隔制御値が示す期間は、通過させたリード命令を送信したエンジン10から送信される後続のリード命令を通過させない。
記憶部17は、リプライデータを記憶する装置であり、例えば、コア12のレジスタ、キャッシュメモリ13、または、メインメモリ14を包含する。
第1の効果として、本実施の形態のプロセッサ3は、リプライデータ読み込み時のレイテンシを短縮し、後続命令を遅延無く実行する。そのため、プロセッサ3は、データ転送が大量に競合する状況においても、全体性能の低下を抑止できる。その理由は、命令転送部6が、リプライデータのスループットに合せてリード命令の発行タイミングを調整するからである。
第2の効果として、本実施の形態のプロセッサ3は、ハードウェアリソースを無駄なく稼働できる。その理由は、命令転送部6が、リード命令の発行タイミングを調整している間は、リード以外の命令を隙間なく発行しているためである。つまり全体性能が、向上する。これは、輻輳やフロー制御のような負荷を下げる制御とは異なる。プロセッサ3は、リクエストパスとリプライパス双方の帯域をフル活用できており、最大スループットを維持できている。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 命令転送制御部
2 クロスバスイッチ
3 プロセッサ
4 リード命令入力ポート
5 その他入力ポート
6 命令転送部
9 ダイレクトメモリアクセス部
10 エンジン
11 入出力制御部
12 コア
13 キャッシュメモリ
14 メインメモリ
15 リングバス
16 バッファ
17 記憶部

Claims (10)

  1. 命令を順次受信して命令転送手段に送信し、通過してきた前記命令を実行する手段であって、前記命令がリード命令である場合は、記憶手段に複数のデータリード要求を発行し、返信されるリプライデータを受信してバッファに蓄積し、前記リード命令の全リプライデータの受信が完了すると外部に出力するエンジンと、
    前記エンジンから定期的に前記命令を受信して通過させるが、前記リード命令の通過後、通過させた前記リード命令の転送データ長に応じて与えられる発行間隔制御値が示す期間は、通過させた前記リード命令を送信した前記エンジンから送信される後続の前記リード命令を通過させない前記命令転送手段と、
    複数の前記記憶手段と、を備えるプロセッサ。
  2. 前記発行間隔制御値は、前記リード命令に基づいて読み出す対象である前記全リプライデータの転送に要するクロック数、または、前記リード命令に基づいて読み出す対象である前記全リプライデータ、および、ヘッダ情報の転送に要するクロック数である、請求項1のプロセッサ。
  3. 前記エンジンは、前記全リプライデータを出力してバッファを解放し、また、前記バッファの空き容量が所定基準以下の間、新たな前記命令の実行を停止する、請求項1乃至請求項2の何れか1項のプロセッサ。
  4. 複数の前記エンジンを備え、
    前記命令転送手段は、
    各々の前記エンジンから送信されてきた前記命令を、前記リード命令とその他命令に分類して、前記リード命令であれば、前記発行間隔制御値を付加して、クロスバスイッチに各々の前記エンジン対応に設けられたリード命令入力ポートに送信し、前記その他命令であれば、前記クロスバスイッチに各々の前記エンジン対応に設けられたその他入力ポートに送信する、命令転送制御手段と、
    前記リード命令入力ポート、および、複数の前記その他入力ポートに送信された命令から定期的に一つを選択して通過させるが、前記リード命令通過後は、通過させた前記リード命令に付加されていた前記発行間隔制御値が示す期間、前記通過させたリード命令入力ポートに送信される後続の前記リード命令を選択対象としない前記クロスバスイッチと、を備える、請求項1乃至請求項3の何れか1項のプロセッサ。
  5. 前記記憶手段は、複数のコアの各々に接続されたキャッシュメモリと、メインメモリを包含する、請求項1乃至請求項4の何れか1項のプロセッサ。
  6. 命令を順次受信して命令転送手段に送信し、通過してきた前記命令を実行するエンジンは、前記命令がリード命令である場合は、記憶手段に複数のデータリード要求を発行し、返信されるリプライデータを受信してバッファに蓄積し、前記リード命令の全リプライデータの受信が完了すると外部に出力し、
    前記命令転送手段は、前記エンジンから定期的に前記命令を受信して通過させるが、前記リード命令の通過後、通過させた前記リード命令の転送データ長に応じて与えられる発行間隔制御値が示す期間は、通過させた前記リード命令を送信した前記エンジンから送信される後続の前記リード命令を通過させない、データ転送方法。
  7. 前記発行間隔制御値は、前記リード命令に基づいて読み出す対象である前記全リプライデータの転送に要するクロック数、または、前記リード命令に基づいて読み出す対象である前記全リプライデータ、および、ヘッダ情報の転送に要するクロック数である、請求項6のデータ転送方法。

  8. 前記エンジンは、前記全リプライデータを出力してバッファを解放し、また、前記バッファの空き容量が所定基準以下の間、新たな前記命令の実行を停止する、請求項6乃至請求項7の何れか1項のデータ転送方法。
  9. 前記命令転送手段が、
    複数の前記エンジンの各々から送信されてきた前記命令を、前記リード命令とその他命令に分類して、前記リード命令であれば、前記発行間隔制御値を付加して、クロスバスイッチに各々の前記エンジン対応に設けられたリード命令入力ポートに送信し、前記その他命令であれば、前記クロスバスイッチに各々の前記エンジン対応に設けられたその他入力ポートに送信し、
    前記クロスバスイッチが、前記リード命令入力ポート、および、複数の前記その他入力ポートに送信された命令から定期的に一つを選択して通過させるが、前記リード命令通過後は、通過させた前記リード命令に付加されていた前記発行間隔制御値が示す期間、前記通過させたリード命令入力ポートに送信される後続の前記リード命令を選択対象としない、請求項6乃至請求項8の何れか1項のデータ転送方法。
  10. 前記記憶手段は、複数のコアの各々に接続されたキャッシュメモリと、メインメモリを包含する、請求項6乃至請求項9の何れか1項のデータ転送方法。
JP2016005771A 2016-01-15 2016-01-15 プロセッサ、および、データ転送方法 Active JP6160717B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016005771A JP6160717B1 (ja) 2016-01-15 2016-01-15 プロセッサ、および、データ転送方法
US15/398,055 US10733128B2 (en) 2016-01-15 2017-01-04 Processor and data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016005771A JP6160717B1 (ja) 2016-01-15 2016-01-15 プロセッサ、および、データ転送方法

Publications (2)

Publication Number Publication Date
JP6160717B1 true JP6160717B1 (ja) 2017-07-12
JP2017126237A JP2017126237A (ja) 2017-07-20

Family

ID=59308862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016005771A Active JP6160717B1 (ja) 2016-01-15 2016-01-15 プロセッサ、および、データ転送方法

Country Status (2)

Country Link
US (1) US10733128B2 (ja)
JP (1) JP6160717B1 (ja)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239651A (en) * 1991-12-30 1993-08-24 Sun Microsystems, Inc. Method of and apparatus for arbitration based on the availability of resources
KR100390906B1 (ko) * 2001-05-25 2003-07-12 주식회사 하이닉스반도체 가상형 스태틱 랜덤 억세스 메모리장치 및 그의 구동방법
JP2003150395A (ja) 2001-11-15 2003-05-23 Nec Corp プロセッサとそのプログラム転送方法
JP4117621B2 (ja) * 2004-03-31 2008-07-16 日本電気株式会社 データ一括転送装置
JP5571327B2 (ja) 2009-06-18 2014-08-13 エヌイーシーコンピュータテクノ株式会社 レイテンシ短縮システム、レイテンシ短縮方法、および、レイテンシ短縮プログラム
JP2011095966A (ja) * 2009-10-29 2011-05-12 Yamaha Corp アクセスコントローラ
US9086702B2 (en) * 2011-07-01 2015-07-21 Emerson Process Management Regulator Technologies, Inc. Pressure-balanced fluid pressure regulators
US8527836B2 (en) * 2011-07-01 2013-09-03 Intel Corporation Rank-specific cyclic redundancy check
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US20130326113A1 (en) * 2012-05-29 2013-12-05 Apple Inc. Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory
JP6053384B2 (ja) * 2012-08-08 2016-12-27 キヤノン株式会社 情報処理装置、メモリ制御装置およびその制御方法
KR102034626B1 (ko) * 2013-06-26 2019-10-21 삼성전자 주식회사 메모리 동작을 제어하는 방법 및 장치
JP6142783B2 (ja) * 2013-11-25 2017-06-07 富士通株式会社 メモリコントローラ,情報処理装置及びメモリコントローラの制御方法
WO2015198395A1 (ja) * 2014-06-24 2015-12-30 株式会社日立製作所 並列計算装置及びその制御方法
KR101730991B1 (ko) * 2014-10-28 2017-04-28 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10437480B2 (en) * 2015-12-01 2019-10-08 Futurewei Technologies, Inc. Intelligent coded memory architecture with enhanced access scheduler

Also Published As

Publication number Publication date
US10733128B2 (en) 2020-08-04
JP2017126237A (ja) 2017-07-20
US20170206180A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
US8225026B2 (en) Data packet access control apparatus and method thereof
US10353747B2 (en) Shared memory controller and method of using same
US8615629B2 (en) Access scheduler
CN102023890B (zh) 一种用于设置事务优先级的数据处理装置和方法
US20190258601A1 (en) Memory Processing Core Architecture
TWI498918B (zh) 存取緩衝器
US8730248B2 (en) Multi-graphics processor system, graphics processor and data transfer method
EP2548127B1 (en) Requests and data handling in a bus architecture
JPWO2008087779A1 (ja) アレイ型プロセッサおよびデータ処理システム
JPH0962563A (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
JPH0728786A (ja) ベクトルプロセッサ
US9335934B2 (en) Shared memory controller and method of using same
US20140359195A1 (en) Crossbar switch, information processing apparatus, and information processing apparatus control method
US11961073B2 (en) Information processing device
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
JP6160717B1 (ja) プロセッサ、および、データ転送方法
US10031884B2 (en) Storage apparatus and method for processing plurality of pieces of client data
JP6142783B2 (ja) メモリコントローラ,情報処理装置及びメモリコントローラの制御方法
KR101420290B1 (ko) 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
JP4839489B2 (ja) ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム
JP2001125826A (ja) 集合メモリ用のインタフェースを有する複数のプロセッサを備える装置
JP2000194683A (ja) 共有メモリの調停回路およびその調停方法
KR102338872B1 (ko) 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법
JP6978670B2 (ja) 演算処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170529

R150 Certificate of patent or registration of utility model

Ref document number: 6160717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150