JPH0619752B2 - データ転送方法及び装置 - Google Patents

データ転送方法及び装置

Info

Publication number
JPH0619752B2
JPH0619752B2 JP2247670A JP24767090A JPH0619752B2 JP H0619752 B2 JPH0619752 B2 JP H0619752B2 JP 2247670 A JP2247670 A JP 2247670A JP 24767090 A JP24767090 A JP 24767090A JP H0619752 B2 JPH0619752 B2 JP H0619752B2
Authority
JP
Japan
Prior art keywords
data
register
data item
location
storage location
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.)
Expired - Lifetime
Application number
JP2247670A
Other languages
English (en)
Other versions
JPH03147168A (ja
Inventor
デービツド・ウエルズ・ポーター
ラルフ・ジヨセフ・スカシア
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03147168A publication Critical patent/JPH03147168A/ja
Publication of JPH0619752B2 publication Critical patent/JPH0619752B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、データ処理システム用のデータ転送の方法お
よび装置に関する。具体的には、本発明は、発信元と宛
先装置との間でデータ項目(バイト)を転送できるよう
にする、直接メモリ・アクセス(DMA)制御装置用の
データ転送の方法および装置に関する。
B.従来の技術 データ処理装置は、一般に、主メモリ、中央演算処理装
置(CPU)および周辺装置(例えば、入出力装置や周
辺メモリ)をもつ。このようなデータ処理システムで
は、情報(データ)の転送は、内部に格納されたプログ
ラムに従って転送動作を実行するCPU制御の下で行な
われる。
このようなデータ処理装置のシステム性能を向上させる
ため、直接メモリ・アクセス(DMA)制御装置を使用
していわゆるDMAデータ処理システムを形成し、CP
Uを使用せずに主メモリと周辺装置の間のデータ転送を
実行してシステム性能を改善することが知られている。
DMAデータ処理システムでは、データは発信元装置か
ら宛先装置の記憶域へデータ・ブロックとして転送さ
れ、したがって高速でデータ転送が実施できる。データ
・ブロックとは、複数個の連続するアドレスまたは記憶
位置に記憶されたデータ項目(例えば、バイト)を指
す。次にDMAデータ処理システムで行なわれる処理の
概略を説明する。
ブロック・データ転送を行なうとき、DMAデータ処理
システムの周辺装置は、DMA制御装置に「要求」信号
を送出して、主メモリとの間でのブロック・データ転送
の実行を要求する。要求信号を受信すると、DMA制御
装置は「保留」要求信号をCPUに送出する。CPU
は、毎回の命令サイクルの後に、DMA制御装置が保留
要求信号を送出したかどうか判定する。保留要求信号が
送出されたと判定されると、CPUは、システム・バス
の制御を放棄してDMA制御装置に渡し、DMA制御装
置は主メモリと周辺装置の間でデータ・ブロックを直接
に転送することができる。ブロック・データ転送が完了
すると、DMA制御装置はシステム・バスの制御を放棄
してCPUに返す。
米国特許第4271466号、第4346439号、第
4471427号、第4542457号および第454
5014号は、既知の直接メモリ・アクセス・データ処
理システムの例である。ここに引用した特許は、引用に
より本明細書に明白に合体され、直接メモリ・アクセス
・データ処理システムを理解する基礎となる。
直接メモリ・アクセス・データ処理システムでは、DM
A制御装置が、データ・ブロックを含む発信元装置アド
レスまたは記憶位置を宛先装置のアドレスまたは記憶位
置と位置合せしないと、DMA制御装置は発信元装置か
ら宛先装置(例えば、メモリ)にそのデータ・ブロック
を直接転送できない。さらに具体的に述べると、発信元
装置の開始アドレス(すなわち、データ・ブロックの開
始アドレス)が宛先装置の指定された開始アドレスと位
置合せされないと、データ・ブロックを宛先に転送でき
ない。この技法は、境界合せと呼ばれている。奇数境界
合せとは、例えば開始アドレスを含むデータ・ワード位
置に対する発信元装置の開始アドレスの相対位置が、そ
の開始アドレスを含む宛先装置データ・ワードに対する
宛先装置の開始アドレスの同じ相対位置に対応しない状
況を指す。例えば、それぞれが複数個の倍データ・ワー
ド(すなわち、4個の連続する(8ビット)バイト)か
らなる2つのメモリを例にとると、アドレス61(16
進数)は、データ・アドレス60−63(16進数)か
らなる倍ワードの「第2」バイトに相当する。アドレス
83(16進数)は、データ・アドレス80−83から
なる倍ワードの「第4」または「最終」バイトに相当す
る。ここで、発信元装置の開始アドレスが61であり、
宛先装置の開始アドレスが83であると、データ・アド
レス61(倍ワード60−63の第2の位置に相当す
る)は宛先装置のアドレス83(倍ワード80−83の
第4または最終位置に相当する)に転送されるので、奇
数境界合せとなる。
IBMテクニカル・ディスクロージャ・ブルテン、19
84年12月号、pp.4247〜4248ページに開
示されているシフタ・ネットワークは、DMA動作モー
ドで使用されて、奇数境界合せアドレス上でマスタ装置
からスレーブ装置へのメモリ間転送を実行する。このシ
フタ・ネットワークは、それぞれが4バイトの3つのレ
ジスタからなる。第1のレジスタはマスタと通信を行な
い、第3のレジスタはスレーブと通信を行なう。
マスタからのデータはシフタ・ネットワークにロードさ
れ、スレーブとのアドレスの不整合または不一致の分量
だけ上下にシフトされる。その結果得られる位置合せさ
れたデータが、第3のレジスタを介してスレーブに転送
される。シフタ・ネットワーク内に残ったデータは反転
フォーマットで第3のレジスタに送られ、その後、次の
データがマスタからロードされる。次に、データは第3
のレジスタに現在記憶されているバイト数だけシフトさ
れ、第3のレジスタはその後データの全ワードを転送す
る。
この参照文献は、奇数アドレス境界上でデータを位置合
せするシステムを開示しているが、DMA制御装置より
小型の発信元と宛先装置の間でのDMA制御装置による
データ転送(すなわち、DMA制御装置が、32ビット
のバス幅をもち、16ビットまたは8ビット・サイズの
発信元/宛先装置間でデータ転送を行なうもの)は考慮
していない。さらに、このシステムは、シフタ・ネット
ワーク内に留まるデータを転送ステップ後に反転して次
のレジスタに送らなければならないので、多少複雑であ
る C.発明が解決しようとする課題 本発明の目的は、奇数境界アドレス上でデータ転送を実
行する方法および装置を改善することである。
本発明の他の目的は、容易に実現できかつ複雑でない、
奇数境界アドレス上でデータ転送を実行する方法および
装置を提供することである。
本発明の他の目的は、DMAデータ処理システム内のさ
まざまなサイズの発信元/宛先装置間で奇数境界上での
データ転送を実行する方法および装置を提供することで
ある。
D.課題を解決するための手段 本発明は、発信元と宛先装置間において奇数境界上で複
数個のデータ項目(バイト)を最短の処理時間に転送す
る直接メモリ・アクセスの方法および装置を用いて、上
記目的を達成するものである。本発明は、2N−1個の
バイトを記憶する一時記憶レジスタを含む。ここで、N
はデータ・バス上のバイトの最大数である。発信元装置
からの最大で丸1個のフル・データ・ワード(すなわ
ち、N個またはそれ以下のバイト)が一時記憶レジスタ
にロードされ、宛先装置の開始アドレスと可能な程度に
位置合せされる。レジスタ内の位置合せされたデータ項
目(バイト)は、次いで宛先装置に転送され、レジスタ
内の残りのデータ項目はレジスタの最下位記憶位置に下
方送りされ、次のフル・データ・ワードが、データ項目
を含まない最上位記憶位置から順にレジスタの記憶位置
にロードされる。最下位記憶位置に記憶されたデータ項
目は、最大で丸1個のフル・データ・ワード(すなわ
ち、N個またはそれ以下のバイトまたはデータ項目)が
宛先装置に転送され、レジスタ内の残りのデータ項目は
下方送りされる。すべてのデータ項目が転送されるま
で、このデータ転送動作が続行される。
本発明の特に重要な特徴の1つは、発信元装置からの最
初の何回かのデータ項目の転送の後に、データがフル・
データ・ワード(すなわち、N個のデータ項目またはバ
イト)ずつの増分で宛先装置に転送され、これによりデ
ータ転送システムの処理速度が向上することである。
E.作用 発信元装置と宛先装置の間で複数個のデータ項目(バイ
ト)を転送するシステムを開示する、このシステムは、
データ項目が、宛先装置の記憶位置に位置合せされるよ
うに、発信元装置からレジスタにデータ項目をロード
し、位置合せされたデータ項目を宛先装置に転送し、レ
ジスタ内の留まるデータ項目を、順次その最下位記憶位
置に下方送りし、所定の数N個のデータ項目を含むフル
・データ・ワードを、発信元装置からレジスタに、デー
タ項目を含むレジスタの最上位記憶位置から順にロード
し、レジスタに記憶されたN個またはそれ以下のデータ
項目を、レジスタの最下位記憶位置から順に宛先装置に
転送する。
F.実施例 第1図は、本発明によるDMA制御装置10の概要を示
す。多数の市販のDMA制御装置を使用して本発明を実
施することができる。例えば、Intel 8237A
−5 プログラマブルDMA制御装置は、本発明を実施
するのに必要な要素およびプログラミング機能の多くを
含む。さらに、先に引用した従来技術の参照文献に記載
されているDMA制御装置は、本発明によるDMA制御
装置を実施するための要素およびプログラミング機能の
多くを含む。しかし、第1図を参照すると、本発明によ
るDMA制御装置10は、宛先装置に転送されるデータ
項目を一時記憶するバッファ・メモリである一時記憶レ
ジスタ20、この一時記憶レジスタ20用のゲート回
路、およびDMA制御装置10に一時記憶されたデータ
項目のカウントをとるカウンタ40を含む。第1図に示
すように、一時記憶レジスタ20は7つの分離した記憶
位置0−6をもち、このそれぞれは1バイト(すなわ
ち、1データ項目)を記憶することができる。記憶位置
0−3だけがDMA制御装置10のデータ出力バスD0
に結合され、データ項目はデータ入力バスDIを介して
記憶位置0−6のどれにも読み込むことができる。デー
タ入力バスおよびデータ出力バスは、周知のように、別
々の2つの32ビット幅バスでも、1つの双方向32ビ
ット幅データ入出力バスでもよい。DMA制御装置10
はさらに、32ビット・アドレス・バス、発信元/宛先
装置が32ビット、16ビットまたは8ビット・サイズ
の装置のいずれであるかを示す2ビット(BS)、書込
み/読取出し線W/R、および発信元/宛先装置がデー
タ転送を実行する準備ができているか否かを示すレディ
線を含む。アドレス線のいくつかのビットが、データ出
力バス(DO)上のどこで宛先装置が有効データを見つ
けることができるかを宛先装置に示す、バイト・エネー
ブル(BE)信号用に指定される。第1図に示すよう
に、32ビット幅データ・バスには、4本の8ビット幅
線が含まれる。バイト・エネーブル信号(BE)は、4
本の線のうちのどの1本が有効データを含んでいるかを
宛先装置に示す。データは4本の8ビット線のうちの1
本または複数本の線上に供給されるので、アドレス信号
の4ビットが、バイト・エネーブル信号用に指定される
(すなわち、4ビットまたはBEビット0−3が、バイ
ト・エネーブル信号のすべての「有効」な組合せをカバ
ーするのに必要である)。これらの有効な組合せは、複
数のBEビットがエネーブルされているとき、連続した
バイト・エネーブルをもつものである。
第2図は、本発明によるDMA制御装置のデータ転送動
作のフローチャートである。具体的に述べると、第2図
は発信元装置から宛先装置へのデータ転送動作を示す。
発信元装置および宛先装置は、例えば、ともにメモリで
もよい。
上述のように、DMA動作モードで発信元装置から宛先
装置に転送されるデータは、実際は複数個のデータ項目
(バイト)からなるデータ・ブロックで構成される。転
送されるデータ・ブロックは、各バイトが異なるアドレ
スまたは記憶位置に記憶される(8ビット)バイトまた
はデータ項目の列であると見なしてよい。連続する2つ
のバイト(すなわち、それぞれ1バイトのデータを含む
連続する2つのアドレス位置)は、(16ビット)ワー
ドに相当し、連続する4つのバイトは(32ビット)倍
ワードに相当する。データ・ブロックを発信元装置(例
えば、第1メモリ)から宛先装置(例えば、第2メモ
リ)へ転送するには、DMA制御装置は、転送されるデ
ータの全量(例えば、全バイト数)と共に、発信元装置
の開始アドレスまたは初期アドレスまたは記憶位置を受
信しなければならない。この開始アドレスは、転送され
るデータの最初のバイトが置かれるアドレスに相当す
る。宛先装置がメモリである場合、DMA制御装置は、
発信元装置から転送されるデータの最初のバイトが記憶
される宛先装置のアドレス位置をも受信する必要があ
る。
第2図を参照すると、本発明によるブロック・データ転
送動作は、ステップ1−12で表される12のステップ
を含む。この12のステップの概要をまず説明し、続い
てデータ・ブロック転送の特定の例を示す。
ステップ1で、DMA制御装置10は、発信元装置から
倍ワードのデータを取り出す。前述のように、倍ワード
のデータは連続した4つのデータ・バイトに相当する。
必要なデータ・バイトが、次に一時記憶レジスタ20に
ロードされ、その結果、ステップ2で、発信元装置開始
アドレス(以下、第1データ入力アドレスという)に相
当するデータ・バイトが、宛先装置開始アドレス(以
下、第1データ出力アドレスという)と位置合せされ
る。前述のように、発信元装置および宛先装置の開始ア
ドレスは共にDMA制御装置に供給される。この「位置
合せ」処理の詳細は、後で第3図、第4図および第6図
に示す特定の例に関して説明する。
次にステップ3で、カウンタ40が、一時記憶レジスタ
内の位置合せされたデータ・バイトの数にセットされ、
ステップ4で、この位置合せデータ・バイトが、データ
出力バスDOを介して宛先装置に転送される。次に、ス
テップ5で、カウンタ40が、ステップ4で転送された
位置合せされたバイトの数だけ減分される。次にステッ
プ6で、DMA制御装置10は、減分されたカウンタ4
0がゼロに等しいかどうか判定する。ステップ6でカウ
ンタがゼロに等しい場合は、ステップ7に進み、DMA
制御装置10は、データ項目(バイト)が一時記憶レジ
スタ内に残っているか否かを判定する。ステップ6でカ
ウンタがゼロに等しくない場合は、次に、ステップ9
で、一時記憶レジスタ内に残ったデータ・バイトがすべ
て「下方送り」され、その後、ステップ4に進む。
一時記憶レジスタ20内でのデータ・バイトまたは項目
の下方送りについても、後で第3図、第4図および第6
図に関して詳細に説明する。簡単に述べると、下方送り
処理は、一時記憶レジスタの最下位データで充填された
記憶位置から一時記憶レジスタの最下位記憶位置へデー
タ・バイトを転送することを指す。ステップ9で下方送
りされる分量は、ステップ4で最後に転送された最上位
記憶位置のデータ・バイト+1に等しい。
ステップ7でDMA制御装置が一時記憶レジスタ20内
にデータ項目が残っていないと判定した場合、ステップ
8で、発信元装置の次の倍データ・ワードが取り出さ
れ、その後に、ステップ2に進む。ステップ7でデータ
項目が一時記憶レジスタに残っているとDMA制御装置
10が判定した場合は、ステップ10で、データ項目の
下方送りが行なわれる(すなわち、一時記憶レジスタに
記憶された各データ項目が、ステップ3で最後に転送さ
れたデータ項目(バイト)の最上位記憶位置+1だけ下
方送りされる)。
次にステップ11に進み、DMA制御装置10は発信元
装置から次の倍ワードを取り出し、ステップ12で、こ
の取り出された倍ワードが、下方送りされたデータの後
の次の最上位記憶位置から順に一時記憶レジスタ20に
ロードされる。この後、ステップ3に進む。
第2図に示す処理は、データ・ブロックが発信元装置か
ら宛先装置に転送されるまで継続する。
次に、第3A図ないし第3H図に基づき、第2図のステ
ップを参照しながら、記憶位置に記憶されたデータ・ブ
ロックを32ビット発信元装置から32ビット宛先装置
に転送する例を説明する。この例では、発信元装置のア
ドレス61(16進数)から始まる記憶位置に記憶され
たデータ・ブロックが、宛先装置の開始アドレス83
(16進数)をもつメモリ位置に転送される。したがっ
て、この例では、DMA制御装置10には、発信元装置
および宛先装置の開始アドレス(すなわち、61と8
3)が、転送されるデータの全分量と共に供給される。
以下の説明で、「データ・アドレスX」(より一般的に
は「データ・アドレス」)という表現は、上記のアドレ
スXで始まる記憶位置に記憶されたデータを指す。デー
タ・アドレス61は、アドレス60−63(16進数)
からなる倍ワード内にあるので、第3A図に示すよう
に、これらのデータ・アドレスがDMA制御装置によっ
て取り出され、データ入力バスDIに置かれる(ステッ
プ1)。第1のデータ入力アドレス61は第1のデータ
出力アドレス83と位置合せされ、またデータ出力アド
レス83は、データ・アドレス80−83からなる倍ワ
ードの「最後の」または「第4の」バイトに相当するの
で、データ・アドレス61−63は、第3B図に示すよ
うに、それぞれ一時記憶レジスタの記憶位置3−5にロ
ードされる。第1図に示しかつ前述したように、データ
出力バス(DO)は一時記憶レジスタ20の記憶位置0
−3に結合されている。記憶位置3(すなわち、データ
出力バスDOに転送されるデータ・バイトの最後のまた
は第4の記憶位置)にデータ・アドレス61がロードさ
れると、データ・アドレス83がデータ・アドレス80
−83からなる倍ワードの最後のまたは第4のバイトに
相当するので、データ・アドレス61が確実に宛先装置
のデータ・アドレス83に位置合せされまたはそれを
「指す」ようになる。
一時記憶レジスタ20の位置0−3に記憶されているデ
ータ・バイトだけが出力バスDOに転送されるので、こ
れらの位置0−3に記憶されているデータ・バイトだけ
が宛先装置のアドレスに「位置合せ」できる。
データ・アドレス61だけが一時記憶レジスタ20内で
位置合せされているので、次にカウンタ40がゼロにセ
ットされる(ステップ3)。
第3C図に示すように、位置合せされたデータ・バイト
61は、次に、データ出力バスDOを介して宛先装置の
アドレス83へ転送される(ステップ4)。現在、1に
セットされているカウンタ40は、位置合せされたデー
タ・バイト61が1つだけ転送されたので、次に1だけ
減分される(ステップ5)。減分されたカウンタ40は
ゼロになり(ステップ6)、かつアドレス62および6
3のデータ・バイトは一時記憶レジスタ20内になお残
っているので(ステップ7)、データの下方送り操作が
実行される(ステップ10)。
第3D図は、データ・アドレス62および63の下方送
り動作の結果を示す。先に説明したように、下方送り量
は、最後に転送したデータ・バイトの最上位記憶位置+
1に等しい。第3B図で、データ・アドレス61(転送
されたただ1つのデータ・バイト)が一時記憶レジスタ
20の記憶位置3に記憶された。したがって、第3D図
に示すように、データ・アドレス62および63はそれ
ぞれ、記憶位置0および1へと4記憶位置(4=3+
1)だけ下方送りされる(ステップ10)。
第3E図に示すように、次の倍ワード(すなわち、デー
タ・アドレス64−67)が次に発信元装置から取り出
され、データ入力バスDIに置かれる(ステップ1
1)。この取り出された倍ワードが、次に一時記憶レジ
スタ20に、下方送りデータ62および63の後にロー
ドされる(ステップ12)。第3F図に示すように、デ
ータ・アドレス64−67はそれぞれ一時記憶レジスタ
20の記憶位置2−5にロードされる。一時記憶レジス
タの記憶位置0−3はそれぞれデータ・アドレスを含む
ので、カウンタ40が、次に4にセットされる(ステッ
プ3)。第3G図に示すように、4つの位置合せされた
データ・アドレス62−65が、次にデータ出力バスD
Oを介して宛先装置に転送される(ステップ4)。カウ
ンタ40が、次に4(すなわち、転送された位置合せさ
れたデータ・バイト数)だけ減分される(ステップ
5)。減分されたカウンタ40はゼロに等しく(ステッ
プ6)、かつデータ・アドレス66および67が一時記
憶レジスタ20になお残っているので(ステップ7)、
第3H図に示すように、データ・アドレス66および6
7が、それぞれ一時記憶レジスタ20の記憶位置0およ
び1に下方送りされる(ステップ10)。具体的には、
最後に転送されたデータ・バイトの最上位記憶位置が位
置3であったので、データ・アドレス66および67は
それぞれ、4記憶位置(4=3+1)だけ下方送りされ
る。
データ・ブロックのすべてのデータ項目が転送されるま
でこの処理は継続する。したがって、DMA制御装置
は、転送されたデータ・バイトの数を記録して、データ
・ブロックが完全に転送されたときを知る必要がある。
この動作はカウンタで実行でき、このカウンタは、デー
タ・ブロックに含まれるデータ・バイト数に等しく初期
設定され、データ・バイトが一時記憶レジスタから転送
されるごとに減分される。このカウンタがゼロに等しく
なると、データ・ブロック内のデータ・バイトがすべて
転送されたことになる。
第4A図ないし第4C図を参照して、32ビット発信元
装置と32ビット宛先装置の間のブロック・データ転送
のもう1つの例を説明する。この例では、記憶装置のア
ドレス62(16進数)で始まるデータ・ブロックが、
アドレス81(16進数)で始まる宛先装置へ転送され
る。
第4A図を参照すると、データ・アドレス61はアドレ
ス60−63からなる倍ワード内にあるので、DMA制
御装置10は、この倍ワードを発信元装置から取り出
し、データ入力バスDIに置く(ステップ1)。第1の
データ入力アドレス62が第1のデータ出力アドレス8
1(これは、倍ワード80−83の「第2」バイトであ
る)に位置合せされているので、データ・アドレス62
は一時記憶レジスタ20の記憶位置1(すなわち、「第
2」記憶位置)にロードされ、データ・アドレス63は
記憶位置2にロードされる(ステップ2)。一時記憶レ
ジスタ20には位置合せされた2つのデータ・バイト
(62および63)があるので、カウンタ40は、2に
セットされる(ステップ3)。データ・アドレス62お
よび63は、次にデータ出力バスDOを介して宛先装置
に転送され(ステップ4)、カウンタ40が2だけ減分
される(ステップ5)。減分されたカウンタ40はゼロ
に等しく(ステップ6)、かつ一時記憶レジスタ20内
にデータ項目が残っていないので(ステップ7)、第4
B図に示すように、次の倍ワードが発信元装置から取り
出され(ステップ8)、データ入力バスDIに置かれ
る。次に取り出された倍ワードは、一時記憶レジスタ2
0にロードされ、第1のデータ入力アドレス64が第1
のデータ出力アドレス83に位置合せされる。宛先装置
のアドレス83はアドレス80−83からなる倍ワード
の第4のまたは最後のバイトなので、第4B図に示すよ
うに、それぞれ一時記憶レジスタ20の記憶位置3−6
にロードされる(ステップ2)。
したがって、データ・アドレス64は発信元装置内のア
ドレス64−67からなる倍ワードの第1のバイトであ
るが、データ・アドレス64は宛先装置内のアドレス8
0−83からなる倍ワードの第4のまたは最後のアドレ
ス83に転送されるので、データ・アドレス64は一時
記憶レジスタ20の位置0ではなく記憶位置3に記憶さ
れる。
第4B図に示すように、カウンタ40が、次に1にセッ
トされ(ステップ3)、位置合せされたデータ・アドレ
ス64がデータ出力バスDOを介して宛先装置に転送さ
れる(ステップ4)。
次にカウンタ40が1だけ減分される(ステップ5)。
減分されたカウンタ40はゼロにセットされ(ステップ
6)、かつデータ・アドレス65−67が一時記憶レジ
スタ20に残っているので(ステップ7)、これらのデ
ータ・アドレス65−67は一時記憶レジスタ内で下方
送りされ(ステップ10)、次の倍ワード(すなわち、
68、69、6A、6B)が発信元装置から取り出され
る(ステップ11)。第4C図に示すように、次に取り
出されたワードは、一時記憶レジスタ20に下方送りさ
れたデータ65−67の後にロードされる(ステップ1
2)。
データ・ブロック内のすべてのデータ項目(バイト)が
転送されるまで、処理は継続する。
第3図および第4図に関して先に述べた例では、発信元
および宛先装置はともに32ビット装置である。しかし
実際には、DMA制御装置10は、32ビット装置だけ
でなく16ビット装置と8ビット装置の間でもデータ・
ブロックの転送を実行することが望まれる。しかし、1
6ビット装置および8ビット装置は、32ビット幅の入
出力バスをもつDMA制御装置から転送されるデータの
すべては受信しない。さらに具体的に述べると、第5図
は、DMA制御装置10と32ビット装置、16ビット
装置および8ビット装置の間のバス接続を示す。第5図
に示すように、一時記憶レジスタ20の記憶位置0−3
は、それぞれ32ビット・データ出力バスDOの4本の
8ビット線(BYTES)に結合されている。32ビッ
ト装置は、DMA制御装置の32ビット・データ出力バ
スDOの4本のBYTESすべて上のデータを受信する
ように結合されているので、一時記憶レジスタ20の記
憶位置0−3から転送されるすべてのデータ・バイトが
32ビット装置によって受信される。しかし、16ビッ
ト装置(16ビット幅の入力バスをもつ)は、一時記憶
レジスタ20の記憶位置0および1から転送されたデー
タ・バイトしか受信できない。さらに、8ビット装置
(8ビット幅の入力バスをもつ)は、一時記憶レジスタ
20の記憶位置0から転送された1つのデータ・バイト
しか受信できない。このように、一時記憶レジスタ20
の記憶位置2または3に記憶されたデータ・バイトは、
16ビット装置または8ビット装置に転送できないこと
が分かる。
DMA制御装置10が、32ビット装置だけでなく、1
6ビット装置および8ビット装置にもデータ転送を行な
うために、本発明は、「データ複製」法と呼ばれるもの
を利用する。16ビット装置は一時記憶レジスタ20の
記憶位置2および3から転送されるデータ・バイトを受
信できず、8ビット装置は一時記憶レジスタ(TSR)
20の記憶位置1、2および3から転送されるデータ・
バイトを受信できない。一般に、このデータ複製法は、
8ビット装置および16ビット装置に転送中にデータを
「複製」して、他の方法では転送できなかったデータが
正しく転送できるようになる。
第6A図ないし第6F図は、データの複製が必要な状況
でのデータを転送を示す。第6A図ないし第6F図はま
た、これらの転送のそれぞれに関連するバイト・エネー
ブル信号(BE0−BE3)も示す。例えば、第6A図
では、一時記憶レジスタ20の記憶位置1からのデータ
・バイトが転送される。8バイト装置は一時記憶レジス
タ20の記憶位置0にロードされるデータ・バイトしか
受信できないので、この転送が8ビット装置に行なわれ
る場合には、データ複製を行なわないと転送は不成功に
終わる。しかし、本発明で利用するデータ複製方法によ
れば、記憶位置1にロードされたデータ・バイトも、第
6A図の矢印で示すように、一時記憶レジスタ20の記
憶位置0からの転送に相当する、データ・バスDOのバ
イトに供給されることになる。バイト・エネーブル信号
BE(0−3)は、一時記憶レジスタ20の記憶位置0
−3に記憶されたデータ・バイトに相当する。さらに具
体的に述べれば、第5図に示すように、位置0に記憶さ
れたデータ・バイトは、BE=1(16進数)に相当
し、位置1に記憶されたデータ・バイトは、BE=2
(16進数)に相当し、位置2に記憶されたデータ・バ
イトは、BE=4(16進数)に相当し、位置3に記憶
されたデータ・バイトは、BE=8(16進数)に相当
する。このように、この重み付けシステムを用いて、一
時記憶レジスタ20に記憶されたデータ・バイトの16
通りの異なる可能な組合せに対応する10組の異なる組
合せを指定することができる。TSRデータは連続でな
ければならないので、16進数値0、5、9、A、B、
Dは、有効なBEエネーブルの組合せではない。第6A
図では、一時記憶レジスタの位置1にデータ・バイトが
1つだけ記憶されているので、バイト・エネーブル信号
BE(0−3)は、BE=2(16進数)に等しい。
他の例を挙げると、第6E図では、データ・バイトが一
時記憶レジスタ20の位置2および3に記憶されてい
る。したがって、16ビット装置はTSR位置0および
1から転送されたデータ・バイトしか受信できず、8ビ
ット装置はTSR位置0から転送されたデータ・バイト
しか受信できないので、32ビット装置だけがこれらの
データ・バイトを受信できる。第6E図に矢印で示すよ
うに、位置2および3に記憶されているデータ・バイト
は、データ出力バスDO上に供給され、16ビット装置
または8ビット装置は、転送されたデータを受信するこ
とができるようになる。
第6E図で、バイト・エネーブル信号は、C(16進
数)に等しく、これは一時記憶レジスタ20の位置2お
よび3からのデータ・バイトが転送されるという、この
図に示したデータ転送状況に相当する。上述のデータ複
製方法を実施するための回路については、第8図に関し
て説明する。
第7A図ないし第7D図は、発信元装置と宛先装置の間
でのブロック・データ転送の他の例を示す。この例で
は、発信元装置と宛先装置とは、ともに16ビット装置
である(すなわち、16ビット幅のデータ入出力バスを
もつ)。したがって、DMA制御装置10は、発信元装
置と宛先装置がともに16ビット・サイズの装置である
ことを示す信号をビット・サイズ線BS(第1図)上で
受信することになる。
この例では、発信元装置のアドレス61(16進数)で
始まるデータ・ブロックが、アドレス82(16進数)
で始まる宛先装置に転送される。データ・アドレス61
は、アドレス60−63からなる倍ワード内にある。し
たがって、データ・アドレス60−63が発信元装置か
ら取り出され、データ入力バスDIに置かれる。DMA
制御装置は32ビット装置であり、したがって(32ビ
ット)倍ワードを取り出すことができるが、発信元装置
が16ビット装置であるので、発信元装置から一時に1
(16ビット)ワードしか取り出すことができない。し
たがって、データ・バイト60および61がまず取り出
されてデータ入力バスDIに置かれ、次にデータ・アド
レス62−63が取り出されてデータ入力バスDIに置
かれる(ステップ1)。すなわち、発信元装置が32ビ
ットより小さい(たとえば、16ビットまたは8ビット
装置)場合は、DMA制御装置10は、4バイト幅のバ
スの場合、倍ワード境界に達するまで、取出しループ中
に留まらなければならない。
倍ワード(すなわち、データ・アドレス60−63)が
取り出されると、これらのデータ・アドレスは一時記憶
レジスタ20にロードされ、第1のデータ入力アドレス
61が第1のデータ出力アドレス82に位置合せさせ
る。データ・アドレス82は、アドレス80−83から
なる倍ワードの「第3」のアドレスなので、データ・ア
ドレス61−63は、一時記憶レジスタ20の記憶位置
2−4にロードされる。具体的には、データ・アドレス
61は一時記憶レジスタ20の「第3」の記憶位置2に
ロードされ、したがって宛先装置の第1のデータ出力ア
ドレス82に位置合せされる(ステップ2)。カウンタ
40は、位置2および3がデータ・バイトを含むので、
次に2にセットされる(ステップ3)。位置合せされた
データ・アドレス61−62は、次に、それぞれデータ
出力バスDOを介して宛先装置のアドレス82および8
3に転送される。しかし、宛先装置は16ビット装置な
ので、一時記憶レジスタ20の記憶位置0および1から
転送されたデータ・バイトしか受信できない。したがっ
て、第7A図に示すように、データ・アドレス61およ
び62は、データ出力バスDO上の位置0および1でデ
ータ複製されて、小型装置(16ビット)用のアドレス
82および83に位置合せされる。このようにして、1
6ビット装置がデータ・アドレス61および62を受信
できるようになる。
その後、カウンタ40が、2(すなわち、転送され位置
合せされたバイト数)だけ減分される(ステップ5)。
減分されたカウンタ40はゼロに等しく(ステップ
6)、かつデータ・アドレス63は一時記憶レジスタ2
0に残っている(ステップ7)ので、このデータ・アド
レス63は、一時記憶レジスタ20内で下方送りされ
る。より具体的には、一時記憶レジスタ20から最後に
転送されたデータ・バイトの最上位記憶位置は記憶位置
3なので、第7B図に示すように、データ・アドレス6
3は、記憶位置4から記憶位置0へ4記憶位置(4=3
+1)だけ下方送りされる(ステップ10)。
その後、第7B図に示すように、次の倍ワード(すなわ
ち、64−67)が取り出され(ステップ11)、この
取り出された倍ワードが、一時記憶レジスタ20に下方
送りされたデータ・アドレス63の後にロードされる
(ステップ12)。カウンタ40は、次に4(すなわ
ち、一時記憶レジスタ20内の位置合せされたバイトの
数)にセットされる(ステップ3)。位置合せされたデ
ータ・バイトは、次に一時記憶レジスタから宛先装置へ
データ出力バスDOを介して転送される。一時記憶レジ
スタ20内には4つの位置合せされたデータ・アドレス
63−66が存在するが、宛先装置は16ビット装置で
ある。したがって、16ビット宛先装置は、記憶位置0
および1からのデータ・バイトしか受信できない。その
ため、第7B図に示すように、それぞれ記憶位置0およ
び1に記憶されているデータ・アドレス63および64
だけが、16ビット宛先装置に転送される。
データ・バイト63および64が転送されたので、次に
カウンタ40が2だけ減分される(ステップ5)。減分
されたカウンタ40は、2(すなわち、4−2=2)に
等しい(ステップ6)ので、第7C図に示すように、一
時記憶レジスタ20に残っているデータ・アドレス65
−67が下方送りされる(ステップ9)。具体的には、
最後に転送されたデータ・バイト(すなわち、63−6
4)の最上位記憶位置が位置1なので、データ・アドレ
ス65−67はそれぞれ、2記憶位置だけ下方送りされ
る。第7C図を参照すると、データ・アドレス65およ
び66が、次に宛先装置に転送され(ステップ4)、カ
ウンタ40が2だけ減分される(ステップ5)。減分さ
たカウンタはゼロに等しく(ステップ6)、かつデータ
・アドレス67が一時記憶レジスタ20に残っているの
で、第7D図に示すように、このデータ・アドレス67
は、2記憶位置だけ下方送りされる(ステップ10)。
その後、やはり第7D図に示すように、次の倍ワード
(すなわち、68、69、6A、6B)が取り出され
(ステップ11)、一時記憶レジスタ20に下方送りさ
れたデータ・アドレス67の後にロードされる(ステッ
プ12)。データ・ブロック内のデータ・バイトがすべ
て宛先装置に転送されるまで、同様にしてこの手順が継
続することになる。
第1図の一時記憶レジスタ20およびゲート回路30を
実施するための回路について説明する。第8図を参照す
ると、一時記憶レジスタ20は、7個のD型レジスタ
(8バイト幅)D0−D6を含む。ゲート回路40は、
13個のマルチプレクサM0−M6およびRD1−RD
6を含む。レジスタD0−D5が、それぞれマルチプレ
クサM0−M5に接続され、その出力を受信する。レジ
スタD0−D6も、マルチプレクサに接続され、これら
を介してデータ・バイト0DI−6DIを受信する。デ
ータ・バイト0DI−6DIは、それぞれ一時記憶レジ
スタ20の位置0−6に記憶されたデータ・バイトに相
当する。マルチプレクサM0−M6はそれぞれ、データ
・セット信号Dsetをも受信する。このデータ・セッ
ト信号は、活動状態のとき、データ入力0DI−6DI
をそれぞれマルチプレクサM0−M6から出力させる。
したがって、第2図のステップ2の間、データ・セット
信号Dsetは活動状態であり、発信元装置から取り出
されたデータ・バイトが一時記憶レジスタ20にロード
できる。
マルチプレクサRD1−RD6は、上述の下方送り動作
を実行するように機能する。マルチプレクサは、第8図
に示すような入力、および選択信号として働く2ビット
の下方送り信号RDを受信する。具体的には、4つの入
力のうちの1つが、下方送り制御信号RDに応じてマル
チプレクサRD1−RD6から出力される。4つの異な
る下方送り信号RDの1つが、マルチプレクサRD1−
RD6に供給される。第9図に示したテーブルは、所与
のバイト・エネーブル信号BEと、32ビット(「BS
32」)、16ビット(「BS16」)および8ビット
(「BS8」)のバス・サイズ別の、一時記憶レジスタ
20からの転送される最後のデータ・バイトの位置と、
その結果生じるこれらのバス・サイズ別の下方送りの値
の関係を示す。
具体的に述べると、上述しかつ第9図に示したように、
下方送り値は、転送された最後のデータ・バイトの最上
位記憶位置+1の下方送り量に一致するように選択す
る。下方送り量は、第9図のテーブルに示す復号機能を
もつデコーダ(第8図に示す)から得られる。例えば、
宛先装置が32ビット装置であり、かつ4データ・バイ
トがそれぞれレジスタD2−D5にロードされるものと
する。レジスタD2およびD3に記憶されたデータ・バ
イトは、宛先装置に転送されることになる。この転送
は、バイト・エネーブル信号BEがC(16進数)に等
しい場合に相当する。この場合、転送される最後のデー
タ・バイトの最上位記憶位置は、一時記憶レジスタ20
のレジスタD3に相当する位置3である。したがって、
下方送り信号RD=4が選択され、マルチプレクサRD
1−RD6に供給されることになる。下方送り選択信号
RD=4に応じて、マルチプレクサRD1−RD6は第
4の入力を出力する。すなわち、マルチプレクサRD1
は、レジスタD4に記憶されたデータ・バイトを出力
し、マルチプレクサRD2は、レジスタD5に記憶され
たデータ・バイトを出力することになる。この間は、デ
ータ・セット信号Dsetは非活動状態であり、そのた
め、マルチプレクサM0−M5は、それぞれマルチプレ
クサRD1−RD6の出力を選択する。したがって、下
方送りの後、レジスタD4およびD5に以前に記憶され
たデータ・バイトは、それぞれレジスタD0およびD1
に記憶されることになる。
次に、本発明のデータ複製方法を実行するためのゲート
回路について説明する。
上述したように、第6A図ないし第6F図に示したデー
タ転送状態は、16ビット装置または8ビット装置に正
しく移すことはできない。というのは、DMA制御装置
10の出力バスは32ビット幅であるが、16ビットお
よび8ビット宛先装置の入力バスはそれぞれ16ビット
または8ビットであるからである。さらに詳しく言え
ば、一時記憶レジスタ20のレジスタD2およびD3に
記憶されたデータ・バイトを、16ビットまたは8ビッ
ト装置は受信できない。したがって、レジスタD2およ
びD3に記憶されたデータ・バイトを16ビット装置ま
たは8ビット装置が受信するためには、これらのデータ
・バイトを、レジスタD0およびD1(16ビット宛先
装置の場合)またはレジスタD0(8ビット宛先装置の
場合)からの出力に対応するように、データ出力バスD
Oに置く必要がある。
第10図は、本発明の「データ複製」法を実行するため
のゲート回路を示す概略図である。データ複製ゲート回
路は、第10図に示すように、2つのマルチプレクサ6
0および70と、2つのデコーダ80および90とを用
いて実施することができる。マルチプレクサ60は、レ
ジスタD1およびD3の出力を受信するように接続され
る。マルチプレクサ70は、レジスタD0−D3の出力
を受信するように接続される。マルチプレクサ60はま
た、デコーダ80の出力である選択信号を受信するよう
に接続され、マルチプレクサ70は、デコーダ90の出
力である選択信号を受信するように接続される。
デコーダ80および90は、それぞれ、バイト・エネー
ブル信号BE(0−3)を受信するように接続される。
第1図に関して説明したように、バイト・エネーブル信
号BE(0−3)は、32ビット・データ出力バスDO
上に有効データがあることを宛先装置に示す。換言すれ
ば、バイト・エネーブル信号BE(0−3)は、32ビ
ット・データ出力バス上でどこに到来データを探すべき
かを宛先装置に知らせる。
デコーダ80および90は、ともにバイト・エネーブル
信号BE(0−3)を受信し、それに従って、それぞれ
マルチプレクサ60および70に選択信号を出力する。
例えば、バイト・エネーブル信号BE(0−3)がEに
等しい(すなわち、BE=E、16進数)場合、デコー
ダ回路80および90はそれぞれマルチプレクサ60お
よび70に選択信号を出力し、マルチプレクサ60およ
び70の第2の入力が選択されることになる。したがっ
て、マルチプレクサ70および80は、ともにレジスタ
D1からの出力をその8ビット出力として選択する。こ
の例は、第6C図に示す状況に相当する。
一方、例えば、バイト・エネーブル信号BEがCに等し
く(すなわち、BE=C)、第6E図に示すデータ転送
状況に相当する場合には、デコーダ80は、マルチプレ
クサ60に選択信号を出力して、このマルチプレクサは
レジスタD3の出力を選択するようになり、デコーダ9
0は、マルチプレクサ70に選択信号を出力して、この
マルチプレクサ70はレジスタD2の出力を選択するこ
とになる。
このようにして、一時記憶レジスタ20の上位記憶位置
に記憶されたデータ・バイトも、16ビットおよび8ビ
ット装置に転送できることがわかる。第6A図ないし第
6F図に関連して上述したように、DMA制御装置10
は、一時記憶レジスタ20の位置0−3に記憶されたデ
ータ・バイトに相当するバイト・エネーブル信号BEを
出力する。しかし、バイト・エネーブル信号BE(0−
3)は、32ビットの発信元/宛先装置を想定したもの
である。したがって、本発明で使用されるデータ複製方
法を適用するとき、バイト・エネーブル信号BE(0−
3)は、32ビット発信元/宛先装置との間でデータ転
送を行なうときに利用されるデータ出力バスDOと同じ
8ビット線を表すとは限らない。バイト・エネーブル信
号BE(0−3)がデータ転送に利用されるデータ出力
バスDOの実際の8ビット線に相当するようにするに
は、16ビット装置および8ビット装置が、DMA制御
装置10から供給されるバイト・エネーブル信号BE
(0−3)を復号するデコーダ80または90(第10
図)のいずれかと類似のデコーダを含むことが必要であ
る。
特定のゲート回路を第9図および第10図に関して説明
したが、当業者なら理解するように、別の回路を用いて
本発明の下方送りおよびデータ複製方法を実施すること
もできる。
さらに、本発明をDMAデータ転送モードに関して記述
したが、当業者なら理解するように、本発明のデータ転
送回路および方法はCPU内で使用できる。
G.効果 本発明は、以上説明したように、発信元装置からの最初
の何回かのデータ項目の転送の後に、データがフル・デ
ータ分(すなわち、N個のデータ項目またはバイト)ず
つの増分で宛先装置に転送され、これによりデータ転送
システムの処理速度が向上するという効果をもつ。
【図面の簡単な説明】
第1図は、本発明によるDMA制御装置の概要を示す図
である。 第2図は、本発明によるDMA制御装置の動作を示すフ
ローチャートである。 第3A図ないし第3H図は、第2図に示す動作の第1の
例を示す図である。 第4A図ないし第4C図は、第2図に示す動作の第2の
例を示す図である。 第5図は、DMA制御装置と32ビット装置、16ビッ
ト装置および8ビット装置の間の入出力バス接続を示す
図である。 第6A図ないし第6F図は、本発明によるデータ複製方
法を必要とする状況の例を示す図である。 第7A図ないし第7D図は、第2図に示す動作の第3の
例を示す図である。 第8図は、第1図のDMA制御装置の一時記憶レジスタ
とゲート回路の概略図である。 第9図は、バイト・エネーブル信号BEと下方送り量信
号RDおよび本発明による装置サイズの関係を示す表で
ある。 第10図は、データ複製を実行する第1図のゲート回路
の概略図である。 10……DMA制御装置、20……一時記憶レジスタ、
30……ゲート回路、40……カウンタ。

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】データ項目が複数個のデータ・ビットとし
    て定義され、発信元装置および宛先装置がそれぞれ複数
    個のフル・データ・ワード位置をもち、フル・データ・
    ワード位置が所定数N個の順次記憶位置として定義さ
    れ、各記憶位置がフル・データ・ワード位置に対してN
    個の異なる相対位置の1つに対応し、フル・データ・ワ
    ード位置のN個の位置のそれぞれに記憶されるデータ項
    目がフル・データ・ワードを形成し、フル・データ・ワ
    ード位置のN個の順次記憶位置の最初の1つに記憶され
    るデータ項目は偶数データ項目と呼ばれ、フル・データ
    ・ワード位置のN個の順次記憶位置の最初の1つに記憶
    されないデータ項目は奇数データ項目と呼ばれ、第1の
    所定の記憶位置に記憶されるデータ項目を含む発信元装
    置のフル・データ・ワード位置がSiフル・データ・ワ
    ード位置に指定される、発信元装置の第1の所定記憶位
    置から始まる順次記憶位置に記憶された複数個のデータ
    項目を、宛先装置の第2の所定記憶位置から始まる順次
    記憶位置に転送する方法であって、 a)N個の指定された順次レジスタ記憶位置が一時フル
    ・データ・ワード位置として定義され、N個の指定され
    た順次レジスタ記憶位置のそれぞれが一時フル・データ
    ・ワード位置に対してN個の異なる位置の1つをもち、
    レジスタに転送される少くとも1個のデータ項目が、次
    のフル・データ・ワードSi+1の偶数データ項目の直
    前まで発信元装置の第1の所定記憶位置に記憶され、少
    くとも、発信元装置の第1の所定記憶位置に対応するデ
    ータ項目が宛先装置の第2の所定記憶位置に位置合せさ
    れるように、少くとも1個の上記データ項目がレジスタ
    に転送され、一時フル・データ・ワード位置に対して、
    所与の宛先装置の記憶位置を含む宛先装置のフル・デー
    タ・ワード位置に対する所与の宛先装置の記憶位置の相
    対位置と同じ相対位置をもつ、N個の指定されたレジス
    タ記憶位置の1つに所与のデータ項目が記憶される場合
    にのみ、レジスタに記憶された所与のデータ項目が宛先
    装置の所与の記憶位置に位置合せされる、少くとも1個
    のデータ項目を、発信元装置から、最下位記憶位置から
    最上位記憶位置へと配列された複数個の順次記憶位置を
    もつ一時記憶レジスタへ転送するステップと、 b)レジスタ内のすべての位置合せデータ項目を宛先装
    置へ転送するステップと、 c)レジスタ内に残ったデータ項目をそのレジスタの最
    下位記憶位置に順次、下方送りするステップと、 d)次のフル・データ・ワードSi+1の偶数データ項
    目に対応する記憶位置から始めて後続のデータ・ワード
    Si+2の偶数データ項目直前まで発信元装置位置から
    のフル・データ・ワードを、データ項目を含むそのレジ
    スタの最上位記憶位置に続くそのレジスタの順次記憶位
    置へロードするステップと、 e)レジスタに記憶された少くとも1個のデータ項目
    を、そのレジスタの最下位記憶位置から始めて宛先装置
    に転送するステップと、 上記複数個のデータ項目の転送が完了するまでステップ
    cないしeを反復するステップと を含むデータ転送方法。
  2. 【請求項2】レジスタが、2N−1バイトのデータを記
    憶するための記憶位置を含む、請求項1に記載の方法。
  3. 【請求項3】Nが4に等しい請求項2に記載の方法。
  4. 【請求項4】データ項目が複数個のデータ・ビットとと
    して定義され、発信元装置および宛先装置がそれぞれ複
    数個のフル・データ・ワード位置をもち、フル・データ
    ・ワード位置が所定数N個の順次記憶位置として定義さ
    れ、各記憶位置がフル・データ・ワード位置に対してN
    個の異なる相対位置の1つに対応し、フル・データ・ワ
    ード位置のN個の位置のそれぞれに記憶されるデータ項
    目がフル・データ・ワードを形成し、フル・データ・ワ
    ード位置のN個の順次記憶位置の最初の1つに記憶され
    るデータ項目は偶数データ項目と呼ばれ、フル・データ
    ・ワード位置のN個の順次記憶位置の最初の1つに記憶
    されないデータ項目は奇数データ項目と呼ばれ、第1の
    所定記憶位置に記憶されるデータ項目を含む発信元装置
    のフル・データ・ワード位置がSiフル・データ・ワー
    ド位置に指定される、発信元装置の第1の所定記憶位置
    から始まる順次記憶位置に記憶された複数個のデータ項
    目を、宛先装置の第2の所定記憶位置から始まる順次記
    憶位置に転送する方法であって、 a)N個の指定された順次レジスタ記憶位置が一時的フ
    ル・データ・ワード位置として定義され、N個の指定さ
    れた順次レジスタ記憶位置のそれぞれが一時的フル・デ
    ータ・ワード位置に対してN個の異なる相対位置の1つ
    をもち、レジスタに転送される少くとも1個のデータ項
    目が、次のフル・データ・ワードSi+1の偶数データ
    項目の直前まで発信元装置の第1の所定記憶位置に記憶
    され、少くとも発信元装置の第1の所定記憶位置に対応
    するデータ項目が宛先装置の第2の所定記憶位置に位置
    合せされるように、少くとも1個のデータ項目がレジス
    タに転送され、一時フル・データ・ワード位置に対し
    て、所与の宛先装置の記憶位置を含む宛先装置のフル・
    データ・ワード位置に対する所与の宛先装置の記憶位置
    の相対位置と同じ相対位置をもつ、N個の指定されたレ
    ジスタ記憶位置の1つに所与のデータ項目が記憶される
    場合にのみ、レジスタに記憶される所与のデータ項目が
    宛先装置の所与の記憶位置に位置合せされる、少くとも
    1個のデータ項目を、発信元装置から、最下位記憶位置
    から最上位記憶位置へと配列された複数個の順次記憶位
    置をもつ一時記憶レジスタへ転送するステップと、 b)レジスタ内のすべての位置合せデータ項目をデータ
    ・バスを介して宛先装置へ転送し、転送されるデータ項
    目が、宛先装置が転送されたデータ項目を受信できるよ
    うにデータ・バス上のその位置に置かれるステップと、 c)レジスタ内に残ったデータ項目をそのレジスタの最
    下位記憶位置に順次下方送りするステップと、 d)次のフル・データ・ワードSi+1の偶数データ項
    目に対応する記憶位置から始めて後続のデータ・ワード
    Si+2の偶数データ項目の直前まで発信元装置位置か
    らのフル・データ・ワードを、データ項目を含むそのレ
    ジスタの最上位記憶位置に続くそのレジスタの順次記憶
    位置へロードするステップと、 e)レジスタに記憶された少くとも1個のデータ項目を
    このレジスタの最下位記憶位置から始めて宛先装置に転
    送するステップと、 上記複数個のデータ項目の転送が完了するまでステップ
    cないしeを反復するステップと を含むデータ転送方法。
  5. 【請求項5】さらに、カウンタをレジスタ内の位置合せ
    データ・アドレスの数にセットするステップと、上記フ
    ル・データ・ワードをロードするステップをカウンタが
    ゼロにセットされた後に限って実行するステップとを含
    む、請求項4に記載の方法。
  6. 【請求項6】カウンタをセットする上記ステップが、カ
    ウンタをレジスタから宛先装置に転送されたデータ・ア
    ドレスの数だけ減分することを含む、請求項5に記載の
    方法。
  7. 【請求項7】さらに、データ項目がレジスタ内に残って
    いるか否かを判定する、カウンタがゼロにセットされた
    後に限って実行されるステップと、 カウンタがゼロにセットされ、上記判定ステップでレジ
    スタ内に少くとも1個のデータ項目がなお残っていると
    判定した後に限って実行される、レジスタ内のデータ・
    アドレスをそのレジスタの最下位記憶位置に順次下方送
    りする第2のステップと を含む、請求項6に記載の方法。
  8. 【請求項8】データ項目が複数個のデータ・ビットとし
    て定義され、発信元装置および宛先装置がそれぞれ複数
    個のフル・データ・ワード位置をもち、フル・データ・
    ワード位置が所定数N個の順次記憶位置として定義さ
    れ、各記憶位置がフル・データ・ワード位置に対してN
    個の異なる相対位置の1つに対応し、フル・データ・ワ
    ード位置のN個の位置のそれぞれに記憶されるデータ項
    目がフル・データ・ワードを形成し、フル・データ・ワ
    ード位置のN個の順次記憶位置の最初の1つに記憶され
    るデータ項目は偶数データ項目と呼ばれ、フル・データ
    ・ワード位置のN個の順次記憶位置の最初の1つに記憶
    されないデータ項目は奇数データ項目と呼ばれ、第1の
    所定記憶位置に記憶されたデータ項目を含む発信元装置
    のフル・データ・ワード位置がSiフル・データ・ワー
    ド位置に指定される、発信元装置の第1の所定記憶位置
    から始まる順次記憶位置に記憶された複数個のデータ項
    目を、宛先装置の第2の所定記憶位置から始まる順次記
    憶位置に転送するための装置であって、 N個の指定された順次レジスタ記憶位置が一時フル・デ
    ータ・ワード位置として定義され、N個の指定された順
    次レジスタ記憶位置のそれぞれが一時フル・データ・ワ
    ード位置に対してN個の異なる相対位置の1つをもち、
    レジスタに転送される少くとも1個のデータ項目が、次
    のフル・データ・ワードSi+1の偶数データ項目の直
    前まで発信元装置の第1の所定記憶位置に記憶され、少
    くとも発信元装置の第1の所定記憶位置に対応するデー
    タ項目が宛先装置の第2の所定記憶位置に位置合せされ
    るように、少くとも1個のデータ項目がレジスタに転送
    され、一時フル・データ・ワード位置に対して、所与の
    宛先装置の記憶位置を含む宛先装置のフル・データ・ワ
    ード位置に対する所与の宛先装置の記憶位置の相対位置
    と同じ相対位置をもつ、N個の指定されたレジスタ記憶
    位置の1つに所与のデータ項目が記憶される場合にの
    み、レジスタに記憶されたデータ項目が宛先装置の所与
    の記憶位置に位置合せされる、少くとも1個のデータ項
    目を、発信元装置から、最下位記憶位置から最上位記憶
    位置へと配列された複数個の順次記憶位置をもつ一時記
    憶レジスタへ転送する手段と、 レジスタ内のすべての位置合せデータ項目を宛先装置へ
    転送する手段と、 レジスタ内に残ったデータ項目をそのレジスタの最下位
    記憶位置に順次下方送りする手段とを含み、 上記ロード手段が、つぎのフル・データ・ワードSi+
    1の偶数データ項目に対応する記憶位置から始めて、後
    続のデータ・ワードSi+2の偶数データ項目の直前ま
    で発信元装置の位置からの、フル・データ・ワードを、
    データ項目を含むそのレジスタの最上位記憶位置に続く
    そのレジスタの順次記憶位置へロードする働きもし、か
    つ 上記転送手段が、レジスタに記憶されたそのレジスタの
    最下位記憶位置から始めて少くとも1個のデータ項目
    を、宛先装置に転送する働きもする、 データ転送装置。
  9. 【請求項9】さらに、カウンタと、上記カウンタを上記
    レジスタ内の位置合せデータ・アドレス数にセットする
    手段と、上記カウンタを上記レジスタから宛先装置に転
    送されるデータ・アドレスの数だけ減分する手段とを含
    む、請求項8に記載の装置。
  10. 【請求項10】上記ロード手段が、カウンタがゼロにセ
    ットされた後にだけ、フル・データ・ワードを上記レジ
    スタにロードする働きをする、請求項9に記載の装置。
  11. 【請求項11】上記レジスタが2N−1バイトのデータ
    の記憶位置をもつ、請求項10に記載の装置。
  12. 【請求項12】Nが4に等しい、請求項11に記載の装
    置。
  13. 【請求項13】上記装置が直接メモリ・アクセス制御装
    置である、請求項8に記載の装置。
  14. 【請求項14】上記一時記憶レジスタが2N−1個のラ
    ッチを含む、請求項8に記載の装置。
  15. 【請求項15】上記ラッチのうちのN個からの出力が宛
    先装置に結合され、上記転送手段が、上記ラッチの出力
    と宛先装置との間に結合された出力バスと、上記ラッチ
    の出力と上記出力バスとの間に配設されたゲート手段と
    を含み、上記ゲート手段が、上記ラッチそれぞれの出力
    を受信し、少くとも1個のラッチの出力を、上記ラッチ
    のうちの別の少くとも1個の出力に対応する出力バスの
    位置に置く働きをする、請求項14に記載の装置。
  16. 【請求項16】上記装置が、有効データが見つけられる
    出力バス上の位置を識別するバイト・エネーブル信号を
    出力する手段を含む、請求項15に記載の装置。
  17. 【請求項17】上記ゲート手段が、バイト・エネーブル
    信号によって制御される請求項16に記載の装置。
  18. 【請求項18】上記下方送り手段が複数個のマルチプレ
    クサを含み、上記下方送り手段によって上記レジスタ内
    のデータ項目が下方送りされる量がバイト・エネーブル
    信号に従って決定される、請求項8に記載の装置。
  19. 【請求項19】上記ロード手段が、上記一時記憶レジス
    タの入力と上記下方送り手段の出力との間に結合された
    複数個のマルチプレクサを含み、上記ロード手段の上記
    複数個のマルチプレクサがそれぞれ発信元装置からのデ
    ータ項目を受信する入力をもつ、請求項18に記載の装
    置。
JP2247670A 1989-10-31 1990-09-19 データ転送方法及び装置 Expired - Lifetime JPH0619752B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/430,693 US5170477A (en) 1989-10-31 1989-10-31 Odd boundary address aligned direct memory acess device and method
US430693 1989-10-31

Publications (2)

Publication Number Publication Date
JPH03147168A JPH03147168A (ja) 1991-06-24
JPH0619752B2 true JPH0619752B2 (ja) 1994-03-16

Family

ID=23708619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2247670A Expired - Lifetime JPH0619752B2 (ja) 1989-10-31 1990-09-19 データ転送方法及び装置

Country Status (5)

Country Link
US (1) US5170477A (ja)
EP (1) EP0425849B1 (ja)
JP (1) JPH0619752B2 (ja)
KR (1) KR940002088B1 (ja)
DE (1) DE69027907D1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379443A (en) * 1990-02-09 1995-01-03 Intel Corporation Microprocessor providing encoded information on byte enable lines indicating whether reading code or data, location of code/data on data lines, and bit width of code/data
JP2606942B2 (ja) * 1990-02-22 1997-05-07 株式会社東芝 Dmaコントローラ
AU652371B2 (en) * 1990-06-29 1994-08-25 Fujitsu Limited Data transfer system
US5548762A (en) * 1992-01-30 1996-08-20 Digital Equipment Corporation Implementation efficient interrupt select mechanism
US5465340A (en) * 1992-01-30 1995-11-07 Digital Equipment Corporation Direct memory access controller handling exceptions during transferring multiple bytes in parallel
US5721954A (en) * 1992-04-13 1998-02-24 At&T Global Information Solutions Company Intelligent SCSI-2/DMA processor
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5392406A (en) * 1992-09-18 1995-02-21 3Com Corporation DMA data path aligner and network adaptor utilizing same
JP2778913B2 (ja) * 1994-04-26 1998-07-23 株式会社東芝 マルチプロセッサシステム及びメモリアロケーション方法
US5566312A (en) * 1994-05-23 1996-10-15 Advanced Micro Devices Processimg unit with programmable mis-aligned byte addressing
US5623697A (en) * 1994-11-30 1997-04-22 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension
US5687328A (en) * 1995-05-16 1997-11-11 National Semiconductor Corporation Method and apparatus for aligning data for transfer between a source memory and a destination memory over a multibit bus
US5671373A (en) * 1995-06-08 1997-09-23 Hewlett-Packard Company Data bus protocol for computer graphics system
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5862407A (en) * 1996-03-15 1999-01-19 Rendition, Inc. System for performing DMA byte swapping within each data element in accordance to swapping indication bits within a DMA command
US6122717A (en) * 1996-06-17 2000-09-19 Integrated Device Technology, Inc. Methods and apparatus for a memory that supports a variable number of bytes per logical cell and a variable number of cells
US6065070A (en) * 1998-03-18 2000-05-16 National Semiconductor Corporation DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs
JP2001022637A (ja) * 1999-07-07 2001-01-26 Fujitsu Ltd メモリ制御装置及び情報処理装置
FI20010924A (fi) * 2001-05-03 2002-11-04 Nokia Corp Mikroprosessorin muistinkäsittely
US7016987B2 (en) * 2001-06-21 2006-03-21 Integrated Device Technology, Inc. Transaction aligner microarchitecture
US6993619B2 (en) * 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
US7506133B2 (en) * 2003-08-20 2009-03-17 Seiko Epson Corporation Method and apparatus for high speed addressing of a memory space from a relatively small address space
CN101052955A (zh) * 2004-09-10 2007-10-10 飞思卡尔半导体公司 用于多存储顺序模式总线匹配的装置和方法
US20070050592A1 (en) * 2005-08-31 2007-03-01 Gschwind Michael K Method and apparatus for accessing misaligned data streams
US8156310B2 (en) * 2006-09-11 2012-04-10 International Business Machines Corporation Method and apparatus for data stream alignment support
US8621478B2 (en) * 2010-01-15 2013-12-31 International Business Machines Corporation Multiprocessor system with multiple concurrent modes of execution
US8838906B2 (en) * 2010-01-08 2014-09-16 International Business Machines Corporation Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution
JP5035387B2 (ja) 2010-05-10 2012-09-26 住友電気工業株式会社 研磨剤、化合物半導体の製造方法および半導体デバイスの製造方法
US11755224B2 (en) * 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4271466A (en) * 1975-02-20 1981-06-02 Panafacom Limited Direct memory access control system with byte/word control of data bus
JPS5911135B2 (ja) * 1979-01-17 1984-03-13 株式会社日立製作所 デ−タ処理システムのデ−タ転送方式
US4309754A (en) * 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
JPS5790740A (en) * 1980-11-26 1982-06-05 Nec Corp Information transfer device
US4471427A (en) * 1981-12-01 1984-09-11 Burroughs Corporation Direct memory access logic system for a data transfer network
US4542457A (en) * 1983-01-11 1985-09-17 Burroughs Corporation Burst mode data block transfer system
JPS59226923A (ja) * 1983-05-27 1984-12-20 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン バスインタ−フエ−ス装置
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
EP0290172A3 (en) * 1987-04-30 1991-01-16 Advanced Micro Devices, Inc. Bidirectional fifo with variable byte boundary and data path width change
JPH0821013B2 (ja) * 1987-05-13 1996-03-04 株式会社日立製作所 ダイレクトメモリアクセスオ−ダ競合制御方式

Also Published As

Publication number Publication date
EP0425849A2 (en) 1991-05-08
EP0425849B1 (en) 1996-07-24
KR910008587A (ko) 1991-05-31
DE69027907D1 (de) 1996-08-29
KR940002088B1 (ko) 1994-03-17
EP0425849A3 (en) 1992-07-29
US5170477A (en) 1992-12-08
JPH03147168A (ja) 1991-06-24

Similar Documents

Publication Publication Date Title
JPH0619752B2 (ja) データ転送方法及び装置
US5517627A (en) Read and write data aligner and method
JP3940435B2 (ja) ダイレクト・メモリ・アクセス(dma)バイト・スワッピングを実行する方法および装置
US5146572A (en) Multiple data format interface
JPH03189843A (ja) データ処理システムおよび方法
US5265228A (en) Apparatus for transfer of data units between buses
US5799161A (en) Method and apparatus for concurrent data routing
JPH06103225A (ja) チェーン式dma方式及びそのためのdmaコントローラ
US4737908A (en) Buffer memory control system
JPH0765180A (ja) データ転送制御装置
JPS6240736B2 (ja)
JPS6126164A (ja) デ−タ転送制御方法
JPS6367702B2 (ja)
JPS5991560A (ja) マイクロプロセツサ
JP2540844B2 (ja) デ−タ転送制御方法
JPS6019023B2 (ja) デ−タ処理装置
JPH02187849A (ja) バス・インターフェース装置
JPS6336021B2 (ja)
JPS589274A (ja) 書込デ−タバツフア制御装置
JPS6145343A (ja) スワツプ制御方式
JPH0429095B2 (ja)
JPH04266140A (ja) アドレス変換バッファ装置
JPH06214939A (ja) Dmaコントローラ
JPH09259598A (ja) 記憶装置
JPH04346150A (ja) データ転送処理システム