JP3599692B2 - Data transmission device - Google Patents

Data transmission device Download PDF

Info

Publication number
JP3599692B2
JP3599692B2 JP2001274001A JP2001274001A JP3599692B2 JP 3599692 B2 JP3599692 B2 JP 3599692B2 JP 2001274001 A JP2001274001 A JP 2001274001A JP 2001274001 A JP2001274001 A JP 2001274001A JP 3599692 B2 JP3599692 B2 JP 3599692B2
Authority
JP
Japan
Prior art keywords
data
fifo
data transmission
sram
external bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001274001A
Other languages
Japanese (ja)
Other versions
JP2003087338A (en
Inventor
由弘 田平
英世 鶴田
Original Assignee
松下電器産業株式会社
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 松下電器産業株式会社 filed Critical 松下電器産業株式会社
Priority to JP2001274001A priority Critical patent/JP3599692B2/en
Publication of JP2003087338A publication Critical patent/JP2003087338A/en
Application granted granted Critical
Publication of JP3599692B2 publication Critical patent/JP3599692B2/en
Application status is Expired - Fee Related legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/14Interconnection, or transfer of information or other signals between, memories, peripherals or central processing units
    • 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 THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/10Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply
    • Y02D10/15Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon peripherals
    • Y02D10/151Reducing energy consumption at the single machine level, e.g. processors, personal computers, peripherals or power supply acting upon peripherals the peripheral being a bus

Description

【0001】 [0001]
【発明の属する技術分野】 BACKGROUND OF THE INVENTION
本発明は、コンピュータ等と光ディスク装置等との間でバスを介してデータを伝送する際の制御を行うデータ伝送装置に関する。 The present invention relates to a data transmission device for controlling the time of transmission of data over a bus between the computer and the like and the optical disk device or the like.
【0002】 [0002]
【従来の技術】 BACKGROUND OF THE INVENTION
IEEE1394やUSB(universal serial bus)、ATAPI(AT attachment packet interface)、SCSI(small computer system interface)、Bluetooth等の標準バスの規格化がエレクトロニクス業界において続々と進行しつつある。 IEEE1394 and USB (universal serial bus), ATAPI (AT attachment packet interface), SCSI (small computer system interface), standardization of standard bus such as Bluetooth is becoming one after another to progress in the electronics industry. これらの標準バスとの間のインターフェイスがPC、ストレージデバイス、ディジタルAV機器、携帯電話等の情報機器に普及することにより、多様な機器間の通信やデータ交換が促進され、容易になる。 These interfaces PC between the standard bus, a storage device, a digital AV device, by dissemination of information devices such as mobile phones, communication and data exchange between various devices is accelerated, it is facilitated. 情報機器の機能の大部分はシステムLSIによって実現されており、システムLSIに標準バスとの間のインターフェイスを内蔵し、かつ、低コスト化、低電力化することが要望されている。 Most of the functions of the information equipment is realized by a system LSI, a built-in interface between the standard bus system LSI, and cost reduction, it is desired that the power reduction.
【0003】 [0003]
図37は、従来のデータ伝送装置の構成の例を示すブロック図である。 Figure 37 is a block diagram showing an example of a configuration of a conventional data transmission device. このデータ伝送装置は、標準バスインターフェイスを内蔵し、システムLSIとして実現されている。 The data transmission apparatus incorporates a standard bus interface, is implemented as a system LSI. 図37において、送受信FIFO(first in, first out)バッファ(以下では、単にFIFOと称する)927は、データを格納する1ポートのSRAMと、FIFO内でデータが格納された領域のトップのアドレスを指し示すポインタ、及びボトムのアドレスを指し示すポインタを格納するレジスタとを備えている。 In Figure 37, transmission and reception FIFO (first in, first out) buffer (hereinafter, simply referred to as FIFO) 927 includes a 1-port SRAM for storing data, the address of the top of the area where the data in the FIFO is stored and a register for storing pointer, and a pointer to the bottom of the address indicated. FIFOバッファの容量が小さい場合、フリップフロップで構成されたシフトレジスタとポインタを格納するレジスタとで実現することも可能である。 If the capacity of the FIFO buffer is small, it is also possible to realize in a register for storing a shift register and a pointer which is constituted by a flip-flop. FIFO927は、受信時及び送信時において、外部バスインターフェイス916とDRAM921との間の転送速度差を吸収する緩衝メモリとして動作する。 FIFO927, at the time when receiving and transmitting, operates as a buffer memory for absorbing the transfer speed difference between the external bus interface 916 and DRAM921.
【0004】 [0004]
DMAコントローラ(DMAC)911,912は、それぞれDMAチャネル1(DMAch1)及びDMAチャネル2(DMAch2)によるデータ転送を制御する。 DMA controller (DMAC) 911 and 912 controls the data transfer by each DMA channel 1 (DMAch1) and DMA channel 2 (DMAch2). DMAch1により、外部バスインターフェイス916とFIFO927との間でデータが転送される。 The DMAch1, data between the external bus interface 916 and FIFO927 is transferred. DMAch2により、FIFO927とDRAM921との間でデータが転送される。 The DMAch2, data is transferred between the FIFO927 and DRAM921.
【0005】 [0005]
外部バスEBからデータを受信する場合、受信されたデータは、DMAch1によってFIFO927に転送され、更にDMAch2によってDRAM921に転送される。 When receiving data from the external bus EB, the received data is transferred to FIFO927 by DMAch1, it is transferred further by DMAch2 to DRAM921. DRAM921にバッファリングされたデータは、後にホストPCやストレージ等の他の機器に転送される。 Buffered data in DRAM921 is transferred to another device such as a host PC and storage after. 外部バスEBへデータを送信する場合、送信すべきデータは、まずDRAM921に格納される。 When sending data to the external bus EB, the data to be transmitted is first stored in the DRAM921. その後、DRAM921から読み出されたデータは、DMAch2によってFIFO927に転送され、更にDMAch1によって外部バスインターフェイス916に転送され、外部バスEBへ送信される。 Thereafter, the data read from DRAM921, is transferred to FIFO927 by DMAch2, is transferred to the external bus interface 916 by further DMAch1, it is transmitted to the external bus EB.
【0006】 [0006]
図37のデータ伝送装置の動作を説明する。 The operation of the data transmission apparatus of FIG. 37 will be described. 図37のデータ伝送装置は、次のようなステップによって外部バスEBからデータを受信する。 Data transmission device in FIG. 37 receives data from the external bus EB by following steps.
【0007】 [0007]
[ステップ1] [Step 1]
外部バスインターフェイス916が、外部バスEBから送られて来たデータを受け取る。 External bus interface 916, receives the data sent from the external bus EB.
【0008】 [0008]
[ステップ2]DMAch1によるFIFO927への書き込みFIFO927がフルでなければ、DMAch1により、外部バスインターフェイス916のワード単位のデータがFIFO927に転送される。 In Step 2] Write FIFO927 to FIFO927 by DMAch1 is not full, the DMAch1, data word unit of the external bus interface 916 are transferred to FIFO927. FIFO927がフルであれば、DMAch1はFIFO927に空きができるまで転送を待つ。 If the FIFO927 is full, DMAch1 waits for the transfer until there is room in the FIFO927.
【0009】 [0009]
[ステップ3]DMAch2によるFIFO927からの読み出しFIFO927が空でなければ、DMAch2によってFIFO927からデータが読み出され、DRAM921に書きこまれる。 If read FIFO927 empty from FIFO927 by [Step 3] DMAch2, data from FIFO927 is read by DMAch2, it is written to DRAM921. FIFO927が空であれば、DMAch2はFIFO927にデータが入るまで待つ。 If FIFO927 is empty, DMAch2 wait until it enters the data into FIFO927. [終わり]。 [the end].
【0010】 [0010]
また、図37のデータ伝送装置は、次のようなステップによって外部バスEBにデータを送信する。 The data transmission apparatus of FIG. 37 transmits data to the external bus EB by following steps.
【0011】 [0011]
[ステップ1]DMAch2によるFIFO927への書き込みFIFO927がフルでなければ、DMAch2により、DRAM921から読み出されたワード単位のデータがFIFO927に書き込まれる。 In Step 1] Write FIFO927 to FIFO927 by DMAch2 is not full, the DMAch2, data word unit read from DRAM921 is written to FIFO927. FIFO927がフルであれば、DMAch2はFIFO927に空きができるまで書き込みを待つ。 If the FIFO927 is full, DMAch2 waits for writing until there is room in the FIFO927.
【0012】 [0012]
[ステップ2]DMAch1によるFIFO927からの読み出しFIFO927が空でなければ、DMAch1によってFIFO927からデータが読み出され、外部バスインターフェイス916に転送される。 If read FIFO927 empty from FIFO927 by [Step 2] DMAch1, data from FIFO927 is read by DMAch1, it is transferred to the external bus interface 916. FIFO927が空であれば、DMAch1はFIFO927にデータが入るまで待つ。 If FIFO927 is empty, DMAch1 wait until it enters the data into FIFO927.
【0013】 [0013]
[ステップ3] [Step 3]
外部バスインターフェイス916は、FIFO927から受け取ったデータを外部バスEBに送信し、そのデータは転送先に転送される。 External bus interface 916 transmits the data received from FIFO927 to the external bus EB, the data is transferred to the transfer destination. [終わり]。 [the end].
【0014】 [0014]
このような従来のデータ伝送装置においては、DRAM921、CPU913用のデータRAMとしてのSRAM922の他に、FIFO927が必要であった。 In such a conventional data transmission apparatus, DRAM921, other SRAM922 as a data RAM for CPU 913, was required FIFO927.
【0015】 [0015]
【発明が解決しようとする課題】 [Problems that the Invention is to Solve
このように、従来のデータ伝送装置は、外部バスとデータ伝送装置内部の回路との間のデータ転送速度の差を緩衝するために、独立したFIFOバッファを必要としており、回路規模の増大につながっていた。 Thus, the conventional data transmission device, in order to buffer the difference in data transfer rate between the external bus and the data transmission apparatus inside the circuit, have required a separate FIFO buffer, leading to increase in the circuit scale which was.
【0016】 [0016]
また、受信したパケットのヘッダをCPU等がファームウェアによって解析処理する場合には、受信して格納したパケットをCPU等がアクセスできるメモリにコピーする必要があり、データ転送速度の低下の原因となっていた。 Further, when the CPU or the like to the header of the received packet is analyzed processed by firmware must copy the stored received a packet in a memory CPU like can be accessed, is causing a reduction in data transfer rate It was.
【0017】 [0017]
本発明は、データ伝送装置の回路規模を削減して、コスト削減及び低消費電力化を図ることを目的とする。 The present invention is to reduce the circuit scale of the data transmission apparatus, and an object thereof is to reduce costs and power consumption.
【0018】 [0018]
また、本発明は、データ伝送装置のデータ転送速度を向上させることを目的とする。 Further, the present invention aims to improve the data transfer rate of the data transmission device.
【0019】 [0019]
【課題を解決するための手段】 In order to solve the problems]
前記課題を解決するため、請求項1の発明が講じた手段は、外部バスから受信したデータの出力、又は入力されたデータの前記外部バスへの送信を行うデータ伝送装置であって、プログラムに従って動作するシステム制御手段と、前記外部バスとの間でデータの送信又は受信をする外部バスインターフェイスと、DRAM(dynamic random access memory)と、前記システム制御手段が読み書きを行う領域と、前記外部バスインターフェイスと前記DRAMとの間で転送されるデータを格納し、格納した順に出力するFIFO(first in, first out)領域とを有するSRAM(static random access memory)と、前記SRAMが前記FIFO領域に格納したデータを格納した順に出力するように、前記SRAMに読み書きをするためのポインタを管理するFIFO周 To solve the above problems, means that the Invention is taken of claim 1 is a data transmission device for transmitting the output of the data received from the external bus, or to the external bus of the input data, the program a system control unit which operates in accordance with, an external bus interface for transmitting or receiving data to and from the external bus, the area for a DRAM (dynamic random access memory), the system control means to read and write, the external bus storing data transferred between the DRAM and the interface, storage FIFO (first in, first out) to be output in the order they are stored as SRAM and a region (static random access memory), the SRAM is in the FIFO area data to output in the order in which they were stored, FIFO circumference of managing pointers for read and write to the SRAM 回路と、前記外部バスインターフェイスと前記DRAMと前記SRAMとに接続されたSRAM側路手段とを備え、前記SRAM側路手段は、前記SRAMにアクセス可能な時には、前記FIFO領域との間でデータの送信又は受信を行い、前記SRAMにアクセス不可能な時には、前記FIFO領域を介さずに前記外部バスインターフェイス又は前記DRAMとの間でデータの送信又は受信を行うものである。 Comprising a circuit, and the external bus interface and said DRAM and said SRAM and the connected SRAM side passage means, the SRAM-side passage means, when accessible to the SRAM, the data to and from the FIFO area performs transmission or reception, when can not access the SRAM is configured to perform the transmission or reception of data to and from the external bus interface or the DRAM without going through the FIFO area.
【0020】 [0020]
請求項1の発明によると、SRAMにFIFO領域を設けるので、独立したFIFOバッファを備える必要がない。 According to the invention of claim 1, since the SRAM to provide a FIFO area, it is not necessary to provide a separate FIFO buffer. すなわち、SRAMとFIFOバッファとを一体化することができるので、回路規模を削減することができる。 That is, it is possible to integrate the SRAM and FIFO buffer, it is possible to reduce the circuit scale. また、SRAMを検査すればFIFO領域の検査も行われるので、製造後の品質保証のための検査が容易になる。 Further, since the inspection of FIFO area it is also performed if inspecting SRAM, inspection is facilitated for quality assurance after production.
【0021】 [0021]
また、請求項2の発明は、請求項1に記載のデータ伝送装置において、前記外部バスとは異なる外部バスとの間でデータの送信又は受信をする外部バスインターフェイスを更に備え、前記SRAMは、前記各外部バスインターフェイスに対応し、対応する外部バスインターフェイスと前記DRAMとの間で転送されるデータを入出力するためのポートを備えるものであり、前記システム制御手段は、前記ポートのいずれかを用いて前記SRAMにデータを読み書きすることができるように構成されているものである。 Further, the invention of claim 2, in the data transmission device according to claim 1, further comprising an external bus interface for transmitting or receiving data to and from the different external bus and the external bus, the SRAM is wherein corresponding to each external bus interface, which includes a port for inputting and outputting data to be transferred between the the corresponding external bus interface DRAM, the system control means, one of said ports those that are configured to be able to read and write data to the SRAM using.
【0022】 [0022]
請求項2の発明によると、SRAMは複数のポートを有するので、システム制御手段によるSRAMに対するアクセスを高速化することができる。 According to the invention of claim 2, SRAM is because it has a plurality of ports, it is possible to speed up the access to the SRAM by the system control means. また、SRAMのポート数以上の数の外部バスを接続しても転送性能がほとんど低下しない。 Also, by connecting an external bus number than the number of ports of the SRAM does not decrease almost transfer performance. 更に、SRAMに複数のFIFO領域を設け、複数のFIFOバッファとして動作させることができる。 Further, a plurality of FIFO areas to SRAM, can be operated as a plurality of FIFO buffers.
【0023】 [0023]
また、請求項3の発明では、請求項1に記載のデータ伝送装置において、前記SRAMは、前記システム制御手段との間でデータを入出力するためのポートと、前記外部バスインターフェイスと前記DRAMとの間で転送されるデータを入出力するためのポートとを備えるものである。 Further, in the invention of claim 3, in the data transmission device according to claim 1, wherein the SRAM comprises a port for inputting and outputting data to and from the system control means, the DRAM and the external bus interface it is intended and a port for inputting and outputting data to be transferred between.
【0024】 [0024]
請求項3の発明によると、SRAMはシステム制御手段のためのポートを有するので、システム制御手段がSRAMに対して0ウェイトでアクセスできるようになる。 According to the invention of claim 3, SRAM is because it has a port for the system control means, the system control unit will be able to access 0 weight relative to SRAM.
【0025】 [0025]
また、請求項4の発明は、請求項1に記載のデータ伝送装置において、周波数が、当該データ伝送装置の基本クロックのN(Nは2以上の整数)倍であるクロックに基づいて動作するSRAMを有し、前記基本クロックに同期してデータを出力するSRAM部を、前記SRAMに代えて備えるものである。 Further, the invention of claim 4, in the data transmission device according to claim 1, frequency, the basic clock of N of the data transmission device (N is an integer of 2 or more) operates based on the clock is a fold SRAM has, a SRAM unit for outputting the data in synchronization with the basic clock, those provided in place of the SRAM.
【0026】 [0026]
請求項4の発明によると、SRAMの動作周波数が高いので、複数のポートを備えるのと同様の効果が得られる。 According to the invention of claim 4, since the operating frequency of the SRAM is high, the same effect as provided with a plurality of ports is obtained. すなわち、システム制御手段によるSRAMに対するアクセスを高速化すること等が可能となる。 That is, it is possible such as the speed of access to SRAM by the system control unit.
【0027】 [0027]
また、請求項5の発明では、請求項1に記載のデータ伝送装置において、前記FIFO周辺回路は、前記FIFO領域の上限アドレス及び下限アドレス、並びに次に読み出されるデータのアドレスを示す読み出しポインタ及び次にデータが書き込まれるアドレスを示す書き込みポインタを格納するレジスタと、前記FIFO領域から読み出しが行われた場合に、前記読み出しポインタを更新する手段と、前記FIFO領域に書き込みが行われた場合に、前記書き込みポインタを更新する手段と、前記FIFO領域が有効なデータを格納していない空の状態であることを判定する手段と、前記FIFO領域が新たなデータを格納することができないフル状態であることを判定する手段とを備えるものである。 Further, in the invention of claim 5, in the data transmission device according to claim 1, wherein the FIFO peripheral circuit, the upper address and lower address of the FIFO area, and the read pointer and the next indicates the address of the data to be read next in a register for storing a write pointer indicating the address where the data is written, when the reading from the FIFO area is performed, and means for updating the read pointer, when a write to the FIFO area has been performed, the means for updating the write pointer, and means for determining that the FIFO area is empty that stores no valid data, the FIFO area to be in a full state can not be stored new data those comprising means for determining.
【0028】 [0028]
請求項5の発明によると、FIFO領域をプログラマブルにすることができるので、データ転送速度に応じてFIFOバッファの容量を変えることができる。 According to the invention of claim 5, it is possible to the FIFO areas to the programmable, it is possible to change the capacity of the FIFO buffer according to the data transfer rate.
【0029】 [0029]
また、請求項6の発明では、請求項5に記載のデータ伝送装置において、前記FIFO周辺回路は、前記FIFO領域がフル状態であることを示すフラグを格納するレジスタを更に備えるものである。 Further, in the invention of claim 6, in the data transmission device according to claim 5, wherein the FIFO peripheral circuit, the FIFO area in which further comprising a register for storing a flag indicating a full state.
【0031】 [0031]
また、請求項の発明は、請求項に記載のデータ伝送装置において、データ受信時であって、前記FIFO領域が空のときにのみ 、前記SRAM側路手段が格納したデータを、前記FIFO領域を経由することなく前記DRAMに転送するように構成されたものである。 The invention of claim 7 is the data transmission device according to claim 1, a time of data reception, the FIFO area only when empty, the data to which the SRAM side passage means is stored, the FIFO it is one that is configured to transfer to the DRAM without going through the area.
【0032】 [0032]
また、請求項の発明は、請求項に記載のデータ伝送装置において、 前記SRAM側路手段は、前記DRAMに送信すべきデータを保持して、前記DRAMに転送する受信用SRAM側路手段と、前記外部バスに送信すべきデータを格納して、前記外部バスインターフェイスに転送する送信用SRAM側路手段とを有するものである。 Further, in the invention of claim 8, in the data transmission device according to claim 1, wherein the SRAM side passage means it holds the data to be transmitted to the DRAM, receiving SRAM side passage to be transferred to the DRAM and means to store data to be transmitted to the external bus, and has a transmitting SRAM side path means for transferring to the external bus interface.
【0033】 [0033]
請求項の発明によると、受信用及び送信用のSRAM側路手段を備えるので、DMAによるSRAMへのトラフィックを削減することができる。 According to the invention of claim 8, since a receiving and for SRAM side path means for transmitting, it is possible to reduce the traffic to the SRAM according to the DMA.
【0034】 [0034]
また、請求項の発明では、請求項に記載のデータ伝送装置において、前記SRAM側路手段は、データ送信時には、前記外部バスから受信したデータに代えて、前記外部バスに送信すべきデータを格納して、前記外部バスインターフェイスに転送する双方向SRAM側路手段であることを特徴とする。 Further, in the invention of claim 9, in the data transmission device according to claim 1, wherein the SRAM side passage means, when the data transmission, instead of the data received from the external bus, the data to be transmitted to said external bus store, and said a bidirectional SRAM side path means for transferring to the external bus interface.
【0035】 [0035]
また、請求項1 の発明では、請求項に記載のデータ伝送装置において、前記SRAM側路手段は、複数のワードを格納し、格納したデータを格納した順に出力するように構成されているものである。 Further, in the invention of claim 1 0, in the data transmission device according to claim 1, wherein the SRAM side passage means is configured to store a plurality of word, and outputs the order storing the stored data it is intended.
【0036】 [0036]
請求項1 の発明によると、複数のワードを格納することができるので、DMAによるSRAMへのトラフィックを大きく削減することができる。 According to the invention of claim 1 0, it is possible to store a plurality of words, it is possible to significantly reduce the traffic to the SRAM according to the DMA.
【0037】 [0037]
また、請求項1 の発明は、請求項1に記載のデータ伝送装置において、前記DRAMが出力したデータを、 前記FIFO領域及び前記SRAM側路手段を経由することなく前記外部バスインターフェイスに転送する経路を更に有するものである。 The invention of claim 1 1, in the data transmission apparatus according to claim 1, transfers the data to which the DRAM is outputted to the external bus interface without passing through the FIFO region and the SRAM side passage means pathway and further comprising a.
【0038】 [0038]
請求項1 の発明によると、送信の場合に、SRAMのポートのトラフィックを減少させることができるので、システム制御手段がSRAMへのアクセスを待つ時間を減少させ、システム制御手段の処理性能を高めることができる。 According to the invention of claim 1 1, in the case of transmission, it is possible to reduce the traffic of port SRAM, the system control means to reduce the time to wait for access to the SRAM, increase the processing performance of the system control unit be able to.
【0039】 [0039]
また、請求項1 の発明は、請求項1に記載のデータ伝送装置において、前記外部インターフェイスが受信したデータがパケットのヘッダとデータ部とのいずれであるかを判定する受信用フィルタと、前記受信用フィルタが、受信しているデータがヘッダであると判定した場合には、当該ヘッダを前記SRAMの前記システム制御手段が読み書きを行う領域へ格納させるように転送パスを制御し、前記受信用フィルタが、受信しているデータがデータ部であると判定した場合には、当該データ部を前記SRAMのFIFO領域に格納させてから前記DRAMへ格納させるように転送パスを制御し、かつ、1つのパケットの転送が終了したか否かを判定する転送管理手段と、前記転送管理手段が、1つのパケットの転送が終了したと判定したこ The invention of claim 1 2, in the data transmission apparatus according to claim 1, the receiving filter determines which of a header and a data portion of the data which the external interface has received the packet, the receiving filter is, when received by that data is determined to be header controls the transfer path so as to store the header to a region in which the system control unit of the SRAM is reading and writing, for the reception filter, when received by that data is determined to be a data unit controls the transfer path so as to store into the DRAM from by storing the data unit in the FIFO area of ​​the SRAM, and 1 one of the determining transfer management unit whether transfer is completed the packet, this said transfer management unit determines that the one packet transfer is completed とを、前記システム制御手段に割り込みを行って通知する割り込み制御手段とを備えるものである。 Preparative, in which and a interrupt control unit for notifying performing interrupt to said system control means.
【0040】 [0040]
請求項1 の発明によると、ヘッダをSRAMのFIFO領域に転送する必要がなくなるので、データ伝送装置内のデータ転送量を削減し、データ伝送装置全体の性能を向上させることができる。 According to the invention of claim 1 2, the need to transfer a header to the FIFO areas of the SRAM disappears, to reduce the data transfer amount in the data transmission device, it is possible to improve the overall performance of the data transmission device.
【0041】 [0041]
【発明の実施の形態】 DETAILED DESCRIPTION OF THE INVENTION
以下、本発明の実施の形態について、図面を参照しながら説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
【0042】 [0042]
(第1の実施形態) (First Embodiment)
図1は、本発明の第1の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 Figure 1 is a block diagram showing an example of a configuration of a data transmission apparatus according to a first embodiment of the present invention. 図1のデータ伝送装置は、DMA(direct 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とを備えている。 Data transmission device in Figure 1, DMA (direct memory access) controller (hereinafter, referred to as DMAC) 11, a DMAC 12, a CPU (central processing unit) 13 as a system controller, the transfer management as transfer management unit a unit 14, an external bus interface 16, a DRAM (dynamic random access memory) controller 18, a DRAM 21, and SRAM (static random access memory) 22, a cache block 23, the FIFO peripheral circuit 30, a selector 51, and a 53, 54, 55, 56. キャッシュブロック23は、双方向キャッシュ24と、有効フラグレジスタ25とを備えている。 Cache block 23 is provided with a two-way cache 24, and a valid flag register 25.
【0043】 [0043]
外部バスEBは、電気若しくは光ケーブル、又は無線伝送路等で実現され、高速転送に適した物理信号フォーマットで情報を伝達する。 External bus EB is realized by electrical or optical cable, or wireless transmission path and the like, for transmitting information in a physical signal format suitable for high speed transfer. 外部バスEBは、例えば、IEEE1394規格によるバスであるとする。 External bus EB is, for example, a bus according to IEEE1394 standard.
【0044】 [0044]
DRAM21には、光ディスクドライブ等が接続されているものとする。 The DRAM 21, it is assumed that the optical disk drive, etc. are connected. また、外部バスEBには、ホストコンピュータ等が接続されている。 Also, the external bus EB, the host computer or the like is connected. 図1のデータ伝送装置は、外部バスEBから受信したデータの光ディスクドライブ等への出力、又は光ディスクドライブ等から入力されたデータの外部バスEBへの送信を行う。 Data transmission device in Figure 1, transmits the output to the optical disk drive of the data received from the external bus EB, etc., or the data input from the optical disk drive, etc. to the external bus EB.
【0045】 [0045]
図1のデータ伝送装置は、1ワード(WLバイト)を単位としてデータを転送するものとする。 Data transmission device in FIG. 1, it is assumed that data is transferred one word (WL bytes) as a unit. また、WLバイト=DLビットとする(DL=WL×8)。 Further, the WL bytes = DL bits (DL = WL × 8). CPU13、DRAM21、SRAM22、双方向キャッシュ24等に接続されたデータバスの幅は、WLバイトであるとして説明するが、WLバイトの整数倍であってもよい。 CPU 13, DRAM 21, SRAM 22, the width of the data bus connected to the bidirectional cache 24 or the like is described as a WL bytes may be an integer multiple of WL bytes. 各バスの幅はそれぞれ異なっていてもよい。 The width of each bus may be different from each other. 以下のブロック図においては、太線はデータバス等のデータの経路を示している。 In the following block diagram, a bold line indicates a path of data such as a data bus.
【0046】 [0046]
DMAC11,12は、DMAによるデータ転送を制御する。 DMAC11,12 controls data transfer by DMA. DMAC11,12が制御するデータ転送を、それぞれDMAch1、DMAch2による転送と称する。 The data transfer DMAC11,12 controls, referred to as transfer by each DMAch1, DMAch2. 以下では、DMAC11がDMAch1による書き込み等を行うことを、DMAch1が書き込み等を行うともいう。 Hereinafter, that DMAC11 writes due DMAch1, also referred to as DMAch1 writes like. DMAC12についても同様である。 The same is true for DMAC12.
【0047】 [0047]
DMAC11は、外部バスEBとSRAM22内のFIFO領域との間の双方向データ転送(DMAch1)を制御する。 DMAC11 controls bidirectional data transfer between the external bus EB and FIFO area in the SRAM22 (DMAch1). DMAC12は、SRAM22内のFIFO領域とDRAM21との間の双方向データ転送(DMAch2)を制御する。 DMAC12 controls a two-way data transfer (DMAch2) between the FIFO areas and DRAM21 in SRAM 22.
【0048】 [0048]
CPU13は、プログラムに従って動作し、DRAM21に接続された光ディスクドライブ等の制御を行う。 CPU13 operates according to a program, performs control such as connected optical disk drive to the DRAM 21. CPU13は、MCU(micro−controller unit)又は組み込みマイコン(micro−computer、又はmicro−controller)と呼ばれることもある。 CPU13 may also be referred to as MCU (micro-controller unit) or embedded microcomputer (micro-computer, or micro-controller). CPU13が実行する命令を有するプログラム(ファームウェア)は、主に命令ROMやフラッシュメモリ(いずれも図示せず)等から供給される。 Program having instructions CPU13 executes (firmware) is mainly supplied from the instruction ROM or flash memory (neither shown).
【0049】 [0049]
転送管理ユニット14は、例えばバスコントローラであって、データ伝送装置全体のデータ転送を管理している。 Transfer management unit 14 is, for example, a bus controller, manages the data transfer of the entire data transmission system. 転送管理ユニット14は、DMAC11,12及びセレクタ51〜57等を制御しており、また、CPU13にウェイトをかけることができる。 Transfer management unit 14 is controlling the like DMAC11,12 and selectors 51 to 57, also, it is possible to apply weights to the CPU 13.
【0050】 [0050]
転送管理ユニット14は、DRAM21やSRAM22に対するアクセスを行う3つの制御装置(以下では、アクセス主体と称する)、CPU13、DMAC11、及びDMAC12に対する制御を行う。 Transfer management unit 14, the three controller for access to the DRAM21 and SRAM 22 (hereinafter, referred to as access subject), and controls for the CPU 13, DMAC 11, and DMAC 12. すなわち、転送管理ユニット14は、メモリに対するアクセスのCPU13、DMAch1、及びDMAch2の間での切り替え、これらの優先順を考慮した調停、DMAによるデータ転送中であってCPU13がメモリアクセスできない場合におけるCPU13に対するウェイト制御等を行う。 That is, the transfer management unit 14, for CPU 13 when switching between the access to the memory CPU 13, DMAch1, and DMAch2, arbitration Considering these priority, the CPU 13 even during the data transfer by the DMA can not memory access performing the weight control and the like.
【0051】 [0051]
外部バスインターフェイス16は、外部バスEBと、リンク層と呼ばれる図1のデータ伝送装置の内部ディジタル回路との間を橋渡しする物理層の回路である。 External bus interface 16 is a circuit of a physical layer that bridges between the external bus EB, the internal digital circuitry of the data transmission apparatus of FIG. 1, it referred to as the link layer. 外部バスインターフェイス16は、外部バスEBから受信したデータをDRAM21に転送し、DRAM21から転送されてきたデータを外部バスEBに出力する。 External bus interface 16 transfers the data received from the external bus EB in DRAM 21, and outputs the data transferred from the DRAM 21 to the external bus EB. 外部バスインターフェイス16は、外部バスEBのビット幅と内部バスのビット幅との間でバス幅を変換する回路も有している。 External bus interface 16 also has a circuit for converting the bus width between the bit width and the internal bus bit width of the external bus EB.
【0052】 [0052]
DRAMコントローラ18は、DRAM21に対して制御信号DCNを出力して、複数の回路からのDRAM21に対するアクセス要求を調停し、DRAM21に対する読み書きのタイミングを制御する。 DRAM controller 18 outputs a control signal DCN respect DRAM 21, arbitrates access requests to DRAM 21 from a plurality of circuits, controls the timing of the writes to DRAM 21. また、DRAMコントローラ18は、DRAM21に対してアドレスDADを出力し、DRAM21との間でデータDDTを入出力する。 Also, DRAM controller 18 outputs an address DAD against DRAM 21, to input and output data DDT between the DRAM 21.
【0053】 [0053]
DRAM21は、比較的低速大容量の汎用メモリである。 DRAM21 is a relatively low-speed large capacity universal memory. SRAM22は、比較的高速小容量の汎用メモリであり、CPU13が作業用に使用するCPU使用領域CRと、FIFO(first in, first out)バッファ(仮想FIFO)として使用されるFIFO領域FRとを有している。 SRAM22 is relatively a high-speed small-capacity of the general-purpose memory, chromatic and CPU use region CR where CPU13 uses for working, FIFO (first in, first out) and FIFO area FR to be used as a buffer (virtual FIFO) doing.
【0054】 [0054]
DRAM21は、外部バスインターフェイス16が外部バスEBから受信したデータを、SRAM22内のFIFO領域FR及び双方向キャッシュ24のうちの少なくとも一方と、DRAMコントローラ18とを経由して受信する。 DRAM21 the data to the external bus interface 16 receives from the external bus EB, and at least one of the FIFO area FR and bidirectional cache 24 in SRAM 22, for receiving via the DRAM controller 18. また、DRAM21は、DRAMコントローラ18、SRAM22内のFIFO領域FR、及び外部バスインターフェイス16を経由して、外部バスEBにデータを送信する。 Also, DRAM 21, via FIFO area FR in the DRAM controller 18, SRAM 22, and an external bus interface 16, and transmits the data to the external bus EB.
【0055】 [0055]
DRAM21は、パケットと呼ばれる伝送データ単位を格納する。 DRAM21 stores transmission data units called packets. DRAM21の読み出し又は書き込みのためには、制御信号として一般的にロウアドレスストローブRAS、コラムアドレスストローブCAS、書き込みイネーブルWE、出力イネーブルOE等が使われる。 For reading or writing DRAM21 generally a row address strobe RAS as a control signal, a column address strobe CAS, write enable WE, output enable OE and the like are used.
【0056】 [0056]
DRAM21は、CPU13の外部記憶アドレス領域に割り当てられており、CPU13は、DRAM21に直接アクセスすることができる。 DRAM 21 is allocated to CPU 13 of the external storage address area, CPU 13 can directly access the DRAM 21. ただし、DRAM21は、SRAM22よりもアクセス時間が長い。 However, DRAM21 is, longer access time than SRAM22. また、リフレッシュやアクセス競合、ページミスヒット等のため、アクセス時間は一定ではなく、ウェイト数は可変である。 In addition, refresh and access conflicts, such as for page miss hit, access time is not constant, the number of wait is variable.
【0057】 [0057]
SRAM22のFIFO領域FRは、受信時及び送信時において、データを一時的に格納して、外部バスインターフェイス16とDRAM21との間の転送速度差を吸収するバッファとして動作する。 FIFO area FR of SRAM22, at the time when receiving and transmitting, to temporarily store data and operates as a buffer to absorb the transfer speed difference between the external bus interface 16 and DRAM 21. SRAM22は、DRAM21に比べビット当たりの面積が大きいため、LSI上に大容量を実装することができない。 SRAM22, since a large area per bit compared to DRAM 21, it is impossible to implement a large capacity on LSI.
【0058】 [0058]
DRAM21には、CPU13、及びDMAch2以外のDMAチャネルによるアクセスも行われるので(ただし、DMAch1によるアクセスは行われない)、外部バスEBにデータを送信する場合、DMAch2の転送速度がDMAch1よりも一時的に遅くなることがある。 The DRAM 21, CPU 13, and so also performed accessed by the DMA channel other than DMAch2 (provided that access by DMAch1 is not performed), when transmitting data to the external bus EB, the transfer rate of DMAch2 temporary than DMAch1 there can be slow to. その際にも、DMAch1の要求に応じてDRAM21内のデータを転送することができるように、SRAM22は充分な大きさのFIFO領域FRを有する必要がある。 In this case, to be able to transfer data in the DRAM21 in response to a request DMAch1, SRAM 22 needs to have a FIFO area FR of sufficient size.
【0059】 [0059]
SRAM22には、読み出し又は書き込みのために入力される制御信号として、一般的にチップセレクトCS、バイトイネーブルBE、書き込みイネーブルWE、読み出しイネーブルRE等が使われる。 The SRAM 22, a control signal input for reading or writing, generally a chip select CS, byte enable BE, write enable WE, a read enable RE and the like are used. 更に同期式SRAMの場合、SRAMは入力されるクロックCLKに同期してアクセスされる。 Further, in the case of synchronous SRAM, SRAM is synchronized to access the input clock CLK. 以下では、SRAM22に入力されるアドレスを表す信号は、これらの制御信号を含んでいるものとする。 Hereinafter, a signal representative of the address input to the SRAM22 is assumed to include these control signals.
【0060】 [0060]
SRAM22は、CPU13の内部記憶アドレス領域に割り当てられており、CPU13は、SRAM22に固定ウェイトで直接アクセスできる。 SRAM 22 is assigned to the internal memory address area of ​​the CPU 13, CPU 13 can directly access a fixed weights SRAM 22. アクセスの際のウェイトは、例えば0ウェイトとすることができる。 Weight during access may be, for example, 0 weights.
【0061】 [0061]
双方向キャッシュ24は、例えば1ワードのデータを格納することができるフリップフロップであって、受信時及び送信時にSRAM22のFIFO領域FRへのアクセスを軽減するための迂回パスとして動作する。 Bidirectional cache 24 is a flip-flop that can store, for example, one word of data, operates as a bypass path for reducing the access to the FIFO area FR of SRAM22 during reception and during transmission.
【0062】 [0062]
有効フラグレジスタ25は、双方向キャッシュ24に有効な値が入っているか否かを示す有効フラグVを格納する1ビットレジスタである。 Valid flag register 25 is a one-bit register for storing a valid flag V indicating whether or not containing a valid value bidirectional cache 24. 有効フラグVは、その値が1のときには双方向キャッシュ24に有効なデータが格納されている状態を表し、その値が0のときには双方向キャッシュ24が空である、すなわち、読み出すべき有効なデータが存在しない状態を表す。 Valid flag V, the value represents the state in which valid data bidirectionally cache 24 is stored when the 1, bidirectional cache 24 is empty when the value is 0, i.e., valid data to be read representing a state that but does not exist. DMAC11及び12は、双方向キャッシュ24が有効なデータを保持しているか否かを判断するために、有効フラグVの値を参照する。 DMAC11 and 12, in order to determine whether two-way cache 24 holds valid data, referring to the value of the valid flag V.
【0063】 [0063]
FIFO周辺回路30は、SRAM22のFIFO領域FRを仮想FIFOとして用いるための制御を行う。 FIFO peripheral circuit 30 performs control for use as a virtual FIFO the FIFO area FR in SRAM 22. すなわち、SRAM22がFIFO領域FRに格納したデータを格納した順に出力するように、SRAM22に読み書きをするためのポインタを管理する。 That is, to output sequentially storing the data SRAM 22 is stored in the FIFO area FR, manages pointers for read and write to the SRAM 22.
【0064】 [0064]
セレクタ51は、SRAM22及び外部バスインターフェイス16の出力のうちの1つを選択し、双方向キャッシュ24に出力する。 The selector 51 selects one of the outputs of the SRAM22 and the external bus interface 16, and outputs the two-way cache 24. セレクタ52は、受信時において、双方向キャッシュ24が格納するデータと外部バスインターフェイス16の出力とのうちのいずれかを選択し、セレクタ55を介してSRAM22に出力する。 Selector 52, during the reception, and selects one of the output data and the external bus interface 16 to the bidirectional cache 24 stores and outputs the SRAM22 through the selector 55. 出力されたデータは、SRAM22のFIFO領域FRに書き込まれる。 The output data are written into the FIFO area FR in SRAM 22. セレクタ53は、送信時において、双方向キャッシュ24が格納するデータとSRAM22の出力とのうちのいずれかを選択し、外部バスインターフェイス16に出力する。 Selector 53, during the transmission, and selects one of the output data and SRAM22 bidirectional cache 24 stores and outputs to the external bus interface 16.
【0065】 [0065]
セレクタ54,55,56は、それぞれDRAM21、SRAM22、CPU13への書き込みデータを選択する。 The selector 54, 55 and 56, respectively selects the write data to the DRAM 21, SRAM 22, CPU 13. セレクタ57は、CPU13が出力するアドレス信号CADとFIFO周辺回路30が出力するアドレス信号FADとのうちのいずれかを選択し、アドレス信号SADとしてSRAM22に出力する。 The selector 57 selects one of the address signals FAD of the address signal CAD and the FIFO peripheral circuit 30 for outputting the CPU13 outputs, and outputs the SRAM22 as an address signal SAD. アドレス信号CAD,FAD,SADはいずれも、アドレス、チップセレクトCS、書き込みイネーブルWE、バイトイネーブルBE等の信号を含んでいる。 Address signal CAD, FAD, both SAD includes addresses, chip select CS, write enable WE, a signal such as a byte enable BE.
【0066】 [0066]
CPUが作業用に用いるSRAMをFIFOバッファとしても用いると、SRAMに対するアクセス競合がシステム性能のボトルネックになる。 When the CPU used as FIFO buffer SRAM used for working, access contention for the SRAM becomes a bottleneck of the system performance. 図1のデータ伝送装置では、仮想FIFOの他に双方向キャッシュ24を備えているので、読み出し及び書き込みの際のSRAMのポートのトラフィックを緩和することができる。 In the data transmission apparatus of FIG. 1 is provided with the bidirectional cache 24 in addition to the virtual FIFO, it is possible to mitigate the read and port traffic in SRAM at time of writing.
【0067】 [0067]
図2は、仮想FIFOの構成を示すブロック図である。 Figure 2 is a block diagram showing the configuration of a virtual FIFO. 図2のように、SRAM22は、CPU13が作業用に使用するCPU使用領域CRと、FIFOバッファとして使用されるFIFO領域FRとを有している。 As in Figure 2, SRAM 22 has a CPU usage area CR of CPU13 is used for work, and a FIFO area FR to be used as a FIFO buffer. 通常、CPU13はCPU使用領域CRにアクセスしてデータ処理を行い、DMAC11,12はFIFO領域FRにアクセスしてデータ転送を行う。 Normally, CPU 13 performs data processing by accessing the CPU used area CR, DMAC11,12 transfers data by accessing the FIFO area FR.
【0068】 [0068]
SRAM22に読み書きをするアクセスを行うことができるのは、CPU13、DMAch1(DMAC11)、DMAch2(DMAC12)のいずれかである。 Is be able to perform access for reading and writing to SRAM22, CPU13, DMAch1 (DMAC11), is either DMAch2 (DMAC12). SRAM22は1ポートしか有していないので、同時に2以上のアクセスを受けることはできない。 Since SRAM22 does not have only one port, it is not possible to receive two or more of the access at the same time.
【0069】 [0069]
SRAM22のFIFO領域FRと、FIFO周辺回路30とを有するソフトウェア制御可能なFIFOバッファを仮想FIFOと称することとする。 SRAM22 a FIFO area FR of software controllable FIFO buffer having a FIFO peripheral circuit 30 is referred to as virtual FIFO. 仮想FIFOは、SRAM22のFIFO領域FRをリングバッファとして用いるものである。 Virtual FIFO is to use a FIFO area FR of SRAM22 as a ring buffer. DMAch1及びDMAch2は、仮想FIFOを介して転送データの引き渡しを互いに行う。 DMAch1 and DMAch2 performs together delivery of transfer data over a virtual FIFO. CPU13が実行するプログラムは、転送データが壊れないように、DMA転送中においてはCPU13がFIFO領域FRに書き込みを行わないようなものである必要がある。 Program CPU13 performs is to prevent broken transfer data, during the DMA transfer needs to be such that CPU13 may not write to the FIFO area FR.
【0070】 [0070]
FIFO周辺回路30は、FIFO領域の上限アドレスUB、及び下限アドレスLBをそれぞれ格納するレジスタ31,32と、読み出しポインタRP、書き込みポインタWP、フルフラグF、及び空フラグEをそれぞれ格納するレジスタ33,34,35,36と、セレクタ41,42,43と、増分器44,45とを備えている。 FIFO peripheral circuit 30, the upper address UB FIFO area, and a register 31 for storing a lower limit address LB respectively, stores read pointer RP, the write pointer WP, a full flag F, and empty flag E of the registers 33 and 34 , and a 35, a selector 41, 42, 43, and incrementer 44 and 45. フルフラグFは、その値が“1”であるとき、FIFO領域FRがそれ以上新たなデータを格納することができないフル状態であることを示す。 Full flag F indicates that the time value is "1", a full state of the FIFO area FR can not store any more new data.
【0071】 [0071]
転送管理ユニット14は、レジスタ31,32,33,34,35の値を入力としており、これらの値に従って、セレクタ41,42,43及び増分器44,45を制御して、以下のような動作を行わせる。 Transfer management unit 14 is an input value of the register 31, 32, 33, 34, according to these values, controls the selector 41, 42, 43 and incrementer 44 and 45, the following operation the causes.
【0072】 [0072]
読み出しポインタRPに対する初期化、又は読み出しポインタRPが上限アドレスUBに達するオーバーフローが発生すると、セレクタ42は、レジスタ32の出力を選択し、読み出しポインタRPが下限アドレスLBになるようにする。 Initialization for the read pointer RP, or the read pointer RP is overflow reaching the upper limit address UB, selector 42 selects the output of the register 32, the read pointer RP is set to be the lower limit address LB. 同様に、書き込みポインタWPに対する初期化、又は書き込みポインタWPが上限アドレスUBに達するオーバーフローが発生すると、セレクタ43は、レジスタ32の出力を選択し、書き込みポインタWPが下限アドレスLBになるようにする。 Similarly, the initialization for the write pointer WP, or the write pointer WP is overflow reaching the upper limit address UB, selector 43 selects the output of the register 32, the write pointer WP is set to be the lower limit address LB.
【0073】 [0073]
初期化及びオーバーフローがいずれも発生していないとき、セレクタ42,43は、それぞれレジスタ33,34の出力を選択している。 When initialization and overflow are not both occur, the selector 43 is selecting the output of the registers 33 and 34. 仮想FIFOに対する読み出し、書き込みが発生すると、アドレス増分器44,45は、それぞれ読み出しポインタRP,書き込みポインタWPをWLだけ増加させる。 When reading from the virtual FIFO, write occurs, the address incrementer 44 and 45 increases the read pointer RP, respectively, the write pointer WP by WL. セレクタ41は、仮想FIFOからの読み出し時には、レジスタ33が出力する読み出しポインタRPを、仮想FIFOへの書き込み時には、レジスタ34が出力する書き込みポインタWPを選択し、セレクタ57に出力する。 The selector 41 at the time of reading from the virtual FIFO, the read pointer RP which register 33 outputs, at the time of writing to the virtual FIFO, selects the write pointer WP to register 34 outputs, to the selector 57.
【0074】 [0074]
CPU13が、レジスタ31の上限アドレスUB、又はレジスタ32の下限アドレスLBを書き換えると、SRAM22のFIFO領域FRを変更することができる。 CPU13 is, the upper limit address UB of register 31, or the rewritten lower limit address LB in register 32, it is possible to change the FIFO area FR in SRAM 22. なお、FIFO領域FRを固定しておく場合は、レジスタ31,32は不要である。 In the case to be fixed to FIFO area FR is the register 31 and 32 is not required.
【0075】 [0075]
図3は、FIFO領域FRと各ポインタとの関係の一例を示す説明図である。 Figure 3 is an explanatory diagram showing an example of the relationship between the FIFO areas FR and each pointer. SRAM22内のFIFO領域FRのアドレスはLBからUB−WLまでであり、FIFO容量は(UB−LB)ワードである。 The address of the FIFO area FR in the SRAM22 is from LB to UB-WL, FIFO capacity is (UB-LB) word. FIFO領域FRの上限及び下限は、SRAM22のワード境界にアラインメントされている。 The upper and lower limits of FIFO areas FR are aligned on word boundaries in SRAM 22.
【0076】 [0076]
FIFO領域FRにおいて、有効なデータのうち最も新しいもの及び最も古いものの位置を、それぞれFIFOトップ及びFIFOボトムと称することとする。 In FIFO area FR, the position of the newest and oldest ones of the valid data, and that each referred to as a FIFO top and FIFO bottom. FIFO領域FRへの書き込みの際にはアドレスが順次増加するので、書き込みが最後に行われたデータはFIFOトップに格納され、読み出しが最初に行われるべきデータはFIFOボトムに格納されている。 Since addresses when writing to the FIFO area FR is increased sequentially write the data was last stored in the FIFO top, the data to read is first performed is stored in the FIFO bottom. 書き込みポインタWPは、次にデータが書き込まれるアドレス、すなわち、FIFOトップのアドレスにWLを加えたアドレスを指し示す。 The write pointer WP is next address data is to be written, i.e., points to the address obtained by adding WL to the address of the FIFO top. 読み出しポインタRPは、次に読み出されるデータが格納されているFIFOボトムのアドレスを指し示す。 Read pointer RP points to FIFO bottom address data to be read next is stored.
【0077】 [0077]
転送管理ユニット14は、書き込みポインタWP及び読み出しポインタRPの値から、FIFO領域FRが有効なデータでフル状態であって、それ以上新たなデータを格納することができない状態であるか否かを判定し、フル状態である場合にはレジスタ35のフルフラグFを立てる。 Transfer management unit 14, determines from the value of the write pointer WP and read pointer RP, a full state in the FIFO area FR is valid data, whether or not the state can not be stored any more new data and, in the case of the full state sets a full flag F of the register 35. 同様に、転送管理ユニット14は、FIFO領域FRが、有効なデータが格納されていない空の状態であるか否かを判定し、空の状態である場合にはレジスタ36の空フラグEを立てる。 Similarly, the transfer management unit 14, FIFO area FR is, it is determined whether the empty state where no valid data is stored, when an empty state sets an empty flag E in register 36 .
【0078】 [0078]
図4は、仮想FIFOのフルフラグFを求める際の論理を示す説明図である。 Figure 4 is an explanatory diagram showing a logic for obtaining the full flag F of the virtual FIFO. 転送管理ユニット14が求めたフルフラグFを用いると、仮想FIFOがフルである状態と空である状態とを区別することができる。 With full flag F to transfer management unit 14 is determined, it is possible to virtual FIFO to distinguish between state is a state and sky is full. すなわち、F=1の場合はフルであり、WP=RPかつF=0の場合は空であることがわかる。 That is, in the case of F = 1 is full, in the case of WP = RP and F = 0 proves to be empty. ところで、仮想FIFO中のワード数は、(WP−RP)mod(UB−LB)と表すことができる。 Incidentally, the number of words in the virtual FIFO can be expressed as (WP-RP) mod (UB-LB). 但し、フルの場合は、UB−LBである。 However, in the case of a full, a UB-LB. ここで、modは正の剰余演算子である。 Here, mod is a positive remainder operator.
【0079】 [0079]
FIFO領域FRがフルになった場合、仮想FIFOへの書き込み動作は停止される。 If FIFO area FR is full, the write operation to a virtual FIFO is stopped. FIFO領域FRが空になった場合、仮想FIFOからの読み出し動作は停止される。 If FIFO area FR is empty, the read operation from the virtual FIFO is stopped.
【0080】 [0080]
図5は、FIFO領域FRと各ポインタとの関係の他の例を示す説明図である。 Figure 5 is an explanatory view showing another example of the relationship between the FIFO areas FR and each pointer. 仮想FIFOを用いた動作が繰り返され、書き込みポインタWPがFIFO上限を超えると、書き込みポインタWPはFIFO下限にラップアラウンド(wrap around)して図5の状態になる。 Operation using the virtual FIFO is repeated and the write pointer WP is more than FIFO limit, the write pointer WP will FIFO lower wrap-around (wrap around-) in the state of FIG. FIFOトップは、アドレス(WP−WL)により指し示され、FIFOボトムは、読み出しポインタRPにより指し示される。 FIFO top is pointed to by the address (WP-WL), FIFO bottom is pointed to by read pointer RP.
【0081】 [0081]
受信の場合における図1のデータ伝送装置の一連の動作を以下に説明する。 Illustrating a series of operations of the data transmission apparatus of FIG. 1 in the case of reception below. 受信の場合、双方向キャッシュ24が格納しているデータは、仮想FIFOにFIFOトップのワードとして格納されるべきデータである。 For reception, the data bidirectional cache 24 is stored is data to be stored as a word of the FIFO top to virtual FIFO. 受信したデータの順を保つために、双方向キャッシュ24が空でなければ、DMAが仮想FIFOに直接書き込むことはできない。 To maintain the order of the received data, if the bidirectional cache 24 is not empty, DMA can not be written directly to a virtual FIFO. そこで、SRAM22のデータ入力ポートが使われないときを狙って、双方向キャッシュ24のデータを仮想FIFOに書き込むようにする。 Therefore, it aimed at when the data input port of SRAM22 is not used, to write the data of the bidirectional cache 24 in the virtual FIFO.
【0082】 [0082]
[ステップ1] [Step 1]
外部バスインターフェイス16は、外部バスEBからデータを受信する。 External bus interface 16 receives the data from the external bus EB.
【0083】 [0083]
[ステップ2]DMAch1による仮想FIFOへの受信データ書き込みSRAM22がアクセスされており、双方向キャッシュ24に空きがない場合、DMAch1は書き込みを待たされる。 [Step 2] DMAch1 has received the data write SRAM22 to the virtual FIFO is accessed by, if there is no room in the bi-directional cache 24, DMAch1 will wait to write. SRAM22がアクセスされており、双方向キャッシュ24に空きがある場合、DMAch1は双方向キャッシュ24へ書き込みを行う。 SRAM22 are accessed, if there is a free space in the two-way cache 24, DMAch1 is writing to bidirectional cache 24. SRAM22がアクセスされておらず、双方向キャッシュ24が空ではない場合、DMAch1は双方向キャッシュ24のデータを仮想FIFOへ書き込み、更に双方向キャッシュ24への書き込みを行う。 SRAM22 has not been accessed, if two-way cache 24 is not empty, DMAch1 writes data of the bidirectional cache 24 to the virtual FIFO, further writes to the bidirectional cache 24. SRAM22がアクセスされておらず、双方向キャッシュ24が空である場合、DMAch1は仮想FIFOへ直接書き込みを行う。 SRAM22 has not been accessed, if two-way cache 24 is empty, DMAch1 performs writing directly to a virtual FIFO.
【0084】 [0084]
[ステップ3] [Step 3]
SRAM22がCPU13、DMAC11、DMAC12のいずれからもアクセスされていないとき、次の操作を実行する。 SRAM22 is CPU 13, DMAC 11, when not being accessed from any DMAC12 of, perform the following operations.
仮想FIFOがフルでも空でもなく、かつ、双方向キャッシュ24が空でなければ、DMAch1は双方向キャッシュ24のデータを仮想FIFOへ書き込む。 Nor empty also a virtual FIFO is full, and, if two-way cache 24 is not empty, DMAch1 writes data of the bidirectional cache 24 to the virtual FIFO.
【0085】 [0085]
[ステップ4]DMAch2による仮想FIFOからの受信データ読み出し仮想FIFOが空で、かつ双方向キャッシュ24が空ではない場合、DMAch2は双方向キャッシュ24からデータを読み出し、SRAM22を経由させずに、直接DRAM21へ転送する。 [Step 4] is empty receive data read virtual FIFO from the virtual FIFO by DMAch2, and if two-way cache 24 is not empty, DMAch2 reads data from the two-way cache 24, without passing through the SRAM 22, directly DRAM21 to be transferred. 仮想FIFOが空で、かつ双方向キャッシュ24が空である場合、DMAch2は双方向キャッシュ24に有効データが入るまで待たされる。 If virtual FIFO is empty, and two-way cache 24 is empty, DMAch2 is kept waiting until valid data enters the two-way cache 24.
【0086】 [0086]
仮想FIFOが空ではなく、仮想FIFOに対する他からのアクセスがない場合、DMAch2は仮想FIFOからデータを読み出し、DRAM21へ転送する。 Not the virtual FIFO is empty, if there is no access from the other with respect to the virtual FIFO, DMAch2 reads the data from the virtual FIFO, and transfers to the DRAM 21. 仮想FIFOが空ではなく、仮想FIFOが他からアクセスされている場合、DMAch2は仮想FIFOに対する他からのアクセスが終わるまで待つ。 Virtual FIFO is not empty, if the virtual FIFO is being accessed from another, DMAch2 waits until the access from the other with respect to the virtual FIFO is completed. [終わり]。 [the end].
【0087】 [0087]
ここでは、CPU13の優先順位が最も高い場合について説明したが、外部バスEBから送られてきたデータを待たせることができない場合には、DMAch1の優先順位を高くする必要がある。 Here, the case has been described where the highest priority CPU 13, if it is not possible to wait for data sent from the external bus EB, it is necessary to increase the priority of DMAch1.
【0088】 [0088]
仮想FIFOへの書き込み要求WRQ、仮想FIFOへの読み出し要求RRQ、CPU13からのアクセス要求CPURW,仮想FIFOへのクリア要求CLRの各信号の論理は、次の式、 Write request to the virtual FIFO WRQ, access requests CPURW from read request RRQ, CPU 13 to the virtual FIFO, logic of signals clear request CLR to the virtual FIFO, the following formula,
で表すことができる。 It can be represented by. “〜”は否定、“|”は論理和、“・”は論理積を表す。 "~" Is negative, "|" is the logical sum, "-" represents a logical product.
【0089】 [0089]
ここで、選択信号selCPU,selDMA1,及びselDMA2には、CPU13,DMAch1,及びDMAch2がそれぞれ対応している。 Here, the selection signal selCPU, selDMA1, and selDMA2, CPU13, DMAch1, and DMAch2 correspond respectively. 転送管理ユニット14は、CPU13,DMAch1,及びDMAch2の3者の要求を調停して、これらのうちの1つに対応した選択信号をアサートする。 Transfer management unit 14, CPU13, DMAch1, and arbitrates 3's request for DMAch2, it asserts a selection signal corresponding to one of these.
【0090】 [0090]
SRAM22への入力データを選択するセレクタ55、及びSRAM22へ入力するアドレスを選択するセレクタ57は、選択信号selCPU,selDMA1,selDMA2に従って選択を行う。 The selector 57 for selecting an address to be input selector 55, and the SRAM22 for selecting input data to SRAM22 performs selection according to the selection signal selCPU, selDMA1, selDMA2. すなわち、セレクタ55は、選択信号selCPU,selDMA1,selDMA2がアサートされている場合、それぞれCPU13の出力CDO、セレクタ52の出力、DRAMコントローラ18の出力DDOを選択する。 That is, the selector 55 selects signal selCPU, selDMA1, if selDMA2 is asserted, CPU 13 of the output CDO each output of the selector 52 selects the output DDO of the DRAM controller 18. セレクタ57は、選択信号selCPUがアサートされている場合はCPU13の出力CADを選択し、選択信号selDMA1又はselDMA2がアサートされている場合はFIFO周辺回路30の出力FADを選択する。 The selector 57, when the selection signal selCPU is asserted to select the output of CAD CPU 13, if the selection signal selDMA1 or selDMA2 is asserted to select the output FAD of FIFO peripheral circuit 30.
【0091】 [0091]
チップセレクト信号csCPU,csDMA1,csDMA2は、仮想FIFOがそれぞれCPU13,DMAch1,DMAch2によりアクセスされる場合にアサートされる。 Chip select signal csCPU, csDMA1, csDMA2 is asserted when the virtual FIFO is accessed by each CPU13, DMAch1, DMAch2. 同様に、読み出しイネーブル信号reCPU,reDMA1,reDMA2は、仮想FIFOからそれぞれCPU13,DMAch1,DMAch2による読み出しが行われる場合にアサートされる。 Similarly, the read enable signal reCPU, reDMA1, reDMA2 reads by each CPU13, DMAch1, DMAch2 virtual FIFO is asserted when performed. 書き込みイネーブル信号weCPU,weDMA1,weDMA2は、仮想FIFOにそれぞれCPU13,DMAch1,DMAch2による書き込みが行われる場合にアサートされる。 Write enable signal weCPU, weDMA1, weDMA2 writes by each CPU13, DMAch1, DMAch2 virtual FIFO is asserted when performed.
【0092】 [0092]
チップリセットresetは、ハードウェア的なリセット信号であり、初期化信号initは、CPU13が初期化命令によりセットするソフトウェア的なリセット信号である。 Chip Reset reset is a hardware reset signal, the initialization signal init is a software reset signal CPU13 is set by the initialization instruction. 方向ビットDIRは、その値が“0”のときは外部バスEBからの受信、“1”のときは外部バスEBへの送信を表す。 Direction bit DIR is, when its value is "0" received from the external bus EB, when the "1" representing the transmission to the external bus EB.
【0093】 [0093]
図3,図5の仮想FIFOにおいて、読み出しポインタRPが書き込みポインタWPに追いついた場合、仮想FIFOは空となり、書き込みポインタWPと読み出しポインタRPとの値(アドレス)が一致する。 3, in the virtual FIFO of FIG. 5, when the read pointer RP has caught up with the write pointer WP, virtual FIFO is empty, the value of the write pointer WP and the read pointer RP (address) match. 書き込みポインタWPが読み出しポインタRPに追いついた場合、仮想FIFOはフルとなり、書き込みポインタWPと読み出しポインタRPとがやはり一致する。 If the write pointer WP has caught up with the read pointer RP, a virtual FIFO becomes full, and the write pointer WP and the read pointer RP is still to match.
【0094】 [0094]
図6は、書き込みポインタ更新アルゴリズムを示す説明図である。 Figure 6 is an explanatory diagram showing a write pointer update algorithm. 図6では、更新され、次サイクルにおいて用いられる書き込みポインタWP及びフルフラグFを、それぞれWP'及びF'で表している。 6, are updated, it represents the write pointer WP and the full flag F is used in the next cycle, respectively WP 'and F'. 書き込みが行われる場合の仮想FIFOの動作を以下に説明する。 Writing the operation of the virtual FIFO described below when carried out.
(1)SRAM22は、書き込みポインタWPが指し示すアドレスに入力されたデータを書き込む。 (1) SRAM 22 writes the input data to the address indicated by the write pointer WP.
(2)FIFO周辺回路30は、書き込みポインタWPを1ワード分インクリメントする。 (2) FIFO peripheral circuit 30 increments one word the write pointer WP.
【0095】 [0095]
図7は、読み出しポインタ更新アルゴリズムを示す説明図である。 Figure 7 is an explanatory diagram showing a read pointer update algorithm. 図7では、更新された読み出しポインタRPをRP'で表している。 In Figure 7, it represents the updated read pointer RP in RP '. 読み出しが行われる場合の仮想FIFOの動作を以下に説明する。 Reading the operation of the virtual FIFO described below when carried out.
(1)SRAM22は、読み出しポインタRPが指すアドレスから1ワードを読み出して出力する。 (1) SRAM 22 is output from the address read pointer RP points reads one word.
(2)FIFO周辺回路30は、読み出しポインタRPを1ワード分インクリメントする。 (2) FIFO peripheral circuit 30 increments by one word the read pointer RP.
【0096】 [0096]
図8は、受信時における仮想FIFO及びDMAの動作を示す説明図である。 Figure 8 is an explanatory diagram showing a virtual FIFO and DMA operation at the time of reception. DMA(DMAch1及びDMAch2)は、図8に示された条件の組み合わせ以外の場合には動作しない。 DMA (DMAch1 and DMAch2) will not work if the other combinations of conditions shown in FIG. すなわち、DMAからアクセス要求があった場合であっても、DMAは待たされることがある。 That is, even when an access request from the DMA, sometimes the DMA wait. ただし、DMAからのアクセス要求がCPU13からのアクセス要求と衝突したとき、転送管理ユニット14は、予め定めておいた優先順位を考慮して、DMAのアクセスを許可し、CPU13を待たせることがあるものとする。 However, when the access request from the DMA collides with access requests from the CPU 13, the transfer management unit 14, taking into account the priority order determined in advance, to allow DMA access, it is possible to wait for CPU 13 and things. このような場合を、以下の図では“(0)”で表す。 Such a case, in the following figures expressed by "(0)". また、“→”は、データが転送される向きを表す。 In addition, "→" represents the direction in which the data is transferred. “*”は、“0”又は“1”を表す。 "*" Represents a "0" or "1". “=”は、代入演算を表す。 "=" Represents assignment operation.
【0097】 [0097]
ここでは、仮想FIFOへの書き込みを行うDMAch1が、仮想FIFOからの読み出しを行うDMAch2よりも優先されるものとするので、WRQ==RRQ==1の場合は、WRQ=1,RRQ=0の場合と同じである。 Here, DMAch1 writing to the virtual FIFO is because it is assumed that overrides DMAch2 for reading from the virtual FIFO, in the case of WRQ == RRQ == 1, the WRQ = 1, RRQ = 0 If it is the same as. この場合、結果として、読み出し要求RRQは待たされる。 In this case, as a result, a read request RRQ is kept waiting.
【0098】 [0098]
次に、送信の場合における図1のデータ伝送装置の一連の動作を以下に説明する。 Next, the sequence of operation of the data transmission apparatus of FIG. 1 in case of transmission below. 図9は、送信時における仮想FIFO及びDMAの動作を示す説明図である。 Figure 9 is an explanatory diagram showing a virtual FIFO and DMA operation at the time of transmission. 双方向キャッシュ24が格納するデータは、FIFOボトムのワードとして格納されていたデータである。 Data bidirectional cache 24 stores is the data stored as a FIFO bottom word. 送信の場合、双方向キャッシュ24にはできる限り有効なデータが格納されているようにする。 For transmission, valid data is so stored as much as possible in both directions cache 24. 双方向キャッシュ24に有効なデータが入っていない場合は、DMAが仮想FIFOからデータを直接読み出すことができる。 If no valid data is entered into bidirectional cache 24, DMA can read the data from the virtual FIFO directly. 仮想FIFOが空ではなく、かつ双方向キャッシュ24が空になった場合は、SRAM22のデータ出力ポートが使われないときを狙って、FIFOボトムのワードを双方向キャッシュ24に書き込むようにする。 If the virtual FIFO is not empty and bidirectional cache 24 becomes empty, aimed at when the data output port of SRAM22 is not used, to write the FIFO bottom word bidirectionally cache 24.
【0099】 [0099]
[ステップ1]DMAch2による仮想FIFOへの書き込みDMAch2がDRAM21から読み出したデータをSRAM22の仮想FIFOへ書き込む。 [Step 1] Write DMAch2 to Virtual FIFO by DMAch2 writes the data read from the DRAM21 to the virtual FIFO of SRAM 22.
【0100】 [0100]
[ステップ2]仮想FIFOから双方向キャッシュ24への読み出し仮想FIFOが空ではなく、双方向キャッシュ24が空であれば、SRAM22のデータ出力ポートが使われないサイクルにおいて、転送管理ユニット14が仮想FIFOからデータを読み出し、双方向キャッシュ24に書き込む。 [Step 2] read virtual FIFO from the virtual FIFO to bidirectional cache 24 is not empty, if the two-way cache 24 is empty, the cycle not used the data output port of the SRAM 22, the transfer management unit 14 is a virtual FIFO It reads data from and writes to a two-way cache 24.
【0101】 [0101]
[ステップ3]DMAch1による仮想FIFOからの読み出し双方向キャッシュ24が空でなければ、DMAch1が双方向キャッシュ24からデータを読み出す。 [Step 3] DMAch1 if not read bidirectional cache 24 is empty from the virtual FIFO by, DMAch1 reads data from the bidirectional cache 24. 双方向キャッシュ24が空であれば、SRAM22のデータ出力ポートが使われないサイクルにおいて、DMAch1が仮想FIFOからデータを読み出し、双方向キャッシュ24を経由させずに、直接外部バスインターフェイス16に転送する。 If two-way cache 24 is empty, the cycle in which data output port of SRAM22 is not used, DMAch1 reads the data from the virtual FIFO, or a without passing through the two-way cache 24, and transfers directly to the external bus interface 16.
【0102】 [0102]
[ステップ4] [Step 4]
外部バスインターフェイス16が、仮想FIFOから送られて来たデータを外部バスEBに送信する。 External bus interface 16, and transmits the data sent from the virtual FIFO to the external bus EB. [終わり]。 [the end].
【0103】 [0103]
SRAM22へのアクセスの調停論理について説明する。 It will be described arbitration logic of access to SRAM22. 双方向キャッシュ24、又はSRAM22に対して読み書きすることが、複数のアクセス主体から同時に要求される(アクセスが衝突する)場合には、転送管理ユニット14が調停を行う。 Bidirectional cache 24, or be read from and write to SRAM 22, if it is required at the same time from a plurality of access entities (access collides), the transfer management unit 14 performs the arbitration. 調停論理は、アクセス優先順位を考慮し、アクセスが順番に許されるようにする。 Arbitration logic, considering an access priority, the access is to be allowed in order.
【0104】 [0104]
DMAがSRAM22のトラフィックを占有すると、CPU13は長く待たされる。 When DMA occupies traffic SRAM 22, CPU 13 may wait longer. ここでDMAからのアクセスには、双方向キャッシュ24からのデータの転送を含む。 Here, access from the DMA includes the transfer of data from the two-way cache 24. しかし、SRAM22が高速に動作し、その帯域幅が充分高ければ、CPU13が待たされる上限のサイクル数を2に抑えられる。 However, SRAM 22 operates at high speed, if the bandwidth is sufficiently high, is suppressed the number of cycles upper limit CPU13 is kept waiting 2. 転送管理ユニット14は、SRAM22にアクセスする3つの制御装置がSRAMに交互に、又は順番にアクセスするよう調停し、CPU13が、DMAと衝突したときは1〜2ウェイト、衝突しないときは0ウェイトでSRAM22にアクセスできるようにする。 Transfer management unit 14, alternately three controller SRAM to access the SRAM 22, or arbitration to access sequentially, CPU 13 is 1 to 2 weight when colliding with DMA, when not collide with 0 wait to be able to access the SRAM22.
【0105】 [0105]
外部バスEBの最高転送速度を400Mb/s、バスやメモリ上の1ワードを32ビットとすると、400Mb/s = 400/32MW/s = 12.5MW/sがDMAch1の最高転送速度である。 Maximum transfer speed 400Mb / s of the external bus EB, the one word on bus or memory and 32-bit, 400Mb / s = 400 / 32MW / s = 12.5MW / s is the highest transfer rate DMAch1. ここで、W/sは毎秒1ワードを表す。 Here, W / s represents a per second word. SRAM22の動作周波数を40MHzとすると、3×12.5 < 40< 4×12.5であるから、最高転送速度で転送を行っている場合、DMAch1は、3サイクルに1回以下の頻度でSRAM22にアクセスする。 When the operating frequency of SRAM22 to 40 MHz, because it is 3 × 12.5 <40 <4 × 12.5, If the product has been transferred at the maximum transfer rate, DMAch1 is at a frequency of less than once in three cycles SRAM22 to access. 一方、CPU13及びDMAch2はSRAM22に連続してアクセスすることがある。 On the other hand, CPU 13 and DMAch2 may be accessed continuously in SRAM 22.
【0106】 [0106]
外部バスEBから受信したデータをとりこぼすことなく全て転送するためには、DMAch1を待たせることがないようにするのが望ましい。 To all transferred without lose information data received from the external bus EB is desirably, not to be waiting DMAch1. このため、以下では、DMAch1、CPU13、DMAch2の順に、SRAM22に対するアクセス優先順位が高いとし、仮想FIFOの容量は充分に大きいものとする。 Therefore, in the following, DMAch1, CPU 13, in the order of DMAch2, a higher access priority for SRAM 22, the capacity of the virtual FIFO is assumed sufficiently large. DMAch1は最優先であるが連続アクセスしないので、DMAch1がアクセスしないサイクルにおいてCPU13とDMAch2とがアクセスできる。 DMAch1 so is a priority not continuous access can CPU13 and the DMAch2 access in cycle DMAch1 does not access. したがって、CPU13のSRAM22へのアクセス待ちを2ウェイト以下に制限するように設計することができる。 Therefore, it can be designed to restrict access waiting to CPU13 of SRAM22 to 2 weight below.
【0107】 [0107]
送信の場合は、仮想FIFOへの読み出し要求RRQを行うとき、SRAM22の出力ポートは常に空いているとして良いので、ステップ2とステップ3とを同時に実行することができる。 For transmission, when performing a read request RRQ to the virtual FIFO, since it as an output port of the SRAM22 are always available, it is possible to perform the steps 2 and 3 simultaneously.
【0108】 [0108]
以下では、受信時の様々な状況における仮想FIFO、CPU13及びDMAの動作について説明する。 The following describes a virtual FIFO, CPU 13 and DMA operations in a variety of situations in reception. 特に、CPU13,DMAch1,DMAch2の3者がSRAM22にアクセスし、SRAM22に対する負荷が最も高い状況であるとする。 In particular, CPU13, DMAch1, 3's DMAch2 to access the SRAM 22, the load on the SRAM 22 is the highest status. すなわち、DMAがSRAM22の仮想FIFOを介して受信されたデータを転送しながら、CPU13はSRAM22に対してロード、及びストアアクセスを交互に繰り返しているものとする。 That is, while transferring the DMA has been received via the virtual FIFO of SRAM 22 data, CPU 13 is assumed to alternately repeated load, and store access against SRAM 22. 以下の図において、“R”は仮想FIFOからの読み出しを、“W”は仮想FIFOへの書き込みを表す。 In the following figures, "R" is read from the virtual FIFO, "W" represents write to the virtual FIFO. また、FIFO中の語数の欄の“V”は、双方向キャッシュ24に有効なデータが格納されていることを示す。 Moreover, "V" in the column number of words in the FIFO is used to indicate that valid data bidirectionally cache 24 is stored.
【0109】 [0109]
図10は、仮想FIFOが空ではない状態で、3つのアクセス主体がSRAM22に常にアクセスしている場合の仮想FIFO及びDMAの動作を示す説明図である。 Figure 10 is a state virtual FIFO is not empty, an explanatory diagram showing a virtual FIFO and DMA operations when three access entities is always access the SRAM 22. これは、受信時における最悪の状態である。 This is the worst state during reception. DMAch1が仮想FIFOに書き込みを行うとFIFO中の語数が増加し、DMAch2が仮想FIFOから読み出しを行うとFIFO中の語数が減少している。 DMAch1 increased number of words in the FIFO Writing to virtual FIFO is, DMAch2 the number of words in the FIFO when reading from the virtual FIFO is reduced. CPU13はCPU使用領域CRにアクセスするので、CPU13が書き込み及び読み出しを行う際には、FIFO中の語数は変化しない。 Since CPU13 accesses the CPU used area CR, and when the CPU13 performs writing and reading, the number of words in the FIFO does not change.
【0110】 [0110]
図11は、DMAch1が一時的に停止した場合の仮想FIFO及びDMAの動作を示す説明図である。 Figure 11 is an explanatory diagram showing a virtual FIFO and DMA behavior when DMAch1 is temporarily stopped. DMAch2による仮想FIFOからの読み出しが行われる毎にFIFO中の語数が減少し、FIFO中の語数が0になると(サイクル10)、双方向キャッシュ24からの読み出しが行われる。 Number of words in the FIFO every time reading from the virtual FIFO is performed is reduced by DMAch2, the number of words in the FIFO becomes zero (cycle 10), reading from the bidirectional cache 24 is carried out.
【0111】 [0111]
図12は、DMAch2が一時的に停止した場合の仮想FIFO及びDMAの動作を示す説明図である。 Figure 12 is an explanatory diagram showing a virtual FIFO and DMA behavior when DMAch2 is temporarily stopped. ここで、仮想FIFOの容量がNワードであるとしている。 Here, the capacity of the virtual FIFO is that the N words. 図10の場合においてDMAch2によって使用されていたスロット(サイクル3等)が、CPU13によって使用されている。 Slots that were used by DMAch2 in the case of FIG. 10 (cycles 3 and the like) are used by the CPU 13. DMAch1による仮想FIFOへの書き込みが行われる毎にFIFO中の語数が増加している。 Number of words in the FIFO every time writing to the virtual FIFO is carried out has increased by DMAch1. FIFO中の語数がNになると、DMAch1による書き込みは行われなくなる。 When the number of words in the FIFO is N, writing by DMAch1 is not performed.
【0112】 [0112]
図13は、CPU13が一時的に停止した場合の仮想FIFO及びDMAの動作を示す説明図である。 Figure 13 is an explanatory diagram showing a virtual FIFO and DMA behavior when CPU13 is temporarily stopped. 図10の場合においてCPU13によって使用されていたスロット(サイクル4等)が、DMAch2によって使用されている。 In the case of FIG. 10 slots that were used by the CPU 13 (cycle 4, etc.) they are used by DMAch2. 一般に、DRAMの転送速度はSRAMよりも遅いが、ここでは、DRAM21に対してページ連続ヒットして、DMAch2がウェイトなしでSRAM22にアクセスすることができているとする。 In general, the transfer rate of the DRAM is slower than SRAM, here, in the pages continuously hit against DRAM21, and have been able to DMAch2 to access the SRAM22 with no wait.
【0113】 [0113]
以下では、“*”の付いたRまたはWは、SRAM22の仮想FIFOに対するアクセスではなく、双方向キャッシュ24に対するアクセスであることを表す。 In the following, "*" marked with R or W denotes that instead of an access to the virtual FIFO of SRAM 22, an access to the bidirectional cache 24. したがって、“R*”及び“W*”が示されたサイクルにおいては、DMAch1又はDMAch2によるアクセスを、CPU13のSRAM22に対するアクセスと並列して実行することができる。 Therefore, in the "R *" and "W *" is indicated cycles, the access by DMAch1 or DMAch2, can be executed in parallel with the access to SRAM22 the CPU 13.
【0114】 [0114]
図14は、CPU13の動作が再開した場合の仮想FIFO及びDMAの動作を示す説明図である。 Figure 14 is an explanatory diagram showing a virtual FIFO and DMA operations when the CPU13 of operation is resumed. 一旦FIFOが空になれば、DMAは、まず双方向キャッシュ24にアクセスするので、DMAはSRAM22に全くアクセスしていない。 Once accustomed FIFO is empty, DMA, first because the access to the two-way cache 24, DMA is not at all access to SRAM22. このため、CPU13は、SRAM22に連続してアクセスすることができる。 Therefore, CPU 13 can be accessed continuously in SRAM 22.
【0115】 [0115]
図15は、空きサイクルにおいて、双方向キャッシュ24が仮想FIFOにデータを転送する場合の仮想FIFO及びDMAの動作を示す説明図である。 15, in the idle cycle is an explanatory diagram showing a virtual FIFO and DMA behavior when bidirectional cache 24 transfers the data to the virtual FIFO. 以下の図においては、双方向キャッシュ24と仮想FIFOとの間でデータを転送するサイクルを“#”で示す。 In the following figures, indicated by a cycle for transferring data between a virtual FIFO with bidirectional cache 24 "#". SRAM22への書き込み、SRAM22からの読み出しのいずれも行われていない空きサイクルにおいて、双方向キャッシュ24が空ではなく、仮想FIFOが空でもフルでもない場合、双方向キャッシュ24から仮想FIFOへデータが転送される。 Writing to SRAM 22, in the idle cycles none have been made of reading from SRAM 22, rather than the two-way cache 24 is empty, if the virtual FIFO is neither full nor empty, the data to the virtual FIFO from the bidirectional cache 24 transfers It is. このとき、有効フラグV=0となる。 At this time, the valid flag V = 0.
【0116】 [0116]
図15の場合、空きサイクル4において双方向キャッシュ24が空になるので、サイクル5において、CPU13がSRAM22にアクセスするのと同時にDMAch1が双方向キャッシュ24にアクセスすることができる。 For Figure 15, since the two-way cache 24 is emptied in the idle cycle 4, in cycle 5, it is possible to CPU13 is DMAch1 simultaneously with the access SRAM22 to access the bidirectional cache 24. したがって、CPU13による処理の効率が向上する。 This improves the efficiency of the process by the CPU 13.
【0117】 [0117]
図16は、空きサイクルにおいて、双方向キャッシュ24が仮想FIFOにデータを転送しない場合の仮想FIFO及びDMAの動作を示す説明図である。 16, in the idle cycle is an explanatory diagram showing a virtual FIFO and DMA behavior when bidirectional cache 24 does not forward the data to the virtual FIFO. 図16は、図15の場合との比較のために示すものである。 Figure 16 is a diagram showing for comparison with the case of FIG. 15. 図16の場合、空きサイクル4で双方向キャッシュ24が空にならない。 For Figure 16, two-way cache 24 does not become empty in empty cycles 4. サイクル5,6において、CPU13は、DMAch1又はDMAch2と同時にSRAM22にアクセスすることはできないので、サイクル7まで書き込みを待たされる。 In cycle 5, 6, CPU 13, since it is not possible to access the DMAch1 or DMAch2 simultaneously SRAM 22, to wait a write to cycle 7.
【0118】 [0118]
図17は、双方向キャッシュ24を経由せず、仮想FIFOへ直接書き込みを行う場合の仮想FIFO及びDMAの動作を示す説明図である。 17, without going through the two-way cache 24 is an explanatory diagram showing a virtual FIFO and DMA behavior when a direct write to the virtual FIFO. 双方向キャッシュ24が空であり、かつ仮想FIFOが空でないときに、このような動作をすることが可能である。 A bidirectional cache 24 is empty, and when the virtual FIFO is not empty, it is possible to make such an operation. 図17の場合、サイクル4において双方向キャッシュ24が空になるので、サイクル5においてDMAch1は双方向キャッシュ24を経由せず、仮想FIFOに書き込みを行う。 For Figure 17, since the two-way cache 24 is emptied in cycles 4, DMAch1 in cycle 5 without going through the two-way cache 24 writes the virtual FIFO. この場合、サイクル8において、双方向キャッシュ24が空であるので、CPU13がSRAM22にアクセスするのと同時に、DMAch1が双方向キャッシュ24にアクセスすることができる。 In this case, in cycle 8, the two-way cache 24 is empty, it is possible to CPU13 Simultaneously with accessing the SRAM 22, DMAch1 accesses the interactive cache 24.
【0119】 [0119]
図18は、双方向キャッシュ24へ書き込みを行う場合の仮想FIFO及びDMAの動作を示す説明図である。 Figure 18 is an explanatory diagram showing a virtual FIFO and DMA operations when writing to bidirectional cache 24. 図18は、図17の場合との比較のために示すものである。 Figure 18 is a diagram showing for comparison with the case of FIG. 17. 図18の場合、サイクル5においてDMAch1は双方向キャッシュ24に書き込みを行うので、サイクル8において、CPU13はSRAM22にアクセスすることができない。 For Figure 18, since the cycle 5 DMAch1 can write to two-way cache 24, in cycle 8, CPU 13 can not access the SRAM 22.
【0120】 [0120]
図19は、送信時に、空きサイクルにおいて、仮想FIFOが双方向キャッシュ24にデータを転送する場合の仮想FIFO及びDMAの動作を示す説明図である。 19, the time of transmission, the idle cycle is an explanatory diagram showing a virtual FIFO and DMA behavior when virtual FIFO transfers data bidirectionally cache 24. 図19において、サイクル6までは双方向キャッシュ24は空である。 19, until the cycle 6 bidirectional cache 24 is empty. サイクル7が空きサイクルであるとすると、FIFOボトムの1ワードが仮想FIFOから双方向キャッシュ24へ先読み転送される。 The cycle 7 is assumed to be empty cycle, one word of the FIFO bottom is prefetched transferred from the virtual FIFO to bidirectional cache 24. サイクル9において、双方向キャッシュ24は有効なデータを格納しているので、CPU13がSRAM22に読み出しのためにアクセスするのと同時に、DMAch1が双方向キャッシュ24に読み出しのためにアクセスすることができる。 In cycle 9, since the bidirectional cache 24 contains valid data, CPU 13 at the same time as access for reading SRAM 22, can be accessed for DMAch1 is read bidirectionally cache 24.
【0121】 [0121]
図1のデータ伝送装置においては、DMAch2の平均転送速度がDMAch1よりも速いので、受信時には仮想FIFOが空に近い状態で動作する。 In the data transmission apparatus shown in FIG. 1, the average transfer rate of DMAch2 because faster than DMAch1, during reception to operate with virtual FIFO is close to empty. 図1のデータ伝送装置は、仮想FIFOの他に1ワード長の双方向キャッシュ24を備えているので、受信時において、FIFO領域FRを有するSRAM22に対するDMAのアクセスを実質的になくすことができる。 Data transmission device in FIG. 1 is provided with the other one word length bi cache 24 of the virtual FIFO, during the reception, the DMA access to SRAM22 with FIFO area FR can be substantially eliminated. このため、CPU13のロード・ストア性能をあまり落とすことがない。 For this reason, there is no compromising too much the CPU13 of the load and store performance. また、送信時において、仮想FIFOから双方向キャッシュ24にデータを先読みするので、DMAによるSRAM22へのアクセスを大きく削減し、CPU13のウェイト数を削減することができる。 Further, at the time of transmission, since the pre-read data bidirectionally cache 24 from the virtual FIFO, significantly reduces access to SRAM22 by DMA, it is possible to reduce the number CPU13 weight.
【0122】 [0122]
このように、第1の実施形態によると、CPU等の性能をあまり落とすことなく、CPU等が作業用に使用するメモリと、転送されるデータを一時的に格納するFIFOバッファとを一体化し、データ伝送装置の回路規模を削減することができる。 Thus, integrated according to a first embodiment, without degrading the performance of the CPU or the like so, a memory CPU like can be used for work, and a FIFO buffer for temporarily storing data to be transferred, it is possible to reduce the circuit scale of the data transmission device. したがって、データ伝送装置のコスト削減及び低消費電力化を図ることができるなお、本実施形態では、レジスタ35,36を備え、これらにフルフラグF及び空フラグEをそれぞれ格納させるものとして説明したが、レジスタ35又は36を備えず、フルフラグF又は空フラグEを用いないようにしてもよい。 Therefore, still it is possible to reduce costs and power consumption of the data transmission device, in this embodiment, it includes a register 35 and 36, but these the full flag F and empty flag E has been described as to be stored respectively, not provided with the register 35 or 36, may not be used to the full flag F or empty flag E. フルフラグFを用いない場合、転送管理ユニット14は、 Without the full flag F, the transfer management unit 14,
WP−RP≡UB−LB−WL mod (UB−LB) …(5) WP-RP≡UB-LB-WL mod (UB-LB) ... (5)
が成り立つと、仮想FIFOがフル状態であると判定する。 And it is satisfied, it is determined that the virtual FIFO is full. また、転送管理ユニット14は、 In addition, the transfer management unit 14,
WP=RP …(6) WP = RP ... (6)
が成り立つと、仮想FIFOが空の状態であると判定する。 And it is satisfied, it is determined that the virtual FIFO is empty of state. この場合のFIFO容量は、(UB−LB−WL)ワードとなり、フルフラグFを用いる場合よりも1ワード少なくなる。 FIFO capacity in this case, becomes (UB-LB-WL) words, one word less than the case of using the full flag F.
【0123】 [0123]
また、レジスタ31〜34のうち、複数のレジスタが格納するデータを1つのレジスタでまとめて格納するようにしてもよい。 Further, the registers 31 to 34, may be stored together data in which a plurality of registers for storing a single register.
【0124】 [0124]
また、CPUの最大ウェイト数を変更できるようにしてもよい。 Also, it may be changed to the maximum number of wait of the CPU. 同様に、転送管理ユニットが動的に調停することにより、SRAMへのアクセス主体の優先順位をプログラマブルにするようにしてもよい。 Similarly, by transfer management unit arbitrates dynamically, it may be the priority of access subject to the SRAM such that the programmable.
【0125】 [0125]
また、本実施形態では、DMAch1及びDMAch2の2チャネルを用いてDMA転送を行うものとして説明したが、全てのDMA転送を1チャネルで行ってもよいし、3チャネル以上で行ってもよい。 Further, in the present embodiment it has been described as performing a DMA transfer using a two-channel DMAch1 and DMAch2, to all of the DMA transfer may be performed in one channel may be carried out in 3 or more channels.
【0126】 [0126]
(第1の実施形態の第1の変形例) (First Modification of First Embodiment)
この変形例では、複数ワードを格納することができるキャッシュを備えたデータ伝送装置について説明する。 In this modification, a description will be given of a data transmission apparatus having a cache capable of storing a plurality of words.
【0127】 [0127]
図20は、第1の実施形態の第1の変形例に係る双方向キャッシュのブロック図である。 Figure 20 is a block diagram of a bidirectional cache according to a first modification of the first embodiment. 図20の双方向キャッシュは、図1のデータ伝送装置において、双方向キャッシュ24の代わりに用いられるものである。 Bidirectional cache of Figure 20, in the data transmission apparatus of FIG. 1, and is used in place of two-way cache 24. 図20の双方向キャッシュは、レジスタ81,82,83,84と、セレクタ85と、増減分器86と、レジスタ87と、ポインタ制御回路88とを備えている。 Bidirectional cache 20 includes a register 81, 82, 83, 84, a selector 85, an increment or decrement 86, a register 87, and a pointer control circuit 88. レジスタ81〜84は、それぞれ1ワードを格納することができる。 Register 81 to 84 can store one word respectively.
【0128】 [0128]
図20の双方向キャッシュは、4段のFIFOバッファとして動作するが、書き込みはレジスタ81に行われるので、書き込みポインタは不要である。 Bidirectional cache of Figure 20 may operate as a FIFO buffer 4 stages, writing so performed in the register 81, the write pointer is not needed. レジスタ81に書き込みが行われるときには、レジスタ81,82,83に格納されていたデータは、それぞれ次段のレジスタ82,83,84に格納される。 When a write is performed to the register 81, data stored in the register 81, 82 and 83, are respectively stored in the next register 82, 83, 84. レジスタ87は、読み出しポインタCRPを格納し、これをセレクタ85及び増減分器86に出力する。 Register 87 stores the read pointer CRP, and outputs it to the selector 85 and the increment or decrement 86. 増減分器86は、ポインタ制御回路88の指示に従って、入力されたCRPを増減させてレジスタ87に出力する。 Increment or decrement unit 86 according to an instruction of the pointer control circuit 88, by increasing or decreasing the input CRP into the register 87.
【0129】 [0129]
ポインタ制御回路88は、キャッシュへの読み出し要求があると、入力された読み出しポインタCRPから1を減じて出力するように増減分器86に指示をする。 Pointer control circuit 88, when a read request to the cache, by subtracting 1 from the read pointer CRP input to the instruction to increment or decrement 86 to output. また、ポインタ制御回路88は、キャッシュへの書き込み要求があると、入力された読み出しポインタCRPに1を加えて出力するように増減分器86に指示をする。 Further, the pointer control circuit 88, when there is a write request to the cache, by adding 1 to the read pointer CRP input to the instruction to increment or decrement 86 to output. セレクタ85は、読み出しポインタCRPが例えば1,2,3,4のとき、それぞれレジスタ81,82,83,84の出力を選択して出力する。 The selector 85, when the read pointer CRP is for example 1, 2, 3, 4, and selects and outputs the output of the registers 81, 82, 83, 84.
【0130】 [0130]
読み出しポインタCRPは、FIFOボトムにあたるシフトレジスタを指し、かつ、双方向キャッシュが格納しているワード数をも表わしている。 Read pointer CRP refers to the shift register corresponding to FIFO bottom, and represents also the number of words that bidirectional cache stores. 読み出しポインタCRPが0のとき、双方向キャッシュのFIFOバッファは空であり、読み出しポインタCRPが4のとき、双方向キャッシュのFIFOバッファはフルである。 When the read pointer CRP is 0, FIFO buffer bidirectional cache is empty, when the read pointer CRP is 4, FIFO buffers bidirectional cache is full. 双方向キャッシュをリセットすると、読み出しポインタCRPは0になる。 Resetting the bidirectional cache, the read pointer CRP is zero.
【0131】 [0131]
図21は、複数のワードを格納できる双方向キャッシュを備えた場合の、受信時における仮想FIFO及びDMAの動作を示す説明図である。 21, in the case where a bidirectional cache capable of storing a plurality of words is an explanatory diagram showing a virtual FIFO and DMA operation at the time of reception. 図22は、複数のワードを格納できる双方向キャッシュを備えた場合の、送信時における仮想FIFO及びDMAの動作を示す説明図である。 22, in the case where a bidirectional cache capable of storing a plurality of words is an explanatory diagram showing a virtual FIFO and DMA operation at the time of transmission.
【0132】 [0132]
本変形例によると、双方向キャッシュが複数のワードを格納することができるので、DMAによるSRAMへのトラフィックを大きく削減することができる。 According to this modification, it is possible to two-way cache for storing a plurality of words, it is possible to significantly reduce the traffic to the SRAM according to the DMA.
【0133】 [0133]
(第1の実施形態の第2の変形例) (Second Modification of First Embodiment)
この変形例では、SRAMを経由せず、DRAMから直接キャッシュへ転送するパスを備えたデータ伝送装置について説明する。 In this modification, not via the SRAM, a description will be given of a data transmission device provided with a path for transferring from the DRAM to the cache directly.
【0134】 [0134]
図23は、第1の実施形態の第2の変形例に係るデータ伝送装置のブロック図である。 Figure 23 is a block diagram of a data transmission apparatus according to a second modification of the first embodiment. 図23のデータ伝送装置は、図1のデータ伝送装置におけるDRAMコントローラ18からセレクタ55へのパス、及びSRAM22からセレクタ51,53へのパスの代わりに、DRAMコントローラ18からセレクタ51,53へのパスを有している。 Data transmission device in FIG. 23, the path from the DRAM controller 18 to the selector 55 in the data transmission apparatus of FIG. 1, and instead of the path to the selector 51 and 53 from the SRAM 22, the path from the DRAM controller 18 to the selector 51, 53 have. すなわち、DRAM21は、SRAM22を経由せず、直接双方向キャッシュ24へデータを転送することができるので、送信時のSRAM22へのDMAアクセスをなくすことができる。 That, DRAM 21 is not via the SRAM 22, since the data directly to the two-way cache 24 may be transferred, it is possible to eliminate the DMA access to SRAM 22 during transmission.
【0135】 [0135]
図23のDMAC111,112、CPU113、転送管理ユニット114、外部バスインターフェイス116、及びDRAMコントローラ118は、それぞれ、図1のDMAC11,12、CPU13、転送管理ユニット14、外部バスインターフェイス16、及びDRAMコントローラ18に対応している。 DMAC111,112 in Figure 23, CPU 113, the transfer management unit 114, the external bus interface 116 and the DRAM controller 118, respectively, of FIG. 1 DMAC11,12, CPU13, the transfer management unit 14, external bus interface 16, and a DRAM controller 18 It corresponds to.
【0136】 [0136]
図1のデータ伝送装置は、送信時には仮想FIFOがフルに近い状態で動作するため、CPU13のSRAM22へのアクセスにはほぼ2ウェイトを費やしていた。 Data transmission device in FIG. 1, the time of transmission to operate with virtual FIFO is nearly full, had spent almost two weights to access the CPU13 of SRAM 22. これに対し、図23のデータ伝送装置によれば、送信時のCPUウェイト数は0となる。 In contrast, according to the data transmission apparatus of FIG. 23, CPU wait count at the time of transmission is zero.
【0137】 [0137]
図23のデータ伝送装置によると、DRAM21が出力したデータは仮想FIFOに蓄えられないため、転送速度を調整することができない。 According to the data transmission apparatus of FIG. 23, since the data DRAM21 has output not stored in the virtual FIFO, it can not be adjusted transfer rate. 送信時に、DRAM21からの読み出しが止まり、双方向キャッシュ24も空になると、送信データが途切れてしまう。 During transmission, it stops reading from the DRAM 21, the two-way cache 24 becomes empty, the transmission data is interrupted. このような事態を避けるため、送信中には他の装置がDRAM21へアクセスしないようにして、DRAM21からの読み出しの帯域幅を確保する必要がある。 To avoid such a situation, during transmission so as not to access other devices to DRAM 21, it is necessary to secure the bandwidth of the read from the DRAM 21.
【0138】 [0138]
(第2の実施形態) (Second Embodiment)
本実施形態においては、受信用キャッシュと送信用キャッシュとを備えたデータ伝送装置について説明する。 In the present embodiment, a description will be given of a data transmission device provided with a receiving cache and transmitting cache.
【0139】 [0139]
図24は、本発明の第2の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 Figure 24 is a block diagram showing an example of a configuration of a data transmission apparatus according to a second embodiment of the present invention. 図24のデータ伝送装置は、図1のデータ伝送装置におけるキャッシュブロック23の代わりに、受信用キャッシュブロック223と、送信用キャッシュブロック226とを備えている。 Data transmission device in FIG 24 includes, instead of the cache block 23 in the data transmission apparatus of FIG. 1, a receiving cache block 223, and a transmission cache block 226. 受信用キャッシュブロック223は、受信用キャッシュ224と、受信用有効フラグレジスタ225とを備え、送信用キャッシュブロック226は、送信用キャッシュ227と、送信用有効フラグレジスタ228とを備えている。 Receiving cache block 223 includes a receiving cache 224, and a reception enable flag register 225, a transmission cache block 226 includes a transmission cache 227, and a transmission enable flag register 228.
【0140】 [0140]
図24のDMAC211,212、CPU213、転送管理ユニット214、外部バスインターフェイス216、及びDRAMコントローラ218は、それぞれ、図1のDMAC11,12、CPU13、転送管理ユニット14、外部バスインターフェイス16、及びDRAMコントローラ18に対応している。 DMAC211,212 in Figure 24, CPU 213, the transfer management unit 214, the external bus interface 216 and the DRAM controller 218, respectively, of FIG. 1 DMAC11,12, CPU13, the transfer management unit 14, external bus interface 16, and a DRAM controller 18 It corresponds to.
【0141】 [0141]
受信用キャッシュ224、及び送信用キャッシュ227は、例えば1ワードのデータを格納することができるフリップフロップであって、それぞれ受信時及び送信時に、SRAM22のFIFO領域へのアクセスを軽減するための迂回パスとして動作する。 Receiving cache 224, and the transmitting cache 227 is a flip-flop that can store, for example, one word of data, at the time when receiving and transmitting, respectively, alternative path to reduce access to the FIFO areas of the SRAM22 to operate as.
【0142】 [0142]
受信用有効フラグレジスタ225は、受信用キャッシュ224に有効な値が入っているか否かを示す有効フラグVrを格納する1ビットレジスタである。 Reception valid flag register 225 is a 1-bit register for storing an effective flag Vr indicating whether contains a valid value in the reception cache 224. 有効フラグVrは、その値が1のときには受信用キャッシュ224に有効なデータが格納されている状態を表し、その値が0のときには受信用キャッシュ224が空である、すなわち、読み出すべき有効なデータが存在しない状態を表す。 Valid flag Vr, the value represents the state in which valid data to a receiving cache 224 is stored at the time of 1, the receiving cache 224 is empty when the value is 0, i.e., valid data to be read representing a state that but does not exist.
【0143】 [0143]
同様に、送信用有効フラグレジスタ228は、送信用キャッシュ227に有効な値が入っているか否かを示す有効フラグVsを格納する1ビットレジスタである。 Similarly, a transmission enable flag register 228 is a 1-bit register for storing an effective flag Vs indicating whether contains a valid value for transmission cache 227. 有効フラグVsは、その値が1のときには送信用キャッシュ227に有効なデータが格納されている状態を表し、その値が0のときには送信用キャッシュ227が空である、すなわち、読み出すべき有効なデータが存在しない状態を表す。 Valid flag Vs, the value represents the state in which valid data transmission cache 227 is stored at the time of 1, is empty transmission cache 227 when the value is 0, i.e., valid data to be read representing a state that but does not exist.
【0144】 [0144]
図25は、受信用キャッシュ224及び送信用キャッシュ227を備えた場合の、受信時における仮想FIFO及びDMAの動作を示す説明図である。 Figure 25 is a case having a receiving cache 224 and transmit cache 227 is an explanatory diagram showing a virtual FIFO and DMA operation at the time of reception. 受信の場合における図24のデータ伝送装置の一連の動作を以下に説明する。 Illustrating a series of operations of the data transmission apparatus of FIG. 24 in the case of reception below. 受信の場合、受信用キャッシュ224が格納しているデータは、仮想FIFOにFIFOトップのワードとして格納されるべきデータである。 For reception, the data receiving cache 224 has stored is data to be stored as a word of the FIFO top to virtual FIFO. 受信したデータの順を保つために、受信用キャッシュ224が空でなければ、DMAが仮想FIFOに直接書き込むことはできない。 To maintain the order of the received data, if the receiving cache 224 is not empty, DMA can not be written directly to a virtual FIFO. そこで、SRAM22のデータ入力ポートが使われないときを狙って、受信用キャッシュ224のデータを仮想FIFOに書き込むようにする。 Therefore, it aimed at when the data input port of SRAM22 is not used, to write the data of the receiving cache 224 to the virtual FIFO.
【0145】 [0145]
[ステップ1] [Step 1]
外部バスインターフェイス16は、外部バスEBからデータを受信する。 External bus interface 16 receives the data from the external bus EB.
【0146】 [0146]
[ステップ2]SRAMの空きスロットにおけるDMAch1による仮想FIFOへの書き込みSRAM22がアクセスされており、受信用キャッシュ224に空きがない場合、DMAch1は仮想FIFOへの書き込みを待たされる。 [Step 2] and writes to the virtual FIFO by DMAch1 in free slots SRAM SRAM 22 is accessed, if there is no room in the receiving cache 224, DMAch1 is waiting to write to a virtual FIFO. SRAM22がアクセスされており、受信用キャッシュ224に空きがある場合、DMAch1は受信用キャッシュ224へ書き込みを行う。 SRAM22 are accessed, if there is space in the receiving cache 224, DMAch1 performs a write to the receiving cache 224.
【0147】 [0147]
SRAM22がアクセスされておらず、受信用キャッシュ224が空ではない場合、DMAch1は、受信用キャッシュ224のデータをSRAM22へ書き込み、更に受信用キャッシュ224への書き込みを行う。 SRAM 22 is not being accessed, if the receiving cache 224 is not empty, DMAch1 writes the data of the received cache 224 to SRAM 22, further writes to the receiving cache 224. SRAM22がアクセスされておらず、受信用キャッシュ224が空である場合、DMAch1は仮想FIFOへ直接書き込みを行う。 SRAM22 has not been accessed, if the receiving cache 224 is empty, DMAch1 performs writing directly to a virtual FIFO.
【0148】 [0148]
[ステップ3] [Step 3]
SRAM22がCPU13、DMAC11、DMAC12のいずれからもアクセスされていないとき、次の操作のいずれかを実行する。 SRAM22 is CPU 13, DMAC 11, when not being accessed from any DMAC12 of performing one of the following actions.
(1)仮想FIFOがフルでも空でもなく、かつ、受信用キャッシュ224が空でなければ、受信用キャッシュ224のデータを仮想FIFOへ書き込む。 (1) nor the sky also a virtual FIFO is full, and the reception cache 224 is not empty, writes the data of the reception cache 224 to the virtual FIFO.
(2)仮想FIFOが空ではなく送信用キャッシュ227が空である場合、仮想FIFOからデータを読み出し、送信用キャッシュ227へ書き込む。 (2) if the virtual FIFO transmission cache 227 rather than air is empty, it reads data from the virtual FIFO, write to the transmitting cache 227.
【0149】 [0149]
[ステップ4]DMAch2による仮想FIFOからの読み出し送信用キャッシュ227が空ではない場合、DMAch2が送信用キャッシュ227からデータを読み出し、DRAM21へ転送する。 [Step 4] If the read transmission cache 227 from the virtual FIFO by DMAch2 is not empty, it reads data from the transmitting cache 227 DMAch2, transferred to DRAM 21. 送信用キャッシュ227が空である場合、仮想FIFOが空でなく、仮想FIFOに対する他からのアクセスがないサイクルにおいて、DMAch2は仮想FIFOからデータを読み出し、DRAM21へ転送する。 When transmitting the cache 227 is empty, virtual FIFO is not empty, the cycle there is no access from the other with respect to the virtual FIFO, DMAch2 reads the data from the virtual FIFO, and transfers to the DRAM 21.
【0150】 [0150]
仮想FIFOが空ではなく、仮想FIFOがアクセスされている場合、DMAch2は仮想FIFOに対する他からのアクセスが終わるまで待つ。 Virtual FIFO is not empty, if the virtual FIFO is being accessed, DMAch2 waits until the access from the other with respect to the virtual FIFO is completed. 仮想FIFOが空で、かつ受信用キャッシュ224が空ではない場合、DMAch2は受信用キャッシュ224からデータを読み出し、DRAM21へ転送する。 If virtual FIFO is empty, and the reception cache 224 is not empty, DMAch2 reads data from the receive cache 224 is transferred to the DRAM 21. 仮想FIFOが空で、かつ受信用キャッシュ224が空である場合、DMAch2は受信用キャッシュ224に有効データが入るまで待たされる。 If virtual FIFO is empty, and the reception cache 224 is empty, DMAch2 is kept waiting until valid data enters the receive cache 224. [終わり]。 [the end].
【0151】 [0151]
図26は、受信用キャッシュ224及び送信用キャッシュ227を備えた場合の、送信時における仮想FIFO及びDMAの動作を示す説明図である。 26, in the case where a reception cache 224 and transmit cache 227 is an explanatory diagram showing a virtual FIFO and DMA operation at the time of transmission. 送信の場合における図24のデータ伝送装置の一連の動作を以下に説明する。 Illustrating a series of operations of the data transmission apparatus of FIG. 24 in the case of transmission below. 送信の場合、送信用キャッシュ227が格納するデータは、仮想FIFOにFIFOボトムのワードとして格納されていたデータである。 For transmission, the data to be stored in the transmission cache 227 is data stored as FIFO bottom word virtual FIFO. 送信の場合、送信用キャッシュ227にはできる限り有効なデータが格納されているようにする。 For transmission, valid data is so stored as much as possible in the transmission cache 227. 送信用キャッシュ227に有効なデータが入っていない場合は、DMAが仮想FIFOからデータを直接読み出すことができる。 If valid data in the transmission cache 227 is not turned on is, DMA can read the data from the virtual FIFO directly. 仮想FIFOが空でなく、かつ送信用キャッシュ227が空になった場合は、SRAM22のデータ出力ポートが使われないときを狙って、FIFOボトムのワードを送信用キャッシュ227に書き込むようにする。 If the virtual FIFO is not empty, and transmit cache 227 is empty, aimed at when the data output port of SRAM22 is not used, to write the FIFO bottom word in the transmission cache 227.
【0152】 [0152]
[ステップ1]DMAch2による仮想FIFOへの書き込みDMAch2は、DRAM21から読み出したデータを仮想FIFOへ書き込む。 Writing DMAch2 to virtual FIFO by [Step 1] DMAch2 writes the data read from the DRAM21 to the virtual FIFO.
【0153】 [0153]
[ステップ2]仮想FIFOから送信用キャッシュ227への読み出し仮想FIFOが空ではなく、送信用キャッシュ227が空であれば、SRAM22のデータ出力ポートが使われないサイクルにおいて、転送管理ユニット14が仮想FIFOからデータを読み出し、送信用キャッシュ227に書き込む。 [Step 2] rather than the read virtual FIFO is empty to the transmitting cache 227 from the virtual FIFO, if transmission cache 227 is empty, the cycle not used the data output port of the SRAM 22, the transfer management unit 14 is a virtual FIFO It reads data from and writes to the transmission cache 227.
【0154】 [0154]
[ステップ3]DMAch1による仮想FIFOからの読み出し送信用キャッシュ227が空でなければ、DMAch1が送信用キャッシュ227からデータを読み出す。 [Step 3] DMAch1 if not read for transmission cache 227 is empty from the virtual FIFO by, DMAch1 reads data from the transmitting cache 227. 送信用キャッシュ227が空であれば、SRAM22のデータ出力ポートが使われないサイクルにおいて、DMAch1が仮想FIFOからデータを読み出し、外部バスインターフェイス16に転送する。 If the transmission cache 227 is empty, the cycle in which data output port of SRAM22 is not used, DMAch1 reads the data from the virtual FIFO, and transfers to the external bus interface 16.
【0155】 [0155]
[ステップ4] [Step 4]
外部バスインターフェイス16は、仮想FIFOから送られて来たデータを外部バスEBに送信する。 External bus interface 16 transmits the data sent from the virtual FIFO to the external bus EB. [終わり]。 [the end].
【0156】 [0156]
第2の実施形態によると、受信用及び送信用のキャッシュをともに備えるので、DMAによるSRAM22へのトラフィックを削減することができる。 According to a second embodiment, since both provided with a receiving and caching for transmission, it is possible to reduce the traffic to the SRAM22 by DMA.
【0157】 [0157]
なお、受信用又は送信用のキャッシュとして、図20のような複数ワードを格納することができるキャッシュを用いてもよい。 Incidentally, as a receiving or cache for transmission, it may be used cache capable of storing a plurality of words, such as in FIG. 20.
【0158】 [0158]
(第3の実施形態) (Third Embodiment)
第3の実施形態においては、2ポートSRAMを採用することにより、SRAMに対するCPUによるアクセスとDMAによるアクセスとを分離し、アクセスが重なった場合の性能損失を減少させたデータ伝送装置について説明する。 In the third embodiment, by employing the two-port SRAM, and separate the access by the access and DMA by the CPU for SRAM, the data transmission device with reduced performance loss when the access is overlapped explained.
【0159】 [0159]
図27は、本発明の第3の実施形態に係る2つの外部ポートを有するデータ伝送装置の構成の例を示すブロック図である。 Figure 27 is a block diagram showing an example of a configuration of a data transmission device having two external ports according to a third embodiment of the present invention. 図27のデータ伝送装置は、図1のデータ伝送装置において、外部バスインターフェイス16に代えて、外部バスEB1,EB2にそれぞれ接続された外部バスインターフェイス316,317を備え、キャッシュブロック23に代えて、外部バスインターフェイス316,317にそれぞれ接続されたキャッシュブロック323,326を備えている。 Data transmission device in FIG. 27, in the data transmission apparatus of FIG. 1, in place of the external bus interface 16, an external bus interface 316 and 317 which are connected to the external bus EB1, EB2, instead of the cache block 23, and a cache block 323 and 326 which are connected to the external bus interface 316 and 317. 更に、図27のデータ伝送装置は、DMAC11,12に代えて、DMAC311,312,393,394を備え、SRAM22に代えて、2ポートSRAM322を備え、FIFO周辺回路30に代えて、FIFO周辺回路330,370を備えている。 Furthermore, the data transmission apparatus of FIG. 27, instead of the DMAC11,12, comprising a DMAC311,312,393,394, instead of SRAM 22, includes a 2-port SRAM322, instead of the FIFO peripheral circuit 30, FIFO peripheral circuits 330 , it is equipped with a 370.
【0160】 [0160]
キャッシュブロック323,326はキャッシュブロック23と、FIFO周辺回路330,370はFIFO周辺回路30と同様のものである。 Cache block 323 and 326 to the cache block 23, FIFO peripheral circuits 330,370 is similar to the FIFO peripheral circuit 30. また、図27のDMAC311,312、CPU313、転送管理ユニット314、外部バスインターフェイス316、及びDRAMコントローラ318は、それぞれ、図1のDMAC11,12、CPU13、転送管理ユニット14、外部バスインターフェイス16、及びDRAMコントローラ18に対応している。 Further, DMAC311,312 in FIG 27, CPU 313, the transfer management unit 314, the external bus interface 316 and the DRAM controller 318, respectively, DMAC11,12 in FIG 1, CPU 13, the transfer management unit 14, external bus interface 16, and DRAM It corresponds to the controller 18. 外部バスEB1,EB2は、例えば、IEEE1394規格によるバスであるとする。 External bus EB1, EB2, for example, and a bus complying with the IEEE1394 standards.
【0161】 [0161]
図28は、外部ポートとDMAの4つのチャネルとの関係を示す説明図である。 Figure 28 is an explanatory diagram showing a relationship between the external port and the DMA four channels. 図28のように、図27のデータ伝送装置は、4つのDMAチャネルを用いて、外部バスEB1(外部ポート1)及び外部バスEB2(外部ポート2)との間でデータ転送を行う。 As shown in FIG. 28, the data transmission apparatus of FIG. 27, using the four DMA channels, performs data transfer with the external bus EB1 (external port 1) and the external bus EB2 (external port 2). DMAC311,312,393,394は、それぞれDMAch1、DMAch2、DMAch3、DMAch4によるデータ転送を制御する。 DMAC311,312,393,394 each DMAch1, DMAch2, DMAch3, controls the data transfer by DMAch4.
【0162】 [0162]
外部ポート1との間でデータ転送を行うDMAch1及びDMAch2は、SRAM322の第1のポートを用いることができる。 DMAch1 and DMAch2 for transferring data between an external port 1, it is possible to use a first port of SRAM322. 外部ポート2との間でデータ転送を行うDMAch3及びDMAch4は、SRAM322の第2のポートを用いることができる。 DMAch3 and DMAch4 for transferring data between an external port 2 may use the second port of SRAM322. CPU313は、SRAM322の第1及び第2のポートを用いることができる。 CPU313 may use the first and second ports of SRAM322. また、DMAch1及びDMAch2は、キャッシュブロック323を用い、DMAch3及びDMAch4は、キャッシュブロック326を用いる。 Further, DMAch1 and DMAch2 uses a cache block 323, DMAch3 and DMAch4 uses cache block 326.
【0163】 [0163]
外部ポート1を経由する通信と、外部ポート2を経由する通信とは独立に発生するので、双方向キャッシュがなければ、DMAch1又はDMAch2によるSRAM322へのアクセスと、DMAch3又はDMAch4によるSRAM322へのアクセスとが同時に生じる頻度が高い。 And communication via the external port 1, since the generated independent of the communication via the external port 2, if there is no two-way cache, and access to SRAM322 by DMAch1 or DMAch2, and access to SRAM322 by DMAch3 or DMAch4 but more frequently it occurs at the same time. 図27のデータ伝送装置は、各外部ポートとDRAM321との間の転送パスに双方向キャッシュを備えているので、SRAM322に対するアクセス時の干渉をほとんど回避することができる。 Data transmission device in FIG 27 is provided with the bidirectional cache transfer path between each external port and DRAM321, it is possible to almost avoid interference during access to SRAM322.
【0164】 [0164]
図29は、図27のデータ伝送装置における仮想FIFOの構成を示す概念図である。 Figure 29 is a conceptual diagram showing a configuration of a virtual FIFO in the data transmission apparatus of FIG. 27. SRAM322は、CPU使用領域CRと、第1のFIFO領域FR1と、第2のFIFO領域FR2とを有している。 SRAM322 includes a CPU used area CR, the first FIFO area FR1, and a second FIFO area FR2.
【0165】 [0165]
セレクタ357は、FIFO周辺回路330が出力する、DMAch1又はDMAch2で用いるアドレス信号FAD1と、CPU313のアドレス信号CADとのうちのいずれか一方を選択し、アドレス信号SAD1としてSRAM322の第1のポートに出力する。 The selector 357 outputs FIFO peripheral circuit 330, an address signal FAD1 used in DMAch1 or DMAch2, selects either the address signal CAD of CPU 313, output to the first port of SRAM322 as an address signal SAD1 to. DMAch1及びDMAch2は、第1のFIFO領域FR1を用いることができる。 DMAch1 and DMAch2 may be used first FIFO area FR1.
【0166】 [0166]
セレクタ367は、FIFO周辺回路370が出力する、DMAch3又はDMAch4で用いるアドレス信号FAD2と、CPU313のアドレス信号CADとのうちのいずれか一方を選択し、アドレス信号SAD2としてSRAM322の第2のポートに出力する。 The selector 367 outputs the FIFO peripheral circuit 370, an address signal FAD2 used in DMAch3 or DMAch4, selects either the address signal CAD of CPU 313, output to the second port of SRAM322 as an address signal SAD2 to. DMAch3及びDMAch4は、第2のFIFO領域FR2を用いることができる。 DMAch3 and DMAch4 can use a second FIFO area FR2. 転送管理ユニット314は、セレクタ357,367を制御している。 Transfer management unit 314 controls the selector 357, 367.
【0167】 [0167]
本実施形態によれば、2ポートSRAMを用いるのでシステムコストは少し高くなるが、CPU313はSRAM322へ常に1サイクルでアクセスできるので、CPU313の処理性能が向上し、実時間性を確保するプログラムの開発が容易になる。 According to this embodiment, the system cost is slightly higher because using two-port SRAM, since CPU 313 can be accessed at all times one cycle to SRAM322, improves processing performance of CPU 313, the development program to ensure the real time it becomes easy.
【0168】 [0168]
図30は、2ポートSRAMを備え、1つの外部ポートを有するデータ伝送装置の構成の例を示すブロック図である。 Figure 30 includes a two-port SRAM, a block diagram illustrating an example of a configuration of a data transmission device having a single external port. 図30のデータ伝送装置は、図1のデータ伝送装置において、SRAM22に代えて2ポートSRAM422を備え、かつ、キャッシュブロック23を省いたものである。 Data transmission device in FIG. 30, in the data transmission apparatus of FIG. 1, includes a 2-port SRAM422 instead of SRAM 22, and, in which omitting cache block 23.
【0169】 [0169]
CPU413は、SRAM422の第1のポートを用いることができる。 CPU413 may use a first port of SRAM422. DMAch1及びDMAch2は、SRAM422の第2のポートを用いることができる。 DMAch1 and DMAch2 can use a second port of SRAM422. このように、SRAM422は2ポートを備えているので、CPU413とDMAとの間のSRAM422に対するアクセス競合を解消することができる。 Thus, SRAM422 is is provided with the two ports, it is possible to solve the access conflict for SRAM422 between CPU413 and DMA. DMAch1とDMAch2のアクセスが重なる場合は、DMAch2の方が待たされるものとする。 If you DMAch1 and DMAch2 access of overlap, it is assumed that the people of DMAch2 is wait.
【0170】 [0170]
図30のデータ伝送装置のように、双方向キャッシュを使わない場合であっても、SRAM422に対するDMAch1とDMAch2とのアクセスが競合することによる性能劣化は、1ポートのSRAM及び双方向キャッシュを用いた場合と同等であり、許容できる程度である。 As the data transmission apparatus of FIG. 30, even when not using bidirectional cache, performance degradation due to access between DMAch1 and DMAch2 for SRAM422 conflict, with SRAM and two-way cache 1 port If it is equivalent to a acceptable degree. 特に、外部バスEB上のデータ転送レートがデータ伝送装置の内部のデータ転送レートに対して比較的低い場合は、双方向キャッシュを使う必要はない。 In particular, when the data transfer rate on the external bus EB is relatively low with respect to the internal data transfer rate of the data transmission apparatus is not required to use a two-way cache. もっとも、双方向キャッシュを用いると、図1のデータ伝送装置と同様に、DMAch1とDMAch2との間のアクセス競合による性能劣化を無視できる程度に小さくすることができる。 However, the use of two-way cache, as well as data transmission apparatus of FIG. 1, can be reduced to a negligible performance degradation due to access conflicts between DMAch1 and DMAch2.
【0171】 [0171]
なお、2ポートSRAMを採用しない場合であっても、2つの外部バスを接続できるデータ伝送装置を実現することができる。 Even when not employing the two-port SRAM, it is possible to realize a data transmission apparatus that can connect two external bus. この場合、CPUからSRAMへのアクセスにおいて、平均的なサイクル数は1サイクルに近いが、最悪の場合は4ウェイトが挿入される。 In this case, the access from the CPU to the SRAM, is close to the average number of cycles 1 cycle, the worst case 4 weight is inserted. また外部2ポートに限らず、外部3ポート以上のデータ伝送装置も同様にして実現することができる。 Not limited to the outside 2 port, it can be realized in the same manner the data transmission device or the external 3 port.
【0172】 [0172]
(第4の実施形態) (Fourth Embodiment)
第4の実施形態においては、図1のSRAM22に代えて、高速に動作するSRAM522を有するSRAM部570を用いる場合について説明する。 In the fourth embodiment, instead of the SRAM22 in FIG 1, the case of using SRAM 570 having a SRAM522 that operates at a high speed.
【0173】 [0173]
図31は、本発明の第4の実施形態に係るデータ伝送装置のSRAM部570のブロック図である。 Figure 31 is a block diagram of an SRAM unit 570 of the data transmission apparatus according to a fourth embodiment of the present invention. 図31のSRAM部570は、SRAM522と、レジスタ571,572,573,574,576,577,578,579と、データパス選択器582と、アドレス選択器584とを備えている。 SRAM 570 of FIG. 31, a SRAM522, a register 571,572,573,574,576,577,578,579, a data path selector 582, and an address selector 584.
【0174】 [0174]
SRAM522には、周波数が、データ伝送装置の基本クロックCLKx1の4倍であるクロックCLKx4が入力されており、SRAM522は、図1のSRAM22の4倍の速度で動作する。 The SRAM522, frequency, and clock CLKx4 is input four times the basic clock CLKx1 of the data transmission apparatus, SRAM522 operates at four times the speed of SRAM22 in FIG. ここで、基本クロックCLKx1は、システム制御手段、外部バスインターフェイス、及びDRAM等の動作の基準となるクロックである。 Here, the basic clock CLKx1, the system control means, the external bus interface, and a clock serving as a reference for the operation, such as DRAM.
【0175】 [0175]
図32は、SRAM部570の各クロックの関係を示すタイミング図である。 Figure 32 is a timing diagram showing each clock relationships SRAM 570. 図32に示されているように、基本クロックCLKx1の1周期中に4個のスロットφ1,φ2,φ3,φ4を設けるため、SRAM部570では、各スロットにそれぞれ対応するパルスを有する4相のクロックCLKx4_1,CLKx4_2,CLKx4_3,CLKx4_4が用いられる。 As shown in FIG. 32, four slots φ1 during one period of the basic clock CLKX1, .phi.2, .phi.3, ​​for providing the .phi.4, the SRAM 570, the four-phase having a pulse corresponding to each slot clock CLKx4_1, CLKx4_2, CLKx4_3, CLKx4_4 is used. これらの4相のクロックは、クロックCLKx4に基づいて生成され、周期が基本クロックCLKx1に等しい。 These four-phase clock is generated based on the clock CLKx4, period is equal to the basic clock CLKX1.
【0176】 [0176]
データパス選択器582は、4相のクロックCLKx4_1,CLKx4_2,CLKx4_3,CLKx4_4のそれぞれに同期して、4系統のデータ入力SDIφ1,SDIφ2,SDIφ3,SDIφ4のうちの対応するものを選択し、SRAM522に出力する。 Datapath selector 582, the four-phase clock CLKx4_1, CLKx4_2, CLKx4_3, in synchronization with each CLKx4_4, 4 strains of the data input SDIφ1, SDIφ2, SDIφ3, select a corresponding one of the SDIfai4, output SRAM522 to.
【0177】 [0177]
アドレス選択器584は、4相のクロックCLKx4_1,CLKx4_2,CLKx4_3,CLKx4_4のそれぞれに同期して、4系統のアドレス入力SADφ1,SADφ2,SADφ3,SADφ4のうちの対応するものを選択し、SRAM522に出力する。 Address selector 584, four-phase clocks CLKx4_1, CLKx4_2, CLKx4_3, in synchronization with each CLKx4_4, 4 strains of address input SADφ1, SADφ2, SADφ3, select a corresponding one of the SADfai4, and outputs the SRAM522 . ここで、アドレス入力SADφ1〜SADφ4には、SRAM522の制御信号が含まれている。 Here, the address input SADfai1~SADfai4, contains control signals SRAM522.
【0178】 [0178]
データパス選択器582が選択したデータは、アドレス選択器584が選択したアドレスに従って、SRAM522に書き込まれる。 Data datapath selector 582 selects, in accordance with an address which the address selector 584 has selected and written to SRAM522.
【0179】 [0179]
レジスタ571〜574には、SRAM522の出力の他に、クロックCLKx4_1,CLKx4_2,CLKx4_3,CLKx4_4がそれぞれ入力されている。 The register 571-574, along with the output of SRAM522, clock CLKx4_1, CLKx4_2, CLKx4_3, CLKx4_4 is inputted. レジスタ571〜574は、それぞれ入力されたクロックに同期して、SRAM522がクロックCLKx4に同期して出力するデータを格納する。 Register 571-574 is in synchronism with the clock input respectively, SRAM522 stores the data to be output in synchronization with a clock CLKx4. レジスタ576〜579には、基本クロックCLKx1の他に、レジスタ571〜574の出力がそれぞれ入力されている。 The register 576-579, in addition to the basic clock CLKX1, the output of the register 571-574 is inputted. レジスタ576〜579は、基本クロックCLKx1に同期して、それぞれのデータを出力する。 Register 576-579 is in synchronization with the basic clock CLKX1, and outputs the respective data.
【0180】 [0180]
図33は、図31のレジスタ間のデータフローを示すタイミング図である。 Figure 33 is a timing diagram illustrating the data flow between registers in FIG. 31. 基本サイクル(基本クロックCLKx1の1周期)内のスロットφ1,φ2,φ3,φ4において各レジスタ571〜574にデータが格納され、これらのデータは、その次の基本サイクルの先頭で基本クロックCLKx1に同期してレジスタ576〜579にそれぞれ格納され、出力される。 Slot φ1 in the basic cycle (one period of the basic clock CLKX1), .phi.2, .phi.3, ​​data is stored in each register 571-574 in .phi.4, these data are synchronized with the basic clock CLKX1 at the beginning of the next basic cycle and respectively stored in the registers 576 to 579 and are outputted.
【0181】 [0181]
このように、SRAM522が基本クロックの例えば4倍の速度で動作すれば、基本クロックCLKx1に従って動作する最大で4つのアクセス主体が、基本サイクル毎にSRAM522にアクセスできるようになる。 Thus, if SRAM522 operate with for example four times the rate of the basic clock, four access subject at the maximum operating according to the basic clock CLKx1 becomes to access SRAM522 every basic cycle. この場合、SRAM522の性能は、基本クロックCLKx1に従って動作する4ポートのSRAMの性能と同等である。 In this case, the performance of SRAM522 is equivalent to 4 ports of SRAM performance which operates in accordance with the basic clock CLKX1. ただし、図33に示されているように、データを基本クロックCLKx1に同期させて出力する必要があるため、読み出しのレイテンシは1サイクル増える。 However, as shown in Figure 33, it is necessary to output to synchronize the data with the basic clock CLKX1, latency read more 1 cycle.
【0182】 [0182]
図34は、本発明の第4の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 Figure 34 is a block diagram showing an example of a configuration of a data transmission apparatus according to a fourth embodiment of the present invention. 図34のデータ伝送装置は、図1のデータ伝送装置において、SRAM22に代えてSRAM部570を備え、かつ、キャッシュブロック23を省いたものである。 Data transmission device in FIG. 34, in the data transmission apparatus of FIG. 1, includes an SRAM unit 570 instead of the SRAM 22, and, in which omitting cache block 23. 図34のDMAC511,512、CPU513、転送管理ユニット514、外部バスインターフェイス516、及びDRAMコントローラ518は、それぞれ、図1のDMAC11,12、CPU13、転送管理ユニット14、外部バスインターフェイス16、及びDRAMコントローラ18に対応している。 DMAC511,512 in Figure 34, CPU 513, the transfer management unit 514, the external bus interface 516 and the DRAM controller 518, respectively, of FIG. 1 DMAC11,12, CPU13, the transfer management unit 14, external bus interface 16, and a DRAM controller 18 It corresponds to. また、FIFO周辺回路530は、図1のFIFO周辺回路30に対応している。 Also, FIFO peripheral circuit 530 corresponds to the FIFO peripheral circuit 30 of FIG. 1.
【0183】 [0183]
図34のデータ伝送装置においては、SRAM部570に対するアクセス主体はDMAC511及び512のいずれか一方と、CPU513とである。 In the data transmission apparatus of FIG. 34, the access subject for the SRAM unit 570 one and one of the DMAC511 and 512, a CPU513 Doo. CPU513は、スロットφ1において、DMAC511又は512は、スロットφ2においてSRAM522にアクセスしている。 CPU513 is in the slot .phi.1, DMAC511 or 512 accessing the SRAM522 in the slot .phi.2.
【0184】 [0184]
なお、使用されるスロットは、スロットφ1〜φ4のうちのいずれの2つであってもよい。 Incidentally, the slot to be used, may be two of any of the slots .phi.1 to .phi.4. また、アクセス主体が2つであるので、SRAM部570に代えて、SRAMに基本クロックCLKx1の2倍の周波数を有するクロックを与え、SRAMを図1のSRAM22の2倍の速度で動作させるようにしたSRAM部を用いてもよい。 Moreover, since the access subject is two, instead of the SRAM unit 570 provides a clock having twice the frequency of the fundamental clock CLKx1 the SRAM, to operate the SRAM at twice the speed of SRAM22 in FIG it may be used by the SRAM portion. この場合、SRAM部は、周期が基本クロックCLKx1に等しい2相のクロックCLKx2_1,CLKx2_2を用い、これらのクロックに対応したレジスタ等を備えればよい。 In this case, SRAM portion, the period of two phases is equal to the basic clock CLKx1 clock CLKx2_1, using CLKx2_2, it Sonaere of the registers corresponding to these clocks.
【0185】 [0185]
第4の実施形態によると、SRAMからの読み出しのレイテンシが1サイクルになるので、例えばCPU513がSRAM522へ書き込む場合は0ウェイトに、CPU513がSRAM522から読み出す場合は1ウェイトになるように、転送管理ユニット514がSRAM522へのアクセスのタイミングを制御する。 According to the fourth embodiment, since the latency of the read from SRAM is one cycle, for example, 0 wait if CPU513 writes to SRAM522, so as to be 1 weight if CPU513 reads from SRAM522, transfer management unit 514 controls the timing of access to SRAM522. 図34のデータ伝送装置は、図30のデータ伝送装置とほぼ同等の動作をするものであり、SRAM部570は、複数のポートを有するSRAMに相当する機能を有するということができる。 Data transmission device in FIG. 34 is for substantially the same operation as the data transmission apparatus of FIG. 30, SRAM 570 may be said to have a function equivalent to SRAM having a plurality of ports.
【0186】 [0186]
(第5の実施形態) (Fifth Embodiment)
第5の実施形態においては、オン・ザ・フライ(on the fly)で転送中のパケットを解析する受信用フィルタを備えたデータ伝送装置について説明する。 In the fifth embodiment, the data transmission apparatus having a reception filter for analyzing the packets in transit on the fly (on the fly) is described.
【0187】 [0187]
図35は、本発明の第5の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 Figure 35 is a block diagram showing an example of a configuration of a data transmission apparatus according to a fifth embodiment of the present invention. 図35のデータ伝送装置は、図1のデータ伝送装置において、受信用フィルタ619と、割込みコントローラ620とを更に備えたものである。 Data transmission device in FIG. 35, in the data transmission apparatus of FIG. 1, the receiving filter 619, in which further comprising an interrupt controller 620.
【0188】 [0188]
図35のDMAC611,612、CPU613、転送管理ユニット614、外部バスインターフェイス616、及びDRAMコントローラ618は、それぞれ、図1のDMAC11,12、CPU13、転送管理ユニット14、外部バスインターフェイス16、及びDRAMコントローラ18に対応している。 DMAC611,612 in Figure 35, CPU613, the transfer management unit 614, the external bus interface 616 and the DRAM controller 618, respectively, of FIG. 1 DMAC11,12, CPU13, the transfer management unit 14, external bus interface 16, and a DRAM controller 18 It corresponds to. また、キャッシュブロック623、及びFIFO周辺回路630は、それぞれ図1のキャッシュブロック23、及びFIFO周辺回路30に対応している。 The cache block 623 and the FIFO peripheral circuit 630, corresponds to the cache block 23 and the FIFO peripheral circuit 30, shown in FIG. 1, respectively.
【0189】 [0189]
外部バスインターフェイス616は、パケットと呼ばれる単位毎に外部バスEBとの間でデータを送受信する。 External bus interface 616 transmits and receives data to and from the external bus EB for each unit called a packet. パケットは、データ部と、そのパケットの属性が記述されたヘッダとを有する。 Packet includes a data portion and a header attribute is described in the packet. データ部は、転送されるべきデータであるペイロードと、ペイロードに生じた伝送誤りを検出又は訂正するためのパリティとを有する。 Data unit includes a payload which is data to be transferred, and a parity for detecting or correcting transmission errors occurring in the payload.
【0190】 [0190]
受信用フィルタ619は、外部バスインターフェイス616が外部バスから受信したデータを受け取り、パケットのヘッダとデータ部とを分離する。 Receiving filter 619 receives data of an external bus interface 616 receives from the external bus, to separate the header and the data portion of the packet. 受信用フィルタ619は、CPU613による処理が必要なヘッダをSRAM622のページテーブルに格納させ、CPU613による処理が不要であるデータ部をFIFO領域を経由させてDRAM621に格納させる。 Receiving filter 619, it is stored in the header processing is required by the CPU613 to SRAM622 page table, and stores the DRAM621 by way of the FIFO area data unit processing by CPU613 is unnecessary.
【0191】 [0191]
図36は、SRAM622のパケットページテーブルに関する概念図である。 Figure 36 is a conceptual diagram relating to a packet page table SRAM622. 図35及び図36を参照して、受信の場合における図36のデータ伝送装置の動作について説明する。 With reference to FIGS. 35 and 36, the operation of the data transmission apparatus of FIG. 36 in the case of reception.
【0192】 [0192]
[ステップ1] [Step 1]
外部バスインターフェイス回路616は、外部バスEBからパケットを受信し、受信用フィルタ619経由でSRAM622に向けて転送する。 External bus interface circuit 616 receives the packet from the external bus EB, transfers toward SRAM622 via receive filter 619.
【0193】 [0193]
[ステップ2] [Step 2]
受信用フィルタ619は、ステップ1で転送中のパケットを調べ、ヘッダ開始、ペイロード開始、パケット受信終了等の時刻を検知する。 Receiving filter 619 examines the packet being transferred in step 1, the header starts, the payload start, to detect the time of the packet reception end, and the like.
【0194】 [0194]
[ステップ3] [Step 3]
受信用フィルタ619が検知した結果に従って、転送管理ユニット614は、ヘッダをSRAM622のCPU使用領域に格納させ、ペイロードについては転送経路を変更して、これをDRAM621に格納させる。 According to the result receiving filter 619 has detected, the transfer management unit 614 causes the stored header CPU used area of ​​SRAM622, for the payload is by changing the transfer route, and stores it in DRAM621. ヘッダをFIFO領域に格納しないので、ヘッダをSRAM622に書き込む際には、双方向キャッシュ624を働かせることはできない。 Does not store the header in the FIFO area, when writing a header to SRAM622 can not exert a bidirectional cache 624. ペイロードの転送は、DMAC611がDMAch1によって行い、仮想FIFOや双方向キャッシュ624を働かせる。 Forwarding payload, DMAC611 is done by DMAch1, it exerts a virtual FIFO and interactive cache 624.
【0195】 [0195]
[ステップ4] [Step 4]
パケットの書き込みが終了すると、DMAC611は転送終了割り込みを発生させる。 When the writing of the packet is completed, DMAC611 generates a transfer end interrupt. 割り込みコントローラ620は、この割り込みをCPU613に対して通知する。 Interrupt controller 620 notifies the interrupt to CPU613.
【0196】 [0196]
[ステップ5] [Step 5]
割り込み処理ルーチンの中において、CPU613は、ヘッダを解析してペイロードのサイズやパケットの種類等の情報を得る。 In the interrupt handler routine, CPU613 may obtain information such as the type size and packet payload analyzes the header. また、ヘッダとペイロードとを関連付けるために、CPU613は、SRAM622のページテーブル内に格納されたヘッダに、同一のパケットに含まれていたペイロードへのポインタを追加する。 Further, to associate a header and a payload, CPU613 is the header stored in the SRAM622 page table, adding a pointer to the payload contained in the same packet. 例えば、ヘッダaとペイロードaとが同一のパケットに含まれていたとすると、DRAM621に格納されたペイロードaのアドレスを示すポインタをヘッダaに追加する。 For example, the header a and a payload a assuming that contained in the same packet, adds a pointer to the address of the payload a stored in DRAM621 the header a. ペイロードの大きさの情報は、あらかじめヘッダ部に含まれているので付加しなくてよい。 Size information of the payload may not be added because it contains in advance the header portion. このように、DRAM621内の複数のペイロードは、SRAM622のページテーブルにより管理される。 Thus, a plurality of payload in DRAM621 is managed by the page table of SRAM622.
【0197】 [0197]
[ステップ6] [Step 6]
他のDMAchによる転送等をするために、DMAC612等の他の転送制御装置からDRAM621内のペイロードに対する受け取り要求を受け取ると、CPU613は、ペイロードの位置と大きさをその転送制御装置に伝える。 To transfer due another DMAch, when receiving the receive request for a payload in DRAM621 from another transfer control device such DMAC612, CPU613 conveys the position and size of the payload to the transfer controller. その転送制御装置は、ペイロードの転送を開始する。 The transfer control unit starts the transfer of the payload.
【0198】 [0198]
[ステップ7] [Step 7]
DRAM621内のペイロードの読み出しが終了すると、割り込みコントローラ620は、CPU613に割り込みを通知する。 When the payload read in DRAM621 is completed, the interrupt controller 620 notifies the interrupt CPU613. 割り込み処理ルーチンの中において、CPU613は、読み出されたペイロードを含むパケットに対するSRAM622のページテーブル内のエントリを抹消する。 In the interrupt handler routine, CPU613 may deletes the entry in SRAM622 page table for the packet containing the read payload. [終わり]。 [the end].
【0199】 [0199]
このように、ヘッダをSRAM622のCPU使用領域に直接書き込むので、パケットを全てDRAM621に転送した後、CPU613がヘッダを解析するために、ヘッダをSRAM622へ転送する場合と比べると、DRAM621からSRAM622へヘッダを転送する処理が不要になる。 Thus, since the directly written header to CPU used area of ​​SRAM622, after transferring all packets DRAM621, for CPU613 parses header, compared with the case of transferring the header to SRAM622, headers from DRAM621 to SRAM622 the process of transfer is unnecessary. また、ヘッダは、SRAM622のページテーブルに直接書き込まれ、FIFO領域を経由することがないので、SRAM622のトラフィックを低減することができる。 The header is written directly in the page table of SRAM622, since there is no passing through the FIFO area, it is possible to reduce the traffic of SRAM622.
【0200】 [0200]
送信時においては、ほぼ受信時の逆の手順で動作するが、ヘッダとペイロードとは別個に生成されるので、送信用フィルタは必要ない。 During the transmission may operate at approximately the time of receiving the reverse procedure, since the header and the payload are separately generated, the transmission filter is not required.
【0201】 [0201]
なお、外部バスEB,EB1,EB2は、IEEE1394規格によるバスであるとして説明したが、USB、ATAPI、SCSI、Bluetooth等の他の標準バスであってもよい。 The external bus EB, EB1, EB2 is described as a bus according to IEEE1394 standard, USB, ATAPI, SCSI, may be another standard bus such as Bluetooth.
【0202】 [0202]
【発明の効果】 【Effect of the invention】
以上のように、本発明によると、CPU等が使用するメモリと、転送されるデータを一時的に格納するFIFOバッファとを一体化し、データ伝送装置の回路規模を削減することができる。 As described above, according to the present invention can be integrated with a memory which CPU or the like is used, and a FIFO buffer for temporarily storing data to be transferred, to reduce the circuit scale of the data transmission device. したがって、システムLSIに、外部バスとの間のインターフェイスをするデータ伝送装置を内蔵した場合に、コスト削減及び低消費電力化を図ることができる。 Therefore, the system LSI, in the case of a built-in data transmission device for the interface between the external bus, it is possible to reduce the cost and power consumption.
【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS
【図1】本発明の第1の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 1 is a block diagram showing an example of a configuration of a data transmission apparatus according to a first embodiment of the present invention.
【図2】仮想FIFOの構成を示すブロック図である。 2 is a block diagram showing the configuration of a virtual FIFO.
【図3】FIFO領域と各ポインタとの関係の一例を示す説明図である。 3 is an explanatory diagram showing an example of the relationship between the FIFO areas and each pointer.
【図4】仮想FIFOのフルフラグを求める際の論理を示す説明図である。 4 is an explanatory diagram showing a logic for obtaining the full flag of the virtual FIFO.
【図5】FIFO領域と各ポインタとの関係の他の例を示す説明図である。 5 is an explanatory diagram showing another example of the relationship between FIFO area and each pointer.
【図6】書き込みポインタ更新アルゴリズムを示す説明図である。 6 is an explanatory diagram showing a write pointer update algorithm.
【図7】読み出しポインタ更新アルゴリズムを示す説明図である。 7 is an explanatory diagram showing a read pointer update algorithm.
【図8】受信時における仮想FIFO及びDMAの動作を示す説明図である。 8 is an explanatory diagram showing a virtual FIFO and DMA operation at the time of reception.
【図9】送信時における仮想FIFO及びDMAの動作を示す説明図である。 9 is an explanatory diagram showing a virtual FIFO and DMA operation at the time of transmission.
【図10】仮想FIFOが空ではない状態で、3つのアクセス主体がSRAMに常にアクセスしている場合の仮想FIFO及びDMAの動作を示す説明図である。 [10] while the virtual FIFO is not empty, an explanatory diagram showing a virtual FIFO and DMA operations when three access entities is always access the SRAM.
【図11】DMAch1が一時的に停止した場合の仮想FIFO及びDMAの動作を示す説明図である。 [11] DMAch1 is an explanatory diagram showing a virtual FIFO and DMA operations of temporary stop.
【図12】DMAch2が一時的に停止した場合の仮想FIFO及びDMAの動作を示す説明図である。 [12] DMAch2 is an explanatory diagram showing a virtual FIFO and DMA operations of temporary stop.
【図13】CPUが一時的に停止した場合の仮想FIFO及びDMAの動作を示す説明図である。 13 is an explanatory diagram showing a virtual FIFO and DMA operations when the CPU is temporarily stopped.
【図14】CPUの動作が再開した場合の仮想FIFO及びDMAの動作を示す説明図である。 14 is an explanatory diagram showing a virtual FIFO and DMA operations when the operation of the CPU has been restarted.
【図15】空きサイクルにおいて、双方向キャッシュが仮想FIFOにデータを転送する場合の仮想FIFO及びDMAの動作を示す説明図である。 [15] In the empty cycle is an explanatory diagram showing a virtual FIFO and DMA behavior when bidirectional cache transfers the data to the virtual FIFO.
【図16】空きサイクルにおいて、双方向キャッシュが仮想FIFOにデータを転送しない場合の仮想FIFO及びDMAの動作を示す説明図である。 [16] In the empty cycle is an explanatory diagram showing a virtual FIFO and DMA behavior when bidirectional cache does not transfer data to the virtual FIFO.
【図17】双方向キャッシュを経由せず、仮想FIFOへ直接書き込みを行う場合の仮想FIFO及びDMAの動作を示す説明図である。 [17] without going through the two-way cache is an explanatory diagram showing a virtual FIFO and DMA behavior when a direct write to the virtual FIFO.
【図18】双方向キャッシュへ書き込みを行う場合の仮想FIFO及びDMAの動作を示す説明図である。 18 is an explanatory diagram showing a virtual FIFO and DMA operations when writing to bidirectional cache.
【図19】送信時に、空きサイクルにおいて、仮想FIFOが双方向キャッシュにデータを転送する場合の仮想FIFO及びDMAの動作を示す説明図である。 In [19] During transmission, the idle cycle is an explanatory diagram showing a virtual FIFO and DMA behavior when virtual FIFO transfers data bidirectionally cache.
【図20】第1の実施形態の第1の変形例に係る双方向キャッシュのブロック図である。 FIG. 20 is a block diagram of a bidirectional cache according to a first modification of the first embodiment.
【図21】複数のワードを格納できる双方向キャッシュを備えた場合の、受信時における仮想FIFO及びDMAの動作を示す説明図である。 [Figure 21] in the case of a bidirectional cache capable of storing a plurality of words is an explanatory diagram showing a virtual FIFO and DMA operation at the time of reception.
【図22】複数のワードを格納できる双方向キャッシュを備えた場合の、送信時における仮想FIFO及びDMAの動作を示す説明図である。 [Figure 22] in the case of a bidirectional cache capable of storing a plurality of words is an explanatory diagram showing a virtual FIFO and DMA operation at the time of transmission.
【図23】第1の実施形態の第2の変形例に係るデータ伝送装置のブロック図である。 FIG. 23 is a block diagram of a data transmission apparatus according to a second modification of the first embodiment.
【図24】本発明の第2の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 Is a block diagram showing an example of a configuration of a data transmission apparatus according to a second embodiment of Figure 24 the present invention.
【図25】受信用キャッシュ及び送信用キャッシュを備えた場合の、受信時における仮想FIFO及びDMAの動作を示す説明図である。 [Figure 25] in the case of a receiving cache and transmit cache is an explanatory diagram showing a virtual FIFO and DMA operation at the time of reception.
【図26】受信用キャッシュ及び送信用キャッシュを備えた場合の、送信時における仮想FIFO及びDMAの動作を示す説明図である。 [Figure 26] in the case of a receiving cache and transmit cache is an explanatory diagram showing a virtual FIFO and DMA operation at the time of transmission.
【図27】本発明の第3の実施形態に係る2つの外部ポートを有するデータ伝送装置の構成の例を示すブロック図である。 FIG. 27 is a block diagram showing an example of a configuration of a data transmission device having two external ports according to a third embodiment of the present invention.
【図28】外部ポートとDMAの4つのチャネルとの関係を示す説明図である。 FIG. 28 is an explanatory diagram showing the relationship between the external ports and DMA four channels.
【図29】図27のデータ伝送装置における仮想FIFOの構成を示す概念図である。 It is a conceptual diagram showing a configuration of a virtual FIFO in the data transmission apparatus of FIG. 29 FIG. 27.
【図30】2ポートSRAMを備え、1つの外部ポートを有するデータ伝送装置の構成の例を示すブロック図である。 [Figure 30] comprises a two-port SRAM, a block diagram illustrating an example of a configuration of a data transmission device having a single external port.
【図31】本発明の第4の実施形態に係るデータ伝送装置のSRAM部のブロック図である。 FIG. 31 is a block diagram of the SRAM portion of the data transmission apparatus according to a fourth embodiment of the present invention.
【図32】SRAM部の各クロックの関係を示すタイミング図である。 FIG. 32 is a timing diagram showing the relationship between the clock of the SRAM portion.
【図33】図31のレジスタ間のデータフローを示すタイミング図である。 33 is a timing diagram illustrating the data flow between registers in FIG. 31.
【図34】本発明の第4の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 FIG. 34 is a block diagram showing an example of a configuration of a data transmission apparatus according to a fourth embodiment of the present invention.
【図35】本発明の第5の実施形態に係るデータ伝送装置の構成の例を示すブロック図である。 FIG. 35 is a block diagram showing an example of a configuration of a data transmission apparatus according to a fifth embodiment of the present invention.
【図36】SRAMのパケットページテーブルに関する概念図である。 FIG. 36 is a conceptual diagram for the SRAM of packet page table.
【図37】従来のデータ伝送装置の構成の例を示すブロック図である。 FIG. 37 is a block diagram showing an example of a configuration of a conventional data transmission device.
【符号の説明】 DESCRIPTION OF SYMBOLS
11,12,111,112,211,212,311,312,393,394,411,412,511,512,611,612 DMAコントローラ13,113,213,313,413,513,613 CPU(システム制御手段) 11,12,111,112,211,212,311,312,393,394,411,412,511,512,611,612 DMA controller 13,113,213,313,413,513,613 CPU (system control means)
14,114,214,314,414,514,614 転送管理ユニット(転送管理手段) 14,114,214,314,414,514,614 transfer management unit (transfer management unit)
16,116,216,316,317,416,516,616 外部バスインターフェイス18 DRAMコントローラ21,321,421,521,621 DRAM 16,116,216,316,317,416,516,616 external bus interface 18 DRAM controller 21,321,421,521,621 DRAM
22,322,422,522,622 SRAM 22,322,422,522,622 SRAM
24,324,327,624 双方向キャッシュ30,330,370,430,530,630 FIFO周辺回路31〜36 レジスタ224 受信用キャッシュ227 送信用キャッシュ570 SRAM部619 受信用フィルタ620 割り込みコントローラ 24,324,327,624 bidirectional cache 30,330,370,430,530,630 FIFO peripheral circuits 31-36 register 224 receives cache 227 for transmission cache 570 SRAM unit 619 receiving filter 620 interrupt controller

Claims (12)

  1. 外部バスから受信したデータの出力、又は入力されたデータの前記外部バスへの送信を行うデータ伝送装置であって、 Output data received from the external bus, or the input data to a data transmission device that transmits to the external bus,
    プログラムに従って動作するシステム制御手段と、 And a system control means that operates according to a program,
    前記外部バスとの間でデータの送信又は受信をする外部バスインターフェイスと、 An external bus interface for transmitting or receiving data to and from the external bus,
    DRAM(dynamic random access memory)と、 And DRAM (dynamic random access memory),
    前記システム制御手段が読み書きを行う領域と、前記外部バスインターフェイスと前記DRAMとの間で転送されるデータを格納し、格納した順に出力するFIFO(first in, first out)領域とを有するSRAM(static random access memory)と、 A region in which the system control means reads and writes, the store data to be transferred between the external bus interface and said DRAM, FIFO to output in the order they are stored (first in, first out) SRAM (static and a region a random access memory),
    前記SRAMが前記FIFO領域に格納したデータを格納した順に出力するように、前記SRAMに読み書きをするためのポインタを管理するFIFO周辺回路と、 As the SRAM to output in the order in which to store the data stored in the FIFO area, the FIFO peripheral circuit which manages pointers for read and write to the SRAM,
    前記外部バスインターフェイスと前記DRAMと前記SRAMとに接続されたSRAM側路手段とを備え、 And a said external bus interface and said DRAM and SRAM side path means connected to said SRAM,
    前記SRAM側路手段は、 The SRAM-side passage means,
    前記SRAMにアクセス可能な時には、前記FIFO領域との間でデータの送信又は受信を行い、前記SRAMにアクセス不可能な時には、前記FIFO領域を介さずに前記外部バスインターフェイス又は前記DRAMとの間でデータの送信又は受信を行うものであるデータ伝送装置。 When accessible to the SRAM performs transmission or reception of data between the FIFO areas, when not accessible to the SRAM is in between the external bus interface or the DRAM without going through the FIFO area data transmission apparatus and performs transmission or reception of data.
  2. 請求項1に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記外部バスとは異なる外部バスとの間でデータの送信又は受信をする外部バスインターフェイスを更に備え、 Further comprising an external bus interface for transmitting or receiving data to and from the different external bus and the external bus,
    前記SRAMは、 The SRAM is,
    前記各外部バスインターフェイスに対応し、対応する外部バスインターフェイスと前記DRAMとの間で転送されるデータを入出力するためのポートを備えるものであり、 Wherein corresponding to each external bus interface, which includes a port for inputting and outputting data to be transferred between the the corresponding external bus interface DRAM,
    前記システム制御手段は、 It said system control means,
    前記ポートのいずれかを用いて前記SRAMにデータを読み書きすることができるように構成されていることを特徴とするデータ伝送装置。 Data transmission apparatus characterized by being configured to be able to read and write data to the SRAM using any of the ports.
  3. 請求項1に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記SRAMは、 The SRAM is,
    前記システム制御手段との間でデータを入出力するためのポートと、前記外部バスインターフェイスと前記DRAMとの間で転送されるデータを入出力するためのポートとを備えることを特徴とするデータ伝送装置。 Data transmission, characterized in that it comprises a port for input and output and port for inputting and outputting data to and from the system control means, the data transferred between the DRAM and the external bus interface apparatus.
  4. 請求項1に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    周波数が、当該データ伝送装置の基本クロックのN(Nは2以上の整数)倍であるクロックに基づいて動作するSRAMを有し、前記基本クロックに同期してデータを出力するSRAM部を、前記SRAMに代えて備えることを特徴とするデータ伝送装置。 Frequency is the basic clock of N of the data transmission device (N is an integer of 2 or more) SRAM that operates based on the clock is a factor, the SRAM unit for outputting the data in synchronization with the basic clock, the data transmission apparatus, characterized in that it comprises in place of the SRAM.
  5. 請求項1に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記FIFO周辺回路は、 The FIFO peripheral circuit,
    前記FIFO領域の上限アドレス及び下限アドレス、並びに次に読み出されるデータのアドレスを示す読み出しポインタ及び次にデータが書き込まれるアドレスを示す書き込みポインタを格納するレジスタと、 A register for storing an upper limit address and lower address, and the write pointer to the address where the data is written into the read pointer and the next indicates the address of the data to be read next the FIFO area,
    前記FIFO領域から読み出しが行われた場合に、前記読み出しポインタを更新する手段と、 If the reading from the FIFO area is performed, and means for updating the read pointer,
    前記FIFO領域に書き込みが行われた場合に、前記書き込みポインタを更新する手段と、 If the writing in the FIFO area is performed, and means for updating the write pointer,
    前記FIFO領域が有効なデータを格納していない空の状態であることを判定する手段と、 It means for determining that the FIFO area is empty that do not contain valid data,
    前記FIFO領域が新たなデータを格納することができないフル状態であることを判定する手段とを備えることを特徴とするデータ伝送装置。 Data transmission apparatus comprising: a means for determining that the FIFO area is full it is not possible to store new data.
  6. 請求項5に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 5,
    前記FIFO周辺回路は、 The FIFO peripheral circuit,
    前記FIFO領域がフル状態であることを示すフラグを格納するレジスタを更に備えることを特徴とするデータ伝送装置。 Data transmission apparatus, characterized in that the FIFO area further comprises a register for storing a flag indicating a full state.
  7. 請求項に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    データ受信時であって、前記FIFO領域が空のときにのみ 、前記SRAM側路手段が格納したデータを、前記FIFO領域を経由することなく前記DRAMに転送するように構成されたことを特徴とするデータ伝送装置。 A time data receiving, and wherein the FIFO area only when empty, the data to which the SRAM side passage means is stored, configured to forward to the DRAM without passing through the FIFO area data transmission devices.
  8. 請求項に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記SRAM側路手段は、 The SRAM-side passage means,
    前記DRAMに送信すべきデータを保持して、前記DRAMに転送する受信用SRAM側路手段と、 Holds data to be transmitted to the DRAM, a receiving SRAM side path means for transferring said DRAM,
    前記外部バスに送信すべきデータを格納して、前記外部バスインターフェイスに転送する送信用SRAM側路手段とを有する Storing data to be transmitted to the external bus, and a transmitting SRAM side path means for transferring to the external bus interface
    ことを特徴とするデータ伝送装置。 Data transmission apparatus, characterized in that.
  9. 請求項に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記SRAM側路手段は、 The SRAM-side passage means,
    データ送信時には、前記外部バスから受信したデータに代えて、前記外部バスに送信すべきデータを格納して、前記外部バスインターフェイスに転送する双方向SRAM側路手段であることを特徴とするデータ伝送装置。 When sending data, instead of the data received from the external bus, it stores the data to be transmitted to said external bus, data transmission, characterized in that said a bidirectional SRAM side path means for transferring to the external bus interface apparatus.
  10. 請求項に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記SRAM側路手段は、 The SRAM-side passage means,
    複数のワードを格納し、格納したデータを格納した順に出力するように構成されていることを特徴とするデータ伝送装置。 Data transmission apparatus characterized by being configured to store a plurality of word, and outputs the order storing the stored data.
  11. 請求項1に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記DRAMが出力したデータを、 前記FIFO領域及び前記SRAM側路手段を経由することなく前記外部バスインターフェイスに転送する経路を更に有することを特徴とするデータ伝送装置。 Data transmission apparatus characterized by further having a path for transferring data to which the DRAM is outputted to the external bus interface without passing through the FIFO region and the SRAM side passage means.
  12. 請求項1に記載のデータ伝送装置において、 In the data transmission apparatus according to claim 1,
    前記外部インターフェイスが受信したデータがパケットのヘッダとデータ部とのいずれであるかを判定する受信用フィルタと、 A receiving filter determines which of a header and a data portion of the data which the external interface the received packet,
    前記受信用フィルタが、受信しているデータがヘッダであると判定した場合には、当該ヘッダを前記SRAMの前記システム制御手段が読み書きを行う領域へ格納させるように転送パスを制御し、 The reception filter, when received by that data is determined to be header controls the transfer path so as to store the header to a region in which the system control unit of the SRAM is reading and writing,
    前記受信用フィルタが、受信しているデータがデータ部であると判定した場合には、当該データ部を前記SRAMのFIFO領域に格納させてから前記DRAMへ格納させるように転送パスを制御し、かつ、1つのパケットの転送が終了したか否かを判定する転送管理手段と、 The reception filter, when received by that data is determined to be a data unit controls the transfer path so as to store into the DRAM from by storing the data unit in the FIFO area of ​​the SRAM, and a determining transfer management unit whether one packet transfer is completed,
    前記転送管理手段が、1つのパケットの転送が終了したと判定したことを、前記システム制御手段に割り込みを行って通知する割り込み制御手段とを備えることを特徴とするデータ伝送装置。 The transfer management unit, a data transmission device characterized in that it comprises that of one packet transfer is determined to have ended, and interrupt control means for notifying performing interrupt to said system control means.
JP2001274001A 2001-09-10 2001-09-10 Data transmission device Expired - Fee Related JP3599692B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001274001A JP3599692B2 (en) 2001-09-10 2001-09-10 Data transmission device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001274001A JP3599692B2 (en) 2001-09-10 2001-09-10 Data transmission device

Publications (2)

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

Family

ID=19099123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001274001A Expired - Fee Related JP3599692B2 (en) 2001-09-10 2001-09-10 Data transmission device

Country Status (1)

Country Link
JP (1) JP3599692B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5527512B2 (en) * 2009-09-28 2014-06-18 ソニー株式会社 Bus protocol conversion device and a bus protocol conversion method
FR2951290B1 (en) * 2009-10-08 2011-12-09 Commissariat Energie Atomique direct access to Controller in memory has multiple sources, Method and corresponding computer program
JP5708165B2 (en) * 2011-04-05 2015-04-30 株式会社デンソー The in-vehicle communication device
US9535490B2 (en) * 2013-12-16 2017-01-03 Qualcomm Incorporated Power saving techniques in computing devices

Also Published As

Publication number Publication date
JP2003087338A (en) 2003-03-20

Similar Documents

Publication Publication Date Title
US5307459A (en) Network adapter with host indication optimization
US6061687A (en) Linked lists of transfer descriptors scheduled at intervals
AU663537B2 (en) Bidirectional data storage facility for bus interface unit
US5740466A (en) Flexible processor-driven SCSI controller with buffer memory and local processor memory coupled via separate buses
US5600799A (en) Status batching and filtering in a media access control/host system interface unit
US6161160A (en) Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains
US5828901A (en) Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US5299313A (en) Network interface with host independent buffer management
US5941964A (en) Bridge buffer management by bridge interception of synchronization events
US5319752A (en) Device with host indication combination
US7464199B2 (en) Method, system, and program for handling Input/Output commands
US5659797A (en) Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
US5276684A (en) High performance I/O processor
US5930523A (en) Microcomputer having multiple bus structure coupling CPU to other processing elements
US6397316B2 (en) System for reducing bus overhead for communication with a network interface
US8730248B2 (en) Multi-graphics processor system, graphics processor and data transfer method
KR100887526B1 (en) Apparatus and method for direct memory access in a hub-based memory system
US6192428B1 (en) Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached
US6594712B1 (en) Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link
US7373437B2 (en) Multi-channel DMA with shared FIFO
US7526593B2 (en) Packet combiner for a packetized bus with dynamic holdoff time
US6526462B1 (en) Programmable multi-tasking memory management system
US6370621B1 (en) Memory cancel response optionally cancelling memory controller&#39;s providing of data in response to a read operation
US6681293B1 (en) Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
US6792488B2 (en) Communication between processors

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040914

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