JP2003087338A - データ伝送装置 - Google Patents

データ伝送装置

Info

Publication number
JP2003087338A
JP2003087338A JP2001274001A JP2001274001A JP2003087338A JP 2003087338 A JP2003087338 A JP 2003087338A JP 2001274001 A JP2001274001 A JP 2001274001A JP 2001274001 A JP2001274001 A JP 2001274001A JP 2003087338 A JP2003087338 A JP 2003087338A
Authority
JP
Japan
Prior art keywords
data
sram
fifo
external bus
transmission device
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.)
Granted
Application number
JP2001274001A
Other languages
English (en)
Other versions
JP3599692B2 (ja
Inventor
Hideyo Tsuruta
英世 鶴田
Yoshihiro Tahira
由弘 田平
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 JP2001274001A priority Critical patent/JP3599692B2/ja
Publication of JP2003087338A publication Critical patent/JP2003087338A/ja
Application granted granted Critical
Publication of JP3599692B2 publication Critical patent/JP3599692B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 データ伝送装置の回路規模を削減して、コス
ト削減及び低消費電力化を図る。 【解決手段】 外部バスから受信したデータの出力、又
は入力されたデータの外部バスへの送信を行うデータ伝
送装置であって、プログラムに従って動作するシステム
制御手段と、外部バスとの間でデータの送信又は受信を
する外部バスインターフェイス(IF)と、DRAM
と、システム制御手段が読み書きを行う領域と、外部バ
スIFとDRAMとの間で転送されるデータを格納し、
格納した順に出力するFIFO領域とを有するSRAM
と、SRAMに読み書きをするためのポインタを管理す
るFIFO周辺回路とを備える。DRAMは、データ受
信時には、外部バスIFが受信したデータを、必要に応
じてFIFO領域を経由して、受け取って出力し、デー
タ送信時には、入力されたデータを格納し、これを外部
バスIFへ、必要に応じてFIFO領域を経由して、転
送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ等と
光ディスク装置等との間でバスを介してデータを伝送す
る際の制御を行うデータ伝送装置に関する。
【0002】
【従来の技術】IEEE1394やUSB(universal
serial bus)、ATAPI(AT attachment packet int
erface)、SCSI(small computer system interfac
e)、Bluetooth等の標準バスの規格化がエレクトロニク
ス業界において続々と進行しつつある。これらの標準バ
スとの間のインターフェイスがPC、ストレージデバイ
ス、ディジタルAV機器、携帯電話等の情報機器に普及
することにより、多様な機器間の通信やデータ交換が促
進され、容易になる。情報機器の機能の大部分はシステ
ムLSIによって実現されており、システムLSIに標
準バスとの間のインターフェイスを内蔵し、かつ、低コ
スト化、低電力化することが要望されている。
【0003】図37は、従来のデータ伝送装置の構成の
例を示すブロック図である。このデータ伝送装置は、標
準バスインターフェイスを内蔵し、システムLSIとし
て実現されている。図37において、送受信FIFO
(first in, first out)バッファ(以下では、単にF
IFOと称する)927は、データを格納する1ポート
のSRAMと、FIFO内でデータが格納された領域の
トップのアドレスを指し示すポインタ、及びボトムのア
ドレスを指し示すポインタを格納するレジスタとを備え
ている。FIFOバッファの容量が小さい場合、フリッ
プフロップで構成されたシフトレジスタとポインタを格
納するレジスタとで実現することも可能である。FIF
O927は、受信時及び送信時において、外部バスイン
ターフェイス916とDRAM921との間の転送速度
差を吸収する緩衝メモリとして動作する。
【0004】DMAコントローラ(DMAC)911,
912は、それぞれDMAチャネル1(DMAch1)
及びDMAチャネル2(DMAch2)によるデータ転
送を制御する。DMAch1により、外部バスインター
フェイス916とFIFO927との間でデータが転送
される。DMAch2により、FIFO927とDRA
M921との間でデータが転送される。
【0005】外部バスEBからデータを受信する場合、
受信されたデータは、DMAch1によってFIFO9
27に転送され、更にDMAch2によってDRAM9
21に転送される。DRAM921にバッファリングさ
れたデータは、後にホストPCやストレージ等の他の機
器に転送される。外部バスEBへデータを送信する場
合、送信すべきデータは、まずDRAM921に格納さ
れる。その後、DRAM921から読み出されたデータ
は、DMAch2によってFIFO927に転送され、
更にDMAch1によって外部バスインターフェイス9
16に転送され、外部バスEBへ送信される。
【0006】図37のデータ伝送装置の動作を説明す
る。図37のデータ伝送装置は、次のようなステップに
よって外部バスEBからデータを受信する。
【0007】[ステップ1]外部バスインターフェイス
916が、外部バスEBから送られて来たデータを受け
取る。
【0008】[ステップ2]DMAch1によるFIF
O927への書き込み FIFO927がフルでなければ、DMAch1によ
り、外部バスインターフェイス916のワード単位のデ
ータがFIFO927に転送される。FIFO927が
フルであれば、DMAch1はFIFO927に空きが
できるまで転送を待つ。
【0009】[ステップ3]DMAch2によるFIF
O927からの読み出し FIFO927が空でなければ、DMAch2によって
FIFO927からデータが読み出され、DRAM92
1に書きこまれる。FIFO927が空であれば、DM
Ach2はFIFO927にデータが入るまで待つ。
[終わり]。
【0010】また、図37のデータ伝送装置は、次のよ
うなステップによって外部バスEBにデータを送信す
る。
【0011】[ステップ1]DMAch2によるFIF
O927への書き込み FIFO927がフルでなければ、DMAch2によ
り、DRAM921から読み出されたワード単位のデー
タがFIFO927に書き込まれる。FIFO927が
フルであれば、DMAch2はFIFO927に空きが
できるまで書き込みを待つ。
【0012】[ステップ2]DMAch1によるFIF
O927からの読み出し FIFO927が空でなければ、DMAch1によって
FIFO927からデータが読み出され、外部バスイン
ターフェイス916に転送される。FIFO927が空
であれば、DMAch1はFIFO927にデータが入
るまで待つ。
【0013】[ステップ3]外部バスインターフェイス
916は、FIFO927から受け取ったデータを外部
バスEBに送信し、そのデータは転送先に転送される。
[終わり]。
【0014】このような従来のデータ伝送装置において
は、DRAM921、CPU913用のデータRAMと
してのSRAM922の他に、FIFO927が必要で
あった。
【0015】
【発明が解決しようとする課題】このように、従来のデ
ータ伝送装置は、外部バスとデータ伝送装置内部の回路
との間のデータ転送速度の差を緩衝するために、独立し
たFIFOバッファを必要としており、回路規模の増大
につながっていた。
【0016】また、受信したパケットのヘッダをCPU
等がファームウェアによって解析処理する場合には、受
信して格納したパケットをCPU等がアクセスできるメ
モリにコピーする必要があり、データ転送速度の低下の
原因となっていた。
【0017】本発明は、データ伝送装置の回路規模を削
減して、コスト削減及び低消費電力化を図ることを目的
とする。
【0018】また、本発明は、データ伝送装置のデータ
転送速度を向上させることを目的とする。
【0019】
【課題を解決するための手段】前記課題を解決するた
め、請求項1の発明が講じた手段は、データ伝送装置と
して、外部バスから受信したデータの出力、又は入力さ
れたデータの前記外部バスへの送信を行うデータ伝送装
置であって、プログラムに従って動作するシステム制御
手段と、前記外部バスとの間でデータの送信又は受信を
する外部バスインターフェイスと、DRAM(dynamic
random access memory)と、前記システム制御手段が読
み書きを行う領域と、前記外部バスインターフェイスと
前記DRAMとの間で転送されるデータを格納し、格納
した順に出力するFIFO(firstin, first out)領域
とを有するSRAM(static random access memory)
と、前記SRAMが前記FIFO領域に格納したデータ
を格納した順に出力するように、前記SRAMに読み書
きをするためのポインタを管理するFIFO周辺回路と
を備えるものであり、前記DRAMは、データ受信時に
は、前記外部バスインターフェイスが受信したデータ
を、必要に応じて前記FIFO領域を経由して、受け取
って出力し、データ送信時には、入力されたデータを格
納し、これを前記外部バスインターフェイスへ、必要に
応じて前記FIFO領域を経由して、転送するものであ
る。
【0020】請求項1の発明によると、SRAMにFI
FO領域を設けるので、独立したFIFOバッファを備
える必要がない。すなわち、SRAMとFIFOバッフ
ァとを一体化することができるので、回路規模を削減す
ることができる。また、SRAMを検査すればFIFO
領域の検査も行われるので、製造後の品質保証のための
検査が容易になる。
【0021】また、請求項2の発明は、請求項1に記載
のデータ伝送装置において、前記外部バスとは異なる外
部バスとの間でデータの送信又は受信をする外部バスイ
ンターフェイスを更に備え、前記SRAMは、前記各外
部バスインターフェイスに対応し、対応する外部バスイ
ンターフェイスと前記DRAMとの間で転送されるデー
タを入出力するためのポートを備えるものであり、前記
システム制御手段は、前記ポートのいずれかを用いて前
記SRAMにデータを読み書きすることができるように
構成されているものである。
【0022】請求項2の発明によると、SRAMは複数
のポートを有するので、システム制御手段によるSRA
Mに対するアクセスを高速化することができる。また、
SRAMのポート数以上の数の外部バスを接続しても転
送性能がほとんど低下しない。更に、SRAMに複数の
FIFO領域を設け、複数のFIFOバッファとして動
作させることができる。
【0023】また、請求項3の発明では、請求項1に記
載のデータ伝送装置において、前記SRAMは、前記シ
ステム制御手段との間でデータを入出力するためのポー
トと、前記外部バスインターフェイスと前記DRAMと
の間で転送されるデータを入出力するためのポートとを
備えるものである。
【0024】請求項3の発明によると、SRAMはシス
テム制御手段のためのポートを有するので、システム制
御手段がSRAMに対して0ウェイトでアクセスできる
ようになる。
【0025】また、請求項4の発明は、請求項1に記載
のデータ伝送装置において、周波数が、当該データ伝送
装置の基本クロックのN(Nは2以上の整数)倍である
クロックに基づいて動作するSRAMを有し、前記基本
クロックに同期してデータを出力するSRAM部を、前
記SRAMに代えて備えるものである。
【0026】請求項4の発明によると、SRAMの動作
周波数が高いので、複数のポートを備えるのと同様の効
果が得られる。すなわち、システム制御手段によるSR
AMに対するアクセスを高速化すること等が可能とな
る。
【0027】また、請求項5の発明では、請求項1に記
載のデータ伝送装置において、前記FIFO周辺回路
は、前記FIFO領域の上限アドレス及び下限アドレ
ス、並びに次に読み出されるデータのアドレスを示す読
み出しポインタ及び次にデータが書き込まれるアドレス
を示す書き込みポインタを格納するレジスタと、前記F
IFO領域から読み出しが行われた場合に、前記読み出
しポインタを更新する手段と、前記FIFO領域に書き
込みが行われた場合に、前記書き込みポインタを更新す
る手段と、前記FIFO領域が有効なデータを格納して
いない空の状態であることを判定する手段と、前記FI
FO領域が新たなデータを格納することができないフル
状態であることを判定する手段とを備えるものである。
【0028】請求項5の発明によると、FIFO領域を
プログラマブルにすることができるので、データ転送速
度に応じてFIFOバッファの容量を変えることができ
る。
【0029】また、請求項6の発明では、請求項5に記
載のデータ伝送装置において、前記FIFO周辺回路
は、前記FIFO領域がフル状態であることを示すフラ
グを格納するレジスタを更に備えるものである。
【0030】また、請求項7の発明は、請求項1に記載
のデータ伝送装置において、前記外部バスインターフェ
イスが前記外部バスから受信したデータを格納して、前
記SRAM又は前記DRAMに転送するキャッシュを更
に備えるものである。
【0031】また、請求項8の発明は、請求項7に記載
のデータ伝送装置において、データ受信時であって、前
記FIFO領域が空のとき、前記キャッシュが格納した
データを、前記SRAMを経由することなく前記DRA
Mに転送するように構成されたものである。
【0032】また、請求項9の発明は、請求項7に記載
のデータ伝送装置において、前記外部バスに送信すべき
データを格納して、前記外部バスインターフェイスに転
送する送信用キャッシュを更に備えるものである。
【0033】請求項9の発明によると、受信用及び送信
用のキャッシュを備えるので、DMAによるSRAMへ
のトラフィックを削減することができる。
【0034】また、請求項10の発明では、請求項7に
記載のデータ伝送装置において、前記キャッシュは、デ
ータ送信時には、前記外部バスから受信したデータに代
えて、前記外部バスに送信すべきデータを格納して、前
記外部バスインターフェイスに転送する双方向キャッシ
ュであることを特徴とする。
【0035】また、請求項11の発明では、請求項7に
記載のデータ伝送装置において、前記キャッシュは、複
数のワードを格納し、格納したデータを格納した順に出
力するように構成されているものである。
【0036】請求項11の発明によると、複数のワード
を格納することができるので、DMAによるSRAMへ
のトラフィックを大きく削減することができる。
【0037】また、請求項12の発明は、請求項1に記
載のデータ伝送装置において、前記DRAMが出力した
データを、前記SRAMを経由することなく前記外部バ
スインターフェイスに転送する経路を有するものであ
る。
【0038】請求項12の発明によると、送信の場合
に、SRAMのポートのトラフィックを減少させること
ができるので、システム制御手段がSRAMへのアクセ
スを待つ時間を減少させ、システム制御手段の処理性能
を高めることができる。
【0039】また、請求項13の発明は、請求項1に記
載のデータ伝送装置において、前記外部インターフェイ
スが受信したデータがパケットのヘッダとデータ部との
いずれであるかを判定する受信用フィルタと、前記受信
用フィルタが、受信しているデータがヘッダであると判
定した場合には、当該ヘッダを前記SRAMの前記シス
テム制御手段が読み書きを行う領域へ格納させるように
転送パスを制御し、前記受信用フィルタが、受信してい
るデータがデータ部であると判定した場合には、当該デ
ータ部を前記SRAMのFIFO領域に格納させてから
前記DRAMへ格納させるように転送パスを制御し、か
つ、1つのパケットの転送が終了したか否かを判定する
転送管理手段と、前記転送管理手段が、1つのパケット
の転送が終了したと判定したことを、前記システム制御
手段に割り込みを行って通知する割り込み制御手段とを
備えるものである。
【0040】請求項13の発明によると、ヘッダをSR
AMのFIFO領域に転送する必要がなくなるので、デ
ータ伝送装置内のデータ転送量を削減し、データ伝送装
置全体の性能を向上させることができる。
【0041】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら説明する。
【0042】(第1の実施形態)図1は、本発明の第1
の実施形態に係るデータ伝送装置の構成の例を示すブロ
ック図である。図1のデータ伝送装置は、DMA(dire
ct memory access)コントローラ(以下では、DMAC
と称する)11と、DMAC12と、システム制御手段
としてのCPU(central processing unit)13と、
転送管理手段としての転送管理ユニット14と、外部バ
スインターフェイス16と、DRAM(dynamic random
access memory)コントローラ18と、DRAM21
と、SRAM(static random access memory)22
と、キャッシュブロック23と、FIFO周辺回路30
と、セレクタ51,52,53,54,55,56とを
備えている。キャッシュブロック23は、双方向キャッ
シュ24と、有効フラグレジスタ25とを備えている。
【0043】外部バスEBは、電気若しくは光ケーブ
ル、又は無線伝送路等で実現され、高速転送に適した物
理信号フォーマットで情報を伝達する。外部バスEB
は、例えば、IEEE1394規格によるバスであると
する。
【0044】DRAM21には、光ディスクドライブ等
が接続されているものとする。また、外部バスEBに
は、ホストコンピュータ等が接続されている。図1のデ
ータ伝送装置は、外部バスEBから受信したデータの光
ディスクドライブ等への出力、又は光ディスクドライブ
等から入力されたデータの外部バスEBへの送信を行
う。
【0045】図1のデータ伝送装置は、1ワード(WL
バイト)を単位としてデータを転送するものとする。ま
た、WLバイト=DLビットとする(DL=WL×
8)。CPU13、DRAM21、SRAM22、双方
向キャッシュ24等に接続されたデータバスの幅は、W
Lバイトであるとして説明するが、WLバイトの整数倍
であってもよい。各バスの幅はそれぞれ異なっていても
よい。以下のブロック図においては、太線はデータバス
等のデータの経路を示している。
【0046】DMAC11,12は、DMAによるデー
タ転送を制御する。DMAC11,12が制御するデー
タ転送を、それぞれDMAch1、DMAch2による
転送と称する。以下では、DMAC11がDMAch1
による書き込み等を行うことを、DMAch1が書き込
み等を行うともいう。DMAC12についても同様であ
る。
【0047】DMAC11は、外部バスEBとSRAM
22内のFIFO領域との間の双方向データ転送(DM
Ach1)を制御する。DMAC12は、SRAM22
内のFIFO領域とDRAM21との間の双方向データ
転送(DMAch2)を制御する。
【0048】CPU13は、プログラムに従って動作
し、DRAM21に接続された光ディスクドライブ等の
制御を行う。CPU13は、MCU(micro-controller
unit)又は組み込みマイコン(micro-computer、又はm
icro-controller)と呼ばれることもある。CPU13
が実行する命令を有するプログラム(ファームウェア)
は、主に命令ROMやフラッシュメモリ(いずれも図示
せず)等から供給される。
【0049】転送管理ユニット14は、例えばバスコン
トローラであって、データ伝送装置全体のデータ転送を
管理している。転送管理ユニット14は、DMAC1
1,12及びセレクタ51〜57等を制御しており、ま
た、CPU13にウェイトをかけることができる。
【0050】転送管理ユニット14は、DRAM21や
SRAM22に対するアクセスを行う3つの制御装置
(以下では、アクセス主体と称する)、CPU13、D
MAC11、及びDMAC12に対する制御を行う。す
なわち、転送管理ユニット14は、メモリに対するアク
セスのCPU13、DMAch1、及びDMAch2の
間での切り替え、これらの優先順を考慮した調停、DM
Aによるデータ転送中であってCPU13がメモリアク
セスできない場合におけるCPU13に対するウェイト
制御等を行う。
【0051】外部バスインターフェイス16は、外部バ
スEBと、リンク層と呼ばれる図1のデータ伝送装置の
内部ディジタル回路との間を橋渡しする物理層の回路で
ある。外部バスインターフェイス16は、外部バスEB
から受信したデータをDRAM21に転送し、DRAM
21から転送されてきたデータを外部バスEBに出力す
る。外部バスインターフェイス16は、外部バスEBの
ビット幅と内部バスのビット幅との間でバス幅を変換す
る回路も有している。
【0052】DRAMコントローラ18は、DRAM2
1に対して制御信号DCNを出力して、複数の回路から
のDRAM21に対するアクセス要求を調停し、DRA
M21に対する読み書きのタイミングを制御する。ま
た、DRAMコントローラ18は、DRAM21に対し
てアドレスDADを出力し、DRAM21との間でデー
タDDTを入出力する。
【0053】DRAM21は、比較的低速大容量の汎用
メモリである。SRAM22は、比較的高速小容量の汎
用メモリであり、CPU13が作業用に使用するCPU
使用領域CRと、FIFO(first in, first out)バ
ッファ(仮想FIFO)として使用されるFIFO領域
FRとを有している。
【0054】DRAM21は、外部バスインターフェイ
ス16が外部バスEBから受信したデータを、SRAM
22内のFIFO領域FR及び双方向キャッシュ24の
うちの少なくとも一方と、DRAMコントローラ18と
を経由して受信する。また、DRAM21は、DRAM
コントローラ18、SRAM22内のFIFO領域F
R、及び外部バスインターフェイス16を経由して、外
部バスEBにデータを送信する。
【0055】DRAM21は、パケットと呼ばれる伝送
データ単位を格納する。DRAM21の読み出し又は書
き込みのためには、制御信号として一般的にロウアドレ
スストローブRAS、コラムアドレスストローブCA
S、書き込みイネーブルWE、出力イネーブルOE等が
使われる。
【0056】DRAM21は、CPU13の外部記憶ア
ドレス領域に割り当てられており、CPU13は、DR
AM21に直接アクセスすることができる。ただし、D
RAM21は、SRAM22よりもアクセス時間が長
い。また、リフレッシュやアクセス競合、ページミスヒ
ット等のため、アクセス時間は一定ではなく、ウェイト
数は可変である。
【0057】SRAM22のFIFO領域FRは、受信
時及び送信時において、データを一時的に格納して、外
部バスインターフェイス16とDRAM21との間の転
送速度差を吸収するバッファとして動作する。SRAM
22は、DRAM21に比べビット当たりの面積が大き
いため、LSI上に大容量を実装することができない。
【0058】DRAM21には、CPU13、及びDM
Ach2以外のDMAチャネルによるアクセスも行われ
るので(ただし、DMAch1によるアクセスは行われ
ない)、外部バスEBにデータを送信する場合、DMA
ch2の転送速度がDMAch1よりも一時的に遅くな
ることがある。その際にも、DMAch1の要求に応じ
てDRAM21内のデータを転送することができるよう
に、SRAM22は充分な大きさのFIFO領域FRを
有する必要がある。
【0059】SRAM22には、読み出し又は書き込み
のために入力される制御信号として、一般的にチップセ
レクトCS、バイトイネーブルBE、書き込みイネーブ
ルWE、読み出しイネーブルRE等が使われる。更に同
期式SRAMの場合、SRAMは入力されるクロックC
LKに同期してアクセスされる。以下では、SRAM2
2に入力されるアドレスを表す信号は、これらの制御信
号を含んでいるものとする。
【0060】SRAM22は、CPU13の内部記憶ア
ドレス領域に割り当てられており、CPU13は、SR
AM22に固定ウェイトで直接アクセスできる。アクセ
スの際のウェイトは、例えば0ウェイトとすることがで
きる。
【0061】双方向キャッシュ24は、例えば1ワード
のデータを格納することができるフリップフロップであ
って、受信時及び送信時にSRAM22のFIFO領域
FRへのアクセスを軽減するための迂回パスとして動作
する。
【0062】有効フラグレジスタ25は、双方向キャッ
シュ24に有効な値が入っているか否かを示す有効フラ
グVを格納する1ビットレジスタである。有効フラグV
は、その値が1のときには双方向キャッシュ24に有効
なデータが格納されている状態を表し、その値が0のと
きには双方向キャッシュ24が空である、すなわち、読
み出すべき有効なデータが存在しない状態を表す。DM
AC11及び12は、双方向キャッシュ24が有効なデ
ータを保持しているか否かを判断するために、有効フラ
グVの値を参照する。
【0063】FIFO周辺回路30は、SRAM22の
FIFO領域FRを仮想FIFOとして用いるための制
御を行う。すなわち、SRAM22がFIFO領域FR
に格納したデータを格納した順に出力するように、SR
AM22に読み書きをするためのポインタを管理する。
【0064】セレクタ51は、SRAM22及び外部バ
スインターフェイス16の出力のうちの1つを選択し、
双方向キャッシュ24に出力する。セレクタ52は、受
信時において、双方向キャッシュ24が格納するデータ
と外部バスインターフェイス16の出力とのうちのいず
れかを選択し、セレクタ55を介してSRAM22に出
力する。出力されたデータは、SRAM22のFIFO
領域FRに書き込まれる。セレクタ53は、送信時にお
いて、双方向キャッシュ24が格納するデータとSRA
M22の出力とのうちのいずれかを選択し、外部バスイ
ンターフェイス16に出力する。
【0065】セレクタ54,55,56は、それぞれD
RAM21、SRAM22、CPU13への書き込みデ
ータを選択する。セレクタ57は、CPU13が出力す
るアドレス信号CADとFIFO周辺回路30が出力す
るアドレス信号FADとのうちのいずれかを選択し、ア
ドレス信号SADとしてSRAM22に出力する。アド
レス信号CAD,FAD,SADはいずれも、アドレ
ス、チップセレクトCS、書き込みイネーブルWE、バ
イトイネーブルBE等の信号を含んでいる。
【0066】CPUが作業用に用いるSRAMをFIF
Oバッファとしても用いると、SRAMに対するアクセ
ス競合がシステム性能のボトルネックになる。図1のデ
ータ伝送装置では、仮想FIFOの他に双方向キャッシ
ュ24を備えているので、読み出し及び書き込みの際の
SRAMのポートのトラフィックを緩和することができ
る。
【0067】図2は、仮想FIFOの構成を示すブロッ
ク図である。図2のように、SRAM22は、CPU1
3が作業用に使用するCPU使用領域CRと、FIFO
バッファとして使用されるFIFO領域FRとを有して
いる。通常、CPU13はCPU使用領域CRにアクセ
スしてデータ処理を行い、DMAC11,12はFIF
O領域FRにアクセスしてデータ転送を行う。
【0068】SRAM22に読み書きをするアクセスを
行うことができるのは、CPU13、DMAch1(D
MAC11)、DMAch2(DMAC12)のいずれ
かである。SRAM22は1ポートしか有していないの
で、同時に2以上のアクセスを受けることはできない。
【0069】SRAM22のFIFO領域FRと、FI
FO周辺回路30とを有するソフトウェア制御可能なF
IFOバッファを仮想FIFOと称することとする。仮
想FIFOは、SRAM22のFIFO領域FRをリン
グバッファとして用いるものである。DMAch1及び
DMAch2は、仮想FIFOを介して転送データの引
き渡しを互いに行う。CPU13が実行するプログラム
は、転送データが壊れないように、DMA転送中におい
てはCPU13がFIFO領域FRに書き込みを行わな
いようなものである必要がある。
【0070】FIFO周辺回路30は、FIFO領域の
上限アドレスUB、及び下限アドレスLBをそれぞれ格
納するレジスタ31,32と、読み出しポインタRP、
書き込みポインタWP、フルフラグF、及び空フラグE
をそれぞれ格納するレジスタ33,34,35,36
と、セレクタ41,42,43と、増分器44,45と
を備えている。フルフラグFは、その値が“1”である
とき、FIFO領域FRがそれ以上新たなデータを格納
することができないフル状態であることを示す。
【0071】転送管理ユニット14は、レジスタ31,
32,33,34,35の値を入力としており、これら
の値に従って、セレクタ41,42,43及び増分器4
4,45を制御して、以下のような動作を行わせる。
【0072】読み出しポインタRPに対する初期化、又
は読み出しポインタRPが上限アドレスUBに達するオ
ーバーフローが発生すると、セレクタ42は、レジスタ
32の出力を選択し、読み出しポインタRPが下限アド
レスLBになるようにする。同様に、書き込みポインタ
WPに対する初期化、又は書き込みポインタWPが上限
アドレスUBに達するオーバーフローが発生すると、セ
レクタ43は、レジスタ32の出力を選択し、書き込み
ポインタWPが下限アドレスLBになるようにする。
【0073】初期化及びオーバーフローがいずれも発生
していないとき、セレクタ42,43は、それぞれレジ
スタ33,34の出力を選択している。仮想FIFOに
対する読み出し、書き込みが発生すると、アドレス増分
器44,45は、それぞれ読み出しポインタRP,書き
込みポインタWPをWLだけ増加させる。セレクタ41
は、仮想FIFOからの読み出し時には、レジスタ33
が出力する読み出しポインタRPを、仮想FIFOへの
書き込み時には、レジスタ34が出力する書き込みポイ
ンタWPを選択し、セレクタ57に出力する。
【0074】CPU13が、レジスタ31の上限アドレ
スUB、又はレジスタ32の下限アドレスLBを書き換
えると、SRAM22のFIFO領域FRを変更するこ
とができる。なお、FIFO領域FRを固定しておく場
合は、レジスタ31,32は不要である。
【0075】図3は、FIFO領域FRと各ポインタと
の関係の一例を示す説明図である。SRAM22内のF
IFO領域FRのアドレスはLBからUB−WLまでで
あり、FIFO容量は(UB−LB)ワードである。F
IFO領域FRの上限及び下限は、SRAM22のワー
ド境界にアラインメントされている。
【0076】FIFO領域FRにおいて、有効なデータ
のうち最も新しいもの及び最も古いものの位置を、それ
ぞれFIFOトップ及びFIFOボトムと称することと
する。FIFO領域FRへの書き込みの際にはアドレス
が順次増加するので、書き込みが最後に行われたデータ
はFIFOトップに格納され、読み出しが最初に行われ
るべきデータはFIFOボトムに格納されている。書き
込みポインタWPは、次にデータが書き込まれるアドレ
ス、すなわち、FIFOトップのアドレスにWLを加え
たアドレスを指し示す。読み出しポインタRPは、次に
読み出されるデータが格納されているFIFOボトムの
アドレスを指し示す。
【0077】転送管理ユニット14は、書き込みポイン
タWP及び読み出しポインタRPの値から、FIFO領
域FRが有効なデータでフル状態であって、それ以上新
たなデータを格納することができない状態であるか否か
を判定し、フル状態である場合にはレジスタ35のフル
フラグFを立てる。同様に、転送管理ユニット14は、
FIFO領域FRが、有効なデータが格納されていない
空の状態であるか否かを判定し、空の状態である場合に
はレジスタ36の空フラグEを立てる。
【0078】図4は、仮想FIFOのフルフラグFを求
める際の論理を示す説明図である。転送管理ユニット1
4が求めたフルフラグFを用いると、仮想FIFOがフ
ルである状態と空である状態とを区別することができ
る。すなわち、F=1の場合はフルであり、WP=RP
かつF=0の場合は空であることがわかる。ところで、
仮想FIFO中のワード数は、(WP−RP)mod
(UB−LB)と表すことができる。但し、フルの場合
は、UB−LBである。ここで、modは正の剰余演算
子である。
【0079】FIFO領域FRがフルになった場合、仮
想FIFOへの書き込み動作は停止される。FIFO領
域FRが空になった場合、仮想FIFOからの読み出し
動作は停止される。
【0080】図5は、FIFO領域FRと各ポインタと
の関係の他の例を示す説明図である。仮想FIFOを用
いた動作が繰り返され、書き込みポインタWPがFIF
O上限を超えると、書き込みポインタWPはFIFO下
限にラップアラウンド(wraparound)して図5の状態に
なる。FIFOトップは、アドレス(WP−WL)によ
り指し示され、FIFOボトムは、読み出しポインタR
Pにより指し示される。
【0081】受信の場合における図1のデータ伝送装置
の一連の動作を以下に説明する。受信の場合、双方向キ
ャッシュ24が格納しているデータは、仮想FIFOに
FIFOトップのワードとして格納されるべきデータで
ある。受信したデータの順を保つために、双方向キャッ
シュ24が空でなければ、DMAが仮想FIFOに直接
書き込むことはできない。そこで、SRAM22のデー
タ入力ポートが使われないときを狙って、双方向キャッ
シュ24のデータを仮想FIFOに書き込むようにす
る。
【0082】[ステップ1]外部バスインターフェイス
16は、外部バスEBからデータを受信する。
【0083】[ステップ2]DMAch1による仮想F
IFOへの受信データ書き込み SRAM22がアクセスされており、双方向キャッシュ
24に空きがない場合、DMAch1は書き込みを待た
される。SRAM22がアクセスされており、双方向キ
ャッシュ24に空きがある場合、DMAch1は双方向
キャッシュ24へ書き込みを行う。SRAM22がアク
セスされておらず、双方向キャッシュ24が空ではない
場合、DMAch1は双方向キャッシュ24のデータを
仮想FIFOへ書き込み、更に双方向キャッシュ24へ
の書き込みを行う。SRAM22がアクセスされておら
ず、双方向キャッシュ24が空である場合、DMAch
1は仮想FIFOへ直接書き込みを行う。
【0084】[ステップ3]SRAM22がCPU1
3、DMAC11、DMAC12のいずれからもアクセ
スされていないとき、次の操作を実行する。仮想FIF
Oがフルでも空でもなく、かつ、双方向キャッシュ24
が空でなければ、DMAch1は双方向キャッシュ24
のデータを仮想FIFOへ書き込む。
【0085】[ステップ4]DMAch2による仮想F
IFOからの受信データ読み出し 仮想FIFOが空で、かつ双方向キャッシュ24が空で
はない場合、DMAch2は双方向キャッシュ24から
データを読み出し、SRAM22を経由させずに、直接
DRAM21へ転送する。仮想FIFOが空で、かつ双
方向キャッシュ24が空である場合、DMAch2は双
方向キャッシュ24に有効データが入るまで待たされ
る。
【0086】仮想FIFOが空ではなく、仮想FIFO
に対する他からのアクセスがない場合、DMAch2は
仮想FIFOからデータを読み出し、DRAM21へ転
送する。仮想FIFOが空ではなく、仮想FIFOが他
からアクセスされている場合、DMAch2は仮想FI
FOに対する他からのアクセスが終わるまで待つ。[終
わり]。
【0087】ここでは、CPU13の優先順位が最も高
い場合について説明したが、外部バスEBから送られて
きたデータを待たせることができない場合には、DMA
ch1の優先順位を高くする必要がある。
【0088】仮想FIFOへの書き込み要求WRQ、仮
想FIFOへの読み出し要求RRQ、CPU13からの
アクセス要求CPURW,仮想FIFOへのクリア要求
CLRの各信号の論理は、次の式、 WRQ=〜DIR・selDMA1・csDMA1・weDMA1| DIR・selDMA2・csDMA2・weDMA2 …(1) RRQ= DIR・selDMA1・csDMA1・reDMA1| 〜DIR・selDMA2・csDMA2・reDMA2 …(2) CPURW=selCPU・csCPU・(reCPU|weCPU) …( 3) CLR=reset|init …(4) で表すことができる。“〜”は否定、“|”は論理和、
“・”は論理積を表す。
【0089】ここで、選択信号selCPU,selD
MA1,及びselDMA2には、CPU13,DMA
ch1,及びDMAch2がそれぞれ対応している。転
送管理ユニット14は、CPU13,DMAch1,及
びDMAch2の3者の要求を調停して、これらのうち
の1つに対応した選択信号をアサートする。
【0090】SRAM22への入力データを選択するセ
レクタ55、及びSRAM22へ入力するアドレスを選
択するセレクタ57は、選択信号selCPU,sel
DMA1,selDMA2に従って選択を行う。すなわ
ち、セレクタ55は、選択信号selCPU,selD
MA1,selDMA2がアサートされている場合、そ
れぞれCPU13の出力CDO、セレクタ52の出力、
DRAMコントローラ18の出力DDOを選択する。セ
レクタ57は、選択信号selCPUがアサートされて
いる場合はCPU13の出力CADを選択し、選択信号
selDMA1又はselDMA2がアサートされてい
る場合はFIFO周辺回路30の出力FADを選択す
る。
【0091】チップセレクト信号csCPU,csDM
A1,csDMA2は、仮想FIFOがそれぞれCPU
13,DMAch1,DMAch2によりアクセスされ
る場合にアサートされる。同様に、読み出しイネーブル
信号reCPU,reDMA1,reDMA2は、仮想
FIFOからそれぞれCPU13,DMAch1,DM
Ach2による読み出しが行われる場合にアサートされ
る。書き込みイネーブル信号weCPU,weDMA
1,weDMA2は、仮想FIFOにそれぞれCPU1
3,DMAch1,DMAch2による書き込みが行わ
れる場合にアサートされる。
【0092】チップリセットresetは、ハードウェ
ア的なリセット信号であり、初期化信号initは、C
PU13が初期化命令によりセットするソフトウェア的
なリセット信号である。方向ビットDIRは、その値が
“0”のときは外部バスEBからの受信、“1”のとき
は外部バスEBへの送信を表す。
【0093】図3,図5の仮想FIFOにおいて、読み
出しポインタRPが書き込みポインタWPに追いついた
場合、仮想FIFOは空となり、書き込みポインタWP
と読み出しポインタRPとの値(アドレス)が一致す
る。書き込みポインタWPが読み出しポインタRPに追
いついた場合、仮想FIFOはフルとなり、書き込みポ
インタWPと読み出しポインタRPとがやはり一致す
る。
【0094】図6は、書き込みポインタ更新アルゴリズ
ムを示す説明図である。図6では、更新され、次サイク
ルにおいて用いられる書き込みポインタWP及びフルフ
ラグFを、それぞれWP’及びF’で表している。書き
込みが行われる場合の仮想FIFOの動作を以下に説明
する。 (1)SRAM22は、書き込みポインタWPが指し示
すアドレスに入力されたデータを書き込む。 (2)FIFO周辺回路30は、書き込みポインタWP
を1ワード分インクリメントする。
【0095】図7は、読み出しポインタ更新アルゴリズ
ムを示す説明図である。図7では、更新された読み出し
ポインタRPをRP’で表している。読み出しが行われ
る場合の仮想FIFOの動作を以下に説明する。 (1)SRAM22は、読み出しポインタRPが指すア
ドレスから1ワードを読み出して出力する。 (2)FIFO周辺回路30は、読み出しポインタRP
を1ワード分インクリメントする。
【0096】図8は、受信時における仮想FIFO及び
DMAの動作を示す説明図である。DMA(DMAch
1及びDMAch2)は、図8に示された条件の組み合
わせ以外の場合には動作しない。すなわち、DMAから
アクセス要求があった場合であっても、DMAは待たさ
れることがある。ただし、DMAからのアクセス要求が
CPU13からのアクセス要求と衝突したとき、転送管
理ユニット14は、予め定めておいた優先順位を考慮し
て、DMAのアクセスを許可し、CPU13を待たせる
ことがあるものとする。このような場合を、以下の図で
は“(0)”で表す。また、“→”は、データが転送さ
れる向きを表す。“*”は、“0”又は“1”を表す。
“=”は、代入演算を表す。
【0097】ここでは、仮想FIFOへの書き込みを行
うDMAch1が、仮想FIFOからの読み出しを行う
DMAch2よりも優先されるものとするので、WRQ
==RRQ==1の場合は、WRQ=1,RRQ=0の
場合と同じである。この場合、結果として、読み出し要
求RRQは待たされる。
【0098】次に、送信の場合における図1のデータ伝
送装置の一連の動作を以下に説明する。図9は、送信時
における仮想FIFO及びDMAの動作を示す説明図で
ある。双方向キャッシュ24が格納するデータは、FI
FOボトムのワードとして格納されていたデータであ
る。送信の場合、双方向キャッシュ24にはできる限り
有効なデータが格納されているようにする。双方向キャ
ッシュ24に有効なデータが入っていない場合は、DM
Aが仮想FIFOからデータを直接読み出すことができ
る。仮想FIFOが空ではなく、かつ双方向キャッシュ
24が空になった場合は、SRAM22のデータ出力ポ
ートが使われないときを狙って、FIFOボトムのワー
ドを双方向キャッシュ24に書き込むようにする。
【0099】[ステップ1]DMAch2による仮想F
IFOへの書き込み DMAch2がDRAM21から読み出したデータをS
RAM22の仮想FIFOへ書き込む。
【0100】[ステップ2]仮想FIFOから双方向キ
ャッシュ24への読み出し 仮想FIFOが空ではなく、双方向キャッシュ24が空
であれば、SRAM22のデータ出力ポートが使われな
いサイクルにおいて、転送管理ユニット14が仮想FI
FOからデータを読み出し、双方向キャッシュ24に書
き込む。
【0101】[ステップ3]DMAch1による仮想F
IFOからの読み出し 双方向キャッシュ24が空でなければ、DMAch1が
双方向キャッシュ24からデータを読み出す。双方向キ
ャッシュ24が空であれば、SRAM22のデータ出力
ポートが使われないサイクルにおいて、DMAch1が
仮想FIFOからデータを読み出し、双方向キャッシュ
24を経由させずに、直接外部バスインターフェイス1
6に転送する。
【0102】[ステップ4]外部バスインターフェイス
16が、仮想FIFOから送られて来たデータを外部バ
スEBに送信する。[終わり]。
【0103】SRAM22へのアクセスの調停論理につ
いて説明する。双方向キャッシュ24、又はSRAM2
2に対して読み書きすることが、複数のアクセス主体か
ら同時に要求される(アクセスが衝突する)場合には、
転送管理ユニット14が調停を行う。調停論理は、アク
セス優先順位を考慮し、アクセスが順番に許されるよう
にする。
【0104】DMAがSRAM22のトラフィックを占
有すると、CPU13は長く待たされる。ここでDMA
からのアクセスには、双方向キャッシュ24からのデー
タの転送を含む。しかし、SRAM22が高速に動作
し、その帯域幅が充分高ければ、CPU13が待たされ
る上限のサイクル数を2に抑えられる。転送管理ユニッ
ト14は、SRAM22にアクセスする3つの制御装置
がSRAMに交互に、又は順番にアクセスするよう調停
し、CPU13が、DMAと衝突したときは1〜2ウェ
イト、衝突しないときは0ウェイトでSRAM22にア
クセスできるようにする。
【0105】外部バスEBの最高転送速度を400Mb
/s、バスやメモリ上の1ワードを32ビットとする
と、400Mb/s = 400/32MW/s = 1
2.5MW/sがDMAch1の最高転送速度である。
ここで、W/sは毎秒1ワードを表す。SRAM22の
動作周波数を40MHzとすると、3×12.5 < 4
0< 4×12.5であるから、最高転送速度で転送を
行っている場合、DMAch1は、3サイクルに1回以
下の頻度でSRAM22にアクセスする。一方、CPU
13及びDMAch2はSRAM22に連続してアクセ
スすることがある。
【0106】外部バスEBから受信したデータをとりこ
ぼすことなく全て転送するためには、DMAch1を待
たせることがないようにするのが望ましい。このため、
以下では、DMAch1、CPU13、DMAch2の
順に、SRAM22に対するアクセス優先順位が高いと
し、仮想FIFOの容量は充分に大きいものとする。D
MAch1は最優先であるが連続アクセスしないので、
DMAch1がアクセスしないサイクルにおいてCPU
13とDMAch2とがアクセスできる。したがって、
CPU13のSRAM22へのアクセス待ちを2ウェイ
ト以下に制限するように設計することができる。
【0107】送信の場合は、仮想FIFOへの読み出し
要求RRQを行うとき、SRAM22の出力ポートは常
に空いているとして良いので、ステップ2とステップ3
とを同時に実行することができる。
【0108】以下では、受信時の様々な状況における仮
想FIFO、CPU13及びDMAの動作について説明
する。特に、CPU13,DMAch1,DMAch2
の3者がSRAM22にアクセスし、SRAM22に対
する負荷が最も高い状況であるとする。すなわち、DM
AがSRAM22の仮想FIFOを介して受信されたデ
ータを転送しながら、CPU13はSRAM22に対し
てロード、及びストアアクセスを交互に繰り返している
ものとする。以下の図において、“R”は仮想FIFO
からの読み出しを、“W”は仮想FIFOへの書き込み
を表す。また、FIFO中の語数の欄の“V”は、双方
向キャッシュ24に有効なデータが格納されていること
を示す。
【0109】図10は、仮想FIFOが空ではない状態
で、3つのアクセス主体がSRAM22に常にアクセス
している場合の仮想FIFO及びDMAの動作を示す説
明図である。これは、受信時における最悪の状態であ
る。DMAch1が仮想FIFOに書き込みを行うとF
IFO中の語数が増加し、DMAch2が仮想FIFO
から読み出しを行うとFIFO中の語数が減少してい
る。CPU13はCPU使用領域CRにアクセスするの
で、CPU13が書き込み及び読み出しを行う際には、
FIFO中の語数は変化しない。
【0110】図11は、DMAch1が一時的に停止し
た場合の仮想FIFO及びDMAの動作を示す説明図で
ある。DMAch2による仮想FIFOからの読み出し
が行われる毎にFIFO中の語数が減少し、FIFO中
の語数が0になると(サイクル10)、双方向キャッシ
ュ24からの読み出しが行われる。
【0111】図12は、DMAch2が一時的に停止し
た場合の仮想FIFO及びDMAの動作を示す説明図で
ある。ここで、仮想FIFOの容量がNワードであると
している。図10の場合においてDMAch2によって
使用されていたスロット(サイクル3等)が、CPU1
3によって使用されている。DMAch1による仮想F
IFOへの書き込みが行われる毎にFIFO中の語数が
増加している。FIFO中の語数がNになると、DMA
ch1による書き込みは行われなくなる。
【0112】図13は、CPU13が一時的に停止した
場合の仮想FIFO及びDMAの動作を示す説明図であ
る。図10の場合においてCPU13によって使用され
ていたスロット(サイクル4等)が、DMAch2によ
って使用されている。一般に、DRAMの転送速度はS
RAMよりも遅いが、ここでは、DRAM21に対して
ページ連続ヒットして、DMAch2がウェイトなしで
SRAM22にアクセスすることができているとする。
【0113】以下では、“*”の付いたRまたはWは、
SRAM22の仮想FIFOに対するアクセスではな
く、双方向キャッシュ24に対するアクセスであること
を表す。したがって、“R*”及び“W*”が示された
サイクルにおいては、DMAch1又はDMAch2に
よるアクセスを、CPU13のSRAM22に対するア
クセスと並列して実行することができる。
【0114】図14は、CPU13の動作が再開した場
合の仮想FIFO及びDMAの動作を示す説明図であ
る。一旦FIFOが空になれば、DMAは、まず双方向
キャッシュ24にアクセスするので、DMAはSRAM
22に全くアクセスしていない。このため、CPU13
は、SRAM22に連続してアクセスすることができ
る。
【0115】図15は、空きサイクルにおいて、双方向
キャッシュ24が仮想FIFOにデータを転送する場合
の仮想FIFO及びDMAの動作を示す説明図である。
以下の図においては、双方向キャッシュ24と仮想FI
FOとの間でデータを転送するサイクルを“#”で示
す。SRAM22への書き込み、SRAM22からの読
み出しのいずれも行われていない空きサイクルにおい
て、双方向キャッシュ24が空ではなく、仮想FIFO
が空でもフルでもない場合、双方向キャッシュ24から
仮想FIFOへデータが転送される。このとき、有効フ
ラグV=0となる。
【0116】図15の場合、空きサイクル4において双
方向キャッシュ24が空になるので、サイクル5におい
て、CPU13がSRAM22にアクセスするのと同時
にDMAch1が双方向キャッシュ24にアクセスする
ことができる。したがって、CPU13による処理の効
率が向上する。
【0117】図16は、空きサイクルにおいて、双方向
キャッシュ24が仮想FIFOにデータを転送しない場
合の仮想FIFO及びDMAの動作を示す説明図であ
る。図16は、図15の場合との比較のために示すもの
である。図16の場合、空きサイクル4で双方向キャッ
シュ24が空にならない。サイクル5,6において、C
PU13は、DMAch1又はDMAch2と同時にS
RAM22にアクセスすることはできないので、サイク
ル7まで書き込みを待たされる。
【0118】図17は、双方向キャッシュ24を経由せ
ず、仮想FIFOへ直接書き込みを行う場合の仮想FI
FO及びDMAの動作を示す説明図である。双方向キャ
ッシュ24が空であり、かつ仮想FIFOが空でないと
きに、このような動作をすることが可能である。図17
の場合、サイクル4において双方向キャッシュ24が空
になるので、サイクル5においてDMAch1は双方向
キャッシュ24を経由せず、仮想FIFOに書き込みを
行う。この場合、サイクル8において、双方向キャッシ
ュ24が空であるので、CPU13がSRAM22にア
クセスするのと同時に、DMAch1が双方向キャッシ
ュ24にアクセスすることができる。
【0119】図18は、双方向キャッシュ24へ書き込
みを行う場合の仮想FIFO及びDMAの動作を示す説
明図である。図18は、図17の場合との比較のために
示すものである。図18の場合、サイクル5においてD
MAch1は双方向キャッシュ24に書き込みを行うの
で、サイクル8において、CPU13はSRAM22に
アクセスすることができない。
【0120】図19は、送信時に、空きサイクルにおい
て、仮想FIFOが双方向キャッシュ24にデータを転
送する場合の仮想FIFO及びDMAの動作を示す説明
図である。図19において、サイクル6までは双方向キ
ャッシュ24は空である。サイクル7が空きサイクルで
あるとすると、FIFOボトムの1ワードが仮想FIF
Oから双方向キャッシュ24へ先読み転送される。サイ
クル9において、双方向キャッシュ24は有効なデータ
を格納しているので、CPU13がSRAM22に読み
出しのためにアクセスするのと同時に、DMAch1が
双方向キャッシュ24に読み出しのためにアクセスする
ことができる。
【0121】図1のデータ伝送装置においては、DMA
ch2の平均転送速度がDMAch1よりも速いので、
受信時には仮想FIFOが空に近い状態で動作する。図
1のデータ伝送装置は、仮想FIFOの他に1ワード長
の双方向キャッシュ24を備えているので、受信時にお
いて、FIFO領域FRを有するSRAM22に対する
DMAのアクセスを実質的になくすことができる。この
ため、CPU13のロード・ストア性能をあまり落とす
ことがない。また、送信時において、仮想FIFOから
双方向キャッシュ24にデータを先読みするので、DM
AによるSRAM22へのアクセスを大きく削減し、C
PU13のウェイト数を削減することができる。
【0122】このように、第1の実施形態によると、C
PU等の性能をあまり落とすことなく、CPU等が作業
用に使用するメモリと、転送されるデータを一時的に格
納するFIFOバッファとを一体化し、データ伝送装置
の回路規模を削減することができる。したがって、デー
タ伝送装置のコスト削減及び低消費電力化を図ることが
できるなお、本実施形態では、レジスタ35,36を備
え、これらにフルフラグF及び空フラグEをそれぞれ格
納させるものとして説明したが、レジスタ35又は36
を備えず、フルフラグF又は空フラグEを用いないよう
にしてもよい。フルフラグFを用いない場合、転送管理
ユニット14は、 WP−RP≡UB−LB−WL mod (UB−LB) …(5) が成り立つと、仮想FIFOがフル状態であると判定す
る。また、転送管理ユニット14は、 WP=RP …(6) が成り立つと、仮想FIFOが空の状態であると判定す
る。この場合のFIFO容量は、(UB−LB−WL)
ワードとなり、フルフラグFを用いる場合よりも1ワー
ド少なくなる。
【0123】また、レジスタ31〜34のうち、複数の
レジスタが格納するデータを1つのレジスタでまとめて
格納するようにしてもよい。
【0124】また、CPUの最大ウェイト数を変更でき
るようにしてもよい。同様に、転送管理ユニットが動的
に調停することにより、SRAMへのアクセス主体の優
先順位をプログラマブルにするようにしてもよい。
【0125】また、本実施形態では、DMAch1及び
DMAch2の2チャネルを用いてDMA転送を行うも
のとして説明したが、全てのDMA転送を1チャネルで
行ってもよいし、3チャネル以上で行ってもよい。
【0126】(第1の実施形態の第1の変形例)この変
形例では、複数ワードを格納することができるキャッシ
ュを備えたデータ伝送装置について説明する。
【0127】図20は、第1の実施形態の第1の変形例
に係る双方向キャッシュのブロック図である。図20の
双方向キャッシュは、図1のデータ伝送装置において、
双方向キャッシュ24の代わりに用いられるものであ
る。図20の双方向キャッシュは、レジスタ81,8
2,83,84と、セレクタ85と、増減分器86と、
レジスタ87と、ポインタ制御回路88とを備えてい
る。レジスタ81〜84は、それぞれ1ワードを格納す
ることができる。
【0128】図20の双方向キャッシュは、4段のFI
FOバッファとして動作するが、書き込みはレジスタ8
1に行われるので、書き込みポインタは不要である。レ
ジスタ81に書き込みが行われるときには、レジスタ8
1,82,83に格納されていたデータは、それぞれ次
段のレジスタ82,83,84に格納される。レジスタ
87は、読み出しポインタCRPを格納し、これをセレ
クタ85及び増減分器86に出力する。増減分器86
は、ポインタ制御回路88の指示に従って、入力された
CRPを増減させてレジスタ87に出力する。
【0129】ポインタ制御回路88は、キャッシュへの
読み出し要求があると、入力された読み出しポインタC
RPから1を減じて出力するように増減分器86に指示
をする。また、ポインタ制御回路88は、キャッシュへ
の書き込み要求があると、入力された読み出しポインタ
CRPに1を加えて出力するように増減分器86に指示
をする。セレクタ85は、読み出しポインタCRPが例
えば1,2,3,4のとき、それぞれレジスタ81,8
2,83,84の出力を選択して出力する。
【0130】読み出しポインタCRPは、FIFOボト
ムにあたるシフトレジスタを指し、かつ、双方向キャッ
シュが格納しているワード数をも表わしている。読み出
しポインタCRPが0のとき、双方向キャッシュのFI
FOバッファは空であり、読み出しポインタCRPが4
のとき、双方向キャッシュのFIFOバッファはフルで
ある。双方向キャッシュをリセットすると、読み出しポ
インタCRPは0になる。
【0131】図21は、複数のワードを格納できる双方
向キャッシュを備えた場合の、受信時における仮想FI
FO及びDMAの動作を示す説明図である。図22は、
複数のワードを格納できる双方向キャッシュを備えた場
合の、送信時における仮想FIFO及びDMAの動作を
示す説明図である。
【0132】本変形例によると、双方向キャッシュが複
数のワードを格納することができるので、DMAによる
SRAMへのトラフィックを大きく削減することができ
る。
【0133】(第1の実施形態の第2の変形例)この変
形例では、SRAMを経由せず、DRAMから直接キャ
ッシュへ転送するパスを備えたデータ伝送装置について
説明する。
【0134】図23は、第1の実施形態の第2の変形例
に係るデータ伝送装置のブロック図である。図23のデ
ータ伝送装置は、図1のデータ伝送装置におけるDRA
Mコントローラ18からセレクタ55へのパス、及びS
RAM22からセレクタ51,53へのパスの代わり
に、DRAMコントローラ18からセレクタ51,53
へのパスを有している。すなわち、DRAM21は、S
RAM22を経由せず、直接双方向キャッシュ24へデ
ータを転送することができるので、送信時のSRAM2
2へのDMAアクセスをなくすことができる。
【0135】図23のDMAC111,112、CPU
113、転送管理ユニット114、外部バスインターフ
ェイス116、及びDRAMコントローラ118は、そ
れぞれ、図1のDMAC11,12、CPU13、転送
管理ユニット14、外部バスインターフェイス16、及
びDRAMコントローラ18に対応している。
【0136】図1のデータ伝送装置は、送信時には仮想
FIFOがフルに近い状態で動作するため、CPU13
のSRAM22へのアクセスにはほぼ2ウェイトを費や
していた。これに対し、図23のデータ伝送装置によれ
ば、送信時のCPUウェイト数は0となる。
【0137】図23のデータ伝送装置によると、DRA
M21が出力したデータは仮想FIFOに蓄えられない
ため、転送速度を調整することができない。送信時に、
DRAM21からの読み出しが止まり、双方向キャッシ
ュ24も空になると、送信データが途切れてしまう。こ
のような事態を避けるため、送信中には他の装置がDR
AM21へアクセスしないようにして、DRAM21か
らの読み出しの帯域幅を確保する必要がある。
【0138】(第2の実施形態)本実施形態において
は、受信用キャッシュと送信用キャッシュとを備えたデ
ータ伝送装置について説明する。
【0139】図24は、本発明の第2の実施形態に係る
データ伝送装置の構成の例を示すブロック図である。図
24のデータ伝送装置は、図1のデータ伝送装置におけ
るキャッシュブロック23の代わりに、受信用キャッシ
ュブロック223と、送信用キャッシュブロック226
とを備えている。受信用キャッシュブロック223は、
受信用キャッシュ224と、受信用有効フラグレジスタ
225とを備え、送信用キャッシュブロック226は、
送信用キャッシュ227と、送信用有効フラグレジスタ
228とを備えている。
【0140】図24のDMAC211,212、CPU
213、転送管理ユニット214、外部バスインターフ
ェイス216、及びDRAMコントローラ218は、そ
れぞれ、図1のDMAC11,12、CPU13、転送
管理ユニット14、外部バスインターフェイス16、及
びDRAMコントローラ18に対応している。
【0141】受信用キャッシュ224、及び送信用キャ
ッシュ227は、例えば1ワードのデータを格納するこ
とができるフリップフロップであって、それぞれ受信時
及び送信時に、SRAM22のFIFO領域へのアクセ
スを軽減するための迂回パスとして動作する。
【0142】受信用有効フラグレジスタ225は、受信
用キャッシュ224に有効な値が入っているか否かを示
す有効フラグVrを格納する1ビットレジスタである。
有効フラグVrは、その値が1のときには受信用キャッ
シュ224に有効なデータが格納されている状態を表
し、その値が0のときには受信用キャッシュ224が空
である、すなわち、読み出すべき有効なデータが存在し
ない状態を表す。
【0143】同様に、送信用有効フラグレジスタ228
は、送信用キャッシュ227に有効な値が入っているか
否かを示す有効フラグVsを格納する1ビットレジスタ
である。有効フラグVsは、その値が1のときには送信
用キャッシュ227に有効なデータが格納されている状
態を表し、その値が0のときには送信用キャッシュ22
7が空である、すなわち、読み出すべき有効なデータが
存在しない状態を表す。
【0144】図25は、受信用キャッシュ224及び送
信用キャッシュ227を備えた場合の、受信時における
仮想FIFO及びDMAの動作を示す説明図である。受
信の場合における図24のデータ伝送装置の一連の動作
を以下に説明する。受信の場合、受信用キャッシュ22
4が格納しているデータは、仮想FIFOにFIFOト
ップのワードとして格納されるべきデータである。受信
したデータの順を保つために、受信用キャッシュ224
が空でなければ、DMAが仮想FIFOに直接書き込む
ことはできない。そこで、SRAM22のデータ入力ポ
ートが使われないときを狙って、受信用キャッシュ22
4のデータを仮想FIFOに書き込むようにする。
【0145】[ステップ1]外部バスインターフェイス
16は、外部バスEBからデータを受信する。
【0146】[ステップ2]SRAMの空きスロットに
おけるDMAch1による仮想FIFOへの書き込み SRAM22がアクセスされており、受信用キャッシュ
224に空きがない場合、DMAch1は仮想FIFO
への書き込みを待たされる。SRAM22がアクセスさ
れており、受信用キャッシュ224に空きがある場合、
DMAch1は受信用キャッシュ224へ書き込みを行
う。
【0147】SRAM22がアクセスされておらず、受
信用キャッシュ224が空ではない場合、DMAch1
は、受信用キャッシュ224のデータをSRAM22へ
書き込み、更に受信用キャッシュ224への書き込みを
行う。SRAM22がアクセスされておらず、受信用キ
ャッシュ224が空である場合、DMAch1は仮想F
IFOへ直接書き込みを行う。
【0148】[ステップ3]SRAM22がCPU1
3、DMAC11、DMAC12のいずれからもアクセ
スされていないとき、次の操作のいずれかを実行する。 (1)仮想FIFOがフルでも空でもなく、かつ、受信
用キャッシュ224が空でなければ、受信用キャッシュ
224のデータを仮想FIFOへ書き込む。 (2)仮想FIFOが空ではなく送信用キャッシュ22
7が空である場合、仮想FIFOからデータを読み出
し、送信用キャッシュ227へ書き込む。
【0149】[ステップ4]DMAch2による仮想F
IFOからの読み出し 送信用キャッシュ227が空ではない場合、DMAch
2が送信用キャッシュ227からデータを読み出し、D
RAM21へ転送する。送信用キャッシュ227が空で
ある場合、仮想FIFOが空でなく、仮想FIFOに対
する他からのアクセスがないサイクルにおいて、DMA
ch2は仮想FIFOからデータを読み出し、DRAM
21へ転送する。
【0150】仮想FIFOが空ではなく、仮想FIFO
がアクセスされている場合、DMAch2は仮想FIF
Oに対する他からのアクセスが終わるまで待つ。仮想F
IFOが空で、かつ受信用キャッシュ224が空ではな
い場合、DMAch2は受信用キャッシュ224からデ
ータを読み出し、DRAM21へ転送する。仮想FIF
Oが空で、かつ受信用キャッシュ224が空である場
合、DMAch2は受信用キャッシュ224に有効デー
タが入るまで待たされる。[終わり]。
【0151】図26は、受信用キャッシュ224及び送
信用キャッシュ227を備えた場合の、送信時における
仮想FIFO及びDMAの動作を示す説明図である。送
信の場合における図24のデータ伝送装置の一連の動作
を以下に説明する。送信の場合、送信用キャッシュ22
7が格納するデータは、仮想FIFOにFIFOボトム
のワードとして格納されていたデータである。送信の場
合、送信用キャッシュ227にはできる限り有効なデー
タが格納されているようにする。送信用キャッシュ22
7に有効なデータが入っていない場合は、DMAが仮想
FIFOからデータを直接読み出すことができる。仮想
FIFOが空でなく、かつ送信用キャッシュ227が空
になった場合は、SRAM22のデータ出力ポートが使
われないときを狙って、FIFOボトムのワードを送信
用キャッシュ227に書き込むようにする。
【0152】[ステップ1]DMAch2による仮想F
IFOへの書き込み DMAch2は、DRAM21から読み出したデータを
仮想FIFOへ書き込む。
【0153】[ステップ2]仮想FIFOから送信用キ
ャッシュ227への読み出し 仮想FIFOが空ではなく、送信用キャッシュ227が
空であれば、SRAM22のデータ出力ポートが使われ
ないサイクルにおいて、転送管理ユニット14が仮想F
IFOからデータを読み出し、送信用キャッシュ227
に書き込む。
【0154】[ステップ3]DMAch1による仮想F
IFOからの読み出し 送信用キャッシュ227が空でなければ、DMAch1
が送信用キャッシュ227からデータを読み出す。送信
用キャッシュ227が空であれば、SRAM22のデー
タ出力ポートが使われないサイクルにおいて、DMAc
h1が仮想FIFOからデータを読み出し、外部バスイ
ンターフェイス16に転送する。
【0155】[ステップ4]外部バスインターフェイス
16は、仮想FIFOから送られて来たデータを外部バ
スEBに送信する。[終わり]。
【0156】第2の実施形態によると、受信用及び送信
用のキャッシュをともに備えるので、DMAによるSR
AM22へのトラフィックを削減することができる。
【0157】なお、受信用又は送信用のキャッシュとし
て、図20のような複数ワードを格納することができる
キャッシュを用いてもよい。
【0158】(第3の実施形態)第3の実施形態におい
ては、2ポートSRAMを採用することにより、SRA
Mに対するCPUによるアクセスとDMAによるアクセ
スとを分離し、アクセスが重なった場合の性能損失を減
少させたデータ伝送装置について説明する。
【0159】図27は、本発明の第3の実施形態に係る
2つの外部ポートを有するデータ伝送装置の構成の例を
示すブロック図である。図27のデータ伝送装置は、図
1のデータ伝送装置において、外部バスインターフェイ
ス16に代えて、外部バスEB1,EB2にそれぞれ接
続された外部バスインターフェイス316,317を備
え、キャッシュブロック23に代えて、外部バスインタ
ーフェイス316,317にそれぞれ接続されたキャッ
シュブロック323,326を備えている。更に、図2
7のデータ伝送装置は、DMAC11,12に代えて、
DMAC311,312,393,394を備え、SR
AM22に代えて、2ポートSRAM322を備え、F
IFO周辺回路30に代えて、FIFO周辺回路33
0,370を備えている。
【0160】キャッシュブロック323,326はキャ
ッシュブロック23と、FIFO周辺回路330,37
0はFIFO周辺回路30と同様のものである。また、
図27のDMAC311,312、CPU313、転送
管理ユニット314、外部バスインターフェイス31
6、及びDRAMコントローラ318は、それぞれ、図
1のDMAC11,12、CPU13、転送管理ユニッ
ト14、外部バスインターフェイス16、及びDRAM
コントローラ18に対応している。外部バスEB1,E
B2は、例えば、IEEE1394規格によるバスであ
るとする。
【0161】図28は、外部ポートとDMAの4つのチ
ャネルとの関係を示す説明図である。図28のように、
図27のデータ伝送装置は、4つのDMAチャネルを用
いて、外部バスEB1(外部ポート1)及び外部バスE
B2(外部ポート2)との間でデータ転送を行う。DM
AC311,312,393,394は、それぞれDM
Ach1、DMAch2、DMAch3、DMAch4
によるデータ転送を制御する。
【0162】外部ポート1との間でデータ転送を行うD
MAch1及びDMAch2は、SRAM322の第1
のポートを用いることができる。外部ポート2との間で
データ転送を行うDMAch3及びDMAch4は、S
RAM322の第2のポートを用いることができる。C
PU313は、SRAM322の第1及び第2のポート
を用いることができる。また、DMAch1及びDMA
ch2は、キャッシュブロック323を用い、DMAc
h3及びDMAch4は、キャッシュブロック326を
用いる。
【0163】外部ポート1を経由する通信と、外部ポー
ト2を経由する通信とは独立に発生するので、双方向キ
ャッシュがなければ、DMAch1又はDMAch2に
よるSRAM322へのアクセスと、DMAch3又は
DMAch4によるSRAM322へのアクセスとが同
時に生じる頻度が高い。図27のデータ伝送装置は、各
外部ポートとDRAM321との間の転送パスに双方向
キャッシュを備えているので、SRAM322に対する
アクセス時の干渉をほとんど回避することができる。
【0164】図29は、図27のデータ伝送装置におけ
る仮想FIFOの構成を示す概念図である。SRAM3
22は、CPU使用領域CRと、第1のFIFO領域F
R1と、第2のFIFO領域FR2とを有している。
【0165】セレクタ357は、FIFO周辺回路33
0が出力する、DMAch1又はDMAch2で用いる
アドレス信号FAD1と、CPU313のアドレス信号
CADとのうちのいずれか一方を選択し、アドレス信号
SAD1としてSRAM322の第1のポートに出力す
る。DMAch1及びDMAch2は、第1のFIFO
領域FR1を用いることができる。
【0166】セレクタ367は、FIFO周辺回路37
0が出力する、DMAch3又はDMAch4で用いる
アドレス信号FAD2と、CPU313のアドレス信号
CADとのうちのいずれか一方を選択し、アドレス信号
SAD2としてSRAM322の第2のポートに出力す
る。DMAch3及びDMAch4は、第2のFIFO
領域FR2を用いることができる。転送管理ユニット3
14は、セレクタ357,367を制御している。
【0167】本実施形態によれば、2ポートSRAMを
用いるのでシステムコストは少し高くなるが、CPU3
13はSRAM322へ常に1サイクルでアクセスでき
るので、CPU313の処理性能が向上し、実時間性を
確保するプログラムの開発が容易になる。
【0168】図30は、2ポートSRAMを備え、1つ
の外部ポートを有するデータ伝送装置の構成の例を示す
ブロック図である。図30のデータ伝送装置は、図1の
データ伝送装置において、SRAM22に代えて2ポー
トSRAM422を備え、かつ、キャッシュブロック2
3を省いたものである。
【0169】CPU413は、SRAM422の第1の
ポートを用いることができる。DMAch1及びDMA
ch2は、SRAM422の第2のポートを用いること
ができる。このように、SRAM422は2ポートを備
えているので、CPU413とDMAとの間のSRAM
422に対するアクセス競合を解消することができる。
DMAch1とDMAch2のアクセスが重なる場合
は、DMAch2の方が待たされるものとする。
【0170】図30のデータ伝送装置のように、双方向
キャッシュを使わない場合であっても、SRAM422
に対するDMAch1とDMAch2とのアクセスが競
合することによる性能劣化は、1ポートのSRAM及び
双方向キャッシュを用いた場合と同等であり、許容でき
る程度である。特に、外部バスEB上のデータ転送レー
トがデータ伝送装置の内部のデータ転送レートに対して
比較的低い場合は、双方向キャッシュを使う必要はな
い。もっとも、双方向キャッシュを用いると、図1のデ
ータ伝送装置と同様に、DMAch1とDMAch2と
の間のアクセス競合による性能劣化を無視できる程度に
小さくすることができる。
【0171】なお、2ポートSRAMを採用しない場合
であっても、2つの外部バスを接続できるデータ伝送装
置を実現することができる。この場合、CPUからSR
AMへのアクセスにおいて、平均的なサイクル数は1サ
イクルに近いが、最悪の場合は4ウェイトが挿入され
る。また外部2ポートに限らず、外部3ポート以上のデ
ータ伝送装置も同様にして実現することができる。
【0172】(第4の実施形態)第4の実施形態におい
ては、図1のSRAM22に代えて、高速に動作するS
RAM522を有するSRAM部570を用いる場合に
ついて説明する。
【0173】図31は、本発明の第4の実施形態に係る
データ伝送装置のSRAM部570のブロック図であ
る。図31のSRAM部570は、SRAM522と、
レジスタ571,572,573,574,576,5
77,578,579と、データパス選択器582と、
アドレス選択器584とを備えている。
【0174】SRAM522には、周波数が、データ伝
送装置の基本クロックCLKx1の4倍であるクロック
CLKx4が入力されており、SRAM522は、図1
のSRAM22の4倍の速度で動作する。ここで、基本
クロックCLKx1は、システム制御手段、外部バスイ
ンターフェイス、及びDRAM等の動作の基準となるク
ロックである。
【0175】図32は、SRAM部570の各クロック
の関係を示すタイミング図である。図32に示されてい
るように、基本クロックCLKx1の1周期中に4個の
スロットφ1,φ2,φ3,φ4を設けるため、SRA
M部570では、各スロットにそれぞれ対応するパルス
を有する4相のクロックCLKx4_1,CLKx4_
2,CLKx4_3,CLKx4_4が用いられる。こ
れらの4相のクロックは、クロックCLKx4に基づい
て生成され、周期が基本クロックCLKx1に等しい。
【0176】データパス選択器582は、4相のクロッ
クCLKx4_1,CLKx4_2,CLKx4_3,
CLKx4_4のそれぞれに同期して、4系統のデータ
入力SDIφ1,SDIφ2,SDIφ3,SDIφ4
のうちの対応するものを選択し、SRAM522に出力
する。
【0177】アドレス選択器584は、4相のクロック
CLKx4_1,CLKx4_2,CLKx4_3,C
LKx4_4のそれぞれに同期して、4系統のアドレス
入力SADφ1,SADφ2,SADφ3,SADφ4
のうちの対応するものを選択し、SRAM522に出力
する。ここで、アドレス入力SADφ1〜SADφ4に
は、SRAM522の制御信号が含まれている。
【0178】データパス選択器582が選択したデータ
は、アドレス選択器584が選択したアドレスに従っ
て、SRAM522に書き込まれる。
【0179】レジスタ571〜574には、SRAM5
22の出力の他に、クロックCLKx4_1,CLKx
4_2,CLKx4_3,CLKx4_4がそれぞれ入
力されている。レジスタ571〜574は、それぞれ入
力されたクロックに同期して、SRAM522がクロッ
クCLKx4に同期して出力するデータを格納する。レ
ジスタ576〜579には、基本クロックCLKx1の
他に、レジスタ571〜574の出力がそれぞれ入力さ
れている。レジスタ576〜579は、基本クロックC
LKx1に同期して、それぞれのデータを出力する。
【0180】図33は、図31のレジスタ間のデータフ
ローを示すタイミング図である。基本サイクル(基本ク
ロックCLKx1の1周期)内のスロットφ1,φ2,
φ3,φ4において各レジスタ571〜574にデータ
が格納され、これらのデータは、その次の基本サイクル
の先頭で基本クロックCLKx1に同期してレジスタ5
76〜579にそれぞれ格納され、出力される。
【0181】このように、SRAM522が基本クロッ
クの例えば4倍の速度で動作すれば、基本クロックCL
Kx1に従って動作する最大で4つのアクセス主体が、
基本サイクル毎にSRAM522にアクセスできるよう
になる。この場合、SRAM522の性能は、基本クロ
ックCLKx1に従って動作する4ポートのSRAMの
性能と同等である。ただし、図33に示されているよう
に、データを基本クロックCLKx1に同期させて出力
する必要があるため、読み出しのレイテンシは1サイク
ル増える。
【0182】図34は、本発明の第4の実施形態に係る
データ伝送装置の構成の例を示すブロック図である。図
34のデータ伝送装置は、図1のデータ伝送装置におい
て、SRAM22に代えてSRAM部570を備え、か
つ、キャッシュブロック23を省いたものである。図3
4のDMAC511,512、CPU513、転送管理
ユニット514、外部バスインターフェイス516、及
びDRAMコントローラ518は、それぞれ、図1のD
MAC11,12、CPU13、転送管理ユニット1
4、外部バスインターフェイス16、及びDRAMコン
トローラ18に対応している。また、FIFO周辺回路
530は、図1のFIFO周辺回路30に対応してい
る。
【0183】図34のデータ伝送装置においては、SR
AM部570に対するアクセス主体はDMAC511及
び512のいずれか一方と、CPU513とである。C
PU513は、スロットφ1において、DMAC511
又は512は、スロットφ2においてSRAM522に
アクセスしている。
【0184】なお、使用されるスロットは、スロットφ
1〜φ4のうちのいずれの2つであってもよい。また、
アクセス主体が2つであるので、SRAM部570に代
えて、SRAMに基本クロックCLKx1の2倍の周波
数を有するクロックを与え、SRAMを図1のSRAM
22の2倍の速度で動作させるようにしたSRAM部を
用いてもよい。この場合、SRAM部は、周期が基本ク
ロックCLKx1に等しい2相のクロックCLKx2_
1,CLKx2_2を用い、これらのクロックに対応し
たレジスタ等を備えればよい。
【0185】第4の実施形態によると、SRAMからの
読み出しのレイテンシが1サイクルになるので、例えば
CPU513がSRAM522へ書き込む場合は0ウェ
イトに、CPU513がSRAM522から読み出す場
合は1ウェイトになるように、転送管理ユニット514
がSRAM522へのアクセスのタイミングを制御す
る。図34のデータ伝送装置は、図30のデータ伝送装
置とほぼ同等の動作をするものであり、SRAM部57
0は、複数のポートを有するSRAMに相当する機能を
有するということができる。
【0186】(第5の実施形態)第5の実施形態におい
ては、オン・ザ・フライ(on the fly)で転送中のパケ
ットを解析する受信用フィルタを備えたデータ伝送装置
について説明する。
【0187】図35は、本発明の第5の実施形態に係る
データ伝送装置の構成の例を示すブロック図である。図
35のデータ伝送装置は、図1のデータ伝送装置におい
て、受信用フィルタ619と、割込みコントローラ62
0とを更に備えたものである。
【0188】図35のDMAC611,612、CPU
613、転送管理ユニット614、外部バスインターフ
ェイス616、及びDRAMコントローラ618は、そ
れぞれ、図1のDMAC11,12、CPU13、転送
管理ユニット14、外部バスインターフェイス16、及
びDRAMコントローラ18に対応している。また、キ
ャッシュブロック623、及びFIFO周辺回路630
は、それぞれ図1のキャッシュブロック23、及びFI
FO周辺回路30に対応している。
【0189】外部バスインターフェイス616は、パケ
ットと呼ばれる単位毎に外部バスEBとの間でデータを
送受信する。パケットは、データ部と、そのパケットの
属性が記述されたヘッダとを有する。データ部は、転送
されるべきデータであるペイロードと、ペイロードに生
じた伝送誤りを検出又は訂正するためのパリティとを有
する。
【0190】受信用フィルタ619は、外部バスインタ
ーフェイス616が外部バスから受信したデータを受け
取り、パケットのヘッダとデータ部とを分離する。受信
用フィルタ619は、CPU613による処理が必要な
ヘッダをSRAM622のページテーブルに格納させ、
CPU613による処理が不要であるデータ部をFIF
O領域を経由させてDRAM621に格納させる。
【0191】図36は、SRAM622のパケットペー
ジテーブルに関する概念図である。図35及び図36を
参照して、受信の場合における図36のデータ伝送装置
の動作について説明する。
【0192】[ステップ1]外部バスインターフェイス
回路616は、外部バスEBからパケットを受信し、受
信用フィルタ619経由でSRAM622に向けて転送
する。
【0193】[ステップ2]受信用フィルタ619は、
ステップ1で転送中のパケットを調べ、ヘッダ開始、ペ
イロード開始、パケット受信終了等の時刻を検知する。
【0194】[ステップ3]受信用フィルタ619が検
知した結果に従って、転送管理ユニット614は、ヘッ
ダをSRAM622のCPU使用領域に格納させ、ペイ
ロードについては転送経路を変更して、これをDRAM
621に格納させる。ヘッダをFIFO領域に格納しな
いので、ヘッダをSRAM622に書き込む際には、双
方向キャッシュ624を働かせることはできない。ペイ
ロードの転送は、DMAC611がDMAch1によっ
て行い、仮想FIFOや双方向キャッシュ624を働か
せる。
【0195】[ステップ4]パケットの書き込みが終了
すると、DMAC611は転送終了割り込みを発生させ
る。割り込みコントローラ620は、この割り込みをC
PU613に対して通知する。
【0196】[ステップ5]割り込み処理ルーチンの中
において、CPU613は、ヘッダを解析してペイロー
ドのサイズやパケットの種類等の情報を得る。また、ヘ
ッダとペイロードとを関連付けるために、CPU613
は、SRAM622のページテーブル内に格納されたヘ
ッダに、同一のパケットに含まれていたペイロードへの
ポインタを追加する。例えば、ヘッダaとペイロードa
とが同一のパケットに含まれていたとすると、DRAM
621に格納されたペイロードaのアドレスを示すポイ
ンタをヘッダaに追加する。ペイロードの大きさの情報
は、あらかじめヘッダ部に含まれているので付加しなく
てよい。このように、DRAM621内の複数のペイロ
ードは、SRAM622のページテーブルにより管理さ
れる。
【0197】[ステップ6]他のDMAchによる転送
等をするために、DMAC612等の他の転送制御装置
からDRAM621内のペイロードに対する受け取り要
求を受け取ると、CPU613は、ペイロードの位置と
大きさをその転送制御装置に伝える。その転送制御装置
は、ペイロードの転送を開始する。
【0198】[ステップ7]DRAM621内のペイロ
ードの読み出しが終了すると、割り込みコントローラ6
20は、CPU613に割り込みを通知する。割り込み
処理ルーチンの中において、CPU613は、読み出さ
れたペイロードを含むパケットに対するSRAM622
のページテーブル内のエントリを抹消する。[終わ
り]。
【0199】このように、ヘッダをSRAM622のC
PU使用領域に直接書き込むので、パケットを全てDR
AM621に転送した後、CPU613がヘッダを解析
するために、ヘッダをSRAM622へ転送する場合と
比べると、DRAM621からSRAM622へヘッダ
を転送する処理が不要になる。また、ヘッダは、SRA
M622のページテーブルに直接書き込まれ、FIFO
領域を経由することがないので、SRAM622のトラ
フィックを低減することができる。
【0200】送信時においては、ほぼ受信時の逆の手順
で動作するが、ヘッダとペイロードとは別個に生成され
るので、送信用フィルタは必要ない。
【0201】なお、外部バスEB,EB1,EB2は、
IEEE1394規格によるバスであるとして説明した
が、USB、ATAPI、SCSI、Bluetooth等の他
の標準バスであってもよい。
【0202】
【発明の効果】以上のように、本発明によると、CPU
等が使用するメモリと、転送されるデータを一時的に格
納するFIFOバッファとを一体化し、データ伝送装置
の回路規模を削減することができる。したがって、シス
テムLSIに、外部バスとの間のインターフェイスをす
るデータ伝送装置を内蔵した場合に、コスト削減及び低
消費電力化を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るデータ伝送装置
の構成の例を示すブロック図である。
【図2】仮想FIFOの構成を示すブロック図である。
【図3】FIFO領域と各ポインタとの関係の一例を示
す説明図である。
【図4】仮想FIFOのフルフラグを求める際の論理を
示す説明図である。
【図5】FIFO領域と各ポインタとの関係の他の例を
示す説明図である。
【図6】書き込みポインタ更新アルゴリズムを示す説明
図である。
【図7】読み出しポインタ更新アルゴリズムを示す説明
図である。
【図8】受信時における仮想FIFO及びDMAの動作
を示す説明図である。
【図9】送信時における仮想FIFO及びDMAの動作
を示す説明図である。
【図10】仮想FIFOが空ではない状態で、3つのア
クセス主体がSRAMに常にアクセスしている場合の仮
想FIFO及びDMAの動作を示す説明図である。
【図11】DMAch1が一時的に停止した場合の仮想
FIFO及びDMAの動作を示す説明図である。
【図12】DMAch2が一時的に停止した場合の仮想
FIFO及びDMAの動作を示す説明図である。
【図13】CPUが一時的に停止した場合の仮想FIF
O及びDMAの動作を示す説明図である。
【図14】CPUの動作が再開した場合の仮想FIFO
及びDMAの動作を示す説明図である。
【図15】空きサイクルにおいて、双方向キャッシュが
仮想FIFOにデータを転送する場合の仮想FIFO及
びDMAの動作を示す説明図である。
【図16】空きサイクルにおいて、双方向キャッシュが
仮想FIFOにデータを転送しない場合の仮想FIFO
及びDMAの動作を示す説明図である。
【図17】双方向キャッシュを経由せず、仮想FIFO
へ直接書き込みを行う場合の仮想FIFO及びDMAの
動作を示す説明図である。
【図18】双方向キャッシュへ書き込みを行う場合の仮
想FIFO及びDMAの動作を示す説明図である。
【図19】送信時に、空きサイクルにおいて、仮想FI
FOが双方向キャッシュにデータを転送する場合の仮想
FIFO及びDMAの動作を示す説明図である。
【図20】第1の実施形態の第1の変形例に係る双方向
キャッシュのブロック図である。
【図21】複数のワードを格納できる双方向キャッシュ
を備えた場合の、受信時における仮想FIFO及びDM
Aの動作を示す説明図である。
【図22】複数のワードを格納できる双方向キャッシュ
を備えた場合の、送信時における仮想FIFO及びDM
Aの動作を示す説明図である。
【図23】第1の実施形態の第2の変形例に係るデータ
伝送装置のブロック図である。
【図24】本発明の第2の実施形態に係るデータ伝送装
置の構成の例を示すブロック図である。
【図25】受信用キャッシュ及び送信用キャッシュを備
えた場合の、受信時における仮想FIFO及びDMAの
動作を示す説明図である。
【図26】受信用キャッシュ及び送信用キャッシュを備
えた場合の、送信時における仮想FIFO及びDMAの
動作を示す説明図である。
【図27】本発明の第3の実施形態に係る2つの外部ポ
ートを有するデータ伝送装置の構成の例を示すブロック
図である。
【図28】外部ポートとDMAの4つのチャネルとの関
係を示す説明図である。
【図29】図27のデータ伝送装置における仮想FIF
Oの構成を示す概念図である。
【図30】2ポートSRAMを備え、1つの外部ポート
を有するデータ伝送装置の構成の例を示すブロック図で
ある。
【図31】本発明の第4の実施形態に係るデータ伝送装
置のSRAM部のブロック図である。
【図32】SRAM部の各クロックの関係を示すタイミ
ング図である。
【図33】図31のレジスタ間のデータフローを示すタ
イミング図である。
【図34】本発明の第4の実施形態に係るデータ伝送装
置の構成の例を示すブロック図である。
【図35】本発明の第5の実施形態に係るデータ伝送装
置の構成の例を示すブロック図である。
【図36】SRAMのパケットページテーブルに関する
概念図である。
【図37】従来のデータ伝送装置の構成の例を示すブロ
ック図である。
【符号の説明】
11,12,111,112,211,212,31
1,312,393,394,411,412,51
1,512,611,612 DMAコントローラ 13,113,213,313,413,513,61
3 CPU(システム制御手段) 14,114,214,314,414,514,61
4 転送管理ユニット(転送管理手段) 16,116,216,316,317,416,51
6,616 外部バスインターフェイス 18 DRAMコントローラ 21,321,421,521,621 DRAM 22,322,422,522,622 SRAM 24,324,327,624 双方向キャッシュ 30,330,370,430,530,630 FI
FO周辺回路 31〜36 レジスタ 224 受信用キャッシュ 227 送信用キャッシュ 570 SRAM部 619 受信用フィルタ 620 割り込みコントローラ

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 外部バスから受信したデータの出力、又
    は入力されたデータの前記外部バスへの送信を行うデー
    タ伝送装置であって、 プログラムに従って動作するシステム制御手段と、 前記外部バスとの間でデータの送信又は受信をする外部
    バスインターフェイスと、 DRAM(dynamic random access memory)と、 前記システム制御手段が読み書きを行う領域と、前記外
    部バスインターフェイスと前記DRAMとの間で転送さ
    れるデータを格納し、格納した順に出力するFIFO
    (first in, first out)領域とを有するSRAM(sta
    tic random access memory)と、 前記SRAMが前記FIFO領域に格納したデータを格
    納した順に出力するように、前記SRAMに読み書きを
    するためのポインタを管理するFIFO周辺回路とを備
    え、 前記DRAMは、 データ受信時には、前記外部バスインターフェイスが受
    信したデータを、必要に応じて前記FIFO領域を経由
    して、受け取って出力し、 データ送信時には、入力されたデータを格納し、これを
    前記外部バスインターフェイスへ、必要に応じて前記F
    IFO領域を経由して、転送するものであるデータ伝送
    装置。
  2. 【請求項2】 請求項1に記載のデータ伝送装置におい
    て、 前記外部バスとは異なる外部バスとの間でデータの送信
    又は受信をする外部バスインターフェイスを更に備え、 前記SRAMは、 前記各外部バスインターフェイスに対応し、対応する外
    部バスインターフェイスと前記DRAMとの間で転送さ
    れるデータを入出力するためのポートを備えるものであ
    り、 前記システム制御手段は、 前記ポートのいずれかを用いて前記SRAMにデータを
    読み書きすることができるように構成されていることを
    特徴とするデータ伝送装置。
  3. 【請求項3】 請求項1に記載のデータ伝送装置におい
    て、 前記SRAMは、 前記システム制御手段との間でデータを入出力するため
    のポートと、前記外部バスインターフェイスと前記DR
    AMとの間で転送されるデータを入出力するためのポー
    トとを備えることを特徴とするデータ伝送装置。
  4. 【請求項4】 請求項1に記載のデータ伝送装置におい
    て、 周波数が、当該データ伝送装置の基本クロックのN(N
    は2以上の整数)倍であるクロックに基づいて動作する
    SRAMを有し、前記基本クロックに同期してデータを
    出力するSRAM部を、前記SRAMに代えて備えるこ
    とを特徴とするデータ伝送装置。
  5. 【請求項5】 請求項1に記載のデータ伝送装置におい
    て、 前記FIFO周辺回路は、 前記FIFO領域の上限アドレス及び下限アドレス、並
    びに次に読み出されるデータのアドレスを示す読み出し
    ポインタ及び次にデータが書き込まれるアドレスを示す
    書き込みポインタを格納するレジスタと、 前記FIFO領域から読み出しが行われた場合に、前記
    読み出しポインタを更新する手段と、 前記FIFO領域に書き込みが行われた場合に、前記書
    き込みポインタを更新する手段と、 前記FIFO領域が有効なデータを格納していない空の
    状態であることを判定する手段と、 前記FIFO領域が新たなデータを格納することができ
    ないフル状態であることを判定する手段とを備えること
    を特徴とするデータ伝送装置。
  6. 【請求項6】 請求項5に記載のデータ伝送装置におい
    て、 前記FIFO周辺回路は、 前記FIFO領域がフル状態であることを示すフラグを
    格納するレジスタを更に備えることを特徴とするデータ
    伝送装置。
  7. 【請求項7】 請求項1に記載のデータ伝送装置におい
    て、 前記外部バスインターフェイスが前記外部バスから受信
    したデータを格納して、前記SRAM又は前記DRAM
    に転送するキャッシュを更に備えることを特徴とするデ
    ータ伝送装置。
  8. 【請求項8】 請求項7に記載のデータ伝送装置におい
    て、 データ受信時であって、前記FIFO領域が空のとき、
    前記キャッシュが格納したデータを、前記SRAMを経
    由することなく前記DRAMに転送するように構成され
    たことを特徴とするデータ伝送装置。
  9. 【請求項9】 請求項7に記載のデータ伝送装置におい
    て、 前記外部バスに送信すべきデータを格納して、前記外部
    バスインターフェイスに転送する送信用キャッシュを更
    に備えることを特徴とするデータ伝送装置。
  10. 【請求項10】 請求項7に記載のデータ伝送装置にお
    いて、 前記キャッシュは、 データ送信時には、前記外部バスから受信したデータに
    代えて、前記外部バスに送信すべきデータを格納して、
    前記外部バスインターフェイスに転送する双方向キャッ
    シュであることを特徴とするデータ伝送装置。
  11. 【請求項11】 請求項7に記載のデータ伝送装置にお
    いて、 前記キャッシュは、 複数のワードを格納し、格納したデータを格納した順に
    出力するように構成されていることを特徴とするデータ
    伝送装置。
  12. 【請求項12】 請求項1に記載のデータ伝送装置にお
    いて、 前記DRAMが出力したデータを、前記SRAMを経由
    することなく前記外部バスインターフェイスに転送する
    経路を有することを特徴とするデータ伝送装置。
  13. 【請求項13】 請求項1に記載のデータ伝送装置にお
    いて、 前記外部インターフェイスが受信したデータがパケット
    のヘッダとデータ部とのいずれであるかを判定する受信
    用フィルタと、 前記受信用フィルタが、受信しているデータがヘッダで
    あると判定した場合には、当該ヘッダを前記SRAMの
    前記システム制御手段が読み書きを行う領域へ格納させ
    るように転送パスを制御し、 前記受信用フィルタが、受信しているデータがデータ部
    であると判定した場合には、当該データ部を前記SRA
    MのFIFO領域に格納させてから前記DRAMへ格納
    させるように転送パスを制御し、かつ、1つのパケット
    の転送が終了したか否かを判定する転送管理手段と、 前記転送管理手段が、1つのパケットの転送が終了した
    と判定したことを、前記システム制御手段に割り込みを
    行って通知する割り込み制御手段とを備えることを特徴
    とするデータ伝送装置。
JP2001274001A 2001-09-10 2001-09-10 データ伝送装置 Expired - Fee Related JP3599692B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001274001A JP3599692B2 (ja) 2001-09-10 2001-09-10 データ伝送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001274001A JP3599692B2 (ja) 2001-09-10 2001-09-10 データ伝送装置

Publications (2)

Publication Number Publication Date
JP2003087338A true JP2003087338A (ja) 2003-03-20
JP3599692B2 JP3599692B2 (ja) 2004-12-08

Family

ID=19099123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001274001A Expired - Fee Related JP3599692B2 (ja) 2001-09-10 2001-09-10 データ伝送装置

Country Status (1)

Country Link
JP (1) JP3599692B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070546A (ja) * 2009-09-28 2011-04-07 Sony Corp バスプロトコル変換装置及びバスプロトコル変換方法
JP2011081801A (ja) * 2009-10-08 2011-04-21 Commissariat A L'energie Atomique Et Aux Energies Alternatives 複数のソースを有する直接アクセスメモリコントローラ、それに対応する方法及びコンピュータプログラム
JP2012222441A (ja) * 2011-04-05 2012-11-12 Denso Corp 車載通信装置
CN105849668A (zh) * 2013-12-16 2016-08-10 高通股份有限公司 计算设备中的功率节省技术
USRE49591E1 (en) 2013-12-16 2023-07-25 Qualcomm Incorporated Power saving techniques in computing devices

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070546A (ja) * 2009-09-28 2011-04-07 Sony Corp バスプロトコル変換装置及びバスプロトコル変換方法
JP2011081801A (ja) * 2009-10-08 2011-04-21 Commissariat A L'energie Atomique Et Aux Energies Alternatives 複数のソースを有する直接アクセスメモリコントローラ、それに対応する方法及びコンピュータプログラム
JP2012222441A (ja) * 2011-04-05 2012-11-12 Denso Corp 車載通信装置
CN105849668A (zh) * 2013-12-16 2016-08-10 高通股份有限公司 计算设备中的功率节省技术
USRE49591E1 (en) 2013-12-16 2023-07-25 Qualcomm Incorporated Power saving techniques in computing devices
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices

Also Published As

Publication number Publication date
JP3599692B2 (ja) 2004-12-08

Similar Documents

Publication Publication Date Title
US4878166A (en) Direct memory access apparatus and methods for transferring data between buses having different performance characteristics
US4947366A (en) Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities
US6526462B1 (en) Programmable multi-tasking memory management system
CN111506534B (zh) 具有非阻塞高性能事务信用系统的多核总线架构
US7277449B2 (en) On chip network
US8732416B2 (en) Requester based transaction status reporting in a system with multi-level memory
US7058735B2 (en) Method and apparatus for local and distributed data memory access (“DMA”) control
JP4560646B2 (ja) ハブベースのメモリシステムにおけるダイレクトメモリアクセス用の装置および方法
EP0321156B1 (en) Data transfer controller between two busses
US5317715A (en) Reduced instruction set computer system including apparatus and method for coupling a high performance RISC interface to a peripheral bus having different performance characteristics
US6996651B2 (en) On chip network with memory device address decoding
US7054986B2 (en) Programmable CPU/interface buffer structure using dual port RAM
US7930462B2 (en) Interface controller that has flexible configurability and low cost
US6330631B1 (en) Data alignment between buses
US6230215B1 (en) On-demand transfer engine
US8284792B2 (en) Buffer minimization in interface controller
US7774513B2 (en) DMA circuit and computer system
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
JP2003087338A (ja) データ伝送装置
US10802828B1 (en) Instruction memory
JP4741735B2 (ja) ディスク・コントローラ・メモリ・アーキテクチャ用システムおよび方法
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
EP0362425B1 (en) Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP4363431B2 (ja) データ転送方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040914

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees