JP5196249B2 - キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム - Google Patents

キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム Download PDF

Info

Publication number
JP5196249B2
JP5196249B2 JP2008151682A JP2008151682A JP5196249B2 JP 5196249 B2 JP5196249 B2 JP 5196249B2 JP 2008151682 A JP2008151682 A JP 2008151682A JP 2008151682 A JP2008151682 A JP 2008151682A JP 5196249 B2 JP5196249 B2 JP 5196249B2
Authority
JP
Japan
Prior art keywords
page
physical
memory
address
color
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.)
Active
Application number
JP2008151682A
Other languages
English (en)
Other versions
JP2009301102A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008151682A priority Critical patent/JP5196249B2/ja
Publication of JP2009301102A publication Critical patent/JP2009301102A/ja
Application granted granted Critical
Publication of JP5196249B2 publication Critical patent/JP5196249B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明はキャッシュメモリを備えたメモリシステム、その方法及びそのプログラムに関する。
プロセッサ、キャッシュメモリおよび主メモリ(以下主メモリを単に「メモリ」とする。)を有するコンピュータシステムにおいて、キャッシュメモリ(以下キャッシュメモリを単に「キャッシュ」とする。)を有効に利用して、メモリの動作速度の遅さから発生するレイテンシを隠蔽する方法は、アプリケーションソフトウェアの性能向上に重要であることが知られている。
インデックスメモリを用いるキャッシュ方式である物理インデックスキャッシュ方式では、物理アドレスによってデータがキャッシュ上に格納されるときの位置(インデックス)が決められる。
また、物理ページ管理手法としてページカラーリングという手法がある。ページカラーリングによるページ管理では、OS(Operating System)による論理アドレスと物理アドレスのマッピングはページと呼ばれる単位(一般的に4KBがよく用いられる。)で行われる。また、キャッシュ上で同じ位置に格納されるページは同じカラー番号を持つと表される。
図1に、物理アドレス空間とキャッシュの関係の例を示す。図中の物理アドレス空間中のカッコ外の番号はページ番号を表わし、カッコ内の番号はカラー番号を表す。ページ番号は、
ページ番号=アドレス/ページサイズ
であり、
カラー番号=ページ番号%カラー数
である。ここで、「/」は整数除算を、「%」は剰余を表す。
図1に示しているのはカラー数が8の場合の例であり、カラー番号はキャッシュ上の格納位置を示している。図1に示すキャッシュ中の番号はカラー番号を示しており、物理アドレス空間上のページはキャッシュ上の同じカラー番号を持つ場所に格納される。
非特許文献1に記載されているように、このような物理インデックスキャッシュの特徴を利用して、OSによるプロセスの論理アドレスと物理アドレスのマッピング時に、キャッシュの利用効率を高めることが可能であることが知られている(非特許文献1参照)。
また、キャッシュの利用効率を悪化させる現象として、プロセス間のキャッシュ競合がある。プロセス間のキャッシュ競合とは、図2に示すように、複数のプロセスがアクセスするデータが、キャッシュ上の同じ位置に格納される場合に、お互いにデータをキャッシュ上から追い出し合う現象である。このようなキャッシュ競合を削減する方法として、プロセス毎に利用可能なカラー番号を分け、それぞれのプロセスの論理ページには利用可能カラー番号を持つ物理ページのみをマッピングすることで、プロセス毎にキャッシュ上の同じ位置を利用させないようにする方法がある。
図3に、二つのプロセスA,B間のキャッシュ競合を削減するための論理アドレスと物理アドレスのマッピングを示す。プロセスAの論理ページはカラー番号0,1,2,3を持つ物理ページにのみマップされ、プロセスBの論理ページはカラー番号4,5を持つページにのみマップされている。したがって、図4に示すように、二つのプロセスはキャッシュ上の同じ位置を利用しない。
関連する技術として、特許文献1はリアルタイムタスクとその他のタスクでカラー番号を分けることによって、リアルタイムタスクがキャッシュ競合によって性能が下がらないようにする方法を開示している。
特開2000−339220号公報 Kessler他著「PagePlacementAlgorithmsforLargeReal-IndexedCaches」ACM Transactions on Computer Systems, 1992, Vol.4, No.10, pp.338-359
複数のプロセスが動くシステムでは、プロセスの動作に関わる状況が時間とともに変化する。しかし、OSによる論理アドレスと物理アドレスのマッピングを利用したキャッシュ制御は、プロセスへの物理ページの割り当て時に行われるため、プロセスが動作をすることにより生じる状況変化とともに有効性を失っていくという問題がある。
状況変化とともに有効性を失っていく状態の説明として、図3および図4に示したプロセス間のキャッシュ割り当て制御の例において、プロセスの優先度が逆転した場合について図5に示す。図5に示した例では、優先度の逆転によりプロセスBがプロセスAより優先度が高くなったにもかかわらず、プロセスBは少量のキャッシュしか使えないままである。一般に、プロセスが利用するメモリ空間は、各プロセスに割り当てられるキャッシュサイズよりも大きい。そして、プロセスが利用できるキャッシュサイズが大きいほどキャッシュミスが少なくなり、性能が向上する。つまり、図5に示した例では、プロセスBの優先度が高くなったにも関わらず、プロセスBに割り当てられるキャッシュサイズは大きくなっていないので、十分な性能が発揮できないという問題が生じる。
この問題は、プロセスの動作に関わる状況が変化したにもかかわらず、プロセスが利用するカラーが変更されないために生じている。
そこで、本発明はプロセスによるキャッシュの利用状況を効率的にするような、メモリシステム、その方法及びそのプログラムを提供することを目的とする。
本発明の第1の観点によれば、物理アドレスによってキャッシュ上の格納位置が決定されるキャッシュをキャッシュ先とし、メモリ上の一定サイズの領域において論理アドレスと物理アドレスのマッピングの単位となるページ毎にキャッシュ上の格納位置をカラーIDで識別できるメモリシステムであって、異なるカラーが割り当てられている複数の物理アドレスから、メモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成し、前記構成した前記物理アドレス空間上のページ(以下「物理ページ」という。)をマップしている論理アドレス空間上のページ(以下「論理ページ」という。)が、前記マップしている物理ページと同一のメモリ上のページ(以下「メモリページ」という。)にアクセスができ、かつ異なるカラーを持つ他の物理ページをマップするように変更するアドレス変更手段を備えることを特徴とするメモリシステムが提供される。
本発明の第2の観点によれば、物理アドレスによってキャッシュ上の格納位置が決定されるキャッシュをキャッシュ先とし、メモリ上の一定サイズの領域において論理アドレスと物理アドレスのマッピングの単位となるページ毎にキャッシュ上の格納位置をカラーIDで識別できるメモリシステムにおけるメモリ管理方法であって、異なるカラーが割り当てられている複数の物理アドレスから、メモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成し、前記構成した前記物理ページをマップしている論理ページが、前記マップしている物理ページと同一のメモリページにアクセスができ、かつ異なるカラーを持つ他の物理ページをマップするように変更するアドレス変更ステップを備えることを特徴とするメモリ管理方法が提供される。
本発明の第3の観点によれば、物理アドレスによってキャッシュ上の格納位置が決定されるキャッシュをキャッシュ先とし、メモリ上の一定サイズの領域において論理アドレスと物理アドレスのマッピングの単位となるページ毎にキャッシュ上の格納位置をカラーIDで識別できるメモリシステムとしてコンピュータを機能させるためのメモリ管理プログラムであって、異なるカラーが割り当てられている複数の物理アドレスから、メモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成し、前記構成した前記物理ページをマップしている論理ページが、前記マップしている物理ページと同一のメモリページにアクセスができ、かつ異なるカラーを持つ他の物理ページをマップするように変更するアドレス変更手段を備えることを特徴とするメモリシステムとしてコンピュータを機能させるためのメモリ管理プログラムが提供される。
本発明によれば、アプリケーションが利用することが可能なカラーを変更できることから、アプリケーションが利用することが可能なキャッシュサイズを増やし、アプリケーションの実行速度を向上させることが可能となる。
まず、本発明の実施形態の概略を説明する。本発明の実施形態では、
1.異なるカラーの複数の物理アドレスからメモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成する(図6の物理アドレス空間参照)。
2.そして、物理アドレス空間上の或るページ(以下「物理ページ」という。)をマップしている論理アドレス空間上のページ(以下「論理ページ」という。)が、その物理ページと同一のメモリ上のページ(以下「メモリページ」という。)にアクセスできる異なる物理ページをマップするように変更する(図6の変更を示す矢印参照)手段を提供する。
このような構成と手段を用いることで、プロセスに割り当てられている物理ページを異なるカラーを持つ物理ページに変更することができる。これにより、プロセスが利用するカラーを変更できる。したがって、プロセスのキャッシュ利用を制御できるため、本発明の目的を達成することができる。
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
[第1の実施の形態]
本発明の第1の実施の形態は、ハードウェア、物理アドレス空間及びカラー管理部を有する。
図7は、第1の実施の形態が有するハードウェアの構成を示す。本実施の形態では、CPU10と、キャッシュ20とメモリ40の間にアドレス変換部30を有することを特徴とする。アドレス変換部30は、CPU10がメモリ40にアクセスする際に発行した物理アドレスを入力として、メモリ40にアクセスする際のアドレスを生成する機能を有する。
図8は、第1の実施の形態の物理アドレス空間の構成を示す。本実施の形態では、物理アドレス空間上にメモリ40をマップする領域を複数有することを特徴とする。各領域の連続する物理ページは、メモリ40上の連続するページをマップする。各領域にアクセスする際には、アドレス変換部30によって領域毎に異なるアドレス変換が行われ、各領域中の物理アドレスからメモリ40上の同一のアドレスにアクセスができるように変換が行われる。さらに、メモリ40上の同一アドレスにアクセスするための各領域中の物理アドレスのカラーが異なるように変換が行われる。
アドレス変換部30によって行われるアドレス変換についてより具体的に説明する。領域iに対するアドレス変換をfとし、領域i上の物理アドレスxとすると、xを通してアクセスできるメモリ40上のアドレスyは、
y=f(x
である。このとき、
y=f(x
となる領域jが存在するとき、メモリ40上のアドレスyに対して異なる物理アドレスでアクセスすることができる。
一方、物理アドレスxのカラーColor(x)は、
Color(x)=(x/ページサイズ)%カラー数
で求められる。ここで、/は整数除算を、%は剰余を表す。カラー数は、
カラー数=キャッシュサイズ/キャッシュWay数/ページサイズ
である。したがって、
Color(x)!=Color(x
となるように、アドレス変換f,fを決める。ここで、「!=」は同一でないことを表す。
各領域のサイズがメモリサイズに等しく、領域の数がカラー数と等しい場合、メモリ40上の全てのページに全てのカラーでアクセスすることができるため、最もキャッシュ制御に適した形態となる。一方で、物理アドレス空間上に占めるメモリの領域を小さくするために、一部または全部の領域のサイズを小さくしたり、領域の数をカラー数より小さくしたりしても良い。
次に本実施の形態におけるカラー管理部50について説明する。カラー管理部50は、ページテーブルにアクセスする権限を持つソフトウェアによって実現される。そのようなソフトウェアの例としてはOSが挙げられる。このことから、カラー管理部50をOSの一機能として実現する形態が実装例として考えられる。
カラー管理部50は、物理ページをマップしている論理ページが、同一のメモリ40上のページに対応する異なるカラーを持つ物理ページをマップするように変更する機能を持つ。図9は、本実施の形態におけるカラー管理部50の構成を示す。本実施の形態におけるカラー管理部50は、移動先物理ページ決定部51と物理ページ移動部52を有することを特徴とする。
移動先物理ページ決定部51は、移動元物理ページと移動先カラーを指定されて呼び出される。移動先物理ページ決定部51は、複数の領域を持つ物理アドレス空間から、移動元物理ページと同一のメモリページに対応し、かつ、移動先カラーを持つ物理ページである移動先物理ページを決定する機能を有する。
物理ページ移動部52は、移動元物理ページと移動先物理ページを指定されて呼び出される。本実施の形態の物理ページ移動部52は、移動元物理ページをマップしている論理ページが移動先物理ページをマップするように、ページテーブルを書き換える機能を有することを特徴とする。
次に、第1の実施の形態の動作を図面を用いて詳細に説明する。アドレス変換部30が関係するメモリアクセス時の動作と、カラー管理部50が関わる物理ページのカラーを変更する動作の二つの動作について説明する。
アドレス変換部30の構成は上述のよう図7に示されている。更に、図10は、本実施の形態において、メモリアクセスを行う際の動作について説明するための図面である。本図では、領域i上のアドレスxを通してメモリ40上のアドレスyにアクセスする場合の動作を示す。この場合のメモリアクセスは以下のような順序で行われる。なお、MMU(Memory Management Unit)による論理アドレスと物理アドレスの変換までの動作は当業者には明らかであるため、物理アドレスへの変換後から説明する。また、アドレス変換部30での領域iに対する変換をfとする。
CPU10が物理アドレスxを発行する(ステップS101)。
キャッシュ20がアドレスxでアクセスされる。この時のカラーはColor(x)である(ステップS102)。
キャッシュミス等でメモリ40にアクセスが起こるとき、物理アドレスxが発行される(ステップS103)。
アドレス変換部30によりアドレスy=f(x)に変更される(ステップS104)。
メモリ40に対してアドレスyが発行される(ステップS105)。
なお、説明を簡便にするために上記の説明ではキャッシュラインについての説明を省略しているが、キャッシュライン単位でアクセスするために、上記のステップS103で発行されるアドレスをキャッシュラインの先頭アドレスとしても良いことは、当業者には明らかである。
次に、プロセスが利用するカラーを変更するときの動作について図面を用いて詳細に説明する。本実施の形態では、カラー管理部50を、移動元物理ページと移動先カラーを指定して呼び出すことで、カラーの変更を行う。
カラー管理部50が呼び出されると、まずカラー管理部50の移動物理先ページ決定部が動作する。この動作を図11を用いて説明する。
移動先物理ページ決定部51は、移動元物理ページのカラーが移動先カラーと一致するか調べる。一致する場合は移動を行わず、要求元に応答を返す(ステップS201)。
移動元物理ページのカラーが移動先カラーと一致しない場合、移動先物理ページ決定部51は、移動元物理ページが移動可能かを調べる(ステップS202)。
移動元物理ページが移動不可能な場合は、要求元に移動不可能であるという応答を返す(ステップS206)。ここで、移動不可能な場合の例としては、移動元物理ページがOSによりロックされているページである場合が挙げられる。
一方、移動元物理ページが移動可能な場合は、移動元物理ページに対応するメモリページを求める(ステップS203)。
移動先物理ページ決定部51は、ステップS203で求めたメモリページに対して、指定された移動先カラーでアクセスできる物理ページが存在するか調べる(ステップS204)。
指定された移動先カラーでアクセスできる物理ページが存在しない場合は、移動は行わず、要求元に応答を返す(ステップS206)。
一方、指定された移動先カラーでアクセスできる物理ページが存在する場合、そのページを移動先物理ページとして決定する(ステップS205)。
次に、移動元物理ページと移動先物理ページを指定して、物理ページ移動部52が呼び出される。両物理ページは、メモリ上の同じページに対応しているため、移動元ページをマップしている論理ページを、移動先ページをマップするように変更すれば良い。物理ページ移動部52が行うこの動作は以下のように行われる。
(1)移動元物理ページをマップしている論理ページを検索する。
(2)移動元物理ページをマップしている論理ページに対して、対応するページテーブルのエントリを、移動先物理ページをマップするように変更する。
以上の動作により、移動元物理ページをマップしていた論理ページは、移動先カラーを持つ物理ページをマップするように変更される。したがって、プロセスがマップしている物理ページと移動先カラーを指定してカラー管理部50を呼び出すことによって、プロセスが利用するカラーを変更することが可能である。これにより、本発明の目的を達成することができる。このとき、物理ページに対応する論理アドレスは変更されないため、移動元の物理ページをマップしていたプロセスは、カラーが変更されたことを認識する必要はない。
第1の実施の形態を変形した形態として、移動対象として複数の物理ページが指定されるようにしても良い。その場合、それぞれの物理ページを対象として上記の動作が行われる。
第1の実施の形態を変形した形態として、移動先カラーとしてカラー集合が指定されるようにしても良い。カラー集合が複数のカラーを含む場合は、任意のアルゴリズムを用いてその中から移動先カラーを選択して良い。
アドレスからページ番号は一意に求めることができるため、第1の実施の形態を変形した形態として、物理ページ番号の変わりに物理アドレスが指定されても良い。
[第2の実施の形態]
次に、本発明を実施するための第2の最良の形態について図面を参照して詳細に説明する。
図12は、本実施の形態のハードウェアの構成を示す。本実施の形態では、CPU10、キャッシュ20、アドレス変換部30及びメモリ40に加えて、アドレス変換部30が利用するアドレス変換表60を有することを特徴とする。アドレス変換表60は、物理ページとメモリ40ページの組を記録するための表である。アドレス変換部30は、アドレス変換表60を検索することによって、入力された物理アドレスに対応する物理メモリ40上のアドレスを出力する。アドレス変換表60はソフトウェア、ハードウェア又はこれらの組合せにより実現することができる。アドレス変換表60は、CPU10が利用する主記憶装置と同じメモリ40上におかれても良いし、専用のメモリ上におかれても良い。また、ページテーブルに対するTLB(Translation Look-aside Buffer)の様に、高速なメモリでキャッシュされても良い。
図13は、本実施の形態の物理アドレス空間を示す。本実施の形態では、アドレス変換表60を利用することで任意の物理ページを通して任意のメモリページにアクセスすることが可能であるため、物理アドレス空間上のメモリをマップした範囲のサイズを小さくできることを特徴としている。
図14は、本実施の形態のカラー管理部50の構成を示す。本実施の形態のカラー管理部50は、移動先物理ページ決定部51と物理ページ移動部52に加えて、アドレス変換表変更部53を有することを特徴とする。アドレス変換表変更部53は、アドレス変換表60を変更することによって、物理ページとメモリ40ページの対応を変更する機能を有する。本実施の形態では、ページテーブルとアドレス変換表60の両方を変更することによって、異なる物理ページからメモリ40上の同一ページに異なるカラーでアクセスすることを可能とする。
次に、図15を用いて、メモリ40アクセス時のアドレス変換部30の動作を説明する。なお、メモリ40アクセス時のアドレス変換部30の以前の動作およびアドレス変換部30以後の動作は、第1の実施の形態と同様であるため説明を省略する。
アドレス変換部30は、CPU10が発行した物理アドレスのページ番号を求める(ステップS301)。
アドレス変換部30は、アドレス変換表60にステップS301で求めた物理ページに対応するエントリが存在するか検索する(ステップS302)。
対応するエントリが存在する場合は、エントリに記録されているメモリ40上のページ番号に、ページオフセットを加えてメモリ40上のアドレスを求める(ステップS303)。
存在しない場合は、あらかじめ決められたデフォルトの変換方法を用いて変換する(ステップS304)。
上記で求めたメモリ40上のアドレスを発行する(ステップS305)。
次にプロセスの利用するカラーを変更するときの動作について説明する。本実施の形態では、カラー管理部50が、移動元物理ページと移動先カラーを指定して呼び出され、移動元物理ページをマップしている論理ページが、移動先カラーを持つ物理ページをマップするように変更することで、カラーの変更を行う。
まず、図16を用いて、カラー管理部50の移動先物理ページ決定部51の動作を説明する。移動先ページ決定部は、移動元物理ページと移動先カラーを指定して呼び出される。図中ステップS203までの動作は、図11で示した第1の実施の形態と同様であるため、ステップS404から説明する。
移動元ページ決定部は、OSのメモリ管理機能に対して、移動先カラーを持つ空き物理ページを要求する(ステップS404)。OSのメモリ管理機能は、空き物理ページを管理し、要求に対して空き物理ページを割り当てる機能を有する。
移動先カラーを持つ物理ページを取得できなかった場合は、カラーの変更は行わずに要求元に応答を返す。物理ページを取得できた場合は、アドレス変換表変更部53を呼び出して動作を終了する(ステップS405)。
次に、アドレス変換表変更部53の動作を説明する。アドレス変換表変更部53は、移動元物理ページおよび移動先物理ページ決定部51が取得した移動先物理ページを指定して呼び出される。
(1)アドレス変換表変更部53は、アドレス変換表60を検索して、移動元物理ページに対応するメモリページを求める。アドレス変換表60に移動元物理ページに対応するエントリが存在しない場合は、デフォルトの変換を用いて対応するメモリページを求める。このメモリページをページAとする。
(2)アドレス変換表変更部53は、アドレス変換表60を検索して、移動先物理ページに対応するメモリページを求める。(1)同様に、アドレス変換表60に存在しない場合は、デフォルトの変換を用いて対応するメモリページを求める。このメモリページをページBとする。
(3)アドレス変換表変更部53は、移動元物理ページに対応するメモリページをページBに、移動先物理ページに対応するメモリページをページAとするようにアドレス変換表60を変更する。
(4)アドレス変換表変更部53は、物理ページ移動部52を呼び出す。
以上の動作により、移動元物理ページに対応していたメモリページに対して、移動先物理ページを通してアクセスすることが可能となる。また、移動先ページに対応していたメモリページに、移動元物理ページを通してアクセスできるようになる。
次に、物理ページ移動部52の動作を説明する。物理ページ移動部52は、移動元物理ページと移動先物理ページを指定して呼び出される。
(1)物理ページ移動部52は、移動元物理ページをマップしていた論理ページを検索する。
(2)物理ページ移動部52は、検索された論理ページがマップする物理ページが移動先物理ページとなるように、ページテーブルを書き換える。
(3)物理ページ移動部52は、移動元物理ページを解放するように、メモリ管理機能に要求する。
以上の動作により、移動元物理ページをマップしていた論理ページは、移動先カラーを持つ物理ページをマップするように変更される。したがって、この論理ページを利用しているプロセスの利用するカラーが変更される。
本実施の形態では、アドレス変換表60の更新はカラー管理部50が行うため、メモリ管理機能がアドレス変換表60を考慮する必要がないという特徴がある。したがって、本実施の形態は従来のメモリ管理機能に変更を加えることなく実現をすることができるという効果がある。
一方、本実施の形態を変形した形態として、メモリ管理機能がアドレス変換表60の管理を行う場合は、カラー管理部50がメモリ管理機能の提供する機能を用いる形態を取っても良い。
また、第1の実施の形態と同様に、第2の実施の形態を変形した形態として、移動対象として複数の物理ページが指定されても良く、また、移動先カラーとしてカラー集合が指定されても良く、また、物理ページ番号の変わりに物理アドレスが指定されても良い。
本実施の形態では、説明を簡単にするため、アドレス変換表60を用いた物理アドレスとメモリ40上のアドレスの変換はページサイズ単位で行ったが、本実施の形態を変形した形態として、ページと異なるサイズを単位としてアドレスの変換を行っても良い。
[第3の実施の形態]
次に、本発明を実施するための第3の形態について図面を参照して説明する。本実施の形態は、本発明の第1または第2の発明の実施の形態において、カラー管理部50が、論理物理ページ変換部54を更に有すること特徴とする実施の形態である。
図17は、本実施の形態のカラー管理部50の構成を示す。図17では第1の実施の形態のカラー管理部50において、移動先物理ページ決定部51の前に論理物理ページ変換部54を有する場合の例を示している。第2の実施の形態のカラー管理部50において、論理物理ページ変換部54を更に有する場合も、移動先物理ページ決定部51の前に論理物理ページ変換部54を有する構成であることは、この図17から明らかである。
本実施の形態の論理物理ページ変換部54以外の構成については、本発明の第1または第2の発明の実施の形態と同様であるので、ここでは説明を省略する。また、以下の説明が、第1の実施の形態に論理物理ページ変換部54が加わった場合と、第2の実施の形態に論理物理ページ変換部54が加わった場合の両方に関しての説明であることは明らかである。
論理物理ページ変換部54は、論理ページが物理ページをマップしているかを調べ、マップしている場合はその物理ページ番号を問い合わせ元に返す機能を有する。本実施の形態では、カラー管理部50が、論理物理ページ変換部54を有することで、論理ページに対応する物理ページを検出する機能を有するため、カラー変更要求時に、物理ページ番号ではなく論理ページ番号を指定することができることを特徴とする。
図18を用いて、本実施の形態のカラー管理部50の動作を説明する。
本実施の形態では、カラー管理部50に、プロセスを特定する識別子(以降の説明及び各図面においてプロセスIDと表記する。)、移動対象の論理ページ番号及び移動先のカラーが指定されて、カラー変更要求が行われることによって、動作が開始される(ステップS501)。
論理物理ページ変換部54は、指定されたプロセスの指定された論理ページが物理ページをマップしているか調べる(ステップS502)。マップしていない場合は、要求元に応答を返す(ステップS504)。
マップしている場合は、マップしている物理ページを求め、移動元物理ページとする(ステップS503)。
以上の動作により、移動元物理ページと移動先カラーが得られる。したがって、以降の動作は、上述した第1の実施の形態の動作と同様であり、既に明らかであるため説明を省略する。
[第4の実施の形態]
次に、本発明を実施するための第4の形態について図面を参照して説明する。本実施の形態では、第1または第2の実施の形態に加えて、カラー管理部50が、移動元物理ページ決定部55を有することを特徴とする実施の形態である。図19は、本実施の形態のカラー管理部50を示し、第1の実施の形態におけるカラー管理部50に、移動元物理ページ決定部55を加えた場合の構成を示している。本図より、第2の実施の形態に移動元物理ページ決定部55を加えた構成についても明らかである。また、以下の説明が、第1の実施の形態に移動元物理ページ決定部55を加えた場合と、第2の実施の形態に加えた場合のどちらについても説明していることも明らかである。
移動元物理ページ決定部55は、プロセスIDとカラー集合を指定されると、プロセスIDによって指定されたプロセスがマップしている物理ページの中から、指定されたカラー集合に含まれるカラーを持つ物理ページを特定する機能を有する。
図20を用いて、本実施の形態の動作を説明する。
本実施の形態では、プロセスID、移動元カラー集合、移動先カラー集合が指定されて、カラー管理部50にカラー変更要求がなされることによって、動作が開始される(ステップS601)。
移動元物理ページ決定部55は、プロセスがマップしている物理ページの中から、移動元カラー集合に含まれるカラーを持つ物理ページの集合を求める(ステップS602)。集合が空の場合は(ステップS603においてYES)、要求元へ応答を返す(ステップS604)。
集合が空で無い場合は(ステップS603においてNO)、移動先物理ページ決定部51が、移動元物理ページ決定部55が求めた物理ページ集合と、移動先カラー集合を指定されて呼び出される。
以降の動作は、第1または第2の実施の形態の動作と同様であり、明らかであるため説明を省略する。
本実施の形態は、プロセスID、移動元カラー集合及び移動先カラー集合を指定してカラー管理部50を呼び出すことができるという特徴を有する。
[第5の実施の形態]
次に、本発明を実施するための第5の形態について図21を参照して説明する。
本実施の形態では、第4の実施の形態に加えて、カラー管理部50が、移動元カラー決定部56を有することを特徴とする。移動元カラー決定部56は、移動先カラー集合を指定されると、移動元カラー集合を決定する。決定された移動元カラー集合は、移動先カラー集合に含まれないカラーが含まれる。また、移動元カラー集合が、移動先ページカラー集合に含まれるカラーを含んでも良い。
図22を用いて、本実施の形態の動作を説明する。
本実施の形態では、プロセスID、移動先カラー集合が指定されて、カラー管理部50にカラー変更要求がなされることによって、動作が開始される(ステップS701)。
移動元カラー決定部56は、移動先カラー集合から、移動元カラー集合を決定する(ステップS702)。集合が空の場合は要求元に応答を返す(ステップS704)。
一方、集合が空で無い場合は、プロセスIDと決定された移動元カラー集合とを指定して、移動元ページ決定部が呼び出される。
以降の動作は、第4の実施の形態の動作と同様であり、明らかであるため説明を省略する。
本実施の形態は、プロセスID、移動先カラー集合を指定してカラー管理部50を呼び出すことができるという特徴を有する。
次に、具体的な実施例を用いて本発明を実施するための最良の形態の説明をする。
実施例1は、本発明の第1及び第5の実施の形態に対応する実施例である。すなわち、物理アドレス空間は第1の実施の形態の構成であり、カラー管理部50は第5の実施の形態の構成である。
本実施例は、メモリサイズが256MB(アドレス0x00000000から0x0fffffff)、ページサイズが4KB、キャッシュはサイズが8ページでダイレクトマップ方式を採用している場合の例である。この場合のカラー数は8である。また領域数はカラー数と同様の8の場合である。
まず、本実施例における物理アドレス空間について説明する。図23に本実施例の物理アドレス空間を示す。メモリは物理アドレス空間上の8つの領域にマップされており、それぞれの開始アドレス(base)は、領域0は0x00000000、領域1は0x10000000、領域2は0x20000000、領域3は0x3000000、領域4は0x40000000、領域5は0x50000000、領域6は0x6000000、領域7は0x70000000である。なお、図では領域4から領域7までは表記を省略している。
また、本実施例では以下のアドレス変換式を適用することでアドレス変換を行う。
(x)=x−ページサイズ*i−base*i+size
(base≦x<base+ページサイズ*i)
(x)=x−ページサイズ*i−base
(base+ページサイズ*i≦x<base+size
ここで、sizeはメモリのサイズを表す。
図24に本実施例のハードウェア構成を示す。本実施例では、アドレス変換はキャッシュ200とバス(図中ではbusと表記する。)400の間で行われる。本実施の例の別の構成として、図25に示すように、バス400とメモリ500の間でアドレス変換を行うようにしても良い。
次に本実施例のメモリアクセス時の動作について、領域2上の0x20006000番地にアクセスする場合を例に説明する。
(1)CPU100がアドレス0x20006000を発行する。
(2)キャッシュ200がアドレス0x20006000にアクセスする。この時のカラーは(0x20006000/4KB)%8=6である。
(3)キャッシュミス等によりメモリにアクセスが発生する場合、物理アドレス0x20006000が発行される。
(4)アドレス変換部300によりアドレス(0x20006000−4KB*2−0x20000000)=0x00004000に変換される。
(5)メモリにアドレス0x00004000が発行される。
本実施例における各領域とメモリの対応関係を図26に示す。図中括弧外の数字はページ番号(すなわちアドレス/ページサイズ)を表わし、括弧内の数字はカラー番号(すなわちページ番号%カラー数)を表す。なお、図では領域4、5及び7は省略している。
次に本実施例において、二つのプロセスA及びBの間でキャッシュ利用量を制御する場合の例について説明する。本実施例のソフトウェアの構成を図27に示す。本実施例のソフトウェアは、A及びBの二つのプロセス、優先度制御部及びカラー管理部50を有するOSによって構成される。また本実施例におけるカラー管理部50は、移動元カラー決定部56、移動先物理ページ決定部55、移動先物理ページ決定部51及び物理ページ移動部52を有する。カラー管理部50の機能については、本発明の実施の形態で説明したとおりである。優先度制御部は、二つのプロセス間の優先度およびキャッシュ割り当てを制御する機能を持つ。
本実施例では、プロセスAがプロセスBよりも優先度が高い状況から、プロセスBがプロセスAに対して優先度が高い状況に変化する場合の例を説明する。プロセスAがプロセスBよりも優先度が高い状況での二つのプロセスのキャッシュ利用は、図28に示すカラー割り当てに制御されていたとする。
すなわち、優先度制御部は、プロセスAに利用可能カラー集合{0,1,2,3}を、プロセスBに利用可能カラー集合{4,5}を割り当てている。プロセスAとプロセスBに異なるカラーを割り当てることで、それぞれのプロセスが利用可能なキャッシュ領域を分割し、プロセス間のキャッシュ競合による性能低下やばらつきを削減している。また、優先度が高いプロセスAにより多くのカラーを割り当てることで、より多くキャッシュを利用可能にし、より高い性能で動作できるように制御している。
プロセスAとプロセスBの優先度が逆転する場合の動作を以下に説明する。プロセスAの優先度が変更される前のメモリマップを図29(a)に示す。プロセスAは4つの仮想ページ{0x00000,0x00001,0x00002,0x00003}を利用している。図29(a)に示すように、それぞれの仮想ページは、物理ページ{0x00000,0x00002,0x00003,0x00009}をマップしている。この時のプロセスAのページテーブルの内容は図29(a)に示す通りである。優先度制御部は、プロセスAとプロセスBの優先度を変更すると同時に、カラー管理部50に対して、プロセスAはカラー集合{0,1}を利用可能なように、プロセスBはカラー集合{2,3,4,5}を利用可能な様に変更を行う。
プロセスAの利用可能カラーの変更は以下のようにして行われる。
(1)優先度制御部は、カラー変更部に対して、プロセスAのプロセスIDと移動先カラー集合として{0,1}を指定して、カラー変更要求を行う。
(2)移動元カラー決定部56は、移動対象カラー集合として{2,3}を選ぶ。
(3)移動先物理ページ決定部55は、移動対象物理ページ集合として、移動対象カラー集合に含まれるカラーを持つ物理ページ集合{0x00002,0x00003}を選ぶ。
(4)移動先物理ページ決定部51が、移動元物理ページ集合{0x00002,0x00003}と移動先カラー集合{0,1}を指定して呼び出される。
(5)移動先物理ページ決定部51は、物理ページ0x00002に対応するメモリページが0x00002であることを求める(図26参照)。
(6)移動先物理ページ決定部51は、メモリページ0x00002に移動先カラー集合{0,1}に含まれるカラーでアクセス可能な領域として領域6を選ぶ(図26参照)。
(7)移動先物理ページ決定部51は、移動元物理ページを0x00002、移動先物理ページを領域2上の0x60008として、物理ページ移動部52を呼び出す。
(8)物理ページ移動部52は、物理ページ0x00002をマップしている論理ページとして、プロセスAの論理ページ0x00001を検索する。
(9)物理ページ移動部52は、プロセスAの論理ページ0x00001がマップする物理ページを0x60008となるようにページテーブルを変更する。
同様に、物理ページに0x00003に対しても(5)から(9)の動作を行い、プロセスAの論理ページ0x00002がマップする物理ページが0x60009となるようにページテーブルを変更する。変更後のプロセスAのメモリマップを図29(b)に示す。
また、プロセスBについても同様にして、カラー集合{2,3,4,5}が利用されるように変更を行う。図30に、二つのプロセスに対する利用可能カラー変更後のキャッシュ制御の状況を示す。図に示されているように、プロセスAはカラー{0,1}のキャッシュ領域が利用可能で、プロセスBはカラー{2,3,4,5}のキャッシュ領域が利用可能なように変更されている。これにより、プロセスBが変更前より高い性能を発揮することが可能になる。
よって、プロセス間の優先度変更に合わせて、プロセス間の利用可能なキャッシュ量を変更することができ、状況に合わせたキャッシュ制御が行うことができている。
本実施例では、二つのプロセス間でのキャッシュ制御を例にしたが、三つ以上の任意の数のプロセス間にも用いることができることは明らかである。
本実施例では、優先度制御部はOSの外にあるが、実施例1の別例として優先度制御部がOS内にあるようにしても良い。
次に、実施例2について説明する。実施例2は、本発明の第2および第5の実施の形態に対応する実施例である。
まず、本実施例のハードウェア構成を図31に示す。本実施例は、CPU100、キャッシュ、アドレス変換部300、アドレス変換表600及びメモリを有する。本実施例では、アドレス変換表600はメモリの一部を利用している。本実施例はメモリサイズが256MB、ページサイズが4KB、キャッシュサイズが8ページでダイレクトマップキャッシュ方式を採用している場合の例である。この場合のカラー数は8である。図32に、本実施例の物理アドレス空間を示す。本実施例では、物理アドレス空間上のメモリサイズと等しいサイズの範囲がメモリをマップしている。先頭アドレスは0x000000である。
本実施例は、アドレス変換部300がアドレス変換表600を用いて、物理アドレス空間上のアドレスをメモリ上のアドレスに変換することを特徴とする。更に本実施例は、物理アドレス空間上のメモリをマップした範囲のサイズがメモリサイズと同じであることを特徴とする。
まず、アドレス変換表600について説明する。アドレス変換表600は、本発明の第2の発明を実施するための最良の形態の説明として前述したように、物理アドレス空間上のアドレスとそのアドレスが変換されるメモリ上のアドレスを記憶するための表である。本実施例では、アドレス変換部300は、アドレス変換を行う際に、アドレス変換表600を検索し、物理アドレス空間上のアドレスが見つかれば、対応するメモリ空間上のアドレスを変換結果とする。一方、物理アドレス空間上のアドレスが見つからない場合は、デフォルトの変換を行うという動作をする。
本実施例でのデフォルトの変換として以下の変換を行う。
y=x
なお、本実施例では、アドレス変換表600はページサイズ単位でアドレスの対応関係を記録するが、これはあくまで例示でありアドレス変換表600が記録する単位をページサイズに限定するものではない。
次に本実施例のメモリアクセス時の動作を説明するため、物理アドレス空間上の0x00000010番地(ページ番号は0x00000)にアクセスする場合を例に説明する。この例ではカラー数は8とする。また、このとき利用するアドレス変換表600は図33に記載のものである。
(1)CPU100がアドレス0x00000010を発行する。
(2)キャッシュがアドレス0x00000010でアクセスされる。この時のカラーは(0x00000010/4KB)%8=0である。
(3)キャッシュミス等によりメモリにアクセスが発生する場合、物理アドレス0x00000010が発行される。
(4)アドレス変換部300は、アドレス変換表600を検索して、物理アドレス空間上のページ0x00000に対応するメモリ上のアドレスが0x00003であることを得る。
(5)メモリにアドレス0x00003010が発行される。
次に本実施例において、二つのプロセスAおよびBの間でキャッシュ利用量を制御する場合の例について説明する。図34に本実施例のソフトウェアの構成を示す。OSのカラー管理部50以外の構成は実施例1と同一である。またカラー管理部50の機能は、本発明の実施の形態で説明した通りである。
実施例1の同様の状況である、プロセスAがプロセスBよりも優先度が高い状況から、プロセスBがプロセスAに対して優先度が高い状況に優先度が逆転する場合を例に説明する。また、優先度が逆転する前のアドレス変換表600にはエントリが存在しないとする。すなわち全てのメモリアクセス時には前述したデフォルトの変換が行われる。つまり、本実施例における優先度変更前のプロセスAに関連する論理アドレス空間、物理アドレス空間、アドレス変換表600及びプロセスAのページテーブルは、図35に示す通りである。
カラー管理部50の移動先物理ページ決定部51が呼び出されるまでの動作は実施例1と同様である。したがって、移動先物理ページ決定部51は、移動元物理ページ集合{0x00002,0x00003}と移動先カラー集合{0,1}を指定して呼び出される。移動先物理ページ決定部51が呼び出されてから以降の動作を以下で説明する。
(1)移動先物理ページ決定部51は、OSのメモリ管理機能に対してカラー集合{0,1}を指定して、2つの空き物理ページを要求する。
(2)OSのメモリ管理機能から物理ページ集合{0x00001,0x00008}が返えされる。
(3)移動先物理ページ決定部51は、移動元物理ページ集合{0x00002,0x00003}と移動先物理ページ集合{0x00001,0x00008}を指定して、アドレス変換表600変更部53を呼び出す。以下では、移動元物理ページ0x00003を移動先物理ページ0x00008に移動する動作を説明する。移動元物理ページ0x00002についても同様の動作が行われる。
(4)アドレス変換表600変更部53は、アドレス表を検索して、物理ページ0x00003に対応するメモリ上のページとして、デフォルトの変換を用いて、メモリページ0x00003を求める。
(5)アドレス変換表600変更部53は、アドレス表を検索して、物理ページ0x00008に対応するメモリ上のページとして、デフォルトの変換を用いて、メモリページ0x00008を求める。
(6)アドレス変換表600変更部53は、アドレス変換表600に、<物理ページ、メモリページ>の組として、<0x00003,0x00008>、<0x00008、0x00003>を記入する。
(7)アドレス変換表600変更部53は、移動元物理ページを0x00003、移動先物理ページを0x000008として物理ページ移動部52を呼び出す。
(8)物理ページ移動部52は、移動元物理ページ0x00003をマップしている論理ページを検索して、プロセスAの論理ページ0x00002を求める。
(9)物理ページ移動部52は、プロセスAのページテーブルを書き換え、論理ページ0x00002に対応する物理ページを0x00008に変更する。
物理ページ移動部52は、物理ページ0x00003を解放する。
この動作を終えた後のプロセスAに関連する論理アドレス空間、物理アドレス空間及びメモリの対応関係と、アドレス変換表600、プロセスAのページテーブルを図36に示す。一連の動作により、プロセスAの利用するカラーの集合が{0,1}に変更されたことが分かる。また、アドレス変換表600を更新することによって、プロセスAが利用するメモリページは変更することなく、プロセスAの利用するカラー集合が変更されていることが分かる。
次に、実施例3について説明する。本実施例は、キャッシュの一部の領域へのアクセスが集中するのを防ぐための例である。本実施例は、第1または第2の実施の形態に対応する実施例であり、OSがカラー分散指示部57を有することを特徴とする。カラー分散指示部57は、利用されている物理ページのカラーを調べ、特定のカラーが多く利用されている場合にカラー管理部50を呼び出す機能を有する。本実施例におけるソフトウェアは、図37に示すように、OS内のカラー管理部50及びカラー分散指示部57を有している。その他の構成については、これまでの説明で明らかであるので、ここでは省略する。
本実施例の動作を説明する。
(1)カラー分散指示部57が、全てのプロセスによって利用されている物理ページのカラーを調べヒストグラムを作成する。作成されたヒストグラムの例を図38に示す。
(2)カラー分散指示部57は、利用されている全物理ページ数をカラー数で割り平均を求める。本例では、平均は2ページである。
(3)カラー分散指示部57は、2ページ以上利用されているカラーを持つ物理ページに対して、カラー変更をする。
(3.1)カラー分散指示部57は、物理ページ16(カラー0)と移動先カラー2を指定して、カラー管理部50を呼び出す。
(3.2)カラー管理部50は、物理ページ16をマップしている論理ページが物理ページ3(カラー3)をマップするように変更することで、カラーを変更する。カラー管理部50の動作については実施例1および実施例2で詳しく述べたのでここでは説明は省略する。
以下、その他の物理ページに対しても同様にしてカラー変更を行う。
図39に、カラー変更後のヒストグラムを示す。カラーを均等に分散させることによって、特定のキャッシュ領域へのアクセス集中を削減することができる。
本実施例では、全てのプロセスによって利用されている物理ページをカラー分散の対象にしたが、本実施例の別例として、一部のプロセスをカラー分散の対象にする形態をとっても良い。例えば、頻繁に実行されるプロセスの集合をカラー分散の対象にする形態や、同時に実行されるプロセスの集合をカラー分散の対象にする形態、単一プロセスをカラー分散の対象にする形態をとっても良い。また、本実施例の別例として、OSが利用する物理ページをカラー分散の対象として含めても良い。
次に、実施例4について説明する。本実施例は、本発明の第3の実施の形態に対応しており、プロセス内でのキャッシュ競合ミスを動的に削減する例である。本実施例のソフトウェア構成を図40に示す。
プロセスの利用する異なるデータが、同じカラーを持つ異なる物理ページにマップされる場合、深刻なキャッシュ競合ミスを起こす可能性がある。例えば図41に示すプログラム例では、配列aとbが同じカラーを持つ物理ページにマップされる場合、ループを実行する際に、深刻なキャッシュ競合ミスが起こる。この様な競合ミスを、データのカラーが異なる様に指定する事によって解決する。
図41の例では以下のような動作が行われる。
(1)プログラムは、配列aの論理ページ番号とカラー番号を指定して、カラー管理部50を呼び出す。
(2)カラー管理部50は、配列aが割り当てられている物理ページを求め、指定されたカラーの物理ページへ移動する。
(3)プログラムは、配列bの論理ページ番号と(1)とは異なるカラー番号を指定して、カラー管理部50を呼び出す。
(4)カラー管理部50は、配列bが割り当てられている物理ページを求め、指定されたカラーの物理ページへ移動する。
以上により、配列aとbは異なるカラーを持つ物理ページに割り当てられる。
プログラムの実行フェーズが変わり、配列間の競合関係が変更した場合は、当該配列間で同様の動作を行うことによって、動的に競合関係を解消することができる。
以上詳細に説明した本発明の実施形態及び実施例によれば、アプリケーションが利用可能なカラーを変更することができる。したがって、アプリケーションが利用可能なカラーを増やすことで、アプリケーションが利用可能なキャッシュサイズを増やすことが可能である。アプリケーションが利用可能なキャッシュサイズが増えると、メモリアクセスのレイテンシを削減することができるため、アプリケーションの性能を向上させるという効果を奏する。
また、新しいアプリケーションが起動されたときなどに、既存のアプリケーションが利用可能なカラーと、新しいアプリケーションが利用可能なカラーが重複しないように、利用可能なカラーを変更することができる。これにより、アプリケーション間のキャッシュ競合を削減することができるので、各アプリケーションの性能を安定化させるという効果を奏する。
なお、上述した本発明の各実施形態及び各実施例は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
物理アドレス空間とキャッシュの関係を表す図である。 プロセス間のキャッシュ競合について表す図である。 キャッシュ競合を削減するための論理アドレスと物理アドレスのマッピングについて表す図である。 二つのプロセスがキャッシュ上の同じ位置を利用しないことについて表す図である。 プロセスの優先度が逆転した場合について示す図である。 本発明の実施形態の概略について示す図である。 本発明の第1の実施の形態が有するハードウェアの構成を示す図である。 本発明の第1の実施の形態の物理アドレス空間の構成を示す図である。 カラー管理部50の構成を示す図である。 メモリアクセスを行う際の動作について説明するための図である。 移動物理先ページ決定部51の動作について示す図である。 本発明の第2の実施の形態が有するハードウェアの構成を示す図である。 本発明の第2の実施の形態が有する物理アドレス空間の構成を示す図である。 本発明の第2の実施の形態が有するカラー管理部50の構成を示す図である。 アドレス変換部30の動作を説明する図である。 移動先物理ページ決定部51の動作を説明する図である。 本発明の第3の実施の形態におけるカラー管理部50の構成を示す図である。 本発明の第3の実施の形態におけるカラー管理部50の動作を示す図である。 本発明の第4の実施の形態におけるカラー管理部50の構成を示す図である。 本発明の第4の実施の形態におけるカラー管理部50の動作を示す図である。 本発明の第5の実施の形態におけるカラー管理部50の構成を示す図である。 本発明の第5の実施の形態におけるカラー管理部50の動作を示す図である。 本発明の実施例1の物理アドレス空間を示す図である。 本発明の実施例1のハードウェアの基本的構成を示す図である。 本発明の実施例1のハードウェアの基本的構成の変形例を示す図である。 本発明の実施例1における各領域とメモリの対応関係を示す図である。 本発明の実施例1におけるソフトウェアの構成を示す図である。 本発明の実施例1におけるカラー割り当てについて示す図である。 本発明の実施例1において優先度が逆転する場合について示す図である。 本発明の実施例1における利用可能カラー変更後のキャッシュ制御の状況について示す図である。 本発明の実施例2のハードウェアの基本的構成を示す図である。 本発明の実施例2の物理アドレス空間を示す図である。 本発明の実施例2におけるアドレス変換表について示す図である。 本発明の実施例2においてキャッシュ利用量を制御する場合について示す図である。 本発明の実施例2における優先度変更前のプロセスAに関連する情報について示す図である。 本発明の実施例2におけるプロセスAのページテーブルについて示す図である。 本発明の実施例3におけるOSの基本的構成を表す図である。 本発明の実施例3において作成されたヒストグラムの例について示す図である。 カラー変更後のヒストグラムについて示す図である。 本発明の実施例4におけるソフトウェアの基本的構成を表す図である。 本発明の実施例4におけるプログラム例について示す図である。
符号の説明
10、100 CPU
20、200 キャッシュ
30、300 アドレス変換部
40、500 メモリ
50 カラー管理部
51 移動先物理ページ決定部
52 物理ページ移動部
53 アドレス変換表変更部
54 論理物理ページ決定部
55 移動元物理ページ決定部
56 移動元カラー決定部
57 カラー分散指示部
60、600 アドレス変換表
400 バス

Claims (28)

  1. 物理アドレスによってキャッシュ上の格納位置が決定されるキャッシュをキャッシュ先とし、メモリ上の一定サイズの領域において論理アドレスと物理アドレスのマッピングの単位となるページ毎にキャッシュ上の格納位置をカラーIDで識別できるメモリシステムであって、
    異なるカラーが割り当てられている複数の物理アドレスから、メモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成し、
    前記構成した前記物理アドレス空間上のページ(以下「物理ページ」という。)をマップしている論理アドレス空間上のページ(以下「論理ページ」という。)が、前記マップしている物理ページと同一のメモリ上のページ(以下「メモリページ」という。)にアクセスができ、かつ異なるカラーを持つ他の物理ページをマップするように変更するアドレス変更手段を備えることを特徴とするメモリシステム。
  2. 前記物理アドレス空間上に、アドレスが連続する複数の物理ページが、アドレスが連続する複数のメモリページをマップする領域を複数備え、
    前記物理アドレス空間の構成を、物理アドレス空間上のそれぞれの領域に対するアクセスに対して異なったアドレス変換をすることで異なるカラーの複数の物理アドレスからメモリ上の同一アドレスにアクセスできるようにすることを特徴とする請求項1に記載のメモリシステム。
  3. ページテーブルを変更する権限を有する指定元から指定された物理ページと同一のメモリページにアクセス可能な物理ページであって、かつ前記指定元から指定されたカラーを持つ物理ページを決定する移動先ページ決定手段と、
    前記指定された移動元物理ページをマップしている論理ページが、前記指定された移動先物理ページをマップするように変更する物理ページ移動手段と、
    を有するカラー変更手段を更に備えることを特徴とする請求項2に記載のメモリシステム。
  4. 物理アドレスとメモリ上のアドレスの対応関係を記憶したアドレス変換表を更に備えた請求項3記載のメモリシステムであって、
    ページテーブルを変更する権限を有する指定元から指定されたカラーでアクセス可能な物理ページを移動先物理ページとする移動先物理ページ決定手段と、
    前記指定された移動元物理ページに対応していたメモリページに、前記決定した移動先物理ページが対応するようにアドレス変換表を変更するアドレス変換表変更手段と、
    前記指定された移動元物理ページをマップしている論理ページが、前記決定した移動先物理ページをマップするように変更する物理ページ移動手段と、を有するカラー管理手段と、
    を更に備えることを特徴とする請求項3記載のメモリシステム。
  5. 前記カラー管理手段が、プロセスIDと論理ページ番号から物理ページ番号を求める論理物理ページ変換手段を更に備えることを特徴とする請求項3又は4に記載のメモリシステム。
  6. 前記カラー管理手段が、プロセスIDと移動元カラー集合と移動先カラー集合から移動元物理ページ集合を決定する移動元物理ページ決定手段を更に備えることを特徴とする請求項3又は4に記載のメモリシステム。
  7. 前記カラー管理手段が、プロセスIDと移動先カラー集合から移動元カラー集合を決定する移動元カラー決定手段を更に備えることを特徴とする請求項6に記載のメモリシステム。
  8. 物理アドレスとメモリ上のアドレスの対応関係を記憶したアドレス変換表を用意し、
    前記物理アドレス空間へのアクセスに対して、前記アドレス変換表を利用して物理アドレスからメモリ上のアドレスへの変換を行うことにより異なるカラーの複数の物理アドレスからメモリ上の同一アドレスにアクセスできるように前記物理アドレス空間を構成することを特徴とする請求項1に記載のメモリシステム。
  9. 前記アドレス変換手段がキャッシュとメモリバスの間に設けられていることを特徴とする請求項1乃至8の何れか1項に記載のメモリシステム。
  10. 前記アドレス変換手段がメモリバスとメモリの間に設けられていることを特徴とする請求項1乃至8の何れか1項に記載のメモリシステム。
  11. 請求項1乃至10の何れか1項に記載のメモリシステムであって、
    複数のプロセスが動作しており、時間の経過とともにプロセス間の関係が変換する場合に、前記アドレス変更手段を動作させプロセスへのキャッシュ割り当てを変更することを特徴とするメモリシステム。
  12. 請求項1乃至10の何れか1項に記載のメモリシステムであって、
    単数又は複数のプロセスが動作しており、時間の経過とともに生じたキャッシュ領域毎の利用量に偏りを削減するように前記アドレス変更手段を動作させプロセスへのキャッシュ割り当てを変更することを特徴とするメモリシステム。
  13. 請求項1乃至10の何れか1項に記載のメモリシステムであって、
    単数又は複数のプロセスが動作しており、プロセスの利用する命令やデータがキャッシュ上で競合を起こす場合に、プロセスの任意の時点で、プロセス内でのキャッシュ競合ミスを削減するように前記アドレス変更手段を動作させプロセスへのキャッシュ割り当てを変更することを特徴とするメモリシステム。
  14. 物理アドレスによってキャッシュ上の格納位置が決定されるキャッシュをキャッシュ先とし、メモリ上の一定サイズの領域において論理アドレスと物理アドレスのマッピングの単位となるページ毎にキャッシュ上の格納位置をカラーIDで識別できるメモリシステムにおけるメモリ管理方法であって、
    異なるカラーが割り当てられている複数の物理アドレスから、メモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成し、
    前記構成した前記物理ページをマップしている論理ページが、前記マップしている物理ページと同一のメモリページにアクセスができ、かつ異なるカラーを持つ他の物理ページをマップするように変更するアドレス変更ステップを備えることを特徴とするメモリ管理方法。
  15. 前記メモリシステムが前記物理アドレス空間上に、アドレスが連続する複数の物理ページが、アドレスが連続する複数のメモリページをマップする領域を複数備え、
    前記物理アドレス空間の構成を、物理アドレス空間上のそれぞれの領域に対するアクセスに対して異なったアドレス変換をすることで異なるカラーの複数の物理アドレスからメモリ上の同一アドレスにアクセスできるようにすることを特徴とする請求項14に記載のメモリ管理方法。
  16. ページテーブルを変更する権限を有する指定元から指定された物理ページと同一のメモリページにアクセス可能な物理ページであって、かつ前記指定元から指定されたカラーを持つ物理ページを決定する移動先ページ決定ステップと、
    前記指定された移動元物理ページをマップしている論理ページが、前記指定された移動先物理ページをマップするように変更する物理ページ移動ステップと、
    を有するカラー変更ステップを更に備えることを特徴とする請求項15に記載のメモリ管理方法。
  17. 前記メモリシステムが、物理アドレスとメモリ上のアドレスの対応関係を記憶したアドレス変換表を更に備えているシステムであって、
    ページテーブルを変更する権限を有する指定元から指定されたカラーでアクセス可能な物理ページを移動先物理ページとする移動先物理ページ決定ステップと、
    前記指定された移動元物理ページに対応していたメモリページに、前記決定した移動先物理ページが対応するようにアドレス変換表を変更するアドレス変換表変更ステップと、
    前記指定された移動元物理ページをマップしている論理ページが、前記決定した移動先物理ページをマップするように変更する物理ページ移動ステップと、を有するカラー管理ステップを更に備えることを特徴とする請求項16記載のメモリ管理方法。
  18. 前記カラー管理ステップが、プロセスIDと論理ページ番号から物理ページ番号を求める論理物理ページ変換ステップを更に備えることを特徴とする請求項16又は17に記載のメモリ管理方法。
  19. 前記カラー管理ステップが、プロセスIDと移動元カラー集合と移動先カラー集合から移動元物理ページ集合を決定する移動元物理ページ決定ステップを更に備えることを特徴とする請求項16又は17に記載のメモリ管理方法。
  20. 前記カラー管理ステップが、プロセスIDと移動先カラー集合から移動元カラー集合を決定する移動元カラー決定ステップを更に備えることを特徴とする請求項19に記載のメモリ管理方法。
  21. 物理アドレスとメモリ上のアドレスの対応関係を記憶したアドレス変換表を用意し、
    前記物理アドレス空間へのアクセスに対して、前記アドレス変換表を利用して物理アドレスからメモリ上のアドレスへの変換を行うことにより異なるカラーの複数の物理アドレスからメモリ上の同一アドレスにアクセスできるように前記物理アドレス空間を構成することを特徴とする請求項14に記載のメモリ管理方法。
  22. 前記アドレス変換ステップがキャッシュとメモリバスの間に設けられていることを特徴とする請求項14乃至21の何れか1項に記載のメモリ管理方法。
  23. 前記アドレス変換ステップがメモリバスとメモリの間に設けられていることを特徴とする請求項14乃至21の何れか1項に記載のメモリ管理方法。
  24. 請求項14乃至23の何れか1項に記載のメモリ管理方法であって、
    複数のプロセスが動作しており、時間の経過とともにプロセス間の関係が変換する場合に、前記アドレス変更ステップを動作させプロセスへのキャッシュ割り当てを変更することを特徴とするメモリ管理方法。
  25. 請求項14至23の何れか1項に記載のメモリ管理方法であって、
    単数又は複数のプロセスが動作しており、時間の経過とともに生じたキャッシュ領域毎の利用量に偏りを削減するように前記アドレス変更ステップを動作させプロセスへのキャッシュ割り当てを変更することを特徴とするメモリ管理方法。
  26. 請求項14乃至23の何れか1項に記載のメモリ管理方法であって、
    単数又は複数のプロセスが動作しており、プロセスの利用する命令やデータがキャッシュ上で競合を起こす場合に、プロセスの任意の時点で、プロセス内でのキャッシュ競合ミスを削減するように前記アドレス変更ステップを動作させプロセスへのキャッシュ割り当てを変更することを特徴とするメモリ管理方法。
  27. 物理アドレスによってキャッシュ上の格納位置が決定されるキャッシュをキャッシュ先とし、メモリ上の一定サイズの領域において論理アドレスと物理アドレスのマッピングの単位となるページ毎にキャッシュ上の格納位置をカラーIDで識別できるメモリシステムとしてコンピュータを機能させるためのメモリ管理プログラムであって、
    異なるカラーが割り当てられている複数の物理アドレスから、メモリ上の同一アドレスにアクセスできるように物理アドレス空間を構成し、
    前記構成した前記物理ページをマップしている論理ページが、前記マップしている物理ページと同一のメモリページにアクセスができ、かつ異なるカラーを持つ他の物理ページをマップするように変更するアドレス変更手段を備えることを特徴とするメモリシステムとしてコンピュータを機能させるためのメモリ管理プログラム。
  28. 前記メモリシステムを、前記物理アドレス空間上に、アドレスが連続する複数の物理ページが、アドレスが連続する複数のメモリページをマップする領域を複数備え、
    前記物理アドレス空間の構成を、物理アドレス空間上のそれぞれの領域に対するアクセスに対して異なったアドレス変換をすることで異なるカラーの複数の物理アドレスからメモリ上の同一アドレスにアクセスできるようにすることを特徴とするメモリシステムとして機能させることを特徴とする請求項27記載のメモリ管理プログラム。
JP2008151682A 2008-06-10 2008-06-10 キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム Active JP5196249B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008151682A JP5196249B2 (ja) 2008-06-10 2008-06-10 キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008151682A JP5196249B2 (ja) 2008-06-10 2008-06-10 キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2009301102A JP2009301102A (ja) 2009-12-24
JP5196249B2 true JP5196249B2 (ja) 2013-05-15

Family

ID=41547970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008151682A Active JP5196249B2 (ja) 2008-06-10 2008-06-10 キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP5196249B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365797B (zh) * 2013-07-05 2017-05-31 华为技术有限公司 物理内存页分配方法和计算机系统
CN109299021B (zh) * 2017-07-24 2023-06-16 阿里巴巴集团控股有限公司 页迁移方法、装置和中央处理器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659980A (ja) * 1992-08-05 1994-03-04 Matsushita Electric Ind Co Ltd キャッシュ装置
WO1996013005A1 (de) * 1994-10-22 1996-05-02 Gmd - Forschungszentrum Informationstechnik Gmbh Speichervorrichtung zum speichern von daten
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
EP0919927A3 (en) * 1997-11-26 2000-05-24 Compaq Computer Corporation Dynamic memory allocation technique for maintaining an even distribution of cache page addresses within an address space
JP2000339220A (ja) * 1999-05-27 2000-12-08 Nippon Telegr & Teleph Corp <Ntt> キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム
JP2004206424A (ja) * 2002-12-25 2004-07-22 Hitachi Ltd データ処理装置及びデータ処理装置におけるデータ転送方法

Also Published As

Publication number Publication date
JP2009301102A (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
US11681473B2 (en) Memory system and control method
US8095736B2 (en) Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures
EP2645259B1 (en) Method, device and system for caching data in multi-node system
US8627040B2 (en) Processor-bus-connected flash storage paging device using a virtual memory mapping table and page faults
KR101612922B1 (ko) 메모리 시스템 및 메모리 시스템 관리 방법
JP2008515069A (ja) プロセッサ・リソースの仮想化のためのシステムおよび方法
JP2009520295A (ja) 共有メモリバンクを有するマルチプロセッサ回路
US9990299B2 (en) Cache system and method
US20180336140A1 (en) Method and system for flash-aware heap memory management
JP4888839B2 (ja) キャッシュメモリを備えるベクトル計算機システム、及びその動作方法
JP2009015509A (ja) キャッシュメモリ装置
JP5196249B2 (ja) キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム
EP3690660B1 (en) Cache address mapping method and related device
US20120210070A1 (en) Non-blocking data move design
JP2007304747A (ja) 計算機システム及びメモリアクセス方法
JP5293611B2 (ja) メモリ再配置システム
JP5334048B2 (ja) メモリ装置および計算機
CN110362509B (zh) 统一地址转换方法与统一地址空间
WO2015161804A1 (zh) 一种Cache分区的方法及装置
JP5471677B2 (ja) 仮想ディスク制御システム、方法及びプログラム
US8762647B2 (en) Multicore processor system and multicore processor
JP5293974B2 (ja) メモリマッピング方法、メモリシステム
JP4792065B2 (ja) データ記憶方法
JP7087150B1 (ja) メモリ制御システム
JP2013254357A (ja) 情報処理装置および方法、並びにプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100727

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121227

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: 20130110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5196249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150