KR100976628B1 - 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법 - Google Patents

다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법 Download PDF

Info

Publication number
KR100976628B1
KR100976628B1 KR1020080043605A KR20080043605A KR100976628B1 KR 100976628 B1 KR100976628 B1 KR 100976628B1 KR 1020080043605 A KR1020080043605 A KR 1020080043605A KR 20080043605 A KR20080043605 A KR 20080043605A KR 100976628 B1 KR100976628 B1 KR 100976628B1
Authority
KR
South Korea
Prior art keywords
data
core
processing
processor
memory
Prior art date
Application number
KR1020080043605A
Other languages
English (en)
Other versions
KR20090117516A (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 KR1020080043605A priority Critical patent/KR100976628B1/ko
Priority to US12/346,803 priority patent/US20090282215A1/en
Publication of KR20090117516A publication Critical patent/KR20090117516A/ko
Application granted granted Critical
Publication of KR100976628B1 publication Critical patent/KR100976628B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Abstract

다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱 방법에 관한 것으로서, 상기 다중 프로세서 시스템은 데이터 코어 및 프로세싱 코어로 이루어진 다수의 프로세서; 및 상기 각 프로세서에 포함된 데이터 코어와 프로세싱 코어를 데이터 코어-프로세싱 코어 쌍의 임의의 조합으로 연결하는 스위치를 포함함으로써, 통신을 위한 오버헤드를 없애고, 프로그래밍을 쉽고 간단히 할 수 있다.
다중 프로세서 시스템, 프로세서, 데이터 코어, 프로세싱 코어, 스위치, PPDM, PKDM.

Description

다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱 방법{Multi-processor system and multi-processing method in multi-processor system}
본 발명은 다중 프로세서에 관한 것으로서, 특히 통신을 위한 오버헤드를 없애고, 프로그래밍을 쉽고 간단히 하는 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱 방법에 관한 것이다.
다중 프로세서를 가지는 시스템에서 여러 개의 프로세서 코어들을 연동하기 위해서는 프로세서 간 통신이 필요하다. 특히, 프로세서 간 통신이 잦거나 전달해야 할 데이터양이 많은 어플리케이션의 경우, 통신이 효율적으로 처리되어야만 다중 프로세서 시스템의 성능을 향상시킬 수 있다.
프로세서 간 통신을 위한 다중 프로세서 시스템의 구조는 크게 메모리 계층 구조와, 프로세서들과 메모리들을 연결하는 연결 구조로 구분될 수 있다. 이러한 각 구조는 기존에 다양한 기술들이 알려져 사용되고 있다.
일반적으로 다중 프로세서 시스템에서 하나의 프로세서가 다른 프로세서로 데이터를 전달하기 위한 방법으로는 다음과 같은 두 방법이 주로 이용되고 있다. 그 한 방법은 두 프로세서가 공유하는 메모리에 데이터를 적어주는 방법이고, 다른 한 방법은 한 프로세서가 다른 프로세서로 직접 또는 간접적으로 연결된 채널을 통해 전달하는 방법이다.
그러나 이러한 두 방법은 모두 긴 레이턴시(latency)를 가지며, 프로그램에서도 추가 작업이 필요하다는 문제점이 있다.
또한, 다중 프로세서 시스템에서의 프로그래밍은 단일 프로세서를 시용하는 경우보다 매우 복잡할 뿐만 아니라 여러 프로세서를 효율적으로 병렬 동작하게 하는 것이 어려워 비용부담이 크다는 문제점이 있다.
상술한 바와 같은 문제점을 해결하기 위해 본 발명은 통신 오버헤드를 없애고, 프로그래밍을 쉽고 간단히 하기 위한 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱 방법을 제공한다.
상기 이러한 본 발명의 목적을 달성하기 위한 다중 프로세서 시스템은, 데이터 코어 및 프로세싱 코어로 이루어진 다수의 프로세서; 및 상기 각 프로세서에 포함된 데이터 코어와 프로세싱 코어를 데이터 코어-프로세싱 코어 쌍의 임의의 조합으로 연결하는 스위치를 포함하는 것을 특징으로 한다.
상기 이러한 본 발명의 목적을 달성하기 위한 다중 시스템에서의 다중 프로세싱 방법은, 다수의 프로세서에 포함된 프로세싱 코어와 데이터 코어를 데이터 코어-프로세싱 코어 쌍의 임의의 조합으로 연결하는 과정; 상기 프로세싱 코어를 통해 상기 연결된 데이터 코어로 입력되는 데이터를 처리하는 과정; 상기 데이터의 처리에 관련된 중간 결과인 프로세스 프로파게이트 데이터를 상기 연결된 데이터 코어 내에 포함된 프로세스 프로파게이트 데이터 메모리에 저장하는 과정; 및 상기 프로세싱 코어 내에 포함된 프로세스 킵 데이터 메모리(PKDM)에 상기 데이터의 처리를 위해 필요한 데이터를 저장하는 과정을 포함하는 것을 특징으로 한다.
본 발명은 다중 프로세서 시스템에서의 통신이 한 번의 프로세싱/데이터 스위칭으로 이루어지므로 통신을 위한 오버헤드를 없앨 수 있으며, 단일 프로세서 프로그램에 스위칭 명령어 및 PPDM과 PKDM에 저장할 데이터를 지정에 대한 두 부분만을 추가해줌으로써 단일 프로세서를 그대로 사용하여 다중 프로세서에서 이용할 수 있는 효과가 있다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 실시예에 따른 다중 프로세서 시스템에서의 프로세서 구조를 도시한 도면이고, 도 2는 본 발명의 실시예에 따른 다중 프로세서 시스템의 구조를 도시한 도면이고,
상기 도 1 및 도 2를 참조하면, 본 발명의 다중 프로세서 시스템은 다수의 프로세서들로 이루어지며, 각 프로세서는 데이터 코어(110)와, 프로세싱 코어(120)로 구성된다. 그리고 상기 다중 프로세서 시스템은 각 프로세서 내의 데이터 코어(110)와 프로세싱 코어(120)를 서로 바꾸어 연결하는 스위치(130)를 포함한다.
데이터 코어(110)는 레지스터(111), 데이터 캐시(112) 및 프로세스 프로파게이트 데이터 메모리(Process Propagate Data Memory 이하, PPDM이라 칭함)(113)를 포함한다. 여기서 PPDM(113)은 데이터 코어(110)의 자체 메모리로서, 한 데이터 코어가 프로세싱 코어들(120)에 순차적으로 연결되는 과정에서 계속 가지고 있어야 할 데이터를 저장한다.
프로세싱 코어(120)는 명령어 처리를 위한 명령어 처리부(121), 연산을 위한 데이터패스(122) 및 프로세스 킵 데이터 메모리(Process Keep Data Memory 이하, PKDM이라 칭함)(123)를 포함한다. 여기서 PKDM(123)은 프로세싱 코어(120)의 자체 메모리로서, 특정 프로세싱을 위해 필요한 데이터를 저장한다.
스위치(130)는 여러 데이터 코어(110)와 프로세싱 코어(120)들을 데이터 코어-프로세싱 코어 쌍의 임의 조합으로 연결한다. 스위치(130)는 각 프로세싱 코어들(120)로부터 스위칭 명령을 받는다. 이때, 프로세싱 코어(120)와 데이터 코어(110)의 조합은 미리 정해진 순서에 따라 순차적으로 연결할 수도 있으며, 각 프로세싱 코어(120)가 다음 데이터 코어(110)를 지정하여 실시간으로 그 연결이 변할 수도 있다. 이 스위칭 과정에서 프로세싱 코어(120) 간의 통신이 추가적인 오버헤드(overhead) 없이 이루어진다. 예를 들어, 두 개의 프로세싱 코어(120)가 스위칭을 통해 각각 자신과 연결된 데이터 코어(110)를 서로 교환하여 연결하였다면, 두 개의 프로세싱 코어(120) 사이의 데이터 전달(transfer) 과정 없이 데이터 전체를 교환한 것과 같은 효과를 가진다. 즉, 프로세서 간 통신은 예를 들어, 한 프로세싱 코어(120a)에 연결된 데이터 코어가 다른 프로세싱 코어(120b)로 연결됨에 따라 추 가적인 오버헤드(overhead) 없이 이루어진다. 또한, 스위치(130)는 프로세서로부터 명령을 받기 위해 프로세서의 메모리 맵 상의 특정 영역에 레지스터(register)를 가질 수도 있으며, 프로세싱 코어(120)의 특정 용도의 레지스터(register)를 스위칭을 위해 할당할 수도 있다.
상기 도 2에 도시된 바와 같은 상기 데이터 코어(110) 및 프로세스 코어(120) 쌍으로 이루어진 4개의 프로세서(Processor)는 데이터 코어들(110a~110d)로 순차적으로 들어오는 4개의 데이터에 대해서 동시에 다른 일들을 수행하기 때문에 일부 메모리 영역이 분리되어야 한다. 이는 연속적으로 들어오는 데이터 스트림에 대해 동시에 다른 동작들을 하기 때문에 특정 데이터에 대해서 처리된 중간 결과를 다른 프로세싱 코어에서의 중간 결과와 같은 메모리 공간을 공유해 저장할 경우 문제가 발생하게 된다. 따라서 이러한 문제점을 해결하기 위해 상기 PPDM(113)을 이용한다. 상기 각 프로세서에 포함된 PPDM(113a~113d)은 특정 데이터를 처리하기 위한 프로세스(Process) 과정 중 해당 데이터 처리에만 관련된 중간 결과인 프로세스 프로파게이션 데이터를 자신의 데이터 코어 안에 다른 데이터 코어의 프로세스 프로파게이션 데이터와 분리하여 저장한다.
반면, 특정 프로세싱 코어에 관련된 데이터는 데이터 스트림에 따라서 변할 필요가 없기 때문에 프로그램 코드처럼 공유되어도 상관없다. 하지만, 프로세싱 코어에서 이러한 데이터의 접근이 잦은 경우, 레이턴스(latency)가 긴 공유 메모리에 계속 해서 접근해 성능 저하가 발생할 수 있다. 따라서 특정 프로세싱 코어에만 관련된 자주 접근하는 데이터는 PKDM(123a~123d)에 저장한다. 이에 따라 다중 프로세 서 시스템은 성능 향상을 가져올 수 있다.
이와 같이 구성된 다중 프로세서 시스템은 멀티미디어 데이터 처리 등의 데이터 플로우 형태의 어플리케이션에 적합하다. 이러한 어플리케이션에 대한 가상 실시예를 첨부된 도면들을 참조하여 설명하면 다음과 같다.
상기 어플리케이션은 도 3에 도시된 바와 같이, 데이터 플로우 형태로 연속적인 스트림 데이터를 프로세스 A, B, C, D 과정을 통해 처리한다. 이러한 어플리케이션의 프로세싱 과정을 본 발명의 실시예에 따른 다중 프로세서 시스템에 적용시키면, 다중 프로세서 시스템은 프로세스 A, B, C, D 과정을 위해 상기 도 2에 도시된 바와 같이, 4개의 프로세서, 즉 4개의 데이터 코어(110a~110d)와 프로세싱 코어(120a~120d) 쌍을 둔다. 여기서 4개의 프로세싱 코어(120a~120d)는 각각 프로세스 A, B, C, D를 수행한다. 각 프로세싱 코어(120a~120d)는 일들을 나누어 하며, 프로세싱 코어 간에 데이트를 넘겨주는 것은 데이터 코어를 넘겨줌으로써 이루어진다.
예를 들어, 8개의 데이터 셋(1~8)을 프로세스 A, B, C, D 과정을 통해 처리할 경우, 도 4에 도시된 바와 같이, 스위치(130)를 통해 각각의 프로세싱 코어(120a~120d)와 데이터 코어(110a~110d)가 순차적으로 연결될 수 있다. 여기서 프로세스 A, B, C, D 과정은 파이프라인이 된다. 따라서 전체 'throughput'은 단일 프로세서로 수행할 때 보다 1/4가 줄어들며, 상기 도 2 도시된 바와 같은 4개의 프로세서를 최대한 효율적으로 이용할 수 있게 된다.
그러면 상기 도 3에 도시된 바와 같은 가상의 어플리케이션을 적용한 경우 파이프라인된 프로그램 및 데이터 흐름을 첨부된 도 5를 참조하여 구체적으로 설명하기로 한다.
첫 번째 사이클(cycle 0)에서는 상기 도 3의 프로세스 A 과정을 수행하는데, 제1 프로세싱 코어(P-Core A)(120a)는 제1 데이터 코어(110a)와 연결되어 쌍을 이룬다. 여기서 상기 제1 프로세싱 코어(120a)는 순차적으로 들어오는 데이터 즉, 첫 번째 데이터를 처리한다. 이때, 해당 데이터 처리에만 관련된 중간 결과는 제1 데이터 코어(110a) 내의 제1 PPDM(113a)에 저장된다. 이러한 저장된 데이터를 프로세스 프로파게이트 데이터(PPD)라 칭하기로 한다. 그리고 제1 프로세싱 코어(120a) 내의 제1 PKDM(123a)에는 프로세스 A와 관련된 자주 접근하는 데이터인 프로세스 킵 데이터(PKD A)를 저장한다.
두 번째 사이클(cycle 1)에서는 프로세스 A 및 프로세스 B 과정을 수행하는데, 제1 프로세싱 코어(P-Core A)(120a)는 제2 데이터 코어(110b)와 연결되어 쌍을 이루고, 제2 프로세싱 코어(P-Core B)(120b)는 제1 데이터 코어(110a)와 연결되어 쌍을 이룬다. 이때, 첫 번째 사이클(cycle 0)에서의 프로세스 A 과정의 데이터 처리에만 관련된 중간 결과인 PPD 1은 프로세서 B 과정으로 전달되고, 제2 프로세싱 코어(120b)에서 처리된다. 이에 따라 제2 프로세싱 코어(120b) 내의 제2 PKDM(123b)에는 프로세스 B 과정과 관련된 자주 접근하는 데이터(PKD B)가 저장된다. 한편, 제1 프로세싱 코어(120a)는 제2 데이터 코어(110b)로 입력된 데이터를 처리하여 데이터 처리에만 관련된 중간 결과인 PPD 2를 제2 PPDM(113b)에 저장하 고, 프로세스 A 과정과 관련된 자주 접근하는 데이터(PKD A)를 제1 PKDM(123a)에 저장한다.
세 번째 사이클(cycle 2)에서는 프로세스 A, B, C 과정을 수행한다. 여기서 제1 프로세싱 코어(P-Core A)(120a)는 제3 데이터 코어(110c)와 연결되고, 제2 프로세싱 코어(P-Core B)(120b)는 제2 데이터 코어(110b)와 연결되고, 제3 프로세싱 코어(P-Core C)(120c)는 제1 데이터 코어(110a)와 연결되어 쌍을 이룬다.
상기 두 번째 사이클(cycle 1)에서의 PPD 1은 프로세스 C 과정으로 전달되어 제3 프로세싱 코어(120c)에서 처리되고, PPD 2는 프로세스 B 과정으로 전달되어 제2 프로세싱 코어(120b)에서 처리된다. 이에 따라 제3 프로세싱 코어(120c) 내의 제3 PKDM(123c)에는 PKD C가 저장되고, 제2 프로세싱 코어(120c) 내의 제2 PKDM(120b)에는 PKD B가 저장된다. 한편, 제1 프로세싱 코어(120a)는 제3 데이터 코어(110c)로 입력된 데이터를 처리하여 PPD 3을 제3 PPDM(113c)에 저장하고, PKD A를 제1 PKDM(123a)에 저장한다.
네 번째 사이클(cycle 3)에서는 프로세스 A, B, C, D 과정을 수행한다. 여기서 제1 프로세싱 코어(P-Core A)(120a)는 제4 데이터 코어(110d)와 연결되고, 제2 프로세싱 코어(P-Core B)(120b)는 제3 데이터 코어(110c)와 연결되고, 제3 프로세싱 코어(P-Core C)(120c)는 제2 데이터 코어(110b)와 연결되고, 제4 프로세싱 코어(P-Core D)(120d)는 제1 데이터 코어(110a)와 연결되어 쌍을 이룬다.
상기 세 번째 사이클(cycle 2)에서의 PPD 1은 프로세스 D 과정으로 전달되어 제4 프로세싱 코어(120d)에서 처리되고, PPD 2는 프로세스 C 과정으로 전달되어 제 3 프로세싱 코어(120c)에서 처리되고, PPD3은 제2 프로세싱 코어(120b)에서 처리된다. 이에 따라 제4 프로세싱 코어(120d) 내의 제4 PKDM(123d)에는 PKD D가 저장되고, 제3 프로세싱 코어(120c) 내의 제3 PKDM(123c)에는 PKD C가 저장되고, 제2 프로세싱 코어(120b) 내의 제2 PKDM(123b)에는 PKD B가 저장된다. 한편, 제1 프로세싱 코어(120a)는 제4 데이터 코어(110d)로 입력된 데이터를 처리하여 PPD 4를 제4 PPDM(113d)에 저장한다.
마찬가지로 상기 도 5에 도시된 바와 같이, 다섯 번째 사이클(cycle 4)에서도 상기와 같은 방법으로 PPD 5 내지 PPD 1을 각각 해당 PPDM(113)에 저장하고, 각 PKDM(123)에 해당 PKD를 저장함을 알 수 있다.
이와 같은 본 발명의 실시예에 따른 다중 프로세서 시스템에 따라 다중 프로세서의 프로그래밍도 간단히 설계할 수 있는데, 도 6은 이러한 다중 프로세서 프로그래밍의 의사 코드(pseudo code)를 보여준다. 이러한 다중 프로세서 프로그램은 단일 프로세서 프로그램을 단 2군데의 추가를 통해 이루어진다. 상기 도 6에 도시된 바와 같이, 첫 번째는 PPDM 과 PKDM에 저장할 데이터를 지정해주는 것이고, 두 번째는 프로세스 A, B, C, D가 분리되는 부분에 스위치로의 스위칭 명령어를 추가하는 것이다.
한편, 이와 같은 본 발명의 실시예에서 프로세스 과정들의 처리 시간이 일정치 않아서 때에 따라 데이터 코어가 준비되지 않아 프로세싱 코어가 기다려야 하는 경우가 발생할 수 있거나, 반대의 경우가 발생할 수 있다. 이와 같이 처리해야 할 데이터의 특성에 따라 로드 벨란싱이 잘 이루어지지 않을 경우, 본 발명의 실시예에 따른 상기 스위치는 기다리는 데이터 코어나 프로세싱 코어는 셧다운(shutdown)할 수 있고, 이러한 로드(load)를 알고리즘에서 미리 알 수 있다면, 전력 및 주파수 스케일링을 활용하여 저 전력으로 구현하면서 프로세싱 코어 간 로드 벨란싱(load balencing)을 맞출 수 있다. 즉, 본 발명의 실시예에 따른 상기 스위치는 클럭 게이팅(clock gating), 주파수 스케일링(frequency scaling), 전력 셧다운(power shutdown), 전압 스케일링(voltage scaling) 등의 저 전력 기법을 활용하기 좋다. 따라서 상술한 바와 같은 본 발명의 실시예에 따른 다중 프로세서 시스템은 저 전력 설계에도 큰 효과를 볼 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안 되며 후술하는 발명청구의 범위뿐 만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 실시예에 따른 다중 프로세서 시스템에서의 프로세서 구조를 도시한 도면,
도 2는 본 발명의 실시예에 따른 다중 프로세서 시스템의 구조를 도시한 도면,
도 3은 본 발명의 실시예에 따른 가상의 어플리케이션 순서를 도시한 도면,
도 4는 상기 도 3의 가상의 어플리케이션을 적용한 경우의 데이터 코어와 프로세싱 코어의 순차적 연결 상태를 도시한 도면,
도 5는 상기 도 3의 가상의 어플리케이션을 적용한 경우의 파이프라인된 프로그램 및 데이터 흐름을 도시한 도면,
도 6은 본 발명의 실시예에 따른 가상의 어플리케이션의 프로그램 의사 코드를 도시한 도면.

Claims (9)

  1. 삭제
  2. 데이터 코어 및 프로세싱 코어로 이루어진 다수의 프로세서; 및
    상기 프로세싱 코어의 스위칭 명령에 따라 상기 각 프로세서에 포함된 데이터 코어와 프로세싱 코어를 데이터 코어-프로세싱 코어 쌍의 조합으로 연결하는 스위치를 포함하며, 상기 데이터 코어는,
    프로세서의 레지스터;
    데이터 캐시; 및
    상기 데이터 코어가 상기 각 프로세서 내의 프로세싱 코어에 순차적으로 연결하도록 계속 가지고 있어야 할 데이터를 저장하는 프로세스 프로파게이트 데이터 메모리(PPDM)를 포함하는 것을 특징으로 하는 다중 프로세서 시스템.
  3. 제2항에 있어서,
    상기 프로세스 프로파게이트 데이터 메모리(PPDM)는 상기 데이터 코어의 자체 메모리로서, 특정 데이터 처리를 위한 프로세스 과정 중 해당 데이터 처리에만 관련된 중간 결과인 프로세스 프로파게이트 데이터를 자신의 데이터 코어 안에 다 른 데이터 코어의 프로세스 프로파게이트 데이터와 분리하여 저장하는 것을 특징으로 하는 다중 프로세서 시스템.
  4. 제2항에 있어서, 상기 프로세싱 코어는,
    다른 데이터 코어로의 스위칭 명령어를 처리하는 명령어 처리부;
    프로세싱 연산을 처리하는 데이터패스; 및
    특정 프로세싱을 위해 필요한 데이터를 저장하는 프로세스 킵 데이터 메모리(PKDM)를 포함하는 것을 특징으로 하는 다중 프로세서 시스템.
  5. 제4항에 있어서,
    상기 프로세스 킵 데이터 메모리(PKDM)는 상기 프로세싱 코어의 자체 메모리로서, 자신의 프로세싱 코어에만 관련된 자주 접근하는 데이터를 저장하는 것을 특징으로 하는 다중 프로세서 시스템.
  6. 제2항에 있어서,
    상기 스위치는 상기 각 프로세싱 코어로부터 스위칭 명령을 받아 미리 설정된 순서에 따라 순차적으로 상기 각 프로세싱 코어를 해당 데이터 코어와 연결함을 특징으로 하는 다중 프로세서 시스템.
  7. 제2항에 있어서,
    상기 스위치는 상기 각 프로세싱 코어로부터 지정된 데이터 코어로 상기 각 프로세싱 코어를 실시간 연결함을 특징으로 하는 다중 프로세서 시스템.
  8. 다수의 프로세서에 포함된 프로세싱 코어와 데이터 코어를 데이터 코어-프로세싱 코어 쌍의 임의의 조합으로 연결하는 과정;
    상기 프로세싱 코어를 통해 상기 연결된 데이터 코어로 입력되는 데이터를 처리하는 과정;
    상기 데이터의 처리에 관련된 중간 결과인 프로세스 프로파게이트 데이터를 상기 연결된 데이터 코어 내에 포함된 프로세스 프로파게이트 데이터 메모리에 저장하는 과정; 및
    상기 프로세싱 코어 내에 포함된 프로세스 킵 데이터 메모리(PKDM)에 상기 데이터의 처리를 위해 필요한 데이터를 저장하는 과정을 포함하는 것을 특징으로 하는 다중 프로세서 시스템에서의 다중 프로세싱 방법.
  9. 제8항에 있어서,
    상기 프로세싱 코어를 다른 프로세서 내의 데이터 코어와 순차적으로 연결하는 하는 과정;
    상기 다른 프로세서 내의 데이터 코어로 전달되는 데이터를 처리하는 과정;
    해당 프로세스 프로파게이트 데이터를 상기 다른 프로세서 내의 데이터 코어 내에 포함된 프로세스 프로파게이트 데이터 메모리에 저장하는 과정; 및
    상기 다른 프로세서 내의 데이터 코어의 상기 데이터의 처리에 필요한 데이터를 저장하는 과정을 더 포함하는 것을 특징으로 하는 다중 프로세서 시스템에서의 다중 프로세싱 방법.
KR1020080043605A 2008-05-09 2008-05-09 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법 KR100976628B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080043605A KR100976628B1 (ko) 2008-05-09 2008-05-09 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법
US12/346,803 US20090282215A1 (en) 2008-05-09 2008-12-30 Multi-processor system and multi-processing method in multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080043605A KR100976628B1 (ko) 2008-05-09 2008-05-09 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법

Publications (2)

Publication Number Publication Date
KR20090117516A KR20090117516A (ko) 2009-11-12
KR100976628B1 true KR100976628B1 (ko) 2010-08-18

Family

ID=41267824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080043605A KR100976628B1 (ko) 2008-05-09 2008-05-09 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법

Country Status (2)

Country Link
US (1) US20090282215A1 (ko)
KR (1) KR100976628B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040080431A (ko) * 2001-10-22 2004-09-18 선 마이크로시스템즈, 인코포레이티드 원격 직접 메모리 액세스 프로토콜을 갖는 통신링크의통합을 위한 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828880A (en) * 1995-07-06 1998-10-27 Sun Microsystems, Inc. Pipeline system and method for multiprocessor applications in which each of a plurality of threads execute all steps of a process characterized by normal and parallel steps on a respective datum
US6125429A (en) * 1998-03-12 2000-09-26 Compaq Computer Corporation Cache memory exchange optimized memory organization for a computer system
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US7159099B2 (en) * 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
US7587577B2 (en) * 2005-11-14 2009-09-08 Texas Instruments Incorporated Pipelined access by FFT and filter units in co-processor and system bus slave to memory blocks via switch coupling based on control register content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040080431A (ko) * 2001-10-22 2004-09-18 선 마이크로시스템즈, 인코포레이티드 원격 직접 메모리 액세스 프로토콜을 갖는 통신링크의통합을 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20090117516A (ko) 2009-11-12
US20090282215A1 (en) 2009-11-12

Similar Documents

Publication Publication Date Title
Sadasivam et al. IBM Power9 processor architecture
US10445234B2 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US9830156B2 (en) Temporal SIMT execution optimization through elimination of redundant operations
US9606797B2 (en) Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor
JP6143872B2 (ja) 装置、方法、およびシステム
US11740902B2 (en) Apparatus and method for configuring sets of interrupts
US8250348B2 (en) Methods and apparatus for dynamically switching processor mode
US10127039B2 (en) Extension of CPU context-state management for micro-architecture state
JP6469674B2 (ja) エミュレートされた共有メモリアーキテクチャのための浮動小数点サポートパイプライン
CN111752606A (zh) 用于对多个数据元素值执行约简操作的方法和装置
EP3716047A1 (en) Apparatus and method for controlling complex multiply-accumulate circuitry
CN115858016A (zh) 用于自适应调度异构处理资源上的工作的设备和方法
US9569211B2 (en) Predication in a vector processor
US9575755B2 (en) Vector processing in an active memory device
US20160170767A1 (en) Temporary transfer of a multithreaded ip core to single or reduced thread configuration during thread offload to co-processor
US9477628B2 (en) Collective communications apparatus and method for parallel systems
KR100976628B1 (ko) 다중 프로세서 시스템 및 그 시스템에서의 다중 프로세싱방법
KR102269157B1 (ko) 에뮬레이팅된 공유 메모리 아키텍처에서 긴 지연 연산을 위한 아키텍처
CN114691597A (zh) 自适应远程原子操作
WO2017115007A1 (en) Memory node with cache for emulated shared memory computers
Kelem et al. An elemental computing architecture for SD radio
US20170132003A1 (en) System and Method for Hardware Multithreading to Improve VLIW DSP Performance and Efficiency
US11449336B2 (en) Method of storing register data elements to interleave with data elements of a different register, a processor thereof, and a system thereof
Georg Designing a Dual Core Processor
He SIMD based multicore processor for image and video processing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130729

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150724

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160707

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170810

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee