CN115605846A - 用于在多核处理器中管理可共享资源的设备和方法 - Google Patents

用于在多核处理器中管理可共享资源的设备和方法 Download PDF

Info

Publication number
CN115605846A
CN115605846A CN201980029692.3A CN201980029692A CN115605846A CN 115605846 A CN115605846 A CN 115605846A CN 201980029692 A CN201980029692 A CN 201980029692A CN 115605846 A CN115605846 A CN 115605846A
Authority
CN
China
Prior art keywords
core
processing core
release
resources
shareable
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.)
Pending
Application number
CN201980029692.3A
Other languages
English (en)
Inventor
马汉特斯·马利卡伦·科蒂瓦勒
曼朱纳特·贾拉姆
塔米拉拉苏·S
斯里尼瓦萨·拉奥·科拉
尤纳斯·拉希德
安达瓦普·卡尔蒂克
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115605846A publication Critical patent/CN115605846A/zh
Pending legal-status Critical Current

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
    • 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/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/5022Mechanisms to release resources
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/544Buffers; Shared memory; Pipes

Landscapes

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

Abstract

本文的实施例公开了一种用于在多核处理器中管理可共享资源的设备和方法。本文的实施例涉及计算机系统,并且更具体地,涉及使数据流并行化以用于计算机系统内的分布式处理。所述方法包括:通过在每个处理核的专用释放子队列中释放指派的可共享资源来提供对多处理核或单个处理核中的可共享资源的无锁访问,以支持可共享资源的跨核解除分配。所述方法包括:监视每个存储器池的占用水平,并且在不锁定可共享资源的情况下动态地调整每个池的分配。

Description

用于在多核处理器中管理可共享资源的设备和方法
技术领域
本公开涉及计算机系统。并且更具体地,本公开涉及使数据流并行化以用于计算机系统内的分布式处理。
背景技术
当前,包括多核处理器平台(诸如非对称多处理模式(AMP)、对称多处理(SMP)模式和绑定多处理(BMP)模式)的可编程计算机系统可能需要对可共享资源的并发访问的有效管理。通常,操作系统(OS)或实时操作系统(RTOS)可提供处理器间通信(IPC)方法。此外,OS/RTOS可提供跨核的资源锁定方法(诸如自旋锁),并且OS/RTOS可提供跨核内的线程的资源锁定方法(诸如信号标、核内锁(int-lock)),以避免对共享资源(诸如外围端口、存储器等)的并发访问。此外,对于多核处理器的动态资源管理可能需要处理元数据(诸如资源可用性信息),其中,元数据可以是共享资源。常规方法可通过锁定(诸如核内锁、信号标和自旋锁)来处理可共享资源。然而,常规锁定方法可能影响性能。频繁的资源锁定和等待解锁会影响多核系统/处理器中的并行性。此外,核/线程可能不完全利用专用存储器,从而浪费可用存储器。
因此,将参照如下的图1a至图3b描述根据现有技术的用于在单核处理器和多核处理器中访问可共享资源的常规方法。
图1a示出常规单核处理器访问可共享资源的框图。单个处理器核可具有将被运行的多个线程。此外,单个数据存储器池和单个元数据文件被分配以用于单核处理器运行线程。此外,由处理器进行的存储器分配和解除分配可能需要具有核内锁(即,中断锁)以用于保护临界区(critical section)(诸如元数据文件)。可跨越多个线程保护元数据文件。
图1b和图1c是描绘由单核处理器访问可共享资源的常规方法的流程图。
存储器分配/解除分配可能需要具有核内锁(即,中断锁)和核间锁(即,自旋锁)两者以用于保护临界区(诸如元数据)。在获取核内锁步骤,处理器可禁用中断并且可不允许另一线程运行。在释放核内锁步骤(图1c中所示),处理器可允许等待线程恢复并再次从获取核内锁开始。标记为“A”的步骤可以是临界区。在临界区中,处理器可一次允许一个线程,并且其它线程可能需要在获取核内锁步骤等待。
图2a示出常规多核处理器访问可共享资源的框图。
具有每个核的多核处理器可具有将被运行的多个线程。多核处理器可被分配有单个数据存储器池和单个元数据文件以运行多个线程。此外,存储器分配和解除分配可能需要具有核间锁(即,自旋锁)和核内锁(即,中断锁)以用于保护临界区(诸如元数据文件)。锁可影响多核处理器中的并行性。
图2b示出常规多核处理器访问针对处理器的每个核的专用元数据文件中的可共享资源的框图。
元数据文件可针对处理器的每个核被分配。此外,每个线程可在访问专用元数据文件时应用核内锁。然而,在临界区(诸如元数据文件)的解除分配或释放期间,可能需要核间锁来保护元数据。
图2c示出常规多核处理器基于跨核释放访问可共享资源的框图。
在跨核释放场景中,核-0可从与核-0相关联的存储器池-0分配1个存储器块。关于分配的存储器块的信息可由核-0更新到与核-0相关联的元数据-0文件。此外,核-0可将存储器块数据共享给核-1。然而,在临界区(诸如元数据文件)的解除分配或释放期间,可能需要核间锁来保护元数据。
图2d示出常规多核处理器访问同一元数据块以分配存储器块的框图。
在跨核释放场景中,核-1可将与核-0共享的块-0释放到元数据-0块。同时,核-0可尝试通过访问元数据-0文件/块来将另一块分配给另一核。然而,元数据-0仍然可以是公共/可共享资源和临界区。因此,可能无法避免核间锁(即,自旋锁)。
图3a和图3b是描绘用于由多核处理器进行分配和释放的常规方法的流程图。为了在解除属于不同核的指针的情况下访问忙碌列表和空闲列表,常规方法可能需要保护临界区元数据,从而专用资源可能不利于多核实现并行。在标记为“B”的临界区(图3a和图3b中所示)中,核-0中的线程_1可获取核内锁并且可获取自旋锁。因此,核0中的其它线程可能需要等待释放核内锁。此外,核-1、核-2和核-3可能需要等待释放自旋锁。
在常规方法中,动态存储器管理解决方案可使用每核/每线程静态资源(存储器)分配来处理传入数据流块并释放数据流块。因此,由处理器进行的分配可使用静态分配并且由相同的核/线程释放资源(存储器)。然而,如果由特定核分配的资源被其它核解除分配/释放,则对公共/可共享资源的访问可能具有访问冲突。
然而,常规方法不可以从一个核/线程进行分配并且由另一核/线程释放存储器/缓冲器。在多线程/多核系统的情况下,常规方法不可以具有动态缓冲器访问和释放。
发明内容
技术问题
已经做出本公开以至少解决上述问题和/或缺点并且至少提供下面描述的优点。因此,本公开的一方面在于提供一种用于在计算环境中管理与多核处理器相关联的可共享资源的设备和方法。
本公开的另一方面在于提供用于通过具有每核/每线程专用资源池和元数据来在多核处理器中进行资源管理的设备和方法。
本公开的另一方面在于提供用于使用具有排他子队列集合的专用释放队列管理来对资源进行跨核解除分配的设备和方法。
本公开的另一方面在于提供用于监视每个存储器池的占用水平并且以无锁方式动态地调整每个池的分配的设备和方法。
技术方案
因此,本文的实施例提供一种用于在多核处理器中管理可共享资源的方法。所述方法包括:由目标处理核访问与源处理核相关联的可共享资源。源处理核和目标处理核驻留在多核处理器中。所述方法包括:由源处理核基于访问的可共享资源在与源处理核的释放队列中生成与至少一个目标处理核中的每个目标处理核相应的多个释放子队列,以释放由源处理核指派给所述目标处理核的可共享资源。所述方法包括:基于分析与可共享资源相关的第一信息,由所述目标处理核将至少一个访问的可共享资源释放到在源处理核的释放队列中的生成的各自的多个释放子队列。与可共享资源相关的第一信息被存储在元数据文件中。所述方法包括:由源处理核基于识别出释放队列中的可共享资源的释放,更新存储的与源处理核相应的元数据文件中的第二信息。
因此,本文的实施例提供一种用于在多核处理器中管理可共享资源的设备。所述设备被配置为由目标处理核访问与源处理核相关联的可共享资源。所述设备被配置为:由源处理核基于访问的可共享资源,在与源处理核的释放队列中生成与至少一个目标处理核中的每个目标处理核相应的多个释放子队列,以释放由源处理核指派给目标处理核的可共享资源。所述设备被配置为:由目标处理核基于分析与可共享资源相关的第一信息,将至少一个访问的可共享资源释放到源处理核的释放队列中的生成的各自的多个释放子队列,其中,与可共享资源相关的第一信息被存储在元数据文件中。所述设备被配置为:由源处理核基于识别出释放队列中的可共享资源的释放,更新存储的与源处理核相应的元数据文件中的第二信息。
本文的示例实施例的这些和其它方面当结合以下描述和附图被考虑时,将被更好地领会和理解。然而,应理解,以下描述在指示示例实施例及其许多具体细节时通过说明而非限制的方式被给出。在不脱离本文的精神的情况下,可在本文的示例实施例的范围内进行许多改变和修改,并且本文的示例实施例包括所有这样的修改。
附图说明
根据以下结合附图进行的详细描述,本公开的特定实施例的以上和其它方面、特征和优点将更加明显,其中:
图1a示出常规单核处理器访问可共享资源的框图;
图1b和图1c是描绘由单核处理器访问可共享资源的常规方法的流程图;
图2a示出常规多核处理器访问可共享资源的框图;
图2b示出常规多核处理器访问针对处理器的每个核的专用元数据文件中的可共享资源的框图;
图2c示出常规多核处理器基于跨核释放访问可共享资源的框图;
图2d示出常规多核处理器访问同一元数据块以分配存储器块的框图;
图3a和图3b是描绘用于由多核处理器进行分配和释放的常规方法的流程图;
图4示出根据本公开的实施例的用于在计算环境中在多核处理器中管理可共享资源的设备;
图5a示出根据本公开的实施例的用于使用针对多核处理器的每个核的单个释放队列来管理可共享资源的框图;
图5b示出根据本公开的实施例的用于使用针对多核处理器的每个核的多个释放子队列来管理可共享资源的框图;
图6a是描绘根据本公开的实施例的用于在释放队列中添加指针的方法的流程图;
图6b是描绘根据本公开的实施例的用于释放在释放队列中的指针的方法的流程图;
图7a是描绘根据本公开的实施例的用于使用每核和/或每线程专用资源池进行跨核分配的方法的流程图;
图7b是描绘根据本公开的实施例的用于使用每核和/或每线程专用释放队列进行跨核释放的方法的流程图;
图8a是描绘根据本公开的实施例的用于动态池调整的方法的流程图;
图8b是描绘根据如本文公开的实施例的用于动态池调整的步骤的流程图;
图9a是描绘根据本公开的实施例的用于在多核处理器中管理相关联的可共享资源的方法的流程图;
图9b是描绘根据本公开的实施例的用于确定访问的至少一个可共享资源是否与源处理核相应的方法的流程图;
图9c是描绘根据本公开的实施例的用于在动态池调整期间将源处理核的可共享资源推送到空闲列表中标记的释放子队列的方法的流程图;以及
图9d是描绘根据本公开的实施例的用于由源处理核更新与源处理核相应的元数据文件的方法的流程图。
在整个附图中,相同的参考标号将被理解为指相同的部件、组件和结构。
具体实施方式
参照在附图中示出并且在以下描述中详述的非限制性实施例更全面地解释本文的示例实施例及其各种特征和有利细节。省略了对公知组件和处理技术的描述,以免不必要地模糊本文的实施例。本文的描述仅旨在有助于对可实践本文的示例实施例的方式的理解,并且进一步使得本领域技术人员能够实践本文的示例实施例。因此,本公开不应被解释为限制本文的示例实施例的范围。
本文的实施例实现一种用于通过生成专用释放子队列来在多核处理器中管理可共享资源的设备和方法。现在参照附图,并且更具体地参照图4至图9d,其中,在图4至图9d中,类似的参考字符在存在示出的示例实施例的图中一致地表示相应的特征。
图4示出根据本公开的实施例的用于在多核处理器102中管理可共享资源的设备100。
设备100可以是服务器、台式计算机、手持装置、多处理器系统、基于微处理器的可编程消费电子产品、膝上型电脑、网络计算机、小型计算机、大型计算机、调制解调器、车辆信息娱乐系统、消费电子产品等中的至少一个,但不限于此。设备100可包括多核处理器102和存储器104。存储器104可以是静态存储器、动态存储器、闪存、高速缓冲存储器、随机存取存储器(RAM)等中的至少一个,但不限于此。
处理器102或多核处理器102可包括多个核,诸如源处理核102a和至少一个目标处理核102b。源处理核102a可以是核0、核1、核2、核3等中的至少一个。目标处理核可以是核0、核1、核2、核3等中的至少两个。源处理核102a可为多核处理器102的每个核指派专用存储器块。存储器104可包括可共享资源,诸如但不限于元数据、数据流、分组等中的至少一个。此外,设备100可包括存储在静态存储器或静态数组中的释放指针。释放指针可具有专用于多核处理器102的每个核的一个或更多个释放队列。释放队列还可具有专用释放子队列,诸如用于处理器102或多核处理器102的每个核的入口队列。
此外,设备可包括通过总线(未示出)连接的输入接口(未示出)和输出接口(未示出),其中,总线可表示一个或更多个系统总线和/或外围总线。设备100和多核处理器102的数据源可以是来自应用、数据库、计算机网络、科学仪器、实时视频捕获装置等的分组数据中的至少一个,但不限于此。设备100还可包括易失性存储器和/或非易失性存储器(未示出)、可移除介质和/或不可移除介质、处理器可读指令、数据结构、程序模块、其它数据等。易失性存储器和/或非易失性存储器包括以下项中的至少一项:随机存取存储器(RAM)、只读存储器(ROM)、EEPROM、闪存、CD-ROM、数字通用盘或其它光学存储器、磁性卡带、磁带、磁盘存储器或其它磁存储装置、或者可用于存储期望的信息并且可由源处理核102a和/或至少一个目标处理核102b访问的任何其它介质,但不限于此。
设备100中的闪存或其它形式的固定或可移除存储介质可用于存储期望的可编程指令和程序数据,并且可由诸如源处理核102a和至少一个目标处理核102b的核访问。此外,设备100的操作系统(OS)/实时操作系统(RTOS)可允许划分存储器104的物理地址空间以管理可共享资源。存储器104可许可多个并发读取/写入操作。
操作系统(OS)/实时操作系统(RTOS)可包括诸如但不限于内核处理模块、线程管理模块、进程管理模块、输入/输出(“I/O”)管理模块、存储器管理模块等的子模块中的至少一个。进程管理模块可通过初始化、调度和切换进程来执行多任务以用于OS访问多核处理器102的核。线程管理模块可管理应用线程的实例化和运行,其中,应用线程包括多核处理器102的接收线程和发送线程。例如,线程管理模块可在多核处理器102的核之间分配用于运行的线程。存储器管理模块可控制由存储器104提供的物理地址空间的分配、使用和解除分配。
有利地,本文的实施例的至少一方面使得能够在工作负载管理器(未示出)的指导下跨逻辑分区动态地重新分配可共享资源。可共享资源可包括CPU(中央处理器)资源、逻辑处理器资源、输入/输出资源、协同处理器资源、信道资源、网络适配器、存储器资源、音频、显示器、公共外设、串行端口、并行端口等中的至少一个,但不限于此。在示例中,在任务的运行期间,存储器管理器模块通常可分配堆栈和堆以用于分配存储器块。分配的存储器块可由指针引用。
设备100可处理由输入接口接收的传入数据,并且可对传入数据进行并行化。输入接口可以是耦接到多核处理器102的网络接口卡(NIC)、可编程NIC、模数转换器(未示出)等中的至少一个。设备100可具有映射到存储器104的缓冲器,其中,缓冲器可用于存储中间数据。
如图4中所示的存储器块103a-103d的长度可变化。存储器块103a-103d可包括以太网数据报、互联网协议分组、异步传输模式(ATM)信元、构成科学仪器的运行的数据、视频帧或视频编码块、图像、仪器数据的块等。此外,线程可在运行期间在多核处理器102的核之间被切分。每个线程或存储器块可包括类似地进行操作的类似组件。多核处理器102的每个核还可具有不同数量的缓冲器和发送线程。存储器104还可包括专用于多核处理器102的每个核的元数据。在示例中,元数据可包括对线程的引用、对指针的引用、对存储器104中的位置的引用、存储器块的长度等。
在实施例中,设备100被配置为基于确定的将由多核处理器102运行的任务的类型,将存储在存储器104中的至少一个可共享资源指派给至少一个目标处理核102b。在实施例中,至少一个可共享资源由源处理核102a指派。在实施例中,设备100被配置为将与指派的至少一个可共享资源相关的信息存储在与源处理核102a相应的元数据文件中。在实施例中,设备100被配置为由目标处理核102b访问与源处理核102a相关联的可共享资源。在实施例中,设备100被配置为基于存储在元数据文件中的信息,为至少一个目标处理核102b提供对指派的至少一个可共享资源的访问。在实施例中,设备100被配置为基于存储的元数据来确定访问的至少一个可共享资源是否与源处理核102a相应。在实施例中,由至少一个目标处理核102b基于访问至少一个可共享资源来确定访问的至少一个可共享资源。在实施例中,设备100被配置为在源处理核102a的释放队列中生成与至少一个目标处理核102b中的每一个相应的多个释放子队列,以释放由源处理核102a指派给目标处理核102b的可共享资源。在实施例中,设备100被配置为基于分析的与可共享资源相关的第一信息,将访问的至少一个可共享资源释放到源处理核102a的释放队列中的生成的各自的多个释放子队列。在实施例中,与可共享资源相关的第一信息被存储在元数据文件中。指针可被存储在释放子队列中。多核处理器102可通过间接寻址模式指令集来访问指针。在实施例中,可共享资源由目标处理核102b释放。在实施例中,设备100被配置为基于分析与源处理核102a和至少一个目标处理核102b相应的释放队列,识别访问的可共享资源是否由至少一个目标处理核102b释放。在实施例中,设备100被配置为基于识别到释放队列中的可共享资源的释放,更新存储的与源处理核102a相应的元数据文件中的第二信息。
在实施例中,设备100被配置为确定释放队列中的每个释放子队列的可用空间。在实施例中,设备100被配置为确定每个释放子队列的可用空间高于预定义阈值还是低于所述预定义阈值。在实施例中,设备100被配置为在与各个源处理核102a和至少一个目标处理核102b相应的元数据文件中更新与分析出的每个释放子队列的可用空间的空闲列表和忙碌列表相应的信息。在实施例中,设备100被配置为:如果每个释放子队列的可用空间被确定为低于所述预定义阈值,则基于更新的元数据文件,设置与源处理核102a和至少一个目标处理核102b相应的不足标志。在实施例中,设备100被配置为:如果释放子队列的可用空间被确定为低于所述预定义阈值,则通过动态地调整释放队列的池大小,将源处理核102a的可共享资源推送到空闲列表中标记的释放子队列。在实施例中,设备100被配置为:如果与源处理核102a相应的释放队列具有可用空间,则在可共享资源的指派期间触发可共享资源的释放。在实施例中,设备100被配置为:如果与源处理核相应的释放队列具有可用空间,则在将可共享资源释放到释放队列期间促使可共享资源的释放。在实施例中,设备100被配置为解析元数据文件,以确定池ID、池ID的空闲列表、池ID的忙碌列表和指派的可共享资源ID中的至少一个。池ID可以是各个存储器池的核ID/核编号。例如,存储器池的与核2相应的池ID是2。在实施例中,与可共享资源相关的信息包括池ID、指派的可共享资源ID、资源块ID和指派的核ID。
在实施例中,源处理核102a和至少一个目标处理核102b包括核0、核1、核2、核3等中的至少一个。在实施例中,指派至少一个可共享资源包括:将存储器104中的存储器块分配给源处理核102a和目标处理核102b中的每个处理核,以访问存储器块中的可共享资源。在实施例中,针对源处理核102a和目标处理核102b中的每个处理核生成元数据文件,并根据每个处理核的顺序依次存储元数据文件。在实施例中,与源处理核102a相应的释放队列包括与至少一个目标处理核102b相应的至少一个入口队列。在实施例中,释放至少一个可共享资源的步骤包括:更新与至少一个目标处理核102b相应的至少一个入口队列。在实施例中,可共享资源由源处理核102a指派并且由至少一个目标处理核102b释放。
图4示出计算机实现的系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。一些组件可以是应用级软件,而其它组件可以是操作系统级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中,在紧密连接中,两个或更多个组件在单个硬件平台上进行操作。在其它情况下,可通过跨越长距离的网络连接进行连接。每个实施例可使用不同的硬件、软件和互连架构来实现所述功能。
本文的实施例可包括硬件元件和软件元件。以软件实现的实施例包括但不限于固件、驻留软件、微代码等。可以以其它模块或其它模块的组合实现由本文所述的各种模块执行的功能。出于本描述的目的,计算机可用或计算机可读介质可以是可包括、存储、通信、传播或传输程序以供指令运行系统、设备或装置使用或者结合指令运行系统、设备或装置使用的任何设备。
图5a示出根据本公开的实施例的用于使用针对多核处理器102的每个核的单个释放队列来管理可共享资源的框图。
考虑跨核释放场景,其中,在跨核释放场景中,核-1可将来自存储器104的由核-0共享的资源块0释放到核-0释放队列。同时,核-0可在没有任何冲突的情况下在访问元数据-0时分配/指派另一资源块。在这种场景中,处理器被映射到针对四个核的四个释放指针队列。可在释放队列中添加或生成指针。例如,释放队列可以是针对多核处理器102的核的可共享资源。释放队列可由多个核并发地访问。可保护临界区,例如,释放队列。
图5b示出根据本公开的实施例的用于使用针对多核处理器102的每个核的多个释放子队列来管理可共享资源的框图。
在实施例中,在与源处理核102a相应的释放队列中生成与至少一个目标处理核102b中的每一个相应的多个释放子队列,以释放确定的与源处理核102a相应的可共享资源。在指针中添加针对每个处理核的排他释放子队列。在实施例中,基于元数据文件中的分析出的信息,将至少一个访问的可共享资源释放到与源处理核102a相应的释放队列中的各自的多个释放子队列。可共享资源由目标处理核102b释放。
本文的实施例可提供每个核的排他释放队列(ERQ),并且可在单核处理器的情况下基于每个线程运行来添加ERQ。可共享资源被添加在释放指针的入口队列中,以避免对可共享资源的锁定。
图6a是描绘根据本公开的实施例的用于在释放队列中添加指针的方法的流程图。
释放队列中的指针可由多核处理器102添加。在步骤611,目标处理核102b确定释放队列/释放指针是否不属于目标处理核102b。并且,如果释放队列/释放指针不属于目标处理核102b,则在步骤613,目标处理核102b可将指针释放到源处理核102a的各自的释放队列。可基于存储在各个核的元数据文件中的信息,利用可共享资源来更新各自的队列的释放队列。
图6b是描绘根据本公开的实施例的用于释放在释放队列中的指针的方法的流程图。
在示例中,由核0指派的可共享资源可被释放到释放队列/释放指针的释放子队列。在步骤621,目标处理核102b(诸如核1、核2和核3)确定释放队列/释放指针是否为空并且是否具有可用空间。如果释放队列具有空的空间,则在步骤623,目标处理核102b可调用释放操作以释放可共享资源并且添加到释放队列/释放指针中的释放子队列/入口队列。
图7a是描绘根据本公开的实施例的用于使用每核和/或每线程专用资源池进行跨核分配的方法的流程图。
在示例中,为了由源处理核102a分配/指派存储器块,在步骤703和705,多核处理器102可获取核内锁并且从存储的各个处理核的元数据文件获得核ID。在步骤707,多核处理器102确定与目标处理核102b相应的释放指针是否不为空。如果与目标处理核102b相应的释放指针不为空,则在步骤709,可通过解析各个处理核的元数据来确定释放指针的空闲列表。此外,在步骤711,可分析存储器块以确定分配的且空闲的存储器块。如果存储器块可用,则在步骤713,可在列表中更新空闲存储器块和忙碌存储器块并且将空闲存储器块和忙碌存储器块存储在各个处理核的元数据文件中。在步骤715,可在运行任务之后释放获取的核内锁。之后,在步骤717,可返回存储器块的地址。
另外,如果存储器块不可用,则在步骤719和721,可释放获取的核内锁并且可返回NULL。
在示例中,考虑热管理场景,其中,动态存储器可被分配和被解除分配。此外,线程或处理核可请求存储器分配与热管理相应的数据。动态存储器可分配存储器,其中,分配的存储器的量的细节可被存储为各个处理核存储器的元数据文件。因此,例如,元数据可以是公共/可共享资源。
在示例中,考虑流水线工作(即,调制解调器中分组缓冲器的跨核释放)。分组处理可以以四个阶段被执行,诸如
阶段1:MAC处理
阶段2:RLC处理
阶段3:PDCP处理
阶段4:应用分组路由
在诸如四核处理器的功能分解的并行运行设计中,可允许每一阶段在单独的核中运行。由MAC处理核分配的分组缓冲器将由另一核(例如,应用分组路由核)释放。在功能分解的并行运行中,公共资源是堆管理器的元数据,其中,在每次新分组到达时可能需要堆管理器的元数据以分配存储器。
在另一示例中,考虑对称多处理(SMP)系统中的负载平衡。因此,多核SMP操作系统可具有针对线程的每个核的就绪队列和等待队列。在调度器执行的动态负载平衡的过程中,跨核访问就绪队列和等待队列。在linux SMP多核调度器中,处理器将线程从忙碌核推送到空闲核的就绪队列。在负载平衡SMP系统中,公共资源可以是但不限于以下项中的至少一个:分配存储器可能需要的堆管理器的元数据;以及操作系统(OS)元数据或任务控制块(即,由OS调度器从不同核并发地访问以用于负载平衡)。
图7b是描绘根据本公开的实施例的用于使用每核和/或每线程专用释放队列进行跨核释放的方法的流程图。
在示例中,为了由源处理核102a释放分配的存储器块,在步骤723和725,多核处理器102可获取核内锁并且从存储的各个处理核的元数据文件获得核ID。在步骤727,多核处理器102确定与目标处理核102b相应的释放指针是否不为空。如果与目标处理核102b相应的释放指针不为空,则在步骤729,可通过解析各个处理核的元数据来确定释放指针的空闲列表。如果释放指针为空,则指针可由目标处理核102b调用。然后,在步骤731,目标处理核102b可确定指针或可共享资源是否属于核ID。如果指针或可共享资源属于核ID,则在步骤733和735,可解析元数据以确定忙碌列表,并且可在元数据中更新忙碌列表和空闲列表。并且,在步骤737,可在运行任务之后释放获取的核内锁。
另外,如果指针或可共享资源不属于核ID,则在步骤739,可更新释放队列。
图8a是描绘根据本公开的实施例的用于动态池调整的方法的流程图。
参照图8a中所示的(a),为了由源处理核102a分配/指派存储器块,在步骤803和805,多核处理器102可获取核内锁并且从存储的各个处理核的元数据文件获得核ID。在步骤807,多核处理器102释放在释放指针队列中的指针。
并且在步骤809,多核处理器102调整动态池大小。在示例中,可基于在运行时间期间监视每个池的占用水平来执行专用于每核/每线程的资源池大小的动态重新调整。此外,由于排他子释放队列,可以以高效且无锁的方式针对每个核动态地调整资源池大小。调整每个核的动态池大小可具有优化对整个资源池大小的使用的优点。此外,资源可能不会在更长的持续时间内不被使用。
在步骤811,可分析存储器块以确定分配的且空闲的存储器块。如果存储器块可用,则在步骤813,可在列表中更新空闲存储器块和忙碌存储器块并且将空闲存储器块和忙碌存储器块存储在各个处理核的元数据文件中。在步骤815,可在运行任务之后释放获取的核内锁。之后,在步骤817,可返回存储器块的地址。
另外,如果存储器块不可用,则在步骤819和821,可释放获取的核内锁并且可返回NULL。
参照图8a中所示的(b),在步骤823至829,执行与在步骤803至809的操作相同的操作。并且步骤831至839,执行与在步骤731至738的操作相同的操作。因此,这里将省略其详细描述。
图8b是描绘根据本公开的实施例的用于动态池调整的步骤的流程图。
在示例中,在步骤871,多核处理器102可确定释放队列中的每个释放子队列的可用空间,并且分析每个释放子队列的可用空间是否高于阈值或低于阈值。可在与各个源处理核102a和至少一个目标处理核102b相应的元数据文件中更新与分析出的每个释放子队列的可用空间相应的信息。换句话说,如果每个释放子队列的可用空间高于阈值或低于阈值,则在步骤875,多核处理器102可设置用于调整池大小的不足标志和足够标志。另外,如果每个释放子队列的可用空间不高于阈值或不低于阈值,则在步骤873,多核处理器102可去除针对当前核的不足标志和足够标志。
此外,如果源处理核102a和至少一个目标处理核102b可能需要分配或释放资源(存储器块),则如图8b中共同示出的,源处理核102a和至少一个目标处理核102b可基于下限阈值和上限阈值来检查每个核的不足标志或足够标志的情况。在运行时,源处理核102a和至少一个目标处理核102b可能需要分配或释放资源,然后在步骤877,源处理核102a和至少一个目标处理核102b可检查当前状态是否足够。如果当前状态足够,则在步骤879,各个处理核可通过最初将存储器块的所有权改变到不足核来促成其它不足核。此外,在步骤881和883,各个处理核可将指针写入在与不足核相应的排他子释放队列的存储器块中的足够核的入口块中。如图8a中所示,可能需要保持开关保护空间(GUARD SPACE)以避免与不足状态和足够状态相应的任何核之间的频繁冲突。
图9a是描绘根据本公开的实施例的用于在多核处理器102中管理可共享资源的方法900a的流程图。
在步骤902,方法900a包括:由目标处理核102b访问与源处理核102a相关联的可共享资源。在步骤904,方法900a包括:由源处理核102a基于访问的可共享资源在源处理核102a的释放队列中生成与至少一个目标处理核102b中的每一个相应的多个释放子队列,以释放由源处理核102a指派给目标处理核102b的可共享资源。在步骤906,方法900a包括:由目标处理核102b基于分析与可共享资源相关的第一信息,将至少一个访问的可共享资源释放到源处理核102a的释放队列中的生成的各自的多个释放子队列,其中,与可共享资源相关的第一信息被存储在元数据文件中。在步骤908,方法900a包括:由源处理核102a基于识别到释放队列中的可共享资源的释放,更新存储的与源处理核102a相应的元数据文件中的第二信息。
方法900a中的各种动作可以以所呈现的顺序、以不同的顺序或同时被执行。此外,在一些实施例中,可省略图9a中列出的一些动作。
图9b是描绘根据本公开的实施例的用于确定访问的至少一个可共享资源是否与源处理核102a相应的方法900b的流程图。
在步骤912,方法900b包括:由源处理核102a基于确定的将由多核处理器102运行的任务的类型,将存储在存储器104中的至少一个可共享资源指派给至少一个目标处理核102b。在步骤914,方法900b包括:由源处理核102a将与指派的至少一个可共享资源相关的第一信息存储在与源处理核102a相应的元数据文件中。在步骤916,方法900b包括:由源处理核102a基于存储在元数据文件中的信息,为至少一个目标处理核102b提供对指派的至少一个可共享资源的访问。在步骤918,方法900b包括:由目标处理核102b基于存储的元数据文件来确定访问的至少一个可共享资源是否与源处理核102a相应。在实施例中,由至少一个目标处理核102b基于访问至少一个可共享资源来确定访问的至少一个可共享资源。
方法900b中的各种动作可以以所呈现的顺序、以不同的顺序或同时被执行。此外,在一些实施例中,可省略图9b中列出的一些动作。
图9c是描绘根据本公开的实施例的用于在动态池调整期间将源处理核102a的可共享资源推送到空闲列表中标记的释放子队列的方法900c的流程图。
在步骤922,方法900c包括:由多核处理器102确定释放队列中的每个释放子队列的可用空间。在步骤924,方法900c包括:由多核处理器102确定每个释放子队列的可用空间是高于预定义阈值还是低于预定义阈值。在步骤926,方法900c包括:由多核处理器102在与各个源处理核102a和至少一个目标处理核102b相应的元数据文件中更新与分析出的每个释放子队列的可用空间的空闲列表和忙碌列表相应的信息。在步骤928,方法900c包括:如果每个释放子队列的可用空间低于预定义阈值,则由多核处理器102基于更新的元数据文件设置与源处理核102a和至少一个目标处理核102b相应的不足标志。在步骤930,方法900c包括:如果释放子队列的可用空间低于阈值,则由多核处理器102通过动态地调整释放队列的池大小将源处理核102a的可共享资源推送到空闲列表中标记的释放子队列。
方法900c中的各种动作可以以所呈现的顺序、以不同的顺序或同时被执行。此外,在一些实施例中,可省略图9c中列出的一些动作。
图9d是根据本公开的实施例的用于由源处理核102a更新与源处理核相应的元数据文件的方法900f的流程图。
在步骤932,方法900f包括:由源处理核102a将来自存储器104的可共享资源分配给至少一个目标处理核102b。在步骤934,方法900f包括:由源处理核102a在与源处理核102a相应的元数据文件中更新与可共享资源相关的信息。在步骤936,方法900f包括:由目标处理核102b从存储器104访问分配的可共享资源。在步骤938,方法900f包括:由目标处理核102b确定由源处理核102a分配的可共享资源。在步骤940,方法900f包括:由目标处理核102B释放由源处理核102a分配的可共享资源,其中,释放可共享资源的步骤包括更新与源处理核102a相应的释放队列。在步骤942,方法900f包括:由源处理核102a基于检查与源处理核102a相应的释放队列,识别由目标处理核102b对可共享资源的释放。在步骤944,方法900f包括:由源处理核102a更新与源处理核102a相应的元数据文件。在实施例中,与源处理核102a相应的释放队列包括与至少一个目标处理核102b相应的至少一个入口队列。在实施例中,更新与源处理核102a相应的释放队列的步骤还包括更新与至少一个目标处理核102b相应的至少一个入口队列。
方法900f中的各种动作可以以所呈现的顺序、以不同的顺序或同时被执行。此外,在一些实施例中,可省略图9d中列出的一些动作。
在示例中,根据本文的实施例,可获得最大可能增益。基于实验测试的示例测试代码(即,伪代码)可如下:
Set Num_Iterations=1000000
Start Timer
Repeat for Num_Iterations:
mem=Allocate(1000)
Release(mem)
Stop Timer and calculate running time
在另一示例中,测试的步骤可如下:
创建运行以上测试代码的每个核的任务。在DUT#1(具有自旋锁)和DUT#2(提出的方案)中运行任务。
测量每个核中的任务的运行时间。
测试结果可包括计算被测装置(DUT)#2相对于DUT#1的增益。
Figure BDA0002755656390000171
因此,测试结果产生了高增益。本文的实施例可实现多核并行性,并且从不同的核进行释放调用。第二测试试图观察在分配和释放被调用的不同频率下的增益。
在示例中,用于第二测试的测试代码(即,伪代码)可如下:
Set Num_Iterations=1000000
Set Num_wait=<Variable>
Start Timer
Repeat for Num_Iterations:
mem=Allocate(1000)
wait for Num_wait instructions
Release(mem)
Stop Timer and calculate running time
第二测试的测试过程可如下:
创建运行以上测试代码的每个核的任务。
在DUT#1(具有自旋锁)和DUT#2(提出的方案)中运行任务。
测量每个核中的任务的运行时间,并且如在测试#1中进行计算。
基于对照每1M指令的请求的频率分析增益(%),系统的性能可随着每秒的分配/释放调用越少而逐渐降低。
本文的实施例可允许去除自旋锁,从而增强并行性/性能。本文的实施例可通过提供对跨核/跨线程共享的资源的无锁访问来实现对共享资源(即,动态存储器、外围缓冲器池等)的总体上更快的访问。本文的实施例可以以无锁方式执行诸如分配、解除分配、调整资源池等的操作,以最大化并行性。
本文的实施例可用在低延迟和高带宽系统中。本文的实施例实现实时多核应用的更快运行。本文的实施例可管理具有最佳大小的共享资源(诸如优化的较小存储器)。本文的实施例通过具有每核/每线程专用资源池和元数据来避免锁定自旋锁。本文的实施例可利用排他的子队列集使用释放队列管理。本文的实施例可支持资源的跨核解除分配。本文的实施例可监测每个存储器池的占用水平,并且以无锁方式动态地调整每个池的分配。本文的实施例可动态地确定何时重新调整每核/每功能专用存储器。
本文公开的实施例可通过在至少一个硬件装置上运行并且执行网络管理功能以控制元件的至少一个软件程序来实现。图4中所示的元件可以是硬件装置或硬件装置和软件模块的组合中的至少一个。
具体实施例的前述描述将如此充分地揭示本文的实施例的一般性质,使得其他人能够在不脱离总体构思的情况下通过应用当前知识容易地修改和/或适应于这样的具体实施例的各种应用,并且因此,这样的适应和修改应该并且旨在被包含在所公开的实施例的等同物的含义和范围内。将理解,本文采用的措辞或术语是出于描述而非限制的目的。因此,尽管已经根据实施例描述了本文的实施例,但本领域技术人员将认识到,本文的实施例可在如本文中所述的实施例的精神和范围内在修改的情况下被实践。

Claims (15)

1.一种用于在多核处理器(102)中管理可共享资源的方法,包括:
访问与源处理核(102a)相关联的可共享资源,其中,源处理核(102a)和至少一个目标处理核(102b)驻留在多核处理器(102)中;
基于访问的可共享资源,在与源处理核(102a)的释放队列中生成与至少一个目标处理核(102b)中的每个目标处理核相应的多个释放子队列;
基于分析与可共享资源相关的第一信息,将至少一个访问的可共享资源释放到在源处理核(102a)的释放队列中的生成的各自的多个释放子队列,其中,与可共享资源相关的第一信息被存储在元数据文件中;并且
基于识别出释放队列中的可共享资源的释放,更新元数据文件中的第二信息。
2.如权利要求1所述的方法(900a),其中,所述方法(900b)还包括:
基于确定的将由多核处理器(102)运行的任务的类型,将存储在存储器(104)中的至少一个可共享资源指派给所述至少一个目标处理核(102b);
将与指派的所述至少一个可共享资源相关的第一信息存储在与源处理核(102a)相应的元数据文件中;
基于存储在元数据文件中的信息,为所述至少一个目标处理核(102b)提供对指派的所述至少一个可共享资源的访问;并且
基于存储的元数据确定访问的所述至少一个可共享资源是否与源处理核(102a)相应,其中,访问的所述至少一个可共享资源由所述至少一个目标处理核(102b)基于访问所述至少一个可共享资源被确定。
3.如权利要求1所述的方法(900a),其中,所述方法(900c)还包括:
确定释放队列中的每个释放子队列的可用空间;
确定每个释放子队列的可用空间为高于预定义阈值和低于预定义阈值中的至少一个;
在与各个源处理核(102a)和所述至少一个目标处理核(102b)相应的元数据文件中更新与分析出的每个释放子队列的可用空间的空闲列表和忙碌列表相应的信息;
如果每个释放子队列的可用空间被确定为低于所述预定义阈值,则基于更新的元数据文件,设置与源处理核(102a)和所述至少一个目标处理核(102b)相应的不足标志;并且
如果释放子队列的可用空间被确定为低于所述预定义阈值,则通过动态地调整释放队列的池大小,将源处理核(102a)的可共享资源推送到在空闲列表中标记的释放子队列。
4.如权利要求1所述的方法,其中,所述方法(900d)还包括:
如果与源处理核(102a)相应的释放队列具有可用空间,则在可共享资源的指派期间触发可共享资源的释放;并且
如果与源处理核(102a)相应的释放队列具有可用空间,则在将可共享资源释放到释放队列期间促使可共享资源的释放。
5.如权利要求1所述的方法,其中,所述方法(900e)还包括:
解析元数据文件,以确定池ID、池ID的空闲列表、池ID的忙碌列表以及指派的可共享资源ID中的至少一个。
6.如权利要求1所述的方法,其中,可共享资源包括以下项中的至少一项:存储器(104)资源、公共外设资源、串行端口资源、并行端口资源、显示资源、音频资源、多核处理器(102)资源、中央处理器资源、逻辑处理器资源、输入/输出资源、信道资源、协同处理器资源、网络适配器资源;并且其中,多核处理器(102)的源处理核(102a)和所述至少一个目标处理核(102b)包括核0、核1、核2和核3中的至少一个。
7.如权利要求1所述的方法,其中,指派所述至少一个可共享资源的步骤包括:将存储器(104)中的存储器块分配给源处理核(102a)和所述至少一个目标处理核(102b)中的每个处理核,以访问存储器块中的可共享资源。
8.如权利要求1所述的方法,其中,元数据文件针对源处理核(102a)和所述至少一个目标处理核(102b)中的每个处理核被生成,并且根据每个处理核的顺序被依次存储;并且
其中,与源处理核(102a)相应的释放队列包括与所述至少一个目标处理核(102b)相应的至少一个入口队列。
9.如权利要求1所述的方法,其中,释放所述至少一个可共享资源的步骤包括:更新与所述至少一个目标处理核(102b)相应的所述至少一个入口队列。
10.如权利要求1所述的方法,其中,可共享资源由源处理核(102a)指派并且由所述至少一个目标处理核(102b)释放。
11.如权利要求1所述的方法,其中,与可共享资源相关的信息包括池ID、指派的可共享资源ID、资源块ID和指派的核ID。
12.一种用于在多核处理器(102)中管理可共享资源的方法,包括:
将来自存储器(104)的可共享资源分配给至少一个目标处理核(102b),其中,源处理核(102a)和所述目标处理核(102b)驻留在多核处理器(102)中;
在与源处理核(102a)相应的元数据文件中更新与可共享资源相关的信息;
从存储器(104)访问分配的可共享资源;
释放分配的可共享资源,其中,释放分配的可共享资源的步骤包括:更新与源处理核(102a)相应的释放队列;
基于检查与源处理核(102a)相应的释放队列,识别由所述目标处理核(102b)对可共享资源的释放;并且
由源处理核(102a)更新与源处理核(102a)相应的元数据文件。
13.如权利要求12所述的方法,其中,与源处理核(102a)相应的释放队列包括与所述至少一个目标处理核(102b)相应的至少一个入口队列。
14.如权利要求12所述的方法,其中,更新与源处理核(102a)相应的释放队列的步骤还包括:更新与所述至少一个目标处理核(102b)相应的至少一个入口队列。
15.一种用于在多核处理器(102)中管理可共享资源的设备(100),其中,所述设备(100)包括:至少一个处理器,被配置为执行如权利要求1-14中任意一项所述的方法。
CN201980029692.3A 2018-05-04 2019-04-23 用于在多核处理器中管理可共享资源的设备和方法 Pending CN115605846A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201841017027 2018-05-04
IN201841017027 2018-11-26
PCT/KR2019/004886 WO2019212182A1 (en) 2018-05-04 2019-04-23 Apparatus and method for managing a shareable resource in a multi-core processor

Publications (1)

Publication Number Publication Date
CN115605846A true CN115605846A (zh) 2023-01-13

Family

ID=68387103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980029692.3A Pending CN115605846A (zh) 2018-05-04 2019-04-23 用于在多核处理器中管理可共享资源的设备和方法

Country Status (3)

Country Link
EP (1) EP3756092A4 (zh)
CN (1) CN115605846A (zh)
WO (1) WO2019212182A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407123A (zh) * 2023-12-12 2024-01-16 麒麟软件有限公司 基于多系统隔离的usb设备虚拟共享系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782419B (zh) * 2020-06-23 2023-11-14 北京青云科技股份有限公司 一种缓存更新方法、装置、设备及存储介质
CN112286662B (zh) * 2020-10-30 2023-02-10 康键信息技术(深圳)有限公司 基于共享资源的任务推送方法、装置、设备及存储介质
CN112947677B (zh) * 2021-02-05 2024-02-27 北京深之度科技有限公司 一种计时器读取方法、计算设备及可读存储介质
CN113190496B (zh) * 2021-04-23 2023-12-26 深圳市汇顶科技股份有限公司 内核通讯方法、装置、芯片、电子设备及存储介质
CN113672398B (zh) * 2021-10-25 2022-02-18 北京金睛云华科技有限公司 全流量回溯分析系统的内存优化方法和设备
CN118069071A (zh) * 2024-04-19 2024-05-24 苏州元脑智能科技有限公司 资源访问控制方法、装置、计算机设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823472B1 (en) * 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
JP4144609B2 (ja) * 2004-09-29 2008-09-03 ソニー株式会社 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム
US7730491B2 (en) * 2005-08-30 2010-06-01 Intel Corporation Fair scalable reader-writer mutual exclusion
DE102008004658B4 (de) * 2008-01-16 2010-03-25 Siemens Aktiengesellschaft Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen
JP2011232956A (ja) * 2010-04-27 2011-11-17 Clarion Co Ltd コンピュータシステムとプログラム
US9652289B2 (en) * 2012-04-27 2017-05-16 Microsoft Technology Licensing, Llc Systems and methods for S-list partitioning
US9378059B2 (en) * 2012-10-19 2016-06-28 Argyle Data, Inc. Multi-threaded, lockless data parallelization
US9639403B2 (en) * 2013-03-15 2017-05-02 Genband Us Llc Receive-side scaling in a computer system using sub-queues assigned to processing cores

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407123A (zh) * 2023-12-12 2024-01-16 麒麟软件有限公司 基于多系统隔离的usb设备虚拟共享系统
CN117407123B (zh) * 2023-12-12 2024-04-05 麒麟软件有限公司 基于多系统隔离的usb设备虚拟共享系统

Also Published As

Publication number Publication date
EP3756092A4 (en) 2021-04-14
EP3756092A1 (en) 2020-12-30
WO2019212182A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
CN115605846A (zh) 用于在多核处理器中管理可共享资源的设备和方法
Ward et al. Outstanding paper award: Making shared caches more predictable on multicore platforms
US9280393B2 (en) Processor provisioning by a middleware processing system for a plurality of logical processor partitions
CN105579961B (zh) 数据处理系统及操作方法、用于数据处理系统的硬件单元
US9152468B2 (en) NUMA aware system task management
US9086925B2 (en) Methods of processing core selection for applications on manycore processors
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US9875139B2 (en) Graphics processing unit controller, host system, and methods
US20130125133A1 (en) System and Method for Load Balancing of Fully Strict Thread-Level Parallel Programs
KR101150661B1 (ko) 정보 처리 장치 및 메모리 영역 관리 방법
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US10579413B2 (en) Efficient task scheduling using a locking mechanism
CN112015713A (zh) 数据库任务的处理方法、装置、电子设备及可读介质
US20110276978A1 (en) System and Method for Dynamic CPU Reservation
US9047121B2 (en) System and method for scheduling jobs in a multi-core processor
US8141084B2 (en) Managing preemption in a parallel computing system
US20190188032A1 (en) Thread interrupt offload re-prioritization
US9600344B2 (en) Proportional resizing of a logical partition based on a degree of performance difference between threads for high-performance computing on non-dedicated clusters
US8127295B1 (en) Scalable resource allocation
Sharma et al. A competitive analysis for balanced transactional memory workloads
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
CN114930292A (zh) 协作式工作窃取调度器
US11797344B2 (en) Quiescent state-based reclaiming strategy for progressive chunked queue
US10782970B1 (en) Scalable multi-producer and single-consumer progressive chunked queue

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