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
Application number
JP3237599A
Other languages
English (en)
Inventor
Kyoichi Tabata
享一 田畑
Shinya Yamaguchi
伸也 山口
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
Niigata Fuji Xerox Manufacturing Co Ltd
Original Assignee
NEC Corp
Niigata Fuji Xerox Manufacturing 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 NEC Corp, Niigata Fuji Xerox Manufacturing Co Ltd filed Critical NEC Corp
Priority to JP3237599A priority Critical patent/JPH0573518A/ja
Publication of JPH0573518A publication Critical patent/JPH0573518A/ja
Pending legal-status Critical Current

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がプログラム
の分配を管理するため、ソフトウェアの負担を軽減でき
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想アドレス型式のプ
ログラムを処理するCPUシステムに関し、特に複数の
CPUを有するマルチプロセッサのタスク処理に関す
る。
【0002】
【従来の技術】従来の複数のCPUからなるマルチプロ
セッサ型情報処理装置においては、各CPUは互いに並
列に接続され、タスクの分配はオペレーティングシステ
ムなどのソフトウェアによって制御されている。
【0003】
【発明が解決しようとする課題】上述したように従来の
マルチプロセッサ型情報処理装置では、複数CPUの処
理能力を引き出すためにオペレーティングシステムなど
のソフトウェアをマルチプロセッサ対応に書き換えなけ
ればならない。
【0004】また、シングルプロセッサ用のソフトウェ
アを処理した場合、CPU1個の装置よりも処理速度が
遅くなるという欠点がある。
【0005】本発明の目的は、プログラム全体を保持す
るシステムメモリからひとつの独立したローカルタスク
を読み込んで保持するローカルメモリと、ローカルメモ
リ内のプログラムを処理しCPUの信号をインタセプト
して処理結果を送るメモリマップされたCPUとを有
し、ひとつのCPUのメモリ空間上に他のCPUをマッ
ピングし、メモリ空間の中のひとつのタスク領域の中だ
けで独立してメモリ空間内のひとつのタスクとして処理
を行うことにより、上記の欠点を解消し、マルチタスク
用のプログラムの処理速度を向上できると同時に、仮想
アドレス型式のプログラムであれば、マルチプロセッサ
用として特に書き直されたものでなくてもマルチプロセ
ッサとしての処理能力を実現でき、ソフトウェアの負担
を軽減できるメモリマップドCPUシステムを提供する
ことにある。
【0006】
【課題を解決するための手段】本発明のメモリマップド
CPUシステムは、仮想アドレス型式に記述されたプロ
グラムを保持するシステムメモリと、システムメモリに
アクセスしてプログラムを処理する中央処理装置である
CPUとを有する情報処理装置のCPUシステムにおい
て、プログラム中からひとつの独立したプログラム領域
のローカルタスクを読み込んで保持するローカルメモリ
と、ローカルメモリ内のプログラムをCPUと独立して
処理しその結果または中間結果をローカルメモリ上に書
き込みCPUがシステムメモリ内のローカルタスク処理
に移行することを検知してCPUのシステムメモリに対
する信号をインタセプトしローカルメモリへアクセスさ
せてその処理結果をCPUに読み込ませCPUメモリ空
間上にマッピングされる前述のCPUとは別のCPUと
を有している。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0008】図1は本発明の一実施例のメモリマップド
CPUシステムのブロック図、図2は本実施例のメモリ
マップドCPUシステムが行うメモリ制御の方法を示し
たブロック図である。
【0009】図1において、本発明の一実施例のメモリ
マップド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個の場合を考える。
【0011】処理ユニットa3は、CPUa5と、ロー
カルメモリa7と、ローカルROMa9から成り、同様
に処理ユニットb4は、CPUb6とローカルメモリb
8とローカルROMb10から成っている。
【0012】CPU1は、ローカルバス2を通してシス
テムバス12上に接続されているシステムメモリ13、
システムROM14、入出力装置15とデータのやりと
りを行い、CPUa5,CPUb6は、それぞれローカ
ルメモリa7、ローカルメモリb8とやりとりを行う。
また、CPUa5,CPUb6は、ローカルバス2を通
してシステムメモリ13、システムROM14、入出力
装置15ともデータのやりとりを行う。
【0013】システムメモリ13の中には、仮想アドレ
ス型式のプログラムが存在し、多数の独立した個々のプ
ログラム(ローカルタスク)の集合と、各ローカルタス
クが共用できるプログラム(グローバルタスク)とが一
緒に保存されている。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にアクセスさせる。
【0015】この時、CPUa5がそのローカルタスク
の処理を終了していれば、処理結果をローカルメモリa
7を通してCPU1に読み込ませるし、まだ処理中であ
れば、CPU1に、次のローカルタスクへのタスクスイ
ッチを起こさせてその間にローカルタスクの処理を続行
する。
【0016】このようにCPUa5は、システムメモリ
13中のひとつのローカルタスクに置きかわるメモリマ
ップされた処理装置に相当し、CPU1と組み合わせて
複数のタスクを同時に処理する。
【0017】さらに、CPUb6は、CPUa5と同じ
機能を有する装置であり、もうひとつ別のローカルタス
クを同時に実行できる。この時、CPUa5とCPUb
6は、ローカルバス2を通して互いに相手の動作を監視
し、両方が同じローカルタスクを同時に実行しないよう
にしている。このようにして処理ユニットa3、処理ユ
ニットb4、CPU1の組み合わせにより、常に3つの
ローカルタスクを同時に実行する。
【0018】バスアービトレーション回路11は、CP
U1,CPUa5,CPUb6のうち複数が同時にシス
テムバス12上の装置にアクセスするときにバス競合を
防いでバス制御権をいずれかひとつに与える機能と、シ
ステムメモリ13に対して入出力装置15などから不正
な書き込みがあった場合に、ローカルバス2を通してC
PUa5,CPUb6に信号を送って処理を無効化する
機能を有する。
【0019】システムROM14は、CPU1が実行す
るシステムバス12上の装置の診断および初期化プログ
ラムを保持している。ローカルROMa9は、CPUa
5とローカルメモリa7の診断および初期化プログラ
ム、ローカルROMb10は、同様にCPUb6および
ローカルメモリb8の診断および初期化プログラムをそ
れぞれ保持している。
【0020】次に、図2を参照してプログラムの制御方
法について説明する。
【0021】図2において、本実施例のメモリ制御の方
法を示したブロック図は、主に、システムメモリ21
と、ローカルメモリa22と、ローカルメモリb23
と、CPU内部レジスタ24と、CPUa内部レジスタ
25と、CPUb内部レジスタ26とから構成されてい
る。
【0022】ここで、システムメモリ21、ローカルメ
モリa22、ローカルメモリb23は、それぞれ図1の
システムメモリ13、ローカルメモリa7、ローカルメ
モリb8の内容を図示したものである。
【0023】また、CPU内部レジスタ24、CPUa
内部レジスタ25、CPUb内部レジスタ26は、それ
ぞれ図1のCPU1,CPUa5,CPUb6の内部の
レジスタ群である。
【0024】システムメモリ21中には、仮想アドレス
型式のプログラムが保持されている。仮想アドレス型式
のプログラムは、ローカルタスクが存在するローカルタ
スク領域27と、グローバルタスクおよびローカルタス
ク管理領域が存在するローカルタスク領域28とから成
っている。
【0025】まず、ローカルタスク領域27には、ロー
カルタスク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をそれぞれ管理する。
【0027】グローバルタスク領域28の中には、これ
らの他にグローバルタスクのプログラム本体37〜39
(以下、GT37〜39と略す)とグローバルタスクを
管理するグローバルタスクディスクリプタ40(以下、
GT40と略す)、さらに、割り込み処理プログラムで
ある割り込みタスクセグメントのプログラム本体41
(以下、ITS41と略す)とそれを管理する割り込み
タスクディスクリプタ42(以下、ITD42と略す)
が保持されている。
【0028】GT37〜39には、各ローカルタスクに
対して共通の処理プログラム(オペレーティングシステ
ムのカーネル部)や基本入出力プログラムが含まれてお
り、各ローカルタスクから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のアドレスが保持されている。
【0030】CPU1は、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を保持する。
【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が処理され
る。
【0033】CPUa5とCPUb6は互いのLTDR
a47とLTDRb50を監視し合うことにより、両方
が同じローカルタスクを同時には実行しないように制御
されている。
【0034】また、システムメモリ21内のあるアドレ
スに対して不正なデータ書き込みが起こり、そのアドレ
ス領域がローカルメモリa22、ローカルメモリb23
に存在した時はCPUa5,CPUb6の処理は無効化
され、再びシステムメモリ21からコピーが行われ、タ
スク処理が再開される。
【0035】このようにしてCPUa5,CPUb6
は、CPU1のメモリ領域上にマッピングされ、それ自
体が仮想アドレス型式のプログラム中におけるひとつの
ローカルタスクとして振舞い、CPU1の処理と並行し
て自分自身の管理するローカルタスクの処理を行う。
【0036】
【発明の効果】以上説明したように、本発明のメモリマ
ップド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)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 仮想アドレス型式に記述されたプログラ
    ムを保持するシステムメモリと、前記システムメモリに
    アクセスしてプログラムを処理する中央処理装置である
    CPUとを有する情報処理装置のCPUシステムにおい
    て、前記プログラム中からひとつの独立したプログラム
    領域のローカルタスクを読み込んで保持するローカルメ
    モリと、前記ローカルメモリ内のプログラムを前記CP
    Uと独立して処理しその結果または中間結果を前記ロー
    カルメモリ上に書き込み前記CPUが前記システムメモ
    リ内のローカルタスク処理に移行することを検知して前
    記CPUのシステムメモリに対する信号をインタセプト
    し前記ローカルメモリへアクセスさせてその処理結果を
    前記CPUに読み込ませ前記CPUメモリ空間上にマッ
    ピングされる前記CPUとは別のCPUとを有すること
    を特徴とするメモリマップドCPUシステム。
JP3237599A 1991-09-18 1991-09-18 メモリマツプドcpuシステム Pending JPH0573518A (ja)

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)

* Cited by examiner, † Cited by third party
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. マルチプロセッサシステム、ライブラリモジュール、および描画処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
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) プラント制御システム