US12067235B2 - Data storage device and data storage system - Google Patents
Data storage device and data storage system Download PDFInfo
- Publication number
- US12067235B2 US12067235B2 US17/884,581 US202217884581A US12067235B2 US 12067235 B2 US12067235 B2 US 12067235B2 US 202217884581 A US202217884581 A US 202217884581A US 12067235 B2 US12067235 B2 US 12067235B2
- Authority
- US
- United States
- Prior art keywords
- memory
- memory controllers
- controllers
- controller
- data storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Definitions
- SD Secure Digital
- MMC Multi Media Card
- CF Compact Flash
- MS Memory Stick
- XD Extreme Digital
- SSD solid state hard drives
- eMMC Embedded Multi Media Cards
- UFS Universal Flash Storage
- the existing data storage devices have a predetermined capacity limit in general.
- the current upper limit of the capacity of a SSD storage may be 4 terabytes (TB). Therefore, how to expand the capacity of a data storage device in a simple way based on the design of existing storages is a topic worthy of concerning.
- a data storage device comprises a plurality of storage modules.
- Each storage module comprises a storage, having a memory device and a first memory controller, and a second memory controller.
- the first memory controller is coupled to the memory device and configured to access the memory device.
- the second memory controller is coupled to the storage and configured to access the storage.
- the first memory controller comprises a first transmission interface
- the second memory controller comprises a second transmission interface
- the first memory controller and the second memory controller communicate with each other through the first transmission interface and the second transmission interface.
- a data storage device comprises a plurality of memory devices, a plurality of first memory controllers and a plurality of second memory controllers.
- One of the first memory controllers is coupled between one of the memory devices and one of the second memory controllers and configured to access said one of the memory devices.
- the first memory controllers and the second memory controllers are the same memory controllers.
- a data storage system comprises a plurality of storages, a plurality of second memory controllers and a bridge controller.
- Each storage comprises a memory device and a first memory controller.
- the first memory controller is coupled to the memory device and configured to access the memory device.
- the second memory controllers is coupled to the storages and configured to access the storages.
- One of the second memory controllers and one of the storages form a storage module.
- the bridge controller is coupled to the second memory controllers and configured to access the storages through the second memory controllers.
- FIG. 1 shows a block diagram of an exemplary storage according to an embodiment of the invention.
- FIG. 2 shows a simplified block diagram of the exemplary storage according to an embodiment of the invention.
- FIG. 4 shows a more detailed block diagram of an exemplary data storage system according to an embodiment of the invention.
- FIG. 5 is a schematic diagram showing an implementation of the data storage system according to an embodiment of the invention.
- FIG. 1 shows a block diagram of an exemplary storage according to an embodiment of the invention.
- the storage 100 may comprise a memory device 120 and a memory controller 110 .
- the memory controller 110 is configured to access the memory device 120 and control operations of the memory device 120 .
- the memory device 120 may be a non-volatile (NV) memory (e.g. a Flash memory) device and may comprise one or more memory elements (e.g. one or more Flash memory dies, or one or more Flash memory chip, or the likes).
- NV non-volatile
- Flash memory Flash memory
- the storage 100 may be coupled to a host device 130 directly or through a bridge device.
- the host device 130 may comprise at least one processor, a power supply circuit, and at least one random access memory (RAM), such as at least one dynamic RAM (DRAM), at least one static RAM (SRAM), . . . etc. (not shown in FIG. 1 ).
- the processor and the RAM may be coupled to each other through a bus, and may be coupled to the power supply circuit to obtain power.
- the processor may be configured to control operations of the host device 130
- the power supply circuit may be configured to provide the processor, the RAM, and the storage 100 with power.
- the power supply circuit may output one or more driving voltages to the storage 100 .
- the storage 100 may obtain the one or more driving voltages from the host device 130 as the power of the storage 100 and provide the host device 130 with storage space.
- the memory controller 110 may comprise a microprocessor 112 , a Read Only Memory (ROM) 112 M, a memory interface 114 , a buffer memory 116 and a host interface 118 .
- the microprocessor 112 , the ROM 112 M and the buffer memory 116 may form a control unit 115 of the memory controller 110 .
- the ROM 112 M is configured to store program codes 112 C.
- the microprocessor 112 is configured to execute the program codes 112 C, thereby controlling access to the memory device 120 .
- the program codes 112 C may comprise one or more program modules, such as the boot loader code.
- read, write and erase such as a read operation module, a table lookup module, a wear leveling module, a read refresh module, a read reclaim module, a garbage collection module, a sudden power off recovery (SPOR) module and an uncorrectable error correction code (UECC) module, respectively provided for performing the operations of read, table lookup, wear leveling, read refresh, read reclaim, garbage collection, SPOR and error handling for detected UECC error.
- SPOR sudden power off recovery
- UECC uncorrectable error correction code
- the memory interface 114 may comprise an encoder 132 and a decoder 134 .
- the encoder 132 is configured to encode the data to be written into the memory device 120 , such as performing ECC encoding.
- the decoder 134 is configured decode the data read out from the memory device 120 .
- the memory device 120 may comprise a plurality of memory elements, such as a plurality of Flash memory dies or Flash memory chips, and each memory element may comprise a plurality of memory blocks.
- the access unit of an erase operation performed by the memory controller 110 on the memory device 120 may be one memory block.
- a memory block may record (comprise) a predetermined number of pages, for example, the physical pages, and the access unit of a write operation performed by the memory controller 110 on the memory device 120 may be one page.
- the memory controller 110 may perform various control operations by using its own internal components.
- the memory controller 110 may use the memory interface 114 to control the access operations (especially the access operation for at least a memory block or at least a page) of the memory device 120 , use the buffer memory 116 to perform necessary data buffer operations, and use the host interface 118 to communicate with the host device 130 .
- the memory controller 110 may use the host interface 118 to communicate with the host device 130 in compliance with a standard communication protocol.
- the standard communication protocol may comprise (but is not limited to) the Universal Serial Bus (USB) standard, the SD interface standard, the Ultra High Speed-I (UHS-I) interface standard, the Ultra High Speed-II (UHS-II) interface standard, the CF interface standard, the Multi Media Card (MMC) interface standard, the eMMC interface standard, the UFS interface standard, the Advanced Technology Attachment (ATA) standard, the Serial ATA (SATA) standard, the Peripheral Component Interconnect Express (PCI-E) standard, the Parallel Advanced Technology Attachment (PATA) standard, etc.
- the buffer memory 116 may be implemented by a RAM.
- the buffer memory 116 may be an SRAM, but the invention should not be limited thereto.
- the buffer memory 116 may be a DRAM.
- the storage 100 may be a portable storage (for example, the memory card in compliance with the SD/MMC, CF, MS and/or XD standard), and the host device 130 may be an electronic device, such as a mobile phone, a notebook computer, a desktop computer . . . etc., capable of connecting to the storage 100 .
- the storage 100 may be a solid state hard disk or an embedded storage in compliance with the UFS or the eMMC standards, and may be equipped in an electronic device such as a mobile phone, a notebook computer, or a desktop computer.
- the host device 130 may be a processor of the electronic device.
- FIG. 2 shows a simplified block diagram of the exemplary storage according to an embodiment of the invention, wherein the components inside the memory controller are simplified into three parts: the host interface, the memory interface and the control unit, so as to simplify the description in the following paragraphs.
- the storage 200 may comprise a memory device 220 and a memory controller 210 .
- the memory controller 210 may access the memory device 220 and control operations of the memory device 220 .
- the memory controller may be a non-volatile (NV) memory device, such as the above-mentioned flash memory.
- NV non-volatile
- the memory device 220 may be a NAND type flash memory and the storage 200 may be implemented as an UFS device. Therefore, in this embodiment, the memory controller 210 may comprise an UFS interface 218 , a flash memory interface 214 and a control unit 215 .
- the UFS interface 218 may be the aforementioned host interface and the flash memory interface 214 may be the aforementioned memory interface.
- the control unit 215 may comprise a microprocessor, a ROM and a buffer memory as shown in FIG. 1 .
- the control unit 215 may communicate with another device, such as a host device (not shown in FIG. 2 ), through the UFS interface 218 and in compliance with the UFS protocol, and the control unit 215 may access the memory device 220 through the flash memory interface 214 .
- the existing storages have a predetermined capacity upper limit.
- the storage 100 as shown in FIG. 1 or the storage 200 as shown in FIG. 2 may at most comprise a predetermined number of flash memory dies due to the circuit size constraints. Therefore, the storage 100 / 200 may have a predetermined capacity upper limit.
- a hierarchical structure is utilized to expand the storage capacity so as to form a large-capacity data storage device (that is, a mass data storage device).
- FIG. 3 shows a block diagram of an exemplary data storage system according to an embodiment of the invention.
- the data storage system may at least comprise a bridge controller 350 and a data storage device 380 .
- the data storage device 380 may comprise a plurality of storage modules SM- 1 , SM- 2 , . . . SM-N, where N is a positive integer greater than 1.
- Each storage module may comprise a storage, such as one of the storages 300 - 1 , 300 - 2 , . . . 300 -N and a memory controller, such as one of the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N.
- the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N may be respectively coupled to a corresponding storage, for accessing the corresponding memory device.
- the bridge controller 350 is coupled between the data storage device 380 and the host device 370 .
- the bridge controller 350 may generate a corresponding access control signal in response to an access command received from the host device 370 , so as to access the corresponding storage.
- Each storage may comprise a memory device, such as one of the memory devices 320 - 1 , 320 - 2 , . . . 320 -N and a memory controller, such as one of the memory controllers 310 - 1 , 310 - 2 , . . . 310 -N.
- the memory controllers 310 - 1 , 310 - 2 , . . . 310 -N may be respectively coupled to the corresponding memory device, for accessing the corresponding memory device.
- the storages 300 - 1 , 300 - 2 , . . . 300 -N may be implemented in the way as the storage 100 or the storage 200 illustrated above, and the memory devices, such as the memory devices 320 - 1 , 320 - 2 , . . . 320 -N, comprised in the storages 300 - 1 , 300 - 2 , . . . 300 -N may be respectively a non-volatile memory device (such as a flash memory) and may comprise one or more memory elements, such as one or more flash memory dies, one or more flash memory chips, or the likes.
- a non-volatile memory device such as a flash memory
- the memory controllers such as the memory controllers 310 - 1 , 310 - 2 , . . . 310 -N, comprised in the storages 300 - 1 , 300 - 2 , . . . 300 -N may also be implemented in the way as shown in FIG. 1 or FIG. 2 . Therefore, the detailed descriptions regarding the storages 300 - 1 , 300 - 2 , . . . 300 -N may refer to the decryptions for FIG. 1 and FIG. 2 , and are omitted here for brevity.
- the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N, comprised in the storage modules SM- 1 , SM- 2 , . . . SM-N may also be implemented in the way as shown in FIG. 1 or FIG. 2 . Therefore, the detailed descriptions regarding the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N may refer to the descriptions with respect to FIG. 1 and FIG. 2 , and are omitted here for brevity.
- each storage module SM- 1 , SM- 2 , . . . SM-N may comprise two memory controllers coupled with each other, such as the two interconnected memory controllers 310 - 1 and 330 - 1 , the two interconnected memory controllers 310 - 2 and 330 - 2 , . . . and the two interconnected memory controllers 310 -N and 330 -N.
- the two interconnected memory controllers may be selected as the same memory controller, as an example, the two memory controllers may be the same type of controller chips (e.g.
- the controller chips having the same product number or serial number), or the two memory controllers may be identical (that is, having the same hardware, software and/or firmware design), or the two memory controllers may be implemented in compliance with the same communication protocol and may be the same or different types of controller chips (e.g. the controller chips having the same product number or the same serial number or having different product numbers or different serial numbers).
- the two memory controllers may be the same or different types of UFS memory controllers.
- the host interfaces (or, may be the UFS interface when the storage is implemented as a UFS device) of two memory controllers may be connected with each other through the corresponding bus, such as one of the buses 340 - 1 , 340 - 2 , . . . 340 -N, so that the two interconnected memory controllers may communicate with each other through these two interfaces.
- the memory controllers 310 - 1 , 310 - 2 , . . . 310 -N, comprised in the storages 300 - 1 , 300 - 2 , . . . 300 -N may be configured to operate in a device mode
- the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N coupled to the storages 300 - 1 , 300 - 2 , . . . 300 -N may be configured to operate in a host mode.
- the two memory controllers coupled with each other may be both configured with the hardware devices and corresponding firmware and software structures for operating in the host mode, and, and may be also equipped with the hardware devices and corresponding firmware and software structures for operating in the device mode.
- the same memory controllers may be applied to different devices, such as the storage and the data storage device as illustrated above, at the same time by simply setting different operation modes.
- the bridge controller 350 may be coupled to the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N through the buses 360 - 1 , 360 - 2 , . . . 360 -N, so as to access the corresponding storages 300 - 1 , 300 - 2 , . . . 300 -N through the memory controllers 330 - 1 , 330 - 2 , . . . 330 -N.
- the bridge controller 350 may generate a plurality of chip enable signals, such as the chip enable signals CE- 1 to CE-N.
- One of the chip enable signals CE- 1 to CE-N may be provided to one of the storage modules SM- 1 to SM-N, for enabling the corresponding storage module, respectively.
- the bridge controller 350 is further coupled to the host device 370 through the bus 390 and generates at least one of the chip enable signals CE- 1 to CE-N in response to an access command received from the host device 370 .
- FIG. 4 shows a more detailed block diagram of an exemplary data storage system according to an embodiment of the invention.
- the data storage system may at least comprise a bridge controller 450 and a data storage device.
- the data storage device may comprise a plurality of storage modules, and the storage modules may have the same or similar structure and may operate in the same or similar manner.
- the storage module SM-n may comprise a storage 400 - n and a memory controller 430 - n
- the storage 400 - n may comprise a memory device 420 - n and a memory controller 410 - n
- the bridge controller 450 is coupled between the memory controller 430 - n and the host device 470 , and the bridge controller 450 generates a corresponding access control signal in response to an access command received from the host device 470 , so as to access corresponding memory device 420 - n through the memory controllers 430 - n and 410 - n.
- the storage module SM-n may comprise two interconnected memory controllers 410 - n and 430 - n , wherein the two interconnected memory controllers may be selected as the same memory controller, as an example, the two memory controllers may be the same type of controller chips (e.g. the controller chips having the same product number or serial number), or the two memory controllers may be identical (that is, having the same hardware, software and/or firmware design), or may be the memory controllers implemented in compliance with the same communication protocol but may be the same or different types of memory controllers (e.g. having the same product number or the same serial number or having different product numbers or different serial numbers).
- the two interconnected memory controllers may be selected as the same memory controller, as an example, the two memory controllers may be the same type of controller chips (e.g. the controller chips having the same product number or serial number), or the two memory controllers may be identical (that is, having the same hardware, software and/or firmware design), or may be the memory controllers implemented in compliance with the same communication protocol but may be
- the memory controller 410 - n may comprise transmission interfaces 411 and 413 and a control unit 415 , wherein the memory controller 410 - n may be implemented in the manner as shown in FIG. 1 or FIG. 2 , Therefore, the transmission interface 411 may be the aforementioned host interface, and the transmission interface 413 may be the aforementioned memory interface.
- the memory controller 430 - n may comprise transmission interfaces 431 and 433 and a control unit 435 , wherein the memory controller 430 - n may also be implemented in the manner as shown in FIG. 1 or FIG. 2 . Therefore, the transmission interface 431 may be the aforementioned host interface, and the transmission interface 433 may be the aforementioned memory interface.
- the bridge controller 450 may also be a memory controller comprising the transmission interfaces 451 and 453 and the control unit 455 , and may also be implemented in the manner as shown in FIG. 1 or FIG. 2 .
- the transmission interface 451 may be the aforementioned host interface
- the transmission interface 453 may be the aforementioned memory interface.
- the transmission interfaces 411 , 413 , 431 , 433 , 451 and 453 may be respectively configured to communicate with a device or a transmission interface coupled thereto in compliance with a corresponding standard communication protocol, wherein the transmission interface 411 is coupled to the transmission interface 431 through the bus 440 - n , so that the memory controllers 430 - n and 410 - n may be interconnected through the transmission interfaces 411 and 431 and may communicate with each other through the transmission interfaces 411 and 431 .
- the transmission interface 413 is configured to communicate with the memory device 420 - n , and the transmission interface 433 is coupled to the transmission interface 453 through the bus 460 - n , so that the memory controller 430 - n and the bridge controller 450 may communicate with each other through the transmission interfaces 433 and 453 , and the bridge controller 450 may further communicate with the host device 470 through the transmission interface 451 and the bus 490 .
- the control units 415 , 435 , and 455 may be implemented as the control unit 115 . That is, the control units 415 , 435 , and 455 may comprise a microprocessor, a read-only memory, and a buffer memory, etc., respectively, and may be configured to execute built-in program codes, thereby making the memory controllers 410 - n and 430 - n and the bridge controller 450 have corresponding function.
- the control units 415 , 435 and 455 may be respectively configured to control transmissions and receptions of the signals and packets between the two transmission interfaces 411 and 413 , 431 and 433 and 451 and 453 and process the received signals and packets or the signals and packets to be transmitted in compliance with the corresponding standard communication protocol, and may be further configured to perform and control the format conversion of the signals and the packets, so that the signals and packets are transmitted in correct data format through the corresponding transmission interfaces.
- the memory device 420 - n may be a flash memory
- the transmission interfaces 413 , 433 and 453 may be flash memory interfaces.
- the transmission interfaces 413 , 433 and 453 are NAND type flash memory interfaces.
- the transmission interfaces 411 and 431 may be UFS interfaces, and the memory controller 430 - n may communicate with the storage 400 - n through the transmission interface 431 in compliance with the corresponding UFS communication protocol for accessing the storage 400 - n.
- the transmission interface 451 may be a Peripheral Component Interconnect Express (PCIe) interface or a Universal Serial Bus (USB) interface
- the bridge controller 450 may communicate with the host device 470 through the transmission interface 451 in compliance with the corresponding PCIe or the USB protocol.
- PCIe Peripheral Component Interconnect Express
- USB Universal Serial Bus
- the memory controllers 410 - n and 430 - n may be selected as the same memory controller, as an example, the two memory controllers may be the same type of controller chips (e.g. having the same product number or serial number), or the two memory controllers may be identical (that is, having the same hardware, software and/or firmware design), or the two memory controllers may be the memory controllers implemented in compliance with the same communication protocol but may be the same or different types of memory controllers (e.g. having the same product number or the same serial number or having different product numbers or different serial numbers).
- the two memory controllers may be the same type of controller chips (e.g. having the same product number or serial number), or the two memory controllers may be identical (that is, having the same hardware, software and/or firmware design), or the two memory controllers may be the memory controllers implemented in compliance with the same communication protocol but may be the same or different types of memory controllers (e.g. having the same product number or the same serial number or having different product numbers or different serial numbers).
- the storage module SM-n may be equipped with the same memory controller as the one inside of the storage 400 - n , wherein the host interfaces of the two memory controllers (or, when the storage 400 - n is implemented as a UFS device, they may be UFS interfaces) may be connected to each other through corresponding bus, so that the two memory controllers in the storage module SM-n may communicate through these two interfaces.
- the memory controllers 410 - n and 430 - n may also be selected as different memory controllers.
- the memory controller 410 - n may be configured to operate in a device mode, and the memory controller 430 - n may be configured to operate in a host mode.
- the bridge controller 450 may also be a memory controller and configured to operate in a device mode.
- the memory controllers 410 - n and 430 - n may be both equipped with hardware devices and corresponding firmware and software structures for performing host mode operations, and may be also equipped with hardware devices and corresponding firmware and software structures for performing device mode operations. In this manner, in the embodiments of the invention, by properly configuring the corresponding operation mode, the same memory controller may be used in both the storage and the data storage device.
- the memory controller may be configured to operate in the device mode or the host mode by means of software or hardware configuration.
- the memory controller may comprise a register for storing the setting value regarding the operation mode.
- the control unit of the memory controller may set the setting value stored in the register.
- the control unit may operate in a host mode, thereby configuring the memory controller to operate in the host mode.
- the control unit may operate in a device mode, thereby configuring the memory controller to operate in the device mode.
- the memory controller may comprise a setting pin, for example, a general-purpose input/output (GPIO) pin, and the memory controller may determine which mode to operate in according to a value of the setting pin.
- the control unit may operate in a host mode, thereby configuring the memory controller to operate in the host mode.
- the control unit may operate in a device mode, thereby configuring the memory controller to operate in the device mode.
- the transmission interface thereof when the memory controller and/or the control unit thereof is configured to operate in the host mode, the transmission interface thereof, such as the aforementioned flash memory interface, operates in a slave mode, and when the memory controller and/or the control unit thereof is configured to operate in the device mode, transmission interface thereof operates in a master mode.
- the transmission interface 433 may operate in the slave mode and the transmission interface 453 may operate in the master mode.
- FIG. 5 is a schematic diagram showing an implementation of the data storage system according to an embodiment of the invention.
- the data storage system may comprise a bridge controller 550 and a data storage device 580 .
- the data storage device 580 may comprise a plurality of storage modules SM- 1 , SM- 2 . . . SM-N, where N is a positive integer greater than one.
- the storage modules SM- 1 , SM- 2 . . . SM-N may have the same or similar structure and may function in the same or similar manner.
- Each storage module may comprise a storage, such as one of the storages 500 - 1 , 500 - 2 . . .
- the bridge controller 550 is coupled between the data storage device 580 and the host device 570 , and the bridge controller 550 may generate a corresponding access control signal in response to an access command received from the host device 570 so as to access the corresponding storage.
- the storages 500 - 1 , 500 - 2 . . . 500 -N may respectively comprise a UFS memory controller and a memory device as described above.
- the bridge controller 550 may be configured to operate in device mode
- the memory controllers 530 - 1 , 530 - 2 . . . 530 -N may be configured to operate in host mode
- the UFS memory controller inside of the storages 500 - 1 , 500 - 2 . . . 500 -N may be configured to operate in device mode.
- the control units 535 - 1 , 535 - 2 . . . 535 -N and 555 may be configured to execute built-in program codes, thereby making the memory controllers 530 - 1 , 530 - 2 . . .
- the memory controllers 530 - 1 , 530 - 2 . . . 530 -N and the UFS memory controllers inside the storages 500 - 1 , 500 - 2 . . . 500 -N may be the same UFS memory controller, and such UFS memory controller may be equipped with hardware devices and corresponding firmware and software structures for performing host mode operations, and may be also equipped with hardware devices and corresponding firmware and software structures for performing device mode operations.
- the same UFS memory controller may be used in both the storage and the data storage device at the same time by simply configuring the corresponding operation mode, so as to realize the proposed data storage system.
- the bridge controller 550 may communicate with the host device 570 through the PCIe interface 551 in compliance with the NVMe protocol.
- the host device 570 wants to access the data storage device 580
- the host device 570 sends an access command or data to the bridge controller 550 in compliance with the NVMe protocol, wherein the access command may comprise the logical address to be accessed by the host device 570 , such as the logical block address (LBA).
- the bridge controller 550 may convert the command or data into a data format that is recognizable for the memory controllers 530 - 1 , 530 - 2 . . .
- 530 -N packaging the data into a packet in compliance with the corresponding communication protocol, convert the logical address to be accessed by the host device 570 into addresses identifiable by the memory controllers 530 - 1 , 530 - 2 . . . 530 -N, and determine which storage is the object of this access operation according to the logical address to be accessed by the host device 570 .
- the bridge controller 550 may set the chip enable signal CE- 1 to an enabled state so as to enable the storage module SM- 1 , and transmit the corresponding access command to the data storage device 580 through the flash memory interface and the bus, for the memory controller 530 - 1 to be able to receive the corresponding access command.
- the bridge controller 550 may set the chip enable signal CE- 2 to an enabled state so as to enable the storage module SM- 2 , and transmit the corresponding access command to the data storage device 580 through the flash memory interface and the bus, for the memory controller 530 - 2 to be able to receive the corresponding access command, and so on.
- the memory controllers 530 - 1 , 530 - 2 , . . . 530 -N may further convert the commands, addresses, and/or data into the data type recognizable by the memory controllers inside the storages 500 - 1 , 500 - 2 , .
- the overall capacity of the data storage device 580 may be expanded to (2*N) TB, making the data storage device 580 to become a mass data storage device.
- the invention is not limited to configure storages with the same capacity in the data storage device 580 . That is, in the embodiments of the invention, the storages in the data storage device 580 may have the same or different memory capacities.
- each storage module is coupled to the bridge controller through the corresponding bus, the invention is not limited to such an implementation.
- the storage modules SM- 1 to SM-N may also be coupled to the bridge controller through a common bus, and the memory controllers in the storage modules SM- 1 to SM-N may determine whether to perform the corresponding access operation in response to the access control signal on the common based on whether the received chip enable signal (e.g. the corresponding one of the enable signals CE- 1 to CE-N) has been set to the enabled state.
- the received chip enable signal e.g. the corresponding one of the enable signals CE- 1 to CE-N
- the memory device may also be other types of memory
- the storage may also be implemented as a storage or storage device supporting other standard communication protocols.
- the bridge controllers may package the data into a packet in compliance with the corresponding protocol, convert the logical address requested to be accessed by the host device into an address identifiable by memory controller, determine which storage is the object of this access operation according to the logical address to be accessed by the host device and then enable the corresponding storage module through the chip enable signal to complete the access operation of the storage.
- the detailed operations of the bridge controller when being implemented as a controller supporting other standard communication protocols are substantially the same as the above embodiments; therefore, reference may be made to the descriptions of the above embodiments, and the details are omitted here for brevity.
- a hierarchical structure can be established based on the existing storage devices or storages, and the hierarchical structure is utilized to expand the total storage capacity of the data storage device, so as to form a large-capacity data storage device. For example, assuming that a storage or a memory device has a maximum capacity of 2 TB due to the circuit size constrain, the capacity of the data storage device constructed based on the proposed hierarchical structure may be expanded to (2*N) TB. In this manner, the capacity upper limit of the existing memory device may be overcome, and the capacity of the data storage device may be increased and optimized.
- the bridge controller and the memory controller may be respectively configured to operate in the device mode and the host mode, so as to cooperate with each other to complete the bridge operation.
- the two memory controllers connected to each other inside the storage module may be the same memory controller, so that only one memory controller circuit or chip needs to be designed and taped out, and via the aforementioned operation mode configurations, such a memory controller circuit or chip has two different applications, which effectively saves the manufacturing cost and effectively solves the problem that the two devices cannot be compatible with each other due to different versions (e.g. developed based on different versions of standard).
- the UFS 3.1 and UFS 3.0 versions cannot be compatible with each other because the lengths of the descriptors defined in the respective standards are different.
- the firmware of the corresponding device must be implemented in compliance with the UFS 3.1 standard, otherwise there will be differences in compatibility, which will cause the host device to be unable to operate the device correctly, and vice versa.
- the two memory controllers connected to each other inside the storage module are selected as the same memory controller, or the two memory controllers are the memory controllers having the corresponding host interface implemented in compliance with the same standard.
- the two interconnected host interfaces within the storage module such as the UFS interfaces mentioned above, will be the transmission interfaces manufactured by the same process or implemented in compliance with the same version of standard, which effectively solves the abovementioned problem of incompatibility between the two devices due to different versions of standard.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (15)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110145793 | 2021-12-08 | ||
| TW110145793A TWI806276B (en) | 2021-12-08 | 2021-12-08 | Data storage device and data storage system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20230176733A1 US20230176733A1 (en) | 2023-06-08 |
| US12067235B2 true US12067235B2 (en) | 2024-08-20 |
Family
ID=86607359
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/884,581 Active US12067235B2 (en) | 2021-12-08 | 2022-08-10 | Data storage device and data storage system |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12067235B2 (en) |
| CN (1) | CN116243847A (en) |
| TW (1) | TWI806276B (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240095199A1 (en) * | 2022-09-15 | 2024-03-21 | Micron Technology, Inc. | Multi-interface memory |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11899945B2 (en) * | 2021-10-03 | 2024-02-13 | Silicon Motion, Inc. | Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200931422A (en) | 2008-01-04 | 2009-07-16 | Afa Technologies Inc | A high-speed flash memory storage device |
| TW201123641A (en) | 2009-12-24 | 2011-07-01 | Coresolid Storage Corp | Solid state memory storage apparatus suitable for PCIE interface |
| TWI432960B (en) | 2009-01-21 | 2014-04-01 | Micron Technology Inc | Method of operating memory unit, memory controller and memory system |
| US20140208004A1 (en) | 2013-01-22 | 2014-07-24 | Lsi Corporation | Translation layer partitioned between host and controller |
| TW201435602A (en) | 2013-03-01 | 2014-09-16 | Hon Hai Prec Ind Co Ltd | USB memory |
| US20160070493A1 (en) * | 2014-09-04 | 2016-03-10 | Samsung Electronics Co., Ltd. | Data storage device and method of operating the same |
| TWI590056B (en) | 2013-02-28 | 2017-07-01 | 英特爾股份有限公司 | Method, device, apparatus, and system to leveraging an enumeration and/or configuration mechanism of one interconnect protocol for a different interconnect protocol |
| US9904651B2 (en) | 2014-07-31 | 2018-02-27 | Samsung Electronics Co., Ltd. | Operating method of controller for setting link between interfaces of electronic devices, and storage device including controller |
| US20230152993A1 (en) * | 2021-11-15 | 2023-05-18 | Samsung Electronics Co., Ltd. | Storage device |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201621680A (en) * | 2014-12-08 | 2016-06-16 | 宏碁股份有限公司 | Controller of storage apparatus and computing system |
| JP2019049893A (en) * | 2017-09-11 | 2019-03-28 | 東芝メモリ株式会社 | Memory system |
| KR102709412B1 (en) * | 2019-01-24 | 2024-09-24 | 삼성전자주식회사 | A memory system comprising a plurality of controllers |
| US11056211B1 (en) * | 2020-01-08 | 2021-07-06 | Western Digital Technologies, Inc. | Apparatus and method for handling temperature dependent failures in a memory device |
-
2021
- 2021-12-08 TW TW110145793A patent/TWI806276B/en active
-
2022
- 2022-01-06 CN CN202210008858.7A patent/CN116243847A/en active Pending
- 2022-08-10 US US17/884,581 patent/US12067235B2/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200931422A (en) | 2008-01-04 | 2009-07-16 | Afa Technologies Inc | A high-speed flash memory storage device |
| TWI432960B (en) | 2009-01-21 | 2014-04-01 | Micron Technology Inc | Method of operating memory unit, memory controller and memory system |
| TW201123641A (en) | 2009-12-24 | 2011-07-01 | Coresolid Storage Corp | Solid state memory storage apparatus suitable for PCIE interface |
| US20140208004A1 (en) | 2013-01-22 | 2014-07-24 | Lsi Corporation | Translation layer partitioned between host and controller |
| TWI590056B (en) | 2013-02-28 | 2017-07-01 | 英特爾股份有限公司 | Method, device, apparatus, and system to leveraging an enumeration and/or configuration mechanism of one interconnect protocol for a different interconnect protocol |
| TW201435602A (en) | 2013-03-01 | 2014-09-16 | Hon Hai Prec Ind Co Ltd | USB memory |
| US9904651B2 (en) | 2014-07-31 | 2018-02-27 | Samsung Electronics Co., Ltd. | Operating method of controller for setting link between interfaces of electronic devices, and storage device including controller |
| US20160070493A1 (en) * | 2014-09-04 | 2016-03-10 | Samsung Electronics Co., Ltd. | Data storage device and method of operating the same |
| US20230152993A1 (en) * | 2021-11-15 | 2023-05-18 | Samsung Electronics Co., Ltd. | Storage device |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20240095199A1 (en) * | 2022-09-15 | 2024-03-21 | Micron Technology, Inc. | Multi-interface memory |
| US12475068B2 (en) * | 2022-09-15 | 2025-11-18 | Micron Technology, Inc. | Multi-interface memory |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202324111A (en) | 2023-06-16 |
| CN116243847A (en) | 2023-06-09 |
| US20230176733A1 (en) | 2023-06-08 |
| TWI806276B (en) | 2023-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10101927B2 (en) | Data storage device and operating method thereof | |
| KR102691851B1 (en) | Nonvolatile memory device, data storage apparatus including the same and operating method thereof | |
| US12423257B2 (en) | Bridge device and data storage system | |
| US20200057725A1 (en) | Data storage device and operating method thereof | |
| US20130159608A1 (en) | Bridge chipset and data storage system | |
| CN109992202B (en) | Data storage device, method of operating the same, and data processing system including the same | |
| TWI650639B (en) | Memory management method, memory control circuit unit and mempry storage device | |
| US9977735B2 (en) | Data storage device and operating method thereof | |
| US20210397364A1 (en) | Storage device and operating method thereof | |
| US20190018602A1 (en) | Data storage device and method of operating the same | |
| US20180239557A1 (en) | Nonvolatile memory device, data storage device including the same, and operating method of data storage device | |
| US12067235B2 (en) | Data storage device and data storage system | |
| US20190236020A1 (en) | Memory system and operating method thereof | |
| US10754768B2 (en) | Memory system using descriptor lookup tables to access setting information for a non-volatile memory, and an operating method thereof | |
| US9966148B1 (en) | Data storage device and operating method thereof | |
| CN117130544A (en) | Memory system and data processing system for controlling operating speed | |
| US12277317B2 (en) | Memory controller, bridge device and method for transferring command and data between memory controllers | |
| US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
| US12321297B2 (en) | Bridge device and method for transferring command and data between a host device and a data storage device | |
| US12379856B2 (en) | Storage device for storing write data or reading read data and electronic device including the same | |
| US12153514B2 (en) | Storage device, electronic device including the same, and operating method thereof | |
| US10719270B2 (en) | Raising usage rates of memory blocks with a free MSB page list | |
| TW202338591A (en) | Memory controller and data processing method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: SILICON MOTION, INC., TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CHEN, CHEN-HAO;REEL/FRAME:060763/0621 Effective date: 20220808 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |