JP2001188748A - データ転送装置 - Google Patents

データ転送装置

Info

Publication number
JP2001188748A
JP2001188748A JP37191899A JP37191899A JP2001188748A JP 2001188748 A JP2001188748 A JP 2001188748A JP 37191899 A JP37191899 A JP 37191899A JP 37191899 A JP37191899 A JP 37191899A JP 2001188748 A JP2001188748 A JP 2001188748A
Authority
JP
Japan
Prior art keywords
data
dma
transfer
local
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
JP37191899A
Other languages
English (en)
Inventor
Yoshiteru Mino
吉輝 三野
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP37191899A priority Critical patent/JP2001188748A/ja
Priority to US09/747,685 priority patent/US6782433B2/en
Priority to KR10-2000-0082791A priority patent/KR100395383B1/ko
Publication of JP2001188748A publication Critical patent/JP2001188748A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【課題】 データ転送速度を向上させることが可能なデ
ータ転送装置を提供する。 【解決手段】 データ転送装置1は、先入れ先出しバッ
ファ(FIFO)2と、FIFO2を制御する制御器2
2とを備えている。制御器22は、ローカルバスが使用
可能な場合には、FIFO2に格納された1語以上のC
PUアクセスデータをローカルメモリ56に逐次転送
し、FIFO2に格納された複数語のDMAアクセスデ
ータをローカルメモリ56にバースト転送するように、
FIFO2を制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メインバスに接続
されたメインメモリからローカルバスに接続されたロー
カルメモリにデータを転送するデータ転送装置に関す
る。
【0002】
【従来の技術】図6は、従来のデータ転送装置100の
構成を示す。
【0003】データ転送装置100は、メインメモリ1
12からローカルメモリ156にデータを転送する。
【0004】データ転送装置100は、メインバスイン
タフェース127と、ローカルバスインタフェース13
4と、DMA先頭アドレスレジスタ120と、DMA転
送語数レジスタ121と、加算器104と、減算器10
3と、制御器122とを含む。
【0005】メインバスインタフェース127と、ロー
カルバスインタフェース134とは、内部データ線15
1と内部アドレス線152とを介して相互に接続されて
いる。
【0006】メインバスインタフェース127は、メイ
ンデータバス113とメインアドレスバス150とに接
続されている。メインデータバス113とメインアドレ
スバス150とには、データ転送装置100の周辺装置
として、CPU110とDMAコントローラ111とメ
インメモリ112とが接続されている。
【0007】ローカルバスインタフェース134は、ロ
ーカルデータバス128とローカルアドレスバス135
とに接続されている。ローカルデータバス128とロー
カルアドレスバス135とには、データ転送装置100
の周辺装置として、バスインタフェース155を介して
ローカルメモリ156が接続されている。
【0008】なお、ローカルデータバス128とローカ
ルアドレスバス135とには、内部データ処理装置16
1がさらに接続されている。データ転送装置100と内
部データ処理装置161とは、ローカルメモリ156を
共有するユニファイドメモリアーキテクチャを採用す
る。内部データ処理装置161は、例えば、ビデオ出力
処理回路である。
【0009】ここで、CPU110およびDMAコント
ローラ111からローカルメモリ156まで1語転送を
行う場合、外部バス転送サイクル(メインバス転送サイ
クル)に対して内部バス転送サイクル(ローカルバス転
送サイクル)は2分の1で行われるとする。
【0010】実際には、外部バス転送サイクルが10M
Hzであり、内部バス転送サイクルが100MHzであ
り得る。これは、チップの内部バスのクロックは、チッ
プの外部バスのクロックよりも、高速に動作させられる
ことなどの理由による。
【0011】本明細書では、CPU110がメインメモ
リ112からローカルメモリ156にデータを転送する
ことを「CPU転送」といい、DMAコントローラ11
1がメインメモリ112からローカルメモリ156にデ
ータを転送することを「DMA転送」という。
【0012】以下、CPU110、DMAコントローラ
111およびデータ転送装置100の概略動作を説明す
る。
【0013】メインメモリ112およびローカルメモリ
156は、CPU110およびDMAコントローラ11
1にメモリマップされている。
【0014】CPU110およびDMAコントローラ1
11は、メインデータバス113の使用権を交互にもし
くは連続して取得し、データ転送装置100を介してデ
ータを転送する。
【0015】(CPU転送の場合)CPU110は、メ
インデータバス113の使用権を取得すると、メインデ
ータバス113とメインアドレスバス150とを介し
て、メインメモリ112からデータを転送ソースとして
読み出し、データ転送装置100に出力されるCPUア
クセス制御信号123をアサートするとともに、メイン
データバス113とメインアドレスバス150とを介し
て、メインメモリ112から読み出されたデータを転送
ディスティネーションとしてデータ転送装置100に出
力する。
【0016】(DMA転送の場合)この場合には、CP
U110を用いてDMA転送の初期設定をDMAコント
ローラ111およびデータ転送装置100において行う
ことが必要になる。
【0017】まず、DMAコントローラ111の内部レ
ジスタ(図示せず)に転送ソースであるメインメモリ1
12の先頭アドレスおよび転送語数をセットし、DMA
転送開始を要求する。
【0018】次に、CPU110は、CPUアクセスに
よりデータ転送装置100内のDMA先頭アドレスレジ
スタ120に転送先であるローカルメモリ156のDM
A転送における先頭アドレスを設定する。
【0019】次に、CPU110は、CPUアクセスに
よりデータ転送装置100内のDMA転送語数レジスタ
121にDMA転送回数を設定する。
【0020】データ転送装置100は、DMA転送の初
期設定が完了し、ローカルメモリ156に対するデータ
転送の準備が整い次第、DMA要求信号126をアサー
トする。
【0021】DMAコントローラ111は、DMA要求
信号126のアサートを検出し、メインデータバス11
3の使用権を取得すると、メインデータバス113とメ
インアドレスバス150とを介して、メインメモリ11
2からデータを転送ソースとして読み出し、データ転送
装置100に出力されるDMAアクセス制御信号125
をアサートするとともに、メインデータバス113を介
して、メインメモリ112から読み出されたデータを転
送ディスティネーションとしてデータ転送装置100に
出力する。
【0022】なお、DMA転送の場合には、ディスティ
ネーション側であるデータ転送装置100には、ローカ
ルメモリ156のアドレスは出力されない。
【0023】次に、データ転送装置100およびバスコ
ントローラ133の概略動作を説明する。
【0024】CPU転送およびDMA転送を行う場合、
データ転送装置100は、データの転送先であるローカ
ルメモリ156が接続されているローカルデータバス1
28、ローカルアドレスバス135の使用権を要求する
ローカルバス要求信号130をバスコントローラ133
に出力する。ここで、ローカルデータバス128、ロー
カルアドレスバス135は、複数の処理ブロックによっ
て共用されていると仮定する。内部データ処理装置16
1からのローカルバス要求信号160が出力されていな
い場合、バスコントローラ133は、ローカルバス許可
信号129をデータ転送装置100に出力する。
【0025】次に、データ転送装置100の内部動作を
説明する。
【0026】(CPU転送の場合)CPUアクセス制御
信号123とともCPU110から出力されるデータお
よびローカルメモリアドレスは、メインバスインタフェ
ース127に一時的に格納される。
【0027】制御器122は、CPU110からCPU
アクセス制御信号123を受け取ると、CPU110に
出力されるウェイト信号124をアサートするとともに
バスコントローラ133にローカルバス要求信号130
を出力する。
【0028】制御器122は、バスコントローラ133
からローカルバス許可信号129を受け取ると、ローカ
ルバス制御信号162をローカルバスインタフェース1
34に出力する。ローカルバスインタフェース134
は、ローカルバス制御信号162に従って、内部データ
線151上のデータをローカルデータバス128に出力
し、内部アドレス線152上のアドレスをローカルアド
レスバス135に出力する。
【0029】ここで、ローカルバス制御信号162は、
ローカルデータバス128にデータを出力するタイミン
グを示すフィールドと、内部アドレス線152上のアド
レスおよびDMAアドレス線153上のアドレスのどち
らをローカルアドレスバス135に出力するかを示すア
ドレス選択フィールドとを含んでいる。CPU転送の場
合には、内部アドレス線152上のアドレスをローカル
アドレスバス135に出力するように、ローカルバス制
御信号162のアドレス選択フィールドが設定される。
【0030】バスインタフェース155は、ローカルア
ドレスバス135上のアドレスをデコードし、そのデコ
ードされたアドレスに従って、ローカルデータバス12
8上のデータをローカルメモリ156に出力する。
【0031】(DMA転送の場合)制御器122は、バ
スコントローラ133にローカルバス要求信号130を
出力する。
【0032】バスコントローラ133は、内部データ処
理装置161からのローカルバス要求信号160がアサ
ートされていなければ、ローカルバス許可信号129を
制御器22に出力する。
【0033】制御器122は、ローカルバス許可信号1
29のアサートを検出すると、DMA要求信号126を
DMAコントローラ111に出力する。制御器122
は、DMAコントローラ111からアサートされたDM
Aアクセス制御信号125を受け取ると、DMA要求信
号126をネゲートするとともに、ローカルバスインタ
フェース134にローカルバス制御信号162を出力す
る。DMA転送の場合には、DMAアドレス線153上
のアドレスをローカルアドレスバス135に出力するよ
うに、ローカルバス制御信号162のアドレス選択フィ
ールドが設定される。
【0034】DMA転送の場合、ローカルメモリ156
の先頭アドレスはDMA先頭レジスタ120に予め設定
され、DMA転送語数はDMA転送語数レジスタ121
に予め設定される。DMAアクセス開始とともに入力さ
れるDMAアクセス制御信号125に同期して、制御器
22はDMA開始要求信号158をアサートする。
【0035】加算器104は、DMA開始要求信号15
8のアサートを検出すると、DMA先頭アドレスレジス
タ122の値を初期値として、前回のDMAアドレスを
1語分だけインクリメントし、DMAアドレス線153
に出力するとともに、DMAアドレス生成終了信号15
4をアサートする。
【0036】減算器103は、DMA開始要求信号15
8のアサートを検出すると、DMA転送語数レジスタ1
21の値を初期値として、前回のDMA転送残数を1語
分だけデクリメントする。減算器103は、DMA転送
残数が1語となった場合には、DMA転送残数フラグ1
57をアサートする。
【0037】制御器122は、DMA転送残数フラグ1
57のネゲートを検出するまで、ローカルデータバス1
28へのデータ転送が終了した時点でCPU110から
のアクセスがない場合には、DMAコントローラ111
に出力されるDMA要求信号126をアサートする。
【0038】図7は、CPU転送とDMA転送とを混在
して行った場合におけるデータ転送装置100の動作シ
ーケンスを示す。
【0039】図7において、各信号のLレベルがアサー
トを表し、各信号のHレベルがネゲートを表すと仮定す
る。
【0040】図7に示される例では、1語のCPU転送
が5回行われ、10語のDMA転送が1回行われる。
【0041】T1サイクル以前には、前述したDMA転
送のための初期値が予め設定されていると仮定する。デ
ータ転送装置100は、DMA要求信号126をアサー
トする。DMAコントローラ111は、DMA要求信号
126のアサートを検出し、DMA転送要求信号197
をアサートする。
【0042】ここで、CPU110は、DMA転送要求
信号197のアサートを検出しているが、次のサイクル
以降は、CPU転送を行うことを決定すると仮定する。
その結果、T1、T2サイクルをCPU基本アクセスタ
イムとして、CPU110とデータ転送装置100との
間の外部バス転送(CPU_M1)が行われる。CPU
110は、T1サイクルにおいてCPUアクセス制御信
号123のアサートを開始する。
【0043】データ転送装置100は、CPUアクセス
制御信号123のアサートを検出すると、ウェイト制御
信号124をアサートする。ウェイト制御信号124が
アサートされている間、CPU110は次のサイクル以
降にCPU転送およびDMA転送を行うことができない
ように制御される。
【0044】T3サイクルにおいて、データ転送装置1
00とローカルメモリ156の間の内部バス転送(CP
U_L1)が行われる。
【0045】内部バス転送(CPU_L1)が終了する
と、データ転送装置100は、ウェイト制御信号124
をネゲートする。
【0046】CPU110は、ウェイト制御信号124
のネゲートを検出すると、CPUアクセス制御信号12
3をネゲートするとともに、次のサイクルにCPU転送
もしくはDMA転送を行うための準備を開始する。ここ
では、CPU110は、DMA転送要求信号197がア
サートされていることを検出し、次のサイクルにDMA
転送を行うことを決定すると仮定する。この場合、CP
U110は、DMAコントローラ111に出力されるD
MA転送許可信号196をアサートする。
【0047】DMAコントローラ111は、DMA転送
許可信号196のアサートを検出すると、T4、T5サ
イクルをDMA基本アクセスタイムとして、DMAコン
トローラ111とデータ転送装置100との間で外部バ
ス転送(DMA_M1)を行い、DMAアクセス制御信
号125をアサートする。DMAアクセス制御信号12
5は、DMA基本アクセスタイム間のみアサートされ
る。
【0048】データ転送装置100は、DMAアクセス
制御信号125のアサートを検出すると、DMA要求信
号126をネゲートする。
【0049】T6サイクルにおいて、データ転送装置1
00とローカルメモリ156の間の内部バス転送(DM
A_L1)が行われる。
【0050】内部バス転送(DMA_L1)が終了する
と、データ転送装置100は、DMA転送残数を検出
し、DMA要求信号126のアサートを開始する。
【0051】DMAコントローラ111は、DMA要求
信号126のアサートを検出すると、DMA転送要求信
号197のアサートを開始する。
【0052】これ以降、CPU110は、CPU転送お
よびDMA転送を交互にまたは連続的に行う。しかし、
データ転送装置100とローカルメモリ156の間の内
部バス転送は、内部データ処理装置161とローカルメ
モリ156の間の内部バス転送(例えば、INT_1)
が行われている場合には、この内部バス転送が終了する
まで待たされる。このため、CPU110とデータ転送
装置100とのデータ転送に要するサイクルが延長され
る。
【0053】T7サイクルにおいて、CPU110は、
CPUアクセス制御信号123をアサートすることによ
り、データ転送装置100にデータ転送の開始を通知す
る。データ転送装置100は、CPUアクセス制御信号
123のアサートを検出すると、ローカルバス要求信号
130をバスコントローラ133に出力することによ
り、ローカルバスの使用権をバスコントローラ133に
要求する。図7に示される例では、バスコントローラ1
33は、データ転送装置100ではなく、内部データ処
理装置161にローカルバスの使用権を与える。内部デ
ータ処理装置161からも同様にローカルバスの使用権
の要求が発生しているからである。
【0054】T8サイクルにおいて、内部データ処理装
置161とローカルメモリ156との間の内部バス転送
(INT_1)が開始される。その内部バス転送(IN
T_1)は、T12サイクルまで行われる。
【0055】T12サイクルの終わりにおいて、バスコ
ントローラ133は、ローカルバスの使用権をデータ転
送装置100に与える。
【0056】T13サイクルにおいて、データ転送装置
100とローカルメモリ156との間の内部バス転送
(CPU_L2)が行われる。内部バス転送(CPU_
L2)が終了すると、データ転送装置100は、ウェイ
ト制御信号24をネゲートする。CPU110は、ウェ
イト制御信号24のネゲートを検出すると、CPUアク
セス制御信号123をネゲートする。
【0057】以降、CPU110とDMAコントローラ
111がメインバスの使用権を取り合いながら、データ
転送装置100にデータを転送する。
【0058】T47サイクルにおいて、10回目のDM
Aアクセス制御信号125が検出される。この場合、D
MA転送残数が0となるため、データ転送装置100か
らのDMA要求信号126がネゲートされる。これ以
降、DMA転送は、CPU110によって前述したDM
A転送のための初期値が予め設定された後に再度開始さ
れる。
【0059】
【発明が解決しようとする課題】上述したように、従来
のデータ転送装置100とローカルメモリ156との間
の内部バス転送は、内部データ処理装置161とローカ
ルメモリ156との間の内部バス転送が終了するまで待
たされる。
【0060】このように、従来のデータ転送装置は、ロ
ーカルバスが使用可能となるまで、CPU転送にウェイ
トをかけるように制御され、もしくは、DMA転送要求
をDMAコントローラに出力しないように制御される。
その結果、データ転送装置と周辺装置とを含むシステム
としてのデータ転送速度を向上させることが困難である
という課題がある。
【0061】本発明は、データ転送装置と周辺装置とを
含むシステムとしてのデータ転送速度を向上させること
が可能なデータ転送装置を提供することを目的とする。
【0062】
【課題を解決するための手段】本発明のデータ転送装置
は、メインバスに接続されたメインメモリからローカル
バスに接続されたローカルメモリにデータを転送するデ
ータ転送装置であって、前記メインバスに接続されたC
PUによってアクセスされる1語以上のCPUアクセス
データと、前記メインバスに接続されたDMAコントロ
ーラによってアクセスされる複数語のDMAアクセスデ
ータとを格納するデータ領域を有する先入れ先出しバッ
ファと、前記先入れ先出しバッファを制御する制御器と
を備え、前記制御器は、前記ローカルバスが使用可能な
場合には、前記データ領域に格納された前記1語以上の
CPUアクセスデータを前記ローカルメモリに逐次転送
し、前記データ領域に格納された前記複数語のDMAア
クセスデータを前記ローカルメモリにバースト転送する
ように、前記先入れ先出しバッファを制御し、これによ
り、上記目的が達成される。
【0063】前記制御器は、前記データ領域に格納され
た前記複数語のDMAアクセスデータをローカルDMA
転送の単位として扱い、前記ローカルDMA転送の単位
ごとに前記ローカルバスの使用要求を行ってもよい。
【0064】前記制御器は、前記データ領域に格納され
た前記1語以上のCPUアクセスデータの転送をローカ
ルDMA転送として処理し、前記データ領域に格納され
た前記複数語のDMAアクセスデータの転送をローカル
DMA転送として処理してもよい。
【0065】前記先入れ先出しバッファは、前記データ
領域に格納されたデータがCPUアクセスデータである
かDMAアクセスデータであるかを判別するための情報
を格納する領域をさらに有していてもよい。
【0066】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を説明する。
【0067】(実施の形態1)図1は、本発明の実施の
形態1のデータ転送装置1の構成を示す。
【0068】データ転送装置1は、メインデータバス1
3とメインアドレスバス50とに接続されている。メイ
ンデータバス13とメインアドレスバス50とには、デ
ータ転送装置1の周辺装置として、CPU10とDMA
コントローラ11とメインメモリ12とが接続されてい
る。本明細書では、メインデータバス13とメインアド
レスバス50とを総称して「メインバス」と呼ぶ。
【0069】データ転送装置1は、ローカルデータバス
28に接続されている。ローカルデータバス28には、
データ転送装置1の周辺装置として、バスインタフェー
ス55を介してローカルメモリ56が接続されている。
本明細書では、ローカルデータバス28を「ローカルバ
ス」とも呼ぶ。
【0070】なお、ローカルデータバス28には、内部
データ処理装置61がさらに接続されている。データ転
送装置1と内部データ処理装置61とは、ローカルメモ
リ56を共有するユニファイドメモリアーキテクチャを
採用する。
【0071】ここでは、内部データ処理装置61は、ビ
デオ出力処理回路であると仮定する。ビデオ出力処理回
路は、外部同期信号(図示せず)に従って、ローカルメ
モリ56に蓄積されたフレームデータを所定のタイミン
グでモニタなどの外部出力装置(図示せず)に出力する
ように動作する。この場合、バスコントローラ33は、
CPU10とデータ転送装置1との間のデータ転送に比
較して、ビデオ出力処理回路がローカルデータバス28
の使用権を高い優先度で取得することができるようにデ
ータ転送装置1と内部データ処理装置61とを制御す
る。
【0072】データ転送装置1は、メインメモリ12か
らローカルメモリ56にデータを転送する。このデータ
は、CPU10によってアクセスされるデータ(以下、
「CPUアクセスデータ」という)であるか、DMAコ
ントローラ11によってアクセスされるデータ(以下、
「DMAアクセスデータ」という)であるかのいずれか
である。
【0073】CPU転送の場合には、CPU10がメイ
ンメモリ12からデータを読み出し、その読み出された
データをCPUアクセスデータとしてデータ転送装置1
に出力する。DMA転送の場合には、DMAコントロー
ラ11がメインメモリ12からデータを読み出し、その
読み出されたデータをDMAアクセスデータとしてデー
タ転送装置1に出力する。
【0074】データ転送装置1は、メインバスインタフ
ェース27と、ローカルバスインタフェース34と、先
入れ先出しバッファ(FIFO)2と、制御器22とを
含む。
【0075】FIFO2は、データ線67とアドレス線
68とを介して、メインバスインタフェース27に接続
されている。FIFO2は、データ線65を介して、ロ
ーカルバスインタフェース34に接続されている。ま
た、FIFO2は、アドレス線66を介して、レジスタ
89に接続されている。
【0076】ライトポインタ生成器15、リードポイン
タ生成器17およびDMAポインタ生成器82は、FI
FO2をアクセスするためのポインタを生成するために
使用される。
【0077】ライトポインタ生成器15は、CPUアク
セス制御信号23に応答して前回のライトポインタを1
語分だけインクリメントすることにより、ライトポイン
タ69を生成する。ライトポインタ69は、FIFO2
に出力される。
【0078】DMAポインタ生成器82は、DMAアク
セス制御信号25に応答して前回の内部ポインタを1語
分だけインクリメントすることにより、ライトポインタ
80を生成する。ライトポインタ80は、FIFO2に
出力される。
【0079】DMAポインタ生成器82は、DMAアク
セス制御信号25が入力された回数をカウントし、その
回数がFIFO2のDMA転送用のデータ領域230
(図2)の語数に等しくなった場合には、内部ポインタ
を初期化するとともに、ローカルDMA終了信号84を
制御器22に出力する。
【0080】DMAポインタ生成器82は、DMA転送
制御信号83に応答して前回の内部ポインタを1語分だ
けインクリメントすることにより、リードポインタ81
を生成する。リードポインタ81は、FIFO2に出力
される。
【0081】DMAポインタ生成器82は、DMA転送
制御信号83が入力された回数をカウントし、その回数
がFIFO2のDMA転送用のデータ領域230(図
2)の語数に等しくなった場合には、内部ポインタを初
期化するとともに、ローカルDMA終了信号84を制御
器22に出力する。
【0082】ポインタ比較器74は、ライトポインタ6
9とリードポインタ70とを比較し、その比較結果に応
じた値を有するFIFOフラグ73を制御器22に出力
する。FIFOフラグ73の値は、FIFO2に保持さ
れているCPUアクセスデータがない場合には「0」で
あり、FIFO2に保持されているCPUアクセスデー
タがある場合には「1」であり、FIFO2に保持され
ているCPUアクセスデータの数がFIFO2に保持さ
れ得るCPUアクセスデータの上限値に等しい場合には
「2」である。
【0083】加算器4は、DMA先頭アドレスレジスタ
20に予め設定される値を初期値として、DMAアクセ
ス制御信号25が入力される毎に制御器22から出力さ
れるDMA開始要求信号58に応答して、DMAアドレ
スを1語数分だけインクリメントする。その結果、加算
器4は、更新されたDMAアドレスをアドレス線53に
出力する。
【0084】減算器3は、DMA転送語数レジスタ21
に予め設定される値を初期値として、DMAアクセス制
御信号25が入力される毎に制御器22から出力される
DMA開始要求信号58に応答して、DMA転送語数を
1語数分だけデクリメントする。その結果、減算器3
は、更新されたDMA転送語数を転送語数線54に出力
する。
【0085】本実施の形態において、CPU転送は、1
語のローカルDMA転送として処理され、DMA転送
は、複数語のローカルDMA転送として処理される。こ
のように、CPU転送とDMA転送とは、ローカルDM
A転送として統一的に処理される。
【0086】ここで、DMAコントローラ11とデータ
転送装置1との間のDMA転送は、FIFO2に保持さ
れ得るDMAアクセスデータの上限値をローカルDMA
転送の基本数とした単位に分割される。
【0087】第1に、CPU転送を行う場合におけるF
IFO2の制御と、CPU転送を1語のローカルDMA
転送として処理するためのローカルDMA転送パラメー
タの設定とを説明する。
【0088】FIFO2は、CPUアクセス制御信号2
3に応答して更新されるライトポインタ69によって指
定される位置に、メインバスインタフェース27を介し
て入力されるCPUアクセスデータを順次保持する。
【0089】ポインタ比較器74は、ライトポインタ6
9とリードポインタ70とを比較し、その比較結果に応
じた値を有するFIFOフラグ73を制御器22に出力
する。FIFOフラグ73の値は、FIFO2に保持さ
れているCPUアクセスデータがない場合には「0」で
あり、FIFO2に保持されているCPUアクセスデー
タがある場合には「1」であり、FIFO2に保持され
ているCPUアクセスデータの数がFIFO2に保持さ
れ得るCPUアクセスデータの上限値に等しい場合には
「2」である。
【0090】制御器22は、FIFOフラグ73の値が
「1」もしくは「2」である場合には、バスコントロー
ラ33にローカルバス要求信号30を出力する。制御器
22は、バスコントローラ33からローカルバス許可信
号29を受け取ると、リードポインタ生成要求信号71
をリードポインタ生成器17に出力する。リードポイン
タ生成器17は、リードポインタ生成要求信号71に応
答してリードポインタ70を生成し、その生成されたリ
ードポインタ70をFIFO2に出力する。
【0091】FIFO2は、リードポインタ70によっ
て指定されるCPUアクセスデータをデータ線65に出
力し、リードポインタ70によって指定されるCPUア
クセスアドレスをアドレス線66に出力する。
【0092】レジスタ89は、CPU転送のためのロー
カルDMA先頭アドレスを指定するために使用される。
DMA先頭アドレスレジスタ89は、内部同期信号(図
示せず)に応答してアドレス線66上のアドレスを保持
する。
【0093】レジスタ88は、CPU転送のためのロー
カルDMA転送語数を指定するために使用される。レジ
スタ88は、1語数を表す固定レジスタである。
【0094】CPU転送を行う場合には、レジスタ89
の出力とレジスタ88の出力とがローカルバスインタフ
ェース34に出力される。
【0095】第2に、DMA転送を行う場合におけるF
IFO2の制御と、DMA転送を複数語のローカルDM
A転送として処理するためのローカルDMA転送パラメ
ータの設定とを説明する。
【0096】FIFO2は、DMAアクセス制御信号2
5に応答して更新されるDMAライトポインタ80によ
って指定される位置に、メインバスインタフェース27
を介して入力されるDMAアクセスデータを順次保持す
る。FIFO2に保持されているDMAアクセスデータ
の数が上限値に達した場合には、FIFO2は、ローカ
ルDMA終了信号84を制御器22に出力する。
【0097】制御器22は、ローカルDMA終了信号8
4を受け取ると、バスコントローラ33にローカルバス
要求信号30を出力する。このように、制御器22は、
FIFO2に保持されている複数語のDMAアクセスデ
ータをローカルDMA転送の単位として扱い、ローカル
DMA転送の単位ごとにローカルバスの使用要求を行
う。これにより、ローカルバスの使用要求の回数を低減
することが可能になる。
【0098】制御器22は、バスコントローラ33から
ローカルバス許可信号29を受け取ると、DMA開始要
求信号58とDMA転送制御信号83とローカルDMA
転送開始信号92とを出力する。制御器22は、ローカ
ルDMA転送終了91を受け取ると、ローカルバス要求
信号30を再度バスコントローラ33に出力し、同様の
処理を繰り返す。制御器22は、DMA転送残数フラグ
57がアサートされるとDMA転送処理を終了する。
【0099】レジスタ87は、DMA転送のためのロー
カルDMA先頭アドレスを指定するために使用される。
レジスタ87は、制御器22から出力されるローカルD
MA転送開始信号92に応答して、DMAアドレス線5
3上のDMAアドレスをローカルDMA先頭アドレスと
してローカルバスインタフェース34に出力する。
【0100】レジスタ86は、DMA転送のためのロー
カルDMA転送語数を指定するために使用される。レジ
スタ86には、比較器90の出力が格納される。レジス
タ86は、比較器90の出力をローカルDMA転送語数
としてローカルバスインタフェース34に出力する。
【0101】比較器90は、転送語数線54上のDMA
転送語数とローカルDMA転送基本数とを比較して、よ
り小さい数をローカルDMA転送語数としてレジスタ8
6に設定するとともに、ローカルDMA転送カウンタ8
5の出力値とローカルDMA転送語数とを比較して、一
致した場合にローカルDMA転送終了信号91を制御器
22に出力する。
【0102】ローカルDMA転送カウンタ85は、制御
器22から出力されるローカルDMA転送開始信号92
に応答して、カウント数を初期化するとともに、内部同
期信号(図示せず)をカウントする。
【0103】制御器22は、CPU転送のためのローカ
ルDMA転送パラメータとDMA転送のためのローカル
DMA転送パラメータのうちの1つを予め決められた優
先順位で選択するアクセス制御信号95をローカルバス
インタフェース34に出力する。
【0104】DMA転送よりもCPU転送を優先して行
う場合には、ローカルバスインタフェース34は、レジ
スタ89の出力とレジスタ88の出力とをローカルDM
A転送パラメータとしてバスインタフェース55に設定
する。このような設定は、DMA制御線93を介して行
われる。
【0105】CPU転送よりもDMA転送を優先して行
う場合には、ローカルバスインタフェース34は、レジ
スタ87の出力とレジスタ86の出力とをローカルDM
A転送パラメータとしてバスインタフェース55に設定
する。このような設定は、DMA制御線93を介して行
われる。
【0106】DMA転送のためのローカルDMA転送パ
ラメータの生成のため、リードポインタ生成要求信号8
3はデータ転送に先立って、DMAポインタ生成器82
に出力される。FIFO2は、リードポインタ81によ
って指定される位置のDMAアクセスデータを読み出
し、そのDMAアクセスデータをデータ線65に出力す
る。ローカルバスインタフェース34は、データ線65
上のDMAアクセスデータを一時的に保持する。
【0107】バスインタフェース55は、ローカルDM
A転送の準備が整い次第、ローカルDMA要求信号94
を制御器22に出力する。
【0108】制御器22は、ローカルバス許可信号29
を受け取り次第、ローカルDMA制御線93を介してロ
ーカルDMA転送開始をバスインタフェース55に通知
するとともに、DMA転送の場合には、ローカルDMA
転送開始要求92とDMA転送開始要求83とを出力す
る。FIFO2は、リードポインタ81によって指定さ
れる位置のDMAアクセスデータを読み出し、読み出さ
れたDMAアクセスデータをデータ線65に出力する。
ローカルバスインタフェース34は、データ線65上の
DMAアクセスデータをローカルデータバス28に出力
する。
【0109】CPU転送の場合には、ローカルバスイン
タフェース34は、ローカルDMA転送パラメータの生
成時に保持されたCPUアクセスデータをローカルデー
タバス28に出力する。
【0110】図2は、FIFO2の構成例を示す。
【0111】FIFO2は、1語以上のCPUアクセス
データと複数語のDMAアクセスデータとを格納するデ
ータ領域を有している。図2に示される例では、データ
領域は、1語以上のCPUアクセスデータを格納するC
PU転送用のデータ領域210と、複数語のDMAアク
セスデータを格納するDMA転送用のデータ領域230
とに分割されている。しかし、データ領域が必ずしもこ
のように分割されている必要はない。FIFO2のデー
タ領域は、1語以上のCPUアクセスデータと複数語の
DMAアクセスデータとを格納することができる限り、
任意のフォーマットをとり得る。
【0112】CPU転送用のデータ領域210は、1以
上のCPUアクセスデータフィールド210aと、1以
上のCPUアクセスアドレスフィールド210bとを含
む。1以上のCPUアクセスデータフィールド210a
のそれぞれには、1語のCPUアクセスデータが格納さ
れる。1以上のCPUアクセスアドレスフィールド21
0bのそれぞれには、対応するCPUアクセスデータの
アドレスが格納される。
【0113】DMA転送用のデータ領域230は、複数
のDMAアクセスデータフィールド230aを含む。複
数のDMAアクセスデータフィールド230aのそれぞ
れには、1語のDMAアクセスデータが格納される。
【0114】図2に示される例では、CPU転送用のデ
ータ領域210に含まれるCPUアクセスデータフィー
ルド210a、CPUアクセスアドレスフィールド21
0bの数はそれぞれ8であり、DMA転送用のデータ領
域230に含まれるDMAアクセスデータフィールドの
数は8である。しかし、データ領域210、230に含
まれるフィールドの数がこれらに限定されるわけではな
い。データ領域210、230は、任意の数のフィール
ドを含み得る。データ領域210のフィールド数とデー
タ領域230のフィールド数とが異なっていてもよい。
【0115】はじめに、FIFO2へのデータの書き込
みを説明する。
【0116】FIFO2に入力されたデータがCPUア
クセスデータである場合には、ライトポインタ69に応
じて複数の書き込み制御線220aのうちCPUアクセ
スデータの書き込み位置に対応する1本の書き込み制御
線220aがアサートされる。このような選択的なアサ
ートは、回路210cによって行われる。その結果、ア
サートされた書き込み制御線220aに接続されている
CPUアクセスデータフィールド210aには、データ
線67上のデータが書き込まれ、アサートされた書き込
み制御線220aに接続されているCPUアクセスアド
レスフィールド210bには、アドレス線68上のアド
レスが書き込まれる。
【0117】FIFO2に入力されたデータがDMAア
クセスデータである場合には、ライトポインタ80に応
じて複数の書きこみ制御線240aのうちDMAアクセ
スデータの書き込み位置に対応する1本の書き込み制御
線240aがアサートされる。このような選択的なアサ
ートは、回路230bによって行われる。その結果、ア
サートされた書き込み制御線240aに接続されている
DMAアクセスデータフィールド230aには、データ
線67上のデータが書き込まれる。
【0118】次に、FIFO2からのデータの読み出し
を説明する。
【0119】セレクタ210dは、リードポインタ70
に応じて、複数のCPUアクセスデータフィールド21
0aの出力220bのうちの1つを選択し、選択された
出力220bをデータ線65に出力する。
【0120】セレクタ210eは、リードポインタ70
に応じて、複数のCPUアクセスアドレスフィールド2
10bの出力220cのうちの1つを選択し、選択され
た出力220cをアドレス線66に出力する。
【0121】セレクタ230cは、リードポインタ81
に応じて、複数のDMAアクセスデータフィールド23
0aの出力230cのうちの1つを選択し、選択された
出力230cをデータ線65に出力する。
【0122】なお、リードポインタ70がネゲート状態
の場合には、データセレクタ210dの出力およびアド
レスセレクタ210eの出力は、それぞれ、ハイインピ
ーダンス状態となる。また、リードポインタ81がネゲ
ート状態の場合には、データセレクタ230cの出力
は、ハイインピーダンス状態となる。これにより、デー
タの衝突が回避される。
【0123】図5は、CPU転送とDMA転送とを混在
して行った場合におけるデータ転送装置1の動作シーケ
ンスを示す。
【0124】図5において、各信号線のLレベルがアサ
ートを表し、各信号のHレベルがネゲートを表すと仮定
する。
【0125】図5に示される例では、1語のCPU転送
が5回行われ、10語のDMA転送が1回行われる。
【0126】T1サイクル以前には、前述したDMA転
送のための初期値が予め設定されていると仮定する。デ
ータ転送装置1は、DMA要求信号26をアサートす
る。DMAコントローラ11は、DMA要求信号26の
アサートを検出し、DMA転送要求信号97をアサート
する。
【0127】ここで、CPU10は、DMA転送要求信
号97のアサートを検出しているが、次のサイクル以降
は、CPU転送を行うことを決定すると仮定する。その
結果、T1、T2サイクルをCPU基本アクセスタイム
として、CPU10とデータ転送装置1との間の外部バ
ス転送(CPU_M1)が行われる。CPU10は、T
1サイクルにおいてCPUアクセス制御信号23のアサ
ートを開始する。
【0128】データ転送装置1は、CPUアクセス制御
信号23のアサートを検出すると、ウェイト制御信号2
4をアサートする。ウェイト制御信号24がアサートさ
れている間、CPU10は次のサイクル以降にCPU転
送およびDMA転送を行うことができないように制御さ
れる。
【0129】T2サイクルの終わりにおいて、データ転
送装置1は、メインデータバス13から入力されるデー
タをFIFO2に保持するとともに、ウエイト制御信号
24をネゲートする。
【0130】CPU10は、ウェイト制御信号24のネ
ゲートを検出すると、CPUアクセス制御信号23をネ
ゲートするとともに、次のサイクルにCPU転送もしく
はDMA転送を行うための準備を開始する。ここでは、
CPU10は、DMA転送要求信号97がアサートされ
ていることを検出し、次のサイクルにDMA転送を行う
ことを決定すると仮定する。この場合、CPU10は、
DMAコントローラ11に出力されるDMA転送許可信
号96をアサートする。
【0131】DMAコントローラ11は、DMA転送許
可信号96のアサートを検出すると、T3、T4サイク
ルをDMA基本アクセスタイムとして、DMAコントロ
ーラ11とデータ転送装置1との間で外部バス転送(D
MA_M1)を行い、DMAアクセス制御信号25をア
サートする。DMAアクセス制御信号25は、DMA基
本アクセスタイム間のみアサートされる。
【0132】データ転送装置1は、DMAアクセス制御
信号25のアサートを検出すると、DMA要求信号26
をネゲートする。
【0133】T3サイクルにおいて、データ転送装置1
とローカルメモリ56の間の内部バス転送(CPU_L
1)が行われる。この内部バス転送では、FIFO2に
保持されたCPUアクセスデータがローカルメモリ56
に出力される。
【0134】T4サイクルにおいて、データ転送装置1
は、DMAアクセス制御信号25のネゲートを検出する
と、DMA要求信号26をアサートする。
【0135】T7サイクルよりT20サイクルまでは、
DMAコントローラ11とデータ転送装置1との間の外
部バス転送が連続的に行われる。
【0136】T7サイクルからT20サイクルまの期間
中、データ転送装置1に入力されるDMAアクセスデー
タは、FIFO2のDMA転送用のデータ領域230に
保持される。この期間中、DMAコントローラ11から
のDMA転送は、DMA基本アクセスタイム周期で行わ
れる。この期間中、ローカルバスは、内部データ処理装
置61により一時的に占有され、内部バス転送INT_
1、INT_2、INT_3が行われる。
【0137】T20サイクルにおいて、FIFO2のD
MA転送用のデータ領域230が満杯となり、DMA要
求信号26はネゲートされたままとなる。このため、C
PU10は、T21サイクル以降はCPU転送のみを行
う。
【0138】T24サイクルにおいて、FIFO2のD
MA転送用のデータ領域230に格納された複数語のD
MAアクセスデータのバースト出力が開始される。T2
0サイクルからT23サイクルの内部バス転送(INT
_3)により、内部バス転送(DMA_L1からDMA
_L8)の開始が遅れている。
【0139】複数語のDMAアクセスデータに対応する
内部バス転送(DMA_L1からDMA_L8)は連続
して行われる。
【0140】T31サイクルにおいて、FIFO2のD
MA転送用のデータ領域230が空となる。制御器22
は、DMA要求信号26を再度アサートする。
【0141】T32、T33サイクルにおいては、内部
バス転送(INT_4)が行われ、続いて、内部バス転
送(CPU_L3、CPU_L4、CPU_L5)が行
われる。FIFO2のDMA転送用のデータ領域230
には、再度、DMAコントローラ11とデータ転送装置
1との間の外部バス転送(DMA_M9、DMA_M1
0)によるDMAアクセスデータが保持される。
【0142】T37、T38サイクルにおいては、デー
タ転送装置1とローカルメモリ56との間の内部バス転
送(DMA_L9、DMA_L10)が行われる。
【0143】これ以降、DMA転送は、CPU10によ
って前述したDMA転送のための初期値が予め設定され
た後に再度開始される。
【0144】このように、本実施の形態では、FIFO
2に格納された複数語のDMAアクセスデータをローカ
ルメモリ56にバースト転送し、FIFO2に格納され
た1語以上のCPUアクセスデータをローカルメモリ5
6に逐次転送するように、FIFO2が制御される。こ
のようにFIFO2を制御することにより、ウェイト制
御信号24のアサート期間を短縮することができる。そ
の結果、ウェイト制御信号24のアサートによりメイン
バスの使用権を決定するCPU10の動作の待ち時間が
短縮される。これにより、データ転送装置1と周辺装置
とを含むシステムのデータ転送レートを向上させること
ができる。
【0145】なお、ローカルメモリ56からCPU10
にデータを転送する場合には、FIFO2を介さずにロ
ーカルデータバス28から直接的にメインデータバス1
3に出力する制御を行う必要がある。ローカルメモリ5
6からDMAコントローラ11にデータを転送する場合
には、ローカルデータバス28上のデータをバースト転
送によりFIFO2にいったん格納した上で、FIFO
2に格納されたデータをDMA要求信号26を用いて1
語ずつDMAコントローラ11に転送する制御を行うこ
とが必要である。
【0146】(実施の形態2)図3は、本発明の実施の
形態2のデータ転送装置1aの構成を示す。
【0147】図3において、図1に示される構成要素と
同一の構成要素には同一の参照符号を付し、その説明を
省略する。
【0148】図4は、FIFO2aの構成例を示す。
【0149】FIFO2aは、複数のデータフィールド
410aと、複数のアドレスフィールド410bと、複
数のアクセス判別フィールド410cとを有している。
複数のデータフィールド410aのそれぞれには、1語
のCPUアクセスデータまたは1語のDMAアクセスデ
ータが格納される。複数のアドレスフィールド410b
のそれぞれには、対応するデータフィールド410aに
格納されたデータに対応するアドレスが格納される。複
数のアクセス判別フィールド410cのそれぞれには、
対応するデータフィールド410aに格納されたデータ
の種類を示す情報が格納される。
【0150】データフィールド410aに格納されたデ
ータがCPUアクセスデータである場合には、そのデー
タフィールド410aに対応するアクセス判別フィール
ド410cには、値「0」が格納される。データフィー
ルド410aに格納されたデータがDMAアクセスデー
タである場合には、そのデータフィールド410aに対
応するアクセス判別フィールド410cには、値「1」
が格納される。
【0151】なお、データフィールド410aに格納さ
れたデータがDMAアクセスデータである場合には、そ
のデータフィールド410aに対応するアドレスフィー
ルド410bには、アドレスが無効(すなわち、「In
valid」)であることを示す任意の値が格納され
る。
【0152】図4に示される例では、FIFO2aに含
まれるデータフィールド410a、アドレスフィールド
410bおよびアクセス判別フィールド410cの数は
それぞれ8である。しかし、FIFO2aに含まれるフ
ィールドの数がこれらに限定されるわけではない。FI
FO2aは、任意の数のフィールドを含み得る。
【0153】はじめに、FIFO2aへのデータの書き
込みを説明する。
【0154】ライトポインタ69に応じて、複数の書き
込み制御線420aのうち書き込み位置に対応する1本
の書き込み制御線420aがアサートされる。このよう
な選択的なアサートは、回路410dによって行われ
る。その結果、アサートされた書き込み制御線420a
に接続されているデータフィールド410aには、デー
タ線67上のデータが書き込まれ、アサートされた書き
込み制御線420aに接続されているアドレスフィール
ド410bには、アドレス線68上のアドレスが書き込
まれ、アサートされた書き込み制御線420aに接続さ
れているアクセス判別フィールド410cには、信号線
63上のアクセス判別信号が書き込まれる。
【0155】次に、FIFO2aからのデータの読み出
しを説明する。
【0156】セレクタ410eは、リードポインタ70
に応じて、複数のデータフィールド410aの出力42
0bのうちの1つを選択し、選択された出力420bを
データ線65に出力する。
【0157】セレクタ410fは、リードポインタ70
に応じて、複数のアドレスフィールド410bの出力4
20cのうちの1つを選択し、選択された出力420c
をアドレス線66に出力する。
【0158】セレクタ410gは、リードポインタ70
に応じて、複数のアクセス判別フィールド410cの出
力420dのうちの1つを選択し、選択された出力42
0dを信号線75に出力する。
【0159】以下、図3および図4を参照して、データ
転送装置1aの内部動作を説明する。
【0160】CPUアクセス制御信号23とともにCP
U10から出力されるデータおよびローカルメモリアド
レスは、メインバスインターフェース27に一時的に格
納される。
【0161】アクセス判別器64は、CPUアクセス制
御信号23とDMAアクセス制御信号2とに基づいて、
アクセス判別信号63を生成する。アクセス判別器64
は、CPUアクセス制御信号23がアサート状態であ
り、DMAアクセス制御信号25がネゲート状態である
ことを検出すると、値「0」のアクセス判別信号63を
生成する。また、アクセス判別器64は、CPUアクセ
ス制御信号23がネゲート状態であり、DMAアクセス
制御信号25がアサート状態であることを検出すると、
値「1」のアクセス判別信号63を生成する。アクセス
判別信号63は、FIFO2aに出力される。
【0162】アクセス判別器64は、ライトポインタ生
成要求信号72をライトポインタ生成器15に出力す
る。
【0163】ライトポインタ生成器15は、ライトポイ
ンタ生成要求信号72に応答して前回のライトポインタ
を1語分だけインクリメントすることにより、ライトポ
インタ69を生成する。ライトポインタ69は、FIF
O2aに出力される。
【0164】ライトポインタ69に対応する位置のアク
セス判別フィールド410cには、アクセス判別信号6
3が書き込まれる。ライトポインタ69に対応する位置
のデータフィールド410aには、データ線67上のC
PUアクセスデータが書き込まれる。ライトポインタ6
9に対応する位置のアドレスフィールド410bには、
アドレス線68上のCPUアクセスアドレスが書き込ま
れる。
【0165】このようにして、FIFO2aには、CP
UアクセスデータとDMAアクセスデータとが混在して
蓄積される。
【0166】なお、DMA転送のための初期値の設定
は、実施の形態1と同様である。
【0167】ポインタ比較器74は、ライトポインタ6
9とリードポインタ70とを比較し、その比較結果に応
じたFIFOフラグ73を制御器22に出力する。FI
FOフラグ73の値は、FIFO2aに保持されている
データがない場合には0であり、FIFO2aに保持さ
れているデータがある場合には1であり、FIFO2a
に保持されているデータの数がFIFO2aに保持可能
なデータの数の上限値に等しい場合には2である。
【0168】制御器22は、バスコントローラ33にロ
ーカルバス要求信号30を出力する。制御器22は、ロ
ーカルバス許可信号29のアサートを検出すると、リー
ドポインタ生成要求信号71をリードポインタ生成器1
7に出力する。
【0169】リードポインタ生成器17は、前回のリー
ドポインタを1語分だけインクリメントすることによ
り、リードポインタ70を生成する。リードポインタ7
0は、FIFO2aに出力される。
【0170】FIFO2aは、リードポインタ70に対
応する位置のデータフィールド410aに格納されてい
るデータをデータ線65に出力し、リードポインタ70
に対応する位置のアドレスフィールド410bに格納さ
れているアドレスをアドレス線66に出力し、リードポ
インタ70に対応する位置のアクセス判別フィールド4
10cに格納されている信号を信号線75に出力する。
【0171】信号線75上のアクセス判別信号が0であ
る場合には、制御器22は、FIFO2aから出力され
たデータがCPUアクセスデータであると判別する。制
御器22は、ローカルバス制御信号62をローカルバス
インタフェース34に出力する。その結果、ローカルバ
スインタフェース34は、データ線65上のデータをロ
ーカルデータバス28に出力し、アドレス線66上のア
ドレスをローカルアドレスバス35に出力する。
【0172】信号線75上のアクセス判別信号が1であ
る場合には、制御器22は、FIFO2aから出力され
たデータがDMAアクセスデータであると判別する。制
御器22は、DMAアドレス生成要求信号58を加算器
4および減算器3に出力する。加算器4は、前回のDM
Aアドレスを1語分だけインクリメントし、その結果を
DMAアドレス線53に出力する。減算器3は、前回の
DMA転送残数を1語分だけデクリメントし、DMAア
ドレス生成終了信号54を制御器22に出力する。その
結果、DMA転送残数が1語となった場合には、DMA
転送残数フラグ57をアサートする。
【0173】制御器22は、ローカルバス制御信号62
をローカルバスインタフェース34に出力する。ローカ
ルバスインタフェース34によって、ローカルバス制御
信号62のアドレス選択フィールドが参照される。その
結果、ローカルバスインタフェース34は、DMAアド
レス線53上のアドレスをローカルアドレスバス35に
出力する。
【0174】制御器22は、バスコントローラ33がロ
ーカルバスの使用許可をデータ転送装置1aに与えてい
る間、FIFO2aにDMAアクセスデータが残ってい
ることを示すDMA転送残数フラグ57がアサートされ
るまで、リードポインタ生成要求信号71を出力する。
【0175】なお、上述した実施の形態において、DM
A転送の場合には、DMAコントローラからFIFOへ
は1語ずつ転送され、FIFOからローカルメモリへは
FIFOの容量単位にバースト転送される。このFIF
Oの容量は、外部バス転送サイクルと内部バス転送サイ
クルの速度や転送比率、チップ内に占める面積により、
その最適値が変動する。これをバス使用比率を用いて考
察する。
【0176】前提として、CPUおよびDMAコントロ
ーラによるデータ転送における内部バス占有率10%、
内部バスの使用権交代1回に要する内部バス占有率を5
%、内部データ処理装置の内部バス占有率を80%とし
た場合、1語の外部バス転送の基本サイクルに要する時
間が1語の内部バス転送の基本サイクルに要する時間の
10倍であれば、外部バス転送は連続して行えることと
なる。
【0177】しかし、実際には、内部データ処理装置が
連続して内部バスを占有する場合を考慮して、FIFO
の容量は大きい程よいと考えられる。しかしながら、チ
ップ内のFIFOの面積は、チップのコストを引き上げ
るため、数十ワードの容量を備えることは難しい。この
ような理由から、FIFOの容量は、20ワード程度が
最適と考えられる。
【0178】
【発明の効果】本発明によれば、メインバスとローカル
バスとの間に先入れ先出しバッファが設けられている。
先入れ先出しバッファは、1語以上のCPUアクセスデ
ータと、複数語のDMAアクセスデータとを格納するデ
ータ領域を有している。これにより、ローカルバスがデ
ータ転送装置以外の他の処理ブロックによって使用中で
ある場合でも、メインバスと先入れ先出しバッファとの
間でデータの転送を行うことが可能になる。その結果、
データ転送速度を向上させることが可能になる。
【0179】また、本発明によれば、先入れ先出しバッ
ファのデータ領域に格納された複数語のDMAアクセス
データをローカルDMA転送の単位として扱い、そのロ
ーカルDMA転送の単位ごとにローカルバスの使用要求
が行われる。これにより、ローカルバスの使用要求の回
数を削減することが可能になる。その結果、ローカルバ
スの使用権を取得するために要するサイクル数が削減さ
れるため、ローカルバスの使用効率を向上させることが
可能になる。
【0180】また、本発明によれば、先入れ先出しバッ
ファのデータ領域に格納された1語以上のCPUアクセ
スデータの転送と複数語のDMAアクセスデータの転送
とをローカルDMA転送として統一して処理することが
可能になる。その結果、ローカルアドレスバスを不要と
することができる。
【0181】また、本発明によれば、先入れ先出しバッ
ファのデータ領域に格納されたデータがCPUアクセス
データであるかDMAアクセスデータであるかを判別す
る領域が先入れ先出しバッファに設けられている。これ
により、少ない容量を有する先入れ先出しバッファ内に
CPUアクセスデータとDMAアクセスデータとを混在
して保持することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態1のデータ転送装置1の構
成を示すブロック図である。
【図2】図1に示されるFIFO2の構成例を示す図で
ある。
【図3】本発明の実施の形態2のデータ転送装置1aの
構成を示すブロック図である。
【図4】図3に示されるFIFO2aの構成例を示す図
である。
【図5】CPU転送とDMA転送とを混在して行った場
合におけるデータ転送装置1の動作シーケンスを示す図
である。
【図6】従来のデータ転送装置100の構成を示すブロ
ック図である。
【図7】CPU転送とDMA転送とを混在して行った場
合におけるデータ転送装置100の動作シーケンスを示
す図である。
【符号の説明】
1、1a データ転送装置 2、2a FIFO 10 CPU 11 DMAコントローラ 12 メインメモリ 13 メインデータバス 22 制御器 27 メインバスインタフェース 28 ローカルデータバス 33 バスコントローラ 34 ローカルバスインタフェース 50 メインアドレスバス 55 バスインタフェース 56 ローカルメモリ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 メインバスに接続されたメインメモリか
    らローカルバスに接続されたローカルメモリにデータを
    転送するデータ転送装置であって、 前記メインバスに接続されたCPUによってアクセスさ
    れる1語以上のCPUアクセスデータと、前記メインバ
    スに接続されたDMAコントローラによってアクセスさ
    れる複数語のDMAアクセスデータとを格納するデータ
    領域を有する先入れ先出しバッファと、 前記先入れ先出しバッファを制御する制御器と を備え、 前記制御器は、前記ローカルバスが使用可能な場合に
    は、前記データ領域に格納された前記1語以上のCPU
    アクセスデータを前記ローカルメモリに逐次転送し、前
    記データ領域に格納された前記複数語のDMAアクセス
    データを前記ローカルメモリにバースト転送するよう
    に、前記先入れ先出しバッファを制御する、データ転送
    装置。
  2. 【請求項2】 前記制御器は、前記データ領域に格納さ
    れた前記複数語のDMAアクセスデータをローカルDM
    A転送の単位として扱い、前記ローカルDMA転送の単
    位ごとに前記ローカルバスの使用要求を行う、請求項1
    に記載のデータ転送装置。
  3. 【請求項3】 前記制御器は、前記データ領域に格納さ
    れた前記1語以上のCPUアクセスデータの転送をロー
    カルDMA転送として処理し、前記データ領域に格納さ
    れた前記複数語のDMAアクセスデータの転送をローカ
    ルDMA転送として処理する、請求項1に記載のデータ
    転送装置。
  4. 【請求項4】 前記先入れ先出しバッファは、前記デー
    タ領域に格納されたデータがCPUアクセスデータであ
    るかDMAアクセスデータであるかを判別するための情
    報を格納する領域をさらに有している、請求項1に記載
    のデータ転送装置。
JP37191899A 1999-12-27 1999-12-27 データ転送装置 Pending JP2001188748A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP37191899A JP2001188748A (ja) 1999-12-27 1999-12-27 データ転送装置
US09/747,685 US6782433B2 (en) 1999-12-27 2000-12-26 Data transfer apparatus
KR10-2000-0082791A KR100395383B1 (ko) 1999-12-27 2000-12-27 데이터 전송 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37191899A JP2001188748A (ja) 1999-12-27 1999-12-27 データ転送装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003361295A Division JP2004094970A (ja) 2003-10-21 2003-10-21 データ転送装置

Publications (1)

Publication Number Publication Date
JP2001188748A true JP2001188748A (ja) 2001-07-10

Family

ID=18499534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37191899A Pending JP2001188748A (ja) 1999-12-27 1999-12-27 データ転送装置

Country Status (3)

Country Link
US (1) US6782433B2 (ja)
JP (1) JP2001188748A (ja)
KR (1) KR100395383B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1208886A2 (en) 2000-11-21 2002-05-29 Sony Computer Entertainment Inc. Game terminal device
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792481B2 (en) * 2002-05-30 2004-09-14 Freescale Semiconductor, Inc. DMA controller
JPWO2004092963A1 (ja) * 2003-04-11 2006-07-06 富士通株式会社 情報提供方法、情報提供プログラム、情報表示プログラム、情報提供装置および情報表示装置
JP2004355049A (ja) * 2003-05-26 2004-12-16 Sony Corp プロセッサシステム
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US7739479B2 (en) * 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US20050188125A1 (en) * 2004-02-20 2005-08-25 Lim Ricardo T. Method and apparatus for burst mode data transfers between a CPU and a FIFO
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US20080320178A1 (en) * 2007-06-21 2008-12-25 Motoyasu Shirasaki DMA transfer apparatus
US8589603B2 (en) * 2010-08-30 2013-11-19 International Business Machines Corporation Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation
US10019397B2 (en) 2014-03-28 2018-07-10 Texas Instruments Incorporated Real-time data acquisition using chained direct memory access (DMA) channels
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi***自动写入数据的控制方法及spi***

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61224063A (ja) 1985-03-29 1986-10-04 Yokogawa Electric Corp デ−タ転送制御装置
JPS6214541U (ja) * 1985-07-09 1987-01-28
US4722051A (en) * 1985-07-26 1988-01-26 Ncr Corporation Combined read/write cycle for a direct memory access controller
JPS6298444A (ja) 1985-10-25 1987-05-07 Hitachi Ltd デ−タ通信方式
JP2559394B2 (ja) * 1987-02-16 1996-12-04 株式会社日立製作所 通信制御装置
JPH01293431A (ja) * 1988-05-23 1989-11-27 Toshiba Corp メモリアクセス方式
JPH0465777A (ja) * 1990-07-06 1992-03-02 Hitachi Ltd 画像データ転送方式
JPH04192055A (ja) * 1990-11-27 1992-07-10 Fuji Electric Co Ltd Dma転送制御装置
CA2060820C (en) 1991-04-11 1998-09-15 Mick R. Jacobs Direct memory access for data transfer within an i/o device
JPH0644179A (ja) * 1992-07-27 1994-02-18 Hitachi Ltd データ転送制御装置
US5511152A (en) * 1993-09-20 1996-04-23 Digital Equipment Corporation Memory subsystem for bitmap printer data controller
US5663942A (en) 1994-05-02 1997-09-02 Matsushita Electric Industrial Co., Ltd. Jitter measurement apparatus detecting amplitude of phase errors between information signal and synchronized clock signal
JP2713204B2 (ja) 1995-02-15 1998-02-16 日本電気株式会社 情報処理システム
US5799169A (en) * 1995-10-02 1998-08-25 Chromatic Research, Inc. Emulated registers
JP3429948B2 (ja) * 1996-04-10 2003-07-28 株式会社日立製作所 組込み型cpu用制御装置
US5922057A (en) * 1997-01-10 1999-07-13 Lsi Logic Corporation Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore
US6223266B1 (en) * 1997-08-20 2001-04-24 Cypress Semiconductor Corp. System and method for interfacing an input/output system memory to a host computer system memory
US6388989B1 (en) * 1998-06-29 2002-05-14 Cisco Technology Method and apparatus for preventing memory overrun in a data transmission system
JP3803196B2 (ja) * 1998-07-03 2006-08-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法および記録媒体
US6161153A (en) * 1998-07-30 2000-12-12 Micron Technology, Inc. Method for sharing data buffers from a buffer pool
US6345327B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Queuing method and apparatus for providing direct data processing access using a queued direct input-output device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1208886A2 (en) 2000-11-21 2002-05-29 Sony Computer Entertainment Inc. Game terminal device
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value

Also Published As

Publication number Publication date
US6782433B2 (en) 2004-08-24
KR100395383B1 (ko) 2003-08-21
US20010016883A1 (en) 2001-08-23
KR20010062770A (ko) 2001-07-07

Similar Documents

Publication Publication Date Title
JP3898899B2 (ja) バスシステム
JP2001188748A (ja) データ転送装置
US20040107265A1 (en) Shared memory data transfer apparatus
WO1996036912A2 (en) Address and data bus arbiter for pipelined transactions on a split bus
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
JP4090883B2 (ja) 異なるリソースアクセス方式を有するシステム統合エージェント
USRE40261E1 (en) Apparatus and method of partially transferring data through bus and bus master control device
JP3766377B2 (ja) バス制御装置及び情報処理システム
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP2001101128A (ja) データ処理装置
JP2005165508A (ja) ダイレクトメモリアクセスコントローラ
JP2000132505A (ja) バスアクセス方法および装置とその利用装置およびシステム
JP2004094970A (ja) データ転送装置
JP3240863B2 (ja) 調停回路
JP2003091501A (ja) 情報処理装置
JP2000293480A (ja) Dma転送装置
JP2005063351A (ja) データ転送装置およびデータ転送方法
US7117281B1 (en) Circuit, system, and method for data transfer control for enhancing data bus utilization
JP2806405B2 (ja) マイクロプロセッサ
JP2002304368A (ja) データ処理装置及びその装置におけるアクセス調停方法
JPH07244632A (ja) 情報処理装置
JP2004062333A (ja) 画像処理装置
JPH07210498A (ja) バス調停回路
JP2003150534A (ja) チェインブロック転送方法及び通信制御装置
JPH0773136A (ja) コンピュータシステムの動作方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030821