TWI704496B - 電子機器、電腦系統及其等之控制方法 - Google Patents
電子機器、電腦系統及其等之控制方法 Download PDFInfo
- Publication number
- TWI704496B TWI704496B TW107123305A TW107123305A TWI704496B TW I704496 B TWI704496 B TW I704496B TW 107123305 A TW107123305 A TW 107123305A TW 107123305 A TW107123305 A TW 107123305A TW I704496 B TWI704496 B TW I704496B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage device
- host
- instruction
- command
- mentioned
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in 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/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/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/0638—Organizing or formatting or addressing of data
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本發明之實施形態提供一種可根據狀況對指令進行排程且減少耗電之電子機器、電腦系統及其等之控制方法。 根據實施形態,電子機器具備非揮發性記憶體、及電性連接於上述非揮發性記憶體且可並行地處理由主機發佈之複數個指令之控制器。上述控制器構成為:於上述主機發佈分別被指定了應被處理之截止期限時間之一個以上之指令的情形時,基於上述截止期限時間而決定表示上述一個以上之指令各自被處理之時點之排程方式,按照上述排程方式,執行與上述一個以上之指令相應之處理。
Description
本發明之實施形態係關於一種具備非揮發性記憶體之電子機器、電腦系統及其等之控制方法。
近年來,具備非揮發性記憶體之儲存器正廣泛地普及。
作為此種儲存器之一,已知有具備NAND(Not And,與非)型快閃記憶體之固態驅動器(SSD)。SSD被用作多種計算裝置之主儲存器。
現有之SSD始終全力(盡最大努力)處理並響應來自主機之指令要求。所謂全力,意味著例如當存在讀取或寫入等自主機(PC(Personal Computer,個人電腦))向儲存裝置(SSD)發佈之複數個要求指令時,儘可能快速地執行依次處理所要求之全部指令並進行資料之讀寫、通知處理完成為止之一系列處理,直至不再自主機發佈指令要求為止。
對於搭載於利用電池驅動之可攜式PC之SSD,重要的是使SSD轉換為低耗電狀態。此種SSD通常係於對輸入至指令佇列之全部指令進行處理之後,經過一段時間(例如數秒)不進行任何處理之狀態之後再進入至低耗電狀態。
於實際用例中,尤其是對於面向消費者之SSD,亦假定有SSD無需全力動作之情況。因此,必須實現可藉由根據狀況之指令排程而削減耗電之新穎之功能。
本發明之實施形態提供一種可根據狀況對指令進行排程且削減耗電之電子機器、電腦系統及其等之控制方法。
根據實施形態,電子機器具備非揮發性記憶體及控制器,該控制器電性連接於上述非揮發性記憶體,且可並行地處理由主機發佈之複數個指令。上述控制器構成為,當由上述主機發佈分別被指定了應被處理之截止期限時間之一個以上之指令時,基於上述截止期限時間而決定表示上述一個以上之指令各自被處理之時點之排程方式,按照上述排程方式,執行與上述一個以上之指令相應之處理。
以下,參照圖式對實施形態進行說明。
首先,參照圖1,對實施形態之電腦系統1之構成進行說明。
電腦系統1包含主機(主機裝置)2及一個以上之半導體儲存裝置,該半導體儲存裝置構成為對非揮發性記憶體寫入資料且自非揮發性記憶體讀出資料。
主機2係對半導體儲存裝置進行存取之資訊處理裝置(計算裝置)。主機2既可為將大量且多樣之資料保存至半導體儲存裝置之伺服器(儲存伺服器),亦可為個人電腦。半導體儲存裝置係例如以具備NAND型快閃記憶體之固態驅動器(SSD)3之形式實現。
SSD3可用作作為主機2發揮功能之資訊處理裝置之主儲存器。SSD3既可內置於該資訊處理裝置中,亦可經由纜線或網路而連接於該資訊處理裝置。
作為用以將主機2與SSD3相互連接之介面,可使用SCSI(Small Computer System Interface,小型電腦系統介面)、串行連接之SCSI(SAS,Serial Attached SCSI)、ATA(Advanced Technology Attachment,高級技術附件)、串行(Serial)ATA(SATA)、PCI Express(Peripheral Component Interconnect Express,外圍組件互連高速)(PCIe)(註冊商標)、以太網(Ethernet)(註冊商標)、光纖通道、NVM Express(Non-Volatile Memory Express,非揮發性記憶體標準)(NVMe)(註冊商標)、通用快閃記憶體(UFS,Universel Flash Storage)、嵌入式多媒體卡(eMMC(註冊商標))等。
SSD3具備控制器4及非揮發性記憶體(NAND型快閃記憶體)5。控制器4可藉由如晶片上系統(SoC,System-on-a-chip)般之電路實現。SSD3亦可具備作為揮發性記憶體之隨機存取記憶體、例如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)6。或者,亦可將如SRAM(Static Random Access Memory,靜態隨機存取記憶體)般之隨機存取記憶體內置於控制器4。
於DRAM6等隨機存取記憶體,例如設置有:讀取緩衝區(RB)61,其係用以暫時儲存自NAND型快閃記憶體5讀出之資料之緩衝區域;寫入緩衝區(WB)62及GC(Garbage-Collection,垃圾回收)緩衝區63,其等係用以暫時儲存對NAND型快閃記憶體5寫入之資料之緩衝區域;及作為位址轉換表(邏輯物理位址轉換表)發揮功能之查找表(LUT)64之高速緩衝區域。進而,於DRAM6等隨機存取記憶體,亦可設置有處理中所使用之各種資訊之記憶體區域。再者,DRAM6亦可設置於控制器4之內部。LUT64對各邏輯位址與NAND型快閃記憶體5之各物理位址之間之映射進行管理。
NAND型快閃記憶體5亦可包含複數個NAND型快閃記憶體晶片(複數個NAND型快閃記憶體裸晶)。各晶片係以構成為可於每個記憶體單元儲存複數個位元之快閃記憶體之形式實現。
控制器4係經由如雙態DDR(Double Data Rate,雙資料速率)、開放式NAND快閃介面(ONFI,Open NAND Flash Interface)般之NAND介面13,而電性連接於作為非揮發性記憶體之NAND型快閃記憶體5。NAND介面13係作為以控制NAND型快閃記憶體5之方式構成之NAND控制電路發揮功能。NAND介面13亦可經由複數個通道而分別連接於NAND型快閃記憶體5內之複數個晶片。
控制器4係作為以控制NAND型快閃記憶體5之方式構成之記憶體控制器發揮功能。
控制器4亦可作為以執行NAND型快閃記憶體5之資料管理及塊管理之方式構成之快閃轉換層(FTL)發揮功能。由該FTL執行之資料管理包含:(1)表示各邏輯位址與NAND型快閃記憶體5之各物理位址之間之對應關係之映射資訊的管理;及(2)用以隱藏以頁為單位之讀取/寫入、及以塊為單位之刪除(擦除)動作之處理等。邏輯位址係為了對SSD3進行位址指定而被主機2使用之位址。作為該邏輯位址,例如使用邏輯塊位址(LBA)。
各邏輯塊位址(LBA)與各物理位址之間之映射之管理係使用作為位址轉換表(邏輯物理位址轉換表)發揮功能之LUT64執行。控制器4係使用LUT64,以特定之管理大小為單位對各LBA與各物理位址之間之映射進行管理。對應於某LBA之物理位址表示寫入有該LBA之資料之NAND型快閃記憶體5內之物理記憶位置。LUT64亦可為於SSD3之電源接通時自NAND型快閃記憶體5被載入至DRAM6。
關於向一個頁之資料寫入,每一個P/E(Program/Erase,編程/擦除)循環僅可實施1次。因此,控制器4將對應於某LBA之更新資料寫入至其他物理記憶位置,而非寫入至儲存有對應於該LBA之舊資料之物理記憶位置。繼而,控制器4將LUT64更新而使該LBA與該其他物理記憶位置相關聯,並且使以前之資料無效化。以下,將參照自LUT64之資料(即與邏輯位址相關聯之資料)稱為有效資料。又,將未與任何邏輯位址相關聯之資料稱為無效資料。有效資料係之後有可能被主機2讀取之資料。無效資料係已無可能被主機2讀取之資料。
塊管理包含壞塊之管理、耗損平均及垃圾回收(GC)等。
控制器4亦可包含主機介面11、CPU(Central Processing Unit,中央處理器)12、NAND介面13及DRAM介面14等。該等主機介面11、CPU12、NAND介面13及DRAM介面14係經由匯流排10而相互連接。
主機介面11係作為自主機2接收多種指令、例如I/O(Input/Output,輸入/輸出)指令及各種控制指令等之電路發揮功能。I/O指令可包含寫入指令、讀取指令、取消映射指令(修正指令)、格式指令及快閃指令等。
DRAM介面14係作為以控制DRAM6之存取之方式構成之DRAM控制器發揮功能。DRAM6之記憶區域被用於儲存讀取緩衝區(RB)61、寫入緩衝區(WB)62、GC緩衝區63及LUT64等。
CPU12係以控制主機介面11、NAND介面13及DRAM介面14之方式構成之處理器。CPU12係藉由執行未圖示之ROM(Read Only Memory,唯讀記憶體)等中所儲存之控制程式(韌體)而進行多種處理。該CPU12除可執行上述FTL之處理以外,亦可執行用以處理來自主機2之多種指令之指令處理等。CPU12之動作係由利用CPU12執行之上述韌體而進行控制。再者,FTL處理及指令處理之一部分或全部亦可藉由控制器4內之專用硬體執行。
其次,對主機2之構成進行說明。
主機2係執行多種程式之資訊處理裝置。由資訊處理裝置執行之程式包含應用層41、操作系統(OS)42及裝置驅動程式(中間軟體)43等。
如一般所知,OS42係以管理主機2整體,控制主機2內之硬體,且執行用以使應用可使用硬體及SSD3之控制之方式構成之軟體。
裝置驅動程式43係用於向SSD3進行存取之軟體。裝置驅動程式43亦可與進行用於檔案操作(創建、保存、更新及刪除等)之控制之檔案系統協同使用。例如將ZFS(Zettabyte File System,動態檔案系統)、Btrfs(B-tree file system,B樹檔案系統)、XFS(Extents File System,擴展檔案系統)、ext4(Fourth extended file system,第四代擴展檔案系統)、NTFS(New Technology File System,新技術檔案系統)等用作檔案系統。或者,亦可將檔案對象系統(例如對象儲存精靈協助程式(Ceph Object Storage Daemon)、密鑰儲存系統(Key Value Store System)(例如Rocks DB(Rocks Data base,岩石資料庫))用作檔案系統。
多種應用軟體線緒係於應用層41上運行。作為應用軟體線緒的示例,有用戶端軟體、資料庫軟體及虛擬設備等。
於應用層41需對SSD3發佈如讀取指令或寫入指令般之請求時,應用層41對OS42送出該請求。OS42將該請求送出至裝置驅動程式43。裝置驅動程式43將該請求轉換成指令(讀取指令、寫入指令等)。裝置驅動程式43對SSD3發佈指令。當接收到來自SSD3之回應時,裝置驅動程式43將該回應送出至OS42。OS42將該回應送出至應用層41。
於主機2設置有被輸入對SSD3發佈之指令之佇列30。佇列30例如包含一個以上之提交佇列31、及一個以上之完成佇列32。提交佇列31係具有特定之時隙大小,且被用於供主機2(主機軟體)發佈(輸入)由SSD3之控制器4執行之指令之命令佇列。完成佇列32係具有特定之時隙大小,且被用於通知與已完成之指令相關之狀態之響應佇列。
裝置驅動程式43具備指令發佈部431。指令發佈部431係當受理來自OS42(應用層41)之請求時,決定與該請求對應之指令於SSD3中應被處理之截止期限時間。繼而,指令發佈部431發佈指定了該截止期限時間之指令,並輸入至提交佇列31。
指令發佈部431例如當無需使SSD3全力動作時,基於主機2對SSD3要求之適當之性能(例如讀取性能、寫入性能等)、速度(例如讀取速度、寫入速度等)及時點(例如讀取時間、寫入時間等)中之至少任一個而決定截止期限時間。就SSD3而言,藉由基於被指定之截止期限時間適當地對指令進行排程,可獲得省電化及QoS(Quality of Service,服務質量)提高(例如適當之資源分配)之效果。
又,設置於SSD3之控制器4內之CPU12可作為讀取控制部121、寫入控制部122、GC控制部123及仲裁控制部124發揮功能。
讀取控制部121係基於對應於邏輯位址(LBA)之LUT64之項,求出對應於LBA之物理位址,自NAND型快閃記憶體5讀出相應於讀取指令之資料。
寫入控制部122係將根據寫入指令,自主機2接收到之用戶資料儲存至DRAM6上之寫入緩衝區62。繼而,若於寫入緩衝區62內儲存有NAND型快閃記憶體5之寫入單位量之用戶資料,寫入控制部122便將該寫入單位量之用戶資料傳送至NAND型快閃記憶體5之晶片(晶片之資料鎖存)。寫入控制部122將寫入緩衝區62內之儲存有經傳送之用戶資料之區域釋放。
然後,寫入控制部122指示NAND型快閃記憶體5之晶片進行編程。即,寫入控制部122係藉由將編程指令發送至NAND型快閃記憶體5之晶片,而針對該晶片將經傳送之用戶資料編程至寫入目標塊。晶片內之記憶體單元陣列包含複數個塊。塊大致分為兩種:儲存有效資料,且無法重新寫入資料之塊(活動塊);及未儲存有效資料,可藉由經歷擦除處理而用於新資料之寫入之塊(空閒塊)。自1個以上之空閒塊中選擇1個塊,藉由經歷擦除處理而分配作為寫入目標塊。寫入目標塊可儲存有效資料。
GC控制部123亦可使用GC緩衝區63,與如上所述之寫入控制部122之寫入動作同樣地,進行對NAND型快閃記憶體5之寫入。GC控制部123係自儲存有有效資料之活動塊群中選擇垃圾回收源塊(GC源塊),將該GC源塊內之有效資料寫入至自空閒塊群中被確保為寫入目標塊之垃圾回收目的塊(GC目的塊)。
又,仲裁控制部124可按照任意之順序提取提交佇列31內之項、即指令。SSD3內之各部係根據所提取之指令而動作。例如,根據所提取之讀取指令,進行讀取控制部121之讀取處理,又,根據所提取之寫入指令,進行寫入控制部122之寫入處理。
就初始之ATA HDD(Hard Disk Drive,硬碟驅動器)(並行(Parallel)ATA)而言,於1個指令之處理完成之前無法送出下一指令,但可利用SATA(串行(Serial)ATA) HDD/SSD規格中之指令佇列排程規格之擴展對一個指令佇列有序要求複數個指令。進而,就NVMe規格而言係以可對複數個指令佇列無序要求複數個指令之方式擴展。NVMe規格上,指令佇列(提交)之個數可定義為64K個,於1個指令佇列中可要求之指令之數量可定義為64K個。
於市場上流通之SSD及Windows(註冊商標)10等OS中,例如相應於CPU之個數之量(例如8個)創建每一個為1K項之指令佇列。於該情形時,最多可同時發佈1K×8個=8K個指令,接收數千個以上之指令之SSD可自無數某處理之排列(組合)中按照任意之順序處理指令。對於具有有限之運算資源之SSD,難以得出最佳之處理順序。SSD例如儘力依照自複數個指令佇列被加入數個指令之順序利用簡單循環(或加權循環)進行處理,難以完全按照公平之順序處理指令。
本實施形態之仲裁控制部124可以如下方式進行控制,即基於對提交佇列31中所儲存之各指令指定之截止期限時間,按照截止期限時間由早至晚之指令之順序進行處理(提取)。仲裁控制部124係當於提交佇列31中儲存有一個以上之指令時,基於對各指令指定之截止期限時間,決定表示該等一個以上之指令各自被處理之時點之排程方式(scheduling)。仲裁控制部124係例如以於各個截止期限時間之前對一個以上之指令進行處理且儘可能使該處理延遲之方式,決定排程方式。該排程方式亦可進而表示出根據指令被處理之時點,將SSD3設定為何種電力狀態。SSD3可被設定之電力狀態例如為全速動作之電力狀態、或淺休眠(Shallow Sleep)或者深休眠之低耗電狀態。淺休眠表示較淺之休眠狀態,深休眠表示較深之休眠狀態。例如,被設定為淺休眠之SSD3所消耗之電力大於被設定為深休眠之SSD3所消耗之電力。仲裁(arbitration)控制部124係以按照所決定之排程方式執行相應於一個以上之指令之處理之方式控制SSD3內之各部。
再者,一般而言,SSD3不具有即時時脈,故而無法於其內部獲得當前時刻。NVMe規格中規定有主機2可對SSD3(控制器4)設定當前時刻之可選指令、即特徵集(SetFeatures)指令。就該SetFeatures指令而言,作為用以識別設定何種特徵之特徵識別符(Feature Identifier),指定表示時間戳記之「OEh」。
關於SSD3,於為正常電力狀態之期間,可使用被通知之當前時刻,將內部計時器進行遞增計數,藉此獲得當前時刻。但是,當於低耗電狀態下內部計時器亦停止時,無法實現自當前時刻起之遞增計數,故而於自低耗電狀態轉變為正常電力狀態時,每次均需要自主機2對SSD3通知當前時刻。
以下,表示主機2與SSD3經由基於NVMe規格之介面而連接之示例,亦可同樣地應用於利用UFS、SATA、eMMC、SCSI等其他儲存介面連接之情形。
參照圖2,對利用主機2與SSD3之控制器4之指令處理之動作的示例更具體地進行說明。
首先,主機2(指令發佈部431)係於對提交佇列31之項(提交佇列項)寫入指令時,指定期待該指令之處理之時間。該「期待處理之時間」係指令應被處理之時間,例如可使用如指令之輸入發佈時刻、SSD3內之處理開始時刻(例如自提交佇列31提取指令之時刻)、開始與指令相應之資料之傳送之時刻、完成與指令相應之資料之傳送之時刻、通知與指令相應之中斷之時刻般之與指令之處理相關之任意時刻。以下,將該「期待處理之時間」亦稱為截止期限時間。
主機2(指令發佈部431)係例如接收來自應用層41之指示並指定截止期限時間。主機2係例如使用處理優先度、LBA之位置、參照頻度(存取頻度)、所傳送之資料之大小、應用名、檔案系統元資料(例如利用NTFS之$MFT)、SSD3之電源狀態等資訊,算出(決定)截止期限時間。
提交佇列31具有特定之時隙大小,且被用於供主機2(主機軟體)發佈(輸入)由SSD3之控制器4執行之指令。各提交佇列輸入相當於指令。指令例如具有64位元組之大小。即,每一個指令使用64位元組之記憶體區域,自主機2對SSD3指示處理。
圖3係表示電腦系統1中所使用之提交佇列輸入之格式之示例。此處,就NVMe規格(Revision 1.3)所示之提交佇列輸入之格式,以進而指定與截止期限時間相關之資訊之方式而變更之情形進行說明。
於發佈寫入指令或讀取指令之情形時,於提交佇列輸入中,對[3-0]位元組內之對應於[7-0]位元之作業碼(Opcode)(OPC(Operation Code))欄位,設定表示寫入之「01h」或表示讀取之「02h」。
提交佇列輸入內之[15-8]位元組之欄位,於NVMe規格中為空閒欄位(預留(Reserved)),於本實施形態中,為了設定截止期限時間之時間戳記而使用該欄位。例如當所發佈之指令為寫入指令或讀取指令時,對該欄位設定該寫入指令或讀取指令應被處理之截止期限時間。
圖4係表示設定在8位元組之欄位之時間戳記之格式的例。如圖4所示,對8位元組之欄位中之[5-0]位元組,設定時間戳記。該時間戳記係例如以自1970年1月1日上午0點(UTC(Universal Time Coordinated,協調世界標準時))起經過之毫秒(ms)單位之秒數來表示。
再者,主機2亦可發佈用於要求輸入至提交佇列31之指令中止之異常終止指令。異常終止指令例如被輸入至管理者提交佇列,作為最佳努力指令而被處理。於異常終止指令中,例如特定出應中止之指令之識別資訊、及被輸入了該指令之提交佇列31之識別資訊。
返回至圖2中,控制器4係基於主機2指定之截止期限時間,辨識各指令之處理之優先度。繼而,控制器4係根據其優先度而對提交佇列31內之指令進行排程。藉此,例如當於主機2內設置有複數個提交佇列31時,會專注於特定之提交佇列內之指令之處理,故其他提交佇列內之指令之處理會延遲,從而可避免使主機2上之應用程式超出所需限度地等待。
更具體而言,控制器4係基於就各指令指定之截止期限時間,自提交佇列31提取一個指令。控制器4係基於提交佇列31中所儲存之一個以上之指令各自之截止期限時間,例如於各自之截止期限時間之前,對該等一個以上之指令進行處理,且決定可減少SSD3消耗之電力之指令處理之排程方式。該排程方式例如表示執行(提取)各指令之時點。又,該排程方式係基於截止期限時間,例如以使相應於各指令之處理之開始儘可能延遲之方式決定時點。
藉由使相應於各指令之處理之開始儘可能延遲之排程,例如當配合中途取消某動作之用戶操作等,想要藉由發佈異常終止指令而中止已輸入至提交佇列31之指令時,可避免已經正在進行或者已進行過相應於該已輸入過之指令之處理的狀況之可能性增大。藉此,可相應於應被中止之處理所需之電力,削減SSD3之耗電。
又,當於主機2設置有複數個提交佇列31(管理提交佇列及I/O提交佇列)時,於NVMe規格中規定了循環、加權循環及廠商專用仲裁該三種演算法作為該等佇列31之仲裁演算法。
如圖5所示,於循環之仲裁中,複數個提交佇列31被以均等之優先度進行處理,控制器4係針對每個回合,自各提交佇列31選擇(提取)特定數量之應處理之候補指令。
又,如圖6所示,於加權循環之仲裁中,規定有三個優先度類別及三個優先度級別。三個優先度類別包括最高優先度之管理類91、第二高優先度之緊急(urgent)類92、及最低優先度之加權循環類93。
對管理類91分配管理提交佇列911。發佈(輸入)至管理提交佇列911之指令具有比發佈至對除該管理類91以外之類別92、93分配之提交佇列之指令高之優先度。
發佈至對緊急類92分配之I/O提交佇列921之指令係於發佈至管理提交佇列911之指令之後且發佈至對加權循環類93分配之I/O提交佇列之指令之前被處理。再者,於對緊急類92分配之複數個I/O提交佇列921之間,應用循環之仲裁。
加權循環類93包含使用加權循環仲裁並共有剩餘之帶寬之高優先度(High)93H、中優先度(Medium)93M、及低優先度(Low)93L之三個級別。對各級別93H、93M、93L分別分配I/O提交佇列931、932、933。於對同一級別分配之複數個I/O提交佇列之間,應用循環之仲裁。而且,針對加權循環之每個回合,例如自各級別選擇相應於權重之數量之候補指令。
就此種循環及加權循環之仲裁而言,均於自某提交佇列提取指定數量之指令之後,將提取之對象轉移至其他提交佇列。因此,例如當對特定之提交佇列暫時輸入了大量之細小單位(4 KiB)之指令時,會迫使其他提交佇列之要求等待。
由NVMe規格之仲裁方式規定之另一廠商專用仲裁之安裝方法係於NVMe規格書之範圍外,廠商可選擇之仲裁方式。
於本實施形態中,以使用該廠商專用仲裁之方式構成SSD3,作為該廠商專用仲裁,對應進行處理之被指定了截止期限時間之指令設定基於考慮到截止期限時間之排程之仲裁。作為此種排程方式,可利用OS動態地決定處理之執行順序之各種排程方式,例如可列舉按照截止期限時間由早到晚之順序進行處理之最早截止期限時間優先(EDF,Earliest DeadIine First)、或最小鬆弛(LL,Least Laxity)、最早截止期限時間零鬆弛(EDZL,Earliest Deadline Zero Laxity)、最早截止期限時間臨界鬆弛(EDCL,Earliest Deadline Critical Laxity)、及最小空閒時間(LST,Least Slack Time)等。
圖7係表示基於EDF排程之仲裁之示例。此處,假定對主機2設有四個提交佇列31-1、31-2、31-3、31-4。於各提交佇列31-1、31-2、31-3、31-4中分別儲存有複數個指令351〜362。
控制器4係按照被指定之截止期限時間由早到晚之順序提取提交佇列31-1、31-2、31-3、31-4中所儲存之指令351〜362。於圖7所示的示例中,控制器4係如截止期限時間為5毫秒之指令351、截止期限時間為8毫秒之指令361、截止期限時間為10毫秒之指令352、截止期限時間為15毫秒之指令357、……般,按照截止期限時間由早到晚之順序提取指令。
藉由此種基於EDF排程之仲裁,可對所有提交佇列進行公平之仲裁。因此,可以軟體即時系統之形式實現包括主機2及SSD3之電腦系統1,且可削減自主機2向SSD3之存取之最壞時延。
軟體即時系統係如下一種系統:即便產生對系統賦予之任務之處理未於截止期限時間內結束之現象(截止期限差錯),系統整體亦不會產生致命之損壞,該處理之價值會相應於完成時間等而降低。與此相對,硬體即時系統係因截止期限差錯而導致故障之系統,韌體即時系統係截止期限差錯雖不會賦予致命之損壞,但因於截止期限時間之前未結束而使得該處理之價值立即成為零之系統。
返回至圖2中,控制器4執行所提取之指令。即,控制器4與SSD3內之各部協同地執行相應於指令之處理(例如讀取處理、寫入處理等)。
而且,控制器4係於指令之執行已完成之情形時,對完成佇列32寫入表示所提取之指令及指令完成時間之完成佇列項。藉此,主機2可獲取各指令之完成時間。指令完成時間既可為相應於指令之處理已完成之時間,亦可為實際進行以指定之截止期限時間為對象之動作(例如提取、資料傳送開始、資料傳送完成及中斷通知等)之時間。
完成佇列32係用以通知與已完成之指令相關之狀態。已完成之指令係基於由主機2分配之相關聯之識別資訊與指令之識別資訊之組而唯一特定出。亦可使複數個提交佇列31與一個完成佇列32相關聯。又,完成佇列32之各項例如具有至少16位元組之大小。
圖8係表示電腦系統1中所使用之完成佇列項之格式(響應訊息協定)之示例。此處,對將NVMe規格(Revision 1.3)所示之完成佇列項之格式以進而指定與指令完成時間相關之資訊之方式變更之情況進行說明。
該格式係以通知指令執行之成功/失敗及其原因、以及提交佇列31及完成佇列32之狀態之方式構成。於本實施形態中,將完成佇列項內之對應於[3-0]位元組之Dword 0區域、及對應於[7-4]位元組之Dword 1區域用作用以設定指令之完成時間之時間戳記之區域。例如當所發佈之指令為寫入指令或讀取指令時,對該欄位設定該寫入指令或讀取指令之處理完成之時間。進而,將該項內之對應於[15-12]位元組之區域內之對應於[29-28]位元對應之區域用作設定表示是否超過指定之截止期限時間對指令進行處理之資訊(實效(Expired))之區域。
主機2可使用該完成佇列項,辨識存在無法於指定之截止期限時間內進行處理之指令,故而可進行如下等處置:調整對利用應用之用戶傳達之指令之輸入量;當設置有複數個儲存裝置時研究其他儲存裝置之利用;及於儲存裝置中存在大量進行存取之其他應用,若該等應用多餘則使其等中止。
再者,於主機2之裝置驅動程式43,亦可進而設置有疲勞度推定部432。疲勞度推定部432對與被處理之指令相關之來自SSD3之響應、即完成佇列項進行分析,推定SSD3之疲勞度。完成佇列項例如包含表示是否超過指令完成時間及被指定之截止期限時間對指令進行處理之資訊。疲勞度推定部432例如藉由使用表示是否超過被指定之截止期限時間對指令進行處理之資訊,或者將該指令完成時間與主機2所要求之截止期限時間加以比較,根據是否於截止期限時間之前對指令進行處理而推定SSD3之疲勞度。
所推定出之疲勞度之利用方法係依據主機2之運用,想到多個應用例,例如列舉以下3點。 (1)判斷SSD3之壽命已接近,對用戶發出警告,催促更換。 (2)使存在誤差之區域(LBA+大小)之資料移動至其他區域並釋放(更新)。 (3)於使用複數台SSD之電腦系統1中,以如下方式進行處置。 •將複數台SSD中之未於截止期限時間之前對指令進行處理之違反數量最多之SSD判斷為接近壽命並更換。 •於自複數台SSD選擇寫入目的地之SSD時,違反數量越多之SSD則越難以被選擇。 •當複數台SSD包含鏡像等複製之SSD時,違反數量越多之SSD,則發佈指定越長之截止期限時間之指令。藉此,利用違反數量少之SSD實際進行如讀取動作之處理,與此對應,對於違反數量多之SSD,取消指令且不進行實際之處理。即,對於違反數量多之SSD,藉由指定較長之截止期限時間,容易取消指令。
然後,圖9之流程圖係表示由主機2執行之指令發佈處理之順序之示例。
主機2係藉由於主機2上執行之應用41或OS42等而判定是否被要求發佈針對SSD3之指令(步驟S11)。於未被要求發佈指令之情形時(步驟S11為否(NO)),返回至步驟S11。
於被要求發佈指令之情形時(步驟S11為是(YES)),主機2決定該指令之處理之截止期限時間(步驟S12)。繼而,主機2將被指定了截止期限時間之指令輸入至提交佇列(步驟S13)。例如,主機2將指令ID(identifier,識別符)、截止期限時間等寫入至提交佇列項。
根據以上,可對提交佇列31輸入與要求相應之指令。
又,圖10之流程圖係表示由主機2執行之指令中止處理之順序的示例。
主機2判定是否被要求中止輸入至提交佇列31之指令(步驟S21)。主機2例如根據與所發佈之指令對應之處理被中止,而判定被要求中止該指令。於未被要求中止指令之情形時(步驟S21為否),返回至步驟S21。
於被要求中止指令之情形時(步驟S21為是),主機2將用以使該指令中止之異常終止指令輸入至提交佇列(管理提交佇列)31(步驟S22)。
SSD3之控制器4可根據該異常終止指令,進行用以使所指定之指令之處理中止(取消)之處理。
圖11之流程圖係表示由SSD3之控制器4執行之執行控制處理之順序的示例。此處,為了易於理解說明,例示有於提交佇列31中統一輸入複數個指令,且於該處理中未輸入新指令之情形。
控制器4判定是否已對提交佇列31輸入指令(步驟S31)。於未對提交佇列31輸入指令之情形時(步驟S31為否),返回至步驟S31。
於已對提交佇列31輸入指令之情形時(步驟S31為是),控制器4基於對提交佇列31內之各指令指定之截止期限時間,決定表示各指令被處理(提取)之時點之排程方式(步驟S32)。
然後,控制器4基於所決定之排程方式,判定是否存在應提取之指令(步驟S33)。於存在應提取之指令之情形時(步驟S33為是),控制器4自提交佇列31提取該指令(步驟S35)。
另一方面,於不存在應提取之指令之情形時(步驟S34為否),控制器4係基於排程方式,待機至指令應被提取之時點為止(步驟S34),其後,自提交佇列31提取指令(步驟S35)。再者,於步驟S34之待機中,SSD3亦可轉換為低耗電狀態。
控制器4執行與所提取之指令相應之處理(步驟S36)。控制器4例如根據讀取指令而自NAND型快閃記憶體5讀出資料,或根據寫入指令而對NAND型快閃記憶體5寫入資料。
繼而,控制器4判定與指令相應之處理之執行是否已完成(步驟S37)。於執行未完成之情形時(步驟S37為否),返回至步驟S37。
於執行已完成之情形時(步驟S37為是),控制器4對完成佇列32寫入與已完成之指令相關之完成佇列項(步驟S38)。該完成佇列項包含表示是否於完成時間或截止期限時間之前完成執行之資訊等。
然後,控制器4係判定與所輸入之全部指令相應之處理是否已完成(步驟S39)。於與全部指令相應之處理未完成之情形時(步驟S39為否),返回至步驟S33,繼續進行基於排程方式之處理。
另一方面,於與全部指令相應之處理已完成之情形時(步驟S39為是),返回至步驟S31。
再者,當於上述處理中輸入有新指令時,包含該新指令之提交佇列內之指令之執行(提取)亦可被再次排程。
根據以上之構成,可根據狀況對指令進行排程且削減SSD3之耗電。主機2係發佈應進行處理之被指定了截止期限時間之一個以上之指令,並輸入至佇列。SSD3係基於各截止期限時間,決定表示各指令被執行之時點之排程方式。SSD3係以如下方式決定排程方式,即,可於各截止期限時間之前對指令進行處理,且使SSD3可轉換為低耗電狀態之期間變長。因此,於電腦系統1中,可根據與一個以上之指令對應之一個以上之截止期限時間之狀況對指令進行排程,且削減SSD3之耗電。
以下,對應用具有如上所述之構成之電腦系統1之應用例進行若干說明。
(應用例1) 圖12係表示電腦系統1中之用於動畫播放之流(streaming)動作之示例。此處,假定主機2一面讀出SSD3中所儲存之動畫檔案51,一面播放基於所讀出之動畫檔案51之資料之動畫的用例。
於動畫檔案之播放中,根據檔案內之程式流(PS)/傳輸流(TS)等流資訊,預先瞭解應讀出流(資料)之位元率。當主機對SSD發佈有大量之讀取指令時,於正常動作中,於該等所有讀取指令之處理完成之前,SSD無法轉換為低耗電狀態(低耗電模式)。
於本實施形態中,主機2係於發佈用以讀出動畫檔案51之讀取指令之情形時,SSD3將應響應於主機2之時間設為截止期限時間並發佈指定之讀取指令,且輸入至提交佇列31。SSD3之控制器4可於指定之截止期限時間之前予以響應,且以削減SSD3之耗電之方式,對處理各指令之時點進行排程。
關於控制器4,即便提交佇列31中存在指令(要求),例如只要為截止期限時間為10分鐘後之指令,便判定為低優先度指令,且使其他指令優先。針對應響應之截止期限時間為10分鐘後之讀取指令,SSD3例如即便於自當前時間點起9分鐘內被設定為低電力狀態之後恢復為正常電力狀態(正常模式),且開始與讀取指令相應之資料之讀出,於主機2中亦可無破綻地適當地播放動畫。
進而,對於主機2,亦有可能於自當前時間點起5分鐘之後指示動畫播放之停止,於此種情形時,若預先讀出比自當前時間點起5分鐘後更靠後之資料,則該讀出所需之能量(電力)會浪費。
例如,關於動畫資料之位元率,DVD(Digital Video Disk,數位視訊磁碟)為10 Mbps左右、藍光(註冊商標)為30〜50 Mbps、超HD(High Definition,高清晰度)藍光為80〜100 Mbps,若與作為SSD3之順序讀取性能之1000〜3000 MB/s相比,則即便為幾百分之一亦不滿足。藉由降低SSD3之讀取速度,於可降低SSD3之電力之情形時,藉由使NAND型快閃記憶體5之並行動作減少至1/N,亦可削減峰值電力。
將動畫資料以何種程度預先讀出係依存於應用之安裝,於如每次完成一個讀取指令之處理時便發佈下一次之讀取指令,並持續保持緩衝區滿之處理流程之情形時,不僅SSD3無法進入至長時間之低耗電狀態,主機2內之CPU內核(處理器內核)亦無法進入至長時間之低耗電狀態。
又,就最近之PC平台而言,多數情況下硬體解碼器係搭載於CPU或GPU(Graphics Processing Unit,圖形處理器)內。由於硬體解碼器之解碼時間確定,故而只要可於指定之截止期限時間之前將資料供給至主機2,便可實現適當之動畫播放。
(應用例2) 圖13係表示電腦系統1中之檔案之下載動作之示例。此處,假定主機2一面花費較長時間自網路上之伺服器等下載大小較大之檔案,一面將該檔案之資料寫入至SSD3之用例。再者,對於主機2,下載速度之粗略之位元率係已知。
主機2係發佈用以寫入已下載之資料之寫入指令,並輸入至提交佇列31。對於寫入指令,基於下載之位元率,指定應將資料寫入至SSD3之截止期限時間。
關於控制器4,即便提交佇列31中存在指令,例如只要為截止期限時間為10分鐘後之指令,便判斷為低優先度指令,且使其他指令優先。又,針對應寫入之截止期限時間為3分鐘後之寫入指令,例如即便於自當前時間點起2分鐘後開始資料之寫入,亦可於主機2中適當地下載檔案。
例如,當主機2以8 Mbps之位元率花費約16分鐘下載1 GB之檔案時,控制器4無需以全速力將下載之資料寫入至NAND型快閃記憶體5,直至SSD3之寫入性能之極限為止。SSD3若一面最大限度延遲,一面以8 Mbps之速率寫入,則主機2與SSD3之下載動作不會產生破綻。
藉由此種動作,可預料於下載中,用戶要求執行不同之處理時之回應改善。又,於檔案之下載被中止(取消)之情形時,已寫入至SSD3之資料多餘,故而會被刪除。因此,相應於寫入指令之處理已完成之資料因下載中止而浪費。
但是,於使相應於寫入指令之處理之開始延遲之情形時,主機2發佈異常終止指令,藉此可使提交佇列31內之寫入指令中斷。因此,就使用寫入/擦除次數(編程/擦除循環數)存在限制之NAND型快閃記憶體5之SSD3而言,可期待其壽命之延長。
(應用例3) 圖14係表示設置有複數個SSD3A、3B之電腦系統1中之自第1 SSD3A向第2 SSD3B之資料之備份動作的示例。第1 SSD3A及第2 SSD3B分別具有與上述SSD3相同之構成。通常,多數情況下SSD之寫入性能比讀取性能低。此處,假定按照SSD3A、3B之順序之讀取性能為3000 MB/s,寫入性能為1000 MB/s,讀取性能與寫入性能不平衡之情況。再者,例示兩個SSD3A、3B之讀取/寫入性能相同之情況,但第1 SSD3A之讀取/寫入性能與第2 SSD3B之讀取/寫入性能亦可不同。
第2 SSD3B無法以與第1 SSD3A以其讀取性能之極限即全速力(峰值性能)讀出資料之速度(3000 MB/s)相同之寫入速度寫入資料。一般而言,主機2係等待第2 SSD3B之寫入完成,而對第1 SSD3A發佈下一讀取指令,故而相應於用以向第2 SSD3B寫入資料之時間,第1 SSD3A中產生空閒時間,但斷續地發佈讀取指令,故而第1 SSD3A無法轉換為低耗電狀態。
因此,於將第1 SSD3A中所儲存之資料複製(備份)至第2 SSD3B之情形時,主機2對第1 SSD3A通知可以與第2 SSD3B之寫入性能相當之讀取速度(1000 MB/s)緩慢地讀出。更具體而言,主機2係基於第1 SSD3A之讀取性能與第2 SSD3B之寫入性能,以滿足與第2 SSD3B之寫入性能相當之讀取速度之方式決定應對用以自第1 SSD3A讀出資料之讀取指令進行處理之截止期限時間。
繼而,主機2發佈被指定了該截止期限時間之讀取指令,並輸入至用於第1 SSD3A之提交佇列31。藉此,第1 SSD3A可基於截止期限時間對讀取指令之執行時點進行排程,例如可於達到緩衝區容量之極限之前讀出資料後,轉換為長時間之低耗電狀態。
又,主機2係發佈用以將自第1 SSD3A讀出之資料寫入至第2 SSD3B之寫入指令,並輸入至用於第2 SSD3B之提交佇列31。主機2亦可以於寫入該資料時,第2 SSD3B發揮寫入性能(1000 MB/s)之方式指定截止期限時間。
當與於短時間內完成備份相比,重要的是使SSD3A、3B所消耗之峰值電力下降時,以優先減少對NAND型快閃記憶體5進行編程/讀取之並行數之方式,對指令進行排程。藉此,可減少峰值耗電。
(應用例4) 圖15係表示設置有多層儲存系統7之電腦系統1中之自主機2向多層儲存系統7之存取的示例。多層儲存系統7包含屬於不同存取性能層之複數個儲存裝置。此處,假定多層儲存系統7包含:高速之高速緩衝SSD3C,其具有第1讀取/寫入性能;中速之資料SSD3D,其具有低於第1讀取/寫入性能之第2讀取/寫入性能;及低速之備份SSD3E,其具有低於第2讀取/寫入性能之第3讀取/寫入性能。高速緩衝SSD3C、資料SSD3D及備份SSD3E,具有與上述SSD3相同之構成。
於此種多層儲存系統中,有各儲存裝置具有對在截止期限時間(限制時間)內未完成之指令,儘早將表示超過限制時間之誤差退回至主機之功能(快速失敗(Fast Fail))之情況。主機對某層之儲存裝置發佈指令,且關於該指令表示超過限制時間之誤差被退回時,對其他層之儲存裝置發佈相同之指令,藉此可縮短多層儲存系統整體之指令之響應時間。
本實施形態之主機2係於接收到由快速失敗功能所致之誤差後,對屬於複數個層之複數個儲存裝置3C、3D、3E之各者,一同投機地發佈性能越高則指定越短之截止期限時間之指令,而非對其他層之儲存裝置發佈指令。主機2若自對指定了較短之截止期限時間之指令進行處理之儲存裝置(例如高速緩衝SSD3C)接收到正常結束之響應,則對發佈指定更長之截止期限時間之指令之其他儲存裝置(例如資料SSD3D及備份SSD3E),進而發佈要求取消該指令之異常終止指令。
又,若對指定了較短之截止期限時間之指令進行處理之儲存裝置(例如高速緩衝SSD3C)異常結束,則繼續進行利用發佈了指定更長之截止期限時間之其他儲存裝置之指令處理。根據以上,對於具有冗餘性之多層儲存系統7,能不消耗無用之能量而進行投機之存取,且整體之響應時間亦縮短。
例如,假定自主機2對多層儲存系統7發佈讀取指令。如圖15所示,主機2同時投機地對高速緩衝SSD3C發佈指定5毫秒之截止期限時間之讀取指令、對資料SSD3D發佈指定50毫秒之截止期限時間之讀取指令、及對備份SSD3E發佈指定500毫秒之截止期限時間之讀取指令。繼而,當自發佈之時間點起1毫秒後,自高速緩衝SSD3C接收到表示讀取正常結束之響應時,主機2對資料SSD3D及備份SSD3E發佈用於取消讀取指令之異常終止指令。
圖16係表示自主機2對多層儲存系統7發佈讀取指令之情形時之處理順序之示例。此處,為了易於理解說明,例示有於多層儲存系統7設置有高速緩衝SSD3C及資料SSD3D之情況,但設置有3台以上之SSD(儲存裝置)之情況亦相同。
首先,主機2同時對資料SSD3D發佈被指定了50毫秒之截止期限時間之第1讀取指令,且對高速緩衝SSD3C發佈被指定了5毫秒之截止期限時間之第2讀取指令,藉此送出請求(A1、A2)。即,該等兩個讀取指令係自發佈一讀取指令至發佈另一讀取指令之前,不進行等待特定時間之等候而被發佈。所發佈之指令例如被輸入至分別對應於SSD3C、3D之提交佇列31。於同時發佈複數個讀取指令之情形時,相比分別發佈之情況,對主機2施加之負荷減輕相應於無等候所需之負荷之量。
資料SSD3D係基於對第1讀取指令指定之50毫秒之截止期限時間,等待(50-α)毫秒(A3)。時間α例如對應於資料SSD3D進行相應於第1讀取指令之讀取處理所需之時間。即,資料SSD3D係以使相應於第1讀取指令之讀取處理之開始儘可能延遲之方式,決定指令處理之排程方式。該排程方式例如表示於自當前時間點起(50-α)毫秒後,進行提取及讀取動作(A8、A9)。
另一方面,高速緩衝SSD3C係基於對第2讀取指令指定之5毫秒之截止期限時間,例如,立即提取第2讀取指令(A4)。繼而,高速緩衝SSD3C進行相應於第2讀取指令之讀取動作(A5),響應於主機2(A6)。該響應包含表示只要讀取動作正常結束則正常結束之資訊。以下,假定讀取動作正常結束。
主機2係根據該響應,對資料SSD3D發佈用以取消對資料SSD3D發佈之第1讀取指令之異常終止指令(A7)。資料SSD3D係根據該異常終止指令而使第1讀取指令中止。因此,將被排程之第1讀取指令提取(A8)並讀取之動作(A9)中止。
為了如此自多層儲存系統7讀出某資料,對複數個SSD發佈複數個讀取指令,但實際進行讀取動作之SSD可以被限制為已發佈讀取指令之複數個SSD中之一個之方式進行控制。藉此,可減少電腦系統1整體上消耗之電力,並且亦可減少由存取所致之NAND型快閃記憶體之疲勞。
再者,發佈讀取指令之高速緩衝SSD3C與資料SSD3D並不直接進行通信。於電腦系統1中,對由主機2發佈之各指令指定截止期限時間,於各SSD3C、3D內進行基於截止期限時間之動作之控制,故而無需SSD3C、3D間之通信。
然後,參照圖17至圖19,對SSD3中之指令之處理與電力狀態之關係進行說明。
圖17係表示SSD3之動作中之三個電力狀態、及該等狀態間之轉變之示例。
電力狀態PS0係SSD3以全速動作時之電力狀態。即,可以說,為電力狀態PS0之SSD3係運轉狀態。為電力狀態PS0之SSD3之最大電力例如為5 W。此處,作為為運轉狀態之情形時之電力狀態,僅表示出PS0,但亦可進而設置耗電低於PS0之電力狀態PS1、PS2。
電力狀態PS3為SSD3進入至淺休眠時之電力狀態。電力狀態PS3之SSD3之最大電力例如為50 mW。又,電力狀態PS4係SSD3進入至深休眠時之電力狀態。電力狀態PS4之SSD3之最大電力例如為2.5 mW。電力狀態PS3或PS4之SSD3為非運轉狀態。
以下,為了易於理解說明,如圖17所示,對SSD3以三個電力狀態PS0、PS3、PS4中之任一狀態動作情況進行例示。
電力狀態PS0之SSD3相應於經過0.5秒之閒置時間,轉變為電力狀態PS3。電力狀態PS3之SSD3相應於經過10秒之閒置時間,轉變為電力狀態PS4。又,電力狀態PS3或電力狀態PS4之SSD3係相應於被輸入請求(指令),而轉變為電力狀態PS0。
圖18表示如此進行狀態轉變之SSD3對指令進行處理之情形時之耗電之變化的示例。於圖18所示的示例中,表示請求851、852、853被輸入三次之情形時之無基於截止期限時間之排程之動作之耗電86、及存在基於截止期限時間之排程之動作之耗電87的變化。此處,作為一例,假定各請求851、852、853包含一個以上之讀取指令。
首先,對無基於截止期限時間之排程之動作之耗電86進行說明。相應於被輸入第一次之請求851,SSD3自PS4轉變為PS0,執行與該請求851相應之所有讀取處理。其後,若經過0.5秒之閒置時間,則SSD3自PS0轉變為PS3,藉此進入至淺休眠。於對應於淺休眠之PS3中,消耗比PS0下之電力低之電力。
於該淺休眠之時間未達10秒之期間內,輸入第2次之請求852,相應於此,SSD3自PS3轉變為PS0,且執行相應於該請求852之所有讀取處理。其後,若經過0.5秒之閒置時間,則SSD3自PS0轉變為PS3,藉此進入至淺休眠。
進而,於該淺休眠之時間未達10秒之期間內,輸入第3次之請求853,相應於此,SSD3自PS3轉變為PS0,且執行相應於該請求853之所有讀取處理。其後,若經過0.5秒之閒置時間,則SSD3自PS0轉變為PS3,藉此進入至淺休眠。
如上所述,SSD3係相應於經過10秒之閒置時間,自PS3轉變為PS4(深休眠)。因此,若自某請求之處理後轉變為PS3至被輸入新請求為止之間隔未達10秒,則SSD3重複PS0與PS3之間之轉變,不會轉變為PS4。
然後,對本實施形態之電腦系統1中之存在基於截止期限時間之排程之動作之耗電87進行說明。
相應於被輸入第1次之請求851,SSD3自PS4轉變為PS0,且執行相應於該請求851之所需最小限度之讀取處理,並轉變為PS4。即,SSD3係基於截止期限時間,以儘可能延遲地執行讀取處理之方式進行排程,僅執行無法延遲之讀取處理。繼而,SSD3自PS0轉變為PS4,於應執行延遲之讀取處理之時間之前或被輸入新請求之前,進入至深休眠。就對應於深休眠之PS4而言,消耗比淺休眠之PS3下之電力低之電力。
相應於在深休眠中被輸入第2次之請求852,SSD3自PS4轉變為PS3,判定可使相應於該請求852之所有讀取處理之執行延遲,並對延遲之讀取處理進行排程。因為可使相應於請求852之所有讀取處理之執行延遲,故而SSD3再次自PS3轉變為PS4。
進而,相應於在深休眠中被輸入第3次之請求853,SSD3自PS4轉變為PS3,判定可使相應於該請求853之所有讀取處理之執行延遲,並對延遲之讀取處理進行排程。因為可使相應於請求853之所有讀取處理之執行延遲,故而SSD3再次自PS3轉變為PS4。
其後,若基於排程方式,達到應重新開始讀取處理之執行之時間,則SSD3自PS4轉變為PS0,且執行讀取處理。藉此,以於截止期限時間之前對請求851、852、853進行處理之方式,執行讀取處理。繼而,SSD3自PS0轉變為PS3(或PS4)。
如上所述,SSD3係基於對請求(讀取指令)指定之截止期限時間,以儘可能延遲地執行讀取處理之方式進行排程,執行所需最小限度之讀取處理,並自PS0轉變為PS4。因此,除了當基於排程方式而需要讀取處理時轉變為PS0,且當被輸入新請求時轉變為PS3以外,儘可能設定為耗電最低之PS4。
圖19係表示於無基於截止期限時間之排程之情形時及存在基於截止期限時間之排程之情形時,於圖18所示之整個期間內,被設定為各電力狀態PS0、PS3、PS4之期間之比率。
被設定為進行全速動作之PS0之期間於無基於截止期限時間之排程之情形時及存在基於截止期限時間之排程之情形時均為10%。即,於與請求851、852、853相應之同一處理內容中,為PS0之活動時間相同。
被設定為淺休眠之PS3之期間係於無基於截止期限時間之排程之情形時為90%,於存在基於截止期限時間之排程之情形時為1%。又,被設定為深休眠之PS4之期間係於無基於截止期限時間之排程之情形時為0%,於存在基於截止期限時間之排程之情形時為89%。
於無基於截止期限時間之排程之情形時無被設定為PS4之期間,其原因在於,若於某請求之處理後,自轉變為PS3至被輸入新請求為止之間隔未達10秒,則SSD3重複PS0與PS3之間之轉變,不會轉變為PS4。又,於存在基於截止期限時間之排程之情形時被設定為PS4之期間較長,其原因在於,相應於基於截止期限時間以儘可能延遲地執行處理之方式進行排程,且執行所需最小限度之處理,相應於此,自PS0轉變為PS4。即,其原因在於,除了基於排程方式而需要處理之情形及被輸入新請求之情形以外,儘可能設定為耗電最低之PS4。
根據此種被設定為各電力狀態PS0、PS3、PS4之期間之比率之差異,於無基於截止期限時間之排程之情形時消耗之總電力為545 mW,與此相對,於存在基於截止期限時間之排程之情形時消耗之總電力為503 mW。因此,認為於該例中,藉由進行基於截止期限時間之排程,能獲得7.8%之電力削減效果。
然後,參照圖20及圖21,說明用以判斷某SSD3係於無基於截止期限時間之排程之情況下動作,還是於存在基於截止期限時間之排程之情況下動作的示例。此處,假定於SSD3設置有電流計及匯流排分析器,該電流計係用以對流動至被供給至該SSD3之電源(例如DC(Direct Current,直流電源)3.3 V)之電流進行計測,該匯流排分析器係於附有時刻資訊之情形時對主機2與SSD3之間之匯流排(主機I/F11)之邏輯通信量(指令或資料)進行觀測。
圖20係表示於無基於截止期限時間之排程之情況下動作之SSD3之耗電81與表示通信量之有無之匯流排分析器波形82之轉變。
首先,SSD3為了對由主機2統一輸入之請求(指令)854對應之工作1、2、3進行處理,分別以電力P1、P2a、P2b動作。於此期間,匯流排分析器波形82雖於相當於工作1與工作2之間之位置及相當於工作2與工作3之間之位置包含表示無於與主機2之間傳輸之通信量(斷開(OFF))之微小之閒置時間Tidle(例如1 ms),但大致表示出存在通信量(接通(ON))。
相應於與請求854對應之工作1、2、3之處理完成,且經過超過閾值(例如0.5秒)之閒置時間TidIe,SSD3轉變為低耗電狀態(例如PS3)。於此期間,無與主機2之間傳輸之通信量,故而匯流排分析器波形82表示斷開。
繼而,SSD3為了實現如GC般之SSD3之內部動作而非主機2之請求,利用電力固定器(電力Pinner)動作。由於為SSD3之內部動作,故而於此期間,無於與主機2之間傳輸之通信量,匯流排分析器波形82表示斷開。
又,圖21係表示本實施形態之於存在基於截止期限時間之排程之情況下動作的SSD3中之耗電83與表示通信量之有無之匯流排分析器波形84之轉變。
首先,SSD3基於所指定之截止期限時間將與由主機2統一輸入之請求(指令)854對應之工作1、2、3進行排程。繼而,SSD3為了對工作1、2、3中之應立即處理之最小限度之工作1進行處理,而以電力P1動作。於此期間,存在相應於工作1之處理於與主機2之間傳輸之通信量,故而匯流排分析器波形84表示接通。
SSD3相應於工作1之處理已完成,以基於排程方式之待機時間Twait(例如100 ms)進入至低耗電狀態(例如PS4)。於此期間,無與主機2之間傳輸之通信量,故而匯流排分析器波形84表示斷開。
若經過待機時間Twait,則SSD3係基於排程方式以電力P2動作,以對工作2進行處理。於此期間,存在相應於工作2之處理於與主機2之間傳輸之通信量,故而匯流排分析器波形84表示接通。
繼而,SSD3係於相應於工作2之處理完成而轉變為低耗電狀態(例如PS4)之後,為了實現如GC般之SSD3之內部動作而非主機2之請求,利用電力Pinner動作。由於為SSD3之內部動作,故而於此期間,無於與主機2之間傳輸之通信量,匯流排分析器波形84表示斷開。
進而,SSD3係於相應於該內部動作完成而轉變為低耗電狀態(例如PS4)之後,為了基於排程方式對工作3進行處理而以電力P3動作。於此期間,根據工作3之處理存在與主機2之間傳輸之通信量,故而匯流排分析器波形84表示接通。
對於圖20所示之於無基於截止期限時間之排程之情況下動作之SSD,於對應於請求之工作1、2、3之處理完成之前,耗電81仍然較高,又,匯流排分析器波形82亦除了於工作間之微小之閒置時間TidIe成為斷開,仍然保持接通。繼而,於工作1、2、3之處理完成之後,有為了實現如GC般之SSD3之內部動作而耗電81變高之情況,但只要未輸入有後續之請求(工作),則匯流排分析器波形82仍然為斷開,只要未輸入有後續之請求,則不會產生與主機2之間之通信量。
與此相對,對於圖21所示之於存在基於截止期限時間之排程之情況下動作之本實施形態之SSD3,僅對與請求對應之工作1、2、3中之所需最小限度之工作1進行處理,其他工作2、3之處理儘可能延遲。因此,於未完成所有工作1、2、3之處理之狀態(例如僅完成工作1之處理之狀態)下,耗電83減少(成為低耗電狀態),且產生匯流排分析器波形84亦成為斷開之較長之待機時間Twait。進而,於該待機時間Twait之後,未輸入新請求,耗電變高(P2、P3),且產生匯流排分析器波形84成為接通之期間。因此,於對相應於某請求854之所有工作1、2、3進行處理之期間內,產生較長之待機時間Twait。
如此,就於存在基於截止期限時間之排程之情況下動作之SSD3、及於無基於截止期限時間之排程之情況下動作之SSD3而言,有於對相應於請求854之工作進行處理之期間,匯流排分析器波形82、84成為斷開之時間之長度不同之情況。例如,如圖20及圖21所示,於存在基於截止期限時間之排程之情況下動作之SSD3之工作1之處理與工作2之處理之間之待機時間Twait與於無基於截止期限時間之排程之情況下動作之SSD3之工作1之處理與工作2之處理之間之閒置時間TidIe相比較長。
因此,於對相應於某請求之所有工作進行處理之期間內,若於無基於截止期限時間之排程之情況下動作之SSD中產生較假定之閒置時間TidIe長之待機時間Twait,則可以說該SSD係本實施形態之存在基於截止期限時間之排程之SSD3。因此,藉由對被輸入主機2之請求之後之耗電與匯流排分析器波形進行計測,可判別某SSD3係於無基於截止期限時間之排程之情況下動作,還是於存在基於截止期限時間之排程之情況下動作。
又,圖22係表示作為主機2發揮功能之資訊處理裝置(計算裝置)之硬體構成例。
該資訊處理裝置係以如伺服器(例如儲存伺服器)般之計算裝置之形式實現。該資訊處理裝置包含處理器(CPU)101、主記憶體102、BIOS-ROM(Basic Input/Output System-Read Only Memory,基本輸入輸出系統唯讀記憶體)103、網路控制器105、周邊介面控制器106、控制器107、及嵌入式控制器(EC)108等。
處理器101係以控制該資訊處理裝置之各組件之動作之方式構成之CPU。該處理器101執行自複數個SSD3中之任一者載入至主記憶體102之多種程式。主記憶體102包含如DRAM般之隨機存取記憶體。由處理器101執行之程式包含上述應用層41、OS42及裝置驅動程式43。
又,處理器101亦執行作為非揮發性記憶體之BIOS-ROM103中所儲存之基本輸入輸出系統(BIOS)。BIOS係用於硬體控制之系統程式。
網路控制器105係如有線LAN(Local Area Network,區域網路)控制器、無線LAN控制器般之通信裝置。藉由使用網路控制器105之有線通信或無線通信,例如亦可於與儲存裝置之間收發資料。
周邊介面控制器106係以執行與如USB(Universal Serial Bus,通用串列匯流排)裝置般之周邊裝置之通信之方式構成。
控制器107係以執行與分別連接於複數個連接器107A之裝置之通信之方式構成。複數個SSD3亦可分別連接於複數個連接器107A。控制器107為SAS擴展器、PCIe切換器、PCIe擴展器、快閃陣列控制器、或RAID(Redundant Arrays of Independent Disks,獨立磁碟冗餘陣列)控制器等。
EC108係作為以執行資訊處理裝置之電力管理之方式構成之系統控制器發揮功能。EC108係相應於用戶對電源開關之操作而開啟及關閉資訊處理裝置。EC108係以單晶片微控制器等處理電路之形式實現。EC108亦可內置控制鍵盤等輸入裝置之鍵盤控制器。
如以上所作說明般,根據本根據實施形態,可根據狀況排程指令且削減耗電。主機2內之處理器101係於被要求對SSD3發佈一個以上之指令之情形時,決定該等一個以上之指令分別應被處理之一個以上之截止期限時間,將分別被指定一個以上之截止期限時間之一個以上之指令發佈至SSD3。SSD3之控制器4係基於一個以上之截止期限時間,決定表示一個以上之指令各自被執行之時點之排程方式,且按照該排程方式執行一個以上之指令。
如此,電腦系統1包含:主機2,其發佈根據狀況之被指定了截止期限時間之指令;及SSD3,其將該指令適當地進行排程並處理。藉此,可獲得削減由電腦系統1消耗之電力量且縮短最壞情況下之指令響應時間、即提高QoS之效果。
又,本實施形態中所記載之多種功能之各者亦可藉由電路(處理電路)而實現。處理電路之示例中包含如中央處理裝置(CPU)般之經編程之處理器。該處理器係藉由執行記憶體中所儲存之電腦程式(命令群),而執行所記載之各功能。該處理器亦可為包含電氣電路之微處理器。處理電路之示例中亦包含數位信號處理器(DSP)、特殊應用積體電路(ASIC)、微控制器、控制器及其他電氣電路零件。本實施形態中所記載之CPU以外之其他組件各自亦可藉由處理電路實現。
又,本實施形態之各種處理可藉由電腦程式而實現,故而只要通過儲存有該電腦程式之電腦可讀取之記憶媒體將該電腦程式安裝於電腦並執行,便可容易地實現與本實施形態相同之效果。
已對本發明之若干實施形態進行了說明,但該等實施形態係作為示例而提出,並非意圖限定發明之範圍。該等新穎之實施形態能以其他多種形態實施,可於不脫離發明之主旨之範圍內進行各種省略、置換及變更。該等實施形態或其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍中所記載之發明及其均等之範圍內。
[相關申請案] 本申請案享有以日本專利申請案2018-65039號(申請日:2018年3月29日)為基礎申請案之優先權。本申請案係藉由參照該基礎申請案而包含基礎申請案之全部內容。
1‧‧‧電腦系統2‧‧‧主機3‧‧‧SSD3A‧‧‧第1 SSD3B‧‧‧第2 SSD3C‧‧‧高速緩衝SSD3D‧‧‧資料SSD3E‧‧‧備份SSD4‧‧‧控制器5‧‧‧NAND型快閃記憶體6‧‧‧DRAM10‧‧‧匯流排11‧‧‧主機I/F12‧‧‧CPU13‧‧‧NAND I/F14‧‧‧DRAM I/F30‧‧‧佇列31‧‧‧提交佇列31-1、31-2、31-3、31-4‧‧‧提交佇列32‧‧‧完成佇列41‧‧‧應用層42‧‧‧OS43‧‧‧裝置驅動程式51‧‧‧動畫檔案61‧‧‧讀取緩衝區62‧‧‧寫入緩衝區63‧‧‧GC緩衝區64‧‧‧LUT81‧‧‧耗電82‧‧‧匯流排分析器波形83‧‧‧耗電84‧‧‧匯流排分析器波形91‧‧‧管理類92‧‧‧緊急類93‧‧‧加權循環類93H‧‧‧高優先度93L‧‧‧低優先度93M‧‧‧中優先度101‧‧‧處理器102‧‧‧主記憶體103‧‧‧BIOS-ROM105‧‧‧網路控制器106‧‧‧周邊介面控制器107‧‧‧控制器108‧‧‧嵌入式控制器107A‧‧‧連接器121‧‧‧讀取控制部122‧‧‧寫入控制部123‧‧‧GC控制部124‧‧‧仲裁控制部351〜362‧‧‧指令431‧‧‧指令發佈部432‧‧‧疲勞度推定部851‧‧‧請求852‧‧‧請求853‧‧‧請求854‧‧‧請求911‧‧‧管理提交佇列921‧‧‧I/O提交佇列931、932、933‧‧‧I/O提交佇列P1‧‧‧電力P2‧‧‧電力P2a‧‧‧電力P2b‧‧‧電力P3‧‧‧電力PS0‧‧‧電力狀態PS1‧‧‧電力狀態PS2‧‧‧電力狀態PS3‧‧‧電力狀態PS4‧‧‧電力狀態S11‧‧‧步驟S12‧‧‧步驟S13‧‧‧步驟S21‧‧‧步驟S22‧‧‧步驟S31‧‧‧步驟S32‧‧‧步驟S33‧‧‧步驟S34‧‧‧步驟S35‧‧‧步驟S36‧‧‧步驟S37‧‧‧步驟S38‧‧‧步驟S39‧‧‧步驟TidIe‧‧‧閒置時間
圖1係表示實施形態之電腦系統之構成例之方塊圖。 圖2係用以說明本實施形態之電腦系統中之指令處理之動作的示例之圖。 圖3係表示本實施形態之電腦系統中所使用之指定了截止期限時間之指令(提交佇列項)之格式的示例之圖。 圖4係表示圖3之截止期限時間之格式的示例之圖。 圖5係表示循環(round robin)方式之指令仲裁之示例之圖。 圖6係表示加權循環方式之指令仲裁之示例之圖。 圖7係表示本實施形態之電腦系統中之指令仲裁的示例之圖。 圖8係表示本實施形態之電腦系統中所使用之包含完成時間之完成佇列項之格式的示例之圖。 圖9係表示藉由本實施形態之電腦系統中所設置之主機而執行之指令發佈處理之順序的示例之流程圖。 圖10係表示藉由本實施形態之電腦系統中所設置之主機而執行之指令中止處理之順序的示例之流程圖。 圖11係表示藉由本實施形態之電腦系統中所設置之SSD而執行之執行控制處理之順序的示例之流程圖。 圖12係用以說明本實施形態之電腦系統中之流動作之圖。 圖13係用以說明本實施形態之電腦系統中之下載動作之圖。 圖14係用以說明本實施形態之電腦系統中之備份動作之圖。 圖15係用以說明對本實施形態之電腦系統中之多層儲存系統之存取動作的圖。 圖16係表示圖15之存取動作之處理順序之圖。 圖17係表示本實施形態之電腦系統中所設置之SSD之電力狀態之轉變的示例之圖。 圖18係用以說明本實施形態之電腦系統中所設置之SSD之耗電的變化之圖。 圖19係用以說明本實施形態之電腦系統中所設置之SSD之耗電削減的效果之圖。 圖20係表示無基於截止期限時間之排程之電腦系統中之消耗功率與匯流排分析器波形之轉變的示例之圖。 圖21係表示本實施形態之電腦系統中之消耗功率與匯流排分析器波形之轉變的示例之圖。 圖22係表示本實施形態之電腦系統中所設置之主機之構成例的方塊圖。
2‧‧‧主機
4‧‧‧控制器
31‧‧‧提交佇列
32‧‧‧完成佇列
Claims (17)
- 一種電子機器,其係可經由介面與主機連接者,且包含:非揮發性記憶體;及控制器,其電性連接於上述非揮發性記憶體,可並行地處理由上述主機發佈之複數個指令;且上述控制器構成為:於與上述主機連接之情形時,當藉由上述主機,分別被指定了應被處理之一個以上之截止期限時間之一個以上之指令被發佈且被儲存至佇列時,基於上述一個以上之截止期限時間而決定表示上述一個以上之指令各自被處理之時點之排程方式,上述一個以上之截止期限時間係由上述主機決定,上述佇列包含於上述主機中,按照上述排程方式,自上述佇列提取(fetch)上述一個以上之指令中第1指令,及執行與上述提取之第1指令相應之處理。
- 如請求項1之電子機器,其中上述一個以上之指令為讀取指令,對上述一個以上之指令分別指定之一個以上之截止期限時間係:基於上述主機對上述電子機器要求之讀取速度而決定。
- 如請求項1之電子機器,其中上述一個以上之指令係寫入指令,對上述一個以上之指令分別指定之一個以上之截止期限時間係:基於上述主機對上述電子機器要求之寫入速度而決定。
- 如請求項1之電子機器,其中上述控制器進而構成為:於與上述主機連接之情形時,可將上述一個以上之指令之處理各自完成之時間,通知至上述主機。
- 一種電子機器,其包含:記憶體;及處理器,其構成為執行上述記憶體中所儲存之程式;且上述處理器構成為:於被要求對可並行地處理由該處理器發佈之複數個指令之儲存裝置發佈一個以上之指令之情形時,分別決定上述一個以上之指令應由上述儲存裝置處理之一個以上之截止期限時間,對上述儲存裝置,發佈分別被指定了(designated)上述截止期限時間之上述一個以上之指令,及將上述發佈之一個以上之指令儲存至佇列,該佇列包含於上述電子機器中;其中由上述儲存裝置按照排程方式自上述佇列提取上述一個以上之指令中第1指令,上述排程方式表示上述一個以上之指令各自被處理之時點,且上述排程方式係由上述儲存裝置基於上述一個以上之截止期限時間而決定。
- 如請求項5之電子機器,其中上述第1指令為讀取指令,上述處理器構成為基於對上述儲存裝置要求之讀取速度,而決定上 述截止期限時間。
- 如請求項5之電子機器,其中上述第1指令為寫入指令,上述處理器構成為基於對上述儲存裝置要求之寫入速度,而決定上述截止期限時間。
- 如請求項5之電子機器,其中上述處理器進而構成為:當於檔案經由網路被下載至上述電子機器之期間,將構成上述檔案之至少一部分資料寫入至上述儲存裝置時,基於上述檔案被下載之速度,決定用於寫入上述至少一部分資料之寫入指令應被處理之第1截止期限時間,將被指定了上述第1截止期限時間之上述寫入指令,發佈至上述儲存裝置。
- 如請求項5之電子機器,其中上述處理器進而構成為:於將第1儲存裝置中所儲存之資料複製至第2儲存裝置之情形時,基於上述第1儲存裝置之讀取性能與上述第2儲存裝置之寫入性能,決定用於讀出上述資料之讀取指令應被處理之第1截止期限時間,將被指定了上述第1截止期限時間之上述讀取指令,發佈至上述第1儲存裝置。
- 如請求項5之電子機器,其中上述處理器進而對具有第1性能之第1儲存裝置發佈被指定了第1截止期限時間之第1 指令,對具有較上述第1性能低之第2性能之第2儲存裝置,發佈被指定了較上述第1截止期限時間長之第2截止期限時間之第2指令,於上述第2儲存裝置進行之上述第2指令之處理完成前,上述第1儲存裝置進行之上述第2指令之處理已完成時,對上述第2儲存裝置發佈中止上述第2指令之異常終止指令(abort command)。
- 如請求項5之電子機器,其中上述處理器進而基於上述儲存裝置完成上述第1指令之處理之時間,推定上述儲存裝置之疲勞度。
- 一種電腦系統,其係包含儲存裝置及主機者,上述儲存裝置包含:非揮發性記憶體;及控制器,其電性連接於上述非揮發性記憶體,可並行地處理由上述主機發佈之複數個指令;且上述主機包含:記憶體;及處理器,其構成為執行上述記憶體中所儲存之程式;上述處理器構成為:於被要求對上述儲存裝置發佈一個以上之指令之情形時,決定上述一個以上之指令各自應被處理之一個以上之截止期限時間,對上述儲存裝置發佈分別被指定了上述一個以上之截止期限時間之上述一個以上之指令,將上述發佈之一個以上之指令儲存至佇列,該佇列包含於上述主 機中;上述控制器構成為:基於上述一個以上之截止期限時間,決定表示上述一個以上之指令各自被處理之時點之排程方式,按照上述排程方式,自上述佇列提取上述一個以上之指令中第1指令,執行與上述提取之第1指令相應之處理。
- 如請求項12之電腦系統,其中上述一個以上之指令為讀取指令,上述處理器構成為基於對上述儲存裝置要求之讀取速度,而決定對上述一個以上之指令分別指定之一個以上之截止期限時間。
- 如請求項12之電腦系統,其中上述一個以上之指令為寫入指令,上述處理器構成為基於對上述儲存裝置要求之寫入速度,而決定對上述一個以上之指令分別指定之一個以上之截止期限時間。
- 一種電子機器之控制方法,其係包含非揮發性記憶體之電子機器之控制方法;且於藉由主機,分別被指定了應被處理之一個以上之截止期限時間之一個以上之指令被發佈且被儲存至佇列之情形時,基於上述一個以上之截止期限時間,決定表示上述一個以上之指令各自被處理之時點之排程方式,上述一個以上之截止期限時間係由上述主機決定,上述佇列包含於上述主機中, 按照上述排程方式,自上述佇列提取上述一個以上之指令中第1指令,且執行與上述提取之第1指令相應之處理。
- 一種電子機器之控制方法,其係於被要求對可並行地處理電子機器發佈之複數個指令之儲存裝置發佈一個以上之指令之情形時,分別決定上述一個以上之指令應由上述儲存裝置處理之一個以上之截止期限時間,對上述儲存裝置發佈分別被指定了上述截止期限時間之上述一個以上之指令,且將上述發佈之一個以上之指令儲存至佇列,該佇列包含於上述電子機器中;其中由上述儲存裝置按照排程方式自上述佇列提取上述一個以上之指令中第1指令,上述排程方式表示上述一個以上之指令各自被處理之時點,且上述排程方式係由上述儲存裝置基於上述一個以上之截止期限時間而決定。
- 一種電腦系統之控制方法,該電腦系統包含主機及儲存裝置,該儲存裝置包含非揮發性記憶體且可並行地處理由主機發佈之複數個指令;且上述控制方法係:於被要求對上述儲存裝置發佈一個以上之指令之情形時,由上述主機決定上述一個以上之指令各自應被處理之一個以上之截止期限時間,由上述主機對上述儲存裝置,發佈分別被指定了上述一個以上之截止期限時間之上述一個以上之指令, 由上述主機將上述發佈之一個以上之指令儲存至佇列,該佇列包含於上述主機中;由上述儲存裝置,基於上述一個以上之截止期限時間,決定表示上述一個以上之指令各自被執行之時點之排程方式,由上述儲存裝置,按照上述排程方式自上述佇列提取上述一個以上之指令中第1指令,且由上述儲存裝置,執行與上述提取之第1指令相應之處理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018065039A JP2019175292A (ja) | 2018-03-29 | 2018-03-29 | 電子機器、コンピュータシステム、および制御方法 |
JP2018-065039 | 2018-03-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201942738A TW201942738A (zh) | 2019-11-01 |
TWI704496B true TWI704496B (zh) | 2020-09-11 |
Family
ID=68056191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107123305A TWI704496B (zh) | 2018-03-29 | 2018-07-05 | 電子機器、電腦系統及其等之控制方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10891061B2 (zh) |
JP (1) | JP2019175292A (zh) |
CN (1) | CN110321066B (zh) |
TW (1) | TWI704496B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11709539B2 (en) | 2018-01-24 | 2023-07-25 | Western Digital Technologies, Inc. | Low power state staging |
US11023457B1 (en) * | 2018-10-19 | 2021-06-01 | Palantir Technologies Inc. | Targeted sweep method for key-value data storage |
US10732900B2 (en) * | 2018-10-24 | 2020-08-04 | Western Digital Technologies, Inc. | Bounded latency and command non service methods and apparatus |
JP7370696B2 (ja) * | 2018-11-08 | 2023-10-30 | キヤノン株式会社 | 通信装置、制御方法、およびプログラム |
US10809934B2 (en) * | 2018-12-11 | 2020-10-20 | Intel Corporation | NAND direct access horizontal queue |
KR102692901B1 (ko) | 2019-01-11 | 2024-08-08 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 비휘발성 메모리 블록 내 데이터를 삭제하는 방법 및 장치 |
JP6842480B2 (ja) * | 2019-02-14 | 2021-03-17 | 株式会社日立製作所 | 分散ストレージシステム |
US11188454B2 (en) * | 2019-03-25 | 2021-11-30 | International Business Machines Corporation | Reduced memory neural network training |
JP7408357B2 (ja) * | 2019-11-15 | 2024-01-05 | キオクシア株式会社 | メモリシステム及びその制御方法 |
US11243804B2 (en) * | 2019-11-19 | 2022-02-08 | Micron Technology, Inc. | Time to live for memory access by processors |
CN111128290B (zh) * | 2019-12-24 | 2021-08-17 | 深圳忆联信息系统有限公司 | 固态硬盘apst特性的测试方法、装置和计算机设备 |
JP2021149374A (ja) | 2020-03-18 | 2021-09-27 | キオクシア株式会社 | データ処理装置 |
TWI738442B (zh) * | 2020-07-29 | 2021-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
KR20220026432A (ko) | 2020-08-25 | 2022-03-04 | 삼성전자주식회사 | 고속 링크 스타트업을 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
TWI758978B (zh) * | 2020-11-30 | 2022-03-21 | 創意電子股份有限公司 | 時脈樹的修正裝置及其修正方法 |
WO2022126578A1 (en) * | 2020-12-18 | 2022-06-23 | Micron Technology, Inc. | Dynamic interval for memory device to enter low power state |
US11941298B2 (en) * | 2021-05-11 | 2024-03-26 | Mediatek Inc. | Abort handling by host controller for storage device |
US12067254B2 (en) | 2021-05-21 | 2024-08-20 | Samsung Electronics Co., Ltd. | Low latency SSD read architecture with multi-level error correction codes (ECC) |
US20220374149A1 (en) * | 2021-05-21 | 2022-11-24 | Samsung Electronics Co., Ltd. | Low latency multiple storage device system |
JP2023037883A (ja) * | 2021-09-06 | 2023-03-16 | キオクシア株式会社 | 情報処理装置 |
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
US11967314B2 (en) * | 2021-11-02 | 2024-04-23 | Capital One Services, Llc | Automatic generation of a contextual meeting summary |
US11899978B2 (en) * | 2021-12-06 | 2024-02-13 | Samsung Electronics Co., Ltd. | Method and system to abort a command for PCIe based non-volatile memory express solid-state drive |
US11880575B2 (en) * | 2022-02-21 | 2024-01-23 | Dell Products L.P. | Adaptive memory device power saving setting in an information handling system |
US20240061580A1 (en) * | 2022-08-19 | 2024-02-22 | Samsung Electronics Co., Ltd. | Submission queue entry age tracking |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040177221A1 (en) * | 1999-01-15 | 2004-09-09 | Oracle International Corporation | Method and apparatus for managing data access and storage of data located on multiple storage devices |
US20100262721A1 (en) * | 2009-04-09 | 2010-10-14 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
TW201305821A (zh) * | 2011-07-14 | 2013-02-01 | Lsi Corp | 控制快閃記憶體介質系統的方法、裝置及固態記憶體件 |
US20130227583A1 (en) * | 2012-02-23 | 2013-08-29 | Qualcomm Incorporated | Method and System For Scheduling Requests In A Portable Computing Device |
US20140223071A1 (en) * | 2013-02-04 | 2014-08-07 | Lsi Corporation | Method and system for reducing write latency in a data storage system by using a command-push model |
TW201502977A (zh) * | 2013-07-05 | 2015-01-16 | Phison Electronics Corp | 指令執行方法、連接器與記憶體儲存裝置 |
US20150095605A1 (en) * | 2013-10-02 | 2015-04-02 | Advanced Micro Devices, Inc. | Latency-Aware Memory Control |
CN105224253A (zh) * | 2015-09-29 | 2016-01-06 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘性能优化的方法 |
US20180074881A1 (en) * | 2016-09-13 | 2018-03-15 | Hewlett Packard Enterprise Development Lp | Storage drive management |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2950223B2 (ja) * | 1996-01-12 | 1999-09-20 | 日本電気株式会社 | データ読出装置 |
US8122158B1 (en) | 2009-09-25 | 2012-02-21 | Emc Corporation | Method for improving I/O performance of host systems by applying future time interval policies when using external storage systems |
US8806106B2 (en) * | 2010-11-12 | 2014-08-12 | Seagate Technology Llc | Estimating wear of non-volatile, solid state memory |
US9032177B2 (en) | 2012-12-04 | 2015-05-12 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
JP6088837B2 (ja) | 2013-02-12 | 2017-03-01 | 株式会社東芝 | ストレージ制御装置、ストレージ制御方法、ストレージシステムおよびプログラム |
US9110786B2 (en) * | 2013-11-07 | 2015-08-18 | Sandisk Technologies Inc. | Read operation prior to retrieval of scatter gather list |
US20160026402A1 (en) | 2014-07-22 | 2016-01-28 | NXGN Data, Inc. | System and method for providing consistent, reliable, and predictable performance in a storage device |
US9977751B1 (en) * | 2014-08-25 | 2018-05-22 | Marvell International Ltd. | Method and apparatus for arbitrating access to shared resources |
JP6414853B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10331360B2 (en) * | 2016-09-29 | 2019-06-25 | Intel Corporation | Scalable bandwidth non-volatile memory |
-
2018
- 2018-03-29 JP JP2018065039A patent/JP2019175292A/ja active Pending
- 2018-07-05 TW TW107123305A patent/TWI704496B/zh active
- 2018-07-27 CN CN201810846319.4A patent/CN110321066B/zh active Active
- 2018-08-02 US US16/052,880 patent/US10891061B2/en active Active
-
2020
- 2020-12-01 US US17/108,311 patent/US11520496B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040177221A1 (en) * | 1999-01-15 | 2004-09-09 | Oracle International Corporation | Method and apparatus for managing data access and storage of data located on multiple storage devices |
US20100262721A1 (en) * | 2009-04-09 | 2010-10-14 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
TW201305821A (zh) * | 2011-07-14 | 2013-02-01 | Lsi Corp | 控制快閃記憶體介質系統的方法、裝置及固態記憶體件 |
US20130227583A1 (en) * | 2012-02-23 | 2013-08-29 | Qualcomm Incorporated | Method and System For Scheduling Requests In A Portable Computing Device |
US20140223071A1 (en) * | 2013-02-04 | 2014-08-07 | Lsi Corporation | Method and system for reducing write latency in a data storage system by using a command-push model |
TW201502977A (zh) * | 2013-07-05 | 2015-01-16 | Phison Electronics Corp | 指令執行方法、連接器與記憶體儲存裝置 |
US20150095605A1 (en) * | 2013-10-02 | 2015-04-02 | Advanced Micro Devices, Inc. | Latency-Aware Memory Control |
CN105224253A (zh) * | 2015-09-29 | 2016-01-06 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘性能优化的方法 |
US20180074881A1 (en) * | 2016-09-13 | 2018-03-15 | Hewlett Packard Enterprise Development Lp | Storage drive management |
Non-Patent Citations (1)
Title |
---|
Wei Yan, Yu Liu, Xuguang Wang, "An Efficient Parallel Executing Command Scheduler for NAND Flash Storage Systems", 2013 IEEE * |
Also Published As
Publication number | Publication date |
---|---|
US10891061B2 (en) | 2021-01-12 |
US11520496B2 (en) | 2022-12-06 |
TW201942738A (zh) | 2019-11-01 |
CN110321066A (zh) | 2019-10-11 |
JP2019175292A (ja) | 2019-10-10 |
US20210081120A1 (en) | 2021-03-18 |
US20190303024A1 (en) | 2019-10-03 |
CN110321066B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI704496B (zh) | 電子機器、電腦系統及其等之控制方法 | |
Jung et al. | HIOS: A host interface I/O scheduler for solid state disks | |
KR102371916B1 (ko) | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 | |
US10248322B2 (en) | Memory system | |
JP6298098B2 (ja) | ストレージ環境におけるi/o書き込みのスケジューリング | |
US9110669B2 (en) | Power management of a storage device including multiple processing cores | |
US8341374B2 (en) | Solid state drive and related method of scheduling operations | |
US7856526B2 (en) | Storage apparatus and power-saving control method of storage apparatus | |
US8392670B2 (en) | Performance management of access to flash memory in a storage device | |
JP2018125025A (ja) | 適応持続性システム、方法、インタフェース | |
TWI712881B (zh) | 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法 | |
TW201619971A (zh) | 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法 | |
US8868856B2 (en) | Storage system with reduced energy consumption | |
US8161251B2 (en) | Heterogeneous storage array optimization through eviction | |
US11321022B2 (en) | Systems and methods for scheduling flash operations | |
WO2019062202A1 (zh) | 硬盘操作命令的执行方法、硬盘及存储介质 | |
Chang et al. | VSSD: Performance isolation in a solid-state drive | |
Shin et al. | Providing QoS through host controlled flash SSD garbage collection and multiple SSDs | |
KR20110033066A (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
WO2022017148A1 (zh) | 文件系统管理方法、电子设备及存储介质 | |
Shahidi et al. | CachedGC: Cache-assisted garbage collection in modern solid state drives | |
US20210263668A1 (en) | Information processing device and computer-readable recording medium recording storage control program | |
JP6193189B2 (ja) | Nandバックグラウンド処理制御装置 | |
US20100174871A1 (en) | Input/output control system, input/output control method and input/output control program | |
US11372560B2 (en) | Utilization-efficient resource allocation |