CN107918613B - 因应服务质量的固态硬盘访问方法以及使用该方法的装置 - Google Patents
因应服务质量的固态硬盘访问方法以及使用该方法的装置 Download PDFInfo
- Publication number
- CN107918613B CN107918613B CN201610879561.2A CN201610879561A CN107918613B CN 107918613 B CN107918613 B CN 107918613B CN 201610879561 A CN201610879561 A CN 201610879561A CN 107918613 B CN107918613 B CN 107918613B
- Authority
- CN
- China
- Prior art keywords
- block address
- logical block
- data access
- data
- access request
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/0674—Disk 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/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
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory 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)运用于应用程序堆栈(applicationstack),是一种于储存层及应用层间的去耦合(decoupling)技术。数据库层的虚拟化使得数据库的操作从物理端,变成逻辑的或虚拟的操作。虚拟化将计算及储存资源聚合在一起,并且依据需求进行配置。传统方法可为不同应用程序分割物理储存空间,用以避免数据泄漏或被非法的使用者更改。然而,这难以避免一个应用程序使用超过预定份额的输出/入效能,使得其他应用程序无法被服务。因此,本发明提出一种因应服务质量的固态硬盘划分方法以及使用该方法的装置,用以解决如上所述的问题。
发明内容
本发明的实施例提出一种因应服务质量的固态硬盘访问方法,由处理单元执行,包含以下步骤。取得多个虚拟机的多个执行历史,以及依据执行历史及一服务质量从多个先进先出队列选择一者。从选择的先进先出队列取出最早进入的数据存取请求,并且依据取出的数据存取请求驱动储存装置以完成数据存取作业。
本发明的实施例提出一种因应服务质量的固态硬盘存取装置,至少包含存储器及处理单元。存储器配置空间给多个先进先出队列。处理单元耦接至存储器,取得多个虚拟机的多个执行历史;依据执行历史及服务质量从先进先出队列选择一者;从选择的先进先出队列取出最早进入的第一数据存取请求;以及依据取出的第一数据存取请求驱动储存装置以完成数据存取作业。
附图说明
图1系依据本发明实施例的闪存的系统架构示意图。
图2系依据本发明实施例的存取接口与储存单元的方块图。
图3系依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。
图4系依据本发明实施例的物理储存对照示意图。
图5系依据本发明实施例的物理储存对照表的示意图。
图6系依据本发明实施例的运算装置的系统架构图。
图7系依据本发明实施例的系统方块示意图。
图8系依据本发明实施例的虚拟机及先进先出队列的示意图。
图9系依据本发明实施例的数据存取请求的排程示意图。
图10系依据本发明实施例的推入队列方法流程图。
图11系依据本发明实施例的取出队列方法流程图。
符号说明
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系依据本发明实施例的闪存的系统架构示意图。闪存的系统架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110透过存取接口170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。处理单元110可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单处理器、具平行处理能力的多处理器或其他具运算能力的处理器),并且于加载及执行特定指令或软件时实施如下所述的功能。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(dataline)、时钟信号(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 advancedtechnology attachment,SATA)、快速周边元件互联(peripheral componentinterconnect 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 mappingtable,又称为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)以及位移器(bitshifter)。运算逻辑单元负责执行布尔运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器负责位移运算及位旋转。系统架构另包含存储器650用以储存执行过程中需要的数据,例如,常数、变量、数据表(data tables)等。系统架构另包含通信接口660,让处理单元610可藉以跟其他电子装置进行沟通。通信接口660可以是无线电信通信模块(wirelesstelecommunications 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 processVM),是计算机系统的一种软件实现方式,用来仿真像一部物理机器一样执行程序。系统虚拟机提供支持完整操作系统执行的完整平台,而程序虚拟机用来执行单一程序。图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中的每一者所关连的逻辑地址区间的一个范例:
表1
虚拟机 | 预设逻辑区块地址区间 |
730_1 | LBA0000~LBA0999 |
730_2 | LBA1000~LBA1999 |
730_3 | LBA2000~LBA2999 |
730_4 | LBA3000~LBA3999 |
虚拟机730_1的预设逻辑区块地址区间LBA0000~LBA0999,虚拟机730_2的预设逻辑区块地址区间LBA1000~LBA1999,依此类推。
表2描述虚拟机730_1至730_m中的每一者所关连的逻辑地址区间的另一范例:
虚拟机 | 预设逻辑区块地址区间 |
730_1 | LBA0000~LBA0999;LBA1000~LBA1999 |
730_2 | LBA1000~LBA1999;LBA2000~LBA2999 |
730_3 | LBA2000~LBA2999;LBA3000~LBA3999 |
730_4 | LBA3000~LBA3999;LBA0000~LBA0999 |
同一段预设的逻辑区块地址区间可被虚拟机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 persecond)不低于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的处理步骤采用特定的顺序来执行,但是在不违反发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了本领域技术人员显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (12)
1.一种因应服务质量的固态硬盘访问方法,由一处理单元执行,包含:
取得多个虚拟机的多个执行历史;
依据上述执行历史及一服务质量从多个先进先出队列选择一者,上述服务质量描述透过上述虚拟机向储存装置存取数据的需求条件,上述执行历史指出上述多个先进先出队列执行一段时间区间后相应的通过量或每秒通过量,所述选择具体包括:确定所述多个虚拟机的所述服务质量的需求条件,选择所述多个先进先出队列中通过量或每秒通过量小于所述需求条件的队列为目标队列;
从上述选择的先进先出队列取出最早进入的一第一数据存取请求;以及
依据上述取出的第一数据存取请求驱动上述储存装置以完成一数据存取作业。
2.如权利要求1所述的因应服务质量的固态硬盘访问方法,其特征在于,上述虚拟机及上述先进先出队列间为一对一对应。
3.如权利要求1所述的因应服务质量的固态硬盘访问方法,其特征在于,更包含:
于完成上述数据存取作业后,更新相应于上述选择的先进先出队列的上述虚拟机的上述执行历史。
4.如权利要求1所述的因应服务质量的固态硬盘访问方法,其特征在于,更包含:
从上述虚拟机中的一者取得一第二数据存取请求;以及
将上述第二数据存取请求推入相应于来源虚拟机的上述先进先出队列。
5.如权利要求4所述的因应服务质量的固态硬盘访问方法,其特征在于,上述第二数据存取请求请求写入数据至上述储存装置的任意逻辑区块地址、写入数据至上述储存装置的的一逻辑区块地址或一逻辑区块地址区间、从上述储存装置读取一逻辑区块地址或一逻辑区块地址区间的数据、更新一逻辑区块地址或一逻辑区块地址区间的数据、或删除一逻辑区块地址或一逻辑区块地址区间的数据。
6.如权利要求4所述的因应服务质量的固态硬盘访问方法,其特征在于,更包含:
判断上述第二数据存取请求中是否包含逻辑区块地址;以及
当上述第二数据存取请求中不包含逻辑区块地址时,为上述第二数据存取指派相应于上述来源虚拟机的可用逻辑区块地址或逻辑区块地址区间,并且将上述指派的逻辑区块地址或逻辑区块地址区间加入上述第二数据存取请求。
7.一种因应服务质量的固态硬盘存取装置,包含:
一存储器,配置空间给多个先进先出队列;以及
一处理单元,耦接至上述存储器,取得多个虚拟机的多个执行历史,其中上述执行历史指出上述多个先进先出队列执行一段时间区间后相应的通过量或每秒通过量;依据上述执行历史及一服务质量从上述先进先出队列选择一者,上述服务质量描述透过上述虚拟机向储存装置存取数据的需求条件,上述选择具体包括:确定所述多个虚拟机的所述服务质量的需求条件,选择所述多个先进先出队列中通过量或每秒通过量小于所述需求条件的队列为目标队列;从上述选择的先进先出队列取出最早进入的一第一数据存取请求;以及依据上述取出的第一数据存取请求驱动上述储存装置以完成一数据存取作业。
8.如权利要求7所述的因应服务质量的固态硬盘存取装置,其特征在于,上述虚拟机及上述先进先出队列间为一对一对应。
9.如权利要求7所述的因应服务质量的固态硬盘存取装置,其特征在于,上述处理单元于完成上述数据存取作业后,更新相应于上述选择的先进先出队列的上述虚拟机的上述执行历史。
10.如权利要求7所述的因应服务质量的固态硬盘存取装置,其特征在于,上述处理单元从上述虚拟机中的一者取得一第二数据存取请求;以及将上述第二数据存取请求推入相应于来源虚拟机的上述先进先出队列。
11.如权利要求10所述的因应服务质量的固态硬盘存取装置,其特征在于,上述第二数据存取请求请求写入数据至上述储存装置的任意逻辑区块地址、写入数据至上述储存装置的的一逻辑区块地址或一逻辑区块地址区间、从上述储存装置读取一逻辑区块地址或一逻辑区块地址区间的数据、更新一逻辑区块地址或一逻辑区块地址区间的数据、或删除一逻辑区块地址或一逻辑区块地址区间的数据。
12.如权利要求10 所述的因应服务质量的固态硬盘存取装置,其特征在于,上述处理单元判断上述第二数据存取请求中是否包含逻辑区块地址;以及当上述第二数据存取请求中不包含逻辑区块地址时,为上述第二数据存取指派相应于上述来源虚拟机的可用逻辑区块地址或逻辑区块地址区间,并且将上述指派的逻辑区块地址或逻辑区块地址区间加入上述第二数据存取请求。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610879561.2A CN107918613B (zh) | 2016-10-08 | 2016-10-08 | 因应服务质量的固态硬盘访问方法以及使用该方法的装置 |
TW105137394A TWI615775B (zh) | 2016-10-08 | 2016-11-16 | 因應服務質量的固態硬碟存取方法以及使用該方法的裝置 |
US15/663,946 US10338830B2 (en) | 2016-10-08 | 2017-07-31 | Methods for accessing a solid state disk for QoS (quality of service) and apparatuses using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610879561.2A CN107918613B (zh) | 2016-10-08 | 2016-10-08 | 因应服务质量的固态硬盘访问方法以及使用该方法的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107918613A CN107918613A (zh) | 2018-04-17 |
CN107918613B true CN107918613B (zh) | 2022-01-21 |
Family
ID=61829402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610879561.2A Active CN107918613B (zh) | 2016-10-08 | 2016-10-08 | 因应服务质量的固态硬盘访问方法以及使用该方法的装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10338830B2 (zh) |
CN (1) | CN107918613B (zh) |
TW (1) | TWI615775B (zh) |
Families Citing this family (5)
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 |
CN118349483B (zh) * | 2024-05-15 | 2025-01-28 | 摩尔线程智能科技(北京)股份有限公司 | 内存管理装置、方法、芯片、电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1765104A (zh) * | 2003-04-09 | 2006-04-26 | 国际商业机器公司 | 用于数据记录的方法和设备 |
CN1972362A (zh) * | 2005-11-24 | 2007-05-30 | 富士施乐株式会社 | 图像处理装置与系统,计算机可读介质和图像处理方法 |
CN101202765A (zh) * | 2007-12-19 | 2008-06-18 | 苏州大学 | 一种基于历史反馈的服务网格调度方法 |
CN101252451A (zh) * | 2008-03-22 | 2008-08-27 | 桂林电子科技大学 | 保证服务质量的Web服务器系统请求区分服务方法与中间件 |
CN102045880A (zh) * | 2009-10-09 | 2011-05-04 | 大唐移动通信设备有限公司 | 基于cpri协议的数据传输方法、系统和设备 |
CN103186585A (zh) * | 2011-12-29 | 2013-07-03 | 北京亿阳信通科技有限公司 | 一种队列处理方法及装置 |
CN103488691A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 任务调度装置和任务调度方法 |
CN104426798A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 一种数据处理方法和电子设备 |
CN104793987A (zh) * | 2014-01-17 | 2015-07-22 | 中国移动通信集团公司 | 一种数据处理方法及装置 |
CN105205009A (zh) * | 2015-09-30 | 2015-12-30 | 华为技术有限公司 | 一种基于大容量固态存储的地址映射方法及装置 |
CN105227489A (zh) * | 2015-08-26 | 2016-01-06 | 联想(北京)有限公司 | 一种带宽管理方法及电子设备 |
Family Cites Families (12)
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 |
US8285959B2 (en) * | 2010-01-25 | 2012-10-09 | Netapp, Inc. | Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking |
US8477610B2 (en) * | 2010-05-31 | 2013-07-02 | Microsoft Corporation | Applying policies to schedule network bandwidth among virtual machines |
US8959249B1 (en) * | 2010-09-15 | 2015-02-17 | Emc Corporation | Cooperative cloud I/O scheduler |
JP5891900B2 (ja) * | 2012-03-29 | 2016-03-23 | 富士通株式会社 | アクセス制御方法、サーバ装置およびストレージ装置 |
US9244742B2 (en) * | 2012-05-31 | 2016-01-26 | Vmware, Inc. | Distributed demand-based storage quality of service management using resource pooling |
US9720717B2 (en) * | 2013-03-14 | 2017-08-01 | Sandisk Technologies Llc | Virtualization support for storage devices |
US20150085868A1 (en) * | 2013-09-25 | 2015-03-26 | Cavium, Inc. | Semiconductor with Virtualized Computation and Switch Resources |
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 | 삼성전자주식회사 | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 |
WO2017171575A1 (en) * | 2016-03-30 | 2017-10-05 | Emc Corporation | 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 |
-
2016
- 2016-10-08 CN CN201610879561.2A patent/CN107918613B/zh active Active
- 2016-11-16 TW TW105137394A patent/TWI615775B/zh active
-
2017
- 2017-07-31 US US15/663,946 patent/US10338830B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1765104A (zh) * | 2003-04-09 | 2006-04-26 | 国际商业机器公司 | 用于数据记录的方法和设备 |
CN1972362A (zh) * | 2005-11-24 | 2007-05-30 | 富士施乐株式会社 | 图像处理装置与系统,计算机可读介质和图像处理方法 |
CN101202765A (zh) * | 2007-12-19 | 2008-06-18 | 苏州大学 | 一种基于历史反馈的服务网格调度方法 |
CN101252451A (zh) * | 2008-03-22 | 2008-08-27 | 桂林电子科技大学 | 保证服务质量的Web服务器系统请求区分服务方法与中间件 |
CN102045880A (zh) * | 2009-10-09 | 2011-05-04 | 大唐移动通信设备有限公司 | 基于cpri协议的数据传输方法、系统和设备 |
CN103186585A (zh) * | 2011-12-29 | 2013-07-03 | 北京亿阳信通科技有限公司 | 一种队列处理方法及装置 |
CN103488691A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 任务调度装置和任务调度方法 |
CN104426798A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 一种数据处理方法和电子设备 |
CN104793987A (zh) * | 2014-01-17 | 2015-07-22 | 中国移动通信集团公司 | 一种数据处理方法及装置 |
CN105227489A (zh) * | 2015-08-26 | 2016-01-06 | 联想(北京)有限公司 | 一种带宽管理方法及电子设备 |
CN105205009A (zh) * | 2015-09-30 | 2015-12-30 | 华为技术有限公司 | 一种基于大容量固态存储的地址映射方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TW201814517A (zh) | 2018-04-16 |
US10338830B2 (en) | 2019-07-02 |
US20180101319A1 (en) | 2018-04-12 |
CN107918613A (zh) | 2018-04-17 |
TWI615775B (zh) | 2018-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918613B (zh) | 因应服务质量的固态硬盘访问方法以及使用该方法的装置 | |
US12189538B2 (en) | Method and apparatus for performing operations to namespaces of a flash memory device | |
KR102756645B1 (ko) | 순차 기입 스트림 관리 | |
CN108959108B (zh) | 固态硬盘访问方法以及使用该方法的装置 | |
CN107305534B (zh) | 同时进行内核模式访问和用户模式访问的方法 | |
US11675698B2 (en) | Apparatus and method and computer program product for handling flash physical-resource sets | |
CN108932106B (zh) | 固态硬盘访问方法以及使用该方法的装置 | |
KR102594657B1 (ko) | 비순차적 리소스 할당을 구현하는 방법 및 장치 | |
US11941424B2 (en) | Apparatus for virtualized registers and method and computer program product for accessing to the same | |
US20200241794A1 (en) | Low latency swap device, system and method | |
CN108780387B (zh) | 虚拟化环境中的存储资源管理 | |
CN106537321B (zh) | 存取文件的方法、装置和存储系统 | |
US11960723B2 (en) | Method and system for managing memory associated with a peripheral component interconnect express (PCIE) solid-state drive (SSD) | |
KR20240166472A (ko) | 호스트, 정보 처리 방법, 전자 시스템, 및 판독 가능한 메모리 매체 | |
KR102460345B1 (ko) | 고체 상태 드라이브들에서 입력 및 출력 동작들의 혼재의 감소 | |
CN114924995A (zh) | 存储空间碎片化整理方法、装置和电子设备 | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN119248192A (zh) | 请求处理方法、相关装置及存储介质 | |
TW202422344A (zh) | 執行主機命令的方法及電腦程式產品及裝置 | |
CN119440696A (zh) | 多桌面操作方法、装置、计算机设备和存储介质 | |
Wells et al. | EFFICIENT QUEUE MANAGEMENT IN A PACKET BUFFER BETWEEN PROCESSES | |
CN117707425A (zh) | 适应cpu多核的io流水线智能分组方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |