KR101652694B1 - 적응적 연산 장치 및 적응적 연산 장치 작동 방법 - Google Patents

적응적 연산 장치 및 적응적 연산 장치 작동 방법 Download PDF

Info

Publication number
KR101652694B1
KR101652694B1 KR1020100041820A KR20100041820A KR101652694B1 KR 101652694 B1 KR101652694 B1 KR 101652694B1 KR 1020100041820 A KR1020100041820 A KR 1020100041820A KR 20100041820 A KR20100041820 A KR 20100041820A KR 101652694 B1 KR101652694 B1 KR 101652694B1
Authority
KR
South Korea
Prior art keywords
data
channel
channels
information
transmission
Prior art date
Application number
KR1020100041820A
Other languages
English (en)
Other versions
KR20110122367A (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 KR1020100041820A priority Critical patent/KR101652694B1/ko
Publication of KR20110122367A publication Critical patent/KR20110122367A/ko
Application granted granted Critical
Publication of KR101652694B1 publication Critical patent/KR101652694B1/ko

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

적응적 연산 장치 및 연산 장치 작동 방법이 제공된다. 연산 장치가 복수 개의 전송 채널을 사용하여 데이터를 전송하는 경우, 상기 연산 장치는 상기 연산장치에 대해 설정되는 상기 복수 개의 데이터 채널 각각에 대해, 채널 활성화 정보 및 전송 데이터 식별 정보를 저장하는 채널 설정 레지스터부 및 상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보 중 적어도 하나를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는 채널 설정부를 포함한다.

Description

적응적 연산 장치 및 적응적 연산 장치 작동 방법{ADAPTIVE PROCESSOR AND METHOD FOR OPERATING ADAPTIVE PROCESSOR}
연산 장치(processor) 및 연산 장치 작동 방법에 연관되며, 보다 특정하게는 복수 개의 전송 채널을 이용하여 데이터를 전송하는 연산 장치 및 상기 연산 장치의 작동 방법에 연관된다.
복수 개의 연산 장치를 사용하는 시스템은 전체 시스템의 기능을 수행하기 위해 필요한 데이터를 연산 장치 간 데이터 전송 채널을 이용하여 전송한다. 상기 데이터 전송 채널로, 예컨대 FIFO(first in first out) 채널(channel), 공유 메모리(shared memory) 또는 하드웨어 와이어(hardware wired) 등이 사용된다.
상기 복수 개의 연산 장치는 예컨대 동영상 부복화(encoding and decoding)를 수행하기 위해 상기 동영상 부복화를 구성하는 단위 알고리즘에 적합화된 것일 수 있다.
동영상 복호화를 위하여, VLD(variable length code decoder) 제1 연산 장치는 비트 스트림(bit stream)을 복호화한 데이터를 출력한다. 상기 출력은 일반적으로 매크로 블록(macro block)마다 다른 크기를 갖는다. 따라서, 상기 출력을 수신하는 제2 연산 장치는 상기 복수 개의 연산 장치 중 다른 연산 장치로 상기 데이터의 일부를 다시 전송해야 하는 문제가 있다.
다중 연산 장치(multi processor) 환경에서 애플리케이션(application)이 구현되었을 때, 상기와 같은 연산 장치 간 데이터 전송으로 인한 오버헤드(overhead)는 상기 애플리케이션의 성능 향상을 저해한다.
본 발명의 일측에 따르면, 연산장치에 대해 설정되는 복수 개의 데이터 채널 각각에 대해, 채널 활성화 정보 및 전송 데이터 식별 정보를 저장하는 채널 설정 레지스터부 및 상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보 중 적어도 하나를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는 채널 설정부를 포함하는, 연산 장치가 제공된다.
상기 연산 장치는 데이터 채널 설정 정보를 수신하고, 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보 중 적어도 하나는 상기 데이터 채널 설정 정보에 기반하여 동적으로 설정될 수 있다.
상기 데이터 채널 설정 정보는 상기 데이터 채널에게 필요한 데이터 타입 및 구성 중 적어도 하나의 정보를 포함할 수 있다.
상기 채널 설정 레지스터부는, 상기 복수 개의 데이터 채널 각각의 채널 활성화 여부를 나타내는 필드를 포함하는 제1 레지스터 및 상기 데이터 전송 채널을 통해 전송될 데이터를 나타내는 데이터 식별자 필드를 포함하는 상기 복수 개의 데이터 채널 각각에 대한 제2 레지스터를 포함할 수 있다.
상기 연산 장치는 상기 제2 레지스터가 나타내는 상기 데이터 전송 채널로 상기 제2 레지스터의 데이터 식별자 필드가 나타내는 데이터를 전송할 수 있다.
상기 연산 장치는 복수 개의 데이터를 입력 받아, 상기 복수 개의 데이터 각각을 상기 전송 데이터 식별 정보에 따라 상기 복수 개의 데이터 전송 채널 중 하나로 스위칭하여 출력하는 멀티플렉서를 더 포함할 수 있다.
본 발명의 다른 일측에 따르면, 복수 개의 연산부 및 상기 복수 개의 연산부 간에 설정되는 복수 개의 데이터 채널을 포함하며, 상기 복수 개의 연산부 각각은, 상기 연산부에 대해 설정되는 상기 복수 개의 데이터 채널 각각에 대해, 채널 활성화 정보 및 전송 데이터 식별 정보를 저장하며, 상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는, 연산 장치가 제공된다.
본 발명의 또 다른 일측에 따르면, 연산 장치에 대해 설정되는 복수 개의 데이터 채널 각각에 관한, 채널 활성화 정보 및 전송 데이터 식별 정보를 저장하는 단계 및 상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보 중 적어도 하나를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는 단계를 포함하는, 연산 장치 작동 방법이 제공된다.
상기 연산 장치 작동 방법은 데이터 채널 설정 정보를 수신하는 단계 및 상기 데이터 채널 설정 정보에 기반하여 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보 중 적어도 하나를 동적으로 설정하는 단계를 더 포함할 수 있다.
상기 연산 장치 작동 방법은 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보에 따라 상기 복수 개의 데이터 각각을 상기 복수 개의 데이터 전송 채널 중 하나로 출력하는 단계를 더 포함할 수 있다.
상기 연산 장치 작동 방법은 상기 복수 개의 데이터 각각을 상기 전송 데이터 식별 정보에 따라 상기 복수 개의 데이터 전송 채널 중 하나로 스위칭하는 단계를 더 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 연산 장치의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 채널 설정 레지스터부의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 채널 설정부의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 적응적 전송 채널 설정 절차를 나타내는 흐름도이다
도 5는 본 발명의 일 실시예에 따른 복수 개의 연산 장치를 구비한 시스템의 구성도이다.
도 6은 헤더(header) 정보를 포함하는 데이터의 구성도이다.
도 7은 움직임(motion) 정보를 포함하는 데이터의 구성도이다.
도 8은 차분(residual) 정보를 포함하는 데이터의 구성도이다.
도 9는 본 발명의 일 실시예에 따른 적응적 설정의 결과로 데이터 전송 채널이 변경된 일 예를 도시한다
도 10은 본 발명의 일 실시예에 따른 적응적 설정의 결과로 데이터 전송 채널이 변경된 다른 예를 도시한다.
도 11은 본 발명의 일 실시예에 따른 연산 장치 작동 방법의 절차 흐름도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 연산 장치를 도시한다.
상기 연산 장치(100)는 채널 설정 레지스터부(110) 및 채널 설정부(120)를 포함한다.
상기 채널 설정 레지스터부(110)는 상기 연산 장치(100)에 대해 설정되는 복수 개의 데이터 채널 각각에 대응하는 채널 활성화 정보 및 전송 데이터 식별 정보를 저장한다.
상기 복수 개의 데이터 채널은 상기 연산 장치(100) 및 다른 연산 장치 간의 데이터 송수신에 사용된다.
상기 채널 활성화 정보는 대응하는 데이터 채널이 상기 연산 장치(100)의 데이터 송수신을 위해 활성화 되었는지 여부를 나타낸다. 특정 데이터 채널에 대한 상기 채널 활성화 정보가 불능화되었다면, 상기 특정 데이터 채널은 상기 연산 장치(100)의 데이터를 전송하기 위해 사용되지 않는다.
상기 전송 데이터 식별 정보는 대응하는 데이터 채널이 상기 연산 장치(100)의 어떤 데이터 타입(type)을 전송하기 위해 사용되는 지를 구분한다.
상기 채널 설정부(120)는 상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보 중 하나 이상을 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 할 수 있고, 상기 데이터 채널을 통해 데이터를 전송할 수 있다.
상기 연산 장치(100)는 데이터 채널 설정 정보를 수신한다.
상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보는 상기 데이터 채널 설정 정보에 기반하여 적응적(adaptive)으로 설정될 수 있다.
상기 데이터 채널 설정 정보는 다른 연산 장치로부터 출력될 수 있고, 상기 데이터 채널 설정 정보는 상기 데이터 채널을 통해 전송될 데이터 타입 및 구성에 관한 정보를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 상기 채널 설정 레지스터부(110)의 구성을 도시한다.
상기 채널 설정 레지스터부(110)는 채널 가능화 레지스터(channel enable register)(210) 및 복수 개의 채널 구성 레지스터(channel configuration register)(220, 230, 240 및 250)를 포함한다.
상기 채널 가능화 레지스터(210)는 상기 복수 개의 데이터 채널 각각의 채널 활성화 여부를 나타내는 필드를 포함한다.
상기 필드는 1 비트일 수 있다. 이 경우, 상기 채널 가능화 레지스터(210) 내의 n 번째 비트는 제n 데이터 채널의 채널 활성화 여부를 나타낼 수 있다.
상기 채널 가능화 레지스터(210)에 의해 활성화된 것으로 표시된 데이터 채널은 상기 연산 장치(100)의 데이터 전송을 위해 사용된다. 예컨대, 상기 채널 가능화 레지스터(210)의 제1, 제2 및 제5 비트가 1이고, 나머지 비트가 0인 경우, 상기 연산 장치(100)는 제1, 제2 및 제5 데이터 채널을 사용하고, 나머지 채널은 사용하지 않는다.
상기 복수 개의 채널 구성 레지스터(220, 230 및 240)는 관련된 데이터 채널에서 전송되어야 할 데이터 타입의 식별자를 포함한다. 도 2에서, 제1 채널 구성 레지스터(220)는 제1 데이터 채널을 통해 전송되어야 할 데이터 타입의 식별자를 포함한다. 제n 채널 구성 레지스터(250)는 제n 데이터 채널을 통해 전송되어야 할 데이터 타입의 식별자를 포함한다.
상기 채널 구성 레지스터(220, 230 및 240)는 데이터 타입 식별자를 나타내는 필드를 포함할 수 있다.
제1 채널 구성 레지스터(220)에서, 제1 필드의 데이터 타입 식별자가 2이고, 제2 필드의 데이터 타입 식별자가 5인 것은 식별자 2를 갖는 데이터 타입 및 식별자 5를 갖는 데이터 타입이 상기 제1 채널을 통해 전송됨을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 상기 채널 설정부(120)의 구성을 도시한다.
상기 채널 설정부(120)는 멀티플렉서(multiplexer)(310)를 포함한다.
상기 멀티플렉서(310)는 복수 개의 데이터 타입을 입력으로 받는다. 상기 데이터는 상기 연산 장치(100)에 의해 생성된 것일 수 있으며, 상기 연산 장치(100)가 전송 받은 것을 재전송하는 것일 수 있다.
상기 멀티플렉서(310)는 상기 복수 개의 데이터 타입 중 하나로 구분되어 입력되는 데이터를 상기 복수 개의 데이터 채널 중 하나로 출력한다. 상기 데이터 채널 및 상기 데이터는 상기 채널 구성 레지스터(220, 230 및 240)에 의해 연관될 수 있다. 상기 연관은 상기 멀티플렉서(310)의 스위칭에 의한 것일 수 있다
예컨대, 제1 채널 구성 레지스터(220)가 제1 데이터 타입의 식별자 및 제3 데이터 타입의 식별자를 나타내는 필드를 포함하면, 상기 멀티플렉서(310)는 상기 제1 데이터 타입에 해당하는 데이터 및 상기 제3 데이터 타입에 해당하는 데이터가 상기 제1 데이터 채널로 출력되도록 스위칭(switching)한다.
상기 멀티플렉서(310)는 상기 연산 장치(100)에 포함된 것일 수 있다.
도 4는 본 발명의 일 실시예에 따른 적응적 전송 채널 설정 절차를 나타내는 흐름도이다.
변수 n은 가용 데이터 채널 중 설정의 대상이 되는 채널을 나타내고, 변수 k는 출력의 대상이 되는 데이터 타입 중 데이터 식별자 k를 갖는 데이터 타입을 나타낸다.
전송 채널 설정을 위해 상기 연산 장치(100) 또는 채널 설정부(120)가 초기화된다(S410). 예컨대, 제1 채널에 대한 채널 설정 파라미터를 입력 받아 상기 제1 채널의 설정이 이루어지도록 n이 1로 초기화된다.
이후, 모든 채널에 대한 설정이 완료되었는지가 검사된다(S420). 예컨대 현재 제n 채널을 포함하여 더 이상의 설정의 대상이 되는 채널이 있는 지 여부가 검사된다.
상기 검사의 결과, 모든 채널에 대한 설정이 완료된 경우 절차가 종료한다. 설정되지 않은 채널이 있는 경우 다음 절차(S430)가 진행된다.
이후, 상기 채널을 통해 전송될 데이터 타입을 설정하기 위해 데이터 타입 검색 순서가 초기화된다(S430). 예컨대, 상기 채널 구성 레지스터(220, 230 및 240)의 제1 필드가 검색되도록 k가 1로 초기화된다.
이후, 모든 데이터 타입에 대한 검색이 완료되었는지가 검사된다(S440). 예컨대, 제k 필드를 포함하여 더 이상의 설정의 대상이 되는 데이터 타입이 있는 지 여부가 검사된다.
상기 검사의 결과, 모든 데이터 타입에 대한 설정이 완료된 경우, 다음 채널의 설정을 위한 절차(S450)가 진행된다.
상기 절차(S450)에서, 현재 설정의 대상이 되는 채널의 다음 채널이 설정의 대상이 된다. 예컨대, n은 1 증가한다. 그 다음으로, 절차(S420)가 진행된다.
상기 검사의 결과, 모든 데이터 타입에 대한 설정이 완료되지 않은 경우, 전송 설정을 위한 절차(S460)가 진행된다.
상기 절차(S460)에서 현재 설정의 대상이 되는 데이터 타입은 현재 설정의 대상이 되는 채널로 전송되도록 설정된다. 예컨대, 제k 필드가 갖는 식별자가 나타내는 데이터 타입이 채널 n을 통해 전송되도록 설정된다.
이후, 다음 데이터 타입이 설정의 대상이 된다(S470). 예컨대 k는 1 증가한다.
상기와 같은 단계를 통해 모든 데이터 전송 채널에 대한 설정이 완료된 후, 절차가 종료한다.
도 5는 본 발명의 일 실시예에 따른 복수 개의 연산 장치를 갖는 시스템을 도시한다.
상기 도 5에서 도시된 연산 장치(510, 520, 530 및 540)는 개별적인 연산 장치를 나타내는 것일 수 있으며, 단일 연산 장치 내의 연산부(core)를 나타내는 것일 수 있다. 또한, 상기 도 5에서 도시된 데이터 채널(522, 532 및 542)는 연산 장치 외부의 데이터 채널일 수 있고, 연산 장치 내 연산부 간의 데이터 채널일 수 있다.
상기 시스템은 제1 연산장치(510), 제2 연산장치(520), 제3 연산장치(530) 및 제4 연산장치(540)을 포함하고, 제1 데이터 채널(522), 제2 데이터 채널(532) 및 제3 데이터 채널(542)을 포함한다.
예시적으로, 상기 시스템은 동영상 복호화(decoding) 또는 부호화(coding)를 위한 것일 수 있으며, 상기 연산장치(510, 520, 530 및 540)는 상기 동영상 복호화 또는 부호화를 위한 특정 기능의 수행을 위해 적합화된 것일 수 있다.
상기 제1 연산장치(510)는 비트 스트림을 복호화하여, 상기 시스템의 다른 연산장치(520, 530 및 540)에서 사용되는 데이터로 변환하는 VLD 처리를 할 수 있다.
상기 제2 연산장치(520)는 상기 헤더 정보를 이용하여 매크로블록의 구성 및 주변 블록의 데이터 생성과 같은 연산을 수행하는 헤더(header) 정보 처리를 할 수 있다.
상기 제3 연산장치(530)는 상기 움직임(motion) 정보를 이용하여 움직임 보상 기능을 수행하는 움직임 정보 처리를 할 수 있다.
상기 제4 연산장치(540)는 역양자화(inverse quantization) 및 역변환(inverse transform) 기능을 수행하는 차분(residual) 정보 처리를 할 수 있다.
또한, 도시되지 않은 다른 연산 장치가 상기 연산장치(510, 520, 530 및 540)와 함께 동영상 복호화를 위한 다른 기능을 수행할 수 있다.
상기 제1 연산장치(510)는 데이터 타입에 따라, 상기 데이터 타입을 사용할 연산 장치(520, 530 및 540)로 상기 데이터 채널(522, 534 및 544)을 통해 데이터(524, 534 및 544)를 출력한다.
제1 데이터(524)는 제1 데이터 전송 채널(522)을 통해 상기 제1 연산장치(510)에서 상기 제2 연산장치(520)로 전송된다.
도 6에서 도시된 것과 같이, 상기 제1 데이터(524)는 헤더 정보(610)를 포함할 수 있다. 상기 헤더 정보(610)는 매크로 블록(macro block)의 종류(type), 블록의 구성 및 필드 플래그(field flag)를 포함할 수 있다.
제2 데이터(534)는 제2 데이터 전송 채널(532)을 통해 상기 제1 연산장치(510)에서 상기 제3 연산장치(530)로 전송된다.
도 7에서 도시된 것과 같이, 상기 제2 데이터(534)는 움직임 정보(710)를 포함할 수 있다. 상기 움직임 정보(710)는 블록 파티션(block partition), 움직임 벡터(motion vector) 및 상기 움직임 벡터의 수, 참조 영상(reference image) 정보 및 참조 인덱스(reference index)를 포함할 수 있다.
제3 데이터(544)는 제3 데이터 전송 채널(542)을 통해 상기 제1 연산장치(510)에서 상기 제4 연산장치(540)로 전송된다.
도 8에서 도시된 것과 같이, 상기 제3 데이터(544)는 차분 정보(810)를 포함할 수 있다. 상기 차분 정보(810)는 CBP(coded block pattern), 양자화 파라미터(quantization parameter) 및 변환(transform) 계수를 포함할 수 있다.
상기 제1 데이터(524), 제2 데이터(534) 및 제3 데이터(544)는 전송의 대상인 연산장치(520, 530, 540)를 위한 정보만을 포함한다.
상기와 같은 전송을 통해 상기 제2 연산장치(520), 제3 연산장치(530) 및 제4 연산장치(540) 각각은 자신의 연산 속도에 따라 자신에게 전송된 데이터(524, 534 또는 544)를 이용하여 연산을 수행한다. 따라서, 상기 시스템의 효율은 상기 제1 연산장치(510)에 의존하게 된다.
상기 제1 연산장치(510)는 다른 연산장치(520, 530 및 540)로부터 데이터 채널 설정 정보를 수신한다. 상기 제1 연산장치(510)는 전술된 본 발명의 실시예에 따라 상기 데이터 채널 설정 정보에 기반하여 어떤 데이터 타입을 어떤 데이터 채널(522, 532 또는 542)을 통해 어떤 연산 장치(520, 530 또는 540)로 전송할 것인지를 적응적으로 설정할 수 있다.
아래에서, 도 5에서 도시된 것과는 달리, 모든 연산장치(510, 520, 530 및 540)가 하나의 전송 채널을 공유할 경우를 검토한다.
이러한 경우, 상기 제1 연산장치(510)는 상기 제2 연산장치(520)로 모든 데이터를 전송하고, 상기 제2 연산장치(520)는 상기 데이터를 분석하여 다른 연산장치(530 및 540)로 상기 데이터의 일부를 다시 전송한다.
따라서, 전체 시스템의 성능이 상기 제2 연산장치(520)의 효율에 의해서도 제한될 수 있다.
이러한 문제의 해결을 위해, 출력 데이터의 종류에 따라 각각의 최대 크기를 정하고, 상기 최대 크기에 따라 각각의 출력 데이터를 미리 정해진 위치에 저장하는 방법이 사용될 수 있다. 그러나, 이러한 방법은 예컨대 사용되는 메모리의 양과 같은 비용(cost)의 발생을 유발하는 단점이 있다.
또한, 상기 제1 연산 장치(510)가 공유되는 하나의 전송 채널을 통해 다른 연산장치(520, 530 및 540)로부터 데이터를 입력 받는 경우를 검토한다. 예컨대 상기 제1 연산장치(510)가 비트 스트림을 생성하기 위하여 헤더 정보, 움직임 벡터 및 변환 계수 등의 데이터를 입력 받는 경우가 일 예이다.
상기 제1 연산 장치가 입력 받는 데이터는 일반적으로 매크로 블록마다 크기가 다르다. 따라서, 각각의 연산 장치(520, 530 및 540)로부터의 데이터는 상기 제1 연산장치(510)로 순차적으로 입력되어야 한다.
따라서, 상기 제3 연산장치(530)는 상기 제2 연산장치(520)에서 상기 제1 연산장치(510)로의 데이터 전송이 완료되었는지를 확인한 후, 데이터를 전송해야 하며, 상기 제4 연산장치(540)는 상기 제3 연산장치(530)에서 상기 제1 연산장치(520)로의 데이터 전송이 완료되었는지를 확인한 후, 데이터를 전송해야 한다.
그 결과, 각각의 연산장치(510, 520, 530 및 540)는 다른 연산장치(510, 520, 530 및 540)의 데이터 전송이 완료되기를 기다려야 한다.
도 9는 본 발명의 일 실시예에 따른 적응적 설정의 결과로 데이터 전송 채널이 변경된 예를 도시한다.
상기 적응적 설정은 상기 연산장치(510, 520, 530 및 540)가 프로그래밍 가능한(programmable) 연산장치일 경우, 상기 연산 장치(510, 520, 530 및 540)가 지원하는 애플리케이션(application)의 특성에 기인한 것일 수 있다.
또한, 상기 적응적 설정은 상기 연산장치(510, 520, 530 또는 540)가 지원하는 애플리케이션의 변화 또는 상기 연산 장치(510, 520, 530 또는 540)의 효율의 변화에 기인한 것일 수 있다.
상기 제2 연산장치(520)는 상기 도 5에서 상기 제2 연산장치(520)가 수행하였던 기능, 예컨대 헤더 정보 처리 및 상기 도 5에서 상기 제3 연산장치(530)가 수행하였던 기능, 예컨대 움직임 정보 처리를 수행한다.
상기 제3 연산장치(530)는 상기 도 5에서 상기 제4 연산장치(530)가 수행하였던 기능, 예컨대 차분 정보 처리를 수행한다.
따라서, 상기 제1 데이터 채널(522)을 통해 상기 제1 연산장치(510)에서 상기 제2 연산장치(520)로 전송되는, 제1 데이터(924)는 상기 헤더 정보(610) 및 상기 움직임 정보(710)를 포함한다.
또한, 상기 제2 데이터 채널(532)을 통해 상기 제1 연산장치(510)에서 상기 제3 연산장치(530)로 전송되는, 제2 데이터(934)는 상기 차분 정보(810)를 포함한다.
상기 제2 연산장치(520) 및 상기 제3 연산장치(530)는 계속되는 적응적 설정을 위해 데이터 채널 설정 정보를 상기 제1 연산장치(510)로 전송한다.
도 10은 본 발명의 일 실시예에 따라 적응적 설정의 결과로 데이터 전송 채널이 변경된 다른 예를 도시한다.
상기 실시예에서, 제1 연산장치(510)는 제2 연산장치(520) 및 제3 연산장치로 데이터를 출력한다. 제2 연산장치(520)는 제4 연산장치(540)로 데이터를 출력한다. 즉, 상기 제4 연산장치(540)는 상기 제1 연산장치(510)로부터 직접적으로 데이터를 수신하지는 않는다.
따라서, 각각의 데이터(1014, 1024, 1034 또는 1044)는 별개의 데이터 채널(522, 532, 542 또는 552)을 통해 전송된다.
상기 제4 연산장치(540)는 상기 제2 연산장치(520)로부터 상기 제4 데이터(1044)를 전송 받는다. 따라서, 상기 제4 연산장치(540)는 상기 제2 연산장치(520)로 데이터 채널 설정 정보를 전송한다. 같은 이유로, 상기 제2 연산장치(520) 및 상기 제3 연산 장치(530)는 상기 제1 연산장치(510)로 데이터 채널 설정 정보를 전송한다.
도 11은 본 발명의 일 실시예에 따른 연산 장치 작동 방법의 절차 흐름도이다.
상기 연산 장치(100)는 데이터 채널 설정 정보를 수신한다(S1110).
이후, 상기 연산 장치(100)는 상기 데이터 채널 설정 정보에 기반하여 복수 개의 데이터 채널 각각에 대한 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보를 동적으로 설정한다(S1120). 상기 데이터 채널 설정 정보는 상기 데이터 채널을 통해 전송될 데이터의 타입 및 구성에 대한 정보를 포함할 수 있다.
이후, 상기 연산 장치(100)는 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보를 저장한다(S1130).
이후, 상기 연산 장치(100)는 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보를 참조하여, 상기 복수 개의 데이터 채널을 활성화 또는 비활성화로 설정(setting)한다(S1140). 상기 연산 장치(100)가 데이터를 전송하기 위해서는 상기 복수 개의 데이터 채널 중 적어도 하나는 활성화되어야 한다.
이후, 상기 연산 장치(100)는 복수 개의 데이터 타입 각각을 상기 전송 데이터 식별 정보에 따라, 상기 복수 개의 데이터 전송 채널 중 하나를 통해 전송되도록 스위칭 작업을 수행한다(S1150).
이후, 상기 연산 장치(100)는 데이터를 출력하고(S1160), 절차가 종료된다. 상기 데이터는 데이터 타입에 따라 스위칭된 데이터 전송 채널을 통해 출력된다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 연산 장치
110: 채널 설정 레지스터부
120: 채널 설정부

Claims (14)

  1. 연산장치에 대해 설정되는 복수 개의 데이터 채널 각각에 대해, 채널 활성화 정보 및 전송 데이터 식별 정보를 저장하는 채널 설정 레지스터부; 및
    상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보 중 적어도 하나를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는 채널 설정부
    를 포함하고,
    상기 채널 설정 레지스터부는,
    상기 복수 개의 데이터 채널 각각의 채널 활성화 여부를 나타내는 필드를 포함하는 제1 레지스터; 및
    데이터 채널 별로 처리 가능한 데이터 타입을 나타내는 데이터 식별자 필드를 포함하고, 상기 복수 개의 데이터 채널 각각에 대응하도록 구비된 복수의 제2 레지스터
    를 포함하는, 연산 장치.
  2. 제1항에 있어서,
    상기 연산 장치는 데이터 채널 설정 정보를 수신하고, 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보 중 적어도 하나는 상기 데이터 채널 설정 정보에 기반하여 동적으로 설정되는, 연산 장치.
  3. 제2항에 있어서,
    상기 데이터 채널 설정 정보는 상기 데이터 채널에게 필요한 데이터 타입 및 구성 중 적어도 하나의 정보를 포함하는, 연산 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 제2 레지스터가 나타내는 상기 데이터 채널로 상기 제2 레지스터의 데이터 식별자 필드가 나타내는 데이터를 전송하는, 연산 장치
  6. 제1항에 있어서,
    복수 개의 데이터를 입력 받아, 상기 복수 개의 데이터 각각을 상기 전송 데이터 식별 정보에 따라 상기 복수 개의 데이터 전송 채널 중 하나로 스위칭하여 출력하는 멀티플렉서
    를 더 포함하는, 연산 장치
  7. 복수 개의 연산부; 및
    상기 복수 개의 연산부 간에 설정되는 복수 개의 데이터 채널을 포함하며,
    상기 복수 개의 연산부 각각은,
    상기 연산부에 대해 설정되는 상기 복수 개의 데이터 채널 각각에 대해, 상기 복수 개의 데이터 채널 각각의 채널 활성화 여부를 나타내는 필드를 포함하는 채널 활성화 정보 및 상기 복수 개의 데이터 채널 각각에 대응하도록 데이터 채널 별로 처리 가능한 데이터 타입을 나타내는 데이터 식별자 필드를 포함하는 전송 데이터 식별 정보를 저장하며, 상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는, 연산 장치.
  8. 제7항에 있어서,
    상기 복수 개의 연산부는 비트스트림 복호화 연산부, 헤더 처리 연산부, 움직임 정보 연산부 및 차분 정보 연산부
    를 포함하는, 연산 장치.
  9. 연산 장치에 대해 설정되는 복수 개의 데이터 채널 각각에 관한, 채널 활성화 정보 및 전송 데이터 식별 정보를 저장하는 단계; 및
    상기 복수 개의 데이터 채널 각각에 대한 채널 활성화 정보 및 전송 데이터 식별 정보 중 적어도 하나를 참조하여, 상기 복수 개의 데이터 채널 중 적어도 하나를 활성화 하는 단계
    를 포함하고,
    상기 채널 활성화 정보는, 상기 복수 개의 데이터 채널 각각의 채널활성화 여부를 나타내는 필드를 포함하고,
    상기 전송 데이터 식별 정보는, 상기 복수 개의 데이터 채널 각각에 대응하도록 데이터 채널 별로 처리 가능한 데이터 타입을 나타내는 데이터 식별자 필드를 포함하는 연산 장치 작동 방법.
  10. 제9항에 있어서,
    데이터 채널 설정 정보를 수신하는 단계; 및
    상기 데이터 채널 설정 정보에 기반하여 상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보 중 적어도 하나를 동적으로 설정하는 단계
    를 더 포함하는 연산 장치 작동 방법.
  11. 제10항에 있어서,
    상기 데이터 채널 설정 정보는 상기 데이터 채널에게 필요한 데이터 타입 및 구성 중 적어도 하나의 정보를 포함하는, 연산 장치 작동 방법.
  12. 제10항에 있어서,
    상기 채널 활성화 정보 및 상기 전송 데이터 식별 정보에 따라 상기 복수 개의 데이터 각각을 상기 복수 개의 데이터 전송 채널 중 하나로 출력하는 단계
    를 더 포함하는 연산 장치 작동 방법.
  13. 제12항에 있어서,
    상기 복수 개의 데이터 각각을 상기 전송 데이터 식별 정보에 따라 상기 복수 개의 데이터 전송 채널 중 하나로 스위칭하는 단계
    를 더 포함하는 연산 장치 작동 방법.
  14. 제9항 내지 제13항 중 어느 한 항의 연산 장치 작동 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
KR1020100041820A 2010-05-04 2010-05-04 적응적 연산 장치 및 적응적 연산 장치 작동 방법 KR101652694B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100041820A KR101652694B1 (ko) 2010-05-04 2010-05-04 적응적 연산 장치 및 적응적 연산 장치 작동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100041820A KR101652694B1 (ko) 2010-05-04 2010-05-04 적응적 연산 장치 및 적응적 연산 장치 작동 방법

Publications (2)

Publication Number Publication Date
KR20110122367A KR20110122367A (ko) 2011-11-10
KR101652694B1 true KR101652694B1 (ko) 2016-09-09

Family

ID=45392911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100041820A KR101652694B1 (ko) 2010-05-04 2010-05-04 적응적 연산 장치 및 적응적 연산 장치 작동 방법

Country Status (1)

Country Link
KR (1) KR101652694B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2571905B2 (ja) * 1991-12-19 1997-01-16 ブル・エス・アー 複数のメモリとコンピュータバスとの間でのデータ多重転送制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100959136B1 (ko) * 2008-07-16 2010-05-25 한국전자통신연구원 직접 메모리 접근 제어기 및 직접 메모리 접근 채널의데이터 전송 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2571905B2 (ja) * 1991-12-19 1997-01-16 ブル・エス・アー 複数のメモリとコンピュータバスとの間でのデータ多重転送制御装置

Also Published As

Publication number Publication date
KR20110122367A (ko) 2011-11-10

Similar Documents

Publication Publication Date Title
JP4920034B2 (ja) マルチスレッドsimd処理を利用したメディア符号化の並列実行
CN109845268A (zh) 使用树结构的块分割
US20130156103A1 (en) Mode searching and early termination of a video picture and fast compression of variable length symbols
CN101371264A (zh) 用于在并行处理系统中处理多媒体数据的子块的方法和装置
WO2010129684A1 (en) Execution units for context adaptive binary arithmetic coding (cabac)
CN103918273A (zh) 确定用于变换系数的二进制码字的方法
US20110310966A1 (en) Syntax element decoding
CN101248430A (zh) 视频处理的转置缓冲
US8634470B2 (en) Multimedia decoding method and multimedia decoding apparatus based on multi-core processor
US20110317762A1 (en) Video encoder and packetizer with improved bandwidth utilization
WO2005116853A1 (en) Hierarchical processor architecture for video processing
US8832412B2 (en) Scalable processing unit
TWI517662B (zh) 圖片用於視訊處理的系統及其方法
KR20110134626A (ko) 매크로블록의 연관관계를 고려하여 영상 데이터의 부호화 및 복호화를 병렬 처리하는 장치 및 방법
JP2009081726A (ja) エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
KR101652694B1 (ko) 적응적 연산 장치 및 적응적 연산 장치 작동 방법
US20110069761A1 (en) Parallel encoding device, recording medium, and imaging data encoding method
PH12017500788B1 (en) Image coding device, image coding method, image coding program, transmission device, transmission method, transmission program, image decoding device, image decoding method, image decoding program, reception device, reception method, and reception program
JP2002016926A (ja) スプライト符号化データ伝送方法、スプライト符号化装置、スプライト符号化データ復号装置及び記録媒体
JP5362099B2 (ja) 符号化装置
US20150195551A1 (en) Programmable variable block size motion estimation processor
US20090201989A1 (en) Systems and Methods to Optimize Entropy Decoding
US11223846B1 (en) Complexity-based motion search for video encoder
JP6982253B2 (ja) 復号装置、符号化装置、復号方法、符号化方法、及びプログラム
JP2001218201A (ja) 並列画像復号装置,並列画像復号方法および並列画像復号用プログラム記録媒体

Legal Events

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