KR20120034889A - Apparatus and method for packet transceiver - Google Patents

Apparatus and method for packet transceiver Download PDF

Info

Publication number
KR20120034889A
KR20120034889A KR1020100096261A KR20100096261A KR20120034889A KR 20120034889 A KR20120034889 A KR 20120034889A KR 1020100096261 A KR1020100096261 A KR 1020100096261A KR 20100096261 A KR20100096261 A KR 20100096261A KR 20120034889 A KR20120034889 A KR 20120034889A
Authority
KR
South Korea
Prior art keywords
data
present
packet
field
pcie
Prior art date
Application number
KR1020100096261A
Other languages
Korean (ko)
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 KR1020100096261A priority Critical patent/KR20120034889A/en
Publication of KR20120034889A publication Critical patent/KR20120034889A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Abstract

PURPOSE: A packet transceiver device and a method thereof are provided to add a control field and an address field to a data field. CONSTITUTION: A PCIe(Peripheral Component Interconnect express) interface unit(210) is connected to a PCIe bus. The PCIe interface unit transmits and receives a packet through the connected PCIe bus. A coding unit(220) analyzes a data field of the received packet. The coding unit performs conversion into one or more read or write commands according to an attribute of the data field. One or more read or write commands are executed.

Description

패킷 송수신 장치 및 방법{APPARATUS AND METHOD FOR PACKET TRANSCEIVER}Packet transmitting and receiving device and method {APPARATUS AND METHOD FOR PACKET TRANSCEIVER}

본 발명의 실시예들은 PCI-EXPRESS 버스로 연결된 장치 간의 패킷을 전송하는 패킷 송수신 장치 및 방법에 관한 것으로서, 더욱 상세하게는 패킷의 데이터 필드에 제어 정보 및 주소 정보를 부가하여 데이터와 함께 전송하는 장치 및 방법에 관한 것이다.Embodiments of the present invention relate to a packet transmitting and receiving apparatus and method for transmitting a packet between devices connected by a PCI-EXPRESS bus, and more particularly, a device for adding control information and address information to a data field of a packet and transmitting the same together with data. And to a method.

최근에는 고속으로 대용량의 데이터 전송하기 위하여 직렬 구조의 버스 방식인 PCIe(Peripheral Component Interconnect Express) 버스가 많이 사용되고 있다. Recently, a Peripheral Component Interconnect Express (PCIe) bus, which is a serial bus method, has been widely used to transmit a large amount of data at high speed.

PCIe 버스 방식의 데이터 전송 장치는 데이터 전송을 위하여 전송 데이터를 작은 데이터 단위로 구성된 패킷으로 분할하여 순차적으로 전송하는데, 상기 패킷은 크게 헤더(HEADER) 필드와 데이터(DATA) 필드로 구분할 수 있다.The PCIe bus type data transmission apparatus sequentially transmits data by dividing the transmission data into packets composed of small data units for data transmission. The packets may be largely divided into a header field and a data field.

일반적으로 패킷의 헤더 필드에는 명령 타입, 데이터 길이, 주소 등의 제어 정보가 저장되며, 데이터 필드에는 전송하여야 할 데이터가 저장된다.In general, control information such as command type, data length, and address are stored in a header field of a packet, and data to be transmitted is stored in a data field.

PCIe 버스를 통하여 전송하는 패킷은 PCIe 기본(BASE) 스펙 REV.2.1에 해당하는 트랜잭션 레이어 패킷을 예로 들 수 있다.A packet transmitted through the PCIe bus may be a transaction layer packet corresponding to the PCIe BASE specification REV.2.1.

예를 들어, 트랜잭션 레이어 패킷은 데이터 필드가 100 바이트 이상의 경우 전송 효율이 높지만, 데이터 필드가 4 바이트인 경우 헤더 필드는 16 바이트이므로 전송 효율이 저하 될 수 있다. For example, the transaction layer packet has a high transmission efficiency when the data field is 100 bytes or more, but when the data field is 4 bytes, the header field is 16 bytes, and thus the transmission efficiency may be reduced.

그리고 상기 트랜잭션 레이어 패킷을 PCIe 버스로 전송하기 위해서는 데이터 링크 층에서의 시이퀀스 넘버 및 LCRC(Link Cyclic Redundancy Check)가 부가되고 물리층에서는 프레이밍(Framing) 정보가 부가된다.In order to transmit the transaction layer packet to the PCIe bus, a sequence number and a Link Cyclic Redundancy Check (LCRC) are added at the data link layer, and framing information is added at the physical layer.

따라서, 트랜잭션 레이어 패킷은 연속적인 주소를 갖는 대량의 데이터 전송의 경우 효율적이나 데이터 필드가 16바이트 이내의 데이터 전송에는 전송 효율이 저하될 수 있다. Therefore, the transaction layer packet is efficient in the case of a large data transmission having a continuous address, but the transmission efficiency may be deteriorated in the data transmission having a data field of 16 bytes or less.

또한, 패킷 송수신 장치는 트랜지스터의 고집적화로 인하여 반도체 소자가 CPU 블록, 통신 블록 등의 고 집적 블록으로 구성되므로, 각 블록마다 메모리 주소가 할당되어 하나의 반도체 소자를 이용하여 데이터 통신을 하는 경우에도 다양한 주소를 사용한다.In addition, since the semiconductor device is composed of a high integration block such as a CPU block and a communication block due to the high integration of transistors, the packet transceiver device has a memory address assigned to each block, and thus various data communication can be performed using a single semiconductor device. Use an address.

패킷 송수신 장치는 전술한 바와 같이 다양한 주소를 이용하여 데이터 통신을 하는 경우, 소량의 데이터 통신이 많아지므로 전송 효율이 떨어질 수 있다.As described above, when the packet transceiver performs data communication using various addresses, a small amount of data communication increases, which may reduce transmission efficiency.

본 발명의 일실시예는 데이터 필드에 제어 필드 및 주소 필드를 추가하여 전체적인 패킷 전송 효율을 향상시키는 것을 목적으로 한다.An embodiment of the present invention aims to improve overall packet transmission efficiency by adding a control field and an address field to a data field.

또한, 본 발명의 일실시예는 PCIe 버스를 사용하여 데이터를 전송하는 장치에 있어서, 연속되지 않은 주소에 대한 읽기 또는 쓰기 실행시 전송 효율을 향상시키는 것을 목적으로 한다.In addition, an embodiment of the present invention, in the apparatus for transmitting data by using the PCIe bus, the object of the present invention is to improve the transmission efficiency when performing read or write on a non-contiguous address.

본 발명의 일실시예에 따른 패킷 송수신 장치는 PCIe(Peripheral Component Interconnect Express) 버스를 이용한 패킷 송수신 장치에 있어서, 상기 PCIe 버스에 연결되고, 상기 연결된 PCIe 버스를 통하여 패킷을 송수신하는 PCIe 인터페이스부, 상기 수신된 패킷의 데이터 필드를 분석하고, 상기 데이터 필드의 속성에 따라 상기 패킷을 읽기 또는 쓰기 가용한 패킷으로 변환하는 코딩부 및 상기 변환된 패킷에 대한 읽기 명령 또는 쓰기 명령을 실행하는 하나 이상의 명령 실행부를 포함한다.According to an embodiment of the present invention, a packet transceiver includes a PCIe interface unit for transmitting and receiving a packet through a PCIe bus (Peripheral Component Interconnect Express) bus, the PCIe interface unit for transmitting and receiving packets through the connected PCIe bus, Executes one or more instructions for analyzing a data field of a received packet, and executing a coding unit for converting the packet into a packet that is read or write capable according to the attribute of the data field, and executing a read command or a write command for the converted packet. Contains wealth.

본 발명의 일측에 따른 코딩부는 상기 읽기 명령 또는 상기 쓰기 명령을 실행하는 경우, 둘 이상의 바이트를 연속적으로 처리할 수 있다.The coding unit according to an embodiment of the present invention may process two or more bytes consecutively when executing the read command or the write command.

본 발명의 일측에 따른 코딩부는 상기 둘 이상의 읽기 명령 요청을 상기 하나 이상의 명령 실행부에 요청한 경우, 상기 읽기 명령을 수행한 명령 실행부의 데이터를 데이터 필드에 작성하여 상기 PCIe 인터페이스부로 전송할 수 있다.When the coding unit requests the two or more read command requests to the one or more command execution units, the coding unit writes data in the command execution unit that performed the read command in a data field and transmits the data to the PCIe interface unit.

본 발명의 일측에 따른 코딩부는 상기 작성된 데이터 필드의 크기가 패킷의 헤더 필드에서 제공하는 최대 크기를 초과하는 경우, 상기 최대 크기까지 상기 데이터를 나누어서 상기 PCIe 인터페이스부로 전송할 수 있다.The coding unit according to an embodiment of the present invention may divide the data to the maximum size and transmit the divided data to the PCIe interface unit when the size of the created data field exceeds the maximum size provided by the header field of the packet.

본 발명의 일실시예에 따르면 데이터 필드에 제어 필드 및 주소 필드를 추가하여 전체적인 패킷 전송 효율을 향상시킬 수 있다.According to an embodiment of the present invention, the overall packet transmission efficiency may be improved by adding a control field and an address field to the data field.

또한, 본 발명의 일실시예에 따르면 PCIe 버스를 사용하여 데이터를 전송하는 장치에 있어서, 연속되지 않은 주소에 대한 읽기 또는 쓰기 실행시 전송 효율을 향상시킬 수 있다.In addition, according to an embodiment of the present invention, in the apparatus for transmitting data using the PCIe bus, it is possible to improve transmission efficiency when reading or writing to a non-contiguous address.

도 1은 본 발명의 일실시예에 따른 패킷 송수신 장치의 기초가 되는 SoC(System on Chip)의 일예를 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 패킷 송수신 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 패킷 송수신 시스템의 구성을 도시한 블록도이다.
도 4는 본 발명의 일측에 따른 데이터 필드의 일예를 도시한 도면이다.
도 5는 본 발명의 일측에 따른 데이터 필드의 다른 예를 도시한 도면이다.
1 is a block diagram illustrating an example of a system on chip (SoC) that is a basis of a packet transceiver according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a packet transmission and reception apparatus according to an embodiment of the present invention.
3 is a block diagram showing the configuration of a packet transmission and reception system according to an embodiment of the present invention.
4 is a diagram illustrating an example of a data field according to an embodiment of the present invention.
5 is a diagram illustrating another example of a data field according to an embodiment of the present invention.

이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and accompanying drawings, but the present invention is not limited to or limited by the embodiments.

한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.On the other hand, in describing the present invention, when it is determined that the detailed description of the related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. The terminology used herein is a term used for appropriately expressing an embodiment of the present invention, which may vary depending on the user, the intent of the operator, or the practice of the field to which the present invention belongs. Therefore, the definitions of the terms should be made based on the contents throughout the specification.

본 발명의 일측에 따른 패킷 송수신 장치는 데이터를 읽기 또는 쓰기 원하는 반도체 소자로 구성되고, 상기 구성된 반도체 소자는 내부 블록의 메모리 주소로 패킷 헤더의 주소를 설정하지 않을 수 있다.According to an aspect of the present invention, a packet transmission / reception apparatus includes a semiconductor device for reading or writing data, and the configured semiconductor device may not set an address of a packet header as a memory address of an internal block.

본 발명의 일측에 따른 패킷 송수신 장치는 하나의 주소로 반도체 소자를 결정할 수 있고, 반도체 소자 내에서 데이터 필드를 추출하여 데이터 필드 내의 제어 정보와 주소 정보를 디코딩하여 처리를 수행할 수 있다. According to an embodiment of the present invention, a packet transmission / reception apparatus may determine a semiconductor device by one address, extract a data field in the semiconductor device, and decode the control information and address information in the data field to perform processing.

본 발명의 일측에 따른 패킷 송수신 장치의 CPU는 반도체 소자 내의 레지스터, 메모리 블록을 액세스하기 위하여 순차적으로 반도체 소자 내의 주소로 읽기 또는 쓰기를 요청한다. The CPU of the packet transceiver according to an embodiment of the present invention sequentially requests reading or writing to an address in the semiconductor device in order to access a register or a memory block in the semiconductor device.

상기와 같은 경우, 본 발명의 일측에 따른 패킷 송수신 장치는 데이터 양이 적을 경우, 전송 효율이 저하되므로 하나의 반도체 소자내의 읽기 또는 쓰기를 모아서 하나의 주소의 헤더에 첨부하여 송신하면 전송 효율이 향상될 수 있다.In the case described above, the packet transmission / reception apparatus according to one embodiment of the present invention decreases the transmission efficiency when the amount of data is small. Therefore, when the read or write in one semiconductor element is collected and attached to the header of one address, the transmission efficiency is improved. Can be.

예를 들어, 본 발명의 일측에 따른 패킷 송수신 장치는 패킷이 쓰기 명령으로만 되어 있는 경우 쓰기 헤더를 붙이고, 읽기 명령 및 쓰기 명령이 함께 있는 경우 읽기 헤더에 붙임으로써 전송 효율을 향상시킬 수 있다.For example, the packet transmission / reception apparatus according to one embodiment of the present invention may improve transmission efficiency by attaching a write header when a packet is only a write command and attaching it to a read header when both a read command and a write command are present.

도 1은 본 발명의 일실시예에 따른 패킷 송수신 장치의 기초가 되는 SoC(System on Chip)의 일예를 도시한 블록도이다. 1 is a block diagram illustrating an example of a system on chip (SoC) that is a basis of a packet transceiver according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일측에 따른 SoC는 통신 블록(110), CPU 블록(120), 메모리 블록(130), 응용 1 블록(140), 응용 2 블록(140)으로 구성되고 외부 프로세서가 각 블록에 대하여 레지스터 또는 메모리를 초기화하는 경우, 각 블록의 주소에 각각 외부 프로세서가 데이터를 기록하는 것은 하나의 SoC에 5회의 데이터 전송이 필요하므로 비효율적일 수 있다.Referring to FIG. 1, an SoC according to an embodiment of the present invention is composed of a communication block 110, a CPU block 120, a memory block 130, an application 1 block 140, an application 2 block 140, and an external processor. Initializes registers or memory for each block, it may be inefficient to write data by an external processor at the address of each block because it requires five data transfers to one SoC.

따라서, 본 발명의 일측에 따른 SoC는 모든 블록의 써야 할 데이터를 모아 하나의 데이터로 만들고, 하나의 헤더를 붙여서 전송하고 SoC에서 수신된 데이터를 해석하여 각 해당 블록에 해당 데이터를 기록함으로써, 데이터 전송은 1회만 수행하므로 데이터 전송 효율이 향상될 수 있다.Accordingly, the SoC according to one aspect of the present invention collects data to be written in all blocks into one data, transmits with one header, interprets the data received from the SoC, and records the corresponding data in each corresponding block. Since the transmission is performed only once, the data transmission efficiency can be improved.

본 발명의 일측에 따른 SoC는 읽기 명령 및 쓰기 명령이 같이 있는 경우, 쓰기 데이터를 먼저 기록한 후, 읽기 명령을 수행하여 읽은 데이터를 모아서 전송하면 전송효율이 향상될 수 있다.When the SoC according to the present invention has a read command and a write command together, the write efficiency may be improved by first writing the write data and then collecting and transmitting the read data by performing the read command.

도 2는 본 발명의 일실시예에 따른 패킷 송수신 장치의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of a packet transmission and reception apparatus according to an embodiment of the present invention.

도 2을 참조하면, 본 발명의 일실시예에 따른 패킷 송수신 장치는 PCIe 인터페이스부(210), 코딩부(220) 및 하나 이상의 명령 실행부(230)로 구성된다. Referring to FIG. 2, the packet transmission / reception apparatus according to an embodiment of the present invention includes a PCIe interface unit 210, a coding unit 220, and one or more command execution units 230.

도 1에 대응하는 SoC와 비교하여 설명하면, 도 2의 SoC의 통신 블록(110)은 명령실행부 1이고 CPU 블록(120)은 명령실행부 2이고 순차적으로 응용 2 블록(140)은 명령실행부 5가 된다.When compared with the SoC corresponding to FIG. 1, the communication block 110 of the SoC of FIG. 2 is the instruction execution unit 1, the CPU block 120 is the instruction execution unit 2, and the application 2 block 140 sequentially executes the instruction. Part 5

본 발명의 일실시예에 따른 PCIe 인터페이스부(210)는 PCIe 버스에 연결되고, 상기 연결된 PCIe 버스를 통하여 패킷을 송수신한다.PCIe interface unit 210 according to an embodiment of the present invention is connected to the PCIe bus, and transmits and receives packets through the connected PCIe bus.

본 발명의 일실시예에 따른 코딩부(220)는 상기 수신된 패킷의 데이터 필드를 분석하고, 상기 데이터 필드의 속성에 따라 상기 패킷을 읽기 또는 쓰기 명령으로 변환하여 해당하는 명령 실행부(230)에 전송한다.The coding unit 220 according to an embodiment of the present invention analyzes the data field of the received packet, converts the packet into a read or write command according to the property of the data field, and then executes a corresponding command execution unit 230. To transmit.

본 발명의 일실시예에 따른 명령 실행부(230)는 상기 변환된 명령에 대한 읽기 명령 또는 쓰기 명령을 실행한다.The command execution unit 230 according to an embodiment of the present invention executes a read command or a write command for the converted command.

본 발명의 일측에 따른 명령 실행부(230)는 상기 읽기 명령 또는 상기 쓰기 명령을 실행하는 경우, 둘 이상의 블록이 읽기 또는 쓰기 명령을 병렬적으로 처리할 수 있다.When the command execution unit 230 according to one aspect of the present invention executes the read command or the write command, two or more blocks may process the read or write command in parallel.

도 3은 본 발명의 일실시예에 따른 패킷 송수신 시스템의 구성을 도시한 블록도이다.3 is a block diagram showing the configuration of a packet transmission and reception system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일측에 따른 제1 코딩부(320)는 제1 PCIe 인터페이스부로부터 PCIe 트랜잭션 패킷을 수신할 경우, 데이터 필드를 디코딩하여 명령 실행부(330)가 관련 명령을 처리하도록 디코딩된 데이터 필드를 전송한다.Referring to FIG. 3, when the first coding unit 320 according to an embodiment of the present invention receives a PCIe transaction packet from the first PCIe interface unit, the command execution unit 330 processes a related command by decoding a data field. Transmit the decoded data field.

본 발명의 일측에 따른 제1 코딩부(320)는 하나 이상의 명령실행부(330)로부터 PCIe 트랜잭션 패킷을 수신할 경우, 데이터 필드를 인코딩하여 제1 PCIe 인터페이스부(310)로 전송한다. When the first coding unit 320 according to an embodiment of the present invention receives a PCIe transaction packet from one or more command execution units 330, the first coding unit 320 encodes a data field and transmits the data field to the first PCIe interface unit 310.

본 발명의 일측에 따른 제2 PCIe 인터페이스부(340)는 PCIe 버스를 통하여 상기 인코딩된 데이터 필드를 수신하고, 수신된 데이터 필드를 제2 코딩부(350)로 전송한다. 이때, 본 발명의 일측에 따르면, 제 2 코딩부(350)는 데이터 필드를 분석하여 CPU(360)에 필요한 정보를 전송한다.The second PCIe interface 340 according to an embodiment of the present invention receives the encoded data field through the PCIe bus and transmits the received data field to the second coding unit 350. At this time, according to one side of the present invention, the second coding unit 350 transmits the necessary information to the CPU 360 by analyzing the data field.

본 발명의 일측에 따르면, CPU(360)의 제2 PCIe 인터페이스부(340)는 제2 코딩부(350)에 의하여 SoC의 모든 블록을 하나의 주소로 액세스할 수 있다.According to one side of the present invention, the second PCIe interface unit 340 of the CPU 360 may access all blocks of the SoC by one address by the second coding unit 350.

본 발명의 일측에 따른 패킷 송수신 장치는 하나의 블록만을 액세스할 경우, 단일 데이터를 사용하여 통신할 수 있다.According to an embodiment of the present invention, when a packet transmission / reception apparatus accesses only one block, it may communicate using a single data.

본 발명의 일측에 따른 패킷 송수신 장치는 하나의 블록 내에서 연속되지 않은 여러 주소를 액세스하거나 여러 블록을 액세스하는 경우, 각 데이터를 하나의 데이터로 묶어서 전송하여 전송 효율을 향상시킬 수 있다.According to an aspect of the present invention, when a packet transceiving apparatus accesses multiple addresses that are not contiguous in one block or accesses multiple blocks, the packet transmission / reception apparatus may improve transmission efficiency by grouping each data into one data.

본 발명의 일측에 따른 코딩부는 상기 둘 이상의 읽기 명령 요청을 상기 하나 이상의 명령 실행부에 요청한 경우, 상기 읽기 명령을 수행한 명령 실행부의 데이터를 데이터 필드에 작성하여 상기 제1 PCIe 인터페이스부로 전송할 수 있다.When the coding unit requests the two or more read command requests to the one or more command execution units, the coding unit may write data in the command execution unit that performs the read command in a data field and transmit the data to the first PCIe interface unit. .

본 발명의 일측에 따른 코딩부는 상기 작성된 데이터 필드의 크기가 패킷의 헤더 필드에서 제공하는 최대 크기를 초과하는 경우, 상기 최대 크기까지 상기 데이터를 나누어서 상기 제1 PCIe 인터페이스부로 전송할 수 있다.According to an aspect of the present invention, when the size of the created data field exceeds the maximum size provided by the header field of the packet, the coding unit may divide the data to the maximum size and transmit the divided data to the first PCIe interface unit.

도 4는 본 발명의 일측에 따른 헤더 필드와 데이터 필드의 일예를 도시한 도면이다. 이때, 도 4는 바이트 0에서 바이트 15는 헤더 필드이고 바이트 16부터 바이트 N까지가 데이터 필드를 가정한다.4 is a diagram illustrating an example of a header field and a data field according to an embodiment of the present invention. 4 assumes that byte 0 through byte 15 are header fields and byte 16 through byte N are data fields.

예를 들어, 본 발명의 일측에 따르면, CV(Control Valid) 필드는 도 4에 도시된 바와 같이 바이트 20 이후의 데이터가 전송할 데이터인지 주소 정보인지를 알려 주는 필드이다.For example, according to one side of the present invention, a control valid (CV) field is a field indicating whether data after byte 20 is data to be transmitted or address information, as shown in FIG.

예를 들어, 본 발명의 일측에 따르면, CV 필드는 0인 경우 데이터 필드로 가정할 수 있고, 1인 경우 주소 필드로 가정할 수 있다.For example, according to one side of the present invention, the CV field may be assumed to be a data field when 0, and when it is 1, it may be assumed to be an address field.

도 4를 참조하면, 본 발명의 일측에 따르면 CV 필드는 1에서 10까지 존재하므로 여러 데이터를 병합하여 전송할 경우 최대 10개까지 데이터 필드 또는 주소 필드로 구분할 수 있다.Referring to FIG. 4, according to an embodiment of the present invention, since a CV field exists from 1 to 10, up to 10 data fields or address fields may be divided when transmitting and merging multiple data.

본 발명의 일측에 따르면, CV 필드는 데이터 필드가 헤더의 길이(Length)값을 초과하는 경우 10개까지 지원을 못 할 수 있으며, CV 1 ~ CV 10이 모두 0인 경우 바이트 20 이후의 데이터가 모두 데이터 필드가 되므로 하나의 패킷만을 전송하는 것으로 볼 수 있다.According to one aspect of the present invention, the CV field may not support up to 10 data fields when the length of the header exceeds the length (Length) value, if the CV 1 ~ CV 10 is all 0 data after byte 20 Since all data fields, only one packet can be considered to be transmitted.

본 발명의 일측에 따라 CV 필드가 1인 것으로 가정하면, RW(Read/Write) 필드는 바이트 20 이후의 데이터를 주소로 사용하여 읽기 명령 또는 쓰기 명령을 요청하는 필드로 가정할 수 있다. According to an embodiment of the present invention, if the CV field is 1, the RW (Read / Write) field may be assumed to be a field for requesting a read command or a write command using data after byte 20 as an address.

상기와 같은 경우, 본 발명의 일측에 따른 RW 필드는 0인 경우 읽기 명령 요청을 의미하고, 1인 경우 쓰기 명령 요청을 의미할 수 있다.In this case, the RW field according to one side of the present invention may mean a read command request in the case of 0 and a write command request in the case of 1.

본 발명의 일측에 따르면 RW 필드는 CV 필드와 같이 1에서 10까지 할당 할 수 있고, CV 1는 RW 1과 연결되고 CV 2는 RW 2와 연결되는 등 순차적으로 CV 필드와 RW 필드는 서로 연결될 수 있다.According to an aspect of the present invention, the RW field may be allocated from 1 to 10 like the CV field, the CV 1 may be connected to the RW 1, the CV 2 may be connected to the RW 2, and the CV field and the RW field may be sequentially connected to each other. have.

본 발명의 일측에 따르면 BT(Burst) 필드는 읽기 명령 또는 쓰기 명령을 실행하기 위하여 하나의 바이트를 요청하는지 여러 바이트를 요청하는지 여부를 표시하는 필드이다.According to an aspect of the present invention, the BT (Burst) field is a field indicating whether to request one byte or several bytes to execute a read command or a write command.

본 발명의 일측에 따른 BT 필드는 0인 경우 하나의 바이트를 읽기 명령 또는 쓰기 명령을 실행하기 위하여 요청하고, 1인 경우 둘 이상의 바이트를 읽기 명령 또는 쓰기 명령을 실행하기 위하여 요청할 수 있다.According to an embodiment of the present invention, if the BT field is 0, one byte may be requested to execute a read command or a write command, and if 1, two or more bytes may be requested to execute a read command or a write command.

본 발명의 일측에 따른 BT 필드는 CV 필드와 같이 1에서 10까지 할당 할 수 있고, CV 1은 BT 1과 연결되고, CV 2는 BT 2와 연결되는 등 순차적으로 CV 필드와 BT 필드는 서로 연결될 수 있다.According to an aspect of the present invention, the BT field may be allocated from 1 to 10 like the CV field, CV 1 may be connected to BT 1, CV 2 may be connected to BT 2, and the CV field and the BT field may be sequentially connected to each other. Can be.

도 5는 본 발명의 일측에 따른 데이터 필드의 다른 예를 도시한 도면이다.5 is a diagram illustrating another example of a data field according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일측에 따른 패킷 송수신 장치는 바이트 16의 8번째 비트가 1로 지정된 경우, CV 1이 1이므로 바이트 20에서 바이트 27까지의 데이터가 수신 장치의 주소를 나타낼 수 있다.Referring to FIG. 5, when the 8th bit of the byte 16 is designated as 1, in the packet transceiving device according to an embodiment of the present invention, data from byte 20 to byte 27 may indicate the address of the receiving device because CV 1 is 1. .

본 발명의 일측에 따른 패킷 송수신 장치는 바이트 17의 6번째 비트가 1로 지정된 경우, RW 1이 1이므로 쓰기 명령을 요청한 경우이다.According to an embodiment of the present invention, when the sixth bit of byte 17 is designated as 1, the packet transmission / reception apparatus requests a write command because RW 1 is 1.

본 발명의 일측에 따른 패킷 송수신 장치는 바이트 17의 5번째 비트가 0으로 지정된 경우, BT 1이 0이므로 읽기 명령 또는 쓰기 명령을 수행하기 위하여 하나의 바이트를 요청한 경우이다.According to an embodiment of the present invention, when the fifth bit of byte 17 is designated as 0, the packet transmission / reception apparatus requests one byte to perform a read command or a write command because BT 1 is 0.

이때, 본 발명의 일측에 따른 패킷 송수신 장치는 바이트 28에 하나의 바이트의 쓰기 데이터가 저장되어 있고 바이트 29, 30, 31에는 의미 없는 데이터가 저장될 수 있다.In this case, according to an embodiment of the present invention, a packet transceiver may store write data of one byte in byte 28 and meaningless data in bytes 29, 30, and 31.

본 발명의 일측에 따른 패킷 송수신 장치는 CV 2가 1로 지정된 경우, 바이트 32에서 바이트 39에 주소가 있는 것을 의미하고 RW 2가 0이므로 데이터를 읽기 명령을 요청한 경우이다.In the packet transmission / reception apparatus according to the present invention, when CV 2 is designated as 1, it means that there is an address in byte 32 to byte 39, and since RW 2 is 0, a request for reading data is requested.

상기와 같은 경우, 본 발명의 일측에 따른 패킷 송수신 장치는 BT 2가 0이므로 하나의 바이트를 읽기 요청할 수 있다.In this case, the packet transceiver according to an embodiment of the present invention may request to read one byte since BT 2 is zero.

본 발명의 일측에 따른 패킷 송수신 장치는 CV 3가 1인 경우, 바이트 40에서 바이트 47에 주소가 있는 것을 의미하고, RW 3이 1이므로 데이터 쓰기를 요청한 경우이다.According to an embodiment of the present invention, when the packet transmission / reception apparatus CV 3 is 1, it means that there is an address in byte 40 to byte 47, and when RW 3 is 1, data writing is requested.

본 발명의 일측에 따른 패킷 송수신 장치는 BT 3가 1이므로 둘 이상의 바이트 쓰기(버스트 쓰기)를 의미할 수 있다. According to an embodiment of the present invention, the packet transmission / reception apparatus may mean two or more byte writes (burst writes) because BT 3 is 1.

본 발명의 일측에 따른 패킷 송수신 장치는 버스트 쓰기이므로 주소 필드 다음 바이트인 바이트 48에는 버스트 길이를 나타내는 버스트 길이 데이터가 저장될 수 있다.Since a packet transceiver according to an embodiment of the present invention is a burst write, burst length data indicating a burst length may be stored in byte 48 that is the next byte of the address field.

본 발명의 일측에 따른 패킷 송수신 장치는 바이트 48에서 바이트 51을 참조하면 버스트 길이 데이터가 16이므로 16 바이트를 연속으로 쓸 수 있다.According to an embodiment of the present invention, when a packet transceiving apparatus refers to byte 48 to byte 51, since the burst length data is 16, 16 packet may be continuously written.

상기와 같은 경우, 본 발명의 일측에 따르면 바이트 52부터 바이트 67까지는 수신 장치의 주소 3(RealRequest3)에 써야할 16 바이트 데이터가 저장된다.In such a case, according to one side of the present invention, 16 bytes of data to be written to address 3 (RealRequest3) of the receiving device are stored in bytes 52 to byte 67.

본 발명의 일측에 따른 패킷 수신 장치는 읽기 요청이 1회의 경우를 예를 들어서 설명하였으나, 읽기 요청이 둘 이상인 경우 읽은 데이터를 순차적으로 연결하여 하나의 패킷을 생성하여 전송할 수도 있다.Although the packet receiving apparatus according to an embodiment of the present invention has been described with an example of one read request, when more than one read request is performed, the packet receiving apparatus may sequentially connect the read data to generate and transmit one packet.

본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention can be implemented in the form of program instructions that can be executed by various computer means can be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of the computer-readable recording medium include magnetic media such as a hard disk, a floppy disk, and a magnetic tape; optical media such as CD-ROM and DVD; magnetic recording media such as a floppy disk; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by specific embodiments such as specific components and the like. For those skilled in the art to which the present invention pertains, various modifications and variations are possible. Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents or equivalents of the claims as well as the claims to be described later will belong to the scope of the present invention. .

210: PCIe 인터페이스부
220: 코딩부
230: 명령 실행부
210: PCIe interface
220: coding unit
230: command execution unit

Claims (1)

PCIe(Peripheral Component Interconnect Express) 버스를 이용한 패킷 송수신 장치에 있어서,
상기 PCIe 버스에 연결되고, 상기 연결된 PCIe 버스를 통하여 패킷을 송수신하는 PCIe 인터페이스부;
상기 수신된 패킷의 데이터 필드를 분석하고, 상기 데이터 필드의 속성에 따라 하나 이상의 읽기 또는 쓰기 명령으로 변환하는 코딩부; 및
상기 하나 이상의 읽기 또는 쓰기 명령을 실행하는 하나 이상의 명령 실행부
를 포함하는 것을 특징으로 하는 패킷 송수신 장치.
In the packet transmitting and receiving apparatus using a Peripheral Component Interconnect Express (PCIe) bus,
A PCIe interface unit connected to the PCIe bus and transmitting and receiving a packet through the connected PCIe bus;
A coding unit for analyzing a data field of the received packet and converting the data field into one or more read or write commands according to attributes of the data field; And
One or more command execution units that execute the one or more read or write commands
Packet transmitting and receiving apparatus comprising a.
KR1020100096261A 2010-10-04 2010-10-04 Apparatus and method for packet transceiver KR20120034889A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100096261A KR20120034889A (en) 2010-10-04 2010-10-04 Apparatus and method for packet transceiver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100096261A KR20120034889A (en) 2010-10-04 2010-10-04 Apparatus and method for packet transceiver

Publications (1)

Publication Number Publication Date
KR20120034889A true KR20120034889A (en) 2012-04-13

Family

ID=46136985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100096261A KR20120034889A (en) 2010-10-04 2010-10-04 Apparatus and method for packet transceiver

Country Status (1)

Country Link
KR (1) KR20120034889A (en)

Similar Documents

Publication Publication Date Title
US11782866B2 (en) Techniques to support mulitple interconnect protocols for an interconnect
EP2763045B1 (en) Method and apparatus for allocating memory space with write-combine attribute
CN109582614B (en) NVM EXPRESS controller for remote memory access
KR102219845B1 (en) Method and apparatus for compressing addresses
US7155554B2 (en) Methods and apparatuses for generating a single request for block transactions over a communication fabric
US9176673B2 (en) Memory device
KR101988287B1 (en) Storage device and computing system havint its and data transfering method thereof
US8429324B2 (en) Bus-protocol converting device and bus-protocol converting method
US11467764B2 (en) NVMe-based data read method, apparatus, and system
CN109117386B (en) System and method for remotely reading and writing secondary storage through network
CN113961494B (en) Bridging system of PCIE bus and AXI bus
CN106897247B (en) Computing system and method of controlling computing system
US20210103541A1 (en) Inter device data exchange via external bus by utilizing communication port
CN102135946A (en) Data processing method and device
KR101690568B1 (en) Network on a chip socket protocol
KR20120034889A (en) Apparatus and method for packet transceiver
CN107807888B (en) Data prefetching system and method for SOC architecture

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application