JP4621292B2 - キャッシュ制御装置およびキャッシュ制御方法 - Google Patents
キャッシュ制御装置およびキャッシュ制御方法 Download PDFInfo
- Publication number
- JP4621292B2 JP4621292B2 JP2009520180A JP2009520180A JP4621292B2 JP 4621292 B2 JP4621292 B2 JP 4621292B2 JP 2009520180 A JP2009520180 A JP 2009520180A JP 2009520180 A JP2009520180 A JP 2009520180A JP 4621292 B2 JP4621292 B2 JP 4621292B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- processing
- thread
- unit
- input
- 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
- 238000000034 method Methods 0.000 title claims description 65
- 238000010586 diagram Methods 0.000 description 17
- 238000002347 injection Methods 0.000 description 7
- 239000007924 injection Substances 0.000 description 7
- 230000010365 information processing Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
140 命令キャッシュ部
141 セレクタ
142a サイクルT処理部
142b サイクルM処理部
142c サイクルB処理部
142d サイクルR処理部
143a、143b、143c、143d ウェイトポート
144 プライオリティ決定部
144a−0 TH0用レジスタ更新部
144a−1 TH1用レジスタ更新部
144b−0 TH0用レジスタ部
144b−1 TH1用レジスタ部
144c 前回出力用レジスタ部
144d 優先度決定部
145 TLB処理部
146 タグRAM処理部
147 データRAM処理部
148 リクエスト記憶部
149 レジスタ部
Claims (9)
- 複数のスレッドに属するリクエストに対してパイプライン処理を実行し、リクエストに応じたキャッシュデータを出力させるキャッシュ制御装置であって、
複数のスレッドに属するリクエストに対して、キャッシュデータを出力するパイプライン処理を構成する個々の処理を互いに独立して実行する複数の処理手段と、
前記複数の処理手段それぞれに対応して設けられ、個々の処理手段において処理中のリクエストに対応し当該リクエストが属するスレッドのパイプライン処理が停止したか否かを示すスレッド別のバリッドビットを保持する複数の保持手段と、
パイプライン処理の停止を示すバリッドビットが保持された保持手段に対応する処理手段において処理中のリクエストを順次レジスタに格納する格納手段と、
前記格納手段によってレジスタに格納されたリクエストおよび外部から新たに入力されるリクエストの優先度を決定して、いずれか1つのリクエストを前記複数の処理手段へ投入する投入手段と
を有することを特徴とするキャッシュ制御装置。 - 前記格納手段は、
前記複数の保持手段によって保持されたバリッドビットに基づいて、パイプライン処理が停止したスレッドに属するリクエストを前記複数の処理手段に投入された順序でレジスタに格納することを特徴とする請求項1記載のキャッシュ制御装置。 - 前記投入手段は、
前記複数の保持手段によって保持されたバリッドビットをスレッドごとにラッチするラッチ手段と、
前記ラッチ手段によってラッチされたバリッドビットおよび前記複数の処理手段へ前回投入されたリクエストに応じて今回前記複数の処理手段へ投入するリクエストを決定する決定手段と
を含むことを特徴とする請求項1記載のキャッシュ制御装置。 - 前記決定手段は、
前記ラッチ手段によってラッチされたスレッドごとのバリッドビットがすべてパイプライン処理の停止を示していない場合に、外部から新たに入力されるリクエストを前記複数の処理手段へ投入すると決定することを特徴とする請求項3記載のキャッシュ制御装置。 - 前記決定手段は、
前記ラッチ手段によってラッチされた1つのスレッドのバリッドビットの中にパイプライン処理の停止を示すバリッドビットがある場合に、当該スレッドに属するリクエストであって前記格納手段によってレジスタに格納されたリクエストを前記複数の処理手段へ投入すると決定することを特徴とする請求項3記載のキャッシュ制御装置。 - 前記決定手段は、
前記ラッチ手段によってラッチされた複数のスレッドのバリッドビットの中にパイプライン処理の停止を示すバリッドビットがある場合に、当該複数のスレッドのうち前記複数の処理手段へ前回投入されたリクエストが属するスレッドとは異なるスレッドに属するリクエストを前記複数の処理手段へ投入すると決定することを特徴とする請求項3記載のキャッシュ制御装置。 - 前記決定手段は、
前記ラッチ手段によってラッチされた複数のスレッドのバリッドビットの中にパイプライン処理の停止を示すバリッドビットがある場合に、当該複数のスレッドのうち前記複数の処理手段へ前回リクエストが投入されてからの経過時間が最も長いスレッドに属するリクエストを前記複数の処理手段へ投入すると決定することを特徴とする請求項3記載のキャッシュ制御装置。 - 前記格納手段は、
前記複数の処理手段に投入されたリクエストをスレッド別に前記複数の処理手段の数ずつ記憶する記憶手段を含み、
対応するバリッドビットがパイプライン処理の停止を示すリクエストであって、最初に前記複数の処理手段に投入されたリクエストから順に前記記憶手段から出力してレジスタに格納することを特徴とする請求項1記載のキャッシュ制御装置。 - 複数のスレッドに属するリクエストに対してパイプライン処理を実行し、リクエストに応じたキャッシュデータを出力させるキャッシュ制御装置によるキャッシュ制御方法であって、
前記キャッシュ制御装置が有する複数の処理手段が、複数のスレッドに属するリクエストに対して、キャッシュデータを出力するパイプライン処理を構成する個々の処理を互いに独立して実行する複数の処理ステップと、
1つのリクエストが前記複数の処理ステップの最終ステップに到達した際に当該リクエストが属するスレッドのパイプライン処理が停止する場合、前記キャッシュ制御装置が有する複数の処理手段が、前記複数の処理ステップのそれぞれに対応するウェイトポートのうちパイプライン処理が停止したスレッドに属するリクエストに対して処理中である処理ステップに対応するウェイトポートに、パイプライン処理が停止したことを示すバリッドビットをスレッド別に設定する設定ステップと、
前記設定ステップにてパイプライン処理の停止を示すバリッドビットが設定されると、前記キャッシュ制御装置が有する格納手段が、当該バリッドビットが設定されたウェイトポートに対応する処理ステップにおいて処理中のリクエストを順次レジスタに格納する格納ステップと、
前記キャッシュ制御装置が有する決定手段が、前記格納ステップにてレジスタに格納されたリクエストおよび外部から新たに入力されるリクエストの優先度を決定して、いずれか1つのリクエストに対して前記複数の処理ステップを開始させる制御ステップと
を有することを特徴とするキャッシュ制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062339 WO2008155826A1 (ja) | 2007-06-19 | 2007-06-19 | キャッシュ制御装置およびキャッシュ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155826A1 JPWO2008155826A1 (ja) | 2010-08-26 |
JP4621292B2 true JP4621292B2 (ja) | 2011-01-26 |
Family
ID=40155992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520180A Expired - Fee Related JP4621292B2 (ja) | 2007-06-19 | 2007-06-19 | キャッシュ制御装置およびキャッシュ制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100095071A1 (ja) |
EP (1) | EP2159701A4 (ja) |
JP (1) | JP4621292B2 (ja) |
WO (1) | WO2008155826A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135087B1 (en) * | 2012-12-27 | 2015-09-15 | Altera Corporation | Workgroup handling in pipelined circuits |
US10474365B2 (en) * | 2013-01-25 | 2019-11-12 | Stroz Friedberg, LLC | System and method for file processing from a block device |
JP6384380B2 (ja) | 2015-03-27 | 2018-09-05 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP7318203B2 (ja) * | 2018-12-12 | 2023-08-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001195301A (ja) * | 2000-01-07 | 2001-07-19 | Japan Advanced Inst Of Science & Technology Hokuriku | パイプラインキャッシュメモリの更新回路 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785803B1 (en) * | 1996-11-13 | 2004-08-31 | Intel Corporation | Processor including replay queue to break livelocks |
US6385715B1 (en) * | 1996-11-13 | 2002-05-07 | Intel Corporation | Multi-threading for a processor utilizing a replay queue |
US6609193B1 (en) * | 1999-12-30 | 2003-08-19 | Intel Corporation | Method and apparatus for multi-thread pipelined instruction decoder |
US7719540B2 (en) * | 2004-03-31 | 2010-05-18 | Intel Corporation | Render-cache controller for multithreading, multi-core graphics processor |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
-
2007
- 2007-06-19 JP JP2009520180A patent/JP4621292B2/ja not_active Expired - Fee Related
- 2007-06-19 EP EP07767197A patent/EP2159701A4/en not_active Withdrawn
- 2007-06-19 WO PCT/JP2007/062339 patent/WO2008155826A1/ja active Application Filing
-
2009
- 2009-12-11 US US12/654,167 patent/US20100095071A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001195301A (ja) * | 2000-01-07 | 2001-07-19 | Japan Advanced Inst Of Science & Technology Hokuriku | パイプラインキャッシュメモリの更新回路 |
Also Published As
Publication number | Publication date |
---|---|
US20100095071A1 (en) | 2010-04-15 |
JPWO2008155826A1 (ja) | 2010-08-26 |
WO2008155826A1 (ja) | 2008-12-24 |
EP2159701A4 (en) | 2011-08-10 |
EP2159701A1 (en) | 2010-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4973730B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP4208895B2 (ja) | キャッシュメモリ装置および処理方法 | |
US7836253B2 (en) | Cache memory having pipeline structure and method for controlling the same | |
US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
US7073026B2 (en) | Microprocessor including cache memory supporting multiple accesses per cycle | |
US11099849B2 (en) | Method for reducing fetch cycles for return-type instructions | |
JP5499987B2 (ja) | 共有キャッシュメモリ装置 | |
JP4621292B2 (ja) | キャッシュ制御装置およびキャッシュ制御方法 | |
US20070260754A1 (en) | Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss | |
US6898671B2 (en) | Data processor for reducing set-associative cache energy via selective way prediction | |
JP2021527248A (ja) | 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納 | |
EP2128771B1 (en) | Method and apparatus for controlling cache memory | |
JP2010102623A (ja) | キャッシュメモリ及びその制御方法 | |
JP2002229852A (ja) | キャッシュシステムの制御回路 | |
US7111127B2 (en) | System for supporting unlimited consecutive data stores into a cache memory | |
KR101122180B1 (ko) | 명령 제어 장치 및 명령 제어 방법 | |
JP2020095345A (ja) | 演算処理装置、メモリ装置、及び演算処理装置の制御方法 | |
JP3577049B2 (ja) | 分岐予測回路 | |
JP6016689B2 (ja) | 半導体装置 | |
JP2013210853A (ja) | 情報処理装置、同期処理実行管理方法、及びプログラム | |
JP3767521B2 (ja) | キャッシュフィル制御方法及びcpu | |
JP4111645B2 (ja) | キャッシュミスした後のメモリバスアクセス制御方式 | |
JP5480793B2 (ja) | プログラマブルコントローラ | |
JP2783285B2 (ja) | 情報処理装置 | |
JP2005122343A (ja) | キャッシュメモリ制御方法及びキャッシュメモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101001 |
|
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: 20101026 |
|
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: 20101029 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |