JP2009524166A - 変換索引マニピェレーション - Google Patents
変換索引マニピェレーション Download PDFInfo
- Publication number
- JP2009524166A JP2009524166A JP2008551562A JP2008551562A JP2009524166A JP 2009524166 A JP2009524166 A JP 2009524166A JP 2008551562 A JP2008551562 A JP 2008551562A JP 2008551562 A JP2008551562 A JP 2008551562A JP 2009524166 A JP2009524166 A JP 2009524166A
- Authority
- JP
- Japan
- Prior art keywords
- tlb
- processor
- instructions
- stage
- pipeline
- 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
- 238000006243 chemical reaction Methods 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 31
- 239000000872 buffer Substances 0.000 claims description 7
- 238000011010 flushing procedure Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/10—Address translation
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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]
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
本開示は変換索引バッファに関する
プロセッサは多段のパイプラインを有することができ、そしてTLBおよびTLBコントロール装置を含むことができる。TLBは仮想アドレスが物理アドレスに変換されることを可能にするアドレス変換情報を保存するように形成されることができる。TLBはさらにTLB対して与えられる命令の仮想アドレスがTLBから失われている場合、TLBミス信号を発生するように形成されることができる。TLBコントロール回路はさらにTLBミス信号に対応してTLB再ロード(TLB reload)を開始するように形成されることができる。プロセッサは失われた仮想アドレスを有するインストラクションをフラッシュするように形成されることができる。プロセッサはさらにインストラクションをリフェッチ(refetch)するように形成されているかも知れず、そしてそれは、結果的にTLBアクセスポイント上部のパイプラインの初期ステージにおいて、インストラクションを再挿入させることになる。TLB再ロードの開始およびインストラクションのフラッシュ/リフェッチの両者は、ただちにパイプラインをストーリングすることなしに、並行して実行することができる。プロセッサは、TLBの再ロードが完了するまで、TLBアクセスポイントも上部のパイプラインのポイントにおいてさらにリフェッチされたインストラクションを保持するように形成することができ、そこでリフェッチされたインストラクションはそこで次のアクセスに際してTLB内において「ヒット」するであろう。
添付された図面に関連して以下に述べる詳細な記載は、プロセッサに関する種々の例示的な実施例を記述し、そして、プロセッサ内におけるTLBを動作させる方法に関して記述することを意図するものであるが、しかし、ここに開示された創造的コンセプトを実施することのできる単なる実施例を表現することを意図するものではない。詳細な説明は記載されている全体の理解を可能にするための特定の詳細部を含む。しかしながら、いくつかの実施例におけるこれらの特定の詳細部の1つ以上のものは必要とされないことを当業界において習熟した人々によって正しく評価されるべきである。若干の実施例においては、表現されているコンセプトをより明確に示すために、良く知られた構造および構成部品はブロック線図の形態で示されている。
される(retrieve)ことができる。もしもTLB10がTLBに与えられた仮想アドレス22内の仮想ページ番号に対応する特定の物理ページアドレスを含まない場合は、TLB「ミス」が発生し、そして物理メモリ30(および/あるいはもしあればより高次のTLBのルックアップ)内のページテーブル20のルックアップが実行されなければならないであろう。一度ページテーブル20から物理ページアドレスが決定されると、仮想ページアドレスに対応する物理ページアドレスはTLB10のなかにロードされることができ、そしてTLB10は仮想ページアドレス22を用いて再度アクセスされることができる。所望の物理ページアドレスがいまやTLB10のなかにロードされている故に、TLBアクセスは今回はTLB「ヒット」となることができ、そして最近ロードされた物理的ページアドレスはTLB10の出力において発生させられることができる。
Claims (22)
- 多段パイプラインを有するプロセッサであって、該プロセッサは、
仮想アドレスが物理アドレスに変換されることを可能とするアドレス変換情報を記録するように形成されている変換索引バッファ(TLB)と、なお、TLBはさらに、TLBに対し与えられるインストラクションの仮想アドレスがTLBからミスしている場合は、TLBミス信号を発生するように形成されており、そして
TLBミス信号に対応して、直ちにパイプラインをストーリングすることなしに、TLB再ロードを開始するように形成されているTLBコントロール回路と
を含み、
ここで、プロセッサはミスしている仮想アドレスを有するインストラクションをフラッシュし、そしてリフェッチするように形成されている
プロセッサ。 - パイプラインは、そのポイントで一つあるいはそれより多くのインストラクションがTLBにアクセスすることを可能にされるTLBアクセスポイントを含み、そしてプロセッサはさらにTLB再ロードが完了するまで、TLBアクセスポイント上にリフェッチされたインストラクションを保持するように形成されている、請求項1記載のプロセッサ。
- プロセッサはさらに、パイプラインの最初のステージにおいてインストラクションを再挿入によりインストラクションをリフェッチするよう形成されている、請求項1記載のプロセッサ。
- プロセッサはさらに所定の回数よりも多くないようにパイプラインの初期ステージにおいてインストラクションを再挿入するように形成されている、請求項3記載の装置。
- 所定の回数数は1である、請求項4記載のプロセッサ。
- さらに複数のページ内にデータを記録するように形成されたメモリを含む、請求項1記載の装置。
- さらにメモリ内に記録されるデータのサブセットを記録するように形成されたデータキャッシュを含む、請求項6記載の装置。
- メモリはさらに複数のインストラクションを記録するように形成されている、請求項6記載の装置。
- さらに、メモリ内に記録されたインストラクションのサブセットを記録するように形成されたインストラクションキャシュを含む、請求項8記載のプロセッサ。
- TLBコントロール回路はさらに、TLB再ロードの期間中に、ミスしている仮想アドレスに関するアドレス変換情報をメモリから取得し、そしてアドレス変換情報をTLBの中に書き込むように形成されている、請求項6記載のプロセッサ。
- 複数のページの夫々の1つは物理ページアドレスを有し、そしてTLBに含まれるアドレス変換情報は仮想アドレスが複数のページの物理ページアドレスに変換されることを可能とする、請求項6記載のプロセッサ。
- TLBは少なくとも一個のデータTLB(DTLB)、インストラクション−TLB(ITLB)、および統合されたTLB(UTLB)を含む、請求項1記載のプロセッサ。
- マルチステージパイプラインは、少なくともフェッチステージ、デコードステージ、実行ステージ、メモリアクセスステージおとびライトバックステージを含む、請求項1記載のプロセッサ。
- さらに、インストラクションレジスタから1つあるいはそれより多くのインストラクションをフェッチするように形成された少なくとも1つのフェッチユニットと、
フェッチユニットによってフェッチされた1つあるいはそれより多くのインストラクションをデコードするように形成された少なくとも1つのデコードユニットと、そして
デコードユニットによってデコードされた1つあるいはそれより多くのインストラクションを実行するように形成された少なくとも1つの実行ユニットと
を含む、請求項10記載のプロセッサ。 - マルチステージパイプラインを有するパイプライン化されたプロセッサにおいてTLBを動作させる方法であって、この方法は
TLBからTLBミス信号を受信すること、なおTLBミス信号はアドレス変換情報のTLB内においてインストラクションの仮想アドレスの欠落を示しており、
TLBミス信号に応じて、直ちにパイプラインをストーリングすることなくTLBの再ロードを開始すること、
インストラクションをフラッシングすること、そして
インストラクションをリフェッチングすること
を含む方法。 - パイプラインはそこで1つあるいはそれより多くのインストラクションがTLBにアクセスすることが可能であるTLBアクセスポイントを含み、そしてさらに、TLB再ロードが完了するまで、リフェッチされたストラクションをTLBアクセスポイント上で保持する動作を含む、請求項15記載の方法。
- インストラクションをリフェッチングする動作は、パイプラインの初期ステージにおけるインストラクションの再挿入を含む、請求項15記載の方法。
- インストラクションをパイプラインの初期ステージにおいて再挿入する動作は、パイプラインの初期ステージにおいて所定の回数を超えることなく、インストラクションを再挿入することを含む、請求項17記載の方法。
- 所定の回数は1である、請求項18記載の方法。
- プロセッサはメモリを含み、そしてさらにTLB再ロードの期間中に、メモリから仮想アドレスに関するアドレス変換情報を取得する動作と、そしてアドレス変換情報をTLB内に書き込む動作を含む、請求項15記載の方法。
- プロセッサは、そこからTLBミス信号が受信されるTLBに比較して、より高いレベルのTLBである少なくとも1の付加的なTLBを含み、そしてより高いレベルのTLBから仮想アドレスに関するアドレス変換情報の取得を実行することをさらに含み、そしてTLBにアドレス変換情報を書き込むことを含む、請求項15記載の方法。
- パイプラインは少なくともフェッチステージ、デコードステージ、実行ステージ、メモリアクセスステージおよびライトバックステージを含む、請求項15記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/336,264 | 2006-01-20 | ||
US11/336,264 US7721067B2 (en) | 2006-01-20 | 2006-01-20 | Translation lookaside buffer manipulation |
PCT/US2007/060813 WO2007085009A1 (en) | 2006-01-20 | 2007-01-22 | Translation lookaside buffer manipulation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012129502A Division JP2012230683A (ja) | 2006-01-20 | 2012-06-07 | 変換索引マニピュレーション |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009524166A true JP2009524166A (ja) | 2009-06-25 |
JP2009524166A5 JP2009524166A5 (ja) | 2011-11-10 |
JP5329234B2 JP5329234B2 (ja) | 2013-10-30 |
Family
ID=38091746
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008551562A Expired - Fee Related JP5329234B2 (ja) | 2006-01-20 | 2007-01-22 | 変換索引マニピェレーション |
JP2012129502A Pending JP2012230683A (ja) | 2006-01-20 | 2012-06-07 | 変換索引マニピュレーション |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012129502A Pending JP2012230683A (ja) | 2006-01-20 | 2012-06-07 | 変換索引マニピュレーション |
Country Status (6)
Country | Link |
---|---|
US (1) | US7721067B2 (ja) |
EP (1) | EP1974255B1 (ja) |
JP (2) | JP5329234B2 (ja) |
KR (1) | KR100974775B1 (ja) |
CN (1) | CN101375245B (ja) |
WO (1) | WO2007085009A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015060499A (ja) * | 2013-09-20 | 2015-03-30 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7721067B2 (en) * | 2006-01-20 | 2010-05-18 | Qualcomm Incorporated | Translation lookaside buffer manipulation |
US20070180157A1 (en) * | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method for cache hit under miss collision handling |
US20070180158A1 (en) * | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method for command list ordering after multiple cache misses |
US7809893B2 (en) * | 2007-07-12 | 2010-10-05 | Apple Inc. | Method and apparatus for refetching data |
US8433855B2 (en) * | 2008-02-15 | 2013-04-30 | International Business Machines Corporation | Serializing translation lookaside buffer access around address translation parameter modification |
US9569349B2 (en) * | 2008-12-19 | 2017-02-14 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
JP5347024B2 (ja) * | 2009-06-24 | 2013-11-20 | パナソニック株式会社 | メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置 |
US10515671B2 (en) | 2016-09-22 | 2019-12-24 | Advanced Micro Devices, Inc. | Method and apparatus for reducing memory access latency |
US10127159B1 (en) * | 2017-07-13 | 2018-11-13 | International Business Machines Corporation | Link consistency in a hierarchical TLB with concurrent table walks |
US11061822B2 (en) * | 2018-08-27 | 2021-07-13 | Qualcomm Incorporated | Method, apparatus, and system for reducing pipeline stalls due to address translation misses |
CN114827076B (zh) * | 2022-06-30 | 2022-09-13 | 沐曦集成电路(上海)有限公司 | 一种基于地址翻译单元的地址返回方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076153A (en) * | 1997-12-24 | 2000-06-13 | Intel Corporation | Processor pipeline including partial replay |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205542B1 (en) * | 1997-12-24 | 2001-03-20 | Intel Corporation | Processor pipeline including replay |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6745297B2 (en) * | 2000-10-06 | 2004-06-01 | Broadcom Corporation | Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent |
US7721067B2 (en) * | 2006-01-20 | 2010-05-18 | Qualcomm Incorporated | Translation lookaside buffer manipulation |
-
2006
- 2006-01-20 US US11/336,264 patent/US7721067B2/en active Active
-
2007
- 2007-01-22 WO PCT/US2007/060813 patent/WO2007085009A1/en active Application Filing
- 2007-01-22 EP EP07710244.0A patent/EP1974255B1/en active Active
- 2007-01-22 KR KR1020087020292A patent/KR100974775B1/ko active IP Right Grant
- 2007-01-22 CN CN200780003298XA patent/CN101375245B/zh active Active
- 2007-01-22 JP JP2008551562A patent/JP5329234B2/ja not_active Expired - Fee Related
-
2012
- 2012-06-07 JP JP2012129502A patent/JP2012230683A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076153A (en) * | 1997-12-24 | 2000-06-13 | Intel Corporation | Processor pipeline including partial replay |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015060499A (ja) * | 2013-09-20 | 2015-03-30 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
KR100974775B1 (ko) | 2010-08-06 |
KR20080095253A (ko) | 2008-10-28 |
WO2007085009A1 (en) | 2007-07-26 |
US7721067B2 (en) | 2010-05-18 |
EP1974255B1 (en) | 2018-08-22 |
US20070174584A1 (en) | 2007-07-26 |
CN101375245A (zh) | 2009-02-25 |
JP5329234B2 (ja) | 2013-10-30 |
CN101375245B (zh) | 2013-05-01 |
EP1974255A1 (en) | 2008-10-01 |
JP2012230683A (ja) | 2012-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5329234B2 (ja) | 変換索引マニピェレーション | |
JP5357017B2 (ja) | 高速で安価なストア−ロード競合スケジューリング及び転送機構 | |
JP3577331B2 (ja) | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 | |
US20070186050A1 (en) | Self prefetching L2 cache mechanism for data lines | |
US20090006803A1 (en) | L2 Cache/Nest Address Translation | |
JP2008545199A (ja) | メモリ内の同じページに対する多数の変換ルックアサイド緩衝器へのアクセスの防止 | |
US7680985B2 (en) | Method and apparatus for accessing a split cache directory | |
JPH07200399A (ja) | マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 | |
US20070094476A1 (en) | Updating multiple levels of translation lookaside buffers (TLBs) field | |
US7937530B2 (en) | Method and apparatus for accessing a cache with an effective address | |
US5938761A (en) | Method and apparatus for branch target prediction | |
US20080162819A1 (en) | Design structure for self prefetching l2 cache mechanism for data lines | |
TWI579695B (zh) | 對處理器的快取進行清除的方法以及該處理器 | |
TWI774474B (zh) | 處理器電路以及資料處理方法 | |
US11151054B2 (en) | Speculative address translation requests pertaining to instruction cache misses | |
JP4037806B2 (ja) | キャッシュメモリ装置 | |
WO2009000702A1 (en) | Method and apparatus for accessing a cache | |
TWI606393B (zh) | 依據快取線決定記憶體所有權以偵測自修正程式碼的處理器與方法 | |
JP4796580B2 (ja) | フェッチ・バーストを用いて情報をキャッシュ・モジュールに与える装置及び方法 | |
JP2001344152A (ja) | キャッシュメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110524 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110816 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110823 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20110921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110922 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5329234 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |