JP2004240520A - ノンキャッシュ領域内高速メモリアクセス方法 - Google Patents
ノンキャッシュ領域内高速メモリアクセス方法 Download PDFInfo
- Publication number
- JP2004240520A JP2004240520A JP2003026580A JP2003026580A JP2004240520A JP 2004240520 A JP2004240520 A JP 2004240520A JP 2003026580 A JP2003026580 A JP 2003026580A JP 2003026580 A JP2003026580 A JP 2003026580A JP 2004240520 A JP2004240520 A JP 2004240520A
- Authority
- JP
- Japan
- Prior art keywords
- read
- data
- memory
- cpu
- internal
- 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.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】CPU101が連続アドレスに対してリードアクセスする可能性が高いことを想定し、バーストリードメモリインタフェイス105をCPU101とメモリ104の間に設ける。バーストリードメモリインタフェイス105は内部に、キャッシュ領域の情報とバーストリード分のデータを記録保持する為の内部バッファを持ち、CPU101からキャッシュ領域外に該当するリードアクセスがあった場合に、メモリ104に対してバーストリードを行い、内部バッファに記録保持する。その後、内部バッファが記録保持しているアドレスに対してCPU101からリードアクセスがあった場合は内部バッファのデータをCPU101に対して出力する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明はCPUのアクセスを受けてメモリに対して直接ライト及びリードを行う装置に関し、特に、ネットワーク経由でのデータ送受信等によるデータをDMACがメモリに対してDMA転送を行う様なコンピュータシステムにおいて、DMAにより書換えられたメモリデータをCPUが高速にアクセスする事ができるメモリインタフェイスに関する。
【0002】
【従来の技術】
既存のメモリインタフェイスを含むコンピュータシステムは図2に示す様な構成をしている。CPU101からメモリインタフェイス106にライトアクセス及びリードアクセスを要求されると、メモリインタフェイス106はメモリ104の特徴に合わせたライトコマンド及びリードコマンドを出力し、ライト及びリードを行う。
【0003】
CPU101にはキャッシュメモリが内蔵されており、CPU101がキャッシュメモリに対するアクセスを行うかメモリ104に対するアクセスを行うかは、CPU101がアクセスするアドレス領域に従う。図3は、CPU101がアクセス可能なアドレス領域について示している。150はアドレス空間であり、CPU101はこの空間全てに対してアクセスが可能である。アドレス空間150内における151はキャッシュ領域である。この領域ではCPU101はキャッシュメモリに記録保持されたデータが存在する場合にはそのデータを利用し、メモリインタフェイス106を介してメモリ104に対してアクセスを行わない。一方、アドレス空間150内における152はノンキャッシュ領域である。この領域ではCPU101はキャッシュメモリを利用せず一般的にキャッシュメモリより低速なメモリ104に対して必ずアクセスする。
【0004】
まず、CPU101がキャッシュ領域151へアクセスする場合について考える。CPU101がキャッシュ領域151へアクセスする場合、CPU101がアクセスするアドレスのデータがキャッシュメモリ内に存在すると、CPU101は高速なキャッシュメモリに対してアクセスを行い、低速なメモリ104に対するアクセスを行わない。一方、CPU101がアクセスするデータがキャッシュメモリ内に存在しないと、CPU101はメモリインタフェイス106に対しキャッシュメモリのページサイズ分のリードを要求する。キャッシュにミスヒットした時のペナルティの一例としてDMA転送によりCPU101の外部でメモリ104へのデータ転送が発生する時が挙げられる。この場合、キャッシュデータとメモリデータの整合性を保つ為に、DMA転送によりメモリ104が書換えられるアドレスに該当するキャッシュデータを予めメモリ104に対してライトバックし、そのキャッシュデータを無効化する必要がある。ライトバックとは、メモリ104に対してキャッシュメモリのページサイズ分をメモリ104に対してバーストライトして書戻す事である。ライトバックとキャッシュデータの無効化後、キャッシュメモリ上にはそのアドレスデータが存在していない事になる為、CPU101からリードアクセスがあった場合にミスヒットとなる。もしキャッシュ領域151でのDMA転送を頻繁に行うとなると、ライトバックとミスヒットによるメモリ104へのバーストリードが頻繁に行われる事になる。CPU101がメモリデータをリードするには、キャッシュページ分のバーストリードを行う時間だけでなく、ライトバックによるバーストライトを行う時間を要し、バーストリードとバーストライト夫々に要する時間が等しいと仮定すると、CPU101がメモリデータをリードするのに二倍の時間がかかってしまう。
【0005】
キャッシュ領域151でキャッシュデータとメモリデータの整合性を保つ他の方法として、CPU101にスヌープ機能を搭載させる方法がある。スヌープ機能とは、CPU101外部で行われているメモリ104へのライトアクセスを監視し、キャッシュメモリに記録保持されているデータのアドレスに対してライトアクセスがあった場合に該当するキャッシュデータを書換える機能である。この機能を搭載する事で、ライトバックとバーストリードを行う必要がなくなるのだが、制御が非常に複雑である為、論理規模が大きくなってしまう。
【0006】
次にCPU101がノンキャッシュ領域152へアクセスする場合について考える。CPU101がノンキャッシュ領域152へアクセスする場合、ノンキャッシュ領域152へのリード要求がCPU101から入力されると、メモリインタフェイス106はメモリ104に対してシングルリードを行う。メモリ104が例えばRAS CAS遅延が2サイクル, RASPRECHARGE遅延が5サイクル, PRECHARGE RAS遅延が2サイクル, CAS遅延が2サイクルのSDRAMであると仮定すると、シングルアクセスでは1データをリードするのに7サイクルとなり、バーストアクセスでは4データをリードするのに8サイクル、1データ当りのリードサイクルに換算すると2サイクルとなる。この事から、CPU101がノンキャッシュ領域152へのメモリアクセス時間はキャッシュ領域151へのメモリアクセス時間に比べて3倍以上遅くなってしまう。
【0007】
この様な問題を解決する為に夫々の対象のシステムに合った様々な高速メモリアクセス方法が提案されており、その一例として特開平5−28040号公報に記載の高速メモリアクセス方式がある。特開平5−28040号公報に記載の高速メモリアクセス方式は、キャッシュと同等の速度でアクセス可能なメモリを設け、そのメモリには割込み処理プログラム等書換えられる事のないデータを予め記録保持しておき、そのデータへのアクセスを高速化している。しかし、この方式は予め書換わらないデータを記録保持する事から柔軟性に乏しく、DMA転送等によりデータが頻繁に書き換わるアドレス領域に対しては全く効果がない。加えてキャッシュと同等のアクセス速度のメモリを必要とする為、回路規模が大きくなってしまう。
【0008】
【特許文献1】
特開平5−28040号公報
【0009】
【発明が解決しようとする課題】
ネットワーク経由でのデータ送受信等を行い、DMAC103により頻繁にデータをメモリ104へDMA転送する様なコンピュータシステムでは、キャッシュ領域151でのデータアクセスを仮定するとメモリ104へのライトバックを頻繁に行う必要がある。これにより、CPU101が必要なデータをリードするにはバーストリードを行う時間に加えてライトバックを行う時間が必要となってしまう。また、CPU101にスヌープ機能を内蔵するとなると、制御が複雑になる為論理規模が大きくなってしまう。一方、ノンキャッシュ領域152でのデータアクセスを仮定すると、CPU101からメモリ104へはシングルアクセスしかできない為、高速アクセスできない。
【0010】
【課題を解決するための手段】
本発明は上記課題を解決する為に図1に示す様にCPU101とメモリ104の間にバーストリードメモリインタフェイス105を設ける。バーストリードメモリインタフェイス105は、ノンキャッシュ領域152へCPU101からリードアクセスが要求された時においてその特徴が表れる。バーストリードメモリインタフェイス105はノンキャッシュ領域152に対してCPU101からリードアクセスが要求されると、入力アドレスがバーストリードメモリインタフェイス105に内蔵されているバッファに記録保持されているデータに該当するかどうかを判断する。入力アドレスがバッファに記録保持されているデータに該当した場合、バーストリードメモリインタフェイス105はCPU101に対してそのアドレスに該当するバッファのデータをCPU101に出力する。入力アドレスがバッファに記録保持されているデータに該当しない場合は、下記1−1から1−3の順の様な動作を行う。
1−1.CPU101に対してウェイト信号をアサートし、CPU101から入力されたアドレスを先頭に、メモリ104に対してバーストリードアクセスを行う。
1−2.バーストリードアクセスが終了するまでメモリ104から入力されるリードデータをバーストリードメモリインタフェイス105に内蔵するバッファに記録保持する。
1−3.CPU101から入力されたアドレスのデータがバーストリードメモリインタフェイス105の内蔵するバッファに記録保持されたら、CPU101へのウェイト信号をネゲートして該当データをCPU101へ出力する。
【0011】
以上により、CPU101からノンキャッシュ領域152へのリードアクセスが入力された場合、バーストリードメモリインタフェイス105は、メモリ104に対してバーストリードを行った後にバッファデータを出力するか、若しくは直接バッファのデータを出力する。
【0012】
本発明はDMA転送により連続アドレスの書換えを行うシステムに適用する事を目的としており、この場合CPU101は連続アドレスでリードアクセスする事が見込める為、バーストリードメモリインタフェイス105は直接バッファデータをCPU101へ出力する確率が高く、高速にメモリデータをリードする事が可能となる。
【0013】
具体的な例で説明する。例えばノンキャッシュ領域152に対してCPU101がメモリ104から連続アドレスで4データをリードする場合を考える。既存のメモリインタフェイス106を適用すると、メモリ104に対してシングルリードを4回行う。シングルリードを行うのに必要なサイクル数は7サイクルである為、CPU101がメモリ104から4データをリードするのに要するサイクル数は28サイクルとなる。一方、バーストリードメモリインタフェイス105を適用すると、まずメモリ104に対して4データ分のバーストリードを行い、リードデータを出力し、その後のリードアクセスに対しては直接内部バッファデータを出力する。4データ分のバーストリードを行うのに必要なサイクル数が8サイクル、直接バッファデータを出力するのに必要なサイクル数が1サイクルであり、バッファにデータを記録保持した次のサイクルでそのバッファデータをCPU101へ出力できると仮定すると、CPU101がメモリ104から4データをリードするのに要するサイクル数は9サイクルとなる。このサイクル数に関する詳細な説明は後述する。4データをリードするのに既存のメモリインタフェイス106を適用すると28サイクルであり、バーストリードメモリインタフェイスを適用すると9サイクルである為、バーストリードメモリインタフェイス105の適用により3倍以上高速にCPU101はメモリデータをリードする事ができる。さらに、バーストリードを行うデータ数を増やし16データのリードをすると仮定すると、既存のメモリインタフェイス106が112サイクルを要するのに対し、バーストリードメモリインタフェイス105では21サイクルを要するだけで良く、その差は5倍以上となる。この事から、バーストリードメモリインタフェイス105を適用した場合、4データ程度のバーストリードでも効果が得られ、加えてバーストリードを行うデータ数が多ければ多いほど効果が大きくなる。
【0014】
また、既存のメモリインタフェイス106よりも高速にメモリデータをリードできる事に加え、バーストリードメモリインタフェイス105は実際に実現するのにバーストリード領域を認識する為のデコーダとデータを記録保持するバッファ等の簡単な構成の回路で済む為、スヌープ機能を実現するよりも論理規模が小さくする事ができる。
【0015】
【発明の実施の形態】
本発明であるバーストリードメモリインタフェイス105の実施形態を図4から図13を用いた説明で示す。
【0016】
図4はバーストリードメモリインタフェイス105のブロック図でありその構成を示している。
【0017】
201から205はCPU101からの入力信号である。201は入力ライトデータ、202は入力アドレスである。203は入力チップセレクトであり、CPU101からバーストリードメモリインタフェイス105又はメモリ104に対するアクセスの有無を示す。204は入力ライトイネーブルであり、CPU101からのライトアクセスタイミングを示す。205は入力リードイネーブルであり、CPU101からのリードアクセスタイミングを示す。
【0018】
206はアドレスデコーダと内部バッファ情報レジスタであり、CPU101から入力される入力アドレス202、入力チップセレクト203、入力ライトイネーブル204及び入力リードイネーブル205と、内部レジスタブロックである207より出力される内部レジスタブロック情報208に従って、出力ウェイト215、内部セレクト211、内部ライトイネーブル209、内部リードイネーブル210、出力アドレス213、出力コマンド214、3state開放信号223を出力する。出力ウェイト215は、CPU101やDMAC103からのアクセス要求があった時にその要求の処理が完了するまでウェイトをかける事を示す。内部セレクト211は、内部レジスタブロック207内の個々のレジスタと内部バッファブロックである212の個々のバッファへのアクセスの有無を示す。内部ライトイネーブル209は、内部セレクト211によりアクセスされるレジスタ及びバッファに対するライトタイミングを示す。内部リードイネーブル210は、内部セレクト211によりアクセスされるレジスタ及びバッファに対するリードタイミングを示す。出力アドレス213は、メモリ104へ出力される。出力コマンド214は、メモリ104に対してライト及びリードを行う為のコマンドが出力される。出力コマンド214は、例えばメモリ104がSDRAMの場合だとCLK, CKE, CS, RAS, CAS, WE, DQM等の信号を含み、これらの信号で定義されるコマンドによりSDRAMを制御し、SDRAMへのライトやリード、プリチャージを行う。3state開放信号223は、無効時に3stateバッファである222の出力を高インピーダンスにし、有効時に入力信号である入力ライトデータ201が示す値を出力する。
【0019】
内部レジスタブロック207は、図6に示すレジスタを持つ。301はバーストリードイネーブルレジスタであり、バーストリードメモリインタフェイス105の動作の有無を示す。バーストリードイネーブルレジスタ301により、バーストリードメモリインタフェイス105がバーストリードメモリインタフェイスとして動作するか通常のメモリインタフェイスとして動作するかの切替が可能となる。302はバーストリードスタートアドレスレジスタであり、ノンキャッシュ領域152内においてバーストリードメモリインタフェイス105がメモリ104に対してバーストリードを行うアドレス空間の先頭アドレスを示す。303はバーストリードエンドアドレスレジスタであり、ノンキャッシュ領域152内においてバーストリードメモリインタフェイス105がメモリ104に対してバーストリードを行うアドレス空間の最後尾アドレスを示す。バーストリードスタートアドレスレジスタ302とバーストリードエンドアドレスレジスタ303により、ノンキャッシュ領域152内全てのアドレスに対してバーストリードを行うのではなく、ノンキャッシュ領域152内においてバーストリードを行うアドレス領域を自由に設定することができる。また、その初期値は予め設定されており、初期値を設定しなくても既にバーストリードを行うアドレス領域は存在する。バーストリードスタートアドレス302とバーストリードエンドアドレス303によって囲まれた領域は図7に示す様になっており、この領域をバーストリード領域400とする。バーストリードメモリインタフェイス105は、CPU101からこのバーストリード領域400にリードアクセスが要求された時に特徴が表れるが、その特徴については後述する。
【0020】
内部レジスタブロック207のアドレス領域は図9に示す様になっており、夫々のレジスタを入力アドレス202で指定可能である。CPU101が内部レジスタブロック内の一つのレジスタに対してアクセスすると、アドレスデコーダと内部バッファ情報レジスタ206は、入力アドレス202に対応するレジスタに対して、内部セレクト211、内部ライトイネーブル209又は内部リードイネーブル210を出力する。CPU101からのアクセスがライトアクセスの場合は、アドレスデコーダと内部バッファ情報レジスタ206からは内部ライトイネーブルが出力されており、内部レジスタブロック207はそれを受けて、内部セレクト211により指示されるレジスタを入力ライトデータ201が示すデータに書換える。CPU101からのアクセスがリードアクセスの場合は、アドレスデコーダと内部バッファ情報レジスタ206からは内部リードイネーブル210が出力されており、内部レジスタブロック207はそれを受けて、内部セレクト211により指示されるレジスタデータをレジスタリードデータである217へ出力する。
【0021】
内部レジスタブロック情報208には、内部レジスタブロック207から内部レジスタブロック207内のレジスタ301,302,303のデータが出力されており、アドレスデコーダと内部バッファ情報レジスタ206に入力されている。アドレスデコーダと内部バッファ情報レジスタ206はこの内部レジスタブロック情報208とCPU101からの入力に従って出力信号を決定する。
【0022】
212は内部バッファブロックであり、バーストリードメモリインタフェイス105がメモリ104に対してバーストリードを行った時にメモリ104から入力されるリードデータを記録保持可能な分のバッファを持つ。これらのバッファはそれぞれ1データずつを内部セレクト211により指示する事が可能となっている。内部バッファブロック212は、内部バッファ情報レジスタ206から内部セレクト211と内部ライトイネーブル209が入力されると、内部セレクト211が指示するバッファのデータをメモリデータ219の示すデータに書換え、内部セレクト211と内部リードイネーブル210が入力されると内部セレクト211が指示するバッファのデータを内部バッファリードデータ218に出力する。内部バッファブロック212により、メモリ104から出力されるバーストリードデータの記録保持ができ、記録保持しているデータのアドレスへのリードアクセスがCPU101から入力された場合に、メモリ104へリードを行う必要なくCPU101へリードデータを出力可能となる。
【0023】
220はリードデータセレクタであり、内部セレクト211が内部レジスタブロック207を指示し内部リードイネーブル210が有効な場合は内部レジスタリードデータ217を出力リードデータ221に出力し、内部セレクト211が内部バッファブロック212を指示し内部リードイネーブル210が有効な場合は内部バッファデータ218を出力リードデータ221に出力する。リードデータセレクタ220により、内部レジスタブロック107又は内部バッファブロック212からCPU101が必要とする有効なリードデータをCPU101へ出力可能となる。
【0024】
222は3stateバッファであり、3state開放信号223が有効時ではメモリデータ219に入力ライトデータ201が示す値を出力し、無効時では出力を高インピーダンスの状態に維持する。
【0025】
アドレスデコーダと内部バッファ情報レジスタ206の内部ブロックは、図5の様に示される。251はアドレスデコーダであり、入力アドレス202、入力チップセレクト203、入力ライトイネーブル204及び入力リードイネーブル210、内部レジスタ情報208、内部バッファ情報レジスタブロックである252より出力される内部バッファ情報253に従って、出力ウェイト215、内部セレクト211、内部ライトイネーブル209、内部リードイネーブル210、内部バッファ有効指示信号254、出力アドレス213、出力コマンド214、3state開放信号223を出力する。内部セレクト211は前述した対象に加えて内部バッファ情報レジスタブロック252に対しても出力している。内部バッファ有効指示信号254は、内部バッファ情報レジスタブロック252のレジスタであるバッファイネーブルレジスタ304の有効無効を切替える為の信号である。
【0026】
内部バッファ情報レジスタブロック252は図7に示すレジスタを持つ。304はバッファイネーブルレジスタであり、内部バッファブロック212内における夫々のバッファデータの有効無効を示す。このレジスタの値は、アドレスデコーダ251から内部セレクト211と内部ライトイネーブル209が入力された時に、内部バッファ有効指示信号254が示す値に書換わる。305はバッファストアドメモリアドレスレジスタであり、内部バッファブロック212に記録保持されているメモリデータの先頭アドレスを示す。このレジスタの値は、アドレスデコーダ251から内部セレクト211と内部ライトイネーブル209が入力された時に入力アドレス202の示すデータに書換わる。内部バッファ情報レジスタブロック252のデータは、内部バッファ情報253によりアドレスデコーダ251へ出力されている。
【0027】
内部バッファブロック212のアドレス領域はバッファストアドメモリアドレスレジスタ305により決定される。内部バッファブロック212が記録保持しているメモリデータのアドレス領域402は図10に示す様になっており、夫々のバッファを入力アドレス202で指定可能である。バッファが記録保持しているメモリデータのアドレス領域は、バーストリード領域400内において、バッファストアドメモリアドレスレジスタ305の値からバーストリード分のアドレス長を加えた範囲である。この領域を内部バッファ記録保持領域402とする。具体的な例で説明する。バーストリード長が4データであると仮定し、バーストリードメモリインタフェイス105がバーストリードを行いリードデータを内部バッファブロック212に記録保持したとすると、内部バッファ記録保持領域402はバッファストアドメモリアドレス305に格納されている値から3データ長分のアドレスを加えた範囲となる。バーストリード長が8データの場合では、バッファストアドメモリアドレス305に格納されている値から7データ長分のアドレスを加えた範囲となる。
【0028】
アドレスデコーダ251は、CPU101からアクセス要求があると、図11に示す様な順で判断を行い、夫々の判断結果により出力を決定する。アドレスデコーダ251が判断を行う為に用いる信号は、入力アドレス202、入力チップセレクト203、入力ライトイネーブル204、入力リードイネーブル205、内部レジスタ情報208、内部バッファ情報253であり、図11に示す条件判断結果により、出力ウェイト215、内部セレクト211、内部ライトイネーブル209、内部リードイネーブル210、出力アドレス213、出力コマンド213、3state開放信号223を夫々の目的に合うように出力する。目的とする動作は、内部レジスタブロック207へのアクセス、メモリ104へのシングルアクセス、メモリ104へのバーストリード、内部バッファデータへのリードがあげられる。
【0029】
CPU101からのアクセス要求は、CPU101のアクセス要求先アドレスを入力アドレス202に入力し、入力チップセレクト202を有効にし、ライトアクセスの場合は入力ライトイネーブル204と入力ライトデータ201を、リードアクセスの場合は入力リードイネーブル205を有効にする事で行う。アクセス要求時に出力ウェイト信号215が有効な場合は、出力ウェイト信号215が無効になるまで、その要求を出力し続ける。
【0030】
まず、CPU101からバーストリードメモリインタフェイス105にアクセス要求があると、アドレスデコーダ251は501の分岐において、入力アドレス202が内部レジスタ領域401かどうかを判断する。入力アドレス202が内部レジスタ領域401である場合、バーストリードメモリインタフェイス105は502の処理を行い、内部レジスタ領域401外の場合は、503の分岐による判断を行う。
【0031】
502の処理である「内部レジスタアクセス」では、アドレスデコーダ251が内部セレクト211を内部レジスタブロック207に対して出力し、CPU101からのアクセスがライトアクセスの場合は内部ライトイネーブル209を有効にし、CPU101からのアクセスがリードアクセスの場合は内部リードイネーブル210を有効にする。内部レジスタブロック207は、内部ライトイネーブル209が有効の場合は内部セレクト211により指示されるレジスタを入力ライトデータ201の示す値に書換え、内部リードイネーブル210が有効の場合は内部セレクト211により指示されるレジスタのデータをレジスタリードデータ217に出力する。リードデータセレクタ220は、レジスタリードデータ217が出力されるとレジスタリードデータ217を出力リードデータ221に出力する。これらの動作によりCPU101は内部レジスタブロック401へのアクセスを行う事ができる。
【0032】
503の分岐では、アドレスデコーダ251はバーストリードイネーブルレジスタ304が無効かどうかを判断する。無効である場合、バーストリードメモリインタフェイス105は504の処理を行い、有効である場合は505の分岐による判断を行う。
【0033】
504の処理である「メモリへシングルアクセス」では、アドレスデコーダ251が出力ウェイト215を有効にし、入力アドレス202と同じ値を出力アドレス213に出力し、CPU101からのアクセスがライトアクセスの場合はメモリ104に対してシングルライトのコマンドを、CPU101からのアクセスがリードアクセスの場合はメモリ104に対してシングルリードのコマンドを出力コマンド214に出力する。その後の動作はライトとリードで動作が異なる。ライトアクセスの場合では、アドレスデコーダ251はメモリ104にデータをライトを行うタイミングで、3state開放信号を有効にする。3stateバッファ222は有効な3state開放信号223を受け、メモリデータ219に入力ライトデータ201が示す値を出力する。ライトが終了するとアドレスデコーダ251は出力ウェイト215を無効にする。これにより、バーストリードメモリインタフェイス105はメモリ104に対してシングルライトを行う事ができる。
一方リードアクセスの場合、アドレスデコーダ251はメモリ104からメモリデータ219が入力されるタイミングで、内部バッファブロック212の先頭バッファとバッファイネーブルレジスタ304とバッファストアドメモリアドレスレジスタ305に対して内部セレクト211を出力し、バッファイネーブルレジスタ304の値が内部バッファブロック212の先頭バッファのみ有効になるような内部バッファ有効指示信号254を出力する。内部バッファブロック212は内部セレクト211と内部ライトイネーブル209を受け、先頭バッファをメモリデータ209が示す値に記録保持する。
バッファイネーブルレジスタ304は内部セレクト211と内部ライトイネーブル209を受け、バッファ有効指示信号254の示す値を記録保持する。バッファストアドメモリアドレスレジスタ305は、内部セレクト211と内部ライトイネーブル209を受け、入力アドレス202が示す値を記録保持する。この状態で内部バッファブロック212の先頭バッファにはCPU101がリード要求しているデータが存在する為、アドレスデコーダ251は出力ウェイト信号215を無効にし、内部バッファブロック212の先頭バッファに対して内部セレクト211を出力し、内部リードイネーブル210を出力する。内部バッファブロック212は、内部セレクト211と内部リードイネーブル210を受け、内部バッファリードデータ218に先頭バッファのデータを出力する。リードデータセレクタ220は、内部バッファブロック212に対する内部セレクト211と内部リードイネーブル210を受け、内部バッファリードデータ218を出力リードデータ221に出力する。これによりCPU101は有効なリードデータをリードする事ができる。これにより、バーストリードメモリインタフェイス105はメモリ104に対してシングルリードを行う事ができる。
【0034】
505の分岐では、アドレスデコーダ251はCPU101からのアクセスがライトアクセスかどうかを判断する。ライトアクセスである場合、バーストリードメモリインタフェイス105は506の処理を行い、リードアクセスである場合は507の分岐による判断を行う。
【0035】
506の処理である「メモリへシングルライト」では、バーストリードメモリインタフェイス105は504におけるライトアクセスの場合と同様の動作に加え、アドレスデコーダ251が内部セレクト211をバッファイネーブルレジスタ304に対して出力し、内部ライトイネーブル209を有効にし、バッファイネーブルレジスタ304を無効にするような内部バッファ有効指示信号254を出力する。バッファイネーブルレジスタ304は、内部ライトイネーブル209と内部バッファ有効指示信号254を受け、状態を無効に変化させる。これらの動作により、バーストリードメモリインタフェイス105はメモリ104へのライトを行う事ができ、また、メモリデータと内部バッファデータの整合性を保つ。
【0036】
507の分岐では、アドレスデコーダ251はバッファイネーブルレジスタ304が有効かつ、入力アドレス202が内部バッファ記録保持領域402かどうかを判断する。
バッファイネーブルレジスタ304が有効かつ入力アドレス202が内部バッファ記録保持領域402である場合、バーストリードメモリインタフェイス105は508の処理を行い、バッファイネーブルレジスタ304が無効又は内部バッファ記録保持領域402外である場合は509の分岐による判断を行う。
【0037】
508の処理である「バッファデータをCPUへ出力」では、アドレスデコーダ251が内部セレクト211を入力アドレスに該当するバッファに対して出力し、内部リードイネーブル210を有効にする。内部バッファブロック212は、内部リードイネーブル210を受け、内部セレクト211で指示されるバッファデータを内部バッファリードデータ218に出力する。リードデータセレクタ220は、内部バッファリードデータ218が入力されると内部バッファリードデータ218を出力リードデータ221に出力する。これらの動作により、バーストリードメモリインタフェイス105は内部バッファブロック212に記録保持されているデータをCPU101に出力可能となり、CPU101は高速にリードアクセスができる。
【0038】
509の分岐では、アドレスデコーダ251は入力アドレス202がバーストリード領域400かどうかを判断する。入力アドレス202がバーストリード領域400である場合、バーストリードメモリインタフェイス105は510の処理を行い、バーストリード領域400外である場合は511の処理を行う。
【0039】
510の処理である「メモリへバーストリード」では、アドレスデコーダ251が出力ウェイト215を有効にし、入力アドレス202を先頭アドレスとしてバーストリードを行う為の出力アドレス213と出力コマンド214を出力する。メモリ104へのバーストリードを行う為の出力コマンド214を出力後、メモリ104からの最初のリードデータがメモリデータ219に入力されるタイミングで、アドレスデコーダ251は内部セレクト211を内部バッファブロック212の先頭バッファとバッファイネーブルレジスタ304とバッファストアドメモリアドレスレジスタ305に対して出力し、バッファイネーブルレジスタ304の値が内部バッファブロック212の先頭バッファのみ有効になるような内部バッファ有効指示信号254を出力し、内部ライトイネーブル209を有効にする。内部バッファブロック212は内部セレクト211と内部ライトイネーブル209を受け、先頭バッファをメモリデータ209が示す値に記録保持する。バッファイネーブルレジスタ304は、内部セレクト211と内部ライトイネーブル209を受け、内部バッファ有効指示信号254が示す値を記録保持する。バッファストアドメモリアドレスレジスタ305は、内部セレクト211と内部ライトイネーブル209を受け、入力アドレス202が示す値を記録保持する。この状態で内部バッファブロック212の先頭バッファにはCPU101がリード要求しているデータが存在する為、アドレスデコーダ251は出力ウェイト信号215を無効にし、内部バッファブロック212の先頭バッファに対して内部セレクト211を出力し、内部リードイネーブル210を出力する。内部バッファブロック212は、内部セレクト211と内部リードイネーブル210を受け、内部バッファリードデータ218に先頭バッファのデータを出力する。リードデータセレクタ220は、内部バッファブロック212に対する内部セレクト211と内部リードイネーブル210を受け、内部バッファリードデータ218を出力リードデータ221に出力する。その後、残りのバーストリード分のメモリデータ219が入力されると、夫々のリードデータが入力されるタイミングで、アドレスデコーダ251は内部セレクト211を内部バッファブロック212の二番目のバッファから順番に出力し、内部セレクト211をバッファイネーブルレジスタ304に対して出力し、また、内部バッファブロック212の記録保持したバッファが有効になるような内部バッファ有効指示信号254を出力し、内部ライトイネーブル209を出力する。内部バッファブロック212は内部セレクト211と内部ライトイネーブル209を受け、内部セレクト211により指示されるバッファのデータをメモリデータ219の示す値に記録保持する。バッファイネーブルレジスタ304は内部セレクト211と内部ライトイネーブル209を受け、内部バッファブロック212が夫々のリードデータを記録保持する度に内部バッファ有効指示信号254が示す値を記録保持する。これらの動作により、メモリ104から入力されるバーストリードデータを内部バッファブロック212に記録保持できる。一方、バーストリードメモリインタフェイス105にはCPU101から次のアドレスデータのリード要求が入力されており、アドレスデコーダ251は要求先データが内部バッファブロック212に記録保持されるまで出力ウェイト信号215を有効にし、記録保持後に出力ウェイト信号215を無効にする。これらの動作により、バーストリードメモリインタフェイス105はメモリ104に対してバーストリードを行い、リードデータを内部バッファブロック212に記録保持し、かつ、CPU101に対しては入力アドレス202に該当するリードデータを出力可能となる。
【0040】
511の処理である「メモリへシングルリード」では、バーストリードメモリインタフェイス105は504におけるシングルリードの場合と同様の動作となる。
【0041】
501から511より、バーストリードイネーブル301が有効時にCPU101からバーストリード領域400にリードアクセスが入力されると、バーストリードメモリインタフェイス105はメモリ104に対してバーストリードを行うか、内部バッファブロック212のデータを出力するかの動作となる。CPU101が連続アドレスでリードアクセスすると仮定すると、バーストリードメモリインタフェイス105はCPU101からの最初のリードアクセスでメモリ104に対してバーストリードを行い、次からのリードアクセスでは内部バッファブロック212のデータを出力する。バーストリードを行ったアドレス分以降の入力アドレス202がCPU101から入力された場合、即ち、内部バッファブロック212に入力アドレス202に該当するバッファデータが存在しない場合は、再びメモリ104に対してバーストリードを行う。この様に、バーストリードメモリインタフェイス105は、CPU101からの連続アドレスでのリードアクセスに対して毎回メモリ104へシングルリードを行わずに、メモリ104へは一回のバーストリードだけ行い、以降は内部バッファブロック212のデータを出力する為、CPU101は高速にメモリデータを読込む事が可能となる。
【0042】
具体的な動作比較例として、メモリ104がSDRAMの場合のバーストリードメモリインタフェイス105の動作を図12と図13を用いて説明する。
【0043】
まず図12について説明する。図12は図2のコンピュータシステムにおいてCPU101がノンキャッシュ領域152に対して連続アドレスでのリード要求を行った時のタイミングチャートである。601はCPU101側の信号を示しており、602はSDRAM側の信号を示している。CPU101の入力アドレス202に対応するSDRAMのROWアドレスは入力アドレス202の上一桁、COLUMNアドレスは入力アドレス202の下一桁となっている。SDRAMへのコマンドは、ACTがバンクアクティブコマンド、REDがリードコマンド、PRCがプリチャージコマンドとなっており、これらのコマンドを用いる事でSDRAMに対してライト、リード、プリチャージを行う事ができる。これらのコマンドを出力する為の時間条件は前述の通りとする。また、CPU101からバーストリードメモリインタフェイス105へのリードは1サイクルでできるとし、CPU101がリードによってデータを受取るタイミングはリード要求を終了した時とし、バーストリードメモリインタフェイス105のバースト長は4とする。CPU101からのリード要求を受けると既存のメモリインタフェイス106は、1サイクル目でCPU101に対して出力ウェイト215を有効にし、SDRAMに対してバンクアクティブコマンドと入力アドレス202に対応するROWアドレスを出力する。CPU101はこの出力ウェイト215が無効になるまでリード要求をバーストリードメモリインタフェイス105に入力し続ける。次に既存のメモリインタフェイス106は3サイクル目においてリードコマンドと入力アドレスに対応するCOLUMNアドレスを出力する。既存のメモリインタフェイス106は5サイクル目にSDRAMからリードデータが入力され、CPU101への出力ウェイト215を無効にし、リードデータをCPU101へ出力する。これによりCPU101は5サイクル目でリードデータを受取る事ができる。CPU101は6サイクル目に次のリード要求を行うが、6サイクル目では既存のメモリインタフェイス106はまだSDRAMへのリードコマンドを行う事ができない為、出力ウェイト215を有効にする。既存のメモリインタフェイス106は8サイクル目からSDRAMへの次のリードコマンドを出力し、以後0サイクル目から7サイクル目までの動作を再び行う。
よって、既存のメモリインタフェイス106を適用すると1データをリードするのに7サイクルを要する。
【0044】
次に図13について説明する。図13は図1のコンピュータシステムにおいてCPU101がバーストリード領域400に対して連続アドレスでのリード要求を行った時のタイミングチャートである。コマンドの内容及びコマンドを出力する時間条件等は図12と同様である。CPU101からのリード要求を受けるとバーストリードメモリインタフェイス105は、1サイクル目でCPU101に対して出力ウェイト215を有効にし、SDRAMに対してバンクアクティブコマンドと入力アドレス202に対応するROWアドレスを出力する。3サイクル目において、バーストリードメモリインタフェイス105はSDRAMに対してリードコマンドと入力アドレス202に対応するCOLUMNアドレスを出力し、以後4サイクル連続でバーストリードを行う為のリードコマンドとCOLUMNアドレスを出力する。SDRAMからの最初のリードデータは5サイクル目にバーストリードメモリインタフェイス105に入力され、内部バッファブロック212に記録保持され、6サイクル目7サイクル目8サイクル目も同様となる。5サイクル目においてCPU101がリード要求先アドレスのリードデータが内部バッファブロック212に記録保持されている為、バーストリードメモリインタフェイス105は6サイクル目に出力ウェイト215を無効にしCPU101はこれを受けてリード要求を終了しリードデータを受取る。以後CPU101は7サイクル目に次のリード要求をバーストリードメモリインタフェイス105に入力するが、リード要求先アドレスのリードデータが既に内部バッファブロック212に記録保持されている為、同サイクルでCPU101はリードデータを1サイクルで受取る事ができる。同様に8サイクル目9サイクル目と、CPU101はリードデータを1サイクルで受取る事ができる。10サイクル目以降においてはリード要求先アドレスのデータが内部バッファブロック212に存在しない為、バーストリードメモリインタフェイス105は0サイクル目から9サイクル目までの動作を再び行う。よって、バーストリードメモリインタフェイス105を適用するとCPU101が4データをリードするのに9サイクルを要する。
【0045】
次に、図12、図13によって示されたサイクル数をバスサイクルが33MHz、データバス幅が32bitのアーキテクチャにおける、CPU101からのメモリリードをスループットで示し比較する。既存のメモリインタフェイス106を用いた場合、ノンキャッシュ領域152へのCPU101からのリードアクセスに対して、バーストリードメモリインタフェイス105はメモリ104へシングルリードしか行う事ができない為、前述のサイクル数に上記アーキテクチャ条件を当てはめるとスループットは約150Mbpsとなる。ネットワーク経由のデータを扱うには、CPU101からメモリ104へのネットワーク送受信用データのアクセスの他に、DMAC103によるメモリ104へのネットワーク送受信用データのDMA転送やCPU101によるメモリ104へのプログラム用データのアクセスを要する為、既存のメモリインタフェイス105を用いた場合だと100Mbpsの様な高速ネットワークへの対応は容易ではない。一方、バーストリードメモリインタフェイス105を用いた場合、バーストリード領域400へのCPU101からのリードアクセスに対して、バーストリードメモリインタフェイス105はメモリ104へのバーストリードと内部バッファへのリードを行い、前述のサイクル数に上記アーキテクチャ条件を当てはめるとスループットは約380Mbpsとなる。バーストリードメモリインタフェイス105を用いた効果は比に換算して2倍以上、スループットでは200Mbps以上の差であり、既存のメモリインタフェイス106を用いるよりもバーストリードメモリインタフェイス105を用いた方が高速ネットワークへの対応が容易となる。
【0046】
本実施形態において、バーストリードアドレス領域400はバーストリードスタートアドレス302で設定された値とバーストリードエンドアドレス303で設定された値に囲まれた領域としたが、入力アドレスの上位数bitでバーストリード領域400を判断できるようなアドレス値をバーストリードスタートアドレス302とバーストリードエンドアドレス303の初期値とするか、若しくは固定値とする事で、アドレスデコーダ251が上位数bitでバーストリード領域400を判断して動作するという形態も可能である。この形態を用いるとアドレスデコーダ251のアドレスデコード部の論理規模が小さくなる。
【0047】
また、CPU101からのライトアクセスに対しては、バーストリードメモリインタフェイス105は、バッファイネーブルレジスタ304を有効にしたまま、アドレスデコーダ251が内部バッファブロック212に対して内部セレクト211と内部ライトイネーブル209を出力して、内部バッファブロック212に記録保持し、メモリ104へバーストライト可能な分の連続アドレスデータが記録保持されると、メモリ104に対してバーストライトを行う形態も可能である。この形態を用いると、CPU101からのライトアクセスの度にバーストリードメモリインタフェイス105はメモリ104へシングルライトを行う必要がなく、CPU101はライトアクセスを行う場合でも高速アクセスが可能になる。
【0048】
バーストリードメモリインタフェイス105は、CPU101からのアクセス要求とDMAC103からのアクセス要求を外部信号によって識別し、DMAC103からのアクセス要求では既存のメモリインタフェイス106として動作する形態も可能である。この形態を用いると、DMAC103のアクセス要求時の動作において、内部バッファブロック212に記録保持する為にかかるオーバヘッドを削減可能である。
【0049】
【発明の効果】
本発明はCPU101のリードアクセスを受けるとメモリ104に対してバーストリードを行い、リードデータを内部バッファに記録保持し、内部バッファに記録保持しているデータに該当するアドレスに対するCPU101からのリードアクセスにはバッファデータを出力する。ネットワーク経由でのデータ送受信によるデータをDMAによりメモリ104にアクセスにする様なシステムでは、CPU101が連続アドレスをリードする可能性が高い。この様なシステムに対し本発明を適用するとCPU101からのリードアクセスの度にメモリ104に対するシングルアクセスを行う必要がなくなり、CPU101がメモリデータをリードする時の転送のオーバーヘッドを大幅に削減できる。例えばメモリ104がSDRAMだと仮定し、CPU101がメモリ104から連続アドレスで4データをリードする場合を考えると、既存のメモリインタフェイス106を適用するよりも3倍以上高速にメモリデータをリードする事ができ、さらにバーストリードを行うデータ数を16データのリードをすると仮定するとその差は5倍以上となる。この事から、バーストリードメモリインタフェイス105を適用すると、4データ程度のバーストリードでも大幅に転送オーバヘッドを削減でき、加えてバーストリードを行うデータ数が多ければ多いほどその効果は大きくなる。
【0050】
また、既存のメモリインタフェイス106よりも高速にメモリデータをリードできる事に加え、バーストリードメモリインタフェイス105は実際に実現するのにバーストリード領域を認識する為のデコーダとデータを記録保持するバッファ等の簡単な構成の回路で済む為、スヌープ機能を実現するよりも論理規模が小さくする事ができる。
【図面の簡単な説明】
【図1】バーストリードメモリインタフェイスを有するコンピュータシステム図。
【図2】従来のコンピュータシステム図。
【図3】アドレス空間におけるキャッシュ領域とノンキャッシュ領域を示す図。
【図4】バーストメモリインタフェイスのブロック図。
【図5】アドレスデコーダ及び内部バッファ情報レジスタのブロック図。
【図6】内部レジスタを示す図。
【図7】内部バッファ情報レジスタを示す図。
【図8】バーストリード領域を示す図。
【図9】内部レジスタ領域を示す図。
【図10】内部バッファ記録保持領域を示す図。
【図11】
バーストリードメモリインタフェイス動作条件フローチャート。
【図12】
既存のメモリインタフェイスを用いたリード動作タイミングチャート。
【図13】
バーストリードメモリインタフェイスを用いたリード動作タイミングチャート。
【符号の説明】
101…セントラルプロセシングユニット、102…入出力装置、103…ダイレクトメモリアクセスコントローラ、104…メモリ、105…バーストリードメモリインタフェイス、106…通常のメモリインタフェイス、150…アドレス空間、151…キャッシュ領域、152…ノンキャッシュ領域、201…入力ライトデータ、202…入力アドレス、203…入力チップセレクト、204…入力ライトイネーブル、205…入力リードイネーブル、206…アドレスデコーダと内部バッファ情報レジスタ、207…内部レジスタブロック、208…内部レジスタブロック情報、209…内部ライトイネーブル、210…内部リードイネーブル、211…内部セレクト、212…内部バッファブロック、213…出力アドレス、214…出力コマンド、215…出力ウェイト、217…内部レジスタリードデータ、218…内部バッファリードデータ、219…メモリデータ、220…リードデータセレクタ、221…出力リードデータ、222…3stateバッファ、223…3stateバッファ開放信号、251…アドレスデコーダ、252…内部バッファ情報レジスタブロック、253…内部バッファ情報、254…内部バッファ有効指示信号、301…バーストリードイネーブルレジスタ、302…バーストリードスタートアドレスレジスタ、303…バーストリードエンドアドレスレジスタ、304…バッファイネーブルレジスタ、305…バッファストアドメモリアドレスレジスタ、400…バーストリード領域、401…内部レジスタ領域、402…内部バッファ記録保持領域、501…入力アドレスが内部レジスタ領域かどうかの分岐、502…内部レジスタブロックアクセス処理、503…バーストリードイネーブルが無効かどうかの分岐、504…メモリへのシングルアクセス処理、505…CPUからのアクセスがリードアクセスかどうかの分岐、506…メモリへのシングルライト処理、507…バッファイネーブルが有効かつ、入力アドレスが内部バッファ記録保持領域かどうかの分岐、508…CPUへのバッファデータ出力処理、509…入力アドレスがバーストリード領域かどうかの分岐、510…メモリへバーストリード処理、511…メモリへシングルリード処理、601…CPU側信号群、602…SDRAM側信号群。
Claims (4)
- CPU外部からメモリへのデータ転送をDMAにより行う様なコンピュータシステムにおいて、CPUからメモリに対するアクセスを入力する為のインタフェイスとメモリのリード及びライトを行う為のインタフェイスを持ち、CPUがキャッシュを用いずにデータアクセスを行うアドレス領域の情報と、バーストリード1回又は複数回分のリードデータを記録保持する内部バッファと、内部バッファが記録保持したリードデータのアドレス領域を記録保持するレジスタを有し、CPUがキャッシュを用いずにデータアクセスを行うアドレス領域に対してCPUからリードアクセスがあった場合に、メモリに対してバーストリードを行いリードデータを内部バッファに記録保持する手段、CPUからの入力アドレスに該当するリードデータをCPUへ出力する手段、内部バッファに記録保持したリードデータのアドレス情報を記録保持する手段を有し、内部バッファに記録保持されているデータのアドレス領域に対してCPUからリードアクセスがあった場合に、メモリへリードする事なく内部バッファからリードデータをCPUに出力する手段を有する事を特徴とするメモリインタフェイス。
- 請求項1記載のメモリインタフェイス回路において、バーストリードによる内部バッファへの記録保持及び内部バッファデータ出力を行う機能の有効無効を指示可能なレジスタと、その機能が適用されるアドレス領域を指示可能なレジスタを有する事で、動作条件を変更可能とする事を特徴とするメモリインタフェイス。
- 請求項1記載のメモリインタフェイス回路において、CPUからのライトアクセスに対してライトデータを内部バッファに記録保持し、メモリインタフェイスからメモリへのシングルライトの回数を軽減し、ライトアクセス転送オーバヘッドを軽減する特徴を持つメモリインタフェイス。
- CPUとDMACとI/Oが同一のメモリバス上に存在する組込み系コンピュータシステムにおいて請求項1記載のメモリインタフェイスを適用する事により、CPUのバス占有率を低減し高速にメモリからのデータリードを実現する事を特徴とするメモリアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003026580A JP4220258B2 (ja) | 2003-02-04 | 2003-02-04 | ノンキャッシュ領域内高速メモリアクセス方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003026580A JP4220258B2 (ja) | 2003-02-04 | 2003-02-04 | ノンキャッシュ領域内高速メモリアクセス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004240520A true JP2004240520A (ja) | 2004-08-26 |
JP4220258B2 JP4220258B2 (ja) | 2009-02-04 |
Family
ID=32954537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003026580A Expired - Fee Related JP4220258B2 (ja) | 2003-02-04 | 2003-02-04 | ノンキャッシュ領域内高速メモリアクセス方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4220258B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010032433A1 (ja) * | 2008-09-18 | 2010-03-25 | パナソニック株式会社 | バッファメモリ装置、メモリシステム及びデータ読出方法 |
JP2012038065A (ja) * | 2010-08-06 | 2012-02-23 | Ricoh Co Ltd | 半導体集積回路、情報記憶方法 |
-
2003
- 2003-02-04 JP JP2003026580A patent/JP4220258B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010032433A1 (ja) * | 2008-09-18 | 2010-03-25 | パナソニック株式会社 | バッファメモリ装置、メモリシステム及びデータ読出方法 |
CN102160041A (zh) * | 2008-09-18 | 2011-08-17 | 松下电器产业株式会社 | 缓冲存储器装置、存储器系统以及数据读出方法 |
JP2012038065A (ja) * | 2010-08-06 | 2012-02-23 | Ricoh Co Ltd | 半導体集積回路、情報記憶方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4220258B2 (ja) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6681302B2 (en) | Page open hint in transactions | |
KR920010950B1 (ko) | 컴퓨터 시스템과 정보 판독 및 데이타 전송방법 | |
JP5417879B2 (ja) | キャッシュ装置 | |
KR100913279B1 (ko) | 버스를 통해 메모리 프리패치 명령들을 전송하기 위한 방법 및 장치 | |
JP4656862B2 (ja) | 半導体装置 | |
KR100228940B1 (ko) | 메모리 일관성 유지 방법 | |
JPH04233641A (ja) | データプレフェッチの方法およびその装置 | |
JPH09237223A (ja) | バスブリッジを用いたコンピュータシステム | |
WO2009110168A1 (ja) | Dma転送装置 | |
US20060059320A1 (en) | Memory control device | |
US5287512A (en) | Computer memory system and method for cleaning data elements | |
JPH09179779A (ja) | コンピュータシステムおよびデータ転送方法 | |
JP4097883B2 (ja) | データ転送装置および方法 | |
US7581072B2 (en) | Method and device for data buffering | |
US7406571B2 (en) | Memory system and method for controlling the same, and method for maintaining data coherency | |
JP4220258B2 (ja) | ノンキャッシュ領域内高速メモリアクセス方法 | |
JP3061106B2 (ja) | バスブリッジおよびそれを備えた計算機システム | |
US5809534A (en) | Performing a write cycle to memory in a multi-processor system | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 | |
JPH02110646A (ja) | メモリの先行読出し装置 | |
JPH09319657A (ja) | 命令読み込み用バッファを備えたプロセッサ | |
JP2001229074A (ja) | メモリ制御装置と情報処理装置及びメモリ制御チップ | |
JPH07230366A (ja) | 画像処理装置 | |
EP0398191A2 (en) | Quadruple word, multiplexed, paged mode and cache memory | |
JPH0210450A (ja) | キヤツシユメモリの先行フエツチ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050824 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080604 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080807 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080819 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081010 |
|
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: 20081028 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
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: 20111121 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131121 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |