JPH0573518A - メモリマツプドcpuシステム - Google Patents
メモリマツプドcpuシステムInfo
- Publication number
- JPH0573518A JPH0573518A JP3237599A JP23759991A JPH0573518A JP H0573518 A JPH0573518 A JP H0573518A JP 3237599 A JP3237599 A JP 3237599A JP 23759991 A JP23759991 A JP 23759991A JP H0573518 A JPH0573518 A JP H0573518A
- Authority
- JP
- Japan
- Prior art keywords
- local
- cpu
- memory
- task
- program
- 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
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】セグメンテーションされたプログラム中の個々
の独立なタスクを複数のCPUに分配して並列に処理す
る。 【構成】ひとつのマスタCPUが管理するメモリ空間
(図2の21)上にあるセグメント(29,31,3
7)に対して他のスレーブCPU(25)が管理するロ
ーカルメモリ(53)をマッピングし、CPU内部レジ
スタ(25,43,44,45,46,47,48,4
9)の値を制御することによってひとつのCPUとその
メモリ空間上にマッピングされたCPUが個々の独立し
たタスクを並列に処理するマルチタスクシステムを構成
する。 【効果】上記により、マルチタスク用のプログラムの処
理速度が向上すると同時に、マスタCPUがプログラム
の分配を管理するため、ソフトウェアの負担を軽減でき
る。
の独立なタスクを複数のCPUに分配して並列に処理す
る。 【構成】ひとつのマスタCPUが管理するメモリ空間
(図2の21)上にあるセグメント(29,31,3
7)に対して他のスレーブCPU(25)が管理するロ
ーカルメモリ(53)をマッピングし、CPU内部レジ
スタ(25,43,44,45,46,47,48,4
9)の値を制御することによってひとつのCPUとその
メモリ空間上にマッピングされたCPUが個々の独立し
たタスクを並列に処理するマルチタスクシステムを構成
する。 【効果】上記により、マルチタスク用のプログラムの処
理速度が向上すると同時に、マスタCPUがプログラム
の分配を管理するため、ソフトウェアの負担を軽減でき
る。
Description
【0001】
【産業上の利用分野】本発明は、仮想アドレス型式のプ
ログラムを処理するCPUシステムに関し、特に複数の
CPUを有するマルチプロセッサのタスク処理に関す
る。
ログラムを処理するCPUシステムに関し、特に複数の
CPUを有するマルチプロセッサのタスク処理に関す
る。
【0002】
【従来の技術】従来の複数のCPUからなるマルチプロ
セッサ型情報処理装置においては、各CPUは互いに並
列に接続され、タスクの分配はオペレーティングシステ
ムなどのソフトウェアによって制御されている。
セッサ型情報処理装置においては、各CPUは互いに並
列に接続され、タスクの分配はオペレーティングシステ
ムなどのソフトウェアによって制御されている。
【0003】
【発明が解決しようとする課題】上述したように従来の
マルチプロセッサ型情報処理装置では、複数CPUの処
理能力を引き出すためにオペレーティングシステムなど
のソフトウェアをマルチプロセッサ対応に書き換えなけ
ればならない。
マルチプロセッサ型情報処理装置では、複数CPUの処
理能力を引き出すためにオペレーティングシステムなど
のソフトウェアをマルチプロセッサ対応に書き換えなけ
ればならない。
【0004】また、シングルプロセッサ用のソフトウェ
アを処理した場合、CPU1個の装置よりも処理速度が
遅くなるという欠点がある。
アを処理した場合、CPU1個の装置よりも処理速度が
遅くなるという欠点がある。
【0005】本発明の目的は、プログラム全体を保持す
るシステムメモリからひとつの独立したローカルタスク
を読み込んで保持するローカルメモリと、ローカルメモ
リ内のプログラムを処理しCPUの信号をインタセプト
して処理結果を送るメモリマップされたCPUとを有
し、ひとつのCPUのメモリ空間上に他のCPUをマッ
ピングし、メモリ空間の中のひとつのタスク領域の中だ
けで独立してメモリ空間内のひとつのタスクとして処理
を行うことにより、上記の欠点を解消し、マルチタスク
用のプログラムの処理速度を向上できると同時に、仮想
アドレス型式のプログラムであれば、マルチプロセッサ
用として特に書き直されたものでなくてもマルチプロセ
ッサとしての処理能力を実現でき、ソフトウェアの負担
を軽減できるメモリマップドCPUシステムを提供する
ことにある。
るシステムメモリからひとつの独立したローカルタスク
を読み込んで保持するローカルメモリと、ローカルメモ
リ内のプログラムを処理しCPUの信号をインタセプト
して処理結果を送るメモリマップされたCPUとを有
し、ひとつのCPUのメモリ空間上に他のCPUをマッ
ピングし、メモリ空間の中のひとつのタスク領域の中だ
けで独立してメモリ空間内のひとつのタスクとして処理
を行うことにより、上記の欠点を解消し、マルチタスク
用のプログラムの処理速度を向上できると同時に、仮想
アドレス型式のプログラムであれば、マルチプロセッサ
用として特に書き直されたものでなくてもマルチプロセ
ッサとしての処理能力を実現でき、ソフトウェアの負担
を軽減できるメモリマップドCPUシステムを提供する
ことにある。
【0006】
【課題を解決するための手段】本発明のメモリマップド
CPUシステムは、仮想アドレス型式に記述されたプロ
グラムを保持するシステムメモリと、システムメモリに
アクセスしてプログラムを処理する中央処理装置である
CPUとを有する情報処理装置のCPUシステムにおい
て、プログラム中からひとつの独立したプログラム領域
のローカルタスクを読み込んで保持するローカルメモリ
と、ローカルメモリ内のプログラムをCPUと独立して
処理しその結果または中間結果をローカルメモリ上に書
き込みCPUがシステムメモリ内のローカルタスク処理
に移行することを検知してCPUのシステムメモリに対
する信号をインタセプトしローカルメモリへアクセスさ
せてその処理結果をCPUに読み込ませCPUメモリ空
間上にマッピングされる前述のCPUとは別のCPUと
を有している。
CPUシステムは、仮想アドレス型式に記述されたプロ
グラムを保持するシステムメモリと、システムメモリに
アクセスしてプログラムを処理する中央処理装置である
CPUとを有する情報処理装置のCPUシステムにおい
て、プログラム中からひとつの独立したプログラム領域
のローカルタスクを読み込んで保持するローカルメモリ
と、ローカルメモリ内のプログラムをCPUと独立して
処理しその結果または中間結果をローカルメモリ上に書
き込みCPUがシステムメモリ内のローカルタスク処理
に移行することを検知してCPUのシステムメモリに対
する信号をインタセプトしローカルメモリへアクセスさ
せてその処理結果をCPUに読み込ませCPUメモリ空
間上にマッピングされる前述のCPUとは別のCPUと
を有している。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
て説明する。
【0008】図1は本発明の一実施例のメモリマップド
CPUシステムのブロック図、図2は本実施例のメモリ
マップドCPUシステムが行うメモリ制御の方法を示し
たブロック図である。
CPUシステムのブロック図、図2は本実施例のメモリ
マップドCPUシステムが行うメモリ制御の方法を示し
たブロック図である。
【0009】図1において、本発明の一実施例のメモリ
マップドCPUシステムは、CPU(中央処理装置)1
と、ローカルバス2と、処理ユニットa3と、処理ユニ
ットb4と、CPUa5と、CPUb6と、ローカルメ
モリa7と、ローカルメモリb8と、ローカルROMa
9と、ローカルROMb10と、バスアービトレーショ
ン回路11と、システムバス12と、システムメモリ1
3と、システムROM14と、入出力装置15とから構
成されている。
マップドCPUシステムは、CPU(中央処理装置)1
と、ローカルバス2と、処理ユニットa3と、処理ユニ
ットb4と、CPUa5と、CPUb6と、ローカルメ
モリa7と、ローカルメモリb8と、ローカルROMa
9と、ローカルROMb10と、バスアービトレーショ
ン回路11と、システムバス12と、システムメモリ1
3と、システムROM14と、入出力装置15とから構
成されている。
【0010】ここで、CPU1の接続されたローカルバ
ス2には、処理ユニットa3と処理ユニットb4が接続
されている。ローカルバス2には、さらに多くの処理ユ
ニットを接続できるが、本実施例では、処理ユニットが
2個の場合を考える。
ス2には、処理ユニットa3と処理ユニットb4が接続
されている。ローカルバス2には、さらに多くの処理ユ
ニットを接続できるが、本実施例では、処理ユニットが
2個の場合を考える。
【0011】処理ユニットa3は、CPUa5と、ロー
カルメモリa7と、ローカルROMa9から成り、同様
に処理ユニットb4は、CPUb6とローカルメモリb
8とローカルROMb10から成っている。
カルメモリa7と、ローカルROMa9から成り、同様
に処理ユニットb4は、CPUb6とローカルメモリb
8とローカルROMb10から成っている。
【0012】CPU1は、ローカルバス2を通してシス
テムバス12上に接続されているシステムメモリ13、
システムROM14、入出力装置15とデータのやりと
りを行い、CPUa5,CPUb6は、それぞれローカ
ルメモリa7、ローカルメモリb8とやりとりを行う。
また、CPUa5,CPUb6は、ローカルバス2を通
してシステムメモリ13、システムROM14、入出力
装置15ともデータのやりとりを行う。
テムバス12上に接続されているシステムメモリ13、
システムROM14、入出力装置15とデータのやりと
りを行い、CPUa5,CPUb6は、それぞれローカ
ルメモリa7、ローカルメモリb8とやりとりを行う。
また、CPUa5,CPUb6は、ローカルバス2を通
してシステムメモリ13、システムROM14、入出力
装置15ともデータのやりとりを行う。
【0013】システムメモリ13の中には、仮想アドレ
ス型式のプログラムが存在し、多数の独立した個々のプ
ログラム(ローカルタスク)の集合と、各ローカルタス
クが共用できるプログラム(グローバルタスク)とが一
緒に保存されている。CPU1は、それ自身の内部レジ
スタの値によって決まる特定アドレスの内容をシステム
メモリ13から読み出し、処理を実行する。処理の中に
は、CPU1の内部レジスタを更新するものがあり、そ
の更新によりCPU1の実行しているローカルタスクか
ら別のローカルタスクへタスクの切換え(タスククイッ
チ)が行われる。タスクスイッチを繰り返すことによ
り、システムメモリ13中の複数のローカルタスクをC
PU1が少しづつ繰り返し、全てのローカルタスクにつ
いて処理を実行する。
ス型式のプログラムが存在し、多数の独立した個々のプ
ログラム(ローカルタスク)の集合と、各ローカルタス
クが共用できるプログラム(グローバルタスク)とが一
緒に保存されている。CPU1は、それ自身の内部レジ
スタの値によって決まる特定アドレスの内容をシステム
メモリ13から読み出し、処理を実行する。処理の中に
は、CPU1の内部レジスタを更新するものがあり、そ
の更新によりCPU1の実行しているローカルタスクか
ら別のローカルタスクへタスクの切換え(タスククイッ
チ)が行われる。タスクスイッチを繰り返すことによ
り、システムメモリ13中の複数のローカルタスクをC
PU1が少しづつ繰り返し、全てのローカルタスクにつ
いて処理を実行する。
【0014】この時、CPUa5は、ローカルバス2を
通してCPU1とシステムメモリ13との間の制御信
号、アドレス信号を全て監視し、CPU1の内部レジス
タに新しいローカルタスクの情報(ローカルタスクのス
タートアドレスとメモリ容量)が書き込まれた時、CP
Ua5の内部レジスタに同じ情報をコピーし、また、そ
のローカルタスクの内容をシステムメモリ13からロー
カルメモリa7にコピーする。このようにしてCPUa
5は、ローカルメモリa7にコピーされたローカルタス
クをCPU1とは独立に実行する。その後、CPU1が
タスクスイッチを繰り返してCPUa5が実行している
ローカルタスクの処理に再び戻ってきて、そのローカル
タスクを読み出すためにシステムメモリ13をアクセス
するとき、CPUa5は、ローカルバス2を通してCP
U1の動作をインタセプトしてCPU1をローカルメモ
リa7にアクセスさせる。
通してCPU1とシステムメモリ13との間の制御信
号、アドレス信号を全て監視し、CPU1の内部レジス
タに新しいローカルタスクの情報(ローカルタスクのス
タートアドレスとメモリ容量)が書き込まれた時、CP
Ua5の内部レジスタに同じ情報をコピーし、また、そ
のローカルタスクの内容をシステムメモリ13からロー
カルメモリa7にコピーする。このようにしてCPUa
5は、ローカルメモリa7にコピーされたローカルタス
クをCPU1とは独立に実行する。その後、CPU1が
タスクスイッチを繰り返してCPUa5が実行している
ローカルタスクの処理に再び戻ってきて、そのローカル
タスクを読み出すためにシステムメモリ13をアクセス
するとき、CPUa5は、ローカルバス2を通してCP
U1の動作をインタセプトしてCPU1をローカルメモ
リa7にアクセスさせる。
【0015】この時、CPUa5がそのローカルタスク
の処理を終了していれば、処理結果をローカルメモリa
7を通してCPU1に読み込ませるし、まだ処理中であ
れば、CPU1に、次のローカルタスクへのタスクスイ
ッチを起こさせてその間にローカルタスクの処理を続行
する。
の処理を終了していれば、処理結果をローカルメモリa
7を通してCPU1に読み込ませるし、まだ処理中であ
れば、CPU1に、次のローカルタスクへのタスクスイ
ッチを起こさせてその間にローカルタスクの処理を続行
する。
【0016】このようにCPUa5は、システムメモリ
13中のひとつのローカルタスクに置きかわるメモリマ
ップされた処理装置に相当し、CPU1と組み合わせて
複数のタスクを同時に処理する。
13中のひとつのローカルタスクに置きかわるメモリマ
ップされた処理装置に相当し、CPU1と組み合わせて
複数のタスクを同時に処理する。
【0017】さらに、CPUb6は、CPUa5と同じ
機能を有する装置であり、もうひとつ別のローカルタス
クを同時に実行できる。この時、CPUa5とCPUb
6は、ローカルバス2を通して互いに相手の動作を監視
し、両方が同じローカルタスクを同時に実行しないよう
にしている。このようにして処理ユニットa3、処理ユ
ニットb4、CPU1の組み合わせにより、常に3つの
ローカルタスクを同時に実行する。
機能を有する装置であり、もうひとつ別のローカルタス
クを同時に実行できる。この時、CPUa5とCPUb
6は、ローカルバス2を通して互いに相手の動作を監視
し、両方が同じローカルタスクを同時に実行しないよう
にしている。このようにして処理ユニットa3、処理ユ
ニットb4、CPU1の組み合わせにより、常に3つの
ローカルタスクを同時に実行する。
【0018】バスアービトレーション回路11は、CP
U1,CPUa5,CPUb6のうち複数が同時にシス
テムバス12上の装置にアクセスするときにバス競合を
防いでバス制御権をいずれかひとつに与える機能と、シ
ステムメモリ13に対して入出力装置15などから不正
な書き込みがあった場合に、ローカルバス2を通してC
PUa5,CPUb6に信号を送って処理を無効化する
機能を有する。
U1,CPUa5,CPUb6のうち複数が同時にシス
テムバス12上の装置にアクセスするときにバス競合を
防いでバス制御権をいずれかひとつに与える機能と、シ
ステムメモリ13に対して入出力装置15などから不正
な書き込みがあった場合に、ローカルバス2を通してC
PUa5,CPUb6に信号を送って処理を無効化する
機能を有する。
【0019】システムROM14は、CPU1が実行す
るシステムバス12上の装置の診断および初期化プログ
ラムを保持している。ローカルROMa9は、CPUa
5とローカルメモリa7の診断および初期化プログラ
ム、ローカルROMb10は、同様にCPUb6および
ローカルメモリb8の診断および初期化プログラムをそ
れぞれ保持している。
るシステムバス12上の装置の診断および初期化プログ
ラムを保持している。ローカルROMa9は、CPUa
5とローカルメモリa7の診断および初期化プログラ
ム、ローカルROMb10は、同様にCPUb6および
ローカルメモリb8の診断および初期化プログラムをそ
れぞれ保持している。
【0020】次に、図2を参照してプログラムの制御方
法について説明する。
法について説明する。
【0021】図2において、本実施例のメモリ制御の方
法を示したブロック図は、主に、システムメモリ21
と、ローカルメモリa22と、ローカルメモリb23
と、CPU内部レジスタ24と、CPUa内部レジスタ
25と、CPUb内部レジスタ26とから構成されてい
る。
法を示したブロック図は、主に、システムメモリ21
と、ローカルメモリa22と、ローカルメモリb23
と、CPU内部レジスタ24と、CPUa内部レジスタ
25と、CPUb内部レジスタ26とから構成されてい
る。
【0022】ここで、システムメモリ21、ローカルメ
モリa22、ローカルメモリb23は、それぞれ図1の
システムメモリ13、ローカルメモリa7、ローカルメ
モリb8の内容を図示したものである。
モリa22、ローカルメモリb23は、それぞれ図1の
システムメモリ13、ローカルメモリa7、ローカルメ
モリb8の内容を図示したものである。
【0023】また、CPU内部レジスタ24、CPUa
内部レジスタ25、CPUb内部レジスタ26は、それ
ぞれ図1のCPU1,CPUa5,CPUb6の内部の
レジスタ群である。
内部レジスタ25、CPUb内部レジスタ26は、それ
ぞれ図1のCPU1,CPUa5,CPUb6の内部の
レジスタ群である。
【0024】システムメモリ21中には、仮想アドレス
型式のプログラムが保持されている。仮想アドレス型式
のプログラムは、ローカルタスクが存在するローカルタ
スク領域27と、グローバルタスクおよびローカルタス
ク管理領域が存在するローカルタスク領域28とから成
っている。
型式のプログラムが保持されている。仮想アドレス型式
のプログラムは、ローカルタスクが存在するローカルタ
スク領域27と、グローバルタスクおよびローカルタス
ク管理領域が存在するローカルタスク領域28とから成
っている。
【0025】まず、ローカルタスク領域27には、ロー
カルタスクaのプログラム本体29(以下、LTa29
と略す)、ローカルタスクbのプログラム本体30(以
下、LTb30と略す)、さらに、LTa29の実行途
中結果や実行状態を保持しているタスクステート領域a
31(以下、TSa31と略す)、同タスクステート領
域b32(以下、TSb32と略す)がある。
カルタスクaのプログラム本体29(以下、LTa29
と略す)、ローカルタスクbのプログラム本体30(以
下、LTb30と略す)、さらに、LTa29の実行途
中結果や実行状態を保持しているタスクステート領域a
31(以下、TSa31と略す)、同タスクステート領
域b32(以下、TSb32と略す)がある。
【0026】これらのローカルタスクに関するメモリ領
域は、グローバルタスク領域28内にマッピングされた
ディスクリプタによって管理されている。つまり、LT
a29のスタートアドレスとメモリ容量をローカルタス
クディスクリプタa33(以下、LTDa33と略す)
が保持し、同様にローカルタスクディスクリプタb34
(以下、LTDb34と略す)がLTb30の情報を、
タスクステートディスクリプタa35(以下、TSDa
35と略す)がTSa31を、タスクステートディスク
リプタb36(以下、TSDb36と略す)がTSb3
2をそれぞれ管理する。
域は、グローバルタスク領域28内にマッピングされた
ディスクリプタによって管理されている。つまり、LT
a29のスタートアドレスとメモリ容量をローカルタス
クディスクリプタa33(以下、LTDa33と略す)
が保持し、同様にローカルタスクディスクリプタb34
(以下、LTDb34と略す)がLTb30の情報を、
タスクステートディスクリプタa35(以下、TSDa
35と略す)がTSa31を、タスクステートディスク
リプタb36(以下、TSDb36と略す)がTSb3
2をそれぞれ管理する。
【0027】グローバルタスク領域28の中には、これ
らの他にグローバルタスクのプログラム本体37〜39
(以下、GT37〜39と略す)とグローバルタスクを
管理するグローバルタスクディスクリプタ40(以下、
GT40と略す)、さらに、割り込み処理プログラムで
ある割り込みタスクセグメントのプログラム本体41
(以下、ITS41と略す)とそれを管理する割り込み
タスクディスクリプタ42(以下、ITD42と略す)
が保持されている。
らの他にグローバルタスクのプログラム本体37〜39
(以下、GT37〜39と略す)とグローバルタスクを
管理するグローバルタスクディスクリプタ40(以下、
GT40と略す)、さらに、割り込み処理プログラムで
ある割り込みタスクセグメントのプログラム本体41
(以下、ITS41と略す)とそれを管理する割り込み
タスクディスクリプタ42(以下、ITD42と略す)
が保持されている。
【0028】GT37〜39には、各ローカルタスクに
対して共通の処理プログラム(オペレーティングシステ
ムのカーネル部)や基本入出力プログラムが含まれてお
り、各ローカルタスクからGTD40を通してアクセス
することができるが、各ローカルタスクから別のローカ
ルタスクはアクセスできないようにLTDa33、LT
Db34によって管理されている。
対して共通の処理プログラム(オペレーティングシステ
ムのカーネル部)や基本入出力プログラムが含まれてお
り、各ローカルタスクからGTD40を通してアクセス
することができるが、各ローカルタスクから別のローカ
ルタスクはアクセスできないようにLTDa33、LT
Db34によって管理されている。
【0029】CPU内部レジスタ24の中には、実行し
ているタスクを管理する各ディスクリプタのアドレスを
保持するレジスタが存在している。つまり、ローカルタ
スクディスクリプタレジスタ43(以下、LTDR43
と略す)には、現在実行しているローカルタスク(この
場合LTa29)を管理するLTDa33のアドレスが
保持され、同様にタスクステートディスクリプタレジス
タ44(以下、TSDR44と略す)には、TSDa3
5のアドレスが保持され、グローバルタスクディスクリ
プタレジスタ45(以下、GTDR45と略す)には、
LTa29からアクセスするグローバルタスクを管理す
るGTD40のアドレスが保持され、割り込み処理ディ
スクリプタレジスタ46(以下、ITDR46と略す)
には、CPU1に対して割り込み要求が入力された際
に、CPU1が実行すべきITS41を管理するITD
42のアドレスが保持されている。
ているタスクを管理する各ディスクリプタのアドレスを
保持するレジスタが存在している。つまり、ローカルタ
スクディスクリプタレジスタ43(以下、LTDR43
と略す)には、現在実行しているローカルタスク(この
場合LTa29)を管理するLTDa33のアドレスが
保持され、同様にタスクステートディスクリプタレジス
タ44(以下、TSDR44と略す)には、TSDa3
5のアドレスが保持され、グローバルタスクディスクリ
プタレジスタ45(以下、GTDR45と略す)には、
LTa29からアクセスするグローバルタスクを管理す
るGTD40のアドレスが保持され、割り込み処理ディ
スクリプタレジスタ46(以下、ITDR46と略す)
には、CPU1に対して割り込み要求が入力された際
に、CPU1が実行すべきITS41を管理するITD
42のアドレスが保持されている。
【0030】CPU1は、CPU内部レジスタ24のこ
れらのアドレスに基づいてタスクの処理を行う。タスク
スイッチは、GT37〜39内部のプログラムによって
CPU内部レジスタ24の内容が新しいローカルタスク
の値に書き換えられるか、または、外部(タイマーな
ど)からの割り込み要求によってITS41の処理によ
りCPU内部レジスタ24の内容が書き換えられるかの
いずれかで行われる。
れらのアドレスに基づいてタスクの処理を行う。タスク
スイッチは、GT37〜39内部のプログラムによって
CPU内部レジスタ24の内容が新しいローカルタスク
の値に書き換えられるか、または、外部(タイマーな
ど)からの割り込み要求によってITS41の処理によ
りCPU内部レジスタ24の内容が書き換えられるかの
いずれかで行われる。
【0031】さて、本実施例のメモリマップされたCP
Ua5、CPUb6(図1)は、各々内部にCPUa内
部レジスタ25、CPUb内部レジスタ26を持ってお
り、CPU内部レジスタ24の内容が、他のローカルレ
ジスタからLTa29にタスクスイッチを起こしたと
き、CPUa内部レジスタ25のLTDRa47,TS
DRa48,GTDRa49がそれぞれLTDR43,
TSDR44,GTDR45の値をコピーして保持す
る。続いてローカルメモリa22内にLTa29,TS
a31,GT37をそれぞれコピーしてLTa53,T
Sa54,GT55を保持する。
Ua5、CPUb6(図1)は、各々内部にCPUa内
部レジスタ25、CPUb内部レジスタ26を持ってお
り、CPU内部レジスタ24の内容が、他のローカルレ
ジスタからLTa29にタスクスイッチを起こしたと
き、CPUa内部レジスタ25のLTDRa47,TS
DRa48,GTDRa49がそれぞれLTDR43,
TSDR44,GTDR45の値をコピーして保持す
る。続いてローカルメモリa22内にLTa29,TS
a31,GT37をそれぞれコピーしてLTa53,T
Sa54,GT55を保持する。
【0032】GT55は、LTa53を処理する過程で
GT38,GT39などに更新されることがある。CP
Ua5(図1)は、ローカルメモリa22内のLTa5
3を実行しつつ中間結果やタスク実行中であることを示
すデータを随時ローカルメーモリa22内のTSa54
に書き込む。CPU1がタスクスイッチを繰り返して再
びLTa29の処理に戻ってきた時、CPUa5はLT
DR43とLTDRa47のスタートアドレスの値を比
較することで認識し、CPU1がLTDa33を通して
システムメモリ21内のLTa29にアクセスするのを
インタセプトしてローカルメモリa22の方にアクセス
させる。LTa53の処理がCPUa5によってすべて
終了していれば、ローカルメモリa22内のTSa54
の実行結果をそのままCPU1に読み込ませると同時
に、TSa31を書き換える。未だ処理途中であれば、
GT55によって示される次のローカルタスクへタスク
スイッチするようCPU内部レジスタ24を書き換え
る。このような処理を連続的に行うことによってCPU
a5がLTa29の処理を行うと同時に、CPU1がL
Ta29以外のタスク処理を次々と行う。ローカルメモ
リb23とCPUb内部レジスタ26についても同様で
LTDRb50,TSDRb51,GTDRb52に
は、LTDb34,TSDb36,GT38のアドレス
が保持され、CPUb6によってLTb30が処理され
る。
GT38,GT39などに更新されることがある。CP
Ua5(図1)は、ローカルメモリa22内のLTa5
3を実行しつつ中間結果やタスク実行中であることを示
すデータを随時ローカルメーモリa22内のTSa54
に書き込む。CPU1がタスクスイッチを繰り返して再
びLTa29の処理に戻ってきた時、CPUa5はLT
DR43とLTDRa47のスタートアドレスの値を比
較することで認識し、CPU1がLTDa33を通して
システムメモリ21内のLTa29にアクセスするのを
インタセプトしてローカルメモリa22の方にアクセス
させる。LTa53の処理がCPUa5によってすべて
終了していれば、ローカルメモリa22内のTSa54
の実行結果をそのままCPU1に読み込ませると同時
に、TSa31を書き換える。未だ処理途中であれば、
GT55によって示される次のローカルタスクへタスク
スイッチするようCPU内部レジスタ24を書き換え
る。このような処理を連続的に行うことによってCPU
a5がLTa29の処理を行うと同時に、CPU1がL
Ta29以外のタスク処理を次々と行う。ローカルメモ
リb23とCPUb内部レジスタ26についても同様で
LTDRb50,TSDRb51,GTDRb52に
は、LTDb34,TSDb36,GT38のアドレス
が保持され、CPUb6によってLTb30が処理され
る。
【0033】CPUa5とCPUb6は互いのLTDR
a47とLTDRb50を監視し合うことにより、両方
が同じローカルタスクを同時には実行しないように制御
されている。
a47とLTDRb50を監視し合うことにより、両方
が同じローカルタスクを同時には実行しないように制御
されている。
【0034】また、システムメモリ21内のあるアドレ
スに対して不正なデータ書き込みが起こり、そのアドレ
ス領域がローカルメモリa22、ローカルメモリb23
に存在した時はCPUa5,CPUb6の処理は無効化
され、再びシステムメモリ21からコピーが行われ、タ
スク処理が再開される。
スに対して不正なデータ書き込みが起こり、そのアドレ
ス領域がローカルメモリa22、ローカルメモリb23
に存在した時はCPUa5,CPUb6の処理は無効化
され、再びシステムメモリ21からコピーが行われ、タ
スク処理が再開される。
【0035】このようにしてCPUa5,CPUb6
は、CPU1のメモリ領域上にマッピングされ、それ自
体が仮想アドレス型式のプログラム中におけるひとつの
ローカルタスクとして振舞い、CPU1の処理と並行し
て自分自身の管理するローカルタスクの処理を行う。
は、CPU1のメモリ領域上にマッピングされ、それ自
体が仮想アドレス型式のプログラム中におけるひとつの
ローカルタスクとして振舞い、CPU1の処理と並行し
て自分自身の管理するローカルタスクの処理を行う。
【0036】
【発明の効果】以上説明したように、本発明のメモリマ
ップドCPUシステムは、プログラム全体を保持するシ
ステムメモリからひとつの独立したローカルタスクを読
み込んで保持するローカルメモリと、ローカルメモリ内
のプログラムを処理しCPUの信号をインタセプトして
処理結果を送るメモリマップされたCPUとを有し、ひ
とつのCPUのメモリ空間上に他のCPUをマッピング
し、メモリ空間の中のひとつのタスク領域の中だけで独
立してメモリ空間内のひとつのタスクとして処理を行う
ことにより、マルチタスク用のプログラムの処理速度が
向上すると同時に、仮想アドレス型式のプログラムであ
れば、マルチプロセッサ用として特に書き直されたもの
でなくてもマルチプロセッサとしての処理能力を実現で
き、ソフトウェアの負担を軽減できるという効果があ
る。
ップドCPUシステムは、プログラム全体を保持するシ
ステムメモリからひとつの独立したローカルタスクを読
み込んで保持するローカルメモリと、ローカルメモリ内
のプログラムを処理しCPUの信号をインタセプトして
処理結果を送るメモリマップされたCPUとを有し、ひ
とつのCPUのメモリ空間上に他のCPUをマッピング
し、メモリ空間の中のひとつのタスク領域の中だけで独
立してメモリ空間内のひとつのタスクとして処理を行う
ことにより、マルチタスク用のプログラムの処理速度が
向上すると同時に、仮想アドレス型式のプログラムであ
れば、マルチプロセッサ用として特に書き直されたもの
でなくてもマルチプロセッサとしての処理能力を実現で
き、ソフトウェアの負担を軽減できるという効果があ
る。
【図1】本発明の一実施例のメモリマップドCPUシス
テムのブロック図である。
テムのブロック図である。
【図2】本実施例のメモリマップドCPUシステムが行
うメモリ制御の方法を示したブロック図である。
うメモリ制御の方法を示したブロック図である。
1 CPU(中央処理装置) 2 ローカルバス 3 処理ユニットa 4 処理ユニットb 5 CPUa 6 CPUb 7 ローカルメモリa 8 ローカルメモリb 9 ローカルROMa 10 ローカルROMb 11 バスアービトレーション回路 12 システムバス 13 システムメモリ 14 システムROM 15 入出力装置 21 システムメモリ 22 ローカルメモリa 23 ローカルメモリb 24 CPU内部レジスタ 25 CPUa内部レジスタ 26 CPUb内部レジスタ 27 ローカルタスク領域 28 グローバルタスク領域 29 ローカルタスクaのプログラム本体(LTa) 30 ローカルタスクbのプログラム本体(LTb) 31 タスクステート領域a(TSa) 32 タスクステート領域b(TSb) 33 ローカルタスクディスクリプタa(LTDa) 34 ローカルタスクディスクリプタb(LTDb) 35 タスクステートディスクリプタa(TSDa) 36 タスクステートディスクリプタb(TSDb) 37,38,39 グローバルタスクのプログラム本
体(GT) 40 グローバルタスクディスクリプタ(GTD) 41 割り込みタスクセグメントのプログラム本体
(ITS) 42 割り込みタスクディスクリプタ(ITD) 43 ローカルタスクディスクリプタレジスタ(LT
DR) 44 タスクステートディスクリプタレジスタ(TS
DR) 45 グローバルタスクディスクリプタレジスタ(G
TDR) 46 割り込みタスクディスクリプタレジスタ(IT
DR) 47 ローカルタスクディスクリプタレジスタa(L
TDRa) 48 タスクステートディスクリプタレジスタa(T
SDRa) 49 グローバルタスクディスクリプタレジスタa
(GTDRa) 50 ローカルタスクディスクリプタレジスタb(L
TDRb) 51 タスクステートディスクリプタレジスタb(T
SDRb) 52 グローバルタスクディスクリプタレジスタb
(GTDRb) 53 ローカルタスクa(LTa) 54 タスクステート領域a(TSa) 55 グローバルタスク(GT)
体(GT) 40 グローバルタスクディスクリプタ(GTD) 41 割り込みタスクセグメントのプログラム本体
(ITS) 42 割り込みタスクディスクリプタ(ITD) 43 ローカルタスクディスクリプタレジスタ(LT
DR) 44 タスクステートディスクリプタレジスタ(TS
DR) 45 グローバルタスクディスクリプタレジスタ(G
TDR) 46 割り込みタスクディスクリプタレジスタ(IT
DR) 47 ローカルタスクディスクリプタレジスタa(L
TDRa) 48 タスクステートディスクリプタレジスタa(T
SDRa) 49 グローバルタスクディスクリプタレジスタa
(GTDRa) 50 ローカルタスクディスクリプタレジスタb(L
TDRb) 51 タスクステートディスクリプタレジスタb(T
SDRb) 52 グローバルタスクディスクリプタレジスタb
(GTDRb) 53 ローカルタスクa(LTa) 54 タスクステート領域a(TSa) 55 グローバルタスク(GT)
Claims (1)
- 【請求項1】 仮想アドレス型式に記述されたプログラ
ムを保持するシステムメモリと、前記システムメモリに
アクセスしてプログラムを処理する中央処理装置である
CPUとを有する情報処理装置のCPUシステムにおい
て、前記プログラム中からひとつの独立したプログラム
領域のローカルタスクを読み込んで保持するローカルメ
モリと、前記ローカルメモリ内のプログラムを前記CP
Uと独立して処理しその結果または中間結果を前記ロー
カルメモリ上に書き込み前記CPUが前記システムメモ
リ内のローカルタスク処理に移行することを検知して前
記CPUのシステムメモリに対する信号をインタセプト
し前記ローカルメモリへアクセスさせてその処理結果を
前記CPUに読み込ませ前記CPUメモリ空間上にマッ
ピングされる前記CPUとは別のCPUとを有すること
を特徴とするメモリマップドCPUシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3237599A JPH0573518A (ja) | 1991-09-18 | 1991-09-18 | メモリマツプドcpuシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3237599A JPH0573518A (ja) | 1991-09-18 | 1991-09-18 | メモリマツプドcpuシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0573518A true JPH0573518A (ja) | 1993-03-26 |
Family
ID=17017711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3237599A Pending JPH0573518A (ja) | 1991-09-18 | 1991-09-18 | メモリマツプドcpuシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0573518A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058744B2 (en) | 2001-05-18 | 2006-06-06 | Nec Corporation | Cluster system, computer and program |
WO2007138735A1 (ja) * | 2006-05-25 | 2007-12-06 | Sony Computer Entertainment Inc. | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 |
-
1991
- 1991-09-18 JP JP3237599A patent/JPH0573518A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058744B2 (en) | 2001-05-18 | 2006-06-06 | Nec Corporation | Cluster system, computer and program |
WO2007138735A1 (ja) * | 2006-05-25 | 2007-12-06 | Sony Computer Entertainment Inc. | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 |
JP2007316940A (ja) * | 2006-05-25 | 2007-12-06 | Sony Computer Entertainment Inc | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5274789A (en) | Multiprocessor system having distributed shared resources and dynamic and selective global data replication | |
US5706514A (en) | Distributed execution of mode mismatched commands in multiprocessor computer systems | |
US8151275B2 (en) | Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS | |
EP0192944B1 (en) | Data processing system with a main processor and a co-processor sharing the same resources | |
US7376949B2 (en) | Resource allocation and protection in a multi-virtual environment | |
US10176007B2 (en) | Guest code emulation by virtual machine function | |
AU595224B2 (en) | Improved virtual memory computer system | |
JPH04246745A (ja) | 情報処理装置及びその方法 | |
JPH04353947A (ja) | メモリページ特性タグ付けシステム | |
JP2004258840A (ja) | 仮想化されたi/oデバイスをもつ計算機システム | |
US5765195A (en) | Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms | |
EP0619899B1 (en) | Software control of hardware interruptions | |
JPH0573518A (ja) | メモリマツプドcpuシステム | |
JP3585510B2 (ja) | プログラム実行管理装置及びプログラム実行管理方法 | |
JPH03656B2 (ja) | ||
JP2597409B2 (ja) | マイクロコンピュータ | |
JP2864496B2 (ja) | 多重処理計算機 | |
JPS6336012B2 (ja) | ||
JPS5850383B2 (ja) | 情報処理装置 | |
JP2573255B2 (ja) | データキャッシュ制御方式 | |
JP2005056017A (ja) | 情報処理装置 | |
JPH04291642A (ja) | キャッシュ制御方式 | |
JPS6145346A (ja) | Iplシミユレ−ト処理装置 | |
CA2383747C (en) | Virtual addressing buffer circuit | |
JP3595131B2 (ja) | プラント制御システム |