JP2010079908A - メモリ管理装置及びその方法 - Google Patents

メモリ管理装置及びその方法 Download PDF

Info

Publication number
JP2010079908A
JP2010079908A JP2009223236A JP2009223236A JP2010079908A JP 2010079908 A JP2010079908 A JP 2010079908A JP 2009223236 A JP2009223236 A JP 2009223236A JP 2009223236 A JP2009223236 A JP 2009223236A JP 2010079908 A JP2010079908 A JP 2010079908A
Authority
JP
Japan
Prior art keywords
information
shared
processors
shared queue
length
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
JP2009223236A
Other languages
English (en)
Other versions
JP5607909B2 (ja
Inventor
Kue-Hwan Shin
圭 桓 辛
Hyun-Ki Baik
賢 基 白
Jong-Tae Kim
鍾 泰 金
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 JP2010079908A publication Critical patent/JP2010079908A/ja
Application granted granted Critical
Publication of JP5607909B2 publication Critical patent/JP5607909B2/ja
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
    • 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
    • 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

【課題】 マルチプロセッシングでのメモリ管理装置及びその方法を提供する。
【解決手段】 情報を生成する情報生成プロセスと生成された情報を消費する情報消費プロセスとが互いに共有し、該共有する情報を保存する共有キューの状態に基づいて、情報消費プロセスに割り当てられたプロセッサの数や情報割り当て単位を調整するメモリ管理装置。これにより、情報消費プロセスが使う作業キューの接近を適切に制限することによって、マルチコアやマルチプロセッサ環境でマルチプロセッシングを効率的に遂行しうる。
【選択図】 図1

Description

本発明は、プロセッシングに係り、より詳細には、マルチプロセッシングでのメモリ管理装置及びその方法に関する。
マルチコア(multicore)やマルチプロセッサ(multiprocessor)が存在するマルチプロセッシング環境で、それぞれのコアやプロセッサに割り当てられるプロセス(process)やスレッド(thread)は、キュー(queue)のようなメモリを互いに共有しながら作業キューに保存された情報を処理する。
マルチプロセッシング環境では、ある作業(workload)を行うのに当って、多数のプロセスが存在することができる。これらプロセス中には、作業を行いながら情報を生成する情報生成プロセス(producer process)もあり、作業を行いながら情報を消費する情報消費プロセス(consumer process)がある。例えば、ビデオデコーダをマルチプロセスとして具現する場合、可変長デコーディング(variable length decoding)を行うプロセスは情報生成プロセスに該当し、マクロブロック(macroblock)を処理するプロセスは情報消費プロセスに該当する。
このように情報生成プロセスと情報消費プロセスとをともに動作させるプロデューサコンシューマ(producer−consumer)形態の作業処理時、情報生成プロセスと情報消費プロセスとが共有する作業キューを効率的に活用できるようにして、全体的な作業効率(performance)を高めることが重要である。
しかし、従来には、マルチプロセッシング環境で作業効率を高めるために、プロセスに割り当てられたプロセッサの数を一方的に増やして処理速度を高めようとする場合がある。しかし、作業キューの状態を確認せずに一方的にプロセスに割り当てられたプロセッサの数のみ増やす場合、他のプロセスに割り当てられねばならない作業キュー接近時間が減って、むしろ全体の作業効率が低下する。これにより、プロセスに割り当てられたプロセッサの数を一定数に制限するか、予め決定する場合もあるが、これも作業の特性と無関係に一定数のプロセッサを使わせることによって、作業の特性を反映することはできない。さらに、他の伝統的な方法は、メモリバスの構造(architecture)の変更を必要とすると知られている。
本発明の一態様によって、マルチコアやマルチプロセッサのようなマルチプロセッシング環境でのメモリ管理装置及び方法を提供しようとする。
本発明の一態様によるメモリ管理装置は、マルチプロセッシング環境でのメモリ管理装置において、データの生成に割り当てられねばならない一つまたはそれ以上の情報生産プロセッサと、前記生成されたデータの消費に割り当てられねばならない一つまたはそれ以上の情報消費プロセッサと、メモリと前記プロセッサとの間の帯域状態に基づいて、前記一つまたはそれ以上の情報消費プロセッサを管理する制御部と、を含む。
前記制御部は、前記メモリと前記プロセッサとの間の帯域状態をチェックする帯域監視部をさらに含みうる。
また、本発明の他の態様によるマルチプロセッシングでのメモリ管理方法は、情報生成プロセス、情報消費プロセス及びメモリを含むマルチプロセッシング環境でのメモリ管理方法において、前記メモリと、前記情報生成プロセッサと情報消費プロセスに割り当てられる一つまたはそれ以上のプロセッサとの間の帯域状態をチェックする段階と、前記帯域状態に基づいて、前記情報消費プロセスを管理する段階と、を含む。
一方、本発明のまた他の態様によるマルチプロセッシングでのメモリ管理装置は、データを生成する第1プロセスと前記第1プロセスによって生成されたデータを消費する第2プロセスとによって共有される共有キューと、前記共有キューの状態に基づいて、前記第2プロセスを管理する制御部と、を含む。
また、本発明の他の態様によるマルチプロセッシングでの管理装置は、第1プロセスと第2プロセスとが互いに共有し、前記第1プロセスが生成するデータは、前記第2プロセスによって処理される作業(job)であり、このデータを保存する共有キューと、前記共有キューの状態に基づいて、前記第2プロセスに割り当てられたプロセッサの数を調整するか、前記第2プロセスで消費する情報の割り当て単位を調整する制御部と、を含む。
本発明の一態様によれば、情報消費プロセスが使う作業キューの接近を適切に制限することによって、マルチコアやマルチプロセッサ環境でマルチプロセッシングを効率的に遂行しうる。
そして、不要なプロセッサは休ませることによって、全体の使用電力も減少させることができる。また、処理作業や使われる情報の特性によって適応的にプロセッサの割り当てを調整するので、作業遂行に先立って予めプロセッサの数や情報の割り当て程度を設定する必要がない。
本発明の一実施形態によるメモリとメモリ管理装置とを含むコンピューティング装置の構成図である。 共有キューの長さによって情報消費プロセスに割り当てられたプロセッサの数を調整することを説明するための参照図である。 共有キューの長さによって情報消費プロセスに割り当てられたプロセッサの数を調整することを説明するための参照図である。 共有キューの長さによって情報消費プロセスに割り当てられる情報割り当て単位の大きさを調整することを説明するための参照図である。 本発明の一実施形態によるメモリ管理方法のフローチャートである。
以下、添付した図面を参照して、本発明の望ましい実施形態を詳しく説明する。本発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、本発明の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。また、後述する用語は、本発明での機能を考慮して定義された用語であって、これは、ユーザ、運用者の意図または慣例などによって変わりうる。したがって、その定義は、本明細書全般に亘った内容に基づいて下されなければならない。
図1は、本発明の一実施形態によるメモリ110とメモリ管理装置とを含むコンピューティング装置の構成図である。
メモリ110は、共有キュー111とデータ領域112とを含みうる。メモリ管理装置は、メモリ110をアクセスし、制御部140と多数のプロセッサ121、132、134、136とを含む。制御部140は、一つまたはそれ以上のプロセッサ上で具現可能である。そして、制御部140は、帯域監視部141とプロセス調整部144とをさらに含む。帯域監視部141は、キュー状態監視部142をさらに含みうる。
共有キュー111は、ジョブ(job)とジョブとのためのデータを生成する情報生成プロセス120と、ジョブを処理することでデータを消費する情報消費プロセス130とによって互いに共有される。ここで、ジョブは、例えば、情報消費プロセス130によって処理されるジョブについて説明(description)になりうる。そして、作業過程で情報生成プロセス120によって作られたジョブは、共有キュー111に保存され、ジョブのためのデータは、データ領域112に保存されうる。情報消費プロセス130は、共有キュー111に保存されたジョブによって、メモリ110のデータ領域112にあるジョブのためのデータを読み取って処理することができる。情報生成プロセス120は、ジョブを共有キュー111に入れる。情報消費プロセス130は、この共有キュー111からジョブを読み取り、ジョブ説明(description)によってデータ領域112からデータを処理する。したがって、共有キュー111の長さは、情報生成プロセス120によって生成されるジョブの数と情報消費プロセス130によって消費されるジョブの数とによって可変される。
例えば、情報生成プロセス120が、10個のジョブを生成して情報消費プロセス130が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の長さに基づいて、メモリとプロセッサとの間の帯域をチェックする。そして、プロセス調整部144は、チェックされた共有キューの長さが、例えば、一定の上限値以上であれば、情報消費プロセス130に割り当てられたプロセッサの数を増加させ、一定の下限値以下であれば、情報消費プロセス130に割り当てられたプロセッサの数を減少させる。上限値と下限値は、さまざまな作業を行って最適の性能が表われる値を平均値にして、それより5%〜30%程度上に上限値を設定し、平均値より5%〜30%低い位置に下限値を設定することができる。このようにして定められた数のプロセッサのみ情報消費プロセス130作業に参与し、それ以外に情報処理を行わないプロセッサを待機(sleep)させることによって、電力消費を減少させることができる。
一方、共有キュー111の長さの変化量を有して情報消費プロセス130に割り当てられたプロセッサの個数を調整することもできる。言い換えれば、キュー状態監視部142は、チェックされた共有キューの移動平均(moving average)を計算して共有キュー長さの変化量を測定する。この変化量が一定の時間の間に持続的に増加すれば、情報消費プロセス130に割り当てられたプロセッサの数を増加させ、一定の時間の間に持続的に減少すれば、情報消費プロセス130に割り当てられたプロセッサの数を減少させる。
他の一例として、制御部140は、メモリ110とプロセッサ121、132、134、136との間の帯域状態に基づいて、情報消費プロセス130で消費するデータの割り当て単位の大きさを調整することができる。メモリ帯域の状態は、共有キュー111の状態に基づいて、チェックされることができる。割り当て単位の大きさ調整は、前述したプロセッサの数の調整の代わりに、またはこれに追加して遂行されうる。例えば、制御部140は、共有キュー111の長さが長ければ、情報消費プロセス130に伝達するデータの割り当て単位を小さくし、長さが短くなれば、情報消費プロセス130に伝達するデータの割り当て単位を大きくする。例えば、共有キュー111に保存されたデータ、すなわち、エントリー(entry)を即時に情報消費プロセス130で読み取って処理するものではなく、一定の割り当て単位になるまで待って、その単位になれば、情報消費プロセス130で処理する。
言い換えれば、共有キュー111にデータが少ない個数のみ積もってもすぐ情報消費プロセス130が処理するか、一定の程度積もるまで待って、処理するようにデータの割り当て単位を制御する。
したがって、キュー状態監視部142は、共有キュー111で処理せねばならないデータの数によって決定される共有キューの長さをチェックする。そして、プロセス調整部144は、チェックされた共有キューの長さが、特定の上限値以上であれば、情報消費プロセス130で消費するデータの割り当て単位の大きさを減少させ、特定の下限値以下であれば、情報消費プロセス130で消費するデータの割り当て単位の大きさを増加させる。
言い換えれば、共有キュー111に残っているエントリーの大きさが現在割り当て単位になるまで情報消費プロセスに割り当てられたプロセッサは、休止(sleep)状態に入るようにして情報生産プロセス120がメモリをより円滑にアクセスできるようにする。そして、これにより、不要なプロセッサを休ませて電力消費も減らすことができる。また、割り当て単位を調整することによって、情報消費プロセスの休止状態持続如何を調整して情報生産プロセス120がメモリをより円滑にアクセスできるようにする。
一方、共有キューの長さではなく、共有キューの長さの変化量を有して情報消費プロセス130で消費するデータの割り当て単位の大きさを調整することもできる。したがって、プロセス調整部144は、チェックされた共有キューの移動平均を計算して共有キュー長さの変化量が一定の時間の間に持続的に増加すれば、情報消費プロセス130で消費する情報の割り当て単位の大きさを減少させ、一定の時間の間に持続的に減少すれば、情報消費プロセス130で消費するデータの割り当て単位の大きさを増加させる。
図2A及び図2Bは、共有キューの長さによって情報消費プロセスに割り当てられたプロセッサの数を調整することを説明するための参照図である。
図1及び図2Aを参照するに、最初に共有キュー111の長さが上限値以上であれば、例えば、情報消費プロセス130に少ない数の情報消費プロセッサが割り当てられて、メモリとプロセッサとの間の帯域が飽和されていない状態を意味する。したがって、制御部140は、情報消費プロセス130に割り当てられたプロセッサの数を増加させる。そして、共有キュー111の長さが下限値以下に落ちれば、これは、たとえば、情報消費プロセス130にあまりにも多いプロセッサが割り当てられて、メモリとプロセッサとの間の帯域が飽和された状態であるということを意味する。したがって、制御部140は、情報消費プロセス130に割り当てられたプロセッサの数を減少させる。このような過程を経て情報消費プロセス130に割り当てられたプロセッサの数を最適の数に調整する。
そして、図1及び図2Bを参照するに、共有キュー111長さの変動分が0より小さければ、例えば、情報生産プロセス120が生産するジョブより情報消費プロセス130が消費するジョブがさらに多くて共有キュー111の長さが減少し続ける場合には、情報消費プロセス130に割り当てられたプロセッサの数を減少させ、情報生産プロセス120が生産するジョブより情報消費プロセス130が消費するジョブがさらに少なくて共有キューの長さが増加し続ける場合には、情報消費プロセス130に割り当てられたプロセッサの数を増加させるということが分かる。
図3は、共有キューの長さによって情報消費プロセスに割り当てられる情報割り当て単位の大きさを調整することを説明するための参照図である。
図1及び図3を参照するに、最初に共有キュー111の長さが上限値以上であるので、情報消費プロセス130に割り当てられるデータ割り当て単位の大きさを減少させながら、下限値以下に落ちれば、情報消費プロセス130に割り当てられるデータ割り当て単位の大きさを増加させるということが分かる。このような過程を経て情報消費プロセス130に割り当てられるデータ割り当て単位の大きさを調整する。
図4は、本発明の一実施形態によるメモリ管理方法のフローチャートである。
本メモリ管理方法は、図1を参照して、前述したメモリ管理装置で遂行されうる。図1を参照するに、ジョブを生成する情報生産プロセスとそのように生成されたジョブを消費する多数の情報消費プロセスとが互いに共有し、該共有するジョブを保存する共有キューの長さまたは長さの変動分を把握する(S310)。
そして、把握された共有キュー111の状態に基づいて、情報消費プロセス130を管理する。例えば、プロセスが共有キュー111をそれ以上近付けられない程度にメモリ帯域が飽和状態であるか否かを判断する(S320)。そして、メモリ帯域が飽和状態であれば、例えば、共有キュー111の長さが一定の下限値以下であれば、情報消費プロセス130に割り当てられたプロセッサの数を減少させるか、及び/または情報消費プロセス130で消費するデータの割り当て単位の大きさを増加させる(S330)。一方、前述したように、共有キュー111の長さではなく、共有キュー111の長さの変化量が一定の時間の間に負である場合にも、情報消費プロセス130に割り当てられたプロセッサの数を減少させるか、情報消費プロセス130で消費するデータの割り当て単位の大きさを増加させることもできる。
メモリ帯域が飽和されていなければ、次に、共有キュー111を観察してメモリ帯域が余裕ある状態であるか否かを判断する(S340)。余裕ある状態(under−saturated)であれば、例えば、共有キュー111の長さが一定の上限値以上であれば、情報消費プロセス130に割り当てられたプロセッサの数を増加させるか、情報消費プロセス130で消費するデータの割り当て単位の大きさを減少させる(S350)。一方、共有キュー111の長さではなく、共有キュー111の長さの変化量が一定の時間の間に正である場合にも、情報消費プロセス130に割り当てられたプロセッサの数を増加させるか、及び/または情報消費プロセス130で消費するデータの割り当て単位の大きさを減少させることもできる。
次いで、情報生産プロセス120の動作が停止したか否かをさらに判断して(S360)、情報生産プロセス120の動作が停止したならば、終了し、そうではなければ、再び最初段階(S310)に戻って共有キュー111の状態を把握する。
以上、本発明の望ましい実施形態を中心に説明した。当業者は、本発明が、本発明の本質的な特性から外れない範囲で変形された形態として具現可能であるということを理解できるであろう。したがって、開示された実施形態は限定的な観点ではなく、説明的な観点で考慮されなければならない。本発明の範囲は、特許請求の範囲に表われており、それと同等な範囲内にあるあらゆる差点は、本発明に含まれたものと解析されなければならない。
本発明は、マルチプロセッシングでのメモリ管理装置及びその方法関連の技術分野に適用可能である。
110 メモリ
111 共有キュー
112 データ
120 情報生産プロセス
121 情報生産プロセッサ
132 第1情報消費プロセッサ
134 第2情報消費プロセッサ
136 第3情報消費プロセッサ
130 情報消費プロセス
141 帯域監視部
142 キュー状態監視部
144 プロセス調整部
140 制御部

Claims (30)

  1. マルチプロセッシング環境でのメモリ管理装置において、
    ジョブの生成に割り当てられねばならない一つまたはそれ以上の情報生産プロセッサと、
    前記生成されたジョブの消費に割り当てられねばならない一つまたはそれ以上の情報消費プロセッサと、
    メモリと前記プロセッサとの間の帯域状態に基づいて、前記一つまたはそれ以上の情報消費プロセッサを管理する制御部と、
    を含むことを特徴とするメモリ管理装置。
  2. 前記制御部は、
    前記メモリと前記プロセッサとの間の帯域状態をチェックする帯域監視部をさらに含むことを特徴とする請求項1に記載のメモリ管理装置。
  3. 前記帯域監視部は、
    前記プロセッサが互いに共有する共有キューで処理されるジョブの数によって決定される共有キューの長さをチェックするキュー状態監視部を含むことを特徴とする請求項2に記載のメモリ管理装置。
  4. 前記帯域監視部は、
    前記プロセッサが互いに共有する共有キューで処理されるジョブの数と所定時間とによって決定される、共有キューの移動平均(moving average)を計算するキュー状態監視部を含むことを特徴とする請求項2に記載のメモリ管理装置。
  5. 前記制御部は、
    前記メモリと前記プロセッサとの間の帯域状態に基づいて、前記生成されたジョブの消費に割り当てられるプロセッサの数を調整することを特徴とする請求項1に記載のメモリ管理装置。
  6. 前記制御部は、
    前記プロセッサが互いに共有する、前記チェックされた共有キューの長さが、所定の上限値以上であれば、前記情報消費プロセッサの数を増加させ、所定の下限値以下であれば、前記情報消費プロセッサの数を減少させるプロセス調整部を含むことを特徴とする請求項5に記載のメモリ管理装置。
  7. 前記制御部は、
    前記プロセッサが互いに共有する、前記チェックされた共有キューの長さが、所定の上限値以上であれば、前記情報消費プロセッサで消費するデータの割り当て単位の大きさを減少させ、所定の下限値以下であれば、前記情報消費プロセッサで消費するデータの割り当て単位の大きさを増加させるプロセス調整部を含むことを特徴とする請求項5に記載のメモリ管理装置。
  8. 前記制御部は、
    前記プロセッサが互いに共有する共有キュー長さが、所定時間の間に持続的に増加すれば、前記情報消費プロセッサの数を増加させ、所定時間の間に持続的に減少すれば、前記情報消費プロセッサの数を減少させることを特徴とする請求項5に記載のメモリ管理装置。
  9. 前記制御部は、
    前記プロセッサが互いに共有する共有キュー長さが、所定時間の間に持続的に増加すれば、前記情報消費プロセッサで消費するデータの割り当て単位の大きさを減少させ、所定時間の間に持続的に減少すれば、前記情報消費プロセッサで消費するデータの割り当て単位の大きさを増加させることを特徴とする請求項5に記載のメモリ管理装置。
  10. 情報生成プロセス、情報消費プロセス及びメモリを含むマルチプロセッシング環境でのメモリ管理方法において、
    前記メモリと、前記情報生成プロセッサと情報消費プロセスに割り当てられる一つまたはそれ以上のプロセッサとの間の帯域状態をチェックする段階と、
    前記帯域状態に基づいて、前記情報消費プロセスを管理する段階と、
    を含むことを特徴とするメモリ管理方法。
  11. 前記チェックする段階は、
    前記情報生成プロセッサと情報消費プロセスとが共有する共有キューで処理されるジョブの数によって決定される共有キューの長さを決定することを特徴とする請求項10に記載のメモリ管理方法。
  12. 前記管理する段階は、
    前記帯域状態に基づいて、前記情報消費プロセスに割り当てられるプロセッサの数を調整することを特徴とする請求項10に記載のメモリ管理方法。
  13. 前記プロセッサの数を調整することは、
    前記情報生成プロセッサと情報消費プロセスとが互いに共有する、前記チェックされた共有キューの長さが、所定の上限値以上であれば、前記情報消費プロセスに割り当てられるプロセッサの数を増加させ、所定の下限値以下であれば、前記情報消費プロセスに割り当てられるプロセッサの数を減少させることを特徴とする請求項12に記載のメモリ管理方法。
  14. 前記プロセッサの数を調整することは、
    前記情報生成プロセッサと情報消費プロセスとが互いに共有する共有キュー長さが、所定時間の間に持続的に増加すれば、前記情報消費プロセスに割り当てられるプロセッサの数を増加させ、所定時間の間に持続的に減少すれば、前記情報消費プロセスに割り当てられるプロセッサの数を減少させることを特徴とする請求項12に記載のメモリ管理方法。
  15. 前記管理する段階は、
    前記情報生成プロセッサと情報消費プロセスとが互いに共有する、前記チェックされた共有キューの長さが、所定の上限値以上であれば、前記情報消費プロセスで消費するデータの割り当て単位の大きさを減少させ、所定の下限値以下であれば、前記情報消費プロセスで消費するデータの割り当て単位の大きさを増加させることを特徴とする請求項10に記載のメモリ管理方法。
  16. 前記管理する段階は、
    前記情報生成プロセッサと情報消費プロセスとが互いに共有する共有キュー長さが、所定時間の間に持続的に増加すれば、前記情報消費プロセスで消費するデータの割り当て単位の大きさを減少させ、所定の下限値以下であれば、前記情報消費プロセスで消費するデータの割り当て単位の大きさを増加させることを特徴とする請求項10に記載のメモリ管理方法。
  17. 前記帯域状態をチェックすることは、前記情報生成プロセッサと情報消費プロセスとが互いに共有する共有キューの移動平均を計算することで共有キューの長さ変化量を決定することを特徴とする請求項10に記載のメモリ管理方法。
  18. ジョブを生成する第1プロセスと前記第1プロセスによって生成されたジョブを消費する第2プロセスとによって共有される共有キューと、
    前記共有キューの状態に基づいて、前記第2プロセスを管理する制御部と、
    を含むことを特徴とするマルチプロセッシングで使われるコンピューティング装置。
  19. 前記制御部は、
    前記共有キューの状態に基づいて、前記第2プロセスに割り当てられるプロセッサの数を調整することを特徴とする請求項18に記載のマルチプロセッシングで使われるコンピューティング装置。
  20. 前記制御部は、
    前記共有キューで処理されるジョブの数によって決定される共有キューの長さをチェックするキュー状態監視部をさらに含むことを特徴とする請求項18に記載のマルチプロセッシングで使われるコンピューティング装置。
  21. 前記制御部は、
    前記共有キューの長さが、所定の上限値以上であれば、前記第2プロセスに割り当てられるプロセッサの数を増加させ、所定の下限値以下であれば、前記第2プロセスに割り当てられるプロセッサの数を減少させるプロセス調整部をさらに含むことを特徴とする請求項20に記載のマルチプロセッシングで使われるコンピューティング装置。
  22. 前記制御部は、
    前記共有キューの長さが、所定の上限値以上であれば、前記第2プロセスに消費されるデータの割り当て単位の大きさを減少させ、所定の下限値以下であれば、前記第2プロセスに消費されるデータの割り当て単位の大きさを増加させるプロセス調整部をさらに含むことを特徴とする請求項20に記載のマルチプロセッシングで使われるコンピューティング装置。
  23. 前記制御部は、
    前記共有キューで処理せねばならないジョブの数と所定時間とによって決定される前記共有キューの移動平均を計算するキュー状態監視部をさらに含むことを特徴とする請求項18に記載のマルチプロセッシングで使われるコンピューティング装置。
  24. 前記制御部は、
    前記共有キュー長さが、所定時間の間に持続的に増加すれば、前記第2プロセスに割り当てられるプロセッサの数を増加させ、所定時間の間に持続的に減少すれば、前記第2プロセスに割り当てられるプロセッサの数を減少させるプロセス調整部をさらに含むことを特徴とする請求項23に記載のマルチプロセッシングで使われるコンピューティング装置。
  25. 前記制御部は、
    前記共有キュー長さが、所定時間の間に持続的に増加すれば、前記第2プロセスで消費されるデータの割り当て単位の大きさを減少させ、所定時間の間に持続的に減少すれば、前記第2プロセスで消費されるデータの割り当て単位の大きさを増加させるプロセス調整部をさらに含むことを請求項23に記載のマルチプロセッシングで使われるコンピューティング装置。
  26. 第1プロセスと第2プロセスとが互いに共有し、前記第1プロセスが生成するデータは、前記第2プロセスによって処理される作業(job)であり、このデータを保存する共有キューと、
    前記共有キューの状態に基づいて、前記第2プロセスに割り当てられたプロセッサの数を調整するか、前記第2プロセスで消費する情報の割り当て単位を調整する調整部と、
    を含むことを特徴とするマルチプロセッシングでの管理装置。
  27. 前記制御部は、
    前記共有キューで処理せねばならないジョブの数によって決定される共有キューの長さをチェックするキュー状態監視部と、
    前記チェックされた共有キューの長さが、所定の上限値以上であれば、前記第2プロセスに割り当てられたプロセッサの数を増加させるか、前記第2プロセスで消費するデータの割り当て単位を減少させ、所定の下限値以下であれば、前記第2プロセスに割り当てられたプロセッサの数を減少させるか、前記第2プロセスで消費するデータの割り当て単位を増加させるプロセス調整部と、
    を含むことを特徴とする請求項26に記載のマルチプロセッシングでのメモリ管理装置。
  28. 前記制御部は、
    前記チェックされた共有キューの移動平均を計算して、共有キュー長さの変化量が持続的に増加すれば、前記第2プロセスに割り当てられたプロセッサの数を増加させるか、前記第2プロセスで消費するデータの割り当て単位の大きさを減少させ、持続的に減少すれば、前記第2プロセスに割り当てられたプロセッサの数を減少させるか、前記第2プロセスで消費するデータの割り当て単位の大きさを増加させることを特徴とする請求項26に記載のマルチプロセッシングでのメモリ管理装置。
  29. 前記制御部は、
    前記少なくとも一つのプロセッサをスリープモードで置くことによって、前記第2プロセスに割り当てられたプロセッサの数を調整することを特徴とする請求項26に記載のマルチプロセッシングでのメモリ管理装置。
  30. データとエントリーを生成する第1プロセスと前記生成されたデータとエントリーを消費する第2プロセスとが互いに共有し、前記共有されるデータとエントリーを保存する共有キューの長さまたは長さの変動分を把握する段階と、
    前記把握された共有キュー長さ状態に基づいて、前記第2プロセスを管理する段階と、
    を含むマルチプロセッシングでのメモリ管理方法をコンピュータで実行させることができるプログラムを記録したコンピュータで読み取り可能な情報記録媒体。
JP2009223236A 2008-09-26 2009-09-28 メモリ管理装置及びその方法 Expired - Fee Related JP5607909B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JP2010079908A true JP2010079908A (ja) 2010-04-08
JP5607909B2 JP5607909B2 (ja) 2014-10-15

Family

ID=41217727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009223236A Expired - Fee Related JP5607909B2 (ja) 2008-09-26 2009-09-28 メモリ管理装置及びその方法

Country Status (5)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014510357A (ja) * 2011-04-05 2014-04-24 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム
JP2019508795A (ja) * 2016-03-04 2019-03-28 グーグル エルエルシー コンピュータ処理のためのリソース割当て
WO2021010124A1 (ja) * 2019-07-17 2021-01-21 住友電気工業株式会社 車載装置、車両管理システム、リソース管理方法およびリソース管理プログラム

Families Citing this family (21)

* 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
US8607083B2 (en) 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
WO2011148553A1 (ja) 2010-05-24 2011-12-01 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
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
CN106293674B (zh) * 2015-06-08 2020-02-14 宏碁股份有限公司 自动增减数据消费者的方法以及使用该方法的装置
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
CN108228337B (zh) * 2016-12-22 2021-08-27 财团法人工业技术研究院 中央处理单元的配置方法及适用此方法的服务器
CN106648898A (zh) * 2016-12-28 2017-05-10 深圳竹信科技有限公司 一种适用于多生产者多消费者模式的数据管理方法及系统
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
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
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
JP2007188212A (ja) * 2006-01-12 2007-07-26 Seiko Epson Corp マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム

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 日本電気株式会社 ジョブスケジューリング方式
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
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
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
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
JP2007188212A (ja) * 2006-01-12 2007-07-26 Seiko Epson Corp マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014510357A (ja) * 2011-04-05 2014-04-24 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム
JP2019508795A (ja) * 2016-03-04 2019-03-28 グーグル エルエルシー コンピュータ処理のためのリソース割当て
US10558501B2 (en) 2016-03-04 2020-02-11 Google Llc Resource allocation for computer processing
WO2021010124A1 (ja) * 2019-07-17 2021-01-21 住友電気工業株式会社 車載装置、車両管理システム、リソース管理方法およびリソース管理プログラム

Also Published As

Publication number Publication date
CN101685409A (zh) 2010-03-31
KR20100035394A (ko) 2010-04-05
JP5607909B2 (ja) 2014-10-15
CN101685409B (zh) 2014-07-16
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
JP5607909B2 (ja) メモリ管理装置及びその方法
US9715397B2 (en) Methods and apparatuses for controlling thread contention
JP5182792B2 (ja) マルチコアプロセッサ制御方法及び装置
JP5469940B2 (ja) 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
US10509677B2 (en) Granular quality of service for computing resources
KR102110812B1 (ko) 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
TW200426688A (en) Performance scheduling using multiple constraints
JP2008287592A (ja) マルチプロセッサ制御装置とその制御方法
JP2010165259A (ja) 情報処理装置および情報処理方法
US20130246781A1 (en) Multi-core system energy consumption optimization
KR20110073631A (ko) 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
JP4620768B2 (ja) 複数のコアを含むプロセッサを有するコンピュータ・システムの制御
JP2010039802A (ja) マルチプロセッサシステム、スケジューリング方法およびそのプログラム
JP2013149221A (ja) プロセッサの制御装置およびその方法
JP2007172322A (ja) 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム
JPWO2015015756A1 (ja) 不揮発性メモリ搭載サーバの省電力制御システム、制御装置、制御方法および制御プログラム
JP5585651B2 (ja) マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
JP5440937B2 (ja) スレッド数制限装置、スレッド数制限方法およびスレッド数制限プログラム
KR101533820B1 (ko) 메모리 관리장치 및 그 방법
JP2013114538A (ja) 情報処理装置、情報処理方法及び制御プログラム
JP5958395B2 (ja) コンピュータシステム
KR20160061726A (ko) 인터럽트 핸들링 방법
CN101661406A (zh) 处理单元调度装置和方法
JP6074932B2 (ja) 演算処理装置及び演算処理方法
KR101603711B1 (ko) 그래픽 처리 장치의 동작을 위한 작업 할당 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140718

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140728

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140812

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140829

R150 Certificate of patent or registration of utility model

Ref document number: 5607909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees