CN117435535A - 一种存储***、主控芯片、数据存储方法及数据读取方法 - Google Patents
一种存储***、主控芯片、数据存储方法及数据读取方法 Download PDFInfo
- Publication number
- CN117435535A CN117435535A CN202210828397.8A CN202210828397A CN117435535A CN 117435535 A CN117435535 A CN 117435535A CN 202210828397 A CN202210828397 A CN 202210828397A CN 117435535 A CN117435535 A CN 117435535A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- control chip
- storage devices
- main control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013500 data storage Methods 0.000 title claims abstract description 25
- 238000004891 communication Methods 0.000 claims abstract description 16
- 238000012546 transfer Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000013403 standard screening design Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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
本发明实施例公开了一种存储***、主控芯片、数据存储方法及数据读取方法,存储***可以包括:主控芯片和N个存储设备,N为不低于2的整数;主控芯片与N个存储设备基于PCIe协议进行通信连接;主控芯片设置为实现数据写入和读出,数据写入包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备;数据读出包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取多个存储设备中存储对象的数据并传输到外部。本发明实施例公开的存储***、主控芯片、数据存储方法及数据读取方法,可提供最大的数据传输带宽,最短的时延。
Description
技术领域
本发明涉及但不仅限于存储技术,尤指一种存储***、主控芯片、数据存储方法及数据读取方法。
背景技术
PCI-Express(Peripheral Component Interconnect Express,简称PCIe)是一种高速串行计算机扩展总线标准,PCIe目前高速计算***普遍使用的总线,可以实现一个设备中内存的某个起始地址到另一个设备中内存的某个起始地址的高速数据传输。
目前存储设备的读写速度较慢,带宽不足,尤其是在直接支持高速计算的应用场景,不能达到PCIe通道的传输能力。
发明内容
本申请实施例提供了一种存储***,***到***的PCIe总线上,或通过CXL协议接入到***,包括:主控芯片和N个存储设备,N为不低于2的整数;
所述主控芯片与所述N个存储设备基于PCIe协议进行通信连接。
本申请实施例还提供了一种主控芯片,包括存储器和控制器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行数据存储方法和数据读写方法;
所述数据存储方法包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备,N为不低于2的整数;
所述数据读写方法包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部设备。
本申请实施例还提供了一种数据存储方法,应用于包括主控芯片和N个存储设备的存储***,N个存储设备通过PCIe协议与所述主控芯片连接,N为不低于2的整数,所述方法包括:
所述主控芯片接收到写入请求,确定是否对外部的存储对象进行分布式存储;
所述主控芯片确定对所述存储对象进行分布式存储时,将所述存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备。
本申请实施例还提供了一种数据存储方法,应用于包括主控芯片和N个存储设备的存储***,N个存储设备通过PCIe协议与所述主控芯片连接,N为不低于2的整数,所述方法包括:
所述主控芯片接收到读取请求,确定需读取的存储对象是否被分布式存储;
所述主控芯片确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部。
本申请至少一个实施例提供的存储***、主控芯片、数据存储方法及数据读取方法,与现有技术相比,具有以下有益效果:可将多个存储设备分别通过PCIe接口连接,多个存储设备形成并行连接,通过并行连接可扩大带宽,提供最大的数据传输带宽,最短的时延。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明一示例实施例提供的存储***的结构图;
图2为本发明另一示例实施例提供的存储***的结构图;
图3为本发明一示例实施例提供的数据存储方法的流程图;
图4为本发明另一示例实施例提供的数据存储方法的流程图;
图5为本发明一示例实施例提供的存储***的结构框图;
图6为本发明一示例实施例提供的主控芯片的结构框图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
图1为本发明一示例实施例提供的存储***的结构图,存储***可以***到***的PCIe总线上,或通过CXL协议接入到***,如图1所示,存储***可以包括:主控芯片11和N个存储设备12,N为不低于2的整数;主控芯片与N个存储设备基于PCIe协议进行通信连接。
本实施例中,可将多个存储设备分别通过PCIe接口连接,多个存储设备形成并行连接,通过并行连接可扩大带宽,提供最大的数据传输带宽,最短的时延。
在一示例中,存储设备可以包括固态硬盘(Solid State Drives,简称SSD),多个SSD分别通过PCIe协议与主控芯片连接。
上述并行的连接可以有效地扩大数据带宽。例如N个SSD分别与主控芯片建立P通道(Lane)的PCIe连接,主控芯片与外部采用N乘以P通道的PCIe连接,P为非负整数。进行对象存储操作时,主控芯片可以并行对N个存储设备进行读写,把每个存储设备读出来的数据块,依次转换到N乘以P通道的PCIe接口上发出去;或者从外部输入数据,依次分割后并行地在P通道的PCIe接口上写入N个存储设备。P和N可根据存储设备***到的***的PCIe总线的通道确定,其中,N乘以P小于或等于PCIe总线的通道数量。
对于每一个SSD与主控芯片建立P通道的PCIe连接,一个数据包可通过P通道的其中一个通道传输至SSD中。若SSD中有多个闪存芯片,一个通道可对应传输一个闪存芯片中的读出或写入数据。
在本发明一示例实施例中,N=4,P=4。目前,一些实施例中,SSD只支持4个PCIe通道,而PCIe总线常见16通道。
本实施例中,可提供4个SSD,每个SSD可由一个SSD控制芯片和一组闪存芯片组成。整个***可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可***到主机的PCIe总线上,或通过CXL协议接入到主机。
在本发明一示例实施例中,主控芯片设置为实现数据写入和数据读出,数据写入包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备;数据读出包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中存储对象的数据并传输到外部。
本实施例中,主控芯片通过多通道PCIe实现与多个存储设备在不同通道上的并行连接,主控芯片和存储设备紧耦合,可充分利用存储设备(比如SSD)的资源。
可通过主控芯片与并行连接的多个存储设备进行配合,主控芯片负责数据转运并分布式管理存储***,把大的存储对象分割开,分别存入到不同的存储设备中,便于并行的数据读写。
在一示例中,主控芯片在存储对象的数据尺寸大于尺寸阈值时,确定对外部的存储对象进行分布式存储。主控芯片对于数据尺寸超过设定阈值的存储对象实行分布式存储。
本发明实施例提供的存储***,可将多个存储设备分别通过具有多通道的PCIe接口连接,多个存储设备形成并行连接,通过并行连接可扩大带宽,降低时延。
在本发明一示例实施例中,每个存储设备可以包括:SSD控制芯片和K个闪存芯片,K大于或等于1;每一个SSD控制芯片连接在所述PCIe的K个通道上,每一个通道对应传输一个闪存芯片中的读出或写入数据,1≤K≤P。
本实施例中,存储设备可以包括固态硬盘(Solid State Drives,简称SSD),SSD可以包括:SSD控制芯片和闪存芯片,每个SSD控制芯片可通过PCIe协议与主控芯片连接,可通过每一个SSD与主控芯片建立的P通道中的一个通道对应传输一个闪存芯片中的读出或写入数据。
图2为本发明另一示例实施例提供的存储***的结构图,如图2所示,主控芯片可以包括CPU内核111、内部存储器112和可编程逻辑器件113,可编程逻辑器件设置为实现存储设备与外部设备之间的数据转运;内部存储器存储有分布式存储管理程序,CPU内核运行分布式存储管理程序以实现数据写入和读出。
本实施例中,主控芯片的一个实施方式可以是用FGPA实现,分布式存储***可由FPGA内置的CPU核的软件与可编程硬件共同实现,PCIe的数据转运可通过可编程逻辑器件实现。
在本发明一示例实施例中,外部设备可以包括本地主机的CPU或远程主机的CPU,主控芯片可以包括外部通信接口;主控芯片可通过外部通信接口与计算机***(比如主机)进行外部通信。
在一示例中,外部通信接口可以包括:PCIe总线接口,PCIe总线接口配置为通过PCIe总线与本地主机的CPU进行通信。
如图2所示,多个存储设备(比如SSD)通过PCIe协议与主控芯片连接,整个***可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可通过主控芯片的PCIe总线接口***PCIe总线上,连接到本地主机。
在一示例中,外部通信接口可以包括:CXL总线接口,CXL总线接口配置为通过CXL总线与本地主机的CPU进行通信。
如图2所示,多个存储设备(比如SSD)通过PCIe协议与主控芯片连接,整个***可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可通过主控芯片的CXL总线接口***CXL总线上,连接到本地主机。
在一示例中,外部通信接口可以包括:网络接口,网络接口配置为通过网络与远程主机的CPU进行通信。
多个存储设备(比如SSD)通过PCIe协议与主控芯片连接,整个***可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可通过主控芯片的网络接口接入网络,连接到远程主机。
在本发明一示例实施例中,主控芯片和多个存储设备之间可使用PCIe Gen5协议,读写带宽可以超过接在双倍速率(Double Data Rate,简称DDR)总线上的动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)。
图3为本发明一示例实施例提供的数据存储方法的流程图,数据存储方法的执行主体为任一实施例所示的存储***,数据存储方法可应用于包括主控芯片和N个存储设备的存储***,N个存储设备通过PCIe协议与主控芯片连接,N为不低于2的整数。如图3所示,数据存储方法可以包括:
S301:主控芯片接收到写入请求,确定是否对外部的存储对象进行分布式存储。
本实施例中,可通过主控芯片与多个存储设备配合,通过主控芯片实现向存储设备中并行写入外部的存储对象。
在一示例中,写入请求可以携带存储对象的数据尺寸;确定是否对外部的存储对象进行分布式存储,包括:在存储对象的数据尺寸大于尺寸阈值时,确定对存储对象进行分布式存储。
请求方(比如计算机***的主机)向存储***发送写入请求,写入请求信息可以携带对象名称、数据尺寸、现存数据的起始地址等。主控芯片对于尺寸超过设定阈值的存储对象实行分布式存储。
S302:主控芯片确定对存储对象进行分布式存储时,将存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备。
主控芯片确定需对存储对象进行分布式存储时,将存储对象的数据分割开,分别存入到不同的存储设备中,便于并行的数据读写。
在本发明一示例实施例中,将存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备,可以包括:
将存储对象分割成M个数据包,M≥N,并且M远远大于N;将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,其中,M个数据包中的每N个数据包并行存储在N个存储设备中,一个数据包一次对应存储到一个存储设备中。
在数据包的数量M不是N的整数倍时,将M除以N剩余的数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。
在数据包的数量M<N时,将个数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。
安排分布式存储时,对于主控芯片PCIe接口上连接的多个存储设备(比如SSD),主控芯片把连续多个数据包分配给多个存储设备,每一个数据包对应分配给一个存储设备。
在一示例中,预设顺序可根据经验值而定,预设顺序可以为数据包的存储地址的大小顺序,或者,预设顺序可以为存储设备的编号大小顺序。
在本发明一示例实施例中,写入请求还可以携带存储对象的名称和存储对象的数据的当前存储地址,存储设备可以包括控制芯片和与控制芯片连接的闪存芯片。将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,可以包括:
主控芯片根据存储对象的当前存储地址确定分割成的M个数据包的大小,确定M个存储设备取数据的起始地址;主控芯片按预设顺序轮流向N个存储设备的控制芯片分别发送写入请求,携带所发送到的存储设备取数据的起始地址和要取出的数据包的大小;每一个存储设备的控制芯片通过PCIe协议从相应的取数据的起始地址上取数据并写入到所连接的闪存芯片中。
主控芯片将存储对象的数据进行分割形成多个数据包,以及为每一个数据包分配一个对应的存储设备后,主控芯片向多个存储设备发送写入请求,写入请求中可以携带每一个存储设备取数据的起始地址。每个存储设备将通过PCIe协议在相应地址上取数据,写入闪存。重复上述步骤直到所有数据完成写入。
图4为本发明另一示例实施例提供的数据存储方法的流程图,数据存储方法的执行主体为任一实施例所示的存储***,数据存储方法可应用于包括主控芯片和N个存储设备的存储***,N个存储设备通过PCIe协议与主控芯片连接,N为不低于2的整数。如图4所示,数据存储方法可以包括:
S401:主控芯片接收到读取请求,确定需读取的存储对象是否被分布式存储。
本实施例中,可通过主控芯片与多个存储设备配合,通过主控芯片实现从多个存储设备中并行读取存储对象的数据。
S402:主控芯片确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中存储对象的数据并传输到外部。
主控芯片确定需从存储设备读出存储对象时,先确定需要读取的存储对象是否被分布式存储,如果存储对象被分布式存储,主控芯片向所有存储该存储对象的存储设备发出读取请求,从所有存储该存储对象的存储设备中并行读取相应数据,便于并行的数据读出。
在本发明一示例实施例中,读取请求可以携带存储对象的名称,以及用于接收读取出的存储对象的数据的接收地址,存储设备可以包括控制芯片和与控制芯片连接的闪存芯片。并行读取N个存储设备中或N个中的部分存储设备中存储对象的数据并传输到外部,可以包括:
主控芯片根据存储对象的名称确定出分布式存储存储对象的所有存储设备,根据接收地址和每一个存储设备中数据包的大小,确定每一个存储设备向外部写数据的起始地址;主控芯片向分布式存储存储对象的所有存储设备分别发送读取请求,携带所发送到的存储设备向外部写数据的起始地址;每一个存储设备的控制芯片从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址上写数据。
请求方(比如外部的主机)向存储***发送读取请求(或读出请求),读取请求可以携带对象名称、用于接收数据的起始内存地址等。
如果存储对象被分布式存储,主控芯片向所有存储该对象的存储设备(比如SSD)发出读取请求,计算每一个存储设备对应的接收数据的起始地址,把每一个存储设备对应的接收数据的起始地址包括在读取请求中。每个存储设备将从闪存中读出数据并把读出的数据送到相应的地址,重复上述步骤直到完成所有数据读出。
图5为本发明一示例实施例提供的计算机***的结构框图,如图5所示,计算机***可以包括:主机51、总线52和存储***53,存储***采用任一实施例所示的存储***,总线可以为PCIe总线或CXL总线。
多个存储设备(比如SSD控制芯片)通过PCIe协议与主控芯片连接,整个***可以部署在一张主板上组成高带宽SSD。组成的高带宽SSD可***到主机的PCIe总线上,或通过CXL协议接入到主机。
图6为本发明一示例实施例提供的主控芯片的结构框图,如图6所示,主控芯片包括存储器61和控制器62。
存储器用于存储执行指令,处理器可以是一个中央处理器(Central ProcessingUnit,简称CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称ASIC),或者完成实施本发明实施例的一个或多个集成电路。当主控芯片运行时,处理器与存储器之间通信,处理器调用执行指令,用于执行数据存储方法和数据读写方法;
所述数据存储方法包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备,N为不低于2的整数;
所述数据读写方法包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部设备。
在本发明一示例实施例中,所述写入请求携带所述存储对象的数据尺寸;
所述确定是否对外部的存储对象进行分布式存储,包括:所述主控芯片在所述存储对象的数据尺寸大于尺寸阈值时,确定对所述存储对象进行分布式存储。
在本发明一示例实施例中,所述主控芯片将所述存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备,包括:
将所述存储对象分割成M个数据包,M≥N;将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,其中,M个数据包中的每N个数据包并行存储在N个存储设备中,一个数据包一次对应存储到一个存储设备中;
在数据包的数量M不是N的整数倍时,将M除以N剩余的数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。
在本发明一示例实施例中,所述写入请求还携带所述存储对象的名称和所述存储对象的数据的当前存储地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;
所述将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,包括:
所述主控芯片根据所述存储对象的当前存储地址确定分割成的所述M个数据包的大小,确定所述M个存储设备取数据的起始地址;
所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带所发送到的存储设备取数据的起始地址和要取出的数据包的大小;
每一个存储设备的控制芯片通过PCIe协议从相应的取数据的起始地址上取数据并写入到所连接的闪存芯片中。
在本发明一示例实施例中,所述读取请求携带所述存储对象的名称,以及用于接收读取出的存储对象的数据的接收地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;
所述并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部,包括:
所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的所有存储设备,根据所述接收地址和每一个存储设备中数据包的大小,确定每一个存储设备向外部写数据的起始地址;
所述主控芯片向分布式存储所述存储对象的所有存储设备分别发送读取请求,携带所发送到的存储设备向外部写数据的起始地址;
每一个存储设备的控制芯片从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址上写数据。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (17)
1.一种存储***,***到***的PCIe总线上,或通过CXL协议接入到***,其特征在于,包括主控芯片和N个存储设备,N为不低于2的整数;
所述主控芯片与所述N个存储设备基于PCIe协议进行通信连接。
2.根据权利要求1所述的存储***,其特征在于,所述主控芯片设置为实现数据写入和数据读出;
所述数据写入包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备;所述数据读出包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部设备。
3.根据权利要求2所述的存储***,其特征在于,
所述外部设备包括本地主机的CPU或远程主机的CPU;
所述主控芯片包括外部通信接口;
所述外部通信接口包括:PCIe总线接口,所述PCIe总线接口配置为通过PCIe总线与本地主机的CPU进行通信;
或者,
所述外部通信接口包括:CXL总线接口,所述CXL总线接口配置为通过CXL总线与本地主机的CPU进行通信;
或者,
所述外部通信接口包括:网络接口,所述网络接口配置为通过网络与远程主机的CPU进行通信。
4.根据权利要求2所述的存储***,其特征在于,所述主控芯片在所述存储对象的数据尺寸大于尺寸阈值时,确定对外部的存储对象进行分布式存储。
5.根据权利要求4所述的存储***,其特征在于,每个所述存储设备包括:SSD控制芯片和K个闪存芯片,K大于或等于1;
每一个SSD控制芯片连接在所述PCIe的K个通道上,每一个通道对应传输一个闪存芯片中的读出或写入数据。
6.根据权利要求1-5任一项所述的存储***,其特征在于,所述主控芯片包括CPU内核、内部存储器和可编程逻辑器件,所述可编程逻辑器件设置为实现所述存储设备与外部设备之间的数据转运;所述内部存储器存储有分布式存储管理程序,所述CPU内核运行所述分布式存储管理程序以实现所述数据写入和读出。
7.一种主控芯片,其特征在于,包括存储器和控制器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行数据存储方法和数据读写方法;
所述数据存储方法包括:接收到写入请求且确定对外部的存储对象进行分布式存储时,将所述存储对象的数据分割后分别并行存入到N个存储设备中或N个中的部分存储设备,N为不低于2的整数;
所述数据读写方法包括:接收到读取请求且确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部设备。
8.根据权利要求7所述的主控芯片,其特征在于,所述写入请求携带所述存储对象的数据尺寸;
所述确定是否对外部的存储对象进行分布式存储,包括:所述主控芯片在所述存储对象的数据尺寸大于尺寸阈值时,确定对所述存储对象进行分布式存储。
9.根据权利要求7所述的主控芯片,其特征在于,所述主控芯片将所述存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备,包括:
将所述存储对象分割成M个数据包,M≥N;将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,其中,M个数据包中的每N个数据包并行存储在N个存储设备中,一个数据包一次对应存储到一个存储设备中;
在数据包的数量M不是N的整数倍时,将M除以N剩余的数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。
10.根据权利要求9所述的主控芯片,其特征在于,所述写入请求还携带所述存储对象的名称和所述存储对象的数据的当前存储地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;
所述将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,包括:
所述主控芯片根据所述存储对象的当前存储地址确定分割成的所述M个数据包的大小,确定所述M个存储设备取数据的起始地址;
所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带所发送到的存储设备取数据的起始地址和要取出的数据包的大小;
每一个存储设备的控制芯片通过PCIe协议从相应的取数据的起始地址上取数据并写入到所连接的闪存芯片中。
11.根据权利要求7所述的主控芯片,其特征在于,所述读取请求携带所述存储对象的名称,以及用于接收读取出的存储对象的数据的接收地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;
所述并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部,包括:
所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的所有存储设备,根据所述接收地址和每一个存储设备中数据包的大小,确定每一个存储设备向外部写数据的起始地址;
所述主控芯片向分布式存储所述存储对象的所有存储设备分别发送读取请求,携带所发送到的存储设备向外部写数据的起始地址;
每一个存储设备的控制芯片从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址上写数据。
12.一种数据存储方法,其特征在于,应用于包括主控芯片和N个存储设备的存储***,N个存储设备通过PCIe协议与所述主控芯片连接,N为不低于2的整数,所述方法包括:
所述主控芯片接收到写入请求,确定是否对外部的存储对象进行分布式存储;
所述主控芯片确定对所述存储对象进行分布式存储时,将所述存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备。
13.根据权利要求12所述的方法,其特征在于,所述写入请求携带所述存储对象的数据尺寸;
所述确定是否对外部的存储对象进行分布式存储,包括:所述主控芯片在所述存储对象的数据尺寸大于尺寸阈值时,确定对所述存储对象进行分布式存储。
14.根据权利要求12所述的方法,其特征在于,所述主控芯片将所述存储对象的数据分割后并行存入到N个存储设备中或N个中的部分存储设备,包括:
将所述存储对象分割成M个数据包,M≥N;将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,其中,M个数据包中的每N个数据包并行存储在N个存储设备中,一个数据包一次对应存储到一个存储设备中;
在数据包的数量M不是N的整数倍时,将M除以N剩余的数据包分别并行存储到N个中的部分存储设备,一个数据包一次对应存储到一个存储设备中。
15.根据权利要求14所述的方法,其特征在于,所述写入请求还携带所述存储对象的名称和所述存储对象的数据的当前存储地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;
所述将M个数据包以N个数据包为单位按预设顺序轮流存储到N个存储设备,包括:
所述主控芯片根据所述存储对象的当前存储地址确定分割成的所述M个数据包的大小,确定所述M个存储设备取数据的起始地址;
所述主控芯片按预设顺序轮流向所述N个存储设备的控制芯片分别发送写入请求,携带所发送到的存储设备取数据的起始地址和要取出的数据包的大小;
每一个存储设备的控制芯片通过PCIe协议从相应的取数据的起始地址上取数据并写入到所连接的闪存芯片中。
16.一种数据读取方法,其特征在于,应用于包括主控芯片和N个存储设备的存储***,N个存储设备通过PCIe协议与所述主控芯片连接,N为不低于2的整数,所述方法包括:
所述主控芯片接收到读取请求,确定需读取的存储对象是否被分布式存储;
所述主控芯片确定需读取的存储对象被分布式存储时,并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部。
17.根据权利要求16所述的方法,其特征在于,所述读取请求携带所述存储对象的名称,以及用于接收读取出的存储对象的数据的接收地址,所述存储设备包括控制芯片和与所述控制芯片连接的闪存芯片;
所述并行读取N个存储设备中或N个中的部分存储设备中所述存储对象的数据并传输到外部,包括:
所述主控芯片根据所述存储对象的名称确定出分布式存储所述存储对象的所有存储设备,根据所述接收地址和每一个存储设备中数据包的大小,确定每一个存储设备向外部写数据的起始地址;
所述主控芯片向分布式存储所述存储对象的所有存储设备分别发送读取请求,携带所发送到的存储设备向外部写数据的起始地址;
每一个存储设备的控制芯片从所连接的闪存芯片中读取数据,并通过PCIe协议向相应的写数据的起始地址上写数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210828397.8A CN117435535A (zh) | 2022-07-13 | 2022-07-13 | 一种存储***、主控芯片、数据存储方法及数据读取方法 |
PCT/CN2023/091887 WO2024012015A1 (zh) | 2022-07-13 | 2023-04-28 | 一种存储***、主控芯片、数据存储方法及数据读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210828397.8A CN117435535A (zh) | 2022-07-13 | 2022-07-13 | 一种存储***、主控芯片、数据存储方法及数据读取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117435535A true CN117435535A (zh) | 2024-01-23 |
Family
ID=89535389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210828397.8A Pending CN117435535A (zh) | 2022-07-13 | 2022-07-13 | 一种存储***、主控芯片、数据存储方法及数据读取方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117435535A (zh) |
WO (1) | WO2024012015A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7822912B2 (en) * | 2005-03-14 | 2010-10-26 | Phision Electronics Corp. | Flash storage chip and flash array storage system |
US20100125695A1 (en) * | 2008-11-15 | 2010-05-20 | Nanostar Corporation | Non-volatile memory storage system |
US20100017650A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
KR20180130140A (ko) * | 2017-05-29 | 2018-12-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 방법 |
US11442646B2 (en) * | 2020-09-09 | 2022-09-13 | Western Digital Technologies Inc. | Identified zones for optimal parity sharing zones |
CN113778333A (zh) * | 2021-08-25 | 2021-12-10 | 戴瑾 | 组合芯片、存储设备和对存储对象的操作方法 |
CN115982078A (zh) * | 2023-01-19 | 2023-04-18 | 北京超弦存储器研究院 | 一种cxl内存模组及内存存储*** |
-
2022
- 2022-07-13 CN CN202210828397.8A patent/CN117435535A/zh active Pending
-
2023
- 2023-04-28 WO PCT/CN2023/091887 patent/WO2024012015A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024012015A1 (zh) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7287101B2 (en) | Direct memory access using memory descriptor list | |
CN110083461B (zh) | 一种基于fpga的多任务处理***及方法 | |
US20110296129A1 (en) | Data transfer device and method of controlling the same | |
EP3470971B1 (en) | Method, apparatus, and system for accessing memory device | |
CN113051195A (zh) | 存储器、gpu及电子设备 | |
US7484030B2 (en) | Storage controller and methods for using the same | |
CN113590512A (zh) | 可直连外设设备的自启动dma装置及应用 | |
CN114461541A (zh) | 芯片数据读取方法、写入方法、装置、设备以及存储介质 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
US7409486B2 (en) | Storage system, and storage control method | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
US9146693B2 (en) | Storage control device, storage system, and storage control method | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
CN101599049B (zh) | 控制dma访问不连续物理地址的方法及dma控制器 | |
CN116414743A (zh) | 用于控制存储器的方法、存储器控制器及芯片 | |
CN117435535A (zh) | 一种存储***、主控芯片、数据存储方法及数据读取方法 | |
US7451254B2 (en) | System and method for adaptive buffer allocation in a memory device interface | |
WO2021093249A1 (zh) | 外部设备访问计算机内存的方法 | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN114238156A (zh) | 处理***以及操作处理***的方法 | |
KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN116909484B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |