(57)【特許請求の範囲】
【請求項１】
複数のメモリバンクと、該複数のメモリバンクにインターリーブ方式で読み出しアクセスするためにアドレスを出力する制御部と、前記出力されたアドレスを取り込んで前記複数のメモリバンクの出力を制御するバスコントローラと、前記各メモリバンクから出力されるデータを一時的に保持するための複数のデータ保持回路とを備え、前記制御部が前記複数のデータ保持回路から順次、データを取り込むと次のアドレスを出力するメモリシステムにおいて、
前記バスコントローラは、
前記取り込んだアドレスを保持するためのアドレス保持回路と、
該アドレス保持回路の保持するアドレスと前記取り込んだ次のアドレスとを比較して一致、不一致を判定する比較部と、
該比較回路が一致と判定すると前記制御部にデータを取り込ませるために前記複数のデータ保持回路に対して現在のデータを保持させるべく制御し、
該比較部が不一致と判定すると更に前記次のアドレスが前記複数のメモリバンクのアドレス領域に含まれるか否かを判定し、含まれていると前記アドレス保持回路に前記次のアドレスを保持させると共に前記複数のデータ保持回路を前記各メモリバンクからの新たなデータを保持させるべく制御し、含まれていないと前記次のアドレスが外部デバイスのアドレスと判定して前記複数のデータ保持回路に対して現在のデータを保持させる制御を行うアドレス判別部と、
を含むことを特徴とするメモリシステム。
【請求項２】
それぞれページ単位のアドレスを表す上位アドレスに対し、ページ内の下位アドレスのみ変化させて高速メモリ読出動作を実行するページモードを有する複数のＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）バンクと、
前記複数のＲＯＭバンクをアクセスするためのアドレスを出力する制御部と、
前記制御部により出力されたアドレスを入力し、前記制御部と協働して前記複数のメモリバンクを制御するバスコントローラと、
前記バスコントローラの制御信号に基づいて前記複数のＲＯＭバンクに入力される前記上位アドレスを一時的に保持する上位アドレス保持回路とを備え、
前記バスコントローラは、前記複数のメモリバンクから順次に読み出し可能な連続するアドレスの間に外部装置のアドレスが挿入されている場合、前記上位アドレス保持回路に保持された前記上位アドレスを維持させ、
前記制御部は、前記外部装置のデータアクセス動作の終了後、残りのアドレスに対応するデータを前記下位アドレスのみ変化させてアクセスすることを特徴とするメモリシステム。
【請求項３】
請求項２に記載のメモリシステムおいて、
前記複数のＲＯＭバンクのそれぞれに対応して設けられ、前記バスコントローラの制御信号に基づいて前記ＲＯＭバンクから出力されたデータを一時的に保持する複数のデータ保持回路を備え、
前記制御部は、前記複数のデータ保持回路のそれぞれに対応するＲＯＭバンクから出力されたデータが保持された場合、それぞれのデータ保持回路から順次にデータを取り込むとともに、次のメモリアクセスのためのアドレスを出力することを特徴とするメモリシステム。
【請求項４】
請求項２に記載のメモリシステムにおいて、
前記バスコントローラは、
前記制御部により出力されたアドレスが前記複数のＲＯＭバンクのメモリ領域に含まれるか否かを判別する判別部と、
前記判別部により前記アドレスが前記複数のメモリバンクのメモリ領域に含まれると判別された前回および今回の上位アドレスを比較する比較部とを有し、
前記比較部により比較された前回および今回の上位アドレスが一致しない場合、前記上位アドレス保持回路に今回の上位アドレスを新たに保持することを特徴とするメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、連続するアドレスが順次に割り当てられた複数のメモリバンクを有するインタリーブ方式のメモリシステムに関する。
【０００２】
【従来の技術】
従来、高速のメモリ読出動作を実現するメモリシステムとして、インタリーブ方式のメモリシステムが知られている。
インタリーブ方式のメモリシステムでは、複数のメモリバンクに順次に連続するアドレスが割り当てられる。これらのメモリバンクから連続するアドレスのデータを読み出す場合には、１回の読出動作で各バンクから順次にデータが読み出される。
【０００３】
例えば、バンク０〜３を有する４バンク構成のメモリシステムでは、バンク０〜３に同一のアドレスを同時に入力し、各バンクのＯＥ（output enable ）端子をバンク０、バンク１、バンク２、バンク３の順にアサートすることで、連続するアドレスのデータが読み出される。
このため、アドレスが連続する場合のデータのアクセス時間は、アドレスが連続しないデータのアクセス時間と比較して１／４程度となり、見かけ上のアクセス速度が向上する。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のインタリーブ方式のメモリシステムにあっては、次のような解決すべき課題があった。
バンク０〜３の４バンク構成のメモリシステムでは、１回のメモリ読出動作のためにアドレスバスを介してバンク０〜３に出力されたアドレスは、最後のアドレスであるバンク３のデータの読出動作が終了するまで、アドレスバス上に保持する必要がある。
このため、バンク３のデータを読み出してからバンク０のデータを読み出す際には、アドレスがアドレスバスに出力されてから最初のアドレスであるバンク０のデータが読み出されるまでのオーバーヘッド時間がかかってしまう。
したがって、連続するアドレスのデータをバンク０〜３から繰り返し読み出す場合には、バンク３とバンク０との間でデータを連続的に読み出すことができなかった。
【０００５】
また、１回の読出動作により読出可能な連続するアドレスの間に外部のデバイスのアドレスが挿入されている場合、例えば、バンク０〜３の連続するアドレスのうち、バンク２とバンク３との間に外部のデバイスのアドレスが挿入されている場合には、バンク３のデータ読出動作は、次回のメモリ読出動作となるため、オーバーヘッド時間がかかってしまう。
このように、従来のインタリーブ方式のメモリシステムにあっては、高速メモリ読出動作が可能な利点を十分に生かすことができない場合があった。
【０００６】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
複数のメモリバンクと、該複数のメモリバンクにインターリーブ方式で読み出しアクセスするためにアドレスを出力する制御部と、上記出力されたアドレスを取り込んで上記複数のメモリバンクの出力を制御するバスコントローラと、上記各メモリバンクから出力されるデータを一時的に保持するための複数のデータ保持回路とを備え、上記制御部が上記複数のデータ保持回路から順次、データを取り込むと次のアドレスを出力するメモリシステムにおいて、上記バスコントローラは、上記取り込んだアドレスを保持するためのアドレス保持回路と、該アドレス保持回路の保持するアドレスと上記取り込んだ次のアドレスとを比較して一致、不一致を判定する比較部と、該比較回路が一致と判定すると上記制御部にデータを取り込ませるために上記複数のデータ保持回路に対して現在のデータを保持させるべく制御し、該比較部が不一致と判定すると更に上記次のアドレスが上記複数のメモリバンクのアドレス領域に含まれるか否かを判定し、含まれていると上記アドレス保持回路に上記次のアドレスを保持させると共に上記複数のデータ保持回路を上記各メモリバンクからの新たなデータを保持させるべく制御し、含まれていないと上記次のアドレスが外部デバイスのアドレスと判定して上記複数のデータ保持回路に対して現在のデータを保持させる制御を行うアドレス判別部と、を含むことを特徴とするメモリシステム。
【０００９】
〈構成２〉
それぞれページ単位のアドレスを表す上位アドレスに対し、ページ内の下位アドレスのみ変化させて高速メモリ読出動作を実行するページモードを有する複数のＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）バンクと、上記複数のＲＯＭバンクをアクセスするためのアドレスを出力する制御部と、上記制御部により出力されたアドレスを入力し、上記制御部と協働して上記複数のメモリバンクを制御するバスコントローラと、上記バスコントローラの制御信号に基づいて上記複数のＲＯＭバンクに入力される上記上位アドレスを一時的に保持する上位アドレス保持回路とを備え、上記バスコントローラは、上記複数のメモリバンクから順次に読み出し可能な連続するアドレスの間に外部装置のアドレスが挿入されている場合、上記上位アドレス保持回路に保持された上記上位アドレスを維持させ、上記制御部は、上記外部装置のデータアクセス動作の終了後、残りのアドレスに対応するデータを上記下位アドレスのみ変化させてアクセスすることを特徴とするメモリシステム。
【００１０】
〈構成３〉
構成２に記載のメモリシステムおいて、上記複数のＲＯＭバンクのそれぞれに対応して設けられ、上記バスコントローラの制御信号に基づいて上記ＲＯＭバンクから出力されたデータを一時的に保持する複数のデータ保持回路を備え、上記制御部は、上記複数のデータ保持回路のそれぞれに対応するＲＯＭバンクから出力されたデータが保持された場合、それぞれのデータ保持回路から順次にデータを取り込むとともに、次のメモリアクセスのためのアドレスを出力することを特徴とするメモリシステム。
【００１１】
〈構成４〉
構成２に記載のメモリシステムにおいて、上記バスコントローラは、上記制御部により出力されたアドレスが上記複数のＲＯＭバンクのメモリ領域に含まれるか否かを判別する判別部と、上記判別部により上記アドレスが上記複数のメモリバンクのメモリ領域に含まれると判別された前回および今回の上位アドレスを比較する比較部とを有し、上記比較部により比較された前回および今回の上位アドレスが一致しない場合、上記上位アドレス保持回路に今回の上位アドレスを新たに保持することを特徴とするメモリシステム。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
《具体例１》
〈構成〉
図１は本発明に係る具体例１のメモリシステムの構成を示すブロック図である。
図１に示すように、このメモリシステムは、バンク０を構成するＲＯＭ（read only memory）１０、バンク１を構成するＲＯＭ１１、バンク２を構成するＲＯＭ１２およびバンク３を構成するＲＯＭ１３を有する４バンク構成のインタリーブ方式のメモリシステムである。
【００１３】
ＲＯＭ１０〜１３は、３２ビット構成のＲＯＭであり、 ＣＰＵ（central processing unit ）１およびバスコントローラ２により制御される。ＲＯＭ１０〜１３には、後述するように、Ａ２１〜Ａ２の２０ビットで表される１ワード単位の連続するアドレスが、バンク０、バンク１、バンク２、バンク３の順に順次に割り当てられている。
ＣＰＵ１は、いわゆる３２ビットＣＰＵであり、アドレスバス３およびデータバス４を介してＲＯＭ１０〜１３に接続されており、アドレスバス３を介してＲＯＭ１０〜１３にアドレスを出力し、データバス４を介してＲＯＭ１０〜１３からデータを読み出す。
【００１４】
データバス４は、３２ビットのバス幅を有し、ＣＰＵ１に接続されるとともに、後述するデータラッチユニット２０〜２３に接続されている。
また、データバス４は、例えばＲＡＭ（random access memory）、Ｉ／Ｏ装置等の図示しない外部のデバイスに接続されている。
【００１５】
アドレスバス３は、３２本のアドレス信号線Ａ３１〜Ａ０からなり、ＣＰＵ１に接続されるとともに、バスコントローラ２に接続され、さらにＡ３１〜Ａ０のうち１８本のアドレス信号線Ａ２１〜Ａ４が分岐点Ｐ１で分岐されてＲＯＭ１０〜１３に接続されている。
また、アドレスバス３は、例えばＲＡＭ（random access memory）、Ｉ／Ｏ装置等の図示しない外部のデバイスに接続されている。
【００１６】
ＣＰＵ１は、アドレス信号線Ａ２１〜Ａ４にＲＯＭ１０〜１３の１ワード（３２ビット）単位のアドレスを出力し、アドレス信号線Ａ３、Ａ２にバンク切換信号を出力し、アドレス信号線Ａ１、Ａ０にＲＯＭ１０〜１３の１ワードのデータをバイト単位でアクセスするための信号を出力する。
【００１７】
また、ＣＰＵ１は、コントロールバス５を介してバスコントローラ２と接続されており、バスコントローラ２との間で各種の制御信号を授受する。
ＣＰＵ１からバスコントローラ２には、request 信号、r／w信号およびburst 信号が出力される。
request 信号は、外部に対するアクセスの要求を表す負論理の信号である。r／w信号は、request 信号とともに用いられ、Ｈ（high）レベルのとき、外部からデータを読み出す動作を表し、Ｌ（low ）レベルのとき、外部にデータを書き込む動作を表す。burst 信号は、連続するアドレスのデータアクセスを表す負論理の信号である。
バスコントローラ２からＣＰＵ１には、ready信号が出力される。ready信号は、データバス４上のデータが有効であることを表す負論理の信号である。
【００１８】
バスコントローラ２は、アドレス信号線Ａ３１〜Ａ０を通して入力されたアドレス信号線をデコードし、コントロールバス５を介して授受される制御信号に基づいてＲＯＭ１０〜１３、データラッチユニット２０〜２３および図示しない外部のデバイスを制御する。
【００１９】
バスコントローラ２は、ＣＥ（chip enable ）信号線３０を介してＲＯＭ１０〜１３のそれぞれのＣＥ端子に接続され、ＣＥ信号線３０を通してＲＯＭ１０〜１３に負論理のrombnk信号を同時に出力する。
ＲＯＭ１０〜１３は、ＣＥ信号線３０のrombnk信号がアサートされた場合に活性化され、それぞれアドレスバス３上のアドレスを入力し、入力されたアドレスに該当するデータを読み出し、それぞれ後述するデータラッチユニット２０〜２３に出力する。
【００２０】
バスコントローラ２は、データラッチ信号線４０を通して負論理のidlt信号をデータラッチユニット２０〜２３に出力する。
また、バスコントローラ２は、データ出力信号線５０を通して負論理のic0 信号をデータラッチユニット２０に出力し、データ出力信号線５１を通して負論理のic1 信号をデータラッチユニット２１に出力し、データ出力信号線５２を通して負論理のic2 信号をデータラッチユニット２２に出力し、データ出力信号線５３を通して負論理のic3 信号をデータラッチユニット２３に出力する。
【００２１】
データラッチユニット２０は、ＲＯＭ１０から出力されたデータを保持するものであり、複数のラッチ回路を有する。
ラッチ回路は、Ｈ（high）レベルで入力データをスルー出力し、Ｌ（low）レベルで入力データを保持するＤラッチからなり、データラッチ信号線４０のidlt信号がネゲート状態の場合には、入力されたデータをそのまま出力し、idlt信号がアサートされた場合には、入力端の最新のデータを保持する。
データラッチユニット２０は、データ出力信号線５０のic0 信号がネゲート状態の場合には、ラッチ回路の出力端のデータを内部に保持し、ic0 信号がアサートされた場合、ラッチ回路の出力端のデータをデータバス４に出力する。
【００２２】
データラッチユニット２１〜２３は、データラッチユニット２０と同様の構成であり、それぞれidlt信号がアサートされた場合、それぞれＲＯＭ１１〜１３から出力された最新のデータをラッチ回路により保持し、データ出力信号線５１のic1 信号、データ出力信号線５２のic2 信号およびデータ出力信号線５３のic3 信号がアサートされた場合、前記ラッチ回路の出力端のデータをデータバス４に出力する。
【００２３】
図２は図１に示された具体例１のメモリシステムのアドレスを説明する説明図である。
図２に示すように、ＣＰＵ１から出力される偶数のアドレスＡ２１〜Ａ０をＮで表し、その下位５ビットＡ４〜Ａ０を０００００Ｂ（Ｂは２進数表現）で表すものとする。
前述のように、Ａ１、Ａ０の下位２ビットは、１ワードのデータをバイト単位で指定するために使用される。Ａ３、Ａ２は、バンク切換信号に使用される。Ａ３、Ａ２が００Ｂのときには、ＲＯＭ１０（バンク０）が選択され、Ａ３、Ａ２が０１Ｂのときには、ＲＯＭ１１（バンク１）が選択され、Ａ３、Ａ２が１０Ｂのときには、ＲＯＭ１２（バンク２）が選択され、Ａ３、Ａ２が１１Ｂのときには、ＲＯＭ１３（バンク３）が選択される。
【００２４】
ＲＯＭ１０〜１３の単体の１ワード単位のアドレスは、Ａ４以上のアドレス、Ａ２１〜Ａ４により表されるが、バンク切換のためのＡ３、Ａ２によりインタリーブされる、すなわち連続的なアドレスが割り当てられる。
したがって、ＣＰＵ１により出力されるアドレスＡ２１〜Ａ０を１ワード毎に表すと、アドレスＮの次のアドレスは（Ｎ＋４）、その次のアドレスは（Ｎ＋８）のように表される。
【００２５】
〈動作〉
図３は図１および図２に示された具体例１のメモリシステムのメモリ読出動作の一例を示すタイミングチャートである。
この例では、１ワード単位に連続するアドレスのデータを、ＲＯＭ１０〜１３（バンク０〜３）から順次に繰り返し読み出す場合の動作について説明する。
図中、データバスは、ＣＰＵ１とデータラッチユニット２０〜２３との間のデータバス４上のデータを表し、データラッチ２０〜２３は、データラッチユニット２０〜２３のそれぞれのラッチ回路の出力端に保持されたデータを表すものとする。
なお、データラッチ信号線４０のidlt信号を例外として、各信号は、clock 信号の立ち上がりに同期して動作するものとする。
【００２６】
まず、期間Ｓ０において、ＣＰＵ１により、アドレスＮ（Ｎ  ＡＤＤＲＥＳＳ）がアドレスバス３に出力されるとともに、request 信号およびburst 信号がアサートされる。なお、r／w信号は読出動作を表すネゲート状態に保持される。
一方、バスコントローラ２では、request 信号、burst 信号およびr／w信号に基づいてアクセスモードが選択され、rombnk信号がアサートされ、ＲＯＭ１０〜１３では、rombnk信号のアサートタイミングに同期してアドレスバス３に出力されたアドレスが入力される。
【００２７】
期間Ｓ１、期間Ｓ２を経て、期間Ｓ３において、ＲＯＭ１０〜１３から、入力されたアドレスＮに対応するデータＮ、（Ｎ＋４）、（Ｎ＋８）および（Ｎ＋１２）が、それぞれデータラッチユニット２０、２１、２２および２３に出力される。
一方、バスコントローラ２によりready 信号がアサートされ、ＣＰＵ１に対し、データバス４上のデータが有効である旨が通知される。
同時に、バスコントローラ２によりデータ出力信号線５０のic0 信号がアサートされて、データラッチユニット２０では、ラッチ回路に入力されて出力されたデータＮがデータバス４に出力される。
次いで、データラッチ信号線４０のidlt信号がアサートされ、データラッチユニット２０のラッチ回路にデータＮが保持され、データラッチユニット２１のラッチ回路にデータ（Ｎ＋４）が保持され、データラッチユニット２２のラッチ回路にデータ（Ｎ＋８）が保持され、データラッチユニット２３のラッチ回路にデータ（Ｎ＋１２）が保持される。
【００２８】
期間Ｓ４において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータＮが取り込まれる。同時に、データラッチユニット２０〜２３にそれぞれのデータＮ、（Ｎ＋４）、（Ｎ＋８）および（Ｎ＋１２）が保持されたので、ＲＯＭ１０〜１３のアドレスＮに対応するメモリ読出動作を開放することができ、ＣＰＵ１によりアドレス（Ｎ＋１６）がアドレスバス３に出力され、次のメモリ読出動作が開始される。
一方、バスコントローラ２により、データ出力信号線５０のic0 信号がネゲートされるとともに、データ出力信号線５１のic1 信号がアサートされ、データラッチユニット２１のラッチ回路に保持されたデータ（Ｎ＋４）がデータバス４に出力される。
【００２９】
期間Ｓ５において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋４）が取り込まれる。
一方、バスコントローラ２により、データ出力信号線５１のic1 信号がネゲートされるとともに、データ出力信号線５２のic2 信号がアサートされ、データラッチユニット２２のラッチ回路に保持されたデータ（Ｎ＋８）がデータバス４に出力される。
期間Ｓ６において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋８）が取り込まれる。
一方、バスコントローラ２により、データ出力信号線５２のic2 信号がネゲートされるとともに、データ出力信号線５３のic3 信号がアサートされ、データラッチユニット２３のラッチ回路に保持されたデータ（Ｎ＋１２）がデータバス４に出力される。
【００３０】
期間Ｓ７において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋１２）が取り込まれる。同時に、ＲＯＭ１０〜１３からアドレス（Ｎ＋１６）に対応するデータ（Ｎ＋１６）、（Ｎ＋２０）、（Ｎ＋２４）および（Ｎ＋２８）が、それぞれデータラッチユニット２０、２１、２２および２３に出力される。
一方、バスコントローラ２によりデータラッチ信号線４０のidlt信号がネゲートされ、データラッチユニット２０〜２３のそれぞれのラッチ回路の保持状態が解除され、次いで、データ出力信号線５３のic3 信号がネゲートされる。
【００３１】
同時に、バスコントローラ２によりデータ出力信号線５０のic0 信号がアサートされて、データラッチユニット２０では、ラッチ回路に入力されて出力されたデータ（Ｎ＋１６）がデータバス４に出力される。
次いで、バスコントローラ２によりデータラッチ信号線４０のidlt信号が再びアサートされ、データラッチユニット２０のラッチ回路にデータ（Ｎ＋１６）が保持され、データラッチユニット２１のラッチ回路にデータ（Ｎ＋２０）が保持され、データラッチユニット２２のラッチ回路にデータ（Ｎ＋２４）が保持され、データラッチユニット２３のラッチ回路にデータ（Ｎ＋２８）が保持される。
【００３２】
期間Ｓ８において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋１６）が取り込まれる。同時に、ＣＰＵ１により次のアドレス（Ｎ＋２４）がアドレスバス３に出力されるが、Ａ４以上のアドレスは同じなので、ＲＯＭ１０〜１３のそれぞれのアドレスには変化はない。
一方、バスコントローラ２により、データ出力信号線５０のic0 信号がネゲートされるとともに、データ出力信号線５１のic1 信号がアサートされ、データラッチユニット２１のラッチ回路に保持されたデータ（Ｎ＋２０）がデータバス４に出力される。
【００３３】
期間Ｓ９において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋２０）が取り込まれる。
一方、バスコントローラ２により、データ出力信号線５１のic1 信号がネゲートされるとともに、データ出力信号線５２のic2 信号がアサートされ、データラッチユニット２２のラッチ回路に保持されたデータ（Ｎ＋２４）がデータバス４に出力される。
【００３４】
期間Ｓ１０において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋２４）が取り込まれる。
一方、バスコントローラ２により、データ出力信号線５２のic2 信号がネゲートされるとともに、データ出力信号線５３のic3 信号がアサートされ、データラッチユニット２３のラッチ回路に保持されたデータ（Ｎ＋２８）がデータバス４に出力される。同時に、バスコントローラ２によりburst 信号がネゲートされる。
【００３５】
期間Ｓ１１において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋２４）が取り込まれ、request 信号がネゲートされる。
一方、バスコントローラ２により、ready 信号およびrombnk信号がネゲートされる。同時に、データ出力信号線５３のic3 信号がネゲートされ、データラッチ信号線４０のidlt信号がネゲートされ、データラッチユニット２０〜２３のそれぞれのラッチ回路の保持動作が解除され、処理を終了する。
【００３６】
ここで、図３に示された具体例１のメモリシステムのメモリ読出動作と、データラッチユニット２０〜２３を有しない従来のメモリシステムのメモリ読出動作とを比較する。
【００３７】
図４は従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
なお、バスコントローラ２は、ＲＯＭ１０〜１３のＯＥ（output enable ）端子とそれぞれ接続されており、図中に示されるOE0 信号、OE1 信号、OE2 信号およびOE3 信号をアサートすることによりそれぞれＲＯＭ１０〜１３のデータ出力タイミングを制御するものとする。
【００３８】
図４から理解されるように、従来のメモリシステムでは、ＣＰＵ１は、期間Ｓ０でアドレスバス３上に出力したアドレスＮを、期間Ｓ６でＲＯＭ１３のデータ（Ｎ＋１２）がデータバス４に出力されるまで、保持する必要があった。
このため、ＣＰＵ１は、次のアドレス（Ｎ＋１６）を期間Ｓ７で出力せざるを得ず、ＲＯＭ１３からデータバス４にデータ（Ｎ＋１２）が出力されてから、ＲＯＭ１０からデータバス４にデータ（Ｎ＋１６）が出力される時間は、ＲＯＭ１０にアドレスバス３にアドレスを出力してからデータバス４にデータが出力されるまでのオーバーヘッド時間と一致していた。
【００３９】
これに対し、具体例１のメモリシステムでは、図３から理解されるように、期間Ｓ３で、データラッチユニット２０〜２３により、それぞれのＲＯＭ１０〜１３から出力されたデータを保持することで、ＣＰＵ１は、データラッチユニット２０〜２３からデータを取り込むことができる。
このため、ＣＰＵ１によりＲＯＭ１０〜１３にアドレスＮをアドレスバス３に出力し続ける必要がなく、期間Ｓ４で、次のアドレス（Ｎ＋１６）を出力し、次回のメモリ読出動作に移行することができる。この結果、期間Ｓ６および期間Ｓ７に示されるように、データラッチユニット２３からデータ（Ｎ＋１２）がデータバス４に出力された次のクロックで、ＲＯＭ１０からデータ（Ｎ＋１６）がデータバス４に出力されることになる。
【００４０】
したがって、連続するアドレスのデータをＲＯＭ１０〜１３から繰り返し読み出す場合であっても、ＲＯＭ１３からデータバス４にデータが出力されてから、ＲＯＭ１０からデータバス４にデータが出力される時間を短縮し、ＲＯＭ１０〜１３の読出と同様にデータを連続的に読み出すことができる。
【００４１】
図５は図１および図２に示された具体例１のメモリシステムのメモリ読出動作の他の例を示すタイミングチャートである。
この例では、ＲＯＭ１０〜１３（バンク０〜３）の連続するアドレスＮ〜（Ｎ＋１２）に対し、（Ｎ＋８）と（Ｎ＋１２）との間に、外部のデバイスのアドレスＭが挿入されている場合の動作について説明する。
【００４２】
期間Ｓ１〜期間Ｓ４は、図３に示された期間Ｓ１〜期間Ｓ４の動作と同様なので、その説明を省略する。
期間Ｓ５において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋４）が取り込まれる。
一方、バスコントローラ２により、データ出力信号線５１のic1 信号がネゲートされるとともに、データ出力信号線５２のic2 信号がアサートされ、データラッチユニット２２のラッチ回路に保持されたデータ（Ｎ＋８）がデータバス４に出力される。
同時に、アドレス（Ｎ＋８）の次のアドレスが外部のデバイスのアドレスＭなので、バスコントローラ２によりburst 信号がネゲートされる。
なお、データラッチ信号線４０のidlt信号はアサート状態に保持される。
【００４３】
期間Ｓ６において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋８）が取り込まれ、同時に、ＣＰＵ１により外部のデバイスのアドレスＭがアドレスバス３に出力される。
一方、バスコントローラ２により、ready 信号がネゲートされ、ＣＰＵ１に対し、データバス４上のデータが無効である旨が通知される。
【００４４】
期間Ｓ７において、外部のデバイスによりアドレスＭに対応するデータＭがデータバス４に出力される。
同時に、バスコントローラ２によりready 信号がアサートされ、ＣＰＵ１に対し、データバス４上のデータが有効である旨が通知される。
【００４５】
期間Ｓ８において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータＭが取り込まれ、同時に、アドレス（Ｎ＋１２）がアドレスバス３に出力され、アドレスＮに対するデータ（Ｎ＋１２）のアクセスが再開される。
一方、バスコントローラ２によりready 信号がネゲートされ、ＣＰＵ１に対し、データバス４上のデータが無効である旨が通知される。
【００４６】
期間Ｓ９において、バスコントローラ２によりready 信号がアサートされ、ＣＰＵ１に対し、データバス４上のデータが有効である旨が通知される。同時に、バスコントローラ２によりデータ出力信号線５３のic3 信号がアサートされ、データラッチユニット２３のラッチ回路に保持されたデータ（Ｎ＋１２）がデータバス４に出力される。
【００４７】
期間Ｓ１０において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス４上のデータ（Ｎ＋４）が取り込まれ、同時にrequest 信号がネゲートされる。
一方、バスコントローラ２により、ready 信号およびrombnk信号がネゲートされ、さらに、データ出力信号線５３のic3 信号がアサートされ、データラッチ信号線４０のidlt信号がネゲートされ、データラッチユニット２０〜２３のそれぞれのラッチ回路の保持状態が解除され、処理を終了する。
【００４８】
ここで、図５に示された具体例１のメモリシステムのメモリ読出動作と、データラッチユニット２０〜２３を有しない従来のメモリシステムのメモリ読出動作とを比較する。
【００４９】
図６は従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
なお、バスコントローラ２は、ＲＯＭ１０〜１３のＯＥ（output enable ）端子とそれぞれ接続されており、図中に示されるOE0 信号、OE1 信号、OE2 信号およびOE3 信号をアサートすることによりそれぞれＲＯＭ１０〜１３のデータ出力タイミングを制御するものとする。
【００５０】
図６から理解されるように、従来のメモリシステムでは、期間Ｓ７で、外部のデバイスのデータＭがデータバス４に出力されてから、期間Ｓ８で、ＣＰＵ１により次のアドレス（Ｎ＋１２）をアドレスバス３に出力し、ＲＯＭ１３からデータ（Ｎ＋１２）を読み出していた。このため、アドレス（Ｎ＋１２）がアドレスバス３に出力されてからＲＯＭ１３からデータ（Ｎ＋１２）が出力されるまでのオーバーヘッド時間を要していた。
【００５１】
これに対し、具体例１のメモリシステムでは、図５から理解されるように、アクセス（Ｎ＋８）の終了後、アドレスＭのアクセスが開始されても、データラッチユニット２０〜２３にそれぞれのＲＯＭ１０〜１３から出力されたデータを保持し続ける。
このため、アドレスＭのアクセス終了後に、アドレス（Ｎ＋１２）のアクセスを開始した際には、ＲＯＭ１３にアクセスすることなく、データラッチユニット２３からデータを読み出すことができるので、データを早く読み出すことができる。したがって、メモリ読出動作を高速化することができる。
【００５２】
〈効果〉
以上のように、具体例１によれば、ＣＰＵ１の１回のメモリ読出動作に基づいてＲＯＭ１０〜１３から出力されたそれぞれのデータをデータラッチユニット２０〜２３に保持する。ＣＰＵ１では、データラッチユニット２０〜２３から順次にデータを取り込むとともに、次のメモリ読出動作のためのアドレスを出力する。
【００５３】
このため、ＲＯＭ１０〜１３の１回のメモリ読出動作を早く開放し、ＣＰＵ１により次のアドレスを出力し、次回のメモリ読出動作に早く移行することができる。
したがって、連続するアドレスのデータをＲＯＭ１０〜１３から繰り返し読み出す場合には、ＲＯＭ１３のデータがデータバス４に出力されてからＲＯＭ１０のデータがデータバス４に出力されるまでの時間を短縮し、ＲＯＭ１０〜１３の読出と同様にデータを連続的に読み出すことができる。
【００５４】
また、ＲＯＭ１０〜１３の連続するアドレスの間に外部のデバイスのアドレスが挿入されている場合、外部のデバイスのアクセスに移行しても、ＲＯＭ１０〜１３から出力されたデータをそれぞれデータラッチユニット２０〜２３により保持する。
このため、外部のデバイスのアクセス終了後、ＣＰＵ１により残りのデータを取り込む際には、ＲＯＭにアクセスすることなく、データラッチユニットからデータを取り込むことができるので、データを早く読み出すことができる。
したがって、インタリーブ方式の利点を生かし、さらに高速なメモリ読出動作を行うことができるメモリシステムを提供することができる。
【００５５】
《具体例２》
〈構成〉
図７は本発明に係る具体例２のメモリシステムのバスコントローラ６０の構成を示すブロック図である。
具体例２のメモリシステムは、図１に示された具体例１のメモリシステムのバスコントローラ２をバスコントローラ６０に置き換えたものである。
図７に示すように、バスコントローラ６０は、アドレスラッチユニット６１、比較器６２、シーケンサ６３およびデコーダ６４を備えている。
【００５６】
アドレスバス３を構成するアドレス信号線Ａ３１〜Ａ０は、シーケンサ６３およびデコーダ６４に接続されている。アドレス信号線Ａ３１〜Ａ０のうちアドレス信号線Ａ２１〜Ａ４は、分岐点Ｐ１で分岐され、アドレスラッチユニット６１に接続されるとともに、分岐点Ｐ２で分岐され、比較器６２に接続されている。また、コントロールバス５を構成する複数の制御信号線は、シーケンサ６３に接続されている。
【００５７】
アドレスラッチユニット６１および比較器６２には、アドレス信号線Ａ２１〜Ａ４を通してワード単位のアドレスが入力される。
アドレスラッチユニット６１は、シーケンサ６３から出力されるload信号がアサートされた場合、入力端の最新のアドレスを保持し、比較器６２に出力する。
比較器６２は、アドレスラッチユニット６１の出力端のアドレスとアドレス信号線Ａ２１〜Ａ４を通して入力されたアドレスとを比較し、比較結果を表すhit/miss信号をシーケンサ６３に出力する。hit/miss信号は、比較結果が一致（ヒット）の場合にネゲートされ、比較結果が不一致（ミス）の場合にアサートされる。
【００５８】
シーケンサ６３は、ＣＰＵ１から出力されたrequest 信号、r／w信号およびburst 信号に基づいてメモリアクセスモードを選択し、選択されたアクセスモード、hit/miss信号およびアドレス信号線Ａ２１〜Ａ０を通して入力されたアドレスに基づいてload信号、ic0 信号、ic1 信号、ic2 信号、ic3 信号、idlt信号、ready 信号および図示しない制御信号を制御する。
【００５９】
シーケンサ６３は、入力されたアドレスが、ＲＯＭ１０〜１３のメモリ領域に含まれるか否かを判断し、入力されたアドレスがＲＯＭ１０〜１３のメモリ領域に含まれる場合、比較器６２から出力されたhit/miss信号を参照する。シーケンサ６３は、参照したhit/miss信号がアサート状態の場合には、ＲＯＭ１０〜１３に新たなワードのアドレスが入力されたと判断し、load信号をアサートする。
【００６０】
すなわち、アドレスラッチユニット６１は、バスコントローラ６０に入力されたアドレスがＲＯＭ１０〜１３のメモリ領域に含まれ、かつ比較器６２の比較結果がミスの場合、シーケンサ６３のload信号に基づいて入力端の最新のアドレスを保持する。言い換えれば、アドレスラッチユニット６１は、ＲＡＭ、Ｉ／Ｏ装置等の外部のデバイスのアドレスの影響を受けず、ＲＯＭ１０〜１３のメモリ領域に含まれるワード単位のアドレスが変化した場合に、アドレスを更新して保持する。
【００６１】
そして、シーケンサ６３は、ＲＯＭ１０〜１３のメモリ領域に含まれるワード単位のアドレスの変化を検出し、データラッチユニット２０〜２３の動作を制御する。
シーケンサ６３は、ＲＯＭ１０に対応するアドレスが入力された場合、ＲＯＭ１０からデータが出力されるタイミングに合わせ、ic0 信号をアサートした後、idlt信号をアサートする。シーケンサ６３は、データラッチユニット２３からデータを出力するようic3 信号をアサートした場合、次のclock 信号の立ち上がりに同期してic3 信号をネゲートした後、idlt信号をネゲートする。また、シーケンサ６３は、入力されたアドレスがＲＯＭ１０〜１３のメモリ領域に含まれ、比較器６２の比較結果がミスの場合、load信号をアサートすると同時にidlt信号をネゲートする。
デコーダ６４は、アドレス信号線Ａ２１〜Ａ０を通して入力されたアドレスをデコードし、rombnk信号を出力する。
【００６２】
〈動作〉
具体例２のメモリ読出動作は、図３および図５に示された具体例１のメモリシステムの動作と同様である。
ここでは、図５に示されたＲＯＭ１０〜１３（バンク０〜３）の連続するアドレスＮ〜（Ｎ＋１２）に対し、（Ｎ＋８）と（Ｎ＋１２）との間に外部のデバイスのアドレスＭが挿入されている場合のメモリ読出動作におけるバスコントローラ６０の動作について説明する。
【００６３】
まず、期間Ｓ０において、ＣＰＵ１により出力されたアドレスＮがバスコントローラ６０に入力されると、比較器６２によりアドレスラッチユニット６１に保持された前回のアドレスと今回のアドレスＮとが比較される。比較結果はミスとなり、hit/miss信号はアサートされる。
シーケンサ６３では、入力されたアドレスＮがＲＯＭ１０〜１３のメモリ領域に含まれるので、比較器６２により出力されたhit/miss信号が参照される。hit/miss信号はアサートされているので、シーケンサ６３によりload信号がアサートされる。アドレスラッチユニット６１では、このload信号に基づいてアドレスＮが保持される。
この結果、比較器６２の比較結果がヒットとなり、hit/miss信号がネゲートされる。そして、シーケンサ６３のload信号もネゲートされる。
【００６４】
期間Ｓ３において、シーケンサ６３では、ＲＯＭ１０に対応するアドレスＮが入力されたので、ＲＯＭ１０からデータＮが出力されるタイミングに合わせてic0 信号がアサートされて、次いでidlt信号がアサートされる。
【００６５】
期間Ｓ４において、ＣＰＵ１によりアドレス（Ｎ＋８）が出力され、バスコントローラ６０に入力される。この場合、アドレス信号線Ａ２１〜Ａ０のアドレスの変化はないので、比較器６２の比較結果はヒットであり、hit/miss信号はネゲート状態に保持される。このため、シーケンサ６３のload信号もネゲート状態に保持される。
【００６６】
期間Ｓ６において、ＣＰＵ１により外部のデバイスのアドレスＭが出力されてバスコントローラ６０に入力されると、アドレス信号線Ａ２１〜Ａ０のアドレスが変化するので、比較器６２の比較結果はミスとなり、hit/miss信号がアサートされる。しかし、シーケンサ６３では、アドレスＭがＲＯＭ１０〜１３のメモリ領域に含まれないと判断され、このhit/miss信号は無視されて、load信号はネゲート状態に保持される。
【００６７】
期間Ｓ８において、ＣＰＵ１によりアドレス（Ｎ＋１２）が出力され、バスコントローラ６０に入力される。アドレスラッチユニット６１にはアドレスＮが保持されているので、比較器６２の比較結果はヒットとなり、hit/miss信号がネゲートされる。シーケンサ６３では、アドレス（Ｎ＋１２）は、ＲＯＭ１０〜１３のメモリ領域に含まれるので、hit/miss信号が参照される。hit/miss信号がネゲート状態なので、load信号もネゲート状態に保持される。
期間Ｓ９において、シーケンサ６３によりic3 信号がアサートされ、データラッチユニット２３からデータ（Ｎ＋１２）が出力され、期間Ｓ１０において、ic3 信号がネゲートされて、idlt信号がネゲートされる。
【００６８】
〈効果〉
以上のように、具体例２によれば、バスコントローラ６０に、アドレス信号線Ａ２１〜Ａ４を通して入力されたワード単位のアドレスをシーケンサ６３のload信号に基づいて選択的に保持するアドレスラッチユニット６１と、アドレスラッチユニット６１に保持されたアドレスとアドレス信号線Ａ２１〜Ａ４を通して入力されたアドレスとを比較する比較器６２とを設ける。
【００６９】
そして、シーケンサ６３では、入力されたアドレスがＲＯＭ１０〜１３のメモリ領域に含まれると判断された場合には、比較器６２の比較結果が参照される。比較結果がヒットのときには、ＲＯＭ１０〜１３の同一アドレスの読出動作が継続されていると判断し、データラッチユニット２０〜２３の動作を保持状態に保ち、比較結果がミスのときには、ＲＯＭ１０〜１３の異なるアドレスの読出動作に移行したと判断し、データラッチユニット２０〜２３の保持状態を解除し、次回のメモリ読出動作に移行する。
【００７０】
このため、バスコントローラ６０により、ＣＰＵ１とは独立にワード単位のアドレスの変化を認識し、データラッチユニット２０〜２３の保持動作を制御することができるので、従来のＣＰＵをそのまま利用することができ、ＣＰＵ１の負担を軽減することができる。
また、ＣＰＵおよびバスコントローラの何れかにデータラッチユニットの制御機能を設けることができるので、柔軟かつ最適なシステム設計を行うことができる。
【００７１】
なお、具体例１および２では、メモリシステムのメモリバンクをＲＯＭにより構成しているが、メモリはＲＯＭに限るものではなく、ＲＡＭにより構成してもよい。
【００７２】
《具体例３》
〈構成〉
図８は本発明に係る具体例３のメモリシステムの構成を示すブロック図である。
図８に示すように、このメモリシステムは、バンク０を構成するＲＯＭ１１０およびバンク１を構成するＲＯＭ１１１を有する２バンク構成のインタリーブ方式のメモリシステムである。
【００７３】
ＲＯＭ１１０および１１１は、ともにページモード機能を有する３２ビット構成のＲＯＭであり、ページ単位のアドレスを表す上位アドレスに対し、ページ内の下位アドレスのみ変化させて高速読出を実行する。
後述するように、ＲＯＭ１１０および１１１には、Ａ２２〜Ａ２の２１ビットで表される連続するアドレスが交互に割り当てられており、ＲＯＭ１１０には、偶数アドレスが割り当てられ、ＲＯＭ１１１には、奇数アドレスが割り当てられている。
ＲＯＭ１１０および１１１は、ＣＰＵ１０１およびバスコントローラ１０２により制御される。
【００７４】
ＣＰＵ１０１は、いわゆる３２ビットＣＰＵであり、アドレスバス１０３およびデータバス１０４を介してＲＯＭ１１０および１１１に接続されており、アドレスバス１０３を介してＲＯＭ１１０および１１１にアドレスを出力し、データバス１０４を介してＲＯＭ１１０および１１１からデータを読み出す。
【００７５】
データバス１０４は、３２ビットのバス幅を有し、ＣＰＵ１０１に接続されるとともに、ＲＯＭ１１０および１１１に接続されている。また、データバス４は、図示しない外部のデバイスに接続されている。
アドレスバス１０３は、３２本のアドレス信号線Ａ３１〜Ａ０からなりＣＰＵ１に接続されるとともに、バスコントローラ１０２に接続され、さらに２０本のアドレス信号線Ａ２２〜Ａ３が分岐点Ｐ１で分岐されている。
【００７６】
このアドレス信号線Ａ２２〜Ａ３は、分岐点Ｐ２で、上位アドレス信号線群１０３ａを構成する１８本のアドレス信号線Ａ２２〜Ａ５と、下位アドレス信号線群１０３ｂを構成する２本のアドレス信号線Ａ４、Ａ３とに分岐される。
上位アドレス信号線群１０３ａは、後述する上位アドレスラッチユニット１２０に接続され、下位アドレス信号線群１０３ｂは、直接ＲＯＭ１１０および１１１に接続されている。
また、アドレスバス１０３は、図示しない外部のデバイスに接続されている。
【００７７】
ＣＰＵ１０１は、アドレス信号線Ａ２２〜Ａ３にＲＯＭ１１０および１１１のアドレスを出力し、アドレス信号線Ａ２にバンク切換信号を出力し、アドレス信号線Ａ０、Ａ１にＲＯＭ１０〜１３の１ワードが４バイトのデータをバイト単位でアクセスするための信号を出力する。
また、ＣＰＵ１０１は、コントロールバス１０５介してバスコントローラ１０２と接続されており、バスコントローラ１０２との間で各種の制御信号を授受する。
ＣＰＵ１０１からバスコントローラ１０２には、 request 信号、 r／w信号およびburst 信号が出力され、バスコントローラ１０２からＣＰＵ１には、ready信号が出力される。
【００７８】
バスコントローラ１０２は、アドレス信号線Ａ３１〜Ａ０を通して入力されたアドレス信号線をデコードし、コントロールバス１０５を介して授受される制御信号およびアドレスバス１０３を通して入力されるアドレスに基づいてＲＯＭ１１０、ＲＯＭ１１１、上位アドレスラッチユニット１２０および図示しない外部のデバイスを制御する。
【００７９】
バスコントローラ１０２は、ＣＥ信号線１３０を介してＲＯＭ１１０および１１１のそれぞれのＣＥ端子に接続されるとともに、ＯＥ信号線１４０を介してＲＯＭ１１０のＯＥ端子に接続され、ＯＥ信号線１４１を介してＲＯＭ１１１のＯＥ端子に接続されている。
【００８０】
ＣＰＵ１０１は、ＣＥ信号線１３０を通して負論理のrombnk信号をＲＯＭ１１０および１１１に出力するとともに、ＯＥ信号線１４０を通して負論理のOE0 信号をＲＯＭ１１０に出力し、ＯＥ信号線１４１を通して負論理のOE1 信号をＲＯＭ１１１に出力する。
【００８１】
ＲＯＭ１１０は、ＣＥ信号線１３０のrombnk信号がアサートされた場合に活性化され、アドレスバス１０３上のアドレスを入力し、入力されたアドレスに該当するデータを読み出し、ＯＥ信号線１４０のOE0 信号がアサートされた場合、読み出されたデータをデータバス１０４に出力する。
同様に、ＲＯＭ１１１は、ＣＥ信号線１３０のrombnk信号がアサートされた場合に活性化され、アドレスバス１０３上のアドレスを入力し、入力されたアドレスに該当するデータを読み出し、ＯＥ信号線１４１のOE1 信号がアサートされた場合、読み出されたデータをデータバス１０４に出力する。
【００８２】
バスコントローラ１０２は、アドレスラッチ信号線１５０を介して上位アドレスラッチユニット１２０に接続され、負論理のialt信号を上位アドレスラッチユニット１２０に出力する。
上位アドレスラッチユニット１２０は、ＣＰＵ１０１によりアドレス信号線Ａ２２〜Ａ５に出力された上位アドレスを一時的に保持するものであり、複数のラッチ回路を有する。
ラッチ回路は、Ｈ（high）レベルで入力データをスルー出力し、Ｌ（low）レベルで入力データを保持するＤラッチからなり、アドレスラッチ信号線１５０のialt信号がネゲート状態の場合には、入力されたデータをそのまま出力し、ialt信号がアサートされた場合には、入力された最新のデータを保持する。
【００８３】
図９は図８に示された具体例３のメモリシステムのアドレスを説明する説明図である。
図９に示すように、ＣＰＵ１から出力される偶数のアドレスＡ２２〜Ａ０をＮで表し、その下位６ビットＡ５〜Ａ０を００００００Ｂ（Ｂは２進数表現）で表すものとする。
【００８４】
前述のように、Ａ１、Ａ０の下位２ビットは、１ワードのデータをバイト単位で指定するために使用される。また、Ａ２は、バンク切換信号に使用され、Ａ２が０のときには、ＲＯＭ１１０（バンク０）が選択され、Ａ２が１のときには、ＲＯＭ１１１（バンク１）が選択される。
ＲＯＭ１１０および１１１の単体の１ワード単位のアドレスは、Ａ３以上のアドレス、Ａ２２〜Ａ３により表されるが、バンク切換のためのＡ２によりインタリーブされる、すなわち連続的なアドレスが割り当てられる。
したがって、ＣＰＵ１により出力されるアドレスを１ワード毎に表すと、アドレスＮの次のアドレスは（Ｎ＋４）、その次のアドレスは（Ｎ＋８）で表される。
【００８５】
Ａ５は、ＲＯＭ１１０およびＲＯＭ１１１の１ページのアドレスを表し、１ページはＡ４およびＡ３で表される４ワードにより構成される。
ＲＯＭ１１０およびＲＯＭ１１１は、このページ内のアドレスであれば、下位アドレスＡ４、Ａ３のみを変化させて高速なメモリ読出動作を行うことができる。
【００８６】
図１０は図８に示されたバスコントローラ１０２の構成を示すブロック図である。
図１０に示すように、バスコントローラ１０２は、上位アドレスラッチユニット１６１、比較器１６２、シーケンサ１６３およびデコーダ１６４を備えている。
【００８７】
アドレスバス１０３を構成するアドレス信号線Ａ３１〜Ａ０は、シーケンサ１６３およびデコーダ１６４に接続されている。アドレス信号線Ａ３１〜Ａ０のうちアドレス信号線Ａ２２〜Ａ５は、分岐点Ｐ１で分岐され、上位アドレスラッチユニット１６１に接続されるとともに、分岐点Ｐ２で分岐され、比較器１６２に接続されている。
また、コントロールバス１０５を構成する複数の制御信号線は、シーケンサ１６３に接続されている。
【００８８】
上位アドレスラッチユニット１６１および比較器１６２には、アドレス信号線Ａ２２〜Ａ５を通してページ単位のアドレスを表す上位アドレスが入力される。上位アドレスラッチユニット１６１は、シーケンサ１６３から出力されるload信号がアサートされた場合、入力端の最新の上位アドレスを保持し、比較器１６２に出力する。
比較器１６２は、上位アドレスラッチユニット１６１の出力端の上位アドレスとアドレス信号線Ａ２２〜Ａ５を通して入力された上位アドレスとを比較し、比較結果を表すhit/miss信号をシーケンサ１６３に出力する。hit/miss信号は、比較結果が一致（ヒット）の場合にネゲートされ、比較結果が不一致（ミス）の場合にアサートされる。
【００８９】
シーケンサ１６３は、ＣＰＵ１０１から出力されたrequest 信号、r／w信号およびburst 信号に基づいてメモリアクセスモードを選択し、選択されたアクセスモード、hit/miss信号およびアドレス信号線Ａ２２〜Ａ０を通して入力されたアドレスに基づいてload信号、ialt信号、OE0 信号、OE1 信号、ready 信号および図示しない制御信号を制御する。
【００９０】
シーケンサ１６３は、入力されたアドレスが、ＲＯＭ１１０および１１１のメモリ領域に含まれるか否かを判断し、入力されたアドレスがＲＯＭ１１０および１１１のメモリ領域に含まれる場合、比較器１６２から出力されたhit/miss信号を参照する。シーケンサ１６３は、参照したhit/miss信号がアサート状態の場合には、ＲＯＭ１１０および１１１の新たなページのアドレスが入力されたと判断し、load信号をアサートする。
【００９１】
すなわち、上位アドレスラッチユニット１６１は、バスコントローラ１０２に入力されたアドレスがＲＯＭ１１０および１１１のメモリ領域に含まれ、かつ比較器１６２の比較結果がミスの場合、シーケンサ１６３のload信号に基づいて入力端の最新のアドレスを保持する。言い換えれば、上位アドレスラッチユニット１６１は、外部のデバイスのアドレスの影響を受けず、ＲＯＭ１１０および１１１のメモリ領域に含まれるページ単位のアドレスが変化した場合に、その上位アドレスを更新して保持する。
【００９２】
そして、シーケンサ１６３は、ＲＯＭ１１０および１１１のメモリ領域に含まれる上位アドレスの変化を検出し、上位アドレスラッチユニット１２０の動作を制御する。ialt信号の初期状態はアサート状態にある。
シーケンサ１６３は、入力されたアドレスがＲＯＭ１１０および１１１のメモリ領域に含まれ、比較器１６２の比較結果がミスの場合、まず、load信号をアサートすると同時にialt信号をネゲートし、次に、入力されたアドレスに対応するＲＯＭ１１０または１１１から最初のデータが出力されるタイミングに合わせ、OE0 信号またはOE1 信号をアサートし、ialt信号をアサートする。
デコーダ１６４は、アドレス信号線Ａ２２〜Ａ０を通して入力されたアドレスをデコードし、rombnk信号を出力する。
【００９３】
〈動作〉
図１１は図８〜図１０に示された具体例３のメモリシステムのメモリ読出動作を示すタイミングチャートである。
この例では、ＲＯＭ１１０および１１１（バンク０および１）の１ページ内の連続するアドレスＮ〜（Ｎ＋１２）に対し、（Ｎ＋８）と（Ｎ＋１２）との間に、外部のデバイスのアドレスＭが挿入されている場合の動作について説明する。図１１において、アドレスバスは、アドレス１０３上のアドレスを表し、上位アドレスラッチは、上位アドレスラッチユニット１２０から出力された上位アドレスを表すものとする。
各信号は、clock 信号の立ち上がりに同期して動作するものとする。
【００９４】
まず、期間Ｓ０において、ＣＰＵ１０１により、アドレスＮ（Ｎ  ＡＤＤＲＥＳＳ）がアドレスバス１０３に出力されるとともに、request 信号およびburst 信号がアサートされる。なお、r／w信号は読出動作を表すネゲート状態に保持される。
一方、バスコントローラ１０２では、request 信号、burst 信号およびr／w信号に基づいてアクセスモードが選択され、rombnk信号がアサートされる。ＲＯＭ１１０および１１１では、rombnk信号のアサートタイミングに同期してアドレスバス１０３に出力されたアドレスが入力される。
バスコントローラ１０２には、新たなページのアドレスが入力されたので、同時に、アドレスラッチ信号線１５０のialt信号がネゲートされる。
【００９５】
期間Ｓ１、期間Ｓ２を経て、期間Ｓ３において、ＲＯＭ１１０および１１１において、それぞれアドレスＮに対応するデータＮおよび（Ｎ＋４）が読み出される。
一方、バスコントローラ１０２によりready 信号がアサートされ、ＣＰＵ１０１に対し、データバス１０４上のデータが有効である旨が通知される。
同時に、バスコントローラ１０２によりＯＥ信号線１４０のOE0 信号がアサートされて、ＲＯＭ１１０からデータＮがデータバス１０４に出力される。
次いで、アドレスラッチ信号線１５０のialt信号がアサートされ、上位アドレスラッチユニット１２０にページ単位のアドレスを表す上位アドレスＮが保持される。
【００９６】
期間Ｓ４において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータＮが取り込まれ、同時に、同一ページ内のアドレス（Ｎ＋８）がアドレスバス１０３に出力される。
一方、バスコントローラ１０２により、ＯＥ信号線１４０のOE0 信号がネゲートされるとともに、ＯＥ信号線１４１のOE1 信号がアサートされ、ＲＯＭ１１１からデータ（Ｎ＋４）がデータバス１０４に出力される。
なお、アドレスラッチ信号線１５０のialt信号はアサート状態に保持される。
【００９７】
期間Ｓ５において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータ（Ｎ＋４）が取り込まれる。また、アドレス（Ｎ＋８）の次のアドレスが外部のデバイスのアドレスＭなので、バスコントローラ２によりburst 信号がネゲートされる。
一方、バスコントローラ１０２では、ＯＥ信号線１４１のOE1 信号がネゲートされるとともに、０Ｅ信号線１４０のOE0 信号がアサートされ、ＲＯＭ１１０からデータ（Ｎ＋８）がデータバス１０４に出力される。
なお、アドレスラッチ信号線１５０のialt信号はアサート状態に保持される。
【００９８】
期間Ｓ６において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータ（Ｎ＋８）が取り込まれ、同時に、ＣＰＵ１０１により外部のデバイスのアドレスＭがアドレスバス１０３に出力される。
一方、バスコントローラ１０２により、ready 信号がネゲートされ、ＣＰＵ１０１に対し、データバス４上のデータが無効である旨が通知される。
【００９９】
期間Ｓ７において、外部のデバイスによりアドレスＭに対応するデータＭがデータバス１０４に出力される。
同時に、バスコントローラ１０２によりready 信号がアサートされ、ＣＰＵ１０１に対し、データバス１０４上のデータが有効である旨が通知される。
【０１００】
期間Ｓ８において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータＭが取り込まれ、同時に、アドレス（Ｎ＋１２）がアドレスバス１０３に出力され、データ（Ｎ＋１２）のアクセスが再開される。このとき、上位アドレスラッチユニット１２０には、同一ページのアドレスＮの上位アドレスが保持されているので、ＲＯＭ１１１では、下位アドレスＡ４、Ａ３の変化に応じた読出動作が行われる。
一方、バスコントローラ１０２によりready 信号がネゲートされ、ＣＰＵ１に対し、データバス４上のデータが無効である旨が通知される。
【０１０１】
期間Ｓ９において、バスコントローラ１０２によりready 信号がアサートされ、ＣＰＵ１０１に対し、データバス１０４上のデータが有効である旨が通知される。
同時に、バスコントローラ１０２によりＯＥ信号線１４１のOE1 信号がアサートされる。ＲＯＭ１１１からデータ（Ｎ＋１２）がデータバス１０４に出力される。
【０１０２】
期間Ｓ１０において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータ（Ｎ＋１２）が取り込まれ、同時にrequest 信号がネゲートされる。
一方、バスコントローラ１０２により、ready 信号およびrombnk信号がネゲートされ、さらに、ＯＥ信号線１４１のOE1 信号がネゲートされ、処理を終了する。
【０１０３】
さらに、図１１に示されたメモリ読出動作におけるバスコントローラ１０２の動作について説明する。
【０１０４】
まず、期間Ｓ０において、ＣＰＵ１０１により出力されたアドレスＮがバスコントローラ１０２に入力される。比較器１６２では、上位アドレスラッチユニット１６１に保持された前回のアドレスと今回のアドレスＮとが比較される。比較結果はミスとなり、hit/miss信号はアサートされる。
シーケンサ１６３では、入力されたアドレスＮがＲＯＭ１１０および１１１のメモリ領域に含まれるので、比較器１６２により出力されたhit/miss信号が参照される。hit/miss信号はアサートされているので、シーケンサ１６３によりload信号がアサートされる。上位アドレスラッチユニット１６１では、このload信号に基づいてアドレスＮが保持される。
この結果、比較器１６２の比較結果がヒットとなり、hit/miss信号がネゲートされる。そして、シーケンサ１６３のload信号もネゲートされる。
【０１０５】
期間Ｓ４において、ＣＰＵ１により出力された同一ページ内の次のアドレス（Ｎ＋８）がバスコントローラ１０２に入力される。上位アドレスＡ２２〜Ａ５は変化しないので、比較器１６２の比較結果はヒットとなり、hit/miss信号はネゲート状態に保持される。このため、シーケンサ１６３のload信号もネゲート状態に保持され、アドレスラッチ信号線１５０のialt信号はアサート状態に保持される。
【０１０６】
期間Ｓ６において、ＣＰＵ１により出力された外部のデバイスのアドレスＭがバスコントローラ１０２に入力される。上位アドレスＡ２２〜Ａ５が変化するので、比較器１６２の比較結果はミスとなり、hit/miss信号がアサートされる。しかし、シーケンサ１６３では、アドレスＭがＲＯＭ１１０および１１１のメモリ領域に含まれないと判断され、このhit/miss信号は無視されて、load信号はネゲート状態に保持される。このため、アドレスラッチ信号線１５０のialt信号はアサート状態に保持される。
【０１０７】
期間Ｓ８において、ＣＰＵ１により出力されたアドレス（Ｎ＋１２）がバスコントローラ１０２に入力される。上位アドレスラッチユニット１６１にはアドレスＮの上位アドレスが保持されているので、比較器１６２の比較結果はヒットとなり、hit/miss信号がネゲートされる。
シーケンサ１６３では、アドレス（Ｎ＋１２）は、ＲＯＭ１１０および１１１のメモリ領域に含まれるので、hit/miss信号が参照される。hit/miss信号がネゲート状態なので、load信号もネゲート状態に保持される。
【０１０８】
〈効果〉
以上のように、具体例３によれば、ＲＯＭ１１０および１１１に入力されるページ単位のアドレスを表す上位アドレスＡ２２〜Ａ５を上位アドレスラッチユニット１２０に保持し、ＲＯＭ１１０および１１１の上位アドレスを活性化させておく。
このため、ページ内の連続するアドレスの間に外部のデバイスのアドレスが挿入されている場合、外部のデバイスのアクセス終了後、以降のアクセスを再開したときには、ＲＯＭ１１０および１１１では、下位アドレスＡ４、Ａ３のみ活性化させればよいので、データを早く読み出すことができる。
したがって、インタリーブ方式のメモリシステムの利点を生かし、さらに高速なメモリ読出動作を行うことができるメモリシステムを提供することができる。
【０１０９】
また、バスコントローラ１０２に、アドレス信号線Ａ２１〜Ａ５を通して入力された上位アドレスをシーケンサ１６３のload信号に基づいて選択的に保持するアドレスラッチユニット１６１と、アドレスラッチユニット６１に保持されたアドレスとアドレス信号線Ａ２１〜Ａ４を通して入力された上位アドレスとを比較する比較器１６２とを設ける。
【０１１０】
そして、シーケンサ１６３では、入力されたアドレスがＲＯＭ１１０および１１１のメモリ領域に含まれると判断された場合には、比較器１６２の比較結果が参照される。比較結果がヒットのときには、ＲＯＭ１１０および１１１の同一ページ内のアドレスの読出動作が継続されていると判断し、上位アドレスラッチユニット１２０の動作を保持状態に保ち、比較結果がミスのときには、ＲＯＭ１１０および１１１の異なるページのアドレスの読出動作に移行したと判断し、上位アドレスラッチユニット１２０の保持状態を解除し、次回のメモリ読出動作に移行する。
【０１１１】
このため、バスコントローラ１０２により、ＣＰＵ１０１とは独立に上位アドレスの変化を認識し、上位アドレスラッチユニット１２０の保持動作を制御することができるので、従来のＣＰＵをそのまま利用することができ、ＣＰＵの負担を軽減することができる。
また、ＣＰＵおよびバスコントローラの何れかに上位アドレスラッチユニットの制御機能を設けることができるので、柔軟かつ最適なシステム設計を行うことができる。
【０１１２】
図１２は具体例３のメモリ読出動作の説明図であり、図１２（ａ）はシステムのクロック周波数が低い場合、図１２（ｂ）はシステムのクロック周波数が高い場合の動作を説明する説明図である。
具体例３のメモリシステムでは、ＲＯＭ１１０および１１１のデータ出力をそれぞれのＯＥ端子に入力されるOE0信号およびOE1 信号により制御している。このため、ＲＯＭ１１０および１１１では、それぞれOE0信号およびOE1 信号がアサートされてからそれぞれのデータが出力されるまでの時間差Δｔがかかってしまう。
【０１１３】
図１２（ａ）に示すように、クロック周波数が低い場合には、次のクロックまでにデータバス１０４にデータが出力され、次のクロックの立ち上がりに同期してＣＰＵ１０１によりデータが取り込まれる。
しかし、図１２（ｂ）に示すように、クロック周波数が高い場合には、次のクロックまでにデータの出力が間に合わない。このため、ＣＰＵ１０１では、ＯＥ信号がアサートされてから、２クロック目でデータを取り込むことになる。
このように、具体例３のメモリシステムでは、システムのクロック周波数が高くなった場合、ウェイト信号を挿入する等の処理が必要になり、メモリ読出動作にロスが生じてしまう場合がある。
以下、このような問題を解決する具体例４のメモリシステムについて説明する。
【０１１４】
《具体例４》
〈構成〉
図１３は具体例４のメモリシステムの構成を示すブロック図である。
図１３に示すように、具体例４のメモリシステムは、図８に示された具体例３のメモリシステムにデータラッチユニット２１０および２１１を加え、具体例３のバスコントローラ１０２をバスコントローラ２０２に置き換えたものである。なお、具体例３のメモリシステムの各部と同様の構成には、同一符号を付し、その説明を省略する。
【０１１５】
バスコントローラ２０２は、データラッチ信号線２２０を通して負論理のidlt信号をデータラッチユニット２１０および２１１に出力し、データ出力信号線２３０を通して負論理のic0 信号をデータラッチユニット２１０に出力し、データ出力信号線２３１を通して負論理のic1 信号をデータラッチユニット２１１に出力する。
【０１１６】
データラッチユニット２１０は、ＲＯＭ１１０から出力されたデータを保持するものであり、複数のラッチ回路を有する。
ラッチ回路は、Ｈ（high）レベルで入力データをスルー出力し、Ｌ（low）レベルで入力データを保持するＤラッチからなり、データラッチ信号線２２０のidlt信号がネゲート状態の場合には、入力されたデータをそのまま出力し、idlt信号がアサートされた場合には、入力された最新のデータを保持する。
データラッチユニット２１０は、データ出力信号線２３０のic0 信号がネゲート状態の場合には、ラッチ回路の出力端のデータを内部に保持し、ic0 信号がアサートされた場合、ラッチ回路の出力端のデータをデータバス１０４に出力する。
データラッチユニット２１１は、データラッチユニット２１０と同様の構成であり、ＲＯＭ１１１からデータを一時的に保持してデータバス１０４に出力する。
【０１１７】
図１４は図１３に示されたバスコントローラ２０２の構成を示すブロック図である。
図１４に示すように、バスコントローラ２０２は、図８に示されたシーケンサ１６３をシーケンサ２６３に置き換えたものである。
なお、図８に示されたバスコントローラ２０２の各部と同様の構成には、同一符号を付し、その説明を省略する。
【０１１８】
シーケンサ２６３は、シーケンサ１６３に、ic0 信号、ic1 信号およびidlt信号によりデータラッチユニット２１０および２１１を制御する機能を加えたものである。
シーケンサ２６３は、ＲＯＭ１１０および１１１のメモリ領域に含まれるページ単位のアドレスの変化を検出し、データラッチユニット２１０および２１１を制御する。
【０１１９】
シーケンサ１６３は、ＲＯＭ１１０に対応するアドレスが入力された場合、ＲＯＭ１０からデータが出力されるタイミングに合わせ、ic0 信号をアサートした後、idlt信号をアサートする。シーケンサ１６３は、データラッチユニット２１１からデータを出力するようic1 信号をアサートした場合、次のclock 信号の立ち上がりに同期してic1 信号をネゲートした後、idlt信号をネゲートする。また、シーケンサ１６３は、入力されたアドレスがＲＯＭ１１０および１１１のメモリ領域に含まれ、比較器１６２の比較結果がミスの場合、load信号をアサートすると同時にidlt信号をネゲートする。
【０１２０】
〈動作〉
図１５は図１３および図１４に示された具体例４のメモリシステムのメモリ読出動作を示すタイミングチャートである。
この例では、ＲＯＭ１１０および１１１（バンク０および１）の１ページ内の連続するアドレスＮ〜（Ｎ＋１２）に対し、（Ｎ＋８）と（Ｎ＋１２）との間に、外部のデバイスのアドレスＭが挿入されている場合の動作について説明する。
【０１２１】
図１５において、アドレスバスは、アドレス１０３上のアドレスを表し、上位アドレスラッチは、上位アドレスラッチユニット１２０から出力された上位アドレスを表すものとする。
また、データバスは、データバス１０４上のデータを表し、データラッチ２１０および２１１は、データラッチユニット２１０および２１１のそれぞれのラッチ回路の出力端に保持されたデータを表すものとする。
なお、データラッチ信号線２２０のidlt信号を例外として、各信号は、clock 信号の立ち上がりに同期して動作するものとする。
【０１２２】
まず、期間Ｓ０において、ＣＰＵ１０１により、アドレスＮ（Ｎ  ＡＤＤＲＥＳＳ）がアドレスバス１０３に出力されるとともに、request 信号およびburst 信号がアサートされる。なお、r／w信号は読出動作を表すネゲート状態に保持される。
一方、バスコントローラ２０２では、request 信号、burst 信号およびr／w信号に基づいてアクセスモードが選択され、rombnk信号がアサートされる。ＲＯＭ１１０および１１１では、rombnk信号のアサートタイミングに同期してアドレスバス１０３に出力されたアドレスが入力される。
バスコントローラ２０２には、新たなページのアドレスが入力されたので、同時に、アドレスラッチ信号線１５０のialt信号がネゲートされる。
【０１２３】
期間Ｓ１、期間Ｓ２を経て、期間Ｓ３において、ＲＯＭ１１０および１１１から、アドレスＮに対応するデータＮおよび（Ｎ＋４）が、それぞれデータラッチユニット２１０および２１１に出力される。
一方、バスコントローラ２０２によりready 信号がアサートされ、ＣＰＵ１０１に対し、データバス１０４上のデータが有効である旨が通知される。
同時に、バスコントローラ２０２によりデータ出力信号線２３０のic0 信号がアサートされて、データラッチユニット２１０では、ラッチ回路に入力されて出力されたデータＮがデータバス１０４に出力される。
次いで、データラッチ信号線２２０のidlt信号がアサートされ、データラッチユニット２１０のラッチ回路にデータＮが保持され、データラッチユニット２１１のラッチ回路にデータ（Ｎ＋４）が保持される。
同時に、アドレスラッチ信号線１５０のialt信号がアサートされ、上位アドレスラッチユニット１２０にワード単位のアドレスを表す上位アドレスＮが保持される。
【０１２４】
期間Ｓ４において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータＮが取り込まれ、同時に、同一ページ内のアドレス（Ｎ＋８）がアドレスバス１０３に出力される。
一方、バスコントローラ２０２により、データ出力信号線２３０のic0 信号がネゲートされるとともに、データ出力信号線２３１のic1 信号がアサートされ、データラッチユニット２１１からデータ（Ｎ＋４）がデータバス１０４に出力される。
なお、アドレスラッチ信号線１５０のialt信号はアサート状態に保持される。
【０１２５】
期間Ｓ５において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータ（Ｎ＋４）が取り込まれる。同時に、アドレス（Ｎ＋８）の次のアドレスが外部のデバイスのアドレスＭなので、バスコントローラ２によりburst 信号がネゲートされる。
一方、バスコントローラ２０２により、データラッチ信号線２２０のidlt信号がネゲートされ、データラッチユニット２１０および２１１のそれぞれのラッチ回路の保持状態が解除される。次いで、データ出力信号線２３１のic1 信号がネゲートされるとともに、データ出力信号線２３０のic0 信号がアサートされる。データラッチユニット２１０では、ラッチ回路に入力されて出力されたデータ（Ｎ＋８）がデータバス１０４に出力される。
次いで、バスコントローラ２０２によりデータラッチ信号線２２０のidlt信号が再びアサートされ、データラッチユニット２１０のラッチ回路にデータ（Ｎ＋）が、データラッチユニット２１１のラッチ回路にデータ（Ｎ＋１２）が保持される。
なお、アドレスラッチ信号線１５０のialt信号はアサート状態に保持される。
【０１２６】
期間Ｓ６において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータ（Ｎ＋８）が取り込まれ、同時に、ＣＰＵ１０１により外部のデバイスのアドレスＭがアドレスバス１０３に出力される。
一方、バスコントローラ２０２により、ready 信号がネゲートされ、ＣＰＵ１０１に対し、データバス４上のデータが無効である旨が通知される。また、データ出力信号線２３０のic0 信号がネゲートされる。
【０１２７】
期間Ｓ７において、外部のデバイスによりアドレスＭに対応するデータＭがデータバス１０４に出力される。
同時に、バスコントローラ２０２によりready 信号がアサートされ、ＣＰＵ１に対し、データバス１０４上のデータが有効である旨が通知される。
【０１２８】
期間Ｓ８において、ＣＰＵ１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータＭが取り込まれ、同時に、アドレス（Ｎ＋１２）がアドレスバス１０３に出力され、データ（Ｎ＋１２）のアクセスが再開される。
一方、バスコントローラ２０２によりready 信号がネゲートされ、ＣＰＵ１０１に対し、データバス１０４上のデータが無効である旨が通知される。
【０１２９】
期間Ｓ９において、バスコントローラ２０２によりready 信号がアサートされ、ＣＰＵ１０１に対し、データバス１０４上のデータが有効である旨が通知される。
同時に、バスコントローラ２０２によりＯＥ信号線データラッチユニット２１１のic1 信号がアサートされ、データラッチユニット２１１によりデータ（Ｎ＋１２）がデータバス１０４に出力される。
【０１３０】
期間Ｓ１０において、ＣＰＵ１０１によりclock 信号の立ち上がりに同期してデータバス１０４上のデータ（Ｎ＋１２）が取り込まれ、同時にrequest 信号がネゲートされる。
一方、バスコントローラ２０２により、ready 信号およびrombnk信号がネゲートされる。同時に、データ出力信号線２３１のic1 信号がネゲートされ、データラッチ信号線２２０のidlt信号がネゲートされ、データラッチユニット２１０および２１１のそれぞれのラッチ回路が保持動作が解除され、処理を終了する。
【０１３１】
なお、バスコントローラ２０２の詳細な動作については、具体例３のバスコントローラ１０２と同様であり、その説明を省略する。
【０１３２】
〈効果〉
以上のように、具体例４によれば、具体例３のメモリシステムの構成に加え、ＲＯＭ１１０および１１１から出力されたデータをそれぞれデータラッチユニット２１０および２１１により保持する。
【０１３３】
このため、データラッチユニット２１０および２１１によりデータバス１０４へのデータ出力タイミングを制御することができるので、ＲＯＭ１１０および１１１において、それぞれのOE0 信号、OE1 信号をアサートしてからデータが出力されるまでの遅延時間の影響を排除することができる。
したがって、システムのクロック周波数が高い場合でも、前記遅延時間に起因するウェイト信号の挿入を少なくすることができるので、ロスの少ない高速なメモリ読出動作を行うことができる。
【０１３４】
メモリアクセス速度の高速化を実現する技術としてキャッシュメモリ技術が知られている。キャッシュメモリ技術は、ＣＰＵと主記憶との間に高速なキャッシュメモリを設ける。キャッシュメモリに保持されているデータが、再度ＣＰＵによりアクセスされた場合、主記憶にアクセスすることなく、キャッシュメモリにアクセスすることで、高速化が図られる。
【０１３５】
しかしながら、一般に、キャッシュメモリのメモリ容量は小さい。このため、データの局所性の少ないプログラムの場合には、キャッシュメモリのヒット率が低下してしまう。
本発明に係るメモリシステムは、このようなキャッシュメモリ技術の欠点を補うのに特に有効である。
【図面の簡単な説明】
【図１】本発明に係る具体例１のメモリシステムの構成を示すブロック図である。
【図２】具体例１のメモリシステムのアドレスを説明する説明図である。
【図３】具体例１のメモリシステムのメモリ読出動作の一例を示すタイミングチャートである。
【図４】従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【図５】具体例１のメモリシステムのメモリ読出動作の他の例を示すタイミングチャートである。
【図６】従来のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【図７】本発明に係る具体例２のメモリシステムのバスコントローラ６０の構成を示すブロック図である。
【図８】本発明に係る具体例３のメモリシステムの構成を示すブロック図である。
【図９】具体例３のメモリシステムのアドレスを説明する説明図である。
【図１０】図８に示されたバスコントローラ１０２の構成を示すブロック図である。
【図１１】具体例３のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【図１２】具体例３のメモリ読出動作の説明図であり、図１２（ａ）はシステムのクロック周波数が低い場合、図１２（ｂ）はシステムのクロック周波数が高い場合の動作を説明する説明図である。
【図１３】具体例４のメモリシステムの構成を示すブロック図である。
【図１４】図１３に示されたバスコントローラ２０２の構成を示すブロック図である。
【図１５】具体例４のメモリシステムのメモリ読出動作を示すタイミングチャートである。
【符号の説明】
１  ＣＰＵ
２  バスコントローラ
３  アドレスバス
４  データバス
５  コントロールバス
１０、１１、１２、１３  ＲＯＭ
２０、２１、２２、２３  データラッチユニット
３０  ＣＥ信号線
４０  データラッチ信号線
５０、５１、５２、５３  データ出力信号線
【図１】
0003954185.tif 000002
【図２】
0003954185.tif 000003
【図３】
0003954185.tif 000004
【図４】
0003954185.tif 000005
【図５】
0003954185.tif 000006
【図６】
0003954185.tif 000007
【図７】
0003954185.tif 000008
【図８】
0003954185.tif 000009
【図９】
0003954185.tif 000010
【図１０】
0003954185.tif 000011
【図１１】
0003954185.tif 000012
【図１２】
0003954185.tif 000013
【図１３】
0003954185.tif 000014
【図１４】
0003954185.tif 000015
【図１５】
0003954185.tif 000016