CN101685409A - 用于管理存储器的方法和存储器管理器 - Google Patents

用于管理存储器的方法和存储器管理器 Download PDF

Info

Publication number
CN101685409A
CN101685409A CN200910178219A CN200910178219A CN101685409A CN 101685409 A CN101685409 A CN 101685409A CN 200910178219 A CN200910178219 A CN 200910178219A CN 200910178219 A CN200910178219 A CN 200910178219A CN 101685409 A CN101685409 A CN 101685409A
Authority
CN
China
Prior art keywords
shared queue
length
processor
consumer
shared
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.)
Granted
Application number
CN200910178219A
Other languages
English (en)
Other versions
CN101685409B (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.)
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 CN101685409A publication Critical patent/CN101685409A/zh
Application granted granted Critical
Publication of CN101685409B publication Critical patent/CN101685409B/zh
Expired - Fee Related 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
    • 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
    • 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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

提供了一种用于管理存储器的方法和存储器管理器。所述存储器管理器基于由产生数据的生产者进程和消费数据的消费者进程共享的共享队列的状况来调节分配到消费者进程的处理器的数量和/或将被消费者进程消费的数据的分配单元大小。

Description

用于管理存储器的方法和存储器管理器
本申请要求于2008年9月26日提交的第10-2008-0094760号韩国专利申请的利益,该申请全部公开于此以资参考。
技术领域
以下描述涉及处理技术,更具体地,涉及一种用于在多处理环境中管理存储器的方法和存储器管理器。
背景技术
在存在多核或多处理器的多处理环境中,分配到各个核或处理器的进程或线程共享存储器(诸如,队列),并处理存储在队列中的工作。
在这样的多处理环境中,可使用多个进程来执行特定任务。进程的示例包括在执行任务时产生数据的生产者进程(producer process)和在执行任务时消费数据的消费者进程(consumer process)。例如,在使用多处理器实现的视频解码器的情况下,可变长解码与生产者进程相应,宏块处理与消费者进程相应。
在同时执行生产者进程和消费者进程两者以提高整体工作性能的环境中,由生产者进程和消费者进程共享的存储器带宽应被有效使用。
在传统多处理环境中,增加分配到消费者进程的处理器的数量以增加并行处理程度,从而提高工作性能。然而,在这种方案中,数量增加的分配到消费者进程的处理器可能用尽存储器带宽,并且其它处理器可能没有机会访问存储器,从而降低整体工作性能。分配到进程的处理器的数量可以是预定的或被限定为预定数量。在这种情况下,由于没有考虑工作状况而使用预定数量的处理器,故这也会降低整体工作性能。此外,已经了解到其它传统方法需要改变存储器总线结构。
发明内容
在一个总体方面,一种多处理环境中的存储器管理器,包括:一个或多个生产者处理器,能够被分配以产生数据;一个或多个消费者处理器,能够被分配以消费产生的数据;控制器,基于存储器与处理器之间的带宽的状况来管理所述一个或多个消费者处理器。
控制器可包括:带宽监视器,检查存储器与处理器之间的带宽状况。
带宽监视器可包括:队列监视器,检查根据将在被处理器共享的共享队列中处理的数据的数量确定的共享队列的长度。
带宽监视器可包括:队列监视器,计算根据将在被处理器共享的共享队列中处理的数据的数量和具体时间确定的共享队列的运动平均值。
控制器可基于带宽的状况来调节被分配以消费产生的数据的处理器的数量。
控制器可包括:进程调节器,如果共享队列的长度大于预定的上限,则增加被分配以消费产生的数据的处理器的数量,如果共享队列的长度小于预定的下限,则减少被分配以消费产生的数据的处理器的数量。
控制器可包括:进程调节器,如果共享队列的长度大于预定的上限,则减少将被所述一个或多个消费者处理器消费的数据的分配单元大小,如果共享队列的长度小于预定的下限,则增加将被将被所述一个或多个消费者处理器消费的数据的分配单元大小。
控制器可包括:进程调节器,如果共享队列的长度持续增加给定的一段时间,则增加被分配以消费产生的数据的处理器的数量,如果共享队列的长度持续减少给定的一段时间,则减少被分配以消费产生的数据的处理器的数量。
控制器可包括:进程调节器,如果共享队列的长度持续增加给定的一段时间,则减少将被所述一个或多个消费者处理器消费的数据的分配单元大小,如果共享队列的长度持续减少给定的一段时间,则增加将被所述一个或多个消费者处理器消费的数据的分配单元大小。
在另一总体方面,一种在包括生产者进程、消费者进程和存储器的多处理环境中的存储器管理方法,包括:检查存储器与被分配到生产者进程和消费者进程的一个或多个处理器之间的带宽的状况;以及基于所述带宽的状况管理消费者进程。
检查带宽的状况的步骤可包括:根据将在共享队列中处理的数据的数量来确定被生产者进程和消费者进程共享的共享队列的长度。
管理消费者进程的步骤可包括:基于带宽的状况来调节被分配到消费者进程的处理器的数量。
调节处理器的数量的步骤可包括:如果共享队列的长度大于预定的上限,则增加被分配到消费者进程的处理器的数量,如果共享队列的长度小于预定的下限,则减少被分配到消费者进程的处理器的数量。
调节处理器的数量的步骤可包括:如果共享队列的长度持续增加给定的一段时间,则增加被分配到消费者进程的处理器的数量,如果共享队列的长度持续减少给定的一段时间,则减少被分配到消费者进程的处理器的数量。
管理消费者进程的步骤可包括:如果共享队列的长度大于预定的上限,则减少将被消费者进程消费的数据的分配单元大小,如果共享队列的长度小于预定的下限,则增加将被消费者进程消费的数据的分配单元大小。
管理消费者进程的步骤可包括:如果共享队列的长度持续增加给定的一段时间,则减少将被消费者进程消费的数据的分配单元大小,如果共享队列的长度持续减少给定的一段时间,则增加将被消费者进程消费的数据的分配单元大小。
检查带宽的状况的步骤可包括:确定共享队列的长度变化,所述确定共享队列的长度变化包括计算共享队列的运动平均值。
在另一总体方面,一种用于多处理环境中的存储器管理器,包括:共享队列,被产生数据的第一进程和消费第一进程产生的数据的第二进程共享;控制器,基于共享队列的状况来管理第二进程。
控制器可基于共享队列的状况来调节分配到第二进程的处理器的数量。
控制器可包括:队列监视器,检查根据将在共享队列中处理的数据的数量确定的共享队列的长度。
控制器还可包括:进程调节器,如果共享队列的长度大于预定的上限,则增加分配到第二进程的处理器的数量,如果共享队列的长度小于预定的下限,则减少分配到第二进程的处理器的数量。
控制器还可包括:进程调节器,如果共享队列的长度大于预定的上限,则减少将被第二进程消费的数据的分配单元大小,如果共享队列的长度小于预定的下限,则增加将被第二进程消费的数据的分配单元大小。
控制器可包括:队列监视器,计算根据将在共享队列中处理的数据的数量和具体时间确定的共享队列的运动平均值。
控制器还可包括:进程调节器,如果共享队列的长度持续增加给定的一段时间,则增加被分配到第二进程的处理器的数量,如果共享队列的长度持续减少给定的一段时间,则减少被分配到第二进程的处理器的数量。
控制器还可包括:进程调节器,如果共享队列的长度持续增加给定的一段时间,则减少将被第二进程消费的数据的分配单元大小,如果共享队列的长度持续减少给定的一段时间,则增加将被第二进程消费的数据的分配单元大小。
在另一总体方面,一种用于多处理环境中的存储器管理器,包括:共享队列,被第一进程和第二进程共享,其中,第一进程产生数据,共享队列的条目是将由第二进程处理的工作;控制器,基于共享队列的状况来自适应地调节被分配到第二进程的处理器的数量和/或将被第二进程处理的数据的分配单元大小。
控制器可包括:队列监视器,检查根据将在共享队列中处理的数据的数量确定的共享队列的长度;进程调节器,如果共享队列的长度大于预定的上限,则增加被分配到第二进程的处理器的数量和/或减少将被第二进程处理的数据的分配单元大小,如果共享队列的长度小于预定的下限,则减少被分配到第二进程的处理器的数量和/或增加将被第二进程处理的数据的分配单元大小。
控制器可计算共享队列的运动平均值,如果共享队列的长度变化指示增加趋势,则增加被分配到第二进程的处理器的数量和/或减少将被第二进程处理的数据的分配单元大小,如果共享队列的长度变化指示减少趋势,则减少被分配到第二进程的处理器的数量或增加将被第二进程处理的数据的分配单元大小。
控制器可通过将一个或多个处理器置为睡眠状态来调节分配到第二进程的处理器的数量。
在另一总体方面,提供了一种存储用于在多处理环境中管理存储器的程序的计算机可读存储介质,包括引起计算机执行以下内容的命令:确定被第一进程和第二进程共享的共享列队的长度和/或共享列队的长度变化,其中,第一进程产生数据,共享队列的条目是将由第二进程处理的工作;以及基于共享列队的长度和/或共享列队的长度变化的状况来管理第二进程。
通过以下描述、附图和权利要求,其它特点和方面将会变得清楚。
附图说明
图1是示出包括存储器和存储器管理器的示例性计算装置的框图。
图2A和图2B示出如何根据共享队列的长度来调节分配到消费者进程的处理器的数量。
图3示出如何根据共享队列的长度来调节分配到消费者进程的数据的分配单元大小。
图4是用于管理存储器的示例性方法的流程图。
在整个附图和详细描述中,除非另有说明,否则,相同的附图标号表示相同的元件、特征和结构。为了清楚、明白和方便,可夸大这些元件的相对大小和描述。
具体实施方式
提供以下详细描述以助于读者全面理解在此描述的方法、设备和/或系统。因此,向该领域中的普通技术人员建议在此描述的系统、设备和/或方法的各种改变、修改和等同物。另外,为了更加清楚和简明,可省略对已知功能和结构的描述。
图1示出包括存储器110和存储器管理器的示例性计算装置。
存储器110包括共享队列111和数据区域112。存储器管理器访问存储器110,并且存储器管理器包括控制器140和多个处理器121、132、134和136。控制器140可实现在一个或多个处理器上。控制器140包括带宽监视器141和进程调节器144。
共享队列111被产生工作和用于工作的数据的生产者进程120和通过处理工作消费数据的消费者进程130共享。例如,由生产者进程120产生的将被消费者进程130处理的工作、关于工作的描述可被存储在共享队列111中,用于所述将被消费者进程130处理的工作的数据可被存储在存储器110的数据区域112中。消费者进程130可根据存储在共享队列111中的工作来读取和处理存储器110的数据区域112中的用于工作的数据。生产者进程120使工作在共享队列111中列队。消费者进程130从共享队列111读取工作并根据工作描述处理来自数据区域112的数据。因此,共享队列111的长度根据生产者进程120产生的工作的数量和消费者进程130消费的工作的数量而改变。
例如,在生产者进程120产生十(10)个工作并且消费者进程130消费十(10)个工作中的四(4)个工作的情况下,共享队列111的长度是六(6)。共享队列111的长度还根据生产者进程120的工作产生率和消费者进程130的工作消费率而改变。生产者进程120可被分配生产者处理器121。消费者进程130可被分配多个消费者处理器132、134和136。
控制器140基于存储器110与处理器121、132、134和136之间的带宽的状况来控制消费者进程130。
在一个示例中,控制器140可基于存储器110与处理器121、132、134和136之间的存储器带宽的状况来调节分配到消费者进程130的处理器的数量。可基于共享队列111的状况来检查存储器带宽的状况。
例如,如果通过将较少的消费者处理器分配到消费者进程130而带宽欠饱和,则共享队列111的长度变长,并且控制器140可随后增加分配到消费者进程130的处理器的数量。如果通过例如将相对较多数量的处理器分配到消费者进程130而带宽过饱和,则共享队列111的长度变短,并且控制器140可随后减少分配到消费者进程130的处理器的数量。换句话说,随着更多的将被处理的数据在共享队列111中列队,分配到消费者进程130的处理器的数量可被增加。
为了执行增加或减少分配到消费者进程130的处理器的数量的任务,控制器140可包括带宽监视器141和进程调节器144。带宽监视器141可包括队列监视器142。带宽监视器141基于可被队列监视器142确定的共享队列111的长度来检查存储器110与处理器之间的带宽的状况。如果共享队列111的长度超过例如预定上限,则进程调节器144增加分配到消费者进程130的处理器的数量,如果共享队列111的长度少于例如预定下限,则进程调节器144减少分配到消费者进程130的处理器的数量。上限可被设置为在指示从测试各种工作量获得的最优工作性能的值之上大约5%与大约30%之间的值。相似地,下限可被设置为在指示从测试各种工作量获得的最优工作性能的值之下大约5%与大约30%之间的值。因此,能够通过仅将确定数量的处理器用于消费者进程130并保持剩余的处理器处于例如睡眠模式来减少功耗。
如另一示例,可随着共享队列111的长度变化来调节分配到消费者进程130的处理器的数量。换句话说,队列监视器142计算共享队列111的运动平均值以测量共享队列111的长度变化。如果例如所述变化持续增加给定的一段时间,则增加分配到消费者进程130的处理器的数量,而如果例如所述变化持续减少给定的一段时间,则减少分配到消费者进程130的处理器的数量。
在另一示例中,控制器140可基于存储器110与处理器121、132、134和136之间的带宽的状况来调节被消费者进程130消费的数据的分配单元大小。可基于共享队列111的状况检查存储器带宽的状况。除了上述的处理器数量的调节之外还可执行分配单元大小的调节,或者执行分配单元大小的调节可替代处理器数量的调节。
例如,如果共享队列111的长度变长,则控制器140可使将被发送到消费者进程130的数据的分配单元大小变小。如果共享队列111的长度变短,则控制器140可使将被发送到消费者进程130的数据的分配单元大小变大。在本示例中,消费者进程130直到数据累积到预定的分配单元大小才可读取和处理数据。换句话说,消费者进程130可被控制为只要数据在共享队列111中列队就处理数据,或者消费者进程130可被控制为直到数据累积到预定的分配单元大小才处理数据。
队列监视器142可检查由将在共享队列111中处理的数据数量确定的共享队列111的长度。如果共享队列的长度大于例如预定的上限,则进程调节器144可减小将被消费者进程130消费的数据的分配单元大小,如果共享队列的长度小于例如预定的下限,则可增加将被消费者进程130消费的数据的分配单元大小。
这种方法,分配到消费者进程130的处理器可被置于睡眠模式下,直到共享队列111中累积的数据达到当前分配单元大小。因此,生产者进程120可更容易地访问存储器并且可减小功耗。另外,由于可通过调节分配单元大小来确定消费者进程是否保持在睡眠模式,故生产者进程120可更容易地访问存储器。
如另一示例,可随着共享队列111的长度变化来调节将被消费者进程130消费的数据的分配单元大小。在这种情况下,进程调节器144计算共享队列111的运动平均值。如果例如共享队列111的长度变化持续增加给定的一段时间,则进程调节器144可减小将被消费者进程130消费的数据的分配单元大小。如果例如共享队列111的长度变化持续减小给定的一段时间,则进程调节器144可增加将被消费者进程130消费的数据的分配单元大小。
图2A和图2B示出如何根据共享队列的长度来调节分配到消费者进程的处理器的数量。
参照图1和图2A,在一个实现中,如果共享队列111的长度大于上限,这意味着通过将较少的消费者处理器分配到消费者进程130而使存储器与处理器之间的带宽欠饱和。因此,控制器140可增加分配到消费者进程130的处理器的数量。如果共享队列111的长度减小到下限以下,这意味着例如通过将过多处理器分配到消费者进程130而使存储器与处理器之间的带宽过饱和。因此,控制器140可减少分配到消费者进程130的处理器的数量。以这种方式,分配到消费者进程130的处理器的数量可被调节到例如最优数量。
参照图1和图2B,在另一实现中,如果共享队列111的长度变化小于零(0)(例如,由于被消费者进程130消费的工作大于由生产者进程120产生的工作,故共享队列111的长度持续减小给定的一段时间),则减少分配到消费者进程130的处理器的数量。如果由于被消费者进程130消费的工作小于由生产者进程120产生的工作,故共享队列111的长度持续增加给定的一段时间,则增加分配到消费者进程130的处理器的数量。
图3示出如何根据共享队列的长度来调节分配到消费者进程的数据的分配单元大小。
参照图1和图3,在一个实现中,如果共享队列111的长度大于上限,则可减少分配到消费者进程130的数据的分配单元大小。当长度减小到下限以下,则增加分配到消费者进程130的数据的分配单元大小。以这种方式,分配到消费者进程130的数据的分配单元大小可被调节。
图4是管理存储器的示例性方法的流程图。所述方法可被例如图1中示出的存储器管理器执行。
仍然参照图1,确定共享队列111的长度或长度变化(310)。
基于共享队列111的状况来管理消费者进程130。如果存储器带宽被消费者进程130占用,以致生产者进程120无法在这种消费速率下再产生工作,则共享队列111中剩余较少的条目(320)。
所述过饱和状态可被确定,如果例如共享队列111的长度小于预定的下限,则减少分配到消费者进程130的处理器的数量和/或增加将被消费者进程130消费的数据的分配单元大小(330)。如另一示例,如上所述,当共享队列111的长度变化在给定的一段时间为负时,可减少分配到消费者进程130的处理器的数量和/或可增加将被消费者进程130消费的数据的分配单元大小。
如果通过将较少的处理器分配到消费者进程130而使存储器带宽欠饱和,则共享队列中剩余较多的条目(340)。可通过检查共享队列111的长度来确定所述欠饱和状态。如果共享队列111的长度大于预定的上限,则可以是生产者进程的速率超过消费者进程的速率,并且在存储器带宽中存在用于消费者处理器的空间。因此,增加分配到消费者进程130的处理器的数量和/或减少将被消费者进程130消费的数据的分配单元大小(350)。如另一示例,当共享队列的长度变化在给定的一段时间为正时,可增加分配到消费者进程130的处理器的数量和/或可减小将被消费者进程130消费的数据的分配单元大小。
确定生产者进程120是否已经停止操作(360)。如果生产者进程120已经停止操作,则当前管理处理结束。如果生产者进程120没有停止操作,则管理处理可返回确定共享队列111的状况(310)。
根据上述的示例,提供了一种用于在多处理环境(诸如,多核处理器或多处理器)中管理存储器的示例性方法和存储器管理器。
根据上述的示例,当没有足够的存储器带宽用于生产者进程时,对于消费者进程可被受限访问共享存储器,从而使得在多核或多处理器环境中更有效地执行多处理。
此外,通过将不必要的处理器置于睡眠模式,可降低功耗。此外,由于根据工作量或使用的数据的属性来自适应地调节处理器的分配或配置,故可避免在执行工作之前预设处理器的数量或数据的分配量(例如,分布(profiling))。
仅作为不详尽的描述,在此提供的教导可被应用于解码器(例如,视频解码器)、在多核处理器或多处理器上操作的生产者-消费者处理装置(例如,用于在多核处理器或多处理器上以多线程执行生产者-消费者并行进程的系统)。再次仅作为不详尽的描述,在此提供的教导可被应用于编写队列条目以在多核处理器上执行关于可变长解码(VLD)的进程的装置和由多处理器执行运动补偿(MC)、逆变换(IT)、反量化(IQ)等的装置。
上述的方法可被记录、存储或安装在包括由计算机实施以引起处理器执行程序指令的所述程序指令的一个或多个计算机可读介质中。介质还可包括程序指令、数据文件、数据结构等的单个或组合。计算机可读介质的示例包括:磁性介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM盘和DVD;磁光介质,诸如光盘;被具体配置为存储和执行程序指令的硬件装置,诸如只读存储器(ROM)、随机访问存储器(RAM)、闪存等。程序指令的示例包括:机器码,诸如由编译器产生的;文件,包含可被计算机使用解释器执行的更高级代码。所述硬件装置可被配置以作为一个或更多个软件模块,以执行上述的操作和方法,反之亦然。此外,计算机可读存储介质可被分布在通过网络连接的计算机系统中,计算机可读代码或程序指令可被以分布式方式存储和执行。
计算系统或计算机可包括与总线、用户接口和存储器控制器电连接的微处理器。计算系统或计算机还可包括闪存装置。闪存装置可经由存储器控制器存储N比特数据。N比特数据被微处理器执行或将被微处理器执行,并且N可以是1或大于1的整数。其中,计算系统或计算机是移动设备,可另外提供电池以供给计算系统或计算机的操作电压。本领域中的普通技术人员应该理解,计算系统或计算机还可包括应用芯片组、相机图像处理器(CIS)、移动动态随机访问存储器(DRAM)等。存储器控制器和闪存装置可组成使用非易失性存储数据的固态硬盘(SSD)。
以上已经示出了一些示例性实施例。然而,应该理解可做出各种修改。例如,如果以不同的顺序执行上述技术和/或如果以不同的方式组合上述系统、结构、装置或电路中的组件和/或使用其它组件或它们的等同物替换或补充所述组件,则可获得适合的结果。因此,其它实施落入权利要求的范围内。

Claims (30)

1、一种多处理环境中的存储器管理器,包括:
一个或多个生产者处理器,能够被分配以产生工作;
一个或多个消费者处理器,能够被分配以消费产生的工作;
控制器,基于存储器与处理器之间的带宽的状况来管理所述一个或多个消费者处理器。
2、如权利要求1所述的存储器管理器,其中,控制器包括:
带宽监视器,检查存储器与处理器之间的带宽状况。
3、如权利要求2所述的存储器管理器,其中,带宽监视器包括:
队列监视器,检查根据将在被处理器共享的共享队列中处理的工作的数量确定的共享队列的长度。
4、如权利要求2所述的存储器管理器,其中,带宽监视器包括:
队列监视器,计算根据将在被处理器共享的共享队列中处理的工作的数量和具体时间确定的共享队列的运动平均值。
5、如权利要求1所述的存储器管理器,其中,控制器基于带宽的状况来调节被分配以消费产生的工作的处理器的数量。
6、如权利要求5所述的存储器管理器,其中,控制器包括:
进程调节器,如果共享队列的长度大于预定的上限,则增加被分配以消费产生的工作的处理器的数量,如果共享队列的长度小于预定的下限,则减少被分配以消费产生的工作的处理器的数量。
7、如权利要求5所述的存储器管理器,其中,控制器包括:
进程调节器,如果共享队列的长度大于预定的上限,则减少将被所述一个或多个消费者处理器消费的数据的分配单元大小,如果共享队列的长度小于预定的下限,则增加将被将被所述一个或多个消费者处理器消费的数据的分配单元大小。
8、如权利要求8所述的存储器管理器,其中,控制器包括:
进程调节器,如果共享队列的长度持续增加给定的一段时间,则增加被分配以消费产生的工作的处理器的数量,如果共享队列的长度持续减少给定的一段时间,则减少被分配以消费产生的工作的处理器的数量。
9、如权利要求5所述的存储器管理器,其中,控制器包括:
进程调节器,如果共享队列的长度持续增加给定的一段时间,则减少将被所述一个或多个消费者处理器消费的数据的分配单元大小,如果共享队列的长度持续减少给定的一段时间,则增加将被所述一个或多个消费者处理器消费的数据的分配单元大小。
10、一种在包括生产者进程、消费者进程和存储器的多处理环境中的存储器管理方法,所述方法包括:
检查存储器与被分配到生产者进程和消费者进程的一个或多个处理器之间的带宽的状况;以及
基于所述带宽的状况管理消费者进程。
11、如权利要求10所述的方法,其中,检查带宽的状况的步骤包括:根据将在共享队列中处理的工作的数量来确定被生产者进程和消费者进程共享的共享队列的长度。
12、如权利要求10所述的方法,其中,管理消费者进程的步骤包括:基于带宽的状况来调节被分配到消费者进程的处理器的数量。
13、如权利要求12所述的方法,其中:
调节处理器的数量的步骤包括:如果共享队列的长度大于预定的上限,则增加被分配到消费者进程的处理器的数量,如果共享队列的长度小于预定的下限,则减少被分配到消费者进程的处理器的数量。
14、如权利要求12所述的方法,其中:
调节处理器的数量的步骤包括:如果共享队列的长度持续增加给定的一段时间,则增加被分配到消费者进程的处理器的数量,如果共享队列的长度持续减少给定的一段时间,则减少被分配到消费者进程的处理器的数量。
15、如权利要求10所述的方法,其中:
管理消费者进程的步骤包括:如果共享队列的长度大于预定的上限,则减少将被消费者进程消费的数据的分配单元大小,如果共享队列的长度小于预定的下限,则增加将被消费者进程消费的数据的分配单元大小。
16、如权利要求10所述的方法,其中:
管理消费者进程的步骤包括:如果共享队列的长度持续增加给定的一段时间,则减少将被消费者进程消费的数据的分配单元大小,如果共享队列的长度持续减少给定的一段时间,则增加将被消费者进程消费的数据的分配单元大小。
17、如权利要求10所述的方法,其中,检查带宽的状况的步骤包括:确定共享队列的长度变化,所述确定共享队列的长度变化包括计算共享队列的运动平均值。
18、一种用于多处理环境中的计算装置,包括:
共享队列,被产生工作的第一进程和消费第一进程产生的工作的第二进程共享;和
控制器,基于共享队列的状况来管理第二进程。
19、如权利要求18所述的计算装置,其中,控制器基于共享队列的状况来调节分配到第二进程的处理器的数量。
20、如权利要求18所述的计算装置,其中,控制器包括:
队列监视器,检查根据将在共享队列中处理的工作的数量确定的共享队列的长度。
21、如权利要求20所述的计算装置,其中,控制器还包括:
进程调节器,如果共享队列的长度大于预定的上限,则增加分配到第二进程的处理器的数量,如果共享队列的长度小于预定的下限,则减少分配到第二进程的处理器的数量。
22、如权利要求20所述的计算装置,其中,控制器还包括:
进程调节器,如果共享队列的长度大于预定的上限,则减少将被第二进程消费的数据的分配单元大小,如果共享队列的长度小于预定的下限,则增加将被第二进程消费的数据的分配单元大小。
23、如权利要求18所述的计算装置,其中,控制器包括:
队列监视器,计算根据将在共享队列中处理的数据的数量和具体时间确定的共享队列的运动平均值。
24、如权利要求23所述的计算装置,其中,控制器还包括:
进程调节器,如果共享队列的长度持续增加给定的一段时间,则增加被分配到第二进程的处理器的数量,如果共享队列的长度持续减少给定的一段时间,则减少被分配到第二进程的处理器的数量。
25、如权利要求23所述的计算装置,其中,控制器还包括:
进程调节器,如果共享队列的长度持续增加给定的一段时间,则减少将被第二进程消费的数据的分配单元大小,如果共享队列的长度持续减少给定的一段时间,则增加将被第二进程消费的数据的分配单元大小。
26、一种用于多处理环境中的计算装置,包括:
共享队列,被第一进程和第二进程共享,其中,第一进程产生数据,共享队列的条目是将由第二进程处理的工作;和
控制器,基于共享队列的状况来自适应地调节被分配到第二进程的处理器的数量和/或将被第二进程处理的数据的分配单元大小。
27、如权利要求26所述的计算装置,其中,控制器包括:
队列监视器,检查根据将在共享队列中处理的工作的数量确定的共享队列的长度;和
进程调节器,如果共享队列的长度大于预定的上限,则增加被分配到第二进程的处理器的数量和/或减少将被第二进程处理的数据的分配单元大小,如果共享队列的长度小于预定的下限,则减少被分配到第二进程的处理器的数量和/或增加将被第二进程处理的数据的分配单元大小。
28、如权利要求26所述的计算装置,其中,控制器计算共享队列的运动平均值,如果共享队列的长度变化指示增加趋势,则增加被分配到第二进程的处理器的数量和/或减少将被第二进程处理的数据的分配单元大小,如果共享队列的长度变化指示减少趋势,则减少被分配到第二进程的处理器的数量或增加将被第二进程处理的数据的分配单元大小。
29、如权利要求26所述的计算装置,其中,控制器通过将一个或多个处理器置为睡眠状态来调节分配到第二进程的处理器的数量。
30、一种存储用于在多处理环境中管理存储器的程序的计算机可读存储介质,包括引起计算机执行以下内容的命令:
确定被第一进程和第二进程共享的共享列队的长度和/或共享列队的长度变化,其中,第一进程产生数据,共享队列的条目是将由第二进程处理的工作;以及
基于共享列队的长度和/或共享列队的长度变化的状况来管理第二进程。
CN200910178219.XA 2008-09-26 2009-09-27 用于管理存储器的方法和存储器管理器 Expired - Fee Related CN101685409B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2008-0094760 2008-09-26
KR1020080094760A KR20100035394A (ko) 2008-09-26 2008-09-26 멀티 프로세싱에서의 메모리 관리장치 및 그 방법
KR1020080094760 2008-09-26

Publications (2)

Publication Number Publication Date
CN101685409A true CN101685409A (zh) 2010-03-31
CN101685409B CN101685409B (zh) 2014-07-16

Family

ID=41217727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910178219.XA Expired - Fee Related CN101685409B (zh) 2008-09-26 2009-09-27 用于管理存储器的方法和存储器管理器

Country Status (5)

Country Link
US (1) US9250968B2 (zh)
EP (1) EP2182441B1 (zh)
JP (1) JP5607909B2 (zh)
KR (1) KR20100035394A (zh)
CN (1) CN101685409B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2479268A (en) * 2010-04-01 2011-10-05 Intel Corp Affinitizing media application to execute on a multi-core processor
CN102906706A (zh) * 2010-05-24 2013-01-30 索尼电脑娱乐公司 信息处理装置及信息处理方法
CN106293674A (zh) * 2015-06-08 2017-01-04 宏碁股份有限公司 自动增减数据消费者的方法以及使用该方法的装置
CN106648898A (zh) * 2016-12-28 2017-05-10 深圳竹信科技有限公司 一种适用于多生产者多消费者模式的数据管理方法及系统
CN108228337B (zh) * 2016-12-22 2021-08-27 财团法人工业技术研究院 中央处理单元的配置方法及适用此方法的服务器

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914804B2 (en) * 2007-09-12 2014-12-16 Red Hat, Inc. Handling queues associated with web services of business processes
US8954952B2 (en) 2007-11-30 2015-02-10 Red Hat, Inc. Portable business process deployment model across different application servers
US8860981B2 (en) * 2010-03-29 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for print job scheduling
US8695008B2 (en) * 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
KR101863605B1 (ko) * 2011-09-19 2018-07-06 삼성전자주식회사 스트림 데이터를 고속으로 처리하는 프로세서
JP5874399B2 (ja) * 2012-01-05 2016-03-02 株式会社リコー 処理装置
US8726039B2 (en) * 2012-06-14 2014-05-13 International Business Machines Corporation Reducing decryption latency for encryption processing
US8930633B2 (en) 2012-06-14 2015-01-06 International Business Machines Corporation Reducing read latency using a pool of processing cores
US9311146B2 (en) * 2013-05-24 2016-04-12 International Business Machines Corporation Strategic placement of jobs for spatial elasticity in a high-performance computing environment
WO2015163506A1 (ko) * 2014-04-25 2015-10-29 전자부품연구원 그래픽 처리 장치의 동작을 위한 작업 할당 시스템 및 방법
US9836329B2 (en) * 2014-05-30 2017-12-05 Netapp, Inc. Decentralized processing of worker threads
US20160055615A1 (en) * 2014-11-11 2016-02-25 Mediatek Inc. Smart Frequency Boost For Graphics-Processing Hardware
CN114756341A (zh) 2016-03-04 2022-07-15 谷歌有限责任公司 计算机处理的资源调配
US20170289242A1 (en) * 2016-03-31 2017-10-05 David Keppel Technologies for dynamic work queue management
US10778660B1 (en) * 2016-09-21 2020-09-15 Amazon Technologies, Inc. Managing multiple producer consumer—systems with non-identical idempotency keys
US11134021B2 (en) * 2016-12-29 2021-09-28 Intel Corporation Techniques for processor queue management
US10558499B2 (en) * 2017-10-26 2020-02-11 Advanced Micro Devices, Inc. Wave creation control with dynamic resource allocation
WO2021010124A1 (ja) * 2019-07-17 2021-01-21 住友電気工業株式会社 車載装置、車両管理システム、リソース管理方法およびリソース管理プログラム
KR102139087B1 (ko) 2019-09-19 2020-07-29 주식회사 티맥스티베로 인덱스 리두 로그를 이용한 인덱스 복구를 위한 방법, 서버 및 컴퓨터 판독가능 저장매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230183B1 (en) * 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
US6604145B1 (en) * 1999-11-09 2003-08-05 International Business Machines Corporation Method and system for controlling information flow in a high frequency digital system from a producer to a buffering consumer via an intermediate buffer and a shared data path

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175984A (ja) 1992-12-05 1994-06-24 Hitachi Ltd 計算機システムにおける負荷分散方法
JP3541212B2 (ja) 1993-12-28 2004-07-07 富士通株式会社 プロセッサ割当て装置
JP2776338B2 (ja) 1995-10-03 1998-07-16 日本電気株式会社 ジョブスケジューリング方式
US6985477B2 (en) * 1998-03-26 2006-01-10 Cisco Technology, Inc. Method and apparatus for supporting multiservice digital signal processing applications
US6704799B1 (en) 1998-12-29 2004-03-09 Honeywell Inc. Time-efficient inter-process communication in a harmonic rate system
US6389489B1 (en) 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6598086B1 (en) 1999-11-09 2003-07-22 International Business Machines Corporation Method and system for controlling information flow in a high frequency digital system from a producer to a buffering consumer via an intermediate buffer
EP1331564A1 (en) * 2002-01-24 2003-07-30 Siemens Aktiengesellschaft Fuzzy logic based intelligent load control for distributed environment
US7243354B1 (en) 2002-04-08 2007-07-10 3Com Corporation System and method for efficiently processing information in a multithread environment
US7136800B1 (en) * 2002-10-18 2006-11-14 Microsoft Corporation Allocation of processor resources in an emulated computing environment
US7047337B2 (en) * 2003-04-24 2006-05-16 International Business Machines Corporation Concurrent access of shared resources utilizing tracking of request reception and completion order
WO2006092807A1 (en) * 2005-03-04 2006-09-08 Hewlett-Packard Development Company, L.P. A method and apparatus for facilitating pipeline throughput
JP2007188212A (ja) 2006-01-12 2007-07-26 Seiko Epson Corp マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム
US20070174411A1 (en) 2006-01-26 2007-07-26 Brokenshire Daniel A Apparatus and method for efficient communication of producer/consumer buffer status
JP4702127B2 (ja) 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US20080066066A1 (en) 2006-09-08 2008-03-13 Macpherson Michael B Task queue suitable for processing systems that use multiple processing units and shared memory
KR101286700B1 (ko) 2006-11-06 2013-07-16 삼성전자주식회사 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230183B1 (en) * 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
US6604145B1 (en) * 1999-11-09 2003-08-05 International Business Machines Corporation Method and system for controlling information flow in a high frequency digital system from a producer to a buffering consumer via an intermediate buffer and a shared data path

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2479268A (en) * 2010-04-01 2011-10-05 Intel Corp Affinitizing media application to execute on a multi-core processor
GB2479268B (en) * 2010-04-01 2014-11-05 Intel Corp Method and apparatus for interrupt power management
CN102906706A (zh) * 2010-05-24 2013-01-30 索尼电脑娱乐公司 信息处理装置及信息处理方法
US9658905B2 (en) 2010-05-24 2017-05-23 Sony Corporation Information processing apparatus and method for carrying out multi-thread processing
CN106293674A (zh) * 2015-06-08 2017-01-04 宏碁股份有限公司 自动增减数据消费者的方法以及使用该方法的装置
CN106293674B (zh) * 2015-06-08 2020-02-14 宏碁股份有限公司 自动增减数据消费者的方法以及使用该方法的装置
CN108228337B (zh) * 2016-12-22 2021-08-27 财团法人工业技术研究院 中央处理单元的配置方法及适用此方法的服务器
US11126470B2 (en) 2016-12-22 2021-09-21 Industrial Technology Research Institute Allocation method of central processing units and server using the same
CN106648898A (zh) * 2016-12-28 2017-05-10 深圳竹信科技有限公司 一种适用于多生产者多消费者模式的数据管理方法及系统

Also Published As

Publication number Publication date
KR20100035394A (ko) 2010-04-05
JP5607909B2 (ja) 2014-10-15
CN101685409B (zh) 2014-07-16
JP2010079908A (ja) 2010-04-08
US20100083273A1 (en) 2010-04-01
EP2182441A1 (en) 2010-05-05
US9250968B2 (en) 2016-02-02
EP2182441B1 (en) 2018-12-12

Similar Documents

Publication Publication Date Title
CN101685409B (zh) 用于管理存储器的方法和存储器管理器
US20190087090A1 (en) Method and device for scheduling virtual disk input and output ports
JP4084765B2 (ja) コンピューティングリソースを自動的に割り振る方法
JP6047747B2 (ja) 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム
CN102043675B (zh) 一种基于任务处理请求任务量大小的线程池管理方法
US8650296B1 (en) Workload reallocation involving inter-server transfer of software license rights and intra-server transfer of hardware resources
US20120060170A1 (en) Method and scheduler in an operating system
CN102906696A (zh) 计算机系统的细粒性能资源管理
DE202012011944U1 (de) Vorrichtung und System zur Energie-Effizienz und Energie-Einsparung mit einem Strom- und Leistungsabgleich zwischen mehreren Verarbeitungselementen
US20070150425A1 (en) Method and apparatus for improving block allocation times in a computer system
US20140189413A1 (en) Distributed power management for multi-core processors
TWI533146B (zh) 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體
JP5616523B2 (ja) 情報処理システム
CN110300959B (zh) 用于动态运行时任务管理的方法、系统、设备、装置和介质
US20200385726A1 (en) Oversubscription scheduling
US20150241943A1 (en) Distributed power management with performance and power boundaries
US8769201B2 (en) Technique for controlling computing resources
CN108073457A (zh) 一种超融合基础架构的分层资源管理方法、装置及系统
JP2006031525A (ja) 情報処理装置および情報処理方法、並びに、プログラム
US8839261B1 (en) Guaranteed core access in a multiple core processing system
Awasthi et al. Managing data placement in memory systems with multiple memory controllers
KR101533820B1 (ko) 메모리 관리장치 및 그 방법
CN108897618A (zh) 一种异构内存架构下基于任务感知的资源分配方法
US11836525B2 (en) Dynamic last level cache allocation for cloud real-time workloads
US9389919B2 (en) Managing workload distribution among computer systems based on intersection of throughput and latency models

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140716

Termination date: 20180927