WO2011111210A1 - データブロック読出制御装置 - Google Patents

データブロック読出制御装置 Download PDF

Info

Publication number
WO2011111210A1
WO2011111210A1 PCT/JP2010/054141 JP2010054141W WO2011111210A1 WO 2011111210 A1 WO2011111210 A1 WO 2011111210A1 JP 2010054141 W JP2010054141 W JP 2010054141W WO 2011111210 A1 WO2011111210 A1 WO 2011111210A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
identifier
signal
line
unit
Prior art date
Application number
PCT/JP2010/054141
Other languages
English (en)
French (fr)
Inventor
雅博 種田
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to EP10847440A priority Critical patent/EP2547048A1/en
Priority to PCT/JP2010/054141 priority patent/WO2011111210A1/ja
Priority to JP2012504236A priority patent/JP5316696B2/ja
Publication of WO2011111210A1 publication Critical patent/WO2011111210A1/ja
Priority to US13/609,788 priority patent/US8898406B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Definitions

  • the present invention relates to a data block read control device.
  • packet forward ordering rules based on the priority assigned to each packet are applied so that deadlock does not occur due to transaction stalls.
  • packets are forwarded in the order determined according to this rule, for example, a plurality of reception buffers provided for each packet type and a mechanism for holding / referring to the packet arrival order are prepared.
  • the packet arrival order is prepared to forward the packets in the packet arrival order.
  • a plurality of reception buffers are prepared for forward passing between packets according to priority. Inter-packet passing forward refers to forwarding a certain type of packet ahead of other types of packets that arrived earlier than the packet according to priority.
  • FIG. 9 shows a packet read control device which is one of the prior arts.
  • the packet reading control apparatus shown in FIG. 9 generates and records a tag as order information indicating the arrival order for each packet in order to hold and refer to the order information in which the packets arrive.
  • each packet type (here, “A”, “B”, and “C”) is determined according to the type identifier in the received packet.
  • a received packet is stored in one of a plurality of prepared reception buffers (FIFO: “First In In First First Out”).
  • the reception order tag generation counter when a received packet arrives, a reception trigger is generated and a type identifier in the received packet is input to the tag generation circuit.
  • the reception order tag generation counter In the tag generation circuit, the reception order tag generation counter generates a reception order tag corresponding to the type identifier in response to the reception trigger.
  • the reception order tag is stored in one of a plurality of tag buffers (FIFO) prepared for each packet type according to the type identifier.
  • the arbitration circuit reads the tag value stored at the head of each tag buffer, refers to the reception order indicated by each tag value, and corresponds to the packet corresponding to each tag value, that is, the packet stored at the head of each reception buffer. Confirm the reception order (order of arrival). On the other hand, the arbitration circuit determines a packet to be read in accordance with predetermined priority control contents, that is, an ordering rule (read rule) between packet types, and a read instruction is given to the reception buffer. As a result, the packet is read from the reception buffer and forwarded.
  • JP 2005-518578 A Japanese Patent Laid-Open No. 2-117241 JP-A-5-227210 JP-A-11-298521
  • each tag indicating the order is generated for each packet and recorded in the tag buffer
  • the circuit amount of the tag buffer itself increases. For example, assume that there are three receive buffers, and each receive buffer can store 16 packets.
  • One object of the aspect of the present invention is to provide a data block read control device capable of reducing the capacity required for recording the arrival order information of data blocks.
  • One aspect of the present invention is a data block read control device.
  • the packet reading control device arranges the identifiers of the distribution units corresponding to the plurality of data blocks distributed and stored in the plurality of reception buffers prepared for each distribution unit in the order of arrival of the plurality of data blocks.
  • a sequence buffer to store the identifier column A detection unit for detecting a start position of an identifier of each distribution unit in the identifier string; A determination unit for determining a data block to be read from one of the plurality of reception buffers based on at least a head position of each identifier and a predetermined rule for reading data blocks from the plurality of reception buffers; , A reading unit that reads the data block determined by the determining unit from one of the plurality of reception buffers,
  • the distribution unit identifier is represented by a minimum number of bits required to represent all the distribution units corresponding to the data blocks stored in the plurality of reception buffers.
  • the capacity required for recording the arrival order information of data blocks can be reduced.
  • FIG. 1 is a diagram illustrating a configuration example of a data block read control device in Embodiment 1.
  • FIG. 2 is a diagram illustrating a detailed configuration example of a head position detection circuit illustrated in FIG. 1. An example of the head position detection operation of each identifier is shown. An example of the clear operation of the order buffer (FF group) is shown.
  • FF group An example of the clear operation of the order buffer
  • FIG. It is a figure which shows the structural example of the data block read-out control apparatus in Embodiment 3. It is explanatory drawing of the method of determining the test
  • FIG. 1 is a diagram illustrating a configuration example of a data block reading device according to the first embodiment.
  • a packet reading device for controlling the transmission order of packets as data blocks between distribution units will be described.
  • the packet reading device 1 uses three packet types (packet types) of type “P”, type “N”, and type “C” as a plurality of packet types that are distribution units. Control the sending order.
  • the first packet type, “P”, is “posted” including a processing request that does not require a reply of completion notification.
  • the second packet type “N” is “non-posetd” including a request for processing for which a reply of completion notification is requested.
  • the third packet type “C” is “completion” including a process completion notification.
  • the packet reading device 1 is provided with channels (transmission paths) for transferring each packet of type “P”, type “N”, and type “C”.
  • a packet forwarding ordering rule (reading rule) between packets is applied to each type of packet flowing through the channel.
  • the priority order of forwarding (transfer) is determined in advance in the order of P, C, and N, and the packet is transferred according to the priority order.
  • the packet reading device 1 includes a reception buffer group 10 and a packet reading control device 20.
  • the reception buffer group 10 includes a plurality of reception buffers prepared for each packet type that is a distribution unit.
  • the reception buffer group 10 includes reception buffers 11, 12, and 13 corresponding to packet types “P”, “N”, and “C”.
  • Each of the reception buffers 11, 12, and 13 is a FIFO and can store a maximum of 16 fixed-length or variable-length packets.
  • the packet read control device 20 includes a reception buffer write control circuit 21 as a packet write control unit, an order buffer 22 as an order buffer, a head position detection circuit 23 as a detection unit, and an arbitration circuit 24 as a determination unit. And a reception buffer read control circuit 25 as a packet read control unit.
  • the receiving unit 26 of the packet reading device 1 receives packets that arrive one by one.
  • the reception unit 26 is connected to the reception buffer group 10, the reception buffer write control circuit 21, and the order buffer 22.
  • the packet received by the receiving unit 26 is input to the reception buffer group 10, and the packet is distributed and stored in any of the reception buffers 11, 12, and 13 according to a packet type that is a distribution unit.
  • the reception buffer 11 stores P packets.
  • the reception buffer 12 stores N packets.
  • the reception buffer 13 stores C packets.
  • a monitoring unit 16 is provided for monitoring the accumulation amount of the reception buffers 11 to 13 of the reception buffer group 10.
  • the monitoring unit 16 receives a packet write command output from the receive buffer write control circuit and a receive buffer read command output from the receive buffer read control circuit 25.
  • the monitoring unit 16 includes, for example, a counter (initial value “0”) prepared for each of a plurality of reception buffers (reception buffers 11 to 13) forming the reception buffer group 10.
  • the monitoring unit 16 specifies a receive buffer for which packet writing is designated by the write command, and sets the value of the counter corresponding to the receive buffer. Add one.
  • the receive buffer designated to read a packet by the receive buffer read command is specified, and 1 is subtracted from the value of the counter corresponding to the receive buffer.
  • the reception buffer write control circuit 21 and the order buffer 22 are input with a type identifier in a packet encoded by an encoder (not shown) included in the reception unit 26.
  • the type identifier is information indicating a packet type, and is a request for indicating the packet distribution unit stored in the plurality of reception buffers 11 to 13, that is, all packet types of the packets stored in the reception buffers 11 to 13.
  • the number of bits to be expressed In this embodiment, since there are three types of packet types, “P”, “N”, and “C”, the type identifier is expressed by 2 bits. Specifically, the bit value “01” is assigned to the P packet, the bit value “10” is assigned to the N packet, and “11” is assigned to the C packet. The bit value “00” is treated as “non” with the packet type not assigned.
  • a packet reception valid signal (Pkt_Rcv_Val) indicating packet reception “valid” at the reception unit 26 is input to the reception buffer write control circuit 21 and the order buffer 22.
  • the packet reception valid signal is used by the reception buffer write control circuit 21 and the order buffer 22 as a reception trigger.
  • the reception buffer write control circuit 21 refers to the content of the type identifier using the packet reception valid signal as a trigger and corresponds to the type identifier.
  • An instruction to write a packet to the reception buffer is given to the reception buffer group 10.
  • the reception buffer group 10 stores the packet input from the reception unit 26 in the reception buffer corresponding to the type identifier in response to a packet write command from the reception buffer write control circuit 21. In this way, the packet received by the receiving unit 26 is distributed to one of the reception buffers 11 to 13 according to the type identifier.
  • the order buffer 22 is a shifter type buffer having a plurality of stages (a plurality of stages).
  • the order buffer 22 includes an FF group 221 including a flip-flop (FF) as a storage area constituting a plurality of stages connected in series, a counter 222, a write / read control unit (Write / Read control unit). ) 223.
  • FF flip-flop
  • the FF group 221 includes a number of FFs equal to the maximum number of packets stored in the reception buffer group 10.
  • 48 flip-flops FF_01 to FF_48 which are equal to the maximum packet storage number 48 (3 types ⁇ 16 packets) of the reception buffer group 10, are connected in series.
  • FF_48 is the head and FF_01 is the tail.
  • a selector 2235 is connected to the input side of each FF, and one of the input terminals of the selector 2235 is connected to a signal line L2 through which the type identifier from the receiving unit 26 flows.
  • the other input terminal of the selector 2235 is connected to the output terminal of the next stage FF.
  • “non” indicating unassignment is input to the other input terminal of the selector 2235 provided on the input side of FF — 01 located at the last stage.
  • the type identifier (“P”, “N”, “C”) from the signal line L2 and the content held in the next stage FF (“P”, “C”) are input to the input terminal of each FF by the selector 2235.
  • the write / read control unit 223 controls the operation of each selector 2235 to store the valid packet type identifiers that have arrived at the packet reading device 1 in the FF group 221 in the order of arrival of packets (reception order). can do. Further, the write / read control unit 223 can erase the type identifier of the packet read from the reception buffer group 10 from the FF group 221 through the operation control of the selector 2235. Therefore, the FF group 221 can hold the type identifier of each packet stored in the reception buffer group 10 in the arrival order (reception order). Further, the write / read control unit 223 stores the type identifier of the packet stored in the reception buffer group 10 in the FF group 221 in a left-justified manner. The detailed configuration of the write / read control unit 223 will be described later.
  • FIG. 2 is a diagram showing a detailed configuration example of the order buffer 22 shown in FIG.
  • the counter 222 holds a counter value (initial value “00”) indicating the number of type identifiers stored in the FF group 221, that is, the number of packets held in the reception buffer group.
  • the counter value is used for designating the writing position of the type identifier for the FF group 221.
  • the counter 222 receives a packet reception valid signal (Pkt_Rcv_Val) indicating that a valid packet has been received by the reception unit 26 and a packet read start signal (Rd_Start) from the reception buffer read control circuit 25.
  • the packet reading start signal (Rd_Start) is a signal instructing the start of reading packets from the reception buffer group 10.
  • the counter 222 adds 1 to the counter value with the input of the packet reception valid signal (Pkt_Rcv_Val) as a trigger. On the other hand, the counter 222 subtracts 1 from the count value triggered by the input of the packet read start signal (Rd_Start). Therefore, the count value indicates the number of type identifiers stored in the FF group 221, that is, the number of packets held in the reception buffer group 10.
  • the write / read control unit 223 includes the packet reception valid signal (Pkt_Rcv_Val), the packet read start signal (Rd_Start), the counter value of the counter 222, and the clear line position signal (Clear_LINE) from the reception buffer read control circuit 25. Is entered.
  • the clear line position signal includes a value (“01” to “48”) that specifies the FF that holds the type identifier of the packet read from the reception buffer 10.
  • the packet reception valid signal flows through the signal line L1 connected to the reception unit 26.
  • the type identifier (Type_ID) from the receiving unit 26 flows through the signal line L2.
  • the packet read start signal (Rd_Start) from the reception buffer read control circuit 25 flows through the signal line L3.
  • the clear line position (Clear_LINE) from the reception buffer read control circuit 25 flows through the signal line L4.
  • the write / read control unit 223 has the same number of AND circuits 2233 and the number of stages of the FF group 221 as the selector 2231, the decoder 2232, and the number of stages of the FF group 221 (the number of FFs; 48 in the example of the first embodiment). And the same number of AND circuits 2234, subtracters 2236, shift control units 2237, and AND circuits 2238 as many as the number of stages in the FF group 221.
  • the signal line L1 through which the packet reception valid signal flows is connected to one input terminal of each AND circuit 2233.
  • the signal line L1 is connected to the counter 222, and the counter 222 adds 1 to the counter value held by the counter 222 when receiving the packet reception valid signal (Pkt_Rcv_Val).
  • the output terminal of the counter 222 is connected to the selector 2231 and the subtracter 2236.
  • the subtracter 2236 subtracts 1 from the counter value of the counter 222.
  • the subtracter 2236 is connected to the selector 2231.
  • the selector 2231 outputs one of the counter value from the counter 222 and the value obtained by subtracting 1 from the counter value (subtraction value) by the subtracter 2236 to the decoder 2232.
  • the selector 2231 selects the counter value from the counter 222 and inputs it to the decoder 2233 when there is no input of the packet read start signal (Rd_Start) flowing through the signal line L3.
  • Rd_Start packet read start signal
  • selector 2231 outputs the output from subtractor 2236 to decoder 2232 using the input packet read start signal as a selection condition. The operation of the selector 2231 will be described later.
  • the signal line L3 is connected to the counter 222, and the counter 222 subtracts 1 from the counter value held by the counter 222 when receiving the packet reading start signal (Rd_Start).
  • the decoder 2232 includes a plurality of output terminals connected to the other input terminal of each AND circuit 2233.
  • the decoder 2232 outputs an ON signal from an output terminal corresponding to the counter value input from the selector 2231 or a subtraction value of the counter value, and outputs an OFF signal from the remaining output terminals.
  • Each AND circuit 2233 is associated with FF_48 to FF_01 forming the FF group 221. For example, when the counter value “0” is input to the decoder, an ON signal is given only to the AND circuit 2233_48 corresponding to FF_48, and an OFF signal is given to the remaining AND circuits 2233.
  • Each AND circuit 2233 outputs an ON signal on condition that inputs to both input terminals of the AND circuit 2233 itself are turned ON.
  • the ON signal functions as a type identifier write enable signal (WriteEN_X (01 ⁇ X ⁇ 48)) for the FF corresponding to the AND circuit 2233.
  • the write enable signal becomes a selection condition for the type identifier (Type_ID) flowing through the signal line L2 for the selector 2235 provided on the input side of each FF forming the FF group 221.
  • Each selector 2235 provided on the input side of FF_48 to FF_02 is connected to the FF of the next stage through a signal line.
  • “non” (“00”) indicating unassignment is input to the selector 2235 provided on the input side of FF_01.
  • each selector 2235 selects one of the type identifier flowing through the signal line L2 and the content held in the next stage FF (however, the selector 2235 corresponding to FF_01 is “non”) and outputs it to the first FF. To do.
  • the selector 2235 is configured to receive the output signal of the FF located in the subsequent stage.
  • each selector 2235 to select the content held in the next stage FF or “non” is realized by the circuit configuration described below. That is, the signal line L3 through which the packet read start signal (Rd_Start) flows is connected to one input terminal of each AND circuit 2238.
  • the clear line position (Clear_LINE) flowing through the signal line L4 is input to the shift control unit 2237.
  • the shift control unit 2237 is connected to the other input terminal of each AND circuit 2238 and controls the output of an ON signal to each AND circuit 2238 according to the clear line position (“01” to “48”).
  • the plurality of AND circuits 2238 are composed of the same number of AND circuits as the number of stages of FFs forming the FF group 221, and are associated with each FF.
  • the shift control unit 2237 inputs an on signal to the AND circuit 2238 corresponding to the FF at the clear line position and the FF subsequent to the clear line position according to the clear line position, If there is an AND circuit 2238 corresponding to the FF before the line, the circuit operates so as to input an OFF signal to the AND circuit 2238.
  • the shift control unit 2237 when the line clear position is “48”, the shift control unit 2237 outputs an ON signal to all the AND circuits 2238.
  • the shift control unit 2237 inputs an OFF signal to the AND circuit 2238 (2238_48) corresponding to the FF_48 located before the line clear position, and inputs to the remaining AND circuits 2238. Inputs an ON signal.
  • the shift control unit 2237 inputs an ON signal to the AND circuit 2238 corresponding to FF_01, and inputs an OFF signal to the remaining AND circuit 2238. .
  • Each AND circuit 2238 outputs an ON signal when a packet reading start signal (Rd_Start) is input and an ON signal is input from the shift control unit 2237.
  • the ON signal of the AND circuit 2238 functions as a shift command signal (Shift_X (01 ⁇ X ⁇ 48)).
  • each AND circuit 2238 is connected to one input terminal of a plurality of AND circuits 2234 associated with each FF forming the FF group 221.
  • An inverted signal of the write enable signal (WriteEN_X) output from the AND circuit 2233 corresponding to the same FF is input to the other input terminal of each AND circuit 2234. Therefore, each AND circuit 2234 outputs an ON signal when the write enable signal is OFF and the shift command signal is ON.
  • the ON signal output from the AND circuit 2234 is the content held in the next stage FF or the selection condition of “non” for the selector 2235 located on the input side of the FF corresponding to the AND circuit 2234.
  • the write enable signal is output from the corresponding AND circuit 2233, while the type identifier flowing through the signal line L2 is written to the FF when the AND circuit 2234 is off.
  • the AND circuit 2233 corresponding to the FF is off (no write enable signal) and the corresponding AND circuit 2234 is on, the contents held in the next stage FF or “non” is written to the FF. .
  • the write / read control unit 223 described above operates as follows. Immediately after the initial reset of the order buffer 22, all the FF_48 to FF_01 of the FF group 221 are in an initialized state in which “non” is held. In the initialized state, the counter value is set to the initial value “00”. At this time, an ON signal is input from the decoder 2232 to the AND circuit 2233_48 corresponding to FF_48 in accordance with the counter value “00”, and an OFF signal is input to the remaining AND circuits 2233.
  • the AND circuit 2233_48 is turned on by the packet reception valid signal flowing through the signal line L1, and the write enable signal (WriteEN_48) is output from the AND circuit 2233_48.
  • the AND circuit 2234_48 corresponding to FF_48 is off. Therefore, the selector 2235 corresponding to FF_48 selects the type identifier flowing through the signal line L2 and inputs it to FF_48. Thereby, FF_48 holds the type identifier.
  • the counter 222 adds 1 to the counter value “00” in response to the input of the packet reception valid signal. Therefore, the counter value is “01”, and the decoder 2232 enters an ON signal only to the AND circuit 2233 (2233_47) corresponding to the FF_47, and inputs an OFF signal to the remaining AND circuits 2233.
  • the packet reception valid signal and the type identifier from the receiving unit 26 are input to the signal line L1 and the signal line L2, respectively.
  • the AND circuit 2233_47 is turned on by the packet reception valid signal, and the write enable signal (WriteEN_47) is output.
  • the AND circuit 2234_47 corresponding to FF_47 is off. Therefore, the selector 2235 corresponding to FF_47 selects the type identifier flowing through the signal line L2 and inputs it to FF_47.
  • the counter 222 adds 1 to the counter value “01” in response to the input of the packet reception valid signal. Therefore, the counter value is “02”.
  • a packet read start signal (Rd_Start) of the packet having the type identifier held in FF_48 from the reception buffer group 10 is input to the signal line L3 from the reception buffer read control circuit 25, and subsequently, the contents held in the FF_48 are stored. It is assumed that the line clear position “48” for erasing is input from the reception buffer read control circuit 25 to the signal line L3.
  • the packet read start signal and the line clear position of the packet having the type identifier held in FF_48 are input to the signal lines L3 and L4, while the packet reception valid signal and the type identifier are input to the signal lines L1 and L2. Assuming that it was entered.
  • the content held in FF_48 is erased by the above-mentioned left-justified shift of the content held in FF_47 to FF_01.
  • the counter value of the counter 222 is “01”, but when a type identifier is written at a position corresponding to the counter value “01”, the type identifier is stored in FF_47 even though FF_48 is free. Will be written. Therefore, while the packet read start signal is being input, the selector 2231 selects the subtraction value from the subtracter 2236, that is, the subtraction value “00” obtained by subtracting 1 from the counter value “01”, and sends it to the decoder 2232. input.
  • a type identifier write enable signal (WriteEN_48) for FF_48 is generated, and the type identifier is written to FF_48.
  • the counter value of the counter 222 is decremented by 1 by the packet read start signal (“01” ⁇ “00”), but is incremented by 1 by the packet reception valid signal (“00” ⁇ “01”). .
  • the plurality of type identifiers are stored in the FF group 221 in the order of arrival of the packets to the packet reading device 1, so that the FF group 221 has the plurality of packets stored in the reception buffer group 10.
  • An identifier string in which corresponding type identifiers are arranged in the order of arrival is held. That is, the type identifier corresponding to each received packet is held in the order of the reception time from the beginning to the end of the FF group 221.
  • an identifier located at the head of the FF group 221 indicates a packet having an older arrival order.
  • the write / read control unit 223 stores the type identifier in the FF group 221 with the leading end. That is, the writing / reading control unit 223 refers to the counter value from the counter 222 when writing the type identifier, and sets the type identifier transferred from the receiving unit 26 to a position corresponding to the counter value or the subtraction value. Write.
  • a plurality of type identifiers corresponding to the received packet are successively stored in subsequent FF groups starting with FF_48.
  • the identifier string is stored in the FF group 221 with the leading end, so that the stage position of the FF holding the type identifier indicates the arrival order of the packets.
  • the write / read control unit 223 When a packet is read from the reception buffer group 10, the write / read control unit 223 receives the packet read start signal and the clear line position from the reception buffer read control circuit 25 and reads from the reception buffer group 10.
  • the type identifier corresponding to the issued packet is erased from the FF holding the type identifier, and the type identifier held in each FF immediately after the FF from which the virtual channel identifier is erased is 1 Shift to the top one by one. In this way, when erasing the type identifier from the FF, the write / read control unit 223 writes the type identifier so that the content held in the subsequent FF is shifted and the leading justified state is maintained. Take control.
  • the head position detection circuit 23 includes a head P position detection circuit 231, a head N position detection circuit 232, and a head C position detection circuit 233.
  • a decoder 224 that decodes a type identifier held by each FF is connected to an output terminal of each FF included in the FF group 221.
  • the decoder 224 has three output lines (P line, N line, and C line) corresponding to P, N, and C.
  • Each P line (P01 line to P48 line) is connected to the leading P position detection circuit 231, and each N line (N01 line to N48 line) is connected to the leading N position detection circuit 232, and each C line (C01 line). (-C48 line) is connected to the leading C position detection circuit 233.
  • the decoder 224 decodes the content held in the corresponding FF, and if the decoding result is “P”, outputs an ON signal only to the P line, and outputs an OFF signal to the remaining N and C lines. If the decoding result is “N”, the decoder 224 outputs an ON signal only to the N line and outputs an OFF signal to the remaining P and C lines. If the decoding result is “C”, the decoder 224 outputs an ON signal only to the C line and outputs an OFF signal to the remaining P and N lines. If the content held in the FF is “non”, the decoder 224 outputs an off signal to all of the P line, the N line, and the C line.
  • the decoder 224 connected to the FF_48 has a P line (P48 line), an N line (N48 line), and a C line (C48 line) corresponding to the FF_48.
  • the P48 line is connected to the leading P position detection circuit 231
  • the N48 line is connected to the leading N position detection circuit 232
  • the C48 line is connected to the leading C position detection circuit 233.
  • the decoder 224 connected to the FF_48 sets the P48 line to ON (outputs an ON signal) and sets the remaining N48 line and C48 line to OFF. Yes (outputs an off signal).
  • the decoder 224 sets the N48 line to on and turns off the P48 line and the C48 line.
  • the decoder 224 sets the C48 line to ON, and turns off the P48 line and the N48 line.
  • Such an operation is also performed in the decoder 224 connected to the other FF_47 to 01. However, when the content held in the FF is “non”, the decoder 224 turns off all output lines.
  • FIG. 3 shows a configuration example of the head position detection circuit 23.
  • a priority encoder can be applied as the head P position detection circuit 231, the head N position detection circuit 232, and the head C position detection circuit 233. Since the head P position detection circuit 231, the head N position detection circuit 232, and the head C position detection circuit 233 have substantially the same configuration, the head position P position detection circuit 231 will be described as an example.
  • 2311_01 in FIG. 3, only 2311_47 to 2311_45 are illustrated
  • a signal detection circuit 2312 in FIG. 3, only 2311_47 to 2311_45 are illustrated
  • AND circuit 2311_47 to 2311_01 are described without distinction, they are referred to as an AND circuit 2311.
  • the P48 line is directly connected to the signal detection circuit 2312.
  • the remaining P47 to P01 lines are connected to the input terminals of the corresponding AND circuits 2311_47 to 2311_01.
  • the on / off signal flowing through each P line is input to the inverting input terminal of each AND circuit 2231 corresponding to a line number smaller than its own line number.
  • the ON / OFF signal flowing through the P48 line is input to the inverting input terminals of the AND circuits 2311_47 to 2311_01 corresponding to the P47 to P01 lines, respectively.
  • the on / off signal flowing through the P47 line is connected to the inverting input terminals of the AND circuits 2311_46 to 2311_01 corresponding to the P46 to P01 lines, respectively.
  • each AND circuit 2311 has one or more inverting input terminals for receiving an inverted signal of the on / off signal from each P line having a line number larger than the corresponding P line number. .
  • each AND circuit 2311 outputs an ON signal only when an ON signal is input from the corresponding P line and an OFF signal is input to all the inverting input terminals of the AND circuit 2311. In other words, each AND circuit 2311 is turned on only when the FF corresponding to the AND circuit 2311 is the first FF holding the type identifier “P”.
  • the P48 line is connected to the signal detection circuit.
  • the output terminals of the AND circuits 2311_47 to 2311_01 are connected to the signal detection circuit 2312 through signal lines.
  • the P48 line and a plurality of signal lines respectively connecting the AND circuits 2311_47 to 2311_01 and the signal detection circuit are referred to as “input lines 48 to 01 (IL48 to 01)” for the sake of explanation.
  • the signal detection circuit 2312 can recognize ON / OFF (0/1) of the input lines IL48 to 01 as a 48-bit bit string in which the input lines IL48 to 01 are arranged in a large number order. According to the circuit configuration of the AND circuits 2311_47 to 2311_01 described above, only one of the input lines IL48 to 01 is turned on, and the remaining input lines are turned off. Therefore, the signal detection circuit 2312 detects the position of the bit that is turned on (“1”) from the 48-bit bit string with the input line IL 48 as the head, and the detected position is the type identifier in the FF group 221. “P” is output as the P line number (P_LINE_NUM) corresponding to the FF held at the head.
  • the leading N position detection circuit 232 has the same configuration as the leading P position detection circuit 231 except that the P line in the leading P position detection circuit 231 is an N line.
  • AND circuits 2321_47 to 2321_01 corresponding to AND circuits 2311_47 to 2311_01 and a signal detection circuit 2322 corresponding to the signal detection circuit 2312 are provided.
  • the signal detection circuit 2322 performs the same processing as that of the signal detection circuit 2312, and outputs an N line number (N_LINE_NUM) corresponding to the FF that holds the type identifier “N” on the headmost side in the FF group 221.
  • the head C position detection circuit 233 has the same configuration as the head P position detection circuit 231 except that the P line in the head P position detection circuit 231 is a C line. That is, AND circuits 2331_47 to 2331_01 corresponding to AND circuits 2311_47 to 2311_01 and a signal detection circuit 2332 corresponding to the signal detection circuit 2312 are provided.
  • the signal detection circuit 2332 performs the same processing as the signal detection circuit 2312, and outputs a C line number (C_LINE_NUM) corresponding to the FF that holds the type identifier “C” on the head side in the FF group 221.
  • each of the head P position detection circuit 231, the head N position detection circuit 232, and the head C position detection circuit 233 has the number of the first output line among the output lines whose outputs are on, that is, the first head.
  • the FF stage position is detected as the head position of the P packet, N packet, and C packet.
  • FIG. 4 shows an example of the head position detection operation of each identifier.
  • a plurality of type identifiers are held in order of “C”, “N”, “N”, “P”, “P”, “C” from the top.
  • the head P position detection circuit 231 detects the P line number “45” corresponding to the head FF 48 that holds the type identifier “P”.
  • the head N position detection circuit 232 detects the N line number “47” corresponding to the head FF 47 holding the type identifier “N”
  • the head C position detection circuit 233 detects the type identifier “C”.
  • the C line number “48” corresponding to the first FF 48 held is detected.
  • the head position detection circuit 23 detects the position in the FF group 221 of the packet with the oldest arrival time, that is, the head position of the P packet, N packet, and C packet, for the packet types of P, N, and C, respectively. Is done.
  • the head P position detection circuit 231 outputs a P_LINE_NUM signal indicating the P line number indicating the head position of the virtual channel identifier “P”.
  • the head N position detection circuit 232 outputs an N_LINE_NUM signal indicating the N line number indicating the head position of the virtual channel identifier “N”.
  • the head C position detection circuit 231 outputs a C_LINE_NUM signal indicating a C line number indicating the head position of the virtual channel identifier “C”.
  • Each detection unit 231, 232, 233 outputs “0” when there is no line to be output, that is, when there is no packet to be read.
  • the arbitration circuit 24 receives an output signal from the head position detection circuit 23, that is, a P_LINE_NUM signal, an N_LINE_NUM signal, and a C_LINE_NUM signal.
  • each of P, N, and C is determined by output signals (P_LINE_NUM signal, N_LINE_NUM signal, and C_LINE_NUM signal) received from the leading P position detecting circuit 231, the leading N position detecting circuit 232, and the leading C position detecting circuit 233, respectively. It is possible to know the presence / absence of a packet and the arrival order between P, N, and C packet types.
  • the arbitration circuit 24 further performs an arbitration process that determines a packet to be read from the reception buffer group 10, that is, a reception buffer to be subjected to packet reading, in consideration of a forward ordering rule between packet types.
  • the arbitration circuit 24 recognizes the arrival order of P, C, and N, and according to the forward ordering rule, the packet type of the packet to be read (packet read should be performed) with the priority of P, C, and N Receive buffer).
  • a forward ordering rule used in the arbitration process a rule serving as another condition may be used in addition to the priority order described above or instead of the priority order.
  • the arbitration rule used by the arbitration circuit 24 can be set as appropriate using one or more conditions.
  • the arbitration circuit 24 determines the reception buffer from which the packet is read, the arbitration circuit 24 outputs a packet read request (REQ) and a signal (Type) indicating the packet type to be read to the reception buffer read control circuit 25.
  • REQ packet read request
  • Type signal
  • the output signals (P_LINE_NUM signal, N_LINE_NUM signal, and C_LINE_NUM signal) output from the leading P position detection circuit 231, the leading N position detection circuit 232, and the leading C position detection circuit 233 are not only the arbitration circuit 24, It is also input to the selector 27 whose output is controlled by the arbitration circuit 24.
  • the arbitration circuit 24 selects the output signal (P_LINE_NUM signal, N_LINE_NUM signal, or C_LINE_NUM signal) corresponding to the determined reception buffer to the selector 27. Give the control signal to instruct.
  • the selector 27 selects an output signal according to the control signal, and outputs the selected output signal to the reception buffer read control circuit 25 as a line number (storage position: ODR_Rd_LINE) of the type identifier corresponding to the packet to be read.
  • the line number (ODR_Rd_LINE) corresponding to the FF storing the type identifier of the packet determined to be read is input to the reception buffer read control circuit 25.
  • the reception buffer read control circuit 25 controls reception buffer read start timing. Upon receiving a packet read request (REQ) from the arbitration circuit 24, the reception buffer read control circuit 25 changes the packet type designated by the arbitration circuit 24, which is indicated by a signal (Type) indicating the packet type output from the arbitration circuit 24. A corresponding reception buffer (any of 11 to 13) is specified, and a reception buffer read command for the specified reception buffer is issued.
  • REQ packet read request
  • Type signal
  • the receive buffer read command output from the receive buffer read control circuit 25 is input to the read circuit (selector 11A) of the receive buffer group 10, and a packet from the receive buffer corresponding to the receive buffer read command is selected by the selector 11A and transmitted. Output to the destination.
  • the reception buffer read control circuit 25 outputs a packet read start signal (Rd_Start) together with the output of the read command. As described above, the packet read start signal (Rd_Start) is input to the counter 222 and the write / read control unit 223 of the order buffer 22 through the signal line L3. Further, the reception buffer read control circuit 25 outputs a clear line position (Clear_LINE) of the held contents of the FF holding the type identifier corresponding to the read target packet together with the packet read start signal (Rd_Start). The clear line position is input to the write / read control unit 223 of the order buffer 22 through the signal line L4.
  • the write / read control unit 223 performs the operation at the time of inputting the packet read start signal and the clear line position as described above, and the type identifier held in each FF subsequent to the FF corresponding to the clear line position.
  • the type identifier held in the FF at the clear line position is deleted by shifting “non” one by one to the head side.
  • “non” is written in the last FF_01.
  • FIG. 5 shows an example of the clear operation of the order buffer (FF group 221).
  • the type identifiers are stored as C, N, P, N, P, and C from the first stage until 48 stages (FF_48) to 43 stages (FF_43) of the FF group 221 before reading the packet ( FF_01 to FF_42 are assumed to be “non”).
  • the packet read start signal (Rd_Start) from the reception buffer read control circuit 25 and the clear line position of FF_46 (P46 line) are input to the write / read control unit 223.
  • the write / read control unit 223 holds the contents “N”, “P”, “C”, and FF_42 to FF_45 to FF_43 according to the packet read start signal and the clear line position.
  • writing / reading control unit 2223 As described in the operation of the writing / reading control unit 223, when the type identifier clearing operation for the FF group 221 and the type identifier writing for the FF group 221 are performed simultaneously, writing / reading is performed.
  • the control unit 223 first performs the shift operation on the FF group 221 to erase the clear identifier of the packet read from the reception buffer, and then sets the clear identifier newly written in the FF group 221 as “clear operation is performed. It is held in the FF at the writing position corresponding to “position +1 when not present”.
  • the type identifier in each packet stored in the reception buffer group 10 is stored in the physical stage position in the FF group 221 of the order buffer 22 in the order of arrival of the packet. That is, an identifier string in which type identifiers that are identifiers of packet distribution units are arranged in the order of arrival of packets is stored in the order buffer 221.
  • the arbitration circuit 24 determines the arrival order of the P, N, C packets.
  • the packet to be read next can be determined in consideration of the forward ordering rule and the BUSY state of the transmission destination.
  • Embodiment 2 will be described. Since the second embodiment has the same configuration as that of the packet reading device 1 described in the first embodiment, differences will be mainly described, common points are denoted by the same reference numerals, and description thereof will be omitted.
  • n 1, 2, 3,...), That is, (2, 4, 8, 16).
  • the number of bits of the identifier must be “number of distribution units + 1 bit”. For this reason, an embodiment in which the same packet read-out order control as in the first embodiment can be performed without using “non” indicating unassignment will be described as a second embodiment.
  • FIG. 6 shows a configuration example of the data block reading device (packet reading device 1A) according to the second embodiment.
  • the packet reading device 1A includes a reception buffer group 10A corresponding to the reception buffer group 10 and the packet reading control device 20 in the packet reading device 1 described in the first embodiment, and a packet reading control device 20A.
  • Embodiment 2 is different from Embodiment 1 in the following points. That is, in the first embodiment, the number of packet types is “P”, “N”, and “C”. In the fourth embodiment, the packet type “X (eXtendedeType)” is added, There are four packet types.
  • the reception buffer group 10A includes a reception buffer 14 for holding a type “X” packet (referred to as an X packet) in addition to the reception buffers 11 to 13 for holding P packets, N packets, and C packets, respectively. Is further provided.
  • Each reception buffer 11 to 14 stores a maximum of 12 packets.
  • the receiving unit 26 encodes an identifier included in an incoming packet into a 2-bit type identifier. At this time, each of the types “P”, “N”, “C”, and “X” is encoded into 2 bits “00”, “01”, “10”, and “11” indicating the type identifier, respectively.
  • the encoded type identifier and the packet reception valid signal are input to the reception buffer write control circuit 21 as in the first embodiment.
  • the reception buffer write control circuit 21 holds the packet transmitted from the reception unit 26 in any of the reception buffers 11 to 14 according to the type identifier.
  • the type identifier and the packet reception valid signal are input to the order buffer 22A corresponding to the order buffer 22 of the first embodiment via the signal lines L1 and L2, as in the first embodiment.
  • the order buffer 22A is different from the order buffer 22 of the first embodiment in the following points.
  • the generation source of the unassigned identifier “non” is omitted, and “non” is not input to the last FF_01 in the FF group 221. That is, when the type identifier write enable signal is issued from the write / read control unit 223 to FF_01, the type identifier flowing through the signal line L2 is written into FF_01.
  • the writing / reading control unit 223 has substantially the same configuration (FIG. 2) as that of the first embodiment.
  • each of the decoders 224 connected to the output terminals of the FF_48 to FF01 has four output terminals corresponding to the type identifiers “P”, “N”, “C”, and “X”, unlike the first embodiment. is doing.
  • the four output terminals are connected to one input terminal in the four AND circuits (AND circuit group 226) provided in the subsequent stage of the decoder 224.
  • the decoder 224 decodes the type identifier held in the corresponding FF. In accordance with the decoding result, the decoder 224 outputs an on signal only to the output terminal corresponding to the type identifier held in the FF, and outputs an off signal to the remaining output terminals.
  • the AND circuit group 226 receives an ON signal when the decode result is “P” (denoted as an AND circuit 226_1) and an ON signal when the decode result is “N”.
  • An AND circuit (denoted as AND circuit 226_2), an AND circuit (denoted as AND circuit 226_3) that receives an ON signal when the decode result is “C”, and an ON signal that is input when the decode result is “X” AND circuit (denoted as AND circuit 226_4).
  • the effective range selection unit 225 to which the counter value of the counter 222 is input is added to the order buffer 22A (details of the effective range selection unit 225 will be described later).
  • the output terminal of the effective range selection unit 225 is connected to the other output terminal of each of the AND circuit groups 226_1 to 226_4 provided in the subsequent stage of each decoder.
  • the output terminals of the AND circuits 226_1 to 226_3 in each AND circuit group 226 are connected to the start P position detection circuit 231 of the start position detection circuit 23A and the start N position via the P line, N line, and C line described in the first embodiment.
  • the detection circuit 232 and the leading C position detection circuit 233 are connected respectively.
  • each AND circuit 226_4 is connected to a head X position detection circuit 234 provided in the head position detection circuit 23A via a signal line.
  • a plurality of signal lines connecting the head X position detection circuit 234 and each AND circuit 226_4 are used as X lines (X48 to X01 lines) for transmitting the decoding result “X” by each decoder 224 to the head X position detection circuit 234. Function.
  • the head X position detection circuit 234 is a circuit for detecting the head storage position of the type identifier “X” in the FF group 221 and has substantially the same configuration as the head P position detection circuit 231 shown in FIG. . That is, although not shown, the head P position detection circuit 231 shown in FIG. 3 includes a plurality of AND circuits 2311 and signal detection circuits 2312 that are similar to the AND circuit groups and signal detection circuits. The connection state between the signal detection circuit and the X48 to X01 lines is the same as that of the leading P position detection circuit.
  • the signal detection circuit (not shown) of the head X position detection circuit 234 can output an X_LINE_NUM signal indicating the number of FF stages holding the type identifier “X” on the headmost side in the FF group 221.
  • the X_LINE_NUM signal is input to the arbitration circuit 24 and the selector 27 in the same manner as the P_LINE_NUM signal, the N_LINE_NUM signal, and the C_LINE_NUM signal.
  • the arbitration circuit 24 determines a reception buffer that performs packet reading according to the same method as in the first embodiment, that is, according to the forward ordering rule. For example, the arbitration circuit 24 can determine a reception buffer to be read out of a packet according to a forward ordering rule whose priority is P, C, N, and X, and can output a control signal to the selector 27.
  • the effective range selection unit 225 defines an effective stage of the FF group 221. That is, the effective range selection unit 225 has a plurality of control lines CL (CL48 to CL01) (48 in the example of the second embodiment) connected to the AND circuits 226_1 to 226_4 of each AND circuit group 226. .
  • the effective range selection unit 225 outputs an on signal to an output line corresponding to the counter value input from the counter 222, and outputs an off signal to the remaining output lines.
  • the effective range selection unit 225 outputs an ON signal only to the control line CL corresponding to the FF holding the type identifier, which is obtained from the counter value, and turns off the remaining control lines CL.
  • the control line CL corresponding to the FF not holding the type identifier is turned off, the output of the AND circuit group 226 in which the control line CL is turned off is turned off. Accordingly, the ON signal from the decoder 224 is input to the head position detection circuit 23A only from the AND circuit group 226 corresponding to the FF in which the control line CL is ON, that is, holds the type identifier.
  • the same packet reading control as that in the packet reading device 1 described in the first embodiment is executed without including “non” in the identifier stored in the order buffer 22A. can do.
  • the number of distribution units the number of packet types in the example of Embodiment 2
  • the identifier can be set to 2 bits wide.
  • the distribution unit number packet unit number
  • it can be set to 1 bit width (0 or 1). That is, the bit width of the identifier can be set to the minimum necessary bit width with respect to the number of distribution units.
  • each decoder 224 is configured to output an on signal only to the corresponding output line and turn off the rest according to whether the decoding result of the content held in the FF is “0” or “1”. Is given.
  • the configuration of the second embodiment can also be applied when the number of distribution units is 2 to the nth power different from 2 or 4 as described above.
  • Embodiment 3 will be described. Since the third embodiment has the same configuration as that of the packet reading device 1 described in the first embodiment, differences will be mainly described, and common points are denoted by the same reference numerals and description thereof is omitted.
  • FIG. 7 is a diagram illustrating a configuration example of a data block reading device (packet reading device 1B) according to the third embodiment.
  • the reception buffer group 10B includes reception buffers 11, 12, and 13 that hold the P packet, the N packet, and the C packet described in the first embodiment.
  • the reception buffer group 10B The total number of packets that can be stored in 10B is equal to that in the first embodiment (48), but the maximum number of packets stored in each of the reception buffers 11 to 13 is different from that in the first embodiment.
  • the maximum storage number of the reception buffer 11 is 15, the maximum storage number of the reception buffer 12 is 16, the maximum storage number of the reception buffer 13 is 17, and each of the reception buffers 11 to 13 is the maximum.
  • a fixed-length or variable-length packet can be stored up to the storage number.
  • the decoder 224 provided on the output side of the FF group 221 is provided only in the FFs of the stage belonging to the inspection range determined according to the inspection range determination method described later.
  • the number of stages of FFs in which the decoder 224 is provided is reduced by the following inspection range determination method.
  • determining the inspection range when the number of packet types (number of distribution units) is n and the maximum number of storage of each reception buffer corresponding to each packet type is S1 ... Sn (n is an integer greater than 0), The maximum storage number of the reception buffer with the smallest maximum storage number is regarded as “1”. A number obtained by adding the sum of the maximum storage numbers of the remaining reception buffers to the maximum storage number “1” is calculated. The calculated number is used as the number of stages in the inspection range for inspecting the start position of each packet type.
  • FIG. 8 shows a method for determining the inspection range of the FF group 221 in the third embodiment.
  • the maximum number of packets stored in the reception buffers 11, 12, and 13 is 15, 16, and 17, respectively, and the total number of packets that can be stored in the reception buffer group 10B.
  • Is 48 (15 + 16 + 17 48) which is the sum of the maximum storage numbers of the reception buffers 11-13. Therefore, the number of FFs (number of order buffer stages) that the FF group 221 should have is 48 [stages] equal to the total number of packets that can be stored in the reception buffer group 10B.
  • the number of stages that is a range (inspection range) for inspecting the head position of each packet type is determined as follows. That is, the smallest maximum storage number among the maximum storage numbers of the reception buffers 11 to 13 is the maximum storage number “15” [pieces] of the reception buffer 11. A total value of the maximum storage numbers of all the reception buffers 11 to 13 when the maximum storage number “15” is regarded as “1” is obtained. That is, the maximum storage number of the reception buffer 11 regarded as “1” and the maximum storage numbers “16” and “17” of the remaining reception buffers 12 and 13 are added, and an addition result “34” is obtained. This addition result “34” is determined as the number of stages to be in the inspection range. The reason is as follows.
  • the first stage (FF_48) to 33 stage (FF_16) are used. Will be. In this case, the packet transmission side refrains from transmitting C and N packets. Therefore, the next packet that is valid for reception is always a P packet. Therefore, the identifier “P” of the P packet received at the head is always stored between the head stage (FF_48) and the 34th stage (FF_15).
  • the decoder 224 is provided only on the output side of FF_48 to FF_15 corresponding to the inspection range (from the top to 34 stages).
  • the number of stages (inspection range) that needs to be inspected is the smallest. .
  • the maximum storage number of all the reception buffers 11 to 13 is 16 [pieces]
  • all when the maximum storage number of any one of the reception buffers is regarded as 1.
  • the total value of the maximum number of storages in the receive buffer is obtained.
  • 1 + 16 + 16 33, and the inspection range becomes smaller than the example of the third embodiment.
  • the decoder 224 that decodes the content held in the FF is provided only in the FF_48 to FF_15 belonging to the inspection range.
  • the number of decoders 224 and the number of lines between each decoder 224 and the head position detection circuit 23 can be reduced. Therefore, the circuit amount of the packet read control device can be reduced.
  • Embodiments 1 to 3 can be combined as appropriate. Further, in the configuration described in the first to third embodiments, with respect to packet (data block) reading from a plurality of reception buffers, packet reading is performed in consideration of the arrival order of packets (data blocks) and the priority order between the reception buffers.
  • the present invention can be applied to a device (data block reading device).
  • the data block is a packet
  • the format of the data block is not limited to “packet”, and “frame”, “datagram”, “cell”, “file”, “ Any unit of various data blocks called “pages”, etc., to which an identifier applicable as a distribution unit is assigned may be used.
  • the distribution unit may be an identifier indicating the transfer destination of the same type of data block.
  • the distribution unit may be an identifier (channel type) of the transfer destination of the data block.
  • the channel may be a real channel or a virtual channel.
  • the distribution unit may be an address indicating the destination of the data block.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

 データブロック読出制御装置は、振分単位に従って複数の受信バッファに振り分けて格納される複数のデータブロックのそれぞれに対応する振分単位を示す複数の識別子が当該複数のデータブロックの到来順で並べられた識別子列を格納する順序バッファと、識別子列における各振分単位の識別子の先頭位置を検出する検出部と、少なくとも、各振分単位の識別子の先頭位置及びデータブロック読出ルールとに基づいて、複数の受信バッファの一つから読み出すべきパケットを決定する決定部と、決定されたパケットを複数の受信バッファの一つから読み出す読出部とを含む。識別子は複数の受信バッファに格納されるデータブロックの振分単位の全てを表すために要求される最小数のビットで表現される。

Description

データブロック読出制御装置
 本発明は、データブロック読出制御装置に関する。
 従来、到来した複数の種別のパケットを種別毎に複数の受信バッファに格納し、予め定められた優先制御内容に従って、パケットを複数の受信バッファから読み出す技術がある。
 例えば、パケットベースのトランザクションでは、トランザクションのストールによってデッドロックが生じないように、各パケットに付与された優先度を元にしたパケットフォワードの順序付けルールが適用される。このルールに従って決定された順序でパケットがフォワードされる場合には、例えば、パケットのタイプ毎に設けられた複数の受信バッファと、パケット到来順序を保持/参照する機構とが用意される。
パケット到来順序は、パケット到来順でパケットのフォワードを行うために用意される。一方、複数の受信バッファは、優先度に従ったパケット間追い越しフォワードのために用意される。パケット間追い越しフォワードとは、優先度に従って、或るタイプのパケットを、当該パケットより先に到来した他のタイプのパケットよりも先にフォワードすることをいう。
 図9は、従来技術の一つであるパケット読出制御装置を示す。図9に示すパケット読出制御装置は、パケットが到来した順序情報を保持及び参照するために、パケット毎に到来順を示す順序情報としてのタグを生成し、記録していた。
 具体的には、図9に示すパケット読出制御装置では、受信パケットが到来すると、受信パケット内のタイプ識別子に従って、パケットのタイプ(ここでは、“A”,“B”及び“C”)毎に用意された複数の受信バッファ(FIFO: First In First Out)の一つに受信パケットが格納される。
 一方、受信パケットが到来すると、受信トリガが発生するとともに、受信パケット中のタイプ識別子がタグ生成回路に入力される。タグ生成回路では、受信トリガを契機に、受信順序タグ生成カウンタが、タイプ識別子に対応する受信順序タグを生成する。受信順序タグは、タイプ識別子に従って、パケットタイプ毎に用意された複数のタグバッファ(FIFO)の一つに格納される。
 調停回路は、各タグバッファの先頭に格納されているタグ値を読み出し、各タグ値が示す受信順序を参照し、各タグ値に対応するパケット、すなわち各受信バッファの先頭に格納されているパケットの受信順(到来順)を確認する。一方、調停回路は、予め定められた優先制御内容、すなわちパケットタイプ間における順序付けルール(読み出しルール)に従って、読み出しを行うパケットを決定し、読出指示が受信バッファに与えられる。これによって、パケットが受信バッファから読み出され、フォワードされる。
特表2005-518578号公報 特開平2-117241号公報 特開平5-227210号公報 特開平11-298521号公報
 しかしながら、上述した従来技術には以下の問題があった。すなわち、パケット毎に順序を示すタグを生成し、タグバッファに記録すると、タグバッファ自体の回路量が大きくなる。
例えば、3つの受信バッファがあり、各受信バッファは16個のパケットを格納できると仮定する。一方、各受信バッファが最大格納数である16個のパケットを格納している場合において、パケット毎に生成される各タグ値が各パケットの到来順序を示すには、タグ値が各受信バッファの最大格納数の和、すなわち48(16×3=48)通りの値を表現することが要求される。この場合、48通りのタグ値を表現する最小のビット数は6ビットとなる。
 従って、タグバッファに要求される最小容量は、288ビットとなる(6(タグ値)×16(パケット最大格納数)×3(受信バッファ数)=288[bit])。
 本発明の態様の一つの目的は、データブロックの到来順序情報の記録に要求される容量を削減可能なデータブロック読出制御装置を提供することである。
 本発明の態様の一つは、データブロック読出制御装置である。パケット読出制御装置は、振分単位毎に用意された複数の受信バッファに振り分けて格納される複数のデータブロックのそれぞれに対応する振分単位の識別子が当該複数のデータブロックの到来順で並べられた識別子列を格納する順序バッファと、
 前記識別子列における各振分単位の識別子の先頭位置を検出する検出部と、
少なくとも、前記各識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定する決定部と、
前記決定部で決定されたデータブロックを前記複数の受信バッファの一つから読み出す読出部とを含み、
前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックに対応する振分単位の全てを表すために要求される最小数のビットで表現される。
 本発明の態様の一つによれば、データブロックの到来順序情報の記録に要求される容量を削減することができる。
実施形態1におけるデータブロック読出制御装置の構成例を示す図である。 図1に示したオーダーバッファの詳細構成例を示す図である。 図1に示した先頭位置検出回路の詳細構成例を示す図である。 各識別子の先頭位置検出動作の例を示す。 オーダーバッファ(FF群)のクリア動作の例を示す。 実施形態2におけるデータブロック読出制御装置の構成例を示す図である。 実施形態3におけるデータブロック読出制御装置の構成例を示す図である。 実施形態3における各パケットタイプの先頭位置の検査範囲を決定する方法の説明図である。 従来技術の説明図である。
 以下、図面を参照して本発明の実施形態について説明する。以下の実施形態における構成は例示であり、本発明は実施の形態の構成に限定されない。
 <実施形態1>
 図1は、実施形態1におけるデータブロック読出装置の構成例を示す図である。実施形態1では、データブロック読出装置として、データブロックとしてのパケットの振分単位間での送出順序を制御するためのパケット読出装置について説明する。実施形態1の例では、パケット読出装置1は、振分単位である複数のパケットタイプとして、タイプ“P”,タイプ“N”及びタイプ“C”の三つのパケットタイプ(パケット種別)のパケットの送出順序を制御する。
 一つ目のパケットタイプであるタイプ“P”は、完了通知の返信が要求されない処理のリクエストを含む“posted”である。二つ目のパケットタイプであるタイプ“N”は、完了通知の返信が要求される処理のリクエストを含む“non-posetd”である。三つ目のパケットタイプであるタイプ“C”は、処理の完了通知を含む“completion”である。以下、パケットタイプを区別することなく説明する場合には、単に「パケット」と表記し、パケットタイプを特定する必要がある場合には、タイプ“P”,すなわち“posted”のパケットを“Pパケット”と表記し、タイプ“N”,“non-posetd”のパケットを“Nパケット”と表記し、タイプ“C”,すなわち“completion”のパケットを“Cパケット”と表記する。
  パケット読出装置1には、タイプ“P”,タイプ“N”及びタイプ“C”の各パケットを転送するためのチャネル(伝送路)が設けられている。チャネルを流れる各タイプのパケットに対し、パケット間でのパケットフォワードの順序付けルール(読出ルール)が適用される。実施形態1の例では、P、C、Nの順でフォワード(転送)の優先順位が予め決定されており、優先順位に従ってパケットが転送される。
 図1において、パケット読出装置1は、受信バッファ群10と、パケット読出制御装置20とを備える。
 受信バッファ群10は、振り分け単位であるパケットタイプ毎に用意された複数の受信バッファを備える。ここでは、受信バッファ群10は、パケットタイプ“P”,“N”及び“C”に対応する受信バッファ11,12,13を備えている。各受信バッファ11,12,13は、FIFOであり、それぞれ、最大16個の固定長又は可変長のパケットを格納することができる。
 パケット読出制御装置20は、パケット書込制御部としての受信バッファ書込制御回路21と、順序バッファとしてのオーダーバッファ22と、検出部としての先頭位置検出回路23と、決定部としての調停回路24と、パケット読出制御部としての受信バッファ読出制御回路25とを備えている。
 図1において、パケット読出装置1の受信部26では、1つずつ到来したパケットが受信される。受信部26は、受信バッファ群10,受信バッファ書込制御回路21,オーダーバッファ22に接続されている。
 受信バッファ群10には、受信部26で受信されたパケットが入力され、パケットは、振分単位であるパケットタイプに従い、受信バッファ11,12,13のいずれかに振り分けて格納される。受信バッファ11には、Pパケットが格納される。受信バッファ12には、Nパケットが格納される。受信バッファ13には、Cパケットが格納される。
 また、受信バッファ群10の受信バッファ11~13の蓄積量を監視する監視部16が設けられている。監視部16には、受信バッファ書込制御回路から出力されるパケットの書込命令と、受信バッファ読出制御回路25から出力される受信バッファ読出命令とが入力される。監視部16は、例えば、受信バッファ群10をなす複数の受信バッファ(受信バッファ11~13)毎に用意されたカウンタ(初期値“0”)を有している。受信バッファ書込制御回路21からの書込命令の入力時には、監視部16は、当該書込命令でパケットの書込が指定された受信バッファを特定し、当該受信バッファに対応するカウンタの値に1を加算する。一方、受信バッファ読出制御回路21からの受信バッファ読出命令の入力時には、当該受信バッファ読出命令でパケットの読出が指定された受信バッファを特定し、当該受信バッファに対応するカウンタの値から1を減じる。受信バッファ書込制御回路21及びオーダーバッファ22には、受信部26が有する図示しないエンコーダでエンコードされる、パケット内のタイプ識別子が入力される。
 タイプ識別子はパケットタイプを示す情報であり、複数の受信バッファ11~13に格納されるパケットの振分単位、すなわち、受信バッファ11~13に格納されるパケットの全てのパケットタイプを表すために要求されるビット数で表現されている。本実施形態では、パケットタイプは、“P”,“N”及び“C”の3種類であるため、タイプ識別子は2ビットで表現される。具体的には、Pパケットにはビット値“01”が割り当てられ、Nパケットにはビット値“10”が割り当てられ、Cパケットには“11”が割り当てられる。ビット値“00”は、パケットタイプが未割り当てである“non”として扱われる。
 また、受信バッファ書込制御回路21及びオーダーバッファ22には、受信部26でのパケット受信“有効”を示すパケット受信valid信号(Pkt_Rcv_Val)が入力される。パケット受信valid信号は、受信トリガとして受信バッファ書込制御回路21及びオーダーバッファ22で用いられる。
 受信バッファ書込制御回路21は、受信されたパケットのタイプ識別子が入力され、且つパケット受信valid信号を受け取ると、パケット受信valid信号をトリガとして、タイプ識別子の内容を参照し、タイプ識別子に対応する受信バッファへのパケットの書込命令を受信バッファ群10に与える。
 受信バッファ群10では、受信バッファ書込制御回路21からのパケットの書込命令に応じて、受信部26から入力されたパケットを、タイプ識別子に対応する受信バッファに格納する。このようにして、受信部26で受信されたパケットが、タイプ識別子に応じて受信バッファ11~13のいずれかに振り分けられる。
 オーダーバッファ22は、複数ステージ(複数段)を有するシフタ型バッファである。オーダーバッファ22は、直列接続された複数のステージを構成する記憶領域としてのフリップフロップ(FF)を含むFF群221と、カウンタ(Count)222と、書込/読出制御部(Write/Read制御部)223とを備える。
 FF群221は、受信バッファ群10のパケット最大格納数に等しい数のFFを含む。この例では、受信バッファ群10のパケットの最大格納数48(3タイプ×16パケット)に等しい48個のフリップフロップFF_01~FF_48が直列に接続されている。図1では、FF_48が先頭で、FF_01が末尾となっている。
 具体的には、各FFの入力側には、セレクタ2235が接続されており、セレクタ2235の入力端子の一つには、受信部26からのタイプ識別子が流れる信号線L2が接続される。また、セレクタ2235の入力端子の他の一つは、次ステージのFFの出力端子と接続される。但し、最後尾のステージに位置するFF_01の入力側に設けられたセレクタ2235の入力端子の他の一つには、未割り当てを示す“non”が入力されるようになっている。
 これによって、各FFの入力端子には、セレクタ2235によって、信号線L2からのタイプ識別子(“P”,“N”,“C”)と、次ステージのFFの保持内容(“P”,“N”,“C”又は“non”。但し、FF_01は“non”のみ)との一方が入力される。
 書込/読出制御部223は、各セレクタ2235の動作を制御することで、FF群221に対し、パケット読出装置1に到来した有効なパケットのタイプ識別子をパケットの到来順(受信順)で格納することができる。また、書込/読出制御部223は、セレクタ2235の動作制御を通じて、受信バッファ群10から読み出されたパケットのタイプ識別子をFF群221から消去することもできる。よって、FF群221は、受信バッファ群10に格納されている各パケットのタイプ識別子を到来順(受信順)で保持することができる。また、書込/読出制御部223は、受信バッファ群10に格納されているパケットのタイプ識別子をFF群221に前詰めで格納する。書込/読出制御部223の詳細構成は後述する。
 図2は、図1に示したオーダーバッファ22の詳細構成例を示す図である。図2において、カウンタ222は、FF群221に格納されるタイプ識別子の数、すなわち、受信バッファ群で保持されているパケットの数を示すカウンタ値(初期値“00”)を保持する。また、カウンタ値は、FF群221に対するタイプ識別子の書込位置を指定するために用いられる。
 カウンタ222には、有効なパケットが受信部26で受信されたことを示すパケット受信valid信号(Pkt_Rcv_Val)と、受信バッファ読出制御回路25からのパケット読出開始信号(Rd_Start)とが入力される。パケット読出開始信号(Rd_Start)は、受信バッファ群10からのパケットの読出開始を指示する信号である。
 カウンタ222は、パケット受信valid信号(Pkt_Rcv_Val)の入力をトリガとして、カウンタ値に1を加算する。これに対し、カウンタ222は、パケット読出開始信号(Rd_Start)の入力をトリガとして、カウント値から1を減じる。従って、カウント値は、FF群221に格納されているタイプ識別子の数、すなわち、受信バッファ群10で保持されているパケットの数を示す。
 書込/読出制御部223には、上述したパケット受信valid信号(Pkt_Rcv_Val),パケット読出開始信号(Rd_Start),カウンタ222のカウンタ値,及び受信バッファ読出制御回路25からのクリアライン位置信号(Clear_LINE)が入力される。クリアライン位置信号は、受信バッファ10から読み出されるパケットのタイプ識別子を保持するFFを指定する値(“01”~“48”)を含んでいる。
 パケット受信valid信号は、受信部26と接続された信号線L1を流れる。受信部26からのタイプ識別子(Type_ID)は、信号線L2を流れる。受信バッファ読出制御回路25からのパケット読出開始信号(Rd_Start)は、信号線L3を流れる。受信バッファ読出制御回路25からのクリアライン位置(Clear_LINE)は、信号線L4を流れる。
 書込/読出制御部223は、セレクタ2231と、デコーダ2232と、FF群221のステージ数(FFの数。実施形態1の例では48)と同数のAND回路2233と、FF群221のステージ数と同数のAND回路2234と、減算器2236と、シフト制御部2237と、FF群221のステージ数と同数のAND回路2238とを備えている。
 パケット受信valid信号が流れる信号線L1は、各AND回路2233の一方の入力端子に接続されている。また、信号線L1はカウンタ222に接続されており、カウンタ222は、パケット受信valid信号(Pkt_Rcv_Val)の受信を契機として、カウンタ222で保持されるカウンタ値に1を加算する。
 カウンタ222の出力端子は、セレクタ2231及び減算器2236に接続されている。減算器2236は、カウンタ222のカウンタ値から1を減じる。減算器2236は、セレクタ2231に接続されている。
 セレクタ2231は、カウンタ222からのカウンタ値と減算器2236によってカウンタ値から1を減じた値(減算値)との一方をデコーダ2232に出力する。セレクタ2231は、信号線L3を流れるパケット読出開始信号(Rd_Start)の入力がない場合には、カウンタ222からのカウンタ値を選択してデコーダ2233に入力する。これに対し、セレクタ2231は、パケット読出開始信号が信号線L3に入力されると、入力されたパケット読出開始信号を選択条件として、減算器2236からの出力をデコーダ2232に出力する。セレクタ2231の作用については後述する。
 なお、信号線L3は、カウンタ222に接続されており、カウンタ222は、パケット読出開始信号(Rd_Start)の受信を契機として、カウンタ222が保持するカウンタ値から1を減算する。
 デコーダ2232は、各AND回路2233の他方の入力端子と接続される複数の出力端子を備える。デコーダ2232は、セレクタ2231から入力されるカウンタ値又はカウンタ値の減算値に対応する出力端子からオン信号を出力し、残りの出力端子からオフ信号を出力する。各AND回路2233は、FF群221をなすFF_48~FF_01と対応づけられている。例えば、デコーダにカウンタ値“0”が入力された場合には、FF_48に対応するAND回路2233_48のみにオン信号が与えられ、残りのAND回路2233にはオフ信号が与えられる。
 各AND回路2233は、AND回路2233自身が有する双方の入力端子への入力がオンとなることを条件にオン信号を出力する。当該オン信号は、AND回路2233と対応するFFに対するタイプ識別子の書込イネーブル信号(WriteEN_X(01≦X≦48))として機能する。書込イネーブル信号は、FF群221をなす各FFの入力側に設けられたセレクタ2235に対する、信号線L2を流れるタイプ識別子(Type_ID)の選択条件となる。
 FF_48~FF_02の入力側に設けられた各セレクタ2235は、信号線を介して次ステージのFFに接続されている。一方、FF_01の入力側に設けられたセレクタ2235には、未割り当てを示す “non”(“00”)が入力される。
これによって、各セレクタ2235は、信号線L2を流れるタイプ識別子と、次ステージのFFの保持内容(但し、FF_01対応のセレクタ2235は“non”)との一方を選択し、先頭側のFFに出力する。
 また、セレクタ2235には、その後段に位置するFFの出力信号が入力されるようになっている。
 各セレクタ2235が、次ステージのFFの保持内容又は“non”を選択する選択条件は、以下に説明する回路構成によって実現される。すなわち、パケット読出開始信号(Rd_Start)が流れる信号線L3は、各AND回路2238の一方の入力端子に夫々接続されている。
 信号線L4を流れるクリアライン位置(Clear_LINE)は、シフト制御部2237に入力される。シフト制御部2237は、各AND回路2238の他方の入力端子に接続されており、クリアライン位置(“01”~“48”)に応じて、各AND回路2238に対するオン信号の出力を制御する。複数のAND回路2238は、FF群221をなすFFのステージ数と同数のAND回路からなり、各FFに対応づけられている。
 実施形態1の例では、シフト制御部2237は、クリアライン位置に応じて、当該クリアライン位置のFF及び当該クリアライン位置より後段のFFに対応するAND回路2238にオン信号を入力し、当該クリアラインより前のFFに対応するAND回路2238があれば、当該AND回路2238にオフ信号を入力するように動作する。
 例えば、ラインクリア位置が“48”である場合には、シフト制御部2237は、AND回路2238の全てにオン信号を出力する。ラインクリア位置が“47”である場合には、シフト制御部2237は、ラインクリア位置より前に位置するFF_48に対応するAND回路2238(2238_48)にオフ信号を入力し、残りのAND回路2238にはオン信号を入力する。同様の動作が、他のラインクリア位置“46”~“01”についても行われる。ラインクリア位置が最後尾である“01”の場合には、シフト制御部2237は、FF_01に対応するAND回路2238に対してオン信号を入力し、残りのAND回路2238にはオフ信号を入力する。
 各AND回路2238は、パケット読出開始信号(Rd_Start)が入力され、且つシフト制御部2237からオン信号が入力された場合にオン信号を出力する。AND回路2238のオン信号は、シフト命令信号(Shift_X(01≦X≦48))として機能する。
 各AND回路2238の出力端子は、FF群221をなす各FFに対応づけられた複数のAND回路2234の一方の入力端子に夫々接続されている。各AND回路2234の他方の入力端子には、同一のFFに対応するAND回路2233から出力された書込イネーブル信号(WriteEN_X)の反転信号が入力される。よって、各AND回路2234は、書込イネーブル信号がオフであり、且つシフト命令信号がオンである場合にオン信号を出力する。
 AND回路2234から出力されるオン信号は、AND回路2234と対応するFFの入力側に位置するセレクタ2235に対する、次ステージのFFの保持内容又は“non”の選択条件となる。
 よって、各FF_48~FF_01では、対応するAND回路2233から書込イネーブル信号が出力される一方で、AND回路2234がオフのときには、信号線L2を流れるタイプ識別子が当該FFに書き込まれる。これに対し、FFに対応するAND回路2233がオフ(書込イネーブル信号なし)で対応するAND回路2234がオンのときには、当該FFに対し、次ステージのFFの保持内容又は“non”が書き込まれる。
 以上説明した書込/読出制御部223は、以下のように動作する。オーダーバッファ22の初期リセット直後は、FF群221の全てのFF_48~FF_01に“non”が保持された初期化状態にされる。また、初期化状態では、カウンタ値は初期値“00”とされる。このとき、デコーダ2232からは、カウンタ値“00”に応じてFF_48に対応するAND回路2233_48にオン信号が入力され、残りのAND回路2233にはオフ信号が入力された状態となる。
 このような状態において、受信部26からパケット受信valid信号とタイプ識別子とが出力されたと仮定する。すると、信号線L1を流れるパケット受信valid信号によって、AND回路2233_48がオンとなり、書込イネーブル信号(WriteEN_48)がAND回路2233_48から出力される。この時点で、信号線L3及びL4に対するパケット読出開始信号及びラインクリア位置はオフ(入力なし)であるので、FF_48に対応するAND回路2234_48はオフである。よって、FF_48に対応するセレクタ2235は、信号線L2を流れるタイプ識別子を選択してFF_48に入力する。これによって、FF_48がタイプ識別子を保持する。
 一方、カウンタ222は、パケット受信valid信号の入力に応じて、カウンタ値“00”に1を加算する。よって、カウンタ値は“01”となり、デコーダ2232は、FF_47に対応するAND回路2233(2233_47)のみにオン信号を入力し、残りのAND回路2233にはオフ信号を入力する状態となる。
 その後、さらに、受信部26からのパケット受信valid信号及びタイプ識別子が信号線L1及び信号線L2にそれぞれ入力されたと仮定する。すると、パケット受信valid信号によって、AND回路2233_47がオンとなり、書込イネーブル信号(WriteEN_47)が出力される。この時点で、信号線L3及びL4に対するパケット読出開始信号及びラインクリア位置はオフ(入力なし)であるので、FF_47に対応するAND回路2234_47はオフである。よって、FF_47に対応するセレクタ2235は、信号線L2を流れるタイプ識別子を選択してFF_47に入力する。FF_48及びFF_46~FF01は、書込イネーブル信号及びAND回路2234の出力が共にオフであるので、保持内容を維持し続ける。これによって、FF_48及びFF_47がタイプ識別子を保持した状態となる。
 一方、カウンタ222は、パケット受信valid信号の入力に応じて、カウンタ値“01”に1を加算する。よって、カウンタ値は“02”となる。
 その後、FF_48に保持されたタイプ識別子を有するパケットの、受信バッファ群10からのパケット読出開始信号(Rd_Start)が受信バッファ読出制御回路25から信号線L3に入力され、続いて、FF_48の保持内容を消去するためのラインクリア位置“48”が受信バッファ読出制御回路25から信号線L3に入力されたと仮定する。
 この場合、パケット読出開始信号及びシフト制御部2237の、クリアライン位置“48”に応じた出力により、全てのAND回路2238がオンとなり、シフト命令信号(Shift_X)を出力する。この時点で、各AND回路2233からの書込イネーブル信号はオフであるので、全てのAND回路2234がオンとなる。すると、FF_48~FF02に対応するセレクタ2235は、次ステージのFFの保持内容を選択して、対応するFFに保持させる。よって、FF_47~FF01の保持内容が前詰めにシフトし、FF_48の保持内容が消去される。また、FF_01に対応するセレクタ2235は、“non”をFF_01に保持させる。
 その後、例えば、FF_48に保持されたタイプ識別子を有するパケットのパケット読出開始信号及びラインクリア位置が信号線L3及びL4に入力される一方で、パケット受信valid信号及びタイプ識別子が信号線L1及びL2に入力されたと仮定する。
 この場合、上述したFF_47~FF_01の保持内容の前詰めシフトでFF_48の保持内容が消去される。このとき、カウンタ222のカウンタ値は“01”なのだが、ここで、カウンタ値“01”に応じた位置にタイプ識別子が書き込まれると、FF_48が空いているにも拘わらず、FF_47にタイプ識別子が書き込まれることになる。このため、パケット読出開始信号が入力されている間は、セレクタ2231は、減算器2236からの減算値、すなわちカウンタ値“01”から1を減じた減算値“00”を選択してデコーダ2232に入力する。これによって、FF_48に対するタイプ識別子の書込イネーブル信号(WriteEN_48)が発生し、FF_48にタイプ識別子が書き込まれる。一方、カウンタ222のカウンタ値は、パケット読出開始信号によって1減算されるが("01"→"00")、パケット受信valid信号によって1加算された状態となる("00"→"01")。
 以上説明したように、複数のタイプ識別子が、パケット読出装置1へのパケットの到来順でFF群221に格納されることによって、FF群221は、受信バッファ群10に格納された複数のパケットに対応するタイプ識別子が到来順で並べられた識別子列を保持することになる。すなわち、FF群221の先頭から末尾に向かって受信時刻の古い順で、受信したパケットの各々に対応するタイプ識別子が保持される。これによって、FF群221の先頭側に位置する識別子程、到来順の古いパケットを示すことになる。
 また、書込/読出制御部223は、タイプ識別子を先頭詰めでFF群221に格納する。すなわち、書込/読出制御部223は、タイプ識別子の書込に際して、カウンタ222からのカウンタ値を参照し、受信部26から転送されてくるタイプ識別子を、カウンタ値又は減算値に応じた位置に書き込む。
 これによって、受信パケットに対応する複数のタイプ識別子がFF_48を先頭として連続して後続のFF群に格納される。このように、識別子列が先頭詰めでFF群221に格納されることによって、タイプ識別子を保持するFFのステージ位置が、パケットの到来順序を示すことになる。
 或るパケットが受信バッファ群10から読み出された場合、書込/読出制御部223は、受信バッファ読出制御回路25からのパケット読出開始信号及びクリアライン位置を受けて、受信バッファ群10から読み出されたパケットに対応するタイプ識別子を、当該タイプ識別子を保持しているFFから消去するとともに、当該仮想チャネル識別子が消去されたFFの直後から末尾までの各FFに保持されたタイプ識別子を1つずつ先頭側にシフトさせる。このようにして、書込/読出制御部223は、タイプ識別子をFFから消去するときに、後続のFFの保持内容をシフトさせて、先頭詰め状態が維持されるように、タイプ識別子の書込制御を行う。
 以下、受信バッファ群10から読み出すべきパケットを決定するための構成要素である、先頭位置検出回路23,調停回路24及び受信バッファ読出制御回路25の詳細について説明する。
 先頭位置検出回路23は、先頭P位置検出回路231と、先頭N位置検出回路232と、先頭C位置検出回路233とを含んでいる。FF群221に含まれる各FFの出力端子には、各FFが保持するタイプ識別子をデコードするデコーダ224が接続されている。デコーダ224は、P,N,Cに対応する三つの出力ライン(Pライン,Nライン,Cライン)を有している。各Pライン(P01ライン~P48ライン)は、先頭P位置検出回路231に接続され、各Nライン(N01ライン~N48ライン)は、先頭N位置検出回路232に接続され、各Cライン(C01ライン~C48ライン)は、先頭C位置検出回路233に接続されている。
 デコーダ224は、対応するFFの保持内容をデコードし、デコード結果が“P”であればPラインのみにオン信号を出力し、残りのNライン及びCラインにはオフ信号を出力する。また、デコード結果が“N”であれば、デコーダ224は、Nラインのみにオン信号を出力し、残りのPライン及びCラインにはオフ信号を出力する。また、デコード結果が“C”であれば、デコーダ224は、Cラインのみにオン信号を出力し、残りのPライン及びNラインにはオフ信号を出力する。また、FFの保持内容が“non”であれば、デコーダ224はPライン,Nライン及びCラインの全てにオフ信号を出力する。
 例えば、FF_48に接続されたデコーダ224は、FF_48に対応するPライン(P48ライン),Nライン(N48ライン),Cライン(C48ライン)を有する。P48ラインは、先頭P位置検出回路231に接続され、N48ラインは、先頭N位置検出回路232に接続され、C48ラインは、先頭C位置検出回路233に接続されている。
 FF_48に接続されたデコーダ224は、FF_48が保持するタイプ識別子が“P”である場合には、P48ラインをオンに設定し(オン信号を出力)、残りのN48ライン及びC48ラインをオフに設定する(オフ信号を出力する)。また、デコーダ224は、FF_48が保持するタイプ識別子が“N”である場合に、N48ラインをオンに設定し、P48ライン及びC48ラインをオフにする。さらに、デコーダ224は、FF_48が保持するタイプ識別子が“C”である場合にC48ラインをオンに設定し、P48ライン及びN48ラインをオフにする。このような動作が、他のFF_47~01に接続されたデコーダ224でも行われる。但し、FFの保持内容が“non”である場合には、デコーダ224は全ての出力ラインをオフにする。
 図3は、先頭位置検出回路23の構成例を示す。先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233として、例えば、プライオリティエンコーダを適用することができる。先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233は、ほぼ同様の構成を備えているので、例として先頭位置P位置検出回路231について説明する。
 図3に示す例では、先頭P位置検出回路231は、プライオリティエンコーダとして、P47ライン~P01ライン(FF_47~FF_01)に対応するN個(実施形態1の例ではN=47)のAND回路2311_47~2311_01(但し、図3では、2311_47~2311_45のみを例示)と、信号検出回路2312とを備えている。以下、AND回路2311_47~2311_01を区別することなく説明する場合には、AND回路2311と表記する。
 P48ラインは、直接に信号検出回路2312に接続されている。残りのP47~P01ラインは、対応するAND回路2311_47~2311_01の入力端子に接続されている。また、各Pラインを流れるオン/オフ信号は、自身のライン番号より小さいライン番号に対応する各AND回路2231が有する反転入力端子に入力される。
 例えば、P48ラインを流れるオン/オフ信号は、P47~P01ラインに対応するAND回路2311_47~2311_01が有する反転入力端子に夫々入力される。また、P47ラインを流れるオン/オフ信号は、P46~P01ラインに対応するAND回路2311_46~2311_01が有する反転入力端子にそれぞれ接続される。このように、各AND回路2311は、対応するPライン番号より大きいライン番号を有する各Pラインからのオン/オフ信号の反転信号が入力されるための1以上の反転入力端子を有している。従って、各AND回路2311は、対応するPラインからオン信号が入力され、且つ当該AND回路2311が有する全ての反転入力端子に対してオフ信号が入力される場合にのみオン信号を出力する。言い換えれば、各AND回路2311は、AND回路2311に対応するFFがタイプ識別子“P”を保持する先頭のFFである場合にのみ、オン状態となる。
 上述したように、P48ラインは、信号検出回路に接続されている。また、AND回路2311_47~2311_01の出力端子は、信号線を介して信号検出回路2312に接続されている。ここで、P48ライン,及びAND回路2311_47~2311_01と信号検出回路とを夫々結ぶ複数の信号線を、説明のために「入力ライン48~01(IL48~01)」と呼ぶ。
 信号検出回路2312では、入力ラインIL48~01のオン/オフ(0/1)を、入力ラインIL48~01までを大きい番号順で並べた48ビットのビット列として認識することができる。上述したAND回路2311_47~2311_01の回路構成によって、入力ラインIL48~01のいずれか一つのみがオンとなり、残りの入力ラインはオフとなる。このため、信号検出回路2312は、入力ラインIL48を先頭として、48ビットのビット列からオン(“1”)となっているビットの位置を検出し、検出された位置を、FF群221においてタイプ識別子“P”を最も先頭側で保持するFFに対応するPライン番号(P_LINE_NUM)として出力する。
 先頭N位置検出回路232は、先頭P位置検出回路231におけるPラインがNラインであることを除けば、先頭P位置検出回路231と同じ構成を有する。すなわち、AND回路2311_47~2311_01に相当するAND回路2321_47~2321_01と、信号検出回路2312に相当する信号検出回路2322とを備えている。信号検出回路2322は、信号検出回路2312と同様の処理を行い、FF群221において、タイプ識別子“N”を最も先頭側で保持するFFに対応するNライン番号(N_LINE_NUM)を出力する。
 同様に、先頭C位置検出回路233は、先頭P位置検出回路231におけるPラインがCラインであることを除けば、先頭P位置検出回路231と同じ構成を有する。すなわち、AND回路2311_47~2311_01に相当するAND回路2331_47~2331_01と、信号検出回路2312に相当する信号検出回路2332とを備えている。信号検出回路2332は、信号検出回路2312と同様の処理を行い、FF群221において、タイプ識別子“C”を最も先頭側で保持するFFに対応するCライン番号(C_LINE_NUM)を出力する。
 以上のように、先頭P位置検出回路231,先頭N位置検出回路232及び先頭C位置検出回路233のそれぞれは、出力がオン状態の出力ラインのうち最も先頭の出力ラインの番号、すなわち、最も先頭よりのFFのステージ位置を、Pパケット,Nパケット,Cパケットの先頭位置として検出する。
 図4は、各識別子の先頭位置検出動作の例を示す。例えば、図4に示すように、FF_48~FF_43に対し、複数のタイプ識別子が先頭から順に“C”,“N”,“N”,“P”,“P”,“C”の順序で保持されていると仮定する。
 この場合、先頭P位置検出回路231は、タイプ識別子”P”を保持する最も先頭のFF48に対応するPライン番号“45”を検出する。同様に、先頭N位置検出回路232は、タイプ識別子”N”を保持する最も先頭のFF47に対応するNライン番号“47”を検出し、先頭C位置検出回路233は、タイプ識別子”C”を保持する最も先頭のFF48に対応するCライン番号“48”を検出する。このように、先頭位置検出回路23により、P,N,Cそれぞれのパケットタイプに関して、到来時刻の最も古いパケットのFF群221における位置、すなわち、Pパケット,Nパケット,Cパケットの先頭位置が検出される。
 先頭P位置検出回路231は、仮想チャネル識別子“P”の先頭位置を示すPライン番号を示すP_LINE_NUM信号を出力する。先頭N位置検出回路232は、仮想チャネル識別子“N”の先頭位置を示すNライン番号を示すN_LINE_NUM信号を出力する。先頭C位置検出回路231は、仮想チャネル識別子“C”の先頭位置を示すCライン番号を示すC_LINE_NUM信号を出力する。各検出部231,232,233は、出力すべきラインがない、すなわち読み出すパケットが無い場合には、“0”を出力する。
 調停回路24には、先頭位置検出回路23からの出力信号、つまりP_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号が入力される。調停回路24では、先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233からそれぞれ受け取る出力信号(P_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号)によって、P,N,Cの各パケットの有無と、P,N,Cの各パケットタイプ間の到来順序を知ることができる。調停回路24では、さらに、パケットタイプ間でのフォワード順序付けルールを考慮して、受信バッファ群10から読み出すべきパケット、すなわちパケット読出を実行すべき受信バッファを決定する調停処理を行う。
 本実施形態では、調停回路24は、P,C,Nの到来順序を認識し、フォワード順序付けルールに従って、P,C,Nの優先順位で、読み出すべきパケットのパケットタイプ(パケット読出を実行すべき受信バッファ)を決定する。但し、調停処理で使用されるフォワード順序付けルールは、上記した優先順位に加えて、或いは優先順位に代えて、他の条件となるルールが用いられるようにしても良い。要は、調停回路24の利用する調停ルールは、1以上の条件を用いて適宜設定可能である。
 調停回路24は、パケットを読み出す受信バッファを決定すると、パケットの読出要求(REQ)と、読出対象のパケットタイプを示す信号(Type)とを受信バッファ読出制御回路25へ出力する。
 ここで、先頭P位置検出回路231,先頭N位置検出回路232,及び先頭C位置検出回路233からそれぞれ出力される出力信号(P_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号)は、調停回路24だけでなく、調停回路24によって出力制御されるセレクタ27にも入力される。
 調停回路24は、調停処理によってパケット読出を実行すべき受信バッファを決定すると、セレクタ27に対し、決定した受信バッファに対応する出力信号(P_LINE_NUM信号、N_LINE_NUM信号およびC_LINE_NUM信号のいずれか)の選択を指示する制御信号を与える。セレクタ27は、制御信号に従った出力信号を選択し、選択した出力信号を読出対象のパケットに対応するタイプ識別子のライン番号(格納位置:ODR_Rd_LINE)として、受信バッファ読出制御回路25に出力する。これによって、読出が決定されたパケットのタイプ識別子を格納するFFに対応するライン番号(ODR_Rd_LINE)が受信バッファ読出制御回路25に入力される。
 受信バッファ読出制御回路25は、受信バッファ読み出しの開始タイミング制御を行なう。受信バッファ読出制御回路25は、調停回路24からパケットの読出要求(REQ)を受け取ると、調停回路24が出力したパケットタイプを示す信号(Type)で示される、調停回路24が指定したパケットタイプに対応する受信バッファ(11~13のいずれか)を特定し、特定した受信バッファに対する受信バッファ読出命令を発行する。
 受信バッファ読出制御回路25が出力する受信バッファ読出命令は、受信バッファ群10の読出回路(セレクタ11A)に入力され、受信バッファ読出命令に対応する受信バッファからのパケットがセレクタ11Aにより選択され、送出先へ向けて出力される。
 受信バッファ読出制御回路25は、読出命令の出力とあわせ、パケット読出開始信号(Rd_Start)を出力する。パケット読出開始信号(Rd_Start)は、上述したように、信号線L3を介してオーダーバッファ22のカウンタ222及び書込/読出制御部223に入力される。また、受信バッファ読出制御回路25は、パケット読出開始信号(Rd_Start)とともに、読出対象のパケットに対応するタイプ識別子を保持したFFの保持内容のクリアライン位置(Clear_LINE)を出力する。クリアライン位置は、信号線L4を通じてオーダーバッファ22の書込/読出制御部223に入力される。これによって、書込/読出制御部223は、上述したようなパケット読出開始信号及びクリアライン位置の入力時における動作を行い、クリアライン位置に応じたFFより後段の各FFに保持されたタイプ識別子又は“non”を夫々1つずつ先頭側にシフトさせることによって、クリアライン位置のFFに保持されたタイプ識別子を消去する。また、最後尾のFF_01に“non”が書き込まれる。
 図5は、オーダーバッファ(FF群221)のクリア動作の例を示す。例えば、パケットの読出前において、FF群221の48ステージ(FF_48)~43ステージ(FF_43)までに、タイプ識別子が先頭からC,N,P,N,P,Cで格納されていたと仮定する(FF_01~FF_42までは“non”と仮定する)。
 ここで、調停回路24による調停によって、FF_46のタイプ識別子“P”に対応するパケットが受信バッファ11から読み出されたと仮定する。すると、書込/読出制御部223には、受信バッファ読出制御回路25からのパケット読出開始信号(Rd_Start)と、FF_46(P46ライン)のクリアライン位置とが入力される。すると、書込/読出制御部223は、図5に示すように、パケット読出開始信号及びクリアライン位置に応じて、FF_45~FF_43の保持内容“N”,“P”,“C”及びFF_42~FF_01の保持内容“non”を先頭側のステージへシフトさせることによって、FF_46に保持された“P”を消去する。そして、末尾のFF_01には“non”を格納する。これによって、到来時刻の最も古いパケットは、常に先頭ステージ(48ステージ)から検査すれば良い状態が保たれる。
 なお、上記の書込/読出制御部223の動作において説明したように、FF群221に対するタイプ識別子のクリア動作とFF群221に対するタイプ識別子の書込が同時に行われる場合には、書込/読出制御部223は、FF群221に対するシフト動作を先に行って、受信バッファから読み出されたパケットのクリア識別子を消去し、その後、FF群221に新たに書き込まれるクリア識別子を、「クリア動作が無い時の位置+1」に相当する書込位置のFFに保持させる。
 実施形態1によると、受信バッファ群10に格納されている各パケット内のタイプ識別子が、パケットの到来順で、オーダーバッファ22が有するFF群221での物理的なステージ位置に格納される。すなわち、パケットの振分単位の識別子であるタイプ識別子がパケットの到来順に並べられた識別子列が、オーダーバッファ221に格納される。
 そして、識別子列における各パケットの識別子(タイプ識別子P,N,C)の先頭位置が先頭位置検出回路23で検出されることによって、調停回路24は、P,N,Cの各パケットの到来順を認識でき、フォワード順序付けルールや送信先のBUSY状態を考慮して、次に読み出すべきパケットを決定することができる。
 ここで、オーダーバッファ22のFF群221に要求される容量は、2ビット(タイプ識別子のビット数)×16(各受信バッファのパケット最大格納数)×3(受信バッファ数)=96[bit]となる。よって、図9に比べて要求される容量を大幅に削減することができる。これによって、到来順序情報を記憶する回路量を削減することができる。
 <実施形態2>
 次に、実施形態2について説明する。実施形態2は、実施形態1で説明したパケット読出装置1と同様の構成を有するので、主として相違点について説明し、共通点については同一の符号を付して説明を省略する。
 振分単位(実施形態1の例ではパケットのタイプ数)の数が2のn乗(n=1,2,3,・・・)、すなわち(2,4,8,16・・・)である場合において、実施形態1で説明したように、未割り当ての識別子“non”を含めると、識別子のビット数を、「振分単位数+1bit」としなければならない。このため、未割り当てを示す“non”を用いなくても、実施形態1と同様のパケットの読出順序制御が可能な実施形態を、実施形態2として説明する。
 図6は、実施形態2に係るデータブロック読出装置(パケット読出装置1A)の構成例を示す。パケット読出装置1Aは、実施形態1で説明したパケット読出装置1における受信バッファ群10及びパケット読出制御装置20に相当する、受信バッファ群10Aと、パケット読出制御装置20Aとを備えている。
 実施形態2は、以下の点で実施形態1と異なっている。すなわち、実施形態1では、パケットタイプ数は、“P”,“N”及び“C”の三つであったが、実施形態4では、パケットタイプ“X(eXtended Type)”が追加されて、パケットタイプが四種類となっている。
 このため、受信バッファ群10Aは、Pパケット,Nパケット及びCパケットを夫々保持する受信バッファ11~13に加えて、タイプ“X”のパケット(Xパケットと称する)を保持するための受信バッファ14をさらに備えている。各受信バッファ11~14には、最大12個のパケットが蓄積される。
 実施形態2における受信部26は、到来したパケットに含まれる識別子を、2ビットのタイプ識別子にエンコードする。このとき、タイプ“P”,“N”,“C”,“X”の夫々は、タイプ識別子を示す2ビット“00”,“01”,“10”,“11”に夫々エンコードされる。
 エンコードされたタイプ識別子及びパケット受信valid信号は、実施形態1と同様に受信バッファ書込制御回路21に入力される。受信バッファ書込制御回路21は、タイプ識別子に従って、受信部26から送出されるパケットを受信バッファ11~14のいずれかに保持させる。なお、タイプ識別子及びパケット受信valid信号は、信号線L1及びL2を介して、実施形態1のオーダーバッファ22に相当するオーダーバッファ22Aに入力される点は、実施形態1と同様である。
 オーダーバッファ22Aは、以下の点で実施形態1のオーダーバッファ22と異なっている。第1に、未割り当ての識別子“non”の発生源が省略されており、FF群221における末尾のFF_01には、“non”が入力されないようになっている。すなわち、書込/読出制御部223からFF_01へのタイプ識別子の書込イネーブル信号が発行された場合に、信号線L2を流れるタイプ識別子がFF_01に書き込まれるようになっている。書込/読出制御部223は、実施形態1とほぼ同様の構成(図2)を備えている。
 また、各FF_48~FF01の出力端子に接続された各デコーダ224は、実施形態1と異なり、タイプ識別子“P”,“N”,“C”及び“X”に応じた四つの出力端子を有している。四つの出力端子は、デコーダ224の後段に設けられた四つのAND回路(AND回路群226)における、一方の入力端子に接続されている。
 デコーダ224は、対応するFFに保持されたタイプ識別子のデコードを行う。デコーダ224は、デコード結果に従い、FFに保持されたタイプ識別子に対応する出力端子のみにオン信号を出力し、残りの出力端子にはオフ信号を出力する。
 これにより、AND回路群226は、デコード結果が“P”のときにオン信号が入力されるAND回路(AND回路226_1と表記)と、デコード結果が“N”のときにオン信号が入力されるAND回路(AND回路226_2と表記)と、デコード結果が“C”のときにオン信号が入力されるAND回路(AND回路226_3と表記)と、デコード結果が“X”のときにオン信号が入力されるAND回路(AND回路226_4と表記)とからなる。
 オーダーバッファ22Aには、カウンタ222のカウンタ値が入力される有効範囲選択部225が追加されている(有効範囲選択部225の詳細は後述)。有効範囲選択部225の出力端子は、各デコーダの後段に設けられた各AND回路群226_1~226_4の他方の出力端子に接続されている。
 各AND回路群226におけるAND回路226_1~226_3の出力端子は、実施形態1で説明したPライン,Nライン,Cラインを介して、先頭位置検出回路23Aの先頭P位置検出回路231,先頭N位置検出回路232,先頭C位置検出回路233に夫々接続されている。
 また、各AND回路226_4の出力端子は信号線を介して、先頭位置検出回路23Aに設けられた先頭X位置検出回路234に接続されている。先頭X位置検出回路234と各AND回路226_4とを結ぶ複数の信号線は、各デコーダ224によるデコード結果“X”を先頭X位置検出回路234に伝達するためのXライン(X48~X01ライン)として機能する。
 先頭X位置検出回路234は、FF群221におけるタイプ識別子“X”の先頭格納位置を検出するため回路であり、図3に示した先頭P位置検出回路231とのほぼ同様の構成を備えている。すなわち、図示しないが、図3に示した先頭P位置検出回路231が有する複数のAND回路2311及び信号検出回路2312と同様のAND回路群及び信号検出回路を備えており、これらのAND回路群及び信号検出回路とX48~X01ラインとの結線状態は、先頭P位置検出回路と同様となっている。従って、先頭X位置検出回路234の信号検出回路(図示せず)は、FF群221において最も先頭側でタイプ識別子“X”を保持するFFのステージ数を示すX_LINE_NUM信号を出力することができる。
X_LINE_NUM信号は、P_LINE_NUM信号,N_LINE_NUM信号,C_LINE_NUM信号と同様に、調停回路24及びセレクタ27に入力される。
 調停回路24は、実施形態1と同様の手法、すなわち、フォワード順序付けルールに従って、パケットの読出を実行する受信バッファを決定する。例えば、調停回路24は、優先順位がP,C,N,Xであるフォワード順序付けルールに従って、パケットの読出を実行すべき受信バッファを決定し、セレクタ27に対する制御信号を出力することができる。
 有効範囲選択部225は、FF群221の有効なステージを規定する。すなわち、有効範囲選択部225は、各AND回路群226のAND回路226_1~226_4と接続される複数の(実施形態2の例では48本)の制御ラインCL(CL48~CL01)を有している。有効範囲選択部225は、カウンタ222から入力されるカウンタ値に応じた出力ラインにオン信号を出力し、残りの出力ラインにはオフ信号を出力する。
 ここで、カウンタ値の初期値が“00”であると仮定すると、カウンタ値が“01”のとき(すなわち、FF_48のみがタイプ識別子を保持するとき)は、CL48のみにオン信号を出力する。カウンタ値が“02”のとき(すなわち、FF_48及びFF_47にタイプ識別子が保持されているとき)は、CL48及びCL47にオン信号を出力する。このように、有効範囲選択部225は、カウンタ値から求まる、タイプ識別子を保持するFFと対応する制御ラインCLにのみオン信号を出力し、残りの制御ラインCLはオフとする。
 従って、タイプ識別子を保持していないFFに対応する制御ラインCLはオフとなるので、制御ラインCLがオフであるAND回路群226の出力はオフとなる。従って、制御ラインCLがオンである、すなわちタイプ識別子を保持しているFFに対応するAND回路群226のみから、デコーダ224からのオン信号が先頭位置検出回路23Aに入力される。
 以上の説明を除き、実施形態2の構成及び動作は、実施形態1と同様であるので説明を省略する。
 実施形態2におけるパケット読出装置1Aによれば、オーダーバッファ22Aに格納される識別子の中に、“non”を含めることなく、実施形態1で説明したパケット読出装置1と同様のパケット読出制御を実行することができる。このため、振分単位数(実施形態2の例ではパケットタイプ数)が4である場合には、識別子2ビット幅に設定することができる。また、振分単位数(パケット単位数)を2にする場合には、1ビット幅(0又は1)にすることができる。すなわち、識別子のビット幅を振分単位数に対して必要最小限のビット幅にすることができる。
 なお、実施形態2の構成例において、振分単位(パケットタイプ数)が2にされる場合には、受信部26におけるエンコード処理で、パケットタイプに応じてエンコード結果が“0”又は“1”となるように設定され、受信バッファ書込制御回路21がタイプ識別子(“0”または“1”)に従って受信バッファ群10A中の二つの受信バッファにパケットを振り分けて格納するための設定が施される。さらに、各デコーダ224が、FFの保持内容のデコード結果が“0”か“1”かに応じて、対応する出力ラインのみにオン信号を出力し、残りをオフにする動作を行うための設定が施される。
 実施形態2の構成は、振分単位数が上述したような2や4と異なる2のn乗である場合にも適用が可能である。
 <実施形態3>
 次に、実施形態3について説明する。実施形態3は、実施形態1で説明したパケット読出装置1と同様の構成を有するので、主として相違点について説明し、共通点については同一の符号を付して説明を省略する。
 実施形態3では、実施形態1のパケット読出制御回路20を基本構成として、パケットタイプ毎に先頭位置を検出する際の、別の方法について説明する。実施形態1では、FF群221をなす全てのFFにデコーダ224が設けられ、各FFで保持されるパケットタイプが検査されていた。実施形態3では、FF群221に設けられるデコーダ224の数を減らす方法について説明する。図7は、実施形態3におけるデータブロック読出装置(パケット読出装置1B)の構成例を示す図である。図7において、受信バッファ群10Bは、実施形態1で説明したPパケット,Nパケット及びCパケットを夫々保持する受信バッファ11,12及び13を備えている、但し、実施形態3では、受信バッファ群10Bに格納可能なパケットの総数は、実施形態1(48個)と等しいが、各受信バッファ11~13における最大格納数が実施形態1と異なっている。
 実施形態3の例では、受信バッファ11の最大格納数は15個,受信バッファ12の最大格納数は16個,受信バッファ13の最大格納数は17個であり、各受信バッファ11~13は最大格納数を上限として、固定長又は可変長のパケットを格納することができる。
 また、パケット読出装置1Bでは、FF群221の出力側に設けられるデコーダ224が、後述する検査範囲の決定方法に従って決められた検査範囲に属するステージのFFのみに設けられている。
 実施形態3では、以下の検査範囲の決定手法で、デコーダ224が設けられるFFのステージ数が絞られている。検査範囲の決定にあたり、パケットタイプ数(振分単位数)がn、それぞれのパケットタイプに対応する各受信バッファの最大格納数がS1 ... Sn(nは0より大きい整数)としたとき、最大格納数が最も小さい受信バッファの最大格納数は、「1」とみなす。この最大格納数「1」に残りの受信バッファの最大格納数の和を加えた数が算出される。そして、算出された数が、各パケットタイプの先頭位置を検査する検査範囲のステージ数とされ、FF群221の先頭(FF_48)から、検査範囲のステージ数に属する各FFの出力側にデコーダ224が設けられている。図8は、実施形態3におけるFF群221の検査範囲の決定方法を示す。実施形態3の例では、上述したように、受信バッファ11,12及び13のパケットの最大格納数は、夫々15個,16個,17個であり、受信バッファ群10Bで格納可能なパケットの総数は、受信バッファ11~13の各最大格納数の和である48(15+16+17=48)である。従って、FF群221が有すべきFFの数(オーダーバッファステージ数)は、受信バッファ群10Bで格納可能なパケットの総数と等しい48[ステージ]である。
 これに対し、各パケットタイプの先頭位置を検査する範囲(検査範囲)となるステージ数は、以下のようにして決定される。すなわち、受信バッファ11~13の最大格納数の中で最も小さい最大格納数は、受信バッファ11の最大格納数“15”[個]である。この最大格納数“15”を“1”とみなしたときの全ての受信バッファ11~13の最大格納数の合計値を求める。すなわち、“1”と見なされた受信バッファ11の最大格納数と、残りの受信バッファ12及び13の最大格納数“16”及び“17”とが加算され、加算結果“34”が得られる。この加算結果“34”が、検査範囲となるステージ数として決定される。理由は、以下の通りである。
 もし、17個のCパケット及び16個のNパケットに対応するタイプ識別子(計33個)がFF群221に格納されている場合には、先頭ステージ(FF_48)から33ステージ(FF_16)までを使用していることになる。この場合、パケットの送信側は、Cパケット及びNパケットの送信を控える。このため、次に受信有効とされるパケットは必ずPパケットとなる。よって、先頭ステージ(FF_48)から34ステージ(FF_15)までの間には、先頭に受信したPパケットの識別子“P”が必ず格納されることになる。
 従って、FF_48からFF_15までの保持内容を検査すれば、P,N,Cの全てのタイプ識別子の先頭位置を検出することができる。従って、実施形態3では、図7に示したように、検査範囲(先頭から34ステージまで)に相当するFF_48~FF_15の出力側にのみ、デコーダ224が設けられている。
 この検査範囲の決定手法では、各受信バッファの最大受信可能数が2以上で、且つ全ての受信バッファの最大受信可能数が等しい場合に、検査が必要なステージ数(検査範囲)は最も小さくなる。
 例えば、実施形態1のように、全ての受信バッファ11~13の最大格納数がそれぞれ16[個]である場合には、受信バッファのいずれか一つの最大格納数を1とみなしたときの全ての受信バッファの最大格納数の合計値を求める。すると、1+16+16=33となり、実施形態3の例よりも検査範囲が小さくなる。
 実施形態3によれば、FFの保持内容をデコードするデコーダ224は、検査範囲に属するFF_48~FF_15のみに設けられる。これによって、デコーダ224の数、及び各デコーダ224と先頭位置検出回路23とのライン数を減らすことができる。よって、パケット読出制御装置の回路量の削減を図ることができる。
 実施形態1~3に示した構成は、適宜組み合わせることができる。また、実施形態1~3で説明した構成は、複数の受信バッファからのパケット(データブロック)読出しに関して、パケット(データブロック)の到来順と、受信バッファ間の優先順位を考慮するようなパケット読出装置(データブロック読出装置)に適用することができる。
 実施形態1~3では、データブロックがパケットである例について説明したが、データブロックの形式は“パケット”に限定されず、“フレーム”,“データグラム”,“セル”,“ファイル”,“ページ”などと呼ばれる様々なデータブロックの単位であって、振分単位として適用可能な識別子が付与されるものであれば良い。
 また、実施形態1~3では、振分単位がパケットタイプである例について説明したが、振分単位は、データブロックに関わる様々な単位(属性種別)を適用することができる。また、振分単位は、同種類のデータブロックの転送先を示す識別子であっても良い。例えば、振分単位は、データブロックの転送先の識別子(チャネル種別)であっても良い。この場合、チャネルは実チャネルでも仮想チャネルであってもよい。或いは、振分単位は、データブロックの宛先を示すアドレスであっても良い。
L1~L4・・・信号線
1・・・パケット読出制御装置
10・・・受信バッファ群
11,12,13・・・受信バッファ
11A・・・セレクタ
16・・・監視部
20・・・パケット読出回路
21・・・受信バッファ書込制御回路
22・・・オーダーバッファ
23・・・先頭位置検出回路
24・・・調停回路
25・・・受信バッファ読出制御回路
26・・・受信部
27・・・セレクタ
221・・・フリップフロップ群(FF群)
222・・・カウンタ
223・・・書込/読出制御部
224・・・デコーダ
225・・・有効範囲選択部
226・・・AND回路群
231・・・先頭P位置検出回路
232・・・先頭N位置検出回路
233・・・先頭C位置検出回路
2231・・・セレクタ
2232・・・デコーダ
2233,2234,2238・・・AND回路群
2237・・・シフト制御部

Claims (7)

  1.  振分単位毎に用意された複数の受信バッファに格納される複数のデータブロックのそれぞれに対応する振分単位の識別子が当該複数のデータブロックの到来順で並べられた識別子列を格納する順序バッファと、
     前記識別子列における各振分単位の識別子の先頭位置を検出する検出部と、
    少なくとも、前記各振分単位の識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定する決定部と、
    前記決定部で決定されたデータブロックを前記複数の受信バッファの一つから読み出す読出部とを含み、
    前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックに対応する振分単位の全てを表すために要求される最小数のビットで表現される
    データブロック読出制御装置。
  2.  前記順序バッファは、前記識別子列を形成する複数の振分単位の識別子のそれぞれが格納される、少なくとも前記複数の受信バッファで格納可能なデータブロックの総数と等しい数の複数の記憶領域を有し、
    前記検出部は、前記複数の記憶領域の保持内容を検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
    請求項1に記載のデータブロック読出装置。
  3.  前記複数の受信バッファに保持される複数のデータブロックに対応する振分単位の識別子を前記複数の記憶領域に先頭詰めで格納する制御を行う書込/読出制御部をさらに含み、
    前記検出部は、前記複数の記憶領域の保持内容を前記順序バッファの先頭側から検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
    請求項2に記載のデータブロック読出制御装置。
  4.  前記振分単位の数が2のn乗(n=1,2,3,・・・)の場合には、前記最小数ビットが採り得る値の全てに前記振分単位の全てが割り当てられ、
    前記振分単位の数が2のn乗より1少ない場合には、前記最小数ビットが採り得る値の一つが振分単位の未割り当てを示す識別子として用いられ、
    前記書込/読出制御部は、前記複数の格納領域に前記振分単位の識別子が先頭詰めで格納されるとともに、前記振分単位の識別子が格納されていない各格納領域が前記振分単位の未割り当てを示す識別子で満たされるように、前記複数の記憶領域に対する前記振分単位の識別子の格納制御を行う
    請求項3に記載のデータブロック読出制御装置。
  5.  前記複数の受信バッファに対する前記データブロックの最大格納数が夫々異なる場合に、前記検出部は、先頭の記憶領域から連続する、データブロックの最大格納数が最も小さい前記複数の受信バッファの一つの最大格納数を1とみなしたときの全ての受信バッファの最大格納数の合計値に等しい数の記憶領域の記憶内容を検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
    請求項2に記載のデータブロック読出制御装置。
  6.  前記複数の受信バッファにおける前記データブロックの最大格納数が等しい場合に、前記検出部は、先頭の記憶領域から連続する、前記複数の受信バッファのいずれか一つのデータブロックの最大格納数を1とみなしたときの全ての受信バッファの最大格納数の合計値に等しい数の記憶領域の記憶内容を検査することによって、前記識別子列における各振分単位の識別子の先頭位置を検出する
    請求項2に記載のデータブロック読出制御装置。
  7.  振分単位毎に用意された複数の受信バッファに格納される複数のデータブロックのそれぞれに対応する振分単位の識別子が当該複数のデータブロックの到来順で並べられた識別子列を順序バッファに格納し、
     前記識別子列における各振分単位の識別子の先頭位置を検出し、
    少なくとも、前記各振分単位の識別子の先頭位置と、予め定められた前記複数の受信バッファからのデータブロックの読出ルールとに基づいて、前記複数の受信バッファの一つから読み出すべきデータブロックを決定し、
    前記決定されたパケットを前記複数の受信バッファの一つから読み出すことを含み、
    前記振分単位の識別子は、前記複数の受信バッファに格納されるデータブロックの種別の全てを表すために要求される最小数のビットで表現される
    データブロック読出制御方法。
PCT/JP2010/054141 2010-03-11 2010-03-11 データブロック読出制御装置 WO2011111210A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP10847440A EP2547048A1 (en) 2010-03-11 2010-03-11 Data block read-out control device
PCT/JP2010/054141 WO2011111210A1 (ja) 2010-03-11 2010-03-11 データブロック読出制御装置
JP2012504236A JP5316696B2 (ja) 2010-03-11 2010-03-11 データブロック読出制御装置
US13/609,788 US8898406B2 (en) 2010-03-11 2012-09-11 Data block read-out control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/054141 WO2011111210A1 (ja) 2010-03-11 2010-03-11 データブロック読出制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/609,788 Continuation US8898406B2 (en) 2010-03-11 2012-09-11 Data block read-out control apparatus

Publications (1)

Publication Number Publication Date
WO2011111210A1 true WO2011111210A1 (ja) 2011-09-15

Family

ID=44563052

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/054141 WO2011111210A1 (ja) 2010-03-11 2010-03-11 データブロック読出制御装置

Country Status (4)

Country Link
US (1) US8898406B2 (ja)
EP (1) EP2547048A1 (ja)
JP (1) JP5316696B2 (ja)
WO (1) WO2011111210A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111208953A (zh) * 2020-04-16 2020-05-29 广东睿江云计算股份有限公司 一种分布式存储方法及其装置
CN117527714B (zh) * 2024-01-04 2024-03-15 柏科数据技术(深圳)股份有限公司 数据报文的读取方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117241A (ja) * 1988-10-27 1990-05-01 Mitsubishi Electric Corp データ交換装置
JPH05227210A (ja) * 1992-02-12 1993-09-03 Fujitsu Ltd バッファ制御回路
JPH11298521A (ja) * 1998-04-15 1999-10-29 Matsushita Electric Ind Co Ltd サーバ装置
JP2000286867A (ja) * 1999-01-29 2000-10-13 Oki Electric Ind Co Ltd 通信装置およびシェーピング処理方法
JP2005518578A (ja) * 2001-10-15 2005-06-23 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム
JP2005210606A (ja) * 2004-01-26 2005-08-04 Ntt Communications Kk パケットの優先制御を行う通信装置及び優先制御方法並びにプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03182140A (ja) * 1989-12-11 1991-08-08 Mitsubishi Electric Corp 共通バッファ形交換装置
JP3227133B2 (ja) * 1994-07-21 2001-11-12 富士通株式会社 Atm交換機
JP3578953B2 (ja) * 1999-12-22 2004-10-20 三菱電機株式会社 セルスケジューリング装置及びセルスケジューリング方法
US7889762B2 (en) * 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US8255599B2 (en) * 2006-03-28 2012-08-28 Integrated Device Technology Inc. Packets transfer device having data absorbing buffers with elastic buffer capacities

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117241A (ja) * 1988-10-27 1990-05-01 Mitsubishi Electric Corp データ交換装置
JPH05227210A (ja) * 1992-02-12 1993-09-03 Fujitsu Ltd バッファ制御回路
JPH11298521A (ja) * 1998-04-15 1999-10-29 Matsushita Electric Ind Co Ltd サーバ装置
JP2000286867A (ja) * 1999-01-29 2000-10-13 Oki Electric Ind Co Ltd 通信装置およびシェーピング処理方法
JP2005518578A (ja) * 2001-10-15 2005-06-23 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム
JP2005210606A (ja) * 2004-01-26 2005-08-04 Ntt Communications Kk パケットの優先制御を行う通信装置及び優先制御方法並びにプログラム

Also Published As

Publication number Publication date
JP5316696B2 (ja) 2013-10-16
US20130007383A1 (en) 2013-01-03
JPWO2011111210A1 (ja) 2013-06-27
US8898406B2 (en) 2014-11-25
EP2547048A1 (en) 2013-01-16

Similar Documents

Publication Publication Date Title
US8473657B2 (en) High speed packet FIFO output buffers for switch fabric with speedup
US20050248970A1 (en) Distributed content addressable memory
JP2019091333A (ja) データ転送装置、演算処理装置及びデータ転送方法
US20130250954A1 (en) On-chip router and multi-core system using the same
US20010023469A1 (en) Distributed type input buffer switch system for transmitting arbitration information efficiently and method for processing input data using the same
JP5332430B2 (ja) 共有メモリシステム
JP5316696B2 (ja) データブロック読出制御装置
JP4316349B2 (ja) パケット転送経路制御装置および制御プログラム
JP2010211322A (ja) ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
US8363653B2 (en) Packet forwarding method and device
US20120198173A1 (en) Router and many-core system
JP5847887B2 (ja) オンチップルータ及びそれを用いたマルチコアシステム
JPH10322347A (ja) ネットワーク通信装置
US20030063603A1 (en) Self-routing data switching system
US6847637B1 (en) Unit and method for switching data packets, a data processing apparatus comprising such a unit and a network comprising them
US8073999B2 (en) Data input-output control apparatus
JP3255113B2 (ja) パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体
US6282203B1 (en) Packet data transmitting apparatus, and method therefor
US11456973B2 (en) Circuit for a buffered transmission of data
JP2002164914A (ja) パケット交換装置
JPH11234333A (ja) ゲートウェイ装置
JP2003298601A (ja) パケット並替装置、オーバーフロー処理方法、プログラム、及び記憶媒体
JP2584841B2 (ja) パケット交換制御装置
JP3434787B2 (ja) Hdlcフレーム変換回路
JP2000332752A (ja) パケット交換装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10847440

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2012504236

Country of ref document: JP

Ref document number: 2010847440

Country of ref document: EP