JPH05216810A - データ転送装置及びその装置を備えたプロセッサ又は情報処理システム - Google Patents

データ転送装置及びその装置を備えたプロセッサ又は情報処理システム

Info

Publication number
JPH05216810A
JPH05216810A JP4021261A JP2126192A JPH05216810A JP H05216810 A JPH05216810 A JP H05216810A JP 4021261 A JP4021261 A JP 4021261A JP 2126192 A JP2126192 A JP 2126192A JP H05216810 A JPH05216810 A JP H05216810A
Authority
JP
Japan
Prior art keywords
transfer
data
data transfer
recovery time
signal
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
JP4021261A
Other languages
English (en)
Inventor
Tomohito Inoue
智史 井上
Takashi Miyamori
高 宮森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP4021261A priority Critical patent/JPH05216810A/ja
Publication of JPH05216810A publication Critical patent/JPH05216810A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 リカバリ時間を必要とするデバイスのアクセ
ス信号の種類にかかわらず、システムを複雑化すること
なく、連続的なデータ転送におけるリカバリ時間を確実
に保証する。 【構成】 外部との間でバス権の受け渡しを制御するバ
ス権制御部250を介してバス権を取得してデータ転送
を実行する際に、単位データの転送が終了した後、デー
タ転送先に対応して設定されたリカバリ時間をカウント
するリカバリ時間制御部270が設定されたリカバリ時
間をカウントした後次の単位データの転送開始を指令す
る状態制御部260と、設定したデータ転送の内容及び
状態制御部260からの指令に基づき、アドレス制御部
230及びデータ制御部280によって制御されたアド
レス及びデータを用いてデータ転送を制御する転送動作
制御部220から構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データの入出力が行な
われるデバイス間のデータ転送を行なうデータ転送装置
に関し、特にリカバリ時間を必要とするI/Oデバイス
を連続してアクセスし得るデータ転送装置に関する。
【0002】
【従来の技術】従来のデータ転送装置を用いたシステム
構成例を図8に示す。
【0003】この図8に示す例では、プロセッサ10
1、プロセッサ101に代わってデータ転送を制御する
ことができる例えばDMAコントローラ102、メモリ
103、106、ポートサイズ8ビットの外部I/Oデ
バイス104、ポートサイズ32ビットの外部I/Oデ
バイス105が、アドレスバス1、32ビット幅のデー
タバス(D00〜D31)2、コントロールバス3に接
続されている。8ビットのI/Oデバイス104はデー
タバスD00〜D31のうち、D00〜D07に接続さ
れている。
【0004】DMAコントローラ102は、メモリとメ
モリ、メモリとI/Oデバイスの間のデータ転送をする
ことができる。DMAコントローラ102による転送に
は、転送データを一旦DMAコントローラ102内部の
データレジスタに格納して行なう方法がある。
【0005】例えばメモリ103からI/Oデバイス1
04にデータを転送する場合を考える。DMAコントロ
ーラ102は転送元デバイス、即ちメモリ103のアド
レスをアドレスバス1に出力し、転送データはデータバ
ス2を介して一旦DMAコントローラ102内部のデー
タレジスタに格納するリードバスサイクルを行なう。次
に、DMAコントローラ102は転送先デバイス、即ち
I/Oデバイス104のアドレスをアドレスバス1に出
力し、データレジスタに格納しておいた転送データをデ
ータバス2に出力してデータ転送をするライトバスサイ
クルを行なう。
【0006】DMAコントローラの状態遷移を図9に示
す。
【0007】図9において、TIステートはDMAコン
トローラがバスマスタではないサイクル、TAステート
はDMA転送のバスサイクルの開始サイクル、TDステ
ートはDMA転送のデータ転送サイクルを示す。1つの
バスサイクルは1つのTAステートと1つ以上のTDス
テートよりなる。
【0008】DMAコントローラ102による1語分の
データ転送のタイミングを図10に示す。
【0009】I/Oデバイスとしてはポートサイズ8ビ
ットのI/Oデバイス104を考える。DMAコントロ
ーラ102内部またはI/Oデバイス104で転送要求
が発生すると、DMAコントローラ102はプロセッサ
101からバス権を獲得してTIステートからTAステ
ートへ移り、メモリリードサイクルとなる。TAステー
トになると、アドレス信号(A00〜A29)、データ
バス信号(D00〜D31)のうち有効なバイトを示す
バイトコントロール信号(BC0#〜BC3#信号)に
メモリアドレスの値を出力、リードライト信号(R/W
#信号)をHIGH、バスサイクルの開始を示すバスス
タート信号(BS#信号)をLOWにする。TAステー
トのCLKの立ち下がりでAS#信号をLOWにする。
【0010】続くTDステートではクロック信号CLK
の最初の立ち上がりでBS#信号をHIGHに、バスサ
イクルの終了を示すデータ転送終了信号(DS#信号)
をLOWにする。TDステートのCLKの立ち下がりで
DC#信号のサンプリングを行なう。サンプリングされ
たDC#信号がLOWであれば、DMAコントローラ1
02はD00〜D31信号上の転送データを内部のデー
タレジスタに格納し、アドレスストローブ信号(AS
#)、データストローブ信号(DS#信号)をHIGH
にして、このサイクルでメモリリードサイクルを終了す
る。DC#信号がHIGHであれば、このサイクルはウ
エイトサイクルとなりTDステートが継続される。
【0011】メモリリードサイクルが終了すると、次に
I/Oライトサイクルに移る。ここでは、I/Oデバイ
ス104のポートサイズが8ビットであるので、I/O
ライトサイクルは8ビットずつ4回繰り返される。TA
ステートでは、A00〜A29、BC0#〜BC3#信
号にI/Oデバイスの値を出力し、R/W#信号をLO
W、BS#信号をLOWにする。TAステートのクロッ
クの立ち下がりでAS#信号、DMA転送が行なわれて
いることを示すDMA転送応答信号(ACK0#信号)
をLOWにする。続くTDステートのCLKの最初の立
ち上がりでBS#信号をHIGHに、DS#信号をLO
Wにする。この時、DMAコントローラ102内部に格
納しておいた転送データをD00〜D07に出力する。
TDステートのCLKの立ち下がりで、DC#信号のサ
ンプリングを行なう。DC#信号がLOWであれば、A
S#、DS#、ACK0#信号をHIGHにし、このサ
イクルで1回目のI/Oライトサイクルを終了する。D
C#信号がHIGHであれば、このサイクルはウエイト
サイクルとなり、TDステートが継続される。
【0012】このようにして、1回目のI/Oライトサ
イクルが終了した後、同様にして2回目以降I/Oライ
トサイクル動作が繰り返される。
【0013】4回のI/Oライトサイクルが終了した後
に、次の転送要求が発生していれば、TAステートに移
り、上に述べた転送を繰り返し、転送要求が発生してい
なければ、バス権を解放してTIステートに移る。
【0014】このように、従来のDMAコントローラで
は、I/OデバイスよりDMA転送要求がある間、I/
Oサイクルを連続して実行することがあった。この時、
前のI/OサイクルのTDステート直後に次のTAステ
ートとなり、ACK#信号は1/2クロック間しかHI
GHにならなかった。
【0015】一方、I/Oデバイスによっては、ACK
0#信号が一定時間以上HIGHであるリカバリ時間を
必要するものがある。連続してI/Oライトサイクルを
実行するとACK0#信号がHIGHである時間が短
く、I/Oデバイスのリカバリ時間を満足しない時があ
る。
【0016】そこで、従来のDMAコントローラを使用
したシステムでは、図8に示すように、外部にリカバリ
時間を保証する回路110を付加する必要がある。リカ
バリ時間保証回路110は、ACK0#信号の立ち上が
りから所定のクロック数経過するまで出力をHIGHに
保ち、I/Oデバイスのリカバリ時間を保証する。図1
0のACK0#信号で、実線がDMAコントローラ10
2が出力したものであるが、リカバリ時間保証回路11
0によって、破線のようにI/Oデバイス104に伝え
られる。この例ではリカバリ時間が2クロックである。
【0017】また、I/Oデバイスによっては、BS
#、AS#、DS#信号により直接、あるいはこれらの
信号より生成したタイミング信号(例えばI/Oデバイ
スのチップセレクト信号など)によりアクセスされる場
合もある。この場合、AS#、DS#、BS#信号をそ
れぞれ遅らせる回路が必要であるが、BS#信号はバス
サイクルの開始から出力されるので、遅らせることがで
きなかった。
【0018】
【発明が解決しようとする課題】従来のデータ転送装置
では、I/Oデバイスに連続してアクセスする場合に
は、ACK#信号のリカバリ時間を必要とするI/Oデ
バイスに対応していないので、リカバリ時間を保証する
外部回路が必要であった。このリカバリ時間保証回路は
リカバリ時間を必要とする各I/Oデバイス毎に必要に
なるため、システムが複雑化することになり、また大型
化することにもなる。
【0019】さらに、BS#信号を利用したタイミング
信号によってアクセスされるI/Oデバイスでは、バス
サイクルの開始時点より出力されているBS#信号を遅
らせることができず、リカバリ時間を保証することがで
きなかった。
【0020】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、リカバリ時間
を必要とするデバイスのアクセス信号の種類にかかわら
ず、かつ外部回路を必要とすることなく、連続的なデー
タ転送におけるリカバリ時間を確実に保証することを達
成し、システム構成の簡単化ならびに小型化に寄与し得
るデータ転送装置を提供することにある。
【0021】
【課題を解決するための手段】上記目的を達成するため
に、この発明は、データ転送を連続して実行している時
に、単位データの転送が終了した後データ転送先又はデ
ータ転送元に対応して設定されたリカバリ時間をカウン
トするカウント手段と、データ転送を連続して実行して
いる時に、単位データの転送が終了した後外部を非デー
タ転送状態とすべく指令し、前記カウント手段が設定さ
れたリカバリ時間をカウントした後次の単位データの転
送開始を指令する状態遷移制御手段とを備えてなる。
【0022】
【作用】上記構成において、この発明は、データ転送装
置内部にそれぞれのデータ転送先又はデータ転送元に対
応してリカバリ時間を設定し、非データ転送状態として
単位データの転送の間に設定したリカバリ時間を挿入す
るようにしている。
【0023】
【実施例】本発明の一実施例に係るデータ転送装置とな
る例えばDMAコントローラ200のブロック図を図1
に示す。
【0024】図1において、DMAコントローラ200
は、内部ブロックとして転送要求制御部210、転送動
作制御部220、アドレス制御部230、バス権制御部
250、状態制御部260、リカバリ時間制御部27
0、データ制御部280を備えている。
【0025】転送動作制御部220は、動作定義レジス
タODR0、ODR1、及びバイトカウントレジスタB
CR0、BCR1を有している。アドレス制御部230
は、ソースアドレスレジスタSAR0、SAR1、デス
ティネーションアドレスレジスタDAR0、DAR1を
有している。データ制御部280は、データレジスタD
TR0、DTR1を有している。リカバリ時間制御部2
70は、リカバリタイムレジスタRTR0、RTR1、
及びリカバリタイムカウンタRCV CNT0、RCV
CNT1を有している。この例のDMAコントローラ
は2つのチャネルを持っており、レジスタ名の終わりの
数字0、1、はそれぞれ、チャネル0、チャネル1を表
している。
【0026】DMAコントローラ200は以下の外部信
号を備えている。
【0027】DMA転送要求信号REQ0#、REQ1
#はI/OデバイスからのDMA転送要求のための信号
である。I/OデバイスはDMA転送をDMAコントロ
ーラ200に要求する時この信号をアクティブにする。
DMA転送応答信号ACK0#、ACK1#は、I/O
デバイスからの転送要求に応答してDMA転送が行われ
ていることを示す信号である。バス権要求信号BREQ
#は、プロセッサへバス権を要求するための信号であ
る。バス権応答信号BACK#は、バス権要求信号BR
EQ#によるバス権要求の応答である。この信号がアク
ティブになると、DMAコントローラ200はバスマス
タとなり、DMA転送サイクルを実行する。
【0028】アドレスバス信号A00〜A29は、DM
A転送でアクセスするアドレスの上位30ビットを示す
信号である。バイトコントロール信号BC0#〜BC3
#は、データバス信号D00〜D31のうち有効なバイ
トを示す信号である。この例では、データバス信号D0
0〜D31の幅は32ビットであるのでバイトコントロ
ール信号はBC0#からBC3#の4つがある。BC0
#はD00〜D07、BC1#はD08〜D15、BC
2#はD16〜D23、BC3#はD24〜D31が有
効であることを示している。アドレスバス信号A00〜
A29とバイトコントロール信号BC0#〜BC3#は
アドレスバス1に接続されている。
【0029】アドレスストローブ信号AS#はDMAコ
ントローラ200がバスマスタの時、出力するアドレス
情報が有効であることを示す信号である。データバス信
号D00〜D31は、メモリやI/Oデバイスとデータ
のやりとりをするための信号である。この信号はデータ
バス2に接続されている。
【0030】データストローブ信号DS#はデータの有
効を示す信号である。バススタート信号BS#は、バス
サイクルの開始を示す信号である。この信号はバスサイ
クルの最初のクロックの間だけアクティブとなる。リー
ドライト信号R/W#は、バスサイクルがリードバスサ
イクルであるかライトバスサイクルであるかを示す信号
である。データ転送終了信号DC#は、バスサイクルの
終了を示す信号である。バスサイクルでアクセスされた
メモリやI/Oデバイスなどの外部回路によりアクティ
ブにされるとDMAコントローラ200はバスサイクル
を終了する。チップセレクト信号CS#は、プロセッサ
からDMAコントローラ200の内部レジスタをアクセ
スするときに外部よりアクティブにされる信号である。
【0031】次に、DMAコントローラ200の内部ブ
ロックについて説明する。内部ブロックに含まれるレジ
スタの構成は図2に示す。
【0032】転送要求制御部210は内部、あるいは外
部からの転送要求(REQ0#、REQ1#)を制御す
るブロックである。DMA転送要求が発生すると、転送
要求制御部210は転送要求があることを転送動作制御
部220及び状態制御部260に伝える。
【0033】転送動作制御部220は状態制御部260
から得られる状態により、DMA転送動作を制御するブ
ロックである。転送動作制御部220は動作定義レジス
タODR0、ODR1と、バイトカウントレジスタBC
R0、BCR1を備えている。
【0034】動作定義レジスタODR0、ODR1は、
DMA転送の動作を規定する。EXビットはチャネルが
動作中であることを示す。「1」のときは動作中であ
る。「0」のときはDMA転送を行わない。STPビッ
トはソースデバイスのタイプを示す。「0」のときはメ
モリで、「1」のときにはI/Oデバイスである。DT
Pフィールドはデスティネーションデバイスのタイプを
示す。「0」のときはメモリで、「1」のときにはI/
Oデバイスである。DPSフィールドはI/Oデバイス
のポートサイズを示し、「00」のとき1バイト、「0
1」のとき2バイト、「10」のとき4バイト(1語)
である。転送はメモリからメモリ、メモリからI/Oデ
バイス、I/Oデバイスからメモリへが可能で、I/O
デバイスからI/Oデバイスへは転送できない。そのた
め、STPビットとDTPビットの両方に「1」を設定
した時にはエラーとなる。また、メモリからメモリへの
転送が設定された時には、DPSフィールドは無視され
る。
【0035】バイトカウントレジスタBCR0、BCR
1はDMA転送するバイト数を示す。DMA転送を行う
度に転送したバイト数だけ減少し、「0」になるとDM
A転送を終了する。バイトカウントレジスタBCRの値
は転送単位のバイト数の整数倍でなくてはならない。
【0036】アドレス制御部230は転送元デバイス及
び転送先デバイスのアドレスを制御するブロックであ
り、アドレスバス1と接続されている。アドレス制御部
230はソースアドレスレジスタSAR0、SAR1
と、デスティネーションアドレスレジスタDAR0、D
AR1を備えている。
【0037】ソースアドレスレジスタSAR0、SAR
1はDMA転送でアクセスするソースデバイスのアドレ
スを格納する。ソースアドレスレジスタSARの値は、
ソースデバイスのタイプがメモリのときにはDMA転送
が行われる度に転送したバイト数分だけ増加し、ソース
デバイスのタイプがI/Oデバイスのときには変化しな
い。SARの値は、アライメントがとれていなくてはな
らない。即ち、ソースデバイスのタイプがI/Oデバイ
スのときはSARの下位2ビットの値は、ODRのDP
Sフィールドが「00」のときには任意、「01」の時
には「00」または「10」、「10」のときは「0
0」でなくてはならない。ソースデバイスのタイプがメ
モリのときは1語単位でアライメントがとれていなけれ
ばならない。従ってSARの下位2ビットは「00」で
なければならない。
【0038】デスティネーションアドレスレジスタDA
R0、DAR1はDMA転送でアクセスするデスティネ
ーションデバイスのアドレスを格納する。DARの値
は、デスティネーションデバイスのタイプがメモリのと
きにはDMA転送が行われる度に転送したバイト数分だ
け増加しデスティネーションデバイスのタイプがI/O
デバイスのときには変化しない。DARの値は、アライ
メントがとれていなくてはならない。即ち、デスティネ
ーションデバイスのタイプI/OデバイスのときはDA
Rの下位2ビットの値は、ODRのDPSフィールドが
「00」のときには任意、「01」の時には「00」ま
たは「10」、「10」のときは「00」でなくてはな
らない。デスティネーションデバイスのタイプがメモリ
のときは1語単位でアライメントがとれていなければな
らない。従ってDARの下位2ビットは「00」でなく
てはならない。
【0039】バス権制御部250は、プロセッサとのバ
ス権の受渡しを制御するブロックである。
【0040】状態制御部260は転送要求制御部21
0、転送動作制御部220、バス権制御部250、リカ
バリ時間制御部270からの信号により状態(ステー
ト)を制御するブロックである。
【0041】リカバリ時間制御部270はバスサイクル
間に挿入するアイドルサイクルの時間を制御するブロッ
クである。リカバリ時間制御部270は、リカバリタイ
ムレジスタRTR0、RTR1とリカバリタイムカウン
タRCV CNT0、RCV CNT1を備えている。
【0042】リカバリタイムレジスタRTR0、RTR
1はそれぞれのチャネルのI/Oバスサイクル間のリカ
バリ時間を示す。I/Oデバイスがリカバリ時間として
必要とするクロック数を設定する。リカバリ時間を必要
としないI/Oデバイスに対しては「0000」とす
る。RTRの値とリカバリタイムの関係は例えば表1に
示すようになる。ODR0またはODR1でメモリから
メモリへの転送が設定されている場合にはRTRの内容
は無視される。
【0043】
【表1】 リカバリタイムカウンタRCV CNT0、RCV
NT1はリカバリ時間の経過を示すカウンタである。初
期値は「0000」である。
【0044】データ制御部280はデータを制御するブ
ロックであり、データバス2と接続されている。データ
制御部280はDMA転送時に転送データを一時格納す
るデータレジスタDTR0、DTR1を備え、DMAデ
ータ転送のデータの入出力を行なう。また、DMAコン
トローラ200内部のレジスタをアクセス時もこのブロ
ックを介して行なう。
【0045】次に状態制御部260について詳しく説明
する。
【0046】図3に状態制御部260の状態遷移を示
す。図3において、TIステートはDMAコントローラ
200がバスマスタではない状態である(状態遷移
1)。転送要求があって、バス権を獲得すると、TAス
テートに移る(状態遷移3)。ただし、次のサイクルが
I/OアクセスサイクルでRCV CNTの値が「00
00」以外の場合はTRステートに移る(状態遷移
2)。
【0047】TAステートはDMA転送のバスサイクル
の開始のサイクルで、バスサイクルの始まりを示すBS
#信号をLOWにし、リードバスサイクルのときにはS
ARの値を、I/OライトバスサイクルのときにはDA
Rの値をアドレスバスに出力する。リードのときはR/
W#信号をHIGHに、ライトのときはR/W#信号を
LOWにする。クロックの立ち下がりから、AS#信号
をLOWにする。
【0048】TAステートの次のクロックは無条件でT
Dステートとなる(状態遷移4)。TDステートはデー
タ転送サイクルである。TDステートが開始されると、
BS#信号はHIGHに、DS#信号はLOWになる。
リードバスサイクルでは、クロックの立ち下がりでDC
#信号がLOWになっていれば、D00〜D31信号上
の転送データを内部のデータレジスタに取り込み、DS
#信号をHIGHにして次の状態に移る。また、ライト
バスサイクルでは、TDステート開始のクロックの立ち
上がりで、内部のデータレジスタに格納してあったデー
タをD00〜D31に出力する。クロックの立ち下がり
でDC#信号がLOWになっていれば、DS#信号をH
IGHにして次の状態に移る。いずれの場合でも、DC
#信号がHIGHであれば、ウエイトサイクルとなり、
TDステートが継続される(状態遷移5)。また、I/
Oアクセスのクロックの立ち下がりでDC#信号がLO
Wになると、リカバリ時間制御部270では実行中のチ
ャネルiのRCV RNTi(i=0、1)はRTRi
の値をロードする。
【0049】TDステート終了時にデータ転送要求がな
ければTIステートに移る(状態遷移8)。データ転送
要求がある場合で、RCV CNTiの値が「000
0」の場合(CEQZ=HIGH)、または次のサイク
ルがメモリアクセスサイクルの場合にはTAステートに
移り、次のデータの転送を始める(状態遷移6)。次の
サイクルがI/OアクセスサイクルでRCV CNTi
が「0000」以外の値の場合(CEQZ=LOW)に
はTRステートに移り(状態遷移7)、CEQZがHI
GHになるまでTRステートはI/Oデバイスのリカバ
リ時間を得るためのアイドルサイクルであり、TRステ
ートの間、ACK#、AS#、DS#、BS#信号をH
IGHに保つ(状態遷移9)。リカバリ時間制御部27
0では、RCV CNTiは「0000」になるまで1
クロック毎にクロックの立ち下がりで「1」ずつデクリ
メントされる。リカバリ時間制御部270においてRC
CNTiが「0000」になると、CEQZがHIG
Hとなり、TRステートからTAステートに移る(状態
遷移10)。
【0050】状態制御部260の回路構成を図4に示
す。
【0051】図4において、状態制御部260は組合せ
回路71とフリップフロップ72〜74からなる。組合
せ回路71の入力信号と出力信号の関係は表2に示すよ
うになる。組合せ回路71はこの表2を基にROMやP
LAで実現することもできるし、またNOT回路、AN
D回路、OR回路の組合せで実現することも容易であ
る。
【0052】
【表2】 S0、S1信号は現在のステートを示す信号である。S
0、S1の値とステートの関係は表3に示すようにな
る。
【0053】
【表3】 NIO信号は次のサイクルのアクセスがI/Oデバイス
に対する時HIGH、メモリに対する時及びバスサイク
ルを行なわない時LOWになる信号で、転送動作制御部
220より得られる。TREQ信号は内部、または外部
より転送要求があるとHIGH、ないとLOWとなる信
号であり、転送要求制御部210より得られる。CEQ
Z信号はRCV CNTiが「0000」のときHIG
H、「0000」以外の値の時LOWとなる信号でリカ
バリ時間制御部270より得られる。PIO信号は現在
I/Oアクセスサイクルの時HIGH、メモリアクセス
サイクルの時及びバスサイクルを行なわない時LOWと
なる信号で、1クロック前のNIO信号と同じ値であ
る。BACK#信号は外部入力信号で、DMAコントロ
ーラがバス権を持っている時LOW、持っていない時H
IGHとなる。DC#信号は外部信号で、データ転送が
終了した時LOWとなる信号である。また、出力された
NS0、NS1信号は次のステートを示しており、CL
Kの立ち上がりでフリップフロップ72、73によって
値を保持され、これが新しいS0、S1の値となる。ま
た、NIO信号はCLKの立ち上がりでフリップフロッ
プ74にラッチされ、PIO信号となる。
【0054】リカバリ時間制御部270の回路構成を図
5に示す。
【0055】RCV CNTiは、4ビットのダウンカ
ウンタである。TRCHi(i=0、1)信号はチャネ
ルiのDMA転送かどうかを示す信号であり、HIGH
のときチャネルiの転送が行なわれていることを示す。
TRCHiは転送動作制御部220からの入力である。
PIO、S0、S1は状態制御部260からの入力であ
る。DMA転送中のチャネル(TRCHi=HIGH)
において、I/Oアクセスサイクル(PIO=LOW)
のTDステート(S0=HIGH、S1=HIGH)の
クロックの立ち下がりでDC#信号がLOWのとき、L
OAD信号がHIGHとなり、RTRiの値をロードす
る。RCV CNTiの値が「0000」でなければ、
CLKの立ち下がり毎に内容を1ずつ減算する。CEQ
ZiはRCV CNTi=「0000」のときにHIG
Hになる。転送中のチャネルのCEQZiがHIGHの
とき、状態制御部260への出力信号であるCEQZが
HIGHとなる。
【0056】次に、上述した構成において、状態遷移の
例としてメモリからポートサイズ8ビットで、ACK0
#信号のリカバリ時間が2クロックであるI/Oデバイ
スへデータ転送を行なう場合を説明する。
【0057】I/Oデバイスはチャネル0に接続されて
いるものとする。その時の1語転送分のタイミングを図
6に示す。図6では、状態制御部260、リカバリ時間
制御部270に関する信号、及びRCV CNT0の値
も同時に示した。メモリが32ビット幅、I/Oデバイ
スが8ビット幅であるので、メモリから32ビットで1
回読み出して、I/Oデバイスに8ビットで4回書き込
むことになる。
【0058】まず、転送を行なうためにプロセッサから
DMAコントローラ200内部のレジスタの設定を行な
う。I/OデバイスはDMAコントローラ200のチャ
ネル0に接続されているとする。転送元のメモリのアド
レスをSAR0に、転送先のI/Oデバイスのアドレス
をDAR0に設定する。また、転送バイト数をBCR0
に設定する。ODR0のSTPには「0」を、DTPに
は「1」を設定する。また、I/Oデバイスのポートサ
イズが8ビットであるので、DPSフィールドは「0
0」とする。I/OデバイスはACK0#信号のリカバ
リ時間を2クロック必要とするので、RTR0には「0
010」を設定する。
【0059】ODR0、SAR0、DAR0、BCR
0、RTR0を上記のように設定した後ODR0のEX
ビットに「1」を書き込むと、DMAコントローラ20
0はバス権要求信号BREQ#をLOWにし、プロセッ
サにバス権を要求する。プロセッサはそれに応えてバス
権応答信号BACK#をLOWにし、DMAコントロー
ラ200はバス権を得て、TAステートに移る。この
時、RCV CNT0の値は初期値「0000」であ
る。
【0060】TAステートに移ると、メモリリードサイ
クルを開始する。バススタート信号BS#をLOWに、
R/W#信号をHIGHにし、SAR0の値をアドレス
バス1に出力する。TAのクロックの立ち下がりで、ア
ドレスストローブ信号AS#をLOWにして、出力して
いるアドレスが有効であることを示す。TAステートを
1クロック行なうと、TDステートに移る。
【0061】TDステートに移ると、BS#信号をHI
GHに、データストローブ信号DS#をLOWにする。
CLKの立ち下がりでデータ転送終了信号DC#がLO
Wなので、D00〜D31上の転送データをDTR0に
格納する。また、この時DS#信号、AS#信号をHI
GHにする。最後にSAR0の値にメモリから読み出し
たデータのバイト数、即ち「4」を加えてメモリリード
サイクルを終了する。
【0062】次に、I/Oライトサイクルに移る。TA
ステートに入ると、BS#信号をLOWに、R/W#信
号をLOWにし、DAR0の値をアドレスバス1に出力
する。CLKの立ち下がりで、AS#信号をLOWに
し、ACK0#信号をLOWにする。TAステートを1
クロック行なうと、TDステートに移る。
【0063】TDステートに移ると、BS#信号をHI
GHに、データストローブ信号DS#をLOWにして、
DTR0に格納しておいた転送データの最初の8ビット
をD00〜D07に出力する。CLKの立ち下がりでデ
ータ転送終了信号DC#がLOWなので、DS#信号、
AS#信号、ACK0#信号をHIGHにする。また、
この時、RTR0の値「0010」をRCV CNT0
にロードする。
【0064】次に、2度目のI/Oライトサイクルに入
るわけであるが、RCV CNT0の値が「0010」
であるので、TRステートに移る。ACK0#、AS
#、DS#、BS#信号をHIGHに保ったまま、1ク
ロック経過すると、RCV CNT0は「1」減算され
て「0001」になる。再度TRステートを繰り返す
と、RCV CNT0の値は「0000」になるので、
TAステートに移る。このI/Oライトサイクルを都合
4回行なうと、32ビット分のデータ転送が終了する。
BCR0から転送バイト数分、即ち「4」減算する。
【0065】このように、この発明によるDMAコント
ローラ200では、連続してI/Oデバイスにアクセス
する場合に、アイドルステートTRを挿入することによ
ってリカバリ時間を得ることができる。また、TRステ
ートの間はBS#、AS#、DS#信号もHIGHにし
ているので、次のアクセスがこれらの信号によって開始
されることも避けられる。以上のようにして、I/Oデ
バイスのリカバリ時間を得ることができる。
【0066】上記実施例では、メモリからI/Oデバイ
スへの転送例を示したが、I/Oデバイスからメモリへ
の転送も同様に行なうことができる。また、上記実施例
では、2つのチャネルしかないDMAコントローラ20
0について説明したが、チャネルが4つでも、またその
他の数でも本発明のDMAコントローラを構成すること
は容易である。
【0067】このように、本発明では、データ転送装置
自体が、リカバリ時間を保証するため、外部に付加回路
を設ける必要がない。従来はリカバリ時間を必要とする
I/Oデバイスそれぞれに外部回路が必要であったが、
本発明のデータ転送装置を用いれば、それらの外部回路
は一切不要なので、システム構成が単純になり、システ
ムコストを低減することが出来る。
【0068】また、BS#、AS#、DS#信号を直
接、あるいは、これらの信号より生成したタイミング信
号によりアクセスされるようなI/Oデバイスに対して
も、本発明のデータ転送装置ではBS#、AS#、DS
#信号をHIGHに保つアイドルサイクルを挿入するの
で、その間デバイスはアクセスされず、リカバリ時間は
保証される。
【0069】上記実施例では、メモリアドレスとI/O
アドレスを別々に出力し、転送データを一旦DMAコン
トローラ内部のデータレジスタに格納するデータ転送方
式について示したが、メモリアドレスのみを出力し、I
/Oデバイスのアクセスは、ACK#信号によってのみ
行なうために、メモリアクセスのみを実行し、転送デー
タをDMAコントローラ内部に取り込まないシングルア
ドレスモードの転送方式においても本発明は有効であ
る。
【0070】なお、本発明は上記実施例に限定されるこ
とはなく、上記実施例ではデータ転送装置としてDMA
コントローラを一例として挙げたが、通常用いられてい
るプロセッサにも本発明の技術を適用することが可能で
ある。
【0071】本発明の技術をプロセッサに適用する場合
に、DMAコントローラではチャネル毎にアクセスする
I/Oデバイスが決まっているが、プロセッサはアドレ
スでI/Oデバイスを選択してアクセスするので、各バ
スサイクルでプロセッサがアクセスするデバイスのアド
レスから、リカバリ時間を必要とするI/Oデバイスで
あるかどうかを判断する回路が必要になる。
【0072】このI/O判断回路の構成例を図7に示
す。図7において、I/O判断回路300は、I/Oア
ドレスレジスタ301、I/Oマスクレジスタ302、
32ビットの比較器303、及びANDゲートよりな
る。I/Oアドレスレジスタ301はリカバリ時間を必
要とするI/Oアドレスの開始アドレスを示す。例え
ば、I/Oデバイスのアドレスが「H10000000
〜H1000000F」であるとすると、I/Oアドレ
スレジスタ301の値は「H10000000」であ
る。I/Oマスクレジスタ302はアドレスを比較する
際に有効である領域を指定するレジスタである。有効で
あるビットは「1」、無効であるビットは「0」とす
る。上記の例では、I/Oマスクレジスタ302の値は
「HFFFFFFFE」である。アドレスレジスタ40
1はプロセッサがアクセスするデバイスのアドレスを示
すレジスタである。アクセスするデバイスがリカバリ時
間を必要とするI/Oデバイスであるかどうかは次のよ
うに判断する。
【0073】まず、アドレスレジスタ401とI/Oマ
スクレジスタ302の論理積をとる。例えば、アドレス
レジスタ401の値が「H10000004」、I/O
マスクレジスタ302の値が「HFFFFFFFE」で
あったとすると、その論理積は「H10000000」
となる。この値をI/Oアドレスレジスタ301の値と
比較器303で比較する。I/Oアドレスレジスタ30
2の値が「H10000000」であったとすると、2
つの値は一致しているので、I/O一致信号IOMをH
IGHにして、アクセスするデバイスがリカバリ時間を
必要とするI/Oデバイスであることを示す。一方、一
致しなければIOMをLOWにする。
【0074】このようにして、プロセッサはアクセスす
るデバイスがリカバリ時間を必要とするI/Oデバイス
であるかどうかをアドレスから判断することができる。
この判断結果を図5のTRCHiとすれば、前述したD
MAコントローラ200の場合と同様に動作する。な
お、リカバリ時間を必要とするI/Oデバイスが複数あ
れば、それぞれのI/OデバイスについてI/O判断回
路300を用意すればよい。
【0075】
【発明の効果】以上説明したように、この発明によれ
ば、装置の内部にそれぞれのデータ転送先に対応してリ
カバリ時間を設定し、非データ転送状態として単位デー
タの転送の間に設定したリカバリ時間を挿入するように
しているので、リカバリ時間を必要とする装置のアクセ
ス信号の種類にかかわらず、また外部回路を必要とする
ことなくそれぞれのデータ転送先に対応してリカバリ時
間を保証することができる。これにより、情報処理シス
テムの構成を簡単化ならびに小型化することができるよ
うになる。
【図面の簡単な説明】
【図1】本発明によるデータ転送装置であるDMAコン
トローラ内部の構成例を示す図である。
【図2】本発明によるデータ転送装置であるDMAコン
トローラの内部レジスタの構成例を示す図である。
【図3】本発明によるデータ転送装置であるDMAコン
トローラによるデータ転送のバスステートの遷移の様子
を示す図である。
【図4】本発明によるデータ転送装置であるDMAコン
トローラ内部の状態制御部を示す図である。
【図5】本発明によるデータ転送装置であるDMAコン
トローラ内部のリカバリ時間制御部を示す図である。
【図6】本発明によるデータ転送装置であるDMAコン
トローラによるデータ転送のタイミングの一例を示す図
である。
【図7】本発明によるデータ転送装置であるプロセッサ
のI/O判定回路の一例を示す図である。
【図8】従来のデータ転送装置であるDMAコントロー
ラを用いたシステム構成例を示す図である。
【図9】従来のデータ転送装置であるDMAコントロー
ラによるデータ転送のバスステートの遷移の様子を示す
図である。
【図10】従来のデータ転送装置であるDMAコントロ
ーラによるデータ転送のタイミングの一例を示す図であ
る。
【符号の説明】
1 アドレスバス 2 データバス 200 データ転送装置 210 転送要求制御部 220 転送動作制御部 230 アドレス制御部 250 バス権制御部 260 状態制御部 270 リカバリ時間制御部 280 データ制御部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 データ転送を実行している時に、単位デ
    ータの転送が終了した後データ転送元又は転送先に対応
    して設定されたリカバリ時間をカウントするカウント手
    段と、 データ転送を実行している時に、前記カウント手段が設
    定されたリカバリ時間をカウントした後次の単位データ
    の転送開始を指令する状態遷移制御手段とを有すること
    を特徴とするデータ転送装置。
  2. 【請求項2】 内部又は外部からのデータ転送要求に応
    答してこれを制御する転送要求制御手段と、 データ転送における転送元アドレス及び転送先アドレス
    を生成して送出制御するアドレス制御手段と、 外部との間でバス権の受け渡しを制御するバス権制御手
    段と、 前記バス権制御手段を介してバス権を取得してデータ転
    送を実行している時に、単位データの転送が終了した後
    データ転送元又は転送先に対応して設定されたリカバリ
    時間をカウントするカウント手段と、 データ転送を実行している時に、前記カウント手段が設
    定されたリカバリ時間をカウントした後次の単位データ
    の転送開始を指令する状態遷移制御手段と、 データ転送の内容を設定し、設定した内容及び前記状態
    遷移制御手段からの指令に基づき、前記アドレス制御手
    段及び前記データ制御手段により制御されたアドレス及
    びデータを用いてデータ転送を制御する転送動作制御手
    段とを有することを特徴とするデータ転送装置。
  3. 【請求項3】 前記カウント手段は、 データ転送元又は転送先に対応してリカバリ時間が設定
    されるレジスタと、 前記レジスタに設定されたリカバリ時間をクロック信号
    に基づいてカウントするカウンタとからなることを特徴
    とする請求項1又は請求項2記載のデータ転送装置。
  4. 【請求項4】 前記状態遷移制御手段は、 単位データの転送が終了した後、アドレス信号、データ
    を無効化してバスサイクルを中断させることを特徴とす
    る請求項1又は請求項2記載のデータ転送装置。
  5. 【請求項5】 データ転送を伴って命令を実行制御する
    演算制御手段と、 データ転送元又は転送先のリカバリ時間を判断する判断
    手段と、 前記判断手段によって判断されたリカバリ時間が設定さ
    れる請求項1又は請求項2記載のデータ転送装置とを有
    することを特徴とするプロセッサ。
  6. 【請求項6】 データ転送を伴って命令を実行制御する
    演算制御手段と、 前記演算制御手段が実行する命令及びデータを記憶する
    記憶手段と、 命令及びデータが転送されるバスと、 前記バスを介して入出力される命令及びデータを制御す
    る入出力インターフェース手段と、 データ転送元又は転送先のリカバリ時間を判断する判断
    手段と、 前記判断手段によって判断されたリカバリ時間が設定さ
    れ、前記入出力インターフェース手段を介して入出力さ
    れる命令及びデータを転送制御する請求項1又は請求項
    2記載のデータ転送装置と前記演算制御手段又は前記デ
    ータ転送装置によりデータの転送が行われる入/出力装
    置とを有することを特徴とする情報処理システム。
JP4021261A 1992-02-06 1992-02-06 データ転送装置及びその装置を備えたプロセッサ又は情報処理システム Pending JPH05216810A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4021261A JPH05216810A (ja) 1992-02-06 1992-02-06 データ転送装置及びその装置を備えたプロセッサ又は情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4021261A JPH05216810A (ja) 1992-02-06 1992-02-06 データ転送装置及びその装置を備えたプロセッサ又は情報処理システム

Publications (1)

Publication Number Publication Date
JPH05216810A true JPH05216810A (ja) 1993-08-27

Family

ID=12050160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4021261A Pending JPH05216810A (ja) 1992-02-06 1992-02-06 データ転送装置及びその装置を備えたプロセッサ又は情報処理システム

Country Status (1)

Country Link
JP (1) JPH05216810A (ja)

Similar Documents

Publication Publication Date Title
US5613162A (en) Method and apparatus for performing efficient direct memory access data transfers
JP2586833B2 (ja) データプロセッサ
US20050210221A1 (en) Microcomputer and microcomputer system
US5905911A (en) Data transfer system which determines a size of data being transferred between a memory and an input/output device
JPH05173932A (ja) データ転送装置
JP2004171209A (ja) 共有メモリデータ転送装置
US5426737A (en) Direct memory access for data transfer within an I/O device
US20020026544A1 (en) DMA controller
US5710939A (en) Bidirectional parallel data port having multiple data transfer rates, master, and slave operation modes, and selective data transfer termination
US6085261A (en) Method and apparatus for burst protocol in a data processing system
US6272583B1 (en) Microprocessor having built-in DRAM and internal data transfer paths wider and faster than independent external transfer paths
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
JP2002149591A (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
US5307476A (en) Floppy disk controller with DMA verify operations
JPH05216810A (ja) データ転送装置及びその装置を備えたプロセッサ又は情報処理システム
JPH051504B2 (ja)
EP0410382A2 (en) Data transfer controller using direct memory access method
EP0501621A2 (en) Address prediction and verification for burst cycle data reads
JP2000132451A (ja) メモリ制御回路
JP2594611B2 (ja) Dma転送制御装置
JPH02181886A (ja) 直線描画装置
JP3293838B2 (ja) データ転送方式
JP2003085125A (ja) メモリ制御器及びメモリ制御方法
JP2581144B2 (ja) バス制御装置
JPH04264652A (ja) Dma制御方式