JP4060847B2 - The memory management unit, a computer system and a memory management method - Google Patents

The memory management unit, a computer system and a memory management method Download PDF

Info

Publication number
JP4060847B2
JP4060847B2 JP2004371727A JP2004371727A JP4060847B2 JP 4060847 B2 JP4060847 B2 JP 4060847B2 JP 2004371727 A JP2004371727 A JP 2004371727A JP 2004371727 A JP2004371727 A JP 2004371727A JP 4060847 B2 JP4060847 B2 JP 4060847B2
Authority
JP
Japan
Prior art keywords
virtual address
structure data
page
address space
hash
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
Application number
JP2004371727A
Other languages
Japanese (ja)
Other versions
JP2006178764A (en
Inventor
史郎 中瀬
Original Assignee
東芝ソリューション株式会社
株式会社東芝
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 東芝ソリューション株式会社, 株式会社東芝 filed Critical 東芝ソリューション株式会社
Priority to JP2004371727A priority Critical patent/JP4060847B2/en
Publication of JP2006178764A publication Critical patent/JP2006178764A/en
Application granted granted Critical
Publication of JP4060847B2 publication Critical patent/JP4060847B2/en
Application status is Expired - Fee Related legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、仮想ページに割り当てられる物理メモリ上の物理ページを管理するのに好適なメモリ管理装置、コンピュータシステム及びメモリ管理方法に関する。 The present invention is suitable memory management apparatus for managing the physical pages of physical memory allocated to the virtual page, a computer system and a memory management method.

仮想記憶方式のコンピュータシステムに適用されるメモリ管理ユニット(Memory Management Unit : MMU)は、従来から、仮想アドレスと物理アドレスとの間のアドレス変換やメモリ保護等を目的とした、メモリ管理のための装置または機能単位として知られている。 Memory management unit applied to a computer system virtual memory system (Memory Management Unit: MMU) is traditionally aimed at address translation and memory protection, etc. between the virtual and physical addresses, for memory management it is known as devices or functional units.

一般的にMMUは、物理メモリをページと呼ばれるブロックごとに分割して、仮想アドレス空間に割り当て(マッピングし)、またマッピングされた仮想アドレスから物理アドレスを検索する機能を有する。 Generally MMU divides physical memory into each blocks called pages, (mapping) assigned to the virtual address space, and has a function of searching the physical address from the mapped virtual address. これによりMMUは、ソフトウェアから認識される仮想アドレス空間を実際の物理アドレス空間より大きく見せたり、個々のソフトウェアに別々の仮想的なアドレス空間を用意し、お互いが物理メモリ上で干渉しないようにする保護機能が実現できるなど、ソフトウェアに対して非常に便利な機能を提供できる。 Thus the MMU, or show greater than the virtual address space of the actual physical address space recognized by the software, and have separate virtual address space to individual software, so that each other do not interfere with the physical memory such as the protection function can be realized, it is possible to provide a very useful feature for the software.

一方、今日のプロセッサの多くは、仮想ページ(アドレス)を物理ページ(アドレス)に変換するための変換情報(ページ変換エントリ情報)を格納するキャッシュ(ページ変換エントリキャッシュ)を有している。 On the other hand, many of the processors today, and has a cache that stores conversion information for converting the virtual page (address) to a physical page (address) (page translation entry information) (page translation entry cache). プロセッサは、ソフトウェアが命令やデータを仮想ページで指定したときに、上記キャッシュを参照することにより当該仮想ページを物理ページに変換して、メモリにアクセスするキャッシュ機能を有する。 Processor, when the software assigned to instructions and data in virtual page, by converting the virtual page to a physical page by referring to the cache has a cache function for accessing the memory. もし、キャッシュに該当する変換情報(キャッシュ情報)が存在しないキャッシュミスの場合、プロセッサは、MMUにキャッシュ情報の追加または入れ替え要求を通知する。 If a cache miss does not exist conversion information corresponding to the cache (cache information), the processor notifies the addition or replacement request of the cache information to the MMU. MMUは、プロセッサからの要求に応じて、主メモリ等に用意されたアドレス変換情報(ページ変換テーブルのエントリ情報)を検索して、該当する変換情報を当該プロセッサのキャッシュにロードするキャッシュ入れ替え機能を有する。 MMU in response to a request from the processor, a main memory such as address conversion information prepared in searching for (entry information page conversion table), the conversion information corresponding cache replacement function to load into the cache of the processor a. なお、製品によってはキャッシュ機能を有するだけでMMUと称するものも知られている。 Incidentally, it is also known that termed MMU only has a cache function depending on the product. ここでは、MMUがキャッシュ入れ替え機能を有するものとし、キャッシュ機能はプロセッサの一部の機能として扱う。 Here, MMU is assumed to have the cache replacement function, caching is treated as part of the function of the processor.

ページ変換テーブルを持たない実装や、ページ変換テーブルが必ずしも全ての仮想ページ分の変換エントリを持つわけではない実装では、最終的にアドレス変換できない場合、つまり該当ページが主メモリに存在しないページフォルトの場合、MMUはソフトウェアにその旨を通知することにより、当該ソフトウェアに該当エントリを追加してもらう処理(いわゆるページフォルト処理)を行わせるのが一般的である。 Implementation and without a page translation table, the implementation page translation table is not necessarily with all the conversion entry for the virtual page, when it is not possible to finally address translation, that is the page faults that page does not exist in the main memory If, MMU is by notifying the software for causing the processing add you the appropriate entries in the software (a so-called page fault processing) are common.

当然ながら、ソフトウェアにページフォルトの処理をさせる頻度が低いほど、当該ソフトウェアの全体の処理性能はよくなる。 Of course, the lower the frequency to the processing of the page fault in the software, the overall processing performance of the software is improved. また、ハードウェアでアドレス変換する場合の処理時間もできるだけ短い方が望ましい。 Also, as short as possible processing time in the case of address translation hardware is desirable. この点だけを考慮すると、ページ変換テーブルに全ての仮想ページ分の変換エントリを持たせることが好ましい。 With this in mind only, it is preferable that a translation entry for all virtual pages in the page translation table. しかし、全ての仮想ページ分の変換エントリ(変換情報)を、配列形式またはリスト形式などでメモリ上に単純に配置すると、非現実的な量の管理メモリ(管理メモリ領域)が必要になるか、或いはハードウェアのMMUにとっても無視できないほどの検索時間がかかってしまう。 However, if all the virtual pages of translation entry (conversion information), when simply placed in the memory on the like array format or list format, unrealistic amount of management memory (management memory region) is required, or search time of about not very negligible on the hardware of the MMU it takes.

例えば、全ての仮想ページ分の変換エントリを単純な配列形式で持つ場合を考える。 For example, consider the case with all the conversion entry for the virtual page in a simple array. この場合、エントリの検索は、インデックス計算1回であるので高速に行えるものの、仮想アドレス空間の大きさに比例した容量の管理メモリ領域が必要となる。 In this case, search for entries, although since the index calculated once performed at high speed, the management memory area capacity in proportion to the magnitude of the virtual address space is needed. 例えば、仮想アドレス空間のページ数が2 64ページ、1ページのサイズ(ページサイズ)が2 12バイト(B)、1エントリ(変換エントリ)のサイズが16Bであるとすると、必要な管理メモリ領域のサイズは 16B*(2 64 /2 12 )=2 56 For example, the page number is 2 64 pages of virtual address space, a page size (page size) is 2 12 bytes (B), 1 entry when the size of the (translation entry) is assumed to be 16B, the management memory space required size 16B * (2 64/2 12 ) = 2 56 B
となる。 To become. この場合、管理メモリ領域は、物理メモリに入りきらないほどの大きさが必要となってしまう。 In this case, the management memory area large enough not fit in the physical memory is required.

一方、仮想アドレス空間内で実際に物理ページを使用する部分のアドレスだけを、単純なリスト構造(エントリをポインタでつなぐ形式)で管理する場合には、必要な管理メモリ領域の大きさの最大値は、使用する物理メモリの容量に比例する。 On the other hand, only the address portion using the actual physical pages in the virtual address space, simply when managing the list structure (format connecting the entry pointer), the necessary management memory region size maximum of It is proportional to the amount of physical memory used. この物理メモリの容量を2 30 B(=1GB)とすると、必要な管理メモリ領域の大きさの最大値は、 When the capacity of the physical memory and 2 30 B (= 1GB), the maximum value of the magnitude of the required management memory region,
16B*(2 30 /2 12 )=2 22 B(=4MB) 16B * (2 30/2 12 ) = 2 22 B (= 4MB)
と、現実的な大きさとなる。 And, a realistic size. しかし、リスト構造の場合、前述の配列形式と異なり、インデックス計算でエントリの位置を算出することはできない。 However, when the list structure, unlike the arrangement above format, it is impossible to calculate the position of the entry in the index calculation. この場合、アドレス変換のたびに、4MB/16Bで示される個数のエントリ、即ち256K個のエントリの中から該当エントリを順次検索しなければならず、管理メモリ領域のアクセスのために多大な時間がかかってしまう。 In this case, each time the address conversion, the number of entries indicated by 4MB / 16B, i.e. must be sequential search of the relevant entry from the 256K entries, a lot of time for access management memory region It took to become.

このような問題を解決するための一般的な方法、つまり、アドレス変換時のメモリアクセス回数を減らし、管理メモリ領域も現実的な大きさに抑えることが可能な一般的な方法として、以下に詳述する2つの方法、(1)ツリー構造を用いた方法、及び、(2)ハッシュテーブルを用いた方法が知られている。 General methods for solving this problem, that is, reducing the number of memory accesses during address translation, as a general method that can suppress management memory region realistic size, more below two methods of predicates, method using (1) a tree structure, and, there is known a method of using (2) a hash table.

(1)ツリー構造 仮想アドレス空間のサイズとページサイズの間に中間層を有するツリー構造が用意される。 (1) Tree structure having an intermediate layer between the size and the page size of the tree structure virtual address space is provided. 根及び中間層の管理データは直下の層のサブツリーへのポインタの配列を保持し、葉の管理データはアドレス変換情報を含むページ情報を保持する。 Management data roots and the intermediate layer holds an array of pointers to sub-tree of the layer immediately below, the management data of the leaves holding the page information including address conversion information. この構造では、ツリーの根から葉を辿ることによりアドレス変換が実行される。 In this structure, the address translation is performed by tracing the leaves from the root of the tree.

ここで、物理メモリと対応しない仮想アドレス(つまり、未使用または不正な仮想アドレス)については、適当な中間層に、使用していない旨のデータ(たとえばNULLポインタ)を保持する。 Here, the physical memory and does not correspond virtual address (i.e., unused or illegal virtual address) for, in a suitable intermediate layer holds data indicating that unused (e.g. a NULL pointer). このようなツリー構造を用いることで、物理メモリと対応しない仮想アドレスについて、葉の管理情報を保持する必要がなく、管理メモリ領域を現実的な大きさに抑えることができる。 By using such a tree structure, a virtual address which does not correspond to the physical memory, it is not necessary to retain the management information of the leaves, can be suppressed management memory region a realistic size. また、ツリー構造を用いたアドレス変換では、必要なメモリアクセス回数はツリーの深さに比例する。 Further, the address conversion using the tree structure, the number of memory accesses required is proportional to the depth of the tree. このため、最悪となる場合の処理時間(処理時間の最悪値)を確定できるメリットがある。 Therefore, there is a merit of determining the processing time when the worst (the worst value of the processing time).

(2)ハッシュテーブル 仮想アドレスの各々に対して、適当に選ばれたハッシュ関数を用いてハッシュ演算が施される(例えば、特許文献1参照)。 (2) for each of the hash table virtual address, hash calculation is performed by using a hash function properly chosen (for example, see Patent Document 1). このハッシュ演算の結果(ハッシュ値)の各々に配列またはリスト(グループ)が対応付けられる。 The hash operation results each array or list (hash value) (groups) are associated. この配列またはリストは、複数個のページ情報を保持する。 The array or list holds a plurality of page information.

アドレス変換時には、対象となる仮想アドレスaddrに対してハッシュ関数を用いてハッシュ演算が施される。 During address translation, the hash calculation using the hash function on the virtual address addr of interest is performed. このハッシュ演算の結果に基づいて、該当するグループ(ハッシュグループ)の中から該当するページが検索される。 Based on the result of the hash operation, corresponding page from a corresponding group (hash groups) are searched. ハッシュ関数の一例を次式に示す。 It shows an example of a hash function to the following equation.

Group No. = ((addr & 0xFFFF000) >> 12) ^ ((addr & 0xFFFF0000000) >> 28) Group No. = ((addr & 0xFFFF000) >> 12) ^ ((addr & 0xFFFF0000000) >> 28)
(1) (1)
ここで、「addr」は仮想アドレスを、「&」は論理積演算を、「^」は排他的論理和(EXOR)演算を、「A >> B」はAをBビットだけ右シフトする操作を示す。 Here, "addr" is a virtual address, "&" is a logical AND operation, "^" is an exclusive-OR (EXOR) operation, "A >> B" operation to right shift the A by B bits It is shown. ここでは、仮想アドレスaddrがビット43(MSB)〜0(LSB)の44ビットで表されるものとする。 Here, it is assumed that the virtual address addr is represented by 44 bits of the bit 43 (MSB) ~0 (LSB).

上記のハッシュ関数を用いたハッシュ演算により、仮想アドレスaddrのビット27〜12とビット44〜28とから16ビットのハッシュ値が生成される。 The hash computation using a hash function of the hash value of 16 bits from the bit 27 to 12 and bits 44 to 28 Metropolitan virtual address addr is generated. この16ビットのハッシュ値が、グループ(配列またはリスト)に対応付けられる。 Hash value of the 16 bits are associated with the group (array or list). ここで、各グループが8エントリのページ情報の配列で実装される場合を想定する。 Here, it is assumed that each group is implemented by an array of page information 8 entries. この場合、必要な管理メモリ領域の大きさは、1エントリのサイズが16Bであるとすると、 In this case, the size of the required management memory region, when the size of one entry is to be 16B,
16B*2 16 *8=2 23 B(=8MB) 16B * 2 16 * 8 = 2 23 B (= 8MB)
となる。 To become.

この例では、検索に必要なメモリロードの回数は、理論的には最大8回である。 In this example, the number of memory load required for search is a maximum of eight times in theory. しかし、現実の実装の多くでは、配列データは物理アドレスが連続した領域に置かれることから、1回のメモリロードでは、(例えば128バイトなどの)ライン単位でページ情報がキャッシュに読み込まれる。 However, in many actual implementation, the sequence data from the physical address is placed in a continuous area, in one memory load, the page information (e.g., such as 128 bytes) line units are read into the cache. このため、第2エントリ以降はデータキャッシュにヒットさせることができ、メモリロードは1回〜数回で済ませることができる。 Thus, the second entry since it is possible to hit the data cache, memory load can be dispensed in 1 to several times.

このように、ハッシュテーブルを用いた方法では、グループ内を配列形式にすると非常に高速な処理が可能となる。 Thus, the method using a hash table, very a high-speed processing is possible when the group in the array. しかし、全ての仮想ページに対して変換エントリを用意することはできず、また全ての物理ページを格納できるかどうかも不確定である(使用する仮想アドレスの配置とハッシュ関数による)。 However, it is not possible to provide a translation entry for every virtual page and is also uncertain whether store all physical pages (by arrangement and a hash function of the virtual address to be used). ところが、現実には上記のような簡単なハッシュ関数でも特定のグループにエントリが集中することは稀で、真に必要なエントリの多くはハッシュテーブル内に存在する可能性が高い。 However, in reality, be concentrated is an entry in a particular group be a simple hash function as described above rare, many truly necessary entries are likely to be present in the hash table. したがって、必要なエントリがないためにソフトウェアに当該エントリの追加(更新)を依頼する頻度は低く、平均としての性能は優れている。 Therefore, the frequency of requests additional (update) of the entry in software because there is no entry required is low, the performance of the average is excellent. また、グループ内をリスト形式または配列のリスト形式にすることにより、使用する物理ページの全てを網羅することも、現実の範囲で可能である。 Further, by the group in list format of list format or array, it is also possible in the real range to cover all physical pages used. 但し、使用する仮想アドレスの配置によっては、最悪の場合、同一のグループに非常に多くのエントリが存在してしまうため、処理時間の最悪値は非常に大きくなる虞がある。 However, depending on the arrangement of the virtual address to be used, in the worst case, for a large number of entries in the same group will be present, the worst value of the processing time is likely to become very large.
特開平7−49812号公報(段落0023乃至0026、図4) JP-7-49812 discloses (paragraph 0023 to 0026, FIG. 4)

仮想記憶方式のコンピュータシステムにおいては、ソフトウェアの機能要件や構成によっては、例えばアプリケーションが自由に仮想アドレスを選びたいという場合がある。 In a computer system in a virtual memory system, where the functional requirements and configuration of the software, for example, the application may be referred want to choose freely virtual address. またその用途によっては、平均性能もある程度要求し且つ処理時間の最悪値を定数にバインドしたいという要求(リアルタイム性要求)がある。 Also depending on its use, there is an average performance request to bind to the constant worst value of some degree requesting and processing time (real-time requirements). このような要求がある場合で、しかも64ビットなどの非常に大きな仮想アドレス空間を使用する場合、前述した従来技術ではそれぞれ次のような問題がある。 If there is such a demand, moreover when using very large virtual address space such as 64-bit, in the prior art described above have the following problems, respectively.

(1)ツリー構造では、処理時間の最悪値はバインドできるが、仮想アドレス空間が非常に大きいと、中間層数を多くする必要が生じる(中間層数を減らすと管理メモリ領域が大きくなる)。 In (1) tree structure, can be the worst value bound of the processing time, the virtual address space is very large, necessary to increase the intermediate layer number is generated (the management memory area remove intermediate layer number increases). また、たとえ実際に使用する物理領域が小さくても、必ずツリーの深さ分のメモリロードは必要であり、その数が多いと平均性能はあまり良くない。 Moreover, even with a small physical area to be actually used even if a sure memory loading depth of the tree needed, the average performance and the large number is not so good.
(2)ハッシュテーブルでは、平均の性能は優れている。 (2) In the hash table, the average performance is excellent. しかし、処理時間の最悪値は非常に大きくなり、リアルタイム性は確保できない。 However, the worst value of the processing time becomes very large, real-time can not be ensured.

本発明は上記事情を考慮してなされたものでその目的は、非常に大きな仮想アドレス空間を使用する場合でも、ある程度の平均性能を確保したまま処理時間の最悪値を制限でき、効率的なアドレス変換を実現可能とする、メモリ管理装置、コンピュータシステム及びメモリ管理方法を提供することにある。 The present invention is their purpose has been made in view of these circumstances, even when using a very large virtual address space, can limit the worst value of the processing time while maintaining a certain degree of average performance, efficient address and feasible conversion, memory management unit, is to provide a computer system and a memory management method.

本発明の1つの観点によれば、仮想記憶方式のコンピュータシステムに適用されて、仮想アドレスから物理アドレスへのアドレス変換のためのアドレス変換情報を含み、仮想アドレスが属する仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を用いたメモリ管理を行うメモリ管理装置にが提供される。 According to one aspect of the present invention, is applied to a computer system in a virtual memory system, comprising an address translation information for the address translation from a virtual address to a physical address, the physical memory allocated to the virtual page which the virtual address belongs the memory management apparatus that performs memory management using page information about the physical page above is provided. このメモリ管理装置は、上記コンピュータシステムで実際に使用される可能性のある仮想アドレスが属する、仮想アドレス空間内の領域である仮想アドレス領域に対応付けられる木構造データであって、当該仮想アドレス領域に含まれる仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を検索するのに用いられる木構造データを上記物理メモリ上に生成する木構造データ生成手段と、上記仮想アドレス空間に属する全ての仮想アドレス領域の各々に対応付けられるエントリであって、当該仮想アドレス領域に対応付けられた上記木構造データを指すポインタが設定可能なエントリを含むハッシュ構造データを上記物理メモリ上に生成するハッシュ構造データ生成手段と、任意の仮想アドレスから当該仮想アドレスが The memory management device, the virtual address that may be actually used in the computer system belongs, a tree structure data associated with the virtual address space is an area in the virtual address space, the virtual address space a tree structure data generating means for the tree structure data used to search for the page information about the physical page in the physical memory allocated to the virtual page generated on the physical memory included in, all belonging to the virtual address space a entry associated with the each of the virtual address space, hash structure resulting hash structure data including the virtual address space to a possible pointer to the tree structure data associated with the setting entries on the physical memory a data generating means, it is the virtual address of any virtual address する仮想アドレス領域に対応付けられた上記ハッシュ構造データのエントリを検索することにより、当該仮想アドレス領域に対応付けられた上記木構造データを特定して、当該木構造データから当該仮想アドレスが属する仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を検索する検索手段とを備える。 To by searching the entries in the hash structure data associated with the virtual address space, the virtual address to identify the tree structure data associated with the area, the virtual which the virtual address belongs from the tree structure data and a retrieval means for retrieving page information about the physical page in the physical memory allocated to the page.

このような構成において、木構造データ生成手段は、コンピュータシステムで実際に使用される可能性のある仮想アドレス領域(仮想アドレス空間内の仮想アドレス領域)に対応付けられる木(ツリー)構造データを生成する。 In such a configuration, the tree structure data generating means generates the tree (tree) structure data associated with the (virtual address space in the virtual address space) virtual address space that might be actually used in a computer system to. この木構造データは、当該木構造データに対応する仮想アドレス領域に含まれる仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を検索するのに用いられる。 The tree structure data is used to find the page information about the physical pages of physical memory allocated to the virtual pages in the virtual address space corresponding to the tree structure data. 一方、ハッシュ構造データ生成手段は、仮想アドレス空間に属する全ての仮想アドレス領域の各々に対応付けられるエントリであって、当該仮想アドレス領域に対応付けられた木構造データを指すポインタが設定可能なエントリを含むハッシュ構造データ(例えば、ハッシュテーブル)を生成する。 On the other hand, the hash structure data generating means is a entry associated with each of all the virtual address space belonging to the virtual address space, the pointer is configurable entries pointing to the tree structure data associated with the virtual address space hash structure data (e.g., a hash table) for generating a. 検索手段は、例えばソフトウェアから要求された任意の仮想アドレスを物理アドレスに変換するアドレス変換等が必要な場合(特にページ変換エントリキャッシュの入れ替えが必要な場合)、当該仮想アドレスに基づいて、当該仮想アドレスが属する仮想アドレス領域に対応付けられたハッシュ構造データのエントリを検索し、当該ハッシュ構造データのエントリから当該仮想アドレス領域に対応付けられた木構造データ(の所在)を特定することで、当該特定された木構造データから、当該仮想アドレスが属する仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を検索する。 Retrieval means, for example (especially page translation entry cache replacement is required) if any virtual address requested by the software address conversion for converting the physical address is necessary, based on the virtual address, the virtual address searches for an entry of the hash structure data associated with the virtual address space belongs, by specifying the virtual address space in the associated tree structure data (location of) the entry of the hash structure data, the from the specified tree structure data, retrieves the page information about the physical page in the physical memory where the virtual address is assigned to the virtual page belongs.

ここで、ハッシュ構造データ内のエントリの検索処理は、最悪でも当該ハッシュ構造データに対応するアドレス空間内のアドレス領域数分に限られる。 Here, the search processing of the entries in the hash structure data is limited to the hash structure address area minutes in the address space corresponding to the data at worst. 特に、ハッシュ構造データが、当該ハッシュ構造データに対応する仮想アドレス空間に属する仮想アドレスのハッシュ値に応じて複数のグループに分けて管理され、当該グループ毎にそれぞれ異なる仮想アドレス領域に対応付けることが可能な複数のエントリを有する構成とするならば、ハッシュ構造データ内のエントリの検索処理は、最悪でも、ハッシュ値に対応するグループに属する無仮想アドレス領域数分に限られる。 In particular, hash structure data, in accordance with the hash value of the virtual address belonging to the virtual address space corresponding to the hash structure data is managed in a plurality of groups, it can be associated to different virtual address space for each the group if a structure having a plurality of entries, the search processing of the entries in the hash structure data, at worst, limited to non-virtual address space number of belonging to the group corresponding to the hash value. また、検索(特定)されたハッシュテーブル内のエントリに対応付けられた木構造データ内のページ情報の検索は、当該木構造の深さに制限される。 The search of the page information retrieval (specific) is within the associated tree structure data to an entry in the hash table is limited to the depth of the tree structure. このため上記の構成においては、ある程度の平均性能を確保したまま最悪処理時間も制限でき、且つソフトウェアは高い自由度で使用する仮想アドレスを選択できる。 Therefore in the arrangement, it can also limit the worst processing time while maintaining a certain degree of average performance, and the software may select a virtual address to be used with a high degree of freedom.

ここで、上記メモリ管理装置に、仮想アドレス空間の大きさ、登録すべき仮想アドレス領域の大きさ、ハッシュ構造データのグループ数、ハッシュ構造データのグループ内のエントリ数、ハッシュ値の計算に用いられるハッシュ計算式、及び木構造データの示す木構造の深さ(等のパラメータ群)のうちの少なくとも1つ(のパラメータ)を外部からの指定に応じて設定するための設定手段を追加すると良い。 Here, the memory management unit, the size of the virtual address space, the size of the virtual address space to be registered, the number of groups of hash structure data, the number of entries in the group of hash structure data, used to calculate the hash value hash calculation, and it is preferable to add a setting means for setting according to at least one of the depth of the tree structure indicated by the tree structure data (parameter group etc.) (parameters) to the specified external. このように、ハッシュ構造(ハッシュテーブル)や木構造(ツリー)の詳細構造はシステムの規模やソフトウェア等からの要求内容によって最適の形式が異なる可能性があることから、外部(例えばソフトウェア)からの指定によってハッシュ構造の大きさや木構造の深さなどが設定可能な構成とすることにより、システムの起動時や仮想アドレス空間の作成時などにそのシステムに適した具体的データ構造を用意することができる。 Thus, since the optimal form may differ depending request content from a hash structure (hash table) and detailed structure of the tree structure (tree) is the scale and software for a system from the outside (e.g., software) by including the depth of the size and the tree structure of a hash structure by specifying to the configurable settings, it is providing a specific data structure suitable for that system, such as during the creation of start-up and the virtual address space of the system it can.

更に、ソフトウェアがシステムの規模などの情報の一部を関知しない場合を考慮して、上記メモリ管理装置に構造決定手段を追加し、当該構造決定手段が(つまりメモリ管理装置が自ら)それらの情報を取得して詳細なデータ構造を決定する構成とするならば、ソフトウェアでのシステム情報管理を軽減し、一層効果的なメモリ管理を実現することが可能となる。 Furthermore, considering a case where software is not aware of some information such as the system scale, add a structure determination unit with the memory management unit, the structure determination means (i.e. a memory management device itself) the information if the acquired and configured to determine a detailed data structure, reduce system information management software, it is possible to realize a more efficient memory management.

ここで、上述のメモリ管理装置の機能が、コンピュータシステム(特に、コンピュータシステム内のプロセッサ装置)に組み込まれた構成とすることも可能である。 Here, functions of the above-described memory management apparatus, a computer system (in particular, a processor device in a computer system) can be configured built into.

本発明によれば、仮想アドレス空間内の登録すべき仮想アドレス領域に対応する木構造データと、仮想アドレス空間に属する全ての仮想アドレス領域の各々に対応するエントリを含むハッシュ構造データとにより、仮想領域内の仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報が保持・管理される構成とすることにより、ある程度の平均性能を確保したまま最悪処理時間も制限でき、且つソフトウェアは高い自由度で使用する仮想アドレスを選択できる。 According to the present invention, the tree structure data corresponding to the virtual address space to be registered in the virtual address space, by the hash structure data containing entries corresponding to each of all the virtual address space belonging to the virtual address space, virtual with the structure page information about the physical page in the physical memory allocated to the virtual page in the region is maintained and managed, also limit the worst processing time while maintaining a certain degree of average performance, and software high flexibility in can select the virtual address to be used.

以下、本発明の実施形態につき図面を参照して説明する。 Hereinafter will be described with reference to the accompanying drawings embodiments of the present invention.

[第1の実施形態] First Embodiment
図1は本発明の第1の実施形態に係る仮想記憶方式のコンピュータシステムを示すブロック構成図である。 Figure 1 is a block diagram illustrating a computer system in a virtual memory system according to the first embodiment of the present invention. このコンピュータシステムは、プロセッサ1と、主メモリ2と、MMU(メモリ管理ユニット)3とを備えている。 The computer system includes a processor 1, a main memory 2, and a MMU (memory management unit) 3. プロセッサ1、主メモリ2及びMMU3は、バス4によって相互接続されている。 Processor 1, a main memory 2 and MMU3 are interconnected by a bus 4. 本実施形態では、プロセッサ1、主メモリ2及びMMU3は、中央処理装置(CPU)の構成要素であるものとする。 In this embodiment, the processor 1, a main memory 2 and MMU3 is assumed to be a component of a central processing unit (CPU). 図1では、CPU内の他の要素は本発明と直接関係しないため省略されている。 In Figure 1, other elements in the CPU are omitted because it is not directly related to the present invention. 同様に、図1では、ハードディスクドライブ(HDD)等の入出力装置(I/O装置)も、本発明と直接関係しないため省略されている。 Similarly, in FIG. 1, the input-output device such as a hard disk drive (HDD) (I / O devices) have also been omitted for the present invention and are not directly related.

プロセッサ1は、演算ユニット11とページ情報エントリキャッシュ12とを含む。 The processor 1 includes an arithmetic unit 11 and the page information entry cache 12. 演算ユニット11は、プログラム命令を実行しデータを処理する。 Arithmetic unit 11 processes the data and executes the program instructions. ページ情報エントリキャッシュ12の各エントリは、仮想アドレス空間内の一部のページについてのページ情報をキャッシュエントリ情報として保持するのに用いられる。 Each entry in the page information entry cache 12 is used to hold the page information about some of the pages in the virtual address space as a cache entry information. このページ情報は、仮想アドレスと物理アドレスとの間のアドレス変換に用いられるアドレス変換情報を含む。 The page information includes address conversion information used for address conversion between the virtual address and the physical address. このページ情報は更に、該当する物理ページを管理するためのページ管理情報を含む。 The page information further includes a page management information for managing the corresponding physical page. このページ管理情報は、該当する物理ページの保護のための情報(保護情報、ページ属性情報)、例えば「読み出し許可/禁止」「書き込み許可/禁止」「キャッシュ許可/禁止」などを表す情報を含む。 The page management information contains information for the protection of the corresponding physical page (protection information, page attribute information), for example, information representing such as "read permission / prohibition", "write enable / disable" "Cache enable / disable" . ここで、1ページの大きさ(ページサイズ)は4KBであるものとする。 Here, 1 page of size (page size) assumed is 4KB.

主メモリ2は、仮想アドレス空間内の一部のページ(仮想ページ)が割り当てられる物理ページを提供する物理メモリである。 The main memory 2 is a physical memory to provide a physical page in which a part of a page in the virtual address space (virtual page) is assigned. 主メモリ2の記憶領域の一部はソフトウェア領域21として用いられ、別の一部はメモリ管理領域22として用いられる。 Part of the storage area of ​​the main memory 2 is used as a software area 21, and another portion is used as memory management area 22. ソフトウェア領域21には、オペレーティングシステム(OS)及びアプリケーションプログラム等の各種ソフトウェア(を構成するプログラム命令)と、当該ソフトウェアが使用するデータとが格納される。 The software area 21, and an operating system (OS) and (program instructions therein) various software such as an application program, the software and data to be used is stored. メモリ管理領域22には、ページ検索ツリー221と領域検索ハッシュテーブル222とが格納される。 The memory management area 22, and page search tree 221 and region search hash table 222 is stored. メモリ管理領域22の大きさは固定ではなく、例えばページ検索ツリー221、或いは領域検索ハッシュテーブル222の数の増減等に応じて変化する。 The size of the memory management area 22 is not fixed, changes in accordance with the example page search tree 221, or region increase or decrease in the number of search hash table 222 and the like. 当然のことであるが、メモリ管理領域22の大きさが大きくなれば、ソフトウェア領域21の大きさは小さくなる。 Of course, the larger the size of the memory management area 22, the size of the software area 21 is reduced.

第1の実施形態において、ページ検索ツリー221は、仮想アドレス空間における連続するIMページの領域(以下、仮想アドレス領域と称する)毎に用意される。 In the first embodiment, page search tree 221, the virtual address space of the IM successive pages in the space (hereinafter, referred to as virtual address space) is provided for each. ページ検索ツリー221は、当該ツリー221に対応する1Mページのページ情報を検索するための木構造データである。 Page search tree 221 is a tree structure data for searching the page information of 1M page corresponding to the tree 221.

領域検索ハッシュテーブル222は、ページ検索ツリー221を検索するのに用いられるハッシュ構造データである。 Region search hash table 222, a hash structure data used to search for page search tree 221. 領域検索ハッシュテーブル222は、システムがサポートする仮想アドレス空間毎に用意される。 Region search hash table 222 is prepared for each virtual address space that the system supports. 仮想アドレス空間内の各アドレスは、それぞれ、複数のグループ(ハッシュグループ)のいずれかに属する。 Each address in the virtual address space, respectively, belong to one of a plurality of groups (hash group). 領域検索ハッシュテーブル222は、このハッシュグループ毎にm個のエントリを有する。 Region search hash table 222 having m entries for each hash group. このm個のエントリは、共通のハッシュグループに属するn個(n>m)の仮想アドレス領域から選択される、最大m個の任意の仮想アドレス領域に割り当て可能である。 The m entries can be assigned to the virtual address space selected from a maximum of m any virtual address space of n (n> m) belonging to a common hash groups. 領域検索ハッシュテーブル222の各エントリには、当該エントリに対応する仮想アドレス領域に属する仮想アドレスの共通部分(つまり、仮想アドレスの下位32ビットを除く上位ビット)と、当該エントリに対応する仮想アドレス領域に固有のページ検索ツリー221を指すポインタ(ここでは、後述するようにページ検索ツリー221の22ビット中間層221bを指すポインタ)とを含むエントリ情報が保持される。 Each entry in the area retrieval hash table 222, the virtual address space and a common portion of the virtual address belonging to the virtual address space (i.e., the upper bits excluding the least significant 32 bits of the virtual address), corresponding to the entry corresponding to the entry the (in this case, a pointer to a 22-bit intermediate layer 221b of page search tree 221 as described below) pointer to a unique page search tree 221 entry information including the are retained.

図2は領域検索ハッシュテーブル222のデータ構造例を示す。 Figure 2 shows an example of a data structure of the area retrieval hash table 222. 第1の実施形態では、仮想アドレスは64ビット、物理アドレスは32ビットである。 In the first embodiment, the virtual address is 64 bits, the physical address is 32-bit. また、ページサイズ及び仮想ページ領域サイズは、それぞれ4KB及び4GBである。 Further, the page size and virtual page region size are respectively 4KB and 4GB. したがって、仮想ページ領域のページ数は4GB/4KB=1M(ページ)である。 Therefore, the number of pages of the virtual page area is 4GB / 4KB = 1M (page). 更に、仮想アドレス空間内の各アドレスは、それぞれ、2 16個(つまり64K個=65,536個)のハッシュグループGi(iはグループ番号であり、i=0 x 0000,0 x 0001,…0 x FFFFである)のいずれかに属する。 Furthermore, each address in the virtual address space, respectively, the hash group Gi (i 2 16 (i.e. 64K number = 65,536) and the group number, i = 0 x 0000,0 x 0001 , ... 0 belong to any of the x FFFF is).

図2の例では、領域検索ハッシュテーブル222は、64K個のハッシュグループ毎に、当該グループのグループ番号に対応付けられたm=8個のエントリを有する。 In the example of FIG. 2, the region search hash table 222, for each 64K pieces of hash groups having m = 8 entries associated with the group number of the group. ここでは、例えばグループ番号iが0(i=0 x 0000)のグループG0に対応する8つのエントリの1つ(先頭エントリ)には、仮想アドレスaddrが0 x 0000 0000 0000 0000〜0 x 0000 0000 FFFF FFFFの範囲の仮想アドレス領域に属する1Mページのページ情報を検索するためのページ検索ツリー221へのポインタと、当該仮想アドレスaddrの共通部分(即ち、64ビットの仮想アドレスaddrのうちの下位32ビットを除く上位アドレス0 x 0000 0000)とを含むエントリ情報が保持される。 Here, for example, the group number i is 0 (i = 0 x 0000) One of the eight entries corresponding to the group G0 of (first entry), the virtual address addr is 0 x 0000 0000 0000 0000~0 x 0000 0000 a pointer to a page search tree 221 for retrieving page information 1M pages belonging to the virtual address space in the range of FFFF FFFF, the lower 32 of the common part (i.e., the 64-bit virtual address addr of the virtual address addr entry information including the upper address 0 x 0000 0000), except the bits are maintained. この8つのエントリの集合は、グループ番号から一意に特定できる。 This set of eight entries, can be uniquely identified from a group number. このグループ番号は、例えば次式に示すハッシュ関数 The group number is, for example hash function shown in the following formula
Group No. Group No.
= ((addr & 0x0000FFFF00000000) >> 32) ^ ((addr & 0xFFFF00000000000) >> 48) = ((Addr & 0x0000FFFF00000000) >> 32) ^ ((addr & 0xFFFF00000000000) >> 48)
(2) (2)
を用いたハッシュ演算によって算出されるハッシュ値により示される。 It indicated by the hash value calculated by the hash calculation using. 一方、算出されたグループ番号(ハッシュ値)で特定されるエントリ集合のうち、アドレスaddrが属する仮想アドレス領域に対応するページ検索ツリー221へのポインタが保持されているエントリは、当該アドレスaddrのうちの下位32ビットを除く上位アドレスが保持されているエントリに一致する。 On the other hand, among the entries set specified by the calculated group number (hash value), the entry pointer to page search tree 221 corresponding to the virtual address space address addr belongs is held, among the address addr upper address except the least significant 32 bits of the matches the entries held.

図2の例では、グループ番号iが0(i=0 x 0000)のグループG0に対応する8つのエントリのうちの先頭エントリを除く全てのエントリには、空きエントリを示すデータ、例えばNULLデータが保持されている。 In the example of FIG. 2, all entries except the first entry of the eight entries group number i corresponds to the group G0 of 0 (i = 0 x 0000) , the data indicating the free entry, for example, NULL data It is held.

同様に、グループ番号iが2(i=0 x 0002)のグループG2に対応する8つのエントリのうちの6番目のエントリには、仮想アドレスaddrが0 x 0006 0004 0000 0000〜0 x 0006 0004 FFFF FFFFの範囲の仮想アドレス領域に属する1Mページのページ情報を検索するためのページ検索ツリー221へのポインタと、当該仮想アドレスaddrの下位32ビットを除く上位アドレス0 x 0006 0004とを含むエントリ情報が保持される。 Similarly, the sixth entry of the eight entries group number i corresponding to the group G2 of 2 (i = 0 x 0002) , the virtual address addr is 0 x 0006 0004 0000 0000~0 x 0006 0004 FFFF a pointer to a page search tree 221 for retrieving page information 1M pages belonging to the virtual address space in the range of FFFF, the entry information including the upper address 0 x 0006 0004 except the lower 32 bits of the virtual address addr It is held. このように、図2の領域検索ハッシュテーブル222の例では、仮想アドレスaddrが0 x 0000 0000 0000 0000〜0 x 0000 0000 FFFF FFFFの範囲の仮想アドレス領域と、仮想アドレスaddrが0 x 0006 0004 0000 0000〜0 x 0006 0004 FFFF FFFFの範囲の仮想アドレス領域との、2つの仮想アドレス領域が登録された状態を示す。 Thus, in the example of area search hash table 222 in FIG. 2, a virtual address space in the range of the virtual address addr is 0 x 0000 0000 0000 0000~0 x 0000 0000 FFFF FFFF, virtual address addr is 0 x 0006 0004 0000 between 0,000 to 0 x 0006 0004 virtual address space in the range of FFFF FFFF, indicating the two states virtual address space is registered.

図3は、仮想アドレスaddrが0 x 0000 0000 0000 0000〜0 x 0000 0000 FFFF FFFFの範囲の仮想アドレス領域に属する1Mページのページ情報を検索するためのページ検索ツリー221の木構造の一例を示す。 Figure 3 shows an example of a virtual address addr is 0 x 0000 0000 0000 0000~0 x 0000 0000 FFFF FFFF tree structure of page search tree 221 for retrieving page information 1M pages belonging to the virtual address space in the range of . ここでは、ページ検索ツリー221は、根(ルート)221aと、1段の中間層(22ビット中間層)221bと、複数の葉の層(12ビット葉の層)221cとから構成される。 Here, page search tree 221 is comprised of a root (root) 221a, a first stage of the intermediate layer (22 bit intermediate layer) 221b, (a layer of 12-bit leaves) multiple layers of leaves and 221c.

根221aは、図3に示すページ検索ツリー221に対応する領域検索ハッシュテーブル222内のエントリによって実現される。 Roots 221a is realized by an entry in the area retrieval hash table 222 corresponding to the page search tree 221 shown in FIG. 根221aには、22ビット中間層221bへのポインタが保持される。 The roots 221a, a pointer is maintained to 22-bit intermediate layer 221b. なお、図3に示すページ検索ツリー221の根221aと、当該ページ検索ツリー221に対応する領域検索ハッシュテーブル222内のエントリとを切り離し、当該エントリにページ検索ツリー221の根221aを指すポインタが保持され、当該ページ検索ツリー221の根221aに当該ページ検索ツリー221の22ビット中間層221bを指すポインタが保持される構成としても良い。 Incidentally, the root 221a of the page search tree 221 shown in FIG. 3, disconnect the entries in the area retrieval hash table 222 corresponding to the page search tree 221, the pointer is maintained that points to the root 221a of the page search tree 221 in the entry is, may be configured to pointer to a 22-bit intermediate layer 221b of the page search tree 221 to the root 221a of the page search tree 221 is maintained.

第1の実施形態では、1Mページ(4GB)の仮想アドレス領域は、1,024(=1K)等分されて、連続する1Kページ(=4MB=2 22 B)単位で管理される。 In the first embodiment, the virtual address space of 1M page (4GB) is, 1,024 (= 1K) is equally divided and managed in continuous 1K page (= 4MB = 2 22 B) units. ページ検索ツリー221の22ビット中間層221bは、この1Mページ(4GB)の仮想アドレス領域が1,024等分された1,024個の1Kページ(=4MB=2 22 B)に対応する1,024個のエントリを配列形式で有する。 Page 22-bit intermediate layer 221b of the search tree 221 1 corresponding to the 1M page 1024 1K pages virtual address area is 1,024 equal parts of (4GB) (= 4MB = 2 22 B), having 024 entries in an array format. ここで1Kページに属する全ての64ビットの仮想アドレスの上位42ビットは共通である。 Here the upper 42 bits of the virtual addresses of all the 64 bits belonging to 1K pages are common. また、この1Kページを含む上記1Mページ(4GB)の仮想アドレス領域に属する全ての仮想アドレスの上位32ビットは、前記したように共通である。 Further, the upper 32 bits of all the virtual address belonging to the virtual address space of the 1M page containing this 1K page (4GB) are common as described above. そこで、22ビット中間層221bの各エントリEjの位置、更に詳細に述べるならば先頭位置を基準とする相対位置(つまりインデックス)は、仮想アドレスの上位32ビットの下位側に続く10ビット、即ちビット31〜22の値jに対応付けられる。 Therefore, the position of each entry Ej 22-bit intermediate layer 221b, further relative position from the head position Stated in detail (i.e. index) is 10 bits following the lower side of the upper 32 bits of the virtual address, i.e., bits associated with the value j of 31 to 22. この中間層221bの各エントリは、それぞれ下位の層(ここでは、葉の層221c)へのポインタを保持することが可能である。 Each entry in the intermediate layer 221b (here, the layer 221c of the leaf) lower layer, respectively it is possible to hold a pointer to.

葉の層221cは、1Kページ、即ち1,024ページの各々に対応した1,024個のエントリを配列形式で有する。 Layer 221c of the leaf, has 1K pages, i.e. 1,024 entries corresponding to each of the 1,024 pages in an array format. 1ページの大きさ(ページサイズ)は4KB(=2 12 B)である。 1 page of size (page size) is 4KB (= 2 12 B). そこで第1の実施形態では、葉の層221cの各エントリEjの位置、更に詳細に述べるならば先頭位置を基準とする相対位置(つまりインデックス)は、仮想アドレスの下位12ビットの上位側に続く10ビット、即ちビット21〜12に対応付けられる。 Therefore, in the first embodiment, the position of each entry Ej leaf layer 221c, further relative position from the head position Stated in detail (i.e. index) continues to the upper side of the lower 12 bits of the virtual address 10-bit, i.e. associated with the bits 21-12. 葉の層221cの各エントリは、当該エントリに対応するページ(サイズが4KBのページ)が割り当てられる物理ページの物理アドレス(つまりアドレス変換情報としての実アドレス)を含むページ情報を保持する。 Each entry in the layer 221c leaf holds the page information including a physical address of the physical page which the page corresponding to the entry (size 4KB pages) is assigned (i.e. real address as the address conversion information).

再び図1を参照すると、MMU3は、領域登録部31と、テーブル検索部32と、キャッシュ入れ替え部33と、設定部34とを含む。 Referring again to FIG. 1, MMU 3 includes an area registration unit 31, a table search unit 32, a cache replacement section 33, and a setting unit 34. 領域登録部31は、ソフトウェア領域21に格納されているソフトウェアから、例えば当該ソフトウェアで使用する仮想アドレス領域の登録が要求された場合に、その登録要求を受け付けて、要求された仮想アドレス領域をシステム内に登録する。 Area registration unit 31, from the software stored in the software area 21, for example, when the registration of the virtual address space used in the software is requested, accepts the registration request, the requested virtual address regions System to register within. この仮想アドレス領域の登録のために、領域登録部31は、要求された仮想アドレス領域に固有のページ検索ツリー221を主メモリ2のメモリ管理領域22に用意する。 For the registration of the virtual address space, the area registration unit 31, the requested virtual address regions providing a unique page search tree 221 in the memory management area 22 of the main memory 2. 領域登録部31はまた、要求された仮想アドレス領域に属する仮想アドレスに共通のハッシュグループ番号で特定される領域検索ハッシュテーブル222内のエントリ集合に含まれている空きエントリに、メモリ管理領域22に用意されたページ検索ツリー221へのポインタを含むエントリ情報(ハッシュ構造データ)を設定する。 Region registering portion 31 also in the empty entry in the virtual address belonging to the requested virtual address regions are included in the entry set in the area retrieval hash table 222 identified by the common hash group number, in the memory management area 22 setting the entry information (hash structure data) contain pointers are provided to the page search tree 221.

テーブル検索部32は、仮想ページの仮想アドレスに基づき領域検索ハッシュテーブル222から当該仮想アドレスに対応するエントリ情報を検索し、当該エントリ情報に含まれているポインタにより指定されるページ検索ツリー221から当該仮想アドレスに対応するページ情報を検索する。 Table search unit 32 searches the entry information corresponding to the area retrieval hash table 222 based on the virtual address of the virtual page in the virtual address, the from page search tree 221 specified by the pointer included in the entry information Search page information corresponding to the virtual address. キャッシュ入れ替え部33は、演算ユニット11がページ情報エントリキャッシュ12から目的のページ情報を取得できなかったキャッシュミスの場合、当該演算ユニット11からの要求に応じ、テーブル検索部32を用いてページ情報エントリキャッシュ12の入れ替えを行う。 Cache swapping unit 33, when the arithmetic unit 11 the page information entry cache 12 of the cache miss that could not obtain the desired page information in response to a request from the arithmetic unit 11, the page information entry using the table search unit 32 performing the replacement of cache 12. 設定部34は、仮想アドレス領域の大きさ、領域検索ハッシュテーブル222のグループ数(ハッシュグループ数)、グループ内のエントリ数、ページ検索ツリー221の深さ(中間層の数)及びハッシュ関数(ハッシュ計算式)等を設定する。 Setting unit 34, the size of the virtual address space, the number of groups of regions search hash table 222 (the number of hash group), the number of entries in the group, (the number of intermediate layer) page depth search tree 221 and the hash function (hash to set up a formula), and the like.

次に、図1のシステムにおける動作について、(1)領域登録処理、(2)ページ情報(物理メモリ)割り当て処理、及び(3)ページ情報取得処理を例に、順次説明する。 Next, the operation in the system of FIG. 1, (1) area registration process, (2) the page information (physical memory) allocation process, and (3) the page information acquisition process as an example, will be described sequentially.

(1)領域登録処理 まず、MMU3の領域登録部31による領域登録処理について、図4のフローチャートを参照して説明する。 (1) area registration process First, the area registration processing by the region registering portion 31 of MMU 3, will be described with reference to the flowchart of FIG. 今、主メモリ2のソフトウェア領域21に格納されているソフトウェア(例えばOS)が起動されたものとする。 Now, the software stored in the main memory 2 software area 21 (e.g., OS) is assumed to have been started. この場合、起動されたソフトウェアは、仮想アドレスの使用に先立って、当該ソフトウェアが使用する可能性のある仮想アドレスが属する仮想アドレス空間内の仮想アドレス領域の登録を、図1において矢印51で示されるように、MMU3に要求する。 In this case, the activated software, prior to use of the virtual address, the registration of the virtual address space in the virtual address space virtual address belongs to the software might use, indicated by arrows 51 in FIG. 1 as such, it requests to MMU3.

MMU3の領域登録部31は、ソフトウェア(OS)から仮想アドレス領域の登録が要求されると要求受付手段として機能して、ソフトウェア(OS)からの仮想アドレス領域の登録要求を受け付ける。 Region registering portion 31 of MMU3 is to function as a request reception unit registered in the virtual address space is requested from the software (OS), accepts a registration request of the virtual address space from the software (OS). すると領域登録部31はページ検索ツリー(木構造データ)生成手段として機能して、仮想アドレス領域登録のための以下に述べるページ検索ツリー(木構造データ)生成を行う。 Then the area registration unit 31 functions as a page search tree (tree structure data) generating means, for generating page search tree described below for the virtual address space registration (tree structure data).

まず領域登録部31は、メモリ管理領域22を拡張して、要求された仮想アドレス領域に対応するページ検索ツリー221の22ビット中間層221bのデータ構造を格納するための領域(管理データ領域)を当該メモリ管理領域22内に確保する(ステップS1)。 Area registration unit 31 first extends the memory management area 22, the area for storing the data structure of the 22-bit intermediate layer 221b of page search tree 221 that corresponds to the requested virtual address regions (the management data area) securing to the memory management area 22 (step S1). 22ビット中間層221bは、1,024個のエントリの配列を有する。 22-bit intermediate layer 221b has the sequence of 1,024 entries. この時点において、要求された仮想アドレス領域の各ページには、物理メモリ(ここでは主メモリ2)の物理ページが未だ割り当てられていない。 At this point, the requested each page of virtual address space, a physical page of physical memory (the main memory 2 in this case) it has not been assigned yet. そこで領域登録部31は、22ビット中間層221bの1,024個のエントリを全て「無効(空き)」エントリに初期化する(ステップS2)。 Therefore the area registration unit 31 initializes to 1,024 all the entries of "invalid (empty)" entry in the 22-bit intermediate layer 221b (step S2). ここでは、22ビット中間層221bの1,024個のエントリに、いずれもNULLデータを設定することで、当該エントリが無効エントリに初期化される。 Here, 22 to 1,024 entries bit intermediate layer 221b, both by setting the NULL data, the entry is initialized to invalid entry.

次に領域登録部31は、要求された仮想アドレス領域に属する仮想アドレス、例えば当該仮想アドレス領域の先頭の仮想アドレスから、式(2)に示されるハッシュ関数を用いて、当該仮想アドレス領域が属するハッシュグループの番号(ハッシュグループ番号)Gi(を表すハッシュ値)を算出する(ステップS3)。 Then the area registration unit 31, the requested virtual address belonging to the virtual address area, for example, from the beginning of the virtual address of the virtual address space, using a hash function shown in equation (2), the virtual address area belongs hash group number (hash group number) is calculated Gi (hash value representing a) (step S3). そして領域登録部31は、算出されたハッシュグループ番号Giで特定される、領域検索ハッシュテーブル222の8つのエントリ(つまりハッシュグループGi内の8つのエントリ)から、NULLデータが設定されている「未使用(空き)」のエントリを1つ、登録すべき仮想アドレス領域に対応付けるエントリとして検索する(ステップS4)。 The area registration unit 31 is specified by the calculated hash group number Gi, eight entries region search hash table 222 (i.e. eight entries in the hash group Gi), "not NULL data is set one entry of use (free) ", search as an entry to be associated with the virtual address space to be registered (step S4).

次に領域登録部31はハッシュ構造データ(領域検索ハッシュテーブル)生成手段として機能して、検索されたハッシュグループGi内のエントリの情報を、NULLデータから、登録すべき仮想アドレス領域を指す「仮想アドレス」と、先のステップS1で用意したページ検索ツリー221の22ビット中間層221bへの「ポインタ」(22ビット中間層221bの存在するアドレス)とを含む情報に書き換える(ステップS5)。 Then the area registration unit 31 functions as a hash structure data (area search hash table) generating means, the information of the entry of the found hash group Gi, the NULL data, refers to the virtual address space to be registered "Virtual an address "is rewritten to information including the" pointer "(present address 22 bits intermediate layer 221b) to the 22-bit intermediate layer 221b of page search tree 221 that is prepared in the previous step S1 (step S5). ここで、登録すべき仮想アドレス領域を指す「仮想アドレス」には、当該仮想アドレス領域の先頭アドレスが用いられる。 Here refers to a virtual address space to be registered in the "virtual address" is the start address of the virtual address space is used. この仮想アドレス領域の先頭アドレスは4GBの境界上にある。 Start address of the virtual address space is on the boundary of 4GB. このため第1の実施形態では、ハッシュグループGi内のエントリには、「仮想アドレス」の下位32ビット(0x00000000)を除く上位アドレスだけが保持される。 Therefore, in the first embodiment, the entries in hash group Gi, only the upper address except for the lower 32 bits (0x00000000) of the "virtual address" is held. この上位アドレス(つまり、「仮想アドレス」の上位32ビット)の値は、登録すべき仮想アドレス領域に属する全ての仮想アドレスの下位32ビットを除く上位アドレスに共通する。 The upper address (that is, upper 32 bits of the "virtual address") value of common to upper address except for the least significant 32 bits of all the virtual address belonging to the virtual address space to be registered. したがって、仮想アドレス領域の先頭アドレスの下位32ビットを除く上位アドレス(仮想アドレスの上位32ビット)がハッシュグループGi内のエントリに保持されることは、当該仮想アドレス領域に属する全ての仮想アドレスに共通するアドレス部分(仮想アドレスの上位32ビット)が、当該仮想アドレス領域を特定する情報として保持されることと等価である。 Thus, the upper address except for the lower 32 bits of the start address of the virtual address space (upper 32 bits of the virtual address) is held in the entry in the hash group Gi is common to all of the virtual address belonging to the virtual address space address portions (upper 32 bits of the virtual address), it is equivalent to being held as information for specifying the virtual address space.

上述した領域登録部31によるステップS1〜S5の処理によって、ソフトウェアから要求された仮想アドレス領域がシステムに登録されたことになる。 Through the process of step S1~S5 by the area registration unit 31 described above, the virtual address space requested by the software will have been registered in the system. つまりソフトウェアは、MMU3の領域登録部31を利用することで、使用する可能性のある仮想アドレス領域を任意のタイミングで登録できる。 That software, by using the area registration unit 31 of the MMU 3, can register the virtual address space that may be used at any time. この仮想アドレス領域の登録後は、ソフトウェアは、MMU3のテーブル検索部32を用いて、登録された仮想アドレス領域内の仮想ページに対して物理メモリの割り当て(実際の使用)を行うことができる。 After registering the virtual address space, the software may be performed using a table search portion 32 of MMU 3, allocation of physical memory to the virtual page in the virtual address space that is registered with (actual use). ソフトウェアは、物理メモリが割り当てられたページに対しては、その仮想アドレスを用いてプログラム命令やデータを読み書きすることができる。 Software for pages of physical memory is allocated, it is possible to read and write program instructions and data using the virtual address.

上記したように第1の実施形態では、MMU3の領域登録部31による領域登録処理が、OS等のソフトウェアからの仮想アドレス領域の登録要求に応じて実行される。 In the first embodiment as described above, the area registration processing by the area registration unit 31 of MMU3 is performed in response to the registration request of the virtual address space from the software such as the OS. しかし、以下に述べるアドレス変換情報を含むページ情報(で示される物理ページ)の割り当て時に領域登録部31による領域登録処理が自動的に実行されるようにすることも可能である。 However, it is also possible to make the area registration processing by the area registration unit 31 at the time of allocation of the page information including address conversion information described below (in shown as a physical page) is automatically executed.

(2)ページ情報(物理ページ)割り当て処理 次に、MMU3のテーブル検索部32によるページ情報(物理ページ)割り当て処理について、図5のフローチャートを参照して説明する。 (2) the page information (physical page) Assignment Process Next, the page information (physical page) allocation processing by table search portion 32 of MMU 3, will be described with reference to the flowchart of FIG. 今、主メモリ2のソフトウェア領域21に格納されているソフトウェアからMMU3に対して、先に登録された仮想アドレス領域内の任意の仮想ページに対するページ情報の割り当てが要求されたものとする。 Now, with respect to MMU3 from software stored in the main memory 2 software area 21, it is assumed that allocation of page information for any virtual page in the virtual address space that is registered earlier has been requested.

MMU3のテーブル検索部32は、ソフトウェアからの割り当て要求に応じて、要求された仮想ページの仮想アドレス(例えば仮想ページの先頭アドレス)から、式(2)に示されるハッシュ関数を用いて、当該仮想アドレスに対応する仮想アドレス領域が属するハッシュグループの番号(ハッシュグループ番号)Giを算出する(ステップS11)。 Table search portion 32 of the MMU3, depending on the allocation request from the software, from the requested virtual page of the virtual address (e.g. the head address of the virtual page), using the hash function shown in equation (2), the virtual number of hash group to which the virtual address area belongs corresponding to the address (hash group number) is calculated Gi (step S11). そしてテーブル検索部32は、算出されたハッシュグループ番号Giで特定される、領域検索ハッシュテーブル222の8つのエントリ(ハッシュグループGi内の8つのエントリ)の情報を主メモリ2のメモリ管理領域22からロードして、当該8つのエントリの中から、要求された仮想ページが属する仮想アドレス領域に対応付けられたエントリを検索する(ステップS12)。 The table search unit 32 is specified by the calculated hash group number Gi, from the area searching the hash table 222 eight entries (eight entries in the hash group Gi) information of the main memory 2 memory management area 22 load, from among the eight entries, the requested virtual page to find an entry associated with the virtual address space belonging (step S12). ここでは、ロードされたハッシュグループGi内の8つのエントリにそれぞれ保持されている仮想アドレス(の上位32ビット)と要求された仮想ページの先頭アドレス(の上位32ビット)とを順に比較することで、一致するエントリが検索される。 Here, by comparing the loaded eight virtual address held each entry in the hash group Gi (upper 32 bits) and the requested start address of the virtual page (upper 32 bits) of the order , matching entry is searched.

テーブル検索部32は、ステップS12でのエントリ検索の結果、仮想アドレスが一致するエントリが検索できなかった場合には(ステップS13)、その仮想アドレスは登録された仮想アドレス領域の範囲外であると判断する。 Table search unit 32 as a result of the entry search in step S12, (step S13) if the entry virtual address matches can not be retrieved, if the virtual address is outside the scope of the virtual address space that is registered to decide. この場合、テーブル検索部32は、割り当てを要求したソフトウェアに対して、要求された仮想ページが属する仮想アドレス領域が未登録であることを示す領域未登録エラーを返す。 In this case, the table search unit 32, the software that requested the assignment, the requested virtual address space virtual page belongs are returned areas unregistered error indicating that it is not registered. これに対し、仮想アドレスが一致するエントリが検索できた場合には(ステップS13)、テーブル検索部32は検索されたエントリから、要求された仮想ページが属する仮想アドレス領域に対応付けられたページ検索ツリー221へのポインタ、更に詳細に述べるならばページ検索ツリー221の22ビット中間層221bへのポインタを取得する(ステップS14)。 In contrast, if it can find an entry virtual address matches (step S13), and from the entry table search unit 32 retrieved, the page searches the requested virtual page associated with the virtual address space belonging pointer to the tree 221, further pointer to get to the 22-bit intermediate layer 221b of page search tree 221 stated in detail (step S14).

次にテーブル検索部32は、ステップS14で取得されたポインタで指定されたページ検索ツリー221の22ビット中間層221b内の検索に移る。 Next table search unit 32 proceeds to search for 22-bit intermediate layer 221b of page search tree 221 specified by the pointer acquired in step S14. まずテーブル検索部32は、取得されたポインタで指定された22ビット中間層221b内の1,024個のエントリ(図2参照)のうち、要求された仮想ページに対応するエントリEjのインデックスを、当該要求された仮想ページの仮想アドレス(先頭アドレス)から計算する(ステップS15)。 First table search unit 32, among the 1,024 entries in the 22-bit intermediate layer 221b specified by the acquired pointer (see FIG. 2), the index of the entry Ej corresponding to the requested virtual page, calculated from the requested virtual page of the virtual address (start address) (step S15). ここでは、要求された仮想ページの仮想アドレス(先頭アドレス)のビット31〜22の値jが、エントリEjのインデックスとして計算される。 Here, the value j of bits 31 to 22 of the requested virtual page of the virtual address (head address) is calculated as an index of an entry Ej. このステップS15において、テーブル検索部32は、取得されたポインタで指定された22ビット中間層221b内の1,024個のエントリのうち、計算されたインデックス値jで指定されるエントリEjから、当該中間層221bの下位層をなす12ビット葉の層221cへのポインタを取得する。 In step S15, the table search unit 32, of the 1,024 entries in the 22-bit intermediate layer 221b specified by the acquired pointer from the entry Ej which is specified by the calculated index value j, the to obtain a pointer to a layer 221c of the 12-bit leaves constituting the lower layer of the intermediate layer 221b.

次にテーブル検索部32は、取得されたポインタが無効(NULL)であるかを判別する(ステップS16)。 Next table search unit 32, the obtained pointer to determine whether invalid (NULL) (step S16). もし、取得されたポインタが無効であるならば、テーブル検索部32はメモリ管理領域22を拡張して、目的とする12ビット葉の層221cの領域を当該メモリ管理領域22内に確保する(ステップS17)。 If the obtained pointer is invalid, the table search unit 32 extends the memory management area 22, to secure the areas of the layer 221c of the 12-bit leaf of interest in the memory management area 22 (step S17). そしてテーブル検索部32は、確保された12ビット葉の層221cの1,024個のエントリを全て「無効」エントリに初期化する(ステップS18)。 The table search unit 32 initializes all the "invalid" entry 1,024 entries layer 221c of the 12-bit leaves reserved (step S18).

続いてテーブル検索部32は、ステップS15で計算されたインデックス値jで指定される、22ビット中間層221b内のエントリEjを、無効エントリから、上記確保された12ビット葉の層221cの先頭位置を指すポインタが設定された有効エントリに変更する(ステップS19)。 Subsequently table search unit 32 is designated by the calculated index value j in the step S15, an entry Ej 22-bit intermediate layer 221b, the invalid entry, the head position of the layer 221c of the 12-bit leaves the above secured pointer to the changes in the effective entry set (step S19). そしてテーブル検索部32は、ステップS20の処理に進む。 The table search unit 32, the process proceeds to step S20. これに対し、ステップS15で取得されたポインタが無効でないならば(ステップS16)、テーブル検索部32はステップS17〜S19をスキップして、ステップS20の処理に進む。 In contrast, if the pointer acquired in step S15 is not disabled (step S16), and the table search unit 32 skips step S17 to S19, the process proceeds to step S20.

ステップS20において、テーブル検索部32は、12ビット葉の層221cの1,024個のエントリのうち、要求された仮想ページに対応するエントリEkのインデックスを、当該要求された仮想ページの仮想アドレス(先頭アドレス)から計算する。 In step S20, the table search unit 32, 12 of the 1,024 entries in the layer 221c of bits leaves, the requested index of the corresponding entry Ek to the virtual page, the requested virtual page of the virtual address ( is calculated from the start address). ここでは、要求された仮想ページの仮想アドレス(先頭アドレス)のビット21〜12の値kが、エントリEkのインデックスとして計算される。 Here, the value k of bits 21-12 of the requested virtual page of the virtual address (head address) is calculated as an index of entries Ek.

次にテーブル検索部32は、12ビット葉の層221cの1,024個のエントリのうち、ステップS20で計算されたインデックス値kで指定されるエントリEkに、要求された仮想ページに新たに割り当てられる(または既に割り当てられている)物理ページのページ情報を書き込む(または更新する)(ステップS21)。 Next table search unit 32, 12 of the 1,024 entries in the layer 221c bit leaves the entry Ek specified by the calculated index value k in step S20, newly assigned to the requested virtual page It is (or has already been assigned) writes the page information of the physical page (to or updated) (step S21). このページ情報は、要求された仮想ページに割り当てられる物理ページの物理アドレス(real addr)、つまりアドレス変換情報を含む。 This page information, requested physical address of the physical page allocated to the virtual page (real addr), i.e. including the address conversion information. またページ情報は更に、要求された仮想ページに割り当てられる物理ページを管理する(例えば保護する)ためのページ管理情報を含むものとする。 The page information is further intended to include page management information for managing the physical pages allocated to the requested virtual page (e.g. to protect). ページ情報の更新では、ページ管理情報のみが更新されることもある。 In the update of the page information, there is also that only the page management information is updated.

上述したテーブル検索部32によるステップS11〜S21の処理によって、ソフトウェアから要求された仮想ページに対してページ情報(によって示される物理ページ)が割り当てられる。 Through the process of step S11~S21 by table search unit 32 described above, it is assigned (physical page indicated by) the page information to the virtual page requested from the software. 即ち、ソフトウェアから要求された仮想ページに割り当てられる物理ページの物理アドレス(アドレス変換情報)を含む新たな(または更新された)ページ情報が、当該仮想ページに対応付けられた、葉の層221c内のエントリに保存される。 That is, new including the physical address of the physical page allocated to the virtual page requested by the software (the address conversion information) (or updated) page information, the virtual associated with the page, the leaves of the layer 221c It is stored in the entry. この葉の層221cへのポインタは、ソフトウェアから要求された仮想ページが属する仮想アドレス領域に対応付けられたページ検索ツリー221の中間層221b内の1つのエントリに保存される。 The pointer to the layer 221c of the leaf is stored in a single entry in the intermediate layer 221b of page search tree 221 that virtual page requested by the software associated with the virtual address space to which they belong. この中間層221b内の1つのエントリは、仮想アドレス領域が1,024(=1K)等分された連続する1Kページ(=4MB)の領域のうち、要求された仮想ページが属する1Kページ(=4MB)の領域に対応付けられたエントリである。 One entry in the intermediate layer 221b, of the region of the virtual address space is 1,024 (= 1K) equally divided consecutive 1K page (= 4MB), the requested virtual page belongs 1K pages (= an entry associated with the area of ​​4MB).

第1の実施形態では、中間層221b内のあるエントリに対応付けられた1Kページ(=4MB)の領域に属する仮想ページに物理ページが全く割り当てられていない状態では、当該エントリに無効を示す値(NULLデータ)が保持されるだけで、当該1Kページ(=4MB)の領域に対応付けられる葉の層221cは確保されない。 In the first embodiment, in the state where a virtual page to a physical page has not been completely assigned belonging to the area of ​​1K pages associated with the entries within the intermediate layer 221b (= 4MB), a value indicating invalidity in the entry only (NULL data) is held, the layer 221c leaves associated with the area of ​​the 1K page (= 4MB) is not secured. これにより、主メモリ2内のメモリ管理領域22が不要に拡張されるのを防止して、当該メモリ管理領域22を節約することができる。 This allows the memory management area 22 in the main memory 2 can be prevented from being unnecessarily extended, saving the memory management area 22.

(3)ページ情報取得処理 次に、MMU3のテーブル検索部32によるテーブル検索を含むページ情報取得処理について、図6のフローチャートを参照して説明する。 (3) page information acquisition process Next, the page information acquisition process including the table search by table search portion 32 of MMU 3, will be described with reference to the flowchart of FIG. まず、プロセッサ1内の演算ユニット11が、主メモリ2のソフトウェア領域21からプログラム命令またはデータを取り出して、当該プログラム命令を実行または当該データを処理しようとするものとする。 First, the arithmetic unit 11 in the processor 1 takes out a program instruction or data from the main memory 2 software area 21, and intended to perform or process the data the program instructions. このプログラム命令またはデータが格納されている領域のアドレス(プログラム命令またはデータのアドレス)は仮想アドレスで表現される。 The program instructions or data the address of the area is stored (program instructions, or addresses of the data) is represented by the virtual address. このため演算ユニット11が、プログラム命令またはデータを主メモリ2から実際に取り出すには、当該プログラム命令またはデータの仮想アドレスを物理アドレスに変換する必要がある。 Thus arithmetic unit 11, the actually retrieve program instructions or data from the main memory 2, it is necessary to convert the virtual address of the program instruction or data to physical addresses.

そこで演算ユニット11は、ソフトウェアからプログラム命令またはデータの仮想アドレスを受け取ると、当該仮想アドレスに対応するアドレス変換情報を含むページ情報を取得するために、ページ情報エントリキャッシュ12を検索する。 Therefore arithmetic unit 11 receives the virtual address of the program instructions or data from the software, in order to acquire page information including address conversion information corresponding to the virtual address, retrieves the page information entry cache 12.

もし、ページ情報エントリキャッシュ12から目的のページ情報を取得できたならば、演算ユニット11は当該ページ情報中のアドレス変換情報(物理アドレス)を用いて、ソフトウェアから受けとった仮想アドレスを物理アドレスに変換する。 If conversion, if was acquired target page information from the page information entry cache 12, the arithmetic unit 11 by using the address translation information in the page information (physical address), the virtual address received from the software to the physical address to. そして演算ユニット11は、変換後の物理アドレスによって指定される主メモリ2の領域から、図1において矢印52で示すようにプログラム命令またはデータを取り出して処理する。 The computation unit 11, the area of ​​the main memory 2 which is specified by the physical address after translation, processing retrieves program instructions or data, as indicated by arrow 52 in FIG. 1.

これに対し、ページ情報エントリキャッシュ12から目的のページ情報を取得できなかった場合、つまりページ情報エントリキャッシュ12に目的のページ情報が保持されているエントリ(ページ情報エントリ)が存在しなかった場合、演算ユニット11は図1において矢印53で示すように、MMU3にキャッシュミスを通知する。 In contrast, if it can not obtain the desired page information from the page information entry cache 12, that is, when the entry target page information to the page information entry cache 12 is held (the page information entry) does not exist, the computation unit 11 as indicated by arrows 53 in FIG. 1, and notifies the cache miss MMU 3. MMU3のテーブル検索部32は、演算ユニット11からキャッシュミスが通知されると、図1において矢印54で示すようにメモリ管理領域22から該当するエントリを検索して、当該エントリの情報を取得するためのページ情報取得処理を次のように実行する。 Table search portion 32 of the MMU3, when a cache miss is notified from the arithmetic unit 11 searches the corresponding entry from the memory management area 22 as indicated by arrow 54 in FIG. 1, for obtaining the information of the entry to run the page information acquisition process in the following manner.

まずテーブル検索部32は、ミスヒットとなった仮想アドレスから、式(2)に示されるハッシュ関数を用いて、当該仮想アドレスに対応する仮想アドレス領域が属するハッシュグループの番号(ハッシュグループ番号)Giを算出する(ステップS31)。 Table search portion 32 first, the virtual address that a mishit, using the hash function shown in equation (2), the virtual address area belongs numbers hash group (hash group number) corresponding to the virtual address Gi It is calculated (step S31). そして領域登録部31は、算出されたハッシュグループ番号Giで特定される、領域検索ハッシュテーブル222の8つのエントリ(ハッシュグループGi内の8つのエントリ)の情報を主メモリ2のメモリ管理領域22からロードして、当該8つのエントリの中から、ミスヒットとなった仮想ページが属する仮想アドレス領域に対応付けられたエントリを検索する(ステップS32)。 The area registration unit 31 is specified by the calculated hash group number Gi, from the area searching the hash table 222 eight entries (eight entries in the hash group Gi) information of the main memory 2 memory management area 22 load, the out of eight entries, search for entries that virtual page is associated with a virtual address space belonging became mishit (step S32).

テーブル検索部32は、ステップS22でのエントリ検索の結果、仮想アドレスが一致するエントリが検索できなかった場合には(ステップS33)、その仮想アドレスは登録された仮想アドレス領域の範囲外であると判断する。 Table search unit 32 as a result of the entry search in step S22, (step S33) if the entry virtual address matches can not be retrieved, if the virtual address is outside the scope of the virtual address space that is registered to decide. この場合、テーブル検索部32は、キャッシュミスを通知した演算ユニット11に対して、ミスヒットとなった仮想アドレスが属する仮想ページが無効であることを示すページ無効エラーを返す。 In this case, the table search unit 32 returns a page invalid error indicating that the virtual page is invalid with respect to the computation unit 11 which notifies the cache miss, the virtual address that a mishit belongs.

これに対し、ステップS32でのエントリ検索の結果、仮想アドレスが一致するエントリが検索できた場合には(ステップS33)、テーブル検索部32は検索されたエントリから、ミスヒットとなった仮想ページが属する仮想アドレス領域に対応付けられたページ検索ツリー221へのポインタ(ページ検索ツリー221の22ビット中間層221bへのポインタ)を取得する(ステップS34)。 In contrast, the result of the entry retrieval in the step S32, if successfully retrieved entries virtual addresses match (step S33), from the entry table search unit 32 retrieved, the virtual page that a mishit to get a pointer (a pointer to a 22-bit intermediate layer 221b of page search tree 221) to the virtual address page associated with the area search tree 221 belonging (step S34).

次にテーブル検索部32は、ステップS24で取得されたポインタで指定された22ビット中間層221b内の1,024個のエントリ(図2参照)のうち、ミスヒットとなった仮想ページに対応するエントリEjのインデックスを、当該ミスヒットとなった仮想ページの仮想アドレス(先頭アドレス)から、上記ステップS15の処理と同様にして計算する(ステップS35)。 Next table search unit 32, among the 1,024 entries of 22-bit intermediate layer 221b specified by the acquired pointer in step S24 (see FIG. 2), corresponding to the virtual page which became a mishit the index of the entry Ej, the virtual address of the virtual page which became the mishit (head address) is calculated in the same manner as the processing of step S15 (step S35). このステップS35において、テーブル検索部32は、取得されたポインタで指定された22ビット中間層221b内の1,024個のエントリのうち、計算されたインデックス値jで指定されるエントリEjの情報をロードして、当該中間層221bの下位層をなす12ビット葉の層221cへのポインタを取得する。 In step S35, the table search unit 32, of the 1,024 entries in the 22-bit intermediate layer 221b specified by the acquired pointer, the information of the entry Ej which is specified by the calculated index value j load, obtains a pointer to a layer 221c of the 12-bit leaves constituting the lower layer of the intermediate layer 221b.

次にテーブル検索部32は、取得されたポインタが無効(NULL)であるかを判別する(ステップS36)。 Next table search unit 32, the obtained pointer to determine whether invalid (NULL) (step S36). もし、取得されたポインタが無効であるならば、テーブル検索部32は演算ユニット11に対してページ無効エラーを返す。 If the obtained pointer is invalid, the table search unit 32 returns a page invalid error to the computation unit 11.

これに対して、取得されたポインタが無効でないならば、テーブル検索部32は、当該ポインタで指定される葉の層221cの1,024個のエントリのうち、ミスヒットとなった仮想アドレスが属する仮想ページに対応するエントリEkのインデックスを、当該仮想アドレスから計算する(ステップS37)。 In contrast, if the obtained pointer is not disabled, the table search unit 32, among the 1,024 entries in the layer 221c leaf specified by the pointer, the virtual address belongs became mishit the index of the entry Ek corresponding to the virtual page is calculated from the virtual address (step S37). そしてテーブル検索部32は、葉の層221cの1,024個のエントリのうち、ステップS37で計算されたインデックス値kで指定されるエントリEkの情報を読み出す(ステップS38)。 The table search unit 32, among the 1,024 entries leaf layer 221c, reads the information of the entry Ek specified by the calculated index value k in step S37 (step S38).

テーブル検索部32は、読み出されたエントリEkの情報が無効であるかを判定する(ステップS39)。 Table search unit 32 determines whether information of the read entry Ek is invalid (step S39). もし、読み出されたエントリEkの情報が無効であるならば、テーブル検索部32は演算ユニット11に対してページ無効エラーを返す。 If information of the read entry Ek is invalid, the table search unit 32 returns a page invalid error to the computation unit 11. これに対し、読み出されたエントリEkの情報が無効でないならば、テーブル検索部32は当該情報から、ミスヒットとなった仮想アドレスが属する仮想ページに割り当てられた物理ページの物理アドレス(つまりアドレス変換情報)及び/またはページ管理情報を取得する(ステップS40)。 Contrast, if the information of the read entry Ek is not disabled, the physical address (i.e. the address of the physical pages allocated to the virtual page which the virtual address belongs table search unit 32 from the information became mishit acquires conversion information) and / or the page management information (step S40).

領域登録部31のキャッシュ入れ替え部33は、メモリ管理領域22に保存されているページ検索ツリー221からテーブル検索部32によって取得された物理アドレス(つまりアドレス変換情報)及び/またはページ管理情報、つまりページ情報を、図1において矢印55で示すように、ページ情報エントリキャッシュ12の1つの空きエントリにロードする。 Cache replacement section 33 of the area registration unit 31, physical addresses obtained from the page search tree 221 stored in the memory management area 22 by a table search unit 32 (i.e. the address conversion information) and / or the page management information, i.e. the page information, as indicated by arrows 55 in FIG. 1, is loaded into one of the empty entry of the page information entry cache 12. もし、ページ情報エントリキャッシュ12内に空きエントリがない場合には、キャッシュ入れ替え部33は、例えばLRU(Least Recently Used)法に従って、当該キャッシュ12から、その時点において最も優先度が低いエントリを選択して、その選択されたエントリに、テーブル検索部32によって取得されたページ情報をキャッシュエントリ情報として書き込む。 If, if there are no free entries in the page information entry cache 12, the cache replacement section 33, for example, in accordance with LRU (Least Recently Used) method, from the cache 12 to select the lowest priority entry at that time Te, on the selected entry, writes the page information acquired by the table search unit 32 as a cache entry information. これにより演算ユニット11は、ページ情報エントリキャッシュ12から目的のページ情報を取得して、例えば当該当該ページ情報中のアドレス変換情報(物理アドレス)を用いて、ソフトウェアから受けとった仮想アドレスを改めて物理アドレスに変換することができる。 Thus arithmetic unit 11 obtains the target page information from the page information entry cache 12, for example by using the address translation information in the page information (physical address), again a physical address virtual address received from the software it can be converted to.

このように第1の実施形態においては、領域検索ハッシュテーブル222とページ検索ツリー221とを組み合わせたことで、ページ情報エントリキャッシュ12に目的のページ情報が保持されているエントリ(ページ情報エントリ)が存在しなかったキャッシュミスヒットの場合、3回のメモリロード動作で、目的のページ情報を取得できる。 In this way, in the first embodiment, by a combination of the area retrieval hash table 222 and a page search tree 221, the entry target page information to the page information entry cache 12 is held (the page information entries) If there was no cache miss-hit, three times the memory load operation, it can acquire the page information of purpose. これにより、ページ情報をツリー構造だけで管理する場合と比べて、ミスヒット時の仮想アドレスから物理アドレスへのアドレス変換を高速に行える。 Thereby, compared to a case of managing the page information only in a tree structure, it can perform address translation from the virtual address at the time of miss-hit to a physical address at high speed. 3回のメモリロード動作は、主メモリ2(のメモリ管理領域22)からハッシュグループGi内の8つのエントリをロードする動作と、ページ検索ツリー221の中間層221bからキャッシュミスヒットした仮想アドレスに対応するエントリをロードする動作と、ページ検索ツリー221の葉の層221cからキャッシュミスヒットした仮想アドレスに対応するエントリをロードする動作である。 Three memory load operation, the operation of loading the eight entries in the main memory 2 hash group Gi from (memory management area 22 of) the corresponding the intermediate layer 221b of page search tree 221 to the virtual address cache mishit operation and to load an entry that is an operation to load the entry corresponding to the virtual address to which a cache miss hit from the layer 221c of the leaves of the page search tree 221.

また、領域検索ハッシュテーブル222とページ検索ツリー221とを組み合わせたことで、ページ情報を管理するのに必要なメモリ管理領域22の大きさも、ページ情報をハッシュテーブルだけで管理する場合と比べて、物理メモリ全体の大きさに対して十分小さく抑えることができる。 In addition, by combining the area retrieval hash table 222 and a page search tree 221, the size of the memory management area 22 needed to manage the page information is also compared with the case of managing the page information alone hash table, it can be suppressed to sufficiently small relative to the size of the entire physical memory.

さて、仮想アドレス領域の大きさ(実施形態では4GB)、領域検索ハッシュテーブル222(ハッシュ構造)のグループの数(実施形態では64K個、つまり65,536個)、グループ内のエントリの数(実施形態では8個)、ページ検索ツリー221(木構造)の深さ(中間層の数)などのパラメータ値の最適値は、ソフトウェアの仕様(例えば、ページの大きさ、仮想アドレス空間の大きさ、仮想アドレス領域の大きさ)やシステム全体の規模(例えば、物理メモリの大きさ)によって異なる。 Now, the size of the virtual address space (4GB embodiment), the number of groups of regions search the hash table 222 (hash structure) (64K pieces in the embodiment, i.e. 65,536), the number of entries in the group (Embodiment eight in the embodiment), page search tree 221 (tree structure) of the depth (optimum parameter values ​​such as the number of intermediate layer), software specifications (e.g., page size, the size of the virtual address space, It varies by the virtual size of the address space) and system-wide scale (e.g., physical memory size). また、最適なハッシュ関数(ハッシュ計算式)も、ソフトウェアの仕様やシステム全体の規模によって異なる。 The optimum hash function (hash calculation formula) is also different depending on the software specifications and the overall system size.

そこで、ソフトウェアは、自身の起動時などに、MMU3が必要とするパラメータやハッシュ計算式を、当該ソフトウェアの仕様やシステム全体の規模に適したものに決定し、その決定されたパラメータやハッシュ計算式を設定部34を用いて設定する。 Therefore, the software, such as during start itself, parameter or hash calculation that requires MMU 3, decides to be suitable for the software specifications and overall system size, the determined parameters and hash calculation formula set using the setting unit 34 a. ここでは、ソフトウェアは、物理メモリの大きさに応じ、それが大きいほど、(1)登録する仮想アドレス領域の大きさを大きく決定する、(2)領域検索ハッシュテーブル222のグループ数を多く決定する、(3)グループ内のエントリ数を少なく決定する、(4)ページ検索ツリー221の深さを浅く決定する、のうちの少なくとも1つを実行する。 Here, the software, depending on the size of the physical memory, as it is large, (1) Register largely determines the size of the virtual address space, determining a number the number of groups of (2) region search hash table 222 , (3) reduce to determine the number of entries in the group, (4) determining shallow depth of page search tree 221, for performing at least one of.

また、ソフトウェアが、ページの大きさに応じ、それが大きいほど、(1)登録する仮想アドレス領域の大きさを大きく決定する、(2)領域検索ハッシュテーブル222のグループ数を少なく決定する、(3)グループ内のエントリ数を少なく決定する、(4)ページ検索ツリー221の深さを浅く決定する、のうちの少なくとも1つを実行しても構わない。 The software provides depending on the size of the page, as it is larger, determines increase the size of the virtual address space to be registered (1), determines reduce the number of groups (2) region search hash table 222, ( 3) the least to determine the number of entries in the group, (4) determining shallow depth of page search tree 221, may be executed at least one of.

また、ソフトウェアが、仮想アドレス空間の大きさに応じ、それが大きいほど、(1)登録すべき仮想アドレス領域の大きさを大きく決定する、(2)領域検索ハッシュテーブル222のグループ数を少なく決定する、(3)グループ内のエントリ数を少なく決定する、(4)ページ検索ツリー221の深さを深く決定する、のうちの少なくとも1つを実行しても構わない。 The software provides according to the size of the virtual address space, as it is large, (1) to determine increase the size of the virtual address space to be registered, (2) reduce the number of groups of regions search hash table 222 determined to, (3) reduce to determine the number of entries in the group, (4) deeper determines the depth of the page search tree 221, it may be executed at least one of.

また、ソフトウェアが、登録すべき仮想アドレス領域の大きさに応じ、それが大きいほど、(1)領域検索ハッシュテーブル222のグループ数を少なく決定する、(2)グループ内のエントリ数を少なく決定する、(3)ページ検索ツリー221の深さを深く決定する、のうちの少なくとも1つを実行しても構わない。 The software provides according to the size of the virtual address space to be registered, as it is large, is determined reducing the number of groups of (1) region search hash table 222, determines reduce the number of entries in the (2) Groups , (3) deeper determines the depth of the page search tree 221, it may be executed at least one of.

また、ソフトウェアが、仮想アドレス空間毎の登録すべき仮想アドレス領域の個数の最大値に応じ、それが大きいほど、(1)領域検索ハッシュテーブル222のグループ数を多く決定する、(2)グループ内のエントリ数を多く決定する、(3)ページ検索ツリー221の深さを浅く決定する、のうちの少なくとも1つを実行しても構わない。 The software provides the virtual address corresponding to the maximum value of the number of the virtual address space to be registered for each space, as it is large, it is determined much the number of groups of (1) region search hash table 222, (2) a group many determines the number of entries, (3) determining shallow depth of page search tree 221, it may be executed at least one of.

[第2の実施形態] Second Embodiment
次に、本発明の第2の実施形態につき図面を参照して説明する。 It will now be described with reference to the accompanying drawings a second embodiment of the present invention. 図7A及び図7Bは本発明の第2の実施形態に係る仮想記憶方式のコンピュータシステムを示すブロック構成図である。 7A and 7B is a block diagram illustrating a computer system in a virtual memory system according to a second embodiment of the present invention. 図7A及び図7Bにおいて、図1と等価な要素には同一符号を付してある。 7A and 7B, the equivalent elements as in FIG. 1 are denoted by the same reference numerals. また図7A及び図7Bでは、図1に示されているプロセッサ1及びバス4は省略されている。 In FIG 7A and 7B, the processor 1 and the bus 4 is shown in Figure 1 is omitted.

第2の実施形態の特徴は、領域検索ハッシュテーブル222のグループの数、グループ内のエントリの数及びページ検索ツリー221の深さ、つまりハッシュ構造及び木構造を特定するパラメータを、ソフトウェアではなくてMMUが決定する点にある。 Features of the second embodiment, the number of groups of regions search hash table 222, a depth of a few and page search tree 221 entries in the group, that is a parameter for specifying a hash structure and a tree structure, rather than the software It lies in the fact that MMU is determined. そのため、図7A及び図7Bに示すシステムでは、図1中のMMU3に代えて、構造決定部35が追加されたMMU30が用いられる。 Therefore, in the system shown in FIGS. 7A and 7B, instead of the MMU3 in FIG 1, MMU30 is used to structure determination unit 35 is added. この構造決定部35は、ハードウェアのコンフィグレーション情報やソフトウェアによる設定情報など、システムの規模・要求(例えば、物理メモリの大きさ、ページの大きさ、仮想アドレス空間の大きさ、登録すべき仮想アドレス領域の大きさ、または仮想アドレス空間毎の登録すべき仮想アドレス領域の個数の最大値)に基づいて、ハッシュ構造及び木構造を特定するパラメータ値を決定する機能を有する。 The structure determination unit 35, such as setting information by the hardware configuration information and software, scale and requirements of the system (e.g., physical memory size, page size, the size of the virtual address space, virtual to be registered the size of the address space, or based on a virtual address maximum number of virtual address space to be registered for each space), and has a function of determining a parameter value for specifying a hash structure and a tree structure.

図7Aと図7Bとの違いは物理メモリの大きさであり、図7Aでは物理メモリの大きさは2 35 Bであるのに対し、図7Bでは物理メモリの大きさは2 25 Bである。 The difference between FIGS. 7A and 7B is the size of physical memory, the size of the physical memory in FIG. 7A to be of a 2 35 B, the size of the physical memory in FIG. 7B is a 2 25 B. この物理メモリの違いに応じて、図7Aと図7Bのシステムでは、ページ検索ツリー221及び領域検索ハッシュテーブル222の構造も異なる。 According to a difference in the physical memory, in the system of FIGS. 7A and 7B, also different structures of page search tree 221 and region search hash table 222.

以下、図7A及び図7Bの両システムにおけるMMU30の構造決定部35の動作について説明する。 Hereinafter, the operation of the structure determination unit 35 of MMU30 in both systems of FIGS. 7A and 7B. まず、MMU30の構造決定部35は、システムの起動時に、例えば当該システムのコンフィグレーション情報から当該システムが有する物理メモリの大きさの情報を取得する。 First, structure determination unit 35 of MMU30 is at system startup, for example, to obtain information of the size of the physical memory to which the system has the configuration information of the system. また構造決定部35は、例えばOS(ソフトウェア)から仮想アドレス空間の大きさの情報及びソフトウェアが使用する仮想空間毎の仮想アドレス領域の個数の最大値を取得する。 The structure determination unit 35, for example to get the maximum number of virtual address space of each virtual space used size of the information and software of the virtual address space from the OS (software). ここでは説明を簡略化するために、仮想アドレス空間の大きさと、使用する仮想アドレス領域の数とは、図7A及び図7Bの両システムにおいて、それぞれ同一であるものとする。 Here in order to simplify the description, the size of the virtual address space, the number of virtual address space to be used in both systems of FIGS. 7A and 7B, it is assumed each of which is identical.

構造決定部35は、図7Aのシステムのように物理メモリの大きさが大きい場合、領域検索ハッシュテーブル222(ハッシュ構造)を大きし、ページ検索ツリー221(木構造)の深さを浅くするように決定する。 Structure determination unit 35, when the magnitude of the physical memory as in the system of Figure 7A, the area search hash table 222 (hash structure) large shore to reduce the depth of the page search tree 221 (tree structure) It is determined to be. 領域検索ハッシュテーブル222を大きくするには、(1)領域検索ハッシュテーブル222のグループ数を多くする、(2)グループ内のエントリ数を少なく決定する、のうちの少なくとも1つを実行すれば良い。 To increase the area retrieval hash table 222, (1) increasing the number of groups of regions search hash table 222, (2) reduce to determine the number of entries in the group, it may be executed at least one of . 具体的には、物理メモリの大きさが2 35 Bである図7Aのシステムでは、ページ検索ツリー221の深さを2層(つまり中間層221bの段数を2)にする。 Specifically, the size of the physical memory in the Figure 7A system is 2 35 B, to the depth of the page search tree 221 2-layer (i.e. 2 the number of stages of the intermediate layer 221b). ページ検索ツリー221が浅いと領域検索ハッシュテーブル222を大きくする必要がある。 Page search tree 221 is necessary to increase the area retrieval hash table 222 and shallow. 例えばページ検索ツリー221の各層(中間層221b)が1,024個のエントリの配列であったなら、ページ検索ツリー221が1層少なくなる毎に、領域検索ハッシュテーブル222を1,024倍の大きさにするべきである。 For example if each layer of the page search tree 221 (the intermediate layer 221b) is an array of 1,024 entries, each page search tree 221 is one layer less, the area retrieval hash table 222 of 1,024 times larger It should be to of. しかし、物理メモリ全体の大きさが大きいため、メモリ管理領域22自体が同程度の比率で大きくなっても全体のメモリ容量に与える影響は少ない。 However, because of the large size of the entire physical memory effect memory management area 22 itself is given to the memory capacity of the entire even increases in a ratio of comparable less. そしてページ検索ツリー221の深さが減った分だけ、検索時のメモリアクセス回数を減らすことができ、高速な処理が可能になる。 And an amount corresponding to the depth of the page search tree 221 has decreased, it is possible to reduce the number of memory accesses at the time of the search, allowing high-speed processing.

これに対し、図7Bのシステムのように物理メモリの大きさが図7Aのシステムと比較して小さい場合、構造決定部35は、ハッシュ構造を小さくし、木構造の深さを深くするように決定する。 In contrast, when the size of physical memory as in the system of FIG. 7B is small compared to the system of Figure 7A, structure determination unit 35, to reduce the hash structure, so as to increase the depth of the tree structure decide. ハッシュ構造を小さくするには、(1)領域検索ハッシュテーブル222のグループ数を少なくする、(2)グループ内のエントリ数を多く決定する、のうちの少なくとも1つを実行すれば良い。 To reduce the hash structure, (1) reducing the number of groups of regions search hash table 222, (2) number to determine the number of entries in the group, it may be executed at least one of. 具体的には、物理メモリの大きさが2 25 Bである図7Bのシステムでは、メモリ管理領域22に使用できる大きさも小さくする必要があるため、ページ検索ツリー221の深さを、図7Aのシステムより深い例えば3層(つまり中間層221bの段数を3)にする。 Specifically, the physical memory in the Figure 7B system is the size is 2 25 B, since the size that can be used for memory management area 22 is necessary to reduce the depth of the page search tree 221, in Figure 7A deep e.g. 3 layers from the system to (i.e. 3 the number of stages of the intermediate layer 221b). これにより、検索時のメモリアクセス回数が、図7Aのシステムより1回増加するものの、領域検索ハッシュテーブル222を小さくして、現実的な大きさに収めることができる。 Thus, the number of memory accesses during the search, but increases once from the system of Figure 7A, it is possible to reduce the area retrieval hash table 222, accommodated in a realistic size.

このように、第2の実施形態においては、MMU30が自ら、ハッシュ構造及び木構造を特定するパラメータを物理メモリの大きさを考慮した適切な値に決定することにより、ソフトウェアに当該物理メモリの大きさを意識させることなく、ハッシュ構造及び木構造の現実的な使用状態を実現することができる。 Thus, in the second embodiment, by MMU30 is itself, determining a parameter for specifying a hash structure and the tree structure to an appropriate value considering the size of the physical memory, the size of the physical memory to the software without being conscious of the is, it is possible to realize a practical use state of the hash structure and a tree structure.

なお、物理メモリの大きさ以外でも、ページの大きさ、仮想アドレス空間の大きさ、登録する仮想アドレス領域の大きさ、及び登録する仮想アドレス領域の個数の最大値などのうちの少なくとも1つの要素を考慮して、MMU30の構造決定部35がハッシュ構造の大きさ、または木構造の深さを決定することも可能である。 Also in other physical memory size, page size, the size of the virtual address space, the size of the virtual address space to be registered, and at least one element of such maximum number of virtual address space to be registered taking into account, it is also possible to structure determination unit 35 of MMU30 determines the depth of the size, or tree structure of a hash structure. この場合にも、構造決定部35はソフトウェアに当該要素を意識させることなく、適切なハッシュ構造及び木構造を設定して、より最適に近い使用状態を実現できる。 In this case also, structure determination unit 35 without being conscious that element in software, by setting the appropriate hash structure and a tree structure, it is possible to realize a more near optimal use.

上記第1(または第2)の実施形態では、MMU(メモリ管理装置)3(または30)が独立して設けられている。 In the first (or second) embodiment of the provided MMU (memory management unit) 3 (or 30) independently. しかし、MMU3(または30)の機能を、必ずしもMMUによって実現する必要はなく、コンピュータシステムがMMU3(または30)の機能を有していれば良い。 However, the function of MMU 3 (or 30), not necessarily have to be realized by MMU, the computer system may have a function of MMU 3 (or 30). 例えば、MMU3(または30)の全てまたは一部を、プロセッサに組み込むことも可能である。 For example, all or a portion of the MMU 3 (or 30), it is also possible to incorporate into the processor. また、MMU3(または30)の機能の全てまたは一部を、コンピュータ(プロセッサ)によって読み取り実行されるソフトウェアで実現することも可能である。 Further, all or part of the functions of the MMU 3 (or 30), it can also be realized by software executed thereafter read by a computer (processor).

なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。 The present invention is not limited to the above embodiments and may be embodied with the components modified without departing from the scope of the invention. また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。 Further, various inventions can be formed by properly combining the structural elements disclosed in the embodiments. 例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。 For example, it is possible to delete some of the components shown in the embodiments. 更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。 Furthermore, it may be appropriately combined structural elements in different embodiments.

本発明の第1の実施形態に係る仮想記憶方式のコンピュータシステムを示すブロック構成図。 Block diagram illustrating a computer system in a virtual memory system according to the first embodiment of the present invention. 図1中の領域検索ハッシュテーブル222のデータ構造例を示す図。 It illustrates an example of a data structure of area search hash table 222 in FIG. 図1中のページ検索ツリー221の木構造の一例を示す図。 It illustrates an example of a tree structure of page search tree 221 in FIG. 同実施形態における領域登録処理の手順を示すフローチャート。 Flowchart showing a procedure of region registering process in the embodiment. 同実施形態におけるページ情報割り当て処理の手順を示すフローチャート。 Flowchart illustrating a procedure of a page information allocation process in the embodiment. 同実施形態におけるページ情報取得処理の手順を示すフローチャート。 Flowchart illustrating a procedure of a page information acquisition process in the embodiment. 本発明の第2の実施形態に係る仮想記憶方式のコンピュータシステムの、物理メモリの大きさが2 35 Bの場合における概略構成を示すブロック図。 The computer system of the virtual storage system according to the second embodiment, a block diagram illustrating a schematic configuration in a case of the size of the physical memory 2 35 B of the present invention. 本発明の第2の実施形態に係る仮想記憶方式のコンピュータシステムの、物理メモリの大きさが2 25 Bの場合における概略構成を示すブロック図。 The computer system of the virtual storage system according to the second embodiment, a block diagram illustrating a schematic configuration in a case of the size of the physical memory 2 25 B of the present invention.

符号の説明 DESCRIPTION OF SYMBOLS

1…プロセッサ、2…主メモリ(物理メモリ)、3,30…MMU(メモリ管理ユニット、メモリ管理装置)、4…バス、11…演算ユニット、12…ページ情報エントリキャッシュ、21…ソフトウェア領域、22…メモリ管理領域、31…領域登録部、32…テーブル検索部、33…キャッシュ入れ替え部、34…設定部、35…構造決定部、221…ページ検索ツリー(木構造データ)、221a…根(ルート)、221b…中間層(22ビット中間層)、221c…葉の層(12ビット葉の層)、222…領域検索ハッシュテーブル(ハッシュ構造データ)。 1 ... Processor, 2 ... main memory (physical memory), 3, 30 ... MMU (memory management unit, memory management unit), 4 ... bus, 11 ... arithmetic unit, 12 ... page information entry cache, 21 ... software area, 22 ... memory management area, 31 ... area registration unit, 32 ... table search unit, 33 ... cache replacement unit, 34 ... setting unit, 35 ... structure determination unit, 221 ... page search tree (tree structure data), 221a ... roots (root ), 221b ... intermediate layer (22 bit intermediate layer), 221c ... layers of the layer (12 bits leaves leaves), 222 ... area retrieval hash table (hash structure data).

Claims (14)

  1. 仮想記憶方式のコンピュータシステムに適用されて、仮想アドレスから物理アドレスへのアドレス変換のためのアドレス変換情報を含み、仮想アドレスが属する仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を用いたメモリ管理を行うメモリ管理装置において、 It is applied to a computer system in a virtual memory system, comprising an address translation information for the address translation from a virtual address to a physical address, using the page information about the physical page in the physical memory allocated to the virtual page which the virtual address belongs in the memory management apparatus that performs memory management,
    前記コンピュータシステムで実際に使用される可能性のある仮想アドレスが属する、仮想アドレス空間内の領域である仮想アドレス領域に対応付けられる木構造データであって、当該仮想アドレス領域に含まれる仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を検索するのに用いられる木構造データを前記物理メモリ上に生成する木構造データ生成手段と、 Virtual address belongs actually might be used in the computer system, a tree structure data associated with the virtual address space is an area in the virtual address space, the virtual page that is included in the virtual address space a tree structure data generating means for the tree structure data used to search for the page information about the physical page on the allocated physical memory is generated on the physical memory,
    前記仮想アドレス空間に属する全ての仮想アドレス領域の各々に対応付けられるエントリであって、当該仮想アドレス領域に対応付けられた前記木構造データを指すポインタが設定可能なエントリを含むハッシュ構造データを前記物理メモリ上に生成するハッシュ構造データ生成手段と、 Wherein a entry associated with each of all the virtual address space belonging to the virtual address space, the hash structure data containing the entry pointer settable pointing to the tree structure data associated with the virtual address space hash structure data generating means for generating a physical memory,
    任意の仮想アドレスから当該仮想アドレスが属する仮想アドレス領域に対応付けられた前記ハッシュ構造データのエントリを検索することにより、当該仮想アドレス領域に対応付けられた前記木構造データを特定して、当該木構造データから当該仮想アドレスが属する仮想ページに割り当てられる前記物理メモリ上の物理ページに関するページ情報を検索する検索手段と を具備することを特徴とするメモリ管理装置。 By searching for any virtual address of the hash structure data associated with the virtual address space virtual address belongs entry, to identify the tree structure data associated with the virtual address space, the tree memory management apparatus characterized by comprising a search means for searching for the page information about the physical page on the physical memory allocated from the structural data to the virtual page to which the virtual address belongs.
  2. 前記ハッシュ構造データは、当該ハッシュ構造データに対応する仮想アドレス空間に属する仮想アドレスのハッシュ値に応じて複数のグループに分けて管理され、当該グループ毎にそれぞれ異なる仮想アドレス領域に対応付けることが可能な複数のエントリを有することを特徴とする請求項1記載のメモリ管理装置。 Said hash structure data, in accordance with the hash value of the virtual address belonging to the virtual address space corresponding to the hash structure data is managed in a plurality of groups, which can be mapped to different virtual address space for each the group memory management apparatus according to claim 1, characterized in that it comprises a plurality of entries.
  3. 前記ハッシュ構造データの前記グループ毎の前記異なる仮想アドレス領域に対応付けられた各エントリには、当該仮想アドレス領域に対応付けられた前記木構造データを指すポインタに加えて、当該仮想アドレス領域を指す仮想アドレス情報が設定可能であることを特徴とする請求項2記載のメモリ管理装置。 Each entry in which the associated to a different virtual address space for each of the groups of the hash structure data, in addition to the pointer to the tree structure data associated with the virtual address space, refers to the virtual address space memory management apparatus according to claim 2, wherein the virtual address information can be set.
  4. 前記ハッシュ構造データ生成手段は、前記ハッシュ構造データを生成した際に、当該ハッシュ構造データの全てのエントリに、当該エントリが無効であることを示す特定データを書き込むことを特徴とする請求項3記載のメモリ管理装置。 Said hash structure data generating means, when generating the hash structure data, to all entries of the hash structure data, according to claim 3, wherein the writing specific data indicating that the entry is invalid memory management device.
  5. 外部からの仮想アドレス領域登録要求を受け付ける要求受付手段を更に具備し、 Further comprising a request receiving means for receiving a virtual address area registration request from the outside,
    前記木構造データ生成手段は、前記要求受付手段によって前記仮想アドレス領域登録要求が受け付けられた場合に、当該仮想アドレス領域登録要求によって要求された仮想アドレス領域に対応する前記木構造データを前記物理メモリ上に生成し、 The tree structure data generating unit, when the virtual address area registration request is received by said request receiving means, the virtual address space the physical memory the tree structure data corresponding to the virtual address space that is required by the registration request generated above,
    前記ハッシュ構造データ生成手段は、前記木構造データ生成手段によって前記木構造データが生成された場合に、当該生成された木構造データに対応する前記仮想アドレス領域に属する仮想アドレスに共通のハッシュ値で特定される、前記ハッシュ構造データのグループ内の複数のエントリから、無効エントリを1つ検索して、当該検索された無効エントリを、前記生成された木構造データを指すポインタ及び前記生成された木構造データに対応する前記仮想アドレス領域を指す仮想アドレス情報に書き換える ことを特徴とする請求項4記載のメモリ管理装置。 It said hash structure data generating unit, when the tree structure data by the tree structure data generating means is generated in the common hash value to the virtual address belonging to the virtual address area corresponding to the tree structure data the generated identified, the hash of a plurality of entries in the structure data group, by searching one invalid entry, the invalid entry is the search pointer and the generated tree refers to a tree structure data the generated memory management apparatus according to claim 4, wherein the rewriting the virtual address information pointing to the virtual address area corresponding to the structure data.
  6. 前記仮想アドレス空間の大きさ、登録すべき前記仮想アドレス領域の大きさ、前記ハッシュ構造データのグループ数、前記ハッシュ構造データのグループ内のエントリ数、前記ハッシュ値の計算に用いられるハッシュ計算式、及び前記木構造データの示す木構造の深さのうちの少なくとも1つを外部からの指定に応じて設定するための設定手段を更に具備することを特徴とする請求項2記載のメモリ管理装置。 The size of the virtual address space, the virtual address space size to be registered, the number of groups of said hash structure data, the number of entries in the group of the hash structure data, calculates the hash calculation expression used in the hash value, and memory management system of claim 2, characterized by further comprising setting means for setting in accordance with at least one to the specified from outside of the depth of the tree structure indicated by the tree structure data.
  7. 前記物理メモリの大きさ、前記ページの大きさ、前記仮想アドレス空間の大きさ、登録すべき前記仮想アドレス領域の大きさ、及び仮想アドレス空間毎の前記仮想アドレス領域の個数の最大値のうちの少なくとも1つの値に基づき、登録すべき前記仮想アドレス領域の大きさ、前記ハッシュ構造データのグループ数、前記ハッシュ構造データのグループ内のエントリ数、 前記ハッシュ値の計算に用いられるハッシュ計算式、及び前記木構造データの示す木構造の深さのうちの当該少なくとも1つとは異なる種類の少なくとも1つを決定する構造決定手段を更に具備することを特徴とする請求項2記載のメモリ管理装置。 The size of the physical memory, the size of the page, the size of the virtual address space, the virtual address space to be registered size, and of the maximum number of the virtual address space of the virtual address for each space based on at least one value, the virtual address space size to be registered, the number of groups of said hash structure data, the number of entries in the group of the hash structure data, calculates the hash calculation expression used in the hash value, and the at least one memory management device according to claim 2, further comprising a structure determination means for determining one different type of at least the one of the depth of the tree structure indicated by the tree structure data.
  8. 前記構造決定手段は、前記物理メモリの大きさに応じ、当該物理メモリの大きさが大きいほど、登録すべき前記仮想アドレス領域の大きさを大きく決定すること、前記ハッシュ構造データのグループ数を多く決定すること、前記ハッシュ構造データのグループ内のエントリ数を少なく決定すること、及び前記木構造データの示す木構造の深さを浅く決定することのうちの少なくとも1つを実行することを特徴とする請求項7記載のメモリ管理装置。 The structure determination means, according to the size of the physical memory, as the size of the physical memory is large, it largely determines the magnitude of to be registered the virtual address space, increasing the number of groups of said hash structure data determining that a feature of performing at least one of said determining reduce the number of entries in the hash of the structure data group, and determining shallow depth of the tree structure indicated by the tree structure data memory management apparatus according to claim 7 wherein.
  9. 前記構造決定手段は、前記ページの大きさに応じ、当該ページの大きさが大きいほど、登録すべき前記仮想アドレス領域の大きさを大きく決定すること、前記ハッシュ構造データのグループ数を少なく決定すること、前記ハッシュ構造データのグループ内のエントリ数を少なく決定すること、及び前記木構造データの示す木構造の深さを浅く決定することのうちの少なくとも1つを実行することを特徴とする請求項7記載のメモリ管理装置。 The structure determination means, according to the size of the page, as the size of the page is large, determining increasing the size of the to be registered the virtual address space, determining reduce the number of groups of said hash structure data it, claims the determining reduce the number of entries in the hash of the structure data group, and is characterized by performing at least one of determining shallow depth of the tree structure indicated by the tree structure data memory management apparatus of claim 7, wherein.
  10. 前記構造決定手段は、前記仮想アドレス空間の大きさに応じ、当該仮想アドレス空間の大きさが大きいほど、登録すべき仮想アドレス領域の大きさを大きく決定すること、前記ハッシュ構造データのグループ数を少なく決定すること、前記ハッシュ構造データのグループ内のエントリ数を少なく決定すること、及び前記木構造データの示す木構造の深さを深く決定することのうちの少なくとも1つを実行することを特徴とする請求項7記載のメモリ管理装置。 The structure determination means, according to the size of the virtual address space, as the size of the virtual address space is large, it largely determines the size of the virtual address space to be registered, the number of groups of said hash structure data reducing determining, said hash structure determining reduce the number of entries in a group of data, and wherein performing at least one of the deep determining the depth of the tree structure indicated by the tree structure data memory management apparatus according to claim 7,.
  11. 前記構造決定手段は、前記登録すべき仮想アドレス領域の大きさに応じ、当該仮想アドレス領域の大きさが大きいほど、前記ハッシュ構造データのグループ数を少なく決定すること、前記ハッシュ構造データのグループ内のエントリ数を少なく決定すること、及び前記木構造データの示す木構造の深さを深く決定することのうちの少なくとも1つを実行することを特徴とする請求項7記載のメモリ管理装置。 The structure determination means, depending on the size of the virtual address space to be said registration, as the size of the virtual address space is large, the hash determining reduce the number of groups of configuration data, within the group of the hash structure data of determining reduce the number of entries, and a memory management apparatus according to claim 7, wherein performing at least one of the deep determining the depth of the tree structure indicated by the tree structure data.
  12. 前記構造決定手段は、前記仮想アドレス空間毎の仮想アドレス領域の個数の最大値に応じ、当該最大値が大きいほど、前記ハッシュ構造データのグループ数を多く決定すること、前記ハッシュ構造データのグループ内のエントリ数を多く決定すること、及び前記木構造データの示す木構造の深さを浅く決定することのうちの少なくとも1つを実行することを特徴とする請求項7記載のメモリ管理装置。 The structure determination means, depending on the maximum number of virtual address space of the virtual address for each space, the more the maximum value is larger, the hash to determine more the number of groups of configuration data, within the group of the hash structure data of determining more the number of entries, and a memory management apparatus according to claim 7, wherein performing at least one of determining shallow depth of the tree structure indicated by the tree structure data.
  13. 仮想記憶方式のコンピュータシステムにおいて、 In a computer system in a virtual memory system,
    前記コンピュータシステムで実際に使用される可能性のある仮想アドレスが属する、仮想アドレス空間内の領域である仮想アドレス領域に対応付けられる木構造データであって、当該仮想アドレス領域内の仮想アドレスから物理アドレスへのアドレス変換のためのアドレス変換情報を含み、当該仮想アドレスが属する仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を検索するのに用いられる木構造データを保持する木構造データ保持手段と、 Said virtual address belongs actually might be used in a computer system, a tree structure data associated with the virtual address space is an area in the virtual address space, physical virtual address of the virtual address space It includes address translation information for the address conversion in the address holding tree structure data that holds the tree structure data used to search for the page information about the physical page in the physical memory allocated to the virtual page to which the virtual address belongs and means,
    前記仮想アドレス空間に属する全ての仮想アドレス領域の各々に対応付けられるエントリであって、当該仮想アドレス領域に対応付けられた前記木構造データを指すポインタが設定可能なエントリを含むハッシュ構造データを保持するハッシュ構造データ保持手段と、 Wherein a entry associated with each of all the virtual address space belonging to the virtual address space, stores the hash structure data including the possible pointer to the tree structure data associated with the virtual address space is set entry and hash structure data holding means for,
    任意の仮想アドレスから当該仮想アドレスが属する仮想アドレス領域に対応付けられた前記ハッシュ構造データのエントリを検索することにより、当該仮想アドレス領域に対応付けられた前記木構造データを特定して、当該木構造データから当該仮想アドレスが属する仮想ページに割り当てられる前記物理メモリ上の物理ページに関するページ情報を検索する検索手段と を具備することを特徴とするコンピュータシステム。 By searching for any virtual address of the hash structure data associated with the virtual address space virtual address belongs entry, to identify the tree structure data associated with the virtual address space, the tree computer system characterized by comprising a search means for searching for the page information about the physical page on the physical memory allocated from the structural data to the virtual page to which the virtual address belongs.
  14. 仮想記憶方式のコンピュータシステムに適用され、仮想アドレスから物理アドレスへのアドレス変換のためのアドレス変換情報及び仮想アドレスが属する仮想ページに割り当てられる物理メモリ上の物理ページに関するページ情報を用いたメモリ管理を行うメモリ管理方法において、 It applied to the computer system of the virtual memory system, a memory management address translation information and the virtual address for the address translation to a physical address using the page information about the physical pages of physical memory allocated to the virtual pages belonging virtual address in the memory management how to do so,
    前記コンピュータシステムで実際に使用すべき仮想アドレスが属する仮想アドレス空間内の領域を仮想アドレス領域として登録することを要求するための仮想アドレス領域要求を受け付けるステップと、 A step of receiving a virtual address space request for requesting to register an area in the virtual address space virtual address to be actually used in the computer system belongs as a virtual address space,
    前記仮想アドレス領域登録要求が受け付けられた場合に、当該仮想アドレス領域登録要求によって要求された仮想アドレス領域に対応付けられる木構造データであって、当該仮想アドレス領域に含まれる仮想ページに割り当てられる前記物理メモリ上の物理ページに関するページ情報を検索するのに用いられる木構造データを前記物理メモリ上に生成するステップと、 If the virtual address area registration request is accepted, a tree structure data associated with the virtual address space required by the virtual address area registration request, is allocated to the virtual page included in the virtual address space wherein generating a tree structure data used to search for the page information about the physical page in the physical memory on the physical memory,
    前記仮想アドレス空間に属する仮想アドレスのハッシュ値に応じて複数のグループに分けて管理され、当該グループ毎にそれぞれ異なる仮想アドレス領域に対応付けることが可能な複数のエントリであって、初期状態では無効であることを示す特定データが書き込まれる複数のエントリを有するハッシュ構造データを前記物理メモリ上に生成するステップと、 Wherein is managed in accordance with the hash value of the virtual address belonging to the virtual address space is divided into a plurality of groups, a plurality of entries that can be associated with each respective said group different virtual address space, and disabled in the initial state generating a hash structure data having a plurality of entries specified data is written to indicate that on the physical memory,
    前記木構造データが生成された場合に、当該生成された木構造データに対応する前記仮想アドレス領域に属する仮想アドレスに共通のハッシュ値で特定される、前記ハッシュ構造データのグループ内の複数のエントリから、無効エントリを1つ検索して、当該検索された無効エントリを、前記生成された木構造データを指すポインタ及び前記生成された木構造データに対応する前記仮想アドレス領域を指す仮想アドレス情報に書き換えるステップと、 If the tree structure data is generated, specified by the common hash value to the virtual address belonging to the virtual address area corresponding to the generated tree-structured data, a plurality of entries in a group of said hash structure data from one invalid entries locate and invalid entries the search, the virtual address information pointing to the virtual address area corresponding to the tree structure data pointer and the generation point to the tree structure data the generated and a step of rewriting,
    任意の仮想アドレスが属する仮想ページに対応するページ情報の検索要求を受けて、前記任意の仮想アドレスのハッシュ値を算出するステップと、 Receiving a search request for the page information corresponding to the virtual page which any virtual address belongs, calculating a hash value of the arbitrary virtual address,
    前記算出されたハッシュ値で特定される、前記ハッシュ構造データのグループ内の複数のエントリから、前記任意の仮想アドレスに対応する仮想アドレス情報が保持されているエントリを検索することにより、当該検索されたエントリから前記任意の仮想アドレスが属する仮想アドレス領域に対応付けられた前記木構造データを指し示すポインタを取得するステップと、 Said specified by the calculated hash value, from a plurality of entries in a group of said hash structure data, by searching the entry virtual address information is held corresponding to the given virtual address, is the search obtaining a pointer to the tree structure data to which the arbitrary virtual address entries are associated with the virtual address space belonging,
    前記取得されたポインタによって指し示される木構造データから前記任意の仮想アドレスが属する仮想ページに割り当てられる前記物理メモリ上の物理ページに関するページ情報を検索するステップと を具備することを特徴とするメモリ管理方法。 Memory management, characterized by comprising a step of searching for the page information about the physical page on the physical memory where the arbitrary virtual address from the tree structure data pointed to by the acquired pointer is allocated to the virtual page belongs Method.
JP2004371727A 2004-12-22 2004-12-22 The memory management unit, a computer system and a memory management method Expired - Fee Related JP4060847B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004371727A JP4060847B2 (en) 2004-12-22 2004-12-22 The memory management unit, a computer system and a memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004371727A JP4060847B2 (en) 2004-12-22 2004-12-22 The memory management unit, a computer system and a memory management method

Publications (2)

Publication Number Publication Date
JP2006178764A JP2006178764A (en) 2006-07-06
JP4060847B2 true JP4060847B2 (en) 2008-03-12

Family

ID=36732825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004371727A Expired - Fee Related JP4060847B2 (en) 2004-12-22 2004-12-22 The memory management unit, a computer system and a memory management method

Country Status (1)

Country Link
JP (1) JP4060847B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256550B2 (en) * 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
US9064030B2 (en) 2012-11-29 2015-06-23 International Business Machines Corporation Tree traversal in a memory device

Also Published As

Publication number Publication date
JP2006178764A (en) 2006-07-06

Similar Documents

Publication Publication Date Title
EP1653365B1 (en) Invalidating storage, clearing buffer entries
US6493800B1 (en) Method and system for dynamically partitioning a shared cache
US9619399B2 (en) Large-page optimization in virtual memory paging systems
US7089370B2 (en) Apparatus and method for pre-fetching page data using segment table data
JP2554449B2 (en) Data processing system having a cache memory
JP4486750B2 (en) Shared cache structure for temporary instructions and non-temporary instructions
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
KR100843536B1 (en) Improved memory management for real-time applications
EP1027656B1 (en) Method and apparatus utilizing a region based page table walk bit
EP0856798B1 (en) A cache system
Calder et al. Predictive sequential associative cache
US9934155B2 (en) Method, system, and apparatus for page sizing extension
US6012132A (en) Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table
US6381668B1 (en) Address mapping for system memory
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
JP4008826B2 (en) Apparatus for cache compression engine to increase the effective cache size by data compression of on-chip cache
US7284096B2 (en) Systems and methods for data caching
US6446188B1 (en) Caching dynamically allocated objects
US20140101402A1 (en) System supporting multiple partitions with differing translation formats
US5526504A (en) Variable page size translation lookaside buffer
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
JP4085389B2 (en) Multiprocessor systems, consistency control and consistency control method in a multiprocessor system
US6430655B1 (en) Scratchpad RAM memory accessible in parallel to a primary cache
US6594729B1 (en) Cache system
JP4246922B2 (en) Recent least-recently-used replacement method with protective function

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071220

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111228

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121228

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131228

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees