JP5843801B2 - 情報処理装置およびデバッグ方法 - Google Patents
情報処理装置およびデバッグ方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6032—Way 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
図1は、第1の実施形態の情報処理装置の構成図である。情報処理装置1は、マルチコアプロセッサ100と、共有キャッシュ(キャッシュシステム)101と、メモリ102とを備えている。情報処理装置1は、例えば、撮像装置または携帯電話等に実装される組み込みコンピュータに該当する。情報処理装置1は、ひとつのチップにより実現されてもよいし、複数のチップにより実現されてもよい。
まず、チェック・選択部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の指定および要求元のコアを特定するコア番号を含む。
アービタ130は、タグリード・比較部111からノーマルリードおよびデバッグリードのためのデータメモリリクエストを受信する。また、アービタ130は、ライトバックデータを読み出すリクエストをリフィル・ライトバック部115から受信する。また、アービタ130は、リフィルデータをリフィル・ライトバック部115から受信する。アービタ130は、受信した内容を調停して1つ選択し、選択した内容に応じたアクセスをキャッシュデータメモリ114に対して実行する。なお、アービタ130は、リフィル/ライトバックリクエストに応じたリフィルデータをキャッシュデータメモリ114に書き込み、デバッグリフィルリクエストに応じたリフィルデータをキャッシュデータメモリ114に書き込まない。リフィルデータがリフィル/ライトバックリクエストに応じたものかデバッグリフィルリクエストに応じたものかをアービタ130が判断する機構は、特定の機構に限定されない。
第1の実施形態は、ブレークポイントの対象となる命令列を、リフィルの動作によりメモリから読み出す。これに対し、第2の実施形態は、ブレークポイントの対象となる命令列がキャッシュされている場合に、当該命令列が格納されているwayとは異なるwayに当該命令列をブレークポイントの対象に指定するブレーク指示子列を格納する。これにより、ブレークポイントの対象となる命令列をメモリではなくキャッシュデータメモリから取得することが可能となるので、コアがアクセスリクエストを発行してから当該コアにBREAKを返すまでの時間が第1の実施形態よりも短縮される。
まず、チェック・選択部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の判定処理を再び実行する。
Claims (5)
- メモリと、キャッシュデータメモリを備えるキャッシュシステムと、前記メモリおよびキャッシュデータメモリを共有する複数のコアと、
を備え、
前記キャッシュシステムは、
デバッガから、コアを指定するブレーク指示子を前記キャッシュデータメモリのラインに格納可能であり、
リード要求されたアドレスに対応するラインに前記ブレーク指示子が格納されている場合には、要求元のコアと前記ブレーク指示子が指定するコアとが一致するか否かを判定し、双方が一致するとき、前記要求元のコアにブレーク命令を返し、双方が一致しないとき、前記リード要求されたデータを返す、
ことを特徴とする情報処理装置。 - 前記キャッシュデータメモリは、ライン毎に複数の単位データをキャッシュし、
前記ブレーク指示子は、単位データを指定する情報を含み、
前記キャッシュシステムは、前記要求元のコアと前記ブレーク指示子が指定するコアとが一致するとき、前記リード要求された複数の単位データを、当該複数の単位データのうちの前記ブレーク指示子が指定する単位データをブレーク命令に置き換えて前記要求元のコアに返す、
ことを特徴とする請求項1に記載の情報処理装置。 - 前記キャッシュシステムは、複数ウェイのラインを管理し、同一のアドレスに対応するラインであって前記ブレーク指示子が格納されるラインおよび前記メモリ内のデータが格納されるラインを夫々異なるウェイに格納可能であって、
前記要求元のコアと前記ブレーク指示子が指定するコアとが一致し、かつ、前記ブレーク指示子が格納されたラインとは別に前記リード要求されたアドレスに対応するラインであって前記メモリ内のデータが格納されるラインが存在するとき、当該ラインから前記複数の単位データを取得する、
ことを特徴とする請求項2に記載の情報処理装置。 - 前記キャッシュシステムは、タグメモリをさらに備え、
前記タグメモリは、デバッガが設定する、ブレークポイントの対象となるデータを含むか否かを示すデバッグフラグを記憶し、
前記キャッシュシステムは、前記デバッグフラグに応じて前記複数の単位データを取得するか否かを判定する、
ことを特徴とする請求項2または請求項3に記載の情報処理装置。 - メモリと、キャッシュデータメモリを備えるキャッシュシステムと、前記メモリおよびキャッシュデータメモリを共有する複数のコアと、を備える情報処理装置のデバッグ方法であって、
前記情報処理装置が、コアを指定するブレーク指示子を前記キャッシュデータメモリのラインに格納する操作をデバッガから受け付けるステップと、
前記コアのうちの1つが、アドレスを指定して前記メモリにリード要求するステップと、
前記キャッシュシステムが、リード要求されたアドレスに対応するラインに前記ブレーク指示子が格納されている場合には、要求元のコアと前記ブレーク指示子が指定するコアとが一致するか否かを判定するステップと、
前記キャッシュシステムが、前記要求元のコアと前記ブレーク指示子が指定するコアとが一致するとき、前記要求元のコアにブレーク命令を返し、前記要求元のコアと前記ブレーク指示子が指定するコアとが一致しないとき、前記リード要求されたデータを返す、ステップと、
を備えることを特徴とするデバッグ方法。
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)
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)
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 | 電力用半導体装置、および、電力用半導体装置の製造方法 |
-
2013
- 2013-03-19 JP JP2013056313A patent/JP5843801B2/ja not_active Expired - Fee Related
-
2014
- 2014-03-03 US US14/195,016 patent/US9223680B2/en not_active Expired - Fee Related
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 |