TWI615775B - 因應服務質量的固態硬碟存取方法以及使用該方法的裝置 - Google Patents

因應服務質量的固態硬碟存取方法以及使用該方法的裝置 Download PDF

Info

Publication number
TWI615775B
TWI615775B TW105137394A TW105137394A TWI615775B TW I615775 B TWI615775 B TW I615775B TW 105137394 A TW105137394 A TW 105137394A TW 105137394 A TW105137394 A TW 105137394A TW I615775 B TWI615775 B TW I615775B
Authority
TW
Taiwan
Prior art keywords
logical block
block address
data
quality
service
Prior art date
Application number
TW105137394A
Other languages
English (en)
Other versions
TW201814517A (zh
Inventor
周溱
苗寧忠
Original Assignee
上海寶存信息科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 上海寶存信息科技有限公司 filed Critical 上海寶存信息科技有限公司
Application granted granted Critical
Publication of TWI615775B publication Critical patent/TWI615775B/zh
Publication of TW201814517A publication Critical patent/TW201814517A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

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)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明的實施例提出一種因應服務質量的固態硬碟存取方法,由處理單元執行,包含以下步驟。取得多個虛擬機器的多個執行歷史,以及依據執行歷史及一服務質量從多個先進先出佇列選擇一者。從選擇的先進先出佇列取出最早進入的資料存取請求,並且依據取出的資料存取請求驅動儲存裝置以完成資料存取作業。

Description

因應服務質量的固態硬碟存取方法以及使用該方法的裝置
本發明關連於一種資料庫虛擬化技術(database virtualization),特別是一種因應服務質量的固態硬碟存取方法以及使用該方法的裝置。
資料庫虛擬化(database virtualization)運用於應用程式堆疊(application stack),是一種於儲存層及應用程式層間的去耦合(decoupling)技術。資料庫層的虛擬化使得資料庫的操作從實體端,變成邏輯的或虛擬的操作。虛擬化將計算及儲存資源聚合在一起,並且依據需求進行配置。傳統方法可為不同應用程式分割實體儲存空間,用以避免資料洩漏或被非法的使用者更改。然而,這難以避免一個應用程式使用超過預定份額的輸出/入效能,使得其他應用程式無法被服務。因此,本發明提出一種因應服務質量的固態硬碟劃分方法以及使用該方法的裝置,用以解決如上所述的問題。
本發明的實施例提出一種因應服務質量的固態硬碟存取方法,由處理單元執行,包含以下步驟。取得多個虛擬機器的多個執行歷史,以及依據執行歷史及一服務質量從多個 先進先出佇列選擇一者。從選擇的先進先出佇列取出最早進入的資料存取請求,並且依據取出的資料存取請求驅動儲存裝置以完成資料存取作業。
本發明的實施例提出一種因應服務質量的固態硬碟存取裝置,至少包含記憶體及處理單元。記憶體配置空間給多個先進先出佇列。處理單元耦接至記憶體,取得多個虛擬機器的多個執行歷史;依據執行歷史及服務質量從先進先出佇列選擇一者;從選擇的先進先出佇列取出最早進入的第一資料存取請求;以及依據取出的第一資料存取請求驅動儲存裝置以完成資料存取作業。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0、...、180_j_i‧‧‧儲存子單元
320_0_0、...、320_0_i‧‧‧晶片致能控制訊號
400‧‧‧實體儲存對照表
410‧‧‧實體位置資訊
410a‧‧‧區塊編號
410b‧‧‧單元編號
LBA0、LBA1、...、LBAn‧‧‧邏輯區塊位址
610‧‧‧處理單元
620‧‧‧顯示單元
630‧‧‧輸入裝置
640‧‧‧儲存裝置
650‧‧‧記憶體
660‧‧‧通訊介面
710‧‧‧管理程序
730_1、730_2、...、730_m‧‧‧虛擬機器
800_1、800_2、...、800_m‧‧‧先進先出佇列
S1010~S1070‧‧‧方法步驟
S1110~S1190‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4圖係依據本發明實施例之實體儲存對照示意圖。
第5圖係依據本發明實施例之實體儲存對照表的示意圖。
第6圖係依據本發明實施例的運算裝置的系統架構圖。
第7圖係依據本發明實施例的系統方塊示意圖。
第8圖係依據本發明實施例的虛擬機器及先進先出佇列的示意圖。
第9圖係依據本發明實施例的資料存取請求的排程示意圖。
第10圖係依據本發明實施例的推入佇列方法流程圖。
第11圖係依據本發明實施例的取出佇列方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110,用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。處理單元110可使用多種方式實 施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器或其他具運算能力的處理器),並且於載入及執行特定指令或軟體時實施如下所述的功能。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
儲存單元180可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元110進行溝通。第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體10可包含j+1個存取子介面170_0至170_j,存取子介面又可稱為通道(channel),每一個存 取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當快閃記憶體10包含4個通道(j=3)且每一個通道連接4個儲存單元(i=3)時,快閃記憶體10一共擁有16個儲存單元180_0_0至180_j_i。處理單元110可驅動存取子介面170_0至170_j中之一者,寫入資料至指定的儲存子單元。每個儲存子單元擁有獨立的晶片致能(CE,Chip Enable)控制訊號。換句話說,當欲對指定的儲存子單元進行資料寫入時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號320_0_0至320_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線310_0寫入資料至選擇出的儲存子單元的指定位置。
主裝置160可透過存取介面150提供邏輯區塊位址(LBA,Logical Block Address)給處理單元110,用以指示寫入或讀取特定區域的資料。然而,為最佳化資料寫入的效率,存取介面170將一段具有連續邏輯區塊位址的資料分散地擺放在儲存單元180中的不同實體區域。因此,需要於動態隨機存取記憶體120中儲存一個實體儲存對照表(storage mapping table,又稱為H2F Host-to-Flash表),用以指出每個邏輯區塊位址的資料實際儲存於儲存單元180中的哪個位置。第4圖係依據本發明實施例之實體儲存對照示意圖。實體儲存對照表400依照邏輯儲存位址的順序,儲存每一邏輯儲存位址的資料實際儲存於儲存 單元180中之哪個實體位置的資訊。邏輯儲存位址可以邏輯區塊位址(LBA,Logical Block Address)表示,每一個邏輯區塊位址對應到一個固定大小的實體儲存空間,例如256K、512K或1024K位元組(Bytes)。例如,實體儲存對照表400依序儲存由LBA0至LBA65535的實體位置資訊。固定數目的連續邏輯區塊的實體位置資訊410可以4個位元組表示,其中的2個位元組410a紀錄區塊編號(block number),而另2個位元組410b紀錄單元編號(unit number)。例如,此4個位元組可指示連續八個實體區塊的起始區塊編號以及起始單元編號,而這八個實體區塊又可統稱為一個主頁面(host page)。舉例來說,儲存對照表400所需要的空間從64M到1G位元組不等。由於NAND快閃裝置並非隨機存取裝置,為了提升寫入的效率,主裝置160需要提供至少一個邏輯區塊的連續性資料,例如512位元組的資料,使得儲存裝置180可以有效率的方式擺放到儲存單元180。當主裝置160寫入資料到不同的邏輯區塊時,例如寫入邏輯區塊位址LBA0、LBA1000、LBA4500、LBA10000,儲存於動態隨機存取記憶體120中的實體儲存對照表400中之相應實體位置資訊也要隨著更新。第5圖係依據本發明實施例之實體儲存對照表的示意圖。實體儲存對照表400可包含n個邏輯區塊的實體位置資訊,依序從邏輯區塊位址LBA0至邏輯區塊位址LBAn。
第6圖係依據本發明實施例的運算裝置的系統架構圖。此系統架構可實施於桌上型電腦、平板電腦、手機等,至少包含處理單元610。處理單元610可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處 理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行程式碼或軟體時,提供之後所描述的功能。處理單元610可包含運算邏輯單元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。運算邏輯單元負責執行布林運算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器負責位移運算及位元旋轉。系統架構另包含記憶體650用以儲存執行過程中需要的資料,例如,常數、變數、資料表(data tables)等。系統架構另包含通訊介面660,讓處理單元610可藉以跟其他電子裝置進行溝通。通訊介面660可以是無線電信通訊模組(wireless telecommunications module)、區域網路(local area network,LAN)通訊模組或無線區域網路通訊模組(WLAN)。無線電信通訊模組(wireless telecommunications module)可包含支援2G、3G、4G或以上技術世代的任意組合的調變解調器(modem)。輸入裝置630可包含鍵盤、滑鼠、觸控面板等。使用者可按壓鍵盤上的硬鍵來輸入字元,藉由操作滑鼠來控制鼠標,或者是在觸控面板製造手勢來控制執行中的應用程式。手勢可包含單擊、雙擊、單指拖曳、多指拖曳等,但不限定於此。顯示單元620可包含顯示面板(例如,薄膜液晶顯示面板、有機發光二極體面板或其他具顯示能力的面板),用以顯示輸入的字元、數字、符號、拖曳鼠標的移動軌跡、繪製的圖案或應用程式所提供的畫面,提供給使用者觀看。儲存裝置640可儲存各式各樣的電子檔案,例如,網頁、文件、音訊檔、視訊檔等。處理單元610可視為第1圖的主裝置160,而儲存裝置640可為固態硬碟,包含第1圖中的存取介面150、處理單元 110、動態隨機存取記憶體120、存取介面170及儲存單元180。
為解決傳統的缺點,本發明實施例於主裝置160提出一種技術,用以依據多個虛擬機器(VM,Virtual Machine)的服務質量(QoS,Quality of Service)排程不同虛擬機器的資料存取請求。虛擬機器可以為系統或程序虛擬機器(system or process VM),是電腦系統的一種軟體實現方式,用來模擬像一部實體機器一樣執行程式。系統虛擬機器提供支援完整作業系統執行的完整平台,而程序虛擬機器用來執行單一程式。第7圖係依據本發明實施例的系統方塊示意圖。虛擬機器730_1至730_m可於處理單元610載入並執行相關程式碼時實施。此外,當處理單元610載入並執行相關程式碼時執行管理者(hypervisor)710的功能。記憶體650可為每一個虛擬機器配置先進先出佇列(FIFO queue)的空間。第8圖係依據本發明實施例的虛擬機器及先進先出佇列的示意圖。虛擬機器及先進先出佇列之間為一對一對應。虛擬機器730_1對應至先進先出佇列800_1,虛擬機器730_2對應至先進先出佇列800_2,依此類推。管理者710可從虛擬機器730_1至730_m中之任一者接收資料存取請求,並將資料存取請求推入記憶體650中之先進先出佇列800_1至800_m中之相應一者。先進先出佇列800_1至800_m中之每一者可視為一個虛擬儲存裝置(virtual storage device)。資料存取請求可請求寫入資料至儲存裝置640、從儲存裝置640讀取一段邏輯區塊位址區間的資料、更新一段邏輯區塊位址區間的資料或刪除一段邏輯區塊位址區間的資料。第9圖係依據本發明實施例的資料存取請求的排程示意圖。管理者710可依 據關連於虛擬機器的服務質量的需求條件從先進先出佇列800_1至800_m中之一者取得資料存取請求,並且根據此資料存取請求驅動儲存裝置640,用以完成資料的新增、讀取、刪除或更新等。
本發明實施例提出的因應服務質量的固態硬碟存取可包含二個方法:推入佇列(enqueue)及取出佇列(dequeue)。第一個方法用以將來自於一個虛擬機器的資料存取請求推入多個佇列中之一者,而第二個方法用以依據虛擬機器的服務質量的需求條件決定從多個佇列中之一者取得資料存取請求並處理。第10圖係依據本發明實施例的推入佇列方法流程圖。此方法由處理單元610於載入並執行管理程序710的軟體指令或微碼時執行,並且起始於從多個虛擬機器730_1至730_m中之一者接收資料存取請求(步驟S1010)。其中,資料存取請求可請求寫入資料至儲存裝置640的任意邏輯區塊位址、寫入資料至儲存裝置640的的邏輯區塊位址或邏輯區塊位址區間、從儲存裝置640讀取邏輯區塊位址或一段邏輯區塊位址區間的資料、更新邏輯區塊位址或一段邏輯區塊位址區間的資料、或刪除邏輯區塊位址或一段邏輯區塊位址區間的資料。接著,判斷資料存取請求中是否包含邏輯區塊位址(步驟S1030)。於步驟S1030,舉例來說,如果資料存取請求為請求首次儲存一筆資料至儲存裝置640,資料存取請求不含邏輯區塊位址。如果資料存取請求為請求更新儲存裝置640中既定位置的資料,資料存取請求包含指定的邏輯區塊位址或邏輯區塊位址區間。當資料存取請求中包含邏輯區塊位址時(步驟S1030中”是”的路 徑),將此資料存取請求推入相應於此虛擬機器的先進先出佇列(步驟S1070)。參考第8圖,例如,當傳送此資料存取請求的虛擬機器為730_2時,將此資料存取請求推入先進先出佇列800_2。當資料存取請求中不包含邏輯區塊位址時(步驟S1030中”否”的路徑),為此資料存取請求指派相應於此虛擬機器的可用邏輯區塊位址或邏輯區塊位址區間,並且將指派的邏輯區塊位址或邏輯區塊位址區間加入資料存取請求(步驟S1050),以及將此資料存取請求推入相應於此虛擬機器的先進先出佇列,其中包含指派的邏輯區塊位址或邏輯區塊位址區間(步驟S1070)。於步驟S1050,舉例來說,虛擬機器730_1至730_m中之每一者可關連於一段邏輯位址區間。表1描述虛擬機器730_1至730_m中之每一者所關連的邏輯位址區間的一個範例:
Figure TWI615775BD00001
虛擬機器730_1的預設邏輯區塊位址區間LBA0000~LBA0999,虛擬機器730_2的預設邏輯區塊位址區間LBA1000~LBA1999,依此類推。 表2描述虛擬機器730_1至730_m中之每一者所關連的邏輯位址區間的另一範例:
Figure TWI615775BD00002
Figure TWI615775BD00003
同一段預設的邏輯區塊位址區間可被虛擬機器730_1至730_m中之兩者分享。雖然表1及表2描述了幾種邏輯區塊位址的指派方式,但熟習此技藝人士可為不同虛擬機器將預設的邏輯區塊位址區間進行其他方式的組態,本發明不限於此。於此須注意的是,雖然以上實施例描述由管理程序710來指派可用的邏輯區塊位址,但是熟習此技藝人士也可於每一虛擬機器中記錄預設邏輯區塊位址區間,使得每一個虛擬機器發出的資料存取請求都包含邏輯區塊位址,從而省略步驟S1030及S1050。
第11圖係依據本發明實施例的取出佇列方法流程圖。此方法由處理單元610於載入並執行管理程序710的軟體指令或微碼時反覆執行一個迴圈。此方法也可視為是一種因應虛擬機器的服務質量的資料存取排程。於每一回合中,取得虛擬機器730_1至730_m的執行歷史(步驟S1110),依據虛擬機器730_1至730_m的執行歷史及服務質量從先進先出佇列800_1至800_m中選擇一者(步驟S1130),從選擇的先進先出佇列取出最早進入的資料存取請求(步驟S1150),依據取出的資料存取請求驅動儲存裝置640以完成資料存取作業,例如資料讀取、刪除、儲存等(步驟S1170),以及更新相應於選擇的先進先出佇列的虛擬機器的執行歷史,使得下一回合可依據最新的執行歷史進行(步驟S1190)。於步驟S1130,服務質量描述透過虛擬機器730_1 至730_m向儲存裝置640存取資料的需求條件,例如通過量(throughput)、等待時間等。虛擬機器730_1至730_m的服務質量及執行歷史可使用特定資料結構實施,例如資料陣列、資料庫資料表、檔案紀錄等,並儲存於記憶體650。
舉一個例子,假設虛擬機器的服務質量的需求條件為虛擬機器730_1至730_4的通過量必須越平均越佳,而虛擬機器的執行歷史指出執行一段時間區間後相應於先進先出佇列800_1至800_4的通過量分別為12、11、12及12MB:處理單元610選擇先進先出佇列800_2(步驟S1130),從先進先出佇列800_2取出最早的進入的資料存取請求(步驟S1150),以及依據取出的資料存取請求驅動儲存裝置640以完成指定作業(步驟S1170)。舉另一個例子,假設虛擬機器的服務質量的需求條件為虛擬機器730_1至730_4的每秒通過量(throughput per second)不低於5MB,而虛擬機器的執行歷史指出執行一段時間區間後相應於先進先出佇列800_1至800_4的每秒通過量分別為4.9、6、5.5及5.2MB:處理單元610選擇先進先出佇列800_1(步驟S1130),從先進先出佇列800_1取出最早的進入的資料存取請求(步驟S1150),以及依據取出的資料存取請求驅動儲存裝置640以完成指定作業(步驟S1170)。
雖然第1至3及6圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第10及11圖的處理步驟採用特定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順 序,所以,本發明並不侷限於僅使用如上所述的順序。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S1110~S1190‧‧‧方法步驟

Claims (14)

  1. 一種因應服務質量的固態硬碟存取方法,由一處理單元執行,包含:取得多個虛擬機器的多個執行歷史;依據上述執行歷史及一服務質量從多個先進先出佇列選擇一者;從上述選擇的先進先出佇列取出最早進入的一第一資料存取請求;以及依據上述取出的第一資料存取請求驅動一儲存裝置以完成一資料存取作業。
  2. 如申請專利範圍第1項所述的因應服務質量的固態硬碟存取方法,其中,上述服務質量描述透過上述虛擬機器向上述儲存裝置存取資料的需求條件。
  3. 如申請專利範圍第1項所述的因應服務質量的固態硬碟存取方法,其中,上述虛擬機器及上述先進先出佇列間為一對一對應。
  4. 如申請專利範圍第1項所述的因應服務質量的固態硬碟存取方法,更包含:於完成上述資料存取作業後,更新相應於上述選擇的先進先出佇列的上述虛擬機器的上述執行歷史。
  5. 如申請專利範圍第1項所述的因應服務質量的固態硬碟存取方法,更包含:從上述虛擬機器中之一者取得一第二資料存取請求;以及 將上述第二資料存取請求推入相應於上述來源虛擬機器的上述先進先出佇列。
  6. 如申請專利範圍第5項所述的因應服務質量的固態硬碟存取方法,其中,上述第二資料存取請求請求寫入資料至上述儲存裝置的任意邏輯區塊位址、寫入資料至上述儲存裝置的的一邏輯區塊位址或一邏輯區塊位址區間、從上述儲存裝置讀取一邏輯區塊位址或一邏輯區塊位址區間的資料、更新一邏輯區塊位址或一邏輯區塊位址區間的資料、或刪除一邏輯區塊位址或一邏輯區塊位址區間的資料。
  7. 如申請專利範圍第5項所述的因應服務質量的固態硬碟存取方法,更包含:判斷上述第二資料存取請求中是否包含邏輯區塊位址;以及當上述第二資料存取請求中不包含邏輯區塊位址時,為上述第二資料存取指派相應於上述來源虛擬機器的可用邏輯區塊位址或邏輯區塊位址區間,並且將上述指派的邏輯區塊位址或邏輯區塊位址區間加入上述第二資料存取請求。
  8. 一種因應服務質量的固態硬碟存取裝置,包含:一記憶體,配置空間給多個先進先出佇列;以及一處理單元,耦接至上述記憶體,取得多個虛擬機器的多個執行歷史;依據上述執行歷史及一服務質量從上述先進先出佇列選擇一者;從上述選擇的先進先出佇列取出最早進入的一第一資料存取請求;以及依據上述取出的第一資料存取請求驅動一儲存裝置以完成一資料存取作業。
  9. 如申請專利範圍第8項所述的因應服務質量的固態硬碟存取裝置,其中,上述服務質量描述透過上述虛擬機器向上述儲存裝置存取資料的需求條件。
  10. 如申請專利範圍第8項所述的因應服務質量的固態硬碟存取裝置,其中,上述虛擬機器及上述先進先出佇列間為一對一對應。
  11. 如申請專利範圍第8項所述的因應服務質量的固態硬碟存取裝置,其中,上述處理單元於完成上述資料存取作業後,更新相應於上述選擇的先進先出佇列的上述虛擬機器的上述執行歷史。
  12. 如申請專利範圍第8項所述的因應服務質量的固態硬碟存取裝置,其中,上述處理單元從上述虛擬機器中之一者取得一第二資料存取請求;以及將上述第二資料存取請求推入相應於上述來源虛擬機器的上述先進先出佇列。
  13. 如申請專利範圍第12項所述的因應服務質量的固態硬碟存取裝置,其中,上述第二資料存取請求請求寫入資料至上述儲存裝置的任意邏輯區塊位址、寫入資料至上述儲存裝置的的一邏輯區塊位址或一邏輯區塊位址區間、從上述儲存裝置讀取一邏輯區塊位址或一邏輯區塊位址區間的資料、更新一邏輯區塊位址或一邏輯區塊位址區間的資料、或刪除一邏輯區塊位址或一邏輯區塊位址區間的資料。
  14. 如申請專利範圍第8項所述的因應服務質量的固態硬碟存取裝置,其中,上述處理單元判斷上述第二資料存取請求中是否包含邏輯區塊位址;以及當上述第二資料存取請求 中不包含邏輯區塊位址時,為上述第二資料存取指派相應於上述來源虛擬機器的可用邏輯區塊位址或邏輯區塊位址區間,並且將上述指派的邏輯區塊位址或邏輯區塊位址區間加入上述第二資料存取請求。
TW105137394A 2016-10-08 2016-11-16 因應服務質量的固態硬碟存取方法以及使用該方法的裝置 TWI615775B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610879561.2A CN107918613B (zh) 2016-10-08 2016-10-08 因应服务质量的固态硬盘访问方法以及使用该方法的装置
??201610879561.2 2016-10-08

Publications (2)

Publication Number Publication Date
TWI615775B true TWI615775B (zh) 2018-02-21
TW201814517A TW201814517A (zh) 2018-04-16

Family

ID=61829402

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105137394A TWI615775B (zh) 2016-10-08 2016-11-16 因應服務質量的固態硬碟存取方法以及使用該方法的裝置

Country Status (3)

Country Link
US (1) US10338830B2 (zh)
CN (1) CN107918613B (zh)
TW (1) TWI615775B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102498319B1 (ko) * 2018-06-04 2023-02-08 삼성전자주식회사 반도체 장치
JP7074705B2 (ja) * 2019-03-20 2022-05-24 キオクシア株式会社 メモリ装置及びメモリ装置の制御方法
CN111352711B (zh) * 2020-02-18 2023-05-12 深圳鲲云信息科技有限公司 多计算引擎调度方法、装置、设备及存储介质
US11886740B2 (en) * 2021-12-01 2024-01-30 Micron Technology, Inc. Command prioritization techniques for reducing latency in a memory system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI220198B (en) * 2002-10-14 2004-08-11 Mitac Int Corp The quality of service management for storage system and its method
TW201126330A (en) * 2010-01-25 2011-08-01 Lsi Corp Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
US20110292792A1 (en) * 2010-05-31 2011-12-01 Microsoft Corporation Applying Policies to Schedule Network Bandwidth Among Virtual Machines
US20130262649A1 (en) * 2012-03-29 2013-10-03 Fujitsu Limited Access control method, server device, and storage device
US20130326064A1 (en) * 2012-05-31 2013-12-05 Vmware, Inc. Distributed demand-based storage quality of service management using resource pooling
TW201519607A (zh) * 2013-09-25 2015-05-16 Cavium Inc 具有虛擬化的計算資源和交換資源的半導體

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0308121D0 (en) * 2003-04-09 2003-05-14 Ibm Method and apparatus for data logging
JP4721111B2 (ja) * 2005-11-24 2011-07-13 富士ゼロックス株式会社 画像処理装置、画像処理システム、画像処理プログラムおよび画像処理方法
CN101202765A (zh) * 2007-12-19 2008-06-18 苏州大学 一种基于历史反馈的服务网格调度方法
CN101252451B (zh) * 2008-03-22 2011-04-20 桂林电子科技大学 保证服务质量的Web服务器系统请求区分服务方法与中间件
CN102045880B (zh) * 2009-10-09 2015-03-25 大唐移动通信设备有限公司 基于cpri协议的数据传输方法、系统和设备
US8959249B1 (en) * 2010-09-15 2015-02-17 Emc Corporation Cooperative cloud I/O scheduler
CN103186585A (zh) * 2011-12-29 2013-07-03 北京亿阳信通科技有限公司 一种队列处理方法及装置
US9720717B2 (en) * 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices
CN103488691A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 任务调度装置和任务调度方法
CN104426798B (zh) * 2013-09-02 2018-02-27 联想(北京)有限公司 一种数据处理方法和电子设备
CN104793987B (zh) * 2014-01-17 2018-08-03 中国移动通信集团公司 一种数据处理方法及装置
EP3281108A1 (en) * 2015-04-08 2018-02-14 Tintri Inc. Native storage quality of service for virtual machines
KR102371916B1 (ko) * 2015-07-22 2022-03-07 삼성전자주식회사 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
CN105227489B (zh) * 2015-08-26 2019-05-31 联想(北京)有限公司 一种带宽管理方法及电子设备
CN105205009B (zh) * 2015-09-30 2018-05-11 华为技术有限公司 一种基于大容量固态存储的地址映射方法及装置
US10592107B2 (en) * 2016-03-30 2020-03-17 EMC IP Holding Company LLC Virtual machine storage management queue
US10432722B2 (en) * 2016-05-06 2019-10-01 Microsoft Technology Licensing, Llc Cloud storage platform providing performance-based service level agreements

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI220198B (en) * 2002-10-14 2004-08-11 Mitac Int Corp The quality of service management for storage system and its method
TW201126330A (en) * 2010-01-25 2011-08-01 Lsi Corp Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
US20110292792A1 (en) * 2010-05-31 2011-12-01 Microsoft Corporation Applying Policies to Schedule Network Bandwidth Among Virtual Machines
US20130262649A1 (en) * 2012-03-29 2013-10-03 Fujitsu Limited Access control method, server device, and storage device
US20130326064A1 (en) * 2012-05-31 2013-12-05 Vmware, Inc. Distributed demand-based storage quality of service management using resource pooling
TW201519607A (zh) * 2013-09-25 2015-05-16 Cavium Inc 具有虛擬化的計算資源和交換資源的半導體

Also Published As

Publication number Publication date
TW201814517A (zh) 2018-04-16
CN107918613B (zh) 2022-01-21
US20180101319A1 (en) 2018-04-12
US10338830B2 (en) 2019-07-02
CN107918613A (zh) 2018-04-17

Similar Documents

Publication Publication Date Title
CN107430493B (zh) 顺序写入流管理
TWI615775B (zh) 因應服務質量的固態硬碟存取方法以及使用該方法的裝置
CN106354745B (zh) 用于提供计算机装置的接口的方法和计算机装置
US9606748B2 (en) Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution
CN107305534B (zh) 同时进行内核模式访问和用户模式访问的方法
CN108959108B (zh) 固态硬盘访问方法以及使用该方法的装置
TWI645331B (zh) 固態硬碟存取方法以及使用該方法的裝置
US20120262489A1 (en) Relative and Absolute Screen Rotation Draft Agent
KR102594657B1 (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
TW202018514A (zh) 快閃記憶體的命名空間操作裝置及電腦程式產品
US20190035445A1 (en) Method and Apparatus for Providing Low Latency Solid State Memory Access
TW202101227A (zh) 閃存實體資源集合管理裝置及方法以及電腦程式產品
WO2020154530A1 (en) Low latency swap device, system and method
WO2021126222A1 (en) Resource management unit for capturing operating system configuration states and managing malware
TW202026891A (zh) 閃存的資料寫入方法及電腦程式產品
US20140281322A1 (en) Temporal Hierarchical Tiered Data Storage
US10671307B2 (en) Storage system and operating method thereof
JP2018508869A (ja) 仮想化環境におけるストレージリソース管理
TWI601058B (zh) 減少在固態驅動機中混植輸入與輸出操作的技術
JP2014071906A (ja) コンピュータシステム及びそのデータ管理方法
WO2021126217A1 (en) Resource management unit for capturing operating system configuration states and memory management
KR20140042428A (ko) 컴퓨팅 시스템 및 그 데이터 관리 방법
KR20190082652A (ko) 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치
JP6238931B2 (ja) 情報処理装置、プログラム、情報処理システム及びデータ管理方法
TW202416108A (zh) 排程和執行主機資料更新命令的方法及電腦程式產品及裝置