JPH06348593A - データ転送制御装置 - Google Patents

データ転送制御装置

Info

Publication number
JPH06348593A
JPH06348593A JP5133614A JP13361493A JPH06348593A JP H06348593 A JPH06348593 A JP H06348593A JP 5133614 A JP5133614 A JP 5133614A JP 13361493 A JP13361493 A JP 13361493A JP H06348593 A JPH06348593 A JP H06348593A
Authority
JP
Japan
Prior art keywords
data
address
read
cpu
block
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
JP5133614A
Other languages
English (en)
Inventor
Takumi Asaina
巧 朝夷名
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.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP5133614A priority Critical patent/JPH06348593A/ja
Publication of JPH06348593A publication Critical patent/JPH06348593A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【構成】CPU21は、アドレス空間をキャッシュ領域
と非キャッシュ領域とに区分して管理している。キャッ
シュ領域は、CPU21のリードアクセスに応答してD
RAM25内のデータがキャッシュメモリ28にブロッ
ク転送されるアドレス領域である。それ以外のアドレス
領域が非キャッシュ領域である。CPU21が非キャッ
シュ領域内のDRAM25やVRAM26のアドレスに
対するリードアクセスを行うと、アクセスされたアドレ
スの近傍の所定のデータブロックがリードデータバッフ
ァ61にブロック転送される。したがって、たとえば、
アドレスが連続している複数ワードのデータをリードす
る場合には、CPU21は、第1ワード目はデータRA
M25などから読み出さなければならないが、第2ワー
ド目以降についてはリードデータバッファ61から取得
できる。 【効果】非キャッシュ領域に対するリードアクセスを高
速化できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPU(中央処理装
置)、DRAM(ダイナミック・ランダム・アクセス・
メモリ)および周辺装置などから構成されるコンピュー
タにおけるCPUとDRAMとの間のデータ転送などに
適用されるデータ転送制御装置に関する。
【0002】
【従来の技術】図7は、従来から用いられているコンピ
ュータの典型的な構成を示すブロック図である。CPU
(中央処理装置)1は、簡単なタイミング調整回路(図
示せず。)を介して、メモリバス10に直結されてい
る。メモリバス10は、データを転送するためのライン
11、転送されるデータサイズを伝送させるためのライ
ン12、およびアドレスを伝送させるためのライン13
を有している。メモリバス10には、制御バス15が並
設されている。
【0003】メモリバス10および制御バス15には、
DRAMコントローラ2、IOコントローラ3、および
フレームバッファコントローラ4が接続されている。D
RAMコントローラ2は、DRAM5に対する書込およ
び読み出しを制御する。IOコントローラ3は、ハード
ディスク装置やフレキシブルディスク装置などのような
外部記憶装置に対するアクセスを制御する。さらに、フ
レームバッファコントローラ4は、図示しない表示装置
に表示させるべき画像データを記憶するためのVRAM
(ビデオRAM)6に対するアクセスを制御する。DR
AM5およびVRAM6は主記憶装置に相当する。
【0004】CPU1には、SRAM(スタティックR
AM)で構成されたキャッシュメモリ8が接続されてい
る。CPU1はメモリ管理機構を内蔵しており、このメ
モリ管理機構は、物理アドレスを、キャッシュアドレス
と非キャッシュアドレスとに分けて管理している。アド
レス空間においてキャッシュアドレスが割り当てられた
領域はキャッシュ領域と呼ばれ、非キャッシュアドレス
が割り当てられた領域は非キャッシュ領域と呼ばれる。
【0005】キャッシュ領域のリードアクセスでは、C
PU1は、まず、キャッシュメモリ8にアクセスする。
そして、キャッシュ8に必要なデータが無い場合にメモ
リバス10にリード要求を与える。このとき、DRAM
5の記憶データはCPU1にブロック転送される。CP
U1はブロック転送されたデータのうち必要なデータを
自身に取り込むとともに、ブロック転送されたデータの
全部をキャッシュメモリ8に書き込む。これ以後は、ブ
ロック転送されたデータに関しては、CPU1はキャッ
シュメモリ8にアクセスするだけで必要なデータを取得
できる。
【0006】キャッシュメモリ8はSRAMで構成され
ているため、メモリ容量はそれほど大きくとれないが、
DRAM5に比較してアクセス時間がはるかに短い。そ
のため、CPU1がデータを取り込む時間が短縮され、
動作速度が向上する。このように、DRAM5などで構
成した主記憶装置とSRAMで構成されたキャッシュメ
モリ8とからなる階層的なメモリを用いることで動作速
度を向上させることは、従来から一般的に行われてい
る。CPU1が実行するプログラムは、通常は、キャッ
シュアドレス上で動作することになる。
【0007】図8は、DRAM5からのデータの読出動
作を説明するたのタイムチャートである。CPU1が制
御バス15にリード信号を与えると、DRAMコントロ
ーラ2はRASクロックを生成する。このRASクロッ
クの立ち下がりでメモリバス40からの行アドレスがD
RAM5に取り込まれる。また、DRAMコントローラ
2は、RASクロックの立ち下がりの後のタイミングで
CASクロックを生成し、このCASクロックの立ち下
がりで列アドレスが取り込まれる。その結果、所望のメ
モリセルのデータがDRAM5の出力端子に現れ、この
データがメモリバス10からCPU1に与えられる。図
8から明らかなとおり、RASアクセス時間は、CAS
アクセス時間よりも長い。
【0008】一般に、RASクロックに基づいて取り込
まれる行アドレスはメモリバス40からのアドレスの上
位ビット部に対応しており、CASクロックに基づいて
取り込まれる列アドレスは下位ビット部に対応してい
る。連続したワードは、CASクロックに同期して入力
される列アドレスを変えるだけでアクセスすることがで
きる。すなわち、連続したワードで構成されたデータブ
ロックは、列アドレスを変えていくことによって、連続
的に読み出すことができる。なお、ワードとは、CPU
1が1回のアクセスで取り込むことができるデータの単
位である。
【0009】一方、メモリアクセス時間は、1ワードの
データをCPU1に転送するための1ワード転送時間よ
りも長い。したがって、連続した複数ワードを読み出す
ときには、1ワード毎のデータ転送よりもブロック転送
の方が有利である。すなわち、複数のワードをDRAM
5からCPU1に転送する際に、1ワード単位でデータ
の転送を行うと、下記第(1) 式の時間を要するのに対し
て、ブロック転送を行った場合の所要時間は下記第(2)
式で与えられ、ブロック転送の方が所要時間が短い。
【0010】 {(メモリアクセス時間)+(1ワード転送時間)}×(ワード数) ・・・・ (1) (メモリアクセス時間)+(1ワード転送時間)×(ワード数) ・・・・ (2) このようなことから、キャッシュメモリ8とDRAM5
との間におけるデータの転送は、ブロック単位で高速に
行われる。この転送の際に、CPU1は自分自身で利用
するワードを取り込む。一般に、CPU1がプログラム
を実行する際には、DRAM5内の記憶データがランダ
ムに利用されるのではなく、局所的な記憶領域のデータ
が利用されるという傾向がある。したがって、CPU1
がアクセスしたアドレスの近傍のデータをキャッシュメ
モリ8にブロック転送しておけば、CPU1がキャッシ
ュメモリ8にアクセスしたときのヒット率が高くなり、
データ処理効率が向上する。
【0011】一方、非キャッシュアドレスは、たとえ
ば、CPU1とIOコントローラ3との間のデータのや
り取りのために使用される。CPU1はIOコントロー
ラ3と直接的にデータのやり取りをするほか、IOコン
トローラ3から一旦DRAM5の所定の記憶領域を介し
てデータのやり取りを行う。この場合、DRAM5の一
部の記憶領域は非キャッシュ領域となる。IOコントロ
ーラ3は、ハードディスク装置やフレキシブルディスク
装置などの外部記憶装置に対するアクセスを制御する入
出力インタフェースとして機能し、ハードディスクやフ
レキシブルディスクとDRAM5との間でDMA(直接
メモリアクセス)転送を行う機能を有している。すなわ
ち、DRAM5と外部記憶装置との間のデータ転送は、
CPU1を介在させずに実行される。
【0012】たとえば、IOコントローラ3を介する外
部記憶装置からのデータがDRAM5のキャッシュ領域
にDMA転送されると、キャッシュメモリ8のデータと
DRAM5のデータとを一致させることができなくなる
おそれがある。このような不具合を避けるために、通常
では、上述のようにIOコントローラ3からのデータは
DRAM5の非キャッシュアドレス領域に転送されるよ
うにしている。換言すれば、CPU1とIOコントロー
ラ3とが共有しているメモリ領域は、非キャッシュ領域
とされている。このような手法とは別に、IOコントロ
ーラ3とCPU1とが共有している領域からのデータの
読出が行われるときに、それに先立ってキャッシュメモ
リ8の内容を無効化し、キャッシュメモリ8内の古いデ
ータがCPU1に読み込まれないようにする技術が採用
される場合もある。
【0013】
【発明が解決しようとする課題】上述のようにキャッシ
ュ領域のデータに関しては、キャッシュメモリ8とDR
AM5との間でブロック単位でデータを転送することが
一般に行われているが、その一方で、非キャッシュ領域
に関するアクセスでは、CPU1は、その時点で必要と
されるワード以外のデータは要求しない。したがって、
非キャッシュアドレスのアクセスに関しては、DRAM
5のデータがブロック単位でCPU1に渡されることは
ない。そのため、非キャッシュ領域におけるデータの読
み出しは必ず1ワード単位で行われ、連続したアドレス
からのデータ読出が行われる場合であっても、上記第
(1) 式で表される長いアクセス時間を要していた。
【0014】したがって、非キャッシュ領域に対するデ
ータ読出が、キャッシュ領域に関するデータ読出に比較
して極めて遅いという問題があった。この問題を解決す
るために、DRAM5の記憶領域を全てキャッシュ領域
とすることが考えられる。この場合、CPU1とIOコ
ントローラ3とがメモリ領域を共有することになるか
ら、この共有メモリ領域からのデータを読み込むのに先
立って、キュッシュメモリ8の内容を無効化することが
必要となる。
【0015】ところが、このような構成では、CPU1
においてキャッシュメモリ8を無効化するための余分な
処理が必要となる。そのため、DRAM5から読み込む
データが多い場合にはともかく、データが少ない場合に
は1ワード毎にDRAM5からデータを取得する場合よ
りも長い時間を要するおそれがある。したがって、DR
AM5の記憶領域の全てをキャッシュ領域とすることは
あまり好ましくない。
【0016】そこで、本発明の目的は、上述の技術的課
題を解決し、主記憶装置と処理装置との間のデータ転送
を高速に行わせることができるようにして処理装置の処
理効率の向上を図ったデータ転送制御装置を提供するこ
とである。
【0017】
【課題を解決するための手段および作用】上記の目的を
達成するための請求項1記載のデータ転送制御装置は、
アドレス空間がキャッシュ領域と非キャッシュ領域とに
区分して管理されている処理装置と、この処理装置との
間でデータが転送される主記憶装置と、上記処理装置に
接続されているとともに上記主記憶装置の記憶データの
一部を記憶することができるキャッシュメモリとを備
え、上記処理装置が上記キャッシュメモリに記憶されて
いないデータの読出のために上記キャッシュ領域内の上
記主記憶装置のアドレスにアクセスしたことに応答して
上記主記憶装置から上記キャッシュメモリに所定単位の
データがブロック転送されるデータ処理装置に適用され
るデータ転送制御装置であって、上記非キャッシュ領域
内の上記主記憶装置の記憶データを記憶するための所定
容量のリードデータバッファと、上記処理装置がデータ
読出のために非キャッシュ領域内の上記主記憶装置のア
ドレスにアクセスしたときに、このアクセスされるアド
レスのデータが上記リードデータバッファに記憶されて
いるかどうかを判定する判定手段と、この判定手段によ
って、上記処理装置がアクセスした非キャッシュ領域の
アドレスのデータが上記リードデータバッファに記憶さ
れていないと判定されたときに、上記主記憶装置から上
記処理装置がアクセスしたアドレスの記憶データを含む
所定サイズのデータブロックを読み出して上記リードデ
ータバッファに転送する手段と、上記主記憶装置から上
記リードデータバッファに転送されるデータブロック中
のデータのうち、上記処理装置がアクセスしたアドレス
のデータを上記処理装置に与える手段と、上記判定手段
によって、上記処理装置がアクセスした非キャッシュ領
域のアドレスのデータが上記リードデータバッファに記
憶されていると判定されたときに、上記リードデータバ
ッファから上記処理装置がアクセスしたアドレスのデー
タを読み出して上記処理装置に与える手段とを含むこと
を特徴とする。
【0018】この構成によれば、非キャッシュ領域内の
主記憶装置の記憶データを記憶するためにリードデータ
バッファが備えられる。そして、処理装置が非キャッシ
ュ領域内の主記憶装置のアドレスにアクセスしたとき
に、そのアドレスのデータがリードデータバッファに記
憶されているかどうかが判定される。そのアドレスのデ
ータがリードデータバッファ内に無い場合には、そのア
ドレスの記憶データを含む所定サイズのデータブロック
が主記憶装置からリードデータバッファに転送される。
この転送されるデータブロックのなかで処理装置がアク
セスしたアドレスのデータは処理装置に与えられる。
【0019】一方、判定手段によって、処理装置がアク
セスしたデータがリードデータバッファに記憶されてい
ると判定されたときには、このリードデータバッファの
記憶データが処理装置に与えられる。すなわち、主記憶
装置からのデータ読出を行うことなく、必要なデータを
処理装置に与えることができる。このようにして、非キ
ャッシュ領域内における主記憶装置からのデータの読出
をデータブロック毎に行わせ、読み出されたデータブロ
ックをリードデータバッファに記憶させておくことで、
主記憶装置へのアクセス時間が短縮される。
【0020】しかも、たとえば、主記憶装置の記憶領域
において外部機器からのデータが転送される領域を非キ
ャッシュ領域としておけば、主記憶装置の記憶領域に対
応するすべてのアドレス領域をキャッシュ領域とする場
合のように、処理装置がキャッシュメモリを無効化する
必要が生じることもない。すなわち、主記憶装置の記憶
領域にキャッシュ領域と非キャッシュ領域とが混在して
いる状態で主記憶装置と処理装置との間のデータ転送を
高速化することができる。その結果、処理装置の処理効
率が格段に向上されることになる。
【0021】請求項2記載のデータ転送制御装置は、上
記処理装置がデータ書込のために上記リードデータバッ
ファに記憶されたデータに対応するアドレスにアクセス
したときに、上記リードデータバッファの記憶データを
無効化する手段をさらに含むことを特徴とする。この構
成では、リードデータバッファに記憶されたデータに対
応するアドレスに対するデータ書込が行われるときに、
リードデータバッファの記憶データが無効化される。リ
ードデータバッファの記憶データに対応したアドレスへ
のデータ書込が行われると、リードデータバッファの記
憶データはもはや主記憶装置の記憶データと一致しなく
なる。そこで、このような場合にリードデータバッファ
の記憶データを無効化することで、誤ったデータが処理
装置に与えられることを防止できる。
【0022】請求項3記載のデータ転送制御装置は、上
記処理装置が非キャッシュ領域のアドレスにアクセスし
たときに、アクセスされたアドレスに基づいて上記主記
憶装置から上記リードデータバッファに転送すべきデー
タブロックのサイズを定めるブロックサイズ設定手段を
さらに含むことを特徴とする。この構成によれば、処理
装置がアクセスするアドレスに応じて、転送されるデー
タブロックのサイズを変化させることができる。そのた
め、処理装置がアクセスするアドレスに対応したハード
ウェア(メモリ素子や入出力インタフェース)ごとに適
切なサイズを設定することができる。たとえば、主記憶
装置が複数個のメモリ素子で構成されているような場合
に、或るメモリ素子は比較的大きなサイズのデータブロ
ックをブロック転送することができるけれども、他のメ
モリ素子は比較的小さなサイズのデータブロックをブロ
ック転送できるに過ぎないという場合も生じ得る。この
ような場合に、本発明では、各メモリ素子ごとに適切な
データブロックのサイズを設定できる。
【0023】請求項4記載のデータ転送制御装置は、上
記ブロックサイズ設定手段が、上記処理装置のアドレス
空間を区分して得られる複数のアドレス領域にそれぞれ
対応するとともに、データブロックのサイズをそれぞれ
保持する複数のサイズレジスタと、上記処理装置がアク
セスするアドレスが属するアドレス領域に対応した上記
サイズレジスタが保持するサイズを、上記主記憶装置か
ら上記リードデータバッファに転送すべきデータブロッ
クのサイズとして選択する手段とを含むものであること
を特徴とする。
【0024】この構成により、処理装置がアクセスする
アドレスがいずれのアドレス領域に属するかによって、
複数のサイズレジスタのいずれかが選択され、適切なデ
ータブロックのサイズが設定されることになる。請求項
5記載のデータ転送制御装置は、上記処理装置のアドレ
ス空間は上記主記憶装置のアドレス空間よりも大きくと
られており、上記主記憶装置のアドレス空間の少なくと
も一部は上記処理装置のアドレス空間の異なる領域に対
して重複して対応付けられていることを特徴とする。
【0025】この構成では、主記憶装置のアドレス空間
の少なくとも一部が処理装置のアドレス空間の異なる領
域に対して重複して対応付けられている。そのため、主
記憶装置側の1つのアドレスを処理装置側の異なる複数
のアドレスに対応させることができる。したがって、処
理装置がアクセスするアドレス毎にブロックサイズを異
ならせるとすれば、主記憶装置の或るアドレス領域から
リードデータバッファにデータを転送させる際のデータ
ブロックのサイズを複数種類に設定することができる。
【0026】請求項6記載のデータ転送制御装置は、上
記処理装置が上記主記憶装置に書き込むべきデータを出
力したときに、そのデータを一時蓄積する所定容量のラ
イトデータバッファと、このライトデータバッファに蓄
積されたデータを上記主記憶装置に転送する手段とをさ
らに含むことを特徴とする。
【0027】この構成によれば、主記憶装置に書き込む
べきデータはライトデータバッファに一旦蓄積され、そ
の後に主記憶装置に転送される。ライトデータバッファ
から主記憶装置へのデータ転送は、処理装置の処理とは
無関係なタイミングで行えるから、たとえば、主記憶装
置からのデータ読出を阻害しないタイミングで行うこと
ができる。そのため、処理装置がデータ読出とデータ書
込とを繰り返し行うような場合には、読出動作を優先的
に行わせる一方で、書き込むべきデータをライトデータ
バッファに蓄積しておけば、データ読出/書込処理を効
率的に行える。
【0028】また、ライトデータバッファに或る程度の
量のデータが蓄積された時点で、その蓄積されたデータ
をまとめて主記憶装置に転送するようにすれば、主記憶
装置に対するデータ書込のためのアクセス時間を短縮で
きる。請求項7記載のデータ転送制御装置は、所定の割
込み信号が入力される割込み信号入力部と、この割込み
信号入力部に所定の割込み信号が与えられたことに応答
して、上記リードデータバッファの記憶データを無効化
する手段とをさらに含むことを特徴とする。
【0029】この構成によれば、割込み信号入力部に所
定の割込み信号が入力されることでリードデータバッフ
ァの記憶データが無効化される。たとえば、請求項8に
記載されているように、データ処理装置が、外部機器と
のインタフェースと、このインタフェースを介して外部
機器と上記主記憶装置との間でデータをDMA転送する
手段と、このDMA転送によって上記主記憶装置へのデ
ータの書込が終了したことに応答して割込み信号を発生
する割込み信号発生手段とを有している場合には、割込
み信号発生手段からの割込み信号が割込み信号入力部に
入力されるようにしてもよい。
【0030】この場合には、DMA転送によって主記憶
装置にデータの書込が行われた場合に、リードデータバ
ッファの記憶データが無効化されることになる。すなわ
ち、DMA転送によって主記憶装置にデータが書き込ま
れた場合には、リードデータバッファの記憶データと、
リードデータバッファに記憶されているデータに対応し
たアドレスにおける主記憶装置の記憶データとが一致し
ないおそれがある。そこで、このような場合には、リー
ドデータバッファの記憶データを無効化することとして
いる。なお、リードデータバッファを無効化するために
処理装置が特別な処理を行う必要はないから、処理装置
の処理効率が阻害されることはない。
【0031】
【実施例】以下では、本発明の実施例を、添付図面を参
照して詳細に説明する。図1は本発明の一実施例のデー
タ転送制御装置が適用されたコンピュータの構成を示す
ブロック図である。処理装置としてのCPU21は、本
発明の一実施例のデータ転送制御装置であるバスコント
ローラ50を介してメモリバス40および制御バス45
に接続されている。メモリバス40および制御バス45
には、DRAM25がDRAMコントローラ22を介し
て接続されており、ハードディスク装置やフレキシブル
ディスク装置などの外部記憶装置(図示せず。)がIO
コントローラ23を介して接続されており、CRT(陰
極線管)等の表示装置(図示せず。)に与えるべきデー
タを記憶するVRAM26がフレームバッファコントロ
ーラ24を介して接続されている。DRAM25および
VRAM26は主記憶装置に相当する。メモリバス40
は、データを伝送させるためのライン41、データサイ
ズを伝送させるためのライン42、およびアドレスを伝
送させるためのライン43を有している。
【0032】CPU21には、DRAM25の記憶デー
タの一部を記憶するためのキャッシュメモリ28が接続
されている。CPU21はアドレス管理機構を内部に有
しており、このアドレス管理機構は、CPU21がアク
セスするアドレス空間をキャッシュ領域と非キャッシュ
領域とに分けて管理している。キャッシュ領域とは、C
PU21がDRAM25やVRAM26にリードアクセ
スを行ったときに、DRAM25などの記憶データがデ
ータブロック単位(たとえば8ワード)で読み出されて
キャッシュメモリ28に転送される領域である。また、
非キャッシュ領域とは、CPU21のアクセス時にキャ
ッシュメモリ28へのデータ転送が行われないアドレス
領域である。CPU21が必要とするデータがキャッシ
ュメモリ28に記憶されているかぎり、CPU21はD
RAM25にアクセスすることなく、単にキャッシュメ
モリ28にアクセスするだけで処理を実行できる。
【0033】CPU21とバスコントローラ50とは、
CPUアドレスバス31およびCPUデータバス32な
どを介して接続されている。CPU31がデータリード
のためにアドレスバス31に与えたアドレスは、ライン
51からアドレスマルチプレクサ52を介してメモリバ
ス40のアドレス用ライン43に与えられる。アドレス
は、たとえば32ビットからなっており、データリード
が行われるときの下位ビット部はライン53からの信号
に置換される。
【0034】ライン53はアドレス制御回路54に接続
されており、このアドレス制御回路54には、ライン3
3を介してCPU21からのCPU制御信号が与えられ
ている。マルチプレクサ52は、アドレス制御回路54
からライン55を介して与えられるリード/ライト制御
信号に応答して切り換わるものである。すなわち、デー
タリードの際にはライン51からのアドレスをメモリバ
ス40に与え、データライトの際にはライン56からの
アドレスをメモリバス40に与える。ライン56は、ラ
イトアドレスバッファ92に接続されている。
【0035】メモリバス40からのリードデータは、デ
ータ用ライン41からライン60を介して、リードデー
タバッファ61およびリードデータマルチプレクサ62
に入力される。リードデータバッファ61は、後述する
ブロックサイズ発生回路69が発生する最大のブロック
サイズのデータを記憶することができる容量を有してお
り、アドレス制御回路54によってデータの書込/読出
が制御される。
【0036】リードデータバッファ61はブロックサイ
ズ発生回路69が発生したブロックサイズのワード群で
あるデータブロックを単位としてデータの記憶を行う。
この場合、そのデータブロックに対応したDRAM25
やVRAM26のアドレスの上位ビット部の共通部分が
後述するアドレスレジスタ75に保持される。データブ
ロックを構成する各ワード毎のアドレスの下位ビット部
(この下位ビット部のアドレスを、以下では「ブロック
内アドレス」という。)は相互に異なっている。リード
データバッファ61に記憶されたデータブロック中の特
定のワードの読出は、そのワードに対応したブロック内
アドレスをアドレス制御回路54からリードデータバッ
ファ61に与えることによって行われる。
【0037】リードデータバッファ61の出力データ
は、リードデータマルチプレクサ62に与えられてい
る。このリードデータマルチプレクサ62は、アドレス
制御回路54からライン63を介して与えられる制御信
号に基づき、ライン60からのデータとリードバッファ
61からのデータのうちのいずれかを選択してCPUデ
ータバス32に与える。
【0038】CPU21は、データリードを行う際に、
ライン34からアドレス制御回路54の転送サイズを与
える。この転送サイズは、キャッシュ領域へのアクセス
の際には、キャッシュメモリ28に転送させるべきブロ
ックサイズであり、非キャッシュ領域へのアクセスの際
には1ワードである。ただし、ライン33からのCPU
制御信号によって、ワード中の特定のバイトが指定され
る場合もある。
【0039】転送サイズを表すデータはさらに、ライン
66からブロックサイズマルチプレクサ68に与えられ
ている。ブロックサイズマルチプレクサ68には、CP
U21がアクセスするアドレスに対応したブロックサイ
ズを発生するブロックサイズ発生回路69からのブロッ
クサイズデータが入力されている。ブロックサイズ発生
回路69は、CPUアドレスバス31からライン70を
介して与えられるアドレスの上位ビット部に基づいてブ
ロックサイズを設定する。また、ブロックサイズ発生回
路69は、ブロックサイズとして1ワードのサイズを指
定するときには、ブロック転送を行わないことを表す情
報をライン98からアドレス制御回路54に与える。
【0040】ブロックサイズマルチプレクサ68は、ア
ドレス制御回路54からライン71を介して与えられる
制御信号によって切り換えられる。この制御信号によっ
て、ブロックサイズマルチプレクサ68は、キャッシュ
領域へのリードアクセスの際にはライン66からの転送
サイズを選択し、非キャッシュ領域へのリードアクセス
の際にはブロックサイズ発生回路69からのブロックサ
イズを転送サイズとして選択する。このように、ブロッ
クサイズ発生回路69およびブロックサイズマルチプレ
クサ68によりブロックサイズ設定手段が構成されてい
る。
【0041】ブロックサイズマルチプレクサ68から出
力される転送サイズは、さらに、別のブロックサイズマ
ルチプレクサ73に与えられる。このブロックサイズマ
ルチプレクサ73は、アドレス制御回路54からライン
55に導出されるリード/ライト制御信号により切り換
えられるもので、ブロックサイズマルチプレクサ68か
らの転送サイズとライトサイズバッファ94からの転送
サイズとのいずれかを選択し、メモリバス40のサイズ
用ライン42に与える。
【0042】CPUアドレスバス31からのアドレスが
与えられるライン51には、アドレスレジスタ75が接
続されている。このアドレスレジスタ75は、アドレス
制御回路54からライン76を介して与えられるアドレ
スラッチ信号に基づいて、ライン51に与えられている
アドレスの上位ビット部をラッチする。このアドレスレ
ジスタ75は、リードデータバッファ61に記憶された
データブロックのアドレスを保持するためのものであ
り、リードデータバッファ61内のデータが有効か無効
かを表す有効フラグを有している。この有効フラグは、
アドレス制御回路54の働きによって、リードデータバ
ッファ61の記憶データが有効であるときにはセットさ
れ、無効であるときにはリセットされる。そして、その
状態は、ライン74を介してアドレス制御回路54によ
りモニタされる。
【0043】アドレスレジスタ75に保持されたアドレ
スは、マスク回路77を介してアドレス比較器80に入
力されている。このアドレス比較器80には、CPUア
ドレスバス31からのアドレスも、ライン70からマス
ク回路78を通して入力されている。アドレス比較器8
0は、入力された2つのアドレスの上位ビット部が一致
したときに、アドレス一致信号を出力して、ライン81
からアドレス制御回路54に与える。このアドレス比較
器80およびアドレスレジスタ75などによって、判定
手段が構成されている。
【0044】マスク回路77,78は、ブロックサイズ
発生回路69が生成するブロックサイズに基づいて動作
し、ブロックサイズに対応した下位ビット部のアドレス
をマスクする。これにより、アドレス比較器80では、
ブロックサイズ発生回路69が生成するブロックサイズ
単位でアドレスの一致/不一致が判定されることにな
る。
【0045】CPU21がDRAM25やVRAM26
にデータを書き込むためのデータライト動作を行う際に
CPUアドレスバス31に導出されるアドレスは、ライ
ン91を介して、ライトアドレスバッファ92に入力さ
れる。また、書き込むべきデータは、CPUデータバス
32からライトデータバッファ93に入力される。ま
た、書き込むべきデータの転送サイズは、ライトサイズ
バッファ94に入力される。ライトデータバッファ93
は、ライン60を介して、メモリバス40のデータ用ラ
イン41に接続されている。
【0046】ライトデータバッファ93はたとえば32
ワード分のデータを記憶することができるものであり、
このライトデータバッファ92に書き込まれたデータ
は、或る程度(たとえば1〜8ワード程度)蓄積された
後に、メモリバス40が使用されていないときに、DR
AM25やVRAM26にブロック転送される。上述の
ような構成によって、CPU21がキャッシュ領域にア
クセスするときは、CPU21はまずキャッシュメモリ
28にアクセスする。そして、キャッシュメモリ28に
必要なデータが記憶されていれば、そのデータを取得す
る。キャッシュメモリ28に必要なデータがないときに
は、CPU21は、CPUアドレスバス31にデータリ
ードを行うべきアドレスを出力する。同時に、アドレス
制御回路54には、データリードであることを表す制御
信号をライン33から与え、転送サイズをライン34か
ら与える。
【0047】これにより、アドレス制御回路54は、ラ
イン55に読出動作であることを表す信号を導出する。
その結果、アドレスマルチプレクサ52はライン51か
らのアドレスを選択し、ブロックサイズマルチプレクサ
73は、マルチプレクサ68からの転送サイズを選択す
る。また、アドレス制御回路54は、ライン71にキャ
ッシュ領域のアクセスであることに対応して、ライン6
6からの転送サイズを選択させるための制御信号を導出
する。このようにして、DRAMコントローラ22に
は、キャッシュ領域のアドレスと転送サイズとが与えら
れる。
【0048】DRAMコントローラ22の働きによって
DRAM25から読み出されたデータは、メモリバス4
0から、ライン60に入力される。アドレス制御回路5
4は、キャッシュ領域へのアクセスであることに対応し
てマルチプレクサ63を制御し、ライン60からのデー
タを選択させる。そのため、ライン60からのデータは
そのままCPUデータバス32を介してCPU21に与
えられる。CPU21は、自己が必要とするデータを内
部に取り込むとともに、ブロック転送されてきたデータ
の全部をキャッシュメモリ28に書き込む。
【0049】次に、CPU21が非キャッシュ領域にア
クセスしてデータリードを行う場合の動作について説明
する。CPU21は、非キャッシュ領域に対応したアド
レスをCPUアドレスバス31に出力する。このとき、
アドレス制御回路54には、ライン33からは読出動作
であることを表す信号が与えられ、ライン34からは転
送サイズとして1ワードを表す信号が入力される。ただ
し、制御信号によってワード中の特定のバイトが指定さ
れる場合もあるが、このような制御信号は、ブロックサ
イズ発生回路69が出力するブロックサイズが1ワード
でない場合には、アドレス制御回路54によってワード
を指定する信号に修正される。ブロックサイズが1ワー
ドであればブロック転送は行われないので、制御信号の
修正は行われない。
【0050】アドレス制御回路54は、上述のような制
御信号および転送サイズの入力に応答して、ライン74
からの信号を参照し、リードデータバッファ61の記憶
データが有効か無効かを判定する。同時に、ライン98
からの信号を参照して、ブロック転送を行うか否かを判
定する。そして、リードデータバッファ61の記憶デー
タが有効で、かつ、ブロック転送を行うアドレス(転送
サイズ発生回路69が2ワード以上の転送サイズを発生
するアドレス)であれば、次に、ライン81から与えら
れるアドレス比較器80の出力を監視する。CPU21
が出力したアドレスとアドレスレジスタ75の保持アド
レスの各上位ビット部が一致したことを表す信号が与え
られた場合には、アドレス制御回路54は、リードデー
タバッファ61に対して、ライン70からのアドレスの
下位ビット部をブロック内アドレスとして与える。ま
た、アドレス制御回路部54は、マルチプレクサ62に
おいて、リードデータバッファ61の出力データを選択
させる。これにより、DRAM25やVRAM26に対
するメモリアクセスを経ることなく、CPU21は、必
要なデータを取得できる。
【0051】一方、リードデータバッファ61の記憶デ
ータが無効である場合や、ブロック転送を行わないアド
レスの場合や、アドレスレジスタ75の保持アドレスと
CPU21が出力したアドレスとが不一致である場合に
は、DRAM25やVRAM26へのメモリアクセスが
行われる。具体的に説明すると、アドレス制御回路54
は、ライン55にデータリードに対応した制御信号を出
力してマルチプレクサ52および73をそれぞれデータ
リード側に接続させる。そして、ブロックサイズマルチ
プレクサ68には、ブロックサイズ発生回路69が発生
するブロックサイズを選択させる。なお、ブロック転送
を行わない場合には、ライン66からの転送サイズとな
る。
【0052】さらに、アドレス制御回路54は、ブロッ
クサイズ発生回路69から与えられるブロックサイズと
ライン70から与えられるアドレスの下位ビット部とに
基づいて、CPU21が出力したアドレスの下位ビット
部の値の近傍の上記ブロックサイズ分の連続した下位ア
ドレスを生成して、ライン53に供給する。これによ
り、DRAMコントローラ22またはフレームバッファ
コントローラ24には、CPU21が発生したアドレス
の近傍の上記ブロックサイズ分の連続したアドレスが供
給されるとともに、ブロックサイズマルチプレクサ73
からは、ブロックサイズが供給される。その結果、DR
AMコントローラ22またはフレームバッファコントロ
ーラ24の働きによって、DRAM25またはVRAM
26からのデータが読み出され、データ用ライン41か
らライン60に入力される。
【0053】このとき、アドレス制御回路54は、アド
レスレジスタ75にライン51に導出されたアドレスの
上位ビット部をラッチさせるとともに、上記の有効フラ
グをセットする。さらに、アドレス制御回路54は、リ
ードデータバッファ61に書込動作を行わせ、ライン6
0からの上記ブロックサイズ分のデータを記憶させる。
マルチプレクサ62は、CPU21が出力したアドレス
に対応したワードがライン60に導出されるタイミング
にのみ、ライン60側に接続される。
【0054】このようにして、リードデータバッファ6
1には、CPU21が出力したアドレスの近傍のブロッ
クサイズ分のデータが保持される。そして、CPU21
には必要な1ワードのデータがCPUデータバス32を
介して与えられる。これ以後は、ブロック転送を行わな
い場合を除き、CPU21がアドレスレジスタ75に記
憶された上位アドレスに等しい上位アドレスを有するア
ドレスに対してリードアクセスを行う際には、CPU2
1が必要とするデータはリードデータバッファ61から
マルチプレクサ62を経てCPUデータバス32に返さ
れることになる。これにより、CPU21は、非キャッ
シュ領域へのリードを極めて高速に行うことができる。
【0055】図2は非キャッシュ領域からのデータリー
ド動作を説明するためのタイムチャートである。図2
(a) 〜(d) はCPU21側の信号タイミングを示し、図
2(e)〜(h) はメモリバス40側の信号タイミングを示
している。さらに詳細に説明すると、図2(a) はCPU
21がライン33に導出する制御信号としてのCPUリ
ード信号を示し、図2(b) はCPUアドレスバス31に
導出されるCPUアドレスを示し、図2(c) はライン3
4に導出される転送サイズのデータを示し、図2(d) は
CPUデータバス32に導出されるCPUデータを示
す。また、図2(e)は制御バス45に導出されるリード
信号を示し、図2(f) はアドレス用ライン43に導出さ
れるメモリバスアドレスを示し、図2(g) は転送サイズ
用ライン42に導出される転送サイズのデータを示し、
図2(h) はデータ用ライン41に導出されるデータを示
している。
【0056】時刻t1に、CPU21は、CPUリード
信号を立ち下げるとともに、CPUアドレスAA、転送
サイズSAを出力する。これに応答して、アドレス制御
回路54は、アドレスレジスタ75の有効フラグを調
べ、さらに、アドレスレジスタ75の保持アドレスとC
PUアドレスとの一致/不一致を調べる。その結果、有
効フラグがリセットされていたり、アドレスが不一致で
あったりすると、時刻t2に制御バス45に与えられる
リード信号が立ち下がる。このとき、アドレス用ライン
43にはアドレスAAに対応したアドレスAA′がアド
レスマルチプレクサ52から与えられ、ブロックサイズ
のデータ(図2では4ワードを表すデータ)がブロック
サイズマルチプレクサ73から転送サイズ用ライン42
に与えられる。
【0057】これに応答して、DRAMコントローラ2
2またはフレームバッファコントローラ24が動作し、
時刻t3からの期間に、ブロックサイズ分のデータD
1,D2,D3,・・・・(これらはそれぞれ1ワードのデ
ータである。)がDRAM25またはVRAM26から
次々と読み出され、データ用ライン41に導出される。
このデータD1,D2,D3,・・・・はリードバッファ6
1に蓄えられる。
【0058】一方、CPUアドレスAAに対応したデー
タD1がデータ用ライン41に導出されている期間内の
時刻t4には、リードデータマルチプレクサ62がライ
ン60側に切り換えられ、データD1がCPUデータバ
ス32からCPU21に与えられる。このようにして、
CPU21は、メモリアクセス時間TMよりも若干長い
第1データアクセス時間TD1で必要なデータD1を取
得する。なお、アドレスレジスタ75には、アドレスA
Aの上位ビット部が保持され、その有効フラグはセット
される。
【0059】時刻t11からの期間に、CPU21は、
リード信号を再び立ち下げ、CPUアドレスABおよび
転送サイズSBを出力する。このとき、CPUアドレス
ABの上位ビット部がアドレスレジスタ75の保持アド
レスと一致すると、アドレス制御回路54は、そのCP
UアドレスABの下位ビット部で表されるブロック内ア
ドレスのデータをリードデータバッファ61から出力さ
せる。このデータが、マルチプレクサ62からCPUバ
ス32を介してCPU21に与えられる。こうして、D
RAM25またはVRAM26へのアクセスを行うこと
なく、CPU21は必要なデータD2を取得することに
なる。この場合、CPU21はデータD2を取得するの
に、メモリアクセス時間TMよりもはるかに短い第2デ
ータアクセス時間TD2を要するに過ぎない。
【0060】時刻t21からの期間には、同様にして、
データD3が第2データアクセス時間TD2で取得され
る。このようにして、データブロック単位でデータリー
ドを行い、そのデータをリードバッファ61に蓄えてお
くことによって、近接したアドレスへのアクセスが相次
いで行われる際におけるデータアクセス時間を極めて短
くすることができる。
【0061】具体的には、連続ワードのリードを行う際
に、従来では、下記第(3) 式の時間を要していたのに対
して、本実施例では、下記第(4) 式の時間を要するに過
ぎない。 (TD1+TT)×BS ・・・・ (3) TD1+TT+(TD2+TT)×(BS−1) ・・・・ (4) ただし、TD1 ・・・・ 第1データ転送時間 TD2 ・・・・ 第2データ転送時間 TT ・・・・ 1ワード転送時間 BS ・・・・ ブロックサイズ したがって、下記第(5) 式に示す時間だけ、データアク
セス時間を短縮できる。これにより、1ワードのデータ
リードの際には、データアクセス時間は変わらないが、
同一データブロック内の複数ワードに関するデータリー
ドが相次いで行われる際には、全体のデータアクセス時
間を格段に短縮できることが理解される。
【0062】 BS(TD1+TT)−{TD1+TT+(BS-1)(TD2+TT) } =TD1+TT+(BS-1)(TD1+TT)-TD1-TT-(BS-1)(TD2+TT) =(BS-1)(TD1-TD2) ・・・・ (5) 次に、DRAM25と外部記憶装置との間でDMA(直
接メモリアクセス)転送が行われた場合の動作について
説明する。
【0063】たとえば、IOコントローラ23の働きに
よって、外部記憶装置からDRAM25にデータがDM
A転送されたときに、データが格納されたDRAM25
の記憶領域と、リードデータバッファ61に格納された
データのアドレス領域とが重なったとする。この場合に
は、リードデータバッファ61に保持されたデータは、
DRAM25内のデータとは異なることになる。したが
って、CPU21のアクセスに応答してリードデータバ
ッファ61内のデータをCPU21に返すと、リードエ
ラーとなる。すなわち、DMA転送が行われた後には、
リードデータバッファ61内のデータは無効である可能
性がある。
【0064】そこで、本実施例では、DMA転送が行わ
れた後には、アドレス制御回路54の働きによって、ア
ドレスレジスタ75の有効フラグをリセットして、リー
ドデータバッファ61の記憶データが無効化される。有
効フラグのリセットは、制御バス45からライン96を
介して与えられる割込み信号に応答して行われる。この
場合に、CPU21は何らの処理を行う必要もないの
で、CPU21が実行するソフトウェアにおいて特に工
夫をしなくても、リードデータバッファ61内の古いデ
ータがCPU21に読み込まれることがない。
【0065】なお、上述のように本実施例では、アドレ
ス制御回路54が割込み信号入力部に相当している。ま
た、上記の割込み信号は、IOコントローラ23から発
生される。すなわち、IOコントローラ23が割込み信
号発生手段に相当する。なお、リードデータバッファ6
1内の古いデータがCPU21に読み込まれることを確
実に防止する他の方法として、次のような動作が行われ
ることがある。すなわち、アドレス制御回路54は、リ
ードデータバッファ61内の古いデータを廃棄するため
に、ライン97からCPU21に割込み信号を与える。
この割込み信号に応答して、CPU21は、アドレスレ
ジスタ75に保持されたアドレスとは別のアドレス(こ
のアドレスはメモリバス40のアドレス空間外のダミー
のアドレスであってもよい。)に対するリード動作を行
う。このリード動作の際のアドレスは、予め決められた
一定のアドレスであってもよい。
【0066】この場合に、ブロックサイズ発生回路69
は、たとえば最大のブロックサイズを発生する。その結
果、最大のブロックサイズ分のデータが、リードデータ
バッファ61にブロック転送される。その後にCPU2
1が非キャッシュ領域にアクセスしたときには、リード
データバッファ61内のデータは再び書き換えられるか
ら、リードデータバッファ61の容量をたとえばブロッ
クサイズ発生回路69が発生する最大のブロックサイズ
程度にしておけば、CPU21が非キャッシュ領域のデ
ータを取得しようとするときに、リードデータバッファ
61内にDRAM25内のデータと一致しない古いデー
タが残っているという事態を確実に回避できる。
【0067】図3はブロックサイズ発生回路69の構成
例を説明するためのブロック図である。ブロックサイズ
発生回路69は、たとえば、4個のサイズレジスタ10
1,102,103,104を備えている。このサイズ
レジスタ101,102,103,104はブロックサ
イズを保持するためのものであり、たとえば、CPU2
1から異なるブロックサイズがセットされる。サイズレ
ジスタ101,102に保持されたブロックサイズは、
第1のマルチプレクサ111においていずれか一方が選
択される。そして、第1のマルチプレクサ111の出力
とサイズレジスタ103が保持するブロックサイズとが
第2のマルチプレクサ112において選択され、次に、
第2のマルチプレクサ112の出力とサイズレジスタ1
04が保持するブロックサイズとが第3のマルチプレク
サ113において選択され、いずれか一方がブロックサ
イズマルチプレクサ68に与えられる。同時に、このブ
ロックサイズは、サイズ比較器141において1ワード
か否かを比較されて、その結果は、アドレス制御回路5
4に与えられる。
【0068】第1のマルチプレクサ111は、アドレス
の大小を比較するアドレス比較器121の出力によって
切換え制御され、第2のマルチプレクサ112はアドレ
ス比較器122の出力によって切換え制御される。アド
レス比較器121は、ライン70(図1参照)から入力
される上位アドレスと、マップレジスタ131に蓄えら
れた値とを大小比較し、その比較結果に対応した信号を
第1のマルチプレクサ111に与える。同様に、アドレ
ス比較器122は、ライン70から入力される上位アド
レスとマップレジスタ132に保持された値とを比較
し、その比較結果に対応した信号を第2のマルチプレク
サ112に与え、アドレス比較器123は、ライン70
から入力される上位アドレスとマップレジスタ133に
保持された値とを比較し、その比較結果に対応した信号
を第3のマルチプレクサ113に与える。
【0069】マップレジスタ131,132,133に
は、CPU21から、たとえば相互に異なる上位アドレ
ス値がセットされる。図4はブロックサイズ発生回路6
9の動作を説明するための図であり、CPU21側のア
ドレスマップとメモリバス40側のアドレス空間との対
応関係、およびCPU21がアクセスするアドレスに対
応したブロックサイズが示されている。
【0070】メモリバス40側のアドレス空間には、D
RAM25の記憶アドレス領域151、VRAM26の
記憶アドレス領域152およびIOコントローラ23の
制御による入出力用のアドレス領域153が存在する。
DRAM25の記憶領域151は、データ記憶用の領域
151Aとプログラム転送用領域151Bとに区分され
ており、データ記憶用の領域151Aの一部はDMA転
送とCPU21用のデータ記憶との両方に用いられる共
有部151Cとなっている。
【0071】一方、CPU21側には、メモリバス40
側の領域151A,151B,152および153のそ
れぞれに1対1に対応する領域161,162,16
3,164が設けられている。そして、領域161内の
アドレスに関するデータリードに際しては、ブロックサ
イズは16ワードとされ、領域162内のアドレスに関
するデータリードに際しては、ブロックサイズは4ワー
ドとされ、領域163内のアドレスのデータリードでは
ブロックサイズは8ワードとされ、領域164のアドレ
スに関してはブロック転送は行われない。なお、共有部
151Cは非キャッシュ領域とされるが、それ以外のD
RAM25およびVRAM26の記憶領域に対応したア
ドレス領域に関しては、キャッシュ領域と非キャッシュ
領域との区分は任意に設定されてもよい。
【0072】図4のアドレスマップに従ってブロックサ
イズを定めるためには、図3の構成において、たとえ
ば、サイズレジスタ101にブロックサイズとして「1
6ワード」を保持させ、サイズレジスタ102にブロッ
クサイズとして「4ワード」を保持させ、サイズレジス
タ103にブロックサイズとして「8ワード」を保持さ
せ、サイズレジスタ104にブロックサイズとして「1
ワード」を保持させる。さらに、マップレジスタ131
には領域161内の最上位となるアドレス(領域161
と領域162との境界のアドレス)を保持させ、マップ
レジスタ132には領域162内の最上位となるアドレ
ス(領域162と領域163との境界のアドレス)を保
持させ、マップレジスタ133には領域163内の最上
位となるアドレス(領域163と領域164との境界の
アドレス)を保持させる。
【0073】そうすると、ライン70からのアドレスが
領域161内のアドレスを超えていなければ、第1のマ
ルチプレクサ111はサイズレジスタ101からのブロ
ックサイズを選択し、第2マルチプレクサ112は第1
マルチプレクサ111からのブロックサイズを選択し、
第3のマルチプレクサ113はマルチプレクサ112か
らのブロックサイズを選択する。また、ライン70から
のアドレスが領域162内を超えていなければ、第1マ
ルチプレクサ111はサイズレジスタ102のブロック
サイズを選択し、第2マルチプレクサ112は第1マル
チプレクサ111からのブロックサイズを選択し、第3
のマルチプレクサ113はマルチプレクサ112からの
ブロックサイズを選択する。そして、ライン70からの
アドレスが領域163内のアドレスなら、第1マルチプ
レクサ111はサイズレジスタ102を選択し、第2マ
ルチプレクサ112はサイズレジスタ103からのブロ
ックサイズを選択し、第3のマルチプレクサ113は第
2マルチプレクサ112からのブロックサイズを選択す
る。さらに、ライン70からのアドレスが領域164内
のアドレスなら、第3のマルチプレクサ113はサイズ
レジスタ104からのブロックサイズを選択する。
【0074】このようにして、領域161に関してはブ
ロックサイズとして「16ワード」を出力させ、領域1
62に関してはブロックサイズとして「4ワード」を出
力させ、領域163に関しては、ブロックサイズとして
「8ワード」を出力させ、領域164については、ブロ
ックサイズとして「1ワード」を出力させることができ
る。
【0075】なお、ブロックサイズは、サイズ比較器1
41によって1ワードか否かが判定される。ブロックサ
イズが1ワードのときには、サイズ比較器141は、ラ
イン98を介して、アドレス制御回路54に、通常の転
送を行うべきこと(すなわち、ブロック転送を行わない
こと)を表す指示を与える。つまり、このような場合
は、図4から理解されるように、IOコントローラ23
へのアクセスであるので、ブロック転送は行われない。
このとき、制御信号によってワード中の特定のバイトが
指定される場合にも、そのような制御信号はそのまま制
御バス45に与えられる。
【0076】このようにして、アクセス先に応じてブロ
ックサイズを異ならせることができる。そのため、或る
ハードウェアでは短いブロックサイズでのブロック転送
のみが可能で、他のハードウェアでは長いブロックサイ
ズでのブロック転送が可能であるような場合であって
も、各ハードウェアに対応して最適なブロック転送サイ
ズを設定することができる。このことは、CPU21の
リードアクセスの高速化に寄与する。
【0077】なお、CPU側の持つアドレス空間がメモ
リバス側のアドレス空間よりも大きい場合には、メモリ
マップを図5のように設定することもできる。すなわ
ち、領域160、領域170および領域180がメモリ
バス側のアドレス空間に重複して対応付けられている。
この場合、CPU21のアドレスの上位ビット部であっ
てメモリバス40側で使っていないアドレスビットを用
いて、領域160,170,180とメモリバス側のア
ドレス空間との対応付けを選択することができる。
【0078】具体的には、たとえば、図3に示されたブ
ロックサイズ発生回路69を領域160,170,18
0に対応させて3個設け、この3個のブロックサイズ発
生回路の出力を、CPUアドレスの上位ビット部で切換
え制御されるマルチプレクサによって選択させればよ
い。もっとも、図5の場合には、領域170ではブロッ
ク転送は行われないのであるから、この領域170につ
いてはCPU21からライン33を介してアドレス制御
回路54に制御信号を与え、ブロックサイズマルチプレ
クサ68においてライン66からの転送サイズを選択さ
せればよい。また、領域180では、全領域でブロック
サイズが4ワードとされるので、この領域180に対応
したブロックサイズ発生回路69は、1つのサイズレジ
スタで構成できる。
【0079】この構成では、CPU側のアドレスを変え
ることにより、同じDRAMアドレスに対して、異なる
転送ブロックサイズを指定することが可能になる。この
ため、データリードが連続ワードで行われないプログラ
ムの実行時には領域170を用いることによって1ワー
ド単位のデータ転送を行わせる一方で、データリードが
連続ワードで行われるプログラムの実行時にはたとえば
領域180を用いることにより、DRAM25からリー
ドバッファ61へのブロック転送を行わせることができ
る。すなわち、各プログラムにおける最適な転送ブロッ
クサイズを設定しつつ、複数のプログラムによってDR
AM25の記憶領域を共有させることができる。そのた
め、各プログラムを高速に実行できる。また、2つ以上
のプログラムを同時に実行する場合でも、各プログラム
における最適な転送ブロックサイズを設定できるので、
全体の実行時間を短縮できる。
【0080】さらに、たとえば、ネットワークを用いた
通信やハードディスク装置からのデータの読出のよう
に、入出力インタフェースとの間におけるDRAM25
を介するデータの受渡しが多く、連続するワードに対す
るリードが生じやすいプログラムを実行する場合には、
ブロックサイズが大きく設定されるようにしておけば、
CPU21の動作時間を効果的に短縮することができ
る。
【0081】次に、データライト動作について説明す
る。DRAM25やVRAM26にデータを書き込む場
合には、CPU21は、書込アドレスをCPUアドレス
バス31に導出するとともに、データバス21に書き込
むべきデータを導出し、さらに、ライン34に書き込む
べきデータのサイズを導出し、ライン33にデータ書込
であることを表す制御信号を導出する。
【0082】このとき、書込領域がキャッシュ領域であ
るか非キャッシュ領域であるかにかかわりなく、データ
はライトデータバッファ93に蓄積され、データのサイ
ズはライトサイズバッファ94に蓄積され、書込アドレ
スはライトアドレスバッファ92に蓄積される。そし
て、連続したアドレスに対する書込の場合には、ライト
データバッファ93に或る程度データがまとまった時点
で、そのデータをDRAM25などにブロック転送す
る。これにより、DRAM25などに対するライトアク
セス回数を減少させることができる。
【0083】リードとライトとの関係は、ライトアドレ
スがアドレスレジスタ75の値と一致しない限り、リー
ドを優先させる。これにより、ライト動作とリード動作
とが交互に行われるような場合に、リード動作がライト
動作によって妨げられることを防止できるので、リード
アクセスが高速化される。もしも、ライトアドレスがア
ドレスレジスタ75に保持されたアドレスと一致する場
合には、リードデータバッファ61内のデータに対応す
るDRAM25内などのデータが書き換えられるから、
ライト動作を優先させ、リードデータバッファ61内の
データを無効とする。すなわち、CPU21がライトデ
ータバッファ93などを介してDRAM25などにデー
タを書き込む場合に、その書込領域がリードデータバッ
ファ61の保持データのアドレス領域と重複する場合に
は、リードデータバッファ61の記憶データは無効であ
る。そこで、アドレス制御回路54は、ライトアドレス
の上位ビット部がアドレスレジスタ75に保持されたブ
ロックアドレスと一致した場合には、アドレスレジスタ
75の有効フラグをリセットしてリードデータバッファ
61の記憶データを無効化することとしている。
【0084】図6は、本発明の他の実施例の構成を示す
ブロック図である。この図6において上述の図1に示さ
れた各部に対応する部分には、同一の参照符号を付して
示す。本実施例では、アドレスおよびデータを多重化し
て伝送するバスラインと制御信号を伝送させるための制
御線とを有するシステムバス200に、DRAMコント
ローラ22、IOコントローラ23およびフレームバッ
ファコントローラ24が接続されている。このシステム
バス200に、データ転送制御装置としてのバスコント
ローラ210が接続されている。このバスコントローラ
210とCPU21との間は、アドレスおよびデータを
多重化して伝送するバスラインと制御信号を伝送させる
ための制御線とを有するCPUバス201で接続されて
いる。
【0085】バスコントローラ210は、CPU21に
接続されたCPUインタフェース回路211と、システ
ムバス200に接続されたメモリバスインタフェース回
路212とを備えている。これらのインタフェース回路
211,212は、アドレス、データ、制御線および転
送サイズの分離を行う。メモリバスコントローラ21
は、上記の2つのインタフェース回路211,212、
判定手段としてのアドレス一致検出回路213、ブロッ
クサイズ設定手段としてのアドレスマップ比較回路21
4、リードデータバッファ215、ライトデータバッフ
ァ216および割込み入力回路217を備えている。リ
ードデータバッファ215は、DRAM25やVRAM
26の記憶データのうち、アドレスが連続している複数
ワードからなるデータブロックを記憶するために用いら
れる。
【0086】CPU21は、キャッシュメモリ28の記
憶データを1ワード(=8バイト=64ビット)を単位
として管理する。CPU21がバスコントローラ210
を介してDRAM25やVRAM26とやり取りするデ
ータの幅も64ビットである。ただし、CPU21はC
PUバス201中の制御線を介して1ワードの中の特定
の1バイトを指定する制御信号をバスコントローラ21
0に与えることもできる。アドレスは36ビットであ
り、DRAM25などへのアクセスを開始するときに、
CPU21の1クロックの期間にだけ出力される。キャ
ッシュメモリ28とDRAM25との間のデータ転送を
行うときには、CPU21は、8ワードをブロックサイ
ズとして指定し、DRAM25へのアクセスを実行す
る。
【0087】システムバス200は、64ビットのデー
タ幅をもち、アドレスは32ビットである。また、デー
タがブロック転送される際のブロックサイズについて
は、1〜32ワードの範囲でアクセス時に指定できる。
このシステムバス200中の制御線も、ワードの中の1
バイトを指定するための制御信号を伝送させることがで
きる。
【0088】アドレスマップ比較回路214は、0番か
ら15番までの16個のマップレジスタを持つ。この1
6個のマップレジスタには、それぞれ、36ビットアド
レスの上位24ビットのアドレス値をCPU21から設
定できる。つまり、バイトアドレスで16進の「0x0
00(xは任意の16進数)」のような値を設定するこ
とができる。
【0089】たとえば、番号の大きいマップレジスタに
は大きいアドレスが設定される。そして、0番のレジス
タの値と1番のレジスタの値のように、n(n=0,
1,2,3,・・・・,15)番のレジスタの値と(n+
1)番のレジスタの値との間のアドレス領域が、n番目
のアドレス領域を形成する。したがって、マップレジス
タの値によって、アドレス空間は16個の領域に区分さ
れる。
【0090】区分された各アドレス領域にそれぞれ対応
するように16個のサイズレジスタが設けられている。
サイズレジスタは、ブロックサイズを保持するものであ
り、n番目のマップレジスタの値と(n+1)番目のマ
ップレジスタの値との間のアドレス領域に対応したサイ
ズレジスタには、ブロックサイズNが与えられる。サイ
ズレジスタに保持されるブロックサイズの値は、CPU
21から設定することができる。サイズレジスタは、シ
ステムバス200における最大ブロックサイズである3
2ワードを指定できるように、5ビットのレジスタにな
っている。
【0091】このような構成のアドレスマップ比較回路
214は、CPU21が非キャッシュ領域に対するリー
ドアクセスを行った場合に、CPUインタフェース回路
211から与えられるアドレスとマップレジスタの値と
を比較し、その比較結果に対応したサイズレジスタが保
持するブロックサイズを転送サイズとして出力する。こ
の転送サイズは、アドレス一致検出回路213、リード
データバッファ215およびメモリバスインタフェース
回路212に与えられる。CPU21がキャッシュ領域
に対するリードアクセスを行った場合には、CPUイン
タフェース回路211から与えられる転送サイズが、そ
のままメモリバスインタフェース回路212に与えられ
る。
【0092】アドレス一致検出回路212は、リードデ
ータバッファ215に記憶されたデータブロックのアド
レスの上位ビット部を記憶するためのアドレスレジスタ
を内部に備えている。このアドレスレジスタには、リー
ドデータバッファ215に記憶されたデータが有効か無
効かを表す有効フラグが含まれている。アドレス一致検
出回路212では、CPU21が非キャッシュ領域への
リードアクセスを行うか、または、任意の領域へのライ
トアクセスを行ったことに応答して、CPUインタフェ
ース回路211から入力されるアドレスの上位ビット部
であるブロックアドレスとアドレスレジスタに保持され
たアドレスとが比較される。具体的には、アドレスマッ
プ比較回路214から与えられるブロックサイズに基づ
き、CPUインタフェース211からのアドレスがブロ
ックアドレスとブロック内アドレス(下位ビット部)と
に分割される。たとえば、ブロックサイズが4ワード
(32バイト)であれば、ブロック内のバイトアドレス
は5ビットになるので、下位5ビットがブロック内アド
レスとされ、残りの上位31ビットがブロックアドレス
となる。この場合には、アドレスの比較は、36ビット
中の上位31ビットに対して実行される。
【0093】CPU21が非キャッシュ領域へのリード
アクセスを行った場合には、ブロックアドレスとアドレ
スレジスタの保持アドレスとが不一致であるか、有効フ
ラグがリセット(無効を表す。)されているか、また
は、ブックサイズが1ワードであることを条件として、
メモリバスインタフェース回路212にリード要求が与
えられる。このとき、アドレス一致検出回路213は、
アドレスレジスタにCPUインタフェース回路211か
らのアドレスをラッチさせるとともに、有効フラグをセ
ットする。
【0094】そして、アドレスマップ比較回路214か
ら与えられるブロックサイズの範囲で下位アドレスを連
続的に変化させたアドレスをメモリバスインタフェース
回路212に与える。この場合のアドレスはCPU21
から受けたアドレスをワード単位に直したアドレスであ
る。つまり、制御線を介してバイト指定を表す制御信号
が与えられた場合でも、全バイトのリードに修正してデ
ータ読出を実行する。なお、ブロックサイズが1ワード
の場合には、CPUインタフェース回路211からのア
ドレス、転送サイズがそのまま出力される。
【0095】ブロックサイズが2ワード以上ならば、メ
モリバスインタフェース回路212は、アドレス一致検
出回路213からのアドレス、アドレスマップ比較回路
214からの転送サイズ、およびCPUインタフェース
211からの制御信号をシステムバス200に供給す
る。たとえば、CPU21が指定したアドレスがDRA
M25のアドレスであれば、DRAMコントローラ22
は、システムバス200から与えられるアドレスに対応
したブロックサイズ分のデータをDRAM25から読み
出し、読み出したデータをシステムバス200からメモ
リバスインタフェース回路212に与える。このデータ
は、リードデータバッファ215に与えられて記憶され
る。
【0096】ブロックアドレスとアドレスレジスタの保
持アドレスとの一致が検出され、かつ、有効フラグがセ
ットされており、かつ、ブロックサイズが2ワード以上
である場合には、メモリバスインタフェース212回路
にリード要求が与えられることはない。この場合には、
CPU21が必要としているアドレスのデータは、リー
ドデータバッファ216内に記憶されているからであ
る。このとき、アドレス一致検出回路213はリードデ
ータバッファ215にブロック内アドレスを与える。こ
れに応答して、リードデータバッファ215はCPU2
1が要求するデータをCPUインタフェース211に与
える。
【0097】なお、CPU21がキャッシュ領域へのリ
ードアクセスを行う場合には、アドレス一致検出回路2
13は、CPU211から与えられるアドレスおよび制
御信号をそのままメモリバスインタフェース212に与
え、上述のような各動作は実行しない。リードデータバ
ッファ215は、システムバス200の最大転送ブロッ
クサイズである32ワードの容量のバッファであり、そ
の記憶データをブロック内アドレスを用いて管理してい
る。使用するブロックサイズが小さい場合にはリードデ
ータバッファ215内のアドレスの小さい方からブロッ
クサイズ分の領域を使用し、残りは使用しない。この構
成により、アドレス一致検出回路213から与えられる
ブロック内アドレスとブロックサイズとに基づいて適当
なワードが選択され、CPUインタフェース回路211
に与えられる。
【0098】なお、リードデータバッファ215は、メ
モリバスインタフェース回路212からのデータを記憶
することなしに素通りさせることもできる。このような
いわばバイパス動作は、CPU21がキャッシュ領域や
IOコントローラ23のレジスタ部のアドレス領域に対
応したIO領域にアクセスした際に行われる。ライトデ
ータバッファ216は、たとえば、32ワードのデータ
を蓄積することができるものであり、CPU21が書込
要求を出力したときに、書込アドレス、書込データのサ
イズ、書込データおよび制御信号をバッファリングする
ために用いられる。そして、アドレスが連続する領域に
関するデータの書込は、或る程度の量のデータが蓄積さ
れた時点で一括して行われる。
【0099】割込み入力回路217は、システムバス2
00からの全ての割込みをCPU21に中継するもので
あり、全ての割込みにそれぞれ対応するリセットフラグ
を有している。このリセットフラグはCPU21からア
クセスすることができるレジスタに保持されている。こ
のリセットフラグをリセットイネーブルの設定にしてお
くと、そのリセットフラグに対応する割込みが発生した
ときに、アドレス一致検出回路214内のアドレスレジ
スタの有効フラグがリセットされ、リードデータバッフ
ァ215内のデータが無効化される。本実施例では、外
部記憶装置からDRAM25へのDMA転送が行われた
後にIOコントローラ23が発生する割込み信号に対応
するリセットフラグが、リセットイネーブルに設定され
る。そのため、DMA転送によってDRAM25の内容
が書き換えられた場合に、アドレスレジスタの有効フラ
グがリセットされる。
【0100】次に、全体の動作について説明する。CP
U21がキャッシュ領域にアクセスしてデータリードを
行う場合、CPU21はまずキャッシュメモリ28にア
クセスする。必要なデータがキャッシュメモリ28に記
憶されている場合には、キャッシュメモリ28からその
データがCPU21に与えられてリード動作が終了す
る。キャッシュメモリ28に必要なデータが無ければ、
CPU21は、CPUインタフェース回路211にリー
ド要求を出す。このとき、CPU21は、必要なデータ
のアドレス、キャッシュ28に転送すべきデータサイズ
である転送サイズ(たとえば8ワード)およびキャッシ
ュ領域へのアクセスであることを表す制御信号をバスコ
ントローラ210に与える。
【0101】バスコントローラ210内のアドレス一致
検出回路213は、キャッシュ領域へのアクセスである
ことを表す制御信号に基づき、CPUインタフェース回
路211から与えられるアドレスをそのまま通し、CP
Uインタフェース回路211で使われる36ビットアド
レスをシステムバスの32ビットアドレスに変換するた
めに、上位4ビットを落としてメモリバスインタフェー
ス回路212からシステムバス200に与える。一方、
転送サイズは、アドレスマップ比較回路214を素通り
してシステムバス200に与えられる。また、CPU2
1のリード要求は、メモリバスインタフェース回路21
2からDRAMコントローラ22へのリード要求として
発行される。DRAMコントローラ22はメモリアクセ
ス時間を経た後、1ワード転送時間毎に1ワードずつを
システムバス200に出力しながら、要求されたブロッ
ク(たとえば8ワード)のデータを連続して転送する。
このデータは、メモリバスインタフェース回路211か
ら、リードデータバッファ215を素通りして、CPU
バス210に与えられる。CPU21は、転送されてき
たブロック中の必要なデータを自身に取り込むととも
に、キャッシュメモリ28へブロック全体をコピーす
る。
【0102】CPU21が非キャッシュ領域にアクセス
してデータリードを行う場合には、アドレス一致検出回
路213では、上述のアドレスレジスタの有効フラグが
調べられる。また、アドレスマップ比較回路214によ
りブロックサイズが調べられる。有効フラグがセットさ
れており、かつ、ブロックサイズが2ワード以上の場合
には、さらに、上述のブロックアドレスとアドレスレジ
スタの保持アドレスとの一致/不一致が検出される。両
アドレスが一致する場合には、ブロック内アドレスがリ
ードデータバッファ215に与えられ、このリードデー
タバッファ215内の記憶データがCPUインタフェー
ス回路211からCPU21に与えられる。これより、
CPU21は必要な1ワードのデータを取得することが
できる。
【0103】なお、CPU21は、バイト単位でリード
要求を出す場合もあるが、この場合にも、リードデータ
バッファ215はワード単位でデータをCPU21に与
える。また、CPU21は自分自身で受け取ることがで
きるだけのデータを要求するので、1ワードを超えるサ
イズのリード要求を発生することはない。有効フラグが
リセットされているか、または、ブロックアドレスとア
ドレスレジスタの値とが不一致である場合には、メモリ
バスインタフェース回路212にリード要求が与えら
れ、アドレスマップ比較回路214が発生するブロック
サイズ分のデータがDRAM25またはVRAM26か
ら読み出される。読み出されたデータがリードデータバ
ッファ215に格納されるのは上述のとおりである。
【0104】なお、アドレスマップ比較回路214が備
える0番から15番のマップレジスタに保持されたアド
レスの値の範囲外のアドレス領域へのアクセスが行われ
た場合には、CPU21からのアドレス、制御信号およ
び転送サイズはそのままシステムバス200に渡され
る。また、アドレスマップ比較回路214がブロックサ
イズとして1ワードを出力する場合(たとえば、IOコ
ントローラ23のレジスタ部のアドレス領域へのアクセ
スの場合)には、CPU21からのアドレス、制御信号
がそのままシステムバス200に渡される。そして、リ
ードしたデータは、リードデータバッファ215を素通
りして、CPU21に与えられる。
【0105】CPU21がDRAM25やVRAM26
などに対するライト動作を行う場合には、アクセスされ
る領域がキャッシュ領域であるか非キャッシュ領域であ
るかにかかわりなく、CPU21からのデータ等はライ
トデータバッファ216に一旦蓄えられる。そして、リ
ードが実行されていないサイクルに、メモリバスインタ
フェース回路212を介して、DRAM25、VRAM
26またはIOコントローラ23に対するデータの書込
がまとめて行われる。
【0106】なお、ライト動作時において、アドレス一
致検出回路213においてライトアドレスとアドレスレ
ジスタとの一致が検出された場合には、このアドレスレ
ジスタの有効フラグがリセットされ、リードデータバッ
ファ215内のデータが無効化される。以上のように本
実施例においても、上述の第1の実施例とほぼ同様な動
作によって、CPU21の非キャッシュ領域へのアクセ
ス時間を短縮して、その動作の高速化を図ることができ
る。
【0107】本発明の実施例の説明は以上のとおりであ
るが、本発明は上記の実施例に限定されるものではな
く、本発明の要旨を変更しない範囲で種々の設計変更を
施すことができる。
【0108】
【発明の効果】請求項1記載の発明によれば、非キャッ
シュ領域内における主記憶装置からのデータの読出をデ
ータブロック毎に行わせ、読み出されたデータブロック
をリードデータバッファに記憶させておくことによっ
て、主記憶装置へのアクセス時間が短縮される。これに
より、処理装置を高速に動作させることが可能になり、
その処理効率を格段に向上することができる。
【0109】請求項2記載の発明によれば、リードデー
タバッファに記憶されたデータに対応するアドレスに対
するデータ書込が行われるときに、リードデータバッフ
ァの記憶データが無効化されるので、誤ったデータが処
理装置に与えられることを防止できる。請求項3または
請求項4記載の発明によれば、処理装置がアクセスする
アドレスに応じて転送されるデータブロックのサイズを
変化させることができるから、たとえば、処理装置がア
クセスするハードウェアごとに適切なサイズを設定する
ことができる。これにより、データ転送の最適化が図ら
れるから、処理装置の処理効率を一層向上できる。
【0110】請求項5記載の発明によれば、主記憶装置
側の1つのアドレスを処理装置側の異なる複数のアドレ
スに対応させることができるから、主記憶装置の或るア
ドレス領域からリードデータバッファにデータを転送さ
せる際のデータブロックのサイズを複数種類に設定する
ことができる。そのため、たとえば、主記憶装置の或る
アドレス領域を共有する複数のプログラムを実行する場
合に、各プログラム毎に最適なデータブロックサイズを
設定できる。これにより、各プログラムの実行時間を短
縮することができる。
【0111】請求項6記載の発明によれば、主記憶装置
に書き込むべきデータはライトデータバッファに一旦蓄
積され、その後に主記憶装置に転送される。この場合
に、ライトデータバッファから主記憶装置へのデータ転
送は、処理装置の処理とは無関係なタイミングで行える
から、たとえば、主記憶装置からのデータ読出を阻害し
ないタイミングで行うことができる。これにより、処理
装置では主記憶装置へのデータ書込を待つこと無くデー
タの読出を行えるので、処理を高速化できる。
【0112】請求項7記載の発明によれば、割込み信号
入力部に所定の割込み信号が入力されることでリードデ
ータバッファの記憶データが無効化される。この場合
に、請求項8に記載されている構成を採用すれば、DM
A転送によって主記憶装置にデータの書込が行われたと
きに、リードデータバッファの記憶データが無効化され
る。そのため、DMA転送後の新たなデータに更新され
てないリードデータバッファ内の記憶データが誤って処
理装置に与えられることを防止できる。
【0113】また、リードデータバッファを無効化する
ために処理装置が特別な処理を行う必要はなく、この無
効化のために処理装置の処理効率が阻害されることもな
い。
【図面の簡単な説明】
【図1】本発明の一実施例のデータ転送制御装置が適用
されたデータ処理装置としてのコンピュータの構成を示
すブロック図である。
【図2】データ読出動作を説明するためのタイムチャー
トである。
【図3】ブロックサイズ発生回路の構成例を示すブロッ
ク図である。
【図4】CPU側のアドレスとメモリバス側のアドレス
との対応関係、およびCPUアドレスとブロックサイズ
との関係の一例を説明するための図である。
【図5】CPU側のアドレスとメモリバス側のアドレス
との対応関係、およびCPUアドレスとブロックサイズ
との関係の他の例を説明するための図である。
【図6】本発明の他の実施例のデータ転送制御装置が適
用されたデータ処理装置としてのコンピュータの構成を
示すブロック図である。
【図7】従来から用いられているコンピュータの構成を
示すブロック図である。
【図8】データ読出動作を説明するためのタイムチャー
トである。
【符号の説明】
21 CPU(処理装置) 22 DRAMコントローラ 23 IOコントローラ 24 フレームバッファコントローラ 25 DRAM 26 VRAM 28 キャッシュメモリ 31 CPUアドレスバス 32 CPUデータバス 40 メモリバス 45 制御バス 50 バスコントローラ 54 アドレス制御回路 61 リードバッファ 62 リードデータマルチプレクサ 68 ブロックサイズマルチプレクサ 69 ブロックサイズ発生回路 75 アドレスレジスタ 80 アドレス比較器 92 ライトアドレスバッファ 93 ライトデータバッファ 94 ライトサイズバッファ 200 システムバス 201 CPUバス 210 バスコントローラ 211 CPUインタフェース回路 212 メモリバスインタフェース回路 213 アドレス一致検出回路 214 アドレスマップ比較回路 215 リードデータバッファ 216 ライトデータバッファ 217 割込み入力回路

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】アドレス空間がキャッシュ領域と非キャッ
    シュ領域とに区分して管理されている処理装置と、この
    処理装置との間でデータが転送される主記憶装置と、上
    記処理装置に接続されているとともに上記主記憶装置の
    記憶データの一部を記憶することができるキャッシュメ
    モリとを備え、上記処理装置が上記キャッシュメモリに
    記憶されていないデータの読出のために上記キャッシュ
    領域内の上記主記憶装置のアドレスにアクセスしたこと
    に応答して上記主記憶装置から上記キャッシュメモリに
    所定単位のデータがブロック転送されるデータ処理装置
    に適用されるデータ転送制御装置であって、 上記非キャッシュ領域内の上記主記憶装置の記憶データ
    を記憶するための所定容量のリードデータバッファと、 上記処理装置がデータ読出のために非キャッシュ領域内
    の上記主記憶装置のアドレスにアクセスしたときに、こ
    のアクセスされるアドレスのデータが上記リードデータ
    バッファに記憶されているかどうかを判定する判定手段
    と、 この判定手段によって、上記処理装置がアクセスした非
    キャッシュ領域のアドレスのデータが上記リードデータ
    バッファに記憶されていないと判定されたときに、上記
    主記憶装置から上記処理装置がアクセスしたアドレスの
    記憶データを含む所定サイズのデータブロックを読み出
    して上記リードデータバッファに転送する手段と、 上記主記憶装置から上記リードデータバッファに転送さ
    れるデータブロック中のデータのうち、上記処理装置が
    アクセスしたアドレスのデータを上記処理装置に与える
    手段と、 上記判定手段によって、上記処理装置がアクセスした非
    キャッシュ領域のアドレスのデータが上記リードデータ
    バッファに記憶されていると判定されたときに、上記リ
    ードデータバッファから上記処理装置がアクセスしたア
    ドレスのデータを読み出して上記処理装置に与える手段
    とを含むことを特徴とするデータ転送制御装置。
  2. 【請求項2】上記処理装置がデータ書込のために上記リ
    ードデータバッファに記憶されたデータに対応するアド
    レスにアクセスしたときに、上記リードデータバッファ
    の記憶データを無効化する手段をさらに含むことを特徴
    とする請求項1記載のデータ転送制御装置。
  3. 【請求項3】上記処理装置が非キャッシュ領域のアドレ
    スにアクセスしたときに、アクセスされたアドレスに基
    づいて上記主記憶装置から上記リードデータバッファに
    転送すべきデータブロックのサイズを定めるブロックサ
    イズ設定手段をさらに含むことを特徴とする請求項1ま
    たは2記載のデータ転送制御装置。
  4. 【請求項4】上記ブロックサイズ設定手段は、 上記処理装置のアドレス空間を区分して得られる複数の
    アドレス領域にそれぞれ対応するとともに、データブロ
    ックのサイズをそれぞれ保持する複数のサイズレジスタ
    と、 上記処理装置がアクセスするアドレスが属するアドレス
    領域に対応した上記サイズレジスタが保持するサイズ
    を、上記主記憶装置から上記リードデータバッファに転
    送すべきデータブロックのサイズとして選択する手段と
    を含むものであることを特徴とする請求項3記載のデー
    タ転送制御装置。
  5. 【請求項5】上記処理装置のアドレス空間は上記主記憶
    装置のアドレス空間よりも大きくとられており、上記主
    記憶装置のアドレス空間の少なくとも一部は上記処理装
    置のアドレス空間の異なる領域に対して重複して対応付
    けられていることを特徴とする請求項3または4記載の
    データ転送制御装置。
  6. 【請求項6】上記処理装置が上記主記憶装置に書き込む
    べきデータを出力したときに、そのデータを一時蓄積す
    る所定容量のライトデータバッファと、 このライトデータバッファに蓄積されたデータを上記主
    記憶装置に転送する手段とをさらに含むことを特徴とす
    る請求項1乃至5のいずれかに記載のデータ転送制御装
    置。
  7. 【請求項7】所定の割込み信号が入力される割込み信号
    入力部と、 この割込み信号入力部に所定の割込み信号が与えられた
    ことに応答して、上記リードデータバッファの記憶デー
    タを無効化する手段とをさらに含むことを特徴とする請
    求項1乃至6のいずれかに記載のデータ転送制御装置。
  8. 【請求項8】上記データ処理装置は、外部機器とのイン
    タフェースと、このインタフェースを介して外部機器と
    上記主記憶装置との間でデータをDMA転送する手段
    と、このDMA転送によって上記主記憶装置へのデータ
    の書込が終了したことに応答して割込み信号を発生する
    割込み信号発生手段とをさらに含み、この割込み信号が
    上記割込み信号入力部に入力されることを特徴とする請
    求項7記載のデータ転送制御装置。
JP5133614A 1993-06-03 1993-06-03 データ転送制御装置 Pending JPH06348593A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5133614A JPH06348593A (ja) 1993-06-03 1993-06-03 データ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5133614A JPH06348593A (ja) 1993-06-03 1993-06-03 データ転送制御装置

Publications (1)

Publication Number Publication Date
JPH06348593A true JPH06348593A (ja) 1994-12-22

Family

ID=15108936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5133614A Pending JPH06348593A (ja) 1993-06-03 1993-06-03 データ転送制御装置

Country Status (1)

Country Link
JP (1) JPH06348593A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221327A (ja) * 1995-02-15 1996-08-30 Nec Corp 情報処理装置
JPH09179780A (ja) * 1995-12-18 1997-07-11 Texas Instr Inc <Ti> バースト可でキャッシュ不可のメモリアクセスを支援するマイクロプロセッサ装置
US6321302B1 (en) * 1998-04-15 2001-11-20 Advanced Micro Devices, Inc. Stream read buffer for efficient interface with block oriented devices
US6560680B2 (en) * 1998-01-21 2003-05-06 Micron Technology, Inc. System controller with Integrated low latency memory using non-cacheable memory physically distinct from main memory
WO2004031963A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. 半導体データプロセッサ
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
JP2007080220A (ja) * 2005-09-16 2007-03-29 Matsushita Electric Ind Co Ltd メモリ制御装置。
JP2009098822A (ja) * 2007-10-16 2009-05-07 Sony Corp データ処理装置及び共有メモリのアクセス方法
WO2010032433A1 (ja) * 2008-09-18 2010-03-25 パナソニック株式会社 バッファメモリ装置、メモリシステム及びデータ読出方法
US7970998B2 (en) 2005-04-08 2011-06-28 Panasonic Corporation Parallel caches operating in exclusive address ranges

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221327A (ja) * 1995-02-15 1996-08-30 Nec Corp 情報処理装置
JPH09179780A (ja) * 1995-12-18 1997-07-11 Texas Instr Inc <Ti> バースト可でキャッシュ不可のメモリアクセスを支援するマイクロプロセッサ装置
US6560680B2 (en) * 1998-01-21 2003-05-06 Micron Technology, Inc. System controller with Integrated low latency memory using non-cacheable memory physically distinct from main memory
US6321302B1 (en) * 1998-04-15 2001-11-20 Advanced Micro Devices, Inc. Stream read buffer for efficient interface with block oriented devices
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
US7277977B2 (en) 2002-07-19 2007-10-02 Hynix Semiconductor Inc. DRAM for high-speed data access
WO2004031963A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. 半導体データプロセッサ
US7356649B2 (en) 2002-09-30 2008-04-08 Renesas Technology Corp. Semiconductor data processor
US7970998B2 (en) 2005-04-08 2011-06-28 Panasonic Corporation Parallel caches operating in exclusive address ranges
JP2007080220A (ja) * 2005-09-16 2007-03-29 Matsushita Electric Ind Co Ltd メモリ制御装置。
JP2009098822A (ja) * 2007-10-16 2009-05-07 Sony Corp データ処理装置及び共有メモリのアクセス方法
WO2010032433A1 (ja) * 2008-09-18 2010-03-25 パナソニック株式会社 バッファメモリ装置、メモリシステム及びデータ読出方法
CN102160041A (zh) * 2008-09-18 2011-08-17 松下电器产业株式会社 缓冲存储器装置、存储器系统以及数据读出方法

Similar Documents

Publication Publication Date Title
JP2565642B2 (ja) マルチプロセッサのための拡張プロセッサバッファインターフェース
US5878268A (en) Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US6665774B2 (en) Vector and scalar data cache for a vector multiprocessor
US5809280A (en) Adaptive ahead FIFO with LRU replacement
JP3289661B2 (ja) キャッシュメモリシステム
US9262174B2 (en) Dynamic bank mode addressing for memory access
US6170070B1 (en) Test method of cache memory of multiprocessor system
JPH0345407B2 (ja)
US20070150665A1 (en) Propagating data using mirrored lock caches
US20070288694A1 (en) Data processing system, processor and method of data processing having controllable store gather windows
JPH01156845A (ja) メモリ・システム
US5590310A (en) Method and structure for data integrity in a multiple level cache system
JP5499987B2 (ja) 共有キャッシュメモリ装置
JPH11203192A (ja) 並列プロセッサおよび演算処理方法
JPH06348593A (ja) データ転送制御装置
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
JPH0754484B2 (ja) 複数のプロセッサを有する計算機システムの記憶制御装置
US6594732B1 (en) Computer system with memory system in which cache memory is kept clean
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP3614946B2 (ja) メモリバッファ装置
JP3260566B2 (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
JP6575194B2 (ja) 演算処理装置および演算処理装置の制御方法
JPH04195563A (ja) メモリシステムの制御装置
JPS5927994B2 (ja) コンピユ−タシステム