JP2016062406A - Memory system, control method for memory system, and program - Google Patents

Memory system, control method for memory system, and program Download PDF

Info

Publication number
JP2016062406A
JP2016062406A JP2014191021A JP2014191021A JP2016062406A JP 2016062406 A JP2016062406 A JP 2016062406A JP 2014191021 A JP2014191021 A JP 2014191021A JP 2014191021 A JP2014191021 A JP 2014191021A JP 2016062406 A JP2016062406 A JP 2016062406A
Authority
JP
Japan
Prior art keywords
storage unit
data
unit
data input
logical address
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
JP2014191021A
Other languages
Japanese (ja)
Inventor
修一 追川
Shuichi Oikawa
修一 追川
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.)
University of Tsukuba NUC
Original Assignee
University of Tsukuba NUC
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 University of Tsukuba NUC filed Critical University of Tsukuba NUC
Priority to JP2014191021A priority Critical patent/JP2016062406A/en
Publication of JP2016062406A publication Critical patent/JP2016062406A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To efficiently perform access to a block device by byte units.SOLUTION: A memory system 100 includes: a first storage part 4 as a non-volatile memory in which data are read and written by block units; a second storage part 5 configuring a storage device 3 with the first storage part 4 in which data can be read and written by byte units, and the data to be read and written in the first storage part 4 can be temporarily stored; a data input/output instruction part 1 for instructing the reading/writing of data by byte units to a predetermined logical address; and a data input/output control part 2 for, when it is possible to perform access to the second storage part 5 by the logical address without performing access to the first storage part 4, performing synchronous access to the second storage part 5, and for, when it is not possible to perform access to the second storage part 5 by the logical address without performing access to the first storage part 4, performing asynchronous access to the first storage part 4 or the second storage part 5.SELECTED DRAWING: Figure 1

Description

本発明は、メモリシステム、メモリシステムの制御方法及びプログラムに関する。   The present invention relates to a memory system, a memory system control method, and a program.

ブロックデバイスであるフラッシュメモリに対してバイト単位でアクセスする場合、読み書きされるデータを一旦ランダムアクセス可能なキャッシュメモリに記憶する構成が用いられている(特許文献1及び特許文献2)。ここでブロックデバイスとは、CPU(中央処理装置)がメインメモリ(主記憶装置)に対して直接アクセスする際のデータの大きさの単位であるバイト単位あるいはワード単位を超える、セクタ単位、ページ単位等の一定の大きさを単位としてデータの入出力が行われる装置である。なお、本願において、バイト単位とは、1バイト単位と複数バイト単位とを含むものとする。また、バイト単位はワード単位を含むものとする。また、本願において、データとは、記憶装置が記憶する情報を意味するものとし、プログラム及びプログラムが処理するもの、の双方を含むものとする。   When accessing the flash memory, which is a block device, in byte units, a configuration is used in which read / write data is temporarily stored in a randomly accessible cache memory (Patent Document 1 and Patent Document 2). Here, the block device is a sector unit, a page unit, or the like exceeding a byte unit or a word unit, which is a unit of data size when the CPU (central processing unit) directly accesses the main memory (main storage device). This is a device that inputs and outputs data in units of a certain size. In the present application, the byte unit includes a 1-byte unit and a plurality of bytes. The byte unit includes the word unit. Moreover, in this application, data shall mean the information which a memory | storage device memorize | stores, and shall include both the program and what the program processes.

特開2004−220557号公報JP 2004-220557 A 特開平7−146820号公報Japanese Patent Laid-Open No. 7-146820

特許文献1及び特許文献2に記載されている構成では、アクセス時にキャッシュミスが発生した場合、フラッシュメモリに対してアクセスが実行される。フラッシュメモリより高速なデバイスを使用してキャッシュメモリを構成した場合、キャッシュヒットのときと、キャッシュミスのときとで、アクセス時間が異なることになる。アクセス時間にバラツキがある場合、例えば、大きなアクセス時間を前提としてアクセス後の処理を行うこととすれば、キャッシュヒットの場合の高速性を生かし切れない場合が生じる。一方、小さなアクセス時間を前提としてアクセス後の処理を行うこととすれば、CPUを長時間、待機状態としてしまうことになってしまうこと等が考えられる。すなわち、バイト単位でアクセスする場合にフラッシュメモリへのCPUからのアクセスあるいはアクセス後の処理を効率的に行うことができない場合があるという課題があった。   In the configurations described in Patent Document 1 and Patent Document 2, if a cache miss occurs during access, the flash memory is accessed. When the cache memory is configured using a device that is faster than the flash memory, the access time differs between a cache hit and a cache miss. If the access time varies, for example, if the post-access processing is performed on the assumption of a large access time, the high speed in the case of a cache hit may not be fully utilized. On the other hand, if the post-access processing is performed on the premise of a small access time, the CPU may be put in a standby state for a long time. That is, when accessing in units of bytes, there has been a problem that access to the flash memory from the CPU or processing after the access may not be performed efficiently.

本発明は、上記の事情を考慮してなされたものであり、ブロックデバイスに対してバイト単位でアクセスする場合にアクセスを効率的にすることができるメモリシステム、メモリシステムの制御方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and provides a memory system, a memory system control method, and a program capable of making access efficient when accessing a block device in units of bytes. The purpose is to do.

上記課題を解決するため、本発明のメモリシステムは、ブロック単位でデータが読み書きされる不揮発性メモリである第1記憶部と、前記第1記憶部とともにストレージデバイスを構成するものであって、バイト単位でデータの読み書きが可能でありかつ前記第1記憶部で読み書きされるデータを一時的に記憶可能な第2記憶部と、所定の論理アドレスに対してバイト単位でデータの読み書きを指示するデータ入出力指示部と、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能な場合には前記第2記憶部に対して同期アクセスし、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能でない場合には前記第1記憶部又は前記第2記憶部に対して非同期アクセスするデータ入出力制御部とを備えることを特徴とする。   In order to solve the above problems, a memory system according to the present invention comprises a first storage unit, which is a non-volatile memory in which data is read and written in block units, and a storage device together with the first storage unit. A second storage unit capable of reading and writing data in units and temporarily storing data to be read and written in the first storage unit, and data instructing reading and writing of data in byte units with respect to a predetermined logical address When the input / output instruction unit and the second storage unit can be accessed by the logical address without accessing the first storage unit, the second storage unit is synchronously accessed and the first storage unit is accessed. If the second storage unit is not accessible with the logical address without accessing the storage unit, the first storage unit or the second storage unit is not synchronized. Characterized in that it comprises a data input-output control unit for access.

また、本発明の他のメモリシステムは、前記第2記憶部が、不揮発性メモリであることを特徴とする。   In another memory system of the present invention, the second storage unit is a nonvolatile memory.

また、本発明の他のメモリシステムは、前記第2記憶部に対してメモリインタフェースが接続されていることを特徴とする。   In another memory system of the present invention, a memory interface is connected to the second storage unit.

また、本発明のメモリシステムの制御方法は、ブロック単位でデータが読み書きされる不揮発性メモリである第1記憶部と、前記第1記憶部とともにストレージデバイスを構成するものであって、バイト単位でデータの読み書きが可能でありかつ前記第1記憶部で読み書きされるデータを一時的に記憶可能な第2記憶部とを用い、データ入出力指示部によって所定の論理アドレスに対してバイト単位でデータの読み書きを指示し、データ入出力制御部によって前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能な場合には前記第2記憶部に対して同期アクセスし、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能でない場合には前記第1記憶部又は前記第2記憶部に対して非同期アクセスすることを特徴とするメモリシステムの制御方法。   The memory system control method of the present invention comprises a first storage unit that is a nonvolatile memory in which data is read and written in block units, and a storage device together with the first storage unit. Data is read and written in bytes for a predetermined logical address by a data input / output instruction unit using a second storage unit that can read and write data and that can temporarily store data read and written in the first storage unit When the data input / output control unit can access the second storage unit with the logical address without accessing the first storage unit, the second storage unit is synchronously accessed. If the logical address is not accessible to the second storage unit without accessing the first storage unit, the first storage unit or Control method for a memory system, characterized by asynchronous access to said second storage unit.

また、本発明のプログラムは、ブロック単位でデータが読み書きされる不揮発性メモリである第1記憶部と、前記第1記憶部とともにストレージデバイスを構成するものであって、バイト単位でデータの読み書きが可能でありかつ前記第1記憶部で読み書きされるデータを一時的に記憶可能な第2記憶部とを用い、データ入出力指示部によって所定の論理アドレスに対してバイト単位でデータの読み書きを指示する過程と、データ入出力制御部によって前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能な場合には前記第2記憶部に対して同期アクセスし、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能でない場合には前記第1記憶部又は前記第2記憶部に対して非同期アクセスする過程とをコンピュータに実行させることを特徴とする。   The program of the present invention comprises a first storage unit, which is a non-volatile memory in which data is read and written in block units, and a storage device together with the first storage unit, and is capable of reading and writing data in byte units. Using a second storage unit capable of temporarily storing data that can be read and written in the first storage unit, the data input / output instruction unit instructs to read / write data in units of bytes for a predetermined logical address And when the second storage unit can be accessed by the logical address without accessing the first storage unit by the data input / output control unit, the second storage unit is synchronously accessed, If the logical address is not accessible to the second storage unit without accessing the first storage unit, the first storage unit or the Characterized in that to execute the steps of asynchronous access to a computer with respect to second storage unit.

本発明によれば、データ入出力指示部が、所定の論理アドレスに対してバイト単位でデータの読み書きを指示した場合、データ入出力制御部が、第1記憶部にアクセスすることなく第2記憶部に対して指示された論理アドレスでアクセス可能なときには第2記憶部に対して同期アクセスし、アクセス可能でないときには第1記憶部又は第2記憶部に対して非同期アクセスする。この構成では、例えばデータの読み出し時に、第1記憶部にアクセスすることなく第2記憶部に対して指示された論理アドレスでアクセス可能な場合には、データ入出力指示部が第2記憶部からデータが読み出されるのを待機するので、データを読み出したときに例えば読み出したデータをすぐに利用することができる。他方、アクセス可能でない場合にはデータ入出力指示部は、第1記憶部又は第2記憶部からデータが読み出されるのを待機しないので、例えば他の処理を実行することができる。これらの特徴により、アクセス時間の差異に柔軟に対応させ、リソースの効率的な利用を容易に図ることができる。   According to the present invention, when the data input / output instruction unit instructs reading / writing of data in units of bytes to a predetermined logical address, the data input / output control unit performs the second storage without accessing the first storage unit. When the logical address instructed to the unit is accessible, the second storage unit is accessed synchronously, and when the access is not possible, the first storage unit or the second storage unit is asynchronously accessed. In this configuration, for example, when data is read, if the second storage unit can be accessed with the designated logical address without accessing the first storage unit, the data input / output instruction unit is transferred from the second storage unit. Since it waits for the data to be read, for example, the read data can be used immediately when the data is read. On the other hand, when the access is not possible, the data input / output instruction unit does not wait for the data to be read from the first storage unit or the second storage unit, so that other processing can be executed, for example. With these characteristics, it is possible to flexibly cope with a difference in access time and to easily use resources efficiently.

本発明の一実施形態のメモリシステムの基本的な構成例を示したブロック図である。1 is a block diagram illustrating a basic configuration example of a memory system according to an embodiment of the present invention. 図1に示したメモリシステム100の動作例を説明するためのフローチャートである。3 is a flowchart for explaining an operation example of the memory system 100 shown in FIG. 1. 図1に示したストレージデバイス3からデータを読み出す場合の処理の流れの一例を示したシーケンス図である。FIG. 3 is a sequence diagram illustrating an example of a processing flow when data is read from the storage device 3 illustrated in FIG. 1. 図1に示したストレージデバイス3からデータを読み出す場合の処理の流れの一例を示したシーケンス図である。FIG. 3 is a sequence diagram illustrating an example of a processing flow when data is read from the storage device 3 illustrated in FIG. 1. 図1に示したストレージデバイス3へデータを書き込む場合の処理の流れの一例を示したシーケンス図である。FIG. 3 is a sequence diagram illustrating an example of a processing flow when data is written to the storage device 3 illustrated in FIG. 1. 図1に示したストレージデバイス3へデータを書き込む場合の処理の流れの一例を示したシーケンス図である。FIG. 3 is a sequence diagram illustrating an example of a processing flow when data is written to the storage device 3 illustrated in FIG. 1. 図1に示したメモリシステム100のハードウェアの構成例を示したブロック図である。FIG. 2 is a block diagram illustrating a hardware configuration example of the memory system 100 illustrated in FIG. 1. 図1に示したメモリシステム100のハードウェアの他の構成例を示したブロック図である。FIG. 3 is a block diagram illustrating another configuration example of hardware of the memory system 100 illustrated in FIG. 1. 図1に示したメモリシステム100のハードウェアの他の構成例を示したブロック図である。FIG. 3 is a block diagram illustrating another configuration example of hardware of the memory system 100 illustrated in FIG. 1. 図1に示したメモリシステム100のハードウェアの他の構成例を示したブロック図である。FIG. 3 is a block diagram illustrating another configuration example of hardware of the memory system 100 illustrated in FIG. 1. 図7に示したメモリシステム100aの動作例を説明するための説明図である。FIG. 8 is an explanatory diagram for describing an operation example of the memory system 100 a illustrated in FIG. 7.

以下、図面を参照して本発明の実施形態について説明する。図1は、本発明の一実施形態のメモリシステムの基本的な構成例を示したブロック図である。図1に示したメモリシステム100は、データ入出力指示部1と、データ入出力制御部2と、ストレージデバイス3とを備える。そして、ストレージデバイス3は、第1記憶部4と、第2記憶部5とを備える。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a basic configuration example of a memory system according to an embodiment of the present invention. The memory system 100 illustrated in FIG. 1 includes a data input / output instruction unit 1, a data input / output control unit 2, and a storage device 3. The storage device 3 includes a first storage unit 4 and a second storage unit 5.

メモリシステム100は、例えば、パーソナルコンピュータ、モバイル情報端末、モバイル通信端末、サーバ、センサ端末、電気機器の制御装置等で用いられる情報処理装置の要素として構成することができる。本実施形態においてメモリシステム100は、所定のCPUによってOS(オペレーティングシステム)を含む所定のプログラムを実行することで、ストレージデバイス3に対してバイト単位でアクセスすることができる構成である。また、ストレージデバイス3に対してバイト単位でアクセスする場合には、ストレージデバイス3の各記憶領域に対して、OSカーネル等によって管理される仮想アドレス空間における論理アドレスが割り当てられる。CPUは論理アドレスを指定してストレージデバイス3の各記憶領域にアクセスすることができる。   The memory system 100 can be configured as an element of an information processing device used in, for example, a personal computer, a mobile information terminal, a mobile communication terminal, a server, a sensor terminal, a control device for an electrical device, and the like. In this embodiment, the memory system 100 is configured to be able to access the storage device 3 in byte units by executing a predetermined program including an OS (operating system) by a predetermined CPU. When the storage device 3 is accessed in byte units, a logical address in a virtual address space managed by the OS kernel or the like is assigned to each storage area of the storage device 3. The CPU can access each storage area of the storage device 3 by specifying a logical address.

第1記憶部4は、ブロック単位でデータが読み書きされる不揮発性メモリである。第1記憶部4は、例えば、NAND型フラッシュメモリを用いて構成することができる。第1記憶部4は、ブロック単位でデータが読み書き可能に構成されていればよく、例えばNOR型フラッシュメモリ等のバイト単位でランダムアクセスが可能なメモリを用いて構成してもよい。すなわち、不揮発性メモリの構造に限定はない。また、第1記憶部4は、ハードディスク等の磁気記憶装置であってもよい。   The first storage unit 4 is a non-volatile memory in which data is read and written in block units. The first storage unit 4 can be configured using, for example, a NAND flash memory. The first storage unit 4 only needs to be configured so that data can be read and written in units of blocks. For example, the first storage unit 4 may be configured using a memory that can be randomly accessed in units of bytes, such as a NOR flash memory. That is, the structure of the nonvolatile memory is not limited. The first storage unit 4 may be a magnetic storage device such as a hard disk.

第2記憶部5は、バイト単位でデータの読み書きが可能でありかつ第1記憶部4で読み書きされるデータを一時的に記憶可能なメモリである。第2記憶部5は、例えば、データ読み出し時に第1記憶部4からブロック単位で読み出したデータを一時記憶したり、データ書き込み時に第1記憶部4へ書き込むデータを書き込み前に一時記憶したりすることが可能である。すなわち、第2記憶部5は、第1記憶部4用のキャッシュメモリとして使用することができる。第2記憶部5は、DRAM(Dynamic Random Access Memory)、SRAM(Static RAM)等の揮発性メモリを用いて構成してもよいし、NOR型フラッシュメモリ、ReRAM(抵抗変化型メモリ)、MRAM(磁気抵抗メモリ)、FeRAM(強誘電体メモリ)、PCM(相変化メモリ)、STT(スピン注入メモリ)等の不揮発性メモリを用いて構成してもよい。第2記憶部5を不揮発性メモリで構成した場合、例えば電源遮断時等にデータを待避しなくてもよくなる。   The second storage unit 5 is a memory that can read and write data in byte units and can temporarily store data read and written by the first storage unit 4. For example, the second storage unit 5 temporarily stores data read in block units from the first storage unit 4 at the time of data reading, or temporarily stores data to be written to the first storage unit 4 at the time of data writing before writing. It is possible. That is, the second storage unit 5 can be used as a cache memory for the first storage unit 4. The second storage unit 5 may be configured using a volatile memory such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static RAM), or a NOR flash memory, a ReRAM (resistance change memory), an MRAM ( A non-volatile memory such as a magnetoresistive memory, FeRAM (ferroelectric memory), PCM (phase change memory), or STT (spin injection memory) may be used. When the second storage unit 5 is composed of a non-volatile memory, for example, data need not be saved when the power is shut off.

データ入出力指示部1は、ストレージデバイス3に割り当てられた所定の論理アドレスに対してバイト単位でデータの読み書きを指示する構成である。データ入出力指示部1は、CPUとそのCPUが実行するプログラムとを用いて構成することができ、そのプログラムは例えばOSカーネルの一部として構成することができる。あるいは、データ入出力指示部1を構成するプログラムは、アプリケーションの一部として、又はストレージデバイス3用のデバイスドライバの一部として構成されていてもよい。データ入出力指示部1は、OSが含む他のプログラム、アプリケーションプログラム等からストレージデバイス3に対するバイト単位でのアクセス(すなわちデータの読み出し又は書き込み)が発生あるいは要求された場合にデータの読み書きを指示する処理を実行する。   The data input / output instruction unit 1 is configured to instruct reading / writing of data in units of bytes with respect to a predetermined logical address assigned to the storage device 3. The data input / output instruction unit 1 can be configured using a CPU and a program executed by the CPU, and the program can be configured as a part of the OS kernel, for example. Alternatively, the program configuring the data input / output instruction unit 1 may be configured as a part of an application or a part of a device driver for the storage device 3. The data input / output instruction unit 1 instructs reading / writing of data when access (that is, reading or writing of data) in units of bytes to the storage device 3 is generated or requested from another program, application program, or the like included in the OS. Execute the process.

データ入出力指示部1がストレージデバイス3に割り当てられた所定の論理アドレスに対してデータの読み出し又は書き込みを指示した場合、データ入出力制御部2は次の処理を行う。すなわち、データ入出力制御部2は、第1記憶部4へのアクセスを行わなくても第2記憶部5に対して当該論理アドレスでアクセス可能な場合には第2記憶部5に対して同期アクセスし、第1記憶部4へアクセスしなければ第2記憶部5に対して当該論理アドレスでアクセス可能でない場合には第1記憶部4又は第2記憶部5に対して非同期アクセスする。ここで、第1記憶部4へのアクセスを行わなくても第2記憶部5に対して当該論理アドレスでアクセス可能な場合とは、データ読み出し時にはアクセス先の論理アドレスに対応するデータが第1記憶部4から読み出されるなどして既に第2記憶部5に格納されている場合である。また、データ書き込み時には第1記憶部4へのデータの書き戻しを行わなくても第2記憶部5に新たな領域を確保できる場合、又はアクセス先の論理アドレスに対応するデータが第2記憶部5に既に格納されている場合である。   When the data input / output instruction unit 1 instructs to read or write data to a predetermined logical address assigned to the storage device 3, the data input / output control unit 2 performs the following processing. That is, the data input / output control unit 2 synchronizes with the second storage unit 5 when the second storage unit 5 can be accessed with the logical address without accessing the first storage unit 4. If the first storage unit 4 is not accessed and the second storage unit 5 is not accessible with the logical address, the first storage unit 4 or the second storage unit 5 is asynchronously accessed. Here, when the second storage unit 5 can be accessed with the logical address without accessing the first storage unit 4, the data corresponding to the logical address of the access destination is the first when the data is read. This is a case where it is already stored in the second storage unit 5 by being read from the storage unit 4 or the like. Further, when data is written, a new area can be secured in the second storage unit 5 without writing back the data to the first storage unit 4, or the data corresponding to the logical address of the access destination is stored in the second storage unit. 5 is already stored.

また、第2記憶部5に対する同期アクセスとは、データ入出力指示部1を構成するCPU(あるいはプロセス)がアクセスを指示した後、アクセスが発生するまで待機するという第2記憶部5に対するアクセスである。ここで、アクセスの発生とは、第2記憶部5からのデータの読み出し又は第2記憶部5へのデータの書き込みの実行が開始あるいは終了したことを意味する。   The synchronous access to the second storage unit 5 is an access to the second storage unit 5 that waits until an access occurs after the CPU (or process) constituting the data input / output instruction unit 1 instructs the access. is there. Here, the occurrence of access means that execution of reading of data from the second storage unit 5 or writing of data to the second storage unit 5 has started or ended.

また、第1記憶部4又は第2記憶部5に対する非同期アクセスとは、データ入出力指示部1を構成するCPU(あるいはプロセス)がアクセスを指示した後、アクセスが発生するまで待機せずに、例えば他の処理を実行するという第1記憶部4又は第2記憶部5に対するアクセスである。すなわち、非同期アクセスによるデータ読み出し時には、データ入出力指示部1が、アクセスを指示した後、例えば他の処理を実行する。その一方、データ入出力制御部2は、並行して、例えば、以下の(A1)〜(A3)の処理、又は(B1)〜(B3)の処理を制御する。すなわち、(A1)第1記憶部4から当該論理アドレスに対応するデータをブロック単位で読み出して第2記憶部5に格納する(すなわちコピーする)とともに第2記憶部5に対して当該論理アドレスを割り当てる。(A2)次に、例えば、データ入出力指示部1からの問い合わせに応じて又はデータ入出力制御部2から自発的に、データ入出力制御部2からデータ入出力指示部1へデータが用意できたことを通知する。(A3)そして、第2記憶部5から当該論理アドレスに対応するデータをバイト単位で指示されたバイト数分読み出してCPUに対して出力する。あるいは、(B1)第1記憶部4から当該論理アドレスに対応するデータをブロック単位で読み出して例えば図示していないメインメモリ又はバッファメモリに格納するとともに、格納したメインメモリ又はバッファメモリの記憶領域と論理アドレスとの対応付けを行う。(B2)次に、例えば、データ入出力指示部1からの問い合わせに応じて又はデータ入出力制御部2から自発的に、データ入出力制御部2からデータ入出力指示部1へデータが用意できたことを通知する。(B3)そして、メインメモリ又はバッファメモリから当該論理アドレスに対応するデータをバイト単位で指示されたバイト数分読み出してCPUに対して出力する。上記の(A1)から(A3)の処理では、非同期アクセスによるデータの読み出し時に、一旦、第1記憶部4から第2記憶部5へとデータがコピーされ、その後、第2記憶部5からCPUへとデータが転送される。他方、(B1)から(B3)の処理では、非同期アクセスによるデータの読み出し時に、第1記憶部4からメインメモリ又はバッファメモリへとデータがコピーされ、メインメモリ又はバッファメモリからCPUへデータが転送される。(A1)〜(A3)の処理と、(B1)〜(B3)の処理とのどちらを使うのかは、例えば、ハードウェアの仕様等に応じて予め静的に決めておいてもよいし、メインメモリ等の使用状況等に応じて動的に切り替えるようにしてもよい。あるいは、例えば、(A1)から(A3)の処理を実行した後に(あるいは並行的に)、(B1)から(B3)の処理を実行して、同一ブロックのアクセスに対して次からは同期アクセスできるよう備えておくこともできる。   Asynchronous access to the first storage unit 4 or the second storage unit 5 means that after the CPU (or process) constituting the data input / output instruction unit 1 instructs access, it does not wait until the access occurs. For example, it is access to the first storage unit 4 or the second storage unit 5 to execute another process. That is, at the time of data reading by asynchronous access, the data input / output instruction unit 1 executes other processing, for example, after instructing access. On the other hand, the data input / output control unit 2 controls, for example, the following processes (A1) to (A3) or processes (B1) to (B3) in parallel. That is, (A1) data corresponding to the logical address is read from the first storage unit 4 in units of blocks and stored in the second storage unit 5 (that is, copied), and the logical address is assigned to the second storage unit 5 assign. (A2) Next, for example, data can be prepared from the data input / output control unit 2 to the data input / output instruction unit 1 in response to an inquiry from the data input / output instruction unit 1 or voluntarily from the data input / output control unit 2 Notify that. (A3) Then, the data corresponding to the logical address is read from the second storage unit 5 for the number of bytes specified in bytes, and is output to the CPU. Alternatively, (B1) data corresponding to the logical address is read from the first storage unit 4 in units of blocks and stored in, for example, a main memory or a buffer memory (not shown), and the storage area of the stored main memory or buffer memory and Corresponds to a logical address. (B2) Next, for example, data can be prepared from the data input / output control unit 2 to the data input / output instruction unit 1 in response to an inquiry from the data input / output instruction unit 1 or voluntarily from the data input / output control unit 2 Notify that. (B3) Then, the data corresponding to the logical address is read from the main memory or the buffer memory for the number of bytes specified in bytes and output to the CPU. In the processes (A1) to (A3), when data is read by asynchronous access, data is temporarily copied from the first storage unit 4 to the second storage unit 5, and then the second storage unit 5 performs CPU processing. Data is transferred to On the other hand, in the processing of (B1) to (B3), when data is read by asynchronous access, data is copied from the first storage unit 4 to the main memory or buffer memory, and the data is transferred from the main memory or buffer memory to the CPU. Is done. Whether to use the processing of (A1) to (A3) or the processing of (B1) to (B3) may be statically determined in advance according to, for example, hardware specifications, You may make it switch dynamically according to the use condition etc. of main memory. Or, for example, after executing the processing from (A1) to (A3) (or in parallel), the processing from (B1) to (B3) is executed to perform synchronous access from the next for the same block access. You can be prepared to do it.

また、第1記憶部4に対する非同期アクセスによるデータ書き込み時には、データ入出力指示部1が、アクセスを指示した後、例えば他の処理を実行する。その一方、データ入出力制御部2は、並行して、例えば、第2記憶部5で回収(あるいは開放)する領域を選択し、選択した領域のデータを第1記憶部4へ書き戻す処理を行う。その後、データ入出力制御部2は、確保した第2記憶部5内の所定の大きさの領域に対して当該論理アドレスに対応した所定の論理アドレスを割り当てる。そして、例えば、データ入出力指示部1からの問い合わせに応じて又はデータ入出力制御部2から自発的に、データ入出力制御部2からデータ入出力指示部1に対してデータの書き込み準備ができたことを通知する。そして、バイト単位で指示されたバイト数分のデータをCPUから第2記憶部5へと入力し、データ入出力制御部2は、第2記憶部5の当該論理アドレスに対応した領域にデータの書き込みを行う。   Further, when data is written to the first storage unit 4 by asynchronous access, the data input / output instruction unit 1 executes other processing, for example, after instructing access. On the other hand, the data input / output control unit 2 selects, for example, a region to be collected (or released) in the second storage unit 5 in parallel and writes back the data in the selected region to the first storage unit 4. Do. Thereafter, the data input / output control unit 2 assigns a predetermined logical address corresponding to the logical address to an area of a predetermined size in the secured second storage unit 5. Then, for example, in response to an inquiry from the data input / output instruction unit 1 or from the data input / output control unit 2, the data input / output control unit 2 is ready to write data to the data input / output instruction unit 1. Notify that. Then, the data for the number of bytes specified in bytes is input from the CPU to the second storage unit 5, and the data input / output control unit 2 stores the data in the area corresponding to the logical address of the second storage unit 5. Write.

あるいは、第1記憶部4に対する非同期アクセスによるデータ書き込み時には、データ入出力指示部1が、アクセスを指示した後、例えば他の処理を実行する。その一方、データ入出力制御部2は、並行して、例えば、第2記憶部5に当該論理アドレスに対応するブロック単位分の領域を確保し、第1記憶部4から第2記憶部5へ当該論理アドレスに対応するデータをブロック単位で読み出す(すなわちコピーする)とともに第2記憶部5に対して当該論理アドレスに対応した論理アドレスを割り当てる。そして、例えば、データ入出力指示部1からの問い合わせに応じて又はデータ入出力制御部2から自発的に、データ入出力制御部2からデータ入出力指示部1に対してデータの書き込み準備ができたことを通知する。そして、バイト単位で指示されたバイト数分のデータをCPUから第2記憶部5へ入力し、データ入出力制御部2は、第2記憶部5の当該論理アドレスに対してデータの書き込みを行う。   Alternatively, when data is written to the first storage unit 4 by asynchronous access, the data input / output instruction unit 1 performs other processing, for example, after instructing access. On the other hand, the data input / output control unit 2 reserves, for example, a block unit area corresponding to the logical address in the second storage unit 5 in parallel, and transfers from the first storage unit 4 to the second storage unit 5. Data corresponding to the logical address is read (that is, copied) in units of blocks, and a logical address corresponding to the logical address is assigned to the second storage unit 5. Then, for example, in response to an inquiry from the data input / output instruction unit 1 or from the data input / output control unit 2, the data input / output control unit 2 is ready to write data to the data input / output instruction unit 1. Notify that. Then, data corresponding to the number of bytes specified in units of bytes is input from the CPU to the second storage unit 5, and the data input / output control unit 2 writes data to the logical address in the second storage unit 5. .

なお、データ入出力制御部2は、例えば、CPUとそのCPUが実行するプログラムとを用いて構成したり、図示していないストレージデバイス3内に設けたストレージデバイス用のコントローラ等のハードウェアを用いて構成したり、あるいはそれらを組み合わせて用いて構成したりすることができる。そのプログラムは例えばOSカーネルの一部として構成したり、ストレージデバイス3用のデバイスドライバの一部として構成したりすることができる。   The data input / output control unit 2 is configured using, for example, a CPU and a program executed by the CPU, or hardware such as a controller for a storage device provided in the storage device 3 (not shown). Or can be configured by combining them. The program can be configured, for example, as a part of the OS kernel or as a part of a device driver for the storage device 3.

また、論理アドレスと、第2記憶部5の物理アドレス又は第1記憶部4のブロックアドレス(例えばセクタアドレス、ページアドレス等)との対応付けや変換、あるいは、非同期アクセス時の図示していないメインメモリやバッファメモリの物理アドレスとの対応付けや変換は、例えば、OSカーネルで行ってもよいし、ハードウェアを用いて行ってもよい。また、論理アドレスと物理アドレス及びブロックアドレスとを対応付けるための変換テーブルは、例えば、第2記憶部5に記憶してもよいし、図示していないメインメモリ等の他のメモリに記憶してもよい。   Further, the correspondence between the logical address and the physical address of the second storage unit 5 or the block address (for example, sector address, page address, etc.) of the first storage unit 4 or the main address (not shown) at the time of asynchronous access The association and conversion with the physical addresses of the memory and buffer memory may be performed by, for example, the OS kernel or hardware. Further, the conversion table for associating the logical address with the physical address and the block address may be stored in the second storage unit 5, for example, or stored in another memory such as a main memory (not shown). Good.

また、第2記憶部5への論理アドレスの割り当てや、第1記憶部4から第2記憶部5へのデータの読み込み、第2記憶部5から第1記憶部4へのデータの書き出し、あるいは、第1記憶部4から図示していないメインメモリ又はバッファメモリへのデータの読み出し等の処理は、例えばデバイスドライバで実行したり、ストレージデバイス3用のコントローラ等のハードウェアを用いて制御したりすることができる。   Also, logical address assignment to the second storage unit 5, reading of data from the first storage unit 4 to the second storage unit 5, writing of data from the second storage unit 5 to the first storage unit 4, or Processing such as reading of data from the first storage unit 4 to the main memory or buffer memory (not shown) is executed by, for example, a device driver or controlled using hardware such as a controller for the storage device 3. can do.

次に、図2を参照して、メモリシステム100の動作例について説明する。ストレージデバイス3に対してバイト単位でアクセスする場合に、ストレージデバイス3に対するデータのアクセスが発生したとき、データ入出力指示部1は、アクセス先の論理アドレスを指定してデータの読み出し又は指定したデータの書き込みの実行をデータ入出力制御部2に対して指示する(ステップS1)。   Next, an operation example of the memory system 100 will be described with reference to FIG. When accessing the storage device 3 in byte units, when data access to the storage device 3 occurs, the data input / output instruction unit 1 specifies the logical address of the access destination and reads the data or specifies the specified data Is instructed to the data input / output control unit 2 (step S1).

データ入出力制御部2は、指示された論理アドレスに対するアクセスを第1記憶部4に対するアクセス無しで第2記憶部5に対して実行可能であるか否かを判定する(ステップS2)。読み出し時には、ステップS2で、データ入出力制御部2は、第2記憶部5内にアクセス先の論理アドレスに対応する第1記憶部4内のブロックがすでに格納されていた場合に、第1記憶部4にアクセスせずに指示された論理アドレスで第2記憶部5にアクセス可能であると判定する。また、書き込み時には、ステップS2で、データ入出力制御部2は、第2記憶部5内に第1記憶部4へのアクセス無しで空き領域を確保することができる場合、又は、第2記憶部5内にアクセス先の論理アドレスに対応する第1記憶部4内のブロックがすでに格納されていた場合、第1記憶部4にアクセスせずに指示された論理アドレスで第2記憶部5にアクセス可能であると判定する。   The data input / output control unit 2 determines whether or not access to the instructed logical address can be performed on the second storage unit 5 without access to the first storage unit 4 (step S2). At the time of reading, in step S2, the data input / output control unit 2 performs the first storage when the block in the first storage unit 4 corresponding to the logical address of the access destination has already been stored in the second storage unit 5. It is determined that the second storage unit 5 can be accessed with the designated logical address without accessing the unit 4. At the time of writing, in step S2, the data input / output control unit 2 can secure a free area in the second storage unit 5 without accessing the first storage unit 4, or the second storage unit If the block in the first storage unit 4 corresponding to the logical address of the access destination has already been stored in 5, the second storage unit 5 is accessed with the indicated logical address without accessing the first storage unit 4. Determine that it is possible.

指示された論理アドレスに対するアクセスを第1記憶部4に対するアクセス無しで第2記憶部5に対して実行可能である場合(ステップS2で「YES」の場合)、データ入出力制御部2は、上述したようにして第2記憶部5に対して同期アクセスする(ステップS3)。一方、指示された論理アドレスに対するアクセスを第1記憶部4に対するアクセス無しでは第2記憶部5に対して実行できない場合(ステップS2で「NO」の場合)、データ入出力制御部2は、上述したようにして第1記憶部4又は第2記憶部5に対して非同期アクセスする(ステップS4)。   When the access to the instructed logical address can be performed on the second storage unit 5 without accessing the first storage unit 4 (in the case of “YES” in step S2), the data input / output control unit 2 In this manner, the second storage unit 5 is accessed synchronously (step S3). On the other hand, when the access to the instructed logical address cannot be performed on the second storage unit 5 without access to the first storage unit 4 (in the case of “NO” in step S2), the data input / output control unit 2 As described above, the first storage unit 4 or the second storage unit 5 is accessed asynchronously (step S4).

次に図3から図6を参照して図1に示したメモリシステム100における処理及び情報の流れについて説明する。図3は、図1に示したストレージデバイス3からデータを読み出す場合の同期アクセスにおける処理の流れの一例を示したシーケンス図である。データ入出力指示部1が、データ入出力制御部2に対して、論理アドレスAからのバイト単位のデータの読み出しを指示すると(S101)、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5からデータを読み出し可能であるか否かを判定する(S102)。この例では、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5からデータを読み出し可能であると判定するので(S102で「YES」)、第2記憶部5に対して論理アドレスAに対応する物理アドレスからバイト単位でデータを読み出す指示を入力する(S103)。次に、第2記憶部5は、指示されたデータをバイト単位で出力する(S105及びS106)。この例では、データ入出力指示部1は、S101で指示を出力してから、S105でデータが出力されるまで待機状態となる。   Next, processing and information flow in the memory system 100 shown in FIG. 1 will be described with reference to FIGS. FIG. 3 is a sequence diagram showing an example of a flow of processing in synchronous access when data is read from the storage device 3 shown in FIG. When the data input / output instruction unit 1 instructs the data input / output control unit 2 to read data in byte units from the logical address A (S101), the data input / output control unit 2 sends the data to the first storage unit 4. It is determined whether or not data can be read from the second storage unit 5 without access (S102). In this example, since the data input / output control unit 2 determines that data can be read from the second storage unit 5 without accessing the first storage unit 4 (“YES” in S102), the second storage unit 5 is input to read data in byte units from the physical address corresponding to the logical address A (S103). Next, the second storage unit 5 outputs the instructed data in byte units (S105 and S106). In this example, the data input / output instruction unit 1 is in a standby state after outputting an instruction in S101 until data is output in S105.

図4は、図1に示したストレージデバイス3からデータを読み出す場合の非同期アクセスにおける処理の流れの一例を示したシーケンス図である。ただし、図4は上述した(B1)から(B3)の処理の一例を示している。(A1)から(A3)の処理の場合、以下の説明および図4において、ステップS202を除き、第2記憶部5を、図示していないメインメモリ又はバッファメモリと読み替える必要がある。いま、データ入出力指示部1が、データ入出力制御部2に対して、論理アドレスAからのバイト単位のデータの読み出しを指示すると(S201)、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5からデータを読み出し可能であるか否かを判定する(S202)。この例では、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5からデータを読み出し可能ではないと判定するので(S202で「NO」)、データ入出力指示部1に対して同期アクセスによる読み出しが不可である旨の通知を行うととともに(S203)、第1記憶部4に対して、論理アドレスAに対応するブロックアドレスからブロック単位でデータを読み出すよう所定の指示を行う(S204)。データ入出力制御部2は、第1記憶部4が出力したデータを、第2記憶部5の所定の領域に格納する制御を行う(S205及びS206)。なお、S204からS206の処理は、複数回繰り返して行ってもよいし、あるいは、第1記憶部4から読み出されたデータを第2記憶部5に直接転送するような制御を行ってもよい。   FIG. 4 is a sequence diagram showing an example of the flow of processing in asynchronous access when data is read from the storage device 3 shown in FIG. However, FIG. 4 shows an example of the processes (B1) to (B3) described above. In the case of the processes (A1) to (A3), in the following description and FIG. 4, it is necessary to replace the second storage unit 5 with a main memory or a buffer memory (not shown) except for step S202. Now, when the data input / output instruction unit 1 instructs the data input / output control unit 2 to read data in byte units from the logical address A (S201), the data input / output control unit 2 receives the first storage unit. It is determined whether or not data can be read from the second storage unit 5 without accessing 4 (S202). In this example, since the data input / output control unit 2 determines that the data cannot be read from the second storage unit 5 without accessing the first storage unit 4 (“NO” in S202), the data input / output instruction The unit 1 is notified that reading by synchronous access is not possible (S203), and the first storage unit 4 is predetermined to read data in block units from the block address corresponding to the logical address A. Is instructed (S204). The data input / output control unit 2 performs control to store the data output from the first storage unit 4 in a predetermined area of the second storage unit 5 (S205 and S206). Note that the processing from S204 to S206 may be repeated a plurality of times, or control may be performed such that data read from the first storage unit 4 is directly transferred to the second storage unit 5. .

次に、データ入出力制御部2は、データ入出力指示部1に対してデータの読み出しが可能になった旨の通知を行う(S207)。通知を受けたデータ入出力指示部1が、データの出力指示を行うと(S208)。データ入出力制御部2は、第2記憶部5に対して論理アドレスAに対応する物理アドレスからバイト単位でデータを読み出す指示を入力する(S209)。次に、第2記憶部5は、指示されたデータをバイト単位で出力する(S110及びS211)。この例では、データ入出力指示部1は、S201で指示を出力してから、S203でデータが同期アクセスによる読み出し不可であるとの通知を受けるまで待機状態となる。   Next, the data input / output control unit 2 notifies the data input / output instruction unit 1 that the data can be read (S207). Upon receiving the notification, the data input / output instruction unit 1 issues a data output instruction (S208). The data input / output control unit 2 inputs an instruction to read data in byte units from the physical address corresponding to the logical address A to the second storage unit 5 (S209). Next, the second storage unit 5 outputs the instructed data in units of bytes (S110 and S211). In this example, after the data input / output instruction unit 1 outputs the instruction in S201, the data input / output instruction unit 1 is in a standby state until receiving a notification in S203 that the data cannot be read by synchronous access.

図5は、図1に示したストレージデバイス3へデータを書き込む場合の同期アクセスにおける処理の流れの一例を示したシーケンス図である。データ入出力指示部1が、データ入出力制御部2に対して、論理アドレスAへのバイト単位のデータの書き込みを指示すると(S301)、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5へデータを書き込み可能であるか否かを判定する(S302)。この例では、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5へデータを書き込み可能であると判定するので(S302で「YES」)、第2記憶部5に対して論理アドレスAに対応する物理アドレスへバイト単位でデータを書き込む指示を入力する(S303)。次に、第2記憶部5は、指示されたデータをバイト単位で入力し、書き込みが完了すると書き込み成功通知を出力する(S304及びS305)。次に、データ入出力制御部2は、データを書き込んだ第2記憶部5の領域について当該領域を開放する際に第1記憶部4への書き戻しが必要である旨の設定を行う(S306)。この例では、データ入出力指示部1は、S301で指示を出力してから、S305でデータ書き込みの成功通知がなされるまで待機状態となる。   FIG. 5 is a sequence diagram showing an example of the flow of processing in synchronous access when data is written to the storage device 3 shown in FIG. When the data input / output instruction unit 1 instructs the data input / output control unit 2 to write data in units of bytes to the logical address A (S301), the data input / output control unit 2 sends the data to the first storage unit 4. It is determined whether or not data can be written to the second storage unit 5 without access (S302). In this example, since the data input / output control unit 2 determines that data can be written to the second storage unit 5 without accessing the first storage unit 4 (“YES” in S302), the second storage unit An instruction to write data in units of bytes to the physical address corresponding to the logical address A is input to 5 (S303). Next, the second storage unit 5 inputs the instructed data in units of bytes, and outputs writing success notification when writing is completed (S304 and S305). Next, the data input / output control unit 2 makes a setting indicating that it is necessary to write back to the first storage unit 4 when the region of the second storage unit 5 into which the data has been written is released (S306). ). In this example, after the data input / output instruction unit 1 outputs an instruction in S301, the data input / output instruction unit 1 is in a standby state until a notification of successful data writing is made in S305.

図6は、図1に示したストレージデバイス3へデータを書き込む場合の非同期アクセスにおける処理の流れの一例を示したシーケンス図である。データ入出力指示部1が、データ入出力制御部2に対して、論理アドレスAへのバイト単位のデータの書き込みを指示すると(S401)、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5へデータを書き込み可能であるか否かを判定する(S402)。この例では、第2記憶部5に空き領域が無いこととすると、データ入出力制御部2は、第1記憶部4へのアクセス無しで第2記憶部5へデータを書き込み可能ではないと判定するので(S402で「NO」)、第2記憶部5に対して開放する領域を指定し、データの読み出しを指示する(S404)。データ入出力制御部2は、第2記憶部5からデータが出力されると(S405)、出力されたデータを第1記憶部4へ書き戻すための制御を行う(S406)。S406でデータ入出力制御部2は、書き戻しが完了したら開放した領域に対して論理アドレスAに対応した論理アドレスを割り当てる。次に、データ入出力制御部2は、第2記憶部5に対して論理アドレスAに対応する物理アドレスへバイト単位でデータを書き込む指示を入力する(S407)。次に、第2記憶部5は、指示されたデータをバイト単位で入力し、書き込みが完了すると書き込み成功通知を出力する(S408及びS409)。次に、データ入出力制御部2は、データを書き込んだ第2記憶部5の領域について当該領域を開放する際に第1記憶部4への書き戻しが必要である旨の設定を行う(S410)。なお、S404からS406の処理は、複数回繰り返して行ってもよいし、あるいは、第2記憶部5から読み出されたデータを第1記憶部4に直接転送するような制御を行ってもよい。この例では、データ入出力指示部1が、S401で指示を出力してから、S403で同期アクセスによる書き込みが不可である旨を示す通知をうけるまで待機状態となる。   FIG. 6 is a sequence diagram showing an example of the flow of processing in asynchronous access when data is written to the storage device 3 shown in FIG. When the data input / output instruction unit 1 instructs the data input / output control unit 2 to write data in units of bytes to the logical address A (S401), the data input / output control unit 2 sends the data to the first storage unit 4. It is determined whether or not data can be written to the second storage unit 5 without access (S402). In this example, if there is no free space in the second storage unit 5, the data input / output control unit 2 determines that data cannot be written to the second storage unit 5 without accessing the first storage unit 4. Therefore (NO in S402), an area to be released is specified for the second storage unit 5, and data reading is instructed (S404). When data is output from the second storage unit 5 (S405), the data input / output control unit 2 performs control for writing the output data back to the first storage unit 4 (S406). In S406, the data input / output control unit 2 assigns a logical address corresponding to the logical address A to the released area when the write back is completed. Next, the data input / output control unit 2 inputs an instruction to write data in byte units to the physical address corresponding to the logical address A to the second storage unit 5 (S407). Next, the second storage unit 5 inputs the instructed data in units of bytes, and when writing is completed, outputs a writing success notification (S408 and S409). Next, the data input / output control unit 2 makes a setting indicating that it is necessary to write back to the first storage unit 4 when the region of the second storage unit 5 in which the data is written is released (S410). ). Note that the processing from S404 to S406 may be repeated a plurality of times, or control may be performed such that data read from the second storage unit 5 is directly transferred to the first storage unit 4. . In this example, after the data input / output instruction unit 1 outputs an instruction in S401, the data input / output instruction unit 1 is in a standby state until receiving a notification indicating that writing by synchronous access is impossible in S403.

本実施形態では、データ入出力指示部1が、ストレージデバイス3に割り当てられた所定の論理アドレスに対してバイト単位でデータの読み書きを指示した場合、データ入出力制御部2が、次の処理を行う。すなわち、データ入出力制御部2は、第1記憶部4にアクセスすることなく第2記憶部5に対して指示された論理アドレスでアクセス可能なときには第2記憶部5に対して同期アクセスし、アクセス可能ではないときには第1記憶部4又は第2記憶部5に対して非同期アクセスする。この構成では、例えばデータの読み出し時に、第1記憶部4にアクセスすることなく第2記憶部5に対して指示された論理アドレスでアクセス可能な場合には、データ入出力指示部1が第2記憶部5からデータが読み出されるのを待機するので、データを読み出したときに例えば読み出したデータをすぐに利用することができる。他方、アクセス可能でない場合にはデータ入出力指示部1は、データが読み出されるのを待機しないので、例えば他の処理を実行することができる。これらの特徴により、リソースの効率的な利用を容易に図ることができる。   In this embodiment, when the data input / output instruction unit 1 instructs reading / writing of data in units of bytes to a predetermined logical address assigned to the storage device 3, the data input / output control unit 2 performs the following processing. Do. That is, when the data input / output control unit 2 can access the second storage unit 5 without accessing the first storage unit 4 with the designated logical address, the data input / output control unit 2 accesses the second storage unit 5 synchronously, When the access is not possible, the first storage unit 4 or the second storage unit 5 is asynchronously accessed. In this configuration, for example, when the data input / output instruction unit 1 can access the second storage unit 5 without accessing the first storage unit 4 without accessing the first storage unit 4 using the logical address specified, Since it waits for data to be read from the storage unit 5, for example, the read data can be used immediately when the data is read. On the other hand, when the access is not possible, the data input / output instruction unit 1 does not wait for the data to be read, and thus can execute other processes, for example. With these features, efficient use of resources can be facilitated.

次に、図7から図10を参照して、図1に示したメモリシステム100のハードウェアの構成例について説明する。図7に示したメモリシステム100aは、CPU10と、チップセット20と、ストレージデバイス30と、メモリインタフェース40と、I/O(入出力)インタフェース50とを備える。そして、ストレージデバイス30は、コントローラ31と、キャッシュメモリ32と、フラッシュメモリ・ディスクドライブ33とを備える。   Next, a hardware configuration example of the memory system 100 illustrated in FIG. 1 will be described with reference to FIGS. The memory system 100a illustrated in FIG. 7 includes a CPU 10, a chip set 20, a storage device 30, a memory interface 40, and an I / O (input / output) interface 50. The storage device 30 includes a controller 31, a cache memory 32, and a flash memory / disk drive 33.

図7に示したストレージデバイス30が、図1に示したストレージデバイス3に対応する構成である。図7に示したキャッシュメモリ32が、図1に示した第2記憶部5に対応する構成である。図7に示したフラッシュメモリ・ディスクドライブ33が、図1に示した第1記憶部4に対応する構成である。そして、図7に示したCPU10及びCPU10が実行するプログラムやコントローラ31が、図1に示したデータ入出力指示部1又はデータ入出力制御部2に対応する構成である。   The storage device 30 shown in FIG. 7 has a configuration corresponding to the storage device 3 shown in FIG. The cache memory 32 shown in FIG. 7 has a configuration corresponding to the second storage unit 5 shown in FIG. The flash memory disk drive 33 shown in FIG. 7 corresponds to the first storage unit 4 shown in FIG. The CPU 10 and the program executed by the CPU 10 and the controller 31 shown in FIG. 7 correspond to the data input / output instruction unit 1 or the data input / output control unit 2 shown in FIG.

メモリインタフェース40は、例えばDRAM等の揮発性メモリで使用されている所定の規格のインタフェースである。I/Oインタフェース50は、例えばSATA(Serial ATA)、SAS(Serial Attached SCSI)、PCI Expres(登録商標)等のI/Oインタフェースである。   The memory interface 40 is a predetermined standard interface used in a volatile memory such as a DRAM. The I / O interface 50 is an I / O interface such as SATA (Serial ATA), SAS (Serial Attached SCSI), or PCI Express (registered trademark).

また、チップセット20は、CPU20にI/Oインタフェース50等を接続するための制御回路である。なお、図7に示した例では、メモリインタフェース40をCPU10に直接接続しているが、メモリインタフェース40はチップセット20を介してCPU10に接続されていてもよい。   The chip set 20 is a control circuit for connecting the I / O interface 50 and the like to the CPU 20. In the example shown in FIG. 7, the memory interface 40 is directly connected to the CPU 10, but the memory interface 40 may be connected to the CPU 10 via the chipset 20.

コントローラ31は、I/Oインタフェース50を介してCPU10との間で所定の制御信号やデータ信号を入出力することで、CPU10とキャッシュメモリ32又はフラッシュメモリ・ディスクドライブ33との間で例えば所定のセクタ単位でデータを入出力する。また、キャッシュメモリ32は、メモリインタフェース40を介してCPU10に接続されていて、CPU10はキャッシュメモリ32に対してメモリインタフェース40を介してアクセスすることができる。また、コントローラ31は、キャッシュメモリ32とフラッシュメモリ・ディスクドライブ33との間のデータ転送を制御する。   The controller 31 inputs / outputs predetermined control signals and data signals to / from the CPU 10 via the I / O interface 50, for example, between the CPU 10 and the cache memory 32 or the flash memory / disk drive 33. Input / output data in sectors. The cache memory 32 is connected to the CPU 10 via the memory interface 40, and the CPU 10 can access the cache memory 32 via the memory interface 40. The controller 31 controls data transfer between the cache memory 32 and the flash memory / disk drive 33.

メモリシステム100aでは、図2等を参照して説明した同期アクセスをメモリインタフェース40を介して実行し、また、非同期アクセスをI/Oインタフェース50又はメモリインタフェース40を介して実行することができる。したがって、メモリシステム100aでは、メモリインタフェース40を介してキャッシュメモリ32にアクセスすることで、I/Oインタフェース50を介してキャッシュメモリ32にアクセスする場合と比較して、データ入出力の際に使用されるソフトウェアの階層を容易に少なくすることができ、アクセスの高速化を図ったり、CPU負荷を小さくしたりすることができる。   In the memory system 100a, the synchronous access described with reference to FIG. 2 and the like can be executed via the memory interface 40, and the asynchronous access can be executed via the I / O interface 50 or the memory interface 40. Therefore, in the memory system 100a, the cache memory 32 is accessed via the memory interface 40, and is used for data input / output as compared with the case where the cache memory 32 is accessed via the I / O interface 50. Therefore, it is possible to easily reduce the number of software hierarchies, speed up access, and reduce the CPU load.

次に、図8を参照して図1に示したメモリシステム100の他のハードウェアの構成例について説明する。図8に示したメモリシステム100bは、CPU10と、チップセット20と、ストレージデバイス30aと、メモリインタフェース40と、I/Oインタフェース50とを備える。そして、ストレージデバイス30aは、キャッシュメモリ32と、フラッシュメモリ・ディスクドライブ33とを備える。図8に示したメモリシステム100bは、図7に示したメモリシステム100aと比較して、ストレージデバイス30aにおいてコントローラ31が省略されるとともに、フラッシュメモリ・ディスクドライブ33がI/Oインタフェース50に直接接続されている点が異なっている。なお、図8において、図7に示したものに対応する構成には同一の符号をつけて説明を省略する。   Next, another hardware configuration example of the memory system 100 shown in FIG. 1 will be described with reference to FIG. The memory system 100b illustrated in FIG. 8 includes a CPU 10, a chip set 20, a storage device 30a, a memory interface 40, and an I / O interface 50. The storage device 30 a includes a cache memory 32 and a flash memory / disk drive 33. Compared with the memory system 100a shown in FIG. 7, the memory system 100b shown in FIG. 8 omits the controller 31 in the storage device 30a and connects the flash memory disk drive 33 directly to the I / O interface 50. Is different. In FIG. 8, the components corresponding to those shown in FIG.

図8に示したメモリシステム100bでは、例えば、キャッシュメモリ32とフラッシュメモリ・ディスクドライブ33との間のデータ転送を、CPU10が実行するプログラムであるストレージデバイス30a用のデバイスドライバによって制御することができる。   In the memory system 100b shown in FIG. 8, for example, data transfer between the cache memory 32 and the flash memory / disk drive 33 can be controlled by a device driver for the storage device 30a, which is a program executed by the CPU 10. .

次に、図9を参照して図1に示したメモリシステム100の他のハードウェアの構成例について説明する。図9に示したメモリシステム100cは、CPU10と、チップセット20と、ストレージデバイス30bと、メモリインタフェース40とを備える。そして、ストレージデバイス30bは、コントローラ31bと、キャッシュメモリ32と、フラッシュメモリ・ディスクドライブ33とを備える。図9に示したメモリシステム100cは、図7に示したメモリシステム100aと比較して、I/Oインタフェース50が省略されるとともに、コントローラ31bにおいてI/Oインタフェース50に対する接続機能が省略されている。なお、図9において、図7に示したものに対応する構成には同一の符号をつけて説明を省略する。   Next, another hardware configuration example of the memory system 100 shown in FIG. 1 will be described with reference to FIG. The memory system 100c illustrated in FIG. 9 includes a CPU 10, a chip set 20, a storage device 30b, and a memory interface 40. The storage device 30b includes a controller 31b, a cache memory 32, and a flash memory / disk drive 33. Compared to the memory system 100a shown in FIG. 7, the memory system 100c shown in FIG. 9 omits the I / O interface 50 and omits the connection function to the I / O interface 50 in the controller 31b. . In FIG. 9, the same reference numerals are given to the components corresponding to those shown in FIG.

コントローラ31bは、キャッシュメモリ32とフラッシュメモリ・ディスクドライブ33との間のデータ転送を制御する。また、メモリシステム100cでは、CPU10とフラッシュメモリ・ディスクドライブ33との間の所定のセクタ単位でのデータ入出力は、例えば、キャッシュメモリ32を介して実行することができる。   The controller 31 b controls data transfer between the cache memory 32 and the flash memory / disk drive 33. In the memory system 100 c, data input / output between the CPU 10 and the flash memory / disk drive 33 in a predetermined sector unit can be executed via the cache memory 32, for example.

次に、図10を参照して図1に示したメモリシステム100の他のハードウェアの構成例について説明する。図10に示したメモリシステム100dは、CPU10と、チップセット20と、ストレージデバイス30cと、I/Oインタフェース50と、I/Oインタフェース60とを備える。そして、ストレージデバイス30cは、コントローラ31と、キャッシュメモリ32cと、フラッシュメモリ・ディスクドライブ33とを備える。図10に示したメモリシステム100dは、図7に示したメモリシステム100aと比較して、メモリインタフェース40に代えてI/Oインタフェース60が設けられている点と、CPU10とキャッシュメモリ32cとの間のデータの入出力が、I/Oインタフェース60及びチップセット20を介して実行される点とが異なっている。なお、図10において、図7に示したものに対応する構成には同一の符号をつけて説明を省略する。   Next, another hardware configuration example of the memory system 100 shown in FIG. 1 will be described with reference to FIG. A memory system 100d illustrated in FIG. 10 includes a CPU 10, a chip set 20, a storage device 30c, an I / O interface 50, and an I / O interface 60. The storage device 30 c includes a controller 31, a cache memory 32 c, and a flash memory / disk drive 33. The memory system 100d shown in FIG. 10 is different from the memory system 100a shown in FIG. 7 in that an I / O interface 60 is provided instead of the memory interface 40, and between the CPU 10 and the cache memory 32c. This is different from the point that data input / output is executed via the I / O interface 60 and the chip set 20. In FIG. 10, the same reference numerals are given to the components corresponding to those shown in FIG.

メモリシステム100dでは、図2等を参照して説明した同期アクセスをI/Oインタフェース60を介して実行し、また、非同期アクセスをI/Oインタフェース50を介して実行することができる。したがって、メモリシステム100dでは、例えばI/Oインタフェース60を、I/Oインタフェース50より高速なI/Oインタフェースとすることで、I/Oインタフェースの能力を適切に生かすことができる。   In the memory system 100d, the synchronous access described with reference to FIG. 2 and the like can be executed via the I / O interface 60, and the asynchronous access can be executed via the I / O interface 50. Therefore, in the memory system 100d, for example, by making the I / O interface 60 an I / O interface faster than the I / O interface 50, the capability of the I / O interface can be appropriately utilized.

次に、図11を参照して、図7に示したメモリシステム100aにおけるキャッシュメモリ32と、仮想メモリ空間との対応関係について説明する。図11において、CPU10がアクセスする仮想メモリ空間80は、フラッシュメモリ・ディスクドライブ33の記憶領域の一部又は全部に対応するように設定される。また、キャッシュメモリ32は、一定の大きさの記憶領域であるページフレーム32−1、32−2、32−3、…を単位として管理される。ページフレーム32−1、32−2、32−3、…の大きさは、例えばフラッシュメモリ・ディスクドライブ33のデータアクセス単位であるブロック単位と同一の大きさとしてもよいし、異なる大きさとしてもよい。ただし、以下ではブロック単位とページフレームとのサイズが同一である場合について説明を行う。なお、図8〜図10に示したメモリシステム100b〜100dにおいてもキャッシュメモリ32又は32cと仮想メモリ空間との対応関係については同様である。   Next, a correspondence relationship between the cache memory 32 and the virtual memory space in the memory system 100a illustrated in FIG. 7 will be described with reference to FIG. In FIG. 11, the virtual memory space 80 accessed by the CPU 10 is set so as to correspond to a part or all of the storage area of the flash memory / disk drive 33. Further, the cache memory 32 is managed in units of page frames 32-1, 32-2, 32-3,..., Which are storage areas of a certain size. The size of the page frames 32-1, 32-2, 32-3,... May be the same as or different from the block unit that is the data access unit of the flash memory / disk drive 33, for example. Good. However, a case where the block unit and the page frame have the same size will be described below. The correspondence relationship between the cache memory 32 or 32c and the virtual memory space is the same in the memory systems 100b to 100d shown in FIGS.

CPU10がストレージデバイス30に対してバイト単位で、メインメモリへのアクセスと同様にしてアクセスする場合(このアクセス方式はXIP(eXecute-In-Place)と呼ばれる)、フラッシュメモリ・ディスクドライブ33及びキャッシュメモリ32に対する論理アドレスの割り当ては、例えば、OSカーネルのファイルシステムによって行うことができる。ただし、ブロック単位でアクセスが行われるブロックデバイスであるフラッシュメモリ・ディスクドライブ33に対しては、CPU10からはバイト単位で直接アクセスすることはできないため、次のようにしてフラッシュメモリ・ディスクドライブ33のデータを例えばキャッシュメモリ32へコピーした後にCPU10からキャッシュメモリ32に対してアクセスすることで、等価的にフラッシュメモリ・ディスクドライブ33への直接アクセスを実現する。すなわち、例えば仮想アドレス空間80における所定の論理アドレスに対するデータ読み出しアクセスに対しては、データのキャッシュメモリ32へのコピーが次のように行われる。つまり、当該論理アドレスを含むブロックのデータをフラッシュメモリ・ディスクドライブ33からキャッシュメモリ32の所定のページフレーム32−1、32−2、32−3、…のいずれかに対してコピーする処理が行われる。その際、コピーしたページフレームに対してコピー元のブロックアドレス又は当該ブロックに割り当てられている先頭の論理アドレス等の情報が所定のテーブルに登録される。なお、図11に示したように、ページフレーム32−1、32−2、32−3、…の配列と、仮想アドレス空間80における配置の順番は任意に設定することができ、図11に示した例では、ページフレーム32−1、32−2及び32−3が仮想アドレス空間80におけるページフレーム81、83及び82に対応付けられている。   When the CPU 10 accesses the storage device 30 in byte units in the same manner as the access to the main memory (this access method is called XIP (eXecute-In-Place)), the flash memory disk drive 33 and the cache memory For example, the logical address can be assigned to 32 by the OS kernel file system. However, since the flash memory disk drive 33, which is a block device accessed in block units, cannot be directly accessed in byte units from the CPU 10, data in the flash memory disk drive 33 is as follows. For example, the CPU 10 accesses the cache memory 32 after copying the cache memory 32 to the cache memory 32, thereby equivalently realizing direct access to the flash memory disk drive 33. That is, for example, for data read access to a predetermined logical address in the virtual address space 80, data is copied to the cache memory 32 as follows. That is, the process of copying the data of the block including the logical address from the flash memory disk drive 33 to any one of the predetermined page frames 32-1, 32-2, 32-3,. Is called. At this time, information such as a copy source block address or a head logical address assigned to the block is registered in a predetermined table for the copied page frame. As shown in FIG. 11, the arrangement of the page frames 32-1, 32-2, 32-3,... And the arrangement order in the virtual address space 80 can be arbitrarily set. In this example, the page frames 32-1, 32-2, and 32-3 are associated with the page frames 81, 83, and 82 in the virtual address space 80.

なお、キャッシュメモリ32におけるページフレームの管理は、コントローラ31やデバイスドライバによって実現できるが、コントローラ31で管理する場合、ページフレーム32−1、32−2、32−3、…を回収したときには、その旨をOSカーネルに通知し、仮想アドレス空間80の設定情報であるマップテーブルの内容を更新する。   The management of the page frame in the cache memory 32 can be realized by the controller 31 or the device driver. However, when the management is performed by the controller 31, when the page frames 32-1, 32-2, 32-3,. This is notified to the OS kernel, and the contents of the map table which is the setting information of the virtual address space 80 are updated.

なお、本発明の実施の形態は上記のものに限定されず、例えば、図1に示す構成においてデータ入出力指示部1とデータ入出力制御部2を一体的に構成したり、データ入出力指示部1やデータ入出力制御部2を複数の機能ブロックに分割したり、あるいは、図7から図11に示した構成例においてチップセット20を省略したりといった変更を適宜行うことができる。また、本発明の実施形態においてCPUが実行するプログラムは、その全部又は一部を、コンピュータ読取可能な記録媒体や通信回線を介して頒布することが可能である。   The embodiment of the present invention is not limited to the above. For example, in the configuration shown in FIG. 1, the data input / output instruction unit 1 and the data input / output control unit 2 are integrally configured, or the data input / output instruction is Changes such as dividing the unit 1 and the data input / output control unit 2 into a plurality of functional blocks or omitting the chipset 20 in the configuration examples shown in FIGS. In addition, the program executed by the CPU in the embodiment of the present invention can be distributed in whole or in part via a computer-readable recording medium or a communication line.

1 データ入出力指示部
2 データ入出力制御部
3、30、30a、30b、30c ストレージデバイス
4 第1記憶部
5 第2記憶部
10 CPU
20 チップセット
31、31b コントローラ
32、32c キャッシュメモリ
33 フラッシュメモリ・ディスクドライブ
40 メモリインタフェース
50、60 I/Oインタフェース
100、100a、100b、100c、100d メモリシステム
DESCRIPTION OF SYMBOLS 1 Data input / output instruction | indication part 2 Data input / output control part 3, 30, 30a, 30b, 30c Storage device 4 1st memory | storage part 5 2nd memory | storage part 10 CPU
20 Chipset 31, 31b Controller 32, 32c Cache memory 33 Flash memory disk drive 40 Memory interface 50, 60 I / O interface 100, 100a, 100b, 100c, 100d Memory system

Claims (5)

ブロック単位でデータが読み書きされる不揮発性メモリである第1記憶部と、
前記第1記憶部とともにストレージデバイスを構成するものであって、バイト単位でデータの読み書きが可能でありかつ前記第1記憶部で読み書きされるデータを一時的に記憶可能な第2記憶部と、
所定の論理アドレスに対してバイト単位でデータの読み書きを指示するデータ入出力指示部と、
前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能な場合には前記第2記憶部に対して同期アクセスし、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能でない場合には前記第1記憶部又は前記第2記憶部に対して非同期アクセスするデータ入出力制御部と
を備えることを特徴とするメモリシステム。
A first storage unit that is a nonvolatile memory in which data is read and written in block units;
A second storage unit that constitutes a storage device together with the first storage unit, can read and write data in byte units, and can temporarily store data read and written in the first storage unit;
A data input / output instruction unit for instructing reading / writing of data in units of bytes with respect to a predetermined logical address;
When the second storage unit can be accessed with the logical address without accessing the first storage unit, the second storage unit is accessed synchronously and the first storage unit is not accessed. A data input / output control unit that asynchronously accesses the first storage unit or the second storage unit when the second storage unit is not accessible by the logical address; .
前記第2記憶部が、不揮発性メモリである
ことを特徴とする請求項1に記載のメモリシステム。
The memory system according to claim 1, wherein the second storage unit is a nonvolatile memory.
前記第2記憶部に対してメモリインタフェースが接続されている
ことを特徴とする請求項1又は2に記載のメモリシステム。
The memory system according to claim 1, wherein a memory interface is connected to the second storage unit.
ブロック単位でデータが読み書きされる不揮発性メモリである第1記憶部と、
前記第1記憶部とともにストレージデバイスを構成するものであって、バイト単位でデータの読み書きが可能でありかつ前記第1記憶部で読み書きされるデータを一時的に記憶可能な第2記憶部と
を用い、
データ入出力指示部によって所定の論理アドレスに対してバイト単位でデータの読み書きを指示し、
データ入出力制御部によって前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能な場合には前記第2記憶部に対して同期アクセスし、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能でない場合には前記第1記憶部又は前記第2記憶部に対して非同期アクセスする
ことを特徴とするメモリシステムの制御方法。
A first storage unit that is a nonvolatile memory in which data is read and written in block units;
A second storage unit that constitutes a storage device together with the first storage unit, and that can read and write data in byte units and that can temporarily store data read and written in the first storage unit; Use
The data input / output instruction unit instructs to read / write data in bytes for a given logical address,
When the data input / output control unit can access the second storage unit without accessing the first storage unit with the logical address, the second storage unit is synchronously accessed and the first storage unit is accessed. Controlling the memory system, wherein the first storage unit or the second storage unit is accessed asynchronously when the logical address is not accessible to the second storage unit without accessing the storage unit. Method.
ブロック単位でデータが読み書きされる不揮発性メモリである第1記憶部と、
前記第1記憶部とともにストレージデバイスを構成するものであって、バイト単位でデータの読み書きが可能でありかつ前記第1記憶部で読み書きされるデータを一時的に記憶可能な第2記憶部と
を用い、
データ入出力指示部によって所定の論理アドレスに対してバイト単位でデータの読み書きを指示する過程と、
データ入出力制御部によって前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能な場合には前記第2記憶部に対して同期アクセスし、前記第1記憶部にアクセスすることなく前記第2記憶部に対して前記論理アドレスでアクセス可能でない場合には前記第1記憶部又は前記第2記憶部に対して非同期アクセスする過程と
をコンピュータに実行させることを特徴とするプログラム。
A first storage unit that is a nonvolatile memory in which data is read and written in block units;
A second storage unit that constitutes a storage device together with the first storage unit, and that can read and write data in byte units and that can temporarily store data read and written in the first storage unit; Use
A process of instructing reading and writing of data in byte units for a predetermined logical address by the data input / output instruction unit,
When the data input / output control unit can access the second storage unit without accessing the first storage unit with the logical address, the second storage unit is synchronously accessed and the first storage unit is accessed. Causing the computer to execute the process of asynchronously accessing the first storage unit or the second storage unit when the second storage unit is not accessible at the logical address without accessing the unit. A featured program.
JP2014191021A 2014-09-19 2014-09-19 Memory system, control method for memory system, and program Pending JP2016062406A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014191021A JP2016062406A (en) 2014-09-19 2014-09-19 Memory system, control method for memory system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014191021A JP2016062406A (en) 2014-09-19 2014-09-19 Memory system, control method for memory system, and program

Publications (1)

Publication Number Publication Date
JP2016062406A true JP2016062406A (en) 2016-04-25

Family

ID=55796065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014191021A Pending JP2016062406A (en) 2014-09-19 2014-09-19 Memory system, control method for memory system, and program

Country Status (1)

Country Link
JP (1) JP2016062406A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303617B2 (en) 2016-11-30 2019-05-28 Samsung Electronics Co., Ltd. Storage device supporting byte accessible interface and block accessible interface and electronic system including the same
CN110114762A (en) * 2016-12-23 2019-08-09 Ati科技无限责任公司 Method and apparatus for accessing the nonvolatile memory as byte-addressable memories
CN112703481A (en) * 2018-09-12 2021-04-23 美光科技公司 Hybrid memory system interface

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303617B2 (en) 2016-11-30 2019-05-28 Samsung Electronics Co., Ltd. Storage device supporting byte accessible interface and block accessible interface and electronic system including the same
CN110114762A (en) * 2016-12-23 2019-08-09 Ati科技无限责任公司 Method and apparatus for accessing the nonvolatile memory as byte-addressable memories
JP2020502694A (en) * 2016-12-23 2020-01-23 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc Method and apparatus for accessing non-volatile memory as byte addressable memory
JP7227907B2 (en) 2016-12-23 2023-02-22 エーティーアイ・テクノロジーズ・ユーエルシー Method and apparatus for accessing non-volatile memory as byte-addressable memory
CN110114762B (en) * 2016-12-23 2023-09-15 Ati科技无限责任公司 Method and apparatus for accessing non-volatile memory as byte addressable memory
CN112703481A (en) * 2018-09-12 2021-04-23 美光科技公司 Hybrid memory system interface
JP2021536643A (en) * 2018-09-12 2021-12-27 マイクロン テクノロジー,インク. Hybrid memory system interface

Similar Documents

Publication Publication Date Title
CN110471861B (en) Data storage method in flash memory device and flash memory device
KR101301840B1 (en) Method of data processing for non-volatile memory
KR102275563B1 (en) Host-managed non-volatile memory
US20190129876A1 (en) Devices and methods for data storage management
US11194711B2 (en) Storage device
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
KR20200121372A (en) Hybrid memory system
CN111796759B (en) Computer readable storage medium and method for fragment data reading on multiple planes
CN110597742A (en) Improved storage model for computer system with persistent system memory
US20230072589A1 (en) Hierarchical memory systems
JP2021149374A (en) Data processing device
JP2016062406A (en) Memory system, control method for memory system, and program
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
KR20200117032A (en) Hybrid memory system
KR20220050177A (en) 3-tier hierarchical memory system
EP3136245B1 (en) Computer
US20210208808A1 (en) Host Supported Partitions in Storage Device
US9836220B2 (en) Data processing system and method of operating the same
KR101834082B1 (en) Apparatus and method of managing multi solid state disk system
US9317440B2 (en) Computing device and virtual device control method for controlling virtual device by computing system
US11835992B2 (en) Hybrid memory system interface
US20230359578A1 (en) Computing system including cxl switch, memory device and storage device and operating method thereof
JP2018195185A (en) Storage device and control method
CN114185480A (en) Memory system and data processing system
KR20230144434A (en) Operation method of operating host device, and operation method of storage device