WO2024043087A1 - ホスト装置、不揮発性記憶装置およびメモリシステム - Google Patents
ホスト装置、不揮発性記憶装置およびメモリシステム Download PDFInfo
- Publication number
- WO2024043087A1 WO2024043087A1 PCT/JP2023/028998 JP2023028998W WO2024043087A1 WO 2024043087 A1 WO2024043087 A1 WO 2024043087A1 JP 2023028998 W JP2023028998 W JP 2023028998W WO 2024043087 A1 WO2024043087 A1 WO 2024043087A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- interface
- storage device
- data
- nonvolatile storage
- size
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 117
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 9
- 102100036285 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Human genes 0.000 description 4
- 101000875403 Homo sapiens 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Proteins 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Definitions
- the present disclosure relates to a host device, a nonvolatile storage device connected to the host device, and a memory system configured from the host device and the nonvolatile storage device.
- non-volatile storage devices such as SD cards (registered trademark) and other non-volatile storage devices mounted with removable semiconductor memory equipped with flash memory and the like as back-end modules have become widespread.
- An SD card as a nonvolatile storage device is connected to a host device such as a personal computer or a camera, and data can be accessed from the host device to a flash memory that is a back-end module.
- flash memory Due to the characteristics of flash memory, when writing data from a host device that is smaller in size than a memory block, which is the management unit of the memory, write performance may decrease. On the other hand, stream data that requires real-time performance, such as moving images, must be written to flash memory with a guaranteed minimum recording speed.
- Patent Document 1 discloses a technique that avoids a significant temporary drop in write performance during writing to a memory block.
- nonvolatile storage devices have appeared that can be accessed from a host device via multiple interfaces.
- SD Express card that includes an SD bus that is implemented in existing SD cards and microSD cards, and a PCI Express (hereinafter abbreviated as PCIe) bus that is widely used as an internal bus in personal computers and the like.
- PCIe PCI Express
- the SD protocol is defined as a protocol for flash memory access via the SD bus
- NVMe NVM Express
- Non-Patent Document 1 discloses the SD protocol
- Non-Patent Document 2 discloses the NVMe protocol.
- SD Card Association "SD Specifications Part 1 Physical Layer Simplified Specification Version 8.00", 2 September 23, 020 NVM Express Inc. , “NVM Express Base Specification, Revision 2.0b”, January 6, 2022
- Patent Document 1 The technology described in Patent Document 1 is premised on a nonvolatile storage device having a single interface, and is not intended for application to a nonvolatile storage device having multiple interfaces.
- the present disclosure provides a host device, a nonvolatile storage device, and a memory system that can efficiently write data when recording stream data to a nonvolatile storage device having multiple interfaces.
- a nonvolatile storage device in the present disclosure includes a control unit that is connected to a host device via a first interface and a second interface different from the first interface, controls writing, and a memory, and the memory is connected to the host device via a first interface and a second interface different from the first interface.
- a first data block that is a management unit when writing data from the host device to the nonvolatile storage device via the first interface, and management when writing data to the nonvolatile storage device via the second interface.
- a memory system in the present disclosure is a memory system including a host device, a nonvolatile storage device connected to the host device via a first interface, and a second interface different from the first interface.
- the nonvolatile storage device includes a control unit that controls writing, and a memory, the memory being a first management unit when writing data from the host device to the nonvolatile storage device via the first interface. and a second data block that is a management unit when writing data to the nonvolatile storage device via the second interface, and the host device writes data to the nonvolatile storage device via the first interface.
- the size of the first data block is obtained via the first interface, and the first data block in which the size of recorded valid data is less than or equal to the first value is selected.
- the size of the second data block via the second interface, and obtain the size of the recorded valid data. is less than or equal to the second value, and data is written to the second data block, and the size of the first data block is n times the size of the second data block, where n is a natural number. Or 1/n times.
- the host device in the present disclosure is connected to the nonvolatile storage device via the first interface and a second interface different from the first interface, and transmits data to the nonvolatile storage device via the first interface.
- the host device in the present disclosure When writing, obtain the size of the first data block via the first interface, select the first data block in which the size of the recorded valid data is less than or equal to the first value, and write the data.
- the size of the second data block is obtained via the second interface, and the size of the recorded valid data is the second value.
- the first data block is a management unit when writing data to the nonvolatile storage device via the first interface
- the second data block is a management unit when writing data to the nonvolatile storage device via the second interface.
- a diagram explaining the AU bitmap according to this embodiment A diagram explaining the SGSU bitmap according to this embodiment Diagram explaining the relationship between AU and SGSU when configured based on conventional technology
- a diagram illustrating the state of the flash memory after recording a stream via the SD bus based on this embodiment A diagram comparing the states of flash memory after recording a stream via the SD bus based on the conventional technology and this embodiment
- FIG. 1 is a block diagram illustrating a memory system including a nonvolatile storage device according to this embodiment and a host device that controls the nonvolatile storage device.
- the host device 100 includes a first power supply section 101 that supplies at least 3.3V power, a second power supply section 102 that supplies 1.8V power, and a host device controller 103. .
- the host device controller 103 has at least a host device I/F section 105 and a file system 106.
- the host device controller 103 is an example of a writing unit.
- the host device I/F section 105 includes an SD protocol control section 105a and an NVMe protocol control section 105b.
- the nonvolatile storage device 110 includes at least a flash memory 111, a nonvolatile storage device controller 113, and a memory bus 114 that connects the flash memory 111 and the nonvolatile storage device controller 113.
- the nonvolatile storage device controller 113 includes at least a nonvolatile storage device I/F section 115.
- nonvolatile storage device I/F section 115 includes an SD protocol control section 115a and an NVMe protocol control section 115b.
- a first power supply unit 101 provided in the host device 100 supplies 3.3V power to its own host device controller 103 and the flash memory 111 in the nonvolatile storage device 110 and the nonvolatile storage device via the VDD1 line 121. It is supplied to the controller 113. Further, the second power supply unit 102 supplies 1.8V power to its own host device controller 103 and the nonvolatile storage device controller 113 in the nonvolatile storage device 110 via the VDD2 line 122. In this embodiment, two types of power, 3.3V and 1.8V, are supplied from the host device 100 to the nonvolatile storage device 110, but only one of the power supplies or other voltage values are supplied. It may be supplied in combination with a power supply having Further, which power supply line supplies power to the components in the host device 100 and the components in the nonvolatile storage device 110 is not limited to the configuration shown in FIG. 1.
- Control signals and data signals are transmitted between the host device 100 and the nonvolatile storage device 110 via the SD bus 123 or the PCIe bus 124.
- Signal transmission on the SD bus 123 is controlled by the SD protocol control section 105a in the host device I/F section 105 and the SD protocol control section 115a in the nonvolatile storage device I/F section 115.
- signal transmission on the PCIe bus 124 is controlled by the NVMe protocol control unit 105b in the host device I/F unit 105 and the NVMe protocol control unit 115b in the nonvolatile storage device I/F unit 115.
- the SD bus 123 and SD protocol are collectively referred to as an SD interface, and the PCIe bus 124 and NVMe protocol are collectively referred to as a PCIe interface.
- the host device 100 can write data transmitted via the SD bus 123 or the PCIe bus 124 to a predetermined area of the flash memory 111 in the nonvolatile storage device 110. Further, the host device 100 can read data from a predetermined area of the flash memory 111 in the nonvolatile storage device 110 via the SD bus 123 or the PCIe bus 124.
- Non-volatile storage device in this embodiment is an SD Express card equipped with an SD interface and a PCIe interface.
- host devices include digital cameras and video camcorders that are compatible with SD Express cards.
- FIG. 2 is a diagram illustrating a memory map of the flash memory 111 in the nonvolatile storage device 110. Further, FIGS. 2A and 2B are diagrams explaining memory maps defined by the SD protocol and the NVMe protocol, respectively.
- the flash memory 111 is roughly divided into a system area 201 that records management information of the nonvolatile storage device, and a user area 202 that records content data such as videos and text. Note that, unless otherwise specified, logical addresses on the flash memory 111 will be expressed in 8-digit hexadecimal numbers such as 0x12345678, with 512B (byte) as a unit, and the word "address" will be expressed as a logical shall mean an address.
- the system area 201 is arranged as an area having a predetermined size starting from 0x00000000, which is the start address of the entire flash memory 111. For example, if the size of the system area 201 is 16 MB, the addresses pointing to the system area 201 will be from 0x00000000 to 0x00008000 since one address unit is 512B. Note that in this specification, the start address and the top address have the same meaning.
- a user area 202 is placed behind the system area 201.
- the start address of the user area 202 (user area start address) is 0x00008000, and the addresses continue until the end address 0xZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ, which is determined according to the capacity of the nonvolatile storage device 110. Allocated. For example, the address of the user area 202 located 24 GB ahead of the user area start address 0x00008000 is 0x03008000 in hexadecimal notation.
- the host device 100 uses the above address to specify the data read/write position in the system area 201 and user area 202.
- the (logical) address indicating the data writing and reading position is independent of the interface (SD interface and PCIe interface in this embodiment). These are common, and how to use each interface will be explained below.
- FIG. 2(a) is a memory map defined by the SD protocol.
- An AU (Allocation Unit) defined in the SD protocol is one of the memory management units related to the erase block specific to the flash memory 111 defined on the user area 202, and is used by the host device 100 to store videos, etc. This is a memory block (data block) suitable for writing stream data that requires real-time performance.
- the size of the AU is held as a value unique to the nonvolatile storage device 110 within the SD protocol control unit 115a, and can be read by the host device 100 via the SD bus 123.
- FIG. 2(b) is a memory map defined by the NVMe protocol.
- SGS Stream Granularity Size
- SGS Unit Stream Granularity Size
- a unique value of SGS is held within the NVMe protocol control unit 115b, and the host device 100 can read it via the PCIe bus 124.
- the nonvolatile storage device 110 can independently set the SGSU size (SGS) and the AU size of the SD protocol.
- SGS SGSU size
- the host device 100 supplies 3.3V power to each component in the nonvolatile storage device 110 via the VDD1 line. Thereafter, the SD protocol control unit 105a of the host device I/F unit 105 sends and receives signals to and from the nonvolatile storage device 110 via the SD bus 123, and initializes the nonvolatile storage device controller 113 and flash memory 111. make a change.
- At least a file allocation table (hereinafter abbreviated as FAT) indicating in which area within the flash memory 111 valid data is recorded is generated and held in the system area 201.
- FAT file allocation table
- the file system 1 in the host device 100 is Required to use exFAT as 06 It will be done.
- the nonvolatile storage device 110 is such an SD card, an allocation bitmap is generated instead of FAT when the flash memory 111 is initialized. The series of operations described above is called activation of the nonvolatile storage device 110 using the SD bus 123.
- the host device 100 can read and write data to and from the flash memory 111 in the nonvolatile storage device 110 via the SD bus 123. Become.
- the file system 106 reads out the size of the AU held in the SD protocol control unit 115a in the nonvolatile storage device I/F unit 115 to the SD protocol control unit 105a in the host device I/F unit 105. Instruct them to do so.
- the file system 106 also instructs the SD protocol control unit 105a to read the FAT or allocation bitmap from the system area 201 in the flash memory 111.
- the file system 106 compares the size of the read AU with the FAT or allocation bitmap, and generates the AU bitmap shown in FIG. 3. In the AU bitmap, "0" indicates an AU in which stream recording is not possible, and "1" indicates an AU in which stream recording is possible.
- the recording medium of the non-volatile storage device 110 is the flash memory 111
- the memory block in which valid data is recorded is When attempting to write stream data, due to the characteristics of the flash memory 111, the valid data is first read into a buffer (not shown) in the non-volatile storage device controller 113, and merged with the newly written data to write all newly secured data. It is necessary to allocate the relevant (logical) address to a memory block whose area consists of invalid data, and to write the merged data in the order of the addresses.
- the host device 100 When the host device 100 writes stream data to the nonvolatile storage device 110, it writes only stream recordable AUs based on the AU bitmap generated by the file system 106 in order to ensure that the stream data is always written at a predetermined speed or higher. Establish a rule to select and write stream data consecutively.
- the size of the AU and in which area within the flash memory 111 valid data is recorded vary depending on the nonvolatile storage device 110. Therefore, especially when the nonvolatile storage device 110 is removable, the host device 100 needs to obtain the AU size and generate an AU bitmap each time the nonvolatile storage device 110 is started using the SD bus 123. .
- the SD protocol control unit 105a in the host device I/F unit 105 supplies the nonvolatile storage device 110 via the SD bus 123.
- the SD protocol control unit 115a in the device I/F unit 115 is checked to see if the nonvolatile storage device 110 supports the PCIe bus 124.
- the host device 100 supplies 1.8V power from the second power supply unit 102 to the non-volatile storage device 110 via the VDD2 line 122. .
- the host device I/F unit 105 stops its own SD protocol control unit 105a, starts its own NVMe protocol control unit 105b, and controls the nonvolatile storage device I/F unit 115 via the PCIe bus 124. It transmits and receives signals to and from the NVMe protocol control unit 115b, and initializes the nonvolatile storage device controller 113 and flash memory 111. Note that the initialization of the flash memory 111 is performed in 1-3. As in the case of , at least the operation of generating a FAT or file allocation table and storing it in the system area 201 is included. The series of operations described above is called activation of the nonvolatile storage device 110 using the PCIe bus 124.
- the host device 100 can read and write data to the flash memory 111 in the nonvolatile storage device 110 via the PCIe bus 124. Become.
- the host device 100 uses the PCIe bus 124, it does not check whether the SD bus 123 supports the PCIe bus 124 as described above, and initializes the nonvolatile storage device controller 113 and the flash memory 111 directly via the PCIe bus 124. In other words, the nonvolatile storage device 110 may be activated using the PCIe bus 124.
- the file system 106 includes the SGS held in the NVMe protocol control unit 115b in the non-volatile storage device I/F unit 115 and the flash memory 111 for the NVMe protocol control unit 105b in the host device I/F unit 105.
- the FAT or allocation bitmap stored in the system area 201 of is read, and the SGSU bitmap shown in FIG. 4 is generated.
- SGSUs that include valid data are assigned "0" as stream recording is not possible, and SGSUs that do not include valid data are assigned "1" as stream recordable.
- SGSU- ⁇ and SGSU- ⁇ contain valid data
- "0" which means stream recording is not possible
- the value of the corresponding SGSU bitmap is set to "1" which means that stream recording is possible. Note that if the total size of valid data is less than or equal to a predetermined value, "1" may be assigned to indicate that stream recording is possible; otherwise, "0” may be assigned to indicate that stream recording is not possible.
- the host device 100 needs to read the SGS and generate the SGSU bitmap each time the nonvolatile storage device 110 is activated using the PCIe bus 124.
- the host device 100 selects only stream recordable SGSUs based on the SGSU bitmap generated by the file system 106 and continuously writes stream data. Apply the rule of writing.
- the host device 100 first records stream data to the nonvolatile storage device 110 via the SD bus 123 in a conventional manner, and then writes the stream data to the same nonvolatile storage device 110.
- stream data is recorded via the PCIe bus 124.
- FIG. 5 is a diagram showing a part of the user area 202 of the flash memory 111 in the nonvolatile storage device 110.
- the user area 202 starts from address 0x00008000, the size of AU is 128MB, and the size of SGS is 192MB.
- the address 0x03008000 becomes the start address of both the AU and the SGSU.
- the start addresses of AU-b and AU-c are 0x03048000 and 0x03088000, respectively.
- the SGSU whose first address is address 0x03008000 is defined as SGSU- ⁇ , and the SGSU that follows this is defined as SGSU- ⁇ .
- the start address of SGSU- ⁇ becomes 0x03068000.
- the host device 100 writes stream data to the nonvolatile storage device 110, so 1-3.
- the nonvolatile storage device 110 is activated using the SD bus 123 using the method described in .
- the host device 100 selects AU-b as a stream recordable AU from the created AU bitmap, and writes stream data having the same size as the AU size from the start address 0x03048000 of AU-b to 0x03088000.
- the host device 100 updates the FAT or allocation bitmap stored in the system area 201 according to the status of data writing to the flash memory 111 as necessary.
- the host device 100 temporarily stops power supply to the nonvolatile storage device 110 in order to write the stream data to the same nonvolatile storage device 110 via the PCIe bus 124, and performs steps 1-4.
- the nonvolatile storage device 110 is activated using the PCIe bus 124 using the method described in . Since the nonvolatile storage device 110 is removable, the FAT or allocation bitmap is updated during the initialization process of the flash memory 111, which is included in the startup operation of the nonvolatile storage device 110.
- the nonvolatile storage device 110 is Stream recording to the flash memory 111 becomes impossible within a short time after the start of use. Assuming that the bit rate of the stream is constant, this results in a shorter total stream time that can be recorded in the non-volatile storage device 110, which is not desirable for end users.
- this problem occurs when the host device 100 first records stream data to the nonvolatile storage device 110 via the PCIe bus 124 and then records the stream data via the SD bus 123, This problem may also occur when stream data is continued to be recorded while switching the interface to the device 110.
- the inventor recognized this problem during the development process of the memory system, and came up with a solution to the problem.
- the details of the solution will be specifically explained below.
- FIG. 1 is a diagram showing the configuration of a memory system according to this embodiment.
- FIG. 7 is a diagram showing a part of the user area 202 of the flash memory 111 in the nonvolatile storage device 110 according to the present embodiment.
- the user area 202 starts from address 0x00008000, the size of AU is 128MB, and the size of SGS is 256MB.
- address 0x03008000 becomes the start address of both AU and SGSU.
- the start addresses of AU-b, AU-c, and AU-d are 0x03048000, 0x03088000, and 0x030C8000, respectively.
- the SGSU whose first address is address 0x03008000 is defined as SGSU- ⁇ , and the SGSU that follows this is defined as SGSU- ⁇ .
- the start address of SGSU- ⁇ becomes 0x03088000.
- the host device 100 writes stream data to the nonvolatile storage device 110 via the SD bus 123, so 1-3.
- the nonvolatile storage device 110 is activated using the SD bus 123 using the method described in .
- the host device 100 selects AU-b as a stream recordable AU from the created AU bitmap, and writes stream data having the same size as the AU size from the start address 0x03048000 of AU-b to 0x03088000.
- the FAT or allocation bitmap is updated according to the data writing status to the flash memory 111.
- the host device 100 temporarily stops power supply to the nonvolatile storage device 110 in order to write the stream data to the same nonvolatile storage device 110 via the PCIe bus 124, and performs steps 1-4.
- the nonvolatile storage device 110 is activated using the PCIe bus 124 using the method described in .
- the value of the SGSU bitmap corresponding to SGSU- ⁇ becomes "0".
- the size of the stream data that the host device 100 writes to the AU via the SD bus 123 is assumed to be the same as the AU size, but it is smaller than the AU size (for example, the size of the AU A similar effect can be obtained even when 100 MB of stream data is written to the AU when the AU is 128 MB.
- FIG. 9 is a diagram showing the relationship between AUs and SGSUs in the partial user area 901 included in the user area 202.
- FIG. 2 is a diagram showing a part of the state of a flash memory 111 of a memory system operating based on the conventional technology described in .
- the size of the AU is 128MB and the size of the SGS is 192MB.
- 12 AUs from a predetermined address X to AU-l in the order of AU-a, AU-b, and 8 AUs from the address Consider a partial user area 901 of 1536 MB in which SGSUs are arranged.
- a 128MB file corresponding to the size of the AU is stored from the start address of each of AU-b, AU-e, AU-h, and AU-k.
- Write stream data sequentially.
- the host device 100 starts up the nonvolatile storage device 110 using the PCIe bus 124, reads the updated FAT or allocation bitmap, and creates an SGSU bitmap.
- FIG. 9(b) is a diagram showing a part of the state of the flash memory 111 of the memory system operating based on this embodiment.
- the size of the AU is 128MB
- the size of the SGS is 256MB.
- 12 AUs from a predetermined address X to AU-l in the order of AU-a, AU-b, and 6 AUs from the address Consider a partial user area 901 of 1536 MB in which SGSUs are arranged.
- the host device 100 starts up the nonvolatile storage device 110 using the PCIe bus 124, reads the updated FAT or allocation bitmap, and creates an SGSU bitmap.
- the values of the SGSU bitmaps of SGSU- ⁇ , SGSU- ⁇ , SGSU- ⁇ , and SGSU- ⁇ are “0”.
- the value of the SGSU bitmap is "1".
- the boundary of the larger memory block SGSU does not coincide with the boundary of the smaller memory block AU. There is. Therefore, as shown in FIG. 9(a), when stream data is recorded within one AU via the SD bus 123, it may be recorded across SGSU boundaries, and as a result, A situation may occur where stream data cannot be recorded via the PCIe bus 124 in both of the two SGSUs before and after the SGSU boundary.
- the SGSU boundary always coincides with the AU boundary. Therefore, when the host device 100 writes similar stream data via the SD bus 123, the number of SGSUs whose SGSU bitmap value can maintain "1" increases, resulting in longer stream data. can be recorded.
- SGS specified by the NVMe protocol has a relatively high degree of freedom in setting, and in the case of a nonvolatile storage device 110 that has only a PCIe interface, it is possible to set an SGS value suitable for the flash memory 111 to be installed. be.
- the nonvolatile storage device 110 having both an SD interface and a PCIe interface
- the set value of the AU size defined in the SD protocol there are restrictions on the set value of the AU size defined in the SD protocol, and it may be difficult to match the two values.
- it is recommended to set the memory block size of one interface to be a natural number times the size of the memory block of the other interface, or (1/natural number) times the size of the memory block of the other interface. It is necessary to realize the record.
- the host device 100 first records stream data in the nonvolatile storage device 110 via the SD 123 and then records the stream data via the PCIe bus 124. It can also be applied when recording stream data via the SD bus 123 after recording stream data via the bus 124, or when continuing to record stream data while switching interfaces to the same nonvolatile storage device 110. .
- the present disclosure relates to a nonvolatile storage device such as an SD card or a microSD card that has multiple interfaces such as an SD interface and a PCIe interface, a host device that controls the nonvolatile storage device, and the host device and the nonvolatile storage device. It can be applied to a memory system consisting of.
- host device 101 first power supply unit 102 second power supply unit 103 host device controller 105 host device I/F unit 105a SD protocol control unit 105b NVMe protocol control unit 106 file system 110 nonvolatile storage device 111 flash memory 113 nonvolatile Storage device controller 114 Memory bus 115 Nonvolatile storage device I/F section 115a SD protocol control section 115b NVMe protocol control section 121 VDD1 line 122 VDD2 line 123 SD bus 124 PCIe bus 201 System area 202 User area 901 Partial user area
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
不揮発性記憶装置は、書き込みを制御する制御部と、メモリと、を備え、メモリは、ホスト装置と第1のインターフェースおよび第1のインターフェースとは異なる第2のインターフェースを介して接続され、ホスト装置から第1のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である第1のデータブロックと、第2のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である第2のデータブロックと、を有する。第1のデータブロックの大きさ、nを自然数としたとき、第2のデータブロックの大きさのn倍、もしくは1/n倍である。
Description
本開示は、ホスト装置、ホスト装置に接続された不揮発性記憶装置、ならびにホスト装置および不揮発性記憶装置から構成されるメモリシステムに関する。
近年、SDカード(登録商標)をはじめ、フラッシュメモリ等をバックエンドモジュールとして具備した挿抜可能な半導体メモリを実装した不揮発性記憶装置が普及している。不揮発性記憶装置としてのSDカードは、パソコンやカメラのようなホスト装置と接続されて、ホスト装置からバックエンドモジュールであるフラッシュメモリに対してデータのアクセスを行うことができる。
フラッシュメモリの特性上、当該メモリの管理単位であるメモリブロックよりもサイズが小さいデータをホスト装置から書き込むとき、書き込み性能が低下する場合がある。一方動画などリアルタイム性が要求されるストリームデータは、最低記録速度を保証してフラッシュメモリに書き込むことが求められる。
特許文献1は、メモリブロックへの書き込み途中で書き込み性能が一時的に著しく低下することを回避する技術を開示している。
また昨今、ホスト装置から複数のインターフェースを介してアクセス可能な不揮発性記憶装置が出現している。その一例として、既存のSDカードやmicroSDカードに実装されているSDバスと、パソコンなどの内部バスとして広く使用されているPCI Express(以後PCIeと略記)バスとを備えたSD Expressカードがある。SDバスを介したフラッシュメモリアクセスのプロトコルとしてSDプロトコルが定義されているのに対し、PCIeバスを介したフラッシュメモリアクセスプロトコルとして、NVM Express(以後NVMeと略記)がある。
非特許文献1にはSDプロトコルが、非特許文献2にはNVMeプロトコルが開示されている。
SD Card Association、「SD Specifications Part 1 Physical Layer Simplified Specification Version 8.00」、2020年9月23日
NVM Express Inc.、「NVM Express Base Specification,Revision 2.0b」、2022年1月6日
特許文献1に記載の技術は、単一のインターフェースを有する不揮発性記憶装置の場合を前提としており、複数のインターフェースを有する不揮発性記憶装置への適用を想定していない。
本開示は、複数のインターフェースを有する不揮発性記憶装置に対してストリームデータを記録する時、効率的にデータを書き込むことが可能なホスト装置、不揮発性記憶装置およびメモリシステムを提供する。
本開示における不揮発性記憶装置は、ホスト装置と第1のインターフェースおよび第1のインターフェースとは異なる第2のインターフェースを介して接続され、書き込みを制御する制御部と、メモリと、を備え、メモリは、ホスト装置から第1のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である第1のデータブロックと、第2のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である第2のデータブロックと、を有し、第1のデータブロックの大きさは、nを自然数としたとき、第2のデータブロックの大きさのn倍、もしくは1/n倍である。
また、本開示におけるメモリシステムは、ホスト装置と、ホスト装置と第1のインターフェースおよび第1のインターフェースとは異なる第2のインターフェースを介して接続される不揮発性記憶装置とからなるメモリシステムであって、不揮発性記憶装置は、書き込みを制御する制御部と、メモリと、を備え、メモリは、ホスト装置から第1のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である第1のデータブロックと、第2のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である第2のデータブロックと、を有し、ホスト装置は、第1のインターフェースを介して不揮発性記憶装置にデータを書き込むとき、第1のインターフェースを介して第1のデータブロックの大きさを取得し、記録済の有効データの大きさが第1の値以下である第1のデータブロックを選択してデータを書き込み、第2のインターフェースを介して不揮発性記憶装置にデータを書き込むとき、第2のインターフェースを介して第2のデータブロックの大きさを取得し、記録済の有効データの大きさが第2の値以下である第2のデータブロックを選択してデータを書き込み、第1のデータブロックの大きさは、nを自然数としたとき、第2のデータブロックの大きさのn倍、もしくは1/n倍である。
また、本開示におけるホスト装置は、不揮発性記憶装置と第1のインターフェースおよび第1のインターフェースとは異なる第2のインターフェースを介して接続され、第1のインターフェースを介して不揮発性記憶装置にデータを書き込むとき、第1のインターフェースを介して第1のデータブロックの大きさを取得し、記録済の有効データの大きさが第1の値以下である第1のデータブロックを選択してデータを書き込み、第2のインターフェースを介して不揮発性記憶装置にデータを書き込むとき、第2のインターフェースを介して第2のデータブロックの大きさを取得し、記録済の有効データの大きさが第2の値以下である第2のデータブロックを選択してデータを書き込む書き込み部、を備え、第1のデータブロックは、第1のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位であり、第2のデータブロックは、第2のインターフェースを介して不揮発性記憶装置にデータを書き込むときの管理単位である。
本開示により、複数のインターフェースを有する不揮発性記憶装置に対してストリームデータを記録する時、効率的にデータを書き込むことが可能となる。
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、同じ符号を付した構成要素については、それぞれの実施の形態において同一の機能を有するものとする。
なお、発明者は、当業者が本実施の形態を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
[1.本実施の形態にかかるメモリシステムの構成と動作]
最初に、本実施の形態にかかるメモリシステムの構成と動作について、図1から図6を用いて説明する。
最初に、本実施の形態にかかるメモリシステムの構成と動作について、図1から図6を用いて説明する。
[1-1.ホスト装置および不揮発性記憶装置からなるメモリシステムの構成]
図1は、本実施の形態にかかる不揮発性記憶装置、および不揮発性記憶装置を制御するホスト装置から構成されるメモリシステムについて説明したブロック図である。
図1は、本実施の形態にかかる不揮発性記憶装置、および不揮発性記憶装置を制御するホスト装置から構成されるメモリシステムについて説明したブロック図である。
図1に示すように、ホスト装置100は、少なくとも3.3V電源を供給する第1電源供給部101、1.8V電源を供給する第2電源供給部102、ホスト装置コントローラ103から構成されている。
ホスト装置コントローラ103は、少なくともホスト装置I/F部105、ファイルシステム106を有する。ホスト装置コントローラ103は、書き込み部の一例である。
さらに、ホスト装置I/F部105はSDプロトコル制御部105aおよびNVMeプロトコル制御部105bを有する。
不揮発性記憶装置110は、少なくともフラッシュメモリ111、不揮発性記憶装置コントローラ113、および、フラッシュメモリ111と不揮発性記憶装置コントローラ113とを接続するメモリバス114から構成されている。
不揮発性記憶装置コントローラ113は、少なくとも不揮発性記憶装置I/F部115を有する。
さらに、不揮発性記憶装置I/F部115はSDプロトコル制御部115aおよびNVMeプロトコル制御部115bを有する。
ホスト装置100に備えられている第1電源供給部101は、3.3V電源を自身のホスト装置コントローラ103、およびVDD1ライン121を介して不揮発性記憶装置110内のフラッシュメモリ111および不揮発性記憶装置コントローラ113に供給する。また、第2電源供給部102は、1.8V電源を自身のホスト装置コントローラ103、およびVDD2ライン122を介して不揮発性記憶装置110内の不揮発性記憶装置コントローラ113に供給する。本実施の形態においては、ホスト装置100から不揮発性記憶装置110に対して3.3Vおよび1.8Vの2種類の電源を供給しているが、いずれか一方の電源のみ、もしくは他の電圧値をもつ電源と組み合わせて供給してもよい。また、ホスト装置100内の構成要素および不揮発性記憶装置110内の構成要素に対して、どの電源ラインから電源が供給されるかは、図1に記載の形態に限らない。
ホスト装置100および不揮発性記憶装置110の間は、SDバス123もしくはPCIeバス124を介して制御信号およびデータ信号が伝送される。SDバス123上の信号伝送は、ホスト装置I/F部105内のSDプロトコル制御部105aおよび不揮発性記憶装置I/F部115内のSDプロトコル制御部115aにて制御される。同様にPCIeバス124上の信号伝送は、ホスト装置I/F部105内のNVMeプロトコル制御部105bおよび不揮発性記憶装置I/F部115内のNVMeプロトコル制御部115bにて制御される。
SDバス123とSDプロトコルとを総称してSDインターフェース、PCIeバス124とNVMeプロトコルとを総称してPCIeインターフェースと呼ぶ。
ホスト装置100は、SDバス123もしくはPCIeバス124を介して送信したデータを不揮発性記憶装置110内のフラッシュメモリ111の所定の領域に書き込むことができる。また、ホスト装置100は、不揮発性記憶装置110内のフラッシュメモリ111の所定の領域から、SDバス123もしくはPCIeバス124を介してデータを読み出すことができる。
本実施の形態における不揮発性記憶装置の例として、SDインターフェースおよびPCIeインターフェースを備えたSD Expressカードがある。また、ホスト装置の例として、SD Expressカードに対応したデジタルカメラやビデオカムコーダーなどがある。
[1-2.不揮発性記憶装置のメモリブロック]
図2は、不揮発性記憶装置110内のフラッシュメモリ111のメモリマップについて説明した図である。また、図2(a)、(b)はそれぞれSDプロトコル、NVMeプロトコルにて定義されたメモリマップについて説明した図である。
図2は、不揮発性記憶装置110内のフラッシュメモリ111のメモリマップについて説明した図である。また、図2(a)、(b)はそれぞれSDプロトコル、NVMeプロトコルにて定義されたメモリマップについて説明した図である。
はじめに、フラッシュメモリ111のメモリマップにおいて、インターフェースによらない部分の特徴について説明する。
フラッシュメモリ111は、不揮発性記憶装置の管理情報を記録するシステム領域201と、動画やテキストなどのコンテンツデータを記録するユーザー領域202とに大別される。なお、以下特に断りのない限り、フラッシュメモリ111上の論理アドレスは512B(バイト)を1単位とした0x12345678のような8桁の16進数で表記するものとし、また、「アドレス」という語は論理アドレスを意味するものとする。
システム領域201は、フラッシュメモリ111全体の先頭アドレスである0x00000000から所定の大きさを持つ領域として配置される。例えばシステム領域201の大きさを16MBとすると、システム領域201を指すアドレスは、アドレスの1単位が512Bであることから0x00000000から0x00008000までとなる。なお、本明細書において、開始アドレスと先頭アドレスとは同じ意味を有するものとしている。
システム領域201の後ろにユーザー領域202が配置される。図2では、システム領域201の大きさが16MBであるため、ユーザー領域202の開始アドレス(ユーザー領域開始アドレス)は0x00008000であり、不揮発性記憶装置110の容量に応じて定まる終端アドレス0xZZZZZZZZまでアドレスが割り振られている。例えばユーザー領域開始アドレス0x00008000から24GB分進んだ位置にあるユーザー領域202のアドレスは、16進数表記で0x03008000となる。
ホスト装置100は上記アドレスを用いてシステム領域201およびユーザー領域202内のデータ読み書きの位置を指定する。
以上説明したように、不揮発性記憶装置110におけるフラッシュメモリ111において、データの書き込みや読み出しの位置を示す(論理)アドレスは、インターフェース(本実施の形態においては、SDインターフェースおよびPCIeインターフェース)によらず共通であり、それぞれのインターフェースにおける使用方法について以下説明する。
図2(a)はSDプロトコルにて定義されたメモリマップである。SDプロトコルで規定されているAU(Allocation Unit)は、ユーザー領域202上で定義されるフラッシュメモリ111固有の消去ブロックに関連したメモリ管理単位の一つであり、ホスト装置100が動画をはじめとするリアルタイム性が要求されるストリームデータを書き込む場合に適したメモリブロック(データブロック)である。AUの大きさは、SDプロトコル制御部115a内で不揮発性記憶装置110固有の値が保持され、ホスト装置100はSDバス123を介して読み出すことができる。
図2(b)はNVMeプロトコルにて定義されたメモリマップである。NVMeプロトコルで規定されているSGS(Stream Granularity Size)はユーザー領域202上で定義されるストリームデータを扱う場合に適したメモリ管理単位の大きさであり、対応するメモリブロック(データブロック)をSGSU(SGS Unit)と呼ぶ。
SGSは、NVMeプロトコル制御部115b内で固有の値が保持され、ホスト装置100はPCIeバス124を介して読み出すことができる。
SDプロトコルにおけるAUは、NVMeプロトコルにおけるSGSUに相当する。不揮発性記憶装置110は、SGSUの大きさ(SGS)およびSDプロトコルのAUの大きさをそれぞれ独立に設定可能である。
[1-3.SDバスを介したメモリシステムの動作]
はじめに、本実施の形態のメモリシステムにおいて、ホスト装置100がSDバス123を介して、最低記録速度を保証しながら不揮発性記憶装置110に動画をはじめとするストリームデータを書き込む方法について説明する。
はじめに、本実施の形態のメモリシステムにおいて、ホスト装置100がSDバス123を介して、最低記録速度を保証しながら不揮発性記憶装置110に動画をはじめとするストリームデータを書き込む方法について説明する。
ホスト装置100は、VDD1ラインを介して3.3Vの電源を不揮発性記憶装置110内の各構成要素に供給する。その後、ホスト装置I/F部105のSDプロトコル制御部105aは、SDバス123を介して不揮発性記憶装置110との間で信号の送受信を行い、不揮発性記憶装置コントローラ113ならびにフラッシュメモリ111の初期化を行う。
フラッシュメモリ111の初期化では、少なくともフラッシュメモリ111内のどの領域に有効データが記録されているかを示すファイルアロケーションテーブル(以下FATと略記)を生成し、システム領域201に保持する。なお、SDカードにおいて容量が32GBを超えるSDXCカード(Extended Capacity SD Memory Card)や、2TBを超えるSDUCカード(Ultra Capacity SD Memory Card)では、ホスト装置100におけるファイルシステム106としてexFATを使用することが求められる。不揮発性記憶装置110がこのようなSDカードの場合は、フラッシュメモリ111の初期化において、FATの代わりにアロケーションビットマップを生成する。上記一連の動作を、SDバス123を用いた不揮発性記憶装置110の起動と呼ぶ。
SDバス123を用いた不揮発性記憶装置110の起動完了後、ホスト装置100は、SDバス123を介して不揮発性記憶装置110内のフラッシュメモリ111に対してデータの読み書きを行うことができるようになる。
ファイルシステム106は、ホスト装置I/F部105内のSDプロトコル制御部105aに対して、不揮発性記憶装置I/F部115内のSDプロトコル制御部115aに保持されているAUの大きさを読み出すよう指示する。
続いて、ファイルシステム106は、同じくSDプロトコル制御部105aに対して、FATもしくはアロケーションビットマップを、フラッシュメモリ111内のシステム領域201から読み出すよう指示する。ファイルシステム106は、読み出したAUの大きさと、FATもしくはアロケーションビットマップとを照合し、図3に記載のAUビットマップを生成する。AUビットマップにおいて、「0」はストリーム記録不可のAUを、「1」はストリーム記録可能なAUを示す。
カメラで撮影された動画など、リアルタイム性をもつストリームデータを不揮発性記憶装置110に記録する時、一時的にでもデータ書き込みに時間がかかり、結果的に一部データが記録できなくなるような事態を回避しなければならない。
特に不揮発性記憶装置110の記録媒体がフラッシュメモリ111の場合、所定のメモリブロック内でアドレスの昇順にデータを連続的に書き込む場合は問題ないが、内部に有効データが記録されているメモリブロックにストリームデータを書き込もうとする場合、フラッシュメモリ111の特性から、当該有効データを不揮発性記憶装置コントローラ113内のバッファ(図示せず)にいったん読み出し、新規に書き込むデータとマージして新たに確保した全領域が無効データからなるメモリブロックに当該(論理)アドレスを割り当て、上記マージしたデータをアドレス順に書き込む処理を行う必要がある。さらに、従来有効データが記録されていたメモリブロックからデータをバッファに読み出し後、メモリブロック全体のデータを消去し、別の(論理)アドレスを割り当てる必要がある。この場合、データをアドレス昇順に連続的に書き込む場合と比べてオーバーヘッドが発生する。
ホスト装置100が不揮発性記憶装置110にストリームデータを書き込む際、常に所定速度以上でのストリームデータ書き込みを保証するために、ファイルシステム106が生成したAUビットマップに基づき、ストリーム記録可能なAUのみを選定して連続してストリームデータを書き込む、というルールを定める。
AUビットマップ生成において、当該AU内の有効データの大きさの合計が所定の値以下であればストリーム記録可能として「1」を割り当て、そうでなければストリーム記録不可として「0」を割り当てる。
一般に、当該AU内の記録済有効データを不揮発性記憶装置コントローラ113内のバッファに読み出すとき、該有効データの大きさの合計が小さければ過大なオーバーヘッドにならないことから、このような条件を満たすAUをストリーム記録可能と設定することが可能である。一例として、AUの大きさが128MBであるとき、当該AU内に記録済の有効データの大きさの合計が、128MBの1/8に相当する16MB以下ならば、ストリーム記録可能と設定してもよい。
なお、ホスト装置100におけるAUビットマップ生成の便宜を鑑み、一部でも有効データを含むAUに対してはストリーム記録不可として「0」を、有効データを一切含まないAUに対してはストリーム記録可能として「1」を割り当ててもよい。以後の説明では、有効データの有無によってストリーム記録の可否を決定するルールに従って、AUビットマップが生成されるものとする。
図3において、AU-a、AU-dには有効データが含まれているため、対応するAUビットマップの値としてストリーム記録不可を意味する「0」を、一方AU-b、AU-c、AU-eには有効データが含まれていないため、対応するAUビットマップの値としてストリーム記録可能を意味する「1」を設定する。
AUの大きさ、ならびにフラッシュメモリ111内のどの領域に有効データが記録されているかは不揮発性記憶装置110によって異なる。従って特に不揮発性記憶装置110が挿抜可能である場合、ホスト装置100はSDバス123を用いた不揮発性記憶装置110の起動の都度、AUの大きさの取得ならびにAUビットマップの生成が必要である。
[1-4.PCIeバスを介したメモリシステムの動作]
続いて、本実施の形態のメモリシステムにおいて、ホスト装置100がPCIeバス124を介して最低記録速度を保証しながら不揮発性記憶装置110にストリームデータを書き込む方法について説明する。
続いて、本実施の形態のメモリシステムにおいて、ホスト装置100がPCIeバス124を介して最低記録速度を保証しながら不揮発性記憶装置110にストリームデータを書き込む方法について説明する。
ホスト装置100は、VDD1ラインを介して3.3Vの電源を不揮発性記憶装置110に供給後、ホスト装置I/F部105内のSDプロトコル制御部105aは、SDバス123を介して不揮発性記憶装置I/F部115内のSDプロトコル制御部115aに対して、不揮発性記憶装置110がPCIeバス124をサポートしているか確認する。
不揮発性記憶装置110がPCIeバス124をサポートしていると検出されたとき、ホスト装置100は第2電源供給部102から1.8V電源をVDD2ライン122を介して不揮発性記憶装置110に供給する。また、ホスト装置I/F部105は自身のSDプロトコル制御部105aを停止し、自身のNVMeプロトコル制御部105bを起動して、PCIeバス124を介して不揮発性記憶装置I/F部115内のNVMeプロトコル制御部115bとの間で信号の送受信を行い、不揮発性記憶装置コントローラ113ならびにフラッシュメモリ111の初期化を行う。なお、フラッシュメモリ111の初期化は、1-3.の場合と同様、少なくともFATもくしはファイルアロケーションテーブルを生成してシステム領域201へ保持する動作を含む。上記一連の動作を、PCIeバス124を用いた不揮発性記憶装置110の起動と呼ぶ。
PCIeバス124を用いた不揮発性記憶装置110の起動完了後、ホスト装置100は、PCIeバス124を介して不揮発性記憶装置110内のフラッシュメモリ111に対してデータの読み書きを行うことができるようになる。
なお、ホスト装置100がPCIeバス124を使用するにあたり、前述したSDバス123によるPCIeバス124のサポートの確認を行わず、直接PCIeバス124を介して不揮発性記憶装置コントローラ113ならびにフラッシュメモリ111を初期化、すなわちPCIeバス124を用いた不揮発性記憶装置110の起動を実行してもよい。
ファイルシステム106は、ホスト装置I/F部105内のNVMeプロトコル制御部105bに対して、不揮発性記憶装置I/F部115内のNVMeプロトコル制御部115bで保持されているSGS、ならびにフラッシュメモリ111のシステム領域201に格納されているFATもしくはアロケーションビットマップを読み出し、図4に記載のSGSUビットマップを生成する。
AUビットマップ同様、SGSUビットマップにおいて、有効データを含むSGSUはストリーム記録不可として「0」を、有効データを含まないSGSUをストリーム記録可能として「1」を割り当てる。図4においては、SGSU-α、SGSU-γには有効データが含まれているため、対応するSGSUビットマップの値としてストリーム記録不可を意味する「0」を、一方SGSU-β、SGSU-δには有効データが含まれていないため、対応するSGSUビットマップの値としてストリーム記録可能を意味する「1」を設定する。なお、有効データの大きさの合計が所定の値以下であればストリーム記録可能として「1」を割り当て、そうでなければストリーム記録不可として「0」を割り当ててもよい。
1-3.の場合と同様、SGS、ならびにフラッシュメモリ111内のどの領域に有効データが記録されているかは不揮発性記憶装置110によって異なる。従って特に不揮発性記憶装置110が挿抜可能である場合、ホスト装置100はPCIeバス124を用いた不揮発性記憶装置110の起動の都度、SGSの読み出しならびにSGSUビットマップの生成が必要である。
そして常に所定の速度以上でのストリームデータ書き込みを保証するために、ホスト装置100は、ファイルシステム106が生成したSGSUビットマップに基づき、ストリーム記録可能なSGSUのみを選定して連続してストリームデータを書き込む、というルールを適用する。
[1-5.従来方法における課題]
上記説明した本実施の形態のメモリシステムにおいて、従来の方法でホスト装置100が不揮発性記憶装置110に対してはじめにSDバス123を介してストリームデータを記録し、続いて同一の不揮発性記憶装置110に対してPCIeバス124を介してストリームデータを記録する場合を考える。
上記説明した本実施の形態のメモリシステムにおいて、従来の方法でホスト装置100が不揮発性記憶装置110に対してはじめにSDバス123を介してストリームデータを記録し、続いて同一の不揮発性記憶装置110に対してPCIeバス124を介してストリームデータを記録する場合を考える。
図5は、不揮発性記憶装置110内のフラッシュメモリ111のユーザー領域202の一部を示した図である。
ユーザー領域202は、アドレス0x00008000から開始するものとし、AUの大きさを128MB、SGSを192MBとする。AUおよびSGSUそれぞれについてユーザー領域202の開始アドレス0x00008000から隙間なく割り当てていくと、アドレス0x03008000は、AU、SGSU双方の先頭アドレスとなる。
今、アドレス0x03008000を先頭アドレスとするAUをAU-aとし、これに続くAUを順にAU-b、AU-cとする。この時、AU-b、AU-cの先頭アドレスそれぞれ0x03048000、0x03088000となる。
また、アドレス0x03008000を先頭アドレスとするSGSUをSGSU-αとし、これに続くSGSUをSGSU-βとする。この時、SGSU-βの先頭アドレスは0x03068000となる。
初めにホスト装置100は不揮発性記憶装置110にストリームデータを書き込むため、1-3.に記載の方法でSDバス123を用いた不揮発性記憶装置110の起動を実行する。ホスト装置100は、作成したAUビットマップからストリーム記録可能なAUとしてAU-bを選択し、AU-bの先頭アドレス0x03048000からAUの大きさと同じ大きさを持つストリームデータを0x03088000まで書き込む。ストリームデータ書き込み後、必要に応じてホスト装置100はシステム領域201に格納されているFATもしくはアロケーションビットマップを、フラッシュメモリ111へのデータ書き込み状況に応じて更新する。
続いてホスト装置100は、PCIeバス124を介して同じ不揮発性記憶装置110にストリームデータを書き込むため、いったん不揮発性記憶装置110への電源供給を停止し、1-4.に記載の方法でPCIeバス124を用いた不揮発性記憶装置110の起動を実行する。不揮発性記憶装置110が挿抜可能であるが故、不揮発性記憶装置110の起動操作に含まれるフラッシュメモリ111の初期化の過程で、FATもしくはアロケーションビットマップの更新が実行される。
このとき、図6に示すように、アドレス0x03048000から0x03088000まで有効データが記録済であることから、アドレス0x03048000から0x03068000に有効データが存在するSGSU-α、およびアドレス0x03068000から0x03088000に有効データが存在するSGSU-βに対応するSGSUビットマップの値はいずれも「0」となる、これはPCIeバス124を介してSGSU-α、SGSU-βいずれにもストリームデータを書き込むことができないことを意味する。
このような書き込みがユーザー領域202全体にわたって発生すると、フラッシュメモリ111に有効データ未記録領域が多く残存していても、ストリーム記録可能なSGSUの数が限られ、結果的に不揮発性記憶装置110の使用開始から短時間でフラッシュメモリ111へのストリーム記録が不可になる。これにより、ストリームのビットレートが一定であると仮定すると、不揮発性記憶装置110に記録可能なストリームの総時間が短くなるという結果を招き、エンドユーザーにとって好ましくない。
なお、本課題は、ホスト装置100が不揮発性記憶装置110に対してはじめにPCIeバス124を介してストリームデータを記録後、SDバス123を介してストリームデータを記録する場合や、同一の不揮発性記憶装置110に対してインターフェースを切り換えながらストリームデータを記録し続ける場合にも発生しうる。
発明者は、メモリシステムの開発過程において本課題を認識し、その解決手段を発案するに至った。以下、その解決手段の詳細を具体的に説明する。
[2.本実施の形態にかかるメモリシステムの構成および動作]
以下、本実施の形態を図1および図7から図9を用いて説明する。
以下、本実施の形態を図1および図7から図9を用いて説明する。
図1は本実施の形態にかかるメモリシステムの構成を示した図である。
図7は、本実施の形態にかかる不揮発性記憶装置110内のフラッシュメモリ111のユーザー領域202の一部を示した図である。
ユーザー領域202は、アドレス0x00008000から開始するものとし、AUの大きさを128MB、SGSを256MBとする。AUおよびSGSUをそれぞれユーザー領域202の先頭アドレス0x00008000から隙間なく割り当てていくと、アドレス0x03008000は、AU、SGSU双方の先頭アドレスとなる。
今、アドレス0x03008000を先頭アドレスとするAUをAU-aとし、これに続くAUを順にAU-b、AU-c、AU-dとする。この時、AU-b、AU-c、AU-dの先頭アドレスはそれぞれ0x03048000、0x03088000、0x030C8000となる。
また、アドレス0x03008000を先頭アドレスとするSGSUをSGSU-αとし、これに続くSGSUをSGSU-βとする。この時、SGSU-βの先頭アドレスは0x03088000となる。
初めにホスト装置100はSDバス123を介して不揮発性記憶装置110にストリームデータを書き込むため、1-3.に記載の方法でSDバス123を用いた不揮発性記憶装置110の起動を実行する。ホスト装置100は、作成したAUビットマップからストリーム記録可能なAUとしてAU-bを選択し、AU-bの開始アドレス0x03048000からAUの大きさと同じ大きさを持つストリームデータを0x03088000まで書き込む。ストリームデータ書き込み後、FATもしくはアロケーションビットマップはフラッシュメモリ111へのデータ書き込み状況に応じて更新される。
続いてホスト装置100は、PCIeバス124を介して同じ不揮発性記憶装置110にストリームデータを書き込むため、いったん不揮発性記憶装置110への電源供給を停止し、1-4.に記載の方法でPCIeバス124を用いた不揮発性記憶装置110の起動を実行する。このとき、図8に示すように、アドレス0x03048000から0x03088000まで有効データが記録済であることから、SGSU-αに対応するSGSUビットマップの値は「0」となる。
一方、SGSU-βは有効データが未記録であることから、対応するSGSUビットマップの値は「1」となる、これはPCIeバス124を介してSGSU-βにはストリームデータを書き込むことができることを意味する。
なお、本実施の形態の説明において、ホスト装置100がSDバス123を介してAUに書き込むストリームデータの大きさをAUの大きさと同じとしたが、AUの大きさよりも小さい(例えばAUの大きさが128MBのとき、該AUに対して100MBのストリームデータを書き込む)場合でも同様の効果が得られる。
図9は、ユーザー領域202内に含まれる部分ユーザー領域901におけるAUとSGSUとの関係を示した図である。
図9(a)は、1-5.に記載の従来の技術に基づいて動作するメモリシステムのフラッシュメモリ111の状態の一部を示した図である。このとき、AUの大きさは128MB、SGSは192MBである。また、所定のアドレスXからAU-a、AU-b、の順にAU-lまでの12個のAUが、同様にアドレスXからSGSU-α、SGSU-β、の順にSGSU-θまでの8個のSGSUがそれぞれ配置されている1536MB分の部分ユーザー領域901を考える。
最初、当該1536MB分の部分ユーザー領域901には有効データが記録されていないものとする。
ホスト装置100がSDバス123を用いた不揮発性記憶装置110の起動を実行後、AU-b、AU-e、AU-h、AU-kそれぞれの先頭アドレスからAUの大きさに相当する128MBのストリームデータを順次書き込む。この結果、128×4=512MB分の領域が消費される。
続いてホスト装置100がPCIeバス124を用いた不揮発性記憶装置110の起動を実行し、更新されたFATもしくはアロケーションビットマップを読み出してSGSUビットマップを作成する。このとき、フラッシュメモリ111の状態は図9(a)のようになっているため、SGSU-αからSGSU-θまでのすべてのSGSUビットマップの値は「0」となる。これは1536MBの部分ユーザー領域901のうち1536-512=1024MB分の未記録領域があるにも関わらず、PCIeバス124を介して当該部分ユーザー領域901にストリームデータを全く書き込めないことを意味する。
このような書き込みがユーザー領域202全体にわたって実施されると、SGSUビットマップの値が「1」のSGSUの数が早期に減少し、短時間でフラッシュメモリ111へのストリーム記録が不可能となる。
図9(b)は、本実施の形態に基づいて動作するメモリシステムのフラッシュメモリ111の状態の一部を示した図である。このとき、AUの大きさは128MB、SGSは256MBである。また、所定のアドレスXからAU-a、AU-b、の順にAU-lまでの12個のAUが、同様にアドレスXからSGSU-α、SGSU-β、の順にSGSU-ζまでの6個のSGSUがそれぞれ配置されている1536MB分の部分ユーザー領域901を考える。
図9(a)の場合と同様、初期状態として当該1536MB分の部分ユーザー領域901には有効データが記録されていないものとする。ホスト装置100がSDバス123を用いた不揮発性記憶装置110の起動を実行後、AU-b、AU-e、AU-h、AU-kそれぞれの先頭アドレスからAUの大きさに相当する128MBのストリームデータを順次書き込む。この結果、128×4=512MB分の領域が消費される。
続いてホスト装置100がPCIeバス124を用いた不揮発性記憶装置110の起動を実行し、更新されたFATもしくはアロケーションビットマップを読み出してSGSUビットマップを作成する。このとき、フラッシュメモリ111の状態は図9(b)のようになっていることから、SGSU-α、SGSU-γ、SGSU-δ、SGSU-ζのSGSUビットマップの値は「0」である一方、SGSU-β、SGSU-εは有効データが記録されていないためSGSUビットマップの値は「1」となる。これはSGSU-β、SGSU-εに相当する256x2=512MB分の領域にはPCIeバス124を介してストリームデータを書き込むことができることを意味し、記録するストリームのビットレートを一定とするならば、図9(a)の場合に比べより長時間のストリームが記録可能となる。
[3.考察]
以下、従来の技術および本実施の形態を比較した場合の違いを考察する。
以下、従来の技術および本実施の形態を比較した場合の違いを考察する。
複数のインターフェースに対応可能な不揮発性記憶装置110において、従来の技術に基づく図9(a)では、より大きなメモリブロックであるSGSUの境界が、より小さなメモリブロックであるAUの境界に一致しない場合がある。従って、図9(a)に示すように、SDバス123を介して1個のAU内に閉じてストリームデータを記録したときに、SGSUの境界をまたいで記録される場合があり、結果として、SGSU境界前後の2つのSGSU双方ともPCIeバス124を介したストリームデータの記録ができなくなる事態が発生しうる。
一方、本実施の形態に基づく図9(b)では、SGSUの境界は必ずAUの境界に一致する。従って、ホスト装置100がSDバス123を介して同様のストリームデータの書き込みを行ったとき、SGSUビットマップの値が「1」を保てるSGSUの数がより多くなり、結果としてより長時間のストリームデータを記録可能とすることができる。
ユーザー領域202の開始アドレスから隙間なくAUおよびSGSUを配置するという前提で、図9(b)のようにSGSUの境界が必ずAUの境界に一致するようにするためには、より大きなメモリブロックであるSGSUの大きさ(SGS)がより小さなメモリブロックであるAUの大きさの自然数倍になっていることが条件である。
実際、図9(a)の場合は、SGS/AUの大きさ=192MB/128MB=1.5であって自然数倍ではないのに対し、図9(b)の場合は、SGS/AUの大きさ=256MB/128MB=2であり自然数倍となっている。
昨今のNANDメモリデバイスの技術進化により、より大容量かつより複雑な構成をもつフラッシュメモリ111も出現してきている。NVMeプロトコルで規定されているSGSは比較的設定の自由度が高く、PCIeインターフェースのみを持つ不揮発性記憶装置110の場合は、実装するフラッシュメモリ111に適したSGSの値を設定することが可能である。
一方SDインターフェースおよびPCIeインターフェース双方を有する不揮発性記憶装置110の場合、AUの大きさならびにSGSについて、同一の値をそれぞれSDプロトコル制御部115aおよびNVMeプロトコル制御部115bに設定することが好ましいことは言うまでもない。しかしながら、SDプロトコルで規定されているAUの大きさの設定値には制約があり、両者の値を一致させることが困難な場合がある。そのような場合は、一方のインターフェースのメモリブロックの大きさがもう一方のインターフェースのメモリブロックの大きさの自然数倍、もしくは(1/自然数)倍と設定することが、メモリ使用効率の良いストリーム記録を実現するために必要である。
なお、本実施の形態では、ホスト装置100が不揮発性記憶装置110に対してはじめにSD123を介してストリームデータを記録後、PCIeバス124を介してストリームデータを記録する場合について説明したが、はじめにPCIeバス124を介してストリームデータを記録後、SDバス123を介してストリームデータを記録する場合や、同一の不揮発性記憶装置110に対してインターフェースを切り換えながらストリームデータを記録し続ける場合にも適用できる。
以上、添付図面を参照しながら実施の形態について説明したが、本開示はかかる例に限定されない。当業者であれば、請求の範囲に記載された範疇内において、各種の変更例、修正例、置換例、付加例、削除例、均等例に想到し得ることは明らかであり、それらについても本開示の技術的範囲に属すると了解される。また、発明の趣旨を逸脱しない範囲において、上述した実施の形態における各構成要素を任意に組み合わせてもよい。
本開示は、SDインターフェースおよびPCIeインターフェースのように複数のインターフェースを有するSDカード、microSDカード等の不揮発性記憶装置と、上記不揮発性記憶装置を制御するホスト装置、およびこれらホスト装置、不揮発性記憶装置から構成されるメモリシステムに適用することができる。
100 ホスト装置
101 第1電源供給部
102 第2電源供給部
103 ホスト装置コントローラ
105 ホスト装置I/F部
105a SDプロトコル制御部
105b NVMeプロトコル制御部
106 ファイルシステム
110 不揮発性記憶装置
111 フラッシュメモリ
113 不揮発性記憶装置コントローラ
114 メモリバス
115 不揮発性記憶装置I/F部
115a SDプロトコル制御部
115b NVMeプロトコル制御部
121 VDD1ライン
122 VDD2ライン
123 SDバス
124 PCIeバス
201 システム領域
202 ユーザー領域
901 部分ユーザー領域
101 第1電源供給部
102 第2電源供給部
103 ホスト装置コントローラ
105 ホスト装置I/F部
105a SDプロトコル制御部
105b NVMeプロトコル制御部
106 ファイルシステム
110 不揮発性記憶装置
111 フラッシュメモリ
113 不揮発性記憶装置コントローラ
114 メモリバス
115 不揮発性記憶装置I/F部
115a SDプロトコル制御部
115b NVMeプロトコル制御部
121 VDD1ライン
122 VDD2ライン
123 SDバス
124 PCIeバス
201 システム領域
202 ユーザー領域
901 部分ユーザー領域
Claims (15)
- ホスト装置と第1のインターフェースおよび前記第1のインターフェースとは異なる第2のインターフェースを介して接続される不揮発性記憶装置であって、
書き込みを制御する制御部と、メモリと、を備え、
前記メモリは、
前記ホスト装置から前記第1のインターフェースを介して前記不揮発性記憶装置にデータを書き込むときの管理単位である第1のデータブロックと、
前記第2のインターフェースを介して前記不揮発性記憶装置にデータを書き込むときの管理単位である第2のデータブロックと、を有し、
前記第1のデータブロックの大きさは、nを自然数としたとき、前記第2のデータブロックの大きさのn倍、もしくは1/n倍である、
不揮発性記憶装置。 - 前記ホスト装置からの前記データの書き込み位置を示すアドレスは、第1のインターフェースおよび第2のインターフェースで共通である、
請求項1に記載の不揮発性記憶装置。 - 前記第1のデータブロックのうち、最も若い先頭アドレスをもつ前記第1のデータブロックの先頭アドレスと、前記第2のデータブロックのうち、最も若い先頭アドレスをもつ前記第2のデータブロックの先頭アドレスとが一致している、
請求項1に記載の不揮発性記憶装置。 - 前記第2のインターフェースは、前記第1のインターフェースに対して、バス、プロトコルの少なくともいずれか一方が異なる、
請求項1に記載の不揮発性記憶装置。 - 前記第1のインターフェースはSDインターフェースであり、
前記第2のインターフェースはPCI Expressインターフェースである、
請求項4に記載の不揮発性記憶装置。 - 前記SDインターフェースに対応する前記第1のデータブロックの大きさは、前記PCI Expressインターフェースに対応する前記第2のデータブロックの大きさより小さい、もしくは等しい、
請求項5に記載の不揮発性記憶装置。 - ホスト装置と、前記ホスト装置と第1のインターフェースおよび前記第1のインターフェースとは異なる第2のインターフェースを介して接続される不揮発性記憶装置と、を有するメモリシステムであって、
前記不揮発性記憶装置は、
書き込みを制御する制御部と、メモリと、を備え、
前記メモリは、
前記ホスト装置から前記第1のインターフェースを介して前記不揮発性記憶装置にデータを書き込むときの管理単位である第1のデータブロックと、
前記第2のインターフェースを介して前記不揮発性記憶装置にデータを書き込むときの管理単位である第2のデータブロックと、を有し、
前記ホスト装置は、
前記第1のインターフェースを介して前記不揮発性記憶装置にデータを書き込むとき、前記第1のインターフェースを介して前記第1のデータブロックの大きさを取得し、記録済の有効データの大きさが第1の値以下である前記第1のデータブロックを選択して前記データを書き込み、
前記第2のインターフェースを介して前記不揮発性記憶装置にデータを書き込むとき、前記第2のインターフェースを介して前記第2のデータブロックの大きさを取得し、記録済の有効データの大きさが第2の値以下である前記第2のデータブロックを選択して前記データを書き込み、
前記第1のデータブロックの大きさは、nを自然数としたとき、前記第2のデータブロックの大きさのn倍、もしくは1/n倍である、
メモリシステム。 - 前記ホスト装置から前記不揮発性記憶装置への前記データの書き込み位置を示すアドレスは、第1のインターフェースおよび第2のインターフェースで共通である、
請求項7に記載のメモリシステム。 - 前記第1のデータブロックのうち、最も若い先頭アドレスをもつ前記第1のデータブロックの先頭アドレスと、前記第2のデータブロックのうち、最も若い先頭アドレスをもつ前記第2のデータブロックの先頭アドレスとが一致している、
請求項7に記載のメモリシステム。 - 前記第2のインターフェースは、前記第1のインターフェースに対して、バス、プロトコルの少なくともいずれか一方が異なる、
請求項7に記載のメモリシステム。 - 前記第1のインターフェースはSDインターフェースであり、
前記第2のインターフェースはPCI Expressインターフェースである、
請求項10に記載のメモリシステム。 - 前記SDインターフェースに対応する前記第1のデータブロックの大きさは、前記PCI Expressインターフェースに対応する前記第2のデータブロックの大きさより小さい、もしくは等しい、
請求項11に記載のメモリシステム。 - 不揮発性記憶装置と第1のインターフェースおよび前記第1のインターフェースとは異なる第2のインターフェースを介して接続されるホスト装置であって、
前記第1のインターフェースを介して前記不揮発性記憶装置にデータを書き込むとき、前記第1のインターフェースを介して第1のデータブロックの大きさを取得し、記録済の有効データの大きさが第1の値以下である前記第1のデータブロックを選択して前記データを書き込み、前記第2のインターフェースを介して前記不揮発性記憶装置にデータを書き込むとき、前記第2のインターフェースを介して第2のデータブロックの大きさを取得し、記録済の有効データの大きさが第2の値以下である前記第2のデータブロックを選択して前記データを書き込む書き込み部、を備え、
前記第1のデータブロックは、前記第1のインターフェースを介して前記不揮発性記憶装置にデータを書き込むときの管理単位であり、
前記第2のデータブロックは、前記第2のインターフェースを介して前記不揮発性記憶装置にデータを書き込むときの管理単位である、
ホスト装置。 - 前記第2のインターフェースは、前記第1のインターフェースに対して、バス、プロトコルの少なくともいずれか一方が異なる、
請求項13に記載のホスト装置。 - 前記第1のインターフェースはSDインターフェースであり、
前記第2のインターフェースはPCI Expressインターフェースである、
請求項14に記載のホスト装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-135011 | 2022-08-26 | ||
JP2022135011 | 2022-08-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024043087A1 true WO2024043087A1 (ja) | 2024-02-29 |
Family
ID=90013136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/028998 WO2024043087A1 (ja) | 2022-08-26 | 2023-08-08 | ホスト装置、不揮発性記憶装置およびメモリシステム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024043087A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016009280A (ja) * | 2014-06-24 | 2016-01-18 | キヤノン株式会社 | 記録装置 |
JP2019020989A (ja) * | 2017-07-14 | 2019-02-07 | キヤノン株式会社 | 記録装置 |
JP2019057229A (ja) * | 2017-09-22 | 2019-04-11 | パナソニックIpマネジメント株式会社 | 通信形式判定方法 |
US20210064551A1 (en) * | 2019-09-03 | 2021-03-04 | Realtek Semiconductor Corp. | Method and control chip for performing access control of memory device |
US20210382621A1 (en) * | 2020-06-08 | 2021-12-09 | Western Digital Technologies, Inc. | Attribute Mapping in Multiprotocol Devices |
-
2023
- 2023-08-08 WO PCT/JP2023/028998 patent/WO2024043087A1/ja unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016009280A (ja) * | 2014-06-24 | 2016-01-18 | キヤノン株式会社 | 記録装置 |
JP2019020989A (ja) * | 2017-07-14 | 2019-02-07 | キヤノン株式会社 | 記録装置 |
JP2019057229A (ja) * | 2017-09-22 | 2019-04-11 | パナソニックIpマネジメント株式会社 | 通信形式判定方法 |
US20210064551A1 (en) * | 2019-09-03 | 2021-03-04 | Realtek Semiconductor Corp. | Method and control chip for performing access control of memory device |
US20210382621A1 (en) * | 2020-06-08 | 2021-12-09 | Western Digital Technologies, Inc. | Attribute Mapping in Multiprotocol Devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2319047B1 (en) | Multiple performance mode memory system | |
US9122611B2 (en) | Method for giving read commands and reading data, and controller and storage system using the same | |
US7937523B2 (en) | Memory system with nonvolatile semiconductor memory | |
US8429352B2 (en) | Method and system for memory block flushing | |
US6366977B1 (en) | Semiconductor storage device employing cluster unit data transfer scheme and data management method thereof | |
US7185146B2 (en) | Memory card device, and memory card control method for controlling the device | |
US11086772B2 (en) | Memory system performing garbage collection operation and operating method of memory system | |
JPWO2005103903A1 (ja) | 不揮発性記憶システム | |
US20190317892A1 (en) | Memory system, data processing system, and operating method of memory system | |
US11194481B2 (en) | Information processing apparatus and method for controlling information processing apparatus | |
US10895991B2 (en) | Solid state device with improved sustained data writing speed | |
US11675699B2 (en) | Data storage device, operation method thereof, and storage system including the same | |
US11704048B2 (en) | Electronic device | |
US20220269602A1 (en) | Storage device and storage system including the same | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
US20220229775A1 (en) | Data storage device and operating method thereof | |
US20190213075A1 (en) | Memory system | |
KR20080033649A (ko) | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 | |
WO2024043087A1 (ja) | ホスト装置、不揮発性記憶装置およびメモリシステム | |
US20190278703A1 (en) | Memory system, operating method thereof and electronic device | |
US20080162479A1 (en) | Memory card system and method for transmitting background information thereof | |
US11513722B2 (en) | Memory system allowing operation during suspensions | |
US8180951B2 (en) | Memory system and method of controlling the memory system | |
JP7446963B2 (ja) | メモリシステム及びメモリシステムの制御方法 | |
KR102343600B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
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: 23857200 Country of ref document: EP Kind code of ref document: A1 |