JP4927840B2 - 可変長命令の固定数を持つ命令キャッシュ - Google Patents
可変長命令の固定数を持つ命令キャッシュ Download PDFInfo
- Publication number
- JP4927840B2 JP4927840B2 JP2008524216A JP2008524216A JP4927840B2 JP 4927840 B2 JP4927840 B2 JP 4927840B2 JP 2008524216 A JP2008524216 A JP 2008524216A JP 2008524216 A JP2008524216 A JP 2008524216A JP 4927840 B2 JP4927840 B2 JP 4927840B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- cache
- cache line
- length
- 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
- 238000007726 management method Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 claims 15
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
-
- 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/3816—Instruction alignment, e.g. cache line crossing
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
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)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
Claims (16)
- 可変命令長を持つプロセッサにおけるキャッシュ管理の方法であって、該方法は、
固定数の命令を含む第1の複数の命令のそれぞれを検査して各命令の対応する長さを決定することと、前記第1の複数の命令は第1の命令長もつ第1の命令と、前記第1の命令長とは異なる第2の命令長をもつ第2の命令とを含み、
前記第1の複数の命令のそれぞれを予め定められた境界に沿って整列させることと、
整列された前記第1の複数の命令をキャッシュの第1のキャッシュラインに記憶すること、
前記固定数の命令を含む第2の複数の命令を前記キャッシュの第2のキャッシュラインに記憶すること、
前記キャッシュ内に、前記第1のキャッシュラインの近くに、
次のフェッチアドレスと、
前記第1のキャッシュラインに関連するキャッシュラインタグに加算されると前記次のフェッチアドレスが得られるオフセットと、
のうちの1つを記憶すること、
を含む方法。 - 前記第1の複数の命令を前記第1のキャッシュラインに置く前に、前記次のフェッチアドレスと前記オフセットとのうちの少なくとも1つを決定すること、をさらに含む請求項1の方法。
- 前記第1の複数の命令のそれぞれに関連する対応する予め定められた命令境界を確認することをさらに含む請求項1の方法。
- 前記整列させることは、前記第1の複数の命令のそれぞれを前記第1のキャッシュラインの対応する予め定められた境界を用いて整列させることを含む請求項1の方法。
- 各予め定められた境界は、関連する語アドレスをもつ語境界である請求項4の方法。
- 前記固定数の命令を記憶した後、前記第1のキャッシュラインは空きの部分を含む請求項1の方法。
- 前記固定数は4である請求項1の方法。
- 第1の命令と第2の命令とを含む予め定められた数の命令を記憶する第1のキャッシュラインと、ここで、前記第1の命令は第1の命令長をもち、前記第2の命令は前記第1の命令長とは異なる第2の命令長をもち、
前記予め定められた数の命令を記憶する第2のキャッシュラインと、
を含む命令キャッシュと、
各命令の対応する長さを決定し、各命令を前記キャッシュの対応する語境界に沿って整列させ、前記整列された命令を前記キャッシュへ渡すプレデコーダと、ここで、前記プレデコーダは前記予め定められた数の命令のそれぞれを、前記第1のキャッシュラインの対応する予め定められた語境界を用いて整列させる、
を備え、
前記第1のキャッシュラインは、さらに、
次のフェッチアドレスと、
前記第1のキャッシュラインに関連するキャッシュラインタグに加算されると前記次のフェッチアドレスが得られるオフセットと、
のうちの1つを記憶する、プロセッサ。 - 前記プレデコーダは、前記第1のキャッシュラインに書き込まれる最後の命令に続く次の命令の前記次のフェッチアドレスを計算し、前記次の命令の前記次のフェッチアドレスと前記オフセットとのうちの1つを前記第1のキャッシュラインに記憶する、請求項8のプロセッサ。
- 可変長の命令を実行する命令実行パイプラインをさらに備える請求項8のプロセッサ。
- 可変命令長を持つプロセッサにおけるキャッシュ管理の方法であって、該方法は、
複数のキャッシュラインを備えるキャッシュのキャッシュライン毎に記憶可能な固定数の命令を決定することと、ここで前記固定数は1より大きく、
前記固定数の命令を含む複数の命令のそれぞれに対応する長さを決定するために、前記複数の命令のそれぞれを検査することと、ここで、前記複数の命令は第1の命令長をもつ第1の命令と前記第1の命令長とは異なる第2の命令長をもつ第2の命令とを含み、
前記複数の命令のそれぞれを対応する予め定められた境界に沿って整列させることと、
前記第1のキャッシュラインに整列された前記複数の命令を記憶することと、
を含む方法。 - 前記複数の命令のそれぞれは、前記第1のキャッシュラインに関連する語長を越えない対応する命令長をもつ、請求項11の方法。
- 少なくとも1つの予め定められた境界は語境界である請求項11の方法。
- 前記キャッシュ内に、前記第1のキャッシュラインの近くに次のフェッチアドレスを記憶すること、をさらに含む請求項11の方法。
- 前記第1のキャッシュラインに前記複数の命令を記憶する前に、前記次のフェッチアドレスを決定すること、をさらに含む請求項14の方法。
- 前記キャッシュ内に、前記第1のキャッシュラインの近くに、前記第1のキャッシュラインに関連するキャッシュラインタグに加算されると次のフェッチアドレスが得られるオフセットを記憶すること、をさらに含む請求項11の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/193,547 US7568070B2 (en) | 2005-07-29 | 2005-07-29 | Instruction cache having fixed number of variable length instructions |
US11/193,547 | 2005-07-29 | ||
PCT/US2006/029523 WO2007016393A2 (en) | 2005-07-29 | 2006-07-26 | Instruction cache having fixed number of variable length instructions |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011237313A Division JP5341163B2 (ja) | 2005-07-29 | 2011-10-28 | 可変長命令の固定数を持つ命令キャッシュ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009503700A JP2009503700A (ja) | 2009-01-29 |
JP4927840B2 true JP4927840B2 (ja) | 2012-05-09 |
Family
ID=37451109
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008524216A Expired - Fee Related JP4927840B2 (ja) | 2005-07-29 | 2006-07-26 | 可変長命令の固定数を持つ命令キャッシュ |
JP2011237313A Expired - Fee Related JP5341163B2 (ja) | 2005-07-29 | 2011-10-28 | 可変長命令の固定数を持つ命令キャッシュ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011237313A Expired - Fee Related JP5341163B2 (ja) | 2005-07-29 | 2011-10-28 | 可変長命令の固定数を持つ命令キャッシュ |
Country Status (6)
Country | Link |
---|---|
US (1) | US7568070B2 (ja) |
EP (1) | EP1910919A2 (ja) |
JP (2) | JP4927840B2 (ja) |
KR (1) | KR101005633B1 (ja) |
CN (2) | CN101268440A (ja) |
WO (1) | WO2007016393A2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337272B2 (en) * | 2006-05-01 | 2008-02-26 | Qualcomm Incorporated | Method and apparatus for caching variable length instructions |
US8898437B2 (en) * | 2007-11-02 | 2014-11-25 | Qualcomm Incorporated | Predecode repair cache for instructions that cross an instruction cache line |
US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
US9753858B2 (en) * | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
JP5968693B2 (ja) * | 2012-06-25 | 2016-08-10 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US10853074B2 (en) * | 2014-05-01 | 2020-12-01 | Netronome Systems, Inc. | Table fetch processor instruction using table number to base address translation |
WO2016016726A2 (en) * | 2014-07-30 | 2016-02-04 | Linear Algebra Technologies Limited | Vector processor |
US9916251B2 (en) | 2014-12-01 | 2018-03-13 | Samsung Electronics Co., Ltd. | Display driving apparatus and cache managing method thereof |
CN106528450B (zh) * | 2016-10-27 | 2019-09-17 | 上海兆芯集成电路有限公司 | 数据预先提取方法及使用此方法的装置 |
CN108415729A (zh) * | 2017-12-29 | 2018-08-17 | 北京智芯微电子科技有限公司 | 一种cpu指令异常的处理方法及装置 |
CN110750303B (zh) * | 2019-09-25 | 2020-10-20 | 支付宝(杭州)信息技术有限公司 | 基于fpga的流水线式指令读取方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179680A (en) * | 1987-04-20 | 1993-01-12 | Digital Equipment Corporation | Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus |
EP0498654B1 (en) * | 1991-02-08 | 2000-05-10 | Fujitsu Limited | Cache memory processing instruction data and data processor including the same |
JP2828219B2 (ja) * | 1995-03-23 | 1998-11-25 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | オブジェクト・コード互換性を与える方法、オブジェクト・コード互換性並びにスカラ・プロセッサ及びスーパスカラ・プロセッサとの互換性を与える方法、ツリー命令を実行するための方法、データ処理システム |
JP3750821B2 (ja) * | 1996-05-15 | 2006-03-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴイ | 圧縮された命令フォーマットを処理するvliwプロセッサ |
TW357318B (en) | 1997-03-18 | 1999-05-01 | Ind Tech Res Inst | Branching forecast and reading device for unspecified command length extra-purity pipeline processor |
US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
US6253287B1 (en) | 1998-09-09 | 2001-06-26 | Advanced Micro Devices, Inc. | Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions |
US6253309B1 (en) | 1998-09-21 | 2001-06-26 | Advanced Micro Devices, Inc. | Forcing regularity into a CISC instruction set by padding instructions |
JP3490007B2 (ja) * | 1998-12-17 | 2004-01-26 | 富士通株式会社 | 命令制御装置 |
JP2003511789A (ja) * | 1999-10-14 | 2003-03-25 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 整列情報をキャッシュするための装置および方法 |
US6779100B1 (en) * | 1999-12-17 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Method and device for address translation for compressed instructions |
JP2003131945A (ja) * | 2001-10-25 | 2003-05-09 | Hitachi Ltd | キャッシュメモリ装置 |
US7133969B2 (en) * | 2003-10-01 | 2006-11-07 | Advanced Micro Devices, Inc. | System and method for handling exceptional instructions in a trace cache based processor |
-
2005
- 2005-07-29 US US11/193,547 patent/US7568070B2/en active Active
-
2006
- 2006-07-26 CN CNA2006800343645A patent/CN101268440A/zh active Pending
- 2006-07-26 WO PCT/US2006/029523 patent/WO2007016393A2/en active Application Filing
- 2006-07-26 JP JP2008524216A patent/JP4927840B2/ja not_active Expired - Fee Related
- 2006-07-26 EP EP06788854A patent/EP1910919A2/en not_active Ceased
- 2006-07-26 CN CN201510049939.1A patent/CN104657110B/zh not_active Expired - Fee Related
- 2006-07-26 KR KR1020087004751A patent/KR101005633B1/ko active IP Right Grant
-
2011
- 2011-10-28 JP JP2011237313A patent/JP5341163B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1910919A2 (en) | 2008-04-16 |
JP2009503700A (ja) | 2009-01-29 |
CN104657110A (zh) | 2015-05-27 |
JP5341163B2 (ja) | 2013-11-13 |
WO2007016393A3 (en) | 2007-06-28 |
JP2012074046A (ja) | 2012-04-12 |
KR101005633B1 (ko) | 2011-01-05 |
KR20080031981A (ko) | 2008-04-11 |
US20070028050A1 (en) | 2007-02-01 |
US7568070B2 (en) | 2009-07-28 |
WO2007016393A2 (en) | 2007-02-08 |
CN101268440A (zh) | 2008-09-17 |
CN104657110B (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4927840B2 (ja) | 可変長命令の固定数を持つ命令キャッシュ | |
JP5837126B2 (ja) | 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア | |
US7565510B2 (en) | Microprocessor with a register selectively storing unaligned load instructions and control method thereof | |
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US7962725B2 (en) | Pre-decoding variable length instructions | |
US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
JP3836322B2 (ja) | プリデコード情報を記憶するためのecc/パリティビットの使用 | |
JP2004506263A (ja) | 拡張レジスタモードで拡張レジスタセットにアクセスするcpu | |
US5396604A (en) | System and method for reducing the penalty associated with data cache misses | |
US20050086277A1 (en) | Processor core for using external extended arithmetic unit efficiently and processor incorporating the same | |
CN112559037B (zh) | 一种指令执行方法、单元、装置及系统 | |
EP0459233A2 (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
US9348598B2 (en) | Data processing apparatus and method for pre-decoding instructions to be executed by processing circuitry | |
US10956327B2 (en) | Systems and methods for mitigating dram cache conflicts through hardware assisted redirection of pages (HARP) | |
TWI438681B (zh) | 立即且置換之擷取與解碼機制 | |
CN116339832A (zh) | 数据处理装置、方法及处理器 | |
US20070011432A1 (en) | Address generation unit with operand recycling | |
CN113568663A (zh) | 代码预取指令 | |
JP3824657B2 (ja) | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 | |
TW202416131A (zh) | 用於壓縮操作期間的常數偵測之設備及方法 | |
CN115858022A (zh) | 集群化解码管线的可缩放切换点控制电路系统 | |
US20030088758A1 (en) | Methods and systems for determining valid microprocessor instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110201 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110502 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111028 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20111104 |
|
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: 20120110 |
|
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: 20120209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4927840 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |