JP2003150534A - チェインブロック転送方法及び通信制御装置 - Google Patents

チェインブロック転送方法及び通信制御装置

Info

Publication number
JP2003150534A
JP2003150534A JP2001351538A JP2001351538A JP2003150534A JP 2003150534 A JP2003150534 A JP 2003150534A JP 2001351538 A JP2001351538 A JP 2001351538A JP 2001351538 A JP2001351538 A JP 2001351538A JP 2003150534 A JP2003150534 A JP 2003150534A
Authority
JP
Japan
Prior art keywords
descriptor
data
pointer
transmission
polling
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.)
Withdrawn
Application number
JP2001351538A
Other languages
English (en)
Inventor
Keiji Ichige
啓司 市毛
Hisatsugu Suzuki
久嗣 鈴木
Toshiyuki Katayama
俊之 片山
Masahiko Iwamoto
昌彦 岩本
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.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi 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 Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP2001351538A priority Critical patent/JP2003150534A/ja
Publication of JP2003150534A publication Critical patent/JP2003150534A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 ポーリング直後において、前回アクセスした
ものと異なるデータバッファのアクセスを可能とする。 【解決手段】 フラグの論理状態に基づいて上記DMA
制御部によりポーリングが行われ、ポーリングの終了後
にそのディスクリプタ(1617)における第1ポイン
タ及び第2ポインタが上記DMA制御部により再リード
され、上記ポーリングが終了する前に当該ディスクリプ
タの内容を更新することにより、ポーリング直後におい
て、前回アクセスしたものと異なるデータバッファ(1
609)のアクセスが可能とされる。また、上記ポーリ
ングが終了する前に当該ディスクリプタの内容を更新す
ることにより、ポーリング直後に異なるチェイン列に変
更可能であり、その際に、チェインブロック転送が停止
されたディスクリプタの次のディスクリプタで別のチェ
イン列を指定する方式に比べてオーバーヘッドの低減を
図る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信制御技術、さ
らにはチェインブロック転送方法及び通信制御装置に関
する。
【0002】
【従来の技術】HDLC系通信制御用LSIにおいて
は、高度なパケット処理を行うため、チェインブロック
転送というDMA(ダイレクト・メモリ・アクセス)形
式の転送方式がサポートされている。このチェインブロ
ック転送方式は、メモリ上の複数のデータバッファを連
続して転送制御するための手段とされる。各データバッ
ファにはそれの属性を示すためのディスクリプタが付随
している。このディスクリプタには、次のディスクリプ
タ先頭アドレス、対応するバッファアドレス、データ
長、及びステータスが含まれる。
【0003】MPU(マイクロプロセッシングユニッ
ト)によって必要数のディスクリプタがメモリ上に予め
記憶されることにより、通信制御用LSIに内蔵された
ダイレクトメモリアクセスコントローラ(DMAC)
は、自立的にデータの連続転送を行い得る。複数のディ
スクリプタが存在するとき、MPUは、リング状にディ
スクリプタを結合させることが可能である。リング状に
ディスクリプタが関連付けられたとき、DMACは、あ
るディスクリプタが初めてアクセスされるものなのか、
かつて一度アクセスされたものなのかは、そのディスク
リプタの情報からは判断できない。そこでオーナーシッ
プビット(OSB)と称されるビットをディスクリプタ
のステータス中に設け、一度でもDMCAがディスクリ
プタをアクセスした場合には、そのディスクリプタのオ
ーナーシップビット(OSB)を論理値“1”にセット
することによってDMACがアクセス済みのディスクリ
プタか否かの判別を可能としている。オーナーシップビ
ット(OSB)が論理値“0”の場合、当該ディスクリ
プタに属するバッファは転送許可状態とされるが、オー
ナーシップビット(OSB)が論理値“1”の場合、当
該ディスクリプタに属するバッファは転送禁止状態とさ
れる。従ってオーナーシップビット(OSB)が論理値
“1”にセットされているディスクリプタをアクセスし
た場合、DMACは次の転送に入らず、一定時間をおい
てディスクリプタにおけるステータスのリードを繰り返
す。この動作を「ポーリング」と称する。そして、MP
Uによってオーナーシップビット(OSB)が論理値
“1”から論理値“0”に書き換えられると、DMAC
は動作を再開する。
【0004】尚、チェインブロック転送について記載さ
れた文献の例としては、特許公開2000−29864
0号公報がある。
【0005】
【発明が解決しようとする課題】チェインブロック転送
モードにおいて、データ転送終了後、DMACはオーナ
ーシップビット(OSB)に論理値“1”をライトす
る。DMACがディスクリプタ・ステータスをリードし
たときに、オーナーシップビット(OSB)が論理値
“1”だった場合、DMAプライオリティ・コントロー
ル・レジスタ(PCR)のOSEBビットが論理値
“1”ならば当該バッファの転送を行わず、一定期間お
いた後に再びそのディスクリプタ・ステータスのリード
が行われる。オーナーシップビット(OSB)が論理値
“0”になった場合、DMACによるデータ転送が行わ
れる。このやり方は、シーケンスの流れからも自然であ
るが、停止していたディスクリプタに対応するデータバ
ッファを必ずアクセスすることになり柔軟性に欠ける。
つまり、ポーリング直後において、前回アクセスしたも
のと異なるデータバッファへアクセスしたくても、それ
ができない。また、別のチェイン列に変更したい場合に
は、上記のようにオーナーシップビット(OSB)が論
理値“1”とされてチェインブロック転送が停止された
ディスクリプタの次のディスクリプタで別のチェイン列
を指定する必要がある。この場合、あるディスクリプタ
においてオーナーシップビット(OSB)が論理値
“1”とされてチェインブロック転送が停止され、次に
オーナーシップビット(OSB)が論理値“0”に書き
換えられた場合に、当該ディスクリプタに対応するデー
タバッファがアクセスされてから、次のディスクリプタ
のリードが行われることから、そこで必ずオーバーヘッ
ドが発生する。
【0006】本発明の目的は、ポーリング直後におい
て、前回アクセスしたものと異なるデータバッファのア
クセスを可能とするための技術を提供することにある。
【0007】本発明の別の目的は、異なるチェイン列に
変更する場合のオーバーヘッドを低減するための技術を
提供することにある。
【0008】本発明の上記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0009】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0010】〔1〕DMA制御部がポインタ情報に基づ
いて上記ディスクリプタをリードする第1リード処理
と、上記第1処理でリードされたディスクリプタに含ま
れている所定ビットが所定論理値に変化されるのを待つ
ポーリング処理と、上記ポーリング処理が終了された
後、上記ポーリング処理にかかるディスクリプタをその
先頭アドレスから上記DMA制御部が再リードする第2
リード処理とを含める。
【0011】上記の手段によれば、ディスクリプタにお
ける所定ビットの論理状態に基づくポーリングが終了し
た後に、上記DMA制御部によりディスクリプタが再リ
ードされるため、上記ポーリングが終了する前に当該デ
ィスクリプタの内容を更新することにより、ポーリング
直後において、前回アクセスしたものと異なるデータバ
ッファのアクセスが可能とされる。また、上記ポーリン
グが終了する前に当該ディスクリプタの内容を更新する
ことにより、ポーリング直後に異なるチェイン列に変更
可能であり、その際に、チェインブロック転送が停止さ
れたディスクリプタの次のディスクリプタで別のチェイ
ン列を指定する方式に比べてオーバーヘッドの低減を図
ることができる。
【0012】〔2〕DMA制御部がポインタ情報に基づ
いて上記ディスクリプタをリードする第1リード処理
と、上記第1処理でリードされたディスクリプタに含ま
れている上記フラグが所定論理値に変化されるのを待つ
ポーリング処理と、上記ポーリング処理が終了された
後、上記ポーリング処理にかかるディスクリプタにおけ
る上記第1ポインタ及び上記第2ポインタを上記DMA
制御部が再リードする第2リード処理とを含める。
【0013】上記の手段によれば、上記ディスクリプタ
における上記フラグの論理状態に基づいて上記DMA制
御部によりポーリングが行われ、ポーリングの終了後に
そのディスクリプタにおける第1ポインタ及び第2ポイ
ンタが上記DMA制御部により再リードされ、上記ポー
リングが終了する前に当該ディスクリプタの内容が更新
されることにより、ポーリング直後において、前回アク
セスしたものと異なるデータバッファのアクセスが可能
とされる。また、上記ポーリングが終了する前に当該デ
ィスクリプタの内容を更新することにより、ポーリング
直後に異なるチェイン列に変更可能であり、その際に、
チェインブロック転送が停止されたディスクリプタの次
のディスクリプタで別のチェイン列を指定する方式に比
べてオーバーヘッドの低減を図ることができる。
【0014】〔3〕次にアクセスされるディスクリプタ
のスタートアドレスが設定される第1ポインタと、その
ディスクリプタに属するデータバッファのスタートアド
レスが設定される第2ポインタと、上記DMA制御部に
よって一度アクセスされてから上記マイクロプロセッシ
ングユニットによって書き換えられるまでは、上記DM
A制御回路の再アクセスが禁止されるフラグとを有し、
データバッファの属性情報を有すると共にポインタ情報
によって連鎖可能にされた複数のディスクリプタと、上
記ディスクリプタを順次参照しながらデータのチェイン
ブロック転送を制御可能なDMA制御部とを用いてチェ
インブロック転送が行われるとき、上記DMA制御部が
ポインタ情報に基づいて上記ディスクリプタをリードす
る第1リード処理と、上記第1処理でリードされたディ
スクリプタに含まれている上記フラグが所定論理値に変
化されるのを待つポーリング処理と、上記フラグの論理
値がマイクロプロセッシングユニットによって書き換え
られる前に、上記マイクロプロセッシングユニットが上
記第1ポインタ及び上記第2ポインタを更新するポイン
タ更新処理と、上記フラグが上記マイクロプロセッシン
グユニットによって所定論理値に変化されることにより
上記ポーリング処理が終了された後、上記ポーリング処
理が終了されたディスクリプタにおける上記第1ポイン
タ及び上記第2ポインタを上記DMA制御部が再リード
する第2リード処理とを含める。
【0015】上記の手段によれば、上記ディスクリプタ
における上記フラグの第1論理状態に基づいて上記DM
A制御部によりポーリングが行われ、上記フラグが上記
マイクロプロセッシングユニットによって第2論理状態
に書き換えられる前に、上記マイクロプロセッシングユ
ニットによってそのディスクリプタが更新され、上記フ
ラグが上記マイクロプロセッシングユニットによって第
2論理状態に書き換えられた後にそのディスクリプタは
上記DMA制御部により上記第1ポインタ及び第2ポイ
ンタが再リードされることにより、上記ポーリングが終
了する前に当該ディスクリプタの内容を更新することに
より、ポーリング直後において、前回アクセスしたもの
と異なるデータバッファのアクセスが可能とされる。ま
た、上記ポーリングが終了する前に当該ディスクリプタ
の内容を更新することにより、ポーリング直後に異なる
チェイン列に変更可能であり、その際に、チェインブロ
ック転送が停止されたディスクリプタの次のディスクリ
プタで別のチェイン列を指定する方式に比べてオーバー
ヘッドの低減を図ることができる。
【0016】〔4〕このとき、上記ポーリングのインタ
ーバルタイムは、そのときの上記マイクロプロセッシン
グユニットの負荷に応じて制御することができる。マイ
クロプロセッシングユニットの負荷が比較的重くなった
場合には、インターバルタイムが比較的長めに調整さ
れ、また、マイクロプロセッシングユニットの負荷が比
較的軽くなった場合には、インターバルタイムが比較的
短めに調整することができる。通常、ディスクリプタの
書き換えはバスを介してマイクロプロセッシングユニッ
トによって行われるが、マイクロプロセッシングユニッ
トの負荷が比較的重い場合において、インターバルタイ
ムが短いと、マイクロプロセッシングユニットはバスの
使用権を獲得するのが困難になる。そうかといってイン
ターバルタイムを長めに設定すると、データ転送処理時
間の短縮化が阻害される。そこで、上記のようにマイク
ロプロセッシングユニットの負荷に応じてインターバル
タイムを制御することにより、このインターバルタイム
の適正化を図ることができる。
【0017】〔5〕複数のデータバッファと、上記デー
タバッファに対応して形成され、上記データバッファの
属性情報を有すると共にポインタ情報によって連鎖可能
にされた複数のディスクリプタと、上記ディスクリプタ
を順次参照しながらデータのチェインブロック転送を制
御可能なDMA制御部と、上記ディスクリプタの書き換
えを可能とするマイクロプロセッシングユニットとを含
んで通信制御装置が構成されるとき、上記ディスクリプ
タは、次にアクセスされるディスクリプタのスタートア
ドレスが設定される第1ポインタと、そのディスクリプ
タに属するデータバッファのスタートアドレスが設定さ
れる第2ポインタと、上記DMA制御部によって一度ア
クセスされてから上記マイクロプロセッシングユニット
によって書き換えられるまでは、上記DMA制御回路の
再アクセスが禁止されるフラグとを含み、DMA制御部
は、上記ディスクリプタにおける上記フラグの論理状態
に基づくポーリングが行われるとき、そのポーリングの
終了後に当該ディスクリプタを再リードするための制御
回路を含む。
【0018】上記の手段によれば、上記ディスクリプタ
における上記フラグの論理状態に基づいて上記DMA制
御部によりポーリングが行われ、ポーリングの終了後に
そのディスクリプタにおける第1ポインタ及び第2ポイ
ンタが上記DMA制御部により再リードされ、上記ポー
リングが終了する前に当該ディスクリプタの内容が更新
されることにより、ポーリング直後において、前回アク
セスしたものと異なるデータバッファのアクセスが可能
とされる。また、上記ポーリングが終了する前に当該デ
ィスクリプタの内容を更新することにより、ポーリング
直後に異なるチェイン列に変更可能であり、その際に、
チェインブロック転送が停止されたディスクリプタの次
のディスクリプタで別のチェイン列を指定する方式に比
べてオーバーヘッドの低減を図ることができる。
【0019】〔6〕複数のデータバッファと、上記デー
タバッファに対応して形成され、上記データバッファの
属性情報を有すると共にポインタ情報によって連鎖可能
にされた複数のディスクリプタと、上記ディスクリプタ
を順次参照しながらデータのチェインブロック転送を制
御可能なDMA制御部と、上記ディスクリプタの書き換
えを可能とするマイクロプロセッシングユニットとを含
んで通信制御装置が構成されるとき、上記ディスクリプ
タは、次にアクセスされるディスクリプタのスタートア
ドレスが設定される第1ポインタと、そのディスクリプ
タに属するデータバッファのスタートアドレスが設定さ
れる第2ポインタと、上記DMA制御部によって一度ア
クセスされてから上記マイクロプロセッシングユニット
によって書き換えられるまでは、上記DMA制御回路の
再アクセスが禁止されるフラグと、再リード処理を有効
にするか否かが設定される選択ビットとを含み、上記D
MA制御部は、上記選択ビットによって上記再リード処
理が有効とされ、且つ、上記ディスクリプタにおける上
記フラグの論理状態に基づくポーリングが行われると
き、そのポーリングの終了後に当該ディスクリプタを再
リードするための制御回路を含む。
【0020】上記の手段によれば、選択ビットによっ
て、再リード処理を有効とされる場合に、上記ディスク
リプタにおける上記フラグの論理状態に基づいて上記D
MA制御部によりポーリングが行われ、ポーリングの終
了後にそのディスクリプタにおける第1ポインタ及び第
2ポインタが上記DMA制御部により再リードされ、上
記ポーリングが終了する前に当該ディスクリプタの内容
が更新されることにより、ポーリング直後において、前
回アクセスしたものと異なるデータバッファのアクセス
が可能とされる。また、そのとき上記ポーリングが終了
する前に当該ディスクリプタの内容を更新することによ
り、ポーリング直後に異なるチェイン列に変更可能であ
り、その際に、チェインブロック転送が停止されたディ
スクリプタの次のディスクリプタで別のチェイン列を指
定する方式に比べてオーバーヘッドの低減を図ることが
できる。
【0021】〔7〕複数のデータバッファと、上記デー
タバッファに対応して形成され、上記データバッファの
属性情報を有すると共にポインタ情報によって連鎖可能
にされた複数のディスクリプタと、上記ディスクリプタ
を順次参照しながらデータのチェインブロック転送を制
御可能なDMA制御部と、上記ディスクリプタの書き換
えを可能とするマイクロプロセッシングユニットとを含
んで通信制御装置が構成されるとき、上記ディスクリプ
タは、次にアクセスされるディスクリプタのスタートア
ドレスが設定される第1ポインタと、そのディスクリプ
タに属するデータバッファのスタートアドレスが設定さ
れる第2ポインタと、上記DMA制御部によって一度ア
クセスされてから上記マイクロプロセッシングユニット
によって書き換えられるまでは、上記DMA制御回路の
再アクセスが禁止されるフラグとを含み、DMA制御部
は、上記ディスクリプタの所望アドレスを退避可能なレ
ジスタと、上記ディスクリプタにおける所定フラグの論
理状態に基づいてポーリングが行われるとき、そのポー
リングが終了後に、上記レジスタの保持情報に基づいて
当該ディスクリプタを再リードするための制御回路とを
含む。
【0022】上記の手段によれば、DMA制御部は、上
記ディスクリプタの先頭アドレスを退避しておくための
レジスタが設けられることにより、上記ディスクリプタ
における所定フラグの論理状態に基づいてポーリングが
行われるとき、そのポーリングが終了後に、上記レジス
タの保持情報に基づいて当該ディスクリプタの先頭アド
レスから再リードすることができるので、上記ポーリン
グが終了する前に当該ディスクリプタの内容を更新する
ことにより、ポーリング直後において、前回アクセスし
たものと異なるデータバッファのアクセスが可能とされ
る。また、そのとき上記ポーリングが終了する前に当該
ディスクリプタの内容を更新することにより、ポーリン
グ直後に異なるチェイン列に変更可能であり、その際
に、チェインブロック転送が停止されたディスクリプタ
の次のディスクリプタで別のチェイン列を指定する方式
に比べてオーバーヘッドの低減を図ることができる。
【0023】〔8〕複数のデータバッファと、上記デー
タバッファに対応して形成され、上記データバッファの
属性情報を有すると共にポインタ情報によって連鎖可能
にされた複数のディスクリプタと、上記ディスクリプタ
を順次参照しながらデータのチェインブロック転送を制
御可能なDMA制御部と、上記ディスクリプタの書き換
えを可能とするマイクロプロセッシングユニットとを含
んで通信制御装置が構成されるとき、上記ディスクリプ
タは、上記DMA制御部が一度アクセスしたディスクリ
プタを上記マイクロプロセッシングユニットが書き換え
る前に再アクセスしないためのフラグに基づいて行われ
る処理を有効にするか否かを設定するための機能選択用
ビットを含み、DMA制御部は、上記ディスクリプタの
所望アドレスを退避しておくためのレジスタと、上記機
能選択用ビットによって上記処理が有効とされる場合の
上記ディスクリプタにおける上記フラグの論理状態に基
づくポーリングが行われるとき、そのポーリングの終了
後に、上記レジスタの保持情報に基づいて当該ディスク
リプタを再リードするための制御回路とを含む。
【0024】上記の手段によれば、上記DMA制御部が
一度アクセスしたディスクリプタを上記マイクロプロセ
ッシングユニットが書き換える前に再アクセスしないた
めのフラグに基づいて行われる処理を有効にするか否か
を設定するための選択ビットを含み、この機能選択用ビ
ットによって上記処理が有効とされる場合に、ポーリン
グの後にレジスタの保持情報に基づいて当該ディスクリ
プタの先頭アドレスから再リードされるようになってい
るため、必要に応じて上記処理を選択することができる
ので、使い勝手の向上を図ることができる。
【0025】
〔9〕複数のデータバッファと、上記デー
タバッファに対応して形成され、上記データバッファの
属性情報を有すると共にポインタ情報によって連鎖可能
にされた複数のディスクリプタと、上記ディスクリプタ
を順次参照しながらデータのチェインブロック転送を制
御可能なDMA制御部と、上記ディスクリプタの書き換
えを可能とするマイクロプロセッシングユニットとを含
んで通信制御装置が構成されるとき、上記ディスクリプ
タは、上記DMA制御部によって一度アクセスされてか
ら上記マイクロプロセッシングユニットによって書き換
えられるまでは、上記DMA制御回路の再アクセスが禁
止されるフラグを有するステータスが、上記ディスクリ
プタのスタートアドレスに配置され、上記ステータスの
後には、次にアクセスされるディスクリプタのスタート
アドレスが設定される第1ポインタと、そのディスクリ
プタに属するデータバッファのスタートアドレスが設定
される第2ポインタとが配置され、上記DMA制御部
は、上記ディスクリプタにおける上記フラグの論理状態
に基づくポーリングが行われるとき、そのポーリングの
終了後に、上記第1ポインタから順に当該ディスクリプ
タをリードするための制御回路を含む。
【0026】上記の手段によれば、ステータスの後に第
1ポインタ及び第2ポインタが配置される構成が採用さ
れることにより、上記ディスクリプタにおける上記フラ
グの論理状態に基づくポーリングの終了後に、上記第1
ポインタから順に当該ディスクリプタがリードされる。
例えば別のチェイン列に変更したい場合には、ステータ
スにおける上記フラグに基づいてでポーリングが行われ
る期間中に、マイクロプロセッシングユニットによっ
て、上記第1ポインタや、上記第2ポインタなどを別の
チェイン列の情報に書き換えれば良い。それによれば、
ステータスにおける上記フラグの論理状態に基づくポー
リングが終了された後には、ステータスの後に配置され
ている上記第1ポインタや上記第2ポインタが順にリー
ドされ、このリードにより別のチェイン列への変更が可
能とされるため、上記ディスクリプタの再リードは不要
とされる。
【0027】〔10〕上記DMA制御部に、上記マイク
ロプロセッシングユニットの負荷に応じて上記ポーリン
グのインターバルタイムを制御するためのインターバル
タム調整回路を含めることができる。その場合には、上
記のようにマイクロプロセッシングユニットの負荷に応
じてインターバルタイムを制御することにより、このイ
ンターバルタイムの適正化を図ることができる。
【0028】〔11〕上記ディスクリプタと上記DMA
制御部とは、互いに共通の半導体チップに形成し、上記
データバッファは、上記ディスクリプタとは異なる半導
体チップに形成することができる。このとき、上記DM
A制御部は、半導体チップ内のバスを介してディスクリ
プタをアクセスすることができるから、ディスクリプタ
リードの高速化を図ることができる。
【0029】
【発明の実施の形態】図1には、本発明にかかる通信制
御装置の一例であるルータが示される。このルータ10
0は、特に制限されないが、それぞれ公知の半導体集積
回路製造技術により単結晶シリコン基板などの一つの半
導体基板に形成されたMPU(マイクロプロセッシング
ユニット)101、シリアル制御装置102,103、
RAM(ランダムアクセスメモリ)105、フラッシュ
メモリ106、及びROM(リードオンリメモリ)10
7を含み、それらが共通のバス104によって相互に結
合されている。
【0030】MPU101は、ROM107上に格納さ
れた制御プログラム114を読み込み、そこに書かれた
手順に従って制御を行う。制御プログラムが書かれる場
所は、ROM107以外でなくともよい。例えばフラッ
シュメモリ上や、RAM105上に書かれてもよく、メ
モリの種類には依存しない。
【0031】MPU101は、制御プログラム114に
従い、シリアル制御装置A、シリアル制御装置Bのレジ
スタの初期化、割込み処理、DMA制御を行う。本例で
は、シリアル制御装置は2個であるが、2個以外の数量
であってもよい。
【0032】また、MPU101は、制御プログラム1
14に従い、受送信データの処理を行い、フラッシュメ
モリ106上のルーティングテーブル113を参照しな
がらフレームを処理し、目的の局に処理されたフレーム
を、シリアル制御装置102又は103を介して送信す
る。ここで目的の局とは、本例には図示されていない
が、回線を介して接続される他の通信システムを指す。
本例では、ルーティングテーブル113をフラッシュメ
モリ106に形成しているが、制御プログラムあるいは
データエリアと同じメモリ、又はその他のメモリに形成
してもよい。
【0033】シリアル回線A上のデータをシリアル制御
装置102で受信し、回線A用受信データエリア109
に格納する。シリアル制御装置102は、シリアル回線
A上のフレームを認識し、プロトコル処理を行ってデー
タを分離する。分離された該データを内蔵されたDMA
Cを使用して回線A用受信データエリア109に格納さ
れる。データが回線A用受信データエリア109に格納
されると、MPU101は、該データを解析し、ルーテ
ィングテーブル113に従って、宛先アドレスに対応す
る必要な処理を行う。この処理は、ワークエリア112
で行われるが、直接回線A用受信データエリア109上
で行ってもよい。このデータの必要な処理を加え終わる
と、MPU101は、該データを回線B用送信データエ
リア110に格納して、シリアル制御装置103を設定
して送信させる。シリアル制御装置103は、内蔵DM
ACを使用して回線B用送信データエリア110上の該
データを取り込み、プロトコル処理を施してフレームに
組み立て、それをシリアル回線Bに送信する。
【0034】シリアル回線B上のデータをシリアル制御
装置103で受信し、回線B用受信データエリア111
に格納する。シリアル制御装置103は、シリアル回線
B上のフレームを認識し、プロトコル処理を行ってデー
タを分離する。分離された該データは内蔵されたDMA
Cを使用して回線B用受信データエリア111に格納さ
れる。データが回線B用受信データエリア111に格納
されると、MPU101は、そのデータを解析し、ルー
ティングテーブル113に従って、宛先アドレスに対応
する必要な処理を行う。この処理は、通常はワークエリ
ア112で行われるが、直接回線B用受信データエリア
上で行ってもよい。上記データに必要な処理を加え終わ
ると、MPU101は、このデータを回線A用送信デー
タエリア108に格納し、シリアル制御装置102を設
定して送信させる。シリアル制御装置102は、内蔵D
MACを使用して回線A用送信データエリア108上の
データを取り込み、プロトコル処理を施し、フレームに
組み立て、それをシリアル回線Aに送信する。
【0035】上記回線A用送信データエリア108、上
記回線A用受信データエリア109、上記回線B用送信
データエリア110、及び上記回線B用受信データエリ
ア111には、特に制限されないが、図5に示されるよ
うに、それぞれチェインブロック転送モードにおいて送
信データ又は受信データを格納するための複数のデータ
バッファ505〜508が形成される。このデータバッ
ファ505〜508には、その属性情報を有すると共に
ポインタ情報によって連鎖可能にされたディスクリプタ
515〜518が付加されており、このディスクリプタ
515〜518によって上記複数のデータバッファ50
5〜508のアクセスが可能とされる。
【0036】上記回線A用送信データエリア108と上
記回線B用送信データエリア110とが同一構成とさ
れ、上記回線A用受信データエリア109と上記回線B
用受信データエリア111とが同一構成とされるため、
ここでは、上記回線A用送信データエリア108と上記
回線A用受信データエリア109におけるディスクリプ
タについて説明する。
【0037】図8には上記回線A用送信データエリア1
08における複数のディスクリプタのうちの一つが示さ
れる。
【0038】図8に示されるように送信用ディスクリプ
タ81は、特に制限されないが、チェインポインタ(C
P)、バッファポインタ(BP)、データ長(DL)、
ステータス(ST)を含んで成る。
【0039】チェインポインタ(CP)は、特に制限さ
れないが、32ビット構成とされ、次のディスクリプタ
のスタートアドレス32ビットが初期設定される。バッ
ファ切換え時にチェインポインタ(CP)の設定値がカ
レント・ディスクリプタ・アドレス・レジスタにロード
される。
【0040】バッファポインタ(BP)は、特に制限さ
れないが、32ビット構成とされ、当該ディスクリプタ
に属するバッファのスタートアドレスが初期設定され
る。転送開始又はバッファ切換え時にバッファポインタ
の初期値がバッファ・アドレス・レジスタにロードされ
る。
【0041】データ長(DL)は、特に制限されない
が、16ビット構成とされ、当該ディスクリプタに属す
るバッファ内のデータ長がバイト数で初期設定される。
転送開始又はバッファ切換え時にデータ長の設定値がバ
イト・カウンタ・レジスタにロードされる。
【0042】ステータス(ST)は、特に制限されない
が、8ビット構成とされ、当該ディスクリプタに属する
バッファ内のデータのフレーム転送終了指定、及び転送
終了指定が可能とされる。このステータス(ST)は、
送信時にはMPU101によって管理され、MPU10
1によって初期設定される。特に制限されないが、8ビ
ット構成におけるステータス(ST)の7ビット目、3
ビット目、1ビット目、及び0ビット目は、それぞれE
OM、UDR、OSB、及びEOTとされる。
【0043】EOMは、当該ディスクリプタに属するバ
ッファ内に、フレームの末尾があるか否かを指定するビ
ットとされる。このビットはMPU101によって予め
セットされる。特に制限されないが、EOMが論理値
“0”の場合には、当該ディスクリプタに属するバッフ
ァ内にフレームの末尾が無いことを示し、EOMが論理
値“1”の場合には、当該ディスクリプタに属するバッ
ファ内にフレームの末尾があることを示している。
【0044】UDRは、当該ディスクリプタに属するバ
ッファがアンダーラン・フレームの一部であることを示
している。このビットはアンダーランが発生した場合
に、後述する送信DMACによってライトされる。特に
制限されないが、UDRが論理値“0”の場合には、当
該ディスクリプタに属するバッファが正常なフレームで
あることを示し、UDRが論理値“1”の場合には、当
該ディスクリプタに属するバッファがアンダーラン・フ
レームの一部であることを示している。送信中にアンダ
ーランが発生すると、そのときに転送されていたフレー
ムはアンダーラン・フレームとされる。
【0045】OSBは、後述する送信DMACが一度ア
クセスしたディスクリプタをMPU101が書き換える
前に再アクセスしないためのフラグとされる。特に制限
されないが、OSBが論理値“0”の場合には、当該デ
ィスクリプタに属するバッファは転送許可状態とされ、
OSBが論理値“1”の場合には、当該ディスクリプタ
に属するバッファは転送禁止状態とされる。
【0046】EOTは、複数フレーム転送時に、当該デ
ィスクリプタに属するバッファ内のデータを転送後、転
送終了とするか否かを指定するビットとされ、予めMP
U101によって設定される。特に制限されないが、E
OTが論理値“0”の場合には、当該ディスクリプタに
属するバッファ内のデータを転送後、転送終了としない
ことが指定される。また、EOTが論理値“1”の場合
には、当該ディスクリプタに属するバッファ内のデータ
を転送後、転送終了とすることが指定される。
【0047】図9には上記回線A用受信データエリア1
09における複数のディスクリプタのうちの一つが示さ
れる。
【0048】図9に示されるように受信用ディスクリプ
タ91は、特に制限されないが、チェインポインタ(C
P)、バッファポインタ(BP)、データ長(DL)、
ステータス(ST)を含んで成る。
【0049】チェインポインタ(CP)は、特に制限さ
れないが、32ビット構成とされ、次のディスクリプタ
のスタートアドレス32ビットが初期設定される。バッ
ファ切換え時にチェインポインタ(CP)の設定値がカ
レント・ディスクリプタ・アドレス・レジスタにロード
される。
【0050】バッファポインタ(BP)は、特に制限さ
れないが、32ビット構成とされ、当該ディスクリプタ
に属するバッファのスタートアドレスが初期設定され
る。転送開始又はバッファ切換え時にバッファポインタ
の初期値がバッファ・アドレス・レジスタにロードされ
る。
【0051】データ長(DL)は、特に制限されない
が、16ビット構成とされ、当該ディスクリプタに属す
るバッファ内のデータ長がバイト数で初期設定される。
チェインブロック転送モード(受信)時には、後述する
受信DMACにより管理され、受信データがバッファに
ライトされた後、そのバッファにライトしたデータのバ
イト数が後述する受信DMACにより書き込まれる。
【0052】ステータス(ST)は、特に制限されない
が、8ビット構成とされ、当該ディスクリプタに属する
バッファ内のデータのステータスがセットされる。チェ
インブロック転送モード(受信)時には後述する受信D
MACにより管理され、受信データがバッファにライト
された後、そのバッファにライトしたデータのステータ
スが、後述する受信DMACにより書き込まれる。この
ステータス(ST)は特に制限されないが、8ビット構
成におけるステータス(ST)の7ビット目、1ビット
目は、それぞれEOM、OSBとされる。EOMは当該
ディスクリプタに属するバッファ内に、フレームの末尾
があるか否かを指定するためのビットとされる。特に制
限されないが、EOMが論理値“0”の場合、当該ディ
スクリプタに属するバッファ内にフレームの末尾が無い
ことを指定し、EOMが論理値“1”の場合、当該ディ
スクリプタに属するバッファ内にフレームの末尾がある
ことを指定する。また、OSBは、後述する受信DMA
Cが一度アクセスしたディスクリプタをMPU101が
書き換える前に再アクセスしないためのフラグとされ
る。特に制限されないが、このOSBが論理値“0”の
場合、当該ディスクリプタに属するバッファは転送許可
状態とされるが、OSBが論理値“1”の場合には当該
ディスクリプタに属するバッファは転送禁止状態とされ
る。
【0053】図2には、シリアル制御装置102,10
3の構成例が示される。シリアル制御装置102,10
3は互いに同一構成とされる。
【0054】シリアル回線上の受信データ237は、受
信クロック242に同期して受信制御部211にて受信
され、プロトコル処理を受けてデータが取り出され、パ
ラレル形式に変換される。本例では、受信クロックを回
線より受けているが、回線から受信クロックが供給され
ない場合でも、DPLL(Digital Phase Locked Loop)
等でクロック成分を抽出することにより、受信データ2
37の受信が可能である。
【0055】パラレル形式に変換されたデータは、受信
データ215として受信FIFO212に出力される。
【0056】受信制御部211は、受信データ(パラレ
ル)215及び受信ステータス信号252を出力すると
同時にライトストローブ信号216を出力する。
【0057】受信ステータス信号252は、受信制御部
211で生成され、CRC(Cyclicredundancy check;
巡回冗長検査)エラー、オーバランエラー、フレーミン
グエラー、端数ビットエラー、アボートフレームエラ
ー、フレーム終了(EOM)が含まれるが、これらすべ
てが含まなくてもよいし、これら以外のステータスを含
んでもよい。
【0058】受信FIFO制御部213は、ライトスト
ローブ信号216を入力し、これと同期して受信FIF
O制御信号214を制御し、受信FIFO212に受信
データ215及び受信ステータス信号252を格納させ
る。
【0059】受信FIFO212は、ファーストインフ
ァーストアウトメモリであり、8ビット単位で受信デー
タ(パラレル)215を格納していき、格納された順に
データバス234に出力していく。格納のタイミング及
び出力のタイミングは、受信FIFO制御信号214に
より与えられる。データバス234に出力される単位
は、1バイトからバス幅の最大まで可変であり、1アク
セス毎に受信FIFO制御信号214により大きさが制
御される。例えば、データバス幅が32ビットであれ
ば、出力される単位は1バイトから4バイトまで可変で
あるが、データバス幅が32ビット以外であってもなん
らさしつかえない。
【0060】受信FIFO212は、入力された受信ス
テータス信号252を同時に入力された受信データ21
5と同じ位置に格納する。
【0061】受信FIFO制御部213は、受信DMA
C202より受信FIFOアクセス信号218を受け取
り、受信FIFO212の出力動作の制御を行う。受信
FIFO218には、出力タイミングを与えるストロー
ブ及び出力するバイト数を決める信号が含まれる。
【0062】受信FIFO制御部213からは、受信F
IFO情報217が受信DMAC202に対して出力さ
れる。受信FIFO情報217には、受信FIFO21
2中に格納されているデータバイト数、フレーム最終デ
ータの位置が含まれる。上記データバイト数は、受信F
IFOアクセス信号218とライトストローブ信号21
6によるカウンタのアップダウンにより求められる。上
記フレーム最終データの位置は、受信FIFOステータ
ス信号253から求められる。
【0063】本例には図示されていないが、受信FIF
O212に格納された受信ステータス信号252は、M
PU101又はDMAC202からのアクセスによって
外部に読み出されるか、又はRAM105内に書き込ま
れるようにしてもよい。
【0064】受信DMAC202は、受信FIFO情報
217によりDMA動作を開始し、DMA転送を行う。
受信FIFO情報217に含まれるデータバイト数が既
定値より大きくなるとDMA動作を開始する。また、デ
ータバイト数がゼロになるとDMA動作を一旦停止す
る。
【0065】受信DMAC202は、受信FIFO情報
217に含まれる該データバイト数及び該フレーム最終
データの位置により、次のDMA転送が何バイト可能か
判断する。また、フレーム最終データを転送した後、D
MA終了動作を行うか、次のフレームの転送を準備す
る。
【0066】受信DMAC202が動作を開始すると、
先ず受信DMAバス要求信号232がアサートされる。
受信DMAバス要求信号232は、バス調停制御部22
7に入力され、バス調停制御部227は、外部バス要求
信号228をアサートする。
【0067】外部バス要求信号232がアサートされる
と、ここでは図示されていない外部のバス調停回路で調
停され、他のデバイスがバスを使用中でないなら外部バ
スアクノレッジ信号229が返される。
【0068】バス調停制御部227に外部バスアクノレ
ッジ信号229が入力されると、バス調停制御部227
は調停を行い、バス要求のあるDMAC201,202
のうち最も優先順位の高いDMACに対しバスアクノレ
ッジ信号を返す。本例では、DMACの数は2個である
が、1個でもよいし、これより多くてもよい。
【0069】例えば受信DMAC202の優先順位が最
も高い場合、バス調停制御部227は、受信DMAバス
アクノレッジ信号233をアサートする。
【0070】受信DMAC202では、受信DMAバス
アクノレッジ信号233がアサートされている期間だけ
DMA動作が可能とされる。DMA動作の途中で受信D
MAバスアクノレッジ信号233がネゲートされた場
合、受信DMAC202は、次に動作停止可能な時点で
DMA動作を停止する。
【0071】受信DMAC202がDMA動作を開始す
ると、先ずここには図示されていない外部メモリとの間
でディスクリプタアクセスを行う。このディスクリプタ
アクセスにより、受信DMAC202は必要なDMA情
報を得る。必要なDMA情報には、次のディスクリプタ
の先頭アドレス、受信データをメモリ上に格納するバッ
ファの先頭アドレス、及びディスクリプタステータスで
ある。ディスクリプタステータスには、オーナーシップ
ビット等が含まれる。
【0072】受信DMAC202は、ディスクリプタア
クセスをするとき、受信DMAアドレスバス制御信号2
26を出力し、アドレスバス制御部220を制御し、内
部アドレスバス235に出力したディスクリプタアドレ
ス信号を外部アドレスバス222に出力する。同時に受
信DMAデータバス制御信号225を出力し、データバ
ス制御部219を制御し、外部データバス221上のデ
ータを内部データバス234に載せ、受信DMAC20
2内部に取り込んだり、受信DMAC202から内部デ
ータバス234に出力したデータを外部データバス22
1に出力したりする。
【0073】受信DMAC202は、ディスクリプタア
クセスを終えると、受信データのDMA転送を行う。
【0074】受信DMAC202がDMA転送を行うと
き、受信DMAアドレスバス制御信号226を出力し、
アドレスバス制御部220を制御し、内部アドレスバス
235に出力した受信データを格納すべきアドレス信号
を外部アドレスバス222に出力する。同時に受信FI
FOアクセス信号218を出力して受信FIFO212
からの受信データを内部データバス234に載せ、受信
DMAデータバス制御信号225を出力してデータバス
制御部219を制御し、内部データバス234上の該受
信データを外部データバス221に出力する。
【0075】受信DMAC202は、フレーム最終デー
タを転送した後、ディスクリプタにこれまで転送したデ
ータ数及びステータスを書き込む。これまで転送したデ
ータ数は受信DMAC202に内蔵したカウンタによ
る。ステータスは、受信FIFO中212中に格納され
た受信ステータス信号252の出力に受信DMAC20
2が出力するステータスを加えたものである。受信DM
AC202が出力する該ステータスには、オーナーシッ
プビット(OSB)及びフレーム転送終了ビット(EO
M)があるが、これらすべてを備えてもよいし、どれか
ひとつでもよいし、それがなくてもよい。
【0076】シリアル回線上の送信データ236は、送
信クロック241に同期して送信制御部203にて送信
される。本例では、送信クロックを回線より受けている
が、回線から受信クロックが供給されない場合でも、内
蔵BGR(Baud Rate Generator)でクロックを生成する
ことにより、送信データ236の送信が可能である。ま
た、受信クロック242を送信クロックに用いてもよ
い。
【0077】送信制御部203から送信されるデータ
は、送信FIFO204より送信データ(パラレル)2
07として入力される。
【0078】送信データ(パラレル)207を送信制御
部203で取り込むタイミングはリードストローブ信号
208で与えられ、リードストローブ信号208は送信
制御部203で生成される。
【0079】送信FIFO制御部205は、送信FIF
O制御信号206を出力し、送信FIFO204を制御
する。
【0080】送信FIFO制御部205は、送信FIF
O情報209を送信DMAC201に対して出力する。
送信FIFO情報209には、送信FIFO内データ
数、送信DMA要求、アンダーランステータスが含まれ
る。
【0081】該送信FIFO内データ数は、送信FIF
O制御部205内のカウンタを送信FIFOアクセス信
号210により送信FIFO204に書き込まれたデー
タバイト数を加算し、リードストローブ信号208によ
り送信FIFO204から読み出されたデータ数を減算
して求める。該送信DMA要求は、送信FIFO内のデ
ータバイト数が予め設定されているDMA要求閾値以下
であればアサートされ、同じく予め設定されているDM
A要求取り下げ閾値以上になるとネゲートされる。アン
ダーランステータスは、送信FIFO204内にデータ
がないにもかかわらずリードストローブ信号208がア
サートされたときに出力される。
【0082】アンダーランステータスは、送信FIFO
情報209として送信DMAC201に出力されると同
時に、送信アンダーランステータス信号251として送
信制御部203にも出力される。
【0083】送信制御部203は、送信アンダーランス
テータス信号251がアサートされるとアンダーラン処
理を行う。ここでアンダーラン処理とは、フレームの送
信を中止し、すべて論理値“1”のアボートシーケンス
を出力するか、通常のフレーム終了処理を指す。また、
とくにアンダーラン処理を行わなくてもよい。
【0084】送信FIFO204は、ファーストインフ
ァーストアウトメモリであり、内部データバス234か
らデータを取りいれて格納し、格納した順に送信データ
(パラレル)207として送信制御部203に送り出
す。
【0085】送信FIFO204にデータを取り込むタ
イミングは、送信FIFO制御信号206で与え、ま
た、送信FIFO制御信号206には、内部データバス
234から取り込むデータのバイト数も与えられる。取
り込むデータのバイト数は、1バイトから内部データバ
ス234の幅までバイト単位で取り得る。もし、内部デ
ータバス234の幅が32ビットであるなら、1バイト
から4バイトまで取り得る。もちろん、内部データバス
幅が32ビット以外であっても同様である。
【0086】送信FIFO204からデータを取り出す
タイミングは、リードストローブ信号208で与えら
れ、取り出される単位は常に1バイト(8ビット)であ
る。
【0087】リードストローブ信号208は、送信FI
FO制御部205で処理され、送信FIFO制御信号2
06のなかに含まれるかたちで送信FIFO204から
データを取り出すストローブを与える。
【0088】送信FIFO制御信号206には、内部デ
ータバス234からフレームの最終データを読み込むと
きに同期して出力される送信コマンドが含まれる。送信
コマンドは、送信FIFOアクセス信号210に含ま
れ、取り込まれたデータがフレームの最終データである
ことを示す。該送信コマンドは、フレーム最終データに
付随し、フレーム最終データが送信データ(パラレル)
207に出力されるのと同時に、送信コマンド信号25
0として出力される。
【0089】送信制御部203は、送信コマンド信号2
50が出力されているときに入力された送信データ20
7をフレームの最終データとみなし、このデータを送出
後、フレーム終了処理を行う。該フレーム終了処理と
は、フレーム最終データのあとにフレームチェックシー
ケンス及びクロージングフラグを付けることを意味する
が、フレームチェックシーケンスをつけなくてもよい。
【0090】送信FIFO情報209の送信DMA要求
が出力されると、送信DMAC201は動作を開始し、
DMA転送を行う。また、該送信DMA要求が出力され
なくなると、DMA転送を停止する。
【0091】送信DMAC201は、送信FIFO情報
209に含まれるデータバイト数により、次のDMA転
送が何バイト可能か判断する。また、フレーム最終デー
タを転送したのちDMA終了動作を行うか、次のフレー
ムの転送を準備する。
【0092】送信DMAC201が動作を開始すると、
先ず送信DMAバス要求信号230がアサートされる。
送信DMAバス要求信号230は、バス調停制御部22
7に入力され、バス調停制御部227によって、外部バ
ス要求信号232がアサートされる。
【0093】外部バス要求信号232がアサートされる
と、ここでは図示されていない外部のバス調停回路で調
停され、他のデバイスがバスを使用中でないなら外部バ
スアクノレッジ信号229が返される。
【0094】外部バスアクノレッジ信号229がアサー
トされると、バス調停制御部227はバス調停を行い、
バス要求のあるDMACのうち最も優先順位の高いDM
ACに対しバスアクノレッジ信号を返す。本例では、D
MACの数は2個であるが(201,202)、1個で
もよいし、これより多くてもよい。
【0095】送信DMAC201の優先順位が最も高い
場合、バス調停制御部227は、送信DMAバスアクノ
レッジ信号231をアサートする。
【0096】送信DMAC201は、送信DMAバスア
クノレッジ信号231が入力されている期間だけDMA
動作可能とされる。このDMA動作の途中で送信DMA
バスアクノレッジ信号231がネゲートされた場合に
は、送信DMAC201は、次に動作停止可能な時点で
DMA動作を停止する。
【0097】送信DMAC201がDMA動作を開始す
ると、先ず、図示されていない外部メモリとの間でディ
スクリプタアクセスを行う。このディスクリプタアクセ
スにより、送信DMAC201は必要なDMA情報を得
る。必要なDMA情報には、次のディスクリプタの先頭
アドレス、受信データをメモリ上に格納するバッファの
先頭アドレス、バッファデータ数及びディスクリプタス
テータスが含まれる。ディスクリプタステータス(S
T)には、オーナーシップビット(OSB)、フレーム
転送終了ビット(EOM)、転送終了ビット(EOT)
が含まれる。
【0098】ディスクリプタステータスにEOMが含ま
れていた場合、送信DMAC201は、当該データバッ
ファをフレームの最終とみなし、当該データバッファの
最終データを送信FIFO204に格納する際、送信F
IFOアクセス信号210の送信コマンドを出力する。
【0099】ディスクリプタステータスにEOMが含ま
れていた場合、送信DMAC201は、当該データバッ
ファの最終データを転送し、ディスクリプタのステータ
スへのアクセスが終わると、動作を停止する。
【0100】ここでバッファデータ数とは、当該データ
バッファで転送可能なデータバイト数を示す。
【0101】送信DMAC201は、ディスクリプタア
クセスをする際に、送信DMAアドレスバス制御信号2
24により、アドレスバス制御部220を制御して、内
部アドレスバス235に出力したディスクリプタアドレ
ス信号を外部アドレスバス222に送出する。同時に送
信DMAデータバス制御信号223により、データバス
制御部219を制御して、外部データバス221上のデ
ータを内部データバス234に載せることによって、送
信DMAC201の内部に取り込んだり、送信DMAC
201から内部データバス234に出力したデータを外
部データバス221に送出したりする。
【0102】送信DMAC201は、ディスクリプタア
クセスを終えると、送信データのDMA転送を行う。
【0103】送信DMAC201がDMA転送を行うと
き、送信DMAアドレスバス制御信号224により、ア
ドレスバス制御部220を制御して、内部アドレスバス
235に出力した送信データを読み出すべきアドレス信
号を外部アドレスバス222に送出する。同時に送信F
IFOアクセス信号210により送信FIFO制御部2
05を制御して受信FIFO212からの受信データを
内部データバス234に載せ、送信DMAデータバス制
御信号223を出力してデータバス制御部219を制御
して、外部データバス221上のデータを内部データバ
ス234に載せる。また、送信DMAC201は、送信
FIFOアクセス信号210により、内部データバス2
34上の送信データを送信FIFO204に取り込む。
【0104】送信DMAC201は、ディスクリプタに
書かれていたバッファデータ数と同じ数のデータを転送
した後、ディスクリプタにステータスを書き込む。この
ステータスには、オーナーシップビット及びアンダーラ
ンステータスが含まれる。
【0105】もし、ディスクリプタにEOTが書かれて
いたなら、ここで送信DMAC201は動作を停止す
る。EOTが書かれていないのであれば、送信DMAC
201は、次ぎのディスクリプタのアクセスを開始す
る。
【0106】図3には、送信DMAC201の構成例が
示される。
【0107】送送信状態遷移制御回路300が設けら
れ、この送信状態遷移制御回路300は、送信DMAC
201の状態遷移を制御する。送信状態遷移制御回路3
00は、例えばシステムクロック302に同期して送信
ステートコード301、送信DMAバスアクノレッジ信
号303、送信FIFO情報304、送信ステータスリ
ードバス309及び送信BCR加算結果出力バス354
をイベントとして取り込み、次ステートの送信ステート
コード301、送信DMAバス要求信号305、送信F
IFOアクセス信号306、送信データバス制御信号3
07、送信DMAアドレスバス制御信号308、送信ス
テータスライトバス310及び各種レジスタ制御信号を
出力する。
【0108】送信FIFO情報304における送信DM
A要求が入力されると、送信状態遷移制御回路300
は、送信DMAバス要求信号305を出力する。外部の
回路が動作し、やがて送信DMAバスアクノレッジ信号
303が入力されると送信状態遷移制御回路300は、
次ぎのステートに遷移し、ディスクリプタアクセスの制
御を行う。
【0109】先ず、送信状態遷移制御回路300は、デ
ィスクリプタ先頭アドレスからチェインポインタ(C
P)をリードする。予めMPU101は、第1送信CD
A(カレント・ディスクリ・プタアドレス)レジスタ3
13にアドレスを書いておく。このアドレスは、送信D
MAC201が最初にアクセスすべきディスクリプタの
スタートアドレスであり、カレント・ディスクリプタ・
アドレスとされる。例えば、図15に示される例では、
第1送信CDAレジスタ313にディスクリプタ515
のスタートアドレスが保持されている場合、ディスクリ
プタ515がカレントディスクリプタとされ、それが送
信DMAC201によって最初にアクセスされる。MP
U101が第1送信CDAレジスタ313に値を書いて
おくパスは図示されていない。送信状態遷移制御回路3
00は、送信CDAアクセス信号330を制御し、第1
送信CDAレジスタ313の内容を送信アドレスバス3
11に載せ、送信DMAアドレスバス制御信号308を
制御し、外部にアドレス信号を出力する。同時に、送信
DMAデータバス制御信号307を制御し、外部データ
バス221の内容を送信データバス312に載せる。送
信状態遷移制御回路300は、第1送信CDAライトス
トローブ327を出力し、送信データバス312上のデ
ータを第2送信CDAレジスタ314に格納する。
【0110】次に、送信状態遷移制御回路300は、バ
ッファポインタ(BP)をリードする。送信状態遷移制
御回路300は、送信CDA加算値選択信号331を制
御し、送信CDA加算値出力回路318から送信CDA
加算値325を出力させる。このとき、CPが格納され
ているアドレスに送信CDA加算値325を加えた値が
バッファポインタ(BP)の格納されているアドレスに
なるように送信CDA加算値選択信号331が制御され
る。第1送信CDAレジスタ313の値は、常に送信C
DA被加算バス323に載せられている。送信CDA加
算器317は、送信CDA被加算値バス323と送信C
DA加算値325を加算し、その結果を送信CDA加算
結果出力バス326に出力する。CPリード後、送信状
態遷移制御回路300は、送信CDA入力選択信号32
9を制御し、送信CDA入力セレクタ316を介して送
信CDA入力バス322に送信CDA加算結果出力バス
326の内容が載るようにする。同時に送信CDAアク
セス信号330を制御し、第1送信CDAレジスタ31
3に送信CDA入力バス322を格納する。送信状態遷
移制御回路300は、次に送信CDAアクセス信号33
0を制御し、第1送信CDAレジスタ313の内容を送
信アドレスバス311に載せ、送信DMAアドレスバス
制御信号308を制御し、外部にアドレス信号を出力す
る。同時に、送信DMAデータバス制御信号307を制
御し、外部データバスの内容を送信データバス312に
載せる。送信状態遷移制御回路300は、送信BAR入
力選択信号342を制御し、送信BAR入力セレクタ3
33を介して送信BARリードバス336の値が送信B
AR入力バス337に載るようにする。送信状態遷移制
御回路300は、送信BARアクセス信号343を出力
し、送信BAR入力バス337上のデータを送信BAR
レジスタ332に格納する。
【0111】次に、データ長(DL)がリードされる。
送信状態遷移制御回路300は、送信CDA加算値選択
信号331を制御し、送信CDA加算値出力回路318
から送信CDA加算値325を出力させる。このとき、
バッファポインタ(BP)が格納されているアドレスに
送信CDA加算値325を加えた値がデータ長(DL)
の格納されているアドレスになるように送信CDA加算
値選択信号331が制御される。第1送信CDAレジス
タ313の値は、常に送信CDA被加算バス323に載
せられている。送信CDA加算器317は、送信CDA
被加算値バス323と送信CDA加算値325を加算
し、その結果を送信CDA加算結果出力バス326に出
力する。BPリード後、送信状態遷移制御回路300
は、送信CDA入力選択信号329を制御し、送信CD
A入力セレクタ316を介して送信CDA入力バス32
2に送信CDA加算結果出力バス326の内容が載るよ
うにする。同時に送信CDAアクセス信号330を制御
し、第1送信CDAレジスタ313に送信CDA入力バ
ス322を格納する。以上の一連の動作で第1送信CD
Aレジスタ313のインクリメントが行われる。送信状
態遷移制御回路300は、次に送信CDAアクセス信号
330を制御し、第1送信CDAレジスタ313の内容
を送信アドレスバス311に載せ、送信DMAアドレス
バス制御信号308を制御し、外部にアドレス信号を出
力する。同時に、送信DMAデータバス制御信号307
を制御し、外部データバスの内容を送信データバス31
2に載せる。送信状態遷移制御回路300は、送信BC
R入力選択信号355を制御し、送信BCR入力セレク
タ346を介して送信BCRリードバス346の値が送
信BCR入力バス350に載るようにする。送信状態遷
移制御回路300は、送信BCRアクセス信号356を
出力し、送信BCR入力バス350上のデータを送信B
CRレジスタ345に格納する。
【0112】次に、ステータス(ST)がリードされ
る。送信状態遷移制御回路300は、送信CDA加算値
選択信号331を制御し、送信CDA加算値出力回路3
18から送信CDA加算値325を出力させる。このと
き、DLが格納されているアドレスに送信CDA加算値
325を加えた値がステータス(ST)の格納されてい
るアドレスになるように送信CDA加算値選択信号33
1が制御される。第1送信CDAレジスタ313の値
は、常に送信CDA被加算バス323に載せられてい
る。送信CDA加算器317は、送信CDA被加算値バ
ス323と送信CDA加算値325を加算し、その結果
を送信CDA加算結果出力バス326に出力する。DL
リード後、送信状態遷移制御回路300は、送信CDA
入力選択信号329を制御し、送信CDA入力セレクタ
316を介して送信CDA入力バス322に送信CDA
加算結果出力バス326の内容が載るようにする。同時
に送信CDAアクセス信号330を制御し、第1送信C
DAレジスタ313に送信CDA入力バス322を格納
する。以上の一連の動作で第1送信CDAレジスタ31
3のインクリメントが行われる。送信状態遷移制御回路
300は、次に送信CDAアクセス信号330を制御
し、第1送信CDAレジスタ313の内容を送信アドレ
スバス311に載せ、送信DMAアドレスバス制御信号
308を制御し、外部にアドレス信号を出力する。同時
に、送信DMAデータバス制御信号307を制御し、外
部データバスの内容を送信データバス312に載せる。
送信状態遷移制御回路300は、送信ステータスリード
バス309を通してステータス(ST)を取り込む。
【0113】以上でディスクリプタリードを終了する。
【0114】次に、データ転送を行う。送信状態遷移制
御回路300は、送信BARアクセス信号343を制御
し、送信アドレスバス311上に送信BARレジスタ3
32の内容を出力する。同時に送信DMAデータバス制
御信号307及び送信DMAアドレスバス制御信号30
8を出力し、アドレス信号を内部アドレスバス235を
経由し、外部アドレスバス222に出力する。指定され
たアドレスのデータが外部データバス221上に出力さ
れ、同時に内部データバス234に取り込まれる。送信
状態遷移制御回路300は、さらに送信FIFOアクセ
ス信号306を制御し、送信FIFO204に内部デー
タバス234上のデータを格納させる。
【0115】ここでBCRの減算を行う。送信状態遷移
制御回路300は、送信BCR減算値選択信号357を
制御し、転送したデータバイト数と同じ値を送信BCR
減算値出力回路348から送信BCR減算値353とし
て出力させる。送信BCRレジスタ345の値は、常に
送信BCR被減算値バス351に出力されている。送信
BCR減算器347は、送信BCR被減算値バス351
の値から送信BCR減算値353の値を減算し、その結
果を送信BCR減算結果出力バス354に出力する。送
信状態遷移制御回路300は、送信BCR減算結果出力
バス354の値を取り込み、もし値がゼロであるなら、
ディスクリプタステータスライトを行う。
【0116】送信状態遷移制御回路300は、送信CD
Aアクセス信号330を制御し、第1送信CDAレジス
タ313の内容を送信アドレスバス311に載せ、送信
DMAアドレスバス制御信号308を制御し、外部にア
ドレス信号を出力する。ここで、第1送信CDAレジス
タ313の内容は、最後にアクセスしたディスクリプタ
ステータスのアドレス信号を指している。引き続き、送
信状態遷移制御回路300は、送信ステータスライトバ
ス310にステータスを出力し、送信データバス312
に載せる。このときのステータスには、オーナーシップ
ビット(OSB)、フレーム転送終了ビット(EO
M)、転送終了ビット(EOT)、アンダーランステー
タス(UDR)が含まれる。同時に、送信状態遷移制御
回路300は、送信DMAデータバス制御信号307を
制御し、送信データバス312の内容を外部データバス
に出力する。
【0117】送信状態遷移制御回路300は、送信BC
R減算結果出力バス354の値を取り込み、もし値がゼ
ロでないなら次のデータ転送を行う。送信状態遷移制御
回路300は、送信BAR加算値選択信号344を制御
し、前回転送したデータバイト数と同じ値を送信BAR
加算値出力回路335から送信BAR加算値340とし
て出力させる。送信BARレジスタ332の値は、常に
送信BAR被加算値バス338に出力されている。送信
BAR加算器334は、送信BAR被加算値バス338
の値と送信BAR加算値340の値を加算し、その結果
を送信BAR加算結果出力バス341に出力する。送信
状態遷移制御回路300は、送信BAR入力選択信号3
42を制御し、送信BAR入力セレクタ333を介して
送信BAR入力バス337に送信BAR加算結果出力バ
ス341の内容が載るようにする。同時に送信BARア
クセス信号343を制御し、送信BARレジスタ332
に送信BAR入力バス337の値を格納する。以上の一
連の動作で送信BARレジスタ332のインクリメント
が行われる。
【0118】送信状態遷移制御回路300は、以上述べ
たデータ転送と送信BCRレジスタ345の減算及び送
信BARレジスタ332の加算を繰り返し、送信BCR
レジスタ345の値がゼロになるまで続け、ゼロになる
と上記ディスクリプタステータスライトを行う。そし
て、ディスクリプタステータスライトを行った後、次の
ディスクリプタリードを行う。
【0119】送信状態遷移制御回路300は、送信CD
A入力選択信号329を制御し、送信CDA入力セレク
タ316を介して送信CDA入力バス322に第2送信
CDAバス320の値を出力させる。第2送信CDAバ
ス320には、常に第2送信CDAレジスタ314の内
容が出力されている。同時に、送信状態遷移制御回路3
00は、送信CDAアクセス信号330を制御し、第1
送信CDAレジスタ313に送信CDA入力バス322
の値を格納する。
【0120】以下、上記ディスクリプタリードから繰り
返えされる。
【0121】上記ディスクリプタステータスのリードに
おいて、転送終了ビット(EOT)が出力されていた場
合、送信状態遷移制御回路300は、DMA動作を停止
する。
【0122】上記ディスクリプタステータスのリードに
おいて、EOMが出力されていた場合、当該データバッ
ファの最終データを転送する際に、送信FIFOアクセ
ス信号306に、フレーム転送終了(EOM)コマンド
を加える。
【0123】送信BCRレジスタ345の値は、送信B
CR出力バス352を介してMPU101によってリー
ド可能とされる。
【0124】本例には、図示されていないが、同様の手
順により送信BARレジスタ332の値及び第1送信C
DAレジスタ313の値もMPU101によってリード
可能とされる。
【0125】図4には、受信DMAC202の構成例が
示される。
【0126】受信DMAC202における構成及び動作
の概要は送信DMAC201と同様である。ここでは先
ず、受信DMAC202が送信DMAC201と大きく
異なる点について述べる。
【0127】受信DMAC202には、受信BFLレジ
スタ460が存在する。送信DMAC201の場合、転
送データ長は、予めMPU101が設定できるが、受信
DMAC202の場合、相手から何バイトのデータが送
られてくるかは事前に知ることができない。しかしなが
ら、無制限に受信していては、与えられたメモリの領域
に収まらなくなり種々の障害が発生してしまうので、そ
れを回避するため、受信BFLレジスタ460を設け、
ひとつの受信バッファに格納できる最大のデータ数を設
定しておく。
【0128】受信BFLレジスタ460への設定は、予
めMPU101が受信BFLリードバス461を介して
行う。受信BFLレジスタ460の値は、受信BFLバ
ス462に常に出力されている。
【0129】受信状態遷移制御回路400は、データ転
送に先立ち、受信BCR入力選択信号455を制御し、
受信BCR入力セレクタ446を介して受信BCR入力
バス450に受信BFL462の値を載せるように制御
する。同時に受信BCRアクセス信号456を制御し、
受信BCRレジスタ445に受信BCR入力バス450
の値を格納する。
【0130】以下、データ転送が行われるたびに受信B
CRレジスタ445の値は減算されていき、値がゼロに
なった場合、次のディスクリプタリードを実行する。
【0131】受信FIFO情報404には、フレーム転
送終了ビット(EOM)が含まれている。このEOMが
入力すると、受信フレーム最終データの転送が終了した
ことになり、受信状態遷移制御回路400は、DLライ
ト及びディスクリプタステータスライト処理を行う。
【0132】受信DMAC202においては、ディスク
リプタリード期間にDLリード及びステータスリードは
行われない。つまり、ディスクリプタリードからデータ
転送に移ったとき、第1受信CDAレジスタ413の値
は、DLのアドレス信号を指している。
【0133】DLライトの際には、受信BCRレジスタ
445の値がメモリ上のDLのアドレスにライトされ
る。この値だとBFLの値から実際に転送したデータ数
を引いた値になる。ここでは回路を図示していないが、
DLに書き込む値として、受信BFLレジスタ460か
ら受信BCRレジスタ445の値を引いた値でもよい。
この場合、DLには実際に転送されたデータ数が格納さ
れ理解しやすくなる。
【0134】受信BFL出力バス463は、MPU10
1が受信BFLレジスタ460の値をリードしたときに
使用される。
【0135】受信BFLアクセス信号464は、受信B
FLレジスタ460に受信BFLリードバス461の値
を格納するときに使用される。MPU101からの受信
BFLアクセス信号464への制御回路は図示されてい
ない。
【0136】受信DMAC202におけるその他の点に
ついては、受信DMAC202と同様とされ、以下のよ
うに構成される。
【0137】受信状態遷移制御回路400は、ディスク
リプタ先頭アドレスからチェインポインタ(CP)をリ
ードする。受信状態遷移制御回路400は、受信CDA
アクセス信号430を制御し、第1受信CDAレジスタ
413の内容を受信アドレスバス411に載せ、受信D
MAアドレスバス制御信号408を制御し、外部にアド
レス信号を出力する。同時に、受信DMAデータバス制
御信号407を制御し、外部データバス221の内容を
受信データバス412に載せる。受信状態遷移制御回路
400は、第1受信CDAライトストローブ427を出
力し、受信データバス412上のデータを、第1受信C
DAバス419を介して第2受信CDAレジスタ414
に格納する。
【0138】次に、受信状態遷移制御回路400は、バ
ッファポインタ(BP)をリードする。受信状態遷移制
御回路400は、受信CDA加算値選択信号431を制
御し、受信CDA加算値出力回路418から受信CDA
加算値425を出力させる。このとき、CPが格納され
ているアドレスに受信CDA加算値425を加えた値が
BPの格納されているアドレスになるように受信CDA
加算値選択信号431が制御される。第1受信CDAレ
ジスタ413の値は、常に受信CDA被加算バス423
に載せられている。受信CDA加算器417は、受信C
DA被加算値バス423と受信CDA加算値425を加
算し、その結果を受信CDA加算結果出力バス426に
出力する。CPリード後、受信状態遷移制御回路400
は、受信CDA入力選択信号429を制御し、受信CD
A入力セレクタ416を介して受信CDA入力バス42
2に受信CDA加算結果出力バス426の内容が載るよ
うにする。同時に受信CDAアクセス信号430を制御
し、第1受信CDAレジスタ413に受信CDA入力バ
ス422を格納する。以上の一連の動作で第1受信CD
Aレジスタ413のインクリメントが行われる。受信状
態遷移制御回路400は、次に受信CDAアクセス信号
430を制御し、第1受信CDAレジスタ413の内容
を受信アドレスバス411に載せ、受信DMAアドレス
バス制御信号408を制御し、外部にアドレス信号を出
力する。同時に、受信DMAデータバス制御信号407
を制御し、外部データバスの内容を受信データバス41
2に載せる。受信状態遷移制御回路400は、受信BA
R入力選択信号442を制御し、受信BAR入力セレク
タ433を介して受信BARリードバス436の値が受
信BAR入力バス437に載るようにする。受信状態遷
移制御回路400は、受信BARアクセス信号443を
出力し、受信BAR入力バス437上のデータを受信B
ARレジスタ432に格納する。
【0139】次に、データ長(DL)がリードされる。
受信状態遷移制御回路400は、受信CDA加算値選択
信号431を制御し、受信CDA加算値出力回路418
から受信CDA加算値425を出力させる。このとき、
BPが格納されているアドレスに受信CDA加算値42
5を加えた値タがDLの格納されているアドレスになる
ように受信CDA加算値選択信号431が制御される。
第1受信CDAレジスタ413の値は、常に受信CDA
被加算バス423に載せられている。受信CDA加算器
417は、受信CDA被加算値バス423と受信CDA
加算値425を加算し、その結果を受信CDA加算結果
出力バス426に出力する。BPリード後、受信状態遷
移制御回路400は、受信CDA入力選択信号429を
制御し、受信CDA入力セレクタ416を介して受信C
DA入力バス422に受信CDA加算結果出力バス42
6の内容が載るようにする。同時に受信CDAアクセス
信号430を制御し、第1受信CDAレジスタ413に
受信CDA入力バス422を格納する。以上の一連の動
作で第1受信CDAレジスタ413のインクリメントが
行われる。受信状態遷移制御回路400は、次に受信C
DAアクセス信号430を制御し、第1受信CDAレジ
スタ413の内容を受信アドレスバス411に載せ、受
信DMAアドレスバス制御信号408を制御し、外部に
アドレス信号を出力する。同時に、受信DMAデータバ
ス制御信号407を制御し、外部データバスの内容を受
信データバス412に載せる。
【0140】次に、ステータス(ST)がリードされ
る。受信状態遷移制御回路400は、受信CDA加算値
選択信号431を制御し、受信CDA加算値出力回路4
18から受信CDA加算値425を出力させる。このと
き、DLが格納されているアドレスに受信CDA加算値
425を加えた値がステータスの格納されているアドレ
スになるように受信CDA加算値選択信号431が制御
される。第1受信CDAレジスタ413の値は、常に受
信CDA被加算バス423に載せられている。受信CD
A加算器417は、受信CDA被加算値バス423と受
信CDA加算値425を加算し、その結果を受信CDA
加算結果出力バス426に出力する。DLリード後、受
信状態遷移制御回路400は、受信CDA入力選択信号
429を制御し、受信CDA入力セレクタ416を介し
て受信CDA入力バス422に受信CDA加算結果出力
バス426の内容が載るようにする。同時に受信CDA
アクセス信号430を制御し、第1受信CDAレジスタ
413に受信CDA入力バス422を格納する。以上の
一連の動作で第1受信CDAレジスタ413のインクリ
メントが行われる。受信状態遷移制御回路400は、次
に受信CDAアクセス信号430を制御し、第1受信C
DAレジスタ413の内容を受信アドレスバス411に
載せ、受信DMAアドレスバス制御信号408を制御
し、外部にアドレス信号を出力する。同時に、受信DM
Aデータバス制御信号407を制御し、外部データバス
の内容を受信データバス412に載せる。受信状態遷移
制御回路400は、受信ステータスリードバス409を
通してステータス(ST)を取り込む。
【0141】以上でディスクリプタリードを終了する。
【0142】次に、データ転送を行う。受信状態遷移制
御回路400は、受信BARアクセス信号443を制御
し、受信アドレスバス411上に受信BARレジスタ4
32の内容を出力する。同時に受信DMAデータバス制
御信号407及び受信DMAアドレスバス制御信号40
8を出力し、アドレス信号を、内部アドレスバス235
を経由して外部アドレスバス222に出力する。指定さ
れたアドレスのデータが外部データバス221上に出力
され、同時に内部データバス234に取り込まれる。受
信状態遷移制御回路400は、さらに受信FIFOアク
セス信号406を制御し、受信FIFO212に内部デ
ータバス234上のデータを格納させる。
【0143】ここでBCRの減算を行う。受信状態遷移
制御回路400は、受信BCR減算値選択信号457を
制御し、転送したデータバイト数と同じ値を受信BCR
減算値出力回路448から受信BCR減算値453とし
て出力させる。受信BCRレジスタ445の値は、常に
受信BCR被減算値バス451に出力されている。受信
BCR減算器447は、受信BCR被減算値バス451
の値から受信BCR減算値453の値を減算し、その結
果を受信BCR減算結果出力バス454に出力する。受
信状態遷移制御回路400は、受信BCR減算結果出力
バス454の値を取り込み、もし値がゼロであるなら、
ディスクリプタステータスライトを行う。
【0144】受信状態遷移制御回路400は、受信CD
Aアクセス信号430を制御し、第1受信CDAレジス
タ413の内容を受信アドレスバス411に載せ、受信
DMAアドレスバス制御信号408を制御し、外部にア
ドレス信号を出力する。ここで、第1受信CDAレジス
タ413の内容は、最後にアクセスしたディスクリプタ
ステータスのアドレス信号を指している。引き続き、受
信状態遷移制御回路400は、受信ステータスライトバ
ス410にステータスを出力し、受信データバス412
に載せる。同時に、受信状態遷移制御回路400は、受
信DMAデータバス制御信号407を制御し、受信デー
タバス412の内容を外部データバスに出力する。
【0145】受信状態遷移制御回路400は、受信BC
R減算結果出力バス454の値を取り込み、もし値がゼ
ロでないなら次のデータ転送を行う。受信状態遷移制御
回路400は、受信BAR加算値選択信号444を制御
し、前回転送したデータバイト数と同じ値を受信BAR
加算値出力回路435から受信BAR加算値440とし
て出力させる。受信BARレジスタ432の値は、常に
受信BAR被加算値バス438に出力されている。受信
BAR加算器434は、受信BAR被加算値バス438
の値と受信BAR加算値440の値を加算し、その結果
を受信BAR加算結果出力バス441に出力する。受信
状態遷移制御回路400は、受信BAR入力選択信号4
42を制御し、受信BAR入力セレクタ433を介して
受信BAR入力バス437に受信BAR加算結果出力バ
ス441の内容が載るようにする。同時に受信BARア
クセス信号443を制御し、受信BARレジスタ432
に受信BAR入力バス437の値を格納する。以上の一
連の動作で受信BARレジスタ432のインクリメント
が行われる。
【0146】受信状態遷移制御回路400は、以上述べ
たデータ転送と受信BCRレジスタ445の減算及び受
信BARレジスタ432の加算を繰り返し、受信BCR
レジスタ445の値がゼロになるまで続け、ゼロになる
と上記ディスクリプタステータスライトを行う。そし
て、ディスクリプタステータスライトを行った後、次の
ディスクリプタリードを行う。
【0147】受信状態遷移制御回路400は、受信CD
A入力選択信号429を制御し、受信CDA入力セレク
タ416を介して受信CDA入力バス422に第2受信
CDAバスの値を出力させる。第2受信CDAバス42
0には、常に第2受信CDAレジスタ414の内容が出
力されている。同時に、受信状態遷移制御回路400
は、受信CDAアクセス信号430を制御し、第1受信
CDAレジスタ413に受信CDA入力バス422の値
を格納する。
【0148】以下、上記ディスクリプタリードから繰り
返えされる。
【0149】上記ディスクリプタステータスのリードに
おいて、転送終了ビット(EOT)が出力されていた場
合、受信状態遷移制御回路400は、DMA動作を停止
する。
【0150】上記ディスクリプタステータスのリードに
おいて、EOMが出力されていた場合、当該データバッ
ファの最終データを転送する際に、受信FIFOアクセ
ス信号406に、フレーム転送終了(EOM)コマンド
を加える。
【0151】受信BCRレジスタ445の値は、受信B
CR出力バス452を介してMPU101によってリー
ド可能とされる。
【0152】本例には、図示されていないが、同様の手
順により受信BARレジスタ432の値及び第1受信C
DAレジスタ413の値もMPU101によってリード
可能とされる。
【0153】次に、オーナーシップビット(OSB)に
関する制御機能について詳述する。
【0154】チェインブロック転送モードにおいて、デ
ータ転送終了後、DMAC201や202はオーナーシ
ップビット(OSB)に論理値“1”をライトする。D
MAC201や202がディスクリプタ・ステータスを
リードしたときに、オーナーシップビット(OSB)が
論理値“1”だった場合、DMAプライオリティ・コン
トロール・レジスタ(PCR)のOSBビットが論理値
“1”ならば当該バッファの転送を行わず、一定期間お
いた後に再びそのオーナーシップビット(OSB)のリ
ードが行われる(ポーリング)。オーナーシップビット
(OSB)が論理値“0”になった場合、DMAC20
1や202によるデータ転送が行われる。例えば、図5
においてディスクリプタ516において、オーナーシッ
プビット(OSB)が論理値“1”とされてチェインブ
ロック転送が停止された位置のデータバッファ506は
一度転送済みである。また、図5に示されるチェイン列
のデータをそのままにして、それとは別のチェイン列に
変更したい場合があるが、それを行うには、上記のよう
にオーナーシップビット(OSB)が論理値“1”とさ
れてチェインブロック転送が停止されたディスクリプタ
の次のディスクリプタで別のチェイン列を指定する必要
がある。例えばディスクリプタ516においてオーナー
シップビット(OSB)が論理値“1”とされてチェイ
ンブロック転送が停止され、次にオーナーシップビット
(OSB)が論理値“0”に書き換えられた場合に、当
該ディスクリプタに対応するバッファがアクセスされて
から、次のディスクリプタ517のリードが行われる。
このことから、図5に示されるチェイン列のデータをそ
のままにして、それとは別のチェイン列に変更したい場
合には、必ずオーバーヘッドが発生する。
【0155】そこで本例では、オーナーシップビット
(OSB)に関する以下のような制御機能により、ポー
リング直後でも前回アクセスしたものと異なるバッファ
をアクセス可能にしたり、異なるチェイン列に変更する
場合のオーバーヘッドを低減している。
【0156】MPU101によってオーナーシップビッ
ト(OSB)が論理値“0”に設定される。送信DMA
C201や受信DMAC202は、一連のDMA転送制
御を行った後、ディスクリプタステータスライト時に、
ディスクリプタステータスのオーナーシップビットに論
理値“1”をライトする。ディスクリプタはチェインさ
れているため、次々にアクセスされてゆき、やがて一度
アクセスしたディスクリプタをアクセスするようにな
る。このディスクリプタステータスのオーナーシップビ
ット(OSB)が論理値“1”であった場合、DMAC
は次のデータ転送に入らず、ポーリングにより、一定時
間をおいてディスクリプタステータスのリードを繰り返
す(ポーリング)。ポーリング期間中、各CDAレジス
タの値は更新されない。
【0157】例えば送信DMAC201がポーリングし
ている間、MPU101はフレームの処理を行い、当該
フレームの処理が終了すると、そのフレームデータに該
当するディスクリプタステータスにアクセスし、オーナ
ーシップビット(OSB)に論理値“0”をライトす
る。そして送信DMAC201は、次のポーリングによ
るディスクリプタステータスのリードにおいて論理値
“0”であるオーナーシップビットをリードする。送信
DMAC201は、論理値“0”であるオーナーシップ
ビット(OSB)をリードすると、ポーリングステート
から抜け出し、次のステートに入る。
【0158】ここで本例の比較対象とされる技術によれ
ば、図7に示されるように、ディスクリプタステータス
のオーナーシップビット(OSB)が論理値“1”であ
った場合、ポーリング701が行われ、その後、ディス
クリプタステータスのオーナーシップビット(OSB)
が論理値“0”にライトされることにより、このポーリ
ング701のステートから抜け出た後は、DMACによ
るデータ転送が行われるようになっている。すなわち、
ポーリング終了後には、ポーリング前に取り込んだバッ
ファポインタ(BP)によって示されるデータバッファ
のアクセスが行われるようになっているため、上記バッ
ファポインタ(BP)によって示されるデータバッファ
以外はアクセスすることができない。
【0159】これに対して本例では、ポーリングステー
トから抜け出た後は、当該ディスクリプタの先頭アドレ
スから当該ディスクリプタの再リードが行われる。すな
わち、図6に示されるように、ディスクリプタステータ
スのオーナーシップビット(OSB)が論理値“1”で
あった場合、ポーリング601が行われ、その後、ディ
スクリプタステータスのオーナーシップビット(OS
B)が論理値“0”にライトされることにより、このポ
ーリング601のステートから抜け出た後は、当該ディ
スクリプタの先頭アドレスから、チェインポインタ(C
P)やバッファポインタ(BP)の再リードが行われ
る。カレントディスクリプタの先頭アドレスは送信DM
AC201においては、第2送信CDAライトイネーブ
ル信号328に基づいて第3送信CDAレジスタ315
に格納され、受信DMAC202においては第2受信C
DAライトストローブ信号428に基づいて第3受信C
DAレジスタ415に格納されている。ポーリングが終
了されると、上記第3送信CDAレジスタ315又は上
記第3受信CDAレジスタ415の保持アドレスに基づ
いて当該ディスクリプタの先頭アドレスから当該ディス
クリプタが再リードされるが、このとき、ディスクリプ
タの構成が、図8や図9に示されるように、チェインポ
インタ(CP)、バッファポインタ(BP)の順に形成
されている場合には、それに従って上記ディスクリプタ
の先頭アドレスは、当該ディスクリプタにおけるチェイ
ンポインタ(CP)の保持アドレスに相当するから、上
記のディスクリプタの再リードはこのチェインポインタ
(CP)から順に行われる。従って、MPU101は、
ディスクリプタステータスのオーナーシップビット(O
SB)を論理値“0”にライトする前に、チェインポイ
ンタ(CP)やバッファポインタ(BP)の内容を更新
し、その後に、ディスクリプタステータスのオーナーシ
ップビット(OSB)を論理値“0”にライトするよう
にすれば、ディスクリプタステータスのオーナーシップ
ビット(OSB)が論理値“0”にライトされることに
より、このポーリング601のステートから抜け出た後
においては、当該ディスクリプタの更新されたチェイン
ポインタ(CP)やバッファポインタ(BP)のリード
が行われることで、更新されたチェインポインタ(C
P)やバッファポインタ(BP)がチェインブロック転
送に反映される。このため、元のチェイン列のデータを
そのままにして、別のチェイン列に変更したい場合にお
いては、MPU101の制御により、ディスクリプタス
テータスのオーナーシップビット(OSB)が論理値
“0”にライトされる前に、チェインポインタ(CP)
やバッファポインタ(BP)の内容を別のチェイン列の
ディスクリプタ情報に更新し、その後に、ディスクリプ
タステータスのオーナーシップビット(OSB)を論理
値“0”にライトするようにすれば、別のチェイン列に
簡単に変更することができる。例えば図16に示される
ように、第1チェイン列として、データバッファ160
5〜1608と、その属性を示すためのディスクリプタ
1605〜1608とが設けられ、第2チェイン列とし
て、データバッファ1609〜1611と、その属性を
示すためのディスクリプタ1619〜1621とが設け
られた場合において、例えばディスクリプタ1617か
ら、別のチェイン列に変更したい場合においては、MP
U101の制御により、ディスクリプタ1617におけ
るステータスのオーナーシップビット(OSB)が論理
値“0”にライトされる前に、チェインポインタ(C
P)やバッファポインタ(BP)の内容をディスクリプ
タ1619の情報に更新し、その後に、ディスクリプタ
ステータスのオーナーシップビット(OSB)を論理値
“0”にライトするようにすれば、第1チェイン列から
第2チェイン列に簡単に変更することができる。しか
も、この場合において、データバッファ1609の内容
は変更されない。
【0160】ここで、送信DMAC201によるディス
クリプタの先頭アドレスからの再リードについて詳述す
る。
【0161】送信DMAC201による最初のディスク
リプタアクセスにおいて、チェインポインタ(CP)を
リードし、その内容(次ディスクリプタのスタートアド
レス)を、第2送信CDAライトストローブ信号327
に従って第1送信CDAバス319を介して第2送信C
DAレジスタ314に格納すると、格納直後より第2送
信CDAレジスタ314の内容が第2送信CDAバス3
20に出力される。第2送信CDAレジスタ314の内
容が第1送信CDAレジスタ313に格納されるタイミ
ングのとき、同時に送信状態遷移制御回路300は、第
2送信CDAライトストローブ328をアサートし、第
2送信CDAバス320上のデータを第3送信CDAレ
ジスタ315に格納する。これにより第2送信CDAレ
ジスタ314の保持アドレスが第3送信CDAレジスタ
315にも格納される。第3送信CDAレジスタ315
の内容は、常に第3送信CDAバス321に出力され
る。そしてこの第3送信CDAレジスタ315の保持ア
ドレスはカレントディスクリプタの先頭アドレスとさ
れ、ポーリング終了後におけるディスクリプタの先頭ア
ドレスからの再リードの際には、この第3送信CDAレ
ジスタ315の保持内容が、送信CDA入力セレクタ3
16を介して第1送信CDAレジスタ313に書き込ま
れる。
【0162】送信DMAC201によるDMA動作開始
前にMPU101が直接第1送信CDAレジスタ313
に値をライトした際には、カレントディスクリプタの先
頭アドレスを退避するため、同時に第3送信CDAレジ
スタ315にも同じ値がライトされる。送信CDA入力
セレクタ316によって送信CDA加算結果出力バス3
26のデータが選択され、それが第1送信CDAレジス
タ313に書き込まれることにより、カレントディスク
リプタアドレスの更新が行われる。このカレントディス
クリプタアドレスの更新により、カレントディスクリプ
タにおける各ポインタが順次リードされる。
【0163】そして、ポーリングステートにて論理値
“0”であるオーナーシップビット(OSB)をリード
した後、送信状態遷移制御回路300は、送信CDA入
力選択信号329を制御して、送信CDA入力バス32
2に載せるデータとして第3送信CDAバス321のデ
ータを選択する。このとき、送信状態遷移制御回路30
0は、送信CDAアクセス信号330を制御し、送信C
DA入力バス322上のデータを第1送信CDAレジス
タ313に格納する。これによりカレントディスクリプ
タの先頭アドレスが第1送信CDAレジスタ313に設
定される。そして、送信CDA入力セレクタ316によ
って送信CDA加算結果出力バス326のデータが選択
され、それが第1送信CDAレジスタ313に書き込ま
れることにより、カレントディスクリプタアドレスの更
新が行われる。このカレントディスクリプタアドレスの
更新により、カレントディスクリプタにおける各ポイン
タが順次リードされることにより、当該ディスクリプタ
の先頭アドレスからの再リードが行われる。
【0164】次に、受信DMAC202によるディスク
リプタの先頭アドレスからの再リードについて詳述す
る。
【0165】受信DMAC202による最初のディスク
リプタアクセスにおいて、チェインポインタ(CP)を
リードし、その内容(次ディスクリプタのスタートアド
レス)を、第2受信CDAライトストローブ信号427
に従って第1受信CDAバス419を介して第2受信C
DAレジスタ414に格納すると、格納直後より第2受
信CDAレジスタ414の内容が第2受信CDAバス4
20に出力される。第2受信CDAレジスタ414の内
容が第1受信CDAレジスタ413に格納されるタイミ
ングのとき、同時に受信状態遷移制御回路400は、第
2受信CDAライトストローブ428をアサートし、第
2受信CDAバス420上のデータを第3受信CDAレ
ジスタ415に格納する。これにより第2受信CDAレ
ジスタ414の保持アドレスが第3受信CDAレジスタ
415にも格納される。第3受信CDAレジスタ415
の内容は、常に第3受信CDAバ421に出力される。
そしてこの第3受信CDAレジスタ415の保持アドレ
スはカレントディスクリプタの先頭アドレスとされ、ポ
ーリング終了後におけるディスクリプタの先頭アドレス
からの再リードの際には、この第3受信CDAレジスタ
415の保持内容が、受信CDA入力セレクタ416を
介して第1受信CDAレジスタ413に書き込まれる。
【0166】受信DMAC202によるDMA動作開始
前にMPU101が直接第1受信CDAレジスタ413
に値をライトした際には、カレントディスクリプタの先
頭アドレスを退避するため、同時に第3受信CDAレジ
スタ415にも同じ値がライトされる。受信CDA入力
セレクタ416によって受信CDA加算結果出力バス4
26のデータが選択され、それが第1受信CDAレジス
タ413に書き込まれることにより、カレントディスク
リプタアドレスの更新が行われる。このカレントディス
クリプタアドレスの更新により、カレントディスクリプ
タにおける各ポインタが順次リードされる。
【0167】そして、ポーリングステートにて論理値
“0”であるオーナーシップビット(OSB)をリード
した後、受信状態遷移制御回路400は、受信CDA入
力選択信号329を制御して、受信CDA入力バス32
2に載せるデータとして第3受信CDAバス321のデ
ータを選択する。このとき、受信状態遷移制御回路40
0は、受信CDAアクセス信号430を制御し、受信C
DA入力バスう22上のデータを第1受信CDAレジス
タ413に格納する。これによりカレントディスクリプ
タの先頭アドレスが第1受信CDAレジスタ313に設
定される。そして、受信CDA入力セレクタ316によ
って受信CDA加算結果出力バス426のデータが選択
され、それが第1受信CDAレジスタ413に書き込ま
れることにより、カレントディスクリプタアドレスの更
新が行われる。このカレントディスクリプタアドレスの
更新により、カレントディスクリプタにおける各ポイン
タが順次リードされることにより、当該ディスクリプタ
の先頭アドレスからの再リードが行われる。
【0168】上記した例によれば、以下の作用効果を得
ることができる。
【0169】(1)ポーリングス601から抜け出た後
は、ディスクリプタの先頭に戻ってディスクリプタアク
セスがもう一度行われることから、ポーリング601の
ステートから抜け出た後は、当該ディスクリプタの先頭
に戻って、チェインポインタ(CP)やバッファポイン
タ(BP)の再リードが行われる。従って、MPU10
1は、ディスクリプタステータスのオーナーシップビッ
ト(OSB)を論理値“0”にライトする前に、チェイ
ンポインタ(CP)やバッファポインタ(BP)の内容
を更新し、その後に、ディスクリプタステータスのオー
ナーシップビット(OSB)を論理値“0”にライトす
るようにすれば、ディスクリプタステータスのオーナー
シップビット(OSB)が論理値“0”にライトされる
ことにより、このポーリング601のステートから抜け
出た後においては、当該ディスクリプタの更新されたチ
ェインポインタ(CP)やバッファポインタ(BP)の
リードが行われることで、更新されたチェインポインタ
(CP)やバッファポインタ(BP)がチェインブロッ
ク転送に反映される。このため、ポーリング直後におい
て、前回アクセスしたものと異なるデータバッファのア
クセスが可能とされる。
【0170】(2)また、上記(1)の作用効果によ
り、元のチェイン列のデータをそのままにして、別のチ
ェイン列に変更したい場合においては、MPU101の
制御により、ディスクリプタステータスのオーナーシッ
プビット(OSB)が論理値“0”にライトされる前
に、チェインポインタ(CP)やバッファポインタ(B
P)の内容を別のチェイン列のディスクリプタ情報に更
新し、その後に、ディスクリプタステータスのオーナー
シップビット(OSB)を論理値“0”にライトするよ
うにすれば、別のチェイン列に簡単に変更することがで
きる。
【0171】次に、別の例について説明する。
【0172】図10にはポーリング後のアクセス順の他
の例が示される。図10に示されるアクセス順が、図6
に示されるのと大きく相違するのは、ポーリング601
の終了後に、チェインポインタ(CP)、及びバッファ
ポインタ(BP)の値がロードされた後に、再びステー
タス(ST)の読み出しを行うことなく、データ転送を
開始する点にある。ポーリング601においてステータ
ス(ST)が読み込まれているため、再びステータス
(ST)を再度読み込む必要が無いことによる。このよ
うに、バッファポインタ(BP)をアクセスした後のス
テータス(ST)のアクセスを省略することによってオ
ーバーヘッドの低減を図ることができる。
【0173】また、ポーリング終了後のディスクリプタ
の再リードを行うか否かを選択可能にすることができ
る。例えば、図12に示されるように、送信用ディスク
リプタ81におけるステータス(ST)や受信用ディス
クリプタ91におけるステータス(ST)の空きビット
などを利用して、機能選択用ビット(ON/OFF)を
設け、DMA制御部によりポーリングが行われるとき、
そのポーリングの終了後に上記DMA制御部により先頭
アドレスから再リードすべきか否かを、上記機能選択用
ビット(ON/OFF)の論理に基づいて決定するよう
にしても良い。特に制限されないが、機能選択用ビット
(ON/OFF)が論理値“0”の場合には、図6や図
10に示されるように、ディスクリプタのポーリング6
01が終了された後に、そのディスクリプタにおけるチ
ェインポインタ(CP)、バッファポインタ(BP)が
DMAC201又は202により再リードされる。それ
に対して機能選択用ビット(ON/OFF)が論理値
“1”の場合には、図7に示されるようにポーリング7
01の終了後にデータ転送が行われる。機能選択用ビッ
ト(ON/OFF)の設定はMPU101によって行う
ことができる。このようにポーリングの終了後に上記D
MA制御部により先頭アドレスから再リードすべきか否
かを機能選択用ビット(ON/OFF)の論理に応じて
決定することができるので、必要に応じてそのような機
能を選択することができ、使い勝手の向上を図ることが
できる。
【0174】上記の構成例では、図1に示されるRAM
105内にデータバッファ505〜508、及びディス
クリプタ515〜518を形成するようにしたが、ディ
スクリプタ515〜518については、図13に示され
るように、シリアルコントローラ102又は103にお
ける内部レジスタ1002などに形成するようにしても
良い。かかる構成においては、送信DMAC201(又
は受信DMAC202)は、シリアルコントローラ10
2,103の内部バスを介してディスクリプタ515〜
518をアクセスすることができるから、ディスクリプ
タ515〜518のリードを高速に行うことができる。
また、送信DMAC201(又は受信DMAC202)
によってディスクリプタ515〜518をアクセスする
場合、外部バス(図1におけるバス104に相当)を使
用する必要がないので、この外部バスの負荷軽減を図る
ことができる。
【0175】また、図14に示されるように、シリアル
コントローラ102又は103内にデュアルポートRA
M1105を設け、このデュアルポートRAM1105
によって上記ディスクリプタ515〜518を形成する
ようにしても良い。かかる構成においては、送信DMA
C201(又は受信DMAC202)は、シリアルコン
トローラ102,103の内部バスを介してディスクリ
プタ515〜518をアクセスすることができるから、
ディスクリプタ515〜518のリードを高速に行うこ
とができる。また、送信DMAC201(又は受信DM
AC202)によってディスクリプタ515〜518を
アクセスする場合、外部バス(図1におけるバス104
に相当)を使用する必要がないので、この外部バスの負
荷軽減を図ることができる。
【0176】図11には、送信用ディスクリプタ81や
受信用ディスクリプタ91の別の構成例が示される。す
なわち、図11に示されるように送信用ディスクリプタ
81や受信用ディスクリプタ91において、ステータス
(ST)を各ディスクリプタの先頭に位置させることが
できる。その場合には、例えば図10に示されるように
ポーリング601においてステータス(ST)が読み込
まれ、その後に当該ポーリング601が終了された後に
は、ステータス(ST)に続いて記録されているチェイ
ンポインタ(CP)及びバッファポインタ(BP)をデ
ィスクリプタの通常のアクセス順(1101)に従って
順番にリードされる。上記ステータス(ST)の具体的
な構成については上記の例の場合と同じである。故に、
例えば図16に示されるようにディスクリプタ1617
から別のチェイン列に変更したい場合には、ステータス
(ST)におけるオーナーシップビット(OSB)が論
理値“1”でポーリングが行われる期間中に、MPU1
01によって、チェインポインタ(CP)や、バッファ
ポインタ(BP)などを別のチェイン列の情報に書き換
えれば良い。それによれば、ステータス(ST)におけ
るオーナービット(OSB)が論理値“0”にされ、ポ
ーリングが終了された後には、チェインポインタ(C
P)、バッファポインタ(BP)、データ長(DL)の
順にリードされ、このリードによりディスクリプタ16
17から別のチェイン列への変更が行われる。このよう
に図11に示されるディスクリプタ構成によれば、ポー
リング終了後に、当該ディスクリプタをその先頭アドレ
スから再リードしなくても、別のチェイン列への変更が
可能とされるので、システムのオーバーヘッドを低減す
ることができる。また、上記のようにディスクリプタの
先頭アドレスから再リードする必要がないため、先頭ア
ドレスを保持しておくためのレジスタ、例えば図3に示
される第3送信CDAレジスタ315や、図4に示され
る第3受信CDAレジスタ415が不要とされ、その
分、論理規模の縮小を図ることができる。
【0177】第3送信CDAレジスタ315や第3受信
CDAレジスタ415への書き込みをMPU101によ
って直接行うようにしても良い。ポーリング後のディス
クリプタアクセスは、第3送信CDAレジスタ315や
第3受信CDAレジスタ415の保持アドレスによって
決定されるから、この第3送信CDAレジスタ315や
第3受信CDAレジスタ415への書き込みをMPU1
01によって直接行うことにより、ポーリング後のディ
スクリプタアクセスを任意の位置から始めることが可能
になる。
【0178】MPU101によってアクセス可能なカレ
ントディスクリプタアドレス(CDA)保持用レジスタ
を第3送信CDAレジスタ315や第3受信CDAレジ
スタ415とは別に設け、ポーリング後に、上記CDA
保持用レジスタに保持されているカレントディスクリプ
タアドレスを、第1送信CDAレジスタ313や第1受
信CDAレジスタ413に取り込むように構成すること
ができる。このようにしてもポーリング後のディスクリ
プタアクセスを任意の位置から始めることができる。さ
らにこの場合において、ポーリング後に第1送信CDA
レジスタ313や第1受信CDAレジスタ413に取り
込む値を、第3送信CDAレジスタ315にするか、上
記CDA保持用レジスタにするかを、選択できるように
しても良い。例えばディスクリプタステータス(ST)
上に新たな選択ビットを設け、この選択ビットにより、
ポーリング後に第1送信CDAレジスタ313への取り
込み先を上記第3送信CDAレジスタ315にするか、
上記CDA保持用レジスタにするかを選択可能にすると
良い。この場合、各ディスクリプタ毎に分岐を選択でき
るので、さらに柔軟なバッファマネージメントが可能に
なる。
【0179】上記ポーリングにおけるインターバルタイ
ム(ポーリング間隔)は、次のように決定することがで
きる。
【0180】ディスクリプタステータスのリードにおい
て、図17に示されるようにオーナーシップビット(O
SB)が論理値“1”である期間、ポーリングが継続さ
れるが、この場合のインターバルタイムは、特に制限さ
れないが、図18に示されるインターバルタイム調整回
路180によって制御することができる。このインター
バルタイム調整回路180は、特に制限されないが、カ
ウンタ181、比較回路182、インターバルタイムレ
ジスタ183、及びインターバルタイム制御回路184
を含んで構成することができ、そのようなインターバル
タイム調整回路180は送信DMAC201や受信DM
AC202内に設けることができる。上記カウンタ18
1は、システムクロック信号CLKを計数する。この計
数結果は、後段の比較回路182に伝達される。インタ
ーバルタイムレジスタ183は、所望のインターバルタ
イムの値を保持するもので、その保持値はMPU101
によって変更可能とされる。比較回路182は、上記カ
ウンタ181の出力値と上記インターバルタイムレジス
タ183の保持値とを比較し、それらが一致した場合
に、一致信号185をアサートする。このとき、上記カ
ウンタ181は初期化される。インターバルタイム制御
回路184は、上記比較回路182によって一致信号1
85がアサートされたタイミングで、インターバルタイ
ムを決定するためのパルス信号を出力する。このパルス
信号は送信状態遷移制御回路300や受信状態遷移制御
回路400に伝達され、そこで、上記パルス信号に基づ
いてインターバルタイムが決定される。MPU101に
よってインターバルタイムレジスタ183の保持値を変
更することによりインターバルタイムの調整が可能とさ
れるため、MPU101の負荷に応じてインターバルタ
イムを制御するようにしても良い。インターバルタイム
レジスタ183には、通常は標準的なインターバルタイ
ムが得られる値が設定される。そして、MPU101の
負荷が比較的重くなった場合には、上記インターバルタ
イムレジスタ183の保持値を上記標準的な値よりも大
きくすることによってインターバルタイムが比較的長め
に調整される。また、MPU101の負荷が比較的軽く
なった場合には、上記インターバルタイムレジスタ18
3の保持値を上記標準的な値よりも小さくすることによ
ってインターバルタイムが比較的短めに調整される。オ
ーナーシップビット(OSB)の書き換えはバス104
を介してMPU101によって行われるが、MPU10
1の負荷が比較的重い場合において、インターバルタイ
ムが短いと、MPU101はバス104の使用権を獲得
するのが困難になる。そうかといってインターバルタイ
ムを長めに設定すると、オーナーシップビット(OS
B)の論理判別のためのリードがサイクルが長くなるた
め、データ転送処理時間の短縮化が阻害される。
【0181】そこで、MPU101の負荷が比較的重く
なった場合には、上記インターバルタイムレジスタ18
3の保持値を上記標準的な値よりも大きくすることによ
ってインターバルタイムを比較的長めに調整し、また、
MPU101の負荷が比較的軽くなった場合には、上記
インターバルタイムレジスタ183の保持値を上記標準
的な値よりも小さくすることによってインターバルタイ
ムを比較的短めに調整することにより、インターバルタ
イムの適正化を図ることができる。
【0182】以上本発明者によってなされた発明を具体
的に説明したが、本発明はそれに限定されるものではな
く、その要旨を逸脱しない範囲で種々変更可能であるこ
とはいうまでもない。
【0183】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるルータ
に適用した場合について説明したが、本発明はそれに限
定されるものではなく、各種通信制御装置に適用するこ
とができる。
【0184】本発明は、少なくともチェインブロック転
送を行うことを条件に適用することができる。
【0185】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0186】すなわち、ディスクリプタにおける所定ビ
ットの論理状態に基づくポーリングが終了した後に、D
MA制御部により先頭アドレスから再リードされるた
め、上記ポーリングが終了する前に当該ディスクリプタ
の内容を更新することにより、ポーリング直後におい
て、前回アクセスしたものと異なるデータバッファのア
クセスが可能とされる。また、上記ポーリングが終了す
る前に当該ディスクリプタの内容を更新することによ
り、ポーリング直後に異なるチェイン列に変更可能であ
り、その際に、チェインブロック転送が停止されたディ
スクリプタの次のディスクリプタで別のチェイン列を指
定する方式に比べてオーバーヘッドの低減を図ることが
できる。
【図面の簡単な説明】
【図1】本発明にかかる通信制御装置の一例であるルー
タの構成例ブロック図である。
【図2】上記ルータに含まれるシリアル制御装置の構成
例ブロック図である。
【図3】上記シリアル制御装置に含まれる送信DMAC
の構成例ブロック図である。
【図4】上記シリアル制御装置に含まれる受信DMAC
の構成例ブロック図である。
【図5】上記ルータに含まれるRAM内に形成されるデ
ータバッファ及びディスクリプタの説明図である。
【図6】上記シリアル制御装置におけるポーリング時の
アクセス順の説明図である。
【図7】上記シリアル制御装置とは別の装置におけるポ
ーリング時のアクセス順の説明図である。
【図8】上記シリアル制御装置における送信用ディスク
リプタの構成例説明図である。
【図9】上記シリアル制御装置における受信用ディスク
リプタの構成例説明図である。
【図10】上記シリアル制御装置におけるポーリング時
の別のアクセス順の説明図である。
【図11】上記シリアル制御装置におけるディスクリプ
タの別の構成例説明図である。
【図12】上記シリアル制御装置におけるディスクリプ
タにおけるステータスの説明図である。
【図13】上記シリアル制御装置における主要部の別の
構成例ブロック図である。
【図14】上記シリアル制御装置における主要部の別の
構成例ブロック図である。
【図15】上記シリアル制御装置における主要部の別の
構成例ブロック図である。
【図16】上記ルータに含まれるRAM内に形成される
データバッファ及びディスクリプタの説明図である。
【図17】上記ポーリング時のインターバルタイムの説
明図である。
【図18】上記ポーリング時のインターバルタイムを制
御するためのインターバルタイム制御回路の構成例ブロ
ック図である。
【符号の説明】
101 MPU 102,103 シリアル制御装置 104 バス 105 RAM 106 フラッシュメモリ 107 ROM 180 インターバルタイム調整回路 181 カウンタ 182 比較回路 183 インターバルタイムレジスタ 184 インターバルタイム制御回路 201 送信DMAC 202 受信DMAC 300 送信状態遷移制御回路 313 第1送信CDAレジスタ 314 第2送信CDAレジスタ 315 第3送信CDAレジスタ 400 受信状態遷移制御回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 久嗣 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 (72)発明者 片山 俊之 茨城県日立市幸町3丁目2番1号 日立エ ンジニアリング株式会社内 (72)発明者 岩本 昌彦 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 Fターム(参考) 5B061 DD07

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータバッファと、上記データバ
    ッファに対応して形成され、上記データバッファの属性
    情報を有すると共にポインタ情報によって連鎖可能にさ
    れた複数のディスクリプタと、上記ディスクリプタを順
    次参照しながらデータのチェインブロック転送を制御可
    能なDMA制御部とを用いるチェインブロック転送方法
    であって、 上記DMA制御部がポインタ情報に基づいて上記ディス
    クリプタをリードする第1リード処理と、 上記第1処理でリードされたディスクリプタに含まれて
    いる所定ビットが所定論理値に変化されるのを待つポー
    リング処理と、 上記ポーリング処理が終了された後、上記ポーリング処
    理にかかるディスクリプタをその先頭アドレスから上記
    DMA制御部が再リードする第2リード処理と、を含む
    ことを特徴とするチェインブロック転送方法。
  2. 【請求項2】 次にアクセスされるディスクリプタのス
    タートアドレスが設定される第1ポインタと、そのディ
    スクリプタに属するデータバッファのスタートアドレス
    が設定される第2ポインタと、上記DMA制御部によっ
    て一度アクセスされてから上記マイクロプロセッシング
    ユニットによって書き換えられるまでは、上記DMA制
    御回路の再アクセスが禁止されるフラグとを有し、デー
    タバッファの属性情報を有すると共にポインタ情報によ
    って連鎖可能にされた複数のディスクリプタと、上記デ
    ィスクリプタを順次参照しながらデータのチェインブロ
    ック転送を制御可能なDMA制御部とを用いるチェイン
    ブロック転送方法であって、 上記DMA制御部がポインタ情報に基づいて上記ディス
    クリプタをリードする第1リード処理と、 上記第1処理でリードされたディスクリプタに含まれて
    いる上記フラグが所定論理値に変化されるのを待つポー
    リング処理と、 上記ポーリング処理が終了された後、上記ポーリング処
    理にかかるディスクリプタにおける上記第1ポインタ及
    び上記第2ポインタを上記DMA制御部が再リードする
    第2リード処理と、を含むことを特徴とするチェインブ
    ロック転送方法。
  3. 【請求項3】 次にアクセスされるディスクリプタのス
    タートアドレスが設定される第1ポインタと、そのディ
    スクリプタに属するデータバッファのスタートアドレス
    が設定される第2ポインタと、上記DMA制御部によっ
    て一度アクセスされてから上記マイクロプロセッシング
    ユニットによって書き換えられるまでは、上記DMA制
    御回路の再アクセスが禁止されるフラグとを有し、デー
    タバッファの属性情報を有すると共にポインタ情報によ
    って連鎖可能にされた複数のディスクリプタと、上記デ
    ィスクリプタを順次参照しながらデータのチェインブロ
    ック転送を制御可能なDMA制御部とを用いるチェイン
    ブロック転送方法であって、 上記DMA制御部がポインタ情報に基づいて上記ディス
    クリプタをリードする第1リード処理と、 上記第1処理でリードされたディスクリプタに含まれて
    いる上記フラグが所定論理値に変化されるのを待つポー
    リング処理と、 上記フラグの論理値がマイクロプロセッシングユニット
    によって書き換えられる前に、上記マイクロプロセッシ
    ングユニットが上記第1ポインタ及び上記第2ポインタ
    を更新するポインタ更新処理と、 上記フラグが上記マイクロプロセッシングユニットによ
    って所定論理値に変化されることにより上記ポーリング
    処理が終了された後、上記ポーリング処理が終了された
    ディスクリプタにおける上記第1ポインタ及び上記第2
    ポインタを上記DMA制御部が再リードする第2リード
    処理と、を含むことを特徴とするチェインブロック転送
    方法。
  4. 【請求項4】 上記ポーリングのインターバルタイム
    は、そのときの上記マイクロプロセッシングユニットの
    負荷に応じて制御される請求項1乃至3の何れか1項記
    載のチェインブロック転送方法。
  5. 【請求項5】 複数のデータバッファと、上記データバ
    ッファに対応して形成され、上記データバッファの属性
    情報を有すると共にポインタ情報によって連鎖可能にさ
    れた複数のディスクリプタと、上記ディスクリプタを順
    次参照しながらデータのチェインブロック転送を制御可
    能なDMA制御部と、上記ディスクリプタの書き換えを
    可能とするマイクロプロセッシングユニットと、を含む
    通信制御装置であって、 上記ディスクリプタは、次にアクセスされるディスクリ
    プタのスタートアドレスが設定される第1ポインタと、
    そのディスクリプタに属するデータバッファのスタート
    アドレスが設定される第2ポインタと、上記DMA制御
    部によって一度アクセスされてから上記マイクロプロセ
    ッシングユニットによって書き換えられるまでは、上記
    DMA制御回路の再アクセスが禁止されるフラグとを含
    み、 DMA制御部は、上記ディスクリプタにおける上記フラ
    グの論理状態に基づくポーリングが行われるとき、その
    ポーリングの終了後に当該ディスクリプタを再リードす
    るための制御回路を含んで成ることを特徴とする通信制
    御装置。
  6. 【請求項6】 複数のデータバッファと、上記データバ
    ッファに対応して形成され、上記データバッファの属性
    情報を有すると共にポインタ情報によって連鎖可能にさ
    れた複数のディスクリプタと、上記ディスクリプタを順
    次参照しながらデータのチェインブロック転送を制御可
    能なDMA制御部と、上記ディスクリプタの書き換えを
    可能とするマイクロプロセッシングユニットと、を含む
    通信制御装置であって、 上記ディスクリプタは、次にアクセスされるディスクリ
    プタのスタートアドレスが設定される第1ポインタと、
    そのディスクリプタに属するデータバッファのスタート
    アドレスが設定される第2ポインタと、上記DMA制御
    部によって一度アクセスされてから上記マイクロプロセ
    ッシングユニットによって書き換えられるまでは、上記
    DMA制御回路の再アクセスが禁止されるフラグと、再
    リード処理を有効にするか否かが設定される選択ビット
    とを含み、 上記DMA制御部は、上記選択ビットによって上記再リ
    ード処理が有効とされ、且つ、上記ディスクリプタにお
    ける上記フラグの論理状態に基づくポーリングが行われ
    るとき、そのポーリングの終了後に当該ディスクリプタ
    を再リードするための制御回路を含んで成ることを特徴
    とする通信制御装置。
  7. 【請求項7】 複数のデータバッファと、上記データバ
    ッファに対応して形成され、上記データバッファの属性
    情報を有すると共にポインタ情報によって連鎖可能にさ
    れた複数のディスクリプタと、上記ディスクリプタを順
    次参照しながらデータのチェインブロック転送を制御可
    能なDMA制御部と、上記ディスクリプタの書き換えを
    可能とするマイクロプロセッシングユニットと、を含む
    通信制御装置であって、 上記ディスクリプタは、次にアクセスされるディスクリ
    プタのスタートアドレスが設定される第1ポインタと、
    そのディスクリプタに属するデータバッファのスタート
    アドレスが設定される第2ポインタと、上記DMA制御
    部によって一度アクセスされてから上記マイクロプロセ
    ッシングユニットによって書き換えられるまでは、上記
    DMA制御回路の再アクセスが禁止されるフラグとを含
    み、 DMA制御部は、上記ディスクリプタの所望アドレスを
    退避可能なレジスタと、上記ディスクリプタにおける所
    定フラグの論理状態に基づいてポーリングが行われると
    き、そのポーリングが終了後に、上記レジスタの保持情
    報に基づいて当該ディスクリプタを再リードするための
    制御回路と、を含んで成ることを特徴とする通信制御装
    置。
  8. 【請求項8】 複数のデータバッファと、上記データバ
    ッファに対応して形成され、上記データバッファの属性
    情報を有すると共にポインタ情報によって連鎖可能にさ
    れた複数のディスクリプタと、上記ディスクリプタを順
    次参照しながらデータのチェインブロック転送を制御可
    能なDMA制御部と、上記ディスクリプタの書き換えを
    可能とするマイクロプロセッシングユニットと、を含む
    通信制御装置であって、 上記ディスクリプタは、上記DMA制御部が一度アクセ
    スしたディスクリプタを上記マイクロプロセッシングユ
    ニットが書き換える前に再アクセスしないためのフラグ
    に基づいて行われる処理を有効にするか否かを設定する
    ための機能選択用ビットを含み、 DMA制御部は、上記ディスクリプタの所望アドレスを
    退避しておくためのレジスタと、上記機能選択用ビット
    によって上記処理が有効とされる場合の上記ディスクリ
    プタにおける上記フラグの論理状態に基づくポーリング
    が行われるとき、そのポーリングの終了後に、上記レジ
    スタの保持情報に基づいて当該ディスクリプタを再リー
    ドするための制御回路と、を含んで成ることを特徴とす
    る通信制御装置。
  9. 【請求項9】 複数のデータバッファと、上記データバ
    ッファに対応して形成され、上記データバッファの属性
    情報を有すると共にポインタ情報によって連鎖可能にさ
    れた複数のディスクリプタと、上記ディスクリプタを順
    次参照しながらデータのチェインブロック転送を制御可
    能なDMA制御部と、上記ディスクリプタの書き換えを
    可能とするマイクロプロセッシングユニットと、を含む
    通信制御装置であって、 上記ディスクリプタは、上記DMA制御部によって一度
    アクセスされてから上記マイクロプロセッシングユニッ
    トによって書き換えられるまでは、上記DMA制御回路
    の再アクセスが禁止されるフラグを有するステータス
    が、上記ディスクリプタのスタートアドレスに配置さ
    れ、上記ステータスの後には、次にアクセスされるディ
    スクリプタのスタートアドレスが設定される第1ポイン
    タと、そのディスクリプタに属するデータバッファのス
    タートアドレスが設定される第2ポインタとが配置さ
    れ、 上記DMA制御部は、上記ディスクリプタにおける上記
    フラグの論理状態に基づくポーリングが行われるとき、
    そのポーリングの終了後に、上記第1ポインタから順に
    当該ディスクリプタをリードするための制御回路を含ん
    で成ることを特徴とする通信制御装置。
  10. 【請求項10】 上記DMA制御部は、上記マイクロプ
    ロセッシングユニットの負荷に応じて上記ポーリングの
    インターバルタイムを制御するためのインターバルタム
    調整回路を含む請求項4乃至9の何れか1項記載の通信
    制御装置。
  11. 【請求項11】 上記ディスクリプタと上記DMA制御
    部とは、互いに共通の半導体チップに形成され、上記デ
    ータバッファは、上記ディスクリプタとは異なる半導体
    チップに形成された請求項4乃至9の何れか1項記載の
    通信制御装置。
JP2001351538A 2001-11-16 2001-11-16 チェインブロック転送方法及び通信制御装置 Withdrawn JP2003150534A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001351538A JP2003150534A (ja) 2001-11-16 2001-11-16 チェインブロック転送方法及び通信制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001351538A JP2003150534A (ja) 2001-11-16 2001-11-16 チェインブロック転送方法及び通信制御装置

Publications (1)

Publication Number Publication Date
JP2003150534A true JP2003150534A (ja) 2003-05-23

Family

ID=19163839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001351538A Withdrawn JP2003150534A (ja) 2001-11-16 2001-11-16 チェインブロック転送方法及び通信制御装置

Country Status (1)

Country Link
JP (1) JP2003150534A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502976A (ja) * 2004-06-15 2008-01-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 分割トランザクションを処理するためのバス・コントローラ
CN109783403A (zh) * 2017-11-10 2019-05-21 深圳超级数据链技术有限公司 读取数据的方法、装置和数据处理器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502976A (ja) * 2004-06-15 2008-01-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 分割トランザクションを処理するためのバス・コントローラ
JP4837659B2 (ja) * 2004-06-15 2011-12-14 エヌエックスピー ビー ヴィ 分割トランザクションを処理するためのバス・コントローラ
US8713239B2 (en) 2004-06-15 2014-04-29 Nxp B.V. Bus controller for handling split transactions
CN109783403A (zh) * 2017-11-10 2019-05-21 深圳超级数据链技术有限公司 读取数据的方法、装置和数据处理器

Similar Documents

Publication Publication Date Title
US6145016A (en) System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
JP3336816B2 (ja) マルチメディア通信装置及び方法
US20040107265A1 (en) Shared memory data transfer apparatus
US5594927A (en) Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits
US20020184453A1 (en) Data bus system including posted reads and writes
JPS62221057A (ja) ポインタアドレスを発生するための装置および方法
JPH09325947A (ja) コマンドおよびデータ情報を装置に原子的に転送する方法及び装置
US5130981A (en) Three port random access memory in a network bridge
US5426737A (en) Direct memory access for data transfer within an I/O device
US7165126B2 (en) Direct memory access device
JP2001188748A (ja) データ転送装置
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
US20080320178A1 (en) DMA transfer apparatus
JP2003150534A (ja) チェインブロック転送方法及び通信制御装置
JPH0793274A (ja) データ転送方式及びデータ転送装置
US20030182517A1 (en) Method and system for buffering multiple requests from multiple devices to a memory
JP2723970B2 (ja) データ転送制御装置
US20080228961A1 (en) System including virtual dma and driving method thereof
JP2000215154A (ja) Dmaコントロ―ラ
JP2002176464A (ja) ネットワークインタフェース装置
JP2724797B2 (ja) ダイレクト・メモリ・アクセス・システム
JP2000259523A (ja) データ転送装置、lan通信システム及びデータ転送方法
US6763405B2 (en) Process for interfacing a microprocessor with a packet based device and respective system
JP2003303168A (ja) 通信制御用半導体集積回路
JPH0310354A (ja) データ転送制御システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050201