(57)【特許請求の範囲】
【請求項１】
データを記憶するメモリと、
前記データが記憶されるアドレスと重複したアドレスに対応してマスクデータを記憶するデュアルポートメモリと、
アドレスを生成するアドレス生成手段と、
このアドレス生成手段によって生成された前記アドレスを判別するアドレス判別手段と、
このアドレス判別手段によって前記アドレスが前記データを読み出すための第１のアドレス空間内にあると判別されたとき前記アドレスにしたがって前記メモリから読み出された前記データを、前記アドレスにしたがって前記デュアルポートの一方のポートから読み出された前記マスクデータでマスクするマスク処理手段と、
前記アドレス判別手段によって前記アドレスがあらかじめ決められた前記デュアルポートをアクセスするための第２のアドレス空間内にあると判別されたとき前記デュアルポートメモリの他方のポートから前記アドレスに対応したマスクデータをアクセスするメモリアクセス手段
とを具備することを特徴とするマスク処理回路。
【請求項２】
データを記憶する第１のメモリと、
前記データが記憶されるアドレスと重複したアドレスに対応してマスクデータを記憶する第２のメモリと、
アドレスを生成するアドレス生成手段と、
このアドレス生成手段によって生成された前記アドレスを判別するアドレス判別手段と、
このアドレス判別手段によって前記アドレスが前記データを読み出すための第１のアドレス空間内にあると判別されたとき前記アドレスにしたがって前記メモリから読み出された前記データを、前記アドレスにしたがって前記第２のメモリから読み出された前記マスクデータでマスクするマスク処理手段と、
前記アドレス判別手段によって前記アドレスがあらかじめ決められた前記第２のメモリをアクセスするための第２のアドレス空間内にあると判別されたとき前記アドレスに対応して前記第２のメモリの前記マスクデータをアクセスするメモリアクセス手段
とを具備することを特徴とするマスク処理回路。
【請求項３】
前記アドレス判別手段は可変のアドレスデータに基づいてアドレス空間を判別するものであることを特徴とする請求項１または請求項２記載のマスク処理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマスク処理回路に係わり、詳細には半導体メモリ等の記憶回路に記憶された情報のマスク処理を行うマスク処理回路に関する。
【０００２】
【従来の技術】
システムの状態を管理する場合、例えばシステム内の各装置を管理する管理装置が各装置の運用状況を把握するため、管理対象となる各装置間に管理情報を伝送させる。この管理情報は所定フォーマットのデータ構造をなし、各装置では、この所定フォーマットのあらかじめ決められたデータ位置に自装置の管理情報を格納し、次の装置に伝送させる。この際、管理対象の各装置は、オプションユニットの使用あるいは未使用を示すフラグのユーザによる設定、他の関連システムの状況等をもとに、他の管理装置から伝送されてきた管理情報のうち自装置以外の部分をマスクするマスク処理を行って、自装置の管理情報を付加するための情報加工を行う。または、他の管理装置から伝送されてきた管理情報のうち自装置以外の部分をマスクするマスク処理を行って、システムの状態を判断して警報の判定を行う。
【０００３】
このようなマスク処理は、通常、読み出し専用メモリ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＲＯＭ）等の所定の記憶装置に格納されたマスク処理プログラムにしたがい、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：以下、ＣＰＵと略す。）によって実行される。
【０００４】
図９は、このようなマスク処理の処理内容の概要を表わしたものである。マスク処理は、まず記憶装置に格納されマスク処理対象となるメモリデータを読み出し（ステップＳ１０）、さらにマスク処理を行うためのマスクデータを同様に記憶装置から読み出す（ステップＳ１１）。その後、読み出されたメモリデータに対して、マスクデータによるマスク処理を行い（ステップＳ１２）、マスク処理を行ったデータを記憶装置に格納する（ステップＳ１３）ことで、一連のマスク処理を終了する。
【０００５】
上述したマスク処理プログラムによるマスク処理は、データ処理時間が大きな負荷となってリアルタイム性を要求されるシステムに適用することができない可能性がある。このような状況から、マスク処理をハードウェアで実現することが望ましい。そこで、上述したマスク処理を行うマスク処理回路に関する技術について種々提案されている。
【０００６】
例えば特開平８−９７２９９号公報「多セルメモリ」には、メモリアレイの読み出し単位であるワード単位に設けられたリセット状態回路により、リセット時にメモリアレイの蓄積データを初期化せず、メモリアレイから読み出したデータに対してリセット状態回路の値でマスク処理することにより、高速にリセットを行うようにした技術が開示されている。
【０００７】
【発明が解決しようとする課題】
しかしながら従来提案されたマスク処理回路では、ハードウェアによる高速処理を実現することができるものの、マスク処理対象のデータに対してマスク処理を行うためのマスクデータが固定化されるという問題がある。したがって上述した各装置間で管理情報を伝送させて警報の判定を行うシステムのように、装置ごとにマスクデータが異なる場合には、装置ごとにこの警報判定処理に先立ってマスクデータを設定することが必要となり、処理が煩雑となる。
【０００８】
しかも、通常警報判定処理中であっても、ユーザによる設定や他の関連システムの状況等に対応したマスクデータが動的に変更されることがあり、このような場合に上述した技術を適用したマスク処理回路を用いると、処理の中断や警報判定漏れ等の致命的な事態を招く可能性が高くなる。
【０００９】
そこで本発明の目的は、マスク処理を行うためのマスクデータを動的に任意に変更でき、マスク処理時間を大幅に短縮化するマスク処理回路を提供することにある。
【００１０】
【課題を解決するための手段】
請求項１記載の発明では、（イ）データを記憶するメモリと、（ロ）データが記憶されるアドレスと重複したアドレスに対応してマスクデータを記憶するデュアルポートメモリと、（ハ）アドレスを生成するアドレス生成手段と、（ニ）このアドレス生成手段によって生成されたアドレスを判別するアドレス判別手段と、（ホ）このアドレス判別手段によってアドレスがデータを読み出すための第１のアドレス空間内にあると判別されたときアドレスにしたがってメモリから読み出されたデータを、アドレスにしたがってデュアルポートの一方のポートから読み出されたマスクデータでマスクするマスク処理手段と、（へ）アドレス判別手段によってアドレスがあらかじめ決められたデュアルポートをアクセスするための第２のアドレス空間内にあると判別されたときデュアルポートメモリの他方のポートからアドレスに対応したマスクデータをアクセスするメモリアクセス手段とをマスク処理回路に具備させる。
【００１５】
すなわち請求項１記載の発明では、データを記憶する第１の記憶手段としてのメモリと、マスクデータを記憶する第２の記憶手段としてのデュアルポートメモリを用い、デュアルポートメモリの２つのポートをアクセスするためのアドレス空間をそれぞれ第１および第２のアドレス空間として区別するようにした。第１のアドレス空間にアクセスされたときは、アドレスにしたがって読み出されたメモリのデータを、これに対応してデュアルポートメモリに記憶されたマスクデータでマスク処理を行う。第２のアドレス空間にアクセスされたときは、デュアルポートメモリに記憶されるマスクデータをアクセスできるようにしている。
【００１６】
請求項２記載の発明では、（イ）データを記憶する第１のメモリと、（ロ）データが記憶されるアドレスと重複したアドレスに対応してマスクデータを記憶する第２のメモリと、（ハ）アドレスを生成するアドレス生成手段と、（ニ）このアドレス生成手段によって生成されたアドレスを判別するアドレス判別手段と、（ホ）このアドレス判別手段によってアドレスがデータを読み出すための第１のアドレス空間内にあると判別されたときアドレスにしたがってメモリから読み出されたデータを、アドレスにしたがって第２のメモリから読み出されたマスクデータでマスクするマスク処理手段と、（ヘ）アドレス判別手段によってアドレスがあらかじめ決められた第２のメモリをアクセスするための第２のアドレス空間内にあると判別されたときアドレスに対応して第２のメモリのマスクデータをアクセスするメモリアクセス手段とをマスク処理回路に具備させる。
【００１７】
すなわち請求項２記載の発明では、請求項１記載の発明に対してマスクデータを記憶するデュアルポートメモリを第２のメモリとし、このメモリに対してアクセスするためのアドレス空間をそれぞれ第１および第２のアドレス空間として区別するようにした。第１のアドレス空間にアクセスされたときは、アドレスにしたがって読み出されたメモリのデータを、これに対応して第２のメモリに記憶されたマスクデータでマスク処理を行う。第２のアドレス空間にアクセスされたときは、第２のメモリに記憶されるマスクデータをアクセスできるようにしている。
【００１８】
請求項３記載の発明では、請求項１または請求項２記載のマスク処理回路で、アドレス判別手段は可変のアドレスデータに基づいてアドレス空間を判別するものであることを特徴としている。
【００１９】
すなわち請求項３記載の発明では、アドレス空間の判別を行うためのアドレスデータを可変としたので、メモリ内の任意のアドレス領域に対してマスク処理を行うことができるようになり、例えばソフトウェア処理中にマスクデータの書き込みあるいは各領域のアドレスを変更して、動的なアドレス領域の変更をともなうマスク処理を行うことができるようになる。
【００２０】
【発明の実施の形態】
【００２１】
【実施例】
以下実施例につき本発明を詳細に説明する。
【００２２】
第１の実施例
【００２３】
図１は、本発明の第１の実施例におけるマスク処理回路の構成の概要を表わしたものである。このマスク処理回路は、マスク処理対象のメモリデータを記憶するメモリ２０と、メモリ２０に記憶された所定のプログラムにしたがってメモリ２０に記憶されたマスク処理対象のメモリデータの書き込みあるいは読み出しを行うＣＰＵ２１と、マスク処理を行うためのマスクデータを記憶するデュアルポートメモリ２２とを備えている。さらに、このマスク処理回路は、メモリ２０から読み出されたメモリデータに対してデュアルポートメモリ２２から読み出されたマスクデータを用いたマスク処理を行うとともにＣＰＵ２１から出力されたデータをメモリ２０に出力させるバス論理積回路２３と、メモリ２０とデュアルポートメモリ２２とバス論理積回路２３に対する各種制御信号を生成する制御回路２４とを備えている。
【００２４】
メモリ２０は、アドレスバス２５を介してＣＰＵ２１と、メモリデータバス２６を介してバス論理積回路２３とそれぞれ接続される。メモリ２０は、アドレスバス２５上のアドレスデータによって指定されるアドレスに対応したデータを、メモリデータバス２６を介して書き込みあるいは読み出しを行う。
【００２５】
ＣＰＵ２１は、アドレスバス２５を介して上述したメモリ２０の他にデュアルポートメモリ２２および制御回路２４と接続され、データバス２７を介してデュアルポートメモリ２２、およびバス論理積回路２３と接続されている。ＣＰＵ２１は、メモリ２０に記憶されている所定のプログラムにしたがって、アドレスバス２５にアドレスデータを出力し、このアドレスデータによって指定される各素子に対してデータバス２７上のデータの書き込みあるいは読み出しを行う。さらにＣＰＵ２１は、制御回路２４に対して、各素子のアクセスが書き込みサイクルであるか読み出しサイクルであるかを示すＲＷ信号を出力する。このＲＷ信号が伝送される信号線については図示しないが、アドレスバス２５と同様にＣＰＵ２１とメモリ２０、デュアルポートメモリ２２および制御回路２４と接続される。また、アドレスバス２５、データバス２７およびＲＷ信号線は、図示しない外部回路に接続される。
【００２６】
デュアルポートメモリ２２は、第１および第２のポート２９、３０を備えており、それぞれデュアルポートメモリ２２内のアドレスを指定するためのアドレスバス２５が接続されている。第１のポート２９にはバス論理積回路２３に接続されるデュアルポートメモリバス３１が、第２のポート３０にはデータバス２７がそれぞれ接続されている。デュアルポートメモリ２２は、同一アドレスのデータに対して、第１および第２のポート２９、３０に接続されるアドレスバス２５上のアドレスデータにより書き込みあるいは読み出しを行うことができる。第１の実施例では、ＣＰＵ２１がデュアルポートメモリ２２にデータの書き込みあるいは読み出しを行う場合、第２のポート３０を用いるようになっている。
【００２７】
バス論理積回路２３は、バスを構成するビット線ごとに双方向のデータ切替が可能なビット単位マスク処理回路が配列されている。このバス論理積回路２３は、メモリ２０へのアクセスがＣＰＵ入力方向の場合にはメモリバス２６上のメモリデータとデュアルポートメモリバス３１上のマスクデータとからマスク処理を行ったデータをデータバス２７上に出力させ、メモリ２０へのアクセスがＣＰＵ出力方向の場合にはデータバス２７上のデータをメモリバス２６に出力させる。
【００２８】
図２は、上述したビット単位マスク処理回路の構成の概要を表わしたものである。バス論理積回路２３は、このようなビット単位マスク処理回路がバスを構成するビット線ごとに設けられている。ビット単位マスク処理回路４０は、データバス２７を構成するＣＰＵビット線４１が、第１のバッファ４２の入力端子と、第２のバッファ４３の出力端子とに接続される。第１のバッファ４２の出力端子は、メモリバス２６を構成するメモリビット線４４と接続される。このメモリビット線４４は、２入力論理積回路４５の一方の入力端子に接続されており、この２入力論理積回路４５の他方の入力端子にはデュアルポートメモリバス３１を構成するデュアルポートメモリビット線４６が接続される。２入力論理積回路４５の出力端子は、第２のバッファ４３の入力端子に接続される。第１および第２のバッファ４２、４３は、それぞれデータ切替信号線４７が接続されている。
【００２９】
このビット単位マスク処理回路は、データ切替信号線４７が“ＣＰＵ入力”を示す論理レベル“Ｈ”のとき、第１のバッファ４２の出力端子をハイインピーダンス状態とする一方、第２のバッファ４３が２入力論理積回路４５の出力信号をＣＰＵビット線４１に出力させる。すなわち、バス論理積回路２３は、メモリ２０からのメモリデータとデュアルポートメモリ２２からのマスクデータとをビット単位ごとに論理積を演算したデータをＣＰＵ２１に対して出力する。したがって、マスクデータとして、マスクするビットに“０”をセットし、マスクしないビットに“１”をセットすることによって、ＣＰＵ２１は所望のビットをマスクしたデータを得ることができる。
【００３０】
また、データ切替信号線４７が“ＣＰＵ出力”を示す論理レベル“Ｌ”のとき、第２のバッファ４３の出力端子をハイインピーダンス状態とする一方、第１のバッファ４２がＣＰＵビット線４１のデータをメモリデータビット線４４に出力させる。すなわち、バス論理積回路２３は、メモリデータバス２７のデータを、メモリ２０に対して出力する。
【００３１】
このバス論理積回路２３を構成するビット単位マスク処理回路のデータ切替は、制御回路２４によって行われる。制御回路２４は、ＣＰＵ２１からの図示しないＲＷ信号にしたがってこのバス論理積回路２３に対してデータ切替信号５０を出力するとともに、アドレスバス２５上のアドレスデータとＣＰＵ２１からの図示しないＲＷ信号とからアクセスすべき素子を選択する各種素子選択信号を生成する。この素子選択信号としては、メモリ２０をアクセスするためのメモリ選択信号５１、デュアルポートメモリ２２の第１のポートをアクセスするための第１のポート選択信号５２およびデュアルポートメモリ２２の第２のポートをアクセスするための第２のポート選択信号５３がある。メモリ２０、デュアルポートメモリ２２の第１および第２のポート２９、３０に対しては、これら各種素子選択信号で選択されない限りアクセスすることができないようになっている。
【００３２】
このような構成の第１の実施例におけるマスク処理回路は、デュアルポートメモリ２２からマスクデータを読み出すためのアドレス空間とメモリ２０のアドレス空間とが重複した部分を有していることを特徴としている。したがって、メモリ２０のこの重複したアドレス空間からメモリデータを読み出した場合、同時にデュアルポートメモリ２２の第１のポート２９からはメモリデータが読み出された同一のアドレスデータに対応したマスクデータが読み出され、バス論理積回路２３でマスク処理が行われてＣＰＵ２１に読み込まれる。次に、図３および図４を参照しながらこのようなマスク処理を行う第１の実施例におけるマスク処理回路の動作について説明する。
【００３３】
図３は、第１の実施例におけるＣＰＵのメモリ空間を表わしたものものである。ここでは、ＣＰＵメモリ空間６０は、メモリ２０をアクセスするためのメモリ領域６１と、デュアルポートメモリ２２の第２のポート３０をアクセスするための第２のポート領域６２とからなる。メモリ領域６１のうち、斜線で示すメモリ領域６３は、デュアルポートメモリ２２の第１のポート２９をアクセスするための第１のポート領域６４と重複している。
【００３４】
図４は、第１の実施例における各種素子選択信号およびデータ切替信号を生成する制御回路の真理値表を表わしたものである。この真理値表７０では、各種素子選択信号の論理レベルが“Ｈ”のとき、その素子が選択されたことを示す。例えば真理値表７０にしたがって動作する制御回路２４は、図３において斜線で示すメモリ領域６３を除くメモリ領域６１に対して読み出しを行った場合、メモリ２０を選択するメモリ選択信号５１を論理レベル“Ｈ”、第１および第２のポート選択信号５２、５３を論理レベル“Ｌ”、バス論理積回路２３に対するデータ切替信号５０を“ＣＰＵ入力”を示す論理レベル“Ｈ”にすることを示す。
【００３５】
制御回路２４がこのような真理値表にしたがって動作することにより、上述したように図３において斜線で示すメモリ領域６３を除くメモリ領域６１に対して読み出しを行った場合、メモリ２０へのアクセスが可能となり、図２で説明したようにＣＰＵ入力方向にデータバス２７にはメモリデータバス２６上のデータが出力されるので、ＣＰＵ２１はアドレスバス２５で指定したアドレスのメモリ２０のメモリデータを読み出すことが可能となる。同様に、ＣＰＵ２１がメモリ２０にデータを書き込む場合には、アドレスバス２５で指定したアドレスに対応して、データバス２７、バス論理積回路２３、メモリデータバス２６を介して書き込みを行う。
【００３６】
これに対して、デュアルポートメモリ２２に書き込みあるいは読み出しを行う場合には、デュアルポートメモリ２２の第２のポート３０を用いる。すなわち、ＣＰＵ２１がデュアルポートメモリ２２に書き込みを行う場合、図３に示す第２のポート領域６２に対して書き込みサイクルを発生させる。したがって、図４で示したように第２のポート選択信号５３を論理レベル“Ｈ”とし、データバス２７により書き込みを行う。ＣＰＵ２１がデュアルポートメモリ２２に読み出しを行う場合、図３に示す第２のポート領域６２に対して読み出しサイクルを発生させる。したがって、図４で示したように第２のポート選択信号５３を論理レベル“Ｈ”、データ切替信号５０を論理レベル“Ｌ”とすることで、バス論理積回路２３からＣＰＵ２１に対するデータ出力をハイインピーダンス状態として、データバス２７により読み出しを行う。
【００３７】
デュアルポートメモリ２２において、第２のポート３０を用いてアクセスされる領域と、第１のポート２９を用いてアクセスされる領域とは同一である。これは、例えば３２ビットでアドレスバスおよびデータバス上のデータを表わした場合、第１のポート領域６４の先頭アドレスを“０ｘ００００１０００”、第２のポート領域６２の先頭アドレスを“０ｘ０Ｆ００１０００”とし、デュアルポートメモリ２２はアドレスバス２５で指定された３２ビットのアドレスデータのうち下位１６ビットの“０ｘ１０００”でアクセスさせることで実現することができる。
【００３８】
また、ＣＰＵ２１からメモリ領域６１のうちデュアルポートメモリの第１のポート領域６４と重複する領域の読み出しがあったときは、制御回路２４はメモリ選択信号５１と第１のポート選択信号５２を論理レベル“Ｈ”とし、データ切替信号５０を論理レベル“Ｈ”とする。これにより、メモリ２０およびデュアルポートメモリ２２から、それぞれメモリデータバス２６およびデュアルポートメモリバス３１を介してメモリデータおよびマスクデータが読み出され、バス論理積回路２３に供給される。バス論理積回路２３は、図２に示したように各バスを構成するビットごとに論理積を演算し、データバス２７に出力する。したがって、ＣＰＵ２１は、あらかじめデュアルポートメモリ２２に、メモリ２０に蓄積させるデータに対応したマスクデータを記憶させておくことで、ソフトウェア処理ではなく、ハードウェア処理でマスク処理を行うことができる。例えば、デュアルポートメモリ２２のマスクデータの内容が“０”のビットについては、メモリ２０のメモリデータの値にかかわらず、ＣＰＵ２１にデータ“０”が取り込まれ、マスクデータの内容が“１”のビットについては、メモリ２０のメモリデータの値がそのままＣＰＵ２１に取り込まれるので、マスク処理されたデータをＣＰＵ２１に負荷をかけることなく得ることができる。
【００３９】
また、ＣＰＵ２１からメモリ領域６１のうちデュアルポートメモリの第１のポート領域６４と重複する領域の書き込みがあったときは、制御回路２４はメモリ選択信号５１を論理レベル“Ｈ”とし、第１および第２のポート選択信号５２、５３を論理レベル“Ｌ”とし、データ切替信号５０を論理レベル“Ｌ”とする。これにより、メモリ２０に対しては、ＣＰＵ２１から直接データが書き込まれるが、第１および第２のポート選択信号５２、５３を論理レベル“Ｌ”としているのでデュアルポートメモリ２２に対する書き込みサイクルは無効化される。
【００４０】
このようにデュアルポートメモリに対して書き込みを行う場合には、上述したようにＣＰＵ２１からデュアルポートメモリ２２の第２のポート領域６２に対して書き込みを行う。したがって、制御回路２４はメモリ選択信号５１を論理レベル“Ｌ”とし、第１のポート選択信号５２を論理レベル“Ｌ”、第２のポート選択信号５３を論理レベル“Ｈ”とし、データ切替信号５０を論理レベル“Ｌ”とする。これにより、デュアルポートメモリ２２の第２のポート３０を介して、ＣＰＵ２１からマスクしたいデータを書き込むことができる。この際、指定する第２のポート領域６２のアドレスは、第１のポート領域６４のアドレスに対応したものが指定される。なお、ＣＰＵ２１からデュアルポートメモリ２２の第２のポート領域６２に対して読み出しを行うと、制御回路２４はメモリ選択信号５１を論理レベル“Ｌ”とし、第１のポート選択信号５２を論理レベル“Ｌ”、第２のポート選択信号５３を論理レベル“Ｈ”とし、データ切替信号５０を論理レベル“Ｌ”とする。これにより、デュアルポートメモリ２２の第２のポート３０を介して、ＣＰＵ２１にマスクデータを読み出すことができる。
【００４１】
以上説明したように第１の実施例におけるマスク処理回路は、ＣＰＵ２１が参照するメモリデータを記憶するメモリ２０に対応して、デュアルポートメモリ２２を備えるようにした。デュアルポートメモリ２２の一方のポートを読み出し専用とし、他方のポートを書き込み可能のポートとし、メモリ２０におけるメモリデータの記憶場所を指定するアドレスに対応してマスクデータを記憶させる。そして、ＣＰＵ２１が参照するアドレスをアクセスしてメモリデータの読み出しを行ったとき、このアドレスに対応してデュアルポートメモリ２２から同時に読み出されたマスクデータを用い、メモリデータとビット単位に論理積を演算する。これにより、ＣＰＵ２１はマスク処理をハードウェアで簡単に実現することができ、マスク処理の実行時間を大幅に短縮化することができる。
【００４２】
第２の実施例
【００４３】
第１の実施例におけるマスク処理回路は、デュアルポートメモリを用いてマスク処理を行うためのマスクデータを読み出すようにしていたが、これに限定されるものではない。第２の実施例におけるマスク処理回路は、汎用メモリを用いてマスク処理を行うためのマスクデータを読み出すようにしている。
【００４４】
図５は、第２の実施例におけるマスク処理回路の構成の概要を表わしたものである。このマスク処理回路は、マスク処理対象のメモリデータを記憶するメモリ８０と、メモリ８０に記憶された所定のプログラムにしたがってメモリ８０に記憶されたマスク処理対象のメモリデータの書き込みあるいは読み出しを行うＣＰＵ８１と、マスク処理を行うためのマスクデータを記憶する汎用メモリであるマスク用メモリ８２とを備えている。さらに、このマスク処理回路は、メモリ８０から読み出されたメモリデータに対してマスク用メモリ８２から読み出されたマスクデータを用いたマスク処理を行うとともにＣＰＵ８１から出力されたデータをメモリ８０およびマスク用メモリ８２に出力させるバス論理積回路８３と、メモリ８０とマスク用メモリ８２とバス論理積回路８３に対する各種制御信号を生成する制御回路８４とを備えている。
【００４５】
メモリ８０は、アドレスバス８５を介してＣＰＵ８１と、メモリデータバス８６を介してバス論理積回路８３とそれぞれ接続される。メモリ８０は、アドレスバス８５上のアドレスデータによって指定されるアドレスに対応したデータを、メモリデータバス８６を介して書き込みあるいは読み出しを行う。
【００４６】
ＣＰＵ８１は、アドレスバス８５を介して上述したメモリ８０の他にマスク用メモリ８２および制御回路８４と接続され、データバス８７を介してバス論理積回路８３と接続されている。ＣＰＵ８１は、メモリ８０に記憶されている所定のプログラムにしたがって、アドレスバス８５にアドレスデータを出力し、このアドレスデータによって指定される各素子に対してデータバス８７上のデータの書き込みあるいは読み出しを行う。さらに、ＣＰＵ８１は、制御回路８４に対して、各素子のアクセスが書き込みサイクルであるか読み出しサイクルであるかを示すＲＷ信号を出力する。このＲＷ信号が伝送される信号線については図示しないが、アドレスバス８５と同様にＣＰＵ８１とメモリ８０、マスク用メモリ８２および制御回路８４と接続される。また、アドレスバス８５、データバス８７およびＲＷ信号線は、図示しない外部回路に接続される。
【００４７】
マスク用メモリ８２は、内部のアドレスを指定するためのアドレスバス８５が接続されマスク用メモリバス８８が接続されている。第２の実施例では、ＣＰＵ８１がマスク用メモリ８２にデータの書き込みあるいは読み出しを行う場合、それぞれ異なるアドレス領域を指定してアクセスすることができるようになっている。
【００４８】
バス論理積回路８３は、バスを構成するビット線ごとに双方向のデータ切替が可能なビット単位マスク処理回路が配列されている。このバス論理積回路８３は、第１の実施例と同様にメモリ８０へのアクセスがＣＰＵ入力方向の場合にはメモリバス８６上のメモリデータとマスク用メモリバス８８上のマスクデータとからマスク処理を行ったデータをデータバス８７上に出力させ、メモリ８０へのアクセスがＣＰＵ出力方向の場合にはデータバス８７上のデータをメモリバス８６に出力させる。
【００４９】
図６は、第２の実施例におけるビット単位マスク処理回路の構成の概要を表わしたものである。バス論理積回路８３は、このようなビット単位マスク処理回路がバスを構成するビット線ごとに設けられている。ビット単位マスク処理回路９０は、データバス８７を構成するＣＰＵビット線９１が、第３のバッファ９２の入力端子と、第４のバッファ９３の出力端子とに接続される。第３のバッファ９２の出力端子は、メモリバス８６を構成するメモリビット線９４と接続される。このメモリビット線９４は、２入力論理積回路９５の一方の入力端子に接続されており、この２入力論理積回路９５の他方の入力端子にはマスク用メモリバス８８を構成するマスク用メモリビット線９６が接続される。２入力論理積回路９５の出力端子は、第４のバッファ９３の入力端子に接続される。第３のバッファ９２は、ＣＰＵ出力方向制御信号９７が接続されている。第４のバッファ９３は、ＣＰＵ入力方向制御信号９８が接続されている。ＣＰＵ出力方向制御信号線９７およびＣＰＵ入力方向制御信号線９８を介して、互いに排他制御されたＣＰＵ出力方向制御信号およびＣＰＵ入力方向制御信号が入力される。
【００５０】
このビット単位マスク処理回路は、ＣＰＵ入力方向制御信号線９８のＣＰＵ入力方向制御信号が論理レベル“Ｈ”のとき、第４のバッファ９３が２入力論理積回路９５の出力信号をＣＰＵビット線９１に出力させる。ＣＰＵ出力方向制御信号線９７のＣＰＵ出力方向制御信号は、これと排他制御され、第３のバッファ９２の出力端子はハイインピーダンス状態となる。すなわち、バス論理積回路８３は、メモリ８０からのメモリデータとマスク用メモリ８２からのマスクデータとをビット単位ごとに論理積を演算したデータをＣＰＵ８１に対して出力する。
【００５１】
また、ＣＰＵ出力方向制御信号線９７のＣＰＵ出力方向制御信号が論理レベル“Ｈ”のとき、第３のバッファ９２はＣＰＵビット線９１のデータをメモリデータビット線９４に出力させる。ＣＰＵ入力方向制御信号線９８のＣＰＵ入力方向制御信号は、これと排他制御され、第４のバッファ９８の出力端子はハイインピーダンス状態となる。すなわち、バス論理積回路８３は、メモリデータバス８７のデータを、メモリ８０に対して出力する。
【００５２】
このバス論理積回路８３を構成するビット単位マスク処理回路のデータ切替は、制御回路８４によって行われる。制御回路８４は、ＣＰＵ８１からの図示しないＲＷ信号にしたがって、このバス論理積回路８３に対してＣＰＵ入力方向および出力方向制御信号１００、１０１を出力するとともに、アドレスバス８５上のアドレスデータとＣＰＵ８１からの図示しないＲＷ信号とからアクセスすべき素子を選択する各種素子選択信号を生成する。この素子選択信号としては、メモリ８０をアクセスするためのメモリ選択信号１０２、マスク用メモリ８２をアクセスするためマスク用メモリ選択信号１０３がある。メモリ８０およびマスク用メモリ８２は、これら各種素子選択信号で選択されない限りアクセスすることができないようになっている。
【００５３】
このような構成の第２の実施例におけるマスク処理回路は、マスク用メモリ８２からマスクデータを読み出すためのアドレス空間とメモリ８０のアドレス空間とが重複した部分を有している。したがって、メモリ８０のこの重複したアドレス空間からメモリデータを読み出した場合、同時にアドレスデータによって指定されたマスク用メモリ８２からはメモリデータが読み出された同一のアドレスデータに対応したマスクデータが読み出され、バス論理積回路８３でマスク処理が行われてＣＰＵ８１に読み込まれる。次に、図７および図８を参照しながらこのようなマスク処理を行う第２の実施例におけるマスク処理回路の動作について説明する。
【００５４】
図７は、第２の実施例におけるＣＰＵのメモリ空間を表わしたものものである。ここでは第１の実施例と同様に、ＣＰＵメモリ空間１２０は、メモリ８０をアクセスするためのメモリ領域１２１と、マスク用メモリ書き込み用領域１２２とからなる。メモリ領域１２１のうち、斜線で示すメモリ領域１２３は、マスク用メモリの読み出しを行うためのマスク用メモリ読み出し用領域１２４と重複している。
【００５５】
図８は、第２の実施例における各種素子選択信号およびデータ切替信号を生成する制御回路の真理値表を表わしたものである。この真理値表１３０では、各種素子選択信号の論理レベルが“Ｈ”のとき、その素子が選択されたことを示す。
【００５６】
制御回路８４がこのような真理値表１３０にしたがって動作することにより、例えば図７において斜線で示すメモリ領域１２３を除くメモリ領域１２１に対して読み出しを行った場合、メモリ８０へのアクセスが可能となり、図６で説明したようにＣＰＵ入力方向にデータバス８７にはメモリデータバス８６上のデータが出力されるので、ＣＰＵ８１はアドレスバス８５で指定したアドレスのメモリ８０のメモリデータを読み出すことが可能となる。同様に、ＣＰＵ８１がメモリ８０にデータを書き込む場合には、アドレスバス８５で指定したアドレスに、データバス８７、バス論理積回路８３、メモリデータバス８６を介して書き込みを行う。
【００５７】
これに対して、マスク用メモリ８２に書き込みあるいは読み出しを行う場合には、ＣＰＵ８１がそれぞれあらかじめ決められたマスク用メモリ書き込み用領域あるいはマスク用メモリ読み出し用領域のアドレスを指定する。すなわち、ＣＰＵ８１がマスク用メモリ８２に書き込みを行う場合、図７に示すマスク用メモリ書き込み用領域１２２に対して書き込みサイクルを発生させる。したがって、図８で示したようにマスク用メモリ選択信号１０３を論理レベル“Ｈ”、ＣＰＵ入力方向制御信号１００を論理レベル“Ｌ”、ＣＰＵ出力方向制御信号１０１を論理レベル“Ｈ”とし、データバス８７により書き込みを行う。ＣＰＵ８１がマスク用メモリ８２に対して読み出しを行う場合、図７に示すマスク用メモリ読み出し用領域１２２に対して読み出しサイクルを発生させる。したがって、図４で示したようにマスク用メモリ選択信号１０３を論理レベル“Ｈ”とし、データバス８７により読み出しを行う。
【００５８】
マスク用メモリ８２は、第１の実施例におけるデュアルポートメモリと同様に、マスク用メモリ書き込み用領域１２２を用いてアクセスされる領域と、マスク用メモリ読み出し用領域１２４を用いてアクセスされる領域とは同一である。
【００５９】
ＣＰＵ８１からメモリ領域１２１のうちマスク用メモリ読み出し用領域１２４と重複する領域の読み出しがあったときは、制御回路８４はメモリ選択信号１０２とマスク用メモリ選択信号１０３を論理レベル“Ｈ”とし、ＣＰＵ入力方向制御信号１００を論理レベル“Ｈ”、ＣＰＵ出力方向制御信号１０１を論理レベル“Ｌ”とする。これにより、メモリ８０およびマスク用メモリ８２から、それぞれメモリデータバス８６およびマスク用メモリバス８８を介してメモリデータおよびマスクデータが読み出され、バス論理積回路８３に供給される。バス論理積回路８３は、図６に示したように各バスを構成するビットごとに論理積を演算し、データバス８７に出力する
【００６０】
また、ＣＰＵ８１からメモリ領域１２１のうちマスク用メモリ読み出し用領域１２４と重複する領域の書き込みがあったときは、制御回路８４はメモリ選択信号５１を論理レベル“Ｈ”とし、マスク用メモリ選択信号１０３を論理レベル“Ｌ”とし、ＣＰＵ入力方向制御信号１００を論理レベル“Ｌ”、ＣＰＵ出力方向制御信号１０１を論理レベル“Ｈ”とする。これにより、メモリ８０に対しては、ＣＰＵ８１から直接データが書き込まれるが、マスク用メモリ選択信号１０３を論理レベル“Ｌ”としているのでマスク用メモリ８２に対する書き込みサイクルは無効化される。
【００６１】
このようにマスク用メモリに対して書き込みを行う場合には、上述したようにＣＰＵ８１からマスク用メモリ書き込み用領域１２２に対して書き込みを行う。したがって、制御回路８４はメモリ選択信号１０２を論理レベル“Ｌ”とし、マスク用メモリ選択信号１０３を論理レベル“Ｈ”とし、ＣＰＵ入力方向制御信号１００を論理レベル“Ｌ”、ＣＰＵ出力方向制御信号１０１を論理レベル“Ｈ”とする。これにより、マスク用メモリ８２に対して、ＣＰＵ８１からマスクしたいデータを書き込む。この際、指定するマスク用メモリ書き込み用領域１２２のアドレスは、マスク用メモリ読み出し用領域１２４のアドレスに対応したものが指定される。なお、ＣＰＵ８１からデュアルポートメモリ書き込み用領域１２２に対して読み出しを行うと、制御回路８４はメモリ選択信号１０２を論理レベル“Ｌ”とし、マスク用メモリ選択信号１０３を論理レベル“Ｈ”とし、ＣＰＵ入力方向制御信号１００を論理レベル“Ｈ”、ＣＰＵ出力方向制御信号１０１を論理レベル“Ｌ”とする。これにより、マスク用メモリ８２について、ＣＰＵ８１はマスクデータを読み出すことができる。
【００６２】
以上説明したように第２の実施例におけるマスク処理回路は、マスクデータを記憶するために汎用メモリを用い、マスクデータの書き込み用および読み出し用のアドレスを変えてアクセスするようにしたので、汎用メモリを第１の実施例におけるデュアルポートに置き換えることができるようになり、高価なデュアルポートメモリを使用するのに比べて、安価な回路を構成することができるようになる。
【００６３】
なお、第１および第２の実施例におけるマスク処理回路では、あらかじめ決められたアドレス領域に対して各種素子選択信号を生成してマスクデータの書き込みおよび読み出しを行うようにしていたが、これに限定されるものではない。例えば、上述したような第１および第２の実施例におけるマスク処理回路の制御回路に対して、図３および図７で示したような各領域の先頭アドレスをＣＰＵにより設定できるようにする。したがって、この設定アドレスに応じて、メモリ内の任意のアドレス領域に対してマスク処理を行うことができるようになり、例えばソフトウェア処理中にマスクデータの書き込みあるいは各領域のアドレスを変更して、動的なアドレス領域の変更をともなうマスク処理を行うことができるようになる。
【００６４】
【発明の効果】
以上説明したように本発明によれば、マスク処理をハードウェアで簡単に実現することができ、マスク処理の実行時間を大幅に短縮化することができる。したがって、リアルタイム性が必要とされるシステムに適用することができるようになる。
【００６５】
また請求項１記載の発明によれば、その読み出しおよびマスクデータのアクセスを別個のアドレス空間としたデュアルポートメモリを用いて、対応するメモリのアドレスのメモリデータをマスク処理するようにしたので、マスク処理の実行時間を大幅に短縮化することができるとともに、動作中であっても容易にマスクデータを変更することができるようになる。
【００６６】
さらに請求項２記載の発明によれば、その読み出しおよびマスクデータのアクセスを別個のアドレス空間としたメモリを用いるようにしたので、高価なデュアルポートメモリを使用するのに比べて、安価な回路を構成することができるようになる。
【００６７】
また請求項３記載の発明によれば、アドレス空間の判別を行うためのアドレスデータを可変としたので、メモリ内の任意のアドレス領域に対してマスク処理を行うことができるようになり、例えばソフトウェア処理中にマスクデータの書き込みあるいは各領域のアドレスを変更して、動的なアドレス領域の変更をともなうマスク処理を行うことができるようになる。
【図面の簡単な説明】
【図１】本発明の第１の実施例におけるマスク処理回路の構成の概要を示すブロック図である。
【図２】第１の実施例におけるビット単位マスク処理回路の構成の概要を示す構成図である。
【図３】第１の実施例におけるＣＰＵメモリ空間を示す説明図である。
【図４】第１の実施例における制御回路の動作を説明するための真理値表を示す説明図である。
【図５】第２の実施例におけるマスク処理回路の構成の概要を示すブロック図である。
【図６】第２の実施例におけるビット単位マスク処理回路の構成の概要を示す構成図である。
【図７】第２の実施例におけるＣＰＵメモリ空間を示す説明図である。
【図８】第２の実施例における制御回路の動作を説明するための真理値表を示す説明図である。
【図９】従来のマスク処理の処理内容の概要を示す流れ図である。
【符号の説明】
２０、８０  メモリ
２１、８１  ＣＰＵ
２２  デュアルポートメモリ
２３、８３  バス論理積回路
２４、８４  制御回路
２５、８５  アドレスバス
２６、８６  メモリデータバス
２７、８７  データバス
２９  第１のポート
３０  第２のポート
３１  デュアルポートメモリバス
５０  データ切替信号
５１、１０２  メモリ選択信号
５２  第１のポート選択信号
５３  第２のポート選択信号
８２  マスク用メモリ
１００  ＣＰＵ入力方向制御信号
１０１  ＣＰＵ出力方向制御信号
１０３  マスク用メモリ選択信号
【図１】
0003555856.tif 000002
【図２】
0003555856.tif 000003
【図３】
0003555856.tif 000004
【図４】
0003555856.tif 000005
【図５】
0003555856.tif 000006
【図６】
0003555856.tif 000007
【図７】
0003555856.tif 000008
【図８】
0003555856.tif 000009
【図９】
0003555856.tif 000010