JP7070384B2 - 演算処理装置、メモリ装置、及び演算処理装置の制御方法 - Google Patents
演算処理装置、メモリ装置、及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP7070384B2 JP7070384B2 JP2018231101A JP2018231101A JP7070384B2 JP 7070384 B2 JP7070384 B2 JP 7070384B2 JP 2018231101 A JP2018231101 A JP 2018231101A JP 2018231101 A JP2018231101 A JP 2018231101A JP 7070384 B2 JP7070384 B2 JP 7070384B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- instruction
- tag
- pipeline
- 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
- 238000000034 method Methods 0.000 title claims description 41
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 27
- 238000007726 management method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
-
- 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
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
11 演算部
12 キャッシュメモリ
13 キャッシュメモリ
21 判定回路
22 パイプライン投入リクエスト選択部
23 フェッチポート
24 選択回路
25 衝突予測回路
26 パイプラインステージ管理部
27 完了判定部
28 データ部アクセスアドレス生成部
29 TLB
30 タグ部
31 データ部
32 タグマッチ判定回路
33 ウェイ選択回路
Claims (6)
- 命令を発行する命令発行部と、
第1のデータ長のデータを演算可能であると共に、前記第1のデータ長より長い第2のデータ長のデータの各部分に対して単一の命令を並列に実行可能な演算部と、
データを保持するキャッシュメモリと
を含む演算処理装置であって、前記キャッシュメモリは、
複数のウェイに対応する複数のタグを格納するタグ部と、
前記複数のウェイに対応する複数のデータを格納するデータ部と、
前記命令発行部から発行された命令によりアクセスするデータが前記第1のデータ長及び前記第2のデータ長のいずれであるのかに関して前記命令の種別を判定する判定部と、
前記タグ部と前記データ部とを並列にアクセスする第1のパイプライン動作と、前記タグ部をアクセスした後にタグ判定結果に応じて前記データ部をアクセスする第2のパイプライン動作とを、前記判定部による判定結果に応じて選択的に実行する管理部と
を含む演算処理装置。 - 前記判定結果が第1の命令に対して前記第1のパイプライン動作の実行を示している場合に、前記第1の命令に対して実行する前記第1のパイプライン動作が、前記第1の命令より先行する第2の命令に対して実行している前記第2のパイプライン動作と衝突することを検出する衝突予測回路を更に含み、前記衝突予測回路により当該衝突が検出された場合に、前記管理部は前記第1の命令に対して前記第2のパイプライン動作を実行させる、請求項1記載の演算処理装置。
- 前記第1のパイプライン動作においては前記第1のデータ長で前記データ部をアクセスし、前記第2のパイプライン動作においては前記第2のデータ長で前記データ部をアクセスするよう、前記データ部をアクセスするためのアドレスを生成するアドレス生成部を前記キャッシュメモリが更に含む、請求項1又は2記載の演算処理装置。
- 前記第1のパイプライン動作においては前記データ部から読み出された複数のウェイのデータのうち1つのウェイのデータをタグ判定結果に応じて選択して出力し、前記第2のパイプライン動作においては前記データ部から読み出された1つのウェイのデータを全て出力するウェイ選択回路を前記キャッシュメモリが更に含む、請求項1乃至3いずれか一項記載の演算処理装置。
- 複数のウェイに対応する複数のタグを格納するタグ部と、
前記複数のウェイに対応する複数のデータを格納するデータ部と、
命令によりアクセスするデータの長さに関して前記命令の種別を判定する判定部と、
前記タグ部と前記データ部とを並列にアクセスする第1のパイプライン動作と、前記タグ部をアクセスした後にタグ判定結果に応じて前記データ部をアクセスする第2のパイプライン動作とを、前記判定部による判定結果に応じて選択的に実行する管理部と
を含むメモリ装置。 - 命令発行部と、第1のデータ長のデータを演算可能であると共に、前記第1のデータ長より長い第2のデータ長のデータの各部分に対して単一の命令を並列に実行可能な演算部と、複数のウェイに対応する複数のタグを格納するタグ部及び前記複数のウェイに対応する複数のデータを格納するデータ部を有するキャッシュメモリとを含む演算処理装置において、
前記命令発行部が、命令を発行し、
前記キャッシュメモリが有する判定部が、前記命令発行部から発行された命令によりアクセスするデータが前記第1のデータ長及び前記第2のデータ長のいずれであるのかに関して前記命令の種別を判定し、
前記キャッシュメモリが有する管理部が、前記タグ部と前記データ部とを並列にアクセスする第1のパイプライン動作と、前記タグ部をアクセスした後にタグ判定結果に応じて前記データ部をアクセスする第2のパイプライン動作とを、前記判定による判定結果に応じて選択的に実行する演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018231101A JP7070384B2 (ja) | 2018-12-10 | 2018-12-10 | 演算処理装置、メモリ装置、及び演算処理装置の制御方法 |
US16/706,900 US11327768B2 (en) | 2018-12-10 | 2019-12-09 | Arithmetic processing apparatus and memory apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018231101A JP7070384B2 (ja) | 2018-12-10 | 2018-12-10 | 演算処理装置、メモリ装置、及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020095345A JP2020095345A (ja) | 2020-06-18 |
JP7070384B2 true JP7070384B2 (ja) | 2022-05-18 |
Family
ID=70970173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018231101A Active JP7070384B2 (ja) | 2018-12-10 | 2018-12-10 | 演算処理装置、メモリ装置、及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11327768B2 (ja) |
JP (1) | JP7070384B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023079640A (ja) * | 2021-11-29 | 2023-06-08 | 富士通株式会社 | 演算処理装置および演算処理方法 |
US20240004792A1 (en) * | 2022-06-29 | 2024-01-04 | Ampere Computing Llc | Data l2 cache with split access |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004171177A (ja) | 2002-11-19 | 2004-06-17 | Renesas Technology Corp | キャッシュシステムおよびキャッシュメモリ制御装置 |
JP2017517065A (ja) | 2014-05-27 | 2017-06-22 | クアルコム,インコーポレイテッド | 再構成可能フェッチパイプライン |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321321B1 (en) * | 1999-06-21 | 2001-11-20 | Vlsi Technology, Inc. | Set-associative cache-management method with parallel and single-set sequential reads |
US6629206B1 (en) | 1999-12-31 | 2003-09-30 | Koninklijke Philips Electronics N.V. | Set-associative cache-management using parallel reads and serial reads initiated during a wait state |
JP2003150446A (ja) | 2001-11-16 | 2003-05-23 | Matsushita Electric Ind Co Ltd | キャッシュメモリ |
US20060236074A1 (en) * | 2005-04-14 | 2006-10-19 | Arm Limited | Indicating storage locations within caches |
US20120303897A1 (en) * | 2011-05-28 | 2012-11-29 | Sakthivel Komarasamy Pullagoundapatti | Configurable set associative cache way architecture |
-
2018
- 2018-12-10 JP JP2018231101A patent/JP7070384B2/ja active Active
-
2019
- 2019-12-09 US US16/706,900 patent/US11327768B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004171177A (ja) | 2002-11-19 | 2004-06-17 | Renesas Technology Corp | キャッシュシステムおよびキャッシュメモリ制御装置 |
JP2017517065A (ja) | 2014-05-27 | 2017-06-22 | クアルコム,インコーポレイテッド | 再構成可能フェッチパイプライン |
Also Published As
Publication number | Publication date |
---|---|
US11327768B2 (en) | 2022-05-10 |
JP2020095345A (ja) | 2020-06-18 |
US20200183702A1 (en) | 2020-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7461209B2 (en) | Transient cache storage with discard function for disposable data | |
JP3512678B2 (ja) | キャッシュメモリ制御装置および計算機システム | |
US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
US6427188B1 (en) | Method and system for early tag accesses for lower-level caches in parallel with first-level cache | |
JP4417715B2 (ja) | キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置 | |
US9886385B1 (en) | Content-directed prefetch circuit with quality filtering | |
KR20150016278A (ko) | 캐시 및 변환 색인 버퍼를 갖는 데이터 처리장치 | |
US20090138680A1 (en) | Vector atomic memory operations | |
US20080098174A1 (en) | Cache memory having pipeline structure and method for controlling the same | |
JP2005533295A5 (ja) | ||
US7260674B2 (en) | Programmable parallel lookup memory | |
US8707014B2 (en) | Arithmetic processing unit and control method for cache hit check instruction execution | |
JP7070384B2 (ja) | 演算処理装置、メモリ装置、及び演算処理装置の制御方法 | |
JP5954112B2 (ja) | メモリ装置、演算処理装置、及びキャッシュメモリ制御方法 | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
JP2001195304A (ja) | キャッシュ記憶装置 | |
JP2007156821A (ja) | キャッシュシステム及び共用2次キャッシュ | |
US9223714B2 (en) | Instruction boundary prediction for variable length instruction set | |
US6434670B1 (en) | Method and apparatus for efficiently managing caches with non-power-of-two congruence classes | |
US20200012514A1 (en) | Systems, Methods, and Apparatuses for Resource Monitoring | |
JP2010102623A (ja) | キャッシュメモリ及びその制御方法 | |
US20030196072A1 (en) | Digital signal processor architecture for high computation speed | |
KR101076815B1 (ko) | 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템 | |
CN112395000A (zh) | 一种数据预加载方法和指令处理装置 | |
JP4068828B2 (ja) | 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210909 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220322 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220418 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7070384 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |