JP2004070461A - メモリアクセス制御方式 - Google Patents
メモリアクセス制御方式 Download PDFInfo
- Publication number
- JP2004070461A JP2004070461A JP2002225567A JP2002225567A JP2004070461A JP 2004070461 A JP2004070461 A JP 2004070461A JP 2002225567 A JP2002225567 A JP 2002225567A JP 2002225567 A JP2002225567 A JP 2002225567A JP 2004070461 A JP2004070461 A JP 2004070461A
- Authority
- JP
- Japan
- Prior art keywords
- address
- signal
- reset
- output
- cpu
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一であるCPUにおいて、リセット時のスタートアドレスを任意のアドレスに配置することを可能とするアドレス変換回路を、簡易な構成の回路で実現する、メモリアクセス制御方式を提供する。
【解決手段】CPUとメモリ装置とアドレス変換回路とを備えたコンピュータシステムであって、アドレス変換回路はコンピュータシステムのリセット時に、リセット信号が入力されることによりマスク機能が設定され、CPUが出力するリセット時のスタートアドレスであるところの第1のアドレスの信号の特定の複数(n)のビットをマスクしてアドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第1のアドレスとは異なる第2のアドレスに変換する。
【選択図】 図1
【解決手段】CPUとメモリ装置とアドレス変換回路とを備えたコンピュータシステムであって、アドレス変換回路はコンピュータシステムのリセット時に、リセット信号が入力されることによりマスク機能が設定され、CPUが出力するリセット時のスタートアドレスであるところの第1のアドレスの信号の特定の複数(n)のビットをマスクしてアドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第1のアドレスとは異なる第2のアドレスに変換する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はメモリアクセス制御方式に関し、特に、コンピュータ装置におけるメモリアクセスのアドレス変換を簡易な構成の回路で実現することを可能とする、メモリアクセス制御方式に関する。
【0002】
【従来の技術】
一般に、コンピュータ装置におけるCPU(Central Processing Unit:中央処理装置)は、メモリ上のプログラムに従って演算処理を行うようになっているが、電源投入やリセットボタンの押下等のリセット時には特定の処理を行うようになっており、例えばメモリ上の0番地のアドレスを送出して、そのアドレスに格納されたプログラムを実行するようになっている。そこで、通常、リセット時の処理を行うための初期起動プログラムをROM(Read Only Memory:リードオンリメモリ)に格納し、かつ該ROMをアドレスの0番地に配置するようにしておく。
【0003】
しかし、コンピュータ装置のシステム設計上、システムの応用処理プログラムを格納するRAM(Random Access Memory:ランダムアクセスメモリ)をアドレス0番地から配置して、初期起動プログラムを格納するROMを0番地以外の他のアドレスに配置したいといった要望も出されるようになってきている。
【0004】
このような初期起動プログラムを格納するROMを0番地以外の他のアドレスに配置するシステムの一例として、特開平02−310747号公報記載の「マイクロプロセッサ・システム」が知られている。
【0005】
この公報では、図3に示すようなマイクロプロセッサ・システムが開示されている。すなわち、図3において、1はマイクロプロセッサであり、リセット信号が与えられた後の初期化処理の際は、リセット・ベクタ領域を示すアドレス「0」「2」「4」「6」を連続して送出し、初期化処理を行うものである。ABはアドレス・バス、DBはデータ・バス、CBはコントロール・バスである。2は初期化処理を行うプログラムを格納するROMであり、0番地以外の番地に配置されている。3はデコーダであり、デコーダ3にはアドレス・バスAB上の上位ビット群、コントロール・バスCBからリセット信号及びアドレス・ストローブ信号等が与えられ、ROM2に対してROM選択信号を与えるようになっている。また、この他に、図示しないRAM領域等が設置されている。
【0006】
図3において、リセット信号が与えられると、マイクロプロセッサ1はリセット・ベクタを特定するアドレス信号を出力すると共に、このアドレス信号を有効とするアドレス・ストローブ信号を出力する。リセット信号により、デコーダ3内部の判定部は直ちにROM選択信号を出力し、RAMに対するアクセスを禁止する。一方、デコーダ3内部のカウンタは予め分かっているアドレス発生回数即ちアドレス・ストローブ信号の発生回数を所定数カウントすると、判定部へカウント・アップ信号を出力し、これにより判定部は禁止していたRAMに対するアクセスを解除する。すなわち、リセット信号が与えられると、デコーダ3はマイクロプロセッサ1が出力するアドレス信号(「0」、「2」、「4」、「6」)のアドレス変換を行ってROM2を選択させ、アドレス・ストローブ信号を所定数である4回カウントすると、ROM2内の初期化処理が終了したものとして、アドレス変換を中止し、これ以降、RAMがアクセスされるようになる。
【0007】
また、リセット信号の投入により起動されるリセット処理プログラムを、任意のアドレスより実行できるようにする回路の一例として、特開昭61−275919号公報記載の「リセット時送出アドレス変換回路」が知られている。
【0008】
この公報では、図4に示すようなアドレス変換回路が開示されている。すなわち、図4において、10はプロセッサ、11はROM、12はシステムの初期設定処理を行うリセット処理プログラム、13はアドレス変換指示回路、14はマルチプレクサなどで構成されるアドレス変換回路である。
【0009】
アドレス変換指示回路13は、フリップフロップ等によるフラグであり、電源投入等によるリセット信号によって、セット状態となって、アドレス変換回路14に変換指示信号を送る。アドレス変換回路14は、このときプロセッサ10の送出するアドレスを、所定のROMアドレスに加工する。この加工したアドレスが、リセット処理プログラム12の先頭アドレスとなるようにしておけば、リセット処理プログラム12が自動的に起動される。
【0010】
リセット処理プログラム12は、システムのイニシャライズ後、プログラムの命令により、アドレス変換指示回路13をリセット状態とする。アドレス変換指示回路13がリセット状態の場合には、アドレス変換回路14は、プロセッサ10の送出アドレスを加工せずに、そのままシステムアドレスとして送出するようになっている。このような構成とすることにより、ROM11を必ずしも0番地等に置く必要が無く、リセット処理プログラム12を所望のアドレスから実行させることが出来るようになっている。
【0011】
さらに、近年、RISC(Reduced Instruction SetComputer:縮小命令セットコンピュータ)プロセッサなどに見られるように、リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスが同一のプロセッサも使用されるようになってきている。
【0012】
リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例について、図5、図6を参照して説明する。
【0013】
図5は、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例を示す図である。
【0014】
図5において、CPU21は、例えば32ビットのアドレス信号により最大4GB(Giga・Byte:ギガバイト)のメモリ領域をアクセス可能な演算処理装置であり、リセット後は例えば「BFC00000H」(Hは16進数であることを示す)番地から初期起動プログラムの命令を取り込み、初期起動処理を開始するようになっている。そのため初期起動プログラムが格納されたROM22は、アドレス「BFC00000H」番地からの領域に割り当てられている。また、システムの応用処理プログラムなどを格納するRAM23は、アドレス「00000000H」番地からの領域に割り当てられているものとしている。一方、NMIベクタアドレスも「BFC00000H」番地からの領域に存在しているため、NMI処理を行うプログラムもROM22に配置される。そして、CPU21からメモリ(RAM23とROM22)をアクセスする場合には、CPU21が出力するアドレスをアドレスデコーダ24でデコードしてメモリアクセスを行うようになっている。
【0015】
従って、図5に示したシステムの初期起動プログラムを作成する場合には、図6に示すように、初期起動プログラムの処理が開始されると(図6のS1)、開始の直後で当該アドレス(「BFC00000H」番地)に分岐してきた要因が、初期起動かNMI発生かチェックすることが必要となり(S2)、要因がリセットによる初期起動であれば初期起動処理のプログラムに分岐し(S3)、要因がNMI発生であればNMI処理のプログラムに分岐する(S4)ようにプログラミングする必要がある。
【0016】
【発明が解決しようとする課題】
図5、図6に例示したように、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの初期起動プログラムを作成する際には、初期起動プログラムのスタートアドレスに分岐してきた要因が、初期起動かNMI発生かチェックすることが必須となり、また、NMI処理のプログラムもROM内に配置せざるを得ないため、NMI処理の変更が困難になり、プログラム作成時に多大な制約を課すという問題点を有している。
【0017】
この問題点を解決する一例として、リセット後の初期起動処理は従来例と同様ROM領域に作成し、NMI処理をRAM領域に作成可能なシステムを構築する方策を挙げることができる。このとき、プロセッサが出力するリセット時のスタートアドレス或いはNMI発生時の割込みベクタアドレスを、何らかの手段でROM領域あるいはRAM領域をアドレシングするように変換することが必要となる。
【0018】
プロセッサが出力するアドレスの変換技術に関しては、上述した特開平02−310747号公報(図3)或いは特開昭61−275919号公報(図4)に開示が成されているが、図3に示したデコーダ3或いは図4に示したアドレス変換回路14は、構成要素となるゲートの数が多いため、ゲート遅延が生じ、処理性能が低下するという課題を有している。従って高速アクセスが要求されるシステムには向いておらず、また、構成要素となる部品点数が多いため、プリント基板への実装面積が大きくなってしまい小型化を要求されるシステムには不向きである。さらに、図3のデコーダ3は、RAMアクセス禁止の解除にマイクロプロセッサが出力するアドレス信号をカウントし、カウント数は既知であるとしているため、システムに使用するCPUの種別や命令バイト数を回路設計上考慮しなければならない、という課題を有している。そのため、CPUや命令が変更される度に回路を見直す必要が生じ、汎用性に欠けるという課題を有している。図4のアドレス変換指示回路13は、リセット信号によってセット状態となるようになっているが、アドレス変換指示回路13をリセット状態に戻すためには、リセット処理プログラム12内にリセット状態に戻すプログラム命令を記述しておくことが必須となっており、このことも初期起動プログラム作成時の大きな制約となってしまう、という課題を有している。
【0019】
そこで本発明の目的は、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一である演算処理装置において、リセット時のスタートアドレスを任意のアドレスに配置することを可能とするアドレス変換回路を、簡易な構成の回路で実現する、メモリアクセス制御方式を提供することにある。
【0020】
【課題を解決するための手段】
本発明のメモリアクセス制御方式は、リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスとが同一であるCPU(Central Processing Unit:中央処理装置)と、前記CPUがアドレスデコーダを介してアクセス可能なメモリ装置と、前記CPUから出力されるアドレス信号の任意の複数のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に出力されるリセット信号を用いて、前記CPUが出力する前記リセット時のスタートアドレスの信号の任意の複数のビットをマスクし、前記リセット時のスタートアドレスを他の任意のアドレスに変更して前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記NMI発生時の割込みベクタアドレスと異なるアドレスに設定する、ことを特徴とする。
【0021】
また、前記アドレス変換手段は、前記CPUから出力されるメモリライト制御信号を用いて、前記リセット時に設定された前記マスク機能の解除を行い、それ以降は前記CPUから出力されるアドレス信号の前記任意の複数のビットのマスクを行わず、前記CPUから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする。
【0022】
さらに、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスとが同一であるCPUと、前記CPUがアドレスデコーダを介してアクセス可能なメモリ装置と、前記CPUから出力されるアドレス信号の特定の複数(n:nは正の整数)のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に、前記コンピュータシステムから出力されるリセット信号が入力されることにより前記マスク機能が設定され、前記CPUが出力する前記リセット時のスタートアドレスであるところの第1のアドレスの信号の前記特定の複数(n)のビットをマスクして前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第1のアドレスとは異なる第2のアドレスに変換する、ことを特徴とする。
【0023】
また、前記アドレス変換手段は、前記CPUが前記メモリ装置へデータを書込む際に生成するメモリライト制御信号の入力によって前記マスク機能を解除し、それ以降は前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットのマスクを行わず、前記CPUから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする。
【0024】
さらに、前記メモリ装置の前記第1のアドレスにRAM(Random Access Memory:ランダムアクセスメモリ)が実装され、前記メモリ装置の前記第2のアドレスにROM(Read Only Memory:リードオンリメモリ)が実装される、ことを特徴とする。
【0025】
また、前記RAMにNMI発生時の処理を実行するプログラムが記述され、前記ROMにリセット時の処理を実行するプログラムが記述される、ことを特徴とする。
【0026】
さらに、前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットとの論理和を取る複数(n)のOR回路と、から構成され、前記複数(n)のOR回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする。
【0027】
また、前記フリップフロップは、D形フリップフロップ回路で構成される、ことを特徴とする。
【0028】
さらに、前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのQバー出力である、ことを特徴とする。
【0029】
また、前記フリップフロップの前記リセット信号入力端子に前記リセット信号が入力されると、前記フリップフロップはリセットされて前記Qバー出力が論理「1」となり、前記複数(n)のOR回路の一方の入力が論理「1」となるため、前記複数(n)のOR回路の他方の入力が如何なるビット値であっても前記複数(n)のOR回路の出力が論理「1」となり、従って、前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットがマスクされるようになり、前記アドレス変換手段の前記マスク機能が設定されるようになる、ことを特徴とする。
【0030】
さらに、前記フリップフロップの前記クロック入力端子に前記メモリライト制御信号が入力されると、前記フリップフロップの前記Qバー出力が論理「0」となり、前記複数(n)のOR回路の一方の入力が論理「0」となるため、前記複数(n)のOR回路の他方の入力は変換されること無く前記複数(n)のOR回路の出力となり、従って、前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットはマスクされず、前記アドレス変換手段の前記マスク機能が解除されるようになる、ことを特徴とする。
【0031】
また、前記コンピュータシステムは、ROM電源制御回路を更に備え、前記ROM電源制御回路は、前記CPUによる処理動作が前記ROMに記述されている前記リセット時の処理を実行するプログラムの実行を完了した後に、前記ROMに供給されている電源のオフを行う制御を実行する、ことを特徴とする。
【0032】
さらに、前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットとの論理積を取る複数(n)のAND回路と、から構成され、前記複数(n)のAND回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする。
【0033】
また、前記フリップフロップは、D形フリップフロップ回路で構成される、ことを特徴とする。
【0034】
さらに、前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのQ出力である、ことを特徴とする。
【0035】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0036】
図1は、本発明のメモリアクセス制御方式の一実施形態を示すブロック図である。
【0037】
図1に示す本実施の形態は、コンピュータシステム900に適用されるものであり、コンピュータシステム900は、演算処理装置であるところのCPU(Central Processing Unit:中央処理装置)100と、記憶装置を構成するROM(Read Only Memory:リードオンリメモリ)400、RAM(Random Access Memory:ランダムアクセスメモリ)510、RAM520と、CPU100から出力されるアドレス信号130をデコードして記憶装置のアドレス選択を行うアドレスデコーダ300と、CPU100から出力されるアドレス信号130を或る条件下でマスクする処理を行うアドレス変換回路200と、ROM400の電源のオン・オフの制御を行うROM電源制御回路600と、から構成されている。
【0038】
CPU100は、32ビットのアドレス信号により最大4GB(Giga・Byte:ギガバイト)の記憶装置領域をアクセス可能な演算処理装置である。そして、リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスとが同一で、そのアドレスは「BFC00000H」(Hは16進数であることを示す)番地であるものとする。なお、前記の番地は、本実施形態の説明の容易化のために一例として設定した番地であり、他の如何様な番地であっても本実施形態を適用することが可能である。
【0039】
また、CPU100の出力する32ビットのアドレス信号130の内、ビット20(図1中で131として示す)とビット21(図1中で132として示す)は、それぞれ、後述のアドレス変換回路200のOR(OR:オア)回路231(の端子231−1)とOR回路232(の端子232−1)とに入力されるよう構成されている。アドレス信号130の他の30ビットは、直接アドレスデコーダ300に入力される。なお、前記のビット20、ビット21についても、本実施形態の説明の容易化のために一例として挙げたものであり、他の如何様なビットであっても本実施形態を適用することが可能である。
【0040】
ROM400は、記憶装置の「BFF00000H」番地以降に実装されており、ROM400には、リセット時の処理(すなわち初期起動時の処理)を実行するプログラムが記述されている。
【0041】
RAM510は、記憶装置の「BFC00000H」番地以降に実装されており、RAM510には、NMI発生時の処理を実行するプログラムが記述されている。
【0042】
RAM520は、記憶装置の「00000000H」番地以降に実装されており、RAM520には、本実施形態を適用したコンピュータシステム900の応用処理プログラムなどが記述されている。
【0043】
アドレス変換回路200は、D形フリップフロップ回路で構成されるF/F(Flip−Flop:フリップフロップ)210と、OR回路231とOR回路232とから構成されている。
【0044】
F/F210のリセット信号入力端子(CLR)には、本実施形態を適用したコンピュータシステム900のリセット信号110が入力される。F/F210のクロック入力端子(CLK)には、CPU100の出力するメモリライト制御信号120が入力される。メモリライト制御信号120は、CPU100からRAM510或いはRAM520に対しデータを書込むためのライトアクセス要求が発生した場合に出力される信号であり、CPU100がROM400をアクセスする際には出力されることの無い信号である。F/F210のデータ入力端子(D)はVcc(+5V)に接続されている。F/F210のQバー出力(Qバー)は、OR回路231(の端子231−2)とOR回路232(の端子232−2)に入力され、OR回路231の他方の入力(端子231−1)は上述のアドレス信号130のビット20であり、OR回路232の他方の入力(端子232−1)は上述のアドレス信号130のビット21である。なお、OR回路231とOR回路232の出力は、それぞれアドレスデコーダ300に入力されるように構成されている。
【0045】
次に、図2を参照して、本実施形態の動作について詳細に説明する。
【0046】
図2は、本実施形態の動作を模式的に示す図である。なお、図2において図1に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。以下、本実施形態を適用したコンピュータシステム900のリセット後から順を追って動作を説明する。
【0047】
コンピュータシステム900が電源投入やリセットボタンの押下等によりリセットされると、CPU100はリセット時のスタートアドレスとして、「BFC00000H」をアドレス信号130として出力する。この様子を図2の(イ)に示す。すなわち、図2の(イ)は、リセット時のスタートアドレスとして、アドレス信号130が「BFC00000H」となっていることを示しており、アドレス信号130の内のビット20及びビット21は共に「0」である。
【0048】
コンピュータシステム900がリセットされた時には、同時に、リセット信号110が図1のアドレス変換回路200のF/F210のリセット信号入力端子(CLR)に入力されるため、F/F210がリセットされ、F/F210のQバー出力(Qバー)は論理「1」となる。そのため、OR回路231及びOR回路232の片方の入力(端子231−2及び端子232−2)は、共に論理「1」となる。従って、OR回路231及びOR回路232の他方の入力(端子231−1及び端子232−1)の如何にかかわらず、OR回路231及びOR回路232の出力は、共に論理「1」となるため、アドレスデコーダ300へ入力されるビット20とビット21は、共に「1」へと変換されたビット値が入力されることとなる。この様子を図2の(ロ)に示す。すなわち、図2の(ロ)は、アドレス変換回路200が、図2の(イ)に示したビット20とビット21をマスクして、元は共に「0」であったビット値を共に「1」に変換した様子を示している。
【0049】
アドレス変換回路200が上述の動作を行うことにより、アドレスデコーダ300へ入力されるアドレス信号は、結果として「BFF00000H」となる。この様子を図2の(ハ)に示す。すなわち、図2の(ハ)は、アドレスデコーダ300へ入力されるアドレス信号を示しており、図2の(ロ)に示したように、アドレス変換回路200がビット20とビット21を共に「1」に変換しているため、その結果、アドレスデコーダ300へ入力されるアドレス信号が「BFF00000H」となったことを示している。
【0050】
以上の動作により、CPU100が当初出力したアドレス信号すなわち「BFC00000H」は、アドレス変換回路200でビット20とビット21がマスクされて、アドレスデコーダ300への入力時には「BFF00000H」となる。そのため、CPU100が当初出力したアドレスに配置されたRAM510は選択されず、アドレスデコーダ300へ入力されるアドレスに配置されたROM400が選択されることとなる。ROM400が選択されることにより、CPU100はROM400の最初のアドレス「BFF00000H」からプログラムの命令をフェッチできるようになる。
【0051】
ROM400が選択されると、ROM400に記述されているリセット時の処理プログラムの実行が始まるが、該処理プログラムには、ROM400の実アドレスへ分岐する命令を記述しておく。この命令をCPU100が実行することにより、CPU100が出力するアドレス値とアドレスデコーダ300が出力するアドレスが一致するようになる。例えば、「BFF00000H」番地に「BFF00001H」番地への分岐命令を記述しておけば、CPU100はアドレス信号130として「BFF00001H」を出力する。このとき、アドレス信号130はアドレス変換回路200でマスクされるが、アドレス信号130のビット20とビット21は共に「1」であるため、マスク後もその値が変わることは無く、従って、CPU100が出力するアドレス信号130とアドレスデコーダ300が出力するアドレスは一致するものとなる。
【0052】
ROM400のリセット時の処理プログラムの実行が終了すると、上述のアドレス変換回路200によるアドレス信号のマスク機能を解除することが必要となる。アドレス変換回路200のアドレス信号のマスク機能の解除は、CPU100が出力するメモリライト制御信号120を利用する。
【0053】
コンピュータシステム900の有するプログラムが、RAM520或いはRAM510へのデータ書込み要求であるところのライトアクセス要求を発生すると、CPU100はその書込みアドレス信号を出力すると共に、メモリライト制御信号120を出力する。
【0054】
メモリライト制御信号120は、アドレス変換回路200のF/F210のクロック入力端子(CLK)に入力される。クロック入力端子(CLK)にメモリライト制御信号120が入力されると、F/F210のデータ入力端子(D)はVccに接続されているため、F/F210のQバー出力(Qバー)は論理「0」となる。そのため、OR回路231及びOR回路232の片方の入力(端子231−2及び端子232−2)は、共に論理「0」となる。従って、OR回路231及びOR回路232の他方の入力(端子231−1及び端子232−1)は何の変換も行われず、そのままOR回路231及びOR回路232の出力となってアドレスデコーダ300に入力されることとなる。その結果、アドレスデコーダ300に対しては、CPU100が出力したアドレス信号130がそのまま入力されるようになり、アドレス変換回路200のマスク機能は解除されたものとなる。
【0055】
従って、これ以降、例えばNMIが発生したものとすると、CPU100はNMI発生時の割込みベクタアドレスとして「BFC00000H」をアドレス信号130として出力する。該アドレス信号130はアドレス変換回路200のマスク機能が解除されているため、何の変換も行われずそのままアドレスデコーダ300に入力される。そのため、CPU100が出力したアドレスに配置されたRAM510が選択されることとなり、RAM510に記述されているNMI発生時の処理プログラムが実行され、NMI処理を行うことが可能となる。
【0056】
尚、本実施形態においては、リセット時のスタートアドレスをROM400とし、NMI発生時の割込みベクタアドレスをRAM510として異なるものとしたことで、ROM400はリセット時だけに使用されることとなる。よって、CPU100による処理が、ROM400に記述されているリセット時の処理を実行するプログラムの実行を完了してRAM520或いはRAM510に移行した後には、ROM400を使用する必要がなくなる。そこで、この時、ROM電源制御回路600の制御により、ROM400に供給されている電源をオフにするものとする。
【0057】
以上、図1、図2により本実施形態の構成と動作につき詳細に説明した。本実施形態によれば、リセット時の処理プログラムをROM400上に作成し、NMI発生時の処理プログラムをRAM510上に作成することが可能となるため、一旦作成したNMI処理プログラムの変更が必要となった場合であっても、RAM510上で容易にNMI処理プログラムの更新を行うことが可能となる。
【0058】
なお、図1に示した構成例は、アドレス変換回路200により、アドレス信号130のアドレスビット値を「0」から「1」へ変換したものである。しかし、アドレス変換回路200のF/F210のQ出力(Qバー出力と逆の論理値を出力する)とAND(AND:アンド)回路を用いれば、アドレス信号130のアドレスビット値を「1」から「0」へ変換することが可能となる。従って、OR回路とAND回路を変換したいアドレスビットに接続することで、システムごとに異なる任意の開始アドレスを生成することが可能となる。
【0059】
また、図1に示した構成例においては、32ビットのアドレス信号でアドレシングを行うCPU100を使用するものとして説明を行ったが、上述の本実施形態は、他のビット数のアドレス信号(例えば64ビットや16ビットなど)でアドレシングを行うCPUに対しても、そのまま適用することが可能である。
【0060】
【発明の効果】
以上説明したように、本発明のメモリアクセス制御方式は、リセット時の処理プログラムを記述したROMのメモリ配置を、CPUが出力するリセット時のスタートアドレスとは異なる任意のアドレスに配置することができ、従って、NMI発生時の割込みベクタアドレスをRAMに配置することができるので、リセット時の処理プログラムとNMI発生時の処理プログラムとを、別々に作成することが可能となる、という効果を有している。
【0061】
また、アドレス変換回路をフリップフロップ1個とアドレスを変換したいビット数のOR回路(或いはAND回路)で構成できるので、回路をシンプルかつ小規模にて構成可能となり、回路をプリント基板に実装する上での問題が無いという効果を有すると共に、信頼性の低下を回避可能となるという効果を有している。
【0062】
さらに、アドレス変換回路のマスク機能の解除には、CPUが出力するメモリライト制御信号を用いているため、特別の信号を生成する必要が無く、シンプルな回路を構成可能となる、という効果を有している。
【0063】
またさらに、ROMはシステムの初期起動時にのみ使用されることとなるため、システムの起動完了後はROMが不要となってROMへの電源供給をOFFすることが可能となり、消費電力が削減できる、という効果を有している。
【図面の簡単な説明】
【図1】本発明のメモリアクセス制御方式の一実施形態を示すブロック図である。
【図2】本実施形態の動作を模式的に示す図である。
【図3】従来のマイクロプロセッサ・システムの一例を示す図である。
【図4】従来のアドレス変換回路の一例を示す図である。
【図5】リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例を示す図である。
【図6】図5に示したシステムの初期起動プログラムの一例を示す図である。
【符号の説明】
1 マイクロプロセッサ
2 ROM
3 デコーダ
10 プロセッサ
11 ROM
12 リセット処理プログラム
13 アドレス変換指示回路
14 アドレス変換回路
21 CPU
22 ROM
23 RAM
24 アドレスデコーダ
100 CPU
110 リセット信号
120 メモリライト制御信号
130 アドレス信号
200 アドレス変換回路
210 F/F
231 OR回路
232 OR回路
300 アドレスデコーダ
400 ROM
510 RAM
520 RAM
600 ROM電源制御回路
900 コンピュータシステム
【発明の属する技術分野】
本発明はメモリアクセス制御方式に関し、特に、コンピュータ装置におけるメモリアクセスのアドレス変換を簡易な構成の回路で実現することを可能とする、メモリアクセス制御方式に関する。
【0002】
【従来の技術】
一般に、コンピュータ装置におけるCPU(Central Processing Unit:中央処理装置)は、メモリ上のプログラムに従って演算処理を行うようになっているが、電源投入やリセットボタンの押下等のリセット時には特定の処理を行うようになっており、例えばメモリ上の0番地のアドレスを送出して、そのアドレスに格納されたプログラムを実行するようになっている。そこで、通常、リセット時の処理を行うための初期起動プログラムをROM(Read Only Memory:リードオンリメモリ)に格納し、かつ該ROMをアドレスの0番地に配置するようにしておく。
【0003】
しかし、コンピュータ装置のシステム設計上、システムの応用処理プログラムを格納するRAM(Random Access Memory:ランダムアクセスメモリ)をアドレス0番地から配置して、初期起動プログラムを格納するROMを0番地以外の他のアドレスに配置したいといった要望も出されるようになってきている。
【0004】
このような初期起動プログラムを格納するROMを0番地以外の他のアドレスに配置するシステムの一例として、特開平02−310747号公報記載の「マイクロプロセッサ・システム」が知られている。
【0005】
この公報では、図3に示すようなマイクロプロセッサ・システムが開示されている。すなわち、図3において、1はマイクロプロセッサであり、リセット信号が与えられた後の初期化処理の際は、リセット・ベクタ領域を示すアドレス「0」「2」「4」「6」を連続して送出し、初期化処理を行うものである。ABはアドレス・バス、DBはデータ・バス、CBはコントロール・バスである。2は初期化処理を行うプログラムを格納するROMであり、0番地以外の番地に配置されている。3はデコーダであり、デコーダ3にはアドレス・バスAB上の上位ビット群、コントロール・バスCBからリセット信号及びアドレス・ストローブ信号等が与えられ、ROM2に対してROM選択信号を与えるようになっている。また、この他に、図示しないRAM領域等が設置されている。
【0006】
図3において、リセット信号が与えられると、マイクロプロセッサ1はリセット・ベクタを特定するアドレス信号を出力すると共に、このアドレス信号を有効とするアドレス・ストローブ信号を出力する。リセット信号により、デコーダ3内部の判定部は直ちにROM選択信号を出力し、RAMに対するアクセスを禁止する。一方、デコーダ3内部のカウンタは予め分かっているアドレス発生回数即ちアドレス・ストローブ信号の発生回数を所定数カウントすると、判定部へカウント・アップ信号を出力し、これにより判定部は禁止していたRAMに対するアクセスを解除する。すなわち、リセット信号が与えられると、デコーダ3はマイクロプロセッサ1が出力するアドレス信号(「0」、「2」、「4」、「6」)のアドレス変換を行ってROM2を選択させ、アドレス・ストローブ信号を所定数である4回カウントすると、ROM2内の初期化処理が終了したものとして、アドレス変換を中止し、これ以降、RAMがアクセスされるようになる。
【0007】
また、リセット信号の投入により起動されるリセット処理プログラムを、任意のアドレスより実行できるようにする回路の一例として、特開昭61−275919号公報記載の「リセット時送出アドレス変換回路」が知られている。
【0008】
この公報では、図4に示すようなアドレス変換回路が開示されている。すなわち、図4において、10はプロセッサ、11はROM、12はシステムの初期設定処理を行うリセット処理プログラム、13はアドレス変換指示回路、14はマルチプレクサなどで構成されるアドレス変換回路である。
【0009】
アドレス変換指示回路13は、フリップフロップ等によるフラグであり、電源投入等によるリセット信号によって、セット状態となって、アドレス変換回路14に変換指示信号を送る。アドレス変換回路14は、このときプロセッサ10の送出するアドレスを、所定のROMアドレスに加工する。この加工したアドレスが、リセット処理プログラム12の先頭アドレスとなるようにしておけば、リセット処理プログラム12が自動的に起動される。
【0010】
リセット処理プログラム12は、システムのイニシャライズ後、プログラムの命令により、アドレス変換指示回路13をリセット状態とする。アドレス変換指示回路13がリセット状態の場合には、アドレス変換回路14は、プロセッサ10の送出アドレスを加工せずに、そのままシステムアドレスとして送出するようになっている。このような構成とすることにより、ROM11を必ずしも0番地等に置く必要が無く、リセット処理プログラム12を所望のアドレスから実行させることが出来るようになっている。
【0011】
さらに、近年、RISC(Reduced Instruction SetComputer:縮小命令セットコンピュータ)プロセッサなどに見られるように、リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスが同一のプロセッサも使用されるようになってきている。
【0012】
リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例について、図5、図6を参照して説明する。
【0013】
図5は、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例を示す図である。
【0014】
図5において、CPU21は、例えば32ビットのアドレス信号により最大4GB(Giga・Byte:ギガバイト)のメモリ領域をアクセス可能な演算処理装置であり、リセット後は例えば「BFC00000H」(Hは16進数であることを示す)番地から初期起動プログラムの命令を取り込み、初期起動処理を開始するようになっている。そのため初期起動プログラムが格納されたROM22は、アドレス「BFC00000H」番地からの領域に割り当てられている。また、システムの応用処理プログラムなどを格納するRAM23は、アドレス「00000000H」番地からの領域に割り当てられているものとしている。一方、NMIベクタアドレスも「BFC00000H」番地からの領域に存在しているため、NMI処理を行うプログラムもROM22に配置される。そして、CPU21からメモリ(RAM23とROM22)をアクセスする場合には、CPU21が出力するアドレスをアドレスデコーダ24でデコードしてメモリアクセスを行うようになっている。
【0015】
従って、図5に示したシステムの初期起動プログラムを作成する場合には、図6に示すように、初期起動プログラムの処理が開始されると(図6のS1)、開始の直後で当該アドレス(「BFC00000H」番地)に分岐してきた要因が、初期起動かNMI発生かチェックすることが必要となり(S2)、要因がリセットによる初期起動であれば初期起動処理のプログラムに分岐し(S3)、要因がNMI発生であればNMI処理のプログラムに分岐する(S4)ようにプログラミングする必要がある。
【0016】
【発明が解決しようとする課題】
図5、図6に例示したように、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの初期起動プログラムを作成する際には、初期起動プログラムのスタートアドレスに分岐してきた要因が、初期起動かNMI発生かチェックすることが必須となり、また、NMI処理のプログラムもROM内に配置せざるを得ないため、NMI処理の変更が困難になり、プログラム作成時に多大な制約を課すという問題点を有している。
【0017】
この問題点を解決する一例として、リセット後の初期起動処理は従来例と同様ROM領域に作成し、NMI処理をRAM領域に作成可能なシステムを構築する方策を挙げることができる。このとき、プロセッサが出力するリセット時のスタートアドレス或いはNMI発生時の割込みベクタアドレスを、何らかの手段でROM領域あるいはRAM領域をアドレシングするように変換することが必要となる。
【0018】
プロセッサが出力するアドレスの変換技術に関しては、上述した特開平02−310747号公報(図3)或いは特開昭61−275919号公報(図4)に開示が成されているが、図3に示したデコーダ3或いは図4に示したアドレス変換回路14は、構成要素となるゲートの数が多いため、ゲート遅延が生じ、処理性能が低下するという課題を有している。従って高速アクセスが要求されるシステムには向いておらず、また、構成要素となる部品点数が多いため、プリント基板への実装面積が大きくなってしまい小型化を要求されるシステムには不向きである。さらに、図3のデコーダ3は、RAMアクセス禁止の解除にマイクロプロセッサが出力するアドレス信号をカウントし、カウント数は既知であるとしているため、システムに使用するCPUの種別や命令バイト数を回路設計上考慮しなければならない、という課題を有している。そのため、CPUや命令が変更される度に回路を見直す必要が生じ、汎用性に欠けるという課題を有している。図4のアドレス変換指示回路13は、リセット信号によってセット状態となるようになっているが、アドレス変換指示回路13をリセット状態に戻すためには、リセット処理プログラム12内にリセット状態に戻すプログラム命令を記述しておくことが必須となっており、このことも初期起動プログラム作成時の大きな制約となってしまう、という課題を有している。
【0019】
そこで本発明の目的は、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一である演算処理装置において、リセット時のスタートアドレスを任意のアドレスに配置することを可能とするアドレス変換回路を、簡易な構成の回路で実現する、メモリアクセス制御方式を提供することにある。
【0020】
【課題を解決するための手段】
本発明のメモリアクセス制御方式は、リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスとが同一であるCPU(Central Processing Unit:中央処理装置)と、前記CPUがアドレスデコーダを介してアクセス可能なメモリ装置と、前記CPUから出力されるアドレス信号の任意の複数のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に出力されるリセット信号を用いて、前記CPUが出力する前記リセット時のスタートアドレスの信号の任意の複数のビットをマスクし、前記リセット時のスタートアドレスを他の任意のアドレスに変更して前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記NMI発生時の割込みベクタアドレスと異なるアドレスに設定する、ことを特徴とする。
【0021】
また、前記アドレス変換手段は、前記CPUから出力されるメモリライト制御信号を用いて、前記リセット時に設定された前記マスク機能の解除を行い、それ以降は前記CPUから出力されるアドレス信号の前記任意の複数のビットのマスクを行わず、前記CPUから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする。
【0022】
さらに、リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスとが同一であるCPUと、前記CPUがアドレスデコーダを介してアクセス可能なメモリ装置と、前記CPUから出力されるアドレス信号の特定の複数(n:nは正の整数)のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に、前記コンピュータシステムから出力されるリセット信号が入力されることにより前記マスク機能が設定され、前記CPUが出力する前記リセット時のスタートアドレスであるところの第1のアドレスの信号の前記特定の複数(n)のビットをマスクして前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第1のアドレスとは異なる第2のアドレスに変換する、ことを特徴とする。
【0023】
また、前記アドレス変換手段は、前記CPUが前記メモリ装置へデータを書込む際に生成するメモリライト制御信号の入力によって前記マスク機能を解除し、それ以降は前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットのマスクを行わず、前記CPUから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする。
【0024】
さらに、前記メモリ装置の前記第1のアドレスにRAM(Random Access Memory:ランダムアクセスメモリ)が実装され、前記メモリ装置の前記第2のアドレスにROM(Read Only Memory:リードオンリメモリ)が実装される、ことを特徴とする。
【0025】
また、前記RAMにNMI発生時の処理を実行するプログラムが記述され、前記ROMにリセット時の処理を実行するプログラムが記述される、ことを特徴とする。
【0026】
さらに、前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットとの論理和を取る複数(n)のOR回路と、から構成され、前記複数(n)のOR回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする。
【0027】
また、前記フリップフロップは、D形フリップフロップ回路で構成される、ことを特徴とする。
【0028】
さらに、前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのQバー出力である、ことを特徴とする。
【0029】
また、前記フリップフロップの前記リセット信号入力端子に前記リセット信号が入力されると、前記フリップフロップはリセットされて前記Qバー出力が論理「1」となり、前記複数(n)のOR回路の一方の入力が論理「1」となるため、前記複数(n)のOR回路の他方の入力が如何なるビット値であっても前記複数(n)のOR回路の出力が論理「1」となり、従って、前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットがマスクされるようになり、前記アドレス変換手段の前記マスク機能が設定されるようになる、ことを特徴とする。
【0030】
さらに、前記フリップフロップの前記クロック入力端子に前記メモリライト制御信号が入力されると、前記フリップフロップの前記Qバー出力が論理「0」となり、前記複数(n)のOR回路の一方の入力が論理「0」となるため、前記複数(n)のOR回路の他方の入力は変換されること無く前記複数(n)のOR回路の出力となり、従って、前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットはマスクされず、前記アドレス変換手段の前記マスク機能が解除されるようになる、ことを特徴とする。
【0031】
また、前記コンピュータシステムは、ROM電源制御回路を更に備え、前記ROM電源制御回路は、前記CPUによる処理動作が前記ROMに記述されている前記リセット時の処理を実行するプログラムの実行を完了した後に、前記ROMに供給されている電源のオフを行う制御を実行する、ことを特徴とする。
【0032】
さらに、前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットとの論理積を取る複数(n)のAND回路と、から構成され、前記複数(n)のAND回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする。
【0033】
また、前記フリップフロップは、D形フリップフロップ回路で構成される、ことを特徴とする。
【0034】
さらに、前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのQ出力である、ことを特徴とする。
【0035】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0036】
図1は、本発明のメモリアクセス制御方式の一実施形態を示すブロック図である。
【0037】
図1に示す本実施の形態は、コンピュータシステム900に適用されるものであり、コンピュータシステム900は、演算処理装置であるところのCPU(Central Processing Unit:中央処理装置)100と、記憶装置を構成するROM(Read Only Memory:リードオンリメモリ)400、RAM(Random Access Memory:ランダムアクセスメモリ)510、RAM520と、CPU100から出力されるアドレス信号130をデコードして記憶装置のアドレス選択を行うアドレスデコーダ300と、CPU100から出力されるアドレス信号130を或る条件下でマスクする処理を行うアドレス変換回路200と、ROM400の電源のオン・オフの制御を行うROM電源制御回路600と、から構成されている。
【0038】
CPU100は、32ビットのアドレス信号により最大4GB(Giga・Byte:ギガバイト)の記憶装置領域をアクセス可能な演算処理装置である。そして、リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスとが同一で、そのアドレスは「BFC00000H」(Hは16進数であることを示す)番地であるものとする。なお、前記の番地は、本実施形態の説明の容易化のために一例として設定した番地であり、他の如何様な番地であっても本実施形態を適用することが可能である。
【0039】
また、CPU100の出力する32ビットのアドレス信号130の内、ビット20(図1中で131として示す)とビット21(図1中で132として示す)は、それぞれ、後述のアドレス変換回路200のOR(OR:オア)回路231(の端子231−1)とOR回路232(の端子232−1)とに入力されるよう構成されている。アドレス信号130の他の30ビットは、直接アドレスデコーダ300に入力される。なお、前記のビット20、ビット21についても、本実施形態の説明の容易化のために一例として挙げたものであり、他の如何様なビットであっても本実施形態を適用することが可能である。
【0040】
ROM400は、記憶装置の「BFF00000H」番地以降に実装されており、ROM400には、リセット時の処理(すなわち初期起動時の処理)を実行するプログラムが記述されている。
【0041】
RAM510は、記憶装置の「BFC00000H」番地以降に実装されており、RAM510には、NMI発生時の処理を実行するプログラムが記述されている。
【0042】
RAM520は、記憶装置の「00000000H」番地以降に実装されており、RAM520には、本実施形態を適用したコンピュータシステム900の応用処理プログラムなどが記述されている。
【0043】
アドレス変換回路200は、D形フリップフロップ回路で構成されるF/F(Flip−Flop:フリップフロップ)210と、OR回路231とOR回路232とから構成されている。
【0044】
F/F210のリセット信号入力端子(CLR)には、本実施形態を適用したコンピュータシステム900のリセット信号110が入力される。F/F210のクロック入力端子(CLK)には、CPU100の出力するメモリライト制御信号120が入力される。メモリライト制御信号120は、CPU100からRAM510或いはRAM520に対しデータを書込むためのライトアクセス要求が発生した場合に出力される信号であり、CPU100がROM400をアクセスする際には出力されることの無い信号である。F/F210のデータ入力端子(D)はVcc(+5V)に接続されている。F/F210のQバー出力(Qバー)は、OR回路231(の端子231−2)とOR回路232(の端子232−2)に入力され、OR回路231の他方の入力(端子231−1)は上述のアドレス信号130のビット20であり、OR回路232の他方の入力(端子232−1)は上述のアドレス信号130のビット21である。なお、OR回路231とOR回路232の出力は、それぞれアドレスデコーダ300に入力されるように構成されている。
【0045】
次に、図2を参照して、本実施形態の動作について詳細に説明する。
【0046】
図2は、本実施形態の動作を模式的に示す図である。なお、図2において図1に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。以下、本実施形態を適用したコンピュータシステム900のリセット後から順を追って動作を説明する。
【0047】
コンピュータシステム900が電源投入やリセットボタンの押下等によりリセットされると、CPU100はリセット時のスタートアドレスとして、「BFC00000H」をアドレス信号130として出力する。この様子を図2の(イ)に示す。すなわち、図2の(イ)は、リセット時のスタートアドレスとして、アドレス信号130が「BFC00000H」となっていることを示しており、アドレス信号130の内のビット20及びビット21は共に「0」である。
【0048】
コンピュータシステム900がリセットされた時には、同時に、リセット信号110が図1のアドレス変換回路200のF/F210のリセット信号入力端子(CLR)に入力されるため、F/F210がリセットされ、F/F210のQバー出力(Qバー)は論理「1」となる。そのため、OR回路231及びOR回路232の片方の入力(端子231−2及び端子232−2)は、共に論理「1」となる。従って、OR回路231及びOR回路232の他方の入力(端子231−1及び端子232−1)の如何にかかわらず、OR回路231及びOR回路232の出力は、共に論理「1」となるため、アドレスデコーダ300へ入力されるビット20とビット21は、共に「1」へと変換されたビット値が入力されることとなる。この様子を図2の(ロ)に示す。すなわち、図2の(ロ)は、アドレス変換回路200が、図2の(イ)に示したビット20とビット21をマスクして、元は共に「0」であったビット値を共に「1」に変換した様子を示している。
【0049】
アドレス変換回路200が上述の動作を行うことにより、アドレスデコーダ300へ入力されるアドレス信号は、結果として「BFF00000H」となる。この様子を図2の(ハ)に示す。すなわち、図2の(ハ)は、アドレスデコーダ300へ入力されるアドレス信号を示しており、図2の(ロ)に示したように、アドレス変換回路200がビット20とビット21を共に「1」に変換しているため、その結果、アドレスデコーダ300へ入力されるアドレス信号が「BFF00000H」となったことを示している。
【0050】
以上の動作により、CPU100が当初出力したアドレス信号すなわち「BFC00000H」は、アドレス変換回路200でビット20とビット21がマスクされて、アドレスデコーダ300への入力時には「BFF00000H」となる。そのため、CPU100が当初出力したアドレスに配置されたRAM510は選択されず、アドレスデコーダ300へ入力されるアドレスに配置されたROM400が選択されることとなる。ROM400が選択されることにより、CPU100はROM400の最初のアドレス「BFF00000H」からプログラムの命令をフェッチできるようになる。
【0051】
ROM400が選択されると、ROM400に記述されているリセット時の処理プログラムの実行が始まるが、該処理プログラムには、ROM400の実アドレスへ分岐する命令を記述しておく。この命令をCPU100が実行することにより、CPU100が出力するアドレス値とアドレスデコーダ300が出力するアドレスが一致するようになる。例えば、「BFF00000H」番地に「BFF00001H」番地への分岐命令を記述しておけば、CPU100はアドレス信号130として「BFF00001H」を出力する。このとき、アドレス信号130はアドレス変換回路200でマスクされるが、アドレス信号130のビット20とビット21は共に「1」であるため、マスク後もその値が変わることは無く、従って、CPU100が出力するアドレス信号130とアドレスデコーダ300が出力するアドレスは一致するものとなる。
【0052】
ROM400のリセット時の処理プログラムの実行が終了すると、上述のアドレス変換回路200によるアドレス信号のマスク機能を解除することが必要となる。アドレス変換回路200のアドレス信号のマスク機能の解除は、CPU100が出力するメモリライト制御信号120を利用する。
【0053】
コンピュータシステム900の有するプログラムが、RAM520或いはRAM510へのデータ書込み要求であるところのライトアクセス要求を発生すると、CPU100はその書込みアドレス信号を出力すると共に、メモリライト制御信号120を出力する。
【0054】
メモリライト制御信号120は、アドレス変換回路200のF/F210のクロック入力端子(CLK)に入力される。クロック入力端子(CLK)にメモリライト制御信号120が入力されると、F/F210のデータ入力端子(D)はVccに接続されているため、F/F210のQバー出力(Qバー)は論理「0」となる。そのため、OR回路231及びOR回路232の片方の入力(端子231−2及び端子232−2)は、共に論理「0」となる。従って、OR回路231及びOR回路232の他方の入力(端子231−1及び端子232−1)は何の変換も行われず、そのままOR回路231及びOR回路232の出力となってアドレスデコーダ300に入力されることとなる。その結果、アドレスデコーダ300に対しては、CPU100が出力したアドレス信号130がそのまま入力されるようになり、アドレス変換回路200のマスク機能は解除されたものとなる。
【0055】
従って、これ以降、例えばNMIが発生したものとすると、CPU100はNMI発生時の割込みベクタアドレスとして「BFC00000H」をアドレス信号130として出力する。該アドレス信号130はアドレス変換回路200のマスク機能が解除されているため、何の変換も行われずそのままアドレスデコーダ300に入力される。そのため、CPU100が出力したアドレスに配置されたRAM510が選択されることとなり、RAM510に記述されているNMI発生時の処理プログラムが実行され、NMI処理を行うことが可能となる。
【0056】
尚、本実施形態においては、リセット時のスタートアドレスをROM400とし、NMI発生時の割込みベクタアドレスをRAM510として異なるものとしたことで、ROM400はリセット時だけに使用されることとなる。よって、CPU100による処理が、ROM400に記述されているリセット時の処理を実行するプログラムの実行を完了してRAM520或いはRAM510に移行した後には、ROM400を使用する必要がなくなる。そこで、この時、ROM電源制御回路600の制御により、ROM400に供給されている電源をオフにするものとする。
【0057】
以上、図1、図2により本実施形態の構成と動作につき詳細に説明した。本実施形態によれば、リセット時の処理プログラムをROM400上に作成し、NMI発生時の処理プログラムをRAM510上に作成することが可能となるため、一旦作成したNMI処理プログラムの変更が必要となった場合であっても、RAM510上で容易にNMI処理プログラムの更新を行うことが可能となる。
【0058】
なお、図1に示した構成例は、アドレス変換回路200により、アドレス信号130のアドレスビット値を「0」から「1」へ変換したものである。しかし、アドレス変換回路200のF/F210のQ出力(Qバー出力と逆の論理値を出力する)とAND(AND:アンド)回路を用いれば、アドレス信号130のアドレスビット値を「1」から「0」へ変換することが可能となる。従って、OR回路とAND回路を変換したいアドレスビットに接続することで、システムごとに異なる任意の開始アドレスを生成することが可能となる。
【0059】
また、図1に示した構成例においては、32ビットのアドレス信号でアドレシングを行うCPU100を使用するものとして説明を行ったが、上述の本実施形態は、他のビット数のアドレス信号(例えば64ビットや16ビットなど)でアドレシングを行うCPUに対しても、そのまま適用することが可能である。
【0060】
【発明の効果】
以上説明したように、本発明のメモリアクセス制御方式は、リセット時の処理プログラムを記述したROMのメモリ配置を、CPUが出力するリセット時のスタートアドレスとは異なる任意のアドレスに配置することができ、従って、NMI発生時の割込みベクタアドレスをRAMに配置することができるので、リセット時の処理プログラムとNMI発生時の処理プログラムとを、別々に作成することが可能となる、という効果を有している。
【0061】
また、アドレス変換回路をフリップフロップ1個とアドレスを変換したいビット数のOR回路(或いはAND回路)で構成できるので、回路をシンプルかつ小規模にて構成可能となり、回路をプリント基板に実装する上での問題が無いという効果を有すると共に、信頼性の低下を回避可能となるという効果を有している。
【0062】
さらに、アドレス変換回路のマスク機能の解除には、CPUが出力するメモリライト制御信号を用いているため、特別の信号を生成する必要が無く、シンプルな回路を構成可能となる、という効果を有している。
【0063】
またさらに、ROMはシステムの初期起動時にのみ使用されることとなるため、システムの起動完了後はROMが不要となってROMへの電源供給をOFFすることが可能となり、消費電力が削減できる、という効果を有している。
【図面の簡単な説明】
【図1】本発明のメモリアクセス制御方式の一実施形態を示すブロック図である。
【図2】本実施形態の動作を模式的に示す図である。
【図3】従来のマイクロプロセッサ・システムの一例を示す図である。
【図4】従来のアドレス変換回路の一例を示す図である。
【図5】リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスが同一のプロセッサを使用したシステムの一例を示す図である。
【図6】図5に示したシステムの初期起動プログラムの一例を示す図である。
【符号の説明】
1 マイクロプロセッサ
2 ROM
3 デコーダ
10 プロセッサ
11 ROM
12 リセット処理プログラム
13 アドレス変換指示回路
14 アドレス変換回路
21 CPU
22 ROM
23 RAM
24 アドレスデコーダ
100 CPU
110 リセット信号
120 メモリライト制御信号
130 アドレス信号
200 アドレス変換回路
210 F/F
231 OR回路
232 OR回路
300 アドレスデコーダ
400 ROM
510 RAM
520 RAM
600 ROM電源制御回路
900 コンピュータシステム
Claims (15)
- リセット時のスタートアドレスとNMI(Non Maskable Interrupt:ノンマスカブル割込み)発生時の割込みベクタアドレスとが同一であるCPU(Central Processing Unit:中央処理装置)と、前記CPUがアドレスデコーダを介してアクセス可能なメモリ装置と、前記CPUから出力されるアドレス信号の任意の複数のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に出力されるリセット信号を用いて、前記CPUが出力する前記リセット時のスタートアドレスの信号の任意の複数のビットをマスクし、前記リセット時のスタートアドレスを他の任意のアドレスに変更して前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記NMI発生時の割込みベクタアドレスと異なるアドレスに設定する、ことを特徴とするメモリアクセス制御方式。 - 前記アドレス変換手段は、前記CPUから出力されるメモリライト制御信号を用いて、前記リセット時に設定された前記マスク機能の解除を行い、それ以降は前記CPUから出力されるアドレス信号の前記任意の複数のビットのマスクを行わず、前記CPUから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする請求項1に記載のメモリアクセス制御方式。
- リセット時のスタートアドレスとNMI発生時の割込みベクタアドレスとが同一であるCPUと、前記CPUがアドレスデコーダを介してアクセス可能なメモリ装置と、前記CPUから出力されるアドレス信号の特定の複数(n:nは正の整数)のビットをマスクして前記アドレスデコーダに供給するマスク機能を有するアドレス変換手段と、を備えたコンピュータシステムにおけるメモリアクセス制御方式であって、
前記アドレス変換手段は、前記コンピュータシステムのリセット時に、前記コンピュータシステムから出力されるリセット信号が入力されることにより前記マスク機能が設定され、前記CPUが出力する前記リセット時のスタートアドレスであるところの第1のアドレスの信号の前記特定の複数(n)のビットをマスクして前記アドレスデコーダに供給することにより、前記リセット時のスタートアドレスを前記第1のアドレスとは異なる第2のアドレスに変換する、ことを特徴とするメモリアクセス制御方式。 - 前記アドレス変換手段は、前記CPUが前記メモリ装置へデータを書込む際に生成するメモリライト制御信号の入力によって前記マスク機能を解除し、それ以降は前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットのマスクを行わず、前記CPUから出力される前記アドレス信号の変換を行わずに前記アドレスデコーダに供給する、ことを特徴とする請求項3に記載のメモリアクセス制御方式。
- 前記メモリ装置の前記第1のアドレスにRAM(Random Access Memory:ランダムアクセスメモリ)が実装され、前記メモリ装置の前記第2のアドレスにROM(Read Only Memory:リードオンリメモリ)が実装される、ことを特徴とする請求項4に記載のメモリアクセス制御方式。
- 前記RAMにNMI発生時の処理を実行するプログラムが記述され、前記ROMにリセット時の処理を実行するプログラムが記述される、ことを特徴とする請求項5に記載のメモリアクセス制御方式。
- 前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットとの論理和を取る複数(n)のOR回路と、から構成され、前記複数(n)のOR回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする請求項4から請求項6の何れか1項に記載のメモリアクセス制御方式。
- 前記フリップフロップは、D形フリップフロップ回路で構成される、ことを特徴とする請求項7に記載のメモリアクセス制御方式。
- 前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのQバー出力である、ことを特徴とする請求項8に記載のメモリアクセス制御方式。
- 前記フリップフロップの前記リセット信号入力端子に前記リセット信号が入力されると、前記フリップフロップはリセットされて前記Qバー出力が論理「1」となり、前記複数(n)のOR回路の一方の入力が論理「1」となるため、前記複数(n)のOR回路の他方の入力が如何なるビット値であっても前記複数(n)のOR回路の出力が論理「1」となり、従って、前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットがマスクされるようになり、前記アドレス変換手段の前記マスク機能が設定されるようになる、ことを特徴とする請求項9に記載のメモリアクセス制御方式。
- 前記フリップフロップの前記クロック入力端子に前記メモリライト制御信号が入力されると、前記フリップフロップの前記Qバー出力が論理「0」となり、前記複数(n)のOR回路の一方の入力が論理「0」となるため、前記複数(n)のOR回路の他方の入力は変換されること無く前記複数(n)のOR回路の出力となり、従って、前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットはマスクされず、前記アドレス変換手段の前記マスク機能が解除されるようになる、ことを特徴とする請求項9或いは請求項10の何れか1項に記載のメモリアクセス制御方式。
- 前記コンピュータシステムは、ROM電源制御回路を更に備え、前記ROM電源制御回路は、前記CPUによる処理動作が前記ROMに記述されている前記リセット時の処理を実行するプログラムの実行を完了した後に、前記ROMに供給されている電源のオフを行う制御を実行する、ことを特徴とする請求項6から請求項11の何れか1項に記載のメモリアクセス制御方式。
- 前記アドレス変換手段は、前記リセット信号及び前記メモリライト制御信号が入力されるフリップフロップと、前記フリップフロップの出力信号と前記CPUから出力されるアドレス信号の前記特定の複数(n)のビットとの論理積を取る複数(n)のAND回路と、から構成され、前記複数(n)のAND回路の出力信号が前記アドレスデコーダに入力されるよう構成されている、ことを特徴とする請求項4から請求項6の何れか1項に記載のメモリアクセス制御方式。
- 前記フリップフロップは、D形フリップフロップ回路で構成される、ことを特徴とする請求項13に記載のメモリアクセス制御方式。
- 前記フリップフロップのリセット信号入力端子には前記リセット信号が入力され、前記フリップフロップのクロック入力端子には前記メモリライト制御信号が入力され、前記フリップフロップの前記出力信号は前記フリップフロップのQ出力である、ことを特徴とする請求項14に記載のメモリアクセス制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002225567A JP2004070461A (ja) | 2002-08-02 | 2002-08-02 | メモリアクセス制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002225567A JP2004070461A (ja) | 2002-08-02 | 2002-08-02 | メモリアクセス制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004070461A true JP2004070461A (ja) | 2004-03-04 |
Family
ID=32013166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002225567A Withdrawn JP2004070461A (ja) | 2002-08-02 | 2002-08-02 | メモリアクセス制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004070461A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7319634B2 (en) | 2005-12-29 | 2008-01-15 | Samsung Electronics Co., Ltd. | Address converter semiconductor device and semiconductor memory device having the same |
JP2014056453A (ja) * | 2012-09-13 | 2014-03-27 | Ricoh Co Ltd | 情報処理装置 |
-
2002
- 2002-08-02 JP JP2002225567A patent/JP2004070461A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7319634B2 (en) | 2005-12-29 | 2008-01-15 | Samsung Electronics Co., Ltd. | Address converter semiconductor device and semiconductor memory device having the same |
JP2014056453A (ja) * | 2012-09-13 | 2014-03-27 | Ricoh Co Ltd | 情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4674089A (en) | In-circuit emulator | |
US7020764B2 (en) | Semiconductor processing device | |
KR100268747B1 (ko) | 데이터 처리 장치 | |
JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
JPH10254696A (ja) | プロセッサ及び情報処理装置 | |
JPH09269895A (ja) | データ処理装置 | |
US5974498A (en) | Loading page register with page value in branch instruction for as fast access to memory extension as in-page access | |
CN114691594B (zh) | 一种基于非对称双核mcu设计的芯片架构及其实现方法 | |
JP3616402B2 (ja) | 拡張可能なレジスタを提供するデータ処理システムおよびその方法 | |
JP2004038327A (ja) | データ処理装置 | |
US7062632B2 (en) | Method for controlling a central processing unit for addressing in relation to a memory and controller | |
JP2004070461A (ja) | メモリアクセス制御方式 | |
JP3786575B2 (ja) | データ処理装置 | |
JP3760093B2 (ja) | マイクロコンピュータ | |
US20020004877A1 (en) | Method and system for updating user memory in emulator systems | |
US7624205B2 (en) | Microcontroller | |
JPS642177Y2 (ja) | ||
JP3820707B2 (ja) | 割込ベクタアドレス生成装置及びマイクロコンピュータ | |
JP3665349B2 (ja) | 集積回路 | |
JP2002342105A (ja) | フラッシュメモリ書き込みシステム | |
JP2000267876A (ja) | エミュレータ及びマイクロコンピュータ | |
JP2000235490A (ja) | マイクロプロセッサ | |
JPS6354630A (ja) | デ−タ処理装置 | |
JP4382076B2 (ja) | データ処理装置 | |
JPH06149559A (ja) | ワンチップマイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050330 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20051004 |