JP2005531860A - マルチプロセッサコンピュータシステム - Google Patents
マルチプロセッサコンピュータシステム Download PDFInfo
- Publication number
- JP2005531860A JP2005531860A JP2004519085A JP2004519085A JP2005531860A JP 2005531860 A JP2005531860 A JP 2005531860A JP 2004519085 A JP2004519085 A JP 2004519085A JP 2004519085 A JP2004519085 A JP 2004519085A JP 2005531860 A JP2005531860 A JP 2005531860A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- cache memory
- process list
- list
- computer system
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 188
- 230000004913 activation Effects 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5014—Reservation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Power Sources (AREA)
Abstract
本発明は、プロセスを並列に実行する少なくとも2つのプロセッサと、それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットとを具備してなるマルチプロセッサコンピュータシステムに関する。実行プロセスが利用可能な場合に高速の起動手順を保証する一方で、そのような利用可能な実行プロセスがない場合に節電を可能とするために、本発明によれば、前記プロセッサは、前記プロセスリストへのプロセスのプロセス付加を通知するグローバル起動変数をそれらの関連するキャッシュメモリユニットにロードし、前記プロセッサが実行するプロセスが前記プロセスリストに含まれていない場合には低電力モードに切替わり、前記起動変数が前記プロセスリストへのプロセスの付加を通知する場合には通常電力モードに切替わるように適合化されることが提案される。そのため、本発明によれば、実行されるプロセスの利用可能性を伝達しかつ通知するためのキャッシュ一貫性プロトコルを用いる。
Description
本発明は、
プロセスを並列に実行する少なくとも2つのプロセッサと、
それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、
前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、
前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットと、を備えるマルチプロセッサコンピュータシステムに関する。
プロセスを並列に実行する少なくとも2つのプロセッサと、
それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、
前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、
前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットと、を備えるマルチプロセッサコンピュータシステムに関する。
また、本発明は、対応するプロセッサ、プロセスの実行をスケジューリングする方法、およびこのようなマルチプロセッサコンピュータシステムにおいてプロセッサによりプロセスを実行する方法に関する。さらに、本発明は、前記方法を実施するコンピュータプログラムに関する。
マルチプロセッサコンピュータシステムは複数のプロセスを並列に実行する。各プロセッサは、実行可能な状態のプロセスを繰り返し選択し、プロセスがブロックするまで、または割込みスケジューリングの場合には実行中のプロセスのタイムスライスが終了するまで実行する。プロセッサまたは特にその関連するスケジューラが選択できるプロセスがない場合、プロセッサまたはそのスケジューラは、実行可能なレディープロセス(ready process)がプロセスリストで利用可能となるまで、それぞれスピンループで待機する。レディープロセスは、他のプロセッサで実施されているプロセスが実行するブロック解除操作、例えばVセマフォー操作によって利用可能になる。
電力消費を節約するためには、レディープロセスが利用可能になるまでプロセッサを回転させておくのではなく、プロセッサを低電力またはスリープモードに切替えることが好ましい。しかし、大きな経費をかけずに他のプロセッサがスリープ状態のプロセッサを起動できることが重要である。プロセッサをスリープモードから起動させる標準的な方法は、プロセッサに割り込みを送ることである。この方法では、細粒度の同期を有する多くの並列アプリケーションの場合に経費が大きくなる場合がある。
従って、本発明の目的は、プロセスを高速で効率的に実行する方法を提供し、非常に短い時間で且つ大きな経費をかけることなく、プロセッサを低電力モードと通常電力モードとの間で切替えることができるマルチプロセッサコンピュータシステム、対応するプロセッサ、プロセスの実行をスケジューリングする方法、および前記システムにおいてプロセッサによりプロセスを実行する方法を提供することである。
この目的は、本発明によって請求項1に記載されているマルチプロセッサコンピュータシステムにより達成され、前記プロセッサは、前記プロセスリストへのプロセスのプロセス付加を通知するグローバル起動変数をそれらの関連するキャッシュメモリユニットにロードし、前記プロセッサが実行するプロセスが前記プロセスリストに含まれていない場合には低電力モードに切替わり、前記起動変数が前記プロセスリストへプロセス付加を通知する場合には通常電力モードに切替わるように適合化されている。
本発明は、キャッシュ一貫性プロトコルを用いてスリープ状態のプロセッサを起動するという考えに基づいている。キャッシュ一貫性プロトコルは割り込みよりもはるかに速く伝達するように設計されているため、非常に効率的に且つ高速でスリープ状態のプロセッサを起動ことが可能となる。本発明によれば、グローバル起動変数が導入され、これはプロセッサのキャッシュメモリユニットによって保持される。前記起動変数は、プロセスリストへプロセスが付加されたか否かを通知する。プロセッサがプロセスリストにプロセスを付加すると、これは直ちにキャッシュ一貫性プロトコルを介してプロセッサのキャッシュメモリユニットに通知されて、プロセッサが低電力モードから通常電力モードに切替わる。
本発明の好ましい実施の態様は従属請求項に記載されている。このようなマルチプロセッサコンピュータシステムにおいて使用されるプロセッサは請求項6に記載されている。プロセスの実行をスケジューリングする方法は請求項7に記載されている。プロセッサによりプロセスを実行する方法は請求項8に記載されている。前記方法を実行するコンピュータプログラムは請求項9に記載されている。尚、これらの装置および方法、並びにコンピュータプログラムを、請求項1の従属請求項に記載されているものと同様のまたは同一の方法でさらに発展させることができる点に留意されたい。
請求項2に記載されている第1の好ましい実施の態様によれば、プロセッサの通常電力モードへの切替えは、プロセスリストにプロセスを付加することに起因する起動変数の変化によって行われる。従って、プロセスリストにプロセスを付加するプロセッサは、例えば、請求項3の好ましい実施の態様に記載されているような記憶コマンドを実行し、前記変数に何らかの新たな値を書き込むことによって起動変数を変化させるだけでよい。これは前記起動変数を保持しているすべてのキャッシュメモリユニットに直ちに通知され、これにより、関連するプロセッサが低電力モードから通常電力モードに切替わる。
本発明の他の側面によれば、プロセッサは、前記プロセスリストにプロセスを付加する際に、他のプロセッサに対してそれらの関連するキャッシュメモリユニットから起動変数を消去する要求を送るように適合化されている。このようにしても、他のプロセッサには、プロセスリストに新たなプロセスが付加されたことが直ちに通告されるので、プロセスリストからプロセスを獲得して実行することを試みる通常電力モードに切替わる。
無効化に基づくキャッシュ一貫性プロトコルが、本発明によるマルチプロセッサコンピュータシステムにおいて実施されることが好ましい。即ち、メモリユニットからの読み出しコマンドでは、他のキャッシュメモリユニットがメモリユニットよりも最新バージョンのデータを含んでいるか否かについて確認される。含んでいる場合には、より最新バージョンのデータを保持しているプロセッサはそれをメモリに供給する。キャッシュメモリユニットへのデータの書き込みコマンドでは、他のプロセッサが同一のデータ項目をキャッシュしているか否かについて確認される。キャッシュしている場合は、他のプロセッサはそのデータ項目を無効とし、即ちそれらのキャッシュメモリユニットからそのデータ項目を除去する。キャッシュ一貫性プロトコル、特に無効化に基づくキャッシュ一貫性プロトコルのさらなる詳細に関しては、John L. Hennessy and David A. Patterson, ”Computer architecture, a quantitative approach”, Morgan Kaufman Publishers, second edition、特に第8.3章を参照されたい。
図面を参照して本発明をより詳細に説明する。
図1は、既知のマルチプロセッサコンピュータシステムのブロック図を示している。前記コンピュータシステムはいくつかの、本例においては4つのプロセッサ1、いわゆる中央演算処理装置(CPU)を備え、各プロセッサにはキャッシュメモリユニット2が関連し且つ接続されている。さらに、前記プロセッサ1によって実行されるプロセスのリストを含む共有メモリユニット3、例えばランダムアクセスメモリユニットが設けられている。プロセッサ1はキャッシュメモリユニット2を介してバス等の相互接続線4に相互接続され、この相互接続線4には、プロセスリストユニットをも含むであろうと考えられるメモリユニット3も接続されている。
図1は、既知のマルチプロセッサコンピュータシステムのブロック図を示している。前記コンピュータシステムはいくつかの、本例においては4つのプロセッサ1、いわゆる中央演算処理装置(CPU)を備え、各プロセッサにはキャッシュメモリユニット2が関連し且つ接続されている。さらに、前記プロセッサ1によって実行されるプロセスのリストを含む共有メモリユニット3、例えばランダムアクセスメモリユニットが設けられている。プロセッサ1はキャッシュメモリユニット2を介してバス等の相互接続線4に相互接続され、この相互接続線4には、プロセスリストユニットをも含むであろうと考えられるメモリユニット3も接続されている。
このようなマルチプロセッサコンピュータシステムにおいてプロセスの実行をスケジューリングする既知の方法が、図2にフローチャートとして示されている。レディープロセス、即ちプロセッサによる実行の準備ができているプロセスを選択することは、「プロセスリスト」と呼ばれるレディープロセスのリストにプロセスが現れるまで待機することからなる(ステップS10)。複数のプロセッサがこれを待機することができ、プロセスリストは、プロセッサがリストからレディープロセスを取り出す前に他のプロセッサに取られてしまう可能性があるので、ロックによって保護される(S11)。レディープロセスはステップS12においてリストから取り出され、その後、プロセスを獲得して実行することを試みる他のプロセッサがアクセスするためにプロセスリストは再びロック解除される(S13)。プロセッサは、プロセスリストから実行するプロセスを獲得することに成功した場合(S14)、このプロセスを実行し、成功しなかった場合には初めに戻って、プロセスリストからプロセスを獲得することを試みる状態に設定される。従って、現在プロセスを実行していないプロセッサは、待機状態またはスピンループの一種として、プロセスリストが空になっているか否かを連続的に確認する(S10)。
図3は、フローチャートの形態の本発明によるプロセスの実行をスケジューリングする方法の実施の形態を示している。本発明によれば、プロセスリストへの付加を通知するために用いられるグローバル変数「起動」が導入される。初めは、プロセッサは通常電力モードにあり、レディープロセスを探索していると仮定する。第1のステップ20において、プロセッサは、通常ロード命令を用いて起動変数を含むキャッシュラインがまだ取り入れられていない場合には、それをそのキャッシュメモリにロードする。次に、プロセッサは、プロセスリストが空であるか否かを確認する(S21)。プロセッサは、ステップ21においてプロセスリストにレディープロセスを発見した場合、ステップ22においてまずプロセスリストをロックして、他のプロセッサが前記プロセスリストにアクセスすることを防止する。次に、プロセッサはプロセスリストからプロセスを獲得し(S23)、その後プロセスリストは再びロック解除される(S24)。
ステップ23が成功した場合、プロセッサは取り出したプロセスを実行する(S25)。そのプロセスの内容は復元され、プロセスは実行を継続する。
ステップ23が成功しなかった場合、いわゆるsleep−while−cached(swc)命令が起動変数をパラメータとして実行される(S27)。即ち、プロセッサはその通常電力モードからその低電力モード、即ちある種のスリープモードへ切替わり、起動変数がその関連するキャッシュメモリユニットにある限り、より正確には、そのキャッシュメモリユニットのキャッシュラインが起動変数を保持している限りその状態が維持される。ステップ21で肯定的な結果を出した場合、即ちプロセスリストが空であることが判明した場合、同一のswc命令が実行される(S26)。
ステップ23が成功しなかった場合、いわゆるsleep−while−cached(swc)命令が起動変数をパラメータとして実行される(S27)。即ち、プロセッサはその通常電力モードからその低電力モード、即ちある種のスリープモードへ切替わり、起動変数がその関連するキャッシュメモリユニットにある限り、より正確には、そのキャッシュメモリユニットのキャッシュラインが起動変数を保持している限りその状態が維持される。ステップ21で肯定的な結果を出した場合、即ちプロセスリストが空であることが判明した場合、同一のswc命令が実行される(S26)。
図4に示されているように、他のプロセッサがプロセスリストにプロセスを添加して実行する場合、まずプロセスリストをロックし(S30)、その後で実際にプロセスを添加する(S31)。プロセスリストを再びロック解除した後(S32)、起動変数に対して記憶コマンドが実行され、即ち起動変数に新たな値が割り当てられる(S33)。これによって、プロセスリストに新たなプロセスが付加されたことが低電力モードにあるすべてのプロセッサに直ちに通知され、このようなプロセッサのキャッシュメモリユニットにおいてはキャッシュラインが無効にされ、その結果プロセッサは低電力モードから通常電力モードに戻るように切替えられ、再度ステップ20を開始する(図3を参照)。
この方法によって、プロセスを実行していないプロセッサは通常電力モードにおいてスピンループで待機せず、低電力モードに切替えられるので、多くの電力を節約することができる。しかし、本発明によれば、スリープ状態のプロセッサのキャッシュメモリユニットに保持されている前記起動変数を用いてプロセスリストにプロセスが付加されたことを通知するためのキャッシュ一貫性プロトコルを使用するので、起動手順は非常に高速になり、特に割り込みを用いる場合よりも高速となる。
本発明が実施されるマルチプロセッサコンピュータシステムのブロック図が図5に示されている。本発明によれば、プロセッサ1とキャッシュメモリユニット2との間に、通常のデータ経路6の他にさらなる通信線7、8が付加されている。通信線7を用いてプロセッサ1からキャッシュメモリユニット2へ起動アドレスが伝達され、即ちswc命令によって指定されたアドレスがキャッシュメモリユニット2へ送られる。指定されたアドレスがキャッシュメモリユニットから消えた際に、通信線8を用いてキャッシュメモリユニット2からプロセッサ1へ起動信号を伝達して、プロセッサ1を低電力モードから通常電力モードへ切替える。
図4のステップ33においてプロセッサが通常記憶命令である起動変数に対する任意の値を記憶している場合、以下のことが発生する。他のプロセッサがレディープロセスを探索している場合、そのプロセッサはそのキャッシュメモリユニット内に起動変数を有し、即ちキャッシュには起動変数が記憶されているメモリブロックに対応するキャッシュラインが含まれている。他のプロセッサが起動変数をキャッシュしている場合、起動変数に対する任意の値を記憶しようとしているプロセッサは、キャッシュ一貫性プロトコルに防止されるので、このような記憶命令によって起動変数を変更することはできない。記憶動作を行うために、そのプロセッサは他のすべてのプロセッサに対して、それらのキャッシュメモリユニットから起動変数を消去することを要求するブロードキャストを送る。特にMSI、MESIまたはMOESI型のキャッシュ一貫性プロトコルに関しては、プロセッサは共有または無効状態から変更状態へ遷移する。これによって、swc命令の後にスリープ状態であったプロセッサは起動し、通常電力モードに切替わる。その後これらのプロセッサはプロセスリストを確認し、それらのうちのいずれかが付加されたばかりのプロセスを獲得することに成功する。他のプロセッサはswc命令に従って低電力モードに戻るように切替わる。
尚、プロセッサはプロセスリストからプロセスを獲得することを試みる前に起動変数をロードする点に留意されたい。これを逆の順番で行うと、プロセスリストにレディープロセスがあっても、プロセッサが低電力モードに切替わるという状況が起こる可能性がある。
プロセススケジューラにおいて電力を節約することの他に、上述のような本発明によるswc命令は、プロセッサ間での高速同期化が必要とされる他の目的でも有用である可能性がある。多くのプロセッサが低電力スリープモードに切替わる命令を有しているが、非常に高速で効率的な解決策を提供する本発明によって提案されたようなキャッシュ一貫性トランザクションによって起動し且つ通常電力モードに切替わることができる既知のプロセッサおよびマルチプロセッサコンピュータシステムはない。
Claims (9)
- マルチプロセッサコンピュータシステムであって、
プロセスを並列に実行する少なくとも2つのプロセッサと、
それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、
前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、
前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットと、を備え、
前記プロセッサは、前記プロセスリストへのプロセスのプロセス付加を通知するグローバル起動変数をそれらの関連するキャッシュメモリユニットにロードし、前記プロセッサが実行するプロセスが前記プロセスリストに含まれていない場合には低電力モードに切替わり、前記起動変数が前記プロセスリストへプロセス付加を通知する場合には通常電力モードに切替わるように適合化されている、マルチプロセッサコンピュータシステム。 - 関連するキャッシュメモリユニットに保持されている起動変数が前記プロセスリストへのプロセスの付加に起因して変化すると、前記プロセッサは通常電力モードに切替わるように適合化されている、請求項1に記載のマルチプロセッサコンピュータシステム。
- 前記プロセッサは、前記プロセスリストへプロセスを付加する際に、前記起動変数に対する記憶コマンドを実行するように適合化されている、請求項1に記載のマルチプロセッサコンピュータシステム。
- 前記プロセッサは、前記プロセスリストへプロセスを付加する際に、他のプロセッサに対してそれらの関連するキャッシュメモリユニットから前記起動変数を消去する要求を送るように適合化されている、請求項1に記載のマルチプロセッサコンピュータシステム。
- 前記コンピュータシステムは、無効化に基づくキャッシュ一貫性プロトコルを実施するように適合化されている、請求項1に記載のマルチプロセッサコンピュータシステム。
- プロセスを並列に実行する少なくとも2つのプロセッサと、
それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、
前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、
前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットと、を備えるマルチプロセッサコンピュータシステムにおいて使用されるプロセッサであって、
前記プロセスリストにプロセスが付加されるプロセス付加を通知するグローバル起動変数をその関連するキャッシュメモリユニットにロードし、自身が実行するプロセスが前記プロセスリストに含まれていない場合には低電力モードに切替わり、前記起動変数が前記プロセスリストへプロセスの付加を通知する場合には通常電力モードに切替わるように適合化されている、プロセッサ。 - プロセスを並列に実行する少なくとも2つのプロセッサと、
それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、
前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、
前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットと、を備えるマルチプロセッサコンピュータシステムにおいてプロセスの実行をスケジューリングする方法であって、
プロセッサによって前記プロセスリストへのプロセスのプロセス付加を通知するグローバル起動変数をその関連するキャッシュメモリユニットにロードするステップと、
前記プロセスリストにプロセスを付加するステップと、
前記プロセスリストへのプロセスの前記付加を通知する起動変数を変化させ、これにより前記プロセッサを低電力モードから通常電力モードへ切替えさせるステップと、
を備える、方法。 - プロセスを並列に実行する少なくとも2つのプロセッサと、
それぞれ別個のプロセッサに関連し且つ接続された少なくとも2つのキャッシュメモリユニットと、
前記プロセッサと前記キャッシュメモリユニットとを接続する接続バスと、
前記接続線に接続され、前記プロセッサが実行するための利用可能なプロセスのプロセスリストを記憶するプロセスリストユニットと、を備えるマルチプロセッサコンピュータシステムにおいてプロセッサによりプロセスを実行する方法であって、
前記プロセスリストへのプロセスのプロセス付加を通知するグローバル起動変数を、関連するキャッシュメモリユニットにロードするステップと、
前記プロセスリストが前記プロセッサによって実行されるプロセスを含んでいない場合に低電力モードに切替えるステップと、
前記起動変数が前記プロセスリストへのプロセスの付加を通知する場合に通常電力モードに切替えるステップと、
前記プロセスリストへアクセスし、前記付加されたプロセスを獲得して実行するステップと、
を備える、方法。 - 請求項7または8に記載された方法をコンピュータによって実行する場合、前記コンピュータに前記方法のステップを実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02077637 | 2002-07-03 | ||
PCT/IB2003/002849 WO2004006097A2 (en) | 2002-07-03 | 2003-06-23 | Multi-processor computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005531860A true JP2005531860A (ja) | 2005-10-20 |
Family
ID=30011147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004519085A Pending JP2005531860A (ja) | 2002-07-03 | 2003-06-23 | マルチプロセッサコンピュータシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US7577823B2 (ja) |
EP (1) | EP1520228A2 (ja) |
JP (1) | JP2005531860A (ja) |
CN (1) | CN1666180B (ja) |
AU (1) | AU2003281389A1 (ja) |
WO (1) | WO2004006097A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014238683A (ja) * | 2013-06-07 | 2014-12-18 | 日本電気株式会社 | 処理割り当て装置、処理割り当て方法及び処理割り当てプログラム |
US10802712B2 (en) | 2015-10-13 | 2020-10-13 | Axell Corporation | Information processing apparatus and method of processing information |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3813930B2 (ja) | 2002-01-09 | 2006-08-23 | 松下電器産業株式会社 | プロセッサ及びプログラム実行方法 |
JP4750350B2 (ja) | 2003-03-13 | 2011-08-17 | パナソニック株式会社 | タスク切換装置、方法及びプログラム |
GB2414575B (en) * | 2004-05-26 | 2007-06-06 | Advanced Risc Mach Ltd | Management of polling loops in a data processing apparatus |
GB2414573B (en) | 2004-05-26 | 2007-08-08 | Advanced Risc Mach Ltd | Control of access to a shared resource in a data processing apparatus |
US7447927B2 (en) * | 2005-08-23 | 2008-11-04 | Apple Inc. | Method and apparatus for waking up a sleeping system |
CN100377041C (zh) * | 2005-12-02 | 2008-03-26 | 威盛电子股份有限公司 | 多处理器系统的电源管理装置及方法 |
US9015501B2 (en) | 2006-07-13 | 2015-04-21 | International Business Machines Corporation | Structure for asymmetrical performance multi-processors |
US8806228B2 (en) | 2006-07-13 | 2014-08-12 | International Business Machines Corporation | Systems and methods for asymmetrical performance multi-processors |
CN100530107C (zh) * | 2007-03-02 | 2009-08-19 | 中国科学院声学研究所 | 基于io事件通知机制的单进程内容服务器装置及方法 |
JP2008276331A (ja) * | 2007-04-25 | 2008-11-13 | Toshiba Corp | マルチプロセッサの制御装置及び方法 |
KR20090032415A (ko) * | 2007-09-28 | 2009-04-01 | 삼성전자주식회사 | 프로세서 웨이크 업 기능을 갖는 멀티포트 반도체 메모리장치 및 이를 채용한 멀티 프로세서 시스템 그리고 멀티프로세서 시스템에서의 프로세서 웨이크 업 방법 |
US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8316218B2 (en) * | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8015379B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Wake-and-go mechanism with exclusive system bus response |
US8225120B2 (en) | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8880853B2 (en) | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8640141B2 (en) * | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8082315B2 (en) * | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8886919B2 (en) | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US9501705B2 (en) * | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
CN102385435A (zh) * | 2010-08-27 | 2012-03-21 | 宏达国际电子股份有限公司 | 动态调整电子装置运作模式的方法及电子装置 |
US9298627B2 (en) * | 2013-01-14 | 2016-03-29 | Marvell World Trade Ltd. | Shared op-symmetric update-sensitive variables |
KR102110812B1 (ko) * | 2013-05-30 | 2020-05-14 | 삼성전자 주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 |
US20160170474A1 (en) * | 2013-08-02 | 2016-06-16 | Nec Corporation | Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory |
DE102016106939B4 (de) | 2015-04-17 | 2024-05-02 | Suunto Oy | Eingebettetes Rechengerät |
US10990159B2 (en) * | 2017-04-25 | 2021-04-27 | Apple Inc. | Architected state retention for a frequent operating state switching processor |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4747041A (en) * | 1983-06-27 | 1988-05-24 | Unisys Corporation | Automatic power control system which automatically activates and deactivates power to selected peripheral devices based upon system requirement |
US5182810A (en) * | 1989-05-31 | 1993-01-26 | Dallas Semiconductor Corp. | Isolation gates to permit selective power-downs within a closely-coupled multi-chip system |
US5754436A (en) * | 1994-12-22 | 1998-05-19 | Texas Instruments Incorporated | Adaptive power management processes, circuits and systems |
EP0942368A2 (en) * | 1998-03-10 | 1999-09-15 | Lucent Technologies Inc. | Context controller having automatic entry to power saving mode and processor employing the same |
US6158000A (en) * | 1998-09-18 | 2000-12-05 | Compaq Computer Corporation | Shared memory initialization method for system having multiple processor capability |
-
2003
- 2003-06-23 WO PCT/IB2003/002849 patent/WO2004006097A2/en active Application Filing
- 2003-06-23 JP JP2004519085A patent/JP2005531860A/ja active Pending
- 2003-06-23 US US10/519,649 patent/US7577823B2/en not_active Expired - Fee Related
- 2003-06-23 AU AU2003281389A patent/AU2003281389A1/en not_active Abandoned
- 2003-06-23 EP EP03740905A patent/EP1520228A2/en not_active Withdrawn
- 2003-06-23 CN CN038157187A patent/CN1666180B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014238683A (ja) * | 2013-06-07 | 2014-12-18 | 日本電気株式会社 | 処理割り当て装置、処理割り当て方法及び処理割り当てプログラム |
US10802712B2 (en) | 2015-10-13 | 2020-10-13 | Axell Corporation | Information processing apparatus and method of processing information |
Also Published As
Publication number | Publication date |
---|---|
EP1520228A2 (en) | 2005-04-06 |
AU2003281389A1 (en) | 2004-01-23 |
CN1666180B (zh) | 2010-05-26 |
WO2004006097A3 (en) | 2004-12-02 |
AU2003281389A8 (en) | 2004-01-23 |
US7577823B2 (en) | 2009-08-18 |
WO2004006097A2 (en) | 2004-01-15 |
CN1666180A (zh) | 2005-09-07 |
US20060069738A1 (en) | 2006-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005531860A (ja) | マルチプロセッサコンピュータシステム | |
CN101529383B (zh) | 任务处理装置 | |
CN108920267B (zh) | 任务处理装置 | |
KR100829638B1 (ko) | 슬리프-웨이크 업 메커니즘을 이용한 비교 및 교환 동작 | |
CN101833475B (zh) | 用于执行指令原子块的方法和装置 | |
US8463911B2 (en) | Exclusive control method of resource and exclusive controller of resource | |
US20040002974A1 (en) | Thread based lock manager | |
US20100100706A1 (en) | Multiple processor system, system structuring method in multiple processor system and program thereof | |
KR20100011891A (ko) | 그레이스 주기의 저 전력 검출을 위한 방법, 시스템 및 컴퓨터 판독 가능한 저장 매체 | |
US20090144519A1 (en) | Multithreaded Processor with Lock Indicator | |
JP2007122741A (ja) | 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法 | |
JPH05324471A (ja) | キャッシュ制御装置 | |
JP2007219581A (ja) | メモリコントローラおよびこれを搭載する電子機器 | |
WO2011096163A1 (ja) | 情報処理システム、排他制御方法および排他制御用プログラム | |
CN106068497B (zh) | 事务存储器支持 | |
US7353342B1 (en) | Shared lease instruction support for transient blocking synchronization | |
CN102436393B (zh) | 任务处理装置 | |
JPWO2009122694A1 (ja) | キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム | |
US9390023B2 (en) | Method and apparatus for conditional storing of data using a compare-and-swap based approach | |
WO1999032976A1 (en) | Risc processor with concurrent snooping and instruction execution | |
US9251074B2 (en) | Enabling hardware transactional memory to work more efficiently with readers that can tolerate stale data | |
US20150370709A1 (en) | Reduction of evictions in cache memory management directories | |
JP2010113574A (ja) | マルチプロセッサにおける資源の排他制御方法、排他制御システムおよびその関連技術 | |
CN111723250A (zh) | 一种基于引用计数的链表管理方法 | |
JP2010044699A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060621 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080612 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090324 |