JP6570075B2 - Communication input / output device - Google Patents
Communication input / output device Download PDFInfo
- Publication number
- JP6570075B2 JP6570075B2 JP2016162568A JP2016162568A JP6570075B2 JP 6570075 B2 JP6570075 B2 JP 6570075B2 JP 2016162568 A JP2016162568 A JP 2016162568A JP 2016162568 A JP2016162568 A JP 2016162568A JP 6570075 B2 JP6570075 B2 JP 6570075B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- address
- write
- bank
- 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.)
- Active
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Memory System (AREA)
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のような構成が提案されている。図19は、従来の通信用入出力装置(内蔵メモリ)の構成を示すブロック図である。
この通信用入出力装置は、多重化装置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.
図20は、キューと出力ポートとの対応を示す説明図であり、出力ポート数が3の場合が示されている。図20(a)では、キューと出力ポートとが1対1に対応付けられているが、図20(b)のように、1対多に対応付けることにより、1つのフレームデータを複数の出力ポートが出力する場合に対応可能となる。また、図20(c)のように、出力ポートごとに、読出優先度に応じたキューを対応付けることもできる。 FIG. 20 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. 20A, queues and output ports are associated one-to-one, but as illustrated in FIG. 20B, one frame data is associated with a plurality of output ports. Can be handled when Further, as shown in FIG. 20C, 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からなり、前記キューの通信データを記憶する前記データメモリと、前記書込対象キューに前記通信データを書き込む際、前記バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該通信データを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該通信データを書き込む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 write pointer for each bank, and communication of the queue When writing the communication data to the data memory storing the data and the write target queue, the bank in which the write target row address corresponding to the write pointer is activated among the banks is set as the write target bank. When the communication data is selected and the bank to which the write target row address is activated does not exist, the bank to which the write target row address is inactivated is selected as the write target bank. And a DRAM access unit for writing the communication data after activating the write target row address.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリと、前記キュー制御メモリのキュー制御情報に基づいて、前記多重化装置から転送された前記通信データの前記書込対象キューに対する書き込みを前記DRAMアクセス部に指示する書込制御部と、前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからの通信データの読み出しを前記DRAMアクセス部に指示し、読み出した通信データを前記多重分離装置へ転送する読出制御部とをさらに備え、前記キュー制御メモリは、仮想データメモリ上で用いられる仮想格納アドレスごとに、当該仮想格納アドレスに書き込まれた通信データに後続する通信データの仮想格納アドレスを示す後続アドレスを記憶し、前記キューごとに、当該キューの通信データが書き込まれている前記仮想格納アドレスの先頭および最終を示すキュー先頭アドレスおよびキュー最終アドレスを記憶し、前記キューのそれぞれに共通して、次に通信データを書き込むべき仮想格納アドレスを示す次書込アドレスをバンクごとに記憶し、前記書込制御部は、前記書込対象キューに前記通信データを書き込む際、前記書込対象バンクとして選択したバンクの前記次書込アドレスからなる書込対象仮想アドレスに対する当該通信データの書き込みをDRAMアクセス部に指示し、当該書込対象キューのキュー最終アドレス、書込前のキュー最終アドレスに関する後続アドレス、および書込対象バンクとして選択したバンクの次書込アドレスをそれぞれ更新し、前記読出制御部は、前記読出対象キューから前記通信データを読み出す際、当該読出対象キューのキュー先頭アドレスからなる読出対象仮想アドレスに対する当該通信データの読み出しをDRAMアクセス部に指示し、当該読出対象キューのキュー先頭アドレス、読出対象バンクの次書込アドレス、および新たな読出対象バンクの次書込アドレスに関する後続アドレスをそれぞれ更新するようにしたものである。 In addition, one configuration example of the communication input / output device according to the present invention includes: a queue control memory that stores queue control information used when the recording device controls writing / reading to / from the queue of the data memory; A write control unit that instructs the 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 for instructing the DRAM access unit to read communication data from the read target queue based on queue control information, and transferring the read communication data to the demultiplexing device; Is written to the virtual storage address for each virtual storage address used in the virtual data memory. A subsequent address indicating a virtual storage address of communication data subsequent to the communication data stored, and for each of the queues, a queue head address indicating the start and end of the virtual storage address in which the communication data of the queue is written, and A queue last address is stored, and a common write address indicating a virtual storage address to which communication data is to be written next is stored for each bank in common with each of the queues, and the write control unit stores the write target When writing the communication data to the queue, the DRAM access unit is instructed to write the communication data to the write target virtual address consisting of the next write address of the bank selected as the write target bank, and the write target queue Queue end address, subsequent address for queue end address before write, and write The next write address of the bank selected as the elephant bank is updated, and when the read control unit reads the communication data from the read target queue, the read control unit updates the corresponding write target virtual address including the queue start address of the read target queue. Instruct the DRAM access unit to read communication data, and update the queue head address of the read target queue, the next write address of the read target bank, and the subsequent address related to the next write address of the new read target bank, respectively. It is a thing.
また、本発明にかかる上記通信用入出力装置の一構成例は、前記記録装置が、前記キューごとに、当該キューが使用している前記仮想データメモリ上での仮想格納アドレスの数を示す使用アドレス数を記憶するキュー使用アドレス数メモリと、前記書込対象キューに前記通信データを書き込む際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、前記キュー使用アドレス数メモリから取得した当該書込対象キューまたは前記キューの使用アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて前記書込制御部に対して当該通信データの書き込みを指示するアクセス調停部とをさらに備えるようにしたものである。 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 number of addresses indicating the number of virtual storage addresses that can be used for the writing based on the number of used addresses of the write target queue or the queue acquired from the queue used address number memory and calculate the necessary address Is compared with the number of remaining addresses to determine whether the communication data is writable, and the write data is It is obtained so as to further include an access arbitration unit for instructing the writing of the communication data to the control unit.
本発明によれば、多重化装置から転送された通信データを、データメモリ内に論理的に形成した複数のキューのうちキュー指定情報で指定された書込対象キューへ一時蓄積する記録装置において、データメモリを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.
Further, the queue control memory for storing the queue control information can store the information of the bank selected at the time of writing the communication data, and can use the information at the time of reading the corresponding communication data.
次に、本発明の実施の形態について図面を参照して説明する。
[第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
The
The
本実施の形態は、記録装置30において、データメモリ31をバンクごとにライトポインタを有するDRAMから構成して、DRAMアクセス部32が、書込対象キューにフレームデータを書き込む際、バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込むようにしたものである。
In this embodiment, in 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について詳細に説明する。
図1に示すように、多重化装置10には、主な回路部として、キュー指定情報付加部11と多重化部12が設けられている。
[Multiplexer]
Next, with reference to FIG. 1, the multiplexing
As shown in FIG. 1, the multiplexing
キュー指定情報付加部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
[多重分離装置]
次に、図1を参照して、本実施の形態にかかる通信用入出力装置1で用いられる多重分離装置20について詳細説明する。
図1に示すように、多重分離装置20には、主な回路部として、読出部21、振分部22、および速度変換部23,24が設けられている。
[Demultiplexer]
Next, the
As shown in FIG. 1, 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には、主な回路部として、データメモリ31、DRAMアクセス部32、キュー制御メモリ33、書込制御部34、読出制御部35、キュー使用アドレス数メモリ36、およびアクセス調停部37が設けられている。
As shown in FIG. 1, the
データメモリ31は、バンク(Bank)ごとに複数のロウアドレス(Row Address)を有する一般的なDRAM(DRAMチップ)からなり、バンクごとのライトポインタを用いてフレームデータを記憶する機能を有している。具体的には、データメモリ31を1つ、もしくは、複数のDRAMチップで構成して、バンクごとのライトポインタに対応させればよく、出力系統ごとにそれぞれ1つのキューを持たせる構成の他、1つの出力系統に複数のキューを持たせることも可能である。本実施の形態では、1つのDRAMチップを複数のキューで共用することになる。 The data memory 31 comprises a general DRAM (DRAM chip) having a plurality of row addresses for each bank, and has a function of storing frame data using a write pointer for each bank. Yes. Specifically, the data memory 31 may be composed of one or a plurality of DRAM chips and correspond to the write pointer for each bank. In addition to the configuration of having one queue for each output system, It is also possible to have a plurality of queues in one output system. In this embodiment, one DRAM chip is shared by a plurality of queues.
データメモリ31には、固有の格納アドレスを持つ複数の格納領域が設けられている。各キューはデータメモリ31の格納アドレスと同等な仮想格納アドレスを持つ仮想データメモリの仮想格納領域を、仮想格納アドレスの連続・不連続あるいは昇順・降順に関わらず任意に連結することにより構成されている。なお、仮想格納アドレスは、DRAMへのアクセスに用いる実際のロウアドレス、コラムアドレス(Column Address)、およびバンク番号とは独立した、フレームデータの管理に用いられるものであり、仮想的なメモリ空間におけるアドレス情報である。
図2は、仮想データメモリの記憶例である。ここでは、それぞれ固有の仮想格納アドレスADM(0〜N:Nは2以上の整数)を持つ仮想格納領域ごとに、書込制御部34から書き込まれたデータを記憶している場合のイメージを示している。
The data memory 31 is provided with a plurality of storage areas having unique storage addresses. Each queue is configured by arbitrarily connecting virtual storage areas of a virtual data memory having a virtual storage address equivalent to the storage address of the data memory 31 regardless of whether the virtual storage addresses are continuous / discontinuous or in ascending / descending order. Yes. The virtual storage address is used for managing frame data independent of the actual row address, column address (Column Address), and bank number used for accessing the DRAM, and is used in a virtual memory space. Address information.
FIG. 2 is a storage example of the virtual data memory. Here, an image in a case where data written from the
この際、1フレームが1仮想アドレス分のデータサイズより長い場合、1フレームは、1仮想アドレス分のデータサイズに合わせて複数のデータDに分割され、それぞれ異なる複数の仮想格納アドレスに書き込まれる。例えば、図2の場合、バンク0の仮想格納アドレス0,1,4には、キューP1のデータP1−1,P1−2,P1−3が格納されており、バンク0の仮想格納アドレス2,3,5には、キューP2のデータP2−1,P2−2,P2−3が格納されている。これらデータの前後関係やフレームとの対応関係については、後述するアドレスキュー管理メモリで管理される。なお、1フレームが仮想格納領域のデータサイズより短い場合、フレームデータは1つの仮想格納領域に格納される。
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. For example, in the case of FIG. 2, the virtual storage addresses 0, 1, and 4 of the
DRAMアクセス部32は、書込制御部34からのDRAM書込指示に応じて、データメモリ31内の対応するアドレスにフレームデータを書き込む機能と、読出制御部35からのDRAM読出指示に応じて、データメモリ31内の対応するアドレスからフレームデータを読み出す機能とを有している。
The
DRAMアクセス部32は、フレームデータを書き込む際、指示されたバンクの書込対象ロウアドレスが活性化状態にある場合に、指定された仮想格納アドレス(ロウアドレスおよびコラムアドレス)にフレームデータを書き込む機能と、当該書込対象ロウアドレスが活性化状態にない場合は、当該書込対象ロウアドレスを活性化した後にフレームデータを書き込む機能とを有している。
The
また、DRAMアクセス部32は、フレームデータを読み出す際、指示された読出対象バンクにおいて読出対象ロウアドレスが活性化状態にある場合は、当該読出対象バンクの読出対象ロウアドレスからフレームデータを読み出し、当該読出対象バンクで読出対象ロウアドレスが活性化状態にない場合は、当該読出対象バンクの読出対象ロウアドレスを活性化した後にフレームデータを読み出す機能とを有している。
When reading the frame data, the
キュー制御メモリ33は、例えばSRAMチップなどの半導体メモリからなり、データメモリ31上に形成されている各キューに対するフレームデータの書き込み・読み出しを制御する際に用いる各種のキュー制御情報を記憶する機能を有している。
The
図3は、キュー制御メモリの構成を示すブロック図である。キュー制御メモリ33は、レジスタやメモリからなる複数の記憶部を含んでおり、主な記憶部として、空きアドレスレジスタ(VAR,UAR)33A、アドレスキュー管理メモリ(QM)33B、キュー先頭アドレスレジスタ(SAR)33C、キュー最終アドレスレジスタ(LAR)33D、アクセス履歴レジスタ(AAR)33E、および作業用アドレスレジスタ(TMPV,TMPL)33Fを有している。なお、以下では理解を容易とするため、レジスタ名を変数名として用いて説明する場合がある。
FIG. 3 is a block diagram showing the configuration of the queue control memory. The
空きアドレスレジスタ(VAR,UAR)33Aは、各キューに共通して、バンク毎に次書込アドレスVARと未書込アドレスUARとを記憶する機能を有している。このうち、VAR(Valid Address Register)は、多重化装置10から次に受け取ったフレームデータを書き込む際、当該フレームデータを次に書き込むべき仮想格納アドレスを示すバンク毎のアドレス情報である。また、UAR(Unused Address Register)は、初期化後にまだ一度もデータが書き込まれていない同一バンク内の未使用の仮想格納アドレスのうちの先頭(若番)を示す格納アドレスである。
The empty address register (VAR, UAR) 33A has a function of storing the next write address VAR and the unwritten address UAR for each bank in common with each queue. Among them, VAR (Valid Address Register) is address information for each bank indicating a virtual storage address where the frame data to be written next when the frame data received from the multiplexing
本実施の形態では、フレームデータ書き込み時、各バンク内では、仮想格納アドレスの若番から順に使用することを基本としており、フレームデータの読み出しにより空き状態となった仮想格納アドレスについては、未使用の仮想格納アドレスより優先して再使用するものとする。なお、再使用する仮想格納アドレスの順序については、例えば直近に空き状態となった仮想格納アドレスから順に再使用するなど、任意の順序でよく、若番の順に限定されない。 In this embodiment, when writing frame data, it is basically used in order from the youngest virtual storage address in each bank, and the virtual storage address that has become free by reading frame data is unused. It shall be reused in preference to the virtual storage address. The order of the virtual storage addresses to be reused may be any order, for example, the virtual storage addresses that have recently become empty, and may be reused in order, and is not limited to the lowest number.
アドレスキュー管理メモリ(QM)33Bは、仮想格納アドレスADMごとに、後続仮想アドレスADD(ADDress)とポインタPN(Pointer of QM)とを記憶する機能を有している。
図4は、アドレスキュー管理メモリの記憶例である。このうち、ADDは、当該仮想格納アドレスに書き込まれた通信データに後続する通信データが格納されている仮想格納アドレス(バンク情報を含む)である。また、PNは、当該仮想格納アドレスに格納されているデータにフレームデータの最終データを含むか否かを示す情報(フレーム終端フラグ:EoF)である。
The address queue management memory (QM) 33B has a function of storing a subsequent virtual address ADD (ADDress) and a pointer PN (Pointer of QM) for each virtual storage address ADM.
FIG. 4 is a storage example of the address queue management memory. Among these, ADD is a virtual storage address (including bank information) in which communication data following the communication data written to the virtual storage address is stored. PN is information (frame end flag: EoF) indicating whether or not the data stored at the virtual storage address includes the final data of the frame data.
キュー先頭アドレスレジスタ(SAR)33Cは、キューごとに、キュー先頭アドレスSAR(Start Address register of PM)を記憶する機能を有している。
キュー最終アドレスレジスタ(LAR)33Dは、キューごとに、キュー最終アドレスLAR(Last Address register of PM)を記憶する機能を有している。
The queue head address register (SAR) 33C has a function of storing a queue head address SAR (Start Address register of PM) for each queue.
The queue last address register (LAR) 33D has a function of storing a queue last address LAR (Last Address register of PM) for each queue.
図5は、キュー先頭アドレスレジスタおよびキュー最終アドレスレジスタの記憶例である。ここでは、キューを識別するためのキューID(キュー番号)ごとに、SARとLARを記憶している。このうち、SARは、当該キューのフレームデータが書き込まれている仮想格納アドレスの先頭を示すアドレス情報(バンク情報を含む)である。また、LARは、当該キューのフレームデータが書き込まれている仮想格納アドレスの最終を示すアドレス情報(バンク情報を含む)である。 FIG. 5 shows a storage example of the queue head address register and the queue last address register. Here, SAR and LAR are stored for each queue ID (queue number) for identifying the queue. Among these, SAR is address information (including bank information) indicating the head of the virtual storage address in which the frame data of the queue is written. LAR is address information (including bank information) indicating the end of the virtual storage address in which the frame data of the queue is written.
アクセス履歴レジスタ(AAR)33Eは、最後に書き込み指示、もしくは、読み出し指示を行った仮想格納アドレス(バンク情報を含む)をAAR_1として記録し、AAR_nはAAR_1の更新時にAAR_(n−1)の値に更新する(nは2以上の整数)。すなわち、直近n回分の書き込み指示、もしくは、読み出し指示の履歴を表示する。 The access history register (AAR) 33E records the virtual storage address (including bank information) at which the last write instruction or read instruction is recorded as AAR_1, and AAR_n is the value of AAR_ (n-1) when AAR_1 is updated. (N is an integer of 2 or more). That is, the history of the latest n write instructions or read instructions is displayed.
作業用アドレスレジスタ(TMPV,TMPL)33Fは、各キューに共通して、作業用次書込アドレスTMPV(Temporary register for VAR)と作業用キュー最終アドレスTMPL(Temporary register for LAR)を記憶する機能を有している。
このうち、TMPVは、直前に書き込み・読み出しを行ったキューの次書込アドレスVARを示すアドレス情報(バンク情報を含む)である。また、TMPLは、最後に書き込みを行ったキューの直前(更新前)のキュー最終アドレスLARを示すアドレス情報(バンク情報を含む)である。これらは、それぞれのデータの書き込み・読み出し作業の処理手順の関係から一時的にアドレス情報を保持するために使用されるものであるが、次の書き込み・読み出し作業に用いることもある。
The work address register (TMPV, TMPL) 33F has a function of storing a work next write address TMPV (Temporary register for VAR) and a work queue final address TMPL (Temporary register for LAR) in common with each queue. Have.
Among these, TMPV is address information (including bank information) indicating the next write address VAR of the queue in which writing / reading was performed immediately before. TMPL is address information (including bank information) indicating a queue final address LAR immediately before (before update) the queue in which writing was last performed. These are used to temporarily hold address information because of the processing procedure of each data write / read operation, but may also be used for the next write / read operation.
書込制御部34は、アクセス調停部37からの書き込み指示に応じて、アクセス履歴レジスタ(AAR)とバンク毎のVAR、UARに基づいて最適なバンクのVARを選択し、仮想格納アドレス(TMPV)を指定した、フレームデータの書き込みを指示するDRAM書込指示を、DRAMアクセス部32へ出力する機能を有している。
In response to a write instruction from the
バンク(VAR)の選択は、例えば、以下の様に行う。
書込制御部34はAARを用いて各バンクでどのロウアドレスが活性化されているのかを管理する。
各バンクのVARのロウアドレスの内、活性化されているものを選択する。ただし、該当のバンクのUARとVARの両方がバンク毎のメモリ容量の上限値に該当している場合はそのバンクは選択しない。
The bank (VAR) is selected as follows, for example.
The
Among the VAR row addresses of each bank, an activated one is selected. However, when both UAR and VAR of the corresponding bank correspond to the upper limit value of the memory capacity for each bank, the bank is not selected.
例えば、まず、バンク番号とロウアドレスの両方がAAR_1と同じ値のVARがあれば、そのVARのロウアドレスが活性化されているので、そのVARを選択し、なければ、バンク番号とロウアドレスの両方がAAR_2と同じ値のVARがあれば、そのVARのロウアドレスが活性化されているので、そのVARを選択する。ただし、AAR_2のバンク番号がAAR_1のバンク番号と同じ場合は、そのVARのロウアドレスは活性化されていないので、そのバンク番号のVARは選択しない。 For example, first, if there is a VAR in which both the bank number and the row address have the same value as AAR_1, the row address of that VAR is activated, so that VAR is selected. If both have a VAR having the same value as AAR_2, the row address of that VAR is activated, so that VAR is selected. However, if the bank number of AAR_2 is the same as the bank number of AAR_1, the row address of that VAR is not activated, so the VAR of that bank number is not selected.
AAR_2までの比較で未選択の場合は、バンク番号とロウアドレスの両方がAAR_3と同じ値のVARがあれば、そのVARのロウアドレスが活性化されているので、そのVARを選択する。ただし、AAR_3のバンク番号がAAR_1もしくはAAR_2のバンク番号と同じ場合は、そのVARのロウアドレスは活性化されていないので、そのバンク番号のVARは選択しない。 If not selected in the comparison up to AAR_2, if both the bank number and the row address have a VAR having the same value as AAR_3, the row address of that VAR is activated, so that VAR 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 of the VAR is not activated, so the VAR of that bank number is not selected.
以下、同様に、AAR_nまで比較を行い、バンク番号とロウアドレスの両方が同じ値のVARが有り、かつ、選択可能であれば、そのVARを選択する。なお、AAR_nとの比較を行う場合、AAR_nのバンク番号がAAR_1からAAR_(n−1)のいずれかと同じ場合は、そのVARのロウアドレスは活性化されていないので、そのバンク番号のVARは選択しない。
該当のロウアドレスが活性化されているもので、かつ、選択可能なものが無い場合は、例えば、どのAARにも記録されていないバンクのVARを選択、もしくは、AARに記録されているバンクの内で残っている履歴が最も古いバンクのVARを選択する。
Hereinafter, similarly, comparison is made up to AAR_n, and if there is a VAR having the same value in both the bank number and the row address, and that selection is possible, that VAR 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 of that VAR is not activated, so the VAR of that bank number is selected. do not do.
If the corresponding row address is activated and there is no selectable address, for example, a bank VAR not recorded in any AAR is selected, or a bank recorded in the AAR is selected. The VAR of the bank having the oldest remaining history is selected.
読出制御部35は、アクセス調停部37からの読み出し指示に応じて、キュー制御メモリ33のキュー制御情報に基づいて、仮想格納アドレス(SAR)を指定した、読出対象キューからの先頭データの読み出しを指示するDRAM読出指示を、DRAMアクセス部32へ出力する機能と、DRAMアクセス部32を介して読出対象キューから読み出したデータをフレーム終端フラグおよびキュー指定情報とともに多重分離装置20へ転送する機能とを有している。
In response to a read instruction from the
キュー使用アドレス数メモリ36は、例えばSRAMチップなどの半導体メモリからなり、キューごとに、当該キューに蓄積されているフレームデータが使用している仮想アドレス数NKを記憶する機能と、多重分離装置20およびアクセス調停部37からの要求に応じて、指定されたキューの仮想アドレス数NKを出力する機能とを有している。
図6は、キュー使用アドレス数メモリの記憶例である。ここでは、キューを識別するためのキューID(キュー番号)ごとに、当該キューの仮想アドレス数NKが記憶されている。
The queue use
FIG. 6 is a storage example of the queue use address number memory. Here, for each queue ID (queue number) for identifying a queue, the number NK of virtual addresses of the queue is stored.
アクセス調停部37は、多重化装置10から転送されたフレームデータを受け取り、当該フレームデータに付加されているフレーム長情報に基づき、フレームデータを1仮想アドレス分のデータサイズで複数のデータDに分割することにより書込回数を計算する機能と、この書込回数分だけ、それぞれのデータDに関する、当該フレームデータに付加されているキュー指定情報で指定された書込対象キューへの書き込みを指示する書き込み指示を書込制御部34に出力する機能と、当該フレームデータの書き込みにより増加する仮想アドレス数を、キュー使用アドレス数メモリ36の当該書込対象キューの仮想アドレス数NKに加算する機能とを有している。
The
また、アクセス調停部37は、多重分離装置20からの読み出し要求に応じて、当該読み出し要求の読出データ量情報で指定されたデータ量を1仮想アドレス分のデータサイズで分割することにより読出回数を計算する機能と、この読出回数分だけ、当該読み出し要求のキュー指定情報で指定された読出対象キューからのフレームデータの読み出しを指示する読み出し指示を読出制御部35へ出力する機能と、当該フレームデータの読み出しにより減少する仮想アドレス数を、キュー使用アドレス数メモリ36の当該書込対象キューの仮想アドレス数NKから減算する機能と、フレームデータの書き込みとの競合を調停し、読み出し可能なタイミングで読み出し指示を出力する機能とを有している。
Further, in response to a read request from the
[DRAMアクセス部]
次に、図7を参照して、本実施の形態にかかる記録装置30で用いられるDRAMアクセス部32について説明する。図7は、第1の実施の形態にかかるDRAMアクセス部の構成を示すブロック図である。
DRAMアクセス部32には、主な回路部として、FIFOメモリ32A、活性化処理部32B、アクセス種別判定部32C、DRAM書込部32D、およびDRAM読出部32Eが設けられている。
[DRAM access section]
Next, the
The
FIFOメモリ32Aは、一般的なFIFOメモリからなり、書込制御部34からのDRAM書込指示および読出制御部35からのDRAM読出指示を混在させて蓄積する機能と、活性化処理部32Bによるロウアドレスの活性化完了後、蓄積していたDRAM書込指示またはDRAM読出指示を入力順に読み出してアクセス種別判定部32Cへ出力する機能を有している。この際、アクセス種別判定のための情報として、書込制御部34からのDRAM書込指示なのか、もしくは、読出制御部35からのDRAM読出指示なのかを示す情報を、それぞれの指示と合わせてFIFOメモリ32Aに書き込んで、その情報もアクセス種別判定部32Cに出力するようにしてもよい。
The
なお、後述する図16に示すアクセス調停部37を使用する場合、書込制御部34からのDRAM書込指示と読出制御部35からのDRAM読出指示が同時に入力されることはないはずであるが、これらが同時に入力された場合には、FIFOメモリ32Aに対するDRAM書込指示の書込みを優先し、FIFOメモリ32Aに対するDRAM読出指示の書込みを待たせるようにすればよい。
When an
活性化処理部32Bは、FIFOメモリ32AにDRAM書込指示が蓄積された場合、当該書込対象ロウアドレスが活性化状態にない場合は、当該書込対象ロウアドレスを活性化する機能を有している。
The
また、活性化処理部32Bは、FIFOメモリ32AにDRAM読出指示が蓄積された場合、当該読出対象バンクにおいてDRAM読出指示で指定された読出対象ロウアドレスが活性化状態にない場合には、当該読出対象バンクにおいて読出対象ロウアドレスを活性化する機能と、当該読出対象バンクにおいて読出対象ロウアドレスとは異なるロウアドレスが活性化状態にある場合は、当該ロウアドレスへのアクセス完了に応じて、読出対象ロウアドレスを活性化する機能とを有している。
Further, the
アクセス種別判定部32Cは、FIFOメモリ32Aから出力されたDRAM書込指示をDRAM書込部32Dへ振り分けて出力する機能と、FIFOメモリ32Aから出力されたDRAM読出指示をDRAM読出部32Eへ振り分けて出力する機能とを有している。
The access
DRAM書込部32Dは、入力されたDRAM書込指示における書込対象ロウアドレスと書込対象バンクとの組み合わせに基づき、指示されたコラムアドレスに、DRAM書込指示で指定されたフレームデータ(データD)を書き込む機能を有している。
Based on the combination of the write target row address and the write target bank in the input DRAM write instruction, the
この際、1格納アドレス分のフレームデータ(データD)の書き込みに、複数のコラムアドレスが必要な場合は、DRAMの機能であるバーストモードを用いて、連続するコラムアドレスに書き込みを行うようにしてもよく、書込所要時間を短縮できる。
また、データメモリ31に対してEoF値(PN)の書き込みも行う場合は、フレームデータの書き込みと同時に行えばよい。
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.
Further, when the EoF value (PN) is also written to the data memory 31, it may be performed simultaneously with the writing of the frame data.
DRAM読出部32Eは、入力されたDRAM読出指示における読出対象ロウアドレスと読出対象バンクとの組み合わせに基づき、読出対象バンクの読出対象ロウアドレスのうち、指示されたコラムアドレスからフレームデータ(データD)を読み出して、キュー指定情報とともに読出制御部35へ出力する機能を有している。
Based on the combination of the read target row address and the read target bank in the input DRAM read instruction, the DRAM read
この際、1仮想格納アドレス分のフレームデータ(データD)の読み出しに、複数のコラムアドレスが必要な場合は、DRAMの機能であるバーストモードを用いて、連続するコラムアドレスから読み出しを行うようにしてもよく、読出所要時間を短縮できる。
また、データメモリ31に対してEoF値(PN)が書き込まれている場合は、フレームデータの読み出しと同時にEoF値の読み出しを行えばよい。
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 (PN) is written in the data memory 31, the EoF value may be read simultaneously with the reading of the frame data.
読み出したEoF値は、フレームデータおよびキュー指定情報とともに読出制御部35へ出力すればよい。なお、データメモリ31にEoF値を書き込まない場合は、アドレスキュー管理メモリ(QM)33BにEoF値を書き込んでおき、読出制御部35がキュー指定情報とともにこのEoF値をDRAMアクセス部32に出力し、DRAM読出部32Eがデータメモリ31から読み出したフレームデータとともに、アクセス種別判定部32Cを介して受け取ったEoF値を読出制御部35へ出力すればよい。
The read EoF value may be output to the
[第1の実施の形態の動作]
次に、図8および図9を参照して、本実施の形態にかかる通信用入出力装置1で用いられる記録装置30の動作について説明する。
図8は、書込制御部における書込動作を示す説明図である。図9は、読出制御部における読出動作を示す説明図である。
[Operation of First Embodiment]
Next, the operation of the
FIG. 8 is an explanatory diagram showing a write operation in the write control unit. FIG. 9 is an explanatory diagram showing a read operation in the read control unit.
[書き込み動作]
まず、図8を参照して、記録装置30の書込制御部34における書き込み動作について説明する。
書込制御部34は、アクセス調停部37からの書き込み指示に応じて、図8の処理動作を実行する。新たなデータを書込対象キューに書き込んだ場合、各キューによるデータメモリ31の格納アドレスの共用という観点からすれば、キュー制御情報における主な変化としては、書き込み前後において、書込対象キューに関するキュー最終アドレスLARと、書込前のキュー最終アドレスに関する後続仮想アドレスADDと、各キューに共通する次書込アドレスVAR(選択されたバンクのVARのみ)と、アクセス履歴レジスタ(AAR)とが変化する。なお、書込対象キューに対する最初の書き込みである場合は、書込対象キューに関するキュー先頭アドレスSARも変化する。
[Write operation]
First, a writing operation in the
The
このため、図8の処理動作において、書込制御部34は、選択されたバンクの次書込アドレスVARに対する指定データの書き込み(書き込み指示の出力)、書込対象キューに関するキュー最終アドレスLARの更新、書込前のキュー最終アドレスに関する後続仮想アドレスADDの更新、各キューに共通する次書込アドレスVAR(選択されたバンクのVARのみ)の更新を行う。なお、書込対象キューに対する最初の書き込みである場合は、書込対象キューに関するキュー先頭アドレスの更新も行う。これら更新の詳細については動作例に基づいて後述する。
For this reason, in the processing operation of FIG. 8, the
この際、書込制御部34は、キュー制御メモリ33にアクセスすることにより、図8に示すステップW1〜W7を実行する。すなわち、LAR保持(W1)、LAR,SAR更新(W2)、VAR保持(W3)、ADD更新(W4)、VAR更新(W5)、PN更新(W6)、データ等の出力(W7)の順で処理を実行する。なお、図8の処理順序は、処理効率を考慮したものであるが、他の処理順序であってもよい。
At this time, the
[読み出し動作]
次に、図9を参照して、記録装置30の読出制御部35における読み出し動作について説明する。
読出制御部35は、アクセス調停部37からの読み出し指示に応じて、図9の処理動作を実行する。新たなデータを読出対象キューから読み出した場合、各キューによるデータメモリ31の格納アドレスの共用という観点からすれば、キュー制御情報における主な変化としては、読み出し前後において、読出対象キューに関するキュー先頭アドレスSARと、各キューに共通する次書込アドレスVAR(読出対象バンクのVARのみ)と、新たな次書込アドレスVAR(読出対象バンクのVARのみ)に関する後続仮想アドレスADDと、アクセス履歴レジスタ(AAR)とが変化する。
[Read operation]
Next, with reference to FIG. 9, the reading operation in the
The
このため、図9の処理動作において、読出制御部35は、読出対象キューに関するキュー先頭アドレスSARに対するEoF(End of Frame:フレーム終端フラグ)の読み出し、読出対象キューに関するキュー先頭アドレスSARの更新、各キューに共通する次書込アドレスVAR(読出対象バンクのVARのみ)の更新、読出済仮想格納アドレスに関する後続仮想アドレスADDの更新、読み出し指示の出力を行う。これら更新の詳細については動作例に基づいて後述する。
For this reason, in the processing operation of FIG. 9, the
この際、読出制御部35は、キュー制御メモリ33にアクセスすることにより、図9に示すステップR1〜R5を実行する。すなわち、EoF出力(R1)、VAR保持(R2)、VAR更新(R3)、SAR更新(R4)、後続仮想アドレス更新(R5)、読み出し指示の出力の順で処理を実行する。なお、図9の処理順序は、処理効率を考慮したものであるが、他の処理順序であってもよい。
At this time, the
[動作例]
次に、図10〜図13を参照して、記録装置30におけるフレームデータの書込動作および読出動作について、キューP2を読出・書込対象キューとし、このキューP2にデータP2−3が書込まれた後、データP2−1、P2−2を読み出し、さらにデータP1−4を書き込む場合を例に説明する。
[Operation example]
Next, referring to FIG. 10 to FIG. 13, for the frame data writing operation and reading operation in
図10は、データP2−1読出直前(データP2−3書込直後)のキュー制御情報を示す説明図である。ここでは、データP2−1読出直前すなわちデータP2−3が書込まれた直後におけるキュー制御情報が示されている。この状態において、仮想データメモリのうち、バンク0の仮想格納アドレス「0,1,4」にキューP1のデータP1−1,P1−2,P1−3が書き込まれており、バンク0の仮想格納アドレス「2,3,5」にキューP2のデータP2−1,P2−2,P2−3が書き込まれている。また、バンク0の仮想格納アドレス「6〜N」とバンク1は未使用である。
FIG. 10 is an explanatory diagram showing queue control information immediately before reading data P2-1 (immediately after writing data P2-3). Here, queue control information immediately before reading data P2-1, that is, immediately after writing data P2-3 is shown. In this state, the data P1-1, P1-2, and P1-3 of the queue P1 are written in the virtual storage addresses “0, 1, 4” of the
したがって、バンク0の次書込アドレスVARは「6」となり、バンク0の未書込アドレスUARも「6」である。また、キューP1のデータP1−1,P1−2,P1−3の順序に応じて、バンク0の仮想格納アドレス「0,1」に関する後続仮想アドレスADDはバンク0の「1,4」となり、キューP2のデータP2−1,P2−2,P2−3の順序に応じて、バンク0の仮想格納アドレス「2,3」に関する後続仮想アドレスADDはバンク0の「3,5」となっている。なお、バンク0の仮想格納アドレス「0,2」のポインタPNが「0」となっており、データP1−1,P2−1には、フレーム終端が含まれていないことがわかる。
なお、バンク1の次書込アドレスVARと未書込アドレスUARはともに初期値の0である。バンク1のADD、PNには何も格納されていない。
Therefore, the next write address VAR of
Note that the next write address VAR and the unwritten address UAR of the
また、キューP1のキュー先頭アドレスSARは、データP1−1の仮想格納アドレス「バンク0の0」を示し、キュー最終アドレスLARは、データP1−3の仮想格納アドレス「バンク0の4」を示している。また、キューP2のキュー先頭アドレスSARは、データP2−1の仮想格納アドレス「バンク0の2」を示し、キュー最終アドレスLARは、データP2−3の仮想格納アドレス「バンク0の5」を示している。なお、作業用次書込アドレスTMPVと作業用キュー最終アドレスTMPLには、それぞれ「バンク0の5」と「バンク0の3」が格納されている。
Further, the queue head address SAR of the queue P1 indicates the virtual storage address “
図10に示した状態において、キューP2のデータP2−1を読み出した場合、キュー制御情報は、図11のように変化する。図11は、データP2−1読出時におけるキュー制御情報の変化を示す説明図である。 In the state shown in FIG. 10, when the data P2-1 of the queue P2 is read, the queue control information changes as shown in FIG. FIG. 11 is an explanatory diagram showing changes in queue control information when reading data P2-1.
まず、キューP2に関するキュー先頭アドレスSARが示す読出対象仮想アドレス「バンク0の2」からデータP2−1が読み出されるため、読出対象仮想アドレス「バンク0の2」のデータDは空き状態となり、キューP2に関するデータはP2−2,P2−3の2つとなる。これにより、P2−2がキューP2の先頭データとなり、キュー先頭位置が仮想格納アドレス「バンク0の2」から「バンク0の3」に変化するため、キューP2に関するキュー先頭アドレスSARが「バンク0の2」から「バンク0の3」に更新される。
First, since the data P2-1 is read from the read target virtual address “bank 0-2” indicated by the queue head address SAR regarding the queue P2, the data D of the read target virtual address “bank 0-2” becomes empty, and the queue There are two data relating to P2, P2-2 and P2-3. As a result, P2-2 becomes the head data of the queue P2, and the queue head position changes from the virtual storage address “bank 0-2” to “bank 0-3”, so the queue head address SAR regarding the queue P2 is “
また、読出対象仮想アドレス「バンク0の2」のデータDは空き状態となったため、この仮想格納アドレス「バンク0の2」がバンク0用の次データの書込位置となる。これにより、バンク0用の次書込アドレスVARが「6」から「2」に更新される。また、これに伴って、旧次書込アドレスVAR「6」(バンク0用)と新次書込アドレスVAR「2」(バンク0用)との順序関係を維持するため、仮想格納アドレス「バンク0の2」の後続仮想アドレスADDが「バンク0の3」から「バンク0の6」に更新される。これにより、作業用次書込アドレスTMPVと作業用キュー最終アドレスTMPLには、それぞれ「バンク0の6」と「バンク0の3」が格納される。
Further, since the data D of the read target virtual address “bank 0-2” is in an empty state, the virtual storage address “bank 0-2” becomes the write position of the next data for
図11に示した状態において、キューP2のデータP2−2を読み出した場合、キュー制御情報は、図12のように変化する。図12は、データP2−2読出時におけるキュー制御情報の変化を示す説明図である。 When the data P2-2 in the queue P2 is read in the state shown in FIG. 11, the queue control information changes as shown in FIG. FIG. 12 is an explanatory diagram showing changes in the queue control information when reading data P2-2.
まず、キューP2に関するキュー先頭アドレスSARが示す読出対象仮想アドレス「バンク0の3」からデータP2−2が読み出されるため、読出対象仮想アドレス「バンク0の3」のデータDは空き状態となり、キューP2に関するデータはP2−3の1つとなる。これにより、P2−3がキューP2の先頭データとなり、キュー先頭位置が仮想格納アドレス「バンク0の3」から「バンク0の5」に変化するため、キューP2に関するキュー先頭アドレスSARが「バンク0の3」から「バンク0の5」に更新される。
First, since the data P2-2 is read from the read target virtual address “bank 0-3” indicated by the queue head address SAR relating to the queue P2, the data D of the read target virtual address “
また、読出対象仮想アドレス「バンク0の3」のデータDは空き状態となったため、この仮想格納アドレス「バンク0の3」がバンク0用の次データの書込位置となる。これにより、バンク0用の次書込アドレスVARが「2」から「3」に更新される。また、これに伴って、旧次書込アドレスVAR「2」(バンク0用)と新次書込アドレスVAR「3」(バンク0用)との順序関係を維持するため、仮想格納アドレス「バンク0の3」の後続仮想アドレスADDが「バンク0の5」から「バンク0の2」に更新される。これにより、作業用次書込アドレスTMPVと作業用キュー最終アドレスTMPLには、それぞれ「バンク0の2」と「バンク0の3」が格納される。
Further, since the data D of the read target virtual address “Bank 0-3” is in an empty state, the virtual storage address “Bank 0-3” becomes the write position of the next data for
図12に示した状態において、キューP1のデータP1−4を書き込みした場合、キュー制御情報は、図13のように変化する。図13は、データP1−4書込時におけるキュー制御情報の変化を示す説明図である。 When the data P1-4 of the queue P1 is written in the state shown in FIG. 12, the queue control information changes as shown in FIG. FIG. 13 is an explanatory diagram showing a change in queue control information when data P1-4 is written.
まず、バンクを選択する。AARに記録されている仮想アドレスはバンク0の0〜5のみであり、このケースでは、活性化されているバンクはバンク0のみであり、活性化されているロウアドレスはバンク0のVARのロウアドレスと一致する。従って、バンク0を選択して書き込みを行ってもよいが、直前のアクセスが読み出しであることを考慮してここでは別のバンク(バンク1)を選択する。
なお、このケースでバンク0を選択しない理由は、DRAMの仕様上、読み出し後の同一バンクに書き込みを行う場合に待ち時間が発生し、実効スループットが低下するためである。
First, select a bank. The virtual addresses recorded in the AAR are only 0 to 5 of the
In this case, the reason why the
バンク1の次書込アドレスVARが示す書込対象仮想アドレス「0」にデータP1−4が書き込まれるため、P1−4がキューP1の新たな最終データとなり、キュー最終位置が仮想格納アドレス「バンク0の4」から「バンク1の0」に変化するため、キューP1のキュー最終アドレスLARが「バンク0の4」から「バンク1の0」に更新される。
Since the data P1-4 is written to the write target virtual address “0” indicated by the next write address VAR of the
また、書込前にキュー最終データであったP1−3にP1−4が後続することになるため、P1−3の仮想格納アドレス「バンク0の4」の後続仮想アドレスとしてP2−4の仮想格納アドレス「バンク1の0」が設定される。また、書込前の次書込アドレスVAR(バンク1用)にP1−4が書き込まれたため、バンク1の次書込アドレスVARが「0」から「1」に更新される。なお、バンク1のUARも「0」から「1」に更新され、バンク0のVARとUARは更新されない。これにより、作業用次書込アドレスTMPVと作業用キュー最終アドレスTMPLには、それぞれ「バンク1の0」と「バンク0の4」が格納される。
Also, since P1-4 follows P1-3 that was the last queue data before writing, the virtual storage address of P2-4 is the subsequent virtual address of the virtual storage address “Bank 0-4” of P1-3. The storage address “0 of
[DRAM書込動作]
次に、図14を参照して、本実施の形態にかかるDRAMアクセス部32におけるDRAM書込動作について説明する。図14は、DRAM書込処理を示すフローチャートである。
DRAMアクセス部32は、書込制御部34からのDRAM書込指示に応じて、図14のDRAM書込処理を実行する。
[DRAM write operation]
Next, a DRAM write operation in the
The
まず、活性化処理部32Bは、FIFOメモリ32Aに蓄積されたDRAM書込指示で指定された書込対象ロウアドレスが活性化状態にあるか確認し(ステップ100)、書込対象ロウアドレスが活性化状態にない場合は(ステップ100:NO)、書込対象ロウアドレスの活性化を行って(ステップ101)、活性化処理を完了する。なお、書込対象ロウアドレスが活性化状態にある場合(ステップ100:YES)、何もせず活性化処理を完了する。
First, the
活性化処理部32Bでの活性化処理を完了後、DRAM書込指示はFIFOメモリ32Aから出力され、アクセス種別判定部32Cを介してDRAM書込部32Dに入力される。
これに応じて、DRAM書込部32Dは、入力されたDRAM書込指示に対応するコラムアドレスに、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 data memory 31, the
[DRAM読出動作]
次に、図15を参照して、本実施の形態にかかるDRAMアクセス部32におけるDRAM読出動作について説明する。図15は、DRAM読出処理を示すフローチャートである。
DRAMアクセス部32は、読出制御部35からのDRAM読出指示に応じて、図15のDRAM読出処理を実行する。
[DRAM read operation]
Next, with reference to FIG. 15, a DRAM read operation in the
The
まず、活性化処理部32Bは、FIFOメモリ32Aに蓄積されたDRAM読出指示で指定された読出対象バンクにおいて、読出対象ロウアドレスが活性化状態にあるか確認し(ステップ110)、読出対象ロウアドレスが活性化状態にある場合(ステップ110:YES)、何もせず活性化処理を完了する。
First, the
活性化処理部32Bでの活性化処理を完了後、DRAM読出指示はFIFOメモリ32Aから出力され、アクセス種別判定部32Cを介してDRAM読出部32Eに入力される。
これに応じて、DRAM読出部32Eは、入力されたDRAM読出指示に対応する読出対象バンクの読出対象ロウアドレスのうち、指示されたコラムアドレスからフレームデータ(データD)を読み出した後(ステップ114)、DRAM読出処理を終了する。
After completing the activation process in the
In response, DRAM read
また、読出対象バンクの読出対象ロウアドレスが活性化状態にない場合(ステップ110:NO)、活性化処理部32Bは、読出対象バンクにおいて異なるロウアドレスが活性化状態にあるか確認する(ステップ111)。
ここで、異なるロウアドレスが活性化状態にない場合(ステップ111:NO)、活性化処理部32Bは、読出対象バンクの読出対象ロウアドレスを活性化し(ステップ113)、活性化処理を完了する。これにより、DRAM読出部32Eにおいて、活性化された読出対象ロウアドレスからの読み出しが行われることになる。
When the read target row address of the read target bank is not in the activated state (step 110: NO), the
Here, if a different row address is not in the activated state (step 111: NO), the
また、異なるロウアドレスが活性化状態にある場合(ステップ111:YES)、活性化処理部32Bは、異なるロウアドレスへのアクセスが完了するまで待機した後(ステップ112)、ステップ113へ移行して、前述と同様に読出対象ロウアドレスの活性化を行う。
If a different row address is in an activated state (step 111: YES), the
このように、データメモリ31を構成するDRAMからフレームデータを読み出す際、読出対象となるフレームデータが特定のバンクに書き込まれていることから、書き込み時のように、ロウアドレスが活性化状態にあるバンクを選択することはできない。このため、同一バンクの異なるロウアドレスからの読み出しや、書き込み後の同一バンクからの読み出しにおいて待ち時間が発生するものとなる。なお、同一バンクの異なるロウアドレスからの読み出しについては、異なるロウアドレスからの読み出しが連続しないように、例えば、両者の間に書き込みが挿入されるよう処理間隔をあけるようにしてもよい。 As described above, when reading frame data from the DRAM constituting the data memory 31, since the frame data to be read is written in a specific bank, the row address is in an activated state as in writing. You cannot select a bank. 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.
[第1の実施の形態の効果]
このように、本実施の形態は、記録装置30において、データメモリ31をバンクごとにライトポインタを有するDRAMから構成して、書込対象キューにフレームデータを書き込む際、バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該フレームデータを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該フレームデータを書き込むようにしたものである。
[Effect of the first embodiment]
As described above, according to the present embodiment, in 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が持つ各バンクのうちから、書込対象ロウアドレスが活性化状態にあるバンクが書込対象バンクとして優先的に選択される。
これにより、同一バンクの異なるロウアドレスへの書き込みが発生する確率を低減することができる。したがって、フレームデータ書込時におけるロウアドレスの活性化や、異なるロウアドレスに対するアクセス完了を待つ回数を低減させることができ、DRAMアクセスに関する実効スループットの低下を抑制することが可能となる。
According to the present embodiment, when writing frame data to the DRAM constituting the data memory 31, the bank in which the write target row address is activated is preferentially set as the write target bank among the banks of the DRAM. Selected.
This can reduce the probability of writing to different row addresses in the same bank. Therefore, it is possible to reduce the number of times of waiting for the activation of the row address at the time of writing the frame data and the completion of the access to the different row address, and it is possible to suppress the decrease in the effective throughput related to the DRAM access.
また、本実施の形態において、記録装置30において、仮想格納アドレスごとに、当該仮想格納アドレスに書き込まれた通信データに後続する通信データの仮想格納アドレスを示す後続アドレスを記憶し、キューごとに、当該キューの通信データが書き込まれている仮想格納アドレスの先頭および最終を示すキュー先頭アドレスおよびキュー最終アドレスを記憶し、各キューに共通して、次に通信データを書き込むべき仮想格納アドレスを示す次書込アドレスをバンクごとに記憶するようにしてもよい。
In the present embodiment, the
これに加えて、書込制御部34が、書込対象キューに通信データを書き込む(書き込み指示を行う)際、選択されたバンクの次書込アドレスからなる書込対象仮想アドレスに当該通信データを書き込み、当該書込対象キューのキュー最終アドレス、書込前のキュー最終アドレスに関する後続仮想アドレス、および選択されたバンクの次書込アドレスをそれぞれ更新し、読出制御部35が、読出対象キューから通信データを読み出す(読み出し指示を行う)際、当該読出対象キューのキュー先頭アドレスからなる読出対象仮想アドレス(バンク情報を含む)から当該通信データを読み出し、当該読出対象キューのキュー先頭アドレス、読出対象バンクの次書込アドレス、および新たな次書込アドレス(読出対象バンク用)に関する後続仮想アドレスをそれぞれ更新するようにしてもよい。
In addition to this, 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. A virtual storage address in an empty state can be shared by a plurality of queues, and the use efficiency of the memory can be improved as compared with a case where a fixed address range is secured in advance for each conventional queue. It becomes possible. For this reason, it is not necessary to increase the memory capacity, and as a result, an increase in circuit scale and cost can be suppressed.
また、本実施の形態は、QM内のADD値等の初期値を設定する必要が無いという特徴がある。本実施の形態において、通信用入出力装置の起動時に初期値を設定する必要がある情報はVAR、UARと、AARのみである(図8の「Initialization」を参照)。従って、初期設定を行うための回路の規模、もしくは、初期設定を行うためのソフトウエアの規模が極めて小さく、初期設定に要する時間も極めて小さいという効果が有る。
なお、図8等において、EoF値格納用のPNをQM内に搭載する場合を例示しているが、PNをDRAM内に搭載することも可能である。
In addition, this embodiment has a feature that it is not necessary to set an initial value such as an ADD value in the QM. In the present embodiment, only the VAR, UAR, and AAR need to set initial values when the communication input / output device is activated (see “Initialization” in FIG. 8). 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.
8 and the like illustrate the case where the PN for storing the EoF value is mounted in the QM, but the PN can also be mounted in the DRAM.
[第2の実施の形態]
次に、図16を参照して、本発明の第2の実施の形態にかかる通信用入出力装置1について説明する。図16は、第2の実施の形態にかかるアクセス調停部の構成を示すブロック図である。
[Second Embodiment]
Next, a communication input /
第1の実施の形態にかかる通信用入出力装置1において、仮想データメモリの仮想格納アドレスを複数のキューで共用するようにした際に、例えば、特定の出力系統に関するフレームデータが多量に入力された場合、仮想データメモリの仮想格納アドレスが当該出力系統のキューにより占有されてしまうという場合がある。このような格納アドレスの占有は、第1の実施の形態に限定されるものではなく、格納アドレスを複数のキューで共用する構成であれば、いずれの構成であっても発生しうる。したがって、このような格納アドレスの占有が発生した場合、他の出力系統のキューが十分な格納アドレス数を使用できず、フレームデータの破棄が発生しやすくなり、通信品質が劣化する原因となる。
In the communication input /
本実施の形態は、このような複数のキューによる格納アドレスの共用時における、特定キューによる格納アドレスの占有を回避することを目的とし、記録装置30において、アクセス調停部37が、書込対象キューにフレームデータを書き込む(書き込み指示を行う)際、当該フレームデータのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、キュー使用アドレス数メモリ36から取得した当該書込対象キューまたは各キューの使用仮想アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残り仮想アドレス数を算出し、当該必要アドレス数と当該残り仮想アドレス数とを比較することにより当該フレームデータの書込可否を判定し、書込可の判定に応じて書込制御部34に対して当該フレームデータの書き込みを指示するようにしたものである。
The purpose of this embodiment is to avoid occupying a storage address by a specific queue when the storage address is shared by a plurality of queues. In the
図16に示すように、本実施の形態において、アクセス調停部37には、主な回路部として、書込可否判定部37A、書込用FIFO37B、読出受付部37C、読出用FIFO37D、優先制御部37E、キュー使用アドレス数更新部37F、および指示出力部37Gが設けられている。
As shown in FIG. 16, in this embodiment, the
書込可否判定部37Aは、多重化装置10から転送されたフレームデータに付加されているキュー指定情報およびフレーム長情報と、キューごとに予め設定されている判定用アドレス数情報と、各キューの使用仮想アドレス数とに基づいて、書込可能か否か判定する機能と、書込可の判定結果に応じて、当該フレームデータを、データメモリ31に設けられている格納領域の1仮想アドレス分のデータサイズに分割し、得られたデータにキュー指定情報を付加した書き込み指示を、それぞれ書込用FIFO37Bに書き込む機能とを有している。
The write enable / disable determining
判定用アドレス数情報には、当該キュー指定情報で指定された書込対象キューで使用可能な最大仮想アドレス数NKmaxと、当該書込対象キューに対して使用が保証されている最低保証仮想アドレス数NKminとが含まれている。
図17は、判定用アドレス数情報の構成例である。ここではキューを識別するためのキューIDごとに、最大仮想アドレス数NKmaxと最低保証仮想アドレス数NKminとが設定されている。これら判定用アドレス数情報は、例えばキュー使用アドレス数更新部37F、あるいはアクセス調停部37の内部メモリ(図示せず)で記憶されている。
The determination address number information includes the maximum number of virtual addresses NKmax that can be used in the write target queue specified by the queue specification information, and the minimum guaranteed virtual address number that is guaranteed to be used for the write target queue. NKmin.
FIG. 17 is a configuration example of the determination address number information. Here, a maximum virtual address number NKmax and a minimum guaranteed virtual address number NKmin are set for each queue ID for identifying a queue. The determination address number information is stored in, for example, the queue use address
読出受付部37Cは、多重分離装置20から出力された読み出し要求の読出データ量情報に基づいて、データメモリ31に対する読み出し回数を計算し、その読み出し回数だけ当該読み出し要求のキュー指定情報を読み出し指示として読出用FIFO37Dに書き込む機能を有している。この計算は、読出データ量情報が示すデータ量をデータメモリ31の1仮想アドレスあたりのデータサイズで除算した値を読み出し回数とし、剰余がある場合は読み出し回数に1を加算すればよい。
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の実施の形態の動作]
次に、図18を参照して、本実施の形態にかかるアクセス調停部37の動作として、フレームデータの書き込み時における書込判定動作について説明する。図18は、第2の実施の形態にかかる書込可否判定処理を示すフローチャートである。
記録装置30のアクセス調停部37は、多重化装置10から転送されたフレームデータごとに、図18の書込可否判定処理に基づいて、書込可否を判定する。
[Operation of Second Embodiment]
Next, with reference to FIG. 18, a write determination operation at the time of writing frame data will be described as an operation of the
The
まず、アクセス調停部37は、キュー使用アドレス数メモリ36から全キューに関する使用仮想アドレス数NKを取得して(ステップ200)、全キューが使用している合計仮想アドレス数NKAを算出し(ステップ201)、書込対象となる対象フレームデータの書き込みに要する必要仮想アドレス数NFを算出する(ステップ202)。
First, the
この後、仮想データメモリの仮想格納アドレスの総アドレス数NAからNKAを減算することにより、対象フレームデータの書き込みに使用可能な仮想格納アドレスの数を示す残り仮想アドレス数NRを算出し(ステップ203)、NFとNRとを比較する(ステップ204)。
ここで、NF>NRの場合(ステップ204:YES)、アクセス調停部37は、書込不可と判定して対象フレームデータを破棄し(ステップ213)、当該対象フレームデータに関する書込判定処理を終了する。
Thereafter, by subtracting NKA from the total address number NA of the virtual storage addresses of the virtual data memory, the remaining virtual address number NR indicating the number of virtual storage addresses that can be used for writing the target frame data is calculated (step 203). ), NF and NR are compared (step 204).
Here, when NF> NR (step 204: YES), the
一方、NF≦NRの場合(ステップ204:NO)、アクセス調停部37は、指定された書込対象キューの最大仮想アドレス数NKmaxをキュー使用アドレス数メモリ36等から取得して(ステップ205)、NKmaxからNKを減算することにより残り仮想アドレス数NRを算出し(ステップ206)、NFとNRとを比較する(ステップ207)。
ここで、NF>NRの場合(ステップ207:YES)、アクセス調停部37は、書込不可と判定して対象フレームデータを破棄し(ステップ213)、当該対象フレームデータに関する書込判定処理を終了する。
On the other hand, when NF ≦ NR (step 204: NO), the
Here, when NF> NR (step 207: YES), the
一方、NF≦NRの場合(ステップ207:NO)、アクセス調停部37は、全キューに関する最低保証仮想アドレス数NKminをキュー使用アドレス数メモリ36から取得し(ステップ208)、全キューを一括して最低限保証すべき総保証仮想アドレス数NAminを算出する(ステップ209)。この際、任意のキューのキュー使用仮想アドレス数NKがその最低保証仮想アドレス数以上である場合は、当該キューの保証仮想アドレス数としてキュー使用仮想アドレス数NKを加算し、キュー使用仮想アドレス数NKがその最低保証仮想アドレス数未満である場合は、当該キューの保証仮想アドレス数として最低保証仮想アドレス数NKminを加算する。
On the other hand, when NF ≦ NR (step 207: NO), the
この後、アクセス調停部37は、NAからNAminを減算することにより残り仮想アドレス数NRを算出し(ステップ210)、NFとNRとを比較する(ステップ211)。
ここで、NF>NRの場合(ステップ211:YES)、アクセス調停部37は、書込不可と判定して対象フレームデータを破棄し(ステップ213)、当該対象フレームデータに関する書込判定処理を終了する。
Thereafter, the
Here, if NF> NR (step 211: YES), the
一方、NF≦NRの場合(ステップ211:NO)、アクセス調停部37は、対象フレームデータについて書込可と判定し(ステップ212)、当該対象フレームデータに関する書込判定処理を終了する。
この後、この書込可の判定に応じて、アクセス調停部37は、対象フレームデータを1仮想アドレス分のデータサイズに分割し、得られたデータにキュー指定情報を付加した書き込み指示を、それぞれ書込用FIFO37Bに書き込むことになる。
On the other hand, if NF ≦ NR (step 211: NO), the
Thereafter, the
[第2の実施の形態の効果]
このように、本実施の形態は、記録装置30において、キュー使用アドレス数メモリ36が、キューごとに、当該キューが使用している仮想格納アドレスの数を示す使用アドレス数を記憶し、アクセス調停部37が、書込対象キューに通信データを書き込む(書き込み指示を行う)際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、キュー使用アドレス数メモリ36から取得した当該書込対象キューまたは各キューの使用仮想アドレス数等に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残り仮想アドレス数を算出し、当該必要アドレス数と当該残り仮想アドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて書込制御部34に対して当該通信データの書き込みを指示するようにしたものである。
[Effect of the second embodiment]
As described above, according to the present embodiment, in the
したがって、それぞれのキューによる仮想格納アドレスの使用数が制限されるため、任意の出力系統と対応するキューによる仮想格納アドレスの占有を抑止することができる。このため、特定の出力系統に関するフレームデータが多量に入力された場合でも、他の出力系統のキューが十分な仮想格納アドレス数を使用することが可能となる。これにより、フレームデータの破棄やこれによる通信品質の劣化を抑制することが可能となるとともに、これら対策として、メモリ容量の増大を行う必要がなくなり、結果として回路規模やコストの増大を抑制することが可能となる。 Therefore, since the number of virtual storage addresses used by each queue is limited, occupation of the virtual storage address by a queue corresponding to an arbitrary output system can be suppressed. For this reason, even when a large amount of frame data related to a specific output system is input, it is possible for the queues of other output systems to use a sufficient number of virtual storage addresses. As a result, it becomes possible to suppress the discarding of frame data and the deterioration of communication quality due to this, and as a countermeasure, it is not necessary to increase the memory capacity, and as a result, the increase in circuit scale and cost is suppressed Is possible.
なお、本実施の形態におけるNKA及びNAminの算出は、キュー使用アドレス数メモリ36を更新する際に同時に算出(加算、減算等)することができる。
本実施の形態において、図16の構成のアクセス調停部37を用いる場合、書込用FIFO37Bに書き込み指示データが存在していると誤って書込可能と判定してしまう可能性がある。誤った判定を防止するためには、各キューの使用仮想アドレス数としてキュー使用アドレス数メモリ36の情報に書込用FIFO37B内の仮想アドレス数(書き込み指示の数)を加算した値を使用するか、NAもしくはNKmaxとして書込用FIFO37B内の仮想アドレス数(書き込み指示の数)を減算した値を使用すればよい。
Note that NKA and NAmin in this embodiment can be calculated (added, subtracted, etc.) at the same time when the queue use
In the present embodiment, when the
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
[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
1…通信用入出力装置、10…多重化装置、11…キュー指定情報付加部、12…多重化部、20…多重分離装置、21…読出部、22…振分部、23,24…速度変換部、30…記録装置、31…データメモリ、32…DRAMアクセス部、32A…FIFOメモリ、32B…活性化処理部、32C…アクセス種別判定部、32D…DRAM書込部、32E…DRAM読出部、33…キュー制御メモリ、34…書込制御部、35…読出制御部、36…キュー使用アドレス数メモリ、37…アクセス調停部、37A…書込可否判定部、37B…書込用FIFO、37C…読出受付部、37D…読出用FIFO、37E…優先制御部、37F…キュー使用アドレス数更新部、37G…指示出力部。
DESCRIPTION OF
Claims (3)
前記記録装置は、
バンクごとにライトポインタを有するDRAMからなり、前記キューの通信データを記憶する前記データメモリと、
前記書込対象キューに前記通信データを書き込む際、前記バンクのうちライトポインタに対応する書込対象ロウアドレスが活性化状態にあるバンクを書込対象バンクとして選択して当該通信データを書き込み、当該書込対象ロウアドレスが活性化状態にあるバンクが存在しない場合は、当該書込対象ロウアドレスが非活性化状態にあるバンクを書込対象バンクとして選択して当該書込対象ロウアドレスを活性化した後に当該通信データを書き込む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 comprises:
The data memory, which comprises a DRAM having a write pointer for each bank, stores communication data of 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 pointer is activated among the banks is selected as the write target bank, and the communication data is written. If 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 activated. And a DRAM access unit for writing the communication data after the communication input / output device.
前記記録装置は、
前記データメモリの前記キューに対する書き込み・読み出しを制御する際に用いるキュー制御情報を記憶するキュー制御メモリと、
前記キュー制御メモリのキュー制御情報に基づいて、前記多重化装置から転送された前記通信データの前記書込対象キューに対する書き込みを前記DRAMアクセス部に指示する書込制御部と、
前記キュー制御メモリのキュー制御情報に基づいて、前記読出対象キューからの通信データの読み出しを前記DRAMアクセス部に指示し、読み出した通信データを前記多重分離装置へ転送する読出制御部とをさらに備え、
前記キュー制御メモリは、仮想データメモリ上で用いられる仮想格納アドレスごとに、当該仮想格納アドレスに書き込まれた通信データに後続する通信データの仮想格納アドレスを示す後続アドレスを記憶し、前記キューごとに、当該キューの通信データが書き込まれている前記仮想格納アドレスの先頭および最終を示すキュー先頭アドレスおよびキュー最終アドレスを記憶し、前記キューのそれぞれに共通して、次に通信データを書き込むべき仮想格納アドレスを示す次書込アドレスをバンクごとに記憶し、
前記書込制御部は、前記書込対象キューに前記通信データを書き込む際、前記書込対象バンクとして選択したバンクの前記次書込アドレスからなる書込対象仮想アドレスに対する当該通信データの書き込みをDRAMアクセス部に指示し、当該書込対象キューのキュー最終アドレス、書込前のキュー最終アドレスに関する後続アドレス、および書込対象バンクとして選択したバンクの次書込アドレスをそれぞれ更新し、
前記読出制御部は、前記読出対象キューから前記通信データを読み出す際、当該読出対象キューのキュー先頭アドレスからなる読出対象仮想アドレスに対する当該通信データの読み出しをDRAMアクセス部に指示し、当該読出対象キューのキュー先頭アドレス、読出対象バンクの次書込アドレス、および新たな読出対象バンクの次書込アドレスに関する後続アドレスをそれぞれ更新する
ことを特徴とする通信用入出力装置。 The communication input / output device according to claim 1,
The recording device comprises:
A queue control memory for storing queue control information used when controlling writing / reading to / from the queue of the data memory;
A write control unit that instructs the 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 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; ,
The queue control memory stores a subsequent address indicating a virtual storage address of communication data subsequent to the communication data written to the virtual storage address for each virtual storage address used on the virtual data memory, and for each queue Storing a queue head address and a queue last address indicating the head and end of the virtual storage address in which the communication data of the queue is written, and storing the communication data next in common for each of the queues The next write address indicating the address is stored for each bank,
When the write control unit writes the communication data to the write target queue, the write control unit writes the communication data to the write target virtual address including the next write address of the bank selected as the write target bank. Instruct the access unit to update the queue final address of the write target queue, the subsequent address related to the queue final address before writing, and the next write address of the bank selected as the write target bank,
When reading the communication data from the read target queue, the read control unit instructs the DRAM access unit to read the communication data for the read target virtual address consisting of the queue head address of the read target queue, and And a subsequent address related to the next write address of the new bank to be read and the next write address of the bank to be read are updated respectively.
前記記録装置は、
前記キューごとに、当該キューが使用している前記仮想データメモリ上での仮想格納アドレスの数を示す使用アドレス数を記憶するキュー使用アドレス数メモリと、
前記書込対象キューに前記通信データを書き込む際、当該通信データのデータ長に基づき、書き込みに必要となる仮想格納アドレスの数を示す必要アドレス数を算出し、前記キュー使用アドレス数メモリから取得した当該書込対象キューまたは前記キューの使用アドレス数に基づき、当該書き込みに使用可能な仮想格納アドレスの数を示す残りアドレス数を算出し、当該必要アドレス数と当該残りアドレス数とを比較することにより当該通信データの書込可否を判定し、書込可の判定に応じて前記書込制御部に対して当該通信データの書き込みを指示するアクセス調停部と
をさらに備えることを特徴とする通信用入出力装置。 The communication input / output device according to claim 2 ,
The recording device comprises:
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 By calculating the number of remaining addresses indicating the number of virtual storage addresses that can be used for the writing based on the number of addresses used in the writing target queue or the queue, and comparing the number of necessary addresses with the number of remaining addresses An access arbitration unit that determines whether or not the communication data can be written, and instructs the write control unit to write the communication data in response to the determination of whether or not the communication data can be written. Output device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016162568A JP6570075B2 (en) | 2016-08-23 | 2016-08-23 | Communication input / output device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016162568A JP6570075B2 (en) | 2016-08-23 | 2016-08-23 | Communication input / output device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018032925A JP2018032925A (en) | 2018-03-01 |
JP6570075B2 true JP6570075B2 (en) | 2019-09-04 |
Family
ID=61303599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016162568A Active JP6570075B2 (en) | 2016-08-23 | 2016-08-23 | Communication input / output device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6570075B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019204150A (en) * | 2018-05-21 | 2019-11-28 | 日本電信電話株式会社 | Input-output apparatus for communication |
-
2016
- 2016-08-23 JP JP2016162568A patent/JP6570075B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018032925A (en) | 2018-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740006B2 (en) | System and method for enabling high read rates to data element lists | |
US8225026B2 (en) | Data packet access control apparatus and method thereof | |
US7627672B2 (en) | Network packet storage method and network packet transmitting apparatus using the same | |
US20090172318A1 (en) | Memory control device | |
US9785367B2 (en) | System and method for enabling high read rates to data element lists | |
JP6611011B2 (en) | Communication input / output device | |
JP6570075B2 (en) | Communication input / output device | |
WO2019225336A1 (en) | Communication input-output device | |
US10061513B2 (en) | Packet processing system, method and device utilizing memory sharing | |
JP6351073B2 (en) | Communication input / output device | |
CN101599049A (en) | The method and the dma controller of control DMA visit discontinuous physical addresses | |
JP2016158024A (en) | Input output device for communication | |
JP2019032727A (en) | Input/output device for communication | |
JP2019032699A (en) | Input/output device for communication | |
CN102405466A (en) | Memory control device and method for controlling same | |
JP2019032705A (en) | Input/output device for communication | |
US7836231B2 (en) | Buffer control method and device thereof | |
US9582215B2 (en) | Packet processing system, method and device utilizing memory sharing | |
EP3244582B1 (en) | Switch and data accessing method thereof | |
JP2014074993A (en) | Semiconductor device | |
JP2014194672A (en) | Memory control device and memory control method | |
US20240302969A1 (en) | Memory control device and memory control method | |
JP6212059B2 (en) | Communication input / output device | |
JP6364951B2 (en) | DMA controller | |
JP5640204B2 (en) | Memory control device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160823 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180827 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20180827 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20180827 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190618 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190709 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190730 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190801 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6570075 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |