JP5531476B2 - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP5531476B2 JP5531476B2 JP2009167146A JP2009167146A JP5531476B2 JP 5531476 B2 JP5531476 B2 JP 5531476B2 JP 2009167146 A JP2009167146 A JP 2009167146A JP 2009167146 A JP2009167146 A JP 2009167146A JP 5531476 B2 JP5531476 B2 JP 5531476B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory capacity
- capacity
- area
- tlb
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
請求項1の発明は、プロセスを一意に識別するプロセス識別子と、該プロセスにおいて利用可能なメモリ空間のアドレスである仮想アドレスと、該仮想アドレスに対応する物理アドレスと、該プロセスに割り当てる連続したメモリ容量を対応付けて記憶する記憶手段と、プロセスを実行可能な状態にするときに、該プロセスが必要とするメモリ容量、物理メモリ上で未使用の連続した領域のメモリ容量、コンピュータにおける中央処理装置によるメモリ容量に関する制限に基づいて決定したメモリ容量を前記記憶手段内の該プロセスに対応するメモリ容量として設定するメモリ容量設定手段を具備し、前記メモリ容量設定手段は、前記記憶手段におけるエントリ数が少なくなるようにし、かつフラグメント化されるメモリ容量が小さくなるように、静的なデータのメモリ領域の連続したメモリ容量を決定し、その後に、プロセスの実行時に動的に割り当てられる動的なデータのメモリ領域の連続したメモリ容量を決定し、複数のプロセス間で用いられる共有メモリのメモリ容量を決定することを特徴とする情報処理装置である。
仮想記憶とは、コンピュータシステムの利用者(プロセス)にとって利用可能な主記憶装置とみなしうる記憶空間であって、仮想アドレスが実アドレスへ写像される。
プロセスを用いたマルチプロセスシステムでは、プロセスごとに独立した仮想メモリ空間を生成する。この仮想メモリ空間は、物理的に存在する物理メモリ空間と対応が取られ、プロセスとして動作するアプリケーションは仮想メモリ空間のアドレスのみを使用して動作する。なお、プロセスとは、オペレーティングシステム(OS:Operating System)から見たプログラムの実行単位をいう。つまり、OSは、プロセス単位でプログラムの実行を制御する。
(1)それぞれのプロセスは異なるメモリ空間に存在するため、誤って他のプロセスに干渉することを防ぐことができる。また、不正にデータをアクセスしたり、書き換えたりできなくなるため安全性が確保できる。
(2)アプリケーションの開発者は、実際の物理メモリ量やアドレスを意識しないで開発することができる。
また、領域の仮想アドレスと物理アドレスは指定したサイズでアライメントされている必要もある。さらにマップする領域は連続領域でなければいけない。そのため、この方法は予めメモリマップが静的に決まっているシステムでないと採用が難しく、メモリマップが動的に非連続領域に対して生成されるプロセスでは効果を保証することができない。特に決定論的(deterministic)性能を求められる組込みシステムでマルチプロセス化を行った場合、この手法では性能の予測を保証することができない。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。また、管理という用語を用いるが、これは文脈に応じて、制御する、マネジメントする、制御又はマネジメントするためのデータを記憶するの意で用い、その役割又は動作をさす。
本実施の形態である情報処理装置は、動的にメモリ空間を生成するマルチプロセス環境において、TLBを用いたMMUに関するものであって、ハードウェアの構成例は、図1に示すように、CPU110、物理メモリ120、I/O空間130、ROM140を有しており、これらは、バス190を介して接続されている。
キャッシュ112は、CPU110と物理メモリ120等との間でデータの転送効率を向上させるために用いられる。
TLB114は、プロセスを一意に識別するプロセス識別子と、そのプロセスにおいて利用可能なメモリ空間のアドレスである仮想アドレスと、その仮想アドレスに対応する物理アドレスと、そのプロセスに割り当てる連続したメモリ容量を対応付けて記憶する記憶装置である。例えば、図4に例示するTLB400を記憶する。
TLB400は、エントリ番号欄402、仮想アドレス欄404、物理アドレス欄406、プロセスID欄408、サイズ欄410、属性欄412を有している。
仮想アドレス欄404は、プロセスにおける仮想アドレスを記憶する。
物理アドレス欄406は、その仮想アドレスに対応する物理メモリ120等のアドレスを記憶する。例えば、図4に示すように、エントリ番号0、60等は物理メモリ120に割り当てられ、エントリ番号1、2はI/O空間130に割り当てられる。
プロセスID欄408は、そのTLB400を利用しているOS下で、一意にプロセスを識別するプロセスIDを記憶し、そのプロセスは仮想アドレス欄404で記憶されている仮想アドレスを用いて動作する。
サイズ欄410は、その仮想アドレスが物理アドレスに割り当てられるサイズを記憶する。つまり、仮想アドレス欄404、物理アドレス欄406に記憶されている仮想アドレスと物理アドレスを先頭アドレスとしてそのサイズ分の連続領域が割り当てられる。
プロセスを実行可能な状態にするときに、そのプロセスが必要とするメモリ容量、物理メモリ120上で未使用の連続した領域のメモリ容量、CPU110によるメモリ容量に関する制限に基づいて決定したメモリ容量をTLB114内のそのプロセスに対応するメモリ容量として設定する。なお、この文では、「メモリ容量」として4種類のものが出現するが、それぞれ次のような意味を有するものである。(1)「そのプロセスが必要とする『メモリ容量』」とは、そのプロセスが使用するメモリ領域のことであり、具体例として、後述するtext/bss/data領域等が該当する。(2)「物理メモリ120上で未使用の連続した領域の『メモリ容量』」とは、本システムにおける物理メモリ120の連続空き容量のことである。(3)「CPU110による『メモリ容量』に関する制限」とは、TLB114に設定できるメモリサイズのことである。(4)「TLB114内のそのプロセスに対応する『メモリ容量』」とは、実際にTLB114に設定するメモリサイズ(サイズ欄410)のことであり、「決定した『メモリ容量』」を設定する。また、「TLB114内のそのプロセスに対応するメモリ容量として設定する」のは、TLB114の1エントリにおけるメモリ容量のことである。
OS200は、カーネル210を有しており、そのカーネル210は、ローダ220、MMU230、TLBハンドラ240を有している。
ローダ220は、ユーザーによる操作又は他のプロセスからの指示に応じて、プロセスを実行可能な状態にする。つまりプロセスを起動することであり、例えば、C言語等では、プログラム内のmain()関数を実行することに該当する。このときに、プロセスで利用する仮想アドレスと物理アドレスとの対応を取る必要がある。そのために、MMU230にTLB114の設定を行わせる。なお、図2の例は、プロセス1 290、プロセス2 295を起動した後の状態を示している。
MMU230は、ローダ220からの指示に基づいて、TLB114の設定をTLBハンドラ240に行わせ、TLB114に基づいて、プロセス実行におけるアドレス変換を行う。また、プロセス1 290、プロセス2 295の実行中に、動的メモリ又は共有メモリが必要となったときに、TLB114の設定をTLBハンドラ240に行わせる。
TLBハンドラ240は、MMU230からの指示に基づいて、TLB114の設定を行う。
プロセス1仮想空間370は、text/bss/data領域372、ヒープ領域374を有している。
text/bss/data領域372は、静的なデータの領域であり、物理メモリ300の確保物理領域304に割り付けられている。なお、text領域はプログラムコード領域、bss(Block Starting with Symbol)領域は初期値のないグローバル変数用の領域、data領域は初期化が必要なデータの領域である。
ヒープ領域374は、動的なデータの領域であり、物理メモリ300の確保物理領域306に割り付けられている。
カーネルのtext/bss/data領域及びヒープ領域362、共有メモリ領域364は、物理メモリ300のそれぞれ確保物理領域302、確保物理領域310に割り付けられている。I/Oアクセス366はI/O空間340に、ROM368はROM350に割り付けられている。
ステップS502では、ユーザーモード520で、プロセス1がTLB114に存在しない0x4000_4000にアクセスする。
ステップS504では、TLBミス例外が発生する。つまり、割り込みが発生し、ユーザーモード520からスーパーバイザーモード510へと制御が移る。
図6は、TLBミス例外の処理におけるTLB400の変化例を示す説明図である。TLB400内で、一番古いエントリはエントリ番号63であるので、それを新エントリ610(プロセスID1における仮想アドレス0x4000_4000と、これに対応する物理アドレス0x8_1004_4000の設定等)に置き換える。なお、MMU230は、TLB400に新エントリ610等のプロセスを実行可能な状態にするときに設定されたエントリを含めたページテーブルを主記憶内に記憶させておき、TLBミス例外処理が発生したときに、TLB400とページテーブルの一部を入れ替える。
ステップS508では、ユーザーモード520で、プロセス1が再度0x4000_4000にアクセスすると、TLBのエントリが書き換わっているので正常にアクセスが可能となる。つまり、エントリ番号63に仮想アドレス0x4000_4000があるので、これに基づいて、プロセス1は処理を再開する。
ステップS702では、ローダ220が、プロセスIDを作成する。つまり、プロセスを実行可能な状態にするために、プログラムの実行オブジェクトを実行させた場合のプロセスを一意に識別するプロセスIDを作成する。
ステップS704では、プロセスの空のページテーブルを作成する。TLB400を作成するために、主記憶上にTLB400と同じ構造のページテーブルを作成する。ただし、エントリ数はTLB400よりも多く、その数は限定しなくてもよい。
ステップS706では、空のプロセス用仮想論理空間を作成する。TLB400を作成するために、主記憶上に仮想論理空間を管理するためのテーブル(例えば、プロセスIDとそのプロセスに割り当てたメモリアドレスの対応)を作成する。
また、ステップS714又はステップS718で処理が戻った場合は、前回決定したメモリサイズよりも少なくなる方向でメモリサイズを変更する。
ステップS714では、確保できたか否かを判断する。確保できた場合はステップS716へ進み、それ以外の場合はステップS710からの処理を繰り返す。
ステップS718では、確保できたか否かを判断する。確保できた場合はステップS720へ進み、それ以外の場合はステップS710からの処理を繰り返す。
なお、ステップS710からステップS720までの処理を、従来通りの技術で行うと、固定サイズでELFイメージをロードするための物理空間の確保と仮想論理空間の確保をし、ステップS704とステップS706でそれぞれ作成したページテーブルと仮想論理空間に登録することになる。このようにした場合、予め定められた固定のメモリ容量が設定されてしまい、確保される物理空間は連続領域ではないこととなり、物理空間と仮想論理空間のアドレスがTLB400に設定できるサイズのアライメントになっていない。つまり、TLB400に設定するサイズはページ単位になってしまい、TLBミス例外の処理が多く発生する場合がある。
ステップS724では、ステップS722で計算したオフセットを足しながらELFイメージ等を論理アドレスへと展開(配置)する。
ステップS726では、ステップS716で確保した領域のtext/bss/dataそれぞれのメモリ属性を設定する。つまり、TLB400の属性欄412(キャッシュ112が利用されるか否か、スーパーバイザーのアクセス権、ユーザーのアクセス権等)を設定する。
ステップS730では、ヒープ領域のための物理空間をステップS728で決定したサイズのアライメントに合わせて連続領域に確保する。ステップS712に対応する処理である。
ステップS732では、確保できたか否かを判断する。確保できた場合はステップS734へ進み、それ以外の場合はステップS728からの処理を繰り返す。ステップS714に対応する処理である。
ステップS736では、確保できたか否かを判断する。確保できた場合はステップS738へ進み、それ以外の場合はステップS728からの処理を繰り返す。ステップS718に対応する処理である。
ステップS738では、ステップS730とステップS734でそれぞれ確保した物理領域と論理領域を、ステップS704とステップS706でそれぞれ作成したページテーブルと仮想論理空間に登録する。ステップS720に対応する処理である。
ステップS742では、プロセスのメモリ管理プールにステップS734で確保した領域を登録する。なお、ここでのメモリ管理プールは予め定められたサイズのヒープ領域の空きを管理している。
ステップS746では、共有メモリ領域のための物理空間をステップS744で決定したサイズのアライメントに合わせて連続領域に確保する。ステップS730に対応する処理である。
ステップS748では、確保できたか否かを判断する。確保できた場合はステップS750へ進み、それ以外の場合はステップS744からの処理を繰り返す。ステップS732に対応する処理である。
ステップS752では、確保できたか否かを判断する。確保できた場合は、ステップS754へ進み、それ以外の場合はステップS744からの処理を繰り返す。ステップS736に対応する処理である。
ステップS754では、ステップS746とステップS750でそれぞれ確保した物理領域と論理領域を、ステップS704とステップS706でそれぞれ作成したページテーブルと仮想論理空間に登録する。ステップS738に対応する処理である。
ステップS756では、ステップS750で確保した領域のメモリ属性を設定する。ステップS740に対応する処理である。
ステップS758では、プロセスメモリ管理プールにステップS750で確保した領域を登録する。ステップS742に対応する処理である。
なお、図7から図9はプロセスを実行可能な状態にするときに行われる処理例を示したが、プロセスを実行した後であって、プロセスの動的メモリ、共有メモリのメモリ容量を必要としたときに(つまり、必要とするまでメモリを確保することはしないで、メモリ確保を遅らせる)、それぞれステップS728からステップS742までの処理、ステップS744からステップS758までの処理を行うようにしてもよい。また、プロセスを実行した後であって、プロセスを実行したときに予め確保した動的メモリ、共有メモリでは足りなくなったときに、それぞれステップS728からステップS742までの処理、ステップS744からステップS758までの処理を行うようにしてもよい。これは、より具体的には、そのプログラム内でmalloc()関数等が呼び出された場合に行われるものである。
また、割り当てる領域のサイズは物理空間の空き容量に応じて決定するようにしてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
112…キャッシュ
114…TLB
116…MMU
120…物理メモリ
130…I/O空間
140…ROM
190…バス
200…OS
210…カーネル
220…ローダ
230…MMU
240…TLBハンドラ
290…プロセス1
295…プロセス2
Claims (5)
- プロセスを一意に識別するプロセス識別子と、該プロセスにおいて利用可能なメモリ空間のアドレスである仮想アドレスと、該仮想アドレスに対応する物理アドレスと、該プロセスに割り当てる連続したメモリ容量を対応付けて記憶する記憶手段と、
プロセスを実行可能な状態にするときに、該プロセスが必要とするメモリ容量、物理メモリ上で未使用の連続した領域のメモリ容量、コンピュータにおける中央処理装置によるメモリ容量に関する制限に基づいて決定したメモリ容量を前記記憶手段内の該プロセスに対応するメモリ容量として設定するメモリ容量設定手段
を具備し、
前記メモリ容量設定手段は、前記記憶手段におけるエントリ数が少なくなるようにし、かつフラグメント化されるメモリ容量が小さくなるように、静的なデータのメモリ領域の連続したメモリ容量を決定し、その後に、プロセスの実行時に動的に割り当てられる動的なデータのメモリ領域の連続したメモリ容量を決定し、複数のプロセス間で用いられる共有メモリのメモリ容量を決定する
ことを特徴とする情報処理装置。 - 前記メモリ容量設定手段は、プロセスを実行可能な状態にした後であって、プロセスの実行時に動的に割り当てられる動的メモリ又は複数のプロセス間で用いられる共有メモリのメモリ容量を必要としたときに、該動的メモリ又は該共有メモリのメモリ容量、物理メモリ上で未使用の連続した領域のメモリ容量、コンピュータにおける中央処理装置によるメモリ容量に関する制限に基づいて決定したメモリ容量を前記記憶手段内の該プロセスに対応するメモリ容量として設定する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記メモリ容量設定手段は、プロセスを実行可能な状態にした後であって、前記動的メモリ又は前記共有メモリとして確保したメモリ容量が不足した場合に、該プロセスから要求のあった動的メモリ又は共有メモリのメモリ容量、物理メモリ上で未使用の連続した領域のメモリ容量、コンピュータにおける中央処理装置によるメモリ容量に関する制限に基づいて決定したメモリ容量を前記記憶手段内の該プロセスに対応するメモリ容量として設定する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記メモリ容量設定手段は、前記仮想アドレス又は前記物理アドレスが前記決定したメモリ容量では設定できない場合に、再度該メモリ容量を決定する
ことを特徴とする請求項1から3のいずれか一項に記載の情報処理装置。 - コンピュータを、
プロセスを一意に識別するプロセス識別子と、該プロセスにおいて利用可能なメモリ空間のアドレスである仮想アドレスと、該仮想アドレスに対応する物理アドレスと、該プロセスに割り当てる連続したメモリ容量を対応付けて記憶する記憶手段と、
プロセスを実行可能な状態にするときに、該プロセスが必要とするメモリ容量、物理メモリ上で未使用の連続した領域のメモリ容量、コンピュータにおける中央処理装置によるメモリ容量に関する制限に基づいて決定したメモリ容量を前記記憶手段内の該プロセスに対応するメモリ容量として設定するメモリ容量設定手段
として機能させ、
前記メモリ容量設定手段は、前記記憶手段におけるエントリ数が少なくなるようにし、かつフラグメント化されるメモリ容量が小さくなるように、静的なデータのメモリ領域の連続したメモリ容量を決定し、その後に、プロセスの実行時に動的に割り当てられる動的なデータのメモリ領域の連続したメモリ容量を決定し、複数のプロセス間で用いられる共有メモリのメモリ容量を決定する
ことを特徴とする情報処理プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009167146A JP5531476B2 (ja) | 2009-07-15 | 2009-07-15 | 情報処理装置及び情報処理プログラム |
US12/715,518 US8352698B2 (en) | 2009-07-15 | 2010-03-02 | Information processing apparatus, information processing method and computer readable medium |
CN201010138407.2A CN101957801B (zh) | 2009-07-15 | 2010-03-22 | 信息处理设备和信息处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009167146A JP5531476B2 (ja) | 2009-07-15 | 2009-07-15 | 情報処理装置及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011022790A JP2011022790A (ja) | 2011-02-03 |
JP5531476B2 true JP5531476B2 (ja) | 2014-06-25 |
Family
ID=43466053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009167146A Expired - Fee Related JP5531476B2 (ja) | 2009-07-15 | 2009-07-15 | 情報処理装置及び情報処理プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8352698B2 (ja) |
JP (1) | JP5531476B2 (ja) |
CN (1) | CN101957801B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5920595B2 (ja) * | 2013-07-16 | 2016-05-18 | 横河電機株式会社 | 電子機器、オペレーティングシステム、アクセス管理方法 |
US9880761B2 (en) | 2015-12-28 | 2018-01-30 | International Business Machines Corporation | Restorable memory allocator |
US10963396B1 (en) | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11650742B2 (en) | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11494311B2 (en) * | 2019-09-17 | 2022-11-08 | Micron Technology, Inc. | Page table hooks to memory types |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10289153A (ja) * | 1997-04-11 | 1998-10-27 | Ricoh Co Ltd | 主記憶管理方法および装置 |
JP3517580B2 (ja) * | 1998-02-24 | 2004-04-12 | 株式会社日立製作所 | プロセッサ装置 |
JP2000276404A (ja) * | 1999-03-29 | 2000-10-06 | Nec Corp | 仮想記憶装置および仮想記憶方法、並びに記録媒体 |
US6836836B2 (en) * | 2001-01-19 | 2004-12-28 | Sony Corporation | Memory protection control device and method |
US7370174B2 (en) * | 2005-01-05 | 2008-05-06 | Intel Corporation | Method, system, and program for addressing pages of memory by an I/O device |
JP2008102850A (ja) * | 2006-10-20 | 2008-05-01 | Toshiba Corp | 情報処理装置及び情報処理方法 |
CN101187899B (zh) * | 2006-11-17 | 2010-05-12 | 中兴通讯股份有限公司 | 嵌入式系统存储空间的优化方法 |
CN101241492B (zh) * | 2007-02-06 | 2011-05-11 | 中兴通讯股份有限公司 | 具有容量动态控制功能的内存数据存储装置及其实现方法 |
US7783859B2 (en) * | 2007-07-12 | 2010-08-24 | Qnx Software Systems Gmbh & Co. Kg | Processing system implementing variable page size memory organization |
-
2009
- 2009-07-15 JP JP2009167146A patent/JP5531476B2/ja not_active Expired - Fee Related
-
2010
- 2010-03-02 US US12/715,518 patent/US8352698B2/en active Active
- 2010-03-22 CN CN201010138407.2A patent/CN101957801B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101957801A (zh) | 2011-01-26 |
US20110016286A1 (en) | 2011-01-20 |
JP2011022790A (ja) | 2011-02-03 |
CN101957801B (zh) | 2014-11-19 |
US8352698B2 (en) | 2013-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157306B2 (en) | Faster access of virtual machine memory backed by a host computing device's virtual memory | |
JP5255348B2 (ja) | クラッシュダンプ用のメモリアロケーション | |
US9213623B2 (en) | Memory allocation with identification of requesting loadable kernel module | |
US7783858B2 (en) | Reducing memory overhead of a page table in a dynamic logical partitioning environment | |
CN109074316B (zh) | 页面错误解决方案 | |
US20080235477A1 (en) | Coherent data mover | |
RU2427892C2 (ru) | Способ и устройство для установки политики кэширования в процессоре | |
JP5531476B2 (ja) | 情報処理装置及び情報処理プログラム | |
TWI417724B (zh) | 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品 | |
CN104239238A (zh) | 用于管理转换旁视缓冲的方法和装置 | |
EP2416251B1 (en) | A method of managing computer memory, corresponding computer program product, and data storage device therefor | |
US8117373B2 (en) | VM host responding to initiation of a page swap by transferring pages from host-but-non-guest-addressable RAM to host-and-guest-addressable RAM | |
US8788799B2 (en) | Server computer, computer system, and file management method | |
WO2022193768A1 (zh) | 内存读写指令的执行方法及计算设备 | |
US20050193169A1 (en) | Memory management | |
US20170212831A1 (en) | Aligned variable reclamation | |
JP2019191863A (ja) | 記憶装置,情報処理プログラムおよび情報処理システム | |
JP2017033375A (ja) | 並列計算システム、マイグレーション方法、及びマイグレーションプログラム | |
WO2023165308A1 (zh) | 一种内存回收方法、装置及控制设备 | |
CN114902199A (zh) | 增强型页信息协处理器 | |
US20090031100A1 (en) | Memory reallocation in a computing environment | |
US20230266992A1 (en) | Processor for managing resources using dual queues, and operating method thereof | |
JP5511747B2 (ja) | 画像形成装置および画像形成プログラム | |
JP2011221848A (ja) | 情報処理装置及び情報処理プログラム | |
JPH0378052A (ja) | 仮想記憶管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131015 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131206 |
|
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: 20140325 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140407 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5531476 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |