JP2012113721A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2012113721A
JP2012113721A JP2011257814A JP2011257814A JP2012113721A JP 2012113721 A JP2012113721 A JP 2012113721A JP 2011257814 A JP2011257814 A JP 2011257814A JP 2011257814 A JP2011257814 A JP 2011257814A JP 2012113721 A JP2012113721 A JP 2012113721A
Authority
JP
Japan
Prior art keywords
address
virtual address
memory
virtual
page table
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
JP2011257814A
Other languages
English (en)
Other versions
JP5945403B2 (ja
Inventor
Hyon-Seon Ahn
ヒョン 宣 安
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2012113721A publication Critical patent/JP2012113721A/ja
Application granted granted Critical
Publication of JP5945403B2 publication Critical patent/JP5945403B2/ja
Active 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】物理的アドレス空間が連続する連続的マッピング領域に対する場合に、一度でメモリを割り当てることにより、CPUからメインメモリへのアクセス回数を低減できるメモリシステムを提供する。
【解決手段】仮想アドレスを入力されて、仮想アドレスとマッチングするTLBエントリーをTLB中から検索するアドレス変換ユニットと、アドレス変換ユニットと連結され、仮想アドレスとマッチングするTLBエントリーがない場合、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、を含む。
【選択図】図1

Description

本発明は、メモリシステムに係り、より具体的には、メモリシステムとしての性能低下を軽減しうるメモリシステムに関する。
システム内のプロセッサは、メモリマッピング(memory mapping)を用いて仮想アドレスを物理的アドレスにマッピングする。例えば、プロセッサの実行ユニットによって生成されたアドレス空間は、仮想アドレス空間と称され、システム上で利用可能なハードウェアメモリ内の位置に対応するアドレス空間は、物理的アドレス空間と称される。
通常のメモリシステムの運用方法によればCPUからメインメモリへのアクセスが、物理的アドレス空間が連続的な場合にも、一律の固定された仮想アドレス管理サイズ(例えば、4KB)でなされるので、CPUからメインメモリへのアクセス回数が増加してシステムの性能に負担を与えるという問題点がある。
本発明が解決しようとする課題は、物理的アドレス空間が連続する連続的マッピング領域に対する場合に、一度でメモリを割り当てることにより、CPUからメインメモリへのアクセス回数を低減できるメモリシステムを提供することにある。
本発明によるメモリシステムは、仮想アドレスを入力されて、前記仮想アドレスとマッチングするTLBエントリーをTLB(Translation Lookaside Buffer)中から検索するアドレス変換ユニットと、前記アドレス変換ユニットと連結され、前記仮想アドレスとマッチングするTLBエントリーがない場合、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、を含むことを特徴とする。
前記ページテーブルワークユニットは、前記判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記連続的マッピング領域によって仮想アドレス管理サイズを調整しうる。
また、前記ページテーブルワークユニットは、前記調整された仮想アドレス管理サイズを前記アドレス変換ユニットに伝達しうる。
また、前記アドレス変換ユニットは、前記調整された仮想アドレス管理サイズに従って前記TLBエントリーを割り当てて以後のデータを検索しうる。
また、本メモリシステムは、メモリをさらに含みうる。
また、前記ページテーブルワークユニットは、インターフェースを経由して、前記メモリにアクセスし、その結果持ってきた前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記仮想アドレス管理サイズを調整しうる。
また、前記メモリは、前記仮想アドレスを物理的アドレスにマッピングするページテーブルを含みうる。
また、前記ページテーブルワークユニットは、複数のTIBエントリーからなるTIB(Translation Information Buffer)を含み、前記TIBエントリーは、仮想ページスタートアドレス、仮想ページエンドアドレス、及び物理的アドレス情報を含みうる。
また、前記ページテーブルワークユニットは、前記メモリにアクセスして持って来た物理的アドレス情報と前記仮想アドレスに対応する物理的アドレス情報とが連続的マッピング領域にあるか否かを、前記仮想ページエンドアドレスを用いて判断しうる。
また、前記ページテーブルワークユニットは、前記仮想アドレス管理サイズ及び前記調整された仮想アドレス管理サイズを保存しうる。
また、本メモリシステムは、前記アドレス変換ユニットに仮想アドレスを提供する汎用レジスタを含みうる。
また、前記汎用レジスタは、前記仮想アドレスを発生させる複数のアドレスレジスタを含みうる。
本発明によるメモリシステムは、仮想アドレスを発生させるCPUと、前記仮想アドレスを物理的アドレスにマッピングするページテーブルを含むメモリと、前記CPUの前記メモリへのアクセスを管理し、前記CPUから前記仮想アドレスを入力されて前記物理的アドレスにマッピングするMMU(メモリ管理ユニット)と、を含み、前記MMUは、前記メモリにアクセスしうる。
前記MMUは、前記仮想アドレスを入力されて、前記仮想アドレスとマッチングするTLBエントリーを検索するアドレス変換ユニットと、前記アドレス変換ユニットと連結され、前記仮想アドレスとマッチングするTLBエントリーがない場合、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、を含む。
前記ページテーブルワークユニットは、前記判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、当該連続的マッピング領域によって、前記仮想アドレス管理サイズを調整し、前記調整された仮想アドレス管理サイズに従ってTLBエントリーを割り当ててデータを検索しうる。
また、前記ページテーブルワークユニットは、インターフェースを経由して前記メモリにアクセスしうる。
本発明の一実施形態によるメモリシステムの運用方法は、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断する段階と、該判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、当該連続的マッピング領域によって仮想アドレス管理サイズを調整する段階と、を含みうる。
また、前記メモリシステムの運用方法は、前記判断する段階以前に、前記仮想アドレスに対応する物理的アドレスを含むTLBエントリーを検索する段階をさらに含みうる。
また、前記メモリシステムの運用方法は、前記調整された仮想アドレス管理サイズに基づいてTLBエントリーを割り当てる段階を含みうる。
また、前記メモリシステムの運用方法は、前記TLBエントリーを検索する段階以前に、前記仮想アドレスを発生させる段階を含みうる。
また、調整前の仮想アドレス管理サイズは、4KBでありうる。
本発明によるメモリシステムでは、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するので、物理的アドレスが連続的マッピング領域にある場合、一度でメモリを割り当てることにより、CPUからメインメモリへのアクセス回数を低減できる。
本発明の詳細な説明で引用する図面がより容易に理解されるように、各図面の簡単な説明をここに提供する。
(A)は、本発明の一実施形態によるメモリシステムを示す図であり、(B)は、本発明の一実施形態によるメモリシステムをより具体的に示す図である。 図1(B)のTLBを説明するための図である。 図2のTLBエントリーを説明するための図である。 図1(B)のTIBを説明するための図である。 図4のTIBエントリーを説明するための図である。 図1(B)のメモリを説明するための図である。 本発明の一実施形態によるメモリシステムの運用方法を説明する図である。
以下、添付図面を参照しながら本発明の望ましい実施形態を説明することによって、本発明を詳しく説明する。各図面に付された同じ参照符号は、同じ部材を表わす。
図1(A)は、本発明の一実施形態によるメモリシステムを示す図であり、図1(B)は、本発明の一実施形態によるメモリシステムをより具体的に示す図である。図2は、図1(B)のTLBを説明するための図であり、図3は、図2のTLBエントリー(Entry)を説明するための図である。図4は、図1(B)のTIBを説明するための図であり、図5は、図4のTIBエントリーを説明するための図である。
図1(A)を参照すると、メモリシステム100は、CPU(Central Processing Unit)250、MMU(Memory Management Unit、メモリ管理ユニット)200、及びメインメモリ(以下、単にメモリという)150を含む。
CPU250が、仮想アドレス(Virtual Address)を発生すると、MMU200は、前記仮想アドレスを物理的アドレスにマッピングしてメモリ150にアクセスする。
メモリ150は、前記仮想アドレスと物理的アドレスとを連結するテーブルであるページテーブル152を含む。
メモリ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)を含む。
図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の内部に含まれる。
メモリシステム100は、携帯用端末機、デジタルカメラ、ノート型パソコン、又はPC(Personal Computer)、携帯電話(cellular phone)、又はPDA(Personal Digital Assistants)のような各種電子機器などに該当するが、これらの電子機器に限定されるものではない。
メモリシステム100はページ化されており、データは、一般的にページと称されるメモリの一定長ブロックにグループ化される。例えば、メモリの最小アドレス単位がバイトの場合、順次アドレスセットは順次アドレスを有する複数のバイトから構成され、ページは、特定数のバイトで構成される順次アドレスセットのブロックとして定義される。
前記ページのそれぞれは、2の累乗個のバイトで構成できる。即ち、各ページのサイズは例えば、212=4096バイト(4KBと略記される)である。
メモリシステム100のメモリアドレッシングは、ページング(paging)を用いて仮想メモリを具現できる。ページングを利用する場合、仮想アドレス空間は、ページ(page)と称される固定されたサイズのブロックに分割され、それぞれのページは、任意の物理的アドレスにマッピング(又は、変換)される。例えば、メモリシステム100は、ページテーブルワークユニット130による所定のメモリシステムの運用方法(又は、アルゴリズム)に従って、ページテーブル(Page Table)152を用いて仮想アドレス−物理的アドレスに対する現在のマッピングを決定及び保持する。
ページテーブル152は、メモリ150内に存在するが、ページング変換を加速するために生成された仮想アドレス−物理的アドレス変換機能の一部は、後述のTLB(Translation Lookaside Buffer)122内に、又は後述のTIB(Translation Information Buffer)132に保存される。
このような変換されたメモリアドレスは、本明細書では物理的メモリアドレスとして説明したが、他の実施形態で、このような変換されたメモリアドレスは、他の用途に利用されうる。例えば、物理的アドレスを得る前に、このような変換されたメモリアドレスに対して追加的な変換が実行可能である。
また、本発明の一実施形態は、仮想メモリアドレス空間の変換に関連して説明したが、他の実施形態では、本発明を変形して他のタイプのアドレスの変換も行われうる。
メモリシステム100では、仮想アドレス空間と物理的アドレス空間との間にマッピングが行われる。例えば、仮想アドレス空間と物理的アドレス空間は、いずれもページに分けられて、仮想ページ番号情報を物理的ページ番号情報にマッピングし、仮想アドレスの下位Nビットを物理的ページ番号に連結することによって、物理的アドレスへの仮想アドレスからのマッピングが達成される。
即ち、仮想及び当該物理的アドレスは、常に同じ下位ビット数Nを有し、ここで、Nは、ページサイズ(例えば、Lバイトとする)に対して2を基底とするlogを取った値、logLである。従って、仮想アドレス空間と物理的アドレス空間は、連続したアドレスからなるページ単位のブロックに分割され、各仮想アドレスは、仮想ページ番号情報を提供し、各当該物理的ページ番号情報は特定ページの、メモリ150内での位置を指示する。
メモリ150のページテーブル152は、メモリシステム100のあらゆる仮想ページ番号に対応する物理的ページ番号情報を含む。言い換えれば、仮想アドレス空間内のあらゆる仮想ページの各々について、その仮想ページのアドレス情報と対応する物理的ページのアドレス情報との間のマッピング情報を含む。
図6に示すように、ページテーブル152は、複数のページテーブルエントリー154を含み、それぞれのページテーブルエントリー154は、特定仮想アドレス情報に対応するメモリ150の物理的ページ156を指示する。
アドレス変換ユニット120は、TLB122を含み、ページテーブルワークユニット130は、TIB132を含む。
汎用レジスタ110は、複数のアドレスレジスタを含み、図1(B)では、その一例に該当するアドレスレジスタ112を図示する。
図1(B)を参照すると、アドレスレジスタ112は、下位ビットにページオフセット情報を含み、上位ビットに仮想ページ番号情報を含む。この際、前記仮想ページ番号情報は、メモリの複数のページのうち、特定ページを指定する情報に該当し、前記ページオフセット情報は、前記特定ページの中の特定位置を指定する情報に該当する。
例えば、アドレスレジスタ112が、32ビットレジスタである場合、下位の第0ないし第9ビットは、ページオフセット情報を含み、上位の第10ないし第31ビットは、仮想ページ番号情報を含む。
アドレスレジスタ112は、アドレス変換ユニット120に仮想アドレスを提供する。アドレス変換ユニット120は、TLB122を検索して、TLBエントリー(TLB Entry)124のいずれかがアドレスレジスタ112によって提供された仮想アドレスとマッチングするタグTAGを有するか否かを判断する。
上記TLB122の検索に際しては、後述するように、ページテーブルワークユニット130から伝達された仮想アドレス管理サイズに従って複数のTLBエントリーを検索する。
該検索結果、TLBヒット(hit)である場合、即ちTLBミス(miss)でない場合、具体的には、アドレスレジスタ112の仮想アドレスとマッチングするタグTAGを有するTLBエントリーが存在する場合、アドレス変換ユニット120は当該TLB122から物理的アドレスを検出し、メモリ150にアクセスしてページテーブル152の検索が行われる。
該検索結果、TLBミス(miss)である場合、即ち、アドレスレジスタ112の仮想アドレスとマッチングするタグTAGを有するTLBエントリー124が存在しない場合、アドレス変換ユニット120は、ページテーブルワークユニット130を通じてメモリ150にアクセスしてページテーブル152の検索が行われる。
TLB122は、複数のTLBエントリーを含み、図2及び図3には、前記複数のTLBエントリーの一例であるTLBエントリー124が示される。TLBエントリー124は、仮想ページ番号情報を含むタグTAG、物理的ページ番号情報を含むデータDATAを含む。また、TLBエントリー124は、破線で示したように、読み取り/書き込みのようなメモリ属性(Memory Attributes)をさらに含みうる。
図1(B)では、アドレス変換ユニット120がMMU200の内部に含まれる場合を示したが、汎用レジスタ110及びページテーブルワークユニット130と共にCPU250の内部に含まれうる。
ページテーブルワークユニット130は、TIB132を含む。TIB132は、前記生成された物理的アドレス情報を保存する。この際、TIB132は、複数のTIBエントリー(TIB Entry)を含み、その一例であるTIBエントリー134を、図4に示す。
ページテーブルワークユニット130は、TLBミスである場合、複数のTIBエントリー134を含むTIB132を検索して、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断し、連続的マッピング領域にあるならば、当該連続的マッピング領域によって仮想アドレス管理サイズを調整して、アドレス変換ユニット120にこれを伝達する。以後、アドレス変換ユニット120は、前記調整された仮想アドレス管理サイズに従ってTLBエントリー124を割り当てる。
例えば、仮想アドレス管理サイズが4KBであれば、通常、アドレス変換ユニット120は、4KB単位でTLBエントリー124を割り当ててデータを検索するが、本発明の一実施形態によれば、ページテーブルワークユニット130は、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否か、即ち、既存のTIBエントリー134のいずれかの物理的アドレス又は物理的アドレスマッピング領域に連続するか否か、を、前記仮想ページエンドアドレスを用いて判断する。
当該物理的アドレスが連続的マッピング領域にある場合、ページテーブルワークユニット130は、当該連続的マッピング領域によって、即ち、当該物理的アドレスを含むように当該連続的マッピング領域を拡大し、当該拡大された連続的マッピング領域に合わせて、前記仮想アドレス管理サイズを調整(例えば、4KBを1MBに拡大調整)して当該TIBエントリー134をアップデートし、これをアドレス変換ユニット120に伝達し、アドレス変換ユニット120は、前記調整された仮想アドレス管理サイズに従ってTLBエントリー124を割り当て、以後このTLBエントリーを用いてデータを検索する。
仮想アドレスに対応する物理的アドレスが連続的マッピング領域にない場合は、TIB132は、メモリ150にアクセスする。
図5を参照すると、TIBエントリー134は、仮想ページ開始アドレス(VPSA、Virtual Page Start Address)、仮想ページエンドアドレス(VPEA、Virtual Page End Address)、及び物理的アドレス情報(PPBA、Physical Page Basic Address)を保存し、メモリ150にアクセスして持って来た物理的アドレス情報とTIBエントリーに含まれる仮想アドレスに対応する物理的アドレス情報とが連続的マッピング領域をなすか否かを仮想ページエンドアドレスVPEAを用いて確認できる。
ページテーブルワークユニット130は、連続的マッピング領域によって、仮想アドレス管理サイズを調整する場合、前記調整された仮想アドレス管理サイズ情報を保存し、TLB122にこれを伝達して保存させることもできる。
例えば、TLBミスの場合、ページテーブルワークユニット130がメモリ150のページテーブル152にアクセスして持って来た物理的アドレス情報が既に保存している物理的アドレス情報と連続的マッピング領域をなすと判断される場合、ページテーブルワークユニット130は、既存TIBエントリー134を更新すると共に、既存仮想アドレス管理サイズを新たな仮想アドレス管理サイズに調整/アップデートして保存する。
また、既に保存されたTIBエントリー134によってTIB132の保存空間が一杯である場合には、ページテーブルワークユニット130は、既存情報のうち、特定情報、例えば、最も小さなサイズの仮想アドレス管理サイズ情報を有するTIBエントリー134、を削除し、調整されアップデートされた仮想アドレス管理サイズを保存する。
図6は、図1(B)のメモリを説明するための図である。図6を参照すると、メモリ150は、ページテーブル152、及び複数のページ156を含む。
ページテーブル152は、複数のページテーブルエントリーを含み、その一例であるページテーブルエントリー(Page Table Entry)154を図示する。
ページテーブルエントリー154は、仮想アドレスに対応するメモリ150の物理的ページ156を指示する。例えば、ページテーブルエントリー154は、ページの物理アドレスと共に当該ページについてのアクセス情報を保存する。
図7は、本発明の一実施形態によるメモリシステムの運用方法を説明する図である。図7のメモリシステムの運用方法は、図1(B)に示したメモリシステム100によって行われる。
図1(A)(B)ないし図7を参照すると、アドレス変換ユニット120は、TLBミスである場合か否か、即ち、アドレスレジスタ112の仮想アドレスに対応する物理的アドレスを含むTLBエントリー124をTLB122から探し出すことができなかった場合か否かを判断する(ステップS110)。
該判断結果、TLBミスでない場合、即ちTLBヒットである場合、探し出したTLBエントリー124から当該仮想アドレスに対応する物理的アドレスを検索する(ステップS120)。
該判断結果、TLBミスであれば、ページテーブルワークユニット130は、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断する(ステップS130)。
該判断結果、当該仮想アドレスに対応する物理的アドレスが連続的マッピング領域にない場合、ページテーブルワークユニット130は、メモリ150にアクセスしてページテーブル152を検索する(ステップS140)。
該判断結果、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、ページテーブルワークユニット130は、当該連続的マッピング領域によって、仮想アドレス管理サイズを調整して、アドレス変換ユニット120に伝達する(ステップS150)。例えば、既存の前記仮想アドレス管理サイズが4KBである場合、連続的マッピング領域によって、マッピング領域が当初の4KBから拡大されて、当該連続的マッピング領域が例えば1MBになる場合には、ページテーブルワークユニット130は、前記仮想アドレス管理サイズを1MBに調整して、アドレス変換ユニット120に伝達し、アドレス変換ユニット120は、1MB単位でTLBエントリー124を割り当ててデータを検索する。
これにより、本発明の一実施形態によるメモリシステムの運用方法によれば、連続的マッピング領域の場合に、一度にメモリが割り当てられることができて、メモリ150にアクセスすることを減らすことができるために、4KB単位でのみ割り当てられる場合に比べて、システムの性能がさらに効率的である。
本発明は、またコンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、また、本発明による客体情報推定方法を行うためのプログラムコードは、キャリアウェーブ(例えば、インターネットを通じる伝送)の形態で伝送することもできる。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードが保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に具現される。
本発明は、図面に示した一実施形態を参照して説明したが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。従って、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されるべきである。
本発明は、メモリシステム及びその運用方法関連の技術分野に適用可能である。
100 メモリシステム
110 汎用レジスタ
112 アドレスレジスタ
120 アドレス変換ユニット
122 TLB
124 TLBエントリー
130 ページテーブルワークユニット
132 TIB
134 TIBエントリー
140 インターフェース
150 メモリ
152 ページテーブル
154 ページテーブルエントリー
156 物理的ページ
200 MMU
250 CPU

Claims (10)

  1. 仮想アドレスを入力されて、前記仮想アドレスとマッチングするTLBエントリーをTLB(Translation Lookaside Buffer)中から検索するアドレス変換ユニットと、
    前記アドレス変換ユニットと連結され、前記仮想アドレスとマッチングするTLBエントリーがない場合、仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、
    を含むことを特徴とするメモリシステム。
  2. 前記ページテーブルワークユニットは、
    前記判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記連続的マッピング領域によって、仮想アドレス管理サイズを調整し、
    前記アドレス変換ユニットは、前記調整された仮想アドレス管理サイズに従って前記TLBエントリーを割り当てて以後のデータを検索することを特徴とする請求項1に記載のメモリシステム。
  3. メモリをさらに含み、
    前記ページテーブルワークユニットは、インターフェースを経由して、前記メモリにアクセスし、その結果持ってきた前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記仮想アドレス管理サイズを調整することを特徴とする請求項2に記載のメモリシステム。
  4. 前記メモリは、
    前記仮想アドレスを前記物理的アドレスにマッピングするページテーブルを含むことを特徴とする請求項3に記載のメモリシステム。
  5. 前記ページテーブルワークユニットは、複数のTIBエントリーからなるTIB(Translation Information Buffer)を含み、
    前記TIBエントリーは、仮想ページスタートアドレス、仮想ページエンドアドレス、及び物理的アドレス情報を含み、
    前記メモリにアクセスして持って来た物理的アドレス情報と前記仮想アドレスに対応する物理的アドレス情報とが連続的マッピング領域にあるか否かを、前記仮想ページエンドアドレスを用いて判断することを特徴とする請求項3に記載のメモリシステム。
  6. 前記アドレス変換ユニットに仮想アドレスを提供する汎用レジスタをさらに含むことを特徴とする請求項1に記載のメモリシステム。
  7. 前記汎用レジスタは、
    前記仮想アドレスを発生させる複数のアドレスレジスタを含むことを特徴とする請求項6に記載のメモリシステム。
  8. 仮想アドレスを発生させるCPUと、
    前記仮想アドレスを物理的アドレスにマッピングするページテーブルを含むメモリと、
    前記CPUの前記メモリへのアクセスを管理し、前記CPUから前記仮想アドレスを入力されて前記物理的アドレスにマッピングするMMU(メモリ管理ユニット)と、を含み、
    前記MMUは、前記メモリにアクセス可能であり、
    前記MMUは、前記仮想アドレスを入力されて、前記仮想アドレスとマッチングするTLBエントリーを検索するアドレス変換ユニットと、
    前記アドレス変換ユニットと連結され、前記仮想アドレスとマッチングするTLBエントリーがない場合、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にあるか否かを判断するページテーブルワークユニットと、
    を含むことを特徴とするメモリシステム。
  9. 前記ページテーブルワークユニットは、
    前記判断結果、前記仮想アドレスに対応する物理的アドレスが連続的マッピング領域にある場合、前記連続的マッピング領域によって、前記仮想アドレス管理サイズを調整し、
    前記調整された仮想アドレス管理サイズに従ってTLBエントリーを割り当ててデータを検索することを特徴とする請求項8に記載のメモリシステム。
  10. 前記ページテーブルワークユニットは、インターフェースを経由して前記メモリにアクセスすることを特徴とする請求項9に記載のメモリシステム。
JP2011257814A 2010-11-25 2011-11-25 メモリシステム Active JP5945403B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0118178 2010-11-25
KR1020100118178A KR101707927B1 (ko) 2010-11-25 2010-11-25 메모리 시스템 및 그 운용방법

Publications (2)

Publication Number Publication Date
JP2012113721A true JP2012113721A (ja) 2012-06-14
JP5945403B2 JP5945403B2 (ja) 2016-07-05

Family

ID=46049903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011257814A Active JP5945403B2 (ja) 2010-11-25 2011-11-25 メモリシステム

Country Status (4)

Country Link
US (1) US9015447B2 (ja)
JP (1) JP5945403B2 (ja)
KR (1) KR101707927B1 (ja)
DE (1) DE102011055097A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216642B2 (en) 2013-03-15 2019-02-26 International Business Machines Corporation Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size
US20160103766A1 (en) * 2013-07-01 2016-04-14 Hewlett-Packard Development Company, L.P. Lookup of a data structure containing a mapping between a virtual address space and a physical address space
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11238015A (ja) * 1998-02-24 1999-08-31 Hitachi Ltd プロセッサ装置
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
US20060212675A1 (en) * 2005-03-17 2006-09-21 Sartorius Thomas A Method and system for optimizing translation lookaside buffer entries
US20070094475A1 (en) * 2005-10-20 2007-04-26 Bridges Jeffrey T Caching memory attribute indicators with cached memory data field
US20090019253A1 (en) * 2007-07-12 2009-01-15 Brian Stecher Processing system implementing variable page size memory organization

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216763A (ja) 1992-02-03 1993-08-27 Pfu Ltd 2段tlbを用いたアドレス変換方式
JPH1124995A (ja) 1997-07-03 1999-01-29 Nec Eng Ltd アドレス変換用tlbアクセス制御方式
JP4116346B2 (ja) 2002-07-05 2008-07-09 富士通株式会社 演算処理装置及びそのアドレス変換方法
KR101164420B1 (ko) 2009-04-28 2012-07-12 (주)모토닉 연료 펌프용 모터 구동장치의 mosfet 구동회로

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11238015A (ja) * 1998-02-24 1999-08-31 Hitachi Ltd プロセッサ装置
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
US20060212675A1 (en) * 2005-03-17 2006-09-21 Sartorius Thomas A Method and system for optimizing translation lookaside buffer entries
KR20070113293A (ko) * 2005-03-17 2007-11-28 퀄컴 인코포레이티드 변환 색인 버퍼 엔트리를 최적화하는 방법 및 시스템
JP2008533620A (ja) * 2005-03-17 2008-08-21 クゥアルコム・インコーポレイテッド 変換索引緩衝器のエントリを最適化する方法およびシステム
US20070094475A1 (en) * 2005-10-20 2007-04-26 Bridges Jeffrey T Caching memory attribute indicators with cached memory data field
KR20080063514A (ko) * 2005-10-20 2008-07-04 콸콤 인코포레이티드 캐시된 메모리 데이터를 가진 메모리 속성 표시자의 캐시
JP2009512944A (ja) * 2005-10-20 2009-03-26 クゥアルコム・インコーポレイテッド キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
US20090019253A1 (en) * 2007-07-12 2009-01-15 Brian Stecher Processing system implementing variable page size memory organization
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム

Also Published As

Publication number Publication date
US9015447B2 (en) 2015-04-21
KR101707927B1 (ko) 2017-02-28
DE102011055097A1 (de) 2012-05-31
US20120137105A1 (en) 2012-05-31
CN102567228A (zh) 2012-07-11
KR20120056573A (ko) 2012-06-04
JP5945403B2 (ja) 2016-07-05

Similar Documents

Publication Publication Date Title
US20210374069A1 (en) Method, system, and apparatus for page sizing extension
US9858192B2 (en) Cross-page prefetching method, apparatus, and system
US11048623B2 (en) Memory controller including mapping tables to efficiently process an iteration command and a method of operating the same
US10997078B2 (en) Method, apparatus, and non-transitory readable medium for accessing non-volatile memory
EP3276494B1 (en) Memory space management
CN113934655B (zh) 解决高速缓冲存储器地址二义性问题的方法和装置
US20140115225A1 (en) Cache management based on physical memory device characteristics
US8880845B2 (en) Memory system and operating method thereof
JP2010134956A (ja) 状況切換え環境中におけるアドレス変換技術
JP5945403B2 (ja) メモリシステム
JP2022063466A (ja) メモリシステム及び情報処理システム
CN115061955A (zh) 处理器、电子设备、地址翻译方法以及缓存页表项方法
CN110362509B (zh) 统一地址转换方法与统一地址空间
US20130339658A1 (en) Managing page table entries
JP6132010B2 (ja) 制御装置、制御プログラム、および制御方法
JP2024510127A (ja) ページ再マッピングおよびローテーションによるアドレス空間配置のランダム化エントロピーの増大
CN111897748A (zh) 一种映射关系存储方法、读取方法、装置、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160223

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160530

R150 Certificate of patent or registration of utility model

Ref document number: 5945403

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

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