WO2007130789A3 - Method and apparatus for caching variable length instructions - Google Patents
Method and apparatus for caching variable length instructions Download PDFInfo
- Publication number
- WO2007130789A3 WO2007130789A3 PCT/US2007/066980 US2007066980W WO2007130789A3 WO 2007130789 A3 WO2007130789 A3 WO 2007130789A3 US 2007066980 W US2007066980 W US 2007066980W WO 2007130789 A3 WO2007130789 A3 WO 2007130789A3
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- boundary position
- cache
- instruction
- variable length
- length instructions
- Prior art date
Links
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
-
- 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- 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, 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, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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
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)
Abstract
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
BRPI0711166-5A BRPI0711166A2 (en) | 2006-05-01 | 2007-04-19 | Method and equipment for temporarily storing variable length instructions |
JP2009509929A JP4755281B2 (en) | 2006-05-01 | 2007-04-19 | Method and apparatus for caching variable length instructions |
CA2649476A CA2649476C (en) | 2006-05-01 | 2007-04-19 | Method and apparatus for caching variable length instructions |
MX2008013776A MX2008013776A (en) | 2006-05-01 | 2007-04-19 | Method and apparatus for caching variable length instructions. |
CN200780015669.6A CN101432703B (en) | 2006-05-01 | 2007-04-19 | Method and apparatus for caching variable length instructions |
EP07760923.8A EP2089801B1 (en) | 2006-05-01 | 2007-04-19 | Method and apparatus for caching variable length instructions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/381,038 | 2006-05-01 | ||
US11/381,038 US7337272B2 (en) | 2006-05-01 | 2006-05-01 | Method and apparatus for caching variable length instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2007130789A2 WO2007130789A2 (en) | 2007-11-15 |
WO2007130789A3 true WO2007130789A3 (en) | 2008-02-21 |
Family
ID=38561189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/066980 WO2007130789A2 (en) | 2006-05-01 | 2007-04-19 | Method and apparatus for caching variable length instructions |
Country Status (10)
Country | Link |
---|---|
US (1) | US7337272B2 (en) |
EP (1) | EP2089801B1 (en) |
JP (1) | JP4755281B2 (en) |
KR (1) | KR101005180B1 (en) |
CN (1) | CN101432703B (en) |
BR (1) | BRPI0711166A2 (en) |
CA (1) | CA2649476C (en) |
MX (1) | MX2008013776A (en) |
RU (1) | RU2435204C2 (en) |
WO (1) | WO2007130789A2 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587580B2 (en) * | 2005-02-03 | 2009-09-08 | Qualcomm Corporated | Power efficient instruction prefetch mechanism |
US8261019B2 (en) * | 2009-02-13 | 2012-09-04 | Oracle America, Inc. | Conveying critical data in a multiprocessor system |
US8086801B2 (en) * | 2009-04-08 | 2011-12-27 | International Business Machines Corporation | Loading data to vector renamed register from across multiple cache lines |
CN101699391B (en) * | 2009-09-30 | 2013-01-16 | 江南大学 | Byte code buffer device for improving instruction fetch bandwidth of Java processor and using method thereof |
US9460018B2 (en) * | 2012-05-09 | 2016-10-04 | Qualcomm Incorporated | Method and apparatus for tracking extra data permissions in an instruction cache |
US8819342B2 (en) * | 2012-09-26 | 2014-08-26 | Qualcomm Incorporated | Methods and apparatus for managing page crossing instructions with different cacheability |
US9495297B2 (en) | 2014-07-22 | 2016-11-15 | International Business Machines Corporation | Cache line crossing load techniques for a caching system |
US20160179540A1 (en) * | 2014-12-23 | 2016-06-23 | Mikhail Smelyanskiy | Instruction and logic for hardware support for execution of calculations |
US10133627B2 (en) | 2015-12-11 | 2018-11-20 | SK Hynix Inc. | Memory device controller with mirrored command and operating method thereof |
CN106227676B (en) * | 2016-09-22 | 2019-04-19 | 大唐微电子技术有限公司 | A kind of cache and the method and apparatus that data are read from cache |
US11334491B1 (en) * | 2020-11-18 | 2022-05-17 | Centaur Technology, Inc. | Side cache array for greater fetch bandwidth |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999047999A1 (en) * | 1998-03-18 | 1999-09-23 | Qualcomm Incorporated | A digital signal processor |
US6598148B1 (en) * | 1989-08-03 | 2003-07-22 | Patriot Scientific Corporation | High performance microprocessor having variable speed system clock |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53109443A (en) * | 1977-03-07 | 1978-09-25 | Hitachi Ltd | Data processor |
JPS6020255A (en) * | 1983-07-15 | 1985-02-01 | Fujitsu Ltd | Buffer memory control system |
JPS63245745A (en) * | 1987-04-01 | 1988-10-12 | Hitachi Ltd | Buffer storage controller |
US6006324A (en) * | 1995-01-25 | 1999-12-21 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
US5802323A (en) * | 1996-06-14 | 1998-09-01 | Advanced Micro Devices, Inc. | Transparent burst access to data having a portion residing in cache and a portion residing in memory |
US5892962A (en) * | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US6804799B2 (en) * | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US7340495B2 (en) * | 2001-10-29 | 2008-03-04 | Intel Corporation | Superior misaligned memory load and copy using merge hardware |
JP3755661B2 (en) * | 2002-08-20 | 2006-03-15 | 日本電気株式会社 | Instruction cache control system and instruction cache control method in VLIW processor |
US7243172B2 (en) * | 2003-10-14 | 2007-07-10 | Broadcom Corporation | Fragment storage for data alignment and merger |
US7568070B2 (en) * | 2005-07-29 | 2009-07-28 | Qualcomm Incorporated | Instruction cache having fixed number of variable length instructions |
-
2006
- 2006-05-01 US US11/381,038 patent/US7337272B2/en active Active
-
2007
- 2007-04-19 WO PCT/US2007/066980 patent/WO2007130789A2/en active Application Filing
- 2007-04-19 KR KR1020087029401A patent/KR101005180B1/en active IP Right Grant
- 2007-04-19 CN CN200780015669.6A patent/CN101432703B/en not_active Expired - Fee Related
- 2007-04-19 JP JP2009509929A patent/JP4755281B2/en not_active Expired - Fee Related
- 2007-04-19 MX MX2008013776A patent/MX2008013776A/en active IP Right Grant
- 2007-04-19 BR BRPI0711166-5A patent/BRPI0711166A2/en not_active Application Discontinuation
- 2007-04-19 EP EP07760923.8A patent/EP2089801B1/en not_active Not-in-force
- 2007-04-19 RU RU2008147131/08A patent/RU2435204C2/en not_active IP Right Cessation
- 2007-04-19 CA CA2649476A patent/CA2649476C/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598148B1 (en) * | 1989-08-03 | 2003-07-22 | Patriot Scientific Corporation | High performance microprocessor having variable speed system clock |
WO1999047999A1 (en) * | 1998-03-18 | 1999-09-23 | Qualcomm Incorporated | A digital signal processor |
Also Published As
Publication number | Publication date |
---|---|
CA2649476C (en) | 2012-02-07 |
KR20090018928A (en) | 2009-02-24 |
CA2649476A1 (en) | 2007-11-15 |
US7337272B2 (en) | 2008-02-26 |
JP2009535743A (en) | 2009-10-01 |
EP2089801A2 (en) | 2009-08-19 |
CN101432703A (en) | 2009-05-13 |
RU2435204C2 (en) | 2011-11-27 |
RU2008147131A (en) | 2010-06-10 |
WO2007130789A2 (en) | 2007-11-15 |
MX2008013776A (en) | 2008-11-14 |
KR101005180B1 (en) | 2011-01-04 |
CN101432703B (en) | 2016-09-14 |
EP2089801B1 (en) | 2018-07-18 |
US20070255905A1 (en) | 2007-11-01 |
JP4755281B2 (en) | 2011-08-24 |
BRPI0711166A2 (en) | 2011-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2007130789A3 (en) | Method and apparatus for caching variable length instructions | |
WO2002054230A3 (en) | System and method for prefetching data into a cache based on miss distance | |
WO2008039527A3 (en) | Method and apparatus for defragmenting a storage device | |
IL169265A0 (en) | Page descriptors for prefetching and memory management | |
WO2005116840A3 (en) | Information processing apparatus and information processing method | |
EP1912118A3 (en) | Storage apparatus, controller and control method | |
GB2453079A (en) | Apparatus and method of prefetching data | |
TWI372973B (en) | Method for caching in and reading from a non-volatile cache memory content and computing system for providing instant-on resume from a low power state | |
IN2012DN02977A (en) | ||
WO2009144688A3 (en) | System, method and device for locally caching data | |
JP2006527873A5 (en) | ||
NO20053075D0 (en) | Detail level access control system and method for data stored in relational databases. | |
EP1731976A3 (en) | Configuration method for control devices | |
GB2445496A (en) | Method of manufacturing a limited use data storing device | |
WO2012106362A3 (en) | Apparatus, system, and method for managing eviction of data | |
GB2429558A (en) | Method for managing files for optimal performance | |
TW200636458A (en) | Non-volatile memory and method with multi-stream updating | |
IL190977A0 (en) | Caching memory attribute indicators with cached memory data | |
EP2131276A3 (en) | Information processing unit, program, and instruction sequence generation method | |
WO2005006196A3 (en) | Data integrety of a non valatile cache upon os cache driver operation | |
WO2012138700A3 (en) | Methods and apparatus for updating data in passive variable resistive memory | |
WO2009006113A3 (en) | Hierarchical cache tag architecture | |
WO2006125219A3 (en) | Caching instructions for a multiple-state processor | |
TW200639738A (en) | Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment | |
GB0719926D0 (en) | Cache memory having pipeline structure and method for controlling the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07760923 Country of ref document: EP Kind code of ref document: A2 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2649476 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: MX/a/2008/013776 Country of ref document: MX |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200780015669.6 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009509929 Country of ref document: JP Ref document number: 2007760923 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2474/MUMNP/2008 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008147131 Country of ref document: RU Ref document number: 1020087029401 Country of ref document: KR |