JP7334163B2 - 上位レベルキャッシュへの要求によるキャッシュへのインフラックスのログ記録 - Google Patents
上位レベルキャッシュへの要求によるキャッシュへのインフラックスのログ記録 Download PDFInfo
- Publication number
- JP7334163B2 JP7334163B2 JP2020537480A JP2020537480A JP7334163B2 JP 7334163 B2 JP7334163 B2 JP 7334163B2 JP 2020537480 A JP2020537480 A JP 2020537480A JP 2020537480 A JP2020537480 A JP 2020537480A JP 7334163 B2 JP7334163 B2 JP 7334163B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- logging
- line
- cache line
- logged
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000004941 influx Effects 0.000 title claims description 83
- 238000012545 processing Methods 0.000 claims description 231
- 238000000034 method Methods 0.000 claims description 131
- 239000000872 buffer Substances 0.000 claims description 22
- 230000000694 effects Effects 0.000 description 160
- 229920002451 polyvinyl alcohol Polymers 0.000 description 38
- 239000000700 radioactive tracer Substances 0.000 description 20
- 238000003860 storage Methods 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000004907 flux Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 206010011878 Deafness Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- 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
-
- 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
Claims (20)
- 複数の処理ユニットと、
複数のキャッシュ層に配列された複数のキャッシュであって、第1キャッシュ層の中に複数の第1キャッシュ、及び第2キャッシュ層の中に1つ又は複数の第2キャッシュを含み、前記第2キャッシュ層の中の特定の第2キャッシュが少なくとも前記第1キャッシュ層の中の特定の第1キャッシュに対するバッキングストアとして機能する、複数のキャッシュと、
制御論理であって、
前記特定の第1キャッシュから特定のメモリアドレスを参照するログ記録要求を受信することと、
前記要求に基づいて、前記メモリアドレスに対応するキャッシュラインが前記特定の第2キャッシュに存在するかどうかを判定することと、
前記特定の第2キャッシュに前記キャッシュラインが存在しない場合に、
ログ記録に関与し、少なくとも前記特定の第2キャッシュに対するバッキングストアとして機能する第3キャッシュが存在しない場合は前記キャッシュラインをログに記録する、若しくは
前記第3キャッシュが存在する場合は前記第3キャッシュへ前記要求を転送する、
のうちの一つを実行する、又は
前記特定の第2キャッシュに前記キャッシュラインが存在する場合に、
前記キャッシュラインが(i)ログに記録されるべきではないと前記特定の第2キャッシュが判定している場合、若しくは(ii)ログに記録されるべきであると前記特定の第2キャッシュにより判定されているが前記特定の第2キャッシュのキャッシュラインに記憶された現在の値を前記特定の第1キャッシュが認識していないと前記特定の第2キャッシュが判定した場合に、前記キャッシュラインをログに記録する、若しくは
(i)前記キャッシュラインがログに記録されるべきであると前記特定の第2キャッシュにより判定されていて、(ii)前記特定の第2キャッシュの前記キャッシュラインに記憶された現在の値を前記第1キャッシュが認識していると判定される場合に、前記キャッシュラインをログに記録する必要はないと判定する、
のうちの少なくとも一つを実行することと、
を少なくとも実行するように少なくとも前記特定の第2キャッシュを構成する制御論理と、
を備える、マイクロプロセッサ。 - 前記キャッシュラインをログに記録することは、トレースバッファ内で前記キャッシュラインをログに記録することと、
前記特定の第2キャッシュの中で前記キャッシュラインにログに記録されているという印を付けることと、
を含む、請求項1に記載のマイクロプロセッサ。 - 前記キャッシュラインをログに記録することは、
前記第1キャッシュへ前記特定のメモリアドレスの値を直接ログに記録するよう指示すること、又は
前記第1キャッシュへ前記特定のメモリアドレスに対する以前のログエントリへの参照をログに記録するよう指示すること、
のうちの一つを含む、請求項1に記載のマイクロプロセッサ。 - 前記キャッシュラインがログに記録されるべきではないと前記特定の第2キャッシュが判定している場合に前記キャッシュラインをログに記録することは、
前記第3キャッシュ層が存在すると判定することと、
前記キャッシュラインが前記特定の第2キャッシュにより値でログに記録されていると前記第3キャッシュに通知することと、
を含む、請求項1に記載のマイクロプロセッサ。 - 前記第1キャッシュ層はL1キャッシュ層を備え、前記第2キャッシュ層はL2キャッシュ層又はL3キャッシュ層を備える、請求項1に記載のマイクロプロセッサ。
- 前記制御論理は、
前記メモリアドレスにも対応する前記第1キャッシュの中の別のキャッシュラインが前記第1キャッシュの中でログに記録されていないという印を付けられていることを示すメッセージを前記第1キャッシュから受信することと、
前記メッセージに基づいて、前記特定の第2キャッシュの中で前記キャッシュラインにログに記録されていないという印を付けることと、
も行うように少なくとも前記特定の第2キャッシュを構成する、請求項1に記載のマイクロプロセッサ。 - 前記第1キャッシュに対応する処理ユニットにより、前記処理ユニットに対するログ記録が無効化されている間に前記他のキャッシュラインに書き込みが行われることに基づいて、前記他のキャッシュラインが前記第1キャッシュの中でログに記録されていないという印を付けられる、請求項6に記載のマイクロプロセッサ。
- 前記制御論理は、
書き込みを行うために前記キャッシュラインを要求するメッセージを前記第1キャッシュから受信することと、
少なくとも前記第1キャッシュに対してログ記録が無効化されていることに基づいてログに記録されていないという印を付けられている前記キャッシュラインを前記第1キャッシュへ送信することと、
も行うように少なくとも前記特定の第2キャッシュを構成する、請求項1に記載のマイクロプロセッサ。 - 下位キャッシュ層によるログ記録要求に基づいて、前記下位キャッシュ層がインフラックスをどのようにログに記録するべきかを上位キャッシュ層が判定する方法であって、前記方法は、(i)複数の処理ユニットと、(ii)複数のキャッシュ層に配列された複数のキャッシュであって、第1キャッシュ層の中に複数の第1キャッシュ、及び第2キャッシュ層の中に1つ又は複数の第2キャッシュを含み、前記第2キャッシュ層の中の特定の第2キャッシュが少なくとも前記第1キャッシュ層の中の特定の第1キャッシュに対するバッキングストアとして機能する複数のキャッシュ、とを含むコンピュータデバイスで実装され、
前記特定の第1キャッシュから特定のメモリアドレスを参照するログ記録要求を受信することと、
前記要求に基づいて、前記メモリアドレスに対応するキャッシュラインが前記特定の第2キャッシュに存在するかどうかを判定することと、
前記特定の第2キャッシュに前記キャッシュラインが存在しない場合に、
ログ記録に関与し、少なくとも前記特定の第2キャッシュに対するバッキングストアとして機能する第3キャッシュが存在しない場合は前記キャッシュラインをログに記録する、若しくは
前記第3キャッシュが存在する場合は前記第3キャッシュへ前記要求を転送する、
のうちの一つを実行する、又は
前記特定の第2キャッシュに前記キャッシュラインが存在する場合に、
前記キャッシュラインが(i)ログに記録されるべきではないと前記特定の第2キャッシュが判定している場合、若しくは(ii)ログに記録されるべきであると前記特定の第2キャッシュにより判定されているが前記特定の第2キャッシュのキャッシュラインに記憶された現在の値を前記特定の第1キャッシュが認識していないと前記特定の第2キャッシュが判定した場合に、前記キャッシュラインをログに記録する、若しくは
(i)前記キャッシュラインがログに記録されるべきであると前記特定の第2キャッシュにより判定されていて、(ii)前記特定の第2キャッシュの前記キャッシュラインに記憶された現在の値を前記第1キャッシュが認識していると判定される場合に、前記キャッシュラインをログに記録する必要はないと判定する、
のうちの少なくとも一つを実行することと、
を含む、方法。 - 前記キャッシュラインをログに記録することは、
トレースバッファ内で前記キャッシュラインをログに記録することと、
前記特定の第2キャッシュの中で前記キャッシュラインにログに記録されているという印を付けることと、
を含む、請求項9に記載の方法。 - 前記キャッシュラインをログに記録することは、
前記第1キャッシュへ前記特定のメモリアドレスの値を直接ログに記録するよう指示すること、又は
前記第1キャッシュへ前記特定のメモリアドレスに対する以前のログエントリへの参照をログに記録するよう指示すること、
のうちの一つを含む、請求項9に記載の方法。 - 前記キャッシュラインがログに記録されるべきではないと前記特定の第2キャッシュが判定している場合に前記キャッシュラインをログに記録することは、
前記第3キャッシュが存在すると判定することと、
前記第3キャッシュの知識に基づき、前記キャッシュラインを参照によりログに記録することと、
を含む、請求項9に記載の方法。 - 前記キャッシュラインがログに記録されるべきではないと前記特定の第2キャッシュが判定している場合に前記キャッシュラインをログに記録することは、
前記第3キャッシュ層が存在すると判定することと、
前記キャッシュラインが前記特定の第2キャッシュにより値でログに記録されていると前記第3キャッシュに通知することと、
を含む、請求項9に記載の方法。 - 前記第1キャッシュ層はL1キャッシュ層を備え、前記第2キャッシュ層はL2キャッシュ層又はL3キャッシュ層を備える、請求項9に記載の方法。
- 制御論理は、
前記メモリアドレスにも対応する前記第1キャッシュの中の別のキャッシュラインが前記第1キャッシュの中でログに記録されていないという印を付けられていることを示すメッセージを前記第1キャッシュから受信することと、
前記メッセージに基づいて、前記特定の第2キャッシュの中で前記キャッシュラインにログに記録されていないという印を付けることと、
を行うように、少なくとも前記特定の第2キャッシュを構成する、請求項9に記載の方法。 - 前記第1キャッシュに対応する処理ユニットにより、前記処理ユニットに対するログ記録が無効化されている間に前記他のキャッシュラインに書き込みが行われることに基づいて、前記他のキャッシュラインが前記第1キャッシュの中でログに記録されていないという印を付けられる、請求項15に記載の方法。
- 制御論理は、書き込みを行うために前記キャッシュラインを要求するメッセージを前記第1キャッシュから受信することと、少なくとも前記第1キャッシュに対してログ記録が無効化されていることに基づいてログに記録されていないという印を付けられている前記キャッシュラインを前記第1キャッシュへ送信することと、を行うように少なくとも前記特定の第2キャッシュを構成する、請求項9に記載の方法。
- 複数の処理ユニットと、
複数のキャッシュ層に配列された複数のキャッシュであって、第1キャッシュ層の中に複数の第1キャッシュ、及び第2キャッシュ層の中に1つ又は複数の第2キャッシュを含み、前記第2キャッシュ層が、前記複数の処理ユニットのうちの特定の処理ユニットに対応する前記第1キャッシュ層の中の少なくとも特定の第1キャッシュに対するバッキングストアとして機能する、複数のキャッシュと、
制御論理であって、
設定されたログ記録状態を有する前記第1キャッシュの中のキャッシュラインへの書き込みを検出することと、
前記書き込みを検出することに基づいて、前記特定の処理ユニットについてログ記録が有効化されているか否かを判定することと、
前記特定の処理ユニットについてログ記録が無効化されていることに少なくとも基づいて、前記キャッシュラインについてログ記録状態を消去し、かつ前記1つ又は複数の第2キャッシュの少なくとも1つに、前記キャッシュラインについてそのログ記録状態が消去されるべきことを通知し、又は前記特定の処理ユニットについてログ記録が有効化されていることに少なくとも基づいて、前記キャッシュラインについてログ記録状態を保持すること、
を少なくとも実行するように少なくとも前記特定の第1キャッシュを構成する制御論理と、
を備える、マイクロプロセッサ。 - 前記特定の処理ユニットは、所有された状態のキャッシュラインを有し、前記制御論理は、前記複数の第1キャッシュの少なくとも一つに前記キャッシュラインについてそのログ記録状態が消去されるべきことを通知するように、少なくとも前記特定の第1キャッシュを構成する、請求項18に記載のマイクロプロセッサ。
- 前記特定の第1のキャッシュは、前記複数の第1キャッシュの少なくとも一つから受信した要求に基づいて、前記複数の第1キャッシュの少なくとも一つに前記キャッシュラインについてそのログ記録状態が消去されるべきことを通知する、請求項18に記載のマイクロプロセッサ。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/904,072 | 2018-02-23 | ||
US15/904,072 US10496537B2 (en) | 2018-02-23 | 2018-02-23 | Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache |
US15/947,699 | 2018-04-06 | ||
US15/947,699 US10642737B2 (en) | 2018-02-23 | 2018-04-06 | Logging cache influxes by request to a higher-level cache |
PCT/US2019/017912 WO2019164730A1 (en) | 2018-02-23 | 2019-02-14 | Logging cache influxes by request to a higher-level cache |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021515287A JP2021515287A (ja) | 2021-06-17 |
JPWO2019164730A5 JPWO2019164730A5 (ja) | 2022-02-14 |
JP7334163B2 true JP7334163B2 (ja) | 2023-08-28 |
Family
ID=65576730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020537480A Active JP7334163B2 (ja) | 2018-02-23 | 2019-02-14 | 上位レベルキャッシュへの要求によるキャッシュへのインフラックスのログ記録 |
Country Status (16)
Country | Link |
---|---|
US (1) | US10642737B2 (ja) |
EP (1) | EP3756099B1 (ja) |
JP (1) | JP7334163B2 (ja) |
KR (1) | KR102661543B1 (ja) |
CN (1) | CN111742301A (ja) |
AU (1) | AU2019223807B2 (ja) |
BR (1) | BR112020014668A2 (ja) |
CA (1) | CA3088558A1 (ja) |
ES (1) | ES2943508T3 (ja) |
IL (1) | IL276650B2 (ja) |
MX (1) | MX2020008661A (ja) |
PH (1) | PH12020551310A1 (ja) |
RU (1) | RU2764173C1 (ja) |
SG (1) | SG11202007566WA (ja) |
WO (1) | WO2019164730A1 (ja) |
ZA (1) | ZA202004082B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US11042469B2 (en) | 2017-08-28 | 2021-06-22 | Microsoft Technology Licensing, Llc | Logging trace data for program code execution at an instruction level |
US10496537B2 (en) | 2018-02-23 | 2019-12-03 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache |
WO2021061220A1 (en) * | 2019-09-24 | 2021-04-01 | Microsoft Technology Licensing, Llc | Logging trace data for program code execution at an instruction level |
KR20210079637A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11561896B2 (en) | 2021-02-22 | 2023-01-24 | Microsoft Technology Licensing, Llc | Cache-based trace logging using tags in an upper-level cache |
WO2022177697A1 (en) * | 2021-02-22 | 2022-08-25 | Microsoft Technology Licensing, Llc | Cache-based trace logging using tags in an upper-level cache |
US20220269615A1 (en) * | 2021-02-22 | 2022-08-25 | Microsoft Technology Licensing, Llc | Cache-based trace logging using tags in system memory |
US20220269614A1 (en) * | 2021-02-22 | 2022-08-25 | Microsoft Technology Licensing, Llc | Treating main memory as a collection of tagged cache lines for trace logging |
LU102709B1 (en) * | 2021-03-26 | 2022-09-26 | Microsoft Technology Licensing Llc | Memory address compression within an execution trace |
LU102708B1 (en) * | 2021-03-26 | 2022-09-26 | Microsoft Technology Licensing Llc | Physical memory address omission or obfuscation within an execution trace |
LU500061B1 (en) * | 2021-04-20 | 2022-10-20 | Microsoft Technology Licensing Llc | Processor support for using cache way- locking to simultaneously record plural execution contexts into independent execution traces |
LU500060B1 (en) * | 2021-04-20 | 2022-10-20 | Microsoft Technology Licensing Llc | Processor support for using memory page markings as logging cues to simultaneously record plural execution contexts into independent execution traces |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002207613A (ja) | 2001-01-12 | 2002-07-26 | Fujitsu Ltd | 履歴採取装置及び履歴採取方法 |
JP2008204101A (ja) | 2007-02-19 | 2008-09-04 | Nec Computertechno Ltd | バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置 |
JP2014191622A (ja) | 2013-03-27 | 2014-10-06 | Fujitsu Ltd | 処理装置 |
Family Cites Families (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4598364A (en) | 1983-06-29 | 1986-07-01 | International Business Machines Corporation | Efficient trace method adaptable to multiprocessors |
AU3776793A (en) | 1992-02-27 | 1993-09-13 | Intel Corporation | Dynamic flow instruction cache memory |
US5666514A (en) * | 1994-07-01 | 1997-09-09 | Board Of Trustees Of The Leland Stanford Junior University | Cache memory containing extra status bits to indicate memory regions where logging of data should occur |
US5905855A (en) | 1997-02-28 | 1999-05-18 | Transmeta Corporation | Method and apparatus for correcting errors in computer systems |
US6167536A (en) | 1997-04-08 | 2000-12-26 | Advanced Micro Devices, Inc. | Trace cache for a microprocessor-based device |
US6009270A (en) | 1997-04-08 | 1999-12-28 | Advanced Micro Devices, Inc. | Trace synchronization in a processor |
US6094729A (en) | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
US5944841A (en) | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
US6101524A (en) | 1997-10-23 | 2000-08-08 | International Business Machines Corporation | Deterministic replay of multithreaded applications |
US6553564B1 (en) | 1997-12-12 | 2003-04-22 | International Business Machines Corporation | Process and system for merging trace data for primarily interpreted methods |
US6351844B1 (en) | 1998-11-05 | 2002-02-26 | Hewlett-Packard Company | Method for selecting active code traces for translation in a caching dynamic translator |
US6823473B2 (en) | 2000-04-19 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Simultaneous and redundantly threaded processor uncached load address comparator and data value replication circuit |
US6854108B1 (en) | 2000-05-11 | 2005-02-08 | International Business Machines Corporation | Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors |
US7448025B2 (en) | 2000-12-29 | 2008-11-04 | Intel Corporation | Qualification of event detection by thread ID and thread privilege level |
US6634011B1 (en) | 2001-02-15 | 2003-10-14 | Silicon Graphics, Inc. | Method and apparatus for recording program execution in a microprocessor based integrated circuit |
US20020144101A1 (en) | 2001-03-30 | 2002-10-03 | Hong Wang | Caching DAG traces |
US7178133B1 (en) | 2001-04-30 | 2007-02-13 | Mips Technologies, Inc. | Trace control based on a characteristic of a processor's operating state |
US7185234B1 (en) | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
US7181728B1 (en) | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
US20030079205A1 (en) | 2001-10-22 | 2003-04-24 | Takeshi Miyao | System and method for managing operating systems |
US7051239B2 (en) | 2001-12-28 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficiently implementing trace and/or logic analysis mechanisms on a processor chip |
US7089400B1 (en) | 2002-08-29 | 2006-08-08 | Advanced Micro Devices, Inc. | Data speculation based on stack-relative addressing patterns |
US7073026B2 (en) * | 2002-11-26 | 2006-07-04 | Advanced Micro Devices, Inc. | Microprocessor including cache memory supporting multiple accesses per cycle |
US20040117690A1 (en) | 2002-12-13 | 2004-06-17 | Andersson Anders J. | Method and apparatus for using a hardware disk controller for storing processor execution trace information on a storage device |
US20040153635A1 (en) | 2002-12-30 | 2004-08-05 | Kaushik Shivnandan D. | Privileged-based qualification of branch trace store data |
US7526757B2 (en) | 2004-01-14 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program |
US20050223364A1 (en) | 2004-03-30 | 2005-10-06 | Peri Ramesh V | Method and apparatus to compact trace in a trace buffer |
US8010337B2 (en) | 2004-09-22 | 2011-08-30 | Microsoft Corporation | Predicting database system performance |
US7447946B2 (en) | 2004-11-05 | 2008-11-04 | Arm Limited | Storage of trace data within a data processing apparatus |
JP4114879B2 (ja) | 2005-01-21 | 2008-07-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トレース情報収集システム、トレース情報収集方法、及びトレース情報収集プログラム |
US7640539B2 (en) | 2005-04-12 | 2009-12-29 | International Business Machines Corporation | Instruction profiling using multiple metrics |
US8301868B2 (en) | 2005-09-23 | 2012-10-30 | Intel Corporation | System to profile and optimize user software in a managed run-time environment |
US7877630B1 (en) | 2005-09-28 | 2011-01-25 | Oracle America, Inc. | Trace based rollback of a speculatively updated cache |
US7984281B2 (en) | 2005-10-18 | 2011-07-19 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
US9268666B2 (en) | 2005-10-21 | 2016-02-23 | Undo Ltd. | System and method for debugging of computer programs |
US7620938B2 (en) | 2005-10-31 | 2009-11-17 | Microsoft Corporation | Compressed program recording |
US20070106827A1 (en) | 2005-11-08 | 2007-05-10 | Boatright Bryan D | Centralized interrupt controller |
US7461209B2 (en) | 2005-12-06 | 2008-12-02 | International Business Machines Corporation | Transient cache storage with discard function for disposable data |
US20070150881A1 (en) | 2005-12-22 | 2007-06-28 | Motorola, Inc. | Method and system for run-time cache logging |
US20070220361A1 (en) | 2006-02-03 | 2007-09-20 | International Business Machines Corporation | Method and apparatus for guaranteeing memory bandwidth for trace data |
US7958497B1 (en) | 2006-06-07 | 2011-06-07 | Replay Solutions, Inc. | State synchronization in recording and replaying computer programs |
US7676632B2 (en) | 2006-07-18 | 2010-03-09 | Via Technologies, Inc. | Partial cache way locking |
US7472218B2 (en) | 2006-09-08 | 2008-12-30 | International Business Machines Corporation | Assisted trace facility to improve CPU cache performance |
US20080114964A1 (en) | 2006-11-14 | 2008-05-15 | Davis Gordon T | Apparatus and Method for Cache Maintenance |
US20080250207A1 (en) | 2006-11-14 | 2008-10-09 | Davis Gordon T | Design structure for cache maintenance |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US7685409B2 (en) * | 2007-02-21 | 2010-03-23 | Qualcomm Incorporated | On-demand multi-thread multimedia processor |
US8261130B2 (en) | 2007-03-02 | 2012-09-04 | Infineon Technologies Ag | Program code trace signature |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
US20090037886A1 (en) | 2007-07-30 | 2009-02-05 | Mips Technologies, Inc. | Apparatus and method for evaluating a free-running trace stream |
CN101446909B (zh) | 2007-11-30 | 2011-12-28 | 国际商业机器公司 | 用于管理任务事件的方法和系统 |
US8078807B2 (en) | 2007-12-27 | 2011-12-13 | Intel Corporation | Accelerating software lookups by using buffered or ephemeral stores |
US8413122B2 (en) | 2009-02-12 | 2013-04-02 | International Business Machines Corporation | System and method for demonstrating the correctness of an execution trace in concurrent processing environments |
US8402318B2 (en) | 2009-03-24 | 2013-03-19 | The Trustees Of Columbia University In The City Of New York | Systems and methods for recording and replaying application execution |
US8589629B2 (en) | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8140903B2 (en) | 2009-04-16 | 2012-03-20 | International Business Machines Corporation | Hardware process trace facility |
US8423965B2 (en) | 2009-06-23 | 2013-04-16 | Microsoft Corporation | Tracing of data flow |
JP2011013867A (ja) | 2009-06-30 | 2011-01-20 | Panasonic Corp | データ処理装置、性能評価解析システム |
US8719796B2 (en) | 2010-01-26 | 2014-05-06 | The Board Of Trustees Of The University Of Illinois | Parametric trace slicing |
US8468501B2 (en) | 2010-04-21 | 2013-06-18 | International Business Machines Corporation | Partial recording of a computer program execution for replay |
US9015441B2 (en) | 2010-04-30 | 2015-04-21 | Microsoft Technology Licensing, Llc | Memory usage scanning |
US8499200B2 (en) | 2010-05-24 | 2013-07-30 | Ncr Corporation | Managing code-tracing data |
US20120042212A1 (en) | 2010-08-10 | 2012-02-16 | Gilbert Laurenti | Mixed Mode Processor Tracing |
US9645913B2 (en) | 2011-08-03 | 2017-05-09 | Daniel Geist | Method and apparatus for debugging programs |
US20130055033A1 (en) | 2011-08-22 | 2013-02-28 | International Business Machines Corporation | Hardware-assisted program trace collection with selectable call-signature capture |
EP2761472B1 (en) * | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
US8584110B2 (en) | 2011-09-30 | 2013-11-12 | International Business Machines Corporation | Execution trace truncation |
US8612650B1 (en) | 2012-03-13 | 2013-12-17 | Western Digital Technologies, Inc. | Virtual extension of buffer to reduce buffer overflow during tracing |
US9058415B1 (en) | 2013-03-15 | 2015-06-16 | Google Inc. | Counting events using hardware performance counters and annotated instructions |
US9304863B2 (en) | 2013-03-15 | 2016-04-05 | International Business Machines Corporation | Transactions for checkpointing and reverse execution |
US9619404B2 (en) * | 2013-04-16 | 2017-04-11 | International Business Machines Corporation | Backup cache with immediate availability |
US9189360B2 (en) | 2013-06-15 | 2015-11-17 | Intel Corporation | Processor that records tracing data in non contiguous system memory slices |
US9734080B2 (en) * | 2013-08-08 | 2017-08-15 | Nxp Usa, Inc. | Cache organization and method |
US9086974B2 (en) | 2013-09-26 | 2015-07-21 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
US9965320B2 (en) * | 2013-12-27 | 2018-05-08 | Intel Corporation | Processor with transactional capability and logging circuitry to report transactional operations |
US9785568B2 (en) | 2014-05-19 | 2017-10-10 | Empire Technology Development Llc | Cache lookup bypass in multi-level cache systems |
US9535815B2 (en) | 2014-06-04 | 2017-01-03 | Nvidia Corporation | System, method, and computer program product for collecting execution statistics for graphics processing unit workloads |
US9300320B2 (en) | 2014-06-27 | 2016-03-29 | Qualcomm Incorporated | System and method for dictionary-based cache-line level code compression for on-chip memories using gradual bit removal |
US9875173B2 (en) | 2014-06-30 | 2018-01-23 | Microsoft Technology Licensing, Llc | Time travel debugging in managed runtime |
US9361228B2 (en) | 2014-08-05 | 2016-06-07 | Qualcomm Incorporated | Cache line compaction of compressed data segments |
US10210168B2 (en) * | 2015-02-23 | 2019-02-19 | International Business Machines Corporation | Managing data in storage according to a log structure |
US9588870B2 (en) | 2015-04-06 | 2017-03-07 | Microsoft Technology Licensing, Llc | Time travel debugging for browser components |
EP3338192A1 (en) | 2015-08-18 | 2018-06-27 | Telefonaktiebolaget LM Ericsson (PUBL) | Method for observing software execution, debug host and debug target |
US9767237B2 (en) | 2015-11-13 | 2017-09-19 | Mentor Graphics Corporation | Target capture and replay in emulation |
US9569338B1 (en) | 2015-12-02 | 2017-02-14 | International Business Machines Corporation | Fingerprint-initiated trace extraction |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10031833B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
JP7202293B2 (ja) | 2016-10-11 | 2023-01-11 | グリーン ヒルズ ソフトウェア,エルエルシー | 垂直統合インストルメント化およびトレース再構成のためのシステム、方法およびデバイス |
US10496537B2 (en) | 2018-02-23 | 2019-12-03 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache |
-
2018
- 2018-04-06 US US15/947,699 patent/US10642737B2/en active Active
-
2019
- 2019-02-14 JP JP2020537480A patent/JP7334163B2/ja active Active
- 2019-02-14 SG SG11202007566WA patent/SG11202007566WA/en unknown
- 2019-02-14 MX MX2020008661A patent/MX2020008661A/es unknown
- 2019-02-14 EP EP19707993.2A patent/EP3756099B1/en active Active
- 2019-02-14 KR KR1020207026922A patent/KR102661543B1/ko active IP Right Grant
- 2019-02-14 ES ES19707993T patent/ES2943508T3/es active Active
- 2019-02-14 AU AU2019223807A patent/AU2019223807B2/en active Active
- 2019-02-14 BR BR112020014668-4A patent/BR112020014668A2/pt unknown
- 2019-02-14 CA CA3088558A patent/CA3088558A1/en active Pending
- 2019-02-14 RU RU2020131084A patent/RU2764173C1/ru active
- 2019-02-14 WO PCT/US2019/017912 patent/WO2019164730A1/en unknown
- 2019-02-14 CN CN201980014496.9A patent/CN111742301A/zh active Pending
-
2020
- 2020-07-03 ZA ZA2020/04082A patent/ZA202004082B/en unknown
- 2020-08-11 IL IL276650A patent/IL276650B2/en unknown
- 2020-08-22 PH PH12020551310A patent/PH12020551310A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002207613A (ja) | 2001-01-12 | 2002-07-26 | Fujitsu Ltd | 履歴採取装置及び履歴採取方法 |
JP2008204101A (ja) | 2007-02-19 | 2008-09-04 | Nec Computertechno Ltd | バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置 |
JP2014191622A (ja) | 2013-03-27 | 2014-10-06 | Fujitsu Ltd | 処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190266086A1 (en) | 2019-08-29 |
EP3756099A1 (en) | 2020-12-30 |
ES2943508T3 (es) | 2023-06-13 |
KR20200123188A (ko) | 2020-10-28 |
IL276650B2 (en) | 2023-09-01 |
EP3756099B1 (en) | 2023-03-29 |
PH12020551310A1 (en) | 2021-09-06 |
SG11202007566WA (en) | 2020-09-29 |
AU2019223807A1 (en) | 2020-07-23 |
IL276650A (en) | 2020-09-30 |
MX2020008661A (es) | 2020-09-22 |
CA3088558A1 (en) | 2019-08-29 |
AU2019223807B2 (en) | 2024-02-15 |
WO2019164730A1 (en) | 2019-08-29 |
KR102661543B1 (ko) | 2024-04-26 |
ZA202004082B (en) | 2021-09-29 |
RU2764173C1 (ru) | 2022-01-13 |
JP2021515287A (ja) | 2021-06-17 |
US10642737B2 (en) | 2020-05-05 |
CN111742301A (zh) | 2020-10-02 |
BR112020014668A2 (pt) | 2020-12-01 |
IL276650B1 (en) | 2023-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7334163B2 (ja) | 上位レベルキャッシュへの要求によるキャッシュへのインフラックスのログ記録 | |
JP7152474B2 (ja) | キャッシュコヒーレンスプロトコルデータを用いたキャッシュベーストレース記録 | |
JP7221979B2 (ja) | 上位層キャッシュ内のエントリに基づいて下位層キャッシュへの流入をログすることによるトレース記録 | |
US11126536B2 (en) | Facilitating recording a trace file of code execution using index bits in a processor cache | |
US10324851B2 (en) | Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache | |
US10558572B2 (en) | Decoupling trace data streams using cache coherence protocol data | |
US10860485B2 (en) | Leveraging existing logic paths during bit-accurate processor tracing | |
US11989137B2 (en) | Logging cache line lifetime hints when recording bit-accurate trace | |
RU2773437C2 (ru) | Запись трассировки посредством регистрации входящих потоков в кэш нижнего уровня на основе элементов в кэше верхнего уровня | |
US20240184688A1 (en) | Processor support for using memory page markings as logging cues to simultaneously record plural execution contexts into independent execution traces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220202 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230502 |
|
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: 20230804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230816 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7334163 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |