TW202240390A - 儲存系統及其操作方法 - Google Patents

儲存系統及其操作方法 Download PDF

Info

Publication number
TW202240390A
TW202240390A TW111106199A TW111106199A TW202240390A TW 202240390 A TW202240390 A TW 202240390A TW 111106199 A TW111106199 A TW 111106199A TW 111106199 A TW111106199 A TW 111106199A TW 202240390 A TW202240390 A TW 202240390A
Authority
TW
Taiwan
Prior art keywords
storage device
data
slave
ssd
master
Prior art date
Application number
TW111106199A
Other languages
English (en)
Inventor
全勇泰
Original Assignee
韓商愛思開海力士有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 韓商愛思開海力士有限公司 filed Critical 韓商愛思開海力士有限公司
Publication of TW202240390A publication Critical patent/TW202240390A/zh

Links

Images

Classifications

    • 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
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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級別來儲存資料;從儲存裝置,被配置成根據從主儲存裝置分發的命令來儲存資料;以及控制器集線器,被配置成將從儲存裝置聯接到主儲存裝置,其中主儲存裝置進一步被配置成在主儲存裝置接收到來自主機的命令處理請求時透過控制器集線器將命令傳送到從儲存裝置,並且當回應於命令處理請求,主儲存裝置和從儲存裝置的操作完成時,向主機傳輸完成佇列(complete queue, CQ)。

Description

儲存系統及其操作方法
本公開的各個實施例總體上係關於一種電子裝置,並且更特別地,係關於一種儲存系統及其操作方法。
獨立磁碟冗餘陣列(Redundant Array of Independent Disks, RAID)是多個硬碟分發和儲存資料的技術,並且也被稱為磁碟陣列。RAID包括根據級別來分發和儲存資料的各個方案。根據級別,可以增加儲存裝置的可靠性或者可以提高儲存裝置的整體性能。
儲存裝置可以回應於諸如計算機或智慧型手機的主機裝置的控制而儲存資料。儲存裝置可以包括儲存資料的記憶體裝置和控制該記憶體裝置的記憶體控制器。通常,記憶體裝置有兩種類型:揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置可以僅在向其供應電力時儲存資料,並且在不被供應電力時可能丟失其中儲存的資料。揮發性記憶體裝置的示例包括靜態隨機存取記憶體(Static Random Access Memory, SRAM)裝置、動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)裝置等。
即使當電力供應中斷或阻斷時,非揮發性記憶體裝置也可以保留儲存的資料。非揮發性記憶體裝置的示例包括唯讀記憶體(Read Only Memory, ROM)裝置、可編程ROM (Programmable ROM, PROM)裝置、電可編程ROM (Electrically Programmable ROM, EPROM)裝置、電可擦除可編程ROM (ctrically Erasable and Programmable ROM, EEPROM)裝置、快閃記憶體裝置等。
本申請請求於2021年4月6日提交的申請號為10-2021-0044873的韓國專利申請的優先權,並且該韓國專利申請透過引用整體併入本文。
本公開的各個實施例涉及一種能夠在不包括單獨的RAID控制器的情況下根據RAID方法來儲存資料的儲存系統以及操作該儲存系統的方法。
根據本公開的實施例,一種儲存系統可以包括:主儲存裝置,被配置成基於由主機確定的RAID級別來儲存資料;從儲存裝置,被配置成根據從主儲存裝置分發的命令來儲存資料;以及控制器集線器,被配置成將從儲存裝置聯接到主儲存裝置,其中主儲存裝置進一步被配置成在主儲存裝置接收到來自主機的命令處理請求時透過控制器集線器將命令傳送到從儲存裝置,並且在回應於命令處理請求,主儲存裝置和從儲存裝置的操作完成時,向主機傳輸完成佇列(complete queue, CQ)。
根據本公開的實施例,一種操作儲存系統的方法,該儲存系統包括主儲存裝置、從儲存裝置和控制器集線器,該控制器集線器將主儲存裝置聯接到從儲存裝置,該方法可以包括:由主儲存裝置接收來自主機的命令處理請求;由主儲存裝置,根據預定的獨立磁碟冗餘陣列(Redundant Array of Independent Disks, RAID)級別透過控制器集線器來分發命令處理請求;由主儲存裝置和從儲存裝置,執行與命令處理請求相對應的操作;並且當操作完成時由主儲存裝置向主機傳輸完成佇列(complete queue, CQ)。
根據本公開的實施例,一種儲存裝置的操作方法可以包括:將來自主機的獨立磁碟冗餘陣列(Redundant Array of Independent Disks, RAID)請求透過集線器分發到一個或多個從儲存裝置,同時回應於RAID請求來執行RAID操作,並且在接收到來自從儲存裝置的回應時向主機傳輸完成佇列(complete queue, CQ),該回應指示各個從儲存裝置回應於RAID請求而完成了RAID操作。
在本公開的以下實施例的上下文中公開了本公開的具體結構和功能特徵。然而,本公開可以以與本文公開的不同地配置、佈置或實現。因此,本公開不限於任何特定實施例也不限於任何特定細節。而且,在整個說明書中,對“實施例”、“另一實施例”等的引用不一定僅針對一個實施例,並且對任何這種短語的不同引用不一定針對相同的實施例。此外,除非明確表示僅有一個,否則不定冠詞(即“一”或“一個”)的使用表示一個或多個。類似地,本文中使用的術語“包括”、“包括有”、“具有”等,不排除存在或添加除了所述元件之外的一個或多個其他元件。
還應當注意的是,在不脫離本發明的範圍的情況下,一個實施例中存在的特徵可以與另一實施例的一個或多個特徵一起使用。
進一步注意的是,在各個附圖中,相同的元件符號指示相同元件。
此外,可以對根據所公開構思的所描述實施例進行各種修改和改變。進一步注意的是,所描述實施例可以在簡化的附圖中示出。然而,根據本公開的構思的實施例不被解釋為限於特定的公開,並且可以包括不脫離本公開的精神和技術範圍的所有改變方案、等效方案或替代方案。在一些實施例中,將不再詳細描述習知的處理、裝置結構和技術,以避免本公開與習知細節混淆。這旨在透過省略不必要的描述來更清楚地公開本公開的要旨。
下文中,參照附圖更詳細地描述本公開的各個實施例。
圖1是示出根據本公開的實施例的計算系統10000的示圖。
參照圖1,計算系統10000可以包括主機裝置1000、主固態硬碟(solid state drive, SSD) 400和從SSD 500。例如,計算系統10000可以是行動電話、智慧型手機、MP3播放器、筆記型電腦、桌上型電腦、顯示裝置、平板PC等。
主機裝置1000可以包括動態隨機存取記憶體(Dynamic Random Access Memory, DRAM) 100、控制器集線器200和中央處理單元(central processing unit, CPU) 300。
DRAM 100可以儲存用於執行主機裝置1000的操作的資料、命令或程式代碼。根據實施例,DRAM 100可以儲存用於運行一個或多個作業系統(operating system, OS)與虛擬機(virtual machine, VM)的程式代碼以及用於運行管理VM的虛擬化中介(virtualization intermediary, VI)的程式代碼。
控制器集線器200可以是高速週邊組件互連(Peripheral Component Interconnect Express, PCIe)互連架構中的根集線器、根複合體或根控制器。例如,控制器集線器200可以包括晶片組、記憶體控制器集線器(memory controller hub, MCH)、北橋、互連控制器集線器(interconnect controller hub, ICH)、南橋和根控制器/集線器。另外,控制器集線器200可以將DRAM 100和CPU 300聯接到輸入/輸出(input/output, I/O)層級。控制器集線器200可以支援點對點(Peer-to-Peer, 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相對應的命令傳送到從SSD 500。更具體地,主SSD 400可以根據由主機裝置1000或CPU 300確定的獨立磁碟冗餘陣列(Redundant Array of Independent Disks, 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示出具有固態硬碟(solid state drive, SSD,例如,主SSD 400和從SSD 500)聯接到主機裝置1000的結構的實施例。然而,本公開的實施例不限於此,並且主SSD 400和從SSD 500可以由除了SSD之外的儲存裝置替換。例如,主SSD 400和從SSD 500可以被實現為諸如以下的各種類型的儲存裝置中的任意一種:多媒體卡(multimedia card, MMC)形式的多媒體卡(例如eMMC、RS-MMC或微型MMC)、SD形式的安全數位卡(例如,迷你SD或微型SD)、通用串列匯流排(Universal Serial Bus, USB)儲存裝置、通用快閃(Universal Flash Storage, UFS)裝置、國際個人電腦記憶卡協會(Personal Computer Memory Card International Association, PCMCIA)卡型儲存裝置、週邊組件互連(Peripheral Component Interconnect, PCI)卡型儲存裝置、高速PCI (PCI Express, PCIe)卡型儲存裝置、緊湊型快閃(Compact Flash, 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裝置、網路介面控制器(network interface controller, NIC)、插件卡、音訊處理器、網路處理器、硬碟驅動器、儲存裝置、CD/DVD ROM、監視器、印表機、滑鼠、鍵盤、路由器、行動儲存裝置、火線裝置、通用串列匯流排(Universal Serial Bus, USB)裝置、掃描器和另一輸入/輸出裝置。儘管未詳細說明,但該裝置可以包括支援舊有版本或其他版本的PCI裝置的PCIe至PCI/PCIX橋。
圖3是示出根據本公開的實施例的固態硬碟(solid state drive, SSD)的示圖。
參照圖3,SSD可以包括記憶體控制器2100、多個快閃記憶體2200、緩衝器記憶體2300和輔助電源2400。
根據實施例,控制器2100可以回應於從主機裝置1000接收的信號來控制多個快閃記憶體2200。例如,信號可以是基於主機裝置1000和SSD的介面的信號。更具體地,信號可以是根據週邊組件互連(Peripheral Component Interconnect, PCI)或高速PCI (PCI Express, PCIe)定義的或者由諸如以下的介面中的至少一個定義的信號:通用串列匯流排(Universal Serial Bus, USB)、多媒體卡(multimedia card, MMC)、嵌入式MMC (embedded MMC, eMMC)、高級技術附件(Advanced Technology Attachment, ATA)、串列ATA、並列ATA、小型計算機系統介面(Small Computer System Interface, SCSI)、增強型小型磁碟介面(Enhanced Small Disk Interface, ESDI)、整合驅動電子(Integrated Drive Electronics, IDE)、火線、通用快閃(Universal Flash Storage, UFS)、WiFi、藍牙和高速非揮發性記憶體(nonvolatile memory express, NVMe)。
緩衝記憶體2300可以作為SSD的內部記憶體來操作。例如,緩衝記憶體2300可以臨時儲存從主機裝置1000接收的資料或從多個快閃記憶體2200接收的資料,或者可以臨時儲存多個快閃記憶體2200的元資料(例如,映射表)。緩衝記憶體2300可以包括諸如動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)、同步DRAM (Synchronous DRAM, SDRAM)、雙倍資料速率SDRAM (Double Data Rate SDRAM, DDR SDRAM)、低功耗DDR SDRAM (Low Power DDR SDRAM, LPDDR SDRAM)和圖形RAM (Graphic RAM, GRAM)的揮發性記憶體或者諸如鐵電RAM (Ferroelectric RAM, FRAM)、電阻式RAM (Resistive RAM, ReRAM)、自旋轉移扭矩磁性RAM (Spin-Transfer Torque Magnetic RAM, STT-MRAM)和相變RAM (Phase-change RAM, PRAM)的非揮發性記憶體。
輔助電源2400可以利用從主機裝置1000供應的電力來充電。當從主機裝置1000不平穩地供應電力時,輔助電源2400可以向SSD供應電力。例如,輔助電源2400可以設置在SSD的內部或外部。例如,輔助電源2400可以設置在主板中,並且可以向SSD供應輔助電力。
圖4是示出根據本公開的實施例的記憶體控制器2100的示圖。
參照圖4,記憶體控制器2100可以包括處理器2110、RAM 2120、錯誤校正碼(error correction code, ECC)電路2130、主機介面2140、ROM 2150和記憶體介面2160。圖4所示的記憶體控制器2100是圖3所示的記憶體控制器2100的實施例。
處理器2110可以透過使用主機介面2140與主機裝置1000或CPU 300通信,並且執行邏輯操作以控制記憶體控制器2100的操作。例如,處理器2110可以基於從主機裝置1000或CPU 300接收的請求加載編程命令、資料文件或資料結構,執行各個操作,或生成命令和位址。例如,處理器2110可以生成用於執行編程操作、讀取操作、擦除操作、暫停操作和參數設置操作的各個命令。
處理器2110可以執行快閃轉換層(flash translation layer, FTL)的功能。處理器2110可以透過FTL將由主機裝置1000或CPU 300提供的邏輯塊位址(logical block address, LBA)轉換為實體塊位址(physical block address, PBA)。FTL可以接收LBA並且透過使用映射表將LBA轉換為PBA。根據映射單元,FTL有多種位址映射方法。典型的位址映射方法包括頁面映射方法、塊映射方法和混合映射方法。
處理器2110可以在沒有來自主機裝置1000的請求的情況下生成命令。例如,處理器2110可以生成用於後臺操作的命令,諸如用於記憶體裝置的損耗均衡的操作和用於記憶體裝置的垃圾收集的操作。
RAM 2120可以用作處理器2110的緩衝記憶體、操作記憶體或高速緩存記憶體。RAM 2120可以儲存由處理器2110運行的代碼和命令。RAM 2120可以儲存由處理器2110處理的資料。當實施RAM 2120時,RAM 2120可以包括靜態RAM (Static RAM, SRAM)或動態RAM (Dynamic RAM, DRAM)。
ECC電路2130可以檢測和校正編程操作或讀取操作期間的錯誤。更具體地,ECC電路2130可以根據錯誤校正碼(error correction code, ECC)來執行錯誤校正操作。ECC電路2130可以基於待寫入記憶體裝置的資料來執行ECC編碼。經ECC編碼的資料可以透過記憶體介面2160被傳送到記憶體裝置。另外,ECC電路2130可以對透過記憶體介面2160從記憶體裝置接收的資料執行ECC解碼。
主機介面2140可以包括用於在主機裝置1000與記憶體控制器2100之間交換資料的協定。更具體地,主機介面2140可以被配置成使用週邊組件互連(Peripheral Component Interconnect, PCI)協定或高速PCI (PCI Express, PCIe)協定來與主機裝置1000通信。另外,主機介面2140可以透過諸如以下的各個介面協定中的一個或多個來與主機裝置1000通信:通用串列匯流排(Universal Serial Bus, USB)協定、多媒體卡(multimedia card, MMC)協定、高級技術附件(anced Technology Attachment, ATA)協定、串列ATA協定、並列ATA協定、小型計算機系統介面(Small Computer System Interface, SCSI)協定、增強型小型磁碟介面(Enhanced Small Disk Interface, ESDI)協定、 整合驅動電子(Integrated Drive Electronics, 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,可以使用第一儲存裝置、第二儲存裝置、第三儲存裝置和第四儲存裝置。奇偶校驗位可以指用於透過互斥或(exclusive OR, 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提取(fetch)命令。主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、第二從SSD 520和第三從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傳輸完成佇列(complete queue, 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、第一從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傳輸完成佇列(complete queue, 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接收的資料來執行奇偶校驗位計算,並且可以儲存奇偶校驗位。在讀取操作中,每個從SSD 500還可以將要傳輸到DRAM 100的資料傳輸到主SSD 400。另外,主SSD 400可以對自從SSD 500接收的資料執行奇偶校驗位計算和校正。
例如,當儲存系統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中的每一個可以包括多個功能模組。該功能模組可以是用於提供儲存裝置中包括的實體資源的單獨操作的單元。更具體地,主SSD 400可以包括功能模組F0 410和功能模組F1 420,並且第二從SSD 520可以包括功能模組F0 521和功能模組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以及第二從SSD 520中包括的功能模組F0 521和功能模組F1 522可以用作上面參照圖8和圖9所述的從SSD 500。
圖11是示出根據本公開的實施例的操作儲存系統的方法的示圖。
儲存系統20000可以包括主儲存裝置、從儲存裝置和將主儲存裝置聯接到從儲存裝置的控制器集線器。主儲存裝置和從儲存裝置可以是固態硬碟(solid state drive, SSD)。控制器集線器可以是支援根據高速週邊組件互連(Peripheral Component Interconnect Express, PCIe)的協定的根複合體。儲存系統20000可以從主機裝置接收命令處理請求(S1110)。主機裝置可以透過使用主機記憶體來將命令處理請求提供到主儲存裝置。
儲存系統20000可以根據預定的RAID方案透過控制器集線器來分發命令處理請求(S1120)。更具體地,主儲存裝置可以根據預定的RAID級別或預定的RAID方案來將命令分發到與接收到的命令相對應的從儲存裝置。
儲存系統20000可以執行與命令處理請求相對應的操作(S1130)。與命令處理請求相對應的操作可以是根據預定的RAID方案來儲存資料的寫入操作或讀取所儲存的資料的讀取操作。當與命令處理請求相對應的操作完成時,儲存系統20000可以將完成佇列(complete queue, CQ)傳輸到主機裝置(S1140)。
儲存系統20000可以不包括支援RAID方案的單獨RAID控制器;而是,儲存系統20000中的SSD可以用於執行RAID控制器的功能。在儲存系統20000中沒有進一步包括單獨的RAID控制器或硬體裝置的情況下,SSD的功能可以透過使用點對點(Peer-to-Peer, P2P)路由來替換RAID控制器的功能。
根據本公開的實施例,可以提供一種在沒有單獨的RAID控制器的情況下能夠根據RAID方法來儲存資料的儲存系統20000以及操作該儲存系統的方法。
100:動態隨機存取記憶體 200:控制器集線器 300:中央處理單元 400:主SSD 410:功能模組0 420:功能模組1 500:從SSD 510:第一從SSD 520:第二從SSD 521:功能模組F0 522:功能模組F1 530:第三從SSD 600:交換機 1000:主機裝置 2100:記憶體控制器 2110:處理器 2120:RAM 2130:錯誤校正碼電路 2140:主機介面 2150:ROM 2160:記憶體介面 2200:快閃記憶體 2300:緩衝器記憶體 2400:輔助電源 10000:計算系統 20000:儲存系統 A1:第一塊 A2:第二塊 A3:第三塊 A4:第四塊 A5:第五塊 A6:第六塊 A7:第七塊 A8:第八塊 Ap:奇偶校驗位 Bp:奇偶校驗位 Cp:奇偶校驗位 Dp:奇偶校驗位 SSD:固態硬碟 S1110:步驟 S1120:步驟 S1130:步驟 S1140:步驟
[圖1]是示出根據本公開的實施例的計算系統的示圖; [圖2]是示出根據本公開的實施例的儲存系統的示圖; [圖3]是示出根據本公開的實施例的固態硬碟(SSD)的示圖; [圖4]是示出根據本公開的實施例的記憶體控制器的示圖; [圖5]是示出根據本公開的實施例的RAID級別0和RAID級別1的示圖; [圖6]是示出根據本公開的實施例的RAID級別4和RAID級別5的示圖; [圖7]是示出根據本公開的實施例的嵌套RAID級別的示圖; [圖8]是示出根據本公開的實施例的操作儲存系統的方法的示圖; [圖9]是示出根據本公開的實施例的操作儲存系統的方法的示圖; [圖10]是示出根據本公開的實施例的包括多個功能模組(functions)的儲存系統的操作的示圖;並且 [圖11]是示出根據本公開的實施例的操作儲存系統的方法的示圖。
100:動態隨機存取記憶體
200:控制器集線器
300:中央處理單元
400:主SSD
500:從SSD
1000:主機裝置
10000:計算系統

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操作。
TW111106199A 2021-04-06 2022-02-21 儲存系統及其操作方法 TW202240390A (zh)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
TW202240390A true TW202240390A (zh) 2022-10-16

Family

ID=83450290

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111106199A TW202240390A (zh) 2021-04-06 2022-02-21 儲存系統及其操作方法

Country Status (4)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008251B2 (en) * 2022-06-22 2024-06-11 Western Digital Technologies, Inc. Rate levelling among peer data storage devices

Family Cites Families (8)

* 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 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
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
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
KR102555800B1 (ko) 2023-07-17
US20220318091A1 (en) 2022-10-06
CN115202568A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
US10866797B2 (en) Data storage device and method for reducing firmware update time and data processing system including the device
TWI723217B (zh) 記憶體系統及其操作方法
US8332579B2 (en) Data storage apparatus and method of writing data
TWI515565B (zh) 直接記憶體存取的方法及其固態磁碟機、電腦程式產品
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
TWI492061B (zh) 經由主機傳輸速率偵測之操作模式或特徵之選擇性啟用
US20210278998A1 (en) Architecture and design of a storage device controller for hyperscale infrastructure
US9189397B2 (en) Data storage device including buffer memory
KR101925870B1 (ko) Ssd 콘트롤러 및 그의 제어 방법
US9372741B2 (en) Data storage device and operating method thereof
US20220229722A1 (en) Method and apparatus to improve performance of a redundant array of independent disks that includes zoned namespaces drives
TWI607309B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
EP3496356A1 (en) Atomic cross-media writes on storage devices
US11042317B2 (en) Memory system for reducing fragmentation based on sequential index and operating method thereof
KR20130079706A (ko) 휘발성 메모리를 포함하는 저장 장치의 구동 방법
TW202240390A (zh) 儲存系統及其操作方法
KR20230040057A (ko) 시스템의 읽기 성능을 개선하기 위한 장치 및 방법
US20230280917A1 (en) Storage system and method of operating the same
US10642531B2 (en) Atomic write method for multi-transaction
TW201935232A (zh) 記憶體管理方法及使用所述方法的儲存控制器
KR20230147950A (ko) 시스템 내 전원 손실 데이터 보호를 위한 장치 및 방법
KR20230160620A (ko) 메모리 시스템에서 데이터를 복구하는 장치 및 방법
CN114595091A (zh) 存储装置和计算系统
CN112711377A (zh) 分布式存储系统的存储节点及其操作方法
CN111309518A (zh) 存储器系统和存储器系统的操作方法