TWI645330B - 固態硬碟存取方法以及使用該方法的裝置 - Google Patents
固態硬碟存取方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TWI645330B TWI645330B TW106123462A TW106123462A TWI645330B TW I645330 B TWI645330 B TW I645330B TW 106123462 A TW106123462 A TW 106123462A TW 106123462 A TW106123462 A TW 106123462A TW I645330 B TWI645330 B TW I645330B
- Authority
- TW
- Taiwan
- Prior art keywords
- hard disk
- namespace
- state hard
- solid state
- entity
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本發明的實施例提出一種固態硬碟存取方法,由處理單元於載入並執行驅動程式時實施,包含:取得資料存取命令,包含命名空間、命令類型及邏輯位置的資訊;依據命名空間決定多個實體儲存對照表中之一者;從決定之實體儲存對照表讀取相應於邏輯位置的實體位置;以及產生並發送資料存取請求給固態硬碟,包含請求類型及實體位置的資訊。
Description
本發明關連於一種儲存裝置,特別是一種固態硬碟存取方法以及使用該方法的裝置。
固態硬碟中通常設置NAND快閃裝置。NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列位元組(bytes)的值到NAND快閃裝置中,並定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,為了提升寫入及讀取的速度,一段連續邏輯位置的資料可能被散佈放置於數個實體的儲存單元中,並且使用實體儲存對應表來指出被寫入到實體儲存單元中的何處。為因應NAND快閃裝置的存取特性,本發明提出一種固態硬碟存取方法以及使用該方法的裝置,用以提升存取效能。
本發明的實施例提出一種固態硬碟存取方法,由處理單元於載入並執行驅動程式時實施,包含:取得資料存取
命令,包含命名空間、命令類型及邏輯位置的資訊;依據命名空間決定多個實體儲存對照表中之一者;從決定之實體儲存對照表讀取相應於邏輯位置的實體位置;以及產生並發送資料存取請求給固態硬碟,包含請求類型及實體位置的資訊。
本發明的實施例提出一種固態硬碟存取裝置,包含:記憶體;及處理單元。記憶體儲存多個實體儲存對照表。處理單元耦接於記憶體,用以於載入並執行驅動程式時取得資料存取命令,包含命名空間、命令類型及邏輯位置的資訊;依據命名空間決定實體儲存對照表中之一者;從記憶體中之決定之實體儲存對照表讀取相應於邏輯位置的實體位置;以及產生並發送資料存取請求給固態硬碟,包含請求類型及實體位置的資訊。
110‧‧‧處理單元(主裝置)
120‧‧‧顯示單元
130‧‧‧輸入裝置
140‧‧‧固態硬碟
150‧‧‧記憶體
160‧‧‧通訊介面
210‧‧‧處理單元
220‧‧‧動態隨機存取記憶體
250‧‧‧存取介面
270‧‧‧存取介面
280‧‧‧儲存單元
270_0、...、270_j‧‧‧存取子介面
280_0_0、...、280_j_i‧‧‧儲存子單元
410_0‧‧‧資料線
420_0_1、...、420_0_i‧‧‧晶片致能控制訊號
500‧‧‧命名空間對照表
510、530、550‧‧‧H2F表
LBA0、LBA1、...、LBA131071‧‧‧邏輯區塊位址
511、531、551‧‧‧實體位置資訊
511a、531a、551a‧‧‧區塊編號
511b、531b、551b‧‧‧單元編號
610‧‧‧應用程式
620‧‧‧作業系統
630‧‧‧驅動程式
640‧‧‧傳輸層
650‧‧‧資料鏈結層
660‧‧‧物理層
S710~S770‧‧‧方法步驟
第1圖係依據本發明實施例的電腦裝置的系統架構圖。
第2圖係依據本發明實施例之固態硬碟的系統架構示意圖。
第3圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第4圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第5A圖係依據本發明實施例之記憶體配置示意圖。
第5B圖係依據本發明實施例之實體儲存對照示意圖。
第6圖係依據本發明實施例之快速周邊元件互聯的階層示
意圖。
第7圖係依據本發明實施例之固態硬碟存取方法的流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例的電腦裝置的系統架構圖。此系統架構可實施於桌上型電腦、筆記型電腦、平板電腦、手機電腦或其他具備運算能力的電子裝置。處理單元110可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行程式碼或軟體時,提供之後所描述的功能。處理單元110可包含運算邏輯單元(ALU,
Arithmetic and Logic Unit)以及位移器(bit shifter)。運算邏輯單元負責執行布林運算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器負責位移運算及位元旋轉。系統架構另包含記憶體150用以儲存執行過程中需要的資料,例如,變數、資料表等,以及固態硬碟(SSD,Solid State Disk)140,用以儲存各式各樣的電子檔案,例如,網頁、文件、音訊檔、視訊檔等。系統架構另包含通訊介面160,讓處理單元110可藉以跟其他電子裝置進行溝通。通訊介面160可以是區域網路通訊模組、無線區域網路通訊模組、藍芽通訊模組或無線電信通訊模組。輸入裝置130可包含鍵盤、滑鼠、觸控面板等。使用者可按壓鍵盤上的硬鍵來輸入字元,藉由操作滑鼠來控制鼠標,或者是在觸控面板製造手勢來控制執行中的應用程式。手勢可包含單擊、雙擊、單指拖曳、多指拖曳等,但不限定於此。顯示單元320可包含顯示面板(例如,薄膜液晶顯示面板、有機發光二極體面板或其他具顯示能力的面板),用以顯示輸入的字元、數字、符號、拖曳鼠標的移動軌跡、繪製的圖案或應用程式所提供的畫面,提供給使用者觀看。
第2圖係依據本發明實施例之固態硬碟的系統架構示意圖。固態硬碟140的系統架構中包含處理單元210,用以寫入資料到儲存單元280中的指定位址,以及從儲存單元280中的指定位址讀取資料。詳細來說,處理單元210透過存取介面270寫入資料到儲存單元280中的指定位址,以及從儲存單元280中的指定位址讀取資料。系統架構使用數個電子訊號來協調處理單元210與儲存單元280間的資料與命令傳遞,包含資料
線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面270可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元280溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元210另可使用存取介面250透過指定通訊協定與處理單元110(又可稱為主裝置host)進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
儲存單元280可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元210進行溝通。第3圖係依據本發明實施例之存取介面與儲存單元的方塊圖。固態硬碟140可包含j+1個存取子介面270_0至270_j,存取子介面又可稱為通道(channel),每一個存取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當固態硬碟140包含4個通道(j=3)且每一個通道連接4個儲存子單元(i=3)時,固態硬碟140一共擁有16個儲存子單元280_0_0至280_j_i。處理單元110可驅動存取
子介面270_0至270_j中之一者,從指定的儲存子單元讀取資料。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第4圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元210可透過存取子介面270_0使用獨立的晶片致能控制訊號420_0_0至420_0_i來從連接的儲存子單元280_0_0至280_0_i中選擇出其中一者,接著,透過共享的資料線410_0從選擇出的儲存子單元的指定位置讀取資料。
於一些實施方式中,主裝置110可透過存取介面250提供邏輯區塊位址(LBA,Logical Block Address)給處理單元210,用以指示寫入或讀取特定區域的資料。為最佳化資料寫入的效率,存取介面270將一段具有連續邏輯區塊位址的資料分散地擺放在儲存單元280中的不同實體區域。因此,固態硬碟140需要於動態隨機存取記憶體220中儲存一個實體儲存對照表(storage mapping table,又稱為H2F Host-to-Flash表),用以指出每個邏輯區塊位址的資料實際儲存於儲存單元280中的哪個位置。然而,因為不具有主裝置110中執行應用程式的知識,存取介面270對資料實體擺放的優化不一定符合主裝置110的需求。
透過本發明實施例的固態硬碟存取方法,可實現將實體資料擺放的優化邏輯放置於主裝置110的目的。主裝置可於記憶體150中儲存多個H2F表,其中每一個H2F表關聯於一個命名空間(namespace)。主裝置110透過H2F表為不同命名空
間定義固態硬碟140中的不同可視實體範圍。命名空間可為64位元或128位元的識別碼(ID,identifier),例如通用唯一識別碼(UUID,Universally Unique Identifier)、全球唯一識別碼(GUID,Globally Unique Identifier)等,或者是自訂長度的使用者識別碼(user ID)。主裝置110可依據不同命名空間制定不同的服務質量(QoS,Quality of Service),並依據服務質量排程相應於不同命名空間的資料存取命令。服務質量描述存取相應於命名空間中的資料的需求條件,例如通過量(throughput)、等待時間等。主裝置110可記錄相應不同命名空間的執行歷史,例如於特定時間點執行特定命名空間的資料存取命令。不同命名空間的服務質量及執行歷史可使用特定資料結構實施,例如資料陣列、資料庫資料表、檔案紀錄等,並儲存於記憶體150。記憶體150儲存命名空間對照表,包含每一命名空間所關聯之H2F表的儲存位址的資訊。範例之命名空間對照表如表1所示:
命名空間對照表包含三筆紀錄,用以描述命名空間”123e4567-e89b-12d3-a456-426655440000”的H2F表從記憶體150的位址0x10000開始儲存,命名空間”123e4567-e89b-12d3-a456-665544000042”的H2F表從記憶體150的位址0x20000開始儲存及命名空間”
123e4567-e89b-12d3-a456-554400004266”的H2F表從記憶體150的位址0x30000開始儲存。
第5A圖係依據本發明實施例之記憶體配置示意圖。記憶體150可儲存命名空間對照表500、命名空間”123e4567-e89b-12d3-a456-426655440000”的H2F表510、命名空間”123e4567-e89b-12d3-a456-665544000042”的H2F表530及命名空間”123e4567-e89b-12d3-a456-554400004266”的H2F表550。H2F表510、530及550中之每一者按照邏輯位置的順序,儲存每一邏輯位置的資料實際儲存於儲存單元280中之哪個實體位置的資訊。邏輯位置可以邏輯區塊位址(LBA,Logical Block Address)表示,每一個邏輯區塊位址對應到儲存單元280中一個固定大小的實體儲存空間,例如256K、512K或1024K位元組(Bytes)。例如,H2F表510依序儲存由LBA0至LBA65535的實體位置資訊;H2F表530依序儲存由LBA0至LBA32767的實體位置資訊;H2F表550依序儲存由LBA0至LBA131071的實體位置資訊。第5B圖係依據本發明實施例之實體儲存對照示意圖。每個邏輯區塊的實體位置資訊可以4個位元組表示。例如,H2F表510、530及550分別包含LBA0的實體位置資訊511、531及551。實體位置資訊511以2個位元組511a紀錄區塊編號(block number)及2個位元組511b紀錄單元編號(unit number),類似地,實體位置資訊531以2個位元組531a紀錄區塊編號及2個位元組531b紀錄單元編號,實體位置資訊551以2個位元組551a紀錄區塊編號及2個位元組551b紀錄單元編號,用以指向儲存單元280中不同的實體位置。須注意的是,因為傳統主裝置中不
儲存H2F表的資訊,無法實現實體資料擺放的優化,更遑論不同命名空間的實體資料擺放的優化。
第6圖係依據本發明實施例之快速周邊元件互聯的階層示意圖。應用程式(application)610可透過作業系統(OS,operating system)620讀取固態硬碟140中特定位址的資料,或寫入資料到固態硬碟140的特定位址。作業系統620發出命令給驅動程式630,使得驅動程式630可產生並傳送相應的讀取與寫入請求給傳輸層(transaction layer)640。傳輸層(transaction layer)640使用封包架構的分割交易(split-transaction)協定,將讀取與寫入請求經由資料鏈結層(data link layer)650及物理層(physical layer)660傳送至固態硬碟140。
驅動程式630可從上層取得資料存取命令,並將資料存取命令依據先後順序推入一至多的先進先出佇列。上層可為應用程式610或作業系統620。例如,記憶體150可配置空間給三個先進先出佇列,分別關聯於命名空間”123e4567-e89b-12d3-a456-426655440000”、”123e4567-e89b-12d3-a456-665544000042”及”123e4567-e89b-12d3-a456-554400004266”。第7圖係依據本發明實施例之固態硬碟存取方法的流程圖。此方法於處理單元110載入並執行驅動程式630時實施。此方法反覆執行一個迴圈(步驟S710至S770),用以處理應用程式610發出的資料存取命令。於每一回合中,依據服務質量及執行歷史從多個命名空間選擇出一者(步驟S710),從相應於選擇出的命名空間的佇列中取得最早進入的資料存取命令,至少包含命名空間、命令類型
及邏輯位置的資訊(步驟S730),藉由搜尋命名空間對照表500來依據命名空間決定多個H2F表中之一者(S750),從決定之H2F表讀取相應於邏輯位置的實體位置(步驟S770),以及產生並發送資料存取請求給固態硬碟140,其中至少包含請求類型及實體位置的資訊(步驟S790)。資料存取命令的命令類型可為資料讀取、資料寫入等。舉例來說,資料存取命令可指示為命名空間”123e4567-e89b-12d3-a456-426655440000”讀取LBA0至LBA10的資料。或者,資料存取命令可指示為命名空間”123e4567-e89b-12d3-a456-426655440000”寫入資料至LBA0至LBA10。於此須注意的是,當固態硬碟140中的處理單元210收到資料存取請求時,不需要做邏輯及實體位置轉換,可直接驅動存取介面270從實體位置讀取資料,或者是寫入資料到實體位置。
雖然第1至4圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第7圖的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權
利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
Claims (18)
- 一種固態硬碟存取方法,由一處理單元於載入並執行一驅動程式時實施,包含:取得一資料存取命令,包含一命名空間、一命令類型及一邏輯位置的資訊;依據上述命名空間決定多個實體儲存對照表中之一者;從上述決定之實體儲存對照表讀取相應於上述邏輯位置的一實體位置;以及產生並發送一資料存取請求給一固態硬碟,包含一請求類型及上述實體位置的資訊。
- 如申請專利範圍第1項所述的固態硬碟存取方法,其中,上述決定之實體儲存對照表按照邏輯位置的順序儲存關聯於上述命名空間的每一邏輯位置的資料實際儲存於上述固態硬碟中之一儲存單元中之哪個實體位置的資訊。
- 如申請專利範圍第1項所述的固態硬碟存取方法,其中,於依據上述命名空間決定多個實體儲存對照表中之一者的步驟中,更包含:藉由搜尋一命名空間對照表來依據上述命名空間決定上述多個實體儲存對照表中之一者。
- 如申請專利範圍第3項所述的固態硬碟存取方法,其中,上述命名空間對照表包含上述命名空間所關聯之上述實體儲存對照表的一儲存位址的資訊。
- 如申請專利範圍第4項所述的固態硬碟存取方法,其中,上述命名空間對照表包含每一上述實體儲存對照表儲存於一 記憶體的一起始位址的資訊。
- 如申請專利範圍第1項所述的固態硬碟存取方法,其中,上述資料存取命令從一上層取得。
- 如申請專利範圍第6項所述的固態硬碟存取方法,其中,上述上層為一應用程式或一作業系統。
- 如申請專利範圍第1項所述的固態硬碟存取方法,其中,上述處理單元設置於上述固態硬碟之外。
- 如申請專利範圍第1項所述的固態硬碟存取方法,更包含:依據一服務質量及一執行歷史從多個命名空間選擇出上述命名空間;其中,上述資料存取命令從相應於上述命名空間的一佇列中取得。
- 一種固態硬碟存取裝置,包含:一記憶體,儲存多個實體儲存對照表;以及一處理單元,耦接於上述記憶體,用以於載入並執行一驅動程式時取得一資料存取命令,包含一命名空間、一命令類型及一邏輯位置的資訊;依據上述命名空間決定上述實體儲存對照表中之一者;從上述記憶體中之上述決定之實體儲存對照表讀取相應於上述邏輯位置的一實體位置;以及產生並發送一資料存取請求給一固態硬碟,包含一請求類型及上述實體位置的資訊。
- 如申請專利範圍第10項所述的固態硬碟存取裝置,其中,上述決定之實體儲存對照表按照邏輯位置的順序儲存關聯於上述命名空間的每一邏輯位置的資料實際儲存於上述固 態硬碟中之一儲存單元中之哪個實體位置的資訊。
- 如申請專利範圍第10項所述的固態硬碟存取裝置,其中,上述記憶體儲存一命名空間對照表,以及上述處理單元藉由搜尋上述命名空間對照表來依據上述命名空間決定上述多個實體儲存對照表中之一者。
- 如申請專利範圍第12項所述的固態硬碟存取裝置,其中,上述命名空間對照表包含上述命名空間所關聯之上述實體儲存對照表的一儲存位址的資訊。
- 如申請專利範圍第13項所述的固態硬碟存取裝置,其中,上述命名空間對照表包含每一上述實體儲存對照表儲存於上述記憶體的一起始位址的資訊。
- 如申請專利範圍第10項所述的固態硬碟存取裝置,其中,上述資料存取命令從一上層取得。
- 如申請專利範圍第15項所述的固態硬碟存取裝置,其中,上述上層為一應用程式或一作業系統。
- 如申請專利範圍第10項所述的固態硬碟存取裝置,其中,上述處理單元設置於上述固態硬碟之外。
- 如申請專利範圍第10項所述的固態硬碟存取裝置,其中,上述處理單元依據一服務質量及一執行歷史從多個命名空間選擇出上述命名空間,以及上述資料存取命令從相應於上述命名空間的一佇列中取得。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710384048.0A CN108959108B (zh) | 2017-05-26 | 2017-05-26 | 固态硬盘访问方法以及使用该方法的装置 |
??201710384048.0 | 2017-05-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI645330B true TWI645330B (zh) | 2018-12-21 |
TW201901405A TW201901405A (zh) | 2019-01-01 |
Family
ID=64401376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106123462A TWI645330B (zh) | 2017-05-26 | 2017-07-13 | 固態硬碟存取方法以及使用該方法的裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10936482B2 (zh) |
CN (1) | CN108959108B (zh) |
TW (1) | TWI645330B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597577A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种处理nvme协议读写命令的方法、系统及相关装置 |
TWI739075B (zh) * | 2019-01-03 | 2021-09-11 | 慧榮科技股份有限公司 | 閃存的資料寫入方法及電腦程式產品 |
CN109902033B (zh) * | 2019-02-13 | 2023-03-14 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
US11068165B2 (en) | 2019-06-27 | 2021-07-20 | Western Digital Technologies, Inc. | Non-volatile memory data write management |
US11656795B2 (en) * | 2021-01-21 | 2023-05-23 | EMC IP Holding Company LLC | Indicating optimized and non-optimized paths to hosts using NVMe-oF in a metro cluster storage system |
CN115963977A (zh) * | 2021-10-08 | 2023-04-14 | 中山市江波龙电子有限公司 | 一种固态硬盘及其数据操作方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150597A1 (en) * | 2007-12-07 | 2009-06-11 | Phison Electronics Corp. | Data writing method for flash memory and controller using the same |
CN102799534A (zh) * | 2012-07-18 | 2012-11-28 | 上海宝存信息科技有限公司 | 基于固态存储介质的存储系统及方法、冷热数据识别方法 |
CN102866956A (zh) * | 2012-09-14 | 2013-01-09 | 上海宝存信息科技有限公司 | 基于固态存储介质的数据实时跟踪存储系统及方法 |
TW201500923A (zh) * | 2013-06-20 | 2015-01-01 | Silicon Motion Inc | 資料儲存裝置及用於快閃記憶體之資料讀取方法 |
TW201508485A (zh) * | 2013-08-30 | 2015-03-01 | Silicon Motion Inc | 資料儲存裝置以及快閃記憶體控制方法 |
US20150106410A1 (en) * | 2013-10-10 | 2015-04-16 | Apple Inc. | Memory System with Shared File System |
US20150234599A1 (en) * | 2013-01-22 | 2015-08-20 | Seagate Technology Llc | Locating data in non-volatile memory |
TWI564809B (zh) * | 2015-09-29 | 2017-01-01 | 上海寶存信息科技有限公司 | 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置 |
TWI570737B (zh) * | 2013-12-26 | 2017-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
CN106527987A (zh) * | 2016-11-04 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种不带dram的ssd主控可靠性提升系统及方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180107591A1 (en) * | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
US9285991B2 (en) * | 2011-04-29 | 2016-03-15 | International Business Machines Corporation | System, method and program product to schedule transfer of data |
US9213632B1 (en) * | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
TWI512467B (zh) | 2014-09-02 | 2015-12-11 | Silicon Motion Inc | 實體儲存對照表維護方法以及使用該方法的裝置 |
TWI512609B (zh) | 2014-09-05 | 2015-12-11 | Silicon Motion Inc | 讀取命令排程方法以及使用該方法的裝置 |
CN104407813B (zh) | 2014-11-20 | 2019-02-19 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid系统及方法 |
US11042300B2 (en) * | 2015-03-31 | 2021-06-22 | Toshiba Memory Corporation | Command load balancing for NVME dual port operations |
US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
JP6398102B2 (ja) * | 2015-05-29 | 2018-10-03 | 東芝メモリ株式会社 | メモリシステム |
WO2017033287A1 (ja) * | 2015-08-25 | 2017-03-02 | 株式会社 東芝 | 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法 |
CN106682003B (zh) * | 2015-11-06 | 2019-09-20 | 中国电信股份有限公司 | 分布式存储命名空间的路径分割映射方法和装置 |
KR102450555B1 (ko) * | 2015-11-09 | 2022-10-05 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US10235198B2 (en) * | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
JP6523193B2 (ja) * | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10296250B2 (en) * | 2016-06-08 | 2019-05-21 | Intel Corporation | Method and apparatus for improving performance of sequential logging in a storage device |
US10229048B2 (en) * | 2016-06-29 | 2019-03-12 | Western Digital Technologies, Inc. | Unified paging scheme for dense and sparse translation tables on flash storage systems |
US10200376B2 (en) * | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10225271B2 (en) * | 2016-09-09 | 2019-03-05 | International Business Machines Corporation | Distributed storage network with enhanced security monitoring |
US10146684B2 (en) * | 2016-10-24 | 2018-12-04 | Datrium, Inc. | Distributed data parallel method for reclaiming space |
KR20180047402A (ko) * | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10062429B1 (en) * | 2017-04-17 | 2018-08-28 | Intel Corporation | System, apparatus and method for segmenting a memory array |
-
2017
- 2017-05-26 CN CN201710384048.0A patent/CN108959108B/zh active Active
- 2017-07-13 TW TW106123462A patent/TWI645330B/zh active
-
2018
- 2018-01-09 US US15/865,469 patent/US10936482B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090150597A1 (en) * | 2007-12-07 | 2009-06-11 | Phison Electronics Corp. | Data writing method for flash memory and controller using the same |
CN102799534A (zh) * | 2012-07-18 | 2012-11-28 | 上海宝存信息科技有限公司 | 基于固态存储介质的存储系统及方法、冷热数据识别方法 |
CN102866956A (zh) * | 2012-09-14 | 2013-01-09 | 上海宝存信息科技有限公司 | 基于固态存储介质的数据实时跟踪存储系统及方法 |
US20150234599A1 (en) * | 2013-01-22 | 2015-08-20 | Seagate Technology Llc | Locating data in non-volatile memory |
TW201500923A (zh) * | 2013-06-20 | 2015-01-01 | Silicon Motion Inc | 資料儲存裝置及用於快閃記憶體之資料讀取方法 |
TW201508485A (zh) * | 2013-08-30 | 2015-03-01 | Silicon Motion Inc | 資料儲存裝置以及快閃記憶體控制方法 |
US20150106410A1 (en) * | 2013-10-10 | 2015-04-16 | Apple Inc. | Memory System with Shared File System |
TWI570737B (zh) * | 2013-12-26 | 2017-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
TWI564809B (zh) * | 2015-09-29 | 2017-01-01 | 上海寶存信息科技有限公司 | 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置 |
CN106527987A (zh) * | 2016-11-04 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种不带dram的ssd主控可靠性提升系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108959108A (zh) | 2018-12-07 |
US20180341579A1 (en) | 2018-11-29 |
CN108959108B (zh) | 2021-08-24 |
TW201901405A (zh) | 2019-01-01 |
US10936482B2 (en) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI645330B (zh) | 固態硬碟存取方法以及使用該方法的裝置 | |
TWI678618B (zh) | 快閃記憶裝置的命名空間操作方法及裝置 | |
KR102683696B1 (ko) | 호스트 메모리 버퍼(Host Memory Buffer)를 관리하기 위한 NVMe(Non-Volatile Memory Express) 컨트롤러를 포함하는 솔리드 스테이트 저장 장치(solid state storage device), 이를 포함하는 시스템 및 호스트의 호스트 메모리 버퍼를 관리하는 방법 | |
JP5384576B2 (ja) | 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 | |
TWI645331B (zh) | 固態硬碟存取方法以及使用該方法的裝置 | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
US20080229046A1 (en) | Unified support for solid state storage | |
US10824574B2 (en) | Multi-port storage device multi-socket memory access system | |
US10303366B2 (en) | Data storage device that divides and processes a command and data processing system including the same | |
US10338830B2 (en) | Methods for accessing a solid state disk for QoS (quality of service) and apparatuses using the same | |
US11835992B2 (en) | Hybrid memory system interface | |
TW201725514A (zh) | 記憶體裝置中邏輯位址歷史管理 | |
KR20190082652A (ko) | 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 | |
TWI810876B (zh) | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 | |
TWI774277B (zh) | 主機命令的執行方法及裝置 | |
TW202416108A (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
TW202416120A (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 |