JPH08221353A - データ処理システムにおいてデータを多次元転送する方法 - Google Patents

データ処理システムにおいてデータを多次元転送する方法

Info

Publication number
JPH08221353A
JPH08221353A JP7328050A JP32805095A JPH08221353A JP H08221353 A JPH08221353 A JP H08221353A JP 7328050 A JP7328050 A JP 7328050A JP 32805095 A JP32805095 A JP 32805095A JP H08221353 A JPH08221353 A JP H08221353A
Authority
JP
Japan
Prior art keywords
address
value
storage element
transfer
counter
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
JP7328050A
Other languages
English (en)
Inventor
Natan Baron
ナタン・バロン
Eliezer Zand
エリーザー・ザンド
Norman Oded
オデド・ノーマン
Rozenshein Zvika
ズビカ・ローゼンシャイン
Elchanan Rushinek
エルカナン・ルシニク
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH08221353A publication Critical patent/JPH08221353A/ja
Pending 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/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

Abstract

(57)【要約】 【課題】 データ処理システムにおいて多次元DMA転
送を少ない割込回数で実現し、ソフトウエアのオーバヘ
ッドを低減または除去する。 【解決手段】 3次元DMA転送を実行するため、独立
に制御される3つのセクションに分割された転送カウン
タレジスタ76に初期カウンタ値がロードされる。デー
タは連続的に発生されるアドレスからレジスタ76の第
1のセクションの値で決定される第1の所定回数の間転
送される。オフセット値が最後に発生されたアドレスに
加えられる。処理は第2の所定回数の間反復される。他
のオフセット値が発生されたアドレスに加えられる。以
上の処理がレジスタ76の第3のセクションで決まる回
数反復される。バックアップレジスタ77から初期カウ
ンタ値がレジスタ76に再ロードされ、新しい転送要求
が前の転送と同じカウンタ値を要求していればDMAコ
ントローラ80は用意ができていることになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は一般的にはデータ
処理システムに関し、かつより特定的には、データ処理
システムにおける多次元(multi−dimensi
onal)データ転送に関する。
【0002】
【従来の技術】データ処理システムにおいては、ダイレ
クトメモリアクセス(DMA)コントローラが中央処理
ユニット(CPU)と独立にメモリをアクセスするため
にしばしば使用される。伝統的なDMAコントローラは
それ自身のソースおよびデスティネイションレジスタと
アドレスカウンタレジスタを含む。CPUはDMA転送
のための初期転送パラメータがDMAコントローラにロ
ードされるようにしかつソースのメモリ空間からデステ
ィネイションのメモリ空間へのデータのDMA転送を開
始する。該メモリ空間はデータ処理システムの内部のも
のであってもよくあるいは外部のものであってもよい。
前記転送パラメータはソースおよびデスティネイション
アドレス、およびカウンタ値を含む。DMAコントロー
ラは次にデータの実際の転送を制御し、CPUを他のタ
スクのために自由にする。おのおののDMA転送の間に
通常データのブロック全体が転送される。データのブロ
ックのサイズは前記カウンタ値によって制御される。
【0003】DMA転送が開始された時、転送されるべ
き第1のアドレスが前記ソースまたはデスティネイショ
ンレジスタに与えられる。アドレスカウンタレジスタが
前記カウンタ値によってロードされアドレス転送の数を
規定する。おのおのの転送の後、アドレスソースレジス
タまたはデスティネイションレジスタ、あるい両方、は
増分されかつ前記アドレスカウンタ値が減分される。該
転送はアドレスカウンタレジスタのカウンタ値がゼロに
等しくなった時に完了する。DMAコントローラは次に
CPUに割込みをかけて該CPUにDMA転送が完了し
たことを通知する。
【0004】
【発明が解決しようとする課題】伝統的なDMAコント
ローラにおいては、データのDMA転送が必要とされる
たびごとに、CPUは新しい転送パラメータをロードし
かつDMA転送を開始する。CPUはDMA転送が完了
するたびごとに割込みを受ける。その結果、CPUはお
のおののDMA転送の始めおよび終りの双方において関
与しなければならない。
【0005】従って、本発明の目的は、このような伝統
的なDMAコントローラの不都合を除去することにあ
る。
【0006】
【課題を解決するための手段】従って、本発明によれ
ば、1つの形態で、データ処理システムにおけるデータ
にアクセスする方法が提供される。該方法はメモリにあ
るロケーションの第1のアドレスを格納する段階、カウ
ンタ値を格納する段階、前記第1のアドレスでスタート
し、前記カウンタ値によって決定される第1の所定の数
の回数の間ひき続き発生されるアドレスで前記メモリ内
のデータをアクセスする段階、最後に発生されたアドレ
スにオフセット値を加える段階、および第2の所定の数
の回数にわたりひき続き発生されたアドレスで前記メモ
リのデータをアクセスする段階を含む。あるいは該方法
はメモリのあるロケーションの第1のアドレスを記憶す
る段階、カウンタ値を記憶する段階、前記第1のアドレ
スでスタートし、前記カウンタ値によって決定される第
1の所定の数の回数の間ひき続き発生されるアドレスで
前記メモリ内のデータをアクセスする段階、最後に発生
されたアドレスにオフセット値を加える段階、および第
2の所定の数の回数にわたりひき続き発生されたアドレ
スで前記メモリのデータをアクセスする段階を含む。
【0007】他の形態では、データ処理システムにおけ
る多次元データ転送を行うためのダイレクトメモリアク
セス・コントローラが提供される。該ダイレクトメモリ
アクセス・コントローラはアドレス記憶エレメント、オ
フセット記憶エレメント、加算器、カウンタ記憶エレメ
ント、および制御論理回路を含む。前記アドレス記憶エ
レメントはアドレスを記憶するためのものであり、かつ
前記オフセット記憶エレメントはオフセット値を記憶す
るためのものである。前記加算器は前記アドレス記憶エ
レメントにおよび前記オフセット記憶エレメントに結合
され、かつ前記アドレスを1だけ増分し、あるいは前記
オフセット値を前記アドレスに加算するためのものであ
る。前記カウンタ記憶エレメントは少なくとも2つのセ
クションに区分され、該少なくとも2つのセクションの
内のおのおののセクションは前記多次元データ転送を制
御するためのパラメータを含む。前記制御論理回路は前
記加算器、前記オフセット記憶エレメント、前記アドレ
ス記憶エレメント、および前記カウンタに結合され、か
つ前記オフセット記憶エレメントおよび前記カウンタ記
憶エレメントに含まれるパラメータにもとづき多次元デ
ータ転送を制御する。
【0008】これらおよび他の特徴および利点は添付の
図面とともに以下の詳細な説明からさらに明瞭に理解さ
れるであろう。
【0009】
【発明の実施の形態】一般に、本発明はデータ処理シス
テムにおけるデータの多次元DMA(ダイレクトメモリ
アクセス)転送を可能にする。DMAカウンタレジスタ
が複数のセクションに区分される。該複数のセクション
のおのおのは独立にカウンタによって制御される。3次
元データ転送を行うために、プロセッサはカウンタレジ
スタを初期化する。DMAコントローラは所定の数の回
数の間ひき続き発生されるアドレスでデータをアクセス
する。該所定の数の回数は前記カウンタレジスタの第1
のセクションの値により決定される。次に、第1のオフ
セットレジスタの値が前記発生されたアドレスに加えら
れる。以上述べた処理が前記カウンタレジスタの第2の
セクションの値により決定される他の所定の数の回数の
間反復される。次に他のオフセットが前記発生されたア
ドレスに加えられる。このプロセス全体が前記カウンタ
レジスタの第3のセクションの値によって決定される他
の所定の数の回数の間反復される。転送の終りに、DM
Aコントローラは新しい転送が前の転送と同じカウンタ
値を必要とする場合カウンタ値が用意できているように
前記カウンタレジスタの値を再ロード、または再初期
化、する。バックアップレジスタが転送の終りに再ロー
ドされるべき初期カウンタ値を格納する。他のトリガは
新しいブロック転送を生じさせることになる。説明され
る実施例は2次元転送、3次元転送およびラインごとの
(line−by−line)転送モードを開示する
が、他の実施例では、より多くの次元を加えることがで
きかつより多くの転送モードを使用することができる。
【0010】用語「肯定する(assert)」および
「否定する(negate)」は信号、ステータスビッ
ト、または同様の装置を、それぞれ、その論理的に真ま
たは論理的に偽の状態にすることに言及する場合に使用
される。もし論理的に真の状態がデジタル論理レベル1
であれば、論理的に偽の状態はデジタル論理レベル0で
ある。また、もし論理的に真の状態がデジタル論理レベ
ル0であれば、論理的に偽の状態はデジタル論理レベル
1である。用語「バス(bus)」は、データ、アドレ
ス、制御、またはステータスのような、1つまたはそれ
以上の種々のタイプの情報を転送するために使用できる
複数の信号に言及するために使用される。
【0011】本発明は図1〜図7を参照してさらに完全
に説明することができる。図1および図2に示されたお
のおののブロックは回路を表している。図3、図4およ
び図5に示されたおのおののブロックはフローチャート
における1つまたはそれ以上のステップを表している。
図1はブロック図形式で、本発明に係わるデータ処理シ
ステム20を示している。図1に示される実施例におい
ては、データ処理システム20はデジタル信号プロセッ
サ(DSP)でありかつ単一の集積回路上に配置されて
いる。他の実施例では、データ処理システム20は、例
えば、マイクロコンピュータまたはマイクロプロセッサ
とすることができる。データ処理システム20はタイマ
22、ホストインタフェース24、強化シリアル同期イ
ンタフェース(ESSI)26、シリアル通信インタフ
ェース(SCI)28、プログラムRAM(ランダムア
クセスメモリ)および命令キャッシュ30、データメモ
リ32、データメモリ34、アドレス発生ユニット/ダ
イレクトメモリアクセス(DMA)コントローラ36、
外部アドレスバススイッチ38、内部データバススイッ
チ40、DRAM(ダイナミックランダムアクセスメモ
リ)およびSRAM(スタティックランダムアクセスメ
モリ)バスインタフェースおよび命令キャッシュ制御部
42、外部データバススイッチ44、プログラム制御ユ
ニット(PCU)46、およびデータ演算ユニット(A
LU)54を含む。プログラム制御ユニット46はプロ
グラム割込みコントローラ48、プログラムデコードコ
ントローラ50、およびプログラムアドレス発生器52
を含む。
【0012】“YAB”と名付けられたアドレスバス5
6、“XAB”と名付けられたアドレスバス57、“P
AB”と名付けられたプログラムアドレスバス58、お
よび“DAB”と名付けられたアドレスバス59はアド
レス発生ユニット/DMAコントローラ36と外部アド
レスバススイッチ38の間に結合されている。“DD
B”と名付けられたデータバス60はホストインタフェ
ース24、ESSI 26、SCI 28、プログラム
RAMおよび命令キャッシュ30、Xメモリ32、Yメ
モリ34、および外部データバススイッチ44の間に結
合されている。“YDB”と名付けられたデータバス6
1、“XDB”と名付けられたデータバス62、“PD
B”と名付けられたプログラムデータバス63、および
“GDB”と名付けられたプログラムデータバス64は
内部データバススイッチ40と外部データバススイッチ
44との間に結合されている。
【0013】タイマ22は内部または外部タイミングを
使用することができ、かつデータ処理システム20に割
込みをかけまたは外部装置に通知することができる3つ
のタイマを含む。さらに、タイマ22は特定の数の事象
が生じた後にDMA転送を通知するために使用できる。
3つのタイマのおのおのは単一の双方向ピンまたは端子
に結合されている。さらに、タイマ22のおのおののタ
イマはバス57、プログラム割込みコントローラ48、
アドレス発生ユニット/DMAコントローラ36、およ
びバス64に結合されている。
【0014】ホストインタフェース24はマイクロコン
ピュータ、マイクロプロセッサ、またはDMAのような
他の装置との通信を可能にするための双方向インタフェ
ースを提供する。さらに、ホストインタフェース24は
バス60を介して外部データバススイッチ44に、バス
57,59および64を介してプログラム割込みコント
ローラ48、アドレス発生ユニット/DMAコントロー
ラ36、および外部アドレスバススイッチ38に接続さ
れている。
【0015】強化シリアル同期インタフェース(enh
anced serial synchronous
interface: ESSI)26は12の双方向
外部ピンに接続されて、例えば、1つまたはそれ以上の
産業標準コーデック(industry standa
rd codecs)、DSP(デジタル信号プロセッ
サ)、またはマイクロプロセッサを含む外部シリアル装
置とのシリアル通信を提供する。ESSI 26はまた
バス57、バス59、バス60、およびバス64に結合
された端子を有する。
【0016】シリアル通信インタフェース(SCI)2
8は外部装置とのシリアル通信を提供するために3つの
双方向外部ピンに結合されている。SCI 28はまた
バス57、バス59、バス60およびバス64に結合さ
れた端子を有する。
【0017】図1に示された実施形態のデータ処理シス
テム20は3つのメモリ空間、すなわち、プログラムR
AMおよび命令キャッシュ30、Xメモリ32、および
Yメモリ34、を有する。他の実施例では、より多くの
あるいはより少ないメモリ空間とすることができる。プ
ログラムRAMおよび命令キャッシュ30はアドレスバ
ス58におよびデータバス63に結合されている。Xメ
モリ32はアドレスバス57、アドレスバス59、デー
タバス60、およびデータバス62に結合されている。
Yメモリ34はアドレスバス56、アドレスバス59、
データバス60、およびデータバス61に接続されてい
る。
【0018】アドレス発生ユニット/DMAコントロー
ラ36はアドレスバス56,57,58および59に結
合されている。アドレス発生ユニット/DMAコントロ
ーラ36はメモリアドレスをタイマ22、ホストインタ
フェース24、ESSI 26、SCI 28、プログ
ラムRAMおよび命令キャッシュ30、メモリ32、メ
モリ34、外部アドレスバススイッチ38に提供する。
好ましい実施形態では、DMAコントローラは6つのチ
ャネルを有する。
【0019】DRAMおよびSRAMバスインタフェー
スおよび命令キャッシュ42はプログラムアドレスバス
58および14の双方向外部ピンに結合されている。D
RAMおよびSRAMバスインタフェースおよび命令キ
ャッシュ42の命令キャッシュは外部メインメモリ(図
示せず)とプログラム制御ユニット46との間でバッフ
ァメモリとして機能する。該命令キャッシュはしばしば
使用されるプログラム命令を格納する。性能の増大はプ
ログラムによって必要とされる命令ワードがキャッシュ
で得られる場合に生じ、それはメインメモリをアクセス
するのに必要な時間が除去されるからである。
【0020】内部データバススイッチ40はデータバス
60、データバス61、データバス62、プログラムデ
ータバス63、およびグローバルデータバス64に結合
されている。外部データバススイッチ44はデータバス
60、データバス61、データバス62、プログラムデ
ータバス63、およびグローバルデータバス64を介し
て内部データバススイッチ40に結合されている。さら
に、外部データバススイッチ44はデータバス60を介
してタイマ22、ホストインタフェース24、ESSI
26、およびSCI 28に結合されている。内部デ
ータバススイッチ40はバスの間での転送のために使用
される。任意の2つのバスを内部データバススイッチ4
0を通していっしょに接続することができる。外部アド
レスバススイッチ38および外部データバススイッチ4
4は外部バス(図示せず)を、それぞれ、任意の内部ア
ドレスおよび内部データバスに結合する。
【0021】プログラム制御ユニット46においては、
プログラム割込みコントローラ48が割込み要求の間で
調停を行い、かつタイマ22、ホストインタフェース2
4、ESSI 26、およびSCI 28に結合されて
いる。また、プログラム割込みコントローラ48は双方
向的にグローバルデータバス64およびプログラムデコ
ードコントローラ50に結合されている。プログラムデ
コードコントローラ50はおのおのの24ビットの命令
をデコードしかつ双方向的にプログラム割込みコントロ
ーラ48およびプログラムアドレス発生器52に結合さ
れている。プログラムアドレス発生器52はプログラム
アドレス発生、システムスタック、およびループ制御の
ために必要とされるすべてのハードウエアを含んでい
る。さらに、プログラムアドレス発生器52はプログラ
ムアドレスバス58にかつプログラムデータバス63に
結合されている。
【0022】データ演算論理ユニット(ALU)54は
プログラムデータバス63、データバス61、およびデ
ータバス62に結合されている。データALU54はデ
ータオペランドに関してすべての演算および論理操作を
行う。ALU54はバス61および62によって読み出
されまたは書き込むことができるレジスタを含んでい
る。データALU54はまたバス63に結合されてい
る。
【0023】クロック発生回路(図示せず)がクロック
信号を図1に示されるすべてのブロックに供給する。ま
た、図1には示されていないがデータ処理システムにお
けるテスト回路が設けられている。
【0024】図2は、図1のデータ処理システムのアド
レス発生ユニット/DMAコントローラ36の部分70
をブロック図形式で示す。図2に示された各ブロックは
回路を表わしている。部分70はアドレス発生ユニット
/DMAコントローラ36の6つのDMAチャネルの1
つを構成し、かつ転送カウンタ71、DMAカウンタレ
ジスタ76、バックアップレジスタ77、DMA転送モ
ードレジスタ78、DMAコントローラ80、DMAソ
ースレジスタ(DSR)82、DMAデスティネイショ
ンレジスタ(DDR)83、DMAオフセットレジスタ
(DOR)84、ソース加算器85、およびデスティネ
イション加算器86を含む。DMA転送モードレジスタ
78の選択された制御ビットは図7に示されている。転
送カウンタ71はカウンタ72,73および74を含
む。カウンタ72はDMAコントローラ80の複数の出
力端子に接続された複数の入力端子、およびDMAカウ
ンタレジスタ76に結合された複数の出力端子を有す
る。カウンタ73はDMAコントローラ80の複数の出
力端子に結合された複数の入力端子、およびDMAカウ
ンタレジスタ76の入力端子に結合された複数の出力端
子を有する。カウンタ74はDMAコントローラ80の
複数の出力端子に接続された複数の入力端子、およびD
MAカウンタレジスタ76の入力端子に結合された複数
の出力を有する。DMAカウンタレジスタ76、バック
アップレジスタ77、DSR82、DDR83、および
DOR84はすべて伝統的な読出し/書込みスタティッ
ク記憶エレメントであり、かつ図示された実施形態で
は、24ビットのレジスタである。
【0025】多次元転送を行なうために、24ビットの
読出し/書込みカウンタレジスタ76は複数のセクショ
ンに分割され、あるいは区分けされている。図2に示さ
れた実施形態では、カウンタレジスタ76は点線で示さ
れるように3つのセクションに区分されている。“DC
OL”と名付けられた第1のセクションは24ビットの
転送カウンタレジスタ76のより下位のビットを含む。
カウンタ74はDCOLを減分するために使用される。
“DCOM”と名付けられた第2のセクションは24ビ
ットの転送カウンタレジスタ76の中間ビットを含む。
カウンタ73がDCOMを減分するために設けられてい
る。“DCOH”と名付けられた第3のセクションは2
4ビットの転送カウンタレジスタ76のより上位のビッ
トを含む。カウンタ72はDCOHを減分するために設
けられている。これら3つのセクションの各々における
ビットの数は同じでもよく、例えばセクションごとに8
ビットとすることができ、あるいは3つのセクションの
各々のビットの数は異なってもよく、例えば、1つのセ
クションは12ビットであり他の2つのセクションは各
々6ビットとすることもできる。他の実施形態では、転
送カウンタレジスタ76はDCOLおよびDCOHを含
む2つのセクションに分割され、その場合DCOMはゼ
ロビットを含むことになりかつカウンタ73は使用され
ない。カウンタレジスタ76の各セクションは等しい数
のビットを含んでいてもよく、あるいは含んでいなくて
もよい。
【0026】バックアップレジスタ77はDMAコント
ローラ80の第2の複数の出力端子に結合された複数の
入力端子、およびカウンタレジスタ76に結合された複
数の出力端子を有する。DMA転送モードレジスタ78
はDMAコントローラ80の第3の複数の入力端子に結
合された複数の出力端子を有する。DMAコントローラ
80は2つのメモリエレメントの間のデータ転送を制御
するための制御論理を含む。
【0027】ソース加算器86はDMAコントローラ8
0に結合された第1の複数の双方向端子、DSR82に
結合された第2の複数の双方向端子、およびオフセット
レジスタ84に結合された複数の入力端子を有する。デ
スティネイション加算器86はDMAコントローラ80
に結合された第1の複数の双方向端子、DDR83に結
合された第2の複数の双方向端子、およびオフセットレ
ジスタ84に結合された複数の入力端子を有する。DS
R82およびDDR83はまたDMAアドレスバス59
に結合されている。ソース加算器85およびデスティネ
イション加算器86は伝統的な加算器回路である。ソー
ス加算器85はDSR82の内容に数1を加算するか、
あるいはDOR84の内容をDSR82に加算し、これ
はDMAコントローラ80によって指令される。デステ
ィネイション加算器86はDSR82の内容に数1を加
算するか、あるいはDOR84の内容をDSR82に加
算し、これはDMAコントローラ80によって指令され
る。
【0028】DSR82は複数の24ビットの読出し/
書込みソースアドレスレジスタを含む。好ましい実施例
では、各々のDMAチャネルに対して1つのソースアド
レスレジスタがある。DDR83は複数の24ビットの
読出し/書込みデスティネイションアドレスレジスタを
含む。好ましい実施例では、各々のDMAチャネルに対
して1つのデスティネイションアドレスレジスタがあ
る。DOR84は複数の24ビットの読出し/書込みソ
ースオフセットレジスタを含む。好ましい実施形態で
は、それらのアドレス発生モードに応じて6つのDMA
チャネルによって共有される4つの共通のオフセットレ
ジスタがある。
【0029】DMAコントローラ80は内部メモリ、外
部メモリ(図示せず)、および内部および外部入力/出
力(図示せず)の間での、任意の組合わせによる、デー
タ転送をデータ処理システム20において可能にする。
図7は、ブロック図形式で、図2のアドレス発生ユニッ
ト部70のDMA転送モードレジスタ78を示す。制御
ビット79,80および81で決定される6つの転送モ
ードがある。図7では、それぞれ“DTM0”,“DT
M1”および“DTM2”と名付けられた制御ビット7
9,80および81がDMAコントローラ80によって
開始される転送のタイプを制御する。“DE”と名付け
られた制御ビット83はチャネル動作を可能にする。
“D3D”と名付けられた制御ビット93はDMA転送
が3次元転送であるか非3次元転送であるかを制御す
る。“D3D”と名付けられた制御ビット93が否定さ
れたとき、“DA5”〜“DA3”と名付けられた制御
ビット87〜89はデスティネイション転送のためのア
ドレス発生モードを規定し、かつ“DA2”〜“DA
0”と名付けられた制御ビット90〜92は非3次元転
送に対するソース転送のためのアドレス発生モードを規
定する。制御ビット83をイネーブルすることにより制
御ビット83をトリガとして使用するDMA転送モード
における単一ブロックのDMA転送をトリガし、かつ単
一ブロック転送、単一ライン転送(図4のフローチャー
トに示されている)、または要求装置をトリガとして使
用する単一ワード転送を可能にする。
【0030】DMA転送モードレジスタ78の各々の制
御ビット79,80および81が否定されたとき、1ブ
ロックのデータがアドレス発生ユニット/DMAコント
ローラ36によって転送される。該DMA転送機能は制
御ビット83が肯定されたときにイネーブルされる。該
DMA転送は次に第1のDMA要求によって開始され
る。転送されるべきブロックの長さは転送カウンタレジ
スタ76によって決定されかつ転送カウンタレジスタ7
6の値がゼロに等しい場合に転送は終了する。次に、転
送カウンタレジスタ76はそれ自身にバックアップレジ
スタ77に格納されている初期値を再ロードし、かつ制
御ビット83を否定する。
【0031】制御ビット79および80が否定されかつ
制御ビット81が肯定されたとき、1つのブロックのデ
ータが転送され、該ブロックの長さは転送カウンタレジ
スタ76によって決定され、かつ各々のDMA要求は制
御ビット83によってイネーブルされている間に単一の
ワードを転送する。カウンタ76がゼロに到達したと
き、それはバックアップレジスタ77に格納されている
初期値をそれ自身に再ロードし、かつ制御ビット83を
否定する。
【0032】ラインごとの転送(line−by−li
ne transfer)は制御ビット79および81
が否定されかつ制御ビット80が肯定されたときに開始
される。ラインごとの転送においては、1ブロックのデ
ータが転送され、該ブロックの長さはDMA転送カウン
タレジスタ76によって決定され、かつ各々のDMA要
求は「ライン」を転送することになる。「ライン」はカ
ウンタレジスタ76のDCOLセクションによって指示
されるワードの数として規定される。転送は制御ビット
83によってイネーブルされる。該転送は転送カウンタ
レジスタ76のすべての3つのセクションがゼロに減分
した後に完了し、次に転送カウンタレジスタ76はバッ
クアップレジスタ77に格納された初期値をそれ自身に
再ロードし、かつ制御ビット83を否定する。
【0033】制御ビット79が否定されかつ制御ビット
80および81が肯定されたとき、1つのブロックのデ
ータが転送され、該ブロックの長さはDMA転送カウン
タレジスタ76によって決定され、かつ該転送は制御ビ
ット83を肯定することによって開始される。該転送は
DMA転送カウンタレジスタ76がゼロに減分したとき
に完了し、次にそれはバックアップレジスタ77から初
期値をそれ自身にロードしかつ制御ビット83を否定す
る。
【0034】制御ビット79が肯定されかつ制御ビット
80および81が否定されたとき、1つのブロックのデ
ータが転送され、該ブロックの長さはDMA転送カウン
タレジスタ76によって決定され、該転送は制御ビット
83によってイネーブルされ、かつDMA要求によって
開始される。該転送はDMA転送カウンタレジスタ76
がゼロに減分したときに完了し、次にそれはバックアッ
プレジスタ77からの初期カウンタ値を再ロードする。
制御ビット83はブロック転送の終りに否定されず、D
MAチャネル(部分70)が新しいDMA転送要求また
はトリガに対して用意ができているようにする。
【0035】制御ビット79および81が肯定されかつ
制御ビット80が否定されたとき、単一ワード転送が制
御ビット83が肯定されたときにイネーブルされる。該
単一ワード転送はそれぞれのDMA要求によって開始さ
れる。DMA転送カウンタレジスタ76の内容がゼロに
減分されたとき、それはバックアップレジスタ77から
のその初期値で再ロードされる。制御ビット83は自動
的には否定されず、DMAチャネル(部分70)が新し
い転送要求またはトリガに対して用意ができているよう
にする。
【0036】制御ビット93が否定されたとき、単一次
元ブロック転送が行なわれるかあるいは2次元転送が行
なわれる。単一次元ブロック転送が行なわれる場合、転
送カウンタ71は単一のカウンタとして機能し、かつD
MA転送カウンタレジスタは複数のセクションに区分さ
れない。2次元転送が行なわれる場合、転送カウンタ7
1は2つの別個のカウンタとてして機能し、かつDMA
転送カウンタレジスタ76は2つのセクション、すなわ
ちDCOL(下位ビット)およびDCOH(上位ビッ
ト)、に区分される。制御ビット91および92はDO
R84の4つのオフセットレジスタのうちのどれがソー
スアドレスのためのオフセット情報を提供するのに使用
されるかを決定し、かつビット88および83は前記オ
フセットレジスタのうちのどれがデスティネイションア
ドレスのために使用されるかを決定する。
【0037】2次元転送動作の間は、DMA転送カウン
タレジスタ76は2つのセクション、DCOLおよびD
COH、に分割される。2次元転送のための使用される
ビットの数はDCOLおよびDCOHに対して同じでな
くてもよい。“DCOM”と名付けられたDMAカウン
タレジスタ76の中間ビットは2次元転送の間は使用さ
れずかつDCOLおよびDCOHは各々24ビットのD
MA転送カウンタレジスタ76のうちの12ビットから
なることに注意を要する。
【0038】制御ビット93が肯定されたとき、DMA
転送は3次元でありかつ制御ビット87〜92は3つの
グループに分割され、すなわち、制御ビット91および
92はDMA転送カウンタ71のDMA転送カウンタモ
ードを規定し、制御ビット90はアドレスモードを規定
し、かつ制御ビット87〜89はアドレス発生モードを
規定する。制御ビット93が肯定されたとき、ソース・
アドレシング・モードまたはデスティネイション・アド
レシング・モードあるいは両方が3次元となる。3次元
アドレス発生モードの動作においては、データはDMA
転送カウンタレジスタ76のDCOLビットによって制
御される与えられた数の回数の間引き続くアドレスでア
クセスされる。次に、DOR84からの値が発生された
アドレスに加えられる。このプロセスがDMA転送カウ
ンタレジスタ76のDCOMビットよって規定される他
の所定の数の回数の間反復される。次に、他のオフセッ
ト値が発生されたアドレスに加えられ、これはDOR8
4からの前のオフセット値と同じであってもよくあるい
は同じでなくてもよい。このような処理がDMA転送カ
ウンタレジスタ76のDCOHビットの値によって決定
される第3の所定の数の回数の間反復される。
【0039】制御ビット91および92によって規定さ
れる3つのカウンタモードがある。該カウンタモードは
転送カウンタレジスタ76のDCOL,DCOMおよび
DCOHの各々に割当てられたビットの数を制御する。
制御ビット91および92の双方を否定することによっ
て入る、第1のカウンタモードでは、DCOLは転送カ
ウンタレジスタ76のビット0〜5を有し、DCOMは
ビット6〜11を有し、かつDCOHはビット12〜2
3を有する。制御ビット91を否定しかつ制御ビット9
2を肯定することによって入る、第2のカウンタモード
では、DCOLはビット0〜5を有し、DCOMはビッ
ト6〜17を有し、かつDCOHはビット18〜23を
有する。制御ビット91を肯定しかつ制御ビット92を
否定することによって入る、第3のカウンタモードで
は、DCOLはビット0〜11を有し、DCOMはビッ
ト12〜17を有し、かつDCOHはビット18〜23
を有する。
【0040】DCORにおけるオフセット値はDCOL
またはDCOMがゼロに等しい場合にオフセットの量を
規定する。2次元転送モードでは、DOR84の1つの
オフセットレジスタのみが必要である。3次元転送モー
ドでは、2つのオフセットレジスタが必要である。DC
OLがゼロに等しくかつDCOMがゼロに等しくない場
合は、第1のオフセット値が発生されたアドレスを増分
するために使用される。DCOLおよびDCOMがゼロ
に等しい場合、第2のオフセット値が発生されたアドレ
スを増分するために使用される。
【0041】多次元転送の利点は、ソフトウェアのオー
バヘッドがほとんどまたはまったくなく、柔軟性があ
り、ソースおよびデスティネイションが独立にプログラ
ム可能であり、かつ各々のDCOL,DCOMおよびD
COHに対して異なるサイズが利用可能であり、例え
ば、8:8:8または12:6:6のようにすることが
できるなどである。自己初期化(self−initi
alization)機能は複数のDMAチャネルを有
するプロセッサにおいて非常に有用であり、その場合ソ
フトウェアはDMAチャネルに対して異なるタスクを割
当てることができる。さらに、DMA転送カウンタを再
ロードし、または自己初期化することにより、DMAチ
ャネルをプログラミングするためのメインプロセッサの
オーバヘッドおよびブロック転送が完了した後にDMA
チャネルを再プログラムする必要によって生じるソフト
ウェアのオーバヘッドを最小にすることによって性能が
増強される。これは小さなブロックおよび複雑なデータ
構造を処理する場合に特に有用である。また、3次元転
送モードはまた多数の2次元メモリアレイをアクセスす
るのにも有用である。
【0042】図3は、フローチャート形式で、本発明の
一実施形態に係わる2次元転送動作のために必要とされ
るステップを示す。ダイヤモンド形状のボックス95お
よび99は判断ステップを表わし、かつ方形のボックス
96〜98,100〜103および104〜106はア
ドレス発生ユニット/DMAコントローラ36の部分7
0を使用して2次元DMA転送を動作させるために行な
われるステップを表わす。
【0043】判断ステップ95において、コントローラ
80はDMAカウンタレジスタ76の下位ビット(DC
OL)がゼロより大きいかを判定する。もしDCOLビ
ットがゼロより大きければ、「イエス」経路がとられ
る。DCOLビットがゼロに等しい場合、「ノー」経路
が判断ステップ99へととられる。ステップ96におい
て、DSR82の選択されたレジスタの内容が、内部ま
たは外部の、デスティネイションに転送される。DSR
転送に言及するステップは等しくDDR転送にも適用で
きることに注意を要する。ステップ97において、DS
R82における選択されたレジスタがソース加算器85
によって1だけ増分され、かつステップ98においてD
COLが1だけ減分される。プログラムは判断ステップ
95に戻りDCOLがゼロに等しくなるまでステップ9
5〜98を反復し、DCOLがゼロに等しくなった時点
で「ノー」経路が判断ステップ99へととられる。
【0044】ステップて99においては、DMAコント
ローラ80はDMAカウンタレジスタ76のより上位の
ビット(DCOH)がゼロより大きいかを判定する。も
しDCOHビットがゼロより大きければ、「イエス」経
路が判断ステップ99からとられる。DSRにおけるア
ドレスがステップ100において転送される。ステップ
101において、DSRのアドレスがソース加算器85
によってDOR84におけるレジスタDOR0からとら
れたオフセット値によって増分される。DCOHがステ
ップ102において1だけ減分され、かつステップ10
3においてDCOLがバックアップレジスタ77から再
ロードされ、または再初期化される。プログラムは次に
判断ステップ95に戻りかつステップ95〜98が転送
カウンタレジスタDCOLがゼロに等しくなるまで反復
される。次に判断ステップ95から判断ステップ99へ
と「ノー」経路がとられ、ステップ99〜103が行な
われかつステップ95〜98がカウンタレジスタDCO
Lがゼロに等しくなるまで反復される。DCOHがゼロ
に等しくなったとき、ステップ104〜106は完了し
かつ転送が終了してDCOLおよびDCOHが再ロード
されて次のDMA要求のために用意ができる。
【0045】ステップ104においてDSRにおける発
生されたアドレスが転送され、次にステップ105にお
いてDSRにおける発生されたアドレスがDOR84の
レジスタDORゼロのオフセット値によって増分され
る。ステップ106において、DCOLおよびDCOH
がバックアップレジスタ77からのそれらの初期値によ
って再ロードされアドレス発生ユニット/DMAコント
ローラ36の部分70が同じ初期カウンタ値を必要とす
る他のDMA要求のために用意ができるようにする。も
し異なる初期カウンタ値が必要であれば、それらはDM
A転送が生じ得る前にプログラム制御ユニット46によ
ってロードされる。
【0046】図4は、フローチャート形式で、本発明の
他の実施形態に係わるラインごとの転送を示す。ダイヤ
モンド形状のボックス110および114は判断ステッ
プを表わし、かつ方形のボックス111〜113,11
5〜118および119〜121はアドレス発生ユニッ
ト/DMAコントローラ36の部分70のラインごとの
動作の1つの実施形態を動作させるために行なわれるス
テップを表わす。図4のラインごとの転送動作は本質的
に図3のフローチャートで示された2次元転送動作と同
じであるが、異なる点はDCOLがゼロに等しくなった
後、他のトリガが受信されるまで転送が中止されること
である。新しいトリガが受信されたとき、DMA転送が
続けられる。
【0047】このラインごとの転送は小さなブロック、
またはライン、がDMAを有する従来技術の処理システ
ムにおいて一般的な、DMA要求を処理しかつパラメー
タを再ロードするためにプロセッサに割込むことなく、
転送できるようにする。このラインごとの転送は巡回バ
ッファの内容を他のメモリ空間に転送するのに有用であ
る。巡回バッファが満杯になるたびごとに、その内容が
転送され、かつDSR82のアドレスレジスタのアドレ
スが最初のアドレスを指し示すようにラップアラウンド
されるこのラインごとの転送はまた表示情報のフィルタ
リングを可能にするために、モニタの「ライン」を転送
するのにも有用である。
【0048】さらに図4を参照すると、DSR82にお
けるレジスタに格納された初期アドレスにより、トリガ
または要求が受信されたときに転送が開始される。判断
ステップ110において、DCOLがゼロより大きけれ
ば、「イエス」経路がとられ、かつステップ111にお
いてDSR82におけるレジスタのアドレスの転送が開
始される。ステップ112において、DCOLが1だけ
減分され、かつステップ113においてDSRが1だけ
増分される。プログラムは判断ステップ110に戻り、
かつDCOLがゼロに等しくなるまで反復される。次
に、「ノー」経路が判断ステップ110から判断ステッ
プ114へととられる。もしDCOHがゼロより大きけ
れば、「イエス」経路が判断ステップ114からステッ
プ115へととられる。ステップ115においては、D
SRからの発生されたアドレスが転送される。次に、ス
テップ116において、DCOLがバックアップレジス
タ77からDMA転送カウンタレジスタ76へと再ロー
ドされる。ステップ117において、カウンタ72がD
COHを1だけ減分する。ステップ118においてDO
R84におけるレジスタDOR0からのオフセット値が
ソース加算器85によってDSR82に加えられる。転
送は次に新しい要求が受信されるまで中止される。
【0049】もし、判断ステップ114において、DC
OHがゼロに等しければ、「ノー」経路がステップ11
9へととられる。ステップ119においては、DSR8
2における発生されたアドレスが転送される。ステップ
120においては、DCOLおよびDCOHがバックア
ップレジスタ77からの初期値によって再ロードされ
る。ステップ121においては、DSR82はDOR8
4のDOR0に格納されたオフセット値により増分され
る。転送は次に中止される。カウンタレジスタ86のD
COLおよびDCOHが再初期化されたから、DMAコ
ントローラ80は前の転送と同じカウンタ値を必要とす
る新しい転送のめたの用意ができている。
【0050】図5は、フローチャート形式で、本発明の
他の実施形態に係わる3次元転送動作を示す。ダイヤモ
ンド形状のボックス125,129および134は判断
動作を表わし、かつ方形のボックス126〜128,1
30〜133,135〜138および139〜141は
アドレス発生ユニット/DMAコントローラ36の部分
70の1つの実施形態の3次元転送動作を行なわせるた
めに実行されるステップを表わす。
【0051】3次元DMA転送は初期値がDMA転送カ
ウンタレジスタ76にロードされ、開始アドレスがDS
R82またはDDR83におけるレジスタの1つに提供
され、かつプログラム制御ユニット46によって要求が
行なわれたときにスタートされる。DSR82における
選択されたレジスタからの転送が図3〜図5に示されて
いるが、図3〜図5のステップはDDR84における選
択されたレジスタからの転送にも等しく適用できること
に注意を要する。
【0052】3次元DMAが開始された後、判断ステッ
プ125においてDMAカウンタレジスタ76の下位ビ
ット(DCOL)がゼロより大きいかが判定される。も
しDCOLビットがゼロより大きければ、「イエス」経
路がとられる。DCOLビットがゼロに等しい場合は、
「ノー」経路が判断ステップ129へととられる。DC
OLがゼロより大きいものと仮定すると、ステップ12
6においてDSR82の選択されたレジスタの内容が、
内部的なまたは外部的な、受け入れメモリ空間に転送さ
れる。ステップ127において、DSR82のレジスタ
がソース加算器85によって1だけ増分され、かつステ
ップ128においてDCOLが転送カウンタ74によっ
て1だけ減分される。プログラムは判断ステップ125
に戻りかつDCOLがゼロに等しくなるまで処理を反復
し、DCOLがゼロに等しくなった時点で「ノー」経路
が判断ステップ129へととられる。
【0053】判断ステップ129においては、コントロ
ーラ80はDMAカウンタレジスタ76の中間ビット
(DCOM)がゼロより大きいかを判定する。もしDC
OMビットがゼロより大きければ、判断ステップ129
からステップ130への「イエス」経路がとられる。ス
テップ130において、DSRにおける発生されたアド
レスが転送される。ステップ131において、DSRに
おける発生されたアドレスがソース加算器85によって
DOR84におけるレジスタDOR0からとられたオフ
セット値により増分される。DCOMは転送カウンタ7
3によりステップ132において1だけ増分され、かつ
DCOLがステップ133においてバックアップレジス
タ77から再ロードされ、あるいは再初期化される。プ
ログラムは次に判断ステップ125に戻り、かつステッ
プ125〜128からなる処理がDCOLがゼロに等し
くなるまで反復される。ステップ125から判断ステッ
プ129まで「ノー」経路がとられかつステップ129
〜133次に125〜128がDCOMがゼロに等しく
なるまで反復される。
【0054】DCOMがゼロに等しい場合、「ノー」経
路が判断ステップ129からとられる。もしDCOHが
ゼロより大きければ、「イエス」経路がステップ135
へととられる。ステップ135において、DSRの内容
が転送される。ステップ136においてDSRがDOR
84のレジスタDOR1からのオフセット値によって増
分される。ステップ137において、DOHが転送カウ
ンタ72によって1だけ減分される。ステップ138に
おいてDCOLおよびDCOMが再ロードされかつステ
ップ125〜128およびステップ129〜133が前
と同様に反復される。DCOHがゼロに等しい場合、
「ノー」経路が判断ステップ134からステップ139
へととられる。ステップ139において、DSRにおけ
る発生されたアドレスが転送される。ステップ140に
おいてDSRがDSR84をレジスタDOR1からの他
のオフセット値によって増分されいる。ステップ141
において、DCOL,DCOMおよびDCOHがバック
アップレジスタ77からのそれらの初期値によって再ロ
ードされ転送が中止される。アドレス発生ユニット/D
MAコントローラ36の部分70は同じカウンタ値を必
要とする他のDMA転送のために用意ができる。もし異
なるカウンタ値が必要であれば、それらは他のDMA転
送を行なうことができるようになる前にプログラム制御
ユニット46によって再ロードされる。
【0055】図6はテーブル形式で、本発明の一実施形
態に係わる3次元DMA転送動作の例示のためにDMA
ソースレジスタ82およびDMAカウンタレジスタ76
の値を示す。3次元転送の例は本発明を理解する助けと
して与えられる。図6に示された例では、“S”はDM
Aソースレジスタ80におけるプリロードされたまたは
予めロードされた開始アドレスを表わす。“DCOL”
は図2のDMAカウンタレジスタ76の最下位ビット
(lowest order bits)を表わす。
“DCOM”は図2のDMAカウンタレジスタ76の第
2のセクションの中間ビットを表わす。“DCOH”は
図2のDMAカウンタレジスタ76の第3のセクション
の最上位ビット(highest order bit
s)を表わす。図6のライン#1に示されるように、D
COHは1の初期値を有し、DCOMは1の初期値を有
し、かつDCOLは2の初期値を有する。O1はオフセ
ットレジスタ84の選択されたレジスタに格納された第
1のオフセット値である。O2はオフセットレジスタ8
4の他の選択されたレジスタに格納された第2のオフセ
ット値である。O1はO2と等しくてもよい。
【0056】ライン#1において、DSR82の選択さ
れたソースレジスタのアドレスSが転送され、アドレス
Sが1だけ増分されてDSR82が発生されたアドレス
S+1を格納する結果となる。DCOLは転送カウンタ
74により1だけ減分され、DCOLの値を1に等しく
する。ライン#2において、発生されたアドレスS+1
が転送される。発生されたアドレスS+1は次にソース
加算器85によって1だけ増分され、発生されたアドレ
スS+1が発生されたアドレスS+2にあるようにす
る。DCOLが転送カウンタ74によって1だけ減分さ
れ、それによってDCOLの値がゼロに等しくなる。ラ
イン#3において、発生されたアドレスS+2が転送さ
れ、DCOLにおける値はゼロに等しいから、第1のオ
フセット値O1がDSR82における発生されたアドレ
スに加えられ、発生されたアドレスはS+O1+2とな
り、かつDCOMはゼロに減分される。DCOLはバッ
クアップレジスタ77からその初期値2によって再ロー
ドされる。
【0057】図6から分かるように、DCOLがライン
#3〜5においてゼロに減分される間に、転送はオフセ
ットロケーションに対して行なわれる。DCOMがライ
ン#6においてその初期値に再ロードされ、かつ第2の
オフセットが発生されたアドレスに加えられる。ライン
#6においてDCOMおよびDCOLの双方がゼロに等
しい場合にDCOHが減分される。次に、DCOLおよ
びDCOMの双方が再ロードされかつDCOMおよびD
COLの双方が再びゼロに等しくなるまで転送が行なわ
れる。ライン#12において、最後の転送が完了し、か
つDCOH,DCOMおよびDCOLがそれらの初期値
によって再ロードされ、同じ転送パラメータを要求する
他のDMA転送のための用意ができる。
【0058】
【発明の効果】本発明に係わる多次元DMA転送によっ
て、データ処理システムのプロセッサはDMA転送を開
始しまたは中止するたびごとに割込まれることはなくな
り、プロセッサを他のタスクに留まらせることができ
る。また、ほとんどまたはまったくソフトウェアのオー
バヘッドがなく、ソースおよびデスティネイションが独
立にプログラム可能であり、かつDCOL,DCOMお
よびDCOHの各々に対して異なるサイズが利用可能で
ある。自己初期化の特徴は複数のDMAチャネルを有す
るプロセッサにおいて非常に有用であり、その場合ソフ
トウェアは各々のDMAチャネルに対して異なるタスク
を割当てることができる。さらに、DMA転送カウンタ
を再ロードし、または自己初期化することにより、DM
Aチャネルをプログラミングするためのメインプロセッ
サのオーバヘッド、およびブロック転送が完了した後の
DMAチャネルの再プログラムの必要によって生じるソ
フトウェアのオーバヘッドを最小化することにより性能
が増強される。これは小さなブロックおよび複雑なデー
タ構造を取り扱う場合に特に有用である。
【0059】本発明が好ましい実施形態に関して説明さ
れたが、当業者には本発明は数多くの方法で修正可能で
ありかつ上に特に示しかつ説明したもの以外に数多くの
実施形態を取り得ることが明らかであろう。したがっ
て、添付の特許請求の範囲は本発明の真の精神および範
囲内にある本発明のすべての修正をカバーすることを意
図している。
【図面の簡単な説明】
【図1】本発明に係わるデータ処理システムを示すブロ
ック図である。
【図2】図1のデータ処理システムのアドレス発生ユニ
ットの一部を示すブロック図である。
【図3】本発明の一実施形態に係わる2次元転送動作を
説明するためのフローチャートである。
【図4】本発明の一実施形態に係わるラインごとの転送
を説明するためのフローチャートである。
【図5】本発明の他の実施形態に係わる3次元転送動作
を説明するためのフローチャートである。
【図6】図5のフローチャートで示される例示的な3次
元転送動作のためのDMAソースレジスタ値およびDM
Aカウンタ値を図表形式で示す説明図である。
【図7】図2のアドレス発生ユニットの部分のDMA転
送モードレジスタを示すブロック図である。
【符号の説明】
20 データ処理システム 22 タイマ 24 ホストインタフェース 26 強化シリアル同期インタフェース 28 シリアル通信インタフェース 30 プログラムRAMおよび命令キャッシュ 32 Xメモリ 34 Yメモリ 36 アドレス発生ユニット/DMAコントローラ 38 外部アドレスバススイッチ 40 内部データバススイッチ 42 DRAMおよびSRAMバスインタフェースおよ
びIキャッシュ制御部 44 外部データバススイッチ 46 プログラム制御ユニット 48 プログラム割込コントローラ 50 プログラムデコードコントローラ 52 プログラムアドレス発生器 54 データALU 70 アドレス発生ユニット/DMAコントローラ36
の部分 71 転送カウンタ 72,73,74 カウンタ 76 DMAカウンタレジスタ 77 バックアップレジスタ 78 DMA転送モードレジスタ 80 DMAコントローラ 82 DMAソースレジスタ 83 DMAデスティネイションレジスタ 84 DMAオフセットレジスタ 85 ソース加算器 86 デスティネーション加算器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 オデド・ノーマン イスラエル、ロシュ−ヘイン、デレック・ ハ・ジヨナット・ストリート 12、ジー・ ハ・スレイム (72)発明者 ズビカ・ローゼンシャイン イスラエル、クファー−サバ、ハバニム・ ストリート 20 (72)発明者 エルカナン・ルシニク イスラエル、ピター−チクバ、ウィズマ ン・ストリート 19

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システム(20)においてデ
    ータを転送する方法であって、 メモリ(32,34)のあるロケーションの第1のアド
    レスを格納する段階、 カウンタ値を格納する段階、 前記第1のアドレスでスタートして、前記カウンタ値で
    決定される第1の所定の数の回数の間引き続き発生され
    るアドレスで前記メモリ(32,34)におけるデータ
    を転送する段階、 最後に発生されたアドレスにオフセット値を加える段
    階、そして第2の所定の数の回数の間引き続き発生され
    るアドレスで前記メモリ(32,34)におけるデータ
    を転送する段階、 を具備することを特徴とするデータ処理システム(2
    0)においてデータを転送する方法。
  2. 【請求項2】 データ処理システム(20)においてデ
    ータのブロックを多次元的に転送する方法であって、前
    記データ処理システムはアドレス格納要素(82)、オ
    フセット格納要素(84)および第1および第2のカウ
    ンタ格納要素(76)を具備し、前記方法は、 第1のアドレスを前記アドレス格納要素(82)にロー
    ドする段階、 オフセット値を前記オフセット格納要素(84)にロー
    ドする段階、 第1の値を前記第1のカウンタ格納要素(76)にかつ
    第2の値を前記第2のカウンタ格納要素(76)にロー
    ドする段階、 もし前記第1の値が所定の値より大きければ、前記アド
    レス格納要素(82)から前記第1のアドレスをデステ
    ィネイション格納要素(83)に転送し、前記第1のア
    ドレスを増分して第2のアドレスを生成し、かつ前記第
    1の値を減分して第2の値を生成する段階、 もし前記第1の値が前記所定の値に等しくかつ前記第2
    の値が前記所定の値より大きければ、前記アドレス格納
    要素(82)からの前記第1のアドレスを前記デスティ
    ネイション格納要素(83)に転送し、前記オフセット
    値を前記第1の値に加算し、かつ前記第2のカウンタ格
    納要素(76)における第2の値を減分する段階、そし
    てもし前記第1の値が前記所定の値に等しくかつ前記第
    2の値が前記所定の値に等しければ、前記アドレス格納
    要素(82)からの前記第1のアドレスを前記デスティ
    ネイション格納要素(83)に転送し、かつ前記オフセ
    ット値を前記第1のアドレスに加算する段階、 を具備することを特徴とするデータ処理システム(2
    0)においてデータのブロックを多次元的に転送する方
    法。
  3. 【請求項3】 データ処理システム(20)においてデ
    ータのブロックを多次元的に転送する方法であって、前
    記データ処理システムはアドレス格納要素(82)、オ
    フセット格納要素(84)、およびカウンタ格納要素
    (76)を具備し、前記方法は、 前記アドレス格納要素(82)に第1のアドレスをロー
    ドする段階、 前記オフセット格納要素(84)にオフセット値をロー
    ドする段階、 前記カウンタ格納要素(76)を少なくとも第1のセク
    ションおよび第2のセクションに区分する段階、 前記第1のセクションに第1の値を、かつ前記第2のセ
    クションに第2の値をロードする段階、 もし前記第1の値が所定の値より大きければ、前記第1
    のアドレスを前記アドレス格納要素(82)からデステ
    ィネイション格納要素(83)に転送し、前記第1のア
    ドレスを増分して第2のアドレスを生成し、かつ前記第
    1の値を減分して第2の値を生成する段階、 もし前記第1の値が前記所定の値に等しくかつ前記第2
    の値が前記所定の値より大きければ、前記第1のアドレ
    スを前記アドレス格納要素(82)から前記デスティネ
    イション格納要素(83)に転送し、前記オフセット値
    を前記第1のアドレスに加算し、かつ前記第2のカウン
    タ格納要素における前記第2の値を減分する段階、そし
    てもし前記第1の値が前記所定の値に等しくかつ前記第
    2の値が前記所定の値に等しければ、前記第1のアドレ
    スを前記アドレス格納要素(82)から前記デスティネ
    イション格納要素(83)へと転送し、かつ前記オフセ
    ット値を前記第1のアドレスに加算する段階、 を具備することを特徴とするデータ処理システム(2
    0)においてデータのブロックを多次元的に転送する方
    法。
  4. 【請求項4】 データ処理システム(20)において多
    次元データ転送を行なうためのダイレクトメモリアクセ
    ス・コントローラ(70)であって、 アドレスを格納するためのアドレス格納要素(82)、 オフセット値を格納するためのオフセット格納要素(8
    4)、 前記アドレス格納要素(82)にかつ前記オフセット格
    納要素(84)に結合され、前記アドレスを1だけ増分
    し、または前記オフセット値を前記アドレスに加算する
    ための加算器(85)、 カウンタ格納要素(76)であって、該カウンタ格納要
    素は少なくとも2つのセクションに区分され、該少なく
    とも2つのセクションの各々は多次元データ転送を制御
    するためのパラメータを含むもの、そして前記加算器
    (85)、前記オフセット格納要素(84)、前記アド
    レス格納要素(82)および前記カウンタ格納要素(7
    6)に結合されて前記オフセット格納要素(84)およ
    び前記カウンタ格納要素(76)に含まれる前記パラメ
    ータに基づき多次元データ転送を制御する制御論理回路
    (80)、 を具備することを特徴とするデータ処理システム(2
    0)において多次元データ転送を行なうためのダイレク
    トメモリアクセス・コントローラ(70)。
JP7328050A 1994-12-05 1995-11-22 データ処理システムにおいてデータを多次元転送する方法 Pending JPH08221353A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/349,218 US5628026A (en) 1994-12-05 1994-12-05 Multi-dimensional data transfer in a data processing system and method therefor
US08/349,218 1994-12-05

Publications (1)

Publication Number Publication Date
JPH08221353A true JPH08221353A (ja) 1996-08-30

Family

ID=23371402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7328050A Pending JPH08221353A (ja) 1994-12-05 1995-11-22 データ処理システムにおいてデータを多次元転送する方法

Country Status (3)

Country Link
US (1) US5628026A (ja)
EP (1) EP0716378A1 (ja)
JP (1) JPH08221353A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524166A (ja) * 2004-01-28 2007-08-23 ラムバス・インコーポレーテッド 構成可能な相互接続トポロジを用いたi/o帯域幅の適応割当て

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100188990B1 (ko) * 1994-09-27 1999-06-01 이리마지리 쇼우이치로 데이타 중계 장치 및 이것을 이용한 비디오 게임 장치
US5859990A (en) * 1995-12-29 1999-01-12 Intel Corporation System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices
US6449664B1 (en) * 1998-11-16 2002-09-10 Viewahead Technology, Inc. Two dimensional direct memory access in image processing systems
JP2000216935A (ja) 1999-01-25 2000-08-04 Canon Inc 複合機器の情報処理システム
JP3976927B2 (ja) * 1999-01-25 2007-09-19 キヤノン株式会社 バス制御装置
US6701388B1 (en) * 1999-09-28 2004-03-02 Texas Instruments Incorporated Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
US6542940B1 (en) * 1999-10-25 2003-04-01 Motorola, Inc. Method and apparatus for controlling task execution in a direct memory access controller
GB2359906B (en) * 2000-02-29 2004-10-20 Virata Ltd Method and apparatus for DMA data transfer
US6609188B1 (en) * 2000-03-31 2003-08-19 Intel Corporation Data flow processor
GB0130534D0 (en) 2001-12-20 2002-02-06 Aspex Technology Ltd Improvements relating to data transfer addressing
JP4686104B2 (ja) * 2002-04-22 2011-05-18 富士通セミコンダクター株式会社 Dmaコントローラ
WO2007003986A1 (en) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc. Device and method for controlling an execution of a dma task
EP1899825B1 (en) 2005-06-30 2009-07-22 Freescale Semiconductor, Inc. Device and method for controlling multiple dma tasks
EP1899828B1 (en) * 2005-06-30 2009-11-25 Freescale Semiconductor, Inc. Device and method for arbitrating between direct memory access task requests
US20090125647A1 (en) * 2005-06-30 2009-05-14 Citibank, N.A. Device And Method For Executing A DMA Task
JP4717570B2 (ja) * 2005-09-15 2011-07-06 株式会社リコー データ転送装置、表示装置、およびデータ転送方法
US7502909B2 (en) * 2005-10-11 2009-03-10 Motorola, Inc. Memory address generation with non-harmonic indexing
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US7634633B2 (en) * 2006-11-30 2009-12-15 Motorola, Inc. Method and apparatus for memory address generation using dynamic stream descriptors
TWI346873B (en) * 2007-03-27 2011-08-11 Ind Tech Res Inst A direct memory access controller with dynamic data width adjustment, method thereof, and computer accessible storage media to store program thereof
CN101276315B (zh) * 2007-03-30 2011-06-22 财团法人工业技术研究院 动态调整传输数据宽度的直接存储器存取控制器与方法
EP2876559B1 (en) * 2010-09-21 2016-04-27 Mitsubishi Electric Corporation DMA controller and data readout device
US9367450B1 (en) 2013-10-07 2016-06-14 Altera Corporation Address arithmetic on block RAMs
US11314674B2 (en) * 2020-02-14 2022-04-26 Google Llc Direct memory access architecture with multi-level multi-striding

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4204250A (en) * 1977-08-04 1980-05-20 Honeywell Information Systems Inc. Range count and main memory address accounting system
JPS582874A (ja) * 1981-06-30 1983-01-08 富士通株式会社 フルグラフィックディスプレイ装置の画面構成変更回路
JPS6057457A (ja) * 1983-09-07 1985-04-03 Ricoh Co Ltd Dma装置
JPH0760423B2 (ja) * 1984-12-24 1995-06-28 株式会社日立製作所 データ転送方式
JPS62194284A (ja) * 1986-02-21 1987-08-26 株式会社日立製作所 表示アドレス制御装置
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US5109501A (en) * 1986-10-13 1992-04-28 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus having a transferable data counter
DE68927015D1 (de) * 1988-02-08 1996-10-02 Fujitsu Ltd Direktspeicherzugriffssteuerung
JPH01237864A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd Dma転送制御装置
JPH01265347A (ja) * 1988-04-18 1989-10-23 Matsushita Electric Ind Co Ltd アドレス生成装置
US5140679A (en) * 1988-09-14 1992-08-18 National Semiconductor Corporation Universal asynchronous receiver/transmitter
US5109497A (en) * 1989-01-27 1992-04-28 Hughes Aircraft Company Arithmetic element controller for controlling data, control and micro store memories
US5187783A (en) * 1989-03-15 1993-02-16 Micral, Inc. Controller for direct memory access
US5287471A (en) * 1989-07-24 1994-02-15 Nec Corporation Data transfer controller using direct memory access method
US5175825A (en) * 1990-02-02 1992-12-29 Auspex Systems, Inc. High speed, flexible source/destination data burst direct memory access controller
JP3055917B2 (ja) * 1990-05-22 2000-06-26 日本電気株式会社 データ転送制御装置
JPH0496163A (ja) * 1990-08-08 1992-03-27 Nec Corp Dmaコントローラ
GB2250615B (en) * 1990-11-21 1995-06-14 Apple Computer Apparatus for performing direct memory access with stride
US5381538A (en) * 1991-10-15 1995-01-10 International Business Machines Corp. DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
JPH05108548A (ja) * 1991-10-15 1993-04-30 Nec Ic Microcomput Syst Ltd Dmaコントローラ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524166A (ja) * 2004-01-28 2007-08-23 ラムバス・インコーポレーテッド 構成可能な相互接続トポロジを用いたi/o帯域幅の適応割当て
JP2011204254A (ja) * 2004-01-28 2011-10-13 Rambus Inc 構成可能な相互接続トポロジを用いたi/o帯域幅の適応割当て
JP4800224B2 (ja) * 2004-01-28 2011-10-26 ラムバス・インコーポレーテッド 構成可能な相互接続トポロジを用いたi/o帯域幅の適応割当て
US8073009B2 (en) 2004-01-28 2011-12-06 Rambus Inc. Adaptive allocation of I/O bandwidth using a configurable interconnect topology

Also Published As

Publication number Publication date
US5628026A (en) 1997-05-06
EP0716378A1 (en) 1996-06-12

Similar Documents

Publication Publication Date Title
JPH08221353A (ja) データ処理システムにおいてデータを多次元転送する方法
EP0243085B1 (en) Coprocessor architecture
US4799199A (en) Bus master having burst transfer mode
JP2006268801A (ja) メモリアクセス制御回路
JPH04246745A (ja) 情報処理装置及びその方法
JP3619532B2 (ja) 半導体集積回路装置
US6272583B1 (en) Microprocessor having built-in DRAM and internal data transfer paths wider and faster than independent external transfer paths
JP3803196B2 (ja) 情報処理装置、情報処理方法および記録媒体
JP3153078B2 (ja) データ処理装置
JP2618223B2 (ja) シングルチツプマイクロコンピユータ
JPH01125644A (ja) データ転送装置
US6785795B1 (en) Data processing device for use in cooperation with a memory
JPS60205760A (ja) メモリ制御装置
JP3168845B2 (ja) ディジタル信号処理装置
JP2972557B2 (ja) データ転送制御装置および制御方法
JPH06274450A (ja) データ転送システム
JP3127737B2 (ja) ディジタル信号処理装置
JP2570271B2 (ja) 半導体メモリ制御装置
JPS6336021B2 (ja)
JPS602708B2 (ja) 単一チツプ・コンピユ−タのアドレス指定方式
JPH05334233A (ja) データ転送装置
JPS60142450A (ja) 記憶システム
JPH04199450A (ja) ダイレクト・メモリ・アクセス制御回路
JPH10134013A (ja) マルチcpuシステム
JPH05108538A (ja) メモリアクセス制御方式