(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、物理的アドレス空間が連続する連続的マッピング領域に対する場合に、一度でメモリを割り当てることにより、CPUからメインメモリへのアクセス回数を低減できるメモリシステムを提供することにある。
【課題を解決するための手段】
【0005】
本発明によるメモリシステムは、仮想アドレスを入力されて、前記仮想アドレスとマッチングするTLBエントリーをTLB(Translation Lookaside Buffer)中から検索するアドレス変換ユニットと、前記アドレス変換ユニットと連結され、前記仮想アドレスとマッチングするTLBエントリーがない場合、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、を含むことを特徴とする。
【0006】
前記ページテーブルワークユニットは、前記判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記連続的マッピング領域によって仮想アドレス管理サイズを調整しうる。
また、前記ページテーブルワークユニットは、前記調整された仮想アドレス管理サイズを前記アドレス変換ユニットに伝達しうる。
また、前記アドレス変換ユニットは、前記調整された仮想アドレス管理サイズに従って前記TLBエントリーを割り当てて以後のデータを検索しうる。
また、本メモリシステムは、メモリをさらに含みうる。
また、前記ページテーブルワークユニットは、インターフェースを経由して、前記メモリにアクセスし、その結果持ってきた前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記仮想アドレス管理サイズを調整しうる。
また、前記メモリは、前記仮想アドレスを物理的アドレスにマッピングするページテーブルを含みうる。
また、前記ページテーブルワークユニットは、複数のTIBエントリーからなるTIB(Translation Information Buffer)を含み、前記TIBエントリーは、仮想ページスタートアドレス、仮想ページエンドアドレス、及び物理的アドレス情報を含みうる。
また、前記ページテーブルワークユニットは、前記メモリにアクセスして持って来た物理的アドレス情報と前記仮想アドレスに対応する物理的アドレス情報とが連続的マッピング領域にあるか否かを、前記仮想ページエンドアドレスを用いて判断しうる。
また、前記ページテーブルワークユニットは、前記仮想アドレス管理サイズ及び前記調整された仮想アドレス管理サイズを保存しうる。
また、本メモリシステムは、前記アドレス変換ユニットに仮想アドレスを提供する汎用レジスタを含みうる。
また、前記汎用レジスタは、前記仮想アドレスを発生させる複数のアドレスレジスタを含みうる。
【0007】
本発明によるメモリシステムは、仮想アドレスを発生させるCPUと、前記仮想アドレスを物理的アドレスにマッピングするページテーブルを含むメモリと、前記CPUの前記メモリへのアクセスを管理し、前記CPUから前記仮想アドレスを入力されて前記物理的アドレスにマッピングするMMU(メモリ管理ユニット)と、を含み、前記MMUは、前記メモリにアクセスしうる。
前記MMUは、前記仮想アドレスを入力されて、前記仮想アドレスとマッチングするTLBエントリーを検索するアドレス変換ユニットと、前記アドレス変換ユニットと連結され、前記仮想アドレスとマッチングするTLBエントリーがない場合、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、を含む。
【0008】
前記ページテーブルワークユニットは、前記判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、当該連続的マッピング領域によって、前記仮想アドレス管理サイズを調整し、前記調整された仮想アドレス管理サイズに従ってTLBエントリーを割り当ててデータを検索しうる。
また、前記ページテーブルワークユニットは、インターフェースを経由して前記メモリにアクセスしうる。
【0009】
本発明の一実施形態によるメモリシステムの運用方法は、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断する段階と、該判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、当該連続的マッピング領域によって仮想アドレス管理サイズを調整する段階と、を含みうる。
また、前記メモリシステムの運用方法は、前記判断する段階以前に、前記仮想アドレスに対応する物理的アドレスを含むTLBエントリーを検索する段階をさらに含みうる。
また、前記メモリシステムの運用方法は、前記調整された仮想アドレス管理サイズに基づいてTLBエントリーを割り当てる段階を含みうる。
また、前記メモリシステムの運用方法は、前記TLBエントリーを検索する段階以前に、前記仮想アドレスを発生させる段階を含みうる。
また、調整前の仮想アドレス管理サイズは、4KBでありうる。
【発明の効果】
【0010】
本発明によるメモリシステムでは、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するので、物理的アドレスが連続的マッピング領域にある場合、一度でメモリを割り当てることにより、CPUからメインメモリへのアクセス回数を低減できる。
【発明を実施するための形態】
【0012】
以下、添付図面を参照しながら本発明の望ましい実施形態を説明することによって、本発明を詳しく説明する。各図面に付された同じ参照符号は、同じ部材を表わす。
図1(A)は、本発明の一実施形態によるメモリシステムを示す図であり、
図1(B)は、本発明の一実施形態によるメモリシステムをより具体的に示す図である。
図2は、
図1(B)のTLBを説明するための図であり、
図3は、
図2のTLBエントリー(Entry)を説明するための図である。
図4は、
図1(B)のTIBを説明するための図であり、
図5は、
図4のTIBエントリーを説明するための図である。
【0013】
図1(A)を参照すると、メモリシステム100は、CPU(Central Processing Unit)250、MMU(Memory Management Unit、メモリ管理ユニット)200、及びメインメモリ(以下、単にメモリという)150を含む。
CPU250が、仮想アドレス(Virtual Address)を発生すると、MMU200は、前記仮想アドレスを物理的アドレスにマッピングしてメモリ150にアクセスする。
メモリ150は、前記仮想アドレスと物理的アドレスとを連結するテーブルであるページテーブル152を含む。
【0014】
メモリ150は、DRAM(Dynamic Random Access Memory)、及び不揮発性メモリ(NVM、Non−Volatile Vemory)を含み、不揮発性メモリは、EEPROM、フラッシュメモリ、MRAM(Magnetic RAM)、スピン伝達トルクMRAM(Spin−Transfer Torque MRAM)、FeRAM(Ferroelectiric RAM)、PRAM(Phase change RAM)、RRAM(Resistive RAM)、ナノチューブRRAM(nanotube RRAM)、ポリマーRAM(Polymer RAM)、ナノフローティングゲートメモリ(Nano Floating Gate Memory)、ホログラフィックメモリ(Holographic Memory)、分子電子メモリ素子(Molecular Electronics Memory Device)、又は絶縁抵抗変化メモリ(Insulator Resistance Change Memory)を含む。
【0015】
図1(B)は、
図1(A)に示したメモリシステム100をより具体的に示すための図であって、
図1(B)のメモリシステム100は、汎用レジスタ(General Resister)110、アドレス変換ユニット(Address Translation Unit)120、ページテーブルワークユニット(Page Table Walk Unit)130、インターフェース(Interface)140、及びメモリ150を含む。この際、汎用レジスタ110は、
図1(A)に示したCPU250の内部に含まれ、アドレス変換ユニット120及びページテーブルワークユニット130は、
図1(A)に示したようにMMU200の内部に含まれる。
【0016】
メモリシステム100は、携帯用端末機、デジタルカメラ、ノート型パソコン、又はPC(Personal Computer)、携帯電話(cellular phone)、又はPDA(Personal Digital Assistants)のような各種電子機器などに該当するが、これらの電子機器に限定されるものではない。
【0017】
メモリシステム100はページ化されており、データは、一般的にページと称されるメモリの一定長ブロックにグループ化される。例えば、メモリの最小アドレス単位がバイトの場合、順次アドレスセットは順次アドレスを有する複数のバイトから構成され、ページは、特定数のバイトで構成される順次アドレスセットのブロックとして定義される。
【0018】
前記ページのそれぞれは、2の累乗個のバイトで構成できる。即ち、各ページのサイズは例えば、2
12=4096バイト(4KBと略記される)である。
【0019】
メモリシステム100のメモリアドレッシングは、ページング(paging)を用いて仮想メモリを具現できる。ページングを利用する場合、仮想アドレス空間は、ページ(page)と称される固定されたサイズのブロックに分割され、それぞれのページは、任意の物理的アドレスにマッピング(又は、変換)される。例えば、メモリシステム100は、ページテーブルワークユニット130による所定のメモリシステムの運用方法(又は、アルゴリズム)に従って、ページテーブル(Page Table)152を用いて仮想アドレス−物理的アドレスに対する現在のマッピングを決定及び保持する。
【0020】
ページテーブル152は、メモリ150内に存在するが、ページング変換を加速するために生成された仮想アドレス−物理的アドレス変換機能の一部は、後述のTLB(Translation Lookaside Buffer)122内に、又は後述のTIB(Translation Information Buffer)132に保存される。
【0021】
このような変換されたメモリアドレスは、本明細書では物理的メモリアドレスとして説明したが、他の実施形態で、このような変換されたメモリアドレスは、他の用途に利用されうる。例えば、物理的アドレスを得る前に、このような変換されたメモリアドレスに対して追加的な変換が実行可能である。
【0022】
また、本発明の一実施形態は、仮想メモリアドレス空間の変換に関連して説明したが、他の実施形態では、本発明を変形して他のタイプのアドレスの変換も行われうる。
【0023】
メモリシステム100では、仮想アドレス空間と物理的アドレス空間との間にマッピングが行われる。例えば、仮想アドレス空間と物理的アドレス空間は、いずれもページに分けられて、仮想ページ番号情報を物理的ページ番号情報にマッピングし、仮想アドレスの下位Nビットを物理的ページ番号に連結することによって、物理的アドレスへの仮想アドレスからのマッピングが達成される。
【0024】
即ち、仮想及び当該物理的アドレスは、常に同じ下位ビット数Nを有し、ここで、Nは、ページサイズ(例えば、Lバイトとする)に対して2を基底とするlogを取った値、log
2Lである。従って、仮想アドレス空間と物理的アドレス空間は、連続したアドレスからなるページ単位のブロックに分割され、各仮想アドレスは、仮想ページ番号情報を提供し、各当該物理的ページ番号情報は特定ページの、メモリ150内での位置を指示する。
【0025】
メモリ150のページテーブル152は、メモリシステム100のあらゆる仮想ページ番号に対応する物理的ページ番号情報を含む。言い換えれば、仮想アドレス空間内のあらゆる仮想ページの各々について、その仮想ページのアドレス情報と対応する物理的ページのアドレス情報との間のマッピング情報を含む。
【0026】
図6に示すように、ページテーブル152は、複数のページテーブルエントリー154を含み、それぞれのページテーブルエントリー154は、特定仮想アドレス情報に対応するメモリ150の物理的ページ156を指示する。
【0027】
アドレス変換ユニット120は、TLB122を含み、ページテーブルワークユニット130は、TIB132を含む。
汎用レジスタ110は、複数のアドレスレジスタを含み、
図1(B)では、その一例に該当するアドレスレジスタ112を図示する。
【0028】
図1(B)を参照すると、アドレスレジスタ112は、下位ビットにページオフセット情報を含み、上位ビットに仮想ページ番号情報を含む。この際、前記仮想ページ番号情報は、メモリの複数のページのうち、特定ページを指定する情報に該当し、前記ページオフセット情報は、前記特定ページの中の特定位置を指定する情報に該当する。
【0029】
例えば、アドレスレジスタ112が、32ビットレジスタである場合、下位の第0ないし第9ビットは、ページオフセット情報を含み、上位の第10ないし第31ビットは、仮想ページ番号情報を含む。
【0030】
アドレスレジスタ112は、アドレス変換ユニット120に仮想アドレスを提供する。アドレス変換ユニット120は、TLB122を検索して、TLBエントリー(TLB Entry)124のいずれかがアドレスレジスタ112によって提供された仮想アドレスとマッチングするタグTAGを有するか否かを判断する。
上記TLB122の検索に際しては、後述するように、ページテーブルワークユニット130から伝達された仮想アドレス管理サイズに従って複数のTLBエントリーを検索する。
【0031】
該検索結果、TLBヒット(hit)である場合、即ちTLBミス(miss)でない場合、具体的には、アドレスレジスタ112の仮想アドレスとマッチングするタグTAGを有するTLBエントリーが存在する場合、アドレス変換ユニット120は当該TLB122から物理的アドレスを検出し、メモリ150にアクセスしてページテーブル152の検索が行われる。
【0032】
該検索結果、TLBミス(miss)である場合、即ち、アドレスレジスタ112の仮想アドレスとマッチングするタグTAGを有するTLBエントリー124が存在しない場合、アドレス変換ユニット120は、ページテーブルワークユニット130を通じてメモリ150にアクセスしてページテーブル152の検索が行われる。
【0033】
TLB122は、複数のTLBエントリーを含み、
図2及び
図3には、前記複数のTLBエントリーの一例であるTLBエントリー124が示される。TLBエントリー124は、仮想ページ番号情報を含むタグTAG、物理的ページ番号情報を含むデータDATAを含む。また、TLBエントリー124は、破線で示したように、読み取り/書き込みのようなメモリ属性(Memory Attributes)をさらに含みうる。
【0034】
図1(B)では、アドレス変換ユニット120がMMU200の内部に含まれる場合を示したが、汎用レジスタ110及びページテーブルワークユニット130と共にCPU250の内部に含まれうる。
【0035】
ページテーブルワークユニット130は、TIB132を含む。TIB132は、前記生成された物理的アドレス情報を保存する。この際、TIB132は、複数のTIBエントリー(TIB Entry)を含み、その一例であるTIBエントリー134を、
図4に示す。
【0036】
ページテーブルワークユニット130は、TLBミスである場合、複数のTIBエントリー134を含むTIB132を検索して、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断し、連続的マッピング領域にあるならば、当該連続的マッピング領域によって仮想アドレス管理サイズを調整して、アドレス変換ユニット120にこれを伝達する。以後、アドレス変換ユニット120は、前記調整された仮想アドレス管理サイズに従ってTLBエントリー124を割り当てる。
【0037】
例えば、仮想アドレス管理サイズが4KBであれば、通常、アドレス変換ユニット120は、4KB単位でTLBエントリー124を割り当ててデータを検索するが、本発明の一実施形態によれば、ページテーブルワークユニット130は、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否か、即ち、既存のTIBエントリー134のいずれかの物理的アドレス又は物理的アドレスマッピング領域に連続するか否か、を、前記仮想ページエンドアドレスを用いて判断する。
当該物理的アドレスが連続的マッピング領域にある場合、ページテーブルワークユニット130は、当該連続的マッピング領域によって、即ち、当該物理的アドレスを含むように当該連続的マッピング領域を拡大し、当該拡大された連続的マッピング領域に合わせて、前記仮想アドレス管理サイズを調整(例えば、4KBを1MBに拡大調整)して当該TIBエントリー134をアップデートし、これをアドレス変換ユニット120に伝達し、アドレス変換ユニット120は、前記調整された仮想アドレス管理サイズに従ってTLBエントリー124を割り当て、以後このTLBエントリーを用いてデータを検索する。
【0038】
仮想アドレスに対応する物理的アドレスが連続的マッピング領域にない場合は、TIB132は、メモリ150にアクセスする。
図5を参照すると、TIBエントリー134は、仮想ページ開始アドレス(VPSA、Virtual Page Start Address)、仮想ページエンドアドレス(VPEA、Virtual Page End Address)、及び物理的アドレス情報(PPBA、Physical Page Basic Address)を保存し、メモリ150にアクセスして持って来た物理的アドレス情報とTIBエントリーに含まれる仮想アドレスに対応する物理的アドレス情報とが連続的マッピング領域をなすか否かを仮想ページエンドアドレスVPEAを用いて確認できる。
【0039】
ページテーブルワークユニット130は、連続的マッピング領域によって、仮想アドレス管理サイズを調整する場合、前記調整された仮想アドレス管理サイズ情報を保存し、TLB122にこれを伝達して保存させることもできる。
【0040】
例えば、TLBミスの場合、ページテーブルワークユニット130がメモリ150のページテーブル152にアクセスして持って来た物理的アドレス情報が既に保存している物理的アドレス情報と連続的マッピング領域をなすと判断される場合、ページテーブルワークユニット130は、既存TIBエントリー134を更新すると共に、既存仮想アドレス管理サイズを新たな仮想アドレス管理サイズに調整/アップデートして保存する。
【0041】
また、既に保存されたTIBエントリー134によってTIB132の保存空間が一杯である場合には、ページテーブルワークユニット130は、既存情報のうち、特定情報、例えば、最も小さなサイズの仮想アドレス管理サイズ情報を有するTIBエントリー134、を削除し、調整されアップデートされた仮想アドレス管理サイズを保存する。
【0042】
図6は、
図1(B)のメモリを説明するための図である。
図6を参照すると、メモリ150は、ページテーブル152、及び複数のページ156を含む。
ページテーブル152は、複数のページテーブルエントリーを含み、その一例であるページテーブルエントリー(Page Table Entry)154を図示する。
【0043】
ページテーブルエントリー154は、仮想アドレスに対応するメモリ150の物理的ページ156を指示する。例えば、ページテーブルエントリー154は、ページの物理アドレスと共に当該ページについてのアクセス情報を保存する。
【0044】
図7は、本発明の一実施形態によるメモリシステムの運用方法を説明する図である。
図7のメモリシステムの運用方法は、
図1(B)に示したメモリシステム100によって行われる。
【0045】
図1(A)(B)ないし
図7を参照すると、アドレス変換ユニット120は、TLBミスである場合か否か、即ち、アドレスレジスタ112の仮想アドレスに対応する物理的アドレスを含むTLBエントリー124をTLB122から探し出すことができなかった場合か否かを判断する(ステップS110)。
【0046】
該判断結果、TLBミスでない場合、即ちTLBヒットである場合、探し出したTLBエントリー124から当該仮想アドレスに対応する物理的アドレスを検索する(ステップS120)。
【0047】
該判断結果、TLBミスであれば、ページテーブルワークユニット130は、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断する(ステップS130)。
【0048】
該判断結果、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にない場合、ページテーブルワークユニット130は、メモリ150にアクセスしてページテーブル152を検索する(ステップS140)。
【0049】
該判断結果、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、ページテーブルワークユニット130は、当該連続的マッピング領域によって、仮想アドレス管理サイズを調整して、アドレス変換ユニット120に伝達する(ステップS150)。例えば、既存の前記仮想アドレス管理サイズが4KBである場合、連続的マッピング領域によって、マッピング領域が当初の4KBから拡大されて、当該連続的マッピング領域が例えば1MBになる場合には、ページテーブルワークユニット130は、前記仮想アドレス管理サイズを1MBに調整して、アドレス変換ユニット120に伝達し、アドレス変換ユニット120は、1MB単位でTLBエントリー124を割り当ててデータを検索する。
【0050】
これにより、本発明の一実施形態によるメモリシステムの運用方法によれば、連続的マッピング領域の場合に、一度にメモリが割り当てられることができて、メモリ150にアクセスすることを減らすことができるために、4KB単位でのみ割り当てられる場合に比べて、システムの性能がさらに効率的である。
【0051】
本発明は、またコンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
【0052】
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、また、本発明による客体情報推定方法を行うためのプログラムコードは、キャリアウェーブ(例えば、インターネットを通じる伝送)の形態で伝送することもできる。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードが保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に具現される。
【0053】
本発明は、図面に示した一実施形態を参照して説明したが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。従って、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されるべきである。