KR20070116058A - 가변 길이 명령어에 대한 절전 방법 및 장치 - Google Patents
가변 길이 명령어에 대한 절전 방법 및 장치 Download PDFInfo
- Publication number
- KR20070116058A KR20070116058A KR1020077022475A KR20077022475A KR20070116058A KR 20070116058 A KR20070116058 A KR 20070116058A KR 1020077022475 A KR1020077022475 A KR 1020077022475A KR 20077022475 A KR20077022475 A KR 20077022475A KR 20070116058 A KR20070116058 A KR 20070116058A
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- processor
- length
- bit
- instructions
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000006870 function Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual 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/38—Concurrent instruction execution, e.g. pipeline or 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
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- 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
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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
- 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
-
- 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)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Power Sources (AREA)
- Vehicle Body Suspensions (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Containers And Plastic Fillers For Packaging (AREA)
Abstract
Description
Claims (20)
- 가변 길이 명령어를 지원하는 프로세서 환경에서 절전하기 위한 장치로서,제 1 길이 및 상기 제 1 길이보다 더 긴 제 2 길이의 명령어를 부분적으로 디코딩하고, 상기 제 1 길이 및 상기 제 2 길이 모두의 명령어에 대한 프리디코드 비트를 발생시키는 프리디코더;상기 제 2 길이의 명령어로 명령어를 제한하는 모드에서 상기 프로세서가 동작하는 것을 표시하는 프로세서 동작 모드 상태 표시기;명령어 및 프리디코드 비트를 저장하는 복수의 캐시 라인을 가진 명령어 캐시; 및상기 프로세서 동작 모드 상태 표시기에 따라 캐시 라인에 프리디코드 비트를 선택적으로 기록하는 것에 의해 모든 상기 프리디코드 비트가 상기 제 2 길이의 명령어에 대해 기록되는 것은 아닌 기록 제어 로직을 포함하는, 절전 장치.
- 제 1 항에 있어서,상기 명령어 캐시 라인은 명령어에 대한 섹션과 프리디코드 비트에 대한 섹션으로 구획되고,모든 상기 프리디코드 비트가 상기 제 2 길이의 명령어에 대해 기록되는 것은 아닌, 절전 장치.
- 제 2 항에 있어서,상기 명령어에 대한 섹션은 16-비트 필드이고,상기 프리디코드 비트에 대한 섹션은 4-비트 필드인, 절전 장치.
- 제 2 항에 있어서,상기 명령어에 대한 섹션은 8-비트 필드이고,상기 프리디코드 비트에 대한 섹션은 2-비트 필드인, 절전 장치.
- 제 1 항에 있어서,상기 복수의 캐시 라인은 제 1 메모리에 저장되고,상기 명령어 캐시는,태그를 저장하는 제 2 메모리로서, 상기 각 태그는 상기 캐시 라인과 연관되고 명령어 어드레스 및 프로세서 상태 비트를 보유하고, 상기 프로세서 상태 비트는 페치시의 프로세서 동작 모드 상태를 표시하는, 상기 제 2 메모리를 더 포함하는, 절전 장치.
- 제 1 항에 있어서,상기 제 1 길이는 16-비트이고, 상기 제 2 길이는 32-비트이며,각 제 1 길이 명령어는 4개의 프리디코드 비트를 가지고, 각 제 2 길이 명령어는 4개의 프리디코드 비트의 제 1 그룹 및 제 2 그룹을 가지며, 상기 제 2 길이 명령어에 대한 상기 프리디코드 비트의 제 2 그룹은 기록되지 않는, 절전 장치.
- 제 1 항에 있어서,상기 프리디코드 비트 필드는 명령어의 기능 및 제어 카테고리로 명령어를 분류하는, 절전 장치.
- 제 2 항에 있어서,상기 기록 제어 로직은 상기 캐시 라인의 다수의 명령어 섹션에 제 2 길이 명령어를 기록하고, 상기 제 2 길이 명령어의 일부에 의해 점유되는 상기 명령어 섹션의 하나와 연관된 하나의 프리디코드 섹션을 기록하며,상기 제 2 길이 명령어의 다른 일부에 의해 점유되는 상기 명령어 섹션과 연관된 다른 프리디코드 섹션은 유효하지 않고 기록되지 않는, 절전 장치.
- 제 1 항에 있어서,상기 프로세서 동작 모드 상태 표시기는, 또한, 상기 프로세서가 상기 제 2 길이 보다 더 긴 제 3 길이의 명령어로 명령어를 제한하는 모드에서 동작하는 것을 표시하고,상기 프리디코더는, 또한, 상기 제 3 길이의 명령어를 디코딩하도록 동작하는, 절전 장치.
- 제 1 항에 있어서,상기 명령어 캐시는,상기 각 캐시 라인과 연관되는 복수의 명령어 내용 어드레서블 메모리 (instruction content addressable memory; ICAM) 태그를 가지는 ICAM으로서, 상기 ICAM 태그는 명령어 어드레스 및 프로세서 상태 비트를 저장하기 위해 할당되고, 상기 프로세서 상태 비트는 페치시의 상기 프로세서 동작 모드 상태 표시기의 값을 가지는, 상기 ICAM; 및상기 ICAM 태그에 상기 명령어 어드레스 및 상기 프로세서 상태 비트를 기록하는 기록 제어 로직을 더 포함하는, 절전 장치.
- 명령어 캐시 라인을 판독하는 경우에 절전하기 위한 장치로서,제 1 길이 및 상기 제 1 길이보다 더 긴 제 2 길이의 명령어를 페치하는 페치 동작을 수행하는 프로세서;상기 프로세서가 상기 제 2 길이의 명령어로 명령어를 제한하는 모드에서 동작하는 것을 표시하는 프로세서 동작 모드 상태 표시기;복수의 캐시 라인 및 상기 각 캐시 라인과 연관된 태그를 가진 명령어 캐시로서, 상기 캐시 라인은 명령어 및 프리디코드 비트를 저장하고, 상기 태그는 명령어 어드레스부 및 프로세서 동작 모드 상태부를 가지는, 상기 명령어 캐시; 및태그 매치 히트에 따라 캐시 라인의 선택된 프리디코드 비트 필드를 판독하는 것에 의해, 상기 캐시 라인에서 이용가능한 모든 상기 프리디코드 비트 필드가 상기 제 2 길이의 명령어에 대해 판독되는 것은 아닌 판독 제어 로직을 포함하는, 절전 장치.
- 제 11 항에 있어서,상기 태그 매치 히트를 결정하는 히트 비교기를 더 포함하며,상기 히트 비교기는, 상기 프로세서 페치 명령어 어드레스 및 상기 프로세서 동작 모드 상태 표시기를 상기 태그와 비교하고, 상기 비교가 동일한 경우, 상기 태그 매치 히트를 발생시키는, 절전 장치.
- 제 11 항에 있어서,상기 선택된 프리디코드 비트 필드는, 상기 캐시 라인으로부터 판독된 명령어가 배열 및 디코딩될 수 있도록 명령어를 분류하는, 절전 장치.
- 제 11 항에 있어서,상기 프로세서 페치 동작은 명령어 어드레스 및 상기 프로세서 동작 모드 상태 표시기를 공급하는 단계를 포함하는, 절전 장치.
- 제 11 항에 있어서,상기 명령어 캐시는,상기 각 캐시 라인과 연관된 복수의 명령어 내용 어드레서블 메모리 (ICAM) 태그를 가지는 ICAM으로서, 상기 ICAM 태그는 명령어 어드레스부 및 프로세서 동작 모드 상태 표시기부를 가지는, 상기 ICAM; 및상기 각 태그와 연관된 태그 비교기를 포함하는, 절전 장치.
- 제 1 길이 또는 상기 제 1 길이보다 더 긴 제 2 길이의 명령어를 페치하는 단계;프리디코더에서 상기 제 1 길이 및 제 2 길이의 명령어를 프리디코딩하는 단계;상기 제 1 길이 및 상기 제 2 길이 모두의 명령어에 대한 프리디코드 비트를 발생시키는 단계; 및상기 제 2 길이의 명령어로 명령어를 제한하는 동작 모드에 따라 명령어 캐시 라인에 선택된 프리디코드 비트를 기록하는 것에 의해, 모든 상기 프리디코드 비트가 상기 제 2 길이의 명령어에 대해 기록되는 것은 아닌 기록 단계를 포함하는, 절전 방법.
- 제 16 항에 있어서,상기 명령어 캐시 라인은 명령어 필드와 프리디코드 비트 필드로 구획되고,상기 선택된 프리디코드 비트를 기록하는 단계에서, 모든 상기 프리디코드 필드가 상기 제 2 길이의 명령어에 대해 기록되는 것은 아닌, 절전 방법.
- 제 16 항에 있어서,상기 명령어 캐시 라인에 선택된 프리디코드 비트를 기록하는 단계에서,상기 제 2 길이의 명령에 의해 이용가능한 수개의 프리디코드 비트 필드 중 하나를 기록하는 것에 의해, 모든 상기 프리디코드 비트 필드가 상기 제 2 길이의 명령어에 대해 기록되는 것은 아닌 기록 단계를 더 포함하는, 절전 방법.
- 제 16 항에 있어서,상기 캐시 라인과 연관된 태그에 명령어 어드레스 및 프로세서 상태 비트를 기록하는 단계로서, 상기 프로세서 상태 비트는 페치시의 상기 프로세서 동작 모드 상태를 표시하는, 상기 기록 단계를 더 포함하는, 절전 방법.
- 제 19 항에 있어서,프로세서 페치 명령어 어드레스 및 프로세서 동작 모드 표시기를 상기 명령어 캐시 라인과 연관된 태그와 비교하는 단계;상기 비교가 동일하면 태그 매치 히트를 발생시키는 단계; 및상기 태그 매치 히트에 따라 명령어 캐시 라인에서 선택된 프리디코드 비트를 판독하는 것에 의해, 상기 캐시 라인에서 이용가능한 모든 상기 프리디코드 비트가 상기 제 2 길이의 명령어에 대해 판독되는 것은 아닌 판독 단계를 더 포함하는, 절전 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/073,284 US7421568B2 (en) | 2005-03-04 | 2005-03-04 | Power saving methods and apparatus to selectively enable cache bits based on known processor state |
US11/073,284 | 2005-03-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070116058A true KR20070116058A (ko) | 2007-12-06 |
KR100942408B1 KR100942408B1 (ko) | 2010-02-17 |
Family
ID=36695266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077022475A KR100942408B1 (ko) | 2005-03-04 | 2006-03-03 | 가변 길이 명령어에 대한 절전 방법 및 장치 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7421568B2 (ko) |
EP (1) | EP1904922B1 (ko) |
JP (1) | JP4791495B2 (ko) |
KR (1) | KR100942408B1 (ko) |
CN (1) | CN101164040B (ko) |
AT (1) | ATE467170T1 (ko) |
DE (1) | DE602006014156D1 (ko) |
ES (1) | ES2341993T3 (ko) |
IL (1) | IL185594A0 (ko) |
MX (1) | MX2007010773A (ko) |
WO (1) | WO2006096568A2 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769983B2 (en) | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US7711927B2 (en) * | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
US7836285B2 (en) * | 2007-08-08 | 2010-11-16 | Analog Devices, Inc. | Implementation of variable length instruction encoding using alias addressing |
US8898437B2 (en) * | 2007-11-02 | 2014-11-25 | Qualcomm Incorporated | Predecode repair cache for instructions that cross an instruction cache line |
US10055227B2 (en) | 2012-02-07 | 2018-08-21 | Qualcomm Incorporated | Using the least significant bits of a called function's address to switch processor modes |
US20140244932A1 (en) * | 2013-02-27 | 2014-08-28 | Advanced Micro Devices, Inc. | Method and apparatus for caching and indexing victim pre-decode information |
US9588845B2 (en) | 2014-02-10 | 2017-03-07 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
US10235232B2 (en) | 2014-02-10 | 2019-03-19 | Via Alliance Semiconductor Co., Ltd | Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction |
US9916251B2 (en) | 2014-12-01 | 2018-03-13 | Samsung Electronics Co., Ltd. | Display driving apparatus and cache managing method thereof |
US9727353B2 (en) * | 2015-10-30 | 2017-08-08 | International Business Machines Corporation | Simultaneously capturing status information for multiple operating modes |
CN115878187B (zh) * | 2023-01-16 | 2023-05-02 | 北京微核芯科技有限公司 | 支持压缩指令的处理器指令处理装置和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5115500A (en) * | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
JPH04257948A (ja) * | 1991-02-13 | 1992-09-14 | Fujitsu Ltd | キャッシュメモリ、該キャッシュメモリを備えたシステムおよび該システムにおける命令デコード方式 |
US5499204A (en) * | 1994-07-05 | 1996-03-12 | Motorola, Inc. | Memory cache with interlaced data and method of operation |
US5640526A (en) * | 1994-12-21 | 1997-06-17 | International Business Machines Corporation | Superscaler instruction pipeline having boundary indentification logic for variable length instructions |
EP0853779B1 (en) * | 1995-10-06 | 2003-08-13 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
US6141745A (en) * | 1998-04-30 | 2000-10-31 | Advanced Micro Devices, Inc. | Functional bit identifying a prefix byte via a particular state regardless of type of instruction |
US6092182A (en) * | 1998-06-24 | 2000-07-18 | Advanced Micro Devices, Inc. | Using ECC/parity bits to store predecode information |
US6275927B2 (en) * | 1998-09-21 | 2001-08-14 | Advanced Micro Devices. | Compressing variable-length instruction prefix bytes |
US6253309B1 (en) * | 1998-09-21 | 2001-06-26 | Advanced Micro Devices, Inc. | Forcing regularity into a CISC instruction set by padding instructions |
US6496923B1 (en) * | 1999-12-17 | 2002-12-17 | Intel Corporation | Length decode to detect one-byte prefixes and branch |
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 |
US7058827B2 (en) * | 2001-07-18 | 2006-06-06 | Intel Corporation | Power saving circuit has an input line coupled to an external host and a keeper to hold the line in a weakly held state |
US6901490B2 (en) * | 2002-12-02 | 2005-05-31 | Lsi Logic Corporation | Read/modify/write registers |
-
2005
- 2005-03-04 US US11/073,284 patent/US7421568B2/en active Active
-
2006
- 2006-03-03 ES ES06736989T patent/ES2341993T3/es active Active
- 2006-03-03 WO PCT/US2006/007758 patent/WO2006096568A2/en active Application Filing
- 2006-03-03 JP JP2007558296A patent/JP4791495B2/ja active Active
- 2006-03-03 CN CN2006800137440A patent/CN101164040B/zh not_active Expired - Fee Related
- 2006-03-03 MX MX2007010773A patent/MX2007010773A/es active IP Right Grant
- 2006-03-03 KR KR1020077022475A patent/KR100942408B1/ko active IP Right Grant
- 2006-03-03 AT AT06736989T patent/ATE467170T1/de not_active IP Right Cessation
- 2006-03-03 DE DE602006014156T patent/DE602006014156D1/de active Active
- 2006-03-03 EP EP06736989A patent/EP1904922B1/en not_active Not-in-force
-
2007
- 2007-08-29 IL IL185594A patent/IL185594A0/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN101164040B (zh) | 2010-04-14 |
ATE467170T1 (de) | 2010-05-15 |
WO2006096568A2 (en) | 2006-09-14 |
EP1904922B1 (en) | 2010-05-05 |
US20060200686A1 (en) | 2006-09-07 |
DE602006014156D1 (de) | 2010-06-17 |
KR100942408B1 (ko) | 2010-02-17 |
WO2006096568A3 (en) | 2007-01-11 |
EP1904922A2 (en) | 2008-04-02 |
ES2341993T3 (es) | 2010-06-30 |
JP2008532187A (ja) | 2008-08-14 |
US7421568B2 (en) | 2008-09-02 |
IL185594A0 (en) | 2008-01-06 |
MX2007010773A (es) | 2007-11-08 |
JP4791495B2 (ja) | 2011-10-12 |
CN101164040A (zh) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100942408B1 (ko) | 가변 길이 명령어에 대한 절전 방법 및 장치 | |
US8898437B2 (en) | Predecode repair cache for instructions that cross an instruction cache line | |
US6018786A (en) | Trace based instruction caching | |
US7676659B2 (en) | System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding | |
US9396117B2 (en) | Instruction cache power reduction | |
US8819342B2 (en) | Methods and apparatus for managing page crossing instructions with different cacheability | |
JP2014194783A (ja) | 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア | |
US7769954B2 (en) | Data processing system and method for processing data | |
US7346737B2 (en) | Cache system having branch target address cache | |
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 | |
US20050027921A1 (en) | Information processing apparatus capable of prefetching instructions | |
US9135011B2 (en) | Next branch table for use with a branch predictor | |
CN112540937A (zh) | 一种缓存、数据访问方法和指令处理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130130 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140129 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20151230 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20161229 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20190107 Year of fee payment: 10 |