CN115202568A - 存储系统及其操作方法 - Google Patents

存储系统及其操作方法 Download PDF

Info

Publication number
CN115202568A
CN115202568A CN202111643697.0A CN202111643697A CN115202568A CN 115202568 A CN115202568 A CN 115202568A CN 202111643697 A CN202111643697 A CN 202111643697A CN 115202568 A CN115202568 A CN 115202568A
Authority
CN
China
Prior art keywords
storage device
slave
data
master
ssd
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
Application number
CN202111643697.0A
Other languages
English (en)
Inventor
全勇泰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN115202568A publication Critical patent/CN115202568A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common 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/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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • 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/0024Peripheral component interconnect [PCI]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种存储系统及其操作方法。该存储系统包括:主存储装置,被配置成基于由主机确定的RAID级别来存储数据;从存储装置,被配置成根据从主存储装置分发的命令来存储数据;以及控制器集线器,被配置成将从存储装置联接到主存储装置,其中主存储装置进一步被配置成在主存储装置接收到来自主机的命令处理请求时通过控制器集线器将命令传送到从存储装置,并且当响应于命令处理请求,主存储装置和从存储装置的操作完成时,向主机传输完成队列(CQ)。

Description

存储系统及其操作方法
相关申请的交叉引用
本申请要求于2021年4月6日提交的申请号为10-2021-0044873的韩国专利申请的优先权,并且该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体上涉及一种电子装置,并且更特别地,涉及一种存储系统及其操作方法。
背景技术
独立磁盘冗余阵列(RAID)是多个硬盘分发和存储数据的技术,并且也被称为磁盘阵列。RAID包括根据级别来分发和存储数据的各个方案。根据级别,可以增加存储装置的可靠性或者可以提高存储装置的整体性能。
存储装置可以响应于诸如计算机或智能电话的主机装置的控制而存储数据。存储装置可以包括存储数据的存储器装置和控制该存储器装置的存储器控制器。通常,存储器装置有两种类型:易失性存储器装置和非易失性存储器装置。
易失性存储器装置可以仅在向其供应电力时存储数据,并且在不被供应电力时可能丢失其中存储的数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)装置、动态随机存取存储器(DRAM)装置等。
即使当电力供应中断或阻断时,非易失性存储器装置也可以保留存储的数据。非易失性存储器装置的示例包括只读存储器(ROM)装置、可编程ROM(PROM)装置、电可编程ROM(EPROM)装置、电可擦除可编程ROM(EEPROM)装置、闪速存储器装置等。
发明内容
本公开的各个实施例涉及一种能够在不包括单独的RAID控制器的情况下根据RAID方法来存储数据的存储系统以及操作该存储系统的方法。
根据本公开的实施例,一种存储系统可以包括:主存储装置,被配置成基于由主机确定的RAID级别来存储数据;从存储装置,被配置成根据从主存储装置分发的命令来存储数据;以及控制器集线器,被配置成将从存储装置联接到主存储装置,其中主存储装置进一步被配置成在主存储装置接收到来自主机的命令处理请求时通过控制器集线器将命令传送到从存储装置,并且在响应于命令处理请求,主存储装置和从存储装置的操作完成时,向主机传输完成队列(CQ)。
根据本公开的实施例,一种操作存储系统的方法,该存储系统包括主存储装置、从存储装置和控制器集线器,该控制器集线器将主存储装置联接到从存储装置,该方法可以包括:由主存储装置接收来自主机的命令处理请求;由主存储装置,根据预定的独立磁盘冗余阵列(RAID)级别通过控制器集线器来分发命令处理请求;由主存储装置和从存储装置,执行与命令处理请求相对应的操作;并且当操作完成时由主存储装置向主机传输完成队列(CQ)。
根据本公开的实施例,一种存储装置的操作方法可以包括:将来自主机的独立磁盘冗余阵列(RAID)请求通过集线器分发到一个或多个从存储装置,同时响应于RAID请求来执行RAID操作,并且在接收到来自从存储装置的响应时向主机传输完成队列(CQ),该响应指示各个从存储装置响应于RAID请求而完成了RAID操作。
附图说明
图1是示出根据本公开的实施例的计算系统的示图;
图2是示出根据本公开的实施例的存储系统的示图;
图3是示出根据本公开的实施例的固态驱动器(SSD)的示图;
图4是示出根据本公开的实施例的存储器控制器的示图;
图5是示出根据本公开的实施例的RAID级别0和RAID级别1的示图;
图6是示出根据本公开的实施例的RAID级别4和RAID级别5的示图;
图7是示出根据本公开的实施例的嵌套RAID级别的示图;
图8是示出根据本公开的实施例的操作存储系统的方法的示图;
图9是示出根据本公开的实施例的操作存储系统的方法的示图;
图10是示出根据本公开的实施例的包括多个功能模块(functions)的存储系统的操作的示图;并且
图11是示出根据本公开的实施例的操作存储系统的方法的示图。
具体实施方式
在本公开的以下实施例的上下文中公开了本公开的具体结构和功能特征。然而,本公开可以以与本文公开的不同地配置、布置或实现。因此,本公开不限于任何特定实施例也不限于任何特定细节。而且,在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。此外,除非明确表示仅有一个,否则不定冠词(即“一”或“一个”)的使用表示一个或多个。类似地,本文中使用的术语“包括”、“包括有”、“具有”等,不排除存在或添加除了所述元件之外的一个或多个其他元件。
还应当注意的是,在不脱离本发明的范围的情况下,一个实施例中存在的特征可以与另一实施例的一个或多个特征一起使用。
进一步注意的是,在各个附图中,相同的附图标记指示相同元件。
此外,可以对根据所公开构思的所描述实施例进行各种修改和改变。进一步注意的是,所描述实施例可以在简化的附图中示出。然而,根据本公开的构思的实施例不被解释为限于特定的公开,并且可以包括不脱离本公开的精神和技术范围的所有改变方案、等效方案或替代方案。在一些实施例中,将不再详细描述公知的处理、装置结构和技术,以避免本公开与公知细节混淆。这旨在通过省略不必要的描述来更清楚地公开本公开的要旨。
下文中,参照附图更详细地描述本公开的各个实施例。
图1是示出根据本公开的实施例的计算系统10000的示图。
参照图1,计算系统10000可以包括主机装置1000、主固态驱动器(SSD)400和从SSD500。例如,计算系统10000可以是蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、显示装置、平板PC等。
主机装置1000可以包括动态随机存取存储器(DRAM)100、控制器集线器200和中央处理单元(CPU)300。
DRAM 100可以存储用于执行主机装置1000的操作的数据、命令或程序代码。根据实施例,DRAM 100可以存储用于运行一个或多个操作系统(OS)与虚拟机(VM)的程序代码以及用于运行管理VM的虚拟化中介(VI)的程序代码。
控制器集线器200可以是高速外围组件互连(PCIe)互连架构中的根集线器、根联合体或根控制器。例如,控制器集线器200可以包括芯片组、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。另外,控制器集线器200可以将DRAM100和CPU 300联接到输入/输出(I/O)层级。控制器集线器200可以支持点对点(P2P)路由。控制器集线器200可以包括至少一个主机桥和一个根端口。控制器集线器200可以支持一个或多个PCIe端口。
CPU 300通常可以控制计算系统10000。更具体地,CPU 300可以包括用于控制计算系统10000的组件的数据处理和操作的电路、接口或程序代码。
计算系统10000可以包括主SSD 400和从SSD 500。主SSD 400和从SSD 500可以存储数据。更具体地,主SSD 400和从SSD 500可以响应于来自CPU 300的命令处理请求来存储从主机装置1000接收的数据。根据本公开的实施例,当主SSD 400从CPU 300接收到命令处理请求时,主SSD 400可以通过控制器集线器200将与从SSD 500相对应的命令传送到从SSD500。更具体地,主SSD 400可以根据由主机装置1000或CPU 300确定的独立磁盘冗余阵列(RAID)级别来存储数据。主SSD 400可以将与从SSD 500相对应的命令传送到从SSD 500,使得从SSD 500根据所确定的RAID级别来存储数据。主SSD 400可以使用由控制器集线器200支持的P2P路由。进一步地,主SSD 400可以用作RAID控制器。通常,需要单独的RAID控制器通过与RAID相对应的方法来存储或读取数据。然而,根据本公开的实施例,SSD可以在没有单独的RAID控制器或硬件装置的情况下通过使用P2P路由来执行RAID控制器的功能。
主SSD 400和从SSD 500可以执行与命令处理请求相对应的内部操作。内部操作可以是用于读取主SSD 400或从SSD 500中存储的数据的读取操作,或者用于将数据存储在主SSD 400或从SSD 500中的写入操作。例如,主SSD 400或从SSD 500可以通过与RAID级别0相对应的方法来存储数据或读取所存储的数据。
在根据本公开的实施例中,SSD以不同的名称(即主SSD 400和从SSD 500)来描述,以用于功能分类。然而,当实施包括SSD的计算系统时,可以使用相同类型的SSD。可选地,主SSD 400和从SSD 500可以形成为具有物理上相同的电路。另外,SSD用作主SSD 400还是从SSD 500可以由主机装置1000或CPU 300确定。更具体地,主机装置1000或CPU 300可以将联接到主机装置1000的多个SSD中的一个设置为主SSD 400,并且将除了主SSD 400之外的其余SSD设置为从SSD 500。主机装置1000或CPU 300可以根据用户使用软件或应用而输入的命令来确定主SSD 400和从SSD 500。另外,主机装置1000或CPU 300也可以以相同方式来确定根据由主SSD 400和从SSD 500形成的RAID级别的存储方法。
可选地,SSD用作主SSD 400还是从SSD 500可以由主机装置1000或CPU 300确定,并且可以任意确定。更具体地,主机装置1000或CPU 300可以识别联接到控制器集线器200的多个SSD,并且主机装置1000或CPU 300可以在多个SSD之中设置联接到控制器集线器200的特定端口的SSD,以用作主SSD 400。特定端口可以指与多个SSD之中的首先联接到控制器集线器200或主机装置1000的SSD相对应的端口。替代地,特定端口可以是与总线编号之中的最小总线编号相对应的端口。上述方法相当于设置主SSD 400和从SSD 500的实施例。然而,可以通过除了上述方法之外的各种方法来设置主SSD 400和从SSD 500。
图1示出具有固态驱动器(SSD,例如,主SSD 400和从SSD 500)联接到主机装置1000的结构的实施例。然而,本公开的实施例不限于此,并且主SSD 400和从SSD 500可以由除了SSD之外的存储装置替换。例如,主SSD 400和从SSD 500可以被实现为诸如以下的各种类型的存储装置中的任意一种:多媒体卡(MMC)形式的多媒体卡(例如eMMC、RS-MMC或微型MMC)、SD形式的安全数字卡(例如,迷你SD或微型SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡型存储装置、外围组件互连(PCI)卡型存储装置、高速PCI(PCIe)卡型存储装置、紧凑型闪存(CF)卡、智能媒体卡和/或记忆棒。
图2是示出根据本公开的实施例的存储系统20000的示图。
参照图2,存储系统20000可以包括控制器集线器200、主SSD 400和从SSD 500。因为上面详细描述了控制器集线器200和主SSD 400,所以为了简洁将省略重复的描述。
主SSD 400可以包括功能模块。更具体地,主SSD 400可以包括功能模块0 410和功能模块1 420。该功能模块可以是用于提供存储装置中包括的物理资源的单独操作的单元。在图2中,通过示例的方式,示出了主SSD 400中包括的两个功能模块。然而,根据实施例,主SSD 400中包括的功能模块数量不限于两个,并且从SSD 500也可以包括多个功能模块。
从SSD 500可以包括多个SSD。更具体地,从SSD 500可以包括第一从SSD 510、第二从SSD 520和第三从SSD 530。因为参照图1详细描述了第一从SSD 510至第三从SSD 530中的每一个,所以为了简洁将省略重复的描述。根据下面将描述的RAID方案,第一从SSD 510、第二从SSD 520和第三从SSD 530可以一起被视为单个存储阵列。根据本公开的实施例,第一从SSD 510、第二从SSD 520和第三从SSD 530可以根据从主SSD 400分发的命令执行内部操作。内部操作可以是用于读取从SSD 500中存储的数据的读取操作,或者用于将数据存储在从SSD 500中的写入操作。在图2中,通过示例的方式,示出了从SSD 500中包括的三个功能模块。然而,从SSD 500中包括的SSD的数量不限于此。
交换机600可以向上游或下游路由数据包或消息。更具体地,交换机600可以将数据包或消息自从SSD 500向上路由到控制器集线器200。可选地,交换机600可以将数据包或消息从控制器集线器200向下路由到从SSD 500。
根据实施例,交换机600可以被称为多个虚拟PCI至PCI桥装置的逻辑组件(assembly)。可以联接到交换机600的装置的示例包括联接到电子系统的任意内部或外部装置或者组件,诸如I/O装置、网络接口控制器(NIC)、插件卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、移动存储装置、火线装置、通用串行总线(USB)装置、扫描仪和另一输入/输出装置。尽管未详细说明,但该装置可以包括支持遗留版本或其他版本的PCI装置的PCIe至PCI/PCIX桥。
图3是示出根据本公开的实施例的固态驱动器(SSD)的示图。
参照图3,SSD可以包括存储器控制器2100、多个闪速存储器2200、缓冲器存储器2300和辅助电源2400。
根据实施例,控制器2100可以响应于从主机装置1000接收的信号来控制多个闪速存储器2200。例如,信号可以是基于主机装置1000和SSD的接口的信号。更具体地,信号可以是根据外围组件互连(PCI)或高速PCI(PCIe)定义的或者由诸如以下的接口中的至少一个定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和高速非易失性存储器(NVMe)。
缓冲存储器2300可以作为SSD的内部存储器来操作。例如,缓冲存储器2300可以临时存储从主机装置1000接收的数据或从多个闪速存储器2200接收的数据,或者可以临时存储多个闪速存储器2200的元数据(例如,映射表)。缓冲存储器2300可以包括诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、低功耗DDR SDRAM(LPDDR SDRAM)和图形RAM(GRAM)的易失性存储器或者诸如铁电RAM(FRAM)、电阻式RAM(ReRAM)、自旋转移扭矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器。
辅助电源2400可以利用从主机装置1000供应的电力来充电。当从主机装置1000不平稳地供应电力时,辅助电源2400可以向SSD供应电力。例如,辅助电源2400可以设置在SSD的内部或外部。例如,辅助电源2400可以设置在主板中,并且可以向SSD供应辅助电力。
图4是示出根据本公开的实施例的存储器控制器2100的示图。
参照图4,存储器控制器2100可以包括处理器2110、RAM 2120、错误校正码(ECC)电路2130、主机接口2140、ROM 2150和存储器接口2160。图4所示的存储器控制器2100是图3所示的存储器控制器2100的实施例。
处理器2110可以通过使用主机接口2140与主机装置1000或CPU 300通信,并且执行逻辑操作以控制存储器控制器2100的操作。例如,处理器2110可以基于从主机装置1000或CPU 300接收的请求加载编程命令、数据文件或数据结构,执行各个操作,或生成命令和地址。例如,处理器2110可以生成用于执行编程操作、读取操作、擦除操作、暂停操作和参数设置操作的各个命令。
处理器2110可以执行闪存转换层(FTL)的功能。处理器2110可以通过FTL将由主机装置1000或CPU 300提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且通过使用映射表将LBA转换为PBA。根据映射单元,FTL有多种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器2110可以在没有来自主机装置1000的请求的情况下生成命令。例如,处理器2110可以生成用于后台操作的命令,诸如用于存储器装置的损耗均衡的操作和用于存储器装置的垃圾收集的操作。
RAM 2120可以用作处理器2110的缓冲存储器、操作存储器或高速缓存存储器。RAM2120可以存储由处理器2110运行的代码和命令。RAM 2120可以存储由处理器2110处理的数据。当实施RAM 2120时,RAM 2120可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路2130可以检测和校正编程操作或读取操作期间的错误。更具体地,ECC电路2130可以根据错误校正码(ECC)来执行错误校正操作。ECC电路2130可以基于待写入存储器装置的数据来执行ECC编码。经ECC编码的数据可以通过存储器接口2160被传送到存储器装置。另外,ECC电路2130可以对通过存储器接口2160从存储器装置接收的数据执行ECC解码。
主机接口2140可以包括用于在主机装置1000与存储器控制器2100之间交换数据的协议。更具体地,主机接口2140可以被配置成使用外围组件互连(PCI)协议或高速PCI(PCIe)协议来与主机装置1000通信。另外,主机接口2140可以通过诸如以下的各个接口协议中的一个或多个来与主机装置1000通信:通用串行总线(USB)协议、多媒体卡(MMC)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机系统接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、电子集成驱动器(IDE)协议和私有协议。
ROM 2150可以用作存储用于存储器控制器2100的操作的各种类型信息的存储单元。更具体地,ROM 2150可以包括映射表并且映射表可以存储物理到逻辑地址信息和逻辑到物理地址信息。ROM 2150可以由处理器2110控制。
存储器接口2160可以根据处理器2110的控制使用通信协议与存储器装置通信。更具体地,存储器接口2160可以通过通道与存储器装置通信命令、地址和数据。例如,存储器接口2160可以包括NAND接口。
图5是示出根据本公开的实施例的RAID级别0和RAID级别1的示图。
参照图5,示出了根据RAID 0和RAID 1的存储方法。RAID可以是多个存储装置分发和存储数据的方法或方案。根据RAID方案,多个存储装置被视为单个存储阵列。根据作为单个存储阵列的存储装置的结构,RAID方案具有若干级别,包括RAID级别0至6和更高级别。
根据RAID级别0,可以通过将数据条带化(striping)到多个存储装置中来存储数据。术语“条带化”可以指在多个存储装置分发数据的操作。根据RAID级别0,可以使用至少两个存储装置。例如,根据RAID级别0,可以使用第一存储装置和第二存储装置。例如,根据RAID级别0,可以将数据A条带化到第一存储装置和第二存储装置,使得第一块A1、第三块A3、第五块A5和第七块A7被存储在第一存储装置中,并且第二块A2、第四块A4、第六块A6和第八块A8被存储在第二存储装置中。
根据RAID级别0,数据(例如,数据A)的多个段(例如,第一块A1至第八块A8)被分发和存储在多个存储装置中,并且因此可以具有较高存储速度并且可以尽可能地利用多个存储装置的容量。另一方面,根据RAID级别0,当在多个存储装置之中的单个存储装置中存储的一个数据段(例如,第一块A1)中发生错误时,条带化到多个存储装置中的整个数据(例如,数据A)可能不可靠。因此,可能无法确保所存储数据的稳定性。
根据RAID级别1,可以通过将数据镜像到多个存储装置中来存储数据。术语“镜像”可以指将相同数据复制到多个存储装置中的操作。根据RAID级别1,可以使用至少两个存储装置。例如,在与RAID级别1相对应的存储方法中,可以使用第一存储装置和第二存储装置。例如,根据RAID级别1,可以将数据A镜像到第一存储装置和第二存储装置,使得第一块A1、第二块A2、第三块A3和第四块A4被存储在第一存储装置中,并且相同的数据段组(即,第一块A1、第二块A2、第三块A3和第四块A4)被存储在第二存储装置中。
根据RAID级别1,将相同数据镜像到多个存储装置中。因此,当多个存储装置中的一些(例如,第一存储装置)中存储的一些数据段(例如,第一块A1至第四块A4)中发生错误时,即使在多个存储装置之中仅存在一个未发生错误的存储装置(例如,第二存储装置)时,数据(例如,数据A)也可以被恢复。另一方面,根据RAID级别1,因为数据被复制然后被存储,所以根据RAID级别1的性能和容量可能低于其他RAID级别。
图6是示出根据本公开的实施例的RAID级别4和RAID级别5的示图。
参照图6,示出了根据RAID级别4和RAID级别5的存储方案。
根据RAID级别4,可以通过将数据条带化到多个存储装置中并将用于错误校正的奇偶校验位存储在单个存储装置中来存储数据。根据RAID级别4,可以使用至少三个存储装置。例如,根据RAID级别4,可以使用第一存储装置、第二存储装置、第三存储装置和第四存储装置。奇偶校验位可以指用于通过异或(EOR)运算等检测和校正数据错误的数据段。例如,根据RAID级别4,当数据A、数据B、数据C和数据D要被存储时,数据A、数据B、数据C和数据D中的每一个被条带化到第一存储装置、第二存储装置和第三存储装置。例如,数据A的多个段(例如,第一块A1至第三块A3)分发和存储在第一存储装置到第三存储装置中。另外,根据RAID级别4,第一存储装置、第二存储装置和第三存储装置中存储的每个数据(例如,数据A)的奇偶校验位(例如,奇偶校验位Ap)可以存储在第四存储装置中。即,根据RAID级别4,数据被拆分并存储在(n-1)个存储装置中,并且一个存储装置可以用作奇偶校验位专用存储装置。例如,当根据RAID级别4来存储数据A时,数据A的第一块A1可以被存储到第一存储装置,数据A的第二块A2可以被存储到第二存储装置,数据A的第三块A3可以被存储到第三存储装置,以及数据A的奇偶校验Ap可以被存储到第四存储装置。根据RAID级别4,即使当在多个存储装置之中的单个存储装置中存储的一个数据段(例如,第一块A1)中发生错误时,由于奇偶校验位专用存储装置中存储的奇偶校验位(例如,奇偶校验位Ap),所以整个数据(例如,数据A)可以被恢复。然而,当存储装置中存储的两个或多个数据段(例如,第一块A1至第三块A3)中发生错误时,整个数据(例如,数据A)可能无法从错误中恢复,并且负载可能被施加到存储奇偶校验位的存储装置。另外,因为需要奇偶校验位计算来存储奇偶校验位,所以数据存储性能可能劣化。
根据RAID级别5,可以通过将数据条带化到多个存储装置中并将用于错误校正的奇偶校验位存储在单个存储装置中来存储数据。根据RAID级别5,可以使用至少三个存储装置。例如,根据RAID级别5,可以使用第一存储装置、第二存储装置、第三存储装置和第四存储装置。例如,根据RAID级别5,当数据A、数据B、数据C和数据D要被存储时,数据A、数据B、数据C和数据D中的每一个被条带化到第一存储装置至第四存储装置中的三个存储装置中。例如,数据A的多个段(例如,第一块A1至第三块A3)分发和存储在第一存储装置到第三存储装置中。另外,根据RAID级别5,三个存储装置中存储的每个数据(例如,数据A)的奇偶校验位(例如,奇偶校验位Ap)可以被存储在第一存储装置、第二存储装置、第三存储装置和第四存储装置之中的除了三个存储装置之外的剩余一个存储装置中。
RAID级别5与RAID级别4的相同之处在于,每个数据都被拆分并存储在(n-1)个存储装置中并且数据的奇偶校验位被存储到一个存储装置。然而,RAID级别5与RAID级别4的不同之处在于,根据RAID级别5,奇偶校验位不被存储在单个专用存储装置中,而是被分发和存储在多个存储装置中。例如,当根据RAID级别5来存储数据A至D时,数据A的奇偶校验位Ap可以被存储在第四存储装置中,数据B的奇偶校验位Bp可以被存储在第三存储装置中,数据C的奇偶校验位Cp可以被存储在第二存储装置中,并且数据D的奇偶校验位Dp可以被存储在第一存储装置中。根据RAID级别5,奇偶校验位被分发和存储在多个存储装置中,并且因此可以减轻在计算和存储奇偶校验位时出现的负载。另外,根据RAID级别5,即使当在多个存储装置之中的单个存储装置中存储的一个数据段(例如,第一块A1)中发生错误时,因为存储装置中存储的奇偶校验位(例如,奇偶校验位Ap),所以整个数据(例如,数据A)可以被恢复。然而,当存储装置中存储的两个或多个数据段(例如,第一块A1至第三块A3)中发生错误时,整个数据(例如,数据A)可能无法被恢复,并且负载可能被施加到存储奇偶校验位的存储装置。另外,因为需要奇偶校验位计算来存储奇偶校验位,所以数据存储性能可能劣化。
虽然图6中未示出,但RAID级别6可以加强RAID级别5的奇偶校验方案以确保稳定性。根据RAID级别6,数据可以被拆分并存储在(n-2)个存储装置中,并且可以将数据的奇偶校验位存储在两个存储装置中。RAID级别6可能需要至少四个存储装置。另外,根据RAID级别6,即使两个存储装置中存储的两个数据块中都发生错误时,也可以通过两个存储装置中存储的奇偶校验位来恢复整个数据。
图7是示出根据本公开的实施例的嵌套RAID级别的示图。
参照图7,示出了使用RAID级别0和RAID级别1的组合的RAID级别1+0和RAID级别0+1。RAID级别1+0和RAID级别0+1可以基于RAID级别0和RAID级别1。
RAID级别1+0可能需要至少四个存储装置,例如第一存储装置、第二存储装置、第三存储装置和第四存储装置。根据RAID级别1+0,第一存储装置和第二存储装置可以镜像和存储相同数据。第三存储装置和第四存储装置可以镜像和存储相同数据。根据RAID级别1+0,由RAID级别1分组的存储装置的存储装置组可以由RAID级别0分组。例如,根据RAID级别1+0,可以将一组第一存储装置和第二存储装置与一组第三存储装置和第四存储装置条带化。
RAID级别0+1可能需要至少四个存储装置,例如第一存储装置、第二存储装置、第三存储装置和第四存储装置。根据RAID级别0+1,数据可以被条带化并存储在第一存储装置和第二存储装置中。另外,第一存储装置和第二存储装置中存储的数据可以被镜像和存储到第三存储装置和第四存储装置。根据RAID级别0+1,由RAID级别0分组的存储装置的组可以由RAID级别1分组。例如,根据RAID级别0+1,一组第一存储装置和第二存储装置可以将数据镜像到一组第三存储装置和第四存储装置。
图8和图9是示出根据本公开的实施例的操作存储系统20000的方法的示图。在图8和图9中,通过示例的方式,在操作存储装置的方法的以下描述的上下文中,RAID级别是如上参照图5描述的RAID级别0。
参照图8,示出了DRAM 100和存储系统20000。存储系统20000可以包括控制器集线器200、主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530。
主SSD 400可以从主机装置1000接收命令处理请求。命令处理请求可以包括写入请求或读取请求。
在写入操作中,主机装置1000可以仅将命令处理请求传送到主SSD 400。更具体地,主机装置1000的CPU 300可以将数据和命令存储到DRAM 100,并且主SSD 400可以从DRAM 100获取命令。主SSD 400可以基于所确定的RAID级别将命令分发到各个从SSD。更具体地,主SSD 400可以以一对一的方式将分别与第一从SSD 510、第二从SSD 520和第三从SSD 530相对应的命令传送到第一从SSD 510、第二从SSD 520和第三从SSD 530。另外,主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530中的每一个可以执行与命令处理请求相对应的写入操作。更具体地,主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530中的每一个可以基于命令来从DRAM 100接收分别与主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530相对应的数据段。主SSD 400、第一从SSD 510、第二从SSD520和第三从SSD 530中的每一个可以接收用于执行写入操作的数据。例如,主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530可以存储根据RAID级别0条带化的数据段之中的分别与主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530相对应的数据段。另外,第一从SSD 510、第二从SSD 520和第三从SSD 530可以向主SSD 400通知完成与接收到的命令相对应的操作。当主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530的操作完成时,主SSD 400可以向主机装置1000通知完成操作。更具体地,主SSD 400可以向主机装置1000传输完成队列(CQ)。
在读取操作中,主机装置1000可以仅将命令处理请求传送到主SSD 400。更具体地,主机装置1000的CPU 300可以将命令存储到DRAM 100,并且主SSD 400可以从DRAM 100获取命令。主SSD 400可以基于所确定的RAID级别将命令分发到各个从SSD。更具体地,主SSD 400可以以一对一的方式将分别与第一从SSD 510、第二从SSD 520和第三从SSD 530相对应的命令传送到第一从SSD 510、第二从SSD 520和第三从SSD 530。另外,主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530中的每一个可以执行与命令处理请求相对应的读取操作。
更具体地,主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530中的每一个可以基于命令来将与主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530中的每一个相对应的数据传输到DRAM 100。主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530中的每一个可以将读取的数据传输到DRAM 100。例如,主SSD 400、第一从SSD510、第二从SSD 520和第三从SSD 530可以传输根据RAID级别0条带化的数据段之中的分别与主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530相对应的数据段。另外,第一从SSD 510、第二从SSD 520和第三从SSD 530可以向主SSD 400通知完成与接收到的命令相对应的操作。当主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530的操作完成时,主SSD 400可以向主机装置1000通知完成操作。更具体地,主SSD 400可以向主机装置1000传输完成队列(CQ)。在CQ中,可以存储关于从主机装置1000请求的命令的完成信息。
在图8和图9中,通过示例的方式,根据RAID级别0来描述存储系统20000的操作。然而,RAID级别不限于RAID级别0。
更具体地,例如,当根据RAID级别1来执行存储系统20000的操作时,可以以与根据RAID级别0相同的方式来执行存储系统20000的读取操作。然而,在写入操作中,主SSD 400、第一从SSD 510、第二从SSD 520和第三从SSD 530可以存储相同数据。
例如,当根据RAID级别4来执行存储系统20000的操作时,主SSD 400可以计算和存储奇偶校验位。在写入操作中,每个从SSD 500可以存储从DRAM 100接收的数据,并且每个从SSD 500可以将所存储的数据传输到主SSD 400。另外,主SSD 400可以使用自从SSD 500接收的数据来执行奇偶校验位计算,并且可以存储奇偶校验位。在读取操作中,每个从SSD500还可以将要传输到DRAM 100的数据传输到主SSD 400。另外,主SSD 400可以对自从SSD500接收的数据执行奇偶校验位计算和校正。
例如,当存储系统20000根据RAID级别5或RAID级别6来执行操作时,主SSD 400和从SSD 500可以用作存储奇偶校验位的装置并且可以传输用于奇偶校验位计算的数据,而与主SSD 400和从SSD 500的作用无关。RAID级别4的奇偶校验位计算可以由主SSD 400和从SSD 500中的任意一个来执行,而与主SSD 400和从SSD 500的作用无关。
图10是示出根据本公开的实施例的包括多个功能模块的存储系统的操作的示图。
参照图10,主SSD 400和第二从SSD 520中的每一个可以包括多个功能模块。该功能模块可以是用于提供存储装置中包括的物理资源的单独操作的单元。更具体地,主SSD400可以包括功能模块F0 410和功能模块F1 420,并且第二从SSD 520可以包括功能模块F0521和功能模块F1 522。功能模块中的每一个都是单独操作的单元。因此,虽然包括三个物理SSD(即主SSD 400、第一从SSD 510和第二从SSD 520),但是存储系统20000可以被实施成具有五个功能模块SSD。
根据实施例,主SSD 400中包括的功能模块F0 410可以用作上面参照图8和图9描述的主SSD 400。另外,主SSD 400中包括的功能模块F1 420,第一从SSD 510以及第二从SSD520中包括的功能模块F0 521和功能模块F1 522可以用作上面参照图8和图9所述的从SSD500。
图11是示出根据本公开的实施例的操作存储系统的方法的示图。
存储系统20000可以包括主存储装置、从存储装置和将主存储装置联接到从存储装置的控制器集线器。主存储装置和从存储装置可以是固态驱动器(SSD)。控制器集线器可以是支持根据高速外围组件互连(PCIe)的协议的根联合体。存储系统20000可以从主机装置接收命令处理请求(S1110)。主机装置可以通过使用主机存储器来将命令处理请求提供到主存储装置。
存储系统20000可以根据预定的RAID方案通过控制器集线器来分发命令处理请求(S1120)。更具体地,主存储装置可以根据预定的RAID级别或预定的RAID方案来将命令分发到与接收到的命令相对应的从存储装置。
存储系统20000可以执行与命令处理请求相对应的操作(S1130)。与命令处理请求相对应的操作可以是根据预定的RAID方案来存储数据的写入操作或读取所存储的数据的读取操作。当与命令处理请求相对应的操作完成时,存储系统20000可以将完成队列(CQ)传输到主机装置(S1140)。
存储系统20000可以不包括支持RAID方案的单独RAID控制器;而是,存储系统20000中的SSD可以用于执行RAID控制器的功能。在存储系统20000中没有进一步包括单独的RAID控制器或硬件装置的情况下,SSD的功能可以通过使用点对点(P2P)路由来替换RAID控制器的功能。
根据本公开的实施例,可以提供一种在没有单独的RAID控制器的情况下能够根据RAID方法来存储数据的存储系统20000以及操作该存储系统的方法。

Claims (21)

1.一种存储系统,包括:
主存储装置,基于由主机确定的RAID级别来存储数据;
从存储装置,根据从所述主存储装置分发的命令来存储所述数据;以及
控制器集线器,将所述从存储装置联接到所述主存储装置,
其中所述主存储装置进一步:
在所述主存储装置接收到来自所述主机的命令处理请求时通过所述控制器集线器将所述命令传送到所述从存储装置;并且
当响应于所述命令处理请求,所述主存储装置和所述从存储装置的操作完成时,向所述主机传输完成队列即CQ。
2.根据权利要求1所述的存储系统,其中,所述主存储装置进一步控制所述从存储装置,使得所述数据被条带化到所述从存储装置和所述主存储装置。
3.根据权利要求1所述的存储系统,其中,所述主存储装置进一步控制所述从存储装置,使得将所述数据镜像到所述从存储装置和所述主存储装置。
4.根据权利要求1所述的存储系统,其中,所述主存储装置进一步生成并在其中存储用于所述数据的错误校正的奇偶校验位。
5.根据权利要求1所述的存储系统,其中,所述主存储装置和所述从存储装置中的至少一个进一步在其中存储用于所述数据的错误校正的奇偶校验位。
6.根据权利要求1所述的存储系统,
其中所述命令处理请求包括用于读取所述主存储装置和所述从存储装置中存储的所述数据的读取请求,
其中所述主存储装置进一步从其自身读取与所述读取请求相对应的所述数据的一个数据段或者多个数据段,并将从所述主存储装置读取的所述数据段传输到主机存储器,并且
其中所述从存储装置进一步从其自身读取与所述读取请求相对应的所述数据的一个数据段或者多个数据段,并将从所述从存储装置读取的所述数据段传输到所述主机存储器。
7.根据权利要求1所述的存储系统,
其中所述命令处理请求包括用于将所述数据存储到所述主存储装置和所述从存储装置的写入请求,
其中所述主存储装置进一步从主机存储器接收与所述写入请求相对应的所述数据的一个数据段或多个数据段,并在其中存储从所述主机存储器接收的所述数据段,并且
其中所述从存储装置进一步从所述主机存储器接收与所述写入请求相对应的所述数据的一个数据段或多个数据段,并在其中存储从所述主机存储器接收的所述一个数据段或多个数据段。
8.根据权利要求1所述的存储系统,其中,当响应于所述命令处理请求,所述从存储装置的所述操作完成时,所述从存储装置进一步向所述主存储装置通知所述从存储装置的所述操作完成。
9.根据权利要求1所述的存储系统,其中,所述控制器集线器进一步支持所述主存储装置与所述从存储装置之间的点对点路由即P2P路由。
10.根据权利要求9所述的存储系统,其中,所述控制器集线器进一步使用根据外围组件互连即PCI或高速PCI即PCIe的协议。
11.一种操作存储系统的方法,所述存储系统包括主存储装置、从存储装置和控制器集线器,所述控制器集线器将所述主存储装置联接到所述从存储装置,所述方法包括:
由所述主存储装置接收来自主机的命令处理请求;
由所述主存储装置,根据预定的独立磁盘冗余阵列级别即RAID级别通过所述控制器集线器来分发所述命令处理请求;
由所述主存储装置和所述从存储装置,执行与所述命令处理请求相对应的操作;并且
当所述操作完成时由所述主存储装置向所述主机传输完成队列即CQ。
12.根据权利要求11所述的方法,其中,分发所述命令处理请求包括:将命令分发到所述从存储装置,使得待存储的数据被条带化到所述从存储装置和所述主存储装置。
13.根据权利要求11所述的方法,其中,分发所述命令处理请求包括:将命令分发到所述从存储装置,使得待存储的数据被镜像到所述从存储装置和所述主存储装置。
14.根据权利要求11所述的方法,其中,执行所述操作包括:由所述主存储装置生成并在其中存储用于数据的错误校正的奇偶校验位。
15.根据权利要求11所述的方法,其中,执行所述操作包括:由所述主存储装置和所述从存储装置中的至少一个在其中存储用于数据的错误校正的奇偶校验位。
16.根据权利要求11所述的方法,
其中所述命令处理请求包括用于读取所述主存储装置和所述从存储装置中存储的数据的读取请求,并且
其中执行所述操作包括:
由所述主存储装置和所述从存储装置,从其自身中读取与所述读取请求相对应的数据;并且
由所述主存储装置和所述从存储装置,将所读取的数据传输到主机存储器。
17.根据权利要求11所述的方法,
其中所述命令处理请求包括用于将数据存储到所述主存储装置和所述从存储装置的写入请求,并且
其中执行所述操作包括:
由所述主存储装置和所述从存储装置,从主机存储器接收与所述写入请求相对应的数据;并且
由所述主存储装置和所述从存储装置,在其中存储所述数据。
18.根据权利要求11所述的方法,进一步包括:当响应于所述命令处理请求,所述从存储装置的所述操作完成时,所述从存储装置向所述主存储装置通知所述从存储装置的所述操作完成。
19.根据权利要求11所述的方法,其中,所述分发通过所述主存储装置与所述从存储装置之间的点对点路由即P2P路由来执行。
20.根据权利要求19所述的方法,其中,所述分发通过根据外围组件互连即PCI或高速PCI即PCIe的协议来执行。
21.一种存储装置的操作方法,所述方法包括:
将来自主机的独立磁盘冗余阵列请求即RAID请求通过集线器分发到一个或多个从存储装置,同时响应于所述RAID请求来执行RAID操作,并且
在接收到来自所述从存储装置的响应时向所述主机传输完成队列即CQ,所述响应指示各个从存储装置响应于所述RAID请求而完成了所述RAID操作。
CN202111643697.0A 2021-04-06 2021-12-30 存储系统及其操作方法 Pending CN115202568A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210044873A KR102555800B1 (ko) 2021-04-06 2021-04-06 스토리지 시스템 및 그 동작 방법
KR10-2021-0044873 2021-04-06

Publications (1)

Publication Number Publication Date
CN115202568A true CN115202568A (zh) 2022-10-18

Family

ID=83450290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111643697.0A Pending CN115202568A (zh) 2021-04-06 2021-12-30 存储系统及其操作方法

Country Status (4)

Country Link
US (1) US20220318091A1 (zh)
KR (1) KR102555800B1 (zh)
CN (1) CN115202568A (zh)
TW (1) TW202240390A (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101504632B1 (ko) * 2009-03-25 2015-03-20 삼성전자주식회사 레이드를 사용한 장치들과 방법들
US8527699B2 (en) * 2011-04-25 2013-09-03 Pivot3, Inc. Method and system for distributed RAID implementation
KR101988287B1 (ko) * 2012-11-26 2019-06-12 삼성전자주식회사 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법
KR102318478B1 (ko) * 2014-04-21 2021-10-27 삼성전자주식회사 스토리지 컨트롤러, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US10445018B2 (en) 2016-09-09 2019-10-15 Toshiba Memory Corporation Switch and memory device
KR102631351B1 (ko) * 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
US11544000B2 (en) * 2018-08-08 2023-01-03 Marvell Asia Pte Ltd. Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services

Also Published As

Publication number Publication date
KR20220138758A (ko) 2022-10-13
TW202240390A (zh) 2022-10-16
KR102555800B1 (ko) 2023-07-17
US20220318091A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US8694865B2 (en) Data storage device configured to reduce buffer traffic and related method of operation
CN110825318B (zh) 控制器及其操作方法
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
US9189397B2 (en) Data storage device including buffer memory
US9372741B2 (en) Data storage device and operating method thereof
US20200057725A1 (en) Data storage device and operating method thereof
CN109697171B (zh) 控制器及其操作方法
CN111290970B (zh) 存储器系统及其操作方法
US11042317B2 (en) Memory system for reducing fragmentation based on sequential index and operating method thereof
KR20190051530A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
CN109426448B (zh) 存储器系统及其操作方法
US20230280917A1 (en) Storage system and method of operating the same
KR20230160620A (ko) 메모리 시스템에서 데이터를 복구하는 장치 및 방법
CN112711377B (zh) 分布式存储系统的存储节点及其操作方法
KR20230147950A (ko) 시스템 내 전원 손실 데이터 보호를 위한 장치 및 방법
US20220318091A1 (en) Storage system and operating method thereof
CN111198652B (zh) 存储器系统及其操作方法
KR20220049230A (ko) 메모리 시스템에서 비휘발성 메모리 장치 내 오류를 확인하는 장치 및 방법
KR20220086934A (ko) 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법
KR20220120859A (ko) 메모리 시스템 내 에러 정정 코드를 사용하는 장치 및 방법
US20200394134A1 (en) Data storage device and operating method thereof
KR20150044654A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
US11294587B2 (en) Data storage device capable of maintaining continuity of logical addresses mapped to consecutive physical addresses, electronic device including the same, and method of operating the data storage device
CN109992524B (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