(57)【特許請求の範囲】
【請求項１】
リード・モディファイ・ライトサイクルを行う複数のＣＰＵによってアクセスされるレジスタのデータ値を制御するためのレジスタ制御装置において、
何れかのＣＰＵが、リード操作時に前記アクセスされるレジスタの任意のビットのデータ値を“０”にセットする場合にアクセスされ、全ビットのデータ値“１”が読み出される“０”セット用レジスタと、
何れかのＣＰＵが、リード操作時に前記アクセスされるレジスタの任意のビットのデータ値を“１”にセットする場合にアクセスされ、全ビットのデータ値“０”が読み出される“１”セット用レジスタと、
ＣＰＵが出力するアドレスをデコードしてデコード信号を出力するアドレスデコーダと、
前記アクセスされるレジスタの入力側に配置され、前記アドレスデコーダが出力するデコード信号及びＣＰＵのリード・モディファイ・ライトサイクルのライト操作時の出力データに基づいて、ライト操作時に前記アクセスされるレジスタに対する各ビット毎の出力データを以下の条件に従って選択し出力するマルチプレクサとを備え、
｛（デコード信号が前記アクセスされるレジスタ）｝
又は｛（デコード信号が“０”セット用レジスタ）
且つ（ＣＰＵの出力データが“０”）｝
又は｛（デコード信号が“１”セット用レジスタ）
且つ（ＣＰＵの出力データが“１”）｝
ならば、（出力データはＣＰＵの出力データ），
上記以外の条件    ならば、（出力データは前記アクセスされるレジスタの保持データ）
前記アクセスされるレジスタには、前記ＣＰＵが前記アクセスされるレジスタ、“０”セット用レジスタまたは“１”セット用レジスタの何れかのアドレスを出力してリード・モディファイ・ライトサイクルを行う場合のライト操作時に、データが書き込まれるように構成されていると共に、
前記マルチプレクサが、前記アクセスされるレジスタに対し、リード・モディファイ・ライトサイクル以外の場合にライト操作を行う際にＣＰＵの出力データを選択して出力する条件に、
又は（デコード信号が前記アクセスされるレジスタ）
を加え、
前記アクセスされるレジスタは、前記ＣＰＵが前記アクセスされるレジスタのアドレスを出力して書き込みを行う場合も、データが書き込まれるように構成されていることを特徴とするレジスタ制御装置。
【請求項２】
請求項１記載のレジスタ制御装置を備えて構成されることを特徴とするマルチＣＰＵシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のＣＰＵによってアクセスされるレジスタのデータ値を制御するためのレジスタ制御装置、及びそのレジスタ制御装置を備えてなるマルチＣＰＵシステムに関する。
【０００２】
【従来の技術】
複数のＣＰＵを備えて高度な機能を実現するように構成されるマルチＣＰＵシステムにおいては、各ＣＰＵがリードサイクルやライトサイクルを実行しようとする場合、常に１つのＣＰＵだけが排他的にバスを使用するように、アービタによってバスの使用権が調停されるようになっている。
【０００３】
また、このようなシステムでは、コントロールレジスタ等の周辺回路を共用したり、セマフォの値をチェックした後セットを行う場合などに、ＣＰＵは、あるレジスタから読み出した（リード）データにビット操作を行い（モディファイ）、そのビット操作を行った結果のデータ値を同じレジスタに書き戻す（ライト）というリード・モディファイ・ライトサイクルを実行することがある。
【０００４】
そして、ＣＰＵの種類によっては、リード・モディファイ・ライトサイクルを不可分な１つのサイクルとして、バスを占有し続けて実行するように各信号が出力されるものがある。しかし、そのような機能を有していないＣＰＵを用いてマルチＣＰＵシステムを構成することを想定すると、以下のような問題が生じることが考えられる。
【０００５】
【発明が解決しようとする課題】
図３は、上記マルチＣＰＵシステムの一構成例である。ＣＰＵ１，２は、アドレスバス３及びデータバス４に接続されており、何れもレジスタ５に対してアクセスが可能となっている。データバス４のサイズは例えば８ビットであるとする。レジスタ５は、例えば、８チャネルのタイマによるタイマ割り込みについて、各々の割り込みの可否を設定するためのコントロールレジスタ(TIER:Timer Interruput Enable Register) であり、ビット０〜３はＣＰＵ１が設定を行い、ビット４〜７はＣＰＵ２が設定を行うようになっている。
【０００６】
アドレスバス３に接続されているアドレスデコーダ６は、ＣＰＵ１または２が出力するアドレスをデコードして、例えばTIERレジスタ５に対してアクセスが行われる場合のデコード信号TIERを、TIERレジスタ５に出力するようになっている。また、ＣＰＵ１または２がバスサイクルを実施する場合には、上述のように、図示しないアービタによってバス３及び４の使用権が調停されるようになっている。
【０００７】
TIERレジスタ５は、図４に示すＣＫＡ，ＣＫＢの二相クロック信号によってラッチ動作を行うダブルラッチ構成であり、マスタラッチ５Ｍ及びスレーブラッチ５Ｓを備えて構成されている。データバス４はマスタラッチ５Ｍの入力側に接続されており、マスタラッチ５Ｍの出力側はスレーブラッチ５Ｓの入力側に接続されている。そして、スレーブラッチ５Ｓの出力側は、出力バッファ７を介してデータバス４に接続されている。
【０００８】
ＡＮＤゲート８は、デコード信号TIER，ＣＰＵ１または２が出力するライト信号及びクロック信号ＣＫＢの論理積信号をマスタラッチ５Ｍにラッチ信号として出力するようになっている。スレーブラッチ５Ｓのラッチ信号には、クロック信号ＣＫＡが直接与えられている。そして、一方、ＡＮＤゲート９は、デコード信号TIER及びＣＰＵ１または２が出力するリード信号の論理積信号を出力バッファ７にイネーブル信号（レベル）として出力するようになっている。
【０００９】
以上のマルチＣＰＵシステムにおいて、図５に示すタイミングチャートに従ってTIERレジスタ５にアクセスが行われた場合を説明する。尚、ＣＰＵ１及び２は、クロック信号ＣＫＡに同期して動作するようになっている。TIERレジスタ５の初期値が“００ｈ（ＨＥＸ）”であるとする。先ず、ＣＰＵ１が時刻Ｔ１においてリード・モディファイ・ライトサイクル（以下、ＲＭＷサイクルと称す）を開始し、TIERレジスタ５（スレーブラッチ５Ｓ）のデータ値を読み出してビット操作（第０ビットを“１”にセット）を行い、その操作結果のデータ値“０１ｈ”を時刻Ｔ３においてTIERレジスタ５書き込むとする。すると、マスタラッチ５Ｍには時刻Ｔ３後のクロック信号ＣＫＢのタイミングでデータが書き込まれる。
【００１０】
この時、もう１つのＣＰＵ２が時刻Ｔ２においてＲＭＷサイクルを開始すると、ＣＰＵ２は、時刻Ｔ２において、その時点ではＣＰＵ０によるビット操作結果が未だ反映されていないTIERレジスタ５のデータ値“００ｈ”を読み出してビット操作（第４ビットを“１”にセット）を行い、その操作結果のデータ値“１０ｈ”を時刻Ｔ４においてTIERレジスタ５に書き込む。
【００１１】
つまり、ＣＰＵ２が時刻Ｔ４においてＲＭＷサイクルを開始すれば、ＣＰＵ１は、ＣＰＵ１によるビット操作結果が反映されたTIERレジスタ５のデータ値“０１ｈ”を読み出してビット操作を行うことになり、その結果、TIERレジスタ５に書き込まれるデータ値は“１１ｈ”となるはずである。しかしながら、上記のようにＣＰＵ１によるＲＭＷサイクルの実行途中においてＣＰＵ２がサイクルを実行すると、TIERレジスタ５のデータは期待値通りにならず、以降の制御に支障を来す結果となってしまう。
【００１２】
本発明は上記事情に鑑みてなされたものであり、その目的は、複数のＣＰＵが同一のレジスタに対してどのようなタイミングでリード・モディファイ・ライトサイクルを行った場合でも、そのレジスタのデータ値が期待値通りになるように制御できるレジスタ制御装置、及びそのレジスタ制御装置を備えてなるマルチＣＰＵシステムを提供することにある。
【００１３】
【課題を解決するための手段】
請求項１記載のレジスタ制御装置によれば、例えば、何れかのＣＰＵがビット操作命令を実行し、レジスタの任意のビットのデータ値を“０”にセットする場合は、先ず、リード・モディファイ・ライトサイクル（ＲＭＷサイクル）前半のリードサイクルにおいて、“０”セット用レジスタをアクセスして全ビット“１”のデータ値（以下、オール“１”データと称す）を読み出す。そして、読み出したオール“１”データの内、変更対象ビットのデータ値を“０”にしてから、“０”セット用レジスタのアドレスでライトサイクルを行う。すると、マルチプレクサは、レジスタに対して、ＣＰＵによりデータ値が“０”に変更されたビットについてはそのデータ値“０”を出力し、それ以外のビットについては当該レジスタの保持データを出力するように選択する。
【００１４】
また、何れかのＣＰＵがレジスタの任意のビットのデータ値を“１”にセットする場合は、ＲＭＷサイクル前半のリードサイクルにおいて、“１”セット用レジスタをアクセスして全ビット“０”のデータ値（以下、オール“０”データと称す）を読み出す。そして、読み出したオール“０”データの内、変更対象ビットのデータ値を“１”にしてから、“１”セット用レジスタのアドレスでライトサイクルを行う。すると、マルチプレクサは、レジスタに対して、ＣＰＵによりデータ値が“１”に変更されたビットについてはそのデータ値“１”を出力し、それ以外のビットについては当該レジスタの保持データを出力するように選択する。
【００１５】
即ち、他のＣＰＵ（Ａ）が行ったＲＭＷサイクルが完了する前に前記ＣＰＵ（Ｂ）がＲＭＷサイクルを開始したとしても、ＣＰＵ（Ｂ）による後半のライトサイクルが行われる時点ではＣＰＵ（Ａ）によるＲＭＷサイクルは完了しており、その変更後のデータがレジスタに保持されている。故に、ＣＰＵ（Ｂ）によるライトサイクルでレジスタに書き込まれるデータは、ＣＰＵ（Ｂ）が変更しなかったビットについてはＣＰＵ（Ａ）によって変更されたデータとなる。従って、予めマルチＣＰＵシステムに適用することを想定した設計が行われていない複数のＣＰＵがレジスタをアクセスする場合でも、そのレジスタのデータ値が常に期待値通りとなるように制御することができる。
【００１６】
そして、マルチプレクサが、レジスタに対して出力するデータにＣＰＵの出力データを選択する条件に、
又は（デコード信号がレジスタ）
を加える。従って、ＣＰＵは、レジスタに対してビット操作により設定を行うだけでなく、レジスタに割り当てられているアドレスを出力して通常の書き込み（即ち、全ビットの同時書き込み）を行うこともできる。
【００１７】
請求項２記載のマルチＣＰＵシステムによれば、請求項１記載のレジスタ制御装置を備えることで、予めマルチＣＰＵシステムに適用することを想定した設計が行われていないＣＰＵを用いて、レジスタ等の周辺回路を共用するシステムを構成することが可能となる。
【００１８】
【発明の実施の形態】
以下、本発明の一実施例について図１及び図２を参照して説明する。尚、図３と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。本実施例では、２つのＣＰＵ１，２がＣＰＵ１１，１２に置き換わっている。また、アドレスバス３にはアドレスデコーダ６に代わるアドレスデコーダ１３が接続されており、データバス４には、TIERレジスタ５に代わるTIERレジスタ１４と、２つの読み出し専用レジスタであるTIER0Wレジスタ（“０”セット用レジスタ）１５及びTIER1Wレジスタ（“１”セット用レジスタ）１６が接続されている。
【００１９】
これらのレジスタ１５，１６は、夫々TIERレジスタ１４とは異なるアドレスが割り付けられている。そして、TIER0Wレジスタ１５は、ＣＰＵ１１または１２がTIERレジスタ１４に対してビット操作命令を実行することでＲＭＷサイクルを行い、８ビットの内何れかのビットに“０”をセットする場合にアクセスするように設定されており、その場合に、データバス４上にデータ値オール“１”を出力するように構成されている。
【００２０】
また、TIER1Wレジスタ１６は、ＣＰＵ１１または１２がTIERレジスタ１４に対して同様にＲＭＷサイクルを行い、８ビットの内何れかのビットに“１”をセットする場合にアクセスするように設定されており、その場合に、データバス４上にデータ値オール“０”を出力するように構成されている。
【００２１】
即ち、TIER0Wレジスタ１５は、オール“１”のデータを出力するデータ出力部１５ａ，そのデータをデータバス４上に出力するための出力バッファ１５ｂ，出力バッファ１５ｂに対してイネーブル信号を出力するためのＡＮＤゲート１５ｃを備えて構成されている。ＡＮＤゲート１５ｃは、アドレスデコーダ１３が出力するデコード信号TIER0Wと、ＣＰＵ１１または１２がリードサイクルの実行時にアクティブ（ハイ）にするリード信号との論理積をとって、出力バッファ１５ｂのイネーブル信号を出力するようになっている。
【００２２】
また、TIER1Wレジスタ１６も、TIER0Wレジスタ１５と同様に、オール“０”のデータを出力するデータ出力部１６ａ，そのデータをデータバス４上に出力するための出力バッファ１６ｂ，出力バッファ１６ｂに対してイネーブル信号を出力するためのＡＮＤゲート１６ｃを備えて構成されている。ＡＮＤゲート１６ｃは、アドレスデコーダ１３が出力するデコード信号TIER1Wと、ＣＰＵ１１または１２のリード信号との論理積をとって、出力バッファ１６ｂのイネーブル信号を出力するようになっている。
【００２３】
図１において、TIERレジスタ１４は、１ビット分（第ｉビット，ｉ＝０〜７）に対応する構成のビットセル１４Ｂ（ｉ）を１つだけ図示しており、実際には８個のビットセル１４Ｂ（０）〜１４Ｂ（７）によって構成されている。各ビットセル１４Ｂは、データバス４側から、マルチプレクサ１７のデータ選択部１７ａ，マスタラッチ１８，スレーブラッチ１９及び出力バッファ２０を直列に接続したものを中心として構成されている。出力バッファ２０の出力端子はデータバス４のラインＤ（ｉ）に接続されており、また、スレーブラッチ１９の出力端子はデータ選択部１７ａの他の入力端子に接続されている。データ選択部１７ａは、選択信号生成回路１７ｂより出力される選択信号に基づいて、２つの入力端子の内から１つを選択してマスタラッチ１８に出力するように構成されている。
【００２４】
選択信号生成回路１７ｂには、アドレスデコーダ１３が出力する３つのデコード信号TIER，TIER0W，TIER1Wとデータバス４の第ｉビットデータＤ（ｉ）が与えられており、これらの入力信号に基づき、データ選択部１７ａが以下のように入力データを選択してマスタラッチ１８に出力するように内部論理が構成されている。
0004008196.tif 000002
上記以外の条件  ならば、（出力データ：スレーブラッチ１９の保持データ）
選択信号生成回路１７ｂは、データ選択部１７ａに例えば上記２つの条件に対応する選択信号（例えば、前者が成立している場合はハイレベル，後者が成立している場合はロウレベル）を出力し、データ選択部１７ａはその選択信号に応じて２つの入力端子の内の一方を選択するようになっている。
【００２５】
マスタラッチ１８のラッチ信号は、３入力のＡＮＤゲート２１によって与えられるようになっている。ＡＮＤゲート２１の入力端子には、ＣＰＵ１１または１２がライトサイクルの実行時にアクティブ（ハイ）にするライト信号と、二相クロック信号のＢ相信号ＣＫＢと、ＯＲゲート２２の出力信号とが与えられている。３入力のＯＲゲート２２には、アドレスデコーダ１３が出力する３つのデコード信号TIER，TIER0W，TIER1Wが夫々与えられている。
【００２６】
また、スレーブラッチ１９のラッチ信号には、二相クロック信号のＡ相信号ＣＫＡが直接与えられており、出力バッファ２０には、ＡＮＤゲート２３の出力信号がイネーブル信号として与えられている。ＡＮＤゲート２３の入力端子には、アドレスデコーダ１３が出力するデコード信号TIERと、ＣＰＵ１１または１２のリード信号とが与えられている。
【００２７】
尚、TIERレジスタ１４は、レジスタ部（レジスタ）１４ａとレジスタ制御部１４ｂとに分類される。レジスタ部１４ａは、マスタラッチ１８，スレーブラッチ１９，出力バッファ２０，及びＡＮＤゲート２１及び２３からなる部分であり、レジスタ制御部１４ｂは、マルチプレクサ１７，ＡＮＤゲート２１及びＯＲゲート２２からなる部分である。
【００２８】
そして、レジスタ制御部１４ｂに、アドレスデコーダ１３，TIER0Wレジスタ１５及びTIER1Wレジスタ１６を加えたものが、レジスタ制御装置２４を構成している。更に、レジスタ部１４ａとレジスタ制御装置２４にＣＰＵ１１及び１２を加えたものが、マルチＣＰＵシステム２５を構成している。
【００２９】
次に、本実施例の作用について図２をも参照して説明する。
▲１▼＜ビット操作命令によってTIERレジスタ１４に“１”をセットする場合＞
例えば、ＣＰＵ１１が、TIERレジスタ１４の第０ビットを“１”にセットするためのビット操作を実行するためＲＭＷサイクルを行う場合には、TIERレジスタ１４に対してではなく、TIER1Wレジスタ１６に対してＲＭＷサイクルを行うようにする。すると、時刻Ｔ１においてTIER1Wレジスタ１６よりデータ００ｈが読み出される。ＣＰＵ１１は、読み出したデータの第０ビットのみを“１”にセットするように内部レジスタの操作を行うと、時刻Ｔ３において同じTIER1Wレジスタ１６のアドレスを出力してデータ０１ｈのライトサイクルを行う。
【００３０】
この場合、読出し専用レジスタであるTIER1Wレジスタ１６への書き込みは行われず、それに代えて、デコード信号TIER1Wが出力されてＯＲゲート２２の出力端子がハイレベルになることから、クロック信号ＣＫＢの立上がりタイミングでＡＮＤゲート２１の出力端子もハイレベルとなって、TIERレジスタ１４のマスタラッチ１８にデータが書き込まれる。
【００３１】
また、各ビットセル１４Ｂ（０）〜１４Ｂ（７）においては、デコード信号TIER1Wが出力されているので、データバス４上にデータ値“１”が出力されているビットセル１４Ｂ（０）のデータ選択部１７ａは、選択信号生成回路１７ｂが出力する選択信号（ハイレベル）に応じてマスタラッチ１８にデータバス４（Ｄ（０））のデータ値“１”を選択して出力する。
【００３２】
それ以外のビットセル１４Ｂ（１）〜１４Ｂ（７）においては、選択信号生成回路１７ｂが選択信号をロウレベルにするので、データ選択部１７ａはマスタラッチ１８にスレーブラッチ１９の保持データを選択して出力する。この時点におけるスレーブラッチ１９の保持データは、時刻Ｔ３におけるライトサイクルによって書き換えられる前のデータ００ｈである。
【００３３】
即ち、ＣＰＵ１１のビット操作命令によって“１”がセットされるビット以外のビットデータは、ＣＰＵ１１がデータバス４上に出力しているデータにかかわらずスレーブラッチ１９の保持データが選択されて書き込まれることになる。結果として、マスタラッチ１８には、データ００ｈの第０ビットだけが“１”にセットされたデータ０１ｈが書き込まれる。そして、スレーブラッチ１９のデータは、時刻Ｔ３後のクロック信号ＣＫＡの立上がりタイミングで、マスタラッチ１８に書きまれているデータと同じデータ０１ｈに更新される。
【００３４】
従って、図５に示した従来例と同様に、もう１つのＣＰＵ１２が時刻Ｔ２においてＲＭＷサイクルを開始したとすると、ＣＰＵ１２は、時刻Ｔ２においてTIER1Wレジスタ１６のデータ値“００ｈ”を読み出してビット操作（第４ビットを“１”にセット）を行い、その操作結果のデータ値“１０ｈ”を時刻Ｔ４においてTIER1Wレジスタ１６のアドレスに書き込む。
【００３５】
すると、上記と同様のプロセスによって、データバス４上にデータ値“１”が出力されているビットセル１４Ｂ（４）のデータ選択部１７ａは、マスタラッチ１８にデータ値“１”を選択して出力し、それ以外のビットセル１４Ｂ（０）〜１４Ｂ（３），１４Ｂ（５）〜１４Ｂ（７）のデータ選択部１７ａは、マスタラッチ１８にスレーブラッチ１９の保持データを選択して出力する。
【００３６】
即ち、ＣＰＵ１２が時刻Ｔ４においてＲＭＷサイクル後半のライトサイクルを行う時点では、ＣＰＵ１１によるＲＭＷサイクルが完了している。従って、スレーブラッチ１９の保持データは０１ｈに更新されているので、TIERレジスタ１４のマスタラッチ１８（８ビット分）には、０１ｈデータの第４ビットを“１”に変更したデータ１１ｈが書き込まれることになる。
【００３７】
▲２▼＜ビット操作命令によってTIERレジスタ１４に“０”をセットする場合＞
また、例えば、TIERレジスタ１４の初期値が７７ｈである場合に、ＣＰＵ１１が、TIERレジスタ１４の第０ビットを“０”にセットするためのビット操作を実行するためＲＭＷサイクルを行う場合には、TIER0Wレジスタ１５に対してＲＭＷサイクルを行うようにする。すると、時刻Ｔ１においてTIER0Wレジスタ１５よりデータＦＦｈが読み出される。ＣＰＵ１１は、時刻Ｔ２でその第０ビットのみを“０”にセットすると、時刻Ｔ３において同じTIER1Wレジスタ１６のアドレスを出力してデータＦＥｈのライトサイクルを行う。
【００３８】
この場合、デコード信号TIER0Wが出力されてＯＲゲート２２の出力端子がハイレベルになることから、クロック信号ＣＫＢの立上がりタイミングでＡＮＤゲート２１の出力端子もハイレベルとなって、TIERレジスタ１４のマスタラッチ１８にデータが書き込まれる。
【００３９】
また、各ビットセル１４Ｂ（０）〜１４Ｂ（７）においては、デコード信号TIER0Wが出力されているので、データバス４上にデータ値“０”が出力されているビットセル１４Ｂ（０）のデータ選択部１７ａは、マスタラッチ１８にデータバス４（Ｄ（０））のデータ値“０”を選択して出力し、それ以外のビットセル１４Ｂ（１）〜１４Ｂ（７）のデータ選択部１７ａは、マスタラッチ１８にスレーブラッチ１９の保持データを選択して出力する。
【００４０】
従って、この場合も、ＣＰＵ１１のビット操作命令によって“０”がセットされるビット以外のビットデータは、ＣＰＵ１１がデータバス４上に出力しているデータにかかわらずスレーブラッチ１９の保持データが選択されて書き込まれることになる。スレーブラッチ１９の保持データは７７ｈであるから、その第０ビットが“０”にセットされることによってTIERレジスタ１４のマスタラッチ１８に書き込まれるデータは７６ｈとなる。
尚、上記のプロセスを、ＣＰＵ１１と１２とのアクセス順序を入れ替えて行ったとしても、全く同様の結果になることは言うまでもない。
【００４１】
▲３▼＜リードサイクルによってTIERレジスタ１４からデータを読み出す場合＞
例えば、ＣＰＵ１１が、TIERレジスタ１４のデータを単に読出す場合には、通常通りTIERレジスタ１４に対してリードサイクルを行うようにする。すると、アドレスデコーダ１３がデコード信号TIERを出力するのでＡＮＤゲート２３の出力端子がハイレベルとなる。そして、出力バッファ２０がイネーブルとなるので、スレーブラッチ１９に保持されているデータがデータバス４上に出力される。
【００４２】
▲４▼＜ライトサイクルによってTIERレジスタ１４に任意のデータを書込む場合＞
例えば、ＣＰＵ１１が、TIERレジスタ１４にデータ００ｈを書き込む場合には、通常通りTIERレジスタ１４に対してライトサイクルを行うようにする。この場合も、アドレスデコーダ１３がデコード信号TIERを出力するので、全てのビットセル１４Ｂの選択信号生成回路１７ｂがハイレベルの選択信号を出力する。従って、データ選択部１７ａは、ＣＰＵ１１が出力したデータバス４上のデータを選択してマスタラッチ１８に出力する。
【００４３】
そして、ＯＲゲート２２の出力端子がハイレベルになり、クロック信号ＣＫＢの立上がりタイミングでＡＮＤゲート２１の出力端子もハイレベルとなるので、TIERレジスタ１４のマスタラッチ１８にデータ００ｈが書き込まれる。
【００４４】
以上のように本実施例によれば、ＣＰＵ１１がビット操作命令を実行し、TIERレジスタ１４の任意のビットのデータ値を“１”にセットする場合は、ＲＭＷサイクル前半のリードサイクルにおいてTIER1Wレジスタ１６をアクセスしてデータを読み出し、変更対象ビットのデータ値を“１”にしてからTIER1Wレジスタ１６のアドレスでライトサイクルを行うと、マルチプレクサ１７は、TIERレジスタ１４のマスタラッチ１８に対して、データ値が“１”に変更されたビットについてはそのデータ値“１”を出力し、それ以外のビットについてはスレーブラッチ１９の保持データを出力するように選択する。
【００４５】
また、ＣＰＵ１１がTIERレジスタ１４の任意のビットのデータ値を“０”にセットする場合は、ＲＭＷサイクル前半のリードサイクルにおいて、TIER0Wレジスタ１５をアクセスしてデータを読み出し、変更対象ビットのデータ値を“０”にしてからTIER0Wレジスタ１５のアドレスでライトサイクルを行うと、マルチプレクサ１７は、マスタラッチ１８に対してデータ値が“０”に変更されたビットについてはそのデータ値“０”を出力し、それ以外のビットについてはスレーブラッチ１９の保持データを出力するように選択するようにした。
【００４６】
即ち、ＣＰＵ１１が行ったＲＭＷサイクルが完了する前に他のＣＰＵ１２がＲＭＷサイクルを開始したとしても、ＣＰＵ１２による後半のライトサイクルが行われる時点ではＣＰＵ１１によるＲＭＷサイクルは完了しているので、その変更後のデータがスレーブラッチ１９に保持されている。従って、ＣＰＵ１２によるライトサイクルでマスタラッチ１９に書き込まれるデータは、ＣＰＵ１２が変更しなかったビットについてはＣＰＵ１１によって変更されたデータとなるので、複数のＣＰＵによってアクセスされるTIERレジスタ１４のデータ値が、常に期待値通りとなるように制御することができる。
【００４７】
また、本実施例によれば、選択信号生成回路１７ｂにおいて、データ選択部１７ａが出力データにデータＤ（ｉ）を選択する条件に、“又は（デコード信号がレジスタ）”をも加えたので、ＣＰＵ１１または１２は、TIERレジスタ１４に対してビット操作により設定を行うだけでなく、TIERレジスタ１４に割り当てられているアドレスを出力して通常の任意データの書き込み（全ビットの同時書き込み）を行うこともできる。
【００４８】
そして、レジスタ制御装置２４を備えたことで、予めマルチＣＰＵシステムに適用することを想定した設計が行われていないＣＰＵ１１，１２を用いても、TIERレジスタ１４等の周辺回路を共用するマルチＣＰＵシステム２５を構成することが可能となる。
【００４９】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、次のような変形または拡張が可能である。
単一ビットのビット操作に限ることなく、複数ビットのビット操作（所謂ビットフィールド操作）を行う場合でも、同様に適用することができる。
データバスサイズは８ビットに限ることなく，４ビット，１６ビットや３２ビットでも良い。
レジスタはコントロールレジスタに限らず、データレジスタでも良い。また、ダブルラッチ構成のTIERレジスタ１４に限ることなく、ＣＰＵの動作クロックに同期して動作するＤフリップフロップなどを用いてレジスタを構成しても良い。
リード信号とライト信号とを、例えばハイレベルの場合にリードサイクル，ロウレベルの場合にライトサイクルであることを示す１つの信号（リード／ライト信号）にしても良い。この場合、ＡＮＤゲート２１の対応する入力端子には、インバータゲートを介してリード／ライト信号を与えたり、或いは、当該入力端子は負論理とすれば良い。
【００５０】
ＣＰＵが３つ以上存在するシステムに適用しても良い。
マルチＣＰＵシステム全体を、半導体基板上の集積回路装置として構成しても良いし、各個別のディスクリート素子をプリント基板に搭載した回路装置として構成しても良い。
【図面の簡単な説明】
【図１】本発明の一実施例であり、TIERレジスタを中心とする電気的構成を示す図
【図２】２つのＣＰＵがリード・モディファイ・ライトサイクルを行う場合における、TIERレジスタのデータ値の変化を示すタイミングチャート
【図３】従来技術を示す図１相当図
【図４】二相クロック信号の波形を示す図
【図５】図２相当図
【符号の説明】
１１，１２はＣＰＵ、１３はアドレスデコーダ、１４はTIERレジスタ、１４ａはレジスタ部（レジスタ）、１４ｂはレジスタ制御部、１５はTIER0Wレジスタ（“０”セット用レジスタ）、１６はTIER1Wレジスタ（“１”セット用レジスタ）、１７はマルチプレクサ、１８はマスタラッチ、１９はスレーブラッチ、２４はレジスタ制御装置、２５はマルチＣＰＵシステムを示す。
【図１】
0004008196.tif 000003
【図２】
0004008196.tif 000004
【図３】
0004008196.tif 000005
【図４】
0004008196.tif 000006
【図５】
0004008196.tif 000007