JP5843801B2 - 情報処理装置およびデバッグ方法 - Google Patents

情報処理装置およびデバッグ方法 Download PDF

Info

Publication number
JP5843801B2
JP5843801B2 JP2013056313A JP2013056313A JP5843801B2 JP 5843801 B2 JP5843801 B2 JP 5843801B2 JP 2013056313 A JP2013056313 A JP 2013056313A JP 2013056313 A JP2013056313 A JP 2013056313A JP 5843801 B2 JP5843801 B2 JP 5843801B2
Authority
JP
Japan
Prior art keywords
data
core
memory
cache
read
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.)
Expired - Fee Related
Application number
JP2013056313A
Other languages
English (en)
Other versions
JP2014182562A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013056313A priority Critical patent/JP5843801B2/ja
Priority to US14/195,016 priority patent/US9223680B2/en
Publication of JP2014182562A publication Critical patent/JP2014182562A/ja
Application granted granted Critical
Publication of JP5843801B2 publication Critical patent/JP5843801B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • 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/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の実施形態は、情報処理装置およびデバッグ方法に関する。
ソフトウェア開発時のデバッグ作業において、プログラムの指定箇所に到達した時点で実行をストップさせる機能が良く用いられる。この指定箇所は、ブレークポイントと呼ばれる。ブレークポイントは、ハードウェアで実装される場合(ハードウェアブレークポイント)と、ソフトウェアで実装される場合(ソフトウェアブレークポイント)とがある。
特開2004−103024号公報 特開平8−305607号公報
ハードウェアブレークポイントによれば、コア毎に個別のブレークポイントを設定することが可能であるが、設定可能な数が限られる。一方、ソフトウェアブレークポイントは、指定箇所の命令を実行をストップさせる特別な命令に置き換えることで実現される。しかしながら、ソフトウェアブレークポイントによれば、メモリ上の命令が書き換えられる。したがって、ソフトウェアの実行対象の情報処理装置が複数のプロセッサコア(以降、コア)を有し、かつ、それらのコアがメモリ空間を共有している場合、どのコアが該当の命令を実行しても、ソフトウェアの実行がストップされる。即ち、ソフトウェアブレークポイントによれば、該当の命令をブレークポイントの対象とするか否かをコア毎に切り替えることができない。
本発明の一つの実施形態は、ソフトウェアブレークポイントの対象をコアごとに設定することが可能な情報処理装置およびデバッグ方法を提供することを目的とする。
本発明の一つの実施形態によれば、情報処理装置は、メモリと、キャッシュデータメモリを備えるキャッシュシステムと、前記メモリおよびキャッシュデータメモリを共有する複数のコアと、を備える。前記キャッシュシステムは、デバッガが、コアを指定するブレーク指示子を前記キャッシュデータメモリのラインに格納可能である。また、前記キャッシュシステムは、リード要求されたアドレスに対応するラインに前記ブレーク指示子が格納されている場合には、要求元のコアと前記ブレーク指示子が指定するコアとが一致するか否かを判定し、双方が一致するとき、前記要求元のコアにブレーク命令を返し、双方が一致しないとき、前記リード要求されたデータを返す。
図1は、本発明の第1の実施形態の情報処理装置の構成を示す図である。 図2は、共有キャッシュの内部構成を示す図である。 図3は、キャッシュタグメモリのフォーマットを示す図である。 図4は、キャッシュデータメモリのフォーマットを説明するための図である。 図5は、キャッシュデータメモリのフォーマットを説明するための図である。 図6は、キャッシュデータメモリのフォーマットを説明するための図である。 図7は、第1の実施形態のタグリード・比較部の内部構成を示す図である。 図8は、第1の実施形態のチェック・選択部の動作を説明するフローチャートである。 図9は、データアクセス部の内部構成を示す図である。 図10は、第1の実施形態のディストリビュータの内部構成を示す図である。 図11は、マスク情報生成部の内部構成を示す図である。 図12は、データバッファの構成を示す図である。 図13は、デバッグ命令生成部の内部構成を示す図である。 図14は、第2の実施形態のチェック・選択部の動作を説明するフローチャートである。 図15は、第2の実施形態のディストリビュータの内部構成を示す図である。
以下に添付図面を参照して、実施形態にかかる情報処理装置およびデバッグ方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態の情報処理装置の構成図である。情報処理装置1は、マルチコアプロセッサ100と、共有キャッシュ(キャッシュシステム)101と、メモリ102とを備えている。情報処理装置1は、例えば、撮像装置または携帯電話等に実装される組み込みコンピュータに該当する。情報処理装置1は、ひとつのチップにより実現されてもよいし、複数のチップにより実現されてもよい。
マルチコアプロセッサ100は、複数のコアを備えている。図1のマルチコアプロセッサ100は、4つのコア#0〜#3を備えている。共有キャッシュ101は、メモリ102に接続されている。コア#0〜コア#3は、夫々共有キャッシュ101に接続され、メモリ空間を共有する。
コア#0〜#3は、情報処理装置1の外部から、デバッガ2が接続される。デバッガ2は、コア#0〜#3を介して共有キャッシュ101およびメモリ102にアクセスすることが可能である。デバッガ2は、例えば、情報処理装置1に接続するためのインタフェース装置と当該インタフェース装置を利用することができるデバッグプログラムを実行するパーソナルコンピュータとの協働により実現される。
図2は、共有キャッシュ101の内部構成図である。共有キャッシュ101は、アービタ110と、タグリード・比較部111と、キャッシュタグメモリ112と、データアクセス部113と、キャッシュデータメモリ114と、リフィル・ライトバック部115とを備えている。コア#0〜#3からのアクセスリクエストはアービタ110に入力される。アービタは、入力されたアクセスリクエストのうちの1つを選択し、選択したアクセスリクエストが備えるアドレス(アクセス先のアドレス)をタグリード・比較部111に入力する。タグリード・比較部111は、キャッシュタグメモリ112を参照し、参照結果とリクエストされたアドレスとを用いてキャッシュミス/キャッシュヒットを判定する。タグリード・比較部111は、キャッシュヒット時には、データアクセス部113を介してキャッシュデータメモリ114にアクセスする。キャッシュミス時には、リフィル・ライトバック部がメモリ102に対してアクセスを行う。なお、第1の実施形態においては、キャッシュメモリ114は複数のwayを有し、共有キャッシュ101は複数のwayを管理する。
なお、実施形態では、コア#0〜#3はリードを要求するアクセスリクエスト(リードリクエスト)を出力する場合について説明する。
図3は、キャッシュタグメモリ112のフォーマットを示す図である。本発明の実施形態によれば、キャッシュタグメモリ112には、キャッシュライン毎に、タグデータ(Tag)と、キャッシュラインが書き換え済みであるか否かを示すフラグ(Dirty:D)と、キャッシュラインが有効かどうかを示すフラグ(Valid:V)と、ソフトウェアブレークポイントが設定されているか否かを示すフラグ(Debug:Db)とが記録される。なお、WriteThrough方式のキャッシュが採用される場合には、Dフラグはキャッシュタグメモリ112に具備されない。
図4〜図6は、本発明の実施形態のキャッシュデータメモリ114のフォーマットを説明するための図である。ここでは、キャッシュデータメモリ114には、4つの命令(単位データ)からなる命令列がキャッシュライン毎に格納されるものとする。キャッシュデータメモリ114は、ライン幅が128bitであり、4つのwayを有し、4MBのサイズを有する具備するものとする。また、個々の命令は32bitのサイズを有し、1つの命令列は128bitのサイズを有するものとする。図4は、キャッシュデータメモリ114に格納される通常の命令列の例を示している。図4の命令列300は、MOV(データ移動)、MUL(乗算)、SUB(減算)、およびADD(加算)の4つの命令をこの順番で有している。
共有キャッシュ101は、デバッガ2によってブレーク指示子をキャッシュデータメモリ114のキャッシュラインに格納可能である。ブレーク指示子は、ブレークポイントの対象とするコアを指定する。また、共有キャッシュ101は、デバッガ2によって、キャッシュタグメモリ112にDbフラグが設定可能である。プログラマは、ブレークポイントを設定する際には、ブレークポイントの対象の命令列300が格納されているアドレスに対応するキャッシュラインにブレーク指示子を格納するとともに、対応するタグデータのDbフラグに「1」をセットする。
図5は、ブレーク指示子の例を示す図である。ブレーク指示子列301は、夫々32bitのサイズを有する4つのブレーク指示子302を備えている。ブレーク指示子302は、配列の順番に応じて、命令列300が備える命令に夫々対応する。即ち、ブレーク指示子302は、その格納されている位置により、1つのキャッシュラインに格納されている複数の命令のうちのブレークポイントの対象命令を指定する。
また、ブレーク指示子302は、ブレークポイントの対象とするコアを指定する。ここでは、ブレーク指示子302は、LSB(least significant bit)からのビット数でブレークポイントの対象コアの番号を示すこととする。即ち、コア#0が対象である場合には、ブレーク指示子302はLSBに「1」の値を有し、コア#nが対象である場合には、ブレーク指示子302はLSBからnビット目に「1」の値を有する。どのコアも対象では無い場合には、ブレーク指示子302は全て「0」の値を有する。図5のブレーク指示子列301は、先頭から三番目の命令についてコア#1をブレークポイントの対象とすることを示している。
共有キャッシュ101は、ブレークポイントの対象のコアからリード要求されたアドレスに対応するキャッシュラインにブレーク指示子列301が格納されている場合には、ブレーク指示子列301とリード要求された命令列300とに基づいて、BREAK(デバッグ割り込みを発生させる命令)を含む命令列を生成する。図6は、BREAKを含む命令列を示す図である。図6の命令列303には、3番目のフィールドにBREAKが格納され、その他のフィールドには図4に示した命令列300と同様の命令が格納されている。なお、以降、BREAKを含まない通常の命令列を第1の命令列300、BREAKを含む命令列を第2の命令列303と表記することとする。
図7は、第1の実施形態のタグリード・比較部111の内部構成図である。タグリード・比較部111は、バッファ120と、バッファ121と、比較部122と、チェック・選択部123とを備えている。バッファ120は、アービタ110からのアドレスを格納する。バッファ121は、アドレスに含まれるタグメモリアクセスアドレス(入力されたアドレスの下位桁)を用いてキャッシュタグメモリ112から読み出した4way分のタグデータ(Tag)をway毎に格納する。比較部122は、バッファ120に格納されたアドレスの上位桁とバッファ121に格納されたway毎のタグデータとを比較して、キャッシュヒット/ミスの判定を行う。判定結果はチェック・選択部123に入力される。チェック・選択部123は、何れか1つのwayにてキャッシュヒットした場合には、キャッシュヒットしたway番号を指定したデータメモリリクエストをデータアクセス部113に出力する。全てのwayにおいてキャッシュミスした場合には、チェック・選択部123は、所定のルールに基づいてリフィル対象のwayを選択し、選択したway番号の指定を含むリフィル/ライトバックリクエストをリフィル・ライトバック部115に出力する。なお、全てのwayにおいてキャッシュミスした場合には、チェック・選択部123は、Dbフラグが「1」となっているwayは選択しないものとする。また、チェック・選択部123は、Dbフラグが「1」の場合には、リフィルリクエストをリフィル・ライトバック部115に出力する。なお、Dbフラグが「1」の場合に出力されるリフィルリクエストを、デバッグリフィルリクエストと表記する。
図8は、第1の実施形態のチェック・選択部123の動作を説明するフローチャートである。
まず、チェック・選択部123は、ループインデックスNの値を「0」で初期化する(S1)。そして、チェック・選択部123は、wayNから読み出されたタグデータがバッファ120に格納されたアドレスの上位桁と一致し、かつ、wayNのVフラグが「1(有効)」であるか否かを判定する(S2)。S2がNoの場合、チェック・選択部123は、Nの値がway数から1減算された値よりも小さいか否かを判定する(S3)。S3がNoの場合、チェック・選択部123は、Nの値を1インクリメントし(S4)、S2の判定処理を再び実行する。S3がYesの場合、チェック・選択部123は、リフィル/ライトバックリクエストをリフィル・ライトバック部115に出力し(S5)、動作を終了する。なお、リフィル/ライトバックリクエストは、ライトバック対象wayの指定および要求元のコアを特定するコア番号を含む。
S2がYesの場合、チェック・選択部123は、wayNのDbフラグが「1」であるか否かを判定する(S6)。wayNのDbフラグが「0」である場合(S6、No)、チェック・選択部123は、対応するキャッシュラインに対して通常のリードを行うためのデータメモリリクエストをデータアクセス部113に出力し(S7)、動作を終了する。なお、データメモリリクエストは、wayNの指定および要求元のコアを特定するコア番号を含む。
wayNのDbフラグが「1」である場合(S6、Yes)、チェック・選択部123は、wayNのキャッシュラインに対応するリフィルデータをメモリ102から読み出すためのデバッグリフィルリクエストをリフィル・ライトバック部115に出力する(S8)。ここで、デバッグリフィルリクエストは、要求元のコアを特定するコア番号を含む。
S8に続いて、チェック・選択部123は、キャッシュデータメモリ114の対応するキャッシュラインに格納されているブレーク指示子列301を読み出すためのデータメモリリクエストをデータアクセス部113に出力し(S9)、動作を終了する。
以降、ブレーク指示子列301を読み出す動作をデバッグリードと表記することがある。また、命令列300をキャッシュデータメモリ114から読み出す動作をノーマルリードと表記することがある。また、デバッグリードおよびノーマルリードを総称して、データメモリリードと表記することがある。なお、ノーマルリードおよびデバッグリードのためのデータメモリリクエストとは、フォーマット上の差異があってもよいし、なくてもよい。
リフィル・ライトバック部115は、リフィル/ライトバックリクエストを受信した場合には、データアクセス部113を介して読み出したライトバックデータをメモリ102に書き込む。その後、リフィル・ライトバック部115は、メモリ102から読み出したリフィルデータをデータアクセス部113を介してキャッシュデータメモリ114に書き込む。また、デバッグリフィルリクエストを受信した場合には、リフィル・ライトバック部115は、メモリ102から読み出したリフィルデータをデータアクセス部113に渡す。デバッグリフィルリクエストに応じて読み出されたリフィルデータは、デバッグリードにより読み出された第1の命令列300とともに、データアクセス部113において第2の命令列303の生成に用いられる。なお、リフィル・ライトバック部115は、リフィルデータをデータアクセス部113に送る際には、リフィルデータとともに要求元のコアを特定するコア番号を送る。
図9は、データアクセス部113の内部構成図である。データアクセス部113は、アービタ130と、ディストリビュータ131とを備えている。
アービタ130は、タグリード・比較部111からノーマルリードおよびデバッグリードのためのデータメモリリクエストを受信する。また、アービタ130は、ライトバックデータを読み出すリクエストをリフィル・ライトバック部115から受信する。また、アービタ130は、リフィルデータをリフィル・ライトバック部115から受信する。アービタ130は、受信した内容を調停して1つ選択し、選択した内容に応じたアクセスをキャッシュデータメモリ114に対して実行する。なお、アービタ130は、リフィル/ライトバックリクエストに応じたリフィルデータをキャッシュデータメモリ114に書き込み、デバッグリフィルリクエストに応じたリフィルデータをキャッシュデータメモリ114に書き込まない。リフィルデータがリフィル/ライトバックリクエストに応じたものかデバッグリフィルリクエストに応じたものかをアービタ130が判断する機構は、特定の機構に限定されない。
データメモリリードによってキャッシュデータメモリ114から読み出されたデータ(以降、リードデータ)は、ディストリビュータ131に入力される。なお、リードデータは、実データ(ここでは第1の命令列300またはブレーク指示子列301)のほかに、コア番号、VフラグおよびDbフラグを含む。また、リフィル/ライトバックリクエストまたはデバッグリフィルリクエストに応じたリフィルデータは、ディストリビュータ131にも入力される。
図10は、第1の実施形態のディストリビュータ131の内部構成図である。ディストリビュータ131は、マスク情報生成部140と、デバッグ命令生成部141と、第1の選択部142と、第2の選択部143と、データバッファ144とを備えている。
リードデータは、第1の選択部142およびマスク情報生成部140に入力される。マスク情報生成部140は、入力されたリードデータに基づいてマスク情報を生成する。マスク情報生成部140は、生成したマスク情報を第1の選択部142に入力する。リードデータのDbフラグの値は、選択部142において選択信号として使用される。第1の選択部142は、Dbフラグが「0(N)」である場合には、リードデータを選択し、Dbフラグが「1(Y)」である場合には、マスク情報を選択する。そして、第1の選択部142は、選択した内容をデータバッファ144に出力する。
図11は、マスク情報生成部140の内部構成図である。なお、マスク情報生成部140の出力は、マスク情報生成部140にブレーク指示子列301が入力されたときのみ、第1の選択部142により選択される。ここでは、4つのマスク情報生成部140にブレーク指示子列301が入力される場合について説明する。夫々のマスク情報生成部140は、ブレーク指示子列301のうちの32*Nbit目から32*(N+1)bit目までを処理するものとする。ただし、Nは0から3までの整数である。すなわち、1〜32bit、33〜64bit、65〜95bit、96〜128bit目のデータが、4つのマスク情報生成部140で並列に処理される。夫々のマスタ情報生成部140によって処理されたデータは、元のブレーク指示子列301に応じた順番で結合され、第1の選択部142に入力される。
マスク情報生成部140は、判定部150と、第3の選択部151とを備えている。判定部150は、各々のブレーク指示子302が要求元のコアを指定しているか否かを判定する。ここでは、ブレーク指示子302は32bitのサイズを有するので、判定部150は、ブレーク指示子列301の先頭から32bitずつデータを取得する。そして、判定部150は、取得したデータのうちのリードデータに含まれるコア番号に対応する位置の値によって、そのブレーク指示子302が要求元のコアを指定しているか否かを判定する。
ブレーク指示子302毎の判定結果は第3の選択部151の選択信号として用いられる。ブレーク指示子302が要求元のコアを指定している場合、第3の選択部151は「0xffffffff」を選択する。ブレーク指示子302が要求元のコアを指定していない場合、第3の選択部151は「0x00000000」を選択して、出力する。例えば、図5に示すブレーク指示子列301から生成されるマスク情報は、要求元のコアがコア1である場合、0x00000000,0x00000000,0xffffffff,0x00000000となり、また、要求元のコアがコア1以外のコアである場合、0x00000000,0x00000000,0x00000000,0x00000000となる。
図12は、データバッファ144の構成図である。データバッファ144は、データ領域160と、Vフラグ領域161と、Dbフラグ領域162とを含む。データ領域160には、リードデータの第1の命令列300またはマスク情報が格納される。Vフラグ領域161には、データ領域160に格納されている値が有効であるか否かを示すVフラグが格納される。Dbフラグ領域162には、リードデータに含まれるDbフラグの値が格納される。Dbフラグが「1」である場合には、Vフラグに「0(無効)」がセットされ、Dbフラグが「0」である場合には、Vフラグに「1(有効)」がセットされる。Vフラグが有効である場合には、要求元のコアがデータ領域160に格納されているデータを読み出すことが可能であり、当該Vフラグが無効である場合には、要求元のコアが領域160に格納されているデータを読み出すことが不可能である。
リフィルデータは、第2の選択部143およびデバッグ命令生成部141に入力される。ここで、リフィルデータは、第1の命令列300の形式を有する。デバッグ命令生成部141は、リフィルデータを構成する命令のうちのブレーク指示子が指定する命令をBREAKに置き換えて出力する。換言すると、デバッグ命令生成部141は、リフィルデータをそのまま透過するかまたはデータバッファ144のマスク情報とリフィルデータを用いて第2の命令列303を生成する。デバッグ命令生成部141の出力は、第2の選択部143に入力される。選択部143は、データバッファ144に格納されているDbフラグの値を選択信号として使用する。選択部143は、Dbフラグが「0(N)」である場合には、リフィルデータを選択し、Dbフラグが「1(Y)」である場合には、デバッグ命令生成部141から入力された値(第1の命令列300または第2の命令列303)を選択する。そして、第2の選択部143は、選択した内容をデータバッファ144に出力する。
図13は、デバッグ命令生成部141の内部構成図である。なお、デバッグ命令生成部141の出力は、Dbフラグが「1」の場合(即ち、データ領域160にマスク情報が格納されている場合)においてのみ、第2の選択部143により選択される。ここでは、データ領域160にマスク情報が格納されているものとして説明する。また、4つのデバッグ命令生成部141がディストリビュータ131に具備され、夫々のデバッグ命令生成部141は、リフィルデータおよびマスク情報のうちの32*Nbit目から32*(N+1)bit目までを処理するものとする。ただし、Nは0から3までの整数である。夫々のデバッグ命令生成部141によって処理されて出力されたデータは、元のリフィルデータにおける位置に応じた順番で結合されて第2の選択部143に入力される。
デバッグ命令生成部141は、Not回路170と、第1のAnd回路171と、第2のAnd回路172と、Or回路173とを備えている。Not回路170および第2のAnd回路172には、データバッファ144のマスク情報が入力される。Not回路170は、マスク情報の否定を出力する。第1のAnd回路171は、リフィルデータとNot回路170の出力との論理積を出力する。即ち、マスク情報が0xffffffffである場合には、第1のAnd回路171は、0x00000000を出力する。また、マスク情報が0x00000000である場合には、第1のAnd回路171は、リフィルデータの命令をそのまま透過する。第2のAnd回路172は、BREAKとマスク情報との論理積を出力する。即ち、マスク情報が0xffffffffである場合には、第2のAnd回路172はBREAKを出力する。また、マスク情報が0x00000000である場合には、第2のAnd回路172は0x00000000を出力する。Or回路173は、第1のAnd回路171の出力と第2のAnd回路172の出力との論理和を出力する。即ち、Or回路173は、マスク情報が0xffffffffを含む場合には、第1の命令列300を構成する命令のうちの0xffffffffのマスク情報が示す命令をBREAKに置き換えた第2の命令列303を出力する。デバッグ命令生成部141は以上のように構成されるので、4つのデバッグ命令生成部141は協働して、マスク情報が0x00000000,0x00000000,0x00000000,0x00000000である場合には、第1の命令列300を透過する。
なお、データバッファ144は、第2の選択部143から入力されるデータ対するDbフラグを「0」にクリアし、Vフラグを「1(有効)」にセットする。
次に、ディストリビュータ131の動作について説明する。ノーマルリードに応じたリードデータは、Dbフラグが「0」であるので、第1の選択部142を透過してデータバッファ144に格納される。また、Dbフラグが「0」であるので、Vフラグには「1」がセットされる。Vフラグに「1」がセットされているため、要求元のコアがそのリードデータを読み出して実行することが可能となる。
リフィル/ライトバックリクエストに応じたリフィルデータは、Dbフラグが「0」であるので、第2の選択部143を透過してデータバッファ144に格納される。リフィルデータのDbフラグが「0」であるので、Dbフラグには「0」がセットされ、Vフラグには「1」がセットされる。Vフラグに「1」がセットされているため、要求元のコアがそのリフィルデータを読み出して実行することが可能となる。
デバッグリードに応じたリードデータは、マスク情報生成部140によりマスク情報に変換されてデータバッファ144に格納される。リードデータに含まれるDbフラグの値が「1」であるので、Vフラグには「0」がセットされる。Vフラグが「0」であるため、マスク情報は要求元のコアには読み出されない。その後、デバッグリフィルリクエストに応じたリフィルデータがディストリビュータ131に入力される。リフィルデータおよびデータバッファ144のマスク情報がデバッグ命令生成部141に入力され、デバッグ命令生成部141によりリフィルデータが透過されるかまたは第2の命令列303が生成される。なお、デバッグリードによるリードデータがデバッグリフィルリクエストに応じたリフィルデータよりも早くディストリビュータ131に入力されるのは、リフィルの動作にキャッシュデータメモリ114へのアクセスよりも時間がかかるメモリ102へのアクセスが含まれるためである。デバッグ命令生成部141から出力された第1の命令列300または第2の命令列303は、データバッファ144に格納される。その際に、出力された命令列はDbフラグが「0」にクリアされてVフラグに「1」がセットされるため、要求元のコアが格納された第1の命令列300または第2の命令列303を読み出して実行することが可能となる。
以上述べたように、ディストリビュータ131は、リードリクエストされたアドレスに対応するキャッシュラインにブレーク指示子302が格納されている場合には、マスク情報生成部140において、要求元のコアとブレーク指示子302が指定するコアとが一致するか否かを判定する。そして、ディストリビュータ131は、デバッグ命令生成部141において、要求元のコアとブレーク指示子302が指定するコアとが一致するとき、要求元のコアにBREAKを返し、双方が一致しないとき、リードリクエストされた命令を返す。その結果、第1の実施形態によれば、情報処理装置1は、Dbフラグを含むブレーク指示子302をキャッシュデータメモリ114に格納することにより、デバッガ2を介する入力操作に基づいて、要求元のコア毎に命令をBREAKに置き換える/置き換えないをハードウェア機構によって切り替えることができる。即ち、プログラマがソフトウェアブレークポイントの対象をコアごとに設定することが可能となる。
第1の実施形態によれば、情報処理装置1は、要求元のコアに応じて命令をBREAKに置き換える/置き換えないを情報処理装置1が切り替えるため、ブレークポイントの度にデバッガ2と情報処理装置1との間の通信を不要とすることができる。また、ブレークポイントの度に全コアが停止されることを不要とすることができる。
また、第1の実施形態によれば、情報処理装置1はブレークポイントの対象とするコア情報を、専用のハードウェアではなく、キャッシュデータメモリ114に記憶している。キャッシュデータメモリ114は、ヒット率を向上させるために多くのキャッシュラインを備えて構成されるため、一度に設定できるブレークポイントの数が多い。また、共有キャッシュ101のメモリ構成は、第1の実施形態が適用される場合にキャッシュタグメモリ112にDbフラグが追加されるだけであるので、共有キャッシュ101内のメモリの面積の増加は小さくて済む。
また、第1の実施形態によれば、ディストリビュータ131は、デバッグ命令生成部141において、複数の命令を有する第1の命令列300を、ブレーク指示子302が指定する命令をBREAKに置き換えて第2の命令列303を生成する。そして、ディストリビュータ131は、生成した第2の命令列303を要求元のコアに返す。その結果、1つのキャッシュラインに複数の命令が格納される場合であっても、所望の命令にブレークポイントを設定することが可能となる。なお、第1の実施形態では、キャッシュラインに複数の命令が格納される場合について説明したが、キャッシュラインに格納されるデータは命令だけに限定されない。キャッシュラインに、命令以外の単位サイズのデータが複数格納されるようにしてもよい。
また、第1の実施形態によれば、チェック・選択部123は、Dbフラグに応じて第1の命令列300をメモリ102から取得するか否かを判定する。その結果、情報処理装置1は、キャッシュタグメモリ112を参照する段階でメモリ102から第1の命令列300を取得するか否かを決定することができるので、キャッシュデータメモリ114を参照してからメモリ102から第1の命令列300を取得する場合に比べて動作が高速になる。
(第2の実施形態)
第1の実施形態は、ブレークポイントの対象となる命令列を、リフィルの動作によりメモリから読み出す。これに対し、第2の実施形態は、ブレークポイントの対象となる命令列がキャッシュされている場合に、当該命令列が格納されているwayとは異なるwayに当該命令列をブレークポイントの対象に指定するブレーク指示子列を格納する。これにより、ブレークポイントの対象となる命令列をメモリではなくキャッシュデータメモリから取得することが可能となるので、コアがアクセスリクエストを発行してから当該コアにBREAKを返すまでの時間が第1の実施形態よりも短縮される。
第2の実施形態の情報処理装置について説明する。第2の実施形態の情報処理装置は、チェック・選択部およびディストリビュータの機能が第1の実施形態と異なる。ここでは、チェック・選択部およびディストリビュータについてのみ説明し、重複する説明を省略する。なお、第2の実施形態のチェック・選択部およびディストリビュータに、夫々、符号124、符号132を付して、第1の実施形態の構成要素と区別する。
共有キャッシュ101は、同一のアドレスに対応するキャッシュラインであってブレーク指示子列301が格納されるキャッシュラインおよび命令列300が格納されるキャッシュラインを夫々異なるwayに格納可能である。したがって、プログラマは、ブレークポイントを設定する際に、ブレークポイントの対象の命令列300が格納されているアドレスに対応するキャッシュラインがキャッシュデータメモリ114に存在する場合には、そのキャッシュラインとは異なるwayのキャッシュラインに、ブレーク指示子列301を格納することができる。ブレークポイントの対象の命令列300が格納されているアドレスに対応するタグデータは、実際の命令列300がキャッシュされているキャッシュラインに対応するものと、ブレーク指示子列301が格納されているキャッシュラインに対応するものとが存在する。プログラマは、ブレーク指示子列301が格納されているキャッシュラインに対応するタグデータのDbフラグに「1」をセットする。
このため、チェック・選択部124は、Dbフラグが「1」となっているタグデータについてキャッシュヒットすると同時に、Dbフラグが「0」となっているタグデータについてキャッシュヒットする場合がある。Dbフラグが「1」または「0」となっているタグデータの両方においてキャッシュヒットした場合には、チェック・選択部124は、双方のキャッシュラインからデータ(1つはブレーク指示子列301であり、1つはリードリクエストされた第1の命令列300)を取得するために、データメモリリクエストを2回出力する。
図14は、第2の実施形態のチェック・選択部124の動作を説明するフローチャートである。
まず、チェック・選択部124は、ループインデックスNの値を「0」で初期化する(S11)。そして、チェック・選択部124は、wayNから読み出されたタグデータがバッファ120に格納されたアドレスの上位桁と一致し、かつ、wayNのVフラグが「1(有効)」であって、かつ、wayNのDbフラグが「0」であるか否かを判定する(S12)。S12がNoの場合、チェック・選択部124は、Nの値がway数から1減算された値よりも小さいか否かを判定する(S13)。S13がNoの場合、チェック・選択部124は、Nの値を1インクリメントし(S14)、ステップS12の判定処理を再び実行する。
S12がYesの場合、チェック・選択部124は、変数Hitに「1」をセットし、変数Hwayにその時点のループインデックスNの値をセットする(S15)。そして、チェック・選択部124は、ループインデックスNの値を「0」で初期化する(S16)。S13がYesの場合、チェック・選択部124は、変数Hitに「0」をセットし(S17)、S16の処理を実行する。
S16の処理の後、チェック・選択部124は、wayNから読み出されたタグデータがバッファ120に格納されたアドレスの上位桁と一致し、かつ、wayNのVフラグが「1(有効)」であって、かつ、wayNのDbフラグが「1」であるか否かを判定する(S18)。S18がNoの場合、チェック・選択部124は、Nの値がwayの数から1減算された値よりも小さいか否かを判定する(S19)。
S19がNoの場合、チェック・選択部124は、Nの値を1インクリメントし(S20)、ステップS18の判定処理を再び実行する。一方、S19がYesの場合、チェック・選択部124は、変数Hitが「1」であるか否かを判定する(S21)。変数Hitが「1」である場合(S21、Yes)、チェック・選択部124は、変数Hwayにセットされた番号のwayを指定してデータメモリリクエストを出力し(S22)、動作を終了する。変数Hitが「0」である場合(S21、No)、チェック・選択部124は、リフィル/ライトバックリクエストを出力し(S23)、動作を終了する。
S18がYesの場合、チェック・選択部124は、キャッシュデータメモリ114の対応するキャッシュラインに格納されているブレーク指示子列301を読み出すデバッグリードのためのデータメモリリクエストを出力する(S24)。そして、チェック・選択部124は、変数Hitが「1」であるか否かを判定する(S25)。変数Hitが「1」である場合(S25、Yes)、チェック・選択部124は、キャッシュデータメモリ114から第1の命令列300を取得するために、変数Hwayにセットされた番号のwayを指定してデータメモリリクエストを出力し(S26)、動作を終了する。変数Hitが「0」である場合(S25、No)、チェック・選択部124は、第1の実施形態と同じくメモリ102から第1の命令列300を取得するために、wayNを指定したデバッグリフィルリクエストを出力し(S27)、動作を終了する。
図15は、第2の実施形態のディストリビュータ132の内部構成図である。ディストリビュータ132は、分岐部180と、第1の選択部181と、マスク情報生成部140と、デバッグ命令生成部141と、第2の選択部143と、データバッファ144とを備えている。
リードデータは、分岐部180に入力される。分岐部180は、リードデータに含まれるDbフラグが「1(Y)」であるか否かを判断する。Dbフラグが「1(Y)」である場合には、分岐部180はリードデータをマスク情報生成部140に入力する。マスク情報生成部140は、入力されたリードデータに基づいて生成したマスク情報をデータバッファ144に出力する。
分岐部180は、Dbフラグが「0(N)」である場合、即ちリードデータが第1の命令列300である場合には、リードデータを選択部181に入力する。また、リフィルデータ、即ちメモリ102から読み出された第1の命令列300が選択部181に入力される。選択部181は、入力された2つのデータのうちの最後に入力されたデータを選択する。選択されたデータは、選択部143およびデバッグ命令生成部141に入力される。デバッグ命令生成部141は、入力されたデータをそのまま透過するかまたはデータバッファ144のマスク情報と入力されたデータとを用いて第2の命令列303を生成する。デバッグ命令生成部141の出力は、第2の選択部143に入力される。第2の選択部143は、データバッファ144に格納されているDbフラグの値に基づいて選択したデータを、データバッファ144に格納する。
ディストリビュータ132の動作について説明する。ノーマルリードに応じたリードデータは、Dbフラグが「0」であるので、分岐部180を介して第1の選択部181に入力される。リフィルデータの入力はないので、第1の選択部181は、リードデータを出力する。また、Dbフラグが「0」であるので、リードデータは、第2の選択部143で選択される。リードデータは、Vフラグに「1」がセットされ、データバッファ144に格納される。Vフラグに「1」がセットされるので、要求元のコアは、データバッファ144からそのリードデータを読み出して実行することが可能となる。
デバッグリードに応じたリードデータは、マスク情報生成部140によりマスク情報に変換されてデータバッファ144に格納される。Dbフラグが「1」であるので、Vフラグには「0」がセットされる。Vフラグが「0」であるため、データバッファ144に格納されたマスク情報は要求元のコアには読み出されない。
その後、第1の命令列300として、デバッグリフィルリクエストに応じたリフィルデータまたはブレーク指示子列301が格納されていたwayとは別のwayに対するデータメモリリクエストに応じたリードデータがディストリビュータ132に入力される。
デバッグリフィルリクエストに応じたリフィルデータが入力された場合は、当該リフィルデータが第1の選択部181によって選択される。ブレーク指示子列301が格納されていたwayとは別のwayに対するデータメモリリクエストに応じたリードデータが入力された場合は、当該リードデータが第1の選択部181によって選択される。そして、デバッグ命令生成部141に入力されたデータは、そのまま透過されるか第2の命令列303に変換される。デバッグ命令生成部141から出力された第1の命令列300または第2の命令列303は、データバッファ144に格納される。その際に、Dbフラグが「0」にクリアされてVフラグに「1」がセットされるため、要求元のコアが格納された第1の命令列300または第2の命令列303を読み出して実行することが可能となる。
リフィル/ライトバックリクエストに応じたリフィルデータは、データメモリリードに応じたリードデータの入力がないので、第1の選択部181によって選択される。Dbフラグが「0」であるので、当該リフィルデータはデータバッファ144に格納される。Dbフラグが「0」であるので、データバッファ144のVフラグには「1」がセットされる。Vフラグに「1」がセットされるため、要求元のコアがそのリフィルデータを読み出して実行することが可能となる。
第2の実施形態によれば、ブレークポイントの対象となる命令列をキャッシュデータメモリから取得することが可能となる。よって、コアがアクセスリクエストを発行してから当該コアにBREAKを返すまでの時間が第1の実施形態よりも短縮される。また、第2の実施形態によれば、ブレーク指示子302が要求元のコアを指定していない場合、リードリクエストされた第1の命令列300はキャッシュデータメモリ114から読み出される。したがって、ブレークポイントの対象ではないコアが要求元である場合に、第1の命令列300を要求元のコアに返す処理が第1の実施形態に比して高速になる。
第1および第2の実施形態によれば、共有キャッシュ101がコアを指定するブレーク指示子302を設定可能であり、共有キャッシュ101は、リードリクエストされたコアとブレーク指示子302が指定するコアとの比較に応じてコア毎にBREAKを返すか返さないかを切り替えるので、ソフトウェアブレークポイントの対象をコアごとに設定することが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 情報処理装置、2 デバッガ、100 マルチコアプロセッサ、101 共有キャッシュ、102 メモリ、110 アービタ、111 タグリード・比較部、112 キャッシュタグメモリ、113 データアクセス部、114 キャッシュデータメモリ、115 リフィル・ライトバック部、123,124 チェック・選択部、131,132 ディストリビュータ、140 マスク情報生成部、141 デバッグ命令生成部、300 第1の命令列、301 ブレーク指示子列、302 ブレーク指示子、303 第2の命令列。

Claims (5)

  1. メモリと、キャッシュデータメモリを備えるキャッシュシステムと、前記メモリおよびキャッシュデータメモリを共有する複数のコアと、
    を備え、
    前記キャッシュシステムは、
    デバッガから、コアを指定するブレーク指示子を前記キャッシュデータメモリのラインに格納可能であり、
    リード要求されたアドレスに対応するラインに前記ブレーク指示子が格納されている場合には、要求元のコアと前記ブレーク指示子が指定するコアとが一致するか否かを判定し、双方が一致するとき、前記要求元のコアにブレーク命令を返し、双方が一致しないとき、前記リード要求されたデータを返す、
    ことを特徴とする情報処理装置。
  2. 前記キャッシュデータメモリは、ライン毎に複数の単位データをキャッシュし、
    前記ブレーク指示子は、単位データを指定する情報を含み、
    前記キャッシュシステムは、前記要求元のコアと前記ブレーク指示子が指定するコアとが一致するとき、前記リード要求された複数の単位データを、当該複数の単位データのうちの前記ブレーク指示子が指定する単位データをブレーク命令に置き換えて前記要求元のコアに返す、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記キャッシュシステムは、複数ウェイのラインを管理し、同一のアドレスに対応するラインであって前記ブレーク指示子が格納されるラインおよび前記メモリ内のデータが格納されるラインを夫々異なるウェイに格納可能であって、
    前記要求元のコアと前記ブレーク指示子が指定するコアとが一致し、かつ、前記ブレーク指示子が格納されたラインとは別に前記リード要求されたアドレスに対応するラインであって前記メモリ内のデータが格納されるラインが存在するとき、当該ラインから前記複数の単位データを取得する、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記キャッシュシステムは、タグメモリをさらに備え、
    前記タグメモリは、デバッガが設定する、ブレークポイントの対象となるデータを含むか否かを示すデバッグフラグを記憶し、
    前記キャッシュシステムは、前記デバッグフラグに応じて前記複数の単位データを取得するか否かを判定する、
    ことを特徴とする請求項2または請求項3に記載の情報処理装置。
  5. メモリと、キャッシュデータメモリを備えるキャッシュシステムと、前記メモリおよびキャッシュデータメモリを共有する複数のコアと、を備える情報処理装置のデバッグ方法であって、
    前記情報処理装置が、コアを指定するブレーク指示子を前記キャッシュデータメモリのラインに格納する操作をデバッガから受け付けるステップと、
    前記コアのうちの1つが、アドレスを指定して前記メモリにリード要求するステップと、
    前記キャッシュシステムが、リード要求されたアドレスに対応するラインに前記ブレーク指示子が格納されている場合には、要求元のコアと前記ブレーク指示子が指定するコアとが一致するか否かを判定するステップと、
    前記キャッシュシステムが、前記要求元のコアと前記ブレーク指示子が指定するコアとが一致するとき、前記要求元のコアにブレーク命令を返し、前記要求元のコアと前記ブレーク指示子が指定するコアとが一致しないとき、前記リード要求されたデータを返す、ステップと、
    を備えることを特徴とするデバッグ方法。
JP2013056313A 2013-03-19 2013-03-19 情報処理装置およびデバッグ方法 Expired - Fee Related JP5843801B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013056313A JP5843801B2 (ja) 2013-03-19 2013-03-19 情報処理装置およびデバッグ方法
US14/195,016 US9223680B2 (en) 2013-03-19 2014-03-03 Information processing apparatus and debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013056313A JP5843801B2 (ja) 2013-03-19 2013-03-19 情報処理装置およびデバッグ方法

Publications (2)

Publication Number Publication Date
JP2014182562A JP2014182562A (ja) 2014-09-29
JP5843801B2 true JP5843801B2 (ja) 2016-01-13

Family

ID=51570130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013056313A Expired - Fee Related JP5843801B2 (ja) 2013-03-19 2013-03-19 情報処理装置およびデバッグ方法

Country Status (2)

Country Link
US (1) US9223680B2 (ja)
JP (1) JP5843801B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160117179A1 (en) * 2014-10-24 2016-04-28 Advanced Micro Devices, Inc. Command replacement for communication at a processor
US9720756B2 (en) 2014-11-12 2017-08-01 Samsung Electronics Co., Ltd. Computing system with debug assert mechanism and method of operation thereof
CN105740164B (zh) * 2014-12-10 2020-03-17 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
US10268558B2 (en) 2017-01-13 2019-04-23 Microsoft Technology Licensing, Llc Efficient breakpoint detection via caches
US10740220B2 (en) * 2018-06-27 2020-08-11 Microsoft Technology Licensing, Llc Cache-based trace replay breakpoints using reserved tag field bits
US11782816B2 (en) 2019-03-19 2023-10-10 Jens C. Jenkins Input/output location transformations when emulating non-traced code with a recorded execution of traced code
US11281560B2 (en) * 2019-03-19 2022-03-22 Microsoft Technology Licensing, Llc Input/output data transformations when emulating non-traced code with a recorded execution of traced code
US10949332B2 (en) 2019-08-14 2021-03-16 Microsoft Technology Licensing, Llc Data race analysis based on altering function internal loads during time-travel debugging
US11474885B2 (en) 2020-04-07 2022-10-18 Micron Technology, Inc. Method for an internal command of a first processing core with memory sub-system that caching identifiers for access commands

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3141203A1 (de) 1981-10-16 1983-04-28 Siemens AG, 1000 Berlin und 8000 München Planares halbleiterbauelement
DE3220250A1 (de) 1982-05-28 1983-12-01 Siemens AG, 1000 Berlin und 8000 München Halbleiterbauelement mit planarstruktur
DE58905356D1 (de) 1988-05-11 1993-09-30 Siemens Ag MOS-Halbleiterbauelement für hohe Sperrspannung.
JPH03248244A (ja) * 1990-02-27 1991-11-06 Toshiba Corp キャッシュメモリを備えたプロセッサ
JP2797760B2 (ja) * 1991-07-11 1998-09-17 日本電気株式会社 並列処理コンピュータシステム
US5533192A (en) * 1994-04-21 1996-07-02 Apple Computer, Inc. Computer program debugging system and method
JP2677249B2 (ja) 1995-04-28 1997-11-17 日本電気株式会社 マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ
DE19535322A1 (de) 1995-09-22 1997-03-27 Siemens Ag Anordnung mit einem pn-Übergang und einer Maßnahme zur Herabsetzung der Gefahr eines Durchbruchs des pn-Übergangs
US7131114B2 (en) * 2001-07-16 2006-10-31 Texas Instruments Incorporated Debugger breakpoint management in a multicore DSP device having shared program memory
US9003376B2 (en) * 2002-08-09 2015-04-07 Texas Instruments Incorporated Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems
US7296259B2 (en) 2002-09-11 2007-11-13 Agere Systems Inc. Processor system with cache-based software breakpoints
DE10330571B8 (de) 2003-07-07 2007-03-08 Infineon Technologies Ag Vertikale Leistungshalbleiterbauelemente mit Injektionsdämpfungsmittel im Rand bereich und Herstellungsverfahren dafür
US7689867B2 (en) * 2005-06-09 2010-03-30 Intel Corporation Multiprocessor breakpoint
JP2007122547A (ja) 2005-10-31 2007-05-17 Matsushita Electric Ind Co Ltd プログラム実行方法および共有メモリ型マルチコアプロセッサ
US7665002B1 (en) * 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
US20070226740A1 (en) * 2006-02-28 2007-09-27 Xiao-Feng Li Method and apparatus for global breakpoint for parallel debugging on multiprocessor systems
JP5076381B2 (ja) * 2006-07-07 2012-11-21 富士通セミコンダクター株式会社 ソフトウェア開発装置及びソフトウェア開発方法
JP2008305306A (ja) * 2007-06-11 2008-12-18 Panasonic Corp プロセッサ装置およびプロセッサデバッグ方法
JP2009253126A (ja) 2008-04-09 2009-10-29 Sanken Electric Co Ltd 半導体装置
JP2010244327A (ja) 2009-04-07 2010-10-28 Toshiba Corp キャッシュシステム
JP2011070256A (ja) * 2009-09-24 2011-04-07 Toshiba Corp デバッガおよびプログラム
JP5691267B2 (ja) 2010-07-06 2015-04-01 サンケン電気株式会社 半導体装置
JP5740108B2 (ja) 2010-07-16 2015-06-24 株式会社東芝 半導体装置
JP5787829B2 (ja) * 2012-06-01 2015-09-30 株式会社東芝 マルチプロセッサ
JP2014078689A (ja) 2012-09-20 2014-05-01 Toshiba Corp 電力用半導体装置、および、電力用半導体装置の製造方法

Also Published As

Publication number Publication date
JP2014182562A (ja) 2014-09-29
US20140289711A1 (en) 2014-09-25
US9223680B2 (en) 2015-12-29

Similar Documents

Publication Publication Date Title
JP5843801B2 (ja) 情報処理装置およびデバッグ方法
JP6066250B2 (ja) マルチコア異種システム変換のルックアサイドバッファコヒーレンシ
KR102168017B1 (ko) 확장 메모리에 대한 액세스 방법, 디바이스 및 시스템
US9170954B2 (en) Translation management instructions for updating address translation data structures in remote processing nodes
US10445018B2 (en) Switch and memory device
JP5335887B2 (ja) アドレスに基づく条件付きデバッグ命令を認証するデバッグ方法、制御方法、およびデバッグ装置
US9519588B2 (en) Bounded cache searches
KR101379524B1 (ko) 디스플레이 파이프 내에서의 스트리밍 변환
JP6724043B2 (ja) キャッシュタグ圧縮のための方法および装置
JP7348919B2 (ja) 予約タグ・フィールド・ビットを使用するキャッシュ・ベースのブレークポイント・トレース/リプレイ(trace replay breakpoint)
JP5733385B2 (ja) エンディアン変換方法、およびシステム
US9454481B2 (en) Affinity group access to global data
US9009411B2 (en) Flexible control mechanism for store gathering in a write buffer
US8977821B2 (en) Parallel processing of multiple block coherence operations
JP5499987B2 (ja) 共有キャッシュメモリ装置
US9606923B2 (en) Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program
US20130339612A1 (en) Apparatus and method for testing a cache memory
US11436124B2 (en) Apparatus and method for accessing metadata when debugging a device
JP2010244327A (ja) キャッシュシステム
JP6767569B2 (ja) マルチスレッドモードにおける電力低減のための方法及び装置
KR20210037216A (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
JP5293609B2 (ja) マルチプロセッサ並びにそのキャッシュ同期制御方法及びプログラム
US11573800B2 (en) Complex I/O value prediction for multiple values with physical or virtual addresses
JP2017219931A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2016091509A (ja) プログラマブルコントローラに適したマルチプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150811

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

LAPS Cancellation because of no payment of annual fees