JP2019032727A - Input/output device for communication - Google Patents
Input/output device for communication Download PDFInfo
- Publication number
- JP2019032727A JP2019032727A JP2017153879A JP2017153879A JP2019032727A JP 2019032727 A JP2019032727 A JP 2019032727A JP 2017153879 A JP2017153879 A JP 2017153879A JP 2017153879 A JP2017153879 A JP 2017153879A JP 2019032727 A JP2019032727 A JP 2019032727A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- bank
- write
- read
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
Description
本発明は、データ通信技術に関し、特に通信データ(フレームデータ)の入出力を行う通信用入出力装置で用いられるメモリアクセス制御技術に関する。 The present invention relates to a data communication technique, and more particularly to a memory access control technique used in a communication input / output device that inputs and outputs communication data (frame data).
従来、インターネット等のデータ通信で使用されて、例えばイーサネット(登録商標)のフレームデータ等の通信データを入出力するための通信用入出力装置として、例えば、特許文献1のような構成が提案されている。図28は、従来の通信用入出力装置(内蔵メモリ)の構成を示すブロック図である。
この通信用入出力装置は、多重化装置MUX、記録装置MEM、および多重分離装置DEMUXから構成されている。
Conventionally, for example, a configuration as disclosed in
This communication input / output device includes a multiplexing device MUX, a recording device MEM, and a demultiplexing device DEMUX.
MUXは、入力ポートごとに設けられたキュー指定情報付加部により、入力されたフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報を付加した後、多重化部により多重化して出力する。
MEMは、MUXから時分割多重で出力されたフレームデータを書込制御部により受け取り、各フレームデータに付加されているキュー指定情報とキューマップとを参照し、内蔵するデータメモリ内にフレームデータの出力先ごとに論理的に設けたキューのうち、キュー指定情報と対応するキューのアドレスへフレームデータを書き込む。また、MEMは、DEMUXからの読出指示に応じて、読出制御部により対応するキューからフレームデータを読み出して、DEMUXに出力する。
The MUX adds the queue designation information corresponding to the output destination of the frame data to the input frame data by the queue designation information addition section provided for each input port, and then multiplexes it by the multiplexing section. Output.
The MEM receives the frame data output from the MUX by time division multiplexing by the write control unit, refers to the queue designation information and the queue map added to each frame data, and stores the frame data in the built-in data memory. Of the queues logically provided for each output destination, the frame data is written to the queue address corresponding to the queue designation information. Further, in response to a read instruction from the DEMUX, the MEM reads frame data from the corresponding queue by the read control unit and outputs the frame data to the DEMUX.
DEMUXは、読出部により、出力ポートごとの優先制御ロジックに基づき、MEM内の優先出力ポートに対応する出力先のキューからフレームデータを読み出して、振分部により対応する出力ポートへ振り分け、出力ポートごとに設けられた速度変換部により当該出力ポートの通信速度に変換して出力する。 The DEMUX reads out the frame data from the output destination queue corresponding to the priority output port in the MEM based on the priority control logic for each output port by the reading unit, and distributes the frame data to the corresponding output port by the distribution unit. The data is converted into the communication speed of the output port by a speed conversion unit provided for each output.
図29は、キューと出力ポートとの対応を示す説明図であり、出力ポート数が3の場合が示されている。図29(a)では、キューと出力ポートとが1対1に対応付けられているが、図29(b)のように、1対多に対応付けることにより、1つのフレームデータを複数の出力ポートが出力する場合に対応可能となる。また、図29(c)のように、出力ポートごとに、読出優先度に応じたキューを対応付けることもできる。 FIG. 29 is an explanatory diagram showing the correspondence between queues and output ports, and shows the case where the number of output ports is three. In FIG. 29A, queues and output ports are associated one-to-one, but as illustrated in FIG. 29B, one frame data is associated with a plurality of output ports. Can be handled when In addition, as shown in FIG. 29C, a queue corresponding to the read priority can be associated with each output port.
このような通信用入出力装置では、出力系統の増加に応じてMEMで必要とされる記憶容量が増大するため、データメモリとしてDRAMが用いられる。しかしながら、DRAMのアクセスには、各バンクにおけるロウアドレスの活性化に起因して待ち時間が発生するため、場合によっては、DRAMアクセスの実効スループットが極端に低下して、フレームデータの処理速度に追従できなくなり、通信品質が劣化するという問題点があった。 In such a communication input / output device, the storage capacity required by the MEM increases as the output system increases, so a DRAM is used as a data memory. However, since DRAM access has a waiting time due to the activation of the row address in each bank, in some cases, the effective throughput of the DRAM access is extremely reduced to follow the processing speed of frame data. There is a problem that communication quality is deteriorated because communication cannot be performed.
一般に、DRAMでは、任意のバンクの任意のロウアドレスにデータを書き込む場合、当該バンクにおいて当該ロウアドレスを活性化する必要があり、同一バンクの異なるロウアドレスにアクセスする場合には、当該ロウアドレスを用いたアクセスが完了するのを待ってから、新たなロウアドレスを活性化する必要があるため、同一バンクへのアクセスにおいて、ロウアドレスの活性化に起因して比較的大きな待ち時間が発生する。具体的には、同一バンクの異なるロウアドレスへのアクセスが連続した場合である。その他に待ち時間が発生する条件として、読み出し後の同一バンクに書き込みを行う場合、および、書き込み後の同一バンクから読み出しを行う場合がある。 In general, in a DRAM, when writing data to an arbitrary row address of an arbitrary bank, it is necessary to activate the row address in the bank. When accessing a different row address of the same bank, the row address is Since it is necessary to activate a new row address after waiting for the used access to be completed, a relatively large waiting time occurs due to the activation of the row address in accessing the same bank. Specifically, this is a case where accesses to different row addresses in the same bank are continuous. As other conditions for waiting time, there are a case where writing is performed in the same bank after reading and a case where reading is performed from the same bank after writing.
したがって、これら待ち時間がDRAMアクセスに関する実効スループットの低下原因となる。このため、特に、通信用入出力装置においては、短いフレームデータがバースト的に連続して入力される場合があり、このようなケースにおいて、頻繁に同一バンクの異なるロウアドレスへアクセスを行った場合、極端に実効スループットが低下する可能性がある。 Therefore, these waiting times cause a decrease in effective throughput related to DRAM access. Therefore, in particular, in communication I / O devices, short frame data may be input continuously in bursts. In such a case, when frequently accessing different row addresses in the same bank The effective throughput may be extremely reduced.
本発明はこのような課題を解決するためのものであり、DRAMアクセスに関する実効スループットの低下を抑制できるメモリアクセス制御技術を提供することを目的としている。 An object of the present invention is to provide a memory access control technique capable of suppressing such a decrease in effective throughput related to DRAM access.
このような目的を達成するために、本発明にかかる通信用入出力装置は、順次入力される通信データに、当該通信データを出力すべき出力系統と対応するキューを示すキュー指定情報を付加して多重化する多重化装置と、前記多重化装置から転送された前記通信データを、データメモリ内に論理的に形成した複数のキューのうち前記キュー指定情報で指定された書込対象キューへ一時蓄積する記録装置と、前記キューのうち優先制御ロジックに基づき選択した出力系統と対応する読出対象キューから前記通信データを読み出し、当該出力系統と対応する出力ポートの通信速度に変換して出力する多重分離装置とを備える通信用入出力装置であって、前記記録装置は、バンクごとに複数のロウアドレスを有するDRAMからなり、前記キューと対応する個別のロウアドレスで当該キューの通信データを記憶する前記データメモリと、前記書込対象キューに前記通信データを書き込む際、前記バンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該通信データを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該通信データを書き込む第1のDRAMアクセス部と、バンクごとに複数のロウアドレスを有するDRAMからなり、前記データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリと、前記キュー制御メモリのキュー制御情報に基づいて、前記多重化装置から転送された前記通信データの前記書込対象キューに対する書き込みを前記第1のDRAMアクセス部に指示する書込制御部と、前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからの通信データの読み出しを前記第1のDRAMアクセス部に指示し、読み出した通信データを前記多重分離装置へ転送する読出制御部と、前記キューと対応する前記キュー制御メモリの個別のロウアドレスで当該キューのキュー制御情報を記録し、前記書込対象キューに前記通信データを書き込む際、キュー制御メモリのバンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該キュー制御情報を書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該キュー制御情報を書き込む第2のDRAMアクセス部とを備えている。 In order to achieve such an object, the communication input / output device according to the present invention adds queue designation information indicating a queue corresponding to an output system to which the communication data is to be output to communication data that is sequentially input. And the communication data transferred from the multiplexing device are temporarily stored in a write target queue designated by the queue designation information among a plurality of queues logically formed in a data memory. Multiplex that reads out the communication data from the queue to be read corresponding to the output system selected from the queue and the output system selected based on the priority control logic from the queue, converts it to the communication speed of the output port corresponding to the output system, and outputs it A communication input / output device comprising a separation device, wherein the recording device comprises a DRAM having a plurality of row addresses for each bank, and the queue and A write target row address corresponding to the write target queue in the bank when the communication data is written to the write target queue and the data memory storing the communication data of the queue with a corresponding individual row address Is selected as a write target bank, the communication data is written, and if there is no bank in which the write target row address is active, the write target row address is inactive. A first DRAM access unit for writing the communication data after selecting a bank in the activated state as a write target bank and activating the write target row address, and a DRAM having a plurality of row addresses for each bank Storing queue control information used for controlling writing / reading to / from the queue of the data memory Write control that instructs the first DRAM access unit to write the communication data transferred from the multiplexing device to the write target queue based on queue control memory and queue control information in the queue control memory And reading the communication data from the read target queue to the first DRAM access unit based on the queue control information in the queue control memory and transferring the read communication data to the demultiplexer When the queue control information of the queue is recorded by the control unit and the individual row address of the queue control memory corresponding to the queue and the communication data is written to the write target queue, the queue control memory Select the bank whose write target row address corresponding to the write target queue is activated as the write target bank. If the bank whose write target row address is in an activated state does not exist, the bank whose write target row address is in an inactive state is selected as the write target bank. And a second DRAM access unit for writing the queue control information after the write target row address is activated.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューと前記データメモリの前記バンクとの組み合わせごとに、当該キューの通信データを当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する第1のバンク管理メモリをさらに備え、前記書込制御部は、前記通信データを書き込む際、前記書込対象ロウアドレスと前記書込対象バンクとの組み合わせに対応する書込ポインタ値を前記第1のバンク管理メモリから取得し、当該書込対象バンクの当該書込対象ロウアドレスのうち、当該書込ポインタ値からなるコラムアドレスに当該通信データを書き込むようにしたものである。 Further, in the above configuration example of the input / output device for communication according to the present invention, when the recording device writes the communication data of the queue to the bank for each combination of the queue and the bank of the data memory. A first bank management memory for storing a write pointer value used as a column address, wherein the write control unit combines the write target row address and the write target bank when writing the communication data; Is obtained from the first bank management memory, and the communication data is written to the column address consisting of the write pointer value in the write target row address of the write target bank. It is a thing.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューと前記キュー制御メモリの前記バンクとの組み合わせごとに、当該キューのキュー制御情報を当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する第2のバンク管理メモリをさらに備え、前記書込制御部は、前記キュー制御情報を書き込む際、前記書込対象ロウアドレスと前記書込対象バンクとの組み合わせに対応する書込ポインタ値を前記第2のバンク管理メモリから取得し、当該書込対象バンクの当該書込対象ロウアドレスのうち、当該書込ポインタ値からなるコラムアドレスに当該キュー制御情報を書き込むようにしたものである。 Also, in one configuration example of the communication input / output device according to the present invention, the recording device writes the queue control information of the queue to the bank for each combination of the queue and the bank of the queue control memory. A second bank management memory for storing a write pointer value used as a column address when the write control unit writes the queue control information, the write target row address and the write target bank Is obtained from the second bank management memory, and the queue control is performed on the column address composed of the write pointer value among the write target row addresses of the write target bank. Information is written.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記書込制御部が、前記キュー制御情報を書き込む際、前記通信データの書き込みに使用した、前記書込対象ロウアドレス、前記書込対象バンク、及び、書込ポインタ値を、前記キュー制御情報の書込対象ロウアドレス、書込対象バンク、及び、書込対象コラムアドレスとして前記キュー制御情報を書き込むようにしたものである。 Also, in one configuration example of the communication input / output device according to the present invention, when the write control unit writes the queue control information, the write target row address used for writing the communication data, The queue control information is written using the write target bank and the write pointer value as the write target row address, write target bank, and write target column address of the queue control information.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記キュー制御メモリが、仮想データメモリ上で用いられる仮想格納アドレスに書き込まれた通信データに後続する通信データの格納バンクを記憶し、前記キューごとに、当該キューの先頭および最終の通信データが書き込まれているバンクを記憶し、前記書込制御部は、前記書込対象キューに前記通信データを書き込む際、当該書込対象キューのキュー最終バンク、書込前の最終データに後続するデータの格納バンクをそれぞれ更新し、前記読出制御部は、前記読出対象キューから前記通信データを読み出す際、当該読出対象キューのキュー先頭バンクの読出ポインタ値に対する当該通信データの読み出しを前記第1のDRAMアクセス部に指示し、当該読出対象キューのキュー先頭バンクを更新するようにしたものである。 Also, in one configuration example of the communication input / output device according to the present invention, the queue control memory stores a communication data storage bank subsequent to the communication data written in a virtual storage address used on the virtual data memory. For each of the queues, a bank in which the first and last communication data of the queue is written is stored, and the write control unit writes the communication data into the write target queue. The queue last bank of the queue and the storage bank of the data subsequent to the last data before writing are updated, respectively, and when the read control unit reads the communication data from the read target queue, the queue head bank of the read target queue Instructing the first DRAM access unit to read out the communication data for the read pointer value of It is those you chose to update the head bank.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューごとに、当該キューが使用している前記仮想データメモリ上での仮想格納アドレスの数を示す使用アドレス数を記憶するキュー使用アドレス数メモリと、前記書込対象キューに前記通信データを書き込む際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、前記キュー使用アドレス数メモリから取得した当該書込対象キューの使用アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて前記書込制御部に対して当該通信データの書き込みを指示するアクセス調停部とをさらに備えている。 Also, in one configuration example of the communication input / output device according to the present invention, the recording device uses, for each queue, the number of virtual storage addresses on the virtual data memory used by the queue. Queue use address number memory for storing the number of addresses, and when writing the communication data to the write target queue, based on the data length of the communication data, the required address number indicating the number of virtual storage addresses required for writing Calculate the remaining address number indicating the number of virtual storage addresses that can be used for the writing based on the used address number of the write target queue acquired from the queue used address number memory, and calculate the required address number and the By comparing with the number of remaining addresses, it is determined whether or not the communication data can be written. Further comprising an access arbitration unit for instructing the writing of the communication data.
本発明によれば、多重化装置から転送された通信データを、データメモリ内に論理的に形成した複数のキューのうちキュー指定情報で指定された書込対象キューへ一時蓄積する記録装置において、データメモリをDRAMで構成した場合でも、ロウアドレスの活性化回数を低減することができる。このため、データメモリ用のDRAMアクセスに関する実効スループットの低下を抑制することが可能となる。 According to the present invention, in a recording device for temporarily storing communication data transferred from a multiplexing device in a write target queue designated by queue designation information among a plurality of queues logically formed in a data memory, Even when the data memory is composed of a DRAM, the number of activations of the row address can be reduced. For this reason, it is possible to suppress a decrease in effective throughput related to DRAM access for data memory.
次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかる通信用入出力装置1について説明する。図1は、第1の実施の形態にかかる通信用入出力装置の構成を示すブロック図である。
Next, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, a communication input /
この通信用入出力装置1は、インターネット通信等で使用されて、例えばイーサネット(登録商標)のフレームデータ等の通信データを入出力するための通信用入出力装置であり、1つまたは複数の入力ポートから入力された通信データを、その通信データを出力すべき出力系統ごとに分離し、当該出力系統と対応する出力ポートの通信速度に変換して出力する機能を有している。
The communication input /
図1に示すように、通信用入出力装置1は、多重化装置(MUX)10、メモリアクセス制御機能内蔵型の多重分離装置(DEMUX)20、およびアクセス制御機能内蔵型の記録装置(MEM)30から構成されている。以下では、通信用入出力装置1で入出力する通信データがフレームデータである場合を例として説明するが、これに限定されるものではなく、パケットやATMセルなど各種の通信データを、フレームデータと同様にして入出力することも可能である。
As shown in FIG. 1, the communication input /
多重化装置10は、外部から順次入力されるフレームデータに、当該フレームデータを出力すべき出力系統と対応するキュー指定情報を付加して多重化する機能を有している。
記録装置30は、多重化装置10から転送されたフレームデータを、データメモリ内に論理的に形成した複数のキューのうち、当該フレームデータに付加されているキュー指定情報で指定された書込対象キューへ一時蓄積する機能を有している。
多重分離装置20は、記録装置30内のキューのうち優先制御に基づき選択した出力系統と対応する読出対象キューから、当該読出対象キューに一時蓄積されているフレームデータを読み出し、当該出力系統と対応する出力ポートの通信速度に変換して出力する機能を有している。
The multiplexing device 10 has a function of multiplexing the frame data sequentially input from the outside by adding queue designation information corresponding to the output system to which the frame data is to be output.
The
The
本実施の形態は、記録装置30において、データメモリ31をバンクごとに複数のロウアドレスを有するDRAMから構成して、それぞれのキューと対応するロウアドレスで当該キューのフレームデータを記憶し、第1のDRAMアクセス部32が、書込対象キューにフレームデータを書き込む際、バンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込むようにしたものである。
In the present embodiment, in the
これに加えて、記録装置30が、データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶する、バンクごとに複数のロウアドレスを有するDRAMからなるキュー制御メモリと、前記キュー制御メモリのキュー制御情報に基づいて、多重化装置から転送されたフレームデータの前記書込対象キューに対する書き込みを前記第1のDRAMアクセス部に指示する書込制御部と、前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからのフレームデータの読み出しを前記第1のDRAMアクセス部に指示し、読み出した通信データを多重分離装置へ転送する読出制御部とをさらに備えたものである。
In addition to this, a queue control memory made up of a DRAM having a plurality of row addresses for each bank, which stores queue control information used when the
さらに、記録装置30は、前記キューと対応する前記キュー制御メモリの個別のロウアドレスで当該キューのキュー制御情報を記録し、前記書込対象キューにフレームデータを書き込む際、キュー制御メモリのバンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該キュー制御情報を書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該キュー制御情報を書き込む第2のDRAMアクセス部とを備えたものである。
Further, the
本実施の形態では、図1に示すように、入力ポートPinとして2つの入力ポートPin0,Pin1が設けられ、出力ポートPoutとして2つの出力ポートPout0,Pout1が設けられている場合を例として説明するが、入力ポートPinおよび出力ポートPoutの数については、これに限定されるものではない。入力ポートPinおよび出力ポートPoutのいずれか一方または両方を3つ以上設けることも可能であり、入力ポート数と出力ポート数が異なっていてもよい。なお、入力ポート数は、1つであってもよい。 In this embodiment, as shown in FIG. 1, a case where two input ports Pin0 and Pin1 are provided as the input port Pin and two output ports Pout0 and Pout1 are provided as the output port Pout will be described as an example. However, the number of input ports Pin and output ports Pout is not limited to this. Three or more of either or both of the input port Pin and the output port Pout can be provided, and the number of input ports and the number of output ports may be different. Note that the number of input ports may be one.
[多重化装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置1で用いられる多重化装置10について詳細に説明する。
多重化装置10には、主な回路部として、キュー指定情報付加部11と多重化部12が設けられている。
[Multiplexer]
Next, with reference to FIG. 1, the multiplexing apparatus 10 used in the communication input /
The multiplexing apparatus 10 includes a queue designation
キュー指定情報付加部11は、入力ポートPin0,Pin1ごとに設けられて、対応する入力ポートPinから入力されるフレームデータに対して、当該フレームデータの出力先に対応するキュー指定情報と、当該フレームデータのフレーム長情報(Byte)とを付加して多重化部12へ出力する機能を有している。この際、フレーム長情報については、例えば、多重化部12にフレームデータを出力する際、当該フレームデータの先頭から最終までのByte数をフレーム長として計数したものを付加すればよい。
The queue designation
多重化部12は、各キュー指定情報付加部11に共通して1つ設けられて、各キュー指定情報付加部11から出力されたフレームデータを時分割で多重化して、記録装置30へ出力する機能を有している。
多重化装置10において、フレームデータの出力先に対応するキューの指定については、IEEE802.1D等のブリッジ機能により実現すればよく、具体的には、MACアドレス学習による出力ポート検索、VLAN−IDによる出力ポート指定等が可能である(特許文献1など参照)。
Multiplexing
In the multiplexer 10, the designation of the queue corresponding to the output destination of the frame data may be realized by a bridge function such as IEEE802.1D. Specifically, the output port search by MAC address learning and the VLAN-ID are used. The output port can be specified (see Patent Document 1).
[多重分離装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置1で用いられる多重分離装置20について詳細説明する。
多重分離装置20には、主な回路部として、読出部21、振分部22、および速度変換部23,24が設けられている。
[Demultiplexer]
Next, the
The
読出部21は、記録装置30から取得した各キューの蓄積状況や速度変換部23,24から出力された読出停止指示信号を参照し、出力ポートPout0,Pout1ごとの優先制御ロジックに基づいてフレームデータを優先して出力すべき出力系統を選択する機能と、当該出力系統と対応する読出対象キューからのフレームデータの読み出しを要求する読み出し要求を出力する機能と、これに応じて記録装置30から転送されたフレームデータを、振分部22へ出力する機能を有している。
優先制御ロジックについては、例えば各キューの容量が同じ場合であれば、読み出し可能なキューの中でキューに蓄積されている通信データの量が最も多いキューから読み出しを行う等、一般的な優先制御ロジックを用いればよい(特許文献1など参照)。
The
For priority control logic, for example, if the capacity of each queue is the same, general priority control such as reading from the queue with the largest amount of communication data stored in the queue among readable queues. Logic may be used (see Patent Document 1).
また、読出部21は、記録装置30に読み出し要求を出力する際、読み出し対象となるキューを指定するキュー指定情報に加えて、読み出しデータのデータ量を示す読出データ量情報を記録装置30に指示する。
読出データ量情報については、例えば読み出しを行うキューのデータ蓄積量が予め設定した閾値以下の場合は、データ蓄積量に等しい値を読出データ量情報として出力し、閾値を超えていた場合は、閾値の値を読出データ量情報として出力すればよい。
In addition, when the
For the read data amount information, for example, when the data accumulation amount of the queue to be read is equal to or less than a preset threshold value, a value equal to the data accumulation amount is output as the read data amount information. May be output as read data amount information.
振分部22は、読出部21から出力されたフレームデータを、当該フレームデータに付加されているキュー指定情報に基づいて、対応する出力ポートの速度変換部23,24へ振り分ける機能を有している。
速度変換部23,24は、出力ポートごとに設けられて、振分部22から振り分けられたフレームデータを当該出力ポートの通信速度に変換して出力する機能と、フレームデータの出力状況に応じて読出停止指示信号を読出部21に出力する機能とを有している。
なお、フレームデータに付加されているキュー指定情報は、振分部22もしくは速度変換部23,24で削除される。
The
The
The queue designation information added to the frame data is deleted by the
[記録装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置1で用いられる記録装置30について詳細説明する。
[Recording device]
Next, the
図1に示すように、記録装置30には、主な回路部として、データメモリ(DM)31、第1のDRAMアクセス部(DM用)32、キュー制御メモリ33、書込制御部34、読出制御部35、キュー使用アドレス数メモリ36、アクセス調停部37、および第2のDRAMアクセス部(QM用)38が設けられている。
As shown in FIG. 1, the
データメモリ(DM)31は、バンク(Bank)ごとに複数のロウアドレス(Row Address)を有する一般的なDRAM(DRAMチップ)からなり、キューと対応するロウアドレスで当該キューのフレームデータを記憶する機能を有している。具体的には、データメモリ31を1つ、もしくは、複数のDRAMチップで構成して、各出力系統のキューに対応させればよく、出力系統ごとにそれぞれ1つのキューを持たせる構成の他、1つの出力系統に複数のキューを持たせることも可能である。本実施の形態では、キューとロウアドレスとが対応しており、1つのDRAMチップを複数のキューで共用することになる。
The data memory (DM) 31 includes a general DRAM (DRAM chip) having a plurality of row addresses for each bank, and stores the frame data of the queue at the row address corresponding to the queue. It has a function. Specifically, the
データメモリ31には、固有の格納アドレスを持つ複数の格納領域が設けられている。各キューはデータメモリ31の格納アドレスと同等な仮想格納アドレスを持つ仮想データメモリの仮想格納領域を、仮想格納アドレスの連続・不連続に関わらず任意に連結することにより構成されている。なお、仮想格納アドレスは、DRAMへのアクセスに用いる実際のコラムアドレス(Column Address)に対応するアドレス情報である。
The
後述する図7には、仮想データメモリの記憶例として、それぞれ固有の仮想格納アドレスADM(0〜N:Nは2以上の整数)を持つ仮想格納領域ごとに、書込制御部34から書き込まれたデータを記憶している場合のイメージを示している。
この際、1フレームが1仮想アドレス分のデータサイズより長い場合、1フレームは、1仮想アドレス分のデータサイズに合わせて複数のデータDに分割され、それぞれ異なる複数の仮想格納アドレスに書き込まれる。
In FIG. 7 to be described later, as a storage example of the virtual data memory, each virtual storage area having a unique virtual storage address ADM (0 to N: N is an integer of 2 or more) is written from the
At this time, if one frame is longer than the data size for one virtual address, one frame is divided into a plurality of data D in accordance with the data size for one virtual address, and written to a plurality of different virtual storage addresses.
例えば、図7の場合、バンク0のロウアドレス=P1の仮想格納アドレス0、1、2に、キューP1のデータP1−1,P1−2,P1−3が格納されており、バンク1のロウアドレス=P2の仮想格納アドレス0、1、2に、キューP2のデータP2−1,P2−2,P2−3が格納されている。これらデータの前後関係やフレームとの対応関係については、後述するアドレスキュー管理メモリで管理される。なお、1フレームが仮想格納領域のデータサイズより短い場合、フレームデータは1つの仮想格納領域に格納される。
For example, in the case of FIG. 7, the data P1-1, P1-2, and P1-3 of the queue P1 are stored in the virtual storage addresses 0, 1, and 2 of the
第1のDRAMアクセス部32は、書込制御部34からのDRAM書込指示に応じて、データメモリ31内の書込対象キューと対応する書込対象ロウアドレスにフレームデータを書き込む機能と、読出制御部35からのDRAM読出指示に応じて、データメモリ31内の読出対象キューと対応する書込対象ロウアドレスからフレームデータを読み出す機能とを有している。
The first
第1のDRAMアクセス部32は、フレームデータを書き込む際、指示されたバンクの書込対象ロウアドレスが活性化状態にある場合に、指定された仮想格納アドレス(コラムアドレス)にフレームデータを書き込む機能と、当該書込対象ロウアドレスが活性化状態にない場合は、当該書込対象ロウアドレスを活性化した後にフレームデータを書き込む機能とを有している。
The first
また、第1のDRAMアクセス部32は、フレームデータを読み出す際、指示された読出対象バンクにおいて読出対象ロウアドレスが活性化状態にある場合は、当該読出対象バンクの読出対象ロウアドレスからフレームデータを読み出し、当該読出対象バンクで読出対象ロウアドレスが活性化状態にない場合は、当該読出対象バンクの読出対象ロウアドレスを活性化した後にフレームデータを読み出す機能とを有している。
Further, when reading the frame data, the first
キュー制御メモリ33は、例えばSRAMチップなどの半導体メモリ等からなり、データメモリ31上に形成されている各キューに対するフレームデータの書き込み・読み出しを制御する際に用いる各種のキュー制御情報を記憶する機能を有している。
The
図2は、第1の実施の形態にかかるキュー制御メモリの構成を示すブロック図である。キュー制御メモリ33は、レジスタやメモリからなる複数の記憶部を含んでおり、主な記憶部として、アドレスキュー管理メモリ(QM)33A、キュー先頭バンクレジスタ(QSA)33B、キュー最終バンクメモリ(QLA)33C、アクセス履歴レジスタ(AAR)33D、第1のバンク管理メモリ(DM用)33E、および第2のバンク管理メモリ(QM用)33Fを有している。なお、以下では理解を容易とするため、レジスタ名を変数名として用いて説明する場合がある。
FIG. 2 is a block diagram illustrating a configuration of the queue control memory according to the first embodiment. The
アドレスキュー管理メモリ(QM)33Aは、バンク(Bank)ごとに複数のロウアドレス(Row Address)を有する一般的なDRAMからなり、仮想格納アドレスに書き込まれた通信データに後続する通信データの格納バンク(QNA)を記憶する機能を有している。
後述する図7および図8に示すように、QNAは、当該仮想格納アドレスに書き込まれた通信データに後続する通信データが格納されているバンクである。また、後述する図8に示すように、データメモリの連続した仮想格納アドレスにフレームデータを書き込む場合の先頭データのバンク(DSA)と仮想格納アドレスの連続数(DNU)も記録している。
The address queue management memory (QM) 33A is composed of a general DRAM having a plurality of row addresses for each bank, and stores a communication data storage bank following the communication data written to the virtual storage address. (QNA) is stored.
As shown in FIGS. 7 and 8 to be described later, the QNA is a bank in which communication data following the communication data written in the virtual storage address is stored. Further, as shown in FIG. 8 to be described later, the head data bank (DSA) and the number of consecutive virtual storage addresses (DNU) when frame data is written to continuous virtual storage addresses of the data memory are also recorded.
キュー先頭バンクレジスタ(QSA)33B、キュー最終バンクメモリ(QLA)33Cは、キューごとに、キュー先頭のフレームデータを書き込んだバンク(QSA)およびキュー最終のフレームデータを書き込んだバンク(QLA)を記憶する機能を有している。
図7の例では、キューを識別するためのキューID(キュー番号)ごとに、QSAとQLAを記憶している。
The queue head bank register (QSA) 33B and the queue last bank memory (QLA) 33C store, for each queue, the bank (QSA) in which the queue top frame data is written and the bank (QLA) in which the queue last frame data is written. It has a function to do.
In the example of FIG. 7, QSA and QLA are stored for each queue ID (queue number) for identifying a queue.
アクセス履歴レジスタ(AAR)33Dは、最後に書き込み指示、もしくは、読み出し指示を行ったアドレス(バンク情報とロウアドレスを含む)をAAR_1として記録し、AAR_nはAAR_1の更新時にAAR_(n−1)の値に更新する(nは2以上の整数)。すなわち、直近n回分の書き込み指示、もしくは、読み出し指示の履歴を表示する。 The access history register (AAR) 33D records the address (including bank information and row address) at which the last write instruction or read instruction is recorded as AAR_1, and AAR_n is stored in AAR_ (n−1) when AAR_1 is updated. Update to a value (n is an integer greater than or equal to 2). That is, the history of the latest n write instructions or read instructions is displayed.
第1のバンク管理メモリ(DM用)33Eは、例えばSRAMチップなどの半導体メモリからなり、キューを識別するためのキューID(キュー番号)とDMのバンクとの組み合わせごとに、当該キューの通信データを当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する機能と、キューを識別するためのキューID(キュー番号)とDMのバンクとの組み合わせごとに、当該キューの通信データを当該バンクから読み出す際にコラムアドレスとして用いる読出ポインタ値を記憶する機能とを有している。 The first bank management memory (for DM) 33E is composed of a semiconductor memory such as an SRAM chip, for example, and communication data of the queue is combined for each combination of a queue ID (queue number) for identifying the queue and a bank of DM. For each combination of a function for storing a write pointer value used as a column address when writing the data to the bank and a queue ID (queue number) for identifying the queue and a bank of DM, the communication data of the queue is It has a function of storing a read pointer value used as a column address when reading from the bank.
また、第2のバンク管理メモリ(QM用)33Fは、例えばSRAMチップなどの半導体メモリからなり、キューを識別するためのキューID(キュー番号)とQMのバンクとの組み合わせごとに、当該キューのキュー制御情報を当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する機能と、キューを識別するためのキューID(キュー番号)とQMのバンクとの組み合わせごとに、当該キューのキュー制御情報を当該バンクから読み出す際にコラムアドレスとして用いる読出ポインタ値を記憶する機能とを有している。 The second bank management memory (for QM) 33F is made of a semiconductor memory such as an SRAM chip, for example. For each combination of a queue ID (queue number) for identifying a queue and a bank of QMs, the second bank management memory (for QM) 33F For each combination of a function for storing a write pointer value used as a column address when writing queue control information to the bank, and a queue ID (queue number) for identifying the queue and a bank of QM, the queue of the queue It has a function of storing a read pointer value used as a column address when reading control information from the bank.
後述する図9の例では、キューを識別するためのキューID(キュー番号)とバンクを機別するためのバンク番号との組み合わせごとに、書込ポインタ値(ライトポインタもしくはBL)と読出ポインタ値(リードポインタもしくはBS)とが記憶されている。なお、書込ポインタ値と読出ポインタ値の初期値は、同じ値からなるものとする。 In the example of FIG. 9 described later, for each combination of a queue ID (queue number) for identifying a queue and a bank number for identifying a bank, a write pointer value (write pointer or BL) and a read pointer value (Read pointer or BS) is stored. Note that the initial value of the write pointer value and the read pointer value are assumed to be the same value.
例えば、キューP2のうち、データメモリ(DM)のバンク#1において書込ポインタ値は3であり、DMのバンク#1が書込対象バンクである場合、書込ポインタが示すコラムアドレスにキューP2の新たなフレームデータが書き込まれることになる。また、キューP2のうち、DMのバンク#1において読出ポインタ値は0であり、DMのバンク#1が読出対象バンクである場合、読出ポインタが示すコラムアドレスからキューP2のフレームデータが読み出されることになる。
For example, in the queue P2, in the
また、キューP2のうち、QMのバンク#1において書込ポインタ(BL_1)は2であり、QMのバンク#1が書込対象バンクである場合、BL_1が示すコラムアドレスにキューP2のキュー制御情報が書き込まれることになる。また、キューP2のうち、QMのバンク#1において読出ポインタ値(BS_1)は0であり、QMのバンク#1が読出対象バンクである場合、BS_1が示すコラムアドレスからキューP2のキュー制御情報が読み出されることになる。
Also, in the queue P2, when the write pointer (BL_1) is 2 in the
書込制御部34は、アクセス調停部37からの書き込み指示に応じて、アクセス履歴レジスタ(AAR)33Dに基づいて最適なバンクを選択し、仮想格納アドレス(バンク、ロウアドレス、および、ライトポインタ)を指定した、フレームデータの書き込みを指示するDRAM書込指示を、第1のDRAMアクセス部32へ出力する機能を有している。
The
バンクの選択は、例えば、以下のように行う。
書込制御部34は、AARを用いて各バンクでどのロウアドレスが活性化されているのかを管理する。
各バンクのうち、書込対象のキューに対応するロウアドレスが活性化されているものを選択する。ただし、該当のバンクのライトポインタを更新した場合にリードポインタと同じ値になる場合(もしくは、リードポインタが0でライトポインタを更新した場合にコラムアドレスの上限値を超える場合、もしくは、リードポインタが0以外で更新前のライトポインタ値がリードポインタ値より小さく更新後のライトポインタ値がリードポインタ値より大きくなる場合)はそのバンクは選択しない。
The bank is selected as follows, for example.
The
Among the banks, the bank in which the row address corresponding to the queue to be written is activated is selected. However, if the write pointer of the corresponding bank is updated, the value will be the same as the read pointer (or if the read pointer is 0 and the write pointer is updated and the upper limit of the column address is exceeded, or the read pointer is If the non-zero write pointer value before update is smaller than the read pointer value and the updated write pointer value is larger than the read pointer value), the bank is not selected.
例えば、まず、AAR_1のロウアドレスが書込対象のキューに対応するロウアドレスと同じ値であれば、そのロウアドレスが活性化されているので、そのバンクを選択する。異なる場合は、AAR_2のロウアドレスが書込対象のキューに対応するロウアドレスと同じ値であれば、そのロウアドレスが活性化されているので、そのバンクを選択する。ただし、AAR_2のバンク番号がAAR_1のバンク番号と同じ場合は、そのロウアドレスは活性化されていないので、そのバンクは選択しない。 For example, first, if the row address of AAR_1 is the same value as the row address corresponding to the queue to be written, that row address is activated, so that bank is selected. If they are different, if the row address of AAR_2 is the same value as the row address corresponding to the queue to be written, that row address is activated, so that bank is selected. However, when the bank number of AAR_2 is the same as the bank number of AAR_1, the row address is not activated, so that bank is not selected.
AAR_2までの比較で未選択の場合は、AAR_3のロウアドレスが書込対象のキューに対応するロウアドレスと同じ値であれば、そのロウアドレスが活性化されているので、そのバンクを選択する。ただし、AAR_3のバンク番号がAAR_1もしくはAAR_2のバンク番号と同じ場合は、そのロウアドレスは活性化されていないので、そのバンクは選択しない。 If not selected in the comparison up to AAR_2, if the row address of AAR_3 is the same value as the row address corresponding to the queue to be written, the row address is activated, so that bank is selected. However, when the bank number of AAR_3 is the same as the bank number of AAR_1 or AAR_2, the row address is not activated, so that bank is not selected.
以下、同様に、AAR_nまで比較を行い、ロウアドレスが書込対象のキューに対応するロウアドレスと同じ値であり、かつ、選択可能であれば、そのバンクを選択する。なお、AAR_nとの比較を行う場合、AAR_nのバンク番号がAAR_1からAAR_(n−1)のいずれかと同じ場合は、そのロウアドレスは活性化されていないので、そのバンクは選択しない。
該当のロウアドレスが活性化されているもの(かつ選択可能なもの)がない場合は、例えば、どのAARにも記録されていないバンクを選択、もしくは、AARに記録されているバンクのうちで残っている履歴が最も古いバンクを選択する。
Similarly, comparison is made up to AAR_n, and if the row address has the same value as the row address corresponding to the queue to be written and can be selected, that bank is selected. When comparing with AAR_n, if the bank number of AAR_n is the same as any one of AAR_1 to AAR_ (n-1), the row address is not activated, so that bank is not selected.
If no corresponding row address is activated (and can be selected), for example, a bank that is not recorded in any AAR is selected, or a bank that is recorded in the AAR remains. Select the bank with the oldest history.
また、書込制御部34は、アクセス調停部37からの書き込み指示と、書き込み対象のキューのQCN、QLAと、上記のDMのバンク選択結果に応じて、最適なQMのバンクを選択し、仮想格納アドレス(バンク、ロウアドレス、および、BL)を指定したQMの読み出しと、仮想格納アドレス(バンク、ロウアドレス、および、BL)を指定したDSA、DNU、QNAの書き込みをQMに指示する、DRAM読出指示とDRAM書込指示を、第2のDRAMアクセス部(QM用)へ出力する機能を有している。
Further, the
QMのバンクの選択は、DMのバンクの選択と同様に、QMの各バンクのうち、書込対象のキューに対応するロウアドレスが活性化されているものを選択する。
ただし、該当のバンクのBLを更新した場合にBSと同じ値になる場合(もしくは、BSが0でBLを更新した場合にコラムアドレスの上限値を超える場合、もしくは、BSが0以外で更新前のBLがBSより小さく更新後のBLがBSより大きくなる場合)はそのバンクは選択しない。
なお、書込対象のキューのQCNが0以外の場合、QMのバンク選択が不要となる場合もある。QMのバンクの選択の具体例については、後述する。
In the selection of the QM bank, similar to the DM bank selection, the bank in which the row address corresponding to the queue to be written is activated is selected from the banks of the QM.
However, when the BL of the corresponding bank is updated, it becomes the same value as the BS (or when the BS is updated with BL being 0 and the upper limit of the column address is exceeded, or when the BS is not 0 and before the update) If the BL is smaller than BS and the updated BL is larger than BS), the bank is not selected.
When the QCN of the queue to be written is other than 0, it may be unnecessary to select a bank for QM. A specific example of QM bank selection will be described later.
読出制御部35は、アクセス調停部37からの読み出し指示に応じて、キュー制御メモリ33のキュー制御情報に基づいて、読出対象キュー(ロウアドレス)と仮想格納アドレス(バンクとリードポインタ)を指定した、読出対象キューからの先頭データの読み出しを指示するDRAM読出指示を、第1のDRAMアクセス部32へ出力する機能と、当該データをフレーム終端フラグおよびキュー指定情報とともに多重分離装置20へ転送する機能とを有している。
In response to a read instruction from the
また、読出制御部35は、アクセス調停部37からの読み出し指示に応じて、キュー制御メモリ33のキュー制御情報に基づいて、仮想格納アドレス(バンク、ロウアドレス、BS)を指定したDSA、DNU、QNAの読み出しと、仮想格納アドレス(バンク、ロウアドレス、BS)を指定したDSA、DNU、QNAの書き込みをQMに指示する、DRAM読出指示とDRAM書込指示を、第2のDRAMアクセス部(QM用)へ出力する機能を有している。
Further, the
キュー使用アドレス数メモリ(QCN)36は、例えばSRAMチップなどの半導体メモリからなり、キューごとに、当該キューに蓄積されているフレームデータが使用している仮想アドレス数QCNを記憶する機能と、多重分離装置20およびアクセス調停部37からの要求に応じて、指定されたキューの仮想アドレス数QCNを出力する機能とを有している。
図7の例では、キューを識別するためのキューID(キュー番号)QID(P1〜PM:Mは2以上の整数)ごとに、当該キューの仮想アドレス数QCNが記憶されている。
The queue use address number memory (QCN) 36 is composed of a semiconductor memory such as an SRAM chip, for example, and stores a virtual address number QCN used by frame data stored in the queue for each queue, and a multiplexing function. It has a function of outputting the number of virtual addresses QCN of the designated queue in response to requests from the
In the example of FIG. 7, the number of virtual addresses QCN of the queue is stored for each queue ID (queue number) QID (P1 to PM: M is an integer of 2 or more) for identifying the queue.
アクセス調停部37は、多重化装置10から転送されたフレームデータを受け取り、当該フレームデータに付加されているフレーム長情報に基づき、フレームデータを1仮想アドレス分のデータサイズで複数のデータDに分割することにより書込回数を計算する機能と、この書込回数分だけ、それぞれのデータDに関する、当該フレームデータに付加されているキュー指定情報で指定された書込対象キューへの書き込みを指示する書き込み指示を書込制御部34に出力する機能と、当該フレームデータの書き込みにより増加する仮想アドレス数を、キュー使用アドレス数メモリ36の当該書込対象キューの仮想アドレス数QCNに加算する機能とを有している。
The
また、アクセス調停部37は、多重分離装置20からの読み出し要求に応じて、当該読み出し要求の読出データ量情報で指定されたデータ量を1仮想アドレス分のデータサイズで分割することにより読出回数を計算する機能と、この読出回数分だけ、当該読み出し要求のキュー指定情報で指定された読出対象キューからのフレームデータの読み出しを指示する読み出し指示を読出制御部35へ出力する機能と、当該フレームデータの読み出しにより減少する仮想アドレス数を、キュー使用アドレス数メモリ36の当該書込対象キューの仮想アドレス数QCNから減算する機能と、フレームデータの書き込みとの競合を調停し、読み出し可能なタイミングで読み出し指示を出力する機能とを有している。
Further, in response to a read request from the
[第1のDRAMアクセス部(DM用)]
次に、図3を参照して、本実施の形態にかかる記録装置30で用いられる第1のDRAMアクセス部(DM用)32について説明する。図3は、第1の実施の形態にかかる第1のDRAMアクセス部(DM用)の構成を示すブロック図である。
第1のDRAMアクセス部32には、主な回路部として、FIFOメモリ32A、活性化処理部32B、アクセス種別判定部32C、DRAM書込部32D、およびDRAM読出部32Eが設けられている。
[First DRAM access unit (for DM)]
Next, the first DRAM access unit (for DM) 32 used in the
The first
FIFOメモリ32Aは、一般的なFIFOメモリからなり、書込制御部34からのDRAM書込指示および読出制御部35からのDRAM読出指示を混在させて蓄積する機能と、活性化処理部32Bによるロウアドレスの活性化完了後、蓄積していたDRAM書込指示またはDRAM読出指示を入力順に読み出してアクセス種別判定部32Cへ出力する機能を有している。この際、アクセス種別判定のための情報として、書込制御部34からのDRAM書込指示なのか、もしくは、読出制御部35からのDRAM読出指示なのかを示す情報を、それぞれの指示と合わせてFIFOメモリ32Aに書き込んで、その情報もアクセス種別判定部32Cに出力するようにしてもよい。
The
なお、図21に示すアクセス調停部37を使用する場合、書込制御部34からのDRAM書込指示と読出制御部35からのDRAM読出指示が同時に入力されることはないはずであるが、これらが同時に入力された場合には、FIFOメモリ32Aに対するDRAM書込指示の書込みを優先し、FIFOメモリ32Aに対するDRAM読出指示の書込みを待たせるようにすればよい。
When the
活性化処理部32Bは、FIFOメモリ32AにDRAM書込指示が蓄積された場合、DMの当該書込対象ロウアドレスが活性化状態にない場合は、DMの当該書込対象ロウアドレスを活性化する機能を有している。
The
また、活性化処理部32Bは、FIFOメモリ32AにDRAM読出指示が蓄積された場合、DMの当該読出対象バンクにおいてDRAM読出指示で指定された読出対象ロウアドレスが活性化状態にない場合には、DMの当該読出対象バンクにおいて読出対象ロウアドレスを活性化する機能と、DMの当該読出対象バンクにおいて読出対象ロウアドレスとは異なるロウアドレスが活性化状態にある場合は、DMの当該ロウアドレスへのアクセス完了に応じて、DMの読出対象ロウアドレスを活性化する機能とを有している。
Further, the
アクセス種別判定部32Cは、FIFOメモリ32Aから出力されたDRAM書込指示をDRAM書込部32Dへ振り分けて出力する機能と、FIFOメモリ32Aから出力されたDRAM読出指示をDRAM読出部32Eへ振り分けて出力する機能とを有している。
The access
DRAM書込部32Dは、入力されたDRAM書込指示における書込対象ロウアドレスと書込対象バンクとライトポインタとの組み合わせに基づき、指示されたDMのコラムアドレスに、DRAM書込指示で指定されたフレームデータ(データD)を書き込む機能を有している。
Based on the combination of the write target row address, the write target bank, and the write pointer in the input DRAM write instruction, the
この際、1格納アドレス分のフレームデータ(データD)の書き込みに、複数のコラムアドレスが必要な場合は、DRAMの機能であるバーストモードを用いて、連続するコラムアドレスに書き込みを行うようにしてもよく、書込所要時間を短縮できる。
また、データメモリ31に対してEoF値(当該格納アドレスに書き込むデータにフレームデータの最終データを含むか否かを示す情報:フレーム終端フラグ)の書き込みも行う場合は、フレームデータの書き込みと同時に行えばよい。
At this time, if a plurality of column addresses are required for writing frame data (data D) for one storage address, the burst mode, which is a function of the DRAM, is used to write to consecutive column addresses. The writing time can be shortened.
In addition, when the EoF value (information indicating whether or not the data to be written at the storage address includes the final data of the frame data: the frame end flag) is also written to the
DRAM読出部32Eは、入力されたDRAM読出指示における読出対象ロウアドレスと読出対象バンクとリードポインタとの組み合わせに基づき、読出対象バンクの読出対象ロウアドレスのうち、指示されたDMのコラムアドレスからフレームデータ(データD)を読み出して、キュー指定情報とともに読出制御部35へ出力する機能を有している。
Based on the combination of the read target row address, the read target bank, and the read pointer in the input DRAM read instruction, the DRAM read
この際、1仮想格納アドレス分のフレームデータ(データD)の読み出しに、複数のコラムアドレスが必要な場合は、DRAMの機能であるバーストモードを用いて、連続するコラムアドレスから読み出しを行うようにしてもよく、読出所要時間を短縮できる。
また、データメモリ31に対してEoF値(フレーム終端フラグ)が書き込まれている場合は、フレームデータの読み出しと同時にEoF値の読み出しを行えばよい。
読み出したEoF値は、フレームデータおよびキュー指定情報とともに読出制御部35へ出力すればよい。
At this time, when a plurality of column addresses are required for reading frame data (data D) for one virtual storage address, reading is performed from successive column addresses using the burst mode which is a function of the DRAM. The time required for reading can be shortened.
When the EoF value (frame end flag) is written in the
The read EoF value may be output to the
[第2のDRAMアクセス部(QM用)]
次に、図4を参照して、本実施の形態にかかる記録装置30で用いられる第2のDRAMアクセス部(QM用)38について説明する。図4は、第1の実施の形態にかかる第2のDRAMアクセス部(QM用)の構成を示すブロック図である。
[Second DRAM access unit (for QM)]
Next, the second DRAM access unit (for QM) 38 used in the
第2のDRAMアクセス部38には、主な回路部として、第1のDRAMアクセス部(DM用)32と同様に、FIFOメモリ38A、活性化処理部38B、アクセス種別判定部38C、DRAM書込部38D、およびDRAM読出部38Eが設けられている。
As with the first DRAM access unit (for DM) 32, the second
FIFOメモリ38Aは、一般的なFIFOメモリからなり、書込制御部34からのDRAM読出指示とDRAM書込指示、および、読出制御部35からのDRAM読出指示とDRAM書込指示を混在させて蓄積する機能と、活性化処理部38Bによるロウアドレスの活性化完了後、蓄積していたDRAM書込指示またはDRAM読出指示を入力順に読み出してアクセス種別判定部38Cへ出力する機能を有している。
The
この際、アクセス種別判定のための情報として、DRAM書込指示なのか、もしくは、DRAM読出指示なのかを示す情報を、それぞれの指示と合わせてFIFOメモリ38Aに書き込んで、その情報もアクセス種別判定部38Cに出力するようにしてもよい。また、書込制御部34からの指示なのか、読出制御部35からの指示なのかを示す情報を、それぞれの指示と合わせてFIFOメモリ38Aに書き込んで、その情報もアクセス種別判定部38Cに出力するようにしてもよい。
At this time, as information for determining the access type, information indicating whether it is a DRAM write instruction or a DRAM read instruction is written in the
なお、後述する図21に示すアクセス調停部37を使用する場合、書込制御部34からの指示と読出制御部35からの指示が同時に入力されることはないはずであるが、これらが同時に入力された場合には、FIFOメモリ38Aに対する書込制御部34からの指示を優先し、FIFOメモリ38Aに対する読出制御部35からの指示の書込みを待たせるようにすればよい。ただし、読出制御部35からのDRAM読出指示とその直後の読出制御部35からの同一アドレスへのDRAM書込指示の間に書込制御部34からの指示を割り込ませることは禁止する。
When the
活性化処理部38Bは、FIFOメモリ38AにDRAM書込指示が蓄積された場合、QMの当該書込対象ロウアドレスが活性化状態にない場合は、QMの当該書込対象ロウアドレスを活性化する機能を有している。
The
また、活性化処理部38Bは、FIFOメモリ38AにDRAM読出指示が蓄積された場合、QMの当該読出対象バンクにおいてDRAM読出指示で指定された読出対象ロウアドレスが活性化状態にない場合には、QMの当該読出対象バンクにおいて読出対象ロウアドレスを活性化する機能と、QMの当該読出対象バンクにおいて読出対象ロウアドレスとは異なるロウアドレスが活性化状態にある場合は、QMの当該ロウアドレスへのアクセス完了に応じて、QMの読出対象ロウアドレスを活性化する機能とを有している。
Further, the
アクセス種別判定部38Cは、DM用のアクセス種別判定部32Cと同様に、FIFOメモリ38Aから出力されたDRAM書込指示をDRAM書込部38Dへ振り分けて出力する機能と、FIFOメモリ38Aから出力されたDRAM読出指示をDRAM読出部38Eへ振り分けて出力する機能とを有している。
Similarly to the DM access
DRAM書込部38Dは、入力されたDRAM書込指示における書込対象ロウアドレスと書込対象バンクとの組み合わせに基づき、指示されたQMのコラムアドレスに、DRAM書込指示で指定されたデータ(DSA、DNU、QNA)を書き込む機能を有している。
この際、データ(DSA、DNU、QNA)の書き込みに、複数のコラムアドレスが必要な場合は、DRAMの機能であるバーストモードを用いて、連続するコラムアドレスに書き込みを行うようにしてもよく、書込所要時間を短縮できる。
Based on the combination of the write target row address and the write target bank in the input DRAM write instruction, the
At this time, if a plurality of column addresses are required for writing data (DSA, DNU, QNA), the burst mode, which is a function of the DRAM, may be used to write to successive column addresses. Write time can be shortened.
DRAM読出部38Eは、入力されたDRAM読出指示における読出対象ロウアドレスと読出対象バンクとの組み合わせに基づき、読出対象バンクの読出対象ロウアドレスのうち、指示されたQMのコラムアドレスからデータ(DSA、DNU、QNA)を読み出して書込制御部34もしくは読出制御部35へ出力する機能を有している。
この際、1回のデータ(DSA、DNU、QNA)の読み出しに、複数のコラムアドレスが必要な場合は、DRAMの機能であるバーストモードを用いて、連続するコラムアドレスから読み出しを行うようにしてもよく、読出所要時間を短縮できる。
Based on the combination of the read target row address and the read target bank in the input DRAM read instruction, the DRAM read
At this time, if a plurality of column addresses are required for reading data (DSA, DNU, QNA) at one time, reading is performed from successive column addresses using the burst mode which is a function of the DRAM. In addition, the time required for reading can be shortened.
[第1の実施の形態の動作]
次に、図5および図6を参照して、本実施の形態にかかる通信用入出力装置1で用いられる記録装置30の動作について説明する。
図5は、第1の実施の形態にかかる書込制御部の書込動作を示すフローチャートである。図6は、第1の実施の形態にかかる読出制御部の読出動作を示すフローチャートである。
[Operation of First Embodiment]
Next, the operation of the
FIG. 5 is a flowchart illustrating a write operation of the write control unit according to the first embodiment. FIG. 6 is a flowchart showing a read operation of the read control unit according to the first embodiment.
[書込動作]
まず、図5を参照して、記録装置30の書込制御部34における書込動作について説明する。
書込制御部34は、アクセス調停部37からの書き込み指示に応じて、図5の書込動作を実行する。
[Write operation]
First, the writing operation in the
The
新たなデータを書込対象キューに書き込んだ場合、キュー制御情報における主な変化としては、書き込み前後において、書込対象キューに関するキュー最終バンク(QLA)と、書込対象キューの書込前の最終データに後続するデータの格納バンク(QNA)と、書込対象バンク(DSA)と、DNUと、DMおよびQMのライトポインタと、アクセス履歴レジスタ(AAR)33Dとが変化する。ただし、書込対象キューの書込前の最終データと同じバンクに書き込む場合は、DSA、QNA、QMのライトポインタ(BL)は更新されず、DNUは変化する。なお、書込対象キューに対する最初の書き込みである場合は、書込対象キューに関するキュー先頭バンク(QSA)も変化する。 When new data is written to the write target queue, the main changes in the queue control information are the queue last bank (QLA) related to the write target queue and the last before writing of the write target queue before and after writing. A data storage bank (QNA), a write target bank (DSA), a DNU, DM and QM write pointers, and an access history register (AAR) 33D change after the data. However, when writing to the same bank as the last data before writing in the write target queue, the write pointers (BL) of DSA, QNA, and QM are not updated, and the DNU changes. Note that in the case of the first writing to the write target queue, the queue head bank (QSA) related to the write target queue also changes.
このため、図5の書込動作において、書込制御部34は、選択されたバンク、ロウアドレス、ライトポインタに対する指定データの書き込み(書き込み指示の出力)、書込対象キューに関するキュー最終バンク(QLA)の更新、書込対象キューの書込前の最終データに後続するデータの格納バンク(QNA)の更新、書込対象バンク(DSA)と、DNUの更新、DMおよびQMのライトポインタの更新を行う。ただし、書込対象キューの書込前の最終データと同じバンクに書き込む場合は、DSA、QNA、QMのライトポインタ(BL)の更新は行わず、DNUの更新を行う。
For this reason, in the write operation of FIG. 5, the
なお、書込対象キューに対する最初の書き込みである場合は、書込対象キューに関するキュー先頭バンク(QSA)の更新も行う。これら更新の詳細については動作例に基づいて後述する。
この際、書込制御部34は、キュー制御メモリ33にアクセスすることにより、図5に示すステップを実行する。なお、図5の処理順序は、処理効率を考慮したものであるが、他の処理順序であってもよい。
In the case of the first writing to the write target queue, the queue head bank (QSA) related to the write target queue is also updated. Details of these updates will be described later based on an operation example.
At this time, the
図5に示す書込動作について具体的に説明する。
まず、書込制御部34は、書込対象キューのQCNが0か否か確認し(ステップ120)、QCNが0である場合(ステップ120:YES)、DMおよびQMのバンクを選択して(ステップ121)、QSAとQLAに選択したQMバンクのバンク番号を書き込み(ステップ122)、選択したバンクのライトポインタを読み出す(ステップ123)。
The write operation shown in FIG. 5 will be specifically described.
First, the
次に、書込制御部34は、DM用のライトポインタをコラムアドレスとして、DMにデータを書き込み(ステップ124)、BLをコラムアドレスとしてQMのDSAおよびDNUを書き込む(ステップ125)。この際、DSAはDMの書き込み先バンクを示し、DNUは1である。
この後、書込制御部34は、選択バンクのライトポインタを更新し(ステップ126)、書込対象キューのQCNに1を加算した後(ステップ127)、一連の書込動作を終了する。
Next, the
Thereafter, the
また、ステップ120において、QCNが0ではない場合(ステップ120:NO)、書込制御部34は、書込対象キューのQLAを読み出して(ステップ130)、QLAに記録されていたバンクのBLを読み出し(ステップ131)、DMの同じバンクへの書き込みか否か確認する(ステップ132)。
ここで、同じバンクへの書き込みである場合(ステップ132:YES)、書込制御部34は、BLをコラムアドレスとしてQMからDSAおよびDNUを読み出して(ステップ133)、DSAのバンクのライトポインタを読み出す(ステップ134)。
In
Here, in the case of writing to the same bank (step 132: YES), the
次に、書込制御部34は、DM用のライトポインタをコラムアドレスとして、DMにデータを書き込み(ステップ135)、BLをコラムアドレスとしてQMのDSAおよびDNUを書き込む(ステップ136)。この際、DSAは読み出した値そのままを書き込み、DNUは読み出した値に1を加算した値を書き込む。
この後、書込制御部34は、選択バンクのDM用ライトポインタを更新し(ステップ137)、書込対象キューのQCNに1を加算した後(ステップ127)、一連の書込動作を終了する。
Next, the
Thereafter, the
また、ステップ132において、同じバンクへの書き込みではない場合(ステップ132:NO)、書込制御部34は、DMおよびQMのバンクを選択して(ステップ140)、QLAに選択したQMのバンクのバンク番号を書き込むとともに(ステップ141)、選択前のバンクのBLをコラムアドレスとして、QMのQNAに選択したQMのバンクのバンク番号を書き込み(ステップ142)、選択したバンクのライトポインタを読み出す(ステップ143)。
If it is not writing to the same bank in step 132 (step 132: NO), the
次に、書込制御部34は、選択したバンクのDM用のライトポインタをコラムアドレスとして、DMにデータを書き込み(ステップ144)、選択したバンクのBLをコラムアドレスとしてQMのDSAおよびDNUを書き込む(ステップ145)。この際、DSAはDMの書き込み先バンクを示し、DNUは1である。
この後、書込制御部34は、選択バンクのBLとDM用のライトポインタを更新し(ステップ146)、書込対象キューのQCNに1を加算した後(ステップ127)、一連の書込動作を終了する。
Next, the
Thereafter, the
[読出動作]
次に、図6を参照して、記録装置30の読出制御部35における読出動作について説明する。
読出制御部35は、アクセス調停部37からの読み出し指示に応じて、図6の読出動作を実行する。
[Read operation]
Next, with reference to FIG. 6, the reading operation in the
The
新たなデータを読出対象キューから読み出した場合、キュー制御情報における主な変化としては、読み出し前後において、読出対象キューに関するキュー先頭バンク(QSA)と、DMおよびQMのリードポインタと、アクセス履歴レジスタ(AAR)33Dとが変化する。ただし、QM内のDNUが2以上だった場合は、QSAとQMのリードポインタ(BS)は更新されず、DNUが変化する。また、読出対象キューのQCNが1だった場合(この場合DNUは必ず1)は、QSAは更新されず、DMおよびQMのリードポインタとAARが変化する。 When new data is read from the read target queue, main changes in the queue control information include the queue head bank (QSA) related to the read target queue, the read pointers of DM and QM, and the access history register (before and after the read). AAR) 33D changes. However, if the DNU in the QM is 2 or more, the QSA and QM read pointers (BS) are not updated, and the DNU changes. When the QCN of the read target queue is 1 (in this case, DNU is always 1), the QSA is not updated, and the DM and QM read pointers and AAR change.
このため、図6の読出動作において、読出制御部35は、読出対象キューに関するキュー先頭バンク(QSA)の更新、DMおよびQMのリードポインタの更新、読み出し指示の出力を行う。ただし、QM内のDNUが2以上だった場合は、QSAとQMのリードポインタ(BS)の更新は行わず、DNUの更新を行う。また、読出対象キューのQCNが1だった場合(この場合DNUは必ず1)は、QSAの更新は行わず、DMおよびQMのリードポインタとAARの更新を行う。これら更新の詳細については動作例に基づいて後述する。この際、読出制御部35は、キュー制御メモリ33にアクセスすることにより、図6に示すステップを実行する。なお、図6の処理順序は、処理効率を考慮したものであるが、他の処理順序であってもよい。
Therefore, in the read operation of FIG. 6, the
図6に示す読出動作について具体的に説明する。
まず、読出制御部35は、読出対象キューのQSAを読み出し(ステップ150)、QSAに記録されていたバンクのBSを読み出す(ステップ151)。
次に、読出制御部35は、読み出したBSをコラムアドレスとして、QMからDSA、DNU、およびQNAを読み出し(ステップ152)、DSAのリードポインタを読み出す(ステップ153)。
この後、読出制御部35は、DM用のリードポインタをコラムアドレスとして、DMからデータを読み出し(ステップ154)、DSAのリードポインタを更新した後(ステップ155)、DNUが1か否か確認する(ステッブ156)。
The read operation shown in FIG. 6 will be specifically described.
First, the
Next, the
Thereafter, the
ここで、DNUが1の場合(ステップ156:YES)、読出制御部35は、BSを更新し(ステップ157)、QSAにQNA値を書き込んだ後(ステップ158)、書込対象キューのQCNから1を減算して(ステップ159)、一連の読出動作を終了する。
また、DNUが1でない場合(ステップ156:NO)、読出制御部35は、BSをコラムアドレスとしてDSA、DNU、およびQNAを書き込む(ステップ160)。この際、DSAとQNAは読み出した値をそのまま、DNUは1を減算した値を書き込む。その後、ステップ159へ移行して、書込対象キューのQCNから1を減算し(ステップ159)、一連の読出動作を終了する。
Here, when DNU is 1 (step 156: YES), the
If DNU is not 1 (step 156: NO), the
[動作例]
次に、図7〜図18を参照して、記録装置30におけるフレームデータの書込動作および読出動作について、キューP2を読出・書込対象キューとし、このキューP2にデータP2−3が書込まれた後、データP2−1、P2−2を読み出し、さらにデータP2−4を書き込む場合を例に説明する。
[Operation example]
Next, referring to FIG. 7 to FIG. 18, in the frame data writing operation and reading operation in
図7は、データP2−1読出直前のキュー制御情報(その1)を示す説明図である。図8は、データP2−1読出直前のキュー制御情報(その2)を示す説明図である。図7、図8、および図9は、データP2−1読出直前のキュー制御情報(その3)を示す説明図である。
ここでは、データP2−1読出直前すなわちデータP2−3が書込まれた直後におけるキュー制御情報が示されている。
FIG. 7 is an explanatory diagram showing queue control information (part 1) immediately before reading data P2-1. FIG. 8 is an explanatory diagram showing the queue control information (part 2) immediately before the data P2-1 is read. 7, 8, and 9 are explanatory diagrams showing the queue control information (part 3) immediately before the data P2-1 is read.
Here, queue control information immediately before reading data P2-1, that is, immediately after writing data P2-3 is shown.
この状態において、データメモリ(DM)31のうち、バンク0のロウアドレスP1の仮想格納アドレス「0,1,2」にキューP1のデータP1−1,P1−2,P1−3が書き込まれており、バンク1のロウアドレスP2の仮想格納アドレス「0,1,2」にキューP2のデータP2−1,P2−2,P2−3が書き込まれている。また、DMの上記以外のバンク、ロウアドレス、および、仮想格納アドレスは未使用である。
In this state, the data P1-1, P1-2, and P1-3 of the queue P1 are written to the virtual storage addresses “0, 1, 2” of the row address P1 of the
なお、図7は、P1−1、P1−2、P2−1、P2−2、P1−3、P2−3の順番に、書き込んだ例であるが、以下のようにDMのバンクを選択した例である。
P1−1書き込み時は、該当のキュー(P1)の最初の書き込みであり、活性化されているロウアドレスもないので、初期値としてバンク0を選択(AAR_1にバンク0のロウアドレスP1を登録)。
FIG. 7 shows an example of writing in the order of P1-1, P1-2, P2-1, P2-2, P1-3, and P2-3, but the DM bank was selected as follows. It is an example.
When P1-1 is written, it is the first write of the corresponding queue (P1), and there is no activated row address, so
P1−2書き込み時には、該当のキュー(P1)に対応するロウアドレスがAAR_1と同じなので、AAR_1のバンクである0を選択(AAR_1の値をAAR_2に登録した後、AAR_1に、再度、バンク0のロウアドレスP1を登録)。
P2−1書き込み時には、該当のキュー(P2)の最初の書き込みであり、活性化されているロウアドレスはAAR_1と同じロウアドレス(バンク0のP1)のみなので、AAR_1以外のバンクである1を選択(AAR_2とAAR_1の値を、それぞれAAR_3とAAR_2に登録した後、AAR_1に、バンク1のロウアドレスP2を登録)。
When P1-2 is written, the row address corresponding to the corresponding queue (P1) is the same as that of AAR_1, so 0 that is the bank of AAR_1 is selected (the value of AAR_1 is registered in AAR_2, Register row address P1).
At the time of P2-1 writing, since it is the first writing of the corresponding queue (P2) and the activated row address is only the same row address (P1 of bank 0), select 1 which is a bank other than AAR_1 (After registering the values of AAR_2 and AAR_1 in AAR_3 and AAR_2, respectively, the row address P2 of
P2−2書き込み時には、該当のキュー(P2)に対応するロウアドレスがAAR_1と同じなので、AAR_1のバンクである1を選択(AAR_3、AAR_2、および、AAR_1の値を、それぞれAAR_4、AAR_3、および、AAR_2に登録した後、AAR_1に、再度、バンク1のロウアドレスP2を登録)。なお、この時点で、AAR_4、AAR_3、AAR_2、および、AAR_1のバンクはそれぞれ「0」、「0」、「1」、「1」である。
At the time of P2-2 writing, since the row address corresponding to the corresponding queue (P2) is the same as AAR_1, 1 is selected as the bank of AAR_1 (the values of AAR_3, AAR_2, and AAR_1 are set to AAR_4, AAR_3, and After registering in AAR_2, the row address P2 of
P1−3書き込み時には、該当のキュー(P1)に対応するロウアドレスがAAR_3と同じなのでAAR_3のバンクである0を選択(AAR_4、AAR_3、AAR_2、および、AAR_1の値を、それぞれAAR_5、AAR_4、AAR_3、および、AAR_2に登録した後、AAR_1に、バンク0のロウアドレスP1を登録)。なお、この時点で、AAR_5、AAR_4、AAR_3、AAR_2、および、AAR_1のバンクはそれぞれ「0」、「0」、「1」、「1」、「0」である。
P2−3書き込み時には、該当のキュー(P2)に対応するロウアドレスがAAR_2と同じなので、AAR_2のバンクである1を選択。
When P1-3 is written, the row address corresponding to the corresponding queue (P1) is the same as AAR_3, so
At the time of writing P2-3, the row address corresponding to the corresponding queue (P2) is the same as AAR_2, so 1 which is the bank of AAR_2 is selected.
また、図7、図8、および図9は、以下のようにQMのバンクを選択した例である。
P1−1書き込み時は、該当のキュー(P1)の最初の書き込みであり、活性化されているロウアドレスもないので、初期値としてバンク0を選択。
P1−2書き込み時には、DMの同一バンクへの書き込みなので、バンク選択なし(QLAのバンクであるバンク0を使用)。
P2−1書き込み時には、該当のキュー(P2)の最初の書き込みであり、活性化されているロウアドレスはバンク0のP1のみなので、バンク0以外のバンクである1を選択。
FIG. 7, FIG. 8, and FIG. 9 are examples of selecting a QM bank as follows.
When P1-1 is written, it is the first write of the corresponding queue (P1) and there is no activated row address, so
At the time of P1-2 writing, since DM is written to the same bank, there is no bank selection (using
At the time of P2-1 writing, since it is the first writing of the corresponding queue (P2) and the activated row address is only P1 of
P2−2書き込み時には、DMの同一バンクへの書き込みなので、バンク選択なし(QLAのバンクであるバンク1を使用)。
P1−3書き込み時には、バンク0のロウアドレスP1が活性化されているのでバンク0を選択。
P2−3書き込み時には、バンク1のロウアドレスP2が活性化されているのでバンク1を選択。
At the time of P2-2 writing, since DM is written to the same bank, there is no bank selection (using
When writing P1-3, the
At the time of writing P2-3, the
なお、P1−3およびP2−3の書き込み時に、P1−2およびP2−2の書き込み時と同様に、QMの更新をDNUの更新のみとする(図5でDMの同じバンクに書き込む場合の動作)ことも可能だが、ここでは、P1−2とP1−3が異なるフレームのデータである(また、P2−2とP2−3が異なるフレームのデータである)ことを想定してQMのDSA、DNU、および、QNAの更新(図5でDMの同じバンクに書き込まない場合の動作と同じ)を行っている。 Note that when writing to P1-3 and P2-3, as with writing to P1-2 and P2-2, QM is updated only for DNU (operation when writing to the same bank of DM in FIG. 5). However, here, assuming that P1-2 and P1-3 are data of different frames (and P2-2 and P2-3 are data of different frames), the DSA of QM, DNU and QNA are updated (the same operation as that in the case of not writing to the same bank of DM in FIG. 5).
その結果、キューP1のQMのバンク0の先頭のDSA、DNU、QNAはそれぞれ、0、2、0となり、2番目のDSA、DNUはそれぞれ0、1となっている(図8参照)。また、キューP2のQMのバンク1の先頭のDSA、DNU、QNAはそれぞれ、1、2、1となり、2番目のDSA、DNUはそれぞれ1、1となっている(図8を参照)。また、第1のバンク管理メモリ33EのDM用のW/Rポインタ(初期値が0の場合を想定)、および、第2のバンク管理メモリ33FのQM用のW/Rポインタ(初期値が0の場合を想定)は図9の通りとなっている。
As a result, the first DSA, DNU, and QNA of the
また、キューP1のキュー先頭バンク(QSA)は、データP1−1の書き込みに使用したQMのバンクである0を示し、キュー最終バンク(QLA)は、データP1−3の書き込みに使用したQMのバンクである0を示している。また、キューP2のキュー先頭バンク(QSA)は、データP2−1の書き込みに使用したQMのバンクである1を示し、キュー最終バンク(QLA)は、データP2−3の書き込みに使用したQMのバンクである1を示している(図7の「QSA」、「QLA」を参照)。
The queue head bank (QSA) of the queue P1 indicates 0 which is the bank of the QM used for writing the data P1-1, and the queue last bank (QLA) is the QM used for writing the data P1-3. A
図7、図8、および図9に示した状態において、キューP2のデータP2−1を読み出した場合、キュー制御情報は、図10、図11、および図12のように変化する。図10は、データP2−1読出時におけるキュー制御情報の変化(その1)を示す説明図である。図11は、データP2−1読出時におけるキュー制御情報の変化(その2)を示す説明図である。図12は、データP2−1読出時におけるキュー制御情報の変化(その3)を示す説明図である。 When the data P2-1 of the queue P2 is read in the states shown in FIGS. 7, 8, and 9, the queue control information changes as shown in FIGS. 10, 11, and 12. FIG. 10 is an explanatory diagram showing a change (part 1) in queue control information at the time of reading data P2-1. FIG. 11 is an explanatory diagram showing the change (part 2) in the queue control information when reading data P2-1. FIG. 12 is an explanatory diagram showing a change (part 3) in the queue control information when reading data P2-1.
まず、図10、図11、および図12に示すように、キューP2に関するキュー先頭バンク(QSA)が示すQMのバンク1のBS値からDSAを読み出し、そのDSAが示すDMのバンク0のリードポインタ値からデータP2−1が読み出されるため、DMのバンク1のロウアドレスP2の読出対象仮想アドレス「0」のデータDは空き状態となり、キューP2に関するデータはP2−2,P2−3の2つとなる(図10、図11、および図12の「DM」、「QSA」、「QLA」、「QCN」、およびDM用「リードポインタ/ライトポインタ」を参照)。
First, as shown in FIGS. 10, 11, and 12, the DSA is read from the BS value of the
これにより、図10、図11、および図12(「QSA」、「DSA」、および、DM用「リードポインタ」)に示すように、P2−2がキューP2の先頭データとなり、DMのキュー先頭位置が仮想格納アドレス「0」から「1」に変化するが、DSAと同時にQMから読み出したDNUが2なので、QMの更新はDNUのみ(1を減算)となる。 As a result, as shown in FIGS. 10, 11, and 12 (“QSA”, “DSA”, and DM “read pointer”), P2-2 becomes the head data of the queue P2, and the queue head of the DM Although the position changes from the virtual storage address “0” to “1”, since the DNU read from the QM at the same time as the DSA is 2, the update of the QM is only the DNU (1 is subtracted).
また、DMのバンク1のロウアドレスP2の読出対象仮想アドレス「0」のデータDは空き状態となったため、図12に示すように、DMのリードポインタを更新(1を加算)する。なお、このケースではQMのBSの更新は行わない。
Since the data D of the read target virtual address “0” in the row address P2 of the
これにより、データP2−1読出直後(データP2−2読出直前)において、キュー制御情報は、図10、図11、および図12に示す状態となる。
図10、図11、および図12に示した状態において、キューP2のデータP2−2を読み出した場合、キュー制御情報は、図13、図14、および図15のように変化する。図13は、データP2−2読出時におけるキュー制御情報の変化(その1)を示す説明図である。図14は、データP2−2読出時におけるキュー制御情報の変化(その2)を示す説明図である。図15は、データP2−2読出時におけるキュー制御情報の変化(その3)を示す説明図である。
Thus, immediately after the data P2-1 is read (immediately before the data P2-2 is read), the queue control information is in the state shown in FIG. 10, FIG. 11, and FIG.
When the data P2-2 of the queue P2 is read in the states shown in FIGS. 10, 11, and 12, the queue control information changes as shown in FIGS. 13, 14, and 15. FIG. 13 is an explanatory diagram showing a change (part 1) in the queue control information when reading data P2-2. FIG. 14 is an explanatory diagram showing the change (part 2) in the queue control information when reading data P2-2. FIG. 15 is an explanatory diagram showing a change (No. 3) in the queue control information at the time of reading data P2-2.
まず、図13、図14、および図15に示すように、キューP2に関するキュー先頭バンク(QSA)が示すQMのバンク1のBS値からDSAを読み出し、そのDSAが示すDMのバンク0のリードポインタ値からデータP2−2が読み出されるため、DMのバンク1のロウアドレスP2の読出対象仮想アドレス「1」のデータDは空き状態となり、キューP2に関するデータはP2−3の1つとなる(図12の「DM」、「QSA」、「QLA」、「QCN」、および、DM用の「リードポインタ/ライトポインタ」を参照)。
First, as shown in FIGS. 13, 14, and 15, the DSA is read from the BS value of the
これにより、図13、図14、および図15(「QSA」、「DSA」、および、DM用「リードポインタ」)に示すように、P2−3がキューP2の先頭データとなり、キュー先頭位置がDMのバンク1のロウアドレスP2の仮想格納アドレス「1」から「2」に変化するとともに、DSAと同時にQMから読み出したDNUが1なので、QMのBSを更新するため、キューP2に関するキュー先頭バンク(QSA)が「1」から「DSAと同時に読み出したQNAが示すバンク(この例では1)」に更新され、QMのバンク1のロウアドレスP2のBSが更新(1を加算)される。
Accordingly, as shown in FIGS. 13, 14, and 15 (“QSA”, “DSA”, and “read pointer” for DM), P2-3 becomes the head data of the queue P2, and the queue head position is Since the DNU read from the QM at the same time as the DSA changes from the virtual storage address “1” of the row address P2 of the
また、DMのバンク1のロウアドレスP2の読出対象仮想アドレス「1」のデータDは空き状態となったため、図15)に示すように、DMのリードポインタを更新(1を加算)する。
Further, since the data D of the read target virtual address “1” of the row address P2 of the
これにより、データP2−2読出直後(データP2−4書込直前)において、キュー制御情報は、図13、図14、および図15に示す状態となる。
図13、図14、および図15に示した状態において、キューP2のデータP2−4を書き込みした場合、キュー制御情報は、図16、図17、および図18のように変化する。図16は、データP2−4書込時におけるキュー制御情報の変化(その1)を示す説明図である。図17は、データP2−4書込時におけるキュー制御情報の変化(その2)を示す説明図である。図18は、データP2−4書込時におけるキュー制御情報の変化(その3)を示す説明図である。
Thus, immediately after the data P2-2 is read (immediately before the data P2-4 is written), the queue control information is in the state shown in FIG. 13, FIG. 14, and FIG.
In the state shown in FIGS. 13, 14, and 15, when the data P2-4 of the queue P2 is written, the queue control information changes as shown in FIGS. 16, 17, and 18. FIG. 16 is an explanatory diagram showing a change (No. 1) in queue control information when data P2-4 is written. FIG. 17 is an explanatory diagram showing a change (part 2) in the queue control information at the time of writing data P2-4. FIG. 18 is an explanatory diagram showing a change (No. 3) in the queue control information when the data P2-4 is written.
まず、DMのバンクを選択する。AARに記録されているロウアドレスは、AAR_1〜AAR_3はバンク1のP2、AAR_4はバンク0のP1であり、このケースでは、活性化されているロウアドレスはバンク0のP1とバンク1のP2のみであり、書込対象キューのロウアドレスはAAR_1のロウアドレスと一致する。したがって、AAR_1のバンクである1を選択して書き込みを行ってもよいが、直前のアクセスが読み出しであることを考慮してここでは未使用の別のバンク(バンク2)を選択する。
First, a DM bank is selected. The row addresses recorded in the AAR are P2 in the
なお、このケースでバンク1を選択しない理由は、DRAMの仕様上、読み出し後の同一バンクに書き込みを行う場合に待ち時間が発生し、実効スループットが低下するためである。
QMのバンク選択については、QMのバンク1のロウアドレスP2が活性化されているのでバンク1を選択する。なお、このケースでは、DMとQMで異なるバンクを選択したため、QLAはDMのバンクではなく、選択したQMのバンクを記憶する。
In this case, the reason why the
Regarding the QM bank selection, since the row address P2 of the
図16、図17、および図18に示すように、DMのバンク2のロウアドレスP2のライトポインタが示す書込対象仮想アドレス「0」にデータP2−4が書き込まれるため、図16、図17、および図18(「DM」、「QLA」、「DSA」、「BL」、および、DM用「ライトポインタ」)に示すように、P2−4がキューP2の新たな最終データとなり、キュー最終位置がDMのバンク1のロウアドレスP2の仮想格納アドレス「2」からDMのバンク2のロウアドレスP2の仮想格納アドレス「0」に変化するため、キューP1のキュー最終バンク(QLA)が「1」から「P2−4の書き込みに使用したQMのバンク(このケースでは「1」)」に更新され、DMのバンク2のロウアドレスP2のライトポインタが更新(1を加算)される。
As shown in FIGS. 16, 17, and 18, the data P <b> 2-4 is written to the write target virtual address “0” indicated by the write pointer of the row address P <b> 2 of the
また、書込前にキュー最終データであったP2−3にP2−4が後続することになるため、図17、および図18に示すように、P2−3の書き込みに使用したQMのバンク1のロウアドレスP2のアドレス「1」の後続バンク(QNA)としてP2−4の書き込みに使用したQMのバンクである「1」が設定され、QMのバンク1のロウアドレスP2の3番目のDSA、DNUにそれぞれ2(P2−4を格納したDMのバンク)、1が設定され、QMのバンク1のロウアドレスP2のBLが更新(1を加算)される。
これにより、データP2−4書込直後において、キュー制御情報は、図16、図17、および図18に示す状態となる。
Also, since P2-4 follows P2-3 which was the last queue data before writing, as shown in FIGS. 17 and 18,
Thus, immediately after the data P2-4 is written, the queue control information is in the state shown in FIGS. 16, 17, and 18.
[DRAM書込動作(DM用)]
次に、図3および図19を参照して、本実施の形態にかかる第1のDRAMアクセス部32(DM用)における、データメモリ(DM)31に対するDRAM書込動作について説明する。図19は、DRAM書込処理を示すフローチャートである。
第1のDRAMアクセス部32(DM用)は、書込制御部34からのDRAM書込指示に応じて、図19に基づくDRAM書込処理(DM用)を実行する。
[DRAM write operation (for DM)]
Next, with reference to FIG. 3 and FIG. 19, the DRAM write operation to the data memory (DM) 31 in the first DRAM access unit 32 (for DM) according to the present embodiment will be described. FIG. 19 is a flowchart showing the DRAM writing process.
The first DRAM access unit 32 (for DM) executes DRAM write processing (for DM) based on FIG. 19 in response to a DRAM write instruction from the
まず、活性化処理部32Bは、FIFOメモリ32Aに蓄積されたDRAM書込指示で指定された、DMの書込対象ロウアドレスが、活性化状態にあるか確認し(ステップ100)、DMの書込対象ロウアドレスが活性化状態にない場合は(ステップ100:NO)、書込対象ロウアドレスの活性化を行って(ステップ101)、活性化処理を完了する。なお、DMの書込対象ロウアドレスが活性化状態にある場合(ステップ100:YES)、何もせず活性化処理を完了する。
First, the
活性化処理部32Bでの活性化処理を完了後、DRAM書込指示はFIFOメモリ32Aから出力され、アクセス種別判定部32Cを介してDRAM書込部32Dに入力される。
これに応じて、DRAM書込部32Dは、入力されたDRAM書込指示に対応するDMのコラムアドレスに、DRAM書込指示で指定されたフレームデータ(データD)を書き込んだ後(ステップ102)、一連のDRAM書込処理を終了する。
After completing the activation processing in the
In response to this, the
本実施の形態では、データメモリ31を構成するDRAMにフレームデータを書き込む際、書込制御部34により、DRAMが持つ各バンクのうちから、書込対象ロウアドレスが活性化状態にあるバンクが書込対象バンクとして優先的に選択される。これにより、同一バンクの異なるロウアドレスへの書き込みが発生する確率が低減されることになる。このため、フレームデータ書込時におけるロウアドレスの活性化や、異なるロウアドレスに対するアクセス完了を待つ回数が削減されることになり、DRAMアクセスの実効スループットの低下が抑制される。
In this embodiment, when writing frame data to the DRAM constituting the
[DRAM読出動作(DM用)]
次に、図3および図20を参照して、本実施の形態にかかる第1のDRAMアクセス部(DM用)32における、データメモリ(DM)31に対するDRAM読出動作について説明する。図20は、DRAM読出処理を示すフローチャートである。
第1のDRAMアクセス部32は、読出制御部35からのDRAM読出指示に応じて、図20に基づくDRAM読出処理(DM用)を実行する。
[DRAM read operation (for DM)]
Next, with reference to FIGS. 3 and 20, a DRAM read operation for the data memory (DM) 31 in the first DRAM access unit (for DM) 32 according to the present embodiment will be described. FIG. 20 is a flowchart showing the DRAM reading process.
First
まず、活性化処理部32Bは、FIFOメモリ32Aに蓄積されたDRAM読出指示で指定されたDMの読出対象バンクにおいて、DMの読出対象ロウアドレスが活性化状態にあるか確認し(ステップ110)、DMの読出対象ロウアドレスが活性化状態にある場合(ステップ110:YES)、何もせず活性化処理を完了する。
First, the
活性化処理部32Bでの活性化処理を完了後、DRAM読出指示はFIFOメモリ32Aから出力され、アクセス種別判定部32Cを介してDRAM読出部32Eに入力される。
これに応じて、DRAM読出部32Eは、入力されたDRAM読出指示に対応するDMの読出対象バンクにおいて、読出対象ロウアドレスのうち、指示されたDMのコラムアドレスからフレームデータ(データD)を読み出した後(ステップ114)、DRAM読出処理を終了する。
After completing the activation process in the
In response to this, the DRAM read
また、DMの読出対象バンクの読出対象ロウアドレスが活性化状態にない場合(ステップ110:NO)、活性化処理部32Bは、DMの読出対象バンクにおいて異なるロウアドレスが活性化状態にあるか確認する(ステップ111)。
ここで、異なるロウアドレスが活性化状態にない場合(ステップ111:NO)、活性化処理部32Bは、DMの読出対象バンクの読出対象ロウアドレスを活性化し(ステップ113)、活性化処理を完了する。これにより、DRAM読出部32Eにおいて、活性化された読出対象ロウアドレスからの読み出しが行われることになる。
If the read target row address in the DM read target bank is not in the activated state (step 110: NO), the
If a different row address is not in the activated state (step 111: NO), the
また、異なるロウアドレスが活性化状態にある場合(ステップ111:YES)、活性化処理部32Bは、異なるロウアドレスへのアクセスが完了するまで待機した後(ステップ112)、ステップ113へ移行して、前述と同様にDMの読出対象ロウアドレスの活性化を行う。
If a different row address is in an activated state (step 111: YES), the
このように、データメモリ(DM)31を構成するDRAMからフレームデータを読み出す際、読出対象となるフレームデータが特定のバンクに書き込まれていることから、書き込み時のように、DMのロウアドレスが活性化状態にあるバンクを選択することはできない。このため、同一バンクの異なるロウアドレスからの読み出しや、書き込み後の同一バンクからの読み出しにおいて待ち時間が発生するものとなる。なお、同一バンクの異なるロウアドレスからの読み出しについては、異なるロウアドレスからの読み出しが連続しないように、例えば、両者の間に書き込みが挿入されるよう処理間隔をあけるようにしてもよい。 As described above, when reading frame data from the DRAM constituting the data memory (DM) 31, since the frame data to be read is written in a specific bank, the row address of DM is set as in writing. An activated bank cannot be selected. Therefore, a waiting time occurs when reading from different row addresses in the same bank or reading from the same bank after writing. For reading from different row addresses in the same bank, a processing interval may be provided so that, for example, writing is inserted between the two row addresses so that reading from different row addresses does not continue.
[DRAM書込動作(QM用)]
次に、図4および図19を参照して、本実施の形態にかかる第2のDRAMアクセス部(QM用)38における、アドレスキュー管理メモリ(QM)33Aに対するDRAM書込動作について説明する。
第2のDRAMアクセス部38は、書込制御部34および読出制御部35からのDRAM書込指示に応じて、図19に基づくDRAM書込処理(QM用)を実行する。
[DRAM write operation (for QM)]
Next, with reference to FIG. 4 and FIG. 19, the DRAM write operation to the address queue management memory (QM) 33A in the second DRAM access unit (for QM) 38 according to the present embodiment will be described.
Second
まず、活性化処理部38Bは、FIFOメモリ38Aに蓄積されたDRAM書込指示で指定されたQMの書込対象ロウアドレスが活性化状態にあるか確認し(ステップ100)、QMの書込対象ロウアドレスが活性化状態にない場合は(ステップ100:NO)、書込対象ロウアドレスの活性化を行って(ステップ101)、活性化処理を完了する。なお、QMの書込対象ロウアドレスが活性化状態にある場合(ステップ100:YES)、何もせず活性化処理を完了する。
First, the
活性化処理部38Bでの活性化処理を完了後、DRAM書込指示はFIFOメモリ38Aから出力され、第1のDRAMアクセス部32と同様に、アクセス種別判定部38Cを介してDRAM書込部38Dに入力される。
これに応じて、DRAM書込部38Dは、入力されたDRAM書込指示に対応するQMのコラムアドレスに、DRAM書込指示で指定されたデータ(DSAとDNU、もしくはQNA)を書き込んだ後(ステップ102)、一連のDRAM書込処理を終了する。
After completing the activation processing in the
In response to this, the
本実施の形態では、データメモリ31を構成するDRAMにフレームデータを書き込む際、書込制御部34により、DRAM(DM)が持つ各バンクのうちから、書込対象ロウアドレスが活性化状態にあるバンクが書込対象バンクとして優先的に選択される。
In the present embodiment, when writing frame data to the DRAM constituting the
ここで、前述した図5に示すように、フレームデータを書き込む際に、書込対象キューのQCNが0の場合(ステップ120:YES)、QMへの書き込みは選択したバンクへの書き込みとなるので、QMのバンク選択により、QMにおいて同一バンクの異なるロウアドレスへの書き込みが発生しない。 Here, as shown in FIG. 5 described above, when the frame data is written, if the QCN of the write target queue is 0 (step 120: YES), the writing to the QM is the writing to the selected bank. As a result of QM bank selection, writing to different row addresses in the same bank does not occur in QM.
フレームデータを書き込む際に、QMからの読み出しが必要になる場合(ステップ132:YES)、バンク選択を行わず、読み出し対象となるQMのバンクに対するアクセス(読み出しと書き込み)となる。この対象のロウアドレスが活性化状態にあるか否かで、QMからの読み出しのスループットが変化する。そこで、図5のステップ132の判断に、読み出し対象となるQMのロウアドレスが活性化状態か否かを追加し、活性化状態でない場合は、「No」を選択するようにしてもよい。
When the frame data is written, if reading from the QM is necessary (step 132: YES), the bank selection is not performed and access to the bank of the QM to be read (reading and writing) is performed. The throughput of reading from the QM varies depending on whether or not the target row address is in an activated state. Accordingly, whether or not the row address of the QM to be read is activated is added to the determination in
ステップ132の判断が「NO」の場合、QMに対して2回の書き込みが必要となる。選択したバンクへの(DSA、DNUの)書き込みについては最適なバンクを選択できるが、「選択前のバンク」への(QNAの)書き込みについては、対象のロウアドレスが活性化状態か否かで書き込みのスループットが変化する。この場合のスループット劣化を抑制する方法として、「選択前のバンク」と同じバンクを選択して、QNAの書き込みとDSA、DNUの書き込みを1回の書き込みで実施するようにしてもよい。同じバンクを選択すると、図8および図9の例に示すように、同一ロウアドレスの連続した位置に、QNA、DSA、DNUを書き込むので1回で書き込むことが可能となる。
If the determination in
これにより、DMだけでなくQMにおいても同一バンクの異なるロウアドレスへの書き込みが発生する確率が低減されることになる。このため、フレームデータ書込時におけるDMおよびQMのロウアドレスの活性化や、異なるロウアドレスに対するアクセス完了を待つ回数が削減されることになり、DMだけでなくQMのDRAMアクセスの実効スループットの低下も抑制される。 This reduces the probability of writing to different row addresses in the same bank not only in DM but also in QM. This reduces the number of times DM and QM row addresses are activated when frame data is written, and the number of waits for completion of access to different row addresses, resulting in a decrease in effective throughput of not only DM but also QM DRAM access. Is also suppressed.
[DRAM読出動作(QM用)]
次に、図4および図20を参照して、本実施の形態にかかる第2のDRAMアクセス部(QM用)38における、アドレスキュー管理メモリ(QM)33Aに対するDRAM読出動作について説明する。
第2のDRAMアクセス部38は、書込制御部34および読出制御部35からのDRAM読出指示に応じて、図20に基づくDRAM読出処理(QM用)を実行する。
[DRAM read operation (for QM)]
Next, with reference to FIGS. 4 and 20, a DRAM read operation for the address queue management memory (QM) 33A in the second DRAM access unit (for QM) 38 according to the present embodiment will be described.
Second
まず、活性化処理部38Bは、FIFOメモリ38Aに蓄積されたDRAM読出指示で指定されたQMの読出対象バンクにおいて、QMの読出対象ロウアドレスが活性化状態にあるか確認し(ステップ110)、QMの読出対象ロウアドレスが活性化状態にある場合活性化処理を完了する。
First, the
活性化処理部38Bでの活性化処理を完了後、DRAM読出指示はFIFOメモリ38Aから出力され、第1のDRAMアクセス部32と同様に、アクセス種別判定部38Cを介してDRAM読出部38Eに入力される。
これに応じて、DRAM読出部38Eは、入力されたDRAM読出指示に対応するQMの読出対象バンクにおいて、読出対象ロウアドレスのうち、指示されたQMのコラムアドレスからデータ(DSA、DNU、QNA)を読み出した後(ステップ114)、DRAM読出処理を終了する。
After completing the activation processing in the
In response to this, the
また、QMの読出対象バンクの読出対象ロウアドレスが活性化状態にない場合(ステップ110:NO)、活性化処理部38Bは、QMの読出対象バンクにおいて異なるロウアドレスが活性化状態にあるか確認する(ステップ111)。
ここで、異なるロウアドレスが活性化状態にない場合(ステップ111:NO)、活性化処理部38Bは、QMの読出対象バンクの読出対象ロウアドレスを活性化し(ステップ113)、活性化処理を完了する。これにより、DRAM読出部38Eにおいて、活性化された読出対象ロウアドレスからの読み出しが行われることになる。
When the read target row address of the QM read target bank is not in the activated state (step 110: NO), the
If a different row address is not in the activated state (step 111: NO), the
また、異なるロウアドレスが活性化状態にある場合(ステップ111:YES)、活性化処理部38Bは、異なるロウアドレスへのアクセスが完了するまで待機した後(ステップ112)、ステップ113へ移行して、前述と同様にQMの読出対象ロウアドレスの活性化を行う。
When a different row address is in an activated state (step 111: YES), the
このように、QMからデータ(DSA、DNU、QNA)を読み出す際、読出対象となるデータ(DSA、DNU、QNA)が特定のバンクに書き込まれていることから、書き込み時のように、QMのロウアドレスが活性化状態にあるバンクを選択することはできない。このため、同一バンクの異なるロウアドレスからの読み出しや、書き込み後の同一バンクからの読み出しにおいて待ち時間が発生するものとなる。
なお、フレームデータ読み出し時には、QMからの読み出しに加えてQMへの書き込みも必要な場合がある(DNUが2以上の場合)。
In this way, when data (DSA, DNU, QNA) is read from the QM, the data (DSA, DNU, QNA) to be read is written in a specific bank. A bank whose row address is in an activated state cannot be selected. Therefore, a waiting time occurs when reading from different row addresses in the same bank or reading from the same bank after writing.
Note that when reading frame data, in addition to reading from the QM, writing to the QM may be necessary (when the DNU is 2 or more).
[第1の実施の形態の効果]
このように、本実施の形態は、記録装置30において、データメモリ(DM)31をバンクごとに複数のロウアドレスを有するDRAMから構成して、キューと対応するロウアドレスで当該キューのフレームデータを記憶し、第1のDRAMアクセス部32が、書込対象キューにフレームデータを書き込む際、バンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込むようにしたものである。
[Effect of the first embodiment]
As described above, according to the present embodiment, in the
より具体的には、記録装置30に、複数のバンクを有するDRAMからなり、データメモリ31のキューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリ33と、キュー制御メモリ33のキュー制御情報に基づいて、多重化装置10から転送された通信データの書込対象キューに対する書き込みを第1のDRAMアクセス部32に指示する書込制御部34と、キュー制御メモリ33のキュー制御情報に基づいて、読出対象キューからの通信データの読み出しを第1のDRAMアクセス部32に指示し、読み出した通信データを多重分離装置20へ転送する読出制御部35とを備えたものである。
More specifically, the
これに加えて、記録装置30に第2のDRAMアクセス部38を備え、キューと対応するキュー制御メモリ33の個別のロウアドレスで当該キューのキュー制御情報を記録し、書込対象キューに通信データを書き込む際、キュー制御メモリ33のバンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該キュー制御情報を書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該キュー制御情報を書き込むようにしたものである。
In addition to this, the
一般に、DRAMでは、任意のバンクの任意のロウアドレスにデータを書き込む場合、当該バンクにおいて当該ロウアドレスを活性化する必要があり、同一バンクの異なるロウアドレスにアクセスする場合には、当該ロウアドレスを用いたアクセスが完了するのを待ってから、新たなロウアドレスを活性化する必要があるため、同一バンクへのアクセスにおいて、ロウアドレスの活性化に起因して比較的大きな待ち時間が発生する。具体的には、同一バンクの異なるロウアドレスへのアクセスが連続した場合である。その他に待ち時間が発生する条件として、読み出し後の同一バンクに書き込みを行う場合、および、書き込み後の同一バンクから読み出しを行う場合がある。 In general, in a DRAM, when writing data to an arbitrary row address of an arbitrary bank, it is necessary to activate the row address in the bank. When accessing a different row address of the same bank, the row address is Since it is necessary to activate a new row address after waiting for the used access to be completed, a relatively large waiting time occurs due to the activation of the row address in accessing the same bank. Specifically, this is a case where accesses to different row addresses in the same bank are continuous. As other conditions for waiting time, there are a case where writing is performed in the same bank after reading and a case where reading is performed from the same bank after writing.
本実施形態によれば、データメモリ31を構成するDRAMにフレームデータを書き込む際、DRAMが持つ各バンクのうちから、書込対象ロウアドレスが活性化状態にあるバンクが書込対象バンクとして優先的に選択される。
これにより、データメモリ31を構成するDRAMの同一バンクの異なるロウアドレスへの書き込みが発生する確率を低減することができる。したがって、データメモリ31を構成するDRAMへのフレームデータ書込時におけるロウアドレスの活性化や、異なるロウアドレスに対するアクセス完了を待つ回数を低減させることができ、データメモリ31を構成するDRAMへのDRAMアクセスに関する実効スループットの低下を抑制することが可能となる。
According to the present embodiment, when writing frame data to the DRAM constituting the
As a result, the probability of writing to different row addresses in the same bank of the DRAM constituting the
特に、通信用入出力装置1においては、短いフレームデータがバースト的に連続して入力される場合がある。本願発明によれば、各出力系統のキューに対して個別のロウアドレスが割り当てられている。このため、このようなケースにおいては、同一ロウアドレスに対する書き込みが繰り返し行われることになり、ロウアドレスの変更による活性化の回数を削減することができる。したがって、このようなケースにおいても、DRAMアクセスに関する実効スループットの低下を抑制することができるため、フレームデータの処理速度に十分追従でき、通信品質の劣化を低減することが可能となる。
In particular, in the communication input /
また、本実施の形態において、キューとデータメモリ31のバンクとの組み合わせごとに、当該キューの通信データを当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する第1のバンク管理メモリ(DM用のW/Rポインタ)33Eを設け、通信データを書き込む際、書込対象ロウアドレスと書込対象バンクとの組み合わせに対応する書込ポインタ値を第1のバンク管理メモリ33Eから取得し、当該書込対象バンクの当該書込対象ロウアドレスのうち、当該書込ポインタ値からなるコラムアドレスに当該通信データを書き込むようにしてもよい。
Further, in the present embodiment, for each combination of the queue and the bank of the
これにより、各出力系統のキューに対して個別のロウアドレスが割り当てた場合でも、複数のキューがデータメモリ31の各バンクを共用することができるとともに、任意のキューにフレームデータを書き込む際、ロウアドレスが活性化状態にあるいずれのバンクが選択されても、極めて迅速に当該バンクで使用すべきカラムアドレスを特定することができ、DRAM(DM)アクセスの実効スループットを向上させることができる。
As a result, even when individual row addresses are assigned to the queues of each output system, a plurality of queues can share each bank of the
また、本実施の形態は、記録装置30が、キューとキュー制御メモリ33のバンクとの組み合わせごとに、当該キューのキュー制御情報を当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する第2のバンク管理メモリ(QM用のW/Rポインタ)33Fを設け、キュー制御情報を書き込む際、書込対象ロウアドレスと書込対象バンクとの組み合わせに対応する書込ポインタ値を第2のバンク管理メモリ33Fから取得し、当該書込対象バンクの当該書込対象ロウアドレスのうち、当該書込ポインタ値からなるコラムアドレスに当該キュー制御情報を書き込むようにしたものである。
In the present embodiment, for each combination of the queue and the bank of the
これにより、各出力系統のキューに対して個別のロウアドレスが割り当てた場合でも、複数のキューがQMの各バンクを共用することができるとともに、任意のキューにキュー制御情報を書き込む際、ロウアドレスが活性化状態にあるいずれのバンクが選択されても、極めて迅速に当該バンクで使用すべきカラムアドレスを特定することができ、DRAM(QM)アクセスの実効スループットを向上させることができる。 As a result, even when individual row addresses are assigned to the queues of each output system, a plurality of queues can share each bank of QM, and when writing queue control information to any queue, the row address Regardless of which bank is activated, the column address to be used in the bank can be specified very quickly, and the effective throughput of DRAM (QM) access can be improved.
また、本実施の形態において、記録装置30において、仮想格納アドレスに書き込まれた通信データに後続する通信データの格納バンク(QNA)を記憶し、キューごとに、当該キューの先頭および最終の通信データが書き込まれているバンク(QSA,QLA)を記憶するようにしてもよい。
In the present embodiment, the
これに加えて、書込制御部34が、書込対象キューに通信データを書き込む(書き込み指示を行う)際、選択されたバンクのライトポインタからなる書込対象仮想アドレスへの当該通信データの書き込み指示を行い、当該書込対象キューのキュー最終バンク(QLA)、書込前の最終データに後続するデータの格納バンク(QNA)とライトポインタをそれぞれ更新し、読出制御部35が、読出対象キューから通信データを読み出す(読み出し指示を行う)際、当該読出対象キューのキュー先頭バンクのリードポインタ値から当該通信データを読み出し、当該読出対象キューのキュー先頭バンク(QSA)とリードポインタをそれぞれ更新するようにしてもよい。
In addition, when the
これにより、各キューのフレームデータが、空き状態にある仮想格納アドレスに順次書き込まれ、フレームデータが読み出された仮想格納アドレスが再び空き状態として管理されることになる。またキューごとに書き込まれた順序でフレームデータの仮想格納アドレスが管理されることになる。 As a result, the frame data of each queue is sequentially written to the virtual storage address in the free state, and the virtual storage address from which the frame data has been read out is managed again as a free state. Further, the virtual storage address of the frame data is managed in the order of writing for each queue.
また、本実施の形態によれば、キュー制御情報を記憶するキュー制御メモリ33に、通信データ書き込み時に選択したバンクの情報を記憶でき、その情報を該当の通信データの読み出し時に使用することができ、効率よく通信データを読み出すことができる。
According to the present embodiment, the
また、キュー制御メモリ33をDRAMで構成した場合でも、上記のバンク選択により、QM用のDRAMのロウアドレスの活性化回数を低減することができる。このため、QM用のDRAMアクセスに関する実効スループットの低下を抑制することができる。なお、QM用のDRAMアクセスに関する実効スループットが低下すると、フレームデータの書き込み、読み出しのスループットが低下する場合もあるため、QM用のDRAMアクセスに関する実効スループットの低下の抑制により、フレームデータの書き込み、読み出しのスループットの低下を抑制することができる。
Even when the
また、キュー制御情報を記憶するキュー制御メモリ33に、通信データ書き込み時に選択したバンクの情報を記憶でき、その情報を該当の通信データの読み出し時に使用できる。
また、同一キューのデータを連続するアドレスに書込む場合にQM内のDNUの更新を行うようにすることにより、QMのアドレス数をデータメモリのアドレス数より小さくすることが可能となる。
Further, the
In addition, when data in the same queue is written to successive addresses, the number of addresses in the QM can be made smaller than the number of addresses in the data memory by updating the DNU in the QM.
また、本実施の形態は、QM内のDSA値等の初期値を設定する必要がないという特徴がある。本実施の形態において、通信用入出力装置の起動時に初期値を設定する必要がある情報はQCNと、W/Rポインタと、AARのみである。したがって、初期設定を行うための回路の規模、もしくは、初期設定を行うためのソフトウエアの規模が極めて小さく、初期設定に要する時間も極めて小さいという効果がある。 In addition, this embodiment has a feature that it is not necessary to set an initial value such as a DSA value in the QM. In the present embodiment, only the QCN, the W / R pointer, and the AAR need to set initial values when the communication input / output device is activated. Therefore, the scale of the circuit for performing the initial setting or the scale of the software for performing the initial setting is extremely small, and the time required for the initial setting is extremely small.
[第2の実施の形態]
次に、図21を参照して、本発明の第2の実施の形態にかかる通信用入出力装置1について説明する。図21は、第2の実施の形態にかかるアクセス調停部の構成を示すブロック図である。
[Second Embodiment]
Next, a communication input /
第1の実施の形態にかかる通信用入出力装置1において、例えば、特定の出力系統に関するフレームデータが多量に入力された場合、特定のバンクのデータメモリ(DM)31およびアドレスキュー管理メモリ(QM)33Aへの書き込みを続けるとそのバンクへの書き込みができなくなる。
In the communication input /
本実施の形態は、DMおよびQMのキューごと&バンクごとの書き込み可否の判定を行うことに加え、キューごとのデータの蓄積量が設定された最大蓄積量を超えないようにすることを目的とし、記録装置30において、アクセス調停部37が、書込対象キューにフレームデータを書き込む(書き込み指示を行う)際、当該フレームデータのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、キュー使用アドレス数メモリ36から取得した当該書込対象キューの使用仮想アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該フレームデータの書込可否を判定し、書込可の判定に応じて書込制御部34に対して当該フレームデータの書き込みを指示するようにしたものである。
The purpose of this embodiment is to determine whether data can be written for each queue and bank of DM and QM, and to prevent the data storage amount for each queue from exceeding the set maximum storage amount. In the
図21に示すように、本実施の形態において、アクセス調停部37には、主な回路部として、書込可否判定部37A、書込用FIFO37B、読出受付部37C、読出用FIFO37D、優先制御部37E、キュー使用アドレス数更新部37F、および指示出力部37Gが設けられている。
As shown in FIG. 21, in this embodiment, the
書込可否判定部37Aは、多重化装置10から転送されたフレームデータに付加されているキュー指定情報およびフレーム長情報と、キューごとに予め設定されている判定用アドレス数情報と、各キューの使用仮想アドレス数とに基づいて、書込可能か否か判定する機能と、書込可の判定結果に応じて、当該フレームデータを、データメモリ(DM)31に設けられている格納領域の1仮想アドレス分のデータサイズに分割し、得られたデータにキュー指定情報を付加した書き込み指示を、それぞれ書込用FIFO37Bに書き込む機能とを有している。
The write enable / disable determining
判定用アドレス数情報には、当該キュー指定情報で指定された書込対象キューで使用可能な最大仮想アドレス数NKmaxが含まれている。
図22は、判定用アドレス数情報の構成例である。ここではキューを識別するためのキューIDごとに、最大仮想アドレス数NKmaxが設定されている。これら判定用アドレス数情報は、例えばキュー使用アドレス数更新部37F、あるいはアクセス調停部37の内部メモリ(図示せず)で記憶されている。
The determination address number information includes the maximum virtual address number NKmax that can be used in the write target queue designated by the queue designation information.
FIG. 22 is a configuration example of the determination address number information. Here, the maximum number of virtual addresses NKmax is set for each queue ID for identifying the queue. The determination address number information is stored in, for example, the queue use address
読出受付部37Cは、多重分離装置20から出力された読み出し要求の読出データ量情報に基づいて、DMに対する読み出し回数を計算し、その読み出し回数だけ当該読み出し要求のキュー指定情報を読み出し指示として読出用FIFO37Dに書き込む機能を有している。この計算は、読出データ量情報が示すデータ量をDMの1仮想アドレスあたりのデータサイズで除算した値を読み出し回数とし、剰余がある場合は読み出し回数に1を加算すればよい。
Based on the read data amount information of the read request output from the
優先制御部37Eは、書込用FIFO37Bもしくは読出用FIFO37Dから、書き込み指示もしくは読み出し指示を読み出して、キュー使用アドレス数更新部37Fへ出力する機能と、書込用FIFO37Bと読出用FIFO37Dの双方に、書き込み指示と読み出し指示が存在する場合は、書込用FIFO37Bからの書き込み指示を優先して読み出す機能とを有している。
The
キュー使用アドレス数更新部37Fは、優先制御部37Eから書き込み指示が入力された場合は、キュー使用アドレス数メモリ36のうち、当該書き込み指示のキュー指定情報と対応する書込対象キューの使用仮想アドレス数に1を加算し、当該書き込み指示を指示出力部37Gへ出力する機能と、優先制御部37Eから読み出し指示が入力された場合は、キュー使用アドレス数メモリ36のうち、当該読み出し指示のキュー指定情報と対応する読出対象キューの使用仮想アドレス数から1を減算し、当該読み出し指示を指示出力部37Gへ出力する機能とを有している。
When a write instruction is input from the
指示出力部37Gは、キュー使用アドレス数更新部37Fから書き込み指示が入力された場合は、当該書き込み指示を書込制御部34へ出力する機能と、読み出し指示が入力された場合は、当該読み出し指示を読出制御部35へ出力する機能とを有している。
The
[第2の実施の形態の動作]
次に、図23を参照して、本実施の形態にかかるアクセス調停部37の動作として、フレームデータの書き込み時における書込判定動作について説明する。図23は、第2の実施の形態にかかる書込可否判定処理を示すフローチャートである。
記録装置30のアクセス調停部37は、多重化装置10から転送されたフレームデータごとに、図23の書込可否判定処理に基づいて、書込可否を判定する。
[Operation of Second Embodiment]
Next, with reference to FIG. 23, a write determination operation at the time of writing frame data will be described as the operation of the
The
まず、アクセス調停部37は、キュー使用アドレス数メモリ36から書き込み対象キューの使用仮想アドレス数QCNを取得して(ステップ200)、キューごとの総仮想アドレス数NAからQCNを減算することにより該当キューの残り仮想アドレス数NRを算出し(ステップ201)、書込対象となる対象フレームデータの書き込みに要する必要仮想アドレス数NFを算出する(ステップ202)。
First, the
この後、NFとNRとを比較する(ステップ203)。ここで、NF>NRの場合(ステップ203:YES)、アクセス調停部37は、書込不可と判定して対象フレームデータを破棄し(ステップ208)、当該対象フレームデータに関する書込判定処理を終了する。
Thereafter, NF and NR are compared (step 203). Here, if NF> NR (step 203: YES), the
一方、NF≦NRの場合(ステップ203:NO)、アクセス調停部37は、指定された書込対象キューの最大仮想アドレス数NKmaxをキュー使用アドレス数メモリ36等から取得して(ステップ204)、NKmaxからQCNを減算することにより残りアドレス数NRを算出し(ステップ205)、NFとNRとを比較する(ステップ206)。
ここで、NF>NRの場合(ステップ206:YES)、アクセス調停部37は、書込不可と判定して対象フレームデータを破棄し(ステップ208)、当該対象フレームデータに関する書込判定処理を終了する。
On the other hand, when NF ≦ NR (step 203: NO), the
Here, if NF> NR (step 206: YES), the
一方、NF≦NRの場合(ステップ206:NO)、アクセス調停部37は、対象フレームデータについて書込可と判定し(ステップ207)、当該対象フレームデータに関する書込判定処理を終了する。
この後、この書込可の判定に応じて、アクセス調停部37は、対象フレームデータを1仮想アドレス分のデータサイズに分割し、得られたデータにキュー指定情報を付加した書き込み指示を、それぞれ書込用FIFO37Bに書き込むことになる。
なお、さらに、キュー使用アドレス数メモリ36等でキューごとにDMのバンクごとの仮想アドレス使用数を管理し、例えば、各バンクごとの残りアドレス数の最大値をNRとして書込判定処理を行うようにしてもよい。
On the other hand, if NF ≦ NR (step 206: NO), the
Thereafter, the
Further, the number of virtual addresses used for each DM bank is managed for each queue by the queue used
[第2の実施の形態の効果]
このように、本実施の形態は、記録装置30において、キュー使用アドレス数メモリ36が、キューごとに、当該キューが使用している仮想格納アドレスの数を示す使用アドレス数を記憶し、アクセス調停部37が、書込対象キューに通信データを書き込む(書き込み指示を行う)際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、キュー使用アドレス数メモリ36から取得した当該書込対象キューの使用仮想アドレス数等に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて書込制御部34に対して当該通信データの書き込みを指示するようにしたものである。
[Effect of the second embodiment]
As described above, according to the present embodiment, in the
本実施の形態において、図21の構成のアクセス調停部37を用いる場合、書込用FIFO37Bに書き込み指示データが存在していると誤って書込可能と判定してしまう可能性がある。誤った判定を防止するためには、各キューの使用仮想アドレス数としてキュー使用アドレス数メモリ36の情報に書込用FIFO37B内の仮想アドレス数(書き込み指示の数)を加算した値を使用するか、NAもしくはNKmaxとして書込用FIFO37B内の仮想アドレス数(書き込み指示の数)を減算した値を使用すればよい。
In the present embodiment, when the
なお、キュー使用アドレス数メモリ36等でキューごとにデータメモリ31のバンクごとの仮想アドレス使用数を管理し、例えば、各バンクごとの残りアドレス数の最大値をNRとして書込判定処理を行うようにすることにより、廃棄しないフレームについてはそのフレームのすべてのデータを同一バンクの連続アドレスに書き込むことができる。
Note that the number of virtual addresses used for each bank of the
[第3の実施の形態]
次に、図24〜図27を参照して、本発明の第3の実施の形態にかかる通信用入出力装置1について説明する。図24は、第3の実施の形態にかかるQMの構成を示すブロック図である。図25は、第3の実施の形態にかかるQSA、QLA、QCN、および、W/Rポインタの構成を示すブロック図である。図26は、第3の実施の形態にかかる書込制御部の書込動作を示すフローチャートである。図27は、第3の実施の形態にかかる読出制御部の読出動作を示すフローチャートである。
[Third Embodiment]
Next, a communication input /
本実施の形態は、図24および図25に示すように、第1の実施の形態におけるQMのDNUを1に限定して使用するとともに、W/Rポインタをデータメモリ(DM)31とアドレスキュー管理メモリ(QM)33Aとで兼用するようにしたものである。 In this embodiment, as shown in FIGS. 24 and 25, the QM DNU in the first embodiment is limited to 1, and the W / R pointer is used as a data memory (DM) 31 and an address queue. This is shared with the management memory (QM) 33A.
次に、図26に示す書込動作について具体的に説明する。
まず、書込制御部34は、書込対象キューのQCNが0か否か確認し(ステップ120)、QCNが0である場合(ステップ300:YES)、DMおよびQMのバンクを選択して(ステップ301)、QSAとQLAに選択したQMバンクのバンク番号を書き込み(ステップ302)、選択したバンクのライトポインタを読み出す(ステップ303)。
Next, the write operation shown in FIG. 26 will be specifically described.
First, the
次に、書込制御部34は、DM用のライトポインタをコラムアドレスとして、DMにデータを書き込んで(ステップ304)、選択バンクのライトポインタを更新し(ステップ305)、書込対象キューのQCNに1を加算した後(ステップ306)、一連の書込動作を終了する。
Next, the
また、ステップ300において、QCNが0ではない場合(ステップ300:NO)、書込制御部34は、書込対象キューのQLAを読み出して(ステップ310)、QLAに記録されていたバンクのライトポインタを読み出す(ステップ311)。
次に、書込制御部34は、DMおよびQMのバンクを選択し(ステップ312)、QLAに選択したバンクのバンク番号を書き込み(ステップ313)、選択前のバンクのライトポインタをコラムアドレスとして、QMのQNAに選択したバンク番号を書き込んだ後(ステップ314)、ステップ303へ移行する。
If the QCN is not 0 in step 300 (step 300: NO), the
Next, the
次に、図27に示す読込動作について説明する。
まず、読出制御部35は、読出対象キューのQSAを読み出し(ステップ320)、QSAに記録されていたバンクのリードポインタを読み出す(ステップ321)。
次に、読出制御部35は、QCNが2以上か否かを確認し(ステップ322)、QCNが2以上ではない場合(ステップ322:NO)、リードポインタをコラムアドレスとして、DMからデータを読み出して(ステップ323)、リードポインタを更新した後(ステップ324)、書込対象キューのQCNから1を減算して(ステップ325)、一連の読出動作を終了する。
Next, the reading operation shown in FIG. 27 will be described.
First, the
Next, the
一方、ステップ322において、QCNが2以上の場合(ステップ322:YES)、読出制御部35は、リードポインタをコラムアドレスとして、QMからQNAを読み出して(ステップ326)、QSAにQNA値を書き込んだ後(ステップ327)、ステップ323へ移行する。
On the other hand, when the QCN is 2 or more at step 322 (step 322: YES), the
[第3の実施の形態の効果]
このように、本実施の形態によれば、QMのDNUを1に限定して使用するとともに、W/RポインタをDMとQMで兼用するようにしたので、DMのバンクとQMのバンクを独立に選択することはできないが、図26に示す書込動作において、第1の実施の形態と同様に、DMのバンクを選択することにより、DRAM(DMおよびQM)アクセスのスループットの劣化を抑止することができる。
[Effect of the third embodiment]
As described above, according to the present embodiment, the QM DNU is limited to 1 and the W / R pointer is used for both DM and QM, so the DM bank and the QM bank are independent. However, in the write operation shown in FIG. 26, as in the first embodiment, by selecting a DM bank, degradation of the DRAM (DM and QM) access throughput is suppressed. be able to.
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
[Extended embodiment]
The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. In addition, each embodiment can be implemented in any combination within a consistent range.
上記の各実施の形態において、通信用入出力装置1でマルチキャストフレームを処理する場合、出力系統の1つとしてマルチキャスト用出力系統を設けるとともに多重分離装置20内の振分部22にマルチキャストフレームを複数の速度変換部23に出力する手段を設け、記録装置30のデータメモリ31内に論理的に形成した一部のキューをこのマルチキャスト用出力系統に対応するキューとして割り当てるようにしてもよい。
これにより、外部から多重化装置10に入力されたマルチキャストフレームが、データメモリ31内のマルチキャスト用出力系統に対応するキューに一時格納され、当該キューから多重分離装置20によりマルチキャストフレームが読み出されて複数の出力ポートから出力される。
In each of the above embodiments, when the communication input /
As a result, the multicast frame input from the outside to the multiplexing device 10 is temporarily stored in a queue corresponding to the multicast output system in the
1…通信用入出力装置、10…多重化装置、11…キュー指定情報付加部、12…多重化部、20…多重分離装置、21…読出部、22…振分部、23,24…速度変換部、30…記録装置、31…データメモリ(DM)、32…第1のDRAMアクセス部、32A…FIFOメモリ、32B…活性化処理部、32C…アクセス種別判定部、32D…DRAM書込部、32E…DRAM読出部、33…キュー制御メモリ、33A…アドレスキュー管理メモリ(QM)、33B…キュー先頭バンクレジスタ、33C…キュー最終バンクメモリ、33D…アクセス履歴レジスタ、33E…第1のバンク管理メモリ、33F…第2のバンク管理メモリ、34…書込制御部、35…読出制御部、36…キュー使用アドレス数メモリ、37…アクセス調停部、37A…書込可否判定部、37B…書込用FIFO、37C…読出受付部、37D…読出用FIFO、37E…優先制御部、37F…キュー使用アドレス数更新部、37G…指示出力部、38…第2のDRAMアクセス部。
DESCRIPTION OF
Claims (6)
前記記録装置は、
バンクごとに複数のロウアドレスを有するDRAMからなり、前記キューと対応する個別のロウアドレスで当該キューの通信データを記憶する前記データメモリと、
前記書込対象キューに前記通信データを書き込む際、前記バンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該通信データを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該通信データを書き込む第1のDRAMアクセス部と、
バンクごとに複数のロウアドレスを有するDRAMからなり、前記データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリと、
前記キュー制御メモリのキュー制御情報に基づいて、前記多重化装置から転送された前記通信データの前記書込対象キューに対する書き込みを前記第1のDRAMアクセス部に指示する書込制御部と、
前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからの通信データの読み出しを前記第1のDRAMアクセス部に指示し、読み出した通信データを前記多重分離装置へ転送する読出制御部と、
前記キューと対応する前記キュー制御メモリの個別のロウアドレスで当該キューのキュー制御情報を記録し、前記書込対象キューに前記通信データを書き込む際、キュー制御メモリのバンクのうち当該書込対象キューに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該キュー制御情報を書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該キュー制御情報を書き込む第2のDRAMアクセス部と
を備えることを特徴とする通信用入出力装置。 A multiplexing device that multiplexes by adding queue designation information indicating a queue corresponding to an output system to which the communication data is to be output, and the communication data transferred from the multiplexing device. Corresponding to a recording device for temporarily storing in a queue to be written designated by the queue designation information among a plurality of queues logically formed in the data memory, and an output system selected based on the priority control logic among the queues A communication input / output device comprising: a demultiplexer that reads the communication data from the read target queue and converts the communication data into a communication speed of an output port corresponding to the output system;
The recording device includes:
The data memory, which comprises a DRAM having a plurality of row addresses for each bank, stores communication data of the queue at individual row addresses corresponding to the queue,
When writing the communication data to the write target queue, the bank in which the write target row address corresponding to the write target queue is activated among the banks is selected as the write target bank, and the communication data is selected. When there is no bank in which the write target row address is in the activated state, the bank in which the write target row address is in the inactive state is selected as the write target bank, and the write target row address is selected. A first DRAM access unit for writing the communication data after activating
A queue control memory comprising a DRAM having a plurality of row addresses for each bank, and storing queue control information used for controlling writing / reading to / from the queue of the data memory;
A write control unit that instructs the first DRAM access unit to write the communication data transferred from the multiplexing device to the write target queue based on queue control information in the queue control memory;
A read control unit that instructs the first DRAM access unit to read communication data from the read target queue based on queue control information in the queue control memory, and transfers the read communication data to the demultiplexer; ,
When the queue control information of the queue is recorded with the individual row address of the queue control memory corresponding to the queue and the communication data is written to the write target queue, the write target queue of the queue control memory bank If the bank whose write target row address corresponding to is selected as a write target bank and writes the queue control information, and there is no bank where the write target row address is active, A second DRAM access unit that writes the queue control information after selecting the bank in which the write target row address is inactivated as the write target bank and activating the write target row address. An input / output device for communication.
前記記録装置は、前記キューと前記データメモリの前記バンクとの組み合わせごとに、当該キューの通信データを当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する第1のバンク管理メモリをさらに備え、
前記書込制御部は、前記通信データを書き込む際、前記書込対象ロウアドレスと前記書込対象バンクとの組み合わせに対応する書込ポインタ値を前記第1のバンク管理メモリから取得し、当該書込対象バンクの当該書込対象ロウアドレスのうち、当該書込ポインタ値からなるコラムアドレスに当該通信データを書き込む
ことを特徴とする通信用入出力装置。 The communication input / output device according to claim 1,
For each combination of the queue and the bank of the data memory, the recording device includes a first bank management memory for storing a write pointer value used as a column address when writing communication data of the queue to the bank. In addition,
When writing the communication data, the write control unit acquires a write pointer value corresponding to a combination of the write target row address and the write target bank from the first bank management memory, and A communication input / output device, wherein the communication data is written to a column address composed of the write pointer value among the write target row addresses of the bank to be inserted.
前記記録装置は、前記キューと前記キュー制御メモリの前記バンクとの組み合わせごとに、当該キューのキュー制御情報を当該バンクに書き込む際にコラムアドレスとして用いる書込ポインタ値を記憶する第2のバンク管理メモリをさらに備え、
前記書込制御部は、前記キュー制御情報を書き込む際、前記書込対象ロウアドレスと前記書込対象バンクとの組み合わせに対応する書込ポインタ値を前記第2のバンク管理メモリから取得し、当該書込対象バンクの当該書込対象ロウアドレスのうち、当該書込ポインタ値からなるコラムアドレスに当該キュー制御情報を書き込む
ことを特徴とする通信用入出力装置。 The communication input / output device according to claim 1 or 2,
The recording apparatus stores, for each combination of the queue and the bank of the queue control memory, a write pointer value used as a column address when writing the queue control information of the queue into the bank. Further comprising memory,
The write control unit obtains a write pointer value corresponding to a combination of the write target row address and the write target bank from the second bank management memory when writing the queue control information, An input / output device for communication, wherein the queue control information is written to a column address composed of the write pointer value among the write target row addresses of the write target bank.
前記書込制御部は、前記キュー制御情報を書き込む際、前記通信データの書き込みに使用した、前記書込対象ロウアドレス、前記書込対象バンク、及び、書込ポインタ値を、前記キュー制御情報の書込対象ロウアドレス、書込対象バンク、及び、書込対象コラムアドレスとして前記キュー制御情報を書き込むことを特徴とする通信用入出力装置。 The communication input / output device according to claim 2,
When writing the queue control information, the write control unit uses the write target row address, the write target bank, and the write pointer value used for writing the communication data in the queue control information. An input / output device for communication, wherein the queue control information is written as a write target row address, a write target bank, and a write target column address.
前記キュー制御メモリは、仮想データメモリ上で用いられる仮想格納アドレスに書き込まれた通信データに後続する通信データの格納バンクを記憶し、前記キューごとに、当該キューの先頭および最終の通信データが書き込まれているバンクを記憶し、
前記書込制御部は、前記書込対象キューに前記通信データを書き込む際、当該書込対象キューのキュー最終バンク、書込前の最終データに後続するデータの格納バンクをそれぞれ更新し、
前記読出制御部は、前記読出対象キューから前記通信データを読み出す際、当該読出対象キューのキュー先頭バンクの読出ポインタ値に対する当該通信データの読み出しを前記第1のDRAMアクセス部に指示し、当該読出対象キューのキュー先頭バンクを更新する
ことを特徴とする通信用入出力装置。 In the communication input / output device according to any one of claims 1 to 4,
The queue control memory stores a storage bank of communication data subsequent to the communication data written in the virtual storage address used on the virtual data memory, and the first and last communication data of the queue is written for each queue. Remembers the bank
When writing the communication data to the write target queue, the write control unit updates a queue last bank of the write target queue, a storage bank of data subsequent to the final data before writing,
When reading the communication data from the read target queue, the read control unit instructs the first DRAM access unit to read the communication data with respect to the read pointer value of the queue head bank of the read target queue, and An input / output device for communication characterized by updating a queue head bank of a target queue.
前記記録装置は、
前記キューごとに、当該キューが使用している前記仮想データメモリ上での仮想格納アドレスの数を示す使用アドレス数を記憶するキュー使用アドレス数メモリと、
前記書込対象キューに前記通信データを書き込む際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、前記キュー使用アドレス数メモリから取得した当該書込対象キューの使用アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて前記書込制御部に対して当該通信データの書き込みを指示するアクセス調停部と
をさらに備えることを特徴とする通信用入出力装置。 In the communication input / output device according to any one of claims 1 to 5,
The recording device includes:
A queue use address number memory for storing a use address number indicating the number of virtual storage addresses on the virtual data memory used by the queue for each queue;
When writing the communication data to the write target queue, the necessary address number indicating the number of virtual storage addresses required for writing is calculated based on the data length of the communication data, and obtained from the queue use address number memory Based on the number of addresses used in the write target queue, the remaining address number indicating the number of virtual storage addresses that can be used for the write is calculated, and the communication data is compared by comparing the required address number with the remaining address number. The communication input / output device further comprising: an access arbitration unit that determines whether or not writing is possible, and instructs the writing control unit to write the communication data in accordance with the determination of writing permission.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017153879A JP2019032727A (en) | 2017-08-09 | 2017-08-09 | Input/output device for communication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017153879A JP2019032727A (en) | 2017-08-09 | 2017-08-09 | Input/output device for communication |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019032727A true JP2019032727A (en) | 2019-02-28 |
Family
ID=65523548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017153879A Pending JP2019032727A (en) | 2017-08-09 | 2017-08-09 | Input/output device for communication |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019032727A (en) |
-
2017
- 2017-08-09 JP JP2017153879A patent/JP2019032727A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904677B2 (en) | Memory control device | |
US10740006B2 (en) | System and method for enabling high read rates to data element lists | |
US7627672B2 (en) | Network packet storage method and network packet transmitting apparatus using the same | |
JPWO2004057481A1 (en) | DMA control device, DMA control method, DMA control program | |
JP2011204233A (en) | Buffer manager and method for managing memory | |
US20170364291A1 (en) | System and Method for Implementing Hierarchical Distributed-Linked Lists for Network Devices | |
US20100115142A1 (en) | Semiconductor memory device and method of operating the semiconductor memory device | |
US9785367B2 (en) | System and method for enabling high read rates to data element lists | |
JP6611011B2 (en) | Communication input / output device | |
US10061513B2 (en) | Packet processing system, method and device utilizing memory sharing | |
JP6570075B2 (en) | Communication input / output device | |
WO2019225336A1 (en) | Communication input-output device | |
JP6351073B2 (en) | Communication input / output device | |
JP2019032727A (en) | Input/output device for communication | |
US20100054272A1 (en) | Storage device capable of accommodating high-speed network using large-capacity low-speed memory | |
JP2016158024A (en) | Input output device for communication | |
KR20080070143A (en) | Method and apparatus for processing queue in network system | |
US20170017568A1 (en) | System And Method For Implementing Distributed-Linked Lists For Network Devices | |
JP2019032699A (en) | Input/output device for communication | |
US9582215B2 (en) | Packet processing system, method and device utilizing memory sharing | |
JP2019032705A (en) | Input/output device for communication | |
US7836231B2 (en) | Buffer control method and device thereof | |
JP2014194672A (en) | Memory control device and memory control method | |
US20160292070A1 (en) | Control path subsystem, method and device utilizing memory sharing | |
JP6212059B2 (en) | Communication input / output device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20170809 |