JP2018120448A - 演算処理装置および情報処理システム - Google Patents

演算処理装置および情報処理システム Download PDF

Info

Publication number
JP2018120448A
JP2018120448A JP2017011862A JP2017011862A JP2018120448A JP 2018120448 A JP2018120448 A JP 2018120448A JP 2017011862 A JP2017011862 A JP 2017011862A JP 2017011862 A JP2017011862 A JP 2017011862A JP 2018120448 A JP2018120448 A JP 2018120448A
Authority
JP
Japan
Prior art keywords
command
state
data transfer
unit
processing
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.)
Pending
Application number
JP2017011862A
Other languages
English (en)
Inventor
上島 淳
Atsushi Uejima
淳 上島
隆宏 岡田
Takahiro Okada
隆宏 岡田
廷昭 弓場
Tadaaki Yuba
廷昭 弓場
顕 松本
Akira Matsumoto
顕 松本
真一 土田
Shinichi Tsuchida
真一 土田
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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions 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 Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to JP2017011862A priority Critical patent/JP2018120448A/ja
Priority to DE112017006928.9T priority patent/DE112017006928T5/de
Priority to CN201780084019.0A priority patent/CN110383259B/zh
Priority to PCT/JP2017/037113 priority patent/WO2018138975A1/ja
Priority to US16/474,384 priority patent/US11435928B2/en
Publication of JP2018120448A publication Critical patent/JP2018120448A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

【課題】簡易な構成によりプロセッサのアドレス空間と演算処理装置の専有メモリとの間のデータ転送効率を向上させる。【解決手段】専有メモリは、プロセッサのアドレス空間とは異なる専有領域を記憶する。データ転送部は、アドレス空間と専有メモリとの間でデータの転送処理を行う。演算部は、専有メモリに記憶されたデータ間の演算処理を行う。コマンドレジスタ群は、プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持する。ステートマシンは、データ転送部および演算部における処理の状態を管理する。制御部は、コマンドを保持するようにコマンドレジスタ群を制御するとともに、ステートマシンによって管理された状態に応じてデータ転送部および演算部の何れかに対してコマンドレジスタ群に保持されたコマンドを供給するようにコマンドレジスタ群を制御する。【選択図】図1

Description

本技術は、演算処理装置に関する。詳しくは、プロセッサの外部において演算機能を提供する演算処理装置、および、その演算処理装置を含む情報処理システムに関する。
プロセッサの負荷を軽減させる手法として、一部の演算機能をプロセッサの外部の演算処理装置によって実現する技術が知られている。この演算処理装置は、一般に、コプロセッサと称される。この演算処理装置の用途は、浮動小数点演算やFFTなど多岐にわたる。演算処理装置は、内部に専用のメモリ領域を有する。プロセッサおよび演算処理装置の両者がアクセスすることができる共有の記憶装置と、演算処理装置の専用のメモリ領域との間では、DMA(Direct Memory Access)転送によりデータのやりとりが行われる。
DMA転送においては、転送されるデータが複数の領域に分散している場合、プロセッサからDMA転送部に対してアドレスの指定をする制御を複数回行う必要がある。この制御は通常、DMA転送の転送終了の割込み通知をプロセッサが受け、適宜必要な制御データをDMA転送部に対して与えることによって行われる。DMAの割込み通知の処理は頻繁に発生するため、プロセッサの負荷としては軽いものではなく、プロセッサの利用効率を低下させるおそれがある。また、このDMAの割込み通知は、プロセッサに対してDMA転送の次の動作の指示を求めるものである。そのため、プロセッサが他に優先順位の高い処理を行っていて、このDMAの割込み要求に対してDMA転送部への処理内容を指示できないときには、DMA転送部は処理内容の指示待ちとなり、DMA転送効率は低下する。
そこで、プロセッサとDMA転送部との間にその制御内容(コマンド)を記憶するコマンドバッファを設けることが提案されている(例えば、特許文献1参照。)。すなわち、プロセッサが予め確定している複数の制御内容をこのコマンドバッファに書き込んでおき、DMA転送部からの割込み通知に対してコマンドバッファが直ちに処理内容をDMA転送部に供給する。コマンドバッファが用意されている場合には、コマンドバッファがDMA転送部に対して連続的に処理内容を供給することができるため、プロセッサは他に優先的に処理すべき事項がないときにまとめてコマンドバッファに制御内容を格納すればよい。これにより、DMA転送効率の低下を避けることができる。
特開2005−157717号公報
上述の従来技術では、コマンドバッファを設けることにより、DMA転送部からの割込み通知に対して、必要な処理内容をDMA転送部に供給することができる。しかしながら、プロセッサの外部の演算処理装置が演算を行うためには、演算に必要なデータの転送、演算処理、演算結果データの転送といった手順に沿った制御を逐次行う必要がある。この一連の制御を割込みによってプロセッサが直接制御を行うことは、プロセッサに対する大きな負荷となる。プロセッサが他に優先順位の高い処理を行っていて、この演算処理装置の割込み要求に対して演算処理装置への処理内容を指示できないときには、演算処理装置は処理内容の指示待ちとなる。これにより、プロセッサのアドレス空間と演算処理装置の専有メモリとの間のデータ転送効率は低下する。そこで、DMA転送部での改善を拡張してコマンドバッファによる制御を演算処理装置全体に及ぼそうとした場合、コマンドバッファは異なる機能の制御を逐次行う必要がある。例えば、プロセッサの外部の演算処理装置が演算を行うために必要なデータの転送、演算、演算結果データの転送といった手順に沿って演算処理装置内のDMA転送部や演算装置など異なる機能の制御をコマンドバッファが逐次行う必要がある。そのため、コマンドバッファは演算処理装置が行う演算の進行状況を常に把握し、必要に応じて演算処理装置内の各機能の制御を行わなければならない。一方、演算処理装置が行う演算の内容をコマンドバッファが把握するためには、その制御内容をコマンドバッファが正確に解釈する必要があり、コマンドバッファ内部に制御内容のデコーダ等が必要になり、コマンドバッファの構成が複雑になるおそれがある。
本技術はこのような状況に鑑みて生み出されたものであり、簡易な構成によりプロセッサのアドレス空間と演算処理装置の専有メモリとの間のデータ転送効率を向上させることを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、プロセッサのアドレス空間とは異なる専有領域を記憶する専有メモリと、上記アドレス空間と上記専有メモリとの間でデータの転送処理を行うデータ転送部と、上記専有メモリに記憶されたデータ間の演算処理を行う演算部と、上記プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持するコマンドレジスタ群と、上記データ転送部および上記演算部における処理の状態を管理するステートマシンと、上記コマンドを保持するように上記コマンドレジスタ群を制御するとともに、上記状態に応じて上記データ転送部および上記演算部の何れかに対して上記コマンドレジスタ群に保持された上記コマンドを供給するように上記コマンドレジスタ群を制御する制御部とを具備する演算処理装置である。これにより、データ転送部および演算部における処理の状態をステートマシンにより管理して、データ転送効率を向上させるという作用をもたらす。
また、この第1の側面において、上記ステートマシンは、上記コマンド列に対応して予め定められたコマンド数に従って上記状態を遷移させて上記状態を管理するようにしてもよい。これにより、コマンド数に基づく簡易な方法により状態を管理するという作用をもたらす。
また、この第1の側面において、上記コマンド列は、上記アドレス空間から上記専有メモリにデータを転送する第1のデータ転送処理を行うコマンドと、上記専有メモリに記憶されたデータ間の演算処理を行うコマンドと、上記専有メモリから上記アドレス空間にデータを転送する第2のデータ転送処理を行うコマンドとを含み、上記ステートマシンは、上記第1のデータ転送処理を行うコマンドが入力されると上記第1のデータ転送処理を行うコマンドを実行する状態に遷移させ、上記第1のデータ転送処理を行うコマンドに要する時間が経過すると上記演算処理を行うコマンドを実行する状態に遷移させ、上記演算処理を行うコマンドに要する時間が経過すると上記第2のデータ転送処理を行うコマンドを実行する状態に遷移させるようにしてもよい。これにより、コマンドに要する時間の経過に基づく簡易な方法により状態を管理するという作用をもたらす。
また、この第1の側面において、上記コマンドレジスタ群は、複数のサブレジスタ群を備え、上記制御部は、上記プロセッサから複数の上記コマンド列を受けた際に上記複数のサブレジスタ群毎に異なる上記コマンド列が保持されるように制御するようにしてもよい。これにより、コマンドレジスタ群へのコマンドの書込みと読出しとを並行に動作させるという作用をもたらす。
また、この第1の側面において、上記制御部は、上記異なるコマンド列におけるコマンドが上記データ転送部および上記演算部に対して排他的に供給されるように制御するようにしてもよい。これにより、データ転送部および演算部において排他的に処理を実行させるという作用をもたらす。
また、この第1の側面において、上記ステートマシンは、上記異なるコマンド列に対応してそれぞれ固有の上記状態を管理するようにしてもよい。これにより、コマンド列毎に固有の状態によって動作させるという作用をもたらす。
また、この第1の側面において、上記ステートマシンは、上記複数のコマンド列の状態を管理する際に上記複数のコマンド列の一のコマンド列に対応して予め定められたコマンド数および他のコマンド列の上記状態に従って上記一のコマンド列の上記状態を遷移させるようにしてもよい。これにより、他のコマンド列の状態を加味して動作させるという作用をもたらす。
また、この第1の側面において、上記複数のコマンド列の各々は、上記アドレス空間から上記専有メモリにデータを転送する第1のデータ転送処理を行うコマンドと、上記専有メモリに記憶されたデータ間の演算処理を行うコマンドと、上記専有メモリから上記アドレス空間にデータを転送する第2のデータ転送処理を行うコマンドとを含み、上記ステートマシンは、上記複数のコマンド列のうち第1に処理されるべきコマンド列の上記第1のデータ転送処理を行うコマンドに要する時間が経過すると上記複数のコマンド列のうち第2に処理されるべきコマンド列の上記第1のデータ転送処理を行うコマンドを実行する状態に遷移させ、上記第1に処理されるべきコマンド列の上記演算処理を行うコマンドに要する時間が経過すると上記第2に処理されるべきコマンド列の上記演算処理を行うコマンドを実行する状態に遷移させ、上記第1に処理されるべきコマンド列の上記演算処理を行うコマンドに要する時間が経過すると上記第1に処理されるべきコマンド列の上記第2のデータ転送処理を行うコマンドを実行する状態に遷移させるようにしてもよい。これにより、第1のデータ転送処理を行うコマンドに要する時間および演算処理を行うコマンドに要する時間の経過に基づく簡易な方法により状態を管理するという作用をもたらす。
また、この第1の側面において、上記ステートマシンは、上記第1に処理されるべきコマンド列の上記演算処理を行うコマンドに要する時間が経過し、または、上記第1に処理されるべきコマンド列の上記演算処理を行うコマンドが終了した状態に遷移すると、上記第2に処理されるべきコマンド列の上記演算処理を行うコマンドを実行する状態に遷移させるようにしてもよい。これにより、他のコマンド列の状態を加味して動作させるという作用をもたらす。
また、本技術の第2の側面は、プロセッサと、演算処理装置と、上記プロセッサのアドレス空間を記憶して上記演算処理装置からもアクセス可能な共有メモリとを具備する情報処理システムであって、上記演算処理装置は、上記プロセッサのアドレス空間とは異なる専有領域を記憶する専有メモリと、上記アドレス空間と上記専有メモリとの間でデータの転送処理を行うデータ転送部と、上記専有メモリに記憶されたデータ間の演算処理を行う演算部と、上記プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持するコマンドレジスタ群と、上記データ転送部および上記演算部における処理の状態を管理するステートマシンと、コマンドを保持するように上記コマンドレジスタ群を制御するとともに、上記状態に応じて上記データ転送部および上記演算部の何れかに対して上記コマンドレジスタ群に保持された上記コマンドを供給するように上記コマンドレジスタ群を制御する制御部とを備える情報処理システムである。これにより、データ転送部および演算部における処理の状態をステートマシンにより管理して、プロセッサと演算処理装置との間のデータ転送効率を向上させるという作用をもたらす。
本技術によれば、簡易な構成によりプロセッサのアドレス空間と演算処理装置の専有メモリとの間のデータ転送効率を向上させるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの構成の一例を示す図である。 本技術の第1の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。 本技術の実施の形態におけるコマンド列の一例を示す図である。 本技術の第1の実施の形態におけるステートマシン320が管理する状態の遷移例を示す図である。 本技術の第1の実施の形態における出力レジスタ選択フラグ331の制御の一例を示す図である。 本技術の実施の形態における入力レジスタ選択フラグ332の制御の一例を示す図である。 本技術の第2の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。 本技術の第2の実施の形態におけるセレクタ313の構成の一例を示す図である。 本技術の第2の実施の形態におけるステートマシン321が管理する状態の遷移例を示す図である。 本技術の第2の実施の形態におけるステートマシン322が管理する状態の遷移例を示す図である。 本技術の第2の実施の形態におけるステートマシン選択フラグ333の制御の一例を示す図である。 本技術の第2の実施の形態における動作タイミングの一例を示す図である。 本技術の第2の実施の形態における動作タイミングの他の例を示す図である。 本技術の第3の実施の形態におけるステートマシン321が管理する状態の遷移例を示す図である。 本技術の第3の実施の形態におけるステートマシン322が管理する状態の遷移例を示す図である。 本技術の第3の実施の形態における動作タイミングの一例を示す図である。 本技術の第3の実施の形態における動作タイミングの他の例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(1つのステートマシンにより制御する例)
2.第2の実施の形態(2つのステートマシンにより制御する例)
3.第3の実施の形態(演算処理と演算結果の出力との並列処理を許容する例)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成の一例を示す図である。この情報処理システムは、プロセッサ100と、共有メモリ200と、コプロセッサ300とを備える。これらは、コントロールバス101およびメモリバス102によって相互に接続される。
プロセッサ100は、情報処理システムの全体の処理を行う装置である。コプロセッサ300は、プロセッサ100からの指示に従って所定の演算処理等を行う演算処理装置である。共有メモリ200は、プロセッサ100のアドレス空間を記憶するメモリである。共有メモリ200には、プロセッサ100およびコプロセッサ300の両者からアクセスすることができる。なお、コプロセッサ300は、特許請求の範囲に記載の演算処理装置の一例である。
コプロセッサ300は、コマンドバッファ301と、バスインターフェース360と、データ転送部370と、演算部380と、専有メモリ390とを備える。コマンドバッファ301は、コマンド保持部310と、ステートマシン320と、制御部330とを備える。
コマンドバッファ301は、内部に専用の制御命令(コマンド)を保持するコマンド保持部310を備える。このコマンドは、プロセッサ100からコントロールバス101を介してコマンド保持部310に書き込まれる。
ステートマシン320は、データ転送部370および演算部380における処理の状態を管理するものである。
コマンド保持部310は、プロセッサ100から受けたコマンド列の各コマンドを、保持するものである。このコマンド保持部310は、制御部330による制御に従って、各コマンドを保持する。
制御部330は、コマンド保持部310を制御するものである。この制御部330は、プロセッサ100から受けたコマンド列の各コマンドを保持するようコマンド保持部310を制御する。また、この制御部330は、ステートマシン320が管理する状態に応じて、データ転送部370および演算部380の何れかに対してコマンド保持部310に保持されたコマンドを供給するようにコマンド保持部310を制御する。
バスインターフェース360は、コントロールバス101とコマンドバッファ301との間のインターフェースである。プロセッサ100とコプロセッサ300内のコマンドバッファ301との間は、コントロールバス101を経由して接続される。
専有メモリ390は、プロセッサ100のアドレス空間とは異なる専有領域を記憶するメモリである。
演算部380は、専有メモリ390に記憶されたデータ間の演算処理を行うものである。
データ転送部370は、プロセッサ100のアドレス空間と専有メモリ390との間でデータの転送処理を行うものである。このデータ転送部370は、データの転送処理を行う際、共有メモリ200と専有メモリ390との間でDMA(Direct Memory Access)転送を行う。そのため、データ転送部370には、DMA転送の際に開始アドレスや転送データ量などが設定される。このデータ転送部370と、プロセッサ100と、共有メモリ200との間は、メモリバス102を経由して接続される。
データ転送部370および演算部380は、専有メモリ390と接続されており、データ転送部370および演算部380は専有メモリ390に対してそれぞれ読出しおよび書込みのアクセスを実行することができる。
図2は、本技術の第1の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。このコマンドバッファ301は、レジスタ群312と、スイッチ311と、セレクタ313と、ステートマシン320と、出力レジスタ選択フラグ331と、入力レジスタ選択フラグ332とを備える。
レジスタ群312は、プロセッサ100から受けたコマンド列の各コマンドを保持するレジスタである。この例では、レジスタ群312は、レジスタA1乃至A3およびB1乃至B3を備える。レジスタA1およびレジスタB1は、共有メモリ200のデータを専有メモリ390に書き込む際の、データ転送部370に対するコマンドを保持するレジスタである。レジスタA2およびレジスタB2は、演算部380のコマンドを保持するレジスタである。レジスタA3およびレジスタB3は、専有メモリ390のデータを共有メモリ200に書き込む際の、データ転送部370に対するコマンドを保持するレジスタである。これらレジスタA1乃至A3およびB1乃至B3は、それぞれ複数のコマンドを格納することができ、格納した順番に読み出すことのできるFIFO(First-In First-Out)機能を有する。なお、レジスタ群312は、特許請求の範囲に記載のコマンドレジスタ群の一例である。
レジスタ群312から見ると、レジスタA1乃至A3およびレジスタB1乃至B3は、それぞれサブレジスタ群として把握され、互いにサブレジスタ群毎に異なるコマンド列が保持されるように制御される。すなわち、第1のサブレジスタ群であるレジスタA1乃至A3は第1のコマンド列を保持し、第2のサブレジスタ群であるレジスタB1乃至B3は第2のコマンド列を保持する。
スイッチ311は、プロセッサ100からのコマンドをレジスタA1乃至A3およびB1乃至B3の何れかに振り分けるスイッチである。このスイッチ311は、レジスタA1乃至A3またはB1乃至B3のどちらかにコマンドを入力するかを、入力レジスタ選択フラグ332に従って判断する。また、このスイッチ311は、レジスタA1乃至A3の何れか、または、レジスタB1乃至B3の何れかのアドレス選択を、コントロールバス101からのアドレス情報に従って判断する。
セレクタ313は、レジスタA1乃至A3およびB1乃至B3の何れかの出力を選択して、データ転送部370または演算部380に供給するセレクタである。レジスタA1、A3、B1およびB3の出力は、データ転送部370に供給される。レジスタA2およびB2の出力は、演算部380に供給される。セレクタ313は、レジスタA1乃至A3およびB1乃至B3のどちらからコマンドを出力するかを、出力レジスタ選択フラグ331に従って判断する。
ステートマシン320は、データ転送部370および演算部380における処理の状態を管理するステートマシンである。このステートマシン320により管理される状態の遷移については後述する。
出力レジスタ選択フラグ331は、データ転送部370および演算部380にレジスタA1乃至A3およびB1乃至B3のどちらからコマンドを出力するかをセレクタ313が選択するためのフラグである。
入力レジスタ選択フラグ332は、レジスタA1乃至A3またはB1乃至B3のどちらにコマンドを入力するかをスイッチ311が決定するためのフラグである。
図3は、本技術の実施の形態におけるコマンド列の一例を示す図である。この例では、コマンド列1および2の2つのコマンド列を想定する。なお、コマンド列1は特許請求の範囲に記載の第1に処理されるべきコマンド列の一例であり、コマンド列2は特許請求の範囲に記載の第2に処理されるべきコマンド列の一例である。
コマンド列1においては、まず、演算を行うために必要なデータ列Ai、Bi、Ci(i=0,1,2,…,n。以下同様)を、共有メモリ200から専有メモリ390にコピー(ダウンロード)する処理(DMA_D処理)を想定する。以下では、データ列Aiを転送する処理をDMA_D処理1−1、データ列Biを転送する処理をDMA_D処理2−1、データ列Ciを転送する処理をDMA_D処理3−1と称する。なお、DMA_D処理は、特許請求の範囲に記載の第1のデータ転送処理の一例である。
また、専有メモリ390に用意されたデータ列について演算(calculation)処理(CALC処理)を行って、その演算結果を専有メモリ390に書き込む処理を想定する。AiおよびCiに関して、Di=f(Ai,Ci)の処理を行い、データ列Diを専有メモリ390に書き込む処理をCALC処理1−1と称する。BiおよびCiに関して、Ei=f(Bi,Ci)の処理を行い、データ列Eiを専有メモリ390に書き込む処理をCALC処理2−1と称する。
そして、演算結果を専有メモリ390から共有メモリ200にコピー(アップロード)する処理(DMA_U処理)を想定する。データ列Diを専有メモリ390から共有メモリ200にコピーする処理をDMA_U処理1−1と称する。データ列Eiを専有メモリ390から共有メモリ200にコピーする処理をDMA_U処理2−1と称する。なお、DMA_U処理は、特許請求の範囲に記載の第2のデータ転送処理の一例である。
このようなデータ列Ai、Bi、Ciから演算結果のデータ列DiおよびEiを得ることが、コマンド列1におけるコプロセッサ300の処理内容である。
コマンド列2においては、演算を行うために必要なデータ列Fi、Giを、共有メモリ200から専有メモリ390にコピー(ダウンロード)する処理(DMA_D処理)を想定する。以下では、データ列Fiを転送する処理をDMA_D処理1−2、データ列Giを転送する処理をDMA_D処理2−2と称する。なお、DMA_D処理2−3としては、転送されるデータ列がないため、何もせずに処理をスキップすることになる。
また、専有メモリ390に用意されたデータ列について演算処理(CALC処理)を行って、その演算結果を専有メモリ390に書き込む処理を想定する。FiおよびGiに関して、Ji=f(Fi,Gi)の処理を行い、データ列Jiを専有メモリ390に書き込む処理をCALC処理1−2と称する。FiおよびJiに関して、Ki=f(Fi,Ji)の処理を行い、データ列Kiを専有メモリ390に書き込む処理をCALC処理2−2と称する。
そして、演算結果を専有メモリ390から共有メモリ200にコピー(アップロード)する処理(DMA_U処理)を想定する。データ列Jiを専有メモリ390から共有メモリ200にコピーする処理をDMA_U処理1−2と称する。データ列Kiを専有メモリ390から共有メモリ200にコピーする処理をDMA_U処理2−2と称する。
このようなデータ列Fi、Giから演算結果のデータ列JiおよびKiを得ることが、コマンド列2におけるコプロセッサ300の処理内容である。
図4は、本技術の第1の実施の形態におけるステートマシン320が管理する状態の遷移例を示す図である。この第1の実施の形態では、ステートマシン320が管理する状態は、状態#1、#3、#5および#6の4つの状態の何れかである。
状態#1は、図2のレジスタ群312がコマンドを保持しておらず、プロセッサ100からコマンドが入力されるのを待機している状態である。この状態#1においてプロセッサ100からコマンド(例えば図3におけるコマンド列1)が入力されると、次の状態#3に遷移する。
状態#3は、データ転送部370が共有メモリ200から専有メモリ390にデータをDMA転送(DMA_D処理)している状態である。この状態#3において共有メモリ200から専有メモリ390へのデータ転送が終了すると、次の状態#5に遷移する。
状態#5は、専有メモリ390に転送されたデータについて演算部380が演算(CALC処理)している状態である。この状態#5において演算部380の演算が終了すると、次の状態#6に遷移する。
状態#6は、データ転送部370が専有メモリ390から共有メモリ200にデータをDMA転送(DMA_U処理)している状態である。この状態#6において専有メモリ390から共有メモリ200へのデータ転送が終了すると、最初の状態#1に遷移する。
これら状態遷移においては、各機能ブロックからの処理終了の通知を待って遷移する手法と、一定時間待機した後に自動的に次の処理を行う手法の何れの手法も採用することができる。以下では前者を想定する。DMA_D処理、CALC処理およびDMA_U処理の各処理については、それぞれに要するコマンド数は予め定められているものとする。これにより、ステートマシン320は、各コマンドのデコード処理を行うことなく、状態を遷移させることができる。例えば、状態#3においてDMA_D処理を行うコマンドに要する時間が経過すると、ステートマシン320は、CALC処理を行うコマンドを実行する状態#5に状態を遷移させる。また、CALC処理を行うコマンドに要する時間が経過すると、ステートマシン320は、DMA_U処理を行うコマンドを実行する状態#6に状態を遷移させる。
図5は、本技術の第1の実施の形態における出力レジスタ選択フラグ331の制御の一例を示す図である。
状態検出回路341は、ステートマシン320における状態遷移を監視する回路である。状態検出回路341は、状態#6から状態#1への遷移を検出すると、有効信号を表すパルスをフリップフロップ342の有効端子ENに出力する。
フリップフロップ342は、「0」または「1」の何れかを保持するフリップフロップである。フリップフロップ342の出力端子Qは、反転器343を介して入力端子Dに接続されており、有効端子ENにパルスが入力されるたびに保持内容が反転する。
出力レジスタ選択フラグ331は、フリップフロップ342の出力端子Qの値を保持する。したがって、この出力レジスタ選択フラグ331の内容は、ステートマシン320の状態が状態#6から状態#1に遷移するたびに反転することになる。すなわち、データ転送部370および演算部380にレジスタA1乃至A3およびB1乃至B3のどちらからコマンドを出力するかは、ステートマシン320の状態が状態#6から状態#1に遷移するたびに変更されて、交互に選択される。
図6は、本技術の実施の形態における入力レジスタ選択フラグ332の制御の一例を示す図である。
書込み監視回路344は、レジスタA1乃至A3およびB1乃至B3に対する書込みの完了を監視する回路である。書込み検出回路345は、レジスタA3への書込みの完了を検出する回路である。書込み検出回路346は、レジスタB3への書込みの完了を検出する回路である。SRフリップフロップ347は、「0」または「1」の何れかを保持するフリップフロップである。
書込み検出回路345は、レジスタA3への書込みの完了を検出すると、セット信号を表すパルスをSRフリップフロップ347のセット端子SETに出力する。このセット信号により、SRフリップフロップ347は、「1」を保持するようになる。一方、書込み検出回路346は、レジスタB3への書込みの完了を検出すると、リセット信号を表すパルスをSRフリップフロップ347のリセット端子RESETに出力する。このリセット信号により、SRフリップフロップ347は、「0」を保持するようになる。なお、これら書込み検出回路345および346における検出は、コマンド自体に例えば処理スタートのようなフラグを用意してもよく、また、ステートマシン320自体にレジスタを持たせてプロセッサ100が書き込むようにしてもよい。以下では、コマンドの中に書込みが終了して実行可能であることを示すレジスタが含まれることを想定する。
入力レジスタ選択フラグ332は、SRフリップフロップ347の出力端子Qの値を保持する。したがって、この入力レジスタ選択フラグ332の内容は、レジスタA3またはB3への書込みが完了するたびに反転することになる。すなわち、レジスタA1乃至A3またはB1乃至B3のどちらにコマンドを入力するかは、レジスタA3またはB3への書込みが完了するたびに変更されて、交互に選択される。
このような出力レジスタ選択フラグ331および入力レジスタ選択フラグ332の制御により、レジスタA1乃至A3およびB1乃至B3へのコマンドの書込みと読出しとを独立に切り替えることができる。
[情報処理システムの動作]
ここでは、上述のコマンド列を想定して、情報処理システムの動作を説明する。まず、プロセッサ100は、コマンド列1のDMA_D処理1−1乃至3−1に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。このとき、出力レジスタ選択フラグ331および入力レジスタ選択フラグ332の初期値は、ともに「0」であるとする。
DMA_D処理1−1乃至3−1に必要なコマンドは、スイッチ311に入力される。スイッチ311は、入力されたコマンドがDMA_D処理1−1乃至3−1に必要なコマンドであることを、例えばコントロールバス101のアドレス情報によって把握できる。ここでは、入力レジスタ選択フラグ332の値が「0」であるため、DMA_D処理1−1乃至3−1に必要なコマンドはレジスタA1に書き込まれる。
また、プロセッサ100は、CALC処理1−1および2−1に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。このとき、入力レジスタ選択フラグ332の値は「0」であるため、CALC処理1−1および2−1に必要なコマンドはレジスタA2に書き込まれる。
さらに、プロセッサ100は、DMA_U処理1−1および2−1に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。このとき、入力レジスタ選択フラグ332の値は「0」であるため、DMA_U処理1−1および2−1に必要なコマンドはレジスタA3に書き込まれる。
なお、プロセッサ100は、コマンドをレジスタ群312に書き込むよう指示するが、レジスタ群312の内部でどのレジスタに書き込まれるのかを知る必要はない。すなわち、プロセッサ100からは、レジスタ群312が一種のFIFOメモリとして見えていることになる。
コマンド列1の最後のDMA_U処理2−1に必要なコマンドがレジスタA3に書き込まれると、入力レジスタ選択フラグ332は「0」から「1」に反転する。
続いて処理すべき他のコマンド列2がある場合は、プロセッサ100は、次のDMA_D処理1−2乃至3−2に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。入力レジスタ選択フラグ332が「1」であるため、スイッチ311は、DMA_D処理1−2乃至3−2に必要なコマンドをレジスタB1に書き込むように制御する。
また、プロセッサ100は、CALC処理1−2および2−2に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。このとき、入力レジスタ選択フラグ332の値は「1」であるため、CALC処理1−2および2−2に必要なコマンドはレジスタB2に書き込まれる。
さらに、プロセッサ100は、DMA_U処理1−2および2−2に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。このとき、入力レジスタ選択フラグ332の値は「1」であるため、DMA_U処理1−2および2−2に必要なコマンドはレジスタB3に書き込まれる。
コマンド列2の最後のDMA_U処理2−2に必要なコマンドがレジスタB3に書き込まれると、入力レジスタ選択フラグ332は「1」から「0」に反転する。
次に、コマンド列1に関する状態の遷移について着目する。出力レジスタ選択フラグ331が「0」のとき、レジスタA1乃至A3にコマンドが書き込まれたことが書込み検出回路345によって検出されると、ステートマシン320の状態は、状態#1から状態#3に遷移する。
ここで、例えばプロセッサ100が割込みを受けて処理を中断していて演算部380の実行内容が確定していない場合であっても、データ転送部370は処理を進めることが可能である。したがって、レジスタA1のみが実行可能となっていれば、レジスタA2およびA3が実行可能となっていなくても、データ転送部370の処理を実行することができる。この場合には、レジスタA1の中の実行可のレジスタに「1」が書き込まれたことを検出することにより、ステートマシン320は状態#1から状態#3に遷移する。
このとき、出力レジスタ選択フラグ331が「0」であるため、状態#3に遷移したステートマシン320は、セレクタ313を制御して、レジスタA1の内容のうち、DMA_D処理1−1のコマンドをデータ転送部370に供給する。ステートマシン320が状態#3であるときには、データ転送部370による専有メモリ390から共有メモリ200への書戻しに関しては、動作しないような設定を供給する。また、演算部380に関しては、演算を行わないような設定を供給する。
レジスタA1のコマンドを受けてデータ転送部370はDMA_D処理1−1の処理を実行し、しかるべき後にその処理が終了したことをステートマシン320に通知する。ステートマシン320は、DMA_D処理1−1の処理終了の通知を受けると、セレクタ313を制御してレジスタA1を選択させる。セレクタ313は、レジスタA1内に書き込まれた、DMA_D処理2−1のコマンドをデータ転送部370に供給する。データ転送部370はDMA_D処理2−1の処理を実行し、しかるべき後にその処理が終了したことをステートマシン320に通知する。
DMA_D処理3−1に関しても、同様の処理が行われ、データ転送部370からの処理の終了通知をステートマシン320が受け取ると、ステートマシン320は状態#5に遷移する。
出力レジスタ選択フラグ331が「0」であるため、状態#5に遷移したステートマシン320はセレクタ313を制御して、レジスタA2の内容のうち、CALC処理1−1のコマンドを演算部380に供給する。ステートマシン320が状態#5であるときには、データ転送部370に関しては、動作しないような設定を供給する。
演算部380はCALC処理1−1の処理を実行し、しかるべき後にその処理が終了したことをステートマシン320に通知する。ステートマシン320は、CALC処理1−1の処理終了の通知を受けると、セレクタ313を制御してレジスタA2を選択させる。セレクタ313はレジスタA2に書き込まれた、CALC処理2−1のコマンドを演算部380に供給する。
演算部380はCALC処理2−1の処理を実行し、しかるべき後にその処理が終了したことをステートマシン320に通知する。ステートマシン320はCALC処理2−1の処理終了の通知を受けると、状態#6に遷移する。
このとき、出力レジスタ選択フラグ331が「0」であるため、状態#6に遷移したステートマシン320は、セレクタ313を制御してレジスタA3を選択させる。セレクタ313はレジスタA3に書き込まれた、DMA_U処理1−1のコマンドをデータ転送部370に供給する。状態#6では、データ転送部370による共有メモリ200から専有メモリ390への書込みに関しては、動作しないような設定を供給する。また、演算部380に関しては、演算を行わないような設定を供給する。
データ転送部370は、DMA_U処理1−1の処理を実行し、しかるべき後にその処理が終了したことをステートマシン320に通知する。ステートマシン320は、DMA_U処理1−1の終了通知を受けると、セレクタ313を制御してレジスタA3を選択させる。セレクタ313はレジスタA3に書き込まれた、DMA_U処理2−1のコマンドをデータ転送部370に供給する。データ転送部370はDMA_U処理2−1の処理を実行し、しかるべき後にその処理が終了したことをステートマシン320に通知する。
ステートマシン320は、DMA_U処理2−1の終了の通知を受けると、コマンドに含まれていた実行可能を示すレジスタを「0」に書き換えることにより、プロセッサ100に対してコマンド列1の一連の処理が終了したことを通知して、状態#1に遷移する。また、出力レジスタ選択フラグ331は「0」から「1」に遷移する。
状態#1に遷移したステートマシン320は、出力レジスタ選択フラグ331が「1」になっているため、レジスタB1に含まれている実行可能を示すレジスタが「1」になっていることを検出して、状態#3に遷移する。そして、同様の手順により、レジスタB1乃至B3に保持されたコマンド列2のコマンドをデータ転送部370および演算部380に供給する。
プロセッサ100は、コマンド列2の一連の処理の終了の通知を受けると、レジスタ群312に対して新たなコマンド列3の書込みを行う。このとき、入力レジスタ選択フラグ332が「0」を示すため、レジスタ群312はプロセッサ100からの新たなコマンドをスイッチ311によって、レジスタA1乃至A3に書き込む。そして、コマンド列3の最後のレジスタB3に格納されている処理を全て終了すると、出力レジスタ選択フラグ331は再び「1」から「0」に遷移する。
このようにして、プロセッサ100から供給されたコマンドは逐次実行されていく。コマンド列1の各コマンドはレジスタA1乃至A3に保持される。コマンド列2の各コマンドはレジスタB1乃至B3に保持される。新たなコマンドがない場合には、ステートマシン320は状態#1において新たなコマンドを待ち続ける。
このように、この第1の実施の形態では、コマンド列に対応して予め定められたコマンド数に従ってステートマシン320が状態を遷移させて、その状態に従って各部が動作する。これにより、簡易な構成によりプロセッサ100のアドレス空間を記憶する共有メモリ200とコプロセッサ300の専有メモリ390との間のデータ転送効率を向上させることができる。また、コマンド列ごとに使用するレジスタを、レジスタA1乃至3とB1乃至B3とで選択して切り替えることにより、コマンド列同士でレジスタへの書込みと読出しを並行して行うことができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、1つのステートマシン320によりコプロセッサ300の状態を制御する例について説明したが、この第2の実施の形態では2つのステートマシンによりコプロセッサ300の状態を制御する例について説明する。すなわち、この第2の実施の形態では、異なるコマンド列に対応してそれぞれ異なるステートマシンを割り当てて、各ステートマシンによりコマンド列毎に固有の状態を管理する。なお、情報処理システムの全体構成については上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
[情報処理システムの構成]
図7は、本技術の第2の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。この第2の実施の形態のコマンドバッファ301は、レジスタ群312、スイッチ311、セレクタ313、入力レジスタ選択フラグ332、および、スイッチ334を備える点においては、上述の第1の実施の形態と同様である。一方、この第2の実施の形態のコマンドバッファ301は、ステートマシン320に代えて、2つのステートマシン321および322を備える。また、この第2の実施の形態のコマンドバッファ301はさらに、ステートマシン選択フラグ333、スイッチ334および反転部335を備える。
ステートマシン321および322は、データ転送部370および演算部380における処理の状態を、コマンド列毎に管理するステートマシンである。例えば、コマンド列1に関する状態をステートマシン321が管理し、それに続くコマンド列2に関する状態をステートマシン322が管理することが想定される。
ステートマシン選択フラグ333は、ステートマシン321および322の何れかを選択するためのフラグである。このステートマシン選択フラグ333の値は、ステートマシン321、322およびセレクタ313に供給される。
ステートマシン選択フラグ333が「0」を示すときには、ステートマシン321によって管理される状態に従って処理が行われる。一方、ステートマシン選択フラグ333が「1」を示すときには、ステートマシン322によって管理される状態に従って処理が行われる。
レジスタ群312は、新たなコマンド列の書込みに先立って初期化される。そのため、レジスタの初期化命令がスイッチ334を介してステートマシン321または322に供給される。スイッチ334は、初期化命令をステートマシン321および322の何れかに振り分けるスイッチである。このスイッチ334は、レジスタA1乃至A3またはB1乃至B3のどちらかに初期化命令を入力するかを、入力レジスタ選択フラグ332に従って判断する。
反転部335は、ステートマシン選択フラグ333の値を反転する回路である。これにより、ステートマシン321および322には、互いに相対する値がステートマシン選択フラグ333から供給されることになる。
スイッチ334および311は、入力レジスタ選択フラグ332の値に従って制御される。すなわち、入力レジスタ選択フラグ332が「0」を示すときには、スイッチ311はコマンドをレジスタA1乃至A3に書き込む。また、このとき、スイッチ334は、プロセッサ100からの初期化信号をステートマシン321に供給する。一方、入力レジスタ選択フラグ332が「1」を示すときには、スイッチ311はコマンドをレジスタB1乃至B3に書き込む。また、このとき、スイッチ334は、プロセッサ100からの初期化信号をステートマシン322に供給する。
図8は、本技術の第2の実施の形態におけるセレクタ313の構成の一例を示す図である。このセレクタ313は、制御部3139と、選択器3131、3132および3133とを備える。
制御部3139は、選択器3131乃至3133に選択信号を供給するものである。この制御部3139は、ステートマシン選択フラグ333の値に従ってステートマシン321または322によって管理される状態を選択し、その状態に応じてレジスタA1乃至A3またはB1乃至B3の値を出力する。ステートマシン321および322のうち、選択された方の状態が状態#3を示す場合には、選択器3131においてレジスタA1およびB1の何れかを選択して、データ転送部370に供給する。その状態が状態#5を示す場合には、選択器3132においてレジスタA2およびB2の何れかを選択して、演算部380に供給する。その状態が状態#6を示す場合には、選択器3133においてレジスタA3およびB3の何れかを選択して、データ転送部370に供給する。
ただし、データ転送部370または演算部380に供給すべきコマンドがない場合には、動作しないことを表す「NOP」が選択される。
図9は、本技術の第2の実施の形態におけるステートマシン321が管理する状態の遷移例を示す図である。図10は、本技術の第2の実施の形態におけるステートマシン322が管理する状態の遷移例を示す図である。これらの状態は、第1の実施の形態における状態#1、#3、#5および#6の4つの状態に加えて、状態#0、#2および#4の計7つの状態の何れかとなる。
状態#0は、初期化命令を待っている状態である。この状態#0においてプロセッサ100から初期化命令が入力されると、次の状態#1に遷移する。
状態#1は、レジスタ群312がコマンドを保持しておらず、プロセッサ100からコマンドが入力されるのを待機している状態である。この状態#1においてプロセッサ100からコマンドが入力された際、ステートマシン選択フラグ333によって自身のステートマシンが選択されていれば、状態#3に遷移する。すなわち、ステートマシン321においてはステートマシン選択フラグ333が「0」を示している場合であり、ステートマシン322においてはステートマシン選択フラグ333が「1」を示している場合には、状態#3に遷移する。
一方、この状態#1においてプロセッサ100からコマンドが入力された際、ステートマシン選択フラグ333によって自身のステートマシンが選択されていなければ、状態#2に遷移する。すなわち、ステートマシン321においてはステートマシン選択フラグ333が「1」を示している場合であり、ステートマシン322においてはステートマシン選択フラグ333が「0」を示している場合には、状態#2に遷移する。
状態#2は、データ転送部370が共有メモリ200から専有メモリ390にデータをDMA転送する処理(DMA_D処理)の終了を待機している状態である。これは、ステートマシン321および322のうちの他方の状態が状態#3となってDMA_D処理を行っているため、データ転送部370における衝突を避けるために待ちが生じている状態である。この状態#2において、他方におけるDMA_D処理が終了すると、状態#3に遷移する。
状態#3は、データ転送部370が共有メモリ200から専有メモリ390にデータをDMA転送(DMA_D処理)している状態である。この状態#3において共有メモリ200から専有メモリ390へのデータ転送が終了した際、ステートマシン選択フラグ333によって自身のステートマシンが選択されていれば、状態#5に遷移する。すなわち、ステートマシン321においてはステートマシン選択フラグ333が「0」を示している場合であり、ステートマシン322においてはステートマシン選択フラグ333が「1」を示している場合には、状態#5に遷移する。
一方、この状態#3においてDMA_D処理が終了した際、ステートマシン選択フラグ333によって自身のステートマシンが選択されていなければ、状態#4に遷移する。すなわち、ステートマシン321においてはステートマシン選択フラグ333が「1」を示している場合であり、ステートマシン322においてはステートマシン選択フラグ333が「0」を示している場合には、状態#4に遷移する。
状態#4は、演算部380が演算している処理(CALC処理)の終了を待機している状態である。これは、ステートマシン321および322のうちの他方の状態が状態#5となってCALC処理を行っているため、演算部380における衝突を避けるために待ちが生じている状態である。この状態#4において、他方におけるCALC処理が終了すると、状態#5に遷移する。
状態#5は、専有メモリ390に転送されたデータについて演算部380が演算(CALC処理)している状態である。この状態#5において演算部380の演算が終了すると、次の状態#6に遷移する。
状態#6は、データ転送部370が専有メモリ390から共有メモリ200にデータをDMA転送(DMA_U処理)している状態である。この状態#6において専有メモリ390から共有メモリ200へのデータ転送が終了すると、最初の状態#0に遷移する。
このような状態の遷移により、異なるコマンド列におけるコマンドがデータ転送部370および演算部380に対して排他的に供給されるように制御される。また、ステートマシン321および322は、異なるコマンド列1およびコマンド列2に対応して、それぞれ固有の状態を管理する。
図11は、本技術の第2の実施の形態におけるステートマシン選択フラグ333の制御の一例を示す図である。状態検出回路351は、ステートマシン321における状態遷移を監視する回路である。状態検出回路352は、ステートマシン322における状態遷移を監視する回路である。SRフリップフロップ353は、「0」または「1」の何れかを保持するフリップフロップである。
状態検出回路351は、ステートマシン321において状態#0を検出すると、セット信号を表すパルスをSRフリップフロップ353のセット端子SETに出力する。このセット信号により、SRフリップフロップ353は、「1」を保持するようになる。
状態検出回路352は、ステートマシン322において状態#0を検出すると、リセット信号を表すパルスをSRフリップフロップ353のリセット端子RESETに出力する。このリセット信号により、SRフリップフロップ353は、「0」を保持するようになる。
ステートマシン選択フラグ333は、SRフリップフロップ353の出力端子Qの値を保持する。したがって、このステートマシン選択フラグ333の内容は、ステートマシン321および322の一方が状態#0に遷移するたびに反転することになる。すなわち、データ転送部370および演算部380にレジスタA1乃至A3およびB1乃至B3のどちらからコマンドを出力するかは、ステートマシン321および322の一方の状態が状態#0に遷移するたびに変更されて、交互に選択される。
なお、入力レジスタ選択フラグ332の制御については、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
[情報処理システムの動作]
ここでは、上述のコマンド列を想定して、情報処理システムの動作を説明する。まず、プロセッサ100は、コマンド列1のDMA_D処理1−1乃至3−1に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。このとき、入力レジスタ選択フラグ332およびステートマシン選択フラグ333の初期値は「0」であるとする。
プロセッサ100は、コマンド列1を供給する前に、初期化命令をレジスタ群312に対して発行する。このとき、入力レジスタ選択フラグ332が「0」を示すため、レジスタA1乃至A3が初期化される。また、この初期化命令は、ステートマシン選択フラグ333が「0」を示すため、スイッチ334を介してステートマシン321を状態#0から状態#1に遷移させる。なお、ステートマシン322に関しては、入力レジスタ選択フラグ332が「0」を示すため、スイッチ334が初期化信号を供給せず、状態#0のままで遷移しない。
続いて、プロセッサ100は、DMA_D処理1−1、2−1および3−1に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。スイッチ311は、入力レジスタ選択フラグ332が「0」を示すため、コントロールバス101のアドレス情報に従って、レジスタA1にコマンドを書き込む。
次に、プロセッサ100は、CALC処理1−1および2−1に必要なコマンドをレジスタ群312に書き込む。スイッチ311は、レジスタA2にそのコマンドを書き込む。
さらに、プロセッサ100は、DMA_U処理1−1および2−1に必要なコマンドをレジスタ群312に書き込む。スイッチ311は、レジスタA3にそのコマンドを書き込むことを選択する。DMA_U処理2−1がレジスタA3に書き込まれたことが書込み検出回路345によって検知されると、入力レジスタ選択フラグ332は「1」となる。
次に、プロセッサ100は、コマンド列2を供給する前に、初期化命令をレジスタ群312に対して発行する。このとき、入力レジスタ選択フラグ332が「1」を示すため、レジスタB1乃至B3が初期化される。また、この初期化命令は、ステートマシン選択フラグ333が「1」を示すため、スイッチ334を介してステートマシン322を状態#0から状態#1に遷移させる。
さらに、プロセッサ100は、DMA_D処理1−2、2−2および3−2に必要なコマンドを、コントロールバス101を介してレジスタ群312に書き込む。スイッチ311は、入力レジスタ選択フラグ332が「1」を示すため、コントロールバス101のアドレス情報に従って、レジスタB1にコマンドを書き込む。
続いて、プロセッサ100は、CALC処理1−2、2−2、DMA_U処理1−2および2−2に必要なコマンドをレジスタ群312に書き込む。これにより、スイッチ311によって、レジスタB2およびB3にコマンドが書き込まれる。DMA_U処理2−2がレジスタB3に書き込まれたことが書込み検出回路346によって検知されると、入力レジスタ選択フラグ332は「1」から「0」に変化する。
次にステートマシン321および322の動作について説明する。ステートマシン選択フラグ333が「0」を示していることから、レジスタA1乃至A3にコマンドが書き込まれると、ステートマシン321は状態#1から状態3に遷移する。ステートマシン322には反転部335を介してステートマシン選択フラグ333の反転信号が入力されるため、レジスタB1乃至B3にコマンドが書き込まれると、ステートマシン322は状態#1から状態#2に遷移する。
ステートマシン選択フラグ333が「0」を示すとき、ステートマシン321は状態#3になると、選択器3131には「10」が供給され、レジスタA1のコマンドをデータ転送部370に供給する。そして、順次、DMA_D処理1−1、2−1および3−1の処理を行っていく。また、選択器3132および3133には「00」が供給され、これによって、データ転送部370の専有メモリ390から共有メモリ200に書き込む動作が行われる。このとき、演算部380には「NOP」が通知されるため、処理は何も行われない。
その後、DMA_D処理3−1の終了通知をデータ転送部370から受けたステートマシン321は状態#5に遷移する。ここで、ステートマシン322は、ステートマシン321が状態#5に遷移したこと、すなわち、ステートマシン321が司るDMA_D処理が終了したことを検出し、状態#2から状態#3に遷移する。この結果、選択器3131には「11」が供給され、レジスタB1の内容がデータ転送部370に供給される。また、選択器3132には「10」が供給され、レジスタA2の内容が演算部380に供給される。また、選択器3133には「00」が供給され、「NOP」となる。
演算部380には、レジスタA2に格納されたCALC処理1−1および2−1に必要なコマンドが供給される。データ転送部370には、レジスタB1に格納されたDMA_D処理1−2、2−2および3−2に必要なコマンドが供給される。これにより、DMA_D処理1−2、2−2および3−2と、CALC処理1−1および2−1とが、並行して処理されることになる。
DMA_D処理1−2、2−2および3−2が終了すると、ステートマシン322は状態#3から状態#4に遷移する。ステートマシン321は、CALC処理1−1および2−1の処理の終了を演算部380から通知されると、状態#6に遷移する。ステートマシン321が状態#6に遷移すると、選択器3132には「00」が供給され、「NOP」となる。選択器3133には「10」が供給され、レジスタA3に格納されたDMA_U処理1−1および2−1に必要なコマンドをデータ転送部370に供給していく。選択器3131に関しては、ステートマシン322が状態#4に遷移したときに「00」が供給され、「NOP」となる。
DMA_U処理2−1の処理が終了した通知をデータ転送部370から受けると、ステートマシン321は状態#0に遷移し、プロセッサ100に対して一連の演算が終了した旨の通知を行い、ステートマシン選択フラグ333を「0」から「1」に遷移させる。状態#0ではレジスタの初期化を待機するため、第1の実施の形態のようなレジスタA1乃至A3の実行許可フラグの書き換えは不要となる。
プロセッサ100は、一連の処理の終了通知を受けると、適当な時期に次のコマンドをレジスタ群312に書き込む。このとき、入力レジスタ選択フラグ332は「0」となっているため、コマンドはレジスタA1乃至A3に書き込まれることになる。ステートマシン選択フラグ333が「1」になったことで、ステートマシン322に入力されるフラグは「0」となり、これにより、ステートマシン322は状態#4から状態#5に遷移する。ステートマシン選択フラグ333が「1」になり、ステートマシン322が状態#5になったことにより、選択器3132には「11」が供給され、レジスタB2に格納されたCALC処理1−2および2−2のコマンドが演算部380に供給されていく。
プロセッサ100が次の処理を書き込んでいれば、選択器3131には「10」が供給され、新たにレジスタA1に書き込まれたコマンドがデータ転送部370に供給される。選択器3133には「00」が供給され、「NOP」となる。その後、ステートマシン322は状態を遷移させ、DMA_U処理1−2および2−2のコマンドをデータ転送部370に供給する。
図12は、本技術の第2の実施の形態における動作タイミングの一例を示す図である。この例では、CALC処理1−1および2−1の処理時間に対して、DMA_D処理1−2、2−2および3−2の処理時間が短い場合を示している。
DMA_D処理1−2、2−2および3−2の処理時間がCALC処理1−1および2−1の処理時間よりも短い場合には、CALC処理2−1を待ってDMA_U処理1−1および2−1が実行されるため、データ転送部370における競合は生じない。
図13は、本技術の第2の実施の形態における動作タイミングの他の例を示す図である。この例では、CALC処理1−1および2−1の処理時間がDMA_D処理1−2、2−2および3−2の処理時間よりも短い場合を示している。
CALC処理1−1および2−1の処理時間がDMA_D処理1−2、2−2および3−2の処理時間よりも短い場合には、DMA_U処理1−1および2−1の処理とDMA_D処理1−2、2−2および3−2の処理とが混在して行われることになる。この場合、データ転送部370はDMAの通常の機能として、データの読出しおよび書込みの仲裁(アービトレーション)機能を有しているため、DMA_D処理3−2が後から実行されるように制御される。
このように、この第2の実施の形態では、2つのステートマシン321および322によってコマンド列毎の状態を管理する。これにより、コマンド列同士で、先行するコマンド列の演算部380におけるCALC処理と後続のコマンド列のデータ転送部370におけるDMA_D処理とを並列に実行することができる。
<3.第3の実施の形態>
上述の第2の実施の形態では、自身に入力されるステートマシン選択フラグが「0」となったことでCALC処理1−2乃至2−2を開始していた。これに対し、DMA_U処理1−1乃至2−1で転送すべきデータが次のCALC処理1−2乃至2−2で上書きされないのであれば、DMA_U処理1−1乃至2−1とCALC処理1−2乃至2−2とを並列に実行することができる。そこで、この第3の実施の形態では、これらを並列に実行することにより、さらに演算部380における処理の効率化を図る。
なお、情報処理システムの構成については上述の第2の実施の形態と同様であるため、詳細な説明は省略する。
図14は、本技術の第3の実施の形態におけるステートマシン321が管理する状態の遷移例を示す図である。図15は、本技術の第3の実施の形態におけるステートマシン322が管理する状態の遷移例を示す図である。これら第3の実施の形態における遷移例は、状態#4から状態#5への遷移条件が第2の実施の形態と異なっている。
ステートマシン選択フラグ333が「0」を示す場合、ステートマシン321が状態#5から状態#6に遷移したときに、ステートマシン322が状態#4にあったとすると、ステートマシンは状態#5に遷移する。その結果、選択器3131には「00」が供給され、選択器3132には「11」が供給され、レジスタB2に書き込まれたCALC処理1−2および2−2のコマンドが演算部380に逐次供給されていく。また、選択器3133には「10」が供給され、データ転送部370にはレジスタA3に書き込まれたDMA_U処理1−1および2−1のコマンドが逐次供給されていく。
この場合、上述の共有メモリ200から専有メモリ390へのデータ転送と、演算部380の並列動作に加えて、専有メモリ390から共有メモリ200へのデータ転送と、演算部380の並列動作も可能となる。
このような状態の遷移により、異なるコマンド列におけるコマンドがデータ転送部370および演算部380に対して排他的に供給されるように制御される。また、ステートマシン321および322は、異なるコマンド列1およびコマンド列2に対応して、それぞれ固有の状態を管理する。
また、この第3の実施の形態では、ステートマシン321および322は、コマンド列に対応して予め定められたコマンド数に従って状態を遷移させる一方、状態#4から状態#5への遷移のように他のコマンド列の状態を加味して状態を遷移させる。
図16は、本技術の第3の実施の形態における動作タイミングの一例を示す図である。この例では、CALC処理1−1および2−1の処理時間がDMA_D処理1−2、2−2および3−2の処理時間よりも長い場合を示している。
この場合、第2の実施の形態とは異なり、DMA_U処理1−1および2−1の処理と並列に、CALC処理1−2および2−2が実行されていることがわかる。
図17は、本技術の第3の実施の形態における動作タイミングの他の例を示す図である。この例では、CALC処理1−1および2−1の処理時間がDMA_D処理1−2、2−2および3−2の処理時間よりも短い場合を示している。
この場合は、データ転送部370においてDMA_U処理1−1および2−1の処理とDMA_D処理1−2、2−2および3−2の処理との競合が発生するため、第2の実施の形態と同様に、DMA_D処理3−2が後から実行されるように制御される。
このように、この第3の実施の形態では、先行するコマンド列のCALC処理の終了をもって、後続のコマンド列の状態を遷移させる。これにより、コマンド列同士で、先行するコマンド列のデータ転送部370におけるDMA_U処理と後続のコマンド列の演算部380におけるCALC処理とを並列に実行することができる。すなわち、演算処理と演算結果の出力との並列処理を行うことができる。
なお、コマンドバッファ301の一連のコマンドを格納する内部のレジスタとして、レジスタA1乃至A3およびB1乃至B3の2系統を設けた例について説明したが、これらレジスタは、3系統以上設けるようにしてもよい。
また、レジスタA1およびB1ではデータ転送部370に対して3回、レジスタA2およびB2では演算部380に対して2回、レジスタA3およびB3ではデータ転送部370に対して2回の処理命令を格納できるFIFOである旨説明した。これに対し、各レジスタにおいて処理命令の格納数(FIFOの段数)を増やすようにしてもよい。
さらに、上述の実施の形態ではデータ転送部370および演算部380を例にとって説明したが、演算部380は複数設けられてもよい。この場合、データ転送部370もその複数の演算部380毎に設けることも可能である。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)プロセッサのアドレス空間とは異なる専有領域を記憶する専有メモリと、
前記アドレス空間と前記専有メモリとの間でデータの転送処理を行うデータ転送部と、
前記専有メモリに記憶されたデータ間の演算処理を行う演算部と、
前記プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持するコマンドレジスタ群と、
前記データ転送部および前記演算部における処理の状態を管理するステートマシンと、
前記コマンドを保持するように前記コマンドレジスタ群を制御するとともに、前記状態に応じて前記データ転送部および前記演算部の何れかに対して前記コマンドレジスタ群に保持された前記コマンドを供給するように前記コマンドレジスタ群を制御する制御部と
を具備する演算処理装置。
(2)前記ステートマシンは、前記コマンド列に対応して予め定められたコマンド数に従って前記状態を遷移させて前記状態を管理する
前記(1)に記載の演算処理装置。
(3)前記コマンド列は、前記アドレス空間から前記専有メモリにデータを転送する第1のデータ転送処理を行うコマンドと、前記専有メモリに記憶されたデータ間の演算処理を行うコマンドと、前記専有メモリから前記アドレス空間にデータを転送する第2のデータ転送処理を行うコマンドとを含み、
前記ステートマシンは、前記第1のデータ転送処理を行うコマンドが入力されると前記第1のデータ転送処理を行うコマンドを実行する状態に遷移させ、前記第1のデータ転送処理を行うコマンドに要する時間が経過すると前記演算処理を行うコマンドを実行する状態に遷移させ、前記演算処理を行うコマンドに要する時間が経過すると前記第2のデータ転送処理を行うコマンドを実行する状態に遷移させる
前記(1)または(2)に記載の演算処理装置。
(4)前記コマンドレジスタ群は、複数のサブレジスタ群を備え、
前記制御部は、前記プロセッサから複数の前記コマンド列を受けた際に前記複数のサブレジスタ群毎に異なる前記コマンド列が保持されるように制御する
前記(1)から(3)のいずれかに記載の演算処理装置。
(5)前記制御部は、前記異なるコマンド列におけるコマンドが前記データ転送部および前記演算部に対して排他的に供給されるように制御する
前記(4)に記載の演算処理装置。
(6)前記ステートマシンは、前記異なるコマンド列に対応してそれぞれ固有の前記状態を管理する
前記(4)または(5)に記載の演算処理装置。
(7)前記ステートマシンは、前記複数のコマンド列の状態を管理する際に前記複数のコマンド列の一のコマンド列に対応して予め定められたコマンド数および他のコマンド列の前記状態に従って前記一のコマンド列の前記状態を遷移させる
前記(4)または(5)に記載の演算処理装置。
(8)前記複数のコマンド列の各々は、前記アドレス空間から前記専有メモリにデータを転送する第1のデータ転送処理を行うコマンドと、前記専有メモリに記憶されたデータ間の演算処理を行うコマンドと、前記専有メモリから前記アドレス空間にデータを転送する第2のデータ転送処理を行うコマンドとを含み、
前記ステートマシンは、前記複数のコマンド列のうち第1に処理されるべきコマンド列の前記第1のデータ転送処理を行うコマンドに要する時間が経過すると前記複数のコマンド列のうち第2に処理されるべきコマンド列の前記第1のデータ転送処理を行うコマンドを実行する状態に遷移させ、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドに要する時間が経過すると前記第2に処理されるべきコマンド列の前記演算処理を行うコマンドを実行する状態に遷移させ、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドに要する時間が経過すると前記第1に処理されるべきコマンド列の前記第2のデータ転送処理を行うコマンドを実行する状態に遷移させる
前記(4)または(5)に記載の演算処理装置。
(9)前記ステートマシンは、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドに要する時間が経過し、または、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドが終了した状態に遷移すると、前記第2に処理されるべきコマンド列の前記演算処理を行うコマンドを実行する状態に遷移させる
前記(8)に記載の演算処理装置。
(10)プロセッサと、演算処理装置と、前記プロセッサのアドレス空間を記憶して前記演算処理装置からもアクセス可能な共有メモリとを具備する情報処理システムであって、
前記演算処理装置は、
前記プロセッサのアドレス空間とは異なる専有領域を記憶する専有メモリと、
前記アドレス空間と前記専有メモリとの間でデータの転送処理を行うデータ転送部と、
前記専有メモリに記憶されたデータ間の演算処理を行う演算部と、
前記プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持するコマンドレジスタ群と、
前記データ転送部および前記演算部における処理の状態を管理するステートマシンと、
前記コマンドを保持するように前記コマンドレジスタ群を制御するとともに、前記状態に応じて前記データ転送部および前記演算部の何れかに対して前記コマンドレジスタ群に保持された前記コマンドを供給するように前記コマンドレジスタ群を制御する制御部とを備える
情報処理システム。
100 プロセッサ
101 コントロールバス
102 メモリバス
200 共有メモリ
300 コプロセッサ
301 コマンドバッファ
310 コマンド保持部
311 スイッチ
312 レジスタ群
313 セレクタ
320〜322 ステートマシン
330 制御部
331 出力レジスタ選択フラグ
332 入力レジスタ選択フラグ
333 ステートマシン選択フラグ
334 スイッチ
335 反転部
341 状態検出回路
342 フリップフロップ
343 反転器
344 書込み監視回路
345、346 書込み検出回路
347、353 SRフリップフロップ
351、352 状態検出回路
360 バスインターフェース
370 データ転送部
380 演算部
390 専有メモリ
3131〜3133 選択器
3139 制御部

Claims (10)

  1. プロセッサのアドレス空間とは異なる専有領域を記憶する専有メモリと、
    前記アドレス空間と前記専有メモリとの間でデータの転送処理を行うデータ転送部と、
    前記専有メモリに記憶されたデータ間の演算処理を行う演算部と、
    前記プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持するコマンドレジスタ群と、
    前記データ転送部および前記演算部における処理の状態を管理するステートマシンと、
    前記コマンドを保持するように前記コマンドレジスタ群を制御するとともに、前記状態に応じて前記データ転送部および前記演算部の何れかに対して前記コマンドレジスタ群に保持された前記コマンドを供給するように前記コマンドレジスタ群を制御する制御部と
    を具備する演算処理装置。
  2. 前記ステートマシンは、前記コマンド列に対応して予め定められたコマンド数に従って前記状態を遷移させて前記状態を管理する
    請求項1記載の演算処理装置。
  3. 前記コマンド列は、前記アドレス空間から前記専有メモリにデータを転送する第1のデータ転送処理を行うコマンドと、前記専有メモリに記憶されたデータ間の演算処理を行うコマンドと、前記専有メモリから前記アドレス空間にデータを転送する第2のデータ転送処理を行うコマンドとを含み、
    前記ステートマシンは、前記第1のデータ転送処理を行うコマンドが入力されると前記第1のデータ転送処理を行うコマンドを実行する状態に遷移させ、前記第1のデータ転送処理を行うコマンドに要する時間が経過すると前記演算処理を行うコマンドを実行する状態に遷移させ、前記演算処理を行うコマンドに要する時間が経過すると前記第2のデータ転送処理を行うコマンドを実行する状態に遷移させる
    請求項1記載の演算処理装置。
  4. 前記コマンドレジスタ群は、複数のサブレジスタ群を備え、
    前記制御部は、前記プロセッサから複数の前記コマンド列を受けた際に前記複数のサブレジスタ群毎に異なる前記コマンド列が保持されるように制御する
    請求項1記載の演算処理装置。
  5. 前記制御部は、前記異なるコマンド列におけるコマンドが前記データ転送部および前記演算部に対して排他的に供給されるように制御する
    請求項4記載の演算処理装置。
  6. 前記ステートマシンは、前記異なるコマンド列に対応してそれぞれ固有の前記状態を管理する
    請求項4記載の演算処理装置。
  7. 前記ステートマシンは、前記複数のコマンド列の状態を管理する際に前記複数のコマンド列の一のコマンド列に対応して予め定められたコマンド数および他のコマンド列の前記状態に従って前記一のコマンド列の前記状態を遷移させる
    請求項4記載の演算処理装置。
  8. 前記複数のコマンド列の各々は、前記アドレス空間から前記専有メモリにデータを転送する第1のデータ転送処理を行うコマンドと、前記専有メモリに記憶されたデータ間の演算処理を行うコマンドと、前記専有メモリから前記アドレス空間にデータを転送する第2のデータ転送処理を行うコマンドとを含み、
    前記ステートマシンは、前記複数のコマンド列のうち第1に処理されるべきコマンド列の前記第1のデータ転送処理を行うコマンドに要する時間が経過すると前記複数のコマンド列のうち第2に処理されるべきコマンド列の前記第1のデータ転送処理を行うコマンドを実行する状態に遷移させ、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドに要する時間が経過すると前記第2に処理されるべきコマンド列の前記演算処理を行うコマンドを実行する状態に遷移させ、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドに要する時間が経過すると前記第1に処理されるべきコマンド列の前記第2のデータ転送処理を行うコマンドを実行する状態に遷移させる
    請求項4記載の演算処理装置。
  9. 前記ステートマシンは、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドに要する時間が経過し、または、前記第1に処理されるべきコマンド列の前記演算処理を行うコマンドが終了した状態に遷移すると、前記第2に処理されるべきコマンド列の前記演算処理を行うコマンドを実行する状態に遷移させる
    請求項8記載の演算処理装置。
  10. プロセッサと、演算処理装置と、前記プロセッサのアドレス空間を記憶して前記演算処理装置からもアクセス可能な共有メモリとを具備する情報処理システムであって、
    前記演算処理装置は、
    前記プロセッサのアドレス空間とは異なる専有領域を記憶する専有メモリと、
    前記アドレス空間と前記専有メモリとの間でデータの転送処理を行うデータ転送部と、
    前記専有メモリに記憶されたデータ間の演算処理を行う演算部と、
    前記プロセッサから受けたコマンド列の各コマンドを各々のレジスタに保持するコマンドレジスタ群と、
    前記データ転送部および前記演算部における処理の状態を管理するステートマシンと、
    前記コマンドを保持するように前記コマンドレジスタ群を制御するとともに、前記状態に応じて前記データ転送部および前記演算部の何れかに対して前記コマンドレジスタ群に保持された前記コマンドを供給するように前記コマンドレジスタ群を制御する制御部とを備える
    情報処理システム。
JP2017011862A 2017-01-26 2017-01-26 演算処理装置および情報処理システム Pending JP2018120448A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017011862A JP2018120448A (ja) 2017-01-26 2017-01-26 演算処理装置および情報処理システム
DE112017006928.9T DE112017006928T5 (de) 2017-01-26 2017-10-13 Berechnungsverarbeitungsvorrichtung und informationsverarbeitungssystem
CN201780084019.0A CN110383259B (zh) 2017-01-26 2017-10-13 计算处理装置和信息处理系统
PCT/JP2017/037113 WO2018138975A1 (ja) 2017-01-26 2017-10-13 演算処理装置および情報処理システム
US16/474,384 US11435928B2 (en) 2017-01-26 2017-10-13 Calculation processing apparatus and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017011862A JP2018120448A (ja) 2017-01-26 2017-01-26 演算処理装置および情報処理システム

Publications (1)

Publication Number Publication Date
JP2018120448A true JP2018120448A (ja) 2018-08-02

Family

ID=62979133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017011862A Pending JP2018120448A (ja) 2017-01-26 2017-01-26 演算処理装置および情報処理システム

Country Status (5)

Country Link
US (1) US11435928B2 (ja)
JP (1) JP2018120448A (ja)
CN (1) CN110383259B (ja)
DE (1) DE112017006928T5 (ja)
WO (1) WO2018138975A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328323A (zh) * 2021-12-01 2022-04-12 北京三快在线科技有限公司 一种数据中转单元及基于数据中转单元的数据传输方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623022A (en) * 1969-12-29 1971-11-23 Ibm Multiplexing system for interleaving operations of a processing unit
US5845151A (en) * 1996-04-08 1998-12-01 Vlsi Technology, Inc. System using descriptor and having hardware state machine coupled to DMA for implementing peripheral device bus mastering via USB controller or IrDA controller
EP1061439A1 (en) * 1999-06-15 2000-12-20 Hewlett-Packard Company Memory and instructions in computer architecture containing processor and coprocessor
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
JP2003216566A (ja) * 2002-01-18 2003-07-31 Hitachi Ltd マイクロコンピュータ
US20030212859A1 (en) * 2002-05-08 2003-11-13 Ellis Robert W. Arrayed data storage architecture with simultaneous command of multiple storage media
DE10249883B4 (de) * 2002-10-25 2005-02-03 Advanced Micro Devices, Inc., Sunnyvale Verfahren und Vorrichtung zur Handhabung von SMBUS-Nachrichten
JP2005157717A (ja) 2003-11-26 2005-06-16 Nec Micro Systems Ltd データ転送方法及びその装置
JP2006072961A (ja) * 2004-08-04 2006-03-16 Yaskawa Electric Corp 演算処理装置のメモリ回路
US7546441B1 (en) * 2004-08-06 2009-06-09 Xilinx, Inc. Coprocessor interface controller
US20060248391A1 (en) * 2005-05-02 2006-11-02 Glover Jeffrey C State machine-based command line debugger
US7747788B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Hardware oriented target-side native command queuing tag management
US7627723B1 (en) * 2006-09-21 2009-12-01 Nvidia Corporation Atomic memory operators in a parallel processor
KR20080105390A (ko) * 2007-05-30 2008-12-04 삼성전자주식회사 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
US7788470B1 (en) * 2008-03-27 2010-08-31 Xilinx, Inc. Shadow pipeline in an auxiliary processor unit controller
TWI493455B (zh) * 2013-07-02 2015-07-21 Phison Electronics Corp 命令佇列管理方法、記憶體控制器及記憶體儲存裝置
US10089039B2 (en) * 2015-10-30 2018-10-02 Toshiba Memory Corporation Memory controller, memory device having the same, and memory control method
US10482045B2 (en) * 2016-02-17 2019-11-19 Analog Devices Global Unlimited Company Data communication interface for processing data in low power systems
KR20180053027A (ko) * 2016-11-11 2018-05-21 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10635350B2 (en) * 2018-01-23 2020-04-28 Western Digital Technologies, Inc. Task tail abort for queued storage tasks
US10922017B2 (en) * 2018-08-07 2021-02-16 Micron Technology, Inc. Memories for reading data corresponding to multiple addresses associated with a read command

Also Published As

Publication number Publication date
CN110383259A (zh) 2019-10-25
DE112017006928T5 (de) 2019-10-02
CN110383259B (zh) 2023-05-16
US11435928B2 (en) 2022-09-06
WO2018138975A1 (ja) 2018-08-02
US20190347030A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
JP5548037B2 (ja) 命令発行制御装置及び方法
JPWO2008087779A1 (ja) アレイ型プロセッサおよびデータ処理システム
JP5431003B2 (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路システム
JP2007219581A (ja) メモリコントローラおよびこれを搭載する電子機器
WO2011142058A1 (ja) 計算機システム
JP2006195976A (ja) マルチスレッドハードウェアシステム及び方法
JP2007133456A (ja) 半導体装置
JP2006092042A (ja) 情報処理装置及びコンテキスト切り替え方法
JP2007102646A (ja) コンテキスト切替え装置
JP4642531B2 (ja) データ要求のアービトレーション
JP2000293371A (ja) マイクロプログラム制御方法及び装置
KR102332523B1 (ko) 연산 처리 장치 및 방법
JP2009252128A (ja) メモリ制御装置及びその制御方法
WO2018138975A1 (ja) 演算処理装置および情報処理システム
JP4985452B2 (ja) ベクトル処理装置
JP5382113B2 (ja) 記憶制御装置及びその制御方法
TWI766891B (zh) 半導體裝置的處理器與其操作方法
JP4631442B2 (ja) プロセッサ
JP2019191704A (ja) プロセッサ及び情報処理装置
JP2004118300A (ja) Dmaコントローラ
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
JP2011118744A (ja) 情報処理装置
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置
JP2001022581A (ja) データ処理装置及びコンピュータ読み取り可能な記憶媒体
JP2001306488A (ja) データ転送装置