KR20120134918A - 복수의 프로세서를 포함하는 전자 장치 - Google Patents

복수의 프로세서를 포함하는 전자 장치 Download PDF

Info

Publication number
KR20120134918A
KR20120134918A KR1020110054142A KR20110054142A KR20120134918A KR 20120134918 A KR20120134918 A KR 20120134918A KR 1020110054142 A KR1020110054142 A KR 1020110054142A KR 20110054142 A KR20110054142 A KR 20110054142A KR 20120134918 A KR20120134918 A KR 20120134918A
Authority
KR
South Korea
Prior art keywords
processor
processors
dma
multicast message
message
Prior art date
Application number
KR1020110054142A
Other languages
English (en)
Inventor
용환진
지운혁
윤형진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110054142A priority Critical patent/KR20120134918A/ko
Priority to US13/486,563 priority patent/US8891523B2/en
Publication of KR20120134918A publication Critical patent/KR20120134918A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • 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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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

Abstract

복수의 프로세서를 포함하는 전자 장치가 개시된다. 본 발명의 실시 예에 따른 전자 장치는, 복수의 프로세서 및 상기 복수의 프로세서 사이의 통신을 수행하는 IPC부(inter-processor communication unit)를 포함하고, 상기 복수의 프로세서는 각각 코어 및 메모리를 포함하고, 상기 메모리는 공통 버퍼부 및 전송 버퍼부를 포함하고, 상기 복수의 프로세서 중 멀티캐스트 메시지 또는 유니캐스트 메시지를 전송하는 프로세서인 전송 프로세서의 코어는, 상기 전송 프로세서의 공통 버퍼부에 상기 멀티캐스트 메시지를 기입(write)하고, 상기 전송 프로세서의 전송 버퍼부에 상기 유니캐스트 메시지를 기입한다.

Description

복수의 프로세서를 포함하는 전자 장치{ELECTRONIC APPARATUS INCLUDING A PLURALITY OF PROCESSORS}
본 발명은 복수의 프로세서를 포함하는 전자 장치에 관한 것이다.
복수의 프로세서를 포함하는 전자 장치(electronic apparatus)는 퍼스널 컴퓨터, 서버 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, 저장 장치 등의 다양한 사용자 장치로 구현될 수 있다. 또는 복수의 프로세서를 포함하는 전자 장치는 사용자 장치의 내부(internal) MCU(microcontroller unit)로 구현될 수도 있다.
그런데 전자 장치가 복수의 프로세서를 포함하는 경우, 복수의 프로세서 사이에 메시지 교환이 요구될 수 있다. 즉, 복수의 프로세서 사이의 통신(inter-processor communication, IPC)이 가능해야 한다. 따라서 복수의 프로세서 사이의 통신을 효율적으로 수행할 수 있는 전자 장치가 요구되고 있다.
본 발명이 해결하고자 하는 기술적 과제는, 복수의 프로세서 사이의 통신을 효율적으로 수행할 수 있는 전자 장치를 제공하는 것에 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 전자 장치는, 복수의 프로세서 및 상기 복수의 프로세서 사이의 통신을 수행하는 IPC부(inter-processor communication unit)를 포함하고, 상기 복수의 프로세서는 각각 코어 및 메모리를 포함하고, 상기 메모리는 공통 버퍼부 및 전송 버퍼부를 포함하고, 상기 복수의 프로세서 중 멀티캐스트 메시지 또는 유니캐스트 메시지를 전송하는 프로세서인 전송 프로세서의 코어는, 상기 전송 프로세서의 공통 버퍼부에 상기 멀티캐스트 메시지를 기입(write)하고, 상기 전송 프로세서의 전송 버퍼부에 상기 유니캐스트 메시지를 기입한다.
바람직하게는, 상기 IPC부는, DMA 버퍼부를 포함하는 DMA(direct memory access) 제어부를 포함하고, 상기 DMA 제어부는 상기 공통 버퍼부에 저장되어 있는 상기 멀티캐스트 메시지를 독출(read)하고, 상기 멀티캐스트 메시지를 상기 DMA 버퍼부에 저장할 수 있다. 이때, 상기 DMA 제어부는, 상기 DMA 버퍼부에 저장되어 있는 상기 멀티캐스트 메시지를 수신 프로세서 집합에 전송하되, 상기 수신 프로세서 집합은 복수의 수신 프로세서를 포함하고, 상기 복수의 수신 프로세서는 상기 복수의 프로세서 중 2개 이상의 프로세서일 수 있다. 이때, 상기 메모리는, 수신 버퍼부를 더 포함하고, 상기 DMA 제어부는 상기 복수의 수신 프로세서의 각 수신 버퍼부에 상기 멀티캐스트 메시지를 기입할 수 있다.
바람직하게는, 상기 DMA 제어부는, 상기 멀티캐스트 메시지를 상기 복수의 수신 프로세서 중 적어도 하나의 수신 프로세서에 전송한 후, 상기 전송 프로세서에 상기 적어도 하나의 수신 프로세서에 대한 ACK 신호를 전송할 수 있다. 이때, 상기 멀티캐스트 메시지는, 상기 수신 프로세서 집합을 지시하는 헤더 필드를 포함할 수 있다. 이때, 상기 헤더 필드는, 비트맵 방식으로 상기 수신 프로세서 집합을 지시할 수 있다. 이때, 상기 ACK 신호에 의해, 상기 전송 프로세서의 상기 공통 버퍼부에 저장되어 있는 상기 멀티캐스트 메시지의 상기 헤더 필드가 지시하는 상기 수신 프로세서 집합이 변경될 수 있다.
바람직하게는, 상기 DMA 제어부는, 상기 전송 버퍼부에 저장되어 있는 상기 유니캐스트 메시지를 독출하고, 상기 유니캐스트 메시지를 상기 DMA 버퍼부에 저장하고, 상기 DMA 버퍼부에 저장되어 있는 상기 유니캐스트 메시지를 상기 복수의 프로세서 중 하나의 프로세서에 전송할 수 있다. 이때, 상기 DMA 제어부는, 상기 유니캐스트 메시지보다 상기 멀티캐스트 메시지를 우선적으로 전송할 수 있다.
본 발명의 실시 예에 따르면, 복수의 프로세서 사이의 통신을 효율적으로 수행할 수 있는 전자 장치를 제공할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도이다.
도 2는 도 1의 전자 장치에 포함되는 복수의 메모리 중 하나의 메모리 및 복수의 DMA 버퍼부 중 하나의 DMA 버퍼부의 예를 나타내는 도면이다.
도 3은 도 1의 전자 장치에서 멀티캐스트 메시지의 전송 과정을 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 전자 장치에서 수행되는 멀티캐스트 메시지의 전송 과정의 흐름도이다.
도 5는 본 발명의 실시 예에 따른 전자 장치의 복수의 프로세서 사이에서 전송되는 멀티캐스트 메시지의 일 예를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 전자 장치의 공통 버퍼부에 저장되어 있는 멀티캐스트 메시지의 일 예를 나타내는 도면이다.
도 7은 본 발명의 다른 실시예에 따른 전자 장치의 블록도이다.
도 8은 본 발명의 또 다른 실시예에 따른 전자 장치에서 멀티캐스트 메시지의 전송 과정을 나타내는 도면이다.
도 9는 공통 버퍼부를 포함하지 않는 전자 장치에서 메시지의 전송 과정을 나타내는 도면이다.
도 10은 본 발명의 실시 예에 따른 전자 장치를 컴퓨팅 시스템 장치로 구현한 예를 나타내는 블록도이다.
도 11은 본 발명의 실시 예에 따른 전자 장치를 솔리드 스테이트 드라이브로 구현한 예를 나타내는 블록도이다.
도 12는 본 발명의 실시 예에 따른 전자 장치를 포함하는 네트워크 시스템을 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도이다.
도 1을 참고하면, 전자 장치(500)는 버스(BUS)를 통해 연결되는 다중 프로세서(multi-processor, 100) 및 IPC부(inter-processor communication unit, 300)를 포함한다.
다중 프로세서(100)는 복수의 프로세서(110-1~110-M)를 포함한다(M은 1보다 큰 자연수). 복수의 프로세서(110-1~110-M) 각각은 독립적으로 전자 장치(500)에 대한 명령(instruction)을 읽고 실행하는(read and execute)하는 단위(unit)이다. 예를 들어, 복수의 프로세서(110-1~110-M) 각각은 컴퓨팅 시스템 장치의 CPU(central processing unit)이거나, 저장 장치의 프로세서일 수 있다.
복수의 프로세서(110-1~110-M) 각각은 코어(111-1~111-M) 및 메모리(113-1~113-M)를 포함한다. 각 코어(111-1~111-M)는 명령을 읽고 실행하는 것을 실질적으로 수행한다. 각 메모리(113-1~113-M)는 TCM(tightly-coupled memory)이라고도 한다.
복수의 프로세서(110-1~110-M)는 각각 독립적으로 동작할 수 있지만 하나의 전자 장치(500)에 포함되어 있으므로, 복수의 프로세서(110-1~110-M) 사이에 메시지 교환이 요구될 수 있다. 즉, 복수의 프로세서(110-1~110-M) 사이의 통신(inter-processor communication, IPC)이 가능해야 한다.
복수의 프로세서(110-1~110-M)는 복수의 메모리(113-1~113-M) 및 IPC부(300)를 통해 IPC를 수행할 수 있다. 즉, 복수의 프로세서(110-1~110-M)는 복수의 메모리(113-1~113-M) 및 IPC부(300)를 통해 메시지를 전송하거나 수신할 수 있다.
이하에서 설명의 편의를 위해, 다른 프로세서로 메시지를 전송하는 프로세서는 전송 프로세서(sending processor)라 하고, 전송 프로세서로부터 메시지를 수신하는 프로세서는 수신 프로세서(receiving processor)라 한다.
그런데 하나의 전송 프로세서에 대해 수신 프로세서는 하나 이상일 수 있다. 이하, 수신 프로세서가 하나인 경우의 메시지를 유니캐스트(unicast) 메시지라 하고, 수신 프로세서가 복수인 경우의 메시지를 멀티캐스트(multicast) 메시지라 한다. 즉, 멀티캐스트 메시지는 하나의 전송 프로세서에서 복수의 수신 프로세서에 공통적으로 전송되는 메시지이다.
이하, 멀티캐스트 메시지를 수신하는 복수의 수신 프로세서를 수신 프로세서 집합이라 한다. 수신 프로세서 집합은 다중 프로세서(100)에 포함되는 복수의 프로세서(110-1~110-M) 중 전송 프로세서를 제외한 2개 이상의 프로세서를 포함한다. 특히, 수신 프로세서 집합이 전송 프로세서를 제외한 모든 복수의 프로세서(110-1~110-M)를 포함하는 경우의 멀티캐스트 메시지를 브로드캐스트(broadcast) 메시지라 한다.
멀티캐스트 메시지는 복수의 프로세서(110-1~110-M)의 동작을 중단시키기 위한 서든 파워 오프(SPO: Sudden Power Off) 메시지, 캐시 메모리(미도시)의 모든 데이터를 저장 장치(미도시)에 기입(write)하기 위한 플러시/덤프(flush/dump) 메시지, 복수의 프로세서(110-1~110-M)의 동작을 시작하기 위한 오픈(open) 메시지, 복수의 프로세서(110-1~110-M)의 동작을 리셋(reset)하기 위한 리셋 메시지 등이 있다.
멀티캐스트 메시지는 긴급한(urgent) 메시지와 긴급하지 않은(not urgent) 메시지로 구분될 수 있다. 예를 들어, 서든 파워 오프(SPO) 메시지, 플러시/덤프 메시지 등은 긴급한 메시지일 수 있고, 오픈 메시지, 리셋 메시지 등은 긴급하지 않은 메시지일 수 있다.
복수의 메모리(113-1~113M)는 각각 수신 버퍼부(RB), 전송 버퍼부(TB) 및 공통 버퍼부(CB)를 포함한다. 수신 프로세서의 수신 버퍼부(RB)는 메시지 수신을 위해 사용된다. 전송 프로세서의 전송 버퍼부(TB) 및 공통 버퍼부(CB)는 메시지 전송을 위해 사용된다. 특히, 공통 버퍼부(CB)는 멀티캐스트 메시지 전송을 위해 사용되고, 전송 버퍼부(TB)는 유니캐스트 메시지 전송을 위해 사용된다.
IPC부(300)는 복수의 DMA(direct memory access) 제어부(310-1~310-M)를 포함하고, 복수의 DMA 제어부(310-1~310-M)는 각각 DMA 버퍼부(DB)를 포함할 수 있다. 복수의 DMA 제어부(310-1~310-M)는 복수의 프로세서(110-1~110-M)와 일대일로 대응될 수 있다. 예를 들어, 제n DMA 제어부(310-n, n=1, 2, …, M)는 제n 프로세서(110-n)에 대응된다. 제n 프로세서(110-n)가 전송 프로세서인 경우, 메시지는 제n DMA 제어부(310-n)를 통해 수신 프로세서로 전달된다.
복수의 DMA 제어부(310-1~310-M)는 각각 복수의 메모리(113-1~113-M)에 접속하여 복수의 메모리(113-1~113-M)에 저장되어 있는 메시지를 독출(read)할 수 있고, 복수의 메모리(113-1~113-M)에 메시지를 기입(write)할 수 있다. 즉, 복수의 DMA 제어부(310-1~310-M)는 각각 제n 메모리(113-n, n=1, 2, …, M)에 저장되어 있는 메시지를 독출하거나, 제n 메모리에 메시지를 기입하는 동작을 제n 코어(111-n)의 개입(intervention) 없이 할 수 있다.
도 1에서는 IPC부(300)가 복수의 DMA 제어부(310-1~310-M)를 포함하고, 각 DMA 제어부(310-1~310-M)는 DMA 버퍼부(DB)를 포함하는 것으로 나타내었으나, IPC부(300)는 하나의 통합된 DMA 버퍼부를 포함하는 하나의 통합된 DMA 제어부로 구현될 수도 있다.
도 2는 도 1의 전자 장치에 포함되는 복수의 메모리 중 하나의 메모리 및 복수의 DMA 버퍼부 중 하나의 DMA 버퍼부의 예를 나타내는 도면이다. 설명의 편의를 위해, 하나의 메모리 및 하나의 DMA 버퍼부에 대해서만 설명하나, 도 2는 도 1의 복수의 메모리 및 복수의 DMA 버퍼부에 공통적으로 적용될 수 있다.
도 2를 참고하면, 제1 메모리(113-1)는 하나 이상의 수신 버퍼(RX1~RXP)를 포함하는 수신 버퍼부(RB), 하나 이상의 전송 버퍼(TX1~TXQ)를 포함하는 전송 버퍼부(TB) 및 하나 이상의 공통 버퍼(CT1~CTR)를 포함하는 공통 버퍼부(CB)를 포함한다. DMA 버퍼부(DB)는 하나 이상의 DMA 버퍼(DB1~DBS)를 포함한다.
수신 버퍼(RX1~RXP)의 개수, 전송 버퍼(TX1~TXQ)의 개수, 공통 버퍼(CT1~CTR)의 개수 및 DMA 버퍼(DB1~DBS)의 개수는 전자 장치(도 1의 500)에 포함되는 복수의 프로세서(도 1의 110-1~110-M)의 개수에 따라 다양하게 결정될 수 있다.
다시 도 1을 참고하면, 다중 프로세서(100) 및 IPC부(300)를 연결하는 버스(BUS)는 제1 버스(BUS1) 및 제2 버스(BUS2)를 포함할 수 있다. 또한, 버스(BUS)는 마스터(master) 버스(PMB, DMB) 및 슬레이브(slave) 버스(PSB, DSB)를 포함할 수 있다. 마스터 버스(PMB, DMB)는 복수의 프로세서 마스터 버스(PMB) 및 복수의 DMAC(DMA controller) 마스터 버스(DMB)를 포함하고, 슬레이브 버스(PSB, DSB)는 복수의 프로세서 슬레이브 버스(PSB) 및 복수의 DMAC 슬레이브 버스(DSB)를 포함할 수 있다.
복수의 프로세서 마스터 버스(PMB)는 복수의 프로세서(110-1~110-M) 각각을 제1 버스(BUS1)에 연결하고, 복수의 프로세서 슬레이브 버스(PSB)는 복수의 프로세서(110-1~110-M) 각각을 제2 버스(BUS2)에 연결한다. 복수의 DMAC 마스터 버스(DMB)는 복수의 DMA 제어부(310-1~310-M) 각각을 제2 버스(BUS2)에 연결하고, 복수의 DMAC 슬레이브 버스(DSB)는 복수의 DMA 제어부(310-1~310-M) 각각을 제1 버스(BUS1)에 연결한다.
복수의 프로세서 슬레이브 버스(PSB)는 각각 메모리(113-1~113-M)에 연결되어 있다. 도 1에서는 나타내지 않았으나, 복수의 메모리(113-1~113-M)는 각각 복수의 프로세서 마스터 버스(PMB)에도 연결될 수 있다. 또한, 복수의 코어(111-1~111-M)는 각각 복수의 프로세서 마스터 버스(PMB) 및 복수의 슬레이브 버스(PSB)에 연결될 수 있다.
마스터 버스(PMB, DMB)는 마스터 버스(PMB, DMB)에 연결된 장치가 주체적으로 동작하는 경우에 사용되고, 슬레이브 버스(PSB, DSB)는 슬레이브 버스(PSB, DSB)에 연결된 장치가 아닌 다른 장치가 주체적으로 동작하는 경우에 사용될 수 있다. 예를 들어, 제1 프로세서(110-1)가 출력부(미도시) 등으로 정보를 전송하는 경우 제1 프로세서(110-1)가 주체적으로 동작하므로, 제1 프로세서(110-1)는 프로세서 마스터 버스(PMB)를 통해 데이터를 전송할 수 있다. 제1 DMA 제어부(310-1)가 제1 프로세서(110-1)의 제1 메모리(113-1)로부터 메시지를 독출(read)하거나 메시지를 기입(wirte)하는 경우 제1 DMA 제어부(310-1)가 주체적으로 동작하므로, 메시지의 독출 또는 기입 동작은 프로세서 슬레이브 버스(PSB)를 통해 일어날 수 있다. 따라서 제1 프로세서(110-1)에서는 출력부(미도시)로의 정보 전송과 동시에 제1 DMA 제어부(310-1)에 의한 메시지의 독출 또는 기입 동작이 수행될 수 있다.
이하, 복수의 프로세서(110-1~110-M) 사이의 메시지 전송 및 수신 방법을 상술한다.
도 3은 도 1의 전자 장치에서 멀티캐스트 메시지의 전송 과정을 나타내는 도면이다.
도 3을 참고하면, 복수의 프로세서(110-1~110-M) 중 제1 프로세서(110-1)는 전송 프로세서(SP)이다. 다만 도 3은 설명의 편의를 위한 예시이고, 이하에서 설명되는 내용은 다른 프로세서(110-2~110-M)가 전송 프로세서(SP)인 경우에도 적용될 수 있다.
또한, 도 3에서 수신 프로세서 집합에 포함되는 수신 프로세서(RP)는 제1 프로세서(110-1)를 제외한 나머지 모든 프로세서들(110-2~110-M)이다. 즉, 도 3에서는 멀티캐스트 메시지(MM)가 브로드캐스트 메시지인 경우이다. 다만, 도 3은 설명의 편의를 위한 예시이고, 이하에서 설명되는 내용은 브로드캐스트 메시지가 아닌 멀티캐스트 메시지(MM)의 경우에도 적용될 수 있다.
제1 코어(111-1)는 제1 메모리(113-1)의 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)를 기입(wirte)한다(S10).
제1 DMA 제어부(310-1)는 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)를 독출(read)하여 멀티캐스트 메시지(MM)를 DMA 버퍼부(DB)에 저장한다(S12). 즉, 제1 DMA 제어부(310-1)는 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)를 DMA 버퍼부(DB)에 복사(copy)할 수 있다.
제1 DMA 제어부(310-1)는 제1 프로세서(110-1)에 연결되어 있는 프로세서 슬레이브 버스(PSB), 제2 버스(BUS2) 및 제1 DMA 제어부(310-1)에 연결되어 있는 DMAC 마스터 버스(DMB)를 통해 멀티캐스트 메시지(MM)를 독출할 수 있다.
제1 DMA 제어부(310-1)가 공통 버퍼부(CB)에 저장되어 있는 멀티 캐스트 메시지(MM)를 독출하기 전에, 제1 DMA 제어부(310-1)는 제1 프로세서(110-1)의 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)가 저장되어 있는지 여부를 먼저 판단할 수 있다.
제1 DMA 제어부(310-1)는 폴링(polling)을 수행하여 멀티캐스트 메시지(MM)의 저장 여부를 판단할 수 있다. 폴링은 제1 DMA 제어부(310-1)가 메모리(113-1)에 접속하여 공통 버퍼부(CB) 및 전송 버퍼부(TB)에 전송해야 하는 메시지가 저장되어 있는지 여부를 체크하는 것이다. 폴링은 주기적으로 수행될 수 있다. 이때, 제1 DMA 제어부(310-1)는 전송 버퍼부(TB)보다 공통 버퍼부(CB)를 우선적으로 체크할 수 있다.
또는, 제1 DMA 제어부(310-1)는 제1 프로세서(110-1)에서 전송되는 인터럽트 신호를 통해 멀티캐스트 메시지(MM)의 저장 여부를 판단할 수도 있다. 인터럽트 신호는 전송 프로세서(SP)인 제1 프로세서(110-1)가 대응되는 제1 DMA 제어부(310-1)에게 전송해야 하는 메시지가 있음을 알리는 신호일 수 있다. 인터럽트 신호는 전송 프로세서(SP)의 코어(111-1~111-M)로부터 전송될 수 있다. 예를 들어, 제1 메모리(113-1)의 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)가 저장되면, 제1 프로세서(110-1)는 제1 DMA 제어부(310-1)에 인터럽트 신호를 전달할 수 있다.
제1 DMA 제어부(310-1)는 DMA 버퍼부(DB)에 저장되어 있는 멀티캐스트 메시지(MM)를 수신 프로세서 집합에 포함되는 수신 프로세서들(110-2~110-M)로 전송한다(S13: S13-2~S13-M). 제1 DMA 제어부(310-1)의 멀티캐스트 메시지(MM)의 전송이란, 제1 DMA 제어부(310-1)가 수신 프로세서 집합에 포함되는 수신 프로세서들(110-2~110-M)의 각 메모리(113-2~113-M)의 수신 버퍼부(RB)에 멀티캐스트 메시지(MM)를 기입(write)하는 동작을 의미할 수 있다.
멀티캐스트 메시지(MM)는 DMAC 마스터 버스(DMB), 제2 버스(BUS2) 및 프로세서 슬레이브 버스(PSB)를 통하여 각 메모리(113-2~113-M)에 전송될 수 있다. 제1 DMA 제어부(310-1)는 각 메모리(113-2~113-M)에 순차적으로 멀티캐스트 메시지(MM)를 전송할 수 있다. 또는 제1 DMA 제어부(310-1)는 각 메모리(113-2~113-M)에 동시에 멀티캐스트 메시지(MM)를 전송할 수 있다.
수신 프로세서 집합에 포함되는 수신 프로세서들(110-2~110-M)의 각 코어(111-2~111-M)는 각 메모리(113-2~113-M)에 저장되어 있는 멀티캐스트 메시지(MM)를 독출(read)한다(S14: S14-2~S14-M). 수신 프로세서들(110-1~110-M)의 각 코어(111-2~111-M)는 멀티캐스트 메시지(MM)가 지시하는 동작을 수행할 수 있다.
이와 같이, 전송 프로세서(SP)는 공통 버퍼부(CB) 및 IPC부(300)를 이용하여 수신 프로세서 집합에 포함되는 복수의 수신 프로세서(RP)에 멀티캐스트 메시지(MM)를 전송할 수 있다.
도 4는 본 발명의 실시예에 따른 전자 장치에서 수행되는 멀티캐스트 메시지의 전송 과정의 흐름도이다. 도 4의 과정은 도 1의 전자 장치(100)에서 수행될 수 있다.
도 4를 참고하면, 전송 프로세서(SP)의 코어는 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)를 기입한다(S100).
DMA 제어부(DMAC)는 메모리의 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)를 독출(read)하여 멀티캐스트 메시지(MM)를 DMA 버퍼부(DB)에 저장한다(S120).
DMA 제어부(DMAC)가 공통 버퍼부(CB)에 저장되어 있는 멀티 캐스트 메시지(MM)를 독출하기 전에, DMA 제어부(DMAC)는 전송 프로세서(SP)의 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)가 저장되어 있는지 여부를 먼저 판단할 수 있다(S110). DMA 제어부(DMAC)는 폴링(polling, PL)을 수행하여 멀티캐스트 메시지(MM)의 저장 여부를 판단하거나(S110a), 전송 프로세서(SP)에서 전송되는 인터럽트 신호(ITR)를 통해 멀티캐스트 메시지(MM)의 저장 여부를 판단할 수 있다(S110b).
DMA 제어부(DMAC)는 DMA 버퍼부(DB)에 저장되어 있는 멀티캐스트 메시지(MM)를 수신 프로세서 집합(RPS)에 포함되는 수신 프로세서들(RP1~RPN)의 각 수신 버퍼부(RB)에 기입한다(S130: S130-1~S130-N). DMA 제어부(DMAC)는 수신 프로세서들(RP1~RPN)의 각 수신 버퍼부(RB)에 멀티캐스트 메시지(MM)를 순차적으로 기입하거나, 동시에 기입할 수 있다.
수신 프로세서 집합(RPS)에 포함되는 수신 프로세서들(RP1~RPN)은 각각 대응되는 수신 버퍼부(RB)에 저장되어 있는 멀티캐스트 메시지(MM)를 독출(read)한다(S140: S140-1~S140-N).
멀티캐스트 메시지(MM)가 각 수신 버퍼부(RB)에 기입된 후, DMA 제어부(DMAC)는 전송 프로세서(SP)에 멀티캐스트 메시지(MM)에 대한 ACK 신호(ACK1~ACKN)를 전송할 수 있다(S150: S150-1~S150-N). ACK 신호(ACK1~ACKN)는 전송 프로세서(SP)의 공통 버퍼부(CB)로 전송될 수 있다. 제n ACK 신호(ACKn, n=1, 2, …, N)는 제n 수신 프로세서(RPn)의 수신 버퍼부(RB)에 멀티캐스트 메시지(MM)가 기입되었음을 알리는 신호일 수 있다. 복수의 ACK 신호(ACK1~ACKN)는 순차적으로 전송되거나, 동시에 전송될 수 있다. 또는 복수의 ACK 신호(ACK1~ACKN)는 하나의 통합된 ACK 신호로 전송될 수도 있다.
이와 같이, 전송 프로세서(SP)는 공통 버퍼부(CB) 및 DMA 제어부(DMAC)를 이용하여 수신 프로세서 집합(RPS)에 포함되는 복수의 수신 프로세서(RP1~RPN)에 멀티캐스트 메시지(MM)를 전송할 수 있다.
도 5는 본 발명의 실시 예에 따른 전자 장치의 복수의 프로세서 사이에서 전송되는 멀티캐스트 메시지의 일 예를 나타내는 도면이다.
도 5를 참고하면, 멀티캐스트 메시지(MM)는 수신 프로세서 집합을 지시하는 헤더 필드(HF) 및 메시지 내용을 나타내는 메시지 필드(MF)를 포함한다. 헤더 필드(HF)는 비트맵(bitmap)을 이용하여 수신 프로세서 집합을 지시할 수 있다.
설명의 편의를 위해, 전자 장치는 7개의 프로세서(PROS: P1~P7)을 포함하고, 전송 프로세서는 제2 프로세서(P2)라고 가정한다.
헤더 필드(HF)의 각 비트(b1~b6)는 전송 프로세서인 제2 프로세서(P2)를 제외한 복수의 프로세서(P1, P3~P7) 각각에 대응될 수 있고, 헤더 필드(HF)의 크기는 6비트일 수 있다. 그리고, 헤더 필드(HF)에서 수신 프로세서 집합에 포함되는 수신 프로세서에 대응되는 비트는 '1'로 표현될 수 있다. 예를 들어, 헤드 필드(HF)의 두 번째 비트(b2)는 제3 프로세서(P3)에 대응되고, 두 번째 비트(b2)가 '0'이면 제3 프로세서(P3)는 수신 프로세서 집합에 포함되지 않는다. 도 5와 같이 헤더 필드(HF)가 '0b101010'인 경우, 수신 프로세서 집합은 제1, 제4, 제6 프로세서(P1, P4, P6)임을 의미할 수 잇다.
도 6은 본 발명의 실시예에 따른 전자 장치의 공통 버퍼부에 저장되어 있는 멀티캐스트 메시지의 일 예를 나타내는 도면이다. 도 6은 전자 장치가 4개의 프로세서(PROS: P1~P4)를 포함하고, 전송 프로세서는 제2 프로세서(P2)인 경우를 가정한 것이다.
도 6을 참고하면, 전송 프로세서인 제2 프로세서(P2)의 공통 버퍼부(CB)에는 멀티캐스트 메시지(MM)가 저장되어 있다. 멀티캐스트 메시지(MM)의 헤더 필드(HF)의 크기는 3비트이고, 비트맵 방식으로 수신 프로세서 집합이 제1 및 제4 프로세서(P1, P4)임을 지시하고 있다.
DMA 제어부(미도시)는 멀티캐스트 메시지(MM)를 수신 프로세서인 제1 프로세서(P1)의 메모리(미도시)에 기입한 후, 전송 프로세서인 제2 프로세서(P2)에 제1 ACK 신호(ACK1)를 전송한다. 제1 ACK 신호(ACK1)에 의해, 제2 프로세서(P2)는 제1 프로세서(P1)에 멀티캐스트 메시지(MM)가 전송되었음을 알 수 있다. 제2 프로세서(P2)는 제1 ACK 신호(ACK1)에 의해 헤더 필드(HF)에서 제1 프로세서(P1)를 지시하는 비트(b1)는 '1'에서 '0'으로 변경할 수 있다. 제1 ACK 신호(ACK1)는 헤더 필드(HF)에서 제1 프로세서(P1)를 지시하는 비트(b1)를 '1'에서 '0'으로 변경하는 DMA 제어부의 동작을 의미할 수도 있다.
DMA 제어부는 멀티캐스트 메시지(MM)를 수신 프로세서(RP)인 제4 프로세서(P4)의 메모리에 기입한 후, 전송 프로세서(SP)인 제2 프로세서(P2)에 제4 ACK 신호(ACK4)를 전송한다. 제4 ACK 신호(ACK4)에 의해 헤더 필드(HF)에서 제4 프로세서(P4)를 지시하는 비트(b3)는 '1'에서 '0'으로 변경될 수 있다.
전송 프로세서인 제2 프로세서(P2)는 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)의 헤더 필드(HF)를 기반으로 수신 프로세서 집합 중 어느 수신 프로세서에 멀티캐스트 메시지(MM)의 전송이 완료되었는지 여부를 인식할 수 있다.
멀티캐스트 메시지(MM)가 수신 프로세서 집합의 모든 수신 프로세서에 전송되면, 전송 프로세서인 제2 프로세서(P2)는 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)를 삭제하거나, 공통 버퍼부(CB)에 다른 멀티캐스트 메시지를 재기입(rewrite)할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 전자 장치의 블록도이다. 도 7의 전자 장치(500A)는 도 1의 전자 장치(500)와 동일한 구성 요소를 포함할 수 있다. 도 1의 실시 예와 동일한 구성 요소에 대해서는 동일한 도면 부호를 부여하고, 동일한 설명은 생략한다.
도 7을 참고하면, 전자 장치(500A)는 버스(BUS)를 통해 연결되는 다중 프로세서(100) 및 IPC부(300A)를 포함한다. IPC부(300A)는 하나의 DMA 버퍼부(DB)를 포함하는 하나의 DMA 제어부(310A)를 포함한다.
도 1의 IPC부(300)는 복수의 DMA 제어부(310-1~310-M)를 포함하고, 각 DMA 제어부(310-1~310-M)는 DMA 버퍼부(DB)를 포함하나, 도 7의 IPC부(300A)는 하나의 통합된 DMA 버퍼부(DB)를 포함하는 하나의 통합된 DMA 제어부(310A)를 포함한다.
도 8은 본 발명의 또 다른 실시예에 따른 전자 장치에서 멀티캐스트 메시지의 전송 과정을 나타내는 도면이다. 도 8의 전자 장치(500a)는 도 1의 전자 장치(500)와 동일한 구성 요소를 포함할 수 있다. 도 1의 실시 예와 동일한 구성 요소에 대해서는 동일한 도면 부호를 부여하고, 동일한 설명은 생략한다.
도 8을 참고하면, 전자 장치(500a)는 3개의 프로세서(110a-1~110a-3)를 포함하고, IPC부(300a)는 3개의 DMA 제어부(310a-1~310a-3)를 포함한다.
도 8에서 전송 프로세서(SP)는 제2 프로세서(110a-2)라 가정하고, 제2 프로세서(110a-2)는 제1 프로세서(110a-1) 및 제3 프로세서(110a-3)에 전송할 멀티캐스트 메시지(MM)가 있다고 가정한다. 즉, 수신프로세서 집합에 포함되는 복수의 수신 프로세서(RP)는 제1 및 제3 프로세서(110a-1, 110a-3)이다. 또한, 제2 프로세서(110a-2)는 제3 프로세서(110a-3)에 전송할 유니캐스트 메시지(UM)가 있다고 가정한다.
각 메모리(113a-1~113a-3)의 수신 버퍼부(RB)는 2개의 수신 버퍼(RX1, RX2)를 포함하고, 전송 버퍼부(TB)는 2개의 전송 버퍼(TX1, TX2)를 포함하고, 공통 버퍼부(CB)는 1개의 공통 버퍼(CT1)를 포함할 수 있다. 각 DMA 버퍼부(DB)는 2개의 DMA 버퍼(DB1, DB2)를 포함할 수 있다. 전송 버퍼부(TB)의 복수의 전송 버퍼(TX1, TX2)는 각각 전송 버퍼부(TB)의 프로세서를 제외한 복수의 프로세서(110a-1~110a-3) 중 하나의 프로세서와 대응될 수 있다. 예를 들어, 제2 메모리(113a-2)의 제1 전송 버퍼(TX1)는 제1 프로세서(110a-1)에 대응되고, 제2 전송 버퍼(TX2)는 제3 프로세서(110a-3)에 대응될 수 있다. 전송 프로세서(SP)인 제2 프로세서(110a-2)는 유니캐스트 메시지(UM)을 저장할 때, 유니캐스트 메시지(UM)의 수신 프로세서(RP)에 대응되는 전송 버퍼에 유니캐스트 메시지(UM)를 저장할 수 있다.
다만, 도 8에 도시한 각 메모리(113a-1~113a-3) 및 각 DMA 버퍼부(DB)가 포함하는 버퍼의 개수 및 유니캐스트 메시지(UM)를 전송 버퍼부(TB)에 저장하는 방식은 예시에 불과하다.
제2 프로세서(110a-2)는 제1 및 제3 프로세서(110a-1, 110a-3)에 전송할 멀티캐스트 메시지(MM)를 공통 버퍼부(CB)의 제1 공통 버퍼(CT1)에 저장한다. 또한, 제2 프로세서(110a-2)는 제3 프로세서(110-3)에 전송할 유니캐스트 메시지(UM)를 제3 프로세서(110a-3)에 대응되는 제2 전송 버퍼(TX2)에 저장할 수 있다.
제2 DMA 제어부(310a-2)는 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)를 독출하여 멀티캐스트 메시지(MM)를 DMA 버퍼부(DB)의 DMA 버퍼(DB1)에 저장한다. 또한, 제2 DMA 제어부(310a-2)는 전송 버퍼부(TB)에 저장되어 있는 유니캐스트 메시지(UM)를 독출하여 유니캐스트 메시지(UM)를 DMA 버퍼부(DB)의 DMA 버퍼(DB2)에 저장할 수 있다.
제2 DMA 제어부(310a-2)는 멀티캐스트 메시지(MM) 및 유니캐스트 메시지(UM)를 동시에 독출하거나, 시간을 달리하여 독출할 수 있다. 또는, 제2 DMA 제어부(310a-2)는 멀티캐스트 메시지(MM)의 전송이 완료되기 전까지는 유니캐스트 메시지(UM)를 독출하지 않을 수도 있다.
제2 DMA 제어부(310a-2)는 DMA 버퍼(DB1)에 저장되어 있는 멀티캐스트 메시지(MM)를 수신 프로세서 집합에 포함되는 복수의 수신 프로세서(110a-1, 110a-3)의 각 메모리(113a-1, 113a-3)의 수신 버퍼(RX1)에 저장한다. 또한, 제2 DMA 제어부(310a-2)는 DMA 버퍼(DB2)에 저장되어 있는 유니캐스트 메시지(UM)를 제3 프로세서(110a-3)의 제3 메모리(113a-3)의 수신 버퍼(RX2)에 저장한다.
이때, 제2 DMA 제어부(310a-2)는 유니캐스트 메시지(UM)보다 멀티캐스트 메시지(MM)를 우선적으로 처리할 수 있다. 예를 들어, 전송 프로세서(SP)인 제2 프로세서(110a-2)의 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)가 저장되어 있고, 전송 버퍼부(TB)에는 유니캐스트 메시지(UM)가 저장되어 있는 경우, 제2 DMA 제어부(310a-2)는 멀티캐스트 메시지(MM)의 전송이 완료되기 전까지는 유니캐스트 메시지(UM)를 독출하지 않을 수 있다.
아니면, 제2 DMA 제어부(310a-2)는 멀티캐스트 메시지(MM)과 유니캐스트 메시지(UM)를 모두 독출하여 제2 DMA 제어부(310a-2)의 DMA 버퍼부(DB)에 멀티캐스트 메시지(MM) 및 유니캐스트 메시지(UM)를 저장할 수 있다. 이 경우, 제2 DMA 제어부(310a-2)는 멀티캐스트 메시지(MM)를 유니캐스트 메시지(UM)보다 먼저 전송할 수 있다.
이와 같이, 전송 프로세서(SP)인 제2 프로세서(110a-2)는 제2 메모리(113a-2) 및 IPC부(300a)의 제2 DMA 제어부(310a-2)를 이용하여 멀티캐스트 메시지(MM) 및 유니캐스트 메시지(UM)를 각 수신 프로세서(RP)에 전송할 수 있다. 특히 멀티캐스트 메시지(MM)는 공통 버퍼부(CB)를 이용하고, 유니캐스트 메시지(UM)는 전송 버퍼부(TB)를 이용한다.
도 9는 공통 버퍼부를 포함하지 않는 전자 장치에서 메시지의 전송 과정을 나타내는 도면이다.
도 9를 참고하면, 전자 장치(500b)는 도 8의 전자 장치(500a)에 포함되는 공통 버퍼부(CB)를 포함하지 않는다. 도 9에서 전송 프로세서(SP)는 제2 프로세서(110b-2)라 가정한다. 도 9에서 제2 프로세서(110b-2)는 제1 프로세서(110b-1) 및 제3 프로세서(110b-3)에 전송할 멀티캐스트 메시지(MM)가 있다고 가정한다. 즉, 수신 프로세서 집합에 포함되는 복수의 수신 프로세서(RP)는 제1 및 제3 프로세서(110b-1, 110b-3)이다.
제2 프로세서(110b-2)는 제1 프로세서(110b-1)에 전송할 멀티캐스트 메시지(MM)를 제1 프로세서(110b-1)에 대응되는 제2 메모리(113b-2)의 제1 전송 버퍼(TX1)에 저장하고, 제3 프로세서(111b-3)에 전송할 멀티캐스트 메시지(MM)를 제3 프로세서(111b-3)에 대응되는 제2 전송 버퍼(TX2)에 저장한다.
도 9의 전자 장치(500b)는 공통 버퍼부(CB)가 없으므로, 수신 프로세서 집합에 포함되는 수신 프로세서(110b-1, 110b-3)의 개수만큼 전송 버퍼부(TB)의 전송 버퍼(TX1, TX2)에 반복해서 저장된다.
제2 DMA 제어부(310b-2)는 2개의 전송 버퍼(TX1, TX2)에 저장되어 있는 동일한 멀티캐스트 메시지(MM)를 2번 독출하여, 동일한 멀티캐스트 메시지(MM)를 DMA 버퍼부(DB)의 2개의 DMA 버퍼(DB1, DB2)에 저장한다.
제2 DMA 제어부(310b-2)는 제1 DMA 버퍼(DB1)에 저장되어 있는 멀티캐스트 메시지(MM)를 제1 메모리(113b-1)의 수신 버퍼(RX1)에 기입한다. 또한, 제2 DMA 제어부(310b-2)는 제2 DMA 버퍼(DB2)에 저장되어 있는 멀티캐스트 메시지(MM)를 제3 메모리(113b-3)의 수신 버퍼(RX1)에 기입한다.
이와 같이 본 발명의 실시 예에 따르지 않는 도 9의 전자 장치(500b)는 공통 버퍼부(CB)를 포함하지 않고, 멀티캐스트 메시지(MM)는 유니캐스트 메시지(UM)처럼 처리된다. 즉, 전송 프로세서(SP)가 멀티캐스트 메시지(MM)를 전송하고자 하는 경우, 수신 프로세서 집합에 포함되는 복수의 수신 프로세서의 개수만큼의 전송 버퍼부(TB)에 멀티캐스트 메시지(MM)를 반복해서 저장해야 한다. 따라서 전송 프로세서(SP)는 전송 버퍼부(TB)에 멀티캐스트 메시지(MM)의 기입을 반복하게 된다.
반면, 도 8의 전자 장치(500a)의 경우, 멀티캐스트 메시지(MM)를 공통 버퍼부(CB)에 저장하면 되므로, 전송 프로세서(SP)는 공통 버퍼부(CB)에 멀티캐스트 메시지(MM)의 기입을 한번만 하면 된다. 즉, 메모리(113a-2)에 동일한 멀티캐스트 메시지(MM)가 반복해서 기입되지 않으므로, 전송 프로세서(SP)의 메모리(113a-2)가 효율적으로 사용될 수 있고, 전송 프로세서(SP)의 동작의 오버헤드가 줄 수 있다.
또한 도 9의 전자 장치(500b)의 경우, 제2 DMA 제어부(310b-2)는 복수의 전송 버퍼(TX1, TX3)에 저장되어 있는 동일한 멀티캐스트 메시지(MM)를 반복해서 독출하고, 복수의 DMA 버퍼(DB1, DB2)에 동일한 멀티캐스트 메시지(MM)를 반복해서 기입하게 된다.
반면, 도 8의 전자 장치(500a)의 경우, 제2 DMA 제어부(310a-2)는 공통 버퍼부(CB)에 저장되어 있는 멀티캐스트 메시지(MM)을 한번 독출해서 하나의 DMA 버퍼(DB1)에 멀티캐스트 메시지(MM)을 한번만 기입하면 된다. 따라서 DMA 버퍼부(DB)가 효율적으로 사용될 수 있고, 제2 DMA 제어부(310a-2)의 동작의 오버헤더가 줄 수 있다. 또한, 멀티캐스트 메시지(MM)의 이동으로 인한 버스(BUS)의 트래픽(traffic)이 감소하게 된다.
이와 같이, 본 발명의 실시예에 따르면, 복수의 프로세서 사이의 통신을 효율적으로 수행하는 전자 장치를 제공할 수 있다.
복수의 프로세서의 메모리마다 공통 버퍼부를 포함함으로써, 메모리 또는 버퍼의 사용을 효율적으로 할 수 있고, 프로세서 및 DMA 제어부의 동작의 오버헤드를 줄일 수 있다. 또한 메시지의 이동으로 인한 버스의 트래픽 역시 감소된다.
또한 전송 버퍼에 저장되어 있는 유니캐스트 메시지보다 공통 버퍼에 저장되어 있는 멀티캐스트 메시지를 먼저 처리함으로써, 멀티캐스트 메시지가 긴급 메시지인 경우 전자 장치의 성능을 향상시킬 수 있다.
도 10은 본 발명의 실시 예에 따른 전자 장치를 컴퓨팅 시스템 장치로 구현한 예를 나타내는 블록도이다.
도 10을 참고하면, 컴퓨팅 시스템 장치(CSYS)는 버스(BUS)에 전기적으로 연결된 다중 프로세서(MP), IPC부(IPCU), 저장 장치(SD), 램(RAM) 및 사용자 인터페이스(UI)를 구비한다. 예를 들어, 저장 장치(SD)는 솔리드 스테이트 드라이브(Solid State Drive: SSD)일 수 있다.
다중 프로세서(MP)는 복수의 프로세서(P1~PM)을 포함하고, 복수의 프로세서(P1~PM) 각각은 코어(CORE) 및 메모리(MEM)를 포함한다. 도 10의 다중 프로세서(MP)는 도 1의 다중 프로세서(100)일 수 있고, 도 10의 IPC부(IPCU)는 도 1의 IPC부(300)일 수 있다.
다중 프로세서(MP)에 포함되는 복수의 프로세서(P1~PM)는 IPC부(IPCU)를 통해 멀티캐스트 메시지 등의 메시지를 주고 받을 수 있다. 또한 다중 프로세서(MP)는 컴퓨팅 시스템 장치(CSYS)에 대한 명령을 읽고 실행한다. 예를 들어, 다중 프로세서(MP)는 저장 장치(SD)에 데이터가 송수신되도록 제어할 수 있다. 다중 프로세서(MP)의 동작에 필요한 정보는 램(RAM)에 로딩될 수 있다. 사용자 인터페이스(UI)는 사용자의 요청을 수신하여 다중 프로세서(MP)로 전송하거나, 다중 프로세서(MP)의 동작 결과를 출력할 수 있다. 본 발명의 실시 예에 따른 컴퓨팅 시스템 장치(CSYS)는 파워 공급 장치(PS)를 더 구비할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템 장치(CSYS)가 모바일 장치인 경우, 컴퓨팅 시스템 장치(CSYS)의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시 예에 따른 컴퓨팅 시스템 장치(CSYS)에는 응용 칩셋(application chipset), 카메라 이미지 코어(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명한 사항인 바, 더 자세한 설명은 생략한다.
도 11은 본 발명의 실시 예에 따른 전자 장치를 솔리드 스테이트 드라이브로 구현한 예를 나타내는 블록도이다.
도 11을 참고하면, 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)는 SSD 컨트롤러(SCTL) 및 플래시 메모리(FMEM)를 포함할 수 있다. SSD 컨트롤러(SCTL)는 버스(BUS)로 연결되는 다중 프로세서(MP), IPC부(IPCU), 램(RAM), 캐쉬 버퍼(CBUF), 호스트 인터페이스(HOST I/F) 및 메모리 컨트롤러(Ctrl)를 구비할 수 있다.
다중 프로세서(MP)는 복수의 프로세서(P1~PM)을 포함하고, 복수의 프로세서(P1~PM) 각각은 코어(CORE) 및 메모리(MEM)를 포함한다. 도 11의 다중 프로세서(MP)는 도 1의 다중 프로세서(100)일 수 있고, 도 11의 IPC부(IPCU)는 도 1의 IPC부(300)일 수 있다.
다중 프로세서(MP)는 호스트(도시하지 않음)의 요청(명령, 어드레스, 데이터)에 응답하여 메모리 컨트롤러(Ctrl)가 플래시 메모리(FMEM)와 데이터를 송수신하도록 제어한다. 다중 프로세서(MP)의 동작에 필요한 정보는 램(RAM)에 로딩될 수 있다.
호스트 인터페이스(HOST I/F)는 호스트의 요청을 수신하여 다중 프로세서(MP)로 전송하거나, 플래시 메모리(FMEM)로부터 전송된 데이터를 호스트로 전송한다. 호스트 인터페이스(HOST I/F)는 USB(Universal Serial Bus), MMC(Man Machine Communication), PCI-E(Peripheral Component Interconnect-Express), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Device Interface), 그리고 IDE(Intelligent Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜로, 호스트와 인터페이스 할 수 있다. 플래시 메모리(FMEM)로 전송하고자 하거나, 플래시 메모리(FMEM)로부터 전송된 데이터는 캐쉬 버퍼(CBUF)에 임시로 저장될 수 있다. 캐쉬 버퍼(CBUF)는 SRAM 등일 수 있다.
도 12는 본 발명의 실시 예에 따른 전자 장치를 포함하는 네트워크 시스템을 나타내는 도면이다.
도 12를 참고하면, 전자 장치(EA)는 네트워크 시스템(NSYS)에 연결되는 서버(SERVER)에 포함될 수 있다. 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버(SERVER) 및 다수의 단말기들(TEM1~TEMn)을 포함할 수 있다. 서버(SERVER)는 네트워크에 연결되는 다수의 단말기들(TEM1~TEMn)로부터 수신되는 요청을 처리한다. 전자 장치(EA)는 복수의 프로세서를 포함하는 다중 프로세서(미도시) 및 IPC부(미도시)를 포함하고, 복수의 프로세서는 서로 IPC부를 통해 메시지를 주고 받을 수 있다. 이때, 도 10의 전자 장치(EA)는 복수의 프로세서를 포함하는 도 1의 전자 장치(500)일 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 프로세서; 및
    상기 복수의 프로세서 사이의 통신을 수행하는 IPC부(inter-processor communication unit)를 포함하고,
    상기 복수의 프로세서는 각각 코어 및 메모리를 포함하고,
    상기 메모리는 공통 버퍼부 및 전송 버퍼부를 포함하고,
    상기 복수의 프로세서 중 멀티캐스트 메시지 또는 유니캐스트 메시지를 전송하는 프로세서인 전송 프로세서의 코어는,
    상기 전송 프로세서의 공통 버퍼부에 상기 멀티캐스트 메시지를 기입(write)하고, 상기 전송 프로세서의 전송 버퍼부에 상기 유니캐스트 메시지를 기입하는 것을 특징으로 하는 전자 장치.
  2. 제1 항에 있어서, 상기 IPC부는,
    DMA 버퍼부를 포함하는 DMA(direct memory access) 제어부를 포함하고,
    상기 DMA 제어부는 상기 공통 버퍼부에 저장되어 있는 상기 멀티캐스트 메시지를 독출(read)하고, 상기 멀티캐스트 메시지를 상기 DMA 버퍼부에 저장하는 것을 특징으로 하는 전자 장치.
  3. 제2 항에 있어서, 상기 DMA 제어부는,
    상기 DMA 버퍼부에 저장되어 있는 상기 멀티캐스트 메시지를 수신 프로세서 집합에 전송하되,
    상기 수신 프로세서 집합은 복수의 수신 프로세서를 포함하고,
    상기 복수의 수신 프로세서는 상기 복수의 프로세서 중 2개 이상의 프로세서인 것을 특징으로 하는 전자 장치.
  4. 제3 항에 있어서, 상기 메모리는,
    수신 버퍼부를 더 포함하고,
    상기 DMA 제어부는 상기 복수의 수신 프로세서의 각 수신 버퍼부에 상기 멀티캐스트 메시지를 기입하는 것을 특징으로 하는 전자 장치.
  5. 제3 항에 있어서, 상기 DMA 제어부는,
    상기 멀티캐스트 메시지를 상기 복수의 수신 프로세서 중 적어도 하나의 수신 프로세서에 전송한 후, 상기 전송 프로세서에 상기 적어도 하나의 수신 프로세서에 대한 ACK 신호를 전송하는 것을 특징으로 하는 전자 장치.
  6. 제5 항에 있어서, 상기 멀티캐스트 메시지는,
    상기 수신 프로세서 집합을 지시하는 헤더 필드를 포함하는 것을 특징으로 하는 전자 장치.
  7. 제6 항에 있어서, 상기 헤더 필드는,
    비트맵 방식으로 상기 수신 프로세서 집합을 지시하는 것을 특징으로 하는 전자 장치.
  8. 제7 항에 있어서, 상기 ACK 신호에 의해,
    상기 전송 프로세서의 상기 공통 버퍼부에 저장되어 있는 상기 멀티캐스트 메시지의 상기 헤더 필드가 지시하는 상기 수신 프로세서 집합이 변경되는 것을 특징으로 하는 전자 장치.
  9. 제2 항에 있어서, 상기 DMA 제어부는,
    상기 전송 버퍼부에 저장되어 있는 상기 유니캐스트 메시지를 독출하고, 상기 유니캐스트 메시지를 상기 DMA 버퍼부에 저장하고,
    상기 DMA 버퍼부에 저장되어 있는 상기 유니캐스트 메시지를 상기 복수의 프로세서 중 하나의 프로세서에 전송하는 것을 특징으로 하는 전자 장치.
  10. 제9 항에 있어서, 상기 DMA 제어부는,
    상기 유니캐스트 메시지보다 상기 멀티캐스트 메시지를 우선적으로 전송하는 것을 특징으로 하는 전자 장치.
KR1020110054142A 2011-06-03 2011-06-03 복수의 프로세서를 포함하는 전자 장치 KR20120134918A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110054142A KR20120134918A (ko) 2011-06-03 2011-06-03 복수의 프로세서를 포함하는 전자 장치
US13/486,563 US8891523B2 (en) 2011-06-03 2012-06-01 Multi-processor apparatus using dedicated buffers for multicast communications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110054142A KR20120134918A (ko) 2011-06-03 2011-06-03 복수의 프로세서를 포함하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20120134918A true KR20120134918A (ko) 2012-12-12

Family

ID=47261642

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110054142A KR20120134918A (ko) 2011-06-03 2011-06-03 복수의 프로세서를 포함하는 전자 장치

Country Status (2)

Country Link
US (1) US8891523B2 (ko)
KR (1) KR20120134918A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101486547B1 (ko) * 2013-05-15 2015-01-27 (주)한국거래소 Ldma방법을 이용한 ipc장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7309580B2 (ja) * 2019-11-14 2023-07-18 株式会社東芝 通信装置、通信方法及びプログラム
KR20210080967A (ko) * 2019-12-23 2021-07-01 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN111459857B (zh) * 2020-03-31 2022-04-19 西安微电子技术研究所 一种tcm控制器及数据缓存读取方法
US11604748B2 (en) 2020-10-30 2023-03-14 Microsoft Technology Licensing, Llc Interconnect for direct memory access controllers

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811216A (en) 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
ES2072862T3 (es) 1987-06-24 1995-08-01 Westinghouse Electric Corp Intercambio de informacion en un sistema multiprocesador.
KR20000013078A (ko) 1998-08-04 2000-03-06 윤종용 다중 프로세서 시스템의 프로세서간 통신 장치 및 방법
US8868790B2 (en) * 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
JP4490397B2 (ja) 2006-07-03 2010-06-23 日本電信電話株式会社 分散共有メモリを用いた同報通信方法、同報通信装置、および、同報通信プログラム
US8335884B2 (en) * 2009-07-10 2012-12-18 Brocade Communications Systems, Inc. Multi-processor architecture implementing a serial switch and method of operating same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101486547B1 (ko) * 2013-05-15 2015-01-27 (주)한국거래소 Ldma방법을 이용한 ipc장치

Also Published As

Publication number Publication date
US20120307827A1 (en) 2012-12-06
US8891523B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
US10331595B2 (en) Collaborative hardware interaction by multiple entities using a shared queue
US9749413B2 (en) Peer-to-peer interrupt signaling between devices coupled via interconnects
US20140068134A1 (en) Data transmission apparatus, system, and method
CN105740195B (zh) Or链式总线的增强数据总线反转编码的方法和装置
CN109726163B (zh) 一种基于spi的通信系统、方法、设备和储存介质
US10979503B2 (en) System and method for improved storage access in multi core system
WO2018075182A1 (en) Gpu remote communication with triggered operations
US20070006020A1 (en) Inter-host data transfer method, program, and system
EP3223162B1 (en) Configurable on-chip interconnection system and method and apparatus for implementing same, and storage medium
US20090210595A1 (en) Data transfer between devices within an integrated circuit
KR20120134918A (ko) 복수의 프로세서를 포함하는 전자 장치
KR20130036727A (ko) 반도체 저장 장치 기반 시스템에서 메인 메모리가 없는 직접 메모리 엑세스 시스템
CN109992543A (zh) 一种基于zyzq-7000的pci-e数据高效传输方法
KR102367359B1 (ko) 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법
WO2012138111A2 (en) Dynamic random access memory for a semiconductor storage device-based system
CN113468090A (zh) 一种PCle通信方法、装置、电子设备及可读存储介质
US10176133B2 (en) Smart device with no AP
JP6092351B2 (ja) クロスダイ・インタフェース・スヌープ又はグローバル観測メッセージの順序付け
EP2801032B1 (en) Bimodal functionality between coherent link and memory expansion
CN110765046A (zh) 一种动态可重构高速串行总线的dma传输装置与方法
CN115454881A (zh) Risc-v架构的调试系统及调试方法
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
EP4254207A1 (en) Data processing apparatus and method, and related device
CN110489359B (zh) 一种数据传输控制方法及系统

Legal Events

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