以下、本発明の実施形態を図面により説明する。
図17は本発明による情報処理装置の一実施形態を示す概略構成図である。
同図において、CPU100は、ブリッジチップ101を介して、ユニバーサルメモリ装置102,ハードディスクドライブ103やディスプレイ104,キーボード105,マウス106,カメラ107,個人情報を保持したメモリカード108といった入出力装置と接続されている。
かかる構成の情報処理装置でのユーザ認証は、キーボード105からのパスワードの入力による認証、カメラ107を用いたユーザの顔や虹彩などによる生体認証、メモリカード108に保持されている個人情報を用いた認証などによって行なわれる。
次に、かかる情報処理装置で用いられるユニバーサルメモリ装置102の本発明の実施形態について説明するが、まず、図2により、従来のDRAMのデータ読出機構について説明する。ここで、1’はDRAMメモリ、2はメモリセルアレイ、3は行デコーダ、4は列デコーダ、5はデータ制御論理部、6はバッファ、7は制御論理部である。
同図において、LSI(Large Scale Integrartion)で構成されるDRAMメモリ1’はメモリセル単位にデータが格納されたメモリセルアレイ2を備えており、各メモリセルには夫々、行アドレスと列アドレスとからなるアドレスが割り当てられている。
かかるメモリセルアレイ2からデータを読み出すときには、制御ピンCS#,RAS#,CAS#,WE#からのリードコマンドが制御論理部7に供給され、これにより、制御論理部7がデータ制御論理部5を制御する。また、これと同時に、行・列アドレスピンA0−A11とバンクアドレスピンBA0,BA1とに夫々行アドレス,列アドレス及びバンクアドレスが供給される。行アドレスと列アドレスとは、バンクアドレスで選択されるバンクに対し、行デコーダ3と列デコーダ4でデコードされ、デコードされたアドレスによってメモリセルアレイ2でのメモリセルが指定される。この指定されたメモリセルから、データ制御論理部5の制御により、データが読み出され、バッファ6を介してデータピンDQ0−DQ15に出力される。
図1は図2に示すDRAMと同様に構成したユニバーサルメモリに本発明を適用したユニバーサルメモリの第1の実施形態を示すブロック図であって、8はロックレジスタ、91〜916はアンドゲート、10はセット信号発生部、11はリセット信号発生部である。図2に対応する部分には同一符号を付けて重複する説明を省略する。ユニバーサルメモリのメモリセルは、不揮発性である点を除き、データを保持するという機能は同等であるため、同一符号で示している。また、ユニバーサルメモリは、DRAMで必要なリフレッシュ動作が不要なため、リフレッシュ動作に関する論理も異なるが、本発明とは関係ないため、説明を省略する。
同図において、メモリセルアレイ2から読み出されるデータはパラレルデータであり(ここでは、一例として、16ビットのパラレルデータとする)、データ制御論理部5からバッファ6へのデータ線の各ビットB1,B2,……,B16のビット線毎にアンドゲート91,92,……,916が設けられている。そして、これらアンドゲート91,92,……,916には、また、ロックレジスタ8で発生されて反転されたロック・アンロック信号L/Uが供給される。
ここで、ロックレジスタ8はセット信号発生部10からのセット信号によって“1”にセットされ、リセット信号発生部11からのリセット信号によって“0”にリセットされる。ロックレジスタ8がセットされたときには、その出力が反転されることにより、ロック・アンロック信号L/Uは“0”となり、ロックレジスタ8がリセットされたときには、その出力が反転されることにより、ロック・アンロック信号L/Uは“1”となる。
ロックレジスタ8がセット信号発生部10からのセット信号Sによって“1”にセットされると、ロック・アンロック信号L/Uが“0”となるから、全てのアンドゲート91,92,……,916がデータ制御論理部5からのデータの全ビットを“0”にする(以下、この状態をロック状態という)。これにより、バッファ6には、全ビットが“0”のデータが保持されることになる。また、ロックレジスタ8がリセット信号発生部11からのリセット信号Rによって“0”にリセットされると、ロック・アンロック信号L/Uが“1”となるから、データ制御論理部5からのデータの各ビットをそのままアンドゲート91,92,……,916を通過し(以下、この状態をアンロック状態という)、バッファ6には、メモリセルアレイ2から読み出されたデータそのものが保持されることになる。
このようにして、この第1の実施形態のメモリセルアレイは、ロックレジスタ8がセットされると、バッファ6へのデータが全ビット“0”となるロック状態に設定され、ロックレジスタ8がリセットされると、バッファ6へメモリセルアレイ2から読み出されたデータそのものが供給されるアンロック状態となる。従って、ロックレジスタ8をセットしてユニバーサルメモリをロック状態とすることにより、メモリセルアレイ2、従って、ユニバーサルメモリ1のデータを保護することができる。
図3は図1におけるセット信号発生部10の一具体例を示すブロック図であって、12は比較器であり、図1に対応する部分には同一符号を付けている。
同図において、比較器12は電源電圧VDDと接地電圧VSSとを比較しながらこの電源電圧VDDを監視しており、これら電源電圧VDDと接地電圧VSSとの電位差が予め決められた閾値よりも小さくなったとき、セット信号Sを出力する。これにより、ロックレジスタ8がセットされ、ユニバーサルメモリ1はロック状態に設定される。
これにより、このユニバーサルメモリ1をメインメモリやワーキングメモリとして用いた情報処理装置がパワーオフすると、あるいは、このユニバーサルメモリ1あるいはかかるユニバーサルメモリ1の複数個からなるユニバーサルメモリモジュールが情報処理装置から引き抜かれると、このユニバーサルメモリ1あるいはユニバーサルメモリモジュールは、認証技術によらずに、自動的にメモリセルアレイ2でのデータが保護された状態となる。
なお、ユニバーサルメモリ1のLSI内に、キャパシタを設け、このキャパシタに電源から給電し、電源電圧VDDをこのキャパシタの充電電圧VCCと比較して、電源電圧VDDがこの充電電圧VCCに対して予め決められた閾値よりも低くなったとき(即ち、パワーオフしたとき)、比較器12がセット信号Sを出力してロックレジスタ8をセットするようにしてもよい。
図4は図1におけるセット信号発生部10の他の具体例を示すブロック図であって、13はExOR(排他的OR)回路、14は遅延回路であり、図1に対応する部分には同一符号を付けている。
同図において、ユニバーサルメモリ1のLSIにロックピン(図示せず)を設け、このロックピンから入力されるロック信号とこれを遅延回路14で所定時間遅延した遅延信号とをExOR回路13で比較しながら、このロック信号の変化を監視している。ユニバーサルメモリ1が情報処理装置に装着されているとき、ロックピンからは一定電位のロック信号が入力され、ユニバーサルメモリ1からなるユニバーサルモジュールが情報処理装置から外れると(情報処理装置に設けられたソケットから外されると)、このロック信号が遮断される。
ExOR回路13はこのロックピンから入力されるロック信号の変化、即ち、立ち上がりまたは立ち下がり変化(エッジ)を検出するものであって、ロックピンから入力されるロック信号が遅延回路14からの遅延信号と異なる値になると、セット信号Sを出力する。
一方、図1におけるリセット信号発生部11としては、メモリセルアレイのデータが記憶される全てのメモリセルを初期化するためのクリアオール(CLRALL)コマンドを利用する方法がある。これは、ユニバーサルメモリ1のLSIがクリアオールコマンドを受け付けると、このクリアオールコマンドによってメモリセルアレイ2内のデータが記憶される全メモリセルを初期化し、このクリアオールコマンドまたはこれに応じた信号がリセット信号発生部11に供給される。リセット信号発生部11では、ユニバーサルメモリ1での上記の初期化の直後、リセット信号Rを発生する。
かかるクリアオールコマンドは、ユニバーサルメモリ1を用いたユニバーサルメモリモジュールがメモリ製造メーカから装置メーカに渡った場合や装置メーカからユーザに渡った場合、情報処理装置から挿抜された場合など、かかるメモリを取り扱う者が変わった場合にだけ発行されるものであって、通常のパワーオン/オフなどでは発行しないようにする。これにより、ユニバーサルメモリモジュールの不揮発性を有効に活用することができる。
また、図3及び図4においては、ロックレジスタ8は常時アンロック状態に有り、上記のように、ユニバーサルメモリ1からなるユニバーサルメモリモジュールが情報処理装置に設けられたソケットから外されると、これによってセット信号Sが発生され、ロックレジスタ8によってユニバーサルメモリ1がロック状態に設定される。このため、第3者によってユニバーサルメモリモジュールが取り外され、別の情報処理装置に装着して使用しようとしても、このロック状態が解除されない限り、このユニバーサルメモリモジュールのデータが盗み出されることもなく、また、この別の情報処理装置がクリアオールコマンドを発生する構成をなしている場合には、クリアオールコマンドの発生によってユニバーサルメモリモジュールでのユニバーサルメモリ1が初期化されてしまうので、この別の情報処理装置によるデータの盗難を考慮する必要がない。このため、ユニバーサルメモリモジュールが正当な情報処理装置で使用されるときのデータの保護のみを考慮すればよく、従来のBIOSパスワードなどによる認証を用いることによってデータの安全性を確保することができる。
図5は図1におけるロックレジスタ8のセット信号発生部10,リセット信号発生部11のさらに他の具体例を示すブロック図であって、15はキーレジスタ、16,17はバッファ、18は比較器、19はOR回路、20は制御論理部であり、図1に対応する部分には同一符号を付けている。
この具体例は、ユニバーサルメモリ1にロックレジスタ8のセット,リセットのための認証機構を設け、新たにロックコマンドとアンロックコマンドとを設けることにより、ロックレジスタ8のセット,リセットが行なわれるようにしたものである。
図5において、ロックレジスタ8をセットするセット信号Sは、ロックコマンドに応じて発生される信号Lock_cmdである。このロックコマンドは、例えば、プログラムからのロック指示によって発生し、これにより、制御論理部20からロックレジスタ8をセットするロックコマンド信号が発生する。また、このロックコマンドとともにバーストライトコマンドと同様のバスシーケンスで送られてくるデータがバッファ16に保持され、このデータがキーワードとしてキーレジスタ15に格納される。かかる状態で、ユニバーサルメモリ1はロック状態に保持される。
ユニバーサルメモリ1のロック状態を解除する場合、プログラムからのアンロック指示に従ってアンロックコマンドが発生され、このアンロックコマンドとともにバーストライトシーケンスで転送されてくるデータがバッファ17に保持され、比較器18でキーレジスタ15のキーデータと比較される。ここで、このアンロックコマンドとともに転送されてくるデータがキーレジスタ15に格納されているキーデータと同じものであれば、比較器18からリセット信号R1が出力される。このリセット信号R1はOR回路19を介して、リセット信号Rとしてロックレジスタ8に供給され、このロックレジスタ8をリセットする。これにより、ユニバーサルメモリ1がロック解除される。
また、メモリセルアレイ2(図1)の全データを初期化する上記のクリアオール(CLRALL)コマンドがあると、制御論理部20はこのクリアコマンドを受けたことを示すクリアオールコマンド信号Clrall-cmdを出力し、これがOR回路19を介して、リセット信号Rとしてロックレジスタ8に転送される。これによってもロックレジスタ8はリセットされ、ユニバーサルメモリ1のロック状態が解除される。
なお、かかる構成の第1の実施形態において、ロックコマンドでしかユニバーサルメモリ1をロック状態(即ち、ロックレジスタ8をセット状態)にすることができない場合には、突然パワーダウン(電源オフ)があると、ロックコマンドを発生することができず、ユニバーサルメモリ1のデータを保護することができない可能性がある。このためには、バッテリバックアップされたサブ電源、あるいは、パワーダウンしても、ロックコマンドを受けるに充分な時間電力の供給が可能なキャパシタなどを、ユニバーサルメモリやユニバーサルメモリモジュールを搭載した情報処理装置に設けることが望ましい。装置に設計上の制約を課さないためには、上記のように、ロックコマンドによってロックレジスタ8にセット信号Sを供する構成に加え、パワーダウンを検出すると直ちにロックレジスタ8をセット状態にする図3または図4に示すセット信号発生部10も併用することが望ましい。 また、ロックコマンド,アンロックコマンドとともに転送されてくるデータを保持するバッファ16,17としては、図1におけるバッファ6を兼用してもよい。
さらに他の具体例としては、情報処理装置に指紋認証装置や顔認証装置などの認証手段を設け、少なくとも情報処理装置が使用されておらず、そのユニバーサルメモリやユニバーサルメモリモジュールが待機状態にあるときには、ロック状態、かつかかる認証手段が可動状態にあるようにし、操作者がこの情報処理装置に対して操作をする前にこの認識装置により操作者を認識し、認識手段が正規の操作者であることを認識すると、アンロックコマンドを発行するようにしてもよい。これによっても、ユニバーサルメモリあるいはユニバーサルメモリモジュール内のデータを保護することができる。
かかる具体例では、ユーザの指示により、コンピュータシステムの運用を終了するシャットダウンや節電のためにコンピュータを停止させて待機状態にするスリープモード,節電のために、タスクを停止し、作業中のデータをメモリに保管して電源をオフするサスペンドモードなどへ移行したとき、キーボードやマウス操作が一定時間行なわれなかったとき、バッテリ切れや停電による電源の異常時、あるいはメモリモジュールの取り外しや個人認証用のチップ,カードの取り外し時に、上記の認証手段が可動するようにする。
図6は本発明によるユニバーサルメモリモジュールの一実施形態を示す斜視図であって、1A,1B,1C,1Dは本発明によるユニバーサルメモリのLSI(メモリLSI)、21はこの実施形態のユニバーサルメモリモジュール、22は圧電素子、23はロック信号線、24は基板、25はソケット差し込み部である。
同図において、共通の基板24に複数個、ここでは、4個のメモリLSI1A,1B,1C,1Dを搭載してユニバーサルメモリモジュール21が形成されている。この基板24には、図示しない情報処理装置に設けられたソケットに差し込み、ユニバーサルメモリモジュール21をこの情報処理装置に着脱可能に装着するためのソケット差し込み部22が設けられており、このソケット差し込み部22の一部に圧電素子22が埋め込まれている。
基板24のソケット差し込み部25を情報処理装置に設けられている図示していないソケットに差し込んだ状態とこのソケットから抜き取った状態とで圧電素子22に加わる圧力に変化が生じ、これにより、圧電素子22から出力される電流に変化が生ずる。この出力信号をロック信号として、ロック信号線23を介し、メモリLSI1A,1B,1C,1Dに夫々供給している。
これらメモリLSI1A,1B,1C,1Dは夫々、例えば、図4に示す構成のセット信号発生部10を備えており、ロックピンから入力されたこのロック信号から、先に説明したようにして、基板24のソケット差し込み部25がソケットから抜き取られたときの変化を検出してロックレジスタ8のセット信号Sを生成する。
このようにして、基板24のソケット差し込み部25をソケットから抜き取り、ユニバーサルメモリモジュール21を情報処理装置(図示せず)から取り外すと、夫々のメモリLSIにおいて、ユニバーサルメモリ1(図1)からデータを読み出すことができないロック状態となる。
なお、このようにしてロック状態に設定されているメモリLSI1A,1B,1C,1Dをロック解除するためには、例えば、先に説明したクリアオールコマンドを用いる方法を適用すれば充分であり、アンロックコマンドを実装する必要はない。
かかるユニバーサルメモリモジュール21については、勿論、図3に示すセット信号発生部10を用いることもできるし、また、図5に示すように、セット信号Sの発生手段や認証によるリセット信号Rの発生手段を用いることもできる。
次に、認証なしにアクセス可能なメモリ領域(これを、以下、自由アクセス領域という)を設定できるようにした本発明によるユニバーサルメモリやユニバーサルメモリモジュール及びこれを用いた情報処理装置の第2の実施形態について説明する。
この第2の実施形態は、ユニバーサルメモリあるいはユニバーサルメモリモジュールの所定領域に認証なしにアクセスすることができる自由アクセス領域を設定可能とするものであり、ユニバーサルメモリを例にして、これを図7によって概略的に説明する。
同図において、ユニバーサルメモリ1のメモリ領域1aでは、データが1バイト(=8ビット)単位で記憶されるものであり、かかるバイト単位のバイトデータ毎にアドレスが割り当てられている。ここで、このメモリ領域1aの図面上横方向のビットの列を行とし、1行でのビット数を8m(但し、mは正整数)とすると、1行当たりm個のバイトデータが格納できることになり、夫々のバイトデータ毎にアドレスが割り当てられるから、m個のアドレスが割り当てられることになる。かかるアドレスのうち、特に、各行の先頭のバイトデータに割り当てられるアドレスを行アドレスと呼ぶことにして、図示するように、このメモリ領域1aでの最下位のアドレスをAmin(=0)、最上位のアドレスをAmaxとする。
この実施形態では、かかるメモリ領域1aに認証なしにアクセスが可能な自由アクセス領域を設定するものである。ここでは、図示するように、最下位のアドレスAmin側のこのアドレスAminを含む所定領域(アドレスAmin〜AFLの領域)に自由アクセス領域26aを設定し、アドレスが上位側の最上位アドレスAmaxを含む所定領域(アドレスAFU〜Amaxの領域)に自由アクセス領域26bを設定するものである。かかる自由アクセス領域26a,26bでは、認証なしにアクセスが可能であるから、パワーオン直後直ちにアクセスすることができ、使用することができる。勿論、自由アクセス領域26a,26bのいずれか一方を設定するものであってもよい。
図8は本発明によるユニバーサルメモリのかかる第2の実施形態の要部、即ち、自由アクセス領域の設定手段の一具体例を示すブロック構成図であって、27LはL−MASK(下位アドレス側マスク)レジスタ、27UはU−MASK(上位アドレス側マスク)レジスタ、28L1,28L2,……,28L12、28U1,28U2,……,28U12はアンドゲート、29L,29UはNORゲート、30L,30Uはアンドゲート、31はORゲートであり、8は前出のロックレジスタである。
同図において、L−MASKレジスタ27Lは不揮発性のレジスタであって、ユニバーサルメモリ1のメモリセルアレイ2(図1)での最下位のアドレス側に、図7に示す自由アクセス領域26aを設定するためのものであり、また、U−MASKレジスタ27Uも不揮発性のレジスタであって、同じくメモリセルアレイ2(図1)での最上位のアドレス側に、図7に示す自由アクセス領域26bを設定するためのものである。これらL−MASKレジスタ27L,U−MASKレジスタ27Uは夫々、“1”または“0”のビット15,14,……,0の16ビットのデータ(以下、L−MASKデータ,U−MASKデータという)が格納されるものであり、特に、ビット0は自由アクセス領域を設定するか否かを決める領域設定ビット、即ち、LMEビット(L−MASKレジスタ27Lの場合)、UMEビット(U−MASKレジスタ27Uの場合)として用いる。なお、ビット15からビット1までのうちのビット3,2,1は“0”に設定されている。
また、L−MASKレジスタ27L,U−MASKレジスタ27Uでのビット15からビット4までの12ビットの領域は夫々、自由アクセス領域26a,26bの範囲を規定するデータが格納されるL−MASKフィールド,U−MASKフィールドである。かかるデータを、以下、L−MASKフィールドデータ,U−MASKフィールドデータという。最下位アドレスAmin側の自由アクセス領域26aのアドレスは最上位側のビットが“0”であり、また、最上位アドレスAmax側の自由アクセス領域26bのアドレスは最上位側のビットが“1”である。このことを利用してL−MASKフィールドデータ,U−MASKフィールドデータが決められるものであり、これにより、自由アクセス領域26a,26bが所望とするものに規定される。
ここで、図8においては、L−MASKレジスタ27L,U−MASKレジスタ27Uでのビットi(但し、i=0,1,2,……,15)をL−MASKビット(i),U−MASKビット(i)と表現し、ビットmからビットn(但し、m,n=0,1,2,……,15:m≦n)までをL−MASKビット(m:n),U−MASKビット(m:n)と表現する。L−MASKビット(15),U−MASKビット(15)は最上位ビットである。また、L−MASKフィールドデータ(15:4),U−MASKフィールドデータは夫々、L−MASKフィールドデータ(15:4),U−MASKフィールドデータ(15:4)で表わされる。
なお、RAはCPUからユニバーサルメモリ1(図7)をアクセスするアドレスの一部(RASアドレス:行アドレス)であり、その上位12ビット(これをRA(11:0)で表現する)が自由アクセス領域26a,26bのアドレスであるか否かの判定に用いられる。なお、アドレスRA(11:0)の各ビットを、その上位から順に、RAビット(11),(10),……,(0)と表現する。従って、RAビット(11)がその最上位ビット、RAビット(0)が最上位ビットから12番目のビットであって、L−MASKレジスタ27LのL−MASKフィールド,U−MASKレジスタ27UのU−MASKフィールド夫々でのビットと対応付けられている。
以下、まず、L−MASKレジスタ27Lのデータを用いることによる、入力アドレスRAがメモリ領域1a(図7)での最下位アドレス側の自由アクセス領域26a内のアドレスであるか否かの判定動作について説明する。
L−MASKレジスタ27Lからは、そこに格納されている全16ビットのL−MASKビット(15:0)が読み出され、自由アクセス領域26aを設定するか否かを決めるLMEビット、即ち、L−MASKビット(0)がアンドゲート30Lに供給され、L−MASKフィールドからのL−MASKビット(15),(14),……,(4)が夫々別々のアンドゲート28L1,28L2,……,28L12に供給されている。
ここで、L−MASKビット(0)、即ち、LMEビットが“0”ビットである場合には、アンドゲート30Lの出力L−Freeも“0”となる。このアンドゲート30Lの出力L−Freeとロックレジスタ8が出力するロック・アンロック信号L/UとはORゲート31に供給されており、アンドゲート30Lの出力L−Freeが“0”となると、ロックレジスタ8から出力されるロック・アンロック信号L/UがORゲート31を介して図1に示すアンドゲート91,92,……,916に供給される。従って、先に説明したように、このロック・アンロック信号L/Uに応じた動作が行なわれることになる。
パワーオンなどとともに、入力行アドレスRAが生成され、その上位12ビットのRAビット(11:0)が入力されると、その最上位ビットのRAビット(11)はL−MASKビット(15)と同じアンドゲート28L1に供給され、次に上位のRAビット(10)はL−MASKビット(14)と同じアンドゲート28L2に供給され、……、12番目のビットのRAビット(0)はL−MASKビット(4)と同じアンドゲート28L12に供給される。入力行アドレスRAの上位12ビットのRAビット(11:0)が夫々、L−MASKレジスタ27LのL−MASKフィールドに格納されているL−MASKビット(15:4)とビット毎にアンド処理される。
ここで、最下位ビットAmin側の自由アクセス領域26aでのアドレスは、この自由アクセス領域26aの大きさに応じた上位nビットが“0”であり、それより下位のビットが“1”または“0”である。このことから、L−MASKレジスタ27LのL−MASKフィールドデータ(15:4)としては、そのビット15を含む上位nビットを“1”とし、それより下位のビット4までを全て“0”に設定する。
L−MASKフィールドデータ(15:4)をこのように設定することにより、アンドゲート28L1,28L2,……,28L12の出力は全て“0”(all zero(オールゼロ))となり、自由アクセス領域26aから外れた行アドレスであるときには、アンドゲート28L1,28L2,……,28L12の出力の少なくとも1つが“1”となる。
アンドゲート28L1,28L2,……,28L12の出力はNORゲート29Lに供給されるが、アンドゲート28L1,28L2,……,28L12の出力がall zeroである場合には、NORゲート29Lの出力は“1”なり、アンドゲート28L1,28L2,……,28L12の出力の少なくともいずれか1つが“1”となると、NORゲート29Lの出力は“0”となる。
かかる状態で、L−MASKビット(0)、即ち、LMEビットが“1”である場合には、アンドゲート30Lの出力L−Freeも“1”となるから、ORゲート31の出力も、ロックレジスタ8から出力されるロック・アンロック信号L/Uが“1”であっても、また、“0”であっても、“1”となり、ロックレジスタ8から“1”のロック・アンロック信号L/Uに“1”が出力されているのと同じ状態となって、ユニバーサルメモリ1はアンロック状態に保持される。
このようにして、入力行アドレスRAにより、ユニバーサルメモリ1でのL−MASKレジスタ27LのL−MASKデータによって設定される自由アクセス領域26aが、認証なしに、アクセスできることになる。
入力行アドレスRAの上位12RAビット(11:0)がL−MASKビット(15:4)で規定される自由アクセス領域26aのアドレスでない場合には、アンドゲート28L1,28L2,……,28L12のいずれかの出力が“1”となるから、アンドゲート30Lの出力L−Freeも“0”となり、このとき、アンドゲート30Lの出力L−Freeも“0”であれば、ORゲート31の出力はロックレジスタ8から出力されるロック・アンロック信号L/Uとなる。従って、このロック・アンロック信号L/Uが“0”であれば、この入力行アドレスRAでユニバーサルメモリ1をアクセスすることができないことになる。
次に、U−MASKレジスタ27Uのデータを用いることによる、入力行アドレスRAがメモリ領域1a(図7)での最上位行アドレス側の自由アクセス領域26b内のアドレスであるか否かの判定動作について説明する。
U−MASKレジスタ27Uからは、そこに格納されている全16ビットのU−MASKビット(15:0)が読み出され、自由アクセス領域26bを設定するか否かを決めるUMEビット、即ち、U−MASKビット(0)がアンドゲート30Uに供給され、U−MASKフィールドからのU−MASKビット(15),(14),……,(4)が夫々別々のアンドゲート28U1,28U2,……,28U12に供給されている。
ここで、U−MASKビット(0)、即ち、UMEビットが“0”である場合には、アンドゲート30Uの出力U−Freeも“0”となる。このアンドゲート30Uの出力U−Freeが、アンドゲート30Lの出力L−Freeやロックレジスタ8が出力するロック・アンロック信号L/Uとともに、ORゲート31に供給されており、アンドゲート30Uの出力U−Freeとアンドゲート30Lの出力L−Freeとが“0”となると、ロックレジスタ8から出力されるロック・アンロック信号L/UがORゲート31を介して図1に示すアンドゲート91,92,……,916に供給される。従って、先に説明したように、このロック・アンロック信号L/Uに応じた動作が行なわれることになる。
パワーオンなどとともに、入力行アドレスRAが生成され、その上位12ビットのRAビット(11:0)が入力されると、その最上位ビットのRAビット(11)は反転されてU−MASKビット(15)と同じアンドゲート28U1に供給され、次に上位のRAビット(10)は反転されてU−MASKビット(14)と同じアンドゲート28U2に供給され、……、最上位の12番目のビットのRAビット(0)は反転されてU−MASKビット(4)と同じアンドゲート28U12に供給される。これにより、入力行アドレスRAの上位12ビットのRAビット(11:0)が夫々反転されて、U−MASKレジスタ27UのU−MASKフィールドに格納されているU−MASKフィールドデータ(15:4)とがビット毎にアンド処理される。
ここで、最上位ビットAmax側の自由アクセス領域26bでのアドレスは、この自由アクセス領域26bの大きさに応じた上位n’ビットが“1”であり、それより下位のビットが“1”または“0”である。このことから、U−MASKレジスタ27UのU−MASKフィールドデータ(15:4)としては、そのビット15を含む上位n’ビットを“1”とし、それより下位のビット4までを全て“0”とする。
U−MASKフィールドデータ(15:4)をこのように設定することにより、RAビット(11:0)の全てのビットが反転されてアンドゲート28U1,28U2,……,28U12に供給されるものであり、アンドゲート28U1,28U2,……,28U12の出力は全て“0”(all zero(オールゼロ))となり、自由アクセス領域26aから外れた行アドレスであるときには、アンドゲート28U1,28U2,……,28U12の出力の少なくとも1つが“1”となる。
アンドゲート28U1,28U2,……,28U12の出力はNORゲート29Uに供給されるが、アンドゲート28U1,28U2,……,28U12の出力がall zeroである場合には、NORゲート29Uの出力は“1”なり、アンドゲート28U1,28U2,……,28U12の出力の少なくともいずれか1つが“1”となると、NORゲート29Uの出力は“0”となる。
かかる状態で、U−MASKビット(0)、即ち、UMEビットが“1”である場合には、アンドゲート30Uの出力U−Freeも“1”となるから、ORゲート31の出力も、ロックレジスタ8から出力されるロック・アンロック信号L/Uが“1”であっても、また、“0”であっても、“1”であり、ロックレジスタ8から“1”のロック・アンロック信号L/Uが出力されているのと同じ状態となって、ユニバーサルメモリ1はアンロック状態に保持される。
このようにして、入力行アドレスRAにより、ユニバーサルメモリ1でのU−MASKレジスタ27UのU−MASKフィールドデータによって設定される自由アクセス領域26bが、認証なしに、アクセスできることになる。
入力行アドレスRAの上位12RAビット(11:0)がU−MASKビット(15:4)で規定される自由アクセス領域26aのアドレスでない場合には、アンドゲート28U1,28U2,……,28U12のいずれかの出力が“1”となるから、NORゲート29Uの出力やアンドゲート30Uの出力U−Freeが“0”となり、このとき、アンドゲート30Uの出力U−Freeも“0”であれば、ORゲート31の出力はロックレジスタ8から出力されるロック・アンロック信号L/Uとなる。従って、このロック・アンロック信号L/Uが“0”であれば、この入力行アドレスRAでユニバーサルメモリ1をアクセスすることができないことになる。
このようにして、自由アクセス領域26a,26bのアクセスが電源の投入から可能となり、これら以外のメモリ領域では、それをアクセスするのに認証が必要となる。このことは、複数のユニバーサルメモリモジュールを結合してメモリを構成する場合についても同様である。この場合、これらユニバーサルメモリモジュール毎に図8に示す自由アクセス領域設定手段が設けられているが、自由アクセス領域を設定しないユニバーサルメモリモジュールでは、L−MASKレジスタ27LのLMEデータやU−MASKレジスタ27UのUMEデータを“0”とすればよい。
図9は本発明によるユニバーサルメモリモジュールを用いた情報処理装置の第1の実施形態の要部を示すブロック構成図であって、32はメモリ装置、32a,32bはユニバーサルメモリモジュール、33はCPU(中央処理装置)、34はメモリ制御部、35はデータバスである。ここで、メモリ装置32が図17でのユニバーサルメモリ装置102に相当するものである。後述する他の実施形態についても同様である。
同図において、データ幅64ビットで64Mバイトの2つのユニバーサルメモリモジュール32a,32bが、データ幅64ビットのデータバス35により、データDをデータ幅64ビットで処理するCPU33と接続されており、これらユニバーサルメモリモジュール32a,32bにより、データなどを格納するデータ幅64ビット,128Mバイトのメモリ装置32が構成されている。かかるメモリ装置32を形成するユニバーサルメモリモジュール32a,32bの32ビットのアドレスA(31:0)はCPU33から出力され、メモリ制御部34でユニバーサルメモリモジュール32a,32bのコマンドとアドレスに変換される。かかるコマンドはユニバーサルメモリモジュール32a,32bの制御ピンCS#,RAS#,CAS#,……に与えられ、アドレスの最上位ビットはユニバーサルメモリモジュール32a,32bのいずれか一方を選択する制御ピンCS#のコマンド(CS(チップ・セレクト))として用いられる。アドレスはアドレスピンA(11:0)とバンクアドレスピンBA(1:0)に夫々与えられる。
なお、これらユニバーサルメモリモジュール32a,32bに夫々、図8に示す自由アクセス領域設定手段が設けられている。
また、このアドレスピンA(11:0)に与えられるアドレスが、図8に示す上位12ビットの入力行アドレスRAビット(11:0)として図8に示す自由アクセス領域判定手段にも使用される。
ここで、ユニバーサルメモリモジュール32aは、I/Oピン数が16個で16Mバイトのユニバーサルメモリを4個、列方向(図7での横方向)に配列したものであり、I/Oピン数が16×4=64個(即ち、データ幅が64ビット)で64Mバイトのメモリモジュールである。同様にして、ユニバーサルメモリモジュール32bも、I/Oピン数が16個で64Mバイトのユニバーサルメモリを4個、列方向に配列したものであり、I/Oピン数が16×4=64個(即ち、データ幅が64ビット)で64Mバイトのメモリモジュールである。これらユニバーサルメモリモジュール32a,32bは、図10に示すように、行方向(縦方向)に配列されるように組み合わされ、データ幅が64ビットで、128Mバイトのメモリ装置32が形成される。
かかるユニバーサルメモリモジュール32a,32bでは、上記のように、バイトデータ毎に割り当てられるアドレスが用いられる。ユニバーサルメモリモジュール32a,32bからなるユニバーサルメモリモジュール32はデータ幅が64ビットであるから、行毎に64ビット÷8ビット=8バイト分のアドレスが割り当てられることになる。
なお、図10において、ユニバーサルメモリモジュール32a,32bでの破線で区切られる領域は夫々、これらモジュール32a,32bを構成する上記のI/Oピン数が16個で16Mバイトのユニバーサルメモリを表わすものである。
このメモリ装置32では、128Mバイト÷8ビット=128M個のバイトデータが可能であり、夫々毎にアドレスが割り当てられるから、設定されるアドレスは16進法(0x)で8桁、32ビットからなり、「0x00000000」から「0x07FFFFF」までとしている。従って、このユニバーサルメモリモジュール32の最下位アドレスAminは「0x00000000」であり、最上位アドレスAmaxは「0x07FFFFF」である。なお、ユニバーサルメモリモジュール32aには、「0x00000000」から「0x03FFFFF」までのアドレスが割り当てられ、ユニバーサルメモリモジュール32bには、「0x04000000」から「0x07FFFFF」までのアドレスが割り当てられることになる。
ここで、メモリ装置32の最下位アドレスAmin側に、例えば、ワークメモリ用として、この最下位アドレスAminから1Mバイトの容量の自由アクセス領域26a(図7)を設定するものとすると、その上限のアドレスAFLは「0x000FFFFF」であるから、この自由アクセス領域26aはアドレス「0x00000000」〜「0x000FFFFF」によって規定される。また、メモリ装置32の最上位アドレスAmax側に、例えば、ファームウェア用として、最上位アドレスAmaxから8Mバイトの容量の自由アクセス領域26b(図7)を設定するものとすると、その下限のアドレスAFUは「0x07800000」であるから、この自由アクセス領域26bはアドレス「0x07800000」〜「0x07FFFFFF」によって規定される。
このように自由アクセス領域26a,26bを設定するために、図8に示す自由アクセス領域設定手段では、ユニバーサルメモリモジュール32a,32b夫々のL−MASKレジスタ27L,U−MASKレジスタ27Uに次のような値のデータを設定する。
まず、最下位アドレスAmin側の自由アクセス領域26aの設定について説明すると、このユニバーサルメモリモジュール32ではアドレスの16進数(Ox)の最上位桁「0」は用いない。また、アドレスの16進数(Ox)の2番目に上位の桁の上から2番目のビットは、図9におけるCS(チップセレクタ)に用いる。この自由アクセス領域26aのアドレスのかかるビット(ビット26)は「0」であり、これはユニバーサルメモリモジュール32aを指定するものである。
ユニバーサルメモリユニット32で最下位アドレスAmin側の自由アクセス領域26aのアドレスは、「0x00000000」〜「0x000FFFFF」であるから、これらのアドレスは32ビット(=8桁×4ビット)のうち上位12ビット(=3桁×4ビット)が全て“0”である。即ち、“1”,“0”のいずれも取り得るビットをxとすると、自由アクセス領域26aのアドレスは、
〔数1〕
|0000|0000|0000|xxxx|xxxx|xxxx|xxxx|xxxx|
と表わすことができる。なお、かかるアドレスのビットは、その上位から順に、ビット31,30,29,……,0となる。
因みに、ユニバーサルメモリユニット32で最上位アドレスAmax側の自由アクセス領域26bのアドレスは、「0x07800000」〜「0x07FFFFFF」であるから、
〔数2〕
|0000|0111|1xxx|xxxx|xxxx|xxxx|xxxx|xxxx|
と表わすことができる。
これら両者のアドレスでは、最上位桁(「0000」であって、いずれもビット31〜28は“0”である)は、メモリモジュールでは、使用されない。2番目に上位の桁では、
自由アクセス領域26a:0000
自由アクセス領域26b:0111
であり、この桁での最上位のビット27(ともに“0”)も使用しない。次に上位のビット26は、自由アクセス領域26aで“0”、自由アクセス領域26bで“1”であって、これをユニバーサルメモリモジュール32a,32bを選択するCS(チップ・セレクト)に利用する。これらを除いたビット25からビット0までの26ビットがメモリモジュールに有効なアドレスであり、そのうちの上位12ビット(ビット25〜14)を基に、自由アクセス領域26a,26bを規定するL−MASKフィールドデータ(15:4),U−MASKフィールドデータ(15:4)を設定するものである。
そこで、自由アクセス領域26aでの数1に示すアドレスについてみると、64Mバイトのユニバーサルメモリモジュール32aでのアドレスの有効なビット数は、上記数1で表わされるアドレスのビット数32から上記のビット31〜26の6ビットを差し引いた26ビットである。また、この26ビットの有効ビット数で1Mバイトの自由アクセス領域26aのアドレスを表わすと、
〔数3〕
00|0000|xxxx|xxxx|xxxx|xxxx|xxxx|
となり、下位20ビットが有効ビットということになる。従って、1Mバイトの自由アクセス領域26aのアドレスでは、上位6ビット(=26ビット−20ビット)が全て“0”である。残りのビットは“1”または“0”である。
そこで、図8に示す自由アクセス領域設定手段において、有効ビット数が26の入力行アドレスRAのうちの上位6ビットが全て“0”であるとき、この入力行アドレスRAは自由アドレス領域26内のアドレスであることになり、これを判定するために、上記数3で表わされる自由アクセス領域26aのアドレスの“0”と固定される上位6ビットが“1”となるように、L−MASKレジスタ27LのL−MASKフィールドデータを設定し、入力行アドレスRAとL−MASKフィールドデータとのビット毎のアンド処理結果がall zeroとなるようにするものである。ここで、上位6ビット以外の“x”のビットは全て“0”とし、上位12ビットを用いてL−MASKフィールドデータ(15:4)とし、これに“1”のLMEビットを含む4ビット「0001」を下位側に付加して、L−MASKレジスタ27Lに格納する。
従って、L−MASKレジスタ27Lに格納されるデータは、
〔数4〕
|1111|1100|0000|0001|=OxFC01
となる。ここで、図8の説明と対応させて、左側の最上位ビットから順にビット15,14,……,4,……,0とする。ビット0がLMEビットである。
このように、最下位アドレスAmin側の自由アクセス領域26aに対して、数4のL−MASKフィールドデータ(15:4)を設定することにより、上位6ビットが全て“0”であるとき、アンドゲート28L1,28L2,……,28L12はall zeroとなり、また、この上位6ビットのうちの1つでも“1”であるときには、アンドゲート28L1,28L2,……,28L12はall zeroとならない。これにより、入力行アドレスRAが自由アクセス領域26a内のアドレスであるか否かを判定できることになる。
なお、以上はユニバーサルメモリユニットの全体の有効ビット数と自由アクセス領域の有効ビット数との差から、L−MASKフィールドデータ(15:4)で“1”とする上位ビットを決定するものであったが、U−MASKフィールドデータ(15:4)でも、後述するように、同様にして求めることができるものであるし、ユニバーサルメモリユニットの容量と自由アクセス領域の容量との比から、L−MASKフィールドデータ(15:4),U−MASKフィールドデータ(15:4)とでの“1”とする上位ビット数を決定することができる。例えば、上記ユニバーサルメモリモジュール32aの自由アクセス領域26aの場合、前者が64Mバイト、後者が1Mバイトであるから、
1Mバイト/64Mバイト=1/64=2-6
てあり、このべき数6が“1”とすべき上位のビット数を表わしている。
ここで、図10に示すように、ユニバーサルメモリモジュール32aの上位ビット側には自由アクセス領域を設けないから、図8におけるU−MASKレジスタ27Uに設定するデータは、ビット0のUMEビットを“0”とするデータとする。ここでは、全てのビットを“0”とする。従って、このデータは Ox0000 である。
次に、ユニバーサルメモリモジュール32bの上位の行アドレス側の8Mバイトの自由アクセス領域26bについて説明する。
ユニバーサルメモリユニット32で最上位アドレスAmax側の自由アクセス領域26bのアドレスは、「0x07800000」〜「0x07FFFFFF」であるから、上記のように、
〔数2〕
|0000|0111|1xxx|xxxx|xxxx|xxxx|xxxx|xxxx|
と表わすことができる。ここで、上記のように、上位6ビットを除いた有効ビット数26のアドレスは、
〔数5〕
11|1xxx|xxxx|xxxx|xxxx|xxxx|xxxx|
で表わされる。自由アクセス領域26bのアドレスの有効ビット数は23ビットであるから、“1”は3ビット(=26ビット−23ビット、あるいは8Mバイト/64Mバイト=1/8=2-3)である。従って、26バットの入力行アドレスRAのうち、入力行アドレスRA(15:4)の上位3ビットが“1”である入力行アドレスRAがこの自由アクセス領域26bのアドレスということになる。これを判定するために、上記数5で表わされる自由アクセス領域26bのアドレスの“1”と固定される上位3ビットが“1”となるように、U−MASKレジスタ27UのU−MASKフィールドデータを設定し、入力行アドレスRAの反転した各ビットとU−MASKフィールドデータの各ビットとの毎のアンド処理結果がall zeroとなるようにするものである。ここで、上位3ビット以外の“x”ビットは全て“0”とし、上位12ビットを用いてU−MASKフィールドデータ(15:4)とし、これに“1”のUMEビットを含む4ビット「0001」を下位側に付加して、U−MASKレジスタ27Uに格納する。
従って、U−MASKレジスタ27Uに格納されるデータは、
〔数6〕
|1110|0000|0000|0001|=OxE001
となる。ここで、図8の説明と対応させて、左側の最上位ビットから順にビット15,14,……,4,……,0とする。ビット0がUMEビットである。
このように、最下位アドレスAmax側の自由アクセス領域26bに対して、数6のU−MASKフィールドデータ(15:4)を設定することにより、上位3ビットが全て“1”であるとき、アンドゲート28U1,28U2,……,28U12はall zeroとなり、また、この上位3ビットのうちの1つでも“0”であるときには、アンドゲート28U1,28U2,……,28U12はall zeroとならない。これにより、入力行アドレスRAが自由アクセス領域26b内のアドレスであるか否かを判定できることになる。
ここで、図10に示すように、ユニバーサルメモリモジュール32bの下位ビット側には自由アクセス領域を設けないから、図8におけるL−MASKレジスタ27Lに設定するデータは、ビット0のLMEビットを“0”とするデータとする。ここでは、全てのビットを“0”とする。従って、このデータは Ox0000 である。
以上のようにして、図9におけるユニバーサルメモリモジュール32a,32bに夫々自由アクセス領域26a,26bが設定されることになる。
図11は以上にしてユニバーサルメモリモジュール32a,32bに対して設定されるL−MASKレジスタ27LやU−MASKレジスタ27Uのデータを示すものである。
図12は本発明によるユニバーサルメモリモジュールとこれを用いた情報処理装置の第2の実施形態の要部を示すブロック構成図であって、図9に対応する部分には同一符号をつけて重複する説明を省略する。
同図において、この実施形態は、上記の構成をなすユニバーサルメモリモジュール32a,32bがその列方向に配列・組み合わされてデータ幅128ビットのデータバス35に接続された構成をなしている。かかるユニバーサルメモリモジュール32a,32bからなるメモリ装置32’では、128ビットのデータが入出力され、かかる128ビットのデータの上位64ビットがユニバーサルメモリモジュール32aに割り当てられ、下位64ビットがユニバーサルメモリモジュール32bに割り当てられる。また、同じCS(チップ・セレクト)が同時にユニバーサルメモリモジュール32a,32bに与えられる。従って、入力アドレスが同時にユニバーサルメモリモジュール32a,32bに作用することになる。なお、ユニバーサルメモリモジュール32a,32bには夫々、図8に示す自由アクセス領域設定手段が設けられている。
図13はかかるメモリ装置32’のメモリ構成を示すものであって、列方向に128ビットで、128Mバイトのメモリ容量である。各行でのアドレス数は128ビット/8ビット=16であり、全アドレス数は、図10に示すメモリ装置32と同様、「0x07FFFFFF」である。従って、CPU33から見たメモリ装置32’のアドレスは「0x00000000」〜「0x07FFFFFF」である。図13はこのCPU33から見たメモリ装置32’のアドレスを示している。これに対し、ユニバーサルメモリモジュール32a,32b夫々のアドレス数は、CPU33から見たメモリ装置32’のアドレス数の1/2の「0x03FFFFFF」であり、ユニバーサルメモリモジュール32a,32b夫々のアドレスは「0x00000000」〜「0x03FFFFFF」である。即ち、CPU33から見たメモリ装置32’のアドレスを下位側に1ビットシフトしたもの(1/2倍したもの)がユニバーサルメモリモジュール32a,32b夫々のアドレスとなる。
ここで、この実施形態では、メモリ装置32の最下位のアドレスAmin側にユニバーサルメモリモジュール32a,32bで0.5Mバイトずつの1Mバイトの、例えば、ワークメモリ用の自由アクセス領域26a1,26a2が設定され、また、メモリ装置32の最上位のアドレスAmax側にユニバーサルメモリモジュール32a,32bで4Mバイトずつの8Mバイトの、例えば、ファームウェア用の自由アクセス領域26b1,26b2が設定されているものとする。
そこで、ユニバーサルメモリモジュール32a,32bに同時に入力アドレスRAが供給されて作用するから、0.5Mバイトの自由アクセス領域26a1,26a2のアドレスは夫々、「0x00000000」〜「0x0007FFFF」である。即ち、
〔数7〕
|0000|0000|0000|0xxx|xxxx|xxxx|xxxx|xxxx|
で表わされる。従って、メモリモジュールで使用しない上位6ビットを除いた26ビットは、
〔数8〕
00|0000|0xxx|xxxx|xxxx|xxxx|xxxx|
であり、上位7ビットが“0”である。このことから、ユニバーサルメモリモジュール26a1,26a2に対する図8でのL−MASKレジスタ27Lの設定データとしては、上記数8で“0”ビットを“1”ビットに変換し、“x”ビットを“0”ビットに変換してその上位12ビットに、LMEビットを“1”とする4ビットを下位に付加した数9に示す、
〔数9〕
1111|1110|0000|0001|= OxFE01
となる。なお、最下位の“1”は上記のLMEビットである。
これをユニバーサルメモリモジュール32a,32bの容量64Mバイトと自由アクセス領域26a1,26a2の容量1/2Mバイトとの比率で求めると、
0.5Mバイト÷64Mバイト=1/128=2-7
であるから、ユニバーサルメモリモジュール26a1,26a2に対する図8でのL−MASKレジスタ27LのL−MASKレジスタ27Lのデータは、その上位7ビットを“1”とする。
次に、図13に示すユニバーサルメモリモジュール32’での上位アドレス側の8ビットの自由アクセス領域26bについて説明する。
メモリ装置32の最上位のアドレスAmax側にユニバーサルメモリモジュール32a,32bで4Mバイトずつ自由アクセス領域26b1,26b2が設定される。これらにも、同じ入力アドレスが供給されて作用するものであるから、4Mバイトの自由アクセス領域26b1,26b2のアドレスは夫々、「0x03CFFFFF」〜「0x03FFFFFF」である。即ち、
〔数10〕
|0000|0011|11xx|xxxx|xxxx|xxxx|xxxx|xxxx|
で表わされる。従って、メモリモジュールで使用しない上位6ビットを除いた26ビットは、
〔数11〕
11|11xx|xxxx|xxxx|xxxx|xxxx|xxxx|
であり、上位4ビットが“1”である。このことから、ユニバーサルメモリモジュール26b1,26b2に対する図8でのU−MASKレジスタ27Uの設定データは、上記数11で“x”ビットを“0”ビットに変換してその上位12ビットに、UMEビットを“1”とする4ビットを下位に付加した数12に示す、
〔数12〕
1111|0000|0000|0001|= OxF001
となる。なお、最下位のビットは上記のUMEビットである。
これをユニバーサルメモリモジュール32a,32bの容量64Mバイトと自由アクセス領域26b1,26b2の容量4Mバイトとの比率で求めると、
4Mバイト÷64Mバイト=1/16=2-4
であるから、ユニバーサルメモリモジュール26b1,26b2に対する図8でのU−MASKレジスタ27UのU−MASKレジスタ27Uのデータは、その上位4ビットを“1”とする。
図14は以上にしてユニバーサルメモリモジュール32a,32bに対して設定されるL−MASKレジスタ27LのL−MASKフィールドデータ(15:4)やU−MASKレジスチ27UのU−MASKフィールドデータ(15:4)を示すものである。
このようにして、この第2の実施形態においても、メモリ装置32’において、パワーオン直後でも、認証なしに使用することができる自由アクセス領域を設定することができ、かかる自由アクセス領域をファームウェアやワーキングメモリなどに使用することができる。
図15は本発明による情報処理装置の第3の実施形態におけるメモリ装置のメモリ構成の一具体例を示す図であって、32”はメモリ装置、32c,32dはユニバーサルメモリモジュールであって、前出図面に対応する部分には同一符号をつけて重複する説明を省略する。
同図において、この第3の実施形態は、3以上のユニバーサルメモリモジュールをそれらの行方向に配列したメモリ装置32”を用いるものであって、ここで、例えば、データ幅64ビットで64Mバイトの4個のユニバーサルメモリモジュール32a〜32dを行方向に配列したものとしている。かかるメモリ装置32”では、ユニバーサルメモリモジュール32a側を下位側のアドレスとし、最下位のアドレスAminをこのユニバーサルメモリモジュール32aの最下位のバイトデータに割り当てて、「0x00000000」とする。また、ユニバーサルメモリモジュール32d側を上位側のアドレスとし、このメモリ装置32”の最上位のアドレスAmaxをユニバーサルメモリモジュール32dの最上位のバイトデータに割り当てて、「0x0FFFFFFF」とする。なお、この第3の実施形態でのメモリ装置32”は図10で示す第1の実施形態でのメモリ装置32の2倍のメモリ容量を持つことになるので、その最上位のアドレスAmaxは図10に示すメモリ装置32の最上位のアドレスAmax「0x07FFFFFF」より1ビット多い「0x0FFFFFFF」となる。なお、夫々のユニバーサルメモリモジュール32a〜32d毎に、図8に示す自由アクセス領域設定手段が設けられている。
かかるメモリ装置32”において、最下位アドレスAmin側にこの最下位アドレスAminを含む1Mバイトの自由アクセス領域26aを設定し、最上位アドレスAmax側にこの最上位アドレスAmaxを含む8Mバイトの自由アクセス領域26bを設定するものとする。これ以外には、自由アクセス領域は設定しない。
下位側の自由アクセス領域26aでのアドレスは、図10に示すメモリ装置32と同様、「0x00000000」〜「0x000FFFFF」であり、これをビット列で表わすと、
〔数13〕
|0000|0000|0000|xxxx|xxxx|xxxx|xxxx|xxxx|
となる。また、上位側の自由アクセス領域26bのアドレスは、「0x0F800000」〜「0x0FFFFFFF」であり、これをビット列で表わすと、
〔数14〕
|0000|1111|1xxx|xxxx|xxxx|xxxx|xxxx|xxxx|
となる。なお、ユニバーサルメモリモジュール32a,32b,32c,32dのアドレスは、
ユニバーサルメモリモジュール32a:「0x00000000」〜「0x03FFFFFF」であるから、|0000|0011|1111|xxxx|xxxx|xxxx|xxxx|xxxx|
ユニバーサルメモリモジュール32b:「0x04000000」〜「0x07FFFFFF」であるから、|0000|0111|1111|xxxx|xxxx|xxxx|xxxx|xxxx|
ユニバーサルメモリモジュール32c:「0x07000000」〜「0x0BFFFFFF」であるから、|0000|1011|1111|xxxx|xxxx|xxxx|xxxx|xxxx|
ユニバーサルメモリモジュール32d:「0x0C000000」〜「0x0FFFFFFF」であるから、|0000|1111|1111|xxxx|xxxx|xxxx|xxxx|xxxx|
である。これらのアドレスでは、ユニバーサルメモリモジュール32a〜32d毎に上から2桁目での上位2ビットが異なっており、これがユニバーサルメモリモジュール32a〜32dを指定するCS(チップ・セレクト)となっている。ユニバーサルメモリモジュール32a〜32d毎のCSは、
ユニバーサルメモリモジュール32a:「00」
ユニバーサルメモリモジュール32b:「01」
ユニバーサルメモリモジュール32c:「10」
ユニバーサルメモリモジュール32d:「11」
となっている。
次に、下位側の自由アクセス領域26aについてみると、上記数13において、CSとなるビットまでの6ビットを除いた上位16ビットのアドレスは、
〔数15〕
|0000|00xx|xxxx|
となる。従って、図8における自由アクセス領域設定手段でのL−MASKレジスタ27Lのデータは、
〔数16〕
|1111|1100|0000|0001|=OxFC01
となる。最下位桁の4ビットは、その最下位ビットを唐P狽フLMEビットとするものである。同様にして、上位側の自由アクセス領域26bについてみると、上記数14において、CSとなるビットまでの6ビットを除いた上位16ビットのアドレスは、
〔数17〕
|111x|xxxx|xxxx|
となる。従って、図8における自由アクセス領域設定手段でのU−MASKレジスタ27Uのデータは、
〔数18〕
|1110|0000|0000|0001|=OxE001
となる。最下位桁の4ビットは、その最下位ビットを唐P狽フLMEビットとするものである。以上のデータは、図10に示すメモリ装置32の場合と同様であり、自由アクセス領域を指定するCSが変わるのみである。
なお、ユニバーサルメモリモジュール32aに対するU−MASKレジスタ27Uやユニバーサルメモリモジュール32dに対するL−MASKレジスタ27L、それに、自由アクセス領域が設定されないユニバーサルメモリモジュール32b,32cのL−MASKレジスタ27LやU−MASKレジスタ27Uでは、LMEデータやUMEデータが“0”のビットとする「Ox0000」が設定される。
これをユニバーサルメモリモジュール32aの容量64Mバイトと自由アクセス領域26aの容量1Mバイトとの比率で求めると、
1Mバイト÷64Mバイト=1/64=2-6
であるから、ユニバーサルメモリモジュール26aに対する図8でのL−MASKレジスタ27Lのデータは、その上位6ビットが“1”となる。また、ユニバーサルメモリモジュール32bの容量64Mバイトと自由アクセス領域26bの容量8Mバイトとの比率で求めると、
8Mバイト÷64Mバイト=1/8=2-3
であるから、ユニバーサルメモリモジュール26bに対する図8でのU−MASKレジスタ27Uのデータは、その上位3ビットが“1”となる。
図16は以上にしてユニバーサルメモリモジュール32a〜32dに対して設定されるL−MASKレジスタ27LのL−MASKフィールドデータ(15:4)やU−MASKレジスチ27UのU−MASKフィールドデータ(15:4)を示すものである。
このようにして、この第3の実施形態においても、メモリ装置32”において、パワーオン直後でも、認証なしに使用することができる自由アクセス領域を設定することができ、かかる自由アクセス領域をファームウェアやワーキングメモリなどに使用することができる。
また、L−MASKフィールドデータ(15:4)やU−MASKフィールドデータ(15:4)は、図12におけるCPU33によって設定されるが、ユニバーサルメモリモジュールの組み合わせの仕方や自由アクセス領域の大きさなどをもとに、上記のように、ユニバーサルメモリモジュール全体の有効ビット数と自由アクセス領域の有効ビット数の比率での2のべき数から、L−MASKフィールドデータ(15:4)やU−MASKフィールドデータ(15:4)での上位からの“1”のビット数を決定する。
ところで、この実施形態では、アドレスの最下位側と最上位側とに自由アクセス領域を設定するものであったが、自由アクセス領域の下限のアドレスと上限のアドレスを設定するレジスタを設け、また、アクセスしているアドレスを下限と上限のアドレスを保持するレジスタと比較する手段を設け、アドレスの下限と上限との間にある場合に認証なしにアクセスできるようにすることも可能である。
しかし、このようにすると、自由アクセス領域のアドレス範囲の設定の自由度は増すが、この実施形態のようにアドレスの最下位側と最上位側とに自由アクセス領域を設定する場合とに比べて、回路規模が大きくなる。
また、アドレスの最下位側と最上位側とにだけしか自由アクセス領域を設けられなくても、使い方を工夫することによって実用上の問題は発生しないため、この実施形態は回路規模を小さくできるという特有の効果も有している。
なお、以上の図9〜図15で説明した情報処理装置においては、メモリ装置32,32’,32”の各ユニバーサルメモリとして、図1,図3〜図5に示す構成を備えることができるものであるし、また、ユニバーサルメモリモジュール32a,32b,……としても、図6に示す構成も取り得るものである。