JP2007304747A - Computer system and memory access method - Google Patents

Computer system and memory access method Download PDF

Info

Publication number
JP2007304747A
JP2007304747A JP2006131028A JP2006131028A JP2007304747A JP 2007304747 A JP2007304747 A JP 2007304747A JP 2006131028 A JP2006131028 A JP 2006131028A JP 2006131028 A JP2006131028 A JP 2006131028A JP 2007304747 A JP2007304747 A JP 2007304747A
Authority
JP
Japan
Prior art keywords
block address
address
storage device
access
physical
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.)
Pending
Application number
JP2006131028A
Other languages
Japanese (ja)
Inventor
Masahiko Takahashi
雅彦 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006131028A priority Critical patent/JP2007304747A/en
Publication of JP2007304747A publication Critical patent/JP2007304747A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a computer system that starts at high speed and operates at high speed. <P>SOLUTION: The computer system 1 comprises a first storage device 21, a second storage device 22 different in performance from the first storage device 21, and a data processing device for accessing the first and second storage devices 22. The first and second storage devices 21 and 22 are divided into blocks. At the first access to a first logical block address representing a block, the data processing device accesses a first physical block address of the first storage device 21 corresponding to the first logical block address. At the m-th access (m is an arbitrary integer of 2 or more) to the first logical block address, the data processing device copies the contents of the block to a free block of the second storage device 22 and accesses a second physical block address of the second storage device 22 corresponding to the copy destination. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、計算機システムに関する。特に、本発明は、計算機システムにおけるメモリアクセス技術に関する。   The present invention relates to a computer system. In particular, the present invention relates to a memory access technique in a computer system.

実行されるプログラムがROM(Read Only Memory)などの不揮発性半導体記憶装置に格納された計算機システムが知られている。不揮発性半導体記憶装置に対する読み込みレイテンシは悪く、CPUが不揮発性半導体記憶装置から直接プログラムを読み込んで実行する場合、処理は遅くなる。限られたハードウェア資源で、計算機システムをより高速に動作させることができる技術が求められている。   A computer system in which a program to be executed is stored in a nonvolatile semiconductor memory device such as a ROM (Read Only Memory) is known. The read latency with respect to the nonvolatile semiconductor memory device is poor, and when the CPU reads and executes the program directly from the nonvolatile semiconductor memory device, the processing is slow. There is a need for a technique that can operate a computer system at a higher speed with limited hardware resources.

高速動作の実現を目的とする技術が、特許文献1や特許文献2に開示されている。   Techniques aimed at realizing high-speed operation are disclosed in Patent Document 1 and Patent Document 2.

特許文献1に記載された情報処理装置は、命令データが記録されるROMと、データ処理のための作業領域として使用されるRAM(Random Access Memory)を備えている。更に、その情報処理装置は、ROM内の命令データを高速なRAMに複製する複製手段と、命令データを実行する際に高速なRAMに記録された命令データを読み出して実行する実行手段とを備えている。   The information processing apparatus described in Patent Document 1 includes a ROM in which instruction data is recorded and a RAM (Random Access Memory) used as a work area for data processing. The information processing apparatus further includes a duplicating unit that duplicates the instruction data in the ROM to a high-speed RAM, and an execution unit that reads and executes the instruction data recorded in the high-speed RAM when executing the instruction data. ing.

特許文献2には、最適メモリ配置演算装置が記載されている。その最適メモリ配置演算装置は、CPUからメモリへのアクセスのためのメモリマネージメントユニット(MMU)を備えるシステムに設けられる。その最適メモリ配置演算装置は、アクセス頻度監視部と、メモリ配置変換ポリシー決定部と、テーブル書換え部と、及びメモリコピー部とを備えている。アクセス頻度監視部は、メモリのアクセス頻度が多いページを判定する。メモリ配置変換ポリシー決定部は、アクセス頻度監視部が判定した結果の情報を受け取り、受け取った情報から決まったポリシーに従って、メモリ上のデータの配置変換を決定し、メモリの配置変換情報を出力する。テーブル書換え部は、メモリ配置変換ポリシー決定部から出力される配置変換情報を受け取り、MMUのページテーブルの情報を配置変換情報に対応するように書き換える。メモリコピー部は、メモリ配置変換ポリシー決定部から出力される配置変換情報を受け取り、メモリのページに記録されている情報を配置変換情報に対応するようにコピーを行う。   Patent Document 2 describes an optimal memory arrangement calculation device. The optimum memory arrangement arithmetic unit is provided in a system including a memory management unit (MMU) for accessing a memory from a CPU. The optimum memory arrangement calculation device includes an access frequency monitoring unit, a memory arrangement conversion policy determining unit, a table rewriting unit, and a memory copying unit. The access frequency monitoring unit determines a page having a high memory access frequency. The memory arrangement conversion policy determining unit receives information of the result determined by the access frequency monitoring unit, determines the data arrangement conversion on the memory according to the policy determined from the received information, and outputs the memory arrangement conversion information. The table rewriting unit receives the layout conversion information output from the memory layout conversion policy determination unit, and rewrites the information in the MMU page table so as to correspond to the layout conversion information. The memory copy unit receives the layout conversion information output from the memory layout conversion policy determination unit, and performs copying so that the information recorded on the memory page corresponds to the layout conversion information.

特開2000−99396号公報JP 2000-99396 A 特開2005−216053号公報Japanese Patent Laid-Open No. 2005-216053

上述の通り、従来、計算機システムの高速動作の実現を目的とする技術が提案されている。しかし、計算機システムにおいては、高速動作だけでなく、高速起動の実現も重要である。   As described above, conventionally, a technique for realizing a high-speed operation of a computer system has been proposed. However, in a computer system, it is important to realize not only high-speed operation but also high-speed startup.

特に最近、計算機システムに搭載されるソフトウェアの規模が爆発的に増大している。そのため、従来のシンプルなシステムソフトウェアの場合と比較して、計算機システムの起動時間が非常に長くなっている。従って、計算機システムにおいて、高速動作だけでなく高速起動を実現することができる技術が望まれている。   Particularly recently, the scale of software installed in computer systems has increased explosively. For this reason, the startup time of the computer system is very long compared to the case of conventional simple system software. Therefore, a technique capable of realizing not only high-speed operation but also high-speed startup in a computer system is desired.

以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、[課題を解決するための手段]を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。   [Means for Solving the Problems] will be described below using the numbers and symbols used in [Best Mode for Carrying Out the Invention]. These numbers and symbols are added in parentheses in order to clarify the correspondence between the description of [Claims] and [Best Mode for Carrying Out the Invention]. However, these numbers and symbols should not be used for the interpretation of the technical scope of the invention described in [Claims].

本発明の第1の観点において、計算機システム(1)が提供される。その計算機システム(1)は、第1記憶装置(21)と、その第1記憶装置(21)と性能の異なる第2記憶装置(22)と、第1及び第2記憶装置(22)へのアクセスを行うデータ処理装置とを備える。第1、第2記憶装置(21、22)は、ブロック毎に区分けされる。あるブロックを指し示す第1論理ブロックアドレスへの第1回目のアクセス時、データ処理装置は、第1記憶装置(21)のうち第1論理ブロックアドレスに対応する第1物理ブロックアドレスにアクセスする。また、第1論理ブロックアドレスへの第m回目(mは2以上の任意の整数)のアクセス時、データ処理装置は、そのブロックの内容を第2記憶装置(22)の空きブロックへコピーし、第2記憶装置(22)のうちコピー先に対応する第2物理ブロックアドレスにアクセスする。   In a first aspect of the present invention, a computer system (1) is provided. The computer system (1) includes a first storage device (21), a second storage device (22) having a performance different from that of the first storage device (21), and the first and second storage devices (22). And a data processing device for performing access. The first and second storage devices (21, 22) are divided into blocks. At the first access to the first logical block address indicating a certain block, the data processing device accesses the first physical block address corresponding to the first logical block address in the first storage device (21). Further, at the m-th access (m is an arbitrary integer equal to or greater than 2) to the first logical block address, the data processing device copies the contents of the block to an empty block in the second storage device (22), The second physical block address corresponding to the copy destination in the second storage device (22) is accessed.

例えば、本発明に係る計算機システム(1)は、論理ブロックアドレスと物理ブロックアドレスとの対応関係を示すマッピングテーブル(12)を備える。また、データ処理装置は、マッピングテーブル(12)の一部が格納されるように構成されたキャッシュ(14)を有し、プログラムからのメモリアクセス要求に応答してそのキャッシュ(14)を参照する。第1論理ブロックアドレスに対応する物理ブロックアドレスを示す第1エントリがキャッシュに登録されていない場合、データ処理装置は、マッピングテーブル(12)を参照することによって第1エントリをキャッシュに登録する。一方、第1エントリがキャッシュに登録されている場合、データ処理装置は、第1論理ブロックアドレスを対応する物理ブロックアドレスに変換し、その対応する物理ブロックアドレスにアクセスする。   For example, the computer system (1) according to the present invention includes a mapping table (12) indicating the correspondence between logical block addresses and physical block addresses. The data processing apparatus has a cache (14) configured to store a part of the mapping table (12), and refers to the cache (14) in response to a memory access request from a program. . If the first entry indicating the physical block address corresponding to the first logical block address is not registered in the cache, the data processing apparatus registers the first entry in the cache by referring to the mapping table (12). On the other hand, when the first entry is registered in the cache, the data processing device converts the first logical block address into a corresponding physical block address and accesses the corresponding physical block address.

ここで、計算機システム(1)は、マッピングテーブル(12)に格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブル(16)を備える。データ処理装置は、マッピングテーブル(12)中の第1エントリを参照する度に、そのアクセス回数管理テーブル(16)中の第1エントリに対応づけられた第1参照回数のインクリメントを行う。インクリメントの前の第1参照回数がN(Nは1以上の任意の整数)である場合、データ処理装置は、上記ブロックの内容を第2記憶装置(22)の空きブロックへコピーする。更に、データ処理装置は、第1エントリが第1論理ブロックアドレスと第2物理ブロックアドレスとの対応関係を示すように、マッピングテーブル(12)を更新する。これにより、上述の処理が実現される。   Here, the computer system (1) includes an access count management table (16) indicating the reference count of each entry stored in the mapping table (12). Each time the data processing apparatus refers to the first entry in the mapping table (12), it increments the first reference number associated with the first entry in the access number management table (16). When the first reference count before the increment is N (N is an arbitrary integer equal to or greater than 1), the data processing device copies the contents of the block to an empty block in the second storage device (22). Further, the data processing apparatus updates the mapping table (12) so that the first entry indicates the correspondence between the first logical block address and the second physical block address. Thereby, the above-described processing is realized.

第2記憶装置(22)へのアクセス速度は、第1記憶装置(21)へのアクセス速度よりもはやいとする。例えば、第1記憶装置(21)は不揮発性記憶装置であり、第2記憶装置(22)は揮発性記憶装置である。   It is assumed that the access speed to the second storage device (22) is no longer than the access speed to the first storage device (21). For example, the first storage device (21) is a nonvolatile storage device, and the second storage device (22) is a volatile storage device.

第1記憶装置(21)には、一回しか実行されない初期化ルーチンも、繰り返し参照される繰り返し演算ルーチンも格納されている。もし、高速動作を実現するために起動後すぐに第1記憶装置(21)の内容が第2記憶装置(22)にコピーされるとすると、一回しか実行されない初期化ルーチンを含むブロックもコピーされてしまう。極端な場合、1バイトのデータに対するメモリアクセスであっても、そのデータを含むブロック全体の複製が行われてしまう。このことは、起動速度の著しい低下を招いてしまう。メモリブロックのサイズはプログラムが要求する1回のメモリアクセスのサイズよりもはるかに大きく、数回のメモリアクセスのためだけにブロック全体の複製を実行することは大きなオーバヘッドとなり、高速な起動が妨げられるからである。   The first storage device (21) stores an initialization routine that is executed only once and an iterative operation routine that is repeatedly referred to. If the contents of the first storage device (21) are copied to the second storage device (22) immediately after startup to realize high-speed operation, the block including the initialization routine that is executed only once is also copied. Will be. In an extreme case, even when memory access is performed on 1-byte data, the entire block including the data is copied. This leads to a significant decrease in startup speed. The size of the memory block is much larger than the size of a single memory access required by the program, and performing full block duplication just for a few memory accesses is a big overhead and prevents fast startup Because.

本発明によれば、第1論理ブロックアドレスへの第1回目のアクセス時、データ処理装置は、第1記憶装置(21)中の第1物理ブロックアドレスにアクセスする。そして、第1論理ブロックアドレスへの第m回目のアクセス時、データ処理装置は、ブロックの内容を第2記憶装置(22)の空きブロックへコピーし、第2記憶装置(22)中の第2物理ブロックアドレスにアクセスする。逆に言えば、第m回目のアクセスまでは、コピーは行われない。従って、一回しか実行されない初期化ルーチンは、第2記憶装置(22)にコピーされることはなく、第1記憶装置(21)から直接読み出されて実行される。つまり、起動時にだけ必要なプログラムは、ブロック単位でコピーされることなく、メモリアクセスの単位で第1記憶装置(21)から読み出され実行される。従って、計算機システム(1)の高速起動が実現される。   According to the present invention, at the first access to the first logical block address, the data processing device accesses the first physical block address in the first storage device (21). Then, at the m-th access to the first logical block address, the data processing device copies the contents of the block to an empty block of the second storage device (22), and the second storage device (22) in the second storage device (22). Access the physical block address. In other words, copying is not performed until the m-th access. Therefore, the initialization routine that is executed only once is not copied to the second storage device (22), but is directly read from the first storage device (21) and executed. That is, a program required only at the time of activation is read from the first storage device (21) and executed in memory access units without being copied in block units. Therefore, high speed activation of the computer system (1) is realized.

また、繰り返し実行されるプログラムは、第1記憶装置(21)から第2記憶装置(22)にコピーされる。コピー後、そのプログラムは、高速の第2記憶装置(22)から読み出されて実行される。例えば、N値が1に設定されている場合、プログラムは、初回のアクセス時には第1記憶装置(21)から読み出され、2回目以降のアクセス時には高速な第2記憶装置(22)から読み出される。従って、計算機システム(1)の高速動作が実現される。   The program that is repeatedly executed is copied from the first storage device (21) to the second storage device (22). After copying, the program is read from the high-speed second storage device (22) and executed. For example, when the N value is set to 1, the program is read from the first storage device (21) at the first access, and is read from the high-speed second storage device (22) at the second and subsequent accesses. . Therefore, high speed operation of the computer system (1) is realized.

以上に説明されたように、本発明によれば、高速に起動し、且つ、高速に動作する計算機システム(1)が提供される。すなわち、高速起動と、起動後の高速動作の両立が可能となる。   As described above, according to the present invention, a computer system (1) that starts at high speed and operates at high speed is provided. That is, it is possible to achieve both high-speed startup and high-speed operation after startup.

本発明の第2の観点において、メモリコントローラ(30)が提供される。そのメモリコントローラ(30)は、ブロック毎に区分けされた第1記憶装置(21)、及び第1記憶装置(21)と性能の異なる第2記憶装置(22)へのアクセスを制御する。そのメモリコントローラ(30)は、CPUからメモリアクセス要求を受け取るメモリアクセス部(31)と、そのメモリアクセス要求が示す物理アドレスを変換する物理アドレス変換部(32)とを備える。あるブロックへのアクセス時、メモリアクセス部(31)は、第1記憶装置(21)のうちそのブロックに対応する第1物理ブロックアドレスをCPUから受け取る。そのブロックへの第1回目のアクセス時、メモリアクセス部(31)は、第1物理ブロックアドレスにアクセスする。また、そのブロックへの第m回目(mは2以上の任意の整数)のアクセス時、メモリアクセス部(31)は、そのブロックの内容を第2記憶装置(22)の空きブロックへコピーする。そして、物理アドレス変換部(32)は、第1物理ブロックアドレスを第2記憶装置(22)のうちコピー先に対応する第2物理ブロックアドレスに変換し、メモリアクセス部(31)は、第2物理ブロックアドレスにアクセスする。   In a second aspect of the invention, a memory controller (30) is provided. The memory controller (30) controls access to the first storage device (21) divided into blocks and the second storage device (22) having different performance from the first storage device (21). The memory controller (30) includes a memory access unit (31) that receives a memory access request from the CPU, and a physical address conversion unit (32) that converts a physical address indicated by the memory access request. When accessing a certain block, the memory access unit (31) receives a first physical block address corresponding to that block in the first storage device (21) from the CPU. At the first access to the block, the memory access unit (31) accesses the first physical block address. In addition, at the m-th access to the block (m is an arbitrary integer equal to or greater than 2), the memory access unit (31) copies the contents of the block to an empty block of the second storage device (22). The physical address conversion unit (32) converts the first physical block address to the second physical block address corresponding to the copy destination in the second storage device (22), and the memory access unit (31) Access the physical block address.

本発明の第3の観点において、計算機システム(1)におけるメモリアクセス方法が提供される。その計算機システム(1)は、第1記憶装置(21)と、その第1記憶装置(21)と性能の異なる第2記憶装置(22)とを備える。第1、第2記憶装置(21、22)は、ブロック毎に区分けされる。本発明に係るメモリアクセス方法は、(A)あるブロックを指し示す第1論理ブロックアドレスへの第1回目のアクセス時、第1記憶装置(21)のうち第1論理ブロックアドレスに対応する第1物理ブロックアドレスにアクセスするステップと、(B)第1論理ブロックアドレスへの第m回目(mは2以上の任意の整数)のアクセス時、そのブロックの内容を第2記憶装置(22)の空きブロックへコピーし、第2記憶装置(22)のうちコピー先に対応する第2物理ブロックアドレスにアクセスするステップとを有する。   In a third aspect of the present invention, a memory access method in the computer system (1) is provided. The computer system (1) includes a first storage device (21) and a second storage device (22) having a performance different from that of the first storage device (21). The first and second storage devices (21, 22) are divided into blocks. According to the memory access method of the present invention, (A) the first physical corresponding to the first logical block address in the first storage device (21) at the first access to the first logical block address indicating a certain block. A step of accessing the block address; and (B) at the m-th access to the first logical block address (m is an arbitrary integer equal to or greater than 2), the contents of the block are stored in the free block of the second storage device (22). And accessing the second physical block address corresponding to the copy destination in the second storage device (22).

本発明の第4の観点において、上記メモリアクセス方法を計算機システム(1)に実行させるためのメモリアクセス制御プログラムが提供される。   In a fourth aspect of the present invention, there is provided a memory access control program for causing a computer system (1) to execute the memory access method.

以上に説明されたように、本発明によれば、高速に起動し、且つ、高速に動作する計算機システムが提供される。また、本発明に係るメモリアクセス方法及びメモリアクセス制御プログラムによれば、計算機システムの高速起動と、起動後の高速動作の両立が可能となる。   As described above, according to the present invention, a computer system that starts at high speed and operates at high speed is provided. Further, according to the memory access method and the memory access control program according to the present invention, it is possible to achieve both high-speed startup of the computer system and high-speed operation after startup.

添付図面を参照して、本発明の実施の形態に係る計算機システムを説明する。本実施の形態に係る計算機システムは、少なくとも2種類の記憶装置(メモリ)を備えている。例えば、本実施の形態に係る計算機システムは、ROMとRAMを備えている。そのような計算機システムは、例えば、サーバや情報家電やカーナビゲーション装置に搭載される。   A computer system according to an embodiment of the present invention will be described with reference to the accompanying drawings. The computer system according to the present embodiment includes at least two types of storage devices (memory). For example, the computer system according to the present embodiment includes a ROM and a RAM. Such a computer system is mounted on, for example, a server, an information appliance, or a car navigation device.

本実施の形態において、メモリのアドレスを示す「論理アドレス(logical address)」と「物理アドレス(physical address)」が用いられる。論理アドレスは、CPUによって実行されるプログラムが使用するアドレスであり、物理アドレスは、実際のメモリ上のアドレスである。論理アドレスと物理アドレスは、互いに対応付けられている。プログラムが、ある論理アドレスを指定すると、データ処理装置は、その論理アドレスを対応する物理アドレスに変換し、得られた物理アドレスにアクセスする。   In the present embodiment, a “logical address” and a “physical address” indicating memory addresses are used. The logical address is an address used by a program executed by the CPU, and the physical address is an address on an actual memory. The logical address and the physical address are associated with each other. When the program designates a certain logical address, the data processing device converts the logical address into a corresponding physical address and accesses the obtained physical address.

また、本実施の形態において、論理アドレスから物理アドレスへのアドレス変換は、メモリ上の所定の幅のブロックごとに行われる。例えば、アドレス変換は、ページ(page)を単位として行われる。ページとは、メモリ上の区画であり、例えばメモリ領域が4Kbyteごとに区切られるとき、その4Kbyteの区画の各々がページに相当する。論理アドレスは、所定の幅のブロック(ページ)を示す上位アドレスと、そのブロック(ページ)内のアドレスを示す下位アドレスに分けて扱われる。その上位アドレスは、「論理ブロックアドレス」と参照され、その下位アドレスは、「ブロック内アドレス」と参照される。同様に、物理アドレスは、「物理ブロックアドレス(上位アドレス)」と「ブロック内アドレス(下位アドレス)」に分けられる。実際のアドレス変換においては、論理ブロックアドレスから物理ブロックアドレスへの変換が行われ、ブロック内アドレスはそのまま引き継がれる。   In this embodiment, the address conversion from the logical address to the physical address is performed for each block having a predetermined width on the memory. For example, the address conversion is performed in units of pages. A page is a partition on a memory. For example, when a memory area is divided every 4 Kbytes, each 4 Kbyte partition corresponds to a page. A logical address is divided into an upper address indicating a block (page) having a predetermined width and a lower address indicating an address in the block (page). The upper address is referred to as a “logical block address”, and the lower address is referred to as an “in-block address”. Similarly, the physical address is divided into “physical block address (upper address)” and “in-block address (lower address)”. In actual address conversion, conversion from a logical block address to a physical block address is performed, and the intra-block address is taken over as it is.

1.第1の実施の形態
1−1.構成
図1は、本発明の第1の実施の形態に係る計算機システム1の構成を概念的に示している。本実施の形態に係る計算機システム1は、主記憶として複数の記憶部を備えている。例えば、図1に示される計算機システム1は、性能の異なる2つの記憶部21、22を備えている。
1. 1. First embodiment 1-1. Configuration FIG. 1 conceptually shows the configuration of a computer system 1 according to the first embodiment of the present invention. The computer system 1 according to the present embodiment includes a plurality of storage units as main memory. For example, the computer system 1 shown in FIG. 1 includes two storage units 21 and 22 having different performances.

例えば、第1の記憶部21は不揮発性記憶装置であり、そこには計算機システム1が実行するプログラムや読み出し専用のデータが格納されている。格納されているプログラムは、一回しか実行されない初期化ルーチンも、繰り返し実行されるアプリケーションも含んでいる。第2の記憶部22は、例えば揮発性記憶装置であり、第1の記憶部21よりも優れた動作速度を有している。これら記憶部21、22のそれぞれには、異なる物理ブロックアドレスが割り当てられている。図13A及び図13Bは、記憶部21、22のそれぞれに割り当てられる物理ブロックアドレスの例を示している。このように、本実施の形態に係る計算機システム1は、性能の異なる2以上の記憶媒体を同一物理アドレス空間内に異なるアドレスで備えている。   For example, the first storage unit 21 is a non-volatile storage device, in which a program executed by the computer system 1 and read-only data are stored. Stored programs include initialization routines that are executed only once and applications that are executed repeatedly. The second storage unit 22 is, for example, a volatile storage device, and has an operation speed superior to that of the first storage unit 21. A different physical block address is assigned to each of the storage units 21 and 22. 13A and 13B show examples of physical block addresses assigned to the storage units 21 and 22, respectively. As described above, the computer system 1 according to the present embodiment includes two or more storage media having different performances with different addresses in the same physical address space.

図1に示される計算機システム1は、更に、アドレス変換部11、マッピングテーブル12、マッピングテーブル初期化部13、マッピングキャッシュ14、マッピング検索部15、アクセス回数管理テーブル16、マッピングテーブル変更部17、及び後処理ハンドラ部18を備えている。   The computer system 1 shown in FIG. 1 further includes an address conversion unit 11, a mapping table 12, a mapping table initialization unit 13, a mapping cache 14, a mapping search unit 15, an access count management table 16, a mapping table change unit 17, and A post-processing handler unit 18 is provided.

アドレス変換部11は、アドレス変換を行うためのモジュールであり、例えばCPUに搭載されている。具体的には、アドレス変換部11は、実行中のプログラムからメモリアクセス要求を受け取る。そのメモリアクセス要求には、アクセス対象の論理アドレスが指定されている。アドレス変換部11は、その指定された論理アドレスを、対応する物理アドレスに変換する。つまり、アドレス変換部11は、プログラムが指定する論理アドレスを、複数の記憶部(21、22)のいずれかの物理アドレスに変換する。実際には、アドレス変換部11は、論理アドレスが示す論理ブロックアドレスを対応する物理ブロックアドレスに変換し、ブロック内アドレスは変換せずにそのまま用いる。   The address conversion unit 11 is a module for performing address conversion, and is mounted on, for example, a CPU. Specifically, the address conversion unit 11 receives a memory access request from the program being executed. The logical address to be accessed is specified in the memory access request. The address conversion unit 11 converts the designated logical address into a corresponding physical address. That is, the address conversion unit 11 converts the logical address designated by the program into any physical address of the plurality of storage units (21, 22). Actually, the address conversion unit 11 converts the logical block address indicated by the logical address into a corresponding physical block address, and uses the intra-block address without conversion.

マッピングテーブル12は、論理ブロックアドレスと物理ブロックアドレスの対応関係を示すテーブルである。このマッピングテーブル12は、例えば、第2の記憶部22上に構築される。図14Aは、本実施の形態に係るマッピングテーブル12の構成を概念的に示しており、図14B〜図14Dは、マッピングテーブル12の例をそれぞれ示している。図14A〜図14Dに示されるように、マッピングテーブル12の各エントリは、あるブロックに関する論理ブロックアドレス、物理ブロックアドレス、及びアクセス権限によって構成されている。アクセス権限“1”は、当該ブロックへのアクセスが「可能」であることを意味し、アクセス権限“0”は、当該ブロックへのアクセスが「不可(不許可)」であることを意味する。アクセス不可の場合、後述される「例外イベント」が発生し、OSなどによって例外処理が行なわれる。尚、マッピングテーブル12のエントリには更に、メモリアクセスの読み/書き/実行などのアクセス制限を表わす属性などが含まれていてもよい。マッピングテーブル12としては、例えばページテーブルが用いられる。   The mapping table 12 is a table showing the correspondence between logical block addresses and physical block addresses. This mapping table 12 is constructed on the second storage unit 22, for example. FIG. 14A conceptually shows the configuration of the mapping table 12 according to the present embodiment, and FIGS. 14B to 14D show examples of the mapping table 12, respectively. As shown in FIGS. 14A to 14D, each entry of the mapping table 12 is configured by a logical block address, a physical block address, and an access authority related to a certain block. The access authority “1” means that access to the block is “possible”, and the access authority “0” means that access to the block is “impossible (not permitted)”. When the access is impossible, an “exception event” described later occurs, and exception processing is performed by the OS or the like. The entry of the mapping table 12 may further include an attribute indicating access restriction such as reading / writing / execution of memory access. As the mapping table 12, for example, a page table is used.

マッピングテーブル初期化部13は、上記マッピングテーブル12を初期化するためのモジュールであり、例えばOSにより提供される。マッピングテーブル初期化部13は、システム起動時に実行される。また、プログラムが指定する任意のタイミングで、マッピングテーブル初期化部13が実行されてもよい。   The mapping table initialization unit 13 is a module for initializing the mapping table 12, and is provided by the OS, for example. The mapping table initialization unit 13 is executed when the system is activated. Further, the mapping table initialization unit 13 may be executed at an arbitrary timing specified by the program.

上述のアドレス変換部11は、このマッピングテーブル12を適宜参照/検索することによって、アドレス変換を行うことができる。但し、上述のようにマッピングテーブル12は主記憶上に構築されており、アドレス変換のたびにマッピングテーブル12が参照されると、プログラムの実行効率が著しく低下してしまう。そのため、本実施の形態に係るアドレス変換部11には、よく使われるエントリを記憶(キャッシュ)するためのマッピングキャッシュ14が設けられている。マッピングキャッシュ14は、超高速で動作するキャッシュメモリであり、マッピングテーブル12の内容の一部が格納されるように構成されている。マッピングキャッシュ14としては、例えばTLB(Translation Look-aside Buffer)が用いられる。   The address conversion unit 11 described above can perform address conversion by referring / searching the mapping table 12 as appropriate. However, as described above, the mapping table 12 is constructed on the main memory, and if the mapping table 12 is referred to every time address conversion is performed, the execution efficiency of the program is significantly reduced. Therefore, the address conversion unit 11 according to the present embodiment is provided with a mapping cache 14 for storing (cache) frequently used entries. The mapping cache 14 is a cache memory that operates at an ultra-high speed, and is configured to store a part of the contents of the mapping table 12. As the mapping cache 14, for example, a TLB (Translation Look-aside Buffer) is used.

マッピングキャッシュ14のエントリの構成は、マッピングテーブル12のものと同様である。但し、アクセス権限は、マッピングキャッシュ14から除かれる。図15Aは、本実施の形態に係るマッピングキャッシュ14の構成を概念的に示しており、図15B〜図15Dは、マッピングキャッシュ14の例をそれぞれ示している。図15A〜図15Dに示されるように、マッピングキャッシュ14の各エントリは、あるブロックに関する論理ブロックアドレスと物理ブロックアドレスとの対応関係を示している。尚、マッピングキャッシュ14に登録され得るエントリの総数は、マッピングテーブル12のエントリ数に比べて非常に少ない。そのため、マッピングキャッシュ14に登録されるエントリは、必要に応じて入れ替えられる。また、一部または全てのエントリを、マッピングキャッシュ14から一斉に消去することも可能である。   The configuration of entries in the mapping cache 14 is the same as that of the mapping table 12. However, the access authority is removed from the mapping cache 14. FIG. 15A conceptually shows the configuration of the mapping cache 14 according to the present embodiment, and FIGS. 15B to 15D show examples of the mapping cache 14, respectively. As shown in FIGS. 15A to 15D, each entry of the mapping cache 14 indicates a correspondence relationship between a logical block address and a physical block address regarding a certain block. The total number of entries that can be registered in the mapping cache 14 is very small compared to the number of entries in the mapping table 12. Therefore, entries registered in the mapping cache 14 are replaced as necessary. It is also possible to delete some or all entries from the mapping cache 14 at once.

プログラムからのメモリアクセス要求に応答して、アドレス変換部11はまず、上記マッピングキャッシュ14を参照する。アクセス対象の論理ブロックアドレスに関するエントリ(以下、「対象エントリ」と参照される)がマッピングキャッシュ14に登録されている場合、アドレス変換部11は、その対象エントリを参照することによってアドレス変換を行う。これにより、アドレス変換を高速に実行することが可能となる。一方、対象エントリがマッピングキャッシュ14に登録されていない場合、アドレス変換部11は、論理ブロックアドレスをマッピング検索部15に出力する。   In response to the memory access request from the program, the address conversion unit 11 first refers to the mapping cache 14. When an entry related to a logical block address to be accessed (hereinafter referred to as “target entry”) is registered in the mapping cache 14, the address conversion unit 11 performs address conversion by referring to the target entry. As a result, the address translation can be executed at high speed. On the other hand, when the target entry is not registered in the mapping cache 14, the address conversion unit 11 outputs the logical block address to the mapping search unit 15.

マッピング検索部15は、受け取った論理ブロックアドレスでマッピングテーブル12を検索する。マッピングテーブル12に対象エントリが存在し、且つ、当該エントリのアクセス権限が“1”の場合、マッピング検索部15は、マッピングテーブル12から読み出される情報に基づいて、対象エントリをマッピングキャッシュ14に登録する。当該エントリのアクセス権限が“0”の場合、マッピング検索部15は、論理ブロックアドレス及び対応する物理ブロックアドレスをマッピングテーブル変更部17に出力する。   The mapping search unit 15 searches the mapping table 12 with the received logical block address. When the target entry exists in the mapping table 12 and the access authority of the entry is “1”, the mapping search unit 15 registers the target entry in the mapping cache 14 based on the information read from the mapping table 12. . When the access authority of the entry is “0”, the mapping search unit 15 outputs the logical block address and the corresponding physical block address to the mapping table change unit 17.

マッピングテーブル変更部17は、論理ブロックアドレス及び物理ブロックアドレスを受け取ると、次に示される「例外イベント」を発生させる。例外イベントにおいて、まず、マッピングテーブル変更部17は、アクセス回数管理テーブル16を参照する。   When the mapping table changing unit 17 receives the logical block address and the physical block address, it generates the following “exception event”. In the exception event, first, the mapping table changing unit 17 refers to the access count management table 16.

アクセス回数管理テーブル16は、マッピングテーブル12に格納されたエントリのそれぞれに関する参照回数を示している。このアクセス回数管理テーブル16は、例えば、第2の記憶部22上に構築される。図16Aは、本実施の形態に係るアクセス回数管理テーブル16の構成を概念的に示しており、図16B〜図16Dは、アクセス回数管理テーブル16の例をそれぞれ示している。図16A〜図16Dに示されるように、アクセス回数管理テーブル16の各エントリは、論理ブロックアドレスとアクセス回数との対応関係を示している。対象エントリがマッピングキャッシュ14に登録されている間は、当該エントリに対するマッピング検索部15の処理は行われないので、アクセス回数管理テーブル16に示されるアクセス回数は、実際のメモリアクセス回数よりも格段に少なくなる。尚、参照回数の初期値は0に設定される。   The access count management table 16 indicates the reference count for each of the entries stored in the mapping table 12. The access count management table 16 is constructed on the second storage unit 22, for example. FIG. 16A conceptually shows the configuration of the access count management table 16 according to the present embodiment, and FIGS. 16B to 16D show examples of the access count management table 16, respectively. As shown in FIGS. 16A to 16D, each entry in the access count management table 16 indicates the correspondence between the logical block address and the access count. While the target entry is registered in the mapping cache 14, the mapping search unit 15 does not process the entry. Therefore, the access count shown in the access count management table 16 is much higher than the actual memory access count. Less. Note that the initial value of the reference count is set to zero.

このようなアクセス回数管理テーブル16を参照し、マッピングテーブル変更部17は、当該エントリに対する参照回数(アクセス回数)を調べる。そして、マッピングテーブル変更部17は、その参照回数に応じて、第1の記憶部21と第2の記憶部22との間でデータコピーを行うか否かを決定する。具体的には、その参照回数が所定の数N(Nは1以上の整数)を示している場合、マッピングテーブル変更部17は、受け取った物理ブロックアドレスを用いて、対象エントリに対応する第1の記憶部21中のブロックの内容を、第2の記憶部22の空きブロックへコピーする。更に、マッピングテーブル変更部17は、マッピングテーブル12中の対象エントリの内容を書き換えることにより、マッピングテーブル12の更新を行う。具体的には、マッピングテーブル12中の対象エントリが、コピー先である第2記憶部の物理ブロックアドレスを示すように、更新が行われる。   With reference to such an access count management table 16, the mapping table changing unit 17 checks the reference count (access count) for the entry. Then, the mapping table changing unit 17 determines whether or not to perform data copy between the first storage unit 21 and the second storage unit 22 according to the number of times of reference. Specifically, when the reference count indicates a predetermined number N (N is an integer equal to or greater than 1), the mapping table changing unit 17 uses the received physical block address to specify the first corresponding to the target entry. The contents of the block in the storage unit 21 are copied to the empty block in the second storage unit 22. Further, the mapping table changing unit 17 updates the mapping table 12 by rewriting the contents of the target entry in the mapping table 12. Specifically, the update is performed so that the target entry in the mapping table 12 indicates the physical block address of the second storage unit that is the copy destination.

また、マッピングテーブル変更部17は、アクセス回数管理テーブル16中の対象エントリに対応づけられた参照回数をインクリメントする機能も有する。更に必要に応じて、マッピングテーブル変更部17は、後処理ハンドラ部18が行う処理の登録も行う。後処理ハンドラ部18は、メモリアクセスが完了した後、登録された処理を実行する。   The mapping table changing unit 17 also has a function of incrementing the reference count associated with the target entry in the access count management table 16. Furthermore, the mapping table changing unit 17 also registers the processing performed by the post-processing handler unit 18 as necessary. The post-processing handler unit 18 executes the registered processing after the memory access is completed.

尚、以下の説明において、上述の所定の数Nは「N値」と参照される場合がある。N値は、全ブロックに対して共通の値に設定されてもよいし、ブロック毎に異なる値に設定されてもよい。N値がブロック毎に異なる値に設定される場合、アクセス回数管理テーブル16は、図16Aに示された項目に加えて、それぞれのN値を示す項目を持つことになる。   In the following description, the predetermined number N may be referred to as an “N value”. The N value may be set to a common value for all blocks, or may be set to a different value for each block. When the N value is set to a different value for each block, the access count management table 16 has an item indicating each N value in addition to the items shown in FIG. 16A.

1−2.処理フロー
次に、既出の図1と図2A及び図2Bに示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。
1-2. Processing Flow Next, the outline of the memory access processing according to the present embodiment will be described with reference to the flowcharts shown in FIGS. 1, 2A, and 2B.

まず、アドレス変換部11は、実行中のプログラムからメモリアクセス要求を受け取る。そのメモリアクセス要求には、アクセス対象の論理アドレスが指定されている。アドレス変換部11は、その論理アドレスが示す論理ブロックアドレスでマッピングキャッシュ14を検索する(ステップS1)。   First, the address conversion unit 11 receives a memory access request from the program being executed. The logical address to be accessed is specified in the memory access request. The address conversion unit 11 searches the mapping cache 14 with the logical block address indicated by the logical address (step S1).

マッピングキャッシュ14に対象エントリが登録されている場合(ステップS2;Yes)、アドレス変換部11は、その対象エントリを参照することによってアドレス変換を行う。そして、アドレス変換の結果得られた物理アドレスに対してアクセスが行われる(ステップS3)。アクセス先は、第1の記憶部21であるかもしれないし、第2の記憶部22であるかもしれない。その後、後処理ハンドラが登録されている場合(ステップS4;Yes)、後処理ハンドラ部18は、登録されている後処理ハンドラを実行し、その実行後、登録されていた後処理ハンドラを削除する(ステップS5)。その後、プログラムが続行する。また、後処理ハンドラが登録されていない場合(ステップS4;No)、プログラムが続行する。   When the target entry is registered in the mapping cache 14 (step S2; Yes), the address conversion unit 11 performs address conversion by referring to the target entry. Then, an access is made to the physical address obtained as a result of the address translation (step S3). The access destination may be the first storage unit 21 or the second storage unit 22. Thereafter, when the post-processing handler is registered (step S4; Yes), the post-processing handler unit 18 executes the registered post-processing handler, and deletes the registered post-processing handler after the execution. (Step S5). Then the program continues. If no post-processing handler is registered (step S4; No), the program continues.

マッピングキャッシュ14に対象エントリが登録されていない場合(ステップS2;No)、アドレス変換部11は、論理ブロックアドレスをマッピング検索部15に出力する。マッピング検索部15は、受け取った論理ブロックアドレスでマッピングテーブル12を検索し、対象エントリの情報を得る(ステップS11)。マッピングテーブル12中の対象エントリに示されるアクセス権限が“1(可)”である場合(ステップS12;Yes)、マッピング検索部15は、対象エントリの内容をマッピングキャッシュ14に登録する(ステップS13)。その後、処理は上述のステップS3に移る。   When the target entry is not registered in the mapping cache 14 (step S2; No), the address conversion unit 11 outputs the logical block address to the mapping search unit 15. The mapping search unit 15 searches the mapping table 12 with the received logical block address and obtains information on the target entry (step S11). When the access authority indicated in the target entry in the mapping table 12 is “1 (possible)” (step S12; Yes), the mapping search unit 15 registers the contents of the target entry in the mapping cache 14 (step S13). . Thereafter, the process proceeds to step S3 described above.

一方、マッピングテーブル12中の対象エントリに示されるアクセス権限が“0(不可)”である場合(ステップS12;No)、マッピング検索部15は、対象エントリが示す論理ブロックアドレス及び物理ブロックアドレスをマッピングテーブル変更部17に出力する。その結果、次に示される例外イベントが発生する(ステップS20)。まず、マッピングテーブル変更部17は、アクセス回数管理テーブル16を参照し、受け取った論理ブロックアドレスを検索する。これにより、マッピングテーブル変更部17は、当該論理ブロックアドレスに対応づけられた参照回数(アクセス回数)を得る。   On the other hand, when the access authority indicated by the target entry in the mapping table 12 is “0 (impossible)” (step S12; No), the mapping search unit 15 maps the logical block address and physical block address indicated by the target entry. The data is output to the table changing unit 17. As a result, the following exception event occurs (step S20). First, the mapping table changing unit 17 refers to the access count management table 16 and searches for the received logical block address. Thereby, the mapping table changing unit 17 obtains the reference count (access count) associated with the logical block address.

参照回数がN値ではない場合(ステップS21;No)、マッピングテーブル変更部17は、当該参照回数を1だけインクリメントし、アクセス回数管理テーブル16の更新を行う(ステップS22)。また、マッピングテーブル変更部17は、マッピングテーブル12中の対象エントリが示すアクセス権限を“0”から“1”に変更する(ステップS23)。更に、マッピングテーブル変更部17は、後処理ハンドラを登録する(ステップS24)。例外イベントが終了すると、処理は、上述のステップS11に戻る。   When the reference count is not an N value (step S21; No), the mapping table changing unit 17 increments the reference count by 1 and updates the access count management table 16 (step S22). The mapping table changing unit 17 changes the access authority indicated by the target entry in the mapping table 12 from “0” to “1” (step S23). Further, the mapping table changing unit 17 registers a post-processing handler (step S24). When the exception event ends, the process returns to step S11 described above.

今回は、対象エントリに示されるアクセス権限が“1(可)”であるので(ステップS12;Yes)、マッピング検索部15は、対象エントリの内容をマッピングキャッシュ14に登録する(ステップS13)。その後、処理は上述のステップS3に移る。   Since the access authority indicated in the target entry is “1 (possible)” this time (step S12; Yes), the mapping search unit 15 registers the content of the target entry in the mapping cache 14 (step S13). Thereafter, the process proceeds to step S3 described above.

一方、参照回数がN値と等しい場合(ステップS21;Yes)、マッピングテーブル変更部17は、当該参照回数のインクリメントを行い、アクセス回数管理テーブル16の更新を行う(ステップS31)。更に、マッピングテーブル変更部17は、マッピング検索部15から受け取った物理ブロックアドレスに基づいて、対象エントリに対応する第1の記憶部21中のブロックの内容を、第2の記憶部22の空きブロックへコピーする(ステップS32)。更に、マッピングテーブル変更部17は、マッピングテーブル12中の対象エントリが示すアクセス権限を“0”から“1”に変更し(ステップS33)、また、その対象エントリが示す物理ブロックアドレスをコピー先の物理ブロックアドレスに書き換える(ステップS34)。これにより、対象エントリは、論理ブロックアドレスと第2の記憶部22中のコピー先の物理ブロックアドレスとの対応関係を示すようになる。このようにして、マッピングテーブル12の更新が行われる。例外イベントが終了すると、処理は、上述のステップS11に戻る。   On the other hand, when the reference count is equal to the N value (step S21; Yes), the mapping table changing unit 17 increments the reference count and updates the access count management table 16 (step S31). Further, the mapping table changing unit 17 converts the contents of the block in the first storage unit 21 corresponding to the target entry based on the physical block address received from the mapping search unit 15 into an empty block in the second storage unit 22. (Step S32). Further, the mapping table changing unit 17 changes the access authority indicated by the target entry in the mapping table 12 from “0” to “1” (step S33), and changes the physical block address indicated by the target entry to the copy destination. The physical block address is rewritten (step S34). As a result, the target entry shows the correspondence between the logical block address and the physical block address of the copy destination in the second storage unit 22. In this way, the mapping table 12 is updated. When the exception event ends, the process returns to step S11 described above.

今回は、対象エントリに示されるアクセス権限が“1(可)”であるので(ステップS12;Yes)、マッピング検索部15は、対象エントリの内容をマッピングキャッシュ14に登録する(ステップS13)。ここで、その対象エントリは第2の記憶部22中の物理ブロックアドレスを示していることに留意されるべきである。その後、処理は、ステップS3に移り、アドレス変換部11はアドレス変換を行う。得られる物理アドレスは、第2の記憶部22の物理アドレスである。結果として、計算機システム1は、第2の記憶部22にアクセスしてプログラムやデータを得ることになる。   Since the access authority indicated in the target entry is “1 (possible)” this time (step S12; Yes), the mapping search unit 15 registers the content of the target entry in the mapping cache 14 (step S13). Here, it should be noted that the target entry indicates a physical block address in the second storage unit 22. Thereafter, the process proceeds to step S3, and the address conversion unit 11 performs address conversion. The obtained physical address is the physical address of the second storage unit 22. As a result, the computer system 1 accesses the second storage unit 22 and obtains a program and data.

以上に説明されたように、本実施の形態によれば、アクセス回数管理テーブル16が示す参照回数がN値と等しい場合に、ブロックの内容が第1の記憶部21から第2の記憶部22へコピーされる。逆に言えば、参照回数がN値になるまで、コピーは行われない。   As described above, according to the present embodiment, when the reference count indicated by the access count management table 16 is equal to the N value, the contents of the block are changed from the first storage unit 21 to the second storage unit 22. Copied to. In other words, copying is not performed until the reference count reaches the N value.

第1の記憶部21には、一回しか実行されない初期化ルーチンも、繰り返し参照される繰り返し演算ルーチンも格納されている。もし、高速動作を実現するために起動後すぐに第1の記憶部21の内容が高速の第2の記憶部22にコピーされるとすると、一回しか実行されない初期化ルーチンを含むブロックもコピーされてしまう。極端な場合、1バイトのデータに対するメモリアクセスであっても、そのデータを含むブロック全体の複製が行われてしまう。このことは、起動速度の著しい低下を招いてしまう。   The first storage unit 21 stores an initialization routine that is executed only once and an iterative calculation routine that is repeatedly referred to. If the contents of the first storage unit 21 are copied to the high-speed second storage unit 22 immediately after startup in order to realize high-speed operation, a block including an initialization routine that is executed only once is also copied. Will be. In an extreme case, even when memory access is performed on 1-byte data, the entire block including the data is copied. This leads to a significant decrease in startup speed.

しかしながら、本実施の形態によれば、一回しか実行されない初期化ルーチンは、第2の記憶部22にコピーされることはなく、第1の記憶部21から読み出されて実行される。つまり、起動時にだけ必要なプログラムは、コピーされることなく第1の記憶部21から読み出され実行される。従って、計算機システム1の高速起動が実現される。また、繰り返し実行されるプログラムは、第1の記憶部21から第2の記憶部22にコピーされ、その後、高速の第2の記憶部22から読み出されて実行される。従って、計算機システム1の高速動作が実現される。尚、本実施の形態において、第1の記憶部21から第2の記憶部22へのコピーが説明されているが、利用状況によっては逆であってもよい。   However, according to the present embodiment, the initialization routine that is executed only once is not copied to the second storage unit 22 but is read from the first storage unit 21 and executed. That is, a program required only at the time of activation is read from the first storage unit 21 and executed without being copied. Therefore, high speed startup of the computer system 1 is realized. A program that is repeatedly executed is copied from the first storage unit 21 to the second storage unit 22, and then read from the high-speed second storage unit 22 and executed. Therefore, high speed operation of the computer system 1 is realized. In the present embodiment, copying from the first storage unit 21 to the second storage unit 22 is described, but the reverse may be possible depending on the use situation.

1−3.具体例
次に、本実施の形態に係る計算機システム1の具体的な例を説明する。図3は、本実施の形態に係る計算機システム1の一例を示している。図3に示される計算機システム1は、コンピュータである。コンピュータ1は、CPU10と主記憶装置(メインメモリ)20を備えている。CPU10と主記憶装置20は、メモリバスを通じて互いに接続されている。
1-3. Specific Example Next, a specific example of the computer system 1 according to the present embodiment will be described. FIG. 3 shows an example of the computer system 1 according to this embodiment. The computer system 1 shown in FIG. 3 is a computer. The computer 1 includes a CPU 10 and a main storage device (main memory) 20. The CPU 10 and the main storage device 20 are connected to each other through a memory bus.

上述のアドレス変換部11、マッピングキャッシュ14、及びマッピング検索部15は、CPU10に搭載されている。これらは、ハードウェアで構成されている。   The address conversion unit 11, the mapping cache 14, and the mapping search unit 15 are mounted on the CPU 10. These are configured by hardware.

主記憶装置20は、不揮発性記憶装置(第1の記憶部)21及び揮発性記憶装置(第2の記憶部)22を含んでいる。本実施の形態においては、揮発性記憶装置22へのアクセス速度の方が、不揮発性記憶装置21へのアクセス速度よりもはやいとする。また、不揮発性記憶装置21及び揮発性記憶装置22はランダムアクセスが可能な記憶装置であるとする。不揮発性記憶装置21としては、ROMやNOR型フラッシュメモリなどが例示される。一方、揮発性記憶装置22としては、DRAMやSRAMなどが例示される。   The main storage device 20 includes a nonvolatile storage device (first storage unit) 21 and a volatile storage device (second storage unit) 22. In the present embodiment, it is assumed that the access speed to the volatile storage device 22 is no longer higher than the access speed to the nonvolatile storage device 21. Further, it is assumed that the nonvolatile storage device 21 and the volatile storage device 22 are random-accessible storage devices. Examples of the non-volatile storage device 21 include a ROM and a NOR flash memory. On the other hand, examples of the volatile storage device 22 include DRAM and SRAM.

不揮発性記憶装置21には、OSやアプリケーションプログラムが、予め格納されている。上述のマッピングテーブル初期化部13、マッピングテーブル変更部17、及び後処理ハンドラ部18の各々は、このOSの一機能として提供される。すなわち、OSと上記CPU10との協働によって、本実施の形態に係る「データ処理装置」が提供される。尚、後処理ハンドラ部18の機能は、CPU10のマッピング検索部15が有していてもよい。   The nonvolatile storage device 21 stores an OS and application programs in advance. Each of the above-described mapping table initialization unit 13, mapping table change unit 17, and post-processing handler unit 18 is provided as a function of this OS. That is, the “data processing apparatus” according to the present embodiment is provided in cooperation with the OS and the CPU 10. The function of the post-processing handler unit 18 may be included in the mapping search unit 15 of the CPU 10.

揮発性記憶装置22には、上述のマッピングテーブル12及びアクセス回数管理テーブル16が構築される。   In the volatile storage device 22, the mapping table 12 and the access count management table 16 described above are constructed.

図13Aは、不揮発性記憶装置21及び揮発性記憶装置22に対する物理ブロックアドレスの割り当ての一例を示している。図13Aに示されるように、不揮発性記憶装置21には物理ブロックアドレス11〜19が割り当てられ、揮発性記憶装置22には物理ブロックアドレス21〜29が割り当てられている。各ブロックのサイズは4096バイトであるとする。尚、説明を簡単にするため、図13Aにおいてはブロック数が抑えられているが、実際には多数の物理ブロックアドレスが割り当てられている。   FIG. 13A shows an example of assignment of physical block addresses to the nonvolatile storage device 21 and the volatile storage device 22. As illustrated in FIG. 13A, physical block addresses 11 to 19 are assigned to the nonvolatile storage device 21, and physical block addresses 21 to 29 are assigned to the volatile storage device 22. Assume that the size of each block is 4096 bytes. In order to simplify the description, the number of blocks is suppressed in FIG. 13A, but a large number of physical block addresses are actually allocated.

次に、この計算機システム1の動作の一例を説明する。一連の動作が行われる前の各テーブルやキャッシュの初期状態は、次の通りであるとする。   Next, an example of the operation of the computer system 1 will be described. Assume that the initial state of each table and cache before a series of operations is performed is as follows.

図14Bは、マッピングテーブル12の初期状態を示している。初期状態においては、論理ブロックアドレスのそれぞれに対して、不揮発性記憶装置21の物理ブロックアドレスが割り当てられている。また、各エントリに関するアクセス権限は“0”に設定されている。図14C及び図14Dは、マッピングテーブル12の変遷を示しており、後に適宜参照される。尚、説明を簡単にするため、図14B〜図14Dにおいてはエントリ数が抑えられているが、実際には多数のエントリが存在する。   FIG. 14B shows an initial state of the mapping table 12. In the initial state, the physical block address of the nonvolatile storage device 21 is assigned to each logical block address. The access authority for each entry is set to “0”. 14C and 14D show the transition of the mapping table 12, and will be referred to as appropriate later. In order to simplify the description, the number of entries is suppressed in FIGS. 14B to 14D, but there are actually a large number of entries.

図15Bは、マッピングキャッシュ14の初期状態を示している。マッピングキャッシュ14には、論理ブロックアドレス「4」と物理ブロックアドレス「15」との対応関係を示すエントリが登録されている。また、図15C及び図15Dは、マッピングキャッシュ14の変遷を示しており、後に適宜参照される。   FIG. 15B shows the initial state of the mapping cache 14. In the mapping cache 14, an entry indicating a correspondence relationship between the logical block address “4” and the physical block address “15” is registered. 15C and 15D show the transition of the mapping cache 14, and will be referred to as appropriate later.

図16Bは、アクセス回数管理テーブル16の初期状態を示している。アクセス回数管理テーブル16には、論理ブロックアドレスのそれぞれに対応づけられたアクセス回数(参照回数)が示されている。初期状態においては、アクセス回数のそれぞれは“0(初期値)”に設定されている。図16C及び図16Dは、アクセス回数管理テーブル16の変遷を示しており、後に適宜参照される。尚、説明を簡単にするため、図16B〜図16Dにおいてはエントリ数が抑えられているが、実際には多数のエントリが存在する。   FIG. 16B shows an initial state of the access count management table 16. The access count management table 16 shows the access count (reference count) associated with each logical block address. In the initial state, each access count is set to “0 (initial value)”. FIG. 16C and FIG. 16D show the transition of the access count management table 16, and will be referred to as appropriate later. In order to simplify the description, the number of entries is suppressed in FIGS. 16B to 16D, but there are actually a large number of entries.

アクセス回数に関連する上述のN値は“1”に設定されているとする。   It is assumed that the N value related to the number of accesses is set to “1”.

以下、次の4つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する:
(1)論理アドレス「2010(16進数)」に対する最初の読み込みアクセス;
(2)マッピングキャッシュ14に対象エントリがある状態における、論理ブロックアドレス「2」に対する読み込みアクセス;
(3)マッピングキャッシュ14に対象エントリがない状態における、論理アドレス「2030」に対する読み込みアクセス;
(4)マッピングキャッシュ14に対象エントリがある状態における、論理アドレス「2040」に対する読み込みアクセス。
Hereinafter, a series of operations when the following four memory accesses are performed will be described in detail:
(1) First read access to logical address “2010 (hexadecimal)”;
(2) Read access to logical block address “2” in a state where there is a target entry in the mapping cache 14;
(3) Read access to the logical address “2030” when there is no target entry in the mapping cache 14;
(4) Read access to the logical address “2040” when there is a target entry in the mapping cache 14.

(1)まず、論理アドレス「2010」に対する最初のメモリアクセスが発生する。ここで、上位アドレス「2」が論理ブロックアドレスを表し、下位アドレス「010」がブロック内アドレスを表すとする。アドレス変換部11は、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、図15Bに示されるように、該当するエントリはマッピングキャッシュ14に登録されていない。従って、マッピング検索部15は、論理ブロックアドレス「2」で、図14Bに示されるマッピングテーブル12を検索する。その結果、エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス権限0」が得られる。アクセス権限が“0”であるため、例外イベントが発生する。   (1) First, the first memory access to the logical address “2010” occurs. Here, it is assumed that the upper address “2” represents a logical block address and the lower address “010” represents an intra-block address. The address conversion unit 11 searches the mapping cache 14 with the logical block address “2”. At this time, as shown in FIG. 15B, the corresponding entry is not registered in the mapping cache 14. Accordingly, the mapping search unit 15 searches the mapping table 12 shown in FIG. 14B with the logical block address “2”. As a result, the entry “logical block address 2, physical block address 13, access authority 0” is obtained. Since the access authority is “0”, an exception event occurs.

マッピングテーブル変更部17は、論理ブロックアドレス「2」で、図16Bに示されるアクセス回数管理テーブル16を検索する。その結果、アクセス回数(参照回数)として“0”が得られる。このアクセス回数はN値“1”と異なるので、マッピングテーブル変更部17は、アクセス回数のインクリメントを行い、また、アクセス権限を“1”に変更する。その結果、マッピングテーブル12は、図14Cに示される状態に変更され、アクセス回数管理テーブル16は、図16Cに示される状態に変更される。また、マッピングテーブル変更部17は、後処理ハンドラの設定を行い、例外イベントを終了させる。この後処理ハンドラの処理内容は、「マッピングテーブル12中の論理ブロックアドレス2のエントリに関するアクセス権限を0に変更する」というものである。   The mapping table changing unit 17 searches the access count management table 16 shown in FIG. 16B with the logical block address “2”. As a result, “0” is obtained as the access count (reference count). Since this access count is different from the N value “1”, the mapping table changing unit 17 increments the access count and changes the access authority to “1”. As a result, the mapping table 12 is changed to the state shown in FIG. 14C, and the access count management table 16 is changed to the state shown in FIG. 16C. Also, the mapping table changing unit 17 sets a post-processing handler and ends the exception event. The processing content of the post-processing handler is “change the access authority regarding the entry of the logical block address 2 in the mapping table 12 to 0”.

次に、マッピング検索部15は、論理ブロックアドレス「2」で、図14Cに示されるマッピングテーブル12を検索する。この場合、エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス権限1」が得られる。アクセス権限が“1”であるため、マッピング検索部15は、エントリ「論理ブロックアドレス2,物理ブロックアドレス13」をマッピングキャッシュ14中に作成する。その結果、マッピングキャッシュ14は、図15Cに示される状態に変更される。   Next, the mapping search unit 15 searches the mapping table 12 shown in FIG. 14C with the logical block address “2”. In this case, the entry “logical block address 2, physical block address 13, access authority 1” is obtained. Since the access authority is “1”, the mapping search unit 15 creates the entry “logical block address 2, physical block address 13” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15C.

アドレス変換部11は再度、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」が登録されているため、アドレス変換部11は、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「13」に変換する。すなわち、物理アドレス「13010(16進数)」が得られる。従って、データ処理装置は、物理アドレス「13010」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置21からデータを読み込む。このように、N値が1に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置21から直接読み込まれる。   The address conversion unit 11 again searches the mapping cache 14 with the logical block address “2”. At this time, since the target entry “logical block address 2, physical block address 13” is registered, the address conversion unit 11 performs address conversion, and converts the logical block address “2” into the physical block address “13”. . That is, the physical address “13010 (hexadecimal number)” is obtained. Therefore, the data processing apparatus accesses the physical address “13010”. That is, the data processing device reads data from the nonvolatile storage device 21. As described above, when the N value is set to 1, data is not copied in the first access, and the data is directly read from the nonvolatile storage device 21.

その後、後処理ハンドラが実行される。つまり、マッピングテーブル12中の論理ブロックアドレス2に対応付けられたアクセス権限は、“1”から“0”に変更される。その結果、マッピングテーブル12は、図14Bに示される状態に戻る。その後、後処理ハンドラの登録は削除され、メモリアクセスが終了する。   Thereafter, the post-processing handler is executed. That is, the access authority associated with the logical block address 2 in the mapping table 12 is changed from “1” to “0”. As a result, the mapping table 12 returns to the state shown in FIG. 14B. Thereafter, the registration of the post-processing handler is deleted, and the memory access ends.

(2)続いて、論理ブロックアドレス「2」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ14は、図15Cに示される状態にある。今回は、マッピングキャッシュ14に対象エントリが登録されているので、データ処理装置は、不揮発性記憶装置21の物理ブロックアドレス「13」にアクセスする。また、後処理ハンドラは登録されていないので、メモリアクセスはそのまま終了する。このように、マッピングキャッシュ14にエントリがある間は、データ処理装置は、不揮発性記憶装置21に直接アクセスする。   (2) Subsequently, it is assumed that a memory access to the logical block address “2” occurs. Currently, the mapping cache 14 is in the state shown in FIG. 15C. Since the target entry is registered in the mapping cache 14 this time, the data processing apparatus accesses the physical block address “13” of the nonvolatile storage device 21. Since no post-processing handler is registered, the memory access is terminated as it is. As described above, the data processing apparatus directly accesses the nonvolatile storage device 21 while there is an entry in the mapping cache 14.

(3)しばらく経って、マッピングキャッシュ14からエントリ「論理ブロックアドレス2,物理ブロックアドレス13」が無くなり、マッピングキャッシュ14が図15Bに示される状態になったとする。その後、論理アドレス「2030」に対するメモリアクセスが発生するとする。図15Bに示されるように、対象エントリはマッピングキャッシュ14に登録されていない。従って、マッピング検索部15は、マッピングテーブル12を検索し、エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス権限0」を得る。アクセス権限が“0”であるため、例外イベントが発生する。   (3) Assume that the entry “logical block address 2 and physical block address 13” disappears from the mapping cache 14 after a while, and the mapping cache 14 is in the state shown in FIG. 15B. Thereafter, it is assumed that a memory access to the logical address “2030” occurs. As shown in FIG. 15B, the target entry is not registered in the mapping cache 14. Accordingly, the mapping search unit 15 searches the mapping table 12 and obtains the entry “logical block address 2, physical block address 13, access authority 0”. Since the access authority is “0”, an exception event occurs.

マッピングテーブル変更部17は、図16Cに示されるアクセス回数管理テーブル16を検索し、アクセス回数(参照回数)として“1”を得る。このアクセス回数はN値“1”と等しい。従って、マッピングテーブル変更部17は、不揮発性記憶装置21中の物理ブロックアドレス「13」が示すブロックの内容を、揮発性記憶装置22の空きブロックにコピーする。例えば、揮発性記憶装置22中の物理ブロックアドレス「23」に、データがコピーされるとする。   The mapping table changing unit 17 searches the access count management table 16 shown in FIG. 16C and obtains “1” as the access count (reference count). This access count is equal to the N value “1”. Therefore, the mapping table changing unit 17 copies the contents of the block indicated by the physical block address “13” in the nonvolatile storage device 21 to an empty block in the volatile storage device 22. For example, it is assumed that data is copied to the physical block address “23” in the volatile storage device 22.

更に、マッピングテーブル変更部17は、図14Dに示されるように、マッピングテーブル12の対象エントリを「論理ブロックアドレス2、物理ブロックアドレス23、アクセス権限1」に書き換える。また、マッピングテーブル変更部17は、アクセス回数のインクリメントを行い、アクセス回数管理テーブル16は、図16Dに示される状態に変更される。   Further, the mapping table changing unit 17 rewrites the target entry of the mapping table 12 to “logical block address 2, physical block address 23, access authority 1” as shown in FIG. 14D. Further, the mapping table changing unit 17 increments the access count, and the access count management table 16 is changed to the state shown in FIG. 16D.

次に、マッピング検索部15は、図14Dに示されるマッピングテーブル12を検索する。この場合、エントリ「論理ブロックアドレス2,物理ブロックアドレス23,アクセス権限1」が得られる。アクセス権限が“1”であるため、マッピング検索部15は、エントリ「論理ブロックアドレス2,物理ブロックアドレス23」をマッピングキャッシュ14中に作成する。その結果、マッピングキャッシュ14は、図15Dに示される状態に変更される。   Next, the mapping search unit 15 searches the mapping table 12 shown in FIG. 14D. In this case, the entry “logical block address 2, physical block address 23, access authority 1” is obtained. Since the access authority is “1”, the mapping search unit 15 creates the entry “logical block address 2, physical block address 23” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15D.

アドレス変換部11は再度、マッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス23」が登録されているため、アドレス変換部11は、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「23」に変換する。すなわち、物理アドレス「23030(16進数)」が得られる。従って、データ処理装置は、物理アドレス「23030」にアクセスする。つまり、データ処理装置は、揮発性記憶装置22からデータを読み込む。このように、N値が1に設定されている場合、2回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置22から読み込まれる。後処理ハンドラは登録されていないので、メモリアクセスはそのまま終了する。   The address conversion unit 11 searches the mapping cache 14 again. At this time, since the target entry “logical block address 2, physical block address 23” is registered, the address conversion unit 11 performs address conversion, and converts the logical block address “2” into the physical block address “23”. . That is, the physical address “23030 (hexadecimal number)” is obtained. Therefore, the data processing apparatus accesses the physical address “23030”. That is, the data processing device reads data from the volatile storage device 22. As described above, when the N value is set to 1, data is copied in the second access, and the data is read from the high-speed volatile storage device 22. Since the post-processing handler is not registered, the memory access is terminated as it is.

(4)続いて、論理アドレス「2040」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ14は、図15Dに示される状態にある。アドレス変換部11は、論理ブロックアドレス「2」でマッピングキャッシュ14を検索し、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス23」を得る。よってアドレス変換部11は、アドレス変換を行い、物理アドレス「23040」を得る。データ処理装置は、揮発性記憶装置22の物理アドレス「23040」にアクセスする。後処理ハンドラは登録されていないので、メモリアクセスはそのまま終了する。   (4) Subsequently, it is assumed that a memory access to the logical address “2040” occurs. Currently, the mapping cache 14 is in the state shown in FIG. 15D. The address conversion unit 11 searches the mapping cache 14 with the logical block address “2” and obtains the target entry “logical block address 2, physical block address 23”. Therefore, the address conversion unit 11 performs address conversion to obtain a physical address “23040”. The data processing device accesses the physical address “23040” of the volatile storage device 22. Since the post-processing handler is not registered, the memory access is terminated as it is.

1−4.効果
不揮発性記憶装置21には、一回しか実行されない初期化ルーチンも、繰り返し参照される繰り返し演算ルーチンも格納されている。もし、高速動作を実現するために起動後すぐに不揮発性記憶装置21の内容が揮発性記憶装置22にコピーされるとすると、一回しか実行されない初期化ルーチンを含むブロックもコピーされてしまう。極端な場合、1バイトのデータに対するメモリアクセスであっても、そのデータを含むブロック全体の複製が行われてしまう。このことは、起動速度の著しい低下を招いてしまう。メモリブロックのサイズはプログラムが要求する1回のメモリアクセスのサイズよりもはるかに大きく、数回のメモリアクセスのためだけにブロック全体の複製を実行することは大きなオーバヘッドとなり、高速な起動が妨げられるからである。
1-4. Effect The nonvolatile storage device 21 stores an initialization routine that is executed only once, and a repetitive calculation routine that is repeatedly referred to. If the contents of the nonvolatile storage device 21 are copied to the volatile storage device 22 immediately after startup in order to realize high-speed operation, a block including an initialization routine that is executed only once is also copied. In an extreme case, even when memory access is performed on 1-byte data, the entire block including the data is copied. This leads to a significant decrease in startup speed. The size of the memory block is much larger than the size of a single memory access required by the program, and performing full block duplication just for a few memory accesses is a big overhead and prevents fast startup Because.

本実施の形態によれば、アクセス回数管理テーブル16が示す参照回数がN値と等しい場合に、ブロックの内容が不揮発性記憶装置21から揮発性記憶装置22にコピーされる。逆に言えば、参照回数がN値になるまで、コピーは行われない。従って、一回しか実行されない初期化ルーチンは、揮発性記憶装置22にコピーされることはなく、不揮発性記憶装置21から直接読み出されて実行される。つまり、起動時にだけ必要なプログラムは、ブロック単位でコピーされることなく、メモリアクセスの単位で不揮発性記憶装置21から読み出され実行される。従って、計算機システム1の高速起動が実現される。   According to the present embodiment, when the reference count indicated by the access count management table 16 is equal to the N value, the contents of the block are copied from the nonvolatile storage device 21 to the volatile storage device 22. In other words, copying is not performed until the reference count reaches the N value. Therefore, the initialization routine that is executed only once is not copied to the volatile storage device 22 but is directly read from the nonvolatile storage device 21 and executed. That is, a program that is necessary only at the time of activation is read from the nonvolatile storage device 21 and executed in units of memory access without being copied in units of blocks. Therefore, high speed startup of the computer system 1 is realized.

また、繰り返し実行されるプログラムは、参照回数がN値と等しい場合に、不揮発性記憶装置21から揮発性記憶装置22にコピーされる。その後、そのプログラムは、高速の揮発性記憶装置22から読み出されて実行される。例えば、N値が1に設定されている場合、プログラムは、初回のアクセス時には不揮発性記憶装置21から読み出され、2回目以降のアクセス時には高速な揮発性記憶装置22から読み出される。従って、計算機システム1の高速動作が実現される。   A program that is repeatedly executed is copied from the nonvolatile storage device 21 to the volatile storage device 22 when the reference count is equal to the N value. Thereafter, the program is read from the high-speed volatile storage device 22 and executed. For example, when the N value is set to 1, the program is read from the nonvolatile storage device 21 at the first access, and read from the high-speed volatile storage device 22 at the second and subsequent accesses. Therefore, high speed operation of the computer system 1 is realized.

以上に説明されたように、本実施の形態によれば、高速に起動し、且つ、高速に動作する計算機システム1が提供される。すなわち、高速起動と、起動後の高速動作の両立が可能となる。   As described above, according to this embodiment, a computer system 1 that starts at high speed and operates at high speed is provided. That is, it is possible to achieve both high-speed startup and high-speed operation after startup.

更に、本実施の形態によれば、マッピングテーブル12へのアクセス回数に応じて、データのコピーが行われるか否かの判断が行われる。データのコピーは一定時間毎に行われるわけではなく、コピーのタイミングをはかるためにタイマーは必要ではない。つまり、巨大なカウンタは不要である。また、本実施の形態によれば、CPUからのメモリアクセスの回数が参照されるわけではなく、マッピングテーブル12へのアクセス回数が参照される。つまり、CPUから頻繁に発行される全てのメモリアクセスをメモリブロック毎に集計する必要はない。従って、複雑なカウンタを設ける必要はなく、アクセスを集計するための仕組みが簡単になる。このように、本実施の形態によれば、データのコピーを実現するための仕組みが簡単になり、回路面積が削減される。   Furthermore, according to the present embodiment, it is determined whether or not data copying is performed according to the number of accesses to the mapping table 12. Data copying is not performed at regular intervals, and a timer is not necessary to measure the copy timing. That is, a huge counter is unnecessary. Further, according to the present embodiment, the number of memory accesses from the CPU is not referred to, but the number of accesses to the mapping table 12 is referred to. That is, it is not necessary to count all memory accesses frequently issued from the CPU for each memory block. Therefore, it is not necessary to provide a complicated counter, and the mechanism for counting access is simplified. Thus, according to the present embodiment, the mechanism for realizing data copying is simplified, and the circuit area is reduced.

2.第2の実施の形態
2−1.構成
図4は、本発明の第2の実施の形態に係る計算機システム1bの構成を概念的に示している。図4において、第1の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。本実施の形態によれば、図1と比較して、後処理ハンドラ部18が省略されている。また、マッピング検索部15の代わりに、マッピング検索部15bが設けられている。また、マッピングテーブル変更部17の代わりに、マッピングテーブル変更部17bが設けられている。
2. Second embodiment 2-1. Configuration FIG. 4 conceptually shows the configuration of a computer system 1b according to the second embodiment of the present invention. In FIG. 4, the same components as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted as appropriate. According to the present embodiment, the post-processing handler unit 18 is omitted as compared with FIG. Further, instead of the mapping search unit 15, a mapping search unit 15b is provided. Further, instead of the mapping table changing unit 17, a mapping table changing unit 17b is provided.

第1の実施の形態によれば、アクセス回数がN値と異なる場合、マッピングテーブル変更部17は、アクセス権限を1に変更し、また、後処理ハンドラを登録していた。一方、本実施の形態によれば、アクセス回数がN値と異なる場合、マッピングテーブル変更部17bは、アクセス権限を書き換えない。その代わり、マッピングテーブル変更部17bは、マッピング検索部15bに直接指示を出し、対象エントリをマッピングキャッシュ14に登録させる。これにより、後処理ハンドラの登録、実行、及び削除を省略することが可能となる。   According to the first embodiment, when the access count is different from the N value, the mapping table changing unit 17 changes the access authority to 1 and registers a post-processing handler. On the other hand, according to the present embodiment, when the access count is different from the N value, the mapping table changing unit 17b does not rewrite the access authority. Instead, the mapping table changing unit 17b directly instructs the mapping search unit 15b to register the target entry in the mapping cache 14. Thereby, registration, execution, and deletion of the post-processing handler can be omitted.

2−2.処理フロー
図5A及び図5Bに示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。第1の実施の形態における処理と同様の処理には同一の符号が付され、その説明は適宜省略される。
2-2. Processing Flow An overview of the memory access processing according to the present embodiment will be described with reference to the flowcharts shown in FIGS. 5A and 5B. The same reference numerals are given to the same processes as those in the first embodiment, and description thereof will be omitted as appropriate.

例外イベントが発生すると(ステップS20)、マッピングテーブル変更部17bは、アクセス回数管理テーブル16を検索する。参照回数(アクセス回数)がN値ではない場合(ステップS21;No)、マッピングテーブル変更部17bは、当該参照回数のインクリメントを行う(ステップS22)。更に、マッピングテーブル変更部17bは、マッピング検索部15bに直接指示を出し、処理は、上述のステップS13に移る。マッピング検索部15bは、マッピングテーブル12から読み出した対象エントリの内容を、マッピングキャッシュ14に登録する(ステップS13)。その後、処理は上述のステップS3に移る。後処理ハンドラに関する処理(ステップS4,S5)は実行されない。このように、本実施の形態によれば、アクセス権限の「“0”→“1”→“0”」という一連の書き換え処理が不要となる。   When an exception event occurs (step S20), the mapping table changing unit 17b searches the access count management table 16. When the reference count (access count) is not an N value (step S21; No), the mapping table changing unit 17b increments the reference count (step S22). Furthermore, the mapping table changing unit 17b issues an instruction directly to the mapping search unit 15b, and the process proceeds to step S13 described above. The mapping search unit 15b registers the contents of the target entry read from the mapping table 12 in the mapping cache 14 (step S13). Thereafter, the process proceeds to step S3 described above. Processing related to the post-processing handler (steps S4 and S5) is not executed. As described above, according to the present embodiment, a series of rewrite processing of “0” → “1” → “0” of the access authority becomes unnecessary.

2−3.具体例
次に、本実施の形態に係る計算機システム1bの具体的な例を説明する。図6は、本実施の形態に係る計算機システム1bの一例を示している。図6において、第1の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。
2-3. Specific Example Next, a specific example of the computer system 1b according to the present embodiment will be described. FIG. 6 shows an example of a computer system 1b according to this embodiment. In FIG. 6, the same components as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted as appropriate.

図6に示される計算機システム(コンピュータ)1bは、CPU10と主記憶装置20を備えている。主記憶装置20は、不揮発性記憶装置21と揮発性記憶装置22を含んでいる。CPU10には、アドレス変換部11及びマッピングキャッシュ14が搭載されている。不揮発性記憶装置21には、OSやアプリケーションプログラムが、予め格納されている。マッピングテーブル初期化部13、マッピングテーブル変更部17b、及びマッピング検索部15bの各々は、このOSの一機能として提供される。これらOSとCPU10との協働によって、本実施の形態に係る「データ処理装置」が提供される。揮発性記憶装置22には、上述のマッピングテーブル12及びアクセス回数管理テーブル16が構築される。   A computer system (computer) 1 b shown in FIG. 6 includes a CPU 10 and a main storage device 20. The main storage device 20 includes a nonvolatile storage device 21 and a volatile storage device 22. The CPU 10 includes an address conversion unit 11 and a mapping cache 14. The nonvolatile storage device 21 stores an OS and application programs in advance. Each of the mapping table initialization unit 13, the mapping table change unit 17b, and the mapping search unit 15b is provided as a function of this OS. The “data processing apparatus” according to the present embodiment is provided in cooperation with the OS and the CPU 10. In the volatile storage device 22, the mapping table 12 and the access count management table 16 described above are constructed.

物理ブロックアドレスの割り当てや各テーブルの初期状態は、第1の実施の形態と同じであるとする(図13A、図14B、図15B、図16B参照)。また、上述のN値も、同様に“1”に設定されているとする。   The allocation of physical block addresses and the initial state of each table are the same as those in the first embodiment (see FIGS. 13A, 14B, 15B, and 16B). Further, it is assumed that the above-described N value is similarly set to “1”.

以下、次の3つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する:
(1)論理アドレス「2010(16進数)」に対する最初の読み込みアクセス;
(2)マッピングキャッシュ14に対象エントリがある状態における、論理ブロックアドレス「2」に対する読み込みアクセス;
(3)マッピングキャッシュ14に対象エントリがない状態における、論理アドレス「2030」に対する読み込みアクセス。
Hereinafter, a series of operations when the following three memory accesses are performed will be specifically described:
(1) First read access to logical address “2010 (hexadecimal)”;
(2) Read access to logical block address “2” in a state where there is a target entry in the mapping cache 14;
(3) Read access to the logical address “2030” when there is no target entry in the mapping cache 14.

(1)まず、論理アドレス「2010」に対する最初のメモリアクセスが発生する。アドレス変換部11は、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、図15Bに示されるように、該当するエントリはマッピングキャッシュ14に登録されていない。従って、マッピング検索部15bは、論理ブロックアドレス「2」で、図14Bに示されるマッピングテーブル12を検索する。その結果、エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス権限0」が得られる。アクセス権限が“0”であるため、例外イベントが発生する。   (1) First, the first memory access to the logical address “2010” occurs. The address conversion unit 11 searches the mapping cache 14 with the logical block address “2”. At this time, as shown in FIG. 15B, the corresponding entry is not registered in the mapping cache 14. Accordingly, the mapping search unit 15b searches the mapping table 12 shown in FIG. 14B with the logical block address “2”. As a result, the entry “logical block address 2, physical block address 13, access authority 0” is obtained. Since the access authority is “0”, an exception event occurs.

マッピングテーブル変更部17bは、論理ブロックアドレス「2」で、図16Bに示されるアクセス回数管理テーブル16を検索する。その結果、アクセス回数(参照回数)として“0”が得られる。このアクセス回数はN値“1”と異なるので、マッピングテーブル変更部17bは、アクセス回数のインクリメントを行う。その結果、アクセス回数管理テーブル16は、図16Cに示される状態に変更される。また、マッピングテーブル変更部17bは、マッピング検索部15bに指示を出す。マッピング検索部15bは、エントリ「論理ブロックアドレス2,物理ブロックアドレス13」をマッピングキャッシュ14中に作成する。その結果、マッピングキャッシュ14は、図15Cに示される状態に変更される。   The mapping table changing unit 17b searches the access count management table 16 shown in FIG. 16B with the logical block address “2”. As a result, “0” is obtained as the access count (reference count). Since this access count is different from the N value “1”, the mapping table changing unit 17b increments the access count. As a result, the access count management table 16 is changed to the state shown in FIG. 16C. Further, the mapping table changing unit 17b issues an instruction to the mapping search unit 15b. The mapping search unit 15 b creates the entry “logical block address 2, physical block address 13” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15C.

アドレス変換部11は再度、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」が登録されているため、アドレス変換部11は、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「13」に変換する。すなわち、物理アドレス「13010(16進数)」が得られる。従って、データ処理装置は、物理アドレス「13010」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置21からデータを読み込む。このように、N値が1に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置21から直接読み込まれる。   The address conversion unit 11 again searches the mapping cache 14 with the logical block address “2”. At this time, since the target entry “logical block address 2, physical block address 13” is registered, the address conversion unit 11 performs address conversion, and converts the logical block address “2” into the physical block address “13”. . That is, the physical address “13010 (hexadecimal number)” is obtained. Therefore, the data processing apparatus accesses the physical address “13010”. That is, the data processing device reads data from the nonvolatile storage device 21. As described above, when the N value is set to 1, data is not copied in the first access, and the data is directly read from the nonvolatile storage device 21.

(2)続いて、論理ブロックアドレス「2」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ14は、図15Cに示される状態にある。今回は、マッピングキャッシュ14に対象エントリが登録されているので、データ処理装置は、不揮発性記憶装置21の物理ブロックアドレス「13」にアクセスする。このように、マッピングキャッシュ14にエントリがある間は、データ処理装置は、不揮発性記憶装置21に直接アクセスする。   (2) Subsequently, it is assumed that a memory access to the logical block address “2” occurs. Currently, the mapping cache 14 is in the state shown in FIG. 15C. Since the target entry is registered in the mapping cache 14 this time, the data processing apparatus accesses the physical block address “13” of the nonvolatile storage device 21. As described above, the data processing apparatus directly accesses the nonvolatile storage device 21 while there is an entry in the mapping cache 14.

(3)しばらく経って、マッピングキャッシュ14からエントリ「論理ブロックアドレス2,物理ブロックアドレス13」が無くなり、マッピングキャッシュ14が図15Bに示される状態になったとする。その後、論理アドレス「2030」に対するメモリアクセスが発生するとする。図15Bに示されるように、対象エントリはマッピングキャッシュ14に登録されていない。従って、マッピング検索部15bは、マッピングテーブル12を検索し、エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス権限0」を得る。アクセス権限が“0”であるため、例外イベントが発生する。   (3) Assume that the entry “logical block address 2 and physical block address 13” disappears from the mapping cache 14 after a while, and the mapping cache 14 is in the state shown in FIG. 15B. Thereafter, it is assumed that a memory access to the logical address “2030” occurs. As shown in FIG. 15B, the target entry is not registered in the mapping cache 14. Accordingly, the mapping search unit 15b searches the mapping table 12 and obtains the entry “logical block address 2, physical block address 13, access authority 0”. Since the access authority is “0”, an exception event occurs.

マッピングテーブル変更部17bは、図16Cに示されるアクセス回数管理テーブル16を検索し、アクセス回数(参照回数)として“1”を得る。このアクセス回数はN値“1”と等しい。従って、マッピングテーブル変更部17bは、不揮発性記憶装置21中の物理ブロックアドレス「13」が示すブロックの内容を、揮発性記憶装置22の空きブロックにコピーする。例えば、揮発性記憶装置22中の物理ブロックアドレス「23」に、データがコピーされるとする。   The mapping table changing unit 17b searches the access count management table 16 shown in FIG. 16C and obtains “1” as the access count (reference count). This access count is equal to the N value “1”. Therefore, the mapping table changing unit 17 b copies the contents of the block indicated by the physical block address “13” in the nonvolatile storage device 21 to the empty block of the volatile storage device 22. For example, it is assumed that data is copied to the physical block address “23” in the volatile storage device 22.

更に、マッピングテーブル変更部17bは、図14Dに示されるように、マッピングテーブル12の対象エントリを「論理ブロックアドレス2、物理ブロックアドレス23、アクセス権限1」に書き換える。また、マッピングテーブル変更部17bは、アクセス回数のインクリメントを行い、アクセス回数管理テーブル16は、図16Dに示される状態に変更される。   Further, as shown in FIG. 14D, the mapping table changing unit 17b rewrites the target entry of the mapping table 12 to “logical block address 2, physical block address 23, access authority 1”. Also, the mapping table changing unit 17b increments the number of accesses, and the access number management table 16 is changed to the state shown in FIG. 16D.

次に、マッピング検索部15bは、図14Dに示されるマッピングテーブル12を検索する。この場合、エントリ「論理ブロックアドレス2,物理ブロックアドレス23,アクセス権限1」が得られる。アクセス権限が“1”であるため、マッピング検索部15bは、エントリ「論理ブロックアドレス2,物理ブロックアドレス23」をマッピングキャッシュ14中に作成する。その結果、マッピングキャッシュ14は、図15Dに示される状態に変更される。   Next, the mapping search unit 15b searches the mapping table 12 shown in FIG. 14D. In this case, the entry “logical block address 2, physical block address 23, access authority 1” is obtained. Since the access authority is “1”, the mapping search unit 15 b creates the entry “logical block address 2, physical block address 23” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15D.

アドレス変換部11は再度、マッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス23」が登録されているため、アドレス変換部11は、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「23」に変換する。すなわち、物理アドレス「23030(16進数)」が得られる。従って、データ処理装置は、物理アドレス「23030」にアクセスする。つまり、データ処理装置は、揮発性記憶装置22からデータを読み込む。このように、N値が1に設定されている場合、2回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置22から読み込まれる。   The address conversion unit 11 searches the mapping cache 14 again. At this time, since the target entry “logical block address 2, physical block address 23” is registered, the address conversion unit 11 performs address conversion, and converts the logical block address “2” into the physical block address “23”. . That is, the physical address “23030 (hexadecimal number)” is obtained. Therefore, the data processing apparatus accesses the physical address “23030”. That is, the data processing device reads data from the volatile storage device 22. As described above, when the N value is set to 1, data is copied in the second access, and the data is read from the high-speed volatile storage device 22.

2−4.効果
本実施の形態によれば、第1の実施の形態と同じ効果が得られる。更に、後処理ハンドラが不要であるため、メモリアクセス処理が簡略化されるという追加的な効果が得られる。
2-4. Effect According to the present embodiment, the same effect as in the first embodiment can be obtained. Furthermore, since a post-processing handler is unnecessary, an additional effect that the memory access process is simplified can be obtained.

3.第3の実施の形態
3−1.構成
図7は、本発明の第3の実施の形態に係る計算機システム1cの構成を概念的に示している。図7において、第2の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。本実施の形態によれば、アクセス回数管理テーブル16がマッピングテーブル12cに含まれている。また、マッピングテーブル12cの各エントリから、アクセス制限が省かれている。すなわち、本実施の形態に係るマッピングテーブル12cは、図17Aに示されるような構造を有している。図17Aに示されるように、マッピングテーブル12cの各エントリは、論理ブロックアドレス、物理ブロックアドレス、及び参照回数(アクセス回数)の対応関係を示している。
3. Third embodiment 3-1. Configuration FIG. 7 conceptually shows the configuration of a computer system 1c according to the third embodiment of the present invention. In FIG. 7, the same components as those of the second embodiment are denoted by the same reference numerals, and the description thereof is omitted as appropriate. According to the present embodiment, the access count management table 16 is included in the mapping table 12c. In addition, the access restriction is omitted from each entry of the mapping table 12c. That is, the mapping table 12c according to the present embodiment has a structure as shown in FIG. 17A. As illustrated in FIG. 17A, each entry of the mapping table 12c indicates a correspondence relationship between a logical block address, a physical block address, and a reference count (access count).

また、本実施の形態によれば、マッピング検索部15bの代わりに、マッピング検索部15cが設けられている。また、マッピングテーブル変更部17bの代わりに、マッピングテーブル変更部17cが設けられている。第2の実施の形態と異なり、マッピング検索部15cは、アクセス制限の判定は行わない。また、マッピング検索部15cは、マッピングテーブル12cに示される参照回数に基づいて、データのコピーを行うか否かの判断を行う。更に、マッピングテーブル変更部17cは、アクセス制限の変更を行わない。   Further, according to the present embodiment, a mapping search unit 15c is provided instead of the mapping search unit 15b. Further, a mapping table changing unit 17c is provided instead of the mapping table changing unit 17b. Unlike the second embodiment, the mapping search unit 15c does not determine access restriction. Further, the mapping search unit 15c determines whether or not to copy data based on the reference count indicated in the mapping table 12c. Further, the mapping table changing unit 17c does not change the access restriction.

3−2.処理フロー
図8A及び図8Bに示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。第2の実施の形態における処理と同様の処理には同一の符号が付され、その説明は適宜省略される。
3-2. Processing Flow An overview of the memory access processing according to the present embodiment will be described with reference to the flowcharts shown in FIGS. 8A and 8B. The same processes as those in the second embodiment are denoted by the same reference numerals, and the description thereof is omitted as appropriate.

アドレス変換部11は、マッピングキャッシュ14を検索する(ステップS1)。マッピングキャッシュ14に対象エントリが登録されていない場合(ステップS2;No)、アドレス変換部11は、論理ブロックアドレスをマッピング検索部15cに出力する。マッピング検索部15cは、受け取った論理ブロックアドレスでマッピングテーブル12cを検索し、対象エントリの情報を得る(ステップS11)。この時、マッピング検索部15cは、対象エントリに対する参照回数(アクセス回数)をも得る。   The address conversion unit 11 searches the mapping cache 14 (step S1). When the target entry is not registered in the mapping cache 14 (step S2; No), the address conversion unit 11 outputs the logical block address to the mapping search unit 15c. The mapping search unit 15c searches the mapping table 12c with the received logical block address, and obtains information on the target entry (step S11). At this time, the mapping search unit 15c also obtains the reference count (access count) for the target entry.

参照回数がN値ではない場合(ステップS41;No)、マッピング検索部15cは、当該参照回数のインクリメントを行い、マッピングテーブル12cの更新を行う(ステップS42)。更に、マッピング検索部15cは、対象エントリの内容をマッピングキャッシュ14に登録する(ステップS43)。その後、処理は上述のステップS3に移る。   When the reference count is not an N value (step S41; No), the mapping search unit 15c increments the reference count and updates the mapping table 12c (step S42). Further, the mapping search unit 15c registers the contents of the target entry in the mapping cache 14 (step S43). Thereafter, the process proceeds to step S3 described above.

一方、参照回数がN値と等しい場合(ステップS41;Yes)、マッピング検索部15cは、当該参照回数のインクリメントを行い、マッピングテーブル12cの更新を行う(ステップS51)。更に、マッピング検索部15cは、対象エントリが示す論理ブロックアドレス及び物理ブロックアドレスをマッピングテーブル変更部17cに出力する。これにより、例外イベントが発生する(ステップS52)。   On the other hand, when the reference count is equal to the N value (step S41; Yes), the mapping search unit 15c increments the reference count and updates the mapping table 12c (step S51). Further, the mapping search unit 15c outputs the logical block address and physical block address indicated by the target entry to the mapping table changing unit 17c. Thereby, an exception event occurs (step S52).

マッピングテーブル変更部17cは、受け取った物理ブロックアドレスに基づいて、対象エントリに対応する第1の記憶部21中のブロックの内容を、第2の記憶部22の空きブロックへコピーする(ステップS53)。更に、マッピングテーブル変更部17cは、マッピングテーブル12c中の対象エントリが示す物理ブロックアドレスを、コピー先の物理ブロックアドレスに書き換える(ステップS54)。これにより、対象エントリは、論理ブロックアドレスと第2の記憶部22中のコピー先の物理ブロックアドレスとの対応関係を示すようになる。例外イベントが終了すると、処理は、上述のステップS11に戻る。   Based on the received physical block address, the mapping table changing unit 17c copies the contents of the block in the first storage unit 21 corresponding to the target entry to an empty block in the second storage unit 22 (step S53). . Further, the mapping table changing unit 17c rewrites the physical block address indicated by the target entry in the mapping table 12c with the physical block address of the copy destination (step S54). As a result, the target entry shows the correspondence between the logical block address and the physical block address of the copy destination in the second storage unit 22. When the exception event ends, the process returns to step S11 described above.

3−3.具体例
次に、本実施の形態に係る計算機システム1cの具体的な例を説明する。図9は、本実施の形態に係る計算機システム1cの一例を示している。図9において、第2の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。
3-3. Specific Example Next, a specific example of the computer system 1c according to the present embodiment will be described. FIG. 9 shows an example of a computer system 1c according to this embodiment. In FIG. 9, the same components as those in the second embodiment are denoted by the same reference numerals, and the description thereof is omitted as appropriate.

図9に示される計算機システム(コンピュータ)1cは、CPU10と主記憶装置20を備えている。主記憶装置20は、不揮発性記憶装置21と揮発性記憶装置22を含んでいる。CPU10には、アドレス変換部11、マッピングキャッシュ14、及びマッピング検索部15cが搭載されている。不揮発性記憶装置21には、OSやアプリケーションプログラムが、予め格納されている。マッピングテーブル初期化部13及びマッピングテーブル変更部17cの各々は、このOSの一機能として提供される。マッピング検索部15cは、OSの一機能として提供されてもよい。また、マッピングテーブル変更部17cの機能は、アドレス変換部11に含まれていてもよい。これらOSとCPU10との協働によって、本実施の形態に係る「データ処理装置」が提供される。揮発性記憶装置22には、上述のマッピングテーブル12cが構築される。   A computer system (computer) 1 c shown in FIG. 9 includes a CPU 10 and a main storage device 20. The main storage device 20 includes a nonvolatile storage device 21 and a volatile storage device 22. The CPU 10 includes an address conversion unit 11, a mapping cache 14, and a mapping search unit 15c. The nonvolatile storage device 21 stores an OS and application programs in advance. Each of the mapping table initialization unit 13 and the mapping table change unit 17c is provided as a function of this OS. The mapping search unit 15c may be provided as a function of the OS. Further, the function of the mapping table changing unit 17c may be included in the address converting unit 11. The “data processing apparatus” according to the present embodiment is provided in cooperation with the OS and the CPU 10. In the volatile storage device 22, the above mapping table 12c is constructed.

図17Bは、マッピングテーブル12cの初期状態を示している。初期状態においては、論理ブロックアドレスのそれぞれに対して、不揮発性記憶装置21の物理ブロックアドレスが割り当てられている。また、各エントリに対するアクセス回数は、“0(初期値)”に設定されている。図17C及び図17Dは、マッピングテーブル12cの変遷を示しており、後に適宜参照される。尚、説明を簡単にするため、図17B〜図17Dにおいてはエントリ数が抑えられているが、実際には多数のエントリが存在する。   FIG. 17B shows an initial state of the mapping table 12c. In the initial state, the physical block address of the nonvolatile storage device 21 is assigned to each logical block address. The number of accesses to each entry is set to “0 (initial value)”. FIG. 17C and FIG. 17D show the transition of the mapping table 12c, and will be referred to as appropriate later. To simplify the description, the number of entries is suppressed in FIGS. 17B to 17D, but there are actually a large number of entries.

物理ブロックアドレスの割り当ては、既出の実施の形態と同じであるとする(図13A参照)。マッピングキャッシュ14の初期状態も、既出の実施の形態と同じである(図15B参照)。また、上述のN値も、同様に“1”に設定されているとする。   It is assumed that the physical block address assignment is the same as in the above-described embodiment (see FIG. 13A). The initial state of the mapping cache 14 is also the same as in the above-described embodiment (see FIG. 15B). Further, it is assumed that the above-described N value is similarly set to “1”.

以下、次の3つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する:
(1)論理アドレス「2010(16進数)」に対する最初の読み込みアクセス;
(2)マッピングキャッシュ14に対象エントリがある状態における、論理ブロックアドレス「2」に対する読み込みアクセス;
(3)マッピングキャッシュ14に対象エントリがない状態における、論理アドレス「2030」に対する読み込みアクセス。
Hereinafter, a series of operations when the following three memory accesses are performed will be specifically described:
(1) First read access to logical address “2010 (hexadecimal)”;
(2) Read access to logical block address “2” in a state where there is a target entry in the mapping cache 14;
(3) Read access to the logical address “2030” when there is no target entry in the mapping cache 14.

(1)まず、論理アドレス「2010」に対する最初のメモリアクセスが発生する。アドレス変換部11は、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、図15Bに示されるように、該当するエントリはマッピングキャッシュ14に登録されていない。従って、マッピング検索部15cは、論理ブロックアドレス「2」で、図17Bに示されるマッピングテーブル12cを検索する。その結果、対象エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス回数0」が得られる。   (1) First, the first memory access to the logical address “2010” occurs. The address conversion unit 11 searches the mapping cache 14 with the logical block address “2”. At this time, as shown in FIG. 15B, the corresponding entry is not registered in the mapping cache 14. Accordingly, the mapping search unit 15c searches the mapping table 12c shown in FIG. 17B with the logical block address “2”. As a result, the target entry “logical block address 2, physical block address 13, number of accesses 0” is obtained.

このアクセス回数はN値“1”と異なるので、マッピング検索部15cは、アクセス回数のインクリメントを行う。その結果、マッピングテーブル12cは、図17Cに示される状態に変更される。また、マッピング検索部15cは、エントリ「論理ブロックアドレス2,物理ブロックアドレス13」をマッピングキャッシュ14中に作成する。その結果、マッピングキャッシュ14は、図15Cに示される状態に変更される。   Since this access count is different from the N value “1”, the mapping search unit 15 c increments the access count. As a result, the mapping table 12c is changed to the state shown in FIG. 17C. Also, the mapping search unit 15 c creates the entry “logical block address 2, physical block address 13” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15C.

アドレス変換部11は再度、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」が登録されているため、アドレス変換部11は、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「13」に変換する。すなわち、物理アドレス「13010(16進数)」が得られる。従って、データ処理装置は、物理アドレス「13010」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置21からデータを読み込む。このように、N値が1に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置21から直接読み込まれる。   The address conversion unit 11 again searches the mapping cache 14 with the logical block address “2”. At this time, since the target entry “logical block address 2, physical block address 13” is registered, the address conversion unit 11 performs address conversion, and converts the logical block address “2” into the physical block address “13”. . That is, the physical address “13010 (hexadecimal number)” is obtained. Therefore, the data processing apparatus accesses the physical address “13010”. That is, the data processing device reads data from the nonvolatile storage device 21. As described above, when the N value is set to 1, data is not copied in the first access, and the data is directly read from the nonvolatile storage device 21.

(2)続いて、論理ブロックアドレス「2」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ14は、図15Cに示される状態にある。今回は、マッピングキャッシュ14に対象エントリが登録されているので、データ処理装置は、不揮発性記憶装置21の物理ブロックアドレス「13」にアクセスする。このように、マッピングキャッシュ14にエントリがある間は、データ処理装置は、不揮発性記憶装置21に直接アクセスする。   (2) Subsequently, it is assumed that a memory access to the logical block address “2” occurs. Currently, the mapping cache 14 is in the state shown in FIG. 15C. Since the target entry is registered in the mapping cache 14 this time, the data processing apparatus accesses the physical block address “13” of the nonvolatile storage device 21. As described above, the data processing apparatus directly accesses the nonvolatile storage device 21 while there is an entry in the mapping cache 14.

(3)しばらく経って、マッピングキャッシュ14からエントリ「論理ブロックアドレス2,物理ブロックアドレス13」が無くなり、マッピングキャッシュ14が図15Bに示される状態になったとする。その後、論理アドレス「2030」に対するメモリアクセスが発生するとする。図15Bに示されるように、対象エントリはマッピングキャッシュ14に登録されていない。従って、マッピング検索部15cは、図17Cに示されるマッピングテーブル12cを検索し、対象エントリ「論理ブロックアドレス2,物理ブロックアドレス13,アクセス回数1」を得る。   (3) Assume that the entry “logical block address 2 and physical block address 13” disappears from the mapping cache 14 after a while, and the mapping cache 14 is in the state shown in FIG. 15B. Thereafter, it is assumed that a memory access to the logical address “2030” occurs. As shown in FIG. 15B, the target entry is not registered in the mapping cache 14. Accordingly, the mapping search unit 15c searches the mapping table 12c shown in FIG. 17C and obtains the target entry “logical block address 2, physical block address 13, access count 1”.

このアクセス回数はN値“1”と等しい。この場合、マッピング検索部15cは、アクセス回数のインクリメントを行う。また、マッピング検索部15cは、論理ブロックアドレス「2」及び物理ブロックアドレス「13」を、マッピングテーブル変更部17cに出力する。これにより、例外イベントが発生する。   This access count is equal to the N value “1”. In this case, the mapping search unit 15c increments the number of accesses. Also, the mapping search unit 15c outputs the logical block address “2” and the physical block address “13” to the mapping table changing unit 17c. As a result, an exception event occurs.

マッピングテーブル変更部17cは、不揮発性記憶装置21中の物理ブロックアドレス「13」が示すブロックの内容を、揮発性記憶装置22の空きブロックにコピーする。例えば、揮発性記憶装置22中の物理ブロックアドレス「23」に、データがコピーされるとする。更に、マッピングテーブル変更部17cは、マッピングテーブル12cの対象エントリが示す物理ブロックアドレスを「23」に書き換える。その結果、マッピングテーブル12cは、図17Dに示される状態に変更される。   The mapping table changing unit 17 c copies the contents of the block indicated by the physical block address “13” in the nonvolatile storage device 21 to the empty block of the volatile storage device 22. For example, it is assumed that data is copied to the physical block address “23” in the volatile storage device 22. Further, the mapping table changing unit 17c rewrites the physical block address indicated by the target entry of the mapping table 12c to “23”. As a result, the mapping table 12c is changed to the state shown in FIG. 17D.

次に、マッピング検索部15cは、図17Dに示されるマッピングテーブル12cを検索する。この場合、対象エントリ「論理ブロックアドレス2,物理ブロックアドレス23,アクセス回数2」が得られる。このアクセス回数はN値“1”と異なるので、マッピング検索部15cは、エントリ「論理ブロックアドレス2,物理ブロックアドレス23」をマッピングキャッシュ14中に作成する。その結果、マッピングキャッシュ14は、図15Dに示される状態に変更される。   Next, the mapping search unit 15c searches the mapping table 12c shown in FIG. 17D. In this case, the target entry “logical block address 2, physical block address 23, access count 2” is obtained. Since this access count is different from the N value “1”, the mapping search unit 15 c creates the entry “logical block address 2, physical block address 23” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15D.

アドレス変換部11は再度、マッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス23」が登録されているため、アドレス変換部11は、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「23」に変換する。すなわち、物理アドレス「23030(16進数)」が得られる。従って、データ処理装置は、物理アドレス「23030」にアクセスする。つまり、データ処理装置は、揮発性記憶装置22からデータを読み込む。このように、N値が1に設定されている場合、2回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置22から読み込まれる。   The address conversion unit 11 searches the mapping cache 14 again. At this time, since the target entry “logical block address 2, physical block address 23” is registered, the address conversion unit 11 performs address conversion, and converts the logical block address “2” into the physical block address “23”. . That is, the physical address “23030 (hexadecimal number)” is obtained. Therefore, the data processing apparatus accesses the physical address “23030”. That is, the data processing device reads data from the volatile storage device 22. As described above, when the N value is set to 1, data is copied in the second access, and the data is read from the high-speed volatile storage device 22.

尚、マッピングテーブル12cのサイズを小さくするために、カウンタによるアクセス回数のカウントの代わりに、特定のアルゴリズムの処理が行われてもよい。例えば、アクセス回数の代わりに、2ビットの状態(初期値は2進数で“01”)が与えられる。特定のアルゴリズム処理として、対象エントリが参照された場合に、左1ビットシフトが行なわれる。例外イベント発生時に左のビットが“1”であれば、条件成立と判定され、データの複製が行われる。上述のように2ビットの状態が与えられる場合、2回目のブロックアクセス発生時にデータコピーが行われる。つまり、N値が1である場合と同等の動作が実現される。   In order to reduce the size of the mapping table 12c, a specific algorithm process may be performed instead of counting the number of accesses by the counter. For example, instead of the number of accesses, a 2-bit state (initial value is “01” in binary) is given. As a specific algorithm process, when the target entry is referred to, a left 1-bit shift is performed. If the left bit is “1” when an exception event occurs, it is determined that the condition is satisfied, and data is duplicated. When a 2-bit state is given as described above, data copy is performed when the second block access occurs. That is, an operation equivalent to that when the N value is 1 is realized.

3−4.効果
本実施の形態によれば、既出の実施の形態と同じ効果が得られる。更に、アクセス権限の判定が不要であるため、メモリアクセス処理が簡略化されるという追加的な効果が得られる。
3-4. Effect According to the present embodiment, the same effect as the above-described embodiment can be obtained. Furthermore, since the access authority does not need to be determined, an additional effect that the memory access process is simplified can be obtained.

4.第4の実施の形態
4−1.構成
図10は、本発明の第4の実施の形態に係る計算機システム1dの構成を概念的に示している。図10において、既出の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。本実施の形態に係る計算機システム1dは、新たな構成として、メモリアクセス部31、物理アドレス変換部32、ステイタステーブル33、ステイタステーブル初期化部34、ステイタステーブル変更部35、及びアクセス回数管理テーブル36を備えている。
4). Fourth embodiment 4-1. Configuration FIG. 10 conceptually shows the configuration of a computer system 1d according to the fourth exemplary embodiment of the present invention. In FIG. 10, the same components as those in the above-described embodiment are denoted by the same reference numerals, and description thereof will be omitted as appropriate. The computer system 1d according to the present embodiment has a memory access unit 31, a physical address conversion unit 32, a status table 33, a status table initialization unit 34, a status table change unit 35, and an access count management table 36 as new configurations. It has.

本実施の形態において、マッピングテーブル12は、論理ブロックアドレスと第1の記憶部21の物理ブロックアドレスとの対応関係を示している。また、このマッピングテーブル12が示す物理ブロックアドレスは、アクセス対象のデータが格納されたアドレスであり、以下「対象物理ブロックアドレス」と参照される。一方、マッピングテーブル12自身が格納されている物理アドレスも定義され得る。特に、マッピングテーブル12中の対象エントリが格納されている物理アドレスは、以下「マッピングテーブルアドレス」と参照される。   In the present embodiment, the mapping table 12 shows the correspondence between the logical block address and the physical block address of the first storage unit 21. The physical block address indicated by the mapping table 12 is an address in which data to be accessed is stored, and is hereinafter referred to as “target physical block address”. On the other hand, a physical address in which the mapping table 12 itself is stored can also be defined. In particular, the physical address in which the target entry in the mapping table 12 is stored is hereinafter referred to as “mapping table address”.

アドレス変換部11dは、プログラムからのメモリアクセス要求を受け取る。そして、既出の実施の形態と同様に、アドレス変換部11dは、マッピングキャッシュ14を参照してアドレス変換を行い、要求された論理アドレスに対応する物理アドレス(以下、「対象物理アドレス」と参照される)を得る。アドレス変換部11dは、その対象物理アドレスをメモリアクセス部31に出力する。   The address conversion unit 11d receives a memory access request from the program. Similarly to the above-described embodiment, the address conversion unit 11d performs address conversion with reference to the mapping cache 14, and is referred to as a physical address corresponding to the requested logical address (hereinafter referred to as “target physical address”). Get). The address conversion unit 11 d outputs the target physical address to the memory access unit 31.

また、マッピングキャッシュ14に対象エントリが存在しない場合、マッピングテーブル12を参照する必要があるため、アドレス変換部11dは、マッピングテーブルアドレスをメモリアクセス部31に出力する。例えば、アドレス変換部11dには、マッピングテーブル12の先頭アドレスが予め格納されており、アドレス変換部11dは、プログラムからのメモリアクセス要求の論理ブロックアドレスに基づいて先頭アドレスからのオフセットを算出することによって、マッピングテーブルアドレスを得ることができる。メモリアクセス部31は、そのマッピングテーブルアドレスから読み出された対象エントリを、アドレス変換部11dに返す。本実施の形態に係るアドレス変換部11dは、既出の実施の形態におけるマッピング検索部15の機能も含んでいると言える。   If there is no target entry in the mapping cache 14, it is necessary to refer to the mapping table 12, so the address conversion unit 11 d outputs the mapping table address to the memory access unit 31. For example, the start address of the mapping table 12 is stored in advance in the address conversion unit 11d, and the address conversion unit 11d calculates an offset from the start address based on the logical block address of the memory access request from the program. Thus, the mapping table address can be obtained. The memory access unit 31 returns the target entry read from the mapping table address to the address conversion unit 11d. It can be said that the address conversion unit 11d according to the present embodiment also includes the function of the mapping search unit 15 in the above-described embodiment.

メモリアクセス部31は、アドレス変換部11dから、対象物理アドレスあるいはマッピングテーブルアドレスを受け取る。そして、メモリアクセス部31は、第1の記憶部21及び第2の記憶部22へのメモリアクセスを制御する。   The memory access unit 31 receives the target physical address or the mapping table address from the address conversion unit 11d. The memory access unit 31 controls memory access to the first storage unit 21 and the second storage unit 22.

物理アドレス変換部32は、メモリアクセス部31から対象物理アドレスを受け取る。そして、物理アドレス変換部32は、第1の記憶部21から第2の記憶部22へ対象物理アドレスの変換を行う。物理アドレス変換部32は、得られた対象物理アドレスを、メモリアクセス部31に返す。このような物理アドレス変換部32に対して、上述のアドレス変換部11dは、論理アドレス変換部と呼ぶこともできる。   The physical address conversion unit 32 receives the target physical address from the memory access unit 31. Then, the physical address conversion unit 32 converts the target physical address from the first storage unit 21 to the second storage unit 22. The physical address conversion unit 32 returns the obtained target physical address to the memory access unit 31. In contrast to such a physical address translator 32, the address translator 11d described above can also be referred to as a logical address translator.

ステイタステーブル33は、対象物理アドレスのそれぞれに関して、物理アドレス変換を行うかどうかを定めるテーブルである。図18Aは、本実施の形態に係るステイタステーブル33の構成を概念的に示しており、図18B及び図18Cは、ステイタステーブル33の例を示している。図18A〜図18Cに示されるように、ステイタステーブル33の各エントリは、対象物理ブロックアドレスとそのステイタスを示している。このステイタスの値によって、物理アドレス変換が行われるかどうかが決定される、すなわち、メモリアクセス部31がアクセスする記憶部が変わる。   The status table 33 is a table that determines whether to perform physical address conversion for each of the target physical addresses. FIG. 18A conceptually shows the configuration of the status table 33 according to the present embodiment, and FIGS. 18B and 18C show examples of the status table 33. As shown in FIGS. 18A to 18C, each entry in the status table 33 indicates a target physical block address and its status. The status value determines whether or not physical address conversion is performed, that is, the storage unit accessed by the memory access unit 31 changes.

ステイタステーブル初期化部34は、ステイタステーブル33の初期化を行うためのモジュールである。ステイタステーブル変更部35は、ステイタステーブル33のエントリを書き換えるためのモジュールである。   The status table initialization unit 34 is a module for initializing the status table 33. The status table changing unit 35 is a module for rewriting entries in the status table 33.

アクセス回数管理テーブル36は、対象物理ブロックアドレスに関する参照回数を示すテーブルである。図19Aは、本実施の形態に係るアクセス回数管理テーブル36の構成を概念的に示しており、図19B〜図19Dはそれぞれアクセス回数管理テーブル36の例を示している。図19A〜図19Dに示されるように、アクセス回数管理テーブル36の各エントリは、対象物理ブロックアドレスと、その対象物理ブロックアドレスの参照回数(アクセス回数)を示している。   The access count management table 36 is a table indicating the reference count regarding the target physical block address. FIG. 19A conceptually shows the configuration of the access count management table 36 according to the present embodiment, and FIGS. 19B to 19D show examples of the access count management table 36, respectively. As shown in FIGS. 19A to 19D, each entry of the access count management table 36 indicates the target physical block address and the reference count (access count) of the target physical block address.

4−2.処理フロー
次に、図10と、図11に示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。
4-2. Process Flow Next, an overview of the memory access process according to the present embodiment will be described with reference to FIG. 10 and the flowchart shown in FIG.

まず、アドレス変換部11dは、実行中のプログラムからメモリアクセス要求を受け取る。そして、アドレス変換部11dは、マッピングキャッシュ14を参照することによって対象物理アドレスを取得し、その対象物理アドレスをメモリアクセス部31に出力する。あるいは、マッピングテーブル12に対するアクセスが必要な場合、アドレス変換部11dは、まず最初に、マッピングテーブルアドレスをメモリアクセス部31に出力する。   First, the address conversion unit 11d receives a memory access request from the program being executed. Then, the address conversion unit 11 d acquires the target physical address by referring to the mapping cache 14 and outputs the target physical address to the memory access unit 31. Alternatively, when access to the mapping table 12 is necessary, the address conversion unit 11 d first outputs the mapping table address to the memory access unit 31.

メモリアクセス部31は、アドレス変換部11dから要求された物理アドレス(対象物理アドレスあるいはマッピングテーブルアドレス)を受け取る。後に示されるように、メモリアクセス部31の処理は、要求がマッピングテーブル12へのアクセスか否かで異なってくる。そのため、メモリアクセス部31は、受け取ったアドレス情報に基づいて、当該アクセスがマッピングテーブル12へのアクセスかどうか判定する(ステップS61)。例えば、メモリアクセス部31には、マッピングテーブル12が格納されている物理アドレスの範囲が予め格納されている。そして、メモリアクセス部31は、要求された物理アドレスとその範囲とを比較することによって、当該アクセスがマッピングテーブル12へのアクセスか否かを判定することができる。   The memory access unit 31 receives the physical address (target physical address or mapping table address) requested from the address conversion unit 11d. As will be described later, the processing of the memory access unit 31 differs depending on whether the request is an access to the mapping table 12 or not. Therefore, the memory access unit 31 determines whether the access is an access to the mapping table 12 based on the received address information (step S61). For example, the memory access unit 31 stores in advance a range of physical addresses in which the mapping table 12 is stored. Then, the memory access unit 31 can determine whether the access is an access to the mapping table 12 by comparing the requested physical address with the range.

アドレス変換部11dからの要求がマッピングテーブル12に対するアクセスではない場合(ステップS61;No)、メモリアクセス部31が受け取った物理アドレスは、対象物理アドレスである。その場合、メモリアクセス部31は、その対象物理アドレスが示す対象物理ブロックアドレスでステイタステーブル33を検索する。その対象物理ブロックアドレスに対応付けられたステイタスが“0”である場合(ステップS62;No)、メモリアクセス部31は、当該対象物理アドレスにアクセスする。結果として、この場合は、メモリアクセス部31は、第1の記憶部21にアクセスする。   When the request from the address conversion unit 11d is not an access to the mapping table 12 (step S61; No), the physical address received by the memory access unit 31 is the target physical address. In this case, the memory access unit 31 searches the status table 33 with the target physical block address indicated by the target physical address. When the status associated with the target physical block address is “0” (step S62; No), the memory access unit 31 accesses the target physical address. As a result, in this case, the memory access unit 31 accesses the first storage unit 21.

また、その対象物理ブロックアドレスに対応付けられたステイタスが“1”である場合(ステップS62;Yes)、メモリアクセス部31は、対象物理アドレスを物理アドレス変換部32に送る。物理アドレス変換部32は、受け取った対象物理アドレスを変換し、第2の記憶部22の対象物理アドレスを得る(ステップS63)。対象物理アドレスの変換アルゴリズムとしては、様々なものが採用され得る。例えば、第1の記憶部21と第2の記憶部22に割り当てる物理ブロックアドレスは特定のビットだけが異なっている。そして、特定のビットが0の場合、その物理ブロックアドレスは第1の記憶部21を指し示し、1の場合、その物理ブロックアドレスは第2の記憶部22を指し示すように設定される(図13B参照)。物理アドレス変換部32は、変換後の対象物理アドレスを、メモリアクセス部31に返す。メモリアクセス部31は、受け取った対象物理アドレスにアクセスする。結果として、この場合は、メモリアクセス部31は、第2の記憶部22にアクセスする。   If the status associated with the target physical block address is “1” (step S62; Yes), the memory access unit 31 sends the target physical address to the physical address conversion unit 32. The physical address conversion unit 32 converts the received target physical address and obtains the target physical address of the second storage unit 22 (step S63). Various conversion algorithms for the target physical address can be employed. For example, the physical block addresses assigned to the first storage unit 21 and the second storage unit 22 differ only in specific bits. When the specific bit is 0, the physical block address indicates the first storage unit 21, and when the specific bit is 1, the physical block address is set to indicate the second storage unit 22 (see FIG. 13B). ). The physical address conversion unit 32 returns the converted target physical address to the memory access unit 31. The memory access unit 31 accesses the received target physical address. As a result, in this case, the memory access unit 31 accesses the second storage unit 22.

一方、マッピングテーブル12に対するアクセスの場合(ステップS61;Yes)、メモリアクセス部31が受け取った物理アドレスは、マッピングテーブルアドレスである。メモリアクセス部31は、マッピングテーブル12中のマッピングテーブルアドレスにアクセスする(ステップS70)。マッピングテーブルアドレスから読み出された情報は対象エントリであり、その対象エントリには、対象物理ブロックアドレスが示されている(ステップS71)。メモリアクセス部31は、得られた対象エントリをアドレス変換部11dに送り、アドレス変換部11dは、対象エントリをマッピングキャッシュ14に登録する。アドレス変換部11dは、キャッシュした対象エントリを用いて論理アドレス変換を行い、プログラムから要求された論理アドレスを対象物理アドレスに変換する。更に、アドレス変換部11dは、メモリアクセス部31に対象物理アドレスでメモリアクセスを要求する。   On the other hand, in the case of access to the mapping table 12 (step S61; Yes), the physical address received by the memory access unit 31 is a mapping table address. The memory access unit 31 accesses the mapping table address in the mapping table 12 (step S70). The information read from the mapping table address is the target entry, and the target entry indicates the target physical block address (step S71). The memory access unit 31 sends the obtained target entry to the address conversion unit 11d, and the address conversion unit 11d registers the target entry in the mapping cache 14. The address conversion unit 11d performs logical address conversion using the cached target entry, and converts the logical address requested by the program into the target physical address. Furthermore, the address conversion unit 11d requests the memory access unit 31 to access the memory with the target physical address.

また、メモリアクセス部31は、対象物理ブロックアドレスでアクセス回数管理テーブル36を検索する(ステップS72)。参照回数(アクセス回数)がN値と等しくない場合(ステップS73;No)、メモリアクセス部31は、当該参照回数のインクリメントを行う(ステップS74)。その後、処理は、上述のステップS62に移る。   Further, the memory access unit 31 searches the access count management table 36 with the target physical block address (step S72). When the reference count (access count) is not equal to the N value (step S73; No), the memory access unit 31 increments the reference count (step S74). Thereafter, the process proceeds to step S62 described above.

一方、参照回数がN値と等しい場合(ステップS73;Yes)、メモリアクセス部31は、当該参照回数のインクリメントを行う(ステップS81)。更に、メモリアクセス部31は、対象物理ブロックアドレスに基づいて、対象エントリに対応する第1の記憶部21中のブロックの内容を、第2の記憶部22の空きブロックへコピーする(ステップS82)。例えば、その空きブロックの物理ブロックアドレスは、対象物理ブロックアドレスの特定のビットが1に変更されたものである(図13B参照)。また、メモリアクセス部31は、ステイタステーブル33中の対象物理ブロックアドレスに対応するステイタスを、“1”に設定する(ステップS83)。このようにして、データのコピーとステイタステーブル33の更新が行われる。その後、処理は、上述のステップS62に移る。   On the other hand, when the reference count is equal to the N value (step S73; Yes), the memory access unit 31 increments the reference count (step S81). Further, the memory access unit 31 copies the contents of the block in the first storage unit 21 corresponding to the target entry to the empty block in the second storage unit 22 based on the target physical block address (step S82). . For example, the physical block address of the empty block is obtained by changing a specific bit of the target physical block address to 1 (see FIG. 13B). Further, the memory access unit 31 sets the status corresponding to the target physical block address in the status table 33 to “1” (step S83). In this way, the data is copied and the status table 33 is updated. Thereafter, the process proceeds to step S62 described above.

今回は、対象物理ブロックアドレスに対応付けられたステイタスは“1”である(ステップS62;Yes)。よって、物理アドレス変換部32は、対象物理アドレスを変換し、第2の記憶部22の対象物理アドレスを得る(ステップS63)。物理アドレス変換部32は、変換後の対象物理アドレスを、メモリアクセス部31に返す。メモリアクセス部31は、受け取った対象物理アドレスにアクセスする。結果として、この場合は、メモリアクセス部31は、第2の記憶部22にアクセスする。   This time, the status associated with the target physical block address is “1” (step S62; Yes). Therefore, the physical address conversion unit 32 converts the target physical address and obtains the target physical address of the second storage unit 22 (step S63). The physical address conversion unit 32 returns the converted target physical address to the memory access unit 31. The memory access unit 31 accesses the received target physical address. As a result, in this case, the memory access unit 31 accesses the second storage unit 22.

4−3.具体例
次に、本実施の形態に係る計算機システム1dの具体的な例を説明する。図12は、本実施の形態に係る計算機システム1dの一例を示している。図12に示される計算機システム1dは、コンピュータである。コンピュータ1dは、CPU10、主記憶装置(メインメモリ)20、及びメモリコントローラ30を備えている。主記憶装置20は、不揮発性記憶装置21と揮発性記憶装置22を含んでいる。CPU10と主記憶装置20は、メモリコントローラ30を通じて互いに接続されている。このメモリコントローラ30は、CPU10内部の処理を知ることなく、CPU10からのメモリアクセス要求に応答してメモリアクセスを行うことができる。
4-3. Specific Example Next, a specific example of the computer system 1d according to the present embodiment will be described. FIG. 12 shows an example of a computer system 1d according to this embodiment. A computer system 1d shown in FIG. 12 is a computer. The computer 1 d includes a CPU 10, a main storage device (main memory) 20, and a memory controller 30. The main storage device 20 includes a nonvolatile storage device 21 and a volatile storage device 22. The CPU 10 and the main storage device 20 are connected to each other through the memory controller 30. The memory controller 30 can perform memory access in response to a memory access request from the CPU 10 without knowing the internal processing of the CPU 10.

上述のアドレス変換部(論理アドレス変換部)11d及びマッピングキャッシュ14は、CPU10に搭載されている。また、メモリコントローラ30には、メモリアクセス部31、物理アドレス変換部32、ステイタステーブル33、ステイタステーブル初期化部34、ステイタステーブル変更部35、及びアクセス回数管理テーブル36が含まれている。揮発性記憶装置22には、上述のマッピングテーブル12が構築される。不揮発性記憶装置21には、OSやアプリケーションプログラムが、予め格納されている。これらOSとCPU10とメモリコントローラ30との協働によって、本実施の形態に係る「データ処理装置」が提供される。尚、物理アドレス変換部32が設けられているため、OSは、主記憶装置20に複数の記憶媒体が存在することを認識していなくてもよい。   The address conversion unit (logical address conversion unit) 11d and the mapping cache 14 are mounted on the CPU 10. The memory controller 30 includes a memory access unit 31, a physical address conversion unit 32, a status table 33, a status table initialization unit 34, a status table change unit 35, and an access count management table 36. In the volatile storage device 22, the above-described mapping table 12 is constructed. The nonvolatile storage device 21 stores an OS and application programs in advance. The “data processing apparatus” according to the present embodiment is provided in cooperation with the OS, the CPU 10, and the memory controller 30. Since the physical address conversion unit 32 is provided, the OS may not recognize that there are a plurality of storage media in the main storage device 20.

図13Bは、不揮発性記憶装置21及び揮発性記憶装置22に対する物理ブロックアドレスの割り当ての一例を示している。図13Bに示されるように、不揮発性記憶装置21には物理ブロックアドレス11〜19が割り当てられ、揮発性記憶装置22には物理ブロックアドレス111〜119が割り当てられている。つまり、物理ブロックアドレスを示すビットのうち、特定のビットだけが異なっている。   FIG. 13B shows an example of allocation of physical block addresses to the nonvolatile storage device 21 and the volatile storage device 22. As illustrated in FIG. 13B, physical block addresses 11 to 19 are assigned to the nonvolatile storage device 21, and physical block addresses 111 to 119 are assigned to the volatile storage device 22. That is, only specific bits among bits indicating the physical block address are different.

マッピングテーブル12及びマッピングキャッシュ14の初期状態は、既出の実施の形態と同様である(図14B、図15B参照)。但し、本実施の形態において、アクセス権限は設定されない。   The initial states of the mapping table 12 and the mapping cache 14 are the same as those in the above-described embodiment (see FIGS. 14B and 15B). However, in this embodiment, no access authority is set.

図18Bは、ステイタステーブル33の初期状態を示している。初期状態においては、物理ブロックアドレスのそれぞれのステイタスが“0”に設定されている。図18Cは、変化後のステイタステーブル33の状態を示しており、後に参照される。   FIG. 18B shows an initial state of the status table 33. In the initial state, the status of each physical block address is set to “0”. FIG. 18C shows the state of the status table 33 after the change, and will be referred to later.

図19Bは、アクセス回数管理テーブル36の初期状態を示している。アクセス回数管理テーブル36には、物理ブロックアドレスのそれぞれに対応づけられたアクセス回数(参照回数)が示されている。初期状態においては、アクセス回数のそれぞれは“0(初期値)”に設定されている。図19C及び図19Dは、アクセス回数管理テーブル16の変遷を示しており、後に適宜参照される。   FIG. 19B shows an initial state of the access count management table 36. The access count management table 36 shows the access count (reference count) associated with each physical block address. In the initial state, each access count is set to “0 (initial value)”. 19C and 19D show the transition of the access count management table 16, and will be referred to as appropriate later.

アクセス回数に関連する上述のN値は“1”に設定されているとする。   It is assumed that the N value related to the number of accesses is set to “1”.

以下、次の3つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する:
(1)論理アドレス「2010(16進数)」に対する最初の読み込みアクセス;
(2)マッピングキャッシュ14に対象エントリがある状態における、論理ブロックアドレス「2」に対する読み込みアクセス;
(3)マッピングキャッシュ14に対象エントリがない状態における、論理アドレス「2030」に対する読み込みアクセス。
Hereinafter, a series of operations when the following three memory accesses are performed will be specifically described:
(1) First read access to logical address “2010 (hexadecimal)”;
(2) Read access to logical block address “2” in a state where there is a target entry in the mapping cache 14;
(3) Read access to the logical address “2030” when there is no target entry in the mapping cache 14.

(1)まず、論理アドレス「2010」に対する最初のメモリアクセスが発生する。アドレス変換部11dは、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、図15Bに示されるように、該当するエントリはマッピングキャッシュ14に登録されていない。従って、マッピングテーブル12の検索を行うため、アドレス変換部11dは、マッピングテーブルアドレスをメモリコントローラ30に送る。メモリコントローラ30は、そのマッピングテーブルアドレスに基づいて、要求がマッピングテーブル12へのアクセスであることを知る。そして、メモリコントローラ30は、マッピングテーブル12中のマッピングテーブルアドレスにアクセスし、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」を得る。物理ブロックアドレス「13」は、対象物理ブロックアドレスである。   (1) First, the first memory access to the logical address “2010” occurs. The address conversion unit 11d searches the mapping cache 14 with the logical block address “2”. At this time, as shown in FIG. 15B, the corresponding entry is not registered in the mapping cache 14. Accordingly, the address conversion unit 11 d sends the mapping table address to the memory controller 30 in order to search the mapping table 12. The memory controller 30 knows that the request is an access to the mapping table 12 based on the mapping table address. Then, the memory controller 30 accesses the mapping table address in the mapping table 12, and obtains the target entry “logical block address 2, physical block address 13”. The physical block address “13” is a target physical block address.

次に、メモリコントローラ30は、対象物理ブロックアドレス「13」で、図19Bに示されるアクセス回数管理テーブル36を検索する。その結果、エントリ「物理ブロックアドレス13、アクセス回数0」が得られる。このアクセス回数は、N値“1”と異なっている。従って、メモリコントローラ30は、当該アクセス回数のインクリメントを行う。その結果、アクセス回数管理テーブル36は、図19Cに示される状態に変更される。   Next, the memory controller 30 searches the access count management table 36 shown in FIG. 19B with the target physical block address “13”. As a result, the entry “physical block address 13, number of accesses 0” is obtained. This access count is different from the N value “1”. Therefore, the memory controller 30 increments the access count. As a result, the access count management table 36 is changed to the state shown in FIG. 19C.

また、メモリコントローラ30は、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」をCPU10に送る。CPU10は、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」を、マッピングキャッシュ14に登録する。その結果、マッピングキャッシュ14は、図15Cに示される状態に変更される。   In addition, the memory controller 30 sends the target entry “logical block address 2, physical block address 13” to the CPU 10. The CPU 10 registers the target entry “logical block address 2, physical block address 13” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15C.

アドレス変換部11dは再度、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」が登録されているため、アドレス変換部11dは、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「13」に変換する。すなわち、対象物理アドレス「13010(16進数)」が得られる。アドレス変換部11dは、対象物理アドレス「13010」へのアクセスをメモリコントローラ30に要求する。   The address conversion unit 11d searches the mapping cache 14 again with the logical block address “2”. At this time, since the target entry “logical block address 2 and physical block address 13” is registered, the address conversion unit 11d performs address conversion and converts the logical block address “2” into the physical block address “13”. . That is, the target physical address “13010 (hexadecimal number)” is obtained. The address conversion unit 11d requests the memory controller 30 to access the target physical address “13010”.

メモリコントローラ30は、対象物理ブロックアドレス「13」で、図18Bに示されるステイタステーブル33を検索する。その結果、エントリ「物理ブロックアドレス13、ステイタス0」が得られる。この場合、ステイタスが“0”なので、物理アドレス変換は行われない。従って、メモリコントローラ30は、要求された対象物理アドレス「13010」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置21からデータを読み込む。このように、N値が1に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置21から直接読み込まれる。   The memory controller 30 searches the status table 33 shown in FIG. 18B with the target physical block address “13”. As a result, the entry “physical block address 13, status 0” is obtained. In this case, since the status is “0”, the physical address conversion is not performed. Therefore, the memory controller 30 accesses the requested target physical address “13010”. That is, the data processing device reads data from the nonvolatile storage device 21. As described above, when the N value is set to 1, data is not copied in the first access, and the data is directly read from the nonvolatile storage device 21.

(2)続いて、論理ブロックアドレス「2」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ14は、図15Cに示される状態にある。今回は、マッピングキャッシュ14に対象エントリが登録されているので、メモリコントローラ30は、不揮発性記憶装置21の対象物理ブロックアドレス「13」にアクセスする。このように、マッピングキャッシュ14にエントリがある間は、データ処理装置は、不揮発性記憶装置21に直接アクセスする。   (2) Subsequently, it is assumed that a memory access to the logical block address “2” occurs. Currently, the mapping cache 14 is in the state shown in FIG. 15C. Since the target entry is registered in the mapping cache 14 this time, the memory controller 30 accesses the target physical block address “13” of the nonvolatile storage device 21. As described above, the data processing apparatus directly accesses the nonvolatile storage device 21 while there is an entry in the mapping cache 14.

(3)しばらく経って、マッピングキャッシュ14からエントリ「論理ブロックアドレス2,物理ブロックアドレス13」が無くなり、マッピングキャッシュ14が図15Bに示される状態になったとする。その後、論理アドレス「2030」に対するメモリアクセスが発生するとする。図15Bに示されるように、対象エントリはマッピングキャッシュ14に登録されていない。   (3) Assume that the entry “logical block address 2 and physical block address 13” disappears from the mapping cache 14 after a while, and the mapping cache 14 is in the state shown in FIG. 15B. Thereafter, it is assumed that a memory access to the logical address “2030” occurs. As shown in FIG. 15B, the target entry is not registered in the mapping cache 14.

従って、マッピングテーブル12の検索を行うため、アドレス変換部11dは、マッピングテーブルアドレスをメモリコントローラ30に送る。メモリコントローラ30は、そのマッピングテーブルアドレスに基づいて、要求がマッピングテーブル12へのアクセスであることを知る。そして、メモリコントローラ30は、マッピングテーブル12中のマッピングテーブルアドレスにアクセスし、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」を得る。物理ブロックアドレス「13」は、対象物理ブロックアドレスである。   Accordingly, the address conversion unit 11 d sends the mapping table address to the memory controller 30 in order to search the mapping table 12. The memory controller 30 knows that the request is an access to the mapping table 12 based on the mapping table address. Then, the memory controller 30 accesses the mapping table address in the mapping table 12, and obtains the target entry “logical block address 2, physical block address 13”. The physical block address “13” is a target physical block address.

次に、メモリコントローラ30は、対象物理ブロックアドレス「13」で、図19Cに示されるアクセス回数管理テーブル36を検索する。その結果、エントリ「物理ブロックアドレス13、アクセス回数1」が得られる。このアクセス回数は、N値“1”と等しい。従って、メモリコントローラ30は、不揮発性記憶装置21中の物理ブロックアドレス「13」が示すブロックの内容を、揮発性記憶装置22の空きブロックにコピーする。例えば、揮発性記憶装置22中の物理ブロックアドレス「113」に、データがコピーされるとする。この物理ブロックアドレス「113」は、物理ブロックアドレス「13」の上位の特定のビットが“1”に変更されたアドレスである。   Next, the memory controller 30 searches the access count management table 36 shown in FIG. 19C with the target physical block address “13”. As a result, the entry “physical block address 13, number of accesses 1” is obtained. This access count is equal to the N value “1”. Therefore, the memory controller 30 copies the contents of the block indicated by the physical block address “13” in the nonvolatile storage device 21 to an empty block in the volatile storage device 22. For example, it is assumed that data is copied to the physical block address “113” in the volatile storage device 22. The physical block address “113” is an address in which a specific bit higher than the physical block address “13” is changed to “1”.

更に、メモリコントローラ30は、ステイタステーブル33中の物理ブロックアドレス「13」に対応づけられたステイタスを、“0”から“1”に書き換える。その結果、ステイタステーブル33は、図18Cに示される状態に変更される。また、メモリコントローラ30は、アクセス回数管理テーブル36中の当該アクセス回数のインクリメントを行う。その結果、アクセス回数管理テーブル36は、図19Dに示される状態に変更される。   Further, the memory controller 30 rewrites the status associated with the physical block address “13” in the status table 33 from “0” to “1”. As a result, the status table 33 is changed to the state shown in FIG. 18C. Further, the memory controller 30 increments the access count in the access count management table 36. As a result, the access count management table 36 is changed to the state shown in FIG. 19D.

また、メモリコントローラ30は、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」をCPU10に送る。CPU10は、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」を、マッピングキャッシュ14に登録する。その結果、マッピングキャッシュ14は、図15Cに示される状態に変更される。   In addition, the memory controller 30 sends the target entry “logical block address 2, physical block address 13” to the CPU 10. The CPU 10 registers the target entry “logical block address 2, physical block address 13” in the mapping cache 14. As a result, the mapping cache 14 is changed to the state shown in FIG. 15C.

アドレス変換部11dは再度、論理ブロックアドレス「2」でマッピングキャッシュ14を検索する。この時、対象エントリ「論理ブロックアドレス2、物理ブロックアドレス13」が登録されているため、アドレス変換部11dは、アドレス変換を行い、論理ブロックアドレス「2」を物理ブロックアドレス「13」に変換する。すなわち、対象物理アドレス「13030(16進数)」が得られる。アドレス変換部11dは、対象物理アドレス「13030」へのアクセスをメモリコントローラ30に要求する。   The address conversion unit 11d searches the mapping cache 14 again with the logical block address “2”. At this time, since the target entry “logical block address 2 and physical block address 13” is registered, the address conversion unit 11d performs address conversion and converts the logical block address “2” into the physical block address “13”. . That is, the target physical address “13030 (hexadecimal number)” is obtained. The address conversion unit 11d requests the memory controller 30 to access the target physical address “13030”.

メモリコントローラ30は、対象物理ブロックアドレス「13」で、図18Cに示されるステイタステーブル33を検索する。その結果、エントリ「物理ブロックアドレス13、ステイタス1」が得られる。この場合、ステイタスが“1”なので、物理アドレス変換部32は物理アドレス変換を行う。具体的には、物理アドレス変換部32は、物理ブロックアドレス「13」の上位の特定のビットを“1”に変更し、対象物理ブロックアドレス「113」を得る。そして、メモリコントローラ30、対象物理アドレス「113030」にアクセスする。つまり、データ処理装置は、揮発性記憶装置22からデータを読み込む。このように、N値が1に設定されている場合、2回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置22から読み込まれる。   The memory controller 30 searches the status table 33 shown in FIG. 18C with the target physical block address “13”. As a result, the entry “physical block address 13, status 1” is obtained. In this case, since the status is “1”, the physical address conversion unit 32 performs physical address conversion. Specifically, the physical address conversion unit 32 changes the specific upper bit of the physical block address “13” to “1” to obtain the target physical block address “113”. Then, the memory controller 30 accesses the target physical address “113030”. That is, the data processing device reads data from the volatile storage device 22. As described above, when the N value is set to 1, data is copied in the second access, and the data is read from the high-speed volatile storage device 22.

4−4.効果
本実施の形態によれば、既出の実施の形態と同じ効果が得られる。また、システムの開発者は、OSの支援を考慮することなく、メモリコントローラ30のみで本実施の形態による効果を得られる。
4-4. Effect According to the present embodiment, the same effect as the above-described embodiment can be obtained. Further, the system developer can obtain the effect of the present embodiment with only the memory controller 30 without considering the support of the OS.

5.まとめ
本発明によれば、高速に起動し、且つ、高速に動作する計算機システムが提供される。従って、本発明は、高速起動と高速動作の両立が望まれる組込みシステムに適用され得る。例えば、本発明に係る計算機システムは、情報家電やカーナビゲーション装置に適用される。尚、揮発性記憶装置22の空き容量が枯渇した場合、マッピングテーブル12の示す物理ブロックアドレスが元に戻され、メモリアクセスが不揮発性記憶装置21へのアクセスに戻されてもよい。その場合、高速アクセスはできなくなるが、揮発性記憶装置22の空き容量を増やすことが可能となる。また、消費電力を低減することが可能となる。
5). Summary According to the present invention, a computer system that starts at high speed and operates at high speed is provided. Therefore, the present invention can be applied to an embedded system where both high-speed startup and high-speed operation are desired. For example, the computer system according to the present invention is applied to information home appliances and car navigation devices. When the free capacity of the volatile storage device 22 is exhausted, the physical block address indicated by the mapping table 12 may be returned to the original, and the memory access may be returned to the access to the nonvolatile storage device 21. In this case, high-speed access cannot be performed, but the free capacity of the volatile storage device 22 can be increased. In addition, power consumption can be reduced.

図1は、本発明の第1の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。FIG. 1 is a block diagram conceptually showing the structure of a computer system according to the first embodiment of this invention. 図2Aは、第1の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 2A is a flowchart illustrating processing by the computer system according to the first embodiment. 図2Bは、第1の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 2B is a flowchart illustrating processing by the computer system according to the first embodiment. 図3は、第1の実施の形態に係る計算機システムの構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration example of the computer system according to the first embodiment. 図4は、本発明の第2の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。FIG. 4 is a block diagram conceptually showing the structure of the computer system related to the second embodiment of this invention. 図5Aは、第2の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 5A is a flowchart illustrating processing by the computer system according to the second embodiment. 図5Bは、第2の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 5B is a flowchart illustrating processing by the computer system according to the second embodiment. 図6は、第2の実施の形態に係る計算機システムの構成例を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration example of a computer system according to the second embodiment. 図7は、本発明の第3の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。FIG. 7 is a block diagram conceptually showing the structure of the computer system related to the third embodiment of the present invention. 図8Aは、第3の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 8A is a flowchart illustrating processing by the computer system according to the third embodiment. 図8Bは、第3の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 8B is a flowchart illustrating processing by the computer system according to the third embodiment. 図9は、第3の実施の形態に係る計算機システムの構成例を示すブロック図である。FIG. 9 is a block diagram illustrating a configuration example of a computer system according to the third embodiment. 図10は、本発明の第4の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。FIG. 10 is a block diagram conceptually showing the structure of the computer system related to the fourth embodiment of the present invention. 図11は、第4の実施の形態に係る計算機システムによる処理を示すフローチャートである。FIG. 11 is a flowchart showing processing by the computer system according to the fourth embodiment. 図12は、第4の実施の形態に係る計算機システムの構成例を示すブロック図である。FIG. 12 is a block diagram illustrating a configuration example of a computer system according to the fourth embodiment. 図13Aは、記憶装置に対する物理ブロックアドレスの割り当ての一例を示す概念図である。FIG. 13A is a conceptual diagram illustrating an example of allocation of physical block addresses to storage devices. 図13Bは、記憶装置に対する物理ブロックアドレスの割り当ての一例を示す概念図である。FIG. 13B is a conceptual diagram illustrating an example of allocation of physical block addresses to storage devices. 図14Aは、マッピングテーブルの構成を示す概念図である。FIG. 14A is a conceptual diagram illustrating a configuration of a mapping table. 図14Bは、マッピングテーブルの一例を示すテーブルである。FIG. 14B is a table showing an example of the mapping table. 図14Cは、マッピングテーブルの一例を示すテーブルである。FIG. 14C is a table showing an example of the mapping table. 図14Dは、マッピングテーブルの一例を示すテーブルである。FIG. 14D is a table showing an example of the mapping table. 図15Aは、マッピングキャッシュの構成を示す概念図である。FIG. 15A is a conceptual diagram showing a configuration of the mapping cache. 図15Bは、マッピングキャッシュの一例を示すテーブルである。FIG. 15B is a table showing an example of the mapping cache. 図15Cは、マッピングキャッシュの一例を示すテーブルである。FIG. 15C is a table showing an example of the mapping cache. 図15Dは、マッピングキャッシュの一例を示すテーブルである。FIG. 15D is a table illustrating an example of a mapping cache. 図16Aは、アクセス回数管理テーブルの構成を示す概念図である。FIG. 16A is a conceptual diagram illustrating a configuration of an access count management table. 図16Bは、アクセス回数管理テーブルの一例を示すテーブルである。FIG. 16B is a table showing an example of the access count management table. 図16Cは、アクセス回数管理テーブルの一例を示すテーブルである。FIG. 16C is a table showing an example of the access count management table. 図16Dは、アクセス回数管理テーブルの一例を示すテーブルである。FIG. 16D is a table showing an example of the access count management table. 図17Aは、マッピングテーブルの構成を示す概念図である。FIG. 17A is a conceptual diagram illustrating a configuration of a mapping table. 図17Bは、マッピングテーブルの一例を示すテーブルである。FIG. 17B is a table showing an example of the mapping table. 図17Cは、マッピングテーブルの一例を示すテーブルである。FIG. 17C is a table showing an example of the mapping table. 図17Dは、マッピングテーブルの一例を示すテーブルである。FIG. 17D is a table showing an example of the mapping table. 図18Aは、ステイタステーブルの構成を示す概念図である。FIG. 18A is a conceptual diagram illustrating a configuration of a status table. 図18Bは、ステイタステーブルの一例を示すテーブルである。FIG. 18B is a table showing an example of a status table. 図18Cは、ステイタステーブルの一例を示すテーブルである。FIG. 18C is a table showing an example of a status table. 図19Aは、アクセス回数管理テーブルの構成を示す概念図である。FIG. 19A is a conceptual diagram illustrating a configuration of an access count management table. 図19Bは、アクセス回数管理テーブルの一例を示すテーブルである。FIG. 19B is a table showing an example of the access count management table. 図19Cは、アクセス回数管理テーブルの一例を示すテーブルである。FIG. 19C is a table showing an example of the access count management table. 図19Dは、アクセス回数管理テーブルの一例を示すテーブルである。FIG. 19D is a table showing an example of the access count management table.

符号の説明Explanation of symbols

1 計算機システム,コンピュータ
10 データ処理装置,CPU
11 アドレス変換部
12 マッピングテーブル
13 マッピングテーブル初期化部
14 マッピングキャッシュ
15 マッピング検索部
16 アクセス回数管理テーブル
17 マッピングテーブル変更部
18 後処理ハンドラ部
20 主記憶装置
21 第1の記憶部,不揮発性記憶装置
22 第2の記憶部,揮発性記憶装置
30 メモリコントローラ
31 メモリアクセス部
32 物理アドレス変換部
33 ステイタステーブル
34 ステイタステーブル初期化部
35 ステイタステーブル変更部
36 アクセス回数管理テーブル
1 Computer system, computer 10 Data processing device, CPU
DESCRIPTION OF SYMBOLS 11 Address conversion part 12 Mapping table 13 Mapping table initialization part 14 Mapping cache 15 Mapping search part 16 Access frequency management table 17 Mapping table change part 18 Post-processing handler part 20 Main memory device 21 1st memory | storage part, a non-volatile memory device 22 Second storage unit, volatile storage device 30 Memory controller 31 Memory access unit 32 Physical address conversion unit 33 Status table 34 Status table initialization unit 35 Status table change unit 36 Access count management table

Claims (16)

第1記憶装置と、
前記第1記憶装置と性能の異なる第2記憶装置と、
前記第1、第2記憶装置へのアクセスを行うデータ処理装置と
を備え、
前記第1、第2記憶装置は、ブロック毎に区分けされ、
あるブロックを指し示す第1論理ブロックアドレスへの第1回目のアクセス時、前記データ処理装置は、前記第1記憶装置のうち前記第1論理ブロックアドレスに対応する第1物理ブロックアドレスにアクセスし、
前記第1論理ブロックアドレスへの第m回目(mは2以上の任意の整数)のアクセス時、前記データ処理装置は、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、前記第2記憶装置のうちコピー先に対応する第2物理ブロックアドレスにアクセスする
計算機システム。
A first storage device;
A second storage device having different performance from the first storage device;
A data processing device for accessing the first and second storage devices,
The first and second storage devices are divided into blocks,
During the first access to a first logical block address indicating a block, the data processing device accesses a first physical block address corresponding to the first logical block address in the first storage device,
At the m-th access to the first logical block address (m is an arbitrary integer greater than or equal to 2), the data processing device copies the contents of the certain block to an empty block of the second storage device, and A computer system that accesses a second physical block address corresponding to a copy destination in the second storage device.
請求項1に記載の計算機システムであって、
更に、論理ブロックアドレスと物理ブロックアドレスとの対応関係を示すマッピングテーブルを備え、
前記データ処理装置は、前記マッピングテーブルの一部が格納されるように構成されたキャッシュを有し、プログラムからのメモリアクセス要求に応答して前記キャッシュを参照し、
前記第1論理ブロックアドレスに対応する物理ブロックアドレスを示す第1エントリが前記キャッシュに登録されていない場合、前記データ処理装置は、前記マッピングテーブルを参照することによって前記第1エントリを前記キャッシュに登録し、
前記第1エントリが前記キャッシュに登録されている場合、前記データ処理装置は、前記第1論理ブロックアドレスを前記対応する物理ブロックアドレスに変換し、前記対応する物理ブロックアドレスにアクセスする
計算機システム。
The computer system according to claim 1,
Furthermore, a mapping table showing the correspondence between logical block addresses and physical block addresses is provided,
The data processing apparatus has a cache configured to store a part of the mapping table, refers to the cache in response to a memory access request from a program,
If the first entry indicating the physical block address corresponding to the first logical block address is not registered in the cache, the data processing apparatus registers the first entry in the cache by referring to the mapping table And
When the first entry is registered in the cache, the data processing device converts the first logical block address into the corresponding physical block address and accesses the corresponding physical block address.
請求項2に記載の計算機システムであって、
更に、前記マッピングテーブルに格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブルを備え、
前記データ処理装置は、前記マッピングテーブル中の前記第1エントリを参照する度に、前記アクセス回数管理テーブル中の前記第1エントリに対応づけられた第1参照回数のインクリメントを行い、
前記インクリメントの前の前記第1参照回数がN(Nは1以上の任意の整数)である場合、前記データ処理装置は、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、また、前記第1エントリが前記第1論理ブロックアドレスと前記第2物理ブロックアドレスとの対応関係を示すように前記マッピングテーブルを更新する
計算機システム。
The computer system according to claim 2,
And an access count management table indicating the reference count of each of the entries stored in the mapping table,
The data processing device increments the first reference count associated with the first entry in the access count management table each time the first entry is referenced in the mapping table.
When the first reference count before the increment is N (N is an arbitrary integer greater than or equal to 1), the data processing device copies the contents of the certain block to an empty block of the second storage device, The computer system updates the mapping table so that the first entry indicates a correspondence relationship between the first logical block address and the second physical block address.
請求項3に記載の計算機システムであって、
前記マッピングテーブルは、前記アクセス回数管理テーブルを含み、
前記マッピングテーブルの各エントリは、論理ブロックアドレス、物理ブロックアドレス、及び参照回数の対応関係を示す
計算機システム。
The computer system according to claim 3,
The mapping table includes the access count management table,
Each entry in the mapping table indicates a correspondence relationship between a logical block address, a physical block address, and a reference count.
請求項2に記載の計算機システムであって、
更に、前記マッピングテーブルに格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブルを備え、
前記マッピングテーブルの各エントリは、更にアクセス権限を示し、
前記第1エントリが前記キャッシュに登録されていない場合、前記データ処理装置は、前記マッピングテーブルを参照し、
前記マッピングテーブル中の前記第1エントリに関するアクセス権限が可を示している場合、前記データ処理装置は、前記第1エントリを前記キャッシュに登録し、また、前記アクセス回数管理テーブル中の前記第1エントリに対応づけられた第1参照回数をそのまま保ち、
前記マッピングテーブル中の前記第1エントリに関するアクセス権限が不可を示している場合、前記データ処理装置は、前記第1参照回数のインクリメントを行う
計算機システム。
The computer system according to claim 2,
And an access count management table indicating the reference count of each of the entries stored in the mapping table,
Each entry in the mapping table further indicates an access right,
When the first entry is not registered in the cache, the data processing device refers to the mapping table,
When the access authority regarding the first entry in the mapping table indicates permission, the data processing apparatus registers the first entry in the cache, and the first entry in the access count management table Keep the first reference count associated with
When the access authority regarding the first entry in the mapping table indicates impossibility, the data processing device increments the first reference count.
請求項5に記載の計算機システムであって、
前記不可の場合も、前記データ処理装置は、前記第1エントリを前記キャッシュに登録する
計算機システム。
The computer system according to claim 5,
The data processing apparatus registers the first entry in the cache even when the data cannot be used.
請求項5又は6に記載の計算機システムであって、
前記インクリメントの前の前記第1参照回数がN(Nは1以上の任意の整数)である場合、前記データ処理装置は、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、また、前記第1エントリが前記第1論理ブロックアドレスと前記第2物理ブロックアドレスとの対応関係を示すように前記マッピングテーブルを更新する
計算機システム。
The computer system according to claim 5 or 6,
When the first reference count before the increment is N (N is an arbitrary integer equal to or greater than 1), the data processing device copies the contents of the certain block to an empty block of the second storage device, The computer system updates the mapping table so that the first entry indicates a correspondence relationship between the first logical block address and the second physical block address.
請求項7に記載の計算機システムであって、
前記コピーが行われた場合、前記データ処理装置は、前記マッピングテーブル中の前記第1エントリに関するアクセス権限を不可から可に変更する
計算機システム。
The computer system according to claim 7,
When the copying is performed, the data processing device changes the access authority regarding the first entry in the mapping table from disabled to allowed.
請求項2に記載の計算機システムであって、
更に、前記第1記憶装置の物理ブロックアドレスのそれぞれのステイタスを示すステイタステーブルを備え、
前記データ処理装置は、
前記キャッシュを参照することによって、前記第1論理ブロックアドレスを前記第1物理ブロックアドレスに変換する論理アドレス変換部と、
前記ステイタステーブルを参照することによって、前記第1物理ブロックアドレスを前記対応する物理ブロックアドレスに変換する物理アドレス変換部と
を有し、
前記第1物理ブロックアドレスに関する前記ステイタスである第1ステイタスが第1状態の場合、前記対応する物理ブロックアドレスは前記第1物理ブロックアドレスであり、
前記第1ステイタスが第2状態の場合、前記対応する物理ブロックアドレスは前記第2物理ブロックアドレスである
計算機システム。
The computer system according to claim 2,
And a status table indicating the status of each physical block address of the first storage device,
The data processing device includes:
A logical address conversion unit that converts the first logical block address into the first physical block address by referring to the cache;
A physical address conversion unit that converts the first physical block address into the corresponding physical block address by referring to the status table;
If the first status, which is the status relating to the first physical block address, is in the first state, the corresponding physical block address is the first physical block address;
When the first status is in the second state, the corresponding physical block address is the second physical block address.
請求項9に記載の計算機システムであって、
更に、前記第1前記マッピングテーブルに格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブルを備え、
前記データ処理装置は、前記マッピングテーブル中の前記第1エントリを参照する度に、前記アクセス回数管理テーブル中の前記第1エントリに対応づけられた第1参照回数のインクリメントを行い、
前記インクリメントの前の前記第1参照回数がN(Nは1以上の任意の整数)である場合、前記データ処理装置は、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、また、前記ステイタステーブルが示す前記第1ステイタスを前記第1状態から前記第2状態に変更する
計算機システム。
A computer system according to claim 9, wherein
And an access count management table indicating the reference count of each of the entries stored in the first mapping table.
The data processing device increments the first reference count associated with the first entry in the access count management table each time the first entry is referenced in the mapping table.
When the first reference count before the increment is N (N is an arbitrary integer equal to or greater than 1), the data processing device copies the contents of the certain block to an empty block of the second storage device, A computer system that changes the first status indicated by the status table from the first state to the second state.
請求項1乃至10のいずれかに記載の計算機システムであって、
前記第2記憶装置へのアクセス速度は、前記第1記憶装置へのアクセス速度よりもはやい
計算機システム。
A computer system according to any one of claims 1 to 10,
The access speed to the second storage device is no longer than the access speed to the first storage device.
請求項11に記載の計算機システムであって、
前記第1記憶装置は、不揮発性記憶装置であり、
前記第2記憶装置は、揮発性記憶装置である
計算機システム。
The computer system according to claim 11,
The first storage device is a nonvolatile storage device,
The computer system, wherein the second storage device is a volatile storage device.
ブロック毎に区分けされた第1記憶装置、及び前記第1記憶装置と性能の異なる第2記憶装置へのアクセスを制御するメモリコントローラであって、
CPUからメモリアクセス要求を受け取るメモリアクセス部と、
前記メモリアクセス要求が示す物理アドレスを変換する物理アドレス変換部と
を備え、
あるブロックへのアクセス時、前記メモリアクセス部は、前記第1記憶装置のうち前記あるブロックに対応する第1物理ブロックアドレスをCPUから受け取り、
前記あるブロックへの第1回目のアクセス時、前記メモリアクセス部は、前記第1物理ブロックアドレスにアクセスし、
前記あるブロックへの第m回目(mは2以上の任意の整数)のアクセス時、前記メモリアクセス部は、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、前記物理アドレス変換部は、前記第1物理ブロックアドレスを前記第2記憶装置のうちコピー先に対応する第2物理ブロックアドレスに変換し、前記メモリアクセス部は、前記第2物理ブロックアドレスにアクセスする
メモリコントローラ。
A memory controller for controlling access to a first storage device divided into blocks and a second storage device having different performance from the first storage device;
A memory access unit that receives a memory access request from the CPU;
A physical address conversion unit that converts the physical address indicated by the memory access request,
When accessing a certain block, the memory access unit receives a first physical block address corresponding to the certain block in the first storage device from the CPU,
During the first access to the certain block, the memory access unit accesses the first physical block address;
At the m-th access to the certain block (m is an arbitrary integer equal to or greater than 2), the memory access unit copies the contents of the certain block to a free block of the second storage device, and performs the physical address conversion A memory controller that converts the first physical block address into a second physical block address corresponding to a copy destination in the second storage device, and the memory access unit accesses the second physical block address.
請求項13に記載のメモリコントローラであって、
更に、
論理ブロックアドレスと物理ブロックアドレスとの対応関係を示すマッピングテーブルのエントリのそれぞれに対する参照回数を示すアクセス回数管理テーブルと、
前記第1記憶装置の物理ブロックアドレスのそれぞれのステイタスを示すステイタステーブルと
を備え、
前記メモリアクセス部は、前記マッピングテーブル中の前記第1物理ブロックアドレスに対応する第1エントリを参照する度に、前記アクセス回数管理テーブル中の前記第1エントリに対応づけられた第1参照回数のインクリメントを行い、
前記インクリメントの前の前記第1参照回数がN(Nは1以上の任意の整数)である場合、前記メモリアクセス部は、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、また、前記第1物理ブロックアドレスに関する前記ステイタスである第1ステイタスを第1状態から第2状態に変更し、
前記あるブロックへのアクセス時、前記メモリアクセス部は、前記ステイタステーブルが示す前記第1ステイタスを参照し、
前記第1ステイタスが前記第1状態の場合、前記メモリアクセス部は、前記第1物理ブロックアドレスにアクセスし、
前記第1ステイタスが前記第2状態の場合、前記メモリアクセス部は、前記物理アドレス変換部に前記第1物理ブロックアドレスを前記第2物理ブロックアドレスへ変換させ、前記第2物理ブロックアドレスにアクセスする
メモリコントローラ。
The memory controller according to claim 13, comprising:
Furthermore,
An access count management table indicating the number of references to each of the mapping table entries indicating the correspondence between the logical block address and the physical block address;
A status table indicating the status of each physical block address of the first storage device,
Each time the memory access unit refers to the first entry corresponding to the first physical block address in the mapping table, the memory access unit stores the first reference number of times associated with the first entry in the access number management table. Increment,
When the first reference count before the increment is N (N is an arbitrary integer equal to or greater than 1), the memory access unit copies the contents of the certain block to an empty block of the second storage device, Also, the first status, which is the status relating to the first physical block address, is changed from the first state to the second state,
When accessing the block, the memory access unit refers to the first status indicated by the status table;
When the first status is in the first state, the memory access unit accesses the first physical block address,
When the first status is in the second state, the memory access unit causes the physical address conversion unit to convert the first physical block address to the second physical block address, and accesses the second physical block address. Memory controller.
計算機システムにおけるメモリアクセス方法であって、
前記計算機システムは、第1記憶装置と、前記第1記憶装置と性能の異なる第2記憶装置とを備え、前記第1、第2記憶装置は、ブロック毎に区分けされ、
前記メモリアクセス方法は、
(A)あるブロックを指し示す第1論理ブロックアドレスへの第1回目のアクセス時、前記第1記憶装置のうち前記第1論理ブロックアドレスに対応する第1物理ブロックアドレスにアクセスするステップと、
(B)前記第1論理ブロックアドレスへの第m回目(mは2以上の任意の整数)のアクセス時、前記あるブロックの内容を前記第2記憶装置の空きブロックへコピーし、前記第2記憶装置のうちコピー先に対応する第2物理ブロックアドレスにアクセスするステップと
を有する
メモリアクセス方法。
A memory access method in a computer system,
The computer system includes a first storage device and a second storage device having a performance different from that of the first storage device, and the first and second storage devices are divided into blocks.
The memory access method includes:
(A) accessing a first physical block address corresponding to the first logical block address in the first storage device during a first access to a first logical block address indicating a block;
(B) At the m-th access to the first logical block address (m is an arbitrary integer equal to or greater than 2), the contents of the certain block are copied to an empty block of the second storage device, and the second storage A memory access method comprising: accessing a second physical block address corresponding to a copy destination in the apparatus.
請求項15に記載のメモリアクセス方法を前記計算機システムに実行させるための
メモリアクセス制御プログラム。
A memory access control program for causing the computer system to execute the memory access method according to claim 15.
JP2006131028A 2006-05-10 2006-05-10 Computer system and memory access method Pending JP2007304747A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006131028A JP2007304747A (en) 2006-05-10 2006-05-10 Computer system and memory access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006131028A JP2007304747A (en) 2006-05-10 2006-05-10 Computer system and memory access method

Publications (1)

Publication Number Publication Date
JP2007304747A true JP2007304747A (en) 2007-11-22

Family

ID=38838636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006131028A Pending JP2007304747A (en) 2006-05-10 2006-05-10 Computer system and memory access method

Country Status (1)

Country Link
JP (1) JP2007304747A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033578A (en) * 2008-07-30 2010-02-12 Samsung Electronics Co Ltd Data management method, recording medium and data storage system
JP2011065650A (en) * 2009-09-18 2011-03-31 Intel Corp Providing hardware support for shared virtual memory between local and remote physical memory
JP2012226586A (en) * 2011-04-20 2012-11-15 Nec Corp Reboot/boot/shutdown quickening device and reboot/boot/shutdown quickening method
JP2015036905A (en) * 2013-08-14 2015-02-23 ソニー株式会社 Storage controller, host computer, information processing system, and storage controller control method
KR20150036165A (en) * 2012-07-18 2015-04-07 마이크론 테크놀로지, 인크. Memory management for a hierarchical memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257657A (en) * 1991-10-15 1993-10-08 Bull Hn Inf Syst Inc Power-on time sequence device
JPH10133954A (en) * 1996-08-30 1998-05-22 Ee I Soft Kk Method and device for access control over storage medium, and recording medium where program for performing their process is recorded
JPH11194973A (en) * 1997-11-06 1999-07-21 Seiko Epson Corp Image information processor, control method therefor and record medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257657A (en) * 1991-10-15 1993-10-08 Bull Hn Inf Syst Inc Power-on time sequence device
JPH10133954A (en) * 1996-08-30 1998-05-22 Ee I Soft Kk Method and device for access control over storage medium, and recording medium where program for performing their process is recorded
JPH11194973A (en) * 1997-11-06 1999-07-21 Seiko Epson Corp Image information processor, control method therefor and record medium

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033578A (en) * 2008-07-30 2010-02-12 Samsung Electronics Co Ltd Data management method, recording medium and data storage system
KR101517761B1 (en) * 2008-07-30 2015-05-06 시게이트 테크놀로지 엘엘씨 Method for managing data storage position and data storage system using the same
JP2011065650A (en) * 2009-09-18 2011-03-31 Intel Corp Providing hardware support for shared virtual memory between local and remote physical memory
JP2013254524A (en) * 2009-09-18 2013-12-19 Intel Corp Providing hardware support for virtual memory shared between local physical memory and remote physical memory
JP2012226586A (en) * 2011-04-20 2012-11-15 Nec Corp Reboot/boot/shutdown quickening device and reboot/boot/shutdown quickening method
KR20150036165A (en) * 2012-07-18 2015-04-07 마이크론 테크놀로지, 인크. Memory management for a hierarchical memory system
JP2015522886A (en) * 2012-07-18 2015-08-06 マイクロン テクノロジー, インク. Memory management for hierarchical memory systems
US10089242B2 (en) 2012-07-18 2018-10-02 Micron Technology, Inc. Memory management for a hierarchical memory system
KR102144491B1 (en) * 2012-07-18 2020-08-18 마이크론 테크놀로지, 인크. Memory management for a hierarchical memory system
US10831672B2 (en) 2012-07-18 2020-11-10 Micron Technology, Inc Memory management for a hierarchical memory system
JP2015036905A (en) * 2013-08-14 2015-02-23 ソニー株式会社 Storage controller, host computer, information processing system, and storage controller control method

Similar Documents

Publication Publication Date Title
US9836409B2 (en) Seamless application access to hybrid main memory
US7366869B2 (en) Method and system for optimizing translation lookaside buffer entries
US20080235477A1 (en) Coherent data mover
US7472253B1 (en) System and method for managing table lookaside buffer performance
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
US10019377B2 (en) Managing cache coherence using information in a page table
EP2472412B1 (en) Explicitly regioned memory organization in a network element
JP2006277762A (en) Divided nondense directory for distributed shared memory multi-processor system
JP2019521409A (en) Use of multiple memory devices in an I / O memory management unit to perform virtual address to physical address translation
JP3872968B2 (en) System and method for dynamically reallocating memory in a computer system
US11126573B1 (en) Systems and methods for managing variable size load units
JP2007048296A (en) Method, apparatus and system for invalidating multiple address cache entries
US7500073B1 (en) Relocation of virtual-to-physical mappings
JP2007304747A (en) Computer system and memory access method
US10635614B2 (en) Cooperative overlay
JP2016085677A (en) Memory management method, memory management program, and information processing device
KR20150139383A (en) Semiconductor device
JP4792065B2 (en) Data storage method
JP5196249B2 (en) Memory system, method and program for using cache memory
JP2013109404A (en) Information processing device
EP4116829A1 (en) Systems and methods for managing variable size load units
TWI831564B (en) Configurable memory system and memory managing method thereof
KR100460142B1 (en) Optimum Method for Reference of Cache Memory
JP7118827B2 (en) Information processing device, memory control method and program
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120628