Storage device having plurality of storage areas and method of controlling storage device
By using nonvolatile memory and storage controller in storage devices in autonomous driving vehicles, combined with safety level information and storage area information, dynamic management of data between single-level unit area and multi-level unit area is realized, the efficiency and security issues of data storage and migration are solved, and data reliability and delay are ensured.
Patent Information
- Application Number
- CN202410794997.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-26
- Filing Date
- 2024-06-19
- Publication Date
- 2025-03-28
AI Technical Summary
The prior art is difficult to effectively manage and store data from different host devices in storage devices in autonomous driving vehicles, especially in terms of data migration and return between different security levels and storage area types.
By introducing a nonvolatile memory and a storage controller in the storage device, data programming, migration and return between the single-stage unit area and the multi-stage unit area is performed using the security level information and the remaining storage area information. The storage controller determines the storage and migration strategies of data in different storage areas based on the security level-target storage area table and mapping table.
It realizes efficient management and storage of data of different safety levels in autonomous driving vehicles, ensures data reliability and delay, and optimizes storage efficiency and security by dynamically adjusting the storage location of data in single-level unit area and multi-level unit area.
Smart Images

Figure CN119718176A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the priority of Korean Patent Application No. 10-2023-0129141 filed in the Korean Intellectual Property Office on September 26, 2023, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] Embodiments of the present disclosure relate to a storage device and a method of controlling the storage device. Background Art
[0004] The vehicle system installed on the autonomous driving vehicle may include one or more host devices having different uses or functions and a storage device for storing a large amount of data generated in real time from each of the host devices. For example, the host devices may share the storage device, and the host devices may store data in a storage area of the storage device.
[0005] The storage areas of the storage device may be of the same type or of different types. For example, the storage area of the storage device may include a single-level cell (SLC) area, a multi-level cell (MLC) area, a triple-level cell (TLC) area, a quad-level cell area, etc. The single-level cell area and the multi-level cell area have different characteristics in terms of data storage efficiency, cost, reliability, and speed. Summary of the invention
[0006] Some embodiments of the present disclosure provide a storage device for efficiently storing and managing data in different storage areas of the same type or different types based on different uses and functions of one or more host devices in a vehicle system. Some embodiments provide an operating method for a storage device.
[0007] In some embodiments, a storage device includes a nonvolatile memory and a storage controller. The nonvolatile memory includes a plurality of storage areas, and the plurality of storage areas include a first storage area and a second storage area having different types. The storage controller programs data from a host device in the first storage area based on security level information of the host device and information about the remaining storage areas of the nonvolatile memory. Based on the security level information and the information about the remaining storage areas, the storage controller migrates the data programmed in the first storage area to the second storage area, or returns the data migrated to the second storage area to the first storage area.
[0008] In some embodiments, in an operating method of a storage device, data from a host device can be programmed in a first storage area based on security level information of the host device and remaining storage area information of a nonvolatile memory. The nonvolatile memory includes a plurality of storage areas, and the plurality of storage areas include a first storage area and a second storage area of different types from each other. The data programmed in the first storage area is migrated to the second storage area based on the security level information and the remaining storage area information. The data migrated to the second storage area is returned to the first storage area based on the security level information and the remaining storage area information.
[0009] In some embodiments, a storage device includes a nonvolatile memory and a storage controller. The nonvolatile memory includes a plurality of storage areas, and the plurality of storage areas include a first storage area and a second storage area having different types. Based on automotive safety integrity level (ASIL) information of the host device and the remaining storage area information of the nonvolatile memory, the storage controller programs data from the host device in the first storage area in a first programming mode. Based on the ASIL information and the remaining storage area information, the storage controller reprograms the data programmed in the first storage area in the first programming mode in the second storage area in the second programming mode, or reprograms the data reprogrammed in the second storage area in the second programming mode in the first storage area in the first programming mode. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The above and other aspects and features of the present disclosure will become apparent by describing in detail embodiments of the present disclosure with reference to the attached drawings.
[0011] Figure 1 is a block diagram illustrating an example of an electronic system including a storage device according to some embodiments of the present disclosure.
[0012] Figure 2 is a block diagram illustrating an example of a storage controller according to some implementations.
[0013] Figure 3 is a diagram illustrating an example of a security level-target storage area table according to some embodiments.
[0014] Figure 4 is a flow chart illustrating an example of a method of operating a storage device according to some embodiments.
[0015] Figure 5A is a flow chart illustrating an example of programming data from a host device in a first storage area of a storage device.
[0016] Figure 5B is a diagram illustrating operations associated with programming data.
[0017] Figure 5Cis a diagram showing an example of a mapping table.
[0018] Fig. 6A is a flow chart illustrating an example of migrating data programmed in a first storage area to a second storage area of a storage device.
[0019] Figure 6B is a diagram illustrating operations associated with migrating data.
[0020] Fig. 7A is a flowchart showing an example of returning data migrated to the second storage area to the first storage area.
[0021] Figure 7B is a diagram illustrating operations associated with migrating data.
[0022] Figure 8 is a block diagram illustrating an example of an electronic system including a storage device according to some embodiments.
[0023] Fig. 9 is a diagram showing an example of a security level-target storage area table.
[0024] Fig. 10A and Fig. 10B is a diagram illustrating an example of programming data from a host device in a first storage area of a storage device.
[0025] Fig.11A and Fig. 11B is a diagram illustrating an example of migrating data programmed in a first storage area to a second storage area of a storage device.
[0026] Fig. 12A and Fig. 12B is a diagram showing an example of returning data migrated to the second storage area to the first storage area.
[0027] Fig.13 is a block diagram illustrating a vehicle system including a storage device according to some embodiments of the present disclosure.
[0028] Fig.14 is a flowchart illustrating an operating method of a storage device according to some embodiments of the present disclosure.
[0029] Fig.15 is a flowchart illustrating an operating method of a storage device according to some embodiments of the present disclosure.
[0030] Fig.16 is a diagram illustrating an electronic system including a storage device according to some embodiments of the present disclosure. DETAILED DESCRIPTION
[0031] Figure 1is a block diagram illustrating an electronic system including a storage device according to some embodiments of the present disclosure.
[0032] Reference Figure 1 , the electronic system 10 may include a host device 100 and a storage device 300. In some embodiments, the electronic system 10 may be a vehicle system that can be installed on an autonomous driving vehicle or the like. For ease of description, Figure 1 Only the host device 100 is shown in FIG. 1 , but the electronic system 10 may further include one or more host devices that share the storage device 300 and transmit a plurality of pieces of data to the storage device 300 in real time.
[0033] The host device 100 may exchange data DAT with the storage device 300 by sending a request REQ and an address ADDR1 to the storage device 300. The storage device 300 may include a storage controller 310 and a nonvolatile memory 350. In order to exchange data DAT with the host device 100, the storage controller 310 may store the data DAT in the nonvolatile memory 350, or may read the data DAT from the nonvolatile memory 350 by generating a command CMD and an address ADDR2 based on the request REQ and the address ADDR1.
[0034] The nonvolatile memory 350 may include a plurality of storage areas SR which are of the same or different types and are used to store data DAT received from the host device 100. For example, Figure 1 As shown, the plurality of storage regions SR may include storage regions 351 and 353. Storage region 351 may be a "single-level cell region" including a plurality of single-level cells each storing one bit, and storage region 353 may be a "multi-level cell region" including a plurality of multi-level cells each storing two bits. The single-level cell region may provide higher reliability and faster speed than the multi-level cell region, but may be associated with high costs due to lower storage efficiency than the multi-level cell region. Below, for ease of description, the term "multi-level cell region" may be used to represent a storage region including a plurality of memory cells each storing two or more bits. For example, regardless of its name, the multi-level cell region may include a three-level cell region and a four-level cell region and may refer to a storage region other than a single-level cell region.
[0035] The storage controller 310 may program the data DAT in the first storage area based on the security level information (SFTLI) 311 and the remaining storage area information (RMSSI) 313; based on the security level information 311 and the remaining storage area information 313, the storage controller 310 may migrate the data stored in the first storage area to the second storage area (e.g., 361), or may return the data moved to the second storage area to the first storage area (e.g., 363). In this way, the storage controller 310 may determine a target storage area as a storage area of the nonvolatile memory 350 in which the data DAT from the host device 100 is first programmed, a time point of migration or return, a storage area for migration or return, and a priority of data of the target of migration or return.
[0036] In some embodiments, the security level information 311 may indicate the importance of the data DAT. Considering the impact of the data DAT on the safety of the vehicle in which the electronic system 10 is installed, the importance of the data DAT may be set for each host device.
[0037] For example, the importance of the data DAT may be set based on the type of the host device 100. When the host device has a relatively large impact on the safety of the vehicle, the importance of the data DAT from the host device may be set to be relatively high. When the host device has a relatively small impact on the safety of the vehicle, the importance of the data DAT from the host device may be set to be relatively low. This will refer to Figures 2 to 4 , Figure 5A , Figure 5B , Figure 5C , Fig. 6A , Figure 6B , Fig. 7A , Figure 7B , Figure 8 , Fig. 9 , Fig. 10A , Fig. 10B , Fig.11A , Fig. 11B , Fig. 12A and Fig. 12B Give a description.
[0038] For example, the importance of the data DAT may be set based on an automotive safety integrity level (ASIL) assigned to each host device compliant with International Organization for Standardization (ISO) 26262. As the ASIL assigned to the host device 100 becomes higher, the importance of the data host from the host device 100 may be set higher. As the ASIL assigned to the host device 100 becomes lower, the importance of the data host from the host device 100 may be set lower. This will refer to Fig.13 Give a description.
[0039] In some embodiments, the remaining storage area information 313 may indicate whether the size of the remaining area is sufficient to program new data in the single level cell area SLCR included in the nonvolatile memory 350. The size of the remaining area may be calculated by monitoring the number of memory blocks included in each storage area in real time (that is, monitoring the number of free blocks, the number of used blocks, and the total number of blocks in real time).
[0040] In some embodiments, the first storage area may be an “initial storage area” of the nonvolatile memory 350 where the data DAT is first stored, and the type of the second storage area may be the same as or different from that of the first storage area.
[0041] In some embodiments, the storage controller 310 may detect the occurrence of a “migration event” or a “return event”, may initiate migration of programmed data through the occurrence of a migration event, and may initiate return of migrated data through the occurrence of a return event.
[0042] The storage controller 310 may further include a security level-target storage area table (ST_MTBL) 315 and a mapping table (L2P_MTBL) 317. The security level-target storage area table 315 may predefine the types of various host devices including the host device 100, the type of importance of data from each of the various host devices, the type of size of the remaining area, and the type of the target storage area, and the mapping table 317 may indicate the type of importance of data from each of the host devices and the type of storage area of the nonvolatile memory 350 in which the data from each of the host devices is actually stored.
[0043] The storage controller 310 may perform programming of the data DAT, migration of the programmed data, or return of the migrated data based on the security level-target storage area table (ST_MTBL) 315 and / or the mapping table (L2P_MTBL) 317. For example, the storage controller 310 may also receive the device ID (DevID) 110 from the host device 100, and may use various information defined with respect to the data DAT by identifying the type of the host device 100 or the importance of the data DAT from the host device 100 from the security level-target storage area table 315 or the mapping table 317 based on the device ID 110.
[0044] According to the above configuration, based on the security level information and the remaining storage area information, the storage device according to some embodiments of the present disclosure can program data with high importance in the single-level cell area and can program data with low importance in the multi-level cell area. Even when the importance of the data is high, at the time point when the data is to be programmed or at the time point when a migration event occurs, the data can be temporarily programmed in the multi-level cell area or migrated to the multi-level cell area according to the size of the remaining area (for example, the remaining storage space of the single-level cell area). Then, the storage device can return the data with high importance to the single-level cell area and can return the data with high importance to the single-level cell area first before the data with low importance. Therefore, the storage device can ensure the reliability of the data and the delay of the data by managing the data so that the data with high importance is retained in the single-level cell area as much as possible and the data with low importance is retained in the multi-level cell area, and can effectively store and manage multiple pieces of data based on the purpose and function of one or more host devices in the vehicle system with the security level information as a consideration.
[0045] Figure 2 is a block diagram showing an example of a storage controller. For example, Figure 2 The storage controller 500 may correspond to Figure 1 A storage controller 310 is provided.
[0046] The storage controller 500 may include a processor 510 , a data manager 520 , a security level-target storage area table 530 , a mapping table 531 , a host interface 540 , a remaining storage area (RMSS) monitor 550 , an event detector 560 , a non-volatile memory (NVM) interface 570 , and a bus 580 .
[0047] The processor 510 may overall control the components 520, 530, 531, 540, 550, 560, 570, and 580 of the storage controller 500. The bus 580 may provide communication between the components 520, 530, 531, 540, 550, 560, 570, and 580.
[0048] The data manager 520 may execute a request from a host device (eg, Figure 1For example, the data manager 520 may receive a programming request and an address for the programming request from the host device through the host interface 540, may receive the remaining storage area information RMSSI from the remaining storage area monitor 550, and may receive a signal notifying that the occurrence of a migration event is detected or the occurrence of a return event is detected from the event detector 560. The data manager 520 may determine a storage area of the nonvolatile memory in which the data corresponding to the programming request is to be programmed based on the security level-target storage area table 530, and may provide a programming command and an address for the programming data to the nonvolatile memory (e.g., Figure 1 The data manager 520 may determine the storage area of the nonvolatile memory to which the data to be migrated or returned is to be migrated or returned based on the mapping table 531, and may provide the migration or return command and the migration or return address of the data to the nonvolatile memory through the nonvolatile memory interface 570.
[0049] The remaining storage area monitor 550 may calculate the size of the remaining area of the single-level cell area included in the nonvolatile memory to generate the remaining storage area information RMSSI. For example, the remaining storage area monitor 550 may calculate the size of the remaining area by monitoring the number of free blocks, the number of used blocks, and the total number of blocks in real time for each storage area of the nonvolatile memory based on the mapping table 531.
[0050] The event detector 560 may detect the occurrence of a migration event or the occurrence of a return event. In some embodiments, when a garbage collection operation for ensuring free blocks in a non-volatile memory or a read recovery operation for improving the reliability of data stored in the non-volatile memory is performed, the event detector 560 may detect that a migration event has occurred. As another example, when the storage device enters an idle period, the event detector 560 may detect that a return event has occurred. However, the scope of the present disclosure is not limited in this regard.
[0051] Figure 3 is a diagram showing an example of a security level-target storage area table, for example, Figure 1 and Figure 2 Security level-target storage area table 315, 530.
[0052] exist Figure 3 The security level-target storage area table ST_MTBL may include the type of the device ID DevID, the type of the security level information SFTLI, the type of the remaining storage area information RMSSI, and the type of the target storage area.
[0053] Reference Figure 3In the security level-target storage area table ST_MTBL, the device ID DevID may indicate a shared storage device (e.g., Figure 1 The type (or identifier / list) of host devices of 300) of the present invention, and the security level information SFTLI may indicate the type (e.g., level) of importance of data from each of the host devices identified by the device ID DevID. The remaining storage area information RMSSI may indicate the nonvolatile memory (e.g., Figure 1 The type of size of the remaining area of the single-level cell area SLCR included in 350), and the target storage area can indicate the type of storage area of the nonvolatile memory in which data from each of the host devices is to be programmed according to the type of each of the device ID DevID, the security level information SFTLI and the remaining storage area information RMSSI.
[0054] In some embodiments, in the security level-target storage area table ST_MTBL, the type of security level information SFTLI may include levels LEV1 and LEV2. Level LEV1 may indicate that the importance of data is relatively high, and level LEV2 may indicate that the importance of data is relatively low. In the security level-target storage area table ST_MTBL, the type of remaining storage area information RMSSI may include states ST1 and ST2. State ST1 may indicate that the size of the remaining area of the single-level cell area SLCR of the nonvolatile memory is sufficient, and state ST2 may indicate that the size of the remaining area of the single-level cell area SLCR of the nonvolatile memory is insufficient.
[0055] For example, when the device ID of the host device is "DEV1", the type of the security level information SFTLI in the security level-target storage area table ST_MTBL may be set to "LEV1". Figure 2 When the remaining storage area information RMSSI from the remaining storage area monitor 550 indicates the state ST1, the type of the target storage area may be set to the single-level cell area SLCR so that the data from the host device with the device ID "DEV1" is programmed in the single-level cell area SLCR. When the remaining storage area information RMSSI from the remaining storage area monitor indicates the state ST2, the type of the target storage area may be set to the multi-level cell area MLCR so that the data from the host device with the device ID "DEV1" is programmed in the multi-level cell area MLCR.
[0056] For example, when the device ID of the host device is "DEV2", in the security level-target storage area table ST_MTBL, the type of the security level information SFTLI may be in a state set to "LEV2". In this case, since the type of the target storage area is set to the multi-level cell area MLCR, data from the host device with the device ID "DEV2" can be programmed in the multi-level cell area MLCR regardless of whether the remaining storage area information RMSSI from the remaining storage area monitor indicates ST1 or ST2.
[0057] In some embodiments, when the security level information SFTLI associated with the host device having the device ID "DEV1" indicates the first level (e.g., LEV1), the type of the storage area in which the data from the host device having the device ID "DEV1" is to be programmed may be changed according to the state indicated by the remaining storage area information RMSSI (530-1). For example, when the remaining storage area information RMSSI indicates the first state (e.g., ST1), the storage area in which the data from the host device is to be programmed may be a single-level cell area SLCR. Also, when the remaining storage area information RMSSI indicates the second state (e.g., ST2), the storage area in which the data from the host device is to be programmed may be a multi-level cell area MLCR.
[0058] In some embodiments, when the security level information SFTLI associated with the host device having the device ID "DEV2" indicates the second level (e.g., LEV2), the type of the storage area in which the data from the host device having the device ID "DEV2" is to be programmed may not be changed regardless of the state indicated by the remaining storage area information RMSSI (530-2). For example, even if the remaining storage area information RMSSI indicates any one of the first state ST1 and the second state ST2, the storage area in which the data from the host device is to be programmed may be the multi-level cell area MLCR.
[0059] Figure 4 is a flowchart illustrating an operating method of a storage device according to some embodiments of the present disclosure. Figure 4 The process can be applied to any storage device described herein.
[0060] Reference Figure 4 In the operating method of the storage device, the storage device may receive a data programming request from a host device (S100).
[0061] The storage device may be based on the security level information of the host device (e.g., Figure 3 SFTLI) and other storage area information of non-volatile memory (for example, Figure 3 The data from the host device is programmed in a first storage area of the nonvolatile memory using an RMSSI (S300).
[0062] In some embodiments, the target storage area may be based on a security level-target storage area table (e.g., Figure 3 ST_MTBL) to perform data programming.
[0063] In some embodiments, the first storage region may be a single-level cell region or may be a multi-level cell region.
[0064] Based on the security level information and the remaining storage area information, the storage device may migrate data programmed in the first storage area to the second storage area, or may return data migrated to the second storage area to the first storage area (S500).
[0065] In some embodiments, the Figure 1 317 or Figure 2 531) performs the migration of programmed data or the return of migrated data. Figure 5C Describes the mapping table.
[0066] In some embodiments, when the first storage region is one of a single-level cell region and a multi-level cell region, migration for one of the single-level cell region and the multi-level cell region may be performed.
[0067] In some embodiments, the return of migrated data may be performed when the migration for the multi-level cell region is performed. For example, when the migration for the single-level cell region is performed, the return of migrated data may not be performed. When the migration for the multi-level cell region is performed, the return of migrated data from the multi-level cell region to the single-level cell region may be performed.
[0068] In some embodiments, operations S100, S300, and S500 may be performed by a storage controller (eg, Figure 1 310 or Figure 2 500) to execute.
[0069] Figure 5A is a diagram showing programming in a first storage area of a storage device from a host device (eg, Figure 4 A flowchart of an example of operations on data of a host device). Figure 5B is shown in detail with Figure 5A A diagram of the associated operations. Figure 5C is based on Figure 5A Operation description mapping table (for example, Figure 2 Schematic diagram of the mapping table).
[0070] exist Figure 5A In the example, the storage controller may be configured to store data based on a security level-target storage area table (e.g., Figure 3 ST_MTBL) execution Figure 5AOperation S310, operation S330, operation S350, and operation S370 are shown. For example, the storage controller may identify the device ID of the host device that sends the programming request from the security level-target storage area table, and may retrieve the type of security level information SFTLI associated with the host device corresponding to the device ID, the type of the remaining storage area information RMSSI, and the type of the target storage area.
[0071] Reference Figure 5A , based on the security level-target storage area table, the storage controller may determine whether the security level information SFTLI associated with the host device is the first level (eg, LEV1) (S310).
[0072] In some implementations, the first level may mean that the importance of the data from the host device is relatively high.
[0073] When the security level information SFTLI indicates the first level (Yes in operation S310), the storage controller may determine whether the rest of the storage area information RMSSI indicates the first state (eg, ST1) (S330).
[0074] In some embodiments, the memory can be monitored from other storage areas (e.g., Figure 2 550) receives the remaining storage area information RMSSI, and the first state may indicate that the size of the remaining area of the single level cell region SLCR is sufficient for storage of the program request.
[0075] When the remaining storage region information RMSSI indicates the first state (Yes in operation S330 ), the storage controller may program data from the host device in the single level cell region SLCR of the nonvolatile memory ( S350 ).
[0076] In some embodiments, the storage controller may search for the type of the target storage area in the security level-target storage area table and may program data from the host device in the single level cell region SLCR.
[0077] When the security level information SFTLI does not indicate the first level (No in operation S310) or when the remaining storage area information RMSSI does not indicate the first state (No in operation S330), the storage controller may program data from the host device in the multi-level cell region MLCR of the nonvolatile memory (S370).
[0078] In some embodiments, operation S350 may mean programming data with high importance in the single-level cell region SLCR when the size of the remaining region of the single-level cell region SLCR is sufficient. Operation S370 may mean programming data in the multi-level cell region MLCR regardless of whether the importance of the data is high or low when the size of the remaining region of the single-level cell region SLCR is insufficient.
[0079] Reference Figure 5B , a single-level cell region SLCR and a multi-level cell region MLCR of a nonvolatile memory are shown, and a plurality of pieces of data (e.g., 35-1, 35-2, and 35-3) from a host device may be programmed in the nonvolatile memory at time points (e.g., t0, t2, and t4). For example, each of the plurality of pieces of data 35-1 and 35-2 may be data from a first host device HD1, and data 35-3 may be data from a second host device HD2. The first host device HD1 may have a specific device ID (e.g., Figure 3 DEV1), and the second host device HD2 may have a device ID different from the device ID of the first host device HD1 (e.g., Figure 3 The security level information SFTLI associated with the first host device HD1 may indicate a first level (eg, Figure 3 LEV1), and the security level information SFTLI associated with the second host device HD2 may indicate a second level (eg, Figure 3 LEV2).
[0080] The state 31 may indicate the size of the remaining region of the single-level cell region SLCR, the state 32 may indicate the size of the remaining region of the multi-level cell region MLCR, and the state 31 may be stored by the remaining region information (eg, Figure 1 and Figure 2 RMSSI) indication.
[0081] Before the time point t0, the data 37 from the first host device HD1 may be in a state of being stored in the single level cell region SLCR.
[0082] At time point t0, data 35-1 may be received from the first host device HD1 through the storage device, and the storage controller may determine whether the security level information SFTLI associated with the first host device HD1 indicates the first level and whether the remaining storage area information RMSSI indicates the first state (e.g., Figure 3 ST1)( Figure 5A Because the security level information SFTLI associated with the first host device HD1 at time point t0 indicates the first level and the remaining storage area information RMSSI indicates the first state, the storage controller may program the data 35-1 from the first host device HD1 in the single level cell region SLCR of the nonvolatile memory at time point t1.
[0083] At time point t2, data 35-2 may be received from the first host device HD1 through the storage device, and the storage controller may determine the level indicated by the security level information SFTLI and the state indicated by the remaining storage area information RMSSI in the same manner as the data 35-1. Because the remaining storage area information RMSSI indicates the second state (e.g., Figure 3 ST2) (for example, because the remaining storage area information RMSSI is changed from the first state to the second state (39) at time point t1 due to the storage of the data 35-1), even if the security level information SFTLI associated with the first host device HD1 indicates the first level, the storage controller cannot program the data 35-2 from the first host device HD1 in the single-level cell area SLCR of the non-volatile memory at time point t3 but can program the data 35-2 in the multi-level cell area MLCR.
[0084] Data 35-3 from the second host device HD2 may be received through the storage device at time point t4, and the storage controller may determine whether the security level information SFTLI associated with the second host device HD2 indicates the first level (S310). Because the security level information SFTLI associated with the second host device HD2 indicates the second level, the storage controller may program the data 35-3 from the second host device HD2 in the multi-level cell region MLCR of the nonvolatile memory at time point t5.
[0085] Reference Figure 5C The mapping table L2P_MTBL may indicate where the actual storage Figure 5B The actual storage area ASR of the data 35-1, 35-2, and 35-3 received by the first host device HD1 and the second host device HD2.
[0086] For example, data 35-1 from the first host device HD1 may be programmed in the single-level cell region SLCR; in the mapping table L2P_MTBL, the actual storage region ASR in which the data 35-1 is actually stored may be indicated as the single-level cell region SLCR together with the logical addresses LPN11, LPN12, LPN13, ..., LPN1m (m is an integer of 4 or more) and the physical addresses PPN11, PPN12, PPN13, ..., PPN1m corresponding to the data 35-1. In the mapping table L2P_MTBL, the security level information SFTLI may be indicated as the first level together with the actual storage region ASR; the data 35-1 may be managed as physical blocks PBN11, ..., PBN1n (n is an integer of 2 or more), and migration or return of the data 35-1 may be performed later.
[0087] For example, data 35-2 from the first host device HD1 may be programmed in the multi-level cell region MLCR; in the mapping table L2P_MTBL, the actual storage region ASR in which the data 35-2 is actually stored may be indicated as the multi-level cell region MLCR together with the logical addresses LPN21, LPN22, LPN23, ..., LPN2p (p is an integer of 4 or more) and the physical addresses PPN21, PPN22, PPN23, ..., PPN2p corresponding to the data 35-2. In the mapping table L2P_MTBL, the security level information SFTLI may be indicated as the first level together with the actual storage region ASR; the data 35-2 may be managed as physical blocks PBN21, ..., PBN2q (q is an integer of 2 or more), and migration or return of the data 35-2 may be performed later.
[0088] For example, data 35-3 from the second host device HD2 may be programmed in the multi-level cell region MLCR; in the mapping table L2P_MTBL, the actual storage region ASR in which the data 35-3 is actually stored may be indicated as the multi-level cell region MLCR together with the logical addresses LPN31, LPN32, LPN33, ..., LPN3r (r is an integer of 4 or more) and the physical addresses PPN31, PPN32, PPN33, ..., PPN3r corresponding to the data 35-3. In the mapping table L2P_MTBL, the security level information SFTLI may be indicated as the second level together with the actual storage region ASR; the data 35-3 may be managed as physical blocks PBN31, ..., PBN3s (s is an integer of 2 or more), and migration or return of the data 35-3 may be performed later.
[0089] Fig. 6A is a diagram showing data to be programmed in the first storage area (e.g., Figure 4 A flowchart of an example of the operation of migrating data (data) to a second storage area of a storage device. Figure 6B is shown with Fig. 6A A graph of associated operations.
[0090] exist Fig. 6A In the example, the storage controller may be based on a mapping table (e.g., Figure 5C L2P_MTBL) execution Fig. 6A Some of the operations shown are operations S520, S521, S523, S525, S527, S533, S535, S537, and S541. For example, the storage controller may search the mapping table for the type of security level information SFTLI and the type of the actual storage area ASR regarding a specific physical block.
[0091] Reference Fig. 6A, the storage controller may monitor the occurrence of a migration event ME (S510) and may determine whether the migration event ME occurs (S511). When the migration event ME does not occur (No in operation S511), the storage controller may continue to perform monitoring until the migration event ME occurs (S510).
[0092] When the migration event ME occurs (Yes in operation S511 ), the storage controller may determine whether the security level information SFTLI associated with the specific physical block indicates the first level (eg, LEV1 ) ( S520 ).
[0093] In some implementations, the first level may mean that the importance of data stored in a particular physical block is relatively high.
[0094] When the security level information SFTLI indicates the first level (Yes in operation S520 ), the storage controller may determine whether the actual storage area ASR is the single level cell area SLCR ( S521 ).
[0095] When the actual storage region ASR indicates the single level cell region SLCR (Yes in operation S521 ), the storage controller may determine whether the remaining storage region information RMSSI indicates the first state (eg, ST1 ) ( S523 ).
[0096] In some embodiments, the memory can be monitored from other storage areas (e.g., Figure 2 550) receives the remaining storage area information RMSSI, and the first state of the remaining storage area information RMSSI may indicate that the size of the remaining area of the single level cell region SLCR is sufficient.
[0097] In some embodiments, the storage controller may perform the determination in operation S523 based on a point in time when the migration event ME occurs.
[0098] When the remaining storage region information RMSSI indicates the first state (Yes in operation S523 ), the storage controller may migrate the data stored in the single level cell region SLCR to any other memory block of the single level cell region SLCR ( S525 ).
[0099] When the security level information SFTLI does not indicate the first level (NO in operation S520 ), the storage controller may migrate data stored in the single level cell area SLCR to the multi level cell area MLCR ( S541 ).
[0100] When the actual storage region ASR is not the single level cell region SLCR (No in operation S521), the storage controller may determine whether the remaining storage region information RMSSI indicates the first state (S533).
[0101] When the remaining storage region information RMSSI indicates the first state (Yes in operation S533 ), the storage controller may migrate the data stored in the multi-level cell region MLCR to the single-level cell region SLCR ( S535 ).
[0102] When the remaining storage region information RMSSI does not indicate the first state (No in operation S533 ), the storage controller may migrate the data stored in the multi-level cell region MLCR to any other memory block of the multi-level cell region MLCR ( S537 ).
[0103] In some embodiments, the case where the remaining storage area information RMSSI does not indicate the first state may mean a case where the remaining storage area information RMSSI indicates a second state (eg, ST2). The second state of the remaining storage area information RMSSI may indicate that the size of the remaining area of the single level cell region SLCR is insufficient.
[0104] When the remaining storage region information RMSSI does not indicate the first state (No in operation S523 ), the storage controller may migrate the data stored in the single level cell region SLCR to the multi level cell region MLCR ( S527 ).
[0105] In some embodiments, the Figure 2 The event detector 560 performs operations S510 and S511.
[0106] In some embodiments, the enhanced data protection policy may be applied to the data (S529 or S539) migrated to the multi-level cell area MLCR (or any other memory block of the multi-level cell area MLCR) in operation S527 or operation S537. For example, the data protection policy may include a read recovery operation, an error correction code (ECC) operation, a redundant repair operation, etc., but the scope of the present disclosure is not limited thereto. The read recovery operation may mean an operation of changing the storage area of the data. The ECC operation may mean an operation of detecting and correcting errors in data based on parity bits. The redundant repair operation may mean an operation of replacing defective memory cells with normal redundant memory cells. For example, the data to which the enhanced data protection policy is applied may mean data that must be programmed in the single-level cell area SLCR in principle or data that must be managed in the single-level cell area SLCR because the security level information SFTLI indicates the first level.
[0107] Reference Figure 6B, showing a single-level cell area SLCR and a multi-level cell area MLCR of a nonvolatile memory, a migration event ME may occur at a time point (e.g., t6 and t9), and a plurality of data (e.g., 57-1 and 57-3) from a host device may be programmed in the nonvolatile memory at a time point (e.g., t7 and t8). For example, each of the plurality of data 57-1 and 57-3 may be data from a first host device HD1. Prior to time point t6, data 52-1 from the first host device HD1 may be in a state stored in the single-level cell area SLCR, and data 51 may be in a state stored in the multi-level cell area MLCR. The first host device HD1, the second host device HD2, and security level information SFTLI associated with each of the first host device HD1 and the second host device HD2 are associated with a reference Figure 5B Same as those described.
[0108] When the migration event ME 55-1 occurs at time point t6, the storage controller can determine whether the security level information SFTLI associated with the specific physical block indicates the first level (S520), whether the actual storage area ASR is a single-level cell area SLCR (S521), and whether the remaining storage area information RMSSI indicates the first state (S523).
[0109] Regarding the data 52-1 stored in the specific physical block, since the security level information SFTLI indicates the first level, the actual storage area ASR is the single-level cell area SLCR, and the remaining storage area information RMSSI indicates the first state (59-1), the storage controller may migrate the data 52-1 to any other memory block (e.g., 52-2) of the single-level cell area SLCR. After completing the migration, the data 52-1 may be updated to invalid data and may be erased (e.g., 52-2).
[0110] The plurality of pieces of data 57 - 1 and 57 - 3 may be received from the first host device HD1 through the storage device at time points t7 and t8 , and the storage controller may program the plurality of pieces of data 57 - 1 and 57 - 3 in the single level cell region SLCR through operations S310 and S330 .
[0111] When the migration event ME 55-3 occurs at the time point t9, as in the above case where the migration event ME 55-1 occurs at the time point t6, the storage controller may perform determinations in operations S520, S521, and S523. Regarding the data 58-1 stored in the specific physical block, since the security level information SFTLI indicates the first level, the actual storage area ASR is the single-level cell area SLCR, and the remaining storage area information RMSSI indicates the second state (59-2) (for example, indicating that the single-level cell area SLCR is full or insufficient for storage of more data), the storage controller may migrate the data 58-1 to the multi-level cell area MLCR (for example, 58-2).
[0112] Fig. 7A is data to be migrated to or stored in the second storage area (e.g., Figure 4 A flowchart of an example of an operation of returning data (of the storage area) to a first storage area. Figure 7B is shown with Fig. 7A A diagram of the associated operations.
[0113] exist Fig. 7A In the example, the storage controller may be based on a mapping table (e.g., Figure 5C L2P_MTBL) execution Fig. 7A Some of the operations shown are operation S570, operation S571, operation S583, and operation S585.
[0114] Reference Fig. 7A , the storage controller may monitor the occurrence of a return event RE (S550) and may determine whether a return event RE occurs (S551). When a return event RE does not occur (No in operation S551), the storage controller may continue to perform monitoring until a return event RE occurs (S550).
[0115] When a return event RE occurs (Yes in operation S551 ), the storage controller may determine whether security level information SFTLI associated with a specific physical block indicates a first level (eg, LEV1 ) ( S570 ).
[0116] In some implementations, the first level may mean that the importance of data stored in a particular physical block is relatively high.
[0117] When the security level information SFTLI indicates the first level (Yes in operation S570 ), the storage controller may determine whether the actual storage area ASR is the single level cell area SLCR ( S571 ).
[0118] When the actual storage region ASR is not the single level cell region SLCR (NO in operation S571), the storage controller may determine whether the remaining storage region information RMSSI indicates the first state (eg, ST1) (S583).
[0119] In some embodiments, the first state of the remaining storage region information RMSSI may indicate that the size of the remaining region of the single level cell region SLCR is sufficient.
[0120] In an embodiment, the storage controller may perform the determination in operation S583 based on a point in time when the return event RE occurs.
[0121] When the remaining storage region information RMSSI indicates the first state (Yes in operation S583) (eg, indicating that the single level cell region SLCR has enough space to receive data), the storage controller may return data not stored in the single level cell region SLCR to the single level cell region SLCR (S585).
[0122] When the security level information SFTLI does not indicate the first level (No in operation S570), when the actual storage area ASR is the single-level cell area SLCR (Yes in operation S571), or when the remaining storage area information RMSSI does not indicate the first state (No in operation S583), the storage controller may end the process without performing the return of the data.
[0123] In some embodiments, the Figure 2 The event detector 560 performs operation S550 and operation S551.
[0124] Reference Figure 7B , showing a single-level cell area SLCR and a multi-level cell area MLCR of a nonvolatile memory, a return event RE may occur at a time point (e.g., t10 and t12), and at a time point t11, data from a first host device HD1 may be read from the nonvolatile memory to the first host device HD1 and may be erased in the nonvolatile memory. Prior to the time point t10, a plurality of pieces of data 71-1 from the first host device HD1 and the second host device HD2 may be in a state of being stored in the multi-level cell area MLCR, and a plurality of pieces of data 72-1 from the first host device HD1 may be in a state of being stored in the single-level cell area SLCR. The security level information SFTLI associated with the first host device HD1, the second host device HD2, and each of the first host device HD1 and the second host device HD2 is associated with a reference Figure 5B Same as those described.
[0125] When the return event RE 75-1 occurs at time point t10, the storage controller can determine whether the security level information SFTLI associated with the specific physical block indicates the first level (S570), whether the actual storage area ASR is a single-level cell area SLCR (S571), and whether the remaining storage area information RMSSI indicates the first state (S583).
[0126] Regarding the data 71-2 stored in a specific physical block, even if the security level information SFTLI indicates the first level, because the actual storage area ASR is not the single-level cell area SLCR and the remaining storage area information RMSSI does not indicate the first state (79-1), the storage controller may not return the data 71-2 to the single-level cell area SLCR.
[0127] At time point t11 , data from the first host device HD1 may be read from the nonvolatile memory to the first host device HD1 and may be erased; in this case, after time point t11 , the remaining storage area information RMSSI may indicate the first state.
[0128] Regarding the data 71-3 stored in a specific physical block, because the security level information SFTLI indicates the first level, the actual storage area ASR is not the single-level cell area SLCR, and the remaining storage area information RMSSI indicates the first state (79-2), at time point t13, the storage controller can return the data 71-3 to the single-level cell area SLCR (for example, 71-4).
[0129] Figure 8 is a block diagram illustrating an electronic system including a storage device according to some embodiments of the present disclosure.
[0130] Reference Figure 8 The electronic system 10a may include a host device 100a and a storage device 300a. Figure 1 Compared with the electronic system 10 of the host device 100, the host device 100a may also include multiple cores 151, 153 and 157, each of which may have a core ID (CRID) 151-1, 153-1 and 157-1, and the storage controller 310a may include a security level-target storage area table (ST_MTBL-1) 315a modified according to the importance of multiple data from the multiple cores 151, 153 and 157.
[0131] In some embodiments, the security level-target storage area table 315a may predefine the types of the plurality of cores 151, 153, and 157, the type of importance of data from each of the plurality of cores 151, 153, and 157, the type of size of the remaining area, and the type of the target storage area, and the mapping table 317 may indicate the storage area of the nonvolatile memory 350 in which the plurality of pieces of data received from the plurality of cores 151, 153, and 157 are actually stored. The storage controller 310a may perform programming of the data DAT, migration of the programmed data, or return of the migrated data based on the security level-target storage area table 315a or the mapping table (L2P_MTBL) 317. For example, the storage controller 310a may also receive core IDs 151-1, 153-1, and 157-1 from the host device 100a, and may use various information defined about the multiple cores 151, 153, and 157 by identifying data DAT from the multiple cores 151, 153, and 157 in the security level-target storage area table 315a and the mapping table 317 based on the core IDs 151-1, 153-1, and 157-1.
[0132] Fig. 9 It is shown Figure 8 Schematic diagram of an example of a security level-target storage area table.
[0133] exist Fig. 9 The security level-target storage area table ST_MTBL-1 may include the type of core ID (eg, an identifier of a core), the type of security level information SFTLI, the type of remaining storage area information RMSSI, and the type of a target storage area.
[0134] Reference Fig. 9 In the security level-target storage area table ST_MTBL-1, the core ID CRID may indicate a shared storage device (e.g., Figure 8 The type (or list) of cores of 300a), and the security level information SFTLI may indicate the type of importance of data from each core in the cores identified by the core IDCRID. The remaining storage area information RMSSI may indicate the non-volatile memory (e.g., Figure 8 The type of size of the remaining areas of the single-level cell area SLCR included in 350), and the target storage area can indicate the type of storage area of the non-volatile memory in which data from each core in the core is to be programmed for the first time according to the type of each of the core ID CRID, the security level information SFTLI and the remaining storage area information RMSSI.
[0135] In some embodiments, in the security level-target storage area table ST_MTBL-1, the type of security level information SFTLI may include security levels SFTL1, SFTL2, and SFTL3 and levels LEV1 and LEV2. Security levels SFTL1, SFTL2, and SFTL3 may be defined by subdividing levels LEV1 and LEV2. Security level SFTL1 may indicate that the importance of data is higher than that of security level SFTL2, and security level SFTL2 may indicate that the importance of data is higher than that of security level SFTL3. Level LEV1 may indicate that the importance of data is higher than that of data of level LEV2. Security level SFTL1 and security level SFTL2 may indicate level LEV1, and security level SFTL3 may indicate level LEV2 (for example, security level SFTL1 and security level SFTL2 may correspond to level LEV1, and security level SFTL3 may correspond to level LEV2).
[0136] For example, in the security level-target storage area table ST_MTBL-1, the type of security level information SFTLI may be set to SFTL1 and LEV1 when the core ID of the core is "CR1" and may be set to SFTL2 and LEV1 when the core ID of the core is "CR2". Figure 2 When the remaining storage area information RMSSI from the remaining storage area monitor 550 indicates the state ST1, the type of the target storage area may be set to the single-level cell area SLCR so that the data from the core whose core ID is one of CR1 and CR2 is programmed in the single-level cell area SLCR. When the remaining storage area information RMSSI from the remaining storage area monitor indicates the state ST2, the type of the target storage area may be set to the multi-level cell area MLCR so that the data from the core whose core ID is one of CR1 and CR2 is programmed in the multi-level cell area MLCR.
[0137] For example, when the core ID of the core is "CR3", in the security level-target storage area table ST_MTBL-1, the type of the security level information SFTLI may be in a state set to SFTL3 and LEV2. In this case, since the type of the target storage area is set to the multi-level cell area MLCR, regardless of whether the remaining storage area information RMSSI from the remaining storage area monitor indicates one of the states ST1 or ST2, data from the core whose core ID is "CR3" may be stored in the multi-level cell area MLCR.
[0138] In some embodiments, when the security level information SFTLI associated with the first core with the core ID "CR1" and the second core with the core ID "CR2" includes a first security level (e.g., SFTL1) and a second security level (e.g., SFTL2) and each of the first security level and the second security level indicates a first level (e.g., LEV1), the storage area in which the plurality of pieces of data from the first core and the second core are to be programmed may be changed according to the state indicated by the remaining storage area information RMSSI (530-3). For example, when the remaining storage area information RMSSI indicates a first state (e.g., ST1), the storage area in which the data from the first core and the second core are to be programmed may be a single-level cell area SLCR. When the remaining storage area information RMSSI indicates a second state (e.g., ST2), the storage area in which the data from the first core and the second core are to be programmed may be a multi-level cell area MLCR.
[0139] In some embodiments, the security level information SFTLI associated with the third core having the core ID "CR3" may further include a third security level (e.g., SFTL3). When the third security level indicates the second level (e.g., LEV2), the type of the storage area in which the data from the third core is to be programmed may not change regardless of the state indicated by the remaining storage area information RMSSI (530-4). For example, when the remaining storage area information RMSSI indicates one of the first state and the second state, the storage area in which the data from the third core is to be programmed may be a multi-level cell area MLCR.
[0140] Fig. 10A and Fig. 10B is a diagram showing programming in a first storage area of a storage device from a host device (eg, Figure 8 A diagram of an example of operations on data of a host device).
[0141] exist Fig. 10A and Fig. 10B In the example, the storage controller may be configured to store data based on a security level-target storage area table (e.g., Fig. 9 ST_MTBL-1) Execution Fig. 10A and Fig. 10B For example, the storage controller may identify the core ID of the host device that sends the programming request from the security level-target storage area table, and may retrieve the type of security level information SFTLI associated with the core corresponding to the core ID, the type of remaining storage area information RMSSI, and the type of the target storage area.
[0142] Reference Fig. 10A and Fig. 10B, showing a single-level cell region SLCR and a multi-level cell region MLCR of a nonvolatile memory, pieces of data from cores CR1 and CR2 may be in a state stored in the single-level cell region SLCR, and pieces of data from core CR3 may be in a state stored in the multi-level cell region MLCR. Pieces of data 701 and 701-1 from cores CR1 and CR2 may be programmed in the nonvolatile memory.
[0143] The state 703 may indicate the size of the remaining region of the single level cell region SLCR.
[0144] As mentioned above Figure 4 and Figure 5A In the described manner, the storage controller may program the plurality of pieces of data 701 and 701-1 from the cores CR1 and CR2 in the nonvolatile memory. For example, based on the security level-target storage area table, the storage controller may determine whether the security level information SFTLI associated with the specific core indicates the first level (e.g., LEV1) and may determine whether the remaining storage area information RMSSI indicates the first state (e.g., ST1).
[0145] exist Fig. 10A In the example shown, because the security level information SFTLI associated with the cores CR1 and CR2 indicates the first level and the remaining storage area information RMSSI indicates the first state (703), the storage controller can program multiple data 701 from the first core CR1 and the second core CR2 in the single-level cell area SLCR of the non-volatile memory.
[0146] exist Fig. 10B In the example shown, because the security level information SFTLI associated with cores CR1 and CR2 indicates the first level and the remaining storage area information RMSSI indicates the second state (e.g., ST2) (703-1), the storage controller can program multiple data 701-1 from the first core CR1 and the second core CR2 in the multi-level cell area MLCR of the non-volatile memory.
[0147] Fig.11A and Fig. 11B is a diagram showing data to be programmed in the first storage area (e.g., Fig. 10A and Fig. 10B An illustration of an example of an operation of migrating data (data) to a second storage area of a storage device.
[0148] exist Fig.11A and Fig. 11B In the example, the storage controller may be based on a mapping table (e.g., Figure 5C L2P_MTBL) execution Fig.11A and Fig. 11BFor example, the storage controller may search the mapping table for the type of security level information SFTLI and the type of actual storage area ASR with respect to a specific physical block.
[0149] Reference Fig.11A and Fig. 11B , showing a single-level cell region SLCR and a multi-level cell region MLCR of a nonvolatile memory, multiple pieces of data from cores CR1 and CR2 may be in a state of being stored in the single-level cell region SLCR, and data from core CR3 may be in a state of being stored in the multi-level cell region MLCR.
[0150] The storage controller may detect the occurrence of the migration event ME ( 705 - 2 ), and the state 703 - 2 may indicate that the remaining storage region information RMSSI is the size of the remaining region of the single level cell region SLCR at the time point when the migration event ME occurs.
[0151] As mentioned above Fig. 6A and Figure 6B As described herein, the storage controller may migrate data stored in the nonvolatile memory. For example, based on the mapping table, the storage controller may determine whether the security level information SFTLI associated with a specific physical block indicates the first level (e.g., LEV1), may determine whether the actual storage area ASR is a single-level cell area SLCR, and may determine whether the remaining storage area information RMSSI indicates the first state ST1.
[0152] exist Fig.11A In the example shown, because the security level information SFTLI associated with the cores CR1 and CR2 indicates the first level, the actual storage area ASR is the single-level cell area SLCR, and the remaining storage area information RMSSI indicates the second state (703-2), the storage controller may migrate multiple pieces of data from the first core CR1 and the second core CR2 to the multi-level cell area MLCR. In this case, the storage controller may determine the priority of the data to be migrated based on the mapping table. For example, referring to Figure 5C , the mapping table may include security level information SFTLI; refer to Fig. 9 , the security level information SFTLI may include security levels SFTL1 and SFTL2 and level LEV1. Even if the levels respectively associated with the data from the first core CR1 and the data from the second core CR2 are the same as each other, i.e., correspond to LEV1, because the data from the core CR1 is indicated as the security level SFTL1, the data from the core CR2 is indicated as the security level SFTL2, and the security level SFTL1 is higher in importance than the security level SFTL2, the storage controller may place the data from the second core CR2 (e.g., Fig.11A The data (shaded in the middle) are migrated to the multi-level cell region MLCR.
[0153] In some embodiments, security level information SFTLI associated with a first core having a core ID of "CR1" and security level information SFTLI associated with a second core having a core ID of "CR2" respectively indicate a first security level (e.g., SFTL1) and a second security level (e.g., SFTL2), and each of the first security level and the second security level may indicate a first level (e.g., LEV1). When a first storage area storing first data from the first core and second data from the second core is a single-level cell area SLCR and when the remaining storage area information RMSSI indicates a second state at a point in time when a migration event occurs, the storage controller may migrate the second data to a second storage area (e.g., a multi-level cell area MLCR) before the first data.
[0154] In execution according to Fig.11A After the migration, Fig. 11B In the example shown, because the security level information SFTLI associated with core CR1 indicates the first level, the actual storage area ASR is the single-level cell area SLCR, and the remaining storage area information RMSSI indicates the first state (703-3), even if a migration event ME (705-3) occurs, the storage controller may not migrate the first data from the first core CR1 to the multi-level cell area MLCR.
[0155] In some embodiments, when the remaining storage area information RMSSI indicates a first state at a time point when the second data is migrated to the second storage area, the storage controller may not migrate the first data to the second storage area.
[0156] Fig. 12A and Fig. 12B is used to describe the data to be migrated to or stored in the second storage area (e.g. Fig.11A and Fig. 11B A diagram of an example of an operation of returning data of the storage area to a first storage area.
[0157] exist Fig. 12A and Fig. 12B In the example, the storage controller may be based on a mapping table (e.g., Figure 5C L2P_MTBL) execution Fig. 12A and Fig. 12B For example, the storage controller may search the mapping table for the type of security level information SFTLI and the type of actual storage area ASR with respect to a specific physical block.
[0158] Reference Fig. 12A and Fig. 12B, showing a single-level cell region SLCR and a multi-level cell region MLCR of a nonvolatile memory, multiple data from core CR1 may be in a state of being stored in the single-level cell region SLCR, and data from cores CR1, CR2, and CR3 may be in a state of being stored in the multi-level cell region MLCR.
[0159] The storage controller may detect the occurrence of the return event RE ( 705 - 4 ), and the state 703 - 4 may indicate that the remaining storage region information RMSSI is the size of the remaining region of the single level cell region SLCR at the time point when the return event RE occurs.
[0160] As mentioned above Fig. 7A and Figure 7B The description provided, the storage controller can return the data stored in the non-volatile memory. For example, based on the mapping table, the storage controller can determine whether the security level information SFTLI associated with a specific physical block indicates the first level (e.g., LEV1), can determine whether the actual storage area ASR is not a single-level cell area SLCR, and can determine whether the remaining storage area information RMSSI indicates the first state ST1.
[0161] exist Fig. 12A In the example shown, because the security level information SFTLI associated with the cores CR1 and CR2 indicates the first level, the actual storage area ASR is the multi-level cell area MLCR, and the remaining storage area information RMSSI indicates the first state ST1 (703-4), the storage controller may return a plurality of pieces of data from the first core CR1 and the second core CR2 to the single-level cell area SLCR. In this case, the storage controller may determine the priority of the data to be returned based on the mapping table. For example, referring to Figure 5C , the mapping table may include security level information SFTLI. Fig. 9 , the security level information SFTLI may include security levels SFTL1 and SFTL2 and level LEV1. Even if the levels associated with the data from the first core CR1 and the data from the second core CR2 are the same as each other, i.e., correspond to LEV1, because the data from the core CR1 is indicated as the security level SFTL1, the data from the core CR2 is indicated as the security level SFTL2, and the security level SFTL1 is more important than the security level SFTL2, the storage controller may place the data from the first core CR1 (e.g., Fig. 12A The data shaded in the figure) are returned to the single-level cell region SLCR.
[0162] In some embodiments, security level information SFTLI associated with a first core having a core ID of "CR1" and security level information SFTLI associated with a second core having a core ID of "CR2" respectively indicate a first security level (e.g., SFTL1) and a second security level (e.g., SFTL2), and each of the first security level and the second security level may indicate a first level (e.g., LEV1). When the second storage area to which the first data from the first core and the second data from the second core are to be migrated is a multi-level cell area MLCR and when the remaining storage area information RMSSI indicates a first state at a point in time when a return event occurs, the storage controller may return the first data of the first data and the second data to the first storage area (e.g., a single-level cell area SLCR) before the second data.
[0163] In execution according to Fig. 12A After the return of Fig. 12B In the example shown, because the security level information SFTLI associated with core CR2 indicates the first level, the actual storage area ASR is the multi-level cell area MLCR, and the remaining storage area information RMSSI indicates the second state (703-5), even if a return event RE (705-5) occurs, the storage controller may not return the second data from the second core CR2 to the single-level cell area SLCR.
[0164] In some embodiments, when the rest of the storage area information RMSSI indicates the second state at a point in time when the first data is returned to the first storage area, the storage controller may not return the second data to the first storage area.
[0165] Fig.13 is a block diagram illustrating a vehicle system including a storage device according to some embodiments of the present disclosure.
[0166] Reference Fig.13 The vehicle system 1000 may be installed on an autonomous driving vehicle. The vehicle system 1000 may include a plurality of host devices HSTDEV1, HSTDEV2, ..., HSTDEVk (k is an integer of 3 or more) and a storage device STRGDEV.
[0167] Each of the plurality of host devices HSTDEV1, HSTDEV2, . . . , HSTDEVk may correspond to Figure 1 The host device 100 or Figure 8 The host device 100a, and the storage device STRGDEV may correspond to Figure 1 The storage device 300 or Figure 8Therefore, the vehicle system 1000 may include host devices or cores that are distinguished from each other by device ID 110 or core IDs 151-1, 153-1, and 157-1, as shown in FIG. Figure 1 or Figure 8 The storage device STRGDEV may include Figure 1 or Figure 8 Security level-target storage area table 315 or 315a and mapping table 317.
[0168] In some embodiments, an autonomous vehicle may be a vehicle that can navigate and operate on its own without human intervention. Autonomous vehicles may be classified according to the degree of autonomy and may include various sensors, recognition systems, decision systems, control systems, communication systems, human-machine interactions (HMIs), and safety systems with cameras, radars, LiDARs, ultrasonic sensors, and global positioning systems (GPS). Sensors may collect data about the surroundings of the autonomous vehicle while driving, such as the location of another vehicle, pedestrians, road signs, and obstacles, the recognition system may identify, classify, and predict objects, and the decision system may perform appropriate decisions by analyzing the recognition data obtained through the recognition system. The control system may control the steering, acceleration, and braking mechanisms of the autonomous vehicle, the communication system may communicate with other autonomous vehicles or traffic infrastructure structural systems, the human-machine interface may provide interaction between the autonomous vehicle and the driver, and the safety system may provide a function that prioritizes the safety of the driver in the event of an error or unexpected situation in the autonomous vehicle. For example, multiple host devices HSTDEV1, HSTDEV2, ..., HSTDEVk may include sensors, identification systems, decision systems, control systems, communication systems and safety systems, and may exchange data DAT1, DAT2, ..., DATk with the storage device STRGDEV in real time while the autonomous driving vehicle is traveling.
[0169] In some embodiments, each of the plurality of host devices HSTDEV1, HSTDEV2, ..., and HSTDEVk may send a request REQ1, REQ2, ..., REQk to exchange data DAT1, DAT2, ..., and DATk with the storage device STRDEV, and may Figure 1 The described ASIL information is sent together with the requests REQ1, REQ2, ..., REQk. For example, the host device HSTDEV1 may send ASIL information ASIL1 together with the request REQ1 to the storage device STRGDEV, the host device HSTDEV2 may send ASIL information ASIL2 together with the request REQ2 to the storage device STRGDEV, and the host device HSTDEVk may send ASIL information ASILk together with the request REQk to the storage device STRGDEV.
[0170] In some embodiments, the ASIL information sent from each of the plurality of host devices HSTDEV1, HSTDEV2, . . . , and HSTDEVk may correspond to the ASIL information in the above reference. Fig. 9 Describes the safety levels SFTL1, SFTL2 and SFTL3. Fig. 9 A description of the security levels SFTL1, SFTL2 and SFTL3 corresponding to each core is provided. Fig.13 As shown, ASIL information can be set for each host device; in this case, multiple data from one or more host devices can be set to correspond to one level in the security level-target storage area table, such as Fig. 9 shown.
[0171] Fig.14 is a flowchart illustrating an operating method of a storage device according to some embodiments of the present disclosure.
[0172] Reference Fig.14 , the electronic system may include a host device and a storage device. The storage device may include a storage controller and a non-volatile memory. The non-volatile memory may include a plurality of storage areas, and the plurality of storage areas may include a first storage area and a second storage area.
[0173] In the operating method of the storage device, a data programming request may be received from a host device ( S100 ).
[0174] The storage device may program data from the host device in a first storage area in a first programming mode based on ASIL information of the host device and remaining storage area information of the nonvolatile memory ( S300 - 1 ).
[0175] In some embodiments, programming data in the first programming mode may mean programming data in a single-level cell region of a nonvolatile memory; in this case, programming data in the second programming mode may mean programming data in a multi-level cell region of a nonvolatile memory. However, the present disclosure is not limited thereto. Programming data in the first programming mode may mean programming data in a multi-level cell region of a nonvolatile memory; in this case, programming data in the second programming mode may mean programming data in a single-level cell region of a nonvolatile memory.
[0176] Based on the ASIL information and the remaining storage area information, the storage device may reprogram data programmed in the first programming mode in the second storage area in the second programming mode, or may reprogram data programmed in the second programming mode in the first storage area again in the first programming mode (S500-1).
[0177] In some embodiments, operations S300-1 and S500-1 may correspond to reference Figure 4 Operation S300 and operation S500 are described.
[0178] Fig.15 is a flowchart illustrating an operating method of a storage device according to some embodiments of the present disclosure.
[0179] Reference Fig.14 and Fig.15 , in the operating method of the storage device, the storage device may recognize the installation of a new host device (S700).
[0180] The storage device may receive ASIL information of the new host device from the new host device ( S800 ).
[0181] The storage device may update the security level-target storage area table based on the ASIL information received from the new host device ( S900 ).
[0182] In some embodiments, when a new host device is installed, data from the new host device may be programmed in a nonvolatile memory based on an updated security level-target storage area table, and migration of the programmed data or return of the migrated data may be performed based on the mapping table.
[0183] Fig.16 is a diagram of an electronic system 2000 to which a storage device is applied according to some embodiments.
[0184] The electronic system 2000 may include a plurality of storage devices (eg, Figure 1 300 Figure 8 300a, Fig.13 STRGDEV). Fig.16 The electronic system 2000 may be a mobile system such as a portable communication terminal (eg, a mobile phone), a smart phone, a tablet personal computer (PC), a wearable device, a medical device, or an Internet of Things (IOT) device. However, Fig.16 The electronic system 2000 is not necessarily limited to a mobile system but may be a PC, a notebook computer, a server, a media player, or an automotive device (eg, a navigation device).
[0185] Reference Fig.16, the electronic system 2000 may include a main processor 2100, a memory (e.g., 2200a and 2200b), and a storage device (e.g., 2300a and 2300b). In addition, the system 2000 may include at least one of an image capture device 2410, a user input device 2420, a sensor 2430, a communication device 2440, a display 2450, a speaker 2460, a power supply device 2470, and a connection interface 2480.
[0186] The main processor 2100 may control the overall operations of the electronic system 2000, and more specifically, operations of other components included in the electronic system 2000. The main processor 2100 may be implemented as a general-purpose processor, a dedicated processor, or an application processor.
[0187] The main processor 2100 may include at least one CPU core 2110, and also include a controller 2120 configured to control memories 2200a and 2200b and / or storage devices 2300a and 2300b. In some embodiments, the main processor 2100 may also include an accelerator 2130, which is a dedicated circuit for high-speed data operations such as artificial intelligence (AI) data operations. The accelerator 2130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and / or a data processing unit (DPU) and is implemented as a chip physically separated from other components of the main processor 2100.
[0188] The memories 2200a and 2200b may be used as main memory devices of the electronic system 2000. Although each of the memories 2200a and 2200b may include a volatile memory such as a static random access memory (SRAM) and / or a dynamic RAM (DRAM), each of the memories 2200a and 2200b may include a nonvolatile memory such as a flash memory, a phase change RAM (PRAM) and / or a resistive RAM (RRAM). The memories 2200a and 2200b may be implemented in the same package as the main processor 2100.
[0189] The storage devices 2300a and 2300b may be used as non-volatile storage devices configured to store data regardless of whether power is supplied thereto, and have a larger storage capacity than the memories 2200a and 2200b. The storage devices 2300a and 2300b may include storage controllers (STRG CTRL) 2310a and 2310b, respectively, and NVM (non-volatile memory) 2320a and 2320b configured to store data under the control of the storage controllers 2310a and 2310b. Although the NVM 2320a and 2320b may include a flash memory having a two-dimensional (2D) structure or a three-dimensional (3D) V-NAND structure, the NVM 2320a and 2320b may include other types of NVMs, such as PRAM and / or RRAM.
[0190] The storage devices 2300a and 2300b may be physically separated from the main processor 2100 and included in the electronic system 2000, or implemented in the same package as the main processor 2100. In addition, the storage devices 2300a and 2300b may have various types of solid-state devices (SSDs) or memory cards, and may be detachably combined with other components of the system 200 through interfaces such as the connection interface 2480 described below. The storage devices 2300a and 2300b may be devices to which standard protocols such as universal flash storage (UFS), embedded multimedia card (eMMC), or non-volatile memory express (NVMe) are applied, but are not limited thereto.
[0191] The image capture device 2410 may capture a still image or a moving image. The image capture device 2410 may include a camera, a camcorder, and / or a webcam.
[0192] The user input device 2420 may receive various types of data input by a user of the electronic system 2000 and include a touch pad, a keypad, a keyboard, a mouse, and / or a microphone.
[0193] The sensor 2430 may detect various types of physical quantities that may be obtained from outside the electronic system 2000 and convert the detected physical quantities into electrical signals. The sensor 2430 may include a temperature sensor, a pressure sensor, an illumination sensor, a position sensor, an acceleration sensor, a biosensor, and / or a gyro sensor.
[0194] The communication device 2440 may transmit and receive signals between other devices outside the electronic system 2000 according to various communication protocols. The communication device 2440 may include an antenna, a transceiver, and / or a modem.
[0195] The display 2450 and the speaker 2460 may be used as output devices configured to output visual information and auditory information, respectively, to a user of the electronic system 2000 .
[0196] The power supply device 2470 may appropriately convert power supplied from a battery (not shown) built in the electronic system 2000 and / or an external power source, and supply the converted power to each of the components of the electronic system 2000 .
[0197] The connection interface 2480 may provide a connection between the electronic system 2000 and an external device connected to the electronic system 2000 and may transfer data to or from the electronic system 2000. The connection interface 2480 may be implemented according to various interface schemes, such as Advanced Technology Attachment (ATA), Serial ATA (SATA), External SATA (e-SATA), SCSI (Small Computer Small Form Factor Interface), SAS (Serial Attached SCSI), PCI (Peripheral Component Interconnect), PCIe (PCI Express), NVMe, IEEE1394, USB (Universal Serial Bus), SD (Secure Digital) card, MMC (Multimedia Card), eMMC, UFS, eUFS (embedded Universal Flash), CF (Compact Flash) card interface, etc.
[0198] Each of the storage devices 2300a and 2300b may correspond to the above reference Figure 1 or Figure 8 The storage devices 300 and 300a described above. Therefore, each of the storage devices 2300a and 2300b can manage data from the host device based on the security level information of the host device and the remaining storage area information of the non-volatile memory. In this case, each of the image capture device 2410, the user input device 2420, the sensor 2430, the communication device 2440, the display 2450, the speaker 2460, the power supply device 2470, and the connection interface 2480 can be a host device.
[0199] As described above, based on the security level information and the remaining storage area information, the storage device according to some embodiments of the present disclosure can program data with high importance in the single-level cell area and can program data with low importance in the multi-level cell area. Even if the importance of the data is high, the data may be temporarily programmed in the multi-level cell area or migrated to the multi-level cell area according to the size of the remaining areas at the time point when the data is to be programmed or at the time point when the migration event occurs, but in the end, the storage device may return the data with high importance to the single-level cell area, and may return the data with high importance to the single-level cell area before the data with low importance. Therefore, the storage device can ensure the reliability of the data and the delay of the data by managing multiple pieces of data so that the data with high importance is retained in the single-level cell area as much as possible and the data with low importance is retained in the multi-level cell area, and can effectively store and manage multiple pieces of data with security level information in mind according to the purpose and function of one or more host devices in the vehicle system.
[0200] Although the present disclosure includes many specific implementation details, these should not be interpreted as limiting the scope of the claimable protection. Certain features described in the context of the separated embodiments in the present disclosure may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented individually in multiple embodiments or according to any suitable sub-combination. In addition, although features may be described above as working in certain combinations, in some cases, one or more features from a combination may be removed from the combination, and the combination may point to a sub-combination or a variant of a sub-combination.
[0201] While the present disclosure has been described with reference to various embodiments thereof, it will be apparent to those skilled in the art that various changes and modifications can be made thereto without departing from the spirit and scope of the present disclosure as set forth in the appended claims.
Claims
1. A storage device, comprising: A nonvolatile memory including a plurality of storage areas including a first storage area and a second storage area, wherein the first storage area and the second storage area are different in type from each other; and A storage controller configured to: programming data from the host device in the first storage area based on at least one of the security level information of the host and the remaining storage area information of the non-volatile memory; and Based on the security level information and the remaining storage area information, data programmed in the first storage area is migrated to the second storage area, or data previously programmed in the first storage area and migrated to the second storage area is returned to the first storage area.
2. The storage device according to claim 1, wherein: The security level information indicates a first level, and Wherein, programming the data from the host device in the first storage area comprises: Based on the security level information indicating the first level, identifying the storage state indicated by the remaining storage area information; and Data from the host device is programmed in the first storage area based on a storage status indicated by the remaining storage area information.
3. The storage device according to claim 2, wherein: The first storage region is a single-level cell region.
4. The storage device according to claim 1, wherein: The security level information indicates the second level, and Wherein, programming the data from the host device in the first storage area comprises: programming data in the first storage area based on the security level information indicating the second level and regardless of the storage state indicated by the remaining storage area information, Wherein, the first storage area is a multi-level unit area.
5. The storage device according to claim 1, when the first storage region is a single-level cell region, The storage controller is configured to: migrate the data programmed in the first storage area to the second storage area based on the remaining storage area information indicating a second storage state at a time point when a migration event occurs, in, The second storage state corresponds to an insufficient storage level in the first storage area.
6. The storage device according to claim 5, wherein: The storage controller is configured to: An enhanced data protection policy is applied to data migrated to the second storage area.
7. The storage device according to claim 5, wherein: The storage controller is configured to: Based on the remaining storage area information indicating a first storage state at a point in time when a return event occurs, the data migrated to the second storage area is returned to the first storage area, wherein the first storage state corresponds to a sufficient storage level in the first storage area.
8. The storage device according to claim 1, wherein: The host device includes a first core that outputs first data and a second core that outputs second data, wherein the data from the host device includes the first data and the second data, and The security level information includes a first security level associated with the first data and a second security level associated with the second data.
9. The storage device according to claim 8, wherein: Each of the first security level and the second security level is associated with a first level, and Wherein, programming the data from the host device in the first storage area comprises: identifying a first storage state indicated by the remaining storage area information based on each of the first security level and the second security level associated with the first level; and The first data and the second data are programmed in the first storage area based on the first storage state indicated by the remaining storage area information.
10. The storage device according to claim 9, wherein: The first storage region is a single-level cell region.
11. The storage device according to claim 10, wherein: The storage controller is configured to: migrate at least one of the first data and the second data programmed in the first storage area to the second storage area based on the remaining storage area information indicating a second storage state at a time point when a migration event occurs, and The storage controller is configured to migrate the second data to the second storage area before the first data based on the first security level and the second security level.
12. The storage device according to claim 11, wherein: The storage controller is configured to: not migrate the first data to the second storage area based on the remaining storage area information indicating the first storage state after the second data is migrated to the second storage area.
13. The storage device according to claim 11, wherein: The storage controller is configured to: based on the remaining storage area information indicating the first storage state at the time point when the return event occurs, and based on the first security level and the second security level, return the first data migrated to the second storage area to the first storage area before the second data.
14. The storage device according to claim 13, wherein: The storage controller is configured to: not return the second data to the first storage area based on the remaining storage area information indicating the second storage state after the first data is returned to the first storage area.
15. The storage device according to claim 8, wherein: The host device includes a third core that outputs third data, wherein the data from the host device includes the third data, The security level information includes a third security level associated with the third data. wherein each of the first security level and the second security level is associated with a first level, and the third security level is associated with a second level, and Wherein, the storage controller is configured as: Based on the remaining storage area information indicating a first storage state, programming the first data and the second data in the first storage area, wherein the first storage area is a single-level cell area, and programming the third data in the second storage area, wherein the second storage area is a multi-level cell area; and Based on the remaining storage area information indicating a second state at a point in time when a migration event occurs, the second data is migrated to the second storage area before the first data.
16. A method for controlling a storage device, the method comprising: Programming data from the host device in a first storage area based on at least one of security level information of the host device and remaining storage area information of a nonvolatile memory, wherein the nonvolatile memory includes a plurality of storage areas, and the plurality of storage areas include the first storage area and a second storage area, wherein the first storage area and the second storage area are different types of storage areas; Migrating data programmed in the first storage area to the second storage area based on security level information of the nonvolatile memory and information of other storage areas; and The data migrated to the second storage area is returned to the first storage area based on the security level information and the remaining storage area information.
17. The method according to claim 16, wherein: Programming the data from the host device in the first storage area comprises: programming data from the host device in the first storage area based on security level information indicating a first level and remaining storage area information indicating a first storage state, wherein the first storage area is a single level cell area, or Data from the host device is programmed in the first storage area based on security level information indicating the first level and remaining storage area information indicating a second storage state, wherein the first storage area is a multi-level cell area.
18. The method according to claim 16, wherein: The first storage area is a single level cell area, and wherein migrating data programmed in the first storage area to the second storage area comprises: Based on the remaining storage area information indicating a second storage state at a point in time when a migration event occurs, data programmed in the first storage area is migrated to the second storage area, wherein the second storage state corresponds to insufficient storage level in the first storage area.
19. The method according to claim 18, wherein: Returning the data migrated to the second storage area to the first storage area comprises: Based on the remaining storage area information indicating a first storage state at a point in time when a return event occurs, the data migrated to the second storage area is returned to the first storage area, wherein the first storage state corresponds to a sufficient storage level in the first storage area.
20. A storage device comprising: A nonvolatile memory including a plurality of storage areas including a first storage area and a second storage area, wherein the first storage area and the second storage area are different in type from each other; and A storage controller configured to: programming data from the host device in the first storage area in a first programming mode based on at least one of the vehicle safety integrity level information of the host device and the remaining storage area information of the non-volatile memory; and Based on the vehicle safety integrity level information and the remaining storage area information, data programmed in the first storage area in the first programming mode is reprogrammed in the second storage area in the second programming mode, or data previously reprogrammed in the second storage area in the second programming mode is reprogrammed in the first storage area in the first programming mode.
Citation Information
Patent Citations
IoT crane, fork crane, tower crane and works, construction, management, safety, cleaning method
KR1020230129141A