JP2010539598A - n−ウェイキャッシュを用いるシステムおよび方法 - Google Patents
n−ウェイキャッシュを用いるシステムおよび方法 Download PDFInfo
- Publication number
- JP2010539598A JP2010539598A JP2010524953A JP2010524953A JP2010539598A JP 2010539598 A JP2010539598 A JP 2010539598A JP 2010524953 A JP2010524953 A JP 2010524953A JP 2010524953 A JP2010524953 A JP 2010524953A JP 2010539598 A JP2010539598 A JP 2010539598A
- Authority
- JP
- Japan
- Prior art keywords
- way
- cache
- instruction
- loop
- value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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
- 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/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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/17—Embedded application
- G06F2212/171—Portable consumer electronics, e.g. mobile phone
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
Description
図2を参照して、マルチウェイキャッシュに関する操作方法を例示する。この方法は、202に示すように、キャッシュに格納された第1の命令の第1のウェイを決定することを含む。この方法は、204に示すように、図1のウェイトレースFIFOバッファ150への格納のような、ウェイリストに前記第1のウェイを格納することをさらに含む。この方法は、206において、キャッシュに格納された第2の命令の第2のウェイを決定すること、および208において、ウェイリストに第2のウェイを格納することとをさらに含む。
Claims (30)
- マルチウェイキャッシュ内に格納された第1の命令の第1のウェイを決定することと、
ウェイリスト内に第1のウェイを格納することと、
前記マルチウェイキャッシュ内に格納された第2の命令の第2のウェイを決定することと、
前記ウェイリスト内に第2のウェイを格納すること、
とを含む方法。 - 第1のウェイが、タグアレイから検索されたウェイ値を含む、請求項1に記載の方法。
- ループ終了パケットを検出することをさらに含む、請求項1に記載の方法。
- ループ終了パケットを検出した後に、ウェイリストからの少なくとも1つの検索されたウェイにアクセスすることをさらに含む、請求項3に記載の方法。
- 少なくとも1つの検索されたウェイに基づいてマルチウェイキャッシュ内の命令にアクセスすることをさらに含む、請求項4に記載の方法。
- マルチウェイキャッシュが、n−ウェイキャッシュであり、nが2より大きい、請求項5に記載の方法。
- nが4である請求項6に記載の方法。
- 第1のウェイおよび第2のウェイが、タグアレイから検索される、請求項7に記載の方法。
- マルチウェイキャッシュ内の命令が、タグアレイの複数のタグを評価することなく、少なくとも1つの検索されたウェイに応答してアクセスされる、請求項5に記載の方法。
- キャッシュラインの一部が読み出され、かつ同一キャッシュラインがアクセスされる場合にタグアレイ内のエントリーが評価されないように同一ラインビットを格納することをさらに含む、請求項9に記載の方法。
- ループ終了パケットに関係づけられた特有アドレスを格納することをさらに含む、請求項3に記載の方法。
- 複数のウェイを含むエントリーのテーブルであって、前記エントリーのテーブル内の各エントリーがn−ウェイキャッシュのウェイを特定する、テーブルと、
インデックスを有するアドレスを提供するためのプログラムカウンタとを含み、
前記インデックスおよび前記ウェイが前記n−ウェイキャッシュ内の命令の位置を特定する、
機器。 - n−ウェイキャッシュが、インデックスに応答する入力を有するタグアレイを含む、請求項12に記載の機器。
- エントリーのテーブルへアクセスできるウェイトレース論理回路をさらに含む、請求項12に記載の機器。
- ウェイトレース論理回路が、n−ウェイキャッシュへの出力を提供する、請求項14に記載の機器。
- ウェイトレース論理回路が、タグアレイへウェイ項目およびインデックスを出力し、ウェイトレース論理回路が、タグアレイから検索されたタグ値をプログラムカウンタからの対応するタグ値と比較するための論理を含む、請求項15に記載の機器。
- ウェイトレース論理回路が、タグアレイから検索したタグ値がプログラムカウンタからの対応するタグ値と合致する判定をした後、ウェイ項目をn−ウェイキャッシュへ出力する、請求項16に記載の機器。
- 複数のウェイが、n−ウェイキャッシュ内に格納された対応する複数の計算機実行可能命令に関係づけられた順に格納される、請求項12に記載の機器。
- エントリーのテーブル内の第1のエントリーが、命令のループの開始に対応する、請求項18に記載の機器。
- 複数の計算機実行可能命令の1つが、命令のループの終了に関係づけられている、請求項19に記載の機器。
- エントリーのテーブルが、n−ウェイキャッシュ内に格納されたデータとは独立しており、エントリーのテーブルが、ウェイ値を格納するが計算機実行可能命令を格納しない、請求項12に記載の機器。
- エントリーのテーブルが、複数のウェイトレースを格納するための先入れ先出しバッファを含む、請求項12に記載の機器。
- ウェイテーブルにウェイ値を格納することであって、前記ウェイ値がn−ウェイキャッシュから順次データ読み出し操作に関係づけられ、前記順次データ読み出し操作が処理ループの第1の反復に対応する、ウェイ値を格納することと、
前記処理ループの次の反復の間に、前記ウェイテーブルから前記順次データ読み出し操作に対するウェイ値を順次検索すること、
とを含む方法。 - 処理ループの第1の反復の開始が、n−ウェイキャッシュからのループ終了命令の第1の検索に関係づけられ、処理ループの第1の反復の終了が、n−ウェイキャッシュからのループ終了命令の次の検索に関係づけられる、請求項23に記載の方法。
- n−ウェイのタグアレイからただ1つのキャッシュラインにアクセスするために少なくとも1つのウェイ値を用いることをさらに含む、請求項23に記載の方法。
- ウェイテーブルからの少なくとも1つのウェイ値を用いてn−ウェイキャッシュに格納されたデータにアクセスすることをさらに含む、請求項23に記載の方法。
- アンテナと、
前記アンテナに接続された送受信機と、
前記送受信機に接続されたプロセッサとを含み、
前記プロセッサが、
複数のウェイを含むエントリーのテーブルを含むプロセッサ可読メモリーであって、前記エントリーのテーブルの各エントリーがn−ウェイキャッシュのウェイを特定する、プロセッサ可読メモリーと、
インデックスを有するプロセッサ命令アドレスを出力するプログラムカウンタとを含み、
前記インデックスおよび前記ウェイが、n−ウェイキャッシュ内の処理実行可能命令のアドレスを特定する、
無線機器。 - プロセッサが、ディジタル信号プロセッサである、請求項27に記載の無線機器。
- 音響データを符号化および復号するための手段と、
画像情報を提供するための手段、
とをさらに含む請求項27に記載の無線機器。 - 音響データを符号化および復号するための手段が、プロセッサに接続されマイクロホンおよびスピーカにさらに接続されたコーデックを含み、かつ画像情報を提供するための手段が、プロセッサに接続されディスプレイにさらに接続されたディスプレイ制御器を含む、請求項29に記載の無線機器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/852,348 US7827356B2 (en) | 2007-09-10 | 2007-09-10 | System and method of using an N-way cache |
US11/852,348 | 2007-09-10 | ||
PCT/US2008/075822 WO2009036038A1 (en) | 2007-09-10 | 2008-09-10 | System and method of using an n-way cache |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010539598A true JP2010539598A (ja) | 2010-12-16 |
JP5254342B2 JP5254342B2 (ja) | 2013-08-07 |
Family
ID=40091877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010524953A Expired - Fee Related JP5254342B2 (ja) | 2007-09-10 | 2008-09-10 | n−ウェイキャッシュを用いるシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7827356B2 (ja) |
EP (2) | EP2034415A1 (ja) |
JP (1) | JP5254342B2 (ja) |
KR (1) | KR101128160B1 (ja) |
CN (2) | CN102937936B (ja) |
WO (1) | WO2009036038A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015720B2 (en) * | 2008-04-30 | 2015-04-21 | Advanced Micro Devices, Inc. | Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program |
US8327198B2 (en) * | 2009-08-14 | 2012-12-04 | Intel Corporation | On-die logic analyzer for semiconductor die |
US8762644B2 (en) | 2010-10-15 | 2014-06-24 | Qualcomm Incorporated | Low-power audio decoding and playback using cached images |
US8635408B2 (en) * | 2011-01-04 | 2014-01-21 | International Business Machines Corporation | Controlling power of a cache based on predicting the instruction cache way for high power applications |
CN102637149B (zh) * | 2012-03-23 | 2015-07-01 | 山东极芯电子科技有限公司 | 一种处理器及其运行方法 |
US9367468B2 (en) | 2013-01-15 | 2016-06-14 | Qualcomm Incorporated | Data cache way prediction |
TWI514145B (zh) * | 2013-10-21 | 2015-12-21 | Univ Nat Sun Yat Sen | 可儲存除錯資料的處理器、其快取及控制方法 |
KR101502827B1 (ko) * | 2014-03-20 | 2015-03-17 | 주식회사 에이디칩스 | 컴퓨터 시스템에서의 캐시 무효화 방법 |
US11176051B2 (en) * | 2020-03-13 | 2021-11-16 | Shenzhen GOODIX Technology Co., Ltd. | Multi-way cache memory access |
CA3200086A1 (en) | 2020-11-25 | 2022-06-02 | Identigen Limited | A system and method for tracing members of an animal population |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001384A2 (en) * | 2001-06-22 | 2003-01-03 | Koninklijke Philips Electronics N.V. | Fast and accurate cache way selection |
US20040073749A1 (en) * | 2002-10-15 | 2004-04-15 | Stmicroelectronics, Inc. | Method to improve DSP kernel's performance/power ratio |
US20060047884A1 (en) * | 2004-08-30 | 2006-03-02 | Texas Instruments Incorporated | System and method for power efficent memory caching |
US20070113057A1 (en) * | 2005-11-15 | 2007-05-17 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
WO2007096572A1 (en) * | 2006-02-22 | 2007-08-30 | Arm Limited | Cache management within a data processing apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0803095A1 (en) * | 1994-10-14 | 1997-10-29 | Silicon Graphics, Inc. | Indexing and multiplexing of interleaved cache memory arrays |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
US20090055589A1 (en) * | 2007-08-24 | 2009-02-26 | Arm Limited | Cache memory system for a data processing apparatus |
-
2007
- 2007-09-10 US US11/852,348 patent/US7827356B2/en not_active Expired - Fee Related
-
2008
- 2008-03-19 EP EP08005115A patent/EP2034415A1/en not_active Withdrawn
- 2008-03-19 EP EP11181782.1A patent/EP2437176B1/en active Active
- 2008-09-10 WO PCT/US2008/075822 patent/WO2009036038A1/en active Application Filing
- 2008-09-10 KR KR1020107007782A patent/KR101128160B1/ko not_active IP Right Cessation
- 2008-09-10 JP JP2010524953A patent/JP5254342B2/ja not_active Expired - Fee Related
- 2008-09-10 CN CN201210223636.3A patent/CN102937936B/zh active Active
- 2008-09-10 CN CN2008801094418A patent/CN101809547B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001384A2 (en) * | 2001-06-22 | 2003-01-03 | Koninklijke Philips Electronics N.V. | Fast and accurate cache way selection |
US20040073749A1 (en) * | 2002-10-15 | 2004-04-15 | Stmicroelectronics, Inc. | Method to improve DSP kernel's performance/power ratio |
US20060047884A1 (en) * | 2004-08-30 | 2006-03-02 | Texas Instruments Incorporated | System and method for power efficent memory caching |
US20070113057A1 (en) * | 2005-11-15 | 2007-05-17 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
WO2007096572A1 (en) * | 2006-02-22 | 2007-08-30 | Arm Limited | Cache management within a data processing apparatus |
Non-Patent Citations (1)
Title |
---|
JPN5010011478; Nicolaescu D.: '"Reducing Power Consumption for High-Associativity Data Caches in Embedded Processors"' PROCEEDINGS OF THE DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION (DATE'03) , 20030303, P. 1-5, IEEE COMPUTER SOCIETY * |
Also Published As
Publication number | Publication date |
---|---|
WO2009036038A1 (en) | 2009-03-19 |
US7827356B2 (en) | 2010-11-02 |
KR101128160B1 (ko) | 2012-03-23 |
KR20100057683A (ko) | 2010-05-31 |
EP2034415A1 (en) | 2009-03-11 |
US20090070531A1 (en) | 2009-03-12 |
EP2437176B1 (en) | 2019-04-17 |
EP2437176A3 (en) | 2012-08-01 |
CN102937936A (zh) | 2013-02-20 |
CN101809547A (zh) | 2010-08-18 |
CN101809547B (zh) | 2013-11-13 |
JP5254342B2 (ja) | 2013-08-07 |
CN102937936B (zh) | 2015-09-16 |
EP2437176A2 (en) | 2012-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5254342B2 (ja) | n−ウェイキャッシュを用いるシステムおよび方法 | |
US8140823B2 (en) | Multithreaded processor with lock indicator | |
JP5722389B2 (ja) | キャッシュライン置換のためのシステムおよび方法 | |
KR101132484B1 (ko) | 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법 | |
KR101503623B1 (ko) | 캐싱된 이미지들을 이용하는 저전력 오디오 디코딩 및 재생 | |
US20150143045A1 (en) | Cache control apparatus and method | |
KR20100090703A (ko) | 구성 가능한 전환 색인 버퍼 | |
KR101095204B1 (ko) | 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 | |
US10007613B2 (en) | Reconfigurable fetch pipeline | |
US9678754B2 (en) | System and method of processing hierarchical very long instruction packets | |
US20130145097A1 (en) | Selective Access of a Store Buffer Based on Cache State |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120828 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121128 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121205 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130123 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130219 |
|
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: 20130319 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130417 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5254342 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160426 Year of fee payment: 3 |
|
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 |