JP5793061B2 - キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム - Google Patents
キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム Download PDFInfo
- Publication number
- JP5793061B2 JP5793061B2 JP2011240780A JP2011240780A JP5793061B2 JP 5793061 B2 JP5793061 B2 JP 5793061B2 JP 2011240780 A JP2011240780 A JP 2011240780A JP 2011240780 A JP2011240780 A JP 2011240780A JP 5793061 B2 JP5793061 B2 JP 5793061B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction code
- instruction
- cache
- cache memory
- subroutine
- 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 18
- 238000001514 detection method Methods 0.000 claims description 28
- 238000012546 transfer Methods 0.000 claims description 6
- 230000000717 retained effect Effects 0.000 claims 2
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition 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/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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本実施の形態にかかるキャッシュメモリ装置を含むマイクロプロセッサシステムを示すブロック図である。図1に示すマイクロプロセッサシステム1は、CPU10、メモリ11、キャッシュメモリ12、およびキャッシュ制御回路13を有する。キャッシュ制御回路13は、分岐検出回路16、更新制御回路17、および上限命令数設定回路19を有する。ここで、キャッシュメモリ12とキャッシュ制御回路13は、キャッシュメモリ装置を構成する。
次に、本発明の実施の形態2について説明する。図5は、本実施の形態にかかるキャッシュメモリ装置を含むマイクロプロセッサシステム2を示すブロック図である。図5に示すマイクロプロセッサシステム2は、CPU20、メモリ11、キャッシュメモリ12、およびキャッシュ制御回路23を有する。キャッシュ制御回路23は、更新制御回路17および上限命令数設定回路19を有する。ここで、キャッシュメモリ12とキャッシュ制御回路23は、キャッシュメモリ装置を構成する。
次に、本発明の実施の形態3について説明する。図6は、本実施の形態にかかるキャッシュメモリ装置を含むマイクロプロセッサシステム3を示すブロック図である。図6に示すマイクロプロセッサシステム3は、CPU30、メモリ31、キャッシュメモリ12、およびキャッシュ制御回路33を有する。キャッシュ制御回路33は、分岐検出回路16、更新制御回路17、および上限命令数設定回路39を有する。ここで、キャッシュメモリ12とキャッシュ制御回路33は、キャッシュメモリ装置を構成する。
次に、本発明の実施の形態4について説明する。図7は、本実施の形態にかかるキャッシュメモリ装置を含むマイクロプロセッサシステム4を示すブロック図である。図7に示すマイクロプロセッサシステム4は、CPU10、メモリ11、キャッシュメモリ42、およびキャッシュ制御回路43を有する。キャッシュ制御回路43は、分岐検出回路16、更新制御回路17、上限命令数設定回路19、およびバッファ45を有する。ここで、キャッシュメモリ42とキャッシュ制御回路43は、キャッシュメモリ装置を構成する。
10 CPU
11 メモリ
12 キャッシュメモリ
13 キャッシュ制御回路
14 フェッチバッファ
15 有効フラグビット
16 分岐検出回路
17 更新制御回路
18 カウンタ
19 上限命令数設定回路
51 フェッチアドレス
52、54 命令コード
53 命令コード格納イネーブル信号
55 分岐通知信号
56 上限命令数信号
57 キャッシュ開始通知信号
58 キャッシュ停止通知信号
59 有効フラグビットリセット信号
Claims (15)
- フェッチアドレスに対応した命令コードをキャッシュするキャッシュメモリと、
前記キャッシュメモリにキャッシュされる命令コードを制御するキャッシュ制御回路と、を備え、
前記キャッシュ制御回路は、
前記フェッチアドレスがサブルーチンへの分岐を示す場合、当該サブルーチンに対応する命令コードをキャッシュ対象とし、
前記キャッシュ対象とされた命令コードの数が予め設定された上限数を超えた場合、前記キャッシュ対象とされた命令コードを無効にする、
キャッシュメモリ装置。 - 前記キャッシュ制御回路は、
前記フェッチアドレスがサブルーチンへの分岐を示す場合、前記キャッシュメモリに前記サブルーチンに対応する命令コードをキャッシュし、
前記キャッシュされた命令コードの数が予め設定された上限数を超えた場合、前記キャッシュされた命令コードを無効にする、
請求項1に記載のキャッシュメモリ装置。 - 前記キャッシュメモリは、前記命令コードが格納されるメモリセル毎に設けられ、前記キャッシュされた各々の命令コードが有効であるか否かを示す有効フラグを保持可能に構成され、
前記キャッシュメモリに前記サブルーチンに対応する命令コードがキャッシュされる際に前記有効フラグが有効とされ、
前記キャッシュされた命令コードの数が予め設定された上限数を超えた場合、前記キャッシュされた命令コードの有効フラグが無効とされる、
請求項2に記載のキャッシュメモリ装置。 - 前記キャッシュメモリに前記命令コードがキャッシュされる場合、前記有効フラグが無効となっているメモリセルに前記命令コードがキャッシュされる、
請求項3に記載のキャッシュメモリ装置。 - 前記キャッシュ制御回路は、前記フェッチアドレスに対応した命令コードを一時的に保持可能なバッファを備え、
前記キャッシュ制御回路は、
前記フェッチアドレスがサブルーチンへの分岐を示す場合、前記バッファに前記サブルーチンに対応する命令コードを保持し、
あるサブルーチンへの分岐が示された後で、前記バッファに保持された前記あるサブルーチンへの分岐後の命令コードの数が予め設定された上限数を超える前に、新たなサブルーチンへの分岐が示された場合に、前記バッファに保持されている前記あるサブルーチンへの分岐後の命令コードを前記キャッシュメモリに転送し、
あるサブルーチンへの分岐が示された後で、前記バッファに保持された前記あるサブルーチンへの分岐後の命令コードの数が予め設定された上限数を超えた場合に、前記バッファに保持されている前記あるサブルーチンへの分岐後の命令コードを無効にする、
請求項1に記載のキャッシュメモリ装置。 - 前記バッファは、前記命令コードが格納されるメモリセル毎に設けられ、前記格納された各々の命令コードが有効であるか否かを示す有効フラグを保持可能に構成され、
前記バッファに前記サブルーチンに対応する命令コードが保持される際に前記有効フラグが有効とされ、
前記保持された命令コードの数が予め設定された上限数を超えた場合、前記保持された命令コードの有効フラグが無効とされる、
請求項5に記載のキャッシュメモリ装置。 - 前記バッファに前記命令コードが保持される場合、前記有効フラグが無効となっているメモリセルに前記命令コードが保持される、
請求項6に記載のキャッシュメモリ装置。 - 前記命令コードの予め設定された上限数は、CPUがメモリにフェッチアドレスを出力してから前記メモリが前記命令コードを出力するまでのクロック数を、前記CPUが一つの命令コードを実行する際に必要なクロック数で除算した数である、請求項1乃至7のいずれか一項に記載のキャッシュメモリ装置。
- 前記キャッシュ制御回路は、前記キャッシュメモリにおけるキャッシュの開始と停止を指示する更新制御回路を備え、
前記更新制御回路は、
前記キャッシュメモリに格納されたサブルーチンの命令コードの数をカウントするカウンタを備え、
前記命令コードの予め設定された上限数と前記カウンタの値とを比較し、前記カウンタの値が前記命令コードの予め設定された上限数を超えた場合に、前記キャッシュ対象とされた命令コードを無効にする、
請求項1乃至4のいずれか一項に記載のキャッシュメモリ装置。 - 前記キャッシュ制御回路は、前記バッファにおける分岐後の命令コードの保持の開始と停止を指示する更新制御回路を備え、
前記更新制御回路は、
前記バッファに保持された分岐後の命令コードの数をカウントするカウンタを備え、
前記命令コードの予め設定された上限数と前記カウンタの値とを比較し、前記カウンタの値が前記命令コードの予め設定された上限数を超えた場合に、前記キャッシュ対象とされた命令コードを無効にする、
請求項5乃至7のいずれか一項に記載のキャッシュメモリ装置。 - 前記キャッシュ制御回路は、前記フェッチアドレスがサブルーチンへ分岐したことを検出する分岐検出回路を備える、請求項1乃至10のいずれか一項に記載のキャッシュメモリ装置。
- 前記キャッシュ制御回路は、前記フェッチアドレスのサブルーチンへの分岐を示すCPUから出力された分岐通知信号に基づいて、前記フェッチアドレスがサブルーチンへ分岐したと判断する、請求項1乃至10のいずれか一項に記載のキャッシュメモリ装置。
- 前記キャッシュ制御回路は、前記命令コードの上限数を設定する上限命令数設定回路を備え、
前記上限命令数設定回路は、
CPUから出力された、前記CPUが一つの命令コードを実行する際に必要なクロック数に関するクロック数情報と、メモリから出力された、前記CPUが前記メモリにフェッチアドレスを出力してから前記メモリが前記命令コードを出力するまでのクロック数に関するレイテンシ情報と、に基づき前記命令コードの上限数を設定する、
請求項1乃至12のいずれか一項に記載のキャッシュメモリ装置。 - CPUと、
前記CPUで実行される命令コードが格納されたメモリと、
前記CPUから出力されたフェッチアドレスに対応した命令コードをキャッシュするキャッシュメモリと、
前記キャッシュメモリにキャッシュされる命令コードを制御するキャッシュ制御回路と、を備え、
前記キャッシュ制御回路は、
前記フェッチアドレスがサブルーチンへの分岐を示す場合、当該サブルーチンに対応する命令コードをキャッシュ対象とし、
前記キャッシュ対象とされた命令コードの数が予め設定された上限数を超えた場合、前記キャッシュ対象とされた命令コードを無効にする、
マイクロプロセッサシステム。 - フェッチアドレスに対応した命令コードをキャッシュするキャッシュメモリにおけるキャッシュ制御方法であって、
前記フェッチアドレスがサブルーチンへの分岐を示す場合、当該サブルーチンに対応する命令コードをキャッシュ対象とし、
前記キャッシュ対象とされた命令コードの数が予め設定された上限数を超えた場合、前記キャッシュ対象とされた命令コードを無効にする、
キャッシュ制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011240780A JP5793061B2 (ja) | 2011-11-02 | 2011-11-02 | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム |
EP12190816.4A EP2590082B1 (en) | 2011-11-02 | 2012-10-31 | Cache memory apparatus, cache control method, and microprocessor system |
CN201210432095.5A CN103092773B (zh) | 2011-11-02 | 2012-11-02 | 高速缓存存储器装置、高速缓存控制方法和微处理器系统 |
US13/668,009 US9317438B2 (en) | 2011-11-02 | 2012-11-02 | Cache memory apparatus, cache control method, and microprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011240780A JP5793061B2 (ja) | 2011-11-02 | 2011-11-02 | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013097638A JP2013097638A (ja) | 2013-05-20 |
JP5793061B2 true JP5793061B2 (ja) | 2015-10-14 |
Family
ID=47088751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011240780A Expired - Fee Related JP5793061B2 (ja) | 2011-11-02 | 2011-11-02 | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9317438B2 (ja) |
EP (1) | EP2590082B1 (ja) |
JP (1) | JP5793061B2 (ja) |
CN (1) | CN103092773B (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047092B2 (en) * | 2012-12-21 | 2015-06-02 | Arm Limited | Resource management within a load store unit |
US9213491B2 (en) * | 2014-03-31 | 2015-12-15 | Intel Corporation | Disabling a command associated with a memory device |
CN104331962A (zh) * | 2014-10-27 | 2015-02-04 | 厦门博佳琴电子科技有限公司 | 一种置物柜指纹识别系统 |
US10908817B2 (en) * | 2017-12-08 | 2021-02-02 | Sandisk Technologies Llc | Signal reduction in a microcontroller architecture for non-volatile memory |
JP7089423B2 (ja) * | 2018-07-12 | 2022-06-22 | ルネサスエレクトロニクス株式会社 | 情報処理装置及び制御方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5890244A (ja) * | 1981-11-24 | 1983-05-28 | Hitachi Ltd | デ−タ処理装置 |
JPS62152043A (ja) * | 1985-12-26 | 1987-07-07 | Nec Corp | 命令コ−ドアクセス制御方式 |
US4933837A (en) * | 1986-12-01 | 1990-06-12 | Advanced Micro Devices, Inc. | Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories |
DE69128741T2 (de) | 1990-05-18 | 1998-07-16 | Koninkl Philips Electronics Nv | Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür |
JPH04333929A (ja) * | 1991-05-10 | 1992-11-20 | Toshiba Corp | キャッシュメモリ制御方式 |
JPH05181746A (ja) * | 1991-12-26 | 1993-07-23 | Mitsubishi Electric Corp | データ処理システム及びメモリ制御方式 |
JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
US5729713A (en) * | 1995-03-27 | 1998-03-17 | Texas Instruments Incorporated | Data processing with first level cache bypassing after a data transfer becomes excessively long |
US5606682A (en) * | 1995-04-07 | 1997-02-25 | Motorola Inc. | Data processor with branch target address cache and subroutine return address cache and method of operation |
JPH09305490A (ja) | 1996-05-17 | 1997-11-28 | Nec Corp | マイクロプロセッサシステム |
JP2002196981A (ja) * | 2000-12-22 | 2002-07-12 | Fujitsu Ltd | データ処理装置 |
JP2004171177A (ja) * | 2002-11-19 | 2004-06-17 | Renesas Technology Corp | キャッシュシステムおよびキャッシュメモリ制御装置 |
JP4393317B2 (ja) * | 2004-09-06 | 2010-01-06 | 富士通マイクロエレクトロニクス株式会社 | メモリ制御回路 |
JP4189402B2 (ja) * | 2005-02-21 | 2008-12-03 | パナソニック株式会社 | キャッシュ回路 |
JP4903415B2 (ja) * | 2005-10-18 | 2012-03-28 | 株式会社日立製作所 | 記憶制御システム及び記憶制御方法 |
JP2008090492A (ja) * | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | キャッシュコントローラ、マイクロプロセッサシステム、記憶装置 |
JP2010066892A (ja) * | 2008-09-09 | 2010-03-25 | Renesas Technology Corp | データプロセッサ及びデータ処理システム |
-
2011
- 2011-11-02 JP JP2011240780A patent/JP5793061B2/ja not_active Expired - Fee Related
-
2012
- 2012-10-31 EP EP12190816.4A patent/EP2590082B1/en not_active Not-in-force
- 2012-11-02 US US13/668,009 patent/US9317438B2/en not_active Expired - Fee Related
- 2012-11-02 CN CN201210432095.5A patent/CN103092773B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2590082A1 (en) | 2013-05-08 |
US20130111140A1 (en) | 2013-05-02 |
JP2013097638A (ja) | 2013-05-20 |
CN103092773A (zh) | 2013-05-08 |
US9317438B2 (en) | 2016-04-19 |
CN103092773B (zh) | 2017-10-20 |
EP2590082B1 (en) | 2018-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367472B2 (en) | Observation of data in persistent memory | |
US6978350B2 (en) | Methods and apparatus for improving throughput of cache-based embedded processors | |
US8103832B2 (en) | Method and apparatus of prefetching streams of varying prefetch depth | |
US9886385B1 (en) | Content-directed prefetch circuit with quality filtering | |
US9292447B2 (en) | Data cache prefetch controller | |
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
JP5793061B2 (ja) | キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム | |
US20120226865A1 (en) | Network-on-chip system including active memory processor | |
KR20130041836A (ko) | 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템 | |
JP6627629B2 (ja) | 演算処理装置、および演算処理装置の制御方法 | |
TWI518585B (zh) | 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法 | |
JP2008542880A (ja) | 命令の型に応じて構成可能なキャッシュ・システム | |
US9280476B2 (en) | Hardware stream prefetcher with dynamically adjustable stride | |
US6772326B2 (en) | Interruptible and re-entrant cache clean range instruction | |
JP5561374B2 (ja) | 情報処理システム | |
US9645825B2 (en) | Instruction cache with access locking | |
JP6016689B2 (ja) | 半導体装置 | |
JP5116275B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
US10649786B2 (en) | Reduced stack usage in a multithreaded processor | |
EP3332329B1 (en) | Device and method for prefetching content to a cache memory | |
JP5828324B2 (ja) | マルチプロセッサシステム、マルチプロセッサ制御方法、及びプロセッサ | |
JP2000235519A (ja) | キャッシュシステムおよびキャッシュ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150519 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150708 |
|
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: 20150721 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150807 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5793061 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |