(57)【要約】【課題】ソフトウェア処理毎に必要なメモリアクセス機能を１つの制御回路に持たせると、回路が複雑化し、動作周波数が上がらないか、もしくはメモリアクセスにかかるサイクル数が増加してしまう。【解決手段】ＣＰＵ１０からメモリ３０，４０へのアクセスに擬似物理アドレスを使用する。この擬似物理アドレスによりソフトウェア処理毎に必要な機能ブロック７１，７２，７３を選択し、選択した機能ブロックで実物理アドレスへのアドレス変換を行う。メモリアクセス機能をＣＰＵ１０から並列に持たせることで、ソフトウェアごとに最適なメモリアクセス処理を施し、更に動作周波数の低下を招いたり、メモリアクセスにかかるサイクル数を増加させたりすることなく、メモリアクセス性能を向上させる。【選択図】図４
2008282065.tif 000002
【特許請求の範囲】
【請求項１】
外部メモリにアクセスするＣＰＵを有する半導体装置であって、
前記ＣＰＵからの擬似物理アドレスを実物理アドレスに変換するブロックを２つ以上有し、前記ＣＰＵから前記メモリへのアクセスは前記ブロックのうちの少なくとも１つのブロックを通過し、前記ブロックは前記擬似物理アドレスによって選択され、前記メモリは前記実物理アドレスによって選択されることを特徴とする半導体装置。
【請求項２】
ＣＰＵとメモリとを有する半導体装置であって、
前記ＣＰＵからの擬似物理アドレスを実物理アドレスに変換するブロックを２つ以上有し、前記ＣＰＵから前記メモリへのアクセスは前記ブロックのうちの少なくとも１つのブロックを通過し、前記ブロックは前記擬似物理アドレスによって選択され、前記メモリは前記実物理アドレスによって選択されることを特徴とする半導体装置。
【請求項３】
請求項１又は２に記載の半導体装置において、
前記ＣＰＵ内部において仮想アドレスを前記擬似物理アドレスに変換する機構を有することを特徴とする半導体装置。
【請求項４】
請求項１〜３のいずれか１項に記載の半導体装置において、
異なる前記擬似物理アドレスが、異なる前記ブロックにより変換され同一の前記物理アドレスが生成可能であることを特徴とする半導体装置。
【請求項５】
請求項１〜４のいずれか１項に記載の半導体装置において、
前記ブロックにおける前記擬似物理アドレスから前記実物理アドレスへの変換方法を動的に変更することが可能なことを特徴とする半導体装置。
【請求項６】
請求項１〜４のいずれか１項に記載の半導体装置において、
前記ブロックにおける前記擬似物理アドレスから前記実物理アドレスへの変換方法を変更できないことを特徴とする半導体装置。
【請求項７】
請求項１〜６のいずれか１項に記載の半導体装置において、
前記ブロック間で同一の前記実物理アドレスにあるデータが変更された場合に、各ブロック間で通信を行いデータの一貫性を保証する機能を有することを特徴とする半導体装置。
【請求項８】
請求項１〜７のいずれか１項に記載の半導体装置において、
前記ブロックのうち少なくとも１つが、キャッシュメモリ機能を有することを特徴とする半導体装置。
【請求項９】
請求項１〜８のいずれか１項に記載の半導体装置において、
前記ブロックのうち少なくとも１つが、同じアドレスグループに第１の書き込みアクセスと第２の書き込みアクセスのように２個以上発生した場合に、前記第２の書き込みアクセス以降の書き込みアクセスと前記第１の書き込みアクセスとを前記メモリへの１個の書き込みアクセスとして書き込みアクセスを発生することを特徴とする半導体装置。
【請求項１０】
請求項１〜９のいずれか１項に記載の半導体装置において、
前記ブロックのうち少なくとも１つが、前記擬似物理アドレスから前記実物理アドレスへの変換のみを実施することを特徴とする半導体装置。
【請求項１１】
請求項１〜９のいずれか１項に記載の半導体装置において、
前記ブロックのうち少なくとも１つが、前記ブロックの内部に保持しているデータを前記メモリに対して吐き出させることが可能なことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵとメモリとを備えるシステムに関し、特にメモリへのデータ転送技術に関するものである。
【背景技術】
【０００２】
従来のＣＰＵとメモリとを備えるシステムでは、ＣＰＵの高速化に対し、メモリアクセスの高速化が追いついていない状況である。そのため、メモリアクセス性能を向上させるためキャッシュメモリ方式を取るのが一般的である。このキャッシュメモリも近年ではレベル１キャッシュだけでなく、レベル２キャッシュ、更にはレベル３キャッシュも採用されるようになってきた。
【０００３】
図１は、従来技術におけるメモリアクセスに関わるブロック図である。図１のシステムは、第１及び第２の半導体装置１００，２００を備える。第１の半導体装置１００は、ＣＰＵ１０と、レベル２キャッシュ２０と、実メモリ３０とを有する。レベル２キャッシュ２０は、キャッシュメモリ２１と、制御回路２２とを有する。第２の半導体装置２００は、実メモリ４０を有する。ＣＰＵ１０は、レベル２キャッシュ２０を介して、双方の実メモリ３０，４０に接続される。
【０００４】
更に、実物理メモリ空間以外のメモリ空間についてもソフトウェアから使用できるように、仮想メモリという技術も使われている。このとき、ＣＰＵ内部ではソフトウェアから指定された仮想アドレスを実物理アドレスに変換する機能があり、この機能を使って実物理メモリをアクセスできる。通常実物理メモリ空間には容量の制限があり、仮想メモリの技術はソフトウェアからアクセスできるメモリ空間を大きく見せるという点で非常に有用である。また、上述したように実物理メモリには容量の制限があるため、ソフトウェアが必要とする都度、実物理メモリに置くべきデータやソフトウェアを動的に割り当てることで、少ない実物理メモリを有効に使用できるようになっている。
【０００５】
また、先に述べたキャッシュメモリ方式を採用した場合には、一旦アクセスしたメモリデータをキャッシュ内に取り込むことで、次に同じアドレスに対してアクセスがある場合にはメモリにアクセスせず、キャッシュに対してアクセスすることでメモリ性能を向上させている。
【０００６】
このように、ＣＰＵを使ったシステムではメモリアクセスがボトルネックとなりやすく、メモリアクセス性能を向上させることが非常に重要になっている。
【０００７】
また、キャッシュメモリやメモリへのライトアクセスでは、データ上書き機能を持たせることでライトアクセスの高速化が実施されている。ライトデータはレベル２キャッシュの制御回路内部で一旦ライトバッファに取り込まれる。データ上書き機能をもったライトバッファは、以前書き込まれ、まだライトバッファに残っているライトデータと同じアドレスグループ、例えば同じキャッシュライン上のアドレスへのライトアクセスが発生すると、ライトバッファ内で上書きする。これにより、データ上書き機能を持たないライトバッファでは、それぞれのライトアクセスを上書きせずに、毎回キャッシュメモリやメモリへライトアクセスを発生させてしまうが、データ上書き機能を持ったライトバッファではライトアクセス自体のアクセス数を減らすとともに、１つのキャッシュラインのライトアクセスを単一のトランザクションとして処理することで、高速なライトアクセスを可能にしている（非特許文献１参照）。
【非特許文献１】ＡＲＭ社  Ｌ２２０  Ｃａｃｈｅ  Ｃｏｎｔｒｏｌｌｅｒ  Ｒｅｖｉｓｉｏｎ  ｒ１ｐ４  Ｔｅｃｈｎｉｃａｌ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ，インターネット＜http://www.arm.com/pdfs/DDI0329G_l220_r1p4_cc_trm.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したようにキャッシュメモリを採用している半導体装置では、メモリへのアクセス数を減らすことができ、高速に動作することができる。しかし、画像データなどを液晶画面などの外部表示装置に出力する場合には、キャッシュに溜め込まず、メモリなどのフレームバッファにデータを溜めることが必要となる。このとき、レベル２キャッシュを搭載した半導体装置では、レベル２キャッシュを使用せずに、メモリにデータを転送しなければならない。
【０００９】
また、メモリを使用するＣＰＵ以外のマスタブロックとＣＰＵとの間でメモリ上のデータを共有する場合がある。そのとき、通常キャッシュ機能は使用せず、ＣＰＵからの書き込みデータは直接メモリに書き込むことで、マスタブロックとのデータの一貫性を保持する。
【００１０】
このとき、レベル２キャッシュを使用しない場合でも書き込みデータはレベル２キャッシュの制御回路を通過する必要があり、その分メモリへのアクセスに余分なクロックサイクル数を必要としてしまう。
【００１１】
また、上述したデータ上書き機能などをレベル２キャッシュの制御回路に追加することは、レベル２キャッシュの制御回路の論理も複雑化し、レベル２キャッシュのクロックを高速化することが難しくなる。また、逆にレベル２キャッシュの制御回路の動作周波数を上げるためにフリップフロップを挿入することで、メモリへのアクセスレイテンシを増加させてしまうため、いずれにしてもメモリアクセス性能を低下させてしまう。
【００１２】
このように、ソフトウェアのデータ処理内容に応じてさまざまなメモリアクセス機能を追加しても、制御論理を複雑化し、結果、メモリアクセス性能を上げることができなくなる。
【課題を解決するための手段】
【００１３】
本発明は、上記の課題を解決するために次のような手段を講じる。
【００１４】
すなわち、本発明の本質は、ＣＰＵとメモリとの間に配置されたレベル２キャッシュやデータ上書き機能、データバイパス機能などの各種機能を分割、ブロック化し、その各ブロックのいずれかを擬似物理アドレスにより選択することにある。
【００１５】
例えば、図２において、ＣＰＵ１０から出力されたメモリアクセスは擬似物理アドレスＡによって、第１の機能ブロック５１を選択し、当該第１の機能ブロック５１で処理されたメモリアクセスは擬似物理アドレスＡから実物理アドレスＣに変換され、メモリ４０にアクセスする。また、ＣＰＵ１０から擬似物理アドレスＢを指し示すメモリアクセスがあった場合には、第２の機能ブロック５２によって処理された後、実物理アドレスＣに変換され、メモリアクセスを行う。このとき、実物理アドレスＣは第１及び第２の機能ブロック５１，５２で変換される場合に、それぞれが同じ実物理アドレス領域Ｃを示す必要はなく、異なるアドレス領域に変換してもよい。また、実物理空間が同一の半導体装置１００上にあっても、その効果は同じである。
【００１６】
また、図３のように、第２の機能ブロック６２ではアドレス変換を行わず、擬似物理アドレスと実物理アドレスが同じであっても、同様の効果を発揮する。この場合は大部分の処理は第２の機能ブロック５２で処理され、特殊でまれな使い方として第１の機能ブロック６１を使用する場合などに、一部のソフトウェアを記述する技術者のみこの擬似物理アドレスを意識するだけでシステム構築が可能なため、有用である。
【００１７】
また、図２及び図３において、ＣＰＵ１０とメモリ３０，４０との間にはデータ読み出しを高速化するキャッシュメモリや、データ書き込み処理を高速化するデータ上書き機能などが必要となるが、これらの処理はソフトウェアごとに必要とされる処理が異なる。上述したように、例えば共有メモリへのアクセス時や外部表示装置への表示時はキャッシュメモリを必要とせず、逆に高速表示のためにデータ上書き機能が必要とされる。また、実物理メモリ空間には大きさに制限があり、同一実物理アドレスに置かれるデータやソフトウェアは動的に変更される。
【００１８】
これは、同一実物理アドレスにおいても、時間とともにそのアドレスに置かれるソフトウェアが変わることを意味し、その都度各ソフトウェアに必要なメモリ転送機能が異なる。
【００１９】
そのため、まずＣＰＵ１０からは擬似物理アドレスにより各機能ブロック５１，５２；６１，６２のアクセスを選択し、各ソフトウェアに必要とされる最適な機能ブロックを通過させる。更に、各機能ブロック５１，５２；６１，６２に擬似物理アドレスを実物理アドレスに変換する機能を持たせることで、正しく実メモリ３０，４０にアクセスすることができる。このとき、ＣＰＵ１０の内部で仮想記憶を実現するための仮想アドレスから擬似物理アドレスに変換されていてもよい。
【００２０】
また上述したように、時間軸上では同一実物理アドレス上に異なるデータや命令コードが配置されることがあるため、各機能ブロック５１，５２；６１，６２は異なる擬似物理アドレスから同一の実物理アドレスを生成する機能により、擬似物理アドレスを変更するだけで、通過させる機能ブロックを変更し、同一の実物理アドレスにアクセスすることが可能となる。
【００２１】
この擬似物理アドレスを使う手段により、機能ブロック内部の制御を単一の機能処理に特化することが可能となる。これにより、各機能ブロック５１，５２；６１，６２を簡素化でき、その動作周波数を向上させたり、余分なレジスタを入れることなく高速動作が可能となる。
【発明の効果】
【００２２】
以上のとおり、本発明によれば、ＣＰＵからのメモリアクセス性能をソフトウェアごとに最適化させつつ、メモリアクセス性能を向上させることが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明が適用された半導体装置について、図４及び図５を参照しつつ説明する。
【００２４】
図４は、本発明の実施の形態におけるメモリアクセスに関わるブロック図である。図４では機能ブロックとして、レベル２キャッシュ７１と、データ上書き機能ブロック７２と、バイパス機能ブロック７３とを示している。
【００２５】
データ上書き機能ブロック７２では、同一アドレス空間に書き込みアクセスがあった場合には、個々のメモリアクセスを束ねて、１つのメモリ転送として出力することができる。同一アドレスに書き込みがあった場合には、最後に書き込まれたデータを出力する。つまり、データを上書きすることが可能なブロックである。
【００２６】
バイパス機能ブロック７３とは、キャッシュ機能も持たず、またデータ上書き機能も持たず、メモリアクセスアドレスのみ変換するブロックを表している。上述したように、実物理空間は実メモリ３０のようにＣＰＵ１０と同一の半導体装置１００にあってもよいし、実メモリ４０のようにＣＰＵ１０が搭載される半導体装置１００とは別の半導体装置２００にあってもよい。
【００２７】
図５は、本発明の実施の形態におけるアドレスマップ図であって、仮想アドレスと、擬似物理アドレスと、物理アドレスとの対応を記述している。
【００２８】
図５に例示されているように、「０ｘ」以下が１６進数表記であるものとするとき、ＣＰＵ１０の内部の仮想記憶機構により仮想アドレス０ｘ００００００００番地にあるデータは、擬似仮想アドレス０ｘ１０００００００番地に変換される。ＣＰＵ１０からはこの擬似仮想アドレス０ｘ１０００００００番地のアドレスが出力され、ＣＰＵ１０と、レベル２キャッシュ７１及びデータ上書き機能ブロック７２との間に配置されたアドレスデコーダ（図２中の１５参照）によって、データ上書き機能ブロック７２にデータが送られる。つまり、図５にある擬似物理メモリミラー領域Ａは、データ上書き機能ブロック７２が持つアドレス空間である。
【００２９】
また、仮想記憶機構によって仮想アドレス０ｘ００００００００番地が擬似仮想アドレス０ｘ９０００００００番地に変換されると、データ上書き機能ブロック７２ではなく、レベル２キャッシュ７１にデータが送られることになる。図５にある擬似物理メモリ領域Ａは、レベル２キャッシュ７１の通過を意味している。
【００３０】
データ上書き機能ブロック７２にデータが送られた場合には、このブロック７２内で同じアドレスグループにあるデータがライトバッファに存在すると、後から書き込まれたデータが元からあったデータにライトバッファ内部で上書きされる。そして、ライトバッファからの吐き出しが行われると、もともとライトバッファに存在していたデータとともに後から書き込まれたデータもメモリ３０，４０に書き込まれる。このとき、メモリ３０，４０に書き込むアドレスは、物理アドレス０ｘ９０００００００に変換されて書き込まれる。つまり、仮想アドレス０ｘ００００００００番地から擬似物理アドレス０ｘ１０００００００番地へ、そして物理アドレス０ｘ９０００００００番地へのアドレス変換がなされながら、メモリ３０，４０にデータが書き込まれることになる。
【００３１】
また、レベル２キャッシュ７１及びデータ上書き機能ブロック７２は、それぞれキャッシュメモリ及びライトバッファを持ち、これらのデータ保持機構から明示的にメモリ３０，４０にデータを送り出すために、ソフトウェアからアクセス可能なレジスタを保持する。このレジスタをアクセスすることで、レベル２キャッシュ７１やデータ上書き機能ブロック７２に残っているデータを確実にメモリ３０，４０に転送させることが可能となる。なお、レジスタが存在していなくとも、ソフトウェアから明示的にデータを吐き出すことができれば同じ効果を発揮する。
【００３２】
図５に示したように、仮想記憶が仮想アドレス０ｘ００００００００番地から擬似物理アドレス０ｘ９０００００００番地に変換し、レベル２キャッシュ７１をアクセスした場合、最終的には物理アドレス０ｘ９０００００００番地をデータ上書き機能ブロック７２と同様にアクセスさせることも可能である。
【００３３】
これにより、同一アドレスの物理メモリを複数のソフトウェアで入れ替えながら使用する場合にも、それぞれのソフトウェアの特色にあわせて、レベル２キャッシュ７１かデータ上書き機能ブロック７２かを選択し、性能を最大限に引き出すことが可能となる。これはソフトウェアによってはキャッシュ機能により性能が上がるものや、逆にデータ上書き機能により性能が上がるものが存在しているからである。
【００３４】
また、擬似物理アドレスから物理アドレスへの変換方法は、ソフトウェアから変更が可能なようにすることで柔軟なアドレス変換も可能になる。例えば、擬似物理アドレス０ｘ１０００００００を物理アドレス０ｘ９０００００００に変換させたり、同様に擬似物理アドレス０ｘ１０００００００を物理アドレス０ｘＡ０００００００に変換させたりとソフトウェアから変更可能にすることで、更に物理メモリ３０，４０が少ない場合に効果的にアドレス変換が可能となる。
【００３５】
逆にアドレス変更をハードウェアにより一意に決めることにより、ハードウェアとしては小さく、また余分なフリップフロップを挿入することなく、メモリアクセス性能を向上させることが可能となる場合もある。
【００３６】
なお、ここでは具体的にアドレスに固有値を使用して説明したが、もちろん記載したアドレス以外のアドレスでも同様の効果があるのは自明である。
【産業上の利用可能性】
【００３７】
以上説明してきたとおり、本発明に係る回路技術は、メモリアクセス性能を向上させる機能を有し、高速データ処理装置などとして有用である。
【図面の簡単な説明】
【００３８】
【図１】従来技術におけるメモリアクセスに関わるブロック図である。
【図２】本発明におけるメモリアクセスに関わるブロック図である。
【図３】本発明におけるメモリアクセスに関わる他のブロック図である。
【図４】本発明の実施の形態におけるメモリアクセスに関わるブロック図である。
【図５】本発明の実施の形態におけるアドレスマップ図である。
【符号の説明】
【００３９】
１０  ＣＰＵ
１５  アドレスデコーダ
２０  レベル２キャッシュ
２１  キャッシュメモリ
２２  制御回路
３０、４０  実メモリ
５１，５２  機能ブロック
６１，６２  機能ブロック
７１  レベル２キャッシュ
７２  データ上書き機能ブロック
７３  バイパス機能ブロック
１００，２００  半導体装置
【図１】
2008282065.tif 000003
【図２】
2008282065.tif 000004
【図３】
2008282065.tif 000005
【図４】
2008282065.tif 000006
【図５】
2008282065.tif 000007