JPH0830562A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH0830562A
JPH0830562A JP6166486A JP16648694A JPH0830562A JP H0830562 A JPH0830562 A JP H0830562A JP 6166486 A JP6166486 A JP 6166486A JP 16648694 A JP16648694 A JP 16648694A JP H0830562 A JPH0830562 A JP H0830562A
Authority
JP
Japan
Prior art keywords
task
processor
cache
update
memory
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
JP6166486A
Other languages
English (en)
Inventor
Yoshihiro Iwata
吉弘 岩田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP6166486A priority Critical patent/JPH0830562A/ja
Publication of JPH0830562A publication Critical patent/JPH0830562A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 マルチプロセッサシステムにおいて、プロセ
ッサにタスクをディスパッチする際に、キャッシュミス
の発生し難いようにタスクスケジュールを行う。 【構成】 共有バス400に接続され演算処理を行う演
算処理回路110と、複数のブロックを含むキャッシュ
メモリ120と、キャッシュメモリ120の対応するブ
ロックが現在実行中のタスクにより更新されたことを記
憶する更新メモリ130と、更新カウンタの計数を制御
するカウンタ制御回路160と、現在実行中のタスクの
データを格納しているブロックの数を計数する更新カウ
ンタ170とを含んでいる。キャッシュミス又はキャッ
シュ無効化が発生したブロックに対応する更新メモリ1
30が”1”であれば更新カウンタ170が加算又は減
算される。この更新メモリ130の値に基づき、キャッ
シュミスの発生を予測する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサの各
々がキャッシュメモリを有するマルチプロセッサシステ
ムに関し、特に各プロセッサにおけるキャッシュメモリ
のミスヒット回数を低減するように各プロセッサにタス
クを割り当てるマルチプロセッサシステムに関する。
【0002】
【従来の技術】プロセッサへのタスクの割当て(以下、
タスクスケジューリングという)においては、プロセッ
サの利用率を最大にするために、負荷の最も少ないプロ
セッサに対して新しいタスクを割り当てることが望まし
い。これを実現するためには、タスクの中断が発生した
プロセッサに対して、最も高い優先度を有する実行待ち
タスクを割り当てる方法が考えられる。負荷の少ないプ
ロセッサほどタスクの実行時間が短く、タスク切替えが
発生する頻度が高いため、より多くのタスク割り当ての
機会が与えられるからである。
【0003】しかし、上記技術では、タスクがどのプロ
セッサに割り当てられるかはプロセッサのタスク切替え
時刻に依存するため、そのタスクが以前実行されたプロ
セッサ以外のプロセッサに割り当てられる可能性も多
い。タスクのこのようなプロセッサ間での移動が起こる
と、実行再開直後にキャッシュのミスヒットが多く発生
し、該当データのメモリからの読込みにより実行が遅れ
てしまう。また、キャッシュ間でのデータの一貫性を保
証するためのキャッシュ更新またはキャッシュ無効化に
伴い他のプロセッサの実行にも影響が及び、マルチプロ
セッサシステム全体としての性能が下がってしまうとい
う問題がある。
【0004】上記問題点を解決するために、タスクの管
理表の中にそのタスクが最後に実行されたプロセッサの
識別名を格納し、タスク切替えの際に、タスク中断が発
生したプロセッサと管理表に格納されたプロセッサの識
別名とが一致するタスクを優先してそのプロセッサに割
り当てる技術がある。例えば、特開平3−44742号
公報には、実行中のタスクが中断または終了した後、次
に実行すべきタスクを選択する際、中断前に実行してい
た処理ユニットが一致するタスクまたは中断時間が予め
定められた時間以上であるタスク、あるいは初めて実行
されるタスクを選択するマルチプロセッサシステムが記
載されている。この技術では、処理待ちのタスクは、中
断される前に実行されていた処理ユニットに優先的に割
り付けられ、処理再開後のキャッシュのミスヒット回数
を減少させる。また、キャッシュメモリに共通に格納さ
れているブロックを書替えた場合において、各キャッシ
ュメモリ間で対応するブロックを一致するための処理を
減少させる。
【0005】また、上記問題点を解決する他の技術で
は、タスク管理表の中にそのタスクが最後に実行された
識別名を格納し、あるタスクが実行待ちになった時、実
行待ちタスクの中で最も優先度の高いタスクを選び、ア
イドル状態のプロセッサがある場合はそのプロセッサに
割り当てる。そして、アイドル状態のプロセッサがない
場合は、選択されたタスクの管理表に格納された識別名
を持つプロセッサが実行しているタスクの優先度と選択
されたタスクの優先度とを比較し、選択されたタスクの
優先度が高ければ実行中のタスクを中断して選択された
タスクをそのプロセッサに割り当て、優先度が低ければ
次に他のプロセッサに対して同様の試みを行う。例え
ば、特開昭62−115567号公報には、優先度に基
づく制御を妨げない限り、自タスクを最後に実行したプ
ロセッサで実行状態となるように制御することにより、
タスク切替えを実行した後のキャッシュヒット率を向上
させる技術が記載されている。
【0006】
【発明が解決しようとする課題】上述の従来技術では、
タスク管理表の中にそのタスクを最後に実行したプロセ
ッサの識別名を持たせ、タスク切替えが発生したプロセ
ッサと最後に実行したプロセッサとが一致するタスクを
優先して割り当てている。しかしながら、この従来技術
では、ある実行待ち状態のタスクにとって実行を再開し
た時キャッシュのミスヒットが少なくなるような最適な
プロセッサを選択するための情報を1プロセッサ分だけ
しか有さないため、それ以外のプロセッサに割り当てら
れた場合にキャッシュのミスヒットを少なくするような
タスクの割当てができなかった。また、タスク切替えが
発生したプロセッサにとって、実行を再開した際にキャ
ッシュのミスヒットが少なくなるような割り当てをする
ことができなかった。
【0007】本発明の目的は、キャッシュのミスヒット
の発生が少なくなるようにタスクの割当てを行うマルチ
プロセッサシステムを提供することにある。
【0008】また、本発明の他の目的は、特にシステム
タスクの実行によるキャッシュのミスヒットの増加を低
く抑えることにある。
【0009】また、本発明の他の目的は、上記キャッシ
ュのミスヒットの低減を、より単純な構成により実現す
ることにある。
【0010】
【課題を解決するための手段】上記課題を解決するため
に本発明のマルチプロセッサシステムは、各々がキャッ
シュメモリを含む複数のプロセッサと、これらプロセッ
サに共有される共有メモリとを含み、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数をそれぞれ記憶し、あるタスクを何れかのプ
ロセッサに割り当てる際に前記ブロックの数が最大とな
るプロセッサを選択する。
【0011】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数をそれぞれ記憶し、あるプロセッサにおいて
何れかのタスクを割り当てる際に前記ブロックの数が最
大となるタスクを選択する。
【0012】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数である親密度をそれぞれ示す親密度管理情報
を含み、前記プロセッサは、タスクが割り当てられた後
に前記キャッシュメモリの各ブロックが更新されたか否
かを示す更新情報を含む更新メモリと、キャッシュのミ
スヒットが発生した際に前記更新情報が更新されていな
い旨を示していれば加算され、キャッシュ無効化が発生
した際に前記更新情報が更新されている旨を示していれ
ば減算される更新カウンタとを含み、タスク開始の際に
は、そのタスクについて当該プロセッサの示す前記親密
度管理情報の位置に格納される親密度を前記更新カウン
タに保持し、タスク終了の際には、そのタスクについて
当該プロセッサの示す前記親密度管理情報の位置に前記
更新カウンタの値を格納し、タスク割り当ての際には前
記親密度が最大となるタスクまたはプロセッサを選択す
る。
【0013】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数である親密度をそれぞれ示す親密度管理情報
を含み、前記プロセッサは、タスクが割り当てられた後
に前記キャッシュメモリの各ブロックが更新されたか否
かを示す更新情報を含む更新メモリと、キャッシュのミ
スヒットが発生した際に前記更新情報が更新されていな
い旨を示していれば加算され、キャッシュ無効化が発生
した際に前記更新情報が更新されている旨を示していれ
ば減算される更新カウンタとを含み、タスク終了の際に
は、そのタスクについて当該プロセッサの示す前記親密
度管理情報の親密度に対して前記更新カウンタの値を加
算し、他のタスクについて当該プロセッサの示す前記親
密度管理情報の親密度に対して前記更新カウンタの値を
それぞれの親密度に比例して減算し、タスク割り当ての
際には前記親密度が最大となるタスクまたはプロセッサ
を選択する。
【0014】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、システムタスク及び各ユーザタスクが各プロセッサ
のキャッシュに確保するブロックの数である親密度をそ
れぞれ示す親密度管理情報を含み、前記プロセッサは、
タスクが割り当てられた後に前記キャッシュメモリの各
ブロックが更新されたか否かを示す更新情報を含む更新
メモリと、前記キャッシュメモリの各ブロックがシステ
ムタスクにより確保されているか否かを示すシステム識
別メモリと、システムタスクにおいて、キャッシュのミ
スヒットが発生した際に前記更新情報が更新されていな
い旨を示していれば加算され、キャッシュ無効化が発生
した際に前記更新情報が更新されている旨を示していれ
ば減算されるシステム更新カウンタと、ユーザタスクに
おいて、キャッシュのミスヒットが発生した際に前記更
新情報が更新されていない旨を示していれば加算され、
キャッシュ無効化が発生した際に前記更新情報が更新さ
れている旨を示していれば減算されるユーザ更新カウン
タとを含み、タスク終了の際には、そのタスクについて
当該プロセッサの示す前記親密度管理情報の親密度に対
して前記ユーザ更新カウンタの値を加算し、他のタスク
について当該プロセッサの示す前記親密度管理情報の親
密度に対して前記ユーザ更新カウンタの値をそれぞれの
親密度に比例して減算し、システムタスクについて当該
プロセッサの示す前記親密度管理情報の親密度に対して
前記システム更新カウンタの値を加算し、タスク割り当
ての際には前記親密度が最大となるタスクまたはプロセ
ッサを選択する。
【0015】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数である親密度をそれぞれ示す親密度管理情報
を含み、前記プロセッサは、実行中のタスクのタスク番
号を保持するタスクレジスタと、前記キャッシュメモリ
の各ブロックを確保するタスクのタスク番号を示すタス
ク番号情報を含むタスク番号メモリと、各タスク番号に
対応する複数の更新カウンタとを含み、キャッシュのミ
スヒットが発生した際に前記更新情報が更新されていな
い旨を示していれば前記タスクレジスタが示す前記更新
カウンタを加算し、キャッシュ無効化が発生した際に前
記更新情報が更新されている旨を示していれば前記タス
クレジスタが示す前記更新カウンタを減算し、タスク終
了の際には、前記複数の更新カウンタの各々を前記親密
度管理情報の当該プロセッサの示す位置に格納し、タス
ク割り当ての際には前記親密度が最大となるタスクまた
はプロセッサを選択する。
【0016】また、本発明の他のマルチプロセッサシス
テムでは、前記タスクはシステムタスク及びユーザタス
クを含み、前記親密度管理情報は、システムタスク及び
各ユーザタスクが各プロセッサのキャッシュに確保する
ブロックの数である親密度を含む。
【0017】また、本発明の他のマルチプロセッサシス
テムでは、前記共有メモリは各プロセッサ毎にタスクの
タスク番号を保持するタスクスロット表をさらに含み、
前記タスクスロット表に付されたスロット番号により各
タスクを管理する。
【0018】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数である親密度をそれぞれ示す親密度管理情報
を含み、前記プロセッサは、実行中のタスクがキャッシ
ュに確保しているブロックの数を計数する計数手段を含
み、タスク終了の際には、前記親密度管理情報を前記計
数手段を更新し、タスク割り当ての際には前記親密度が
最大となるタスクまたはプロセッサを選択する。
【0019】また、本発明の他のマルチプロセッサシス
テムは、各々がキャッシュメモリを含む複数のプロセッ
サと、これらプロセッサに共有される共有メモリとを含
むマルチプロセッサシステムにおいて、前記共有メモリ
は、各タスクが各プロセッサのキャッシュに確保するブ
ロックの数である親密度をそれぞれ示す親密度管理情報
を含み、前記プロセッサは、実行中のタスクのタスク識
別子を保持するタスク識別レジスタと、前記キャッシュ
メモリの各ブロックを確保するタスクのタスク識別子を
示すタスク識別子情報を含むタスク識別メモリと、各タ
スク識別子に対応する複数の更新カウンタとを含み、キ
ャッシュのミスヒットが発生した際に前記更新情報が更
新されていない旨を示していれば前記タスク識別レジス
タが示す前記更新カウンタを加算し、キャッシュ無効化
が発生した際に前記更新情報が更新されている旨を示し
ていれば前記タスク識別レジスタが示す前記更新カウン
タを減算し、タスク終了の際には、前記複数の更新カウ
ンタの各々を前記親密度管理情報の当該プロセッサの示
す位置に格納し、タスク割り当ての際には前記親密度が
最大となるタスクまたはプロセッサを選択する。
【0020】
【実施例】次に本発明のマルチプロセッサシステムの第
一の実施例について図面を参照して詳細に説明する。
【0021】図1を参照すると、本発明のマルチプロセ
ッサシステムは、N個のプロセッサ100と、共有メモ
リ200と、入出力装置300とが共有バス400によ
って接続される構成を有している。また、共有メモリ2
00はその記憶領域の一部に後述の親密度管理表210
を含んでいる。
【0022】図2を参照すると、本発明の第一の実施例
におけるプロセッサ100は、共有バス400に接続さ
れ演算処理を行う演算処理回路110と、キャッシュメ
モリ120と、キャッシュメモリ120が現在実行中の
タスクにより更新されたことを記憶する更新メモリ13
0と、更新カウンタの計数を制御するカウンタ制御回路
160と、現在実行中のタスクのデータを格納している
ブロックの数を計数する更新カウンタ170とを含んで
いる。
【0023】図3を参照すると、キャッシュメモリ12
0は複数のブロックにより成り、アドレスタグ121、
データ部122および有効ビット123の各フィールド
に分けられている。有効ビット123はそれぞれ対応す
るブロックのデータが有効ならば”1”を、有効なデー
タを格納していなければ”0”を示す。また、更新メモ
リ130は、対応するブロックが、現在実行中のタスク
により更新されているか否かを示す。
【0024】図4を参照すると、共有メモリ200に格
納されている親密度管理表210は、配列状に親密度値
を保持している。この親密度管理表210中の各値は、
列方向に分類されたプロセッサ番号(#1等と表す)
と、行方向に分類されたタスク番号(%1等と表す)と
により、対応する格納位置が一意に特定される。第一の
実施例においては、この親密度値は、あるプロセッサに
おいてこれまでに実行された各タスクが、そのタスクの
終了時点でキャッシュメモリに読み込んでいたブロック
の数を表す。この各値は、該当するタスクがプロセッサ
にディスパッチされる際に更新カウンタ170に読み込
まれる。また、そのタスクがプロセッサを手放す際に、
更新カウンタ170の値が親密度管理表210の該当位
置に格納される。
【0025】次に、本発明の上記第一の実施例のマルチ
プロセッサシステムにおいてキャッシュのミスヒットが
生じた場合の状態の遷移について図面を参照して詳細に
説明する。
【0026】まず、第iブロックにおいて有効ビット1
23の値が”1”で、更新メモリ130の値が”0”で
あるとする。これは、第iブロックが有効であり、か
つ、現在実行中のタスク割当て前のデータを含むブロッ
クであることを意味している。当該プロセッサにおいて
キャッシュのミスヒットが発生すると、第iブロックの
タスク割り当て前のデータはキャッシュメモリから追い
出され、現タスクのデータが共有メモリから読み込まれ
る。現在の有効ビットの値が”1”で、更新メモリ13
0の値が”0”であることから、カウンタ制御回路16
0は更新カウンタ170に1加算するように指示する。
これにより、更新カウンタ170はその値を1加算す
る。キャッシュのミスヒットに伴う新たなデータが共有
メモリ200から読み込まれると、第iブロックのアド
レスタグ121、とデータ部122は、この新たなデー
タに変わる。この時、有効ビット123は”1”のまま
であり、更新メモリ130は”0”から”1”に変わ
る。すなわち、第iブロックは有効であり、かつ、現在
実行中のタスクによって更新されてそのデータが格納さ
れていることを示す。
【0027】また、有効ビット123の値が”1”で、
更新メモリ130の値が”1”である時にキャッシュの
ミスヒットが発生しても有効ビット123、更新メモリ
130および更新カウンタ170の値は変化しない。既
に当該タスクのために更新されたブロックであることか
ら、読み込みブロック数は変化しないからである。
【0028】また、有効ビット123の値が”0”の
時、すなわち有効なデータを含んでいないブロックであ
るとき、そのブロックについてキャッシュのミスヒット
が発生すると、新たなデータが読み込まれ、有効ビット
123は”1”に変わる。また、現タスクにより読み込
まれたブロックであることから、更新メモリ130の値
が”1”になり、さらに更新カウンタ170が1加算さ
れる。
【0029】次に、本発明の上記第一の実施例のマルチ
プロセッサシステムにおいてキャッシュ無効化が発生し
た場合の状態の遷移について図面を参照して詳細に説明
する。
【0030】まず、有効ビット123の値が”1”で、
更新メモリ130の値が”0”の時キャッシュ無効化が
発生すると、当該ブロックのデータはキャッシュメモリ
から追い出される。このとき、更新カウンタ170は変
化しない。無効化されたのが、他のタスクのブロックだ
からである。また、無効化後は有効ビット123の値
は”0”に変わる。
【0031】また、有効ビット123の値が”1”で、
更新メモリ130の値が”1”の時キャッシュ無効化が
発生すると、カウンタ制御回路160は更新カウンタに
その値を1減算するように指示する。これにより、更新
カウンタ170はその値を1減算する。無効化されたの
が、現タスクのブロックだからである。また、無効化後
は有効ビット123の値は”0”に変わる。
【0032】このように制御されることにより、更新カ
ウンタ170は、前回の更新カウンタの値 + 読込みブ
ロック数 − 追出しブロック数となる値を保持すること
になる。
【0033】次に、本発明の上記第一の実施例のマルチ
プロセッサシステムにおける動作について図面を参照し
て詳細に説明する。
【0034】図5を参照すると、プロセッサPにおいて
タスクUの中断が発生すると、まずタスク終了処理とし
て、更新カウンタ170の値は共有メモリ200内の親
密度管理表210のタスクUとプロセッサPにより特定
される位置に格納される(ステップ501)。そして、
実行待ち状態のタスクが存在するか否かを検査する(ス
テップ502)。実行待ち状態のタスクが存在しない場
合は、プロセッサPはアイドル状態となり、当該タスク
切替え処理は終了する(ステップ520)。
【0035】実行待ち状態のタスクが存在する場合は、
それらのタスクの中から1つずつタスクを選択しながら
(ステップ504)、対象となるタスクがなくなるまで
(ステップ503)、以下のように検査及び処理を実行
する。親密度管理表210の中から選択されたタスクの
プロセッサPに対する値を取り出してCNTとする(ス
テップ505)。検査済みのタスクがないか、または、
CNTの値が検査済みのタスクよりも大きい場合には
(ステップ506)、そのタスクの番号をTとする(ス
テップ507)。1つのタスクについてこれら処理が終
了すると、そのタスクを検査済みとする(ステップ50
8)。
【0036】これら処理(ステップ501から508)
により、未審査の実行待ちタスクがなくなった時には、
TにはCNTの値が最大となるタスクの番号が保持され
ていることになる。すなわち、タスクTは、プロセッサ
Pにおいてタスク直前に残っていたブロック数が最大と
なるタスクを示すことになる。この第一の実施例では、
キャッシュにブロックを多く確保しているタスクに対し
て優先的にディスパッチするポリシーを採用し、上記タ
スクTをプロセッサPの実行タスクとして割り当てる
(ステップ509)。そして、上記処理終了後、次のよ
うなタスク開始処理を行う(ステップ510)。まず、
プロセッサPの更新メモリの全てのビットを”0”とす
る。そして、親密度管理表210中、プロセッサPのタ
スクTに対応する値を更新カウンタ170に格納する。
その後、プロセッサPがタスクTを実行開始する。
【0037】次に、タスクTが実行待ち状態になった際
に、アイドル状態のプロセッサが存在すれば(ステップ
521)、それらのプロセッサの中から1つずつプロセ
ッサを選択しながら(ステップ523)、対象となるプ
ロセッサがなくなるまで(ステップ522)、以下の検
査及び処理を実行する。親密度管理表210の中から選
択されたタスクTの選択されたプロセッサに対する値を
取り出してCNTとする(ステップ524)。検査済み
のプロセッサがないか、または、CNTの値が検査済み
のプロセッサよりも大きい場合には(ステップ52
5)、そのプロセッサの番号をPとする(ステップ52
6)。1つのプロセッサについてこれら処理が終了する
と、そのプロセッサを検査済みとする(ステップ52
7)。
【0038】これら処理(ステップ521から527)
により、未審査のアイドルプロセッサがなくなった時に
は、PにはCNTの値が最大となるプロセッサの番号が
保持されていることになる。すなわち、プロセッサP
は、タスクTが中断前に確保していたブロック数が最大
となるアイドルプロセッサの番号を示すことになる。こ
の第一の実施例では、キャッシュにブロックを多く確保
しているプロセッサに対して優先的にディスパッチする
ポリシーを採用し、上記プロセッサPにタスクTを実行
タスクとして割り当てる(ステップ509)。そして、
前述のようにタスク開始処理を行う(ステップ51
0)。その後、プロセッサPがタスクTを実行開始す
る。
【0039】このように、本発明の第一の実施例である
マルチプロセッサシステムによれば、プロセッサPにお
けるタスクTがキャッシュ中に確保しているブロック数
を更新カウンタ170で計数して、この計数結果を親密
度管理表210に格納しておくことにより、プロセッサ
P上で新たなタスクにディスパッチする際、または、タ
スクTをアイドル状態のプロセッサにディスパッチする
際、キャッシュのミスヒットを低く抑えるようなディス
パッチを行うことができる。
【0040】次に本発明のマルチプロセッサシステムの
第二の実施例について図面を参照して説明する。
【0041】この第二の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図1の構成を有してい
る。また、プロセッサ100、キャッシュメモリ120
並びに更新メモリ130及び親密度管理表210も、第
一の実施例と同様であり、それぞれ、図2、図3および
図4の構成を有している。
【0042】次に、本発明の上記第二の実施例のマルチ
プロセッサシステムにおける動作について図面を参照し
て詳細に説明する。
【0043】この第二の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図5の流れ図のように動
作する。但し、タスク終了処理(ステップ501)及び
タスク開始処理(ステップ510)が以下のように第一
の実施例と異なる。この第二の実施例では、タスク開始
の際に更新カウンタ170を”0”とする。従って、更
新カウンタ170は、 読込みブロック数 − 追出しブロック数 となる値を保持することになる。キャッシュのミスヒッ
トにより新たなブロックが読み込まれると、その位置に
あったブロックはキャッシュから追い出されるため、そ
のブロックを持っていた他のタスクのプロセッサPに対
する親密度値は小さくなるべきである。しかし、ここで
は各ブロックがいずれのタスクにより更新されたものか
が判別できないため、全体の割合からこの親密度値を計
算する。すなわち、プロセッサPの更新カウンタ170
の値をC、元のタスクの番号をu、プロセッサPのキャ
ッシュメモリの全ブロック数をB、各タスクnのプロセ
ッサPに対応する親密度管理表210の値をA(P,
n)とすると、 A(P,u) ← A(P,u) + C A(P,n) ← A(P,n) − C × A(P,n)
/B (n≠u) のような置き換えを、タスク終了処理(ステップ50
1)として行う。
【0044】すなわち、第二の実施例においては、親密
度値は、あるプロセッサにおいてこれまでに実行された
各タスクが、現時点でキャッシュメモリに読み込んでい
ると思われるブロックの数の概数を表す。
【0045】なお、別のタスクの親密度値の減算を行う
際、分母を全ブロック数Bとしたのは、Bが通常2の累
乗になることが多いため、除算をシフト演算にすること
で計算が速くなるからである。従って、この分母をBと
せず、プロセッサPで現在有効となっているブロックの
総数を求めて、これを分母としてもよい。この場合は処
理の手間がかかるおそれがある一方、より正確に親密度
値を計算できるという利点がある。
【0046】また、タスク開始処理(ステップ510)
としては、プロセッサPの更新メモリ130の全てのブ
ロックを”0”として、さらに、プロセッサPの更新カ
ウンタ170を”0”とする。これにより、更新カウン
タ170は、現タスクがディスパッチされた時を基準と
して、現タスクが確保したブロックの数を示す。
【0047】このように、本発明の第二の実施例である
マルチプロセッサシステムによれば、プロセッサPにお
けるタスクTがキャッシュ中に新たに確保したブロック
数を更新カウンタ170で計数して、この計数結果に基
づいて親密度管理表210に反映することにより、第一
の実施例に比べてより厳密にキャッシュのミスヒットを
低く抑えるようなディスパッチを行うことができる。
【0048】次に本発明のマルチプロセッサシステムの
第三の実施例について図面を参照して説明する。
【0049】この第三の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図1の構成を有してい
る。
【0050】図6を参照すると、本発明の第三の実施例
におけるプロセッサ100は、図2の第一の実施例の場
合と同様に、演算処理回路110と、キャッシュメモリ
120と、更新メモリ130と、カウンタ制御回路16
0とを含んでいる。また、このプロセッサ100は、対
応するキャッシュのブロックがシステムモードによって
更新されたものかユーザモードによって更新されたもの
かを示すシステム識別メモリ140を含んでいる。さら
に、このプロセッサ100は、システムモードにおいて
確保されたブロックの数を計数するシステムカウンタ1
80と、ユーザモードにおいて確保されたブロックの数
を計数するユーザカウンタ190とを含んでいる。
【0051】図7を参照すると、キャッシュメモリ12
0は第一の実施例と同様に、複数のブロックにより構成
される。また、システム識別メモリ140は、対応する
ブロックが、システムモードにより確保されていれば”
1”を、ユーザモードにより確保されていれば”0”を
示す。
【0052】図8を参照すると、共有メモリ200に格
納されている親密度管理表210は、第一の実施例と同
様に、配列状に親密度値を保持している。第一の実施例
と異なるのは、システムタスク用の行が設けられている
点である。これにより、システムモードによる各プロセ
ッサにおける親密度値を格納することができる。
【0053】図9を参照すると、第三の実施例では、キ
ャッシュのミスヒットまたはキャッシュ無効化が発生す
ると、システムカウンタまたはユーザカウンタは、不変
であるか若しくは加算または減算される。図9におい
て、×はドントケア、すなわちどのような値でもかまわ
ない意である。図9のように制御することにより、シス
テムカウンタ180にはシステムモードにおいて確保さ
れたブロックの数が計数され、ユーザカウンタ190に
はユーザモードにおいて確保されたブロックの数が計数
される。
【0054】次に、本発明の上記第三の実施例のマルチ
プロセッサシステムにおける動作について図面を参照し
て詳細に説明する。
【0055】この第三の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図5の流れ図のように動
作する。但し、タスク終了処理(ステップ501)及び
タスク開始処理(ステップ510)が以下のように第一
の実施例と異なる。この第三の実施例では、第二の実施
例と同様に、タスク開始の際にシステムカウンタ180
およびユーザカウンタ190を”0”とする。従って、
システムカウンタ180およびユーザカウンタ190
は、第二の実施例の更新カウンタ170と同様に、 読込みブロック数 − 追出しブロック数 となる値を保持することになる。また、タスク終了処理
(ステップ501)としては、プロセッサPのシステム
カウンタ180の値を、親密度管理表210におけるシ
ステムタスクのプロセッサPに対する値に加算する。元
のタスクuが中断された時、システムカウンタにはシス
テムモードで読み込んでキャッシュメモリに残っている
ブロックの数の増減が正確に反映されているからであ
る。また、ユーザカウンタ190については、第二の実
施例における更新カウンタ170と同様の処理を行う。
【0056】また、タスク開始処理(ステップ510)
としては、プロセッサPのシステム識別メモリ140の
各ブロックの値を更新メモリ130の対応するブロック
に全て複写する。システムモードで読み込んだブロック
は全てのタスクに共有されるから、システム識別メモリ
140の値が”1”のブロック、すなわちシステムモー
ドのブロックを未更新であると誤認して、更新メモリ1
30を”0”にしてしまうことを回避するためである。
また、このタスク開始処理において、システムカウンタ
180およびユーザカウンタ190は、割り当てられた
タスクのディスパッチ後のブロック数の増減分のみを計
測するために”0”とされる。
【0057】第三の実施例において、アイドル状態のプ
ロセッサが存在しない場合に、入出力装置300等から
の割込み等によりシステムタスクの起動が必要になった
時は、図8の親密度管理表210において、システムタ
スクに対応する値が最大となるプロセッサを見つけ、そ
のプロセッサに対して現在実行中のタスクの実行を中断
させて、前述したタスク切替え処理を行わせてシステム
タスクを割り当てる。
【0058】このように、本発明の第三の実施例である
マルチプロセッサシステムによれば、システムモード用
のシステムカウンタ180を設けたことにより、第一の
実施例に比べて割込み等のためのシステムタスクの実行
によるキャッシュのミスヒットの増加を低く抑えること
ができる。
【0059】次に本発明のマルチプロセッサシステムの
第四の実施例について図面を参照して説明する。
【0060】この第四の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図1の構成を有してい
る。
【0061】図10を参照すると、本発明の第四の実施
例におけるプロセッサ100は、図2の第一の実施例の
場合と同様に、演算処理回路110と、キャッシュメモ
リ120とを含んでいる。また、このプロセッサ100
は、現在実行中のタスク番号を保持するタスクレジスタ
115と、キャッシュメモリの対応するブロックを確保
しているタスクのタスク番号を格納するタスク識別メモ
リ150と、それぞれが各タスクに対応する複数の更新
カウンタ170と、更新カウンタ170を減算する減算
制御回路163と、更新カウンタ170を加算する加算
制御回路166と、減算制御回路163と加算制御回路
166とに指示をするカウンタ制御指示回路161とを
さらに含んでいる。
【0062】図11を参照すると、キャッシュメモリ1
20は第一の実施例と同様に、複数のブロックにより構
成される。また、タスク識別メモリ150は、対応する
ブロックを確保しているタスクの識別番号を示す。
【0063】次に、本発明の上記第四の実施例のマルチ
プロセッサシステムにおいてキャッシュのミスヒットが
生じた場合の状態の遷移について図面を参照して詳細に
説明する。
【0064】プロセッサがタスク番号%3のタスクを実
行しているとする。この時、タスクレジスタ115の値
は”%3”となっている。キャッシュのミスヒットが生
じた際、対応するブロックの有効ビットが”1”であっ
たとすると、カウンタ制御指示回路161は減算指示の
制御信号を出力する。減算制御回路163はタスク識別
メモリ150のタスク番号が”%1”であったとする
と、これに対応する更新カウンタ170に減算指示を発
行する。これにより、第1番目の更新カウンタ170は
その値を1減算する。次いで、新たなブロックが読み込
まれると、カウント制御指示回路161は加算指示の制
御信号を出力する。加算制御回路166は、タスクレジ
スタ115の値”%3”により、これに対応する更新カ
ウンタ170に加算指示を発行する。これにより、第3
番目の更新カウンタ170はその値を1加算する。タス
ク識別メモリの対応する位置には”%3”が格納され
る。これは、キャッシュのミスヒットによりタスク番
号”%1”のタスクのブロックが追い出されてブロック
数が1減り、タスク番号”%3”のタスクのブロックが
読み込まれてブロック数が1増えたことを示している。
【0065】また、プロセッサがタスク番号”%1”の
タスクを実行しているとすると、タスクレジスタ115
の値は”%1”である。上記ブロックを再度アクセスし
てキャッシュのミスヒットが発生すると、有効ビットの
値が”1”なので、カウンタ制御指示回路161は減算
指示を減算制御回路163に与える。減算制御回路16
3は、タスク識別メモリの値”%1”により指定された
第1番目の更新カウンタ170に減算指示を与え、第1
番目の更新カウンタ170はその値を1減じる。次に新
たなブロックが読み込まれると、カウンタ制御指示回路
161は加算制御回路166に加算指示を与える。加算
制御回路166はタスクレジスタ115の値”%1”に
より指定された第1番目の更新カウンタ170に加算指
示を与え、第1番目の更新カウンタ170は1を加算す
る。当該ブロックには、新たなデータが読み込まれる
が、タスク識別メモリ150には元の値と同じ”%1”
が格納される。これは、キャッシュのミスヒットによ
り、タスク番号”%1”のタスクのブロック数が変化し
ないことを示している。
【0066】また、有効ビットが”0”であるブロック
をアクセスしてキャッシュのミスヒットが発生すると、
カウンタ制御指示回路161は減算指示を出力しない。
新たなブロックが読み込まれると、カウンタ制御指示回
路161は加算指示を加算制御回路166に与える。加
算制御回路166はタスクレジスタ115の値”%1”
により指定された第1番目の更新カウンタに加算指示を
与える。これにより、第1番目の更新カウンタはその値
を1加算する。当該ブロックに新たなデータが読み込ま
れると有効ビットは”1”になり、タスク識別メモリ1
50にはタスク番号”%1”が格納される。これはすな
わち、キャッシュのミスヒットにより無効状態のブロッ
クにタスク番号”%1”のブロックが読み込まれてブロ
ック数が1増えたことを示している。
【0067】次に、本発明の上記第四の実施例のマルチ
プロセッサシステムにおいてキャッシュ無効化が生じた
場合の状態の遷移について図面を参照して詳細に説明す
る。
【0068】有効ビットが”1”であるブロックに対し
てキャッシュ無効化が発生すると、カウンタ制御指示回
路161は減算指示を減算制御回路163に与える。タ
スク識別メモリの値が”%1”であるとすると、減算制
御回路163はこれによって指定された第1番目の更新
カウンタに減算指示を与える。これにより、第1番目の
更新カウンタは1減算する。この無効化により、当該ブ
ロックの有効ビットは”0”となる。これはすなわち、
キャッシュ無効化により、タスク番号”%1”のタスク
のブロックが無効となり、ブロック数が1減ったことを
示している。
【0069】なお、有効ビットが”0”であるブロック
に対しては無効化は通常発生しない。万一無効化が発生
しても、カウンタ制御指示回路161は減算を指示しな
い。
【0070】次に、本発明の上記第四の実施例のマルチ
プロセッサシステムにおける動作について図面を参照し
て詳細に説明する。
【0071】この第四の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図5の流れ図のように動
作する。但し、タスク終了処理(ステップ501)及び
タスク開始処理(ステップ510)が以下のように第一
の実施例と異なる。
【0072】タスク終了処理(ステップ501)では、
複数の更新カウンタ170の値を、親密度管理表210
のプロセッサPに対する各タスクに対応する位置に各々
格納する。ディスパッチの対象を検査する際にプロセッ
サPの状態を調べる必要があるからである。
【0073】また、タスク開始処理(ステップ510)
では、プロセッサPのタスクレジスタ115にタスクT
のタスク番号を保持させる。この際、各更新カウンタの
値はそのままでよい。各タスクが確保するブロック数は
常に最新の状態が更新カウンタ170に保持されている
からである。
【0074】このように、本発明の第四の実施例である
マルチプロセッサシステムによれば、プロセッサ100
内に全てのタスクに対応する更新カウンタ170を別々
に設けたことにより、第一乃至第三の各実施例に比べて
より正確に各タスクのブロック数を計測して各プロセッ
サに対する親密度値を管理し、最適なタスクスケジュー
リングを行うことができる。
【0075】次に本発明のマルチプロセッサシステムの
第五の実施例について図面を参照して説明する。
【0076】この第五の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図1の構成を有してい
る。また、プロセッサ100及びキャッシュメモリ12
0並びにタスク識別メモリ150は第四の実施例と同様
であり、それぞれ、図2および図3の構成を有してい
る。また、親密度管理表210は第3の実施例と同様で
あり、図8の構成を有している。
【0077】次に、本発明の上記第五の実施例のマルチ
プロセッサシステムにおける動作について図面を参照し
て説明する。
【0078】この第五の実施例のマルチプロセッサは、
以下の場合を除いて第四の実施例と同様の動作を行う。
すなわち、アイドル状態のプロセッサが存在しない場合
に、入出力装置300等からの割込み等が発生し、シス
テムタスクの起動が必要になった時には、図8の親密度
管理表210において、システムタスクに対応する値が
最大となるプロセッサを検索する。そして、そのように
して検索されたプロセッサに対して現在実行中のタスク
の実行を中断させて、前述したタスク切替え処理を行わ
せてシステムタスクを割り当てる。
【0079】このシステムタスクの取り扱いにおいて
は、システムタスクのタスク番号を”%0”とすれば、
第0番目の更新カウンタを使用することにより他の一般
のタスクと統一的に取り扱うことができる。
【0080】このように、本発明の第五の実施例である
マルチプロセッサシステムによれば、親密度管理表21
0内にシステムタスク用のエントリを設けたことによ
り、第四の実施例に比べて割込み等のためのシステムタ
スクの実行によるキャッシュのミスヒットの増加を低く
抑えることができる。
【0081】次に本発明のマルチプロセッサシステムの
第六の実施例について図面を参照して説明する。
【0082】この第六の実施例のマルチプロセッサシス
テムは、第一の実施例と同様に図1の構成を有してい
る。また、プロセッサ100、キャッシュメモリ120
並びにタスク識別メモリ150及び親密度管理表210
は第四の実施例と同様であり、それぞれ、図2、図11
および図4の構成を有している。さらに、共有メモリ2
00には各プロセッサに対応するタスクスロット表を格
納している。
【0083】図12を参照すると、タスクスロット表は
各々が複数のタスク番号を含んでおり、その各々のエン
トリにはスロット番号が付されている。図12の例では
スロット数は4つであるが、これは任意の構成をとるこ
とが可能である。この第六の実施例は、タスクレジスタ
115及びタスク識別メモリが上記のスロット番号を保
持又は格納し、更新レジスタ170の数がスロット数と
一致すること以外は第四の実施例と同様の構成を有す
る。
【0084】次に、本発明の上記第六の実施例のマルチ
プロセッサシステムにおける動作について図面を参照し
て詳細に説明する。
【0085】この第六の実施例のマルチプロセッサシス
テムは、キャッシュのミスヒット及びキャッシュ無効化
が発生した時の動作は、第四の実施例においてタスク番
号をスロット番号と読み替えたものと同様である。
【0086】また、第六の実施例において、タスク中断
が発生した場合及びアイドル状態のプロセッサが存在す
る場合にあるタスクが実行待ち状態になった時の動作
は、第一の実施例と同様に図5の流れ図のように動作す
る。但し、タスク終了処理(ステップ501)及びタス
ク開始処理(ステップ510)が以下のように第一の実
施例と異なる。
【0087】タスク終了処理(ステップ501)では、
プロセッサPのタスクスロット表220に格納されてい
るタスク番号を用いて、更新カウンタ170の値を親密
度管理表210の該当位置に格納する。例えば、図12
の例では、第0スロットに格納されているタスク番号が
%10であることから、第0番目の更新カウンタ170
の内容は親密度管理表210のプロセッサPのタスク番
号%10の位置に格納される。
【0088】図13を参照すると、タスクTをプロセッ
サPにディスパッチする際のタスク開始処理(ステップ
510)では、まず、変数IとSを初期化する(ステッ
プ531)。そしてプロセッサPのタスクスロット表の
第Iスロットに格納されたタスクをUとする(ステップ
532)。タスクUがタスクTと一致すれば(ステップ
533)、すなわちプロセッサPのタスクスロット表に
タスクTのタスク番号が格納されていれば、そのスロッ
ト番号をタスクレジスタに格納して(ステップ552,
551)タスクTを実行する。
【0089】ステップ533においてタスクTとタスク
Uが一致しない場合は、タスクスロット表に格納されて
いるタスクの内、プロセッサPに対する値が最小のタス
クUを検索する(ステップ534から538)。このよ
うにして検索されたタスクUを削除タスクとして(ステ
ップ539)、親密度管理表210のプロセッサPに対
応するタスクTの値とタスクUの値を交換する(ステッ
プ540)。そして、タスクUの識別番号が格納されて
いた第SスロットにタスクTのタスク番号を格納する
(スロット550)。なお、これによりタスクTはタス
クUのキャッシュ内のブロック数を引き継ぐことになる
が、ブロック数が最小のタスクであるからほとんど誤差
は生じない。また、キャッシュ内のタスク識別メモリに
スロットSが記憶されているブロック数と更新カウンタ
170の値との誤差も生じない。その後、タスクレジス
タ115にスロット番号Sが格納されて(ステップ55
1)、タスクTが実行される。
【0090】このように、本発明の第六の実施例である
マルチプロセッサシステムによれば、タスク番号をタス
クスロット表220のスロット番号に置き換えて管理す
ることにより、第五の実施例に比べて、更新カウンタ1
70の数を削減し、また各部のハードウェア資源を削減
することができる。
【0091】
【発明の効果】以上の説明で明らかなように、本発明に
よると、プロセッサPにおけるタスクTがキャッシュ中
に確保しているブロック数を親密度管理表に格納してお
くことにより、プロセッサP上で新たなタスクにディス
パッチする際、または、タスクTをアイドル状態のプロ
セッサにディスパッチする際、キャッシュのミスヒット
を低く抑えるようなディスパッチを行うことができる。
【0092】また、本発明によると、システムモードに
おいてもキャッシュのミスヒットの増加を低く抑えるこ
とができる。
【0093】また、本発明によると、更新カウンタを複
数設けたことにより、タスク毎の最新のブロック数を管
理することができる。
【0094】また、、本発明によると、タスク番号をス
ロット番号に置き換えて管理でき、ハードウェア構成を
単純化することができる。
【図面の簡単な説明】
【図1】本発明のマルチプロセッサシステムの構成を示
すブロック図である。
【図2】本発明の第一及び第二の実施例のマルチプロセ
ッサシステムにおけるプロセッサの構成を示す図であ
る。
【図3】本発明の第一及び第二の実施例におけるキャッ
シュメモリと更新メモリの構成を示す図である。
【図4】本発明の第一、第二、第四及び第六の実施例に
おける親密度管理表の構成を示す図である。
【図5】本発明の各実施例における各プロセッサの動作
を示す流れ図である。
【図6】本発明の第三の実施例のマルチプロセッサシス
テムにおけるプロセッサの構成を示す図である。
【図7】本発明の第三の実施例におけるキャッシュメモ
リとシステム識別メモリの構成を示す図である。
【図8】本発明の第三及び第五の実施例における親密度
管理表の構成を示す図である。
【図9】本発明の第三の実施例における各プロセッサの
内部状態の遷移を表す図である。
【図10】本発明の第四、第五及び第六の実施例のマル
チプロセッサシステムにおけるプロセッサの構成を示す
図である。
【図11】本発明の第四の実施例におけるキャッシュメ
モリとタスク識別メモリの構成を示す図である。
【図12】本発明の第六の実施例におけるタスクスロッ
ト表の構成を示す図である。
【図13】本発明の第六の実施例におけるタスク開始処
理の動作を示す流れ図である。
【符号の説明】
100 プロセッサ 110 演算処理回路 115 タスクレジスタ 120 キャッシュメモリ 130 更新メモリ 140 システム識別メモリ 150 タスク識別メモリ 160 カウンタ制御回路 161 カウンタ制御指示回路 163 減算制御回路 166 加算制御回路 170 更新カウンタ 180 システムカウンタ 190 ユーザカウンタ 200 共有メモリ 210 親密度管理表 300 入出力装置 400 共有バス

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 各々がキャッシュメモリを含む複数のプ
    ロセッサと、これらプロセッサに共有される共有メモリ
    とを含むマルチプロセッサシステムにおいて、 前記共有メモリは、各タスクが各プロセッサのキャッシ
    ュに確保するブロックの数をそれぞれ記憶し、あるタス
    クを何れかのプロセッサに割り当てる際に前記ブロック
    の数が最大となるプロセッサを選択することを特徴とす
    るマルチプロセッサシステム。
  2. 【請求項2】 各々がキャッシュメモリを含む複数のプ
    ロセッサと、これらプロセッサに共有される共有メモリ
    とを含むマルチプロセッサシステムにおいて、 前記共有メモリは、各タスクが各プロセッサのキャッシ
    ュに確保するブロックの数をそれぞれ記憶し、あるプロ
    セッサにおいて何れかのタスクを割り当てる際に前記ブ
    ロックの数が最大となるタスクを選択することを特徴と
    するマルチプロセッサシステム。
  3. 【請求項3】 各々がキャッシュメモリを含む複数のプ
    ロセッサと、これらプロセッサに共有される共有メモリ
    とを含むマルチプロセッサシステムにおいて、 前記共有メモリは、各タスクが各プロセッサのキャッシ
    ュに確保するブロックの数である親密度をそれぞれ示す
    親密度管理情報を含み、 前記プロセッサは、 タスクが割り当てられた後に前記キャッシュメモリの各
    ブロックが更新されたか否かを示す更新情報を含む更新
    メモリと、 前記キャッシュメモリにおいてミスヒットが発生した際
    に前記更新情報が更新されていない旨を示していれば加
    算され、キャッシュ無効化が発生した際に前記更新情報
    が更新されている旨を示していれば減算される更新カウ
    ンタとを含み、 タスク開始の際には、そのタスクについて当該プロセッ
    サの示す前記親密度管理情報の位置に格納される親密度
    を前記更新カウンタに保持し、 タスク終了の際には、そのタスクについて当該プロセッ
    サの示す前記親密度管理情報の位置に前記更新カウンタ
    の値を格納し、 タスク割り当ての際には前記親密度が最大となるタスク
    またはプロセッサを選択することを特徴とするマルチプ
    ロセッサシステム。
  4. 【請求項4】 各々がキャッシュメモリを含む複数のプ
    ロセッサと、これらプロセッサに共有される共有メモリ
    とを含むマルチプロセッサシステムにおいて、 前記共有メモリは、各タスクが各プロセッサのキャッシ
    ュに確保するブロックの数である親密度をそれぞれ示す
    親密度管理情報を含み、 前記プロセッサは、 タスクが割り当てられた後に前記キャッシュメモリの各
    ブロックが更新されたか否かを示す更新情報を含む更新
    メモリと、 前記キャッシュメモリにおいてミスヒットが発生した際
    に前記更新情報が更新されていない旨を示していれば加
    算され、キャッシュ無効化が発生した際に前記更新情報
    が更新されている旨を示していれば減算される更新カウ
    ンタとを含み、 タスク終了の際には、そのタスクについて当該プロセッ
    サの示す前記親密度管理情報の親密度に対して前記更新
    カウンタの値を加算し、他のタスクについて当該プロセ
    ッサの示す前記親密度管理情報の親密度に対して前記更
    新カウンタの値をそれぞれの親密度に比例して減算し、 タスク割り当ての際には前記親密度が最大となるタスク
    またはプロセッサを選択することを特徴とするマルチプ
    ロセッサシステム。
  5. 【請求項5】 各々がキャッシュメモリを含む複数のプ
    ロセッサと、これらプロセッサに共有される共有メモリ
    とを含むマルチプロセッサシステムにおいて、 前記共有メモリは、システムタスク及び各ユーザタスク
    が各プロセッサのキャッシュに確保するブロックの数で
    ある親密度をそれぞれ示す親密度管理情報を含み、 前記プロセッサは、 タスクが割り当てられた後に前記キャッシュメモリの各
    ブロックが更新されたか否かを示す更新情報を含む更新
    メモリと、 前記キャッシュメモリの各ブロックがシステムタスクに
    より確保されているか否かを示すシステム識別メモリ
    と、 システムタスクにおいて、前記キャッシュメモリのミス
    ヒットが発生した際に前記更新情報が更新されていない
    旨を示していれば加算され、キャッシュ無効化が発生し
    た際に前記更新情報が更新されている旨を示していれば
    減算されるシステム更新カウンタと、 ユーザタスクにおいて、前記キャッシュメモリのミスヒ
    ットが発生した際に前記更新情報が更新されていない旨
    を示していれば加算され、キャッシュ無効化が発生した
    際に前記更新情報が更新されている旨を示していれば減
    算されるユーザ更新カウンタとを含み、 タスク終了の際には、そのタスクについて当該プロセッ
    サの示す前記親密度管理情報の親密度に対して前記ユー
    ザ更新カウンタの値を加算し、他のタスクについて当該
    プロセッサの示す前記親密度管理情報の親密度に対して
    前記ユーザ更新カウンタの値をそれぞれの親密度に比例
    して減算し、システムタスクについて当該プロセッサの
    示す前記親密度管理情報の親密度に対して前記システム
    更新カウンタの値を加算し、 タスク割り当ての際には前記親密度が最大となるタスク
    またはプロセッサを選択することを特徴とするマルチプ
    ロセッサシステム。
  6. 【請求項6】 各々がキャッシュメモリを含む複数のプ
    ロセッサと、これらプロセッサに共有される共有メモリ
    とを含むマルチプロセッサシステムにおいて、 前記共有メモリは、各タスクが各プロセッサのキャッシ
    ュに確保するブロックの数である親密度をそれぞれ示す
    親密度管理情報を含み、 前記プロセッサは、 実行中のタスクのタスク番号を保持するタスクレジスタ
    と、 前記キャッシュメモリの各ブロックを確保するタスクの
    タスク番号を示すタスク番号情報を含むタスク番号メモ
    リと、 各タスク番号に対応する複数の更新カウンタとを含み、 前記キャッシュメモリにおいてミスヒットが発生した際
    に前記更新情報が更新されていない旨を示していれば前
    記タスクレジスタが示す前記更新カウンタを加算し、 キャッシュ無効化が発生した際に前記更新情報が更新さ
    れている旨を示していれば前記タスクレジスタが示す前
    記更新カウンタを減算し、 タスク終了の際には、前記複数の更新カウンタの各々を
    前記親密度管理情報の当該プロセッサの示す位置に格納
    し、 タスク割り当ての際には前記親密度が最大となるタスク
    またはプロセッサを選択することを特徴とするマルチプ
    ロセッサシステム。
  7. 【請求項7】 前記タスクはシステムタスク及びユーザ
    タスクを含み、前記親密度管理情報は、システムタスク
    及び各ユーザタスクが各プロセッサのキャッシュに確保
    するブロックの数である親密度を含むことを特徴とする
    前記請求項6記載のマルチプロセッサシステム。
  8. 【請求項8】前記共有メモリは、各プロセッサ毎にタス
    クのタスク番号を保持するタスクスロット表をさらに含
    み、 前記タスクスロット表に付されたスロット番号により各
    タスクを管理することを特徴とする前記請求項6記載の
    マルチプロセッサシステム。
JP6166486A 1994-07-19 1994-07-19 マルチプロセッサシステム Pending JPH0830562A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6166486A JPH0830562A (ja) 1994-07-19 1994-07-19 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6166486A JPH0830562A (ja) 1994-07-19 1994-07-19 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH0830562A true JPH0830562A (ja) 1996-02-02

Family

ID=15832288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6166486A Pending JPH0830562A (ja) 1994-07-19 1994-07-19 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH0830562A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030564A1 (ja) * 2004-09-17 2006-03-23 Matsushita Electric Industrial Co., Ltd. プロセッサ
WO2007017932A1 (ja) 2005-08-09 2007-02-15 Fujitsu Limited スケジュール制御プログラム及びスケジュール制御方法
JP2007172034A (ja) * 2005-12-19 2007-07-05 Glory Ltd 印刷検査装置
JP2008191949A (ja) * 2007-02-05 2008-08-21 Nec Corp マルチコアシステムおよびマルチコアシステムの負荷分散方法
WO2012020478A1 (ja) * 2010-08-10 2012-02-16 富士通株式会社 スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
JP2021005287A (ja) * 2019-06-27 2021-01-14 富士通株式会社 情報処理装置及び演算プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5583951A (en) * 1978-12-21 1980-06-24 Toshiba Corp Information processing system
JPS6275739A (ja) * 1985-09-30 1987-04-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション タスク割当て方法
JPH02193248A (ja) * 1989-01-23 1990-07-30 Hitachi Ltd 実記憶管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5583951A (en) * 1978-12-21 1980-06-24 Toshiba Corp Information processing system
JPS6275739A (ja) * 1985-09-30 1987-04-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション タスク割当て方法
JPH02193248A (ja) * 1989-01-23 1990-07-30 Hitachi Ltd 実記憶管理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030564A1 (ja) * 2004-09-17 2006-03-23 Matsushita Electric Industrial Co., Ltd. プロセッサ
CN100440153C (zh) * 2004-09-17 2008-12-03 松下电器产业株式会社 处理器
US8042116B2 (en) 2004-09-17 2011-10-18 Panasonic Corporation Task switching based on the execution control information held in register groups
WO2007017932A1 (ja) 2005-08-09 2007-02-15 Fujitsu Limited スケジュール制御プログラム及びスケジュール制御方法
US8479205B2 (en) 2005-08-09 2013-07-02 Fujitsu Limited Schedule control program and schedule control method
JP2007172034A (ja) * 2005-12-19 2007-07-05 Glory Ltd 印刷検査装置
JP2008191949A (ja) * 2007-02-05 2008-08-21 Nec Corp マルチコアシステムおよびマルチコアシステムの負荷分散方法
WO2012020478A1 (ja) * 2010-08-10 2012-02-16 富士通株式会社 スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
JP5408356B2 (ja) * 2010-08-10 2014-02-05 富士通株式会社 スケジューラプログラム、マルチコアプロセッサシステムおよびスケジューリング方法
US9262209B2 (en) 2010-08-10 2016-02-16 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
JP2021005287A (ja) * 2019-06-27 2021-01-14 富士通株式会社 情報処理装置及び演算プログラム

Similar Documents

Publication Publication Date Title
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
US7805582B2 (en) Method of managing memory in multiprocessor system on chip
US6233599B1 (en) Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US20150154045A1 (en) Contention management for a hardware transactional memory
US5652864A (en) Concurrent storage allocations or returns without need to lock free storage chain
US7284094B2 (en) Mechanism and apparatus allowing an N-way set associative cache, implementing a hybrid pseudo-LRU replacement algorithm, to have N L1 miss fetch requests simultaneously inflight regardless of their congruence class
EP0394624A2 (en) Multiple sequence processor system
SG175109A1 (en) Performing concurrent rehashing of a hash table for multithreaded applications
JP2005235228A5 (ja)
US8868835B2 (en) Cache control apparatus, and cache control method
JP2005332387A (ja) メモリ命令をグループ化及び管理する方法及びシステム
JPH0855028A (ja) マイクロプロセッサ
US8954969B2 (en) File system object node management
US20110208916A1 (en) Shared cache controller, shared cache control method and integrated circuit
CN110291507B (zh) 用于提供对存储器系统的加速访问的方法和装置
KR100400165B1 (ko) 처리 시스템 스케쥴링
US8671248B2 (en) Architecture support of memory access coloring
JPH0830562A (ja) マルチプロセッサシステム
US7584464B2 (en) Software processing method and software processing system
US20050044321A1 (en) Method and system for multiprocess cache management
JP2002278752A (ja) 命令の実行結果予測装置
US20090320036A1 (en) File System Object Node Management
US6775740B1 (en) Processor having a selector circuit for selecting an output signal from a hit/miss judgement circuit and data from a register file
KR20040022646A (ko) 프로세서의 동작 속도를 향상시키는 캐쉬 구조를 가지는프로세서 및 캐쉬 관리 방법
US10366013B2 (en) Caching structure for nested preemption