[go: up one dir, main page]

JPH06266612A - Dmaコントローラ - Google Patents

Dmaコントローラ

Info

Publication number
JPH06266612A
JPH06266612A JP5712193A JP5712193A JPH06266612A JP H06266612 A JPH06266612 A JP H06266612A JP 5712193 A JP5712193 A JP 5712193A JP 5712193 A JP5712193 A JP 5712193A JP H06266612 A JPH06266612 A JP H06266612A
Authority
JP
Japan
Prior art keywords
data
memory
byte
transfer
speed bus
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
JP5712193A
Other languages
English (en)
Inventor
Tsuyoshi Igarashi
強 五十嵐
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP5712193A priority Critical patent/JPH06266612A/ja
Publication of JPH06266612A publication Critical patent/JPH06266612A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【目的】DMA転送のスタート側とエンド側で端数バイ
トが生じても、高速バス幅でのデータ転送が行えるよう
にする。 【構成】コントロール回路25から転送許可信号32が
出される毎にDMA機器から転送される1バイトデータ
を、カウンタ253の示すレジスタ21内バイト位置に
ラッチさせて、同カウンタ253をカウントアップし、
カウンタ値が0に変化すると、レジスタ21の内容をバ
ッファ22にコピーする。スタートアドレスによりスタ
ート側端数バイトの転送であると判断した際には、同ア
ドレスに対応するメモリ上のワードデータを8バイト幅
の高速バス3を介してレジスタ23にリードした後、レ
ジスタ23の内容のうちスタートアドレスの下位3ビッ
トの示す位置以降のデータ部分をバッファ22の該当部
分にマージ回路24により置き換えさせ、高速バス3を
介してDMA転送して元のワード位置にライトする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は高速バスに接続されたメ
モリと低速バスに接続されたDMA機器(入出力機器)
との間のDMA転送制御を行うDMAコントローラに関
する。
【0002】
【従来の技術】この種のDMAコントローラは、例えば
CPUからの指定により、低速バスに接続されたディス
ク装置などのDMA機器(入出力機器)から転送された
データを高速バスに接続されたメモリにライトするの
に、高速バスを有効に利用するために、高速バスのバス
幅に一致したバイト数を単位のデータ転送(DMA転
送)を行うのを基本としている。したがって、例えば高
速バスのバス幅が8バイト(64ビット)、低速バスの
バス幅が1バイト(8ビット)のシステムでは、DMA
機器からのデータをメモリにライトするのに、基本的に
は、高速バスのバス幅である8バイト全てを利用してデ
ータ転送が行われる。
【0003】しかし、このようなデータ転送が可能であ
るのは、CPUにより指定されたメモリアクセス(DM
A転送)のスタート位置とエンド位置とが8バイト単位
のワード境界に一致して、図5(a)に示すように、端
数バイトが存在しない特別な場合に限られる。
【0004】そして、図5(b)に示すようにスタート
側とエンド側に端数バイトが存在する通常の状態では、
このスタート側とエンド側の端数バイトについては、D
MAコントローラは1バイト単位でデータ転送を行うの
が一般的であった。この場合、データ転送に必要な高速
バス(の使用権)を取得する動作も、端数バイトにいつ
ては1バイト単位で行っていた。
【0005】
【発明が解決しようとする課題】上記したように従来の
DMAコントローラは、低速バスに接続されたDMA機
器からのデータを高速バスに接続されたメモリにライト
するメモリアクセスでは、スタート側とエンド側の端数
バイトについては、1バイト単位でデータ転送を行う必
要があったため、高速バスの使用効率が低下して、DM
A全体の転送速度が低下するという問題があった。
【0006】この発明は上記事情を考慮してなされたも
のでその目的は、DMA機器からのデータを高速バスに
接続されたメモリにライトするメモリアクセス要求に対
して、スタート側とエンド側で端数バイトが生じても、
高速バス幅でのデータ転送が行え、もって高速バスの使
用効率向上、更にはDMA全体の転送速度の向上が図れ
るDMAコントローラを提供することにある。
【0007】
【課題を解決するための手段】この発明は、DMA機器
(入出力機器)から転送されるデータを高速バスに接続
されたメモリにライトするメモリアクセス要求に対し
て、DMA転送のスタート側またはエンド側に高速バス
のバス幅に満たない端数バイトが存在する場合に、転送
先アドレスに対応する高速バス幅のワードデータを上記
メモリからリードする制御手段と、この制御手段により
リードされたデータに対して端数バイトによりその該当
部分の書き換えを行って高速バス幅のライトデータを生
成するマージ手段とを設け、このマージ手段により生成
されたライトデータを高速バスを介してDMA転送して
上記メモリの元のワード位置にライトするようにしたこ
とを特徴とする。
【0008】
【作用】上記の構成において、制御手段は、低速バスに
接続されたDMA機器からのデータを例えば2n バイト
のバス幅の高速バスに接続されたメモリにライトするメ
モリアクセス(メモリライトアクセス)が要求された場
合、DMA機器とDMAコントローラ(に設けたデータ
レジスタ)との間で一定長のデータ、例えば1バイトデ
ータを単位にデータ転送を行う。また制御手段は、この
データ転送の開始時に、メモリスタートアドレス(の下
位nビット)が高速バス幅の開始バイト位置(バイト
0)に対応しているか否かを調べ、対応していないなら
ば、DMA転送のスタート側に端数バイトが存在するる
ものと判断する。この場合、制御手段は、メモリスター
トアドレス(の下位nビットを除く上位アドレス)で指
定されるメモリ上のワード位置のデータ、即ちライト先
に対応する高速バス幅のワードデータを、メモリからリ
ードしておく。
【0009】制御手段は、DMA転送のスタート側で端
数バイトが存在するものと判断した場合には、メモリス
タートアドレスに対応したバイト位置から、高速バスの
バス幅(2n バイト)の最終バイト位置までの端数バイ
トがDMA機器から転送された時点で、マージ手段を制
御して、先にリードしておいたワードデータと当該端数
バイトとをマージさせる。これにより、リードデータ中
の端数バイト該当部分が端数バイトに置き換えられた、
高速バス幅のライトデータが生成される。制御手段は、
このライトデータをDMA転送して上記メモリ内の先に
リードしたのと同じワード位置にライトする。
【0010】これ以後、制御手段は、DMA機器から1
バイト単位で順次転送されるデータが2n バイトになる
毎に、その2n バイトのデータをそのまま高速バスを介
してDMA転送してメモリにライトする。そして、この
DMA転送により残りの転送バイト数が1バイト以上、
高速バス幅(2n バイト)未満になると、制御手段は、
次がDMA転送のエンド側であり、且つ端数バイトが存
在するものと判断する。この場合、制御手段は、ライト
先に対応する高速バス幅のワードデータをメモリからリ
ードししておく。
【0011】制御手段は、DMA転送のエンド側で端数
バイトが存在するものと判断した場合には、最後の1バ
イトデータがDMA機器から転送された時点で、マージ
手段を制御して、先にリードしておいたワードデータと
高速バス幅の開始バイト位置から最後の転送バイトのバ
イト位置までの端数バイトとをマージさせる。これによ
り、リードデータ中の端数バイト該当部分が端数バイト
に置き換えられた、高速バス幅のライトデータが生成さ
れる。制御手段は、このライトデータをDMA転送して
上記メモリ内の先にリードしたのと同じワード位置にラ
イトする。
【0012】
【実施例】図1はこの発明の一実施例に係るDMAコン
トローラを備えた情報処理システムのシステム構成図で
ある。
【0013】図1において、1はシステムの中枢をなす
CPU、2はプログラム、データ等が格納される1ワー
ドが例えば8バイトのメモリ(主メモリ)、3は例えば
8バイトのバス幅(データ幅)の高速バスである。CP
U1およびメモリ2は高速バス3に接続されている。4
はディスク装置などのDMA機器(入出力機器)、5は
例えば1バイトのバス幅の低速バスである。DMA機器
4は低速バス5に接続されている。
【0014】6は高速バス3および低速バス5に接続さ
れたDMAコントローラである。DMAコントローラ6
は、メモリ2とDMA機器4との間のデータ転送を制御
する。本実施例におけるDMAコントローラ6は、DM
A機器4からのデータをメモリ2にライトするメモリア
クセス要求に対して、要求されたサイズのデータのスタ
ート側とエンド側に端数バイトが存在する場合でも、高
速バス3を介してのメモリ2との間のデータ転送(DM
A転送)を常に高速バス3のバス幅(8バイト)で行う
新規な構成を有している。図2はDMAコントローラ6
の構成を示すブロック図である。
【0015】図2において、21は低速バス5を介して
転送されるDMA機器4からの1バイトデータをラッチ
するための8バイトのデータレジスタである。このDM
A機器4からの1バイトデータのデータレジスタ21内
ラッチ位置(バイト位置)は、後述するコントロール回
路25内のバイト位置カウンタ253の値(0〜7のい
ずれか)によって決定される。
【0016】22はデータレジスタ21の内容をラッチ
するための8バイトのデータバッファである。このデー
タバッファ22のラッチタイミングは、データレジスタ
21のバイト7(8バイト目)にデータがラッチされた
直後、または転送データの最終バイトがデータレジスタ
21のいずれかのバイト位置にラッチされた直後であ
る。
【0017】23はメモリ2から高速バス3を介してリ
ードした8バイトメモリデータを保持する8バイトのメ
モリデータレジスタ、24はデータバッファ22のデー
タとメモリデータレジスタ23のデータとをマージする
マージ回路である。
【0018】25はDMAコントローラ6の中枢をなす
コントロール回路である。コントロール回路25は、低
速バス5を介して与えられるDMA機器4からの転送要
求信号31に応じて、データ転送を制御するための各種
コントロール信号を生成する。
【0019】コントロール回路25により生成されるコ
ントロール信号には、DMA機器4への転送許可信号3
2、およびデータラッチ信号33-0〜33-7がある。デ
ータラッチ信号33-i(i=0〜7)は、DMA機器4
からの1バイトデータをデータレジスタ21のバイトi
の位置にラッチさせるのに用いられる。コントロール回
路25により生成されるコントロール信号には更に、デ
ータバッファ22へのデータラッチ信号34、マージ回
路24のマージ動作を制御するためのマージコントロー
ル情報35、および高速バス3への転送要求信号36等
がある。またコントロール回路25には、転送要求信号
36に対する高速バス3からの転送終了信号37が入力
されるようになっている。コントロール回路25は、メ
モリアドレスレジスタ251と、転送バイトカウンタ2
52と、バイト位置カウンタ253とを内蔵する。
【0020】メモリアドレスレジスタ251には、CP
U1により要求されたメモリアクセス(ここでは、メモ
リライトアクセス)の開始アドレス(メモリスタートア
ドレス)が初期設定される。メモリアドレスレジスタ2
51の内容は、高速バス幅のDMA転送が行われる毎に
「8」加算され、その下位3ビットを除く上位ビットに
より、メモリ2上の転送先ワードアドレスを指定する。
【0021】転送バイトカウンタ252には、CPU1
により要求されたメモリアクセスのサイズ(転送バイト
数)が初期設定される。転送バイトカウンタ252は、
DMA機器4から低速バス5を介して1バイトデータが
転送される毎にカウントダウンして、残り転送バイト数
を示す。
【0022】バイト位置カウンタ253には、上記のメ
モリスタートアドレスの下位3ビットが初期設定され
る。このバイト位置カウンタ253は、DMA機器4か
ら低速バス5を介して1バイトデータが転送される毎に
カウントアップして、次に転送される1バイトデータの
データレジスタ21内ラッチ位置(バイト位置)を指定
する。
【0023】次に、この発明の一実施例の動作を、CP
U1からの要求に従い、DMA機器4から転送されるデ
ータを、DMAコントローラ6の制御により高速バス3
を介してメモリ2にDMA転送する場合を例に説明す
る。
【0024】まず、CPU1からDMAコントローラ6
に対し、DMA機器4から転送されるデータをメモリ2
にライトするメモリアクセス(メモリライトアクセス)
が要求されたものとする。この要求では、メモリスター
トアドレス(データ転送開始メモリアドレス)と、転送
サイズ(転送バイト数)が指定される。またCPU1か
らDMA機器4に対して、データリードが要求され、リ
ード開始位置(DMA機器4がディスク装置であれば、
リード開始ディスクアドレス)と転送サイズが指定され
る。
【0025】DMAコントローラ6内のコントロール回
路25は、CPU1からの上記要求により、メモリスタ
ートアドレスをメモリアドレスレジスタ251に、転送
サイズ(転送バイト数)を転送バイトカウンタ252
に、そして上記メモリスタートアドレスの下位3ビット
をバイト位置カウンタ253に、それぞれセットする。
【0026】次にコントロール回路25は、メモリアド
レスレジスタ251の下位3ビットの値(メモリアドレ
スレジスタ251に初期設定されたメモリスタートアド
レスの下位3ビットの値)が「0」であるか否かによ
り、DMA転送のスタート側に端数バイトが存在するか
否かを判断する。この判断は、バイト位置カウンタ25
3の3ビット値に従って行うことも可能である。
【0027】もし、図5(b)に示すデータの転送(メ
モリライト)の例であるならば、メモリスタートアドレ
スの下位3ビットの値は「4」であり、「0」ではな
い。この場合、コントロール回路25は、DMA転送の
スタート側に端数バイトが存在すると判断し、高速バス
3に対して、図4のタイミングチャートに示すようにリ
ードの転送要求信号36を出力する。同時にコントロー
ル回路25は、メモリアドレスレジスタ251の示すメ
モリアドレスのうちの下位3ビットをオール“0”の3
ビットデータに置き換えたメモリアドレスを、高速バス
3に出力する。
【0028】これにより、メモリ2から、上記メモリア
ドレスの下位3ビットを除く上位アドレス、即ちメモリ
スタートアドレスの下位3ビットを除く上位アドレス
(ワードアドレス)で指定される8バイト(64ビッ
ト)のワードデータがリードされ、図4に示すように、
転送終了信号37と共に高速バス3を介してDMAコン
トローラ6に転送される。
【0029】そして、DMAコントローラ6に転送され
たメモリ2からの8バイト(1ワード)のリードデータ
は、同コントローラ6内の8バイトメモリデータレジス
タ23に格納される。このときのメモリデータレジスタ
23の内容は、図3(c)に示すように、“00”〜
“77”であるものとする。
【0030】このように、DMA転送のスタート側で端
数バイトが存在することを判断した場合、コントロール
回路25は、メモリスタートアドレスの下位3ビットを
除く上位アドレス(ワードアドレス)で指定されるメモ
リ2上の8バイト(64ビット)ワードデータを、メモ
リデータレジスタ23にリードしておく。
【0031】一方、DMA機器4は、CPU1からの上
記要求に応じて、データリードを行い、DMAコントロ
ーラ6内のコントロール回路25に対して低速バス5を
介して転送要求信号31を送る。
【0032】コントロール回路25は、DMA機器4か
ら転送要求信号31が送られると、データ入力可能であ
るならば、DMA機器4に対して転送許可信号32を返
す。DMA機器4は、この転送許可信号32に応じてD
MAコントローラ6に対して低速バス5を介して1バイ
トデータを転送する。このように、DMA機器4からD
MAコントローラ6へのデータ転送は、転送要求信号3
1と転送許可信号32に応じて行われる。
【0033】DMA機器4からの1バイトデータはDM
Aコントローラ6内の8バイトデータレジスタ21に導
かれる。このときコントロール回路25は、バイト位置
カウンタ253の3ビット値i(0〜7のいずれか)に
応じて、データラッチ信号33-0〜33-nのうちのデー
タラッチ信号33-iだけをアクティブにする。
【0034】これにより、DMA機器4からの1バイト
データは、データレジスタ21内のバイトiの位置(第
iバイト位置)にラッチされる。図5(b)の例であれ
ば、先頭の1バイトデータの転送時のバイト位置カウン
タ253の値(初期値)は「4」であることから、デー
タラッチ信号33-4がアクティブとなり、同バイトデー
タはデータレジスタ21内のバイト4の位置にラッチさ
れる。
【0035】コントロール回路25は、データレジスタ
21に対するラッチ制御を行うと、転送バイトカウンタ
252を1だけカウントダウンすると共に、バイト位置
カウンタ253を1だけカウントアップする。
【0036】以下同様にして、DMA機器4からDMA
コントローラ6に対する1バイトデータ転送が、転送要
求信号31と転送許可信号32の授受により、繰返し行
われることにより、データレジスタ21のバイト5の位
置に2番目の転送データ(1バイトデータ)が、バイト
6の位置に3番目の転送データが、バイト7の位置に4
番目の転送データが、順にラッチされたものとする。
【0037】このときのデータレジスタ21の内容を図
3(a)に示す。なお、図中の“xx”はデータが不定
の状態であることを示しており、この例では、バイト0
〜3の各データが不定となっている。また、バイト4〜
7の“aa”〜“dd”は、メモリ2にDMA転送すべ
きデータの1番目〜4番目の各バイトデータである。
【0038】さてコントロール回路25は、データレジ
スタ21のバイト7に4番目の転送データをラッチさせ
ると、転送バイトカウンタ252を1だけカウントダウ
ンすると共に、バイト位置カウンタ253を1だけカウ
ントアップする。このとき、バイト位置カウンタ253
の値は、「7」から「0」に変化する。
【0039】コントロール回路25は、バイト位置カウ
ンタ253の値が「7」から「0」に変化したことを検
出すると、データレジスタ21のバイト7の位置にデー
タがラッチされ、高速バス3へ転送すべきメモリアドレ
スに達したものと判断する。
【0040】するとコントロール回路25は、データバ
ッファ22に対するデータラッチ信号34をアクティブ
にして、データレジスタ21の内容をデータバッファ2
2にラッチさせる。即ちコントロール回路25は、バイ
ト位置カウンタ253の値の「7」から「0」への変化
に応じて、データレジスタ21の内容をデータバッファ
22にコピーする。
【0041】この結果、データバッファ22の内容は、
図3(b)に示すように、図3(a)に示すデータレジ
スタ21の内容と同じものとなる。このときのデータバ
ッファ22のバイト4〜7の“aa”〜“dd”が今回
高速バス3へ転送するデータとなる。また、データレジ
スタ21の内容をデータバッファ22にコピーすること
により、DMA機器4からの後続のデータをデータレジ
スタ21にラッチすることが可能となる。
【0042】さて、コントロール回路25は、上記した
ようにバイト位置カウンタ253の値が「7」から
「0」に変化したことを検出すると、マージ回路24に
対してマージコントロール情報35を出力する。このマ
ージコントロール情報35は、スタート側端数バイトの
転送であるかエンド側端数バイトの転送であるかを示す
端数バイト転送タイプ信号と、マージ境界を示す3ビッ
トの境界情報からなる。この境界情報には、スタート側
端数バイトの転送の場合には、その際のメモリアドレス
レジスタ251の下位3ビットの内容、即ちメモリスタ
ートアドレスの下位3ビット(ここでは、値「4」を示
す“100”)が用いられ、エンド側端数バイトの転送
の場合には、バイト位置カウンタ253の内容が用いら
れる。
【0043】マージ回路24は、コントロール回路25
からのマージコントロール情報35中の端数バイト転送
タイプ信号がスタート側端数バイトの転送であることを
示している場合、同コントロール情報35中の3ビット
境界情報の値i(=メモリスタートアドレスの下位3ビ
ットの値)に従い、メモリデータレジスタ23のバイト
0〜i−1のデータと、データバッファ22のバイトi
〜7のデータをマージする。
【0044】また、マージコントロール情報35中の端
数バイト転送タイプ信号がエンド側端数バイトの転送で
あることを示している場合には、マージ回路24は、同
コントロール情報35中の3ビット境界情報の値i(=
バイト位置カウンタ253の値)に従い、データバッフ
ァ22のバイト0〜(i−1)と、メモリデータレジス
タ23のバイトi〜7のデータをマージする。
【0045】したがって、この例のようにスタート側端
数バイトの転送の場合には、メモリアドレスレジスタ2
51に初期設定されているメモリスタートアドレスの下
位3ビットの値が「4」であることから(図5(b)参
照)、マージ回路24は、メモリデータレジスタ23の
バイト0〜3のデータ、即ち“00”〜“33”(図3
(c)参照)と、データバッファ22のバイト4〜7の
データ、即ち“aa”〜“dd”(図3(b)参照)と
をマージして、図3(d)に示す8バイト(1ワード)
データ(マージ後のデータ)を得る。
【0046】コントロール回路25は、以上のマージ回
路24によるマージが終了すると、高速バス3上に、再
び転送要求信号36(但し今回は、ライトのデータ転送
要求を示す転送要求信号36)を出力する(図4参照)
と共に、メモリアドレスレジスタ251の示すメモリア
ドレスのうちの下位3ビットをオール“0”の3ビット
データに置き換えたメモリアドレスをライトメモリアド
レスとして出力する。同時にマージ回路24から高速バ
ス3上に、上記マージ後の8バイトデータ(図3(d)
参照)がライトデータとして出力される。
【0047】これにより、高速バス3上に出力されたラ
イトメモリアドレス(メモリスタートアドレス)の下位
3ビットを除く上位アドレス(ワードアドレス)で指定
されるメモリ2のワード位置に、高速バス3上に出力さ
れた8バイトのライトデータ(図3(d)に示すマージ
後のデータ)が書込まれ(書き戻され)、転送終了信号
37が高速バス3を介してDMAコントローラ6内のコ
ントロール回路25に転送される。
【0048】以上のデータ転送により、メモリスタート
アドレスの下位3ビットの値が「4」のスタート側端数
バイトの転送では、従来であればバイト4〜7の各バイ
ト毎の高速バス転送、即ち4回の高速バス転送が必要で
あったのに対し、2回の転送(1回のリード転送と1回
のライト転送)で終了するため、高速バス転送回数を2
回減らすことができる。
【0049】なお、従来に比べて高速バス転送回数を最
も減らすことができるのは、メモリスタートアドレスの
下位3ビットの値が「1」の場合である。このケースで
は、従来であれば7回の転送が必要であったのに対し、
2回の転送で終了するため、高速バス転送回数を5回減
らすことができる。また、上記3ビット値が「7」の場
合には、従来と同様に1バイトの高速バス転送を行っ
て、1回の転送で済ますようにすることも可能である。
但し、高速バス幅の転送と1バイト転送の両転送方式を
導入すると、制御並びにハードウェア構成の複雑化を招
くことになる。
【0050】コントロール回路25は、ライト要求に対
する高速バス3からの転送終了信号37により、1回の
DMA転送(ここではスタート側端数バイトの転送)の
終了を判断する。この場合、コントロール回路25は、
メモリアドレスレジスタ251の内容Aを、A+8に更
新する。即ちコントロール回路25は、メモリアドレス
レジスタ251に保持されているメモリアドレスの下位
3ビットを除く上位アドレスを、次のワード位置を指す
ように更新する。なお、メモリアドレスレジスタ251
に代えて、メモリスタートアドレスの下位3ビットを除
く上位アドレスが初期設定されて、1回のDMA転送毎
に1カウントアップするカウンタ(ワードアドレスカウ
ンタ)と、メモリスタートアドレスの下位3ビットを保
持する3ビットレジスタを用いることも可能である。
【0051】以後、コントロール回路25は、DMA機
器4との間の転送要求信号31と転送許可信号32の授
受により、DMA機器4からDMAコントローラ6内の
データレジスタ21への後続の1バイトデータ転送を繰
り返し行わせ、その都度、転送バイトカウンタ252を
1だけカウントダウンすると共に、バイト位置カウンタ
253を1だけカウントアップする。
【0052】そしてコントロール回路25は、バイト位
置カウンタ253の値が「7」から「0」に変化する
と、データレジスタ21のバイト7の位置にデータがラ
ッチされて、バイト0〜7に有効なデータ(8バイトデ
ータ)が揃ったものと判断し、同レジスタ21の内容を
データバッファ22にコピーする。次にコントロール回
路25は、高速バス3に対して、このデータバッファ2
2の内容をそのまま出力する。同時にコントロール回路
25は、ライトの転送要求信号36、およびメモリアド
レスレジスタ251の示すメモリアドレスの下位3ビッ
トをオール“0”に置き換えたメモリアドレスも、高速
バス3に出力する。
【0053】なお、データバッファ22の内容をそのま
ま出力するには、コントロール回路25からマージ回路
24に対して、スタート側端数バイトの転送であること
を示す端数バイト転送信号と、値が「0」の3ビット境
界情報からなるコントロール情報35を与えればよい。
最後に、エンド側端数バイトの転送について説明する。
【0054】DMA機器4からDMAコントローラ6内
のデータレジスタ21への後続の1バイトデータ転送が
繰り返された結果、最後の1バイトデータがデータレジ
スタ21にラッチされたものとする。この1バイトデー
タは、図5(b)に示すDMA転送要求データの例で
は、データレジスタ21のバイト5の位置にラッチされ
る。このとき転送バイトカウンタ252は1だけカウン
トダウンされて、その値は「0」となり、バイト位置カ
ウンタ253は1だけカウントアップされて、その値は
(図5(b)から明らかなように)「6」となる。
【0055】コントロール回路25は、転送バイトカウ
ンタ252の値が「0」になると、DMA転送要求デー
タの最終バイトがデータレジスタ21にラッチされたも
のとして、同レジスタ21の内容をデータバッファ22
にコピーする。
【0056】さて、転送バイトカウンタ252の値が
「0」になった際のバイト位置カウンタ253の値が、
この例のように「0」でない場合、コントロール回路2
5は、エンド側端数バイトの転送となることを判断す
る。
【0057】この場合、コントロール回路25は、前記
したスタート側端数バイトの転送の場合と同様にして、
メモリアドレスレジスタ251の示す8バイトのワード
データのリードを行い、メモリデータレジスタ23に格
納する。そしてコントロール回路25は、マージ回路2
4に対して、エンド側端数バイトの転送であることを示
す端数バイト転送タイプ信号と3ビット境界情報からな
るマージコントロール情報35を出力する。エンド側端
数バイトの転送の場合、3ビット境界情報には、バイト
位置カウンタ253の値(ここでは「6」)が用いられ
る。
【0058】マージ回路24は、マージコントロール情
報35中の端数バイト転送タイプ信号がエンド側端数バ
イトの転送であることを示している場合、同コントロー
ル情報35中の3ビット境界情報の値i(ここでは
「6」)に従い、データバッファ22のバイト0〜i−
1と、メモリデータレジスタ23のバイトi〜7のデー
タをマージする。これにより、図5(b)の例では、デ
ータバッファ22のバイト0〜5の6バイトと、メモリ
データレジスタ23のバイト6,7の2バイトがマージ
される。そして、このマージ後の8バイト(1ワード)
データが高速バス3を介してメモリ2に転送され、同メ
モリ2に書き戻される。
【0059】以上のデータ転送により、最終の1バイト
データのバイト位置が「5」のエンド側端数バイトの転
送では、従来であればバイト0〜5の各バイト毎の高速
バス転送、即ち6回の高速バス転送が必要であったのに
対し、2回の転送(1回のリード転送と1回のライト転
送)で終了するため、高速バス転送回数を4回減らすこ
とができる。ここで、上記最終の1バイトデータのバイ
ト位置が「0」の場合には、従来と同様に1バイトの高
速バス転送を行って、1回の転送で済ますようにするこ
とも可能である。
【0060】なお、前記実施例では、転送バイトカウン
タ252の値が「0」になった際のバイト位置カウンタ
253の値が「0」でない場合に、エンド側端数バイト
の転送であると判断するものとして説明したが、これに
限るものではない。例えば、1回のDMA転送の終了毎
に、転送バイトカウンタ252を参照し、その値(即ち
残り転送バイト数)が「1」〜「7」のいずれかである
場合に、エンド側端数バイトの転送であると判断するよ
うにしてもよい。この場合、DMA機器4からDMAコ
ントローラ6への残りのバイトデータの転送と並行し
て、メモリ2からのデータリードを行うことが可能とな
る。
【0061】また、前記実施例では、バス幅(データ
幅)が8バイト(64ビット)の高速バスに接続された
DMAコントローラによるDMA転送ついて説明した
が、この発明は、他のバス幅の高速バスに接続されたD
MAコントローラによるDMA転送にも適用できる。こ
の場合、高速バスのバス幅が例えば2n バイトであるな
らば、バイト位置カウンタにはnビットのカウンタを用
いればよい。
【0062】
【発明の効果】以上詳述したようにこの発明によれば、
DMA機器から要求されたメモリに対するDMA転送の
スタート側またはエンド側に高速バスのバス幅に満たな
い端数バイトが存在する場合には、転送先アドレスに対
応する高速バス幅のワードデータをメモリからリードし
て、このリードデータと端数バイトとをマージして高速
バス幅のライトデータを生成し、このライトデータを高
速バスを介してDMA転送してメモリの元のワード位置
にライトする構成としたので、DMA転送のメモリスタ
ート側とエンド側で端数バイトが生じても、高速バス幅
でのデータ転送が行えるようになり、高速バスの使用効
率、更にはDMA全体の転送速度が向上する。
【図面の簡単な説明】
【図1】この発明の一実施例に係るDMAコントローラ
を備えた情報処理システムのシステム構成図。
【図2】図1中のDMAコントローラ6の構成を示すブ
ロック図。
【図3】スタート側端数バイトの転送時のデータレジス
タ21、データバッファ22、およびメモリデータレジ
スタ23の各内容と、マージ回路24のマージ結果の一
例を対比して示す図。
【図4】スタート側端数バイトの転送時の動作を説明す
るためのタイミングチャート。
【図5】端数バイトが存在しないDMA転送要求データ
と、端数バイトが存在するDMA転送要求データの一例
を示す図。
【符号の説明】
1…CPU、2…メモリ、3…高速バス、4…DMA機
器、5…低速バス、6…DMAコントローラ、21…デ
ータレジスタ、22…データバッファ、23…メモリデ
ータレジスタ、24…マージ回路、25…コントロール
回路、251…メモリアドレスレジスタ、252…転送
バイトカウンタ、253…バイト位置カウンタ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】高速バスに接続されたメモリと低速バスに
    接続されたDMA機器との間のデータ転送を制御するD
    MAコントローラにおいて、 前記DMA機器から転送される前記メモリに対するライ
    トデータを前記高速バスを介して前記メモリにDMA転
    送するための制御手段であって、DMA転送のスタート
    側またはエンド側に前記高速バスのバス幅に満たない端
    数バイトが存在する場合に、転送先アドレスに対応する
    前記高速バス幅のワードデータを前記メモリからリード
    する制御手段と、 この制御手段によりリードされたデータに対して前記端
    数バイトによりその該当部分の書き換えを行って前記高
    速バス幅のライトデータを生成するマージ手段とを具備
    し、前記制御手段は、前記マージ手段により生成された
    ライトデータを前記高速バスを介してDMA転送して前
    記メモリの元のワード位置にライトすることを特徴とす
    るDMAコントローラ。
  2. 【請求項2】前記メモリに対するDMA転送のメモリス
    タートアドレスの下位nビット(但し、高速バス幅は2
    n バイト)が初期設定され、前記DMA機器からのデー
    タ転送毎にカウントアップするカウンタ手段と、前記制
    御手段によりリードされた前記高速バス幅のデータを格
    納するためのメモリデータレジスタとを更に備え、 前記マージ手段は、前記スタート側端数バイトの転送時
    には、前記メモリデータレジスタの内容のうち前記メモ
    リスタートアドレスの下位nビットの示す位置以降のデ
    ータ部分を前記端数バイトで置き換え、前記エンド側端
    数バイトの転送時には、前記メモリデータレジスタの内
    容のうち前記カウンタ手段のカウント値の示す位置より
    前のデータ部分を前記端数バイトで置き換えて、それぞ
    れ前記高速バス幅のライトデータを生成することを特徴
    とする請求項1記載のDMAコントローラ。
JP5712193A 1993-03-17 1993-03-17 Dmaコントローラ Pending JPH06266612A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5712193A JPH06266612A (ja) 1993-03-17 1993-03-17 Dmaコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5712193A JPH06266612A (ja) 1993-03-17 1993-03-17 Dmaコントローラ

Publications (1)

Publication Number Publication Date
JPH06266612A true JPH06266612A (ja) 1994-09-22

Family

ID=13046727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5712193A Pending JPH06266612A (ja) 1993-03-17 1993-03-17 Dmaコントローラ

Country Status (1)

Country Link
JP (1) JPH06266612A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014035617A (ja) * 2012-08-08 2014-02-24 Mega Chips Corp 画像処理インターフェース回路
JP2014035619A (ja) * 2012-08-08 2014-02-24 Mega Chips Corp 画像処理装置
US9552619B2 (en) 2012-08-08 2017-01-24 Megachips Corporation Image processing apparatus and image processing interface circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014035617A (ja) * 2012-08-08 2014-02-24 Mega Chips Corp 画像処理インターフェース回路
JP2014035619A (ja) * 2012-08-08 2014-02-24 Mega Chips Corp 画像処理装置
US9552619B2 (en) 2012-08-08 2017-01-24 Megachips Corporation Image processing apparatus and image processing interface circuit

Similar Documents

Publication Publication Date Title
JP3637054B2 (ja) キャッシュ/メインメモリのコンシステンシを維持するための装置及び方法
KR100337056B1 (ko) 상이한 주파수로 동작하는 버스사이에 전송되는 데이터를버퍼링하는 디바이스 및 방법
US4914575A (en) System for transferring data between an interleaved main memory and an I/O device at high speed
EP0509722B1 (en) Data transfer system
JPH046980B2 (ja)
JPH06266612A (ja) Dmaコントローラ
US6434592B1 (en) Method for accessing a network using programmed I/O in a paged, multi-tasking computer
JP2828643B2 (ja) 直線描画装置
JPH03108182A (ja) メモリー制御装置及びメモリー制御方法
JPS619766A (ja) デ−タ転送装置
JPH04195563A (ja) メモリシステムの制御装置
JPH0831076B2 (ja) 入出力処理装置
JP3520570B2 (ja) メモリアクセス制御装置
JP2581144B2 (ja) バス制御装置
JPH05100926A (ja) 入出力管理方式
JPH06266587A (ja) フラッシュメモリのファイル管理方式
JP2574821B2 (ja) ダイレクトメモリアクセス・コントローラ
JPH0373040A (ja) キャッシュメモリ
JPH01166148A (ja) メモリアクセス装置
JP3285240B2 (ja) 2ポートデータ保証の調停回路
JPS6055459A (ja) プロツクデ−タ転送記憶制御方法
JPH09274599A (ja) バッファメモリ装置
JPH09282231A (ja) ライトバック型キャッシュ装置
JP3076199B2 (ja) バッファアクセス制御回路
JP2002050172A (ja) Fifo制御回路