JP3954185B2 - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP3954185B2 JP3954185B2 JP01785098A JP1785098A JP3954185B2 JP 3954185 B2 JP3954185 B2 JP 3954185B2 JP 01785098 A JP01785098 A JP 01785098A JP 1785098 A JP1785098 A JP 1785098A JP 3954185 B2 JP3954185 B2 JP 3954185B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- signal
- memory
- output
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、連続するアドレスが順次に割り当てられた複数のメモリバンクを有するインタリーブ方式のメモリシステムに関する。
【0002】
【従来の技術】
従来、高速のメモリ読出動作を実現するメモリシステムとして、インタリーブ方式のメモリシステムが知られている。
インタリーブ方式のメモリシステムでは、複数のメモリバンクに順次に連続するアドレスが割り当てられる。これらのメモリバンクから連続するアドレスのデータを読み出す場合には、1回の読出動作で各バンクから順次にデータが読み出される。
【0003】
例えば、バンク0〜3を有する4バンク構成のメモリシステムでは、バンク0〜3に同一のアドレスを同時に入力し、各バンクのOE(output enable )端子をバンク0、バンク1、バンク2、バンク3の順にアサートすることで、連続するアドレスのデータが読み出される。
このため、アドレスが連続する場合のデータのアクセス時間は、アドレスが連続しないデータのアクセス時間と比較して1/4程度となり、見かけ上のアクセス速度が向上する。
【0004】
【発明が解決しようとする課題】
しかしながら、従来のインタリーブ方式のメモリシステムにあっては、次のような解決すべき課題があった。
バンク0〜3の4バンク構成のメモリシステムでは、1回のメモリ読出動作のためにアドレスバスを介してバンク0〜3に出力されたアドレスは、最後のアドレスであるバンク3のデータの読出動作が終了するまで、アドレスバス上に保持する必要がある。
このため、バンク3のデータを読み出してからバンク0のデータを読み出す際には、アドレスがアドレスバスに出力されてから最初のアドレスであるバンク0のデータが読み出されるまでのオーバーヘッド時間がかかってしまう。
したがって、連続するアドレスのデータをバンク0〜3から繰り返し読み出す場合には、バンク3とバンク0との間でデータを連続的に読み出すことができなかった。
【0005】
また、1回の読出動作により読出可能な連続するアドレスの間に外部のデバイスのアドレスが挿入されている場合、例えば、バンク0〜3の連続するアドレスのうち、バンク2とバンク3との間に外部のデバイスのアドレスが挿入されている場合には、バンク3のデータ読出動作は、次回のメモリ読出動作となるため、オーバーヘッド時間がかかってしまう。
このように、従来のインタリーブ方式のメモリシステムにあっては、高速メモリ読出動作が可能な利点を十分に生かすことができない場合があった。
【0006】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成1〉
複数のメモリバンクと、該複数のメモリバンクにインターリーブ方式で読み出しアクセスするためにアドレスを出力する制御部と、上記出力されたアドレスを取り込んで上記複数のメモリバンクの出力を制御するバスコントローラと、上記各メモリバンクから出力されるデータを一時的に保持するための複数のデータ保持回路とを備え、上記制御部が上記複数のデータ保持回路から順次、データを取り込むと次のアドレスを出力するメモリシステムにおいて、上記バスコントローラは、上記取り込んだアドレスを保持するためのアドレス保持回路と、該アドレス保持回路の保持するアドレスと上記取り込んだ次のアドレスとを比較して一致、不一致を判定する比較部と、該比較回路が一致と判定すると上記制御部にデータを取り込ませるために上記複数のデータ保持回路に対して現在のデータを保持させるべく制御し、該比較部が不一致と判定すると更に上記次のアドレスが上記複数のメモリバンクのアドレス領域に含まれるか否かを判定し、含まれていると上記アドレス保持回路に上記次のアドレスを保持させると共に上記複数のデータ保持回路を上記各メモリバンクからの新たなデータを保持させるべく制御し、含まれていないと上記次のアドレスが外部デバイスのアドレスと判定して上記複数のデータ保持回路に対して現在のデータを保持させる制御を行うアドレス判別部と、を含むことを特徴とするメモリシステム。
【0009】
〈構成2〉
それぞれページ単位のアドレスを表す上位アドレスに対し、ページ内の下位アドレスのみ変化させて高速メモリ読出動作を実行するページモードを有する複数のROM(read only memory)バンクと、上記複数のROMバンクをアクセスするためのアドレスを出力する制御部と、上記制御部により出力されたアドレスを入力し、上記制御部と協働して上記複数のメモリバンクを制御するバスコントローラと、上記バスコントローラの制御信号に基づいて上記複数のROMバンクに入力される上記上位アドレスを一時的に保持する上位アドレス保持回路とを備え、上記バスコントローラは、上記複数のメモリバンクから順次に読み出し可能な連続するアドレスの間に外部装置のアドレスが挿入されている場合、上記上位アドレス保持回路に保持された上記上位アドレスを維持させ、上記制御部は、上記外部装置のデータアクセス動作の終了後、残りのアドレスに対応するデータを上記下位アドレスのみ変化させてアクセスすることを特徴とするメモリシステム。
【0010】
〈構成3〉
構成2に記載のメモリシステムおいて、上記複数のROMバンクのそれぞれに対応して設けられ、上記バスコントローラの制御信号に基づいて上記ROMバンクから出力されたデータを一時的に保持する複数のデータ保持回路を備え、上記制御部は、上記複数のデータ保持回路のそれぞれに対応するROMバンクから出力されたデータが保持された場合、それぞれのデータ保持回路から順次にデータを取り込むとともに、次のメモリアクセスのためのアドレスを出力することを特徴とするメモリシステム。
【0011】
〈構成4〉
構成2に記載のメモリシステムにおいて、上記バスコントローラは、上記制御部により出力されたアドレスが上記複数のROMバンクのメモリ領域に含まれるか否かを判別する判別部と、上記判別部により上記アドレスが上記複数のメモリバンクのメモリ領域に含まれると判別された前回および今回の上位アドレスを比較する比較部とを有し、上記比較部により比較された前回および今回の上位アドレスが一致しない場合、上記上位アドレス保持回路に今回の上位アドレスを新たに保持することを特徴とするメモリシステム。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
《具体例1》
〈構成〉
図1は本発明に係る具体例1のメモリシステムの構成を示すブロック図である。
図1に示すように、このメモリシステムは、バンク0を構成するROM(read only memory)10、バンク1を構成するROM11、バンク2を構成するROM12およびバンク3を構成するROM13を有する4バンク構成のインタリーブ方式のメモリシステムである。
【0013】
ROM10〜13は、32ビット構成のROMであり、 CPU(central processing unit )1およびバスコントローラ2により制御される。ROM10〜13には、後述するように、A21〜A2の20ビットで表される1ワード単位の連続するアドレスが、バンク0、バンク1、バンク2、バンク3の順に順次に割り当てられている。
CPU1は、いわゆる32ビットCPUであり、アドレスバス3およびデータバス4を介してROM10〜13に接続されており、アドレスバス3を介してROM10〜13にアドレスを出力し、データバス4を介してROM10〜13からデータを読み出す。
【0014】
データバス4は、32ビットのバス幅を有し、CPU1に接続されるとともに、後述するデータラッチユニット20〜23に接続されている。
また、データバス4は、例えばRAM(random access memory)、I/O装置等の図示しない外部のデバイスに接続されている。
【0015】
アドレスバス3は、32本のアドレス信号線A31〜A0からなり、CPU1に接続されるとともに、バスコントローラ2に接続され、さらにA31〜A0のうち18本のアドレス信号線A21〜A4が分岐点P1で分岐されてROM10〜13に接続されている。
また、アドレスバス3は、例えばRAM(random access memory)、I/O装置等の図示しない外部のデバイスに接続されている。
【0016】
CPU1は、アドレス信号線A21〜A4にROM10〜13の1ワード(32ビット)単位のアドレスを出力し、アドレス信号線A3、A2にバンク切換信号を出力し、アドレス信号線A1、A0にROM10〜13の1ワードのデータをバイト単位でアクセスするための信号を出力する。
【0017】
また、CPU1は、コントロールバス5を介してバスコントローラ2と接続されており、バスコントローラ2との間で各種の制御信号を授受する。
CPU1からバスコントローラ2には、request 信号、r/w信号およびburst 信号が出力される。
request 信号は、外部に対するアクセスの要求を表す負論理の信号である。r/w信号は、request 信号とともに用いられ、H(high)レベルのとき、外部からデータを読み出す動作を表し、L(low )レベルのとき、外部にデータを書き込む動作を表す。burst 信号は、連続するアドレスのデータアクセスを表す負論理の信号である。
バスコントローラ2からCPU1には、ready信号が出力される。ready信号は、データバス4上のデータが有効であることを表す負論理の信号である。
【0018】
バスコントローラ2は、アドレス信号線A31〜A0を通して入力されたアドレス信号線をデコードし、コントロールバス5を介して授受される制御信号に基づいてROM10〜13、データラッチユニット20〜23および図示しない外部のデバイスを制御する。
【0019】
バスコントローラ2は、CE(chip enable )信号線30を介してROM10〜13のそれぞれのCE端子に接続され、CE信号線30を通してROM10〜13に負論理のrombnk信号を同時に出力する。
ROM10〜13は、CE信号線30のrombnk信号がアサートされた場合に活性化され、それぞれアドレスバス3上のアドレスを入力し、入力されたアドレスに該当するデータを読み出し、それぞれ後述するデータラッチユニット20〜23に出力する。
【0020】
バスコントローラ2は、データラッチ信号線40を通して負論理のidlt信号をデータラッチユニット20〜23に出力する。
また、バスコントローラ2は、データ出力信号線50を通して負論理のic0 信号をデータラッチユニット20に出力し、データ出力信号線51を通して負論理のic1 信号をデータラッチユニット21に出力し、データ出力信号線52を通して負論理のic2 信号をデータラッチユニット22に出力し、データ出力信号線53を通して負論理のic3 信号をデータラッチユニット23に出力する。
【0021】
データラッチユニット20は、ROM10から出力されたデータを保持するものであり、複数のラッチ回路を有する。
ラッチ回路は、H(high)レベルで入力データをスルー出力し、L(low)レベルで入力データを保持するDラッチからなり、データラッチ信号線40のidlt信号がネゲート状態の場合には、入力されたデータをそのまま出力し、idlt信号がアサートされた場合には、入力端の最新のデータを保持する。
データラッチユニット20は、データ出力信号線50のic0 信号がネゲート状態の場合には、ラッチ回路の出力端のデータを内部に保持し、ic0 信号がアサートされた場合、ラッチ回路の出力端のデータをデータバス4に出力する。
【0022】
データラッチユニット21〜23は、データラッチユニット20と同様の構成であり、それぞれidlt信号がアサートされた場合、それぞれROM11〜13から出力された最新のデータをラッチ回路により保持し、データ出力信号線51のic1 信号、データ出力信号線52のic2 信号およびデータ出力信号線53のic3 信号がアサートされた場合、前記ラッチ回路の出力端のデータをデータバス4に出力する。
【0023】
図2は図1に示された具体例1のメモリシステムのアドレスを説明する説明図である。
図2に示すように、CPU1から出力される偶数のアドレスA21〜A0をNで表し、その下位5ビットA4〜A0を00000B(Bは2進数表現)で表すものとする。
前述のように、A1、A0の下位2ビットは、1ワードのデータをバイト単位で指定するために使用される。A3、A2は、バンク切換信号に使用される。A3、A2が00Bのときには、ROM10(バンク0)が選択され、A3、A2が01Bのときには、ROM11(バンク1)が選択され、A3、A2が10Bのときには、ROM12(バンク2)が選択され、A3、A2が11Bのときには、ROM13(バンク3)が選択される。
【0024】
ROM10〜13の単体の1ワード単位のアドレスは、A4以上のアドレス、A21〜A4により表されるが、バンク切換のためのA3、A2によりインタリーブされる、すなわち連続的なアドレスが割り当てられる。
したがって、CPU1により出力されるアドレスA21〜A0を1ワード毎に表すと、アドレスNの次のアドレスは(N+4)、その次のアドレスは(N+8)のように表される。
【0025】
〈動作〉
図3は図1および図2に示された具体例1のメモリシステムのメモリ読出動作の一例を示すタイミングチャートである。
この例では、1ワード単位に連続するアドレスのデータを、ROM10〜13(バンク0〜3)から順次に繰り返し読み出す場合の動作について説明する。
図中、データバスは、CPU1とデータラッチユニット20〜23との間のデータバス4上のデータを表し、データラッチ20〜23は、データラッチユニット20〜23のそれぞれのラッチ回路の出力端に保持されたデータを表すものとする。
なお、データラッチ信号線40のidlt信号を例外として、各信号は、clock 信号の立ち上がりに同期して動作するものとする。
【0026】
まず、期間S0において、CPU1により、アドレスN(N ADDRESS)がアドレスバス3に出力されるとともに、request 信号およびburst 信号がアサートされる。なお、r/w信号は読出動作を表すネゲート状態に保持される。
一方、バスコントローラ2では、request 信号、burst 信号およびr/w信号に基づいてアクセスモードが選択され、rombnk信号がアサートされ、ROM10〜13では、rombnk信号のアサートタイミングに同期してアドレスバス3に出力されたアドレスが入力される。
【0027】
期間S1、期間S2を経て、期間S3において、ROM10〜13から、入力されたアドレスNに対応するデータN、(N+4)、(N+8)および(N+12)が、それぞれデータラッチユニット20、21、22および23に出力される。
一方、バスコントローラ2によりready 信号がアサートされ、CPU1に対し、データバス4上のデータが有効である旨が通知される。
同時に、バスコントローラ2によりデータ出力信号線50のic0 信号がアサートされて、データラッチユニット20では、ラッチ回路に入力されて出力されたデータNがデータバス4に出力される。
次いで、データラッチ信号線40のidlt信号がアサートされ、データラッチユニット20のラッチ回路にデータNが保持され、データラッチユニット21のラッチ回路にデータ(N+4)が保持され、データラッチユニット22のラッチ回路にデータ(N+8)が保持され、データラッチユニット23のラッチ回路にデータ(N+12)が保持される。
【0028】
期間S4において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータNが取り込まれる。同時に、データラッチユニット20〜23にそれぞれのデータN、(N+4)、(N+8)および(N+12)が保持されたので、ROM10〜13のアドレスNに対応するメモリ読出動作を開放することができ、CPU1によりアドレス(N+16)がアドレスバス3に出力され、次のメモリ読出動作が開始される。
一方、バスコントローラ2により、データ出力信号線50のic0 信号がネゲートされるとともに、データ出力信号線51のic1 信号がアサートされ、データラッチユニット21のラッチ回路に保持されたデータ(N+4)がデータバス4に出力される。
【0029】
期間S5において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+4)が取り込まれる。
一方、バスコントローラ2により、データ出力信号線51のic1 信号がネゲートされるとともに、データ出力信号線52のic2 信号がアサートされ、データラッチユニット22のラッチ回路に保持されたデータ(N+8)がデータバス4に出力される。
期間S6において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+8)が取り込まれる。
一方、バスコントローラ2により、データ出力信号線52のic2 信号がネゲートされるとともに、データ出力信号線53のic3 信号がアサートされ、データラッチユニット23のラッチ回路に保持されたデータ(N+12)がデータバス4に出力される。
【0030】
期間S7において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+12)が取り込まれる。同時に、ROM10〜13からアドレス(N+16)に対応するデータ(N+16)、(N+20)、(N+24)および(N+28)が、それぞれデータラッチユニット20、21、22および23に出力される。
一方、バスコントローラ2によりデータラッチ信号線40のidlt信号がネゲートされ、データラッチユニット20〜23のそれぞれのラッチ回路の保持状態が解除され、次いで、データ出力信号線53のic3 信号がネゲートされる。
【0031】
同時に、バスコントローラ2によりデータ出力信号線50のic0 信号がアサートされて、データラッチユニット20では、ラッチ回路に入力されて出力されたデータ(N+16)がデータバス4に出力される。
次いで、バスコントローラ2によりデータラッチ信号線40のidlt信号が再びアサートされ、データラッチユニット20のラッチ回路にデータ(N+16)が保持され、データラッチユニット21のラッチ回路にデータ(N+20)が保持され、データラッチユニット22のラッチ回路にデータ(N+24)が保持され、データラッチユニット23のラッチ回路にデータ(N+28)が保持される。
【0032】
期間S8において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+16)が取り込まれる。同時に、CPU1により次のアドレス(N+24)がアドレスバス3に出力されるが、A4以上のアドレスは同じなので、ROM10〜13のそれぞれのアドレスには変化はない。
一方、バスコントローラ2により、データ出力信号線50のic0 信号がネゲートされるとともに、データ出力信号線51のic1 信号がアサートされ、データラッチユニット21のラッチ回路に保持されたデータ(N+20)がデータバス4に出力される。
【0033】
期間S9において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+20)が取り込まれる。
一方、バスコントローラ2により、データ出力信号線51のic1 信号がネゲートされるとともに、データ出力信号線52のic2 信号がアサートされ、データラッチユニット22のラッチ回路に保持されたデータ(N+24)がデータバス4に出力される。
【0034】
期間S10において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+24)が取り込まれる。
一方、バスコントローラ2により、データ出力信号線52のic2 信号がネゲートされるとともに、データ出力信号線53のic3 信号がアサートされ、データラッチユニット23のラッチ回路に保持されたデータ(N+28)がデータバス4に出力される。同時に、バスコントローラ2によりburst 信号がネゲートされる。
【0035】
期間S11において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+24)が取り込まれ、request 信号がネゲートされる。
一方、バスコントローラ2により、ready 信号およびrombnk信号がネゲートされる。同時に、データ出力信号線53のic3 信号がネゲートされ、データラッチ信号線40のidlt信号がネゲートされ、データラッチユニット20〜23のそれぞれのラッチ回路の保持動作が解除され、処理を終了する。
【0036】
ここで、図3に示された具体例1のメモリシステムのメモリ読出動作と、データラッチユニット20〜23を有しない従来のメモリシステムのメモリ読出動作とを比較する。
【0037】
図4は従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
なお、バスコントローラ2は、ROM10〜13のOE(output enable )端子とそれぞれ接続されており、図中に示されるOE0 信号、OE1 信号、OE2 信号およびOE3 信号をアサートすることによりそれぞれROM10〜13のデータ出力タイミングを制御するものとする。
【0038】
図4から理解されるように、従来のメモリシステムでは、CPU1は、期間S0でアドレスバス3上に出力したアドレスNを、期間S6でROM13のデータ(N+12)がデータバス4に出力されるまで、保持する必要があった。
このため、CPU1は、次のアドレス(N+16)を期間S7で出力せざるを得ず、ROM13からデータバス4にデータ(N+12)が出力されてから、ROM10からデータバス4にデータ(N+16)が出力される時間は、ROM10にアドレスバス3にアドレスを出力してからデータバス4にデータが出力されるまでのオーバーヘッド時間と一致していた。
【0039】
これに対し、具体例1のメモリシステムでは、図3から理解されるように、期間S3で、データラッチユニット20〜23により、それぞれのROM10〜13から出力されたデータを保持することで、CPU1は、データラッチユニット20〜23からデータを取り込むことができる。
このため、CPU1によりROM10〜13にアドレスNをアドレスバス3に出力し続ける必要がなく、期間S4で、次のアドレス(N+16)を出力し、次回のメモリ読出動作に移行することができる。この結果、期間S6および期間S7に示されるように、データラッチユニット23からデータ(N+12)がデータバス4に出力された次のクロックで、ROM10からデータ(N+16)がデータバス4に出力されることになる。
【0040】
したがって、連続するアドレスのデータをROM10〜13から繰り返し読み出す場合であっても、ROM13からデータバス4にデータが出力されてから、ROM10からデータバス4にデータが出力される時間を短縮し、ROM10〜13の読出と同様にデータを連続的に読み出すことができる。
【0041】
図5は図1および図2に示された具体例1のメモリシステムのメモリ読出動作の他の例を示すタイミングチャートである。
この例では、ROM10〜13(バンク0〜3)の連続するアドレスN〜(N+12)に対し、(N+8)と(N+12)との間に、外部のデバイスのアドレスMが挿入されている場合の動作について説明する。
【0042】
期間S1〜期間S4は、図3に示された期間S1〜期間S4の動作と同様なので、その説明を省略する。
期間S5において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+4)が取り込まれる。
一方、バスコントローラ2により、データ出力信号線51のic1 信号がネゲートされるとともに、データ出力信号線52のic2 信号がアサートされ、データラッチユニット22のラッチ回路に保持されたデータ(N+8)がデータバス4に出力される。
同時に、アドレス(N+8)の次のアドレスが外部のデバイスのアドレスMなので、バスコントローラ2によりburst 信号がネゲートされる。
なお、データラッチ信号線40のidlt信号はアサート状態に保持される。
【0043】
期間S6において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+8)が取り込まれ、同時に、CPU1により外部のデバイスのアドレスMがアドレスバス3に出力される。
一方、バスコントローラ2により、ready 信号がネゲートされ、CPU1に対し、データバス4上のデータが無効である旨が通知される。
【0044】
期間S7において、外部のデバイスによりアドレスMに対応するデータMがデータバス4に出力される。
同時に、バスコントローラ2によりready 信号がアサートされ、CPU1に対し、データバス4上のデータが有効である旨が通知される。
【0045】
期間S8において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータMが取り込まれ、同時に、アドレス(N+12)がアドレスバス3に出力され、アドレスNに対するデータ(N+12)のアクセスが再開される。
一方、バスコントローラ2によりready 信号がネゲートされ、CPU1に対し、データバス4上のデータが無効である旨が通知される。
【0046】
期間S9において、バスコントローラ2によりready 信号がアサートされ、CPU1に対し、データバス4上のデータが有効である旨が通知される。同時に、バスコントローラ2によりデータ出力信号線53のic3 信号がアサートされ、データラッチユニット23のラッチ回路に保持されたデータ(N+12)がデータバス4に出力される。
【0047】
期間S10において、CPU1によりclock 信号の立ち上がりに同期してデータバス4上のデータ(N+4)が取り込まれ、同時にrequest 信号がネゲートされる。
一方、バスコントローラ2により、ready 信号およびrombnk信号がネゲートされ、さらに、データ出力信号線53のic3 信号がアサートされ、データラッチ信号線40のidlt信号がネゲートされ、データラッチユニット20〜23のそれぞれのラッチ回路の保持状態が解除され、処理を終了する。
【0048】
ここで、図5に示された具体例1のメモリシステムのメモリ読出動作と、データラッチユニット20〜23を有しない従来のメモリシステムのメモリ読出動作とを比較する。
【0049】
図6は従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
なお、バスコントローラ2は、ROM10〜13のOE(output enable )端子とそれぞれ接続されており、図中に示されるOE0 信号、OE1 信号、OE2 信号およびOE3 信号をアサートすることによりそれぞれROM10〜13のデータ出力タイミングを制御するものとする。
【0050】
図6から理解されるように、従来のメモリシステムでは、期間S7で、外部のデバイスのデータMがデータバス4に出力されてから、期間S8で、CPU1により次のアドレス(N+12)をアドレスバス3に出力し、ROM13からデータ(N+12)を読み出していた。このため、アドレス(N+12)がアドレスバス3に出力されてからROM13からデータ(N+12)が出力されるまでのオーバーヘッド時間を要していた。
【0051】
これに対し、具体例1のメモリシステムでは、図5から理解されるように、アクセス(N+8)の終了後、アドレスMのアクセスが開始されても、データラッチユニット20〜23にそれぞれのROM10〜13から出力されたデータを保持し続ける。
このため、アドレスMのアクセス終了後に、アドレス(N+12)のアクセスを開始した際には、ROM13にアクセスすることなく、データラッチユニット23からデータを読み出すことができるので、データを早く読み出すことができる。したがって、メモリ読出動作を高速化することができる。
【0052】
〈効果〉
以上のように、具体例1によれば、CPU1の1回のメモリ読出動作に基づいてROM10〜13から出力されたそれぞれのデータをデータラッチユニット20〜23に保持する。CPU1では、データラッチユニット20〜23から順次にデータを取り込むとともに、次のメモリ読出動作のためのアドレスを出力する。
【0053】
このため、ROM10〜13の1回のメモリ読出動作を早く開放し、CPU1により次のアドレスを出力し、次回のメモリ読出動作に早く移行することができる。
したがって、連続するアドレスのデータをROM10〜13から繰り返し読み出す場合には、ROM13のデータがデータバス4に出力されてからROM10のデータがデータバス4に出力されるまでの時間を短縮し、ROM10〜13の読出と同様にデータを連続的に読み出すことができる。
【0054】
また、ROM10〜13の連続するアドレスの間に外部のデバイスのアドレスが挿入されている場合、外部のデバイスのアクセスに移行しても、ROM10〜13から出力されたデータをそれぞれデータラッチユニット20〜23により保持する。
このため、外部のデバイスのアクセス終了後、CPU1により残りのデータを取り込む際には、ROMにアクセスすることなく、データラッチユニットからデータを取り込むことができるので、データを早く読み出すことができる。
したがって、インタリーブ方式の利点を生かし、さらに高速なメモリ読出動作を行うことができるメモリシステムを提供することができる。
【0055】
《具体例2》
〈構成〉
図7は本発明に係る具体例2のメモリシステムのバスコントローラ60の構成を示すブロック図である。
具体例2のメモリシステムは、図1に示された具体例1のメモリシステムのバスコントローラ2をバスコントローラ60に置き換えたものである。
図7に示すように、バスコントローラ60は、アドレスラッチユニット61、比較器62、シーケンサ63およびデコーダ64を備えている。
【0056】
アドレスバス3を構成するアドレス信号線A31〜A0は、シーケンサ63およびデコーダ64に接続されている。アドレス信号線A31〜A0のうちアドレス信号線A21〜A4は、分岐点P1で分岐され、アドレスラッチユニット61に接続されるとともに、分岐点P2で分岐され、比較器62に接続されている。また、コントロールバス5を構成する複数の制御信号線は、シーケンサ63に接続されている。
【0057】
アドレスラッチユニット61および比較器62には、アドレス信号線A21〜A4を通してワード単位のアドレスが入力される。
アドレスラッチユニット61は、シーケンサ63から出力されるload信号がアサートされた場合、入力端の最新のアドレスを保持し、比較器62に出力する。
比較器62は、アドレスラッチユニット61の出力端のアドレスとアドレス信号線A21〜A4を通して入力されたアドレスとを比較し、比較結果を表すhit/miss信号をシーケンサ63に出力する。hit/miss信号は、比較結果が一致(ヒット)の場合にネゲートされ、比較結果が不一致(ミス)の場合にアサートされる。
【0058】
シーケンサ63は、CPU1から出力されたrequest 信号、r/w信号およびburst 信号に基づいてメモリアクセスモードを選択し、選択されたアクセスモード、hit/miss信号およびアドレス信号線A21〜A0を通して入力されたアドレスに基づいてload信号、ic0 信号、ic1 信号、ic2 信号、ic3 信号、idlt信号、ready 信号および図示しない制御信号を制御する。
【0059】
シーケンサ63は、入力されたアドレスが、ROM10〜13のメモリ領域に含まれるか否かを判断し、入力されたアドレスがROM10〜13のメモリ領域に含まれる場合、比較器62から出力されたhit/miss信号を参照する。シーケンサ63は、参照したhit/miss信号がアサート状態の場合には、ROM10〜13に新たなワードのアドレスが入力されたと判断し、load信号をアサートする。
【0060】
すなわち、アドレスラッチユニット61は、バスコントローラ60に入力されたアドレスがROM10〜13のメモリ領域に含まれ、かつ比較器62の比較結果がミスの場合、シーケンサ63のload信号に基づいて入力端の最新のアドレスを保持する。言い換えれば、アドレスラッチユニット61は、RAM、I/O装置等の外部のデバイスのアドレスの影響を受けず、ROM10〜13のメモリ領域に含まれるワード単位のアドレスが変化した場合に、アドレスを更新して保持する。
【0061】
そして、シーケンサ63は、ROM10〜13のメモリ領域に含まれるワード単位のアドレスの変化を検出し、データラッチユニット20〜23の動作を制御する。
シーケンサ63は、ROM10に対応するアドレスが入力された場合、ROM10からデータが出力されるタイミングに合わせ、ic0 信号をアサートした後、idlt信号をアサートする。シーケンサ63は、データラッチユニット23からデータを出力するようic3 信号をアサートした場合、次のclock 信号の立ち上がりに同期してic3 信号をネゲートした後、idlt信号をネゲートする。また、シーケンサ63は、入力されたアドレスがROM10〜13のメモリ領域に含まれ、比較器62の比較結果がミスの場合、load信号をアサートすると同時にidlt信号をネゲートする。
デコーダ64は、アドレス信号線A21〜A0を通して入力されたアドレスをデコードし、rombnk信号を出力する。
【0062】
〈動作〉
具体例2のメモリ読出動作は、図3および図5に示された具体例1のメモリシステムの動作と同様である。
ここでは、図5に示されたROM10〜13(バンク0〜3)の連続するアドレスN〜(N+12)に対し、(N+8)と(N+12)との間に外部のデバイスのアドレスMが挿入されている場合のメモリ読出動作におけるバスコントローラ60の動作について説明する。
【0063】
まず、期間S0において、CPU1により出力されたアドレスNがバスコントローラ60に入力されると、比較器62によりアドレスラッチユニット61に保持された前回のアドレスと今回のアドレスNとが比較される。比較結果はミスとなり、hit/miss信号はアサートされる。
シーケンサ63では、入力されたアドレスNがROM10〜13のメモリ領域に含まれるので、比較器62により出力されたhit/miss信号が参照される。hit/miss信号はアサートされているので、シーケンサ63によりload信号がアサートされる。アドレスラッチユニット61では、このload信号に基づいてアドレスNが保持される。
この結果、比較器62の比較結果がヒットとなり、hit/miss信号がネゲートされる。そして、シーケンサ63のload信号もネゲートされる。
【0064】
期間S3において、シーケンサ63では、ROM10に対応するアドレスNが入力されたので、ROM10からデータNが出力されるタイミングに合わせてic0 信号がアサートされて、次いでidlt信号がアサートされる。
【0065】
期間S4において、CPU1によりアドレス(N+8)が出力され、バスコントローラ60に入力される。この場合、アドレス信号線A21〜A0のアドレスの変化はないので、比較器62の比較結果はヒットであり、hit/miss信号はネゲート状態に保持される。このため、シーケンサ63のload信号もネゲート状態に保持される。
【0066】
期間S6において、CPU1により外部のデバイスのアドレスMが出力されてバスコントローラ60に入力されると、アドレス信号線A21〜A0のアドレスが変化するので、比較器62の比較結果はミスとなり、hit/miss信号がアサートされる。しかし、シーケンサ63では、アドレスMがROM10〜13のメモリ領域に含まれないと判断され、このhit/miss信号は無視されて、load信号はネゲート状態に保持される。
【0067】
期間S8において、CPU1によりアドレス(N+12)が出力され、バスコントローラ60に入力される。アドレスラッチユニット61にはアドレスNが保持されているので、比較器62の比較結果はヒットとなり、hit/miss信号がネゲートされる。シーケンサ63では、アドレス(N+12)は、ROM10〜13のメモリ領域に含まれるので、hit/miss信号が参照される。hit/miss信号がネゲート状態なので、load信号もネゲート状態に保持される。
期間S9において、シーケンサ63によりic3 信号がアサートされ、データラッチユニット23からデータ(N+12)が出力され、期間S10において、ic3 信号がネゲートされて、idlt信号がネゲートされる。
【0068】
〈効果〉
以上のように、具体例2によれば、バスコントローラ60に、アドレス信号線A21〜A4を通して入力されたワード単位のアドレスをシーケンサ63のload信号に基づいて選択的に保持するアドレスラッチユニット61と、アドレスラッチユニット61に保持されたアドレスとアドレス信号線A21〜A4を通して入力されたアドレスとを比較する比較器62とを設ける。
【0069】
そして、シーケンサ63では、入力されたアドレスがROM10〜13のメモリ領域に含まれると判断された場合には、比較器62の比較結果が参照される。比較結果がヒットのときには、ROM10〜13の同一アドレスの読出動作が継続されていると判断し、データラッチユニット20〜23の動作を保持状態に保ち、比較結果がミスのときには、ROM10〜13の異なるアドレスの読出動作に移行したと判断し、データラッチユニット20〜23の保持状態を解除し、次回のメモリ読出動作に移行する。
【0070】
このため、バスコントローラ60により、CPU1とは独立にワード単位のアドレスの変化を認識し、データラッチユニット20〜23の保持動作を制御することができるので、従来のCPUをそのまま利用することができ、CPU1の負担を軽減することができる。
また、CPUおよびバスコントローラの何れかにデータラッチユニットの制御機能を設けることができるので、柔軟かつ最適なシステム設計を行うことができる。
【0071】
なお、具体例1および2では、メモリシステムのメモリバンクをROMにより構成しているが、メモリはROMに限るものではなく、RAMにより構成してもよい。
【0072】
《具体例3》
〈構成〉
図8は本発明に係る具体例3のメモリシステムの構成を示すブロック図である。
図8に示すように、このメモリシステムは、バンク0を構成するROM110およびバンク1を構成するROM111を有する2バンク構成のインタリーブ方式のメモリシステムである。
【0073】
ROM110および111は、ともにページモード機能を有する32ビット構成のROMであり、ページ単位のアドレスを表す上位アドレスに対し、ページ内の下位アドレスのみ変化させて高速読出を実行する。
後述するように、ROM110および111には、A22〜A2の21ビットで表される連続するアドレスが交互に割り当てられており、ROM110には、偶数アドレスが割り当てられ、ROM111には、奇数アドレスが割り当てられている。
ROM110および111は、CPU101およびバスコントローラ102により制御される。
【0074】
CPU101は、いわゆる32ビットCPUであり、アドレスバス103およびデータバス104を介してROM110および111に接続されており、アドレスバス103を介してROM110および111にアドレスを出力し、データバス104を介してROM110および111からデータを読み出す。
【0075】
データバス104は、32ビットのバス幅を有し、CPU101に接続されるとともに、ROM110および111に接続されている。また、データバス4は、図示しない外部のデバイスに接続されている。
アドレスバス103は、32本のアドレス信号線A31〜A0からなりCPU1に接続されるとともに、バスコントローラ102に接続され、さらに20本のアドレス信号線A22〜A3が分岐点P1で分岐されている。
【0076】
このアドレス信号線A22〜A3は、分岐点P2で、上位アドレス信号線群103aを構成する18本のアドレス信号線A22〜A5と、下位アドレス信号線群103bを構成する2本のアドレス信号線A4、A3とに分岐される。
上位アドレス信号線群103aは、後述する上位アドレスラッチユニット120に接続され、下位アドレス信号線群103bは、直接ROM110および111に接続されている。
また、アドレスバス103は、図示しない外部のデバイスに接続されている。
【0077】
CPU101は、アドレス信号線A22〜A3にROM110および111のアドレスを出力し、アドレス信号線A2にバンク切換信号を出力し、アドレス信号線A0、A1にROM10〜13の1ワードが4バイトのデータをバイト単位でアクセスするための信号を出力する。
また、CPU101は、コントロールバス105介してバスコントローラ102と接続されており、バスコントローラ102との間で各種の制御信号を授受する。
CPU101からバスコントローラ102には、 request 信号、 r/w信号およびburst 信号が出力され、バスコントローラ102からCPU1には、ready信号が出力される。
【0078】
バスコントローラ102は、アドレス信号線A31〜A0を通して入力されたアドレス信号線をデコードし、コントロールバス105を介して授受される制御信号およびアドレスバス103を通して入力されるアドレスに基づいてROM110、ROM111、上位アドレスラッチユニット120および図示しない外部のデバイスを制御する。
【0079】
バスコントローラ102は、CE信号線130を介してROM110および111のそれぞれのCE端子に接続されるとともに、OE信号線140を介してROM110のOE端子に接続され、OE信号線141を介してROM111のOE端子に接続されている。
【0080】
CPU101は、CE信号線130を通して負論理のrombnk信号をROM110および111に出力するとともに、OE信号線140を通して負論理のOE0 信号をROM110に出力し、OE信号線141を通して負論理のOE1 信号をROM111に出力する。
【0081】
ROM110は、CE信号線130のrombnk信号がアサートされた場合に活性化され、アドレスバス103上のアドレスを入力し、入力されたアドレスに該当するデータを読み出し、OE信号線140のOE0 信号がアサートされた場合、読み出されたデータをデータバス104に出力する。
同様に、ROM111は、CE信号線130のrombnk信号がアサートされた場合に活性化され、アドレスバス103上のアドレスを入力し、入力されたアドレスに該当するデータを読み出し、OE信号線141のOE1 信号がアサートされた場合、読み出されたデータをデータバス104に出力する。
【0082】
バスコントローラ102は、アドレスラッチ信号線150を介して上位アドレスラッチユニット120に接続され、負論理のialt信号を上位アドレスラッチユニット120に出力する。
上位アドレスラッチユニット120は、CPU101によりアドレス信号線A22〜A5に出力された上位アドレスを一時的に保持するものであり、複数のラッチ回路を有する。
ラッチ回路は、H(high)レベルで入力データをスルー出力し、L(low)レベルで入力データを保持するDラッチからなり、アドレスラッチ信号線150のialt信号がネゲート状態の場合には、入力されたデータをそのまま出力し、ialt信号がアサートされた場合には、入力された最新のデータを保持する。
【0083】
図9は図8に示された具体例3のメモリシステムのアドレスを説明する説明図である。
図9に示すように、CPU1から出力される偶数のアドレスA22〜A0をNで表し、その下位6ビットA5〜A0を000000B(Bは2進数表現)で表すものとする。
【0084】
前述のように、A1、A0の下位2ビットは、1ワードのデータをバイト単位で指定するために使用される。また、A2は、バンク切換信号に使用され、A2が0のときには、ROM110(バンク0)が選択され、A2が1のときには、ROM111(バンク1)が選択される。
ROM110および111の単体の1ワード単位のアドレスは、A3以上のアドレス、A22〜A3により表されるが、バンク切換のためのA2によりインタリーブされる、すなわち連続的なアドレスが割り当てられる。
したがって、CPU1により出力されるアドレスを1ワード毎に表すと、アドレスNの次のアドレスは(N+4)、その次のアドレスは(N+8)で表される。
【0085】
A5は、ROM110およびROM111の1ページのアドレスを表し、1ページはA4およびA3で表される4ワードにより構成される。
ROM110およびROM111は、このページ内のアドレスであれば、下位アドレスA4、A3のみを変化させて高速なメモリ読出動作を行うことができる。
【0086】
図10は図8に示されたバスコントローラ102の構成を示すブロック図である。
図10に示すように、バスコントローラ102は、上位アドレスラッチユニット161、比較器162、シーケンサ163およびデコーダ164を備えている。
【0087】
アドレスバス103を構成するアドレス信号線A31〜A0は、シーケンサ163およびデコーダ164に接続されている。アドレス信号線A31〜A0のうちアドレス信号線A22〜A5は、分岐点P1で分岐され、上位アドレスラッチユニット161に接続されるとともに、分岐点P2で分岐され、比較器162に接続されている。
また、コントロールバス105を構成する複数の制御信号線は、シーケンサ163に接続されている。
【0088】
上位アドレスラッチユニット161および比較器162には、アドレス信号線A22〜A5を通してページ単位のアドレスを表す上位アドレスが入力される。上位アドレスラッチユニット161は、シーケンサ163から出力されるload信号がアサートされた場合、入力端の最新の上位アドレスを保持し、比較器162に出力する。
比較器162は、上位アドレスラッチユニット161の出力端の上位アドレスとアドレス信号線A22〜A5を通して入力された上位アドレスとを比較し、比較結果を表すhit/miss信号をシーケンサ163に出力する。hit/miss信号は、比較結果が一致(ヒット)の場合にネゲートされ、比較結果が不一致(ミス)の場合にアサートされる。
【0089】
シーケンサ163は、CPU101から出力されたrequest 信号、r/w信号およびburst 信号に基づいてメモリアクセスモードを選択し、選択されたアクセスモード、hit/miss信号およびアドレス信号線A22〜A0を通して入力されたアドレスに基づいてload信号、ialt信号、OE0 信号、OE1 信号、ready 信号および図示しない制御信号を制御する。
【0090】
シーケンサ163は、入力されたアドレスが、ROM110および111のメモリ領域に含まれるか否かを判断し、入力されたアドレスがROM110および111のメモリ領域に含まれる場合、比較器162から出力されたhit/miss信号を参照する。シーケンサ163は、参照したhit/miss信号がアサート状態の場合には、ROM110および111の新たなページのアドレスが入力されたと判断し、load信号をアサートする。
【0091】
すなわち、上位アドレスラッチユニット161は、バスコントローラ102に入力されたアドレスがROM110および111のメモリ領域に含まれ、かつ比較器162の比較結果がミスの場合、シーケンサ163のload信号に基づいて入力端の最新のアドレスを保持する。言い換えれば、上位アドレスラッチユニット161は、外部のデバイスのアドレスの影響を受けず、ROM110および111のメモリ領域に含まれるページ単位のアドレスが変化した場合に、その上位アドレスを更新して保持する。
【0092】
そして、シーケンサ163は、ROM110および111のメモリ領域に含まれる上位アドレスの変化を検出し、上位アドレスラッチユニット120の動作を制御する。ialt信号の初期状態はアサート状態にある。
シーケンサ163は、入力されたアドレスがROM110および111のメモリ領域に含まれ、比較器162の比較結果がミスの場合、まず、load信号をアサートすると同時にialt信号をネゲートし、次に、入力されたアドレスに対応するROM110または111から最初のデータが出力されるタイミングに合わせ、OE0 信号またはOE1 信号をアサートし、ialt信号をアサートする。
デコーダ164は、アドレス信号線A22〜A0を通して入力されたアドレスをデコードし、rombnk信号を出力する。
【0093】
〈動作〉
図11は図8〜図10に示された具体例3のメモリシステムのメモリ読出動作を示すタイミングチャートである。
この例では、ROM110および111(バンク0および1)の1ページ内の連続するアドレスN〜(N+12)に対し、(N+8)と(N+12)との間に、外部のデバイスのアドレスMが挿入されている場合の動作について説明する。図11において、アドレスバスは、アドレス103上のアドレスを表し、上位アドレスラッチは、上位アドレスラッチユニット120から出力された上位アドレスを表すものとする。
各信号は、clock 信号の立ち上がりに同期して動作するものとする。
【0094】
まず、期間S0において、CPU101により、アドレスN(N ADDRESS)がアドレスバス103に出力されるとともに、request 信号およびburst 信号がアサートされる。なお、r/w信号は読出動作を表すネゲート状態に保持される。
一方、バスコントローラ102では、request 信号、burst 信号およびr/w信号に基づいてアクセスモードが選択され、rombnk信号がアサートされる。ROM110および111では、rombnk信号のアサートタイミングに同期してアドレスバス103に出力されたアドレスが入力される。
バスコントローラ102には、新たなページのアドレスが入力されたので、同時に、アドレスラッチ信号線150のialt信号がネゲートされる。
【0095】
期間S1、期間S2を経て、期間S3において、ROM110および111において、それぞれアドレスNに対応するデータNおよび(N+4)が読み出される。
一方、バスコントローラ102によりready 信号がアサートされ、CPU101に対し、データバス104上のデータが有効である旨が通知される。
同時に、バスコントローラ102によりOE信号線140のOE0 信号がアサートされて、ROM110からデータNがデータバス104に出力される。
次いで、アドレスラッチ信号線150のialt信号がアサートされ、上位アドレスラッチユニット120にページ単位のアドレスを表す上位アドレスNが保持される。
【0096】
期間S4において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータNが取り込まれ、同時に、同一ページ内のアドレス(N+8)がアドレスバス103に出力される。
一方、バスコントローラ102により、OE信号線140のOE0 信号がネゲートされるとともに、OE信号線141のOE1 信号がアサートされ、ROM111からデータ(N+4)がデータバス104に出力される。
なお、アドレスラッチ信号線150のialt信号はアサート状態に保持される。
【0097】
期間S5において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータ(N+4)が取り込まれる。また、アドレス(N+8)の次のアドレスが外部のデバイスのアドレスMなので、バスコントローラ2によりburst 信号がネゲートされる。
一方、バスコントローラ102では、OE信号線141のOE1 信号がネゲートされるとともに、0E信号線140のOE0 信号がアサートされ、ROM110からデータ(N+8)がデータバス104に出力される。
なお、アドレスラッチ信号線150のialt信号はアサート状態に保持される。
【0098】
期間S6において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータ(N+8)が取り込まれ、同時に、CPU101により外部のデバイスのアドレスMがアドレスバス103に出力される。
一方、バスコントローラ102により、ready 信号がネゲートされ、CPU101に対し、データバス4上のデータが無効である旨が通知される。
【0099】
期間S7において、外部のデバイスによりアドレスMに対応するデータMがデータバス104に出力される。
同時に、バスコントローラ102によりready 信号がアサートされ、CPU101に対し、データバス104上のデータが有効である旨が通知される。
【0100】
期間S8において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータMが取り込まれ、同時に、アドレス(N+12)がアドレスバス103に出力され、データ(N+12)のアクセスが再開される。このとき、上位アドレスラッチユニット120には、同一ページのアドレスNの上位アドレスが保持されているので、ROM111では、下位アドレスA4、A3の変化に応じた読出動作が行われる。
一方、バスコントローラ102によりready 信号がネゲートされ、CPU1に対し、データバス4上のデータが無効である旨が通知される。
【0101】
期間S9において、バスコントローラ102によりready 信号がアサートされ、CPU101に対し、データバス104上のデータが有効である旨が通知される。
同時に、バスコントローラ102によりOE信号線141のOE1 信号がアサートされる。ROM111からデータ(N+12)がデータバス104に出力される。
【0102】
期間S10において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータ(N+12)が取り込まれ、同時にrequest 信号がネゲートされる。
一方、バスコントローラ102により、ready 信号およびrombnk信号がネゲートされ、さらに、OE信号線141のOE1 信号がネゲートされ、処理を終了する。
【0103】
さらに、図11に示されたメモリ読出動作におけるバスコントローラ102の動作について説明する。
【0104】
まず、期間S0において、CPU101により出力されたアドレスNがバスコントローラ102に入力される。比較器162では、上位アドレスラッチユニット161に保持された前回のアドレスと今回のアドレスNとが比較される。比較結果はミスとなり、hit/miss信号はアサートされる。
シーケンサ163では、入力されたアドレスNがROM110および111のメモリ領域に含まれるので、比較器162により出力されたhit/miss信号が参照される。hit/miss信号はアサートされているので、シーケンサ163によりload信号がアサートされる。上位アドレスラッチユニット161では、このload信号に基づいてアドレスNが保持される。
この結果、比較器162の比較結果がヒットとなり、hit/miss信号がネゲートされる。そして、シーケンサ163のload信号もネゲートされる。
【0105】
期間S4において、CPU1により出力された同一ページ内の次のアドレス(N+8)がバスコントローラ102に入力される。上位アドレスA22〜A5は変化しないので、比較器162の比較結果はヒットとなり、hit/miss信号はネゲート状態に保持される。このため、シーケンサ163のload信号もネゲート状態に保持され、アドレスラッチ信号線150のialt信号はアサート状態に保持される。
【0106】
期間S6において、CPU1により出力された外部のデバイスのアドレスMがバスコントローラ102に入力される。上位アドレスA22〜A5が変化するので、比較器162の比較結果はミスとなり、hit/miss信号がアサートされる。しかし、シーケンサ163では、アドレスMがROM110および111のメモリ領域に含まれないと判断され、このhit/miss信号は無視されて、load信号はネゲート状態に保持される。このため、アドレスラッチ信号線150のialt信号はアサート状態に保持される。
【0107】
期間S8において、CPU1により出力されたアドレス(N+12)がバスコントローラ102に入力される。上位アドレスラッチユニット161にはアドレスNの上位アドレスが保持されているので、比較器162の比較結果はヒットとなり、hit/miss信号がネゲートされる。
シーケンサ163では、アドレス(N+12)は、ROM110および111のメモリ領域に含まれるので、hit/miss信号が参照される。hit/miss信号がネゲート状態なので、load信号もネゲート状態に保持される。
【0108】
〈効果〉
以上のように、具体例3によれば、ROM110および111に入力されるページ単位のアドレスを表す上位アドレスA22〜A5を上位アドレスラッチユニット120に保持し、ROM110および111の上位アドレスを活性化させておく。
このため、ページ内の連続するアドレスの間に外部のデバイスのアドレスが挿入されている場合、外部のデバイスのアクセス終了後、以降のアクセスを再開したときには、ROM110および111では、下位アドレスA4、A3のみ活性化させればよいので、データを早く読み出すことができる。
したがって、インタリーブ方式のメモリシステムの利点を生かし、さらに高速なメモリ読出動作を行うことができるメモリシステムを提供することができる。
【0109】
また、バスコントローラ102に、アドレス信号線A21〜A5を通して入力された上位アドレスをシーケンサ163のload信号に基づいて選択的に保持するアドレスラッチユニット161と、アドレスラッチユニット61に保持されたアドレスとアドレス信号線A21〜A4を通して入力された上位アドレスとを比較する比較器162とを設ける。
【0110】
そして、シーケンサ163では、入力されたアドレスがROM110および111のメモリ領域に含まれると判断された場合には、比較器162の比較結果が参照される。比較結果がヒットのときには、ROM110および111の同一ページ内のアドレスの読出動作が継続されていると判断し、上位アドレスラッチユニット120の動作を保持状態に保ち、比較結果がミスのときには、ROM110および111の異なるページのアドレスの読出動作に移行したと判断し、上位アドレスラッチユニット120の保持状態を解除し、次回のメモリ読出動作に移行する。
【0111】
このため、バスコントローラ102により、CPU101とは独立に上位アドレスの変化を認識し、上位アドレスラッチユニット120の保持動作を制御することができるので、従来のCPUをそのまま利用することができ、CPUの負担を軽減することができる。
また、CPUおよびバスコントローラの何れかに上位アドレスラッチユニットの制御機能を設けることができるので、柔軟かつ最適なシステム設計を行うことができる。
【0112】
図12は具体例3のメモリ読出動作の説明図であり、図12(a)はシステムのクロック周波数が低い場合、図12(b)はシステムのクロック周波数が高い場合の動作を説明する説明図である。
具体例3のメモリシステムでは、ROM110および111のデータ出力をそれぞれのOE端子に入力されるOE0信号およびOE1 信号により制御している。このため、ROM110および111では、それぞれOE0信号およびOE1 信号がアサートされてからそれぞれのデータが出力されるまでの時間差Δtがかかってしまう。
【0113】
図12(a)に示すように、クロック周波数が低い場合には、次のクロックまでにデータバス104にデータが出力され、次のクロックの立ち上がりに同期してCPU101によりデータが取り込まれる。
しかし、図12(b)に示すように、クロック周波数が高い場合には、次のクロックまでにデータの出力が間に合わない。このため、CPU101では、OE信号がアサートされてから、2クロック目でデータを取り込むことになる。
このように、具体例3のメモリシステムでは、システムのクロック周波数が高くなった場合、ウェイト信号を挿入する等の処理が必要になり、メモリ読出動作にロスが生じてしまう場合がある。
以下、このような問題を解決する具体例4のメモリシステムについて説明する。
【0114】
《具体例4》
〈構成〉
図13は具体例4のメモリシステムの構成を示すブロック図である。
図13に示すように、具体例4のメモリシステムは、図8に示された具体例3のメモリシステムにデータラッチユニット210および211を加え、具体例3のバスコントローラ102をバスコントローラ202に置き換えたものである。なお、具体例3のメモリシステムの各部と同様の構成には、同一符号を付し、その説明を省略する。
【0115】
バスコントローラ202は、データラッチ信号線220を通して負論理のidlt信号をデータラッチユニット210および211に出力し、データ出力信号線230を通して負論理のic0 信号をデータラッチユニット210に出力し、データ出力信号線231を通して負論理のic1 信号をデータラッチユニット211に出力する。
【0116】
データラッチユニット210は、ROM110から出力されたデータを保持するものであり、複数のラッチ回路を有する。
ラッチ回路は、H(high)レベルで入力データをスルー出力し、L(low)レベルで入力データを保持するDラッチからなり、データラッチ信号線220のidlt信号がネゲート状態の場合には、入力されたデータをそのまま出力し、idlt信号がアサートされた場合には、入力された最新のデータを保持する。
データラッチユニット210は、データ出力信号線230のic0 信号がネゲート状態の場合には、ラッチ回路の出力端のデータを内部に保持し、ic0 信号がアサートされた場合、ラッチ回路の出力端のデータをデータバス104に出力する。
データラッチユニット211は、データラッチユニット210と同様の構成であり、ROM111からデータを一時的に保持してデータバス104に出力する。
【0117】
図14は図13に示されたバスコントローラ202の構成を示すブロック図である。
図14に示すように、バスコントローラ202は、図8に示されたシーケンサ163をシーケンサ263に置き換えたものである。
なお、図8に示されたバスコントローラ202の各部と同様の構成には、同一符号を付し、その説明を省略する。
【0118】
シーケンサ263は、シーケンサ163に、ic0 信号、ic1 信号およびidlt信号によりデータラッチユニット210および211を制御する機能を加えたものである。
シーケンサ263は、ROM110および111のメモリ領域に含まれるページ単位のアドレスの変化を検出し、データラッチユニット210および211を制御する。
【0119】
シーケンサ163は、ROM110に対応するアドレスが入力された場合、ROM10からデータが出力されるタイミングに合わせ、ic0 信号をアサートした後、idlt信号をアサートする。シーケンサ163は、データラッチユニット211からデータを出力するようic1 信号をアサートした場合、次のclock 信号の立ち上がりに同期してic1 信号をネゲートした後、idlt信号をネゲートする。また、シーケンサ163は、入力されたアドレスがROM110および111のメモリ領域に含まれ、比較器162の比較結果がミスの場合、load信号をアサートすると同時にidlt信号をネゲートする。
【0120】
〈動作〉
図15は図13および図14に示された具体例4のメモリシステムのメモリ読出動作を示すタイミングチャートである。
この例では、ROM110および111(バンク0および1)の1ページ内の連続するアドレスN〜(N+12)に対し、(N+8)と(N+12)との間に、外部のデバイスのアドレスMが挿入されている場合の動作について説明する。
【0121】
図15において、アドレスバスは、アドレス103上のアドレスを表し、上位アドレスラッチは、上位アドレスラッチユニット120から出力された上位アドレスを表すものとする。
また、データバスは、データバス104上のデータを表し、データラッチ210および211は、データラッチユニット210および211のそれぞれのラッチ回路の出力端に保持されたデータを表すものとする。
なお、データラッチ信号線220のidlt信号を例外として、各信号は、clock 信号の立ち上がりに同期して動作するものとする。
【0122】
まず、期間S0において、CPU101により、アドレスN(N ADDRESS)がアドレスバス103に出力されるとともに、request 信号およびburst 信号がアサートされる。なお、r/w信号は読出動作を表すネゲート状態に保持される。
一方、バスコントローラ202では、request 信号、burst 信号およびr/w信号に基づいてアクセスモードが選択され、rombnk信号がアサートされる。ROM110および111では、rombnk信号のアサートタイミングに同期してアドレスバス103に出力されたアドレスが入力される。
バスコントローラ202には、新たなページのアドレスが入力されたので、同時に、アドレスラッチ信号線150のialt信号がネゲートされる。
【0123】
期間S1、期間S2を経て、期間S3において、ROM110および111から、アドレスNに対応するデータNおよび(N+4)が、それぞれデータラッチユニット210および211に出力される。
一方、バスコントローラ202によりready 信号がアサートされ、CPU101に対し、データバス104上のデータが有効である旨が通知される。
同時に、バスコントローラ202によりデータ出力信号線230のic0 信号がアサートされて、データラッチユニット210では、ラッチ回路に入力されて出力されたデータNがデータバス104に出力される。
次いで、データラッチ信号線220のidlt信号がアサートされ、データラッチユニット210のラッチ回路にデータNが保持され、データラッチユニット211のラッチ回路にデータ(N+4)が保持される。
同時に、アドレスラッチ信号線150のialt信号がアサートされ、上位アドレスラッチユニット120にワード単位のアドレスを表す上位アドレスNが保持される。
【0124】
期間S4において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータNが取り込まれ、同時に、同一ページ内のアドレス(N+8)がアドレスバス103に出力される。
一方、バスコントローラ202により、データ出力信号線230のic0 信号がネゲートされるとともに、データ出力信号線231のic1 信号がアサートされ、データラッチユニット211からデータ(N+4)がデータバス104に出力される。
なお、アドレスラッチ信号線150のialt信号はアサート状態に保持される。
【0125】
期間S5において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータ(N+4)が取り込まれる。同時に、アドレス(N+8)の次のアドレスが外部のデバイスのアドレスMなので、バスコントローラ2によりburst 信号がネゲートされる。
一方、バスコントローラ202により、データラッチ信号線220のidlt信号がネゲートされ、データラッチユニット210および211のそれぞれのラッチ回路の保持状態が解除される。次いで、データ出力信号線231のic1 信号がネゲートされるとともに、データ出力信号線230のic0 信号がアサートされる。データラッチユニット210では、ラッチ回路に入力されて出力されたデータ(N+8)がデータバス104に出力される。
次いで、バスコントローラ202によりデータラッチ信号線220のidlt信号が再びアサートされ、データラッチユニット210のラッチ回路にデータ(N+)が、データラッチユニット211のラッチ回路にデータ(N+12)が保持される。
なお、アドレスラッチ信号線150のialt信号はアサート状態に保持される。
【0126】
期間S6において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータ(N+8)が取り込まれ、同時に、CPU101により外部のデバイスのアドレスMがアドレスバス103に出力される。
一方、バスコントローラ202により、ready 信号がネゲートされ、CPU101に対し、データバス4上のデータが無効である旨が通知される。また、データ出力信号線230のic0 信号がネゲートされる。
【0127】
期間S7において、外部のデバイスによりアドレスMに対応するデータMがデータバス104に出力される。
同時に、バスコントローラ202によりready 信号がアサートされ、CPU1に対し、データバス104上のデータが有効である旨が通知される。
【0128】
期間S8において、CPU1によりclock 信号の立ち上がりに同期してデータバス104上のデータMが取り込まれ、同時に、アドレス(N+12)がアドレスバス103に出力され、データ(N+12)のアクセスが再開される。
一方、バスコントローラ202によりready 信号がネゲートされ、CPU101に対し、データバス104上のデータが無効である旨が通知される。
【0129】
期間S9において、バスコントローラ202によりready 信号がアサートされ、CPU101に対し、データバス104上のデータが有効である旨が通知される。
同時に、バスコントローラ202によりOE信号線データラッチユニット211のic1 信号がアサートされ、データラッチユニット211によりデータ(N+12)がデータバス104に出力される。
【0130】
期間S10において、CPU101によりclock 信号の立ち上がりに同期してデータバス104上のデータ(N+12)が取り込まれ、同時にrequest 信号がネゲートされる。
一方、バスコントローラ202により、ready 信号およびrombnk信号がネゲートされる。同時に、データ出力信号線231のic1 信号がネゲートされ、データラッチ信号線220のidlt信号がネゲートされ、データラッチユニット210および211のそれぞれのラッチ回路が保持動作が解除され、処理を終了する。
【0131】
なお、バスコントローラ202の詳細な動作については、具体例3のバスコントローラ102と同様であり、その説明を省略する。
【0132】
〈効果〉
以上のように、具体例4によれば、具体例3のメモリシステムの構成に加え、ROM110および111から出力されたデータをそれぞれデータラッチユニット210および211により保持する。
【0133】
このため、データラッチユニット210および211によりデータバス104へのデータ出力タイミングを制御することができるので、ROM110および111において、それぞれのOE0 信号、OE1 信号をアサートしてからデータが出力されるまでの遅延時間の影響を排除することができる。
したがって、システムのクロック周波数が高い場合でも、前記遅延時間に起因するウェイト信号の挿入を少なくすることができるので、ロスの少ない高速なメモリ読出動作を行うことができる。
【0134】
メモリアクセス速度の高速化を実現する技術としてキャッシュメモリ技術が知られている。キャッシュメモリ技術は、CPUと主記憶との間に高速なキャッシュメモリを設ける。キャッシュメモリに保持されているデータが、再度CPUによりアクセスされた場合、主記憶にアクセスすることなく、キャッシュメモリにアクセスすることで、高速化が図られる。
【0135】
しかしながら、一般に、キャッシュメモリのメモリ容量は小さい。このため、データの局所性の少ないプログラムの場合には、キャッシュメモリのヒット率が低下してしまう。
本発明に係るメモリシステムは、このようなキャッシュメモリ技術の欠点を補うのに特に有効である。
【図面の簡単な説明】
【図1】本発明に係る具体例1のメモリシステムの構成を示すブロック図である。
【図2】具体例1のメモリシステムのアドレスを説明する説明図である。
【図3】具体例1のメモリシステムのメモリ読出動作の一例を示すタイミングチャートである。
【図4】従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【図5】具体例1のメモリシステムのメモリ読出動作の他の例を示すタイミングチャートである。
【図6】従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【図7】本発明に係る具体例2のメモリシステムのバスコントローラ60の構成を示すブロック図である。
【図8】本発明に係る具体例3のメモリシステムの構成を示すブロック図である。
【図9】具体例3のメモリシステムのアドレスを説明する説明図である。
【図10】図8に示されたバスコントローラ102の構成を示すブロック図である。
【図11】具体例3のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【図12】具体例3のメモリ読出動作の説明図であり、図12(a)はシステムのクロック周波数が低い場合、図12(b)はシステムのクロック周波数が高い場合の動作を説明する説明図である。
【図13】具体例4のメモリシステムの構成を示すブロック図である。
【図14】図13に示されたバスコントローラ202の構成を示すブロック図である。
【図15】具体例4のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【符号の説明】
1 CPU
2 バスコントローラ
3 アドレスバス
4 データバス
5 コントロールバス
10、11、12、13 ROM
20、21、22、23 データラッチユニット
30 CE信号線
40 データラッチ信号線
50、51、52、53 データ出力信号線
Claims (4)
- 複数のメモリバンクと、該複数のメモリバンクにインターリーブ方式で読み出しアクセスするためにアドレスを出力する制御部と、前記出力されたアドレスを取り込んで前記複数のメモリバンクの出力を制御するバスコントローラと、前記各メモリバンクから出力されるデータを一時的に保持するための複数のデータ保持回路とを備え、前記制御部が前記複数のデータ保持回路から順次、データを取り込むと次のアドレスを出力するメモリシステムにおいて、
前記バスコントローラは、
前記取り込んだアドレスを保持するためのアドレス保持回路と、
該アドレス保持回路の保持するアドレスと前記取り込んだ次のアドレスとを比較して一致、不一致を判定する比較部と、
該比較回路が一致と判定すると前記制御部にデータを取り込ませるために前記複数のデータ保持回路に対して現在のデータを保持させるべく制御し、
該比較部が不一致と判定すると更に前記次のアドレスが前記複数のメモリバンクのアドレス領域に含まれるか否かを判定し、含まれていると前記アドレス保持回路に前記次のアドレスを保持させると共に前記複数のデータ保持回路を前記各メモリバンクからの新たなデータを保持させるべく制御し、含まれていないと前記次のアドレスが外部デバイスのアドレスと判定して前記複数のデータ保持回路に対して現在のデータを保持させる制御を行うアドレス判別部と、
を含むことを特徴とするメモリシステム。 - それぞれページ単位のアドレスを表す上位アドレスに対し、ページ内の下位アドレスのみ変化させて高速メモリ読出動作を実行するページモードを有する複数のROM(read only memory)バンクと、
前記複数のROMバンクをアクセスするためのアドレスを出力する制御部と、
前記制御部により出力されたアドレスを入力し、前記制御部と協働して前記複数のメモリバンクを制御するバスコントローラと、
前記バスコントローラの制御信号に基づいて前記複数のROMバンクに入力される前記上位アドレスを一時的に保持する上位アドレス保持回路とを備え、
前記バスコントローラは、前記複数のメモリバンクから順次に読み出し可能な連続するアドレスの間に外部装置のアドレスが挿入されている場合、前記上位アドレス保持回路に保持された前記上位アドレスを維持させ、
前記制御部は、前記外部装置のデータアクセス動作の終了後、残りのアドレスに対応するデータを前記下位アドレスのみ変化させてアクセスすることを特徴とするメモリシステム。 - 請求項2に記載のメモリシステムおいて、
前記複数のROMバンクのそれぞれに対応して設けられ、前記バスコントローラの制御信号に基づいて前記ROMバンクから出力されたデータを一時的に保持する複数のデータ保持回路を備え、
前記制御部は、前記複数のデータ保持回路のそれぞれに対応するROMバンクから出力されたデータが保持された場合、それぞれのデータ保持回路から順次にデータを取り込むとともに、次のメモリアクセスのためのアドレスを出力することを特徴とするメモリシステム。 - 請求項2に記載のメモリシステムにおいて、
前記バスコントローラは、
前記制御部により出力されたアドレスが前記複数のROMバンクのメモリ領域に含まれるか否かを判別する判別部と、
前記判別部により前記アドレスが前記複数のメモリバンクのメモリ領域に含まれると判別された前回および今回の上位アドレスを比較する比較部とを有し、
前記比較部により比較された前回および今回の上位アドレスが一致しない場合、前記上位アドレス保持回路に今回の上位アドレスを新たに保持することを特徴とするメモリシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01785098A JP3954185B2 (ja) | 1998-01-14 | 1998-01-14 | メモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01785098A JP3954185B2 (ja) | 1998-01-14 | 1998-01-14 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11203196A JPH11203196A (ja) | 1999-07-30 |
JP3954185B2 true JP3954185B2 (ja) | 2007-08-08 |
Family
ID=11955147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01785098A Expired - Fee Related JP3954185B2 (ja) | 1998-01-14 | 1998-01-14 | メモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3954185B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7541731B2 (ja) * | 2019-02-16 | 2024-08-29 | 国立大学法人東北大学 | デバイス、センサノード及びマイクロコントローラにおける処理方法 |
-
1998
- 1998-01-14 JP JP01785098A patent/JP3954185B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11203196A (ja) | 1999-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2646854B2 (ja) | マイクロプロセッサ | |
KR100341948B1 (ko) | 제어된버스트메모리액세스기능을갖는데이타처리기및그방법 | |
US6535959B1 (en) | Circuit and method for reducing power consumption in an instruction cache | |
US5822762A (en) | Information processing device with decision circuits and partitioned address areas | |
JP3954185B2 (ja) | メモリシステム | |
JP2006164070A5 (ja) | ||
JP3096576B2 (ja) | メモリ制御回路とその回路を内蔵した集積回路素子 | |
JP4993892B2 (ja) | メモリ・コントローラ | |
JP2000099452A (ja) | Dma制御装置 | |
JPH08339331A (ja) | キャッシュメモリー | |
JP2000076180A (ja) | バス接続装置及び情報処理システム | |
JP3222647B2 (ja) | メモリバンク自動切替システム | |
US6684286B1 (en) | High-speed block transfer circuit | |
JP2001154912A (ja) | データ記憶装置 | |
JP4052878B2 (ja) | 情報処理装置 | |
JPS6349809B2 (ja) | ||
KR100346268B1 (ko) | 데이터 버스 제어 시스템 | |
JP2002251883A (ja) | 半導体記憶装置および情報処理システム | |
JPS63129438A (ja) | メモリ制御装置 | |
KR100557933B1 (ko) | 버스 효율 향상을 위한 라이트 버퍼의 구조 | |
JP2005228142A (ja) | メモリ制御回路 | |
JP2003296105A (ja) | データ処理装置 | |
JPS6246353A (ja) | メモリ読出し方式 | |
JPH10333975A (ja) | マイクロプロセッサシステム | |
JPH07210456A (ja) | メモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040831 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061016 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070426 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100511 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130511 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140511 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |