KR102128832B1 - 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 Download PDFInfo
- Publication number
- KR102128832B1 KR102128832B1 KR1020180110252A KR20180110252A KR102128832B1 KR 102128832 B1 KR102128832 B1 KR 102128832B1 KR 1020180110252 A KR1020180110252 A KR 1020180110252A KR 20180110252 A KR20180110252 A KR 20180110252A KR 102128832 B1 KR102128832 B1 KR 102128832B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- network interface
- processing method
- storage
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 118
- 238000003860 storage Methods 0.000 claims abstract description 106
- 238000000034 method Methods 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 28
- 239000000758 substrate Substances 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치를 이용한 데이터 처리 방법이 제공 된다. 네트워크 인터페이스 카드는, 외부 네트워크로부터 외부 통신 포트를 통해 노드 데이터를 수신하는 네트워크 인터페이스부, 컴퓨팅 장치의 버스와 연결되는 버스 연결부 및 스토리지와 연결되는 스토리지 연결부를 포함하는 기판; 상기 기판에 실장되며, 상기 스토리지 연결부를 통해 상기 스토리지와 연결되며, 상기 스토리지를 제어하는 스토리지 제어기; 및 상기 기판에 실장되며, 상기 네트워크 인터페이스부로부터 상기 노드 데이터를 전달 받아 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하고, 결정된 처리 방식이 중앙 처리 방식인 경우 상기 버스를 통해 중앙 처리 장치에 제어 데이터를 전송하는 용도 지향 집적 회로를 포함할 수 있다.A network interface device and a data processing method using the network interface device are provided. The network interface card includes: a substrate including a network interface unit 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 storage; A storage controller mounted on the substrate, connected to the storage through the storage connection, and controlling the storage; And mounted on the substrate, receives the node data from the network interface unit, determines a processing method, and if the determined processing method is a self-processing method, processes a function corresponding to the node data and stores the storage 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 through the bus when the determined processing method is the central processing method.
Description
본 발명은 네트워크 인터페이스 장치 및 그 네트워크 인터페이스 장치를 이용한 데이터 처리 방법에 관한 것으로, 보다 자세하게는, 특정 목적에 따라 데이터를 송수신할 수 있도록 하는 네트워크 인터페이스 장치와 그 네트워크 인터페이스 장치가 데이터를 처리하는 방법에 관한 것이다.The present invention relates to a network interface device and a data processing method using the network interface device, and more specifically, to a network interface device that enables data to be transmitted and received according to a specific purpose, and a method for processing the data by the network interface device. It is about.
이 부분에 기술된 내용은 본 실시 예에 대한 배경 정보를 제공하는 것이며, 이 부분에 기재된 것만으로 종래의 기술에 속하는 것은 아니다.The contents described in this section provide background information for the present embodiment, and are not included in the prior art by merely describing this section.
서버, PC 등의 컴퓨팅 장치는 CPU, 메모리, 네트워크, 저장 매체(스토리지) 등의 자원을 이용하여 데이터를 처리하고, 저장하며, 외부와 데이터를 송수신할 수 있다. 컴퓨팅 장치가 데이터를 송신 또는 수신하기 위해서는 네트워크 인터페이스 카드(Network Interface Card; NIC)가 이용될 수 있다. 네트워크 인터페이스가 수신한 데이터는 시스템 버스를 이용해 CPU로 전달되고, CPU는 수신된 데이터를 처리하여 데이터 케이블 등을 통해 스토리지에 저장할 수 있다. 또는 스토리지에 저장된 데이터에 대해 CPU가 암호화 등의 데이터 처리를 수행하고, 처리된 데이터를 시스템 버스를 통해 네트워크 인터페이스 카드로 전달하여 외부로 전송할 수 있다.Computing devices such as servers and PCs can process, store, and transmit and receive data to and from the outside using resources such as a CPU, memory, network, and storage medium (storage). A network interface card (NIC) may be used for the computing device to transmit or receive data. 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 a data cable or the like. Alternatively, the CPU may perform data processing such as encryption on the data stored in the storage, and transmit the processed data to the network interface card through the system bus and transmit the data to the outside.
또한, 블록 체인(Block Chain) 기술을 이용한 분산 장부 관리 시스템이 여러 분야에서 활용되고 있다. 블록 체인 기술은 블록에 일정 시간 동안 확정된 거래 내역을 기록하고, 각 블록이 네트워크에 있는 모든 참여자에게 전송하며, 승인된 블록이 기존의 블록 체인에 연결되면서 거래가 이루어지도록 하는 기술이다. 블록 체인을 기술을 이용한 분산 장부 관리 시스템의 각 노드를 구성하는 컴퓨팅 장치들은 누구나 열람할 수 있는 장부에 거래 데이터를 기록하고, 각 컴퓨팅 장치들이 주기적으로 기록을 검증하여 해킹을 방지할 수 있다.In addition, distributed ledger management systems using block chain technology have been utilized in various fields. Blockchain technology is a technology that records the confirmed transaction details in a block for a certain period of time, transmits each block to all participants in the network, and allows the approved block to be connected to the existing blockchain to make a transaction. Computing devices constituting each node of the distributed ledger management system using blockchain technology record transaction data in a book that anyone can view, and each computing device periodically verifies records to prevent hacking.
따라서, 블록 체인 기술을 이용한 분산 장부 관리 시스템은 노드를 구성하는 컴퓨팅 장치에 거래 데이터를 포함하는 블록을 전달하고, 각 컴퓨팅 장치가 거래 데이터를 장부에 기록한 결과를 회신 받는 과정이 필요하다. 그러나 각 노드에 거래 데이터를 전달하여 처리하고 모든 장부에 거래 데이터가 반영되기까지 지연이 발생한다. 이로 인해 분산 장부 관리 시스템이 처리할 수 있는 시간당 트랜잭션(transaction per second; tps)이 저하되는 문제점이 있다.Therefore, a distributed ledger management system using a block chain technology needs to transmit a block including transaction data to a computing device constituting a node, and receive a result of each computing device replying a result of recording transaction data in a ledger. However, there is a delay until transaction data is delivered to each node for processing and the transaction data is reflected in all books. Due to this, there is a problem that a transaction per second (tps) that can be processed by the distributed ledger management system is deteriorated.
해결하고자 하는 기술적 과제는, 특정 용도로 사용되는 네트워크 인터페이스 장치, 그 네트워크 인터페이스 장치를 이용한 데이터 처리 방법 및 컴퓨팅 장치를 제공하는 것이다.The technical problem to be solved is to provide a network interface device used for a specific purpose, a data processing method using the network interface device, and a computing device.
해결하고자 하는 다른 기술적 과제는, 데이터 송수신을 위한 암호화 및 복호화 프로세싱 성능을 높일 수 있는 네트워크 인터페이스 장치 및 그 제어 방법을 제공하는 것이다.Another technical problem to be solved is to provide a network interface device and a control method for improving 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 for improving the input/output speed of a storage medium that is 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.
기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.The technical problems are not limited to the technical problems mentioned above, 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 for receiving data from an external device; Decoding a data received from the external communication port, and an application specific integrated circuit embedded in the network interface device; And an I/O port connected to storage and storing data decrypted by the specific purpose-oriented integrated circuit in the storage.
기술적 과제를 해결하기 위한, 몇몇 실시 예에 따른 네트워크 인터페이스 카드는, 외부 네트워크로부터 외부 통신 포트를 통해 노드 데이터를 수신하는 네트워크 인터페이스부, 컴퓨팅 장치의 버스와 연결되는 버스 연결부 및 스토리지와 연결되는 스토리지 연결부를 포함하는 기판; 상기 기판에 실장되며, 상기 스토리지 연결부를 통해 상기 스토리지와 연결되며, 상기 스토리지를 제어하는 스토리지 제어기; 및 상기 기판에 실장되며, 상기 네트워크 인터페이스부로부터 상기 노드 데이터를 전달 받아 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하고, 결정된 처리 방식이 중앙 처리 방식인 경우 상기 버스를 통해 중앙 처리 장치에 제어 데이터를 전송하는 용도 지향 집적 회로를 포함할 수 있다.In order to solve the technical problem, the network interface card according to some embodiments includes a network interface unit that receives 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 storage. A substrate comprising a; A storage controller mounted on the substrate, connected to the storage through the storage connection, and controlling the storage; And mounted on the substrate, receives the node data from the network interface unit, determines a processing method, and if the determined processing method is a self-processing method, processes a function corresponding to the node data and stores the storage 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 through the bus when the determined processing method is the central processing method.
또한, 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는, 상기 노드 데이터로부터 헤더 데이터를 구분하고, 상기 구분된 헤더 데이터를 이용하여 상기 처리 방식을 결정할 수 있다.In addition, according to some other embodiments, the purpose-oriented integrated circuit may classify header data from the node data and determine the processing method using the divided header data.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정할 수 있다.Further, according to another exemplary embodiment, the purpose-oriented integrated circuit may determine the processing method as its own processing method when the header data calls a predetermined function.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 미리 정해진 함수는 블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널(kernel) 명령어를 포함할 수 있다.Further, according to some other embodiments, the predetermined function may include a kernel command of a communication layer for processing data by a node of the blockchain.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 노드 데이터에서 개별 거래 데이터 및 기타 거래 데이터를 분류하고, 상기 개별 거래 데이터 및 기타 거래 데이터를 상기 버스를 통하지 않고 상기 스토리지 제어기를 통해 상기 스토리지에 저장할 수 있다.Further, according to some other embodiments, the purpose-oriented integrated circuit classifies individual transaction data and other transaction data from the node data, and passes the individual transaction data and other transaction data through the storage controller without going through the bus. It can be stored in the storage.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 네트워크 인터페이스 카드는 상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 더 포함할 수 있다.In addition, according to some other embodiments, the network interface card may further include an integrated circuit for processing blockchain data that decrypts the node data.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 네트워크 인터페이스 카드는 상기 수신된 노드 데이터를 복호화하거나 전송할 데이터를 암호화하기 위한 키를 제공하는 키 관리 모듈을 더 포함할 수 있다.In addition, according to some other embodiments, 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 another exemplary embodiment, the purpose-oriented integrated circuit acquires a key from the hardware chip when the determined processing method is a self-processing method, and decrypts the node data using the obtained key can do.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 데이터 처리 작업을 완료한 이후 상기 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 버스를 통해 상기 컴퓨팅 장치의 메모리에 로드시킬 수 있다.Further, according to another exemplary embodiment, the purpose-oriented integrated circuit generates metadata for the data processing task after completing the data processing task, and generates the metadata of the computing device through the bus. Can be loaded on.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 메타데이터는 상기 데이터 처리 작업에 의해 상기 스토리지에 저장된 데이터의 위치 정보와 변경된 데이터에 대한 정보를 포함할 수 있다.In addition, according to some other embodiments, the metadata may include information about location information and changed data of data stored in the storage by the data processing operation.
기술적 과제를 해결하기 위한, 몇몇 실시예에 따른 용도 지향 집적 회로는, 노드 데이터가 수신되면 상기 노드 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 분류하는 동작; 상기 헤더 데이터에 기초하여 처리 방식을 결정하는 동작; 및 상기 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터에 상응하는 함수를 처리하며 상기 스토리지 제어기를 통해 상기 스토리지에 대해 데이터 처리 작업을 수행하는 동작;을 수행하도록 하는 인스트럭션들을 실행할 수 있다.In order to solve the technical problem, a purpose-oriented integrated circuit according to some embodiments includes: when node data is received, classifying the node data into header data, individual transaction data, and other transaction data; Determining a processing method based on the header data; And an operation of processing a function corresponding to the node data and performing a data processing operation on the storage through the storage controller when the processing method is a self-processing method.
또한, 다른 몇몇 실시 예에 따르면, 상기 처리 방식을 결정하는 동작은 상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정하는 동작을 포함할 수 있다.Further, according to some other embodiments, the operation of determining the processing method may include an operation of determining the processing method by itself when the header data calls a predetermined function.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 미리 정해진 함수는 블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널 명령어를 포함할 수 있다.Further, according to some other embodiments, the predetermined function may include kernel commands of a communication layer for processing data by a node of the blockchain.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 용도 지향 집적 회로는 상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 포함할 수 있다.Further, according to some other embodiments, the purpose-oriented integrated circuit may include an integrated circuit for processing blockchain data that decrypts the node data.
기술적 과제를 해결하기 위한, 몇몇 실시예에 따라 분산 장부 관리 시스템의 노드를 구성하는 컴퓨팅 장치는, 데이터의 통신 경로를 제공하는 버스; 상기 버스에 연결되는 중앙 처리부; 데이터를 비일시적으로 저장하는 스토리지; 및 노드 데이터가 수신될 경우 처리 방식을 결정하고, 결정된 처리 방식이 자체 처리 방식인 경우 상기 버스를 통하지 않고 상기 스토리지에 대해 데이터 처리 작업을 수행하는 네트워크 인터페이스 카드;를 포함할 수 있다.In order to solve the technical problem, according to some embodiments, a computing device constituting a node of a distributed ledger management system includes: a bus that provides a communication path for data; A central processing unit connected to the bus; Storage for temporarily storing data; 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 going through the bus when the determined processing method is a self-processing method.
또한, 다른 몇몇 실시 예에 따르면, 상기 블록체인 노드 컴퓨팅 장치는, 상기 버스에 연결된 메모리를 더 포함하고, 상기 네트워크 인터페이스 카드는, 상기 데이터 처리 작업을 수행한 이후 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 컴퓨팅 장치의 메모리에 로드하며, 상기 메모리는, 상기 중앙 처리부의 요청에 따라 상기 메타데이터를 상기 중앙 처리부로 제공할 수 있다.In addition, according to some other embodiments, the blockchain node computing device further includes a memory connected to the bus, and the network interface card generates metadata for a data processing operation after performing the data processing operation. Then, the generated metadata is loaded into the memory of the computing device, and the memory may provide the metadata to the central processing unit at the request of the central processing unit.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 네트워크 인터페이스 카드는, 상기 수신된 노드 데이터를 처리하기 위한 용도 지향 집적 회로를 포함할 수 있다.Further, according to some other embodiments, the network interface card may include a purpose-oriented integrated circuit for processing the received node data.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 스토리지는, 블록체인 시스템의 노드에 저장되는 장부를 저장하고, 상기 네트워크 인터페이스 카드는, 상기 노드 데이터가 상기 장부와 관련된 데이터인 경우 상기 중앙 처리부에 인터럽트를 발생시키기 않고 상기 노드 데이터에 따라 상기 장부를 변경할 수 있다.In addition, according to some other embodiments, the storage stores a book stored in a node of the blockchain system, and the network interface card interrupts the central processing unit when the node data is data related to the book. The ledger can be changed according to the node data without generating it.
기술적 과제를 해결하기 위한, 몇몇 실시예에 따라 컴퓨팅 장치가 수행하는 데이터 처리 방법은, 데이터를 수신하는 단계; 상기 수신된 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 구분하고, 상기 헤더 데이터에 포함된 함수를 호출하여 상기 데이터의 종류를 구분하는 단계; 및 상기 컴퓨팅 장치의 중앙 처리 장치에 대한 인터럽트를 발생시키지 않고, 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 상기 구분된 종류에 따라 지정된 스토리지의 저장 위치에 저장하는 단계;를 포함할 수 있다.In order to solve the technical problem, according to some embodiments, a data processing method performed by a computing device includes: receiving data; Classifying the received data into header data, individual transaction data and other transaction data, and classifying the type of the data by calling a function included in the header data; And without generating an interrupt to the central processing unit of the computing device, storing the individual transaction data and the other transaction data in a storage location of a designated storage according to the distinguished type.
또한, 다른 몇몇 실시 예에 따르면, 상기 구분하는 단계는, 상기 헤더 데이터를 저장하고 작업 증명을 완료하는 과정에서 변경되는 정보를 구분하는 단계를 포함하고, 상기 저장하는 단계는, 상기 개별 거래 데이터 중 변경되는 정보에 대응되는 데이터를 용도 지향 집적 회로를 이용하여 처리하는 단계, 및 상기 개별 거래 데이터 중 상기 용도 지향 집적 회로를 이용하여 처리된 결과 데이터, 상기 개별 거래 데이터 중 변경되지 않는 정보 및 기타 거래 데이터를 저장하는 단계를 포함할 수 있다.In addition, according to some other embodiments, the step of separating includes the step of separating information changed in the process of storing the header data and completing the proof of work, and the step of storing is among the individual transaction data. Processing data corresponding to the changed information using a purpose-oriented integrated circuit, and result data processed using the purpose-oriented integrated circuit among the individual transaction data, unchanged information and other transactions among the individual transaction data And storing the data.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 처리하는 단계는, 물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩으로부터 데이터 복호화를 위한 키를 획득하는 단계, 및 상기 키에 기초하여 상기 변경되는 정보에 대응되는 데이터를 복호화하는 단계를 포함할 수 있다.In addition, according to another exemplary embodiment, the processing may include obtaining a key for decrypting data from a hardware chip based on a physically unclonable function, and the changed information based on the key It may include the step of decoding the data corresponding to.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 스토리지에 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 저장한 결과에 대한 메타 데이터를 생성하는 단계; 및 상기 메타 데이터를 상기 컴퓨팅 장치의 메모리에 로드하는 단계;를 포함할 수 있다.In addition, according to some other embodiments, generating metadata for a result of storing the individual transaction data and the other transaction data in the storage; And loading the metadata into the 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 characteristics of a distributed ledger management system.
2 is a diagram illustrating a structure of a network interface device provided in a computing device according to some embodiments.
3 is a diagram illustrating a process in which a computing device stores received data according to some embodiments.
4 is a diagram illustrating a process in which a computing device transmits changed data to another node according to some embodiments.
5 is a diagram for explaining the structure of a computing device.
6 is a diagram for describing structures of a computing device and a network interface device according to some embodiments.
7 is a diagram illustrating a hierarchical structure configured by a network interface device according to some embodiments.
8 is a flowchart illustrating a process for processing data according to some embodiments.
9 is a diagram for explaining a structure of a network interface device including an integrated circuit for processing blockchain data according to some other embodiments.
10 is a diagram for explaining the structure of a network interface device including a key management module according to some other embodiments.
11 is a view for explaining a process for 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.
13 is a conceptual diagram illustrating data classified according to some embodiments.
이하, 첨부된 도면을 참조하여 바람직한 실시예들을 상세히 설명한다. 실시예들에 따른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 알려주기 위해 제공되는 것이다.Hereinafter, preferred embodiments will be described in detail with reference to the accompanying drawings. Advantages and features according to embodiments, and methods for achieving them will be clarified through embodiments described below in detail with reference to the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments are provided to inform a person of ordinary skill in the art to the scope of the invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 그 범주를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used as meanings commonly understood by those skilled in the art. In addition, terms defined in the commonly used dictionary are not ideally or excessively interpreted unless specifically defined. The terminology used herein is for describing the embodiments and is not intended to limit the scope. In the present specification, the singular form also includes the plural form unless otherwise specified 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 characteristics of a distributed ledger management system.
분산 장부 관리 시스템은 특정 관리자나 주인이 데이터를 관리하는 중앙 집중형 시스템과 달리, 분산 장부(Distributed Ledger)가 피어 투 피어(peer to peer; P2P) 네트워크를 통해 복수의 노드에 분산되어 관리된다. 여기서, 분산 장부가 분산되어 관리되는 노드들은 서버나 PC 등의 컴퓨팅 장치로 구성될 수 있다.Unlike a centralized system in which a specific manager or owner manages data, the distributed ledger management system is distributed and managed by a distributed ledger to a plurality of nodes through a peer to peer (P2P) network. Here, the distributed ledger distributed nodes 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
따라서, 분산 장부 관리 시스템에서는 트랜잭션이 발생할 때마다 많은 트래픽이 발생하므로, 컴퓨팅 장치(100)와 컴퓨팅 장치들(101)의 네트워크 인터페이스 장치는 높은 지원 트래픽 용량을 가질 필요가 있다.Therefore, in the distributed ledger management system, since a lot of traffic is generated each time a transaction occurs, the
또한, 데이터를 송수신할 때 암호화된 데이터를 송수신하도록 하기 위해서는 데이터를 수신할 때마다 수신된 데이터의 복호화 프로세스가 수행되어야 하고, 데이터를 송신할 때마다 데이터를 암호화하는 암호화 프로세스가 수행되어야 한다. 데이터를 수신할 경우, 네트워크 인터페이스 장치는 외부로부터 수신된 데이터를 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 must be performed each time data is transmitted. When receiving data, the network interface device transmits and decrypts data received from the outside to the CPU, and the data decrypted by the CPU can be stored in the storage. When transmitting data, the CPU reads the data to be transmitted, performs an encryption process, and then transmits the encrypted data to a network interface device and transmits it to the outside. However, in this case, there are limitations in transaction processing performance due to problems such as a limitation in the transmission speed of the system bus connecting the CPU and the network interface device, and an increase in the load of the CPU due to the increase in transactions.
또한, 트랜잭션의 빠른 처리를 위해서는 스토리지에 대한 입출력 속도의 향상 또한 필요하다.In addition, in order to process transactions quickly, it is also necessary to improve the input/output speed to the storage.
도 2는 몇몇 실시 예에 따른 컴퓨팅 장치에 구비되는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.2 is a diagram illustrating a structure of a network interface device provided 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
외부 통신 포트(210)는 네트워크(10)를 통해 외부 장치로부터 데이터를 수신하거나, 외부 장치로 데이터를 전송할 수 있다. The
외부 통신 포트(210)는 외부 장치로부터 네트워크(10)를 통해 데이터(예를 들어, 트랜잭션 또는 분산 장부에 대한 데이터)가 수신된 경우, 수신된 데이터를 네트워크 인터페이스 장치(200)에 임베드된(embed) 특정 용도 지향 집적 회로(Application Specific Integrated Circuit; ASIC)(202)으로 전달하도록 구성될 수 있다. 몇몇 실시 예에 따른 특정 용도 지향 집적 회로(202)는 데이터가 수신된 경우 수신된 데이터를 복호화하도록 구성된 것일 수 있다. 데이터를 복호화한 특정 용도 지향 집적 회로(202)는 스토리지(210)와 연결된 I/O 포트(203)를 통해 복호화된 데이터를 스토리지(210)에 저장할 수 있다. 스토리지(210)는 반드시 컴퓨팅 장치(100)에 내장되어야 하는 것은 아니며, 컴퓨팅 장치(100)의 외부에 연결될 수도 있다.The
또는, 스토리지(210)에 저장된 데이터에 변경된 데이터가 발생하는 경우, 예를 들면 발생된 트랜잭션이 분산 장부에 기록된 경우, 특정 용도 지향 집적 회로(202)는 변경된 정보에 대한 데이터를 암호화할 수 있다. 예를 들어, 트랜잭션에 대한 데이터 내지 변경된 분산 장부에 대한 데이터를 암호화할 수 있다. 특정 용도 지향 집적 회로(202)는 암호화된 데이터를 외부 통신 포트(201)를 통해 네트워크(10)로 전송할 수 있다.Alternatively, when changed data occurs in the data stored in the
따라서, 네트워크 인터페이스 장치(200)는 별도의 시스템 버스를 거치지 않고 스토리지(210)에 수신된 데이터를 기록하거나 스토리지(210)로부터 데이터를 암호화하여 전송할 수 있다. 몇몇 실시 예에 따르면, I/O 포트(203)는 스토리지에 대한 입출력 속도를 향상시키기 위해 더블러를 이용하여 스토리지(210)와 연결될 수 있다.Accordingly, the
도 3은 몇몇 실시 예에 따라 컴퓨팅 장치가 수신된 데이터를 저장하는 프로세스를 도시한 도면이다.3 is a diagram illustrating a process in which a computing device stores received data according to some embodiments.
먼저, 단계 S310에서, 몇몇 실시 예에 따른 컴퓨팅 장치(100)에 구비된 네트워크 인터페이스 장치(200)가 외부 장치로부터 데이터를 수신한 경우, 네트워크 인터페이스 장치(200)는 수신된 데이터를 네트워크 인터페이스 장치(200)에 임베드된 특정 용도 지향 집적 회로(202)에 전달할 수 있다. First, in step S310, when the
이후 단계 S320에서, 컴퓨팅 장치(100)는 특정 용도 지향 집적 회로(202)를 이용하여 수신된 데이터를 복호화할 수 있다. 컴퓨팅 장치(100)는 그 네트워크 인터페이스 장치(200)에 임베드된 특정 용도 지향 집적 회로(202)를 이용하여 수신된 데이터를 복호화함으로써, 별도의 시스템 버스를 통하지 않고 CPU의 부하 증가를 최소화하면서도 보다 빠르게 복호화 프로세스를 수행할 수 있다.Thereafter, in step S320, the
이후, 컴퓨팅 장치(100)의 네트워크 인터페이스 장치(200)는 단계 S330에서 복호화된 데이터를 네트워크 인터페이스 장치(200)에 연결된 스토리지(210)에 저장할 수 있다.Thereafter, the
도 4는 몇몇 실시 예에 따라 컴퓨팅 장치가 변경된 데이터를 다른 노드에 전송하는 프로세스를 도시한 도면이다. 4 is a diagram illustrating a process in which a computing device transmits changed data to another node according to some embodiments.
먼저, 단계 S410에서 컴퓨팅 장치(100)는 스토리지(210) 내에 변경된 데이터가 발생하였는지 여부를 판단할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 스토리지(210) 내에 저장된 분산 원장에 새롭게 발생한 트랜잭션이 기록되었는지 여부를 판단할 수 있다.First, in step S410, the
스토리지(210) 내에 변경된 데이터가 발생한 경우, 컴퓨팅 장치(100)는 단계 S420에서 변경된 데이터 또는 변경된 데이터에 관련된 데이터를 특정 용도 지향 집적 회로(202)를 이용하여 암호화할 수 있다. 컴퓨팅 장치(100)는 네트워크 인터페이스 장치(200)에 임베드된 특정 용도 지향 집적 회로(202)를 이용하여 변경된 데이터를 암호화함으로써, 별도의 시스템 버스를 통하지 않고 CPU의 부하 증가를 최소화하면서도 보다 빠르게 암호화 프로세스를 수행할 수 있다.When the changed data occurs in the
이후, 컴퓨팅 장치(100)의 네트워크 인터페이스 장치(200)는 단계 S430에서 암호화된 데이터를 다른 노드로 전송할 수 있다.Thereafter, the
도 5는 컴퓨팅 장치의 구조를 설명하기 위한 도면이다.5 is a diagram for explaining the structure of a computing device.
컴퓨팅 장치는 네트워크 인터페이스 카드(510), 버스(520), 중앙 처리 장치(530), 메모리(540), 스토리지 제어기(550) 및 스토리지(210)를 포함할 수 있다. 도 5는 메모리(540)의 예시로 RAM이 도시되어 있다.The computing device may include a
네트워크 인터페이스 카드(510), 중앙 처리 장치(530), 메모리(540) 및 스토리지 제어기(550)는 마더보드에 구비된 슬롯(slot)에 장착되어 버스(520)에 연결될 수 있다. 버스(520)는 버스(520)에 연결된 각 구성요소들 간에 데이터를 송수신하는 경로를 제공한다.The
네트워크 인터페이스 카드(510)는 네트워크(10)로부터 데이터를 수신하면, 버스(520)를 통해서 수신된 데이터에 대한 제어 데이터를 중앙 처리 장치(530)로 전달할 수 있다. 여기서, 수신된 데이터는 메모리(540)에 로드될 수도 있다.When receiving data from the
중앙 처리 장치(530)는 제어 데이터에 따라 수신된 데이터를 처리하기 위해 인터럽트 신호를 수신할 수 있다. 인터럽트 신호를 수신한 중앙 처리 장치(530)는 기존에 수행 중이던 작업을 중지하고 제어 데이터에 따라 수신된 데이터를 처리할 수 있다. 중앙 처리 장치(530)는 처리된 데이터를 스토리지 제어기(550)를 통해서 스토리지(210)에 저장할 수 있다. 여기서, 스토리지(210)는 SSD(Solid State Disk), HDD(Hard Disk Driver)나 플래시 메모리와 같은 저장 매체를 포함할 수 있다.The
여기서, 중앙 처리 장치(530)가 수신된 데이터를 처리하기 위해 인터럽트를 발생시키고 기준에 수행 중이던 작업을 중지해야 하므로 다수의 트랜잭션이 발생하게 되면 중앙 처리 장치(530)에 과도한 부하가 발생하거나 중앙 처리 장치(530)가 작업을 수행하기 위한 성능의 저하가 발생할 수 있다.Here, the
또한, 통신 장치의 발달로 네트워크 인터페이스 카드(510)는 네트워크(10)로부터 대량의 데이터를 수신할 수 있다. 예를 들어, 200 Gbps의 속도로 데이터를 수신할 수 있는 네트워크 인터페이스 카드(510)가 사용될 수 있다. 그러나, 버스(520)의 경우 네트워크 인터페이스 카드(510)에 의해 수신되는 데이터를 모두 수용할 수 있는 정도의 대역폭을 구비하지 못할 수 있다. 예를 들어, PCIe(Peripheral Component Interconnect express) 버스의 경우 128 Gbps의 대역폭을 제공할 수 있다. 따라서, 네트워크 인터페이스 카드(510)가 데이터를 수신하는 대역폭에 비해 버스(520)가 수용할 수 있는 대역폭이 작기 때문에 병목 현상이 발생할 수 있다.In addition, with the development of communication devices, the
따라서, 버스의 대역폭 저하로 인해 발생하는 병목현상을 저감하고, 중앙 처리 장치(530)가 데이터를 처리함으로 인해 발생하는 지연 요소를 해결하기 위한 방법이 필요하다.Accordingly, there is a need for a method for reducing the bottleneck caused by a decrease in the bandwidth of the bus and for solving the delay caused by the
도 6은 몇몇 실시 예에 따른 컴퓨팅 장치 및 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.6 is a diagram for describing structures of a computing device and a network interface device according to some embodiments.
몇몇 실시 예에 따른 컴퓨팅 장치(100)는 네트워크 인터페이스 장치(200), 버스(520), 중앙 처리 장치(530), 메모리(540) 및 스토리지(210)를 포함할 수 있다.The
몇몇 실시 예에 따른 네트워크 인터페이스 장치(200)는 기판에 네트워크 인터페이스부(Network Interface Unit; NIU)(220), 특정 용도 지향 집적 회로(202) 및 스토리지 제어기(230)가 실장된 네트워크 인터페이스 카드일 수 있다. 여기서, 네트워크 인터페이스 장치(200)의 기판은 데이터를 외부의 네트워크(10)로부터 데이터를 수신하기 위한 외부 통신 포트와, 버스(520)와 연결되기 위한 버스 연결부 및 스토리지(210)와 연결하기 위한 스토리지 연결부를 포함할 수 있다.The
네트워크 인터페이스부(220)는 외부의 네트워크(10)로부터 외부 통신 포트를 통해서 데이터를 수신할 수 있다. 예를 들어, 네트워크 인터페이스부(220)는 분산 장부 관리 시스템의 노드에게 전달되는 노드 데이터를 수신할 수 있다.The
네트워크 인터페이스부(220)를 통해 수신된 데이터에 대한 특정 용도 지향 집적 회로(202)의 처리 방식을 결정할 수 있다. 여기서, 수신된 데이터가 특정 용도 지향 집적 회로(202)가 수행하는 특정 목적을 위한 데이터인 경우 자체 처리 방식이 선택될 수 있다. 예를 들어, 수신된 데이터가 분산 장부 관리 시스템의 노드에 저장된 장부를 변경하기 위한 노드 데이터인 경우 수신된 데이터를 특정 용도 지향 집적 회로(202)가 자체적으로 처리하는 방식이 선택될 수 있다. 반대로, 수신된 데이터가 일반적인 데이터인 경우에는 중앙 처리 장치(530)에 제어 데이터를 전달하고, 중앙 처리 장치(530)에 의해 데이터를 처리하는 중앙 처리 방식이 선택될 수 있다.The processing method of the specific-purpose
여기서, 네트워크(10)를 통해 수신하는 데이터의 헤더 데이터는 데이터의 처리 방식을 결정하기 위한 정보를 포함할 수 있다. 예를 들어, 헤더 데이터는 프로토콜 정의를 포함하고, 네트워크 인터페이스 장치(200)는 프로토콜 정의에 따라 실행되는 기능에 따라서 수신된 데이터가 특정 용도 지향 집적 회로(202)가 수행하는 특정 목적을 위한 데이터인지 여부를 판단할 수 있다. 이 경우, 용도 지향 집적 회로(202)는 수신된 데이터로부터 헤더 데이터를 구분하고, 헤더 데이터를 이용하여 수신된 데이터의 처리 방식을 결정할 수 있다. 예를 들어, 헤더 데이터가 수신된 데이터를 처리하기 위한 통신 계층의 커널(kernel) 명령어를 포함하는 함수를 포출하는 경우 용도 지향 집적 회로(202)는 수신된 데이터의 처리 방식을 자체 처리 방식으로 결정할 수 있다.Here, the header data of the data received through the
네트워크 인터페이스 장치(200)는 자체 처리 방식에 의해 수신된 데이터를 처리하는 경우 버스(520)를 통하지 않고 스토리지(210)에 대한 데이터 처리 작업을 수행할 수 있다. 예를 들어, 네트워크 인터페이스부(220)를 통해 수신된 데이터 내지 용도 지향 집적 회로(202)에 의해 처리된 데이터를 스토리지 제어기(230)를 이용하여 버스(520)를 통하지 않고 스토리지(210)에 저장할 수 있다.When processing data received by the self-processing method, the
특정 용도 지향 집적 회로(202)는 자체 처리 방식에 기초하여 스토리지(210)에 대한 데이터 처리를 수행한 경우, 수행한 데이터 처리 작업에 대한 메타 데이터를 생성할 수 있다. 특정 용도 지향 집적 회로(202)는 생성된 메타 데이터를 메모리(540)에 로드(load)시킬 수 있다. 메타 데이터는, 예를 들어, 어떤 데이터가 저장되었는지에 대한 정보인 데이터 식별 정보와 데이터가 어느 스토리지(210)의 어느 위치에 저장되었는지에 대한 정보인 저장 위치 정보를 포함할 수 있다.When the data processing for the
중앙 처리 장치(530)는 자체 처리 방식에 기초하여 처리된 데이터에 대한 요청이 있는 경우, 메모리(540)에 로드된 메타 데이터를 이용하여 저장된 데이터에 액세스할 수 있다.The
따라서, 본 실시 예에 따른 네트워크 인터페이스 장치를 구비한 컴퓨팅 장치를 이용할 경우, 분산 장부 관리 시스템의 노드 데이터와 같이 특정 목적을 위한 데이터를 처리할 경우 중앙 처리 장치에 대한 인터럽트를 발생시킬 필요가 없어 중앙 처리 장치의 성능을 향상시킬 수 있고, 데이터의 처리 속도를 증가시킬 수 있다. 또한, 수신된 데이터를 버스를 통해 전송할 필요가 없으므로 버스의 대역폭 저하로 인한 병목 현상이 발생하는 것을 방지할 수 있다.Therefore, when using the computing device with the network interface device according to the present embodiment, when processing data for a specific purpose, such as node data of a distributed ledger management system, there is no need to generate an interrupt for the central processing unit. The performance of the processing device can be improved, and the processing speed of data can be increased. In addition, since there is no need to transmit the received data through the bus, it is possible to prevent a bottleneck due to a decrease in bandwidth of the bus.
도 7은 몇몇 실시 예에 따른 네트워크 인터페이스 장치에 의해 구성되는 계층 구조를 설명하기 위한 도면이다. 네트워크 인터페이스 장치(200)를 포함하여 구성되는 계층 구조는 통신 계층(Communication Layer)(710), 하드웨어 추상화 계층(Hardware Abstraction Layer; HAL)(720) 및 물리 계층(Physical Layer)(730)을 포함할 수 있다. 다만, 도 7에 도시된 계층 구조는 네트워크 인터페이스 장치(200)의 동작을 설명하기 위한 것이며, 실시 예에 따라 구현된 계층 구조는 도 7에 도시되지 않은 다른 계층을 더 포함할 수도 있다.7 is a diagram illustrating a hierarchical structure configured by a network interface device according to some embodiments. The hierarchical structure including the
수신된 데이터에 대해 하드웨어의 기능을 수행하기 위해, 통신 계층(710), 하드웨어 추상화 계층(720) 및 물리 계층(730)을 경유하는 경로(71)를 통해서 하드웨어의 기능을 제어할 수 있다.In order to perform hardware functions on the received data, hardware functions may be controlled through a
이에 대비하여, 몇몇 실시 예에 따르면, 수신된 데이터가 통신 계층(710)의 커널(kernel) 명령어를 이용하는 경우, 물리 계층(730)을 경유하지 않고 직접 스토리지(210)에 수신된 데이터 또는 수신된 데이터를 처리한 결과를 쓰거나, 스토리지(210)로부터 데이터를 독출할 수 있다. 이후, 스토리지(210)에 대해 수행된 작업에 대한 결과 데이터가 통신 계층(710), 하드웨어 추상화 계층(720) 및 물리 계층(730)을 거치는 경로(73)를 통해서 메모리(540)에 로드될 수 있다.In contrast, according to some embodiments, when the received data uses a kernel command of the
도 8은 몇몇 실시 예에 따라 컴퓨팅 장치가 데이터를 처리하는 프로세스를 도시한 순서도이다.8 is a flowchart illustrating a process in which a computing device processes data according to some embodiments.
먼저, 단계 S810에서 컴퓨팅 장치는 네트워크 인터페이스 장치를 통해서 데이터를 수신할 수 있다. 여기서, 수신된 데이터는 데이터 송수신을 위해 사용되는 프로그램에서 정해진 방식에 따라 데이터를 처리하기 위한 방식을 결정할 수 있는 정보를 포함할 수 있다.First, in step S810, the computing device may receive data through the network interface device. Here, the received data may include information capable of determining a method for processing data according to a predetermined method in a program used for data transmission and reception.
몇몇 실시 예에 따르면, 수신된 데이터가 분산 장부 관리 시스템의 노드 데이터인 경우, 노드 데이터는 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터를 포함할 수 있다. 여기서, 헤더 데이터는 데이터와 관련된 프로토콜이나 암호화 등과 관련된 정보를 포함할 수 있다. 개별 거래 데이터는 트랜잭션에 대한 정보를 포함할 수 있다. 또한, 기타 거래 데이터는 개별 거래 데이터의 진위 여부를 입증하기 위한 데이터를 포함할 수 있다. 몇몇 실시 예에 따르면 노드 데이터를 발생시키는 장치는 프로그램에서 설정된 대로 헤더 데이터 내에 노드 데이터를 수신한 컴퓨팅 장치가 노드 데이터의 처리 방식을 결정할 수 있는 정보를 포함시킬 수 있다. 여기서, 몇몇 실시 예에 따르면, 노드 데이터를 발생시키는 장치는 헤더 데이터가 통신 계층의 커널 명령어를 포함하도록 노드 데이터를 구성할 수 있다.According to some embodiments, when the received data is node data of a 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 the transaction. In addition, other transaction data may include data for verifying the authenticity of individual transaction data. According to some embodiments, a device that generates node data may include information that enables a computing device that has received the node data to determine how to process the node data in header data as set in the program. Here, according to some embodiments, a device generating node data may configure node data such that header data includes kernel commands of a communication layer.
이후, 단계 S820에서 컴퓨팅 장치는 수신된 데이터를 자체 처리 방식으로 처리할 것인지 여부를 판단할 수 있다. 여기서, 자체 처리 방식은 수신된 데이터에 대한 인터럽트 신호를 중앙 처리 장치에게 발생시키지 않고 네트워크 인터페이스 장치가 자체적으로 처리하는 것을 의미한다.Thereafter, in step S820, the computing device may determine whether to process the received data in its own processing method. 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 device.
몇몇 실시 예에 따르면, 단계 S820에서 컴퓨팅 장치는 수신된 데이터로부터 헤더 데이터를 구분하고, 구분된 헤더 데이터를 이용하여 수신된 데이터의 처리 방식을 결정할 수 있다. 예를 들어, 컴퓨팅 장치는 헤더 데이터가 미리 정해진 함수를 호출하도록 구성되어 있는 경우 수신된 데이터의 처리 방식을 자체 처리 방식으로 결정할 수 있다. 여기서, 미리 정해진 함수는 블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널 명령어를 포함할 수 있다.According to some embodiments, in step S820, the computing device may classify the header data from the received data, and determine the processing method of the received data using the separated header data. For example, when the header data is configured to call a predetermined function, the computing device may determine a processing method of the received data as its own processing method. Here, the predetermined function may include a kernel command of a communication layer for a node of the blockchain to process data.
수신된 데이터에 대한 응답으로 컴퓨팅 장치에서 실행되는 응용 프로그램이 상기의 미리 정해진 함수를 호출하여 수신된 데이터를 종류별로 구분하고, 구분된 데이터를 지정된 프로세스나 스토리지의 저장 위치로 전달할 수 있다. 또한, 호출된 함수는 의해 구분된 데이터를 지정된 프로세스로 전달하여 처리된 결과나 스토리지의 저장 위치로 전달된 결과를 메타 데이터로 생성하여 프로세스에 리턴(return)하는 동작을 수행하기 위한 것일 수 있다.In response to the received data, an application program running on 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 designated process or storage. In addition, the called function may be for performing an operation of returning to the process by generating the processed result or the result delivered to the storage location of the storage as meta data by passing the data separated by the specified process.
수신된 데이터를 자체 처리 방식에 따라 처리하는 것으로 결정된 경우, 단계 S831에서 컴퓨팅 장치는 수신된 데이터를 구분할 수 있다. 몇몇 실시 예에 따르면, 수신된 데이터가 노드 데이터인 경우, 컴퓨팅 장치는 노드에 기록된 장부에 대하여 변경이 발생하는 정보와 변경되지 않는 정보를 구분할 수 있다.If it is determined to process the received data according to its own processing method, in step S831, the computing device may classify the received data. According to some embodiments, when the received data is node data, the computing device may discriminate information that does not change and information that changes with respect to the ledger recorded in the node.
이후, 단계 S832에서 컴퓨팅 장치는 변경이 발생하는 정보에 포함되는 데이터를 네트워크 인터페이스 장치의 용도 지향 집적 회로를 이용하여 처리할 수 있다. 또한, 단계 S833에서 컴퓨팅 장치는 용도 지향 집적 회로를 이용하여 처리된 결과 값을 지정된 스토리지 상의 저장 위치에 저장할 수 있다. 또한, 단계 S833에서 수신된 데이터 중 변경되지 않는 정보는 추가적인 처리 없이 스토리지에 저장할 수 있다.Thereafter, in step S832, the computing device may process data included in the information in which the change occurs using the purpose-oriented integrated circuit of the network interface device. Further, in step S833, the computing device may store the result value processed using the purpose-oriented integrated circuit in a storage location on the designated storage. In addition, among the data received in step S833, information that does not change can be stored in the storage without additional processing.
수신된 데이터가 개별 거래 데이터와 기타 거래 데이터를 포함하는 경우, 컴퓨팅 장치는 단계 S831에서 수신된 데이터로부터 개별 거래 데이터와 기타 거래 데이터를 구분할 수 있다. 이후, 컴퓨팅 장치는 기타 거래 데이터를 스토리지 상의 지정된 위치에 저장할 수 있다. 기타 거래 데이터는 거래를 입증하기 위한 전자 문서 등이므로 별도의 변경이 발생하지 않으므로, 컴퓨팅 장치는 별도의 데이터 처리 없이 스토리지에 저장할 수 있다. 또한, 컴퓨팅 장치는 개별 거래 데이터 중 변경이 발생하지 않는 부분도 별도의 처리 없이 스토리지에 저장할 수 있다. 여기서, 컴퓨팅 장치는 데이터에 포함된 헤더 데이터를 이용하여 데이터를 저장할 위치를 결정할 수 있다.When the received data includes individual transaction data and other transaction data, the computing device may distinguish individual transaction data from other transaction data from the data received in step S831. Thereafter, the computing device may store other transaction data in a designated location on the storage. Since the other transaction data is an electronic document for verifying the transaction, etc., no separate change occurs, so the computing device can be stored in the storage without any separate data processing. In addition, the computing device may store a portion of the individual transaction data that does not change in storage without additional processing. Here, the computing device may determine a location to store the data using header data included in the data.
이후, 단계 S834에서, 컴퓨팅 장치는 데이터의 처리 결과에 대한 메타 데이터를 생성할 수 있다. 몇몇 실시 예에 따르면, 메타 데이터는 데이터를 처리한 결과 스토리지에 저장된 데이터의 위치 정보와 변경된 데이터에 대한 정보를 포함할 수 있다.Thereafter, in step S834, the computing device may generate metadata about the result of processing the data. According to some embodiments, meta data may include location information of data stored in storage as a result of processing the data and information about changed data.
생성된 메타 데이터는 컴퓨팅 장치의 메모리에 로드되고, 중앙 처리 장치의 요청에 따라 중앙 처리 장치에 제공될 수 있다. 따라서, 단계 S831 내지 단계 S834를 통해 처리되는 데이터가 수신된 경우 중앙 처리 장치가 수행하는 프로세스는 중지되지 않고 계속해서 진행될 수 있다.The generated metadata is loaded into the memory of the computing device, and may be provided to the central processing device at the request of the central processing device. Therefore, when data processed through steps S831 to S834 is received, the process performed by the central processing unit may continue without being stopped.
단계 S820에서 컴퓨팅 장치가 수신된 데이터에 대한 처리 방식을 자체 처리 방식이 아닌 중앙 처리 방식으로 결정한 경우, 컴퓨팅 장치는 단계 S841에서 수신된 데이터에 대한 제어 데이터를 중앙 처리 장치로 전달할 수 있다.If the processing method for the data received by the computing device in step S820 is determined as a central processing method rather than a self-processing method, the computing device may transmit control data for the data received in step S841 to the central processing device.
또한, 단계 S842에서 컴퓨팅 장치는 중앙 처리 장치가 수신된 데이터를 처리하기 위해 중앙 처리 장치의 프로세스에 인터럽트를 발생시킬 수 있다.In addition, in step S842, the computing device may generate an interrupt in the process of the central processing unit in order for the central processing unit to process the received data.
이후, 단계 S843에서 중앙 처리 장치는 기존에 실행 중이던 프로세스를 중지하고 수신된 데이터를 처리할 수 있다.Thereafter, in step S843, the central processing unit may stop the existing running process and process the received data.
도 9는 다른 몇몇 실시 예에 따라 블록체인 데이터 처리용 집적 회로를 포함하는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다. 특히, 도 9는 수신된 데이터가 블록 체인 데이터인 경우 데이터를 처리하기 위한 네트워크 인터페이스 장치에 관한 것이다.9 is a diagram for explaining the structure of a network interface device including an integrated circuit for processing blockchain data according to some other embodiments. In particular, FIG. 9 relates to a network interface device for processing data when the received data is blockchain data.
본 실시 예에 따른 네트워크 인터페이스 장치는 네트워크 인터페이스부(220), 특정 용도 지향 집적 회로(202), 스토리지 제어기(230) 및 블록체인 데이터 처리용 집적 회로(910)를 포함할 수 있다.The network interface device according to the present embodiment may include a
본 실시 예에 따른 네트워크 인터페이스 장치는 커널 형태의 통신 계층(900)을 형성할 수 있다. 수신된 데이터가 통신 계층(900)의 커널 명령어를 사용할 경우 수신된 데이터로부터 확인된 데이터가 변경되는 작업 중 블록체인 데이터 처리가 필요한 경우 블록체인 데이터 처리용 집적 회로(910)를 이용하여 데이터를 처리할 수 있다. 블록체인 데이터를 처리하기 위한 통신 계층(900)은 블록 체인 노드 데이터 통신 계층(Block chain Node data Communication Layer; BNCL)로 언급될 수 있다.The network interface device according to the present embodiment may form a kernel-
여기서, 예를 들어, 블록체인 데이터 처리용 집적 회로(910)는 하이퍼렛저(Hyperledger ™) 기반의 데이터 처리를 수행하기 위한 특정 용도 지향 집적 회로일 수 있다. 실시 예에 따라서, 블록체인 데이터 처리용 집적 회로(910)는 블록체인 기반의 분산 장부 관리 시스템에서 송수신되는 노드 데이터의 암복호화를 수행할 수도 있다.Here, for example, the
용도 지향 집적 회로(202) 및 블록체인 데이터 처리용 집적 회로(910)가 반드시 물리적으로 구분된 구성요소일 필요는 없다. 실시 예에 따라서, 용도 지향 집적 회로(202) 및 블록체인 데이터 처리용 집적 회로(910)는 물리적으로 하나의 칩 내에 구성될 수도 있다.The purpose-oriented
스토리지 제어기(230)는 하나 이상의 스토리지(210)에 용도 지향 집적 회로(202) 및 블록체인 데이터 처리용 집적 회로(910)가 처리한 데이터를 저장할 수 있다. 스토리지 제어기(230)는 복수의 스토리지(210)에 연결되어 허브(Hub) 기능을 제공할 수도 있다.The
본 실시 예에 따른 네트워크 인터페이스 장치는 블록체인 데이터를 처리하기 위한 장치로 이용될 수 있다. 본 명세서에서, 블록체인 데이터를 처리하기 위한 장치는 블록 체인 처리 장치(Block-chain Processing Unit; BPU)로 언급될 수 있다.The network interface device according to the present embodiment may be used as a device for processing blockchain data. In this specification, an apparatus for processing blockchain data may be referred to as a block-chain processing unit (BPU).
도 10은 또 다른 몇몇 실시 예에 따라 키 관리 모듈을 포함하는 네트워크 인터페이스 장치의 구조를 설명하기 위한 도면이다.10 is a diagram for explaining the structure of a network interface device including a key management module according to some other embodiments.
본 실시 예에 따른 네트워크 인터페이스 장치(200)는 네트워크 인터페이스부(220), 특정 용도 지향 집적 회로(202), 스토리지 제어기(230) 및 키 관리 모듈(1000)을 포함할 수 있다.The
키 관리 모듈(1000)은 네트워크 인터페이스부(220)를 통해 수신된 데이터를 특정 용도 지향 집적 회로(202)가 복호화하거나, 전송할 데이터를 암호화하기 위한 키(Key)를 제공할 수 있다.The
몇몇 실시 예에 따르면, 키 관리 모듈(1000)은 물리적 복제불가 기능(Physically Unclonable Function; PUF) 기반의 하드웨어 칩을 포함할 수 있다. PUF는 하드웨어 특성을 이용하여 임의의 고유값을 출력하는 기능을 의미한다. 키 관리 모듈(1000)은 PUF를 통해 생성된 고유값을 암호키로 제공할 수 있다.According to some embodiments, the
네트워크 인터페이스부(220)를 통해서 수신된 데이터를 자체 처리 방식으로 처리할 경우, 키 관리 모듈(1000)은 PUF 기반의 하드웨어 칩으로부터 특정 용도 지향 집적 회로(202)에 암호키를 제공할 수 있다. 암호키를 획득한 특정 용도 지향 집적 회로(202)는 획득된 키를 이용하여 수신된 데이터를 복호화할 수 있다.When processing data received through the
도 11은 중앙 처리 장치를 통해 데이터를 처리하는 프로세스를 설명하기 위한 도면이다.11 is a view for explaining a process for processing data through a central processing unit.
먼저, 단계 S1110에서 네트워크 인터페이스 장치(200)가 데이터를 수신한 경우, 네트워크 인터페이스 장치(200)는 수신된 데이터의 처리 방식을 결정할 수 있다. 결정된 처리 방식이 중앙 처리 방식인 경우, 네트워크 인터페이스 장치(200)는 버스를 통해 중앙 처리 장치(530)에 제어 데이터를 전달할 수 있다(S1120).First, when the
이후, 단계 S1130에서 중앙 처리 장치(530)는 인터럽트 핸들러로부터 인터럽트 신호를 받아 중앙 처리 장치(530)에서 수행 중인 프로세스에 대하여 인터럽트를 발생시킬 수 있다. 이후, 중앙 처리 장치(530)가 제어 데이터를 네트워크 인터페이스 장치(200)로 전달하면, 네트워크 인터페이스 장치는 메모리(540)에 수신된 데이터를 로드시킬 수 있다.Thereafter, in step S1130, the
이후, 단계 S1140에서 중앙 처리 장치(530)는 기존에 수행 중이던 프로세스를 중지하고 제어 데이터에 따라서 수신된 데이터를 처리할 수 있다. 이후, 단계 S1150에서 중앙 처리 장치(530)는 처리된 데이터를 스토리지(210)에 저장할 수 있다.Thereafter, in step S1140, the
도 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)에 수신된 데이터를 전달할 수 있다.In step S1210, when the
단계 S1230에서, 특정 용도 지향 집적 회로(530)는 수신된 데이터에 대하여 미리 지정된 함수를 호출하여 수신된 데이터를 종류별로 구분할 수 있다. 예를 들어, 특정 용도 지향 집적 회로(530)는 수신된 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 구분할 수 있다.In step S1230, the specific purpose-oriented
이후, 단계 S1240에서, 특정 용도 지향 집적 회로(530)는 헤더 값이 저장되고 작업 증명(Proof of work)을 완료하는 과정에서 발생하는 변화 정보를 구분하고, 변경되는 정보에 대응하는 데이터를 처리할 수 있다.Thereafter, in step S1240, the specific purpose-oriented
이후, 단계 S1250에서, 특정 용도 지향 집적 회로(530)는 단계 S1240에서 수행된 데이터 처리의 결과를 스토리지(210)에 저장할 수 있다. 또한, 특정 용도 지향 집적 회로(530)는 처리된 데이터를 메모리에 로드시킬 수 있다. 단계 S1260에서, 특정 용도 지향 집적 회로(530)는 수신된 데이터를 처리하고 스토리지(210)에 저장하는 데이터 처리 작업에 대한 메타 데이터를 생성할 수 있다. 이후, 단계 S1270에서, 생성된 메타 데이터가 메모리(540)에 로드될 수 있다.Thereafter, in step S1250, the specific use-oriented
이후, 중앙 처리 장치(530)는 프로세스를 수행하는 과정에서 스토리지(210)에 저장된 데이터가 요구되는 경우, 중앙 처리 장치(530)는 단계 S1280에서 메모리(540)에 로드된 메타 데이터를 판독할 수 있다. 이후, 단계 S1290에서 중앙 처리 장치(530)는 획득한 메타 데이터를 이용하여 스토리지(210)로부터 저장된 데이터를 획득할 수 있다.Thereafter, when the data stored in the
도 13은 몇몇 실시 예에 따라 구분되는 데이터를 설명하기 위한 개념도이다.13 is a conceptual diagram illustrating data classified according to some embodiments.
몇몇 실시 예에 따른 분산 장부 관리 시스템은 노드에 전송하는 노드 데이터를 구성할 때, 도 13에 도시된 바와 같이 헤더 데이터(1300), 개별 거래 데이터(1310) 및 기타 거래 데이터(1320)를 포함하도록 노드 데이터를 구성할 수 있다.The distributed ledger management system according to some embodiments may include
헤더 데이터(1310)는 노드 데이터를 수신한 노드가 수신된 데이터가 노드 데이터임을 판단할 수 있는 정보를 포함할 수 있다. 예를 들면, 데이터를 수신한 노드를 구성하는 컴퓨팅 장치는 수신된 데이터의 헤더 데이터(1300)에 포함된 프로토콜에 관한 정보에 기초하여 수신된 데이터가 분산 장부 관리 시스템의 노드 데이터인지 여부를 판단하고, 판단 결과에 따라 데이터의 처리 방식을 결정할 수 있다.The
개별 거래 데이터(1310)는 트랜잭션에 의해 분산 장부 관리 시스템 내에서 변경이 발생하는 부분에 관한 변경 정보(1311)에 해당하는 부분을 포함할 수 있다. 노드 데이터를 수신한 네트워크 인터페이스 장치(200)는 개별 거래 데이터 중에서 변경 정보(1311)에 해당하는 정보는 데이터 처리 후 스토리지(210)에 저장할 수 있다.The
도 13에 도시된 바와 같이 구성된 데이터 내에서 각 데이터들의 용량은 기타 거래 데이터(1320)가 가장 큰 용량을 차지하고, 개별 거래 데이터(1310)가 그 다음으로 일정 용량을 차지한다. 헤더 데이터(1300)는 데이터 내에서 가장 작은 용량을 가진다. 따라서, 기타 거래 데이터를 네트워크 인터페이스 장치가 스토리지에 바로 저장하는 몇몇 실시 예에 따르면, 데이터의 처리에 소요되는 시간을 크게 줄일 수 있다As illustrated in FIG. 13, the capacity of each data in the configured data is the largest amount of
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The methods according to the embodiments of the present invention described so far can be performed by executing a computer program embodied in computer readable code. The computer program may be transmitted from a first computing device to a second computing device through a network such as the Internet and installed in the second computing device, and thus used in the second computing device. The first computing device and the second computing device include both server devices, physical servers belonging to a server pool for cloud services, and fixed computing devices such as desktop PCs.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.The computer program may be stored in a recording medium such as a DVD-ROM or flash memory device.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, a person skilled in the art to which the present invention pertains may be implemented in other specific forms without changing the technical spirit or essential features of the present invention. Can understand. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.
Claims (23)
상기 기판에 실장되며, 상기 스토리지 연결부를 통해 상기 스토리지와 연결되며, 상기 스토리지를 제어하는 스토리지 제어기; 및
상기 기판에 실장되고 미리 결정된 목적을 위한 데이터를 처리하는 용도 지향 집적 회로를 포함하고,
상기 용도 지향 집적 회로는,
상기 노드 데이터가 상기 미리 결정된 목적을 위한 데이터인지 여부에 따라 상기 노드 데이터를 처리할 주체를 정하기 위한 처리 방식을 결정하고,
상기 결정된 처리 방식이 중앙 처리 방식인 경우 상기 노드 데이터는 상기 컴퓨팅 장치의 버스와 연결된 중앙 처리 장치에 의해 처리되고,
상기 결정된 처리 방식이 자체 처리 방식인 경우 상기 노드 데이터는 상기 용도 지향 집적 회로에 의해 처리되고,
상기 중앙 처리 장치에 의해 또는 상기 용도 지향 집적 회로에 의해 처리된 상기 노드 데이터는 상기 스토리지에 저장되는,
네트워크 인터페이스 카드.A substrate including a network interface unit 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 storage;
A storage controller mounted on the substrate, connected to the storage through the storage connection, and controlling the storage; And
A use-oriented integrated circuit mounted on the substrate and processing data for a predetermined purpose,
The purpose-oriented integrated circuit,
The processing method for determining the subject to process the node data is determined according to whether the node data is data for the predetermined purpose,
When the determined processing method is a central processing method, the node data is processed by a central processing device connected to the bus of the computing device,
When the determined processing method is a self-processing method, the node data is processed by the purpose-oriented integrated circuit,
The node data processed by the central processing unit or by the purpose-oriented integrated circuit is stored in the storage,
Network interface card.
상기 용도 지향 집적 회로는,
상기 노드 데이터로부터 헤더 데이터를 구분하고, 상기 구분된 헤더 데이터를 이용하여 상기 처리 방식을 결정하는,
네트워크 인터페이스 카드.According to claim 1,
The purpose-oriented integrated circuit,
Classifying header data from the node data, and determining the processing method using the divided header data,
Network interface card.
상기 용도 지향 집적 회로는,
상기 헤더 데이터가 미리 정해진 함수를 호출하는 경우 상기 처리 방식을 자체 처리 방식으로 결정하는,
네트워크 인터페이스 카드.According to claim 2,
The purpose-oriented integrated circuit,
When the header data calls a predetermined function, the processing method is determined by its own processing method.
Network interface card.
상기 미리 정해진 함수는,
블록체인의 노드가 데이터를 처리하기 위한 통신 계층의 커널(kernel) 명령어를 포함하는,
네트워크 인터페이스 카드.According to claim 3,
The predetermined function,
Blockchain nodes contain kernel commands in the communication layer to process data,
Network interface card.
상기 용도 지향 집적 회로는,
상기 노드 데이터에서 개별 거래 데이터 및 기타 거래 데이터를 분류하고, 상기 개별 거래 데이터 및 기타 거래 데이터를 상기 버스를 통하지 않고 상기 스토리지 제어기를 통해 상기 스토리지에 저장하는,
네트워크 인터페이스 카드.According to claim 2,
The purpose-oriented integrated circuit,
Classifying individual transaction data and other transaction data from the node data, and storing the individual transaction data and other transaction data in the storage through the storage controller without going through the bus,
Network interface card.
상기 네트워크 인터페이스 카드는,
상기 노드 데이터를 복호화하는 블록체인 데이터 처리용 집적 회로를 더 포함하는,
네트워크 인터페이스 카드.According to claim 1,
The network interface card,
Further comprising an integrated circuit for processing the blockchain data to decrypt the node data,
Network interface card.
상기 네트워크 인터페이스 카드는,
상기 수신된 노드 데이터를 복호화하거나 전송할 데이터를 암호화하기 위한 키를 제공하는 키 관리 모듈을 더 포함하는,
네트워크 인터페이스 카드.According to claim 1,
The network interface card,
Further comprising a key management module for providing a key for decrypting the received node data or encrypting the data to be transmitted,
Network interface card.
상기 키 관리 모듈은,
물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩을 포함하는,
네트워크 인터페이스 카드.The method of claim 7,
The key management module,
Including a hardware chip based on a Physically Unclonable Function,
Network interface card.
상기 용도 지향 집적 회로는,
상기 결정된 처리 방식이 자체 처리 방식인 경우 상기 하드웨어 칩으로부터 키(key)를 획득하고, 상기 획득된 키를 이용하여 상기 노드 데이터를 복호화하는,
네트워크 인터페이스 카드.The method of claim 8,
The purpose-oriented integrated circuit,
When the determined processing method is a self-processing method, a key is obtained from the hardware chip, and the node data is decrypted using the obtained key.
Network interface card.
상기 용도 지향 집적 회로는,
상기 데이터 처리 작업을 완료한 이후 상기 데이터 처리 작업에 대한 메타데이터를 생성하고, 생성된 메타데이터를 상기 버스를 통해 상기 컴퓨팅 장치의 메모리에 로드시키는,
네트워크 인터페이스 카드.According to claim 1,
The purpose-oriented integrated circuit,
Generating metadata for 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.
상기 메타데이터는,
상기 데이터 처리 작업에 의해 상기 스토리지에 저장된 데이터의 위치 정보와 변경된 데이터에 대한 정보를 포함하는,
네트워크 인터페이스 카드.The method of claim 10,
The metadata,
The location information of the data stored in the storage by the data processing operation and information about the changed data,
Network interface card.
데이터를 수신하는 단계;
상기 수신된 데이터를 헤더 데이터, 개별 거래 데이터 및 기타 거래 데이터로 구분하고, 상기 헤더 데이터에 포함된 함수를 호출하여 상기 데이터의 종류를 구분하는 단계; 및
상기 컴퓨팅 장치의 중앙 처리 장치에 대한 인터럽트를 발생시키지 않고, 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 상기 구분된 종류에 따라 지정된 스토리지의 저장 위치에 저장하는 단계;를 포함하고,
상기 저장하는 단계는,
상기 개별 거래 데이터 중 변경되는 정보에 대응되는 데이터를 용도 지향 집적 회로를 이용하여 처리하는 단계를 포함하고,
상기 용도 지향 집적 회로는,
상기 수신된 데이터가 미리 결정된 목적을 위한 데이터인지 여부에 따라 상기 수신된 데이터를 처리할 주체를 정하기 위한 처리 방식을 결정하고,
상기 결정된 처리 방식이 중앙 처리 방식인 경우 상기 수신된 데이터는 상기 컴퓨팅 장치의 버스와 연결된 중앙 처리 장치에 의해 처리되고,
상기 결정된 처리 방식이 자체 처리 방식인 경우 상기 수신된 데이터는 상기 용도 지향 집적 회로에 의해 처리되고,
상기 중앙 처리 장치에 의해 또는 상기 용도 지향 집적 회로에 의해 처리된 상기 수신된 데이터는 상기 스토리지에 저장되는,
데이터 처리 방법.In the data processing method performed by the computing device,
Receiving data;
Classifying the received data into header data, individual transaction data, and other transaction data, and classifying the type of the data by calling a function included in the header data; And
Including the interrupt to the central processing unit of the computing device, storing the individual transaction data and the other transaction data in a storage location of a designated storage according to the distinguished type;
The storing step,
And processing data corresponding to the changed information among the individual transaction data using a purpose-oriented integrated circuit,
The purpose-oriented integrated circuit,
Determine a processing method for determining a subject to process the received data according to whether the received data is data for a predetermined purpose,
When the determined processing method is a central processing method, the received data is processed by a central processing device connected to the bus of the computing device,
When the determined processing method is a self-processing method, the received data is processed by the purpose-oriented integrated circuit,
The received data processed by the central processing unit or by the purpose-oriented integrated circuit is stored in the storage,
Data processing method.
상기 구분하는 단계는,
상기 헤더 데이터를 저장하고 작업 증명을 완료하는 과정에서 변경되는 정보를 구분하는 단계를 포함하고,
상기 저장하는 단계는,
상기 개별 거래 데이터 중 상기 용도 지향 집적 회로를 이용하여 처리된 결과 데이터, 상기 개별 거래 데이터 중 변경되지 않는 정보 및 기타 거래 데이터를 저장하는 단계를 더 포함하는,
데이터 처리 방법.The method of claim 20,
The step of distinguishing,
The step of storing the header data and distinguishing information that is changed in the process of completing the proof of work,
The storing step,
The method further includes storing result data processed using the purpose-oriented integrated circuit among the individual transaction data, unchanged information and other transaction data among the individual transaction data,
Data processing method.
상기 처리하는 단계는,
물리적 복제불가 기능(Physically Unclonable Function) 기반의 하드웨어 칩으로부터 데이터 복호화를 위한 키를 획득하는 단계, 및
상기 키에 기초하여 상기 변경되는 정보에 대응되는 데이터를 복호화하는 단계를 포함하는,
데이터 처리 방법.The method of claim 21,
The processing step,
Obtaining a key for decrypting data from a hardware chip based on a physically unclonable function, and
And decoding data corresponding to the changed information based on the key.
Data processing method.
상기 스토리지에 상기 개별 거래 데이터 및 상기 기타 거래 데이터를 저장한 결과에 대한 메타 데이터를 생성하는 단계; 및
상기 메타 데이터를 상기 컴퓨팅 장치의 메모리에 로드하는 단계;를 포함하는,
데이터 처리 방법.
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
Including; loading the metadata in the memory of the computing device;
Data processing method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180039328 | 2018-04-04 | ||
KR20180039328 | 2018-04-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190116034A KR20190116034A (en) | 2019-10-14 |
KR102128832B1 true KR102128832B1 (en) | 2020-07-01 |
Family
ID=68171239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180110252A Expired - Fee Related 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791754B (en) * | 2021-09-10 | 2025-03-21 | 中科寒武纪科技股份有限公司 | Computing circuits, chips and boards |
CN116165953B (en) * | 2023-03-05 | 2023-12-22 | 上海医鸽智能科技有限公司 | Intelligent control system based on multi-source data fusion |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685434B2 (en) * | 2004-03-02 | 2010-03-23 | Advanced Micro Devices, Inc. | Two parallel engines for high speed transmit IPsec processing |
KR100871731B1 (en) * | 2007-05-22 | 2008-12-05 | (주) 시스메이트 | A network interface card and a traffic division processing method performed in the card, a multi-processing system including the network interface card |
KR100892166B1 (en) * | 2007-07-10 | 2009-04-10 | (주) 시스메이트 | Network interface device with improved packet transmission and reception and network device including the same |
KR20160138448A (en) * | 2014-03-08 | 2016-12-05 | 다이아만티 인코포레이티드 | Methods and systems for converged networking and storage |
-
2018
- 2018-09-14 KR KR1020180110252A patent/KR102128832B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20190116034A (en) | 2019-10-14 |
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 | |
US11657171B2 (en) | Large network attached storage encryption | |
CN113726875B (en) | Transaction processing method and device based on blockchain all-in-one machine | |
CN111541724B (en) | Block chain all-in-one machine and automatic node adding method and device thereof | |
CN113971289A (en) | Trusted startup method and device for blockchain integrated machine | |
US10530752B2 (en) | Efficient device provision | |
CN113438219B (en) | Playback transaction identification method and device based on blockchain all-in-one machine | |
JP6766895B2 (en) | How to communicate securely and industrial computing equipment | |
US20180285219A1 (en) | Adaptive data recovery for clustered data devices | |
US20180288049A1 (en) | Data access interface for clustered devices | |
US11861406B2 (en) | Dynamic microservices allocation mechanism | |
KR102128832B1 (en) | Network interface apparatus and data processing method for network interface apparauts thereof | |
US10594703B2 (en) | Taint mechanism for messaging system | |
JP6475910B2 (en) | Time-locked networks and nodes for the exchange of sensitive data packets | |
US9288116B2 (en) | System and method for NAS server test load generation | |
CN111600755B (en) | Internet access behavior management system and method | |
US10348705B1 (en) | Autonomous communication protocol for large network attached storage | |
WO2021057273A1 (en) | Method and apparatus for realizing efficient contract calling on fpga | |
US11070654B2 (en) | Sockets for shared link applications | |
CN114003342A (en) | Distributed storage method and device, electronic equipment and storage medium | |
US20220050932A1 (en) | Authentication Using Pairwise Secrets Constructed from Partial Secrets | |
CN113254201A (en) | Supercomputing cloud computing platformization management method and management platform | |
Sehgal et al. | Foundations of cloud computing and information security | |
US11500855B2 (en) | Establishing transaction metadata | |
US20240236056A1 (en) | Authenticating work order requests in a multiple node environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20180914 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20191211 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20200608 |
|
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20200623 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200625 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20200626 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20240406 |