Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4841314B2 - Data transfer circuit - Google Patents
[go: Go Back, main page]

JP4841314B2 - Data transfer circuit - Google Patents

Data transfer circuit Download PDF

Info

Publication number
JP4841314B2
JP4841314B2 JP2006147925A JP2006147925A JP4841314B2 JP 4841314 B2 JP4841314 B2 JP 4841314B2 JP 2006147925 A JP2006147925 A JP 2006147925A JP 2006147925 A JP2006147925 A JP 2006147925A JP 4841314 B2 JP4841314 B2 JP 4841314B2
Authority
JP
Japan
Prior art keywords
register group
data
main register
main
read
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
JP2006147925A
Other languages
Japanese (ja)
Other versions
JP2007317066A (en
Inventor
義弘 内山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
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 Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2006147925A priority Critical patent/JP4841314B2/en
Publication of JP2007317066A publication Critical patent/JP2007317066A/en
Application granted granted Critical
Publication of JP4841314B2 publication Critical patent/JP4841314B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、書き込み側機器から受信したデータを読み出し側機器に出力するデータ転送回路に関するものである。   The present invention relates to a data transfer circuit that outputs data received from a writing device to a reading device.

書き込み側機器から受信したデータを、データバス幅の単位で一時記憶領域にラッチした後、そのデータを、異なるクロックの読み出し側機器に読み出す構成のデータ転送回路として、図4に示すものが提案されている(例えば、特許文献1参照)。   The data transfer circuit shown in FIG. 4 is proposed as a data transfer circuit configured to latch data received from a writing side device in a temporary storage area in units of data bus width and then read the data to a reading side device of a different clock. (For example, refer to Patent Document 1).

これは、ネットワークバス401側から受信したデータを、そのネットワークバス401のクロックと異なるクロックで動作する内部バス402を経由して、主記憶装置(図示せず)に転送するために、ネットワーク側のクロックに同期して動作するシーケンサ403により、MAC(メディアアクセスコントロール)部404、FIFOを利用したメモリ405、およびレジスタファイル部406を制御して、ネットワークバス401から8ビット単位で受信した128ビット分のデータをそのレジスタファイル部406に格納するとともに、内部バス側のクロックに同期して動作するシーケンサ407により、ラッチ部408とDMAC(DMAコントローラ)部409を制御して、ラッチ部408のデータを8ビット単位で内部の主記憶装置に格納するものである。シーケンサ403と407ではハンドシェークが行われる。
特開平12−172636号公報
This is because the data received from the network bus 401 side is transferred to the main storage device (not shown) via the internal bus 402 that operates at a clock different from the clock of the network bus 401. The sequencer 403 operating in synchronization with the clock controls the MAC (Media Access Control) unit 404, the memory 405 using the FIFO, and the register file unit 406 to receive 128 bits received from the network bus 401 in units of 8 bits. Is stored in the register file unit 406, and the latch unit 408 and the DMAC (DMA controller) unit 409 are controlled by the sequencer 407 that operates in synchronization with the clock on the internal bus side, so that the data in the latch unit 408 is stored. Internal main note in 8-bit units It is for storing device. The sequencers 403 and 407 perform handshaking.
JP-A-12-172636

このデータ転送回路は、大量のデータを書き込み側機器から受信した順に読み出し側機器に取り込む場合には有効に機能するが、レジスタファイル部406に対するランダムアクセスに対応していないため、受信データの中に優先的に早く読み出さなければならないデータ群がある場合に、そのデータ群を整合性を崩すことなく読み出すことができない場合が発生するという問題がある。   This data transfer circuit functions effectively when a large amount of data is taken into the reading side device in the order received from the writing side device, but does not support random access to the register file unit 406. When there is a data group that needs to be read preferentially, there is a problem that the data group cannot be read without losing consistency.

例えば、あるデータ群が1つのまとまりとしてレジスタファイル部406に格納されていて、これを内部バス402側に読み出そうとするとき、その読み出し途中でレジスタファイル部406のデータの一部が書き換えられた場合には、内部バス402側に読み出したデータ群の整合性が崩れる場合が発生する。   For example, when a certain data group is stored in the register file unit 406 as one unit and is to be read out to the internal bus 402 side, part of the data in the register file unit 406 is rewritten during the reading. In such a case, the consistency of the data group read to the internal bus 402 side may be lost.

本発明の目的は、ランダムアクセスが可能で、しかもデータ群をその整合性を崩すことなく読み出すことができるようにしたデータ転送回路を提供することである。   SUMMARY OF THE INVENTION An object of the present invention is to provide a data transfer circuit that can be randomly accessed and can read a data group without destroying its consistency.

上記目的を達成するために、請求項1にかかる発明は、書き込み側機器から受信したデータを読み出し側機器に出力するデータ転送回路において、前記書き込み側機器から受け取ったデータを保持する複数の主レジスタ群と、前記複数の主レジスタ群の内から任意に選択された第1の主レジスタ群に保持されたデータを一時的に保持する1つの第1の一時レジスタ群とを有し、前記書き込み側機器から、前記主レジスタ群のいずれかに対する書き込み要求を受けた場合に、該書き込み要求の対象の主レジスタ群に保持したデータの全体を前記第1の一時レジスタ群に格納してから、該書き込み要求の対象の主レジスタ群への書き込みを開始することを特徴とする。
請求項2にかかる発明は、請求項1に記載の発明において、前記書き込み要求の対象の主レジスタ群への書き込みが行われている間に、前記読み出し側機器から、前記書き込み要求の対象の主レジスタ群に対する読み出し要求を受けた場合に、前記第1の一時レジスタ群に格納したデータを読み出して出力することを特徴とする。
請求項3にかかる発明は、請求項1に記載の発明において、前記第1の一時レジスタ群からの読み出しが行われている間に、前記書き込み側機器から、前記複数の主レジスタ群のいずれかに対する第2の書き込み要求を受けた場合には、該第2の書き込み要求の対象の主レジスタ群のデータの前記第1の一時レジスタヘの格納を行わずに、該第2の書き込み要求の対象の主レジスタ群に対する書き込みを行うことを特徴とする。
請求項4にかかる発明は、請求項1ないし3のいずれかに記載の発明において、前記複数の主レジスタ群から任意に選択された第2の主レジスタ群に保持されたデータを一時的に保持する第2の一時レジスタをさらに有し、前記読み出し側機器から、前記主レジスタ群のいずれかに対する読み出し要求を、該読み出し要求の対象の主レジスタ群への書き込みが行われていない間に受けた場合に、該読み出し要求の対象の主レジスタ群に保持したデータの全体を前記第2の一時レジスタ群に格納した後に、該第2の一時レジスタ群から読み出して出力することを特徴とする。
請求項5にかかる発明は、書き込み側機器から受信したデータを読み出し側機器に出力するデータ転送回路において、前記書き込み側機器から受け取ったデータを保持する複数の主レジスタ群と、前記複数の主レジスタ群からそれぞれ任意に選択された第1および第2のレジスタ群に保持されたデータを一時的に保持するそれぞれ1つの第1および第2の一時レジスタ群とを有し、前記書き込み側機器から、前記主レジスタ群のいずれかに対する書き込み要求を受けたときに、該書き込み要求を、前記第1の一時レジスタからの読み出しが行われていない間に受けた場合には、該書き込み要求の対象の主レジスタ群に保持したデータの全体を前記第1の一時レジスタ群に格納してから、該書き込み要求の対象の主レジスタ群への書き込みを開始し、前記第1の一時レジスタからの読み出しが行われている間に受けた場合には、該書き込み要求の対象の主レジスタ群のデータの前記第1の一時レジスタヘの格納を行わずに、該書き込み要求の対象の主レジスタ群への書き込みを行い、前記読み出し側機器から、前記複数の主レジスタ群のいずれかに対する読み出し要求を受けたときに、該読み出し要求が、前記書き込み要求の対象の主レジスタ群を対象とするものであり、かつ、該書き込み要求の対象の主レジスタ群への書き込みが行われている間に受けた場合には、前記第1の一時レジスタ群に格納したデータを読み出して出力し、それ以外の場合には、前記読み出し要求の対象の主レジスタ群に保持したデータの全体を前記第2の一時レジスタ群に格納した後に、該第2の一時レジスタ群から読み出して出力することを特徴とする。
請求項6にかかる発明は、請求項1ないし3のいずれかに記載の発明において、前記複数の主レジスタ群のそれぞれと前記第1の一時レジスタとの間には、対応する主レジスタ群に記憶可能なビット数のデータを同時に転送できるビット幅の配線が設けられていることを特徴とする。
請求項7にかかる発明は、請求項4又は5のいずれかに記載の発明において、前記複数の主レジスタ群のそれぞれと前記第1および第2の一時レジスタ群のそれぞれとの間には、対応する主レジスタ群に記憶可能なビット数のデータを同時に転送できるビット幅の配線が設けられていることを特徴とする。
In order to achieve the above object, the invention according to claim 1 is a data transfer circuit for outputting data received from a writing side device to a reading side device, and a plurality of main registers for holding data received from the writing side device has a group, and said plurality of first first temporary register group of one to temporarily hold the data held in the main register group of arbitrarily selected from among the main register group, the write-side When a write request to any of the main register groups is received from a device, the entire data held in the main register group that is the target of the write request is stored in the first temporary register group, and then the write is performed. Writing to the main register group to be requested is started.
According to a second aspect of the present invention, in the first aspect of the present invention, the main device of the target of the write request is received from the read-side device while the write request is being performed on the main register group. When a read request for a register group is received, the data stored in the first temporary register group is read and output.
According to a third aspect of the present invention, in the first aspect of the present invention, any one of the plurality of main register groups is received from the writing side device while reading from the first temporary register group is being performed. When the second write request for the second write request is received, the data of the main register group that is the target of the second write request is not stored in the first temporary register, and the target of the second write request is not stored. Writing to the main register group is characterized.
According to a fourth aspect of the present invention, in the invention according to any one of the first to third aspects, data held in a second main register group arbitrarily selected from the plurality of main register groups is temporarily held. A second temporary register that receives a read request from any one of the read-side devices while the write request to the main register group is not performed. In this case, the entire data held in the main register group to be read is stored in the second temporary register group, and then read from the second temporary register group and output.
According to a fifth aspect of the present invention, there is provided a data transfer circuit that outputs data received from a writing side device to a reading side device, a plurality of main register groups that hold data received from the writing side device, and the plurality of main registers Each having a first temporary register group and a second temporary register group for temporarily holding data held in first and second register groups arbitrarily selected from the group, from the writing side device, When a write request is received for one of the main register groups and the write request is received while reading from the first temporary register is not performed, the main request target The entire data held in the register group is stored in the first temporary register group, and then writing to the main register group subject to the write request is started. If the data is received while the first temporary register is being read, the data of the main register group to which the write request is made is not stored in the first temporary register. When writing to the main register group that is the target of the write request and receiving a read request for any of the plurality of main register groups from the reading side device, the read request is the main request target main register group. Read data stored in the first temporary register group when it is targeted for the register group and received while the write request is being made to the main register group. In other cases, the entire data held in the main register group subject to the read request is stored in the second temporary register group, and then the second temporary record is stored. And outputs read out from Staphylococcus group.
According to a sixth aspect of the present invention, in the invention according to any one of the first to third aspects, a memory is stored in a corresponding main register group between each of the plurality of main register groups and the first temporary register. A wiring having a bit width capable of simultaneously transferring data of the possible number of bits is provided.
The invention according to claim 7 is the invention according to claim 4 or 5, wherein there is a correspondence between each of the plurality of main register groups and each of the first and second temporary register groups. The main register group is provided with a wiring having a bit width capable of simultaneously transferring data of the number of bits that can be stored.

本発明によれば、主レジスタ群を複数備えるので、書き込みや読み出しのランダムアクセスが可能となる。また、第1の主レジスタ群に対するデータ書き込みの際には、第1の主レジスタ群のデータを第1の一時レジスタ群に待避させてから、第1の主レジスタ群にデータを書き込むので、直後に第1の主レジスタ群のデータの読み出し要求を受けた場合に、直前のデータを第1の一時レジスタ群から整合性を損なうことなく読み出すことができる。また、第2の主レジスタ群からデータを読み出す際には、第2の主レジスタ群のデータを第2の一時レジスタ群に待避させてから、第2の一時レジスタ群からデータを読み出すので、直後に第2の主レジスタ群のデータに対する書き込み要求を受けた場合に、直前のデータを第の一時レジスタ群から整合性を損なうことなく読み出すことができる。 According to the present invention, since a plurality of main register groups are provided, random access for writing and reading is possible. In addition, when data is written to the first main register group, the data of the first main register group is saved in the first temporary register group and then the data is written to the first main register group. When a data read request for the first main register group is received, the immediately preceding data can be read from the first temporary register group without losing consistency. Further, when data is read from the second main register group, the data of the second main register group is saved in the second temporary register group, and then the data is read from the second temporary register group. When a write request for data in the second main register group is received, the immediately preceding data can be read from the second temporary register group without losing consistency.

図1は本発明の1つの実施例のデータ転送回路の構成を示すブロック図である。100は書き込み側機器、101はその機器100に接続された出力バスである。また、200は読み出し側機器、201はその機器200に接続された入力バスである。   FIG. 1 is a block diagram showing a configuration of a data transfer circuit according to one embodiment of the present invention. Reference numeral 100 denotes a writing side device, and 101 denotes an output bus connected to the device 100. Reference numeral 200 denotes a reading side device, and 201 denotes an input bus connected to the device 200.

300は転送回路であり、MAC(メディアアクセス制御)部301により32ビット分が出力バス101から取り込まれる。302〜305はセレクタ、306,307はシーケンサ、310〜31mは主レジスタ群、320,321は一時レジスタ群である。   Reference numeral 300 denotes a transfer circuit, and 32 bits are fetched from the output bus 101 by a MAC (Media Access Control) unit 301. 302 to 305 are selectors, 306 and 307 are sequencers, 310 to 31m are main register groups, and 320 and 321 are temporary register groups.

主レジスタ群310〜31mはそれぞれ並列32ビット入出力の複数のレジスタをもつ。例えば、主レジスタ群310はn0+1個のレジスタ、主レジスタ群311はn1+1個のレジスタ、・・・、主レジスタ群31mはnm+1個のレジスタを持つ。各主レジスタ群310〜31mのレジスタへのデータ書き込みは、書き込み側機器100のクロックに同期して並列32ビット単位で行われる。読み出しは、主レジスタ群310は並列32×(n0+1)ビット単位で、主レジスタ群311は並列32×(n1+1)ビット単位で、・・・、主レジスタ群31mは並列32×(nm+1)ビット単位で、それぞれ1クロックで行われる。   Each of the main register groups 310 to 31m has a plurality of parallel 32-bit input / output registers. For example, the main register group 310 has n0 + 1 registers, the main register group 311 has n1 + 1 registers,..., And the main register group 31m has nm + 1 registers. Data writing to the registers of the main register groups 310 to 31m is performed in units of 32 bits in parallel in synchronization with the clock of the writing side device 100. For reading, the main register group 310 is in parallel 32 × (n0 + 1) bit units, the main register group 311 is in parallel 32 × (n1 + 1) bit units,..., And the main register group 31m is in parallel 32 × (nm + 1) bit units Each is performed in one clock.

一時レジスタ群320,321は前記した主レジスタ群310〜31mの内の最も多いレジスタをもつレジスタ群のレジスタ数(nmax+1個)と同じ数のレジスタをもつ。主レジスタ群310〜31mから読み出したデータは、セレタタ303または304を介して、一時レジスタ群320,321に書き込むことができる。この、主レジスタ群310,311,・・・,31mから一時レジスタ群320または321へのデータの転送は、それぞれ、32×(n0+1),32×(n1+1),・・・,32×(nm+1)ビット単位で、1クロックで行うことができる。主レジスタ群310〜31mと一時レジスタ群320,321との間には、このような1クロックでのデータ転送を可能とするデータ幅を有する配線が設けられている。すなわち、主レジスタ群310,311,・・・,31mと、セレクタ303および304との間には、それぞれ、32×(n0+1),32×(n1+1),・・・,32×(nm+1)ビット幅の配線が設けられている。また、セレクタ303および304と一時レジスタ群320および321との間には、32×(nmax+1)ビット幅の配線が設けられている。   The temporary register groups 320 and 321 have the same number of registers as the number of registers (nmax + 1) of the register group having the most registers among the main register groups 310 to 31m. Data read from the main register groups 310 to 31 m can be written to the temporary register groups 320 and 321 via the selectors 303 or 304. The data transfer from the main register group 310, 311,..., 31m to the temporary register group 320 or 321 is 32 × (n0 + 1), 32 × (n1 + 1),. It can be done in 1 clock in bit units. Between the main register groups 310 to 31m and the temporary register groups 320 and 321, a wiring having a data width that enables such data transfer in one clock is provided. That is, 32 × (n0 + 1), 32 × (n1 + 1),..., 32 × (nm + 1) bits between the main register groups 310, 311,..., 31m and the selectors 303 and 304, respectively. A width of wiring is provided. In addition, a wiring of 32 × (nmax + 1) bit width is provided between the selectors 303 and 304 and the temporary register groups 320 and 321.

後から述べるように、主レジスタ群310〜31mから一時レジスタ群320,321へのデータ転送は、書き込み側機器100からの要求によって行われる場合と、読み出し側機器200からの要求によって行われる場合とがある。書き込み側機器100からの要求による場合は、書き込み側機器100のクロックに同期して、1クロックでのデータ転送が行われる。読み出し側機器200からの要求による場合には、読み出し側機器200のクロックに同期して、1クロックでのデータ転送が行われる。   As will be described later, data transfer from the main register group 310 to 31m to the temporary register groups 320 and 321 is performed according to a request from the writing side device 100 and a case where it is performed according to a request from the reading side device 200. There is. In the case of a request from the writing device 100, data transfer is performed with one clock in synchronization with the clock of the writing device 100. In the case of a request from the reading side device 200, data transfer is performed with one clock in synchronization with the clock of the reading side device 200.

一方、一時レジスタ群320,321からのデータ読み出しは、読み出し側機器200のクロックに同期して、32ビット単位で行われ、セレクタ305を介して入力バス201に出力される。   On the other hand, data reading from the temporary register groups 320 and 321 is performed in units of 32 bits in synchronization with the clock of the reading-side device 200 and is output to the input bus 201 via the selector 305.

シーケンサ306は書き込み側機器100のクロックで動作してMAC部301、セレクタ302、主レジスタ群310〜31mを制御する。シーケンサ307は読み出し側機器200のクロックで動作してセレクタ303〜305、一時レジスタ群320,321を制御する。また、シーケンサ306と307とは互いに通信し、主レジスタ群310〜31mの動作と、セレクタ303,304および一時レジスタ群320,321の動作との間の調整を行う。また、シーケンサ306は主レジスタ群への書き込みをシーケンサ307に通知する。   The sequencer 306 operates with the clock of the writing device 100 to control the MAC unit 301, the selector 302, and the main register groups 310 to 31m. The sequencer 307 operates with the clock of the reading-side device 200 and controls the selectors 303 to 305 and the temporary register groups 320 and 321. In addition, the sequencers 306 and 307 communicate with each other to adjust between the operations of the main register groups 310 to 31m and the operations of the selectors 303 and 304 and the temporary register groups 320 and 321. The sequencer 306 notifies the sequencer 307 of writing to the main register group.

前記した主レジスタ群310〜31mに格納するデータ群としては、(1)画像サイズなどのビデオデータの情報を含んだAVI InfoFrame データ群、(2)音声データのサンプリング周波数などのオーディオデータの情報を含んだAudio InfoFrame データ群、(3)製品情報を含んだSPD(Source Product Description)InfoFrame データ群、その他がある。「InfoFrame」は規格で定められている。   Data groups stored in the main register groups 310 to 31m include (1) AVI InfoFrame data group including video data information such as image size, and (2) audio data information such as audio data sampling frequency. There are audio InfoFrame data group including, (3) SPD (Source Product Description) InfoFrame data group including product information, and others. “InfoFrame” is defined in the standard.

これらのデータ群のビット数はそれぞれ異なり、AVI InfoFrame データ群は13バイト、Audio InfoFrame データ群は5バイト、SPDInfoFrame データ群は25バイトである。本実施例のように主レジスタ群310〜31mを32ビット(4バイト)のレジスタで構成すると、それぞれ、4個、2個、7個のレジスタが必要となる。これらデータ群は、それぞれデータ容量が異なるので、主レジスタ群310〜31mはそれぞれの用途のための専用のレジスタ群として設けられる。   The number of bits of these data groups is different. The AVI InfoFrame data group is 13 bytes, the Audio InfoFrame data group is 5 bytes, and the SPD InfoFrame data group is 25 bytes. If the main register groups 310 to 31m are configured with 32-bit (4-byte) registers as in this embodiment, four, two, and seven registers are required, respectively. Since these data groups have different data capacities, the main register groups 310 to 31m are provided as dedicated register groups for respective uses.

さて、書き込み側機器100は、上記のようなInfoFrame の情報に変更がある場合、変更後のInfoFrame データを読み出し側機器200に転送する。このために、主レジスタ群310〜31mの内の対応する主レジスタ群のデータを更新するとともに、更新があったことを読み出し側機器200に通知する。一方、読み出し側機器200は、書き込み側機器100からの通知があった場合に、読み出し要求を行う。それ以外にも(例えば、立ち上げ時等に、必要になった場合に)読み出し要求を行う。上記の実施例において、それぞれのInfoFrame データを保持するための専用の主レジスタ群310〜31mが設けられているため、書き込み側機器100および読み出し側機器200から発生する書き込みおよび読み出しの要求は、主レジスタ群310〜31mの内の対象となる主レジスタ群を特定したものとなる。この書き込みと読み出しは、非同期(異なったクロック周波数で)行われる。その場合にもデータ不整合(更新されつつある主レジスタ群からの読み出しが行われることにより、更新前後の情報が混在したデータが読み出される)を起こさないように、2個の一時レジスタ群320,321を設け、以下のような処理が行われる。   When there is a change in the InfoFrame information as described above, the writing device 100 transfers the changed InfoFrame data to the reading device 200. For this purpose, the data of the corresponding main register group in the main register groups 310 to 31m is updated, and the reading side device 200 is notified of the update. On the other hand, when there is a notification from the writing device 100, the reading device 200 issues a read request. In addition to this, a read request is made (for example, when it is necessary at the time of startup or the like). In the above embodiment, since the dedicated main register group 310 to 31m for holding each InfoFrame data is provided, the write and read requests generated from the write side device 100 and the read side device 200 are the main requests. The target main register group in the register groups 310 to 31m is specified. This writing and reading are performed asynchronously (at different clock frequencies). Even in such a case, the two temporary register groups 320, 320, so as not to cause data inconsistency (reading from the main register group being updated results in reading of data in which information before and after the update is mixed). 321 is provided and the following processing is performed.

図2は書き込み側100からの要求に起因する動作のフローチャートである。書き込み側機器100から主レジスタ群310〜31mの内のいずれか1つの主レジスタ群への書き込み要求を受ける(S12−YES)と、それ以前に行われた要求による一時レジスタ群320からのデータ読み出しが継続中であるかどうかを判断する(S13)。ここで、書き込み要求は、書き込むデータの種類に対応する特定の主レジスタ群を指定した要求である。しかし、一時レジスタ群320は1個しかないので、どの主レジスタ群に対する書き込み要求があった場合でも、同じ一時レジスタ群320について、現在読み出し中か否かを判断する。   FIG. 2 is a flowchart of an operation resulting from a request from the writing side 100. When a write request to any one of the main register groups 310 to 31m is received from the writing side device 100 (S12-YES), data is read from the temporary register group 320 by a request made before that. Is determined to be continued (S13). Here, the write request is a request designating a specific main register group corresponding to the type of data to be written. However, since there is only one temporary register group 320, it is determined whether or not the same temporary register group 320 is currently being read regardless of which main register group has a write request.

読み出し中でなければ(S13−NO)、一時レジスタ群320に、書き込み対象の主レジスタ群のデータを格納して(S14)から(実施例の場合、この操作は、1クロックで完了する)、書き込み要求があった主レジスタ群への新たなデータの書き込みを開始する(S15)。   If not being read (S13-NO), the data of the main register group to be written is stored in the temporary register group 320 from (S14) (in this embodiment, this operation is completed in one clock), Writing of new data to the main register group requested to write is started (S15).

本実施例では、このように一時レジスタ群320に当該主レジスタ群のデータを格納してから当該主レジスタ群に書き込みを開始するため、書き込み途中に、当該主レジスタ群に対する読み出し要求が発生した場合には、後述のように、一時レジスタ群320から読み出すことにより、データ不整合の発生を防止することができる。主レジスタ群への書き込みを行っている間は、読み出し側機器200がデータ読み出しを待つという制御を行うことも考えらる。しかし、本実施例では、そのような、読み出し側、もしくは書き込み側機器の制御は行わずに、読み出しもしくは書き込み要求があったら、その時点で要求に応えることを可能にして、かつ、データ不整合の発生を防ぐ。   In this embodiment, when the data of the main register group is stored in the temporary register group 320 in this way and then writing to the main register group is started, a read request for the main register group occurs during the writing. As described later, by reading from the temporary register group 320, it is possible to prevent the occurrence of data mismatch. While writing to the main register group, it may be considered that the reading side device 200 performs control to wait for data reading. However, in this embodiment, if there is a read or write request without performing such control of the read side or write side device, it is possible to respond to the request at that time, and data inconsistency Prevent the occurrence of

書き込み側の機器100からのデータ転送速度に依存する時間の経過後、書き込みが終了した時点で、書き込みを行った(対応するInfoFrame データの更新を行った)ことを読み出し側機器200に通知し(S16)(なお、後述するように、この通知を受けて、読み出し側機器200が読み出し要求を発する)、Idle状態に戻る(S11)。   After the time dependent on the data transfer rate from the writing device 100 has elapsed, when the writing is completed, the reading device 200 is notified that writing has been performed (corresponding InfoFrame data has been updated) ( (S16) (As will be described later, in response to this notification, the reading-side device 200 issues a read request), and returns to the Idle state (S11).

特定の主レジスタ群への書き込み要求があったとき(S12−YES)に、一時レジスタ群320からデータ読み出し中の場合(S13−YES)は、一時レジスタ群320へのデータ格納を行わずに、書き込み対象の主レジスタ群への新たなデータの書き込みを行う(S17)。このように、読み出し中の場合に一時レジスタ群320へのデータ格納を行わないため、不整合なデータが一時レジスタ群320から読み出されることが防止される。   When there is a write request to a specific main register group (S12-YES), if data is being read from the temporary register group 320 (S13-YES), the data is not stored in the temporary register group 320. New data is written to the main register group to be written (S17). As described above, since data is not stored in the temporary register group 320 during reading, inconsistent data is prevented from being read from the temporary register group 320.

なお、この場合は、一時レジスタ群320へのデータ格納を行わないので、もし、書き込み対象の主レジスタ群への書き込みが終了する以前に、同じ主レジスタ群に対する読み出し要求が発生した場合、その時に一時レジスタ群320に格納されていた(目的とするものとは異なる)データが読み出されることになる。しかし、現実には、そのようなことが発生する可能性は極めて低いと考えられる。仮に、そのようなことが発生した場合であっても、読み出し側機器200が、要求したデータと異なることを判断し、再度、要求を行うことができる。   In this case, since data is not stored in the temporary register group 320, if a read request for the same main register group occurs before the writing to the main register group to be written is completed, Data stored in the temporary register group 320 (different from the target one) is read out. However, in reality, the possibility of such occurrences is considered extremely low. Even if such a case occurs, the reading-side device 200 can determine that the requested data is different from the requested data and make a request again.

そして、主レジスタ群への書き込み終了後に、書き込みを行った(対応するInfoFrame データの更新を行った)ことを読み出し側機器200に通知し(S18)(後述するように、この通知を受けて読み出し側機器200が読み出し要求を発する)、Idle状態に戻る(S11)。なお、システムリセットのときも、Idle状態に戻る。   Then, after the writing to the main register group is completed, the reading side device 200 is notified that writing has been performed (corresponding InfoFrame data has been updated) (S18). When the side device 200 issues a read request), it returns to the idle state (S11). Note that the system returns to the Idle state when the system is reset.

図3は読み出し側機器200からの要求に起因する動作のフローチャートである。読み出し側機器200から、主レジスタ群310〜31mの内のいずれか1つの主レジスタ群からの読み出しの要求(どのレジスタ群から読み出すか指定されている)を受ける(S22−YES)と、指定された主レジスタ群への書き込みが行われている(それ以前に行われた要求によって開始された書き込みがまだ終了しない状態にある)かどうかを判断する(S23)。   FIG. 3 is a flowchart of an operation caused by a request from the reading side device 200. It is designated when receiving a read request (designating which register group is to be read) from any one of the main register groups 310 to 31m from the reading side device 200 (YES in S22). Then, it is determined whether or not writing to the main register group has been performed (writing started by a request made before that is not yet finished) (S23).

書き込み中で無ければ(S23−NO)、読み出し対象の主レジスタ群のその時点のデータを一時レジスタ群321に格納して(S26)から、一時レジスタ群321から読み出しを行う(S27)。これにより、読み出しが完了する以前に同じ主レジスタ群に対する書き込み要求が発生した場合でも、データ不整合の発生を防止することができる。   If writing is not in progress (S23-NO), the current data of the main register group to be read is stored in the temporary register group 321 (S26), and then reading is performed from the temporary register group 321 (S27). As a result, even when a write request to the same main register group occurs before the reading is completed, it is possible to prevent the occurrence of data mismatch.

例えば、書き込み側機器100からの要求によって主レジスタ群を更新した場合は、更新(書き込み)が終了した時点で、読み出し側機器200に通知が行われ、この通知を受けた時点で、読み出し側機器200が、更新した主レジスタ群への読み出し要求を発する。この読み出し要求が発せられるときには対象の主レジスタ群への書き込みは完了しているので、一時レジスタ群321への格納と、一時レジスタ群321から読み出しが行われる。   For example, when the main register group is updated in response to a request from the writing side device 100, the reading side device 200 is notified when the update (writing) is completed, and when the notification is received, the reading side device is received. 200 issues a read request to the updated main register group. When this read request is issued, writing to the target main register group is completed, so that storage to the temporary register group 321 and reading from the temporary register group 321 are performed.

一方、例えば、主レジスタ群の更新の通知を受けたからではなく、読み出し側機器200の必要性による場合、対象の主レジスタ群への書き込み途中に読み出し要求が発せられることがある(S23−YES)。この場合には、書き込み開始前に対象の主レジスタ群のデータを格納しておいた一時レジスタ群320からの読み出しを行う(S24)。これによって、書き込み途中の主レジスタ群から読み出した場合に発生するデータ不整合の発生を防止することができる。   On the other hand, for example, when the update of the main register group is not received but due to the necessity of the reading-side device 200, a read request may be issued during writing to the target main register group (S23-YES). . In this case, the data is read from the temporary register group 320 that stores the data of the target main register group before the start of writing (S24). Thus, it is possible to prevent the occurrence of data inconsistency that occurs when reading from the main register group in the middle of writing.

ここで、書き込み要求発生時に、一時レジスタ群320からデータ読み出し中であったために、更新前のデータの格納が行えずに、主レジスタ群への書き込みが行われ、かつ、書き込みが終了する以前に、同じ主レジスタ群に対して読み出し要求が発生したとすると、その時に一時レジスタ群320に格納されていた(目的とするものとは異なる)データが読み出されることになる。しかし、現実には、そのようなことが発生する可能性は極めて低いと考えられる。仮に、そのようなことが発生した場合であっても、読み出し側機器200が、要求したデータと異なることを判断し、再度、要求を行うことができる。いずれの場合でも、読み出しが完了した時点で、Idle状態に戻る(S21)。   Here, since the data is being read from the temporary register group 320 when the write request is generated, the data before the update cannot be stored, the main register group is written, and before the writing is completed. If a read request is generated for the same main register group, data stored in the temporary register group 320 at that time (different from the target one) is read. However, in reality, the possibility of such occurrences is considered extremely low. Even if such a case occurs, the reading-side device 200 can determine that the requested data is different from the requested data and make a request again. In any case, when reading is completed, the state returns to the idle state (S21).

なお、図3のフローチャートでは、読み出しの終了時点でIdle状態(S21)に戻るようにしている。この場合、(ある主レジスタ群に対する読み出し要求による)いずれかの一時レジスタからの読み出しが終了する以前に、次の(同一、もしくは異なる主レジスタ群に対する)読み出し要求が発生した場合には応答できない。   In the flowchart of FIG. 3, the state returns to the idle state (S21) at the end of reading. In this case, no response can be made if the next read request (for the same or different main register group) occurs before the reading from any temporary register (by a read request for a certain main register group) is completed.

これに対しては、一時レジスタ群320からのデータ読み出し(S24)もしくは一時レジスタ群321からのデータ読み出し(S27)を開始した時点でIdle状態(S21)に戻すことも考えられる。これにより、読み出しが終了する以前に、より重要度の高い読み出し要求が発生した場合、まだ終了していない読み出しを中止して、後から発生した要求に基づく読み出しを行うことを可能にすることができる。   To cope with this, it may be possible to return to the idle state (S21) at the time when data reading from the temporary register group 320 (S24) or data reading from the temporary register group 321 (S27) is started. As a result, when a read request with higher importance occurs before the reading is completed, it is possible to stop the reading that has not been completed yet and perform the reading based on the request generated later. it can.

本発明の実施例のデータ転送回路の構成を示すブロック図である。It is a block diagram which shows the structure of the data transfer circuit of the Example of this invention. 図1のデータ転送回路の書き込み側機器から見た動作のフローチャートである。2 is a flowchart of an operation as viewed from a writing side device of the data transfer circuit of FIG. 1. 図1のデータ転送回路の読み出し側機器からみた動作のフローチャートである。2 is a flowchart of an operation as viewed from a reading side device of the data transfer circuit of FIG. 1. 従来のデータ転送回路の構成を示すブロック図である。It is a block diagram which shows the structure of the conventional data transfer circuit.

符号の説明Explanation of symbols

100:書き込み側機器、101:出力バス
200:読み出し側機器、201:入力バス
300:転送回路、301:MAC部、302〜305:セレクタ、306,307:シーケンサ、310〜31m:主レジスタ群、320,321:一時レジスタ群
100: Write side device, 101: Output bus 200: Read side device, 201: Input bus 300: Transfer circuit, 301: MAC unit, 302 to 305: Selector, 306, 307: Sequencer, 310 to 31m: Main register group, 320, 321: Temporary registers

Claims (7)

書き込み側機器から受信したデータを読み出し側機器に出力するデータ転送回路において、
前記書き込み側機器から受け取ったデータを保持する複数の主レジスタ群と、
前記複数の主レジスタ群の内から任意に選択された第1の主レジスタ群に保持されたデータを一時的に保持する1つの第1の一時レジスタ群とを有し、
前記書き込み側機器から、前記主レジスタ群のいずれかに対する書き込み要求を受けた場合に、該書き込み要求の対象の主レジスタ群に保持したデータの全体を前記第1の一時レジスタ群に格納してから、該書き込み要求の対象の主レジスタ群への書き込みを開始することを特徴とするデータ転送回路。
In the data transfer circuit that outputs the data received from the writing device to the reading device,
A plurality of main register groups for holding data received from the writing side device;
Wherein a plurality of the first and one of the first temporary register group for temporarily holding the data held in the main register group arbitrarily selected from among the main registers,
When a write request for any of the main register groups is received from the writing side device, the entire data held in the main register group that is the target of the write request is stored in the first temporary register group. A data transfer circuit which starts writing to a main register group which is a target of the write request.
前記書き込み要求の対象の主レジスタ群への書き込みが行われている間に、前記読み出し側機器から、前記書き込み要求の対象の主レジスタ群に対する読み出し要求を受けた場合に、前記第1の一時レジスタ群に格納したデータを読み出して出力することを特徴とする請求項1記載のデータ転送回路。   The first temporary register when a read request for the write request target main register group is received from the read side device while the write request target main register group is being written. 2. The data transfer circuit according to claim 1, wherein the data stored in the group is read and output. 前記第1の一時レジスタ群からの読み出しが行われている間に、前記書き込み側機器から、前記複数の主レジスタ群のいずれかに対する第2の書き込み要求を受けた場合には、該第2の書き込み要求の対象の主レジスタ群のデータの前記第1の一時レジスタヘの格納を行わずに、該第2の書き込み要求の対象の主レジスタ群に対する書き込みを行うことを特徴とする請求項2記載のデータ転送回路。   If a second write request for any of the plurality of main register groups is received from the writing side device while reading from the first temporary register group is being performed, the second 3. The write to the main register group subject to the second write request is performed without storing the data of the main register group subject to the write request in the first temporary register. Data transfer circuit. 前記複数の主レジスタ群から任意に選択された第2の主レジスタ群に保持されたデータを一時的に保持する第2の一時レジスタをさらに有し、
前記読み出し側機器から、前記主レジスタ群のいずれかに対する読み出し要求を、該読み出し要求の対象の主レジスタ群への書き込みが行われていない間に受けた場合に、該読み出し要求の対象の主レジスタ群に保持したデータの全体を前記第2の一時レジスタ群に格納した後に、該第2の一時レジスタ群から読み出して出力することを特徴とする請求項1ないし3のいずれかに記載のデータ転送回路。
A second temporary register that temporarily holds data held in a second main register group arbitrarily selected from the plurality of main register groups;
When a read request for any of the main register groups is received from the read side device while writing to the main register group that is the target of the read request is not performed, the main register that is the target of the read request 4. The data transfer according to claim 1, wherein after the entire data held in the group is stored in the second temporary register group, the data is read out from the second temporary register group and output. circuit.
書き込み側機器から受信したデータを読み出し側機器に出力するデータ転送回路において、
前記書き込み側機器から受け取ったデータを保持する複数の主レジスタ群と、
前記複数の主レジスタ群からそれぞれ任意に選択された第1および第2のレジスタ群に保持されたデータを一時的に保持するそれぞれ1つの第1および第2の一時レジスタ群とを有し、
前記書き込み側機器から、前記主レジスタ群のいずれかに対する書き込み要求を受けたときに、該書き込み要求を、前記第1の一時レジスタからの読み出しが行われていない間に受けた場合には、該書き込み要求の対象の主レジスタ群に保持したデータの全体を前記第1の一時レジスタ群に格納してから、該書き込み要求の対象の主レジスタ群への書き込みを開始し、
前記第1の一時レジスタからの読み出しが行われている間に受けた場合には、該書き込み要求の対象の主レジスタ群のデータの前記第1の一時レジスタヘの格納を行わずに、該書き込み要求の対象の主レジスタ群への書き込みを行い、
前記読み出し側機器から、前記複数の主レジスタ群のいずれかに対する読み出し要求を受けたときに、該読み出し要求が、前記書き込み要求の対象の主レジスタ群を対象とするものであり、かつ、該書き込み要求の対象の主レジスタ群への書き込みが行われている間に受けた場合には、前記第1の一時レジスタ群に格納したデータを読み出して出力し、
それ以外の場合には、前記読み出し要求の対象の主レジスタ群に保持したデータの全体を前記第2の一時レジスタ群に格納した後に、該第2の一時レジスタ群から読み出して出力することを特徴とするデータ転送回路。
In the data transfer circuit that outputs the data received from the writing device to the reading device,
A plurality of main register groups for holding data received from the writing side device;
Each having a first and a second temporary register group for temporarily holding data held in first and second register groups arbitrarily selected from the plurality of main register groups,
When a write request is received from any one of the main register groups from the writing side device, if the write request is received while reading from the first temporary register is not performed, The entire data held in the main register group subject to the write request is stored in the first temporary register group, and then writing to the main register group subject to the write request is started.
If received while reading from the first temporary register, the write request is made without storing the data of the target main register group of the write request in the first temporary register. To the target main register group,
When a read request for any of the plurality of main register groups is received from the read side device, the read request is for the main register group that is the target of the write request, and the write If received during the write to the main register group to be requested, the data stored in the first temporary register group is read and output,
In other cases, the entire data held in the main register group subject to the read request is stored in the second temporary register group, and then read from the second temporary register group and output. A data transfer circuit.
前記複数の主レジスタ群のそれぞれと前記第1の一時レジスタとの間には、対応する主レジスタ群に記憶可能なビット数のデータを同時に転送できるビット幅の配線が設けられていることを特徴とする請求項1ないし3のいずれかに記載のデータ転送回路。   Between each of the plurality of main register groups and the first temporary register, a wiring having a bit width capable of simultaneously transferring data having the number of bits that can be stored in the corresponding main register group is provided. The data transfer circuit according to claim 1. 前記複数の主レジスタ群のそれぞれと前記第1および第2の一時レジスタ群のそれぞれとの間には、対応する主レジスタ群に記憶可能なビット数のデータを同時に転送できるビット幅の配線が設けられていることを特徴とする請求項4又は5のいずれかに記載のデータ転送回路。   Between each of the plurality of main register groups and each of the first and second temporary register groups, a wiring having a bit width capable of simultaneously transferring data of the number of bits that can be stored in the corresponding main register group is provided. 6. The data transfer circuit according to claim 4, wherein the data transfer circuit is provided.
JP2006147925A 2006-05-29 2006-05-29 Data transfer circuit Expired - Fee Related JP4841314B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006147925A JP4841314B2 (en) 2006-05-29 2006-05-29 Data transfer circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006147925A JP4841314B2 (en) 2006-05-29 2006-05-29 Data transfer circuit

Publications (2)

Publication Number Publication Date
JP2007317066A JP2007317066A (en) 2007-12-06
JP4841314B2 true JP4841314B2 (en) 2011-12-21

Family

ID=38850852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006147925A Expired - Fee Related JP4841314B2 (en) 2006-05-29 2006-05-29 Data transfer circuit

Country Status (1)

Country Link
JP (1) JP4841314B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7713707A (en) * 1977-12-12 1979-06-14 Philips Nv INFORMATION BUFFER MEMORY OF THE "FIRST-IN, FIRST-OUT" TYPE WITH VARIABLE INPUT AND FIXED OUTPUT.
JPS6073730A (en) * 1983-09-30 1985-04-25 Toshiba Corp Buffer controller
JPH0191959A (en) * 1987-10-02 1989-04-11 Toyota Motor Corp Mold transfer device in vertical frameless molding line
JP2000172636A (en) * 1998-12-08 2000-06-23 Canon Inc Asynchronous data transfer control device and method for real-time data transfer system

Also Published As

Publication number Publication date
JP2007317066A (en) 2007-12-06

Similar Documents

Publication Publication Date Title
US6341318B1 (en) DMA data streaming
JP3598321B2 (en) Buffering data exchanged between buses operating at different frequencies
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
JP2000267987A (en) Direct memory access control
JP2005182781A (en) Persistent memory device for backup process checkpoint state
TWI531901B (en) Data flush of group table
US10216645B2 (en) Memory data transfer method and system
JP2009175904A (en) Multiprocessor processing system
JP3803196B2 (en) Information processing apparatus, information processing method, and recording medium
CN102027424B (en) Method for controlling access to regions of a storage comprising a plurality of processes and communication module having a message storage for implementing the method
US7120764B2 (en) Method and related apparatus for controlling data transmission in a memory
US6738840B1 (en) Arrangement with a plurality of processors having an interface for a collective memory
US8386725B2 (en) USB host controller and controlling method for USB host controller
CN101308474B (en) Storage system and storage device
KR100782594B1 (en) Memory device with data processing function
JP4841314B2 (en) Data transfer circuit
CN107783909B (en) Memory address bus expansion method and device
JP3824122B2 (en) DMA device
JP2005182538A (en) Data transfer device
CN101290602A (en) Memory management system and method
JP2008225608A (en) Memory controller for controlling memory, memory module, and memory control method
JP2011192053A (en) Disk array device, disk array system and cache control method
US6785795B1 (en) Data processing device for use in cooperation with a memory
CN111625411A (en) Semiconductor device and debug system
US20260030150A1 (en) Control device, memory system, and computing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110415

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: 20111004

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111004

R150 Certificate of patent or registration of utility model

Ref document number: 4841314

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees