(57)【要約】【課題】ＤＭＡにより書換えられたメモリデータをＣＰＵが高速にアクセスできるようにする。【解決手段】ＣＰＵ１０１が連続アドレスに対してリードアクセスする可能性が高いことを想定し、バーストリードメモリインタフェイス１０５をＣＰＵ１０１とメモリ１０４の間に設ける。バーストリードメモリインタフェイス１０５は内部に、キャッシュ領域の情報とバーストリード分のデータを記録保持する為の内部バッファを持ち、ＣＰＵ１０１からキャッシュ領域外に該当するリードアクセスがあった場合に、メモリ１０４に対してバーストリードを行い、内部バッファに記録保持する。その後、内部バッファが記録保持しているアドレスに対してＣＰＵ１０１からリードアクセスがあった場合は内部バッファのデータをＣＰＵ１０１に対して出力する。【選択図】  図１
2004240520.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ外部からメモリへのデータ転送をＤＭＡにより行う様なコンピュータシステムにおいて、ＣＰＵからメモリに対するアクセスを入力する為のインタフェイスとメモリのリード及びライトを行う為のインタフェイスを持ち、ＣＰＵがキャッシュを用いずにデータアクセスを行うアドレス領域の情報と、バーストリード１回又は複数回分のリードデータを記録保持する内部バッファと、内部バッファが記録保持したリードデータのアドレス領域を記録保持するレジスタを有し、ＣＰＵがキャッシュを用いずにデータアクセスを行うアドレス領域に対してＣＰＵからリードアクセスがあった場合に、メモリに対してバーストリードを行いリードデータを内部バッファに記録保持する手段、ＣＰＵからの入力アドレスに該当するリードデータをＣＰＵへ出力する手段、内部バッファに記録保持したリードデータのアドレス情報を記録保持する手段を有し、内部バッファに記録保持されているデータのアドレス領域に対してＣＰＵからリードアクセスがあった場合に、メモリへリードする事なく内部バッファからリードデータをＣＰＵに出力する手段を有する事を特徴とするメモリインタフェイス。
【請求項２】
請求項１記載のメモリインタフェイス回路において、バーストリードによる内部バッファへの記録保持及び内部バッファデータ出力を行う機能の有効無効を指示可能なレジスタと、その機能が適用されるアドレス領域を指示可能なレジスタを有する事で、動作条件を変更可能とする事を特徴とするメモリインタフェイス。
【請求項３】
請求項１記載のメモリインタフェイス回路において、ＣＰＵからのライトアクセスに対してライトデータを内部バッファに記録保持し、メモリインタフェイスからメモリへのシングルライトの回数を軽減し、ライトアクセス転送オーバヘッドを軽減する特徴を持つメモリインタフェイス。
【請求項４】
ＣＰＵとＤＭＡＣとＩ／Ｏが同一のメモリバス上に存在する組込み系コンピュータシステムにおいて請求項１記載のメモリインタフェイスを適用する事により、ＣＰＵのバス占有率を低減し高速にメモリからのデータリードを実現する事を特徴とするメモリアクセス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＣＰＵのアクセスを受けてメモリに対して直接ライト及びリードを行う装置に関し、特に、ネットワーク経由でのデータ送受信等によるデータをＤＭＡＣがメモリに対してＤＭＡ転送を行う様なコンピュータシステムにおいて、ＤＭＡにより書換えられたメモリデータをＣＰＵが高速にアクセスする事ができるメモリインタフェイスに関する。
【０００２】
【従来の技術】
既存のメモリインタフェイスを含むコンピュータシステムは図２に示す様な構成をしている。ＣＰＵ１０１からメモリインタフェイス１０６にライトアクセス及びリードアクセスを要求されると、メモリインタフェイス１０６はメモリ１０４の特徴に合わせたライトコマンド及びリードコマンドを出力し、ライト及びリードを行う。
【０００３】
ＣＰＵ１０１にはキャッシュメモリが内蔵されており、ＣＰＵ１０１がキャッシュメモリに対するアクセスを行うかメモリ１０４に対するアクセスを行うかは、ＣＰＵ１０１がアクセスするアドレス領域に従う。図３は、ＣＰＵ１０１がアクセス可能なアドレス領域について示している。１５０はアドレス空間であり、ＣＰＵ１０１はこの空間全てに対してアクセスが可能である。アドレス空間１５０内における１５１はキャッシュ領域である。この領域ではＣＰＵ１０１はキャッシュメモリに記録保持されたデータが存在する場合にはそのデータを利用し、メモリインタフェイス１０６を介してメモリ１０４に対してアクセスを行わない。一方、アドレス空間１５０内における１５２はノンキャッシュ領域である。この領域ではＣＰＵ１０１はキャッシュメモリを利用せず一般的にキャッシュメモリより低速なメモリ１０４に対して必ずアクセスする。
【０００４】
まず、ＣＰＵ１０１がキャッシュ領域１５１へアクセスする場合について考える。ＣＰＵ１０１がキャッシュ領域１５１へアクセスする場合、ＣＰＵ１０１がアクセスするアドレスのデータがキャッシュメモリ内に存在すると、ＣＰＵ１０１は高速なキャッシュメモリに対してアクセスを行い、低速なメモリ１０４に対するアクセスを行わない。一方、ＣＰＵ１０１がアクセスするデータがキャッシュメモリ内に存在しないと、ＣＰＵ１０１はメモリインタフェイス１０６に対しキャッシュメモリのページサイズ分のリードを要求する。キャッシュにミスヒットした時のペナルティの一例としてＤＭＡ転送によりＣＰＵ１０１の外部でメモリ１０４へのデータ転送が発生する時が挙げられる。この場合、キャッシュデータとメモリデータの整合性を保つ為に、ＤＭＡ転送によりメモリ１０４が書換えられるアドレスに該当するキャッシュデータを予めメモリ１０４に対してライトバックし、そのキャッシュデータを無効化する必要がある。ライトバックとは、メモリ１０４に対してキャッシュメモリのページサイズ分をメモリ１０４に対してバーストライトして書戻す事である。ライトバックとキャッシュデータの無効化後、キャッシュメモリ上にはそのアドレスデータが存在していない事になる為、ＣＰＵ１０１からリードアクセスがあった場合にミスヒットとなる。もしキャッシュ領域１５１でのＤＭＡ転送を頻繁に行うとなると、ライトバックとミスヒットによるメモリ１０４へのバーストリードが頻繁に行われる事になる。ＣＰＵ１０１がメモリデータをリードするには、キャッシュページ分のバーストリードを行う時間だけでなく、ライトバックによるバーストライトを行う時間を要し、バーストリードとバーストライト夫々に要する時間が等しいと仮定すると、ＣＰＵ１０１がメモリデータをリードするのに二倍の時間がかかってしまう。
【０００５】
キャッシュ領域１５１でキャッシュデータとメモリデータの整合性を保つ他の方法として、ＣＰＵ１０１にスヌープ機能を搭載させる方法がある。スヌープ機能とは、ＣＰＵ１０１外部で行われているメモリ１０４へのライトアクセスを監視し、キャッシュメモリに記録保持されているデータのアドレスに対してライトアクセスがあった場合に該当するキャッシュデータを書換える機能である。この機能を搭載する事で、ライトバックとバーストリードを行う必要がなくなるのだが、制御が非常に複雑である為、論理規模が大きくなってしまう。
【０００６】
次にＣＰＵ１０１がノンキャッシュ領域１５２へアクセスする場合について考える。ＣＰＵ１０１がノンキャッシュ領域１５２へアクセスする場合、ノンキャッシュ領域１５２へのリード要求がＣＰＵ１０１から入力されると、メモリインタフェイス１０６はメモリ１０４に対してシングルリードを行う。メモリ１０４が例えばＲＡＳ  ＣＡＳ遅延が２サイクル，  ＲＡＳＰＲＥＣＨＡＲＧＥ遅延が５サイクル，  ＰＲＥＣＨＡＲＧＥ  ＲＡＳ遅延が２サイクル，  ＣＡＳ遅延が２サイクルのＳＤＲＡＭであると仮定すると、シングルアクセスでは１データをリードするのに７サイクルとなり、バーストアクセスでは４データをリードするのに８サイクル、１データ当りのリードサイクルに換算すると２サイクルとなる。この事から、ＣＰＵ１０１がノンキャッシュ領域１５２へのメモリアクセス時間はキャッシュ領域１５１へのメモリアクセス時間に比べて３倍以上遅くなってしまう。
【０００７】
この様な問題を解決する為に夫々の対象のシステムに合った様々な高速メモリアクセス方法が提案されており、その一例として特開平５−２８０４０号公報に記載の高速メモリアクセス方式がある。特開平５−２８０４０号公報に記載の高速メモリアクセス方式は、キャッシュと同等の速度でアクセス可能なメモリを設け、そのメモリには割込み処理プログラム等書換えられる事のないデータを予め記録保持しておき、そのデータへのアクセスを高速化している。しかし、この方式は予め書換わらないデータを記録保持する事から柔軟性に乏しく、ＤＭＡ転送等によりデータが頻繁に書き換わるアドレス領域に対しては全く効果がない。加えてキャッシュと同等のアクセス速度のメモリを必要とする為、回路規模が大きくなってしまう。
【０００８】
【特許文献１】
特開平５−２８０４０号公報
【０００９】
【発明が解決しようとする課題】
ネットワーク経由でのデータ送受信等を行い、ＤＭＡＣ１０３により頻繁にデータをメモリ１０４へＤＭＡ転送する様なコンピュータシステムでは、キャッシュ領域１５１でのデータアクセスを仮定するとメモリ１０４へのライトバックを頻繁に行う必要がある。これにより、ＣＰＵ１０１が必要なデータをリードするにはバーストリードを行う時間に加えてライトバックを行う時間が必要となってしまう。また、ＣＰＵ１０１にスヌープ機能を内蔵するとなると、制御が複雑になる為論理規模が大きくなってしまう。一方、ノンキャッシュ領域１５２でのデータアクセスを仮定すると、ＣＰＵ１０１からメモリ１０４へはシングルアクセスしかできない為、高速アクセスできない。
【００１０】
【課題を解決するための手段】
本発明は上記課題を解決する為に図１に示す様にＣＰＵ１０１とメモリ１０４の間にバーストリードメモリインタフェイス１０５を設ける。バーストリードメモリインタフェイス１０５は、ノンキャッシュ領域１５２へＣＰＵ１０１からリードアクセスが要求された時においてその特徴が表れる。バーストリードメモリインタフェイス１０５はノンキャッシュ領域１５２に対してＣＰＵ１０１からリードアクセスが要求されると、入力アドレスがバーストリードメモリインタフェイス１０５に内蔵されているバッファに記録保持されているデータに該当するかどうかを判断する。入力アドレスがバッファに記録保持されているデータに該当した場合、バーストリードメモリインタフェイス１０５はＣＰＵ１０１に対してそのアドレスに該当するバッファのデータをＣＰＵ１０１に出力する。入力アドレスがバッファに記録保持されているデータに該当しない場合は、下記１−１から１−３の順の様な動作を行う。
１−１．ＣＰＵ１０１に対してウェイト信号をアサートし、ＣＰＵ１０１から入力されたアドレスを先頭に、メモリ１０４に対してバーストリードアクセスを行う。
１−２．バーストリードアクセスが終了するまでメモリ１０４から入力されるリードデータをバーストリードメモリインタフェイス１０５に内蔵するバッファに記録保持する。
１−３．ＣＰＵ１０１から入力されたアドレスのデータがバーストリードメモリインタフェイス１０５の内蔵するバッファに記録保持されたら、ＣＰＵ１０１へのウェイト信号をネゲートして該当データをＣＰＵ１０１へ出力する。
【００１１】
以上により、ＣＰＵ１０１からノンキャッシュ領域１５２へのリードアクセスが入力された場合、バーストリードメモリインタフェイス１０５は、メモリ１０４に対してバーストリードを行った後にバッファデータを出力するか、若しくは直接バッファのデータを出力する。
【００１２】
本発明はＤＭＡ転送により連続アドレスの書換えを行うシステムに適用する事を目的としており、この場合ＣＰＵ１０１は連続アドレスでリードアクセスする事が見込める為、バーストリードメモリインタフェイス１０５は直接バッファデータをＣＰＵ１０１へ出力する確率が高く、高速にメモリデータをリードする事が可能となる。
【００１３】
具体的な例で説明する。例えばノンキャッシュ領域１５２に対してＣＰＵ１０１がメモリ１０４から連続アドレスで４データをリードする場合を考える。既存のメモリインタフェイス１０６を適用すると、メモリ１０４に対してシングルリードを４回行う。シングルリードを行うのに必要なサイクル数は７サイクルである為、ＣＰＵ１０１がメモリ１０４から４データをリードするのに要するサイクル数は２８サイクルとなる。一方、バーストリードメモリインタフェイス１０５を適用すると、まずメモリ１０４に対して４データ分のバーストリードを行い、リードデータを出力し、その後のリードアクセスに対しては直接内部バッファデータを出力する。４データ分のバーストリードを行うのに必要なサイクル数が８サイクル、直接バッファデータを出力するのに必要なサイクル数が１サイクルであり、バッファにデータを記録保持した次のサイクルでそのバッファデータをＣＰＵ１０１へ出力できると仮定すると、ＣＰＵ１０１がメモリ１０４から４データをリードするのに要するサイクル数は９サイクルとなる。このサイクル数に関する詳細な説明は後述する。４データをリードするのに既存のメモリインタフェイス１０６を適用すると２８サイクルであり、バーストリードメモリインタフェイスを適用すると９サイクルである為、バーストリードメモリインタフェイス１０５の適用により３倍以上高速にＣＰＵ１０１はメモリデータをリードする事ができる。さらに、バーストリードを行うデータ数を増やし１６データのリードをすると仮定すると、既存のメモリインタフェイス１０６が１１２サイクルを要するのに対し、バーストリードメモリインタフェイス１０５では２１サイクルを要するだけで良く、その差は５倍以上となる。この事から、バーストリードメモリインタフェイス１０５を適用した場合、４データ程度のバーストリードでも効果が得られ、加えてバーストリードを行うデータ数が多ければ多いほど効果が大きくなる。
【００１４】
また、既存のメモリインタフェイス１０６よりも高速にメモリデータをリードできる事に加え、バーストリードメモリインタフェイス１０５は実際に実現するのにバーストリード領域を認識する為のデコーダとデータを記録保持するバッファ等の簡単な構成の回路で済む為、スヌープ機能を実現するよりも論理規模が小さくする事ができる。
【００１５】
【発明の実施の形態】
本発明であるバーストリードメモリインタフェイス１０５の実施形態を図４から図１３を用いた説明で示す。
【００１６】
図４はバーストリードメモリインタフェイス１０５のブロック図でありその構成を示している。
【００１７】
２０１から２０５はＣＰＵ１０１からの入力信号である。２０１は入力ライトデータ、２０２は入力アドレスである。２０３は入力チップセレクトであり、ＣＰＵ１０１からバーストリードメモリインタフェイス１０５又はメモリ１０４に対するアクセスの有無を示す。２０４は入力ライトイネーブルであり、ＣＰＵ１０１からのライトアクセスタイミングを示す。２０５は入力リードイネーブルであり、ＣＰＵ１０１からのリードアクセスタイミングを示す。
【００１８】
２０６はアドレスデコーダと内部バッファ情報レジスタであり、ＣＰＵ１０１から入力される入力アドレス２０２、入力チップセレクト２０３、入力ライトイネーブル２０４及び入力リードイネーブル２０５と、内部レジスタブロックである２０７より出力される内部レジスタブロック情報２０８に従って、出力ウェイト２１５、内部セレクト２１１、内部ライトイネーブル２０９、内部リードイネーブル２１０、出力アドレス２１３、出力コマンド２１４、３ｓｔａｔｅ開放信号２２３を出力する。出力ウェイト２１５は、ＣＰＵ１０１やＤＭＡＣ１０３からのアクセス要求があった時にその要求の処理が完了するまでウェイトをかける事を示す。内部セレクト２１１は、内部レジスタブロック２０７内の個々のレジスタと内部バッファブロックである２１２の個々のバッファへのアクセスの有無を示す。内部ライトイネーブル２０９は、内部セレクト２１１によりアクセスされるレジスタ及びバッファに対するライトタイミングを示す。内部リードイネーブル２１０は、内部セレクト２１１によりアクセスされるレジスタ及びバッファに対するリードタイミングを示す。出力アドレス２１３は、メモリ１０４へ出力される。出力コマンド２１４は、メモリ１０４に対してライト及びリードを行う為のコマンドが出力される。出力コマンド２１４は、例えばメモリ１０４がＳＤＲＡＭの場合だとＣＬＫ，  ＣＫＥ，  ＣＳ，  ＲＡＳ，  ＣＡＳ，  ＷＥ，  ＤＱＭ等の信号を含み、これらの信号で定義されるコマンドによりＳＤＲＡＭを制御し、ＳＤＲＡＭへのライトやリード、プリチャージを行う。３ｓｔａｔｅ開放信号２２３は、無効時に３ｓｔａｔｅバッファである２２２の出力を高インピーダンスにし、有効時に入力信号である入力ライトデータ２０１が示す値を出力する。
【００１９】
内部レジスタブロック２０７は、図６に示すレジスタを持つ。３０１はバーストリードイネーブルレジスタであり、バーストリードメモリインタフェイス１０５の動作の有無を示す。バーストリードイネーブルレジスタ３０１により、バーストリードメモリインタフェイス１０５がバーストリードメモリインタフェイスとして動作するか通常のメモリインタフェイスとして動作するかの切替が可能となる。３０２はバーストリードスタートアドレスレジスタであり、ノンキャッシュ領域１５２内においてバーストリードメモリインタフェイス１０５がメモリ１０４に対してバーストリードを行うアドレス空間の先頭アドレスを示す。３０３はバーストリードエンドアドレスレジスタであり、ノンキャッシュ領域１５２内においてバーストリードメモリインタフェイス１０５がメモリ１０４に対してバーストリードを行うアドレス空間の最後尾アドレスを示す。バーストリードスタートアドレスレジスタ３０２とバーストリードエンドアドレスレジスタ３０３により、ノンキャッシュ領域１５２内全てのアドレスに対してバーストリードを行うのではなく、ノンキャッシュ領域１５２内においてバーストリードを行うアドレス領域を自由に設定することができる。また、その初期値は予め設定されており、初期値を設定しなくても既にバーストリードを行うアドレス領域は存在する。バーストリードスタートアドレス３０２とバーストリードエンドアドレス３０３によって囲まれた領域は図７に示す様になっており、この領域をバーストリード領域４００とする。バーストリードメモリインタフェイス１０５は、ＣＰＵ１０１からこのバーストリード領域４００にリードアクセスが要求された時に特徴が表れるが、その特徴については後述する。
【００２０】
内部レジスタブロック２０７のアドレス領域は図９に示す様になっており、夫々のレジスタを入力アドレス２０２で指定可能である。ＣＰＵ１０１が内部レジスタブロック内の一つのレジスタに対してアクセスすると、アドレスデコーダと内部バッファ情報レジスタ２０６は、入力アドレス２０２に対応するレジスタに対して、内部セレクト２１１、内部ライトイネーブル２０９又は内部リードイネーブル２１０を出力する。ＣＰＵ１０１からのアクセスがライトアクセスの場合は、アドレスデコーダと内部バッファ情報レジスタ２０６からは内部ライトイネーブルが出力されており、内部レジスタブロック２０７はそれを受けて、内部セレクト２１１により指示されるレジスタを入力ライトデータ２０１が示すデータに書換える。ＣＰＵ１０１からのアクセスがリードアクセスの場合は、アドレスデコーダと内部バッファ情報レジスタ２０６からは内部リードイネーブル２１０が出力されており、内部レジスタブロック２０７はそれを受けて、内部セレクト２１１により指示されるレジスタデータをレジスタリードデータである２１７へ出力する。
【００２１】
内部レジスタブロック情報２０８には、内部レジスタブロック２０７から内部レジスタブロック２０７内のレジスタ３０１，３０２，３０３のデータが出力されており、アドレスデコーダと内部バッファ情報レジスタ２０６に入力されている。アドレスデコーダと内部バッファ情報レジスタ２０６はこの内部レジスタブロック情報２０８とＣＰＵ１０１からの入力に従って出力信号を決定する。
【００２２】
２１２は内部バッファブロックであり、バーストリードメモリインタフェイス１０５がメモリ１０４に対してバーストリードを行った時にメモリ１０４から入力されるリードデータを記録保持可能な分のバッファを持つ。これらのバッファはそれぞれ１データずつを内部セレクト２１１により指示する事が可能となっている。内部バッファブロック２１２は、内部バッファ情報レジスタ２０６から内部セレクト２１１と内部ライトイネーブル２０９が入力されると、内部セレクト２１１が指示するバッファのデータをメモリデータ２１９の示すデータに書換え、内部セレクト２１１と内部リードイネーブル２１０が入力されると内部セレクト２１１が指示するバッファのデータを内部バッファリードデータ２１８に出力する。内部バッファブロック２１２により、メモリ１０４から出力されるバーストリードデータの記録保持ができ、記録保持しているデータのアドレスへのリードアクセスがＣＰＵ１０１から入力された場合に、メモリ１０４へリードを行う必要なくＣＰＵ１０１へリードデータを出力可能となる。
【００２３】
２２０はリードデータセレクタであり、内部セレクト２１１が内部レジスタブロック２０７を指示し内部リードイネーブル２１０が有効な場合は内部レジスタリードデータ２１７を出力リードデータ２２１に出力し、内部セレクト２１１が内部バッファブロック２１２を指示し内部リードイネーブル２１０が有効な場合は内部バッファデータ２１８を出力リードデータ２２１に出力する。リードデータセレクタ２２０により、内部レジスタブロック１０７又は内部バッファブロック２１２からＣＰＵ１０１が必要とする有効なリードデータをＣＰＵ１０１へ出力可能となる。
【００２４】
２２２は３ｓｔａｔｅバッファであり、３ｓｔａｔｅ開放信号２２３が有効時ではメモリデータ２１９に入力ライトデータ２０１が示す値を出力し、無効時では出力を高インピーダンスの状態に維持する。
【００２５】
アドレスデコーダと内部バッファ情報レジスタ２０６の内部ブロックは、図５の様に示される。２５１はアドレスデコーダであり、入力アドレス２０２、入力チップセレクト２０３、入力ライトイネーブル２０４及び入力リードイネーブル２１０、内部レジスタ情報２０８、内部バッファ情報レジスタブロックである２５２より出力される内部バッファ情報２５３に従って、出力ウェイト２１５、内部セレクト２１１、内部ライトイネーブル２０９、内部リードイネーブル２１０、内部バッファ有効指示信号２５４、出力アドレス２１３、出力コマンド２１４、３ｓｔａｔｅ開放信号２２３を出力する。内部セレクト２１１は前述した対象に加えて内部バッファ情報レジスタブロック２５２に対しても出力している。内部バッファ有効指示信号２５４は、内部バッファ情報レジスタブロック２５２のレジスタであるバッファイネーブルレジスタ３０４の有効無効を切替える為の信号である。
【００２６】
内部バッファ情報レジスタブロック２５２は図７に示すレジスタを持つ。３０４はバッファイネーブルレジスタであり、内部バッファブロック２１２内における夫々のバッファデータの有効無効を示す。このレジスタの値は、アドレスデコーダ２５１から内部セレクト２１１と内部ライトイネーブル２０９が入力された時に、内部バッファ有効指示信号２５４が示す値に書換わる。３０５はバッファストアドメモリアドレスレジスタであり、内部バッファブロック２１２に記録保持されているメモリデータの先頭アドレスを示す。このレジスタの値は、アドレスデコーダ２５１から内部セレクト２１１と内部ライトイネーブル２０９が入力された時に入力アドレス２０２の示すデータに書換わる。内部バッファ情報レジスタブロック２５２のデータは、内部バッファ情報２５３によりアドレスデコーダ２５１へ出力されている。
【００２７】
内部バッファブロック２１２のアドレス領域はバッファストアドメモリアドレスレジスタ３０５により決定される。内部バッファブロック２１２が記録保持しているメモリデータのアドレス領域４０２は図１０に示す様になっており、夫々のバッファを入力アドレス２０２で指定可能である。バッファが記録保持しているメモリデータのアドレス領域は、バーストリード領域４００内において、バッファストアドメモリアドレスレジスタ３０５の値からバーストリード分のアドレス長を加えた範囲である。この領域を内部バッファ記録保持領域４０２とする。具体的な例で説明する。バーストリード長が４データであると仮定し、バーストリードメモリインタフェイス１０５がバーストリードを行いリードデータを内部バッファブロック２１２に記録保持したとすると、内部バッファ記録保持領域４０２はバッファストアドメモリアドレス３０５に格納されている値から３データ長分のアドレスを加えた範囲となる。バーストリード長が８データの場合では、バッファストアドメモリアドレス３０５に格納されている値から７データ長分のアドレスを加えた範囲となる。
【００２８】
アドレスデコーダ２５１は、ＣＰＵ１０１からアクセス要求があると、図１１に示す様な順で判断を行い、夫々の判断結果により出力を決定する。アドレスデコーダ２５１が判断を行う為に用いる信号は、入力アドレス２０２、入力チップセレクト２０３、入力ライトイネーブル２０４、入力リードイネーブル２０５、内部レジスタ情報２０８、内部バッファ情報２５３であり、図１１に示す条件判断結果により、出力ウェイト２１５、内部セレクト２１１、内部ライトイネーブル２０９、内部リードイネーブル２１０、出力アドレス２１３、出力コマンド２１３、３ｓｔａｔｅ開放信号２２３を夫々の目的に合うように出力する。目的とする動作は、内部レジスタブロック２０７へのアクセス、メモリ１０４へのシングルアクセス、メモリ１０４へのバーストリード、内部バッファデータへのリードがあげられる。
【００２９】
ＣＰＵ１０１からのアクセス要求は、ＣＰＵ１０１のアクセス要求先アドレスを入力アドレス２０２に入力し、入力チップセレクト２０２を有効にし、ライトアクセスの場合は入力ライトイネーブル２０４と入力ライトデータ２０１を、リードアクセスの場合は入力リードイネーブル２０５を有効にする事で行う。アクセス要求時に出力ウェイト信号２１５が有効な場合は、出力ウェイト信号２１５が無効になるまで、その要求を出力し続ける。
【００３０】
まず、ＣＰＵ１０１からバーストリードメモリインタフェイス１０５にアクセス要求があると、アドレスデコーダ２５１は５０１の分岐において、入力アドレス２０２が内部レジスタ領域４０１かどうかを判断する。入力アドレス２０２が内部レジスタ領域４０１である場合、バーストリードメモリインタフェイス１０５は５０２の処理を行い、内部レジスタ領域４０１外の場合は、５０３の分岐による判断を行う。
【００３１】
５０２の処理である「内部レジスタアクセス」では、アドレスデコーダ２５１が内部セレクト２１１を内部レジスタブロック２０７に対して出力し、ＣＰＵ１０１からのアクセスがライトアクセスの場合は内部ライトイネーブル２０９を有効にし、ＣＰＵ１０１からのアクセスがリードアクセスの場合は内部リードイネーブル２１０を有効にする。内部レジスタブロック２０７は、内部ライトイネーブル２０９が有効の場合は内部セレクト２１１により指示されるレジスタを入力ライトデータ２０１の示す値に書換え、内部リードイネーブル２１０が有効の場合は内部セレクト２１１により指示されるレジスタのデータをレジスタリードデータ２１７に出力する。リードデータセレクタ２２０は、レジスタリードデータ２１７が出力されるとレジスタリードデータ２１７を出力リードデータ２２１に出力する。これらの動作によりＣＰＵ１０１は内部レジスタブロック４０１へのアクセスを行う事ができる。
【００３２】
５０３の分岐では、アドレスデコーダ２５１はバーストリードイネーブルレジスタ３０４が無効かどうかを判断する。無効である場合、バーストリードメモリインタフェイス１０５は５０４の処理を行い、有効である場合は５０５の分岐による判断を行う。
【００３３】
５０４の処理である「メモリへシングルアクセス」では、アドレスデコーダ２５１が出力ウェイト２１５を有効にし、入力アドレス２０２と同じ値を出力アドレス２１３に出力し、ＣＰＵ１０１からのアクセスがライトアクセスの場合はメモリ１０４に対してシングルライトのコマンドを、ＣＰＵ１０１からのアクセスがリードアクセスの場合はメモリ１０４に対してシングルリードのコマンドを出力コマンド２１４に出力する。その後の動作はライトとリードで動作が異なる。ライトアクセスの場合では、アドレスデコーダ２５１はメモリ１０４にデータをライトを行うタイミングで、３ｓｔａｔｅ開放信号を有効にする。３ｓｔａｔｅバッファ２２２は有効な３ｓｔａｔｅ開放信号２２３を受け、メモリデータ２１９に入力ライトデータ２０１が示す値を出力する。ライトが終了するとアドレスデコーダ２５１は出力ウェイト２１５を無効にする。これにより、バーストリードメモリインタフェイス１０５はメモリ１０４に対してシングルライトを行う事ができる。
一方リードアクセスの場合、アドレスデコーダ２５１はメモリ１０４からメモリデータ２１９が入力されるタイミングで、内部バッファブロック２１２の先頭バッファとバッファイネーブルレジスタ３０４とバッファストアドメモリアドレスレジスタ３０５に対して内部セレクト２１１を出力し、バッファイネーブルレジスタ３０４の値が内部バッファブロック２１２の先頭バッファのみ有効になるような内部バッファ有効指示信号２５４を出力する。内部バッファブロック２１２は内部セレクト２１１と内部ライトイネーブル２０９を受け、先頭バッファをメモリデータ２０９が示す値に記録保持する。
バッファイネーブルレジスタ３０４は内部セレクト２１１と内部ライトイネーブル２０９を受け、バッファ有効指示信号２５４の示す値を記録保持する。バッファストアドメモリアドレスレジスタ３０５は、内部セレクト２１１と内部ライトイネーブル２０９を受け、入力アドレス２０２が示す値を記録保持する。この状態で内部バッファブロック２１２の先頭バッファにはＣＰＵ１０１がリード要求しているデータが存在する為、アドレスデコーダ２５１は出力ウェイト信号２１５を無効にし、内部バッファブロック２１２の先頭バッファに対して内部セレクト２１１を出力し、内部リードイネーブル２１０を出力する。内部バッファブロック２１２は、内部セレクト２１１と内部リードイネーブル２１０を受け、内部バッファリードデータ２１８に先頭バッファのデータを出力する。リードデータセレクタ２２０は、内部バッファブロック２１２に対する内部セレクト２１１と内部リードイネーブル２１０を受け、内部バッファリードデータ２１８を出力リードデータ２２１に出力する。これによりＣＰＵ１０１は有効なリードデータをリードする事ができる。これにより、バーストリードメモリインタフェイス１０５はメモリ１０４に対してシングルリードを行う事ができる。
【００３４】
５０５の分岐では、アドレスデコーダ２５１はＣＰＵ１０１からのアクセスがライトアクセスかどうかを判断する。ライトアクセスである場合、バーストリードメモリインタフェイス１０５は５０６の処理を行い、リードアクセスである場合は５０７の分岐による判断を行う。
【００３５】
５０６の処理である「メモリへシングルライト」では、バーストリードメモリインタフェイス１０５は５０４におけるライトアクセスの場合と同様の動作に加え、アドレスデコーダ２５１が内部セレクト２１１をバッファイネーブルレジスタ３０４に対して出力し、内部ライトイネーブル２０９を有効にし、バッファイネーブルレジスタ３０４を無効にするような内部バッファ有効指示信号２５４を出力する。バッファイネーブルレジスタ３０４は、内部ライトイネーブル２０９と内部バッファ有効指示信号２５４を受け、状態を無効に変化させる。これらの動作により、バーストリードメモリインタフェイス１０５はメモリ１０４へのライトを行う事ができ、また、メモリデータと内部バッファデータの整合性を保つ。
【００３６】
５０７の分岐では、アドレスデコーダ２５１はバッファイネーブルレジスタ３０４が有効かつ、入力アドレス２０２が内部バッファ記録保持領域４０２かどうかを判断する。
バッファイネーブルレジスタ３０４が有効かつ入力アドレス２０２が内部バッファ記録保持領域４０２である場合、バーストリードメモリインタフェイス１０５は５０８の処理を行い、バッファイネーブルレジスタ３０４が無効又は内部バッファ記録保持領域４０２外である場合は５０９の分岐による判断を行う。
【００３７】
５０８の処理である「バッファデータをＣＰＵへ出力」では、アドレスデコーダ２５１が内部セレクト２１１を入力アドレスに該当するバッファに対して出力し、内部リードイネーブル２１０を有効にする。内部バッファブロック２１２は、内部リードイネーブル２１０を受け、内部セレクト２１１で指示されるバッファデータを内部バッファリードデータ２１８に出力する。リードデータセレクタ２２０は、内部バッファリードデータ２１８が入力されると内部バッファリードデータ２１８を出力リードデータ２２１に出力する。これらの動作により、バーストリードメモリインタフェイス１０５は内部バッファブロック２１２に記録保持されているデータをＣＰＵ１０１に出力可能となり、ＣＰＵ１０１は高速にリードアクセスができる。
【００３８】
５０９の分岐では、アドレスデコーダ２５１は入力アドレス２０２がバーストリード領域４００かどうかを判断する。入力アドレス２０２がバーストリード領域４００である場合、バーストリードメモリインタフェイス１０５は５１０の処理を行い、バーストリード領域４００外である場合は５１１の処理を行う。
【００３９】
５１０の処理である「メモリへバーストリード」では、アドレスデコーダ２５１が出力ウェイト２１５を有効にし、入力アドレス２０２を先頭アドレスとしてバーストリードを行う為の出力アドレス２１３と出力コマンド２１４を出力する。メモリ１０４へのバーストリードを行う為の出力コマンド２１４を出力後、メモリ１０４からの最初のリードデータがメモリデータ２１９に入力されるタイミングで、アドレスデコーダ２５１は内部セレクト２１１を内部バッファブロック２１２の先頭バッファとバッファイネーブルレジスタ３０４とバッファストアドメモリアドレスレジスタ３０５に対して出力し、バッファイネーブルレジスタ３０４の値が内部バッファブロック２１２の先頭バッファのみ有効になるような内部バッファ有効指示信号２５４を出力し、内部ライトイネーブル２０９を有効にする。内部バッファブロック２１２は内部セレクト２１１と内部ライトイネーブル２０９を受け、先頭バッファをメモリデータ２０９が示す値に記録保持する。バッファイネーブルレジスタ３０４は、内部セレクト２１１と内部ライトイネーブル２０９を受け、内部バッファ有効指示信号２５４が示す値を記録保持する。バッファストアドメモリアドレスレジスタ３０５は、内部セレクト２１１と内部ライトイネーブル２０９を受け、入力アドレス２０２が示す値を記録保持する。この状態で内部バッファブロック２１２の先頭バッファにはＣＰＵ１０１がリード要求しているデータが存在する為、アドレスデコーダ２５１は出力ウェイト信号２１５を無効にし、内部バッファブロック２１２の先頭バッファに対して内部セレクト２１１を出力し、内部リードイネーブル２１０を出力する。内部バッファブロック２１２は、内部セレクト２１１と内部リードイネーブル２１０を受け、内部バッファリードデータ２１８に先頭バッファのデータを出力する。リードデータセレクタ２２０は、内部バッファブロック２１２に対する内部セレクト２１１と内部リードイネーブル２１０を受け、内部バッファリードデータ２１８を出力リードデータ２２１に出力する。その後、残りのバーストリード分のメモリデータ２１９が入力されると、夫々のリードデータが入力されるタイミングで、アドレスデコーダ２５１は内部セレクト２１１を内部バッファブロック２１２の二番目のバッファから順番に出力し、内部セレクト２１１をバッファイネーブルレジスタ３０４に対して出力し、また、内部バッファブロック２１２の記録保持したバッファが有効になるような内部バッファ有効指示信号２５４を出力し、内部ライトイネーブル２０９を出力する。内部バッファブロック２１２は内部セレクト２１１と内部ライトイネーブル２０９を受け、内部セレクト２１１により指示されるバッファのデータをメモリデータ２１９の示す値に記録保持する。バッファイネーブルレジスタ３０４は内部セレクト２１１と内部ライトイネーブル２０９を受け、内部バッファブロック２１２が夫々のリードデータを記録保持する度に内部バッファ有効指示信号２５４が示す値を記録保持する。これらの動作により、メモリ１０４から入力されるバーストリードデータを内部バッファブロック２１２に記録保持できる。一方、バーストリードメモリインタフェイス１０５にはＣＰＵ１０１から次のアドレスデータのリード要求が入力されており、アドレスデコーダ２５１は要求先データが内部バッファブロック２１２に記録保持されるまで出力ウェイト信号２１５を有効にし、記録保持後に出力ウェイト信号２１５を無効にする。これらの動作により、バーストリードメモリインタフェイス１０５はメモリ１０４に対してバーストリードを行い、リードデータを内部バッファブロック２１２に記録保持し、かつ、ＣＰＵ１０１に対しては入力アドレス２０２に該当するリードデータを出力可能となる。
【００４０】
５１１の処理である「メモリへシングルリード」では、バーストリードメモリインタフェイス１０５は５０４におけるシングルリードの場合と同様の動作となる。
【００４１】
５０１から５１１より、バーストリードイネーブル３０１が有効時にＣＰＵ１０１からバーストリード領域４００にリードアクセスが入力されると、バーストリードメモリインタフェイス１０５はメモリ１０４に対してバーストリードを行うか、内部バッファブロック２１２のデータを出力するかの動作となる。ＣＰＵ１０１が連続アドレスでリードアクセスすると仮定すると、バーストリードメモリインタフェイス１０５はＣＰＵ１０１からの最初のリードアクセスでメモリ１０４に対してバーストリードを行い、次からのリードアクセスでは内部バッファブロック２１２のデータを出力する。バーストリードを行ったアドレス分以降の入力アドレス２０２がＣＰＵ１０１から入力された場合、即ち、内部バッファブロック２１２に入力アドレス２０２に該当するバッファデータが存在しない場合は、再びメモリ１０４に対してバーストリードを行う。この様に、バーストリードメモリインタフェイス１０５は、ＣＰＵ１０１からの連続アドレスでのリードアクセスに対して毎回メモリ１０４へシングルリードを行わずに、メモリ１０４へは一回のバーストリードだけ行い、以降は内部バッファブロック２１２のデータを出力する為、ＣＰＵ１０１は高速にメモリデータを読込む事が可能となる。
【００４２】
具体的な動作比較例として、メモリ１０４がＳＤＲＡＭの場合のバーストリードメモリインタフェイス１０５の動作を図１２と図１３を用いて説明する。
【００４３】
まず図１２について説明する。図１２は図２のコンピュータシステムにおいてＣＰＵ１０１がノンキャッシュ領域１５２に対して連続アドレスでのリード要求を行った時のタイミングチャートである。６０１はＣＰＵ１０１側の信号を示しており、６０２はＳＤＲＡＭ側の信号を示している。ＣＰＵ１０１の入力アドレス２０２に対応するＳＤＲＡＭのＲＯＷアドレスは入力アドレス２０２の上一桁、ＣＯＬＵＭＮアドレスは入力アドレス２０２の下一桁となっている。ＳＤＲＡＭへのコマンドは、ＡＣＴがバンクアクティブコマンド、ＲＥＤがリードコマンド、ＰＲＣがプリチャージコマンドとなっており、これらのコマンドを用いる事でＳＤＲＡＭに対してライト、リード、プリチャージを行う事ができる。これらのコマンドを出力する為の時間条件は前述の通りとする。また、ＣＰＵ１０１からバーストリードメモリインタフェイス１０５へのリードは１サイクルでできるとし、ＣＰＵ１０１がリードによってデータを受取るタイミングはリード要求を終了した時とし、バーストリードメモリインタフェイス１０５のバースト長は４とする。ＣＰＵ１０１からのリード要求を受けると既存のメモリインタフェイス１０６は、１サイクル目でＣＰＵ１０１に対して出力ウェイト２１５を有効にし、ＳＤＲＡＭに対してバンクアクティブコマンドと入力アドレス２０２に対応するＲＯＷアドレスを出力する。ＣＰＵ１０１はこの出力ウェイト２１５が無効になるまでリード要求をバーストリードメモリインタフェイス１０５に入力し続ける。次に既存のメモリインタフェイス１０６は３サイクル目においてリードコマンドと入力アドレスに対応するＣＯＬＵＭＮアドレスを出力する。既存のメモリインタフェイス１０６は５サイクル目にＳＤＲＡＭからリードデータが入力され、ＣＰＵ１０１への出力ウェイト２１５を無効にし、リードデータをＣＰＵ１０１へ出力する。これによりＣＰＵ１０１は５サイクル目でリードデータを受取る事ができる。ＣＰＵ１０１は６サイクル目に次のリード要求を行うが、６サイクル目では既存のメモリインタフェイス１０６はまだＳＤＲＡＭへのリードコマンドを行う事ができない為、出力ウェイト２１５を有効にする。既存のメモリインタフェイス１０６は８サイクル目からＳＤＲＡＭへの次のリードコマンドを出力し、以後０サイクル目から７サイクル目までの動作を再び行う。
よって、既存のメモリインタフェイス１０６を適用すると１データをリードするのに７サイクルを要する。
【００４４】
次に図１３について説明する。図１３は図１のコンピュータシステムにおいてＣＰＵ１０１がバーストリード領域４００に対して連続アドレスでのリード要求を行った時のタイミングチャートである。コマンドの内容及びコマンドを出力する時間条件等は図１２と同様である。ＣＰＵ１０１からのリード要求を受けるとバーストリードメモリインタフェイス１０５は、１サイクル目でＣＰＵ１０１に対して出力ウェイト２１５を有効にし、ＳＤＲＡＭに対してバンクアクティブコマンドと入力アドレス２０２に対応するＲＯＷアドレスを出力する。３サイクル目において、バーストリードメモリインタフェイス１０５はＳＤＲＡＭに対してリードコマンドと入力アドレス２０２に対応するＣＯＬＵＭＮアドレスを出力し、以後４サイクル連続でバーストリードを行う為のリードコマンドとＣＯＬＵＭＮアドレスを出力する。ＳＤＲＡＭからの最初のリードデータは５サイクル目にバーストリードメモリインタフェイス１０５に入力され、内部バッファブロック２１２に記録保持され、６サイクル目７サイクル目８サイクル目も同様となる。５サイクル目においてＣＰＵ１０１がリード要求先アドレスのリードデータが内部バッファブロック２１２に記録保持されている為、バーストリードメモリインタフェイス１０５は６サイクル目に出力ウェイト２１５を無効にしＣＰＵ１０１はこれを受けてリード要求を終了しリードデータを受取る。以後ＣＰＵ１０１は７サイクル目に次のリード要求をバーストリードメモリインタフェイス１０５に入力するが、リード要求先アドレスのリードデータが既に内部バッファブロック２１２に記録保持されている為、同サイクルでＣＰＵ１０１はリードデータを１サイクルで受取る事ができる。同様に８サイクル目９サイクル目と、ＣＰＵ１０１はリードデータを１サイクルで受取る事ができる。１０サイクル目以降においてはリード要求先アドレスのデータが内部バッファブロック２１２に存在しない為、バーストリードメモリインタフェイス１０５は０サイクル目から９サイクル目までの動作を再び行う。よって、バーストリードメモリインタフェイス１０５を適用するとＣＰＵ１０１が４データをリードするのに９サイクルを要する。
【００４５】
次に、図１２、図１３によって示されたサイクル数をバスサイクルが３３ＭＨｚ、データバス幅が３２ｂｉｔのアーキテクチャにおける、ＣＰＵ１０１からのメモリリードをスループットで示し比較する。既存のメモリインタフェイス１０６を用いた場合、ノンキャッシュ領域１５２へのＣＰＵ１０１からのリードアクセスに対して、バーストリードメモリインタフェイス１０５はメモリ１０４へシングルリードしか行う事ができない為、前述のサイクル数に上記アーキテクチャ条件を当てはめるとスループットは約１５０Ｍｂｐｓとなる。ネットワーク経由のデータを扱うには、ＣＰＵ１０１からメモリ１０４へのネットワーク送受信用データのアクセスの他に、ＤＭＡＣ１０３によるメモリ１０４へのネットワーク送受信用データのＤＭＡ転送やＣＰＵ１０１によるメモリ１０４へのプログラム用データのアクセスを要する為、既存のメモリインタフェイス１０５を用いた場合だと１００Ｍｂｐｓの様な高速ネットワークへの対応は容易ではない。一方、バーストリードメモリインタフェイス１０５を用いた場合、バーストリード領域４００へのＣＰＵ１０１からのリードアクセスに対して、バーストリードメモリインタフェイス１０５はメモリ１０４へのバーストリードと内部バッファへのリードを行い、前述のサイクル数に上記アーキテクチャ条件を当てはめるとスループットは約３８０Ｍｂｐｓとなる。バーストリードメモリインタフェイス１０５を用いた効果は比に換算して２倍以上、スループットでは２００Ｍｂｐｓ以上の差であり、既存のメモリインタフェイス１０６を用いるよりもバーストリードメモリインタフェイス１０５を用いた方が高速ネットワークへの対応が容易となる。
【００４６】
本実施形態において、バーストリードアドレス領域４００はバーストリードスタートアドレス３０２で設定された値とバーストリードエンドアドレス３０３で設定された値に囲まれた領域としたが、入力アドレスの上位数ｂｉｔでバーストリード領域４００を判断できるようなアドレス値をバーストリードスタートアドレス３０２とバーストリードエンドアドレス３０３の初期値とするか、若しくは固定値とする事で、アドレスデコーダ２５１が上位数ｂｉｔでバーストリード領域４００を判断して動作するという形態も可能である。この形態を用いるとアドレスデコーダ２５１のアドレスデコード部の論理規模が小さくなる。
【００４７】
また、ＣＰＵ１０１からのライトアクセスに対しては、バーストリードメモリインタフェイス１０５は、バッファイネーブルレジスタ３０４を有効にしたまま、アドレスデコーダ２５１が内部バッファブロック２１２に対して内部セレクト２１１と内部ライトイネーブル２０９を出力して、内部バッファブロック２１２に記録保持し、メモリ１０４へバーストライト可能な分の連続アドレスデータが記録保持されると、メモリ１０４に対してバーストライトを行う形態も可能である。この形態を用いると、ＣＰＵ１０１からのライトアクセスの度にバーストリードメモリインタフェイス１０５はメモリ１０４へシングルライトを行う必要がなく、ＣＰＵ１０１はライトアクセスを行う場合でも高速アクセスが可能になる。
【００４８】
バーストリードメモリインタフェイス１０５は、ＣＰＵ１０１からのアクセス要求とＤＭＡＣ１０３からのアクセス要求を外部信号によって識別し、ＤＭＡＣ１０３からのアクセス要求では既存のメモリインタフェイス１０６として動作する形態も可能である。この形態を用いると、ＤＭＡＣ１０３のアクセス要求時の動作において、内部バッファブロック２１２に記録保持する為にかかるオーバヘッドを削減可能である。
【００４９】
【発明の効果】
本発明はＣＰＵ１０１のリードアクセスを受けるとメモリ１０４に対してバーストリードを行い、リードデータを内部バッファに記録保持し、内部バッファに記録保持しているデータに該当するアドレスに対するＣＰＵ１０１からのリードアクセスにはバッファデータを出力する。ネットワーク経由でのデータ送受信によるデータをＤＭＡによりメモリ１０４にアクセスにする様なシステムでは、ＣＰＵ１０１が連続アドレスをリードする可能性が高い。この様なシステムに対し本発明を適用するとＣＰＵ１０１からのリードアクセスの度にメモリ１０４に対するシングルアクセスを行う必要がなくなり、ＣＰＵ１０１がメモリデータをリードする時の転送のオーバーヘッドを大幅に削減できる。例えばメモリ１０４がＳＤＲＡＭだと仮定し、ＣＰＵ１０１がメモリ１０４から連続アドレスで４データをリードする場合を考えると、既存のメモリインタフェイス１０６を適用するよりも３倍以上高速にメモリデータをリードする事ができ、さらにバーストリードを行うデータ数を１６データのリードをすると仮定するとその差は５倍以上となる。この事から、バーストリードメモリインタフェイス１０５を適用すると、４データ程度のバーストリードでも大幅に転送オーバヘッドを削減でき、加えてバーストリードを行うデータ数が多ければ多いほどその効果は大きくなる。
【００５０】
また、既存のメモリインタフェイス１０６よりも高速にメモリデータをリードできる事に加え、バーストリードメモリインタフェイス１０５は実際に実現するのにバーストリード領域を認識する為のデコーダとデータを記録保持するバッファ等の簡単な構成の回路で済む為、スヌープ機能を実現するよりも論理規模が小さくする事ができる。
【図面の簡単な説明】
【図１】バーストリードメモリインタフェイスを有するコンピュータシステム図。
【図２】従来のコンピュータシステム図。
【図３】アドレス空間におけるキャッシュ領域とノンキャッシュ領域を示す図。
【図４】バーストメモリインタフェイスのブロック図。
【図５】アドレスデコーダ及び内部バッファ情報レジスタのブロック図。
【図６】内部レジスタを示す図。
【図７】内部バッファ情報レジスタを示す図。
【図８】バーストリード領域を示す図。
【図９】内部レジスタ領域を示す図。
【図１０】内部バッファ記録保持領域を示す図。
【図１１】
バーストリードメモリインタフェイス動作条件フローチャート。
【図１２】
既存のメモリインタフェイスを用いたリード動作タイミングチャート。
【図１３】
バーストリードメモリインタフェイスを用いたリード動作タイミングチャート。
【符号の説明】
１０１…セントラルプロセシングユニット、１０２…入出力装置、１０３…ダイレクトメモリアクセスコントローラ、１０４…メモリ、１０５…バーストリードメモリインタフェイス、１０６…通常のメモリインタフェイス、１５０…アドレス空間、１５１…キャッシュ領域、１５２…ノンキャッシュ領域、２０１…入力ライトデータ、２０２…入力アドレス、２０３…入力チップセレクト、２０４…入力ライトイネーブル、２０５…入力リードイネーブル、２０６…アドレスデコーダと内部バッファ情報レジスタ、２０７…内部レジスタブロック、２０８…内部レジスタブロック情報、２０９…内部ライトイネーブル、２１０…内部リードイネーブル、２１１…内部セレクト、２１２…内部バッファブロック、２１３…出力アドレス、２１４…出力コマンド、２１５…出力ウェイト、２１７…内部レジスタリードデータ、２１８…内部バッファリードデータ、２１９…メモリデータ、２２０…リードデータセレクタ、２２１…出力リードデータ、２２２…３ｓｔａｔｅバッファ、２２３…３ｓｔａｔｅバッファ開放信号、２５１…アドレスデコーダ、２５２…内部バッファ情報レジスタブロック、２５３…内部バッファ情報、２５４…内部バッファ有効指示信号、３０１…バーストリードイネーブルレジスタ、３０２…バーストリードスタートアドレスレジスタ、３０３…バーストリードエンドアドレスレジスタ、３０４…バッファイネーブルレジスタ、３０５…バッファストアドメモリアドレスレジスタ、４００…バーストリード領域、４０１…内部レジスタ領域、４０２…内部バッファ記録保持領域、５０１…入力アドレスが内部レジスタ領域かどうかの分岐、５０２…内部レジスタブロックアクセス処理、５０３…バーストリードイネーブルが無効かどうかの分岐、５０４…メモリへのシングルアクセス処理、５０５…ＣＰＵからのアクセスがリードアクセスかどうかの分岐、５０６…メモリへのシングルライト処理、５０７…バッファイネーブルが有効かつ、入力アドレスが内部バッファ記録保持領域かどうかの分岐、５０８…ＣＰＵへのバッファデータ出力処理、５０９…入力アドレスがバーストリード領域かどうかの分岐、５１０…メモリへバーストリード処理、５１１…メモリへシングルリード処理、６０１…ＣＰＵ側信号群、６０２…ＳＤＲＡＭ側信号群。
【図１】
2004240520.tif 000003
【図２】
2004240520.tif 000004
【図３】
2004240520.tif 000005
【図４】
2004240520.tif 000006
【図５】
2004240520.tif 000007
【図６】
2004240520.tif 000008
【図７】
2004240520.tif 000009
【図８】
2004240520.tif 000010
【図９】
2004240520.tif 000011
【図１０】
2004240520.tif 000012
【図１１】
2004240520.tif 000013
【図１２】
2004240520.tif 000014
【図１３】
2004240520.tif 000015