JP5273828B2 - Data transfer device - Google Patents

Data transfer device Download PDF

Info

Publication number
JP5273828B2
JP5273828B2 JP2011112019A JP2011112019A JP5273828B2 JP 5273828 B2 JP5273828 B2 JP 5273828B2 JP 2011112019 A JP2011112019 A JP 2011112019A JP 2011112019 A JP2011112019 A JP 2011112019A JP 5273828 B2 JP5273828 B2 JP 5273828B2
Authority
JP
Japan
Prior art keywords
read
write
byte
byte enable
data
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
JP2011112019A
Other languages
Japanese (ja)
Other versions
JP2012243053A (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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2011112019A priority Critical patent/JP5273828B2/en
Publication of JP2012243053A publication Critical patent/JP2012243053A/en
Application granted granted Critical
Publication of JP5273828B2 publication Critical patent/JP5273828B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem that the scale of hardware to be used by an FIFO or the like is increased in the case of trying to achieve data transfer by byte units. <P>SOLUTION: A byte enable holding circuit 10 for write is configured to hold the byte enable of data written in the latest write address of an FIFO 40, and a byte enable holding circuit 20 for read is configured to hold the byte enable of write data before one timing or the logical sum of the byte enable and self-holding content before one timing or self-holding content before one timing. A byte reading determination flag 50 indicates the presence/absence of full byte reading for one word of the FIFO by decrypting the byte enable of read data. In the case of the absence of the full byte reading, a selector 503 selects the holding content of the circuit 20, and in the case of the presence of the full byte reading, the selector 503 selects and sets the byte enable held by the circuit 10 as the byte enable of read data. <P>COPYRIGHT: (C)2013,JPO&amp;INPIT

Description

本発明は、データ転送装置、特に、FIFOを用いバイト単位のデータ転送が可能なデータ転送装置に関する。   The present invention relates to a data transfer device, and more particularly to a data transfer device capable of transferring data in units of bytes using a FIFO.

一般に、メモリ装置と任意のインタフェース間で、メモリ装置のデータ幅に合わないバイト単位でデータ転送を行なう場合、CPU等がデータを一旦引き取り、その後にデータ幅を合わせてデータを結合する必要がある。この場合、CPUの負荷を回避するため、メモリ装置に対しバイト単位の入出力を可能にする技術が知られている。   In general, when data is transferred between a memory device and an arbitrary interface in units of bytes that do not match the data width of the memory device, it is necessary for the CPU or the like to take the data once and then combine the data by matching the data width. . In this case, in order to avoid the load on the CPU, a technique that enables input / output in units of bytes to the memory device is known.

その1は、バイト単位のライトとリードを実現するために、バイト単位に個別のFIFOを設け、FIFOに対するライトアドレスとリードアドレスもFIFO毎に異なった制御を行う。しかし、これでは、1ワードが4バイト以上のFIFOともなれば回路が複雑化する。例えば、市場性があり大容量のDDRメモリをFIFOとして代用する場合、バイト毎にDDRメモリコントローラとDDR physical interfaceを持つ必要があり、大規模なものとなってしまう。   First, in order to realize writing and reading in byte units, individual FIFOs are provided in byte units, and the write address and read address for the FIFO are controlled differently for each FIFO. However, this complicates the circuit if one word is a FIFO of 4 bytes or more. For example, when a marketable and large-capacity DDR memory is used as a FIFO, it is necessary to have a DDR memory controller and a DDR physical interface for each byte, resulting in a large scale.

その2は、上位装置から下位装置への送信データを格納する送信FIFOと、下位装置から上位装置への受信データを格納する受信FIFOとを設け、それぞれのFIFO対応に、空きエリアが入力側のデータのバイト幅未満となったことを検出して上位装置へ通知し、上位装置では、次に送信FIFOへ送信する送信データまたは次に受信FIFOから受信する受信データのバイト幅と空きエリアのバイト数との大小により、FIFOとの間のデータ送受信を許否するようにしている。   The second is to provide a transmission FIFO for storing transmission data from the upper apparatus to the lower apparatus and a reception FIFO for storing reception data from the lower apparatus to the upper apparatus. Detects that the byte width is less than the data, and notifies the host device. The host device then transmits the transmission data to be transmitted to the transmission FIFO or the next reception data to be received from the reception FIFO. Data transmission / reception with the FIFO is permitted depending on the size.

特開2002−050172号公報JP 2002-050172 A 特開2003−296264号公報JP 2003-296264 A

解決しようとする問題点は、バイト単位のデータ転送を実現するには、FIFO等の使用するハードウェアが大規模になることである。   The problem to be solved is that hardware to be used such as FIFO becomes large in order to realize data transfer in units of bytes.

本発明は、1ワード未満のライト/リードを小規模な回路で実現可能とするため、有効バイト位置を示すイネーブルデータをライト側とリード側のレジスタで管理し、選択してリードデータに付与することを最も主要な特徴とする。   In the present invention, in order to enable writing / reading of less than one word with a small circuit, enable data indicating a valid byte position is managed by a register on the write side and the read side, and is selected and given to the read data. This is the main feature.

本発明のデータ転送装置は、イネーブルデータをライト側とリード側それぞれのレジスタで管理し、リード時に選択してリードデータに付与するという構成を採用したため、FIFOのバイト幅に合わせて回路構成(論理)を変更する必要が無いので、バイト単位のライト/リード動作が1ワード以下のバイト幅を持つFIFOを使用しても実現できるという利点がある。従って、1ワードのバイト幅を拡張したFIFOを使用する場合であっても、バイトイネーブルに関連する回路のみを拡張すれば、同じ回路構成(論理)で足りるため、ゲート規模の増加も少なくて済む。   The data transfer apparatus of the present invention employs a configuration in which enable data is managed by the registers on the write side and the read side, and is selected at the time of reading and given to the read data. Therefore, the circuit configuration (logic Therefore, there is an advantage that write / read operations in byte units can be realized even if a FIFO having a byte width of 1 word or less is used. Therefore, even when using a FIFO in which the byte width of one word is expanded, if only the circuit related to byte enable is expanded, the same circuit configuration (logic) is sufficient, and the increase in the gate scale is small. .

本発明のデータ転送装置の一実施例を示すブロック図である。It is a block diagram which shows one Example of the data transfer apparatus of this invention. セレクタ103の真理値表を示す図である。It is a figure which shows the truth table of the selector 103. バイト読出し判定フラグ50の真理値表を示す図である。It is a figure which shows the truth table of the byte read determination flag. デコーダ104の真理値表を示す図である。It is a figure which shows the truth table of the decoder 104. FIG. ライト用アドレスカウンタ12の真理値表を示す図である。6 is a diagram showing a truth table of a write address counter 12. FIG. 書込み系の動作を例示する第1のタイムチャートである。It is a first time chart illustrating the operation of the writing system. 書込み系の動作を例示する第2のタイムチャートである。12 is a second time chart illustrating the operation of the writing system. セレクタ203の真理値表を示す図である。It is a figure which shows the truth table of the selector 203. FIG. リード溶媒とイネーブル判定回路21の真理値表を示す図である。It is a figure which shows the truth table of a lead solvent and the enable determination circuit. デコーダ204の真理値表を示す図である。It is a figure which shows the truth table of the decoder 204. FIG. リード用アドレスカウンタ22の真理値表を示す図である。4 is a diagram showing a truth table of a read address counter 22. FIG. アドレス比較器30の真理値表を示す図である。3 is a diagram showing a truth table of the address comparator 30. FIG. バイト読出し判定フラグ50の真理値表を示す図である。It is a figure which shows the truth table of the byte read determination flag. セレクタ503の真理値表を示す図である。It is a figure which shows the truth table of the selector 503. メモリEMPTYフラグ60の真理値表を示す図である。4 is a diagram showing a truth table of a memory EMPTY flag 60. FIG. 読出し系の動作を例示する第1のタイムチャートである。It is a first time chart illustrating the operation of the read system. 読出し系の動作を例示する第2のタイムチャートである。6 is a second time chart illustrating the operation of the read system. リードBEの生成方法を説明するための第1のタイムチャートである。6 is a first time chart for explaining a method of generating a lead BE. リードBEの生成方法を説明するための第2のタイムチャートである。12 is a second time chart for explaining a method of generating a lead BE. リードBEの生成方法を説明するための第3のタイムチャートである。12 is a third time chart for explaining a method of generating a lead BE. リードBEの生成方法を説明するための第4のタイムチャートである。10 is a fourth time chart for explaining a method of generating a lead BE. リードBEの生成方法を説明するための第5のタイムチャートである。FIG. 10 is a fifth time chart for illustrating a method for generating a lead BE.

本発明のデータ転送装置は、有効バイト位置を示す2値情報(バイトイネーブル)に応じたライトデータをライト要求に応答してFIFOに書き込み、リード要求に応答してリードデータをFIFOから読み出し、バイトイネーブルを添付する。ライト側には、FIFOの最新のライトアドレスに書き込まれているデータのバイトイネーブルを保持するライト用バイトイネーブル保持回路を設け、リード側には、FIFOの最新のライトアドレスに書き込まれているデータのバイトイネーブル、または該バイトイネーブルと1タイミング前の自保持内容との論理和、または1タイミング前の自保持内容を保持するリード用バイトイネーブル保持回路を設ける。   The data transfer apparatus of the present invention writes write data corresponding to binary information (byte enable) indicating a valid byte position in response to a write request, reads the read data from the FIFO in response to a read request, Attach enable. On the write side, there is provided a write byte enable holding circuit for holding the byte enable of the data written in the latest write address of the FIFO, and on the read side, the data written in the latest write address of the FIFO is stored. There is provided a byte enable, a logical sum of the byte enable and the self-held content before one timing, or a read byte enable holding circuit for holding the self-held content before one timing.

リード側には、更に、バイト読出し判定フラグとリードデータ用のセレクタとを設ける。バイト読出し判定フラグは、リードデータのバイトイネーブルを解読してFIFOのライトアドレスとリードアドレスが一致する時に1ワード未満のバイトイネーブルで読み出したことを記憶し、1ワード分に達した位置まで読み出したときに消去される。   On the read side, a byte read determination flag and a selector for read data are further provided. The byte read determination flag decodes the byte enable of the read data, stores that the read is performed with a byte enable of less than one word when the FIFO write address matches the read address, and reads to the position where one word has been reached Sometimes erased.

セレクタは、バイト読出し判定フラグがセットされているときはリード用バイトイネーブル保持回路が保持するバイトイネーブルを選択し、またバイト読出し判定フラグがリセットされていて、かつFIFOのライトアドレスとリードアドレスが一致するときはライト用バイトイネーブル保持回路が保持するバイトイネーブルを選択し、バイト読出し判定フラグがリセットされていて、かつFIFOのライトアドレスとリードアドレスが一致しないときは全バイト読出しを示すバイトイネーブルを選択し、それぞれリードデータのバイトイネーブルとする。以下、本発明の実施例について図面を参照しながら説明する。   When the byte read determination flag is set, the selector selects the byte enable held by the read byte enable holding circuit, the byte read determination flag is reset, and the FIFO write address matches the read address. When byte enable is selected, the byte enable held by the write byte enable holding circuit is selected. When the byte read determination flag is reset and the FIFO write address does not match the read address, the byte enable indicating all byte read is selected. In this case, each byte of read data is enabled. Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明のデータ転送装置の一実施例を示すブロック図である。このデータ転送装置は、ライトREQが入力すると、イネーブルデータ(ライトBE)が示す書込みバイト位置のライトDATAがFIFO40へ書き込まれ、リードREQが入力すると、リードDATAをFIFO40から読み出し、読出しバイト位置を示すイネーブルデータ(リードBE)を出力する。ライトBEとリードBEは2値情報で指定される。FIFO40は、1ワードが複数バイトから成るデータを記憶する先入れ先出しメモリであって、複数バイト幅のライトデータI/Fおよび複数バイト幅のリードデータI/Fを有する。なお、メモリEMPTYはFIFO40に記憶されているデータが無いことを示す。また、以下の説明では、FIFO40は4バイト幅のワードを格納するものとする。   FIG. 1 is a block diagram showing an embodiment of the data transfer apparatus of the present invention. In this data transfer device, when the write REQ is input, the write DATA at the write byte position indicated by the enable data (write BE) is written to the FIFO 40, and when the read REQ is input, the read DATA is read from the FIFO 40 to indicate the read byte position. Enable data (read BE) is output. Write BE and read BE are specified by binary information. The FIFO 40 is a first-in first-out memory for storing data in which one word is composed of a plurality of bytes, and has a plurality of bytes of write data I / F and a plurality of bytes of read data I / F. Note that the memory EMPTY indicates that there is no data stored in the FIFO 40. In the following description, it is assumed that the FIFO 40 stores a 4-byte word.

(1)書込み系の構成
先ず、図1の左側に示されている書込み系について説明する。書込み系は、ゲート回路401、ライト用アドレスカウンタ12、ライト用バイトイネーブル保持回路10、ライト用バイトイネーブル判定回路11、OR回路102、セレクタ103、デコーダ104およびAND回路101から成る。
(1) Configuration of Write System First, the write system shown on the left side of FIG. 1 will be described. The write system includes a gate circuit 401, a write address counter 12, a write byte enable holding circuit 10, a write byte enable determination circuit 11, an OR circuit 102, a selector 103, a decoder 104, and an AND circuit 101.

ゲート回路401は、ライトDATAの内のライトBEが指定するバイト(有効バイト)のみをW DATAとしてFIFO40へ入力する。W DATAは、ライトREQ(=W REQ)の“1”アサートと同時に、その時にライト用アドレスカウンタ12が出力するFIFO40のライトアドレス(W ADD)が示すメモリエリアへ格納される。   The gate circuit 401 inputs only the byte (valid byte) designated by the write BE in the write DATA to the FIFO 40 as W DATA. W DATA is stored in the memory area indicated by the write address (W ADD) of the FIFO 40 output from the write address counter 12 at the same time as the write REQ (= W REQ) “1” is asserted.

ライト用アドレスカウンタ12は、FIFO40における1ワードを構成している全バイトへの書込みが行なわれると、+1更新されて次のW DATAは+1更新されたW ADDに格納される。即ち、ライト用アドレスカウンタ12は、次のタイミングでW DATAを書き込むべきW ADDを指定する。   When writing to all bytes constituting one word in the FIFO 40 is performed, the write address counter 12 is updated by +1 and the next W DATA is stored in W ADD updated by +1. That is, the write address counter 12 designates W ADD to write W DATA at the next timing.

ライト用バイトイネーブル保持回路10は、FIFO40の最新のW ADDに書き込まれているW DATAの有効バイト位置を2値情報により保持する。例えば、1ワードが4バイトから成るので、有効バイトが1バイト目のみなら2値情報は“0001”、有効バイトが1〜3バイト目なら2値情報は“0111”となる。   The write byte enable holding circuit 10 holds the effective byte position of W DATA written in the latest W ADD of the FIFO 40 as binary information. For example, since one word consists of 4 bytes, the binary information is “0001” if the effective byte is only the first byte, and the binary information is “0111” if the effective byte is the first to third bytes.

ライト用バイトイネーブル判定回路11は、ライト用バイトイネーブル保持回路10が保持している2値情報により、初期状態(上例では“0000”)であるか、またはW ADDに書き込まれたデータが1ワード分に達した(上例では“1111”)か、ということと、FIFO40に書き込まれたデータが1ワード未満である(上例では“0001”、“0011”または“0111”)か、ということとの判定結果(前者なら“0”、後者なら“1”)を出力する。   The write byte enable determination circuit 11 is in an initial state (“0000” in the above example) or the data written in WADD is 1 based on the binary information held by the write byte enable holding circuit 10. Whether it has reached the number of words ("1111" in the above example) and whether the data written in the FIFO 40 is less than one word ("0001", "0011" or "0111" in the above example) Is output (“0” for the former, “1” for the latter).

OR回路102は、ライトBEとライト用バイトイネーブル保持回路10が保持している2値情報の論理和を出力する。つまり、現状の有効バイト位置に、新規入力のライトBEを加えるのである。   The OR circuit 102 outputs a logical sum of the binary information held by the write BE and the write byte enable holding circuit 10. That is, a new input write BE is added to the current valid byte position.

セレクタ103は、ライト用バイトイネーブル判定回路11における判定結果をセレクト信号とし、ライトBEまたはOR回路102の出力を選択してライト用バイトイネーブル保持回路10へ出力する。   The selector 103 uses the determination result in the write byte enable determination circuit 11 as a select signal, selects the output of the write BE or OR circuit 102, and outputs it to the write byte enable holding circuit 10.

デコーダ104は、セレクタ103の出力を解読して、これからFIFO40に書き込むW DATAにより、FIFO40のそのアドレスに1ワード(セレクタ103の出力が“1xxx”)に達することを検出すると“1”アサート状態となる。AND回路101は、ライトREQとデコーダ104のとの論理積により、ライト用アドレスカウンタ12を+1更新するためのイネーブル信号ENを“1”アサートする。   When the decoder 104 decodes the output of the selector 103 and detects from the W DATA to be written to the FIFO 40 that one word (the output of the selector 103 is “1xxx”) reaches the address of the FIFO 40, the decoder 104 assumes the “1” asserted state. Become. The AND circuit 101 asserts “1” an enable signal EN for updating the write address counter 12 by +1 based on the logical product of the write REQ and the decoder 104.

図2は、ライト用バイトイネーブル保持回路10を設定するためのセレクタ103の真理値表を示す。ライト用バイトイネーブル保持回路10は、ライト用バイトイネーブル判定回路11の出力が“0”ならライトBEを格納し(ケース1)、ライト用バイトイネーブル判定回路11の出力が“1”ならライトBEとライト用バイトイネーブル保持回路10が保持している2値情報を論理ORして格納する(ケース2)。   FIG. 2 shows a truth table of the selector 103 for setting the write byte enable holding circuit 10. The write byte enable holding circuit 10 stores write BE if the output of the write byte enable determination circuit 11 is “0” (case 1), and write BE if the output of the write byte enable determination circuit 11 is “1”. The binary information held by the write byte enable holding circuit 10 is logically ORed and stored (case 2).

この時、ライト用バイトイネーブル保持回路10に格納される値は、初期値“0000”または1ワード“1111”、1ワード未満の場合はLSB側(またはMSB側)から“1”アサートし論理ORして格納するので“0001”、“0011”、“0111”(または“1000”、“1100”、“1110”)の全5通りとなる。   At this time, the initial value “0000” or 1 word “1111” is stored in the write byte enable holding circuit 10, and if it is less than 1 word, “1” is asserted from the LSB side (or MSB side) and logical OR is performed. Therefore, there are five types of “0001”, “0011”, “0111” (or “1000”, “1100”, “1110”).

図3は、ライト用バイトイネーブル判定回路11の真理値表を示す。ライト用バイトイネーブル判定回路11は、ライト用バイトイネーブル保持回路10の出力が“0000”または“1xxx”、すなわち初期値または1ワード分のバイト数の書込みがされている時は“0”を出力し、ライト用バイトイネーブル保持回路10の出力が“0000”または“1xxx”以外、すなわち1ワード未満のバイト数のライトである時は“1”を出力する。ここで、「X」は「don't care」であることを示している。   FIG. 3 shows a truth table of the write byte enable determination circuit 11. The write byte enable determination circuit 11 outputs “0000” or “1xxx”, that is, outputs “0” when the initial value or the number of bytes for one word is written. If the output of the write byte enable holding circuit 10 is a write other than “0000” or “1xxx”, that is, a write with the number of bytes less than one word, “1” is output. Here, “X” indicates “don't care”.

図4は、デコーダ104の真理値表を示す。デコーダ104は、セレクタ103の出力が“1xxx”なら“1”を出力し、これ以外なら“0”を出力する。また、図5は、ライト用アドレスカウンタ12の真理値表を示す。ライト用アドレスカウンタ12は、AND回路101を介してライトREQが“1”をアサートし、かつ、デコーダ104の出力が“1”、すなわちライト動作時に1ワード分のバイトイネーブルに達した時のみ+1カウント更新する。   FIG. 4 shows a truth table of the decoder 104. The decoder 104 outputs “1” if the output of the selector 103 is “1xxx”, and outputs “0” otherwise. FIG. 5 shows a truth table of the write address counter 12. The write address counter 12 is +1 only when the write REQ asserts “1” via the AND circuit 101 and the output of the decoder 104 is “1”, that is, byte enable for one word is reached during the write operation. Update the count.

(2)書込み系の動作
図6および図7は、以上に説明した書込み系の動作を例示するタイムチャートである。図6は、ライトDATAを1バイト単位に順次にFIFO40へ書き込んでいくときの各回路の状態遷移を示している。また、図7は、ライトDATAを1〜4バイト単位に順次にFIFO40へ書き込んでいくときの各回路の状態遷移を示している。ライトBEは4ビットから成り、“1”をアサートしているビットの位置がライトDATAの有効バイトの位置に当る。当初、アドレスカウンタ12は「0」、ライト用イネーブル保持回路10は「0000」を保持しているものとする。
(2) Operation of Write System FIGS. 6 and 7 are time charts illustrating the operation of the write system described above. FIG. 6 shows a state transition of each circuit when the write DATA is sequentially written to the FIFO 40 in units of 1 byte. FIG. 7 shows the state transition of each circuit when the write DATA is sequentially written to the FIFO 40 in units of 1 to 4 bytes. The write BE is composed of 4 bits, and the position of the bit asserting “1” corresponds to the position of the valid byte of the write DATA. Initially, it is assumed that the address counter 12 holds “0” and the write enable holding circuit 10 holds “0000”.

ライトBEは4ビット未満が“1”アサートの場合、例えば、LSB側から“1”をアサートし、次のライトのタイミングでは、前のライトタイミングで“1”アサートしたビットは“0”としMSB側まで“1”をアサートしたら再びLSB側を“1”にアサートすることを許可する。これは、1ワードを構成している全バイトへの書込みが行なわれた後で、次アドレスへの書込みを行なうようにするためである。なお、ライトBEへの“1”アサートの方向を上記とは逆に、MSB側からLSB側に向けて行うようにしても差し支えない。   When the write BE is less than 4 bits and “1” is asserted, for example, “1” is asserted from the LSB side, and at the next write timing, the bit that was asserted “1” at the previous write timing is set to “0” and the MSB When "1" is asserted to the side, it is permitted to assert the LSB side to "1" again. This is for writing to the next address after writing to all the bytes constituting one word. Note that the direction of assertion of “1” to the write BE may be performed from the MSB side to the LSB side, contrary to the above.

(2.1)1バイト書込み動作
図6では、ライトDATA「01」〜「07」を7回に亘って連続して書き込んでいる。タイミング10まで“1”アサートが持続するライトREQが立ち上がるタイミング3では、ライトBE「0001」を伴ったライトDATA「01」が入力する。即ち、FIFO40のW ADD「0」の1バイト目にライトDATA「01」を書き込むための動作が始まる。ライト用イネーブル判定回路11は“0”を出力しているので、セレクタはライトBE「0001」を選択する(図2のケース1)。しかし、ライト用イネーブル保持回路10が「0001」を保持するようになるためは、次のタイミングを待つ必要がある。
(2.1) 1-byte Write Operation In FIG. 6, the write data “01” to “07” are continuously written seven times. At timing 3 when the write REQ in which “1” assertion continues until timing 10 rises, the write DATA “01” accompanied by the write BE “0001” is input. That is, the operation for writing the write DATA “01” to the first byte of W ADD “0” of the FIFO 40 starts. Since the write enable determination circuit 11 outputs “0”, the selector selects the write BE “0001” (case 1 in FIG. 2). However, in order for the write enable holding circuit 10 to hold “0001”, it is necessary to wait for the next timing.

タイミング4において、ライトBE「0010」を伴ったライトDATA「02」が入力する。ライトDATA「01」のFIFO40のW ADD「0」への書込みが完了し、W ADD「0」の2バイト目にライトDATA「02」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0001」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102の出力「0011」を選択する(図2のケース2)。ライト用イネーブル保持回路10が「0011」を保持するのは次のタイミングにおいてである。   At timing 4, write DATA “02” accompanied by write BE “0010” is input. The writing of the write DATA “01” to the W ADD “0” of the FIFO 40 is completed, and the operation for writing the write DATA “02” to the second byte of the W ADD “0” is started. Since the write enable holding circuit 10 holds “0001”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “0011” of the OR circuit 102 (see FIG. 3). Case 2 in FIG. The write enable holding circuit 10 holds “0011” at the next timing.

タイミング5において、ライトBE「0100」を伴ったライトDATA「03」が入力する。ライトDATA「02」のFIFO40のW ADD「0」への書込みが完了し、W ADD「0」の3バイト目にライトDATA「03」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0011」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102の出力「0111」を選択する(図2のケース2)。ライト用イネーブル保持回路10が「0111」を保持するのは次のタイミングにおいてである。   At timing 5, write DATA “03” accompanied by write BE “0100” is input. Writing of the write DATA “02” to the W ADD “0” of the FIFO 40 is completed, and an operation for writing the write DATA “03” to the third byte of the W ADD “0” is started. Since the write enable holding circuit 10 holds “0011”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “0111” of the OR circuit 102 (see FIG. 3). Case 2 in FIG. The write enable holding circuit 10 holds “0111” at the next timing.

タイミング6において、ライトBE「1000」を伴ったライトDATA「04」が入力する。ライトDATA「03」のFIFO40のW ADD「0」への書込みが完了し、W ADD「0」の4バイト目にライトDATA「04」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0111」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102の出力「1111」を選択する(図2のケース2)。ライト用イネーブル保持回路10が「1111」を保持するのは次のタイミングにおいてである。なお、この場合、デコーダ104は“1”を出力する(図4参照)。   At timing 6, the write DATA “04” accompanied by the write BE “1000” is input. The writing of the write DATA “03” to the W ADD “0” of the FIFO 40 is completed, and the operation for writing the write DATA “04” to the fourth byte of the W ADD “0” is started. Since the write enable holding circuit 10 holds “0111”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “1111” of the OR circuit 102 (see FIG. 3). Case 2 in FIG. The write enable holding circuit 10 holds “1111” at the next timing. In this case, the decoder 104 outputs “1” (see FIG. 4).

タイミング7において、ライトBE「0001」を伴ったライトDATA「05」が入力する。ライトDATA「04」のFIFO40のW ADD「0」への書込みが完了し、FIFO40の1バイト目にライトDATA「05」を書き込むための動作が始まる。デコーダ104が“1”を出力しているので、ライト用アドレスカウンタ12が+1更新されて(図5参照)、「1」となるため、ライトDATA「05」の書込みは、W ADD「1」に対して行なわれる。ライト用イネーブル保持回路10が「1111」を保持しているので、ライト用イネーブル判定回路11は“0”アサートし(図3参照)、セレクタ103はライトBE「0001」を選択する(図2のケース1)。ライト用イネーブル保持回路10が「0001」を保持するのは次のタイミングにおいてである。   At timing 7, the write DATA “05” accompanied by the write BE “0001” is input. The writing of the write DATA “04” to the W ADD “0” of the FIFO 40 is completed, and the operation for writing the write DATA “05” to the first byte of the FIFO 40 is started. Since the decoder 104 outputs “1”, the write address counter 12 is updated by +1 (see FIG. 5) and becomes “1”. Therefore, the write DATA “05” is written by W ADD “1”. To be done. Since the write enable holding circuit 10 holds “1111”, the write enable determination circuit 11 asserts “0” (see FIG. 3), and the selector 103 selects the write BE “0001” (see FIG. 2). Case 1). The write enable holding circuit 10 holds “0001” at the next timing.

タイミング8において、ライトBE「0010」を伴ったライトDATA「06」が入力する。ライトDATA「05」のFIFO40のW ADD「1」への書込みが完了し、FIFO40のW ADD「1」の2バイト目にライトDATA「06」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0001」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102の出力「0011」を選択する(図2のケース2)。ライト用イネーブル保持回路10が「0011」を保持するのは次のタイミングにおいてである。   At timing 8, the write DATA “06” accompanied by the write BE “0010” is input. The writing of the write DATA “05” to the W ADD “1” of the FIFO 40 is completed, and the operation for writing the write DATA “06” to the second byte of the W ADD “1” of the FIFO 40 starts. Since the write enable holding circuit 10 holds “0001”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “0011” of the OR circuit 102 (see FIG. 3). Case 2 in FIG. The write enable holding circuit 10 holds “0011” at the next timing.

タイミング9において、ライトBE「0100」を伴ったライトDATA「07」が入力する。ライトDATA「06」のFIFO40のW ADD「1」への書込みが完了し、これでFIFO40のアドレス「0」の4バイト全部がライトDATAで埋まったことになる。FIFO40のW ADD「1」の3バイト目にライトDATA「07」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0011」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102の出力「0111」を選択する(図2のケース2)。ライト用イネーブル保持回路10が「0111」を保持するのは次のタイミングにおいてである。なお、タイミング10以降は、ライトREQが“0”されているため、タイミング9における現状を維持する。   At timing 9, write DATA “07” accompanied by write BE “0100” is input. Writing of the write data “06” to W ADD “1” of the FIFO 40 is completed, and all 4 bytes of the address “0” of the FIFO 40 are filled with the write DATA. The operation for writing the write DATA “07” to the third byte of W ADD “1” of the FIFO 40 starts. Since the write enable holding circuit 10 holds “0011”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “0111” of the OR circuit 102 (see FIG. 3). Case 2 in FIG. The write enable holding circuit 10 holds “0111” at the next timing. Note that the current state at the timing 9 is maintained since the write REQ is “0” after the timing 10.

(2.2)アトランダム書込み動作
図6は、1バイト書込みを繰り返す単純な書込みパターンを示したが、図7では、より複雑な書込みパターンを提示する。即ち、アトランダムな書込みパターンの一例として、2回の1ワード幅書込みに続いて、2回の2バイト書込み、1回の1バイト書込み、2回の3バイト書込みを順次に行う態様を提示する。
(2.2) At-Random Write Operation FIG. 6 shows a simple write pattern in which 1-byte write is repeated, but FIG. 7 presents a more complicated write pattern. That is, as an example of an at-random write pattern, a mode is presented in which two 2-byte writes, one 1-byte write, and two 3-byte writes are sequentially performed following two one-word width writes. .

図7において、タイミング10まで“1”アサートが持続するライトREQが立ち上がるタイミング3では、ライトBE「1111」を伴ったライトDATA「01〜04」が入力する。即ち、FIFO40のW ADD「0」の1〜4バイト目にライトDATA「01〜04」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0000」を保持しているので、ライト用イネーブル判定回路11は“0”アサートし(図3参照)、セレクタ103はライトBE「1111」を選択する(図2のケース1)。しかし、ライト用イネーブル保持回路10が「1111」を保持するようになるためは、次のタイミングを待つ必要がある。なお、この場合、デコーダ104が“1”を出力する。   In FIG. 7, at timing 3 at which the write REQ in which “1” assertion continues until timing 10 rises, the write DATA “01 to 04” accompanied by the write BE “1111” is input. That is, the operation for writing the write data “01 to 04” into the first to fourth bytes of W ADD “0” of the FIFO 40 starts. Since the write enable holding circuit 10 holds “0000”, the write enable determination circuit 11 asserts “0” (see FIG. 3), and the selector 103 selects the write BE “1111” (see FIG. 2). Case 1). However, in order for the write enable holding circuit 10 to hold “1111”, it is necessary to wait for the next timing. In this case, the decoder 104 outputs “1”.

タイミング4において、ライトBE「1111」を伴ったライトDATA「05〜08」が入力する。デコーダ104が“1”を出力しているので、ライト用アドレスカウンタ12が+1更新されて「1」となるため(図5参照)、FIFO40のW ADD「1」の1〜4バイト目にライトDATA「05〜08」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「1111」を保持しているので、ライト用イネーブル判定回路11は“0”アサートし(図3参照)、セレクタ103はライトBE「1111」を選択する(図2のケース1)。ライト用イネーブル保持回路10は次のタイミングにおいても引き続き「1111」を保持する。この場合も引き続き、デコーダ104が“1”を出力する。   At timing 4, the write DATA “05 to 08” accompanied by the write BE “1111” is input. Since the decoder 104 outputs “1”, the write address counter 12 is updated by +1 to become “1” (see FIG. 5), so that writing is performed in the first to fourth bytes of WADD “1” of the FIFO 40. The operation for writing DATA “05-08” starts. Since the write enable holding circuit 10 holds “1111”, the write enable determination circuit 11 asserts “0” (see FIG. 3), and the selector 103 selects the write BE “1111” (see FIG. 2). Case 1). The write enable holding circuit 10 continues to hold “1111” at the next timing. Also in this case, the decoder 104 continues to output “1”.

タイミング5において、ライトBE「0011」を伴ったライトDATA「0910」が入力する。デコーダ104が“1”を出力しているので、ライト用アドレスカウンタ12が+1更新されて「2」となるため(図5参照)、FIFO40のW ADD「2」の1〜2バイト目にライトDATA「0910」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「1111」を保持しているので、ライト用イネーブル判定回路11は“0”アサートし(図3参照)、セレクタ103はライトBE「0011」を選択する(図2のケース1)。ライト用イネーブル保持回路10は次のタイミングにおいて「0011」を保持する。この場合、デコーダ104は“0”を出力する。   At timing 5, the write DATA “0910” accompanied by the write BE “0011” is input. Since the decoder 104 outputs “1”, the write address counter 12 is updated by +1 to become “2” (see FIG. 5), so that the write is performed on the first and second bytes of WADD “2” of the FIFO 40. The operation for writing DATA “0910” starts. Since the write enable holding circuit 10 holds “1111”, the write enable determination circuit 11 asserts “0” (see FIG. 3), and the selector 103 selects the write BE “0011” (see FIG. 2). Case 1). The write enable holding circuit 10 holds “0011” at the next timing. In this case, the decoder 104 outputs “0”.

タイミング6において、ライトBE「1100」を伴ったライトDATA「1112」が入力する。デコーダ104が“0”を出力しているので、ライト用アドレスカウンタ12+1更新されず、「2」のままであるため(図5参照)、FIFO40のW ADD「2」の3〜4バイト目にライトDATA「1112」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0011」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102出力「1111」を選択する(図2のケース2)。ライト用イネーブル保持回路10は次のタイミングにおいて「1111」を保持する。この場合、デコーダ104は“1”を出力する。   At timing 6, the write data “1112” accompanied by the write BE “1100” is input. Since the decoder 104 outputs “0”, the write address counter 12 + 1 is not updated and remains “2” (see FIG. 5), so the third to fourth bytes of WADD “2” of the FIFO 40 The operation for writing the write DATA “1112” starts. Since the write enable holding circuit 10 holds “0011”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “1111” of the OR circuit 102 (see FIG. 3). Case 2). The write enable holding circuit 10 holds “1111” at the next timing. In this case, the decoder 104 outputs “1”.

タイミング7において、ライトBE「0001」を伴ったライトDATA「13」が入力する。デコーダ104が“1”を出力しているので、ライト用アドレスカウンタ12が+1更新されて「3」となるため(図5参照)、FIFO40のW ADD「3」の1バイト目にライトDATA「13」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「1111」を保持しているので、ライト用イネーブル判定回路11は“0”アサートし(図3参照)、セレクタ103はライトBE「0001」を選択する(図2のケース1)。ライト用イネーブル保持回路10は次のタイミングにおいて「0001」を保持する。この場合、デコーダ104は“1”を出力しない。   At timing 7, the write DATA “13” accompanied by the write BE “0001” is input. Since the decoder 104 outputs “1”, the write address counter 12 is updated by +1 to “3” (see FIG. 5), so that the write DATA “1” is written in the first byte of W ADD “3” of the FIFO 40. The operation for writing "13" begins. Since the write enable holding circuit 10 holds “1111”, the write enable determination circuit 11 asserts “0” (see FIG. 3), and the selector 103 selects the write BE “0001” (see FIG. 2). Case 1). The write enable holding circuit 10 holds “0001” at the next timing. In this case, the decoder 104 does not output “1”.

タイミング8において、ライトBE「1110」を伴ったライトDATA「14〜16」が入力する。デコーダ104が“0”を出力しているので、ライト用アドレスカウンタ12+1更新されず、「3」のままであるため(図5参照)、FIFO40のW ADD「3」の2〜4バイト目にライトDATA「14〜16」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「0001」を保持しているので、ライト用イネーブル判定回路11は“1”アサートし(図3参照)、セレクタ103はOR回路102出力「1111」を選択する(図2のケース1)。この場合、デコーダ104は“1”を出力する。   At timing 8, the write data “14 to 16” accompanied by the write BE “1110” is input. Since the decoder 104 outputs “0”, the write address counter 12 + 1 is not updated and remains “3” (see FIG. 5), so the second to fourth bytes of WADD “3” in the FIFO 40 The operation for writing the write data “14 to 16” starts. Since the write enable holding circuit 10 holds “0001”, the write enable determination circuit 11 asserts “1” (see FIG. 3), and the selector 103 selects the output “1111” of the OR circuit 102 (see FIG. 3). Case 2). In this case, the decoder 104 outputs “1”.

タイミング9において、ライトBE「0111」を伴ったライトDATA「17〜19」が入力する。デコーダ104が“1”を出力しているので、ライト用アドレスカウンタ12が+1更新されて「4」となるため(図5参照)、FIFO40のW ADD「4」の1〜3バイト目にライトDATA「17〜19」を書き込むための動作が始まる。ライト用イネーブル保持回路10が「1111」を保持しているので、ライト用イネーブル判定回路11は“0”アサートし(図3参照)、セレクタ103はライトBE「0111」を選択する(図2のケース1)。ライト用イネーブル保持回路10は次のタイミングにおいて「0111」を保持する。この場合、デコーダ104は“1”を出力しない。なお、タイミング10以降は、ライトREQが“0”されているため、タイミング9における現状を維持する。   At timing 9, write data “17 to 19” accompanied by write BE “0111” is input. Since the decoder 104 outputs “1”, the write address counter 12 is updated by +1 to “4” (see FIG. 5), so that the write is performed on the first to third bytes of WADD “4” of the FIFO 40. The operation for writing DATA “17-19” starts. Since the write enable holding circuit 10 holds “1111”, the write enable determination circuit 11 asserts “0” (see FIG. 3), and the selector 103 selects the write BE “0111” (see FIG. 2). Case 1). The write enable holding circuit 10 holds “0111” at the next timing. In this case, the decoder 104 does not output “1”. Note that the current state at the timing 9 is maintained since the write REQ is “0” after the timing 10.

以上の一連の動作から、1ワード未満のライト動作は、FIFOアドレスをホールド状態にしたまま1バイト単位でFIFO40にデータを格納し、1ワードに達したらFIFOアドレスを更新し、ライトDATAをFIFO40の1ワード単位でアラインしていくことが分かる。   From the above series of operations, the write operation of less than one word stores data in the FIFO 40 in units of 1 byte with the FIFO address held, updates the FIFO address when it reaches 1 word, and writes the write DATA to the FIFO 40. It can be seen that alignment is performed in units of one word.

(3)読出し系の構成
次に、図1の右側に示されている読出し系について、アドレス比較器50およびメモリEMPTYフラグ60を含めて説明する。リードREQ(=R REQ)の“1”アサート時に、FIFO40のリードアドレス(R ADD)からリードDATA(R DATA)が読み出される。このとき、リードDATAの内、リードBEで指定されるバイトが有効である。
(3) Configuration of Read System Next, the read system shown on the right side of FIG. 1 will be described including the address comparator 50 and the memory EMPTY flag 60. When the read REQ (= R REQ) is “1” asserted, the read DATA (R DATA) is read from the read address (R ADD) of the FIFO 40. At this time, the byte specified by the read BE is valid in the read DATA.

読出し系は、リード用アドレスカウンタ22、デコーダ204、AND回路201、アドレス比較器30、リード用バイトイネーブル保持回路20、リード用バイトイネーブル判定回路21、OR回路202、セレクタ203、AND回路501、AND回路502、バイト読出し判定フラグ50およびセレクタ503で構成されている。   The read system includes a read address counter 22, a decoder 204, an AND circuit 201, an address comparator 30, a read byte enable holding circuit 20, a read byte enable determination circuit 21, an OR circuit 202, a selector 203, an AND circuit 501, and an AND circuit. A circuit 502, a byte read determination flag 50, and a selector 503 are included.

リード用アドレスカウンタ22は、R DATAのR ADDを示し、FIFO40から1ワード分のR DATAが読み出されると、+1更新される。即ち、デコーダ204はリードBEの4バイト目が“1”なら“1”アサートし、AND回路201は、リードREQとデコーダ204の“1”アサート状態によりリード用アドレスカウンタ22を+1更新するためのイネーブル信号ENを“1”アサートする。   The read address counter 22 indicates R ADD of R DATA, and is updated by +1 when one word of R DATA is read from the FIFO 40. That is, the decoder 204 asserts “1” if the fourth byte of the read BE is “1”, and the AND circuit 201 updates the read address counter 22 by +1 according to the read REQ and the decoder 204 “1” asserted state. The enable signal EN is asserted “1”.

アドレス比較器30は、ライト用アドレスカウンタ12の出力とリード用アドレスカウンタ22の出力を比較し、これら2つのカウンタの出力の値が一致した時は“1”を出力し、不一致の時は“0”を出力する。なお、2つのカウンタの間にはキャリーフラグが設けられていて、カウンタが最大値を超えた後、2つのカウンタの関係がフリーランにならないように制御している。   The address comparator 30 compares the output of the write address counter 12 and the output of the read address counter 22, and outputs “1” when the output values of these two counters match, and outputs “1” when they do not match. 0 ”is output. A carry flag is provided between the two counters, and control is performed so that the relationship between the two counters does not become free run after the counter exceeds the maximum value.

AND回路601は、アドレス比較器30における比較の結果により2つのカウンタの出力の値が一致し、かつライトREQがなくリードREQがあるときにメモリEMPTYフラグ60をセットする。即ち、メモリEMPTYフラグ60は、FIFO40に保持されているデータが空になると“1”にアサートするEMPTY信号を出力し、ライトREQがあるとリセットされる。   The AND circuit 601 sets the memory EMPTY flag 60 when the output values of the two counters match with each other as a result of the comparison in the address comparator 30, and there is no write REQ and there is a read REQ. In other words, the memory EMPTY flag 60 outputs an EMPTY signal asserted to “1” when the data held in the FIFO 40 becomes empty, and is reset when there is a write REQ.

リード用バイトイネーブル保持回路20は、ライトBE、ライトBEとリード用バイトイネーブル保持回路20の出力との論理和またはリード用バイトイネーブル保持回路20の出力のいずれかを保持する。   The read byte enable holding circuit 20 holds either the write BE, the logical sum of the write BE and the output of the read byte enable holding circuit 20, or the output of the read byte enable holding circuit 20.

リード用バイトイネーブル判定回路21は、リード用バイトイネーブル保持回路20が保持している2値情報により、初期状態であるか、または読み出したデータが1ワード分のデータに達したかということと、1ワード未満であるかということとの判定結果(前者なら“0”、後者なら“1”)をアサートする。   The read byte enable determination circuit 21 is in an initial state based on the binary information held by the read byte enable holding circuit 20, or whether the read data has reached one word of data, Assert the determination result whether it is less than one word ("0" for the former, "1" for the latter).

OR回路202は、ライトBEとリード用バイトイネーブル保持回路20が保持している2値情報の論理和を出力する。つまり、現状のリード用バイトイネーブル保持回路20の出力に、新規入力のライトBEを加えるのである。   The OR circuit 202 outputs a logical sum of the binary information held by the write BE and the read byte enable holding circuit 20. That is, a new input write BE is added to the output of the current read byte enable holding circuit 20.

セレクタ203は、ライトREQ、リードREQ、アドレス比較器30の出力およびリード用バイトイネーブル判定回路21の出力をセレクト信号とし、ライトBE、またはOR回路202の出力、またはリード用バイトイネーブル保持回路20の出力のいずれかを選択してリード用バイトイネーブル保持回路20へ出力する。   The selector 203 uses the write REQ, read REQ, output of the address comparator 30 and output of the read byte enable determination circuit 21 as a select signal, and outputs the write BE or OR circuit 202 or read byte enable holding circuit 20. One of the outputs is selected and output to the read byte enable holding circuit 20.

AND回路501は、リードREQが“1”アサートで、かつアドレス比較器30の出力が“1”で、かつデコーダ204の出力が“0”即ちバイト読出しのときに、バイト読出し判定フラグ50をセットする。AND回路502は、リードREQが“1”アサートで、かつデコーダ204の出力が“1”、即ち1ワード分に達した位置まで読み出したときはバイト読出し判定フラグ50をリセットする。   The AND circuit 501 sets the byte read determination flag 50 when the read REQ is asserted “1”, the output of the address comparator 30 is “1”, and the output of the decoder 204 is “0”, that is, byte read. To do. The AND circuit 502 resets the byte read determination flag 50 when the read REQ is asserted to “1” and the output of the decoder 204 is “1”, that is, when the read has reached one word.

バイト読出し判定フラグ50は、ライト用バイトイネーブル保持回路10またはリード用バイトイネーブル保持回路20に保持されているバイトイネーブルを選択するために使用される。   The byte read determination flag 50 is used to select a byte enable held in the write byte enable holding circuit 10 or the read byte enable holding circuit 20.

セレクタ503は、バイト読出し判定フラグ50の出力と、リードREQと、アドレス比較器30の出力をセレクト信号とし、All“0”の値またはリード用バイトイネーブル保持回路10の値またはリード用バイトイネーブル保持回路20の値の値またはAll“1”の値を選択してリードBEとして出力する。   The selector 503 uses the output of the byte read determination flag 50, the read REQ, and the output of the address comparator 30 as a select signal, and holds the value of All “0”, the value of the read byte enable holding circuit 10 or the read byte enable. The value of the circuit 20 or the value of All “1” is selected and output as the read BE.

図8は、リード用バイトイネーブル保持回路20を設定するためのセレクタ203の真理値表を示す。セレクタ203は、アドレス比較器30の出力が“0”ならリード用バイトイネーブル保持回路20の出力を格納(ホールド)する(ケース2)。   FIG. 8 shows a truth table of the selector 203 for setting the read byte enable holding circuit 20. If the output of the address comparator 30 is “0”, the selector 203 stores (holds) the output of the read byte enable holding circuit 20 (case 2).

一方、アドレス比較器30の出力が“1”で、かつライトREQとリードREQが“1”ならライトBEの値を選択する(ケース3)。   On the other hand, if the output of the address comparator 30 is “1” and the write REQ and read REQ are “1”, the value of the write BE is selected (case 3).

また、アドレス比較器30の出力が“1”で、かつライトREQが“1”で、かつリードREQが”0”で、かつリード用バイトイネーブル判定回路21の出力が“0”ならライトBEの出力を選択する(ケース4)。ただし、このとき、リード用バイトイネーブル判定回路21の出力が“1”なら、リード用バイトイネーブル保持回路20が前回のライトで格納した値にライトBEの値を論理ORした値を選択する(ケース5)。   If the output of the address comparator 30 is “1”, the write REQ is “1”, the read REQ is “0”, and the output of the read byte enable determination circuit 21 is “0”, the write BE Select an output (Case 4). At this time, however, if the output of the read byte enable determination circuit 21 is “1”, the read byte enable holding circuit 20 selects a value obtained by logically ORing the value of the write BE with the value stored in the previous write (case). 5).

そして、以上の全ての場合でないときは、リード用バイトイネーブル保持回路20の出力を格納(ホールド)する(ケース1)。   If not all of the above cases, the output of the read byte enable holding circuit 20 is stored (held) (case 1).

図9はリード用バイトイネーブル判定回路21の真理値表を示す。リード用バイトイネーブル判定回路21は、リード用バイトイネーブル保持回路20の出力が“0000”即ち初期値、または“1xxx”即ち1ワード(4バイト)に達した読み出しのときは“0”をアサートし、リード用バイトイネーブル判定回路20の出力が“0000”または“1111”以外、即ち1ワード未満のバイト数を示している時は“1”を出力する。このリード用バイトイネーブル判定回路21の論理は、図3に示したライト用バイトイネーブル判定回路11の論理と同じである。   FIG. 9 shows a truth table of the read byte enable determination circuit 21. The read byte enable determination circuit 21 asserts “0” when the output of the read byte enable holding circuit 20 reaches “0000”, that is, an initial value, or “1xxx”, that is, one word (4 bytes). When the output of the read byte enable determination circuit 20 is other than “0000” or “1111”, that is, indicates the number of bytes less than one word, “1” is output. The logic of the read byte enable determination circuit 21 is the same as the logic of the write byte enable determination circuit 11 shown in FIG.

図10はデコーダ204の真理値表を示す。デコーダ204は、セレクタ503の出力が“1xxx”即ちリードDATAが1ワードに達したときに“1”、セレクタ503の出力が“1xxx”以外のときに“0”を出力する。   FIG. 10 shows a truth table of the decoder 204. The decoder 204 outputs “1xxx” when the output of the selector 503 is “1xxx”, that is, when the read DATA reaches one word, and outputs “0” when the output of the selector 503 is other than “1xxx”.

図11はリード用アドレスカウンタ22の真理値表を示す。リード用アドレスカウンタ22は、デコーダ204の出力が“1”にリードREQがあると、1クロック後に+1更新される。その他の場合には、リード用アドレスカウンタ22は現状の出力を保持する。   FIG. 11 shows a truth table of the read address counter 22. The read address counter 22 is updated by +1 after one clock when the output of the decoder 204 is “1” and there is a read REQ. In other cases, the read address counter 22 holds the current output.

図12はアドレス比較器30の真理値表を示す。アドレス比較器30はライト用アドレスカウンタ12のカウント値とリード用アドレスカウンタ22のカウント値が等しいときに“1”を出力し、その他の場合には“0”を出力する。   FIG. 12 shows a truth table of the address comparator 30. The address comparator 30 outputs “1” when the count value of the write address counter 12 is equal to the count value of the read address counter 22, and outputs “0” otherwise.

図13はバイト読出し判定フラグ50の真理値表を示す。バイト読出し判定フラグ50は、アドレス比較器30の出力が“1”で、かつデコーダ204の出力が“0”即ちリードDATAが1ワードに達しないときに、リードREQがあると“1”にセットされる。そして、デコーダ204の出力が“1”即ちリードDATAが1ワードに達したときにリードREQがあると“0”にリセットされる。   FIG. 13 shows a truth table of the byte read determination flag 50. The byte read determination flag 50 is set to “1” when there is a read REQ when the output of the address comparator 30 is “1” and the output of the decoder 204 is “0”, that is, the read DATA does not reach one word. Is done. When the output of the decoder 204 is “1”, that is, when the read DATA reaches one word, if there is a read REQ, it is reset to “0”.

図14はセレクタ503の真理値表を示す。セレクタ503は、リードREQが“0”なら“0000”を出力する(ケース1)。   FIG. 14 shows a truth table of the selector 503. The selector 503 outputs “0000” if the read REQ is “0” (case 1).

一方、リードREQが“1”で、かつバイト読出し判定フラグ50の出力が”1“なら、リード用バイトイネーブル保持回路20の出力を選択する(ケース2)。   On the other hand, if the read REQ is “1” and the output of the byte read determination flag 50 is “1”, the output of the read byte enable holding circuit 20 is selected (case 2).

また、リードREQが“1”で、かつバイト読出し判定フラグ50の出力が“0”で、かつアドレス比較器30の出力が“1”ならライト用バイトイネーブル保持回路10の出力を選択する(ケース3)。ただし、このときにアドレス比較器30の出力が“0”なら“1111”を選択する(ケース4)。   If the read REQ is “1”, the output of the byte read determination flag 50 is “0”, and the output of the address comparator 30 is “1”, the output of the write byte enable holding circuit 10 is selected (case). 3). However, if the output of the address comparator 30 is “0” at this time, “1111” is selected (case 4).

図15はメモリEMPTYフラグ60の真理値表を示す。メモリEMPTYフラグ60は、アドレス比較器30の出力が“1”で、かつライトREQが“0”で、かつリードREQが“1”なら“1”にセットされる。新たに書き込まれるデータが無い状態で最後にライトした1ワード未満のデータの読出しが行なわれるからである。また、ライトREQが“1”なら“0”リセットされる。   FIG. 15 shows a truth table of the memory EMPTY flag 60. The memory EMPTY flag 60 is set to “1” when the output of the address comparator 30 is “1”, the write REQ is “0”, and the read REQ is “1”. This is because data less than one word written last is read in a state where there is no newly written data. If the write REQ is “1”, “0” is reset.

(4)読出し系の動作
図16図と図17は、以上に説明した読出し系の動作を例示するタイムチャートである。図16は、リードDATAを1バイト単位に順次にFIFO40から読み出していくときの各回路の状態遷移を示している。また、図17は、1以上のバイトから成るリードDATAをアトランダムに読み出していくときの各回路の状態遷移を示している。当初は、ライトアドレスカウンタ12とリードアドレスカウンタ22は「0」であり、ライト用バイトイネーブル保持回路10とリード用バイトイネーブル保持回路20は“0000”を保持しているものとする。従って、アドレス比較器30は“1”を出力し、メモリEMPTYフラグ60も“1”を出力している。また、バイト読出し判定フラグ50はリセット状態にある。
(4) Operation of Read System FIGS. 16 and 17 are time charts illustrating the operation of the read system described above. FIG. 16 shows the state transition of each circuit when reading DATA from the FIFO 40 sequentially in units of 1 byte. FIG. 17 shows the state transition of each circuit when reading DATA consisting of one or more bytes is read at random. Initially, it is assumed that the write address counter 12 and the read address counter 22 are “0”, and the write byte enable holding circuit 10 and the read byte enable holding circuit 20 hold “0000”. Therefore, the address comparator 30 outputs “1”, and the memory EMPTY flag 60 also outputs “1”. The byte read determination flag 50 is in a reset state.

(4.1)1バイト読出し動作
図16は、図6に示した書込み動作中にリードREQが入力し、順次に1バイトずつ読み出した場合を示し、ライト系の波形は図6のコピーとなっている。リードREQは、メモリEMPTYが“0”の時、即ちFIFO40に1バイト以上のデータが格納されている時、“1”にすることが可能である。タイミング4からタイミング11の間でリードREQが“1”となっており、この間にFIFO40に順次書き込まれるライトDATA「01」〜「07」がリードDATA「01」〜「07」として順次読み出される。
(4.1) 1-byte read operation FIG. 16 shows a case where the read REQ is input during the write operation shown in FIG. 6 and the data is read one byte at a time, and the waveform of the write system is a copy of FIG. . The read REQ can be set to “1” when the memory EMPTY is “0”, that is, when data of 1 byte or more is stored in the FIFO 40. The read REQ is “1” between the timing 4 and the timing 11, and during this time, the write DATA “01” to “07” sequentially written in the FIFO 40 is sequentially read as the read DATA “01” to “07”.

タイミング3では、リード用バイトイネーブル保持回路20は“0000”を保持しているので、リード用イネーブル判定回路21は“1”を出力している(図9参照)。また、アドレス比較器30は“1”を出力し(図12参照)、ライトREQは“1”、リードREQは“0”であるため、セレクタ203はライトBE“0001”を選択する(図8のケース4)。リードREQの入力は未だないので、セレクタ503は“0000”を出力している(図14のケース1)。   At timing 3, since the read byte enable holding circuit 20 holds “0000”, the read enable determination circuit 21 outputs “1” (see FIG. 9). Since the address comparator 30 outputs “1” (see FIG. 12), the write REQ is “1”, and the read REQ is “0”, the selector 203 selects the write BE “0001” (FIG. 8). Case 4). Since the read REQ has not yet been input, the selector 503 outputs “0000” (case 1 in FIG. 14).

タイミング4になると、タイミング3で“1”アサートされたライトREQのため、メモリEMPTYフラグ60は“0”を出力し、タイミング11まで持続する(図15参照)。リード用バイトイネーブル保持回路20はタイミング3においてセレクタ203が選択した“0001”を保持し、リード用バイトイネーブル判定回路21は“1”を出力する(図9参照)。リードREQが“1”アサートされるので、セレクタ203はライトBE“0010”を出力する(図8のケース3)。また、セレクタ503はライトバイトイネーブル保持回路10が保持している“0001”を選択する(図14のケース3)。即ち、タイミング3で入力しタイミング4でFIFO40に書き込まれた1バイト目のライトDATA“01”が、1バイト目のリードDATA“01”として読み出されることを示す。この場合、デコーダ204は“0”を出力するので、AND回路501の出力は“1”となる。   At timing 4, since the write REQ is asserted by “1” at timing 3, the memory EMPTY flag 60 outputs “0” and continues until timing 11 (see FIG. 15). The read byte enable holding circuit 20 holds “0001” selected by the selector 203 at timing 3, and the read byte enable determination circuit 21 outputs “1” (see FIG. 9). Since the read REQ is asserted by “1”, the selector 203 outputs the write BE “0010” (case 3 in FIG. 8). The selector 503 selects “0001” held by the write byte enable holding circuit 10 (case 3 in FIG. 14). That is, the first byte write DATA “01” input at timing 3 and written to the FIFO 40 at timing 4 is read as the first byte read DATA “01”. In this case, since the decoder 204 outputs “0”, the output of the AND circuit 501 is “1”.

タイミング5では、上記末文のセット条件成立を受けて、バイト読出し判定フラグ50が“1”にセットされる(図13)。従って、セレクタ503はリード用バイトイネーブル保持回路20が保持する“0010”を選択する(図14のケース2)。即ち、タイミング4で入力しタイミング5でFIFO40に書き込まれた2バイト目のライトDATA“02”が、2バイト目のリードDATA“02”として読み出されることを示す。   At timing 5, the byte read determination flag 50 is set to “1” in response to the final sentence setting condition being satisfied (FIG. 13). Accordingly, the selector 503 selects “0010” held by the read byte enable holding circuit 20 (case 2 in FIG. 14). That is, the second byte write DATA “02” input at the timing 4 and written to the FIFO 40 at the timing 5 is read as the second byte read DATA “02”.

タイミング6もタイミング5と同様に推移する。タイミング7では、ライト用アドレスカウンタ12とリード用アドレスカウンタ22の不一致が生じるのでアドレス比較器30は“0”を出力する(図12参照)。従って、AND回路501の出力は“0”となる。また、リードBEは“1000”となるので、AND回路502の出力は“1”となって、バイト読出し判定フラグ50のリセット条件が成立する(図13)。また、デコーダ204が“1”を出力する。更に、リード用バイトイネーブル保持回路20が“1000”を保持しているので、バイト読出し判定回路21は“0”となる(図9参照)。   Timing 6 changes in the same manner as timing 5. At timing 7, the address comparator 30 outputs “0” because of a mismatch between the write address counter 12 and the read address counter 22 (see FIG. 12). Therefore, the output of the AND circuit 501 is “0”. Since the read BE is “1000”, the output of the AND circuit 502 is “1”, and the reset condition of the byte read determination flag 50 is satisfied (FIG. 13). Further, the decoder 204 outputs “1”. Further, since the read byte enable holding circuit 20 holds “1000”, the byte read determination circuit 21 becomes “0” (see FIG. 9).

タイミング8において、バイト読出し判定フラグ50が“0”にリセットされる。また、デコーダ204が“1”を出力しているので、リード用アドレスカウンタ22が「1」に更新され(図11参照)、アドレス比較器30は再び“1”を出力する(図12参照)。従って、セレクタ503はライト用イネーブル保持回路10が保持している“0001”を選択する(図14のケース3)。これによって、AND回路501の出力は“1”、AND回路502の出力は“0”となる。セレクタ203はライトBE“0010”を選択する(図8のケース3)。   At timing 8, the byte read determination flag 50 is reset to “0”. Since the decoder 204 outputs “1”, the read address counter 22 is updated to “1” (see FIG. 11), and the address comparator 30 outputs “1” again (see FIG. 12). . Therefore, the selector 503 selects “0001” held by the write enable holding circuit 10 (case 3 in FIG. 14). As a result, the output of the AND circuit 501 is “1”, and the output of the AND circuit 502 is “0”. The selector 203 selects the write BE “0010” (case 3 in FIG. 8).

タイミング9において、バイト読出し判定フラグ50の出力が“1”となり(図13参照)、セレクタ503はリード溶媒とイネーブル保持回路20が保持している“0010”を選択する(図14のケース2)。セレクタ203は、ライトBE“0100”を選択する(図8のケース3)。   At timing 9, the output of the byte read determination flag 50 becomes “1” (see FIG. 13), and the selector 503 selects “0010” held by the read solvent and the enable holding circuit 20 (case 2 in FIG. 14). . The selector 203 selects the write BE “0100” (case 3 in FIG. 8).

タイミング10においてもタイミング9におけるのと同様に動作する。この時点で、ライトREQは“0”となるので、メモリEMPTYフラグ60のセット条件が成立する(図15参照)。   The operation at the timing 10 is the same as that at the timing 9. At this time, since the write REQ becomes “0”, the setting condition of the memory EMPTY flag 60 is satisfied (see FIG. 15).

タイミング11において、メモリEMPTYフラグ60の出力が“1”となる。リードREQも“0”となるので、これ以降、セレクタ503は“0000”をセンタし続ける(図14のケース1)。   At timing 11, the output of the memory EMPTY flag 60 becomes “1”. Since the read REQ also becomes “0”, the selector 503 continues to center “0000” thereafter (case 1 in FIG. 14).

(4.2)アトランダムな読出し動作
図17は、アトランダムな読出しパターンの一例として、1バイト,2バイト,1バイト,4バイト,4バイト,2バイトを6回連続して書き込み、5タイミング後に1バイトのみを書き込み、一方、1回目の連続書込みの間に、1バイトのみを読み出し、1回目の連続書込みと2回目の書込みの間に、1回目の連続書込みで書き込まれた残り全てのデータを読み出し、2回目の書込みの後でそのデータを読み出している。
(4.2) At-random read operation FIG. 17 shows an example of an at-random read pattern, in which 1 byte, 2 bytes, 1 byte, 4 bytes, 4 bytes, and 2 bytes are sequentially written 6 times, and 1 after 5 timings. Write only bytes, read only one byte during the first continuous write, and read all remaining data written in the first continuous write between the first continuous write and the second write Reading the data after the second writing.

このような複雑な書込み読出しパターンであっても、これまでの詳細な説明によって習得されたところにより、各回路の動作は容易に理解できると考えるので、これ以上の説明を省略する。ただ、タイミング9において、リードBEが“1110”となっているのは、タイミング4でのライトDATA“0203”とタイミング5でのライトDATA“04”とが結合されて、リードDATA“020304”とされていることを示す。このように、FIFO40からの読出しは、ワード区切りで行なわれるのである。   Even with such a complicated writing / reading pattern, the operation of each circuit is considered to be easily understood based on the fact that it has been learned by the detailed description so far, so that further description is omitted. However, at timing 9, the read BE is “1110” because the write DATA “0203” at the timing 4 and the write DATA “04” at the timing 5 are combined to become the read DATA “020304”. Indicates that In this way, reading from the FIFO 40 is performed at word breaks.

(4.3)リードBEの生成
ここで、図18から図22までのタイミングチャートを用いてリードBE信号の生成方法を説明する。これらの図では、ライト動作はいずれも同じであるが、リード動作はリードREQを“1”にアサートするタイミングを変えた複数のケースを示す。リードREQを“1”にアサートするタイミングにより、図18、図19、図20、図22は、1ワード未満のリード動作のケース、図21は1ワードのリード動作のケースとなっている。また、いずれも図16のタイミングチャートのリード動作と異なり、1バイトでライトしたデータが結合されて複数バイトでリードされるケースである。
(4.3) Generation of Lead BE Here, a method of generating a read BE signal will be described with reference to timing charts from FIG. 18 to FIG. In these drawings, the write operation is the same, but the read operation shows a plurality of cases in which the timing at which the read REQ is asserted to “1” is changed. Depending on the timing at which the read REQ is asserted to “1”, FIGS. 18, 19, 20, and 22 are cases of a read operation of less than one word, and FIG. 21 is a case of a read operation of one word. Further, in all cases, unlike the read operation of the timing chart of FIG. 16, data written by 1 byte is combined and read by a plurality of bytes.

図18のケースは、タイミング3からライト動作が始まり、タイミング4のリード動作時ではライト用バイトイネーブル保持回路10とリード用バイトイネーブル保持回路20は同じ“0001”を保持しており、バイト読出し判定フラグ50は初期値“0”のままで、ライト用バイトイネーブル保持回路10の“0001”をリードBEとして選択する(図14のケース3)。   In the case of FIG. 18, the write operation starts from timing 3, and at the read operation at timing 4, the write byte enable holding circuit 10 and the read byte enable holding circuit 20 hold the same “0001”. The flag 50 remains at the initial value “0”, and “0001” in the write byte enable holding circuit 10 is selected as the read BE (case 3 in FIG. 14).

タイミング5以降は、バイト読出し判定フラグ50を“1”にセットする。これは、1ワード未満でリード動作が行われたことを意味し、次回のリード動作では1ワードに達する残りのバイトデータを選択する機能で使用する。また、ライト用バイトイネーブル保持回路10は、タイミング3にセレクタ103が出力するライトBEを新規に格納した後(図2のケース1)、タイミング4からタイミング6までライトBEとライト用バイトイネーブル保持回路10の保持内容を論理ORした値を順次格納する(図2のケース2)。   After timing 5, the byte read determination flag 50 is set to “1”. This means that the read operation has been performed with less than one word, and in the next read operation, it is used for the function of selecting the remaining byte data that reaches one word. The write byte enable holding circuit 10 newly stores the write BE output by the selector 103 at timing 3 (case 1 in FIG. 2), and then writes the write BE and write byte enable holding circuit from timing 4 to timing 6. The values obtained by logically ORing the ten held contents are sequentially stored (case 2 in FIG. 2).

一方、リード用バイトイネーブル保持回路20は、タイミング3にセレクタ203が出力するライトBEを新規に格納した後(図8のケース3)、4クロック目で再び新規にライトBEを格納することにより(図8のケース4)、タイミング5からタイミング6では“0001”を除いた値にライトBEを論理ORした値を順次格納する(図8のケース5)。これは、タイミング4でリードBEが“0001”で処理が完了しているため、次回のリード動作で1バイト目を除いたデータを有効にするためである。   On the other hand, the read byte enable holding circuit 20 newly stores the write BE output from the selector 203 at timing 3 (case 3 in FIG. 8), and stores the write BE again at the fourth clock ( In case 4) in FIG. 8, from timing 5 to timing 6, values obtained by logically ORing the write BE to values excluding “0001” are sequentially stored (case 5 in FIG. 8). This is because at the timing 4, the read BE is “0001” and the processing is completed, so that data excluding the first byte is validated in the next read operation.

次に、タイミング7では、リード用バイトイネーブル保持回路20は“1110”となり、3ビット目までが“1”すなわち1ワードの区切りとなるが、アドレス比較器30は“0”の条件から、次回のリード動作で出力するリードBEを確保するため、“1110”をホールドする(図5のケース2)。タイミング8以降、ライト用バイトイネーブル保持回路10は更新を続け、リード用バイトイネーブル保持回路20とは無関係に動作していく。   Next, at timing 7, the read byte enable holding circuit 20 is “1110”, and the first bit is delimited by “1”, that is, one word, but the address comparator 30 is next time from the condition of “0”. In order to secure the lead BE that is output by the read operation, the “1110” is held (case 2 in FIG. 5). After timing 8, the write byte enable holding circuit 10 continues to be updated and operates independently of the read byte enable holding circuit 20.

タイミング10のリード動作では、バイト読出し判定フラグ50の出力“1”により、リード用バイトイネーブル保持回路20の“1110”をリードBEとして選択する(図14のケース2)。リード処理が完了したタイミング11ではいずれの条件にも当てはまらないのでリード用バイトイネーブル保持回路20の“1110”にホールドする(図8のケース1)。   In the read operation at the timing 10, “1110” of the read byte enable holding circuit 20 is selected as the read BE by the output “1” of the byte read determination flag 50 (case 2 in FIG. 14). At the timing 11 when the read process is completed, none of the conditions is satisfied, so the read byte enable holding circuit 20 holds “1110” (case 1 in FIG. 8).

図19は、最初のリード動作を図18に対して1タイミング遅くしたケースを示している。リード動作が行われるタイミング5までライト用バイトイネーブル保持回路10と、リード用バイトイネーブル保持回路20は同値に更新し、タイミング5のリード動作でリードBE“0011”を出力し、タイミング7でアドレス比較器30は“0”の条件から、リード用バイトイネーブル保持回路20の“1100”をホールドする(図8のケース2)。次回のリード動作(タイミング10)でリードBE“1100”を出力する。   FIG. 19 shows a case where the initial read operation is delayed by one timing with respect to FIG. The write byte enable holding circuit 10 and the read byte enable holding circuit 20 are updated to the same value until the timing 5 at which the read operation is performed, the read BE “0011” is output by the read operation at the timing 5, and the address comparison is performed at the timing 7. The device 30 holds “1100” of the read byte enable holding circuit 20 from the condition “0” (case 2 in FIG. 8). The read BE “1100” is output in the next read operation (timing 10).

図20は、最初のリード動作を図18に対して2クロック遅くしたケースを示している。リード動作が行われるタイミング6までライト用バイトイネーブル保持回路10と、リード用バイトイネーブル保持回路20は同値に更新し、タイミング6のリード動作でリードBE“0111”を出力し、タイミング7でアドレス比較器30は“0”の条件から、リード用バイトイネーブル保持回路20の“1000”をホールドする(図8のケース2)。次回のリード動作(タイミング10)でリードBE“1000”を出力する。   FIG. 20 shows a case where the initial read operation is delayed by 2 clocks with respect to FIG. The write byte enable holding circuit 10 and the read byte enable holding circuit 20 are updated to the same value until the timing 6 at which the read operation is performed, the read BE “0111” is output by the read operation at the timing 6, and the address comparison is performed at the timing 7. The device 30 holds “1000” of the read byte enable holding circuit 20 from the condition of “0” (case 2 in FIG. 8). The read BE “1000” is output in the next read operation (timing 10).

図21は、1ワード以上のライト動作が行われる間、一度もリード動作を行わないケースを示している。タイミング7でライト動作は1ワードに達し、ライト用アドレスカウンタ12が+1カウント更新する。リード用アドレスカウンタ22は初期値のままであるため、タイミング7でアドレス比較器30の出力は“0”になる。1ワード未満のリード動作は行っていないため、バイト読出し判定フラグ50は“0”のままであり、ライト用バイトイネーブル保持回路10と、リード用バイトイネーブル保持回路20は同値に更新していく。タイミング7でアドレス比較器30は“0”の条件から、リード用バイトイネーブル保持回路20の“1111”をホールドする(図8のケース2)。   FIG. 21 shows a case where a read operation is never performed while a write operation of one word or more is performed. At timing 7, the write operation reaches one word, and the write address counter 12 updates +1 count. Since the read address counter 22 remains at the initial value, the output of the address comparator 30 becomes “0” at timing 7. Since the read operation of less than one word is not performed, the byte read determination flag 50 remains “0”, and the write byte enable hold circuit 10 and the read byte enable hold circuit 20 are updated to the same value. At timing 7, the address comparator 30 holds “1111” of the read byte enable holding circuit 20 from the condition “0” (case 2 in FIG. 8).

タイミング10で最初のリード動作が行われ、バイト読出し判定フラグ50が“0”で、アドレス比較器30が“0”であるため、リードBEとして1ワード有効となる“1111”を選択する(図14のケース4)。これは、1ワード未満の残りのバイトデータをリードする条件も無く、ライト用アドレスカウンタ12とリード用アドレスカウンタ22の値に差分があるため、リード動作するアドレスのメモリエリアには1ワード分のデータを格納している理由からである。また、この時、リード用バイトイネーブル保持回路20の“1111”とセレクタ503が選択した出力“1111”が同じであるが、リード用バイトイネーブル保持回路20側が“1111”とならないケースもある(図17のタイミング10,11)。   Since the first read operation is performed at timing 10, the byte read determination flag 50 is “0”, and the address comparator 30 is “0”, “1111”, which is valid for one word, is selected as the read BE (see FIG. 14 cases 4). This is because there is no condition for reading the remaining byte data of less than one word, and there is a difference between the values of the write address counter 12 and the read address counter 22, so that the memory area of the address where the read operation is performed is equivalent to one word. This is because the data is stored. At this time, “1111” of the read byte enable holding circuit 20 and the output “1111” selected by the selector 503 are the same, but the read byte enable holding circuit 20 side may not be “1111” (FIG. 17 timing 10, 11).

図22は、5クロック目に1ワード未満の最初のリード動作を行い、リードBE“0011”を出力する(図14のケース3)。タイミング8からタイミング9までアドレス比較器30の出力が“0”なので、リード用バイトイネーブル保持回路20の“1100”でホールドする(図8のケース2)。タイミング8で2回目のリード動作を行い、リードBE“1100”を出力する(図14のケース2)。タイミング9では1ワードに達する残りのバイトデータのリード動作を完了したので、バイト読出し判定フラグ50を“0”にリセットする。ここまでは、図18から図19のケースと大差は無い。   In FIG. 22, the first read operation of less than one word is performed at the fifth clock, and the read BE “0011” is output (case 3 in FIG. 14). Since the output of the address comparator 30 is “0” from timing 8 to timing 9, it is held at “1100” of the read byte enable holding circuit 20 (case 2 in FIG. 8). A second read operation is performed at timing 8 to output the read BE “1100” (case 2 in FIG. 14). At timing 9, since the read operation of the remaining byte data reaching one word is completed, the byte read determination flag 50 is reset to “0”. Up to this point, there is no significant difference from the cases of FIGS.

しかし、タイミング9でセレクタ203は、リード用バイトイネーブル判定回路21が“0”で(リード用バイトイネーブル保持回路20の値が“1100”のため)、アドレス比較器30が“1”で、ライトREQが“1”で、リードREQが“0”であるのでライトBE“0100”を選択している(図8のケース4)。10クロック目ではその“0100”がリード用バイトイネーブル保持回路20に格納されるが、「バイトイネーブルとして使用できない無効なデータ」である。   However, at timing 9, the selector 203 writes the write byte enable determination circuit 21 to “0” (because the value of the read byte enable holding circuit 20 is “1100”), the address comparator 30 is “1”, and the write Since REQ is “1” and read REQ is “0”, write BE “0100” is selected (case 4 in FIG. 8). At the 10th clock, “0100” is stored in the read byte enable holding circuit 20, but is “invalid data that cannot be used as byte enable”.

タイミング10で3回目のリード動作を行う。バイト読出し判定フラグ50が“0”で、アドレス比較器30が“1” の条件から、ライト用バイトイネーブル保持回路10の値を選択し、リードBE“0111”を出力する(図14のケース3)。この時、同時に、セレクタ203は、アドレス比較器30が“1”で、ライトREQ信号が“1”で、リードREQ信号が“1” の条件から、ライトBE“1000”を選択する(図8のケース3)。これは、タイミング10で1ワード未満のリード動作が行われたことから、そのバイトイネーブルを除いた新規のライトBEを選択する機能で、前述した「バイトイネーブルとして使用できない無効なデータ」はここで消滅する。   A third read operation is performed at timing 10. Based on the condition that the byte read determination flag 50 is “0” and the address comparator 30 is “1”, the value of the write byte enable holding circuit 10 is selected and the read BE “0111” is output (case 3 in FIG. 14). ). At the same time, the selector 203 selects the write BE “1000” from the condition that the address comparator 30 is “1”, the write REQ signal is “1”, and the read REQ signal is “1” (FIG. 8). Case 3). This is a function of selecting a new write BE excluding the byte enable because a read operation of less than one word was performed at timing 10, and the above-mentioned “invalid data that cannot be used as byte enable” is shown here. Disappear.

そして、デコーダ204が“0”で(リードBE信号の3ビット目以外が“1”に当てはならないため)、アドレス比較器30が“1”でリードREQが“1”である条件から、次のタイミング11ではバイト読出し判定フラグ50を“1”にセットし、リード用バイトイネーブル保持回路20にはライトBE“1000”を新規に格納する。このライトBE“1000”は次回のリード動作までホールドする(図8のケース2)。   From the condition that the decoder 204 is “0” (other than the third bit of the read BE signal is not applicable to “1”), the address comparator 30 is “1”, and the read REQ is “1”. At timing 11, the byte read determination flag 50 is set to “1”, and the write byte enable holding circuit 20 newly stores the write BE “1000”. This write BE “1000” is held until the next read operation (case 2 in FIG. 8).

図22のケースでは、タイミング10の3回目のリード動作の時アドレス比較器30の出力が“1”であるが、アドレス比較器30の出力が“0”である場合は、前述の図21のケースのようにリードBE“1111”の値を出力し、リード動作の最後はこの図22のケースで終了する。   In the case of FIG. 22, the output of the address comparator 30 is “1” at the time of the third read operation at timing 10, but when the output of the address comparator 30 is “0”, the above-described FIG. The value of the read BE “1111” is output as in the case, and the end of the read operation ends in the case of FIG.

以上が各真理値表における全てのケースを網羅した説明である。これらのケースの組合せにより、他のどのような書込み/読出しパターンであっても、各回路の動作は容易に理解できよう。   The above is an explanation covering all cases in each truth table. The combination of these cases makes it easy to understand the operation of each circuit in any other write / read pattern.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)有効バイト位置を示す2値情報(バイトイネーブル)に応じたライトデータをライト要求に応答してFIFOに書き込み、リード要求に応答してリードデータを前記FIFOから読み出し前記バイトイネーブルを添付するデータ転送装置において、前記FIFOの最新のライトアドレスに書き込まれているデータの前記バイトイネーブルを保持するライト用バイトイネーブル保持回路と、前記FIFOの最新のライトアドレスに書き込まれているデータの前記バイトイネーブル、または該バイトイネーブルと1タイミング前の自保持内容との論理和、または1タイミング前の自保持内容を保持するリード用バイトイネーブル保持回路と、前記リードデータの前記バイトイネーブルを解読して前記FIFOのライトアドレスとリードアドレスが一致する時に1ワード未満のバイトイネーブルで読み出したことを記憶し、1ワード分に達した位置まで読み出したときに消去されるバイト読出し判定フラグと、前記バイト読出し判定フラグがセットされているときは前記リード用バイトイネーブル保持回路が保持する前記バイトイネーブルを選択し、また前記バイト読出し判定フラグがリセットされていて、かつ前記FIFOのライトアドレスとリードアドレスが一致するときは前記ライト用バイトイネーブル保持回路が保持する前記バイトイネーブルを選択し、また前記バイト読出し判定フラグがリセットされていて、かつ前記FIFOのライトアドレスとリードアドレスが一致しないときは全バイト読出しを示す前記バイトイネーブルを選択し、それぞれ前記リードデータの前記バイトイネーブルとするセレクタとを設けたことを特徴とするデータ転送装置。   (Supplementary note 1) Write data corresponding to binary information (byte enable) indicating a valid byte position is written to the FIFO in response to a write request, read data is read from the FIFO in response to a read request, and the byte enable is attached. A write byte enable holding circuit for holding the byte enable of data written at the latest write address of the FIFO, and the byte of data written at the latest write address of the FIFO. Enable, or the logical sum of the byte enable and the self-held content one timing before, or the read byte enable holding circuit for holding the self-held content one timing before, and decoding the byte enable of the read data FIFO write address and read A byte read determination flag that is erased when reading is performed with a byte enable of less than one word when the dress matches, and the position that has reached one word is read, and the byte read determination flag is set When the byte enable held by the read byte enable holding circuit is selected, and when the byte read determination flag is reset and the write address of the FIFO coincides with the read address, the write byte enable is selected. The byte enable held by the holding circuit is selected, and when the byte read determination flag is reset and the write address of the FIFO does not match the read address, the byte enable indicating all byte read is selected, Each read data Data transfer apparatus characterized by comprising a selector to the byte enable.

(付記2)前記ライト用バイトイネーブル保持回路が保持している前記バイトイネーブルにより、前記FIFOが初期状態または前記ライトデータが1ワード分に達したか、否かの判定結果を出力するライト用バイトイネーブル判定回路と、前記ライト要求があり前記FIFOが初期状態または前記ライトデータが1ワード分に達したときは前記ライトデータの前記バイトイネーブルを選択し、また前記ライト要求があり前記ライト用バイトイネーブル判定回路における判定結果が否のときは前記ライト要求がないときは前記ライトデータの前記バイトイネーブルと前記ライト用バイトイネーブル保持回路の保持内容との論理和を選択し、前記ライト用バイトイネーブル保持回路へ出力するセレクタとを有することを特徴とする付記1に記載のデータ転送装置。   (Supplementary Note 2) A write byte that outputs a determination result as to whether or not the FIFO is in an initial state or the write data has reached one word by the byte enable held by the write byte enable holding circuit. An enable determination circuit and when the write request is present and the FIFO is in an initial state or when the write data reaches one word, the byte enable of the write data is selected, and the write request has the write byte enable. When the determination result in the determination circuit is negative, when there is no write request, the logical select between the byte enable of the write data and the content held by the write byte enable holding circuit is selected, and the write byte enable holding circuit The supplementary note 1 has a selector that outputs to The data transfer device.

(付記3)前記セレクタの出力を解読して前記ライトデータが1ワード分に達することを検出するデコーダと、前記最新のライトアドレスを指定し前記検出によりカウントアップするライト用アドレスカウンタとを有することを特徴とする付記2に記載のデータ転送装置。   (Additional remark 3) It has a decoder which decodes the output of the selector and detects that the write data reaches one word, and a write address counter which designates the latest write address and counts up by the detection The data transfer apparatus according to appendix 2, characterized by:

(付記4)前記リード用バイトイネーブル保持回路が保持している前記バイトイネーブルにより、前記FIFOが初期状態または前記リードデータが1ワード分に達したか、否かの判定結果を出力するリード用バイトイネーブル判定回路と、前記ライトアドレスと前記リードアドレスが一致しないときは前記リード用バイトイネーブル保持回路が保持している前記バイトイネーブル、一方、前記ライトアドレスと前記リードアドレスが一致し、かつ、前記リード要求があるときまたは前記リード要求がなく、かつ、前記FIFOが初期状態または前記リードデータが1ワード分に達したときは前記ライトデータの前記バイトイネーブル、前記ライトアドレスと前記リードアドレスが一致し、かつ、前記リード要求がなく、かつ、前記リード用バイトイネーブル判定回路における判定結果が否であるときは前記ライトデータの前記バイトイネーブルと前記リード用バイトイネーブル保持回路が保持している前記バイトイネーブルとの論理和を選択するセレクタとを有することを特徴とする付記1に記載のデータ転送装置。   (Supplementary Note 4) A read byte that outputs a determination result as to whether or not the FIFO is in an initial state or the read data has reached one word by the byte enable held by the read byte enable holding circuit. When the enable determination circuit and the write address and the read address do not match, the byte enable held by the read byte enable holding circuit, while the write address and the read address match, and the read When there is a request or when there is no read request and the FIFO is in an initial state or when the read data reaches one word, the byte enable of the write data, the write address and the read address match, And there is no read request and for the lead And a selector that selects a logical sum of the byte enable of the write data and the byte enable held by the read byte enable holding circuit when the determination result in the write enable determination circuit is negative. The data transfer apparatus according to Supplementary Note 1.

(付記5)前記FIFOから1ワード分のリードデータが読み出されたことを検出するデコーダと、前記リードデータのアドレスを示し前記検出により+1更新されるリード用アドレスカウンタとを有することを特徴とする付記4に記載のデータ転送装置。   (Additional remark 5) It has a decoder which detects that the read data for 1 word was read from said FIFO, and the read address counter which shows the address of the said read data and is updated +1 by the said detection, It is characterized by the above-mentioned. The data transfer apparatus according to appendix 4.

(付記6)前記ライト用アドレスカウンタの保持内容と前記リード用アドレスカウンタの保持内容を比較するアドレス比較器を有し、前記比較の結果によりアドレスが一致し、かつ前記ライト要求がなくて前記リード要求があるとき、前記FIFOは空であることを示すEMPTY信号を出力するメモリEMPTYフラグを有することを特徴とする付記5に記載のデータ転送装置。   (Supplementary Note 6) An address comparator that compares the content held in the write address counter with the content held in the read address counter has an address that matches the result of the comparison, and there is no write request and the read 6. The data transfer apparatus according to appendix 5, characterized by having a memory EMPTY flag for outputting an EMPTY signal indicating that the FIFO is empty when requested.

例えば、ストリーミングデータを本データ転送装置で介して転送する場合、ストリーミングデータの容量が、1ワード区切りでなくても(1ワード以上も含む)転送できるし、バイト単位で分離された状態であっても転送できる。   For example, when streaming data is transferred via this data transfer device, the streaming data can be transferred even if the capacity of the streaming data is not delimited by one word (including one word or more), and is separated in byte units. Can also be transferred.

10 ライト用イネーブル保持回路
11 ライト用イネーブル判定回路
12 ライト用アドレスカウンタ
20 リード用イネーブル保持回路
21 リード用イネーブル判定回路
22 リード用アドレスカウンタ
30 アドレス比較器
40 FIFO
50 バイト読出し判定フラッグ
60 メモリEMPTYフラグ
101 AND回路
102 OR回路
103 セレクタ
104 デコーダ
201 AND回路
202 OR回路
203 セレクタ
204 デコーダ
401 ゲート回路
501 AND回路
502 AND回路
503 セレクタ
601 AND回路
DESCRIPTION OF SYMBOLS 10 Write enable holding circuit 11 Write enable determination circuit 12 Write address counter 20 Read enable hold circuit 21 Read enable determination circuit 22 Read address counter 30 Address comparator 40 FIFO
50 byte read determination flag 60 memory EMPTY flag 101 AND circuit 102 OR circuit 103 selector 104 decoder 201 AND circuit 202 OR circuit 203 selector 204 decoder 401 gate circuit 501 AND circuit 502 AND circuit 503 selector 601 AND circuit

Claims (6)

有効バイト位置を示す2値情報(バイトイネーブル)に応じたライトデータをライト要求に応答してFIFOに書き込み、リード要求に応答してリードデータを前記FIFOから読み出し前記バイトイネーブルを添付するデータ転送装置において、
前記FIFOの最新のライトアドレスに書き込まれているデータの前記バイトイネーブルを保持するライト用バイトイネーブル保持回路と、
前記FIFOの最新のライトアドレスに書き込まれているデータの前記バイトイネーブル、または該バイトイネーブルと1タイミング前の自保持内容との論理和、または1タイミング前の自保持内容を保持するリード用バイトイネーブル保持回路と、
前記リードデータの前記バイトイネーブルを解読して前記FIFOのライトアドレスとリードアドレスが一致する時に1ワード未満のバイトイネーブルで読み出したことを記憶し、1ワード分に達した位置まで読み出したときに消去されるバイト読出し判定フラグと、
前記バイト読出し判定フラグがセットされているときは前記リード用バイトイネーブル保持回路が保持する前記バイトイネーブルを選択し、また前記バイト読出し判定フラグがリセットされていて、かつ前記FIFOのライトアドレスとリードアドレスが一致するときは前記ライト用バイトイネーブル保持回路が保持する前記バイトイネーブルを選択し、また前記バイト読出し判定フラグがリセットされていて、かつ前記FIFOのライトアドレスとリードアドレスが一致しないときは全バイト読出しを示す前記バイトイネーブルを選択し、それぞれ前記リードデータの前記バイトイネーブルとするセレクタとを設けたことを特徴とするデータ転送装置。
Data transfer device for writing write data corresponding to binary information (byte enable) indicating valid byte position in response to write request to FIFO, reading read data from FIFO in response to read request, and attaching byte enable In
A write byte enable holding circuit for holding the byte enable of data written to the latest write address of the FIFO;
The byte enable of the data written in the latest write address of the FIFO, the logical sum of the byte enable and the self-holding content one timing before, or the read byte enable that holds the self-holding content one timing before A holding circuit;
Decodes the byte enable of the read data, stores the read with byte enable of less than one word when the write address of the FIFO matches the read address, and erases when read to the position reaching one word Read byte determination flag,
When the byte read determination flag is set, the byte enable held by the read byte enable holding circuit is selected, the byte read determination flag is reset, and the write address and read address of the FIFO Is selected, the byte enable held by the write byte enable holding circuit is selected, and if the byte read determination flag is reset and the write address of the FIFO does not match the read address, all bytes are selected. A data transfer apparatus, comprising: a selector that selects the byte enable indicating reading and sets the byte enable of the read data.
前記ライト用バイトイネーブル保持回路が保持している前記バイトイネーブルにより、前記FIFOが初期状態または前記ライトデータが1ワード分に達したか、否かの判定結果を出力するライト用バイトイネーブル判定回路と、
前記ライト要求があり前記FIFOが初期状態または前記ライトデータが1ワード分に達したときは前記ライトデータの前記バイトイネーブルを選択し、また前記ライト要求があり前記ライト用バイトイネーブル判定回路における判定結果が否のときは前記ライトデータの前記バイトイネーブルと前記ライト用バイトイネーブル保持回路の保持内容との論理和を選択し、前記ライト用バイトイネーブル保持回路へ出力するセレクタとを有することを特徴とする請求項1に記載のデータ転送装置。
A write byte enable determination circuit for outputting a determination result as to whether or not the FIFO is in an initial state or the write data has reached one word by the byte enable held by the write byte enable holding circuit; ,
When the write request is present and the FIFO is in the initial state or when the write data reaches one word, the byte enable of the write data is selected, and the determination result in the write byte enable determination circuit is the write request. A selector that selects a logical sum of the byte enable of the write data and the content held by the write byte enable holding circuit and outputs the logical sum to the write byte enable holding circuit. The data transfer device according to claim 1.
前記セレクタの出力を解読して前記ライトデータが1ワード分に達することを検出するデコーダと、
前記最新のライトアドレスを指定し前記検出によりカウントアップするライト用アドレスカウンタとを有することを特徴とする請求項2に記載のデータ転送装置。
A decoder for decoding the output of the selector and detecting that the write data reaches one word;
3. The data transfer apparatus according to claim 2, further comprising: a write address counter that designates the latest write address and counts up by the detection.
前記リード用バイトイネーブル保持回路が保持している前記バイトイネーブルにより、前記FIFOが初期状態または前記リードデータが1ワード分に達したか、否かの判定結果を出力するリード用バイトイネーブル判定回路と、
前記ライトアドレスと前記リードアドレスが一致しないときは前記リード用バイトイネーブル保持回路が保持している前記バイトイネーブル、一方、前記ライトアドレスと前記リードアドレスが一致し、かつ、前記リード要求があるときまたは前記リード要求がなく、かつ、前記FIFOが初期状態または前記リードデータが1ワード分に達したときは前記ライトデータの前記バイトイネーブル、前記ライトアドレスと前記リードアドレスが一致し、かつ、前記リード要求がなく、かつ、前記リード用バイトイネーブル判定回路における判定結果が否であるときは前記ライトデータの前記バイトイネーブルと前記リード用バイトイネーブル保持回路が保持している前記バイトイネーブルとの論理和を選択するセレクタとを有することを特徴とする請求項1に記載のデータ転送装置。
A read byte enable determination circuit for outputting a determination result as to whether or not the FIFO is in an initial state or the read data has reached one word by the byte enable held by the read byte enable holding circuit; ,
When the write address and the read address do not match, the byte enable held by the read byte enable holding circuit, while when the write address and the read address match and there is the read request or When there is no read request and the FIFO is in an initial state or when the read data reaches one word, the byte enable of the write data, the write address and the read address match, and the read request If the determination result in the read byte enable determination circuit is negative, the logical sum of the byte enable of the write data and the byte enable held in the read byte enable holding circuit is selected. And having a selector to Data transfer apparatus according to claim 1 that.
前記FIFOから1ワード分のリードデータが読み出されたことを検出するデコーダと、
前記リードデータのアドレスを示し前記検出により+1更新されるリード用アドレスカウンタとを有することを特徴とする請求項4に記載のデータ転送装置。
A decoder for detecting that one word of read data has been read from the FIFO;
5. The data transfer apparatus according to claim 4, further comprising a read address counter that indicates an address of the read data and is updated by +1 by the detection.
前記ライト用アドレスカウンタの保持内容と前記リード用アドレスカウンタの保持内容を比較するアドレス比較器を有し、
前記比較の結果によりアドレスが一致し、かつ前記ライト要求がなくて前記リード要求があるとき、前記FIFOは空であることを示すEMPTY信号を出力するメモリEMPTYフラグを有することを特徴とする請求項5に記載のデータ転送装置。
An address comparator that compares the content held in the write address counter with the content held in the read address counter;
The memory has an EMPTY flag that outputs an EMPTY signal indicating that the FIFO is empty when the addresses match according to the comparison result and there is no write request and there is the read request. 5. The data transfer device according to 5.
JP2011112019A 2011-05-19 2011-05-19 Data transfer device Expired - Fee Related JP5273828B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011112019A JP5273828B2 (en) 2011-05-19 2011-05-19 Data transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011112019A JP5273828B2 (en) 2011-05-19 2011-05-19 Data transfer device

Publications (2)

Publication Number Publication Date
JP2012243053A JP2012243053A (en) 2012-12-10
JP5273828B2 true JP5273828B2 (en) 2013-08-28

Family

ID=47464706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011112019A Expired - Fee Related JP5273828B2 (en) 2011-05-19 2011-05-19 Data transfer device

Country Status (1)

Country Link
JP (1) JP5273828B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002050172A (en) * 2000-08-03 2002-02-15 Nec Eng Ltd Fifo control circuit
JP2005149203A (en) * 2003-11-17 2005-06-09 Toshiba Corp Data fetch apparatus and data fetch method
JP2007233636A (en) * 2006-02-28 2007-09-13 Matsushita Electric Ind Co Ltd Data transfer device and data transfer method

Also Published As

Publication number Publication date
JP2012243053A (en) 2012-12-10

Similar Documents

Publication Publication Date Title
US9477476B2 (en) Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
TWI489779B (en) Boolean logic in a state machine lattice
US10275181B2 (en) Methods for scheduling and executing commands in a flash memory and apparatuses using the same
US8516170B2 (en) Control flow in a ring buffer
TW201342110A (en) Counter operation in a state machine lattice
JP5287301B2 (en) Descriptor transfer device, I / O controller, and descriptor transfer method
US8681526B2 (en) Size and retry programmable multi-synchronous FIFO
US8995207B2 (en) Data storage for voltage domain crossings
WO2019047901A1 (en) Data depositing method
US9697127B2 (en) Semiconductor device for controlling prefetch operation
CN113467704A (en) Command optimization through intelligent threshold detection
JP2016143422A (en) Configuring serial devices
JP2011028478A (en) Error correction circuit and error correction method
JP2010146084A (en) Data processor including cache memory control section
JP2007066118A (en) Memory controller, flash memory system and control method of flash memory
WO2016082141A1 (en) Block memory configuration structure and configuration method
JP5273828B2 (en) Data transfer device
JP4886887B2 (en) Command management device and storage device provided with the command management device
US20230239256A1 (en) Wide Elastic Buffer
JP6004463B2 (en) Storage device and control method thereof
JP2005512192A5 (en)
US10515036B2 (en) Bit manipulation capable direct memory access
JP2014119766A (en) Communication system
JP2006164070A (en) Data buffer circuit, interface circuit, and their control methods
JP5132074B2 (en) Memory access device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130412

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130510

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5273828

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees