JP5159258B2 - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- JP5159258B2 JP5159258B2 JP2007288965A JP2007288965A JP5159258B2 JP 5159258 B2 JP5159258 B2 JP 5159258B2 JP 2007288965 A JP2007288965 A JP 2007288965A JP 2007288965 A JP2007288965 A JP 2007288965A JP 5159258 B2 JP5159258 B2 JP 5159258B2
- Authority
- JP
- Japan
- Prior art keywords
- repeat
- buffer
- instruction
- instruction code
- entry
- 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
- 230000006870 function Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 7
- 238000000034 method Methods 0.000 claims description 3
- 239000000470 constituent Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- 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
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
図1は、本発明の第1の実施形態にしたがった演算処理装置(マイクロプロセッサ)の構成例を示すものである。ここでは、キャッシュブロックとしての命令キャッシュメモリからの命令コードを格納するための、リピートバッファを備えた命令キャッシュシステムを例に説明する。
図4は、本発明の第2の実施形態にしたがった演算処理装置(マイクロプロセッサ)の構成例を示すものである。ここでは、リピートバッファを備えた命令キャッシュシステムにおいて、リピートバッファに命令キャッシュメモリからの命令コードを格納するとともに、命令キャッシュメモリから命令コードを読み出す際には、命令キャッシュタグRAMを先んじて読む(先引きする)ことで、命令キャッシュメモリへのアクセスにともなう消費電力を削減できるようにした場合について説明する。なお、図1に示した命令キャッシュシステムと同一部分には同一符号を付して、詳しい説明は割愛する。
図5は、本発明の第3の実施形態にしたがった演算処理装置(マイクロプロセッサ)の構成例を示すものである。ここでは、リピートバッファを備えた命令キャッシュシステムにおいて、リピートバッファを、リピートブロック中の命令コード群の格納のみならず、命令キャッシュメモリのプリフェッチバッファとしての機能をも兼ね備えた多機能バッファとした場合について説明する。なお、図1に示した命令キャッシュシステムと同一部分には同一符号を付して、詳しい説明は割愛する。
Claims (5)
- 主記憶装置からの複数の命令コードを取り込んで格納するキャッシュブロックと、
前記キャッシュブロックにフェッチアクセスし、逐次、前記複数の命令コードを取り込んで実行する中央演算装置と、
前記キャッシュブロックに格納された前記複数の命令コードのうち、処理プログラム中で反復実行されるリピートブロックの先頭の命令コードから、前記キャッシュブロックのライン構成によらず、バッファサイズ分の命令コード群を格納するリピートバッファと、
前記リピートバッファ内の操作対象エントリを指し示すとともに操作後にインクリメントされるエントリポインタと、
前記リピートブロックの反復により、前記リピートバッファに格納された前記命令コード群を前記中央演算装置に供給するように制御する命令キャッシュ制御部と、
を備え、
前記命令キャッシュ制御部は、
前記リピートバッファ内の各エントリが有効か無効かを判定し、
前記中央演算装置からの逐次要求、リピート要求、及び、分岐要求であってリピート以外のもの、の各フェッチの種類を識別し、
リピート要求に応答して、前記エントリポインタを初期化してリピートバッファの先頭に位置づけ、
逐次要求に応答して、
エントリポインタが指し示すリピートバッファエントリが有効であれば、該エントリの内容を命令コードとして選択してエントリポインタをインクリメントし、
エントリポインタが指し示すリピートバッファエントリが無効であれば、前記キャッシュブロックからフェッチした命令コードを選択するとともにエントリポインタの指し示すリピートバッファエントリに該命令コードを格納して該エントリを有効とし、エントリポインタをインクリメントし、
分岐要求であってリピート以外のものに応答して、前記リピートバッファへの命令コードの格納を中止し、
前記リピートバッファに格納された前記命令コード群と前記中央演算装置からのフェッチアクセスとのアドレス比較をせず、前記リピートバッファまたは前記キャッシュブロックからの命令コードの選択を行う
ことを特徴とする演算処理装置。 - 前記キャッシュブロックは複数のデータRAMを有して構成され、
前記リピートバッファに格納された前記命令コード群の終端の命令コードに続く命令コードが格納されている、前記データRAMを指し示すウェイインジケータをさらに備えることを特徴とする請求項1に記載の演算処理装置。 - 前記キャッシュブロックのラインに対応するタグ情報を記憶するタグRAMと、
前記キャッシュブロックのラインの境界を越える以前のフェッチアクセス時に、あらかじめ次のラインに対応するタグ情報を前記タグRAMから読み出して、次のライン境界を越える逐次的フェッチ要求によりアクセスすることが予想されるアドレスを生成し、その生成された前記アドレスと前記タグ情報とを比較した結果を保持する先引き結果ストレージと
をさらに備え、
前記中央演算装置からのライン境界を越える逐次的フェッチ要求に応じて実際に前記キャッシュブロックへアクセスする際には、前記先引き結果ストレージで保持されている比較結果にもとづいて、前記キャッシュブロックへのアクセス制御を行うことを特徴とする請求項1に記載の演算処理装置。 - 前記リピートバッファは、前記主記憶装置からの複数の命令コードを取り込んで格納する、前記キャッシュブロックのプリフェッチバッファとしても機能する多機能バッファにより構成され、
前記多機能バッファは、前記処理プログラム中で反復実行されるリピートブロックがない場合に前記プリフェッチバッファとして機能するように、その用途が前記中央演算装置からのフェッチ要求により切り替え制御されることを特徴とする請求項1に記載の演算処理装置。 - 前記リピートブロックは、ネスト構造が排除されていることを特徴とする請求項1に記載の演算処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007288965A JP5159258B2 (ja) | 2007-11-06 | 2007-11-06 | 演算処理装置 |
US12/260,269 US20090119487A1 (en) | 2007-11-06 | 2008-10-29 | Arithmetic processing apparatus for executing instruction code fetched from instruction cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007288965A JP5159258B2 (ja) | 2007-11-06 | 2007-11-06 | 演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009116621A JP2009116621A (ja) | 2009-05-28 |
JP5159258B2 true JP5159258B2 (ja) | 2013-03-06 |
Family
ID=40589343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007288965A Expired - Fee Related JP5159258B2 (ja) | 2007-11-06 | 2007-11-06 | 演算処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090119487A1 (ja) |
JP (1) | JP5159258B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9400544B2 (en) | 2013-04-02 | 2016-07-26 | Apple Inc. | Advanced fine-grained cache power management |
US8984227B2 (en) * | 2013-04-02 | 2015-03-17 | Apple Inc. | Advanced coarse-grained cache power management |
US9396122B2 (en) | 2013-04-19 | 2016-07-19 | Apple Inc. | Cache allocation scheme optimized for browsing applications |
US9530000B2 (en) * | 2013-06-14 | 2016-12-27 | Microsoft Technology Licensing, Llc | Secure privilege level execution and access protection |
US9465616B2 (en) * | 2013-10-06 | 2016-10-11 | Synopsys, Inc. | Instruction cache with way prediction |
JP2017228213A (ja) * | 2016-06-24 | 2017-12-28 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5890244A (ja) * | 1981-11-24 | 1983-05-28 | Hitachi Ltd | デ−タ処理装置 |
JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
US5893142A (en) * | 1996-11-14 | 1999-04-06 | Motorola Inc. | Data processing system having a cache and method therefor |
US6073230A (en) * | 1997-06-11 | 2000-06-06 | Advanced Micro Devices, Inc. | Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches |
US6125440A (en) * | 1998-05-21 | 2000-09-26 | Tellabs Operations, Inc. | Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch |
US6598155B1 (en) * | 2000-01-31 | 2003-07-22 | Intel Corporation | Method and apparatus for loop buffering digital signal processing instructions |
US6757817B1 (en) * | 2000-05-19 | 2004-06-29 | Intel Corporation | Apparatus having a cache and a loop buffer |
US6567895B2 (en) * | 2000-05-31 | 2003-05-20 | Texas Instruments Incorporated | Loop cache memory and cache controller for pipelined microprocessors |
US7178013B1 (en) * | 2000-06-30 | 2007-02-13 | Cisco Technology, Inc. | Repeat function for processing of repetitive instruction streams |
US6950929B2 (en) * | 2001-05-24 | 2005-09-27 | Samsung Electronics Co., Ltd. | Loop instruction processing using loop buffer in a data processing device having a coprocessor |
JP4374956B2 (ja) * | 2003-09-09 | 2009-12-02 | セイコーエプソン株式会社 | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 |
JP4610218B2 (ja) * | 2004-03-30 | 2011-01-12 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
JP2006309337A (ja) * | 2005-04-26 | 2006-11-09 | Toshiba Corp | プロセッサ及びプロセッサの命令バッファ動作方法 |
US20070073925A1 (en) * | 2005-09-28 | 2007-03-29 | Arc International (Uk) Limited | Systems and methods for synchronizing multiple processing engines of a microprocessor |
US7475231B2 (en) * | 2005-11-14 | 2009-01-06 | Texas Instruments Incorporated | Loop detection and capture in the instruction queue |
US7873820B2 (en) * | 2005-11-15 | 2011-01-18 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
JP5233078B2 (ja) * | 2006-03-23 | 2013-07-10 | 富士通セミコンダクター株式会社 | プロセッサ及びその処理方法 |
US9772851B2 (en) * | 2007-10-25 | 2017-09-26 | International Business Machines Corporation | Retrieving instructions of a single branch, backwards short loop from a local loop buffer or virtual loop buffer |
-
2007
- 2007-11-06 JP JP2007288965A patent/JP5159258B2/ja not_active Expired - Fee Related
-
2008
- 2008-10-29 US US12/260,269 patent/US20090119487A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2009116621A (ja) | 2009-05-28 |
US20090119487A1 (en) | 2009-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241797B2 (en) | Replay reduction by wakeup suppression using early miss indication | |
JP5410281B2 (ja) | 非シーケンシャル命令アドレスをプリフェッチするための方法および装置 | |
JP5159258B2 (ja) | 演算処理装置 | |
US20050086435A1 (en) | Cache memory controlling apparatus, information processing apparatus and method for control of cache memory | |
EP1974255B1 (en) | Translation lookaside buffer manipulation | |
TW201351145A (zh) | 指令快取的減少耗能 | |
JPH02224023A (ja) | 命令ストリーム機能を有するプロセサ制御型インターフェイス | |
EP2936323B1 (en) | Speculative addressing using a virtual address-to-physical address page crossing buffer | |
JP2008107983A (ja) | キャッシュメモリ | |
JP2004171177A (ja) | キャッシュシステムおよびキャッシュメモリ制御装置 | |
CN107885530A (zh) | 提交高速缓存行的方法和指令高速缓存 | |
JPS6356731A (ja) | デ−タ処理装置 | |
JP2008186233A (ja) | 命令キャッシュプリフェッチ制御方法及びその装置 | |
US6654873B2 (en) | Processor apparatus and integrated circuit employing prefetching and predecoding | |
WO2011151944A1 (ja) | キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法 | |
JP2007272280A (ja) | データ処理装置 | |
JP2016157371A (ja) | プロセッサおよび命令コード生成装置 | |
JP2009193378A (ja) | ベクトル処理装置 | |
JP5902208B2 (ja) | データ処理装置 | |
KR101086457B1 (ko) | 저 전력 트레이스 캐쉬 및 명령어 세트 예측기를 구비한 프로세서 시스템 | |
JP2010015375A (ja) | メモリ制御回路および集積回路 | |
JP6016689B2 (ja) | 半導体装置 | |
JP4413663B2 (ja) | 命令キャッシュシステム | |
JP2008015668A (ja) | タスク管理装置 | |
JP2008257508A (ja) | キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111031 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120130 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120529 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121029 |
|
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: 20121113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121211 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5159258 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151221 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |