[go: up one dir, main page]

KR20050080704A - Apparatus and method of inter processor communication - Google Patents

Apparatus and method of inter processor communication Download PDF

Info

Publication number
KR20050080704A
KR20050080704A KR1020040008812A KR20040008812A KR20050080704A KR 20050080704 A KR20050080704 A KR 20050080704A KR 1020040008812 A KR1020040008812 A KR 1020040008812A KR 20040008812 A KR20040008812 A KR 20040008812A KR 20050080704 A KR20050080704 A KR 20050080704A
Authority
KR
South Korea
Prior art keywords
data
processor
information
buffer
dma
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.)
Ceased
Application number
KR1020040008812A
Other languages
Korean (ko)
Inventor
김인호
최병구
박용석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040008812A priority Critical patent/KR20050080704A/en
Publication of KR20050080704A publication Critical patent/KR20050080704A/en
Ceased legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 동일한 시스템 상에 존재하는 프로세서들 간의 통신 즉, IPC(Inter Processor Communication)을 수행하기 위한 것으로, PCI DMA(Peripheral Component Interconnection Direct Memory Access)를 이용하여 프로세서에 데이터 수신에 따른 부하를 부가하지 않으면서 PCI 버스를 이더넷 인터페이스처럼 사용할 수 있는 프로세서간 데이터 전송 장치 및 방법을 제공한다. The present invention is to perform communication, i.e., Inter Processor Communication (IPC), between processors existing on the same system, and does not add a load according to data reception to a processor by using Peripheral Component Interconnection Direct Memory Access (PCI DMA). It provides an interprocessor data transfer device and method that can use the PCI bus as an Ethernet interface without having to.

Description

프로세서간 데이터 전송 장치 및 방법{APPARATUS AND METHOD OF INTER PROCESSOR COMMUNICATION} Apparatus and method for transferring data between processors {APPARATUS AND METHOD OF INTER PROCESSOR COMMUNICATION}

본 발명은 동일한 시스템 상에 존재하는 프로세서간의 데이터 전송 장치 및 방법에 관한 것으로, 특히 PCI를 이용한 프로세서간 데이터 전송 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for transmitting data between processors existing on the same system, and more particularly, to an apparatus and method for transmitting data between processors using PCI.

요즘 들어 시스템은 단일 프로세서가 아닌, 복수의 프로세서를 구비하는 추세이다. 특히, 코어(Core) 또는 에지(Edge) 급의 대용량 라우터(router) 등의 시스템은 다양한 서비스(예를 들어, L2/L3 포워딩, MPLS, QOS, VLAN 등) 모듈을 적절히 분배하기 위해서 호스트(host)로서 전체 시스템을 관리하는 MPU(ARM, PPC, MIPS계열 코어를 가지며 각종 주변장치들을 가지는 프로세서)와 특정 목적을 위한 프로세서(예를 들어, 네트워크 프로세서 등)를 포함하여 2개 이상의 프로세스를 사용하게 되었다. 이와 같이, 하나의 시스템에서 복수의 프로세서들이 사용됨에 따라서 각 프로세서들 간의 통신이 필요하게 되었다. (종래에는 각 프로세서간에 IPC(Inter Processor Communication, 프로세스 간 통신)를 위해서 각 프로세서마다 82559ER과 같은 네트워크 인터페이스(network interface)를 구비하고, 이를 통하여 데이터를 전송하였으나, 이 방법은 부품 추가에 따른 가격 상승 및 보드 사이즈의 확대를 수반하게 된다.) 종래에는 IPC를 위한 방법 중의 하나로 PCI( Peripheral Component Interconnect) 버스를 이더넷 인터페이스(Ethernet Interface)와 같이 사용할 수 있도록 하는 의사 네트워크 디바이스 드라이버를 사용하였다. 여기서 PCI 버스는 로컬 버스의 일종으로, 중앙 처리 장치(CPU)와 주변 장치를 직접 연결하여 고속으로 데이터를 전달하는 데이터 통로를 제공한다.Nowadays, the system has a trend of having multiple processors instead of a single processor. In particular, systems such as core or edge-class high-capacity routers may be used to properly distribute various services (eg, L2 / L3 forwarding, MPLS, QOS, VLAN, etc.) modules. Use two or more processes, including MPUs (processors with ARM, PPC, MIPS-based cores and various peripherals) that manage the entire system, and processors for specific purposes (e.g. network processors, etc.) It became. As such, as a plurality of processors are used in one system, communication between the processors becomes necessary. (In the past, each processor has a network interface, such as 82559ER, for each processor for IPC (Inter Processor Communication). The data is transmitted through this process. In the past, a pseudo network device driver that uses a Peripheral Component Interconnect (PCI) bus as an Ethernet interface has been used as one of the methods for IPC. In this case, the PCI bus is a local bus that directly connects the central processing unit (CPU) and peripheral devices to provide a data path for transferring data at high speed.

요즘 나오는 대부분의 임베디드 프로세서(Embedded processor)들은 기본적으로 PCI2.1 spec.이상을 만족하는 PCI 컨트롤러(controller)들이 주변 장치(peripheral)로 내장이 되어 있는데, 이것을 이용하여 사용자측면에서 PCI 버스를 이더넷 인터페이스와 같이 사용할 수 있는 의사 네트워크 디바이스 드라이버를 개발하게 되었다.Most modern embedded processors are basically PCI controllers that meet the PCI2.1 specification or higher as peripherals. We have developed a pseudo network device driver that can be used as:

종래에 사용되는, 두 개 이상의 임베디드 프로세서간의 PCI 버스를 통한 IPC를 이더넷 인터페이스와 같이 사용하는 기술로 다음의 두 가지가 있다.Conventionally, there are two techniques for using IPC as an Ethernet interface through a PCI bus between two or more embedded processors.

첫째, 2개의 프로세서 사이에 PCI 컨트롤러를 제어하여 프로세서들간에 전달할 데이터를 PCI 버스를 통하여 직접 전달하는 방법이다. 이 방법은 PCI 버스 마스터(Master)가 되는 프로세서가 타겟(target) 프로세서의 PCI 주소 값을 통해 직접 타겟 프로세서의 SDRAM(Synchronous Dynamic Random Access Memory)에 데이터를 복사하고 MSI(Message Signal Interrupt) 또는 폴링(Polling)을 통하여 알리는 구조를 취하고 있다.First, a PCI controller is controlled between two processors to directly transfer data to be transferred between processors through the PCI bus. This method allows a processor, which is a PCI bus master, to copy data directly to the target processor's synchronous dynamic random access memory (SDRAM) via the PCI address value of the target processor and to send message signal interrupt (MSI) or polling ( Polling) has a structure to inform.

둘째, 2개 이상의 프로세서 사이에 PCI 컨트롤러를 제어하되, 어플리케이션(Application) 단에서는 각 프로세서에 할당된 IP와 소켓 인터페이스(Socket interface)를 이용하여 데이터를 전송할 수 있도록 하는 의사 네트워크 디바이스 드라이버 방식이다.Secondly, the PCI controller is controlled between two or more processors, but the application stage is a pseudo network device driver method for transmitting data by using an IP and a socket interface allocated to each processor.

그런데, 앞서 기술한 종래기술들은 각각 다음과 같은 문제점을 가지고 있다.However, the above-described prior arts have the following problems, respectively.

첫째 기술은 어플리케이션 개발자들이 각 프로세서들 사이에 데이터를 전달하기 위해서 직접 PCI 버스를 제어하여야 하므로, 프로세서의 하부 구조(예를 들어, PCI, SDRAM, OS, 디바이스 드라이버 등)에 대하여 상당한 지식을 가지고 있어야 한다. 그 결과 소프트웨어 개발자가 IPC가 필요한 어플리케이션 개발함에 있어서 코딩의 일관성 및 능률이 저하된다.The first is that application developers must control the PCI bus directly in order to pass data between each processor, so they must have a good knowledge of the processor infrastructure (eg, PCI, SDRAM, OS, device drivers, etc.). do. As a result, software developers are less likely to have consistent coding and efficiency when developing applications that require IPC.

둘째 기술은, 첫째 기술과 비교할 때, 의사 네트워크 디바이스 드라이버의 구조를 가지기 때문에 어플리케이션 입장에서는 편리하게 IP와 소켓 인터페이스를 이용하여 데이터를 전송할 수 있다. 그러나, 둘째 기술을 적용할 시에는 프로세서가 데이터 전송을 직접 하게 되므로, 다량의 데이터를 수신하는 경우 프로세서는 다른 일을 할 수 없게 되어 그에 따른 성능의 한계가 발생하게 된다. 또, 2개 이상의 프로세서 중에서 마스터 프로세서 ←→ 타겟 프로세서 사이에만 데이터를 전송하도록 되어 있어 데이터 송수신시 임의의 프로세서 사이에 전송이 불가능하고, 오직 1:N 간의 통신만이 가능하였다.The second technique, compared with the first technique, has a structure of a pseudo network device driver, which allows an application to conveniently transfer data using IP and socket interfaces. However, when the second technology is applied, the processor directly transmits data, and thus, when receiving a large amount of data, the processor cannot perform other tasks, resulting in performance limitations. Also, among two or more processors, data is transmitted only between a master processor and a target processor, and thus data transmission and reception between arbitrary processors is impossible, and only 1: N communication is possible.

그러므로, 이와 같은 문제점들을 해결하기 위하여, 어플리케이션 개발에 있어서의 코딩 일관성 및 능률 저하, 프로세서의 부하 증가를 발생시키지 않고 다수 대 다수(N:N) 프로세서간의 데이터 전송을 가능하게 하는 새로운 데이터 전송장치 및 방법이 필요하게 된다.Therefore, in order to solve these problems, a new data transmission apparatus that enables data transmission between many-to-many (N: N) processors without incurring coding coherence and efficiency in application development and increased processor load, and You need a way.

따라서, 본 발명의 목적은 어플리케이션 개발에 있어서의 코딩 일관성 및 능률 저하를 발생시키지 않는 프로세서간 데이터 전송장치 및 방법을 제공함에 있다.Accordingly, it is an object of the present invention to provide an interprocessor data transfer apparatus and method that does not cause coding coherence and efficiency degradation in application development.

본 발명의 다른 목적은 프로세서의 자원을 사용하지 않고 데이터 전송을 수행할 수 있는 프로세서간 데이터 전송장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an interprocessor data transmission apparatus and method capable of performing data transmission without using a processor resource.

본 발명의 또 다른 목적은 다수 대 다수 프로세서간의 데이터 전송을 수행할 수 있는 프로세서간 데이터 전송장치 및 방법을 제공함에 있다. Still another object of the present invention is to provide an interprocessor data transmission apparatus and method capable of performing data transfer between many to many processors.

본 발명은 PCI(Peripheral Communication Interface) 버스를 이더넷 인터페이스와 같이 사용할 수 있도록 하는 의사 네트워크 디바이스 드라이버 기술을 사용함에 있어서, 그 데이터 수신을 위해 PCI DMA(Direct Memory Access)를 사용함으로써 데이터 수신시의 프로세서에 부가되는 부하를 감소시킬 수 있도록 한다.The present invention uses a pseudo network device driver technology that allows a Peripheral Communication Interface (PCI) bus to be used as an Ethernet interface, and uses a PCI DMA (Direct Memory Access) to receive the data. It is possible to reduce the added load.

이와 같은 본 발명의 장치는, 동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송장치에 있어서, 상기 시스템 상에 존재하는 프로세서의 특성 정보를 저장하는 프로세서 정보 저장장치와, 상대 프로세서에 송신하고자 하는 데이터를 저장하는 버퍼와, 상대 프로세서에 송신하고자 하는 데이터가 있음을 알리는 신호를 송신하는 인터럽트부와, 상기 송신하고자 하는 데이터가 저장된 버퍼의 정보를 송신하고 상대 프로세서가 DMA(Direct Memory Access)를 통해 상기 버퍼에 저장된 데이터를 수신할 수 있게 하는 PCI(Peripheral Component Interconnect) 제어기를 포함하는 프로세서간 데이터 전송 장치이다.Such an apparatus of the present invention is a data transmission apparatus for performing communication between processors existing on the same system, comprising: a processor information storage device storing characteristic information of a processor existing on the system, and a transmission to a counterpart processor; A buffer for storing the data to be transmitted, an interrupt unit for transmitting a signal indicating that there is data to be transmitted to the counterpart processor, and information about a buffer in which the data to be transmitted is stored, and the counterpart processor transmits the direct memory access (DMA). An inter-processor data transmission device including a Peripheral Component Interconnect (PCI) controller to receive data stored in the buffer through the controller.

또, 본 발명의 방법은, 동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송방법에 있어서, 송신할 데이터가 발생하면, 상기 송신할 데이터를 버퍼에 저장하는 제 1과정과, 송신할 데이터가 있음을 상기 데이터를 송신할 상대 프로세서에 알리는 제 2과정과, PCI 버스를 통해 상기 송신할 데이터가 저장된 버퍼에 대한 정보를 상기 상대 프로세서에 송신하고, DMA를 통해 상기 데이터를 상기 상대 프로세서에 송신하는 제 3과정을 포함하는 프로세서간 데이터 전송 방법이다.In addition, the method of the present invention is a data transmission method for performing communication between processors existing on the same system, when data to be transmitted is generated, a first process of storing the data to be transmitted in a buffer, and data to be transmitted. A second step of informing the counterpart processor to transmit the data to the counterpart processor; transmitting information about a buffer in which the data to be transmitted is stored to the counterpart processor through a PCI bus, and transmitting the data to the counterpart processor via DMA. A data transfer method between processors including a third process is performed.

본 발명의 다른 방법은, 동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송방법에 있어서, 상기 시스템 상에 존재하는, PCI를 통해 연결된 모든 프로세서들에 대한 특성정보를 통지받는 제 1과정과, 임의의 프로세서로부터 송신할 데이터가 있음을 알리는 신호를 수신하는 제 2과정과, 상기 프로세서 특성정보를 이용하여 상기 데이터를 송신할 프로세서에 대한 정보를 획득하는 제 3과정과, 상기 PCI 버스를 통해 상기 프로세서로부터 상기 데이터가 저장된 버퍼에 대한 정보를 획득하는 제 4과정과, 상기 제 4과정에서 획득한 정보를 이용하여 상기 데이터를 DMA를 통해 수신하는 제 5과정을 포함하는 프로세서간 데이터 전송 방법이다.According to another aspect of the present invention, there is provided a data transmission method for performing communication between processors existing on the same system, the method comprising: a first process of being notified of characteristic information of all processors connected through PCI on the system; A second step of receiving a signal indicating that there is data to be transmitted from an arbitrary processor, a third step of obtaining information on a processor to transmit the data using the processor characteristic information, and the PCI bus through the PCI bus; And a fourth process of acquiring information on the buffer in which the data is stored from the processor, and a fifth process of receiving the data through DMA using the information obtained in the fourth process. .

이상과 같은 본 발명을 적용하고자 하는 프로세서는 DMA를 구현할 수 있는 PCI spec. 2.1 이상의 PCI 버스, 패킷 버퍼로 사용하기 위한 휘발성 메모리, 시그널링(signaling)을 위한 인터럽트 라인을 포함함이 바람직하다.The processor to which the present invention is applied as described above is PCI spec. It is preferred to include a PCI bus of 2.1 or higher, volatile memory for use as a packet buffer, and interrupt lines for signaling.

프로세서는 패킷 버퍼용의 메모리로는 SDRAM(Synchronous Dynamic Random Access Memory, 동기식 동적 램) 또는 SRAM(Static RAM, 정적 램)을, 시그널링 용의 인터럽트 라인으로는 MSI(Message Signal Interrupt) 또는 하드웨어 인터럽트 라인(Hardware Interrupt Line)을 사용할 수 있다.The processor uses SDRAM (Synchronous Dynamic Random Access Memory) or SRAM (Static RAM) as the memory for the packet buffer, and Message Signal Interrupt (MSI) or hardware interrupt line ( Hardware Interrupt Line can be used.

여기서, SDRAM(Synchronous Dynamic Random Access Memory, 동기식 동적 램)은 중앙 처리 장치(CPU)가 사용하는 주 클록을 직접 받아서 동작되는 기억 장치로, 64비트의 데이터 버스를 제공하고 각 램이 서로 동기되어 작동하므로 기존의 램보다 훨씬 빠른 속도로 작동한다. 즉, CPU와 기억 장소가 동기로 진행되기 때문에 기억 장소에 접근하기 위한 대기 시간이 필요 없어 CPU에서 고속으로 기억 장소에 접근할 수 있다.Here, SDRAM (Synchronous Dynamic Random Access Memory) is a memory device that operates by directly receiving the main clock used by the central processing unit (CPU). It provides a 64-bit data bus and each RAM operates in synchronization with each other. So it runs much faster than conventional RAM. In other words, since the CPU and the storage location proceed synchronously, no waiting time for accessing the storage location is required, and the storage location can be accessed at high speed from the CPU.

SRAM(static RAM, 정적 램)은 반도체 기억 장치인 RAM을 데이터의 보존 방식에 따라 분류한 것의 하나이다. 정적 램은 재생(refreshing)을 필요로 하지 않기 때문에 동적 램보다 접근 속도가 훨씬 빠르다. 일반적으로 정적 램은 캐시(chche) 내에서의 사용을 위해 예비된다.SRAM (static RAM) is one of the classifications of RAM, which is a semiconductor memory device, according to a data storage method. Since static RAM does not require refreshing, access is much faster than dynamic RAM. In general, static RAM is reserved for use in the cache.

DMA(기억 장치 직접 접근)는 기억 장치 직접 접근 제어기(DMA Controller, DMAC)를 사용하여 데이터 전송이 메모리와 입출력 기기 사이에서 직접 행해지고 중앙 처리 장치(CPU)를 통하지 않는 방식이다. 기억 장치 직접 접근(DMA)을 사용하면 고속으로 데이터 전송이 이루어지고, 프로세서에서의 프로그램 지연이 발생하지 않는다. 본 발명에서는 PCI 컨트롤러가 DMAC의 기능을 수행한다.Memory Direct Access (DMA) is a method in which data transfers are made directly between memory and input / output devices using a direct memory access controller (DMA Controller) (DMAC) and not through a central processing unit (CPU). With direct memory access (DMA), data transfers occur at high speeds and no program delay occurs in the processor. In the present invention, the PCI controller performs the function of DMAC.

이하 도면을 참조하여 본 발명을 설명한다.Hereinafter, the present invention will be described with reference to the drawings.

도 1은 본 발명에 따라 프로세서간의 데이터 전송을 수행하는 장치의 구성 및 그 장치에서의 데이터 흐름을 도시하는 도면이다.1 is a diagram illustrating a configuration of an apparatus for performing data transfer between processors and a data flow in the apparatus according to the present invention.

도 1에 도시된 바와 같이, 본 발명을 수행하기 위해서 각 프로세서(100 및 120)는 프로토콜 스택(102 또는 122), LPC 드라이버(104 또는 124), MSI(106 또는 126), PCI DMA(108 또는 128), SDRAM(110 및 130)을 구비한다. 또, 각 프로세서들의 정보를 저장하기 위한 프로세서 정보 저장장치(140)를 구비한다.As shown in FIG. 1, in order to carry out the present invention, each processor 100 and 120 may include a protocol stack 102 or 122, an LPC driver 104 or 124, an MSI 106 or 126, a PCI DMA 108 or 128, SDRAMs 110 and 130 are provided. In addition, a processor information storage device 140 for storing information of each processor is provided.

프로세서 1(100)의 프로토콜 스택(102)은 프로세서 상에서 동작하는 각 어플리케이션을 지원한다. LPC 드라이버(104)는 다른 프로세서와의 통신을 위한 전반적인 과정을 수행한다. LPC 드라이버(104)는 프로세서간의 통신을 위하여 어플리케이션으로부터 수신되는, 다른 프로세서에 송신할 데이터를 SDRAM(110)에 저장하고, 각 프로세서들의 정보가 저장된 프로세서 정보 저장장치(140)로부터 데이터를 송신할 상대 프로세서의 정보를 읽어들이고, 읽어들인 정보에 따라 상대 프로세서에 송신할 데이터가 있음을 알린다. 이 데이터는 PCI DMA(108)를 통해 상대 프로세서에 직접 전달된다. MSI(106)는 데이터를 송신할 상대 프로세서에 송신할 메시지가 있음을 알리는 기능을 수행한다. PCI DMA(108)는 송신할 데이터가 저장된 메모리(예를 들면, SDRAM)의 주소 등의 정보를 상대 프로세서에 알림으로써 상대 프로세서가 이 메모리를 DMA를 통해 직접 읽어들일 수 있도록 한다.The protocol stack 102 of processor 1 100 supports each application running on the processor. The LPC driver 104 performs an overall process for communicating with other processors. The LPC driver 104 stores data to be transmitted to another processor, which is received from an application for communication between processors, in the SDRAM 110 and a partner to transmit data from the processor information storage 140 in which information of each processor is stored. It reads the processor's information and informs the partner processor that there is data to send according to the read information. This data is passed directly to the partner processor via the PCI DMA 108. The MSI 106 performs a function of notifying the counterpart processor that will send data that there is a message to send. The PCI DMA 108 informs the counterpart processor of information such as the address of a memory (for example, SDRAM) in which data to be transmitted is stored so that the counterpart processor directly reads the memory through the DMA.

이하 본 발명에 따른 동작에 대해 설명한다.Hereinafter, an operation according to the present invention will be described.

이하 본 발명을 설명함에 있어서 프로세서 1(100)은 데이터를 송신하는 송신자(sender)가 되며, 프로세서 2(120)는 데이터를 수신하는 수신자(receiver)가 된다.(processor1 → processor2)In the following description of the present invention, processor 1 100 becomes a sender for transmitting data, and processor 2 120 becomes a receiver for receiving data.

(1) 데이터의 전송에 앞서, 시스템은 초기화 과정을 수행한다. 각 프로세서들에 대한 PCI 개시자(initiator)가 되는 프로세서가 각 타겟 프로세서들에 대해서 초기화를 수행한다. 일반적으로 PCI 개시자는 메일박스 레지스터(Mailbox register)와 SDRAM을 이용하여 초기화를 수행할 수 있다. 초기화 수행 시에 PCI 개시자는 PCI 버스를 통해 연결된 모든 프로세서들에 대한 특성(property) 정보를 수집하여 정해진 자료구조로 프로세서 정보 저장장치(140)에 등록한다. 프로세서 특성 정보의 예로 프로세서 ID, 패킷 버퍼 어드레스, IP 등을 들 수 있다. 일반적으로 PCI 개시자는 위에서 만들어진 자료구조를 각 프로세서가 알 수 있도록 PCI 메일박스 레지스터를 통해서 공지한다.(1) Prior to data transfer, the system performs an initialization process. A processor that becomes a PCI initiator for each processor performs initialization for each target processor. In general, the PCI initiator may perform initialization using a mailbox register and SDRAM. When performing initialization, the PCI initiator collects property information of all processors connected through the PCI bus and registers the information in the processor information storage 140 with a predetermined data structure. Examples of the processor characteristic information include a processor ID, a packet buffer address, and an IP. In general, the PCI initiator announces through the PCI mailbox register so that each processor knows the data structure created above.

(2) 프로세서 1(100)의 어플리케이션은 OS에서 제공하는 소켓 시스템 콜(socket system call)을 통해서 목적지 네트워크 인터페이스(destination network interface)(본 발명에서는 해당 target processor)로 메시지(message)를 전달한다. 어플리케이션에서 생성된 메시지는 OS 시스템 콜을 통해서 의사 네트워크 디바이스 드라이버의 패킷 버퍼(예를 들면, SDRAM)로 전달되고(2-1) 패킷 기술자(packet descriptor)를 생성한다(2-2). 프로세서 1(100)은 프로세서 2(120)로 록(lock)을 설정한다(일반적으로 프로세서 2의 해당 필드를 1로 설정한다). 이것은 프로세서 1(100)이 프로세서 2(120)로 데이터 전송을 시작했음을 알리게 된다(2-3). 만일 이 록을 프로세서 2가 풀지 않고(프로세서 2가 아직 수신이 완료되지 않았음을 의미) 프로세서 1(100)이 다시 전송을 하려고 하면 쓰기 실패(write fail)로 처리하고, 프로세서 1(100)의 어플리케이션이나 프로토콜 스택(Protocol stack)(102)은 성공할 때까지 재전송을 한다.(2) The application of the processor 1 (100) transmits a message to a destination network interface (the target processor in the present invention) through a socket system call provided by the OS. The message generated by the application is transferred to the packet buffer (eg, SDRAM) of the pseudo network device driver through the OS system call (2-1) and generates a packet descriptor (2-2). Processor 1 100 sets a lock to processor 2 120 (generally sets the corresponding field of processor 2 to 1). This informs that processor 1 100 has started transmitting data to processor 2 120 (2-3). If processor 2 does not release this lock (meaning that processor 2 has not yet completed its reception) and processor 1 (100) attempts to transmit again, it is treated as a write fail and the processor 1 (100) The application or protocol stack 102 retransmits until successful.

(3) 프로세서 1(100)은 프로세서 2(120)로 MSI(또는 H/W 인터럽트 라인)(106)를 통해서 송신할 메시지가 있음을 알린다(3-1). 프로세서 1(100)로부터 인터럽트를 받은 프로세서 2(120)는 어떤 프로세서가 메시지를 보내려고 인터럽트를 보냈는지를 인지한다(3-2). 이 과정은 MSI의 BIT MAP 체크 또는 프로세서 ID 체크를 통해 이루어진다 여기서 비트맵(BITMAP)은 비트를 단위로 한 색인부착 방식을 의미한다.(3) Processor 1 (100) notifies Processor 2 (120) that there is a message to transmit via MSI (or H / W interrupt line) 106 (3-1). Processor 2 (120) receiving an interrupt from processor 1 (100) knows which processor sent the interrupt to send a message (3-2). This process is performed through MSI's BIT MAP check or processor ID check. Here, the bitmap (BITMAP) refers to an indexing method based on bits.

(4) 프로세서 2(120)는 PCI 버스를 통해서 프로세서 1(100)의 패킷 기술자를 읽어 들이고(4-1,4-2), 자신의 PCI DMA(128)를 셋업(setup)하여 DMA전송을 시작한다(4-3, 4-4) 데이터 수신은 DMA를 통하여 프로세서를 통하지 않고 메모리로부터 직접 데이터를 읽어옴으로써 수행되므로, 이때 프로세서는 다른 태스크를 처리할 수 있게 된다.(4) Processor 2 (120) reads the packet descriptor of processor 1 (100) over the PCI bus (4-1, 4-2), sets up its PCI DMA 128 and performs DMA transfers. Starts (4-3, 4-4) Data reception is performed by reading data directly from memory, not through the processor via DMA, so that the processor can process other tasks.

(5) 프로세서 2(120)는 DMA를 통한 데이터 수신이 완료되면 PCI DMA(128)로부터 DMA 완료 인터럽트(completion interrupt)를 받고(5-1), 프로세서 1(100)이 프로세서 2(120)에 걸었던 록을 해제하고 프로세서 1(100)의 패킷 기술자의 상태(state)를 프리(free)로 만들어서 프로세서 1(100)로부터 또 다른 메시지를 받을 수 있도록 한다(5-2).(5) Processor 2 (120) receives DMA completion interrupt (5-1) from PCI DMA 128 when data reception through DMA is completed (Process Processor 1 (100)) to Processor 2 (120). It releases the locked lock and makes the state of the packet descriptor of the processor 1 100 free so that another message can be received from the processor 1 100 (5-2).

(6) 프로세서 2(120)의 OS/프로토콜 스택(122)을 거쳐서 목적지 어플리케이션(Destination application)으로 데이터가 수신된다.(6) Data is received to a destination application via the OS / protocol stack 122 of processor 2 120.

이 과정들을 정리하면 다음과 같다.These processes are summarized as follows.

첫째, 초기화를 수행하여 각 프로세서들의 프로세서 ID, 패킷 버퍼 어드레스, IP 등의 프로세서 특성 정보를 수집하여 저장하고 각 프로세서들에 알린다.First, the initialization is performed to collect and store processor characteristic information such as processor ID, packet buffer address, and IP of each processor and notify each processor.

둘째, 데이터를 송신하고자 하는 프로세서(예를 들어 프로세서 1)(100)는 송신할 메시지를 패킷 버퍼(일반적으로 SDRAM을 사용하여 구현된다)(110)에 저장하고 그 저장 위치 등을 알리는 패킷 기술자(packet descriptor)를 생성한다.Second, the processor (for example, processor 1) 100 to transmit data stores a message to be transmitted in a packet buffer (generally implemented using SDRAM) 110 and indicates a packet descriptor (e.g., its storage location). packet descriptor).

셋째, 프로세서 1(100)은 MSI 또는 H/W 인터럽트 라인을 이용하여 데이터를 송신할 대상이 되는 상대 프로세서(예를 들어 프로세서 2)(120)에 송신할 데이터가 있음을 알린다.Third, the processor 1 100 notifies the counterpart processor (for example, the processor 2) 120 to which data is to be transmitted by using an MSI or H / W interrupt line.

넷째, 프로세서 1(100)로부터 송신할 데이터가 있음을 알리는 인터럽트를 수신한 프로세서 2(120)는 PCI 버스를 통해서 프로세서 1(100)의 패킷 기술자를 읽어들이고, 그에 따라 DMA를 통하여 패킷 버퍼(110)에 저장된, 프로세서 1(100)이 송신하고자 하는 데이터를 읽어들임으로써 데이터를 수신한다.Fourth, upon receiving an interrupt indicating that there is data to be transmitted from processor 1 (100), processor 2 (120) reads the packet descriptor of processor 1 (100) via the PCI bus, and accordingly the packet buffer 110 through DMA. Processor 1 100 receives the data by reading the data to be transmitted.

다섯째, DMA 전송이 완료되면, 이를 프로세서 1(100)에 알린다.Fifth, when the DMA transfer is completed, it notifies the processor 1 (100).

여섯째, 패킷 버퍼(110)로부터 읽어들인 데이터를 프로토콜 스택(122)을 통해 어플리케이션에 전송함으로써 데이터 수신을 완료한다.Sixth, data reception is completed by transmitting data read from the packet buffer 110 to the application through the protocol stack 122.

이와 같은 본 발명을 적용함으로써 프로세서에 주변장치로 내장된 PCI 컨트롤러를 사용하여 IPC를 수행할 수 있게 된다. 어플리케이션 개발자는 OS(예를 들어 linux 등)상에서 소켓 시스템 콜을 사용하여 네트워크 드라이버를 통해서 데이터를 전송한 것과 같이 PCI 버스를 통해서도 그와 같은 방법으로 사용할 수 있다. 즉 ,하부 물리적인 인터페이스가 MAC/PHY칩에서 PCI 컨트롤러로 대체된 것으로 보면 되며, 어플리케이션 개발자에게는 추상화되어 단순히 OS의 시스템 콜만을 이용하도록 할 수 있다. 네트워크 장비의 경우 각 어플리케이션간에 OS에서 제공되는 통일된 시스템 콜(예를 들어, 소켓 등)을 사용하여 데이터 송수신을 할 수 있도록 한다. 데이터 수신시 PCI 컨트롤러에 내장된 PCI DMA를 사용함으로써 데이터를 수신시의 프로세서의 부하를 감소시킬 수 있고, 그에 따라 다른 태스크에 CPU 타임을 할당하여 데이터 수신 중에 다른 작업을 수행할 수 있다. 프로세서 특성정보를 이용하여 PCI 버스로 연결된 어떤 프로세서가 송신하는 데이터라도 수신할 수 있게 된다.By applying the present invention as described above it is possible to perform the IPC using a PCI controller embedded in the processor as a peripheral device. Application developers can use it in the same way over the PCI bus as they use the socket system call to send data through a network driver on an operating system (such as linux). In other words, it can be seen that the lower physical interface is replaced by the PCI controller in the MAC / PHY chip, and abstracted to the application developer so that only the system call of the OS can be used. In the case of network equipment, data can be transmitted and received using a unified system call (eg, socket, etc.) provided by the OS between applications. By using the PCI DMA built into the PCI controller when receiving data, the processor load when receiving data can be reduced, and accordingly, CPU time can be allocated to other tasks to perform other tasks during data reception. The processor characteristic information can be used to receive data transmitted by any processor connected to the PCI bus.

한편, 본 발명을 기술하면서 언급한 구체적인 장치 및 OS 환경 등은 본 발명의 이해를 돕기 위한 것일 뿐이며, 본 발명은 이로 인해 한정되지 않는다.On the other hand, the specific device and OS environment, etc. mentioned while describing the present invention are only intended to help the understanding of the present invention, and the present invention is not limited thereto.

이와 같은 본 발명을 적용하면, IPC를 위한 별도의 하드웨어 장치가 요구되지 않으므로, 비용 감소 및 장비 크기 감소의 효과가 발생한다. 어플리케이션 개발자는 OS의 시스템 콜만을 이용하여 데이터 전송을 수행할 수 있으므로, 개발기간을 감소시킬 수 있다. 각 어플리케이션간에 OS에서 제공되는 통일된 시스템 콜을 사용하여 소프트웨어를 일관성 있게 작성할 수 있다. 데이터 수신시 프로세서의 부하를 감소시킴으로써 성능 한계를 극복할 수 있다. PCI버스로 연결된 모든 임의의 프로세서간 통신이 가능하도록 함으로써 1:N이 아닌 N:N간, 즉 여러 프로세서간 데이터 전송이 가능해진다. Applying the present invention, since a separate hardware device for the IPC is not required, the effect of cost reduction and equipment size reduction occurs. The application developer can perform data transmission using only the system call of the OS, thereby reducing the development period. Software can be written consistently using a unified system call provided by the operating system between applications. Performance limitations can be overcome by reducing the load on the processor when receiving data. By enabling communication between any of the processors connected by the PCI bus, data transfer is possible between N: N, that is, between multiple processors, rather than 1: N.

도 1은 본 발명에 따라 프로세서간의 데이터 전송을 수행하는 장치의 구성 및 그 장치에서의 데이터 흐름을 도시하는 도면. 1 is a diagram illustrating a configuration of an apparatus for performing data transfer between processors and a data flow in the apparatus according to the present invention.

Claims (13)

동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송장치에 있어서,In the data transmission apparatus for performing communication between processors existing on the same system, 상기 시스템 상에 존재하는 프로세서의 특성 정보를 저장하는 프로세서 정보 저장장치와,A processor information storage device for storing characteristic information of a processor existing on the system; 상대 프로세서에 송신하고자 하는 데이터를 저장하는 버퍼와,A buffer for storing data to be sent to the partner processor, 상대 프로세서에 송신하고자 하는 데이터가 있음을 알리는 신호를 송신하는 인터럽트부와,An interrupt unit for transmitting a signal indicating that there is data to be transmitted to the counterpart processor; 상기 송신하고자 하는 데이터가 저장된 버퍼의 정보를 송신하고 상대 프로세서가 DMA(Direct Memory Access)를 통해 상기 버퍼에 저장된 데이터를 수신할 수 있게 하는 PCI(Peripheral Component Interconnect) 제어기를 포함하는 프로세서간 데이터 전송 장치.An interprocessor data transfer device including a Peripheral Component Interconnect (PCI) controller which transmits information of a buffer in which the data to be transmitted is stored and allows a counterpart processor to receive data stored in the buffer through direct memory access (DMA). . 제 1항에 있어서, 상기 프로세서 특성 정보는 프로세서 아이디, 버퍼 어드레스, 아이피를 포함하는 프로세서간 데이터 전송 장치.The apparatus of claim 1, wherein the processor characteristic information comprises a processor ID, a buffer address, and an IP. 제 1항에 있어서, 상기 프로세서 특성 정보는 메일 박스 레지스터를 통해 상기 시스템 상의 모든 프로세서에 통지되는 프로세서간 데이터 전송 장치.The apparatus of claim 1, wherein the processor characteristic information is notified to all processors on the system through a mailbox register. 제 1항에 있어서, 상기 버퍼는 SDRAM(Synchronous Dynamic Random Access Memory)인 프로세서간 데이터 전송 장치.The apparatus of claim 1, wherein the buffer is a synchronous dynamic random access memory (SDRAM). 제 1항에 있어서, 상기 데이터는 시스템 콜을 통해 상기 버퍼에 저장되는 프로세서간 데이터 전송 장치.The apparatus of claim 1, wherein the data is stored in the buffer through a system call. 제 1항에 있어서, 상기 PCI 제어기는 DMA 제어 기능을 가지는 프로세서간 데이터 전송 장치.The apparatus of claim 1, wherein the PCI controller has a DMA control function. 동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송장치에 있어서,In the data transmission apparatus for performing communication between processors existing on the same system, 상기 시스템 상에 존재하는 프로세서의 특성 정보를 저장하는 프로세서 정보 저장장치와,A processor information storage device for storing characteristic information of a processor existing on the system; 임의의 프로세서로부터 송신할 데이터가 있음을 알리는 신호를 수신하고 상기 특성 정보를 이용하여 상기 프로세서가 어떤 프로세서인지 판단하는 인터럽트부와,An interrupt unit which receives a signal indicating that there is data to be transmitted from an arbitrary processor and determines which processor is the processor using the characteristic information; PCI 버스를 통해 상기 프로세서가 송신하고자 하는 데이터를 DMA를 통해 수신하기 위한 정보를 획득하고, 그 정보에 따라 상기 데이터를 저장되어 있는 버퍼로부터 DMA를 통해 직접 읽어들여서 데이터를 수신하는 PCI 제어부를 포함하는 프로세서간 데이터 전송장치.And a PCI controller for acquiring information for receiving the data to be transmitted by the processor through a PCI bus through a DMA and reading the data directly from the buffer in which the data is to be transmitted through the DMA according to the information. Interprocessor data transfer device. 제 7항에 있어서, 데이터를 DMA를 통해 수신하기 위한 정보는 상기 데이터가 저장된 버퍼의 어드레스 정보인 프로세서간 데이터 전송장치. 8. The interprocessor data transfer device of claim 7, wherein the information for receiving data through the DMA is address information of a buffer in which the data is stored. 제 7항에 있어서, 상기 PCI 제어부는 DMA를 통한 데이터 수신이 종료되면 이를 알리는 신호를 출력하는 프로세서간 데이터 전송장치.8. The interprocessor data transfer device of claim 7, wherein the PCI controller outputs a signal informing of the completion of data reception through DMA. 동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송방법에 있어서,In the data transmission method for performing communication between processors existing on the same system, 송신할 데이터가 발생하면, 상기 송신할 데이터를 버퍼에 저장하는 제 1과정과,When the data to be transmitted is generated, storing the data to be transmitted in a buffer; 송신할 데이터가 있음을 상기 데이터를 송신할 상대 프로세서에 알리는 제 2과정과,A second step of informing a counterpart processor to transmit the data that there is data to transmit; PCI 버스를 통해 상기 송신할 데이터가 저장된 버퍼에 대한 정보를 상기 상대 프로세서에 송신하고, DMA를 통해 상기 데이터를 상기 상대 프로세서에 송신하는 제 3과정을 포함하는 프로세서간 데이터 전송 방법.And transmitting, to the counterpart processor, information about a buffer in which the data to be transmitted is stored through a PCI bus, and transmitting the data to the counterpart processor through a DMA. 제 10항에 있어서, 상기 제 1과정은 시스템 콜을 사용하여 이루어지는 프로세서간 데이터 전송 방법.The method of claim 10, wherein the first process is performed using a system call. 동일한 시스템 상에 존재하는 프로세서간의 통신을 수행하는 데이터 전송방법에 있어서,In the data transmission method for performing communication between processors existing on the same system, 상기 시스템 상에 존재하는, PCI를 통해 연결된 모든 프로세서들에 대한 특성정보를 통지받는 제 1과정과,A first step of being informed of characteristic information of all processors connected through PCI existing on the system; 임의의 프로세서로부터 송신할 데이터가 있음을 알리는 신호를 수신하는 제 2과정과,Receiving a signal indicating that there is data to be transmitted from any processor; 상기 프로세서 특성정보를 이용하여 상기 데이터를 송신할 프로세서에 대한 정보를 획득하는 제 3과정과,A third step of obtaining information about a processor to transmit the data by using the processor characteristic information; 상기 PCI 버스를 통해 상기 프로세서로부터 상기 데이터가 저장된 버퍼에 대한 정보를 획득하는 제 4과정과,A fourth process of obtaining information on a buffer in which the data is stored from the processor through the PCI bus; 상기 제 4과정에서 획득한 정보를 이용하여 상기 데이터를 DMA를 통해 수신하는 제 5과정을 포함하는 프로세서간 데이터 전송 방법.And a fifth process of receiving the data through DMA using the information obtained in the fourth process. 제 12항에 있어서, 상기 DMA를 통한 데이터 수신이 완료되면 이를 상기 프로세서에 알리는 제 6과정을 더 포함하는 프로세서간 데이터 전송 방법.13. The method of claim 12, further comprising a sixth step of notifying the processor when data reception through the DMA is completed.
KR1020040008812A 2004-02-10 2004-02-10 Apparatus and method of inter processor communication Ceased KR20050080704A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040008812A KR20050080704A (en) 2004-02-10 2004-02-10 Apparatus and method of inter processor communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040008812A KR20050080704A (en) 2004-02-10 2004-02-10 Apparatus and method of inter processor communication

Publications (1)

Publication Number Publication Date
KR20050080704A true KR20050080704A (en) 2005-08-17

Family

ID=37267454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040008812A Ceased KR20050080704A (en) 2004-02-10 2004-02-10 Apparatus and method of inter processor communication

Country Status (1)

Country Link
KR (1) KR20050080704A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772841B1 (en) * 2006-07-28 2007-11-02 삼성전자주식회사 Multipath-accessible semiconductor memory device with host interfacing between processors
KR100778967B1 (en) * 2006-07-26 2007-11-22 가부시끼가이샤 도시바 How to Manage Information Processor Systems
KR100855587B1 (en) * 2007-01-17 2008-09-01 삼성전자주식회사 Multi-pass accessible semiconductor memory device having a mailbox area, and a mailbox access control method thereof
KR100921504B1 (en) * 2007-11-27 2009-10-13 한국전자통신연구원 Apparatus and method for interprocessor communication in a system-on-chip system having multiple processors
CN101916237A (en) * 2010-06-29 2010-12-15 航天恒星科技有限公司 A PCI bus DMA high-speed data transmission method
KR101018080B1 (en) * 2009-11-26 2011-03-02 주식회사 케피코 Memory data collection method of embedded system using DM
KR101018573B1 (en) * 2006-06-15 2011-03-03 엔비디아 코포레이션 Graphics processing unit for cost-effective, high performance graphics systems with two or more graphics processing units
KR101486547B1 (en) * 2013-05-15 2015-01-27 (주)한국거래소 Apparatus for Inter Process Communication using Local Direct Memory Access
CN114553854A (en) * 2022-02-11 2022-05-27 亿咖通(湖北)技术有限公司 Linux communication method, first processor and system based on Mailbox

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101018573B1 (en) * 2006-06-15 2011-03-03 엔비디아 코포레이션 Graphics processing unit for cost-effective, high performance graphics systems with two or more graphics processing units
KR100778967B1 (en) * 2006-07-26 2007-11-22 가부시끼가이샤 도시바 How to Manage Information Processor Systems
KR100772841B1 (en) * 2006-07-28 2007-11-02 삼성전자주식회사 Multipath-accessible semiconductor memory device with host interfacing between processors
KR100855587B1 (en) * 2007-01-17 2008-09-01 삼성전자주식회사 Multi-pass accessible semiconductor memory device having a mailbox area, and a mailbox access control method thereof
US7840762B2 (en) 2007-01-17 2010-11-23 Samsung Electronics Co., Ltd Multi-path accessible semiconductor memory device having mailbox areas and mailbox access control method thereof
US8019948B2 (en) 2007-01-17 2011-09-13 Samsung Electronics Co., Ltd. Multi-path accessible semiconductor memory device having mailbox areas and mailbox access control method thereof
KR100921504B1 (en) * 2007-11-27 2009-10-13 한국전자통신연구원 Apparatus and method for interprocessor communication in a system-on-chip system having multiple processors
KR101018080B1 (en) * 2009-11-26 2011-03-02 주식회사 케피코 Memory data collection method of embedded system using DM
CN101916237A (en) * 2010-06-29 2010-12-15 航天恒星科技有限公司 A PCI bus DMA high-speed data transmission method
CN101916237B (en) * 2010-06-29 2012-08-22 航天恒星科技有限公司 DMA (Direct Memory Access) high-speed data transmission method of PCI (Programmable Communications Interface) bus
KR101486547B1 (en) * 2013-05-15 2015-01-27 (주)한국거래소 Apparatus for Inter Process Communication using Local Direct Memory Access
CN114553854A (en) * 2022-02-11 2022-05-27 亿咖通(湖北)技术有限公司 Linux communication method, first processor and system based on Mailbox

Similar Documents

Publication Publication Date Title
CN1647054B (en) Dual-mode network device driver device, system and method
US11194753B2 (en) Platform interface layer and protocol for accelerators
US9842075B1 (en) Presenting multiple endpoints from an enhanced PCI express endpoint device
CN106688208B (en) Network communication using pooled storage in a rack scale architecture
JP2024099640A (en) Unified address space for multiple hardware accelerators using dedicated low latency link
US11403247B2 (en) Methods and apparatus for network interface fabric send/receive operations
US20160057056A1 (en) In nic flow switching
US20190034367A1 (en) Unified address space for multiple links
TWI547870B (en) Method and system for ordering i/o access in a multi-node environment
CN114185829A (en) Shared resources for multiple communication services
US8473658B2 (en) Input output bridging
US10936048B2 (en) System, apparatus and method for bulk register accesses in a processor
JP2017537404A (en) Memory access method, switch, and multiprocessor system
CN113821309B (en) Communication method, device, equipment and storage medium between microkernel virtual machines
US12271329B2 (en) Multi-port memory link expander to share data among hosts
JP6092351B2 (en) Cross-die interface snoop or global observation message ordering
CN105630727A (en) Access method, apparatus and system among multi-SoC nodes
KR20050080704A (en) Apparatus and method of inter processor communication
KR101844812B1 (en) Emi mitigation on high-speed lanes using false stall
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
CN119597489A (en) P2P communication method and system between IO devices based on PCIe-NTB
CN118426976B (en) Memory expansion system, access method and device, medium and computer program product
KR102303424B1 (en) Direct memory access control device for at least one processing unit having a random access memory
US11386031B2 (en) Disaggregated switch control path with direct-attached dispatch
WO2013105978A1 (en) Allocation of flow control credits for high performance devices

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20040210

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: 20051125

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20060825

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20051125

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 20060925

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20060825

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Appeal identifier: 2006101008509

Request date: 20060925

J501 Disposition of invalidation of trial
PJ0501 Disposition of invalidation of trial

Appeal kind category: Appeal against decision to decline refusal

Request date: 20060925

Appeal identifier: 2006101008509