JPH08137751A - プロセッサ装置及びその制御方法 - Google Patents

プロセッサ装置及びその制御方法

Info

Publication number
JPH08137751A
JPH08137751A JP6277287A JP27728794A JPH08137751A JP H08137751 A JPH08137751 A JP H08137751A JP 6277287 A JP6277287 A JP 6277287A JP 27728794 A JP27728794 A JP 27728794A JP H08137751 A JPH08137751 A JP H08137751A
Authority
JP
Japan
Prior art keywords
write
register
data
memory
instruction
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
JP6277287A
Other languages
English (en)
Other versions
JP3723243B2 (ja
Inventor
Shoji Tenma
尚二 天満
Atsushi Funaki
淳 船木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP27728794A priority Critical patent/JP3723243B2/ja
Priority to US08/502,351 priority patent/US5796996A/en
Publication of JPH08137751A publication Critical patent/JPH08137751A/ja
Application granted granted Critical
Publication of JP3723243B2 publication Critical patent/JP3723243B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Abstract

(57)【要約】 【目的】CPUに対する外部割込みを禁止することな
く、外部ターゲットの書込命令を出力バッファに対する
書込みで実行完了とした場合のターゲット書込み異常発
生に適切に対応できる。 【構成】外部メモリ34のメモリマップドレジスタ68
に対する制御プログラムの書込命令をCPU22が実行
した場合、書込アドレス及び書込データを出力バッファ
24に書き込んで書込命令を完了させる。書込命令に続
く読出命令の実行に先立って出力バッファ24,26の
書込アドレス及びデータを同期バッファ32に転送して
レジスタ56、レジスタ58に格納し、レジスタ54を
保持状態にセットする。CPU22の読出命令を実行す
ると、書込データ保持レジスタ58の書込データをメモ
リマップドレジスタ68に書き込み、書込終了を読出命
令の終了に同期させる。同期バッファユニット32が保
持状態で割込命令を受けると、割込復帰の命令アドレス
を、保持状態にあるデータの書込命令のアドレスに戻
し、割込終了で制御プログラムによるメモリマップドレ
ジスタの書込命令から再開させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPUの外部メモリ等
に対する書込命令の実行結果を格納して命令を終了させ
る出力バッファを備えたプロセッサ装置とその制御方法
に関し、特に外部メモリ上のメモリマップドレジスタに
対するCPUの書込命令で、外部出力バッファに格納さ
れた書込アドレスと書込データのビットマップドレジス
タに対する書込動作を、後続するCPUの読出命令に同
期して終了させるためのプロセッサ装置及びその制御方
法に関する。
【0002】
【従来の技術】近年、メモリの階層化によるCPUの高
速化技術の1つに、CPUによる書込命令の実行で外部
メモリや外部メモリ上に形成されたメモリマップドレジ
スタなどに出力されるデータを、CPU内部バッファ及
びCPU外部のバッファに格納し、書込命令を終了させ
る命令処理方法がある。このバッファを出力バッファと
いう。
【0003】出力バッファとしては、通常、CPU内部
に設けた1次キャッシュ部のキャッシュメモリをストア
バッファとして使用した内部出力バッファと、CPU外
部の2次キャッシュ部のキャッシュメモリを使用した外
部出力バッファがある。この命令処理方法は、CPUが
実行した外部のメモリへのデータ出力(書込アドレスと
書込データ)を伴う書込命令を、出力バッファにデータ
を格納した時点で終了させ、これによって実際のメモリ
への書込時間、即ちCPUが拘束される時間の短縮を図
るものである。
【0004】図19は従来の出力バッファを用いた命令
処理方法である。まずCPU700が制御プログラムに
従って外部メモリ740に対する書込命令800を実行
する。この書込命令800の実行はCPU700の内部
出力バッファ710に対する書込アドレスと書込データ
の格納で正常終了となり、CPU700は開放される。
【0005】内部出力バッファ710から2次キャッシ
ュユニット720の外部出力バッファ730への転送書
込み810は、CPU700の命令実行とは非同期に順
次行われる。また外部出力バッファ730からアクセス
対象である外部メモリ740への書込みも、同様にCP
U700の命令実行とは非同期に順次行われる。ここで
内部出力バッファ710から外部出力バッファ730へ
の書込み、又は外部出力バッファ730から外部メモリ
740への書込みにおいて異常が発生した場合、内部出
力バッファ710及び外部出力バッファ730は、格納
済みのアドレス及びデータを保持した状態で凍結され、
以降、CPU700プログラムが凍結解除指令を行うま
で凍結状態を継続させる。
【0006】この間、外部メモリ740への書込動作を
伴うCPU700の命令の実行は、内部出力バッファ7
10及び外部出力バッファ730を使用せず、直接、外
部メモリ740に対し書込動作が行われる。またCPU
700は、凍結状態で書込み回復処理を実行する。この
書込み回復処理は、内部出力バッファ710及び外部出
力バッファユニット730の凍結で保持されている書込
アドレスと書込データをCPU700が認識し、外部メ
モリ750に対し直接にCPU700自身が再書込みす
る回復処理を行う。
【0007】書込回復処理が終了したら、CPU700
は内部出力バッファ710及び外部出力バッファユニッ
ト730の凍結状態を解除し、内部出力バッファ710
及び外部出力バッファユニット730を使用したアクセ
ス状態に復帰する。ところで、このような出力バッファ
を使用したCPUの外部メモリの書込動作と、書込み異
常が発生した時の回復処理は、書込先が外部メモリ74
0のような受動素子である場合は問題ない。しかし、書
込先がメモリマップドレジスタ750のような能動素子
の場合、即ち書込みによって動作する例えば外部記憶装
置の制御レジスタなどの場合、異常発生時に出力バッフ
ァを凍結してCPU700でメモリマップドレジスタ7
50に直接書込むという単純な再書込みでは、回復する
ことができない。
【0008】通常、制御レジスタとして機能するメモリ
マップドレジスタ750は、図20のように、CPU7
00による複数の書込命令、例えば書込命令801,8
02,803を順次実行し、3回の書込動作811,8
12,813で必要なレジスタ書込みを完了し、書込完
了後のCPU700の読出動作でレジスタ内容に従った
動作を行う。
【0009】このメモリマップドレジスタ750の書込
動作811,812,813において異常が発生した場
合、後続する書込命令のシーケンスが異なるようにして
いる。例えば書込異常がないときの書込命令のシーケン
スは、図21のステップS1〜S7のように「書込命令
1」「書込命令2」「書込命令3」の順番となる。これ
に対し、例えば「書込命令1」の書込動作に異常がある
と、ステップS2からステップS8に進み、後続する命
令シーケンスは「書込命令4」「書込命令3」と異な
る。
【0010】このように複数の書込動作でレジスタ内容
が決まるメモリマップドレジスタ750の場合、書込異
常に対する回復処理として、内部出力バッファ710及
び外部出力バッファ730を凍結し、CPU700で凍
結した書込アドレス及びデータを認識して直接にメモリ
マップドレジスタ750に再書込みしても、レジスタ内
容を回復することはできない。これは書込異常で後続す
る書込命令のシーケンスが異ならせているにも係わら
ず、異常無しの命令シーケンスに戻した書込みとなり、
再書込みそのものが誤りとなる。
【0011】このようにメモリマップドレジスタ750
の書込異常の回復処理に関する問題は、メモリマップド
レジスタ750への書込動作の完了を、従来の非同期か
ら、CPU命令の実行完了に同期させることで、解決で
きる。具体的には、出力バッファを通過しないアクセス
命令を設け、回復処理を行えばよい。しかし、このアク
セス方法は、CPU700の内部にある直接アクセスで
きる内部出力バッファ710には有効であるが、二次キ
ャッシュ部720等のCPU700外部にある外部出力
バッファ730に対しては、一般的には有効ではなく、
出力バッファに強制吐出し機能を持たせたアクセス方法
が使用される。
【0012】この出力バッファに強制吐出し機能を持た
せたアクセス方法は、メモリマップドレジスタ750に
対するを外部割込みをCPU700が受け付けない状
態、即ち割込マスク状態にしてメモリマップドレジスタ
750に対する出力バッファからの書込み動作を、次の
手順で行う。 CPUを割込マスク状態に設定する。
【0013】CPUでメモリマップドレジスタの書込
命令を実行し、出力バッファに格納する。 CPU命令の実行に同期し、出力バッファの強制吐出
しにより、メモリマップドレジスタの書込動作を行う。 CPUの割込マスク状態を解除する。
【0014】メモリマップドレジスタ750の書込アク
セスで、CPU700を割込マスク状態に設定する理由
は、次のとおりである。外部出力バッファ730に書込
データと書込アドレスが保持された吐出し前の状態で、
メモリマップドレジスタ750を割込先とした外部割込
みが発生すると、出力バッファ吐き出し機能を使用した
メモリマップドレジスタ750の書込動作が割込処理に
より行われる。
【0015】このとき書込異常が起きると、書込命令シ
ーケンスの変更に伴い同様に書込回復ができなくなる問
題を生ずる。そこで、メモリマップドレジスタ750を
書込命令を実行する間は、CPU700を割込マスク状
態とし、外部割込みを受け付けないようにする。また出
力バッファの強制吐出し機能は、CPUの通常動作で
は、マップドレジスタ750の書込命令(複数命令)に
続きその読出命令を実行することから、CPUの読出命
令の実行時に吐出し動作を行い、吐出し完了と同期して
CPUの読出命令の実行を完了させる。これ以外に、C
PUに強制吐出しの専用命令をもたせる方法もあるが、
一般には使用されない。
【0016】図22は出力バッファの強制吐出し機能に
よるメモリマップドレジスタの書込動作である。まずC
PU700が割込みマスク状態で、メモリマップドレジ
スタ750の書込命令実行821を行い、内部出力バッ
ファ710に書込アドレスと書込データを格納して命令
実行を終了する。次にメモリマップドレジタ750の読
出命令をCPU700が実行するが、この読出命令の実
行に先立ち内部出力バッファ710から外部出力バッフ
ァ730への転送書込動作822が行われる。例えばC
PU700における次の読出命令を取出す命令フェッチ
サイクルで転送書込動作822を行う。
【0017】続いてCPU700が読出命令を実行する
と、この読出命令の実行によるバス動作を2次キャッシ
ュ部720で検出し、外部出力バッファ730の保持デ
ータをメモリマップドレジスタ750に書き込むアクセ
ス対象への書込動作823を実行する。このメモリマッ
プドレジスタ750の書込動作823が正常に終了する
と、吐出し完了の報告が読出命令の実行による読出デー
タの応答と共にCPU700に対し行われる。
【0018】一方、メモリマップドレジスタ750の書
込動作に異常があると、読出命令の実行による読出デー
タの応答に同期して書込異常がCPU700に報告され
る。そこでCPU700はメモリマップドレジスタ75
0に対する書込異常をリアルタイムで認識し、異常回復
の再書込みを行う。このため複数の書込命令に対応した
書込動作の途中で書込異常が報告されると、後続する命
令シーケンスを変更してメモリマップドレジスタ750
に確実に書込みを行うことができる。
【0019】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の出力バッファの吐出し機能を利用したメモリ
マップドレジスタの書込命令の処理にあっては、書込命
令の対象となるメモリマップドレジスタのアクセス頻度
が非常に高いため、メモリマップドレジスタをアクセス
するたびに、CPUで割込マスク状態の設定と解除の処
理を伴い、書込オーバヘッドが大きいという問題があ
る。
【0020】またメモリマップドレジスタの書込異常の
頻度は低いにも係わらず、CPUの割込マスク状態が頻
繁に設定されるため、外部割込みの応答性能が低下する
という問題もあった。本発明の目的は、CPUに対する
外部割込を禁止することなく、外部ターゲットの書込命
令を出力バッファに対する書込みで実行完了とした場合
のターゲット書込み異常発生に適切に対応できるプロセ
ッサ装置及びその制御方法を提供する。
【0021】
【課題を解決するための手段】図1は本発明の原理説明
図である。CPU22には、制御プログラムに従った命
令を実行する制御プログラム処理部62と、外部割込み
の発生で制御プログラム処理部62の実行を中断して割
込プログラムの命令を実行する割込プログラム処理部6
4が設けられる。CPU22の外部メモリ34上にはタ
ーゲットとしてメモリマップドレジスタ68が設けられ
る。
【0022】出力バッファ部(内部出力バッファ24と
外部出力バッファ26)は、CPU22の書込命令の実
行よるメモリマップドレジスタ68に対する書込アドレ
ス及び書込データを受信格納してCPU22の書込命令
を終了させる。同期バッファ回路部32には、書込アド
レス及び書込データの保持状態を示す使用状態表示レジ
スタ54、書込アドレスを保持する書込アドレス保持レ
ジスタ56、及び書込データを保持する書込データ保持
レジスタ58が設けられる。
【0023】同期バッファ回路部32は、CPU22の
メモリマップドレジスタ68に対する書込命令に続く読
出命令の実行に先立って、出力バッファ部から転送され
た書込アドレス及び書込データを書込アドレス保持レジ
スタ56と書込データ保持レジスタ58の各々に格納す
ると共に、使用状態表示レジスタ54をデータ保持状態
にセットする。
【0024】次に、CPU22の読出命令の実行に伴っ
て、書込データ保持レジスタ58の書込データをメモリ
マップドレジスタ68に書込み、この書込み終了を読出
命令による読出データの応答に同期させる。具体的に
は、メモリマップドレジスタ68への書込動作が正常に
終了した際に、書込データ保持レジスタ58のデータを
ダミーの読出データとしてCPU22に応答する。
【0025】またメモリマップドレジスタ68への書込
動作で異常が発生した場合、CPU22の読出命令によ
る読出データの応答に同期して、CPU22に書込動作
の異常終了を報告する。更に、同期バッファ回路部32
は、必要ならば、メモリマップドレジスタ68に対する
データ書込みを行った後に、使用状態表示レジスタ54
をクリアして非保持状態とする。
【0026】CPU22の割込プログラム処理部64
は、メモリマップドレジタ68に対する外部割込みの発
生時、同期バッファ回路部32の使用状態表示レジスタ
54を参照してデータ保持状態を判別した場合、割込終
了時の制御プログラムへの復帰命令アドレスを、保持状
態にある書込アドレス及び書込データの書込命令のアド
レスに戻し、割込処理の終了で、戻した書込命令アドレ
スから制御プログラムを実行させる。
【0027】具体的には、割込プログラム処理部64
は、制御プログラム処理部62でメモリマップドレジス
タ68の書込命令を終了してから、次の読出命令に先立
って出力バッファユニットの書込データ及び書込アドレ
スを同期バッファ回路部32に転送した後の読出命令の
実行までの間に外部割込みが発生した場合、同期バッフ
ァ回路部32の使用状態表示レジスタ54を読出し、同
期バッファ回路部32が保持状態にある場合は、割込み
復帰の命令アドレスを1命令戻してメモリマップドレジ
スタ68に対する割込み処理を実行し、割込終了でメモ
リマップドレジスタの書込命令から再開させる。
【0028】CPU22の制御プログラム処理部62
は、通常、メモリマップドレジスタ68に対する複数の
書込命令を実行した後に、メモリマップドレジスタ68
の読出命令を実行する。またCPU22の制御プログラ
ム処理部62は、メモリマップドレジスタ68に対する
複数の書込命令に続く読出命令の実行終了に伴って同期
バッファ回路部32から書込動作の異常報告を受信した
場合、異なる書込命令列の実行でメモリマップドレジス
タ68に対する後続する書込動作を行う。メモリマップ
ドレジスタ68は、例えば入出力制御装置の制御レジス
タである。
【0029】出力バッファ部は、CPU22の内部に設
けた内部出力バッファ(ストアバッファ)24と、CP
U22の外部に設けた外部出力バッファ26で構成され
る。CPU22の制御プログラム処理部62は、内部出
力バッファ24に対する書込動作でメモリマップドレジ
スタ68に対する書込命令を終了させる。内部出力バッ
ファ24に格納された書込アドレス及び読出アドレス
は、書込命令に続く読出命令の実行に先立って外部出力
バッファユニット26を経由して、同期バッファ回路部
32に転送される。
【0030】内部出力バッファ24は、CPU22の内
部に設けた1次キャッシュ部のキャッシュメモリであ
る。外部出力バッファユニット26は、CPU22の外
部に設けた2次キャッシュ部28のキャッシュメモリで
ある。また本発明は、プロセッサの制御方法を提供す
る。書込過程では、外部メモリ34上にマッピングされ
たメモリマップドレジスタ68に対する書込命令をCP
U22が実行した場合、メモリマップドレジスタ68に
対する書込アドレス及び書込データをCPU22から出
力バッファ(例えばCPU内部出力バッファ24)に書
込んで書込命令を終了させる。
【0031】次のバッファ転送過程では、CPU22の
メモリマップドレジスタ68に対する書込命令に続く読
出命令の実行に先立って、出力バッファ部の書込アドレ
ス及び書込データを同期バッファ回路部32に転送し、
その書込アドレス保持レジスタ56と書込データ保持レ
ジスタ58の各々に格納し、使用状態表示レジスタ54
にデータ保持状態にセットする。
【0032】次の同期過程では、CPU22の読出命令
の実行に伴って書込データ保持レジスタ58の書込デー
タをメモリマップドレジスタ68に書き込み、この書込
終了を読出命令による読出データの応答に同期させる。
更に、割込処理過程が設けられ、メモリマップドレジス
タ68に対する外部割込みの発生時、同期バッファ回路
部32の使用状態表示レジスタ54を参照してデータ保
持状態を判別した場合、割込終了時の制御プログラムへ
の復帰命令アドレスを、割込発生時にデータ保持状態に
ある書込アドレス及び書込データの書込命令のアドレス
に戻し、割込処理の終了で、戻した書込命令アドレスか
ら制御プログラムを実行させる。
【0033】
【作用】このような本発明のプロセッサ装置及びその制
御方法によれば、メモリマップドレジスタのアクセスを
実行する制御プログラムには、メモリマップドレジスタ
に対する外部割込みを禁止する割込マスク状態を設定す
る機能は設ける必要はなく、外部割込みはそのまま受け
付けて実行させる。
【0034】制御プログラムでCPUに割込マスクを設
定する代わりに本発明は、外部割込みの発生によるメモ
リマップドレジスタの割込プログラムに、対応する機能
を設ける。割込プログラムは、割込処理に先立ち同期バ
ッファ回路部がデータ保持状態にあるか否かチェックす
る。データ保持状態にあった場合にはメモリマップドレ
ジスタを対象とした割込処理によって同期バッファ回路
部に滞留中の書込データ及び書込アドレスが破壊されて
しまうことから、割込終了で復帰する制御プログラムの
復帰命令アドレスを、破壊される書込アドレスと書込デ
ータの書込命令のアドレスに戻しておく。
【0035】このため割込処理が終了すると、CPUで
書込命令は実行されたが、メモリマップドレジスタに対
して未書込みとなっている書込命令が、再度、CPUで
実行され、外部割込みが発生しても制御プログラムによ
るメモリマップドレジスタの書込動作を確実に行うこと
ができる。このため制御プログラムによるメモリマップ
ドレジスタのアクセスでCPUを割込マスク状態に設定
する必要がなくなり、これに伴う書込オーバヘッドをな
くすことができる。
【0036】また制御プログラムによるメモリマップド
レジスタのアクセス中であっても、外部割込みの発生時
には、メモリマップドレジスタの割込プログラムによる
割込処理が直ちに実行され、本来の割込応答性能を維持
することができる。
【0037】
【実施例】図2は本発明のプロセッサ装置の動作環境と
なる計算機システムである。この計算機システムでは、
4台のプロセッサマシン10−1〜10−4を設けてい
る。各プロセッサマシン10−1〜10−4のIDは、
#00〜#03となる。プロセッサマシン10−1〜1
0−4に対しては、システムバス14−1,14−2に
よってシステム記憶装置12−1,12−2が接続され
る。
【0038】またプロセッサマシン10−1〜10−4
に対しては、入出力バス16−1,16−2を介して、
例えば4台の入出力制御装置18−1〜18−4が接続
される。入出力制御装置18−1〜18−4のそれぞれ
は、入出力装置20−1〜20−4を接続している。入
出力装置20−1〜20−4としては、磁気ディスク装
置、光ディスク装置、磁気テープ装置、プリンタ、キー
ボード、マウス、タブレットなどのマンマシンインタフ
ェース、他の計算機システムとの通信制御装置などが設
けられ、入出力制御装置18−1〜18−4はそれぞれ
の入出力装置に対応した入出力制御モジュールとなる。
例えば入出力制御装置が磁気ディスク装置の場合は、入
出力制御装置は磁気ディスク制御装置となる。
【0039】この計算機システムにあっては4台のプロ
セッサマシン10−1〜10−4を例にとっているが、
最大構成として8台までプロセッサマシンを設けること
ができる。また、入出力制御装置は必要に応じて適宜に
増設できる。図3は、図2のプロセッサマシン10−1
のハードウェア構成である。他のプロセッサマシン10
−2〜10−4についても同様である。
【0040】このプロセッサマシンにはCPU22−1
が設けられる。CPU22−1には1次キャッシュ機構
が設けられており、この1次キャッシュ機構のキャッシ
ュメモリはストアバッファ24−1として示されてい
る。図4はCPU22−1の内部構成である。CPU2
2−1には、浮動小数点演算制御ユニット128、浮動
小数点演算実行ユニット130、整数演算制御ユニット
132、スーパースカラ整数演算実行ユニット134、
命令キャッシュメモリユニット136、データキャッシ
ュメモリユニット138、メモリ管理ユニット(MM
U)140およびバスインタフェースユニット142が
設けられる。
【0041】浮動小数点演算実行ユニット130は浮動
小数点演算制御128の制御のもとに浮動小数点演算を
実行する。スーパースカラ整数演算実行ユニット134
は整数演算制御ユニット132の制御のもとに、動的に
並列実行可能な整数演算命令を判別し、並列的に整数演
算を実行する。命令キャッシュメモリユニット136
は、例えば20キロバイトであり、メモリ管理ユニット
140によりキャッシュ制御を受ける。命令キャッシュ
メモリユニット136には、浮動小数点演算制御128
および整数演算制御ユニット132で使用する共有部の
EEPROM14からフェッチしたプログラムコードが
格納される。一度、プロクラムコードが命令キャッシュ
メモリユニット136に格納されると、その後、浮動小
数点演算制御128および整数演算制御ユニット132
は命令キャッシュメモリユニット136のプログラムコ
ードを使用した演算動作を実行する。
【0042】データキャッシュメモリユニット138
は、例えば16キロバイトの容量をもち、浮動小数点演
算実行ユニット130およびスーパースカラ整数演算実
行ユニット134の演算に使用する外部メモリから読み
出したデータを格納する。データキャッシュメモリユニ
ット138のキャッシュ制御もメモリ管理ユニット(M
MU)40により行われる。データキャッシュメモリユ
ニット138は内部出力バッファとなるストアバッファ
24−1として機能する。
【0043】再び図3を参照するに、CPU22−1の
外部には2次キャッシュメモリ26−1が設けられる。
2次キャッシュメモリ26−1は、2次キャッシュコン
トローラ28により制御される。CPU22−1,26
−1に対し、必要に応じてCPU22−2と2次キャッ
シュメモリ26−2を増設することができる。2次キャ
ッシュコントローラ28に続いては、メモリアクセスユ
ニット30を介してローカルストレージユニット34が
設けられる。ローカルストレージユニット34は、CP
U22−1に対する外部メモリとなる。更に、CPU2
2−1で実行する各種の制御プログラムを格納したRO
M36が設けられる。
【0044】ローカルストレージユニット34には、C
PU22−1に対応してメモリマップドレジスタ68が
設けられている。メモリマップドレジスタ68は、図2
の入出力制御装置18−1〜18−4の制御レジスタと
して使用される。CPU22−1は、制御プログラムの
メモリマップドレジスタ書込命令を実行することによ
り、ローカルストレージユニット34のメモリマップド
レジスタ68に対するデータ書込みを行う。通常、メモ
リマップドレジスタ68に対する書込命令は、複数の書
込命令を順次実行することで行われる。メモリマップド
レジスタ68をターゲットとした書込命令が複数回実行
されて書込動作が完了すると、続いてCPU22−1は
メモリマップドレジスタ68の読出命令を実行し、この
読出データに基づいて入出力制御装置に対する制御動作
を実行することになる。
【0045】CPU22−1におけるメモリマップドレ
ジスタ68の書込命令の実行は、内部出力バッファとし
て機能するストアバッファ24−1に対し書込アドレス
と書込データを格納することで終了する。ストアバッフ
ァ24−1に格納された書込アドレスおよび書込データ
は、次のCPU22−1によるメモリマップドレジスタ
68に対する読出命令の実行に先立ち、2次キャッシュ
メモリ26−1に転送され、更に本発明で新たに設けて
いるメモリアクセスユニット30内の同期バッファ回路
部32に転送される。
【0046】同期バッファ回路部32は、図5の回路構
成をもつ。まずレジスタ回路52には、使用状態表示レ
ジスタ54、書込アドレス保持レジスタ56および書込
データ保持レジスタ58が設けられている。使用状態表
示レジスタ54は、例えば図6(A)に示す32ビット
のレジスタであり、第1ビット目に同期バッファ回路部
32の使用状態の有無を表示するビジィビット55を設
けている。
【0047】ビジィビット55は、書込アドレス保持レ
ジスタ56および書込データ保持レジスタ58にデータ
が格納されるとビット1にセットされる。データが格納
されていないとき、ビジィビット55はビット0となっ
ている。書込アドレス保持レジスタ56および書込デー
タ保持レジスタ58も、図6(B)(C)に示すよう
に、32ビットのレジスタを使用している。
【0048】再び図5を参照するに、同期バッファ回路
部32には、転送回路46,60、CPU命令検出解読
回路48およびレジスタ制御回路50が設けられる。転
送回路46は、プロセッサマシンの内部バスを介して2
次キャッシュコントローラ28との間でアドレスおよび
データの転送を行う。CPU命令検出解読回路48は、
転送回路46に対する2次キャッシュコントローラ28
からの内部バスの状態を監視しており、CPU22−1
によるメモリマップドレジスタの書込命令の実行に伴う
バス動作を検出してレジスタ制御回路50に出力する。
【0049】レジスタ制御回路50は、転送回路46で
受信した2次キャッシュコントローラ28からのメモリ
マップドレジスタに対する書込アドレスおよび書込デー
タを受けて、レジスタ回路52の書込アドレス保持レジ
スタ56および書込データ保持レジスタ58に受信アド
レスおよび受信データを格納する。また、書込アドレス
および書込データの格納後に、使用状態表示レジスタ5
4のビジィビット55をビット1にセットする。
【0050】またレジスタ制御回路50は、メモリマッ
プドレジスタの書込アドレスおよび書込データの保持状
態でCPU命令検出解読回路48より読出命令の実行に
伴うバス動作の検出出力を受けると、レジスタ回路52
の書込アドレス保持レジスタ56の書込アドレスと書込
データ保持レジスタ58の書込データを読み出し、転送
回路60を介してローカルストレージユニット34のメ
モリマップドレジスタ68に対する書込動作を行う。
【0051】レジスタ回路52に設けている各レジスタ
54,56,58の内容は、メモリマップドレジスタ6
8に対する書込終了でクリアしてもよいし、クリアせず
にそのまま放置しておくことで、次のデータ転送の際に
レジスタ書替えを行うだけであってもよい。更に、必要
ならば、各レジスタにバリッドビットを設け、バリッド
ビットによってレジスタの書込みと書込禁止を制御する
ようにしてもよい。
【0052】再び図3を参照するに、メモリアクセスユ
ニット30に続いては割込コントローラ38が設けられ
る。割込コントローラ38は、各種の外部割込みを検出
し、CPU22−1に対し外部割込みの判別結果に応じ
た割込処理を指示する。更に、入出力バス16−1,1
6−2に対してはメッセージコントローラ40−1,4
0−2と入出力バスコントローラ42−1,42−2を
1つとしたユニットが設けられる。更に、システムバス
14−1,14−2のそれぞれに対しては、システムバ
スコントローラ44−1,44−2が設けられる。
【0053】ここでプロセッサマシンには、CPU22
−2及び次キャッシュメモリ26−2を増設することが
できる。CPU22−2を増設した場合、ローカルスト
レージユニット34には専用のメモリマップドレジスタ
が設けられる。図7は、本発明のプロセッサマシンによ
るローカルストレージユニット34に設けているメモリ
マップドレジスタ68に対するアクセス機能である。ま
ずCPU22には、通常の制御プログラムを実行する制
御プログラム処理部62が設けられる。この制御プログ
ラム処理部62の処理には、ローカルストレージユニッ
ト34に設けているメモリマップドレジスタ68の各々
に対するアクセス命令の実行も含まれる。以下の説明で
は、メモリマップドレジスタ68に対する制御プログラ
ムのアクセス命令のみを例にとる。
【0054】またCPU22には、割込プログラム処理
部64が設けられる。割込プログラム処理部64は、制
御プログラム処理部62による制御プログラムの実行中
に割込コントローラ38(図3参照)より外部割込みの
発生に基づく割込起動の指示を受けると、制御プログラ
ム処理部62による制御プログラムを中断して、割込ゲ
インに対応した割込プログラムを実行する。
【0055】この割込プログラム処理部64による割込
処理には、ローカルストレージユニット34に設けてい
るメモリマップドレジスタ68をターゲットとしたアク
セス命令を行う割込処理プログラムも含まれる。制御プ
ログラム処理部62で例えばローカルストレージユニッ
ト34のメモリマップドレジスタ68の書込命令を実行
すると、内部出力バッファとなるストアバッファ24に
対する書込アドレスおよび書込データの格納で書込命令
が終了する。通常、メモリマップドレジスタ68に対す
る書込みは、複数の書込命令の実行で完了する。したが
って、ストアバッファ24には書込命令の数に応じた書
込アドレスおよび書込データが格納されることになる。
【0056】複数の書込命令の実行が終了すると、制御
プログラム処理部62はメモリマップドレジスタ68の
読出命令を実行する。この読出命令の実行に先立って、
ストアバッファ24に格納された書込アドレスおよび書
込データが2次キャッシュコントローラ28のキャッシ
ュメモリで実現される外部出力バッファ26を経由し
て、メモリアクセスコントローラ30に設けている同期
バッファ回路部32に転送される。
【0057】ストアバッファ24から転送された書込ア
ドレスおよび書込データは、レジスタ制御回路50によ
り書込アドレス保持レジスタ56および書込データ保持
レジスタ58に格納される。このとき使用状態表示レジ
スタ54のビジィビット55がビット1にセットされ、
同期バッファ回路部32が使用状態にあることを表わ
す。
【0058】ストアバッファ24からのデータ転送のき
っかけは、制御プログラム処理部62における次に実行
する読出命令のフェッチサイクル動作を検出して行えば
よい。続いて読出命令は実行サイクルに移行して、読出
命令が実行される。この読出命令の実行は、内部バスを
介してメモリアクセスコントローラ30に読出コマンド
および読出アドレスを転送することで実現される。CP
U22による読出命令の実行に対し、同期バッファ回路
部32にあっては、そのCPU命令検出解読回路48
(図5参照)によって読出命令に伴う内部バスのバス動
作を検出し、これに基づきレジスタ制御回路50が書込
アドレス保持レジスタ56の書込アドレスおよび書込デ
ータ保持レジスタ58の書込データを読み出して、ロー
カルストレージユニット54に対し書込動作を指示す
る。
【0059】これによって、書込アドレスで指定された
メモリマップドレジスタ68−1に転送された書込デー
タの書込動作が行われる。同時に、メモリアクセスコン
トローラ30に対しては、CPU22よりメモリマップ
ドレジスタ68−1の読出コマンドが送られてきている
ため、読出データを応答しなければならない。通常の読
出動作はローカルストレージユニット34のメモリマッ
プドレジスタ68−1から読み出すが、このときメモリ
マップドレジスタ68−1に書き込まれたデータは同期
バッファ回路部の書込データ保持レジスタ58の書込デ
ータである。そこで、メモリマップドレジスタ68−1
の読出しは行わず、書込保持レジスタ58の書込データ
の書込動作の終了後に書込データ保持レジスタ58の書
込データを読み出して、ダミーの読出データとして内部
バスによりCPUに応答する。
【0060】図8は、図7においてCPU22の制御プ
ログラム処理部62がメモリマップドレジスタ68に対
する書込命令を実行して正常に書込動作が終了するまで
を表わす。まずCPU22は、ブロック100でメモリ
マップドレジスタの書込命令を実行し、ブロック102
で、内部のストアバッファ24に書込アドレスと書込デ
ータを格納して命令を終了する。次にCPU22は、ブ
ロック104で読出命令の取出し即ちフェッチ動作を行
う。
【0061】この読出命令の取出しを契機に、ストアバ
ッファ24から2次キャッシュメモリ28にブロック2
00に示すようにストアバッファ24の滞留データを同
期バッファ回路部32に転送するためのバッファ転送を
行い、更に2次キャッシュメモリ28より同期バッファ
回路部32に転送して、転送されたデータ(書込アドレ
スと書込データ)を対応するレジスタに格納し、更に使
用状態表示レジスタ(ステータスレジスタ)54をデー
タ保持状態にセットする。
【0062】次にCPU22は、ブロック105で読出
命令を実行する。この読出命令は、ブロック201に示
すように、2次キャッシュメモリ28を経由して同期バ
ッファ回路部32に通知される。具体的には、読出命令
に対し2次キャッシュのヒット判定を行うが、ミスヒッ
トとなることから、同期バッファ回路部32を設けてい
るメモリアクセスユニット30に対し読出コマンドおよ
び読出アドレスのバス転送を行う。
【0063】このような読出命令の実行に伴うバス動作
に対し、同期バッファ回路部32で読出命令の実行を検
出すると、ブロック301で、現在保持している保持ア
ドレスとCPUから通知された読出アドレスとを比較す
る。ブロック302でアドレス一致が得られると、ブロ
ック303で、保持データを外部メモリとなるローカル
ストレージユニット304の書込アドレスで指定される
メモリマップドレジスタに書き込む。これが外部メモリ
34のブロック400のデータ書込動作である。
【0064】外部メモリ34のメモリマップドレジスタ
に対するデータ書込動作が正常に終了すると、同期バッ
ファ回路部32はレジスタに保持している書込データを
読み出してダミーの読出データとしてCPU22に転送
し、読出命令の実行終了とする。図9,図10,図11
は、図8のメモリマップドレジスタに対する書込命令の
実行からデータ書込みの正常終了までの処理を分けて示
している。まず図9は、CPU22におけるメモリマッ
プドレジスタに対する書込命令の実行処理である。制御
プログラム処理部62は、外部メモリ34のメモリマッ
プドレジスタ68に対する書込命令実行70を行う。こ
の書込命令実行70は、CPU22の内部に設けている
ストアバッファ24に書込アドレスおよび書込データを
格納することで正常終了となる。
【0065】図10は、書込命令の実行に続いて、CP
U22の制御プログラム処理部62が次に実行する読出
命令取出し72を行った場合である。この読出命令取出
し72を契機として、ストアバッファ24に格納された
メモリマップドレジスタ68に対する書込アドレスと書
込データは、2次キャッシュコントローラ28のキャッ
シュメモリ26である外部出力バッファを経由して同期
バッファ回路部32に転送され、書込アドレス保持レジ
スタ56および書込データ保持レジスタ58に格納さ
れ、更に使用状態表示レジスタ54のビジィビットを1
にセットする。
【0066】図11は、読出命令取出し72に続くCP
U22の制御プログラム処理部62による読出命令実行
78の処理である。この読出命令実行78に伴い、2次
キャッシュコントローラ28を経由してメモリアクセス
ユニットの同期バッファ回路部32に内部バスによって
読出コマンドおよび読出アドレスが転送され、このバス
動作を検出することでCPU22の読出命令実行78を
同期バッファ回路部32で検出できる。
【0067】読出命令の実行を同期バッファ回路部32
で検出すると、書込アドレス保持レジスタ56のアドレ
スとCPU22から指示された読出アドレスとを比較す
る。アドレスが一致すれば、同期バッファ回路部32よ
り現在保持している書込アドレスと書込データを書込コ
マンドと共にローカルストレージユニット34である外
部ユニットに転送する書込動作80を行い、メモリマッ
プドレジスタ68に書き込む。
【0068】メモリマップドレジスタ68の書込みが正
常にできると、正常終了のステータス応答82が得られ
る。この終了応答82を受けると、同期バッファ回路部
32はCPU22の読出命令実行78に対する応答とし
て書込データ保持レジスタ58の書込データを読み出し
て、ダミーの読出データとしてバス転送する。なお、C
PU22の読出命令実行78で受信された読出アドレス
が同期バッファ回路部32の保持アドレスと不一致の場
合は、同期バッファ回路部32を内蔵しているメモリア
クセスユニット30(図3参照)による通常のローカル
ストレージユニット34に対する読出動作が行われる。
【0069】図12のタイムチャートは、メモリマップ
ドレジスタに対する書込動作で異常が発生した場合であ
る。ブロック303の外部メモリ34のメモリマップド
レジスタに対する書込動作において、ブロック401の
書込み異常が発生すると、これに対しブロック305で
CPU22に異常報告を行う。喪私論、異常報告と同時
に読出データ(ダミーデータ)も応答する。
【0070】図13のフローチャートは、図7のCPU
22に設けた制御プログラム処理部62によるメモリマ
ップドレジスタのアクセス処理のフローチャートであ
る。まずステップS1で、外部メモリに対する書込命令
が実行されると、ステップS2でCPU22内のストア
バッファ24に書込アドレスおよびデータを格納して処
理を終了する。次にステップS3で、次の命令が外部メ
モリの読出命令であることを判別すると、ステップS4
で、CPU22内のストアバッファ24に滞留している
書込アドレスと書込データを外部出力バッファとしての
2次キャッシュメモリ26を介して同期バッファ回路部
32に転送する。
【0071】続いてステップS5で外部メモリの読出命
令を実行し、読出命令の実行に伴い、ステップS6で、
同期バッファ回路部に対するバス動作によって読出コマ
ンドおよび読出アドレスを通知する。続いてステップS
7で、外部メモリからのステータスコマンドに対するス
テータス応答の受信をチェックしており、ステータス応
答を受信すると、ステップS8でステータスを解読す
る。
【0072】このステータス解読で外部メモリから正常
に読出データが応答され、且つ外部メモリに対する同期
バッファ回路部32からの書込動作の正常終了であった
場合には一連の処理を終了する。一方、外部メモリから
読出データの応答はあったが、これに同期して同期バッ
ファ回路部より外部メモリに対する書込動作の異常報告
があった場合には、ステップS10に進み、外部メモリ
のメモリマップドレジスタの書込動作で異常を起こした
書込命令を再度実行するリトライ処理を行って、再度書
込動作を行う。
【0073】図14のフローチャートは、図7の同期バ
ッファ回路部の処理動作である。本発明の実施例にあっ
ては、図5に示したように、同期バッファ回路部はハー
ドウェアで構成しており、したがって図14のフローチ
ャートはハードウェアの動作手順を示すことになる。ま
た、同期バッファ回路部32をマイクロプロセッサによ
るソフトウェアで実現する場合には、図14のフローチ
ャートに従ったプログラム処理とすればよい。
【0074】図14において、同期バッファ回路部32
は、ステップS1で上位の出力バッファ部からのデータ
転送の有無をチェックしており、外部メモリのメモリマ
ップドレジスタに対する書込アドレスと書込データのデ
ータ転送を受けると、ステップS2で、受信したアドレ
スとデータをそれぞれ書込アドレス保持レジスタ56と
書込データ保持レジスタ58に格納し、使用状態表示レ
ジスタ54のビジィビット55をオンする。
【0075】続いてステップS3で、CPU22の読出
動作を監視している。CPU22で読出命令が実行され
て内部バスに読出コマンドおよび読出アドレスが表示さ
れるバス動作からCPUの読出動作を検出すると、ステ
ップS4で、書込アドレス保持レジスタ56の保持アド
レスとCPUの読出アドレスを比較する。ステップS5
でアドレス一致を判別すると、ステップS6で、保持デ
ータを外部メモリのメモリマップドレジスタに書き込む
書込動作を行う。この書込動作が正常に行われると、ス
テップS7からステップS8に進み、同期バッファ回路
部32の書込データ保持レジスタ56の保持データを読
み出して、ダミーの読出データとしてCPU22に転送
して終了応答とする。
【0076】一方、メモリマップドレジスタの書込動作
で異常が発生した場合には、ステップS9に進み、ステ
ップS8と同様、保持データのダミー読出データとして
の応答に同期してCPUに書込動作の異常報告を応答す
る。この書込動作の異常報告を受けたCPUは、図13
のステップS10に示したように直ちにリトライ処理に
よる書込動作の回復を図る。
【0077】一方、ステップS5で保持アドレスとCP
Uの読出アドレスが一致しなかった場合には、同期バッ
ファ回路部32に保持しているデータの読出命令でない
ことから、ステップS10に進み、通常通り外部メモリ
の読出動作を実行してCPU22に転送する。これは同
期バッファ回路部32を設けているメモリアクセスユニ
ット30の機能で実現される。
【0078】次に、CPU22に設けた制御プログラム
処理部62により、メモリマップドレジスタ68に対す
る書込命令と読出命令の実行中に同じメモリマップドレ
ジスタ68に対する外部割込みが発生した場合の割込プ
ログラム処理部64の処理を説明する。図15は、制御
プログラム処理部62がブロック500で他の命令動作
を行い、次にメモリマップドレジスタに対する書込命令
動作をブロック502で行う前にブロック501の外部
割込みが発生した場合のタイムチャートである。このよ
うにブロック502のメモリマップドレジスタに対する
書込命令動作の前にブロック501の外部割込みが発生
すると、割込プログラム処理部64は、まずブロック6
00で同期バッファ回路部32の使用状態表示レジスタ
(ステータスレジスタ)54を読み出す。
【0079】このときブロック502のメモリマップド
レジスタに対する書込命令動作およびブロック503の
読出命令動作は行われていないため、同期バッファ回路
部32はブロック601のようにデータ非保持状態にあ
る。即ち、使用状態表示レジスタ54の読出しでビジィ
ビット55をチェックするとビット0となっている。こ
の場合には、ブロック602で、割込復帰命令アドレス
をブロック501の外部割込発生の次のブロック502
の書込命令動作の命令アドレスのまま維持して、ブロッ
ク603で割込処理を行う。ブロック603の割込処理
は、制御プログラム処理部62による処理と同様、図9
のように、CPU22の割込プログラム処理部64がメ
モリマップドレジスタ68の書込命令を実行してストア
バッファ24に書込データおよび読出データを格納す
る。
【0080】次のメモリマップドレジスタ68の読出命
令に先立って、図10のようにストアバッファ24から
2次キャッシュメモリ(外部出力バッファ)26を介し
て同期バッファ回路部32に書込アドレスおよび書込デ
ータが転送され、書込アドレス保持レジスタ56および
書込データ保持レジスタ58に格納した後、使用状態表
示レジスタ54のビジィビット55をビット1にオンす
る。
【0081】次に図11のように、制御プログラム処理
部62によりCPU22でメモリマップドレジスタ68
の読出命令が実行されると、これに伴うバスの読出動作
を同期バッファ回路部32で検出して保持アドレスと読
出アドレスを比較し、アドレス一致が得られることか
ら、保持データのメモリマップドレジスタ68に対する
書込みを行う。
【0082】このようなブロック603のメモリマップ
ドレジスタ68に対する割込処理が終了すると、ブロッ
ク602でセットした割込復帰命令アドレスにブロック
604で復帰し、割込終了で、制御プログラム処理部6
2はブロック502のメモリマップドレジスタに対する
命令動作を行う。図16は、制御プログラム処理部62
でメモリマップドレジスタに対する書込命令動作をブロ
ック510で行い、続いてブロック511で、メモリマ
ップドレジスタの読出命令の取出しを行い、次にブロッ
ク513で読出命令を実行するまでの間にブロック51
2の外部割込みが発生した場合の処理である。
【0083】ブロック512の外部割込みが発生した状
態では、ブロック510の書込命令動作でCPU22が
ストアバッファ24に格納した書込アドレスおよび書込
データが、ブロック511の読出命令の取出しを契機に
して同期バッファ回路部32に転送され、同期バッファ
回路部32はデータ保持状態となっている。この状態で
ブロック512の外部割込みの発生で割込プログラム処
理部64が起動すると、まずブロック610で、同期バ
ッファ回路部32の使用状態表示レジスタ(ステータス
レジスタ)54を読み出す。このときデータ書込みが行
われていることから、ビジィビット55はビット1とな
っており、ブロック611でデータ保持状態を認識す
る。
【0084】データ保持状態を認識すると、現在行って
いる割込処理により同期バッファ回路部32の保持デー
タは破壊されてしまうことから、ブロック612で、現
在保持状態にあるデータの書込みを行った書込命令に復
帰命令アドレスを戻す処理を行う。即ち、ブロック51
2の外部割込みの発生で本来の割込復帰命令アドレスは
次のブロック513で実行される読出命令の命令アドレ
スとなっているが、ブロック612では、この読出命令
の割込復帰命令アドレスを1命令戻したブロック510
の書込命令の命令アドレスとする。
【0085】続いてブロック613で、メモリマップド
レジスタに対する書込命令と読出命令の実行を伴う割込
処理を行い、割込終了によるブロック614の復帰処理
はブロック612で戻した外部割込み発生前の書込命令
の命令アドレスとし、制御プログラム処理部52はブロ
ック510から再度書込命令動作を行う。この割込終了
後のブロック510の書込命令動作により、外部割込み
の発生で破壊された同期バッファ回路部32のデータが
次のブロック511の読出命令取出しを通じて回復し、
もし外部割込みが続いて発生しなければ、ブロック51
3で、CPUの読出命令の実行に伴い、メモリマップド
レジスタに同期バッファ回路部32に保持していたデー
タの書込動作が行われる。このため、外部割込みの発生
により同期バッファ回路部32に保持したデータが破壊
されても、割込終了後に正しいメモリマップドレジスタ
に対する書込動作を行うことができる。
【0086】図17は、ブロック521で書込命令動作
を行い、次のブロック522で読出命令動作を行った後
にブロック523で外部割込みが発生した場合の割込処
理である。ブロック522の読出命令動作の終了後のブ
ロック523の外部割込み発生にあっては、同期バッフ
ァ回路部32の保持データは既にメモリマップドレジス
タ68に書き込まれていることから、同期バッファ回路
部の格納データが破壊されても問題はなく、割込復帰命
令アドレスを維持したまま割込処理を行う。この場合の
割込処理プログラム処理部64によるブロック620〜
624までの処理は、図15の書込命令動作前の割込処
理と同じである。
【0087】図18のフローチャートは、本発明の割込
プログラム処理部64の割込処理である。外部割込みで
割込処理が起動すると、ステップS1で、同期バッファ
回路部の使用状態表示レジスタ(ステータスレジスタ)
54を読み取り、ビジィビット55の状態でデータ保持
状態か否かチェックする。ステップS2でデータ保持状
態を判別すると、ステップS3で、制御プログラムの割
込復帰アドレスを1命令戻す処理を行い、ステップS5
で割込処理を実行し、ステップS4でセットした制御プ
ログラムの割込復帰アドレスにリターンする。
【0088】一方、ステップS2で、ビジィビットがビ
ット0でデータ保持状態にないときには、ステップS3
の割込復帰アドレスを1命令戻す処理を行わず、割込発
生が起きた次の命令アドレスを割込復帰アドレスとして
維持したまま、ステップS4の割込処理を行って、制御
プログラムにリターンする。尚、上記の実施例は、CP
U外部のアクセスターゲットとして外部メモリ上のメモ
リマップドレジスタを例にとっているが、本発明はこれ
に限定されず、CPUの外部に存在する適宜のアクセス
対象となるターゲットについて同様な処理を適用するこ
とができる。更に本発明は実施例に示した数値による限
定は受けない。
【0089】
【発明の効果】以上説明してきたように本発明によれ
ば、外部割込みの発生による割込処理において、同期バ
ッファ回路部にアクセスターゲットとなるメモリマップ
ドレジスタに書き込むデータが保持状態にあるか否かチ
ェックし、データ保持状態にあるときには、割込処理の
実行で保持データが破壊される可能性があることから、
制御プログラムの動作を保持データの書込動作以前の状
態に復帰させることで、制御プログラムにおけるCPU
のマスク制御処理を不要とし、制御プログラムのオーバ
ヘッドを低減すると共に、割込応答性を低下させること
なく、出力バッファを用いた外部ターゲットに対する書
込動作を確実に行うことができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明の動作環境となるシステム構成図
【図3】図2のプロセッサマシンのブロック図
【図4】図3のCPUのブロック図
【図5】図3の同期バッファ回路部の回路ブロック図
【図6】図3の同期バッファ回路部に設けたレジスタの
説明図
【図7】本発明の処理機能のブロック図
【図8】書込命令の実行から書込動作が正常に行われる
までのタイムチャート
【図9】書込命令の実行サイクルの説明図
【図10】読出命令に先立って行われる転送サイクルの
説明図
【図11】読出命令の実行に同期した書込サイクルの説
明図
【図12】書込動作で異常が起きたときのタイムチャー
【図13】CPUの制御プログラム処理のフローチャー
【図14】同期バッファ回路部の処理動作のフローチャ
ート
【図15】書込命令の実行前に外部割込みが発生した時
のタイムチャート
【図16】書込命令の実行後で読出命令の実行前に外部
割込みが発生した時のタイムチャート
【図17】読出命令の終了後に外部割込が発生した時の
タイムチャート
【図18】割込処理のフローチャート
【図19】従来の出力バッファを用いた外部メモリのア
クセス機能のブロック図
【図20】メモリマップドレジスタに対する複数の書込
命令による書込動作の説明図
【図21】メモリマップドレジスタに対するアクセス命
令シーケンスのフローチャート
【図22】CPUの命令実行に書込動作を同期させたア
クセス方法の説明図
【符号の説明】
10−1〜10−4:プロセッサマシン 12−1,12−2:システム記憶装置(システムスト
レージユニット;SSU ) 14−1,14−2:システムバス 16−1,16−2:入出力バス 18−1〜18−4:入出力制御装置(入出力制御モジ
ュール) 20−1〜20−4:入出力装置 22,22−1,22−2:CPU 24,24−1,24−2:ストアバッファ(内部出力
バッファ) 26,26−1,26−2:2次キャッシュメモリ(外
部出力バッファ) 28:2次キャッシュコントローラ 30:メモリアクセスコントローラ 32:同期バッファ回路部 34:ローカルストレージユニット(外部メモリ) 36:ROM 38:割込みコントローラ 40−1,40−2:メッセージコントローラ 42−1,42−2:入出力バスコントローラ 44−1,44−2:システムバスコントローラ 46,60:転送回路 48:CPU命令検出解読回路 50:レジスタ制御回路 52:レジスタ回路 54:使用状態表示レジスタ 55:ビジィビット 56:書込アドレス保持レジスタ 58:書込データ保持レジスタ 62:制御プログラム処理部 64:割込プログラム処理部

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】制御プログラムに従った命令を実行する制
    御プログラム処理部を備えたCPUと、 前記CPUの外部メモリ上にマッピングされたメモリマ
    ップドレジスタと、 前記制御プログラム処理部によるメモリマップドレジス
    タ書込命令の実行による書込アドレス及び書込データを
    受信格納して前記書込命令の実行を終了させる出力バッ
    ファ部と、 書込アドレスと書込データの保持状態を示す使用状態表
    示レジスタと、 書込アドレスを保持する書込アドレス保持レジスタと、 書込データを保持する書込データ保持レジスタと、 を有し、前記メモリマップドレジスタ書込命令に続く読
    出命令の実行に先立って前記出力バッファ部から転送さ
    れた書込アドレス及び書込データを、前記書込アドレス
    保持レジスタと書込データ保持レジスタに格納すると共
    に、前記使用状態表示レジスタをデータ保持状態にセッ
    トし、前記読出命令の実行に伴って前記書込データ保持
    レジスタの書込データを前記メモリマップドレジスタに
    書込んで該書込み終了と前記読出命令による読出データ
    の応答を同期させる同期バッファ回路部と、を備えたこ
    とを特徴とするプロセッサ装置。
  2. 【請求項2】請求項1記載のプロセッサ装置に於いて、
    前記同期バッファ回路部は、前記メモリマップドレジス
    タへの書込動作が正常に終了した場合、前記書込動作の
    終了後に前記書込データ保持レジスタのデータをダミー
    の読出データとして前記CPUに応答することを特徴と
    するプロセッサ装置。
  3. 【請求項3】請求項1記載のプロセッサ装置に於いて、
    前記同期バッファ回路部は、前記メモリマップドレジス
    タへの書込動作で異常が発生した場合、前記書込データ
    保持レジスタのデータをダミーの読出データとして前記
    CPUに応答し、該読出データの応答に同期して前記C
    PUに書込動作の異常終了を報告することを特徴とする
    プロセッサ装置。
  4. 【請求項4】請求項1記載のプロセッサ装置に於いて、
    前記同期バッファ回路部は、前記メモリマップドレジス
    タに対する書込動作を行った後に、前記使用状態表示レ
    ジスタを非保持状態にクリアすることを特徴とするプロ
    セッサ装置。
  5. 【請求項5】請求項1記載のプロセッサ装置に於いて、
    前記CPUは外部割込の発生で前記プログラム処理部の
    処理を中断して割込プログラムの命令を実行する割込プ
    ログラム処理部を備え、前記割込プログラム処理部は、
    前記メモリマップドレジスタに対する外部割込みの発生
    時、前記同期バッファ回路部の使用状態表示レジスタを
    参照してデータ保持状態を判別した場合、前記制御プロ
    グラムへの復帰命令アドレスを、データ保持状態にある
    書込アドレス及び書込データの書込命令のアドレスに戻
    し、割込処理の終了で前記書込命令アドレスから前記制
    御プログラムを実行させることを特徴とするプロセッサ
    装置。
  6. 【請求項6】請求項5記載のプロセッサ装置に於いて、
    前記割込プログラム処理部は、前記制御プログラムによ
    るメモリマップドレジスタ書込命令の実行から、次の読
    出命令に先立って前記出力バッファ部の書込データ及び
    書込アドレスを前記同期バッファ回路部に転送した後の
    前記読出命令の実行までの間に外部割込みが発生した場
    合、前記同期バッファ回路部の使用状態表示レジスタを
    参照してデータ保持状態にあるときは、前記制御プログ
    ラムへの復帰命令アドレスを1命令戻し、割込処理の終
    了で前記同期バッファ部に保持していた書込アドレスと
    書込データの書込命令のアドレスから前記制御プログラ
    ムを実行させることを特徴とするプロセッサ装置。
  7. 【請求項7】請求項1記載のプロセッサ装置に於いて、
    前記CPUの制御プログラム処理部は、前記メモリマッ
    プドレジスタに対する複数の書込命令を実行した後に、
    前記メモリマップドレジスタの読出命令を実行すること
    を特徴とするプロセッサ装置。
  8. 【請求項8】請求項7記載のプロセッサ装置に於いて、
    前記CPUの制御プログラム処理部は、前記メモリマッ
    プドレジスタに対する複数の書込命令に続く読出命令の
    実行終了に伴って前記同期バッファ回路部から書込動作
    の異常報告を受信した場合、異なる書込命令列の実行で
    前記メモリマップドレジスタに対し後続する書込動作を
    行うことを特徴とするプロセッサ装置。
  9. 【請求項9】請求項8記載のプロセッサ装置に於いて、
    前記メモリマップドレジスタは入出力制御装置の制御レ
    ジスタであることを特徴とするプロセッサ装置。
  10. 【請求項10】請求項1記載のプロセッサ装置に於い
    て、前記出力バッファ部は、前記CPUに内蔵した内部
    出力バッファと前記CPUの外部に設けた外部出力バッ
    ファで構成され、 前記制御プログラム処理部は、前記内部出力バッファに
    対する書込動作で前記メモリマップドレジスタに対する
    書込命令を終了し、前記内部出力バッファに格納された
    書込アドレス及び読出アドレスは、前記書込命令に続く
    読出命令の実行に先立って前記外部バッファを経由して
    前記同期バッファ回路部に転送されることを特徴とする
    プロセッサ装置。
  11. 【請求項11】請求項10記載のプロセッサ装置に於い
    て、前記内部出力バッファは、前記CPUの内部に設け
    た1次キャッシュ部のキャッシュメモリであり、前記外
    部出力バッファは、前記CPUの外部に設けた2次キャ
    ッシュ部のキャッシュメモリであることを特徴とするプ
    ロセッサ装置。
  12. 【請求項12】外部メモリ上にマッピングされたメモリ
    マップドレジスタに対する書込命令をCPUが実行した
    場合、前記メモリマップドレジスタに対する書込アドレ
    ス及び書込データを前記CPUから出力バッファに書込
    んで前記書込命令を終了させる書込み過程と、 前記CPUの書込命令に続く読出命令の実行に先立っ
    て、前記出力バッファ部の書込アドレス及び書込データ
    を同期バッファ回路部に転送してその書込アドレス保持
    レジスタと書込データ保持レジスタの各々に格納すると
    共に、使用状態表示レジスタをデータ保持状態にセット
    するバッファ転送過程と、 前記CPUの読出命令の実行に伴って前記書込データ保
    持レジスタの書込データを前記メモリマップドレジスタ
    に書込み、該書込終了を前記読出命令による読出データ
    の応答に同期させる同期過程と、を備えたことを特徴と
    するプロセッサ制御方法。
  13. 【請求項13】請求項12記載のプロセッサ制御方法に
    於いて、前記同期過程は、前記メモリマップドレジスタ
    への書込動作が正常に終了した場合、前記CPUの読出
    命令の終了に同期して前記書込データ保持レジスタのデ
    ータをダミーの読出データとして前記CPUに応答する
    ことを特徴とするプロセッサ制御方法。
  14. 【請求項14】請求項12記載のプロセッサ制御方法に
    於いて、前記同期過程は、前記メモリマップドレジスタ
    への書込動作で異常が発生した場合、前記書込データ保
    持レジスタのデータをダミーの読出データとして前記C
    PUに応答し、該読出データの応答に同期して前記CP
    Uに書込動作の異常終了を報告することを特徴とするプ
    ロセッサ制御方法。
  15. 【請求項15】請求項12記載のプロセッサ制御方法に
    於いて、前記同期過程は、前記メモリマップドレジスタ
    に対するデータ書込みを行った後に、前記使用状態表示
    レジスタを非保持状態にクリアすることを特徴とするプ
    ロセッサ装置。
  16. 【請求項16】請求項12記載のプロセッサ制御方法に
    於いて、外部割込みの発生時、前記同期バッファ回路部
    の使用状態表示レジスタを参照してデータ保持状態を判
    別した場合、前記制御プログラムへの復帰命令アドレス
    を、前記データ保持状態にある書込アドレス及び書込デ
    ータの書込命令のアドレスに戻し、割込処理の終了で前
    記書込命令アドレスから前記制御プログラムを実行させ
    る割込処理過程を備えたことを特徴とするプロセッサ制
    御方法。
  17. 【請求項17】請求項16記載のプロセッサ装置に於い
    て、前記割込処理過程は、前記制御プログラムによる書
    込命令の実行から、次の読出命令に先立って前記出力バ
    ッファユニットの書込データ及び書込アドレスを前記同
    期バッファに転送した後の前記読出命令の実行までの間
    に外部割込みが発生した場合、前記同期バッファ回路部
    の使用状態表示レジスタを参照してデータ保持状態にあ
    るときは、前記制御プログラムへの復帰命令アドレスを
    1命令だけ戻し、割込処理の終了で前記同期バッファ部
    に保持されていた書込アドレスと書込データの書込命令
    アドレスから前記制御プログラムを実行させることを特
    徴とするプロセッサ制御方法。
JP27728794A 1994-11-11 1994-11-11 プロセッサ装置及びその制御方法 Expired - Fee Related JP3723243B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27728794A JP3723243B2 (ja) 1994-11-11 1994-11-11 プロセッサ装置及びその制御方法
US08/502,351 US5796996A (en) 1994-11-11 1995-07-14 Processor apparatus and its control method for controlling a processor having a CPU for executing an instruction according to a control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27728794A JP3723243B2 (ja) 1994-11-11 1994-11-11 プロセッサ装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPH08137751A true JPH08137751A (ja) 1996-05-31
JP3723243B2 JP3723243B2 (ja) 2005-12-07

Family

ID=17581438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27728794A Expired - Fee Related JP3723243B2 (ja) 1994-11-11 1994-11-11 プロセッサ装置及びその制御方法

Country Status (2)

Country Link
US (1) US5796996A (ja)
JP (1) JP3723243B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19929419C2 (de) * 1999-06-26 2003-08-07 Sci Worx Gmbh Synchroner Kommunikationsbus und Verfahren zur synchronen Kommunikation zwischen Schaltungsmodulen
JP2001229115A (ja) * 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd Atapiコマンド処理方式
US6996812B2 (en) * 2001-06-18 2006-02-07 International Business Machines Corporation Software implementation of synchronous memory barriers
US7149890B2 (en) * 2003-11-21 2006-12-12 Intel Corporation Initializing system memory
US7047364B2 (en) * 2003-12-29 2006-05-16 Intel Corporation Cache memory management
TW200717246A (en) * 2005-06-24 2007-05-01 Koninkl Philips Electronics Nv Self-synchronizing data streaming between address-based producer and consumer circuits
CN103092569A (zh) * 2012-12-31 2013-05-08 中国电子科技集团公司第十五研究所 一种实现8051扩展指令的电路
US10846223B2 (en) * 2017-10-19 2020-11-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Cache coherency between a device and a processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170470A (en) * 1988-05-02 1992-12-08 National Semiconductor Corp. Integrated modem which employs a host processor as its controller
US5003558A (en) * 1989-10-30 1991-03-26 International Business Machines Corporation Data synchronizing buffers for data processing channels
EP0464433A3 (en) * 1990-06-29 1994-05-18 Nat Semiconductor Corp Microcontroller device having remotely programmable eprom & method of programming
US5594704A (en) * 1992-04-27 1997-01-14 Mitsubishi Denki Kabushiki Kaisha Synchronous semiconductor memory device
US5519841A (en) * 1992-11-12 1996-05-21 Digital Equipment Corporation Multi instruction register mapper
US5499384A (en) * 1992-12-31 1996-03-12 Seiko Epson Corporation Input output control unit having dedicated paths for controlling the input and output of data between host processor and external device

Also Published As

Publication number Publication date
US5796996A (en) 1998-08-18
JP3723243B2 (ja) 2005-12-07

Similar Documents

Publication Publication Date Title
JP2858140B2 (ja) パイプラインプロセッサ装置および方法
US6466988B1 (en) Multiprocessor synchronization and coherency control system
US7178062B1 (en) Methods and apparatus for executing code while avoiding interference
US6070232A (en) Cache controller fault tolerant computer and data transfer system setting recovery points
US4942519A (en) Coprocessor having a slave processor capable of checking address mapping
JP2006164277A (ja) プロセッサにおけるエラー除去装置および方法,プロセッサ
US5572662A (en) Data processing apparatus
JPH02190930A (ja) ソフトウエア命令実行装置
CA2016532C (en) Serializing system between vector instruction and scalar instruction in data processing system
RU2137182C1 (ru) Выполнение инструкции обработки данных
JPH0227441A (ja) コンピュータ・システム
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
US4500959A (en) Apparatus for invalidating the content of an instruction buffer by program store compare check
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
JP3723243B2 (ja) プロセッサ装置及びその制御方法
EP0550283A2 (en) Invoking hardware recovery actions via action latches
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
US5829030A (en) System for performing cache flush transactions from interconnected processor modules to paired memory modules
US6857052B2 (en) Multi-processor system including a mode switching controller
US5813039A (en) Guest execution control system, method and computer process for a virtual machine system
JPH03175548A (ja) マイクロプロセッサ及びアドレス制御方式
JPH05165663A (ja) データ処理装置
EP0655686B1 (en) Retry control method and device for control processor
JP3804823B2 (ja) 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050630

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: 20050823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050915

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080922

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees