KR20150067332A - 코어 간 통신 장치 및 방법 - Google Patents

코어 간 통신 장치 및 방법 Download PDF

Info

Publication number
KR20150067332A
KR20150067332A KR1020157012032A KR20157012032A KR20150067332A KR 20150067332 A KR20150067332 A KR 20150067332A KR 1020157012032 A KR1020157012032 A KR 1020157012032A KR 20157012032 A KR20157012032 A KR 20157012032A KR 20150067332 A KR20150067332 A KR 20150067332A
Authority
KR
South Korea
Prior art keywords
message
core
post module
read
write
Prior art date
Application number
KR1020157012032A
Other languages
English (en)
Other versions
KR101951072B1 (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 지티이 코포레이션
Publication of KR20150067332A publication Critical patent/KR20150067332A/ko
Application granted granted Critical
Publication of KR101951072B1 publication Critical patent/KR101951072B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 코어 간 통신 장치 및 방법을 제공하는데, 상기 장치는 메시지 송신 코어로부터 메시지 수신 코어로 송신한 메시지를 기억하고, 메시지 수신 코어에 상기 메시지 읽기를 수행하도록 통지하는 포스트 모듈과, 통신을 수행하는 상기 메시지 수신 코어와 메시지 송신 코어 및 포스트 모듈 사이에 연결되어 포스트 모듈과 메시지 수신 코어 및 메시지 송신 코어의 읽기/쓰기 인터페이스를 제공하는 버스 어댑터 모듈을 포함한다. 본 발명에 의하면 관련기술 중의 코어 간 통신 장치 및 방법에 존재하는 복잡하고 실시간성이 부족하며 멀티 코어를 응용할 경우 확장가능성이 부족한 문제를 해결하고 코어 간 통신의 복잡도를 대폭 하강시키고 통신 지연을 낮추며 우수한 확장가능성 및 축소가능성을 구비하는 효과를 실현할 수 있다.

Description

코어 간 통신 장치 및 방법{INTER-CORE COMMUNICATION APPARATUS AND METHOD}
본 발명은 고성능 칩의 설계에 관한 것으로, 특히, 코어 간 통신 장치 및 방법에 관한 것이다.
멀티 코어 프로세서가 각 기술분야에 널리 이용됨에 따라 그 강대한 병렬 계산력, 저전력 소비, 고 집적도등 장점이 점차적으로 사람들의 인정을 받고 있다. 멀티 코어 프로세서의 선명한 특징은 동일한 임무를 다수의 커널 스레드 혹은 프로세스로 분리시켜 병렬 수행하는 것이고, 이러한 병렬성을 통하여 성능을 대폭 향상시킬 수 있게 된다. 하지만 멀티 코어 프로세서의 성능이 향상됨과 동시에 코어 간 통신 임무의 빈도가 높아지고 복잡한 멀티 코어 통신을 관리하여야 하는 일련의 문제가 발생되고 동일한 칩에 집적되는 코어가 점차적으로 많아짐에 따라 이러한 문제는 더욱 두드러지고 있다. 따라서 고속의 효율적인 코어 간 통신 장치 및 방법이 멀티 코어 프로세서 칩의 키포인트로 되었다.
관련기술에 있어서, 일반적으로 공유 메모리에 의하여 코어 간 통신을 실현한다. 예를 들어, 특허번호가 CN200510087321인 특허 "삽입식 실시간 조작 시스템에 있어서의 멀티 코어 프로세서의 코어 간 통신 방법 및 장치"에 있어서, 공유 메모리에 의하여 코어 간 통신에 필요한 공유 메시지 풀과 메시지 데이터 통로를 실현하고 있다. 이 방법에 의하면 조작 시스템의 소프트웨어로 메시지 큐를 구성하고 코어 간 통신의 통로를 확립하는 작업을 수행하여야 하므로 아주 복잡하다. 그리고 멀티 코어가 공유 메시지 메모리에 액세스하는 일치성을 실현하기 위하여 스핀 락 자원을 이용하여 별도로 락(lock)을 요청하고 릴리스하는 등 동기 작업을 수행하여야 하고 이러한 복잡한 소프트웨어의 교환 작업으로 인하여 코어 간 통신의 효율을 대폭 하강시키고, 그리고 코어 수량이 증가될 경우 믿음성을 하강시킨다. 또한 메시지의 분리 작업과 중단 통지 메커니즘에 의하여 효율을 하강시킨다. 그리고 공유 메모리에 기반한 방법에 의하면 코어 간 메시지가 반드시 데이터와 동일한 대역폭을 이용하므로 통신의 실시간성을 확보할 수도 없게 된다.
공유 메모리에 기반한 코어 간 통신 메커니즘에 존재하는 복잡하고 지연이 긴 문제를 해결하기 위한 개선 방법이 공개되었다. 예를 들어, 특허번호가 US20080988459인 특허 "Method and System for Generating and Delivering Inter-Processor Interrupts in a Multi-Core Processor and in Certain Shared Memory Multi-Processor Systems"에 있어서, 소프트웨어가 한 세트의 전용 인터럽트 마스크 레지스터(Interrupt Mask Register, IMR로 약칭)를 조작하여 공유의 기억 영역을 지정하고 지정된 공유 메모리 영역에 대하여 쓰기 작업을 수행할 경우, 코어 간의 중단을 자동적으로 트리거한다. 하지만, 그 메시지는 공유의 기억 영역의 환형 버퍼링에 기억되어 여전히 소프트웨어가 실현하는 데이터 구조를 통하여 환형 버퍼링을 액세스하여야 한다. 메시지의 통지로 인한 중단은 IMR를 통하여 발생된다. 그리고, IMR 레지스터를 사전에 설치하여야 하고 레지스터의 조작과 메시지의 조작과의 분리, 소프트웨어의 교환 작업의 증가 등의 원인으로 인하여 코어 간 통신의 지연이 커지고 소프트웨어의 프로그래밍이 복잡하며 고성능의 멀티 코어 통신의 수요를 만족시킬 수 없다. 동시에 이 특허에 의하면 코어 간 통신의 확실성을 보장하기 위하여 상호배제 작업을 도입하여 자원 소비와 복잡도가 높아지는 문제를 가져오게 된다.
상기한 기존의 코어 간 통신 기술에 통신 효율이 낮고 실시간성을 확보할 수 없는 문제가 존재하는 외 기존의 코어 간 통신 기술에 의하면, 코어 수량이 대폭 증가될 경우 더욱 많은 하드웨어 자원과 더욱 복잡한 소프트웨어 처리 프로세스가 필요로 되고 이종 멀티 코어 시스템에 있어서, 코어 주파수, 인터페이스 구조, 데이터 구조에 대한 지원 차이 역시 기존의 코어 간 통신 방법중의 소프트웨어의 복잡성을 대폭 증가시키고 이종 코어 통신 프로세스의 호환성과 확실성을 확보할 수 없다. 즉, 기존의 코어 간 통신 기술은 코어 이종 및 코어 수량이 증가되는 상황에 응용될 경우 확장가능성 및 융통성이 부족하다.
따라서 관련기술에 있어서 코어 간 통신 장치 및 방법에는 복잡하고 실시간성이 부족하고 멀티 코어를 응용할 경우 확장가능성이 부족한 문제가 존재하고 있다.
본 발명은 최소한 관련기술에 있어서 코어 간 통신 장치 및 방법에 존재하는 복잡하고 실시간성이 부족하며 멀티 코어를 응용할 경우 확장가능성이 부족한 문제를 해결할 수 있는 코어 간 통신 장치 및 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 일 측면에 따르면, 메시지 송신 코어로부터 메시지 수신 코어로 송신한 메시지를 기억하고 상기 메시지 수신 코어에 상기 메시지 읽기를 수행하도록 통지하는 포스트 모듈과, 통신을 수행하는 상기 메시지 수신 코어 및 메시지 송신 코어와 상기 포스트 모듈 사이에 연결되어 상기 포스트 모듈과 상기 메시지 수신 코어 및 상기 메시지 송신 코어의 읽기/쓰기 인터페이스를 제공하는 버스 어댑터 모듈을 포함하는 코어 간 통신 장치를 제공한다.
상기 코어 간 통신 장치가, 다수의 코어가 동시에 상기 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 사전에 규정된 규칙에 따라 상기 다수의 읽기/쓰기 액세스 요구를 조정하여 상기 다수의 읽기/쓰기 액세스 요구를 차례로 직렬 출력하는 조정모듈을 더 포함하는 것이 바람직하다.
상기 포스트 모듈이, 버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현하는 버스 인터페이스 유닛을 포함하는 것이 바람직하다.
상기 버스 인터페이스 유닛이, 상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 다수의 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기의 상호배제를 실현하는 제1 상호배제유닛, 및/또는 상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기와 메시지 수신 코어의 상기 포스트 모듈로부터의 메시지 읽기의 상호배제를 실현하는 제2 상호배제유닛을 포함하는 것이 바람직하다.
상기 버스 인터페이스 유닛이, 상기 메시지 송신 코어가 상기 포스트 모듈에 메시지 쓰기를 수행한 후, 혹은 상기 메시지 수신 코어가 상기 포스트 모듈로부터 메시지 읽기를 수행한 후, 상기 버스 에러 피드백 레지스터의 상태 변경을 트리거하는 트리거 서브유닛을 더 포함하는 것이 바람직하다.
상기 포스트 모듈이 메시지 액세스 어드레스에 근거하여 상기 메시지를 기억하는 기억유닛을 포함하는 것이 바람직하다.
상기 포스트 모듈이 중단 요구를 통하여 상기 메시지 수신 코어에 메시지를 수신하도록 통지하는 통지유닛을 포함하는 것이 바람직하다.
본 발명의 다른 일 측면에 따르면, 포스트 모듈이 버스 어댑터 모듈을 통하여 메시지 송신 코어로부터 송신된 메시지를 수신하고, 상기 포스트 모듈이 메시지 수신 코어로 중단 요구를 송신하는 단계를 포함하고, 상기 메시지 수신 코어가 상기 중단 요구에 근거하여 상기 메시지 읽기를 수행하는 코어 간 통신 방법을 제공한다.
상기 방법이, 다수의 코어가 동시에 상기 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 사전에 규정된 규칙에 따라 상기 다수의 읽기/쓰기 액세스 요구를 조정하여 상기 다수의 읽기/쓰기 액세스 요구를 차례로 직렬 출력하는 단계를 더 포함하는 것이 바람직하다.
다수의 코어가 동시에 상기 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현하는 것이 바람직하다.
버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현하는 단계가, 상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 다수의 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기의 상호배제를 실현하고, 및/또는 상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기와 메시지 수신 코어의 상기 포스트 모듈로부터의 메시지 읽기의 상호배제를 실현하는 단계를 포함하는 것이 바람직하다.
상기 메시지 송신 코어가 상기 포스트 모듈에 메시지 쓰기를 수행한 후, 혹은 상기 메시지 수신 코어가 상기 포스트 모듈로부터 메시지 읽기를 수행한 후, 상기 버스 에러 피드백 레지스터의 상태 변경을 트리거하는 것이 바람직하다.
상기 메시지 송신 코어가 상기 포스트 모듈에 메시지 쓰기를 수행한 후, 상기 포스트 모듈이 상기 메시지 송신 코어로 제1 응답 메시지를 송신하고, 상기 메시지 송신 코어는 상기 제1 응답 메시지에 근거하여 상기 포스트 모듈로의 메시지 쓰기에 성공하였다고 판단하고, 및/또는 상기 메시지 수신 코어가 상기 포스트 모듈로부터 메시지 읽기를 수행한 후, 상기 포스트 모듈이 상기 메시지 수신 코어로 제2 응답 메시지를 송신하고 상기 메시지 수신 코어가 상기 제2 응답 메시지에 근거하여 메시지 읽기에 성공하였다고 판단하는 것이 바람직하다.
상기 메시지 수신 코어가 상기 메시지 읽기를 수행한 후, 상기 포스트 모듈이 상기 중단 요구를 삭제하는 단계를 더 포함하는 것이 바람직하다.
본 발명의 다른 일 측면에 따르면, 포스트 모듈에 위치하고 버스 어댑터 모듈을 통하여 메시지 송신 코어로부터 송신된 메시지를 수신하는 수신유닛과, 상기 포스트 모듈에 위치하고 메시지 수신 코어로 중단 요구를 송신하는 송신유닛을 포함하고, 상기 메시지 수신 코어가 상기 중단 요구에 근거하여 상기 메시지 읽기를 수행하는 코어 간 통신 장치를 제공한다.
본 발명에 의하면, 메시지 송신 코어로부터 메시지 수신 코어로 송신되는 메시지를 기억하고 상기 메시지 수신 코어에 상기 메시지 읽기를 수행하도록 통지하는 포스트 모듈과, 통신을 수행하는 상기 메시지 수신 코어와 메시지 송신 코어 및 상기 포스트 모듈 사이에 연결되어 상기 포스트 모듈과 상기 메시지 수신 코어 및 상기 메시지 송신 코어의 읽기/쓰기 인터페이스를 제공하는 버스 어댑터 모듈을 포함함으로써 기존 기술에 있어서 코어 간 통신 장치 및 방법에 존재하는 복잡하고 실시간성이 부족하며 멀티 코어를 응용할 경우 확장가능성이 부족한 문제를 해결하고 코어 간 통신의 복잡도를 대폭 하강시키고 통신 지연을 낮추며 우수한 확장가능성 및 축소가능성의 효과를 실현할 수 있다.
도면은 본 발명에 대한 이해를 돕기 위한 것으로 본 발명의 명세서의 일부분이고 본 발명의 실시예와 본 발명을 해석하기 위한 것으로 본 발명을 한정하는 것이 아니다.
도 1은 본 발명의 실시예에 따른 코어 간 통신 장치의 구조를 나타낸 블록도;
도 2는 본 발명의 실시예에 따른 코어 간 통신 장치의 바람직한 구조를 나타낸 블록도;
도 3은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12)의 바람직한 구조를 나타낸 블록도 1;
도 4는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12) 중의 버스 인터페이스 유닛(32)의 바람직한 구조를 나타낸 블록도;
도 5는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 버스 인터페이스 유닛(32)의 바람직한 구조를 나타낸 블록도;
도 6은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12)의 바람직한 구조를 나타낸 블록도 2;
도 7은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12)의 바람직한 구조를 나타낸 블록도 3;
도 8은 본 발명의 실시예에 따른 코어 간 통신 방법을 나타낸 흐름도;
도 9는 본 발명의 실시예에 따른 코어 간 통신 장치의 구조를 나타낸 블록도;
도 10은 본 발명의 실시예에 따른 멀티 코어 칩의 코어 간 통신 장치의 구조를 나타낸 블록도;
도 11은 본 발명의 실시예에 따른 코어 간 통신 방법을 나타낸 흐름도;
도 12는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈의 구조를 나타낸 블록도;
도 13은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 버스 어댑터 모듈의 구조를 나타낸 블록도;
도 14는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 조정모듈의 구조를 나타낸 블록도.
아래 도면을 참조하고 실시예를 결합하여 본 발명을 상세하게 설명한다. 여기서, 상호 충돌되지 않는 상황 하에서 본 발명중의 실시예 및 실시예에 기재된 특징을 상호 결합할 수 있다.
본 실시예에 있어서 코어 간 통신 장치를 제공하는데, 도 1은 본 발명의 실시예에 따른 코어 간 통신 장치의 구조를 나타낸 블록도이고, 도 1에 도시한 바와 같이 상기 코어 간 통신 장치는 포스트 모듈(12)과, 버스 어댑터 모듈(14)을 포함하고, 아래 상기 장치를 설명한다.
포스트 모듈(12)은 메시지 송신 코어로부터 메시지 수신 코어로 송신되는 메시지를 기억하고 메시지 수신 코어에 그 메시지 읽기를 수행하도록 통지하고, 버스 어댑터 모듈(14)은 상기 포스트 모듈(12)에 연결되고 포스트 모듈과 통신을 수행하는 메시지 수신 코어 및 메시지 송신 코어 사이에 위치하며 포스트 모듈과 메시지 수신 코어 및 메시지 송신 코어의 읽기/쓰기 인터페이스를 제공한다.
상기 코어 간 통신 장치에 의하면, 포스트 모듈과, 메시지 수신 코어와 메시지 송신 코어 사이에 연결되는 버스 어댑터 모듈을 포함하는 구조를 구비하여 관련기술에 있어서의 공유 메모리를 사용하는 방식 혹은 전용 중단 협력 공유 메모리를 사용하는 방식에 있어서 많은 소프트웨어의 교환이 필요로 되어 코어 간 통신 프로세스가 복잡하고 효율이 낮으며 융통성이 부족한 문제가 존재하는 경우에 비하여, 포스트 모듈과 버스 어댑터 모듈로 구성되는 간단한 코어 간 통신 장치를 구성하여 코어 간 통신 장치 자신이 메시지 읽기/쓰기 액세스 및 메시지 읽기/쓰기 액세스에의 응답을 피드백함으로써 코어 간 통신의 복잡도를 대폭 하강시키고 통신 지연을 낮추며 모듈 추가만을 통하여 실현할 수 있고 확장가능성 및 축소가능성을 실현할 수 있다.
도 2는 본 발명의 실시예에 따른 코어 간 통신 장치의 바람직한 구조를 나타낸 블록도로, 도 2에 도시한 바와 같이 상기 장치는 도 1에 도시한 모든 모듈을 포함하는 외 조정모듈(22)을 더 포함하고, 조정모듈(22)은 포스트 모듈(12)과 버스 어댑터 모듈(14) 사이에 연결되어 다수의 코어가 동시에 포스트 모듈에 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신할 경우 사전에 규정된 규칙에 따라 상기 다수의 읽기/쓰기 액세스 요구를 조정하여 다수의 읽기/쓰기 액세스 요구를 차례로 직렬 출력한다.
도 3은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12)의 바람직한 구조를 나타낸 블록도 1로, 도 3에 도시한 바와 같이 포스트 모듈(12)은 버스 인터페이스 유닛(32)을 포함하고, 버스 인터페이스 유닛(32)은 버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현한다.
도 4는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12) 중의 버스 인터페이스 유닛(32)의 바람직한 구조를 나타낸 블록도로, 도 4에 도시한 바와 같이 버스 인터페이스 유닛(32)은 제1 상호배제유닛(42) 및/또는 제2 상호배제유닛(44)을 포함하고 아래 바람직한 버스 인터페이스 유닛을 설명한다.
제1 상호배제유닛(42)은 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 다수의 메시지 송신 코어의 포스트 모듈로의 메시지 쓰기의 상호배제를 실현하고, 및/또는 제2 상호배제유닛(44)은 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 메시지 송신 코어의 포스트 모듈로의 메시지 쓰기와 메시지 수신 코어의 포스트 모듈로부터의 메시지 읽기와의 상호배제를 실현한다.
도 5는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 버스 인터페이스 유닛(32)의 바람직한 구조를 나타낸 블록도로, 도 5에 도시한 바와 같이 버스 인터페이스 유닛(32)은 트리거 서브유닛(52)을 포함하고 트리거 서브유닛(52)은 메시지 송신 코어가 포스트 모듈에 메시지 쓰기를 수행한 후, 혹은 메시지 수신 코어가 포스트 모듈로부터 메시지 읽기를 수행한 후, 버스 에러 피드백 레지스터의 상태 변경을 트리거한다.
도 6은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12)의 바람직한 구조를 나타낸 블록도면 2로, 도 6에 도시한 바와 같이 포스트 모듈(12)은 기억유닛(62)을 포함하고 기억유닛(62)은 메시지 액세스 어드레스에 근거하여 상기 메시지를 기억한다.
도 7은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈(12)의 바람직한 구조를 나타낸 블록도 3으로, 도 7에 도시한 바와 같이 포스트 모듈(12)은 중단 요구를 통하여 상기 메시지 수신 코어에 메시지를 수신하도록 통지하는 통지유닛(72)을 포함한다.
본 실시예에 있어서 또한 코어 간 통신 방법을 제공하는데, 도 8은 본 발명의 실시예에 따른 코어 간 통신 방법을 나타낸 흐름도이고, 도 8에 도시한 바와 같이 하기 단계를 포함한다.
포스트 모듈이 메시지 송신 코어로부터 송신되는 메시지를 버스 어댑터 모듈을 통하여 수신한다(단계 S802).
포스트 모듈이 메시지 수신 코어로 중단 요구를 송신하고, 메시지 수신 코어는 상기 중단 요구에 근거하여 상기 메시지 읽기를 수행한다(단계 S804).
상기 단계에 의하면, 포스트 모듈과 버스 어댑터 모듈의 조합을 통하여 코어 간 통신을 실현하여 관련기술에 있어서의 공유 메모리를 이용한 방식 혹은 전용 중단 협력 공유 메모리를 이용한 방식에 있어서 많은 소프트웨어의 교환이 필요로 되어 코어 간 통신단계가 복잡하고 효율이 낮으며 융통성이 부족한 문제가 존재하는 경우에 비하여 프로세스가 간단하고 메시지 읽기/쓰기의 액세스 자체로 코어 간 통신을 실현할 수 있으므로 코어 간 통신의 복잡도를 대폭 하강시키고 코어 간 통신의 효율을 일정하게 향상시킬 수 있다.
다수의 코어가 동시에 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 사전에 규정된 규칙에 따라 다수의 읽기/쓰기 액세스 요구를 조정하고, 상기 다수의 읽기/쓰기 액세스 요구를 차례로 직렬 출력하는 것이 바람직하다. 여기서, 상기 다수의 코어는 다수의 메시지 송신 코어일 수 있고, 다수의 메시지 수신 코어일 수도 있으며 두 가지가 혼합된 것일 수도 있다. 읽기/쓰기 액세스를 수행하기 전에, 우선 읽기/쓰기 액세스 요구에 조정 처리를 수행하여 코어 간 통신의 혼란을 피하고 조정모듈은 구체적인 코어 간 통신을 수행하는 다수의 코어 수량에 근거하여 융통성 있게 선택할 수 있으며, 예를 들어 통신을 수행하는 코어 수량이 적으면 이용하지 않고 코어 수량이 많으면 하나 혹은 다수의 조정모듈을 이용하여 처리를 수행할 수 있다.
다수의 코어가 동시에 포스트 모듈에 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신할 경우, 버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현한다. 코어 간 통신을 수행하는 버스 에러 피드백 레지스터에 의하여 메시지 읽기/쓰기의 상호배제를 실현함으로써 기존 기술에 있어서 상호배제 기능을 실현하기 위하여 기타 상호배제 장치와 기타 상호배제 작업 단계를 추가하는 경우에 비하여 코어 간 통신 장치와 외부 구조와의 교환을 절감시키고 자원의 소비를 효율적으로 절감시킬 수 있다.
여기서, 코어 간 통신과정에 발생하기 쉬운 이상 상황에 대하여, 버스 에러 피드백 레지스터를 다중화하면 메시지 읽기/쓰기의 상호배제를 실현할 수 있고, 예를 들어, 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 다수의 메시지 송신 코어의 포스트 모듈로의 메시지 쓰기의 상호배제를 실현할 수 있고, 혹은 예를 들어, 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 메시지 송신 코어의 포스트 모듈로의 메시지 쓰기와 메시지 수신 코어의 포스트 모듈로부터의 메시지 읽기와의 상호배제를 실현할 수 있다. 또한, 두가지를 결합시킬 수도 있다. 조작할 경우, 메시지 송신 코어가 포스트 모듈에 메시지 쓰기를 수행한 후, 혹은 메시지 수신 코어가 포스트 모듈로부터 메시지 읽기를 수행한 후, 버스 에러 피드백 레지스터의 상태 변경을 트리거함으로써 포스트 모듈의 읽기/쓰기 상태를 변경시켜 메시지의 분실을 피하고 읽기/쓰기의 순차성을 실현하며 메시지의 읽기/쓰기의 확실성을 확보할 수 있다.
메시지 송신 코어가 포스트 모듈에 메시지 쓰기를 수행한 후, 포스트 모듈이 메시지 송신 코어로 제1 응답 메시지를 송신하고 메시지 송신 코어가 상기 제1 응답 메시지에 근거하여 포스트 모듈로의 메시지 쓰기에 성공하였다고 판단하고, 및/또는 메시지 수신 코어가 포스트 모듈로부터 메시지 읽기를 수행한 후, 포스트 모듈이 메시지 수신 코어로 제2 응답 메시지를 송신하고 메시지 수신 코어가 제2 응답 메시지에 근거하여 메시지 읽기에 성공하였다고 판단하는 것이 바람직하다. 메시지 수신 코어가 메시지 읽기를 수행하였다고 판단한 후, 포스트 모듈은 중단 요구를 자동적으로 삭제한다. 따라서 계속하여 새로운 메시지 쓰기를 수행할 경우, 새로운 중단 요구를 발생할 수 있고 메시지의 읽기와 쓰기의 대응성을 확보할 수 있을 뿐만 아니라 수신 코어가 중단 요구를 삭제하는 작업을 수행할 필요가 없게 된다.
본 실시예에 있어서 또한 코어 간 통신 장치를 제공하는데 이 장치는 상기 실시예 및 바람직한 실시형태를 실현하기 위한 것으로 이미 설명한 부분에 대한 설명은 생략한다. 아래 설명에서 이용되는 용어"모듈"은 예정된 기능을 실현할 수 있는 소프트웨어 및/또는 하드웨어의 조합이다. 하기 실시예에서 설명하는 장치를 하드웨어로 실현하는 것이 바람직하지만 소프트웨어 혹은 소프트웨어와 하드웨어의 조합으로 실현할 수도 있다.
도 9는 본 발명의 실시예에 따른 코어 간 통신 장치의 구조를 나타낸 블록도로, 도 9에 도시한 바와 같이 상기 장치는 포스트 모듈(90)에 위치하고 수신유닛(92)과 송신유닛(94)을 포함하고 아래 상세하게 설명한다.
수신유닛(92)은 메시지 송신 코어로부터 송신되는 메시지를 버스 어댑터 모듈을 통하여 수신하고, 송신유닛(94)은 상기 수신유닛(92)에 연결되어 메시지 수신 코어로 중단 요구를 송신하며, 메시지 수신 코어는 상기 중단 요구에 근거하여 상기 메시지 읽기를 수행한다.
관련기술에 있어서의 코어 간 통신 장치의 복잡도가 높고 실시간성이 부족하며 멀티 코어를 응용할 경우에 확장가능성이 부족한등 문제를 해결하기 위하여 본 실시예에 있어서, 새로운 코어 간 통신 장치 ICN(Inter-core Communication Network, ICN으로 약칭)를 제공하는데(설명의 편의를 위하여 코어 간 통신 장치를 ICN으로 약칭), 코어 간 통신 장치 ICN은 임의 수량의 포스트 모듈(Postbox)(상기 포스트 모듈(12)과 동일한 것임)과, 버스 어댑터 모듈(Bus Adapter, BA로 약칭)(상기 버스 어댑터 모듈(14)과 동일한 것임)과, 조정모듈(Arbiter)(상기 조정모듈(22)과 동일한 것임)을 포함하고. ICN은 층 구조를 구비하여 코어 수량의 증가 및 이종 코어 상황에 응용 가능하고, 도 10은 본 발명의 실시예에 따른 멀티 코어 칩의 코어 간 통신 장치의 구조를 나타낸 블록도로, 도 10에 도시한 바와 같이 포스트 모듈과, 버스 어댑터 모듈과, 조정모듈을 포함하고, 아래 상세하게 설명한다.
(1) 포스트 모듈(Postbox)
수신 코어가 판독하도록 메시지를 한 위치에 일시적으로 기억하여야 하고, 또한 수신 코어에 메시지의 도착을 통지할 수 있는 확실한 메커니즘이 필요하며, 본 실시예에서 제공하는 ICN은 약간의 Postbox 모듈을 포함한다. 상기 요구를 만족시키기 위하여 포스트 모듈은 상호배제하는 메시지의 읽기/쓰기, 메시지의 기억, 통지 중단 요구의 발생 기능을 제공한다.
포스트 모듈의 상기 기능을 실현하기 위하여 Postbox 모듈은 약간의 버스 인터페이스 유닛(Bus Interface Unit, BIU로 약칭)과, 약간의 메시지 기억유닛(RegFiles)과, 약간의 중단 발생유닛(IntGen)을 포함한다. 아래 포스트 모듈에 포함된 각 유닛을 설명한다.
BIU 유닛: 메시지의 읽기/쓰기의 상호배제 액세스 기능을 실현한다. BIU 유닛은 한 메시지 수신 코어가 메시지 읽기를 수행하는 통로와, 약간의 메시지 송신 코어가 메시지 쓰기를 수행하는 통로를 제공한다. BIU 유닛은 버스 에러(Error) 피드백 레지스터를 다중화함으로써 락을 실현하여 동일한 자원(즉, 하기에서 설명하는 RegFiles)의 상호배제 액세스 기능을 실현한다.
RegFiles 유닛: 약간의 유닛에 메시지 기억 레지스터 공간을 제공한다. 각 Postbox는 메시지 송신 통로 수량에 대응되는 수량의 메시지 기억 레지스터를 구비한다. 동시에 응용의 수요에 근거하여 결정된 통신량에 근거하여 더욱 많은 메시지 레지스터를 설치할 수 있고 서로 다른 메시지 레지스터는 어드레스에 근거하여 구별된다.
IntGen 유닛: 메시지가 도착하였을 경우 중단 요구를 발생하여 수신 코어에 통지한다. 수신 코어가 메시지 읽기를 수행하였음을 검출한 후 중단 요구를 자동적으로 삭제한다. 이와 같이 기존의 코어 간 통신 방식중의 메시지를 읽기 위하여 중단 삭제 레지스터를 별도로 설치하는 작업은 수행할 필요가 없다. 여기서, 각 중단선을 하나 혹은 1세트의 RegFiles 유닛에 번들링하여 수신 코어가 중단 요구 번호에 따라 특정된 ISR(중단 서비스 프로그램)으로 이행하여 대응되는 Regfiles 중의 메시지 읽기를 수행할 수 있다.
여기서, 본 실시예의 코어 간 통신 장치 중의 Postbox는 관련기술에서 구비하지 못한 상호배제 액세스 보호 기능을 구비한다.
기존의 멀티 코어 통신 방식에 있어서, 멀티 코어가 동일한 코어 간 통신 자원을 점용할 경우, 상호배제락 혹은 스핀 락을 통하여 상호배제 작업을 수행하여야 한다. 이에 비하여 Postbox는 버스 Error 피드백 레지스터를 다중화함으로써 락 레지스터를 실현하여 상호배제 액세스 기능을 완성하고 그 작업은 하기와 같이 실현된다:
BIU가 Error 정보 피드백 레지스터를 다중화함으로써 락 레지스터를 실현한다. 락 레지스터가 0이면 락이 릴리스 상태임을 표시하고 락 레지스터가 1이면 락이 점용 상태임을 표시한다. 정상적인 상황 하에서 송신 코어가 Postbox RegFiles를 기록한 후, 락 레지스터는 자동적으로 1로 된다. 그 다음, Postbox가 중단을 발생하여 수신 코어에 통지하면 수신 코어는 Postbox RegFiles 읽기 작업을 수행하고 락 레지스터는 자동적으로 0으로 된다.
첫 번째 이상이 발생하였을 경우, 즉, 수신 코어가 Postbox RegFiles 읽기 작업을 수행하기 전에, 기타 송신 코어가 Regfiles에 쓰기 작업을 수행하려고 하면, 이때 Regfiles 중의 메시지가 수정되었으면 기존의 메시지를 분실하게 된다. 하지만, 본 실시예의 Postbox 중의 락 레지스터는 1이고 락이 점용 상태임을 표시하므로 송신 메시지 쓰기 작업에 성공하지 못하였고, 즉, Postbox RegFiles의 정보가 수정되지 않았다. 동시에 락 레지스터 정보1은 Error 응답 정보로서 송신 코어에 송신되어 이상 작업을 수행하였음을 통지한다. 코어는 이상 처리 단계로 이행하고 즉, 약간의 명령 주기를 대기한 후 액세스를 시작한다. 수신 코어가 정상적인 Postbox RegFiles 읽기 작업을 수행한 후, 락 레지스터는 0이 되고, 즉, 락이 릴리스되고 기타 송신 코어가 정상적인 쓰기 작업을 수행할 수 있게 된다.
두 번째 이상이 발생하였을 경우, 즉, 수신 코어가 메시지 읽기를 수행할 때 기타 코어가 메시지 쓰기 작업을 수행할 경우, BIU는 강제적으로 읽기를 수행한 후에 쓰기를 수행하는 순서로 수행하도록 하고, 즉, 우선 메시지 읽기를 수행한 후 새로운 메시지 쓰기를 수행함으로써 코어 간 통신의 확실성을 확보할 수 있다.
(2) 버스 어댑터 모듈(BA,Bus Adapter):
통신을 수행하는 코어 간의 버스 프로토콜이 서로 다르고 코어가 액세스하려는 Postbox가 많으므로 본 실시예의 ICN은 하나의 코어 읽기/쓰기 인터페이스와 약간의 Postbox 읽기/쓰기 인터페이스 등 약간의 BA 모듈을 포함하고, BA 모듈에 의하여 하기 두가지 기능을 실현한다:
A, 서로 다른 코어의 인터페이스 버스 프로토콜을 ICN 내부의 데이터 읽기/쓰기 프로토콜에 대응시킨다.
B, 버스 액세스의 Postbox 어드레스에 근거하여 어드레스 여과를 수행하고, 즉, 유일한 타켓 Postbox의 내부 인터페이스에만 유효 데이터 및 유효 제어 신호가 나타나도록 한다.
이와 같이 BA 모듈에 의하여 외부의 복잡한 버스 프로토콜을 마스크하고 내부에서 간단하고 고속의 데이터 읽기/쓰기 프로토콜만을 이용할 수 있고 코어 간 통신 장치의 하드웨어 지연을 대폭 하강시킬 수 있다.
(3) 조정모듈(Arbiter):
한 Cluster의 내부에 다수의 코어가 존재하고 동시에 한 Postbox로 메시지 읽기/쓰기 액세스를 시작할 경우 충돌이 발생하게 된다. 따라서 본 실시예 중의 ICN은 약간의 메시지 입력 인터페이스와 한 메시지 출력 인터페이스를 포함한 약간의 Arbiter 모듈을 포함하여 하기 기능을 제공한다: 특정된 원칙에 따라 약간의 데이터 통로의 읽기/쓰기 액세스 요구를 조정하고, 즉, 동시에 도착한 메시지 읽기/쓰기 액세스 요구를 직렬화한다.
여기서, Arbiter는 동시에 조정모듈에 도착한 메시지 읽기/쓰기 액세스에 순차적으로 조정을 수행하고, 즉, 다수의 동시에 도착한 메시지 읽기/쓰기 액세스를 차례로 직렬 출력한다. 혹은 우선위 순서에 따라 동시에 조정모듈에 도착한 메시지 읽기/쓰기 액세스를 조정할 수 있고, 즉, 다수의 동시에 도착한 메시지 읽기/쓰기 액세스 요구를 우선위 순서가 높은 것으로부터 낮은 것으로 차례로 직렬 출력한다.
본 실시예에 있어서 또한 코어 간 통신 방법을 제공하는데, 도 11은 본 발명의 실시예에 따른 코어 간 통신 방법을 나타낸 흐름도로, 도 11에 도시한 바와 같이 상기 방법은 하기 단계를 포함한다.
메시지 송신 코어가 BA를 통하여 메시지 쓰기 작업을 수행하고, 또한, BA로부터 송신된 정보에 근거하여 메시지의 송신에 성공하였는가를 판단한다(단계 S1102). 각 코어가 수행한 메시지의 쓰기 작업은 동기되는 것이 아니고 단독으로 수행되며 서로 영향을 주지 않는다. BA로부터 송신되는 Error Response 정보가 무효이면 메시지의 송신에 성공하였고 그렇지 않으면 Postbox가 점용되었음을 표시하고 메시지 쓰기에 성공하지 못하였다. 이때 송신 코어는 메시지의 송신에 성공할 때까지 약간의 주기 후에 메시지 쓰기 작업을 재차 수행할 수 있다.
송신 코어가 송신한 메시지는 Arbiter를 통하여 혹은 Arbiter를 통과하지 않고 특정된 어드레스를 가지는 Postbox로 송신되고, Postbox에서 중단 요구(int)를 발생하여 메시지 수신 코어로 송신한다(단계 S1104).
수신 코어가 중단을 수신하고 메시지 읽기 작업을 수행한다(단계 S1106).
수신 코어의 메시지 읽기 작업 요구 신호는 ICN로 송신되고 중단 요구를 발생한 포스트 모듈(Postbox)까지 송신되며, 또한, 송신된 메시지를 읽은 후 Postbox의 중단 요구는 자동적으로 삭제된다(단계 S1108).
본 발명에 제공되는 실시예 및 바람직한 실시형태는 원래부터 상호배제 기능을 구비한다. 즉, 코어 간 통신을 수행하기 전에 별도의 락 요청 및 락 릴리스 작업을 수행할 필요가 없고 상호배제를 완전히 ICN 자신의 읽기/쓰기 액세스와 ERROR 송신 메커니즘을 통하여 실현함으로써 코어 간 통신의 복잡성을 대폭 하강시키고 통신 지연을 낮출 수 있다. 그리고, 어떠한 초기화 단계도 수행할 필요가 없고 ICN의 전원을 투입하여 리셋한 후 즉시로 정상적인 동작을 수행할 수 있다. 또한, 메시지 읽기/쓰기 요구가 ICN에 송신된 후 ICN자신에 의하여 완전히 관리되어 자동화 관리를 실현할 뿐만 아니라 자원을 대폭 절약할 수 있다.
분포식 구조를 이용함으로써 통신량을 특정된 영역의 대역폭에 제한하여 기타 통신 영역에 영향을 주지 않고 각 조정모듈의 조정 오버헤드를 하강시키고 멀티 코어 전체의 총 통신 지연을 낮출 수 있다.
코어 수량이 대폭 증가될 경우, 대응되는 수량의 3가지 모듈과 대응되는 연결선만을 추가하면 되고, 또한, 연결 방식 역시 필요에 따라 융통성 있게 수행할 수 있고, ICN의 기존의 구조 특징 및 소프트웨어 작업 단계에 영향을 주지 않으므로 우수한 확장가능성 및 축소가능성을 가진다.
아래 도 10을 참조하여 본 발명의 실시예를 더욱 구체적으로 설명한다. 여기서, 멀티 코어는 실시예에 나타낸 CPU(중앙 처리 장치)와 DSP(디지털 신호 처리 장치)에 한정되지 않는다.
ICN은 전반적으로 3층 구조이고 멀티 코어(합계 10개 코어)와 이종 코어(6DSP+4ARM)의 응용의 수요를 만족시킬 수 있다. ICN은 전반적으로 15개 Postbox와, 10개 BA와, 4개 Arbiter를 포함하고, 그 구조는 도 10에 도시한 바와 같다. 3개 DSP에 의하여 한 Cluster를 구성한다. 2개 CPU에 의하여 한 Cluster를 구성하고 그의 데이터량은 적고 데이터 통로는 조정기를 통과하지 않는다. 이와 같이 ICN은 코어의 수량 및 통신량에 근거하여 3가지 부품의 수량 및 연결 방식을 선택할 수 있고(예를 들어, 본 실시예에 있어서, 조정기를 통과하지 않고 직접 Postbox에 연결), ICN의 전반 구조의 특징 및 통신 프로세스에 영향을 주지 않으며 확장가능성 및 축소가능성이 우수하다.
담당하는 기능 영역에 근거하여 Postbox는 Local Postbox(로컬 포스트)와 Cross Postbox(교차 포스트)로 나누어 진다. 구체적으로 본 실시예에 있어서, DSP cluster(군) 내부와 DSP cluster(군) 내부와의 코어 간 통신을 담당하는 10개 local Postbox와, DSP cluster와 CPU cluster 사이의 코어 간 통신을 담당하는 한 local Postbox와, DSP cluster 사이의 코어 간 통신을 담당하는 한 Cross Postbox 및/또는 CPU cluster 사이의 코어 간 통신을 담당하는 한 Cross Postbox를 포함한다. 이와 같이 분포식 구조에 의하면, 통신량을 특정된 영역의 대역폭에 제한하여 기타 통신 영역에 영향을 주지 않고 또한, 각 조정모듈의 조정 오버헤드를 절감시키며 멀티 코어 전반의 대역폭의 효율을 증대시키고 멀티 코어 전반의 통신 지연을 낮춘다. 동시에 코어의 수량이 대폭 증가될 경우 한 코어가 수신하는 코어 간 통신 중단 요구가 많아지므로 이때 다수의 Postbox의 중단 요구를 통과시키거나 혹은 논리적으로 합병시키면 코어에 도착하는 코어 간 중단 요구의 수량이 줄게 되고 ICN의 확장가능성을 향상시킬 수 있다.
여기서, ICN에 포함되는 3가지 모듈의 실시방식은 구체적으로 하기와 같다:
(1) 포스트 모듈(Postbox)
수신 코어가 판독하도록 메시지를 한 위치에 일시적으로 기억하여야 하고, 또한 수신 코어에 메시지의 도착을 통지할 수 있는 확실한 메커니즘이 필요하므로 본 발명의 ICN은 약간의 Postbox 모듈을 포함한다. 또한, 하기 기능을 제공한다:
메시지 기억
상호배제하는 메시지 읽기/쓰기
중단 요구의 발생과 통지
도 12는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 포스트 모듈의 구조를 나타낸 블록도로, 도 12에 도시한 바와 같이 포스트 모듈(Postbox)은 약간의 BIU 유닛과, 약간의 RegFiles 유닛과, 약간의 IntGen 유닛을 포함한다. 아래 각 기능유닛을 설명한다:
BIU 유닛:
메시지 읽기/쓰기의 상호배제 액세스 기능을 실현한다. 여기서, BUS0는 Postbox에 소속되는 수신 코어의 메시지 읽기 통로이고, BUS1~n는 송신 코어의 메시지 쓰기 통로이다. BIU 유닛은 버스 Error 피드백 레지스터를 다중화함으로써 한 락을 실현하여 동일한 RegFiles 유닛의 상호배제 액세스 기능을 실현한다.
RegFiles 유닛:
약간의 유닛에 메시지 기억 레지스터 공간을 제공한다. 각 Postbox는 메시지 송신 통로에 대응되는 수량의 메시지 기억 레지스터를 구비한다. 동시에 응용의 수요에 따라 결정된 통신량에 근거하여 더욱 많은 메시지 레지스터를 설치할 수 있고 서로 다른 메시지 레지스터는 어드레스에 근거하여 구별한다.
IntGen 유닛:
메시지가 도착하였을 경우 중단 요구를 발생하여 수신 코어에 통지한다. 수신 코어가 메시지 읽기를 수행하였음을 검출한 후 중단 요구를 자동적으로 삭제한다. 이와 같이 기존의 코어 간 통신 방식과 같이 메시지를 읽기 위하여 중단 삭제 레지스터를 별도로 설치하는 작업은 수행할 필요가 없다. 여기서, 각 중단선을 하나 혹은 1세트의 RegFiles 유닛에 번들링하여 수신 코어가 중단 요구 번호에 따라 특정된 ISR(중단 서비스 프로그램)으로 이행하여 대응되는 Regfiles 중의 메시지 읽기를 수행할 수 있다.
여기서, 본 코어 간 통신 장치 중의 Postbox는 기타 기술방안에서 구비하지 못한 상호배제 액세스 보호 기능을 구비한다.
기존의 멀티 코어 통신 방식에 있어서, 멀티 코어가 동일한 코어 간 통신 자원을 점용할 경우, 상호배제락 혹은 스핀 락을 통하여 상호배제 작업을 수행하여야 한다. 이에 비하여 Postbox는 버스 Error 피드백 레지스터를 다중화함으로써 락 레지스터를 실현하여 상호배제 액세스 기능을 완성하고 그 조작은 하기와 같이 실현된다:
BIU가 Error 정보 피드백 레지스터를 다중화함으로써 락 레지스터를 실현한다. 락 레지스터가 0이면 락이 릴리스 상태임을 표시하고, 락 레지스터가 1이면 락이 점용 상태임을 표시한다. 정상적인 상황 하에서 송신 코어가 Postbox RegFiles를 기록한 후, 락 레지스터는 자동적으로 1로 된다. 그 다음, Postbox가 중단을 발생하여 수신 코어에 통지하면 수신 코어는 Postbox RegFiles 읽기 작업을 수행하고 락 레지스터는 자동적으로 0으로 된다.
첫 번째 이상이 발생하였을 경우, 즉, 수신 코어가 Postbox RegFiles 읽기 작업을 수행하기 전에, 기타 송신 코어가 Regfiles에 쓰기 작업을 수행하려고 하면, 이때 Regfiles 중의 메시지가 수정되었으면 기존의 메시지를 분실하게 된다. 하지만, 본 실시예의 Postbox 중의 락 레지스터는 1이고 락이 점용 상태임을 표시하므로 송신 메시지 쓰기 작업에 성공하지 못하였고, 즉, Postbox RegFiles의 정보가 수정되지 않았다. 동시에 락 레지스터 정보1은 Error 응답 정보로서 송신 코어에 송신되어 이상 작업을 수행하였음을 통지한다. 코어는 이상 처리 단계로 이행하고 즉, 약간의 명령 주기를 대기한 후 액세스를 시작한다. 수신 코어가 정상적인 Postbox RegFiles 읽기 작업을 수행한 후, 락 레지스터는 0이 되고, 즉, 락이 릴리스되고 기타 송신 코어가 정상적인 쓰기 작업을 수행할 수 있게 된다.
두 번째 이상이 발생하였을 경우, 즉, 수신 코어가 메시지 읽기를 수행할 때 기타 코어가 메시지 쓰기 작업을 수행할 경우, BIU는 강제적으로 읽기를 수행한 후에 쓰기를 수행하는 순서로 수행하도록 하고, 즉, 우선 메시지 읽기를 수행한 후 새로운 메시지 쓰기를 수행함으로써 코어 간 통신의 확실성을 확보할 수 있다.
실현할 경우, 락 레지스터가 Error 정보를 발생하는 레지스터이고 즉, 별도로 상호배제락, 신호량과 같은 상호배제 기능유닛 등을 추가할 필요가 없고, 락 요청 작업에 성공하였으면 메시지의 송신 작업에 성공한 것에 대응되고, 락의 릴리스에 성공하였으면 메시지 읽기에 성공한 것에 대응되며 메시지의 락 요청에 실패하였으면 버스가 Error 응답을 피드백하고, 즉, 상호배제 처리 메커니즘과 버스 공동의 읽기/쓰기 메커니즘이 일치하고 기타 상호배제 작업 주기를 추가할 필요가 없고 프로그래밍의 복잡성 및 통신 지연을 대폭 하강시킨다. 따라서 상기 실시예 및 바람직한 실시형태에 따른 장치 및 방법에 의하면, 코어 간 통신중의 자원의 상호배제 액세스 보호를 실현할 수 있다.
(2) 버스 어댑터 모듈(BA,Bus Adapter):
통신을 수행하는 코어 간의 버스 프로토콜이 서로 다르고 코어가 액세스하려는 Postbox가 많으므로 본 실시예 중의 ICN은 한 코어 읽기/쓰기 인터페이스와 약간의 Postbox 읽기/쓰기 인터페이스를 포함한 약간의 BA 모듈을 포함하고, BA 모듈에 의하여 하기 두가지 기능을 실현한다:
A, 서로 다른 코어의 인터페이스 버스 프로토콜을 ICN 내부의 데이터 읽기/쓰기 프로토콜에 대응시킨다.
B, 버스 액세스의 Postbox 어드레스에 근거하여 어드레스 여과를 수행하고, 즉, 유일한 타켓 Postbox의 내부 인터페이스에만 유효 데이터 및 유효 제어 신호가 나타나도록 한다.
이와 같이 BA 모듈에 의하여 외부의 복잡한 버스 프로토콜을 마스크하고, 내부에서 간단하고 고속의 데이터 읽기/쓰기 프로토콜만을 이용할 수 있고 코어 간 통신 장치의 하드웨어 지연을 대폭 낮출 수 있다.
본 실시예에 있어서, 내부와 외부에 있어서 모두 간단한 보강형 외부설치 버스(Advanced Peripheral Bus, APB로 약칭) 프로토콜을 이용하고, 도 13은 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 버스 어댑터 모듈의 구조를 나타낸 블록도로, 도 13에 도시한 바와 같이 BA는 APB의 액세스 어드레스와 Postbox의 레지스터 어드레스가 대응되는가에 근거하여 서로 다른 APB 선택 신호를 출력함으로써 서로 다른 메시지 통로를 선택한다, APB 인터페이스를 통하여 판독과 기록을 수행할 수 있고 코어는 APB 인터페이스를 통하여 Postbox에 메시지 읽기/쓰기 작업을 수행한다.
(3) 조정모듈(Arbiter):
한 Cluster의 내부에 다수의 코어가 존재하고 동시에 한 Postbox로 메시지 읽기/쓰기 액세스를 시작할 경우 충돌이 발생하게 된다. 따라서 본 발명중의 ICN은 약간의 Arbiter 모듈을 포함하고, 도 14는 본 발명의 실시예에 따른 코어 간 통신 장치에 있어서의 조정모듈의 구조를 나타낸 블록도이고, 도 14에 도시한 바와 같이 조정모듈은 약간의 메시지 입력 인터페이스와, 한 메시지 출력 인터페이스를 포함한다. 하기 기능을 제공한다: 특정의 원칙에 따라 약간의 데이터 통로의 읽기/쓰기 액세스 요구를 조정하고, 즉, 동시에 도착한 메시지 읽기/쓰기 액세스 요구를 직렬화한다.
여기서, Arbiter는 동시에 조정모듈에 도착한 메시지 읽기/쓰기 액세스에 순차적으로 조정을 수행하고, 즉, 다수의 동시에 도착한 메시지 읽기/쓰기 액세스를 차례로 직렬 출력한다. 즉, 메시지 읽기/쓰기 요구가 있는 서로 다른 데이터 통로 사이에 순차적으로 수행하고, 한번에 하나의 요구가 있는 데이터 통로만을 통과시키고 읽기/쓰기 액세스를 완성한 후 그 다음의 메시지 읽기/쓰기 요구가 있는 데이터 통로를 통과시키며 모든 통로의 메시지 읽기/쓰기 요구를 처리할 때까지 유사하게 수행한다.
이와 동시에 모듈의 동작 모드에 근거하여 상기 조정모듈에 동시에 도착한 메시지 읽기/쓰기 액세스에 우선위 순서에 따라 조정을 수행할 수 있고, 즉, 다수의 동시에 도착한 메시지 읽기/쓰기 액세스 요구를 우선위 순서가 높은 것으로부터 낮은 것으로 차례로 수행할 수 있다.
본 코어 간 통신 장치를 응용한 코어 간 통신 방법은 하기 단계를 포함한다:
메시지 송신 코어가 BA를 통하여 메시지 쓰기 작업을 수행하고 BA로부터 송신된 정보에 근거하여 메시지의 송신에 성공하였는가를 판단한다. 각 코어가 수행하는 메시지의 쓰기 작업은 동기되는 것이 아니고 단독으로 수행되며 서로 영향을 주지 않는다. BA로부터 송신되는 Error Response 정보가 무효이면 메시지의 송신에 성공하였고 그렇지 않으면 Postbox가 점용되었음을 표시하고 메시지 쓰기에 성공하지 못하였다. 이때 송신 코어는 메시지의 송신에 성공할 때까지 약간의 주기 후에 메시지 쓰기 작업을 재차 수행할 수 있다.
약간의 송신 코어의 송신한 메시지는 Arbiter를 통하여 혹은 Arbiter를 통과하지 않고 특정된 어드레스를 가지는 Postbox로 송신되고, Postbox에서 중단 요구를 발생하여 메시지 수신 코어로 송신한다. 통신을 상호 수행하는 코어의 수량이 적으면 메시지 읽기/쓰기를 Arbiter를 통과하지 않고 수행할 수 있다.
수신 코어가 중단을 수신하고 메시지 읽기 작업을 수행한다.
수신 코어의 메시지 읽기 작업 요구 신호는 ICN로 송신되고 중단 요구를 발생한 Postbox로 송신되며, 또한, 송신된 메시지를 읽은 후 Postbox의 중단 요구는 자동적으로 삭제된다(즉, 메시지 읽기를 수행한 후, 대응되는 중단 요구는 자동적으로 삭제된다).
아래 3개 예를 통하여 본 발명의 상기한 코어 간 통신 방법을 설명한다.
A: 통상의 응용에서의 CLUSTER 내부의 메시지 통신 과정:
1, 메시지 송신 코어 DSP2가 타켓 코어 DSP0에 소속되는 Postbox0으로 메시지를 송신한다.
2, Postbox0이 중단 요구를 발생하여 DSP0으로 송신한다.
3, DSP0이 ISR로 이행하여 Postbox 중의 메시지 읽기를 수행한다.
B: 통상의 응용에서 CLUSTER 사이의 메시지 통신과 CLUSTER 내부의 메시지 통신을 동시에 수행하는 과정:
1, DSP cluster0 내부의 메시지 송신 코어 DSP2가 타켓 코어 DSP0에 소속되는 Postbox0으로 메시지를 송신한다. DSP cluster 1의 메시지 송신 코어 DSP3과 4에 DSP cluster0 DSP0으로 송신해야 할 메시지가 있다. 따라서 우선 DSP cluster1 내부의 Arbiter2의 조정을 거쳐 송신 코어 DSP3이 조정권을 획득하였다고 하면 우선 메시지를 DSP CLUSTER0의 Postbox에 쓰고 그 다음 송신 코어 DSP4가 조정권을 획득하여 메시지를 DSP CLUSTER0의 Postbox에 쓴다.
2, DSP CLUSTER0 내부의 Postbox0과 DSP CLUSTER0의 Postbox가 동시에 중단 요구를 발생한다.
3, DSP0 코어가 ISR로 이행하고 소프트웨어가 설정한 우선위 순서에 따라 우선 내부의 Postbox0의 메시지 읽기를 수행한 후 DSP CLUSTER0의 Postbox 중의 메시지 읽기를 수행한다.
C: 상호배제 보호 메커니즘이 효력을 발생할 경우의 CLUSTER 사이의 코어 간 통신 과정:
1. CPU CORE0이 BA6을 통하여 CPU&DSP cross Postbox로 메시지를 송신한다.
2. CPU&DSP cross Postbox가 중단 요구를 발생하여 DSP5로 송신하고 DSP5에 우선위 순서가 더 높은 서비스가 있으므로 중단을 처리하지 않고, 즉, 메시지 읽기를 수행하지 않는다.
3. CPU CORE0이 BA6을 통하여 CPU&DSP cross Postbox로 한 메시지를 또 송신하였지만 ERROR 정보가 송신되었으므로 통신 자원의 락이 릴리스되지 않았음을 표시하고 메시지의 송신에 성공하지 못하였다. CPU CORE0은 대기 주기를 거쳐 메시지 송신 작업을 재차 시작한다.
4. DSP5는 우선위 순서가 높은 서비스를 처리한 후 첫 번째 메시지를 획득한다.
5. CPU CORE0은 성공적으로 두 번째 메시지를 송신하고, 즉, 송신한 ERROR 정보는 무효이다. 그 다음 CPU core0은 성공적으로 두 번째 메시지 읽기를 수행한다. 이와 같이 코어 간 통신을 수행 과정에, 별도의 상호배제 보호 메커니즘을 필요로 하지 않고 코어 간 통신을 확실히 수행할 수 있다.
여기서, 실제의 코어 간 통신에 있어서, 이상 3가지 상황이 존재할 가능성이 있을 뿐만 아니라 더욱 복잡한 통신 상황이 존재할 가능성도 있다.
그리고, 본 발명의 실시예의 코어 간 통신 장치에 포함되는 상기 3개 모듈 및 그 연결관계는 관련기술에 존재하는 기술 과제를 해결하기 위한 키포인트이다. 본 발명의 실시예에 따른 코어 간 통신 방법은 기존 기술과 선명한 차이점이 있는 것이다. 상기 실시예 및 바람직한 실시형태는 원래부터 상호배제 기능을 구비한다. 즉, 코어 간 통신을 수행하기 전에 기타 락 요청 혹은 락 릴리스 작업을 수행할 필요가 없고 상호배제 기능은 완전히 ICN 자신의 읽기/쓰기 액세스와 ERROR 송신 메커니즘을 통하여 실현된다. 그리고, 실시할 경우, 초기화 단계를 수행할 필요가 없고 ICN의 전원을 투입하여 리셋한 후 즉시 정상적인 동작을 수행할 수 있다. 메시지 읽기/쓰기 요구가 ICN에 송신된 후 ICN자신에 의하여 완전히 관리되어 코어 간 통신의 복잡성을 하강시키고 통신 지연을 낮출 수 있다. 코어 간 통신 장치는 분포식 구조를 이용하여 일부의 통신량을 특정된 영역의 대역폭에 제한하여 기타 통신 영역에 영향을 주지 않고 단일 조정모듈의 조정 오버헤드를 절감시키고 멀티 코어 전반의 총 통신 지연을 낮출 수 있다. 코어의 수량이 대폭 증가될 경우, 상기 실시예 및 바람직한 실시형태에 의하면, 대응되는 수량의 3가지 모듈과 대응되는 연결선만을 추가하면 되고 이와 동시에 연결 방식 역시 수요에 따라 선택할 수 있고 ICN의 기존 구조 특징 및 소프트웨어 작업 단계에 영향을 주지 않고 우수한 확장가능성 및 축소가능성을 구비한다.
당업자라면 상기한 본 발명의 각 블록 혹은 각 단계를 범용 계산장치를 통하여 실현할 수 있고 단일 계산장치에 집중시키거나 혹은 다수의 계산장치로 구성된 네트워크에 분포시킬 수 있고, 또한 계산장치가 실행할 수 있는 프로그램 코드로 실현할 수도 있으므로, 기억장치에 기억하여 계산장치에 실행시키거나, 어떤 상황 하에서는 상기 혹은 설명한 단계를 이것과 다른 순서로 실행할 수 있으며 혹은 각각 집적회로 블록으로 만들거나 혹은 그 중의 다수의 블록 혹은 단계를 하나의 집적회로 블록으로 만들어 실현할 수도 있음을 알 수 있다. 따라서 본 발명은 특정된 하드웨어와 소프트웨어의 결합에 한정되지 않는다.
상기한 내용은 본 발명의 바람직한 실시예로, 본 발명을 한정하는 것이 아니다. 당업자라면 본 발명에 여러 가지 변화를 가져올 수 있다. 본 발명의 정신과 원칙을 벗어나지 않는 범위 내에서 수행하는 모든 수정, 동등교체, 개량 등은 본 발명의 보호 범위에 속한다.

Claims (15)

  1. 메시지 송신 코어로부터 메시지 수신 코어로 송신한 메시지를 기억하고, 상기 메시지 수신 코어에 상기 메시지 읽기를 수행하도록 통지하는 포스트 모듈과,
    통신을 수행하는 상기 메시지 수신 코어 및 메시지 송신 코어와 상기 포스트 모듈 사이에 연결되어 상기 포스트 모듈과 상기 메시지 수신 코어 및 상기 메시지 송신 코어의 읽기/쓰기 인터페이스를 제공하는 버스 어댑터 모듈을 포함하는, 코어 간 통신 장치.
  2. 제1항에 있어서,
    다수의 코어가 동시에 상기 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 사전에 규정된 규칙에 따라 상기 다수의 읽기/쓰기 액세스 요구를 조정하여 상기 다수의 읽기/쓰기 액세스 요구를 차례로 직렬 출력하는 조정모듈을 더 포함하는, 코어 간 통신 장치.
  3. 제1항에 있어서,
    상기 포스트 모듈은, 버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현하는 버스 인터페이스 유닛을 포함하는, 코어 간 통신 장치.
  4. 제3항에 있어서,
    상기 버스 인터페이스 유닛은,
    상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 다수의 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기의 상호배제를 실현하는 제1 상호배제유닛, 및/또는
    상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기와 메시지 수신 코어의 상기 포스트 모듈로부터의 메시지 읽기의 상호배제를 실현하는 제2 상호배제유닛을 포함하는, 코어 간 통신 장치.
  5. 제3항 또는 제4항에 있어서,
    상기 버스 인터페이스 유닛은, 상기 메시지 송신 코어가 상기 포스트 모듈에 메시지 쓰기를 수행한 후, 혹은 상기 메시지 수신 코어가 상기 포스트 모듈로부터 메시지 읽기를 수행한 후, 상기 버스 에러 피드백 레지스터의 상태 변경을 트리거하는 트리거 서브유닛을 더 포함하는, 코어 간 통신 장치.
  6. 제1항에 있어서,
    상기 포스트 모듈은, 메시지 액세스 어드레스에 근거하여 상기 메시지를 기억하는 기억유닛을 포함하는, 코어 간 통신 장치.
  7. 제1항에 있어서,
    상기 포스트 모듈은, 중단 요구를 통하여 상기 메시지 수신 코어에 메시지를 수신하도록 통지하는 통지유닛을 포함하는, 코어 간 통신 장치.
  8. 포스트 모듈이 버스 어댑터 모듈을 통하여 메시지 송신 코어로부터 송신된 메시지를 수신하는 단계와,
    상기 포스트 모듈이 메시지 수신 코어로 중단 요구를 송신하는 단계를 포함하되,
    상기 메시지 수신 코어가 상기 중단 요구에 근거하여 상기 메시지 읽기를 수행하는, 코어 간 통신 방법.
  9. 제8항에 있어서,
    다수의 코어가 동시에 상기 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 사전에 규정된 규칙에 따라 상기 다수의 읽기/쓰기 액세스 요구를 조정하여 상기 다수의 읽기/쓰기 액세스 요구를 차례로 직렬 출력하는 단계를 더 포함하는, 코어 간 통신 방법.
  10. 제8항에 있어서,
    다수의 코어가 동시에 상기 포스트 모듈로 메시지 읽기/쓰기를 요구하기 위한 읽기/쓰기 액세스 요구를 송신하였을 경우, 버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현하는, 코어 간 통신 방법.
  11. 제10항에 있어서,
    버스 에러 피드백 레지스터를 다중화함으로써 메시지 읽기/쓰기의 상호배제를 실현하는 단계가,
    상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 다수의 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기의 상호배제를 실현하고, 및/또는 상기 버스 에러 피드백 레지스터를 다중화함으로써 상호배제락의 기능을 실현하여 메시지 송신 코어의 상기 포스트 모듈로의 메시지 쓰기와 메시지 수신 코어의 상기 포스트 모듈로부터의 메시지 읽기의 상호배제를 실현하는 단계를 포함하는, 코어 간 통신 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 메시지 송신 코어가 상기 포스트 모듈에 메시지 쓰기를 수행한 후, 혹은 상기 메시지 수신 코어가 상기 포스트 모듈로부터 메시지 읽기를 수행한 후, 상기 버스 에러 피드백 레지스터의 상태 변경을 트리거하는, 코어 간 통신 방법.
  13. 제10항 또는 제11항에 있어서,
    상기 메시지 송신 코어가 상기 포스트 모듈에 메시지 쓰기를 수행한 후, 상기 포스트 모듈이 상기 메시지 송신 코어로 제1 응답 메시지를 송신하고, 상기 메시지 송신 코어는 상기 제1 응답 메시지에 근거하여 상기 포스트 모듈로의 메시지 쓰기에 성공하였다고 판단하고, 및/또는
    상기 메시지 수신 코어가 상기 포스트 모듈로부터 메시지 읽기를 수행한 후, 상기 포스트 모듈이 상기 메시지 수신 코어로 제2 응답 메시지를 송신하고 상기 메시지 수신 코어가 상기 제2 응답 메시지에 근거하여 메시지 읽기에 성공하였다고 판단하는, 코어 간 통신 방법.
  14. 제8항에 있어서,
    상기 메시지 수신 코어가 상기 메시지 읽기를 수행한 후,
    상기 포스트 모듈이 상기 중단 요구를 삭제하는 단계를 더 포함하는, 코어 간 통신 방법.
  15. 포스트 모듈에 위치하고 버스 어댑터 모듈을 통하여 메시지 송신 코어로부터 송신된 메시지를 수신하는 수신유닛과,
    상기 포스트 모듈에 위치하고 메시지 수신 코어로 중단 요구를 송신하는 송신유닛을 포함하되,
    상기 메시지 수신 코어가 상기 중단 요구에 근거하여 상기 메시지 읽기를 수행하는, 코어 간 통신 장치.
KR1020157012032A 2012-10-12 2013-10-08 코어 간 통신 장치 및 방법 KR101951072B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210389118.9A CN103729329B (zh) 2012-10-12 2012-10-12 核间通信装置及方法
CN201210389118.9 2012-10-12
PCT/CN2013/084831 WO2014056420A1 (zh) 2012-10-12 2013-10-08 核间通信装置及方法

Publications (2)

Publication Number Publication Date
KR20150067332A true KR20150067332A (ko) 2015-06-17
KR101951072B1 KR101951072B1 (ko) 2019-04-22

Family

ID=50453409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012032A KR101951072B1 (ko) 2012-10-12 2013-10-08 코어 간 통신 장치 및 방법

Country Status (6)

Country Link
US (1) US9639409B2 (ko)
EP (1) EP2908252B1 (ko)
JP (1) JP6475625B2 (ko)
KR (1) KR101951072B1 (ko)
CN (1) CN103729329B (ko)
WO (1) WO2014056420A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220128237A (ko) * 2021-03-12 2022-09-20 베이징 시아오미 모바일 소프트웨어 컴퍼니 리미티드 멀티코어 통신방법, 장치, 전자기기 및 저장매체

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268105B (zh) * 2014-09-23 2017-06-30 天津国芯科技有限公司 处理器局部总线互斥存取的扩展结构及操作方法
CN105991413B (zh) * 2015-02-13 2018-11-16 展讯通信(上海)有限公司 用户终端及其amp系统下消息邮箱故障的处理方法及装置
CN106372029A (zh) * 2016-09-06 2017-02-01 北方电子研究院安徽有限公司 一种基于中断的点对点片内通信模块
CN106407016B (zh) * 2016-10-19 2021-06-25 腾讯科技(深圳)有限公司 一种多线程争抢资源的模拟方法及装置
CN108521351B (zh) * 2018-03-21 2021-02-05 东软集团股份有限公司 会话流量统计方法、处理器核心、存储介质、电子设备
CN109582633B (zh) * 2018-12-04 2021-09-07 艾体威尔电子技术(北京)有限公司 一种pos机中双cpu的通讯方法
CN110597643B (zh) * 2019-08-30 2022-08-12 Oppo广东移动通信有限公司 核间通信方法、处理器以及电子设备
CN111026697A (zh) * 2019-11-21 2020-04-17 Oppo广东移动通信有限公司 核间通信方法、系统、电子器件以及电子设备
CN111475202A (zh) * 2020-03-31 2020-07-31 北京经纬恒润科技有限公司 基于异构多处理系统的核间通信方法及系统
CN113495794B (zh) * 2020-04-03 2022-09-09 武汉斗鱼鱼乐网络科技有限公司 一种Android系统的模块桥接方法、装置、电子设备及存储介质
CN112000608B (zh) * 2020-09-02 2021-10-01 展讯通信(上海)有限公司 系统级芯片及其中核间通信的方法、智能穿戴设备
CN112579488B (zh) * 2020-12-05 2023-02-24 西安翔腾微电子科技有限公司 一种支持动态缓冲区分配的消息存储电路及方法
CN113032166B (zh) * 2021-03-26 2024-05-24 黑芝麻智能科技(上海)有限公司 核间通信的方法、处理器、核间通信系统及计算机可读存储介质
CN113110950B (zh) * 2021-05-18 2023-05-26 南方电网科学研究院有限责任公司 处理器及通信方法、存储介质及计算设备
CN113220541B (zh) * 2021-06-10 2021-09-07 北京全路通信信号研究设计院集团有限公司 一种多核处理器的内存巡检方法及系统
CN116541336B (zh) * 2023-07-04 2024-06-11 南方电网数字电网研究院有限公司 多核芯片、协处理器的软件运行方法
CN117234761B (zh) * 2023-11-16 2024-02-02 苏州萨沙迈半导体有限公司 多核系统、芯片和车辆处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060450A1 (en) * 2003-08-20 2005-03-17 Chih-Ming Tsai Bus interface extender and method thereof
US20050138249A1 (en) * 2003-12-18 2005-06-23 Galbraith Mark J. Inter-process communication mechanism
US20080235423A1 (en) * 2007-03-22 2008-09-25 Arm Limited Data processing apparatus and method for arbitrating between messages routed over a communication channel
CN102394732A (zh) * 2011-09-06 2012-03-28 中国人民解放军国防科学技术大学 一种多微包并行处理结构

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995010805A1 (en) * 1993-10-08 1995-04-20 International Business Machines Corporation Message transmission across a network
US20020116595A1 (en) * 1996-01-11 2002-08-22 Morton Steven G. Digital signal processor integrated circuit
US5901326A (en) * 1996-11-26 1999-05-04 International Business Machines Corporation Memory bus address snooper logic for determining memory activity without performing memory accesses
US6456628B1 (en) * 1998-04-17 2002-09-24 Intelect Communications, Inc. DSP intercommunication network
KR20000018869A (ko) * 1998-09-03 2000-04-06 서평원 교환기에서 프로세서간의 통신 시스템 및 방법
GB2409302B (en) * 2003-12-18 2006-11-22 Advanced Risc Mach Ltd Data communication mechanism
JP2008535062A (ja) 2005-03-22 2008-08-28 フィーバ・インコーポレーテッド パブリック・アクセス・ネットワークのユーザの結合を含む、ネットワーク動作及び情報処理システム及び方法
US7606254B1 (en) * 2006-03-02 2009-10-20 Rockwell Collins, Inc. Evaluatable high-assurance guard for security applications
US8131944B2 (en) * 2008-05-30 2012-03-06 Intel Corporation Using criticality information to route cache coherency communications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060450A1 (en) * 2003-08-20 2005-03-17 Chih-Ming Tsai Bus interface extender and method thereof
US20050138249A1 (en) * 2003-12-18 2005-06-23 Galbraith Mark J. Inter-process communication mechanism
US20080235423A1 (en) * 2007-03-22 2008-09-25 Arm Limited Data processing apparatus and method for arbitrating between messages routed over a communication channel
CN102394732A (zh) * 2011-09-06 2012-03-28 中国人民解放军国防科学技术大学 一种多微包并行处理结构

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220128237A (ko) * 2021-03-12 2022-09-20 베이징 시아오미 모바일 소프트웨어 컴퍼니 리미티드 멀티코어 통신방법, 장치, 전자기기 및 저장매체

Also Published As

Publication number Publication date
US20150261586A1 (en) 2015-09-17
EP2908252A4 (en) 2016-11-23
CN103729329B (zh) 2018-01-19
EP2908252B1 (en) 2019-07-10
JP2015536490A (ja) 2015-12-21
WO2014056420A1 (zh) 2014-04-17
CN103729329A (zh) 2014-04-16
KR101951072B1 (ko) 2019-04-22
JP6475625B2 (ja) 2019-02-27
EP2908252A1 (en) 2015-08-19
US9639409B2 (en) 2017-05-02

Similar Documents

Publication Publication Date Title
KR101951072B1 (ko) 코어 간 통신 장치 및 방법
US7404190B2 (en) Method and apparatus for providing notification via multiple completion queue handlers
US6711643B2 (en) Method and apparatus for interrupt redirection for arm processors
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US7971029B2 (en) Barrier synchronization method, device, and multi-core processor
US20030065856A1 (en) Network adapter with multiple event queues
US7802025B2 (en) DMA engine for repeating communication patterns
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
US11341087B2 (en) Single-chip multi-processor communication
JP2007079789A (ja) 計算機システム及びイベント処理方法
US8583845B2 (en) Multi-processor system and controlling method thereof
JP2012252490A (ja) マルチプロセッサおよびそれを用いた画像処理システム
EP2904765B1 (en) Method and apparatus using high-efficiency atomic operations
US20060236032A1 (en) Data storage system having memory controller with embedded CPU
KR20020008955A (ko) 버스 시스템 및 그 실행 순서 조정방법
WO1992006435A1 (en) Message control system in a data communication system
WO2013177854A1 (zh) 一种多核处理器的核间通信装置及方法
JP2010134698A (ja) 情報処理システム
US20080189719A1 (en) Operation processor apparatus
JP2017062540A (ja) 片方向オペレーティングシステム間通信システム及びプログラム
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
US20180011804A1 (en) Inter-Process Signaling Mechanism
CN109992560B (zh) 一种通信方法及通信系统
US9959173B2 (en) Node, arithmetic processing device, and arithmetic processing method
EP2800003B1 (en) Method and device for realizing end-to-end hardware message passing

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right