[go: up one dir, main page]

KR100864834B1 - 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법 - Google Patents

메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법 Download PDF

Info

Publication number
KR100864834B1
KR100864834B1 KR1020070042189A KR20070042189A KR100864834B1 KR 100864834 B1 KR100864834 B1 KR 100864834B1 KR 1020070042189 A KR1020070042189 A KR 1020070042189A KR 20070042189 A KR20070042189 A KR 20070042189A KR 100864834 B1 KR100864834 B1 KR 100864834B1
Authority
KR
South Korea
Prior art keywords
processor element
page
memory
shared
processor
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.)
Active
Application number
KR1020070042189A
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 KR1020070042189A priority Critical patent/KR100864834B1/ko
Priority to US12/027,364 priority patent/US8464006B2/en
Application granted granted Critical
Publication of KR100864834B1 publication Critical patent/KR100864834B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

두 프로세서 간에 대량의 멀티미디어 데이터를 효율적으로 이동하기 위한 장치 및 방법이 개시된다. 본 발명의 데이터 전송 장치는, 제 1 프로세서 엘리먼트의 가상 페이지(virtual page)를 공유 메모리 페이지(shared memory page)에 연결하는 제 1 로컬 스위치; 제 2 프로세서 엘리먼트의 가상 페이지를 공유 메모리 페이지에 연결하는 제 2 로컬 스위치; 공유 물리 메모리의 임의의 공유 메모리 페이지를 제 1 로컬 스위치 또는 제 2 로컬 스위치로 연결하는 공유 페이지 스위치; 및 제 1 프로세서 엘리먼트가 수행한 태스크의 데이터가 저장된 공유 물리 메모리 상의 특정 공유 메모리 페이지를 제 2 프로세서 엘리먼트의 가상 페이지에 재할당(remapping)하는 스위치 관리부;를 포함한다. 본 발명에 따르면, 메모리 재할당을 이용하므로 메모리 버스를 이용한 데이터 전송과는 달리 메모리의 할당 방식만을 변경하여 대용량의 데이터를 전송할 수 있다.
멀티미디어, 병렬화, 메모리 재할당, Remapping, 다중 프로세서

Description

메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치 및 방법{Apparatus and Method for data transmission between processors using memory remapping}
도 1은 본 발명의 일실시예에 따른 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치의 구조를 나타낸 도면이다.
도 2는 도 1의 장치에서 메모리 재할당시 스위치와 공유 메모리 사이의 연결 상태를 예시한 도면이다.
도 3은 본 발명의 또 다른 실시예에 따른 다중 프로세서 간의 데이터 전송 방법을 도시한 흐름도이다.
본 발명은 다중 프로세서(Processor) 간의 데이터 전송 장치 및 방법에 관한 것으로, 더욱 상세하게는 멀티미디어 데이터 처리를 수행하는 두 개 이상의 프로세서가 존재할 때, 두 프로세서 간에 대량의 멀티미디어 데이터를 효율적으로 이동하기 위한 장치 및 방법에 관한 것이다.
IT 산업의 발전과 더불어 휴대용으로 소지할 수 있는 제품뿐만 아니라 가정 용 전자기기에서도 비디오, 오디오 등의 멀티미디어 데이터 처리를 수행하는 제품이 급격하게 늘어나게 되었다. 이러한 멀티미디어 제품은 DVD 영상, MPEG-2, 휴대폰의 동영상 재생기능, HDTV 등 매우 다양한 제품군으로 확산되고 있다. 해당 멀티미디어 제품을 위한 영상 및 오디오는 미가공 데이터(Raw data)의 관점에서 볼 때 매우 방대한 데이터를 포함한다. 예를 들어, 1920 x 1200의 화면 크기를 가지는 영상의 각 픽셀이 24-bit로 표현된다고 할 때, 초당 30 프레임을 연속적인 시리얼 비트 흐름(serial bitstream)으로 전송하려면 1.66 Gbps의 전송 성능이 필요하다. 프레임 비율(frame rate)이 증가할수록 더 많은 전송 성능이 필요하기 때문에 현재의 대부분의 영상 및 음성은 고도의 압축 기법을 사용하고 있다.
멀티미디어 데이터의 압축기법은 MPEG-2, MPEG-4, H.264, BSAC(Bit Sliced Arithmetic Coding), AAC+(Advanced Audio Coding plus) 등을 비롯하여 매우 다양한 종류의 압축기법이 존재한다. 이러한 압축기법을 사용하기 위해서는 영상을 압축(Coding)하고 해제(Decoding)하는 기능을 가진 하드웨어가 필요하다. 현재의 대부분의 모바일 및 가정용 멀티미디어 기기들은 압축 및 해제를 실시간으로 수행하기 위해서 멀티미디어 코덱(codec)용 초고밀도 집적 회로(Very Large Scale Integration, VLSI)를 내장하고 있다.
코덱용 VLSI가 요구하는 성능은 코덱 알고리즘의 복잡도나 특성에 따라 다르지만, 최근의 멀티미디어 코덱은 0.6 GIPS(Giga Instructions Per Second) 내지 1.5 GIPS의 데이터 처리 성능이 요구되고, 향후 수년 내로는 2 GIPS 내지 5 GIPS 이상의 데이터 처리 성능이 필요할 것으로 전망된다. 이러한 계산량을 가지는 데이 터를 처리하기 위해서는 고성능의 코덱용 칩이 필요하다.
코덱용 칩을 구현하는 방식에는 프로세서(Processor) 또는 주문형 반도체(application specific integrated cricuit, ASIC)가 있다.
프로세서의 경우 새로운 코덱이 등장하면 이것을 단시간 내에 구현할 수 있으며, 일단 VLSI로 제작하였더라도 이후에 새로운 코덱에 대해서 단시간 내에 재구현할 수 있는 유연성(flexibility)이 존재한다. 반면에 상대적으로 속도가 느리다.
ASIC의 경우 속도는 빠르지만, 새로운 코덱 을 실제로 ASIC으로 구현하는데는 수 개월에 이르는 장시간의 개발기간이 필요하고, 이미 특정 코덱에 대하여 VLSI로 구현된 ASIC은 새로운 코덱이 등장할 경우 다시 칩을 만들어야 하는 단점이 있다.
속도가 느린 프로세서의 단점을 보완하기 위한 방법으로 다수의 프로세서를 한 개의 VLSI로 구현하는 방법이 활용되고 있다. 멀티미디어 데이터 처리는 일련의 데이터 스트림(Stream)에 대해서 동일한 연산을 반복적으로 행하는 특성을 지니고 있기 때문에, 데이터 처리를 위한 VLSI 구조는 병렬화가 용이하다는 장점을 지니고 있다. 병렬화가 용이하다는 것은 다수의 프로세서에 데이터 처리를 위한 태스크(Task)를 독립적으로 할당하고 할당된 각각의 태스크가 동시에 수행될 수 있는 처리 특성이 있다는 것을 의미한다. 따라서 멀티미디어 데이터 처리만의 특성으로 인하여 범용(General-Purpose) 프로세서가 추구하는 일반적인 데이터 처리 방식과는 달리 병렬로 구성된 프로세서로 구현할 수 있는 장점이 있다. 이러한 병렬 프로세서는 개발 시간 단축, 유연성과 같은 프로세서 고유의 장점을 유지하면서도 고성 능을 구현할 수 있다는 장점이 있다. 스트림 처리에 적합한 구조를 가지는 병렬화된 프로세서를 스트림 프로세서(Stream processor)라고 명명한다. 또한 스트림 프로세서 내에 존재하는 각각의 프로세서를 프로세서 엘리먼트(processor element) 라고 한다.
스트림 프로세서에서 가장 중요한 문제는 프로세서 간의 데이터 이동이다. 전술한 바와 같이 멀티미디어 데이터는 반복적인 연산을 요구하는 대량의 데이터의 흐름인데, 스트림 프로세서 내에 존재하는 다수의 프로세서 간에 데이터를 이동하기 위해서는 통신 대역폭(Communication bandwidth)이 극대화될 필요가 있다.
두 프로세서 간에 데이터를 전달하기 위한 가장 일반적인 방식은 버스(Bus) 구조이다. 버스 구조는 일련의 연결선(Wire)이 있고, 연결선을 제어하기 위한 프로토콜(Protocol)이 있어서 스트림 데이터를 연속적으로, 매 클록 사이클마다 하나씩 전송하는 방식이다. 대표적으로는 버스 구조로는 AMBA(Advanced Microcontroller Bus Architecture) , 코어커넥트(CoreConnect), PCI(peripheral component interconnect) 및 확장 PCI(PCI-X) 등이 있다.
그러나 버스 구조는 기본적인 특성상 스트림 프로세서 내의 프로세서 엘리먼트 간에 데이터를 전송할 때 전송 대역폭이 제한될 수밖에 없기 때문에, 대량의 멀티미디어 데이터를 전송하는 데는 부적합하다.
따라서 임의의 두 개의 프로세서 엘리먼트 간에 대량의 멀티미디어 데이터를 고속으로 전송하기 위한 방법이 요구된다.
본 발명이 이루고자 하는 기술적 과제는, 스트림 프로세서 내에서 프로세서 엘리먼트가 각각의 독립적인 태스크를 수행하고 있을 때, 임의의 두 개의 프로세서 엘리먼트 간에 대량의 멀티미디어 데이터를 고속으로 전송하기 위한 장치 및 방법을 제공하는 것이다.
또한 본 발명이 이루고자 하는 기술적인 과제는, 두 개의 프로세서 엘리먼트 간에 대량의 멀티미디어 데이터를 고속으로 전송하기 위한 장치를 포함하는 다중 프로세서 시스템을 제공하는 것이다.
상기와 같은 기술적 과제를 달성하기 위한, 본 발명에 따르는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치는, 다수의 프로세서 엘리먼트(processor element)를 포함하는 다중 프로세서 시스템에서, 제 1 프로세서 엘리먼트의 가상 페이지(virtual page)를, 제 1 프로세서 엘리먼트와 제 2 프로세서 엘리먼트가 공유하는 공유 물리 메모리의 임의의 공유 메모리 페이지(shared memory page)에 연결하는 제 1 로컬 스위치; 상기 제 2 프로세서 엘리먼트의 가상 페이지를 상기 공유 물리 메모리의 임의의 공유 메모리 페이지에 연결하는 제 2 로컬 스위치; 상기 공유 물리 메모리의 임의의 공유 메모리 페이지를 상기 제 1 로컬 스위치 또는 상기 제 2 로컬 스위치로 연결하는 공유 페이지 스위치; 및 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크(task)가 완료되면 상기 제 1 로컬 스위치, 상기 제 2 로컬 스위치 및 상기 공유 페이지 스위치를 제어하여, 상기 제 1 프로세서 엘리먼트가 수행한 태스크의 데이터가 저장된 상기 공유 물리 메모리 상의 특정 공유 메모리 페이지를 상기 제 2 프로세서 엘리먼트의 가상 페이지에 재할당(remapping)하고, 상기 공유 물리 메모리의 유휴(idle) 상태인 임의의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당하는 스위치 관리부;를 포함한다.
바람직하게는, 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트는 멀티미디어 데이터 스트림 처리를 위한 스트림 프로세서(stream processor)의 임의의 두 프로세서 엘리먼트이다.
바람직하게는, 상기 스위치 관리부는, 상기 제 1 프로세서 엘리먼트가 수행 중인 태스크 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크가 완료되었는지 확인하여 두 태스크 사이를 동기화하는 태스크 동기부(synchronizer); 및 상기 제 1 로컬 스위치, 상기 제 2 로컬 스위치 및 상기 공유 페이지 스위치를 제어하는 스위치 제어부;를 포함한다. 바람직하게는, 상기 태스크 동기부는, 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트 모두로부터 태스크 완료 통지를 받는 시점을 기초로 상기 스위치 제어부에 제어 시작 명령을 전달한다.
바람직하게는, 스위치 관리부는, 상기 제 2 프로세서 엘리먼트의 가상 페이지에 할당되었다가 해제되어 유휴 상태가 된 상기 공유 물리 메모리의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당한다.
또한 상기와 같은 기술적 과제를 달성하기 위한, 본 발명에 따른 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 방법은, 다수의 프로세서 엘리먼트(processor element)를 포함하는 다중 프로세서 시스템에서, 제 1 프로세서 엘리 먼트(processor element)가 제 1 태스크(task)를 수행하여 얻은 제 1 데이터를, 상기 제 1 프로세서 엘리먼트의 가상 페이지(virtual page)에 할당된 공유 물리 메모리 - 제 1 프로세서 엘리먼트와 제 2 프로세서 엘리먼트가 공유한다 - 의 특정 공유 메모리 페이지(shared memory page)에 저장하는 단계; 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크가 완료되면 상기 제 1 데이터가 저장된 상기 특정 공유 메모리 페이지를 상기 제 2 프로세서 엘리먼트의 가상 페이지에 재할당(remapping)하고, 상기 공유 물리 메모리의 유휴(idle) 상태인 임의의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당하는 단계; 및 상기 제 2 프로세서 엘리먼트가 상기 특정 공유 메모리 페이지에 저장된 상기 제 1 데이터를 기초로 제 2 태스크를 수행하여 제 2 데이터를 구하는 단계;를 포함한다.
바람직하게는, 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트는 멀티미디어 데이터 스트림 처리를 위한 스트림 프로세서(stream processor)의 임의의 두 프로세서 구성요소(processor element)이다.
바람직하게는, 상기 제 1 프로세서 엘리먼트가 수행 중인 태스크 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크가 완료되었는지 확인하여 두 태스크 사이를 동기화하는 단계;를 더 포함한다. 바람직하게는, 상기 태스크 동기화 단계에서는, 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트 모두로부터 태스크 완료 통지를 받는 시점을 기초로 메모리 재할당을 위한 제어 시작 명령을 전달한다.
바람직하게는, 상기 메모리 재할당 단계에서는, 상기 제 2 프로세서 엘리먼트의 가상 페이지에 할당되었다가 해제되어 유휴 상태가 된 상기 공유 물리 메모리의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당한다.
본 발명을 간략히 설명하면 다수의 프로세서 엘리먼트로 구성된 스트림 프로세서에서 임의의 두 개의 프로세서 엘리먼트 간에 대량의 멀티미디어 데이터를 전송하고자 할 때, 프로세서가 사용 중이던 메모리를 재할당(remapping) 함으로써 다른 프로세서가 해당 데이터를 사용하도록 한다. 특히, 각 프로세서가 할당받은 태스크 수행 도중 태스크 동기화 시점에 메모리 재할당을 수행함으로써 프로세서 간에 데이터를 전송한다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 1은 본 발명의 일실시예에 따른 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치의 구조를 나타낸 도면이다. 즉, 듀얼(Dual) 프로세서 엘리먼트(100a, 100b)와 공유 물리 메모리(180)를 가지는 시스템에서 두 프로세서 엘리먼트(100a, 100b) 사이에서 데이터를 전송하는 장치의 구조를 나타낸다.
도 1을 참조하면, 본 실시예의 다중 프로세서 간의 데이터 전송 장치는 제 1 로컬 스위치(local switch)(150a), 제 2 로컬 스위치(150b), 공유 페이지 스위치(shared page switch)(170) 및 스위치 관리부(190)를 포함한다.
제 1 로컬 스위치(150a)는 제 1 프로세서 엘리먼트(100a)의 가상(virtual) 메모리(140a)를 공유 물리 메모리(180)의 임의의 공유 메모리 페이지(181 내지 184)에 연결하는 역할을 한다. 마찬가지로 제 2 로컬 스위치(150b)는 제 2 프로세서 엘리먼트(100b)의 가상 메모리(140b)를 공유 물리 메모리(180)의 임의의 공유 메모리 페이지(181 내지 184)에 연결하는 역할을 한다.
바람직하게는, 제 1 프로세서 엘리먼트(100a) 및 제 2 프로세서 엘리먼트(100b)는 멀티미디어 데이터 스트림 처리를 위한 스트림 프로세서(stream processor)의 임의의 두 프로세서 엘리먼트이다.
공유 페이지 스위치(170)는 공유 물리 메모리(180)의 각 공유 메모리 페이지를 제 1 로컬 스위치(150a) 또는 제 2 로컬 스위치(150b)로 연결하는 역할을 한다.
스위치 관리부(190)는 제 1 프로세서 엘리먼트(100a) 및 제 2 프로세서 엘리먼트(100b)가 수행 중인 태스크(task)가 완료되면 제 1 로컬 스위치(150a), 제 2 로컬 스위치(150b) 및 공유 페이지 스위치(170)를 제어하여, 제 1 프로세서 엘리먼트(100a)가 수행한 태스크의 데이터가 저장된 공유 물리 메모리(180) 상의 특정 공유 메모리 페이지를 제 2 프로세서 엘리먼트(100b)의 가상 페이지에 재할당(remapping)하고, 공유 물리 메모리(180)의 유휴(idle) 상태인 임의의 공유 메모리 페이지를 제 1 프로세서 엘리먼트(100a)의 가상 페이지에 재할당한다. 이 경우 스위치 관리부(190)는 제 2 프로세서 엘리먼트(100b)의 가상 페이지에 할당되었다가 해제되어 유휴 상태가 된 공유 물리 메모리의 공유 메모리 페이지를 제 1 프로세서 엘리먼트(100a)의 가상 페이지에 재할당할 수 있다.
바람직하게는, 스위치 관리부(190)는 제 1 프로세서 엘리먼트(100a)가 수행 중인 태스크 및 제 2 프로세서 엘리먼트(100b)가 수행 중인 태스크가 완료되었는지 확인하여 두 태스크 사이를 동기화하는 태스크 동기부(synchronizer)(191)를 포함하고, 또한 제 1 로컬 스위치(150a), 제 2 로컬 스위치(150b) 및 공유 페이지 스위치(180)를 제어하는 스위치 제어부(192)를 포함한다. 태스크 동기부(191)는 제 1 프로세서 엘리먼트(100a) 및 제 2 프로세서 엘리먼트(100b) 모두로부터 태스크 완료 통지를 받는 시점을 기초로 스위치 제어부(192)에 제어 시작 명령을 전달함으로서 동기화를 수행한다.
이상의 내용을 더욱 상세히 설명하기 위하여, 본 발명의 장치가 적용되는 시스템에서, 두 개의 프로세서 엘리먼트는 각각의 멀티미디어 태스크를 수행한다고 가정한다. 도 1의 예에서, 두 개의 프로세서 엘리먼트(100a, 100b)가 수행하는 멀티미디어 알고리즘이 음성변조 MP2 디코딩인 경우, 제 1 프로세서 엘리먼트(100a)는 MP2를 디코딩하는 태스크를 수행하고, 제 2 프로세서 엘리먼트(100b)는 디코딩된 음성을 변조하는 태스크를 수행할 수 있다.
이때, 제 1 프로세서 엘리먼트(100a)는 MP2로 인코딩된 스트림을 디코딩하는 태스크를 수행한 후, 그 결과를 제 2 프로세서 엘리먼트(100b)로 전달한다. 전달 직후, 제 1 프로세서 엘리먼트(100a) 은 MP2로 인코딩 된 스트림을 연속적으로 디 코딩한다. 제 2 프로세서 엘리먼트(100b)는 제 1 프로세서 엘리먼트(100a)로부터 디코딩된 음성을 전달받아 음성변조를 수행한다. MP2 디코딩과 음성변조는 서로 독립적으로 수행될 수 있기 때문에 제 1 프로세서 엘리먼트(100a)와 제 2 프로세서 엘리먼트(100b)는 MP2 디코딩과 음성변조를 단일 프로세서 엘리먼트에서 수행하는 경우에 비해서 약 2배의 성능을 나타낸다.
제 1 프로세서 엘리먼트(100a)는 프로세서 코어(processor core)(110a), 메모리 중계기(memory arbiter)(120a), 로컬(local) 메모리(130a), 가상(virtual) 메모리(140a) 및 제 1 로컬 스위치(local switch)(150a)로 이루어져 있다.
프로세서 코어(110a)는 디지털 신호를 처리하는 프로세서(Digital Signal Processor, DSP)이다. 프로세서 코어(110a)는 명령(instruction) 및 계산에 필요한 피연산자(operand)를 읽어오고 결과를 메모리에 저장하기 위해서 매 클록 사이클마다 메모리 중계기(120a)에 4 개의 메모리 액세스를 요구한다. 메모리 중계기(120a)는 이 4 개의 메모리 액세스를 실제의 메모리 페이지와 연결해주는 역할을 한다. 다만 시스템에 따라 메모리의 액세스 개수는 증감될 수 있음은 본 발명이 속하는 기술 분야에 종사하는 자라면 쉽게 이해할 수 있을 것이다.
본 실시예에서 메모리 페이지는 로컬 메모리(130a)와 가상 메모리(140a)에 각각 4개씩 총 8개 존재하고, 프로세서 코어(110a)가 요구하는 메모리 액세스는 4 개이므로, 각각의 메모리 액세스 요구에 대해서 실제의 메모리 페이지를 할당하는 역할을 메모리 중계기(120a)가 담당하게 된다. 로컬 메모리(130a)는 제 1 프로세서 엘리먼트(100a)의 로컬 영역에 물리적으로 존재하는 메모리 페이지이다. 이들 로컬 메모리 페이지에는 프로세서 엘리먼트에 독립적으로 존재하는 데이터, 예를 들면, 프로세서 코어의 명령어(instruction), 스택(stack), 고정 변수(static variable) 등이 저장될 수 있다.
물리적으로 제 1 프로세서 엘리먼트(100a) 내에 존재하는 로컬 메모리(130a)와는 달리 가상 메모리(140a)는 가상적인 메모리 페이지이다. 가상 메모리(140a) 내의 가상 페이지 4 내지 가상 페이지 7은 물리적으로 제 1 프로세서 엘리먼트(100a)에 존재하는 것이 아니라, 제 1 프로세서 엘리먼트(100a)의 외부에 있는 물리적 메모리에 대응하거나, 존재하는 않는 영역일 수 있다.
본 실시예에서는 가상 메모리(140a)는 공유 물리 메모리(180)에 연결된다. 즉, 가상 메모리(140a) 상의 각각의 메모리 페이지는 우선 제 1 로컬 스위치(150a)를 통해서 제 1 프로세서 엘리먼트(100a) 외부로 연결되는 외부 메모리 버스(160a)의 각 메모리 버스(161a 내지 164a)에 연결된다. 그리고 공유 페이지 스위치(170)을 통하여 공유 물리 메모리(180)의 각 공유 메모리 페이지(181 내지 184) 중 어느 하나와 연결된다.
제 1 로컬 스위치(150a)는 가상 메모리(140a)를 외부 메모리 버스(160a)의 임의의 메모리 버스(161a 내지 164a)에 연결한다. 실질적으로는 메모리 중계기(120a)가 메모리가 존재한다고 생각하고 있는 메모리 버스, 즉 메모리 중계기(120a)와 가상 메모리(140a) 사이의 메모리 버스를 외부 메모리 버스(160a)와 연결하는 것이다. 가상 메모리(140a)와 외부 메모리 버스(160a)와의 맵핑(mapping)은 스위치 제어부(192)에 의하여 결정된다.
제 1 프로세서 엘리먼트(100a)의 외부 메모리 버스(160a)와 제 2 프로세서 엘리먼트(100b)의 외부 메모리 버스(160b)는 공유 페이지 스위치(170)로 연결된다. 공유 페이지 스위치(170)는 메모리 버스(161a 내지 164a)와 메모리 버스(161b 내지 164b) 중 선택된 메모리 버스를 공유 물리 메모리(180)의 각 공유 메모리 페이지(shared memory page, spage)(181 내지 184)에 연결한다. 즉 메모리 버스(161a)와 메모리 버스(161b) 중 선택된 메모리 버스를 공유 메모리 페이지 0(181)에, 메모리 버스(162a)와 메모리 버스(162b) 중 선택된 메모리 버스를 공유 메모리 페이지 1(182)에, 메모리 버스(163a)와 메모리 버스(163b) 중 선택된 메모리 버스를 공유 메모리 페이지 2(183)에, 그리고 메모리 버스(164a)와 메모리 버스(164b) 중 선택된 메모리 버스를 공유 메모리 페이지 3(184)에 각각 연결한다. 이와 같이 공유 메모리 페이지가 연결될 메모리 버스의 선택은 스위치 제어부(192)에 의하여 결정된다.
프로세서 코어(110a)와 프로세서 코어(110b)는 각각의 태스크 수행 도중 특정한 지점에서 프로그램 내의 동기화 시점(synchronization point)에 태스크가 도착했음을 태스크 동기부(191)에 통지(notification)한다. 예를 들면, 프로세서 코어(110a)은 MP2 디코딩 수행 중, 공유 메모리 페이지에 데이터 쓰기를 모두 완료하면 완료 통지를 하고, 프로세서 코어(110b)은 공유 메모리 페이지에 저장된 음성 데이터에 대해서 음성변조가 종료되면 완료 통지를 수행한다. 태스크 동기부(191)는 프로세서 코어(110a)와 프로세서 코어(110b) 모두로부터 태스크 완료 통지를 받은 이후에 스위치 제어부(192)에 제어 시작 명령을 내려서 각 스위치 구성(switch configuration)을 변경한다.
스위치 제어부(192)는 태스크 동기부(191)로부터 정보를 입력받아 제 1 프로세서 엘리먼트(100a)의 제 1 로컬 스위치(150a), 제 2 프로세서 엘리먼트(100b)의 제 2 로컬 스위치(150b), 공유 페이지 스위치(170)의 스위치 구성을 변경한다. 이와 같은 방식으로 각 스위치 내의 연결 방법을 재설정함으로서 공유 물리 메모리를 재할당한다. 즉, 태스크 동기부(191)가 스위치 제어부(192)에 명령을 내릴 때마다, 각각의 공유 메모리 페이지(181 내지 184)는 제 1 프로세서 엘리먼트(100a)와 제 2 프로세서 엘리먼트(100b)의 가상 메모리 중 선택된 곳에 재할당되어 제 1 프로세서 엘리먼트(100a)와 프로세서 제 2 프로세서 엘리먼트(100b) 간의 데이터 전송이 이루어지게 된다.
이와 같이 메모리 재할당(Remapping)을 이용하면 메모리 버스를 이용한 데이터 전송과는 달리 메모리의 할당 방식만을 변경하여 대용량의 데이터를 전송할 수 있으로므, 대역폭의 제한을 극복할 수 있다.
이상의 설명에서 가상 메모리 및 가상 메모리를 공유 메모리와 연결하는 메모리 버스가 각 프로세서 엘리먼트마다 4 개인 경우를 설명하였으나, 이에 한정되는 것은 아니며 그 개수는 시스템에 따라 증감될 수 있음은 본 발명이 속하는 기술 분야에 종사하는 자라면 쉽게 이해할 수 있을 것이다.
이상의 설명에서 제 1 프로세서 엘리먼트(100a)의 태스크 수행 결과를 제 2 프로세서 엘리먼트(100b)가 이용하는 경우를 설명하였으나, 본 발명은 그 경우에만 한정되는 것이 아니라 제 2 프로세서 엘리먼트(100b)의 태스크 수행 결과를 제 1 프로세서 엘리먼트(100a)가 이용하는 경우에도 적용될 수 있음은 자명하다.
도 2는 도 1의 장치에서 메모리 재할당시 스위치와 공유 메모리 사이의 연결 상태를 예시한 도면이다. 도 2의 설명에서 도 1을 참조한다.
도 2를 참조하면, 가로 축은 시간을 의미한다. 본 실시예에서 제 1 프로세서 엘리먼트(100a)가 MP2 디코딩을 하고, 제 2 프로세서 엘리먼트(100b)가 음성변조를 수행하는 경우를 가정한다.
시간 T0 에서 제 1 프로세서 엘리먼트(100a)가 제 1 로컬 스위치(150a)를 통하여 가상 메모리(140a)의 가상 메모리 페이지 7(141a)를 메모리 버스(161a)에 연결한다. 이때, 제 2 프로세서 엘리먼트(100b)의 프로세서 코어(110b)은 아직 유휴(Idle) 상태이다. 공유 페이지 스위치(170)는 메모리 버스(161a)를 공유 메모리 페이지(181)에 연결한다.
시간 T0 와 시간 T1 사이에서 제 1 프로세서 엘리먼트(100a)가 MP2 디코딩을 수행하여 자신의 가상 메모리 페이지 7(141a)에 저장한다. 결과적으로 디코딩된 데이터는 공유 메모리 페이지 0(181)에 저장된다.
시간 T1 에서 제 1 로컬 스위치(150a)는 가상 메모리 페이지 7(141a)을 메모리 버스(162a)에 연결한다. 제 2 로컬 스위치(150b)는 제 2 프로세서 엘리먼트(100b)의 가상 메모리 페이지 7(141b)를 메모리 버스(161b)에 연결한다. 공유 페이지 스위치(170)는 메모리 버스(162a)를 공유 메모리 페이지 1(182)에 연결하고, 동시에 메모리 버스(161b)를 공유 메모리 페이지 0(181)에 연결한다. 이렇게 메모 리를 재할당으로써 제 1 프로세서 엘리먼트(100a)에 의해 디코딩된 데이터는 별도의 데이터 전송 과정 없이도 제 2 프로세서 엘리먼트(100b)에 의하여 사용될 수 있는 상태가 된다.
시간 T1 과 시간 T2 사이에서 제 2 프로세서 엘리먼트(100b)는 공유 메모리 페이지 0(181)에 저장되었던 디코딩된 음성에 대해서 음성변조를 수행한다. 동시에 제 1 프로세서 엘리먼트(100a)는 연속적으로 들어오는 MP2 스트림을 디코딩하여 디코딩된 음성을 공유 메모리 페이지 1(182)에 저장한다.
각 태스크가 완료되면, 시간 T2 에서 제 1 로컬 스위치(150a)는 가상 메모리 페이지 7(141a)을 메모리 버스(161a)에 연결한다. 제 2 로컬 스위치(150b)는 제 2 프로세서 엘리먼트(100b)의 가상 메모리 페이지 7(141b)를 메모리 버스(162b)에 연결한다. 공유 페이지 스위치(170)는 메모리 버스(161a)를 공유 메모리 페이지 0(181)에 연결하고, 동시에 메모리 버스(162b)를 공유 메모리 페이지 1(182)에 연결한다.
시간 T2 이후에는, 제 2 프로세서 엘리먼트(100b)의 가상 메모리 페이지 7(141b)는 공유 메모리 페이지 1(182)에 저장되어 직전에 제 1 프로세서 엘리먼트(100a)에 의하여 디코딩된 음성에 대하여 음성변조를 수행한다.
위의 예에서 나타난 바와 같이, 제 1 프로세서 엘리먼트(100a)에 의하여 디코딩된 결과는 제 2 프로세서 엘리먼트(100b)에 매우 빠른 속도로 전달된다.
이와 같은 방식으로, 최종적으로 태스크가 완료될 때까지 메모리 재할당을 통하여, 대량의 데이터를 각 프로세서 엘리먼트 사이에 별도의 데이터 전송 과정 없이 전송할 수 있다. 또한 각 프로세서 엘리먼트의 프로세서 코어에 의하여 수행되는 프로그램의 변경이 없이, 메모리만 재할당되는 방식으로 각각의 독립적인 태스크를 수행할 수 있다.
도 3은 본 발명의 또 다른 실시예에 따른 다중 프로세서 간의 데이터 전송 방법을 도시한 흐름도이다. 도 3의 설명에 있어서, 도 1을 참조하며 도 1의 설명과 중복되는 내용은 설명을 생략한다.
도 3을 참조하면, 우선 제 1 프로세서 엘리먼트(100a) 및 제 2 프로세서 엘리먼트(100b)가 각각에 배정된 태스크를 수행한다(S310). 제 1 프로세서 엘리먼트(100a)가 자신에게 주어진 제 1 태스크(task)를 수행하여 얻은 데이터를 제 1 데이터라고 하면, 제 1 데이터를 미리 할당된 가상 페이지에 저장함으로써 이와 연결된 특정 공유 메모리 페이지에 저장하는 결과가 된다(S320).
바람직하게는, 제 1 프로세서 엘리먼트(100a)가 수행 중인 태스크 및 제 2 프로세서 엘리먼트(100b)가 수행 중인 태스크가 완료되었는지 확인하여 두 태스크 사이를 동기화한다(S330), 바람직하게는, 제 1 프로세서 엘리먼트(100a) 및 상기 제 2 프로세서 엘리먼트(100b) 모두로부터 태스크 완료 통지를 받는 시점을 기초로 메모리 재할당을 위한 제어 시작 명령을 전달한다.
다음으로 공유 물리 메모리(180)에 연결하기 위한 각 외부 메모리 버스의 연결을 변경한 후(S340), 제 1 프로세서 엘리먼트(100a) 및 제 2 프로세서 엘리먼트(100b)가 수행 중인 태스크가 완료되면 제 1 데이터가 저장된 특정 공유 메모리 페이지를 제 2 프로세서 엘리먼트(100b)의 가상 페이지에 재할당(remapping)한다(S350). 또한, 공유 물리 메모리(180)의 유휴(idle) 상태인 임의의 공유 메모리 페이지를 제 1 프로세서 엘리먼트(100a)의 가상 페이지에 재할당한다(S360). 바람직하게는, 메모리를 재할당하는 단계에서는, 제 2 프로세서 엘리먼트(100b)의 가상 페이지에 할당되었다가 해제되어 유휴 상태가 된 공유 물리 메모리의 공유 메모리 페이지를 제 1 프로세서 엘리먼트(100a)의 가상 페이지에 재할당하여 공유 메모리를 서로 순환적으로 사용하도록 할 수 있다.
이와 같은 방식으로 제 2 프로세서 엘리먼트(100b)가 이미 특정 공유 메모리 페이지에 저장된 제 1 데이터를 별다른 전송 과정 없이 사용할 수 있게 되었으므로, 제 2 프로세서 엘리먼트(100b)는 제 1 데이터를 기초로 제 2 태스크를 수행하여 제 2 데이터를 구한다.
두 프로세서 엘리먼트는 최종적인 태스크가 완료될 때까지 이와 같은 방식으로 메모리를 재할당하면서 태스크를 수행한다(S370).
이상의 설명에서 제 1 프로세서 엘리먼트(100a)의 태스크 수행 결과를 제 2 프로세서 엘리먼트(100b)가 이용하는 경우를 설명하였으나, 본 발명은 그 경우에만 한정되는 것이 아니라 제 2 프로세서 엘리먼트(100b)의 태스크 수행 결과를 제 1 프로세서 엘리먼트(100a)가 이용하는 경우에도 적용될 수 있음은 자명하다.
본 발명은 또한 데이터 전송 장치에만 한정되는 것이 아니라 본 장치를 포함하여 임의의 두 프로세서 간에 고속의 대량 데이터 전송 가능하도록 구현한 다중 프로세서 시스템에도 적용될 수 있음은 자명하다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등 및 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 메모리 재할당을 이용하므로 메모리 버스를 이용한 데이터 전송과는 달리 메모리의 할당 방식만을 변경하여 대용량의 데이터를 전송할 수 있다.
또한 본 발명에 따르면, 두 프로세서를 연결하는 메모리 버스 사이의 대역폭 의 제한을 극복할 수 있다.
또한 본 발명에 따르면, 임의의 두 프로세서 간에 고속의 대량 데이터 전송이 가능하므로 고성능의 다중 프로세서 시스템을 구현할 수 있다.

Claims (10)

  1. 다수의 프로세서 엘리먼트(processor element)를 포함하는 다중 프로세서 시스템에서, 제 1 프로세서 엘리먼트의 가상 페이지(virtual page)를, 제 1 프로세서 엘리먼트와 제 2 프로세서 엘리먼트가 공유하는 공유 물리 메모리의 임의의 공유 메모리 페이지(shared memory page)에 연결하는 제 1 로컬 스위치;
    상기 제 2 프로세서 엘리먼트의 가상 페이지를 상기 공유 물리 메모리의 임의의 공유 메모리 페이지에 연결하는 제 2 로컬 스위치;
    상기 공유 물리 메모리의 임의의 공유 메모리 페이지를 상기 제 1 로컬 스위치 또는 상기 제 2 로컬 스위치로 연결하는 공유 페이지 스위치; 및
    상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크(task)가 완료되면 상기 제 1 로컬 스위치, 상기 제 2 로컬 스위치 및 상기 공유 페이지 스위치를 제어하여, 상기 제 1 프로세서 엘리먼트가 수행한 태스크의 데이터가 저장된 상기 공유 물리 메모리 상의 특정 공유 메모리 페이지를 상기 제 2 프로세서 엘리먼트의 가상 페이지에 재할당(remapping)하고, 상기 공유 물리 메모리의 유휴(idle) 상태인 임의의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당하는 스위치 관리부;를 포함하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치.
  2. 제 1항에 있어서,
    상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트는 멀티미디어 데이터 스트림 처리를 위한 스트림 프로세서(stream processor)의 임의의 두 프로세서 엘리먼트인 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치.
  3. 제 1항에 있어서,
    상기 스위치 관리부는,
    상기 제 1 프로세서 엘리먼트가 수행 중인 태스크 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크가 완료되었는지 확인하여 두 태스크 사이를 동기화하는 태스크 동기부(synchronizer); 및
    상기 제 1 로컬 스위치, 상기 제 2 로컬 스위치 및 상기 공유 페이지 스위치를 제어하는 스위치 제어부;를 포함하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치.
  4. 제 3항에 있어서,
    상기 태스크 동기부는, 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트 모두로부터 태스크 완료 통지를 받는 시점을 기초로 상기 스위치 제어부에 제어 시작 명령을 전달하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치.
  5. 제 1항에 있어서,
    스위치 관리부는, 상기 제 2 프로세서 엘리먼트의 가상 페이지에 할당되었다가 해제되어 유휴 상태가 된 상기 공유 물리 메모리의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 장치.
  6. 다수의 프로세서 엘리먼트(processor element)를 포함하는 다중 프로세서 시스템에서, 제 1 프로세서 엘리먼트(processor element)가 제 1 태스크(task)를 수행하여 얻은 제 1 데이터를, 상기 제 1 프로세서 엘리먼트의 가상 페이지(virtual page)에 할당된 공유 물리 메모리 - 제 1 프로세서 엘리먼트와 제 2 프로세서 엘리먼트가 공유한다 - 의 특정 공유 메모리 페이지(shared memory page)에 저장하는 단계;
    상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크가 완료되면 상기 제 1 데이터가 저장된 상기 특정 공유 메모리 페이지를 상기 제 2 프로세서 엘리먼트의 가상 페이지에 재할당(remapping)하고, 상기 공유 물리 메모리의 유휴(idle) 상태인 임의의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당하는 단계; 및
    상기 제 2 프로세서 엘리먼트가 상기 특정 공유 메모리 페이지에 저장된 상기 제 1 데이터를 기초로 제 2 태스크를 수행하여 제 2 데이터를 구하는 단계;를 포함하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 방법.
  7. 제 6항에 있어서,
    상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트는 멀티미디어 데이터 스트림 처리를 위한 스트림 프로세서(stream processor)의 임의의 두 프로세서 구성요소(processor element)인 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 방법.
  8. 제 6항에 있어서,
    상기 제 1 프로세서 엘리먼트가 수행 중인 태스크 및 상기 제 2 프로세서 엘리먼트가 수행 중인 태스크가 완료되었는지 확인하여 두 태스크 사이를 동기화하는 단계;를 더 포함하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 방법.
  9. 제 8항에 있어서,
    상기 태스크 동기화 단계에서는, 상기 제 1 프로세서 엘리먼트 및 상기 제 2 프로세서 엘리먼트 모두로부터 태스크 완료 통지를 받는 시점을 기초로 메모리 재할당을 위한 제어 시작 명령을 전달하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 방법.
  10. 제 6항에 있어서,
    상기 메모리 재할당 단계에서는, 상기 제 2 프로세서 엘리먼트의 가상 페이지에 할당되었다가 해제되어 유휴 상태가 된 상기 공유 물리 메모리의 공유 메모리 페이지를 상기 제 1 프로세서 엘리먼트의 가상 페이지에 재할당하는 것을 특징으로 하는 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송 방법.
KR1020070042189A 2007-04-30 2007-04-30 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법 Active KR100864834B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070042189A KR100864834B1 (ko) 2007-04-30 2007-04-30 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법
US12/027,364 US8464006B2 (en) 2007-04-30 2008-02-07 Method and apparatus for data transmission between processors using memory remapping

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070042189A KR100864834B1 (ko) 2007-04-30 2007-04-30 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법

Publications (1)

Publication Number Publication Date
KR100864834B1 true KR100864834B1 (ko) 2008-10-23

Family

ID=39888398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070042189A Active KR100864834B1 (ko) 2007-04-30 2007-04-30 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법

Country Status (2)

Country Link
US (1) US8464006B2 (ko)
KR (1) KR100864834B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101198400B1 (ko) 2008-12-16 2012-11-07 한국전자통신연구원 메모리 관리 장치 및 방법
KR101233109B1 (ko) * 2010-09-13 2013-02-15 한국과학기술원 캐쉬 일관성을 맞추기 위해 멀티 코어들 간에 발생하는 통신량을 감소시키는 시스템 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882379B2 (en) * 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
US7908505B2 (en) * 2007-09-28 2011-03-15 International Business Machines Corporation Apparatus, system, and method for event, time, and failure state recording mechanism in a power supply
US8019966B2 (en) * 2008-06-09 2011-09-13 International Business Machines Corporation Data sharing utilizing virtual memory having a shared paging space
US8041877B2 (en) * 2008-06-09 2011-10-18 International Business Machines Corporation Distributed computing utilizing virtual memory having a shared paging space
US8669990B2 (en) 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US9218289B2 (en) * 2012-08-06 2015-12-22 Qualcomm Incorporated Multi-core compute cache coherency with a release consistency memory ordering model
WO2021030208A1 (en) * 2019-08-09 2021-02-18 Rajasekaran Ramasubramanian Power management and distributed audio processing techniques for playback devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980027373A (ko) * 1996-10-15 1998-07-15 김광호 공유메모리를 갖는 프로세서간의 통신방법
KR100243185B1 (ko) 1995-09-30 2000-02-01 윤종용 공유 메모리를 통한 프로세서간의 데이터 통신 장치 및 방법
JP2001357022A (ja) 2000-06-15 2001-12-26 Nec Corp 複数プロセッサ間のデータ通信装置、及び、そのデータ通信方法
KR20060033814A (ko) * 2003-08-19 2006-04-19 모토로라 인코포레이티드 공유된 메모리를 사용하여 프로세서간 통신을 제공하는방법 및 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3102495B2 (ja) * 1989-12-28 2000-10-23 株式会社日立製作所 仮想記憶管理方法
US6393498B1 (en) * 1999-03-02 2002-05-21 Mentor Arc Inc. System for reducing processor workloads with memory remapping techniques
US6490250B1 (en) * 1999-03-09 2002-12-03 Conexant Systems, Inc. Elementary stream multiplexer
US6570872B1 (en) * 1999-04-06 2003-05-27 Nortel Networks Limited Self-configuring distributed switch
US6345351B1 (en) * 1999-11-12 2002-02-05 Telefonaktiebolaget Lm Ericsson(Publ) Maintenance of speculative state of parallel executed jobs in an information processing system
JP4721379B2 (ja) * 2001-09-26 2011-07-13 株式会社日立製作所 ストレージシステム、ディスク制御クラスタおよびディスク制御クラスタの増設方法
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US20050246502A1 (en) * 2004-04-28 2005-11-03 Texas Instruments Incorporated Dynamic memory mapping
US7970980B2 (en) * 2004-12-15 2011-06-28 International Business Machines Corporation Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7663635B2 (en) * 2005-05-27 2010-02-16 Ati Technologies, Inc. Multiple video processor unit (VPU) memory mapping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100243185B1 (ko) 1995-09-30 2000-02-01 윤종용 공유 메모리를 통한 프로세서간의 데이터 통신 장치 및 방법
KR19980027373A (ko) * 1996-10-15 1998-07-15 김광호 공유메모리를 갖는 프로세서간의 통신방법
JP2001357022A (ja) 2000-06-15 2001-12-26 Nec Corp 複数プロセッサ間のデータ通信装置、及び、そのデータ通信方法
KR20060033814A (ko) * 2003-08-19 2006-04-19 모토로라 인코포레이티드 공유된 메모리를 사용하여 프로세서간 통신을 제공하는방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101198400B1 (ko) 2008-12-16 2012-11-07 한국전자통신연구원 메모리 관리 장치 및 방법
KR101233109B1 (ko) * 2010-09-13 2013-02-15 한국과학기술원 캐쉬 일관성을 맞추기 위해 멀티 코어들 간에 발생하는 통신량을 감소시키는 시스템 및 방법

Also Published As

Publication number Publication date
US8464006B2 (en) 2013-06-11
US20080270711A1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
KR100864834B1 (ko) 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법
CN108206937B (zh) 一种提升智能分析性能的方法和装置
KR100826740B1 (ko) 멀티그래픽프로세서시스템, 그래픽프로세서 및묘화처리방법
US6526462B1 (en) Programmable multi-tasking memory management system
CN103888293B (zh) 多通道fc网络数据仿真系统的数据通道调度方法
US7152136B1 (en) Implementation of PCI express
TWI582689B (zh) 用於多重格式影像處理之可組配緩衝器分派技術
EP1695223B1 (en) Tracking progress of data streamer
WO2009130871A1 (ja) 復号化装置
US10789194B2 (en) Techniques for efficiently synchronizing data transmissions on a network
US8200877B2 (en) Device for processing a stream of data words
CN112052210A (zh) 用于细化的链路训练的数据结构
CN111080761B (zh) 一种渲染任务的调度方法、装置及计算机存储介质
US8510514B2 (en) Apparatus, method and data processing element for efficient parallel processing of multimedia data
US7958321B2 (en) Apparatus and method for reducing memory access conflict
CN107193766B (zh) 一种PCIe设备与主机之间的多路有序数据传输方法
US6629001B1 (en) Configurable controller for audio channels
TW202107408A (zh) 波槽管理之方法及裝置
US8650346B2 (en) Method and bus system for equalizing data information traffic and decoder
US6061756A (en) Computer system which performs intelligent byte slicing/data packing on a multi-byte wide bus
US8625032B2 (en) Video capture from multiple sources
CN104025026B (zh) 访问用于配置空间的配置和状态寄存器
CN115687194A (zh) 采用降低的能量传输模式的存储器接口
JP4563300B2 (ja) テーブル装置、可変長符号化/復号装置、可変長符号化装置及び可変長復号装置
JPWO2010122746A1 (ja) 情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20070430

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20080402

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080909

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20081016

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20081017

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20111007

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20121011

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20121011

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130923

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130923

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20140926

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20140926

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20150925

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20170927

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20181001

Start annual number: 11

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20200925

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20210927

Start annual number: 14

End annual number: 14