JP2011526042A - システムインターフェースへダイレクトアクセスするメモリマネージメントユニット - Google Patents

システムインターフェースへダイレクトアクセスするメモリマネージメントユニット Download PDF

Info

Publication number
JP2011526042A
JP2011526042A JP2011516464A JP2011516464A JP2011526042A JP 2011526042 A JP2011526042 A JP 2011526042A JP 2011516464 A JP2011516464 A JP 2011516464A JP 2011516464 A JP2011516464 A JP 2011516464A JP 2011526042 A JP2011526042 A JP 2011526042A
Authority
JP
Japan
Prior art keywords
physical address
tlb
address
bit
bits
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
Application number
JP2011516464A
Other languages
English (en)
Other versions
JP5680533B2 (ja
Inventor
イングル、アジャイ・アナント
クーブ、クリストファー・エドワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011526042A publication Critical patent/JP2011526042A/ja
Application granted granted Critical
Publication of JP5680533B2 publication Critical patent/JP5680533B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

1以上のプロセッサスレッドからのトランザクションリクエストをサービスするためのメモリマネージメントユニット(MMU)が開示される。MMUは、トランスレーションルックアサイドバッファ(TLB)を含む。TLBは、ストレージモジュール及びロジック回路を含む。ストレージモジュールは、複数のインターフェースの1つを指し示すビットを記憶する。ビットは、物理アドレスレンジに関連付けられることができる。ロジック回路は、物理アドレスレンジ内の物理アドレスを複数のインターフェースの1つに届けることができる。

Description

ここに開示された発明のコンセプトの態様は、一般的にデータプロセッシングシステムの分野に関する。特に、ここに開示された発明のコンセプトの態様は、1以上のインターフェースへダイレクトアクセスすることのできるメモリマネージメントユニットに関する。
データプロセッシングシステムは、インストラクションを処理するために互いに影響し合う種々のコンポーネントを含むことができる。1つのコンポーネントは、プロセッシングユニットの1以上のプロセッサスレッド(processor thread)によるトランザクションリクエスト(transaction request)に基づいて、物理メモリからのデータ及び/又はインストラクションの検索を管理することのできるメモリマネージメントユニット(MMU)であるかもしれない。いくつかのデータプロセッシングシステムは、検索効率を向上させるためにバーチャルアドレスを用いる。例えば、スレッドは、データ或いはインストラクションのためのバーチャルアドレスを含んだトランザクションリクエストを生成し、バーチャルアドレスをMMUに供給するかもしれない。MMUは、物理メモリ内のデータをアクセスするために、バーチャルアドレスを対応する物理アドレスに変換することができる。いくつかのMMUでは、トランスレーションルックアサイドバッファ(translation lookaside buffer)(TLB)内のように、ルックアップテーブルがバーチャルアドレスを物理アドレスにマップする。
トランザクションリクエストは、バスのようにチャネルとして知られたインターフェースを介して物理アドレスに対応するページを含んだリソース(resource)に届けられる(routed)ことができる。データプロセッシングシステムは、異なったシステムリソースにアクセスするための異なったインターフェースを含むことができる。ファーストインファーストアウト(first in first out)(FIFO)のようなバッファは、物理アドレスを管理することができ、リソースをアクセスするための各物理アドレスを供給するためのインターフェースを決定することができる。例えば、バッファは、物理アドレスを受け取って、リソースにアクセスするために各物理アドレスを供給するためのインターフェースを識別するアドレスデコーダに物理アドレスを供給するTLBに結合されることができる。
インターフェースは、リソースに結合される。各インターフェースは、トランザクションリクエストの物理アドレスを届けるための、スピード或いはバンド幅のような異なった特性を有するかもしれない。異なったリソースのための新しいトランザクションリクエストがTLBによって供給されたとしても、特性が異なることは物理アドレスがバッファ内でバックアップし処理を遅らせることになるかもしれない。例えば、第1のインターフェースがリソースをアクセスするために使われているために、第1のインターフェースをアクセスするための物理アドレスがバッファを満杯にするかもしれない。バッファが満杯であるために、他のインターフェース或いは第1のインターフェースに対して届けるための物理アドレスがバックアップされるかもしれない。さらに、物理アドレスを用いたインターフェースの1つへの全てのアクセスに対してアドレスデコーダが活性化され、各アクセスについて電力を消費することとなる。
したがって、物理アドレスをインターフェースに届けることができ、処理遅延を低減することができ、電力消費を低減することができ、及び/又はプロセッサに対してより品質のよいサービスを提供することができるメモリマネージメントユニットシステム及びプロセスが望まれている。
一態様では、トランスレーションルックアサイドバッファ(translation lookaside buffer:変換索引バッファ)(TLB)を含んだメモリマネージメントユニットが述べられる。TLBは、ストレージモジュール(storage module)及びロジック回路を含んでいる。ストレージモジュールは、複数のインターフェースの1つを指し示す(indicate)ビットを記憶することができる。ビットは、物理アドレスレンジに関連付けられることができる。論理回路は、物理アドレスレンジ内の物理アドレスをビットに基づいて複数のインターフェースの1つに届ける(route)ことができる。
ここに例証する実施形態は、ここで開示した発明のコンセプトを限定或いは規定するためではなく述べられているが、その理解を助けるための例として提供される。本開示の他の態様、効果及び特徴は、以下のセクション(図面の簡単な説明、発明を実施するための形態及び特許請求の範囲)を含んだ出願全体を見た後に明らかになるであろう。
ここに開示される本発明のコンセプトのこれらの及び他の特徴、態様及び効果は、添付の図面を参照しながら以下の発明を実施するための形態を読んだときに、より理解される。
図1は、インターフェースへダイレクトアクセスするメモリマネージメントユニットの実施形態を伴ったデータプロセッシングシステムの例を示した一般的な図である。 図2は、典型的な図1のメモリマネージメントユニット及びインターフェースを示した一般的な図である。 図3は、トランザクションリクエストに対してインターフェースへダイレクトアクセスするための典型的な処理を示したフローチャートである。 図4は、インターフェースへダイレクトアクセスする第2の典型的なメモリマネージメントユニットの一般的な図である。 図5は、メモリマネージメントユニットを含むかもしれない例示的なポータブルコミュニケーションデバイスを示した一般的な図である。 図6は、メモリマネージメントユニットを含むかもしれない例示的なセルラー電話を示した一般的な図である。 図7は、メモリマネージメントユニットを含むかもしれない例示的な無線インターネットプロトコル電話を示した一般的な図である。 図8は、メモリマネージメントユニットを含むかもしれない例示的なポータブルデジタルアシスタントを示した一般的な図である。 図9は、メモリマネージメントユニットを含むかもしれない例示的なオーディオファイルプレーヤーを示した一般的な図である。
記述を通して、説明の目的のために、ここに述べられた発明のコンセプトの一貫した理解を提供するために、多くの特別な詳細が明らかにされる。しかしながら、ここに開示される発明のコンセプトは、これらの特別な詳細のいくつかがなくても実施されるかもしれないことは、当業者にとって明らかであろう。他の例では、公知の構成及びデバイスは、ここに述べられる発明のコンセプトの基本的な原理を不明確にすることを避けるために、ブロック図の形で示される。
ここに開示される発明のコンセプトの態様は、少なくとも1つのTLBの情報に基づいてトランザクションリクエスト(transaction request)を管理するための1以上のトランスレーションルックアサイドバッファ(translation lookaside buffer)(TLB)を含んだメモリマネージメントユニット(MMU)に関する。情報は、トランザクションリクエストのバーチャルアドレス(virtual address)に対応する物理アドレス(physical address)を供給するためにインターフェースを識別する(identify)アドレスデコーダから受け取られるビット(bit)を含むことができる。ビットは、処理を遅延させる或いは電力を消費するかもしれないTLBの後のバッファ及びアドレスデコーダを必要とすることなしに、リソース(resource)をアクセスするための物理アドレスを届けるインターフェースを決定するために使用されることができる。インターフェースの例は、タイトリカップルドメモリ(tightly-coupled memory)(TCM)、ARM,LtdによるAXI/L2のようなキャッシュバス(cache bus)、及びアドバンストハイパフォーマンスバス(advanced high-performance bus)(AHB)を含む。物理アドレスは、予め決められたサイズを有するメモリのブロックを識別する物理ページナンバーを含む。
一態様では、MMUは、マイクロトランスレーションルックアサイドバッファ(μTLB)であるTLBを含む。μTLBは、アドレスデコーダからビットを受け取って、μTLB内の物理アドレスレンジ(physical address range)に関連付けることができる。例えば、アドレスデコーダは、SOCメモリマップストラッピング(memory map strapping)に基づいて物理アドレスを解析しインターフェースを識別するビットを生成するために、システムオンチップ(system-on-a-chip)(SOC)メモリマップストラッピングを使用するかもしれない。SOCメモリマップストラッピングは、集積回路のような半導体デバイス上にビルトインされたメモリに関連付けられた予め規定された特性(characteristics)であるかもしれない。メモリマップストラッピングの例は、メモリページロケーションのためのチップピンアウト(chip pinouts)、製造中のチップにバーンインされた(burned in)ヒューズ、及びチップ製造者によって付加されたプログラムドロジックを含む。バーチャルアドレスを含んだトランザクションリクエストがμTLBによって受け取られると、ビットはリソースをアクセスするための物理アドレスを届ける(route)インターフェースを識別するために用いられる。
バッファが無いことは、物理アドレスがリソースをアクセスするために用いることのできるスピードを増加させるかもしれない。図1は、物理アドレスを伴ったダイレクトアクセスのためのMMUの一態様のインプリメンテーションのブロック図である。MMU100は、MMU100にトランザクションリクエスト106を供給する1以上のプロセッサスレッド(processor thread)104を含むことのできるプロセッサユニット102をサービスすることができる。トランザクションリクエスト106は、システムリソース108からのデータ、インストラクション或いは他の情報のためのリクエストであり得る。MMU100は、リソース108のための物理アドレスを識別し、インターフェース110を介してリソース108をアクセスするために物理アドレスを用いることができる。
例えば、トランザクションリクエスト106はそれぞれ、プロセッサスレッド104がアクセスしているリソース或いはリソースの一部に対するバーチャルアドレスを含んでいる。MMU100は、バーチャルアドレスに関連付けられた物理アドレスを識別するテーブル或いは他のマッピング(mapping)を含むことができる。物理アドレスは、インターフェース100の1つを介してリソースにアクセスするために用いられることができる。図1は、インターフェースA、インターフェースB、インターフェースCを示しており、それらは任意のタイプのインターフェースであり、インターフェース110は追加の或いは図示されているよりも少ないインターフェースを含んでいてもよい。インターフェースAはリソース1に関連付けられ、インターフェースBはリソース2に関連付けられ、インターフェースCはリソース3に関連付けられる。しかしながら、インターフェース110のそれぞれは、リソース108の1つよりも多くと関連付けられてよく、任意の数のリソース108が含まれていてもよい。
MMU100は、特定の物理アドレスを用いてリソースをアクセスするためのインターフェースを識別するコンポーネントを含むことができる。図1に示した態様では、MMU100は、ストレージモジュール114及びロジック回路116を含んだTLB112を含んでいる。TLB112は、インストラクションTLB、データTLB或いはジョイントTLBであるかもしれず、μTLB、複数のTLB或いは1以上のμTLB及びTLBを含んでいてもよい。インストラクションTLBは、フェッチ(fetch)トランザクションリクエストをサービスするように構成されることができ、データTLBは、ロード(load)或いはストア(store)トランザクションリクエストをサービスするように構成されることができ、ジョイントTLBは、フェッチ及びロード或いはストアトランザクションリクエストをサービスするように構成されることができる。
ストレージモジュール114は、バーチャルアドレス及びバーチャルアドレスに対応する物理アドレスを記憶することができる。いくつかの態様では、ストレージモジュール114は、バーチャルアドレス及び各バーチャルアドレスに対応する物理アドレスを記憶することのできるレジスタ或いは他のストレージデバイスを含む。ストレージモジュール114は、物理アドレスレンジのためのビット或いは他のインジケータをも記憶するかもしれない。ストレージモジュール114は、それぞれがビットに関連付けられた複数の物理アドレスレンジを含むことができる。ビットは、リソースをアクセスするための物理アドレスレンジ内の物理アドレスを供給するためのインターフェース110の1つを指し示すことができる。以下により詳細に説明されるように、ビットは、物理アドレスを届ける(route)ためのインターフェースを識別するために、物理アドレス及びシステムオンチップ(SOC)メモリマップストラッピングを用いることのできるアドレスデコーダ118によってTLB112に供給されるかもしれない。ロジック回路116は、リソースをアクセスするための識別されたインターフェースを介して物理アドレスを届けるためにビットを用いることができる。いくつかの態様では、ロジック回路116は、TLB112内に記憶された物理アドレスを識別するセレクタ、及び物理アドレスを供給しそれをビットによって識別されたインターフェースに届けるマルチプレクサを含んでいる。
種々の態様にしたがったMMUは、トランザクションリクエストのバーチャルアドレスを用いて物理アドレスが決定されるスピードを増加させるためのTLB及びμTLBを含むことができる。例えば、μTLBは、TLBよりも小さいかもしれず、トランザクションリクエストのバーチャルアドレスを用いて、最近或いはたびたび使用されるようないくつかの物理アドレスを素早く位置させるために用いられる。トランザクションリクエストのバーチャルアドレスを用いたμTLB内のルックアップがバーチャルアドレスを位置させない場合には、μTLBよりも大きく、追加のバーチャル及び物理アドレスマッピングを含んだTLBに作成される。バーチャルアドレスがTLB内に位置している場合には、バーチャルアドレス及び物理アドレスはμTLB内のエントリー内に書き込まれる。
以下により詳細に説明されるように、インジケータ(indicator)は、アドレスデコーダによって生成され、物理アドレスを伴った記憶(storage)のために、μTLB、或いは付加的に最初にTLBに供給されるかもしれない。インジケータは、リソースをアクセスするために物理アドレスが届けられるインターフェースを識別することができる。図2は、リソースをアクセスするための物理アドレスを届けるためにインターフェースを識別するためにインジケータを用いるためのMMU100の態様の一般的な図である。図2において、MMU100は、TLB200及びアドレスデコーダ218を含み、それぞれはμTLB202に結合している。TLB200は、TLBコンテントアクセシブルメモリ(TLB content accessible memory)(TCAM)204及びTLBランダムアクセスメモリ(TLB random access memory)(TRAM)206を含んでいる。TCAM204は、バーチャルアドレスVA1−VAnを記憶することができる複数のエントリー(entry)を含んでいる。いくつかの態様では、1以上のエントリーは、空(empty)であり、バーチャルアドレスを含んでいない。各バーチャルアドレスは、TRAM206内のエントリーに記憶された物理アドレスPA1−PAnの1つに対応することができる。例えば、バーチャルアドレスVA1は、物理アドレスPA1に対応するかもしれない。TRAM206内の各エントリーは、例えば、物理アドレスに位置するメモリページのサイズを識別することのできるマスクを含んでいるかもしれない。
ルックアップ及びμCAM210内の“miss”のように、トランザクションリクエストのバーチャルアドレスがμTLB202から受け取られると、ルックアップがTLB200内で実行される。“miss”は、トランザクションリクエストのバーチャルアドレスにマッチ(match)するμCAM210内のバーチャルアドレスが無いこと(absence)かもしれない。TLBルックアップでは、トランザクションリクエストのバーチャルアドレスは、バーチャルアドレスVA1−VAnのそれぞれに結合している。マッチ或いは“hit”が見つかると、バーチャルアドレスにマッチすることに関連付けられた物理アドレスのためのエントリーを識別する出力が、セレクタとしてマルチプレクサ208に供給される。マルチプレクサ208は、セレクタに基づいてバーチャルアドレスにマッチすることに関連付けられた物理アドレスを出力するように構成されている。
“miss”がTCAM204内で生じると(トランザクションリクエストのバーチャルアドレスにマッチするバーチャルアドレスがTCAM204内で見つからないと)、トランザクションリクエストのバーチャルアドレスがエクセプションエンジン(exception engine)216に供給される。エクセプションエンジン216は、物理アドレス及びトランザクションリクエストのバーチャルアドレスのためのマスクを識別するように構成されている。いくつかの態様では、エクセプションエンジン216は、エントリー内のバーチャルアドレス及び対応する物理アドレスをTCAM204及びTRAM206の両方に書き込む。例えば、エクセプションエンジン216は、バーチャルアドレスをTCAM204内のエントリーに書き込み、物理アドレス及びマスクをTRAM206内の対応するエントリーに書き込む。他の態様では、エクセプションエンジン216は、バーチャルアドレス、対応する物理アドレス及びマスクを、エントリー内での記憶のためにTLB200に出力する。TLB200内のバーチャルアドレスのための次のルックアップ上において、物理アドレスを伴ったエントリーを識別する出力がセレクタとしてマルチプレクサ208に供給され、物理アドレスがμTLB202に供給されることができることが、TCAM204内で識別される。
μTLB202は、μTLBコンテントアクセシブルメモリ(μCAM)210及びμTLBランダムアクセスメモリ(μRAM)212を含むことができる。μCAM210は、バーチャルアドレスVA1−VAn-k が記憶されるエントリーを含むことができる。μCAM210は、TCAM204に類似しているかもしれないが、TCAM204よりもkだけ少ないバーチャルアドレスを記憶するように構成されている。μRAM212は、物理アドレスPA1−PAn-k が記憶されるエントリーを含むことができる。μRAM212に記憶された各物理アドレスは、μCAM210内のバーチャルアドレスVA1−VAn-k の1つに対応することができる。μRAM212は、TRAM206に類似しているかもしれないが、TRAM206よりもkだけ少ない物理アドレスを記憶するように構成されている。
μRAM212は、各記憶された物理アドレスのためのマスク(mask)を記憶するように構成されている。マスクは、物理アドレスに関連付けられたメモリロケーションのためのページサイズを指し示しているかもしれない。μRAM212は、物理アドレスレンジのためのインジケータを記憶するように構成されている。各インジケータは、インジケータに関連付けられた物理アドレスレンジ内の物理アドレスを届けるためのインターフェース110の1つを識別するかもしれない。いくつかの態様では、物理アドレスを含んだ各エントリーは、インターフェース110の1つを識別するインジケータを含んでいる。
インジケータは、アドレスデコーダ218から受け取られたインターフェースを識別するビットであるかもしれない。例えば、アドレスデコーダ218は、TLB200から物理アドレスを受け取ることができ、システムオンチップ(SOC)メモリマップストラッピングを用いて物理アドレスに関連付けられたインターフェースを決定することができる。SOCメモリマップストラッピングは、集積回路のような半導体デバイス上にビルトインされたメモリに関連付けられた予め規定された特性(characteristics)であるかもしれない。いくつかの態様では、SOCメモリマップストラッピングは、データプロセッシングシステム内のプログラムドロジックであるかもしれない。SOCメモリマップストラッピングの例は、メモリページロケーションのためのチップピンアウト(chip pinout)及び/又はプログラムドロジックを含んだソフトウェアを含んでいる。例えば、物理アドレスのレンジ(range)は、チップピンアウトを介するように、SOCメモリマップストラッピングを介するインターフェースに関連付けられているかもしれない。アドレスデコーダ218がTLB200から物理アドレスを受け取ると、アドレスデコーダ218は、受け取られた物理アドレスを含む物理アドレスレンジを識別することができ、識別された物理アドレスレンジに関連付けられたインターフェースを決定することができる。アドレスデコーダ218は、ビットのようなインジケータを供給するように構成されることができ、それはμTLB202への関連付けられたインターフェースを識別し、そこでエントリー内に記憶されるかそうでなければ物理アドレスに対応するかもしれない。
上述したように、μTLB202は、TLB200よりも小さいかもしれない。例えば、μTLB202はより少ないエントリーを含んでいるかもしれず、それ故、TLB200よりもより少ないバーチャル及び物理アドレスを含んでいるかもしれない。いくつかの態様では、ルックアップがTCAM204で実行される前に、ルックアップがトランザクションリクエストのバーチャルアドレスに対してμCAM210で実行される。トランザクションリクエストのバーチャルアドレスがμCAM210内のバーチャルアドレスにマッチ(match)しない場合のように、“miss”が起こった場合には、バーチャルアドレスがTCAM204内のルックアップのためにTLB200に供給される。トランザクションリクエストのバーチャルアドレスがμCAM210内のバーチャルアドレスにマッチする場合のように、μCAM210内で“hit”が起こった場合には、μCAM210は、バーチャルアドレスにマッチすることに関連付けられた物理アドレスのためのエントリーを識別する出力を、セレクタとしてのマルチプレクサ214に供給する。マルチプレクサ214は、バーチャルアドレスにマッチすることに関連付けられた物理アドレスをセレクタに基づいてμRAM212から出力するように構成されることができる。
いくつかの態様では、マルチプレクサ214は、ビットに基づいてインターフェース110の1つに物理アドレス届ける。インターフェース110は、任意のタイプ及び数のインターフェースを含むことができる。典型的な目的について、図2は3つのインターフェース:タイトリーカップルドメモリ(TCM)220、AXI/L2 222、及びアドバンストハイパフォーマンスバス(AHB)224を示している。いくつかの態様では、インターフェース110のそれぞれは、ビットに基づいて物理アドレスを届けるマルチプレクサ214に代わって或いは追加して、ビット基づいて物理アドレスを届けるか否かを決定する。例えば、TCM220は、それを識別するビットに関連付けられた物理アドレスを届け、他のインターフェースを識別するビットに関連付けられた物理アドレスを無視するかもしれない。電力を消費し、トランザクションリクエスト処理においてバックアップを引き起こす、μTLB202とインターフェース110との間のアドレスデコーダ或いはバッファを用いる代わりに、ある態様は、特別の物理アドレスを届けるためのインターフェースを識別するためにμTLB202内のビットのようなインジケータを用いることができる。
図3は、開示された発明のコンセプトのいくつかの態様にしたがった、ビットに基づいてインターフェースに物理アドレスを向けるMMUを用いる方法を示している。図3のフロー図は、図2に示されたコンポーネントを参照して説明される。しかしながら、他のインプリメンテーションも可能である。
本方法は、MMU100がプロセッサスレッド(processor thread)からトランザクションリクエストのバーチャルアドレスを受け取るときに、ブロック302において開始する。例えば、プロセッサスレッドは、リソースからのデータ、インストラクション或いは他の情報のためのリクエストを含んだトランザクションリクエストを供給することができる。トランザクションリクエストは、プロセッサスレッドによってリクエストされるデータ、インストラクション或いは他の情報がアクセスされることができるリソースのバーチャルアドレスを含むことができる。
ブロック304において、MMU100は、バーチャルアドレスがμTLB202内であるか否かを決定する。いくつかの態様では、μCAM210内のエントリーに記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするか否かを決定するために、μCAM210上でルックアップが実行される。例えば、マッチ(match)が見つかるまで、μCAM210内の各バーチャルアドレスは、トランザクションリクエストのバーチャルアドレスと比較されるか、或いは、μCAM210内の各バーチャルアドレスは、マッチ無しに、トランザクションリクエストのバーチャルアドレスと比較されてきている。
マッチが見つからないように、“miss”が起こると、ブロック306において、MMU100は、バーチャルアドレスがTLB200内であるか否かを決定する。例えば、TCAM204内のエントリーに記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするか否かを決定するために、TCAM204内でルックアップが実行されるかもしれない。
TCAM204内で“miss”が起こった場合、エクセプションエンジン(exception engine)216は、ブロック308において、バーチャルアドレスに対する物理アドレスを決定し、TLB200内のエントリーにバーチャルアドレス及び物理アドレスを書き込む。例えば、エクセプションエンジン216は、TCAM204内のエントリーにバーチャルアドレスを書き込み、TRAM206内の対応するエントリーに物理アドレスを書き込むかもしれない。いくつかの態様では、物理アドレスに関連付けられたメモリのページサイズを指し示すマスクは、エクセプションエンジン216によって生成され、TRAM206内の物理アドレスに関連付けられる。
エントリーの書き込み後、本方法はブロック304に戻り、バーチャルアドレスを伴ったμTLB202上でルックアップが実行される。“miss”が再び起こるかもしれず、ブロック306において、バーチャルアドレスのためにTLB200上でルックアップが実行される。TCAM204内に記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするように、“hit”が起こった場合、対応する物理アドレスがTLB200によって供給される。例えば、TCAM204は、TRAM206に関連付けられたマルチプレクサ208にセレクタとして対応する物理アドレス及び/又はそのエントリー位置を指し示す出力を供給するかもしれない。マルチプレクサ208は、セレクタに基づいてTRAM206からの物理アドレスを出力するように構成されているかもしれない。
ブロック310において、アドレスデコーダ218は、SOCメモリマップストラッピングを用いてTRAM206からの物理アドレスをデコードして、物理アドレスに関連付けられたインターフェースを指し示すビットを生成する。例えば、アドレスデコーダ218は、チップピンアウト或いは予め規定された物理特性を用いて、物理アドレスを含んだ物理アドレスレンジに関連付けられたインターフェースを識別する。上述したように、MMU100のいくつかの態様は、μTLB202へ書き込む時の代わりにTLBにエントリーを書き込む時に物理アドレスに関連付けられたインターフェースを識別するかもしれない。
ブロック312において、MMU100は、バーチャルアドレス、対応する物理アドレス、及び物理アドレスに関連付けられたインターフェースを指し示すビットについてμTLB202内のエントリーに書き込む。例えば、MMU100は、μCAM210内のエントリーにバーチャルアドレスを記憶し、μRAM212内のエントリーに物理アドレスを記憶するかもしれない。MMU100は、μRAM212内の物理アドレスに関連付けられたインターフェースを指し示すビット及びマスクを記憶することができる。
本方法は、MMU100がμTLB202内のルックアップを実行するブロック304に戻るかもしれない。“hit”が起こると、μTLB202は、ブロック314において、ビットに基づいてインターフェースにリソースをアクセスするための物理アドレスを届ける。例えば、ルックアップは、μCAM210内のバーチャルアドレスのマッチに帰結することができる。μCAM210は、μRAM212に関連付けられたマルチプレクサ214に、セレクタとして対応する物理アドレス及び/又はそのエントリー位置を指し示す出力を供給する。マルチプレクサ214は、セレクタに基づいてμRAM212からの物理アドレスを出力するように構成されているかもしれない。いくつかの態様では、μTLB202は、ビットによって識別されるインターフェースに物理アドレスを届ける。他の態様では、ビットは物理アドレスを伴って供給され、ビットによって識別されたインターフェースは物理アドレスを届け、他のインターフェースは物理アドレスを無視する。
いくつかの態様にしたがったアドレスデコーダは、物理アドレスを届けるためのインターフェースを識別するインジケータを伴って、μTLBに加えて、TLBを供給するMMU内に位置しているかもしれない。図4は、TLB内のエントリーが書き込まれたときに、TLB400に物理アドレスに対するインターフェースを識別するビットを供給することができる構成を有するMMU100の第2の態様を示している。図4のMMU100は、トランザクションリクエストからのバーチャルアドレスによってルックアップを実行することのできるμCAM410を含んだμTLB402を含んでいる。“miss”が起こると、バーチャルアドレスがTCAM404に供給され、ルックアップがTLBに対して行われる。
TCAM404内で“miss”が起こると、バーチャルアドレスに対する物理アドレスを識別するエクセプションエンジン416にバーチャルアドレスが供給される。いくつかの態様では、エクセプションエンジン416は、物理アドレスに関連付けられたメモリのページサイズを識別する物理アドレスに対するマスクを決定することができる。物理アドレスは、物理アドレスに対するインターフェースを識別するビットを生成するために、SOCメモリマップストラッピングを用いるアドレスデコーダ418に供給されることができる。バーチャルアドレスは、TCAM404内のエントリーに書き込まれることができ、物理アドレスは、ビット及びマスクとともに、TRAM406内の対応するエントリーに書き込まれることができる。TCAM404内で“hit”が起こると、物理アドレス、ビット及びマスクは、マルチプレクサ408を用いてμTLB402に供給されることができる。バーチャルアドレスは、μCAM410内のエントリーに書き込まれることができ、物理アドレス、ビット及びマスクは、μRAM412内の対応するエントリーに書き込まれることができる。
μCAM410内で“hit”が起こると、物理アドレスは、マルチプレクサ414を用いてインターフェース110の1つに届けられることができる。ビットは、リソースをアクセスするためにどのインターフェースに物理アドレスを届けるかを決定するために用いることができる。
上述した特徴を含んだ例示デバイス
メモリマネージメントユニット(MMU)は、デジタルシグナルプロセッサのような任意のプロセッサに含まれる。図5〜9の一般的な図は、デバイスリソースにプロセッサのスレッド或いはマルチスレッドプロセッサのスレッドによって供給されるトランザクションリクエストによるインターフェースへのアクセスを管理するためのMMUに組み入れられる例示デバイスを示している。
図5は、ポータブルコミュニケーションデバイス500の典型的な態様を示した図である。図5の一般的な図に示されるように、ポータブルコミュニケーションデバイスは、デジタルシグナルプロセッサ(DSP)504に含まれるオンチップシステム502を含んでいる。図5の一般的な図はまた、デジタルシグナルプロセッサ504及びディスプレイ508に結合されたディスプレイコントローラ506を示している。また、入力デバイス510は、DSP504に結合されている。図示されるように、メモリ512がDSP504に結合されている。さらに、コーダ/デコーダ(CODEC)514がDSP504に結合されていてもよい。スピーカ516及びマイクロフォン518がCODEC514に結合されていてもよい。
図5の一般的な図はさらに、デジタルシグナルプロセッサ504及び無線アンテナ(wireless antenna)522に結合された無線コントローラを示している。特別の態様では、電源(power supply)524がオンチップシステム502に結合されている。また、特別の態様では、図5に示されるように、ディスプレイ526、入力デバイス530、スピーカ516、マイクロフォン518、無線アンテナ522、及び電源524は、オンチップシステム502の外部にある。しかしながら、それぞれは、オンチップシステム502のコンポーネントに結合している。
特別の態様では、DSP504は、スレッドからのトランザクションリクエストによってインターフェースにダイレクトアクセスすることのできるメモリマネージメントユニットMMU526を含んでいる。例えば、MMU526は、図2或いは4を参照して述べられたように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
図6は、セルラー電話(cellular telephone)600の典型的な態様を示した図である。図示されるように、セルラー電話600は、互いに結合したデジタルベースバンドプロセッサ604及びアナログベースバンドプロセッサ606を含んだオンチップシステム602を含んでいる。特別の態様では、デジタルベースバンドプロセッサ604は、デジタルシグナルプロセッサである。図6の一般的な図に示されるように、ディスプレイコントローラ608及びタッチスクリーンコントローラ610は、デジタルベースバンドプロセッサ604に結合されている。また、オンチップシステム外のタッチスクリーンディスプレイ612は、ディスプレイコントローラ608及びタッチスクリーンコントローラ610に結合されている。
図6の一般的な図はさらに、ビデオエンコーダ614を示しており、例えば、フェイズオルタネーティングライン(PAL)エンコーダ、シーケンシャルコウラーアメモリー(sequential couleur a memoire)(SECAM)エンコーダ、或いはナショナルテレビジョンシステムコミュニティ(NTSC)エンコーダが、デジタルベースバンドプロセッサ604に結合されている。さらに、ビデオ増幅器616が、ビデオエンコーダ614及びタッチスクリーンディスプレイ612に結合されている。また、ビデオポート618が、ビデオ増幅器616に結合されている。ユニバーサルシリアルバス(USB)コントローラ620が、デジタルベースバンドプロセッサ604に結合されている。また、USBポート622が、USBコントローラ620に結合されている。メモリ624及び加入者識別モジュール(SIM)カード626が、デジタルベースバンドプロセッサ604に結合されていてもよい。さらに、図6の一般的な図に示されるように、デジタルカメラ628がデジタルベースバンドプロセッサ604に結合されていてもよい。典型的な態様では、デジタルカメラ628は、電荷結合デバイス(CCD)カメラ或いは相補型金属酸化物半導体(CMOS)カメラである。
図6の一般的な図にさらに示されるように、ステレオオーディオCODEC630が、アナログベースバンドプロセッサ606に結合されていてもよい。さらに、オーディオ増幅器632が、ステレオオーディオCODEC630に結合されていてもよい。典型的な態様では、第1のステレオスピーカ634及び第2のステレオスピーカ636が、オーディオ増幅器632に結合されている。マイクロフォン増幅器638が、ステレオオーディオCODEC630に結合されていてもよい。さらに、マイクロフォン640がマイクロフォン増幅器638に結合されていてもよい。特別の態様では、周波数変調(FM)ラジオチューナー642が、ステレオオーディオCODEC630に結合されていてもよい。FMアンテナ644は、FMラジオチューナー642に結合されることができる。さらに、ステレオヘッドフォン646が、ステレオオーディオCODEC630に結合されていてもよい。
図6の一般的な図はさらに、アナログベースバンドプロセッサ606に結合され得るラジオ周波数(RF)トランシーバー648を示している。RFスイッチ654が、RFトランシーバー648及びRFアンテナ652に結合されていてもよい。キーパッド654が、アナログベースバンドプロセッサ606に結合されていてもよい。また、マイクロフォン656を伴ったモノヘッドセット(mono headset with a microphone)が、アナログベースバンドプロセッサ606に結合されていてもよい。さらに、バイブレーターデバイス658が、アナログベースバンドプロセッサ606に結合されていてもよい。図6の一般的な図はまた、オンチップシステム602に結合され得る電源660を示している。特別の態様では、電源660は、セルラー電話600の種々のコンポーネントに電力を供給する直流(DC)電源である。さらに、特別の態様では、AC電源に結合されたDC変圧器への交流(AC)に由来するDC電源、或いは再チャージ可能なDCバッテリーである。
図6の一般的な図に示されるように、タッチスクリーンディスプレイ612、ビデオポート618、USBポート622、カメラ628、第1のステレオスピーカ634、第2のステレオスピーカ636、マイクロフォン640、FMアンテナ644、ステレオヘッドフォン646、RFスイッチ648、RFアンテナ650、キーパッド652、モノヘッドセット656、バイブレーター658、及び電源660は、オンチップシステム602の外部であってもよい。
特別の態様では、デジタルベースバンドプロセッサ604は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)626を含んでいる。例えば、MMU662は、図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
図7は、無線インターネットプロトコル(IP)電話700の典型的な態様を示した図である。図示されるように、無線IP電話700は、デジタルシグナルプロセッサ(DSP)704を含んだオンチップシステム702を含んでいる。ディスプレイコントローラ706はDSP704に結合されていてもよく、ディスプレイ708はディスプレイコントローラ706に結合されている。典型的な態様では、ディスプレイ708は液晶ディスプレイ(LCD)である。図7はさらに、キーパッド710がDSP704に結合されてもよいことを示している。
フラッシュメモリ712が、DSP704に結合されていてもよい。同期ダイナミックランダムアクセスメモリ(SDRAM)714、スタティックランダムアクセスメモリ(SRAM)716、及び電気的消去可能なプログラマブルリードオンリメモリ(EEPROM)718が、DSP704に結合されていてもよい。図7の一般的な図はまた、発光ダイオード(LED)720がDSP704に結合されていてもよいことを示している。さらに、特別の態様では、音声CODEC722がDSP704に結合されていてもよい。増幅器724が音声CODEC722に結合されていてもよく、モノスピーカ726が増幅器724に結合されていてもよい。図7の一般的な図はさらに、音声CODEC722に結合されたモノヘッドセット728を示している。特別の態様では、モノヘッドセット728はマイクロフォンを含んでいる。
無線ローカルエリアネットワーク(WLAN)ベースバンドプロセッサ730が、DSP704に結合されていてもよい。RFトランシーバー732がWLANベースバンドプロセッサ730に結合されていてもよく、RFアンテナ734がRFトランシーバー732に結合されていてもよい。特別の態様では、ブルートゥースコントローラ736がDSP704に結合されていてもよく、ブルートゥースアンテナ738がコントローラ736に結合されていてもよい。図7の一般的な図はまた、USBポート740がDSP704に結合されていてもよいことを示している。さらに、電源742が、オンチップシステム702に結合され、無線IP電話700の種々のコンポーネントに電力を供給する。
図7の一般的な図に示されるように、ディスプレイ708、キーパッド710、LED720、モノスピーカ726、モノヘッドセット728、RFアンテナ734、ブルートゥースアンテナ738、USBポート740、及び電源742は、オンチップシステム702の外部にあり、オンチップシステム702の1以上のコンポーネントに結合されていてもよい。特別の態様では、DSP704は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)726を含んでいる。例えば、MMU762は、図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
図8は、ポータブルデジタルアシスタント(PDA)800の典型的な態様を示した図である。図示されるように、PDA800は、デジタルシグナルプロセッサ(DSP)804を含んだオンチップシステム802を含んでいる。タッチスクリーンコントローラ806及びディスプレイコントローラ808が、DSP804に結合されている。さらに、タッチスクリーンディスプレイ810が、タッチスクリーンコントローラ806及びディスプレイコントローラ808に結合されている。図8の一般的な図はまた、キーパッド812がDSP804に結合されていてもよいことを示している。
特別の態様では、ステレオオーディオCODEC826がDSP804に結合されていてもよい。第1のステレオ増幅器828がステレオオーディオCODEC826に結合されていてもよく、第1のステレオスピーカ830が第1のステレオ増幅器828に結合されていてもよい。さらに、マイクロフォン増幅器832がステレオオーディオCODEC826に結合されていてもよく、マイクロフォン834がマイクロフォン増幅器832に結合されていてもよい。図8の一般的な図はさらに、ステレオオーディオCODEC826に結合され得る第2のステレオ増幅器836と、第2のステレオ増幅器836に結合され得る第2のステレオスピーカ838を示している。特別の態様では、ステレオヘッドフォン840がステレオオーディオCODEC826に結合されていてもよい。
図8の一般的な図はまた、DSP804に結合され得る802.11コントローラ842と、802.11コントローラ842に結合され得る802.11アンテナ844を示している。さらに、ブルートゥースコントローラ846がDSP804に結合されていてもよく、ブルートゥースアンテナ848がブルートゥースコントローラ846に結合されていてもよい。USBコントローラ850がDSP804に結合されていてもよく、USBポート852がUSBコントローラ850に結合されていてもよい。さらに、例えばマルチメディアカード(MMC)或いはセキュアデジタルカード(SD)といったスマートカード854が、DSP804に結合されていてもよい。さらに、電源856が、オンチップシステム802に結合されていてもよく、PDA800の種々のコンポーネントに電力を供給してもよい。
図8の一般的な図に示されるように、ディスプレイ810、キーパッド812、IrDAポート822、デジタルカメラ824、第1のステレオスピーカ830、マイクロフォン834、第2のステレオスピーカ838、ステレオヘッドフォン840、802.11アンテナ844、ブルートゥースアンテナ848、USBポート852、及び電源850が、オンチップシステム802の外部であり、オンチップシステム802上の1以上のコンポーネントに結合されていてもよい。特別の態様では、DSP804は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)862を含んでいる。例えば、MMU862は、図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
図9は、オーディオファイルプレーヤ(例えば、MP3プレーヤ)900の典型的な態様を示した図である。図示されるように、オーディオファイルプレーヤ900は、デジタルシグナルプロセッサ(DSP)904を含んだオンチップシステム902を含んでいる。ディスプレイコントローラ906がDSP904に結合されていてもよく、ディスプレイ908がディスプレイコントローラ906に結合されていてもよい。典型的な態様では、ディスプレイ908は液晶ディスプレイ(LCD)である。キーパッド910が、DSP904に結合されていてもよい。
図9の一般的な図にさらに示されるように、フラッシュメモリ912及びリードオンリメモリ(ROM)914が、DSP904に結合されていてもよい。さらに、特別の態様では、オーディオCODEC916が、DSP904に結合されていてもよい。増幅器918がオーディオCODEC916に結合されていてもよく、モノスピーカ920が増幅器918に結合されていてもよい。図9の一般的な図はさらに、マイクロフォン入力922及びステレオ入力924が、オーディオCODEC916に結合されていてもよいことを示している。特別の態様では、ステレオヘッドフォン926が、オーディオCODEC916に結合されていてもよい。
USBポート928及びスマートカード930が、DSP904に結合されていてもよい。さらに、電源932が、オンチップシステム902に結合されていてもよく、オーディオファイルプレーヤ900の種々のコンポーネントに電力を供給してもよい。
図9の一般的な図に示されるように、ディスプレイ908、キーパッド910、モノスピーカ920、マイクロフォン入力922、ステレオ入力924、ステレオヘッドフォン926、USBポート928、及び電源932は、オンチップシステム902の外部にあり、オンチップシステム902上の1以上のコンポーネントに結合されている。特別の態様では、DSP904は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)926を含んでいる。例えば、MMU962は、図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
概括
ここに開示された発明のコンセプトの態様の上述した説明は、例証及び説明の目的のためにだけ示されたものであり、開示された正確な形でここに開示された発明のコンセプトを制限し或いは徹底的であることを意図していない。多くの変更及び適応は、ここに開示された発明のコンセプトの精神及び範囲から逸脱することなく、当業者にとって明らかである。

Claims (22)

  1. 複数のインターフェースの1つを指し示すビットを記憶するように構成されたストレージモジュールであって、前記ビットが物理アドレスレンジに関連付けられているストレージモジュールと、
    前記物理アドレスレンジ内の物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記1つに届けるように構成されたロジック回路と、
    を備えたトランスレーションルックアサイドバッファ(TLB)。
  2. 前記ストレージモジュールは、アドレスデコーダから前記ビットを受け取るように構成されている
    請求項1のTLB。
  3. 前記ストレージモジュールは、システムオンチップ(SOC)メモリマップストラッピングを用いて生成される前記ビットを受け取るように構成されている
    請求項2のTLB。
  4. 前記ストレージモジュールは、前記TLBよりも大きなサイズを有する第2のTLBから前記ビットを受け取るように構成されている
    請求項1のTLB。
  5. 前記TLBは、マイクロトランスレーションルックアサイドバッファ(μTLB)である
    請求項4のTLB。
  6. 前記ストレージモジュールは、
    前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ(CAM)と、
    前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ(RAM)と、
    を備える、請求項1のTLB。
  7. 前記ロジック回路は、
    前記物理アドレスを指し示すように構成された前記CAMからのセレクタと、
    前記RAMに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
    を備える、請求項6のTLB。
  8. 前記TLBはポータブルコミュニケーションデバイス内に配置されている
    請求項1のTLB。
  9. プロセッサスレッドからのトランザクションリクエストのための複数のインターフェースの1つを識別するビットを供給するように構成されたアドレスデコーダであって、前記ビットが物理アドレスレンジに関連付けられているアドレスデコーダと、
    前記物理アドレスレンジ内の物理アドレスを前記ビットに関連付けるように構成されたストレージモジュールと、前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記1つに届けるように構成されたロジック回路と、を備えた第1のトランスレーションルックアサイドバッファ(TLB)と、
    を備えたメモリマネージメントユニット(MMU)。
  10. 前記アドレスデコーダは、システムオンチップ(SOC)メモリマップストラッピング及び前記物理アドレスを用いて前記ビットを決定するように構成されている
    請求項9のMMU。
  11. 前記SOCメモリマップストラッピングは、プログラムされたロジックを備える
    請求項10のMMU。
  12. 前記物理アドレス及び前記物理アドレスに関連付けられたバーチャルアドレスをエクセプションエンジンから受け取って前記物理アドレスを前記第1のTLBに供給するように構成された第2のTLBを
    さらに備えた請求項9のMMU。
  13. 前記第2のTLBは、前記アドレスデコーダから前記ビットを受け取って前記物理アドレス及び前記ビットをエントリーに記憶するように構成されている
    請求項12のMMU。
  14. 前記ストレージモジュールは、
    前記物理アドレスに関連付けられたバーチャルアドレスを記憶するように構成されたコンテントアクセシブルメモリ(CAM)と、
    前記ビット及び前記物理アドレスを記憶するように構成されたランダムアクセスメモリ(RAM)と、
    を備える、請求項9のMMU。
  15. 前記ロジック回路は、
    前記物理アドレスを指し示すように構成された前記CAMからのセレクタと、
    前記RAMに関連付けられたマルチプレクサであって、前記セレクタ及び前記ビットに基づいて前記物理アドレスを届けるように構成されたマルチプレクサと、
    を備える、請求項14のMMU。
  16. 前記MMUはポータブルコミュニケーションデバイス内に配置されている
    請求項9のMMU。
  17. プロセッサスレッドからトランザクションリクエストを受け取ることであって、前記トランザクションリクエストがバーチャルアドレスを備えることと、
    前記バーチャルアドレスに対応する物理アドレスを識別することと、
    複数のインターフェースの1つを識別するビットを供給するためにシステムオンチップ(SOC)メモリマップストラッピングを用いて前記物理アドレスをデコードすることであって、前記ビットが物理アドレスレンジに関連付けられていることと、
    前記物理アドレス及び前記ビットをマイクロトランスレーションルックアサイドバッファ(μTLB)に記憶することと、
    前記μTLB内の前記バーチャルアドレスを識別することと、
    前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記1つに届けることであって、前記物理アドレスが前記物理アドレスレンジ内であることと、
    を備えた方法。
  18. 前記物理アドレスをトランスレーションルックアサイドバッファ(TLB)に記憶することと、
    前記物理アドレスを前記TLBから前記μTLBに供給することと、
    をさらに備えた請求項17の方法。
  19. 前記物理アドレスを前記TLBから前記アドレスデコーダに供給することを、
    をさらに備えた請求項18の方法。
  20. 前記TLBで前記ビットを受け取ることと、
    前記物理アドレスを伴った前記ビットを前記TLBに記憶することと、
    前記物理アドレスを伴った前記ビットを前記TLBから前記μTLBに供給することと、
    をさらに備えた請求項18の方法。
  21. 前記μTLBが最初は前記バーチャルアドレスを含んでいないことを決定することと、
    前記TLBが最初は前記バーチャルアドレスを含んでいないことを決定することと、
    前記バーチャルアドレス及び前記物理アドレスを前記TLB内の少なくとも1つのエントリーに記憶することと、
    をさらに備え、
    前記物理アドレス及び前記ビットを前記μTLBに記憶することは、前記バーチャルアドレス、物理アドレス及び前記ビットを前記μTLB内の少なくとも1つのエントリーに記憶することを備える
    請求項17の方法。
  22. 前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記1つに届けることは、前記ビットを用いて前記物理アドレスが届けられる前記複数のインターフェースの前記1つを識別することを備える
    請求項17の方法。
JP2011516464A 2008-06-26 2009-06-18 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット Expired - Fee Related JP5680533B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/146,657 2008-06-26
US12/146,657 US9239799B2 (en) 2008-06-26 2008-06-26 Memory management unit directed access to system interfaces
PCT/US2009/047795 WO2009158269A1 (en) 2008-06-26 2009-06-18 Memory management unit directed access to system interfaces

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014230935A Division JP6305905B2 (ja) 2008-06-26 2014-11-13 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット

Publications (2)

Publication Number Publication Date
JP2011526042A true JP2011526042A (ja) 2011-09-29
JP5680533B2 JP5680533B2 (ja) 2015-03-04

Family

ID=41010384

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2011516464A Expired - Fee Related JP5680533B2 (ja) 2008-06-26 2009-06-18 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
JP2014230935A Expired - Fee Related JP6305905B2 (ja) 2008-06-26 2014-11-13 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
JP2016244451A Pending JP2017084389A (ja) 2008-06-26 2016-12-16 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2014230935A Expired - Fee Related JP6305905B2 (ja) 2008-06-26 2014-11-13 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
JP2016244451A Pending JP2017084389A (ja) 2008-06-26 2016-12-16 システムインターフェースへダイレクトアクセスするメモリマネージメントユニット

Country Status (7)

Country Link
US (1) US9239799B2 (ja)
EP (1) EP2307966A1 (ja)
JP (3) JP5680533B2 (ja)
KR (3) KR20140028151A (ja)
CN (2) CN102067092B (ja)
TW (1) TW201015320A (ja)
WO (1) WO2009158269A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6317048B1 (ja) * 2015-04-15 2018-04-25 クアルコム,インコーポレイテッド バースト変換ルックアサイドバッファ

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5433349B2 (ja) * 2009-08-27 2014-03-05 ルネサスエレクトロニクス株式会社 データプロセッサ
US8429378B2 (en) * 2010-07-06 2013-04-23 Qualcomm Incorporated System and method to manage a translation lookaside buffer
CN101950279B (zh) * 2010-09-30 2012-09-19 华为技术有限公司 均衡数据信息流量的方法、总线系统和译码器
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
KR101218684B1 (ko) 2011-01-07 2013-01-21 엘지전자 주식회사 이동 단말기 및 이동 단말기의 데이터 출력 방법
WO2013101168A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Translation lookaside buffer for multiple context compute engine
US10037228B2 (en) * 2012-10-25 2018-07-31 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US9043612B2 (en) * 2013-03-12 2015-05-26 International Business Machines Coropration Protecting visible data during computerized process usage
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
US9268694B2 (en) 2013-09-26 2016-02-23 Cavium, Inc. Maintenance of cache and tags in a translation lookaside buffer
US9208103B2 (en) 2013-09-26 2015-12-08 Cavium, Inc. Translation bypass in multi-stage address translation
US9639476B2 (en) 2013-09-26 2017-05-02 Cavium, Inc. Merged TLB structure for multiple sequential address translations
US9645941B2 (en) 2013-09-26 2017-05-09 Cavium, Inc. Collapsed address translation with multiple page sizes
US9417656B2 (en) * 2014-01-09 2016-08-16 Netronome Systems, Inc. NFA byte detector
US10331569B2 (en) 2016-01-05 2019-06-25 Friday Harbor Llc Packet router buffer management
US10120812B2 (en) * 2016-02-03 2018-11-06 Nutanix, Inc. Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations
US20190087351A1 (en) * 2017-09-20 2019-03-21 Qualcomm Incorporated Transaction dispatcher for memory management unit
CN111221465B (zh) * 2018-11-23 2023-11-17 中兴通讯股份有限公司 Dsp处理器、系统以及外部存储空间访问方法
WO2020168522A1 (zh) * 2019-02-21 2020-08-27 华为技术有限公司 一种片上系统、访问命令的路由方法及终端
KR20220032808A (ko) 2020-09-08 2022-03-15 삼성전자주식회사 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치
WO2022119704A2 (en) * 2020-12-03 2022-06-09 Rambus Inc. Dynamically configurable memory error control schemes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091526A (ja) * 1996-06-25 1998-04-10 Sun Microsyst Inc 遠隔アドレス空間におけるデータ・アクセスを支援する補助変換索引バッファ
JP2005310072A (ja) * 2004-04-26 2005-11-04 Matsushita Electric Ind Co Ltd アドレス変換装置、及びメモリアクセス方法
JP2006522385A (ja) * 2003-05-09 2006-09-28 インテル・コーポレーション マルチスレッドのコンピュータ処理を提供する装置および方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63188251A (ja) * 1987-01-31 1988-08-03 Toshiba Corp アドレス変換方式
US5386527A (en) 1991-12-27 1995-01-31 Texas Instruments Incorporated Method and system for high-speed virtual-to-physical address translation and cache tag matching
US5784706A (en) * 1993-12-13 1998-07-21 Cray Research, Inc. Virtual to logical to physical address translation for distributed memory massively parallel processing systems
JP3133732B2 (ja) * 1998-11-25 2001-02-13 甲府日本電気株式会社 マルチスレーブバスラインシステム及びシリアル転送方法
JP2001034537A (ja) 1999-07-23 2001-02-09 Toshiba Corp アドレス変換回路
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
DE10127198A1 (de) 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
GB2386441B (en) * 2002-03-12 2006-09-27 Advanced Risc Mach Ltd Bus interface selection by page table attributes
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US20040128574A1 (en) * 2002-12-31 2004-07-01 Franco Ricci Reducing integrated circuit power consumption
US6912644B1 (en) * 2003-03-06 2005-06-28 Intel Corporation Method and apparatus to steer memory access operations in a virtual memory system
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US7426626B2 (en) * 2005-08-23 2008-09-16 Qualcomm Incorporated TLB lock indicator
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091526A (ja) * 1996-06-25 1998-04-10 Sun Microsyst Inc 遠隔アドレス空間におけるデータ・アクセスを支援する補助変換索引バッファ
JP2006522385A (ja) * 2003-05-09 2006-09-28 インテル・コーポレーション マルチスレッドのコンピュータ処理を提供する装置および方法
JP2005310072A (ja) * 2004-04-26 2005-11-04 Matsushita Electric Ind Co Ltd アドレス変換装置、及びメモリアクセス方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6317048B1 (ja) * 2015-04-15 2018-04-25 クアルコム,インコーポレイテッド バースト変換ルックアサイドバッファ

Also Published As

Publication number Publication date
JP2015072696A (ja) 2015-04-16
JP6305905B2 (ja) 2018-04-04
JP2017084389A (ja) 2017-05-18
TW201015320A (en) 2010-04-16
US9239799B2 (en) 2016-01-19
EP2307966A1 (en) 2011-04-13
KR20140028151A (ko) 2014-03-07
KR20110031350A (ko) 2011-03-25
CN102591801A (zh) 2012-07-18
CN102067092A (zh) 2011-05-18
WO2009158269A1 (en) 2009-12-30
US20090327647A1 (en) 2009-12-31
CN102067092B (zh) 2014-02-12
KR20150109490A (ko) 2015-10-01
JP5680533B2 (ja) 2015-03-04
CN102591801B (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
JP6305905B2 (ja) システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
US7636810B2 (en) Method, system, and apparatus for memory compression with flexible in-memory cache
US8429378B2 (en) System and method to manage a translation lookaside buffer
JP4173192B2 (ja) メモリバンクを動的に管理する方法及び装置
US20110283071A1 (en) Dynamically Configurable Memory System
KR101252744B1 (ko) 캐시(cache) 라인 대체를 위한 시스템들 및 방법들
US20140258674A1 (en) System-on-chip and method of operating the same
US9146879B1 (en) Virtual memory management for real-time embedded devices
KR101768828B1 (ko) 메모리 물리 어드레스 조회 방법 및 장치
US8117420B2 (en) Buffer management structure with selective flush
US20170024145A1 (en) Address translation and data pre-fetch in a cache memory system
JP2015043235A (ja) データ値を変換して記憶するための命令を用いた代理メモリアクセスエージェントの構成
US20050246502A1 (en) Dynamic memory mapping

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130305

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150107

R150 Certificate of patent or registration of utility model

Ref document number: 5680533

Country of ref document: JP

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

LAPS Cancellation because of no payment of annual fees