(57)【要約】【課題】リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスが同一であるＣＰＵにおいて、リセット時のスタートアドレスを任意のアドレスに配置することを可能とするアドレス変換回路を、簡易な構成の回路で実現する、メモリアクセス制御方式を提供する。【解決手段】ＣＰＵとメモリ装置とアドレス変換回路とを備えたコンピュータシステムであって、アドレス変換回路はコンピュータシステムのリセット時に、リセット信号が入力されることによりマスク機能が設定され、ＣＰＵが出力するリセット時のスタートアドレスであるところの第１のアドレスの信号の特定の複数（ｎ）のビットをマスクしてアドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第１のアドレスとは異なる第２のアドレスに変換する。【選択図】　　　図１
2004070461.tif 000002
【特許請求の範囲】
【請求項１】
リセット時のスタートアドレスとＮＭＩ（Ｎｏｎ　Ｍａｓｋａｂｌｅ　Ｉｎｔｅｒｒｕｐｔ：ノンマスカブル割込み）発生時の割込みベクタアドレスとが同一であるＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ：中央処理装置）と、前記ＣＰＵがアドレスデコーダを介してアクセス可能なメモリ装置と、前記ＣＰＵから出力されるアドレス信号の任意の複数のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に出力されるリセット信号を用いて、前記ＣＰＵが出力する前記リセット時のスタートアドレスの信号の任意の複数のビットをマスクし、前記リセット時のスタートアドレスを他の任意のアドレスに変更して前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記ＮＭＩ発生時の割込みベクタアドレスと異なるアドレスに設定する、ことを特徴とするメモリアクセス制御方式。
【請求項２】
前記アドレス変換手段は、前記ＣＰＵから出力されるメモリライト制御信号を用いて、前記リセット時に設定された前記マスク機能の解除を行い、それ以降は前記ＣＰＵから出力されるアドレス信号の前記任意の複数のビットのマスクを行わず、前記ＣＰＵから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする請求項１に記載のメモリアクセス制御方式。
【請求項３】
リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスとが同一であるＣＰＵと、前記ＣＰＵがアドレスデコーダを介してアクセス可能なメモリ装置と、前記ＣＰＵから出力されるアドレス信号の特定の複数（ｎ：ｎは正の整数）のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に、前記コンピュータシステムから出力されるリセット信号が入力されることにより前記マスク機能が設定され、前記ＣＰＵが出力する前記リセット時のスタートアドレスであるところの第１のアドレスの信号の前記特定の複数（ｎ）のビットをマスクして前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第１のアドレスとは異なる第２のアドレスに変換する、ことを特徴とするメモリアクセス制御方式。
【請求項４】
前記アドレス変換手段は、前記ＣＰＵが前記メモリ装置へデータを書込む際に生成するメモリライト制御信号の入力によって前記マスク機能を解除し、それ以降は前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットのマスクを行わず、前記ＣＰＵから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする請求項３に記載のメモリアクセス制御方式。
【請求項５】
前記メモリ装置の前記第１のアドレスにＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ：ランダムアクセスメモリ）が実装され、前記メモリ装置の前記第２のアドレスにＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ：リードオンリメモリ）が実装される、ことを特徴とする請求項４に記載のメモリアクセス制御方式。
【請求項６】
前記ＲＡＭにＮＭＩ発生時の処理を実行するプログラムが記述され、前記ＲＯＭにリセット時の処理を実行するプログラムが記述される、ことを特徴とする請求項５に記載のメモリアクセス制御方式。
【請求項７】
前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットとの論理和を取る複数（ｎ）のＯＲ回路と、から構成され、前記複数（ｎ）のＯＲ回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする請求項４から請求項６の何れか１項に記載のメモリアクセス制御方式。
【請求項８】
前記フリップフロップは、Ｄ形フリップフロップ回路で構成される、ことを特徴とする請求項７に記載のメモリアクセス制御方式。
【請求項９】
前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのＱバー出力である、ことを特徴とする請求項８に記載のメモリアクセス制御方式。
【請求項１０】
前記フリップフロップの前記リセット信号入力端子に前記リセット信号が入力されると、前記フリップフロップはリセットされて前記Ｑバー出力が論理「１」となり、前記複数（ｎ）のＯＲ回路の一方の入力が論理「１」となるため、前記複数（ｎ）のＯＲ回路の他方の入力が如何なるビット値であっても前記複数（ｎ）のＯＲ回路の出力が論理「１」となり、従って、前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットがマスクされるようになり、前記アドレス変換手段の前記マスク機能が設定されるようになる、ことを特徴とする請求項９に記載のメモリアクセス制御方式。
【請求項１１】
前記フリップフロップの前記クロック入力端子に前記メモリライト制御信号が入力されると、前記フリップフロップの前記Ｑバー出力が論理「０」となり、前記複数（ｎ）のＯＲ回路の一方の入力が論理「０」となるため、前記複数（ｎ）のＯＲ回路の他方の入力は変換されること無く前記複数（ｎ）のＯＲ回路の出力となり、従って、前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットはマスクされず、前記アドレス変換手段の前記マスク機能が解除されるようになる、ことを特徴とする請求項９或いは請求項１０の何れか１項に記載のメモリアクセス制御方式。
【請求項１２】
前記コンピュータシステムは、ＲＯＭ電源制御回路を更に備え、前記ＲＯＭ電源制御回路は、前記ＣＰＵによる処理動作が前記ＲＯＭに記述されている前記リセット時の処理を実行するプログラムの実行を完了した後に、前記ＲＯＭに供給されている電源のオフを行う制御を実行する、ことを特徴とする請求項６から請求項１１の何れか１項に記載のメモリアクセス制御方式。
【請求項１３】
前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットとの論理積を取る複数（ｎ）のＡＮＤ回路と、から構成され、前記複数（ｎ）のＡＮＤ回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする請求項４から請求項６の何れか１項に記載のメモリアクセス制御方式。
【請求項１４】
前記フリップフロップは、Ｄ形フリップフロップ回路で構成される、ことを特徴とする請求項１３に記載のメモリアクセス制御方式。
【請求項１５】
前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのＱ出力である、ことを特徴とする請求項１４に記載のメモリアクセス制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリアクセス制御方式に関し、特に、コンピュータ装置におけるメモリアクセスのアドレス変換を簡易な構成の回路で実現することを可能とする、メモリアクセス制御方式に関する。
【０００２】
【従来の技術】
一般に、コンピュータ装置におけるＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ：中央処理装置）は、メモリ上のプログラムに従って演算処理を行うようになっているが、電源投入やリセットボタンの押下等のリセット時には特定の処理を行うようになっており、例えばメモリ上の０番地のアドレスを送出して、そのアドレスに格納されたプログラムを実行するようになっている。そこで、通常、リセット時の処理を行うための初期起動プログラムをＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ：リードオンリメモリ）に格納し、かつ該ＲＯＭをアドレスの０番地に配置するようにしておく。
【０００３】
しかし、コンピュータ装置のシステム設計上、システムの応用処理プログラムを格納するＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ：ランダムアクセスメモリ）をアドレス０番地から配置して、初期起動プログラムを格納するＲＯＭを０番地以外の他のアドレスに配置したいといった要望も出されるようになってきている。
【０００４】
このような初期起動プログラムを格納するＲＯＭを０番地以外の他のアドレスに配置するシステムの一例として、特開平０２−３１０７４７号公報記載の「マイクロプロセッサ・システム」が知られている。
【０００５】
この公報では、図３に示すようなマイクロプロセッサ・システムが開示されている。すなわち、図３において、１はマイクロプロセッサであり、リセット信号が与えられた後の初期化処理の際は、リセット・ベクタ領域を示すアドレス「０」「２」「４」「６」を連続して送出し、初期化処理を行うものである。ＡＢはアドレス・バス、ＤＢはデータ・バス、ＣＢはコントロール・バスである。２は初期化処理を行うプログラムを格納するＲＯＭであり、０番地以外の番地に配置されている。３はデコーダであり、デコーダ３にはアドレス・バスＡＢ上の上位ビット群、コントロール・バスＣＢからリセット信号及びアドレス・ストローブ信号等が与えられ、ＲＯＭ２に対してＲＯＭ選択信号を与えるようになっている。また、この他に、図示しないＲＡＭ領域等が設置されている。
【０００６】
図３において、リセット信号が与えられると、マイクロプロセッサ１はリセット・ベクタを特定するアドレス信号を出力すると共に、このアドレス信号を有効とするアドレス・ストローブ信号を出力する。リセット信号により、デコーダ３内部の判定部は直ちにＲＯＭ選択信号を出力し、ＲＡＭに対するアクセスを禁止する。一方、デコーダ３内部のカウンタは予め分かっているアドレス発生回数即ちアドレス・ストローブ信号の発生回数を所定数カウントすると、判定部へカウント・アップ信号を出力し、これにより判定部は禁止していたＲＡＭに対するアクセスを解除する。すなわち、リセット信号が与えられると、デコーダ３はマイクロプロセッサ１が出力するアドレス信号（「０」、「２」、「４」、「６」）のアドレス変換を行ってＲＯＭ２を選択させ、アドレス・ストローブ信号を所定数である４回カウントすると、ＲＯＭ２内の初期化処理が終了したものとして、アドレス変換を中止し、これ以降、ＲＡＭがアクセスされるようになる。
【０００７】
また、リセット信号の投入により起動されるリセット処理プログラムを、任意のアドレスより実行できるようにする回路の一例として、特開昭６１−２７５９１９号公報記載の「リセット時送出アドレス変換回路」が知られている。
【０００８】
この公報では、図４に示すようなアドレス変換回路が開示されている。すなわち、図４において、１０はプロセッサ、１１はＲＯＭ、１２はシステムの初期設定処理を行うリセット処理プログラム、１３はアドレス変換指示回路、１４はマルチプレクサなどで構成されるアドレス変換回路である。
【０００９】
アドレス変換指示回路１３は、フリップフロップ等によるフラグであり、電源投入等によるリセット信号によって、セット状態となって、アドレス変換回路１４に変換指示信号を送る。アドレス変換回路１４は、このときプロセッサ１０の送出するアドレスを、所定のＲＯＭアドレスに加工する。この加工したアドレスが、リセット処理プログラム１２の先頭アドレスとなるようにしておけば、リセット処理プログラム１２が自動的に起動される。
【００１０】
リセット処理プログラム１２は、システムのイニシャライズ後、プログラムの命令により、アドレス変換指示回路１３をリセット状態とする。アドレス変換指示回路１３がリセット状態の場合には、アドレス変換回路１４は、プロセッサ１０の送出アドレスを加工せずに、そのままシステムアドレスとして送出するようになっている。このような構成とすることにより、ＲＯＭ１１を必ずしも０番地等に置く必要が無く、リセット処理プログラム１２を所望のアドレスから実行させることが出来るようになっている。
【００１１】
さらに、近年、ＲＩＳＣ（Ｒｅｄｕｃｅｄ　Ｉｎｓｔｒｕｃｔｉｏｎ　ＳｅｔＣｏｍｐｕｔｅｒ：縮小命令セットコンピュータ）プロセッサなどに見られるように、リセット時のスタートアドレスとＮＭＩ（Ｎｏｎ　Ｍａｓｋａｂｌｅ　Ｉｎｔｅｒｒｕｐｔ：ノンマスカブル割込み）発生時の割込みベクタアドレスが同一のプロセッサも使用されるようになってきている。
【００１２】
リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例について、図５、図６を参照して説明する。
【００１３】
図５は、リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例を示す図である。
【００１４】
図５において、ＣＰＵ２１は、例えば３２ビットのアドレス信号により最大４ＧＢ（Ｇｉｇａ・Ｂｙｔｅ：ギガバイト）のメモリ領域をアクセス可能な演算処理装置であり、リセット後は例えば「ＢＦＣ０００００Ｈ」（Ｈは１６進数であることを示す）番地から初期起動プログラムの命令を取り込み、初期起動処理を開始するようになっている。そのため初期起動プログラムが格納されたＲＯＭ２２は、アドレス「ＢＦＣ０００００Ｈ」番地からの領域に割り当てられている。また、システムの応用処理プログラムなどを格納するＲＡＭ２３は、アドレス「００００００００Ｈ」番地からの領域に割り当てられているものとしている。一方、ＮＭＩベクタアドレスも「ＢＦＣ０００００Ｈ」番地からの領域に存在しているため、ＮＭＩ処理を行うプログラムもＲＯＭ２２に配置される。そして、ＣＰＵ２１からメモリ（ＲＡＭ２３とＲＯＭ２２）をアクセスする場合には、ＣＰＵ２１が出力するアドレスをアドレスデコーダ２４でデコードしてメモリアクセスを行うようになっている。
【００１５】
従って、図５に示したシステムの初期起動プログラムを作成する場合には、図６に示すように、初期起動プログラムの処理が開始されると（図６のＳ１）、開始の直後で当該アドレス（「ＢＦＣ０００００Ｈ」番地）に分岐してきた要因が、初期起動かＮＭＩ発生かチェックすることが必要となり（Ｓ２）、要因がリセットによる初期起動であれば初期起動処理のプログラムに分岐し（Ｓ３）、要因がＮＭＩ発生であればＮＭＩ処理のプログラムに分岐する（Ｓ４）ようにプログラミングする必要がある。
【００１６】
【発明が解決しようとする課題】
図５、図６に例示したように、リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの初期起動プログラムを作成する際には、初期起動プログラムのスタートアドレスに分岐してきた要因が、初期起動かＮＭＩ発生かチェックすることが必須となり、また、ＮＭＩ処理のプログラムもＲＯＭ内に配置せざるを得ないため、ＮＭＩ処理の変更が困難になり、プログラム作成時に多大な制約を課すという問題点を有している。
【００１７】
この問題点を解決する一例として、リセット後の初期起動処理は従来例と同様ＲＯＭ領域に作成し、ＮＭＩ処理をＲＡＭ領域に作成可能なシステムを構築する方策を挙げることができる。このとき、プロセッサが出力するリセット時のスタートアドレス或いはＮＭＩ発生時の割込みベクタアドレスを、何らかの手段でＲＯＭ領域あるいはＲＡＭ領域をアドレシングするように変換することが必要となる。
【００１８】
プロセッサが出力するアドレスの変換技術に関しては、上述した特開平０２−３１０７４７号公報（図３）或いは特開昭６１−２７５９１９号公報（図４）に開示が成されているが、図３に示したデコーダ３或いは図４に示したアドレス変換回路１４は、構成要素となるゲートの数が多いため、ゲート遅延が生じ、処理性能が低下するという課題を有している。従って高速アクセスが要求されるシステムには向いておらず、また、構成要素となる部品点数が多いため、プリント基板への実装面積が大きくなってしまい小型化を要求されるシステムには不向きである。さらに、図３のデコーダ３は、ＲＡＭアクセス禁止の解除にマイクロプロセッサが出力するアドレス信号をカウントし、カウント数は既知であるとしているため、システムに使用するＣＰＵの種別や命令バイト数を回路設計上考慮しなければならない、という課題を有している。そのため、ＣＰＵや命令が変更される度に回路を見直す必要が生じ、汎用性に欠けるという課題を有している。図４のアドレス変換指示回路１３は、リセット信号によってセット状態となるようになっているが、アドレス変換指示回路１３をリセット状態に戻すためには、リセット処理プログラム１２内にリセット状態に戻すプログラム命令を記述しておくことが必須となっており、このことも初期起動プログラム作成時の大きな制約となってしまう、という課題を有している。
【００１９】
そこで本発明の目的は、リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスが同一である演算処理装置において、リセット時のスタートアドレスを任意のアドレスに配置することを可能とするアドレス変換回路を、簡易な構成の回路で実現する、メモリアクセス制御方式を提供することにある。
【００２０】
【課題を解決するための手段】
本発明のメモリアクセス制御方式は、リセット時のスタートアドレスとＮＭＩ（Ｎｏｎ　Ｍａｓｋａｂｌｅ　Ｉｎｔｅｒｒｕｐｔ：ノンマスカブル割込み）発生時の割込みベクタアドレスとが同一であるＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ：中央処理装置）と、前記ＣＰＵがアドレスデコーダを介してアクセス可能なメモリ装置と、前記ＣＰＵから出力されるアドレス信号の任意の複数のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に出力されるリセット信号を用いて、前記ＣＰＵが出力する前記リセット時のスタートアドレスの信号の任意の複数のビットをマスクし、前記リセット時のスタートアドレスを他の任意のアドレスに変更して前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記ＮＭＩ発生時の割込みベクタアドレスと異なるアドレスに設定する、ことを特徴とする。
【００２１】
また、前記アドレス変換手段は、前記ＣＰＵから出力されるメモリライト制御信号を用いて、前記リセット時に設定された前記マスク機能の解除を行い、それ以降は前記ＣＰＵから出力されるアドレス信号の前記任意の複数のビットのマスクを行わず、前記ＣＰＵから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする。
【００２２】
さらに、リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスとが同一であるＣＰＵと、前記ＣＰＵがアドレスデコーダを介してアクセス可能なメモリ装置と、前記ＣＰＵから出力されるアドレス信号の特定の複数（ｎ：ｎは正の整数）のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に、前記コンピュータシステムから出力されるリセット信号が入力されることにより前記マスク機能が設定され、前記ＣＰＵが出力する前記リセット時のスタートアドレスであるところの第１のアドレスの信号の前記特定の複数（ｎ）のビットをマスクして前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第１のアドレスとは異なる第２のアドレスに変換する、ことを特徴とする。
【００２３】
また、前記アドレス変換手段は、前記ＣＰＵが前記メモリ装置へデータを書込む際に生成するメモリライト制御信号の入力によって前記マスク機能を解除し、それ以降は前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットのマスクを行わず、前記ＣＰＵから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする。
【００２４】
さらに、前記メモリ装置の前記第１のアドレスにＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ：ランダムアクセスメモリ）が実装され、前記メモリ装置の前記第２のアドレスにＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ：リードオンリメモリ）が実装される、ことを特徴とする。
【００２５】
また、前記ＲＡＭにＮＭＩ発生時の処理を実行するプログラムが記述され、前記ＲＯＭにリセット時の処理を実行するプログラムが記述される、ことを特徴とする。
【００２６】
さらに、前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットとの論理和を取る複数（ｎ）のＯＲ回路と、から構成され、前記複数（ｎ）のＯＲ回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする。
【００２７】
また、前記フリップフロップは、Ｄ形フリップフロップ回路で構成される、ことを特徴とする。
【００２８】
さらに、前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのＱバー出力である、ことを特徴とする。
【００２９】
また、前記フリップフロップの前記リセット信号入力端子に前記リセット信号が入力されると、前記フリップフロップはリセットされて前記Ｑバー出力が論理「１」となり、前記複数（ｎ）のＯＲ回路の一方の入力が論理「１」となるため、前記複数（ｎ）のＯＲ回路の他方の入力が如何なるビット値であっても前記複数（ｎ）のＯＲ回路の出力が論理「１」となり、従って、前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットがマスクされるようになり、前記アドレス変換手段の前記マスク機能が設定されるようになる、ことを特徴とする。
【００３０】
さらに、前記フリップフロップの前記クロック入力端子に前記メモリライト制御信号が入力されると、前記フリップフロップの前記Ｑバー出力が論理「０」となり、前記複数（ｎ）のＯＲ回路の一方の入力が論理「０」となるため、前記複数（ｎ）のＯＲ回路の他方の入力は変換されること無く前記複数（ｎ）のＯＲ回路の出力となり、従って、前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットはマスクされず、前記アドレス変換手段の前記マスク機能が解除されるようになる、ことを特徴とする。
【００３１】
また、前記コンピュータシステムは、ＲＯＭ電源制御回路を更に備え、前記ＲＯＭ電源制御回路は、前記ＣＰＵによる処理動作が前記ＲＯＭに記述されている前記リセット時の処理を実行するプログラムの実行を完了した後に、前記ＲＯＭに供給されている電源のオフを行う制御を実行する、ことを特徴とする。
【００３２】
さらに、前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記ＣＰＵから出力されるアドレス信号の前記特定の複数（ｎ）のビットとの論理積を取る複数（ｎ）のＡＮＤ回路と、から構成され、前記複数（ｎ）のＡＮＤ回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする。
【００３３】
また、前記フリップフロップは、Ｄ形フリップフロップ回路で構成される、ことを特徴とする。
【００３４】
さらに、前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのＱ出力である、ことを特徴とする。
【００３５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００３６】
図１は、本発明のメモリアクセス制御方式の一実施形態を示すブロック図である。
【００３７】
図１に示す本実施の形態は、コンピュータシステム９００に適用されるものであり、コンピュータシステム９００は、演算処理装置であるところのＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ：中央処理装置）１００と、記憶装置を構成するＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ：リードオンリメモリ）４００、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ：ランダムアクセスメモリ）５１０、ＲＡＭ５２０と、ＣＰＵ１００から出力されるアドレス信号１３０をデコードして記憶装置のアドレス選択を行うアドレスデコーダ３００と、ＣＰＵ１００から出力されるアドレス信号１３０を或る条件下でマスクする処理を行うアドレス変換回路２００と、ＲＯＭ４００の電源のオン・オフの制御を行うＲＯＭ電源制御回路６００と、から構成されている。
【００３８】
ＣＰＵ１００は、３２ビットのアドレス信号により最大４ＧＢ（Ｇｉｇａ・Ｂｙｔｅ：ギガバイト）の記憶装置領域をアクセス可能な演算処理装置である。そして、リセット時のスタートアドレスとＮＭＩ（Ｎｏｎ　Ｍａｓｋａｂｌｅ　Ｉｎｔｅｒｒｕｐｔ：ノンマスカブル割込み）発生時の割込みベクタアドレスとが同一で、そのアドレスは「ＢＦＣ０００００Ｈ」（Ｈは１６進数であることを示す）番地であるものとする。なお、前記の番地は、本実施形態の説明の容易化のために一例として設定した番地であり、他の如何様な番地であっても本実施形態を適用することが可能である。
【００３９】
また、ＣＰＵ１００の出力する３２ビットのアドレス信号１３０の内、ビット２０（図１中で１３１として示す）とビット２１（図１中で１３２として示す）は、それぞれ、後述のアドレス変換回路２００のＯＲ（ＯＲ：オア）回路２３１（の端子２３１−１）とＯＲ回路２３２（の端子２３２−１）とに入力されるよう構成されている。アドレス信号１３０の他の３０ビットは、直接アドレスデコーダ３００に入力される。なお、前記のビット２０、ビット２１についても、本実施形態の説明の容易化のために一例として挙げたものであり、他の如何様なビットであっても本実施形態を適用することが可能である。
【００４０】
ＲＯＭ４００は、記憶装置の「ＢＦＦ０００００Ｈ」番地以降に実装されており、ＲＯＭ４００には、リセット時の処理（すなわち初期起動時の処理）を実行するプログラムが記述されている。
【００４１】
ＲＡＭ５１０は、記憶装置の「ＢＦＣ０００００Ｈ」番地以降に実装されており、ＲＡＭ５１０には、ＮＭＩ発生時の処理を実行するプログラムが記述されている。
【００４２】
ＲＡＭ５２０は、記憶装置の「００００００００Ｈ」番地以降に実装されており、ＲＡＭ５２０には、本実施形態を適用したコンピュータシステム９００の応用処理プログラムなどが記述されている。
【００４３】
アドレス変換回路２００は、Ｄ形フリップフロップ回路で構成されるＦ／Ｆ（Ｆｌｉｐ−Ｆｌｏｐ：フリップフロップ）２１０と、ＯＲ回路２３１とＯＲ回路２３２とから構成されている。
【００４４】
Ｆ／Ｆ２１０のリセット信号入力端子（ＣＬＲ）には、本実施形態を適用したコンピュータシステム９００のリセット信号１１０が入力される。Ｆ／Ｆ２１０のクロック入力端子（ＣＬＫ）には、ＣＰＵ１００の出力するメモリライト制御信号１２０が入力される。メモリライト制御信号１２０は、ＣＰＵ１００からＲＡＭ５１０或いはＲＡＭ５２０に対しデータを書込むためのライトアクセス要求が発生した場合に出力される信号であり、ＣＰＵ１００がＲＯＭ４００をアクセスする際には出力されることの無い信号である。Ｆ／Ｆ２１０のデータ入力端子（Ｄ）はＶｃｃ（＋５Ｖ）に接続されている。Ｆ／Ｆ２１０のＱバー出力（Ｑバー）は、ＯＲ回路２３１（の端子２３１−２）とＯＲ回路２３２（の端子２３２−２）に入力され、ＯＲ回路２３１の他方の入力（端子２３１−１）は上述のアドレス信号１３０のビット２０であり、ＯＲ回路２３２の他方の入力（端子２３２−１）は上述のアドレス信号１３０のビット２１である。なお、ＯＲ回路２３１とＯＲ回路２３２の出力は、それぞれアドレスデコーダ３００に入力されるように構成されている。
【００４５】
次に、図２を参照して、本実施形態の動作について詳細に説明する。
【００４６】
図２は、本実施形態の動作を模式的に示す図である。なお、図２において図１に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。以下、本実施形態を適用したコンピュータシステム９００のリセット後から順を追って動作を説明する。
【００４７】
コンピュータシステム９００が電源投入やリセットボタンの押下等によりリセットされると、ＣＰＵ１００はリセット時のスタートアドレスとして、「ＢＦＣ０００００Ｈ」をアドレス信号１３０として出力する。この様子を図２の（イ）に示す。すなわち、図２の（イ）は、リセット時のスタートアドレスとして、アドレス信号１３０が「ＢＦＣ０００００Ｈ」となっていることを示しており、アドレス信号１３０の内のビット２０及びビット２１は共に「０」である。
【００４８】
コンピュータシステム９００がリセットされた時には、同時に、リセット信号１１０が図１のアドレス変換回路２００のＦ／Ｆ２１０のリセット信号入力端子（ＣＬＲ）に入力されるため、Ｆ／Ｆ２１０がリセットされ、Ｆ／Ｆ２１０のＱバー出力（Ｑバー）は論理「１」となる。そのため、ＯＲ回路２３１及びＯＲ回路２３２の片方の入力（端子２３１−２及び端子２３２−２）は、共に論理「１」となる。従って、ＯＲ回路２３１及びＯＲ回路２３２の他方の入力（端子２３１−１及び端子２３２−１）の如何にかかわらず、ＯＲ回路２３１及びＯＲ回路２３２の出力は、共に論理「１」となるため、アドレスデコーダ３００へ入力されるビット２０とビット２１は、共に「１」へと変換されたビット値が入力されることとなる。この様子を図２の（ロ）に示す。すなわち、図２の（ロ）は、アドレス変換回路２００が、図２の（イ）に示したビット２０とビット２１をマスクして、元は共に「０」であったビット値を共に「１」に変換した様子を示している。
【００４９】
アドレス変換回路２００が上述の動作を行うことにより、アドレスデコーダ３００へ入力されるアドレス信号は、結果として「ＢＦＦ０００００Ｈ」となる。この様子を図２の（ハ）に示す。すなわち、図２の（ハ）は、アドレスデコーダ３００へ入力されるアドレス信号を示しており、図２の（ロ）に示したように、アドレス変換回路２００がビット２０とビット２１を共に「１」に変換しているため、その結果、アドレスデコーダ３００へ入力されるアドレス信号が「ＢＦＦ０００００Ｈ」となったことを示している。
【００５０】
以上の動作により、ＣＰＵ１００が当初出力したアドレス信号すなわち「ＢＦＣ０００００Ｈ」は、アドレス変換回路２００でビット２０とビット２１がマスクされて、アドレスデコーダ３００への入力時には「ＢＦＦ０００００Ｈ」となる。そのため、ＣＰＵ１００が当初出力したアドレスに配置されたＲＡＭ５１０は選択されず、アドレスデコーダ３００へ入力されるアドレスに配置されたＲＯＭ４００が選択されることとなる。ＲＯＭ４００が選択されることにより、ＣＰＵ１００はＲＯＭ４００の最初のアドレス「ＢＦＦ０００００Ｈ」からプログラムの命令をフェッチできるようになる。
【００５１】
ＲＯＭ４００が選択されると、ＲＯＭ４００に記述されているリセット時の処理プログラムの実行が始まるが、該処理プログラムには、ＲＯＭ４００の実アドレスへ分岐する命令を記述しておく。この命令をＣＰＵ１００が実行することにより、ＣＰＵ１００が出力するアドレス値とアドレスデコーダ３００が出力するアドレスが一致するようになる。例えば、「ＢＦＦ０００００Ｈ」番地に「ＢＦＦ００００１Ｈ」番地への分岐命令を記述しておけば、ＣＰＵ１００はアドレス信号１３０として「ＢＦＦ００００１Ｈ」を出力する。このとき、アドレス信号１３０はアドレス変換回路２００でマスクされるが、アドレス信号１３０のビット２０とビット２１は共に「１」であるため、マスク後もその値が変わることは無く、従って、ＣＰＵ１００が出力するアドレス信号１３０とアドレスデコーダ３００が出力するアドレスは一致するものとなる。
【００５２】
ＲＯＭ４００のリセット時の処理プログラムの実行が終了すると、上述のアドレス変換回路２００によるアドレス信号のマスク機能を解除することが必要となる。アドレス変換回路２００のアドレス信号のマスク機能の解除は、ＣＰＵ１００が出力するメモリライト制御信号１２０を利用する。
【００５３】
コンピュータシステム９００の有するプログラムが、ＲＡＭ５２０或いはＲＡＭ５１０へのデータ書込み要求であるところのライトアクセス要求を発生すると、ＣＰＵ１００はその書込みアドレス信号を出力すると共に、メモリライト制御信号１２０を出力する。
【００５４】
メモリライト制御信号１２０は、アドレス変換回路２００のＦ／Ｆ２１０のクロック入力端子（ＣＬＫ）に入力される。クロック入力端子（ＣＬＫ）にメモリライト制御信号１２０が入力されると、Ｆ／Ｆ２１０のデータ入力端子（Ｄ）はＶｃｃに接続されているため、Ｆ／Ｆ２１０のＱバー出力（Ｑバー）は論理「０」となる。そのため、ＯＲ回路２３１及びＯＲ回路２３２の片方の入力（端子２３１−２及び端子２３２−２）は、共に論理「０」となる。従って、ＯＲ回路２３１及びＯＲ回路２３２の他方の入力（端子２３１−１及び端子２３２−１）は何の変換も行われず、そのままＯＲ回路２３１及びＯＲ回路２３２の出力となってアドレスデコーダ３００に入力されることとなる。その結果、アドレスデコーダ３００に対しては、ＣＰＵ１００が出力したアドレス信号１３０がそのまま入力されるようになり、アドレス変換回路２００のマスク機能は解除されたものとなる。
【００５５】
従って、これ以降、例えばＮＭＩが発生したものとすると、ＣＰＵ１００はＮＭＩ発生時の割込みベクタアドレスとして「ＢＦＣ０００００Ｈ」をアドレス信号１３０として出力する。該アドレス信号１３０はアドレス変換回路２００のマスク機能が解除されているため、何の変換も行われずそのままアドレスデコーダ３００に入力される。そのため、ＣＰＵ１００が出力したアドレスに配置されたＲＡＭ５１０が選択されることとなり、ＲＡＭ５１０に記述されているＮＭＩ発生時の処理プログラムが実行され、ＮＭＩ処理を行うことが可能となる。
【００５６】
尚、本実施形態においては、リセット時のスタートアドレスをＲＯＭ４００とし、ＮＭＩ発生時の割込みベクタアドレスをＲＡＭ５１０として異なるものとしたことで、ＲＯＭ４００はリセット時だけに使用されることとなる。よって、ＣＰＵ１００による処理が、ＲＯＭ４００に記述されているリセット時の処理を実行するプログラムの実行を完了してＲＡＭ５２０或いはＲＡＭ５１０に移行した後には、ＲＯＭ４００を使用する必要がなくなる。そこで、この時、ＲＯＭ電源制御回路６００の制御により、ＲＯＭ４００に供給されている電源をオフにするものとする。
【００５７】
以上、図１、図２により本実施形態の構成と動作につき詳細に説明した。本実施形態によれば、リセット時の処理プログラムをＲＯＭ４００上に作成し、ＮＭＩ発生時の処理プログラムをＲＡＭ５１０上に作成することが可能となるため、一旦作成したＮＭＩ処理プログラムの変更が必要となった場合であっても、ＲＡＭ５１０上で容易にＮＭＩ処理プログラムの更新を行うことが可能となる。
【００５８】
なお、図１に示した構成例は、アドレス変換回路２００により、アドレス信号１３０のアドレスビット値を「０」から「１」へ変換したものである。しかし、アドレス変換回路２００のＦ／Ｆ２１０のＱ出力（Ｑバー出力と逆の論理値を出力する）とＡＮＤ（ＡＮＤ：アンド）回路を用いれば、アドレス信号１３０のアドレスビット値を「１」から「０」へ変換することが可能となる。従って、ＯＲ回路とＡＮＤ回路を変換したいアドレスビットに接続することで、システムごとに異なる任意の開始アドレスを生成することが可能となる。
【００５９】
また、図１に示した構成例においては、３２ビットのアドレス信号でアドレシングを行うＣＰＵ１００を使用するものとして説明を行ったが、上述の本実施形態は、他のビット数のアドレス信号（例えば６４ビットや１６ビットなど）でアドレシングを行うＣＰＵに対しても、そのまま適用することが可能である。
【００６０】
【発明の効果】
以上説明したように、本発明のメモリアクセス制御方式は、リセット時の処理プログラムを記述したＲＯＭのメモリ配置を、ＣＰＵが出力するリセット時のスタートアドレスとは異なる任意のアドレスに配置することができ、従って、ＮＭＩ発生時の割込みベクタアドレスをＲＡＭに配置することができるので、リセット時の処理プログラムとＮＭＩ発生時の処理プログラムとを、別々に作成することが可能となる、という効果を有している。
【００６１】
また、アドレス変換回路をフリップフロップ１個とアドレスを変換したいビット数のＯＲ回路（或いはＡＮＤ回路）で構成できるので、回路をシンプルかつ小規模にて構成可能となり、回路をプリント基板に実装する上での問題が無いという効果を有すると共に、信頼性の低下を回避可能となるという効果を有している。
【００６２】
さらに、アドレス変換回路のマスク機能の解除には、ＣＰＵが出力するメモリライト制御信号を用いているため、特別の信号を生成する必要が無く、シンプルな回路を構成可能となる、という効果を有している。
【００６３】
またさらに、ＲＯＭはシステムの初期起動時にのみ使用されることとなるため、システムの起動完了後はＲＯＭが不要となってＲＯＭへの電源供給をＯＦＦすることが可能となり、消費電力が削減できる、という効果を有している。
【図面の簡単な説明】
【図１】本発明のメモリアクセス制御方式の一実施形態を示すブロック図である。
【図２】本実施形態の動作を模式的に示す図である。
【図３】従来のマイクロプロセッサ・システムの一例を示す図である。
【図４】従来のアドレス変換回路の一例を示す図である。
【図５】リセット時のスタートアドレスとＮＭＩ発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例を示す図である。
【図６】図５に示したシステムの初期起動プログラムの一例を示す図である。
【符号の説明】
１　　マイクロプロセッサ
２　　ＲＯＭ
３　　デコーダ
１０　　プロセッサ
１１　　ＲＯＭ
１２　　リセット処理プログラム
１３　　アドレス変換指示回路
１４　　アドレス変換回路
２１　　ＣＰＵ
２２　　ＲＯＭ
２３　　ＲＡＭ
２４　　アドレスデコーダ
１００　　ＣＰＵ
１１０　　リセット信号
１２０　　メモリライト制御信号
１３０　　アドレス信号
２００　　アドレス変換回路
２１０　　Ｆ／Ｆ
２３１　　ＯＲ回路
２３２　　ＯＲ回路
３００　　アドレスデコーダ
４００　　ＲＯＭ
５１０　　ＲＡＭ
５２０　　ＲＡＭ
６００　　ＲＯＭ電源制御回路
９００　　コンピュータシステム
【図１】
2004070461.tif 000003
【図２】
2004070461.tif 000004
【図３】
2004070461.tif 000005
【図４】
2004070461.tif 000006
【図５】
2004070461.tif 000007
【図６】
2004070461.tif 000008