JPH0895852A - バッファ回路 - Google Patents

バッファ回路

Info

Publication number
JPH0895852A
JPH0895852A JP23468394A JP23468394A JPH0895852A JP H0895852 A JPH0895852 A JP H0895852A JP 23468394 A JP23468394 A JP 23468394A JP 23468394 A JP23468394 A JP 23468394A JP H0895852 A JPH0895852 A JP H0895852A
Authority
JP
Japan
Prior art keywords
read
data
buffer
port
ahead
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.)
Pending
Application number
JP23468394A
Other languages
English (en)
Inventor
Yoshifumi Ishikawa
善文 石川
Masayuki Eto
正幸 江藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP23468394A priority Critical patent/JPH0895852A/ja
Publication of JPH0895852A publication Critical patent/JPH0895852A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 高価な高速メモリデバイスを使用することな
く、低速メモリの高速リードアクセスを可能とし、シス
テム全体の処理速度の向上を図る。 【構成】 「前処理」モードを開始する以前に、必要と
するデータのアドレスからなるコマンドを「先読みコマ
ンドの書き込み」モードで、メモリコントローラ2内部
の先読み制御回路2aに付随する先読み専用ポート2d
に書き込む。先読み制御回路2aは、コマンド内に書か
れたアドレスに該当する低速メモリ4から専用バッファ
2cにデータを取り込む。CPU1は、先読み専用ポー
ト2dへの「先読みコマンドの書き込み」が終了すると
直ぐに「前処理」を開始する。「データリード」モード
が開始されると、CPU1は先読み専用ポート2dに対
して、リード命令を実行する。これを受けて先読み制御
回路2aは、先読みデータ専用バッファ2cからデータ
をCPU1に渡す。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リードアクセスの処理
時間の短縮を図るようにしたバッファ回路に関し、例え
ば、低速I/O(入出力)デバイスやメモリを用いた回
路に適用されるものである。
【0002】
【従来の技術】低速なI/Oデバイスやメモリへのアク
セスにおいて、バッファを用いた高速化が可能なライト
サイクルよりも、高速化の手段のないリードサイクルの
方が時間がかかる。つまり、ライトサイクルではライト
データを高速動作可能なデバイスでバッファリングし、
それ以降の動作をバスの管理回路に委任することによっ
て、低速なデバイスを直接アクセスすることなく、CP
U等のバスマスタはサイクルを終了することができるか
らである。しかし、リードサイクルでは低速なデバイス
の動作が完了するまでアクセスが終了しないため、アク
セスタイムは低速なデバイスの動作速度に依存し、一連
の動作を短縮することができなかった。
【0003】図15は、従来のバッファ回路のブロック
図で、図中、11はCPU(中央処理装置)、12はメ
モリコントローラ、13は高速メモリ(メインメモ
リ)、14は低速メモリである。CPU11の処理は、
「前処理」、「データリード」、「後処理」、「データ
ライト」の4つのモードから成っている。「前処理」モ
ード終了後に、CPU11はデータリード命令を実行
し、「データリード」モードが開始される。データリー
ド命令を受け取ったメモリコントローラ12は、アドレ
スに該当する低速メモリ14を制御してデータを読み出
す。CPU11はこのデータを、データバスを介して低
速メモリ14から直接受け取る。このため、CPU11
は低速メモリ14からのデータ読み出しが終了するまで
「データリード」モードを終了できない。また、データ
バスもこの間アクティブ状態にあり、他の動作にデータ
バスを使用することはできない。
【0004】図16は、図15に示したバッファ回路の
動作を説明するためのフローチャートである。以下、各
ステップ(S)に従って順に説明する。まず、CPU1
1において前処理を行い(S81)、次に、リード命令
の実行を行う(S82)。次に、メモリコントローラ1
2においてメモリアドレスとコントロール信号の作成を
行い(S83)、低速メモリ14からのデータ読み出し
を行う(S84)。次に、CPU11においてデータの
読み込みを行い(S85)、後処理を行って(S8
6)、ライト命令の実行とデータの書き出しを行う(S
87)。次に、メモリコントローラ12においてメモリ
アドレスとコントロール信号の作成を行い(S88)、
高速メモリ13へのデータの書き込みを行う(S8
9)。次に、CPU11において終了判定を行い(S9
0)、終了でないと判定されれば、前記ステップS81
に戻り、終了と判定されれば処理を終了する。
【0005】従来技術を記載した公知文献としては、例
えば、特開平2−122345号公報がある。この公報
のものは、リード要求のあったカウント数分のセクタを
リードした後も、もし他の入出力要求がなければ引き続
いてその先のセクタを次々と読み込み、リードデータバ
ッファが満杯になるように動作させるようにしたもので
ある。また、リードデータバッファ内に入っているデー
タが記憶装置のどの部分にあたるデータであるかを常に
記憶し、情報処理装置からのリード要求のあったデータ
がリードデータバッファ内にあるかどうかを即座に判断
できるようにしたものである。
【0006】
【発明が解決しようとする課題】I/Oデバイスやメイ
ンメモリは、CPU等のバスマスタの動作速度に比べて
遅い。メインメモリには高速なデバイスを用いることも
可能であるが、基板スペースやコストの問題から、実際
に使用することは難しい。このために、ライトサイクル
ではライトバッファが用いられ、処理速度の改善に寄与
している。しかし、リードサイクルの短縮には有効な手
段がなく、処理速度向上のネックになっている。
【0007】また、データは連続領域にまたがって利用
されることが多い。このような場合に、DRAMにはバ
ーストモードやページモードでの転送が用意されている
が、これらの転送方法はデータをブロックで扱うため、
1回1回の個別の連続領域の読み出しには対応していな
い。更に、これらの転送方法は高速ではあるが、その転
送中には他の処理ができないため、利用の確定していな
いデータまでも一括して転送するのは不合理である。
【0008】本発明は、このような実情に鑑みてなされ
たもので、高価な高速メモリデバイスを使用することな
く、低速メモリの高速リードアクセスを可能とし、ま
た、I/Oデバイス等の低速デバイスのリードアクセス
の高速化にはより、効果的で、システム全体の処理速度
が大きく向上するようにしたバッファ回路を提供するこ
とを目的としている。
【0009】
【課題を解決するための手段】本発明は、上記課題を解
決するために、(1)低速なI/Oデバイスやメモリを
アクセスするシステムにおいて、データの先読みを行う
ための先読み制御回路と、データのアドレスを含む先読
みコマンドの書き込みとデータの読み出しを行う先読み
専用ポートと、先読みデータを格納するための先読み専
用バッファとを備え、バスマスタへのデータ転送時に、
低速デバイスではなく、前記先読み専用ポートをリード
することによって、先読み専用バッファから必要とする
データを読み出す機能を有し、先読み専用ポートへの先
読み命令の書き込みと、先読み専用ポートからのデータ
の読み出しを適切なタイミングで実行することによっ
て、リードアクセスのアクセスタイムの短縮を可能にす
ること、更には、(2)前記先読み制御回路にデータの
連続読み出し機能を追加することによって、先読み専用
バッファに格納されているデータの読み出し後に、該デ
ータに連続する領域に格納されたデータを、連続して先
読み専用バッファに上書きする機能を有し、リードアク
セスに於ける処理時間の更なる短縮を可能にすること、
更には、(3)前記(2)において、前記連続先読みの
回数別に複数の先読み専用ポートを設けることによっ
て、先読み専用バッファに格納されているデータの読み
出し後に、該データに連続する領域に格納されたデータ
を、使用された先読み専用ポート毎に決められた回数に
達するまで、先読み専用バッファに上書きする機能を有
し、リードアクセスにおける処理時間の更なる短縮を可
能にすること、(4)前記(2)において、前記先読み
専用ポートに先読みの転送条件を定義するビットを追加
することによって、先読み専用バッファに格納されてい
るデータの読み出し後に、該データに連続する領域に格
納されたデータを、転送条件を定義したビットに即して
先読み専用バッファに上書きする機能を有し、リードア
クセスにおける処理時間の更なる短縮を可能にするこ
と、(5)前記(2)〜(4)のいずれかにおいて、前
記先読み専用バッフアを多段構成とし、連続領域に格納
されたデータを高速に連続して専用バッファに取り込む
機能を有し、リードアクセスにおける処理時間の更なる
短縮を可能とすることを特徴としたものである。
【0010】
【作用】前記構成を有する本発明のバッファ回路におい
て、 (1)先読み制御回路は、必要とするデータのアドレス
を含むコマンドが専用ポートに書き込まれると、直ちに
専用バッファにデータを取り込む。この後、バスマスタ
は他の処理を実行し、データが必要になった時点で先読
み専用ポートに対してリード命令を実行する。先読み制
御回路はこのリード命令を受け取ると、先読みデータ専
用バッファからデータをバスマスタに渡す。このため、
低速なデバイスからのリードに際し、ウェートが挿入さ
れて処理を中断することがなくなり、処理速度の向上が
可能となる。
【0011】(2)また、先読み制御回路にデータの連
続読み出し機能を追加することによって、専用バッファ
に格納されているデータの読み出し終了を確認した後
に、このデータに連続する領域に格納されたデータを、
自動的に専用バッファに上書きすることが可能となる。
これにより、利用頻度の高い連続領域にまたがったデー
タのリードサイクルに於ける処理速度が向上する。 (3)さらに、先読み専用ポートを複数個設け、それぞ
れのポート毎に連続読み出しの回数を設定しておくこと
によって、先読み専用バッファに格納されているデータ
の読み出し終了を確認した後に、このデータに連続する
領域に格納されたデータを、使用されたポート毎に設定
された回数に達するまで、自動的に先読み専用バッファ
に上書きすることが可能となる。これにより、処理速度
の更なる向上が見込まれる。
【0012】(4)一方、複数の先読み専用ポートを設
ける代わりに、先読み専用ポートに先読み転送条件を定
義したビットを追加することによって、先読み専用バッ
ファに格納されているデータの読み出し終了を確認した
後に、このデータに連続する領域に格納されたデータ
を、規定した通りの、最適な方法で先読み専用バッファ
に上書きすることが可能となる。前記(3)の回路に比
べ、データバスとアドレスバスのバス幅によっては、先
読み専用ポートへの書き込みに2回のライトサイクルを
必要とする場合もあるが、その分多くの制御が可能であ
り、先読み制御の有効活用ができる。 (5)更に、専用バッファを多段にし、データの一括転
送を可能にすることによって、バスの転送効率を高め、
処理速度の向上が図れる。
【0013】
【実施例】実施例について、図面を参照して以下に説明
する。図1及び図2は、本発明によるバッファ回路の一
実施例を説明するための構成図で、図2は、図1におけ
る先読み制御回路の詳細図である。図中、1はCPU
(中央処理装置)、2はメモリコントローラ、2aは先
読み制御回路、2bはトランシーバ、2cは先読み専用
バッファ、2dは先読み専用ポート、2cはレジスタ、
3は高速メモリ(メインメモリ)、4は低速メモリであ
る。
【0014】データを先読みするための制御回路2a
と、先読みされたデータを保存するための先読み専用バ
ッファ2cと、先読み制御回路2aとの命令やデータの
入出力に用いられる先読み専用ポート2dを設ける。ま
た、CPU1の処理は、「前処理」「データリード」
「後処理」「データライト」の4つのモードから成るも
のである。以下に、低速メモリ4からデータをCPU1
に取り込み、処理を施した後に高速メモリ3にデータを
書き込む場合を示す。
【0015】「前処理」モードを開始する以前に、必要
とするデータのアドレスからなるコマンドを「先読みコ
マンドの書き込み」モードで、メモリコントローラ2の
内部の先読み制御回路2aに付随する先読み専用ポート
2dに書き込む。なお、図3(a),(b)は、先読み
専用ポートの構造(実施例1)を示す図で、図3(a)
はポート、ライト時、図3(b)はポート・リード時を
各々示している。「先読みコマンドの書き込み」が先読
み専用ポート2dに書き込まれると、先読み制御回路2
aはコマンド内に書かれたアドレスに該当する低速メモ
リ4から、先読み専用バッファ2cにデータを取り込
む。この動作は、メモリコントローラ2と低速メモリ4
間の専用データバスのみを使用するので、低速メモリ4
から先読み専用バッファ2cへのデータ転送が実行中で
あっても、この専用バスを使用しない他の動作には影響
がない。
【0016】したがって、CPU1は、先読み専用ポー
ト2dへの「先読みコマンドの書き込み」が終了すると
直ぐに「前処理」を開始する。「データリード」モード
が開始されると、CPU1は先読み専用ポート2dに対
して、リード命令を実行する。これを受けて先読み制御
回路2aは、先読みデータ専用バッファ2cからデータ
をCPU1に渡す。このためCPU1は低速メモリ4を
アクセスすることなく、直ちにデータを受け取り「デー
タリード」モードを終了することができる。
【0017】ここで、以下の〜のように仮定する。 CPUの1サイクルは、動作周波数33.3MHzで2ク
ロック(60nsec)である。 低速メモリのアクセスには400nsecかかる。 先読み制御回路と先読み専用バッファにはノンウェー
トでアクセスできる。 高速メモリへの書き込みは、CPUの1サイクル(6
0nsec)で実行できる。 このように仮定すると、図16に示すフローチャートに
従って動作する従来のバッファ回路を用いた処理では、
1回のループにかかる時間は、以下の式(1)のように
なる。 X + 400 + Y + 60= 460 + X + Y …(1) 前処理 リード 後処理 ライト
【0018】図4及び図5は、本発明によるバッファ回
路(実施例1)の動作を説明するためのフローチャート
である。以下、各ステップ(S)に従って順に説明す
る。まず、CPU1において先読み命令の書き込み(ポ
ート・ライト)を行ってから(S1)、前処理を行い
(S2)、先読み専用ポート2dへのリード命令の実行
を行う(S3)。メモリコントローラ2においては前記
ステップS1の処理ののち、メモリアドレスとコントロ
ール信号の作成を行い(S4)、低速メモリ4からのデ
ータの読み出しを行う(S5)。次に、メモリコントロ
ーラ2において先読み専用バッファ2cへの読み込みを
行う(S6)。次に、メモリコントローラ2において、
前記ステップS3とS6の処理ののち、低速メモリ4か
ら先読み専用バッファ2cへの読み込みが終了したかど
うかを判断する(S7)。
【0019】次に、ステップS7において、先読み専用
バッファ2cへの読み込みが終了していれば、CPU1
においてデータの読み込みを行い(S8)、後処理を行
って(S9)、ライト命令の実行とデータの書き出しを
行う(S10)。次に、メモリコントローラ2において
メモリアドレスとコントロール信号の作成を行い(S1
1)、高速メモリ3へのデータの書き込みを行う(S1
2)。次に、CPU1において終了判定を行い(S1
3)、終了していなければ、前記ステップS1に戻り、
終了していれば処理を終了する。このように、図4及び
図5で示す実施例1に基づいたバッファ回路を用いた処
理では、以下の式(2)のようになる。
【0020】 60 + X +α+60+ Y + 60 コマンド書き込み 前処理 リード 後処理 ライト =180+X+Y+α (但し、α=400−Xnsec) …(2) ここで、αは「前処理」モードの終了から先読み専用バ
ッファ2cへのデータ転送終了までのウェイトタイム
で、低速メモリ4から先読み専用バッファ2cへのデー
タ転送に要する時間から、「前処理」モードに要する時
間を引いた時間である。
【0021】前処理時間Xが十分に長い場合、低速メモ
リ4から先読み専用バッファ2cへのデータ転送時間
は、前処理時間Xに吸収され、CPU1から見た場合に
は(α=)0nsecとなる。したがって、1回のループに
かかる時間は、以下の式(3)のようになる。 60 + X + 60 + Y + 60=180+X+Y コマンド書き込み 前処理 リード 後処理 ライト (但し、X≧400nsec) …(3) このように、最適動作が可能な場合には、低速メモリ4
のアクセスに要する時間に関係なく、「先読みコマンド
の書き込み」のための1CPUサイクル(60nsec)
と、先読み専用バッファ2cからの読み出しのための1
CPUサイクル(60nsec)の合計2CPUサイクル
(120nsec)で低速メモリ4からのデータリードが可
能となる。
【0022】図6及び図7は、本発明によるバッファ回
路(実施例2)の動作を説明するためのフローチャート
である。以下、各ステップ(S)に従って順に説明す
る。まず、CPU1において先読み命令の書き込み(ポ
ート・ライト)を行ってから(S21)、前処理を行い
(S22)、先読み専用ポート2dへのリード命令の実
行を行う(S23)。メモリコントローラ2においては
前記ステップS21の処理のあと、メモリアドレスとコ
ントロール信号の作成を行い(S24)、低速メモリ4
からのデータの読み出しを行って(S25)、次に、メ
モリコントローラ2において先読み専用バッファへの読
み込みを行う(S26)。次に、メモリコントローラ2
において、前記ステップS23とS26の処理ののち、
低速メモリ4から先読み専用バッファ2cへの読み込み
が終了したかどうかを判断する(S27)。
【0023】次に、ステップS27において、低速メモ
リからバッファへの読み込みが終了していれば、CPU
1においてデータの読み込みを行い(S28)、後処理
を行って(S29)、ライト命令の実行とデータの書き
出しを行う(S30)。次に、メモリコントローラ2に
おいてメモリアドレスとコントロール信号の作成を行っ
て(S31)、高速メモリ3へのデータの書き込みを行
って(S32)、CPU1において終了判定を行い(S
33)、終了していなければ、前記ステップS22に戻
り、終了していれば、処理を終了する。
【0024】この場合、先読み専用バッファ2cに格納
されているデータの読み出し終了が確認された後、この
データに連続する領域に格納されたデータを、先読み専
用バッファ2cに上書きする。メモリコントローラ2と
低速メモリ4とのデータバスは、他のデータバスと独立
している。したがって、低速メモリ4から先読み専用バ
ッファ2cへの2度目のリードサイクルは、CPU1側
のデータバスの動作に関係無く、1回目の先読みされた
データがCPU1に転送され、先読み専用バッファ2c
が空き状態になると直ぐに開始される。またこの際、先
読みは自動的に再開されるので、2回目以降のループで
は、「先読みコマンドの書き込み」モードは不用とな
る。したがって、処理速度は、以下の式(4),(5)
のようになる。
【0025】 1回目のループ 60 + X + α+60 + Y + 60 コマンド書き込み 前処理 リード 後処理 ライト =180+X+Y+α …(4) (但し、α=400−Xnsec) 2回目以降のループ X + β+60 + Y + 60 = 120+X+Y+β 前処理 リード 後処理 ライト (但し、β=400−X−Y−60nsec) …(5) ここで、βは「前処理」モードの終了から先読み専用バ
ッファ2cへのデータ転送終了までのウェイトタイム
で、前回の「データリード」モードの終了から今回の
「データリード」モードの開始までに要する時間と、低
速メモリ4からのデータ転送に要する時間の差である。
【0026】前処理時間Xが十分に長い場合、1回目の
低速メモリ4から先読み専用バッファ2cへのデータ転
送に要する時間は、前処理時間Xに吸収され、CPU1
から見た場合には(α=)0nsecとなる。また、先読み
専用バッファ2cからCPU1へのリードサイクル終了
後、次のリードサイクルが開始されるまでの時間(X+
Y+60)が十分に長ければ、これもCPU1から見た
場合には(β=)0nsecとなる。したがって、1ループ
にかかる時間は、以下の式(6),(7)のようにな
る。
【0027】 1回目のループ 60 + X + 60 + Y + 60=180+X+Y コマンド書き込み 前処理 リード 後処理 ライト (但し、X≧400nsec) …(6) 2回目以降のループ X + 60 + Y + 60=120+X+Y 前処理 リード 後処理 ライト (但し、X+Y+60≧400nsec) …(7) 式(3)と式(7)の比較から、図6及び図7のフロー
チャートに従って動作するバッファ回路が図4及び図5
のバッファより高速であり、最適状態になる条件も緩や
かであることが判る。
【0028】図8及び図9は、本発明にはバッファ回路
(実施例3,4)の動作を説明するためのフローチャー
トで、先読み転送回数別に複数の先読み専用ポートを設
け、ポート毎に設定された回数の先読みを行う場合(実
施例3)のフローチャートについて、以下、各ステップ
に従って順に説明する。
【0029】まず、CPU1において、先読み命令の書
き込み(ポート・ライト)を行ってから(S41)、前
処理を行って(S42)、先読み専用ポート2dへのリ
ード命令の実行を行う(S43)。次に、メモリコント
ローラ2においては前記ステップ41の処理のあと、初
期設定(先読み指定回数Nの設定、先読み実施回数N=
0)を行い(S44)、メモリアドレスとコントロール
信号の作成を行って(S45)、低速メモリ4からのデ
ータの読み出しを行う(S46)。次に、メモリコント
ローラ2において先読み専用バッファへの読み込みを行
う(S47)。次に、メモリコントロール2においてス
テップS43と47の処理ののち、低速メモリ4から先
読み専用バッファ2cへの読み込みが終了したかどうか
を判断する(S48)。
【0030】前記ステップS48において、低速メモリ
からバッファへの読み込みが終了していれば、CPU1
においてデータの読み込みを行い(S49)、次に、メ
モリコントローラ2においてM=M+1とし(S5
0)、M≧Nかどうかを判断し(S51)、M≧Nでな
ければ、前記ステップS45へ戻り、M≧Nであれば、
先読みの終了となる。次に、CPU1においてステップ
49の処理のあとに、後処理を行い(S52)、ライト
命令の実行とデータの書き出しを行う(S53)。次
に、メモリコントローラ2においてメモリアドレスとコ
ントロール信号の作成を行って(S54)、高速メモリ
3へのデータの書き込みを行う(S55)。次に、CP
U1において終了判定を行い(S56)、終了していな
ければ、前記ステップS42に戻り、終了していれば、
処理を終了する。
【0031】図10は、連続先読みの回数別に複数の先
読み専用ポートを設けた場合のポートとレジスタの関係
(データ、アドレスバス幅が32ビットの場合の例)を
示す図で、どの先読み専用ポートを利用しても、書き込
みされるレジスタ及び読み出されるバッファは同じであ
る。
【0032】ポートライト時:「先読みコマンドの書き
込み」時には、先読み転送を行う回数に応じて、先読み
専用ポートを使い分ける。図10の例では、それぞれの
転送回数に対応した8種類のポートを設ける。各ポート
は、それぞれのアドレスに割り振られている。各ポート
へ書き込まれた先読みコマンドは、ただ一つのレジスタ
に記憶される。また同時に、どのポートがアクセスされ
たかも記憶され、それによって、先読み制御回路は先読
み転送回数を決定する。
【0033】ポートリード時:先読みされたデータを読
み出す際には、どのポートをリードアクセスしても、た
だ一つの先読み専用バッファから読み出される。このよ
うにポートを複数設け、先読み転送の要求回数に合わせ
て、先読み専用ポートを選択することによって、不必要
な先読みを行うことが少なくなり、他の命令によって発
生する低速デバイスのアクセスへの影響を軽減するとと
もに、不必要なアクセスによって発生する電力の浪費を
抑えることができる。なお、処理速度の計算式は、前記
式(4)〜(7)と同じである。
【0034】一方、上記実施例3のバッファ回路では、
目的別に先読み専用ポートを複数個設ける必要があった
が、代わりに先読み専用ポートに先読み転送条件を定義
したビットを追加することによって、前のデータに連続
する領域に格納されたデータを、定義した通りの最適な
方法で先読み専用バッファに上書きすることが可能とな
る。この場合のフローチャート(実施例4)は、基本的
に図8及び図9(実施例3)と同じになる。今、転送条
件を定義するビットの例として、先読み回数定義ビット
と、データ幅の定義ビット、アドレスのインクリメント
/デクリメントの定義ビットを追加した場合を考える。
図11(a),(b)にこの場合の先読み専用ポートの
構造を示す。
【0035】低速メモリ4から先読み専用バッファ2c
へのデータ転送は、先読み回数定義ビットで定義された
回数に達するまで、データ幅の定義ビットで定義された
データ幅で、アドレスのインクリメント/デクリメント
の定義ビットの定義に従って、データが連続するように
アドレスを順次インクリメント/デクリメントして、先
読み専用バッファ2cに上書きされる。データバスとア
ドレスバスのバス幅をそれぞれ32ビットとすれば、前
記実施例3の回路に比べ、先読み専用ポート2dへの先
読みコマンドの書き込みに要する時間が増えるが、その
分多くの制御が可能であり、先読み制御の有効活用がで
きる。
【0036】なお、処理に要する時間は、以下のように
計算できる。前述のように、メモリコントローラ2と低
速メモリ4との間のデータバスは、他のデータバスと独
立している。したがって、低速メモリ4から先読み専用
バッファ2cへの2度目のリードサイクルは、CPU1
側のデータバスの動作に関係無く、1回目の先読みされ
たデータがCPU1に転送され、先読み専用バッファ2
cが空き状態になると直ぐに開始される。またこの際、
先読みは自動的に再開されるので、2回目以降のループ
では、「先読みコマンドの書き込み」モードは不用とな
る。ここで、1回目の先読みループでは、先読み専用ポ
ート2dへの「先読みコマンドの書き込み」で、2度の
ライトサイクルが必要になる。しかし、2回目以降のル
ープでは、「先読みコマンドの書き込み」モードは不用
となり、このロスタイムによる影響は少ない。したがっ
て、処理速度は、以下の式(8),(9)のようにな
る。
【0037】 1回目のループ 60×2 + X +α+60+ Y + 60 コマンド書き込み 前処理 リード 後処理 ライト =240+X+Y+α (但し、α=400−Xnsec) …(8) 2回目以降のループ X +β+60+ Y + 60=120+X+Y+β 前処理 リード 後処理 ライト (但し、β=400−X−Y−60nsec) …(9) ここで、βは「前処理」モードの終了から先読み専用バ
ッファ2cへのデータ転送終了までのウェイトタイム
で、前回の「データリード」モードの終了から今回の
「データリード」モードの開始までに要する時間と、低
速メモリ4からのデータ転送に要する時間の差である。
【0038】前処理時間Xが十分に長い場合、1回目の
低速メモリ4から先読み専用バッファ2cへのデータ転
送に要する時間は、前処理時間Xに吸収され、CPU1
から見た場合には(α=)0nsecとなる。また、先読み
専用バッファ2cからCPU1へのリードサイクル終了
後、次のリードサイクルが開始されるまでの時間(X+
Y+60)が十分に長ければ、これもCPU1から見た
場合には(β=)0nsecとなる。したがって、1ループ
にかかる時間は、以下の式(10),(11)のように
なる。
【0039】 1回目のループ 120 + X + 60 + Y + 60 = 180+X+Y コマンド書き込み 前処理 リード 後処理 ライト (但し、X≧400nsec) …(10) 2回目以降のループ X + 60 + Y + 60 = 120+X+Y 前処理 リード 後処理 ライト (但し、X+Y+60≧400nsec) …(11)
【0040】式(11)と式(7)の比較から、このバ
ッファ回路(実施例4)を用いた場合の処理時間が、2
回目以降のループでは、前記実施例3のバッファ回路と
同じであることが判る。したがって、前述した通り、
「先読みコマンドの書き込み」モードに要する時間が増
えたことによる影響は、2回目以降のループでは現われ
ない。しかし、このバッファ回路(実施例4)を用いて
必要とする転送に最適な条件設定を行うことは、前記実
施例3のバッファ回路よりも更に、不必要な先読みを行
うことがなくなり、他の命令によって発生する低速デバ
イスのアクセスへの影響を軽減するとともに、不必要な
アクセスによって発生する電力の浪費を抑えることを可
能にする。また、このバッファ回路(実施例4)では、
より複雑な転送が可能となり、前記実施例3のバッファ
回路よりも先読み転送の応用範囲が広がる。
【0041】この実施例では、データバス、アドレスバ
ス共に32ビットの場合を示したが、データバスが、ア
ドレスバスよりも広い場合には、1CPUサイクルで
「先読みコマンドの書き込み」モードを終了することも
可能となる。この場合には、前記実施例3のバッファ回
路を用いた場合との対比が容易になり、このバッファ回
路(実施例4)の有用性がより明確になる。
【0042】図12〜図14は、本発明によるバッファ
回路(実施例5)の動作を説明するためのフローチャー
トで、先読み専用バッファを多段構成とした場合のフロ
ーチャートである。前記実施例2〜4において、先読み
専用バッファを多段構成とすれば、連続領域に格納され
たデータの読み出しに際して更に高速化が図れる。以
下、各ステップ(S)に従って順に説明する。
【0043】まず、CPU1において、先読み命令の書
き込み(ポート・ライト)を行ってから(S61)、前
処理を行って(S62)、先読み専用ポート2dへのリ
ード命令の実行を行う(S63)。次に、メモリコント
ローラ21においては、前記ステップS61の処理の
後、初期設定(先読み指定回数N)の設定、先読み実施
回路(M=0)を行い(S64)、使用する先読み専用
バッファ2cの選択を行う(S65)、次に、空きバッ
ファか否かの確認を行い(S66)、空きバッファであ
れば、メモリアドレスとコントロール信号の作成を行っ
て(S67)、低速メモリ4からのデータの読み出しを
行う(S68)。次に、メモリコントローラ2におい
て、先読み専用バッファへの読み込みを行い(S6
9)、M=M+1とし(S70)、M≧Nかどうかを判
断する(S71)、M≧Nでなければ、前記ステップS
65へ戻り、M≧Nであれば、先読みの終了となる。
【0044】前記ステップS63の処理のあとに、メモ
リコントローラ2において、使用する先読み専用バッフ
ァ2cの選択を行い(S72)、有効データの有無を調
べる(S73)。有効データがあれば、次に、CPU1
においてデータの読み込みを行ってから(S74)、後
処理を行って(S75)、ライト命令の実行とデータの
書き出しを行う(S76)。次に、メモリコントローラ
2において、メモリアドレスとコントロール信号の作成
を行って(S77)、高速メモリ3へのデータの書き込
みを行い(S78)、次に、CPU1において終了判定
を行う(S79)。終了でなければ、前記ステップS6
2へ戻り、終了であれば、処理を終了する。
【0045】前述したように、メモリコントローラ2と
低速メモリ4のデータバスは、他のデータバスと独立し
ている。そこで、先読み専用バッファ2cを多段とし、
低速メモリ4から先読み専用バッファ2cのデータ転送
と、該先読み専用バッファ2cからCPU1へのデータ
転送が同時に行えるようにバッファ回路を構成すれば、
低速メモリ4から先読み専用バッファ2cへの2度目の
リードサイクルは、CPU1側のデータバスの動作に関
係無く、1回目の低速メモリ4から先読み専用バッファ
2cへのリードサイクルが終了すると直ぐに開始され
る。これにより、CPU1のリードサイクルに要する時
間は更に短縮できる。
【0046】図12〜図14のフローチャートにおい
て、先読み制御回路2aは「先読みコマンドの書き込
み」を受けると、該先読み制御回路2aを初期化し、最
初の先読み専用バッファ2cへ、低速メモリ4からデー
タを読み込む。この読み込みが終了すると、先読み回数
を確認して、指定回数に達していなければ、次のバッフ
ァへの読み込みを始める。バッファへの読み込みに際し
ては、CPU1へ転送の済んでいないデータが存在しな
い、空き状態のバッファであることを確認する。もし、
空き状態でない場合には、空き状態になるまで読み込み
を待つ。先読み継続の条件は、指定回数Nに対する実施
回数Mの確認の他は、バッファが空き状態か否かの確認
だけである。
【0047】したがって、次に書き込みを行うバッファ
が空き状態である限り、先読みは停滞すること無く、連
続して指定回数まで実施される。つまり、次に書き込み
を行うバッファが空き状態である限り、低速メモリ4か
ら先読み専用バッファ2cへのデータ転送は、該先読み
専用バッファ2cからCPU1へのデータ転送に独立し
て動作する。先読み専用バッファ2cからCPU1への
データ転送においては、先読み制御回路2aは使用する
バッファを選択した後、そのバッファ内に有効なデータ
が存在するか否かを確認し、存在が確認されたならCP
U1へデータを転送する。ただし、このCPU1へのデ
ータ転送中も、低速メモリ4からバッファへのデータ転
送は続いているので、より効率の良いデータ転送が行え
る。ここで先読み制御回路2aは、データの転送の制御
だけでなく、使用するバッファの選択と、バッファ内の
有効データの有無の管理も行う必要がある。以上の結
果、処理速度は、以下の式(12),(13)の様にな
る。
【0048】 1回目のループ 60×2 + X + α+60 + Y + 60 コマンド書き込み 前処理 リード 後処理 ライト = 240+X+Y+α (但し、α=400−Xnsec) …(12) 2回目以降のループ X + γ+60 + Y + 60 = 120+X+Y+γ 前処理 リード 後処理 ライト (但し、γ=400−X−Y−120nsec) …(13) ここで、γは「前処理」モードの終了から先読み専用バ
ッファ2cへのデータ転送終了までのウェイトタイム
で、前回分の低速メモリ4から先読み専用バッファ2c
へのデータ転送の終了から、今回の「データリード」モ
ードの開始までに要する時間と、低速メモリからのデー
タ転送に要する時間の差である。
【0049】前処理時間Xが十分に長い場合、1回目の
低速メモリ4から先読み専用バッファ2cへのデータ転
送に要する時間は、前処理時間Xに吸収され、CPU1
から見た場合には(α=)0nsecとなる。また、低速メ
モリ4から先読み専用バッファ2cへのリードサイクル
終了後、次のリードサイクルが開始されるまでの時間
(X+Y+120)が十分に長ければ、これもCPU1
から見た場合には(γ=)0nsecとなる。したがって、
1ループにかかる時間は、以下の式(14),(15)
のようになる。
【0050】 1回目のループ 120 + X + 60 + Y + 60= 240+X+Y コマンド書き込み 前処理 リード 後処理 ライト (但し、X≧400nsec) …(14) 2回目以降のループ X + 60 + Y + 60 = 120+X+Y 前処理 リード 後処理 ライト (但し、X+Y+120≧400nsec) …(15) 式(11)と式(15)に付随の条件式の比較から、図
12〜図14のフローチャートに従って動作するバッフ
ァ回路(実施例5)は、図8及び図9のフローチャート
に従って動作するバッファ回路(実施例4)より、さら
に最適状態になる条件(β≦0またはγ≦0)が緩やか
であり、先読み動作の有効性が現れ易いことがわかる。
【0051】
【発明の効果】以上の説明から明らかなように、本発明
によると、高価な高速メモリデバイスを使用することな
く、低速メモリの高速リードアクセスが可能になる。ま
た、本本発明はI/Oデバイス等の低速デバイスのリー
ドアクセスの高速化にはより効果的で、システム全体の
処理速度が大きく向上する。さらに、請求項4に記載し
た方法を用いることによって、先読みのデータ幅,転送
回数,転送アドレスのインクリメント/デクリメントの
選択,現在の転送データと次の転送データとの間隔等を
自由に設定することが可能となり、また、これらの組み
合わせによって画像処理等で多用される特殊転送にも対
応した高速リードアクセスが可能となり、画面切替が速
くなる。
【図面の簡単な説明】
【図1】本発明によるバッファ回路の一実施例を説明す
るためのブロック図である。
【図2】本発明における先読み専用回路部のブロック図
である。
【図3】本発明における先読み専用ポートの構造を示す
図である。
【図4】実施例1に基づくバッファ回路のフローチャー
ト(その1)である。
【図5】実施例1に基づくバッファ回路のフローチャー
ト(その2)である。
【図6】実施例2に基づくバッファ回路のフローチャー
ト(その1)である。
【図7】実施例2に基づくバッファ回路のフローチャー
ト(その2)である。
【図8】実施例3,4に基づくバッファ回路のフローチ
ャート(その1)である。
【図9】実施例3,4に基づくバッファ回路のフローチ
ャート(その2)である。
【図10】本発明における複数の先読み専用ポートを設
けた場合のポートとレジスタの関係を示す図である。
【図11】本発明における先読み専用ポートの構造を示
す図である。
【図12】実施例5に基づくバッファ回路のフローチャ
ート(その1)である。
【図13】実施例5に基づくバッファ回路のフローチャ
ート(その2)である。
【図14】実施例5に基づくバッファ回路のフローチャ
ート(その3)である。
【図15】従来のバッファ回路のブロック図である。
【図16】従来のバッファ回路の動作を説明するための
フローチャートである。
【符号の説明】
1…CPU(中央処理装置)、2…メモリコントロー
ラ、2a…先読み制御回路、2b…トランシーバ、2c
…バッファ、2d…ポート、2c…レジスタ、3…高速
メモリ(メインメモリ)、4…低速メモリ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 低速なI/Oデバイスやメモリをアクセ
    スするシステムにおいて、データの先読みを行うための
    先読み制御回路と、データのアドレスを含む先読みコマ
    ンドの書き込みとデータの読み出しを行う先読み専用ポ
    ートと、先読みデータを格納するための先読み専用バッ
    ファとを備え、バスマスタへのデータ転送時に、低速デ
    バイスではなく、前記先読み専用ポートをリードするこ
    とによって、先読み専用バッファから必要とするデータ
    を読み出す機能を有し、先読み専用ポートへの先読み命
    令の書き込みと、先読み専用ポートからのデータの読み
    出しを適切なタイミングで実行することによって、リー
    ドアクセスのアクセスタイムの短縮を可能にすることを
    特徴とするバッファ回路。
  2. 【請求項2】 前記先読み制御回路にデータの連続読み
    出し機能を追加することによって、先読み専用バッファ
    に格納されているデータの読み出し後に、該データに連
    続する領域に格納されたデータを、連続して先読み専用
    バッファに上書きする機能を有し、リードアクセスに於
    ける処理時間の更なる短縮を可能にすることを特徴とす
    る請求項1記載のバッファ回路。
  3. 【請求項3】 前記連続先読みの回数別に複数の先読み
    専用ポートを設けることによって、先読み専用バッファ
    に格納されているデータの読み出し後に、該データに連
    続する領域に格納されたデータを、使用された先読み専
    用ポート毎に決められた回数に達するまで、先読み専用
    バッファに上書きする機能を有し、リードアクセスにお
    ける処理時間の更なる短縮を可能にすることを特徴とす
    る請求項2記載のバッファ回路。
  4. 【請求項4】 前記先読み専用ポートに先読みの転送条
    件を定義するビットを追加することによって、先読み専
    用バッファに格納されているデータの読み出し後に、該
    データに連続する領域に格納されたデータを、転送条件
    を定義したビットに即して先読み専用バッファに上書き
    する機能を有し、リードアクセスにおける処理時間の更
    なる短縮を可能にすることを特徴とする請求項2記載の
    バッファ回路。
  5. 【請求項5】 前記先読み専用バッフアを多段構成と
    し、連続領域に格納されたデータを高速に連続して専用
    バッファに取り込む機能を有し、リードアクセスにおけ
    る処理時間の更なる短縮を可能とすることを特徴とする
    請求項2,3又は4記載のバッファ回路。
JP23468394A 1994-09-29 1994-09-29 バッファ回路 Pending JPH0895852A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23468394A JPH0895852A (ja) 1994-09-29 1994-09-29 バッファ回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23468394A JPH0895852A (ja) 1994-09-29 1994-09-29 バッファ回路

Publications (1)

Publication Number Publication Date
JPH0895852A true JPH0895852A (ja) 1996-04-12

Family

ID=16974812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23468394A Pending JPH0895852A (ja) 1994-09-29 1994-09-29 バッファ回路

Country Status (1)

Country Link
JP (1) JPH0895852A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199150B1 (en) 1997-07-15 2001-03-06 Matsushita Electric Industrial Co., Ltd. Data memory apparatus forming memory map having areas with different access speeds
US7552311B2 (en) 2003-04-14 2009-06-23 Renesas Technology Corp. Memory device with preread data management
JP2010191983A (ja) * 2010-04-12 2010-09-02 Renesas Electronics Corp 記憶装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199150B1 (en) 1997-07-15 2001-03-06 Matsushita Electric Industrial Co., Ltd. Data memory apparatus forming memory map having areas with different access speeds
US7552311B2 (en) 2003-04-14 2009-06-23 Renesas Technology Corp. Memory device with preread data management
JP2010191983A (ja) * 2010-04-12 2010-09-02 Renesas Electronics Corp 記憶装置

Similar Documents

Publication Publication Date Title
EP1161729B1 (en) High-speed processor system, method of using the same, and recording medium
JPH05205477A (ja) 時間重複メモリ・アクセスを有するランダムにアクセス可能なメモリ
JP2006079523A (ja) キャッシュ・メモリ・システムとその制御方法
JPH0895852A (ja) バッファ回路
JP2755039B2 (ja) レジスタ・アクセス制御方式
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
JP2554761B2 (ja) データ転送パス制御方式
JP2005141682A (ja) 高速メモリアクセス制御装置
JP2003036238A (ja) 情報処理システムのioアクセス制御方法およびプログラム
JP3039391B2 (ja) メモリシステム
KR940001590B1 (ko) 블럭읽기 및 쓰기에서의 메모리 엑세스 시간 단축장치 및 방법
JP2976909B2 (ja) キャッシュ・データの掃き出し制御方法
EP0398191A2 (en) Quadruple word, multiplexed, paged mode and cache memory
JPH0789341B2 (ja) データ処理装置
JP2006331008A (ja) メモリインタフェース
JPH09319657A (ja) 命令読み込み用バッファを備えたプロセッサ
JPH11249961A (ja) データ転送装置およびデータ転送装置のデータ転送制御方法
JP2861053B2 (ja) 画像処理装置
JPH07210454A (ja) 高速化処理装置
JP2768373B2 (ja) 情報処理装置
JP3070454B2 (ja) メモリアクセス制御回路
JPS61264455A (ja) 主記憶一致制御方式
JP2964504B2 (ja) 文書処理装置
JP2845746B2 (ja) マイクロプログラム制御装置
JPH06161868A (ja) メモリ制御装置