TWI722392B - 記憶裝置 - Google Patents
記憶裝置 Download PDFInfo
- Publication number
- TWI722392B TWI722392B TW108106682A TW108106682A TWI722392B TW I722392 B TWI722392 B TW I722392B TW 108106682 A TW108106682 A TW 108106682A TW 108106682 A TW108106682 A TW 108106682A TW I722392 B TWI722392 B TW I722392B
- Authority
- TW
- Taiwan
- Prior art keywords
- performance
- request
- host
- processing
- response
- Prior art date
Links
Images
Classifications
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- 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/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7206—Reconfiguration of flash memory system
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)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
Abstract
實施形態提供一種將響應性能調整為最佳之記憶裝置及資訊處理系統。
實施形態之記憶裝置可經由介面與主機連接,且具備包含複數個區塊之非揮發性記憶體、及電性連接於非揮發性記憶體之控制器。控制器以如下方式構成:於自主機接收到請求及旨在使請求之響應性能降低之通知之情形時,決定較請求之處理時間長之響應時間,並執行第1性能降低處理或第2性能降低處理,第1性能降低處理係使用作為響應時間與處理時間之差之第1時間執行非揮發性記憶體之區塊管理處理,第2性能降低處理係使用響應時間對請求進行處理。
Description
本發明之實施形態係關於一種記憶裝置及資訊處理系統。
近年來,具備非揮發性記憶體之儲存器廣泛普及。作為此種儲存器之一,已知有具備NAND(NOT AND,反及)型快閃記憶體之固態驅動器(SSD)。SSD被用作各種計算裝置之主儲存器。
SSD例如於接收到資料之寫入或讀取等請求之情形時,盡最大能力對該請求進行處理。此處,所謂盡最大能力,係指不意圖延遲處理,而是最大限度地充分利用SSD所具備之資源來執行處理。
實施形態提供一種將響應性能調整為最佳之記憶裝置及資訊處理系統。
實施形態之記憶裝置可經由介面與主機連接,且具備包含複數個區塊之非揮發性記憶體、及電性連接於非揮發性記憶體之控制器。控制器以如下方式構成:於自主機接收到請求及使請求之響應性能降低之主旨之通知之情形時,決定較請求之處理時間長之響應時間,並執行第1性能降低處理或第2性能降低處理,第1性能降低處理係使用作為響應時間與處理時間之差之第1時間執行非揮發性記憶體之區塊管理處理,第2性能降低處理係使用響應時間對請求進行處理。
1:電腦系統
1A:電腦系統
2:主機
2A:主機
3:SSD
3A:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
10:匯流排
11:主機介面
12:CPU
13:NAND介面
14:DRAM介面
21:指令控制部
22:FTL
23:查找表
24:垃圾回收控制部
25:耗損平均控制部
26:NAND控制部
30:性能控制部
41:文檔系統
42:操作系統
43:應用程式層
51:程序管理部
52:硬體資源管理部
101:存取類別
102:最近之請求處理時間
103:調整狀態
201:程序ID
202:期待之動作性能
431:I/O特性掌握部
B0~Bm-1:區塊
G1:程序組
G2:程序組
P0~Pn-1:頁
T1:時刻
T2:時刻
T3:時刻
T4:時刻
T5:時刻
TB1:表
TB2:表
△TA:指令處理時間
△TB:響應時間
△Tb:閒置時間
△TC:響應時間
圖1係表示第1實施形態之電腦系統之構成例之方塊圖。
圖2係表示主機與SSD之間之請求及響應之第1例的圖。
圖3係表示主機與SSD之間之請求及響應之第2例的圖。
圖4係表示與第1實施形態之性能調整相關之屬性資訊之一例的圖。
圖5係表示對第1實施形態之SSD之性能調整狀態進行管理之表之一例的圖。
圖6係表示第1實施形態之電腦系統中之性能調整處理之一例的流程圖。
圖7係表示第1實施形態之電腦系統中之性能調整處理之一例的時序圖。
圖8係表示第2實施形態之主機中之程序管理處理之一例的流程圖。
圖9係表示第2實施形態之程序組之一例之圖。
圖10係表示對第3實施形態之各程序之性能調整進行管理之表之一例的圖。
本申請案享有以日本專利申請案2018-172756號(申請日:2018年9月14日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之全部內容。
以下,一面參照圖式,一面對各實施形態進行說明。於以下之說明中,對於大致或實質上相同之功能及構成要素標註相同符號,並
視需要進行說明。
於本實施形態中,所謂I/O(Input/Output,輸入/輸出),例如意指自下述主機(主機裝置)2向SSD3之存取。所謂I/O等待,意指主機2等待來自SSD3之響應之狀態。此處,所謂主機,係對SSD3進行存取之資訊處理裝置。
於本實施形態中,所謂請求,例如意指處理要求。請求主要係自主機2對SSD3發送。對請求進行處理後之SSD3將響應返送至主機2。所謂響應,意指對請求響應處理結果。
以下,對一面於主機2與SSD3中進行協調,一面決定最佳響應性能之主機2及SSD3之構成及處理進行說明。
圖1係表示本實施形態之電腦系統1之構成例之方塊圖。再者,電腦系統1亦被稱為資訊處理系統1。
電腦系統1包含主機2及SSD3。
主機2係對SSD3進行存取之資訊處理裝置(計算裝置)。主機2可為將大量且多樣之資料保存於SSD3中之伺服器(儲存器伺服器),亦可為個人電腦。SSD3係以將資料寫入至如NAND型快閃記憶體之非揮發性記憶體中並自非揮發性記憶體中讀出資料之方式構成之半導體儲存器裝置。
於主機2對SSD3發送請求時,可針對該請求掌握下述第1~第3情況。第1情況係該請求為同步I/O之情形。於該情形時,主機2期待針對該請求之響應盡最大能力自SSD3返回。第2情況係該請求為非同步I/O
且掌握到該請求之處理速度之瓶頸並非對SSD3之存取之情形。第3情況係該請求為非同步I/O且掌握到該請求之處理速度之瓶頸係對SSD3之存取之情形。
於第1及第3情況下,較佳為SSD3盡最大能力對該請求進行處理。另一方面,於第2情況下,由於瓶頸係除對SSD3之存取以外之情況,故而SSD3無須盡最大能力將響應返送至主機2。
SSD3係記憶裝置,可用作作為主機2發揮功能之資訊處理裝置之主儲存器。SSD3可內置於該資訊處理裝置中,亦可經由纜線或網路連接於該資訊處理裝置。SSD3例如作為直接存取儲存器(DAS)電性連接於主機2。
作為用以將主機2與SSD3相互連接之介面,可使用SCSI(Small Computer System Interface,小型電腦系統界面)、Serial Attached SCSI(SAS,串列連接之小型電腦系統界面)、ATA(Advanced Technology Attachment,高階技術附加)、Serial ATA(SATA,串列高階技術附加)、PCI Express(PCIe,快速周邊組件互連)(註冊商標)、Ethernet(註冊商標)、Fibre channel(光纖通道)、NVM Express(NVMe,非揮發性記憶體傳輸界面)(註冊商標)等。
SSD3包含控制器4、NAND型快閃記憶體5等。控制器4例如可藉由如System-on-a-chip(SoC,晶片上系統)之電路實現。SSD3可具備作為揮發性記憶體之隨機存取記憶體、例如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)6。或者亦可將如SRAM(Static Random Access Memory,靜態隨機存取記憶體)之隨機存取記憶體內置於控制器4。
於DRAM6等隨機存取記憶體例如設置有作為用以暫時儲存自NAND型快閃記憶體5讀出之資料之緩衝區域的讀取緩衝器、作為用以暫時儲存寫入至NAND型快閃記憶體5中之資料之緩衝區域的寫入緩衝器、及用於垃圾回收之緩衝器等。再者,DRAM6亦可設置於控制器4之內部。
NAND型快閃記憶體5可包含複數個NAND型快閃記憶體晶片(複數個NAND型快閃記憶體晶片)。
各晶片包含記憶胞陣列。該記憶胞陣列包含複數個NAND區塊(區塊)B0~Bm-1。區塊B0~Bm-1係作為刪除單位發揮功能。區塊有時亦被稱為「物理區塊」或「刪除區塊」。
區塊B0~Bm-1包含複數個頁(物理頁)。即,區塊B0~Bm-1分別包含頁P0~Pn-1。於非揮發性記憶體中,資料之讀出及資料之寫入係以頁單位執行。資料之刪除係以區塊單位執行。
控制器4係以控制NAND型快閃記憶體5之方式構成之記憶體控制器。
控制器4例如包含主機介面11、CPU(Central Processing Unit,中央處理單元)12、NAND介面13、DRAM介面14等。該等主機介面11、CPU12、NAND介面13、DRAM介面14可經由匯流排10相互連接。
主機介面11係作為自主機2接收各種請求並向主機2發送針對該請求之響應之電路發揮功能。請求例如包含I/O指令、控制指令等各種指令。I/O指令中可包含寫入(write)指令、讀取(read)指令、取消映射指令(修整指令)、格式化指令、快閃指令等。再者,寫入指令亦被稱為編程
指令。格式化指令係用以使記憶體系統(SSD3)整體取消映射之指令。快閃指令係用以藉由將高速緩衝於記憶體系統內(經緩衝)之廢資料(使用者資料及相關之管理資料)寫入至NAND型快閃記憶體5中而設成全部清空之狀態之指令。
DRAM介面14係作為以控制DRAM6之存取之方式構成之DRAM控制器發揮功能。
NAND介面13係作為以控制NAND型快閃記憶體5之方式構成之NAND控制電路發揮功能。NAND介面13可經由複數個通道分別連接於NAND型快閃記憶體5內之複數個晶片。
CPU12係以控制主機介面11、NAND介面13、及DRAM介面14之方式構成之處理器。CPU12藉由執行儲存於未圖示之ROM(Read Only Memory,唯讀記憶體)等中之控制程式(韌體)而進行各種處理。
於本實施形態中,CPU12例如係作為指令控制部21、快閃轉譯層(FTL)22等發揮功能。
指令控制部21執行用以對自主機2接收之如上述之各種指令進行處理之指令處理。
快閃轉譯層22執行NAND型快閃記憶體5之資料管理及區塊管理。
資料管理例如包含表示邏輯位址各者與NAND型快閃記憶體5之物理位址各者之間之對應關係之映射資訊之管理等。此處,邏輯位址係為了對SSD3進行位址指定而被主機2使用之位址。作為該邏輯位址,例如使用邏輯區塊位址(LBA)。
邏輯區塊位址(LBA)各者與物理位址各者之間之映射之管
理係使用作為位址轉換表(邏輯物理位址轉換表)發揮功能之查找表23來執行。控制器4使用查找表23,以特定之管理尺寸單位對LBA各者與物理位址各者之間之映射進行管理。與某一LBA對應之物理位址表示寫入有該LBA之資料之NAND型快閃記憶體5內之物理記憶位置。再者,查找表23於SSD3之電源接通時可自NAND型快閃記憶體5下載至DRAM6中。
指令控制部21例如於接收到讀取指令之情形時,基於與邏輯位址(LBA)對應之查找表23之條目,求出與LBA對應之物理位址,並自NAND型快閃記憶體5讀出與讀取指令對應之資料。
又,指令控制部21例如於接收到寫入指令之情形時,根據該寫入指令將自主機2接收到之資料儲存於DRAM6上之緩衝器。進而,指令控制部21藉由向NAND型快閃記憶體5之晶片發送編程指令,而針對該晶片,將儲存於緩衝器中之資料編程至寫入目標區塊。
另一方面,區塊管理例如包含垃圾回收(GC)、耗損平均等。
垃圾回收控制部24執行垃圾回收(GC)。此處,GC係為了生成作為資料之寫入目標區塊之閒置區塊而執行之處理。更具體而言,垃圾回收控制部24自已經完成寫入之區塊(主動區塊)選擇GC源區塊,自GC源區塊收集有效資料,將其寫入至區塊(GC目的地區塊)中,並將原本儲存有有效資料之區塊設為閒置區塊。
耗損平均控制部25執行耗損平均。耗損平均係使區塊之刪除次數平准化之處理。尤其是可藉由防止刪除次數較多之區塊之產生而降低SSD3之故障概率。
NAND控制部26執行上述NAND介面13之控制。
性能控制部30執行SSD3之性能調整處理。更具體而言,性能控制部30例如判定是否根據來自主機2之通知執行性能調整處理。於執行性能調整處理之情形時,性能控制部30於SSD3之性能調整幅度之範圍內提高或降低針對請求之響應性能。
性能控制部30於執行性能調整處理時,算出自主機2接收請求後至向主機2發送響應之前之響應時間(以下,設為響應時間)。又,性能控制部30較佳為預先算出盡最大能力對請求進行處理之情形時所花費之處理時間(以下,設為請求處理時間)。
性能控制部30於該響應時間長於請求處理時間之情形時,算出作為該響應時間與請求處理時間之差之閒置時間。於該情形時,性能控制部30盡最大能力對請求進行處理,且執行於閒置時間內完成之處理(例如,上述GC、耗損平均等)。
又,於該情形時,性能控制部30例如亦可以使用閒置時間(使用響應時間)完成請求之處理之方式降低與請求對應之響應性能。作為降低針對請求之響應性能之例,例如可列舉減少NAND存取之並列數等。所謂NAND存取之並列數,表示可自控制器4對NAND型快閃記憶體5並列存取之通道數量。越是增加該NAND存取之並列數,對NAND型快閃記憶體5之存取速度越高。例如,NAND存取之並列數為16通道之情形時之存取速度與NAND存取之並列數為8通道之情形時相比大致成為2倍。
性能控制部30亦可管理SSD3中之性能調整狀態並通知給主機2。使用圖5於下文中對SSD3之性能調整狀態之管理進行說明。
繼而,對主機2之構成進行說明。主機2具有用以對作為DAS而連接之SSD3進行存取之功能。又,主機2亦可具有用以對網路
(cloud)上之儲存器進行存取之功能。
主機2執行各種程式。藉由資訊處理裝置而執行之程式中包含文檔系統41、操作系統(OS)42、應用程式層43等。
文檔系統41用於進行用於文檔之操作(製作、保存、更新、刪除等)之控制。例如,可將ZFS、Btrfs、XFS、ext4、NTFS等用作文檔系統41。或者,亦可將文檔目標系統(例如Ceph Object Storage Daemon)、Key Value Store System(鍵值存儲系統)(例如Rocks DB)用作文檔系統41。
如通常所知,操作系統(OS)42係以如下方式構成之軟體:對主機2整體進行管理,控制主機2內之硬體,執行用以使應用程式可使用硬體及SSD3之控制。
操作系統42例如包含程序管理部51、硬體資源管理部52等。
程序管理部51對在操作系統42上動作之各種程序之狀態進行管理。
硬體資源管理部52對主機2內之硬體資源之狀態進行管理。作為主機2所具有之硬體資源之例,例如可列舉CPU(Central Processing Unit)、各種儲存器、記憶體、網路等。
於應用程式層43上執行各種應用程式軟體線程。作為應用程式軟體線程之例,有用戶端軟體、資料庫軟體、假想設備等。
於應用程式層43向SSD3發送請求時,應用程式層43首先向OS42發送該請求。OS42將該請求發送至文檔系統41。文檔系統41將該請求轉換成指令(例如,讀取指令、寫入指令等)。文檔系統41將指令發送
至SSD3。於接收到來自SSD3之響應時,文檔系統41將該響應發送至OS42。OS42將該響應發送至應用程式層43。
應用程式層43包含I/O特性掌握部431。I/O特性掌握部431監視於各程序中使用之硬體之狀態,並判定I/O等待是否為瓶頸。
I/O特性掌握部431掌握由程序管理部51管理之各程序之I/O特性,並決定SSD3是否進行性能調整。並且,於主機2向SSD3發送請求時,藉由發送基於該決定之與SSD3之性能調整相關之通知,而指示SSD3進行性能調整。再者,與該性能調整相關之通知之詳細內容使用圖4於下文中進行敍述。
I/O特性掌握部431例如根據下述第1或第2觀點掌握各程序之I/O特性。在第1觀點中,I/O特性掌握部431基於發送I/O請求之單一程序之狀態、種類等判定該程序之I/O特性。即,I/O特性掌握部431判定所發送之I/O請求於執行該程序時是否為瓶頸。
具體而言,例如於程序為動畫播放之情形時,動畫播放中之I/O請求係以用以快取動畫資料之讀取請求之情形較多。因此,亦可判定為該I/O請求無需盡最大能力之響應。
另一方面,在第2觀點中,I/O特性掌握部431基於其他硬體資源之使用率等判定發送I/O請求之程序之I/O特性。
具體而言,例如於在整個主機2中CPU資源之使用率較高、於發送I/O請求之程序中CPU資源亦成為瓶頸之情形時,I/O特性掌握部431亦可判定為該I/O請求無需盡最大能力之響應。
換言之,根據第2觀點,I/O特性掌握部431不僅可基於發送I/O請求之單一程序掌握該程序之I/O特性,亦可基於其他複數個程序之
執行狀態掌握該程序之I/O特性。
再者,I/O特性掌握部431亦可自SSD3獲取性能調整狀態。I/O特性掌握部431例如亦可基於所獲取之性能調整狀態,決定此後之與SSD3之性能調整相關之通知內容。
圖2及圖3係表示比較例之電腦系統1A中之主機2A與SSD3A之間之請求及響應之例的圖。
如圖2所示,於比較例之電腦系統1A中,主機2A對SSD3A發送例如包含讀取指令、寫入指令等之請求,並發送至SSD3A(箭頭A1)。SSD3A盡最大能力對接收到之請求進行處理。並且,SSD3A對主機2A發送針對該請求之響應(箭頭A2)。
即,於比較例之電腦系統1A中,無論於發送該請求之程序中I/O等待是否為瓶頸,均於大致相同之時間內自SSD3A發送響應。
如圖3所示,於比較例之電腦系統1A中,主機2A於在對自SSD3A接收到之響應進行確認後後續不存在依賴SSD3A之處理之情形時,對SSD3A發送休眠指令(箭頭A3)。SSD3A對主機2A發送休眠完成通知(箭頭A4),並轉變成低耗電模式。如上所述,於比較例之電腦系統1A中,主機2A係以若不存在處理對象之請求則將SSD3A轉變成低耗電模式之方式進行控制。藉由將SSD3A轉變成低耗電模式,可限制用於SSD3A之後臺處理即NAND型快閃記憶體之區塊管理之處理(例如,耗損平均、GC等)之執行。
圖4係表示與本實施形態之性能調整相關之屬性資訊之一例的圖。
與性能調整相關之屬性資訊例如為2位元之資訊。該屬性
資訊如上所述,與自主機2發送至SSD3之請求一併通知給SSD3。SSD3基於所接收到之屬性資訊,決定要執行之性能調整處理之內容。
例如,於屬性資訊為“00”之情形時,表示主機2要求SSD3以最高之響應性能(即最佳性能)進行請求之處理。於屬性資訊為“01”之情形時,表示主機2要求SSD3維持當前之響應性能。於屬性資訊為“10”之情形時,表示由於在發送請求之程序中產生I/O等待(I/O瓶頸),故而主機2要求SSD3提高響應性能。於屬性資訊為“11”之情形時,表示由於產生其他資源等待(並非I/O瓶頸),故而主機2要求SSD3降低響應性能。
再者,該屬性資訊例如亦可使用NVMe標準所規定之讀取指令或寫入指令之預約區域之一部分來實現。
又,該屬性資訊例如可為表示性能調整之啟動或關閉之1位元之資訊,亦可為更細緻地體現出性能調整之內容之3位元以上之資訊。於屬性資訊之位元數較多之情形時,例如可對如上所述般使響應性能提高或降低之要求附加與響應性能之調整比率相關之資訊。所謂與響應性能之調整比率相關之資訊,例如係將響應性能自盡最大能力降低多少或使響應性能比當前提高多少等。藉此,SSD3可更細緻地執行性能調整。
圖5係表示對本實施形態之SSD3之性能調整狀態進行管理之表TB1之一例的圖。
SSD3之性能控制部30例如使用表TB1對性能調整狀態進行管理。表TB1例如可記憶最新之請求處理中之性能調整狀態,或亦可記憶過去數次之請求處理中之性能調整狀態。表TB1例如儲存於DRAM6等中。
表TB1將存取類別101、請求處理時間102、調整狀態103等建立關聯後進行管理。
存取類別101表示請求中所包含之指令之種類。請求處理時間102表示各存取類別101之指令處理所花費之時間。
調整狀態103係表示各存取類別101之處理例如自盡最大能力性能調整了多少之資訊。
例如,表TB1示出4KiB隨機讀取之請求處理時間102為x1[us]。又,表TB1示出4KiB隨機讀取以自盡最大能力之狀態使響應性能降低z1[%]之方式進行調整。
又,較佳為於SSD3中預先設定有可進行性能調整之調整幅度。該調整幅度例如可根據NVMe標準之Set Features(設定特徵)指令等進行設定。
性能控制部30基於表TB1中所管理之請求處理時間102與該調整幅度,算出針對當前請求之響應時間。
圖6係表示本實施形態之電腦系統中之性能調整處理之一例的流程圖。於圖6中,於主機2中,對SSD3進行需要存取之程序。
於步驟S101中,主機2對SSD3發送I/O請求。該I/O請求係藉由處理對象之程序之指示來執行。
於步驟S102中,主機2之I/O特性掌握部431確認處理對象之程序是否為I/O瓶頸。於處理對象之程序並非為I/O瓶頸之情形時,處理前進至步驟S103。另一方面,於處理對象之程序為I/O瓶頸之情形時,處理前進至步驟S108。
於步驟S103中,主機2通知SSD3並非為I/O瓶頸。更具體
而言,主機2藉由設為與性能調整相關之屬性資訊“11”,且對在步驟S101中發送之I/O請求附加該屬性資訊,而通知SSD3進行性能調整。
步驟S104及步驟S105係針對SSD3所接收到之I/O請求降低響應性能之處理。於步驟S104中,性能控制部30基於自主機2接收到之性能調整之通知算出閒置時間。於步驟S105中,性能控制部30選擇並執行可於所算出之閒置時間內進行處理之後臺處理。再者,性能控制部30亦可以使用閒置時間(響應時間)完成請求之處理之方式降低請求之響應性能。
於步驟S106中,SSD3對主機2發送已處理過之針對請求之響應。
於步驟S107中,性能控制部30於對性能調整狀態進行管理之表TB1中記錄請求處理所花之時間、調整狀態等。
步驟S108~S112係提高SSD3之響應性能之處理。
於步驟S108中,主機2通知SSD3並非為I/O瓶頸。更具體而言,主機2對在步驟S101中發送之I/O請求附加與性能調整相關之屬性資訊“10”。
於步驟S109中,性能控制部30確認是否已經執行使響應性能降低之處理。更具體而言,性能控制部30藉由讀出表TB1之調整狀態103,來判定使例如請求處理之性能自盡最大能力降低了多少。
於執行了使響應性能降低之處理之情形時,於步驟S110中,性能控制部30執行使響應性能提高之處理。更具體而言,性能控制部30例如可以特定比率減少閒置時間,或亦可增加NAND並列數來縮短響應時間。
另一方面,於步驟S109中,於未執行使響應性能降低之處
理之情形時,由於SSD3已經盡最大能力動作,故而無法進行使響應性能提高之處理(步驟S110)。
步驟S111、S112之處理與步驟S106、S107之處理相同,故而省略說明。
圖7係表示本實施形態之電腦系統中之性能調整處理之一例的時序圖。於圖7中,橫軸表示時間。
首先,主機2對SSD3發送I/O請求。SSD3於時刻T1,開始進行所接收到之I/O請求中所包含之指令處理。SSD3盡最大能力執行該指令處理,並於時間△TA後完成處理。其後,SSD3對主機2發送響應。
主機2自時刻T2執行例如CPU待機程序。其後,對SSD3一併發送旨在並非為I/O瓶頸之通知及I/O請求。
SSD3之性能控制部30基於所接收到之該通知使SSD3之響應性能降低。具體而言,性能控制部30算出閒置時間△Tb。接下來,SSD3例如盡最大能力執行自時刻T3接收到之請求中所包含之指令處理,並於其後之閒置時間△Tb內執行GC。其後,SSD3對主機2發送響應。再者,指令處理時間△TA與閒置時間△Tb之和成為針對該I/O請求之響應時間△TB。
主機2自時刻T4例如進而執行CPU待機程序。其後,對SSD3一併發送旨在並非為I/O瓶頸之通知及I/O請求。
SSD3之性能控制部30基於所接收到之該通知,進而使SSD3之響應性能降低。於圖7之例中,性能控制部30算出閒置時間並且算出響應時間△TC。接下來,性能控制部30自時刻T5執行所接收到之I/O請求中所包含之指令處理,並以指令處理時間成為該響應時間△TC之方式減
少例如NAND存取之並列數。其後,SSD3對主機2發送響應。
於以上所說明之本實施形態中,主機2於某一程序並非為I/O瓶頸之情形時,對SSD3發送I/O請求以及旨在並非為I/O瓶頸之通知。SSD3基於該通知,使SSD3之響應性能降低。藉此,不降低主機2之使用者之體感性能便可執行SSD3之性能調整。
又,SSD3每當因該性能調整產生閒置時間時,使用閒置時間執行耗損平均、GC等區塊管理。因此,由於在SSD3中維持完成區塊管理之狀態,故而與例如集中進行區塊管理之情形時相比,可恆常提高響應性能。更具體而言,可避免因於SSD3內部產生之區塊管理之請求增加而導致來自主機2之請求受到限制之狀態。因此,例如可防止來自SSD3之響應於主機2並無意圖之時序突然延遲。
又,主機2於因性能調整而延遲之時序接收針對該I/O請求之響應。主機2對成為該程序之瓶頸之資源再次進行確認。此處,於尚未產生I/O等待之情形時,進而將並非為I/O瓶頸之主旨通知給SSD3。藉此,主機2可連續地執行SSD3之性能調整。
又,定期地執行上述區塊管理亦有助於SSD3之恆常之波峰功率之抑制。
於本實施形態中,SSD3藉由使使用閒置時間而執行之處理之內容變化,可溫和地改善處理速度以外之SSD3之響應性能。例如,於SSD3之響應性能降低之情形時,藉由使用閒置時間執行區塊管理而改善響應性能。又,於SSD3之耗電較高之情形時,為了使用閒置時間(響應時間)執行請求之處理,可藉由減少NAND存取之並列數來暫時降低耗電。
於本實施形態中,主機2利用讀取指令或寫入指令之預約區域將與性能調整相關之屬性資訊通知給SSD3。即,主機2可利用已有介面將該屬性資訊通知給SSD3,故而可確保電腦系統1之使用者之方便性。
於本實施形態中,主機2基於1個以上之硬體資源之使用率等判定某一程序之I/O特性。即,由於可進行將複數個程序之執行狀態考慮在內之I/O特性之判定,故而I/O特性之判定精度提高。
再者,於本實施形態中,對SSD3對自主機2接收到之單一I/O請求執行性能調整進行了說明。然而,SSD3亦可對複數個I/O請求執行性能調整。藉此,SSD3可進行獲取複數個請求作為1個交易之性能調整,故而可獲得更多之閒置時間。
例如,於自SSD3讀出動畫資料之情形時,自主機2向SSD3發送複數次讀取請求。SSD3例如將複數個讀取請求作為一系列存取序列集中於表TB1中進行管理。藉此,SSD3可集中獲得複數個讀取請求量之閒置時間。
本實施形態係第1實施形態之變化例。於第1實施形態中,對應用程式層43之I/O特性掌握部431決定是否對某一程序進行性能調整進行了說明。另一方面,於本實施形態中,操作系統42對程序進行分組,並針對各程序組決定性能特性。
圖8係表示本實施形態之主機2中之程序管理處理之一例的流程圖。又,圖9係表示本實施形態之程序組之一例之圖。再者,於本實施形態中,由於程序管理部51以外之電腦系統1之構成與第1實施形態相
同,故而省略說明。
於步驟S301中,主機2之程序管理部51根據各性能特性對各程序進行分組。
更具體而言,程序管理部51例如如圖9所示,對複數個程序組進行管理。例如,程序組G1對I/O為瓶頸之程序(例如程序A、B)進行管理,程序組G2對其他硬體資源為瓶頸之程序(例如程序C、D)進行管理。
藉由生成此種程序組,例如於主機2對CPU為瓶頸之程序組中所包含之程序進行處理時,可掌握對SSD3進行性能調整。又,例如於主機2對I/O為瓶頸之程序組中所包含之程序進行處理時,可掌握不對SSD3進行性能調整(即要求盡最大能力進行處理)。
再者,程序管理部51例如可根據各程序之性能特性之變化變更各程序所屬之程序組。
於步驟S302中,程序管理部51基於與步驟S301中所獲得之各程序組之性能特性相關之資訊,決定發送I/O請求之程序之I/O特性。
於步驟S303中,程序管理部51將I/O請求通知給SSD3,並且基於所決定之I/O特性通知有無I/O瓶頸產生。SSD3接收該通知並進行性能調整。關於性能調整處理,由於與利用圖6於上文中說明之處理相同,故而省略說明。
於步驟S304中,程序管理部51視需要變更各程序所屬之程序組。
如以上說明所述,於本實施形態中,操作系統42藉由根據各程序之性能特性生成程序組而對各程序進行管理。藉此,於主機2中無
需用以針對各程序掌握I/O特性之處理,故而主機2之處理負荷降低。
本實施形態係第2實施形態之變化例。於本實施形態中,除第2實施形態以外,亦將需要性能調整之程序預先自主機2通知給SSD3。SSD3依據主機2之指示,記憶表示各程序之響應性能之調整值之資訊。該資訊例如係以表形式表示。SSD3針對與藉由該表而管理之程序相關之請求,基於該表所記載之調整值對響應性能進行調整。關於由SSD3執行之性能調整處理,由於與利用圖6於上文中說明之處理相同,故而省略說明。
再者,由於本實施形態之電腦系統1之構成與第1實施形態相同,故而省略說明。
圖10係表示對本實施形態之各程序之性能調整進行管理之表TB2之一例的圖。
表TB2將程序ID(Identification,標識)201及調整值202等建立關聯後進行管理。
程序ID201係可對程序進行特定之資訊,例如係分配至各程序之ID編號。程序ID例如亦可為程序名等。
調整值202係表示將響應性能降低多少後對與程序相關之請求進行處理之數值。換言之,調整值202表示各程序所期待之動作性能。例如,於圖10之例中,示出SSD3盡最大能力對與程序ID1相關之請求進行處理,且示出以盡最大能力之90%之響應性能對與程序ID2相關之請求進行處理。
表TB2中所包含之內容較佳為可溫和地變更。例如,亦可
根據來自主機2之指示或性能控制部30之指示等進行表TB2中所包含之內容之變更、更新、刪除等。
再者,於主機2將程序ID通知給SSD3時,例如亦可使用NVMe標準所規定之讀取指令或寫入指令之預約區域之一部分。
如以上說明所述,於本實施形態中,於SSD3內部記憶有對進行性能調整之各程序之動作性能之調整值進行管理之表。藉此,於SSD3中,可進行各程序ID之細微之性能調整。
再者,表TB2亦可藉由可將請求與調整值202建立關聯之其他態樣表現。例如,表TB2亦可將資料之類別ID與調整值建立關聯後進行管理。更具體而言,表TB2例如可示出盡最大能力對元資料進行處理,且示出若為動畫資料則以盡最大能力之90%之響應性能進行處理。
於本實施形態中,SSD3例如可根據來自主機2之要求,將各請求之性能調整後之處理時間發送至主機2。性能調整後之處理時間例如可為記錄於表TB1中之處理時間,或亦可為根據過去之執行經歷假定之處理時間。又,SSD3亦可於自主機2接收到該要求之時序,將於SSD3內部並列處理之處理量、剩餘容量等與所假定之處理時間相加。主機2可基於自SSD3發送來之處理時間決定上述調整值202。
已對本發明之若干實施形態進行了說明,但該等實施形態係作為例而提示,並無意圖限定發明之範圍。該等新穎之實施形態可以其他各種形態加以實施,且可於不脫離發明主旨之範圍內進行各種省略、替換、變更。該等實施形態或其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍所記載之發明與其均等之範圍內。
1:電腦系統
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
10:匯流排
11:主機介面
12:CPU
13:NAND介面
14:DRAM介面
21:指令控制部
22:FTL
23:查找表
24:垃圾回收控制部
25:耗損平均控制部
26:NAND控制部
30:性能控制部
41:文檔系統
42:操作系統
43:應用程式層
51:程序管理部
52:硬體資源管理部
431:I/O特性掌握部
B0~Bm-1:區塊
P0~Pn-1:頁
Claims (8)
- 一種記憶裝置,其可經由介面與主機連接,且具備:非揮發性記憶體,其包含1個以上之區塊;及控制器,其電性連接於上述非揮發性記憶體;上述控制器以如下方式構成:於自上述主機接收到請求及旨在使上述請求之響應性能降低之通知之情形下,決定較上述請求之處理時間長之響應時間,並執行第1性能降低處理或第2性能降低處理,上述第1性能降低處理係使用作為上述響應時間與上述處理時間之差之第1時間執行上述非揮發性記憶體之區塊管理處理,上述第2性能降低處理係使用上述響應時間對上述請求進行處理。
- 如請求項1之記憶裝置,其中上述控制器基於表示上述響應性能之調整幅度之第1資訊決定上述響應時間。
- 如請求項2之記憶裝置,其中上述控制器基於上述第1資訊及表示上述處理時間與上述響應性能之調整狀態之第2資訊決定上述響應時間。
- 如請求項1至3中任一項之記憶裝置,其中上述第2性能降低處理係減少針對上述非揮發性記憶體之存取之並列數之處理。
- 如請求項1至3中任一項之記憶裝置,其中上述區塊管理處理包含耗損平均或垃圾回收。
- 一種記憶裝置,其可經由介面與主機連接,且具備:非揮發性記憶體,其包含1個以上之區塊;及控制器,其電性連接於上述非揮發性記憶體;上述控制器以如下方式構成:記憶表示自上述主機接收之各請求之響應性能之調整值之資訊,基於上述資訊決定針對自上述主機接收到之請求之響應時間,並執行第1性能降低處理或第2性能降低處理,上述第1性能降低處理係使用作為上述響應時間與上述所接收到之請求之處理時間之差之第1時間執行上述非揮發性記憶體之區塊管理處理,上述第2性能降低處理係使用上述響應時間對上述所接收到之請求進行處理。
- 如請求項6之記憶裝置,其中上述第2性能降低處理係減少針對上述非揮發性記憶體之存取之並列數之處理。
- 如請求項6或7之記憶裝置,其中上述區塊管理處理包含耗損平均或垃圾回收。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018172756A JP2020046752A (ja) | 2018-09-14 | 2018-09-14 | 記憶装置及び情報処理システム |
JP2018-172756 | 2018-09-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202011197A TW202011197A (zh) | 2020-03-16 |
TWI722392B true TWI722392B (zh) | 2021-03-21 |
Family
ID=69772935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108106682A TWI722392B (zh) | 2018-09-14 | 2019-02-27 | 記憶裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11307797B2 (zh) |
JP (1) | JP2020046752A (zh) |
CN (1) | CN110908595B (zh) |
TW (1) | TWI722392B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301132B2 (en) * | 2019-08-30 | 2022-04-12 | Micron Technology, Inc. | Scheduling media management operations based on provided host system usage requirements |
US11003384B2 (en) | 2019-08-30 | 2021-05-11 | Micron Technology, Inc. | Scheduling media management operations based on determined host system usage requirements |
JP7566676B2 (ja) | 2021-03-22 | 2024-10-15 | キオクシア株式会社 | メモリシステム、および情報処理システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150220278A1 (en) * | 2014-02-05 | 2015-08-06 | Apple Inc. | Dynamic io operation timeout assignment for a solid state drive |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4924428A (en) * | 1987-12-08 | 1990-05-08 | Northern Telecom Limited | Real time digital signal processor idle indicator |
US5856786A (en) * | 1997-03-05 | 1999-01-05 | Northrop Grumman Corporation | Adaptive sleep circuit using network timing feedback |
US5995997A (en) * | 1997-05-02 | 1999-11-30 | Microsoft Corporation | Apparatus and methods for optimally allocating currently available computer resources to future task instances versus continued execution of current task instances |
US6009452A (en) * | 1997-05-02 | 1999-12-28 | Microsoft Corporation | Apparatus and methods for optimally using available computer resources for task execution during idle-time based on probabilistic assessment of future task instances |
US5784616A (en) * | 1997-05-02 | 1998-07-21 | Microsoft Corporation | Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation |
US6160848A (en) | 1998-01-22 | 2000-12-12 | International Business Machines Corp. | Conditional replenishment device for a video encoder |
US7050203B2 (en) * | 2001-06-08 | 2006-05-23 | Kabushiki Kaisha Toshiba | Composite apparatus and method for controlling entering of the sleep state |
JP4841070B2 (ja) * | 2001-07-24 | 2011-12-21 | パナソニック株式会社 | 記憶装置 |
JP3812405B2 (ja) * | 2001-10-25 | 2006-08-23 | 株式会社日立製作所 | ディスクアレイシステム |
JP4287435B2 (ja) * | 2004-01-07 | 2009-07-01 | パナソニック株式会社 | サーバ、機器登録システム |
US20050223385A1 (en) * | 2004-03-31 | 2005-10-06 | Christof Braun | Method and structure for explicit software control of execution of a thread including a helper subthread |
JP4672282B2 (ja) | 2004-05-07 | 2011-04-20 | 株式会社日立製作所 | 情報処理装置、及び情報処理装置の制御方法 |
US8443373B2 (en) * | 2010-01-26 | 2013-05-14 | Microsoft Corporation | Efficient utilization of idle resources in a resource manager |
KR101702392B1 (ko) * | 2010-08-20 | 2017-02-06 | 삼성전자주식회사 | 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 |
US9009391B2 (en) * | 2010-10-25 | 2015-04-14 | Fastor Systems, Inc. | Solid state drive architecture |
KR101861184B1 (ko) * | 2011-11-02 | 2018-05-28 | 삼성전자주식회사 | 스토리지의 동작 성능 조절방법 및 그에 따른 반도체 저장장치 |
US9285858B2 (en) * | 2013-01-29 | 2016-03-15 | Blackberry Limited | Methods for monitoring and adjusting performance of a mobile computing device |
US20140359196A1 (en) * | 2013-05-31 | 2014-12-04 | Daniel J. Ragland | On-the-fly performance adjustment for solid state storage devices |
KR20150068747A (ko) * | 2013-12-12 | 2015-06-22 | 삼성전자주식회사 | 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법 |
US9400654B2 (en) * | 2014-06-27 | 2016-07-26 | Freescale Semiconductor, Inc. | System on a chip with managing processor and method therefor |
KR102291803B1 (ko) * | 2015-04-07 | 2021-08-24 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법 |
JP6517685B2 (ja) * | 2015-12-22 | 2019-05-22 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US9934151B2 (en) * | 2016-06-28 | 2018-04-03 | Dell Products, Lp | System and method for dynamic optimization for burst and sustained performance in solid state drives |
US10235178B2 (en) * | 2017-06-02 | 2019-03-19 | Microsoft Technology Licensing, Llc | Performance scaling for binary translation |
US10929285B2 (en) * | 2018-02-27 | 2021-02-23 | Western Digital Technologies, Inc. | Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer |
KR20200016075A (ko) * | 2018-08-06 | 2020-02-14 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치 |
-
2018
- 2018-09-14 JP JP2018172756A patent/JP2020046752A/ja active Pending
-
2019
- 2019-02-26 CN CN201910143422.7A patent/CN110908595B/zh active Active
- 2019-02-27 TW TW108106682A patent/TWI722392B/zh active
- 2019-03-01 US US16/290,633 patent/US11307797B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150220278A1 (en) * | 2014-02-05 | 2015-08-06 | Apple Inc. | Dynamic io operation timeout assignment for a solid state drive |
Also Published As
Publication number | Publication date |
---|---|
CN110908595A (zh) | 2020-03-24 |
US20200089428A1 (en) | 2020-03-19 |
US11307797B2 (en) | 2022-04-19 |
TW202011197A (zh) | 2020-03-16 |
JP2020046752A (ja) | 2020-03-26 |
CN110908595B (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240134552A1 (en) | Storage device that secures a block for a stream or namespace and system having the storage device | |
US10592117B2 (en) | Memory system and method for controlling nonvolatile memory | |
TWI670596B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
US10209894B2 (en) | Memory system and method for controlling nonvolatile memory | |
KR102094236B1 (ko) | 스토리지 디바이스 및 컴퓨터 시스템 | |
US11747979B2 (en) | Electronic device, computer system, and control method | |
TWI722392B (zh) | 記憶裝置 | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
JP7524426B2 (ja) | メモリシステム | |
US20240020014A1 (en) | Method for Writing Data to Solid-State Drive | |
US10365857B2 (en) | Memory system | |
WO2021088587A1 (zh) | 数据访问方法、装置及存储介质 | |
US20230244383A1 (en) | Memory system and method of controlling nonvolatile memory | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 |