KR20190116034A - Network interface apparatus and data processing method for network interface apparauts thereof - Google Patents

Network interface apparatus and data processing method for network interface apparauts thereof

Info

Publication number
KR20190116034A
KR20190116034A KR1020180110252A KR20180110252A KR20190116034A KR 20190116034 A KR20190116034 A KR 20190116034A KR 1020180110252 A KR1020180110252 A KR 1020180110252A KR 20180110252 A KR20180110252 A KR 20180110252A KR 20190116034 A KR20190116034 A KR 20190116034A
Authority
KR
South Korea
Prior art keywords
data
network interface
processing
storage
integrated circuit
Prior art date
Application number
KR1020180110252A
Other languages
Korean (ko)
Other versions
KR102128832B1 (en
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 주식회사 해시블록
Publication of KR20190116034A publication Critical patent/KR20190116034A/en
Application granted granted Critical
Publication of KR102128832B1 publication Critical patent/KR102128832B1/en

Links

Classifications

    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers

Abstract

Provided are a network interface device and a data processing method using the network interface device. A network interface card may comprise: a substrate including a network interface unit for receiving node data from an external network through an external communications port, a bus connection unit connected to a bus of a computing device, and a storage connection unit connected to a storage; a storage controller mounted on the substrate, connected to the storage through the storage connection unit, and controlling the storage; and a use-oriented integrated circuit mounted on the substrate, determining a processing method by receiving the node data from the network interface unit, processing a function corresponding to the node data if the determined processing method is a self-processing method, performing a data processing operation on the storage through the storage controller, and transmitting control data to a central processing device through the bus when the determined processing method is a central processing method.

Description

네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치의 데이터 처리 방법{NETWORK INTERFACE APPARATUS AND DATA PROCESSING METHOD FOR NETWORK INTERFACE APPARAUTS THEREOF}NETWORK INTERFACE APPARATUS AND DATA PROCESSING METHOD FOR NETWORK INTERFACE APPARAUTS THEREOF}

본 발명은 네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치를 이용한 데이터 처리 방법에 관한 것으로, 보다 자세하게는, 특정 목적에 따라 데이터를 송수신할 수 있도록 하는 네트워크 인터페이스 장치와 그 네트워크 인터페이스 장치가 데이터를 처리하는 방법에 관한 것이다.The present invention relates to a network interface device and a data processing method using the network interface device. More particularly, the present invention relates to a network interface device capable of transmitting and receiving data according to a specific purpose, and a method of processing data by the network interface device. It is about.

이 부분에 기술된 내용은 본 실시 예에 대한 배경 정보를 제공하는 것이며, 이 부분에 기재된 것만으로 종래의 기술에 속하는 것은 아니다.The content described in this section provides background information on the present embodiment, and merely described in this section does not belong to the prior art.

서버, PC 등의 컴퓨팅 장치는 CPU, 메모리, 네트워크, 저장 매체(스토리지) 등의 자원을 이용하여 데이터를 처리하고, 저장하며, 외부와 데이터를 송수신할 수 있다. 컴퓨팅 장치가 데이터를 송신 또는 수신하기 위해서는 네트워크 인터페이스 카드(Network Interface Card; NIC)가 이용될 수 있다. 네트워크 인터페이스가 수신한 데이터는 시스템 버스를 이용해 CPU로 전달되고, CPU는 수신된 데이터를 처리하여 데이터 케이블 등을 통해 스토리지에 저장할 수 있다. 또는 스토리지에 저장된 데이터에 대해 CPU가 암호화 등의 데이터 처리를 수행하고, 처리된 데이터를 시스템 버스를 통해 네트워크 인터페이스 카드로 전달하여 외부로 전송할 수 있다.A computing device such as a server or a PC may process and store data using resources such as a CPU, a memory, a network, and a storage medium (storage), and may transmit and receive data to and from the outside. A network interface card (NIC) may be used for the computing device to transmit or receive data. The data received by the network interface is transferred to the CPU using the system bus, and the CPU can process the received data and store it in storage through data cables. Alternatively, the CPU may perform data processing such as encryption on the data stored in the storage, and the processed data may be transferred to the network interface card through the system bus and transmitted to the outside.

또한, 블록 체인(Block Chain) 기술을 이용한 분산 장부 관리 시스템이 여러 분야에서 활용되고 있다. 블록 체인 기술은 블록에 일정 시간 동안 확정된 거래 내역을 기록하고, 각 블록이 네트워크에 있는 모든 참여자에게 전송하며, 승인된 블록이 기존의 블록 체인에 연결되면서 거래가 이루어지도록 하는 기술이다. 블록 체인을 기술을 이용한 분산 장부 관리 시스템의 각 노드를 구성하는 컴퓨팅 장치들은 누구나 열람할 수 있는 장부에 거래 데이터를 기록하고, 각 컴퓨팅 장치들이 주기적으로 기록을 검증하여 해킹을 방지할 수 있다.In addition, a distributed book management system using block chain technology has been used in various fields. Blockchain technology is a technology that records the transaction details established for a certain time in a block, transmits each block to all participants in the network, and allows the transaction to be performed while the approved block is connected to the existing blockchain. Computing devices constituting each node of the distributed book management system using blockchain technology can record transaction data in a book that anyone can view, and each computing device can periodically verify the record to prevent hacking.

따라서, 블록 체인 기술을 이용한 분산 장부 관리 시스템은 노드를 구성하는 컴퓨팅 장치에 거래 데이터를 포함하는 블록을 전달하고, 각 컴퓨팅 장치가 거래 데이터를 장부에 기록한 결과를 회신 받는 과정이 필요하다. 그러나 각 노드에 거래 데이터를 전달하여 처리하고 모든 장부에 거래 데이터가 반영되기까지 지연이 발생한다. 이로 인해 분산 장부 관리 시스템이 처리할 수 있는 시간당 트랜잭션(transaction per second; tps)이 저하되는 문제점이 있다.Therefore, a distributed book management system using blockchain technology requires a process of delivering a block including transaction data to the computing devices constituting the node and receiving a result of returning the transaction data recorded in the book. However, there is a delay before transaction data is delivered to each node for processing and transaction data is reflected in all books. As a result, there is a problem that a transaction per second (tps) that the distributed book management system can process is degraded.

해결하고자 하는 기술적 과제는, 특정 용도로 사용되는 네트워크 인터페이스 장치, 그 네트워크 인터페이스 장치를 이용한 데이터 처리 방법 및 컴퓨팅 장치를 제공하는 것이다.The technical problem to be solved is to provide a network interface device used for a specific purpose, a data processing method and a computing device using the network interface device.

해결하고자 하는 다른 기술적 과제는, 데이터 송수신을 위한 암호화 및 복호화 프로세싱 성능을 높일 수 있는 네트워크 인터페이스 장치 및 그 제어 방법을 제공하는 것이다.Another technical problem to be solved is to provide a network interface device and a control method thereof that can enhance encryption and decryption processing performance for data transmission and reception.

해결하고자 하는 또 다른 기술적 과제는, 수신 또는 송신되는 저장매체에 대한 입출력 속도를 향상시킬 수 있는 네트워크 인터페이스 장치 및 그 제어 방법을 제공하는 것이다.Another technical problem to be solved is to provide a network interface device and a control method thereof that can improve the input and output speed for the storage medium to be received or transmitted.

해결하고자 하는 또 다른 기술적 과제는, 높은 tps를 가지는 블록체인 노드를 구성할 수 있는 컴퓨팅 장치를 제공하는 것이다.Another technical problem to be solved is to provide a computing device capable of constructing a blockchain node having a high tps.

기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.Technical problems are not limited to the above-mentioned technical problems, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following description.

기술적 과제를 해결하기 위한, 몇몇 실시예에 따른 네트워크 인터페이스 장치는, 외부 장치로부터 데이터를 수신하는 외부 통신 포트; 상기 외부 통신 포트로부터 수신된 데이터를 복호화하며, 상기 네트워크 인터페이스 장치에 임베드된 특정 용도 지향 집적 회로(Application Specific Integrated Circuit); 및 스토리지에 연결되어 상기 특정 용도 지향 집적 회로에 의해 복호화된 데이터를 상기 스토리지에 저장하는 I/O 포트;를 포함할 수 있다.In order to solve the technical problem, a network interface device according to some embodiments includes an external communication port configured to receive data from an external device; An application specific integrated circuit for decoding data received from the external communication port and embedded in the network interface device; And an I / O port connected to storage to store data decrypted by the specific purpose-oriented integrated circuit in the storage.

기술적 과제를 해결하기 위한, 몇몇 실시 예에 따른 네트워크 인터페이스 카드는, 외부 네트워크로부터 외부 통신 포트를 통해 노드 데이터를 수신하는 네트워크 인터페이스부, 컴퓨팅 장치의 버스와 연결되는 버스 연결부 및 스토리지와 연결되는 스토리지 연결부를 포함하는 기판; 상기 기판에 실장되며, 상기 스토리지 연결부를 통해 상기 스토리지와 연결되며, 상기 스토리지를 제어하는 스토리지 제어기; 및 상기 기판에 실장되며, 상기 네트워크 인터페이스부로부터 상기 노드 데이터를 전달 받아 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하고, 결정된 처리 방식이 중앙 처리 방식인 경우 상기 버스를 통해 중앙 처리 장치에 제어 데이터를 전송하는 용도 지향 집적 회로를 포함할 수 있다.In order to solve the technical problem, a network interface card according to some embodiments includes a network interface unit for receiving node data from an external network through an external communication port, a bus connection unit connected to a bus of a computing device, and a storage connection unit connected to a storage unit. A substrate comprising a; A storage controller mounted on the substrate and connected to the storage through the storage connection unit and controlling the storage; And a node mounted on the substrate and receiving the node data from the network interface unit to determine a processing method, and when the determined processing method is a self processing method, processes a function corresponding to the node data and stores the storage data through the storage controller. It may include a purpose-oriented integrated circuit for performing a data processing operation for the and transmits control data to the central processing unit via the bus if the determined processing scheme is a central processing scheme.

또한, 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는, 상기 노드 데이터로부터 헤더 데이터를 구분하고, 상기 구분된 헤더 데이터를 이용하여 상기 처리 방식을 결정할 수 있다.According to another exemplary embodiment, the use-oriented integrated circuit may distinguish header data from the node data and determine the processing scheme using the classified header data.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정할 수 있다.In addition, according to another exemplary embodiment, the use-oriented integrated circuit may determine the processing scheme as its own processing scheme when the header data calls a predetermined function.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 미리 정해진 함수는 블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널(kernel) 명령어를 포함할 수 있다.In addition, according to another exemplary embodiment, the predetermined function may include a kernel command of a communication layer for a node of a blockchain to process data.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 노드 데이터에서 개별 거래 데이터 및 기타 거래 데이터를 분류하고, 상기 개별 거래 데이터 및 기타 거래 데이터를 상기 버스를 통하지 않고 상기 스토리지 제어기를 통해 상기 스토리지에 저장할 수 있다.Further, according to some other embodiments, the use-oriented integrated circuit classifies individual transaction data and other transaction data in the node data and passes the individual transaction data and other transaction data through the storage controller without passing through the bus. Can be stored in the storage.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 네트워크 인터페이스 카드는 상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 더 포함할 수 있다.In addition, according to another exemplary embodiment, the network interface card may further include an integrated circuit for processing blockchain data for decoding the node data.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 네트워크 인터페이스 카드는 상기 수신된 노드 데이터를 복호화하거나 전송할 데이터를 암호화하기 위한 키를 제공하는 키 관리 모듈을 더 포함할 수 있다.According to another exemplary embodiment, the network interface card may further include a key management module that provides a key for decrypting the received node data or encrypting data to be transmitted.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 키 관리 모듈은 물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩을 포함할 수 있다.In addition, according to another exemplary embodiment, the key management module may include a hardware chip based on a physically unclonable function.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 결정된 처리 방식이 자체 처리 방식인 경우 상기 하드웨어 칩으로부터 키(key)를 획득하고, 상기 획득된 키를 이용하여 상기 노드 데이터를 복호화할 수 있다.In addition, according to some other embodiments, the use-oriented integrated circuit obtains a key from the hardware chip when the determined processing scheme is a self processing scheme, and decrypts the node data using the obtained key. can do.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 데이터 처리 작업을 완료한 이후 상기 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 버스를 통해 상기 컴퓨팅 장치의 메모리에 로드시킬 수 있다.In addition, according to some embodiments, the use-oriented integrated circuit generates metadata for the data processing task after completing the data processing task, and the generated metadata through the bus memory of the computing device. Can be loaded.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 메타데이터는 상기 데이터 처리 작업에 의해 상기 스토리지에 저장된 데이터의 위치 정보와 변경된 데이터에 대한 정보를 포함할 수 있다.According to another exemplary embodiment, the metadata may include location information of data stored in the storage and information about changed data by the data processing task.

기술적 과제를 해결하기 위한, 몇몇 실시예에 따른 용도 지향 집적 회로는, 노드 데이터가 수신되면 상기 노드 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 분류하는 동작; 상기 헤더 데이터에 기초하여 처리 방식을 결정하는 동작; 및 상기 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하는 동작;을 수행하도록 하는 인스트럭션들을 실행할 수 있다.In order to solve the technical problem, a use-oriented integrated circuit according to some embodiments may include classifying the node data into header data, individual transaction data, and other transaction data when node data is received; Determining a processing scheme based on the header data; And processing a function corresponding to the node data when the processing method is its own processing method, and performing a data processing operation on the storage through the storage controller.

또한, 다른 몇몇 실시 예에 따르면, 상기 처리 방식을 결정하는 동작은 상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정하는 동작을 포함할 수 있다.According to another exemplary embodiment, the determining of the processing method may include determining the processing method as a self processing method when the header data calls a predetermined function.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 미리 정해진 함수는 블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널 명령어를 포함할 수 있다.Further, according to another exemplary embodiment, the predetermined function may include a kernel command of a communication layer for a node of a blockchain to process data.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 포함할 수 있다.In addition, according to some other embodiments, the application-oriented integrated circuit may include an integrated circuit for block chain data processing for decoding the node data.

기술적 과제를 해결하기 위한, 몇몇 실시예에 따라 분산 장부 관리 시스템의 노드를 구성하는 컴퓨팅 장치는, 데이터의 통신 경로를 제공하는 버스; 상기 버스에 연결되는 중앙 처리부; 데이터를 비일시적으로 저장하는 스토리지; 및 노드 데이터가 수신될 경우 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 버스를 통하지 않고 상기 스토리지에 대해 데이터 처리 작업을 수행하는 네트워크 인터페이스 카드;를 포함할 수 있다.According to some embodiments of the present invention, a computing device configuring a node of a distributed ledger management system includes: a bus providing a communication path for data; A central processor connected to the bus; Storage for storing data non-transitoryly; And a network interface card that determines a processing method when node data is received, and performs a data processing operation on the storage without passing through the bus when the determined processing method is its own processing method.

또한, 다른 몇몇 실시 예에 따르면, 상기 블록체인 노드 컴퓨팅 장치는, 상기 버스에 연결된 메모리를 더 포함하고, 상기 네트워크 인터페이스 카드는, 상기 데이터 처리 작업을 수행한 이후 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 컴퓨팅 장치의 메모리에 로드하며, 상기 메모리는, 상기 중앙 처리부의 요청에 따라 상기 메타데이터를 상기 중앙 처리부로 제공할 수 있다.According to another exemplary embodiment, the blockchain node computing device further includes a memory connected to the bus, and the network interface card generates metadata for a data processing task after performing the data processing task. The metadata may be loaded into a memory of the computing device, and the memory may provide the metadata to the central processor in response to a request of the central processor.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 네트워크 인터페이스 카드는, 상기 수신된 노드 데이터를 처리하기 위한 용도 지향 집적 회로를 포함할 수 있다.Further, according to some other embodiments, the network interface card may include an application-oriented integrated circuit for processing the received node data.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 스토리지는, 블록체인 시스템의 노드에 저장되는 장부를 저장하고, 상기 네트워크 인터페이스 카드는, 상기 노드 데이터가 상기 장부와 관련된 데이터인 경우 상기 중앙 처리부에 인터럽트를 발생시키기 않고 상기 노드 데이터에 따라 상기 장부를 변경할 수 있다.According to yet another embodiment, the storage stores a book stored in a node of a blockchain system, and the network interface card interrupts the central processing unit when the node data is data related to the book. The book can be changed in accordance with the node data without generating.

기술적 과제를 해결하기 위한, 몇몇 실시예에 따라 컴퓨팅 장치가 수행하는 데이터 처리 방법은, 데이터를 수신하는 단계; 상기 수신된 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 구분하고, 상기 헤더 데이터에 포함된 함수를 호출하여 상기 데이터의 종류를 구분하는 단계; 및 상기 컴퓨팅 장치의 중앙 처리 장치에 대한 인터럽트를 발생시키지 않고, 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 상기 구분된 종류에 따라 지정된 스토리지의 저장 위치에 저장하는 단계;를 포함할 수 있다.In order to solve the technical problem, a data processing method performed by a computing device according to some embodiments includes: receiving data; Dividing the received data into header data, individual transaction data, and other transaction data, and calling a function included in the header data to classify the type of the data; And storing the individual transaction data and the other transaction data in a storage location of designated storage according to the distinguished type without generating an interrupt to the central processing unit of the computing device.

또한, 다른 몇몇 실시 예에 따르면, 상기 구분하는 단계는, 상기 헤더 데이터를 저장하고 작업 증명을 완료하는 과정에서 변경되는 정보를 구분하는 단계를 포함하고, 상기 저장하는 단계는, 상기 개별 거래 데이터 중 변경되는 정보에 대응되는 데이터를 용도 지향 집적 회로를 이용하여 처리하는 단계, 및 상기 개별 거래 데이터 중 상기 용도 지향 집적 회로를 이용하여 처리된 결과 데이터, 상기 개별 거래 데이터 중 변경되지 않는 정보 및 기타 거래 데이터를 저장하는 단계를 포함할 수 있다.Further, according to some other embodiments, the dividing may include dividing information changed in the process of storing the header data and completing the proof of work, and the storing may include: Processing data corresponding to the changed information by using a purpose-oriented integrated circuit, and result data processed by using the use-oriented integrated circuit among the individual transaction data, information which is not changed among the individual transaction data, and other transactions. And storing the data.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 처리하는 단계는, 물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩으로부터 데이터 복호화를 위한 키를 획득하는 단계, 및 상기 키에 기초하여 상기 변경되는 정보에 대응되는 데이터를 복호화하는 단계를 포함할 수 있다.According to another exemplary embodiment, the processing may include obtaining a key for data decryption from a hardware chip based on a physically unclonable function, and the changed information based on the key. And decoding the data corresponding to the.

또한, 또 다른 몇몇 실시 예에 따르면, 상기 스토리지에 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 저장한 결과에 대한 메타 데이터를 생성하는 단계; 및 상기 메타 데이터를 상기 컴퓨팅 장치의 메모리에 로드하는 단계;를 포함할 수 있다.Further, according to another embodiment of the present invention, generating metadata for a result of storing the individual transaction data and the other transaction data in the storage; And loading the metadata into a memory of the computing device.

도 1은 분산 장부 관리 시스템의 특징을 설명하기 위한 도면이다.
도 2는 몇몇 실시 예에 따른 컴퓨팅 장치에 구비되는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.
도 3은 몇몇 실시 예에 따라 컴퓨팅 장치가 수신된 데이터를 저장하는 프로세스를 도시한 도면이다.
도 4는 몇몇 실시 예에 따라 컴퓨팅 장치가 변경된 데이터를 다른 노드에 전송하는 프로세스를 도시한 도면이다.
도 5는 컴퓨팅 장치의 구조를 설명하기 위한 도면이다.
도 6은 몇몇 실시 예에 따른 컴퓨팅 장치 및 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.
도 7은 몇몇 실시 예에 따른 네트워크 인터페이스 장치에 의해 구성되는 계층 구조를 설명하기 위한 도면이다.
도 8은 몇몇 실시 예에 따라 데이터를 처리하는 프로세스를 도시한 순서도이다.
도 9는 다른 몇몇 실시 예에 따라 블록체인 데이터 처리용 집적 회로를 포함하는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.
도 10은 또 다른 몇몇 실시 예에 따라 키 관리 모듈을 포함하는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.
도 11은 중앙 처리 장치를 통해 데이터를 처리하는 프로세스를 설명하기 위한 도면이다.
도 12는 몇몇 실시 예에 따른 네트워크 인터페이스 장치를 이용하여 데이터를 처리하는 프로세스를 도시한 순서도이다.
도 13은 몇몇 실시 예에 따라 구분되는 데이터를 설명하기 위한 개념도이다.
1 is a view for explaining the features of a distributed book management system.
2 is a diagram for describing a structure of a network interface device included in a computing device, according to some embodiments.
3 is a diagram of a process of storing, by a computing device, received data, according to some embodiments.
4 is a diagram illustrating a process of transmitting, by a computing device, changed data to another node according to some embodiments.
5 is a diagram for describing the structure of a computing device.
6 is a diagram illustrating a structure of a computing device and a network interface device, according to some embodiments.
7 is a diagram for describing a hierarchical structure constituted by a network interface device, according to some embodiments.
8 is a flowchart illustrating a process of processing data according to some embodiments.
9 is a diagram for describing a structure of a network interface device including an integrated circuit for blockchain data processing, according to another exemplary embodiment.
FIG. 10 is a diagram for describing a structure of a network interface device including a key management module, according to another exemplary embodiment.
11 is a diagram for describing a process of processing data through a central processing unit.
12 is a flowchart illustrating a process of processing data using a network interface device according to some embodiments.
FIG. 13 is a conceptual diagram illustrating data divided according to some embodiments. FIG.

이하, 첨부된 도면을 참조하여 바람직한 실시예들을 상세히 설명한다. 실시예들에 따른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 알려주기 위해 제공되는 것이다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. Advantages and features and methods for achieving them according to embodiments will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various forms, and the present embodiments are provided only to inform those skilled in the art of the scope of the invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 그 범주를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms used in the present specification (including technical and scientific terms) may be used as meanings that can be commonly understood by those skilled in the art. In addition, the terms defined in the commonly used dictionaries are not ideally or excessively interpreted unless they are specifically defined clearly. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the scope. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase.

이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.Hereinafter, some embodiments of the present invention will be described with reference to the drawings.

도 1은 분산 장부 관리 시스템의 특징을 설명하기 위한 도면이다.1 is a view for explaining the features of a distributed book management system.

분산 장부 관리 시스템은 특정 관리자나 주인이 데이터를 관리하는 중앙 집중형 시스템과 달리, 분산 장부(Distributed Ledger)가 피어 투 피어(peer to peer; P2P) 네트워크를 통해 복수의 노드에 분산되어 관리된다. 여기서, 분산 장부가 분산되어 관리되는 노드들은 서버나 PC 등의 컴퓨팅 장치로 구성될 수 있다.A distributed ledger management system, unlike a centralized system in which a specific manager or owner manages data, distributed ledgers are distributed and managed in a plurality of nodes through a peer-to-peer network. Here, the nodes in which the distributed ledger is distributed and managed may be configured as a computing device such as a server or a PC.

분산 장부 관리 시스템의 한 노드를 구성하는 컴퓨팅 장치(100)에 트랜잭션(Transaction)이 발생하는 경우, 컴퓨팅 장치(100)는 그 컴퓨팅 장치(100)가 관리하는 분산 장부에 발생한 트랜잭션을 기록한다. 트랜잭션이 기록되어 분산 장부에 변동이 발생하면, 컴퓨팅 장치(100)는 그 트랜잭션이 다른 노드들에서 관리되는 분산 장부에도 기록되도록 하기 위해 데이터를 다른 노드들을 구성하는 컴퓨팅 장치들(101)에도 전송할 필요가 있다. 또한, 분산 장부 관리 시스템은 컴퓨팅 장치(100)와 컴퓨팅 장치들(101)의 변경된 분산 장부에 대한 검증(Validation) 과정을 수행하여야 한다.When a transaction occurs in the computing device 100 that constitutes a node of the distributed book management system, the computing device 100 records a transaction that occurs in the distributed book managed by the computing device 100. If a transaction is recorded and a change occurs in the distributed ledger, then the computing device 100 needs to send data to the computing devices 101 that make up the other nodes so that the transaction is also recorded in the distributed ledger managed by the other nodes. There is. In addition, the distributed ledger management system must perform a validation process for the changed distributed books of the computing device 100 and the computing devices 101.

따라서, 분산 장부 관리 시스템에서는 트랜잭션이 발생할 때마다 많은 트래픽이 발생하므로, 컴퓨팅 장치(100)와 컴퓨팅 장치들(101)의 네트워크 인터페이스 장치는 높은 지원 트래픽 용량을 가질 필요가 있다.Therefore, in the distributed book management system, since a lot of traffic occurs each time a transaction occurs, the network interface device of the computing device 100 and the computing devices 101 needs to have a high supporting traffic capacity.

또한, 데이터를 송수신할 때 암호화된 데이터를 송수신하도록 하기 위해서는 데이터를 수신할 때마다 수신된 데이터의 복호화 프로세스가 수행되어야 하고, 데이터를 송신할 때마다 데이터를 암호화하는 암호화 프로세스가 수행되어야 한다. 데이터를 수신할 경우, 네트워크 인터페이스 장치는 외부로부터 수신된 데이터를 CPU로 전달하여 복호화하고, CPU에 의해 복호화된 데이터는 스토리지에 저장될 수 있다. 데이터를 전송할 경우, CPU가 전송할 데이터를 읽어들여 암호화 프로세스를 수행한 후, 암호화된 데이터를 네트워크 인터페이스 장치로 전달하여 외부로 전송할 수 있다. 그러나, 이 경우 CPU와 네트워크 인터페이스 장치 사이를 연결하는 시스템 버스의 전송 속도의 제한, 트랜잭션의 증가에 따른 CPU의 부하 증대 등의 문제로 트랜잭션 처리 성능에 한계가 발생한다.In addition, in order to transmit and receive encrypted data when transmitting and receiving data, a decryption process of the received data must be performed each time data is received, and an encryption process of encrypting data each time data is transmitted must be performed. When receiving data, the network interface device may transmit and decrypt data received from the outside to the CPU, and the data decrypted by the CPU may be stored in the storage. When transmitting data, the CPU may read the data to be transmitted, perform an encryption process, and then transmit the encrypted data to the network interface device for transmission to the outside. However, in this case, there is a limit in transaction processing performance due to the limitation of the transmission speed of the system bus connecting the CPU and the network interface device, and the increase of the CPU load due to the increase of transactions.

또한, 트랜잭션의 빠른 처리를 위해서는 스토리지에 대한 입출력 속도의 향상 또한 필요하다.In addition, for faster transaction processing, the I / O speed to storage is also required.

도 2는 몇몇 실시 예에 따른 컴퓨팅 장치에 구비되는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.2 is a diagram for describing a structure of a network interface device included in a computing device, according to some embodiments.

몇몇 실시 예에 따라 컴퓨팅 장치(100)에 구비된 네트워크 인터페이스 장치(200)는 외부 통신 포트(210), 특정 용도 지향 집적 회로(202) 및 I/O 포트(203)를 포함할 수 있다. 몇몇 실시 예에 따르면, 네트워크 인터페이스 장치(200)는 네트워크 인터페이스 카드(Network Interface Card; NIC)의 형태일 수 있다. 여기서, 몇몇 실시 예에 따른 네트워크 인터페이스 장치(200)는 트래픽 용량을 확보하기 위해 광 케이블 통신을 지원할 수 있다.According to some embodiments, the network interface device 200 included in the computing device 100 may include an external communication port 210, a specific purpose-oriented integrated circuit 202, and an I / O port 203. According to some embodiments, the network interface device 200 may be in the form of a network interface card (NIC). Here, the network interface device 200 according to some embodiments may support optical cable communication to secure traffic capacity.

외부 통신 포트(210)는 네트워크(10)를 통해 외부 장치로부터 데이터를 수신하거나, 외부 장치로 데이터를 전송할 수 있다. The external communication port 210 may receive data from an external device or transmit data to the external device through the network 10.

외부 통신 포트(210)는 외부 장치로부터 네트워크(10)를 통해 데이터(예를 들어, 트랜잭션 또는 분산 장부에 대한 데이터)가 수신된 경우, 수신된 데이터를 네트워크 인터페이스 장치(200)에 임베드된(embed) 특정 용도 지향 집적 회로(Application Specific Integrated Circuit; ASIC)(202)으로 전달하도록 구성될 수 있다. 몇몇 실시 예에 따른 특정 용도 지향 집적 회로(202)는 데이터가 수신된 경우 수신된 데이터를 복호화하도록 구성된 것일 수 있다. 데이터를 복호화한 특정 용도 지향 집적 회로(202)는 스토리지(210)와 연결된 I/O 포트(203)를 통해 복호화된 데이터를 스토리지(210)에 저장할 수 있다. 스토리지(210)는 반드시 컴퓨팅 장치(100)에 내장되어야 하는 것은 아니며, 컴퓨팅 장치(100)의 외부에 연결될 수도 있다.The external communication port 210 embeds the received data in the network interface device 200 when data (eg, data for a transaction or distributed ledger) is received from the external device via the network 10. ) May be configured to communicate to an Application Specific Integrated Circuit (ASIC) 202. According to some embodiments, the specific purpose-oriented integrated circuit 202 may be configured to decrypt the received data when the data is received. The specific purpose-oriented integrated circuit 202 decrypting the data may store the decrypted data in the storage 210 through the I / O port 203 connected to the storage 210. The storage 210 is not necessarily embedded in the computing device 100, but may be connected to the outside of the computing device 100.

또는, 스토리지(210)에 저장된 데이터에 변경된 데이터가 발생하는 경우, 예를 들면 발생된 트랜잭션이 분산 장부에 기록된 경우, 특정 용도 지향 집적 회로(202)는 변경된 정보에 대한 데이터를 암호화할 수 있다. 예를 들어, 트랜잭션에 대한 데이터 내지 변경된 분산 장부에 대한 데이터를 암호화할 수 있다. 특정 용도 지향 집적 회로(202)는 암호화된 데이터를 외부 통신 포트(201)를 통해 네트워크(10)로 전송할 수 있다.Alternatively, when the changed data occurs in the data stored in the storage 210, for example, when the generated transaction is recorded in the distributed ledger, the specific purpose-oriented integrated circuit 202 may encrypt data about the changed information. . For example, data for a transaction or data for a modified distributed ledger can be encrypted. The particular purpose oriented integrated circuit 202 may transmit encrypted data to the network 10 through an external communication port 201.

따라서, 네트워크 인터페이스 장치(200)는 별도의 시스템 버스를 거치지 않고 스토리지(210)에 수신된 데이터를 기록하거나 스토리지(210)로부터 데이터를 암호화하여 전송할 수 있다. 몇몇 실시 예에 따르면, I/O 포트(203)는 스토리지에 대한 입출력 속도를 향상시키기 위해 더블러를 이용하여 스토리지(210)와 연결될 수 있다.Accordingly, the network interface device 200 may record data received in the storage 210 or encrypt data from the storage 210 without passing through a separate system bus. According to some embodiments, the I / O port 203 may be connected to the storage 210 using a doubler to improve the input / output speed for the storage.

도 3은 몇몇 실시 예에 따라 컴퓨팅 장치가 수신된 데이터를 저장하는 프로세스를 도시한 도면이다.3 is a diagram of a process of storing, by a computing device, received data, according to some embodiments.

먼저, 단계 S310에서, 몇몇 실시 예에 따른 컴퓨팅 장치(100)에 구비된 네트워크 인터페이스 장치(200)가 외부 장치로부터 데이터를 수신한 경우, 네트워크 인터페이스 장치(200)는 수신된 데이터를 네트워크 인터페이스 장치(200)에 임베드된 특정 용도 지향 집적 회로(202)에 전달할 수 있다. First, in step S310, when the network interface device 200 included in the computing device 100 according to some embodiments receives data from an external device, the network interface device 200 stores the received data in the network interface device ( And to a specific purpose-oriented integrated circuit 202 embedded in 200.

이후 단계 S320에서, 컴퓨팅 장치(100)는 특정 용도 지향 집적 회로(202)를 이용하여 수신된 데이터를 복호화할 수 있다. 컴퓨팅 장치(100)는 그 네트워크 인터페이스 장치(200)에 임베드된 특정 용도 지향 집적 회로(202)를 이용하여 수신된 데이터를 복호화함으로써, 별도의 시스템 버스를 통하지 않고 CPU의 부하 증가를 최소화하면서도 보다 빠르게 복호화 프로세스를 수행할 수 있다.Thereafter, in operation S320, the computing device 100 may decrypt the received data by using the specific purpose-oriented integrated circuit 202. Computing device 100 decodes the received data using a particular purpose-oriented integrated circuit 202 embedded in its network interface device 200, thereby speeding up the load on the CPU without going through a separate system bus, while also allowing faster The decryption process can be performed.

이후, 컴퓨팅 장치(100)의 네트워크 인터페이스 장치(200)는 단계 S330에서 복호화된 데이터를 네트워크 인터페이스 장치(200)에 연결된 스토리지(210)에 저장할 수 있다.Thereafter, the network interface device 200 of the computing device 100 may store the data decrypted in operation S330 in the storage 210 connected to the network interface device 200.

도 4는 몇몇 실시 예에 따라 컴퓨팅 장치가 변경된 데이터를 다른 노드에 전송하는 프로세스를 도시한 도면이다. 4 is a diagram illustrating a process of transmitting, by a computing device, changed data to another node according to some embodiments.

먼저, 단계 S410에서 컴퓨팅 장치(100)는 스토리지(210) 내에 변경된 데이터가 발생하였는지 여부를 판단할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 스토리지(210) 내에 저장된 분산 원장에 새롭게 발생한 트랜잭션이 기록되었는지 여부를 판단할 수 있다.First, in operation S410, the computing device 100 may determine whether changed data has occurred in the storage 210. For example, the computing device 100 may determine whether a newly generated transaction is recorded in the distributed ledger stored in the storage 210.

스토리지(210) 내에 변경된 데이터가 발생한 경우, 컴퓨팅 장치(100)는 단계 S420에서 변경된 데이터 또는 변경된 데이터에 관련된 데이터를 특정 용도 지향 집적 회로(202)를 이용하여 암호화할 수 있다. 컴퓨팅 장치(100)는 네트워크 인터페이스 장치(200)에 임베드된 특정 용도 지향 집적 회로(202)를 이용하여 변경된 데이터를 암호화함으로써, 별도의 시스템 버스를 통하지 않고 CPU의 부하 증가를 최소화하면서도 보다 빠르게 암호화 프로세스를 수행할 수 있다.When the changed data occurs in the storage 210, the computing device 100 may encrypt the changed data or data related to the changed data by using the specific purpose-oriented integrated circuit 202 in step S420. The computing device 100 encrypts the modified data using the specific purpose-oriented integrated circuit 202 embedded in the network interface device 200, thereby speeding up the encryption process while minimizing the CPU load increase without going through a separate system bus. Can be performed.

이후, 컴퓨팅 장치(100)의 네트워크 인터페이스 장치(200)는 단계 S430에서 암호화된 데이터를 다른 노드로 전송할 수 있다.Thereafter, the network interface device 200 of the computing device 100 may transmit the encrypted data to another node in operation S430.

도 5는 컴퓨팅 장치의 구조를 설명하기 위한 도면이다.5 is a diagram for describing the structure of a computing device.

컴퓨팅 장치는 네트워크 인터페이스 카드(510), 버스(520), 중앙 처리 장치(530), 메모리(540), 스토리지 제어기(550) 및 스토리지(210)를 포함할 수 있다. 도 5는 메모리(540)의 예시로 RAM이 도시되어 있다.The computing device may include a network interface card 510, a bus 520, a central processing unit 530, a memory 540, a storage controller 550, and a storage 210. 5 illustrates a RAM as an example of a memory 540.

네트워크 인터페이스 카드(510), 중앙 처리 장치(530), 메모리(540) 및 스토리지 제어기(550)는 마더보드에 구비된 슬롯(slot)에 장착되어 버스(520)에 연결될 수 있다. 버스(520)는 버스(520)에 연결된 각 구성요소들 간에 데이터를 송수신하는 경로를 제공한다.The network interface card 510, the central processing unit 530, the memory 540, and the storage controller 550 may be mounted in a slot provided in the motherboard and connected to the bus 520. The bus 520 provides a path for transmitting and receiving data between components connected to the bus 520.

네트워크 인터페이스 카드(510)는 네트워크(10)로부터 데이터를 수신하면, 버스(520)를 통해서 수신된 데이터에 대한 제어 데이터를 중앙 처리 장치(530)로 전달할 수 있다. 여기서, 수신된 데이터는 메모리(540)에 로드될 수도 있다.When the network interface card 510 receives data from the network 10, the network interface card 510 may transfer control data for the data received through the bus 520 to the central processing unit 530. Here, the received data may be loaded into the memory 540.

중앙 처리 장치(530)는 제어 데이터에 따라 수신된 데이터를 처리하기 위해 인터럽트 신호를 수신할 수 있다. 인터럽트 신호를 수신한 중앙 처리 장치(530)는 기존에 수행 중이던 작업을 중지하고 제어 데이터에 따라 수신된 데이터를 처리할 수 있다. 중앙 처리 장치(530)는 처리된 데이터를 스토리지 제어기(550)를 통해서 스토리지(210)에 저장할 수 있다. 여기서, 스토리지(210)는 SSD(Solid State Disk), HDD(Hard Disk Driver)나 플래시 메모리와 같은 저장 매체를 포함할 수 있다.The central processing unit 530 may receive an interrupt signal to process the received data according to the control data. Upon receiving the interrupt signal, the central processing unit 530 may stop a previously executed task and process the received data according to the control data. The CPU 530 may store the processed data in the storage 210 through the storage controller 550. The storage 210 may include a storage medium such as a solid state disk (SSD), a hard disk driver (HDD), or a flash memory.

여기서, 중앙 처리 장치(530)가 수신된 데이터를 처리하기 위해 인터럽트를 발생시키고 기준에 수행 중이던 작업을 중지해야 하므로 다수의 트랜잭션이 발생하게 되면 중앙 처리 장치(530)에 과도한 부하가 발생하거나 중앙 처리 장치(530)가 작업을 수행하기 위한 성능의 저하가 발생할 수 있다.In this case, since the CPU 530 needs to generate an interrupt to stop the processing of the received data and stop the work that was being performed based on the reference, when a large number of transactions occur, the CPU 530 may generate excessive load or perform central processing. Degradation in performance for the device 530 to perform a task may occur.

또한, 통신 장치의 발달로 네트워크 인터페이스 카드(510)는 네트워크(10)로부터 대량의 데이터를 수신할 수 있다. 예를 들어, 200 Gbps의 속도로 데이터를 수신할 수 있는 네트워크 인터페이스 카드(510)가 사용될 수 있다. 그러나, 버스(520)의 경우 네트워크 인터페이스 카드(510)에 의해 수신되는 데이터를 모두 수용할 수 있는 정도의 대역폭을 구비하지 못할 수 있다. 예를 들어, PCIe(Peripheral Component Interconnect express) 버스의 경우 128 Gbps의 대역폭을 제공할 수 있다. 따라서, 네트워크 인터페이스 카드(510)가 데이터를 수신하는 대역폭에 비해 버스(520)가 수용할 수 있는 대역폭이 작기 때문에 병목 현상이 발생할 수 있다.Also, with the development of the communication device, the network interface card 510 can receive a large amount of data from the network 10. For example, a network interface card 510 that can receive data at a rate of 200 Gbps can be used. However, the bus 520 may not have a bandwidth sufficient to accommodate all data received by the network interface card 510. For example, a Peripheral Component Interconnect express (PCIe) bus can provide 128 Gbps of bandwidth. Therefore, the bottleneck may occur because the bandwidth that the bus 520 can accommodate is smaller than the bandwidth for the network interface card 510 to receive data.

따라서, 버스의 대역폭 저하로 인해 발생하는 병목현상을 저감하고, 중앙 처리 장치(530)가 데이터를 처리함으로 인해 발생하는 지연 요소를 해결하기 위한 방법이 필요하다.Accordingly, there is a need for a method for reducing bottlenecks caused by bandwidth degradation of the bus and resolving delay factors caused by the central processing unit 530 processing data.

도 6은 몇몇 실시 예에 따른 컴퓨팅 장치 및 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.6 is a diagram illustrating a structure of a computing device and a network interface device, according to some embodiments.

몇몇 실시 예에 따른 컴퓨팅 장치(100)는 네트워크 인터페이스 장치(200), 버스(520), 중앙 처리 장치(530), 메모리(540) 및 스토리지(210)를 포함할 수 있다.The computing device 100 according to some embodiments may include a network interface device 200, a bus 520, a central processing unit 530, a memory 540, and a storage 210.

몇몇 실시 예에 따른 네트워크 인터페이스 장치(200)는 기판에 네트워크 인터페이스부(Network Interface Unit; NIU)(220), 특정 용도 지향 집적 회로(202) 및 스토리지 제어기(230)가 실장된 네트워크 인터페이스 카드일 수 있다. 여기서, 네트워크 인터페이스 장치(200)의 기판은 데이터를 외부의 네트워크(10)로부터 데이터를 수신하기 위한 외부 통신 포트와, 버스(520)와 연결되기 위한 버스 연결부 및 스토리지(210)와 연결하기 위한 스토리지 연결부를 포함할 수 있다.The network interface device 200 according to some embodiments may be a network interface card having a network interface unit (NIU) 220, a specific purpose-oriented integrated circuit 202, and a storage controller 230 mounted on a board. have. Here, the substrate of the network interface device 200 is an external communication port for receiving data from the external network 10, a bus connection for connecting with the bus 520 and storage for connecting with the storage 210. It may include a connection.

네트워크 인터페이스부(220)는 외부의 네트워크(10)로부터 외부 통신 포트를 통해서 데이터를 수신할 수 있다. 예를 들어, 네트워크 인터페이스부(220)는 분산 장부 관리 시스템의 노드에게 전달되는 노드 데이터를 수신할 수 있다.The network interface unit 220 may receive data from an external network 10 through an external communication port. For example, the network interface unit 220 may receive node data transmitted to the nodes of the distributed ledger management system.

네트워크 인터페이스부(220)를 통해 수신된 데이터에 대한 특정 용도 지향 집적 회로(202)의 처리 방식을 결정할 수 있다. 여기서, 수신된 데이터가 특정 용도 지향 집적 회로(202)가 수행하는 특정 목적을 위한 데이터인 경우 자체 처리 방식이 선택될 수 있다. 예를 들어, 수신된 데이터가 분산 장부 관리 시스템의 노드에 저장된 장부를 변경하기 위한 노드 데이터인 경우 수신된 데이터를 특정 용도 지향 집적 회로(202)가 자체적으로 처리하는 방식이 선택될 수 있다. 반대로, 수신된 데이터가 일반적인 데이터인 경우에는 중앙 처리 장치(530)에 제어 데이터를 전달하고, 중앙 처리 장치(530)에 의해 데이터를 처리하는 중앙 처리 방식이 선택될 수 있다.A method of processing the specific purpose-oriented integrated circuit 202 for the data received through the network interface unit 220 may be determined. Here, if the received data is data for a specific purpose performed by the specific purpose oriented integrated circuit 202, then its own processing scheme may be selected. For example, if the received data is node data for changing the books stored in the nodes of the distributed book management system, then the manner in which the specific application oriented integrated circuit 202 processes the received data itself may be selected. On the contrary, when the received data is general data, a central processing method of transferring control data to the central processing unit 530 and processing the data by the central processing unit 530 may be selected.

여기서, 네트워크(10)를 통해 수신하는 데이터의 헤더 데이터는 데이터의 처리 방식을 결정하기 위한 정보를 포함할 수 있다. 예를 들어, 헤더 데이터는 프로토콜 정의를 포함하고, 네트워크 인터페이스 장치(200)는 프로토콜 정의에 따라 실행되는 기능에 따라서 수신된 데이터가 특정 용도 지향 집적 회로(202)가 수행하는 특정 목적을 위한 데이터인지 여부를 판단할 수 있다. 이 경우, 용도 지향 집적 회로(202)는 수신된 데이터로부터 헤더 데이터를 구분하고, 헤더 데이터를 이용하여 수신된 데이터의 처리 방식을 결정할 수 있다. 예를 들어, 헤더 데이터가 수신된 데이터를 처리하기 위한 통신 계층의 커널(kernel) 명령어를 포함하는 함수를 포출하는 경우 용도 지향 집적 회로(202)는 수신된 데이터의 처리 방식을 자체 처리 방식으로 결정할 수 있다.Here, the header data of the data received through the network 10 may include information for determining the processing method of the data. For example, the header data includes a protocol definition, and the network interface device 200 determines whether the received data is data for a specific purpose performed by the specific purpose-oriented integrated circuit 202 according to a function executed according to the protocol definition. It can be determined. In this case, the application-oriented integrated circuit 202 may distinguish the header data from the received data and determine the processing method of the received data using the header data. For example, if the header data emits a function that includes a kernel instruction of a communication layer to process the received data, the usage oriented integrated circuit 202 may process the received data in its own manner. You can decide.

네트워크 인터페이스 장치(200)는 자체 처리 방식에 의해 수신된 데이터를 처리하는 경우 버스(520)를 통하지 않고 스토리지(210)에 대한 데이터 처리 작업을 수행할 수 있다. 예를 들어, 네트워크 인터페이스부(220)를 통해 수신된 데이터 내지 용도 지향 집적 회로(202)에 의해 처리된 데이터를 스토리지 제어기(230)를 이용하여 버스(520)를 통하지 않고 스토리지(210)에 저장할 수 있다.The network interface device 200 may perform data processing on the storage 210 without passing through the bus 520 when processing data received by a self-processing method. For example, data received through the network interface unit 220 or data processed by the application-oriented integrated circuit 202 may be stored in the storage 210 using the storage controller 230 without using the bus 520. Can be.

특정 용도 지향 집적 회로(202)는 자체 처리 방식에 기초하여 스토리지(210)에 대한 데이터 처리를 수행한 경우, 수행한 데이터 처리 작업에 대한 메타 데이터를 생성할 수 있다. 특정 용도 지향 집적 회로(202)는 생성된 메타 데이터를 메모리(540)에 로드(load)시킬 수 있다. 메타 데이터는, 예를 들어, 어떤 데이터가 저장되었는지에 대한 정보인 데이터 식별 정보와 데이터가 어느 스토리지(210)의 어느 위치에 저장되었는지에 대한 정보인 저장 위치 정보를 포함할 수 있다.When the specific purpose-oriented integrated circuit 202 performs data processing on the storage 210 based on its own processing scheme, the specific purpose-oriented integrated circuit 202 may generate metadata about the data processing task performed. The specific purpose oriented integrated circuit 202 may load the generated metadata into the memory 540. The metadata may include, for example, data identification information that is information about what data is stored and storage location information that is information about which location in which storage 210 the data is stored.

중앙 처리 장치(530)는 자체 처리 방식에 기초하여 처리된 데이터에 대한 요청이 있는 경우, 메모리(540)에 로드된 메타 데이터를 이용하여 저장된 데이터에 액세스할 수 있다.The central processing unit 530 may access the stored data using the metadata loaded in the memory 540 when there is a request for the processed data based on its processing method.

따라서, 본 실시 예에 따른 네트워크 인터페이스 장치를 구비한 컴퓨팅 장치를 이용할 경우, 분산 장부 관리 시스템의 노드 데이터와 같이 특정 목적을 위한 데이터를 처리할 경우 중앙 처리 장치에 대한 인터럽트를 발생시킬 필요가 없어 중앙 처리 장치의 성능을 향상시킬 수 있고, 데이터의 처리 속도를 증가시킬 수 있다. 또한, 수신된 데이터를 버스를 통해 전송할 필요가 없으므로 버스의 대역폭 저하로 인한 병목 현상이 발생하는 것을 방지할 수 있다.Therefore, in the case of using a computing device having a network interface device according to the present embodiment, when processing data for a specific purpose such as node data of a distributed book management system, there is no need to generate an interrupt to the central processing unit. The performance of the processing apparatus can be improved, and the processing speed of data can be increased. In addition, since the received data does not need to be transmitted through the bus, bottlenecks caused by bandwidth degradation of the bus can be prevented.

도 7은 몇몇 실시 예에 따른 네트워크 인터페이스 장치에 의해 구성되는 계층 구조를 설명하기 위한 도면이다. 네트워크 인터페이스 장치(200)를 포함하여 구성되는 계층 구조는 통신 계층(Communication Layer)(710), 하드웨어 추상화 계층(Hardware Abstraction Layer; HAL)(720) 및 물리 계층(Physical Layer)(730)을 포함할 수 있다. 다만, 도 7에 도시된 계층 구조는 네트워크 인터페이스 장치(200)의 동작을 설명하기 위한 것이며, 실시 예에 따라 구현된 계층 구조는 도 7에 도시되지 않은 다른 계층을 더 포함할 수도 있다.7 is a diagram for describing a hierarchical structure constituted by a network interface device, according to some embodiments. The hierarchical structure including the network interface device 200 may include a communication layer 710, a hardware abstraction layer (HAL) 720, and a physical layer 730. Can be. However, the hierarchical structure shown in FIG. 7 is for explaining the operation of the network interface device 200, and the hierarchical structure implemented according to the embodiment may further include other layers not shown in FIG. 7.

수신된 데이터에 대해 하드웨어의 기능을 수행하기 위해, 통신 계층(710), 하드웨어 추상화 계층(720) 및 물리 계층(730)을 경유하는 경로(71)를 통해서 하드웨어의 기능을 제어할 수 있다.In order to perform the hardware function on the received data, the hardware function may be controlled through the path 71 via the communication layer 710, the hardware abstraction layer 720, and the physical layer 730.

이에 대비하여, 몇몇 실시 예에 따르면, 수신된 데이터가 통신 계층(710)의 커널(kernel) 명령어를 이용하는 경우, 물리 계층(730)을 경유하지 않고 직접 스토리지(210)에 수신된 데이터 또는 수신된 데이터를 처리한 결과를 쓰거나, 스토리지(210)로부터 데이터를 독출할 수 있다. 이후, 스토리지(210)에 대해 수행된 작업에 대한 결과 데이터가 통신 계층(710), 하드웨어 추상화 계층(720) 및 물리 계층(730)을 거치는 경로(73)를 통해서 메모리(540)에 로드될 수 있다.In contrast, according to some embodiments, when the received data uses kernel commands of the communication layer 710, the data received or received directly in the storage 210 without passing through the physical layer 730. The result of processing the data may be written or data may be read from the storage 210. Subsequently, the result data for the operation performed on the storage 210 may be loaded into the memory 540 through the path 73 through the communication layer 710, the hardware abstraction layer 720, and the physical layer 730. have.

도 8은 몇몇 실시 예에 따라 컴퓨팅 장치가 데이터를 처리하는 프로세스를 도시한 순서도이다.8 is a flowchart illustrating a process in which a computing device processes data according to some embodiments.

먼저, 단계 S810에서 컴퓨팅 장치는 네트워크 인터페이스 장치를 통해서 데이터를 수신할 수 있다. 여기서, 수신된 데이터는 데이터 송수신을 위해 사용되는 프로그램에서 정해진 방식에 따라 데이터를 처리하기 위한 방식을 결정할 수 있는 정보를 포함할 수 있다.First, in operation S810, the computing device may receive data through a network interface device. Here, the received data may include information for determining a method for processing data according to a method determined by a program used for data transmission and reception.

몇몇 실시 예에 따르면, 수신된 데이터가 분산 장부 관리 시스템의 노드 데이터인 경우, 노드 데이터는 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터를 포함할 수 있다. 여기서, 헤더 데이터는 데이터와 관련된 프로토콜이나 암호화 등과 관련된 정보를 포함할 수 있다. 개별 거래 데이터는 트랜잭션에 대한 정보를 포함할 수 있다. 또한, 기타 거래 데이터는 개별 거래 데이터의 진위 여부를 입증하기 위한 데이터를 포함할 수 있다. 몇몇 실시 예에 따르면 노드 데이터를 발생시키는 장치는 프로그램에서 설정된 대로 헤더 데이터 내에 노드 데이터를 수신한 컴퓨팅 장치가 노드 데이터의 처리 방식을 결정할 수 있는 정보를 포함시킬 수 있다. 여기서, 몇몇 실시 예에 따르면, 노드 데이터를 발생시키는 장치는 헤더 데이터가 통신 계층의 커널 명령어를 포함하도록 노드 데이터를 구성할 수 있다.According to some embodiments, when the received data is node data of the distributed ledger management system, the node data may include header data, individual transaction data, and other transaction data. Here, the header data may include information related to a protocol or encryption related to the data. Individual transaction data may include information about a transaction. In addition, the other transaction data may include data for verifying the authenticity of the individual transaction data. According to some embodiments, the apparatus for generating the node data may include information in the header data as set in the program so that the computing device that has received the node data may determine a method of processing the node data. Here, according to some embodiments, an apparatus for generating node data may configure node data such that header data includes kernel commands of a communication layer.

이후, 단계 S820에서 컴퓨팅 장치는 수신된 데이터를 자체 처리 방식으로 처리할 것인지 여부를 판단할 수 있다. 여기서, 자체 처리 방식은 수신된 데이터에 대한 인터럽트 신호를 중앙 처리 장치에게 발생시키지 않고 네트워크 인터페이스 장치가 자체적으로 처리하는 것을 의미한다.In operation S820, the computing device may determine whether to process the received data in a self-processing manner. Here, the self processing method means that the network interface device processes itself without generating an interrupt signal for the received data to the central processing unit.

몇몇 실시 예에 따르면, 단계 S820에서 컴퓨팅 장치는 수신된 데이터로부터 헤더 데이터를 구분하고, 구분된 헤더 데이터를 이용하여 수신된 데이터의 처리 방식을 결정할 수 있다. 예를 들어, 컴퓨팅 장치는 헤더 데이터가 미리 정해진 함수를 호출하도록 구성되어 있는 경우 수신된 데이터의 처리 방식을 자체 처리 방식으로 결정할 수 있다. 여기서, 미리 정해진 함수는 블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널 명령어를 포함할 수 있다.According to some embodiments, in operation S820, the computing device may distinguish the header data from the received data and determine a processing method of the received data using the divided header data. For example, the computing device may determine in its own way how to process the received data if the header data is configured to call a predetermined function. Here, the predetermined function may include a kernel command of a communication layer for the node of the blockchain to process data.

수신된 데이터에 대한 응답으로 컴퓨팅 장치에서 실행되는 응용 프로그램이 상기의 미리 정해진 함수를 호출하여 수신된 데이터를 종류별로 구분하고, 구분된 데이터를 지정된 프로세스나 스토리지의 저장 위치로 전달할 수 있다. 또한, 호출된 함수는 의해 구분된 데이터를 지정된 프로세스로 전달하여 처리된 결과나 스토리지의 저장 위치로 전달된 결과를 메타 데이터로 생성하여 프로세스에 리턴(return)하는 동작을 수행하기 위한 것일 수 있다.In response to the received data, an application program executed in the computing device may call the predetermined function to classify the received data by type and transfer the divided data to a storage location of a specified process or storage. In addition, the called function may be for performing an operation of delivering the data classified by the meta data to the designated process and generating the processed result or the result delivered to the storage location of the storage as metadata and returning it to the process.

수신된 데이터를 자체 처리 방식에 따라 처리하는 것으로 결정된 경우, 단계 S831에서 컴퓨팅 장치는 수신된 데이터를 구분할 수 있다. 몇몇 실시 예에 따르면, 수신된 데이터가 노드 데이터인 경우, 컴퓨팅 장치는 노드에 기록된 장부에 대하여 변경이 발생하는 정보와 변경되지 않는 정보를 구분할 수 있다.If it is determined to process the received data according to its own processing scheme, in operation S831, the computing device may distinguish the received data. According to some embodiments, when the received data is node data, the computing device may distinguish between information that changes are made and information that does not change with respect to a book recorded in a node.

이후, 단계 S832에서 컴퓨팅 장치는 변경이 발생하는 정보에 포함되는 데이터를 네트워크 인터페이스 장치의 용도 지향 집적 회로를 이용하여 처리할 수 있다. 또한, 단계 S833에서 컴퓨팅 장치는 용도 지향 집적 회로를 이용하여 처리된 결과 값을 지정된 스토리지 상의 저장 위치에 저장할 수 있다. 또한, 단계 S833에서 수신된 데이터 중 변경되지 않는 정보는 추가적인 처리 없이 스토리지에 저장할 수 있다.Thereafter, in operation S832, the computing device may process data included in the information on which the change occurs using the application-oriented integrated circuit of the network interface device. Further, in step S833, the computing device may store the resultant value processed using the application-oriented integrated circuit in a storage location on the designated storage. In addition, information that does not change among the data received in step S833 can be stored in the storage without further processing.

수신된 데이터가 개별 거래 데이터와 기타 거래 데이터를 포함하는 경우, 컴퓨팅 장치는 단계 S831에서 수신된 데이터로부터 개별 거래 데이터와 기타 거래 데이터를 구분할 수 있다. 이후, 컴퓨팅 장치는 기타 거래 데이터를 스토리지 상의 지정된 위치에 저장할 수 있다. 기타 거래 데이터는 거래를 입증하기 위한 전자 문서 등이므로 별도의 변경이 발생하지 않으므로, 컴퓨팅 장치는 별도의 데이터 처리 없이 스토리지에 저장할 수 있다. 또한, 컴퓨팅 장치는 개별 거래 데이터 중 변경이 발생하지 않는 부분도 별도의 처리 없이 스토리지에 저장할 수 있다. 여기서, 컴퓨팅 장치는 데이터에 포함된 헤더 데이터를 이용하여 데이터를 저장할 위치를 결정할 수 있다.If the received data includes individual transaction data and other transaction data, the computing device may distinguish the individual transaction data from the other transaction data from the data received in step S831. The computing device may then store other transaction data at a designated location on the storage. Since the other transaction data is an electronic document for verifying a transaction, no change occurs, and the computing device may store the data in storage without additional data processing. In addition, the computing device may store the portion of the individual transaction data that does not occur in the storage without additional processing. Here, the computing device may determine a location to store the data by using the header data included in the data.

이후, 단계 S834에서, 컴퓨팅 장치는 데이터의 처리 결과에 대한 메타 데이터를 생성할 수 있다. 몇몇 실시 예에 따르면, 메타 데이터는 데이터를 처리한 결과 스토리지에 저장된 데이터의 위치 정보와 변경된 데이터에 대한 정보를 포함할 수 있다.Thereafter, in operation S834, the computing device may generate metadata about a processing result of the data. According to some embodiments, the metadata may include location information of the data stored in the storage and information about the changed data as a result of processing the data.

생성된 메타 데이터는 컴퓨팅 장치의 메모리에 로드되고, 중앙 처리 장치의 요청에 따라 중앙 처리 장치에 제공될 수 있다. 따라서, 단계 S831 내지 단계 S834를 통해 처리되는 데이터가 수신된 경우 중앙 처리 장치가 수행하는 프로세스는 중지되지 않고 계속해서 진행될 수 있다.The generated metadata may be loaded into the memory of the computing device and provided to the central processing unit at the request of the central processing unit. Therefore, when data to be processed through steps S831 to S834 is received, the process performed by the central processing unit may continue without stopping.

단계 S820에서 컴퓨팅 장치가 수신된 데이터에 대한 처리 방식을 자체 처리 방식이 아닌 중앙 처리 방식으로 결정한 경우, 컴퓨팅 장치는 단계 S841에서 수신된 데이터에 대한 제어 데이터를 중앙 처리 장치로 전달할 수 있다.In operation S820, when the computing device determines the processing method for the received data as the central processing method instead of the own processing method, the computing device may transmit the control data for the data received in step S841 to the central processing unit.

또한, 단계 S842에서 컴퓨팅 장치는 중앙 처리 장치가 수신된 데이터를 처리하기 위해 중앙 처리 장치의 프로세스에 인터럽트를 발생시킬 수 있다.In operation S842, the computing device may generate an interrupt to a process of the central processing unit to process the received data.

이후, 단계 S843에서 중앙 처리 장치는 기존에 실행 중이던 프로세스를 중지하고 수신된 데이터를 처리할 수 있다.Thereafter, in step S843, the central processing unit may stop the process that is being executed and process the received data.

도 9는 다른 몇몇 실시 예에 따라 블록체인 데이터 처리용 집적 회로를 포함하는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다. 특히, 도 9는 수신된 데이터가 블록 체인 데이터인 경우 데이터를 처리하기 위한 네트워크 인터페이스 장치에 관한 것이다.9 is a diagram for describing a structure of a network interface device including an integrated circuit for blockchain data processing, according to another exemplary embodiment. In particular, FIG. 9 relates to a network interface device for processing data when the received data is block chain data.

본 실시 예에 따른 네트워크 인터페이스 장치는 네트워크 인터페이스부(220), 특정 용도 지향 집적 회로(202), 스토리지 제어기(230) 및 블록체인 데이터 처리용 집적 회로(910)를 포함할 수 있다.The network interface device according to the present embodiment may include a network interface unit 220, a specific purpose-oriented integrated circuit 202, a storage controller 230, and an integrated circuit 910 for blockchain data processing.

본 실시 예에 따른 네트워크 인터페이스 장치는 커널 형태의 통신 계층(900)을 형성할 수 있다. 수신된 데이터가 통신 계층(900)의 커널 명령어를 사용할 경우 수신된 데이터로부터 확인된 데이터가 변경되는 작업 중 블록체인 데이터 처리가 필요한 경우 블록체인 데이터 처리용 집적 회로(910)를 이용하여 데이터를 처리할 수 있다. 블록체인 데이터를 처리하기 위한 통신 계층(900)은 블록 체인 노드 데이터 통신 계층(Block chain Node data Communication Layer; BNCL)로 언급될 수 있다.The network interface device according to the present embodiment may form a kernel-type communication layer 900. When the received data uses the kernel command of the communication layer 900, when the blockchain data processing is required while the data identified from the received data is changed, the data is processed using the integrated circuit 910 for blockchain data processing. can do. The communication layer 900 for processing blockchain data may be referred to as a block chain node data communication layer (BNCL).

여기서, 예를 들어, 블록체인 데이터 처리용 집적 회로(910)는 하이퍼렛저(Hyperledger ™) 기반의 데이터 처리를 수행하기 위한 특정 용도 지향 집적 회로일 수 있다. 실시 예에 따라서, 블록체인 데이터 처리용 집적 회로(910)는 블록체인 기반의 분산 장부 관리 시스템에서 송수신되는 노드 데이터의 암복호화를 수행할 수도 있다.Here, for example, the blockchain data processing integrated circuit 910 may be a specific purpose-oriented integrated circuit for performing Hyperledger ™ based data processing. According to an embodiment, the blockchain data processing integrated circuit 910 may perform encryption / decryption of node data transmitted and received in a blockchain-based distributed book management system.

용도 지향 집적 회로(202) 및 블록체인 데이터 처리용 집적 회로(910)가 반드시 물리적으로 구분된 구성요소일 필요는 없다. 실시 예에 따라서, 용도 지향 집적 회로(202) 및 블록체인 데이터 처리용 집적 회로(910)는 물리적으로 하나의 칩 내에 구성될 수도 있다.The application-oriented integrated circuit 202 and the blockchain data processing integrated circuit 910 need not be physically separated components. According to an embodiment, the application-oriented integrated circuit 202 and the blockchain data processing integrated circuit 910 may be physically configured in one chip.

스토리지 제어기(230)는 하나 이상의 스토리지(210)에 용도 지향 집적 회로(202) 및 블록체인 데이터 처리용 집적 회로(910)가 처리한 데이터를 저장할 수 있다. 스토리지 제어기(230)는 복수의 스토리지(210)에 연결되어 허브(Hub) 기능을 제공할 수도 있다.The storage controller 230 may store data processed by the application-oriented integrated circuit 202 and the blockchain data processing integrated circuit 910 in one or more storages 210. The storage controller 230 may be connected to the plurality of storage 210 to provide a hub function.

본 실시 예에 따른 네트워크 인터페이스 장치는 블록체인 데이터를 처리하기 위한 장치로 이용될 수 있다. 본 명세서에서, 블록체인 데이터를 처리하기 위한 장치는 블록 체인 처리 장치(Block-chain Processing Unit; BPU)로 언급될 수 있다.The network interface device according to the present embodiment may be used as an apparatus for processing blockchain data. In the present specification, an apparatus for processing blockchain data may be referred to as a block-chain processing unit (BPU).

도 10은 또 다른 몇몇 실시 예에 따라 키 관리 모듈을 포함하는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.FIG. 10 is a diagram for describing a structure of a network interface device including a key management module, according to another exemplary embodiment.

본 실시 예에 따른 네트워크 인터페이스 장치(200)는 네트워크 인터페이스부(220), 특정 용도 지향 집적 회로(202), 스토리지 제어기(230) 및 키 관리 모듈(1000)을 포함할 수 있다.The network interface device 200 according to the present embodiment may include a network interface unit 220, a specific purpose-oriented integrated circuit 202, a storage controller 230, and a key management module 1000.

키 관리 모듈(1000)은 네트워크 인터페이스부(220)를 통해 수신된 데이터를 특정 용도 지향 집적 회로(202)가 복호화하거나, 전송할 데이터를 암호화하기 위한 키(Key)를 제공할 수 있다.The key management module 1000 may decrypt the data received through the network interface unit 220, or provide a key for encrypting the data to be transmitted or decrypted by the specific purpose-oriented integrated circuit 202.

몇몇 실시 예에 따르면, 키 관리 모듈(1000)은 물리적 복제불가 기능(Physically Unclonable Function; PUF) 기반의 하드웨어 칩을 포함할 수 있다. PUF는 하드웨어 특성을 이용하여 임의의 고유값을 출력하는 기능을 의미한다. 키 관리 모듈(1000)은 PUF를 통해 생성된 고유값을 암호키로 제공할 수 있다.According to some embodiments, the key management module 1000 may include a hardware chip based on a physically unclonable function (PUF). PUF means a function of outputting an arbitrary eigenvalue using a hardware characteristic. The key management module 1000 may provide a unique value generated through the PUF as an encryption key.

네트워크 인터페이스부(220)를 통해서 수신된 데이터를 자체 처리 방식으로 처리할 경우, 키 관리 모듈(1000)은 PUF 기반의 하드웨어 칩으로부터 특정 용도 지향 집적 회로(202)에 암호키를 제공할 수 있다. 암호키를 획득한 특정 용도 지향 집적 회로(202)는 획득된 키를 이용하여 수신된 데이터를 복호화할 수 있다.When the data received through the network interface unit 220 is processed in a self-processing manner, the key management module 1000 may provide an encryption key to a specific application-oriented integrated circuit 202 from a PUF-based hardware chip. The specific purpose oriented integrated circuit 202 having obtained the encryption key may decrypt the received data using the obtained key.

도 11은 중앙 처리 장치를 통해 데이터를 처리하는 프로세스를 설명하기 위한 도면이다.11 is a diagram for describing a process of processing data through a central processing unit.

먼저, 단계 S1110에서 네트워크 인터페이스 장치(200)가 데이터를 수신한 경우, 네트워크 인터페이스 장치(200)는 수신된 데이터의 처리 방식을 결정할 수 있다. 결정된 처리 방식이 중앙 처리 방식인 경우, 네트워크 인터페이스 장치(200)는 버스를 통해 중앙 처리 장치(530)에 제어 데이터를 전달할 수 있다(S1120).First, when the network interface device 200 receives data in step S1110, the network interface device 200 may determine a processing method of the received data. When the determined processing scheme is the central processing scheme, the network interface device 200 may transfer control data to the central processing unit 530 through the bus (S1120).

이후, 단계 S1130에서 중앙 처리 장치(530)는 인터럽트 핸들러로부터 인터럽트 신호를 받아 중앙 처리 장치(530)에서 수행 중인 프로세스에 대하여 인터럽트를 발생시킬 수 있다. 이후, 중앙 처리 장치(530)가 제어 데이터를 네트워크 인터페이스 장치(200)로 전달하면, 네트워크 인터페이스 장치는 메모리(540)에 수신된 데이터를 로드시킬 수 있다.Thereafter, in operation S1130, the central processing unit 530 may receive an interrupt signal from the interrupt handler and generate an interrupt for the process being executed in the central processing unit 530. Thereafter, when the CPU 530 transmits the control data to the network interface device 200, the network interface device may load the received data into the memory 540.

이후, 단계 S1140에서 중앙 처리 장치(530)는 기존에 수행 중이던 프로세스를 중지하고 제어 데이터에 따라서 수신된 데이터를 처리할 수 있다. 이후, 단계 S1150에서 중앙 처리 장치(530)는 처리된 데이터를 스토리지(210)에 저장할 수 있다.Thereafter, in operation S1140, the CPU 530 may stop the process that is being executed and process the received data according to the control data. Thereafter, in operation S1150, the CPU 530 may store the processed data in the storage 210.

도 12는 몇몇 실시 예에 따른 네트워크 인터페이스 장치를 이용하여 데이터를 처리하는 프로세스를 도시한 순서도이다.12 is a flowchart illustrating a process of processing data using a network interface device according to some embodiments.

단계 S1210에서 네트워크 인터페이스 장치(200)의 네트워크 인터페이스부(220)가 데이터를 수신한 경우, 네트워크 인터페이스 장치(200)는 수신된 데이터의 처리 방식을 결정할 수 있다. 결정된 처리 방식이 자체 처리 방식인 경우, 네트워크 인터페이스 장치(200)는 특정 용도 지향 집적 회로(530)에 수신된 데이터를 전달할 수 있다.When the network interface unit 220 of the network interface device 200 receives data in step S1210, the network interface device 200 may determine a processing method of the received data. If the determined processing scheme is its own processing scheme, the network interface device 200 may transfer the received data to the specific purpose-oriented integrated circuit 530.

단계 S1230에서, 특정 용도 지향 집적 회로(530)는 수신된 데이터에 대하여 미리 지정된 함수를 호출하여 수신된 데이터를 종류별로 구분할 수 있다. 예를 들어, 특정 용도 지향 집적 회로(530)는 수신된 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 구분할 수 있다.In operation S1230, the specific purpose-oriented integrated circuit 530 may call a predetermined function with respect to the received data to classify the received data by type. For example, the specific purpose-oriented integrated circuit 530 may divide the received data into header data, individual transaction data, and other transaction data.

이후, 단계 S1240에서, 특정 용도 지향 집적 회로(530)는 헤더 값이 저장되고 작업 증명(Proof of work)을 완료하는 과정에서 발생하는 변화 정보를 구분하고, 변경되는 정보에 대응하는 데이터를 처리할 수 있다.Thereafter, in step S1240, the specific purpose-oriented integrated circuit 530 classifies change information generated in the process of storing a header value and completing a proof of work, and processes data corresponding to the changed information. Can be.

이후, 단계 S1250에서, 특정 용도 지향 집적 회로(530)는 단계 S1240에서 수행된 데이터 처리의 결과를 스토리지(210)에 저장할 수 있다. 또한, 특정 용도 지향 집적 회로(530)는 처리된 데이터를 메모리에 로드시킬 수 있다. 단계 S1260에서, 특정 용도 지향 집적 회로(530)는 수신된 데이터를 처리하고 스토리지(210)에 저장하는 데이터 처리 작업에 대한 메타 데이터를 생성할 수 있다. 이후, 단계 S1270에서, 생성된 메타 데이터가 메모리(540)에 로드될 수 있다.Thereafter, in step S1250, the specific purpose-oriented integrated circuit 530 may store the result of the data processing performed in step S1240 in the storage 210. In addition, the particular purpose-oriented integrated circuit 530 may load the processed data into the memory. In operation S1260, the specific purpose-oriented integrated circuit 530 may generate metadata about a data processing task that processes the received data and stores the data in the storage 210. Thereafter, in step S1270, the generated metadata may be loaded into the memory 540.

이후, 중앙 처리 장치(530)는 프로세스를 수행하는 과정에서 스토리지(210)에 저장된 데이터가 요구되는 경우, 중앙 처리 장치(530)는 단계 S1280에서 메모리(540)에 로드된 메타 데이터를 판독할 수 있다. 이후, 단계 S1290에서 중앙 처리 장치(530)는 획득한 메타 데이터를 이용하여 스토리지(210)로부터 저장된 데이터를 획득할 수 있다.Thereafter, when the data stored in the storage 210 is required in the process of performing the process, the CPU 530 may read the metadata loaded in the memory 540 in operation S1280. have. Thereafter, in operation S1290, the CPU 530 may acquire data stored from the storage 210 using the obtained metadata.

도 13은 몇몇 실시 예에 따라 구분되는 데이터를 설명하기 위한 개념도이다.FIG. 13 is a conceptual diagram illustrating data divided according to some embodiments. FIG.

몇몇 실시 예에 따른 분산 장부 관리 시스템은 노드에 전송하는 노드 데이터를 구성할 때, 도 13에 도시된 바와 같이 헤더 데이터(1300), 개별 거래 데이터(1310) 및 기타 거래 데이터(1320)를 포함하도록 노드 데이터를 구성할 수 있다.The distributed book management system according to some embodiments includes header data 1300, individual transaction data 1310, and other transaction data 1320 when configuring node data to be transmitted to the node, as shown in FIG. 13. You can configure node data.

헤더 데이터(1310)는 노드 데이터를 수신한 노드가 수신된 데이터가 노드 데이터임을 판단할 수 있는 정보를 포함할 수 있다. 예를 들면, 데이터를 수신한 노드를 구성하는 컴퓨팅 장치는 수신된 데이터의 헤더 데이터(1300)에 포함된 프로토콜에 관한 정보에 기초하여 수신된 데이터가 분산 장부 관리 시스템의 노드 데이터인지 여부를 판단하고, 판단 결과에 따라 데이터의 처리 방식을 결정할 수 있다.The header data 1310 may include information for determining whether the received data is node data. For example, the computing device configuring the node that has received the data determines whether the received data is node data of the distributed ledger management system based on the information about the protocol included in the header data 1300 of the received data. In this case, the data processing method may be determined according to the determination result.

개별 거래 데이터(1310)는 트랜잭션에 의해 분산 장부 관리 시스템 내에서 변경이 발생하는 부분에 관한 변경 정보(1311)에 해당하는 부분을 포함할 수 있다. 노드 데이터를 수신한 네트워크 인터페이스 장치(200)는 개별 거래 데이터 중에서 변경 정보(1311)에 해당하는 정보는 데이터 처리 후 스토리지(210)에 저장할 수 있다.The individual transaction data 1310 may include a portion corresponding to change information 1311 about a portion in which a change occurs in the distributed book management system by a transaction. The network interface device 200 receiving the node data may store information corresponding to the change information 1311 among the individual transaction data in the storage 210 after data processing.

도 13에 도시된 바와 같이 구성된 데이터 내에서 각 데이터들의 용량은 기타 거래 데이터(1320)가 가장 큰 용량을 차지하고, 개별 거래 데이터(1310)가 그 다음으로 일정 용량을 차지한다. 헤더 데이터(1300)는 데이터 내에서 가장 작은 용량을 가진다. 따라서, 기타 거래 데이터를 네트워크 인터페이스 장치가 스토리지에 바로 저장하는 몇몇 실시 예에 따르면, 데이터의 처리에 소요되는 시간을 크게 줄일 수 있다In the data configured as shown in FIG. 13, the capacity of each data is occupied by the other transaction data 1320, followed by the individual transaction data 1310 by a certain amount. Header data 1300 has the smallest capacity in the data. Therefore, according to some embodiments in which the network interface device stores other transaction data directly in storage, the time required for processing the data may be greatly reduced.

지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The methods according to the embodiments of the present invention described so far may be performed by execution of a computer program implemented in computer readable code. The computer program may be transmitted to and installed on the second computing device from the first computing device via a network such as the Internet, and thus may be used in the second computing device. The first computing device and the second computing device include both a server device, a physical server belonging to a server pool for cloud services, and a stationary computing device such as a desktop PC.

상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.The computer program may be stored in a recording medium such as a DVD-ROM or a flash memory device.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.Although embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features thereof. I can understand that. Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive.

Claims (23)

외부 네트워크로부터 외부 통신 포트를 통해 노드 데이터를 수신하는 네트워크 인터페이스부, 컴퓨팅 장치의 버스와 연결되는 버스 연결부 및 스토리지와 연결되는 스토리지 연결부를 포함하는 기판;
상기 기판에 실장되며, 상기 스토리지 연결부를 통해 상기 스토리지와 연결되며, 상기 스토리지를 제어하는 스토리지 제어기; 및
상기 기판에 실장되며, 상기 네트워크 인터페이스부로부터 상기 노드 데이터를 전달 받아 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하고, 결정된 처리 방식이 중앙 처리 방식인 경우 상기 버스를 통해 중앙 처리 장치에 제어 데이터를 전송하는 용도 지향 집적 회로;를 포함하는,
네트워크 인터페이스 카드.
A substrate including a network interface for receiving node data from an external network through an external communication port, a bus connection connected to a bus of the computing device, and a storage connection connected to the storage;
A storage controller mounted on the substrate and connected to the storage through the storage connection unit and controlling the storage; And
Mounted on the board and receiving the node data from the network interface unit to determine a processing method, and when the determined processing method is its own processing method, processes a function corresponding to the node data, and processes the function corresponding to the node data to the storage through the storage controller. A purpose-oriented integrated circuit for performing data processing operations on the data processing unit and transmitting control data to the central processing unit through the bus when the determined processing scheme is a central processing scheme.
Network interface card.
제1항에 있어서,
상기 용도 지향 집적 회로는,
상기 노드 데이터로부터 헤더 데이터를 구분하고, 상기 구분된 헤더 데이터를 이용하여 상기 처리 방식을 결정하는,
네트워크 인터페이스 카드.
The method of claim 1,
The use-oriented integrated circuit,
Classifying header data from the node data and determining the processing method using the classified header data;
Network interface card.
제2항에 있어서,
상기 용도 지향 집적 회로는,
상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정하는,
네트워크 인터페이스 카드.
The method of claim 2,
The use-oriented integrated circuit,
When the header data calls a predetermined function, determining the processing method as its own processing method,
Network interface card.
제3항에 있어서,
상기 미리 정해진 함수는,
블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널(kernel) 명령어를 포함하는,
네트워크 인터페이스 카드.
The method of claim 3,
The predetermined function is
Nodes in the blockchain contain kernel instructions in the communication layer for processing data,
Network interface card.
제2항에 있어서,
상기 용도 지향 집적 회로는,
상기 노드 데이터에서 개별 거래 데이터 및 기타 거래 데이터를 분류하고, 상기 개별 거래 데이터 및 기타 거래 데이터를 상기 버스를 통하지 않고 상기 스토리지 제어기를 통해 상기 스토리지에 저장하는,
네트워크 인터페이스 카드.
The method of claim 2,
The use-oriented integrated circuit,
Classifying individual transaction data and other transaction data in the node data, and storing the individual transaction data and other transaction data in the storage via the storage controller without passing through the bus;
Network interface card.
제1항에 있어서,
상기 네트워크 인터페이스 카드는,
상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 더 포함하는,
네트워크 인터페이스 카드.
The method of claim 1,
The network interface card,
Further comprising an integrated circuit for blockchain data processing for decoding the node data,
Network interface card.
제1항에 있어서,
상기 네트워크 인터페이스 카드는,
상기 수신된 노드 데이터를 복호화하거나 전송할 데이터를 암호화하기 위한 키를 제공하는 키 관리 모듈을 더 포함하는,
네트워크 인터페이스 카드.
The method of claim 1,
The network interface card,
And a key management module for providing a key for decrypting the received node data or encrypting data to be transmitted.
Network interface card.
제7항에 있어서,
상기 키 관리 모듈은,
물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩을 포함하는,
네트워크 인터페이스 카드.
The method of claim 7, wherein
The key management module,
Including a hardware chip based on a Physically Unclonable Function,
Network interface card.
제8항에 있어서,
상기 용도 지향 집적 회로는,
상기 결정된 처리 방식이 자체 처리 방식인 경우 상기 하드웨어 칩으로부터 키(key)를 획득하고, 상기 획득된 키를 이용하여 상기 노드 데이터를 복호화하는,
네트워크 인터페이스 카드.
The method of claim 8,
The use-oriented integrated circuit,
Obtaining a key from the hardware chip when the determined processing method is a self processing method, and decrypting the node data using the obtained key;
Network interface card.
제1항에 있어서,
상기 용도 지향 집적 회로는,
상기 데이터 처리 작업을 완료한 이후 상기 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 버스를 통해 상기 컴퓨팅 장치의 메모리에 로드시키는,
네트워크 인터페이스 카드.
The method of claim 1,
The use-oriented integrated circuit,
Generating metadata about the data processing task after completing the data processing task, and loading the generated metadata into the memory of the computing device through the bus;
Network interface card.
제10항에 있어서,
상기 메타데이터는,
상기 데이터 처리 작업에 의해 상기 스토리지에 저장된 데이터의 위치 정보와 변경된 데이터에 대한 정보를 포함하는,
네트워크 인터페이스 카드.
The method of claim 10,
The metadata,
Including the position information of the data stored in the storage and the changed data by the data processing operation,
Network interface card.
노드 데이터가 수신되면 상기 노드 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 분류하는 동작;
상기 헤더 데이터에 기초하여 처리 방식을 결정하는 동작; 및
상기 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하는 동작;을 수행하도록 하는 인스트럭션들을 실행하는,
용도 지향 집적 회로.
Classifying the node data into header data, individual transaction data, and other transaction data when node data is received;
Determining a processing scheme based on the header data; And
If the processing method is a self processing method, processing a function corresponding to the node data and performing a data processing operation on the storage through the storage controller;
Application Oriented Integrated Circuits.
제12항에 있어서,
상기 처리 방식을 결정하는 동작은,
상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정하는 동작을 포함하는,
용도 지향 집적 회로.
The method of claim 12,
The operation of determining the processing method is
Determining the processing method as its own processing method when the header data calls a predetermined function;
Application-oriented integrated circuits.
제13항에 있어서,
상기 미리 정해진 함수는,
블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널 명령어를 포함하는,
용도 지향 집적 회로.
The method of claim 13,
The predetermined function is
Nodes in the blockchain contain kernel instructions in the communication layer for processing data,
Application-oriented integrated circuits.
제12항에 있어서,
상기 용도 지향 집적 회로는,
상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 포함하는,
용도 지향 집적 회로.
The method of claim 12,
The use-oriented integrated circuit,
An integrated circuit for processing blockchain data for decoding the node data,
Application-oriented integrated circuits.
데이터의 통신 경로를 제공하는 버스;
상기 버스에 연결되는 중앙 처리부;
데이터를 비일시적으로 저장하는 스토리지; 및
노드 데이터가 수신될 경우 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 버스를 통하지 않고 상기 스토리지에 대해 데이터 처리 작업을 수행하는 네트워크 인터페이스 카드;를 포함하는,
분산 장부 관리 시스템의 노드를 구성하는 컴퓨팅 장치.
A bus providing a communication path for data;
A central processor connected to the bus;
Storage for storing data non-transitoryly; And
A network interface card that determines a processing method when node data is received, and performs data processing on the storage without passing through the bus when the determined processing method is its own processing method.
Computing devices that form the nodes of a distributed ledger management system.
제16항에 있어서,
상기 블록체인 노드 컴퓨팅 장치는,
상기 버스에 연결된 메모리를 더 포함하고,
상기 네트워크 인터페이스 카드는,
상기 데이터 처리 작업을 수행한 이후 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 컴퓨팅 장치의 메모리에 로드하며,
상기 메모리는,
상기 중앙 처리부의 요청에 따라 상기 메타데이터를 상기 중앙 처리부로 제공하는,
분산 장부 관리 시스템의 노드를 구성하는 컴퓨팅 장치.
The method of claim 16,
The blockchain node computing device,
Further comprising a memory coupled to the bus,
The network interface card,
After performing the data processing task, generates metadata about the data processing task, loads the generated metadata into the memory of the computing device,
The memory,
Providing the metadata to the central processing unit at the request of the central processing unit,
Computing devices that form the nodes of a distributed ledger management system.
제16항에 있어서,
상기 네트워크 인터페이스 카드는,
상기 수신된 노드 데이터를 처리하기 위한 용도 지향 집적 회로를 포함하는,
분산 장부 관리 시스템의 노드를 구성하는 컴퓨팅 장치.
The method of claim 16,
The network interface card,
A use oriented integrated circuit for processing the received node data;
Computing devices that form the nodes of a distributed ledger management system.
제16항에 있어서,
상기 스토리지는,
블록체인 시스템의 노드에 저장되는 장부를 저장하고,
상기 네트워크 인터페이스 카드는,
상기 노드 데이터가 상기 장부와 관련된 데이터인 경우 상기 중앙 처리부에 인터럽트를 발생시키기 않고 상기 노드 데이터에 따라 상기 장부를 변경하는,
분산 장부 관리 시스템의 노드를 구성하는 컴퓨팅 장치.
The method of claim 16,
The storage,
Store the books stored in the nodes of the blockchain system,
The network interface card,
Changing the book according to the node data without causing an interrupt to the central processing unit when the node data is data related to the book,
Computing devices that form the nodes of a distributed ledger management system.
컴퓨팅 장치가 수행하는 데이터 처리 방법에 있어서,
데이터를 수신하는 단계;
상기 수신된 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 구분하고, 상기 헤더 데이터에 포함된 함수를 호출하여 상기 데이터의 종류를 구분하는 단계; 및
상기 컴퓨팅 장치의 중앙 처리 장치에 대한 인터럽트를 발생시키지 않고, 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 상기 구분된 종류에 따라 지정된 스토리지의 저장 위치에 저장하는 단계;를 포함하는,
데이터 처리 방법.
In the data processing method performed by the computing device,
Receiving data;
Dividing the received data into header data, individual transaction data, and other transaction data, and calling a function included in the header data to classify the type of the data; And
Storing the individual transaction data and the other transaction data in a storage location of designated storage according to the distinguished type without generating an interrupt to the central processing unit of the computing device.
How data is processed.
제20항에 있어서,
상기 구분하는 단계는,
상기 헤더 데이터를 저장하고 작업 증명을 완료하는 과정에서 변경되는 정보를 구분하는 단계를 포함하고,
상기 저장하는 단계는,
상기 개별 거래 데이터 중 변경되는 정보에 대응되는 데이터를 용도 지향 집적 회로를 이용하여 처리하는 단계, 및
상기 개별 거래 데이터 중 상기 용도 지향 집적 회로를 이용하여 처리된 결과 데이터, 상기 개별 거래 데이터 중 변경되지 않는 정보 및 기타 거래 데이터를 저장하는 단계를 포함하는,
데이터 처리 방법.
The method of claim 20,
The step of separating,
Storing the header data and distinguishing the information changed in the process of completing the proof of work;
The storing step,
Processing data corresponding to the changed information among the individual transaction data by using a usage-oriented integrated circuit, and
Storing result data processed using the usage-oriented integrated circuit among the individual transaction data, information unchanged among the individual transaction data, and other transaction data;
How data is processed.
제21항에 있어서,
상기 처리하는 단계는,
물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩으로부터 데이터 복호화를 위한 키를 획득하는 단계, 및
상기 키에 기초하여 상기 변경되는 정보에 대응되는 데이터를 복호화하는 단계를 포함하는,
데이터 처리 방법.
The method of claim 21,
The processing step,
Obtaining a key for data decryption from a hardware chip based on a Physically Unclonable Function, and
Decrypting data corresponding to the changed information based on the key;
How data is processed.
제22항에 있어서,
상기 스토리지에 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 저장한 결과에 대한 메타 데이터를 생성하는 단계; 및
상기 메타 데이터를 상기 컴퓨팅 장치의 메모리에 로드하는 단계;를 포함하는,
데이터 처리 방법.
The method of claim 22,
Generating metadata about a result of storing the individual transaction data and the other transaction data in the storage; And
Loading the metadata into a memory of the computing device;
How data is processed.
KR1020180110252A 2018-04-04 2018-09-14 Network interface apparatus and data processing method for network interface apparauts thereof KR102128832B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180039328 2018-04-04
KR1020180039328 2018-04-04

Publications (2)

Publication Number Publication Date
KR20190116034A true KR20190116034A (en) 2019-10-14
KR102128832B1 KR102128832B1 (en) 2020-07-01

Family

ID=68171239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180110252A KR102128832B1 (en) 2018-04-04 2018-09-14 Network interface apparatus and data processing method for network interface apparauts thereof

Country Status (1)

Country Link
KR (1) KR102128832B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116165953A (en) * 2023-03-05 2023-05-26 上海医鸽智能科技有限公司 Intelligent control system based on multi-source data fusion

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060130201A (en) * 2004-03-02 2006-12-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Two parallel engines for high speed transmit ipsec processing
KR20080102889A (en) * 2007-05-22 2008-11-26 (주) 시스메이트 Traffic partition processing apparatus and method thereof, multiprocessing system
KR20090005866A (en) * 2007-07-10 2009-01-14 (주) 시스메이트 Network interface apparatus and network apparatus including the network interface apparatus
KR20160138448A (en) * 2014-03-08 2016-12-05 다이아만티 인코포레이티드 Methods and systems for converged networking and storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060130201A (en) * 2004-03-02 2006-12-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Two parallel engines for high speed transmit ipsec processing
KR20080102889A (en) * 2007-05-22 2008-11-26 (주) 시스메이트 Traffic partition processing apparatus and method thereof, multiprocessing system
KR20090005866A (en) * 2007-07-10 2009-01-14 (주) 시스메이트 Network interface apparatus and network apparatus including the network interface apparatus
KR20160138448A (en) * 2014-03-08 2016-12-05 다이아만티 인코포레이티드 Methods and systems for converged networking and storage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116165953A (en) * 2023-03-05 2023-05-26 上海医鸽智能科技有限公司 Intelligent control system based on multi-source data fusion
CN116165953B (en) * 2023-03-05 2023-12-22 上海医鸽智能科技有限公司 Intelligent control system based on multi-source data fusion

Also Published As

Publication number Publication date
KR102128832B1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
US7444459B2 (en) Methods and systems for load balancing of virtual machines in clustered processors using storage related load information
CN111541784B (en) Transaction processing method and device based on block chain all-in-one machine
CN111541724B (en) Block chain all-in-one machine and automatic node adding method and device thereof
US20170249464A1 (en) METHOD FOR ENABLING SIMULTANEOUS CONTROL OF A PLURALITY OF TPMs AND RELATED COMPONENTS
CN113438219B (en) Playback transaction identification method and device based on blockchain all-in-one machine
CN102119512A (en) Distributed load balancer
CN111539829B (en) To-be-filtered transaction identification method and device based on block chain all-in-one machine
US11650951B2 (en) Edge component computing system having integrated FaaS call handling capability
US11861406B2 (en) Dynamic microservices allocation mechanism
CN111541789A (en) Data synchronization method and device based on block chain all-in-one machine
WO2022161182A1 (en) Trusted computing method and apparatus based on data stream
US10594703B2 (en) Taint mechanism for messaging system
KR20230147055A (en) Spatial distribution in 3D data processing units
CN111600755B (en) Internet access behavior management system and method
WO2021057273A1 (en) Method and apparatus for realizing efficient contract calling on fpga
KR102128832B1 (en) Network interface apparatus and data processing method for network interface apparauts thereof
CN116670662A (en) Managing lock coordinator rebalancing in a distributed file system
US20220114023A1 (en) Infrastructure as code deployment mechanism
Wang et al. Coupling GPU and MPTCP to improve Hadoop/MapReduce performance
US11070654B2 (en) Sockets for shared link applications
CN114003342A (en) Distributed storage method and device, electronic equipment and storage medium
CN114866537B (en) Cross-host cross-network file transmission method and system
US20220066845A1 (en) Dynamic authenticatication an authorization of a containerized process
US20240160463A1 (en) Secure drive for computer systems
JP7235295B2 (en) Virtual machine management device, virtual machine management method, and program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant