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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
ト削減及び低消費電力化を図る。 【解決手段】 外部バスから受信したデータの出力、又
は入力されたデータの外部バスへの送信を行うデータ伝
送装置であって、プログラムに従って動作するシステム
制御手段と、外部バスとの間でデータの送信又は受信を
する外部バスインターフェイス(IF)と、DRAM
と、システム制御手段が読み書きを行う領域と、外部バ
スIFとDRAMとの間で転送されるデータを格納し、
格納した順に出力するFIFO領域とを有するSRAM
と、SRAMに読み書きをするためのポインタを管理す
るFIFO周辺回路とを備える。DRAMは、データ受
信時には、外部バスIFが受信したデータを、必要に応
じてFIFO領域を経由して、受け取って出力し、デー
タ送信時には、入力されたデータを格納し、これを外部
バスIFへ、必要に応じてFIFO領域を経由して、転
送する。
Description
光ディスク装置等との間でバスを介してデータを伝送す
る際の制御を行うデータ伝送装置に関する。
serial bus)、ATAPI(AT attachment packet int
erface)、SCSI(small computer system interfac
e)、Bluetooth等の標準バスの規格化がエレクトロニク
ス業界において続々と進行しつつある。これらの標準バ
スとの間のインターフェイスがPC、ストレージデバイ
ス、ディジタルAV機器、携帯電話等の情報機器に普及
することにより、多様な機器間の通信やデータ交換が促
進され、容易になる。情報機器の機能の大部分はシステ
ムLSIによって実現されており、システムLSIに標
準バスとの間のインターフェイスを内蔵し、かつ、低コ
スト化、低電力化することが要望されている。
例を示すブロック図である。このデータ伝送装置は、標
準バスインターフェイスを内蔵し、システムLSIとし
て実現されている。図37において、送受信FIFO
(first in, first out)バッファ(以下では、単にF
IFOと称する)927は、データを格納する1ポート
のSRAMと、FIFO内でデータが格納された領域の
トップのアドレスを指し示すポインタ、及びボトムのア
ドレスを指し示すポインタを格納するレジスタとを備え
ている。FIFOバッファの容量が小さい場合、フリッ
プフロップで構成されたシフトレジスタとポインタを格
納するレジスタとで実現することも可能である。FIF
O927は、受信時及び送信時において、外部バスイン
ターフェイス916とDRAM921との間の転送速度
差を吸収する緩衝メモリとして動作する。
912は、それぞれDMAチャネル1(DMAch1)
及びDMAチャネル2(DMAch2)によるデータ転
送を制御する。DMAch1により、外部バスインター
フェイス916とFIFO927との間でデータが転送
される。DMAch2により、FIFO927とDRA
M921との間でデータが転送される。
受信されたデータは、DMAch1によってFIFO9
27に転送され、更にDMAch2によってDRAM9
21に転送される。DRAM921にバッファリングさ
れたデータは、後にホストPCやストレージ等の他の機
器に転送される。外部バスEBへデータを送信する場
合、送信すべきデータは、まずDRAM921に格納さ
れる。その後、DRAM921から読み出されたデータ
は、DMAch2によってFIFO927に転送され、
更にDMAch1によって外部バスインターフェイス9
16に転送され、外部バスEBへ送信される。
る。図37のデータ伝送装置は、次のようなステップに
よって外部バスEBからデータを受信する。
916が、外部バスEBから送られて来たデータを受け
取る。
O927への書き込み FIFO927がフルでなければ、DMAch1によ
り、外部バスインターフェイス916のワード単位のデ
ータがFIFO927に転送される。FIFO927が
フルであれば、DMAch1はFIFO927に空きが
できるまで転送を待つ。
O927からの読み出し FIFO927が空でなければ、DMAch2によって
FIFO927からデータが読み出され、DRAM92
1に書きこまれる。FIFO927が空であれば、DM
Ach2はFIFO927にデータが入るまで待つ。
[終わり]。
うなステップによって外部バスEBにデータを送信す
る。
O927への書き込み FIFO927がフルでなければ、DMAch2によ
り、DRAM921から読み出されたワード単位のデー
タがFIFO927に書き込まれる。FIFO927が
フルであれば、DMAch2はFIFO927に空きが
できるまで書き込みを待つ。
O927からの読み出し FIFO927が空でなければ、DMAch1によって
FIFO927からデータが読み出され、外部バスイン
ターフェイス916に転送される。FIFO927が空
であれば、DMAch1はFIFO927にデータが入
るまで待つ。
916は、FIFO927から受け取ったデータを外部
バスEBに送信し、そのデータは転送先に転送される。
[終わり]。
は、DRAM921、CPU913用のデータRAMと
してのSRAM922の他に、FIFO927が必要で
あった。
ータ伝送装置は、外部バスとデータ伝送装置内部の回路
との間のデータ転送速度の差を緩衝するために、独立し
たFIFOバッファを必要としており、回路規模の増大
につながっていた。
等がファームウェアによって解析処理する場合には、受
信して格納したパケットをCPU等がアクセスできるメ
モリにコピーする必要があり、データ転送速度の低下の
原因となっていた。
減して、コスト削減及び低消費電力化を図ることを目的
とする。
転送速度を向上させることを目的とする。
め、請求項1の発明が講じた手段は、データ伝送装置と
して、外部バスから受信したデータの出力、又は入力さ
れたデータの前記外部バスへの送信を行うデータ伝送装
置であって、プログラムに従って動作するシステム制御
手段と、前記外部バスとの間でデータの送信又は受信を
する外部バスインターフェイスと、DRAM(dynamic
random access memory)と、前記システム制御手段が読
み書きを行う領域と、前記外部バスインターフェイスと
前記DRAMとの間で転送されるデータを格納し、格納
した順に出力するFIFO(firstin, first out)領域
とを有するSRAM(static random access memory)
と、前記SRAMが前記FIFO領域に格納したデータ
を格納した順に出力するように、前記SRAMに読み書
きをするためのポインタを管理するFIFO周辺回路と
を備えるものであり、前記DRAMは、データ受信時に
は、前記外部バスインターフェイスが受信したデータ
を、必要に応じて前記FIFO領域を経由して、受け取
って出力し、データ送信時には、入力されたデータを格
納し、これを前記外部バスインターフェイスへ、必要に
応じて前記FIFO領域を経由して、転送するものであ
る。
FO領域を設けるので、独立したFIFOバッファを備
える必要がない。すなわち、SRAMとFIFOバッフ
ァとを一体化することができるので、回路規模を削減す
ることができる。また、SRAMを検査すればFIFO
領域の検査も行われるので、製造後の品質保証のための
検査が容易になる。
のデータ伝送装置において、前記外部バスとは異なる外
部バスとの間でデータの送信又は受信をする外部バスイ
ンターフェイスを更に備え、前記SRAMは、前記各外
部バスインターフェイスに対応し、対応する外部バスイ
ンターフェイスと前記DRAMとの間で転送されるデー
タを入出力するためのポートを備えるものであり、前記
システム制御手段は、前記ポートのいずれかを用いて前
記SRAMにデータを読み書きすることができるように
構成されているものである。
のポートを有するので、システム制御手段によるSRA
Mに対するアクセスを高速化することができる。また、
SRAMのポート数以上の数の外部バスを接続しても転
送性能がほとんど低下しない。更に、SRAMに複数の
FIFO領域を設け、複数のFIFOバッファとして動
作させることができる。
載のデータ伝送装置において、前記SRAMは、前記シ
ステム制御手段との間でデータを入出力するためのポー
トと、前記外部バスインターフェイスと前記DRAMと
の間で転送されるデータを入出力するためのポートとを
備えるものである。
テム制御手段のためのポートを有するので、システム制
御手段がSRAMに対して0ウェイトでアクセスできる
ようになる。
のデータ伝送装置において、周波数が、当該データ伝送
装置の基本クロックのN(Nは2以上の整数)倍である
クロックに基づいて動作するSRAMを有し、前記基本
クロックに同期してデータを出力するSRAM部を、前
記SRAMに代えて備えるものである。
周波数が高いので、複数のポートを備えるのと同様の効
果が得られる。すなわち、システム制御手段によるSR
AMに対するアクセスを高速化すること等が可能とな
る。
載のデータ伝送装置において、前記FIFO周辺回路
は、前記FIFO領域の上限アドレス及び下限アドレ
ス、並びに次に読み出されるデータのアドレスを示す読
み出しポインタ及び次にデータが書き込まれるアドレス
を示す書き込みポインタを格納するレジスタと、前記F
IFO領域から読み出しが行われた場合に、前記読み出
しポインタを更新する手段と、前記FIFO領域に書き
込みが行われた場合に、前記書き込みポインタを更新す
る手段と、前記FIFO領域が有効なデータを格納して
いない空の状態であることを判定する手段と、前記FI
FO領域が新たなデータを格納することができないフル
状態であることを判定する手段とを備えるものである。
プログラマブルにすることができるので、データ転送速
度に応じてFIFOバッファの容量を変えることができ
る。
載のデータ伝送装置において、前記FIFO周辺回路
は、前記FIFO領域がフル状態であることを示すフラ
グを格納するレジスタを更に備えるものである。
のデータ伝送装置において、前記外部バスインターフェ
イスが前記外部バスから受信したデータを格納して、前
記SRAM又は前記DRAMに転送するキャッシュを更
に備えるものである。
のデータ伝送装置において、データ受信時であって、前
記FIFO領域が空のとき、前記キャッシュが格納した
データを、前記SRAMを経由することなく前記DRA
Mに転送するように構成されたものである。
のデータ伝送装置において、前記外部バスに送信すべき
データを格納して、前記外部バスインターフェイスに転
送する送信用キャッシュを更に備えるものである。
用のキャッシュを備えるので、DMAによるSRAMへ
のトラフィックを削減することができる。
記載のデータ伝送装置において、前記キャッシュは、デ
ータ送信時には、前記外部バスから受信したデータに代
えて、前記外部バスに送信すべきデータを格納して、前
記外部バスインターフェイスに転送する双方向キャッシ
ュであることを特徴とする。
記載のデータ伝送装置において、前記キャッシュは、複
数のワードを格納し、格納したデータを格納した順に出
力するように構成されているものである。
を格納することができるので、DMAによるSRAMへ
のトラフィックを大きく削減することができる。
載のデータ伝送装置において、前記DRAMが出力した
データを、前記SRAMを経由することなく前記外部バ
スインターフェイスに転送する経路を有するものであ
る。
に、SRAMのポートのトラフィックを減少させること
ができるので、システム制御手段がSRAMへのアクセ
スを待つ時間を減少させ、システム制御手段の処理性能
を高めることができる。
載のデータ伝送装置において、前記外部インターフェイ
スが受信したデータがパケットのヘッダとデータ部との
いずれであるかを判定する受信用フィルタと、前記受信
用フィルタが、受信しているデータがヘッダであると判
定した場合には、当該ヘッダを前記SRAMの前記シス
テム制御手段が読み書きを行う領域へ格納させるように
転送パスを制御し、前記受信用フィルタが、受信してい
るデータがデータ部であると判定した場合には、当該デ
ータ部を前記SRAMのFIFO領域に格納させてから
前記DRAMへ格納させるように転送パスを制御し、か
つ、1つのパケットの転送が終了したか否かを判定する
転送管理手段と、前記転送管理手段が、1つのパケット
の転送が終了したと判定したことを、前記システム制御
手段に割り込みを行って通知する割り込み制御手段とを
備えるものである。
AMのFIFO領域に転送する必要がなくなるので、デ
ータ伝送装置内のデータ転送量を削減し、データ伝送装
置全体の性能を向上させることができる。
て、図面を参照しながら説明する。
の実施形態に係るデータ伝送装置の構成の例を示すブロ
ック図である。図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とを備えている。
ル、又は無線伝送路等で実現され、高速転送に適した物
理信号フォーマットで情報を伝達する。外部バスEB
は、例えば、IEEE1394規格によるバスであると
する。
が接続されているものとする。また、外部バスEBに
は、ホストコンピュータ等が接続されている。図1のデ
ータ伝送装置は、外部バスEBから受信したデータの光
ディスクドライブ等への出力、又は光ディスクドライブ
等から入力されたデータの外部バスEBへの送信を行
う。
バイト)を単位としてデータを転送するものとする。ま
た、WLバイト=DLビットとする(DL=WL×
8)。CPU13、DRAM21、SRAM22、双方
向キャッシュ24等に接続されたデータバスの幅は、W
Lバイトであるとして説明するが、WLバイトの整数倍
であってもよい。各バスの幅はそれぞれ異なっていても
よい。以下のブロック図においては、太線はデータバス
等のデータの経路を示している。
タ転送を制御する。DMAC11,12が制御するデー
タ転送を、それぞれDMAch1、DMAch2による
転送と称する。以下では、DMAC11がDMAch1
による書き込み等を行うことを、DMAch1が書き込
み等を行うともいう。DMAC12についても同様であ
る。
22内のFIFO領域との間の双方向データ転送(DM
Ach1)を制御する。DMAC12は、SRAM22
内のFIFO領域とDRAM21との間の双方向データ
転送(DMAch2)を制御する。
し、DRAM21に接続された光ディスクドライブ等の
制御を行う。CPU13は、MCU(micro-controller
unit)又は組み込みマイコン(micro-computer、又はm
icro-controller)と呼ばれることもある。CPU13
が実行する命令を有するプログラム(ファームウェア)
は、主に命令ROMやフラッシュメモリ(いずれも図示
せず)等から供給される。
トローラであって、データ伝送装置全体のデータ転送を
管理している。転送管理ユニット14は、DMAC1
1,12及びセレクタ51〜57等を制御しており、ま
た、CPU13にウェイトをかけることができる。
SRAM22に対するアクセスを行う3つの制御装置
(以下では、アクセス主体と称する)、CPU13、D
MAC11、及びDMAC12に対する制御を行う。す
なわち、転送管理ユニット14は、メモリに対するアク
セスのCPU13、DMAch1、及びDMAch2の
間での切り替え、これらの優先順を考慮した調停、DM
Aによるデータ転送中であってCPU13がメモリアク
セスできない場合におけるCPU13に対するウェイト
制御等を行う。
スEBと、リンク層と呼ばれる図1のデータ伝送装置の
内部ディジタル回路との間を橋渡しする物理層の回路で
ある。外部バスインターフェイス16は、外部バスEB
から受信したデータをDRAM21に転送し、DRAM
21から転送されてきたデータを外部バスEBに出力す
る。外部バスインターフェイス16は、外部バスEBの
ビット幅と内部バスのビット幅との間でバス幅を変換す
る回路も有している。
1に対して制御信号DCNを出力して、複数の回路から
のDRAM21に対するアクセス要求を調停し、DRA
M21に対する読み書きのタイミングを制御する。ま
た、DRAMコントローラ18は、DRAM21に対し
てアドレスDADを出力し、DRAM21との間でデー
タDDTを入出力する。
メモリである。SRAM22は、比較的高速小容量の汎
用メモリであり、CPU13が作業用に使用するCPU
使用領域CRと、FIFO(first in, first out)バ
ッファ(仮想FIFO)として使用されるFIFO領域
FRとを有している。
ス16が外部バスEBから受信したデータを、SRAM
22内のFIFO領域FR及び双方向キャッシュ24の
うちの少なくとも一方と、DRAMコントローラ18と
を経由して受信する。また、DRAM21は、DRAM
コントローラ18、SRAM22内のFIFO領域F
R、及び外部バスインターフェイス16を経由して、外
部バスEBにデータを送信する。
データ単位を格納する。DRAM21の読み出し又は書
き込みのためには、制御信号として一般的にロウアドレ
スストローブRAS、コラムアドレスストローブCA
S、書き込みイネーブルWE、出力イネーブルOE等が
使われる。
ドレス領域に割り当てられており、CPU13は、DR
AM21に直接アクセスすることができる。ただし、D
RAM21は、SRAM22よりもアクセス時間が長
い。また、リフレッシュやアクセス競合、ページミスヒ
ット等のため、アクセス時間は一定ではなく、ウェイト
数は可変である。
時及び送信時において、データを一時的に格納して、外
部バスインターフェイス16とDRAM21との間の転
送速度差を吸収するバッファとして動作する。SRAM
22は、DRAM21に比べビット当たりの面積が大き
いため、LSI上に大容量を実装することができない。
Ach2以外のDMAチャネルによるアクセスも行われ
るので(ただし、DMAch1によるアクセスは行われ
ない)、外部バスEBにデータを送信する場合、DMA
ch2の転送速度がDMAch1よりも一時的に遅くな
ることがある。その際にも、DMAch1の要求に応じ
てDRAM21内のデータを転送することができるよう
に、SRAM22は充分な大きさのFIFO領域FRを
有する必要がある。
のために入力される制御信号として、一般的にチップセ
レクトCS、バイトイネーブルBE、書き込みイネーブ
ルWE、読み出しイネーブルRE等が使われる。更に同
期式SRAMの場合、SRAMは入力されるクロックC
LKに同期してアクセスされる。以下では、SRAM2
2に入力されるアドレスを表す信号は、これらの制御信
号を含んでいるものとする。
ドレス領域に割り当てられており、CPU13は、SR
AM22に固定ウェイトで直接アクセスできる。アクセ
スの際のウェイトは、例えば0ウェイトとすることがで
きる。
のデータを格納することができるフリップフロップであ
って、受信時及び送信時にSRAM22のFIFO領域
FRへのアクセスを軽減するための迂回パスとして動作
する。
シュ24に有効な値が入っているか否かを示す有効フラ
グVを格納する1ビットレジスタである。有効フラグV
は、その値が1のときには双方向キャッシュ24に有効
なデータが格納されている状態を表し、その値が0のと
きには双方向キャッシュ24が空である、すなわち、読
み出すべき有効なデータが存在しない状態を表す。DM
AC11及び12は、双方向キャッシュ24が有効なデ
ータを保持しているか否かを判断するために、有効フラ
グVの値を参照する。
FIFO領域FRを仮想FIFOとして用いるための制
御を行う。すなわち、SRAM22がFIFO領域FR
に格納したデータを格納した順に出力するように、SR
AM22に読み書きをするためのポインタを管理する。
スインターフェイス16の出力のうちの1つを選択し、
双方向キャッシュ24に出力する。セレクタ52は、受
信時において、双方向キャッシュ24が格納するデータ
と外部バスインターフェイス16の出力とのうちのいず
れかを選択し、セレクタ55を介してSRAM22に出
力する。出力されたデータは、SRAM22のFIFO
領域FRに書き込まれる。セレクタ53は、送信時にお
いて、双方向キャッシュ24が格納するデータとSRA
M22の出力とのうちのいずれかを選択し、外部バスイ
ンターフェイス16に出力する。
RAM21、SRAM22、CPU13への書き込みデ
ータを選択する。セレクタ57は、CPU13が出力す
るアドレス信号CADとFIFO周辺回路30が出力す
るアドレス信号FADとのうちのいずれかを選択し、ア
ドレス信号SADとしてSRAM22に出力する。アド
レス信号CAD,FAD,SADはいずれも、アドレ
ス、チップセレクトCS、書き込みイネーブルWE、バ
イトイネーブルBE等の信号を含んでいる。
Oバッファとしても用いると、SRAMに対するアクセ
ス競合がシステム性能のボトルネックになる。図1のデ
ータ伝送装置では、仮想FIFOの他に双方向キャッシ
ュ24を備えているので、読み出し及び書き込みの際の
SRAMのポートのトラフィックを緩和することができ
る。
ク図である。図2のように、SRAM22は、CPU1
3が作業用に使用するCPU使用領域CRと、FIFO
バッファとして使用されるFIFO領域FRとを有して
いる。通常、CPU13はCPU使用領域CRにアクセ
スしてデータ処理を行い、DMAC11,12はFIF
O領域FRにアクセスしてデータ転送を行う。
行うことができるのは、CPU13、DMAch1(D
MAC11)、DMAch2(DMAC12)のいずれ
かである。SRAM22は1ポートしか有していないの
で、同時に2以上のアクセスを受けることはできない。
FO周辺回路30とを有するソフトウェア制御可能なF
IFOバッファを仮想FIFOと称することとする。仮
想FIFOは、SRAM22のFIFO領域FRをリン
グバッファとして用いるものである。DMAch1及び
DMAch2は、仮想FIFOを介して転送データの引
き渡しを互いに行う。CPU13が実行するプログラム
は、転送データが壊れないように、DMA転送中におい
てはCPU13がFIFO領域FRに書き込みを行わな
いようなものである必要がある。
上限アドレスUB、及び下限アドレスLBをそれぞれ格
納するレジスタ31,32と、読み出しポインタRP、
書き込みポインタWP、フルフラグF、及び空フラグE
をそれぞれ格納するレジスタ33,34,35,36
と、セレクタ41,42,43と、増分器44,45と
を備えている。フルフラグFは、その値が“1”である
とき、FIFO領域FRがそれ以上新たなデータを格納
することができないフル状態であることを示す。
32,33,34,35の値を入力としており、これら
の値に従って、セレクタ41,42,43及び増分器4
4,45を制御して、以下のような動作を行わせる。
は読み出しポインタRPが上限アドレスUBに達するオ
ーバーフローが発生すると、セレクタ42は、レジスタ
32の出力を選択し、読み出しポインタRPが下限アド
レスLBになるようにする。同様に、書き込みポインタ
WPに対する初期化、又は書き込みポインタWPが上限
アドレスUBに達するオーバーフローが発生すると、セ
レクタ43は、レジスタ32の出力を選択し、書き込み
ポインタWPが下限アドレスLBになるようにする。
していないとき、セレクタ42,43は、それぞれレジ
スタ33,34の出力を選択している。仮想FIFOに
対する読み出し、書き込みが発生すると、アドレス増分
器44,45は、それぞれ読み出しポインタRP,書き
込みポインタWPをWLだけ増加させる。セレクタ41
は、仮想FIFOからの読み出し時には、レジスタ33
が出力する読み出しポインタRPを、仮想FIFOへの
書き込み時には、レジスタ34が出力する書き込みポイ
ンタWPを選択し、セレクタ57に出力する。
スUB、又はレジスタ32の下限アドレスLBを書き換
えると、SRAM22のFIFO領域FRを変更するこ
とができる。なお、FIFO領域FRを固定しておく場
合は、レジスタ31,32は不要である。
の関係の一例を示す説明図である。SRAM22内のF
IFO領域FRのアドレスはLBからUB−WLまでで
あり、FIFO容量は(UB−LB)ワードである。F
IFO領域FRの上限及び下限は、SRAM22のワー
ド境界にアラインメントされている。
のうち最も新しいもの及び最も古いものの位置を、それ
ぞれFIFOトップ及びFIFOボトムと称することと
する。FIFO領域FRへの書き込みの際にはアドレス
が順次増加するので、書き込みが最後に行われたデータ
はFIFOトップに格納され、読み出しが最初に行われ
るべきデータはFIFOボトムに格納されている。書き
込みポインタWPは、次にデータが書き込まれるアドレ
ス、すなわち、FIFOトップのアドレスにWLを加え
たアドレスを指し示す。読み出しポインタRPは、次に
読み出されるデータが格納されているFIFOボトムの
アドレスを指し示す。
タWP及び読み出しポインタRPの値から、FIFO領
域FRが有効なデータでフル状態であって、それ以上新
たなデータを格納することができない状態であるか否か
を判定し、フル状態である場合にはレジスタ35のフル
フラグFを立てる。同様に、転送管理ユニット14は、
FIFO領域FRが、有効なデータが格納されていない
空の状態であるか否かを判定し、空の状態である場合に
はレジスタ36の空フラグEを立てる。
める際の論理を示す説明図である。転送管理ユニット1
4が求めたフルフラグFを用いると、仮想FIFOがフ
ルである状態と空である状態とを区別することができ
る。すなわち、F=1の場合はフルであり、WP=RP
かつF=0の場合は空であることがわかる。ところで、
仮想FIFO中のワード数は、(WP−RP)mod
(UB−LB)と表すことができる。但し、フルの場合
は、UB−LBである。ここで、modは正の剰余演算
子である。
想FIFOへの書き込み動作は停止される。FIFO領
域FRが空になった場合、仮想FIFOからの読み出し
動作は停止される。
の関係の他の例を示す説明図である。仮想FIFOを用
いた動作が繰り返され、書き込みポインタWPがFIF
O上限を超えると、書き込みポインタWPはFIFO下
限にラップアラウンド(wraparound)して図5の状態に
なる。FIFOトップは、アドレス(WP−WL)によ
り指し示され、FIFOボトムは、読み出しポインタR
Pにより指し示される。
の一連の動作を以下に説明する。受信の場合、双方向キ
ャッシュ24が格納しているデータは、仮想FIFOに
FIFOトップのワードとして格納されるべきデータで
ある。受信したデータの順を保つために、双方向キャッ
シュ24が空でなければ、DMAが仮想FIFOに直接
書き込むことはできない。そこで、SRAM22のデー
タ入力ポートが使われないときを狙って、双方向キャッ
シュ24のデータを仮想FIFOに書き込むようにす
る。
16は、外部バスEBからデータを受信する。
IFOへの受信データ書き込み SRAM22がアクセスされており、双方向キャッシュ
24に空きがない場合、DMAch1は書き込みを待た
される。SRAM22がアクセスされており、双方向キ
ャッシュ24に空きがある場合、DMAch1は双方向
キャッシュ24へ書き込みを行う。SRAM22がアク
セスされておらず、双方向キャッシュ24が空ではない
場合、DMAch1は双方向キャッシュ24のデータを
仮想FIFOへ書き込み、更に双方向キャッシュ24へ
の書き込みを行う。SRAM22がアクセスされておら
ず、双方向キャッシュ24が空である場合、DMAch
1は仮想FIFOへ直接書き込みを行う。
3、DMAC11、DMAC12のいずれからもアクセ
スされていないとき、次の操作を実行する。仮想FIF
Oがフルでも空でもなく、かつ、双方向キャッシュ24
が空でなければ、DMAch1は双方向キャッシュ24
のデータを仮想FIFOへ書き込む。
IFOからの受信データ読み出し 仮想FIFOが空で、かつ双方向キャッシュ24が空で
はない場合、DMAch2は双方向キャッシュ24から
データを読み出し、SRAM22を経由させずに、直接
DRAM21へ転送する。仮想FIFOが空で、かつ双
方向キャッシュ24が空である場合、DMAch2は双
方向キャッシュ24に有効データが入るまで待たされ
る。
に対する他からのアクセスがない場合、DMAch2は
仮想FIFOからデータを読み出し、DRAM21へ転
送する。仮想FIFOが空ではなく、仮想FIFOが他
からアクセスされている場合、DMAch2は仮想FI
FOに対する他からのアクセスが終わるまで待つ。[終
わり]。
い場合について説明したが、外部バスEBから送られて
きたデータを待たせることができない場合には、DMA
ch1の優先順位を高くする必要がある。
想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) で表すことができる。“〜”は否定、“|”は論理和、
“・”は論理積を表す。
MA1,及びselDMA2には、CPU13,DMA
ch1,及びDMAch2がそれぞれ対応している。転
送管理ユニット14は、CPU13,DMAch1,及
びDMAch2の3者の要求を調停して、これらのうち
の1つに対応した選択信号をアサートする。
レクタ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を選択す
る。
A1,csDMA2は、仮想FIFOがそれぞれCPU
13,DMAch1,DMAch2によりアクセスされ
る場合にアサートされる。同様に、読み出しイネーブル
信号reCPU,reDMA1,reDMA2は、仮想
FIFOからそれぞれCPU13,DMAch1,DM
Ach2による読み出しが行われる場合にアサートされ
る。書き込みイネーブル信号weCPU,weDMA
1,weDMA2は、仮想FIFOにそれぞれCPU1
3,DMAch1,DMAch2による書き込みが行わ
れる場合にアサートされる。
ア的なリセット信号であり、初期化信号initは、C
PU13が初期化命令によりセットするソフトウェア的
なリセット信号である。方向ビットDIRは、その値が
“0”のときは外部バスEBからの受信、“1”のとき
は外部バスEBへの送信を表す。
出しポインタRPが書き込みポインタWPに追いついた
場合、仮想FIFOは空となり、書き込みポインタWP
と読み出しポインタRPとの値(アドレス)が一致す
る。書き込みポインタWPが読み出しポインタRPに追
いついた場合、仮想FIFOはフルとなり、書き込みポ
インタWPと読み出しポインタRPとがやはり一致す
る。
ムを示す説明図である。図6では、更新され、次サイク
ルにおいて用いられる書き込みポインタWP及びフルフ
ラグFを、それぞれWP’及びF’で表している。書き
込みが行われる場合の仮想FIFOの動作を以下に説明
する。 (1)SRAM22は、書き込みポインタWPが指し示
すアドレスに入力されたデータを書き込む。 (2)FIFO周辺回路30は、書き込みポインタWP
を1ワード分インクリメントする。
ムを示す説明図である。図7では、更新された読み出し
ポインタRPをRP’で表している。読み出しが行われ
る場合の仮想FIFOの動作を以下に説明する。 (1)SRAM22は、読み出しポインタRPが指すア
ドレスから1ワードを読み出して出力する。 (2)FIFO周辺回路30は、読み出しポインタRP
を1ワード分インクリメントする。
DMAの動作を示す説明図である。DMA(DMAch
1及びDMAch2)は、図8に示された条件の組み合
わせ以外の場合には動作しない。すなわち、DMAから
アクセス要求があった場合であっても、DMAは待たさ
れることがある。ただし、DMAからのアクセス要求が
CPU13からのアクセス要求と衝突したとき、転送管
理ユニット14は、予め定めておいた優先順位を考慮し
て、DMAのアクセスを許可し、CPU13を待たせる
ことがあるものとする。このような場合を、以下の図で
は“(0)”で表す。また、“→”は、データが転送さ
れる向きを表す。“*”は、“0”又は“1”を表す。
“=”は、代入演算を表す。
うDMAch1が、仮想FIFOからの読み出しを行う
DMAch2よりも優先されるものとするので、WRQ
==RRQ==1の場合は、WRQ=1,RRQ=0の
場合と同じである。この場合、結果として、読み出し要
求RRQは待たされる。
送装置の一連の動作を以下に説明する。図9は、送信時
における仮想FIFO及びDMAの動作を示す説明図で
ある。双方向キャッシュ24が格納するデータは、FI
FOボトムのワードとして格納されていたデータであ
る。送信の場合、双方向キャッシュ24にはできる限り
有効なデータが格納されているようにする。双方向キャ
ッシュ24に有効なデータが入っていない場合は、DM
Aが仮想FIFOからデータを直接読み出すことができ
る。仮想FIFOが空ではなく、かつ双方向キャッシュ
24が空になった場合は、SRAM22のデータ出力ポ
ートが使われないときを狙って、FIFOボトムのワー
ドを双方向キャッシュ24に書き込むようにする。
IFOへの書き込み DMAch2がDRAM21から読み出したデータをS
RAM22の仮想FIFOへ書き込む。
ャッシュ24への読み出し 仮想FIFOが空ではなく、双方向キャッシュ24が空
であれば、SRAM22のデータ出力ポートが使われな
いサイクルにおいて、転送管理ユニット14が仮想FI
FOからデータを読み出し、双方向キャッシュ24に書
き込む。
IFOからの読み出し 双方向キャッシュ24が空でなければ、DMAch1が
双方向キャッシュ24からデータを読み出す。双方向キ
ャッシュ24が空であれば、SRAM22のデータ出力
ポートが使われないサイクルにおいて、DMAch1が
仮想FIFOからデータを読み出し、双方向キャッシュ
24を経由させずに、直接外部バスインターフェイス1
6に転送する。
16が、仮想FIFOから送られて来たデータを外部バ
スEBに送信する。[終わり]。
いて説明する。双方向キャッシュ24、又はSRAM2
2に対して読み書きすることが、複数のアクセス主体か
ら同時に要求される(アクセスが衝突する)場合には、
転送管理ユニット14が調停を行う。調停論理は、アク
セス優先順位を考慮し、アクセスが順番に許されるよう
にする。
有すると、CPU13は長く待たされる。ここでDMA
からのアクセスには、双方向キャッシュ24からのデー
タの転送を含む。しかし、SRAM22が高速に動作
し、その帯域幅が充分高ければ、CPU13が待たされ
る上限のサイクル数を2に抑えられる。転送管理ユニッ
ト14は、SRAM22にアクセスする3つの制御装置
がSRAMに交互に、又は順番にアクセスするよう調停
し、CPU13が、DMAと衝突したときは1〜2ウェ
イト、衝突しないときは0ウェイトでSRAM22にア
クセスできるようにする。
/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に連続してアクセ
スすることがある。
ぼすことなく全て転送するためには、DMAch1を待
たせることがないようにするのが望ましい。このため、
以下では、DMAch1、CPU13、DMAch2の
順に、SRAM22に対するアクセス優先順位が高いと
し、仮想FIFOの容量は充分に大きいものとする。D
MAch1は最優先であるが連続アクセスしないので、
DMAch1がアクセスしないサイクルにおいてCPU
13とDMAch2とがアクセスできる。したがって、
CPU13のSRAM22へのアクセス待ちを2ウェイ
ト以下に制限するように設計することができる。
要求RRQを行うとき、SRAM22の出力ポートは常
に空いているとして良いので、ステップ2とステップ3
とを同時に実行することができる。
想FIFO、CPU13及びDMAの動作について説明
する。特に、CPU13,DMAch1,DMAch2
の3者がSRAM22にアクセスし、SRAM22に対
する負荷が最も高い状況であるとする。すなわち、DM
AがSRAM22の仮想FIFOを介して受信されたデ
ータを転送しながら、CPU13はSRAM22に対し
てロード、及びストアアクセスを交互に繰り返している
ものとする。以下の図において、“R”は仮想FIFO
からの読み出しを、“W”は仮想FIFOへの書き込み
を表す。また、FIFO中の語数の欄の“V”は、双方
向キャッシュ24に有効なデータが格納されていること
を示す。
で、3つのアクセス主体がSRAM22に常にアクセス
している場合の仮想FIFO及びDMAの動作を示す説
明図である。これは、受信時における最悪の状態であ
る。DMAch1が仮想FIFOに書き込みを行うとF
IFO中の語数が増加し、DMAch2が仮想FIFO
から読み出しを行うとFIFO中の語数が減少してい
る。CPU13はCPU使用領域CRにアクセスするの
で、CPU13が書き込み及び読み出しを行う際には、
FIFO中の語数は変化しない。
た場合の仮想FIFO及びDMAの動作を示す説明図で
ある。DMAch2による仮想FIFOからの読み出し
が行われる毎にFIFO中の語数が減少し、FIFO中
の語数が0になると(サイクル10)、双方向キャッシ
ュ24からの読み出しが行われる。
た場合の仮想FIFO及びDMAの動作を示す説明図で
ある。ここで、仮想FIFOの容量がNワードであると
している。図10の場合においてDMAch2によって
使用されていたスロット(サイクル3等)が、CPU1
3によって使用されている。DMAch1による仮想F
IFOへの書き込みが行われる毎にFIFO中の語数が
増加している。FIFO中の語数がNになると、DMA
ch1による書き込みは行われなくなる。
場合の仮想FIFO及びDMAの動作を示す説明図であ
る。図10の場合においてCPU13によって使用され
ていたスロット(サイクル4等)が、DMAch2によ
って使用されている。一般に、DRAMの転送速度はS
RAMよりも遅いが、ここでは、DRAM21に対して
ページ連続ヒットして、DMAch2がウェイトなしで
SRAM22にアクセスすることができているとする。
SRAM22の仮想FIFOに対するアクセスではな
く、双方向キャッシュ24に対するアクセスであること
を表す。したがって、“R*”及び“W*”が示された
サイクルにおいては、DMAch1又はDMAch2に
よるアクセスを、CPU13のSRAM22に対するア
クセスと並列して実行することができる。
合の仮想FIFO及びDMAの動作を示す説明図であ
る。一旦FIFOが空になれば、DMAは、まず双方向
キャッシュ24にアクセスするので、DMAはSRAM
22に全くアクセスしていない。このため、CPU13
は、SRAM22に連続してアクセスすることができ
る。
キャッシュ24が仮想FIFOにデータを転送する場合
の仮想FIFO及びDMAの動作を示す説明図である。
以下の図においては、双方向キャッシュ24と仮想FI
FOとの間でデータを転送するサイクルを“#”で示
す。SRAM22への書き込み、SRAM22からの読
み出しのいずれも行われていない空きサイクルにおい
て、双方向キャッシュ24が空ではなく、仮想FIFO
が空でもフルでもない場合、双方向キャッシュ24から
仮想FIFOへデータが転送される。このとき、有効フ
ラグV=0となる。
方向キャッシュ24が空になるので、サイクル5におい
て、CPU13がSRAM22にアクセスするのと同時
にDMAch1が双方向キャッシュ24にアクセスする
ことができる。したがって、CPU13による処理の効
率が向上する。
キャッシュ24が仮想FIFOにデータを転送しない場
合の仮想FIFO及びDMAの動作を示す説明図であ
る。図16は、図15の場合との比較のために示すもの
である。図16の場合、空きサイクル4で双方向キャッ
シュ24が空にならない。サイクル5,6において、C
PU13は、DMAch1又はDMAch2と同時にS
RAM22にアクセスすることはできないので、サイク
ル7まで書き込みを待たされる。
ず、仮想FIFOへ直接書き込みを行う場合の仮想FI
FO及びDMAの動作を示す説明図である。双方向キャ
ッシュ24が空であり、かつ仮想FIFOが空でないと
きに、このような動作をすることが可能である。図17
の場合、サイクル4において双方向キャッシュ24が空
になるので、サイクル5においてDMAch1は双方向
キャッシュ24を経由せず、仮想FIFOに書き込みを
行う。この場合、サイクル8において、双方向キャッシ
ュ24が空であるので、CPU13がSRAM22にア
クセスするのと同時に、DMAch1が双方向キャッシ
ュ24にアクセスすることができる。
みを行う場合の仮想FIFO及びDMAの動作を示す説
明図である。図18は、図17の場合との比較のために
示すものである。図18の場合、サイクル5においてD
MAch1は双方向キャッシュ24に書き込みを行うの
で、サイクル8において、CPU13はSRAM22に
アクセスすることができない。
て、仮想FIFOが双方向キャッシュ24にデータを転
送する場合の仮想FIFO及びDMAの動作を示す説明
図である。図19において、サイクル6までは双方向キ
ャッシュ24は空である。サイクル7が空きサイクルで
あるとすると、FIFOボトムの1ワードが仮想FIF
Oから双方向キャッシュ24へ先読み転送される。サイ
クル9において、双方向キャッシュ24は有効なデータ
を格納しているので、CPU13がSRAM22に読み
出しのためにアクセスするのと同時に、DMAch1が
双方向キャッシュ24に読み出しのためにアクセスする
ことができる。
ch2の平均転送速度がDMAch1よりも速いので、
受信時には仮想FIFOが空に近い状態で動作する。図
1のデータ伝送装置は、仮想FIFOの他に1ワード長
の双方向キャッシュ24を備えているので、受信時にお
いて、FIFO領域FRを有するSRAM22に対する
DMAのアクセスを実質的になくすことができる。この
ため、CPU13のロード・ストア性能をあまり落とす
ことがない。また、送信時において、仮想FIFOから
双方向キャッシュ24にデータを先読みするので、DM
AによるSRAM22へのアクセスを大きく削減し、C
PU13のウェイト数を削減することができる。
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ワー
ド少なくなる。
レジスタが格納するデータを1つのレジスタでまとめて
格納するようにしてもよい。
るようにしてもよい。同様に、転送管理ユニットが動的
に調停することにより、SRAMへのアクセス主体の優
先順位をプログラマブルにするようにしてもよい。
DMAch2の2チャネルを用いてDMA転送を行うも
のとして説明したが、全てのDMA転送を1チャネルで
行ってもよいし、3チャネル以上で行ってもよい。
形例では、複数ワードを格納することができるキャッシ
ュを備えたデータ伝送装置について説明する。
に係る双方向キャッシュのブロック図である。図20の
双方向キャッシュは、図1のデータ伝送装置において、
双方向キャッシュ24の代わりに用いられるものであ
る。図20の双方向キャッシュは、レジスタ81,8
2,83,84と、セレクタ85と、増減分器86と、
レジスタ87と、ポインタ制御回路88とを備えてい
る。レジスタ81〜84は、それぞれ1ワードを格納す
ることができる。
FOバッファとして動作するが、書き込みはレジスタ8
1に行われるので、書き込みポインタは不要である。レ
ジスタ81に書き込みが行われるときには、レジスタ8
1,82,83に格納されていたデータは、それぞれ次
段のレジスタ82,83,84に格納される。レジスタ
87は、読み出しポインタCRPを格納し、これをセレ
クタ85及び増減分器86に出力する。増減分器86
は、ポインタ制御回路88の指示に従って、入力された
CRPを増減させてレジスタ87に出力する。
読み出し要求があると、入力された読み出しポインタC
RPから1を減じて出力するように増減分器86に指示
をする。また、ポインタ制御回路88は、キャッシュへ
の書き込み要求があると、入力された読み出しポインタ
CRPに1を加えて出力するように増減分器86に指示
をする。セレクタ85は、読み出しポインタCRPが例
えば1,2,3,4のとき、それぞれレジスタ81,8
2,83,84の出力を選択して出力する。
ムにあたるシフトレジスタを指し、かつ、双方向キャッ
シュが格納しているワード数をも表わしている。読み出
しポインタCRPが0のとき、双方向キャッシュのFI
FOバッファは空であり、読み出しポインタCRPが4
のとき、双方向キャッシュのFIFOバッファはフルで
ある。双方向キャッシュをリセットすると、読み出しポ
インタCRPは0になる。
向キャッシュを備えた場合の、受信時における仮想FI
FO及びDMAの動作を示す説明図である。図22は、
複数のワードを格納できる双方向キャッシュを備えた場
合の、送信時における仮想FIFO及びDMAの動作を
示す説明図である。
数のワードを格納することができるので、DMAによる
SRAMへのトラフィックを大きく削減することができ
る。
形例では、SRAMを経由せず、DRAMから直接キャ
ッシュへ転送するパスを備えたデータ伝送装置について
説明する。
に係るデータ伝送装置のブロック図である。図23のデ
ータ伝送装置は、図1のデータ伝送装置におけるDRA
Mコントローラ18からセレクタ55へのパス、及びS
RAM22からセレクタ51,53へのパスの代わり
に、DRAMコントローラ18からセレクタ51,53
へのパスを有している。すなわち、DRAM21は、S
RAM22を経由せず、直接双方向キャッシュ24へデ
ータを転送することができるので、送信時のSRAM2
2へのDMAアクセスをなくすことができる。
113、転送管理ユニット114、外部バスインターフ
ェイス116、及びDRAMコントローラ118は、そ
れぞれ、図1のDMAC11,12、CPU13、転送
管理ユニット14、外部バスインターフェイス16、及
びDRAMコントローラ18に対応している。
FIFOがフルに近い状態で動作するため、CPU13
のSRAM22へのアクセスにはほぼ2ウェイトを費や
していた。これに対し、図23のデータ伝送装置によれ
ば、送信時のCPUウェイト数は0となる。
M21が出力したデータは仮想FIFOに蓄えられない
ため、転送速度を調整することができない。送信時に、
DRAM21からの読み出しが止まり、双方向キャッシ
ュ24も空になると、送信データが途切れてしまう。こ
のような事態を避けるため、送信中には他の装置がDR
AM21へアクセスしないようにして、DRAM21か
らの読み出しの帯域幅を確保する必要がある。
は、受信用キャッシュと送信用キャッシュとを備えたデ
ータ伝送装置について説明する。
データ伝送装置の構成の例を示すブロック図である。図
24のデータ伝送装置は、図1のデータ伝送装置におけ
るキャッシュブロック23の代わりに、受信用キャッシ
ュブロック223と、送信用キャッシュブロック226
とを備えている。受信用キャッシュブロック223は、
受信用キャッシュ224と、受信用有効フラグレジスタ
225とを備え、送信用キャッシュブロック226は、
送信用キャッシュ227と、送信用有効フラグレジスタ
228とを備えている。
213、転送管理ユニット214、外部バスインターフ
ェイス216、及びDRAMコントローラ218は、そ
れぞれ、図1のDMAC11,12、CPU13、転送
管理ユニット14、外部バスインターフェイス16、及
びDRAMコントローラ18に対応している。
ッシュ227は、例えば1ワードのデータを格納するこ
とができるフリップフロップであって、それぞれ受信時
及び送信時に、SRAM22のFIFO領域へのアクセ
スを軽減するための迂回パスとして動作する。
用キャッシュ224に有効な値が入っているか否かを示
す有効フラグVrを格納する1ビットレジスタである。
有効フラグVrは、その値が1のときには受信用キャッ
シュ224に有効なデータが格納されている状態を表
し、その値が0のときには受信用キャッシュ224が空
である、すなわち、読み出すべき有効なデータが存在し
ない状態を表す。
は、送信用キャッシュ227に有効な値が入っているか
否かを示す有効フラグVsを格納する1ビットレジスタ
である。有効フラグVsは、その値が1のときには送信
用キャッシュ227に有効なデータが格納されている状
態を表し、その値が0のときには送信用キャッシュ22
7が空である、すなわち、読み出すべき有効なデータが
存在しない状態を表す。
信用キャッシュ227を備えた場合の、受信時における
仮想FIFO及びDMAの動作を示す説明図である。受
信の場合における図24のデータ伝送装置の一連の動作
を以下に説明する。受信の場合、受信用キャッシュ22
4が格納しているデータは、仮想FIFOにFIFOト
ップのワードとして格納されるべきデータである。受信
したデータの順を保つために、受信用キャッシュ224
が空でなければ、DMAが仮想FIFOに直接書き込む
ことはできない。そこで、SRAM22のデータ入力ポ
ートが使われないときを狙って、受信用キャッシュ22
4のデータを仮想FIFOに書き込むようにする。
16は、外部バスEBからデータを受信する。
おけるDMAch1による仮想FIFOへの書き込み SRAM22がアクセスされており、受信用キャッシュ
224に空きがない場合、DMAch1は仮想FIFO
への書き込みを待たされる。SRAM22がアクセスさ
れており、受信用キャッシュ224に空きがある場合、
DMAch1は受信用キャッシュ224へ書き込みを行
う。
信用キャッシュ224が空ではない場合、DMAch1
は、受信用キャッシュ224のデータをSRAM22へ
書き込み、更に受信用キャッシュ224への書き込みを
行う。SRAM22がアクセスされておらず、受信用キ
ャッシュ224が空である場合、DMAch1は仮想F
IFOへ直接書き込みを行う。
3、DMAC11、DMAC12のいずれからもアクセ
スされていないとき、次の操作のいずれかを実行する。 (1)仮想FIFOがフルでも空でもなく、かつ、受信
用キャッシュ224が空でなければ、受信用キャッシュ
224のデータを仮想FIFOへ書き込む。 (2)仮想FIFOが空ではなく送信用キャッシュ22
7が空である場合、仮想FIFOからデータを読み出
し、送信用キャッシュ227へ書き込む。
IFOからの読み出し 送信用キャッシュ227が空ではない場合、DMAch
2が送信用キャッシュ227からデータを読み出し、D
RAM21へ転送する。送信用キャッシュ227が空で
ある場合、仮想FIFOが空でなく、仮想FIFOに対
する他からのアクセスがないサイクルにおいて、DMA
ch2は仮想FIFOからデータを読み出し、DRAM
21へ転送する。
がアクセスされている場合、DMAch2は仮想FIF
Oに対する他からのアクセスが終わるまで待つ。仮想F
IFOが空で、かつ受信用キャッシュ224が空ではな
い場合、DMAch2は受信用キャッシュ224からデ
ータを読み出し、DRAM21へ転送する。仮想FIF
Oが空で、かつ受信用キャッシュ224が空である場
合、DMAch2は受信用キャッシュ224に有効デー
タが入るまで待たされる。[終わり]。
信用キャッシュ227を備えた場合の、送信時における
仮想FIFO及びDMAの動作を示す説明図である。送
信の場合における図24のデータ伝送装置の一連の動作
を以下に説明する。送信の場合、送信用キャッシュ22
7が格納するデータは、仮想FIFOにFIFOボトム
のワードとして格納されていたデータである。送信の場
合、送信用キャッシュ227にはできる限り有効なデー
タが格納されているようにする。送信用キャッシュ22
7に有効なデータが入っていない場合は、DMAが仮想
FIFOからデータを直接読み出すことができる。仮想
FIFOが空でなく、かつ送信用キャッシュ227が空
になった場合は、SRAM22のデータ出力ポートが使
われないときを狙って、FIFOボトムのワードを送信
用キャッシュ227に書き込むようにする。
IFOへの書き込み DMAch2は、DRAM21から読み出したデータを
仮想FIFOへ書き込む。
ャッシュ227への読み出し 仮想FIFOが空ではなく、送信用キャッシュ227が
空であれば、SRAM22のデータ出力ポートが使われ
ないサイクルにおいて、転送管理ユニット14が仮想F
IFOからデータを読み出し、送信用キャッシュ227
に書き込む。
IFOからの読み出し 送信用キャッシュ227が空でなければ、DMAch1
が送信用キャッシュ227からデータを読み出す。送信
用キャッシュ227が空であれば、SRAM22のデー
タ出力ポートが使われないサイクルにおいて、DMAc
h1が仮想FIFOからデータを読み出し、外部バスイ
ンターフェイス16に転送する。
16は、仮想FIFOから送られて来たデータを外部バ
スEBに送信する。[終わり]。
用のキャッシュをともに備えるので、DMAによるSR
AM22へのトラフィックを削減することができる。
て、図20のような複数ワードを格納することができる
キャッシュを用いてもよい。
ては、2ポートSRAMを採用することにより、SRA
Mに対するCPUによるアクセスとDMAによるアクセ
スとを分離し、アクセスが重なった場合の性能損失を減
少させたデータ伝送装置について説明する。
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を備えている。
ッシュブロック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規格によるバスであ
るとする。
ャネルとの関係を示す説明図である。図28のように、
図27のデータ伝送装置は、4つのDMAチャネルを用
いて、外部バスEB1(外部ポート1)及び外部バスE
B2(外部ポート2)との間でデータ転送を行う。DM
AC311,312,393,394は、それぞれDM
Ach1、DMAch2、DMAch3、DMAch4
によるデータ転送を制御する。
MAch1及びDMAch2は、SRAM322の第1
のポートを用いることができる。外部ポート2との間で
データ転送を行うDMAch3及びDMAch4は、S
RAM322の第2のポートを用いることができる。C
PU313は、SRAM322の第1及び第2のポート
を用いることができる。また、DMAch1及びDMA
ch2は、キャッシュブロック323を用い、DMAc
h3及びDMAch4は、キャッシュブロック326を
用いる。
ト2を経由する通信とは独立に発生するので、双方向キ
ャッシュがなければ、DMAch1又はDMAch2に
よるSRAM322へのアクセスと、DMAch3又は
DMAch4によるSRAM322へのアクセスとが同
時に生じる頻度が高い。図27のデータ伝送装置は、各
外部ポートとDRAM321との間の転送パスに双方向
キャッシュを備えているので、SRAM322に対する
アクセス時の干渉をほとんど回避することができる。
る仮想FIFOの構成を示す概念図である。SRAM3
22は、CPU使用領域CRと、第1のFIFO領域F
R1と、第2のFIFO領域FR2とを有している。
0が出力する、DMAch1又はDMAch2で用いる
アドレス信号FAD1と、CPU313のアドレス信号
CADとのうちのいずれか一方を選択し、アドレス信号
SAD1としてSRAM322の第1のポートに出力す
る。DMAch1及びDMAch2は、第1のFIFO
領域FR1を用いることができる。
0が出力する、DMAch3又はDMAch4で用いる
アドレス信号FAD2と、CPU313のアドレス信号
CADとのうちのいずれか一方を選択し、アドレス信号
SAD2としてSRAM322の第2のポートに出力す
る。DMAch3及びDMAch4は、第2のFIFO
領域FR2を用いることができる。転送管理ユニット3
14は、セレクタ357,367を制御している。
用いるのでシステムコストは少し高くなるが、CPU3
13はSRAM322へ常に1サイクルでアクセスでき
るので、CPU313の処理性能が向上し、実時間性を
確保するプログラムの開発が容易になる。
の外部ポートを有するデータ伝送装置の構成の例を示す
ブロック図である。図30のデータ伝送装置は、図1の
データ伝送装置において、SRAM22に代えて2ポー
トSRAM422を備え、かつ、キャッシュブロック2
3を省いたものである。
ポートを用いることができる。DMAch1及びDMA
ch2は、SRAM422の第2のポートを用いること
ができる。このように、SRAM422は2ポートを備
えているので、CPU413とDMAとの間のSRAM
422に対するアクセス競合を解消することができる。
DMAch1とDMAch2のアクセスが重なる場合
は、DMAch2の方が待たされるものとする。
キャッシュを使わない場合であっても、SRAM422
に対するDMAch1とDMAch2とのアクセスが競
合することによる性能劣化は、1ポートのSRAM及び
双方向キャッシュを用いた場合と同等であり、許容でき
る程度である。特に、外部バスEB上のデータ転送レー
トがデータ伝送装置の内部のデータ転送レートに対して
比較的低い場合は、双方向キャッシュを使う必要はな
い。もっとも、双方向キャッシュを用いると、図1のデ
ータ伝送装置と同様に、DMAch1とDMAch2と
の間のアクセス競合による性能劣化を無視できる程度に
小さくすることができる。
であっても、2つの外部バスを接続できるデータ伝送装
置を実現することができる。この場合、CPUからSR
AMへのアクセスにおいて、平均的なサイクル数は1サ
イクルに近いが、最悪の場合は4ウェイトが挿入され
る。また外部2ポートに限らず、外部3ポート以上のデ
ータ伝送装置も同様にして実現することができる。
ては、図1のSRAM22に代えて、高速に動作するS
RAM522を有するSRAM部570を用いる場合に
ついて説明する。
データ伝送装置のSRAM部570のブロック図であ
る。図31のSRAM部570は、SRAM522と、
レジスタ571,572,573,574,576,5
77,578,579と、データパス選択器582と、
アドレス選択器584とを備えている。
送装置の基本クロックCLKx1の4倍であるクロック
CLKx4が入力されており、SRAM522は、図1
のSRAM22の4倍の速度で動作する。ここで、基本
クロックCLKx1は、システム制御手段、外部バスイ
ンターフェイス、及びDRAM等の動作の基準となるク
ロックである。
の関係を示すタイミング図である。図32に示されてい
るように、基本クロックCLKx1の1周期中に4個の
スロットφ1,φ2,φ3,φ4を設けるため、SRA
M部570では、各スロットにそれぞれ対応するパルス
を有する4相のクロックCLKx4_1,CLKx4_
2,CLKx4_3,CLKx4_4が用いられる。こ
れらの4相のクロックは、クロックCLKx4に基づい
て生成され、周期が基本クロックCLKx1に等しい。
クCLKx4_1,CLKx4_2,CLKx4_3,
CLKx4_4のそれぞれに同期して、4系統のデータ
入力SDIφ1,SDIφ2,SDIφ3,SDIφ4
のうちの対応するものを選択し、SRAM522に出力
する。
CLKx4_1,CLKx4_2,CLKx4_3,C
LKx4_4のそれぞれに同期して、4系統のアドレス
入力SADφ1,SADφ2,SADφ3,SADφ4
のうちの対応するものを選択し、SRAM522に出力
する。ここで、アドレス入力SADφ1〜SADφ4に
は、SRAM522の制御信号が含まれている。
は、アドレス選択器584が選択したアドレスに従っ
て、SRAM522に書き込まれる。
22の出力の他に、クロックCLKx4_1,CLKx
4_2,CLKx4_3,CLKx4_4がそれぞれ入
力されている。レジスタ571〜574は、それぞれ入
力されたクロックに同期して、SRAM522がクロッ
クCLKx4に同期して出力するデータを格納する。レ
ジスタ576〜579には、基本クロックCLKx1の
他に、レジスタ571〜574の出力がそれぞれ入力さ
れている。レジスタ576〜579は、基本クロックC
LKx1に同期して、それぞれのデータを出力する。
ローを示すタイミング図である。基本サイクル(基本ク
ロックCLKx1の1周期)内のスロットφ1,φ2,
φ3,φ4において各レジスタ571〜574にデータ
が格納され、これらのデータは、その次の基本サイクル
の先頭で基本クロックCLKx1に同期してレジスタ5
76〜579にそれぞれ格納され、出力される。
クの例えば4倍の速度で動作すれば、基本クロックCL
Kx1に従って動作する最大で4つのアクセス主体が、
基本サイクル毎にSRAM522にアクセスできるよう
になる。この場合、SRAM522の性能は、基本クロ
ックCLKx1に従って動作する4ポートのSRAMの
性能と同等である。ただし、図33に示されているよう
に、データを基本クロックCLKx1に同期させて出力
する必要があるため、読み出しのレイテンシは1サイク
ル増える。
データ伝送装置の構成の例を示すブロック図である。図
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に対応してい
る。
AM部570に対するアクセス主体はDMAC511及
び512のいずれか一方と、CPU513とである。C
PU513は、スロットφ1において、DMAC511
又は512は、スロットφ2においてSRAM522に
アクセスしている。
1〜φ4のうちのいずれの2つであってもよい。また、
アクセス主体が2つであるので、SRAM部570に代
えて、SRAMに基本クロックCLKx1の2倍の周波
数を有するクロックを与え、SRAMを図1のSRAM
22の2倍の速度で動作させるようにしたSRAM部を
用いてもよい。この場合、SRAM部は、周期が基本ク
ロックCLKx1に等しい2相のクロックCLKx2_
1,CLKx2_2を用い、これらのクロックに対応し
たレジスタ等を備えればよい。
読み出しのレイテンシが1サイクルになるので、例えば
CPU513がSRAM522へ書き込む場合は0ウェ
イトに、CPU513がSRAM522から読み出す場
合は1ウェイトになるように、転送管理ユニット514
がSRAM522へのアクセスのタイミングを制御す
る。図34のデータ伝送装置は、図30のデータ伝送装
置とほぼ同等の動作をするものであり、SRAM部57
0は、複数のポートを有するSRAMに相当する機能を
有するということができる。
ては、オン・ザ・フライ(on the fly)で転送中のパケ
ットを解析する受信用フィルタを備えたデータ伝送装置
について説明する。
データ伝送装置の構成の例を示すブロック図である。図
35のデータ伝送装置は、図1のデータ伝送装置におい
て、受信用フィルタ619と、割込みコントローラ62
0とを更に備えたものである。
613、転送管理ユニット614、外部バスインターフ
ェイス616、及びDRAMコントローラ618は、そ
れぞれ、図1のDMAC11,12、CPU13、転送
管理ユニット14、外部バスインターフェイス16、及
びDRAMコントローラ18に対応している。また、キ
ャッシュブロック623、及びFIFO周辺回路630
は、それぞれ図1のキャッシュブロック23、及びFI
FO周辺回路30に対応している。
ットと呼ばれる単位毎に外部バスEBとの間でデータを
送受信する。パケットは、データ部と、そのパケットの
属性が記述されたヘッダとを有する。データ部は、転送
されるべきデータであるペイロードと、ペイロードに生
じた伝送誤りを検出又は訂正するためのパリティとを有
する。
ーフェイス616が外部バスから受信したデータを受け
取り、パケットのヘッダとデータ部とを分離する。受信
用フィルタ619は、CPU613による処理が必要な
ヘッダをSRAM622のページテーブルに格納させ、
CPU613による処理が不要であるデータ部をFIF
O領域を経由させてDRAM621に格納させる。
ジテーブルに関する概念図である。図35及び図36を
参照して、受信の場合における図36のデータ伝送装置
の動作について説明する。
回路616は、外部バスEBからパケットを受信し、受
信用フィルタ619経由でSRAM622に向けて転送
する。
ステップ1で転送中のパケットを調べ、ヘッダ開始、ペ
イロード開始、パケット受信終了等の時刻を検知する。
知した結果に従って、転送管理ユニット614は、ヘッ
ダをSRAM622のCPU使用領域に格納させ、ペイ
ロードについては転送経路を変更して、これをDRAM
621に格納させる。ヘッダをFIFO領域に格納しな
いので、ヘッダをSRAM622に書き込む際には、双
方向キャッシュ624を働かせることはできない。ペイ
ロードの転送は、DMAC611がDMAch1によっ
て行い、仮想FIFOや双方向キャッシュ624を働か
せる。
すると、DMAC611は転送終了割り込みを発生させ
る。割り込みコントローラ620は、この割り込みをC
PU613に対して通知する。
において、CPU613は、ヘッダを解析してペイロー
ドのサイズやパケットの種類等の情報を得る。また、ヘ
ッダとペイロードとを関連付けるために、CPU613
は、SRAM622のページテーブル内に格納されたヘ
ッダに、同一のパケットに含まれていたペイロードへの
ポインタを追加する。例えば、ヘッダaとペイロードa
とが同一のパケットに含まれていたとすると、DRAM
621に格納されたペイロードaのアドレスを示すポイ
ンタをヘッダaに追加する。ペイロードの大きさの情報
は、あらかじめヘッダ部に含まれているので付加しなく
てよい。このように、DRAM621内の複数のペイロ
ードは、SRAM622のページテーブルにより管理さ
れる。
等をするために、DMAC612等の他の転送制御装置
からDRAM621内のペイロードに対する受け取り要
求を受け取ると、CPU613は、ペイロードの位置と
大きさをその転送制御装置に伝える。その転送制御装置
は、ペイロードの転送を開始する。
ードの読み出しが終了すると、割り込みコントローラ6
20は、CPU613に割り込みを通知する。割り込み
処理ルーチンの中において、CPU613は、読み出さ
れたペイロードを含むパケットに対するSRAM622
のページテーブル内のエントリを抹消する。[終わ
り]。
PU使用領域に直接書き込むので、パケットを全てDR
AM621に転送した後、CPU613がヘッダを解析
するために、ヘッダをSRAM622へ転送する場合と
比べると、DRAM621からSRAM622へヘッダ
を転送する処理が不要になる。また、ヘッダは、SRA
M622のページテーブルに直接書き込まれ、FIFO
領域を経由することがないので、SRAM622のトラ
フィックを低減することができる。
で動作するが、ヘッダとペイロードとは別個に生成され
るので、送信用フィルタは必要ない。
IEEE1394規格によるバスであるとして説明した
が、USB、ATAPI、SCSI、Bluetooth等の他
の標準バスであってもよい。
等が使用するメモリと、転送されるデータを一時的に格
納するFIFOバッファとを一体化し、データ伝送装置
の回路規模を削減することができる。したがって、シス
テムLSIに、外部バスとの間のインターフェイスをす
るデータ伝送装置を内蔵した場合に、コスト削減及び低
消費電力化を図ることができる。
の構成の例を示すブロック図である。
す説明図である。
示す説明図である。
示す説明図である。
図である。
図である。
を示す説明図である。
を示す説明図である。
クセス主体がSRAMに常にアクセスしている場合の仮
想FIFO及びDMAの動作を示す説明図である。
FIFO及びDMAの動作を示す説明図である。
FIFO及びDMAの動作を示す説明図である。
O及びDMAの動作を示す説明図である。
及びDMAの動作を示す説明図である。
仮想FIFOにデータを転送する場合の仮想FIFO及
びDMAの動作を示す説明図である。
仮想FIFOにデータを転送しない場合の仮想FIFO
及びDMAの動作を示す説明図である。
へ直接書き込みを行う場合の仮想FIFO及びDMAの
動作を示す説明図である。
想FIFO及びDMAの動作を示す説明図である。
FOが双方向キャッシュにデータを転送する場合の仮想
FIFO及びDMAの動作を示す説明図である。
キャッシュのブロック図である。
を備えた場合の、受信時における仮想FIFO及びDM
Aの動作を示す説明図である。
を備えた場合の、送信時における仮想FIFO及びDM
Aの動作を示す説明図である。
伝送装置のブロック図である。
置の構成の例を示すブロック図である。
えた場合の、受信時における仮想FIFO及びDMAの
動作を示す説明図である。
えた場合の、送信時における仮想FIFO及びDMAの
動作を示す説明図である。
ートを有するデータ伝送装置の構成の例を示すブロック
図である。
係を示す説明図である。
Oの構成を示す概念図である。
を有するデータ伝送装置の構成の例を示すブロック図で
ある。
置のSRAM部のブロック図である。
ング図である。
イミング図である。
置の構成の例を示すブロック図である。
置の構成の例を示すブロック図である。
概念図である。
ック図である。
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】 外部バスから受信したデータの出力、又
は入力されたデータの前記外部バスへの送信を行うデー
タ伝送装置であって、 プログラムに従って動作するシステム制御手段と、 前記外部バスとの間でデータの送信又は受信をする外部
バスインターフェイスと、 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】 請求項1に記載のデータ伝送装置におい
て、 前記外部バスとは異なる外部バスとの間でデータの送信
又は受信をする外部バスインターフェイスを更に備え、 前記SRAMは、 前記各外部バスインターフェイスに対応し、対応する外
部バスインターフェイスと前記DRAMとの間で転送さ
れるデータを入出力するためのポートを備えるものであ
り、 前記システム制御手段は、 前記ポートのいずれかを用いて前記SRAMにデータを
読み書きすることができるように構成されていることを
特徴とするデータ伝送装置。 - 【請求項3】 請求項1に記載のデータ伝送装置におい
て、 前記SRAMは、 前記システム制御手段との間でデータを入出力するため
のポートと、前記外部バスインターフェイスと前記DR
AMとの間で転送されるデータを入出力するためのポー
トとを備えることを特徴とするデータ伝送装置。 - 【請求項4】 請求項1に記載のデータ伝送装置におい
て、 周波数が、当該データ伝送装置の基本クロックのN(N
は2以上の整数)倍であるクロックに基づいて動作する
SRAMを有し、前記基本クロックに同期してデータを
出力するSRAM部を、前記SRAMに代えて備えるこ
とを特徴とするデータ伝送装置。 - 【請求項5】 請求項1に記載のデータ伝送装置におい
て、 前記FIFO周辺回路は、 前記FIFO領域の上限アドレス及び下限アドレス、並
びに次に読み出されるデータのアドレスを示す読み出し
ポインタ及び次にデータが書き込まれるアドレスを示す
書き込みポインタを格納するレジスタと、 前記FIFO領域から読み出しが行われた場合に、前記
読み出しポインタを更新する手段と、 前記FIFO領域に書き込みが行われた場合に、前記書
き込みポインタを更新する手段と、 前記FIFO領域が有効なデータを格納していない空の
状態であることを判定する手段と、 前記FIFO領域が新たなデータを格納することができ
ないフル状態であることを判定する手段とを備えること
を特徴とするデータ伝送装置。 - 【請求項6】 請求項5に記載のデータ伝送装置におい
て、 前記FIFO周辺回路は、 前記FIFO領域がフル状態であることを示すフラグを
格納するレジスタを更に備えることを特徴とするデータ
伝送装置。 - 【請求項7】 請求項1に記載のデータ伝送装置におい
て、 前記外部バスインターフェイスが前記外部バスから受信
したデータを格納して、前記SRAM又は前記DRAM
に転送するキャッシュを更に備えることを特徴とするデ
ータ伝送装置。 - 【請求項8】 請求項7に記載のデータ伝送装置におい
て、 データ受信時であって、前記FIFO領域が空のとき、
前記キャッシュが格納したデータを、前記SRAMを経
由することなく前記DRAMに転送するように構成され
たことを特徴とするデータ伝送装置。 - 【請求項9】 請求項7に記載のデータ伝送装置におい
て、 前記外部バスに送信すべきデータを格納して、前記外部
バスインターフェイスに転送する送信用キャッシュを更
に備えることを特徴とするデータ伝送装置。 - 【請求項10】 請求項7に記載のデータ伝送装置にお
いて、 前記キャッシュは、 データ送信時には、前記外部バスから受信したデータに
代えて、前記外部バスに送信すべきデータを格納して、
前記外部バスインターフェイスに転送する双方向キャッ
シュであることを特徴とするデータ伝送装置。 - 【請求項11】 請求項7に記載のデータ伝送装置にお
いて、 前記キャッシュは、 複数のワードを格納し、格納したデータを格納した順に
出力するように構成されていることを特徴とするデータ
伝送装置。 - 【請求項12】 請求項1に記載のデータ伝送装置にお
いて、 前記DRAMが出力したデータを、前記SRAMを経由
することなく前記外部バスインターフェイスに転送する
経路を有することを特徴とするデータ伝送装置。 - 【請求項13】 請求項1に記載のデータ伝送装置にお
いて、 前記外部インターフェイスが受信したデータがパケット
のヘッダとデータ部とのいずれであるかを判定する受信
用フィルタと、 前記受信用フィルタが、受信しているデータがヘッダで
あると判定した場合には、当該ヘッダを前記SRAMの
前記システム制御手段が読み書きを行う領域へ格納させ
るように転送パスを制御し、 前記受信用フィルタが、受信しているデータがデータ部
であると判定した場合には、当該データ部を前記SRA
MのFIFO領域に格納させてから前記DRAMへ格納
させるように転送パスを制御し、かつ、1つのパケット
の転送が終了したか否かを判定する転送管理手段と、 前記転送管理手段が、1つのパケットの転送が終了した
と判定したことを、前記システム制御手段に割り込みを
行って通知する割り込み制御手段とを備えることを特徴
とするデータ伝送装置。
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)
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 |
-
2001
- 2001-09-10 JP JP2001274001A patent/JP3599692B2/ja not_active Expired - Fee Related
Cited By (6)
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 |