WO2022234740A1 - 情報処理装置、情報処理システム、および情報処理方法 - Google Patents

情報処理装置、情報処理システム、および情報処理方法 Download PDF

Info

Publication number
WO2022234740A1
WO2022234740A1 PCT/JP2022/013501 JP2022013501W WO2022234740A1 WO 2022234740 A1 WO2022234740 A1 WO 2022234740A1 JP 2022013501 W JP2022013501 W JP 2022013501W WO 2022234740 A1 WO2022234740 A1 WO 2022234740A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
read
memory
data
mode
Prior art date
Application number
PCT/JP2022/013501
Other languages
English (en)
French (fr)
Inventor
英幸 斎藤
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Publication of WO2022234740A1 publication Critical patent/WO2022234740A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to an information processing device equipped with a flash memory, an information processing system including the same, and an information processing method.
  • SSDs Solid State Drives
  • HDDs Hard Disk Drives
  • SSDs have the advantage of being able to access data at high speed and with low power consumption, but have the characteristic of being low in durability against repeated data reading and rewriting. Therefore, when data is rewritten on the SSD, a process of dispersing the areas to be rewritten is performed. For example, when a rewrite request is issued from the host CPU, by replacing the specified logical block address with a different physical address, the rewrite target is distributed to a plurality of memory cells as much as possible (see, for example, Patent Document 1).
  • Management processing includes, for example, the following. That is, since the NAND flash memory cannot be overwritten, when data are written in various areas as described above, at some stage they are copied to a continuous area, and the data in the empty area is used thereafter. must be erased in preparation for the writing of
  • the present invention has been made in view of these problems, and its purpose is to provide a technology that can stably perform information processing using an SSD while suppressing the delay time for memory access.
  • An aspect of the present invention relates to an information processing device.
  • This information processing apparatus includes a host unit that executes information processing, a memory that stores data used in the information processing, and a memory controller that executes access to the memory according to a request from the host unit. , a read-only mode in which only requests for reading data stored in the memory are accepted.
  • This information processing system is an information processing system including an information processing device that executes information processing and a server that provides data used for the information processing to the information processing device via a network, wherein the information processing device comprises: Equipped with multiple device drives including memory for storing data provided by the server and a memory controller for executing access to the memory according to a request from the host unit, and supports memory in which data used for information processing has been stored.
  • the memory controller is characterized by realizing a read-only mode in which only requests for reading data stored in the memory are accepted.
  • an information processing apparatus stores data used for information processing in a memory, and a read-only mode in which, after data storage is completed, the memory receives only a request to read the stored data. the step of executing a read request to the memory; and the step of executing information processing using the data read according to the read request.
  • information processing using an SSD can be stably performed while suppressing the delay time for memory access.
  • FIG. 1 is a diagram showing a circuit configuration of an information processing device according to an embodiment
  • FIG. FIG. 4 is a diagram showing another example of the circuit configuration of the information processing device according to the present embodiment
  • FIG. 4 is a diagram illustrating the flow of access processing to an SSD drive in this embodiment
  • 4 is a flow chart showing a procedure for the information processing apparatus according to the present embodiment to download necessary files from the storage server and perform information processing.
  • FIG. 7 is a flow chart showing in detail the procedure of initial processing in S10 of FIG. 6 and mounting processing in S12
  • FIG. FIG. 7 is a flowchart showing in detail the procedure of mounting processing in read-only mode in S16 of FIG. 6;
  • FIG. 1 illustrates the circuit configuration of a general information processing device.
  • the information processing apparatus 110 is composed of a host unit 112 including a CPU, a system memory 114 and an SSD drive 122 including a NAND module 120 and a flash controller 118 .
  • the NAND module 120 in the SSD drive 122 includes a plurality of NAND flash memories, and stores data distributed over a plurality of channels such as 4 channels and 8 channels.
  • the host unit 112 includes a CPU, loads programs and data stored in the NAND module 120 into the system memory 114, and uses them to perform information processing. Then, the data to be saved as a result is written to the NAND module 120 as appropriate.
  • the host unit 112 also reads application programs and data from a recording medium driven by a recording medium drive unit (not shown), downloads them from a server connected to a network by a network controller, and stores them in the NAND module 120 .
  • the host unit 112 issues an access request to the NAND module 120 to the flash controller 118 .
  • the flash controller 118 adds the issued access request to an access request queue provided in an internal memory or the like.
  • the flash controller 118 then performs read/write processing on the NAND module 120 in accordance with the access requests sequentially read from the queue.
  • the access request includes the logical block address (LBA: Logical Block Address) of the access destination.
  • the host unit 112 uses LBA to implement random access to a continuous address space.
  • the unit of random access that can be specified by LBA is, for example, 512 bytes.
  • Flash controller 118 translates the LBA included in the access request into a physical address of NAND module 120 . Therefore, the flash controller 118 develops at least part of the address conversion table originally stored in the NAND module 120 in an internal memory, the system memory 114, or the like.
  • the flash controller 118 reads and writes data by accessing the area corresponding to the physical address obtained by referring to the address conversion table in the NAND module 120 .
  • data is read from or written to the NAND module 120 in units defined by the file system, such as 4096 bytes.
  • the flash controller 118 allocates a new area in the NAND module 120 for the data to be rewritten when it becomes necessary to rewrite the data. Then, the address conversion table is updated so that the physical address is associated with the same LBA as before rewriting. As a result, the number of times of erasing large-sized data as described above can be suppressed. At this time, the flash controller 118 periodically erases the used area so that the newly allocated area will not run out even if rewriting occurs frequently. Such processing is generally called "garbage collection".
  • NAND flash memory Another characteristic of NAND flash memory is that read and write latencies are asymmetric. In the case of SLC in which 1-bit data is recorded per memory cell, general read latency is 50 ⁇ sec or less and write latency is 500 ⁇ sec or less. In the case of a TLC that records 3-bit data per memory cell, the general read latency is 100 ⁇ sec or less, and the general write latency is 3 msec or less.
  • the latency is about 5 to 10 msec, and if the above garbage collection is performed, the latency may be 1 sec or more.
  • the flash controller 118 generally keeps read and write latencies at or below a certain value as much as possible by implementing a command scheduling function based on the characteristics of the NAND flash memory using firmware.
  • TLC requires a complicated write sequence, so the write process takes longer than SLC. Therefore, in general, part of the NAND module 120 is reserved as an SLC area and used as a cache to speed up the write process. At this time, the flash controller 118 copies the data written to the SLC to the TLC at an appropriate timing other than the execution of the write request. If the command schedule becomes complicated in this way, the command processing latency of the firmware itself is also added, making it difficult to obtain the high-speed access performance inherent in the NAND flash memory.
  • two or more SSD drives are provided, and mode switching is controlled so that at least one of them is read-only, so that the data read latency is kept below a certain value.
  • Drives operating in read-only mode eliminate the complex command scheduling associated with writes, allowing sequential read operations to be performed with minimal or no firmware intervention, minimizing latency. .
  • by securing a drive that accepts both read/write necessary processing can be realized in the background, etc., as before.
  • FIG. 2 shows the circuit configuration of the information processing device according to this embodiment.
  • the information processing device 10a may be any general information device such as a portable game machine, a personal computer, a mobile phone, a tablet terminal, and a PDA.
  • the information processing device 10a includes a first SSD drive 22a consisting of a first NAND module 20a and a first flash controller 18a, and a second SSD drive 22a consisting of a second NAND module 20b and a second flash controller 18b. It has an SSD drive 22b.
  • the information processing device 10a basically has the same functions as the information processing device 110 shown in FIG. The following description will focus on the differences from the information processing apparatus 110 .
  • the host unit 12, the first SSD drive 22a and the second SSD drive 22b are connected by PCI Express (PCIe) via the switch 24, for example.
  • PCIe is a connection standard for expansion buses and expansion slots. This allows separate transmission bands to be used for reading and writing data.
  • two SSD drives are used in the illustrated example, three or more SSD drives may be provided.
  • the host unit 12 individually recognizes the SSD drives at different mount positions by loading device drivers for the first SSD drive 22a and the second SSD drive 22b.
  • the host unit 12 basically mounts an SSD drive (for example, the first SSD drive 22a) that stores data of an application that operates in the foreground in read-only mode, and reads various data from there to progress information processing. or generate a display image.
  • an SSD drive for example, the first SSD drive 22a
  • another SSD drive mounted in read/write mode e.g., a second SSD A folder is provided in the drive 22b
  • a link is set as a write destination.
  • read-only mode is a special mode that accepts only read requests
  • read/write mode is a general mode that accepts both read and write requests.
  • the host unit 12 advances information processing while reading data from the first SSD drive 22a in read-only mode, while downloading data of another application from the server and transferring data to the second SSD drive 22a in read/write mode. 22b.
  • the necessary processing can be performed without affecting the progress of applications running in the foreground.
  • the firmware used in the flash controller for example, the first flash controller 18a of the target SSD drive is also switched.
  • a typical flash controller is composed of multiple microcontrollers, which share processing such as reading, writing, and background jobs. In this case, overhead associated with synchronization between microcontrollers may increase latency. Therefore, in this embodiment, as described above, the firmware is switched in the read-only mode, and a single microcontroller is controlled to immediately process read requests received from the host unit 12 .
  • Various settings in the flash controller may also be optimized by switching the firmware. For example, in read-only mode, the flash controller may poll for read requests from the host unit 12 more frequently. Also, the depth of the read request queue may be increased by using the area released by switching from the read/write mode in the storage area built into the flash controller. Switching these settings can also reduce processing latency for read requests.
  • FIG. 3 shows another example of the circuit configuration of the information processing device according to this embodiment.
  • the information processing device 10b shown in FIG. 2 in addition to the host unit 12 and the system memory 14, the information processing device 10b shown in FIG. 2 in that it includes a second SSD drive 22b.
  • the information processing apparatus 10b differs from the information processing apparatus 10a in FIG. 2 in that instead of connecting two SSD drives to the host unit 12 in parallel, they are connected in series. That is, the host unit 12 is connected only to the first flash controller 18a, and the first flash controller 18a is connected to the second flash controller 18b in a cascade connection. In this case, an access request issued from the host unit 12 is propagated between flash controllers as necessary, and the flash controller corresponding to the request reads from or writes to the connected NAND module.
  • the SSD drive for example, the first SSD drive 22a
  • the number of SSD drives is not limited, and three or more SSD drives may be cascaded.
  • FIG. 4 shows the configuration of an information processing system according to this embodiment.
  • the illustrated information processing system 30 has a configuration in which an information processing device 10 c and a storage server 32 are connected via a network 34 .
  • the number of information processing apparatuses 10c (also called computation nodes) connected to the storage server 32 is not particularly limited.
  • the storage server 32 is included in a server that provides programs and data necessary for information processing performed by the information processing apparatus 10c, such as game applications, and may be a storage array composed of a plurality of storage devices.
  • the information processing device 10c like the information processing device 10a shown in FIG. It has a second SSD drive 22b consisting of two NAND modules 20b and a second flash controller 18b.
  • the first flash controller 18a and the second flash controller 18b are each connected to the host unit 12 via a switch 24.
  • FIG. 1 A switch 24.
  • the information processing device 10 c further includes a network controller 26 that connects with the host unit 12 via the switch 24 and with the storage server 32 via the network 34 .
  • the network 34 has a peak bandwidth comparable to the writing speed to the first SSD drive 22a and the second SSD drive 22b in the information processing device 10c.
  • the information processing device 10c accesses the storage server 32 via the network 34, downloads at least part of the data necessary for information processing to the first SSD drive 22a and the second SSD drive 22b, and uses the downloaded data. Latency requirements are stringent for game applications that include huge textures, audio data, and 3D data.
  • the most recently used data is expanded in the system memory of the information processing device as much as possible. It was prefetched from the server by predicting different data. For example, game titles that are popular with multiple users are downloaded to the information processing device in advance, and game titles that are not very popular are downloaded as needed. Spread the load so that the write bandwidth to the drives is not starved.
  • the read-only mode when a latency of about 200 ⁇ sec, which is sufficiently shorter than the drawing time of one frame, is guaranteed in read processing, some data are not prefetched and the read data is drawn. can be used for the frame of Considering that the size of data that can be stored in the NAND module is several hundred gigabytes to several terabytes, the entire data of one game title is loaded from the storage server 32 and used to progress the game with low latency. It is quite possible to let
  • the information processing device 10c loads the game title selected by the user from the storage server 32 to the first NAND module 20a, and then starts the game.
  • the first SSD drive 22a is used in read-only mode, as described above.
  • the load balancer of the storage server 32 selects a game title that is likely to be executed next by each computing node based on the game titles being executed by the multiple computing nodes including the information processing device 10c and the game titles in standby. Predict.
  • the information processing device 10c loads the game title that is likely to be executed next from the storage server 32 in the background, and stores it in the second NAND module 20b operating in read/write mode.
  • the bandwidths used for each process are not affected by each other, and each can maintain its peak bandwidth. Also, since the latency of each process is not affected by each other, the latency below a certain value is guaranteed.
  • FIG. 5 illustrates the flow of access processing for SSD drives in this embodiment.
  • (a) shows the transition of processing for an SSD driver in read-only mode
  • (b) shows the transition of processing for an SSD driver in read/write mode.
  • “R” indicates read processing
  • "W” indicates write processing
  • “Erase” indicates block data erasure.
  • the SSD drive is configured with multiple channels (4 channels in the figure), and data access is performed in parallel on the multiple channels. Also, by configuring each channel with a plurality of NAND devices and selecting a device with a chip enable signal, the latency that occurs in read processing and write processing can be hidden.
  • the SSD driver processes read requests issued from the host unit 12 in each channel at a cycle of 40 ⁇ sec.
  • the transmission time can be hidden by reading the next page on another channel while data is being transferred on one channel. For example, if there are 8 channels, the bandwidth will be 6.5 Gbytes/sec, and the transfer bandwidth of the interface with the host unit 12 can be utilized to the maximum.
  • the SSD driver in addition to the write request issued by the host unit 12, the SSD driver needs to execute background jobs such as erasing data in blocks of several tens of MiB and garbage collection. be.
  • the latency estimate in the worst case is as follows. For example, when an SSD drive in read-only mode is interrupted by a high-priority read request, the latency is about 120 ⁇ sec, including the read processing by the issued request, the read processing by the interrupt request, and the transmission time of the read data. .
  • the size of the data to be read increases, the number of requests issued simultaneously to each channel increases, so latency due to waiting for processing is added.
  • read processing is released from such control by securing a read-only mode SSD drive.
  • the SLC assumed in the above description is capable of high-speed access, and compared to the TLC, the frequency of reading data from the same area is suppressed, so it is advantageous in that deterioration due to voltage application is small.
  • the present embodiment is not intended to be limited to SLC, and similar effects can be obtained even with TLC.
  • FIG. 6 is a flowchart showing a procedure for the information processing device 10c to download necessary files from the storage server 32 and perform information processing.
  • the information processing device 10c is assumed to have two SSD drives, first and second.
  • the information processing device 10c performs initial processing (S10), and then mounts the first SSD drive 22a and the second SSD drive 22b in read/write mode (S12).
  • the information processing device 10c downloads the data of the application A to be executed in the foreground from the storage server 32 as selected by the user, and stores it in the first SSD drive 22a (S14). After all the necessary data is stored, the information processing device 10c temporarily unmounts the first SSD drive 22a and mounts it again in read-only mode (S16). At this time, the first flash controller 18a of the first SSD drive 22a switches the internal configuration and settings by loading read-only firmware.
  • the information processing device 10c starts up the application A to progress the processing while reading data from the first SSD drive 22a with guaranteed latency and performance (S18). In the meantime, the information processing device 10c downloads the data of the application B, which is expected to be executed next, from the storage server 32 in the background, and stores it in the second SSD drive 22b still in read/write mode ( S20).
  • the processing of application A is continued in the foreground until the need to switch to application B arises (N of S22), and when the need of switching arises (Y of S22), the processing of application A is stopped (S24). . Then, the information processing device 10c temporarily unmounts the first SSD drive 22a and remounts it in read/write mode (S26). At this time, the first flash controller 18a of the first SSD drive 22a switches the internal configuration and settings by reloading the read/write firmware.
  • the information processing device 10c After setting the first SSD drive 22a to the read/write mode, the information processing device 10c writes additional data such as save data and patch data written to the second SSD drive 22b during execution of the application A as necessary. It may be copied to the first SSD drive 22a accordingly. Then, the information processing device 10c temporarily unmounts the second SSD drive 22b storing the data of the application B to be executed next, and remounts it in read-only mode (S28). At this time, the second flash controller 18b of the second SSD drive 22b switches the internal configuration and settings by loading read-only firmware.
  • the information processing device 10c starts up the application B to progress the processing while reading data from the second SSD 22b drive with guaranteed latency and performance (S30).
  • the application data is downloaded from the storage server 32 while switching the storage destination as necessary, and the processing is progressed while using the SSD drive in which the data is already stored in the read-only mode.
  • the information processing device 10c may, if necessary, download the data of the application C expected to be executed next from the storage server 32 and store it in the first SSD drive 22a in the background (S20).
  • the SSD drive that stores at least the data of the application to be executed in the foreground is used for read only, and the SSD drive in read/write mode performs necessary processing including writing in the background.
  • FIG. 7 is a flow chart showing in detail the procedure of the initial processing in S10 of FIG. 6 and the mounting processing in S12.
  • the first flash controller 18a and the second flash controller 18b load read/write firmware from the storage device inside the information processing device 10c (S42).
  • the storage device may be the first NAND module 20a or the second NAND module 20b, or may be a separately prepared dedicated serial flash device for storing firmware.
  • the host unit 12 also loads the BIOS from a storage device such as a serial flash in the information processing device 10c.
  • the first flash controller 18a and the second flash controller 18b respectively access the first NAND module 20a and the second NAND module 20b by the loaded firmware, read out various control information such as metadata of the drive, and store the first SSD.
  • the drive 22a and the second SSD drive 22b are initialized (S44).
  • the first flash controller 18a and the second flash controller 18b accept initialization processing from the host unit 12 side (S46).
  • the host unit 12 first loads device drivers for accessing the first SSD drive 22a and the second SSD drive 22b based on the PCIe device ID.
  • the host unit 12 uses the device driver to initialize the registers of the first SSD drive 22a and the second SSD drive 22b, and performs various initialization processes such as generating command queues.
  • the host unit 12 can access the first SSD drive 22a and the second SSD drive 22b, so the host unit 12 performs necessary initialization such as loading the operating system ( S48).
  • FIG. 8 is a flowchart showing in detail the procedure of mounting processing in read-only mode in S16 of FIG.
  • the host unit 12 unmounts the first SSD drive 22a after waiting for the write processing of all the data of the application A to be completed (S50).
  • the firmware loaded into the first flash controller 18a at this point supports a special command to reboot the drive in read-only mode. The same applies to the firmware loaded in the second flash controller 18b.
  • the first flash controller 18a writes the status information of the first SSD drive 22a at the time of unmounting to the first NAND module 20a.
  • the first flash controller 18a loads the read-only firmware from the storage device inside the information processing device 10c (S52), and accesses the soft reset function mapped to the internal register. resets the first SSD drive 22a (S54).
  • the first flash controller 18a executes the loaded read-only firmware, loads the saved status information and various control information from the first NAND module 20a, and restarts the first SSD drive 22a.
  • Initialize S56. Note that when the PCIe link is disconnected due to the soft reset of the first flash controller 18a in S54, the host unit 12 detects this and unloads the device driver.
  • the host unit 12 scans the PCIe tree and reads the device ID. This allows the host unit 12 to load the appropriate device driver again.
  • the first SSD drive 22a can be controlled continuously regardless of mode switching by using a driver that supports both read/write and read-only.
  • the host unit 12 then initializes the first SSD drive 22a again in accordance with the read-only firmware (S58). As a result, the host unit 12 can remount the first SSD drive 22a which has a configuration different from that of the read/write mode and has settings for performance assurance such as a read-only command queue.
  • a read-only mode is provided for the SSD drive configured by the NAND module including the NAND flash memory and the flash controller.
  • read processing is freed from complex command scheduling that is unique to the NAND flash memory accompanying data writing.
  • read-only firmware unnecessary functions are eliminated from the flash controller, simplifying the configuration.
  • read requests issued by the host unit can be processed in-order, and information processing can proceed with minimum and stable latency.
  • SSD drives will be installed, and drives in read/write mode will also be maintained.
  • writing processing and various processing for memory management can be realized in the same manner as in the conventional art.
  • the SSD drive that performs these processes is independent of the SSD drive in read-only mode, it does not affect the latency or bandwidth of foreground processes. For example, large-sized image data used for electronic games does not need to be updated, so it is suitable for use in read-only mode.
  • reducing the latency reduces the need for pre-reading and saves the storage area required to store the read data, thereby reducing the manufacturing cost of the entire device.
  • the present invention can be used for various information processing devices such as personal computers, game devices, and mobile terminals, and information processing systems including any of them.
  • 10a information processing device 12 host unit, 14 system memory, 18a first flash controller, 18b second flash controller, 20a first NAND module, 20b second NAND module, 22a first SSD drive, 22b second SSD drive, 24 Switch, 26 network controller, 32 storage server, 34 network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

情報処理装置10aは、第1NANDモジュール20aと第1フラッシュコントローラ18aを含む第1のSSDドライブ22aと、第2NANDモジュール20bと第2フラッシュコントローラ18bを含む第2のSSDドライブ22bを備える。ホストユニット12が情報処理を実行するのに必要なデータを第1のSSDドライブ22a、第2のSSDドライブ22bのどちらかに格納し、当該SSDドライブは読み出し要求のみを受け付ける読み出し専用モードとする。

Description

情報処理装置、情報処理システム、および情報処理方法
 本発明は、フラッシュメモリを備えた情報処理装置、それを含む情報処理システム、および情報処理方法に関する。
 NAND型フラッシュメモリの容量拡大に伴い、従来のHDD(Hard Disk Drive)に代わる記憶装置としてSSD(Solid State Drive)が用いられるようになってきた。SSDはHDDと比較しデータアクセスを高速かつ低消費電力で行える、という利点がある一方、繰り返しのデータ読み出しや書き換えに対する耐久性が低い、という特性を有する。そのためSSDに対するデータ書き換えには、書き換え対象の領域を分散させる処理がなされる。例えばホストCPUから書き換え要求がなされたとき、指定された論理ブロックアドレスを異なる物理アドレスに置き換えることにより、書き換え対象をできるだけ複数のメモリセルに分散させる(例えば特許文献1参照)。
WO 2014/132346 A1公報
 上述のとおりSSDは高速アクセスが可能なため、情報処理に必要なデータの多くを、必要となった時点で読み出すようにすることで、システムメモリの容量を抑えることができる。一方で、そのようにアクセスの頻度が増加すると、SSD特有の管理処理の問題が顕在化する。管理処理には例えば次のようなものがある。すなわち、NAND型フラッシュメモリは上書きができないため、上述のように様々な領域にデータが書き込まれた場合、いずれかの段階でそれらを連続した領域にコピーして、空いた領域のデータを、以後の書き込みに備えて消去する必要が生じる。
 また、読み出しが繰り返されることにより素子の電荷がリークしデータが破壊される可能性に備え、ある段階でデータを別の領域に待避させることも必要になる。さらに書き込みを高速に行うため、1メモリセル当たり1ビットを記録するSLC(Single Level Cell)をキャッシュとして用い、後のタイミングで、1メモリセル当たり3ビットを記録可能なTLC(Triple Level Cell)に格納し直すこともなされる。これらの管理処理を、ホストCPUからの要求より優先させると、情報処理に看過できない遅延時間を生じさせることがある。一方で、管理処理を適切なタイミングで行わないと、ホストCPUからの要求を処理できなくなることもあり得る。
 本発明はこうした課題に鑑みてなされたものであり、その目的は、メモリアクセスのための遅延時間を抑えながらSSDを利用した情報処理を安定的に行える技術を提供することにある。
 本発明のある態様は情報処理装置に関する。この情報処理装置は、情報処理を実行するホストユニットと、情報処理に用いるデータを格納するメモリと、ホストユニットからの要求に従い、メモリへのアクセスを実行するメモリコントローラと、を備え、メモリコントローラは、メモリに格納されたデータの読み出し要求のみを受け付ける読み出し専用モードを実現することを特徴とする。
 本発明の別の態様は情報処理システムに関する。この情報処理システムは、情報処理を実行する情報処理装置と、当該情報処理に用いるデータを、ネットワークを介して情報処理装置に提供するサーバとを含む情報処理システムであって、情報処理装置は、サーバから提供されたデータを格納するメモリと、ホストユニットからの要求に従い当該メモリへのアクセスを実行するメモリコントローラとを含むデバイスドライブを複数備え、情報処理に用いるデータの格納が完了したメモリに対応するメモリコントローラは、当該メモリに格納されたデータの読み出し要求のみを受け付ける読み出し専用モードを実現することを特徴とする。
 本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は情報処理装置が、情報処理に用いるデータをメモリに格納するステップと、データの格納が完了した後、当該メモリに対し、格納されたデータの読み出し要求のみを受け付ける読み出し専用モードを実現するステップと、メモリへの読み出し要求を実行するステップと、読み出し要求に従い読み出されたデータを用いて情報処理を実行するステップと、を含むことを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によると、メモリアクセスのための遅延時間を抑えながらSSDを利用した情報処理を安定的に行える。
一般的な情報処理装置の回路構成を例示する図である。 本実施の形態における情報処理装置の回路構成を示す図である。 本実施の形態における情報処理装置の回路構成の別の例を示す図である。 本実施の形態における情報処理システムの構成を示す図である。 本実施の形態におけるSSDドライブに対するアクセス処理の流れを例示する図である。 本実施の形態における情報処理装置が、必要なファイルをストレージサーバからダウンロードし情報処理を行う手順を示すフローチャートである。 図6のS10における初期処理とS12におけるマウント処理の手順を詳細に示すフローチャートである。 図6のS16における読み出し専用モードでのマウント処理の手順を詳細に示すフローチャートである。
 まず本実施の形態の特徴を明らかにするため、SSDを含む一般的な情報処理装置について説明する。図1は、一般的な情報処理装置の回路構成を例示している。ここで情報処理装置110は、CPUを含むホストユニット112、システムメモリ114および、NANDモジュール120とフラッシュコントローラ118を含むSSDドライブ122で構成される。SSDドライブ122においてNANDモジュール120は、複数のNAND型フラッシュメモリを含み、例えば4チャンネルや8チャンネルなどの複数のチャンネルに分散させてデータを格納する。
 ホストユニット112はCPUを含み、NANDモジュール120に格納されたプログラムやデータをシステムメモリ114にロードし、それを用いて情報処理を行う。そして、その結果として保存すべきデータを、適宜NANDモジュール120に書き込む。ホストユニット112はまた、アプリケーションプログラムやデータを、図示しない記録媒体駆動部において駆動された記録媒体から読み出したり、ネットワークコントローラによりネットワーク接続されたサーバからダウンロードしたりしてNANDモジュール120に格納する。
 これらの処理においてホストユニット112はフラッシュコントローラ118に、NANDモジュール120に対するアクセス要求を発行する。フラッシュコントローラ118は、内部のメモリなどに設けたアクセス要求のキューに、発行したアクセス要求を追加する。そしてフラッシュコントローラ118は、キューから順次読み出したアクセス要求に従い、NANDモジュール120に対し読み出し/書き込み処理を実施する。ここでアクセス要求には、アクセス先の論理ブロックアドレス(LBA:Logical Block Address)が含まれる。
 LBAにより、ホストユニット112は連続アドレス空間に対するランダムアクセスを実現するLBAで指定できるランダムアクセスの単位は、例えば512バイトなどである。フラッシュコントローラ118は、アクセス要求に含まれるLBAをNANDモジュール120の物理アドレスに変換する。このためフラッシュコントローラ118は、元々NANDモジュール120に格納されていたアドレス変換テーブルの少なくとも一部を、内部のメモリやシステムメモリ114などに展開しておく。
 そしてフラッシュコントローラ118は、NANDモジュール120のうち、アドレス変換テーブルを参照して取得した物理アドレスに該当する領域にアクセスすることにより、データを読み出したり書き込んだりする。一般に、NANDモジュール120に対するデータの読み出しや書き込みは、4096バイト等、ファイルシステムにより規定される単位でなされる。
 一方、NAND型フラッシュメモリはデータの上書きができないため、書き込まれたデータを更新するには、元のデータを一旦消去する必要がある。近年の大容量NAND型フラッシュメモリの場合、このデータの消去単位が数十MiB(1MiB=220バイト)となるなど、読み出しや書き込みの単位と比べると1000倍以上となることも多い。すなわちたとえ小さなデータを書き換える場合でも、大きなサイズの消去単位全体を読み出して消去した後、読み出したデータを再び書き戻す必要が生じてしまう。
 これを回避するためフラッシュコントローラ118は、データ書き換えの必要が生じたとき、書き換えるべきデータに対しNANDモジュール120における新たな領域を割り当てる。そしてその物理アドレスを、書き換え前と同じLBAに対応づけるようにアドレス変換テーブルを更新する。これにより上述のような大きなサイズのデータを消去する回数を抑えることができる。このときフラッシュコントローラ118は、書き換えが頻発しても新規に割り当てる領域が枯渇しないよう、定期的に使用済みの領域を消去する。このような処理を一般に「ガベージコレクション(Garbage Collection)」と呼ぶ。
 NAND型フラッシュメモリの別の特性として、読み出しと書き込みのレイテンシが非対称である点が挙げられる。1メモリセルあたり1ビットのデータを記録するSLCの場合、一般的な読み出しのレイテンシが50μsec以下、書き込みのレイテンシが500μsec以下である。1メモリセル当たり3ビットのデータを記録するTLCの場合、一般的な読み出しのレイテンシが100μsec以下、書き込みのレイテンシが3msec以下である。
 またデータの消去を伴う書き込みの場合、そのレイテンシは5~10msec程度であり、上述のガベージコレクションを行う場合は、1sec以上のレイテンシがかかることもある。フラッシュコントローラ118は一般的に、このようなNAND型フラッシュメモリの特性を前提としたコマンドスケジューリング機能をファームウェアにより実現することで、読み出しや書き込みのレイテンシをできる限り一定値以下に保つようにしている。
 例えばTLCは複雑な書き込みシーケンスが必要となるため、SLCと比較し書き込み処理に時間がかかる。そこで一般には、NANDモジュール120の一部をSLCの領域として確保し、キャッシュとして用いることにより書き込み処理を高速化する。このときフラッシュコントローラ118は、書き込み要求の遂行とは別の適切なタイミングで、SLCに書き込まれたデータをTLCへコピーする。このようにコマンドスケジュールが複雑になると、ファームウェア自体のコマンド処理レイテンシも加わり、NAND型フラッシュメモリ本来の高速アクセス性能を得るのが難しくなる。
 そこで本実施の形態では、SSDドライブを2つ以上設けるとともに、少なくともそのいずれかは読み出し専用となるようにモード切り替えを制御することで、データ読み出しのレイテンシが一定値以下となるようにする。読み出し専用モードで動作するドライブは、書き込みに伴う複雑なコマンドスケジューリングが必要ないため、ファームウェアの介在なしに、あるいは最小限の介在によって、順次読み出し処理を遂行でき、レイテンシを最小限に抑えることができる。一方、読み出し/書き込みの双方を受け付けるドライブも確保することで、これまでと同様に、必要な処理をバックグラウンドなどで実現できる。
 図2は、本実施の形態における情報処理装置の回路構成を示している。ここで情報処理装置10aは、携帯ゲーム機、パーソナルコンピュータ、携帯電話、タブレット端末、PDAなど一般的な情報機器のいずれでもよい。情報処理装置10aはホストユニット12、システムメモリ14のほか、第1NANDモジュール20aと第1フラッシュコントローラ18aからなる第1のSSDドライブ22aと、第2NANDモジュール20bと第2フラッシュコントローラ18bからなる第2のSSDドライブ22bを備える。なお情報処理装置10aは基本的には、図1で示した情報処理装置110と同様の機能を有する。以後、情報処理装置110と異なる点に主眼を置いて説明する。
 ホストユニット12と第1のSSDドライブ22a、第2のSSDドライブ22bとは、例えばスイッチ24を介してPCI Express(PCIe)により接続する。PCIeは拡張バス、拡張スロットの接続規格である。これにより、データの読み出しと書き込みにおいて個別の伝送帯域を利用できる。なお図示する例ではSSDドライブを2つとしているが、3つ以上のSSDドライブを設けてもよい。ホストユニット12は、第1のSSDドライブ22a、第2のSSDドライブ22bのそれぞれに対しデバイスドライバをロードすることにより、異なるマウントポジションでSSDドライブを個別に認識する。
 ホストユニット12は基本的に、フォアグラウンドで動作するアプリケーションのデータを格納したSSDドライブ(例えば第1のSSDドライブ22a)を、読み出し専用モードでマウントし、そこから各種データを読み出すことで情報処理を進捗させたり表示画像を生成したりする。セーブデータや追加のパッチデータなど、情報処理の途中で発生したりダウンロードしたりした、保存すべきデータの書き込みについては、読み出し/書き込みモードでマウントされている別のSSDドライブ(例えば第2のSSDドライブ22b)にフォルダを設けたうえ、リンクを設定することにより書き込み先とする。
 ここで「読み出し専用モード」とは、読み出し要求のみを受け付ける特別なモードであり、「読み出し/書き込みモード」とは、読み出し要求と書き込み要求の双方を受け付ける、一般的なモードである。電子ゲームなどにおけるシーンの切り替わり時やアプリケーションの終了時、ホストユニット12は、読み出し専用モードでマウントしていた第1のSSDドライブ22aを、読み出し/書き込みモードでマウントし直す。そしてホストユニット12は、第2のSSDドライブ22bに書き込んでおいたセーブデータやパッチデータなどの追加データのうち、後のアプリケーションの実行において低レイテンシでの読み出しが必要なデータについては、第1のSSDドライブ22aにコピーしておく。
 これにより当該データと元のアプリケーションのデータが同じSSDドライブに格納されることになり、処理の再開時に読み出し専用モードでの高速読み出しが可能となる。またホストユニット12は、読み出し専用モードの第1のSSDドライブ22aからデータを読み出しつつ情報処理を進捗させる一方で、別のアプリケーションのデータをサーバからダウンロードし、読み出し/書き込みモードの第2のSSDドライブ22bに格納していってもよい。
 セーブデータ、パッチデータ、他のアプリケーションのデータなどの書き込みに伴う各種処理をバックグラウンドで実行することにより、フォアグラウンドで実行しているアプリケーションの進捗に影響することなく必要な処理を遂行できる。読み出し/書き込みモードと読み出し専用モードとのモード間遷移においては、対象のSSDドライブのフラッシュコントローラ(例えば第1フラッシュコントローラ18a)において、用いるファームウェアも切り替える。
 一般的なフラッシュコントローラは複数のマイクロコントローラによって構成され、読み出しや書き込み、バックグラウンドジョブなどの処理を分担して行っている。この場合、マイクロコントローラ間での同期処理に伴うオーバーヘッドによってレイテンシが増加することがある。そこで本実施の形態では上述のとおり、読み出し専用モードにおいてファームウェアを切り替え、単一のマイクロコントローラが、ホストユニット12から取得した読み出し要求を直ちに処理するように制御する。
 読み出し専用モードにおいては複雑なスケジューリングや読み出し処理以外の処理の必要性が小さいため、単一のマイクロコントローラによるシンプルな処理が可能になる。読み出し/書き込みモードに切り替えるときは、ファームウェアも元に戻す。このようなファームウェアの切り替えに際しては、そのプログラムデータを都度リロードすることにより、フラッシュコントローラ内部の記憶領域を節約できる。
 またファームウェアの切り替えにより、フラッシュコントローラ内の各種設定についても最適化してよい。例えば読み出し専用モードにおいては、フラッシュコントローラがホストユニット12からの読み出し要求をポーリングする頻度を上げてもよい。またフラッシュコントローラが内蔵する記憶領域のうち、読み出し/書き込みモードからの切り替えにより解放された領域を用い、読み出し要求のキューの深度を増やしてもよい。これらの設定の切り替えによっても、読み出し要求に対する処理のレイテンシを削減することができる。
 図3は、本実施の形態における情報処理装置の回路構成の別の例を示している。同図の情報処理装置10bは、ホストユニット12、システムメモリ14のほか、第1NANDモジュール20aと第1フラッシュコントローラ18aからなる第1のSSDドライブ22aと、第2NANDモジュール20bと第2フラッシュコントローラ18bからなる第2のSSDドライブ22bを備える点で、図2の情報処理装置10aと同様である。
 一方、情報処理装置10bは、ホストユニット12に2つのSSDドライブを並列に接続する代わりに、それらを直列に接続する点で図2の情報処理装置10aと異なる。すなわちホストユニット12は第1フラッシュコントローラ18aのみに接続し、第1フラッシュコントローラ18aが第2フラッシュコントローラ18bに接続するカスケード接続としている。この場合、ホストユニット12から発行されたアクセス要求は、必要に応じてフラッシュコントローラ間を伝搬し、要求に対応するフラッシュコントローラが、接続されたNANDモジュールに対し読み出しや書き込みを行う。
 このような構成としても、図2の情報処理装置10aと同様にして最低限のレイテンシで情報処理を進捗させることができる。すなわち、フォアグラウンドで実行するアプリケーションのデータを格納したSSDドライブ(例えば第1のSSDドライブ22a)を読み出し専用モードで用いることにより、保証されたレイテンシでデータを読み出し、処理を遂行できる。なおこの場合もSSDドライブの数は限定されず、3つ以上のSSDドライブをカスケード接続してよい。
 図4は、本実施の形態における情報処理システムの構成を示している。図示する情報処理システム30は、情報処理装置10cとストレージサーバ32がネットワーク34により接続された構成を有する。ただしストレージサーバ32に接続される情報処理装置10c(計算ノードとも呼ぶ)の数は特に限定されない。ストレージサーバ32はゲームアプリケーションなど、情報処理装置10cが行う情報処理に必要なプログラムやデータを提供するサーバに含まれ、複数の記憶装置からなるストレージアレイであってもよい。
 情報処理装置10cは、図2で示した情報処理装置10aと同様に、ホストユニット12、システムメモリ14のほか、第1NANDモジュール20aと第1フラッシュコントローラ18aからなる第1のSSDドライブ22aと、第2NANDモジュール20bと第2フラッシュコントローラ18bからなる第2のSSDドライブ22bを備える。この例で、第1フラッシュコントローラ18aと第2フラッシュコントローラ18bはそれぞれ、スイッチ24を介してホストユニット12と接続している。
 ただし図3で示した情報処理装置10bと同様に、第1フラッシュコントローラ18aと第2フラッシュコントローラ18bをカスケード接続してもよい。いずれの場合も、SSDドライブの数は限定されない。情報処理装置10cはさらに、スイッチ24を介してホストユニット12と接続するとともに、ネットワーク34を介してストレージサーバ32と接続するネットワークコントローラ26を備える。
 ネットワーク34は、情報処理装置10cにおける第1のSSDドライブ22a、第2のSSDドライブ22bへの書き込み速度に匹敵するピークバンド幅を有する。情報処理装置10cは当該ネットワーク34を介してストレージサーバ32にアクセスし、情報処理に必要なデータの少なくとも一部を第1のSSDドライブ22a、第2のSSDドライブ22bにダウンロードして用いる。巨大なテクスチャや音声データ、3Dデータを含むゲームアプリケーションの場合、レイテンシに対する要求が厳しい。
 そのため従来は、直近で使用するデータを極力、情報処理装置のシステムメモリに展開し、格納しきれないデータについては、明示的なロード待ち画面を表示させたうえでサーバからダウンロードするか、必要となるデータを予測してサーバから先読みしていた。例えば複数のユーザに人気のゲームタイトルについては情報処理装置にあらかじめダウンロードしておき、あまり人気のないゲームタイトルについては必要に応じてダウンロードする、といった制御を、サーバのロードバランサが行うことにより、SSDドライブへの書き込みバンド幅が逼迫しないように負荷を分散させる。
 本実施の形態において読み出し専用モードを導入することにより、1フレームの描画時間より十分短い200μsec程度のレイテンシが読み出し処理において保証されると、一部データについては先読みなしに、読み出したデータを描画中のフレームに用いることができる。NANDモジュールに格納可能なデータのサイズが数百ギガバイト~数テラバイトであることを踏まえると、1つのゲームタイトルのデータ全体をストレージサーバ32からロードしておき、それを用いて低レイテンシでゲームを進捗させることは十分可能である。
 例えば情報処理装置10cは、ユーザが選択したゲームタイトルをストレージサーバ32から第1NANDモジュール20aにロードしてからゲームを起動させる。ゲーム実行中は上述のとおり、第1のSSDドライブ22aを読み出し専用モードで用いる。一方、ストレージサーバ32のロードバランサは、情報処理装置10cを含む複数の計算ノードで実行中のゲームタイトルや、待機中のゲームタイトルなどに基づき、各計算ノードで次に実行されそうなゲームタイトルを予測する。
 情報処理装置10cは、その予測結果に従い、次に実行されそうなゲームタイトルをストレージサーバ32からバックグラウンドでロードしたうえ、読み出し/書き込みモードで動作している第2NANDモジュール20bに格納する。このように読み出しと書き込みのSSDドライブを異ならせることにより、各処理に用いるバンド幅は互いに影響されず、それぞれのピークバンド幅を維持できる。また各処理のレイテンシも互いに影響されないため、一定値以下のレイテンシが保証される。
 図5は、本実施の形態におけるSSDドライブに対するアクセス処理の流れを例示している。(a)は読み出し専用モードのSSDドライバ、(b)は読み出し/書き込みモードのSSDドライバに対する処理の変遷であり、図の横方向を時間経過として、各処理に要する時間を矩形の長さで表している。ここで読み出し処理を「R」、書き込み処理を「W」、ブロックのデータ消去を「Erase」と表記している。
 この例でSSDドライブは複数のチャンネルで構成され(図では4チャンネル)、データアクセスは当該複数チャンネルで並列になされるとする。また各チャンネルを複数のNANDデバイスで構成し、チップイネーブル信号でデバイスを選択することにより、読み出し処理や書き込み処理において生じるレイテンシを隠蔽できる。
 NANDデバイスをSLCモードで用い、データ読み出しに要する時間を40μsec、書き込み時間を200μsec、フラッシュコントローラとNANDモジュール間のインターフェース速度を1Gバイト/sec、データ消去時間を5msecとする。また読み出しおよび書き込みの単位はページサイズ=16KiB、2プレーンで32KiBとする。さらにホストユニット12とのインターフェースの転送バンド幅を片側6.5GB/secとする。ただし本実施の形態をこれらの数値に限定する趣旨ではない。
 上述の数値例の場合、(a)に示す読み出し専用モードにおいてSSDドライバは、ホストユニット12から発行された読み出し要求を、各チャンネルにおいて40μsec周期で処理していく。この読み出し処理のバンド幅は、1チャンネルあたり32768/40=819.2Mバイト/secとなる。図示するように、1チャンネルのデータ転送中に別のチャンネルで次のページを読み出すことにより、伝送にかかる時間を隠蔽できる。例えば8チャンネルあれば、バンド幅は6.5Gバイト/secとなり、ホストユニット12とのインターフェースの転送バンド幅を最大限活用できる。
 一方、(b)に示す読み出し/書き込みモードにおいてSSDドライバは、ホストユニット12から発行された書き込み要求のほか、数十MiB単位のブロックのデータ消去やガベージコレクションなどのバックグラウンドジョブを実行する必要がある。このうち書き込み処理のバンド幅は、1チャンネルあたり32768/200=163.84Mバイト/secである。8チャンネルのそれぞれに4つのデバイスを設け32個のデバイスとすると、合計のバンド幅は5.2Gバイト/secとなり、書き込みにおいてもホストユニット12とのインターフェースの転送バンド幅を活用できる。
 一方、ワーストケースでのレイテンシの見積もりは次のようになる。例えば読み出し専用モードのSSDドライブにおいて優先度の高い読み出し要求を割り込ませる場合、発行済みの要求による読み出し処理、割り込ませる要求による読み出し処理、読み出したデータの伝送時間を含めると、レイテンシは約120μsecとなる。ここで、読み出すデータのサイズが大きくなると、各チャンネルに対し同時に発行される要求数が増えるため、処理待ちのためのレイテンシが加算される。
 例えば8チャンネル構成のSSDドライブに対し1MiBのデータを要求した場合、1チャンネル当たり4個の要求が発行されるため、3個分の処理待ち時間として120μsecが加算されレイテンシは合計240μsecとなる。同様の計算により、32MiBのデータを要求した場合のレイテンシは5.2msecとなる。要求されたデータサイズが256KiB以下であれば、1チャンネル当たりの要求数は1つとなるため、レイテンシは上述のとおり120μsecですむ。ここにホストユニット12における処理完了待ちなどのオーバーヘッドを加味すると、読み出しのレイテンシはおよそ200μsecを実現できる。
 一方、読み出し/書き込みモードのSSDドライブにおいて優先度の高い読み出し要求を割り込ませる場合は、発行済みの書き込み要求やデータ消去要求をキャンセルしない限り、数msecのレイテンシが発生し得る。一方で、そのように書き込み要求やデータ消去要求をキャンセルしてしまうと、書き込み要求のレイテンシが非常に長くなってしまう。そのためいずれは読み出し要求を長時間待機させたうえで、書き込みやデータ消去を進捗させるといった複雑な処理が必要になる。
 本実施の形態では、読み出し専用モードのSSDドライブを確保することにより、そのような制御から読み出し処理を解放する。これにより、読み出し処理のみ、書き込み処理のみを行う場合のピークパフォーマンスを安定的に保証できる。なお以上の説明で想定したSLCは高速アクセスが可能なうえ、TLCと比較し、同じ領域に対するデータの読み出し頻度が抑えられるため、電圧印加による劣化が小さい点でも有利である。一方、本実施の形態をSLCに限る趣旨ではなく、TLCであっても同様の効果が得られる。
 次に、以上の構成によって実現される情報処理装置の動作について説明する。図6は、情報処理装置10cが、必要なファイルをストレージサーバ32からダウンロードし情報処理を行う手順を示すフローチャートである。この例で情報処理装置10cは、第1および第2の2つのSSDドライブを備えるとする。まず情報処理装置10cは初期処理を実施したうえ(S10)、第1のSSDドライブ22a、第2のSSDドライブ22bを読み出し/書き込みモードでマウントする(S12)。
 そして情報処理装置10cは、ユーザが選択するなどしてフォアグラウンドで実行すべきアプリケーションAのデータをストレージサーバ32からダウンロードし、第1のSSDドライブ22aへ格納する(S14)。必要なデータが全て格納されたら、情報処理装置10cは当該第1のSSDドライブ22aを一旦アンマウントし、読み出し専用モードでマウントし直す(S16)。この際、第1のSSDドライブ22aの第1フラッシュコントローラ18aは、読み出し専用のファームウェアをロードすることにより、内部の構成や設定を切り替える。
 そのうえで情報処理装置10cは、アプリケーションAを起動することにより、保証されたレイテンシやパフォーマンスで、第1のSSDドライブ22aからデータを読み出しながら処理を進捗させる(S18)。その間に情報処理装置10cはバックグラウンドで、次の実行が予測されるアプリケーションBのデータをストレージサーバ32からダウンロードし、読み出し/書き込みモードのままである第2のSSDドライブ22bへ格納していく(S20)。
 アプリケーションBへの切り替えの必要が生じないうちは、フォアグラウンドでアプリケーションAの処理を継続し(S22のN)、切り替えの必要が生じたら(S22のY)、アプリケーションAの処理を停止させる(S24)。そして情報処理装置10cは、第1のSSDドライブ22aを一旦アンマウントし、読み出し/書き込みモードで再マウントする(S26)。この際、第1のSSDドライブ22aの第1フラッシュコントローラ18aは、読み出し/書き込み用のファームウェアをリロードすることにより、内部の構成や設定を切り替える。
 なお情報処理装置10cは、第1のSSDドライブ22aを読み出し/書き込みモードとしたあと、アプリケーションAの実行中に第2のSSDドライブ22bに書き込んだセーブデータやパッチデータなどの追加データを、必要に応じて第1のSSDドライブ22aにコピーしてよい。そして情報処理装置10cは、次に実行すべきアプリケーションBのデータが格納された第2のSSDドライブ22bを一旦アンマウントし、読み出し専用モードで再マウントする(S28)。この際、第2のSSDドライブ22bの第2フラッシュコントローラ18bは、読み出し専用のファームウェアをロードすることにより、内部の構成や設定を切り替える。
 そのうえで情報処理装置10cは、アプリケーションBを起動することにより、保証されたレイテンシやパフォーマンスで、第2のSSD22bドライブからデータを読み出しながら処理を進捗させる(S30)。以後、必要に応じて格納先を切り替えながら、アプリケーションのデータをストレージサーバ32からダウンロードするとともに、当該データが格納済みのSSDドライブを読み出し専用モードで利用しつつ処理を進捗させる。
 その間に情報処理装置10cは必要に応じて、次の実行が予測されるアプリケーションCのデータをストレージサーバ32からダウンロードし、バックグラウンドで第1のSSDドライブ22aへ格納してもよい(S20)。以後同様に、少なくともフォアグラウンドで実行するアプリケーションのデータを格納したSSDドライブは読み出し専用で用いるとともに、読み出し/書き込みモードのSSDドライブにおいては、書き込みを含む必要な処理をバックグラウンドで実施する。
 図7は、図6のS10における初期処理とS12におけるマウント処理の手順を詳細に示すフローチャートである。まず情報処理装置10cの電源が投入されると(S40)、第1フラッシュコントローラ18a、第2フラッシュコントローラ18bは、読み出し/書き込み用のファームウェアを情報処理装置10c内部の記憶装置からロードする(S42)。ここで記憶装置とは、第1NANDモジュール20a、第2NANDモジュール20bでもよいし、別途準備した、ファームウェアを格納する専用のシリアルフラッシュデバイスなどでもよい。この際、ホストユニット12も、シリアルフラッシュなど情報処理装置10c内の記憶装置からBIOSをロードする。
 次に第1フラッシュコントローラ18a、第2フラッシュコントローラ18bはそれぞれ、ロードしたファームウェアにより、第1NANDモジュール20a、第2NANDモジュール20bにアクセスし、ドライブのメタデータなど各種制御情報を読み出して、第1のSSDドライブ22a、第2のSSDドライブ22bを初期化する(S44)。次に第1フラッシュコントローラ18a、第2フラッシュコントローラ18bは、ホストユニット12側からの初期化処理を受け付ける(S46)。
 具体的にはホストユニット12(BIOS)はまず、第1のSSDドライブ22a、第2のSSDドライブ22bにアクセスするためのデバイスドライバを、PCIeのデバイスIDに基づきロードする。ホストユニット12は当該デバイスドライバにより、第1のSSDドライブ22a、第2のSSDドライブ22bのレジスタを初期化し、コマンドキューを生成するなどの各種初期化処理を行う。当該初期化が完了すると、ホストユニット12から第1のSSDドライブ22a、第2のSSDドライブ22bへのアクセスが可能になるため、ホストユニット12はオペレーティングシステムのロードなど必要な初期処理を実施する(S48)。
 図8は、図6のS16における読み出し専用モードでのマウント処理の手順を詳細に示すフローチャートである。まずホストユニット12は、アプリケーションAの全てのデータの書き込み処理が完了するのを待ってから、第1のSSDドライブ22aをアンマウントする(S50)。なおこの時点で第1フラッシュコントローラ18aにロードされているファームウェアは、ドライブを読み出し専用モードで再起動するための特別なコマンドをサポートするものとする。第2フラッシュコントローラ18bにロードされているファームウェアも同様である。
 これにより第1フラッシュコントローラ18aは、アンマウントの時点での第1のSSDドライブ22aのステータス情報を第1NANDモジュール20aに書き出しておく。ステータス情報のセーブが完了すると、第1フラッシュコントローラ18aは、読み出し専用のファームウェアを情報処理装置10c内部の記憶装置からロードするとともに(S52)、内部のレジスタにマッピングされたソフトリセット機能にアクセスすることにより、第1のSSDドライブ22aをリセットする(S54)。
 ドライブがソフトリセットされたら第1フラッシュコントローラ18aは、ロード済みの読み出し専用のファームウェアを実行し、セーブされていたステータス情報や各種制御情報を第1NANDモジュール20aからロードして第1のSSDドライブ22aを初期化する(S56)。なおS54における第1フラッシュコントローラ18aのソフトリセットによりPCIeリンクが切断される場合、ホストユニット12はそれを検出してデバイスドライバをアンロードする。
 そしてS56において、読み出し専用ファームウェアによりドライブが初期化され、再度PCIe接続が確立されると、ホストユニット12は、PCIeツリーをスキャンしてデバイスIDを読み出す。これによりホストユニット12は、再度適切なデバイスドライバをロードできる。一方、PCIeリンクが切断されない場合は、読み出し/書き込みおよび読み出し専用の双方をサポートするドライバを用いることにより、モード切り替えによらず継続して第1のSSDドライブ22aを制御できる。
 そしてホストユニット12は、読み出し専用のファームウェアに合わせて、再度、第1のSSDドライブ22aを初期化する(S58)。これによりホストユニット12は、読み出し/書き込みモードとは構成が異なり、読み出し専用のコマンドキューなど性能保証のための設定がなされた第1のSSDドライブ22aを再マウントできる。
 以上の処理により、アプリケーションAとそれをサポートするファイルシステムは、読み出し専用のファームウェアが提供する各種機能により、アプリケーションAが必要とする帯域およびレイテンシを満足させることができる。図6のS26において、読み出し/書き込みモードでSSDドライブを再マウントする際は、図8に示した手順と同様にドライブを一旦、アンマウントしたうえ、読み出し/書き込み用のファームウェアによって初期化すればよい。
 以上述べた本実施の形態によれば、情報処理装置において、NAND型フラッシュメモリを含むNANDモジュールとフラッシュコントローラにより構成されるSSDドライブに、読み出し専用のモードを設ける。これにより当該モードにおいて、データの書き込みに伴うNAND型フラッシュメモリ特有の複雑なコマンドスケジューリングから読み出し処理を解放する。また読み出し専用のファームウェアを用いることにより、フラッシュコントローラから余計な機能を排除して構成を単純化する。それらの結果、ホストユニットが発行した読み出し要求をインオーダーで処理でき、最低限かつ安定したレイテンシで情報処理を進捗させることができる。
 またSSDドライブを複数設け、読み出し/書き込みモードのドライブも維持する。これにより、書き込み処理やメモリ管理のための各種処理も従来と同様に実現できる。またそれらの処理を行うSSDドライブが読み出し専用モードのSSDドライブと独立しているため、フォアグラウンドでの処理のレイテンシやバンド幅に影響しない。例えば電子ゲームなどに用いる大きなサイズのイメージデータは更新の必要がないため、読み出し専用モードでの利用に好適である。またレイテンシを軽減させることにより先読みの必要性が小さくなり、読み出したデータを格納するのに必要な記憶領域を節約できるため、装置全体の製造コストを下げることができる。
 以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は、パーソナルコンピュータ、ゲーム装置、携帯端末など各種情報処理装置や、それらのいずれかを含む情報処理システムなどに利用可能である。
 10a 情報処理装置、 12 ホストユニット、 14 システムメモリ、 18a 第1フラッシュコントローラ、 18b 第2フラッシュコントローラ、 20a 第1NANDモジュール、 20b 第2NANDモジュール、 22a 第1のSSDドライブ、 22b 第2のSSDドライブ、 24 スイッチ、 26 ネットワークコントローラ、 32 ストレージサーバ、 34 ネットワーク。

Claims (12)

  1.  情報処理を実行するホストユニットと、
     前記情報処理に用いるデータを格納するメモリと、
     前記ホストユニットからの要求に従い、前記メモリへのアクセスを実行するメモリコントローラと、
     を備え、
     前記メモリコントローラは、前記メモリに格納されたデータの読み出し要求のみを受け付ける読み出し専用モードを実現することを特徴とする情報処理装置。
  2.  前記メモリコントローラは、前記読み出し要求とともに前記メモリへの書き込み要求も受け付ける読み出し/書き込みモードにおいて、前記情報処理に用いるデータの格納が完了した後、当該メモリを前記読み出し専用モードとし、
     前記ホストユニットは、前記読み出し専用モードのメモリに対し読み出し要求を発行することにより、読み出されたデータを用いて情報処理を進捗させることを特徴とする請求項1に記載の情報処理装置。
  3.  前記メモリコントローラは、前記読み出し/書き込みモードから前記読み出し専用モードへの切り替えに際し、自らの処理を規定するファームウェアを切り替えることを特徴とする請求項2に記載の情報処理装置。
  4.  前記ホストユニットは、前記読み出し/書き込みモードから前記読み出し専用モードへの切り替えに際し、前記ファームウェアが切り替えられた前記メモリコントローラを含むデバイスドライブを、マウントし直すことを特徴とする請求項3に記載の情報処理装置。
  5.  前記メモリと、前記メモリへのアクセスを実行するメモリコントローラとを含むデバイスドライブを複数備え、
     ある期間において、前記メモリコントローラのいずれかは読み出し専用モードを実現する一方、別のメモリコントローラは前記読み出し/書き込みモードを実現することを特徴とする請求項2から4のいずれかに記載の情報処理装置。
  6.  情報処理を実行する情報処理装置と、当該情報処理に用いるデータを、ネットワークを介して前記情報処理装置に提供するサーバとを含む情報処理システムであって、
     前記情報処理装置は、
     前記サーバから提供されたデータを格納するメモリと、ホストユニットからの要求に従い当該メモリへのアクセスを実行するメモリコントローラとを含むデバイスドライブを複数備え、
     前記情報処理に用いるデータの格納が完了したメモリに対応する前記メモリコントローラは、当該メモリに格納されたデータの読み出し要求のみを受け付ける読み出し専用モードを実現することを特徴とする情報処理システム。
  7.  前記情報処理装置は、前記読み出し専用モードのメモリから読み出されたデータを用いて情報処理を進捗させている間に、以後に実行が予測される情報処理に用いるデータを前記サーバから取得し、前記読み出し要求とともに前記メモリへの書き込み要求も受け付ける読み出し/書き込みモードにある別のデバイスドライブのメモリに、取得したデータを格納することを特徴とする請求項6に記載の情報処理システム。
  8.  前記情報処理装置は、前記読み出し専用モードのメモリから読み出されたデータを用いた情報処理の途中で発生した、保存すべきデータを、前記読み出し要求とともに前記メモリへの書き込み要求も受け付ける読み出し/書き込みモードにある別のデバイスドライブのメモリに書き込むことを特徴とする請求項6または7に記載の情報処理システム。
  9.  前記情報処理装置は、所定のタイミングで、前記読み出し専用モードのデバイスドライブを前記読み出し/書き込みモードに切り替え、前記別のデバイスドライバのメモリに書き込んだ前記保存すべきデータを、モード切り替え後のデバイスドライバのメモリにコピーすることを特徴とする請求項8に記載の情報処理システム。
  10.  複数の前記デバイスドライブは、スイッチを介して前記ホストユニットと並列に接続されたことを特徴とする請求項6から9のいずれかに記載の情報処理システム。
  11.  複数の前記デバイスドライブは、前記ホストユニットとカスケード接続されたことを特徴とする請求項6から9のいずれかに記載の情報処理システム。
  12.  情報処理に用いるデータをメモリに格納するステップと、
     データの格納が完了した後、当該メモリに対し、格納されたデータの読み出し要求のみを受け付ける読み出し専用モードを実現するステップと、
     前記メモリへの読み出し要求を実行するステップと、
     前記読み出し要求に従い読み出されたデータを用いて情報処理を実行するステップと、
     を含むことを特徴とする、情報処理装置による情報処理方法。
PCT/JP2022/013501 2021-05-06 2022-03-23 情報処理装置、情報処理システム、および情報処理方法 WO2022234740A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-078775 2021-05-06
JP2021078775A JP2022172698A (ja) 2021-05-06 2021-05-06 情報処理装置、情報処理システム、および情報処理方法

Publications (1)

Publication Number Publication Date
WO2022234740A1 true WO2022234740A1 (ja) 2022-11-10

Family

ID=83932149

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/013501 WO2022234740A1 (ja) 2021-05-06 2022-03-23 情報処理装置、情報処理システム、および情報処理方法

Country Status (2)

Country Link
JP (1) JP2022172698A (ja)
WO (1) WO2022234740A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014534503A (ja) * 2011-10-05 2014-12-18 エルエスアイ コーポレーション 不揮発性記憶のための自己ジャーナリングおよび階層的整合性
JP2015064860A (ja) * 2013-08-27 2015-04-09 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
JP2019008729A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステムおよび制御方法
US20190179569A1 (en) * 2017-12-07 2019-06-13 Shannon Systems Ltd. Data storage device and data storage method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014534503A (ja) * 2011-10-05 2014-12-18 エルエスアイ コーポレーション 不揮発性記憶のための自己ジャーナリングおよび階層的整合性
JP2015064860A (ja) * 2013-08-27 2015-04-09 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
JP2019008729A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステムおよび制御方法
US20190179569A1 (en) * 2017-12-07 2019-06-13 Shannon Systems Ltd. Data storage device and data storage method

Also Published As

Publication number Publication date
JP2022172698A (ja) 2022-11-17

Similar Documents

Publication Publication Date Title
US11636032B2 (en) Memory system, data storage device, user device and data management method thereof
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
US11036646B2 (en) Data storage device and method of writing logical-to-physical mapping table thereof
JP4429780B2 (ja) 記憶制御装置、制御方法、および制御プログラム。
US9183136B2 (en) Storage control apparatus and storage control method
EP1561168B1 (en) Method and apparatus for splitting a logical block
US7930468B2 (en) System for reading and writing on flash memory device having plural microprocessors
US8352697B2 (en) Method of managing files for optimal performance
US10572379B2 (en) Data accessing method and data accessing apparatus
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US8417875B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
US20100023676A1 (en) Solid state storage system for data merging and method of controlling the same according to both in-place method and out-of-place method
US20080222208A1 (en) Methods for managing files according to application
US11307992B2 (en) Method and apparatus for performing operations to namespaces of a flash memory device
CN108228478A (zh) 一种ssd写性能的提高方法及装置
US20100082537A1 (en) File system for storage device which uses different cluster sizes
US11675698B2 (en) Apparatus and method and computer program product for handling flash physical-resource sets
CN113168374A (zh) 写入命令在分区命名空间中的保持
KR20130112210A (ko) 메모리 시스템 및 그것의 페이지 교체 방법
US10776280B1 (en) Data storage device and method for updating logical-to-physical mapping table
KR20130063244A (ko) 비휘발성 메모리 시스템
WO2022234740A1 (ja) 情報処理装置、情報処理システム、および情報処理方法
JP5594647B2 (ja) ストレージ装置及びその制御方法
US11960419B2 (en) Systems and methods for data prefetching for low latency data read from a remote server
JP2015052853A (ja) ストレージ制御装置、制御方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22798847

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18557063

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22798847

Country of ref document: EP

Kind code of ref document: A1