JP2011118501A - Data transfer system - Google Patents

Data transfer system Download PDF

Info

Publication number
JP2011118501A
JP2011118501A JP2009273268A JP2009273268A JP2011118501A JP 2011118501 A JP2011118501 A JP 2011118501A JP 2009273268 A JP2009273268 A JP 2009273268A JP 2009273268 A JP2009273268 A JP 2009273268A JP 2011118501 A JP2011118501 A JP 2011118501A
Authority
JP
Japan
Prior art keywords
read
data
command
read data
control master
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.)
Pending
Application number
JP2009273268A
Other languages
Japanese (ja)
Inventor
Shuichi Nishihara
秀一 西原
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2009273268A priority Critical patent/JP2011118501A/en
Publication of JP2011118501A publication Critical patent/JP2011118501A/en
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve the processing efficiency in relation to a read command in a data transfer system having a plurality of control masters for one memory controller. <P>SOLUTION: The data transfer system performs data read processing among the plurality of control masters and a memory connected via the memory controller. The memory controller includes: a route selector which stores, upon receiving the read command, the identifier of the control master regarding the read command in FIFO format; and a read data buffer which stores the read data read from the memory in FIFO format. The control master reads the read data from the read data buffer if the first stored identifier is the one of itself among the identifiers stored in the route selector and the read data is stored in the read data buffer. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、メモリコントローラを介して接続されたコントロールマスタとメモリとの間でデータリード処理/データライト処理を行なうデータ転送システムに係り、特に、1つのメモリコントローラに対して複数のコントロールマスタが設けられたデータ転送システムにおけるデータリード処理に関する。   The present invention relates to a data transfer system that performs data read processing / data write processing between a control master and a memory connected via a memory controller, and in particular, a plurality of control masters are provided for one memory controller. The present invention relates to data read processing in a given data transfer system.

図7に示すように、メモリコントローラ500を介して接続されたコントロールマスタ700とDRAM600との間でデータをリード/ライトするデータ転送システムが広く用いられている。このようなデータ転送システムでは、メモリコントローラ500が、コントロールマスタ700からのリードコマンド/ライトコマンドを受取り、DRAM600にアクセスする。   As shown in FIG. 7, a data transfer system that reads / writes data between a control master 700 and a DRAM 600 connected via a memory controller 500 is widely used. In such a data transfer system, the memory controller 500 receives a read command / write command from the control master 700 and accesses the DRAM 600.

図8は、コントロールマスタ700からメモリコントローラ500に送られるライトコマンドおよびリードコマンドのパラメータを示している。本図に示すように、ライトコマンドを送る場合には、ライトであることを示すW/R識別子と、書き込むアドレスを示すwrite addressと、書き込みデータであるwrite dataと、write dataの1部をマスクするときに用いるdata maskとをパラメータとして指定する。また、リードコマンドを送る場合には、リードであることを示すW/R識別子と、読み出しアドレスを示すread addressとをパラメータとして指定する。   FIG. 8 shows parameters of a write command and a read command sent from the control master 700 to the memory controller 500. As shown in the figure, when a write command is sent, a W / R identifier indicating a write, a write address indicating a write address, write data as write data, and a part of the write data are masked. Specify the data mask to be used as a parameter. When a read command is sent, a W / R identifier indicating read and a read address indicating a read address are specified as parameters.

図7に示すように、メモリコントローラ500は、DRAM600に対するアクセス処理を行なうメモリインタフェース510と、コントロールマスタ700から送られたコマンドを格納するコマンドバッファ520と、DRAM600から読み出したリードデータを格納するリードデータバッファ530とを備えている。   As shown in FIG. 7, the memory controller 500 includes a memory interface 510 that performs access processing to the DRAM 600, a command buffer 520 that stores commands sent from the control master 700, and read data that stores read data read from the DRAM 600. And a buffer 530.

コントロールマスタ700からリードコマンドが送られた場合、メモリコントローラ500は、DRAM600の指定されたアドレスからデータを読み出すと、リードデータバッファ530にリードデータとして格納し、コントロールマスタ700に対して、リードデータが読み出し可能であることを通知する。   When a read command is sent from the control master 700, the memory controller 500 reads the data from the designated address of the DRAM 600, stores it as read data in the read data buffer 530, and the read data is sent to the control master 700. Notify that reading is possible.

リードコマンドを送ったコントロールマスタ700は、メモリコントローラ500から、リードデータが読み出し可能である通知を受けると、リードデータバッファ530からリードデータを取得する。   Upon receiving a notification from the memory controller 500 that the read data can be read, the control master 700 that has sent the read command acquires the read data from the read data buffer 530.

一般に、データ転送システムにおいて、コントロールマスタ700と、メモリコントローラ500とは、本図のように1対1で対応して構成される。また、リードコマンドの順でDRAM600からのデータ読み出しが行なわれるため、コントロールマスタ700が、リードコマンドを連続してコントロールマスタ700に送った場合でも、リードデータが読み出し可能となった通知に従ってリードデータバッファ530からリードデータを順次取得することで、送ったリードコマンドに対応した順序でリードデータを取得することができる。   In general, in the data transfer system, the control master 700 and the memory controller 500 are configured in a one-to-one correspondence as shown in FIG. In addition, since data reading from the DRAM 600 is performed in the order of the read commands, even when the control master 700 continuously sends read commands to the control master 700, the read data buffer is read according to the notification that the read data can be read. By sequentially acquiring the read data from 530, the read data can be acquired in the order corresponding to the read command sent.

特開2003−122627号公報JP 2003-122627 A

データ転送システムは種々の処理装置に適用することができるが、特に半導体試験装置等に適用した場合には、単位時間当りの処理量が非常に重要になる。このため、図9に示すように、1つのメモリコントローラ500に対して複数のコントロールマスタ700を設けることが考えられる。本図の例では、コントロールマスタ(1)700a〜コントロールマスタ(4)700dの4つのコントロールマスタ700を設けた例を示している。   The data transfer system can be applied to various processing apparatuses, but particularly when applied to a semiconductor test apparatus or the like, the processing amount per unit time becomes very important. Therefore, it is conceivable to provide a plurality of control masters 700 for one memory controller 500 as shown in FIG. In the example of this figure, an example is shown in which four control masters 700, ie, control master (1) 700a to control master (4) 700d, are provided.

このような構成において、メモリコントローラ500が、異なるコントロールマスタ700からライトコマンドを連続的に受け付けた場合には、コマンドバッファ520に格納された順にライトコマンドを処理すれば問題は生じない。   In such a configuration, when the memory controller 500 continuously receives write commands from different control masters 700, there is no problem if the write commands are processed in the order stored in the command buffer 520.

ところが、異なるコントロールマスタ700からリードコマンドを連続的に受け付けた場合には、DRAM600から読み出されコマンドバッファ520に格納されたリードデータがどのコントロールマスタ700からのリードコマンドに対応するかを、それぞれのコントロールマスタ700が判断することができない。   However, when read commands are continuously received from different control masters 700, it is determined which control master 700 the read data read from the DRAM 600 and stored in the command buffer 520 corresponds to. The control master 700 cannot determine.

このため、従来の技術をそのまま適用しただけでは、同時に処理できるリードコマンドは1つに限られることになり、他のリードコマンドが待たされてしまうためコントロールマスタ700を複数個設けた効果が十分発揮できない。   For this reason, if the conventional technique is applied as it is, the number of read commands that can be processed at the same time is limited to one, and other read commands are waited. Therefore, the effect of providing a plurality of control masters 700 is sufficiently exerted. Can not.

そこで、本発明は、1つのメモリコントローラに対して複数のコントロールマスタを設けたデータ転送システムにおいて、リードコマンドに対する処理効率を向上させることを目的とする。   Therefore, an object of the present invention is to improve the processing efficiency for a read command in a data transfer system in which a plurality of control masters are provided for one memory controller.

上記課題を解決するため、本発明のデータ転送システムは、メモリコントローラを介して接続された複数のコントロールマスタとメモリとの間でデータリード処理を行なうデータ転送システムであって、前記メモリコントローラは、いずれかの前記コントロールマスタからリードコマンドを受け付けると、そのリードコマンドに係るコントロールマスタの識別子をFIFO形式で格納するルートセレクタと、前記リードコマンドに従って前記メモリから読み出したリードデータをFIFO形式で格納するリードデータバッファと、を備え、前記コントロールマスタは、前記ルートセレクタに格納されている識別子のうち、最先に格納された識別子が自身の識別子であって、前記リードデータバッファにリードデータが格納されている場合に、前記リードデータバッファからリードデータを読み出すことを特徴とする。   In order to solve the above problems, a data transfer system of the present invention is a data transfer system that performs data read processing between a plurality of control masters and a memory connected via a memory controller, and the memory controller includes: When a read command is received from any one of the control masters, a root selector that stores the identifier of the control master related to the read command in FIFO format, and a read that stores read data read from the memory according to the read command in FIFO format A data buffer, wherein the control master has an identifier stored first among the identifiers stored in the route selector, and the read data is stored in the read data buffer. If Serial to from the read data buffer, characterized in that the read data is read.

本発明のデータ転送システムでは、コントロールマスタから受け付けたリードコマンドの順番と、リードデータバッファに格納されるリードデータの順番とが対応する。さらに、ルートセレクタに格納されるコントロールマスタの識別子の順番は、コマンドバッファに格納されるリードコマンドを送ったコントロールマスタの順番に対応する。このため、リードデータバッファから読み出されるリードデータは、ルートセレクタに格納されている識別子のうち、最先に格納された識別子が示すコントロールマスタからのリードコマンドに係るリードデータとなる。   In the data transfer system of the present invention, the order of read commands received from the control master corresponds to the order of read data stored in the read data buffer. Further, the order of the identifiers of the control masters stored in the route selector corresponds to the order of the control masters that sent the read commands stored in the command buffer. Therefore, the read data read from the read data buffer is read data related to the read command from the control master indicated by the identifier stored first among the identifiers stored in the route selector.

したがって、各コントロールマスタからのリードコマンドを複数受け付けて順序通りに処理することができるようになる。このため、データ転送システムにおいて、リードコマンドに対する処理効率が向上することになる。   Therefore, a plurality of read commands from each control master can be received and processed in order. For this reason, the processing efficiency for the read command is improved in the data transfer system.

ここで、前記ルートセレクタは、コントロールマスタの識別子をFIFO形式で格納するため、前記リードデータバッファからリードデータが読み出されると、前記最先に格納された識別子を消去する。   Here, the root selector stores the identifier of the control master in the FIFO format, and therefore, when read data is read from the read data buffer, the identifier stored first is erased.

本発明によれば、1つのメモリコントローラに対して複数のコントロールマスタを設けたデータ転送システムにおいて、リードコマンドに対する処理効率を向上させることができる。   According to the present invention, it is possible to improve the processing efficiency for a read command in a data transfer system in which a plurality of control masters are provided for one memory controller.

本実施形態に係るデータ転送システムの構成を示すブロック図である。It is a block diagram which shows the structure of the data transfer system which concerns on this embodiment. データ有効フラグの更新処理について説明するフローチャートである。It is a flowchart explaining the update process of a data validity flag. ルートセレクタの構成を示す図である。It is a figure which shows the structure of a route selector. メモリコントローラのルートセレクタの更新処理について説明するフローチャートである。It is a flowchart explaining the update process of the route selector of a memory controller. 各コントロールマスタ300のリードデータ読み出し処理について説明するフローチャートである。5 is a flowchart for explaining read data read processing of each control master 300. 本実施形態の具体的な処理例について説明するタイミングチャートである。It is a timing chart explaining the example of a specific process of this embodiment. 従来のデータ転送システムの構成を示すブロック図である。It is a block diagram which shows the structure of the conventional data transfer system. ライトコマンドおよびリードコマンドのパラメータを説明する図である。It is a figure explaining the parameter of a write command and a read command. 1つのメモリコントローラに対して複数のコントロールマスタを設けた場合の構成を示すブロック図である。It is a block diagram which shows the structure at the time of providing the some control master with respect to one memory controller.

本発明の実施の形態について図面を参照して説明する。図1は、本実施形態に係るデータ転送システムの構成を示すブロック図である。本図に示すように、データ転送システム10は、メモリコントローラ100と、DRAM200と、複数個のコントロールマスタ300とを備えている。データ転送システム10では、複数個のコントロールマスタ300を備えることで、並列処理が行なえるようにしている。本図の例では、コントロールマスタ(1)300a〜コントロールマスタ(4)300dの4つのコントロールマスタ300を設けた例を示しているが、コントロールマスタ300の数は4つに限られず、データ転送システム10の規模等に応じた個数とすることができる。   Embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the data transfer system according to this embodiment. As shown in the figure, the data transfer system 10 includes a memory controller 100, a DRAM 200, and a plurality of control masters 300. The data transfer system 10 includes a plurality of control masters 300 so that parallel processing can be performed. In the example of this figure, an example is shown in which four control masters 300 of control master (1) 300a to control master (4) 300d are provided, but the number of control masters 300 is not limited to four, and the data transfer system The number can be set according to the scale of 10.

本実施形態において、それぞれのコントロールマスタ300は独立して動作し、メモリコントローラ100を介して、DRAM200に対してデータをリード/ライトする。メモリコントローラ100は、それぞれのコントロールマスタ300からのリードコマンド/ライトコマンドを受取り、コマンドに従ってDRAM100にアクセスする。   In this embodiment, each control master 300 operates independently and reads / writes data to / from the DRAM 200 via the memory controller 100. The memory controller 100 receives a read command / write command from each control master 300 and accesses the DRAM 100 according to the command.

メモリコントローラ100は、DRAM200に対するアクセス処理を行なうメモリインタフェース110と、各コントロールマスタ300から送られたコマンドをFIFO(First In First Out)形式で格納するコマンドバッファ120と、DRAM200から読み出したリードデータを格納するリードデータバッファ130と、ルートセレクタ140とを備えている。   The memory controller 100 stores a memory interface 110 that performs access processing to the DRAM 200, a command buffer 120 that stores commands sent from the respective control masters 300 in a FIFO (First In First Out) format, and read data read from the DRAM 200. The read data buffer 130 and the route selector 140 are provided.

リードデータバッファ130は、リードデータバッファ130内に、コントロールマスタ300によって読み出されていないリードデータがあるかどうかを示すデータ有効フラグ131を備えている。   The read data buffer 130 includes a data valid flag 131 that indicates whether there is read data that has not been read by the control master 300 in the read data buffer 130.

本実施形態では、データ有効フラグ131が1(ON)の場合に、コントロールマスタ300によって読み出されていないリードデータがあることを示し、データ有効フラグ131が0(OFF)の場合に、コントロールマスタ300によって読み出されていないリードデータがないこと、すなわち、リードデータバッファ130が空であることを示すものとする。   In the present embodiment, when the data valid flag 131 is 1 (ON), it indicates that there is read data that has not been read by the control master 300, and when the data valid flag 131 is 0 (OFF), the control master It is assumed that there is no read data that has not been read by 300, that is, the read data buffer 130 is empty.

具体的には、リードデータバッファ130は、図2に示すフローチャートにしたがって、データ有効フラグ131の更新を行なう。本図に示すように、リードデータバッファ130にまだ読み出されていないリードデータがあるかどうかを判定し(S101)、リードデータがある場合(S101:Yes)には、データ有効フラグ131をONにする(S102)。一方、リードデータバッファ130にリードデータがない場合(S101:No)には、データ有効フラグ131をOFFにする(S103)。以上の判定を、データ転送処理が終了する(S104:Yes)まで、繰り返す。   Specifically, the read data buffer 130 updates the data valid flag 131 according to the flowchart shown in FIG. As shown in the figure, it is determined whether there is read data that has not been read in the read data buffer 130 (S101). If there is read data (S101: Yes), the data valid flag 131 is turned on. (S102). On the other hand, when there is no read data in the read data buffer 130 (S101: No), the data valid flag 131 is turned OFF (S103). The above determination is repeated until the data transfer process ends (S104: Yes).

ルートセレクタ140は、メモリコントローラ100がいずれかのコントロールマスタ300からリードコマンドを受け付けた場合に、どのコントロールマスタ300からのリードコマンドであるかを示す情報をFIFO形式で格納するバッファであり、例えば、図3に示すような構成とすることができる。   When the memory controller 100 receives a read command from any of the control masters 300, the route selector 140 is a buffer that stores information indicating the read command from which control master 300 in a FIFO format. It can be set as a structure as shown in FIG.

本図の例では、コントロールマスタ300の識別子を格納する領域を0〜7の8段の深さで設けている。ただし、ルートセレクタ140の深さは8に限られず、データ転送システムの規模等に対応させることができる。   In the example of this figure, the area | region which stores the identifier of the control master 300 is provided in the depth of 8 steps | paragraphs 0-7. However, the depth of the route selector 140 is not limited to 8, and can correspond to the scale of the data transfer system.

ここで、ルートセレクタ140における最も深い格納領域、すなわち、最先に格納され、次に取り出される識別子を格納する領域をカレントルート141と称するものとする。   Here, the deepest storage area in the route selector 140, that is, an area for storing an identifier stored first and extracted next is referred to as a current route 141.

図4のフローチャートを参照して、メモリコントローラ100のルートセレクタ140の更新処理について説明する。本図に示すように、メモリコントローラ100は、いずれかのコントロールマスタ300からリードコマンドを受け付けると(S201:Yes)、そのコントロールマスタ300の識別子をルートセレクタ140にFIFO形式で追加する(S202)。このため、ルートセレクタ140には、リードコマンドを受け付けた順に、コントロールマスタ300の識別子が格納されていくことになる。   The update process of the route selector 140 of the memory controller 100 will be described with reference to the flowchart of FIG. As shown in this figure, when the memory controller 100 receives a read command from any of the control masters 300 (S201: Yes), the identifier of the control master 300 is added to the route selector 140 in the FIFO format (S202). For this reason, the identifiers of the control master 300 are stored in the route selector 140 in the order in which the read commands are received.

また、メモリコントローラ100は、いずれかのコントロールマスタ300によって、リードデータバッファ130からリードデータが読み出されると(S203:Yes)、ルートセレクタ140を更新する(S204)。すなわち、カレントルート141に格納されている識別子を破棄し、残りの格納領域に格納されている識別子の深さをそれぞれ1段深い方の格納領域にずらす。この結果、カレントルート141も更新される。以上の処理を、データ転送処理が終了する(S205:Yes)まで、繰り返す。   Further, when read data is read from the read data buffer 130 by any of the control masters 300 (S203: Yes), the memory controller 100 updates the route selector 140 (S204). That is, the identifier stored in the current route 141 is discarded, and the depth of the identifier stored in the remaining storage area is shifted to the storage area one level deeper. As a result, the current route 141 is also updated. The above processing is repeated until the data transfer processing ends (S205: Yes).

本実施形態において、コマンドバッファ120に格納されるリードコマンドの順番と、リードデータバッファ130に格納されるリードデータの順番とが対応する。さらに、ルートセレクタ140に格納されるコントロールマスタ300の識別子の順番は、コマンドバッファ120に格納されるリードコマンドを送ったコントロールマスタ300の順番に対応する。このため、リードデータバッファ130から読み出されるリードデータは、カレントルート141に格納されていた識別子が示すコントロールマスタ300からのリードコマンドに係るリードデータとなる。   In the present embodiment, the order of read commands stored in the command buffer 120 corresponds to the order of read data stored in the read data buffer 130. Further, the order of identifiers of the control master 300 stored in the route selector 140 corresponds to the order of the control master 300 that has sent the read command stored in the command buffer 120. For this reason, the read data read from the read data buffer 130 is read data related to the read command from the control master 300 indicated by the identifier stored in the current route 141.

次に、図5のフローチャートを参照して、各コントロールマスタ300のリードデータ読み出し処理について説明する。   Next, read data read processing of each control master 300 will be described with reference to the flowchart of FIG.

各コントロールマスタ300は、ルートセレクタ140のカレントルート141を参照して、カレントルート141が自身を示しているかどうかを判定する(S301)。これは、リードコマンドを送ったコントロールマスタ300が定期的/非定期的にカレントルート141を参照するようにしてもよいし、ルートセレクタ140が、カレントルート141が示すコントロールマスタ300に通知するようにしてもよい。   Each control master 300 refers to the current route 141 of the route selector 140 and determines whether or not the current route 141 indicates itself (S301). This may be such that the control master 300 that sent the read command refers to the current route 141 periodically / non-periodically, or the route selector 140 notifies the control master 300 indicated by the current route 141. May be.

カレントルート141が自身を示している場合は、先行するリードコマンドの処理が完了しており、次にリードデータバッファ130から読み出されるリードデータが自身のリードコマンドに対応したものであることを意味する。ただし、そのリードデータが既にDRAM200から読み出されてリードデータバッファ130に格納されているかどうかは分からない。   When the current route 141 indicates itself, it means that the processing of the preceding read command has been completed, and the read data read from the read data buffer 130 next corresponds to the read command of itself. . However, it is not known whether the read data has already been read from the DRAM 200 and stored in the read data buffer 130.

そこで、カレントルート141が自身を示している場合(S301:Yes)には、リードデータバッファ130のデータ有効フラグ131を参照して、データ有効フラグ131がONになっているかどうかを判定する(S302)。   Therefore, when the current route 141 indicates itself (S301: Yes), it is determined whether or not the data valid flag 131 is ON with reference to the data valid flag 131 of the read data buffer 130 (S302). ).

データ有効フラグ131がOFFの場合(S302:No)は、まだ、DRAM200からのデータ読み出しが完了していないことを意味するため、データ有効フラグ131がONになるまで待つ。   If the data valid flag 131 is OFF (S302: No), it means that the data reading from the DRAM 200 has not been completed yet, so the process waits until the data valid flag 131 is turned ON.

データ有効フラグ131がONの場合(S302:Yes)は、自身のリードコマンドに係るリードデータが読み出し可能となったことを意味するため(S303)、コントロールマスタ300が読み出せる状況になるとリードデータバッファ130からリードデータを読み出す(S304)。これにより、他のコントロールマスタ300のリードデータと取り違えることなく、自身のリードコマンドに係るリードデータを取得することができる。   If the data valid flag 131 is ON (S302: Yes), it means that the read data related to its own read command can be read (S303), so that when the control master 300 is ready to read, the read data buffer Read data is read from 130 (S304). As a result, the read data related to the read command can be acquired without being mistaken for the read data of the other control master 300.

次に、図6のタイミングチャートを参照して、本実施形態におけるデータ転送システム10の具体的な処理例について説明する。本例では、上記と同様に、ルートセレクタ140の深さを8とし、コントロールマスタ300の数を4とする。   Next, a specific processing example of the data transfer system 10 in this embodiment will be described with reference to the timing chart of FIG. In this example, similarly to the above, the depth of the route selector 140 is 8 and the number of the control masters 300 is 4.

初期状態のt1においてルートセレクタ140は空で、データ有効フラグ131は0(OFF)であるとする。   It is assumed that the route selector 140 is empty and the data valid flag 131 is 0 (OFF) at the initial state t1.

まず、t2で、コントロールマスタ(1)300aから、リードコマンドR1が送られたとする。リードコマンドであるため、リードコマンドR1が、コマンドバッファ120に格納されるとともに、リードコマンドR1を送ったコントロールマスタ(1)300aの識別子C1が、ルートセレクタ140に格納される。ルートセレクタ140において最先に格納されることになるため、C1がカレントルート141となる。   First, it is assumed that a read command R1 is sent from the control master (1) 300a at t2. Since it is a read command, the read command R1 is stored in the command buffer 120, and the identifier C1 of the control master (1) 300a that sent the read command R1 is stored in the route selector 140. Since it is stored first in the route selector 140, C1 becomes the current route 141.

このため、コントロールマスタ(1)300aは、次にリードデータバッファ130から読み出されるリードデータが自身のリードコマンドに対応したものであると判断することができる。しかし、データ有効フラグ131がOFF(0)であり、リードデータがまだ準備されていないため、データの読み出しは行なわない。   Therefore, the control master (1) 300a can determine that the next read data read from the read data buffer 130 corresponds to its own read command. However, since the data valid flag 131 is OFF (0) and the read data has not been prepared yet, the data is not read.

t3で、コントロールマスタ(1)300aから、ライトコマンドW1が送られたとする。ライトコマンドであるため、ライトコマンドW1が、コマンドバッファ120に格納されるだけであり、ルートセレクタ140には格納されない。   Assume that a write command W1 is sent from the control master (1) 300a at t3. Since it is a write command, the write command W 1 is only stored in the command buffer 120 and not stored in the route selector 140.

t4で、コントロールマスタ(2)300bから、リードコマンドR2が送られたとする。リードコマンドであるため、リードコマンドR2が、コマンドバッファ120に格納されるとともに、リードコマンドR2を送ったコントロールマスタ(2)300bの識別子C2が、ルートセレクタ140に格納される。   Assume that a read command R2 is sent from the control master (2) 300b at t4. Since it is a read command, the read command R2 is stored in the command buffer 120, and the identifier C2 of the control master (2) 300b that sent the read command R2 is stored in the route selector 140.

t5で、コントロールマスタ(2)300bから、ライトコマンドW2が送られたとする。ライトコマンドであるため、ライトコマンドW2が、コマンドバッファ120に格納されるだけであり、ルートセレクタ140には格納されない。   Assume that a write command W2 is sent from the control master (2) 300b at t5. Since it is a write command, the write command W2 is only stored in the command buffer 120 and not stored in the route selector 140.

t6で、コントロールマスタ(3)300cから、リードコマンドR3が送られ、t7で、コントロールマスタ(3)300cから、ライトコマンドW3が送られ、t8で、コントロールマスタ(4)300dから、リードコマンドR4が送られ、t9で、コントロールマスタ(4)300dから、ライトコマンドW4が送られたとする。この結果、それぞれのコマンドがコマンドバッファ120に格納されるとともに、リードコマンドR3を送ったコントロールマスタ(3)300cの識別子C3と、リードコマンドR4を送ったコントロールマスタ(4)300dの識別子C4とが、ルートセレクタ140に格納される。   At t6, the read command R3 is sent from the control master (3) 300c. At t7, the write command W3 is sent from the control master (3) 300c. At t8, the read command R4 is sent from the control master (4) 300d. Is sent, and at t9, the write command W4 is sent from the control master (4) 300d. As a result, each command is stored in the command buffer 120, and the identifier C3 of the control master (3) 300c that sent the read command R3 and the identifier C4 of the control master (4) 300d that sent the read command R4 are Stored in the route selector 140.

t9において、t2のリードコマンドR1に対応するリードデータRD1がDRAM200から読み出されて、リードデータバッファ130に格納されたとする。これにより、データ有効フラグ131がON(1)となり、コントロールマスタ(1)300aが、リードデータが準備されたことを知ることができる。そこで、コントロールマスタ(1)300a(図中下段のCM1)が、リードデータバッファ130からRD1を読み出す。   Assume that the read data RD1 corresponding to the read command R1 at t2 is read from the DRAM 200 and stored in the read data buffer 130 at t9. As a result, the data valid flag 131 is turned ON (1), and the control master (1) 300a can know that the read data has been prepared. Therefore, the control master (1) 300a (the lower CM1 in the figure) reads RD1 from the read data buffer 130.

リードデータバッファ130からRD1が読み出されると、リードデータバッファ130は空となるため、データ有効フラグ131がOFF(0)となる。また、ルートセレクタ140が更新され、カレントルート141がC1からC2に更新される。   When RD1 is read from the read data buffer 130, the read data buffer 130 becomes empty, and the data valid flag 131 is turned OFF (0). Further, the route selector 140 is updated, and the current route 141 is updated from C1 to C2.

これにより、コントロールマスタ(2)300bは、次にリードデータバッファ130から読み出されるリードデータが自身のリードコマンドに対応したものであると判断することができる。しかし、データ有効フラグ131がOFF(0)であり、リードデータがまだ準備されていないため、データの読み出しは行なわない。   Thereby, the control master (2) 300b can determine that the read data read from the read data buffer 130 next corresponds to its own read command. However, since the data valid flag 131 is OFF (0) and the read data has not been prepared yet, the data is not read.

その後、t10、t11、t12、t13で、コントロールマスタ(1)300aから、リードコマンドR1が送られたとする。この結果、それぞれのコマンドが、コマンドバッファ120に格納されるとともに、コントロールマスタ(1)300aの識別子C1が、4回続けてルートセレクタ140に格納される。   Thereafter, it is assumed that a read command R1 is sent from the control master (1) 300a at t10, t11, t12, and t13. As a result, each command is stored in the command buffer 120, and the identifier C1 of the control master (1) 300a is stored in the route selector 140 four times in succession.

この間、t12において、t4のリードコマンドR2に対応するリードデータRD2がDRAM200から読み出されて、リードデータバッファ130に格納されたとする。これにより、データ有効フラグ131がON(1)となり、コントロールマスタ(2)300bが、リードデータが準備されたことを知ることができる。ただし、ここでは、コントロールマスタ(2)300bの処理の関係上、即座には読み出さず、t14で読み出すものとする。   During this time, it is assumed that the read data RD2 corresponding to the read command R2 at t4 is read from the DRAM 200 and stored in the read data buffer 130 at t12. As a result, the data valid flag 131 is turned ON (1), and the control master (2) 300b can know that the read data has been prepared. However, here, because of the processing of the control master (2) 300b, the data is not read immediately but is read at t14.

このため、t13において、t6のリードコマンドR3に対応するリードデータRD3がDRAM200から読み出されて、リードデータバッファ130に格納されたとしても、カレントルート141がC2を示しているため、コントロールマスタ(3)300cは、リードデータRD3を読み出すことができない。すなわち、リードデータの読み出し順序が保たれることになる。   For this reason, even if the read data RD3 corresponding to the read command R3 at t6 is read from the DRAM 200 and stored in the read data buffer 130 at t13, the current route 141 indicates C2, so the control master ( 3) 300c cannot read the read data RD3. That is, the reading order of read data is maintained.

同様に、t14において、t8のリードコマンドR4に対応するリードデータRD4がDRAM200から読み出されて、リードデータバッファ130に格納されたとしても、コントロールマスタ(4)300dは、リードデータRD4を読み出すことができない。すなわち、リードデータの読み出し順序が保たれることになる。   Similarly, at t14, even if the read data RD4 corresponding to the read command R4 at t8 is read from the DRAM 200 and stored in the read data buffer 130, the control master (4) 300d reads the read data RD4. I can't. That is, the reading order of read data is maintained.

そして、t14でコントロールマスタ(2)300b(CM2)がリードデータRD2を読み出すと、カレントルート141がC2からC3に更新されるため、コントロールマスタ(3)300c(CM3)が、リードデータバッファ130からRD3を読み出すことができる。   When the control master (2) 300b (CM2) reads the read data RD2 at t14, the current route 141 is updated from C2 to C3, so that the control master (3) 300c (CM3) is read from the read data buffer 130. RD3 can be read.

これにより、カレントルート141がC3からC4に更新されるため、コントロールマスタ(4)300dが、リードデータが準備されたことを知ることができる。この間、リードデータバッファ130には、リードデータが存在し続けているため、データ有効フラグ131はON(1)状態を保っている。   Thereby, since the current route 141 is updated from C3 to C4, the control master (4) 300d can know that the read data is prepared. During this time, since the read data continues to exist in the read data buffer 130, the data valid flag 131 is kept in the ON (1) state.

その後、t14、t15においてコントロールマスタ(1)300aから、ライトコマンドW1が送られ、t16において、コントロールマスタ(2)300aから、リードコマンドR2が送られたとする。この結果、それぞれのコマンドが、コマンドバッファ120に格納されるとともに、リードコマンドR2を送ったコントロールマスタ(2)300bの識別子C2が、ルートセレクタ140に格納される。   Thereafter, it is assumed that a write command W1 is sent from the control master (1) 300a at t14 and t15, and a read command R2 is sent from the control master (2) 300a at t16. As a result, each command is stored in the command buffer 120, and the identifier C2 of the control master (2) 300b that sent the read command R2 is stored in the route selector 140.

以上のような処理により、データ転送システム10は、各コントロールマスタ300からのリードコマンドを複数受け付けて順序通りに処理することができるようになるため、リードコマンドに対する処理効率が向上することになる。   Through the processing as described above, the data transfer system 10 can receive a plurality of read commands from each control master 300 and process them in order, thereby improving the processing efficiency for the read commands.

このため、本実施形態のデータ転送システム10は、Read modify writeなどリード/ライト処理が頻繁に混在する装置に適用することで特に有効となる。より具体的には、メモリ検査装置においてFAIL Dataをカウントする場合等に有効である。   For this reason, the data transfer system 10 of the present embodiment is particularly effective when applied to an apparatus in which read / write processing such as Read modify write is frequently mixed. More specifically, this is effective when counting FAIL Data in a memory inspection device.

なお、図6におけるt13の時点で、ルートセレクタ140の格納領域がいっぱいになりかけている。このような場合に、バッファが溢れることを防ぐために、メモリコントローラ100から各コントロールマスタ300に対して、オールモストフル信号を送り、リードコマンドの発行を待たせるようにすることができる。コマンドバッファ120、リードデータバッファ130がいっぱいになりかけている場合にも、同様にオールモストフル信号を各コントロールマスタ300に送り、対応する処理を待たせるようにしてもよい。   Note that the storage area of the route selector 140 is almost full at time t13 in FIG. In such a case, in order to prevent the buffer from overflowing, an all-full signal can be sent from the memory controller 100 to each control master 300 to wait for a read command to be issued. Even when the command buffer 120 and the read data buffer 130 are almost full, an all-full signal may be sent to each control master 300 in a similar manner to wait for the corresponding processing.

10…データ転送システム、100…メモリコントローラ、110…メモリインタフェース、120…コマンドバッファ、130…リードデータバッファ、131…データ有効フラグ、140…ルートセレクタ、141…カレントルート、200…DRAM、300…コントロールマスタ、500…メモリコントローラ、510…メモリインタフェース、520…コマンドバッファ、530…リードデータバッファ、600…DRAM、700…コントロールマスタ DESCRIPTION OF SYMBOLS 10 ... Data transfer system, 100 ... Memory controller, 110 ... Memory interface, 120 ... Command buffer, 130 ... Read data buffer, 131 ... Data valid flag, 140 ... Route selector, 141 ... Current route, 200 ... DRAM, 300 ... Control Master, 500 ... Memory controller, 510 ... Memory interface, 520 ... Command buffer, 530 ... Read data buffer, 600 ... DRAM, 700 ... Control master

Claims (2)

メモリコントローラを介して接続された複数のコントロールマスタとメモリとの間でデータリード処理を行なうデータ転送システムであって、
前記メモリコントローラは、
いずれかの前記コントロールマスタからリードコマンドを受け付けると、そのリードコマンドに係るコントロールマスタの識別子をFIFO形式で格納するルートセレクタと、
前記リードコマンドに従って前記メモリから読み出したリードデータをFIFO形式で格納するリードデータバッファと、を備え、
前記コントロールマスタは、
前記ルートセレクタに格納されている識別子のうち、最先に格納された識別子が自身の識別子であって、前記リードデータバッファにリードデータが格納されている場合に、前記リードデータバッファからリードデータを読み出すことを特徴とするデータ転送システム。
A data transfer system for performing data read processing between a plurality of control masters and memories connected via a memory controller,
The memory controller is
When a read command is received from any of the control masters, a route selector that stores the identifier of the control master related to the read command in a FIFO format;
A read data buffer for storing read data read from the memory according to the read command in a FIFO format;
The control master is
Among the identifiers stored in the route selector, when the identifier stored first is its own identifier and read data is stored in the read data buffer, read data is read from the read data buffer. A data transfer system characterized by reading.
前記ルートセレクタは、前記リードデータバッファからリードデータが読み出されると、前記最先に格納された識別子を消去することを特徴とする請求項1に記載のデータ転送システム。   The data transfer system according to claim 1, wherein when the read data is read from the read data buffer, the route selector erases the identifier stored first.
JP2009273268A 2009-12-01 2009-12-01 Data transfer system Pending JP2011118501A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009273268A JP2011118501A (en) 2009-12-01 2009-12-01 Data transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009273268A JP2011118501A (en) 2009-12-01 2009-12-01 Data transfer system

Publications (1)

Publication Number Publication Date
JP2011118501A true JP2011118501A (en) 2011-06-16

Family

ID=44283779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009273268A Pending JP2011118501A (en) 2009-12-01 2009-12-01 Data transfer system

Country Status (1)

Country Link
JP (1) JP2011118501A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225390A (en) * 2014-05-26 2015-12-14 株式会社河合楽器製作所 Effect application device
JP2016170607A (en) * 2015-03-12 2016-09-23 日本電気株式会社 Data processing apparatus and data processing method
KR20170134704A (en) * 2015-04-23 2017-12-06 후아웨이 테크놀러지 컴퍼니 리미티드 Access methods, devices and systems for extended memory

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225390A (en) * 2014-05-26 2015-12-14 株式会社河合楽器製作所 Effect application device
JP2016170607A (en) * 2015-03-12 2016-09-23 日本電気株式会社 Data processing apparatus and data processing method
KR20170134704A (en) * 2015-04-23 2017-12-06 후아웨이 테크놀러지 컴퍼니 리미티드 Access methods, devices and systems for extended memory
JP2018517205A (en) * 2015-04-23 2018-06-28 華為技術有限公司Huawei Technologies Co.,Ltd. Method, device and system for accessing extended memory
US10545672B2 (en) 2015-04-23 2020-01-28 Huawei Technologies Co., Ltd. Method for accessing extended memory, device, and system
KR102168017B1 (en) * 2015-04-23 2020-10-20 후아웨이 테크놀러지 컴퍼니 리미티드 How to access extended memory, devices and systems
US11237728B2 (en) 2015-04-23 2022-02-01 Huawei Technologies Co., Ltd. Method for accessing extended memory, device, and system

Similar Documents

Publication Publication Date Title
KR101693137B1 (en) Apparatuses and methods for variable latency memory operations
EP2750036A2 (en) Information processing apparatus and method to update firmware
US9043806B2 (en) Information processing device and task switching method
JP2006318139A (en) Data transfer device, data transfer method and program
US8230138B2 (en) Memory control device, data processor, and data read method
JP2010205083A (en) Parallel processing processor system
CN104183267A (en) Data Processing Apparatus and Memory Apparatus
JP2011118501A (en) Data transfer system
JP2011081553A (en) Information processing system and control method thereof
JP2008204257A (en) Memory controller for controlling memory, and memory control method
JP2010146084A (en) Data processor including cache memory control section
US20100153622A1 (en) Data Access Controller and Data Accessing Method
KR20070122228A (en) External device access device
US20130132659A1 (en) Microcontroller and method of controlling microcontroller
TW201037514A (en) Method and device for accessing memory and central processing unit using the same
JP2006350633A (en) Data management method and data management system
JP2011133940A (en) Access arbitration apparatus, integrated circuit device, electronic apparatus, access arbitration method, and program
JP2005258719A (en) Data processing system and slave device
JP2010262496A (en) Memory control method and memory control device
JP4924970B2 (en) Data processing system
JP2008210280A (en) Semiconductor device and dma controller
JP2005157717A (en) Data transfer method and device
US8499135B2 (en) Memory controller for reading data stored in memory after written thereto using write information table
CN105900060B (en) Memory pool access method, device and computer equipment
US11681527B2 (en) Electronic device and multiplexing method of spatial