WO2024012015A1 - Storage system, main control chip, data storage method and data reading method - Google Patents

Storage system, main control chip, data storage method and data reading method Download PDF

Info

Publication number
WO2024012015A1
WO2024012015A1 PCT/CN2023/091887 CN2023091887W WO2024012015A1 WO 2024012015 A1 WO2024012015 A1 WO 2024012015A1 CN 2023091887 W CN2023091887 W CN 2023091887W WO 2024012015 A1 WO2024012015 A1 WO 2024012015A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
control chip
main control
storage devices
Prior art date
Application number
PCT/CN2023/091887
Other languages
French (fr)
Chinese (zh)
Inventor
戴瑾
张云森
Original Assignee
北京超弦存储器研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京超弦存储器研究院 filed Critical 北京超弦存储器研究院
Publication of WO2024012015A1 publication Critical patent/WO2024012015A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Definitions

  • the present disclosure relates to but is not limited to storage technology, and in particular, refers to a storage system, a main control chip, a data storage method and a data reading method.
  • PCI-Express Peripheral Component Interconnect Express, PCIe for short
  • PCIe PCIe
  • PCIe PCI-Express
  • PCIe PCIe is a high-speed serial computer expansion bus standard.
  • PCIe is currently a commonly used bus in high-speed computing systems. It can realize a certain starting address of the memory in one device to another device. High-speed data transfer from a certain starting address in memory.
  • Embodiments of the present disclosure provide a storage system, which is inserted into the PCIe bus of a computer system or connected to the computer system through the CXL protocol, including: a main control chip and N storage devices, where N is an integer not less than 2;
  • the main control chip communicates with the N storage devices based on the PCIe protocol.
  • Embodiments of the present disclosure also provide a main control chip that communicates with N storage devices, where N is an integer not less than 2.
  • the main control chip includes a memory and a processor, and the memory is configured as a storage device. Store execution instructions; the processor is configured to call the execution instructions to perform the following processing;
  • Data storage When a write request is received and it is determined to perform distributed storage of an external storage object, the data of the storage object is divided and stored in multiple storage devices in parallel;
  • Data reading includes: when receiving a read request and determining that the storage object to be read is stored in a distributed manner, reading the data of the storage object in multiple storage devices in parallel and transmitting it to an external device.
  • Embodiments of the present disclosure also provide a data storage method, which is applied to a storage system including a main control chip and N storage devices.
  • the N storage devices are connected to the main control chip through the PCIe protocol, and N is an integer not less than 2.
  • the method includes:
  • the main control chip receives the write request and determines whether to perform distributed storage of external storage objects
  • the main control chip determines to perform distributed storage of the storage object, it divides the data of the storage object and stores it in multiple storage devices in parallel.
  • the embodiment of the present disclosure also provides a data reading method, which is applied to a storage system including a main control chip and N storage devices.
  • the N storage devices are connected to the main control chip through the PCIe protocol, and N is not less than 2.
  • the methods include:
  • the main control chip receives the read request and determines whether the storage object to be read is distributedly stored
  • the main control chip determines that the storage object to be read is stored in a distributed manner, it reads the data of the storage object in multiple storage devices in parallel and transmits it to the outside.
  • the storage system, main control chip, data storage method and data reading method provided by at least one embodiment of the present disclosure have the following beneficial effects: multiple storage devices can be connected through PCIe interfaces respectively, and multiple Storage devices form parallel connections, which can expand bandwidth and provide the largest data transmission bandwidth and the shortest delay.
  • Figure 1 is a structural diagram of a storage system provided by an example embodiment of the present disclosure
  • Figure 2 is a structural diagram of a storage system provided by another example embodiment of the present disclosure.
  • Figure 3 is a flow chart of a data storage method provided by an example embodiment of the present disclosure.
  • Figure 4 is a flow chart of a data storage method provided by another example embodiment of the present disclosure.
  • Figure 5 is a structural block diagram of a storage system provided by an example embodiment of the present disclosure.
  • FIG. 6 is a structural block diagram of a main control chip provided by an exemplary embodiment of the present disclosure.
  • Figure 1 is a structural diagram of a storage system provided by an example embodiment of the present disclosure.
  • the storage system can be inserted into the PCIe bus of the computer system (i.e., inserted into the system), or the storage system can be connected to the computer system (i.e., connected to the system) through the CXL protocol. into the system), as shown in Figure 1, the storage system may include: a main control chip 11 and N storage devices 12, where N is an integer not less than 2 (that is, not less than 2); the main control chip and N storage devices Communication connection is based on PCIe protocol.
  • multiple storage devices can be connected through PCIe interfaces respectively, and multiple storage devices form a parallel connection.
  • the bandwidth can be expanded, providing the maximum data transmission bandwidth and the shortest delay.
  • the storage device may include a solid state drive (SSD), and multiple SSDs are connected to the main control chip through the PCIe protocol.
  • SSD solid state drive
  • N SSDs each establish a P-channel (Lane) PCIe connection with the main control chip.
  • the main control chip is connected to the external PCIe using N times P lanes, and P is a non-negative integer.
  • the main control chip can read and write N storage devices in parallel, and convert the data blocks read out by each storage device in turn to the PCIe interface of N times P channels and send them out; or input them from the outside.
  • the main control chip can divide the external input data in sequence and write it to N storage devices in parallel on the PCIe interface of the P channel.
  • P and N may be determined based on the lanes of the PCIe bus of the system into which the storage device is plugged, where N multiplied by P is less than or equal to the number of lanes of the PCIe bus.
  • a P-channel PCIe connection can be established with the main control chip, and a data packet can be transmitted to the SSD through one of the P-channels. If there are multiple flash memory chips in the SSD, one channel can correspondingly transmit the read or write data in one flash memory chip.
  • the SSD only supports 4 PCIe lanes, while the PCIe bus commonly has 16 lanes.
  • each SSD can be composed of an SSD control chip and a set of flash memory chips.
  • the entire system can be deployed on a motherboard to form a high-bandwidth SSD.
  • the formed high-bandwidth SSD can be plugged into the PCIe bus of the host, or the formed high-bandwidth SSD can be connected to the host through the CXL protocol.
  • the main control chip may be configured to implement data storage (i.e., data writing) and data reading (i.e., data reading).
  • Data storage may include: receiving a write request and determining whether to When the storage object is stored in a distributed manner, the data of the storage object is divided and stored in multiple storage devices in parallel, that is, the data of the storage object is divided and stored in N storage devices in parallel, or the data of the storage object is stored in parallel.
  • data storage may include: when a read request is received and the storage object to be read is determined to be distributed, reading the data of the objects stored in multiple storage devices in parallel And transmit it to the external device, that is, read the data of the objects stored in N storage devices in parallel and transmit it to the external device, or read the data of the objects stored in some of the N storage devices in parallel and transmit it to the external device.
  • the main control chip can realize parallel connection with multiple storage devices on different channels through multi-channel PCIe.
  • the main control chip and the storage device are tightly coupled, and the resources of the storage device (such as SSD) can be fully utilized.
  • the main control chip can be used to cooperate with multiple storage devices connected in parallel.
  • the main control chip is responsible for data transfer and distributed management of the storage system. It divides large storage objects and stores them in different storage devices to facilitate parallel processing. Data reading and writing.
  • the main control chip determines to perform distributed storage of the external storage object when the data size of the storage object is greater than the size threshold.
  • the main control chip implements distributed storage for storage objects whose data size exceeds the set threshold.
  • the storage system provided by the embodiment of the present disclosure can connect multiple storage devices through PCIe interfaces with multiple channels, and multiple storage devices form parallel connections. Through parallel connections, bandwidth can be expanded and latency can be reduced.
  • each storage device may include: an SSD control chip and K flash memory chips, where K is greater than or equal to 1; each SSD control chip is connected to K lanes of the PCIe, and each lane Corresponding to the transmission of read or written data of a flash memory chip, 1 ⁇ K ⁇ P.
  • the storage device may include a solid state drive (SSD for short).
  • the SSD may include an SSD control chip and a flash memory chip.
  • Each SSD control chip can be connected to the main control chip through the PCIe protocol.
  • One of the P channels established by the SSD and the main control chip corresponds to transmitting the read or write data in a flash memory chip.
  • Figure 2 is a structural diagram of a storage system provided by another example embodiment of the present disclosure.
  • the main control chip can include a CPU core 111, an internal memory 112 and a programmable logic device 113.
  • the programmable logic device can be configured as Realize data transfer between storage devices and external devices; the internal memory can store a distributed storage management program, and the CPU core can run the distributed storage management program to realize data storage and data reading.
  • one implementation of the main control chip can be implemented by using an FPGA.
  • the distributed storage system can be implemented by the software of the built-in CPU core of the FPGA and programmable hardware.
  • PCIe data transfer can be implemented by programmable logic devices.
  • the external device may include a processor of a local host or a processor of a remote host (such as a CPU), and the main control chip may include an external communication interface; the main control chip may communicate with the computer system (such as the host) for external communication.
  • the main control chip may communicate with the computer system (such as the host) for external communication.
  • the external communication interface may include: a PCIe bus interface, and the PCIe bus interface may be configured to communicate with the processor of the local host through the PCIe bus.
  • multiple storage devices can be connected to the main control chip through the PCIe protocol.
  • the entire system composed of multiple storage devices and the main control chip can be deployed on one motherboard to form a high-bandwidth SSD.
  • the high-bandwidth SSD can be inserted into the PCIe bus through the PCIe bus interface of the main control chip and connected to the local host.
  • the external communication interface may include: a CXL bus interface, and the CXL bus interface may be configured to communicate with the processor of the local host through the CXL bus.
  • multiple storage devices such as SSD
  • the entire system composed of multiple storage devices and the main control chip can be deployed on one motherboard to form a high-bandwidth SSD.
  • the high-bandwidth SSD can be inserted into the CXL bus through the CXL bus interface of the main control chip and connected to the local host.
  • the external communication interface may include: a network interface configured to communicate with a processor of a remote host through a network.
  • Multiple storage devices (such as SSD) are connected to the main control chip through the PCIe protocol.
  • the entire system composed of multiple storage devices and the main control chip can be deployed on a motherboard to form a high-bandwidth SSD.
  • the high-bandwidth SSD formed can access the network through the network interface of the main control chip and connect to the remote host.
  • the PCIe Gen5 protocol can be used between the main control chip and multiple storage devices, and the read and write bandwidth can exceed the dynamic random access connected to the Double Data Rate (DDR) bus.
  • DDR Double Data Rate
  • Memory Dynamic Random Access Memory, DRAM for short.
  • Figure 3 is a flow chart of a data storage method provided by an example embodiment of the present disclosure.
  • the execution subject of the data storage method can be the storage system shown in any embodiment.
  • the data storage method can be applied to a system including a main control chip and N storage devices.
  • N storage devices are connected to the main control chip through the PCIe protocol.
  • N is an integer not less than 2.
  • data storage methods can include:
  • S301 The main control chip receives the write request and determines whether to perform distributed storage of external storage objects.
  • the main control chip can cooperate with multiple storage devices, and external storage objects can be written into the storage devices in parallel through the main control chip.
  • the requester (such as the host of the computer system) sends a write request to the storage system.
  • the write request information can carry the object name, data size, starting address of the existing data, etc.
  • the main control chip implements distributed storage for storage objects whose size exceeds the set threshold.
  • S302 When the main control chip determines to perform distributed storage of the storage object, it divides the data of the storage object and stores it in multiple storage devices in parallel, that is, stores it in N storage devices or some of the N storage devices.
  • the main control chip determines that the storage object needs to be stored in a distributed manner, the data of the storage object is divided and stored in different storage devices to facilitate parallel data reading and writing.
  • dividing the data of the storage object and storing it in parallel in N storage devices or some of the N storage devices may include:
  • M Divide the storage object into M data packets, M>N, M can be much larger than N; store the M data packets in N data packets in units of N data packets in turn to N storage devices in a preset order, where M data Every N data packets in the package are stored in N storage devices in parallel, and one data packet is stored in one storage device at a time.
  • each data packet is stored in parallel to some of the N storage devices, and one data packet is stored in one storage device at a time.
  • the main control chip can assign multiple consecutive data packets to multiple storage devices, and each data packet is assigned to a storage device. equipment.
  • each storage may include:
  • N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
  • the remaining data packets are stored in parallel in the storage device, and one data packet is stored in one storage device at a time.
  • M data packets can be stored in parallel in M different storage devices through one storage.
  • the preset order may be determined based on empirical values, and the preset order may be the size order of storage addresses of data packets, or the preset order may be the number size order of storage devices.
  • the write request may also carry the name of the storage object and the current storage address of the data of the storage object
  • the storage device may include a control chip and a flash memory chip connected to the control chip.
  • the main control chip determines the size of the M data packets divided into according to the current storage address of the storage object, and determines the starting address for fetching data from the M storage devices; the main control chip takes turns to the control chips of the N storage devices in a preset order. Send a write request, carrying the starting address of the data to be retrieved from the storage device sent to and the size of the data packet to be retrieved; the control chip of each storage device retrieves data from the corresponding starting address of data retrieval through the PCIe protocol and Write to the connected flash memory chip.
  • the main control chip After the main control chip divides the data of the storage object into multiple data packets and allocates a corresponding storage device to each data packet, the main control chip can send write requests to multiple storage devices.
  • the write request can carry Each storage device takes the starting address of data.
  • Each storage device will fetch data at the corresponding address through the PCIe protocol and write it to the flash memory. Repeat the above steps until all data is written.
  • the write request may also carry the name of the storage object and the current storage address information of the data of the storage object
  • the storage device may include a control chip and a flash memory chip connected to the control chip
  • the main control chip divides the storage object into M data packets, it determines the size and starting address of the divided M data packets based on the current storage address information of the storage object;
  • the main control chip takes turns sending write requests to the control chips of N storage devices in a preset order, carrying the starting address and size of the data packet to be taken out by the storage device;
  • control chip of each storage device fetches data from the corresponding starting address of data acquisition through the PCIe protocol and writes it to the connected flash memory chip.
  • the current storage address information may include: the current start and end addresses and the size of the data packet, or the current storage address information may include: the current start address and the current end address.
  • Figure 4 is a flow chart of a data reading method provided by another example embodiment of the present disclosure.
  • the execution subject of the data reading method can be the storage system shown in any embodiment.
  • the data reading method can be applied to a system including a main control chip.
  • the N storage devices are connected to the main control chip through the PCIe protocol, and N is an integer not less than 2.
  • data reading methods can include:
  • S401 The main control chip receives the read request and determines whether the storage object to be read is distributedly stored.
  • the main control chip can be used to cooperate with multiple storage devices, and the main control chip can be used to realize Read storage object data in parallel from multiple storage devices.
  • the main control chip determines that the storage object to be read is distributedly stored, it reads the data of the storage object in multiple storage devices in parallel and transmits it to the external device, that is, it reads N storage devices or N storage objects in parallel.
  • the object's data is stored in some storage devices and transferred to the outside.
  • the main control chip determines that the storage object needs to be read from the storage device, it first determines whether the storage object to be read is distributed. If the storage object is distributed, the main control chip sends a read message to all storage devices that store the storage object. Fetch requests and read corresponding data in parallel from all storage devices that store the storage object to facilitate parallel data reading.
  • the read request may carry the name of the storage object and a receiving address for receiving the read data of the storage object
  • the storage device may include a control chip and a flash memory chip connected to the control chip. Reading the data of objects stored in N storage devices or some of the N storage devices in parallel and transmitting it to the outside may include:
  • the main control chip determines all storage devices for distributed storage of the storage object based on the name of the storage object, and determines the starting address of each storage device for writing data to the outside based on the receiving address and the size of the data packet in each storage device;
  • the main control chip sends read requests to all storage devices that distribute the storage objects, carrying the starting address of the sent storage device to write data to the outside;
  • the control chip of each storage device reads from the connected flash memory chip Read data from it and write data to the corresponding starting address of writing data through PCIe protocol.
  • the requester (such as an external host) sends a read request (or read request) to the storage system.
  • the read request can carry the object name, the starting memory address for receiving data, etc.
  • the main control chip sends a read request to all storage devices (such as SSD) that store the object, calculates the starting address of the received data corresponding to each storage device, and sends the corresponding received data to each storage device.
  • the starting address of the data is included in the read request.
  • Each storage device will read data from the flash memory and send the read data to the corresponding address. Repeat the above steps until all data is read out.
  • the read request carries the name of the storage object and receiving address information for receiving the data of the read storage object.
  • the storage device may include a control chip and a flash memory chip connected to the control chip;
  • the main control chip reads the data of objects stored in multiple storage devices in parallel and transmits it to external devices, which can include:
  • the main control chip determines all storage devices that distribute the data of the storage object based on the name of the storage object, and determines the start of each storage device writing data to the external device based on the receiving address and the size of the data in each storage device. address;
  • the main control chip sends read requests to all storage devices that distribute the data of the storage object, carrying the current storage address of the data to be read, and the starting address of the storage device writing data to the external device;
  • the control chip of each storage device After receiving the read request, the control chip of each storage device reads data from the connected flash memory chip according to the current storage address of the data to be read, and writes data to the corresponding starting address of writing data through the PCIe protocol. .
  • the data of the storage object saved by each storage device may be the data packet stored when the data was previously written.
  • Figure 5 is a structural block diagram of a computer system provided by an example embodiment of the present disclosure.
  • the computer system may include: a host 51, a bus 52 and a storage system 53.
  • the storage system adopts the storage system shown in any embodiment.
  • the bus can be PCIe bus or CXL bus.
  • Multiple storage devices can be connected to the main control chip through the PCIe protocol.
  • the entire system composed of multiple storage devices and main control chips can be deployed on one motherboard to form a high-bandwidth SSD.
  • the high-bandwidth SSD can be inserted into the PCIe bus of the host or connected to the host through the CXL protocol.
  • Figure 6 is a structural block diagram of a main control chip provided by an example embodiment of the present disclosure.
  • the main control chip can communicate with N storage devices, where N is an integer not less than 2.
  • the main control chip can include Memory 61 and processor 62.
  • the memory is set to store execution instructions.
  • the processor communicates with the memory, and the processor is set to call execution instructions for executing the data storage method and the data reading method.
  • the processor in this article may be a Central Processing Unit (CPU for short), or an Application Specific Integrated Circuit (ASIC for short), or one or more integrated circuits that implement the embodiments of the present disclosure. or other having A device that handles functions.
  • CPU Central Processing Unit
  • ASIC Application Specific Integrated Circuit
  • the processor is configured to invoke execution instructions to perform the following operations:
  • Data storage that is, the data storage method may include: when receiving a write request and determining to perform distributed storage of an external storage object, dividing the data of the storage object and storing them in parallel in multiple storage devices. , that is, stored in N storage devices or part of N storage devices, where N is an integer not less than 2;
  • Data reading that is, the data reading method may include: when a read request is received and it is determined that the storage object to be read is stored in a distributed manner, reading the data of the storage object in multiple storage devices in parallel and Transmitting to an external device means reading the data of the storage object in N storage devices or part of the N storage devices in parallel and transmitting it to the external device.
  • the write request may carry the data size of the storage object
  • Determining whether to perform distributed storage of external storage objects may include: the data size of the storage object by the main control chip is greater than a preset size threshold, that is, the data size of the main control chip in the storage object When the size is greater than the size threshold, it is determined to perform distributed storage of the storage object.
  • the main control chip divides the data of the storage object and stores it in N storage devices or some of the N storage devices in parallel, which may include:
  • the main control chip divides the data of the storage object and stores it in multiple storage devices in parallel, which may include:
  • each storage includes:
  • N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
  • the remaining data packets are stored in the storage device in parallel, and one data packet is stored in one storage device at a time.
  • the write request may also carry the name of the storage object and the current storage address of the data of the storage object.
  • the storage device includes a control chip and a device connected to the control chip. flash memory chips;
  • the method of storing M data packets in N data packets as a unit to N storage devices in turn in a preset order may include:
  • the main control chip determines the size of the M data packets divided into according to the current storage address of the storage object, and determines the starting addresses of the M storage devices for fetching data;
  • the main control chip sends write requests to the control chips of the N storage devices in turn in a preset order, carrying the starting address of the data sent to the storage device and the size of the data packet to be taken out;
  • the control chip of each storage device fetches data from the corresponding starting address for fetching data through the PCIe protocol and writes it to the connected flash memory chip.
  • the write request also carries the name of the storage object and the current storage address information of the data of the storage object.
  • the storage device includes a control chip and a device connected to the control chip. flash memory chips;
  • the main control chip divides the storage object into M data packets, it determines the size and starting address of the divided M data packets according to the current storage address information of the storage object;
  • the main control chip sends write requests to the control chips of the N storage devices in turn in a preset order, carrying the starting address and size of the data packet to be taken out by the storage device;
  • control chip of each storage device fetches data from the corresponding starting address through the PCIe protocol and writes it into the connected flash memory chip.
  • the read request may carry the name of the storage object and a receiving address for receiving the read data of the storage object
  • the storage device includes a control A chip and a flash memory chip connected to the control chip
  • the parallel reading of the data of the storage object in N storage devices or part of the N storage devices and transmitting it to the outside may include:
  • the main control chip determines all storage devices that distribute the storage object according to the name of the storage object, and determines each storage device to write to the outside based on the receiving address and the size of the data packet in each storage device.
  • the starting address of the data
  • the main control chip sends read requests to all storage devices that distribute the storage objects, carrying the starting address of the sent storage device to write data to the outside;
  • the control chip of each storage device reads data from the connected flash memory chip and writes data to the corresponding starting address of writing data through the PCIe protocol.
  • the read request may carry the name of the storage object, and receiving address information for receiving the data of the read storage object
  • the storage device may include a control chip and a device connected to the storage object.
  • the flash memory chip connected to the control chip;
  • the main control chip reads the data of the storage objects in multiple storage devices in parallel and transmits it to external devices, which may include:
  • the main control chip determines all storage devices that distribute the data of the storage object according to the name of the storage object, and determines the external data of each storage device according to the receiving address and the size of the data in each storage device.
  • the starting address of the device writing data
  • the main control chip sends read requests to all storage devices that distribute the data of the storage object, carrying the current storage address of the data to be read, and the starting address of the storage device writing data to the external device;
  • the control chip of each storage device After receiving the read request, the control chip of each storage device reads the data from the connected flash memory chip according to the current storage address of the data to be read, and writes the data to the corresponding starting address through the PCIe protocol. Write data.
  • computer storage media includes volatile and nonvolatile media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. removable, removable and non-removable media.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disk (DVD) or other optical disk storage, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or may Any other medium used to store the desired information and that can be accessed by a computer.
  • communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A storage system, a main control chip, a data storage method and a data reading method. The storage system may comprise: a main control chip and N storage devices, wherein N is an integer not less than 2; the main control chip is in communication connection with the N storage devices on the basis of a PCIe protocol; and the main control chip is configured to realize data storage and data reading. The data storage comprises: when a write request is received and distributed storage of external storage objects is determined, segmenting data of the storage objects and then respectively storing same in parallel in a plurality of storage devices; and the data reading comprises: when a reading request is received and it is determined that storage objects needing to be read are stored in a distributed manner, reading the data of the storage objects in parallel from the plurality of storage devices, and transmitting same to an external device.

Description

一种存储系统、主控芯片、数据存储方法及数据读取方法A storage system, main control chip, data storage method and data reading method
相关申请的交叉引用Cross-references to related applications
本公开要求2022年7月13日递交到CNIPA的,申请号为202210828397.8、发明名称为“一种存储系统、主控芯片、数据存储方法及数据读取方法”的中国专利申请的优先权,其内容在此通过引用并入。This disclosure requests the priority of the Chinese patent application submitted to CNIPA on July 13, 2022, with application number 202210828397.8 and the invention name "a storage system, main control chip, data storage method and data reading method", which The contents are incorporated herein by reference.
技术领域Technical field
本公开涉及但不仅限于存储技术,尤指一种存储系统、主控芯片、数据存储方法及数据读取方法。The present disclosure relates to but is not limited to storage technology, and in particular, refers to a storage system, a main control chip, a data storage method and a data reading method.
背景技术Background technique
PCI-Express(Peripheral Component Interconnect Express,简称PCIe)是一种高速串行计算机扩展总线标准,PCIe目前高速计算系统普遍使用的总线,可以实现一个设备中内存的某个起始地址到另一个设备中内存的某个起始地址的高速数据传输。PCI-Express (Peripheral Component Interconnect Express, PCIe for short) is a high-speed serial computer expansion bus standard. PCIe is currently a commonly used bus in high-speed computing systems. It can realize a certain starting address of the memory in one device to another device. High-speed data transfer from a certain starting address in memory.
目前存储设备的读写速度较慢,带宽不足,尤其是在直接支持高速计算的应用场景,不能达到PCIe通道的传输能力。Current storage devices have slow read and write speeds and insufficient bandwidth. Especially in application scenarios that directly support high-speed computing, they cannot reach the transmission capabilities of PCIe channels.
发明概述Summary of the invention
以下是对本公开详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。The following is an overview of the subject matter described in detail in this disclosure. This summary is not intended to limit the scope of the claims.
本公开实施例提供了一种存储系统,插入到计算机系统的PCIe总线上,或通过CXL协议接入到计算机系统,包括:主控芯片和N个存储设备,N为不小于2的整数;Embodiments of the present disclosure provide a storage system, which is inserted into the PCIe bus of a computer system or connected to the computer system through the CXL protocol, including: a main control chip and N storage devices, where N is an integer not less than 2;
所述主控芯片与所述N个存储设备基于PCIe协议进行通信连接。The main control chip communicates with the N storage devices based on the PCIe protocol.
本公开实施例还提供了一种主控芯片,与N个存储设备进行通信连接,N为不小于2的整数,所述主控芯片包括存储器和处理器,存储器设置为存 储执行指令;处理器设置为调用所述执行指令,以执行以下的处理;Embodiments of the present disclosure also provide a main control chip that communicates with N storage devices, where N is an integer not less than 2. The main control chip includes a memory and a processor, and the memory is configured as a storage device. Store execution instructions; the processor is configured to call the execution instructions to perform the following processing;
数据存储:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到多个所述存储设备中;Data storage: When a write request is received and it is determined to perform distributed storage of an external storage object, the data of the storage object is divided and stored in multiple storage devices in parallel;
数据读取包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取多个所述存储设备中所述存储对象的数据并传输到外部设备。Data reading includes: when receiving a read request and determining that the storage object to be read is stored in a distributed manner, reading the data of the storage object in multiple storage devices in parallel and transmitting it to an external device.
本公开实施例还提供了一种数据存储方法,应用于包括主控芯片和N个存储设备的存储系统,N个存储设备通过PCIe协议与所述主控芯片连接,N为不小于2的整数,所述方法包括:Embodiments of the present disclosure also provide a data storage method, which is applied to a storage system including a main control chip and N storage devices. The N storage devices are connected to the main control chip through the PCIe protocol, and N is an integer not less than 2. , the method includes:
所述主控芯片接收到写入请求,确定是否对外部的存储对象进行分布式存储;The main control chip receives the write request and determines whether to perform distributed storage of external storage objects;
所述主控芯片确定对所述存储对象进行分布式存储时,将所述存储对象的数据分割后并行存入到多个所述存储设备中。When the main control chip determines to perform distributed storage of the storage object, it divides the data of the storage object and stores it in multiple storage devices in parallel.
本公开实施例还提供了一种数据读取方法,应用于包括主控芯片和N个存储设备的存储系统,N个存储设备通过PCIe协议与所述主控芯片连接,N为不小于2的整数,所述方法包括:The embodiment of the present disclosure also provides a data reading method, which is applied to a storage system including a main control chip and N storage devices. The N storage devices are connected to the main control chip through the PCIe protocol, and N is not less than 2. Integer, the methods include:
所述主控芯片接收到读取请求,确定需读取的存储对象是否被分布式存储;The main control chip receives the read request and determines whether the storage object to be read is distributedly stored;
所述主控芯片确定需读取的存储对象被分布式存储时,并行读取多个所述存储设备中所述存储对象的数据并传输到外部。When the main control chip determines that the storage object to be read is stored in a distributed manner, it reads the data of the storage object in multiple storage devices in parallel and transmits it to the outside.
本公开至少一个实施例提供的存储系统、主控芯片、数据存储方法及数据读取方法,与现有技术相比,具有以下有益效果:可将多个存储设备分别通过PCIe接口连接,多个存储设备形成并行连接,通过并行连接可扩大带宽,提供最大的数据传输带宽,最短的时延。Compared with the existing technology, the storage system, main control chip, data storage method and data reading method provided by at least one embodiment of the present disclosure have the following beneficial effects: multiple storage devices can be connected through PCIe interfaces respectively, and multiple Storage devices form parallel connections, which can expand bandwidth and provide the largest data transmission bandwidth and the shortest delay.
在阅读并理解了附图和详细描述后,可以明白其他方面。Other aspects will be apparent after reading and understanding the drawings and detailed description.
附图概述Figure overview
附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方 案的限制。The drawings are used to provide an understanding of the technical solutions of the present disclosure, and constitute a part of the specification. They are used to explain the technical solutions of the present disclosure together with the embodiments of the present disclosure, and do not constitute an explanation of the technical solutions of the present disclosure. case restrictions.
图1为本公开一示例实施例提供的存储系统的结构图;Figure 1 is a structural diagram of a storage system provided by an example embodiment of the present disclosure;
图2为本公开另一示例实施例提供的存储系统的结构图;Figure 2 is a structural diagram of a storage system provided by another example embodiment of the present disclosure;
图3为本公开一示例实施例提供的数据存储方法的流程图;Figure 3 is a flow chart of a data storage method provided by an example embodiment of the present disclosure;
图4为本公开另一示例实施例提供的数据存储方法的流程图;Figure 4 is a flow chart of a data storage method provided by another example embodiment of the present disclosure;
图5为本公开一示例实施例提供的存储系统的结构框图;Figure 5 is a structural block diagram of a storage system provided by an example embodiment of the present disclosure;
图6为本公开一示例实施例提供的主控芯片的结构框图。FIG. 6 is a structural block diagram of a main control chip provided by an exemplary embodiment of the present disclosure.
详述Elaborate
下文中将结合附图对本公开的实施例进行详细说明。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. The embodiments and features in the embodiments of the present disclosure may be arbitrarily combined with each other unless there is any conflict.
本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。The present disclosure describes multiple embodiments, but the description is illustrative rather than restrictive, and for those of ordinary skill in the art, there may be more within the scope of the embodiments described in the present disclosure. Embodiments and implementation solutions. Although many possible combinations of features are shown in the drawings and discussed in the detailed description, many other combinations of the disclosed features are possible. Unless expressly limited, any feature or element of any embodiment may be used in combination with, or may be substituted for, any other feature or element of any other embodiment.
本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本公开已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的方案。任何实施例的任何特征或元件也可以与来自其它公开方案的特征或元件组合,以形成另一个由权利要求限定的独特的方案。因此,应当理解,在本公开中示出和讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。The present disclosure includes and contemplates combinations with features and elements known to those of ordinary skill in the art. The embodiments, features and elements that have been disclosed in this disclosure may also be combined with any conventional features or elements to form solutions defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other disclosed solutions to form another unique solution as defined by the claims. Accordingly, it should be understood that any features shown and discussed in this disclosure may be implemented individually or in any suitable combination. Accordingly, the embodiments are not to be limited except by those appended claims and their equivalents. Furthermore, various modifications and changes may be made within the scope of the appended claims.
此外,在描述具有代表性的实施例时,说明书可能已经将方法和过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本公开所述步骤的特 定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本公开实施例的精神和范围内。Furthermore, in describing representative embodiments, the specification may have presented methods and processes as a specific sequence of steps. However, this method or process does not rely on the specific steps described in this disclosure. To the extent that a sequence is specified, the method or process should not be limited to the specific sequence of steps described. As one of ordinary skill in the art will appreciate, other sequences of steps are possible. Therefore, the specific order of steps set forth in the specification should not be construed as limiting the claims. Furthermore, claims directed to the methods and processes should not be limited to steps performing them in the order written, as those skilled in the art will readily appreciate that such order may be varied and still remain within the spirit and scope of the disclosed embodiments.
图1为本公开一示例实施例提供的存储系统的结构图,存储系统可以插入到计算机系统(即插入到系统)的PCIe总线上,或存储系统可以通过CXL协议接入到计算机系统(即接入到系统),如图1所示,存储系统可以包括:主控芯片11和N个存储设备12,N为不小于2(即不低于2)的整数;主控芯片与N个存储设备基于PCIe协议进行通信连接。Figure 1 is a structural diagram of a storage system provided by an example embodiment of the present disclosure. The storage system can be inserted into the PCIe bus of the computer system (i.e., inserted into the system), or the storage system can be connected to the computer system (i.e., connected to the system) through the CXL protocol. into the system), as shown in Figure 1, the storage system may include: a main control chip 11 and N storage devices 12, where N is an integer not less than 2 (that is, not less than 2); the main control chip and N storage devices Communication connection is based on PCIe protocol.
本实施例中,可将多个存储设备分别通过PCIe接口连接,多个存储设备形成并行连接,通过并行连接可扩大带宽,提供最大的数据传输带宽,最短的时延。In this embodiment, multiple storage devices can be connected through PCIe interfaces respectively, and multiple storage devices form a parallel connection. Through the parallel connection, the bandwidth can be expanded, providing the maximum data transmission bandwidth and the shortest delay.
在一示例中,存储设备可以包括固态硬盘(Solid State Drives,简称SSD),多个SSD分别通过PCIe协议与主控芯片连接。In one example, the storage device may include a solid state drive (SSD), and multiple SSDs are connected to the main control chip through the PCIe protocol.
并行的连接可以有效地扩大数据带宽。例如N个SSD分别与主控芯片建立P通道(Lane)的PCIe连接,主控芯片与外部采用N乘以P通道的PCIe连接,P为非负整数。进行对象存储操作时,主控芯片可以并行对N个存储设备进行读写,把每个存储设备读出来的数据块,依次转换到N乘以P通道的PCIe接口上发出去;或者从外部输入数据,主控芯片可以将外部输入数据依次分割后并行地在P通道的PCIe接口上写入N个存储设备。P和N可根据存储设备插入到的系统的PCIe总线的通道确定,其中,N乘以P小于或等于PCIe总线的通道数量。Parallel connections can effectively expand data bandwidth. For example, N SSDs each establish a P-channel (Lane) PCIe connection with the main control chip. The main control chip is connected to the external PCIe using N times P lanes, and P is a non-negative integer. When performing object storage operations, the main control chip can read and write N storage devices in parallel, and convert the data blocks read out by each storage device in turn to the PCIe interface of N times P channels and send them out; or input them from the outside. Data, the main control chip can divide the external input data in sequence and write it to N storage devices in parallel on the PCIe interface of the P channel. P and N may be determined based on the lanes of the PCIe bus of the system into which the storage device is plugged, where N multiplied by P is less than or equal to the number of lanes of the PCIe bus.
对于每一个SSD可以与主控芯片建立P通道的PCIe连接,一个数据包可通过P通道的其中一个通道传输至SSD中。若SSD中有多个闪存芯片,一个通道可对应传输一个闪存芯片中的读出或写入数据。For each SSD, a P-channel PCIe connection can be established with the main control chip, and a data packet can be transmitted to the SSD through one of the P-channels. If there are multiple flash memory chips in the SSD, one channel can correspondingly transmit the read or write data in one flash memory chip.
在本公开一示例实施例中,N=4,P=4。目前,一些实施例中,SSD只支持4个PCIe通道,而PCIe总线常见16通道。 In an example embodiment of the present disclosure, N=4 and P=4. Currently, in some embodiments, the SSD only supports 4 PCIe lanes, while the PCIe bus commonly has 16 lanes.
本实施例中,可提供4个SSD,每个SSD可由一个SSD控制芯片和一组闪存芯片组成。整个系统可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可插入到主机的PCIe总线上,或组成的高带宽SSD可通过CXL协议接入到主机。In this embodiment, four SSDs can be provided, and each SSD can be composed of an SSD control chip and a set of flash memory chips. The entire system can be deployed on a motherboard to form a high-bandwidth SSD. The formed high-bandwidth SSD can be plugged into the PCIe bus of the host, or the formed high-bandwidth SSD can be connected to the host through the CXL protocol.
在本公开一示例实施例中,主控芯片可以设置为实现数据存储(即数据写入)和数据读取(即数据读出),数据存储可以包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将存储对象的数据分割后分别并行存入到多个存储设备中,即将存储对象的数据分割后分别并行存入到N个存储设备中,或将存储对象的数据分割后分别并行存入N个中的部分存储设备;数据存储可以包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取多个存储设备中存储对象的数据并传输到外部设备,即并行读取N个存储设备中存储对象的数据并传输到外部设备,或并行读取N个中的部分存储设备中存储对象的数据并传输到外部设备。In an example embodiment of the present disclosure, the main control chip may be configured to implement data storage (i.e., data writing) and data reading (i.e., data reading). Data storage may include: receiving a write request and determining whether to When the storage object is stored in a distributed manner, the data of the storage object is divided and stored in multiple storage devices in parallel, that is, the data of the storage object is divided and stored in N storage devices in parallel, or the data of the storage object is stored in parallel. After splitting, store the data in N partial storage devices in parallel; data storage may include: when a read request is received and the storage object to be read is determined to be distributed, reading the data of the objects stored in multiple storage devices in parallel And transmit it to the external device, that is, read the data of the objects stored in N storage devices in parallel and transmit it to the external device, or read the data of the objects stored in some of the N storage devices in parallel and transmit it to the external device.
本实施例中,主控芯片可以通过多通道PCIe实现与多个存储设备在不同通道上的并行连接,主控芯片和存储设备紧耦合,可充分利用存储设备(比如SSD)的资源。In this embodiment, the main control chip can realize parallel connection with multiple storage devices on different channels through multi-channel PCIe. The main control chip and the storage device are tightly coupled, and the resources of the storage device (such as SSD) can be fully utilized.
可通过主控芯片与并行连接的多个存储设备进行配合,主控芯片负责数据转运并分布式管理存储系统,把大的存储对象分割开,分别存入到不同的存储设备中,便于并行的数据读写。The main control chip can be used to cooperate with multiple storage devices connected in parallel. The main control chip is responsible for data transfer and distributed management of the storage system. It divides large storage objects and stores them in different storage devices to facilitate parallel processing. Data reading and writing.
在一示例中,主控芯片在存储对象的数据尺寸大于预设的尺寸阈值,即主控芯片在存储对象的数据尺寸大于尺寸阈值时,确定对外部的存储对象进行分布式存储。主控芯片对于数据尺寸超过设定阈值的存储对象实行分布式存储。In one example, when the data size of the storage object is greater than a preset size threshold, the main control chip determines to perform distributed storage of the external storage object when the data size of the storage object is greater than the size threshold. The main control chip implements distributed storage for storage objects whose data size exceeds the set threshold.
本公开实施例提供的存储系统,可将多个存储设备分别通过具有多通道的PCIe接口连接,多个存储设备形成并行连接,通过并行连接可扩大带宽,降低时延。The storage system provided by the embodiment of the present disclosure can connect multiple storage devices through PCIe interfaces with multiple channels, and multiple storage devices form parallel connections. Through parallel connections, bandwidth can be expanded and latency can be reduced.
在本公开一示例实施例中,每个存储设备可以包括:SSD控制芯片和K个闪存芯片,K大于或等于1;每一个SSD控制芯片连接在所述PCIe的K个通道上,每一个通道对应传输一个闪存芯片的读出或写入的数据,1≤K≤ P。In an example embodiment of the present disclosure, each storage device may include: an SSD control chip and K flash memory chips, where K is greater than or equal to 1; each SSD control chip is connected to K lanes of the PCIe, and each lane Corresponding to the transmission of read or written data of a flash memory chip, 1≤K≤ P.
本实施例中,存储设备可以包括固态硬盘(Solid State Drives,简称SSD),SSD可以包括:SSD控制芯片和闪存芯片,每个SSD控制芯片可通过PCIe协议与主控芯片连接,可通过每一个SSD与主控芯片建立的P通道中的一个通道对应传输一个闪存芯片中的读出或写入数据。In this embodiment, the storage device may include a solid state drive (SSD for short). The SSD may include an SSD control chip and a flash memory chip. Each SSD control chip can be connected to the main control chip through the PCIe protocol. One of the P channels established by the SSD and the main control chip corresponds to transmitting the read or write data in a flash memory chip.
图2为本公开另一示例实施例提供的存储系统的结构图,如图2所示,主控芯片可以包括CPU内核111、内部存储器112和可编程逻辑器件113,可编程逻辑器件可以设置为实现存储设备与外部设备之间的数据转运;内部存储器可以存储有分布式存储管理程序,CPU内核可以运行分布式存储管理程序以实现数据存储和数据读取。Figure 2 is a structural diagram of a storage system provided by another example embodiment of the present disclosure. As shown in Figure 2, the main control chip can include a CPU core 111, an internal memory 112 and a programmable logic device 113. The programmable logic device can be configured as Realize data transfer between storage devices and external devices; the internal memory can store a distributed storage management program, and the CPU core can run the distributed storage management program to realize data storage and data reading.
本实施例中,主控芯片的一个实施方式可以是用FGPA实现,分布式存储系统可由FPGA内置的CPU核的软件与可编程硬件共同实现,PCIe的数据转运可通过可编程逻辑器件实现。In this embodiment, one implementation of the main control chip can be implemented by using an FPGA. The distributed storage system can be implemented by the software of the built-in CPU core of the FPGA and programmable hardware. PCIe data transfer can be implemented by programmable logic devices.
在本公开一示例实施例中,外部设备可以包括本地主机的处理器或远程主机的处理器(比如CPU),主控芯片可以包括外部通信接口;主控芯片可通过外部通信接口与计算机系统(比如主机)进行外部通信。In an example embodiment of the present disclosure, the external device may include a processor of a local host or a processor of a remote host (such as a CPU), and the main control chip may include an external communication interface; the main control chip may communicate with the computer system ( such as the host) for external communication.
在一示例中,外部通信接口可以包括:PCIe总线接口,PCIe总线接口可以配置为通过PCIe总线与本地主机的处理器进行通信。In an example, the external communication interface may include: a PCIe bus interface, and the PCIe bus interface may be configured to communicate with the processor of the local host through the PCIe bus.
如图2所示,多个存储设备(比如SSD)可以通过PCIe协议与主控芯片连接,多个存储设备与主控芯片组成的整个系统可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可通过主控芯片的PCIe总线接口插入PCIe总线上,连接到本地主机。As shown in Figure 2, multiple storage devices (such as SSD) can be connected to the main control chip through the PCIe protocol. The entire system composed of multiple storage devices and the main control chip can be deployed on one motherboard to form a high-bandwidth SSD. The high-bandwidth SSD can be inserted into the PCIe bus through the PCIe bus interface of the main control chip and connected to the local host.
在一示例中,外部通信接口可以包括:CXL总线接口,CXL总线接口可以配置为通过CXL总线与本地主机的处理器进行通信。In an example, the external communication interface may include: a CXL bus interface, and the CXL bus interface may be configured to communicate with the processor of the local host through the CXL bus.
如图2所示,多个存储设备(比如SSD)通过PCIe协议与主控芯片连接,多个存储设备与主控芯片组成的整个系统可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可通过主控芯片的CXL总线接口插入CXL总线上,连接到本地主机。 As shown in Figure 2, multiple storage devices (such as SSD) are connected to the main control chip through the PCIe protocol. The entire system composed of multiple storage devices and the main control chip can be deployed on one motherboard to form a high-bandwidth SSD. The high-bandwidth SSD can be inserted into the CXL bus through the CXL bus interface of the main control chip and connected to the local host.
在一示例中,外部通信接口可以包括:网络接口,网络接口配置为通过网络与远程主机的处理器进行通信。In an example, the external communication interface may include: a network interface configured to communicate with a processor of a remote host through a network.
多个存储设备(比如SSD)通过PCIe协议与主控芯片连接,多个存储设备与主控芯片组成的整个系统可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可通过主控芯片的网络接口接入网络,连接到远程主机。Multiple storage devices (such as SSD) are connected to the main control chip through the PCIe protocol. The entire system composed of multiple storage devices and the main control chip can be deployed on a motherboard to form a high-bandwidth SSD. The high-bandwidth SSD formed can access the network through the network interface of the main control chip and connect to the remote host.
在本公开一示例实施例中,主控芯片和多个存储设备之间可使用PCIe Gen5协议,读写带宽可以超过接在双倍速率(Double Data Rate,简称DDR)总线上的动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)。In an example embodiment of the present disclosure, the PCIe Gen5 protocol can be used between the main control chip and multiple storage devices, and the read and write bandwidth can exceed the dynamic random access connected to the Double Data Rate (DDR) bus. Memory (Dynamic Random Access Memory, DRAM for short).
图3为本公开一示例实施例提供的数据存储方法的流程图,数据存储方法的执行主体可以为任一实施例所示的存储系统,数据存储方法可应用于包括主控芯片和N个存储设备的存储系统,N个存储设备通过PCIe协议与主控芯片连接,N为不小于2的整数。如图3所示,数据存储方法可以包括:Figure 3 is a flow chart of a data storage method provided by an example embodiment of the present disclosure. The execution subject of the data storage method can be the storage system shown in any embodiment. The data storage method can be applied to a system including a main control chip and N storage devices. The storage system of the device. N storage devices are connected to the main control chip through the PCIe protocol. N is an integer not less than 2. As shown in Figure 3, data storage methods can include:
S301:主控芯片接收到写入请求,确定是否对外部的存储对象进行分布式存储。S301: The main control chip receives the write request and determines whether to perform distributed storage of external storage objects.
本实施例中,可通过主控芯片与多个存储设备配合,通过主控芯片实现向存储设备中并行写入外部的存储对象。In this embodiment, the main control chip can cooperate with multiple storage devices, and external storage objects can be written into the storage devices in parallel through the main control chip.
在一示例中,写入请求可以携带存储对象的数据尺寸;确定是否对外部的存储对象进行分布式存储,可以包括:在存储对象的数据尺寸大于尺寸阈值时,确定对存储对象进行分布式存储。In an example, the write request may carry the data size of the storage object; determining whether to perform distributed storage on the external storage object may include: when the data size of the storage object is greater than the size threshold, determining to perform distributed storage on the storage object .
请求方(比如计算机系统的主机)向存储系统发送写入请求,写入请求信息可以携带对象名称、数据尺寸、现存数据的起始地址等。主控芯片对于尺寸超过设定阈值的存储对象实行分布式存储。The requester (such as the host of the computer system) sends a write request to the storage system. The write request information can carry the object name, data size, starting address of the existing data, etc. The main control chip implements distributed storage for storage objects whose size exceeds the set threshold.
S302:主控芯片确定对存储对象进行分布式存储时,将存储对象的数据分割后并行存入到多个存储设备,即存入到N个存储设备或N个中的部分存储设备中。S302: When the main control chip determines to perform distributed storage of the storage object, it divides the data of the storage object and stores it in multiple storage devices in parallel, that is, stores it in N storage devices or some of the N storage devices.
主控芯片确定需对存储对象进行分布式存储时,将存储对象的数据分割开,分别存入到不同的存储设备中,便于并行的数据读写。 When the main control chip determines that the storage object needs to be stored in a distributed manner, the data of the storage object is divided and stored in different storage devices to facilitate parallel data reading and writing.
在本公开一示例实施例中,将存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备,可以包括:In an example embodiment of the present disclosure, dividing the data of the storage object and storing it in parallel in N storage devices or some of the N storage devices may include:
将存储对象分割成M个数据包,M>N,M可以远远大于N;将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,其中,M个数据包中的每N个数据包并行存储在N个存储设备中,一个数据包一次对应存储到一个存储设备中。Divide the storage object into M data packets, M>N, M can be much larger than N; store the M data packets in N data packets in units of N data packets in turn to N storage devices in a preset order, where M data Every N data packets in the package are stored in N storage devices in parallel, and one data packet is stored in one storage device at a time.
在数据包的数量M不是N的整数倍时,将M除以N剩余的数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。When the number M of data packets is not an integer multiple of N, divide M by N and the remaining data packets are stored in parallel in some of the N storage devices. One data packet is stored in one storage device at a time.
在数据包的数量M<N时,将每一个数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。When the number of data packets M < N, each data packet is stored in parallel to some of the N storage devices, and one data packet is stored in one storage device at a time.
安排分布式存储时,对于主控芯片PCIe接口上连接的多个存储设备(比如SSD),主控芯片可以把连续多个数据包分配给多个存储设备,每一个数据包对应分配给一个存储设备。When arranging distributed storage, for multiple storage devices (such as SSD) connected to the PCIe interface of the main control chip, the main control chip can assign multiple consecutive data packets to multiple storage devices, and each data packet is assigned to a storage device. equipment.
在一示例中,将存储对象分割成M个数据包且M>N时,通过多次存储将M个数据包写入到N个存储设备中,每次存储可以包括:In an example, when the storage object is divided into M data packets and M>N, M data packets are written to N storage devices through multiple storages. Each storage may include:
在余下的数据包的数量大于或等于N时,按预设顺序将N个数据包并行存储到N个存储设备中,一个数据包一次对应存储到一个存储设备中;When the number of remaining data packets is greater than or equal to N, N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
在余下的数据包的数量小于N时,将余下的数据包并行存储到存储设备中,一个数据包一次对应存储到一个存储设备中。When the number of remaining data packets is less than N, the remaining data packets are stored in parallel in the storage device, and one data packet is stored in one storage device at a time.
如果M≤N时,通过一次存储就可以将M个数据包并行存储到M个不同的存储设备中。If M≤N, M data packets can be stored in parallel in M different storage devices through one storage.
在一示例中,预设顺序可根据经验值而定,预设顺序可以为数据包的存储地址的大小顺序,或者,预设顺序可以为存储设备的编号大小顺序。In an example, the preset order may be determined based on empirical values, and the preset order may be the size order of storage addresses of data packets, or the preset order may be the number size order of storage devices.
在本公开一示例实施例中,写入请求还可以携带存储对象的名称和存储对象的数据的当前存储地址,存储设备可以包括控制芯片和与控制芯片连接的闪存芯片。将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,可以包括: In an example embodiment of the present disclosure, the write request may also carry the name of the storage object and the current storage address of the data of the storage object, and the storage device may include a control chip and a flash memory chip connected to the control chip. Store M data packets in N data packet units in turn to N storage devices in a preset order, which can include:
主控芯片根据存储对象的当前存储地址确定分割成的M个数据包的大小,确定M个存储设备取数据的起始地址;主控芯片按预设顺序轮流向N个存储设备的控制芯片分别发送写入请求,携带所发送到的存储设备取数据的起始地址和要取出的数据包的大小;每一个存储设备的控制芯片通过PCIe协议从相应的取数据的起始地址上取数据并写入到所连接的闪存芯片中。The main control chip determines the size of the M data packets divided into according to the current storage address of the storage object, and determines the starting address for fetching data from the M storage devices; the main control chip takes turns to the control chips of the N storage devices in a preset order. Send a write request, carrying the starting address of the data to be retrieved from the storage device sent to and the size of the data packet to be retrieved; the control chip of each storage device retrieves data from the corresponding starting address of data retrieval through the PCIe protocol and Write to the connected flash memory chip.
主控芯片将存储对象的数据进行分割形成多个数据包,以及为每一个数据包分配一个对应的存储设备后,主控芯片可以向多个存储设备发送写入请求,写入请求中可以携带每一个存储设备取数据的起始地址。每个存储设备将通过PCIe协议在相应地址上取数据,写入闪存。重复上述步骤直到所有数据完成写入。After the main control chip divides the data of the storage object into multiple data packets and allocates a corresponding storage device to each data packet, the main control chip can send write requests to multiple storage devices. The write request can carry Each storage device takes the starting address of data. Each storage device will fetch data at the corresponding address through the PCIe protocol and write it to the flash memory. Repeat the above steps until all data is written.
在一示例中,写入请求还可以携带存储对象的名称和存储对象的数据的当前存储地址信息,存储设备可以包括控制芯片和与控制芯片连接的闪存芯片;In an example, the write request may also carry the name of the storage object and the current storage address information of the data of the storage object, and the storage device may include a control chip and a flash memory chip connected to the control chip;
主控芯片将存储对象分割成M个数据包时,根据存储对象的当前存储地址信息确定分割成的M个数据包的大小及起始地址;When the main control chip divides the storage object into M data packets, it determines the size and starting address of the divided M data packets based on the current storage address information of the storage object;
主控芯片按预设顺序轮流向N个存储设备的控制芯片分别发送写入请求,携带存储设备要取出的数据包的起始地址和大小;The main control chip takes turns sending write requests to the control chips of N storage devices in a preset order, carrying the starting address and size of the data packet to be taken out by the storage device;
每一个存储设备的控制芯片收到写入请求后,通过PCIe协议从相应的取数据的起始地址取数据并写入到所连接的闪存芯片中。After receiving the write request, the control chip of each storage device fetches data from the corresponding starting address of data acquisition through the PCIe protocol and writes it to the connected flash memory chip.
当前存储地址信息可以包括:当前起止地址和数据包的大小,或者,当前存储地址信息可以包括:当前起始地址和当前结束地址。The current storage address information may include: the current start and end addresses and the size of the data packet, or the current storage address information may include: the current start address and the current end address.
图4为本公开另一示例实施例提供的数据读取方法的流程图,数据读取方法的执行主体可以为任一实施例所示的存储系统,数据读取方法可应用于包括主控芯片和N个存储设备的存储系统,N个存储设备通过PCIe协议与主控芯片连接,N为不小于2的整数。如图4所示,数据读取方法可以包括:Figure 4 is a flow chart of a data reading method provided by another example embodiment of the present disclosure. The execution subject of the data reading method can be the storage system shown in any embodiment. The data reading method can be applied to a system including a main control chip. A storage system with N storage devices. The N storage devices are connected to the main control chip through the PCIe protocol, and N is an integer not less than 2. As shown in Figure 4, data reading methods can include:
S401:主控芯片接收到读取请求,确定需读取的存储对象是否被分布式存储。S401: The main control chip receives the read request and determines whether the storage object to be read is distributedly stored.
本实施例中,可通过主控芯片与多个存储设备配合,通过主控芯片实现 从多个存储设备中并行读取存储对象的数据。In this embodiment, the main control chip can be used to cooperate with multiple storage devices, and the main control chip can be used to realize Read storage object data in parallel from multiple storage devices.
S402:主控芯片确定需读取的存储对象被分布式存储时,并行读取多个存储设备中存储对象的数据并传输到外部设备,即并行读取N个存储设备中或N个中的部分存储设备中存储对象的数据并传输到外部。主控芯片确定需从存储设备读出存储对象时,先确定需要读取的存储对象是否被分布式存储,如果存储对象被分布式存储,主控芯片向所有存储该存储对象的存储设备发出读取请求,从所有存储该存储对象的存储设备中并行读取相应数据,便于并行的数据读出。S402: When the main control chip determines that the storage object to be read is distributedly stored, it reads the data of the storage object in multiple storage devices in parallel and transmits it to the external device, that is, it reads N storage devices or N storage objects in parallel. The object's data is stored in some storage devices and transferred to the outside. When the main control chip determines that the storage object needs to be read from the storage device, it first determines whether the storage object to be read is distributed. If the storage object is distributed, the main control chip sends a read message to all storage devices that store the storage object. Fetch requests and read corresponding data in parallel from all storage devices that store the storage object to facilitate parallel data reading.
在本公开一示例实施例中,读取请求可以携带存储对象的名称,以及用于接收读取出的存储对象的数据的接收地址,存储设备可以包括控制芯片和与控制芯片连接的闪存芯片。并行读取N个存储设备中或N个中的部分存储设备中存储对象的数据并传输到外部,可以包括:In an example embodiment of the present disclosure, the read request may carry the name of the storage object and a receiving address for receiving the read data of the storage object, and the storage device may include a control chip and a flash memory chip connected to the control chip. Reading the data of objects stored in N storage devices or some of the N storage devices in parallel and transmitting it to the outside may include:
主控芯片根据存储对象的名称确定出分布式存储所述存储对象的所有存储设备,根据接收地址和每一个存储设备中数据包的大小,确定每一个存储设备向外部写数据的起始地址;主控芯片向分布式存储所述存储对象的所有存储设备分别发送读取请求,携带所发送到的存储设备向外部写数据的起始地址;每一个存储设备的控制芯片从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址上写数据。The main control chip determines all storage devices for distributed storage of the storage object based on the name of the storage object, and determines the starting address of each storage device for writing data to the outside based on the receiving address and the size of the data packet in each storage device; The main control chip sends read requests to all storage devices that distribute the storage objects, carrying the starting address of the sent storage device to write data to the outside; the control chip of each storage device reads from the connected flash memory chip Read data from it and write data to the corresponding starting address of writing data through PCIe protocol.
请求方(比如外部的主机)向存储系统发送读取请求(或读出请求),读取请求可以携带对象名称、用于接收数据的起始内存地址等。The requester (such as an external host) sends a read request (or read request) to the storage system. The read request can carry the object name, the starting memory address for receiving data, etc.
如果存储对象被分布式存储,主控芯片向所有存储该对象的存储设备(比如SSD)发出读取请求,计算每一个存储设备对应的接收数据的起始地址,把每一个存储设备对应的接收数据的起始地址包括在读取请求中。每个存储设备将从闪存中读出数据并把读出的数据送到相应的地址,重复上述步骤直到完成所有数据读出。If the storage object is stored in a distributed manner, the main control chip sends a read request to all storage devices (such as SSD) that store the object, calculates the starting address of the received data corresponding to each storage device, and sends the corresponding received data to each storage device. The starting address of the data is included in the read request. Each storage device will read data from the flash memory and send the read data to the corresponding address. Repeat the above steps until all data is read out.
在一示例中,读取请求携带存储对象的名称,以及用于接收读出的存储对象的数据的接收地址信息,存储设备可以包括控制芯片和与控制芯片连接的闪存芯片; In one example, the read request carries the name of the storage object and receiving address information for receiving the data of the read storage object. The storage device may include a control chip and a flash memory chip connected to the control chip;
主控芯片并行读取多个存储设备中存储对象的数据并传输到外部设备,可以包括:The main control chip reads the data of objects stored in multiple storage devices in parallel and transmits it to external devices, which can include:
主控芯片根据存储对象的名称确定出分布式存储所述存储对象的数据的所有存储设备,根据接收地址和每一个存储设备中数据的大小,确定每一个存储设备向外部设备写数据的起始地址;The main control chip determines all storage devices that distribute the data of the storage object based on the name of the storage object, and determines the start of each storage device writing data to the external device based on the receiving address and the size of the data in each storage device. address;
主控芯片向分布式存储所述存储对象的数据的所有存储设备分别发送读取请求,携带要读取的数据的当前存储地址,及存储设备向外部设备写数据的起始地址;The main control chip sends read requests to all storage devices that distribute the data of the storage object, carrying the current storage address of the data to be read, and the starting address of the storage device writing data to the external device;
每一个存储设备的控制芯片接收到读取请求后,根据要读取的数据的当前存储地址从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址写数据。After receiving the read request, the control chip of each storage device reads data from the connected flash memory chip according to the current storage address of the data to be read, and writes data to the corresponding starting address of writing data through the PCIe protocol. .
每一个存储设备保存的存储对象的数据可以是之前写入数据时存储的数据包。The data of the storage object saved by each storage device may be the data packet stored when the data was previously written.
图5为本公开一示例实施例提供的计算机系统的结构框图,如图5所示,计算机系统可以包括:主机51、总线52和存储系统53,存储系统采用任一实施例所示的存储系统,总线可以为PCIe总线或CXL总线。Figure 5 is a structural block diagram of a computer system provided by an example embodiment of the present disclosure. As shown in Figure 5, the computer system may include: a host 51, a bus 52 and a storage system 53. The storage system adopts the storage system shown in any embodiment. , the bus can be PCIe bus or CXL bus.
多个存储设备(比如SSD控制芯片)可以通过PCIe协议与主控芯片连接,多个存储设备与主控芯片组成的整个系统可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可插入到主机的PCIe总线上,或通过CXL协议接入到主机。Multiple storage devices (such as SSD control chips) can be connected to the main control chip through the PCIe protocol. The entire system composed of multiple storage devices and main control chips can be deployed on one motherboard to form a high-bandwidth SSD. The high-bandwidth SSD can be inserted into the PCIe bus of the host or connected to the host through the CXL protocol.
图6为本公开一示例实施例提供的主控芯片的结构框图,主控芯片可以与N个存储设备进行通信连接,N为不小于2的整数,如图6所示,主控芯片可以包括存储器61和处理器62。Figure 6 is a structural block diagram of a main control chip provided by an example embodiment of the present disclosure. The main control chip can communicate with N storage devices, where N is an integer not less than 2. As shown in Figure 6, the main control chip can include Memory 61 and processor 62.
存储器设置为存储执行指令,当主控芯片运行时,处理器与存储器之间通信,处理器设置为调用执行指令,用于执行数据存储方法和数据读取方法。The memory is set to store execution instructions. When the main control chip is running, the processor communicates with the memory, and the processor is set to call execution instructions for executing the data storage method and the data reading method.
本文中的处理器可以是一个中央处理器(Central Processing Unit,简称CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称ASIC),或者完成实施本公开实施例的一个或多个集成电路,或者其他具有 处理功能的器件。The processor in this article may be a Central Processing Unit (CPU for short), or an Application Specific Integrated Circuit (ASIC for short), or one or more integrated circuits that implement the embodiments of the present disclosure. or other having A device that handles functions.
处理器设置为调用执行指令,以执行以下的操作:The processor is configured to invoke execution instructions to perform the following operations:
数据存储,即所述数据存储方法可以包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到多个所述存储设备中,即存入到N个存储设备中或N个中的部分存储设备,N为不小于2的整数;Data storage, that is, the data storage method may include: when receiving a write request and determining to perform distributed storage of an external storage object, dividing the data of the storage object and storing them in parallel in multiple storage devices. , that is, stored in N storage devices or part of N storage devices, where N is an integer not less than 2;
数据读取,即所述数据读取方法可以包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取多个所述存储设备中所述存储对象的数据并传输到外部设备,即并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部设备。Data reading, that is, the data reading method may include: when a read request is received and it is determined that the storage object to be read is stored in a distributed manner, reading the data of the storage object in multiple storage devices in parallel and Transmitting to an external device means reading the data of the storage object in N storage devices or part of the N storage devices in parallel and transmitting it to the external device.
在本公开一示例实施例中,所述写入请求可以携带所述存储对象的数据尺寸;In an example embodiment of the present disclosure, the write request may carry the data size of the storage object;
所述确定是否对外部的存储对象进行分布式存储,可以包括:所述主控芯片在所述存储对象的数据尺寸大于预设的尺寸阈值,即所述主控芯片在所述存储对象的数据尺寸大于尺寸阈值时,确定对所述存储对象进行分布式存储。Determining whether to perform distributed storage of external storage objects may include: the data size of the storage object by the main control chip is greater than a preset size threshold, that is, the data size of the main control chip in the storage object When the size is greater than the size threshold, it is determined to perform distributed storage of the storage object.
在本公开一示例实施例中,所述主控芯片将所述存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备,可以包括:In an exemplary embodiment of the present disclosure, the main control chip divides the data of the storage object and stores it in N storage devices or some of the N storage devices in parallel, which may include:
将所述存储对象分割成M个数据包,M≥N;将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,其中,M个数据包中的每N个数据包并行存储在N个存储设备中,一个数据包一次对应存储到一个存储设备中;Divide the storage object into M data packets, M≥N; store the M data packets in N data packets in units of N data packets in turn to N storage devices in a preset order, where each N of M data packets Data packets are stored in N storage devices in parallel, and one data packet is stored in one storage device at a time;
在数据包的数量M不是N的整数倍时,将M除以N剩余的数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。When the number M of data packets is not an integer multiple of N, divide M by N and the remaining data packets are stored in parallel in some of the N storage devices. One data packet is stored in one storage device at a time.
在本公开一示例实施例中,所述主控芯片将所述存储对象的数据分割后并行存入到多个所述存储设备中,可以包括:In an example embodiment of the present disclosure, the main control chip divides the data of the storage object and stores it in multiple storage devices in parallel, which may include:
将所述存储对象分割成M个数据包,M>N时,通过多次存储将M个 所述数据包写入到N个所述存储设备中,每次存储包括:Divide the storage object into M data packets. When M>N, store the M data packets multiple times. The data packet is written to N storage devices, and each storage includes:
在余下的数据包的数量大于或等于N时,按预设顺序将N个数据包并行存储到N个所述存储设备中,一个数据包一次对应存储到一个存储设备中;When the number of remaining data packets is greater than or equal to N, N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
在余下的数据包的数量小于N时,将余下的数据包并行存储到所述存储设备中,一个数据包一次对应存储到一个存储设备中。When the number of remaining data packets is less than N, the remaining data packets are stored in the storage device in parallel, and one data packet is stored in one storage device at a time.
在本公开一示例实施例中,所述写入请求还可以携带所述存储对象的名称和所述存储对象的数据的当前存储地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;In an example embodiment of the present disclosure, the write request may also carry the name of the storage object and the current storage address of the data of the storage object. The storage device includes a control chip and a device connected to the control chip. flash memory chips;
所述将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,可以包括:The method of storing M data packets in N data packets as a unit to N storage devices in turn in a preset order may include:
所述主控芯片根据所述存储对象的当前存储地址确定分割成的所述M个数据包的大小,确定所述M个存储设备取数据的起始地址;The main control chip determines the size of the M data packets divided into according to the current storage address of the storage object, and determines the starting addresses of the M storage devices for fetching data;
所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带所发送到的存储设备取数据的起始地址和要取出的数据包的大小;The main control chip sends write requests to the control chips of the N storage devices in turn in a preset order, carrying the starting address of the data sent to the storage device and the size of the data packet to be taken out;
每一个存储设备的控制芯片通过PCIe协议从相应的取数据的起始地址上取数据并写入到所连接的闪存芯片中。The control chip of each storage device fetches data from the corresponding starting address for fetching data through the PCIe protocol and writes it to the connected flash memory chip.
在本公开一示例实施例中,所述写入请求还携带所述存储对象的名称和所述存储对象的数据的当前存储地址信息,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;In an example embodiment of the present disclosure, the write request also carries the name of the storage object and the current storage address information of the data of the storage object. The storage device includes a control chip and a device connected to the control chip. flash memory chips;
所述主控芯片将所述存储对象分割成M个数据包时,根据所述存储对象的当前存储地址信息确定分割成的所述M个数据包的大小及起始地址;When the main control chip divides the storage object into M data packets, it determines the size and starting address of the divided M data packets according to the current storage address information of the storage object;
所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带存储设备要取出的数据包的起始地址和大小;The main control chip sends write requests to the control chips of the N storage devices in turn in a preset order, carrying the starting address and size of the data packet to be taken out by the storage device;
每一个所述存储设备的控制芯片收到写入请求后,通过PCIe协议从相应的起始地址取数据并写入到所连接的闪存芯片中。After receiving the write request, the control chip of each storage device fetches data from the corresponding starting address through the PCIe protocol and writes it into the connected flash memory chip.
在本公开一示例实施例中,所述读取请求可以携带所述存储对象的名称,以及用于接收读取出的存储对象的数据的接收地址,所述存储设备包括控制 芯片和与所述控制芯片连接的闪存芯片;In an example embodiment of the present disclosure, the read request may carry the name of the storage object and a receiving address for receiving the read data of the storage object, and the storage device includes a control A chip and a flash memory chip connected to the control chip;
所述并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部,可以包括:The parallel reading of the data of the storage object in N storage devices or part of the N storage devices and transmitting it to the outside may include:
所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的所有存储设备,根据所述接收地址和每一个存储设备中数据包的大小,确定每一个存储设备向外部写数据的起始地址;The main control chip determines all storage devices that distribute the storage object according to the name of the storage object, and determines each storage device to write to the outside based on the receiving address and the size of the data packet in each storage device. The starting address of the data;
所述主控芯片向分布式存储所述存储对象的所有存储设备分别发送读取请求,携带所发送到的存储设备向外部写数据的起始地址;The main control chip sends read requests to all storage devices that distribute the storage objects, carrying the starting address of the sent storage device to write data to the outside;
每一个存储设备的控制芯片从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址上写数据。The control chip of each storage device reads data from the connected flash memory chip and writes data to the corresponding starting address of writing data through the PCIe protocol.
在本公开一示例实施例中,所述读取请求可以携带所述存储对象的名称,以及用于接收读出的存储对象的数据的接收地址信息,所述存储设备可以包括控制芯片和与所述控制芯片连接的闪存芯片;In an example embodiment of the present disclosure, the read request may carry the name of the storage object, and receiving address information for receiving the data of the read storage object, and the storage device may include a control chip and a device connected to the storage object. The flash memory chip connected to the control chip;
所述主控芯片并行读取多个存储设备中所述存储对象的数据并传输到外部设备,可以包括:The main control chip reads the data of the storage objects in multiple storage devices in parallel and transmits it to external devices, which may include:
所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的数据的所有存储设备,根据所述接收地址和每一个存储设备中数据的大小,确定每一个存储设备向外部设备写数据的起始地址;The main control chip determines all storage devices that distribute the data of the storage object according to the name of the storage object, and determines the external data of each storage device according to the receiving address and the size of the data in each storage device. The starting address of the device writing data;
所述主控芯片向分布式存储所述存储对象的数据的所有存储设备分别发送读取请求,携带要读取的数据的当前存储地址,及存储设备向外部设备写数据的起始地址;The main control chip sends read requests to all storage devices that distribute the data of the storage object, carrying the current storage address of the data to be read, and the starting address of the storage device writing data to the external device;
每一个存储设备的控制芯片接收到所述读取请求后,根据要读取的数据的当前存储地址从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址写数据。After receiving the read request, the control chip of each storage device reads the data from the connected flash memory chip according to the current storage address of the data to be read, and writes the data to the corresponding starting address through the PCIe protocol. Write data.
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一 个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。 Those of ordinary skill in the art can understand that all or some steps, systems, and functional modules/units in the devices disclosed above can be implemented as software, firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one A function or step can be performed cooperatively by several physical components. Some or all of the components may be implemented as software executed by a processor, such as a digital signal processor or a microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed on computer-readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media). As is known to those of ordinary skill in the art, the term computer storage media includes volatile and nonvolatile media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. removable, removable and non-removable media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disk (DVD) or other optical disk storage, magnetic cassettes, tapes, disk storage or other magnetic storage devices, or may Any other medium used to store the desired information and that can be accessed by a computer. Additionally, it is known to those of ordinary skill in the art that communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media .

Claims (18)

  1. 一种存储系统,插入到计算机系统的PCIe总线上,或通过CXL协议接入到计算机系统,包括主控芯片和N个存储设备,N为不小于2的整数;A storage system, inserted into the PCIe bus of a computer system, or connected to the computer system through the CXL protocol, including a main control chip and N storage devices, where N is an integer not less than 2;
    所述主控芯片与所述N个存储设备基于PCIe协议进行通信连接。The main control chip communicates with the N storage devices based on the PCIe protocol.
  2. 根据权利要求1所述的存储系统,其中,所述主控芯片设置为实现数据存储和数据读取;The storage system according to claim 1, wherein the main control chip is configured to implement data storage and data reading;
    所述数据存储包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到多个所述存储设备中;The data storage includes: when receiving a write request and determining to perform distributed storage of an external storage object, dividing the data of the storage object and storing them in parallel in multiple storage devices;
    所述数据读取包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取多个所述存储设备中所述存储对象的数据并传输到外部设备。The data reading includes: when receiving a read request and determining that the storage object to be read is stored in a distributed manner, reading the data of the storage object in multiple storage devices in parallel and transmitting it to an external device.
  3. 根据权利要求2所述的存储系统,其中,The storage system of claim 2, wherein:
    所述外部设备包括本地主机的处理器或远程主机的处理器;所述主控芯片包括外部通信接口:The external device includes a processor of a local host or a processor of a remote host; the main control chip includes an external communication interface:
    所述外部通信接口包括:PCIe总线接口,所述PCIe总线接口配置为通过PCIe总线与本地主机的处理器进行通信;The external communication interface includes: a PCIe bus interface, the PCIe bus interface is configured to communicate with the processor of the local host through the PCIe bus;
    或者,or,
    所述外部通信接口包括:CXL总线接口,所述CXL总线接口配置为通过CXL总线与本地主机的处理器进行通信;The external communication interface includes: a CXL bus interface, the CXL bus interface is configured to communicate with the processor of the local host through the CXL bus;
    或者,or,
    所述外部通信接口包括:网络接口,所述网络接口配置为通过网络与远程主机的处理器进行通信。The external communication interface includes: a network interface configured to communicate with a processor of a remote host through a network.
  4. 根据权利要求2所述的存储系统,其中,所述主控芯片在所述存储对象的数据尺寸大于预设的尺寸阈值时,确定对外部的存储对象进行分布式存储。The storage system according to claim 2, wherein the main control chip determines to perform distributed storage of external storage objects when the data size of the storage object is greater than a preset size threshold.
  5. 根据权利要求4所述的存储系统,其中,每个所述存储设备包括:SSD 控制芯片和K个闪存芯片,K大于或等于1;The storage system of claim 4, wherein each of the storage devices includes: SSD Control chip and K flash memory chips, K is greater than or equal to 1;
    每一个SSD控制芯片连接在所述PCIe的K个通道上,每一个通道对应传输一个闪存芯片的读出或写入的数据。Each SSD control chip is connected to K lanes of the PCIe, and each lane corresponds to transmitting data read or written from a flash memory chip.
  6. 根据权利要求1-5任一项所述的存储系统,其中,所述主控芯片包括CPU内核、内部存储器和可编程逻辑器件,所述可编程逻辑器件设置为实现所述存储设备与外部设备之间的数据转运;所述内部存储器存储有分布式存储管理程序,所述CPU内核运行所述分布式存储管理程序以实现所述数据存储和数据读取。The storage system according to any one of claims 1 to 5, wherein the main control chip includes a CPU core, an internal memory and a programmable logic device, and the programmable logic device is configured to implement the storage device and the external device Data transfer between; the internal memory stores a distributed storage management program, and the CPU core runs the distributed storage management program to implement the data storage and data reading.
  7. 根据权利要求2所述的存储系统,其中,所述主控芯片将所述存储对象的数据分割后并行存入到多个所述存储设备中,包括:The storage system according to claim 2, wherein the main control chip divides the data of the storage object and stores it in multiple storage devices in parallel, including:
    将所述存储对象分割成M个数据包,M>N时,通过多次存储将M个所述数据包写入到N个所述存储设备中,每次存储包括:Divide the storage object into M data packets. When M>N, write the M data packets into N storage devices through multiple storages. Each storage includes:
    在余下的数据包的数量大于或等于N时,按预设顺序将N个数据包并行存储到N个所述存储设备中,一个数据包一次对应存储到一个存储设备中;When the number of remaining data packets is greater than or equal to N, N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
    在余下的数据包的数量小于N时,将余下的数据包并行存储到所述存储设备中,一个数据包一次对应存储到一个存储设备中。When the number of remaining data packets is less than N, the remaining data packets are stored in the storage device in parallel, and one data packet is stored in one storage device at a time.
  8. 一种主控芯片,与N个存储设备进行通信连接,N为不小于2的整数,所述主控芯片包括存储器和处理器,存储器设置为存储执行指令;处理器设置为调用所述执行指令,以执行以下的处理;A main control chip that communicates with N storage devices, where N is an integer not less than 2. The main control chip includes a memory and a processor. The memory is configured to store execution instructions; the processor is configured to call the execution instructions. , to perform the following processing;
    数据存储:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到多个所述存储设备中;Data storage: When a write request is received and it is determined to perform distributed storage of an external storage object, the data of the storage object is divided and stored in multiple storage devices in parallel;
    数据读取:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取多个所述存储设备中所述存储对象的数据并传输到外部设备。Data reading: When a read request is received and it is determined that the storage object to be read is stored in a distributed manner, the data of the storage object in multiple storage devices is read in parallel and transmitted to an external device.
  9. 根据权利要求8所述的主控芯片,其中,所述写入请求携带所述存储对象的数据尺寸;The main control chip according to claim 8, wherein the write request carries the data size of the storage object;
    所述确定是否对外部的存储对象进行分布式存储,包括:所述主控芯片在所述存储对象的数据尺寸大于预设的尺寸阈值时,确定对所述存储对象进行分布式存储。 The determining whether to perform distributed storage on the external storage object includes: the main control chip determines to perform distributed storage on the storage object when the data size of the storage object is greater than a preset size threshold.
  10. 根据权利要求8所述的主控芯片,其中,所述主控芯片将所述存储对象的数据分割后并行存入到多个所述存储设备中,包括:The main control chip according to claim 8, wherein the main control chip divides the data of the storage object and stores it in multiple storage devices in parallel, including:
    将所述存储对象分割成M个数据包,M>N时,通过多次存储将M个所述数据包写入到N个所述存储设备中,每次存储包括:Divide the storage object into M data packets. When M>N, write the M data packets into N storage devices through multiple storages. Each storage includes:
    在余下的数据包的数量大于或等于N时,按预设顺序将N个数据包并行存储到N个所述存储设备中,一个数据包一次对应存储到一个存储设备中;When the number of remaining data packets is greater than or equal to N, N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
    在余下的数据包的数量小于N时,将余下的数据包并行存储到所述存储设备中,一个数据包一次对应存储到一个存储设备中。When the number of remaining data packets is less than N, the remaining data packets are stored in the storage device in parallel, and one data packet is stored in one storage device at a time.
  11. 根据权利要求10所述的主控芯片,其中,所述写入请求还携带所述存储对象的名称和所述存储对象的数据的当前存储地址信息,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;The main control chip according to claim 10, wherein the write request also carries the name of the storage object and the current storage address information of the data of the storage object, and the storage device includes a control chip and the A flash memory chip that controls the chip connection;
    所述主控芯片将所述存储对象分割成M个数据包时,根据所述存储对象的当前存储地址信息确定分割成的所述M个数据包的大小及起始地址;When the main control chip divides the storage object into M data packets, it determines the size and starting address of the divided M data packets according to the current storage address information of the storage object;
    所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带存储设备要取出的数据包的起始地址和大小;The main control chip sends write requests to the control chips of the N storage devices in turn in a preset order, carrying the starting address and size of the data packet to be taken out by the storage device;
    每一个所述存储设备的控制芯片收到写入请求后,通过PCIe协议从相应的起始地址取数据并写入到所连接的闪存芯片中。After receiving the write request, the control chip of each storage device fetches data from the corresponding starting address through the PCIe protocol and writes it into the connected flash memory chip.
  12. 根据权利要求8所述的主控芯片,其中,所述读取请求携带所述存储对象的名称,以及用于接收读出的存储对象的数据的接收地址信息,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;The main control chip according to claim 8, wherein the read request carries the name of the storage object and receiving address information for receiving the read data of the storage object, and the storage device includes a control chip and A flash memory chip connected to the control chip;
    所述主控芯片并行读取多个存储设备中所述存储对象的数据并传输到外部设备,包括:The main control chip reads the data of the storage objects in multiple storage devices in parallel and transmits it to external devices, including:
    所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的数据的所有存储设备,根据所述接收地址和每一个存储设备中数据的大小,确定每一个存储设备向外部设备写数据的起始地址;The main control chip determines all storage devices that distribute the data of the storage object according to the name of the storage object, and determines the external data of each storage device according to the receiving address and the size of the data in each storage device. The starting address of the device writing data;
    所述主控芯片向分布式存储所述存储对象的数据的所有存储设备分别发送读取请求,携带要读取的数据的当前存储地址,及存储设备向外部设备写数据的起始地址; The main control chip sends read requests to all storage devices that distribute the data of the storage object, carrying the current storage address of the data to be read, and the starting address of the storage device writing data to the external device;
    每一个存储设备的控制芯片接收到所述读取请求后,根据要读取的数据的当前存储地址从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址写数据。After receiving the read request, the control chip of each storage device reads the data from the connected flash memory chip according to the current storage address of the data to be read, and writes the data to the corresponding starting address through the PCIe protocol. Write data.
  13. 一种数据存储方法,应用于包括主控芯片和N个存储设备的存储系统,N个存储设备通过PCIe协议与所述主控芯片连接,N为不小于2的整数,所述方法包括:A data storage method, applied to a storage system including a main control chip and N storage devices. The N storage devices are connected to the main control chip through the PCIe protocol, and N is an integer not less than 2. The method includes:
    所述主控芯片接收到写入请求,确定是否对外部的存储对象进行分布式存储;The main control chip receives the write request and determines whether to perform distributed storage of external storage objects;
    所述主控芯片确定对所述存储对象进行分布式存储时,将所述存储对象的数据分割后并行存入到多个所述存储设备中。When the main control chip determines to perform distributed storage of the storage object, it divides the data of the storage object and stores it in multiple storage devices in parallel.
  14. 根据权利要求13所述的方法,其中,所述写入请求携带所述存储对象的数据尺寸;The method of claim 13, wherein the write request carries the data size of the storage object;
    所述确定是否对外部的存储对象进行分布式存储,包括:所述主控芯片在所述存储对象的数据尺寸大于预设的尺寸阈值时,确定对所述存储对象进行分布式存储。The determining whether to perform distributed storage on the external storage object includes: the main control chip determines to perform distributed storage on the storage object when the data size of the storage object is greater than a preset size threshold.
  15. 根据权利要求13所述的方法,其中,所述主控芯片将所述存储对象的数据分割后并行存入到多个所述存储设备中,包括:The method according to claim 13, wherein the main control chip divides the data of the storage object and stores it in multiple storage devices in parallel, including:
    将所述存储对象分割成M个数据包,M>N时,通过多次存储将M个所述数据包写入到N个所述存储设备中,每次存储包括:Divide the storage object into M data packets. When M>N, write the M data packets into N storage devices through multiple storages. Each storage includes:
    在余下的数据包的数量大于或等于N时,按预设顺序将N个数据包并行存储到N个所述存储设备中,一个数据包一次对应存储到一个存储设备中;When the number of remaining data packets is greater than or equal to N, N data packets are stored in parallel in N storage devices in a preset order, and one data packet is stored in one storage device at a time;
    在余下的数据包的数量小于N时,将余下的数据包并行存储到所述存储设备中,一个数据包一次对应存储到一个存储设备中。When the number of remaining data packets is less than N, the remaining data packets are stored in the storage device in parallel, and one data packet is stored in one storage device at a time.
  16. 根据权利要求15所述的方法,其中,所述写入请求还携带所述存储对象的名称和所述存储对象的数据的当前存储地址信息,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;The method according to claim 15, wherein the write request also carries the name of the storage object and the current storage address information of the data of the storage object, and the storage device includes a control chip and a control chip. Connected flash memory chips;
    所述主控芯片将所述存储对象分割成M个数据包时,根据所述存储对象的当前存储地址信息确定分割成的所述M个数据包的大小及起始地址; When the main control chip divides the storage object into M data packets, it determines the size and starting address of the divided M data packets according to the current storage address information of the storage object;
    所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带存储设备要取出的数据包的起始地址和大小;The main control chip sends write requests to the control chips of the N storage devices in turn in a preset order, carrying the starting address and size of the data packet to be taken out by the storage device;
    每一个所述存储设备的控制芯片收到写入请求后,通过PCIe协议从相应的起始地址取数据并写入到所连接的闪存芯片中。After receiving the write request, the control chip of each storage device fetches data from the corresponding starting address through the PCIe protocol and writes it into the connected flash memory chip.
  17. 一种数据读取方法,应用于包括主控芯片和N个存储设备的存储系统,N个存储设备通过PCIe协议与所述主控芯片连接,N为不小于2的整数,所述方法包括:A data reading method, applied to a storage system including a main control chip and N storage devices. The N storage devices are connected to the main control chip through the PCIe protocol, and N is an integer not less than 2. The method includes:
    所述主控芯片接收到读取请求,确定需读取的存储对象是否被分布式存储;The main control chip receives the read request and determines whether the storage object to be read is distributedly stored;
    所述主控芯片确定需读取的存储对象被分布式存储时,并行读取多个所述存储设备中所述存储对象的数据并传输到外部设备。When the main control chip determines that the storage object to be read is stored in a distributed manner, it reads the data of the storage object in multiple storage devices in parallel and transmits it to an external device.
  18. 根据权利要求17所述的方法,其中,所述读取请求携带所述存储对象的名称,以及用于接收读出的存储对象的数据的接收地址信息,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;The method according to claim 17, wherein the read request carries the name of the storage object and receiving address information for receiving the read data of the storage object, and the storage device includes a control chip and the storage object. The flash memory chip connected to the control chip;
    所述主控芯片并行读取多个存储设备中所述存储对象的数据并传输到外部设备,包括:The main control chip reads the data of the storage objects in multiple storage devices in parallel and transmits it to external devices, including:
    所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的数据的所有存储设备,根据所述接收地址和每一个存储设备中数据的大小,确定每一个存储设备向外部设备写数据的起始地址;The main control chip determines all storage devices that distribute the data of the storage object according to the name of the storage object, and determines the external data of each storage device according to the receiving address and the size of the data in each storage device. The starting address of the device writing data;
    所述主控芯片向分布式存储所述存储对象的数据的所有存储设备分别发送读取请求,携带要读取的数据的当前存储地址,及存储设备向外部设备写数据的起始地址;The main control chip sends read requests to all storage devices that distribute the data of the storage object, carrying the current storage address of the data to be read, and the starting address of the storage device writing data to the external device;
    每一个存储设备的控制芯片接收到所述读取请求后,根据要读取的数据的当前存储地址从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址写数据。 After receiving the read request, the control chip of each storage device reads the data from the connected flash memory chip according to the current storage address of the data to be read, and writes the data to the corresponding starting address through the PCIe protocol. Write data.
PCT/CN2023/091887 2022-07-13 2023-04-28 Storage system, main control chip, data storage method and data reading method WO2024012015A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210828397.8A CN117435535A (en) 2022-07-13 2022-07-13 Storage system, main control chip, data storage method and data reading method
CN202210828397.8 2022-07-13

Publications (1)

Publication Number Publication Date
WO2024012015A1 true WO2024012015A1 (en) 2024-01-18

Family

ID=89535389

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/091887 WO2024012015A1 (en) 2022-07-13 2023-04-28 Storage system, main control chip, data storage method and data reading method

Country Status (2)

Country Link
CN (1) CN117435535A (en)
WO (1) WO2024012015A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052451A1 (en) * 2005-03-14 2008-02-28 Phison Electronics Corp. Flash storage chip and flash array storage system
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100125695A1 (en) * 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
CN108932203A (en) * 2017-05-29 2018-12-04 爱思开海力士有限公司 Data processing system and data processing method
CN113778333A (en) * 2021-08-25 2021-12-10 戴瑾 Combined chip, storage device and operation method for storage object
CN114237968A (en) * 2020-09-09 2022-03-25 西部数据技术公司 Identified zones for use in optimal parity-check shared zones
CN115982078A (en) * 2023-01-19 2023-04-18 北京超弦存储器研究院 CXL memory module and memory storage system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052451A1 (en) * 2005-03-14 2008-02-28 Phison Electronics Corp. Flash storage chip and flash array storage system
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100125695A1 (en) * 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
CN108932203A (en) * 2017-05-29 2018-12-04 爱思开海力士有限公司 Data processing system and data processing method
CN114237968A (en) * 2020-09-09 2022-03-25 西部数据技术公司 Identified zones for use in optimal parity-check shared zones
CN113778333A (en) * 2021-08-25 2021-12-10 戴瑾 Combined chip, storage device and operation method for storage object
CN115982078A (en) * 2023-01-19 2023-04-18 北京超弦存储器研究院 CXL memory module and memory storage system

Also Published As

Publication number Publication date
CN117435535A (en) 2024-01-23

Similar Documents

Publication Publication Date Title
EP2263155B1 (en) Direct data transfer between slave devices
US10394723B2 (en) Data accessing method and PCIe storage device
WO2016127552A1 (en) Direct memory access (dma) controller and data transmission method
US10860507B2 (en) Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
EP3077914B1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
US10599600B2 (en) Peripheral Component Interconnect Express (PCIe) switching for multi-host computing system deployments
US10146475B2 (en) Memory device performing control of discarding packet
US12019572B2 (en) Bridging module, data transmission system, and data transmission method
CN105681222A (en) Method and apparatus for data receiving and caching, and communication system
US20170024344A1 (en) Method and System for USB 2.0 Bandwidth Reservation
CN116909484B (en) Data processing method, device, equipment and computer readable storage medium
CN101599049B (en) Method for controlling discontinuous physical addresses of DMA access and DMA controller
WO2024012015A1 (en) Storage system, main control chip, data storage method and data reading method
US11960427B2 (en) Bridging module, data transmission system, and data transmission method
US9722702B2 (en) SATA host bus adapter using optical signal and method for connecting SATA storage using the same
US8898353B1 (en) System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface
CN106325377B (en) The data processing method of Principle of External Device Extension card and I/O peripheral equipment
US20230049427A1 (en) Method for external devices accessing computer memory
US7853739B1 (en) Method and system for transmitting USB communication
CN114238156A (en) Processing system and method of operating a processing system
US20120246263A1 (en) Data transfer apparatus, data transfer method, and information processing apparatus
CN117971135B (en) Storage device access method and device, storage medium and electronic device
US9104637B2 (en) System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface
JP7363344B2 (en) Memory control device and control method
US11240178B2 (en) Data transmission method and data transmission system

Legal Events

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

Ref document number: 23838513

Country of ref document: EP

Kind code of ref document: A1