CN109799952B - 与外部设备执行对等通信而无需主机干预的存储设备 - Google Patents
与外部设备执行对等通信而无需主机干预的存储设备 Download PDFInfo
- Publication number
- CN109799952B CN109799952B CN201811366495.4A CN201811366495A CN109799952B CN 109799952 B CN109799952 B CN 109799952B CN 201811366495 A CN201811366495 A CN 201811366495A CN 109799952 B CN109799952 B CN 109799952B
- Authority
- CN
- China
- Prior art keywords
- storage device
- port
- data
- interface circuit
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006854 communication Effects 0.000 title claims description 34
- 238000004891 communication Methods 0.000 title claims description 34
- 230000015654 memory Effects 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 35
- 230000009977 dual effect Effects 0.000 claims description 14
- 239000007787 solid Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 22
- 230000004044 response Effects 0.000 description 16
- 238000000034 method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000003936 working memory Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 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/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种存储设备。所述存储设备包括:现场可编程门阵列FPGA板,连接至所述存储设备的第一端口;以及存储控制器,包括第一接口电路和第二接口电路。所述第一接口电路连接至所述FPGA板,所述第二接口电路连接至所述存储设备的第二端口,所述第一端口和所述第二端口中的至少一个端口被配置为连接至外部存储设备,并且所述FPGA板被配置为提供用于以对等的方式在所述存储控制器与所述外部存储设备之间传送数据而无需主机干预的路径。
Description
相关申请的交叉引用
本申请要求于2017年11月17日在韩国知识产权局提交的韩国专利申请号10-2017-0154281和于2018年7月9日在韩国知识产权局提交的韩国专利申请号10-2018-0079419的优先权,上述韩国专利申请的公开通过引用以其全部内容结合在此。
技术领域
与示例实施例一致的方法和装置涉及一种电子设备,并且更具体地涉及存储及输出数据的存储设备的操作和配置。
背景技术
电子设备根据所述电子设备中包括的电子电路的操作来执行其自身功能。所述电子设备可以在独自操作时执行其自身功能。在一些情况下,所述电子设备可以在与其他电子设备进行通信时执行其自身功能。
存储设备是电子设备的示例。所述存储设备可以根据对包括在所述存储设备中的部件的操作来存储和输出数据,并且因此可以向用户提供存储服务。所述存储设备可以独自管理数据,或者可以在与其他电子设备进行通信时管理数据。
近年来,所分发信息的量和类型急剧增加,并且存储设备的容量也在增加以便管理大量数据。此外,为了存储更大量的数据,可以一起采用多个存储设备来管理单个电子系统的数据。所述多个存储设备可以在彼此通信时存储和输出数据,并且可以提供存储更大量数据的能力。
然而,随着每个存储设备的性能提高,在多个存储设备中管理的过多数据量变得更高,导致用于管理所述存储设备和数据的负载增加。具体地,当主机系统完全负责管理存储设备和数据时,主机系统的工作负载可能变得更重。
发明内容
本公开可以提供被配置为执行与其他存储设备的对等通信而无需主机干预的存储设备。
在一些示例实施例中,存储设备包括:现场可编程门阵列(FPGA)板,连接至所述存储设备的第一端口;以及存储控制器,包括第一接口电路和第二接口电路,所述第一接口电路连接至所述FPGA板,所述第二接口电路连接至所述存储设备的第二端口。所述第一端口和所述第二端口中的至少一个端口被配置为连接至外部存储设备,并且所述FPGA板被配置为提供用于以对等的方式在所述存储控制器与所述外部存储设备之间传送数据而无需主机干预的路径。
在一些示例实施例中,存储设备包括:存储控制器,所述存储控制器包括第一接口电路和第二接口电路,所述第一接口电路连接至所述存储设备的第一端口,并且所述第二接口电路连接至所述存储设备的第二端口;以及存储器设备。所述第一接口电路被配置为基于所述第一端口是否连接至外部设备以及连接至所述第一端口的所述外部设备的类型来在多种操作模式下进行操作,并且所述存储控制器被配置为以对等的方式与连接至所述第一端口的外部存储设备交换数据而无需主机干预。
在一些示例实施例中,存储设备包括:存储控制器,介于在所述存储设备的第一端口与所述存储设备的第二端口之间;操作逻辑电路,被配置为通过基于从所述存储控制器或所述第二端口接收的数据来执行处理操作从而生成已处理数据。所述存储设备被配置为,当所述第一端口连接至外部存储设备时,通过所述第一端口向所述外部存储设备输出所述已处理数据而无需主机干预。
在一些示例实施例中,存储设备包括:存储控制器,介于在所述存储设备的第一端口与所述存储设备的第二端口之间;以及存储器设备。所述存储设备被配置为,当所述第一端口连接至外部存储设备时,通过所述第一端口向所述外部存储设备输出第一数据而无需主机干预,所述第一数据是基于存储在所述存储器设备中的第二数据以及通过所述第二端口接收的第三数据中的至少一者生成的。
在一些示例实施例中,存储系统包括:第一存储设备,所述第一存储设备包括第一端口和第二端口;以及第二存储设备,所述第二存储设备包括第三端口。所述第二端口连接至所述第三端口,并且所述第一存储设备被配置为通过所述第二端口和所述第三端口与所述第二存储设备进行通信而无需主机干预。所述第一存储设备被配置为:基于通过所述第一端口接收的第二数据以及存储在所述第一存储设备中的第三数据中的至少一者,通过所述第二端口来输出第一数据。所述第二存储设备被配置为:基于来自通过所述第三端口接收的所述第一数据以及存储在所述第二存储设备中的第五数据中的至少一者来生成第四数据。基于所述第四数据,与所述主机的请求相对应的操作结果被提供至所述主机。
根据示例实施例,多个存储设备可以执行对等通信而无需主机干预。因此,即使当数据量增加并且每个存储设备的性能增加时,所述主机在管理所述存储设备和数据时的负载也会明显减少。这可以降低整个电子系统的设计成本和管理成本。
附图说明
通过结合附图进行的以下详细描述,上述和其他方面、特征和优势将会变得明显,在附图中:
图1是展示了根据一些示例实施例的电子系统的示例配置的框图。
图2是展示了与图1的存储设备相关联的示例实施方式的概念图。
图3和图4是展示了与图1的电子系统相关联的示例配置的框图。
图5是展示了与图1的存储设备相关联的示例配置框图。
图6至图10是用于描述与图5的存储设备相关联的示例操作的框图。
图11和图12是展示了与图5的存储设备相关联的示例配置的框图。
图13和图14是展示了与图1的存储设备相关联的示例配置的框图。
图15是展示了与图1的存储设备相关联的示例配置的框图。
图16和图17是描述了图15的可变接口电路的示例操作的流程图。
图18是展示了与图1的存储设备相关联的示例配置的框图。
图19是展示了与图1的电子系统相关联的示例实施方案的概念图。
具体实施方式
图1是展示了根据一些示例实施例的电子系统1000的示例配置的框图。
电子系统1000可以包括主处理器1101、工作存储器1200、存储系统1300、通信块1400、用户接口1500、和总线1600。例如,电子系统1000可以是诸如台式计算机、膝上计算机、平板计算机、智能电话、可穿戴设备、视频游戏控制台、工作站、一个或多个服务器、电动车辆、家用器具、医疗设备等电子设备中的一者。
主处理器1101可以控制电子系统1000的整体操作。例如,主处理器1101可以在包括一个或多个处理器核的通用处理器、专用处理器、或应用处理器中实施。
工作存储器1200可以存储在电子系统1000的操作中使用的数据。例如,工作存储器1200可以临时存储已处理的或待由主处理器1101进行处理的数据。例如,工作存储器1200可以包括诸如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态RAM(DRAM)、或同步DRAM(SDRAM)等易失性存储器,和/或诸如相变RAM(PRAM)、磁阻式RAM(MRAM)、电阻型RAM(ReRAM)、或铁电RAM(FRAM)等的非易失性存储器。
存储系统1300可以包括一个或多个存储设备。例如,存储系统1300可以包括存储设备(storage device)1300a、1300b和1300c。图1展示了三个存储设备1300a、1300b和1300c,但是包括在存储系统1300中的存储设备的数量可以被进行各种改变或修改以适用于电子系统1000的需求。
无论是否供应电力,存储设备1300a、1300b和1300c中的每一个都可以存储数据。例如,存储设备1300a、1300b和1300c中的每一个都可以包括诸如闪存、PRAM、MRAM、ReRAM、FRAM等非易失性存储器。例如,存储设备1300a、1300b和1300c中的每一个都可以包括诸如固态驱动器(SSD)、卡存储或嵌入式存储等存储介质。
通信块1400可以支持各种无线/有线通信协议中的至少一种以与电子系统1000的外部设备/系统进行通信。用户接口1500可以包括各种输入/输出接口以在用户与电子系统1000之间的通信中进行仲裁。
总线1600可以在电子系统1000的多个部件之间提供通信路径。电子系统1000的多个部件可以按照总线1600的总线格式彼此交换数据。例如,总线格式可以包括诸如通用串行总线(USB)、小型计算机系统接口(SCSI)、高速外围部件互联(PCIe)、串行高级技术附件(SATA)、串行附接SCSI(SAS)、高速非易失性存储器(NVMe)、通用闪存(UFS)、双倍数据速率(DDR)、低功率DDR(LPDDR)等各种接口协议中的一项或多项。
以下,将描述与PCIe协议相关联的示例配置以及与存储设备1300a、1300b和1300c相关联的示例实施例。然而,可以对本公开的示例实施例进行各种改变或修改以便应用于除PCIe协议外的接口协议。此外,可以在能够存储和输出数据的任何电子设备(例如,工作存储器1200)以及存储设备1300a、1300b和1300c中采用本公开的示例实施例。以下描述被提供用于促进更好的理解,并且不意图限制本公开。
图2是展示了与图1的存储设备1300a相关联的示例实施方案的概念图。
在一些示例实施例中,存储设备1300a可以包括印刷电路板(PCB)1307a。存储设备1300a可以包括安装或装配在PCB 1307a上的一个或多个芯片或封装体。例如,存储器设备(memory device)1310a和存储控制器1330a可以被安装或装配在PCB 1307a上。
存储控制器1330a可以控制和管理存储设备1300a的整体操作。为此,存储控制器1330a可以包括被配置用于执行预期操作的硬件电路(例如,模拟电路、逻辑电路等)。另外地或替代地,存储控制器1330a可以包括被配置为运行用于执行预期操作的程序代码的指令集的一个或多个处理器核。
存储器设备1310a可以包括一种或多种类型的存储器。存储器设备1310a可以在存储控制器1330a的控制下存储或输出数据。例如,存储器设备1310a可以通过印刷在PCB1307a上的导电图案来与存储控制器1330a进行通信。
在一些示例实施例中,存储设备1300a可以被配置用于通过双端口来与存储设备1300a外部的其他设备进行通信。例如,存储设备1300a的双端口可以包括第一端口和第二端口,并且存储设备1300a可以通过所述第一端口和所述第二端口从另一设备接收数据或向另一设备输出数据。例如,当存储设备1300a为SSD时,存储设备1300a可以被称为双端口SSD。
例如,存储设备1300a可以包括与所述双端口相对应的连接器1390a和1395a。连接器1390a和1395a可以包括由导电材料形成的管脚或图案1391a和1396a。例如,连接器1390a和1395a中的每一个可以直接地或间接地(例如,通过导线、线缆等)连接至另一设备。在这种情况下,存储设备1300a可以通过所述管脚或图案1391a和1396a与其他设备交换数据。
例如,连接器1390a和管脚或图案1391a可以与第一端口相对应,并且连接器1395a和管脚或图案1396a可以与第二端口相对应。例如,存储控制器1330a可以通过印刷在PCB1307a上的导电图案来连接至管脚或图案1391a和1396a。因此,存储控制器1330a可以通过第一端口和第二端口输出或接收数据。
第一端口和第二端口可以提供独立的通信。例如,通过第一端口来输出或接收数据的操作可以独立于通过第二端口来输出或接收数据的操作。
存储设备1300a的配置(例如,存储器设备1310a的数量、存储器设备1310a与存储控制器1330a的安排、连接器1390a和1395a的位置和形状、管脚或图案1391a和1396a的位置和形状等)可以被各种改变或修改成不同于图2中展示的配置。图2的示例实施例被提供用于促进更好的理解,并且不意图限制本公开。存储设备1300b和1300c、存储系统1300的其他存储设备可以被配置成与存储设备1300a完全相同或类似。
图3是展示了图1的电子系统1000的示例配置1000a的框图。
配置1000a可以包括主处理器1101、根复合体(root complex)1003、交换器1005、工作存储器1200、以及存储设备1300a和1300b。
根复合体1003可以管理电子系统1000的多个部件之间的数据流。例如,根复合体1003可以控制数据路径,可以调度数据传送,或者可以解决通信冲突。例如,主处理器1101、工作存储器1200、以及存储设备1300a和1300b可以连接至根复合体1003,并且可以在彼此进行通信时通过根复合体1003彼此交换数据。
在一些情况下,交换器1005可以进一步连接至根复合体1003,并且存储设备1300a和1300b可以通过交换器1005连接至根复合体1003。例如,交换器1005可以包括PCIe交换器或其他类型的交换器。交换器1005可以控制根复合体1003与存储设备1300a和1300b之间的数据路径。根复合体1003和交换器1005可以在硬件电路中实施,以进行数据控制和数据传送。
在一些示例中,存储设备1300a可以通过双端口连接至交换器1005。例如,存储设备1300a的第一端口可以在存储设备1300a与交换器1005之间提供数据路径P11,并且存储设备1300a的第二端口可以在存储设备1300a与交换器1005之间提供数据路径P12。同样,存储设备1300b也可以通过双端口连接至交换器1005。另外,存储设备1300c也可以通过双端口连接至交换器1005。
主处理器1101可以通过根复合体1003和交换器1005与存储设备1300a和1300b进行通信。在本公开中,能够访问电子系统1000的部件(诸如存储设备1300a和1300b)的对象可以被称为“主机(host)”。主处理器1101可以是能够作为主机进行操作的对象的示例。然而,本公开并不限于此。
当存储设备1300a和1300b中的每一个通过双端口与主处理器1101进行通信时,可以提高可靠性。例如,即使当存储设备1300a的一个端口出现故障或被禁用时,存储设备1300a的另一个端口也可以支持通信。
在图3的示例中,存储设备1300a和1300b可以通过交换器1005以对等的方式彼此进行通信。在这种情况下,主机(例如,主处理器1101)可以干预存储设备1300a与1300b之间的通信。
例如,当通过交换器1005将数据从存储设备1300a传输到存储设备1300b时,主处理器1101可以干预对对指向存储设备1300b的数据路径的控制并且干预对存储器地址的映射。为此,主处理器1101可以干预对在存储设备1300a与1300b之间进行交换的数据的处理。
同时,当存储设备1300a和1300b中的每一个的容量较大时,可以在存储设备1300a与1300b之间交换大量数据。另外,存储设备1300a和1300b中的每一个的性能可以很高以管理所述大量数据。在这种情况下,当主机干预对在存储设备1300a与1300b之间进行交换的数据的处理时,主机的工作负载可能变重。
图4是展示了与图1的电子系统1000相关联的示例配置1000b的框图。
配置1000b可以包括主处理器1101、根复合体1003、交换器1005、工作存储器1200、以及存储设备1300a和1300b。
在配置1000b中,存储设备1300a的第一端口和第二端口两者都未连接至交换器1005。相反,存储设备1300a的第一端口可以连接至存储设备1300b,并且存储设备1300a的第二端口可以连接至交换器1005。
例如,存储设备1300a的第二端口可以在存储设备1300a与交换器1005之间提供数据路径P21,并且存储设备1300a的第一端口可以在存储设备1300a与1300b之间提供数据路径P22。存储设备1300a可以通过数据路径P21、交换器1005和根复合体1003来与主处理器1101进行通信。
同样,存储设备1300b的双端口中的一个端口可以连接至存储设备1300a。存储设备1300a可以通过数据路径P22以对等的方式与存储设备1300b进行通信。另外,存储设备1300c还可以通过所述双端口中的一个端口连接至存储设备1300a或1300b,以进行对等通信。
存储设备1300b的双端口中的另一个端口可以连接至交换器1005或者可以不连接至交换器1005。当存储设备1300b未连接至交换器1005时,存储设备1300b可以通过存储设备1300a来与主处理器1101进行通信。当存储设备1300b连接至交换器1005时,存储设备1300b可以通过交换器1005来与主处理器1101进行通信。
在配置1000b中,存储设备1300a与1300b之间的通信中可能不需要交换器1005。在存储设备1300a与1300b之间进行交换的数据可以由存储设备1300a和/或存储设备1300b来处理。主机(例如,主处理器1101)可以完全不干预对在存储设备1300a与1300b之间进行交换的数据的处理(或者可以最低限度地干预对所述数据的处理)。
由配置1000a中的主机执行的数据处理操作中的所有或一些操作可以由配置1000b中的存储设备1300a和1300b来执行。因此,在配置1000b中,即使当在存储设备1300a与1300b之间进行交换的数据量增加并且存储设备1300a和1300b的性能变高时,主机的工作负载也可能明显减少。这可以降低整个电子系统1000的设计成本和管理成本。
图4展示了存储设备1300a被连接至交换器1005。在一些示例实施例中,存储设备1300a可以在不存在交换器1005的情况下连接至根复合体1003。电子系统1000可以被各种改变或修改成不同于配置1000b。
图5是展示了与图1的存储设备1300a、1300b和1300c相关联的示例配置的框图。
在一些示例实施例中,存储设备1300a、1300b和1300c可以分别包括存储设备1301a、1301b和1301c。与参照图4所描述的相类似,存储设备1301a、1301b和1301c可以在不存在根复合体1003或交换器1005的情况下连接至彼此,以便以对等的方式进行通信。为此,存储设备1301a、1301b和1301c中的每一个可以在双端口结构中实施。
图5展示了存储设备1301a和1301c被直接连接至主处理器1101。然而,在一些示例实施例中,根复合体1003和/或交换器1005可以被提供在存储设备1301a和1301c与主处理器1101之间。在本公开中,至主处理器1101的连接可以包括直接连接(例如,没有根复合体1003和交换器1005)和间接连接(例如,具有根复合体1003和/或交换器1005)。
存储设备1301a可以包括至少一个存储器设备1310a、存储控制器1331a和对等管理器1350a。存储控制器1331a可以与存储控制器1330a相对应。存储控制器1331a可以控制和管理存储设备1301a的整体操作。存储器设备1310a可以在存储控制器1331a的控制下存储或输出数据。
存储控制器1331a可以包括接口电路1335a和1336a。接口电路1335a和1336a中的每一个可以包括物理层和/或逻辑层,所述物理层和/或逻辑层被配置用于发送/接收以及处理数据、信号和/或封包以便利存储控制器1331a与存储控制器1331a外部的部件进行通信。接口电路1335a和1336a中的每一个可以包括被配置用于处理存储控制器1331a与外部部件之间的通信的硬件电路。
例如,接口电路1335a可以连接至存储设备1301a的第二端口。存储设备1301a的第二端口可以在存储控制器1331a与主处理器1101之间提供数据路径P21a。存储设备1301a可以通过接口电路1335a、数据路径P21a、和第二端口来与主处理器1101进行通信。
例如,接口电路1336a可以连接至对等管理器1350a。数据路径P23a可以被提供在接口电路1336a与对等管理器1350a之间。存储控制器1331a可以通过接口电路1336a和数据路径P23a来与对等管理器1350a进行通信。
对等管理器1350a可以连接至存储设备1301a的第一端口。对等管理器1350a可以位于存储设备1301a的第一端口与存储控制器1331a之间。存储控制器1331a可以位于存储设备1301a的第一端口与存储设备1301a的第二端口之间。
存储设备1301a可以通过存储设备1301a的第一端口连接至存储设备1301a外部的另一设备(例如,存储设备1301b)。存储设备1301a的第一端口可以在对等管理器1350a与存储设备1301b之间提供数据路径P22a。存储设备1301a可以通过数据路径P22a以及存储设备1301a的第一端口来与存储设备1301b进行通信。
对等管理器1350a可以包括内部交换器1351a和操作逻辑电路1352a。内部交换器1351a和操作逻辑电路1352a可以通过对等管理器1350a的内部总线来彼此进行通信。根据内部交换器1351a和操作逻辑电路1352a的操作,对等管理器1350a可以提供用于以对等的方式在存储控制器1331a与存储设备1301b之间传送数据的路径(例如,数据路径P22a和P23a)。
内部交换器1351a可以管理待通过第一端口从存储设备1301a输出的数据以及由存储设备1301a通过所述第一端口接收的数据的流。因此,基于与存储控制器1331a交换的数据,对等管理器1350a可以通过第一端口向存储设备1301b输出数据,或者可通过所述第一端口从存储设备1301b接收数据。
内部交换器1351a可以在硬件电路中实施以管理数据流。在本文中,使用了术语“交换器(switch)”,但是内部交换器1351a的实施可以被各种改变或修改。例如,可以以内部根复合体(与根复合体1003类似)的形式来实施内部交换器1351a以控制数据路径、调度数据传送、或解决通信冲突。替代地,可以以内部根复合体和交换器组合(与根复合体1003和交换器1005类似)的形式来实施内部交换器1351a。
然而,内部交换器1351a可以仅管理存储控制器1331与存储设备1301a的第一端口之间的数据流。因此,内部交换器1351a可以被实施为具有比根复合体1003和/或交换器1005的尺寸更小的尺寸(例如,电路尺寸、电路区域或电路规模)。
操作逻辑电路1352a可以基于在对等管理器1350a中接收的数据来执行处理操作。例如,所述处理操作可以包括诸如监测与所接收的数据相关联的信息(例如,数据量、数据路径、地址等)的操作、基于所接收的数据的廉价磁盘冗余阵列(RAID)操作、以及基于所接收的数据的正则表达式搜索操作等各种操作中的一项或多项。然而,本公开并不限于这个示例。
例如,操作逻辑电路1352a可以基于从存储控制器1331a接收的数据来执行处理操作,并且可以对所接收的数据进行处理以生成待通过存储设备1301a的第一端口进行输出的已处理数据。例如,操作逻辑电路1352a可以基于通过存储设备1301的第一端口接收的数据来执行处理操作,并可以对所接收的数据进行处理以生成待被提供至存储控制器1331a的已处理数据。
为此,操作逻辑电路1352a可以在被配置用于执行处理操作的硬件电路中实施。在一些示例实施例中,可以以与存储设备1301a内部的存储控制器1331a分开的现场可编程门阵列(FPGA)板或专用集成电路(ASIC)的形式来实施对等管理器1350a。例如,操作逻辑电路1352a可以基于FPGA板的配置在可重新配置逻辑电路中实施。
因此,对等管理器1350a可以对所接收的数据本身进行处理或转换,以输出已处理数据或经转换数据,而不是简单地管理数据流。所输出的数据可以被提供至存储控制器1331a,或者可以通过存储设备1301a的第一端口被提供至存储设备1301b。为此,对等管理器1350a可以包括连接至存储控制器1331a以及存储设备1301a的第一端口的两个下游端口。
操作逻辑电路1352的处理操作可以由主处理器1101来执行。然而,在示例实施例中,为了减少主处理器1101的工作负载,存储设备1301a可以通过使用操作逻辑电路1352a来执行处理操作。将参照图6至图9来描述与处理操作相关联的示例。
存储设备1301b可以包括至少一个存储器设备1310b、存储控制器1331b和对等管理器1350b。存储控制器1331b可以包括接口电路1335b和1336b。对等管理器1350b可以包括内部交换器1351b和操作逻辑电路1352b。
对等管理器1350b可以通过存储设备1301b的第一端口以及数据路径P24a连接至存储设备1301c。接口电路1335b可以通过存储设备1301b的第二端口以及数据路径P22a连接至存储设备1301a。接口电路1336b可以通过数据路径P25a连接至对等管理器1350b。
存储设备1301b、存储器设备1310b、存储控制器1331b、接口电路1335b和1336b、对等管理器1350b、内部交换器1351b、以及操作逻辑电路1352b的操作和配置可以与存储设备1301a、存储器设备1310a、存储控制器1331a、接口电路1335a和1336a、对等管理器1350a、内部交换器1351a、以及操作逻辑电路1352a的操作和配置基本上相同或类似。为了简洁起见,以下将省略冗余的描述。
存储设备1301c可以包括至少一个存储器设备1310c、存储控制器1331c和对等管理器1350c。存储控制器1331c可以包括接口电路1335c和1336c。对等管理器1350c可以包括内部交换器1351c和操作逻辑电路1352c。
对等管理器1350c可以通过存储设备1301c的第一端口以及数据路径P27a连接至主处理器1101。接口电路1335c可以通过存储设备1301c的第二端口以及数据路径P24a连接至存储设备1301b。接口电路1336c可以通过数据路径P26a连接至对等管理器1350c。
存储设备1301c、存储器设备1310c、存储控制器1331c、接口电路1335c和1336c、对等管理器1350c、内部交换器1351c、以及操作逻辑电路1352c的操作和配置可以与存储设备1301a、存储器设备1310a、存储控制器1331a、接口电路1335a和1336a、对等管理器1350a、内部交换器1351a、以及操作逻辑电路1352a的这些操作和配置基本上相同或类似。为了简洁起见,以下将省略冗余的描述。
在存储设备1301a、1301b和1301c中的每一个中,第一端口和第二端口中的至少一个端口可以连接至另一存储设备。同时,所述第一端口和所述第二端口中的未连接至所述另一个存储设备的另一个端口可以连接至主机(例如,主处理器1101)。
例如,在存储设备1301b中,当第一端口和第二端口两者都连接至其他存储设备时,存储设备1301b可以不连接至主机。在这种情况下,存储设备1301b可以不直接与主处理器1101进行通信。相反,存储设备1301b可以通过存储设备1301a或1301c来与主处理器1101进行通信。
存储设备1301a、1301b和1301c的一些端口可以不连接至主处理器1101。然而,当提供指向主处理器1101的数据路径P21a和P27a时,可以提高可靠性。例如,即使数据路径P27a出现故障或被禁用,数据路径P21a也可以提供与主处理器1101的通信。
图6至图9是用于描述与图5的存储设备1301a、1301b和1301c相关联的示例操作的框图。
图6至图9的示例操作可以与主机(例如,主处理器1101)请求关于存储在存储设备1301a、1301b和1301c中的数据D1、D2和D3的RAID操作(例如,奇偶校验操作)的情况相关联。操作逻辑电路1352a、1352b和1352c可以作为处理操作来执行RAID操作。
参照图6,存储控制器1331a可以通过存储设备1301a的第二端口以及接口电路1335a从主处理器1101接收请求REQ。请求REQ可以指向至存储设备1301a和另一存储设备(例如,存储设备1301b和1301c)。例如,请求REQ可以请求与数据D1、D2和D3相对应的奇偶校验的计算。
参照图7,存储控制器1331a可以响应于请求REQ来执行关于存储设备1301a请求的操作。例如,存储控制器1331a可以控制存储器设备1310a,使得存储器设备1310a输出数据D1。
另外,存储控制器1331a可以响应于请求REQ,通过接口电路1336a来与对等管理器1350a交换与关于另一存储设备请求的操作相关联的数据。例如,存储控制器1331a可以向对等管理器1350a提供数据D1。
操作逻辑电路1352a可以基于存储在存储器设备1310a中的数据和/或通过存储设备1301a的第二端口接收的数据中的至少一个来执行处理操作。例如,操作逻辑电路1352a可以基于数据D1来执行处理操作(例如,奇偶校验操作)。
操作逻辑电路1352a可以对数据D1进行处理以生成已处理数据D1’。数据D1’可以用在待在存储设备1301b中执行的操作中。仅对一项数据D1执行了奇偶校验操作,并且数据D1’可以与数据D1完全相同。
内部交换器1351a可以管理数据D1和D1’的流。内部交换器1351a可以从存储控制器1331a接收数据D1,并且可以向存储设备1301a的第一端口输出数据D1’。因此,对等管理器1350a可以向存储设备1301b输出数据D1’而无需主机干预。
存储设备1301a可以通过存储设备1301a的第一端口以及存储设备1301b的第二端口来与存储设备1301b进行通信而无需主机干预。存储控制器1331b可以通过存储设备1301b的第二端口以及接口电路1335b从存储设备1301a接收数据D1’。
参照图8,存储控制器1331b可以执行关于存储设备1301b请求的操作。例如,存储控制器1331b可以控制存储器设备1310b,使得存储器设备1310b输出数据D2。为此,例如,存储控制器1331b可以从存储设备1301a接收与数据D2和请求REQ相关联的信息以及接收数据D1’。存储控制器1331b可以通过接口电路1336b向对等管理器1350b提供数据D1’和D2。
操作逻辑电路1352b可以基于存储在存储器设备1310b中的数据和/或通过存储设备1301b的第二端口接收的数据中的至少一个来执行处理操作。例如,操作逻辑电路1352b可以基于数据D1’和D2来执行奇偶校验操作。操作逻辑电路1352b可以对数据D1’和D2进行处理以生成已处理数据D2’。
由操作逻辑电路1352a执行的奇偶校验操作可以包括由主处理器1101请求的操作的第一部分(例如,对数据D1的部分操作)。当存储设备1301a向存储设备1301b输出数据D1’时,操作逻辑电路1352b可以执行由主处理器1101请求的操作的第二部分(例如,对数据D1’和D2的部分操作)。在本文中,所述第二部分操作可以不与所述第一部分操作重叠。
当操作逻辑电路1352b执行奇偶校验操作时,数据D2’可以被生成为不同于数据D1’和D2中的每一者。数据D2’可以用在待在存储设备1301c中执行的操作中。
内部交换器1351b可以管理数据D1’、D2和D2’的流。内部交换器1351b可以从存储控制器1331b接收数据D1’和D2,并且可以向存储设备1301b的第一端口输出数据D2’。对等管理器1350b可以向存储设备1301c输出数据D2’而无需主机干预。
存储设备1301b可以通过存储设备1301b的第一端口以及存储设备1301c的第二端口来与存储设备1301c进行通信而无需主机干预。存储控制器1331c可以通过存储设备1301c的第二端口以及接口电路1335c从存储设备1301b接收数据D2’。
参照图9,存储控制器1331c可以控制存储器设备1310c,使得存储器设备1310c输出数据D3。存储控制器1331c可以通过接口电路1336c向对等管理器1350c提供数据D2’和D3。
操作逻辑电路1352c可以基于数据D2’和D3来执行奇偶校验操作。操作逻辑电路1352c可以生成奇偶校验P作为已处理数据。奇偶校验P可以是与主处理器1101的请求REQ相对应的操作结果。
内部交换器1351c可以从存储控制器1331b接收数据D2’和D3,并且可以向存储设备1301c的第一端口输出奇偶校验P。存储设备1301c可以通过存储设备1301c的第一端口输出奇偶校验P。因此,奇偶校验P可以被提供至主处理器1101。
可以对存储设备1301a、1301b和1301c分布式地执行由主处理器1101请求的用于获得奇偶校验P的操作。主处理器1101可以不干预奇偶校验操作,并且因此可以减少主处理器1101的工作负载。操作逻辑电路1352a、1352b和1352c中的每一个可以执行一部分操作。当相继执行所述部分操作时,可以完成所述操作并且可以获得奇偶校验P。
图10是用于描述与图5的存储设备1301a、1301b和1301c相关联的示例操作的框图。
在一些情况下,图5的数据路径P27a可以不被连接。例如,数据路径P27a可能出现故障或者可能被禁用。例如,为了简化电路配置,可以不提供数据路径P27a。
在这些情况下,存储设备1301c可以通过存储设备1301c的第二端口以及存储设备1301b的第一端口来向存储设备1301b提供奇偶校验P。以此方式,可以通过存储设备1301b和1301a向主处理器1101提供奇偶校验P。存储设备1301a可以通过存储设备1301a的第二端口向主处理器1101输出奇偶校验P。
图10的示例中的用于向主处理器1101传输奇偶校验P的路径方向可以与图6至图9的示例中的用于传输数据的路径方向相反。接口电路1335a、1336a、1335b、1336b、1335c和1336c以及对等管理器1350a、1350b和1350c可以支持双向通信。
已经参照图6至图10描述了示例操作。然而,所述描述被提供用于促进更好的理解,并且不旨在限制本公开。存储设备1301a、1301b和1301c的操作可以被各种改变或修改,以提供存储设备1301a、1301b与1301c之间的对等通信从而执行诸如奇偶校验操作等处理操作。此外,可以容易理解的是,也可以关于各种处理操作以及奇偶校验操作来应用示例实施例。
图11和图12是展示了与图5的存储设备1301a、1301b和1301c相关联的示例配置的框图。
参照图11,主处理器1101可以通过数据路径P21b和P27b来与存储设备1301a、1301b和1301c进行通信。存储设备1301a、1301b和1301c可以通过数据路径P22b至P26b以对等的方式彼此进行通信。数据路径P21b至P27b可以与数据路径P21a至P27a相对应。
与图6至图10的示例操作不同,在图11的示例中,存储设备1301c可以从主处理器1101接收请求。对等管理器1350c可以响应于主处理器1101的请求来执行处理操作,并且因此可以向存储控制器1331c提供已处理数据。
以此方式,对等管理器1350c、1350b和1350a可以分布式地执行由主处理器1101请求的操作,并且因此可以生成操作结果。所述操作结果可以通过存储设备1301a的存储控制器1331a输出至主处理器1101。
在一些示例实施例中,操作逻辑电路可以不被提供在主处理器1101与存储控制器1331a之间。在一些情况下,可能需要对从存储控制器1331a输出至主处理器1101的数据进行另外的处理。例如,可能需要对从对等管理器1350a提供的已处理数据以及存储在存储设备1301a的存储器设备1310a中的数据进行另外的奇偶校验操作,并且存储控制器1331a可以向主处理器1101提供已处理数据和所存储数据。
在这个示例中,主处理器1101可以执行另外的奇偶校验操作。主处理器1101部分地干预处理操作,但是对等管理器1350c、1350b和1350c可以执行大部分操作。另外,主处理器1101可以不干预存储设备1301a、1301b与1301c之间的通信。因此,可以最小化对主处理器1101的干预。
参照图12,在一些情况下,图11的数据路径P21b可以不被连接。例如,数据路径P21b可能出现故障或者可能被禁用。例如,为了简化电路配置,可以不提供数据路径P21b。在这种情况下,可以通过存储设备1301b和1301c向主处理器1101提供对等管理器1350a的操作结果。图12的示例中的用于向主处理器1101传输操作结果的路径方向可以与图11的示例中的用于传输数据的路径方向相反。
关于参照图5至图12所描述的示例实施例,接口电路1335a、1336a、1335b、1336b、1335c和1336c中的每一个可以连接至主处理器1101或对等管理器1350a、1350b和1350c的下游端口。因此,接口电路1335a、1336a、1335b、1336b、1335c和1336c可以进行操作使得对应的存储设备1301a、1301b和1301c作为端点设备进行操作。
图13和图14是展示与图1的存储设备1300a相关联的示例配置的框图。
参照图13,在一些示例实施例中,存储设备1300a可以包括存储设备1302a。存储设备1302a可以包括至少一个存储器设备1310a、存储控制器1332a和操作逻辑电路1355a。存储控制器1332a可以包括接口电路1337a和可变接口电路1338a。
存储控制器1332a、接口电路1337a和操作逻辑电路1355a可以分别与存储控制器1331a、接口电路1335a和操作逻辑电路1352a相对应。存储控制器1332a可以控制和管理存储设备1302a的整体操作。接口电路1337a可以支持通过存储设备1302a的第二端口与存储设备1302a外部的设备A(例如,主机或其他存储设备)的进行的通信。
操作逻辑电路1355a可以执行处理操作以生成已处理数据。操作逻辑电路1355a可以通过存储设备1302a的第一端口来与存储设备1302a外部的设备B(例如,主机或其他存储设备)交换数据。操作逻辑电路1355a可以连接至可变接口电路1338a。
参照图5至图12所描述的内部交换器1351a和操作逻辑电路1352a可以在单个部件(例如,单个FPGA板、单个芯片等)上实施。然而,在一些示例实施例中,内部交换器1351a和操作逻辑电路1352a可以在分开的部件(例如,分开的芯片、分开的电路等)中实施。在一些示例实施例中,当内部交换器1351a与操作逻辑电路1352a分开时,内部交换器1351a可以在存储控制器1331a内实施。
例如,存储控制器1332a的可变接口电路1338a可以包括内部交换器1351a的配置,并且可以执行内部交换器1351a的操作。可变接口电路1338可以在从多种操作模式中选择的操作模式下进行操作。可以基于存储设备1302a的第一端口是否连接至设备B以及所连接设备B的类型来选择所述操作模式。
例如,可变接口电路1338a的操作模式可以包括与端点设备的操作相关联的端点操作模式(例如,用于支持存储设备1302a使得存储设备1302a作为端点设备来操作)。例如,可变接口电路1338a的操作模式可以包括与同设备B进行的通信相关联的交换器操作模式(例如,用于支持与设备B的通信)。
为此,可变接口电路1338a可以包括被配置用于发送/接收以及处理数据、信号和/或封包的物理层和/或逻辑层的硬件电路。另外,可变接口电路1338a可以包括根复合体和/或交换器的硬件电路以便管理与设备B的数据交换。可变接口电路1338a可以基于所选择的操作模式而不同地进行操作。
参照图14,在一些示例实施例中,存储设备1300a可以包括存储设备1303a。存储设备1303a可以包括至少一个存储器设备1310a和存储控制器1333a。存储控制器1333a可以包括接口电路1337a、可变接口电路1338a和嵌入式操作逻辑电路1339a。存储控制器1333a可以与存储控制器1331a相对应,并且可以控制和管理存储设备1303a的整体操作。
接口电路1337a可以连接至存储设备1303a的第二端口,并且可以支持通过存储设备1303a的第二端口与设备A进行的通信。可变接口电路1338a可以连接至存储设备1303a的第一端口,并且可以支持通过存储设备1303a的第一端口与设备B进行的通信。可变接口电路1338a可以在基于存储设备1303a的第一端口是否连接至设备B以及所连接设备B的类型来选择的操作模式下进行操作。
在一些示例实施例中,操作逻辑电路1352a或1355a也可以在存储控制器1331a内实施。例如,存储控制器1333a的嵌入式操作逻辑电路1339a可以包括操作逻辑电路1352a或1355a的配置,并且可以执行对操作逻辑电路1352a和1355a的操作。
接口电路1337a、可变接口电路1338a和嵌入式操作逻辑电路1339a可以通过存储控制器1333a的内部总线来彼此进行通信。例如,可以以嵌入式FPGA或嵌入式ASIC的形式来实施嵌入式操作逻辑电路1339a。例如,嵌入式操作逻辑电路1339a可以在可重新配置逻辑电路中实施。
嵌入式操作逻辑电路1339a可以执行处理操作。嵌入式操作逻辑电路1339a可以对通过存储设备1303a的第一端口接收的数据进行处理,从而生成待通过存储设备1303a的第二端口进行输出的已处理数据。嵌入式操作逻辑电路1339a可以对通过存储设备1303a的第二端口接收的数据进行处理,从而生成待通过存储设备1303a的第一端口进行输出的已处理数据。
图15是展示了与图1的存储设备1300a、1300b和1300c相关联的示例配置的框图。
在一些示例实施例中,存储设备1300a、1300b和1300c可以分别包括存储设备1303a、1303b和1303c。存储设备1303a、1303b和1303c中的每一个可以在双端口结构中实施,并且存储设备1303a、1303b和1303c可以以对等的方式彼此进行通信而无需主机(例如,主处理器1101)干预。
存储设备1303b可以包括至少一个存储器设备1310b和存储控制器1333b。存储控制器1333b可以包括接口电路1337b、可变接口电路1338b和嵌入式操作逻辑电路1339b。存储控制器1333b、接口电路1337b、可变接口电路1338b、和嵌入式操作逻辑电路1339b的配置和操作可以与存储控制器1333a、接口电路1337a、可变接口电路1338a、和嵌入式操作逻辑电路1339a的配置和操作基本上相同或类似。
存储设备1303c可以包括至少一个存储器设备1310c和存储控制器1333c。存储控制器1333c可以包括接口电路1337c、可变接口电路1338c和嵌入式操作逻辑电路1339c。存储控制器1333c、接口电路1337c、可变接口电路1338c、和嵌入式操作逻辑电路1339c的配置和操作可以与存储控制器1333a、接口电路1337a、可变接口电路1338a、和嵌入式操作逻辑电路1339a的配置和操作基本上相同或类似。为了简洁起见,以下将省略冗余的描述。
接口电路1337a可以连接至存储设备1303a的第二端口。存储设备1303a的第二端口可以在存储控制器1333a与主处理器1101之间提供数据路径P21c。因此,存储设备1303a可以与主处理器1101进行通信,并且可以通过数据路径P21c来与主处理器1101交换数据。
嵌入式操作逻辑电路1339a可以基于存储在存储器设备1310a中的数据和/或通过存储设备1303a的第二端口(或第一端口)接收的数据中的至少一个来执行处理操作。嵌入式操作逻辑电路1339a可以执行处理操作从而生成已处理数据。所述已处理数据可以通过存储设备1303a的第一端口(或第二端口)输出至另一设备(例如,主处理器1101、存储设备1303b等)。
可变接口电路1338a可以连接至存储设备1303a的第一端口。接口电路1337b可以连接至存储设备1303b的第二端口。存储设备1303a的第一端口以及存储设备1303b的第二端口可以在存储控制器1333a与存储控制器1333b之间提供数据路径P22c。因此,存储设备1303a可以与存储设备1303b进行通信,并且可以以对等的方式与存储设备1303b交换数据而无需主处理器1101干预。
嵌入式操作逻辑电路1339b可以基于存储在存储器设备1310b中的数据和/或通过存储设备1303b的第二端口(或第一端口)接收的数据中的至少一个来执行处理操作。嵌入式操作逻辑电路1339b可以执行处理操作从而生成已处理数据。所述已处理数据可以通过存储设备1303b的第一端口(或第二端口)输出至另一设备(例如,存储设备1303a或1303c)。
同样,存储设备1303b的第一端口以及存储设备1303c的第二端口可以在存储控制器1333b与存储控制器1333c之间提供数据路径P24c。存储设备1303b可以与存储设备1303c进行通信,并且可以通过可变接口电路1338b、数据路径P24c和接口电路1337c以对等的方式来与存储设备1303c交换数据而无需主处理器1101干预。
存储设备1303c的第一端口可以在存储控制器1333c与主处理器1101之间提供数据路径P27c。存储设备1303c可以与主处理器1101进行通信,并且可以通过可变接口电路1338c和数据路径P27c来与主处理器1101交换数据。嵌入式操作逻辑电路1339c可以基于通过存储设备1303c的第一端口和/或第二端口接收的数据和存储在存储器设备1310c中的数据中的至少一个来生成已处理数据。
例如,存储控制器1333a可以通过接口电路1337a来接收指向存储设备1303a、1303b和1303c的请求。存储控制器1333a可以执行关于存储设备1303a请求的操作。存储控制器1333a可以通过可变接口电路1338a来输出或接收与关于存储设备1303b和1303c请求的操作相关联的数据。
嵌入式操作逻辑电路1339a、1339b和1339c可以分布式地执行由主处理器1101请求的操作。因此,存储控制器1333c可以通过可变接口电路1338c向主处理器1101输出与主处理器1101的请求相对应的操作结果的数据。在一些情况下,存储控制器1333c可以通过可变接口电路1338c从主处理器1101接收数据或请求。
存储设备1303a、1303b和1303c的操作和配置可以与参照图5至图12所描述的那些相类似。在一些情况下,可以不提供数据路径P21c或P27c,并且存储控制器1333a、1333b和1333c可以支持双向通信。图15展示了与图14的存储设备1303a相关联的配置,但是可以容易理解的是,也可以以与参照图5至图12和图15所描述的这些方式类似的方式来采用图13的存储设备1302a。
接口电路1337a、1337b和1337c中的每一个可以连接至主处理器1101或下游端口。接口电路1337a、1337b和1337c可以在端点操作模式下进行操作。可变接口电路1338c可以连接至主处理器1101,并且因此可以在端点操作模式下进行操作。当可变接口电路1338c在端点操作模式下进行操作时,存储设备1303c的第一端口可以被理解为下游端口。
可变接口电路1338a和1338b可以分别连接至存储设备1303b和1303c。可变接口电路1338a和1338b中的每一个可以在交换器操作模式下进行操作,以支持与外部存储设备的通信。在交换器操作模式下,可变接口电路1338a和1338b可以提供根复合体和/或交换器的功能以便管理数据交换。当可变接口电路1338a和1338b在交换器操作模式下进行操作时,存储设备1303a和1303b中的每一个的第一端口可以被理解为上游端口。
图15展示了存储设备1303a、1303b和1303c中的每一个包括一个可变接口电路。在一些示例实施例中,存储设备1303a、1303b和1303c中的每一个可以包括两个可变接口电路。例如,存储设备1303a的接口电路1337a也可以以可变接口电路来实施。在这种情况下,接口电路1337a可以支持与外部存储设备的通信以及与主处理器1101的通信,并且因此可以提高存储设备1303a的连接的灵活性。
图16是描述了图15的可变接口电路的示例操作的流程图。
当向存储设备供应电力并且所述存储设备被接通时,所述存储设备可以对配置进行初始化(S110)。例如,所述存储设备可以在引导操作期间识别和配置部件的状态、至外部设备的连接的状态、设置值等。
在此之后,所述存储设备可以设置与所连接外部设备的链接(linkup)状态(S120)。所述链接状态可以被提供用于辨认对手设备并且建立用于与所述对手设备进行通信的环境。为了设置所述链接状态,存储设备可以向外部设备提供所述存储设备的信息(例如,设备类型、通信能力、发送器/接收器电路的配置等),并且可以从外部设备接收所述外部设备的信息。
根据所述链接状态,存储设备可以获得所连接外部设备的信息(S130)。例如,存储设备1303a可以辨认出通过可变接口电路1338a连接的外部设备为另一存储设备1303b,并且存储设备1303c可以辨认出通过可变接口电路1338c连接的外部设备为主处理器1101。在一些示例实施例中,存储设备可以通过另外的管脚(例如,通用输入/输出(GPIO)管脚)辨认外部设备的类型,而不考虑链接状态。
存储设备可以基于所连接外部设备的信息来选择接口电路的操作模式(S140)。例如,存储控制器1333a可以响应于至另一存储设备1303b的连接来控制可变接口电路1338a在交换器操作模式下进行操作,并且存储控制器1333c可以响应于至主处理器1101的连接来控制可变接口电路1338c在端点操作模式下进行操作。
图17是描述了图15的可变接口电路的示例操作的流程图。
例如,可变接口电路可以首先尝试在交换器操作模式下进行操作。在所尝试的交换器操作模式下,可变接口电路可以发送测试信号(S210)。所述测试信号可以被配置成适用于识别外部设备是否连接至可变接口电路以及所述外部设备的类型。针对另一示例,可变接口电路可以首先尝试在端点操作模式下进行操作并且可以发送测试信号。
可变接口电路或存储控制器可以确定是否接收到与所述测试信号相对应的响应(S220)。当未接收到响应时(S220中的否),这可以意味着可变接口电路未连接至外部设备。在这种情况下,可变接口电路可以在端点操作模式下进行操作或者可以被关断(S240)。所述关断可以意味着在没有供应电力的情况下不执行预期功能或操作的状态。
当接收到响应时(S220中的是),这可以意味着可变接口电路连接至外部设备。例如,来自端点设备(例如,存储设备)的响应可以被实施为不同于来自主机(例如,主处理器1101)的响应。在这种情况下,可变接口电路或存储控制器可以确定与所述响应相对应的外部设备的类型(例如,可以确定所述响应是与端点设备相关联还是与主机相关联)(S230)。
当所述响应与端点设备相关联时(S230中的是),可变接口电路可以在交换器操作模式下进行操作(S250)。例如,可变接口电路1338a可以基于来自存储设备1303b的响应提供根复合体和/或交换器在交换器操作模式下的操作。
当所述响应与主机相关联时(S230中的否),可变接口电路可以在端点操作模式下进行操作(S260)。例如,可变接口电路1338c可以基于来自主处理器1101的响应支持端点设备在端点操作模式下的通信。
图18是展示了与图1的存储设备1300a、1300b和1300c相关联的示例配置的框图。
在一些示例实施例中,存储设备1300a、1300b和1300c可以包括存储设备1304a、1301b、1301c、1304d和1304e。与图5的示例配置类似,存储设备1304a、1301b和1301c可以连接至彼此,并且可以以对等的方式彼此进行通信。
例如,对等管理器1357a可以包括三个下游端口。这三个下游端口中的两个下游端口可以分别连接至存储控制器1331a和1331b。这三个下游端口中的另一个下游端口可以连接至存储设备1304d的存储控制器1331d。
与存储设备1304a、1301b、1301c之间的连接类似,存储设备1304a、1304d和1304e可以连接至彼此,并且可以以对等的方式彼此进行通信。对等管理器1350d可以通过两个下游端口连接至存储控制器1331d和1331e。对等管理器1350e可以通过这两个下游端口连接至存储控制器1331e和主处理器1101。
对等管理器1357a、1350b、1350c、1350d和1350e可以管理数据流,并且可以分布式地执行由主处理器1101请求的操作。可以容易理解的是,可以依据包括在每个对等管理器中的下游端口的数量,对存储设备之间的连接进行各种改变或修改。这种改变或修改可以类似地应用于参照图13至图15所描述的示例配置。
图19是展示了与图1的电子系统1000相关联的示例实施方式的概念图。
例如,电子系统1000可以在服务器1000c中实施。存储设备1300a、1300b和1300c可以以双端口结构来实施,并且可以连接至服务器1000c或装配在所述服务器中。
存储设备1300a的连接器1390a可以通过线缆P21d和连接器1007a连接至背板1007。图19展示了通过线缆P21d实施的连接。然而,在一些示例实施例中,连接器1390a可以直接连接至连接器1007a。
存储设备1300a的连接器1395a可以通过线缆P22d连接至存储设备1300b的连接器1390b。存储设备1300b的连接器1395b可以通过线缆P24d连接至存储设备1300c的连接器1390c。存储设备1300c的连接器1395c可以通过线缆P27d和连接器1007c连接至背板1007;在一些示例实施例中,连接器1395c可以不连接至背板1007。
以此方式,存储设备1300a、1300b和1300c可以以对等的方式彼此进行通信。存储设备1300a、1300b与1300c之间的对等连接可以与背板1007完全分开。因此,主处理器1101可以不干预存储设备1300a、1300b和1300c之间的通信。
主处理器1101可以通过导线L21连接至背板1007,并且因此可以与存储设备1300a进行通信。主处理器1101可以通过导线L27来与存储设备1300c进行通信;在一些情况下,可以不提供导线L27。
以上描述旨在提供用于实施本公开的示例配置和操作。除了上述示例实施例之外,本公开还可以包括通过简单地改变或修改以上示例实施例而获得的实施方式。同样,本公开可以包括可以通过在将来容易地改变或修改上述示例实施例而实现的实施方式。
Claims (25)
1.一种存储设备,包括:
现场可编程门阵列FPGA板,连接至所述存储设备的第一端口;和
存储控制器,包括第一接口电路和第二接口电路,所述第一接口电路连接至所述FPGA板,所述第二接口电路连接至所述存储设备的第二端口,
其中,所述第一端口和所述第二端口中的至少一个端口将被连接至外部存储设备,并且
其中,所述FPGA板介于第一端口和第一接口电路之间并且被配置为提供用于以对等的方式在所述存储控制器与所述外部存储设备之间传送数据而无需主机干预的路径。
2.如权利要求1所述的存储设备,其中,所述存储设备包括用于通过所述第一端口和所述第二端口来收发数据的双端口固态驱动器,并且其中,所述FPGA板与所述存储控制器分开地实施。
3.如权利要求1所述的存储设备,其中,所述第一端口和所述第二端口中的未连接至所述外部存储设备的端口被配置为连接至所述主机。
4.如权利要求1所述的存储设备,其中,所述存储控制器还被配置为:
通过所述第二端口和所述第二接口电路来接收指向所述存储设备和所述外部存储设备的请求;
基于所述请求来执行关于所述存储设备请求的第一操作;并且
通过所述第一接口电路来与所述FPGA板交换与由所述外部存储设备基于所述请求执行的第二操作相关联的数据。
5.如权利要求4所述的存储设备,其中,所述FPGA板被配置为:基于与所述存储控制器交换的数据,通过所述第一端口与所述外部存储设备进行收发数据。
6.如权利要求1所述的存储设备,其中,所述FPGA板包括被配置为管理所述存储控制器与所述第一端口之间的数据流的内部根复合体。
7.如权利要求1所述的存储设备,其中,所述FPGA板包括操作逻辑电路,所述操作逻辑电路被配置为:通过对从所述存储控制器接收的数据进行处理来生成待通过所述第一端口输出的数据,或者通过对经由所述第一端口接收的数据进行处理来生成待提供至所述存储控制器的数据。
8.一种存储设备,包括:
存储控制器,包括第一接口电路和第二接口电路,所述第一接口电路连接至所述存储设备的第一端口,并且所述第二接口电路连接至所述存储设备的第二端口;以及
存储器设备,用于在所述存储控制器的控制下进行操作,
其中,所述第一接口电路被配置为基于所述第一端口是否连接至外部设备以及连接至所述第一端口的外部设备的类型来在从多种操作模式选择的操作模式下进行操作,并且
其中,所述存储控制器被配置为识别连接到所述第一端口的外部设备的类型,基于所述外部设备的类型从多个操作模式中识别操作模式,以及基于连接到所述第一端口的外部设备是外部存储设备与所述外部设备以对等的方式交换数据而无需主机干预。
9.如权利要求8所述的存储设备,其中,所述多种操作模式包括第一操作模式和第二操作模式,
其中,所述第一接口电路被配置为基于所述外部设备的类型被识别为端点设备而在所述第一操作模式下进行操作,并且
其中,所述第一接口电路被配置为基于所述外部设备的类型被识别为所述外部存储设备而在所述第二操作模式下进行操作。
10.如权利要求9所述的存储设备,其中,在所述第二操作模式下,所述第一接口电路被配置为通过所述第一端口在所述存储控制器与所述外部存储设备之间收发数据。
11.如权利要求9所述的存储设备,其中,在所述第一操作模式下,所述存储控制器被配置为通过所述第一接口电路和所述第一端口与所述主机进行收发数据。
12.如权利要求9所述的存储设备,其中,当所述第一端口未连接至所述外部设备时,所述第一接口电路在所述第一操作模式下操作或者被关断。
13.如权利要求8所述的存储设备,其中,当所述第一端口连接至所述外部设备时,所述存储控制器被配置为:
通过所述第二端口和所述第二接口电路来接收指向所述存储设备和所述外部存储设备的请求;并且
基于所述请求来执行关于所述存储设备请求的第一操作;并且
通过所述第一接口电路和所述第一端口来收发与由所述外部存储设备基于所述请求执行的第二操作相关联的数据。
14.如权利要求8所述的存储设备,其中,所述存储控制器进一步包括嵌入式FPGA,所述嵌入式FPGA被配置为:通过对经由所述第一端口接收的数据进行处理来生成待通过所述第二端口输出的数据,或者通过对通过所述第二端口接收的数据进行处理来生成待通过所述第一端口输出的数据。
15.一种存储设备,包括:
存储控制器,介于在所述存储设备的第一端口与所述存储设备的第二端口之间;以及
操作逻辑电路,介于所述存储控制器和所述存储设备的第一端口之间并且被配置为通过基于从所述存储控制器或所述第二端口接收的数据执行处理操作来生成已处理数据,
其中,所述存储设备被配置为,当所述第一端口连接至外部存储设备时,通过所述第一端口向所述外部存储设备输出所述已处理数据而无需主机干预。
16.如权利要求15所述的存储设备,其中,所述已处理数据被生成为不同于所述操作逻辑电路所接收的数据。
17.如权利要求15所述的存储设备,其中,由所述操作逻辑电路执行的所述处理操作包括由所述主机请求的操作的第一部分。
18.如权利要求17所述的存储设备,其中,所述存储设备被配置为向所述外部存储设备输出所述已处理数据,使得所述外部存储设备基于所述已处理数据来执行由所述主机请求的操作的第二部分,并且其中,所述第二部分不与所述第一部分重叠。
19.一种存储设备,包括:
存储控制器,介于所述存储设备的第一端口与所述存储设备的第二端口之间;以及
存储器设备,
其中,所述存储设备被配置为,当所述第一端口连接至外部存储设备时,通过所述第一端口向所述外部存储设备输出第一数据而无需主机干预,所述第一数据是基于存储在所述存储器设备中的第二数据和通过所述第二端口接收的第三数据中的至少一者生成的。
20.如权利要求19所述的存储设备,其中,所述第一数据被生成为不同于所述第二数据和所述第三数据中的每一者。
21.如权利要求19所述的存储设备,进一步包括对等管理器,所述对等管理器被配置为提供用于以对等的方式在所述存储控制器与所述外部存储设备之间传送数据的路径。
22.如权利要求21所述的存储设备,其中,所述对等管理器包括:
内部交换器,被配置为管理所述第二数据和所述第三数据中的至少一者的流以及所述第一数据的流;以及
操作逻辑电路,被配置为基于所述第二数据和所述第三数据中的至少一者来生成所述第一数据。
23.如权利要求19所述的存储设备,其中,所述存储控制器包括:
可变接口电路,连接至所述第一端口,所述可变接口电路被配置为在从多种操作模式选择的操作模式下进行操作;以及
嵌入式操作逻辑电路,被配置为基于所述第二数据和所述第三数据中的所述至少一者来生成所述第一数据。
24.如权利要求23所述的存储设备,其中,所述多种操作模式包括用于支持与所述外部存储设备的通信的交换器操作模式以及用于支持端点设备的操作的端点操作模式,并且
其中,所述可变接口电路被配置为:
当所述第一端口连接至所述外部存储设备时,在所述交换器操作模式下操作;并且
当所述第一端口连接至所述主机时,在所述端点操作模式下操作。
25.一种存储系统,包括:
第一存储设备,包括第一端口和第二端口;以及
第二存储设备,包括第三端口,
其中,所述第二端口连接至所述第三端口,并且所述第一存储设备被配置为通过所述第二端口和所述第三端口与所述第二存储设备通信而无需主机干预,
其中,所述第一存储设备被配置为:基于通过所述第一端口接收的第二数据以及存储在所述第一存储设备中的第三数据中的至少一者,通过所述第二端口来输出第一数据,
其中,所述第二存储设备被配置为:基于通过所述第三端口接收的所述第一数据以及存储在所述第二存储设备中的第五数据中的至少一者来生成第四数据,并且
其中,基于所述第四数据,与所述主机的请求相对应的操作结果被提供至所述主机。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170154281 | 2017-11-17 | ||
KR10-2017-0154281 | 2017-11-17 | ||
KR10-2018-0079419 | 2018-07-09 | ||
KR1020180079419A KR102527832B1 (ko) | 2017-11-17 | 2018-07-09 | 호스트의 개입 없이 외부 장치와 피어-투-피어 통신을 수행하는 스토리지 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109799952A CN109799952A (zh) | 2019-05-24 |
CN109799952B true CN109799952B (zh) | 2024-04-23 |
Family
ID=66336344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811366495.4A Active CN109799952B (zh) | 2017-11-17 | 2018-11-16 | 与外部设备执行对等通信而无需主机干预的存储设备 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10628364B2 (zh) |
CN (1) | CN109799952B (zh) |
DE (1) | DE102018125297A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018125297A1 (de) | 2017-11-17 | 2019-05-23 | Samsung Electronics Co., Ltd. | Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt |
KR102645140B1 (ko) * | 2018-12-06 | 2024-03-07 | 삼성전자주식회사 | Fpga를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20210069481A (ko) | 2019-12-03 | 2021-06-11 | 삼성전자주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법 |
KR20210072503A (ko) | 2019-12-09 | 2021-06-17 | 삼성전자주식회사 | 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템 |
EP3859510B1 (en) * | 2020-01-23 | 2023-05-17 | Samsung Electronics Co., Ltd. | Storage device and storage system performing offloaded tasks from host |
KR20210095761A (ko) | 2020-01-23 | 2021-08-03 | 삼성전자주식회사 | 호스트로부터 오프로드된 작업을 수행하는 스토리지 장치 및 스토리지 시스템 |
US11386015B2 (en) * | 2020-04-22 | 2022-07-12 | Netapp, Inc. | Methods for managing storage systems with dualport solid-state disks accessible by multiple hosts and devices thereof |
KR20210145513A (ko) * | 2020-05-25 | 2021-12-02 | 삼성전자주식회사 | 디스플레이 장치 및 그 제어 방법 |
US11880568B2 (en) | 2021-11-17 | 2024-01-23 | Seagate Technology Llc | On demand configuration of FPGA interfaces |
US11983428B2 (en) * | 2022-06-07 | 2024-05-14 | Western Digital Technologies, Inc. | Data migration via data storage device peer channel |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716453A (zh) * | 2004-01-30 | 2006-01-04 | 三星电子株式会社 | 在主机和非易失性存储设备间进行缓冲的多端口存储设备 |
CN106796544A (zh) * | 2014-10-03 | 2017-05-31 | 新加坡科技研究局 | 主动存储单元和阵列 |
CN107015890A (zh) * | 2015-12-01 | 2017-08-04 | 三星电子株式会社 | 存储设备、具有其的服务器系统以及其操作方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437493B2 (en) * | 2001-09-28 | 2008-10-14 | Dot Hill Systems Corp. | Modular architecture for a network storage controller |
US7447834B2 (en) * | 2005-06-29 | 2008-11-04 | Emc Corproation | Managing serial attached small computer systems interface communications |
TW200727139A (en) * | 2006-01-06 | 2007-07-16 | Tyan Computer Corp | Computer system and memory bridge thereof |
JP5391994B2 (ja) * | 2009-10-19 | 2014-01-15 | 富士通株式会社 | ストレージシステム,制御装置および診断方法 |
JP5957647B2 (ja) | 2010-06-18 | 2016-07-27 | シーゲイト テクノロジー エルエルシーSeagate Technology LLC | スケーラブルな記憶装置 |
WO2012127529A1 (en) * | 2011-03-23 | 2012-09-27 | Hitachi, Ltd. | Storage apparatus and failure detection method |
US8812899B1 (en) * | 2011-09-29 | 2014-08-19 | Emc Corporation | Managing read caching |
JP5998884B2 (ja) | 2012-11-30 | 2016-09-28 | 富士通株式会社 | ストレージ装置、およびモジュール間データ転送方法 |
BR112016019625B1 (pt) * | 2014-03-11 | 2022-06-21 | Rohm And Haas Company | Método para ligar substratos |
US9852779B2 (en) | 2014-03-12 | 2017-12-26 | Futurewei Technologies, Inc. | Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers |
KR101631461B1 (ko) | 2014-09-30 | 2016-06-17 | 주식회사 네오셈 | 메모리 소자 테스트 장치 및 방법 |
US9804783B1 (en) | 2014-10-17 | 2017-10-31 | Sk Hynix Memory Solutions Inc. | Hierarchical host controller for SSD device |
US9710167B2 (en) | 2014-10-30 | 2017-07-18 | ScaleFlux | Direct non-volatile cache access across devices |
KR102430561B1 (ko) * | 2015-09-11 | 2022-08-09 | 삼성전자주식회사 | 듀얼 포트 디램을 포함하는 메모리 모듈 |
US20170091127A1 (en) | 2015-09-25 | 2017-03-30 | Intel Corporation | Techniques to Couple with a Storage Device via Multiple Communication Ports |
US20190053521A1 (en) | 2015-11-05 | 2019-02-21 | Koninklijke Philips N.V. | Method and device for cooking cereal grains |
KR102631351B1 (ko) * | 2016-10-07 | 2024-01-31 | 삼성전자주식회사 | 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템 |
US10318476B2 (en) * | 2017-05-24 | 2019-06-11 | Netapp, Inc. | Systems and methods for using resources in a networked computing environment |
US20190034306A1 (en) * | 2017-07-31 | 2019-01-31 | Intel Corporation | Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs |
DE102018125297A1 (de) * | 2017-11-17 | 2019-05-23 | Samsung Electronics Co., Ltd. | Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt |
US10592144B2 (en) * | 2018-08-03 | 2020-03-17 | Western Digital Technologies, Inc. | Storage system fabric with multichannel compute complex |
-
2018
- 2018-10-12 DE DE102018125297.8A patent/DE102018125297A1/de active Pending
- 2018-10-25 US US16/170,264 patent/US10628364B2/en active Active
- 2018-11-16 CN CN201811366495.4A patent/CN109799952B/zh active Active
-
2020
- 2020-04-20 US US16/853,373 patent/US11055251B2/en active Active
-
2021
- 2021-06-09 US US17/343,215 patent/US11816055B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716453A (zh) * | 2004-01-30 | 2006-01-04 | 三星电子株式会社 | 在主机和非易失性存储设备间进行缓冲的多端口存储设备 |
CN106796544A (zh) * | 2014-10-03 | 2017-05-31 | 新加坡科技研究局 | 主动存储单元和阵列 |
CN107015890A (zh) * | 2015-12-01 | 2017-08-04 | 三星电子株式会社 | 存储设备、具有其的服务器系统以及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102018125297A1 (de) | 2019-05-23 |
US20200250121A1 (en) | 2020-08-06 |
US11055251B2 (en) | 2021-07-06 |
US11816055B2 (en) | 2023-11-14 |
US20190155777A1 (en) | 2019-05-23 |
CN109799952A (zh) | 2019-05-24 |
US20210294769A1 (en) | 2021-09-23 |
US10628364B2 (en) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109799952B (zh) | 与外部设备执行对等通信而无需主机干预的存储设备 | |
CN107643996B (zh) | 包括单端口存储控制器的基于pci express的双端口存储盒 | |
KR102542562B1 (ko) | 모듈화된 불휘발성 플래시 메모리 블레이드 | |
US9135190B1 (en) | Multi-profile memory controller for computing devices | |
US11157200B2 (en) | Communicating over portions of a communication medium | |
US9442877B2 (en) | Storage device | |
JP2013541742A (ja) | 動的マルチリンク編集パーティション分割システム及び方法 | |
KR102527832B1 (ko) | 호스트의 개입 없이 외부 장치와 피어-투-피어 통신을 수행하는 스토리지 장치 | |
KR20190112626A (ko) | 어레이 내에서 솔리드 스테이트 드라이브들을 자율적으로 관리하는 메커니즘 | |
JP2018503156A (ja) | 書込み要求処理方法、プロセッサおよびコンピュータ | |
US20210096968A1 (en) | Server system | |
EP3750059B1 (en) | Server system | |
US11316917B2 (en) | Methods and apparatus for peer-to-peer data channels for storage devices | |
CN107632951B (zh) | 控制非直接串行连接存储设备的设备及其应用和操作方法 | |
US10200462B2 (en) | Memory system including plurality of server nodes sharing storage array and operating method of memory system | |
US11409538B2 (en) | Data processing system and method for configuring and operating a data processing system | |
CN106155573B (zh) | 用于存储设备扩展的方法、装置以及扩展的存储设备 | |
US9875205B1 (en) | Network of memory systems | |
US10628042B2 (en) | Control device for connecting a host to a storage device | |
US12010170B2 (en) | Methods and apparatus for peer-to-peer data channels for storage devices | |
US20230222062A1 (en) | Apparatus and method for cache-coherence | |
EP3859510B1 (en) | Storage device and storage system performing offloaded tasks from host | |
US10459842B1 (en) | Data storage system with configurable prefetch buffers |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |