CN110096355B - 一种共享资源分配方法、装置和设备 - Google Patents

一种共享资源分配方法、装置和设备 Download PDF

Info

Publication number
CN110096355B
CN110096355B CN201810083342.2A CN201810083342A CN110096355B CN 110096355 B CN110096355 B CN 110096355B CN 201810083342 A CN201810083342 A CN 201810083342A CN 110096355 B CN110096355 B CN 110096355B
Authority
CN
China
Prior art keywords
shared resource
service class
storage medium
identifier
class identifier
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
CN201810083342.2A
Other languages
English (en)
Other versions
CN110096355A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810083342.2A priority Critical patent/CN110096355B/zh
Publication of CN110096355A publication Critical patent/CN110096355A/zh
Application granted granted Critical
Publication of CN110096355B publication Critical patent/CN110096355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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
    • G06F9/5016Allocation 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 the resource being the memory
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种共享资源分配方法、装置和设备,该方法包括:获取用于使用IO设备的IO进程对应的服务类标识;从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;根据所述共享资源参数为所述IO设备分配共享资源。通过本申请的技术方案,不是多个IO设备共同竞争共享资源,从而达到共享资源隔离的效果,避免多个IO设备之间的互相影响,提高了共享资源的利用率,避免了共享资源竞争对业务性能的影响,避免造成应用性能的抖动。

Description

一种共享资源分配方法、装置和设备
技术领域
本申请涉及互联网技术领域,尤其是一种共享资源分配方法、装置和设备。
背景技术
在计算机系统中,被多个应用程序、虚拟机或者容器使用的系统资源,可以是共享资源,如高速缓存、内存带宽、网络带宽等。其中,高速缓存可以为LLC(Last Level Cache,最后一级高速缓存),即最后一级易失性高速缓存,用于临时存取数据和指令。内存带宽可以为每秒内存取提供的访问吞吐量。
在计算机系统中,可以将共享资源分配给IO(Input Output,输入输出)设备,如果多个应用程序、虚拟机或者容器使用多个IO设备,那么,多个IO设备共同竞争这些共享资源。但是,当多个IO设备共同竞争共享资源时,无法进行共享资源的隔离,多个IO设备之间会互相影响,容易造成性能的抖动。
发明内容
本申请提供一种共享资源分配方法,所述方法包括:
获取用于使用IO设备的IO进程对应的服务类标识;
从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;
根据所述共享资源参数为所述IO设备分配共享资源。
本申请提供一种共享资源分配装置,所述装置包括:
获取模块,用于获取用于使用IO设备的IO进程对应的服务类标识,并从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;
分配模块,用于根据所述共享资源参数为所述IO设备分配共享资源。
本申请提供一种共享资源分配设备,包括:DMA控制器,用于获取用于使用IO设备的IO进程对应的服务类标识;从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;根据所述共享资源参数为所述IO设备分配共享资源。
基于上述技术方案,本申请实施例中,在IO进程(如应用程序、虚拟机或者容器等粒度的进程)使用IO设备时,可以基于IO进程的服务类标识对应的共享资源参数,为该IO设备分配共享资源,可以为该IO设备单独分配共享资源,实现共享资源的分配,而不是多个IO设备共同竞争共享资源,从而可以达到共享资源隔离的效果,避免多个IO设备之间的互相影响,提高了共享资源的利用率,避免了共享资源竞争对业务性能的影响,避免造成性能的抖动。
附图说明
图1是本申请一种实施方式中的共享资源分配方法的流程图;
图2是本申请一种实施方式中的IO设备侧共享资源分配的示意图;
图3是本申请另一种实施方式中的共享资源分配方法的流程图;
图4是本申请一种实施方式中的共享资源分配装置的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种共享资源分配方法,该方法可以应用于共享资源分配设备,该共享资源分配设备可以是具有IO设备的任意设备,如PC(Personal Computer,个人计算机)、笔记本电脑、移动终端、终端设备、服务器等,对此不做限制。此外,该IO设备可以包括但不限于:网卡、GPU(Graphics Processing Unit,图形处理器)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)等,对此IO设备不做限制,所有能够使用共享资源的IO设备均可以。
在一个例子中,共享资源可以包括但不限于高速缓存、内存带宽、网络带宽,对此不做限制。高速缓存可以为LLC,内存带宽可以为每秒内存取提供的访问吞吐量,网络带宽可以是在单位时间(如1秒钟)内能够能传输的数据量。
参见图1所示,为共享资源分配方法的流程图,该方法可以包括:
步骤101,获取用于使用IO设备的IO进程对应的服务类标识。
步骤102,从第一存储介质中获取与该服务类标识对应的共享资源参数;其中,该第一存储介质用于记录服务类标识与共享资源参数的对应关系。
步骤103,根据该共享资源参数为该IO设备分配共享资源。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
为区分方便,可以将使用IO设备的进程称为IO进程,且IO进程对应的服务类标识是IO进程的唯一标识,即不同IO进程的服务类标识不同,该服务类标识唯一表示该IO进程。其中,服务类标识可以由以下内容之一或者任意组合所组成:IO设备对应的域标识、总线标识、设备标识、IO进程对应的功能标识、进程地址空间标识。当然,上述内容只是服务类标识的示例,对此不做限制。
其中,域标识(即domain ID)可以是PCIE(Peripheral Component InterconnectExpress,快速外设部件互连标准)的域标识,且一个PCIE根集线器(PCIE root hub)可以对应一个域标识。例如,可以先确定IO设备所属的PCIE根集线器,然后,将该PCIE根集线器的域标识,确定为该IO设备对应的域标识。
其中,总线标识(即bus ID)可以是IO设备所在总线(即PCIE总线)的标识,且一个总线可以对应一个总线标识。例如,可以先确定IO设备所属的总线,然后,将该总线的总线标识,确定为该IO设备对应的总线标识。
其中,设备标识(即device ID)可以是IO设备的标识,且一个IO设备可以对应一个设备标识。例如,可以直接确定该IO设备对应的设备标识。
其中,功能标识(即function ID)可以是IO设备上某个功能的标识,且一个功能可以对应一个功能标识。具体的,IO设备可以提供多个功能,每个功能可以抽象成一个逻辑设备,并对应有一个功能标识。例如,当IO进程需要使用IO设备的麦克风功能时,则将麦克风功能确定为IO进程对应的功能标识。
其中,进程地址空间标识(即Process Address Space ID,简称PASID)可以是IO进程对应的进程标识,且IO进程可以对应一个进程地址空间标识。具体的,在PCIE协议中,可以使多个IO进程共享同一个PCIE功能,并为该PCIE功能提供独立的64位地址空间,这个地址空间就对应进程地址空间标识。基于此,在创建IO进程后,可以直接确定该IO进程对应的进程地址空间标识。
针对步骤101,在一个例子中,针对“获取用于使用IO设备的IO进程对应的服务类标识”的过程,可以包括但不限于如下方式:接收该IO设备发送的IO处理请求,然后,在执行与该IO处理请求对应的操作(如读操作或者写操作)时,可以从第二存储介质中获取该IO进程对应的服务类标识。
进一步的,在从第二存储介质中获取该IO进程对应的服务类标识之前,还可以包括:接收该IO设备发送的IO访问请求,该IO访问请求携带该IO进程对应的服务类标识,并将该服务类标识存储到第二存储介质。基于此,由于第二存储介质中包括IO进程对应的服务类标识,因此在执行与IO处理请求对应的操作时,可以从第二存储介质中获取IO进程对应的服务类标识。
在一个例子中,第二存储介质可以为DMA(Direct Memory Access,直接内存存)控制器的IOQR(Input Output Quality of Service Register,输入输出服务质量注册)寄存器,且第二存储介质只存储一个服务类标识。其中,每个DMA控制器可以对应一个第二存储介质,该第二存储介质用于存储服务类标识。
由于第二存储介质只存储一个服务类标识,即正在使用DMA控制器的IO进程的服务类标识,因此,可以从第二存储介质中获取该服务类标识。
针对步骤102,在一个例子中,在“从第一存储介质中获取与该服务类标识对应的共享资源参数”之前,还可以包括:在第一存储介质中记录服务类标识与共享资源参数的对应关系。具体的,在创建IO进程时,可以为该IO进程生成服务类标识;例如,可以确定IO进程需要使用的IO设备,并确定该IO设备对应的域标识、总线标识、设备标识,确定该IO进程对应的功能标识、进程地址空间标识,将该域标识、该总线标识、该设备标识、该功能标识、该进程地址空间标识组成服务类标识。此外,还可以为该IO进程分配共享资源参数,并在第一存储介质中记录该服务类标识与该共享资源参数的对应关系。
在上述实施例中,第一存储介质具体可以包括但不限于MASK(掩码)寄存器,且第一存储介质对应一个共享资源,即每种类型的共享资源可以对应一个第一存储介质。例如,共享资源“高速缓存”对应MASK寄存器A,所有使用共享资源“高速缓存”的IO进程,均在MASK寄存器A中查询共享资源参数。例如,共享资源“内存带宽”对应MASK寄存器B,所有使用共享资源“内存带宽”的IO进程,均在MASK寄存器B中查询共享资源参数,以此类推。
在上述实施例中,所述共享资源参数可以包括但不限于:共享资源比例,进一步的,共享资源比例可以为共享资源的Capability Bit Mask(能力位掩码),所述CapabilityBit Mask表示系统分配的共享资源的比例,本文称共享资源参数。
参见表1所示,为第一存储介质的一个示例,第一存储介质一共存在8列,每列对应的共享资源参数是12.5%。若通过服务类标识1查询第一存储介质,由于服务类标识1对应2列,因此,服务类标识1对应的共享资源参数为25%;若通过服务类标识2查询第一存储介质,由于服务类标识2对应1列,因此,服务类标识2对应的共享资源参数为12.5%;以此类推。
表1
当然,表1只是第一存储介质的示例,对此第一存储介质的内容不做限制,表1以8列为例进行说明,实际应用中,表1的列数可以更多,不做限制。
在为IO进程分配共享资源参数时,则可以将第7列分配给IO进程,在第7列记录IO进程对应的服务类标识5,表示共享资源参数为12.5%。或者,还可以将第1列分配给IO进程,在第1列记录IO进程对应的服务类标识5,表示共享资源参数为12.5%,服务类标识1对应的IO进程的共享资源参数从25%变更为12.5%。对于为IO进程分配共享资源参数的方式,不做限制。
在一个例子中,当IO进程被删除时,还可以从第一存储介质中删除服务类标识与共享资源参数的对应关系。例如,当服务类标识2对应的IO进程被删除时,还可以从第一存储介质中删除第3列的服务类标识2。
针对步骤103,在一个例子中,在将共享资源参数分配给IO设备后,该IO设备可以使用该共享资源参数对应的共享资源。例如,若共享资源参数为25%,则可以将总资源的25%分配给IO设备,即IO设备可以使用总资源的25%。
基于上述技术方案,本申请实施例中,在IO进程(如应用程序、虚拟机或者容器等粒度的进程)使用IO设备时,可以基于IO进程的服务类标识对应的共享资源参数,为该IO设备分配共享资源,可以为该IO设备单独分配共享资源,实现共享资源的分配,而不是多个IO设备共同竞争共享资源,从而达到共享资源隔离的效果,避免多个IO设备之间的互相影响,提高了共享资源的利用率,避免了共享资源竞争对业务性能的影响,避免造成性能的抖动。
以下结合具体应用场景,对上述技术方案进行详细说明。在本应用场景下,参见图2所示,为IO设备侧共享资源分配的示意图,在图2中,以两个DMA控制器为例,在实际应用中,DMA控制器的数量可以更多,对此不做限制。
DMA控制器1可以包括IOQR寄存器1,DMA控制器2可以包括IOQR寄存器2。IOQR寄存器1/IOQR寄存器2用于记录服务类标识。当然,IOQR寄存器1/IOQR寄存器2还可以记录其它内容,如RMID(Resource Monitoring ID,资源监控标识,用于监控共享资源,对此不再赘述)等,对此不做限制。
针对每个共享资源还可以维护第一存储介质(如MASK寄存器)。在图2中,针对共享资源“高速缓存”维护MASK寄存器“L3_QoS_MASK_nMSRs”,针对共享资源“内存带宽”维护MASK寄存器“MEM_BW_QoS_MASK_nMSRs”。
在上述应用场景下,以共享资源“内存带宽”为例进行说明,参见图3所示,为本申请实施例中提出的共享资源分配方法的流程图,该方法可以包括:
步骤301,在创建IO进程时,为该IO进程生成服务类标识。
其中,当应用程序、虚拟机或者容器等需要使用IO设备时,则可以创建IO进程,且这个IO进程是需要使用IO设备的进程。例如,IO进程通过使用IO设备,实现应用程序的相关功能;或者,IO进程通过使用IO设备,实现虚拟机的相关功能;或者,IO进程通过使用IO设备,实现容器的相关功能。
在创建IO进程后,可以确定IO设备对应的域标识、总线标识、设备标识、IO进程对应的功能标识、进程地址空间标识,并将该域标识、该总线标识、该设备标识、该功能标识、该进程地址空间标识组合成服务类标识。
步骤302,为上述IO进程分配共享资源参数(即共享资源比例),并在第一存储介质中记录该服务类标识与该共享资源参数的对应关系。
参见图2所示,假设服务类标识为服务类标识3,共享资源参数为共享资源参数5,则可以在MASK寄存器“MEM_BW_QoS_MASK_nMSRs”中记录服务类标识3和共享资源参数5的对应关系,对此过程不做限制。
综上所述,可以在第一存储介质中记录服务类标识与共享资源参数的对应关系,而且,服务类标识可以由域标识、总线标识、设备标识、功能标识、进程地址空间标识组成,可以代表某个具体的PCIE域、某个具体的总线、某个具体的IO设备、某个具体的功能、或者正在使用某个功能的具体进程。
在一个例子中,可以直接为IO进程分配共享资源参数,还可以将IO进程对应的服务类标识添加到某个IO QoS组(Group),并为IO QoS组分配共享资源参数。例如,直接为IO进程1分配共享资源参数5,表示IO进程1独自使用共享资源参数5对应的共享资源。或者,还可以将IO进程1对应的服务类标识3添加到IO QoS组1,并为IO QoS组1分配共享资源参数5,假设IO QoS组1包括服务类标识1、服务类标识2、服务类标识3,则表示服务类标识1对应的IO进程、服务类标识2对应的IO进程、服务类标识3对应的IO进程,共同使用共享资源参数5对应的共享资源。
针对将服务类标识添加到IO QoS组的方式,可以根据经验配置。例如,将第1-5个服务类标识添加到同一个IO QoS组1,将第6-10个服务类标识添加到同一个IO QoS组2,以此类推。又例如,将具有相同域标识的服务类标识添加到同一个IO QoS组。又例如,将具有相同总线标识的服务类标识添加到同一个IO QoS组。对此添加到IO QoS组的方式不做限制。
其中,上述步骤301和步骤302,可以由CPU(Central Processing Unit,中央处理器)实现,而且,可以是操作系统控制CPU实现的,对此不做限制。
步骤303,接收IO设备发送的IO访问请求,该IO访问请求可以携带IO进程对应的服务类标识,并将该服务类标识存储到第二存储介质。
其中,在创建需要使用IO设备的IO进程后,IO设备可以获取到IO进程的服务类标识(如IO进程通知给IO设备),并发送携带该服务类标识的IO访问请求,该IO访问请求表示需要访问共享资源“内存带宽”。
例如,在需要通过DMA控制器访问内存时,就可以发送需要访问共享资源“内存带宽”的IO访问请求,假设这个IO访问请求被发送给DMA控制器1。
DMA控制器1接收IO设备发送的IO访问请求,该IO访问请求携带IO进程对应的服务类标识3,并将服务类标识3存储到IOQR寄存器1。
由于DMA控制器1在同一时间,只能为一个IO进程提供服务,因此,IOQR寄存器1中只会存储一个服务类标识,因此,DMA控制器1删除IOQR寄存器1中的服务类标识1,表示不再为对应的IO进程服务,并将服务类标识3存储到IOQR寄存器1,表示为服务类标识3对应的IO进程服务。
步骤304,接收IO设备发送的IO处理请求,并在执行与该IO处理请求对应的操作时,从第二存储介质中获取IO进程对应的服务类标识。
当IO设备从共享资源“内存带宽”中读取数据时,可以发送IO处理请求,DMA控制器1在接收到该IO处理请求后,可以执行与该IO处理请求对应的读操作,即从共享资源“内存带宽”中读取数据。在从共享资源“内存带宽”中读取数据之前,DMA控制器1获取IOQR寄存器1中存储的服务类标识3。
当IO设备向共享资源“内存带宽”中写入数据时,可以发送IO处理请求,DMA控制器1在接收到该IO处理请求后,可以执行与该IO处理请求对应的写操作,即向共享资源“内存带宽”中写入数据。在向共享资源“内存带宽”中写入数据之前,DMA控制器1获取IOQR寄存器1中存储的服务类标识3。
步骤305,从第一存储介质中获取与该服务类标识对应的共享资源参数。
例如,DMA控制器1获取IOQR寄存器1中存储的服务类标识3后,由于MASK寄存器“MEM_BW_QoS_MASK_nMSRs”中记录服务类标识3和共享资源参数5的对应关系,因此,DMA控制器1可以获取到共享资源参数5。
步骤306,根据该共享资源参数为该IO设备分配共享资源。
例如,DMA控制器1为IO设备分配共享资源参数5对应的共享资源A,在从共享资源“内存带宽”中读取数据时,则读取数据所占用的是共享资源A,在向共享资源“内存带宽”中写入数据时,则写入数据所占用的是共享资源A。
在一个例子中,DMA控制器1还可以将该共享资源参数5通知给对应的CHA(Channel,信道),由CHA根据该共享资源参数5,实施特定约束的共享资源访问,如使用固定比例的内存带宽,以达到共享资源隔离的效果。
基于上述技术方案,本申请实施例中,在IO进程(如应用程序、虚拟机或者容器等粒度的进程)使用IO设备时,可以基于IO进程的服务类标识对应的共享资源参数,为该IO设备分配共享资源,可以为该IO设备单独分配共享资源,实现共享资源的分配,而不是多个IO设备共同竞争共享资源,从而达到共享资源隔离的效果,避免多个IO设备之间的互相影响,提高了共享资源的利用率,避免了共享资源竞争对业务性能的影响,避免造成性能的抖动。
在数据中心中,业务混合部署(在线离线混合部署)是提高资源利用率的有效手段,也是未来的趋势,而共享资源的隔离是混合部署场景中不可或缺的底层技术支撑,上述方案可以实现IO侧的共享资源隔离,为数据中心提供了更加完善的底层资源隔离技术支撑,避免了IO侧资源竞争对业务性能的影响。
由于不同的IO设备对应不同的服务类标识,因此,可以为不同的IO设备分别分配共享资源,避免不同的IO设备之间的竞争,实现共享资源隔离。
在一个例子中,针对为IO设备分配的共享资源,还可以分配给CPU进程,例如,获取用于使用逻辑CPU的CPU进程对应的服务类标识,从第一存储介质中获取与该服务类标识对应的共享资源参数,并根据该共享资源参数为该逻辑CPU分配共享资源。其中,服务类标识是CPU进程的唯一标识,即不同CPU进程的服务类标识不同,该服务类标识唯一表示CPU进程,如服务类标识可以为CLOSID(Class of Service ID,服务类标识),用于唯一表示某共享资源组,由系统软件来维护,对此服务类标识不做限制。
在上述实施例中,第一存储介质具体可以包括但不限于MASK寄存器。需要注意的是,IO进程和CPU进程可以使用相同的共享资源,如共享资源“高速缓存”等,而每个共享资源对应一个第一存储介质,因此,针对共享资源“高速缓存”,IO进程和CPU进程对应同一个第一存储介质,即,第一存储介质可以记录IO进程对应的服务类标识、CPU进程对应的服务类标识,如表1的第一存储介质,可以记录IO进程对应的服务类标识和CPU进程对应的服务类标识。
综上所述,由于CPU侧和IO侧使用同一个第一存储介质,因此,可以统一控制CPU侧使用的共享资源和IO侧使用的共享资源,达到全系统的完整的资源控制能力,避免了CPU和IO之间对共享资源的竞争。
基于与上述方法同样的申请构思,本申请实施例还提供一种共享资源分配装置,如图4所示,为所述共享资源分配装置的结构图,所述装置包括:
获取模块401,用于获取用于使用IO设备的IO进程对应的服务类标识,并从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;
分配模块402,用于根据所述共享资源参数为所述IO设备分配共享资源。
所述共享资源分配装置还包括(在图4中未视出):
处理模块,用于在创建IO进程时,为IO进程生成服务类标识,为IO进程分配共享资源参数,在所述第一存储介质中记录该服务类标识与该共享资源参数的对应关系。
所述获取模块401,具体用于在获取用于使用IO设备的IO进程对应的服务类标识的过程中,接收IO设备发送的IO处理请求,在执行与IO处理请求对应的操作时,从第二存储介质中获取所述IO进程对应的服务类标识;
所述获取模块401,还用于在从第二存储介质中获取所述IO进程对应的服务类标识之前,接收IO设备发送的IO访问请求,所述IO访问请求携带所述IO进程对应的服务类标识,并将所述服务类标识存储到第二存储介质。
在一个例子中,所述服务类标识由以下内容之一或者任意组合所组成:所述IO设备对应的域标识、总线标识、设备标识、所述IO进程对应的功能标识、进程地址空间标识。
基于与上述方法同样的申请构思,本申请实施例还提供一种共享资源分配设备,所述共享资源分配设备包括:
DMA控制器,用于获取用于使用IO设备的IO进程对应的服务类标识;从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;根据所述共享资源参数为所述IO设备分配共享资源。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
获取用于使用IO设备的IO进程对应的服务类标识;从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;根据所述共享资源参数为所述IO设备分配共享资源。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (12)

1.一种共享资源分配方法,其特征在于,所述方法包括:
获取用于使用IO设备的IO进程对应的服务类标识;
从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;其中,所述共享资源参数包括:共享资源比例;
根据所述共享资源参数为所述IO设备分配共享资源,以使所述IO设备使用所述共享资源比例对应的共享资源;以及,
获取用于使用逻辑CPU的CPU进程对应的服务类标识,从第一存储介质中获取与该服务类标识对应的共享资源参数,并根据该共享资源参数为所述逻辑CPU分配共享资源;其中,为所述IO设备分配的共享资源与为所述逻辑CPU分配共享资源相同,以使所述IO进程和所述CPU进程使用相同的共享资源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在创建IO进程时,为所述IO进程生成服务类标识;
为所述IO进程分配共享资源参数;
在第一存储介质中记录该服务类标识与该共享资源参数的对应关系。
3.根据权利要求1所述的方法,其特征在于,
所述获取用于使用IO设备的IO进程对应的服务类标识的过程,具体包括:
接收所述IO设备发送的IO处理请求,在执行与所述IO处理请求对应的操作时,从第二存储介质中获取所述IO进程对应的服务类标识。
4.根据权利要求3所述的方法,其特征在于,
所述从第二存储介质中获取所述IO进程对应的服务类标识之前,还包括:
接收所述IO设备发送的IO访问请求,所述IO访问请求携带所述IO进程对应的服务类标识,并将所述服务类标识存储到第二存储介质。
5.根据权利要求3或4所述的方法,其特征在于,所述第二存储介质具体为DMA控制器的IOQR寄存器,所述第二存储介质只存储一个服务类标识。
6.根据权利要求1或2所述的方法,其特征在于,所述服务类标识由以下内容之一或者任意组合所组成:所述IO设备对应的域标识、总线标识、设备标识、所述IO进程对应的功能标识、进程地址空间标识。
7.根据权利要求1所述的方法,其特征在于,
所述共享资源包括:高速缓存、内存带宽、网络带宽。
8.一种共享资源分配装置,其特征在于,所述装置包括:
获取模块,用于获取用于使用IO设备的IO进程对应的服务类标识,并从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;其中,所述共享资源参数包括:共享资源比例;
分配模块,用于根据所述共享资源参数为所述IO设备分配共享资源,以使所述IO设备使用所述共享资源比例对应的共享资源;
所述获取模块,还用于获取用于使用逻辑CPU的CPU进程对应的服务类标识,从第一存储介质中获取与该服务类标识对应的共享资源参数;
所述分配模块,还用于根据该共享资源参数为所述逻辑CPU分配共享资源;
其中,为所述IO设备分配的共享资源与为所述逻辑CPU分配共享资源相同,以使所述IO进程和所述CPU进程使用相同的共享资源。
9.根据权利要求8所述的装置,其特征在于,还包括:处理模块,用于在创建IO进程时,为所述IO进程生成服务类标识,为IO进程分配共享资源参数,在第一存储介质中记录该服务类标识与该共享资源参数的对应关系。
10.根据权利要求8所述的装置,其特征在于,
所述获取模块,具体用于在获取用于使用IO设备的IO进程对应的服务类标识的过程中,接收IO设备发送的IO处理请求,在执行与所述IO处理请求对应的操作时,从第二存储介质中获取所述IO进程对应的服务类标识;
所述获取模块,还用于在从第二存储介质中获取所述IO进程对应的服务类标识之前,接收IO设备发送的IO访问请求,所述IO访问请求携带所述IO进程对应的服务类标识,并将所述服务类标识存储到第二存储介质。
11.根据权利要求8或9所述的装置,其特征在于,所述服务类标识由以下内容之一或者任意组合所组成:所述IO设备对应的域标识、总线标识、设备标识、所述IO进程对应的功能标识、进程地址空间标识。
12.一种共享资源分配设备,其特征在于,所述设备包括:
DMA控制器,用于获取用于使用IO设备的IO进程对应的服务类标识;从第一存储介质中获取与所述服务类标识对应的共享资源参数;其中,所述第一存储介质用于记录服务类标识与共享资源参数的对应关系;其中,所述共享资源参数包括:共享资源比例;根据所述共享资源参数为所述IO设备分配共享资源,以使所述IO设备使用所述共享资源比例对应的共享资源;以及,
获取用于使用逻辑CPU的CPU进程对应的服务类标识,从第一存储介质中获取与该服务类标识对应的共享资源参数,并根据该共享资源参数为所述逻辑CPU分配共享资源;其中,为所述IO设备分配的共享资源与为所述逻辑CPU分配共享资源相同,以使所述IO进程和所述CPU进程使用相同的共享资源。
CN201810083342.2A 2018-01-29 2018-01-29 一种共享资源分配方法、装置和设备 Active CN110096355B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810083342.2A CN110096355B (zh) 2018-01-29 2018-01-29 一种共享资源分配方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810083342.2A CN110096355B (zh) 2018-01-29 2018-01-29 一种共享资源分配方法、装置和设备

Publications (2)

Publication Number Publication Date
CN110096355A CN110096355A (zh) 2019-08-06
CN110096355B true CN110096355B (zh) 2024-04-09

Family

ID=67442805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810083342.2A Active CN110096355B (zh) 2018-01-29 2018-01-29 一种共享资源分配方法、装置和设备

Country Status (1)

Country Link
CN (1) CN110096355B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541646A (zh) * 2020-03-24 2020-08-14 成都国泰网信科技有限公司 一种增强密码机安全服务接入能力的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703676A (zh) * 2002-01-12 2005-11-30 英特尔公司 基于进程事件的信号量系统
US20130055284A1 (en) * 2011-08-29 2013-02-28 Cisco Technology, Inc. Managing shared computer resources
CN104461958A (zh) * 2014-10-31 2015-03-25 杭州华为数字技术有限公司 支持sr-iov的存储资源访问方法、存储控制器及存储设备
CN104937584A (zh) * 2012-12-19 2015-09-23 赛门铁克公司 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量
CN106155764A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703676A (zh) * 2002-01-12 2005-11-30 英特尔公司 基于进程事件的信号量系统
US20130055284A1 (en) * 2011-08-29 2013-02-28 Cisco Technology, Inc. Managing shared computer resources
CN104937584A (zh) * 2012-12-19 2015-09-23 赛门铁克公司 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量
CN104461958A (zh) * 2014-10-31 2015-03-25 杭州华为数字技术有限公司 支持sr-iov的存储资源访问方法、存储控制器及存储设备
CN106155764A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置

Also Published As

Publication number Publication date
CN110096355A (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
EP3608769B1 (en) Apparatus and method for providing quality of service over a virtual interface for solid-state storage
CN107690622B9 (zh) 实现硬件加速处理的方法、设备和系统
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
CN107196982B (zh) 一种用户请求的处理方法和装置
US20190243757A1 (en) Systems and methods for input/output computing resource control
US20080209168A1 (en) Information Processing Apparatus, Process Control Method, and Computer Program
CN105183565A (zh) 计算机、服务质量控制方法及装置
KR20210095690A (ko) 리소스 관리 방법과 장치, 전자 디바이스 및 기록 매체
CN104636186A (zh) 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
CN113051195A (zh) 存储器、gpu及电子设备
KR20130106392A (ko) 다수의 메모리 채널들을 가진 컴퓨팅 시스템에서의 메모리 버퍼들의 할당
WO2018090606A1 (zh) 数据存储方法及装置
CN114302040B (zh) 多应用共享单一摄像头的方法及相关产品
JP2015148921A (ja) 半導体装置、プロセッサシステム、及びその制御方法
CN109857553B (zh) 内存管理方法及装置
CN113296926A (zh) 一种资源分配方法、计算设备及存储介质
CN110096355B (zh) 一种共享资源分配方法、装置和设备
CN112395220B (zh) 共享存储控制器的处理方法、装置、系统及存储控制器
CN110879748B (zh) 一种共享资源分配方法、装置和设备
US9146693B2 (en) Storage control device, storage system, and storage control method
US20100153678A1 (en) Memory management apparatus and method
US20200201691A1 (en) Enhanced message control banks
CN114090249A (zh) 资源分配方法、装置、电子设备及存储介质
WO2017133421A1 (zh) 一种多租户资源共享的方法及装置
TWI574158B (zh) 具應用程式資訊感知的資料處理方法以及系統

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