CN105094983B - 计算机,控制设备和数据处理方法 - Google Patents

计算机,控制设备和数据处理方法 Download PDF

Info

Publication number
CN105094983B
CN105094983B CN201410682375.0A CN201410682375A CN105094983B CN 105094983 B CN105094983 B CN 105094983B CN 201410682375 A CN201410682375 A CN 201410682375A CN 105094983 B CN105094983 B CN 105094983B
Authority
CN
China
Prior art keywords
application request
control device
computer
resource allocation
tag
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
Application number
CN201410682375.0A
Other languages
English (en)
Other versions
CN105094983A (zh
Inventor
包云岗
马久跃
隋秀峰
任睿
张立新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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
Priority to CN201410682375.0A priority Critical patent/CN105094983B/zh
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN202010307634.7A priority patent/CN111666148A/zh
Priority to BR112016016326-5A priority patent/BR112016016326B1/pt
Priority to MX2016011157A priority patent/MX360278B/es
Priority to SG11201605623PA priority patent/SG11201605623PA/en
Priority to KR1020167019031A priority patent/KR101784900B1/ko
Priority to RU2016134457A priority patent/RU2651219C2/ru
Priority to EP15785332.6A priority patent/EP3076296A4/en
Priority to AU2015252673A priority patent/AU2015252673B2/en
Priority to CA2935114A priority patent/CA2935114C/en
Priority to PCT/CN2015/072672 priority patent/WO2015165298A1/zh
Priority to JP2016553382A priority patent/JP6475256B2/ja
Publication of CN105094983A publication Critical patent/CN105094983A/zh
Priority to PH12016501374A priority patent/PH12016501374A1/en
Priority to US15/335,456 priority patent/US10572309B2/en
Application granted granted Critical
Publication of CN105094983B publication Critical patent/CN105094983B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

本发明实施例提供了一种计算机,控制设备和数据处理方法。所述计算机包括处理单元和控制设备;所述处理单元用于给应用请求增加标签,将增加标签后的应用请求发送给所述控制设备;所述控制设备用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;还用于指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。用于提高应用请求的服务质量。

Description

计算机,控制设备和数据处理方法
本申请要求于2014年4月30日提交中国专利局、申请号为201410182148.1、发明名称为“计算机,控制设备和数据处理方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及计算机领域,特别涉及一种计算机,控制设备和数据处理方法。
背景技术
为了提高计算机或者服务器的运行效率,多个应用程序可以在计算机内部实现资源共享。例如,多个应用程序可以同时向内存申请资源,由此提高内存资源的利用率。然而,多个应用程序在共享资源时会相互干扰,使得一些重要的应用程序得不到优先处理,从而影响了服务质量。
发明内容
本发明实施例提供了一种计算机,控制设备和数据处理方法,用以提高应用请求的服务质量。
本发明实施例第一方面提供了一种计算机,所述计算机包括处理单元和控制设备;
所述处理单元用于给应用请求增加标签,将增加标签后的应用请求发送给所述控制设备;
所述控制设备用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;还用于指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
结合第一方面,在第一种可能的实施方式中,所述控制设备还包括缓冲区,其中,所述缓冲区包含至少两个队列,其中,每个队列对应一定范围的资源量,并且每个队列的优先级不同;
所述控制设备具体用于根据所述分配给所述应用请求的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,并将所述应用请求保存在所述应用请求对应的队列中;
所述计算机的组成部件用于从所述应用请求对应的队列中获得并执行所述应用请求。
结合第一方面,在第二种可能的实施方式中,所述控制设备还包括处理器和高速缓存器,所述高速缓存器中存储有所述资源分配策略;
所述处理器还用于从所述高速缓存器中获取所述资源分配策略。
结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述资源分配策略包括控制表,所述控制表包括多个表项,所述多个表项中的一个表项包括所述标签与分配给所述应用请求的资源量之间的对应关系;
所述处理器具体用于向所述高速缓存器发送查询指令,所述查询指令中包括所述标签;
所述高速缓存器用于根据所述查询指令获得所述标签对应的表项,并将所述标签对应的表项发送给所述控制设备的处理器。
结合第一方面,或者第一方面的第一种至第一方面的第三种可能的实施方式,在本发明第四种可能的实施方式中,所述控制设备还包括编程接口,所述编程接口用于对所述资源分配策略进行修改。
结合第一方面,或者第一方面的第一种至第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述计算机还包括存储器,所述存储器中存储有节点管理软件;
所述处理单元还用于通过所述节点管理软件定义所述资源分配策略;所述控制设备还用于从所述节点管理软件获取所述资源分配策略,并将所述资源分配策略写入所述高速缓存器中。
结合第一方面的第五种可能的实施方式,在第六种可能的实施方式中,所述处理单元还包括标签寄存器;
所述处理单元还用于通过所述节点管理软件定义所述标签,并通过所述节点管理软件将所述标签写入所述标签寄存器;
所述处理单元还用于从所述标签寄存器中读取所述标签。
本发明实施例第二方面提供了一种控制设备,所述控制设备设置于的计算机的组成部件上;所述控制设备包括处理器;
所述处理器用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;还用于指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
结合第二方面,在第一种可能的实施方式中,所述控制设备还包括缓冲区,所述缓冲区包含至少两个队列,其中,每个队列对应一定范围的资源量,并且每个队列的优先级不同;
所述处理器具体用于根据所述分配给所述应用请求的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,并将所述应用请求保存在所述应用请求对应的队列中;
所述计算机的组成部件用于从所述应用请求对应的队列中获得并执行所述应用请求。
结合第二方面,在第二种可能的实施方式中,所述控制设备还包括高速缓存器,所述高速缓存器中存储有所述资源分配策略。
所述处理器还用于从所述高速缓存器中获取所述资源分配策略。
结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述资源分配策略包括控制表,所述控制表包括多个表项,所述多个表项中的一个表项包括所述标签与分配给所述应用请求的资源量之间的对应关系;
所述处理器具体用于向所述高速缓存器发送查询指令,所述查询指令中包括所述标签;
所述高速缓存器用于根据查询指令获得所述标签对应的表项,并将所述标签对应的表项发送给所述处理器。
结合第二方面,或者第二方面的第一种至第二方面的第三种可能的实施方式,在第四种可能的实施方式中,控制设备还包括编程接口,所述编程接口用于对所述资源分配策略进行修改。
结合第二方面,或者第二方面的第一种至第二方面的第四种可能的实施方式,在第五种可能的实施方式中,所述资源分配策略是由所述计算机通过节点管理软件定义并发送给所述控制设备的,其中,所述节点管理软件存储在所述计算机的存储器中。
本发明实施例第三方面提供了一种数据处理方法,所述方法应用于控制设备中,所述控制设备设置于计算机的组成部件中;所述方法包括:
所述控制设备接收携带标签的应用请求;
所述控制设备根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;
所述控制设备指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
结合第三方面,在第一种可能的实施方式中,所述控制设备还包括缓冲区,其中,所述缓冲区包含至少两个队列,其中,每个队列对应一定范围的资源量,并且每个队列的优先级不同;
所述控制设备指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求包括:
所述控制设备根据所述分配给所述应用请求的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,并将所述应用请求保存在所述应用请求对应的队列中,使得所述计算机的组成部件从所述应用请求对应的队列中获得并执行所述应用请求。
结合第三方面,在第二种可能的实施方式中,所述控制设备还包括处理器和高速缓存器,所述高速缓存器中存储有所述资源分配策略;
所述方法还包括:所述控制设备的处理器从所述高速缓存器中获取所述资源分配策略。
结合第三方面的第二种可能的实施方式,在第三种可能的实施方式中,所述资源分配策略包括控制表,所述控制表包括多个表项,所述多个表项中的一个表项包括所述标签与分配给所述应用请求的资源量之间的对应关系;
所述控制设备的处理器从所述高速缓存器中获取所述资源分配策略包括:所述控制设备的处理器向所述高速缓存器发送查询指令,所述查询指令中包括所述标签;
所述高速缓存器根据查询指令获得所述标签对应的表项,并将所述标签对应的表项发送给所述控制设备的处理器。
本发明实施例提供了一种计算机,所述计算机包括处理单元和控制设备,其中,所述处理单元给应用请求增加标签,将增加标签后的应用请求发送给所述控制设备,所述控制设备根据标签和预先保存的资源分配策略确定分配给所述应用请求的资源量,并且指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。这就使得所述计算机的组成部件在处理所述应用请求时可以按照分配给所述应用请求的资源量进行处理,在一定程度上避免了多个应用请求互相抢占资源量,提高了服务质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种计算机的系统架构图;
图2a是本发明实施例的另一种计算机的系统架构图;
图2b是本发明实施例的一种控制设备的结构示意图;
图3是本发明实施例的另一种控制设备的结构示意图;
图4是本发明实施例的再一种控制设备的结构示意图;
图5是本发明实施例的又一种控制设备的结构示意图;
图6是本发明实施例的控制面网络的架构示意图;
图7是本发明实施例的节点管理软件的结构示意图;
图8是本发明实施例的一种数据处理方法的流程示意图;
图9是本发明实施例的另一种数据处理方法的流程示意图;
图10是本发明实施例的再一种数据处理方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明实施例提出了一种计算机,控制设备和数据处理方法。用于提高应用程序的服务质量。
图1为本发明实施例提供的计算机10的系统架构示意图,如图1所示,该计算机10包括多个处理单元11、多个控制设备66以及多个计算机的组成部件33(图1中简称为部件)。本发明实施例所称的计算机的组成部件是指可能被多个应用程序占用资源的计算机的组成部件。
其中,处理单元11是指一个中央处理器(Central Processing Unit,CPU)上拥有的同样功能的处理器核心的其中一个,用于执行读、写等各种操作命令。
所述计算机的组成部件33包括:片上高速互连网络、与片上高速互连网络直接连接的计算机的组成部件,例如缓存(又称cache)、内存、图形处理器(Graphic ProcessingUnit,GPU)、显存等,还可以包括I/O互连网络以及与I/O互连网络连接的I/O设备,例如磁盘(又称硬盘),网卡,显示器等。
片上高速互连网络是用于连接多个处理单元11的连接器,在所述片上高速互连网络还连接有缓存、内存、图形处理器、显存等。
对于缓存来说,其分配给应用程序的资源可以是缓存空间;对于内存来说,其分配给应用程序的资源可以是内存空间;对于图形处理器来说,其分配给应用程序的资源可以是硬件加速资源;对于显存来说,其分配给应用程序的资源可以是显存空间。
此外,片上高速互连网络上还可以连接有I/O互连网络(又称南桥)。
I/O互连网络是用于控制I/O设备的设备。
计算机的组成部件33还包括直接与I/O互连网络连接的I/O设备,例如磁盘(又称硬盘),网卡,显示器等。
举例来说,在一段时间内,计算机10可能会处理多个应用程序,并且,这些应用程序都需要占用计算机的组成部件(例如,内存)的资源。然而内存的资源有限,就可能会使得某些重要的应用程序得不到及时处理,影响了服务质量。
因此,在本发明实施例中,在可能被多个应用程序申请或占用资源的计算机的组成部件上设置控制设备66。控制设备66用于根据应用程序的类型的不同给应用程序分配不同的资源量,以处理该应用程序。这里的可能被多个应用程序申请或占用资源的计算机的组成部件包括但不限于:片上高速互连网络、缓存、内存、图形处理器、显存和I/O互连网络。
需要说明的是,在本发明实施例中,可以只在多个计算机的组成部件的其中一个计算机的组成部件上设置控制设备66;也可以在多个计算机的组成部件上设置控制设备66;甚至可以在前面描述的所有计算机的组成部件上设置控制设备66。
为了让控制设备66能够识别出不同类型的应用程序,就需要在应用请求(应用程序对应的请求)产生的源端识别出应用请求的类型,并打上标签,使得后续向某个计算机的组成部件上的控制设备66发送该应用请求时,控制设备66可以根据标签对类型不同的应用程序做出不同的处理。需要说明的是,在本发明实施例中,应用程序和应用请求代表的含义相同。并且,本发明实施例中的应用请求包括计算机内部产生的各种指令,以及从计算机外部接收的各种指令,例如文件访问请求、视频播放请求、内存访问请求、IO请求、内部连接(Interconnect)请求等等。
这里的应用请求产生的源端可以是处理单元11,也可以是I/O设备(例如,网卡)。当应用请求来自计算机10本地时,应用请求产生的源端是可以处理单元11;当应用请求来自计算机10外部,例如接收利用互联网发送过来的应用请求时,应用请求产生的源端可能是网卡或者其他输入输出设备。
当应用请求来自计算机10内部时,打标签的方式可以是:
在处理单元11中设置标签寄存器77(如图2a所示),标签寄存器77中保存有寄存器值。当处理单元11生成应用请求时,处理单元11通过读取寄存器值给所述应用请求增加标签,所述标签即寄存器值。
具体的,标签是由节点管理软件(后面会详细介绍)为应用请求定义的。节点管理软件可以是操作系统中的一个模块,也可以是操作系统与计算机硬件之间的中间软件层(Hypervisor)中的一个模块,运行在处理单元11上。节点管理软件在为一个应用请求定义标签之后,操作系统可以将该标签写入该应用请求对应进程的上下文中,然后再将应用请求对应进程的上下文写入寄存器中。
一种可选的实施方式是:
由于处理单元11本身可包含多个寄存器,因此可以将多个寄存器中的其中一个寄存器设置为标签寄存器77,该标签寄存器77中用来保存应用程序的标签。当处理单元11生成一个应用请求时,到标签寄存器77中读取寄存器值,将该寄存器值作为标签写入应用请求中。可以理解的是,标签的表现形式可以是应用程序的ID,字母,数字等等,在此不做限定。
另一种可选的实施方式是:
在处理单元11中添加一个新的寄存器,并且将所述新的寄存器定义为标签寄存器77,该标签寄存器77用来保存应用程序的标签。后面的处理方式与前面一种实施方式相同,这里不再赘述。
当网卡作为应用请求的源端时,一种实施方式是网卡本身并不执行给应用请求打标签的动作。举例来说,网卡接收到应用请求时,该应用请求就是带有标签的应用请求。也就是说,应用请求的发送端可以在发送应用请求之前,给应用请求打上标签。可以理解的是,在分布式系统中,各个服务器(或者计算机)之间可以通过协商确定应用请求的标签,也可以设置一个标签服务器,用于定义并且向各个服务器发送应用请求的标签。诸如此类的实施方式都在本发明实施例的保护范围以内。另一种实施方式是网卡接收到消息包时,通过对所述消息包进行解析获得应用请求,然后给所述应用请求打上标签。这种情况下,网卡给所述应用请求打标签的方式与前面描述的处理单元11打标签的方式类似,这里不再赘述。
需要说明的是,计算机10内的其他组成部件也可以给应用请求增加标签,例如I/O互连网络等,其实施方式与处理单元11或者网卡类似,本发明实施例并不对打标签的组成部件做任何限定。
下面以处理单元11为应用请求增加标签为例来说明后续的处理流程。
当应用请求增加标签以后,处理单元11向控制设备66发送该应用请求时,会带上该应用请求的标签。
具体的,所述控制设备66用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;还用于指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
本发明实施例提供了一种计算机,所述计算机包括处理单元和控制设备,其中,所述处理单元给应用请求增加标签,将增加标签后的应用请求发送给所述控制设备,所述控制设备根据标签和预先保存的资源分配策略确定分配给所述应用请求的资源量,并且指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。这就使得所述计算机的组成部件在处理所述应用请求时可以按照分配给所述应用请求的资源量进行处理,在一定程度上避免了多个应用请求互相抢占资源量,提高了服务质量。
下面重点描述控制设备66的结构及功能。
控制设备66是指计算机10内的计算机的组成部件中任一组成部件上的设备。当某些计算机的组成部件本身包含有控制器(例如,内存包含内存控制器或者网卡包含网卡控制器)时,控制设备66可以是嵌入到控制器中的控制设备或者新增的与原有的控制器连接的控制设备;当某些计算机的组成部件本身不包含控制器时,控制设备66可以是新增的连接在所述计算机的组成部件上的控制器或者控制设备。
如图2b所示,控制设备66包括处理器600a;
所述控制设备66用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;还用于指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
此外,控制设备66还可以包括缓冲区(又称buffer)600b。
举例来说,所述处理器600a用于将所述增加标签后的应用请求保存在缓冲区600b中;从缓冲区600b中读取所述标签,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
需要说明的是,缓冲区600b也可以是所述处理器600a中的寄存器。在这种情况下,其处理方式可以是:所述处理器600a用于将所述增加标签后的应用请求保存在其寄存器中;从寄存器中读取所述标签,根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系;指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
举例来说,如图3所示,一种可选的实施方式是:控制设备66可以包括处理器600i、缓冲区(又称buffer)600b、队列600c。
其中,处理器600a可以是现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程器件。在处理器600i中内置有资源分配策略,所述资源分配策略可以是控制表(如表1所示),并且,所述控制表是可编辑的。
Figure BDA0000615046780000111
Figure BDA0000615046780000121
表1
具体的,表1中的每一个表项对应一个标签。并且,控制表的每个表项中包含有多个“属性”,“属性”代表给所述标签对应的应用请求分配的资源量。资源量可以有多种,例如,可以包括目标服务质量或者IPC(Instruction per Cycle)或者响应时间或者最大容忍度等。“属性”的值区间可以由用户设定。举例来说,值区间的定义可以是不低于30%,或者不高于80%。此外,每个表项中还包含多个“状态”,“状态”代表所述标签对应的应用请求目前消耗的资源量,“状态”的值是可以实时监控并进行更新的。
另外,所述资源分配策略也可以是一段固件代码,内置于FPGA中。本发明实施例并不对保存资源分配策略的方式做任何限定。
缓冲区600b是一个临时缓存区,当控制设备66接收带有标签的应用请求时,首先会放入缓冲区600b进行临时保存。
队列600c也是一个临时缓存区,它可以和缓冲区600b位于同一个临时缓存区中,也可以和缓冲区600b分离,单独作为一个临时缓存区。队列600c用于保存经过处理器600i处理后的应用请求。队列600c中可以包含多个队列,不同的队列在缓冲区600b中对应着不同的地址段。不同队列的优先级不同,优先级体现在所述计算机的组成部件执行所述各个队列中的应用请求的顺序不同。这意味着,给不同队列分配的资源也不同。
此外,控制设备66还可以包括编程接口600d。
编程接口600d用于实现一种地址空间映射机制,能够将处理器600i中内置的控制表映射到计算机10的物理地址空间中去。节点管理软件可以访问所述计算机10的物理地址空间,对所述控制表进行编辑。例如,编程接口600d可以提供多种函数,用于对控制表中保存的表项进行增加、修改或删除。另外,处理器600i还可以将其控制表中每个表项中的各个“状态”的值提供给节点管理软件,使得节点管理软件对各个应用请求的“状态”的值进行统计后,进而对资源分配策略进行调整。
举例来说,处理器600i可以从缓冲区600b中获取一条带有标签的应用请求,根据所述标签在表1中查询到对应的表项,从而获得所述应用请求的“属性”。由于所述应用请求的“属性”指示了分配给所述应用请求的资源量,因此处理器600i可以根据分配给所述应用请求的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,将所述应用请求放入相应的队列中。
当处理器600i所述应用请求放入相应的队列中后,可以指示相应的计算机的组成部件对应用请求做出的处理。这里的“相应的计算机的组成部件”是指该控制设备所属的计算机的组成部件。例如,如果该控制设备是指缓存上的控制设备,那么这里的“相应的计算机的组成部件”就是指缓存。
这里的指示相应的计算机的组成部件对应用请求做出的处理,可以是处理器600i从所述相应的队列中取出所述应用请求,发送给相应的计算机的组成部件,也可以是相应的计算机的组成部件从相应的队列中获得所述应用请求。
另外,控制设备66还可以包括数据转发器600j,当处理器600i将不同的应用程序放入队列600c中的不同队列后,可以从队列中取出应用请求后,发送给所述数据转发器600j,所述数据转发器600j用于再将所述应用请求转发给所述相应的计算机的组成部件。也就是说,这里的相应的计算机的组成部件从相应的队列中获得所述应用请求可以是通过数据转发器600j获得。
另外,处理器600i在将应用请求放入相应的队列600c之前,可以对应用请求做一些预处理操作,例如压缩、加密等操作,再将经过预处理操作之后的应用请求放入相应的队列600c。
如图4所示,对于控制设备66,另一种可选的实施方式是:
所述控制设备66包括缓冲区(又称buffer)600b、队列600c、微处理器600e和高速存储器(又称cache)600f。
其中,缓冲区(又称buffer)600b、队列600c和图3所示的缓存区和队列相同,在此不再赘述。
微处理器600e可以是CPU等其他具有类似CPU功能的控制器。与图3所示的处理器600a不同之处在于,处理器600i作为一种可编程器件,其中内置有资源分配策略,并且,所述资源分配策略是可编辑的。而微处理器600e执行CPU的功能,但不能在其中内置控制表。因此,图4所示的控制设备66还包含有高速缓存器600f。在所述高速缓存器600f中存储有资源分配策略,所述资源分配策略是指类似于所述控制表功能的程序代码。
举例来说,当控制设备66接收一个带有标签的应用请求时,首先将该应用请求放入缓冲区600b中。微处理器600e可以从缓冲区600b保存的应用请求队列中获取带有标签的应用请求,并且从高速缓存器600f中读取资源分配策略到缓冲区600b中,根据所述标签以及资源分配策略确定给所述应用请求分配的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,将所述应用请求放入相应的队列中。微处理器600e再从所述相应的队列中取出所述应用请求,发送给相应的计算机的组成部件。
或者,控制设备66还可以包括数据转发器600j,当微处理器600e将不同的应用程序放入队列600c中的不同队列后,可以从队列中取出应用请求后,发送给所述数据转发器600j,所述数据转发器600j用于再将所述应用请求转发给所述相应的计算机的组成部件。后面的处理方式与图3所示的实施方式相同,这里不再赘述。
另外,在图4所示的控制设备66中还可以包括控制逻辑(图4中未示出),用于对高速缓存器600f中保存的资源分配策略进行修改。
同样的,微处理器600e在将应用请求放入相应的队列600c之前,可以对应用请求做一些预处理操作,例如压缩、加密等操作,再将经过预处理操作之后的应用请求放入相应的队列600c。
可以理解的是,如果微处理器600e内部有buffer,也可以将带有标签的应用请求以及高速缓存器600f中保存的资源分配策略读到自己的buffer中,在自己的buffer中处理所述应用请求,根据处理结果将所述微处理器600e放入相应的队列600c。
对于控制设备66,再一种可选的实施方式是:
如图5所示,控制设备66可以包括缓冲区600b,比较控制逻辑600g,高速存储器600f和队列600c。
这里所称的比较控制逻辑600g可以是专用集成电路(Application SpecificIntegrated Circuits,ASIC)或者其他集成电路。
缓冲区600b与前面描述的缓冲区一致。
高速存储器600f中存储有控制表(表1)。
当控制设备66接收一个带有标签的应用请求时,首先将该应用请求放入应用请求的队列。队列可以是缓冲区600b中缓存空间的一部分,也可以是一个独立的缓冲区。比较控制逻辑600g从队列中读取所述应用请求到缓冲区600b(或者比较控制逻辑600g的buffer)中,并且根据所述应用请求的标签向高速存储器600f发出读取指令,要求高速存储器600f返回所述标签对应的表项。该表项的内容将被加载到缓冲区600b(或者比较控制逻辑600g的buffer)中,比较控制逻辑600g在缓冲区600b(或者比较控制逻辑600g的buffer)中根据表项的内容,从所述至少两个队列中,选择所述应用请求对应的队列,从而将所述应用请求放入队列600c中。比较控制逻辑600g再从相应的队列中取出所述应用请求,发送给相应的计算机的组成部件。
或者,控制设备66还可以包括数据转发器600j,当比较控制逻辑600g将不同的应用程序放入队列600c中的不同队列后,可以从队列中取出应用请求后,发送给所述数据转发器600j,所述数据转发器600j用于再将所述应用请求转发给所述相应的计算机的组成部件。
同样的,比较控制逻辑600g在缓冲区600b中还可以对所述应用进行一些预处理操作,例如压缩、加密等。
另外,控制设备66还可以包括编程接口600d,用于对高速缓存器600f中保存的控制表进行编辑。其具体功能可参照图3所示的实施例中对编程接口600d的描述。
需要说明的是,计算机10内的各个组成部件上的控制设备66可能不完全相同。具体而言,各个控制设备66保存的资源分配策略可能不完全相同,例如,例如对于同一个应用请求,当它需要访问内存时,内存分配给它的资源量可能达到80%,而当它需要通过I/O设备输出时,I/O互连网络分配给它的资源量可能只有70%。
利用本发明实施例提供的控制设备,可以根据应用请求的标签和预先保存的资源分配策略确定分配给所述应用请求的资源量,并且指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。这就使得所述计算机的组成部件在处理所述应用请求时可以按照分配给所述应用请求的资源量进行处理,在一定程度上避免了多个应用请求互相抢占资源量,提高了服务质量。
在本发明实施例中,各个计算机的组成部件上的控制设备66上可以形成控制设备网络,用于将所有的控制设备66连接起来,如图1或图2虚线所示。其中,每个控制设备都包含一个物理接入点,通过物理接入点接入控制设备网络。所述控制设备网络可以通过外设部件互连(Peripheral Component Interconnect Express,PCIe)协议或者其他协议传输数据,在本发明实施例中不对协议的类型做限定。
本发明实施例中还可以包含节点管理软件(图1中未示出),所述节点管理软件可以是操作系统中的一个模块,也可以是操作系统与计算机硬件之间的中间软件层(Hypervisor)中的一个模块,运行在某一个或多个处理单元11上。节点管理软件用于通过控制设备网络对所有的控制设备66进行管理,例如对各个控制设备66进行初始化操作,收集各个控制设备66的“状态”值,根据收集的“状态”值确定或者调整资源分配策略,向各个控制设备66发送资源分配策略等操作。
可选的,如图6所示,一种实施方式是在计算机10中建立一套专用网络,利用一个根路由器将所有的控制设备66连接起来,所有的控制设备66的物理接入点都与该专用网络连接。所述专用网络可以提供一套通信协议,该通信协议负责定义访问各个控制设备66的消息包格式。举例来说,该消息包可以包括但不限于,控制设备编号或者ID、控制设备命令(例如增加资源分配策略或者删除资源分配策略或者修改资源分配策略)以及控制设备命令参数。另外,为了和所述计算机10外部的设备或者与节点管理软件进行通信,消息包也可以经过PCIe协议或者其他协议封装后再进行传输。
可选的,另一种实施方式是,各个控制设备66利用地址空间映射方式与节点管理软件进行数据交互。具体的,各个控制设备66将其控制表或者资源分配策略映射到计算机10的物理地址空间中,节点管理软件可以对这些地址空间进行访问,实现对控制表或者资源分配策略的编辑。
如图7所示,节点管理软件可以包括控制设备驱动模块701、监控管理模块702和用户编程接口703。
其中,控制设备驱动模块701用于扫描识别新的计算机的组成部件的控制设备66,并对该控制设备66进行初始化;向该控制设备66发送资源分配策略。另外,控制设备驱动模块701还用于对资源分配策略进行增加、修改或者删除。
监控管理模块702用于存储收集到的各个控制设备66的“状态”的值,对收集到的各个控制设备66的“状态”的值进行关联分析,结合用户需求确定资源分配策略。
用户编程接口703用于提供应用程序编程接口(Application ProgrammingInterface,API),其他软件或者应用程序可以通过API实现对控制设备66的编程。举例来说,API至少包括以下接口:初始化命令、增加资源分配策略命令、修改资源分配策略命令、删除资源分配策略命令等。
本发明实施例中如图2b或图3或图4或图5所示的控制设备只是适用本发明实施例的其中一种示例,并不是对本发明应用的具体限定,例如还可以是特定集成电路,不管哪一种形式,其在计算机中,实现控制设备的功能。本发明实施例所述的计算机,可以是个人电脑,也可以是服务器,也可以是手机,还可以是掌上电脑,本发明对计算机的具体实现形式不做限定。本申请文件对其他系统实施例或应用场景不再一一阐述。
下面介绍本发明实施例通过在计算机内设置控制设备来实现数据处理的流程,本发明实施例中的数据处理方法可以在图2b或图3或图4或图5所示的控制设备中实施,如图8所示,包括:
步骤S101:所述控制设备接收携带标签的应用请求。
所述携带标签的应用请求可能是来自图1或图2a所示的处理单元11,也可能是来自网卡。当所述携带标签的应用请求来自处理单元11时,处理单元11在接收或者生成应用请求时,需要给所述应用请求增加标签。具体的,处理单元11给所述应用请求增加标签的方式可参考图2a所示的实施例,这里不再赘述。
当携带标签的应用请求来自网卡时,一种情况是网卡接收到应用请求时,该应用请求就是带有标签的应用请求。另一种情况是网卡接收到消息包时,通过对所述消息包进行解析获得应用请求,然后给所述应用请求打上标签。
另外,在步骤S101之前,操作系统或者Hypervisor可以通过节点管理软件对计算机10内的各个控制设备66进行初始化操作,使得各个控制设备处于工作状态。控制设备66执行初始化操作以后,节点管理软件将资源分配策略通过控制设备网络发送给各个控制设备66。
步骤S102:所述控制设备根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量,所述资源分配策略包括所述标签与分配给所述应用请求的资源量之间的对应关系。
具体的,所述控制设备将所述携带标签的应用请求写入所述控制设备的第一缓冲区(图2b所示的缓冲区600b),从所述第一缓冲区读取所述标签。
由于所述资源分配策略是通过所述节点管理软件发送给控制设备66的,并且,处理单元11为所述应用请求增加的标签也是通过所述节点管理软件定义的,因此所述应用请求携带的标签可以和资源分配策略中的标签关联起来,所述控制设备可以根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量。
这里的资源量可以是所述控制设备所在的计算机的组成部件分配给所述应用请求的资源数量,也可以是一个比例值,还可以包括优先权信息等。例如,当所述控制设备所在的计算机的组成部件是内存时,所述资源量可以是内存空间的大小,也可以是内存空间的比例值(例如80%),还可以是其他信息(参见表1中对于“属性”的描述),本发明实施例没有对资源量的表现形式做任何限定,只要体现所述组成部件处理所述应用请求的优先级或者速度都在本发明实施例的保护范围以内。
另外,这里的资源分配策略可以内置于所述控制设备的处理器中(参考图3所示的实施方式),也可以是保存在所述控制设备的高速缓存器中(参考图3所示的实施方式)。
步骤S103:所述控制设备指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
所述指示所述计算机的组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求可以是将所述分配给所述应用请求的资源量以及所述应用请求发送给所述组成部件,也可以是将应用请求发送给所述组成部件并知会所述组成部件处理所述应用请求的方式。
本发明实施例可以由控制设备根据应用请求携带的标签,以及标签与分配给所述应用请求的资源量之间的对应关系,确定分配给所述应用请求的资源量,再指示计算机的组成部件根据所述分配给所述应用请求的资源量处理所述应用请求。因此,可以给不同的应用请求分配不同的资源量,由此提高服务质量。
可选的,当步骤S103之后所述应用请求尚未执行完毕,还需要到另一个计算机的组成部件上申请资源并执行时,可以将处理后的应用请求转发给另一个计算机的组成部件上的控制设备处理,其处理方式与步骤S101-步骤S103类似。需要说明的是,转发给另一个计算机的组成部件上的控制设备的应用请求也携带有所述标签。
下面介绍本发明实施例数据处理方法的另一种实施方式,如图9所示,所述方法包括:
步骤S201:与步骤S101相同。
步骤S202:所述控制设备从高速缓存器(可以简称为缓存)中获得资源分配策略。
当所述资源分配策略是软件代码时,所述控制设备可以将所述资源分配策略加载到其处理器的buffer中。当所述资源分配策略是如表1所示的控制表时,所述控制设备可以向所述高速缓存器发送查询指令,所述查询指令包括所述标签,所述高速缓存器根据所述标签在控制表中查找对应的表项,将所述表项返回给所述控制设备。所述控制设备将所述表项加载到其处理器的buffer中。具体的,所述表项包括所述标签与分配给所述应用请求的资源量之间的对应关系。
步骤S203:所述控制设备根据所述标签以及预先保存的资源分配策略确定分配给所述应用请求的资源量。
步骤S204:与步骤S103相同。
本发明实施例可以由控制设备根据应用请求携带的标签,以及标签与分配给所述应用请求的资源量之间的对应关系,确定分配给所述应用请求的资源量,再指示计算机的组成部件根据所述分配给所述应用请求的资源量处理所述应用请求。因此,可以给不同的应用请求分配不同的资源量,由此提高服务质量。
下面介绍本发明实施例数据处理方法的另一种实施方式,如图10所示,所述方法包括:
步骤S301:与步骤S101相同。
步骤S302:与步骤S102相同以及与步骤S202-S203相同。
步骤S303:所述控制设备根据所述分配给所述应用请求的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,并将所述应用请求保存在所述分配给所述应用请求的资源量对应的队列中。
具体的,所述控制设备可以包括第二缓冲区,所述队列保存在第二缓冲区中(如图3或者图4或者图5所示的实施方式)。其中,所述第二缓冲区包含至少两个队列,其中,每个队列对应一定范围的资源量,并且每个队列的优先级不同。
步骤S304:所述控制设备的数据转发器(例如,图3-图5中的数据转发器600j)从所述应用请求对应的队列中获得所述应用请求,并转发给所述计算机的组成部件。
步骤S305:所述计算机的组成部件获得并且执行所述应用请求。
需要说明的是,步骤S304是一个可选的步骤,所述计算机的组成部件也可以直接从相应的队列中获得所述应用请求。
举例来说,所述第二缓冲区可以包括三个队列,分别是高优先级队列、中优先级队列和低优先级队列。其中,高优先级队列对应的资源量的比例值为70%-80%。假设所述应用请求分配到的资源量是76%,那么就将所述应用请求放入高优先级队列中。高优先级队列意味着处理顺序优先,或者处理的速度较快。所述计算机的组成部件可以优先从高优先级队列中获得所述应用请求,予以执行。可选的,所述控制设备还可以参考其他因素,例如所述应用请求当前已使用的资源量,来考虑将所述应用请求放入哪个队列。在本申请文件中不一一对应用场景进行描述了。
可以理解的是,每个队列中可能都包含有多个待处理的应用请求,对于每个队列里的多个待处理的应用请求,所述计算机的组成部件可以按照先进先出的原则或者其他原则进行处理。
另外,所述控制设备在将所述应用请求放入相应的队列之后,也可以继续由所述控制设备依次从该队列中取出应用请求(当该队列中有多个应用请求时),再发送给所述计算机的组成部件处理该应用请求。
本发明实施例可以由控制设备根据应用请求携带的标签,以及标签与分配给所述应用请求的资源量之间的对应关系,确定分配给所述应用请求的资源量,根据所述分配给所述应用请求的资源量将所述应用请求放入相应的队列中,再从所述应用请求对应的队列中获得所述应用请求发送给数据转发器,由数据转发器将所述应用请求转发给计算机的组成部件执行,由此提高了服务质量。
可选的,在图8或者图9或者图10所示的数据处理方法的实施方式中,还可以包括如下步骤:
应用请求执行完毕之后,计算机的组成部件可以向操作系统反馈消息,以说明该应用请求已处理完毕。此时,可以通过节点管理软件向控制设备发送资源回收消息,所述资源回收消息用以删除控制设备中的资源分配策略。
下面以处理一个视频播放的应用请求为例来进一步说明图8-图10的处理流程。
步骤1:用户点击本地计算机中的一个视频文件。
步骤2:CPU生成一个内存访问请求,用以读取所述视频文件。
步骤3:CPU将所述内存访问请求打上标签,并且将带有标签的内存访问请求发送给内存上的控制设备。
步骤4:内存上的控制设备根据标签确定分配给所述内存访问请求的内存空间,进而根据分配的内存空间将所述内存访问请求放入相应的队列。
步骤5:内存上的控制设备从队列中取出所述内存访问请求,发送给内存,用以执行该内存访问请求。
步骤6:内存加载该视频文件之后,给CPU发送一个响应。
步骤7:CPU从内存中获得该视频文件,并且给GPU发送硬件加速请求,要求GPU对所述视频文件进行硬件解码,所述硬件加速请求携带有所述视频文件和标签。
步骤8:GPU上的控制设备根据标签确定分配给所述视频文件的硬件加速资源量,进而根据分配的硬件加速资源量将所述硬件加速请求放入相应的队列。
步骤9:GPU上的控制设备从队列中取出所述硬件加速请求,发送给GPU。
步骤10:GPU根据所述硬件加速请求对所述视频文件进行硬件加速处理。
步骤11:GPU处理完毕之后,如果不需要再对所述视频文件进行其他处理,可以向南桥(例如,图1或图2所示的I/O控制网络)发送输出请求,所述输出请求包括经过硬件加速处理的视频文件以及标签。
步骤12:南桥上的控制设备根据标签确定分配给所述视频文件的带宽,进而根据分配的带宽将所述输出请求放入相应的队列。
步骤13:南桥从队列中取出所述视频文件,发送给显示器。
步骤14:显示器显示所述视频文件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种计算机,其特征在于,所述计算机包括处理单元、第一控制设备和第二控制设备;
所述第一控制设备直接耦合于所述计算机的第一组成部件,所述第二控制设备直接耦合于所述计算机的第二组成部件,所述第一组成部件和所述第二组成部件包括片上高速互连网络、缓存、内存、图形处理器、显存、I/O互连网络、磁盘、网卡、显示器中的任意一个;
所述处理单元用于给应用请求增加标签,将增加标签后的应用请求发送给所述第一控制设备和所述第二控制设备;
所述第一控制设备用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的第一资源分配策略确定分配给所述应用请求的第一资源量;所述第一控制设备还用于指示与所述第一控制设备直接耦合的所述计算机的第一组成部件根据所述分配给所述应用请求的第一资源量,处理所述应用请求;
所述第二控制设备用于接收所述应用请求,根据所述标签以及预先保存的第二资源分配策略确定分配给所述应用请求的第二资源量;所述第二控制设备还用于指示与所述第二控制设备直接耦合的所述计算机的第二组成部件根据所述分配给所述应用请求的第二资源量,处理所述应用请求。
2.根据权利要求1所述的计算机,其特征在于,所述第一控制设备还包括缓冲区,其中,所述缓冲区包含至少两个队列,其中,每个队列对应一定范围的资源量,并且每个队列的优先级不同;
所述第一控制设备具体用于根据所述分配给所述应用请求的资源量,从所述至少两个队列中,选择所述应用请求对应的队列,并将所述应用请求保存在所述应用请求对应的队列中;
所述计算机的第一组成部件用于按照所述每个队列的优先级分别处理所述缓冲区中的队列。
3.根据权利要求1所述的计算机,其特征在于,所述第一控制设备具体包括处理器和高速缓存器,所述高速缓存器中存储有所述第一资源分配策略;
所述处理器还用于从所述高速缓存器中获取所述第一资源分配策略;所述处理器具体用于接收所述增加标签后的应用请求,根据所述标签以及预先保存的第一资源分配策略确定分配给所述应用请求的资源量,所述第一资源分配策略包括所述标签与分配给所述应用请求的第一资源量之间的对应关系;以及指示与所述第一控制设备耦合的所述计算机的第一组成部件根据所述分配给所述应用请求的资源量,处理所述应用请求。
4.根据权利要求3所述的计算机,其特征在于,所述第一资源分配策略包括控制表,所述控制表包括多个表项,所述多个表项中的一个表项包括所述标签与分配给所述应用请求的资源量之间的对应关系;
所述处理器具体用于向所述高速缓存器发送查询指令,所述查询指令中包括所述标签;
所述高速缓存器用于根据所述查询指令获得所述标签对应的表项,并将所述标签对应的表项发送给所述第一控制设备的处理器。
5.根据权利要求3或4所述的计算机,其特征在于,所述计算机还包括存储器,所述存储器中存储有节点管理软件;
所述处理单元还用于通过所述节点管理软件定义所述第一资源分配策略;
所述处理器还用于从所述节点管理软件获取所述第一资源分配策略,并将所述第一资源分配策略写入所述高速缓存器中。
6.根据权利要求5所述的计算机,其特征在于,所述处理单元还包括标签寄存器;
所述处理单元还用于通过所述节点管理软件定义所述标签,并通过所述节点管理软件将所述标签写入所述标签寄存器;
所述处理单元还用于从所述标签寄存器中读取所述标签。
7.一种数据处理方法,其特征在于,包括:
第一控制设备接收携带标签的应用请求;
所述第一控制设备根据所述标签以及预先保存的第一资源分配策略确定分配给所述应用请求的第一资源量,其中,所述第一控制设备直接耦合于计算机的第一组成部件,所述第一组成部件包括片上高速互连网络、缓存、内存、图形处理器、显存、I/O互连网络、磁盘、网卡、显示器中的任意一个;
所述第一控制设备指示与所述第一控制设备直接耦合的所述计算机的第一组成部件根据所述分配给所述应用请求的第一资源量,处理所述应用请求;
第二控制设备接收所述应用请求;
所述第二控制设备根据所述标签以及预先保存的第二资源分配策略确定分配给所述应用请求的第二资源量,其中,所述第二控制设备直接耦合于计算机的第二组成部件;
所述第二控制设备指示与所述第二控制设备直接耦合的所述计算机的第二组成部件根据所述分配给所述应用请求的第二资源量,处理所述应用请求。
8.根据权利要求7所述的方法,其特征在于,所述第一控制设备还包括缓冲区,其中,所述缓冲区包含至少两个队列,其中,每个队列对应一定范围的第一资源量,并且每个队列的优先级不同;
所述第一控制设备指示与所述第一控制设备耦合的所述计算机的第一组成部件根据所述分配给所述应用请求的第一资源量,处理所述应用请求包括:
所述第一控制设备根据所述分配给所述应用请求的第一资源量,从所述至少两个队列中,选择所述应用请求对应的队列,并将所述应用请求保存在所述应用请求对应的队列中,使得所述第一组成部件按照所述每个队列的优先级分别处理所述缓冲区中的队列。
9.根据权利要求7所述的方法,其特征在于,所述第一控制设备还包括处理器和高速缓存器,所述高速缓存器中存储有所述第一资源分配策略;
所述方法还包括:所述处理器从所述高速缓存器中获取所述第一资源分配策略;
所述第一控制设备根据所述标签以及预先保存的第一资源分配策略确定分配给所述应用请求的第一资源量包括:
所述处理器根据所述标签以及预先保存的第一资源分配策略确定分配给所述应用请求的第一资源量,所述第一资源分配策略包括所述标签与分配给所述应用请求的第一资源量之间的对应关系;
所述第一控制设备指示与所述第一控制设备耦合的所述计算机的第一组成部件根据所述分配给所述应用请求的第一资源量,处理所述应用请求包括:
所述处理器指示与所述第一控制设备耦合的所述计算机的第一组成部件根据所述分配给所述应用请求的第一资源量,处理所述应用请求。
10.根据权利要求9所述的方法,其特征在于,所述第一资源分配策略包括控制表,所述控制表包括多个表项,所述多个表项中的一个表项包括所述标签与分配给所述应用请求的第一资源量之间的对应关系;
所述处理器从所述高速缓存器中获取所述第一资源分配策略包括:所述处理器向所述高速缓存器发送查询指令,所述查询指令中包括所述标签;
所述高速缓存器根据查询指令获得所述标签对应的表项,并将所述标签对应的表项发送给所述处理器。
11.根据权利要求9或10的方法,其特征在于,所述第一资源分配策略是由所述计算机通过节点管理软件定义的,其中,所述节点管理软件存储在所述计算机的存储器中;所述方法还包括:
所述处理器从所述节点管理软件获取所述第一资源分配策略。
CN201410682375.0A 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法 Active CN105094983B (zh)

Priority Applications (14)

Application Number Priority Date Filing Date Title
CN202010307634.7A CN111666148A (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法
CN201410682375.0A CN105094983B (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法
JP2016553382A JP6475256B2 (ja) 2014-04-30 2015-02-10 コンピュータ、制御デバイス及びデータ処理方法
SG11201605623PA SG11201605623PA (en) 2014-04-30 2015-02-10 Computer, control device, and data processing method
KR1020167019031A KR101784900B1 (ko) 2014-04-30 2015-02-10 컴퓨터, 제어 장치 그리고 데이터 처리 방법
RU2016134457A RU2651219C2 (ru) 2014-04-30 2015-02-10 Компьютер, устройство управления и способ обработки данных
EP15785332.6A EP3076296A4 (en) 2014-04-30 2015-02-10 Computer, control device and data processing method
AU2015252673A AU2015252673B2 (en) 2014-04-30 2015-02-10 Computer, control device and data processing method
BR112016016326-5A BR112016016326B1 (pt) 2014-04-30 2015-02-10 Computador, dispositivo de controle, e método de processamento de dados
PCT/CN2015/072672 WO2015165298A1 (zh) 2014-04-30 2015-02-10 计算机,控制设备和数据处理方法
MX2016011157A MX360278B (es) 2014-04-30 2015-02-10 Computadora, dispositivo de control y metodo de procesamiento de datos.
CA2935114A CA2935114C (en) 2014-04-30 2015-02-10 Computer, control device, and data processing method
PH12016501374A PH12016501374A1 (en) 2014-04-30 2016-07-12 Computer, control device, and data processing method
US15/335,456 US10572309B2 (en) 2014-04-30 2016-10-27 Computer system, and method for processing multiple application programs

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410182148 2014-04-30
CN2014101821481 2014-04-30
CN201410682375.0A CN105094983B (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010307634.7A Division CN111666148A (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法

Publications (2)

Publication Number Publication Date
CN105094983A CN105094983A (zh) 2015-11-25
CN105094983B true CN105094983B (zh) 2020-04-28

Family

ID=54358145

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010307634.7A Pending CN111666148A (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法
CN201410682375.0A Active CN105094983B (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010307634.7A Pending CN111666148A (zh) 2014-04-30 2014-11-24 计算机,控制设备和数据处理方法

Country Status (13)

Country Link
US (1) US10572309B2 (zh)
EP (1) EP3076296A4 (zh)
JP (1) JP6475256B2 (zh)
KR (1) KR101784900B1 (zh)
CN (2) CN111666148A (zh)
AU (1) AU2015252673B2 (zh)
BR (1) BR112016016326B1 (zh)
CA (1) CA2935114C (zh)
MX (1) MX360278B (zh)
PH (1) PH12016501374A1 (zh)
RU (1) RU2651219C2 (zh)
SG (1) SG11201605623PA (zh)
WO (1) WO2015165298A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980463A (zh) * 2016-01-18 2017-07-25 中兴通讯股份有限公司 存储系统的服务质量控制方法和装置
US10621095B2 (en) * 2016-07-20 2020-04-14 International Business Machines Corporation Processing data based on cache residency
US10452395B2 (en) 2016-07-20 2019-10-22 International Business Machines Corporation Instruction to query cache residency
US10521350B2 (en) 2016-07-20 2019-12-31 International Business Machines Corporation Determining the effectiveness of prefetch instructions
US10169239B2 (en) 2016-07-20 2019-01-01 International Business Machines Corporation Managing a prefetch queue based on priority indications of prefetch requests
CN108123924B (zh) * 2016-11-30 2021-02-12 中兴通讯股份有限公司 一种资源管理方法及系统
US10936490B2 (en) * 2017-06-27 2021-03-02 Intel Corporation System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms
CN109582600B (zh) * 2017-09-25 2020-12-01 华为技术有限公司 一种数据处理方法及装置
CN109726005B (zh) * 2017-10-27 2023-02-28 伊姆西Ip控股有限责任公司 用于管理资源的方法、服务器系统和计算机可读介质
CN110968418A (zh) * 2018-09-30 2020-04-07 北京忆恒创源科技有限公司 基于信号-槽的大规模有约束并发任务的调度方法与装置
CN109542622A (zh) * 2018-11-21 2019-03-29 新华三技术有限公司 一种数据处理方法及装置
US10601740B1 (en) * 2019-04-03 2020-03-24 Progressive Casuality Insurance Company Chatbot artificial intelligence
PH12019050292A1 (en) * 2019-12-22 2021-11-08 Samsung Electronics Ltd Method for scaling gpu in the cloud
CN114945009B (zh) * 2022-02-24 2023-04-25 摩尔线程智能科技(北京)有限责任公司 PCIe总线连接的设备间进行通信的方法、设备及系统
CN114979131B (zh) * 2022-04-07 2024-04-19 中国科学院深圳先进技术研究院 面向云计算的标签化冯诺依曼体系结构通信方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289385A (zh) * 2010-06-16 2011-12-21 富士施乐株式会社 信息处理系统、管理设备、处理请求设备和信息处理方法
CN102334103A (zh) * 2009-02-25 2012-01-25 国际商业机器公司 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787469A (en) * 1996-09-06 1998-07-28 Intel Corporation System and method for exclusively writing tag during write allocate requests
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
US7058947B1 (en) * 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US6785756B2 (en) * 2001-05-10 2004-08-31 Oracle International Corporation Methods and systems for multi-policy resource scheduling
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
JP4071668B2 (ja) 2003-04-16 2008-04-02 富士通株式会社 システムの使用資源を調整する装置および方法
US20050016042A1 (en) * 2003-04-28 2005-01-27 Baratta Adam M. Motion picture memorabilia and method for promoting motion pictures using same
US7430741B2 (en) * 2004-01-20 2008-09-30 International Business Machines Corporation Application-aware system that dynamically partitions and allocates resources on demand
US7797699B2 (en) * 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
CN100479374C (zh) * 2005-04-25 2009-04-15 华为技术有限公司 网络通信中处理紧急业务的方法
GB0524008D0 (en) * 2005-11-25 2006-01-04 Ibm Method and system for controlling the processing of requests for web resources
JP4594877B2 (ja) * 2006-02-21 2010-12-08 株式会社日立製作所 計算機リソース割当管理方法および計算機リソース割当管理装置
JP2007272868A (ja) 2006-03-07 2007-10-18 Sony Corp 情報処理装置、情報通信システム、および情報処理方法、並びにコンピュータ・プログラム
CN101438256B (zh) * 2006-03-07 2011-12-21 索尼株式会社 信息处理设备、信息通信系统、信息处理方法
JP5061544B2 (ja) * 2006-09-05 2012-10-31 トヨタ自動車株式会社 燃料電池
CN100459581C (zh) 2006-09-21 2009-02-04 电子科技大学 一种用于实时混合业务环境的可变参数分组调度方法
US8458711B2 (en) * 2006-09-25 2013-06-04 Intel Corporation Quality of service implementation for platform resources
US8065682B2 (en) * 2007-02-27 2011-11-22 Microsoft Corporation Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools
US8886918B2 (en) * 2007-11-28 2014-11-11 International Business Machines Corporation Dynamic instruction execution based on transaction priority tagging
US8396929B2 (en) * 2008-07-02 2013-03-12 Sap Portals Israel Ltd. Method and apparatus for distributed application context aware transaction processing
EP2436222A4 (en) 2009-05-26 2014-11-26 Nokia Corp METHOD AND DEVICE FOR TRANSMITTING A MEDIA MEETING
EP2388700A3 (en) * 2010-05-18 2013-08-07 Kaspersky Lab Zao Systems and methods for policy-based program configuration
US8560897B2 (en) 2010-12-07 2013-10-15 International Business Machines Corporation Hard memory array failure recovery utilizing locking structure
CN102195882B (zh) * 2011-05-18 2016-04-06 深信服网络科技(深圳)有限公司 根据数据流应用类型选路的方法及装置
CN102958166B (zh) 2011-08-29 2017-07-21 华为技术有限公司 一种资源分配方法及资源管理平台
JP5884595B2 (ja) * 2012-03-29 2016-03-15 富士通株式会社 メッセージ通信方法,メッセージ通信プログラムおよびコンピュータ
CN102739770B (zh) * 2012-04-18 2015-06-17 上海和辰信息技术有限公司 一种基于云计算的资源调度方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102334103A (zh) * 2009-02-25 2012-01-25 国际商业机器公司 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器
CN102289385A (zh) * 2010-06-16 2011-12-21 富士施乐株式会社 信息处理系统、管理设备、处理请求设备和信息处理方法

Also Published As

Publication number Publication date
CN105094983A (zh) 2015-11-25
RU2016134457A3 (zh) 2018-03-01
JP6475256B2 (ja) 2019-02-27
PH12016501374B1 (en) 2016-08-15
EP3076296A1 (en) 2016-10-05
CN111666148A (zh) 2020-09-15
WO2015165298A1 (zh) 2015-11-05
RU2651219C2 (ru) 2018-04-18
AU2015252673A1 (en) 2016-07-28
US10572309B2 (en) 2020-02-25
KR101784900B1 (ko) 2017-10-12
BR112016016326B1 (pt) 2023-04-11
JP2017513096A (ja) 2017-05-25
PH12016501374A1 (en) 2016-08-15
SG11201605623PA (en) 2016-08-30
RU2016134457A (ru) 2018-03-01
KR20160098438A (ko) 2016-08-18
MX2016011157A (es) 2016-12-09
BR112016016326A2 (pt) 2017-08-08
CA2935114C (en) 2020-07-14
EP3076296A4 (en) 2017-01-25
MX360278B (es) 2018-10-26
CA2935114A1 (en) 2015-11-05
AU2015252673B2 (en) 2017-12-14
US20170046202A1 (en) 2017-02-16

Similar Documents

Publication Publication Date Title
CN105094983B (zh) 计算机,控制设备和数据处理方法
EP3125126B1 (en) Data processing system and data processing method
CN111490949B (zh) 用于转发数据包的方法、网卡、主机设备和计算机系统
CN112233217B (zh) 一种虚拟场景的渲染方法和装置
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US7774781B2 (en) Storage subsystem access prioritization by system process and foreground application identification
US8819125B2 (en) Method of transmitting data of USB device to server, and client terminal performing the method
WO2019228344A1 (zh) 资源配置方法、装置、终端及存储介质
US20190007339A1 (en) Method and device for managing stateful application on server
CN105743808A (zh) 一种适配QoS的方法和装置
CN104731635A (zh) 一种虚拟机访问控制方法,及虚拟机访问控制系统
CN105635613B (zh) 一种移动设备的录屏方法和装置
JP6788691B2 (ja) OpenFabricsにおけるスループットの改善
CN106933646B (zh) 一种创建虚拟机的方法及装置
CN116860391A (zh) Gpu算力资源调度方法、装置、设备和介质
KR102160252B1 (ko) 가상 스위칭 방법 및 장치
CN111290701B (zh) 数据读写控制方法、装置、介质和电子设备
KR20150048028A (ko) 데이터 전송 관리 방법
JP2023028375A (ja) 情報処理装置、情報処理方法、プログラム、及びシステム
CN113010457A (zh) 资源管理方法、装置及移动终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant