(58)【調査した分野】(Int.Cl.,DB名)
複数のインターフェースの1つを指し示すビットを記憶するように構成されたストレージモジュールであって、前記ビットが物理アドレスレンジに関連付けられているストレージモジュールと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記1つに届けるように構成されたロジック回路と、
を備え、
前記ストレージモジュールは、トランスレーションルックアサイドバッファ(TLB)よりも大きなサイズを有する第2のTLBから前記ビットを受け取るように構成され、
前記第2のTLBは、前記物理アドレスに基づいて前記ビットを発生させるアドレスデコーダから前記ビットを受け取るように構成されているTLB。
プロセッサスレッドからのトランザクションリクエストのための複数のインターフェースの1つを識別するビットを供給するように構成されたアドレスデコーダであって、前記ビットが物理アドレスレンジに関連付けられているアドレスデコーダと、
前記物理アドレスレンジ内の物理アドレスを前記ビットに関連付けるように構成されたストレージモジュールと、前記物理アドレスを前記ビットに基づいて前記複数のインターフェースの前記1つに届けるように構成されたロジック回路と、を備えた第1のトランスレーションルックアサイドバッファ(TLB)と、
を備え、
前記物理アドレス及び前記物理アドレスに関連付けられたバーチャルアドレスをエクセプションエンジンから受け取って前記物理アドレスを前記第1のTLBに供給するように構成された第2のTLBを
さらに備え、
前記第2のTLBは、前記物理アドレスに基づいて前記ビットを発生させる前記アドレスデコーダから前記ビットを受け取って前記物理アドレス及び前記ビットをエントリーに記憶するように構成されているメモリマネージメントユニット(MMU)。
【発明を実施するための形態】
【0010】
記述を通して、説明の目的のために、ここに述べられた発明のコンセプトの一貫した理解を提供するために、多くの特別な詳細が明らかにされる。しかしながら、ここに開示される発明のコンセプトは、これらの特別な詳細のいくつかがなくても実施されるかもしれないことは、当業者にとって明らかであろう。他の例では、公知の構成及びデバイスは、ここに述べられる発明のコンセプトの基本的な原理を不明確にすることを避けるために、ブロック図の形で示される。
【0011】
ここに開示される発明のコンセプトの態様は、少なくとも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)を含む。物理アドレスは、予め決められたサイズを有するメモリのブロックを識別する物理ページナンバーを含む。
【0012】
一態様では、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)インターフェースを識別するために用いられる。
【0013】
バッファが無いことは、物理アドレスがリソースをアクセスするために用いることのできるスピードを増加させるかもしれない。
図1は、物理アドレスを伴ったダイレクトアクセスのためのMMUの一態様のインプリメンテーションのブロック図である。MMU100は、MMU100にトランザクションリクエスト106を供給する1以上のプロセッサスレッド(processor thread)104を含むことのできるプロセッサユニット102をサービスすることができる。トランザクションリクエスト106は、システムリソース108からのデータ、インストラクション或いは他の情報のためのリクエストであり得る。MMU100は、リソース108のための物理アドレスを識別し、インターフェース110を介してリソース108をアクセスするために物理アドレスを用いることができる。
【0014】
例えば、トランザクションリクエスト106はそれぞれ、プロセッサスレッド104がアクセスしているリソース或いはリソースの一部に対するバーチャルアドレスを含んでいる。MMU100は、バーチャルアドレスに関連付けられた物理アドレスを識別するテーブル或いは他のマッピング(mapping)を含むことができる。物理アドレスは、インターフェース100の1つを介してリソースにアクセスするために用いられることができる。
図1は、インターフェースA、インターフェースB、インターフェースCを示しており、それらは任意のタイプのインターフェースであり、インターフェース110は追加の或いは図示されているよりも少ないインターフェースを含んでいてもよい。インターフェースAはリソース1に関連付けられ、インターフェースBはリソース2に関連付けられ、インターフェースCはリソース3に関連付けられる。しかしながら、インターフェース110のそれぞれは、リソース108の1つよりも多くと関連付けられてよく、任意の数のリソース108が含まれていてもよい。
【0015】
MMU100は、特定の物理アドレスを用いてリソースをアクセスするためのインターフェースを識別するコンポーネントを含むことができる。
図1に示した態様では、MMU100は、ストレージモジュール114及びロジック回路116を含んだTLB112を含んでいる。TLB112は、インストラクションTLB、データTLB或いはジョイントTLBであるかもしれず、μTLB、複数のTLB或いは1以上のμTLB及びTLBを含んでいてもよい。インストラクションTLBは、フェッチ(fetch)トランザクションリクエストをサービスするように構成されることができ、データTLBは、ロード(load)或いはストア(store)トランザクションリクエストをサービスするように構成されることができ、ジョイントTLBは、フェッチ及びロード或いはストアトランザクションリクエストをサービスするように構成されることができる。
【0016】
ストレージモジュール114は、バーチャルアドレス及びバーチャルアドレスに対応する物理アドレスを記憶することができる。いくつかの態様では、ストレージモジュール114は、バーチャルアドレス及び各バーチャルアドレスに対応する物理アドレスを記憶することのできるレジスタ或いは他のストレージデバイスを含む。ストレージモジュール114は、物理アドレスレンジのためのビット或いは他のインジケータをも記憶するかもしれない。ストレージモジュール114は、それぞれがビットに関連付けられた複数の物理アドレスレンジを含むことができる。ビットは、リソースをアクセスするための物理アドレスレンジ内の物理アドレスを供給するためのインターフェース110の1つを指し示すことができる。以下により詳細に説明されるように、ビットは、物理アドレスを届ける(route)ためのインターフェースを識別するために、物理アドレス及びシステムオンチップ(SOC)メモリマップストラッピングを用いることのできるアドレスデコーダ118によってTLB112に供給されるかもしれない。ロジック回路116は、リソースをアクセスするための識別されたインターフェースを介して物理アドレスを届けるためにビットを用いることができる。いくつかの態様では、ロジック回路116は、TLB112内に記憶された物理アドレスを識別するセレクタ、及び物理アドレスを供給しそれをビットによって識別されたインターフェースに届けるマルチプレクサを含んでいる。
【0017】
種々の態様にしたがったMMUは、トランザクションリクエストのバーチャルアドレスを用いて物理アドレスが決定されるスピードを増加させるためのTLB及びμTLBを含むことができる。例えば、μTLBは、TLBよりも小さいかもしれず、トランザクションリクエストのバーチャルアドレスを用いて、最近或いはたびたび使用されるようないくつかの物理アドレスを素早く位置させるために用いられる。トランザクションリクエストのバーチャルアドレスを用いたμTLB内のルックアップがバーチャルアドレスを位置させない場合には、μTLBよりも大きく、追加のバーチャル及び物理アドレスマッピングを含んだTLBに作成される。バーチャルアドレスがTLB内に位置している場合には、バーチャルアドレス及び物理アドレスはμTLB内のエントリー内に書き込まれる。
【0018】
以下により詳細に説明されるように、インジケータ(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内の各エントリーは、例えば、物理アドレスに位置するメモリページのサイズを識別することのできるマスクを含んでいるかもしれない。
【0019】
ルックアップ及びμCAM210内の“miss”のように、トランザクションリクエストのバーチャルアドレスがμTLB202から受け取られると、ルックアップがTLB200内で実行される。“miss”は、トランザクションリクエストのバーチャルアドレスにマッチ(match)するμCAM210内のバーチャルアドレスが無いこと(absence)かもしれない。TLBルックアップでは、トランザクションリクエストのバーチャルアドレスは、バーチャルアドレスVA1−VAnのそれぞれに結合している。マッチ或いは“hit”が見つかると、バーチャルアドレスにマッチすることに関連付けられた物理アドレスのためのエントリーを識別する出力が、セレクタとしてマルチプレクサ208に供給される。マルチプレクサ208は、セレクタに基づいてバーチャルアドレスにマッチすることに関連付けられた物理アドレスを出力するように構成されている。
【0020】
“miss”がTCAM204内で生じると(トランザクションリクエストのバーチャルアドレスにマッチするバーチャルアドレスがTCAM204内で見つからないと)、トランザクションリクエストのバーチャルアドレスがエクセプションエンジン(exception engine)216に供給される。エクセプションエンジン216は、物理アドレス及びトランザクションリクエストのバーチャルアドレスのためのマスクを識別するように構成されている。いくつかの態様では、エクセプションエンジン216は、エントリー内のバーチャルアドレス及び対応する物理アドレスをTCAM204及びTRAM206の両方に書き込む。例えば、エクセプションエンジン216は、バーチャルアドレスをTCAM204内のエントリーに書き込み、物理アドレス及びマスクをTRAM206内の対応するエントリーに書き込む。他の態様では、エクセプションエンジン216は、バーチャルアドレス、対応する物理アドレス及びマスクを、エントリー内での記憶のためにTLB200に出力する。TLB200内のバーチャルアドレスのための次のルックアップ上において、物理アドレスを伴ったエントリーを識別する出力がセレクタとしてマルチプレクサ208に供給され、物理アドレスがμTLB202に供給されることができることが、TCAM204内で識別される。
【0021】
μ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だけ少ない物理アドレスを記憶するように構成されている。
【0022】
μRAM212は、各記憶された物理アドレスのためのマスク(mask)を記憶するように構成されている。マスクは、物理アドレスに関連付けられたメモリロケーションのためのページサイズを指し示しているかもしれない。μRAM212は、物理アドレスレンジのためのインジケータを記憶するように構成されている。各インジケータは、インジケータに関連付けられた物理アドレスレンジ内の物理アドレスを届けるためのインターフェース110の1つを識別するかもしれない。いくつかの態様では、物理アドレスを含んだ各エントリーは、インターフェース110の1つを識別するインジケータを含んでいる。
【0023】
インジケータは、アドレスデコーダ218から受け取られたインターフェースを識別するビットであるかもしれない。例えば、アドレスデコーダ218は、TLB200から物理アドレスを受け取ることができ、システムオンチップ(SOC)メモリマップストラッピングを用いて物理アドレスに関連付けられたインターフェースを決定することができる。SOCメモリマップストラッピングは、集積回路のような半導体デバイス上にビルトインされたメモリに関連付けられた予め規定された特性(characteristics)であるかもしれない。いくつかの態様では、SOCメモリマップストラッピングは、データプロセッシングシステム内のプログラムドロジックであるかもしれない。SOCメモリマップストラッピングの例は、メモリページロケーションのためのチップピンアウト(chip pinout)及び/又はプログラムドロジックを含んだソフトウェアを含んでいる。例えば、物理アドレスのレンジ(range)は、チップピンアウトを介するように、SOCメモリマップストラッピングを介するインターフェースに関連付けられているかもしれない。アドレスデコーダ218がTLB200から物理アドレスを受け取ると、アドレスデコーダ218は、受け取られた物理アドレスを含む物理アドレスレンジを識別することができ、識別された物理アドレスレンジに関連付けられたインターフェースを決定することができる。アドレスデコーダ218は、ビットのようなインジケータを供給するように構成されることができ、それはμTLB202への関連付けられたインターフェースを識別し、そこでエントリー内に記憶されるかそうでなければ物理アドレスに対応するかもしれない。
【0024】
上述したように、μTLB202は、TLB200よりも小さいかもしれない。例えば、μTLB202はより少ないエントリーを含んでいるかもしれず、それ故、TLB200よりもより少ないバーチャル及び物理アドレスを含んでいるかもしれない。いくつかの態様では、ルックアップがTCAM204で実行される前に、ルックアップがトランザクションリクエストのバーチャルアドレスに対してμCAM210で実行される。トランザクションリクエストのバーチャルアドレスがμCAM210内のバーチャルアドレスにマッチ(match)しない場合のように、“miss”が起こった場合には、バーチャルアドレスがTCAM204内のルックアップのためにTLB200に供給される。トランザクションリクエストのバーチャルアドレスがμCAM210内のバーチャルアドレスにマッチする場合のように、μCAM210内で“hit”が起こった場合には、μCAM210は、バーチャルアドレスにマッチすることに関連付けられた物理アドレスのためのエントリーを識別する出力を、セレクタとしてのマルチプレクサ214に供給する。マルチプレクサ214は、バーチャルアドレスにマッチすることに関連付けられた物理アドレスをセレクタに基づいてμRAM212から出力するように構成されることができる。
【0025】
いくつかの態様では、マルチプレクサ214は、ビットに基づいてインターフェース110の1つに物理アドレス届ける。インターフェース110は、任意のタイプ及び数のインターフェースを含むことができる。典型的な目的について、
図2は3つのインターフェース:タイトリーカップルドメモリ(TCM)220、AXI/L2 222、及びアドバンストハイパフォーマンスバス(AHB)224を示している。いくつかの態様では、インターフェース110のそれぞれは、ビットに基づいて物理アドレスを届けるマルチプレクサ214に代わって或いは追加して、ビット基づいて物理アドレスを届けるか否かを決定する。例えば、TCM220は、それを識別するビットに関連付けられた物理アドレスを届け、他のインターフェースを識別するビットに関連付けられた物理アドレスを無視するかもしれない。電力を消費し、トランザクションリクエスト処理においてバックアップを引き起こす、μTLB202とインターフェース110との間のアドレスデコーダ或いはバッファを用いる代わりに、ある態様は、特別の物理アドレスを届けるためのインターフェースを識別するためにμTLB202内のビットのようなインジケータを用いることができる。
【0026】
図3は、開示された発明のコンセプトのいくつかの態様にしたがった、ビットに基づいてインターフェースに物理アドレスを向けるMMUを用いる方法を示している。
図3のフロー図は、
図2に示されたコンポーネントを参照して説明される。しかしながら、他のインプリメンテーションも可能である。
【0027】
本方法は、MMU100がプロセッサスレッド(processor thread)からトランザクションリクエストのバーチャルアドレスを受け取るときに、ブロック302において開始する。例えば、プロセッサスレッドは、リソースからのデータ、インストラクション或いは他の情報のためのリクエストを含んだトランザクションリクエストを供給することができる。トランザクションリクエストは、プロセッサスレッドによってリクエストされるデータ、インストラクション或いは他の情報がアクセスされることができるリソースのバーチャルアドレスを含むことができる。
【0028】
ブロック304において、MMU100は、バーチャルアドレスがμTLB202内であるか否かを決定する。いくつかの態様では、μCAM210内のエントリーに記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするか否かを決定するために、μCAM210上でルックアップが実行される。例えば、マッチ(match)が見つかるまで、μCAM210内の各バーチャルアドレスは、トランザクションリクエストのバーチャルアドレスと比較されるか、或いは、μCAM210内の各バーチャルアドレスは、マッチ無しに、トランザクションリクエストのバーチャルアドレスと比較されてきている。
【0029】
マッチが見つからないように、“miss”が起こると、ブロック306において、MMU100は、バーチャルアドレスがTLB200内であるか否かを決定する。例えば、TCAM204内のエントリーに記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするか否かを決定するために、TCAM204内でルックアップが実行されるかもしれない。
【0030】
TCAM204内で“miss”が起こった場合、エクセプションエンジン(exception engine)216は、ブロック308において、バーチャルアドレスに対する物理アドレスを決定し、TLB200内のエントリーにバーチャルアドレス及び物理アドレスを書き込む。例えば、エクセプションエンジン216は、TCAM204内のエントリーにバーチャルアドレスを書き込み、TRAM206内の対応するエントリーに物理アドレスを書き込むかもしれない。いくつかの態様では、物理アドレスに関連付けられたメモリのページサイズを指し示すマスクは、エクセプションエンジン216によって生成され、TRAM206内の物理アドレスに関連付けられる。
【0031】
エントリーの書き込み後、本方法はブロック304に戻り、バーチャルアドレスを伴ったμTLB202上でルックアップが実行される。“miss”が再び起こるかもしれず、ブロック306において、バーチャルアドレスのためにTLB200上でルックアップが実行される。TCAM204内に記憶されたバーチャルアドレスがトランザクションリクエストのバーチャルアドレスにマッチするように、“hit”が起こった場合、対応する物理アドレスがTLB200によって供給される。例えば、TCAM204は、TRAM206に関連付けられたマルチプレクサ208にセレクタとして対応する物理アドレス及び/又はそのエントリー位置を指し示す出力を供給するかもしれない。マルチプレクサ208は、セレクタに基づいてTRAM206からの物理アドレスを出力するように構成されているかもしれない。
【0032】
ブロック310において、アドレスデコーダ218は、SOCメモリマップストラッピングを用いてTRAM206からの物理アドレスをデコードして、物理アドレスに関連付けられたインターフェースを指し示すビットを生成する。例えば、アドレスデコーダ218は、チップピンアウト或いは予め規定された物理特性を用いて、物理アドレスを含んだ物理アドレスレンジに関連付けられたインターフェースを識別する。上述したように、MMU100のいくつかの態様は、μTLB202へ書き込む時の代わりにTLBにエントリーを書き込む時に物理アドレスに関連付けられたインターフェースを識別するかもしれない。
【0033】
ブロック312において、MMU100は、バーチャルアドレス、対応する物理アドレス、及び物理アドレスに関連付けられたインターフェースを指し示すビットについてμTLB202内のエントリーに書き込む。例えば、MMU100は、μCAM210内のエントリーにバーチャルアドレスを記憶し、μRAM212内のエントリーに物理アドレスを記憶するかもしれない。MMU100は、μRAM212内の物理アドレスに関連付けられたインターフェースを指し示すビット及びマスクを記憶することができる。
【0034】
本方法は、MMU100がμTLB202内のルックアップを実行するブロック304に戻るかもしれない。“hit”が起こると、μTLB202は、ブロック314において、ビットに基づいてインターフェースにリソースをアクセスするための物理アドレスを届ける。例えば、ルックアップは、μCAM210内のバーチャルアドレスのマッチに帰結することができる。μCAM210は、μRAM212に関連付けられたマルチプレクサ214に、セレクタとして対応する物理アドレス及び/又はそのエントリー位置を指し示す出力を供給する。マルチプレクサ214は、セレクタに基づいてμRAM212からの物理アドレスを出力するように構成されているかもしれない。いくつかの態様では、μTLB202は、ビットによって識別されるインターフェースに物理アドレスを届ける。他の態様では、ビットは物理アドレスを伴って供給され、ビットによって識別されたインターフェースは物理アドレスを届け、他のインターフェースは物理アドレスを無視する。
【0035】
いくつかの態様にしたがったアドレスデコーダは、物理アドレスを届けるためのインターフェースを識別するインジケータを伴って、μTLBに加えて、TLBを供給するMMU内に位置しているかもしれない。
図4は、TLB内のエントリーが書き込まれたときに、TLB400に物理アドレスに対するインターフェースを識別するビットを供給することができる構成を有するMMU100の第2の態様を示している。
図4のMMU100は、トランザクションリクエストからのバーチャルアドレスによってルックアップを実行することのできるμCAM410を含んだμTLB402を含んでいる。“miss”が起こると、バーチャルアドレスがTCAM404に供給され、ルックアップがTLBに対して行われる。
【0036】
TCAM404内で“miss”が起こると、バーチャルアドレスに対する物理アドレスを識別するエクセプションエンジン416にバーチャルアドレスが供給される。いくつかの態様では、エクセプションエンジン416は、物理アドレスに関連付けられたメモリのページサイズを識別する物理アドレスに対するマスクを決定することができる。物理アドレスは、物理アドレスに対するインターフェースを識別するビットを生成するために、SOCメモリマップストラッピングを用いるアドレスデコーダ418に供給されることができる。バーチャルアドレスは、TCAM404内のエントリーに書き込まれることができ、物理アドレスは、ビット及びマスクとともに、TRAM406内の対応するエントリーに書き込まれることができる。TCAM404内で“hit”が起こると、物理アドレス、ビット及びマスクは、マルチプレクサ408を用いてμTLB402に供給されることができる。バーチャルアドレスは、μCAM410内のエントリーに書き込まれることができ、物理アドレス、ビット及びマスクは、μRAM412内の対応するエントリーに書き込まれることができる。
【0037】
μCAM410内で“hit”が起こると、物理アドレスは、マルチプレクサ414を用いてインターフェース110の1つに届けられることができる。ビットは、リソースをアクセスするためにどのインターフェースに物理アドレスを届けるかを決定するために用いることができる。
【0038】
上述した特徴を含んだ例示デバイス
メモリマネージメントユニット(MMU)は、デジタルシグナルプロセッサのような任意のプロセッサに含まれる。
図5〜9の一般的な図は、デバイスリソースにプロセッサのスレッド或いはマルチスレッドプロセッサのスレッドによって供給されるトランザクションリクエストによるインターフェースへのアクセスを管理するためのMMUに組み入れられる例示デバイスを示している。
【0039】
図5は、ポータブルコミュニケーションデバイス500の典型的な態様を示した図である。
図5の一般的な図に示されるように、ポータブルコミュニケーションデバイスは、デジタルシグナルプロセッサ(DSP)504に含まれるオンチップシステム502を含んでいる。
図5の一般的な図はまた、デジタルシグナルプロセッサ504及びディスプレイ508に結合されたディスプレイコントローラ506を示している。また、入力デバイス510は、DSP504に結合されている。図示されるように、メモリ512がDSP504に結合されている。さらに、コーダ/デコーダ(CODEC)514がDSP504に結合されていてもよい。スピーカ516及びマイクロフォン518がCODEC514に結合されていてもよい。
【0040】
図5の一般的な図はさらに、デジタルシグナルプロセッサ504及び無線アンテナ(wireless antenna)522に結合された無線コントローラを示している。特別の態様では、電源(power supply)524がオンチップシステム502に結合されている。また、特別の態様では、
図5に示されるように、ディスプレイ526、入力デバイス530、スピーカ516、マイクロフォン518、無線アンテナ522、及び電源524は、オンチップシステム502の外部にある。しかしながら、それぞれは、オンチップシステム502のコンポーネントに結合している。
【0041】
特別の態様では、DSP504は、スレッドからのトランザクションリクエストによってインターフェースにダイレクトアクセスすることのできるメモリマネージメントユニットMMU526を含んでいる。例えば、MMU526は、
図2或いは4を参照して述べられたように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
【0042】
図6は、セルラー電話(cellular telephone)600の典型的な態様を示した図である。図示されるように、セルラー電話600は、互いに結合したデジタルベースバンドプロセッサ604及びアナログベースバンドプロセッサ606を含んだオンチップシステム602を含んでいる。特別の態様では、デジタルベースバンドプロセッサ604は、デジタルシグナルプロセッサである。
図6の一般的な図に示されるように、ディスプレイコントローラ608及びタッチスクリーンコントローラ610は、デジタルベースバンドプロセッサ604に結合されている。また、オンチップシステム外のタッチスクリーンディスプレイ612は、ディスプレイコントローラ608及びタッチスクリーンコントローラ610に結合されている。
【0043】
図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)カメラである。
【0044】
図6の一般的な図にさらに示されるように、ステレオオーディオCODEC630が、アナログベースバンドプロセッサ606に結合されていてもよい。さらに、オーディオ増幅器632が、ステレオオーディオCODEC630に結合されていてもよい。典型的な態様では、第1のステレオスピーカ634及び第2のステレオスピーカ636が、オーディオ増幅器632に結合されている。マイクロフォン増幅器638が、ステレオオーディオCODEC630に結合されていてもよい。さらに、マイクロフォン640がマイクロフォン増幅器638に結合されていてもよい。特別の態様では、周波数変調(FM)ラジオチューナー642が、ステレオオーディオCODEC630に結合されていてもよい。FMアンテナ644は、FMラジオチューナー642に結合されることができる。さらに、ステレオヘッドフォン646が、ステレオオーディオCODEC630に結合されていてもよい。
【0045】
図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バッテリーである。
【0046】
図6の一般的な図に示されるように、タッチスクリーンディスプレイ612、ビデオポート618、USBポート622、カメラ628、第1のステレオスピーカ634、第2のステレオスピーカ636、マイクロフォン640、FMアンテナ644、ステレオヘッドフォン646、RFスイッチ648、RFアンテナ650、キーパッド652、モノヘッドセット656、バイブレーター658、及び電源660は、オンチップシステム602の外部であってもよい。
【0047】
特別の態様では、デジタルベースバンドプロセッサ604は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)626を含んでいる。例えば、MMU662は、
図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
【0048】
図7は、無線インターネットプロトコル(IP)電話700の典型的な態様を示した図である。図示されるように、無線IP電話700は、デジタルシグナルプロセッサ(DSP)704を含んだオンチップシステム702を含んでいる。ディスプレイコントローラ706はDSP704に結合されていてもよく、ディスプレイ708はディスプレイコントローラ706に結合されている。典型的な態様では、ディスプレイ708は液晶ディスプレイ(LCD)である。
図7はさらに、キーパッド710がDSP704に結合されてもよいことを示している。
【0049】
フラッシュメモリ712が、DSP704に結合されていてもよい。同期ダイナミックランダムアクセスメモリ(SDRAM)714、スタティックランダムアクセスメモリ(SRAM)716、及び電気的消去可能なプログラマブルリードオンリメモリ(EEPROM)718が、DSP704に結合されていてもよい。
図7の一般的な図はまた、発光ダイオード(LED)720がDSP704に結合されていてもよいことを示している。さらに、特別の態様では、音声CODEC722がDSP704に結合されていてもよい。増幅器724が音声CODEC722に結合されていてもよく、モノスピーカ726が増幅器724に結合されていてもよい。
図7の一般的な図はさらに、音声CODEC722に結合されたモノヘッドセット728を示している。特別の態様では、モノヘッドセット728はマイクロフォンを含んでいる。
【0050】
無線ローカルエリアネットワーク(WLAN)ベースバンドプロセッサ730が、DSP704に結合されていてもよい。RFトランシーバー732がWLANベースバンドプロセッサ730に結合されていてもよく、RFアンテナ734がRFトランシーバー732に結合されていてもよい。特別の態様では、ブルートゥースコントローラ736がDSP704に結合されていてもよく、ブルートゥースアンテナ738がコントローラ736に結合されていてもよい。
図7の一般的な図はまた、USBポート740がDSP704に結合されていてもよいことを示している。さらに、電源742が、オンチップシステム702に結合され、無線IP電話700の種々のコンポーネントに電力を供給する。
【0051】
図7の一般的な図に示されるように、ディスプレイ708、キーパッド710、LED720、モノスピーカ726、モノヘッドセット728、RFアンテナ734、ブルートゥースアンテナ738、USBポート740、及び電源742は、オンチップシステム702の外部にあり、オンチップシステム702の1以上のコンポーネントに結合されていてもよい。特別の態様では、DSP704は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)726を含んでいる。例えば、MMU762は、
図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
【0052】
図8は、ポータブルデジタルアシスタント(PDA)800の典型的な態様を示した図である。図示されるように、PDA800は、デジタルシグナルプロセッサ(DSP)804を含んだオンチップシステム802を含んでいる。タッチスクリーンコントローラ806及びディスプレイコントローラ808が、DSP804に結合されている。さらに、タッチスクリーンディスプレイ810が、タッチスクリーンコントローラ806及びディスプレイコントローラ808に結合されている。
図8の一般的な図はまた、キーパッド812がDSP804に結合されていてもよいことを示している。
【0053】
特別の態様では、ステレオオーディオCODEC826がDSP804に結合されていてもよい。第1のステレオ増幅器828がステレオオーディオCODEC826に結合されていてもよく、第1のステレオスピーカ830が第1のステレオ増幅器828に結合されていてもよい。さらに、マイクロフォン増幅器832がステレオオーディオCODEC826に結合されていてもよく、マイクロフォン834がマイクロフォン増幅器832に結合されていてもよい。
図8の一般的な図はさらに、ステレオオーディオCODEC826に結合され得る第2のステレオ増幅器836と、第2のステレオ増幅器836に結合され得る第2のステレオスピーカ838を示している。特別の態様では、ステレオヘッドフォン840がステレオオーディオCODEC826に結合されていてもよい。
【0054】
図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の種々のコンポーネントに電力を供給してもよい。
【0055】
図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)を含んでいてもよい。
【0056】
図9は、オーディオファイルプレーヤ(例えば、MP3プレーヤ)900の典型的な態様を示した図である。図示されるように、オーディオファイルプレーヤ900は、デジタルシグナルプロセッサ(DSP)904を含んだオンチップシステム902を含んでいる。ディスプレイコントローラ906がDSP904に結合されていてもよく、ディスプレイ908がディスプレイコントローラ906に結合されていてもよい。典型的な態様では、ディスプレイ908は液晶ディスプレイ(LCD)である。キーパッド910が、DSP904に結合されていてもよい。
【0057】
図9の一般的な図にさらに示されるように、フラッシュメモリ912及びリードオンリメモリ(ROM)914が、DSP904に結合されていてもよい。さらに、特別の態様では、オーディオCODEC916が、DSP904に結合されていてもよい。増幅器918がオーディオCODEC916に結合されていてもよく、モノスピーカ920が増幅器918に結合されていてもよい。
図9の一般的な図はさらに、マイクロフォン入力922及びステレオ入力924が、オーディオCODEC916に結合されていてもよいことを示している。特別の態様では、ステレオヘッドフォン926が、オーディオCODEC916に結合されていてもよい。
【0058】
USBポート928及びスマートカード930が、DSP904に結合されていてもよい。さらに、電源932が、オンチップシステム902に結合されていてもよく、オーディオファイルプレーヤ900の種々のコンポーネントに電力を供給してもよい。
【0059】
図9の一般的な図に示されるように、ディスプレイ908、キーパッド910、モノスピーカ920、マイクロフォン入力922、ステレオ入力924、ステレオヘッドフォン926、USBポート928、及び電源932は、オンチップシステム902の外部にあり、オンチップシステム902上の1以上のコンポーネントに結合されている。特別の態様では、DSP904は、スレッドからのトランザクションリクエストによってインターフェースへダイレクトアクセスできるメモリマネージメントユニット(MMU)926を含んでいる。例えば、MMU962は、
図2或いは4を参照して述べられるように、処理遅延を低減するためにトランザクションリクエストに向かうインターフェースを指し示すビットを受け取ることのできるマイクロトランスレーションルックアサイドバッファ(μTLB)を含んでいてもよい。
【0060】
概括
ここに開示された発明のコンセプトの態様の上述した説明は、例証及び説明の目的のためにだけ示されたものであり、開示された正確な形でここに開示された発明のコンセプトを制限し或いは徹底的であることを意図していない。多くの変更及び適応は、ここに開示された発明のコンセプトの精神及び範囲から逸脱することなく、当業者にとって明らかである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[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]の方法。