KR101005633B1 - 일정한 개수의 가변 길이 명령을 가진 명령 캐시 - Google Patents
일정한 개수의 가변 길이 명령을 가진 명령 캐시 Download PDFInfo
- Publication number
- KR101005633B1 KR101005633B1 KR1020087004751A KR20087004751A KR101005633B1 KR 101005633 B1 KR101005633 B1 KR 101005633B1 KR 1020087004751 A KR1020087004751 A KR 1020087004751A KR 20087004751 A KR20087004751 A KR 20087004751A KR 101005633 B1 KR101005633 B1 KR 101005633B1
- Authority
- KR
- South Korea
- Prior art keywords
- instructions
- instruction
- cache
- cache line
- length
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 13
- 238000007726 management method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect 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
- 230000002123 temporal effect 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/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)
Abstract
Description
Claims (18)
- 가변 명령 길이를 가지는 프로세서에서의 캐시(cache) 관리 방법으로서,캐시의 제 1 캐시 라인에 일정한 수의 명령들을 포함하는 제 1 복수 명령들을 저장하는 단계 ― 상기 제 1 복수 명령들은 제 1 명령 길이를 가지는 제 1 명령 및 상기 제 1 명령 길이와 상이한 제 2 명령 길이를 가지는 제 2 명령을 포함함 ―;상기 캐시의 제 2 캐시 라인에 상기 일정한 수의 명령들을 포함하는 제 2 복수 명령들을 저장하는 단계; 및다음 패치(fetch) 어드레스; 및 상기 제 1 캐시 라인과 연관된 캐시 라인 태그에 추가될 때 상기 다음 패치 어드레스를 산출(yield)하는 오프셋 중 하나를 상기 캐시에 그리고 상기 제 1 캐시 라인에 인접하여 저장하는 단계를 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제1항에 있어서, 상기 제 1 복수 명령들의 대응하는 길이들을 결정하기 위해 상기 제 1 복수 명령들 각각을 검사하고, 미리 결정된 경계들을 따라 상기 제 1 복수 명령들 각각을 정렬하는 단계를 더 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제1항에 있어서, 상기 제 1 캐시 라인에 상기 제 1 복수 명령들을 배치하기 전에,상기 다음 패치 어드레스; 및상기 오프셋 중 적어도 하나를 결정하는 단계를 더 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제1항에 있어서, 상기 제 1 복수 명령들 각각과 연관된 대응하는 미리 결정된 명령 경계를 확정(ascertain)하는 단계를 더 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제1항에 있어서, 상기 제 1 캐시 라인의 대응하는 미리 결정된 경계를 이용하여 상기 제 1 복수 명령들 각각을 정렬하는 단계를 더 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제5항에 있어서, 각각의 미리 결정된 경계는 연관된 워드 어드레스를 가지는 워드 경계인, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제1항에 있어서, 상기 일정한 수의 명령들을 저장한 후에, 상기 제 1 캐시 라인은 가득 차지 않은(unoccupied), 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제1항에 있어서, 상기 일정한 수는 4인, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 프로세서로서,제 1 명령 및 제 2 명령을 포함하는 미리 결정된 수의 명령들을 저장하기 위한 제 1 캐시 라인 ― 상기 제 1 명령은 제 1 명령 길이를 가지고 상기 제 2 명령은 상기 제 1 명령 길이와 상이한 제 2 명령 길이를 가짐 ―;상기 미리 결정된 수의 명령들을 저장하기 위한 제 2 캐시 라인을 포함하는 명령 캐시를 포함하며,상기 제 1 캐시 라인은 추가적으로:다음 패치 어드레스; 및 상기 제 1 캐시 라인과 연관된 캐시 라인 태그에 추가될 때 상기 다음 패치 어드레스를 산출하는 오프셋 중 하나를 저장하는, 프로세서.
- 제9항에 있어서, 상기 제 1 캐시 라인의 대응하는 미리 결정된 경계를 이용하여 상기 제 1 명령 및 상기 제 2 명령 각각을 정렬하도록 동작가능한 프리디코더(predecoder)를 더 포함하는, 프로세서.
- 제10항에 있어서, 상기 프리디코더는 상기 제 1 캐시 라인에 기록된 마지막 명령 다음의 다음 명령의 상기 다음 패치 어드레스를 계산하도록 동작가능한, 프로세서.
- 제9항에 있어서,각각의 명령의 대응하는 길이를 확정하고;상기 캐시의 대응하는 워드 경계를 따라 각각의 명령을 정렬하며; 그리고상기 캐시로 상기 정렬될 명령들을 패스(pass)하도록 동작가능한 프리디코더를 더 포함하는, 프로세서.
- 제9항에 있어서, 가변하는 길이들을 가지는 명령들을 실행하도록 동작가능한 명령 실행 파이프라인을 더 포함하는, 프로세서.
- 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법으로서,복수의 캐시 라인들을 포함하는 캐시의 캐시 라인 마다 저장가능한 일정한 수의 명령들을 결정하는 단계 ― 상기 일정한 수는 1보다 큼 ―;제 1 캐시 라인에 상기 일정한 수의 명령들을 포함하는 복수의 명령들을 저장하는 단계 ― 상기 복수의 명령들은 제 1 명령 길이를 가지는 제 1 명령 및 상기 제 1 명령 길이와 상이한 제 2 명령 길이를 가지는 제 2 명령을 포함함 ―; 및다음 패치 어드레스 및 상기 제 1 캐시 라인과 연관된 캐시 라인 태그에 추가될 때 상기 다음 패치 어드레스를 산출하는 오프셋 중 하나를 상기 캐시에 그리고 상기 제 1 캐시 라인에 인접하여 저장하는 단계를 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제14항에 있어서, 각각의 명령의 대응하는 길이를 결정하기 위한 상기 복수의 명령들 각각을 검사하고, 그리고 상기 캐시에 배치하기 전에 대응하는 미리 결정된 경계를 따라 상기 복수의 명령들 각각을 정렬하는 단계를 더 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제14항에 있어서, 상기 복수의 명령들의 각각은 상기 제 1 캐시 라인과 연관된 워드 길이를 초과하지 않는 대응하는 명령 길이를 가지는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제15항에 있어서, 적어도 하나의 미리 결정된 경계는 워드 경계인, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
- 제14항에 있어서, 상기 제 1 캐시 라인에 상기 복수의 명령들을 저장하는 단계 이전에 상기 다음 패치 어드레스를 결정하는 단계를 더 포함하는, 가변 명령 길이를 가지는 프로세서에서의 캐시 관리 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/193,547 | 2005-07-29 | ||
US11/193,547 US7568070B2 (en) | 2005-07-29 | 2005-07-29 | Instruction cache having fixed number of variable length instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080031981A KR20080031981A (ko) | 2008-04-11 |
KR101005633B1 true KR101005633B1 (ko) | 2011-01-05 |
Family
ID=37451109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087004751A KR101005633B1 (ko) | 2005-07-29 | 2006-07-26 | 일정한 개수의 가변 길이 명령을 가진 명령 캐시 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7568070B2 (ko) |
EP (1) | EP1910919A2 (ko) |
JP (2) | JP4927840B2 (ko) |
KR (1) | KR101005633B1 (ko) |
CN (2) | CN101268440A (ko) |
WO (1) | WO2007016393A2 (ko) |
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的流水线式指令读取方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001027749A1 (en) * | 1999-10-14 | 2001-04-19 | Advanced Micro Devices, Inc. | Apparatus and method for caching alignment information |
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 |
Family Cites Families (11)
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 |
WO1996029645A1 (en) * | 1995-03-23 | 1996-09-26 | International Business Machines Corporation | Object-code compatible representation of very long instruction word programs |
EP0843848B1 (en) * | 1996-05-15 | 2004-04-07 | Koninklijke Philips Electronics N.V. | Vliw processor which processes compressed instruction format |
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 |
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 | 富士通株式会社 | 命令制御装置 |
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 KR KR1020087004751A patent/KR101005633B1/ko active IP Right Grant
- 2006-07-26 CN CN201510049939.1A patent/CN104657110B/zh not_active Expired - Fee Related
- 2006-07-26 JP JP2008524216A patent/JP4927840B2/ja not_active Expired - Fee Related
- 2006-07-26 EP EP06788854A patent/EP1910919A2/en not_active Ceased
-
2011
- 2011-10-28 JP JP2011237313A patent/JP5341163B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
WO2001027749A1 (en) * | 1999-10-14 | 2001-04-19 | Advanced Micro Devices, Inc. | Apparatus and method for caching alignment information |
Also Published As
Publication number | Publication date |
---|---|
KR20080031981A (ko) | 2008-04-11 |
CN101268440A (zh) | 2008-09-17 |
WO2007016393A3 (en) | 2007-06-28 |
US20070028050A1 (en) | 2007-02-01 |
JP2009503700A (ja) | 2009-01-29 |
US7568070B2 (en) | 2009-07-28 |
CN104657110B (zh) | 2020-08-18 |
WO2007016393A2 (en) | 2007-02-08 |
EP1910919A2 (en) | 2008-04-16 |
JP4927840B2 (ja) | 2012-05-09 |
CN104657110A (zh) | 2015-05-27 |
JP2012074046A (ja) | 2012-04-12 |
JP5341163B2 (ja) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101005633B1 (ko) | 일정한 개수의 가변 길이 명령을 가진 명령 캐시 | |
US7962725B2 (en) | Pre-decoding variable length instructions | |
JP5837126B2 (ja) | 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア | |
US7676659B2 (en) | System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding | |
US5774710A (en) | Cache line branch prediction scheme that shares among sets of a set associative cache | |
US7404042B2 (en) | Handling cache miss in an instruction crossing a cache line boundary | |
US6092188A (en) | Processor and instruction set with predict instructions | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
TW200818007A (en) | Associate cached branch information with the last granularity of branch instruction variable length instruction set | |
US7519799B2 (en) | Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof | |
CN113568663A (zh) | 代码预取指令 | |
JP3824657B2 (ja) | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 | |
CN115858022A (zh) | 集群化解码管线的可缩放切换点控制电路系统 | |
Jin et al. | Instruction cache compression for embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20131129 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20141128 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161125 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170929 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20190924 Year of fee payment: 10 |