JP5118199B2 - マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 - Google Patents
マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 Download PDFInfo
- Publication number
- JP5118199B2 JP5118199B2 JP2010514977A JP2010514977A JP5118199B2 JP 5118199 B2 JP5118199 B2 JP 5118199B2 JP 2010514977 A JP2010514977 A JP 2010514977A JP 2010514977 A JP2010514977 A JP 2010514977A JP 5118199 B2 JP5118199 B2 JP 5118199B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- request
- cache
- ram
- returned
- 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
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Claims (20)
- プロセッサのためのキャッシュにおいて、前記キャッシュは、
少なくとも1つのアウト−オブ−オーダ命令の戻りを処理するために形成された複数の命令待ち行列と、
複数のデータを格納することができるデータ・ランダム・アクセス・メモリ(RAM)と、
前記データRAM内に格納された前記複数のデータのメモリ・アドレスおよびデータを格納することができるタグRAMと、
インフライトRAMであって、
次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持し、
前記要求が処理された後、サービスされた要求に関連する情報をクリアにし、
後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトにある1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定し、
前記次のレベルのメモリ・サブシステムによってサービスされた処理済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも1つのリクエスタと一致させ、および、
各要求に特有の情報を格納する、ことが可能であり、前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドID、命令待ち行列の位置、および前記キャッシュへの前記要求を形成した要求スレッド中の連続ストリームを識別するために構成されるカラー・インディケータをさらに含み、前記カラー・インディケータによって、前記要求スレッドは、前記戻されたデータが有効か失効しているかを判断することができるように構成される、
インフライトRAMと、
ヒットおよびミスのデータの戻りをスケジュールするためのアービタと、
から構成されることを特徴とするキャッシュ。 - 前記キャッシュは、前記データRAM内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項1記載のキャッシュ。
- 前記データRAMは、前記データRAM内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項1記載のキャッシュ。
- 前記スレッドID、命令待ち行列の位置、およびカラーのうちの少なくとも1つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項1記載のキャッシュ。
- 前記キャッシュは、単一のクロック・タイム中に前記複数のスレッドへデータを戻すことを特徴とする請求項4記載のキャッシュ。
- 前記データが戻された時に、前記戻されたデータの適合性を決定するためのカラー・ビットを含むEUインターフェイスをさらに含むことを特徴とする請求項1記載のキャッシュ。
- 前記EUインターフェイスは、低いヒット率を有する前記プロセッサの前記キャッシュの性能を改善することを特徴とする請求項6記載のキャッシュ。
- マルチコアおよびマルチスレッド・システムにおいて、前記システムは、
複数のコアと、
前記複数のコアに接続されたキャッシュとからなり、前記キャッシュは、
少なくとも1つのアウト−オブ−オーダ命令の戻りを処理するために形成された複数の命令待ち行列と、
複数のデータを格納することができるデータ・ランダム・アクセス・メモリ(RAM)と、
前記データRAM内に格納された前記複数のデータのメモリ・アドレスおよびデータを格納することができるタグRAMと、
インフライトRAMであって、
次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持し、
前記要求が処理された後、サービスされた要求に関連する情報をクリアにし、
後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトにある1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定し、
前記次のレベルのメモリ・サブシステムによってサービスされた処理済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも1つのリクエスタと一致させ、および、
各要求に特有の情報を格納する、ことが可能であり、前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドID、命令待ち行列の位置、および前記キャッシュへの前記要求を形成した要求スレッド中の連続ストリームを識別するために構成されるカラー・インディケータをさらに含み、前記カラー・インディケータによって、前記要求スレッドは、前記戻されたデータが有効か失効しているかを判断することができるように構成される、
インフライトRAMと、
ヒットおよびミスのデータの戻りをスケジュールするためのアービタと、
から構成されることを特徴とするシステム。 - 前記キャッシュは、前記データRAM内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項8記載のシステム。
- 前記データRAMは、前記データRAM内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項8記載のシステム。
- 前記スレッドID、命令待ち行列の位置、およびカラーのうちの少なくとも1つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項8記載のシステム。
- 前記キャッシュは、単一のクロック・タイム中に前記命令データへのアクセスを前記複数のスレッドへ提供することを特徴とする請求項11記載のシステム。
- 前記データが戻された時に、前記戻されたデータの適合性を決定するためのカラー・ビットを含むEUインターフェイスをさらに含み、前記EUによる推論的な要求を許可することを特徴とする請求項8記載のシステム。
- 前記EUインターフェイスは、低いヒット率を有する前記プロセッサの前記キャッシュの性能を改善することを特徴とする請求項13記載のシステム。
- プロセッサのキャッシュの性能を改善する方法において、前記方法は、
複数のデータをデータ・ランダム・アクセス・メモリ(RAM)に格納する段階と、
前記データRAM内に格納された前記複数のデータのメモリ・アドレスをタグRAM内に格納する段階と、
次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持する段階と、
前記要求が処理された後、サービスされた要求に関連する情報をクリアにする段階と、
後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトしている1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定する段階と、
前記次のレベルのメモリ・サブシステムによってサービスされた実行済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも1つのリクエスタと一致させる段階と、
各要求に特有の情報を格納する段階であって、前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドID、命令待ち行列の位置、および前記キャッシュへの前記要求を形成した要求スレッド中の連続ストリームを識別するために構成されるカラー・インディケータをさらに含み、前記カラー・インディケータによって、前記要求スレッドは、前記戻されたデータが有効か失効しているかを判断することができるように構成される、段階と、
ヒットおよびミスのデータの戻りをスケジュールする段階と、
から構成されることを特徴とする方法。 - 前記キャッシュは、前記データRAM内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項15記載の方法。
- 前記データRAMは、前記データRAM内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項15記載の方法。
- 前記スレッドID、命令待ち行列の位置、およびカラーのうちの少なくとも1つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項15記載の方法。
- 前記キャッシュは、単一のクロック・タイム中に前記命令データのアクセスを前記複数のスレッドに提供することを特徴とする請求項18記載の方法。
- ジャンプ命令の場合にレイテンシを低減するためのカラー・ビットを含むEUインターフェイスをさらに含むことを特徴とする請求項15記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/770,120 | 2007-06-28 | ||
US11/770,120 US8171225B2 (en) | 2007-06-28 | 2007-06-28 | Cache for a multi thread and multi core system and methods thereof |
PCT/US2008/067279 WO2009006018A2 (en) | 2007-06-28 | 2008-06-18 | Cache for a multi thread and multi core system and methods thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010532057A JP2010532057A (ja) | 2010-09-30 |
JP5118199B2 true JP5118199B2 (ja) | 2013-01-16 |
Family
ID=40162105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010514977A Expired - Fee Related JP5118199B2 (ja) | 2007-06-28 | 2008-06-18 | マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8171225B2 (ja) |
EP (1) | EP2160683B1 (ja) |
JP (1) | JP5118199B2 (ja) |
CN (1) | CN101730885B (ja) |
WO (1) | WO2009006018A2 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100030838A1 (en) * | 1998-08-27 | 2010-02-04 | Beepcard Ltd. | Method to use acoustic signals for computer communications |
IL127569A0 (en) | 1998-09-16 | 1999-10-28 | Comsense Technologies Ltd | Interactive toys |
US6607136B1 (en) * | 1998-09-16 | 2003-08-19 | Beepcard Inc. | Physical presence digital authentication system |
EP1116155A2 (en) | 1998-10-02 | 2001-07-18 | Comsense Technologies Ltd. | Card for interaction with a computer |
US8019609B2 (en) | 1999-10-04 | 2011-09-13 | Dialware Inc. | Sonic/ultrasonic authentication method |
US9219708B2 (en) * | 2001-03-22 | 2015-12-22 | DialwareInc. | Method and system for remotely authenticating identification devices |
US8171225B2 (en) | 2007-06-28 | 2012-05-01 | Intel Corporation | Cache for a multi thread and multi core system and methods thereof |
KR101647818B1 (ko) * | 2010-04-13 | 2016-08-12 | 삼성전자주식회사 | 멀티 코어 사이의 데이터 전송 장치 및 방법 |
CN102087634B (zh) * | 2011-01-27 | 2012-10-03 | 凌阳科技股份有限公司 | 用于提高缓存命中率的装置及方法 |
CN104158764B (zh) * | 2014-08-12 | 2018-02-06 | 新华三技术有限公司 | 报文处理方法及装置 |
JP5917678B1 (ja) * | 2014-12-26 | 2016-05-18 | 株式会社Pfu | 情報処理装置、方法およびプログラム |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10042737B2 (en) | 2016-08-31 | 2018-08-07 | Microsoft Technology Licensing, Llc | Program tracing for time travel debugging and analysis |
US10310977B2 (en) * | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using a processor cache |
US10310963B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
US10324851B2 (en) | 2016-10-20 | 2019-06-18 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache |
US10489273B2 (en) | 2016-10-20 | 2019-11-26 | Microsoft Technology Licensing, Llc | Reuse of a related thread's cache while recording a trace file of code execution |
US10540250B2 (en) | 2016-11-11 | 2020-01-21 | Microsoft Technology Licensing, Llc | Reducing storage requirements for storing memory addresses and values |
CN108255517B (zh) * | 2016-12-29 | 2020-05-05 | 展讯通信(上海)有限公司 | 处理器及请求指令缓存数据的方法 |
US10318332B2 (en) | 2017-04-01 | 2019-06-11 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
US10296442B2 (en) | 2017-06-29 | 2019-05-21 | Microsoft Technology Licensing, Llc | Distributed time-travel trace recording and replay |
FR3086409A1 (fr) * | 2018-09-26 | 2020-03-27 | Stmicroelectronics (Grenoble 2) Sas | Procede de gestion de la fourniture d'informations, en particulier des instructions, a un microprocesseur et systeme correspondant |
CN117130662A (zh) * | 2023-09-19 | 2023-11-28 | 摩尔线程智能科技(北京)有限责任公司 | 一种指令读取方法及l2指令缓存、电子设备和存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61220047A (ja) * | 1985-03-27 | 1986-09-30 | Hitachi Ltd | メモリ制御方式 |
JP2596637B2 (ja) * | 1990-11-09 | 1997-04-02 | 株式会社日立製作所 | キャッシュ制御方式 |
JP3729832B2 (ja) * | 1992-02-28 | 2005-12-21 | 沖電気工業株式会社 | キャッシュメモリ装置 |
US6549930B1 (en) * | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6195748B1 (en) * | 1997-11-26 | 2001-02-27 | Compaq Computer Corporation | Apparatus for sampling instruction execution information in a processor pipeline |
US6141732A (en) * | 1998-03-24 | 2000-10-31 | Novell, Inc. | Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks |
US6473832B1 (en) * | 1999-05-18 | 2002-10-29 | Advanced Micro Devices, Inc. | Load/store unit having pre-cache and post-cache queues for low latency load memory operations |
JP2002312238A (ja) * | 2001-04-18 | 2002-10-25 | Hitachi Ltd | キャッシュ制御装置 |
JP2003122632A (ja) * | 2001-10-17 | 2003-04-25 | Nec Corp | キャッシュデータ登録システム及び登録方法 |
JP2003256274A (ja) * | 2002-03-04 | 2003-09-10 | Kyocera Corp | 高速データ処理装置およびその制御方法 |
US6990557B2 (en) * | 2002-06-04 | 2006-01-24 | Sandbridge Technologies, Inc. | Method and apparatus for multithreaded cache with cache eviction based on thread identifier |
US7228520B1 (en) * | 2004-01-30 | 2007-06-05 | Xilinx, Inc. | Method and apparatus for a programmable interface of a soft platform on a programmable logic device |
US8438157B2 (en) * | 2004-06-28 | 2013-05-07 | International Business Machines Corporation | System and method for previewing relevance of streaming data |
JP4575065B2 (ja) * | 2004-07-29 | 2010-11-04 | 富士通株式会社 | キャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央制御方法 |
US20060143401A1 (en) * | 2004-12-27 | 2006-06-29 | Jacob Doweck | Method and apparatus for prefetching based on cache fill buffer hits |
US8171225B2 (en) | 2007-06-28 | 2012-05-01 | Intel Corporation | Cache for a multi thread and multi core system and methods thereof |
-
2007
- 2007-06-28 US US11/770,120 patent/US8171225B2/en not_active Expired - Fee Related
-
2008
- 2008-06-18 CN CN2008800222067A patent/CN101730885B/zh not_active Expired - Fee Related
- 2008-06-18 JP JP2010514977A patent/JP5118199B2/ja not_active Expired - Fee Related
- 2008-06-18 WO PCT/US2008/067279 patent/WO2009006018A2/en active Application Filing
- 2008-06-18 EP EP08771309.5A patent/EP2160683B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
CN101730885A (zh) | 2010-06-09 |
WO2009006018A2 (en) | 2009-01-08 |
US20090006729A1 (en) | 2009-01-01 |
EP2160683A4 (en) | 2011-07-06 |
EP2160683B1 (en) | 2018-08-01 |
WO2009006018A3 (en) | 2009-03-05 |
JP2010532057A (ja) | 2010-09-30 |
US8171225B2 (en) | 2012-05-01 |
EP2160683A2 (en) | 2010-03-10 |
CN101730885B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5118199B2 (ja) | マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 | |
US11789872B2 (en) | Slot/sub-slot prefetch architecture for multiple memory requestors | |
US11360905B2 (en) | Write merging on stores with different privilege levels | |
US8667225B2 (en) | Store aware prefetching for a datastream | |
US7424579B2 (en) | Memory controller for processor having multiple multithreaded programmable units | |
JP5619869B2 (ja) | データキャッシュとメインメモリ間の一貫性の保証 | |
US20080189501A1 (en) | Methods and Apparatus for Issuing Commands on a Bus | |
US7600077B2 (en) | Cache circuitry, data processing apparatus and method for handling write access requests | |
US20100125677A1 (en) | Cache Stashing Processor Control Messages | |
US10713172B2 (en) | Processor cache with independent pipeline to expedite prefetch request | |
JPH06318177A (ja) | キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム | |
US8635619B2 (en) | Schedule virtual interface allowing resynchronization requests for lock tokens before attachment of a scheduling element triggered by an unlock request | |
US7370152B2 (en) | Memory controller with prefetching capability | |
US9086976B1 (en) | Method and apparatus for associating requests and responses with identification information | |
TWI283827B (en) | Apparatus and method for efficiently updating branch target address cache | |
US20190265977A1 (en) | Multi-thread processor with multi-bank branch-target buffer | |
US10303483B2 (en) | Arithmetic processing unit and control method for arithmetic processing unit | |
US20240201999A1 (en) | Accelerating fetch target queue (ftq) processing in a processor | |
US6473834B1 (en) | Method and apparatus for prevent stalling of cache reads during return of multiple data words | |
CN114116539A (zh) | 一种快速作废地址缓存的方法及装置 | |
CN112579170A (zh) | 一种用于减少虚拟地址计算的处理器及其方法 | |
EP1145094A2 (en) | A method for delivering data to an instruction processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120528 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120827 |
|
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: 20120918 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5118199 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151026 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151026 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |