JP5300407B2 - 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 - Google Patents
仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 Download PDFInfo
- Publication number
- JP5300407B2 JP5300407B2 JP2008269940A JP2008269940A JP5300407B2 JP 5300407 B2 JP5300407 B2 JP 5300407B2 JP 2008269940 A JP2008269940 A JP 2008269940A JP 2008269940 A JP2008269940 A JP 2008269940A JP 5300407 B2 JP5300407 B2 JP 5300407B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- memory
- tlb
- virtual
- data
- 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.)
- Expired - Fee Related
Links
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/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/1054—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 physically addressed
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Description
TLBとキャッシュのタグメモリの容量に関する問題である。
TLBは、データとして仮想ページ番号と物理ページ番号、およびページ属性、ページ状態などのデータを保持する。32ビット以上の物理アドレス空間を持つプロセッサでは、TLBに保持するデータの中で仮想ページ番号と物理ページ番号の占める割合は大きい。TLBの大きさは、主に物理アドレス空間の大きさ、最小ページサイズ、およびTLBのエントリ数によって決まる。
・L1 サイズ 8kB 〜 64kB, direct map もしくは 2way set associative
・TLB エントリ数 4〜512 エントリ full associative
・最小ページサイズ 1〜64k Byte
となっている(非特許文献1,2,3参照)。
Computer Architecture - A Quantitative Approach - Third Edition 、 Figure5.57 および Figure5.58 (505ページ、506ページ) Computer Organization and Design -- The Hardware/Software interface --second edition (1998 Morgan Kaufmann : ISBN 1-55860-428-6)by David.A.Patterson and John L. Hennessy (p592) Integrating virtual memory, TLB and Caches (p593) Figure 7.25 (p594) Figure 7.26 Computer Architecture -- A Quantitative Approach--third edition (2003 Morgan Kaufmann : ISBN 1-55860-596-7)by John L. Hennessy and David.A.Patterson(p444) "Second Hit Time Reduction Technique:Avoiding Address Translation during Indexing of Cache"
(構成)
まず図1に基づき、本発明の第1の実施の形態に係わるプロセッサシステムの構成を説明する。図1は、本発明の第1の実施の形態に係わるプロセッサシステムの構成を示す構成図である。
なお、本実施の形態では、1つのCPU11がDRAM13をアクセスする例であるが、CPU11とキャッシュメモリ12の対が複数あって、その複数の対が、システムバス等を介して、1つのDRAM13と接続されるようなマルチコアの構成でもよい。
さらに、L1キャッシュであるキャッシュメモリ12とDRAM13の間に、L2キャッシュ等があってもよい。
また、CPU11からは、プロセスを識別するための識別子としてのプロセス番号(PID)もキャッシュメモリ12に入力される。
そして、CPU11は、キャッシュラインサイズあるいはキャッシュラインサイズ以下のデータを、キャッシュメモリ12から取り出す。ここでは、CPU11は、32ビットのデータをキャッシュメモリ12から取り出している。
もう一つは、OS等の、仮想アドレスを管理するソフトウェアの助けを借りて、複数のページを並べてエイリアスが発生しないアドレス空間を作成し(たとえば上記例では 64kB / 2way = 32kB の領域を作るように8個の4kBページを並べて)エイリアスの発生をソフトウェア的に防止するページカラーリングと呼ばれる方法である。
次に、上述したキャッシュメモリ12の動作を説明する。図3は、メモリリード時の処理の流れを説明するためのフローチャートである。図4は、TLB登録処理の流れを説明するためのフローチャートである。図5は、TLBミス処理の流れを説明するためのフローチャートである。図6は、キャッシュリード時の処理の流れを説明するためのフローチャートである。
図3に示すように、メモリリードが開始されると、仮想インデックスで、ステートメモリ24とデータメモリ23とTLB仮想ページメモリ21へのアクセスが行われる(ステップS1)。TLB仮想ページメモリ21がヒットしなかった時は、TLBヒットの判断(ステップS2)でNOとなり、リード時のTLB登録処理が実行される(ステップS3)。TLBがヒットした時は、TLBヒットの判断(ステップS2)でYESとなり、その仮想ページはリード可能かの判断がされる(ステップS4)。仮想ページはリード可能の場合は、ステップS4でYESとなり、キャッシュリードが行われる(ステップS5)。仮想ページはリード可能でない場合は、ステップS4でNOとなり、割込処理により、プロテクト違反をCPU11通知し(ステップS6)、OSによる例外処理が実行される。
(TLBヒットの場合)
まず、上述したように、CPU11からキャッシュメモリ12へ仮想アドレス31とプロセス番号(PID)が入力される。TLB仮想ページメモリ21では、入力された仮想アドレス31中の仮想ページインデックス(EP_Index)(15:12)を用いて、各ウェイのデータが選択される。そして、選択されたデータの中で、TLB仮想ページメモリ21は、入力された仮想アドレス31に関わるプロセスの識別子であるプロセス番号(PID)と、入力された仮想アドレス31中の仮想ページタグ(EA_Tag)としての上位ビット(31:12)とが、それぞれTLB仮想ページメモリ21のプロセス番号(PID)と仮想ページ(EP)とに一致する場合に、比較器21aから、一致したウェイ番号(WN)をヒット信号として出力する。比較器21aでは、各TLB仮想ページメモリからの4つの出力と、仮想アドレス31の上位ビット(31:12)及びプロセス番号(PID)が比較される。なお、一致しない場合には、不一致を示すノンヒット信号が出力される。
TLBヒット時にキャッシュミスが発生した場合には以下の動作が追加される。TLBヒット時にキャッシュミスが発生する場合とは、TLBヒットはしているが、キャッシュステートがinvalidであるため、キャッシュのデータのDRAM13からの読みだしが必要な場合である。
TLB ミス時には以下の動作が追加される。
すなわち、上述した読み出されたPTE(ページテーブルエントリ)から仮想ページ番号をもとめ、TLB 仮想ページメモリ21、TLB物理ページメモリ22及びTLB物理ページCAM25に対するデータの登録が行われる(図4のステップS18、図5のステップS31)。
具体的には、TLB仮想ページメモリ21へプロセス番号(PID)と仮想ページ(EP)が登録される。さらに、PTE(ページテーブルエントリ)のダーティビット(Dirty bit)の書き込みが行われ、対応するValid(V)ビット、Reference(R)ビットをたてる。
PTE(ページテーブルエントリ)から求められたTLBエントリの無効化が行われる。無効化処理には、対応する仮想ページのキャッシュフラッシュが含まれる。
具体的には、TLB仮想ページメモリ21へプロセス番号(PID)と仮想ページ(EP)が登録される。さらに、PTE(ページテーブルエントリ)のダーティビット(Dirty bit)の書き込みが行われ、対応するValid(V)ビット、Reference(R)ビットをたてる。
スヌープに使うTLB物理ページCAM25とステートメモリ24は、TLB登録用と、CPU11からのアクセス用とに共用される。
次に、本発明の第2の実施の形態について説明する。
第2の実施の形態に係る仮想アドレスキャッシュメモリの基本的な構成は、上述した第1の実施の形態と同じであるが、エイリアスを検出した場合の動作が異なる。
次に、本発明の第3の実施の形態について説明する。
第3の実施の形態に係る仮想アドレスキャッシュメモリの基本的な構成は、上述した第2の実施の形態と同じであるが、第3の実施の形態では、エイリアスを起こしているTLB仮想ページメモリ21のインデックスと、登録しようとしているインデックスが一致しても TLB エントリを書き換えない。つまり、エイリアスを起こしているTLB 仮想ページメモリ21の各エントリは完全に独立した制御となり、TLB でのエイリアス処理をなくして、エイリアスを起こしているエントリ間の整合性はキャッシュコヒーレンス機構に任せられる。
次に、本発明の第4の実施の形態について説明する。
第4の実施の形態に係る仮想アドレスキャッシュメモリは、フルアソシアティブキャッシュである。
図7に示すように、TLBCAM21Aと、TLB物理ページメモリ22Aと、データメモリ23Aと、キャッシュステートメモリ24Aとを含んで構成されている。
物理ページ番号 40ビット - 12ビット = 28ビット、
仮想ページ番号 32ビット - 12ビット = 20ビット、
エントリ数 256KB / 4KB = 64 エントリ、
であるから、
TLB サイズ= (物理ページ番号 + 仮想ページ番号 + 状態ビット) * エントリ数
= (28+20+10) * 64
= 3712ビット
L1 キャッシュのステートメモリ(従来のタグメモリに相当する)のサイズは、キャッシュのリプレースをページ単位で行うように制限したのでエントリ数が大幅に減少する。
エントリ数 = 256KB / 4KB = 64 エントリ、
(64エントリ = アドレス 6ビット)、
Index ビット数= ウェイあたりのエントリ数 = 6ビット、
Tag ビット数= 物理アドレス空間 - ( エントリ数 + ラインサイズ)
= 40ビット - ( 6ビット + 12ビット)
= 40ビット - 18ビット
= 22ビット
であり、この構成で必要なのは物理ページ情報であり仮想ページ情報は不要なので、
L1 Tag メモリサイズ
= ( Tag ビット数 ) * エントリ総数
+ (状態ビット数*ページ内のライン数 * エントリ総数
= ( 22 ビット*64) + 10 ビット*64 * 32 )
= 1408 + 20480 ビット
= 21888 ビット
となる。
L1 サイズ 256kB、full set associative (ただし、管理は 4kB )、
TLB エントリ数 64 エントリ full associative、
最小ページサイズ 4kB、
仮想アドレス/物理アドレスサイズ 32bit/40bit、
L1 ラインサイズ 128 Byte、
において、 TLBCAM21Aは、約4000ビット、 L1 ステートメモリであるキャッシュステートメモリ24Aは約22000ビット、合計で約26000ビットのメモリしか必要としない。
次に、本発明の第5の実施の形態について説明する。
第5の実施の形態に係る仮想アドレスキャッシュメモリも、フルアソシアティブキャッシュである。
図12に示すように、TLBCAM21Bと、TLB物理ページメモリ22Bと、データメモリ23Bと、キャッシュステートメモリ24Bと、TLB物理ページCAM25Bを含んで構成されている。
次に、本発明の第6の実施の形態について説明する。
第6の実施の形態に係る仮想アドレスキャッシュメモリも、フルアソシアティブキャッシュである。
図13に示すように、TLBCAM21Cと、TLB物理ページメモリ22Cと、データメモリ23Cとを含んで構成されている。
次に、本発明の第7の実施の形態について説明する。
本実施の形態のキャッシュメモリは、TLB は一次TLBのほかに、二次TLBを有する。そして、二次TLBはキャッシュとはリンクされていない、あるいはページテーブルのみで変換機構を有していないメモリである。
次に、本発明の第8の実施の形態について説明する。
本実施の形態のキャッシュメモリは、TLB登録処理をおこなうとき、登録されたTLBエントリで示されるページを低優先順位でメモリから読みだす機構を設けたメモリである。
Claims (16)
- プロセスの仮想アドレスの所定の上位ビットの仮想ページタグのうち、最下位ビットを含む複数の下位ビットを第1インデックスとして、前記仮想ページタグを含むエントリデータを保持し、プロセッサからの前記仮想ページタグが一致するとヒット信号を出力するTLB仮想ページメモリと、
前記第1インデックス及びページオフセットを含む第2インデックスを用いて、前記第1インデックスと同一のエントリには、前記TLB仮想ページメモリと同一の仮想ページタグに対応するキャッシュデータを保持するデータメモリと、
前記第2インデックスに対応して前記データメモリに記憶された前記キャッシュデータのキャッシュステートを保持するキャッシュステートメモリと、
を有することを特徴とする仮想アドレスキャッシュメモリ。 - 前記データメモリは、前記プロセスの実行を管理するオペレーティングシステムの仮想ページ単位で、前記キャッシュデータのリプレースを行うことを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- 前記キャッシュステートメモリのキャッシュステート管理は、ページサイズより小さいキャッシュブロック単位で行われることを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- 前記データメモリの前記キャッシュデータのコヒーレンシを保持するためのスヌープ機構を有することを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- プロセスの仮想アドレスの所定の上位ビットの仮想ページタグのうち、最下位ビットを含む複数の下位ビットを第1インデックスとして、前記仮想ページタグを含むエントリデータを保持するTLB仮想ページメモリ中の前記エントリデータにおける前記仮想ページタグと、プロセッサからの前記仮想ページタグが一致するとヒット信号を出力し、
前記ヒット信号が出力されると、前記第1インデックス及びページオフセットを含む第2インデックスを用いて、前記第1インデックスと同一のエントリには、前記仮想ページメモリと同一の仮想ページタグに対応するキャッシュデータを保持するデータメモリと、前記第2インデックスに対応して前記データメモリに記憶された前記キャッシュデータのキャッシュステートを保持するキャッシュステートメモリとをアクセスする、ことを特徴とする仮想アドレスキャッシュ方法。 - 前記仮想アドレスに加えて、プロセス識別子などの仮想アドレス以外の識別番号も比較の対象とすることを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- 前記データメモリに保持する前記キャッシュデータに対応する物理アドレスを保持して、該当する物理アドレスのデータを前記データメモリ中に保持しているかどうかを調べる機構を有する請求項1に記載の仮想アドレスキャッシュメモリ。
- 同一の前記物理アドレスを複数のエントリに登録可能であることを、特徴とする請求項7に記載の仮想アドレスキャッシュメモリ。
- 同一の前記物理アドレスを複数のエントリに登録可能でないことを、特徴とする請求項7に記載の仮想アドレスキャッシュメモリ。
- 前記仮想アドレス及び、その他の識別子などの全部または一部を選択的に比較の対象とし、指定された部分の一致のみでヒットとみなすことを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- 前記キャッシュステートメモリの状態に応じて該当のブロックのみのデータの入れ替えを行う機構を有することを特徴とする請求項3に記載の仮想アドレスキャッシュメモリ。
- 前記物理アドレスを保持する手段として、フルアソシアティブメモリを使うことを特徴とする請求項7に記載の仮想アドレスキャッシュメモリ。
- 前記フルアソシアティブメモリは、インデックスによる読み出しも可能なフルアソシアティブメモリを使うことを特徴とする請求項12に記載の仮想アドレスキャッシュメモリ。
- 前記TLB仮想ページメモリは、前記データメモリ全体を保持することを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- 前記TLB仮想ページメモリは、その保持するアドレスの範囲を前記データメモリ全体よりも大きくすることを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
- キャッシュミス時に、前記仮想アドレスと対応する物理ページを保持するTLB機構を別途持つことを特徴とする請求項1に記載の仮想アドレスキャッシュメモリ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008269940A JP5300407B2 (ja) | 2008-10-20 | 2008-10-20 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
US12/580,732 US8949572B2 (en) | 2008-10-20 | 2009-10-16 | Effective address cache memory, processor and effective address caching method |
CN2009102050381A CN101727405B (zh) | 2008-10-20 | 2009-10-20 | 虚拟地址高速缓冲存储器和方法以及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008269940A JP5300407B2 (ja) | 2008-10-20 | 2008-10-20 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010097558A JP2010097558A (ja) | 2010-04-30 |
JP5300407B2 true JP5300407B2 (ja) | 2013-09-25 |
Family
ID=42109532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008269940A Expired - Fee Related JP5300407B2 (ja) | 2008-10-20 | 2008-10-20 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8949572B2 (ja) |
JP (1) | JP5300407B2 (ja) |
CN (1) | CN101727405B (ja) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239799B2 (en) * | 2008-06-26 | 2016-01-19 | Qualcomm Incorporated | Memory management unit directed access to system interfaces |
JP2011095852A (ja) * | 2009-10-27 | 2011-05-12 | Toshiba Corp | キャッシュメモリ制御回路 |
US8862827B2 (en) * | 2009-12-29 | 2014-10-14 | International Business Machines Corporation | Efficient multi-level software cache using SIMD vector permute functionality |
JP2011198091A (ja) * | 2010-03-19 | 2011-10-06 | Toshiba Corp | 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム |
US8671245B2 (en) * | 2010-12-27 | 2014-03-11 | Lsi Corporation | Using identification in cache memory for parallel requests |
WO2012156850A1 (en) * | 2011-05-19 | 2012-11-22 | International Business Machines Corporation | Managing the translation look-aside buffer (tlb) of an emulated machine |
JP2013097416A (ja) * | 2011-10-28 | 2013-05-20 | Hitachi Ltd | 記憶装置および計算機 |
US9323691B2 (en) * | 2012-03-08 | 2016-04-26 | Freescale Semiconductor, Inc. | Multiple page size memory management unit |
CN102662860B (zh) * | 2012-03-15 | 2015-07-01 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
US20140059293A1 (en) * | 2012-08-27 | 2014-02-27 | Samsung Electronics Co., Ltd. | Method for protecting a gpt cached disks data integrity in an external operating system environment |
CN103207844B (zh) * | 2013-04-18 | 2017-06-06 | 上海云间半导体科技有限公司 | 缓存系统及缓存访问方法 |
US9593571B2 (en) * | 2013-05-30 | 2017-03-14 | Schlumberger Technology Coproration | Determining correct drill pipe length and formation depth using measurements from repeater subs of a wired drill pipe system |
CN104298616B (zh) * | 2013-07-15 | 2017-10-17 | 华为技术有限公司 | 数据块初始化方法、高速缓冲存储器和终端 |
JP6088951B2 (ja) * | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
TWI489279B (zh) | 2013-11-27 | 2015-06-21 | Realtek Semiconductor Corp | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
CN104699633B (zh) * | 2013-12-04 | 2019-04-23 | 瑞昱半导体股份有限公司 | 虚拟物理地址转换系统及其管理方法 |
US9135184B2 (en) * | 2013-12-12 | 2015-09-15 | International Business Machines Corporation | Load-through fault mechanism |
CN104899159B (zh) | 2014-03-06 | 2019-07-23 | 华为技术有限公司 | 高速缓冲存储器Cache地址的映射处理方法和装置 |
CN105095108A (zh) * | 2014-05-06 | 2015-11-25 | 展讯通信(上海)有限公司 | 输入输出存储器管理单元及控制方法、装置 |
CN105094953B (zh) * | 2014-05-09 | 2018-09-07 | 华为技术有限公司 | 数据访问方法及装置 |
US9672043B2 (en) | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
US9665372B2 (en) | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US11620220B2 (en) * | 2014-07-14 | 2023-04-04 | Via Alliance Semiconductor Co., Ltd. | Cache system with a primary cache and an overflow cache that use different indexing schemes |
CN105993004B (zh) * | 2014-07-21 | 2019-04-02 | 上海兆芯集成电路有限公司 | 转译后备缓冲器、操作其的方法以及包含其的处理器 |
US9760375B2 (en) | 2014-09-09 | 2017-09-12 | International Business Machines Corporation | Register files for storing data operated on by instructions of multiple widths |
US9720696B2 (en) | 2014-09-30 | 2017-08-01 | International Business Machines Corporation | Independent mapping of threads |
US9684606B2 (en) * | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US9697137B2 (en) * | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
US9977678B2 (en) | 2015-01-12 | 2018-05-22 | International Business Machines Corporation | Reconfigurable parallel execution and load-store slice processor |
US10133581B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Linkable issue queue parallel execution slice for a processor |
US10133576B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries |
JP5974133B1 (ja) | 2015-03-20 | 2016-08-23 | 株式会社東芝 | メモリシステム |
US9830275B2 (en) * | 2015-05-18 | 2017-11-28 | Imagination Technologies Limited | Translation lookaside buffer |
CN106933749B (zh) * | 2015-12-31 | 2020-10-13 | 北京国睿中数科技股份有限公司 | 应用于缓存验证系统的地址随机方法和装置 |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US10061712B2 (en) * | 2016-05-10 | 2018-08-28 | Oracle International Corporation | Virtual memory page mapping overlays |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US9934033B2 (en) | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
US10579522B2 (en) * | 2016-09-13 | 2020-03-03 | Andes Technology Corporation | Method and device for accessing a cache memory |
US10719451B2 (en) * | 2017-01-13 | 2020-07-21 | Optimum Semiconductor Technologies Inc. | Variable translation-lookaside buffer (TLB) indexing |
US10417140B2 (en) * | 2017-02-24 | 2019-09-17 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
GB2560336B (en) * | 2017-03-07 | 2020-05-06 | Imagination Tech Ltd | Address generators for verifying integrated circuit hardware designs for cache memory |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
CN107885596B (zh) * | 2017-06-22 | 2021-06-15 | 叶雅敏 | 用于音视频解码、编码的高频访问内存的程序优化方法 |
CN107992433A (zh) * | 2017-12-19 | 2018-05-04 | 北京云知声信息技术有限公司 | 二级缓存检测方法及装置 |
GB2571536B (en) * | 2018-02-28 | 2020-03-11 | Imagination Tech Ltd | Coherency manager |
US10846235B2 (en) | 2018-04-28 | 2020-11-24 | International Business Machines Corporation | Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator |
CN108710584B (zh) * | 2018-05-22 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种提高tlb刷新效率的方法 |
US11106600B2 (en) * | 2019-01-24 | 2021-08-31 | Advanced Micro Devices, Inc. | Cache replacement based on translation lookaside buffer evictions |
US10936493B2 (en) | 2019-06-19 | 2021-03-02 | Hewlett Packard Enterprise Development Lp | Volatile memory cache line directory tags |
CN112231241B (zh) * | 2019-07-15 | 2023-02-17 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法和装置、计算机可读存储介质 |
CN113157606A (zh) * | 2021-04-21 | 2021-07-23 | 上海燧原科技有限公司 | 一种缓存器实现方法、装置和数据处理设备 |
US11593108B2 (en) | 2021-06-07 | 2023-02-28 | International Business Machines Corporation | Sharing instruction cache footprint between multiple threads |
US11593109B2 (en) | 2021-06-07 | 2023-02-28 | International Business Machines Corporation | Sharing instruction cache lines between multiple threads |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01288940A (ja) * | 1988-05-16 | 1989-11-21 | Nec Corp | 論理アドレスキャッシュ制御方式 |
JPH0245847A (ja) * | 1988-08-06 | 1990-02-15 | Nec Corp | 仮想アドレスキャッシュ制御装置 |
JPH02253356A (ja) | 1989-03-28 | 1990-10-12 | Toshiba Corp | 階層キャッシュメモリ装置とその制御方式 |
JPH0383150A (ja) * | 1989-08-28 | 1991-04-09 | Fujitsu Ltd | アドレス変換機構付キャッシュ装置の制御方式 |
JP2818249B2 (ja) | 1990-03-30 | 1998-10-30 | 株式会社東芝 | 電子計算機 |
US5446849A (en) | 1990-11-30 | 1995-08-29 | Kabushiki Kaisha Toshiba | Electronic computer which executes squash branching |
JPH04235648A (ja) * | 1991-01-11 | 1992-08-24 | Nec Corp | 論理キャッシュメモリ装置 |
JPH04328655A (ja) * | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
US5634027A (en) | 1991-11-20 | 1997-05-27 | Kabushiki Kaisha Toshiba | Cache memory system for multiple processors with collectively arranged cache tag memories |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5826057A (en) | 1992-01-16 | 1998-10-20 | Kabushiki Kaisha Toshiba | Method for managing virtual address space at improved space utilization efficiency |
US5522058A (en) | 1992-08-11 | 1996-05-28 | Kabushiki Kaisha Toshiba | Distributed shared-memory multiprocessor system with reduced traffic on shared bus |
US5530824A (en) * | 1994-04-04 | 1996-06-25 | Motorola, Inc. | Address translation circuit |
JP2005108262A (ja) * | 1994-09-09 | 2005-04-21 | Renesas Technology Corp | データ処理装置 |
JPH08185359A (ja) | 1994-10-31 | 1996-07-16 | Toshiba Corp | メモリサブシステム |
US5682495A (en) * | 1994-12-09 | 1997-10-28 | International Business Machines Corporation | Fully associative address translation buffer having separate segment and page invalidation |
US5881264A (en) | 1996-01-31 | 1999-03-09 | Kabushiki Kaisha Toshiba | Memory controller and memory control system |
JP2916420B2 (ja) | 1996-09-04 | 1999-07-05 | 株式会社東芝 | チェックポイント処理加速装置およびデータ処理方法 |
US6161166A (en) * | 1997-11-10 | 2000-12-12 | International Business Machines Corporation | Instruction cache for multithreaded processor |
US6493790B1 (en) * | 1998-01-30 | 2002-12-10 | Sun Microsystems, Inc. | Translation-lookaside buffer with current tracking reference circuit |
JP4303803B2 (ja) | 1998-04-22 | 2009-07-29 | 株式会社東芝 | キャッシュフラッシュ装置 |
US6412043B1 (en) * | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6868485B1 (en) * | 2002-09-27 | 2005-03-15 | Advanced Micro Devices, Inc. | Computer system with integrated directory and processor cache |
US7103748B2 (en) | 2002-12-12 | 2006-09-05 | International Business Machines Corporation | Memory management for real-time applications |
US20040117587A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corp. | Hardware managed virtual-to-physical address translation mechanism |
US20050027960A1 (en) * | 2003-07-31 | 2005-02-03 | International Business Machines Corporation | Translation look-aside buffer sharing among logical partitions |
US7093100B2 (en) * | 2003-11-14 | 2006-08-15 | International Business Machines Corporation | Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes |
US7562179B2 (en) * | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US7805588B2 (en) * | 2005-10-20 | 2010-09-28 | Qualcomm Incorporated | Caching memory attribute indicators with cached memory data field |
JP2008226141A (ja) | 2007-03-15 | 2008-09-25 | Toshiba Corp | プログラムおよび情報処理装置 |
JP2008262390A (ja) | 2007-04-12 | 2008-10-30 | Toshiba Corp | プログラム |
JP2009020696A (ja) | 2007-07-11 | 2009-01-29 | Toshiba Corp | 情報処理装置及びシステム |
-
2008
- 2008-10-20 JP JP2008269940A patent/JP5300407B2/ja not_active Expired - Fee Related
-
2009
- 2009-10-16 US US12/580,732 patent/US8949572B2/en not_active Expired - Fee Related
- 2009-10-20 CN CN2009102050381A patent/CN101727405B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8949572B2 (en) | 2015-02-03 |
CN101727405B (zh) | 2012-07-18 |
US20100100685A1 (en) | 2010-04-22 |
JP2010097558A (ja) | 2010-04-30 |
CN101727405A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5300407B2 (ja) | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 | |
US9081711B2 (en) | Virtual address cache memory, processor and multiprocessor | |
US5787478A (en) | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
JP2839060B2 (ja) | データ処理システムおよびデータ処理方法 | |
US8782348B2 (en) | Microprocessor cache line evict array | |
US8180981B2 (en) | Cache coherent support for flash in a memory hierarchy | |
JP5580894B2 (ja) | Tlbプリフェッチング | |
US6321297B1 (en) | Avoiding tag compares during writes in multi-level cache hierarchy | |
EP3486786B1 (en) | System and methods for efficient virtually-tagged cache implementation | |
US20070136535A1 (en) | System and Method for Reducing Unnecessary Cache Operations | |
EP0945805A1 (en) | A cache coherency mechanism | |
US20160140042A1 (en) | Instruction cache translation management | |
US11734015B2 (en) | Cache systems and circuits for syncing caches or cache sets | |
US11048636B2 (en) | Cache with set associativity having data defined cache sets | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
US11010288B2 (en) | Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution | |
US11194582B2 (en) | Cache systems for main and speculative threads of processors | |
US20140289469A1 (en) | Processor and control method of processor | |
JP5319049B2 (ja) | キャッシュシステム | |
US20100257319A1 (en) | Cache system, method of controlling cache system, and information processing apparatus | |
US7685372B1 (en) | Transparent level 2 cache controller | |
US20030033483A1 (en) | Cache architecture to reduce leakage power consumption | |
KR100343940B1 (ko) | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 | |
CN116830092A (zh) | 用于跟踪存储器区域的内容的修改的技术 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130430 |
|
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: 20130528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130618 |
|
LAPS | Cancellation because of no payment of annual fees |