具应用程序信息感知的数据处理方法以及系统与流程

文档序号:11949742阅读:154来源:国知局
具应用程序信息感知的数据处理方法以及系统与流程

本发明是有关于一种数据处理方法以及相关的系统,且特别是有关于一种具应用程序信息感知的数据处理方法以及相关的系统。



背景技术:

现代的电子装置通常会同时执行多个应用程序。当运行于操作系统,这些应用程序可发送输入/输出(Input/Output,I/O)要求以存取储存装置。

然而,在传统的系统中,I/O排程器(scheduler)通常使用自身的优先次序(priority)排程方案来决定I/O要求的服务顺序。在对此些要求进行排程时,I/O排程器并不会感知应用层信息。

举例来说,当两个应用程序同时要存取储存装置,来自这两个应用程序的I/O要求可能会以错开的顺序抵达I/O排程器,而这些I/O要求将会按照其抵达的顺序而被服务。在此情况下,这两个工作都会被减缓,进而使整体的系统产量降低。

因此,如何提供一种具应用程序信息感知的数据处理方法以及相关的系统,使得I/O排程器可基于应用程序信息来排程要求,乃目前业界所致力的课题之一。



技术实现要素:

本发明是有关于一种具应用程序信息感知的数据处理方法以及相关的系统。

依据本发明的一实施例,是提供一种数据处理系统。数据处理系统包括储存装置、接口模块以及排程器。接口模块由耦接至储存装置的处理器所实现,其经由第一数据路径发送非优先次序化要求,并经由第二数据路径传递应用程序的应用层信息。排程器耦接至第一及第二数据路径,其分别依据从该第一及第二数据路径所接收到的非优先次序化要求以及应用 层信息致能对储存装置的存取。

依据本发明的另一实施例,是提供一种数据处理系统。数据处理系统包括处理器、第一存储器以及第二存储器。该处理器透过第一数据路径发送非优先次序化要求,并透过第二数据路径传递应用程序的应用层信息。第一存储器耦接至该处理器,其储存由该处理器所发送的应用层信息。第二存储器耦接至该处理器,其中该处理器依据储存于第一存储器中的应用层信息,对该非优先次序化要求进行排程。

依据本发明的又一实施例,提供一种由处理器实现的数据处理方法,其包括以下步骤:经由第一数据路径发送非优先次序化要求;经由第二数据路径传递应用程序的应用层信息;依据接收自第一数据路径的非优先次序化要求以及接收自第二数据路径的应用层信息,致能对储存装置的存取。

为了对本发明的上述及其它方面有更佳的了解,下文特举较佳实施例,并配合所附图式,作详细说明如下:

附图说明

图1是依据本发明的一实施例的数据处理系统的例示I/O要求流。

图2A绘示依据本发明的一实施例的数据处理系统的例示I/O要求流。

图2B绘示依据本发明的另一实施例的虚拟机器的例示I/O要求流。

图3绘示依据本发明的一实施例的数据处理系统的例示I/O要求流。

图4绘示依据本发明的一实施例的例示要求批次程序。

图5绘示依据本发明的一实施例的要求批次程序的流程图。

图6绘示依据本发明的一实施例的内排程程序的示意图。

图7绘示依据本发明的一实施例的跨排程程序的示意图。

图8绘示依据本发明的一实施例的排程程序的流程图。

【符号说明】

100、200、300:数据处理系统

102:接口模块

104:排程器

106:储存装置

108:虚拟文件系统

110:文件系统

112:装置驱动器

114:分享存储器

116:虚拟档案

118:特定驱动器

202、202’、302:虚拟机器

204:超管理器

500、800:流程图

502、504、506、508、510、512、514、516、802、804、806、808、810、812、814、816、818、820、822、824:步骤

V21:接口模块

V22:访客虚拟文件系统

V23:访客文件系统

V24:访客排程器

V25:访客装置驱动器

V26:虚拟化储存装置

V27:服务驱动器

V31:接口模块

V32:应用程序框架

V33:资源管理器

V34:链接库与执行期模块

APP:应用程序

PA1、PA1’、PA1”:第一数据路径

PA2、PA2’、PA2”:第二数据路径

PU:处理器

Req1~Req7:要求

PID:程序辨识码

AP-ID:应用程序辨识码

VM-ID:虚拟机器辨识码

VM-Batch1、VM-Batch2:虚拟机器批次单元

AP-Batch1~AP-Batch3:应用程序批次单元

P-Batch1~P-Batch4:程序批次单元

TB1、TB2:映射表

具体实施方式

以下是提出实施例进行详细说明,实施例仅用以作为范例说明,并不会限缩本发明欲保护的范围。此外,实施例中的图式是省略不必要的元件,以清楚显示本发明的技术特点。

图1是依据本发明的一实施例的数据处理系统100的例示I/O要求流。数据处理系统100的I/O基本架构主要包括接口模块102、排程器104以及储存装置106。

接口模块102可以应用程序/程序模块的方式来实现,或实现于叠层在系统100中应用层下方的一层。排程器104可以软件、固件(firmware)或硬件(例如逻辑电路)的方式来实现。在一实施例中,排程器104亦可由处理器PU来实现。需注意图1中排程器104是实现于接口模块102以及装置驱动器112之间,但本发明并不限于此。在一实施例中,排程器104亦可实现于装置驱动器112以及储存装置106之间。储存装置106可透过大多的非易失性存储器来实现,例如NOR/NAND闪存、相变化存储器(PCM)、可变电阻式存储器(ReRAM)、自旋磁性存储器(STT-MRAM)等等。

接口模块102可经由两独立的数据路径PA1及PA2发送应用程序相关的数据。一方面,接口模块102可响应于应用程序APP所发送的I/O要求,发送一或多个非优先次序化(non-prioritized)要求。此些非优先次序化要求是透过第一数据路径PA1来传递。另一方面,接口模块102可监视应用程序APP以收集对应的应用层信息,并透过第二数据路径PA2传递此应用层信息。在一实施例中,应用层信息可来自虚拟机器、操作系统、应用程序设计者等等,或者由接口模块102估计而得。应用层信息可包括一或多个应用程序的优先次序等级以及一或多个应用程序的操作状态至少其中之一。在一实施例中,应用层信息可包括用以指示I/O要求来源的虚拟机器辨识码、应用程序辨识码以及程序辨识码。

当应用程序APP在操作系统上执行,其可发送优先次序化(prioritized) 的I/O要求。优先次序化的I/O要求例如是一种被分派对应优先次序等级的I/O要求,例如高优先次序、中优先次序或低优先次序。此优先次序等级决定了I/O要求在系统中的被服务顺序。优先次序方案可依据任一应用程序形式来决定,像是前景/背景、I/O强化(intensive)/非I/O强化等等、或者由应用程序设计者来定义。一般而言,一旦优先次序化的I/O要求被服务过,其优先次序信息会变成不可见(invisible)。如图1所示,当应用程序APP所发送的优先次序化I/O要求经过接口模块102,其即变成非优先次序化的I/O要求(也就是不具有优先次序信息)。

如前所述,第一数据路径PA1可用来传递非优先次序化的I/O要求。在一实施例中,第一数据路径PA1可包括I/O基础架构,像是虚拟文件系统108以及文件系统110。虚拟文件系统108可以是文件系统110上方的抽象层(abstraction layer)。文件系统110可用来控制数据如何被存入至或取出自储存装置106。可以理解的是,本发明并不限于此。第一数据路径PA1可依据实际的设计或需求而具有各式的I/O基础架构。

耦接至第一及第二数据路径PA1及PA2的排程器104可依据接收自第一数据路径PA1的一或多个非优先次序化要求以及接收自第二数据路径PA2的应用层信息,致能对储存装置106的存取。举例来说,排程器104可发送重新形成的优先次序化的I/O要求至系统100的装置驱动器112,以致能储存装置106的硬件功能。

上述数据处理系统100中的I/O基本架构的各层可以不同的方式来实现。在一实施例中,上述数据处理系统100中的I/O基本架构的各层,除了底层的储存装置106以外,皆可透过处理器PU来实现。在另一实施例中,I/O基本架构中的各层可分别由对应的逻辑电路或硬件模块来实现。又一实施例中,I/O基本架构中的部份层可由处理器PU来实现,其它层则可以由电路/硬件模块来实现。

第二数据路径PA2可使应用层信息的传递独立于第一数据路径PA1。因此,应用层信息可在不修改原始I/O要求格式的情况下被传递至排程器104。

如图1所示,第二数据路径PA2绕过第一数据路径PA1中的虚拟文件系统108以及文件系统110,并直接耦接至排程器104。因此,即便数 据处理系统100包括可能会抹除优先次序信息的I/O基础架构,此优先次序信息仍可被传递至系统100的较低层(例如排程器104)以进行I/O要求的排程。

透过第二数据路径PA2传递应用层信息可以各种方式来实现。举例来说,第二数据路径PA2可包括分享存储器114以储存取得自接口模块102的应用层信息,使得排程器104可从分享存储器114取得应用层信息。分享存储器114可以是储存装置106的一部份,或是独立于储存装置106的存储器空间。在一实施例中,分享存储器114包括易失性存储器,例如动态随机存存储器(DRAM)。

在另一例子中,第二数据路径PA2可包括虚拟档案116以记录取得自接口模块102的应用层信息,使得排程器104可从虚拟档案116取得应用层信息。举例来说,在监视应用程序APP的过程中,接口模块102可建立虚拟档案116以记录所收集到的应用层信息。排程器104可透过存取虚拟档案116以取得应用层信息。

又一例子中,第二数据路径PA2可包括特定驱动器118以直接地将所收集到的应用层信息发送至排程器104。可以理解的是,本发明并不限于上述的例子。用以传递应用层信息的第二数据路径PA2可依据实际的需求而以其它方式来实现。举例来说,第二数据路径亦可以额外的应用程序或其它软件方法来实现。

图2A绘示依据本发明的一实施例的数据处理系统200的例示I/O要求流。数据处理系统200与数据处理系统100间的主要差异在于,数据处理系统200更包括多个虚拟机器202以及超管理器204(hypervisor)。虚拟机器202可以是一个仿真的计算机系统,并具有对应的操作系统。应用程序APP是于操作系统上独立地运作。超管理器204用以管理此些虚拟机器202。也就是说,超管理器204可视为虚拟机器的管理者,其允许多个操作系统同时地运行于数据处理系统200。

在图2A的例子中,各个虚拟机器202包括类似于图1的虚拟化I/O基础架构。如图2A所示,各虚拟机器202有其对应的接口模块V21、访客虚拟文件系统V22、访客文件系统V23、访客排程器V24、访客装置驱动器V25以及虚拟化储存装置V26。类似于先前的实施例,非优先次序化 要求可透过穿过虚拟机器202中虚拟化I/O基础架构的第一数据路径PA1进行传递,而虚拟机器202中的接口模块V21则可透过第二数据路径PA2传递关于应用程序APP的应用层信息。

图2B绘示依据本发明的另一实施例的虚拟机器202’的例示I/O要求流。虚拟机器202’与图2A所示的虚拟机器202的主要差别在于,虚拟机器202’更包括服务驱动器V27以传递应用层信息至内部的访客排程器V24。在此情况下,虚拟机器202’中的虚拟化储存装置V26亦可感知来自应用层的信息。需注意的是,由于优先次序的信息是终止于虚拟化储存装置V26,故虚拟化储存装置V26的输出仍会变回非优先次序化要求。因此,应用层信息仍是透过第二数据路径PA2’来传递,如图2B所示。

图3绘示依据本发明的一实施例的数据处理系统300的例示I/O要求流。数据处理系统300与数据处理系统200的主要差别在于,数据处理系统300包括不具访客操作系统的虚拟机器302。此虚拟系统可例如实现于Android/iOS的智能型手机。

在图3的例子中,虚拟机器302包括接口模块V31、应用程序框架(framework)V32、资源管理器V33以及链接库与执行期(library&runtime)模块V34。类似于先前的实施例,非优先次序化要求可透过穿过虚拟机器302中虚拟化I/O基础架构的第一数据路径PA1”进行传递,而虚拟机器302中的接口模块V31则可透过第二数据路径PA2”传递关于应用程序APP的应用层信息。

如前所述,排程器104可依据非优先次序化要求以及应用层信息致能对储存装置106的存取。举例来说,若应用层信息包含优先次序等级信息,排程器104可利用此优先次序等级信息来执行要求的批次(batching)及排程(scheduling)程序,以管理对储存装置106的存取。

图4绘示依据本发明的一实施例的例示要求批次程序。在此实施例中,排程器104是将要求形成为批次单元(batch)。如图4所示,程序批次单元P-BATCH1包含要求Req1及Req4,其具有相同的程序辨识码PID:1;程序批次单元P-BATCH2包含要求Req2,其具有程序辨识码PID:2;程序批次单元P-BATCH3包含要求Req2及Req6,其具有相同的程序辨识码PID:3;程序批次单元P-BATCH4包含要求Req3及Req5,其具有相同的 程序辨识码PID:4。由于排程器104可从第二数据路径PA2取得应用层信息,排程器104是知悉各程序所对应的应用程序辨识码(AP-ID)及/或虚拟机器辨识码(VM-ID)。也就是说,排程器104可辨识出哪个程序是来自哪个应用程序及虚拟机器(若有的话)。

以三级的批次单元阶层为例(虚拟机器层、应用层、程序层),在排程器104依据应用层信息辨识出各个非优先次序化要求所对应的虚拟机器/应用程序后,排程器104可将来自相同虚拟机器的非优先次序化要求组成一个虚拟机器层批次单元。在此虚拟机器层批次单元中,排程器104进一步将来自相同应用程序的要求组成一个应用层批次单元。在此应用层批次单元中,排程器104将来自相同程序的要求组成一个程序批次单元。

如图4所示,对应相同应用程序辨识码AP-ID:1及虚拟机器辨识码VM-ID:1的程序批次单元P-BATCH1及P-BATCH2,是被分配至相同的应用程序批次单元AP-BATCH1以及相同的虚拟机器批次单元VM-Batch1;而具有AP-ID:2及VM-ID:1的程序批次单元P-BATCH3,是被分配至同一虚拟机器批次单元VM-Batch1中的另一应用程序批次单元AP-BATCH2。基于相同的要求批次程序策略,具有AP-ID:3及VM-ID:2的程序批次单元P-BATCH4,是被分配至虚拟机器批次单元VM-Batch2中的应用程序批次单元AP-BATCH3。

图5绘示依据本发明的一实施例的要求批次程序的流程图500。要求批次程序例如起始于排程器104自应用程序APP接收到新要求之时。接着,在步骤502,排程器104可查阅映射表以依据新要求的程序辨识码取得虚拟机器辨识码以及应用程序辨识码。映射表的一例是如图4中的表TB1所示,当中纪录各个程序辨识码(PID)所对应的应用程序辨识码(AP-ID)以及虚拟机器辨识码(VM-ID)。可以理解的是,本发明并不以此为限。映像表可以各种不同的方式来实现,像是列表、查阅表、或其它可记录各个程序/要求所对应的应用程序辨识码及虚拟机器辨识码(若有的话)的数据形式。

在步骤504,排程器104判断具有VM-ID的虚拟机器批次单元是否存在。若否,则在步骤506,具有VM-ID的新虚拟机器批次单元是被创建。若是,程序接续至步骤508,排程器104判断具有AP-ID的应用程序批 次单元是否存在。若步骤508的判断结果是否定的,则在步骤510创建具有AP-ID的新应用程序批次单元。若步骤508的判断结果是肯定的,则程序进行至步骤510。排程器104接着在步骤512判断具有PID的程序批次单元是否存在。若不存在这样的程序批次单元,则在步骤514创建具有P-ID的新程序批次单元,而此新要求是被添加至对应的虚拟机器批次单元、应用程序批次单元以及程序批次单元,如步骤516所示。

在要求被组成为批次单元后,排程器104可执行内排程(intra scheduling)策略及/或跨排程(inter scheduling)策略以安排批次单元的服务顺序。在一实施例中,内排程策略用以处理一虚拟机器批次单元(或具有最高阶层等级的批次单元)中批次单元的服务顺序。在一实施例中,跨排程策略用以处理多个优先次序化的批次单元间的服务顺序。

图6绘示依据本发明的一实施例的内排程程序的示意图。在一实施例中,内排程程序是依循以下的规则:

1.虚拟机器批次单元中的要求是连续地被排程;

2.在虚拟机器批次单元中,应用程序批次单元中的要求是连续地被排程;

3.在应用程序批次单元中,程序批次单元中的要求是连续地被排程;以及

4.在程序批次单元中的要求是以I/O地址顺序被排程。

基于上述规则,要求Req1、Req2、Req4、Req6及Req7的服务顺序依序为Req1→Req4→Req7→Req2→Req6,如图6所示。

图7绘示依据本发明的一实施例的跨排程程序的示意图。在一实施例中,跨排程程序是依循以下的规则:

1.优先次序化各批次单元;以及

2.以特定方式对批次单元进行排程,例如轮替制(round-robin)、权重轮替制或基于服务质量(quality-of-service,QoS)的排程策略等等,以确保公平性以及服务质量。

在图7的例子中,排程器104是依据优先次序映射表TB2安排不同阶层等级的批次单元的服务顺序。如图7所示,首先,具有最高优先次序的虚拟机器批次单元VM-Batch2是被选择。由于虚拟机器批次单元 VM-Batch2仅包括只含有程序批次单元P-Batch4的应用程序批次单元AP-Batch3,故程序批次单元P-Batch4中的要求Req3及Req5是被服务。接着,具有较低优先次序的虚拟机器批次单元VM-Batch1被选择。在虚拟机器批次单元VM-Batch1当中,具有较高优先次序的应用程序批次单元AP-Batch1被选择。应用程序批次单元AP-Batch1包括程序批次单元P-Batch1以及程序批次单元P-Batch2,当中前者具有较高的优先次序。因此,程序批次单元P-Batch1中的要求Req1及Req4被选择服务。接着,程序批次单元P-batch2中的要求Req7被选择服务。最后,仅包括程序批次单元P-batch 3的应用程序批次单元AP-batch2被选择,而程序批次单元P-Batch3中的要求Req2及Req6是接着被选择服务。

图8绘示依据本发明的一实施例的排程程序的流程图800。在图8的例子中,排程器104可依据应用层信息中的对应优先次序等级来优先次序化各虚拟机器层批次单元、各应用层批次单元以及各程序层批次单元。

此程序例如于I/O排程器中存有至少一批次单元时起始。在步骤802,具有最高优先次序的虚拟机器批次单元是被选择。在步骤804,排程器104于虚拟机器批次单元中选择具有最高优先次序的应用程序批次单元。在步骤806,在所选的应用程序批次单元中,排程器104选择具有最高优先次序的程序批次单元。在步骤808,排程器104发送所选程序批次单元中的要求,并以I/O地址顺序存取储存装置。在步骤810,被发送的要求是自程序批次单元中移除。

在步骤812,排程器104检查所选的程序批次单元是否是空的(empty)。若是,则在步骤814移除空的程序批次单元。若否,则接续步骤808。

再一次地,在步骤816,排程器104检查所选的应用程序批次单元是否是空的。若是,则在步骤818移除空的应用程序批次单元。若否,则程序回到步骤806。

接着,在步骤820,排程器104检查所选的虚拟机器批次单元是否是空的。若是,则在步骤822移除空的虚拟机器批次单元。若否,则程序回到步骤804。在步骤824,排程器104判断是否还有任何虚拟机器批次单元。若有,则程序重回到步骤802。

总而言之,本发明提供接口模块以监视应用程序的状态并收集应用层 信息。收集到的应用层信息可透过所提出的接口模块,经由独立的数据路径而被传递至I/O排程器,使得I/O要求可依据应用层信息而被排程。

综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视随附的权利要求范围所界定的为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1