JPH08328995A - Dma転送方式およびdma転送方法 - Google Patents

Dma転送方式およびdma転送方法

Info

Publication number
JPH08328995A
JPH08328995A JP13820295A JP13820295A JPH08328995A JP H08328995 A JPH08328995 A JP H08328995A JP 13820295 A JP13820295 A JP 13820295A JP 13820295 A JP13820295 A JP 13820295A JP H08328995 A JPH08328995 A JP H08328995A
Authority
JP
Japan
Prior art keywords
transfer
address
block
data
bytes
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
JP13820295A
Other languages
English (en)
Inventor
Hiroshi Kobayashi
浩 小林
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP13820295A priority Critical patent/JPH08328995A/ja
Publication of JPH08328995A publication Critical patent/JPH08328995A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】ラップアラウンドを生じないブロック転送を可
能とする。 【構成】アドレスがブロック単位で管理されるキャッシ
ュメモリ6,7に対してブロック転送を行うDMA転送
方式であって、アドレスおよび転送バイト数を設定する
制御レジスタ1と、その設定から転送開始および転送終
了アドレスを得、転送開始アドレスから該転送終了アド
レスまでのデータをブロック毎に読み出して転送する転
送手段(シーケンス判定部2、バスシーケンス制御部
3、バッファ部4)とを有する。転送手段は、転送開始
および転送終了アドレスがそれぞれブロックの先頭アド
レスおよび末尾アドレスとならない場合は、転送開始ア
ドレスのブロックについては転送開始アドレスからその
ブロックの末尾アドレスまでのバイト数を単位とし、転
送終了アドレスのブロックについてはそのブロックの先
頭アドレスから転送終了アドレスまでのバイト数を単位
としてブロック転送を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、アドレスが所定数毎に
1単位のブロックとされ、データ転送の際にはアドレス
がブロック単位で管理されるメモリに対して、転送デー
タをブロック単位で転送するDMA転送方式およびDM
A転送方法に関する。
【0002】
【従来の技術】DMA転送方式は、メモリと入出力装置
が直接データ転送を行う方式であり、動作を制御する転
送単位(バイト、ワード、ブロック等)、転送元、転送
先、および転送データ量を指定する第1の手段と、指示
によりDMA転送処理を開始し、第1の機能により指定
された量のデータ転送が完了したとき、または異常によ
り転送動作が中断したときに転送処理の終了を通知する
第2の手段とを有している。このDMA転送方式につい
て性能向上を目的としたものに、特開平4−29695
9号公報に開示されるようなキャッシュメモリ(主記憶
装置内の頻繁にアクセスされる部分を記憶する高速のメ
モリ)を搭載したプロセッサ装置においてDMA転送動
作を制御するDMA転送方式がある。以下に、このDM
A転送方式の具体的な特徴について説明する。
【0003】上記公報において、プロセッサ装置は、仮
想記憶方式(情報が存在する場所に関して、命令が生成
するアドレスと実際に情報が存在する物理的位置のアド
レスを分離独立させて記憶する方式)を用いた情報処理
装置であって、中央処理装置、キャッシュメモリ、共通
データ転送経路、主記憶装置、2次記憶装置を備えてい
る。このプロセッサ装置では、ページフォールト(命令
実行中に主記憶装置内にないページがアクセスされる)
発生時に、中央処理装置から2次記憶装置に対して該当
ページの読み出し命令が発行され、2次記憶装置からそ
の読み出し命令に従って読み出された該当ページおよび
これに関する転送先アドレス、ページフォールトアドレ
ス、キャッシュブロックサイズが共通データ転送経路に
送出される。このようにページフォールト発生時に2次
記憶装置から読み出された該当ページが共通データ転送
経路に送出される際は、DMA転送方式により以下のよ
うな転送動作の制御が行われる。
【0004】中央処理装置からの転送命令(読み出され
たページを主記憶装置へ転送する命令)に従って、共通
データ転送回路に送出されたデータおよび転送先アドレ
スを主記憶装置に転送し、同時に現在転送中のメモリア
ドレスとページフォールトアドレスを比較し、これらが
一致した場合にキャッシュ書き込み信号をアクティブに
して、キャッシュメモリに上記共通データ転送回路に送
出されたデータおよび転送先アドレスを取り込ませ、キ
ャッシュメモリの1ブロックサイズ分の転送が終ると今
度はキャッシュ書き込み信号をノンアクティブにしてキ
ャッシュメモリへのデータ取り込みを停止させる。
【0005】上記のようなDMA転送動作により、ペー
ジフォールト発生時の2次記憶装置へのアクセスの際
に、キャッシュのページフォールトを起こしたデータの
ブロック読み出しを並行して実行し、読み出し時間の短
縮を図っている。
【0006】ところで、キャッシュメモリには、データ
転送の高速化を図るため、データ転送をブロック単位で
行えるように、キャッシュの管理をブロック単位で行う
ようにしたものがある。以下、このキャッシュメモリに
おけるリードおよびライトの動作について説明する。
【0007】キャッシュの管理をブロック単位で行うキ
ャッシュメモリでは、ブロック境界である先頭アドレス
から連続する数バイト分のデータを1つの管理単位とす
るため、ブロック内の途中のアドレスを指定し、その指
定アドレスから単位ブロック分のデータのリードを行う
と、まず、指定アドレスからブロック内の最終アドレス
のデータが順にリードされ、その後に、そのブロックの
先頭アドレスから指定アドレスのデータが順にリードさ
れる(リード先のラップアラウンド)。このため、図4
に示す以下のようなブロック転送が行われる。
【0008】図4では、4ワード分のデータを1つの管
理単位としてあり、リード先のキャッシュ・メモリのメ
モリマップには、アドレスa1〜アドレスa4、アドレ
スa5〜アドレスa8の4ワード毎にキャッシュのブロ
ック境界が存在する。リード先のキャッシュメモリか
ら、アドレスa3から4ワード分のデータをリードする
場合は、まず、アドレスa3、アドレスa4、アドレス
a1、アドレスa2の順でリードされてリードデータが
リード元へブロック転送される。続いて、アドレス、a
5アドレスa6、アドレスa7、アドレスa8の順でリ
ードされてリードデータがリード元へブロック転送され
る。このように、アドレスa3から4ワード分のデータ
をリードした場合は、リード先のラップアラウンドによ
りアドレスa1〜a8の2ブロックのデータが転送され
る。
【0009】データのライトを行う場合も上記リードの
場合と同様、ブロック内の途中のアドレスを指定し、そ
の指定アドレスから単位ブロック分のデータのライトを
行うと、まず、指定アドレスからブロック内の最終アド
レスの順にデータがライトされ、その後に、そのブロッ
クの先頭アドレスから指定アドレスのデータが順にライ
トされる(ライト先のラップアラウンド)。このため、
図5に示す以下のようなブロック転送が行われる。
【0010】図5では、上記の図4と同様、4ワード分
のデータを1つの管理単位としてあり、ライト先のキャ
ッシュメモリのメモリマップには、アドレスa1〜アド
レス、a4アドレスa5〜アドレスa8の4ワード毎に
キャッシュのブロック境界が存在する。ライト先のキャ
ッシュメモリに対して、アドレスa3から4ワード分の
データをライトする場合は、ライト先のラップアラウン
ドを考慮して、まず、アドレスa3、アドレスa4、ア
ドレスa1、アドレスa2の順でそれぞれ対応するライ
トデータがライト元からライト先へブロック転送され
る。続いて、アドレス、a5アドレスa6、アドレスa
7、アドレスa8の順でライトデータがライト先へブロ
ック転送される。
【0011】
【発明が解決しようとする課題】上述の特開平4−29
6959号公報に開示されたDMA転送方式において
は、キャッシュの管理単位がバイト、ワード、ブロック
のいずれの場合に適用可能かは記述されていないが、転
送中に転送先メモリアドレスとページフォールトアドレ
スを比較してキャッシュ書き込み指示を行う構成となっ
ていることから、上述のラップアラウンドを伴うキャッ
シュメモリに対してブロック転送した場合には、ライト
先のラップアラウンドを無視してブロック転送が行われ
ることとなり、以下のような問題が生じる。
【0012】図6は、ラップアラウンドを伴うキャッシ
ュメモリに対して、ライト元がライト先のラップアラウ
ンドを無視してブロック転送した場合の転送動作を示す
図である。図6に示すように、ライト先のメモリマップ
のアドレスa3〜a10に対して、ライト先のラップア
ラウンドを無視してライト元からアドレスa3’〜a
6’、アドレスa7’〜a10’の順で4ワード分ずつ
8ワードのデータ転送を行った場合、ライト先では、転
送されたアドレスa3’,a4’,a5’,a6’のラ
イトデータについてはラップアラウンドによりその順序
がアドレスa5’,a6’,a3’,a4’となってメ
モリマップのアドレスa1〜a4にその順序でライトさ
れ、転送されたアドレスa7’,a8’,a9’,a1
0’のライトデータについてはラップアラウンドにより
その順序がアドレスa9’,a10’,a7’,a8’
となってメモリマップのアドレスa5〜a8へその順序
でライトされる。この結果、ライト先のメモリマップの
転送後の状態は、アドレスa1〜a8がアドレスa
5’,a6’,a3’,a4’,a9’,a10’,a
7’,a8’に更新された状態となり、目的とするライ
ト先のメモリマップの状態、すなわち、アドレスa1〜
a12に対してアドレスa1,a2,a3’,a4’,
a5’,a6’,a7’,a8’,a9’,a10’,
a11,a12となる状態と異なることとなる。このよ
うに、上記公報に開示された従来のDMA転送方式に
は、ブロック境界以外のアドレスから始まるキャッシュ
書き込み指示があった場合には、目的のアドレスとは異
なるアドレスがデータ更新されるため、書き込み不可能
となるという問題が生じる。
【0013】なお、上記問題を解決する手段の1つとし
て、前述のライト先のラップアラウンド(図5参照)を
考慮したブロック転送を行うことが考えられる。すなわ
ち、図7に示すように、第1の転送ブロックをアドレス
a3’,a4’のライトデータとライト先のアドレスa
1,a2のデータとでa3’,a4’,a1,a2の順
序で構成し、第2の転送ブロックをアドレスa5’,a
6’,a7’,a8’の順のライトデータで構成し、第
3の転送ブロックをアドレスa9’,a10’のライト
データとライト先のアドレスa11,a12のデータと
でa9’,a10’,a11,a12の順序で構成する
ことにより、アドレスa1〜a12に対してアドレスa
1,a2,a3’,a4’,a5’,a6’,a7’,
a8’,a9’,a10’,a11,a12となるデー
タ更新を行うことができる。しかし、この場合には、第
1および第3の転送ブロックに含まれるライト先のアド
レスa1,a2,a11,a12のデータは予めライト
元でライト先からリードして準備して置く必要があり、
必要なデータ量を転送するためのバスサイクルが増加す
るという問題点がある。また、この間ライト先のアドレ
スa1,a2,a11,a12のデータが他者により書
き変えられないようにバスをロックする必要があり、こ
のためバスをロックする特別な機能が必要となるという
問題点もある。
【0014】本発明の目的は、上記問題を解決し、転送
データをラップアラウンドが生じないようなバイト数の
ブロックでブロック転送するDMA転送方式およびDM
A転送方法を提供することにある。
【0015】
【課題を解決するための手段】本発明のDMA転送方式
は、アドレスが所定数毎に1単位のブロックとされ、デ
ータ転送の際にはアドレスがブロック単位で管理される
メモリとシステムバスを介して接続され、指定されたア
ドレスおよび転送バイト数に基づいて前記メモリから転
送データを読み出して前記システムバス上に送出するD
MA転送方式であって、前記指定されたアドレスおよび
転送バイト数を設定する設定手段と、前記設定手段にて
設定されたアドレス転送バイト数から転送データに関す
る転送開始アドレスおよび転送終了アドレスを得、該転
送開始アドレスから該転送終了アドレスまでのデータを
前記ブロック毎に読み出して送出する転送手段と、を有
し、前記転送手段は、前記転送開始アドレスおよび転送
終了アドレスがそれぞれ前記ブロックの先頭アドレスお
よび末尾アドレスとならない場合は、転送開始アドレス
のブロックについては転送開始アドレスからそのブロッ
クの末尾アドレスまでのバイト数を単位とし、転送終了
アドレスのブロックについてはそのブロックの先頭アド
レスから転送終了アドレスまでのバイト数を単位として
ブロック転送を行うことを特徴とする。
【0016】本発明のDMA転送方式は、アドレスが所
定数毎に1単位のブロックとされ、データ転送の際には
アドレスがブロック単位で管理されるメモリとシステム
バスを介して接続され、指定されたアドレスおよび転送
バイト数に基づいて転送データを前記メモリへ転送する
DMA転送方式であって、前記指定されたアドレスおよ
び転送バイト数を設定する設定手段と、前記設定手段に
て設定されたアドレスおよび転送バイト数から転送デー
タに関する転送開始アドレスおよび転送終了アドレスを
得、前記メモリの該転送開始アドレスから該転送終了ア
ドレスへ転送データを前記ブロック毎に転送する転送手
段と、を有し、前記転送手段は、前記転送開始アドレス
および転送終了アドレスがそれぞれ前記ブロックの先頭
アドレスおよび末尾アドレスとならない場合は、転送開
始アドレスのブロックについては転送開始アドレスから
そのブロックの末尾アドレスまでのバイト数を単位と
し、転送終了アドレスのブロックについてはそのブロッ
クの先頭アドレスから転送終了アドレスまでのバイト数
を単位としてブロック転送を行うことを特徴とする。
【0017】本発明のDMA転送方法は、アドレスが所
定数毎に1単位のブロックとされ、データ転送の際には
アドレスがブロック単位で管理されるメモリとシステム
バスを介して接続され、指定されたアドレスおよび転送
バイト数に基づいて前記メモリから転送データを読み出
して前記システムバス上に送出するDMA転送方法であ
って、前記指定されたアドレスおよび転送バイト数から
転送データに関する転送開始アドレスおよび転送終了ア
ドレスを得、該得られた転送開始アドレスおよび転送終
了アドレスがそれぞれ前記ブロックの先頭アドレスおよ
び末尾アドレスとならない場合は、転送開始アドレスの
ブロックについては転送開始アドレスからそのブロック
の末尾アドレスまでのバイト数を単位とし、転送終了ア
ドレスのブロックについてはそのブロックの先頭アドレ
スから転送終了アドレスまでのバイト数を単位としてブ
ロック転送を行うことを特徴とする。
【0018】本発明のDMA転送方法は、アドレスが所
定数毎に1単位のブロックとされ、データ転送の際には
アドレスがブロック単位で管理されるメモリとシステム
バスを介して接続され、指定されたアドレスおよび転送
バイト数に基づいて転送データを前記メモリへ転送する
DMA転送方法であって、前記指定されたアドレスおよ
び転送バイト数から転送データに関する転送開始アドレ
スおよび転送終了アドレスを得、該得られた転送開始ア
ドレスおよび転送終了アドレスがそれぞれ前記ブロック
の先頭アドレスおよび末尾アドレスとならない場合は、
転送開始アドレスのブロックについては転送開始アドレ
スからそのブロックの末尾アドレスまでのバイト数を単
位とし、転送終了アドレスのブロックについてはそのブ
ロックの先頭アドレスから転送終了アドレスまでのバイ
ト数を単位としてブロック転送を行うことを特徴とす
る。
【0019】本発明のDMA転送方法は、アドレスが所
定数毎に1単位のブロックとされ、データ転送の際には
アドレスがブロック単位で管理されるメモリに対して行
われるDMA転送方法であって、転送データの転送開始
アドレスが前記ブロックの先頭アドレスかどうかを判断
する第1のステップと、前記第1のステップにて転送開
始アドレスがブロックの先頭アドレスと判断された場合
には、該転送開始アドレスから転送データの最後のブロ
ック境界までのバイト数分のブロック転送を行う第2ス
テップと、前記第1のステップにて転送開始アドレスが
ブロックの先頭アドレスでないと判断された場合には、
転送開始アドレスから転送データの最初のブロック境界
までのバイト数分のブロック転送を行う第3のステップ
と、前記第3のステップのブロック転送が行われると、
続いて、次ブロックの先頭アドレスから転送データの最
後のブロック境界までのバイト数分のブロック転送を行
う第4のステップと、前記第2または第4のステップの
ブロック転送が行われると、続いて、転送終了アドレス
がブロックの末尾アドレスかどうかを判断する第5のス
テップと、前記第5のステップにて転送終了アドレスが
ブロックの末尾アドレスでないと判断された場合には、
転送データの最後のブロックの先頭アドレスから転送終
了アドレスまでのバイト数分のブロック転送を行う第6
ステップと、を有することを特徴とする。
【0020】
【作用】アドレスが所定数毎に1単位のブロックとさ
れ、データ転送の際にはアドレスがブロック単位で管理
されるメモリにおいては、ブロック境界である先頭アド
レスから連続する数バイト分のデータを1つの管理単位
とするため、ブロック内の途中のアドレスを指定し、そ
の指定アドレスから単位ブロック分のデータのリード
(またはライト)を行うと、まず、指定アドレスからブ
ロック内の最終アドレスのデータが順にリード(または
ライト)され、その後に、そのブロックの先頭アドレス
から指定アドレスのデータが順にリード(またはライ
ト)されるといったラップアラウンドが生じる。
【0021】本発明のDMA転送方式およびDMA転送
方法では、転送開始アドレスがブロック内の途中のアド
レスであった場合には、そのブロックについては転送開
始アドレスから該ブロックの末尾アドレスまでのバイト
数を単位としてブロック転送が行われるので、このブロ
ック転送によりラップアラウンドが生じることはない。
また、転送終了アドレスがブロック内の途中のアドレス
であった場合には、そのブロックについては該ブロック
の先頭アドレスから転送終了アドレスまでのバイト数を
単位としてブロック転送が行われるので、このブロック
転送においてもラップアラウンドが生じることはない。
このように、本発明では、転送データをラップアラウン
ドを生じることなくブロック転送できるので、ブロック
境界に影響されない転送動作が可能となっている。
【0022】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0023】本発明のDMA転送回路は、前述の図7に
示すような構成のブロック転送は行わず、図8に示すよ
うに、アドレスa5〜a8に関するライトデータにより
ラップアラウンドを伴わない4ワードのブロックを構成
し、アドレスa3,a4およびアドレスa9,a10に
関するライトデータについてはラップアラウンドを伴わ
ないように2ワードのブロックを構成して、ブロック転
送を行うことを特徴とする。
【0024】図1は、本発明の一実施例のDMA転送方
式の概略構成を示すブロック図である。
【0025】図1において、5はDMA転送回路で、設
定手段である制御レジスタ部1と、転送手段を構成する
シーケンス判定部2、バスシーケンス制御部3、および
バッファ部4とにより構成されており、CPU8に接続
されたライト元のキャッシュメモリ6とCPU9に接続
されたライト先のキャッシュメモリ7とを接続するシス
テムバスに接続されている。
【0026】キャッシュメモリ6およびキャッシュメモ
リ7は、バイトを単位とするアドレスが複数バイト毎に
複数のブロックに分割された、ブロック境界を有する同
一構造のメモリである(図2に示すメモリマップ参
照)。これらキャッシュメモリ6,7では、ブロックの
先頭アドレス以外からのデータのリードおよびライトの
動作に前述したラップアラウンドを伴う。
【0027】本実施例では、DMA転送回路5はCPU
8からのデータ転送指示(転送元アドレス、転送先アド
レス、転送データ数等)に基づいてキャッシュメモリ6
からキャッシュメモリ7へのデータ転送を直接行う。以
下、このDMA転送回路5を構成する各部について詳し
く説明する。
【0028】制御レジスタ部1は、CPU8からのデー
タ転送指示(転送元アドレス、転送先アドレス、転送デ
ータ数等)に基づいて、転送元アドレス、転送先アドレ
ス、転送データ数の設定を行う部である。
【0029】シーケンス判定部2は、制御レジスタ部1
にて設定された転送元アドレス、転送先アドレス、およ
び転送バイト数を基に、データの転送がキャッシュメモ
リ6およびメモリキャッシュ7のブロック境界に影響さ
れないように、転送動作の組み合せを判定する部であ
る。具体的には、設定された転送元アドレス、転送先ア
ドレス、および転送バイト数から転送データの転送開始
アドレス、転送終了アドレスを得、この得られた転送開
始アドレスおよび転送終了アドレスがブロックの途中の
アドレスとなった場合には、転送開始アドレスを含むブ
ロックについては、その転送開始アドレスからそのブロ
ックの末尾アドレス(ブロック内のバイト単位で連続す
るアドレスの最後に位置するアドレス)までのバイト数
でデータ転送を行い、転送終了アドレスを含むブロック
については、そのブロックの先頭アドレスから転送終了
アドレスまでバイト数でデータ転送を行う。なお、転送
開始アドレスがブロックの先頭アドレスとなったり、転
送終了アドレスがブロックの末尾アドレスとなったりす
場合には、ブロック単位のバイト数でデータ転送が行わ
れる。
【0030】バスシーケンス制御部3は、シーケンス判
定部2にて判定された転送動作の組み合せに基づいて、
転送元へのリードオーダの送信、転送元からのリードア
ンサの受信、転送先へのライトオーダの送信を行う部で
ある。
【0031】バッファ部4は、バスシーケンス制御部3
により転送元からリードされたデータを受信格納する部
である。
【0032】次に、このDMA転送回路5の動作につい
て説明する。
【0033】図2は、図1に示すDMA転送回路5の動
作を摸式的に表した図である。16および17は、それ
ぞれキャッシュメモリ6およびキャッシュメモリ7のメ
モリマップである。これらメモリマップ16,17は4
バイト幅の構造となっており、バイト単位でアドレッシ
ングされる。なお、横方向はバイト位置(0〜4)を示
し、縦方向は4バイト間隔のアドレスを示し、アドレス
0H,10H,20H,・・・をそれぞれ先頭アドレスと
する16バイト毎のブロックに分割されている。以下、
キャッシュメモリ6のアドレス4Hから33Hまでの48
バイトのデータをキャッシュメモリ7のアドレス4Hか
ら33Hに転送する場合の転送動作について、図2を参
照して説明する。
【0034】キャッシュメモリ6のアドレス4Hから3
3Hまでの48バイトのデータをキャッシュメモリ7の
アドレス4Hから33Hに転送する指示がCPU8からあ
ると、レジスタ制御部1では、その転送指示を基に転送
データに関する転送元アドレスがキャッシュメモリ6の
アドレス4H、転送先アドレスがキャッシュメモリ7の
アドレス4H、および転送バイト数が48バイトに設定
される。
【0035】レジスタ制御部1にて転送元アドレスおよ
び転送先アドレスがアドレス4H、転送バイト数が48
バイトに設定されると、シーケンス判定部2では、その
設定から転送データの転送開始アドレスとしてアドレス
4H、転送終了アドレスとしてアドレス33Hを得る。こ
こで、得られた転送開始アドレスであるアドレス4Hお
よび転送終了アドレスであるアドレス33Hは、いずれ
もブロックの先頭アドレスおよび末尾アドレスとは異な
るため、アドレス4Hから33Hまでの48バイトのデー
タの転送を各キャッシュメモリ6,7のブロック境界に
影響されない以下のようなブロック転送の組み合せとす
る。
【0036】すなわち、キャッシュメモリ6のアドレス
4Hからメモリ7のアドレス4Hへの12バイトブロック
の転送(ブロック転送10)と、キャッシュメモリ6の
アドレス10Hからメモリ7のアドレス10Hへの32バ
イトブロックの転送(ブロック転送11)と、メモリ6
のアドレス30Hからメモリ7のアドレス30Hへの4バ
イトブロックの転送(ブロック転送12)との組み合せ
に分ける。
【0037】シーケンス判定部2によりアドレス4Hか
ら33Hまでの48バイトのデータの転送が上記ブロッ
ク転送10〜12の組み合せに分けられると、バスシー
ケンス制御部3はその組み合せに基づいて、キャッシュ
メモリ6からキャッシュメモリ7へのデータ転送をブロ
ック転送10,11,12の順で以下のように行う。
【0038】(1)ブロック転送10 まず、メモリ6に対して、アドレス4H から12バイト
のデータをブロック転送によりリードするオーダを送信
し、そのリードアンサであるキャッシュメモリ6からの
12バイトのリードデータをバッファ部4に格納する。
そして、キャッシュメモリ7に対して、アドレス4H か
ら12バイトのデータをブロック転送によりライトする
オーダにバッファ部4に格納されたキャッシュメモリ6
からの12バイトのリードデータを付加して送信する。
【0039】なお、ここでは、キャッシュメモリ6とキ
ャッシュメモリ7とは同一のメモリマップ構造となって
いるので、転送動作の組み合せをキャッシュメモリ6の
ブロック境界に影響されないものとすれば、キャッシュ
メモリ7のブロック境界にも影響されないものとなる。
【0040】(2)ブロック転送11 上記(1)の手順と同様に、メモリ6に対して、アドレ
ス10H から32バイトのデータをブロック転送により
リードするオーダを送信し、メモリ6からのリードアン
サである32バイトのリードデータをバッファ部4に格
納し、メモリ7に対して、アドレス10H から32バイ
トのデータをブロック転送によりライトするオーダにバ
ッファ部4に格納されたメモリ6からの32バイトのリ
ードデータを付加して送信する。
【0041】(3)ブロック転送12 上記(1)の手順と同様に、メモリ6に対して、アドレ
ス30Hから4バイトのデータをブロック転送によりリ
ードするオーダを送信し、メモリ6からのリードアンサ
である4バイトのリードデータをバッファ部4に格納
し、メモリ7に対して、アドレス30Hから4バイトの
データをブロック転送によりライトするオーダにバッフ
ァ部4に格納されたメモリ6からの4バイトのリードデ
ータを付加して送信する。
【0042】以上のように、上述の(1)のブロック転
送10および(3)のブロック転送12では、転送開始
アドレスからブロック境界までのワード数分のブロック
転送、および最後のブロック境界から転送終了アドレス
までのワード数分のブロック転送が行われており、これ
により、キャッシュメモリ6,7のブロック境界に影響
されないブロック転送が可能となっている。
【0043】以上説明した転送動作についてその手順を
簡単にフローチャートにしたのが図3である。以下、図
3を参照してDMA転送手順について簡単に説明する。
【0044】まず、転送データの転送開始アドレスがブ
ロックの先頭アドレスかどうかを判断する(ステップS
101)。転送開始アドレスがブロックの先頭アドレス
であれば、転送開始アドレスから最後のブロック境界ま
でのバイト数分のブロック転送が行われ(ステップS1
02)、ブロックの先頭アドレスでなければ、以下のス
テップS103およびS104が行われる。
【0045】転送開始アドレスから転送データの最初の
ブロック境界までのバイト数分のブロック転送が行われ
(ステップS103)、続いて、次ブロックの先頭アド
レスから転送データの最後のブロック境界までのバイト
数分のブロック転送が行われる(ステップS104)。
【0046】上述のステップS102またはステップS
104が行われると、続いて、転送終了アドレスがブロ
ックの末尾アドレスかどうかが判断される(ステップS
105)。転送終了アドレスがブロックの末尾アドレス
であれば処理を終了し、末尾アドレスでなければ、転送
データの最後のブロックの先頭アドレスから転送終了ア
ドレスまでのバイト数分のブロック転送を行い、処理を
終了する(ステップS106)。
【0047】なお、上述した本実施例のDMA転送方式
においては、キャッシュメモリ6,7は、それぞれブロ
ック境界を有する同一のメモリマップ構造となってお
り、データのリードおよびライトの動作にラップアラウ
ンドを伴うものとしたが、一方のキャッシュメモリ7を
連続するアドレスに対して制約なしにブロック転送によ
りリードライト可能なメモリとしても構わない。
【0048】また、上記とは反対に、キャッシュメモリ
6を連続するアドレスに対して制約なしにブロック転送
によりリードライト可能なメモリとすることもできる。
この場合には、シーケンス判定部2が、レジスタ制御部
1に設定された情報を基に、転送データをキャッシュメ
モリ7のブロック境界に影響されないような転送動作の
組み合せとする。具体的には、設定された転送元アドレ
ス、転送先アドレス、および転送バイト数から転送デー
タの転送開始アドレス、転送終了アドレスを得、この得
られた転送開始アドレスおよび転送終了アドレスがブロ
ックの途中のアドレスとなった場合には、転送開始アド
レスを含むブロックについては、その転送開始アドレス
からそのブロックの末尾アドレスまでのバイト数でデー
タ転送を行い、転送終了アドレスを含むブロックについ
ては、そのブロックの先頭アドレスから転送終了アドレ
スまでバイト数でデータ転送を行う。
【0049】さらに、キャッシュメモリ6,7は、異な
る部分にブロック境界を有するメモリマップ構造のもの
であってもよい。この場合には、シーケンス判定部2の
動作が以下のような動作となる。
【0050】レジスタ制御部1に転送元アドレス、転送
先アドレス、および転送データ数が設定されると、シー
ケンス判定部2は、まず、そのレジスタ制御部1に設定
された情報を基にキャッシュメモリ6のブロック境界に
影響されないようなリード動作の組み合せでデータをリ
ードする。続いて、レジスタ制御部1に設定された情報
を基にそのリードされたデータをキャッシュメモリ7の
ブロック境界に影響されないような転送動作の組み合せ
とする。この転送動作の組み合せで、バッファ部4にリ
ードデータが格納される。
【0051】
【発明の効果】本発明のDMA転送方式およびDMA転
送方法は以上説明したように構成されているので、以下
に記載するような効果を奏する。
【0052】(1)ブロック境界に影響されない転送動
作が可能なので、転送順序の入れ替えにより生じていた
転送回数増加によるバススループットの低下を防止でき
るという効果がある。
【0053】(2)加えて、ブロック境界に影響されな
い転送動作が可能となったことにより転送先と転送元の
データの不一致がなくなるので、信頼性が向上するとい
う効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例のDMA転送方式の概略構成
を示すブロック図である。
【図2】図1に示すDMA転送回路5の動作を摸式的に
表した図である。
【図3】図1に示すDMA転送回路5において行われる
DMA転送手順の一例を示すフローチャートである。
【図4】リード先のラップアラウンドを伴うブロック転
送を摸式的に表した図である。
【図5】ライト先のラップアラウンドを考慮したブロッ
ク転送を摸式的に表した図である。
【図6】ライト元がライト先のラップアラウンドを無視
してブロック転送した場合の転送動作を摸式的に表した
図である。
【図7】ライト先のラップアラウンドを考慮してブロッ
ク転送した場合の転送動作を摸式的に表した図である。
【図8】ライト先のラップアラウンドが伴わないブロッ
ク転送動作を摸式的に表した図である。
【符号の説明】
1 制御レジスタ部 2 シーケンス判定部 3 バスシーケンス制御部 4 バッファ部 5 DMA転送回路 6,7 キャッシュメモリ 8,9 CPU

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 アドレスが所定数毎に1単位のブロック
    とされ、データ転送の際にはアドレスがブロック単位で
    管理されるメモリとシステムバスを介して接続され、指
    定されたアドレスおよび転送バイト数に基づいて前記メ
    モリから転送データを読み出して前記システムバス上に
    送出するDMA転送方式であって、 前記指定されたアドレスおよび転送バイト数を設定する
    設定手段と、 前記設定手段にて設定されたアドレスおよび転送バイト
    数から転送データに関する転送開始アドレスおよび転送
    終了アドレスを得、該転送開始アドレスから該転送終了
    アドレスまでのデータを前記ブロック毎に読み出して送
    出する転送手段と、を有し、 前記転送手段は、前記転送開始アドレスおよび転送終了
    アドレスがそれぞれ前記ブロックの先頭アドレスおよび
    末尾アドレスとならない場合は、転送開始アドレスのブ
    ロックについては転送開始アドレスからそのブロックの
    末尾アドレスまでのバイト数を単位とし、転送終了アド
    レスのブロックについてはそのブロックの先頭アドレス
    から転送終了アドレスまでのバイト数を単位としてブロ
    ック転送を行うことを特徴とするDMA転送方式。
  2. 【請求項2】 アドレスが所定数毎に1単位のブロック
    とされ、データ転送の際にはアドレスがブロック単位で
    管理されるメモリとシステムバスを介して接続され、指
    定されたアドレスおよび転送バイト数に基づいて転送デ
    ータを前記メモリへ転送するDMA転送方式であって、 前記指定されたアドレスおよび転送バイト数を設定する
    設定手段と、 前記設定手段にて設定されたアドレスおよび転送バイト
    数から転送データに関する転送開始アドレスおよび転送
    終了アドレスを得、前記メモリの該転送開始アドレスか
    ら該転送終了アドレスへ転送データを前記ブロック毎に
    転送する転送手段と、を有し、 前記転送手段は、前記転送開始アドレスおよび転送終了
    アドレスがそれぞれ前記ブロックの先頭アドレスおよび
    末尾アドレスとならない場合は、転送開始アドレスのブ
    ロックについては転送開始アドレスからそのブロックの
    末尾アドレスまでのバイト数を単位とし、転送終了アド
    レスのブロックについてはそのブロックの先頭アドレス
    から転送終了アドレスまでのバイト数を単位としてブロ
    ック転送を行うことを特徴とするDMA転送方式。
  3. 【請求項3】 アドレスが所定数毎に1単位のブロック
    とされ、データ転送の際にはアドレスがブロック単位で
    管理されるメモリとシステムバスを介して接続され、指
    定されたアドレスおよび転送バイト数に基づいて前記メ
    モリから転送データを読み出して前記システムバス上に
    送出するDMA転送方法であって、 前記指定されたアドレスおよび転送バイト数から転送デ
    ータに関する転送開始アドレスおよび転送終了アドレス
    を得、該得られた転送開始アドレスおよび転送終了アド
    レスがそれぞれ前記ブロックの先頭アドレスおよび末尾
    アドレスとならない場合は、転送開始アドレスのブロッ
    クについては転送開始アドレスからそのブロックの末尾
    アドレスまでのバイト数を単位とし、転送終了アドレス
    のブロックについてはそのブロックの先頭アドレスから
    転送終了アドレスまでのバイト数を単位としてブロック
    転送を行うことを特徴とするDMA転送方法。
  4. 【請求項4】 アドレスが所定数毎に1単位のブロック
    とされ、データ転送の際にはアドレスがブロック単位で
    管理されるメモリとシステムバスを介して接続され、指
    定されたアドレスおよび転送バイト数に基づいて転送デ
    ータを前記メモリへ転送するDMA転送方法であって、 前記指定されたアドレスおよび転送バイト数から転送デ
    ータに関する転送開始アドレスおよび転送終了アドレス
    を得、該得られた転送開始アドレスおよび転送終了アド
    レスがそれぞれ前記ブロックの先頭アドレスおよび末尾
    アドレスとならない場合は、転送開始アドレスのブロッ
    クについては転送開始アドレスからそのブロックの末尾
    アドレスまでのバイト数を単位とし、転送終了アドレス
    のブロックについてはそのブロックの先頭アドレスから
    転送終了アドレスまでのバイト数を単位としてブロック
    転送を行うことを特徴とするDMA転送方法。
  5. 【請求項5】 アドレスが所定数毎に1単位のブロック
    とされ、データ転送の際にはアドレスがブロック単位で
    管理されるメモリに対して行われるDMA転送方法であ
    って、 転送データの転送開始アドレスが前記ブロックの先頭ア
    ドレスかどうかを判断する第1のステップと、 前記第1のステップにて転送開始アドレスがブロックの
    先頭アドレスと判断された場合には、該転送開始アドレ
    スから転送データの最後のブロック境界までのバイト数
    分のブロック転送を行う第2ステップと、 前記第1のステップにて転送開始アドレスがブロックの
    先頭アドレスでないと判断された場合には、転送開始ア
    ドレスから転送データの最初のブロック境界までのバイ
    ト数分のブロック転送を行う第3のステップと、 前記第3のステップのブロック転送が行われると、続い
    て、次ブロックの先頭アドレスから転送データの最後の
    ブロック境界までのバイト数分のブロック転送を行う第
    4のステップと、 前記第2または第4のステップのブロック転送が行われ
    ると、続いて、転送終了アドレスがブロックの末尾アド
    レスかどうかを判断する第5のステップと、 前記第5のステップにて転送終了アドレスがブロックの
    末尾アドレスでないと判断された場合には、転送データ
    の最後のブロックの先頭アドレスから転送終了アドレス
    までのバイト数分のブロック転送を行う第6ステップ
    と、を有することを特徴とするDMA転送方法。
JP13820295A 1995-06-05 1995-06-05 Dma転送方式およびdma転送方法 Pending JPH08328995A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13820295A JPH08328995A (ja) 1995-06-05 1995-06-05 Dma転送方式およびdma転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13820295A JPH08328995A (ja) 1995-06-05 1995-06-05 Dma転送方式およびdma転送方法

Publications (1)

Publication Number Publication Date
JPH08328995A true JPH08328995A (ja) 1996-12-13

Family

ID=15216475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13820295A Pending JPH08328995A (ja) 1995-06-05 1995-06-05 Dma転送方式およびdma転送方法

Country Status (1)

Country Link
JP (1) JPH08328995A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034414A (ja) * 2009-08-03 2011-02-17 Canon Inc Dmaコントローラ
KR101103210B1 (ko) * 2008-05-05 2012-01-05 인텔 코포레이션 시퀀스 번호 랩 어라운드 장치, 방법 및 물품
US10114774B2 (en) 2016-09-14 2018-10-30 Fujitsu Limited Data transfer method, parallel processing device, and recording medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101103210B1 (ko) * 2008-05-05 2012-01-05 인텔 코포레이션 시퀀스 번호 랩 어라운드 장치, 방법 및 물품
JP2011034414A (ja) * 2009-08-03 2011-02-17 Canon Inc Dmaコントローラ
US10114774B2 (en) 2016-09-14 2018-10-30 Fujitsu Limited Data transfer method, parallel processing device, and recording medium

Similar Documents

Publication Publication Date Title
US8365031B2 (en) Soft error correction method, memory control apparatus and memory system
JP3181515B2 (ja) データ転送方法及びその方法を用いたデータ転送装置
JPH08328995A (ja) Dma転送方式およびdma転送方法
JPH0140432B2 (ja)
JPH0877143A (ja) ベクトルデータ処理装置
JP3130798B2 (ja) バス転送装置
JP2594611B2 (ja) Dma転送制御装置
JPS6049952B2 (ja) メモリ制御装置のビジ−制御方式
JP2716254B2 (ja) リストベクトル処理装置
JP2679440B2 (ja) 情報処理装置
JP2826781B2 (ja) データ転送方式
JPH10222460A (ja) データ転送制御装置
JPH0341538A (ja) 主記憶装置
JPS62212745A (ja) バツフア記憶を有するデ−タ処理装置
JPS5842546B2 (ja) ストア制御方式
JPH03105443A (ja) Ramチェック方法
JPS60142450A (ja) 記憶システム
JPH1063569A (ja) 主メモリデータ書込み装置
JPS6336021B2 (ja)
JPS63197254A (ja) 仮想記憶制御装置
JPH05265942A (ja) Dma制御部におけるデータ入出力方法
JPH04262449A (ja) データ転送方式
JPH01158554A (ja) Dma装置を備えたデータ処理システム
JPS63155346A (ja) Ramチエツク方式
JPS63144496A (ja) 記憶装置の書込み制御方式