Nothing Special   »   [go: up one dir, main page]

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

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

Info

Publication number
JP2018120449A
JP2018120449A JP2017011863A JP2017011863A JP2018120449A JP 2018120449 A JP2018120449 A JP 2018120449A JP 2017011863 A JP2017011863 A JP 2017011863A JP 2017011863 A JP2017011863 A JP 2017011863A JP 2018120449 A JP2018120449 A JP 2018120449A
Authority
JP
Japan
Prior art keywords
command
processing
state
control unit
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.)
Pending
Application number
JP2017011863A
Other languages
English (en)
Inventor
隆宏 岡田
Takahiro Okada
隆宏 岡田
廷昭 弓場
Tadaaki Yuba
廷昭 弓場
上島 淳
Atsushi Uejima
淳 上島
真一 土田
Shinichi Tsuchida
真一 土田
顕 松本
Akira Matsumoto
顕 松本
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 JP2017011863A priority Critical patent/JP2018120449A/ja
Priority to PCT/JP2017/044910 priority patent/WO2018139097A1/ja
Priority to CN201780084135.2A priority patent/CN110199264B/zh
Priority to DE112017006929.7T priority patent/DE112017006929T5/de
Priority to US16/478,292 priority patent/US11080167B2/en
Publication of JP2018120449A publication Critical patent/JP2018120449A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】プロセッサから演算処理装置に対してまとめて発行された複数の命令の各々の実行後の状態についてデバッグ作業を行う。
【解決手段】コマンドレジスタ群は、複数のコマンドを含むコマンド列を単位としてプロセッサから発行された各コマンドを各々のレジスタに保持する。コマンド処理部は、コマンドレジスタ群から供給されたコマンドを処理する。ステートマシンは、コマンド処理部におけるコマンドの処理状態を管理する。制御部は、コマンド列において停止すべき条件を停止条件として予め設定して、その設定された停止条件とステートマシンにおいて管理される処理状態とに基づいてコマンド処理部における処理を停止させる。
【選択図】図1

Description

本技術は、演算処理装置に関する。詳しくは、プロセッサの外部において演算機能を提供する演算処理装置、および、その演算処理装置を含む情報処理システムに関する。
情報処理システムにおいてデバッグ作業を行う際、一般にはICE(In-Circuit Emulator)を用いてブレークポイントを設定し、ハードウェア内部のステータスレジスタ等を確認しながらソースコードの検証が行われる。このようなデバッグの対象システムにおいて、プロセッサから発行された複数の命令を演算処理装置において並行に処理するような場合には、新たな命令の処理を停止するとともに、既に開始された処理を如何に扱うかが問題となる。例えば、パイプライン方式により命令を処理する命令処理部においてデバッグ動作を行うプロセッサが提案されている(例えば、特許文献1参照。)。
特開2008−269390号公報
上述の従来技術では、パイプライン方式により命令を処理する命令処理部において命令の処理を停止するために、命令の入力を停止してからその停止より前に既に開始された処理が完了するまでの間はデバッグ動作を制限している。しかしながら、開始された全ての処理の完了を待つこととすると、デバッグ動作時と実際の実行時との間で内部の状態が異なってしまい、デバッグ作業が適切に行われないおそれがある。すなわち、プロセッサから演算処理装置に対して発行された各々の命令の完了時点のハードウェア内部ステータスやローカルメモリの値を確認することができないという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、プロセッサから演算処理装置に対してまとめて発行された複数の命令の各々の実行後の状態についてデバッグ作業を行うことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数のコマンドを含むコマンド列を単位としてプロセッサから発行された各コマンドを各々のレジスタに保持するコマンドレジスタ群と、上記コマンドレジスタ群から供給された上記コマンドを処理するコマンド処理部と、上記コマンド処理部における上記コマンドの処理状態を管理するステートマシンと、上記コマンド列において停止すべき条件を停止条件として予め設定して当該設定された停止条件と上記ステートマシンにおいて管理される上記処理状態とに基づいて上記コマンド処理部における処理を停止させる制御部とを具備する演算処理装置である。これにより、複数のコマンドを含むコマンド列において予め設定された停止条件とステートマシンにおいて管理される処理状態とに基づいて処理を停止させるという作用をもたらす。
また、この第1の側面において、上記制御部は、上記コマンド列における全てのコマンドの処理の終了を待つことなく上記停止条件を満たすコマンドの処理が終了した時点で上記コマンド処理部における処理を停止させるようにしてもよい。これにより、コマンド列における全てのコマンドの処理の終了を待つことなく処理を停止させるという作用をもたらす。
また、この第1の側面において、上記制御部は、上記停止条件として上記コマンド処理部における複数の上記処理状態を設定するようにしてもよい。これにより、複数の処理状態において処理を停止させるという作用をもたらす。
また、この第1の側面において、上記制御部は、上記プロセッサから処理停止の解除命令を受けると上記コマンド処理部における処理を再開させるようにしてもよい。これにより、コマンド列の停止された位置から再開させるという作用をもたらす。
また、この第1の側面において、上記ステートマシンは、上記コマンド列に対応して予め定められたコマンド数に従って上記処理状態を遷移させて上記処理状態を管理するようにしてもよい。これにより、コマンド数に基づく簡易な方法により状態を管理するという作用をもたらす。
また、この第1の側面において、上記コマンドレジスタ群は、複数のサブレジスタ群を備え、上記制御部は、上記プロセッサから複数の上記コマンド列を受けた際に上記複数のサブレジスタ群毎に異なる上記コマンド列が保持されるように制御するようにしてもよい。これにより、異なるコマンド列を並行に動作させるという作用をもたらす。
また、この第1の側面において、上記ステートマシンは、上記異なるコマンド列に対応してそれぞれ固有の上記処理状態を管理するようにしてもよい。これにより、コマンド列毎に固有の状態によって動作させるという作用をもたらす。
また、この第1の側面において、上記制御部は、複数の上記コマンド列の一つにおいて上記停止条件を満たす場合には他の上記コマンド列においても上記コマンド処理部における処理を停止させるようにしてもよい。これにより、複数のコマンド列における処理を連動して停止させるという作用をもたらす。
また、この第1の側面において、上記制御部は、複数の上記コマンド列の一つにおいて上記停止条件を満たす場合には他の上記コマンド列において処理されているコマンドの処理が終了した時点で上記コマンド処理部における処理を停止させるようにしてもよい。これにより、一つのコマンド列において処理されているコマンドの処理が終了した時点で他のコマンド列の処理を停止させるという作用をもたらす。
また、本技術の第2の側面は、複数のコマンドを含むコマンド列を単位として上記コマンドを発行するプロセッサと、上記プロセッサから発行された上記コマンドを各々のレジスタに保持するコマンドレジスタ群と、上記コマンドレジスタ群から供給された上記コマンドを処理するコマンド処理部と、上記コマンド処理部における上記コマンドの処理状態を管理するステートマシンと、上記コマンド列において停止すべき条件を停止条件として予め設定して当該設定された停止条件と上記ステートマシンにおいて管理される上記処理状態とに基づいて上記コマンド処理部における処理を停止させる制御部とを具備する情報処理システムである。これにより、プロセッサからまとめて発行された複数のコマンドを含むコマンド列において予め設定された停止条件とステートマシンにおいて管理される処理状態とに基づいて処理を停止させるという作用をもたらす。
本技術によれば、プロセッサから演算処理装置に対してまとめて発行された複数の命令の各々の実行後の状態についてデバッグ作業を行うことができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの構成の一例を示す図である。 本技術の第1の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。 本技術の第1の実施の形態におけるレジスタ群312とコマンドとの関係例を示す図である。 本技術の第1の実施の形態におけるステートマシン320が管理する処理状態の遷移例を示す図である。 本技術の実施の形態におけるコマンド列の一例を示す図である。 本技術の第1の実施の形態における制御部330の制御信号の一例を示す図である。 本技術の第1の実施の形態における情報処理システムの動作の一例を示すシーケンス図である。 本技術の第1の実施の形態における制御部330における処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。 本技術の第2の実施の形態におけるレジスタ群312とコマンドとの関係例を示す図である。 本技術の第2の実施の形態における制御部330の制御信号の一例を示す図である。 本技術の第2の実施の形態における複数のコマンド列間のブレーク連動の例を示す図である。 本技術の第2の実施の形態における制御部330における処理手順例を示す流れ図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(発行されたコマンド列の一つのコマンドの処理が終了した時点で停止する例)
2.第2の実施の形態(複数のコマンド列の何れかで停止した際に他のコマンド列も連動して停止する例)
<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に対してそれぞれ読出しおよび書込みのアクセスを実行することができる。なお、データ転送部370および演算部380は、特許請求の範囲に記載の処理部の一例である。
図2は、本技術の第1の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。このコマンドバッファ301は、レジスタ群312と、スイッチ311と、セレクタ313と、ステートマシン320とを備える。
レジスタ群312は、プロセッサ100から受けたコマンド列の各コマンドを保持するレジスタである。この例では、レジスタ群312は、レジスタA1乃至A3を備える。レジスタA1は、共有メモリ200のデータを専有メモリ390に書き込む際の、データ転送部370に対するコマンドを保持するレジスタである。レジスタA2は、演算部380のコマンドを保持するレジスタである。レジスタA3は、専有メモリ390のデータを共有メモリ200に書き込む際の、データ転送部370に対するコマンドを保持するレジスタである。これらレジスタA1乃至A3は、複数のコマンドを格納することができ、格納した順番に読み出すことのできるFIFO(First-In First-Out)機能を有する。なお、レジスタ群312は、特許請求の範囲に記載のコマンドレジスタ群の一例である。
スイッチ311は、プロセッサ100からのコマンドをレジスタA1乃至A3に振り分けるスイッチである。このスイッチ311は、レジスタA1乃至A3の何れかのアドレス選択を、コントロールバス101からのアドレス情報に従って判断する。
セレクタ313は、レジスタA1乃至A3の何れかの出力を選択して、データ転送部370または演算部380に供給するセレクタである。レジスタA1およびA3の出力は、データ転送部370に供給される。レジスタA2の出力は、演算部380に供給される。
ステートマシン320は、データ転送部370および演算部380における処理状態を管理するステートマシンである。このステートマシン320により管理される処理状態の遷移については後述する。
図3は、本技術の第1の実施の形態におけるレジスタ群312とコマンドとの関係例を示す図である。ここでは、プロセッサ100からコプロセッサ300にまとめて発行されるコマンド列には、7つのコマンドが含まれることを想定している。これら7つのコマンドは、以下のようにレジスタA1乃至A3に保持される。
レジスタA1は、共有メモリ200のデータを専有メモリ390に転送するDmaMainToLocalコマンドを保持する。この例では、レジスタA1は、3つのDmaMainToLocalコマンドを保持する領域を有する。
レジスタA2は、演算部380において実行されるCalcOperationコマンドを保持する。この例では、レジスタA2は、2つのCalcOperationコマンドを保持する領域を有する。
レジスタA3は、専有メモリ390のデータを共有メモリ200に転送するDmaLocalToMainコマンドを保持する。この例では、レジスタA3は、2つのDmaLocalToMainコマンドを保持する領域を有する。
図4は、本技術の第1の実施の形態におけるステートマシン320が管理する処理状態の遷移例を示す図である。
状態#0は、レジスタ群312がコマンドを保持しておらず、プロセッサ100からコマンドが入力されるのを待機している状態である。この状態#0においてプロセッサ100からコマンド列が入力されると、次の状態#1に遷移する。
状態#1は、データ転送部370が共有メモリ200から専有メモリ390にデータ転送するコマンドの1つ目(DmaMainToLocal#0)を実行している状態である。この状態#1において共有メモリ200から専有メモリ390へのデータ転送が終了すると、次の状態#2に遷移する。同様に、状態#2は、DmaMainToLocal#1を実行している状態であり、データ転送が終了すると、次の状態#3に遷移する。また、状態#3は、DmaMainToLocal#2を実行している状態であり、データ転送が終了すると、次の状態#4に遷移する。
状態#4は、演算部380が演算を行うコマンドの1つ目(CalcOperation#0)を実行している状態である。この状態#1において演算部380の演算が終了すると、次の状態#5に遷移する。同様に、状態#5は、CalcOperation#1を実行している状態であり、演算が終了すると、次の状態#6に遷移する。
状態#6は、データ転送部370が専有メモリ390から共有メモリ200にデータ転送するコマンドの1つ目(DmaLocalToMain#0)を実行している状態である。この状態#6において専有メモリ390から共有メモリ200へのデータ転送が終了すると、次の状態#7に遷移する。同様に、状態#7は、DmaLocalToMain#1を実行している状態であり、データ転送が終了すると、最初の状態#0に遷移する。
これら状態遷移においては、各機能ブロックからの処理終了の通知を待って遷移する手法と、一定時間待機した後に自動的に次の処理を行う手法の何れの手法も採用することができる。また、各コマンドの処理については、それぞれに要するコマンド数は予め定められているものとする。これにより、ステートマシン320は、各コマンドのデコード処理を行うことなく、状態を遷移させることができる。
図5は、本技術の実施の形態におけるコマンド列の一例を示す図である。このコマンド列は、プロセッサ100上で動作するファームウェアとして実現され得る。
プロセッサ100は、コマンド列を単位として、コプロセッサ300に対してコマンドを発行する。これに先立って、デバッグ作業を行うために、コマンド間にブレークポイントを設定するBreakSetコマンドが第1行目に設けられる。このBreakSetコマンドは、コマンド列において指定したコマンドの処理が終了した際に、コマンド列の実行を停止(ブレーク動作)するように実行停止位置(ブレークポイント)を設定するものである。
このBreakSetコマンドによって設定される、コマンド列において停止すべき条件を停止条件と称する。この例では、コマンド列として上述のように7つのコマンドを備えることを想定しているため、停止条件は各コマンドに対応して1ビットずつ、計7ビットから構成される。これにより、7つのコマンドのうち1つ以上の任意のコマンドが終了した時点で処理を停止するよう設定することができる。この例では、データ転送部370が共有メモリ200から専有メモリ390にデータ転送するコマンドの2つ目と、演算部380が演算を行うコマンドの1つ目とにおいてブレークポイントが設定されている。
第2行目のDmaMainToLocalR32(adrA,L0,128)は、共有メモリ200から専有メモリ390にデータ転送するコマンドの1つ目である。このコマンドは、共有メモリ200のアドレスadrAから専有メモリ390のアドレスL0に、実数32ビットのデータ128個をDMA転送(ダウンロード)するコマンドである。このコマンドにより転送されたデータは、ベクトルAiとして用いられる。
第3行目のDmaMainToLocalR32(adrF,L1,128)は、共有メモリ200から専有メモリ390にデータ転送するコマンドの2つ目である。このコマンドは、共有メモリ200のアドレスadrFから専有メモリ390のアドレスL1に、実数32ビットのデータ128個をDMA転送(ダウンロード)するコマンドである。このコマンドにより転送されたデータは、ベクトルFiとして用いられる。
第4行目のDmaMainToLocalNop()は、共有メモリ200から専有メモリ390にデータ転送するコマンドの3つ目である。ただし、このコマンドは、このタイミングではDMA転送を行わないNOP(No OPeration)動作を規定する。したがって、このコマンドによってDMA転送は実行されない。
第5行目のOperationMul32(L0,L1,L2,128)は、演算部380が演算を行うコマンドの1つ目である。このコマンドは、専有メモリ390のアドレスL0およびL1に記憶される128個の32ビットデータをそれぞれ乗算して専有メモリ390のアドレスL2に記憶するコマンドである。このコマンドにより演算されたデータは、ベクトルXiとして用いられる。
第6行目のOperationNop()は、演算部380が演算を行うコマンドの2つ目である。ただし、このコマンドは、このタイミングでは演算を行わないNOP動作を規定する。したがって、このコマンドによって演算は実行されない。
第7行目のDmaLocalToMainR32(adrX,L2,128)は、専有メモリ390から共有メモリ200にデータ転送するコマンドの1つ目である。このコマンドは、専有メモリ390のアドレスL2から共有メモリ200のアドレスadrXに、実数32ビットのデータ128個をDMA転送(アップロード)するコマンドである。このコマンドにより転送されるデータは、第5行目において演算されたベクトルXiである。
第8行目のDmaLocalToMainNop()は、専有メモリ390から共有メモリ200にデータ転送するコマンドの2つ目である。ただし、このコマンドは、このタイミングではDMA転送を行わないNOP動作を規定する。したがって、このコマンドによってDMA転送は実行されない。
第2行目から第8行目のコマンドは、コマンド列1を構成する。すなわち、これら7つのコマンドは、プロセッサ100からコプロセッサ2に、コマンド列1としてまとめて発行される。デバッグ動作時には、第3行目と第5行目にブレークポイントが設定されているため、第3行目のコマンド終了時点および第5行目のコマンド終了時点で、コマンド列1の動作が停止する。
図6は、本技術の第1の実施の形態における制御部330の制御信号の一例を示す図である。制御部330は、バスインターフェース360との間に、信号線361、362、363および369を備える。また、制御部330は、ステートマシン320との間に、信号線323および324を備える。
信号線361は、プロセッサ100から制御部330に対して、ブレークポイント設定が有効か否かを指示するbreak_en信号を送信するための信号線である。制御部330は、break_en信号が有効を示しているときに停止条件を満たすとブレーク動作を行う。
信号線362は、プロセッサ100から制御部330に対して、ブレーク動作のための停止条件を設定するbreak_state信号を送信するための信号線である。上述のように、この例ではコマンド列が7つのコマンドを備えることを想定しているため、break_state信号は7ビット幅となる。
信号線369は、ブレーク動作のための停止条件を満たして処理が停止した際に、制御部330からプロセッサ100に対してその旨を報告するbreak_done信号を送信するための信号線である。
信号線363は、プロセッサ100から制御部330に対して、ブレーク動作を解除するrelease信号を送信するための信号線である。
信号線323は、ステートマシン320から制御部330に対して、データ転送部370および演算部380における処理状態を示すstate信号を送信するための信号線である。上述のように、この例では8つの処理状態を想定しており、そのうちの1つの処理状態を示せばよいため、state信号は3ビット幅で足りる。
信号線324は、ブレーク動作のための停止条件を満たした際に、制御部330からステートマシン320に対して処理の停止を指示するbreak信号を送信するための信号線である。
制御部330は、break_en信号が有効を示しているときに、ステートマシン320から供給されるstate信号によって示される処理状態が、break_state信号によって設定された停止条件を満たす場合に、ブレーク動作を行う。すなわち、制御部330は、ステートマシン320に対して処理の停止を指示するbreak信号を送信するとともに、プロセッサ100に対してbreak_done信号を送信する。
コマンド列の処理の停止中に、デバッグ作業としてハードウェア内部ステータスやローカルメモリの値などが採取される。その後、処理を再開するために、プロセッサ100は制御部330にブレーク動作を解除するrelease(リリース)信号を送信する。これにより、制御部330は、ステートマシン320に対するbreak信号を解除する。なお、release信号は、ICE(In-Circuit Emulator)を介してプロセッサ100に入力されることが想定されるが、プロセッサ100上で動作するファームウェアにより実行されてもよい。
[情報処理システムの動作]
図7は、本技術の第1の実施の形態における情報処理システムの動作の一例を示すシーケンス図である。
コマンド列1の実行に先立って、プロセッサ100から停止条件の設定が指示されると(811)、バスインターフェース360を介して制御部330において停止条件が設定される。コマンド列1の処理が開始すると、ステートマシン320において管理される処理状態が制御部330に適宜通知される(812)。
制御部330は、ステートマシン320から通知される処理状態を監視し、設定された停止条件を満たすか否かを判断する。そして、停止条件を満たすことを検出すると(813)、ステートマシン320にブレーク開始を指示する(814)。これにより、ステートマシン320は状態遷移を停止し、コマンド保持部310からのコマンドの供給が停止し、コマンド列の処理が停止してブレーク状態となる(815)。
また、制御部330は、停止条件を満たすことを検出すると(813)、バスインターフェース360を介してプロセッサ100にブレーク状態の発生を報告する(816)。デバッグ作業が行われた後、プロセッサ100からバスインターフェース360を介して制御部330にリリース信号が入力される(817)。
制御部330は、リリース信号を受けると、ブレーク状態を解除する旨をステートマシン320に指示する(818)。これにより、ステートマシン320は状態遷移を再開し、コマンド保持部310からのコマンドの供給が再開し、コマンド列の処理が再開してブレーク状態が解除される(819)。
図8は、本技術の第1の実施の形態における制御部330における処理手順例を示す流れ図である。
制御部330は、プロセッサ100から停止条件の設定が指示されると、停止条件を設定する(ステップS911)。コマンド列1の処理が開始すると、制御部330は、ステートマシン320から通知される処理状態を監視し、設定された停止条件を満たすか否かを判断する(ステップS913)。
そして、停止条件を満たすことを検出すると(ステップS913:Yes)、制御部330は、ステートマシン320にブレーク開始を指示する(ステップS915)。これにより、ブレーク状態となる。このとき、制御部330は、プロセッサ100にブレーク状態の発生を報告する(ステップS916)。
その後、制御部330は、プロセッサ100からリリース信号を受けると(ステップS917:Yes)、ブレーク状態を解除する旨をステートマシン320に指示する(ステップS918)。これにより、ブレーク状態が解除される。
停止条件が検出されない場合(ステップS913:No)、または、ブレーク状態が解除された場合(ステップS918)、コマンド列の実行が終了したか否かが判断される(ステップS919)。コマンド列の実行が終了すると(ステップS919:Yes)、この処理手順は終了する。コマンド列の実行が終了していない場合には(ステップS919:No)、ステップS913以降の処理を繰り返す。
このように、本技術の第1の実施の形態によれば、プロセッサ100からコプロセッサ300に対してまとめて発行されたコマンド列における各コマンドの処理状態を監視することにより、コマンド単位でデバッグ作業を行うことができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、コプロセッサ300のコマンドバッファ301に1組のコマンド列を保持することを想定していたが、複数組のコマンド列を保持するようにしてもよい。この第2の実施の形態では、コマンドバッファ301に複数組のコマンド列を保持して、それらを並行に実行することを想定する。なお、情報処理システムの全体構成としては上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
[情報処理システムの構成]
図9は、本技術の第2の実施の形態におけるコマンドバッファ301の構成の一例を示す図である。
この第2の実施の形態では、レジスタ群312は、2組のコマンド列を保持するよう構成される。すなわち、第1のコマンド列を保持するレジスタA1乃至A3と、第2のコマンド列を保持するレジスタB1乃至B3とを備える。なお、レジスタA1乃至A3とレジスタB1乃至B3は、特許請求の範囲に記載の複数のサブレジスタ群の一例である。
また、この第2の実施の形態では、2組のコマンド列のそれぞれに対応して、2つのステートマシン321および322を備える。すなわち、ステートマシン321は第1のコマンド列の処理状態を管理し、ステートマシン322は第2のコマンド列の処理状態を管理する。
また、この第2の実施の形態におけるコマンドバッファ301は、入力レジスタ選択フラグ332と、ステートマシン選択フラグ333と、スイッチ334と、反転部335とを備える。
入力レジスタ選択フラグ332は、レジスタA1乃至A3またはB1乃至B3のどちらにコマンドを入力するかをスイッチ311が決定するためのフラグである。スイッチ311は、レジスタA1乃至A3またはB1乃至B3のどちらかにコマンドを入力するかを、入力レジスタ選択フラグ332に従って判断する。
ステートマシン選択フラグ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に供給する。
図10は、本技術の第2の実施の形態におけるレジスタ群312とコマンドとの関係例を示す図である。ここでは、プロセッサ100からコプロセッサ300にまとめて発行されるコマンド列の1つには、7つのコマンドが含まれることを想定している。第1のコマンド列の7つのコマンドはレジスタA1乃至A3に保持され、第2のコマンド列の7つのコマンドはレジスタB1乃至B3に保持される。
これらレジスタA1乃至A3およびB1乃至B3に保持されるコマンドの内容は、上述の第1の実施の形態と同様であるため、詳細な説明は省略する。
図11は、本技術の第2の実施の形態における制御部330の制御信号の一例を示す図である。制御部330が、バスインターフェース360との間に、信号線361、362、363および369を備える点は、上述の第1の実施の形態と同様である。一方、制御部330は、ステートマシン321との間に信号線325および326を備え、ステートマシン322との間に信号線327および328を備える。
信号線325は、ステートマシン321から制御部330に対して、データ転送部370および演算部380における処理状態を示すstate1信号を送信するための信号線である。信号線326は、ブレーク動作のための停止条件を満たした際に、制御部330からステートマシン321に対して処理の停止を指示するbreak1信号を送信するための信号線である。
信号線327は、ステートマシン322から制御部330に対して、データ転送部370および演算部380における処理状態を示すstate2信号を送信するための信号線である。信号線328は、ブレーク動作のための停止条件を満たした際に、制御部330からステートマシン322に対して処理の停止を指示するbreak2信号を送信するための信号線である。
制御部330は、ステートマシン321から供給されるstate1信号によって示される処理状態またはステートマシン322から供給されるstate2信号によって示される処理状態を監視する。break_en信号が有効を示しているときに、state1信号またはstate2信号の何れかが、break_state信号によって設定された停止条件を満たす場合に、ブレーク動作を行う。すなわち、制御部330は、ステートマシン321および322に対して処理の停止を指示するbreak1信号およびbreak2信号を送信するとともに、プロセッサ100に対してbreak_done信号を送信する。
コマンド列の処理の停止中に、デバッグ作業としてハードウェア内部ステータスやローカルメモリの値などが採取される。その後、処理を再開するために、プロセッサ100は制御部330にブレーク動作を解除するrelease信号を送信する。これにより、制御部330は、ステートマシン321および322に対するbreak信号を解除する。
図12は、本技術の第2の実施の形態における複数のコマンド列間のブレーク連動の例を示す図である。この例では、先行するコマンド列1におけるCalcOperationと、後続のコマンド列2におけるDmaMainToLocalとが、並行して処理されていることを想定している。
先行するコマンド列1におけるCalcOperation#1の終了時点でブレークポイントが設定されていた場合、そのCalcOperation#1が終了すると、停止条件が検出されて、コマンド列1の実行が停止する。このとき、後続のコマンド列2におけるDmaMainToLocal#1が処理されているとすると、このDmaMainToLocal#1が終了時点で、コマンド列2の実行も停止する。すなわち、あるコマンド列においてブレーク状態が発生すると、それ以外のコマンド列もブレーク状態になる。その際、ブレーク状態が発生したタイミングで処理中のコマンドはそのまま処理され、それぞれのコマンドが終了した時点でそのコマンドが属するコマンド列の実行が停止する。
制御部330がrelease信号を受信すると、ブレーク状態の解除がステートマシン321および322に指示され、コマンド列の各々の実行が再開される。
[情報処理システムの動作]
図13は、本技術の第2の実施の形態における制御部330における処理手順例を示す流れ図である。
制御部330は、プロセッサ100から停止条件の設定が指示されると、停止条件を設定する(ステップS911)。コマンド列1の処理が開始すると、制御部330は、ステートマシン321および322から通知される処理状態を監視し、設定された停止条件を満たすか否かを判断する(ステップS913)。
そして、あるコマンド列において停止条件を満たすことを検出すると(ステップS913:Yes)、制御部330は、ステートマシン321および322のうち他のコマンド列に対応する方にブレーク状態の発生を通知する(ステップS914)。また、制御部330は、ステートマシン320にブレーク開始を指示する(ステップS915)。これにより、ブレーク状態となる。このとき、制御部330は、プロセッサ100にブレーク状態の発生を報告する(ステップS916)。
その後、制御部330は、プロセッサ100からリリース信号を受けると(ステップS917:Yes)、ブレーク状態を解除する旨をステートマシン321および322に指示する(ステップS918)。これにより、ブレーク状態が解除される。
停止条件が検出されない場合(ステップS913:No)、または、ブレーク状態が解除された場合(ステップS918)、コマンド列の実行が終了したか否かが判断される(ステップS919)。コマンド列の実行が終了すると(ステップS919:Yes)、この処理手順は終了する。コマンド列の実行が終了していない場合には(ステップS919:No)、ステップS913以降の処理を繰り返す。
このように、本技術の第2の実施の形態によれば、複数組のコマンド列が並行に実行されている際に何れかのコマンド列においてブレーク状態が発生すると、他のコマンド列においても連動して実行を停止して、コマンド単位でデバッグ作業を行うことができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)複数のコマンドを含むコマンド列を単位としてプロセッサから発行された各コマンドを各々のレジスタに保持するコマンドレジスタ群と、
前記コマンドレジスタ群から供給された前記コマンドを処理するコマンド処理部と、
前記コマンド処理部における前記コマンドの処理状態を管理するステートマシンと、
前記コマンド列において停止すべき条件を停止条件として予め設定して当該設定された停止条件と前記ステートマシンにおいて管理される前記処理状態とに基づいて前記コマンド処理部における処理を停止させる制御部と
を具備する演算処理装置。
(2)前記制御部は、前記コマンド列における全てのコマンドの処理の終了を待つことなく前記停止条件を満たすコマンドの処理が終了した時点で前記コマンド処理部における処理を停止させる
前記(1)に記載の演算処理装置。
(3)前記制御部は、前記停止条件として前記コマンド処理部における複数の前記処理状態を設定する
前記(1)または(2)に記載の演算処理装置。
(4)前記制御部は、前記プロセッサから処理停止の解除命令を受けると前記コマンド処理部における処理を再開させる
前記(1)から(3)のいずれかに記載の演算処理装置。
(5)前記ステートマシンは、前記コマンド列に対応して予め定められたコマンド数に従って前記処理状態を遷移させて前記処理状態を管理する
前記(1)から(4)のいずれかに記載の演算処理装置。
(6)前記コマンドレジスタ群は、複数のサブレジスタ群を備え、
前記制御部は、前記プロセッサから複数の前記コマンド列を受けた際に前記複数のサブレジスタ群毎に異なる前記コマンド列が保持されるように制御する
前記(1)から(5)のいずれかに記載の演算処理装置。
(7)前記ステートマシンは、前記異なるコマンド列に対応してそれぞれ固有の前記処理状態を管理する
前記(6)に記載の演算処理装置。
(8)前記制御部は、複数の前記コマンド列の一つにおいて前記停止条件を満たす場合には他の前記コマンド列においても前記コマンド処理部における処理を停止させる
前記(6)または(7)に記載の演算処理装置。
(9)前記制御部は、複数の前記コマンド列の一つにおいて前記停止条件を満たす場合には他の前記コマンド列において処理されているコマンドの処理が終了した時点で前記コマンド処理部における処理を停止させる
前記(6)から(8)のいずれかに記載の演算処理装置。
(10)複数のコマンドを含むコマンド列を単位として前記コマンドを発行するプロセッサと、
前記プロセッサから発行された前記コマンドを各々のレジスタに保持するコマンドレジスタ群と、
前記コマンドレジスタ群から供給された前記コマンドを処理するコマンド処理部と、
前記コマンド処理部における前記コマンドの処理状態を管理するステートマシンと、
前記コマンド列において停止すべき条件を停止条件として予め設定して当該設定された停止条件と前記ステートマシンにおいて管理される前記処理状態とに基づいて前記コマンド処理部における処理を停止させる制御部と
を具備する情報処理システム。
100 プロセッサ
101 コントロールバス
102 メモリバス
200 共有メモリ
300 コプロセッサ
301 コマンドバッファ
310 コマンド保持部
311 スイッチ
312 レジスタ群
313 セレクタ
320、321、322 ステートマシン
330 制御部
332 入力レジスタ選択フラグ
333 ステートマシン選択フラグ
334 スイッチ
335 反転部
360 バスインターフェース
370 データ転送部
380 演算部
390 専有メモリ

Claims (10)

  1. 複数のコマンドを含むコマンド列を単位としてプロセッサから発行された各コマンドを各々のレジスタに保持するコマンドレジスタ群と、
    前記コマンドレジスタ群から供給された前記コマンドを処理するコマンド処理部と、
    前記コマンド処理部における前記コマンドの処理状態を管理するステートマシンと、
    前記コマンド列において停止すべき条件を停止条件として予め設定して当該設定された停止条件と前記ステートマシンにおいて管理される前記処理状態とに基づいて前記コマンド処理部における処理を停止させる制御部と
    を具備する演算処理装置。
  2. 前記制御部は、前記コマンド列における全てのコマンドの処理の終了を待つことなく前記停止条件を満たすコマンドの処理が終了した時点で前記コマンド処理部における処理を停止させる
    請求項1記載の演算処理装置。
  3. 前記制御部は、前記停止条件として前記コマンド処理部における複数の前記処理状態を設定する
    請求項1記載の演算処理装置。
  4. 前記制御部は、前記プロセッサから処理停止の解除命令を受けると前記コマンド処理部における処理を再開させる
    請求項1記載の演算処理装置。
  5. 前記ステートマシンは、前記コマンド列に対応して予め定められたコマンド数に従って前記処理状態を遷移させて前記処理状態を管理する
    請求項1記載の演算処理装置。
  6. 前記コマンドレジスタ群は、複数のサブレジスタ群を備え、
    前記制御部は、前記プロセッサから複数の前記コマンド列を受けた際に前記複数のサブレジスタ群毎に異なる前記コマンド列が保持されるように制御する
    請求項1記載の演算処理装置。
  7. 前記ステートマシンは、前記異なるコマンド列に対応してそれぞれ固有の前記処理状態を管理する
    請求項6記載の演算処理装置。
  8. 前記制御部は、複数の前記コマンド列の一つにおいて前記停止条件を満たす場合には他の前記コマンド列においても前記コマンド処理部における処理を停止させる
    請求項6記載の演算処理装置。
  9. 前記制御部は、複数の前記コマンド列の一つにおいて前記停止条件を満たす場合には他の前記コマンド列において処理されているコマンドの処理が終了した時点で前記コマンド処理部における処理を停止させる
    請求項6記載の演算処理装置。
  10. 複数のコマンドを含むコマンド列を単位として前記コマンドを発行するプロセッサと、
    前記プロセッサから発行された前記コマンドを各々のレジスタに保持するコマンドレジスタ群と、
    前記コマンドレジスタ群から供給された前記コマンドを処理するコマンド処理部と、
    前記コマンド処理部における前記コマンドの処理状態を管理するステートマシンと、
    前記コマンド列において停止すべき条件を停止条件として予め設定して当該設定された停止条件と前記ステートマシンにおいて管理される前記処理状態とに基づいて前記コマンド処理部における処理を停止させる制御部と
    を具備する情報処理システム。
JP2017011863A 2017-01-26 2017-01-26 演算処理装置および情報処理システム Pending JP2018120449A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017011863A JP2018120449A (ja) 2017-01-26 2017-01-26 演算処理装置および情報処理システム
PCT/JP2017/044910 WO2018139097A1 (ja) 2017-01-26 2017-12-14 演算処理装置および情報処理システム
CN201780084135.2A CN110199264B (zh) 2017-01-26 2017-12-14 算术处理设备和信息处理系统
DE112017006929.7T DE112017006929T5 (de) 2017-01-26 2017-12-14 Rechenverarbeitungsvorrichtung und Datenverarbeitungssystem
US16/478,292 US11080167B2 (en) 2017-01-26 2017-12-14 Arithmetic processing apparatus and information processing system

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=62978226

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US11080167B2 (ja)
JP (1) JP2018120449A (ja)
CN (1) CN110199264B (ja)
DE (1) DE112017006929T5 (ja)
WO (1) WO2018139097A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7202225B2 (ja) * 2019-03-12 2023-01-11 ローム株式会社 半導体装置及びデバッグシステム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704895B1 (en) * 1987-06-02 2004-03-09 Texas Instruments Incorporated Integrated circuit with emulation register in JTAG JAP
US6807609B1 (en) * 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
US5828824A (en) * 1996-12-16 1998-10-27 Texas Instruments Incorporated Method for debugging an integrated circuit using extended operating modes
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6446173B1 (en) * 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
JP3530360B2 (ja) * 1997-10-27 2004-05-24 株式会社ルネサステクノロジ データ処理装置及びデータ処理システム
JP4187371B2 (ja) * 1999-11-30 2008-11-26 富士通株式会社 割込制御装置および方法
US6681280B1 (en) 1998-10-29 2004-01-20 Fujitsu Limited Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
US6330623B1 (en) * 1999-01-08 2001-12-11 Vlsi Technology, Inc. System and method for maximizing DMA transfers of arbitrarily aligned data
US6564339B1 (en) * 1999-02-19 2003-05-13 Texas Instruments Incorporated Emulation suspension mode handling multiple stops and starts
US6557116B1 (en) * 1999-02-19 2003-04-29 Texas Instruments Incorporated Emulation suspension mode with frame controlled resource access
US6553513B1 (en) * 1999-02-19 2003-04-22 Texas Instruments Incorporated Emulation suspend mode with differing response to differing classes of interrupts
US6567933B1 (en) * 1999-02-19 2003-05-20 Texas Instruments Incorporated Emulation suspension mode with stop mode extension
US7076420B1 (en) * 2000-10-26 2006-07-11 Cypress Semiconductor Corp. Emulator chip/board architecture and interface
JP2002304310A (ja) * 2001-04-06 2002-10-18 Fujitsu Ltd 半導体集積回路
US6978350B2 (en) * 2001-08-29 2005-12-20 Analog Devices, Inc. Methods and apparatus for improving throughput of cache-based embedded processors
JP3878508B2 (ja) 2001-11-08 2007-02-07 松下電器産業株式会社 回路群制御システム
US20030120970A1 (en) * 2001-12-24 2003-06-26 Chih-Yung Chen Method and apparatus for debugging an electronic product using an internal I/O port
US7549594B2 (en) * 2003-11-12 2009-06-23 Panasonic Corporation Electronic device having plurality of functional units and controller for controlling registers according to status of functional units
US7343476B2 (en) * 2005-02-10 2008-03-11 International Business Machines Corporation Intelligent SMT thread hang detect taking into account shared resource contention/blocking
US7565511B2 (en) * 2006-03-13 2009-07-21 Sun Microsystems, Inc. Working register file entries with instruction based lifetime
JP4382833B2 (ja) * 2007-04-23 2009-12-16 日本テキサス・インスツルメンツ株式会社 プロセッサ
JP2011034189A (ja) * 2009-07-30 2011-02-17 Renesas Electronics Corp ストリームプロセッサ及びそのタスク管理方法
JP5655733B2 (ja) * 2011-07-21 2015-01-21 サンケン電気株式会社 演算処理装置およびマイクロコンピュータ
US9720858B2 (en) * 2012-12-19 2017-08-01 Nvidia Corporation Technique for performing memory access operations via texture hardware
JP6148991B2 (ja) * 2014-01-31 2017-06-14 東京エレクトロン株式会社 基板処理装置、編集方法及び記憶媒体
US10061780B2 (en) * 2014-04-28 2018-08-28 Bank Of America Corporation Information management command process device
US11210100B2 (en) * 2019-01-08 2021-12-28 Apple Inc. Coprocessor operation bundling

Also Published As

Publication number Publication date
CN110199264A (zh) 2019-09-03
US20190361796A1 (en) 2019-11-28
US11080167B2 (en) 2021-08-03
WO2018139097A1 (ja) 2018-08-02
DE112017006929T5 (de) 2019-10-02
CN110199264B (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
KR101148495B1 (ko) 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치
JP5419103B2 (ja) デバッグイベントを監視するためのシステム及び方法
CN104317791B (zh) 汇聚和散布多个数据元素
TWI521429B (zh) 運算元大小控制
US6959367B2 (en) System having read-modify-write unit
JP2008210107A (ja) シミュレーション方法及びシミュレーション装置
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
JP2006018413A (ja) プロセッサおよびパイプライン再構成制御方法
WO2018139097A1 (ja) 演算処理装置および情報処理システム
JP6744806B2 (ja) マルチプロセッサ
US10437603B2 (en) Super-thread processor
CN114902181A (zh) Gpu包聚合系统
JP5404294B2 (ja) データ演算装置の制御回路及びデータ演算装置
WO2018138975A1 (ja) 演算処理装置および情報処理システム
JP7026107B2 (ja) 処理回路素子に対するトリガ信号のアサーションを制御する装置及び方法
TWI739853B (zh) 運算裝置與運作方法
JP2010272066A (ja) ヘテロジニアスマルチコアプロセッサ
JP6381019B2 (ja) 情報処理装置及び制御方法
JP2014238832A (ja) 少なくとも1つの処理パイプラインにおけるオペランド生成
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
JP5850732B2 (ja) 半導体装置及びその制御方法
KR20140111416A (ko) 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법
US20240281255A1 (en) Super-thread processor
CN108572881A (zh) 一种在运算器中校验数据的方法
JP2010072888A (ja) Dma転送制御システム