JP2007504552A - プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ - Google Patents
プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ Download PDFInfo
- Publication number
- JP2007504552A JP2007504552A JP2006525316A JP2006525316A JP2007504552A JP 2007504552 A JP2007504552 A JP 2007504552A JP 2006525316 A JP2006525316 A JP 2006525316A JP 2006525316 A JP2006525316 A JP 2006525316A JP 2007504552 A JP2007504552 A JP 2007504552A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- tlb
- tag
- hit
- virtual address
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 173
- 230000004044 response Effects 0.000 claims abstract description 38
- 238000013519 translation Methods 0.000 claims abstract description 25
- 239000000872 buffer Substances 0.000 claims description 13
- 238000000034 method Methods 0.000 claims description 9
- 230000000903 blocking effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 35
- 238000006243 chemical reaction Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000003813 thumb Anatomy 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation 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
-
- 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
- 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
- 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/10—Address translation
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- 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/3824—Operand accessing
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は、様々な改良を行い、また、他の形態で実施することができるが、ここに説明されている特定の実施例は、例として示したものであり、以下にその詳細を記載する。しかし当然のことながら、ここに示した特定の実施例は、本発明を開示されている特定の形態に限定するものではなく、むしろ本発明は添付の請求項によって規定されている発明の範疇に属するすべての改良、等価物、及び変形例をカバーするものである。
(i)マイクロTLBが変換を記録している各仮想ページにあり、また、
(ii)データキャッシュ16に記録されている、
比較的に少数のキャッシュラインのタグを記録するように構成されてよい。
Counti-1=((ai-1XORbi-1)&!ki-1|(a i-1&b i-1)(1)
Cini=kiXORaiXORbi(2)
A+B=Kの場合、Counti-1は(0からn−1までの)全てのiに等しい。つまり、以下の等式3で説明する項eiは、A+B=Kの場合、全てのiに対し、1である。
ei=CiniXOR!Count i-1(3)
デコーダ140で使用されてよいeiの等式を生成するために、Kに依存しない項を生成するのが望ましい(等式1及び2の各々は依存しており、その結果、等式3の各々は依存する)。特に、等式3はki(Ciniを通じて)及びki-1(Couti-1を通じて)に依存している。従って、4つのei項が各ビット位置iに対して生成されてよい。各項eiはkiとki-1に対し1つの一連のセット値を仮定してよい。これらの項はei kiki-1と示され、kiとki-1は各ビットに対する仮定値(例えば、eiは仮定値ki=0、ki-1=1に対応する)の表記(notation)に上書きされる。各等式4−7は各ビット位置に対し4つの項eiを例示する。等式4−7の各々は等式1と2を等式3に上書きすることで形成され、kiとki-1に対して仮定値を与え、ブール代数を使用して項を減らす。
ei 00= aiXORbiXOR!(a i-1|b i-1)(4)
ei 01= aiXORbiXOR!(a i-1&b i-1)(5)
ei 10= !(aiXORbi)XOR!(a i-1|b i-1)(6)
ei 00= !(aiXORbi)XOR!(a i-1&b i-1)(7)
更に、インデックスのビット位置0に対して、キャリーイン項(C-1)をi−1項に置き換え、等式8と9を形成する。
e0 0c= aiXORbiXOR!c-1(8)
e0 1c= !(aiXORbi)XOR!c-1(9)
上述の各等式はインデックスの各ビット位置の論理でウェイ予測メモリ142に実装されてよく、キャリーインc−1はキャッシュラインオフセット加算からのキャリーインと等しい。このキャリーインは、例えば仮想アドレス加算からAGUにより与えられてよい。キャリーインは延着してよく、例えば、偶数と奇数のインデックスをそれぞれに有するバンクとバンクとの間を選択してよい。
[コンピュータシステム]
Claims (9)
- プロセッサ(10)であって、
複数のキャッシュラインを記録するように構成されたデータメモリ(20)および複数のタグを記録するように構成されたタグメモリ(22)を含むキャッシュであって、前記複数のタグの各々は、前記複数のキャッシュラインの各々の1つに対応しているキャッシュ(16)と、
前記複数のキャッシュラインのサブセットに対する第1仮想アドレスによって、前記キャッシュ(16)でヒットを検出するように構成されたタグ回路(36)とを含み、
前記タグ回路(36)の前記第1仮想アドレスによるヒットに応じて、前記タグ回路(36)はタグメモリ(22)の読み出しを阻止するように構成されており、かつ、前記データメモリ(20)は前記第1仮想アドレスに対応する第1キャッシュラインの少なくとも一部を出力するように構成される、プロセッサ。 - 第1変換索引バッファ(TLB)であって、物理アドレス変換が前記第1変換索引バッファに記録されるところの複数の仮想ページを識別する、仮想アドレスの複数のページ部を記録するように構成された第1のTLB(30)をさらに含み、
前記タグ回路(36)は前記第1TLB(30)に結合され、かつ、前記複数のキャッシュラインの前記サブセットは前記複数の仮想ページ内にあり、
前記タグ回路(36)は、前記第1TLBの前記第1仮想アドレスによるヒットにさらに応じて、前記キャッシュ(16)の前記タグメモリ(22)の読み出しを阻止するように構成されている、請求項1に記載のプロセッサ。 - 前記第1TLB(30)の第1仮想アドレスによるヒットと、前記タグ回路(36)の前記第1仮想アドレスによるミスに応じて、前記キャッシュ(16)は前記タグメモリ(22)に記録された1つまたはそれ以上のタグを読み出すように構成され、かつ、前記キャッシュ(16)で前記第1仮想アドレスがヒットするかどうかを検出するように構成される、請求項2に記載のプロセッサ。
- 第2TLB(38)をさらに含み、
前記第2TLB(38)は前記第1TLB(30)のミスに応じてアクセスされ、
前記第2TLB(38)は第2TLB(38)のヒットに応じて前記第1仮想アドレスに対応する第1物理アドレスのページ部を提供するように構成されており、
前記キャッシュ(16)は前記第1物理アドレスのタグ部を受信するように結合されるとともに、前記キャッシュ(16)の前記ヒットを検出するために、前記第1物理アドレスの前記タグ部を前記タグメモリ(22)からの少なくとも第1タグと比較するように構成されている、請求項3に記載のプロセッサ。 - 前記第1TLB(30)は、第1の複数のエントリ(80A−80B)を含み、前記第1の複数のエントリ(80A−80B)の各々は仮想アドレスの複数のページ部のうち、対応するページ部を記録するように構成され、かつ、前記第1TLB(30)は前記第1仮想アドレスによってヒットした前記第1の複数のエントリのうちの第1エントリの表示を出力するように構成され、かつ、前記タグ回路(36)は前記第1エントリの表示を受信するように結合され、かつ、前記タグ回路(36)は第2の複数のエントリ(100A−100D)を含み、前記第2の複数のエントリ(100A−100D)のサブセットは前記第1TLB(30)の前記第1の複数のエントリ(80A−80B)のうちの1つに対応し、かつ、前記キャッシュ(16)に記録され、前記第1の複数のエントリ(80A−80B)のうちの1つに記録されるページ部によって示されたページ内にあるキャッシュラインを識別し、かつ、前記タグ回路(36)は前記第1エントリの前記表示に応じて、ヒットに対する前記サブセットをチェックするように構成される、請求項2に記載のプロセッサ。
- 前記第2の複数のエントリ(100A−100D)の各々は前記仮想アドレスのページ部に含まれず、かつ、前記仮想アドレスのキャッシュラインのオフセット部に含まれない仮想アドレスビットを記録するように構成される、請求項5に記載のプロセッサ。
- 第1仮想アドレスを使用して、第1変換索引バッファ(TLB)(30)へアクセスするステップを含み、前記第1TLB30は、物理アドレス変換が前記第1TLB(30)に記録される複数の仮想ページを識別する仮想アドレスの複数のページ部を記録するように構成されており、
前記第1TLB(30)の前記第1仮想アドレスによるヒットに応じて、キャッシュ(16)に記録され、かつ、複数の仮想ページ内にある複数のキャッシュラインを識別するように構成されたタグ回路(36)へアクセスするステップを含み、
前記第1TLB(30)の前記第1仮想アドレスと前記タグ回路によるヒットを検出するステップを含み、かつ、
前記第1TLB(30)の前記第1仮想アドレスと前記タグ回路(36)によるヒットに応じて、前記キャッシュ(16)においてタグメモリ(22)の読み出しを阻止するステップを含む、方法。 - 前記第1TLB(30)の第1仮想アドレスによるヒットと、前記タグ回路(36)の前記第1仮想アドレスによるミスに応答して、前記タグメモリ(22)に記録された1つまたはそれ以上のタグを読み出し、かつ、前記キャッシュ(16)で前記第1仮想アドレスがヒットするかどうかを検出する、請求項7に記載の方法。
- 前記第1TLB(30)のミスに応じて第2TLB(38)にアクセスするステップをさらに含み、
前記第2TLB(38)は前記第2TLB(38)のヒットに応じて前記第1仮想アドレスに対応する第1物理アドレスのページ部を提供するように構成されており、
前記キャッシュ(16)は、前記キャッシュ(16)において前記ヒットを検出するために、前記第1物理アドレスを前記タグメモリ(22)からの少なくとも第1タグと比較する、請求項7に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/653,749 US7117290B2 (en) | 2003-09-03 | 2003-09-03 | MicroTLB and micro tag for reducing power in a processor |
PCT/US2004/018042 WO2005024635A2 (en) | 2003-09-03 | 2004-06-04 | Microtlb and micro tag for reducing power in a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007504552A true JP2007504552A (ja) | 2007-03-01 |
JP2007504552A5 JP2007504552A5 (ja) | 2009-05-21 |
Family
ID=34217964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006525316A Pending JP2007504552A (ja) | 2003-09-03 | 2004-06-04 | プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ |
Country Status (8)
Country | Link |
---|---|
US (1) | US7117290B2 (ja) |
JP (1) | JP2007504552A (ja) |
KR (1) | KR101014395B1 (ja) |
CN (1) | CN100485638C (ja) |
DE (1) | DE112004001608B4 (ja) |
GB (1) | GB2421826B (ja) |
TW (1) | TW200519590A (ja) |
WO (1) | WO2005024635A2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009217827A (ja) * | 2008-03-12 | 2009-09-24 | Arm Ltd | マイクロタグを使用するキャッシュ・アクセッシング |
JPWO2008155848A1 (ja) * | 2007-06-20 | 2010-08-26 | 富士通株式会社 | 計算機、tlb制御方法およびtlb制御プログラム |
JP2011013858A (ja) * | 2009-06-30 | 2011-01-20 | Fujitsu Ltd | 演算処理装置およびアドレス変換方法 |
JP2013530476A (ja) * | 2010-07-06 | 2013-07-25 | クアルコム,インコーポレイテッド | 変換索引バッファを管理するためのシステムおよび方法 |
US11829293B2 (en) | 2021-10-07 | 2023-11-28 | Fujitsu Limited | Processor and arithmetic processing method |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2836407B1 (fr) * | 2002-02-28 | 2004-05-14 | Thermagen | Procede de fabrication d'emballage metallique |
US20050050278A1 (en) * | 2003-09-03 | 2005-03-03 | Advanced Micro Devices, Inc. | Low power way-predicted cache |
US20070156992A1 (en) * | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for optimizing latency of dynamic memory sizing |
US20060224857A1 (en) * | 2005-03-29 | 2006-10-05 | O'connor Dennis M | Locking entries into translation lookaside buffers |
KR100692976B1 (ko) * | 2006-02-08 | 2007-03-12 | 삼성전자주식회사 | 프로세서간 데이터 전송 방법 및 시스템 |
JP2007233615A (ja) * | 2006-02-28 | 2007-09-13 | Fujitsu Ltd | アドレス変換装置 |
US8035650B2 (en) | 2006-07-25 | 2011-10-11 | Qualcomm Incorporated | Tiled cache for multiple software programs |
US7657708B2 (en) * | 2006-08-18 | 2010-02-02 | Mips Technologies, Inc. | Methods for reducing data cache access power in a processor using way selection bits |
US7650465B2 (en) * | 2006-08-18 | 2010-01-19 | Mips Technologies, Inc. | Micro tag array having way selection bits for reducing data cache access power |
US7594079B2 (en) * | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
US8688890B2 (en) * | 2006-12-05 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Bit ordering for communicating an address on a serial fabric |
US8145876B2 (en) * | 2007-08-06 | 2012-03-27 | Advanced Micro Devices, Inc. | Address translation with multiple translation look aside buffers |
US8156309B2 (en) * | 2007-10-18 | 2012-04-10 | Cisco Technology, Inc. | Translation look-aside buffer with variable page sizes |
US8589629B2 (en) * | 2009-03-27 | 2013-11-19 | Advanced Micro Devices, Inc. | Method for way allocation and way locking in a cache |
US8255629B2 (en) * | 2009-06-22 | 2012-08-28 | Arm Limited | Method and apparatus with data storage protocols for maintaining consistencies in parallel translation lookaside buffers |
EP3255555B1 (en) * | 2009-07-21 | 2020-01-29 | Tadao Nakamura | A lower energy comsumption and high speed computer without the memory bottleneck |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
US8612690B2 (en) * | 2012-01-17 | 2013-12-17 | Qualcomm Incorporated | Method for filtering traffic to a physically-tagged data cache |
US9524248B2 (en) * | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US8984368B2 (en) | 2012-10-11 | 2015-03-17 | Advanced Micro Devices, Inc. | High reliability memory controller |
US9367468B2 (en) * | 2013-01-15 | 2016-06-14 | Qualcomm Incorporated | Data cache way prediction |
US9330026B2 (en) | 2013-03-05 | 2016-05-03 | Qualcomm Incorporated | Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW) |
US9015400B2 (en) * | 2013-03-05 | 2015-04-21 | Qualcomm Incorporated | Methods and systems for reducing the amount of time and computing resources that are required to perform a hardware table walk (HWTW) |
US9311239B2 (en) | 2013-03-14 | 2016-04-12 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US9208261B2 (en) * | 2014-01-24 | 2015-12-08 | Oracle International Corporation | Power reduction for fully associated translation lookaside buffer (TLB) and content addressable memory (CAM) |
GB2547189A (en) * | 2016-02-03 | 2017-08-16 | Swarm64 As | Cache and method |
US10402340B2 (en) * | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10552338B2 (en) * | 2017-02-21 | 2020-02-04 | Arm Limited | Technique for efficient utilisation of an address translation cache |
DE112018003358T5 (de) * | 2017-06-28 | 2020-03-12 | Nvidia Corporation | Speichertyp, der cache-fähig und dennoch durch spekulative anweisungen unzugänglich ist |
GB2570665B (en) * | 2018-01-31 | 2020-08-26 | Advanced Risc Mach Ltd | Address translation in a data processing apparatus |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6413649A (en) * | 1987-07-07 | 1989-01-18 | Nec Corp | Information processor |
JPS6418859A (en) * | 1987-07-14 | 1989-01-23 | Nec Corp | Information processor |
JPH0314050A (ja) * | 1989-06-12 | 1991-01-22 | Matsushita Electric Ind Co Ltd | 記憶装置 |
JPH03232034A (ja) * | 1990-02-08 | 1991-10-16 | Oki Electric Ind Co Ltd | キャッシュ制御装置 |
JPH03266153A (ja) * | 1989-12-01 | 1991-11-27 | Mips Computer Syst Inc | 速度向上のために部分アドレスを使用する2レベル変換ルックアサイドバッファ |
JPH0535592A (ja) * | 1991-07-29 | 1993-02-12 | Toshiba Corp | キヤツシユメモリ装置 |
JPH0535591A (ja) * | 1991-07-29 | 1993-02-12 | Toshiba Corp | キヤツシユメモリ装置 |
JPH0895864A (ja) * | 1994-09-28 | 1996-04-12 | Toshiba Corp | アドレス変換装置 |
JP2000112820A (ja) * | 1998-10-02 | 2000-04-21 | Nec Corp | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
US6138225A (en) * | 1997-12-24 | 2000-10-24 | Intel Corporation | Address translation system having first and second translation look aside buffers |
US6212602B1 (en) * | 1997-12-17 | 2001-04-03 | Sun Microsystems, Inc. | Cache tag caching |
JP2002007210A (ja) * | 2000-06-05 | 2002-01-11 | Samsung Electronics Co Ltd | デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法 |
JP2002116954A (ja) * | 2000-10-05 | 2002-04-19 | Hitachi Ltd | キャッシュシステム |
JP2002149490A (ja) * | 2000-11-06 | 2002-05-24 | Fujitsu Ltd | マイクロプロセッサ及びマイクロプロセッサのアドレス変換方法 |
JP2003196157A (ja) * | 2001-12-25 | 2003-07-11 | Mitsubishi Electric Corp | プロセッサ装置及びメモリ管理方法 |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT354159B (de) * | 1975-02-10 | 1979-12-27 | Siemens Ag | Assoziativspeicher mit getrennt assoziierbaren bereichen |
US4453212A (en) * | 1981-07-13 | 1984-06-05 | Burroughs Corporation | Extended address generating apparatus and method |
US4928223A (en) * | 1982-10-06 | 1990-05-22 | Fairchild Semiconductor Corporation | Floating point microprocessor with directable two level microinstructions |
DE3382350D1 (de) * | 1982-11-17 | 1991-08-29 | Nec Corp | Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse. |
US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
US4764861A (en) * | 1984-02-08 | 1988-08-16 | Nec Corporation | Instruction fpefetching device with prediction of a branch destination for each branch count instruction |
US4853840A (en) * | 1986-01-07 | 1989-08-01 | Nec Corporation | Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed |
EP0239081B1 (en) * | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Pipelined data processor capable of decoding and executing plural instructions in parallel |
US4914582A (en) * | 1986-06-27 | 1990-04-03 | Hewlett-Packard Company | Cache tag lookaside |
CA1286784C (en) | 1986-08-27 | 1991-07-23 | Joseph A. Petolino, Jr. | Cache storage queue |
IT1202687B (it) * | 1987-03-25 | 1989-02-09 | Honeywell Inf Systems | Memoria tampone a predizione di hit |
US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
US5067069A (en) | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5142634A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5129067A (en) * | 1989-06-06 | 1992-07-07 | Advanced Micro Devices, Inc. | Multiple instruction decoder for minimizing register port requirements |
US5136697A (en) * | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
US5091851A (en) * | 1989-07-19 | 1992-02-25 | Hewlett-Packard Company | Fast multiple-word accesses from a multi-way set-associative cache memory |
US5148538A (en) * | 1989-10-20 | 1992-09-15 | International Business Machines Corporation | Translation look ahead based cache access |
US5251306A (en) | 1990-01-16 | 1993-10-05 | Advanced Micro Devices, Inc. | Apparatus for controlling execution of a program in a computing device |
US5185868A (en) * | 1990-01-16 | 1993-02-09 | Advanced Micro Devices, Inc. | Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy |
US5226130A (en) * | 1990-02-26 | 1993-07-06 | Nexgen Microsystems | Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency |
US5163140A (en) * | 1990-02-26 | 1992-11-10 | Nexgen Microsystems | Two-level branch prediction cache |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
DE69129872T2 (de) * | 1990-03-27 | 1999-03-04 | Philips Electronics Nv | Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher |
US5053631A (en) * | 1990-04-02 | 1991-10-01 | Advanced Micro Devices, Inc. | Pipelined floating point processing unit |
US5058048A (en) * | 1990-04-02 | 1991-10-15 | Advanced Micro Devices, Inc. | Normalizing pipelined floating point processing unit |
EP0459232B1 (en) | 1990-05-29 | 1998-12-09 | National Semiconductor Corporation | Partially decoded instruction cache and method therefor |
US5235697A (en) * | 1990-06-29 | 1993-08-10 | Digital Equipment | Set prediction cache memory system using bits of the main memory address |
US5283873A (en) * | 1990-06-29 | 1994-02-01 | Digital Equipment Corporation | Next line prediction apparatus for a pipelined computed system |
JP2834289B2 (ja) | 1990-07-20 | 1998-12-09 | 株式会社日立製作所 | マイクロプロセッサ |
US5412787A (en) * | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
US5210845A (en) * | 1990-11-28 | 1993-05-11 | Intel Corporation | Controller for two-way set associative cache |
JP2636088B2 (ja) | 1991-03-15 | 1997-07-30 | 甲府日本電気株式会社 | 情報処理装置 |
US5345569A (en) * | 1991-09-20 | 1994-09-06 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
GB2263985B (en) | 1992-02-06 | 1995-06-14 | Intel Corp | Two stage window multiplexors for deriving variable length instructions from a stream of instructions |
SG45269A1 (en) | 1992-02-06 | 1998-01-16 | Intel Corp | End bit markers for instruction decode |
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
AU3776793A (en) * | 1992-02-27 | 1993-09-13 | Intel Corporation | Dynamic flow instruction cache memory |
US5418922A (en) * | 1992-04-30 | 1995-05-23 | International Business Machines Corporation | History table for set prediction for accessing a set associative cache |
US5423011A (en) * | 1992-06-11 | 1995-06-06 | International Business Machines Corporation | Apparatus for initializing branch prediction information |
WO1994003856A1 (en) * | 1992-08-07 | 1994-02-17 | Massachusetts Institute Of Technology | Column-associative cache |
JPH06314241A (ja) * | 1993-03-04 | 1994-11-08 | Sharp Corp | 高速半導体記憶装置及び高速連想記憶装置 |
US5454117A (en) * | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
IE80854B1 (en) | 1993-08-26 | 1999-04-07 | Intel Corp | Processor ordering consistency for a processor performing out-of-order instruction execution |
DE4333547A1 (de) * | 1993-10-01 | 1995-04-06 | Hoechst Ag | Verfahren zur Verwertung von Reststoffen enthaltend cellulosische Fasern und aus synthetischen Polymeren |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices Inc | Superskalarmikroprozessoren |
US5606683A (en) * | 1994-01-28 | 1997-02-25 | Quantum Effect Design, Inc. | Structure and method for virtual-to-physical address translation in a translation lookaside buffer |
US5671444A (en) * | 1994-02-28 | 1997-09-23 | Intel Corporaiton | Methods and apparatus for caching data in a non-blocking manner using a plurality of fill buffers |
EP0675443A1 (en) | 1994-03-30 | 1995-10-04 | Digital Equipment Corporation | Apparatus and method for accessing direct mapped cache |
US5521306A (en) * | 1994-04-26 | 1996-05-28 | Xerox Corporation | Processes for the preparation of hydroxygallium phthalocyanine |
US5559975A (en) * | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
US5813031A (en) * | 1994-09-21 | 1998-09-22 | Industrial Technology Research Institute | Caching tag for a large scale cache computer memory system |
US5509119A (en) * | 1994-09-23 | 1996-04-16 | Hewlett-Packard Company | Fast comparison method and apparatus for error corrected cache tags |
US5640532A (en) * | 1994-10-14 | 1997-06-17 | Compaq Computer Corporation | Microprocessor cache memory way prediction based on the way of previous memory read |
US5835951A (en) * | 1994-10-18 | 1998-11-10 | National Semiconductor | Branch processing unit with target cache read prioritization protocol for handling multiple hits |
US5732242A (en) * | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
US5764946A (en) * | 1995-04-12 | 1998-06-09 | Advanced Micro Devices | Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address |
US5845323A (en) * | 1995-08-31 | 1998-12-01 | Advanced Micro Devices, Inc. | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time |
US5752069A (en) * | 1995-08-31 | 1998-05-12 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing away prediction structure |
US5893146A (en) * | 1995-08-31 | 1999-04-06 | Advanced Micro Design, Inc. | Cache structure having a reduced tag comparison to enable data transfer from said cache |
US5802594A (en) * | 1995-09-06 | 1998-09-01 | Intel Corporation | Single phase pseudo-static instruction translation look-aside buffer |
US5918245A (en) * | 1996-03-13 | 1999-06-29 | Sun Microsystems, Inc. | Microprocessor having a cache memory system using multi-level cache set prediction |
WO1998020421A1 (en) | 1996-11-04 | 1998-05-14 | Advanced Micro Devices, Inc. | A way prediction structure |
US6065091A (en) * | 1997-05-30 | 2000-05-16 | Via-Cyrix, Inc. | Translation look-aside buffer slice circuit and method of operation |
US5956746A (en) * | 1997-08-13 | 1999-09-21 | Intel Corporation | Computer system having tag information in a processor and cache memory |
US6016533A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Way prediction logic for cache array |
US6016545A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor |
US6418521B1 (en) * | 1998-12-23 | 2002-07-09 | Intel Corporation | Hierarchical fully-associative-translation lookaside buffer structure |
US6425055B1 (en) * | 1999-02-24 | 2002-07-23 | Intel Corporation | Way-predicting cache memory |
US6687789B1 (en) * | 2000-01-03 | 2004-02-03 | Advanced Micro Devices, Inc. | Cache which provides partial tags from non-predicted ways to direct search if way prediction misses |
-
2003
- 2003-09-03 US US10/653,749 patent/US7117290B2/en not_active Expired - Fee Related
-
2004
- 2004-06-04 GB GB0605621A patent/GB2421826B/en not_active Expired - Fee Related
- 2004-06-04 KR KR1020067003890A patent/KR101014395B1/ko not_active IP Right Cessation
- 2004-06-04 JP JP2006525316A patent/JP2007504552A/ja active Pending
- 2004-06-04 DE DE112004001608.8T patent/DE112004001608B4/de not_active Expired - Fee Related
- 2004-06-04 WO PCT/US2004/018042 patent/WO2005024635A2/en active Application Filing
- 2004-06-04 CN CNB2004800252914A patent/CN100485638C/zh not_active Expired - Fee Related
- 2004-08-20 TW TW093125089A patent/TW200519590A/zh unknown
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6413649A (en) * | 1987-07-07 | 1989-01-18 | Nec Corp | Information processor |
JPS6418859A (en) * | 1987-07-14 | 1989-01-23 | Nec Corp | Information processor |
JPH0314050A (ja) * | 1989-06-12 | 1991-01-22 | Matsushita Electric Ind Co Ltd | 記憶装置 |
JPH03266153A (ja) * | 1989-12-01 | 1991-11-27 | Mips Computer Syst Inc | 速度向上のために部分アドレスを使用する2レベル変換ルックアサイドバッファ |
JPH03232034A (ja) * | 1990-02-08 | 1991-10-16 | Oki Electric Ind Co Ltd | キャッシュ制御装置 |
JPH0535591A (ja) * | 1991-07-29 | 1993-02-12 | Toshiba Corp | キヤツシユメモリ装置 |
JPH0535592A (ja) * | 1991-07-29 | 1993-02-12 | Toshiba Corp | キヤツシユメモリ装置 |
JPH0895864A (ja) * | 1994-09-28 | 1996-04-12 | Toshiba Corp | アドレス変換装置 |
US6212602B1 (en) * | 1997-12-17 | 2001-04-03 | Sun Microsystems, Inc. | Cache tag caching |
US6138225A (en) * | 1997-12-24 | 2000-10-24 | Intel Corporation | Address translation system having first and second translation look aside buffers |
JP2000112820A (ja) * | 1998-10-02 | 2000-04-21 | Nec Corp | キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置 |
JP2002007210A (ja) * | 2000-06-05 | 2002-01-11 | Samsung Electronics Co Ltd | デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法 |
JP2002116954A (ja) * | 2000-10-05 | 2002-04-19 | Hitachi Ltd | キャッシュシステム |
JP2002149490A (ja) * | 2000-11-06 | 2002-05-24 | Fujitsu Ltd | マイクロプロセッサ及びマイクロプロセッサのアドレス変換方法 |
JP2003196157A (ja) * | 2001-12-25 | 2003-07-11 | Mitsubishi Electric Corp | プロセッサ装置及びメモリ管理方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2008155848A1 (ja) * | 2007-06-20 | 2010-08-26 | 富士通株式会社 | 計算機、tlb制御方法およびtlb制御プログラム |
US8190853B2 (en) | 2007-06-20 | 2012-05-29 | Fujitsu Limited | Calculator and TLB control method |
JP4998554B2 (ja) * | 2007-06-20 | 2012-08-15 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
JP2009217827A (ja) * | 2008-03-12 | 2009-09-24 | Arm Ltd | マイクロタグを使用するキャッシュ・アクセッシング |
JP2011013858A (ja) * | 2009-06-30 | 2011-01-20 | Fujitsu Ltd | 演算処理装置およびアドレス変換方法 |
US8745356B2 (en) | 2009-06-30 | 2014-06-03 | Fujitsu Limited | Processor and address translating method |
JP2013530476A (ja) * | 2010-07-06 | 2013-07-25 | クアルコム,インコーポレイテッド | 変換索引バッファを管理するためのシステムおよび方法 |
US11829293B2 (en) | 2021-10-07 | 2023-11-28 | Fujitsu Limited | Processor and arithmetic processing method |
Also Published As
Publication number | Publication date |
---|---|
TW200519590A (en) | 2005-06-16 |
CN100485638C (zh) | 2009-05-06 |
WO2005024635A2 (en) | 2005-03-17 |
WO2005024635A3 (en) | 2005-05-26 |
US7117290B2 (en) | 2006-10-03 |
GB2421826B (en) | 2007-04-11 |
KR101014395B1 (ko) | 2011-02-15 |
KR20060067964A (ko) | 2006-06-20 |
DE112004001608B4 (de) | 2018-09-06 |
GB2421826A (en) | 2006-07-05 |
GB0605621D0 (en) | 2006-04-26 |
US20050050277A1 (en) | 2005-03-03 |
DE112004001608T5 (de) | 2006-08-10 |
CN1846200A (zh) | 2006-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7117290B2 (en) | MicroTLB and micro tag for reducing power in a processor | |
US20050050278A1 (en) | Low power way-predicted cache | |
KR100884351B1 (ko) | 타입 비트들을 이용한, 레벨 2 캐시에서의 ecc 및프리디코드 비트들의 저장 추적 | |
US7739477B2 (en) | Multiple page size address translation incorporating page size prediction | |
KR100747127B1 (ko) | 경로 예측 실패시 조회를 지시하도록 비예측 경로들로부터부분적인 태그들을 제공하는 캐쉬 | |
EP1388065B1 (en) | Method and system for speculatively invalidating lines in a cache | |
JP4437001B2 (ja) | 変換索引バッファのフラッシュフィルタ | |
US6604187B1 (en) | Providing global translations with address space numbers | |
US6594728B1 (en) | Cache memory with dual-way arrays and multiplexed parallel output | |
KR101456860B1 (ko) | 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템 | |
JP3836322B2 (ja) | プリデコード情報を記憶するためのecc/パリティビットの使用 | |
US20100250859A1 (en) | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry | |
JP2015084250A (ja) | 所与の範囲のページのキャッシュフラッシュおよび所与の範囲のエントリのtlb無効化を行なうシステム、方法、および装置 | |
JP2008542948A (ja) | コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
US20070112998A1 (en) | Virtualized load buffers | |
US6704854B1 (en) | Determination of execution resource allocation based on concurrently executable misaligned memory operations | |
US7685372B1 (en) | Transparent level 2 cache controller | |
US7076635B1 (en) | Method and apparatus for reducing instruction TLB accesses | |
US20070011432A1 (en) | Address generation unit with operand recycling | |
KR100343940B1 (ko) | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070530 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090406 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100421 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20100902 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101027 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110323 |