首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 中央处理器 / 算术逻辑单元 / 산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체

산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체

阅读:1026发布:2021-01-06

专利汇可以提供산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체专利检索,专利查询,专利分析的服务。并且본 발명은 스택 장치(STCK)와 상호 작용하는 산술 논리 유닛(ALU)을 포함하는 데이터 프로세서에 관한 것이다. 상기 프로세서는 스택 제어 필드(SCF) 및 연산 코드 필드(OPF)를 포함하여 스택 장치(STCK) 및 산술 논리 유닛(ALU)을 각기 제어하는 인스트럭션(INSTR)을 실행하도록 위치한다.,下面是산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체专利的具体信息内容。

  • 스택 장치와 상호 작용하는 산술 논리 유닛을 포함하는 프로세서에 있어서,
    상기 프로세서는 상기 스택 장치 및 상기 산술 논리 유닛을 각기 제어하는 스택 제어 필드 및 연산 코드 필드를 포함하는 인스트럭션을 실행하는 프로세서.
  • 제 1 항에 있어서,
    상기 스택 장치는 연산 스택 및 리턴 스택을 포함하며,
    상기 스택 제어 필드는 상기 연산 스택을 제어하는 연산 스택 서브 필드 및 상기 리턴 스택을 제어하는 리턴 스택 서브 필드를 포함하는 프로세서.
  • 다수의 데이터 프로세서 및 제어 프로세서를 포함하며, 상기 다수의 데이터 프로세서에 상기 제어 프로세서내에 포함된 스택 장치 및 산술 논리 유닛을 각기 제어하는 스택 제어 필드 및 연산 코드 필드를 포함하는 인스트럭션에 기초하여 제어 데이터를 제공하는 멀티미디어 장치.
  • 스택 장치와 상호 작용하는 산술 논리 유닛을 포함하는 프로세서를 위한 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램 제품은 인스트럭션이 상기 프로세서에 의해서 실행되었을 때에 상기 스택 장치 및 상기 산술 논리 유닛을 각기 제어하는 스택 제어 필드 및 연산 코드 필드를 포함하는 상기 인스트럭션을 포함하는 컴퓨터 프로그램 제품.
  • 说明书全文

    산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 프로그램 제품{DATA PROCESSOR WITH AN ARITHMETIC LOGIC UNIT AND A STACK}

    산술 논리 유닛(ALU)은 통상적으로 피연산자(operand)라고도 불리는 2개의 입력 데이터에 대한 연산을 수행하여 출력 데이터를 획득한다. ALU가 수행하는 연산은 통상적으로 마이크로 코드(micro code)라고도 불리는 비트의 스트링(a string of bits)형태의 인스트럭션(an instruction)에 의해서 정의된다. 인스트럭션은 ALU가, 예를 들면 가산(an addition)-Z = X + Y, X 및 Y는 입력 데이터, Z는 출력 데이터-과 같은 산술 연산을 수행하도록 한다. 인스트럭션은 또한 ALU가, 예를 들면 AND, OR, NAND 및 NOR 함수와 같은 논리 연산을 수행하도록 한다.

    ALU는 스택과 상호 작용할 수 있다. 스택은 저장 요소(storage element)의 집합(assembly)인데, 각각의 저장 요소는 데이터를 포함할 수 있다. ALU에 의해서 곧 처리될 입력 데이터는 스택내에 임시로 저장된다. ALU로부터의 출력 데이터 또한 스택에 임시로 저장될 수 있다. 스택 포인터(a stack pointer)는 통상적으로 스택의 최상부(top-of-stack)를 구성하는 저장 요소를 지시한다. 스택상에 위치한 데이터는 통상적으로 스택의 최상부에 기록되며, 스택으로부터 제거되는 데이터 또한 스택의 최상부로부터 판독된다. 스택에의 데이터 기록 및 스택으로부터의 데이터 판독은 이후에 푸쉬(push) 및 팝(pop)으로 불릴 것이다. 통상적으로, ALU의 입력 데이터는 스택으로부터 데이터를 팝(pop)하여 획득되며, 출력 데이터는 스택상에 데이터를 푸쉬(push)하여 저장된다. 이러한 방식으로 동작하는 프로세서는 국제 출원 번호 WO95/30954에서 스택 기반 프로세서(a stack-based processor)라고 불린다.

    발명의 개요

    본 발명의 목적은 비용을 절감하는 것이다.

    본 발명은 다음과 같은 측면을 고려한다. 기본적으로, 스택 기반 프로세서에서는 2가지 타입의 연산이 수행된다. 무엇보다도, ALU는 산술 및 논리 연산을 수행한다. 두 번째로, 스택은 원하는 입력 데이터를 ALU에 입력하도록 조작된다.

    각각의 상이한 산술 및 논리 연산과 각각의 상이한 스택 조작에 대한 특정 인스트럭션을 정의하는 것은 가능하다. 이러한 경우에, 스택 기반 프로세서는, 예를 들면 다음과 같은 인스트럭션 시퀀스에 의해서 데이터를 처리하도록 프로그램될 수 있다. 먼저, 스택이 원하는 데이터를 ALU에 입력하도록 하는, 예를 들면 팝 인스트럭션(a pop instruction)과 같은 스택 조작 인스트럭션. 두 번째로, ALU가, 예를 들면 가산(an addition)과 같은 산술 또는 논리 연산을 수행하도록 하는 인스트럭션. 세 번째로, 산술 또는 논리 연산의 결과가 스택에 저장되는, 예를 들면 푸쉬 인스트럭션(a push instruction)과 같은 스택 조작 인스트럭션.

    상이한 산술 논리 연산의 수는 상이한 스택 조작의 수보다 훨씬 클 수 있으며, 그 반대의 경우도 성립한다. 이것은 스택 조작을 정의하는 인스트럭션은 산술 또는 논리 연산을 정의하는 인스트럭션보다 적은 비트로 코딩(coding)될 수 있으며, 그 반대의 경우도 성립할 수 있음을 의미한다. 즉, 스택 조작을 정의하는 인스트럭션은 산솔 논리 연산을 정의하는 인스트럭션보다 짧을 수 있으며, 그 반대의 경우도 성립할 수 있음을 의미한다. 다양한 길이의 인스트럭션을 가지는 상이한 타입의 연산을 코딩하면, 인스트럭션의 세트, 즉 프로그램을 저장하는 데에 비교적 작은 메모리로 충분하다는 장점을 가지게 된다.

    그러나, 가변 길이의 인스트럭션을 수행하기에 적당한 프로세서를 제조하기 위하여 통상적으로 비교적 높은 하드웨어 비용을 요구할 것이다. 이러한 비용은 통상적으로 인스트럭션을 저장하는 비교적 작은 메모리의 비용 장점을 능가할 것이다. 따라서, 통상적으로 모든 인스트럭션이 고정된 길이를 가지는 경우가 비용면에서 보다 효율적이다. 그럼에도 불구하고, 이러한 경우에, 이러한 인스트럭션을 저장하는 메모리는 비효율적으로 이용될 것이다. 예를 들면, 16개의 상이한 산술 논리 연산 및 4개의 상이한 스택 조작이 존재한다고 가정하자. 이것은 스택 조작을 정의하는 인스트럭션이 산술 또는 논리 연산을 정의하는 인스트럭션보다 작은 2개의 비트로 코딩될 수 있음을 의미한다. 결과적으로, 스택 조작 인스트럭션마다 2개의 메모리 비트가 낭비된다.

    본 발명에 따르면, 프로세서가 각기 스택 장치 및 산술 논리 유닛을 제어하는 스택 제어 필드 및 연산 코드를 포함하는 인스트럭션을 실행하도록 위치한다.

    따라서, 하나의 인스트럭션내에서 스택 조작뿐만 아니라 산술 또는 논리 연산을 정의하는 것은 가능하다. 결과적으로, 이러한 인스트럭션은 고정된 길이를 가질 수 있으며, 실질적으로 각각의 인스트럭션에 대하여, 인스트럭션을 형성하는 모든 비트가 하나의 방식으로 또는 다른 방식으로 프로세서내에서 수행되는 연산에 영향을 미치게 된다. 결과적으로, 이러한 인스트럭션의 세트는 데이터 프로세서 연산에 영향을 미치지 않는 매우 적은 비트를 포함하거나, 심지어 이러한 비트를 전혀 포함하지 않을 것이다. 결과적으로, 한편으로는 산술 및 논리 연산에 대한, 다른 한편으로는 스택 조작에 대한 별개의 인스트럭션이 존재하는 고정된 길이를 가지는 인스트럭션의 세트와 비교하였을 때에 이러한 인스트럭션의 세트를 저장하는 데에 보다 작은 메모리를 요구할 것이다. 결고적으로, 본 발명의 비용의 절감을 가능케한다.

    본 발명의 이러한 측면과 다른 다양한 측면은 도면을 참조하여 이후에 기술되는 발명의 상세한 설명에서 명확하게 설명될 것이다.

    본 발명은 스택 장치(a stack arrangement)와 상호 작용하는 산술 논리 유닛(arithmetic logic unit)에 의한 데이터 처리에 관한 것이다. 본 발명은, 예를 들면 제어 데이터(control data)를 다양한 기능 유닛(functional units)에 제공하는 프로세서(processor) 형태의 제어기를 포함하는 멀티미디어(multimedia) 제품에서 이용될 수 있다.

    도 1은 청구의 범위의 청구항 1에서 청구된 본 발명의 기본적인 특징을 설명하는 개념도,

    도 2는 본 발명에 따른 멀티미디어 장치의 한 예를 설명하는 블록도,

    도 3은 도 2에 설명된 멀티미디어 장치내의 비디오 출력 유닛의 프로그래밍 체계(a programming scheme)를 설명하는 매트릭스(matrix),

    도 4는 비디오 출력 유닛이 디스플레이 장치에 제공하여야하는 프레임(frame)을 설명하는 개념도,

    도 5는 비디오 출력 유닛내의 마스터 제어 프로세서(a master control processor)에 제공되는 일련의 메인 인스트럭션(a series of main instructions)을 설명하는 흐름도,

    도 6은 마스터 제어 프로세서의 실행을 설명하는 블록도,

    도 7은 마스터 제어 프로세서의 다양한 타입의 인스트럭션과 이러한 인스트럭션내에 포함된 비트(bit)사이의 관계를 설명하는 도표,

    도 8 은 마스터 제어 프로세서가 인스트럭션을 수행하는 방식을 설명하는 도.

    다음의 설명은 참조 부호에 관한 것이다. 모든 도면에서 동일한 개체는 동일한 참조 문자로 표시된다. 몇몇의 유사한 개체가 하나의 도면에 표시될 것이다. 이러한 경우에, 동일한 개체를 구별하기 위해 숫자 혹은 접미사가 참조 문자에 부가된다. 숫자 혹은 접미사는 편의상 생략될 수도 있고, 또는 그 값이 중요치 않은 경우(값이 무관할 경우)에는 별표로 대체될 수도 있다. 이것은 설명뿐만 아니라 청구의 범위에도 적용된다.

    도 1은 본 발명의 기본적인 특징을 도시한다. 프로세서는 스택 장치(STCK)와 상호 작용하는 산술 논리 유닛(ALU)를 포함한다. 프로세서는 각기 스택 장치(STCK) 및 산술 논리 유닛(ALU)을 제어하는 스택 제어 필드(SCF) 및 연산 코드 필드(OPF)를 포함하는 인스트럭션(INSTR)을 실행하도록 위치한다.

    도 1 의 특징은, 예를 들면 멀티미디어 장치와 같은 멀티프로세서 장치의 일부를 형성하는 제어 프로세서에서 이용될 수 있다. 제어 프로세서는 제어 프로세서가 제어 데이터를 멀티프로세서 장치내에 포함된 다양한 프로세서에 입력하는 명령 세트를 실행한다. 명령 세트는 전체적으로 또는 부분적으로 내부 프로그램 메모리내에 포함될 수 있다.

    도 2는 상기된 도 1의 특징을 포함하는 멀티미디어 장치의 한 예를 도시한다. 멀티미디어 장치는 부호화된 비디오 데이터를 포함하는 입력 데이터(IN)를 처리하여, 무엇보다도 디스플레이 장치상에 디스플레이하기 위한 비디오 데이터 스트림(video data stream)(VDS)을 제공한다. 멀티미디어 장치는 메인 인터페이스(main interface)(MIF), 메인 버스(HWY), 중앙 처리 유닛(CPU), 메인 인스트럭션 레지스터(REG) 및 다양한 메인 프로세서를 포함한다. 2개의 메인 프로세서가 도시되는데, 이는 비디오 복호기(VDEC) 및 비디오 출력 유닛(HDVO)이다. 비디오 출력유닛(HDVO)은 마스터 제어 프로세서(a master control processor)(MCP) 및 다음과 같은 데이터 조작 요소, 즉 인터페이스(IF), 판독 크로스바(a read corssbar)(XB/R), 메모리 블록(MB), 프로세서(P) 스트리밍 아웃 회로(streaming-out circuit)(SO)를 포함한다. 스트리밍 아웃 회로(SO)는 버퍼(BUF), 멀티플렉서(MUX) 및 제어기(CON)를 포함한다. 각각의 데이터 조작 요소는 제어 레지스터를 가진다. 도 2에 도시되지 않은 제어 레지스터는 도 3에 예시된 것과 같은 구조를 가진다. 즉, 제어 레지스터는 프론트 레지스터(a front register) 및 섀도우 레지스터(a shadow register)를 포함한다.

    멀티미디어 장치는 기본적으로 다음과 같이 동작한다. 중앙 처리 유닛(CPU)은 메인 인스트럭션 워드(main instruction words)에 의해서 멀티미디어 장치의 다양한 요소를 제어한다. 메인 인터페이스(MIF)는, 예를 들면 외부 메인 메모리로부터 입력 데이터(IN)를 패치(fetch)한다. 이러한 메모리는 도 2에 도시되어 있지 않다. 비디오 복호기(VDEC)는 입력 데이터내에 포함된 부호화된 비디오 데이터를 복호화한다. 따라서, 외부 메인 메모리에 임시로 저장될 복호화된 비디오 데이터는 획득된다. 비디오 출력 유닛(HDVO)은 복호화된 비디오 데이터를 특정 디스플레이 장치상에 디스플레이한다. 부가적으로, 비디오 출력 유닛(HDVO)은 복호화된 비디오 데이터를 다른 비디오 데이터와 결합하여 픽쳐-인-픽쳐(picture-in-picture) 또는 블랜딩(blending)과 같은 특징을 제공할 수 있다.

    아래에서 비디오 출력 유닛(HDVO)의 동작이 보다 상세히 설명될 것이다. 비디오 출력 유닛(HDVO)은 구성 단계 및 처리 단계를 번갈아 수행한다. 구성 단계에서, 마스터 제어 프로세서(MCP)는 로드 명령(a load command)을 데이터 조작 요소의 제어 레지스터에 제공한다. 도 3에 도시된 바와 같이, 각각의 제어 레지스터는 프론트 레지스터 및 섀도우 레지스터를 포함함은 이전에 언급되었다. 따라서, 섀도우 레지스터는 로드 명령에 응답하여 인스트럭션 워드(an instruction word)를 로딩한다. 따라서, 인스트럭션 워드는 구성 단계에 뒤이은 처리 단계동안에 관련된 데이터 조작 요소의 동작을 결정할 것이다. 예를 들면, 크로스바(XB/W,XB/R)의 섀도우 레지스터에 로딩된 인스트럭션 워드는, 한편으로는 메모리 블록(MB)과, 다른 한편으로는 인터페이스(IF), 스트리밍 아웃 회로(SO) 및 프로세서(P)사이의 접속을 결정한다. 제어 레지스터의 섀도우 레지스터가 인스트럭션 워드를 로딩하였을 때에, 제어 레지스터는 구성 완료 신호(a configuration-done signal)를 마스터 제어 프로세서(MCP)에 제공한다. 마스터 제어 신호가 모든 데이터 조작 요소의 제어 레지스터로부터 구성 완료 신호를 수신하였을 때에, 마스터 제어 프로세서(MCP)는 처리 개시 신호(a start-processing signal)를 프로세서(P)에 제공한다. 처리 개시 신호는 처리 단계의 시작을 나타낸다.

    처리 단계에서, 각각의 프로세서(P)는 프로세서(P)가 접속된 메모리 블록(MB)에 저장된 특정한 수의 픽셀(pixel)을 처리한다. 처리 단계에서 프로세서(P)가 처리하는 픽셀의 수는 256을 초과하지 않는다. 처리될 픽셀의 수는, 예를 들면 인스트럭션 워드에 의해서 정의될 수 있다. 프로세서(P)가 픽셀을 처리하는 동안에, 마스터 제어 프로세서(MCP)는 새로운 인스트럭션 워드를 데이터 조작 요소의 프론트 레지스터에 기록함으로써 새로운 VLIW를 구성할 수 있다. 일단 프로세서(P)가 정해진 수의 픽셀을 처리한 때에는, 프로세서는 처리를 정지하며 동작 종료 신호(an end-of-operation signal)를 마스터 제어 프로세서(MCP)에 제공할 것이다. 이에 응답하여, 마스터 제어 프로세서(MCP)는 새로운 구성 단계를 수행할 것이다.

    따라서, 비디오 출력 유닛(HDVO)은 복호화된 비디오 데이터를 블록 단위의 방식으로(in a block-wise-manner) 처리한다. 예를 들면, 제 1 처리 단계에서, 인터페이스(IF)는 256 픽셀의 블록을 기록 크로스바(XB/W)를 경유하여 메모리 블록(MB1)에 기록한다. 제 2 처리 단계에서, 프로세서(P1)는 메모리 블록(MB1)으로부터 256 픽셀의 블록을 판독하여 이것을 처리한다. 프로세서(P1)는, 예를 들면 동일한 라인(line)상의 다수의 픽셀에 가중치를 주어 조합하는 수평 비디오 필터일 수 있다. 따라서, 프로세서(P1)는 수평으로 필터링된 픽셀의 블록을 제공하여 이러한 블록을 메모리 블록(MB2)에 기록한다. 제 3 처리 단계에서, 프로세서(P2)는 메모리 블록(MB2)으로부터 처리된 수평으로 필터링된 블록을 판독하여 이를 처리한다. 프로세서(P2)는, 예를 들면 이웃하는 라인에 속하는 해당 픽셀에 가중치를 주어 조합하는 수직 비디오 필터일 수 있다. 수평으로 필터링된 픽셀의 블록이 한 라인에 속하는 경우에는, 프로세서(P2)는 이웃하는 라인에 속하는 다른 수평으로 필터링된 픽셀의 블록을 판독할 것이다. 따라서, 프로세서(P2)는 수평 및 수직으로 필터링된 픽셀의 블록을 제공하며, 이러한 블록을 메모리 블록(MB3)에 기록한다. 프로세서 P3 또는 P4 또는 이들 모두가 메모리 블록(MB3)에 포함된 수평 및 수직으로 필터링된 픽셀을 더 처리하는 부가하는 처리 단계가 존재할 수 있다. 예로서,수평 및 수직으로 필터링된 픽셀의 블록은 비디오 데이터 스트림(VDS)의 일부를 형성할 준비가 되었음이 가정된다. 따라서, 제 4 처리 단계에서, 관계 블록은 메모리 블록(MB3)으로부터 스트리밍 아웃 회로(SO)의 버퍼(BUF)로 전송될 것이다.

    통상적으로 스트리밍 아웃 회로(SO)는 각각의 처리 단계에서 처리된 픽셀의 블록을 수신하여 이를 버퍼(BUF)에 저장한다. 스트리밍 아웃 회로(SO)는 버퍼(BUF)로부터 처리된 픽셀을 판독하여 비디오 데이터 스트림(VDS)에 제공한다. 제어기(CON)는, 예를 들면 라인 주파수, 필드 주파수, 라인당 픽셀 수 및 필드당 라인 수에 관한 비디오 데이터 스트림(VDS)의 원하는 포맷(format) 정보를 가지고 있다. 제어기(CON)는 처리된 픽셀이 적당한 순간에, 원하는 레이트(rate)로 버퍼(BUF)로부터 판독되도록 한다. 제어기(CON)는 픽셀과, 예를 들면 수평 및 수직 동기화 신호(HS,VS)와 같은 다수의 제어 신호를 수신하는 멀티플렉서(MUX)를 또한 제어한다. 따라서, 적절한 제어 신호가 적당한 순간에 픽셀들 사이에 삽입된다.

    그 결과, 비디오 출력 유닛(HDVO)은 데이터 조작 요소, 즉 인터페이스(IF), 판독 크로스바(XB/R), 기록 크로스바(XB/W), 메모리 블록(MB), 프로세서(P) 및 스트리밍 아웃 회로(SO)로 구성된 데이터 처리 체인(a data-processing chain)이 된다. 마스터 제어 프로세서(MCP)는 데이터 처리 체인의 구성을 결정한다. 마스터 제어 프로세서는 또한 체인내의 각각의 요소의 데이터 조작 특성을 결정한다. 마스터 제어 프로세서(MCP)는 적절한 인스트럭션 워드를 데이터 조작 요소의 제어 레지스터에 기록함으로써 상기 결정을 행한다. 요컨데, 마스터 제어 프로세서(MCP)는 다양한 기계를 갖춘 작업장의 감독관으로 여겨질 수 있다. 작업장은 비디오 출력 유닛(HDVO)에 해당하며, 기계는 비디오 출력 유닛(HDVO)내의 데이터 조작 요소에 해당한다. 감독관은 생산 라인을 구성하며, 기계가 그 안에서 무엇을 할지를 결정한다. 생산 라인은 데이터 처리 체인에 해당한다.

    비디오 출력 유닛(HDVO)이 하나의 비디오 신호를 프레임당 라인 수 및 라인당 픽셀 수에 관하여 소정의 포맷에서 다른 포맷으로 변환해야 한다고 가정하자. 이것은 적절한 수평 및 수직 필터링 단계를 포함하는 데이터 처리 체인에 의해서 획득될 수 있다. 포맷 변환의 시작 단계에서, 데이터 처리 체인은 전체적으로 동작하기 전에 먼저 픽셀로 채워져야 한다. 포맷 변환의 마지막 단계에서, 말하자면 정지하거나 중지하기 전에 데이터 처리 체인은 비워져야 한다.

    예를 들면, 변환될 비디오 신호의 제 1 픽셀 블록은 비디오 출력 유닛(HDVO)에 제공되는 경우에, 데이터 처리 체인의 시작 단계에 있는 데이터 조작 요소만이 활성 상태가 되어야 한다. 이 시간에, 메모리 블록(MB)은 아직까지 프레임의 픽셀로 채워지지 않는다. 각각의 처리 단계에서, 보다 많은 메모리 블록이 픽셀로 채워질 것이며, 보다 많은 데이터 조작 요소가 활성 상태가 될 것이다. 이러한 현상은 데이터 처리 체인내의 각각의 메모리 블록(MB)이 픽셀로 채워질 때까지 계속될 것이다. 그런 다음 데이터 처리 체인은 전체적으로 동작할 것이며, 스트리밍 아웃 회로(SO)는 픽셀 제공을 개시할 수 있다.

    도 3은 비디오 출력 유닛(HDVO)의 프로그래밍 구조을 도시한다. 도 3은 매트릭스이다. 이러한 매트릭스의 열(column)은 데이터 조작 요소를 나타낸다. 보다 구체적으로, 열은 관련 데이터 조작 요소의 섀도우 레지스터를 나타낸다. 매트릭스의행(row)은 처린 단계(PS)를 나타낸다. 매트릭스 셀(cell)은 인스트럭션 워드를 나타낸다. VLIW는 매트릭스의 특정 행에 속하는 셀의 합성(composition)이다. 즉, VLIW는 특정 처리 단계(PS)에 대한 인스트럭션 워드의 합성이다. VLIW는 관련 데이터 조작 요소들이 병렬적으로 수행하여야 할 연산을 정의한다.

    마스터 제어 프로세서(MCP)는 다양한 방식으로 VLIW를 구성할 수 있다. 예를 들면, 마스터 제어 프로세서(MCP)는 인스트럭션 워드를 각각의 제어 레지스터에 기록함으로써 특정 처리 단계에 대한 VLIW를 구성할 수 있다. 그러나, 마스터 제어 프로세서(MCP)는 인스트럭션 워드를 하나이상의 특정 제어 레지스터에 기록하며, 다른 제어 레지스터에는 기록하지 않음으로써 VLIW를 더 포함할 수 있다. 후자의 제어 레지스터는 인스트럭션 워드를 이전의 처리 단계에서 포함된 상태로 유지한다.

    도 3에 도시된 매트릭스는, 예를 들면 프레임의 디스플레이에 해당할 수 있다. 처리 단계(PS[1])는 프레임을 디스플레이하기 위하여 수행되는 제 1 처리 단계이며, 처리 단계(PS[N])는 마지막 처리 단계이다. 예를 들면, 프레임이 700 라인 및 라인당 1024 픽셀을 가진다고 가정하자. 또한, 처리 단계에서 256 출력 픽셀이 통상적으로 스트리밍 아웃 회로(SO)에 제공된다고 가정하자. 이것은 통상적으로 비디오 신호내의 라인당 4개의 처리 단계(PS)가 존재하며, 결과적으로, 플레임당 700 처리 단계(PS)의 4배, 즉 프레임당 2800 처리 단계가 존재할 것이라는 것을 의미한다(N = 2800).

    처음의 몇몇 처리 단계(PS)는 프레임의 디스플레이를 위한 초기화 단계를 구성하며, 마지막 몇몇 처리 단계(PS)는 종결 단계를 구성한다. 이전에 기술된 바와 같이, 처리 체인은 단계별로 채워지고 비워져야 한다. 이것은, 초기화 단계 및 종결 단계에서, 소정의 처리 단계에서의 인스트럭션 워드가 후속하는 처리 단계에서의 상이한 인스트럭션 워드로 대체되는 적어도 하나의 데이터 조작 요소가 존재한다는 것을 의미한다. 또한, 이것은 초기화 단계 및 종결 단계에서, 각각의 처리 단계에 대한 상이한 VLIW가 존재할 것이라는 것을 의미한다. 초기화 단계 및 종결 단계사이의 처리 단계는 또한 다양한 상이한 VLIW를 요구할 것이다. 동일한 처리 체인이 프레임동안에 이용되는 경우에, 하나의 VLIW가 초기화 단계와 종결 단계사이의 처리 단계동안에 이용될 수 있다. 예를 들면, 비디오 출력 유닛(HDVO)이 하나의 비디오 신호를 소정의 포맷에서 다른 포맷으로 변환해야 한다면 이러한 경우에 해당할 것이다.

    도 4는 비디오 출력 유닛(HDVO)이 디스플레이 장치에 제공하여야 하는 프레임을 도시한다. 프레임은 서브 픽쳐(SPIC)가 삽입된 메인 픽쳐(MPIC)로 구성된다. 또한 도 4는 프레임내의 상이한 프레임 영역(FZ1-FZ6)을 도시한다. 각각의 프레임 영역(FZ)은 도 2에 도시된 마스터 제어 프로세서(MCP)에 의해서 수행될 제어 동작에 관한 특정 상태와 관련되어 있다.

    프레임 영역(FZ1)에서, 마스터 제어 프로세서(MCP)는 메인 픽쳐(MPIC)에 대한 처리 체인을 형성한다. 프레임 영역(FZ2)에서 마스터 제어 프로세서(MCP)는 나중의 처리 체인을 유지한다. 프레임 영역(FZ2)는 X 라인(X는 정수)을 포함한다. 프레임 영역(FZ3)에서, 마스터 제어 프로세서(MCP)는 메인 픽쳐를 디스플레이하는 프로세싱 체인을 중지하며, 메인 픽쳐(MPIC) 및 거기에 삽입된 서브 픽쳐(SPIC)를 디스플레이하는 처리 체인을 형성한다. 프레임 영역(FZ4)에서, 마스터 제어 프로세서(MCP)는 나중의 처리 체인을 유지한다. 프레임 영역(FZ4)은 Y 라인(Y는 정수)을 포함한다. 프레임 영역(FZ5)에서, 마스터 제어 프로세서(MCP)는 메인 픽쳐(MPIC) 및 거기에 삽입된 서브 픽쳐(SPIC)를 디스플레이하는 처리 체인을 중지하며, 메인 픽쳐(MPIC)를 디스플레이하는 처리 체인을 다시 형성한다. 프레임 영역(FZ6)에서, 마스터 제어 프로세서는 나중의 처리 체인을 유지한다. 프레임 영역(FZ6)은 Z 라인(Z는 정수)을 포함한다.

    도 5는 이전에 기술된 제어 작동을 수행하기 위하여 마스터 제어 프로세서(MCP)에 제공되는 일련의 메인 인스트럭션(MI1-MI8)을 도시한다. 메인 인스트럭션(MI1)은 마스터 제어 프로세서(MCP)가 내부 메모리에 저장된 서브루틴(subroutine)(STRT_MAIN)을 실행하도록 한다. 메인 인스트럭션(MI1)은, 예를 들면 서브루틴(STRT_MAIN)의 개시 어드레스일 수 있다. 서브루틴(STRT_MAIN)을 실행하면 프레임 영역(FZ1)내에 포함된 처리 단계에 대한 일련의 VLIW가 생성되게 된다. 각각의 처리 단계에서, 상이한 VLIW가 생성되어 비디오 출력 유닛(HDVO)의 데이터 조작 요소에 제공된다. 일련의 VLIW는 메인 픽쳐를 디스플레이하는 처리 체인이 처리 단계마다 형성되도록 한다.

    메인 인스트럭션(MI2)은 마스터 제어 프로세서(MCP)가 서브루틴(MAIN)을 연속해서 X 회 실행하도록 한다. 즉, X ×MAIN. 서브루틴(MAIN)을 실행하면 라인에 포함된 처리 단계에서 이용되는 VLIW를 생성한다. 따라서, 이러한 VLIW는 프레임영역(FZ2)동안 이용된다. 이것은 데이터 조작 요소가 메인 픽쳐(MPIC)를 디스플레이하는 데에 필요한 처리를 수행하도록 한다.

    메인 인스트럭션(MI3)은 마스터 제어 프로세서(MCP)가 서브루틴(END_MAIN)을 실행하도록 한다. 서브루틴(END_MAIN)을 실행하면 프레임 영역(FZ3) 상부에 포함된 처리 단계에 대한 일련의 VLIW를 생성하게 된다. 각각의 처리 단계에서, 상이한 VLIW가 생성되어 비디오 출력 유닛(HDVO)의 데이터 조작 요소에 제공된다. 일련의 VLIW는 메인 픽쳐를 디스플레이하는 처리 체인이 처리 단계마다 중지하도록 한다.

    메인 인스트럭션(MI4)은 마스터 제어 프로세서(MCP)가 서브루틴(STRT_PIP)을 실행하도록 한다. 서브루틴(STRT_PIP)을 실행하면 프레임 영역(FZ3)의 하부에 포함된 처리 단계에 대한 일련의 VLIW를 생성한다. 각각의 처리 단계에서, 상이한 VLIW가 생성되어 비디오 출력 유닛(HDVO)의 데이터 조작 요소에 제공된다. 일련의 VLIW는 서브픽쳐(SPIC)가 삽입된 메인 픽쳐(MPIC)를 디스플레이하는 처리 체인이 처리 단계마다 형성되도록 한다.

    메인 인스트럭션(MI5)은 마스터 제어 프로세서(MCP)가 서브루틴(PIP)을 연속해서 Y 회 실행하도록 한다. 즉, Y ×PIP. 서브루틴(PIP)을 실행하면 라인에 포함된 처리 단계에서 이용되는 VLIW를 생성하게 된다. 따라서, 이러한 VLIW는 프레임 영역(FZ4)동안 이용된다. 이것은 데이터 조작 요소가 서브픽쳐(SPIC)가 삽입된 메인 픽쳐(MPIC)를 디스플레이 하는 데에 필요한 처리를 수행하도록 한다.

    메인 인스트럭션(MI6)은 마스터 제어 프로세서(MCP)가 서브루틴(END_PIP)을 실행하도록 한다. 서브루틴(END_PIP)을 실행하면 프레임 영역(FZ5) 상부에 포함된처리 단계에 대한 일련의 VLIW를 생성한다. 각각의 처리 단계에 대하여, 상이한 VLIW가 생성되어 비디오 출력 유닛(HDVO)의 데이터 조작 요소에 제공된다. 일련의 VLIW는 서브루틴(SPIC)이 삽입된 메인 픽쳐(MPIC)를 디스플레이하는 처리 체인이 처리 단계마다 중지되도록 한다.

    메인 인스트럭션(MI7)은 마스터 제어 프로세서(MCP)가 서브루틴(STRT_MAIN)을 재실행하도록 하는데, 이러한 서브루틴은 이전에 기술된 바 있다. 메인 인스트럭션(MI8)은 마스터 제어 프로세서(MCP)가 서브루틴(MAIN)을 Z 회 연속하여 실행한다. 즉 Z ×MAIN. 서브루틴(MAIN)은 이전에 기술된 바 있다.

    요컨데, 마스터 제어 프로세서(MCP)는 다양한 기계를 갖춘 작업장의 감독관으로 여겨질 수 있음은 이미 기술된 바와 같다. 작업장은 비디오 출력 유닛(HDVO)에 해당하며, 기계는 비디오 출력 유닛(HDVO)내의 데이터 조작 요소에 해당한다. 요컨데, 메인 인스트럭션(MI)은 감독관이 관리자로부터 수신하는 생산 주문으로 여겨질 수 있다. 감독관은 생산 주문을 기계용 인스트럭션으로 변환한다. 동시에, 그리고 병렬적으로 수행될 인스트럭션의 집합은 VLIW에 해당한다.

    메인 인스트럭션(MI1)은 제품 A의 생산 라인을 시작하는 주문으로 여겨질 수 있다. 메인 인스트럭션(MI2)은 이러한 생산 라인상에서 제품 A의 X개 샘플을 생산하는 주문으로 여겨질 수 있다. 메인 인스트럭션(MI3,MI4)는 제품 A의 제품 라인을 중지하며 제품 B의 생산 라인을 개시하라는 주문으로 여겨질 수 있다. 메인 인스트럭션(MI5)은 이러한 생산 라인에서 제품 B의 Y개 샘플을 생산하는 주문으로 여겨질 수 있다. 이하 마찬가지이다.

    도 6은 도 2는 마스터 제어 프로세서(MCP)의 실시를 도시한다. 마스터 제어 프로세서(MCP)는 도 2에 역시 도시되어 있는 메인 버스(HWY)를 통하여 비디오 출력 유닛(HDVO) 외부의 요소와 통신한다. 예를 들면, 마스터 제어 프로세서(MCP)는 메인 버스(HWY)를 통하여 메인 인스트럭션을 수신할 수 있다. 마스터 제어 프로세서(MCP)는 제어 버스(CBUS)를 통하여 비디오 출력 유닛(HDVO)내의 데이터 조작 요소와 통신한다. 예를 들면, 마스터 제어 프로세서는 인스트럭션 워드를 제어 버스(CBUS)를 통하여 데이터 조작 요소로 전송할 수 있다. 마스터 제어 프로세서(MCP)는 접속(XC)을 통하여 비디오 출력 유닛(HDVO)내의 메모리 블록(MB)으로부터/으로 데이터를 수신/전송할 수 있다.

    마스터 제어 프로세서(MCP)는 메인 버스 인터페이스(HWYINT)와 제어 버스 인터페이스(CBUSINT)와 산술 논리 유닛(ALU)과 프로그램 카운터(a program counter)(PC), 인터럽트 유닛의 집합(an assembly of interrupt units)(IU), 연산 스택(a compute stack)(CSTCK), 리턴 스택(a return stack)(RSTCK), 프로그램 메모리(a program memory)(PMEM), 데이터 메모리(a data memory)(DMEM) 및 다이렉트 메모리 액세스 회로(a direct memory-access circuit)(DMAC)를 포함하는 레지스터의 집합(REG)을 포함한다. 연산 스택(CSTCK) 및 리턴 스택(RSTCK)은 각기 스택 포인터(a stack pointer)를 가진다. 스택 포인터는 관련 스택내의 각각의 저장 요소의 위치를 정의한다. 연산 스택(CSTCK)내의 스택의 최상부 위치(top-of-stack position) 및 스택의 두번째 위치(second-of-stack position)는 이후에 각기 TOS 및 SOS라고 불릴 것이다. 리턴 스택(RSTCK)의 스택의 최상부 위치 및 스택의 두번째 위치는 이후에 각기 TOR 및 SOR로 불릴 것이다.

    마스터 제어 프로세서(MCP)는 기본적으로 다음과 같이 동작한다. 프로그램 카운터(PC)는 통상적으로 각 싸이클마다 증가하는 프로그램 계수값(a program-count value)을 포함한다. 프로그램 계수값은 프로그램 카운터(PC)에 새로운 프로그램 계수값을 기록함으로써 변할 수 있다. 프로그램 계수값은 마스터 제어 프로세서(MCP)의 인스트럭션이 저장되는 프로그램 메모리(PMEM)의 어드레스를 구성한다. 이러한 인스트럭션은 이후에 MCP 인스트럭션이라고 불릴 것이다. MCP 인스트럭션은 산술 논리 유닛(ALU)이 수행하는 연산을 정의한다. 이후에 상세히 설명될 바와 같이, MCP 인스트럭션은 리턴 스택(RSTCK) 및 연산 스택(CSTCK)을 제어하는 연산을 또한 정의한다. 이전에 기술된 바와 같이, VLIW를 생성하는 서브루틴은 MCP 인스트럭션의 세트(a set of MCP instructions)에 의해서 형성된다.

    인스트럭션의 세트는 다음과 같은 방식으로 프로그램 메모리(PMEM)내에 저장될 수 있다. 먼저 인스트럭션의 세트는 멀티미디어 장치 외부 소스로부터 메인 버스(HWY)를 통하여 메모리 블록(MB)내로 로딩(loading)된다. 그런 다음, 인스트럭션의 세트 또는 그 일부가 메모리 블록(MB)으로부터 접속(XC)을 통하여 프로그램 메모리(PMEM)로 복사된다. 프로그램 메모리(PMEM)는 다수의 뱅크(bank)를 포함할 수 있다. 이러한 경우에, 마스터 제어 프로세서(MCP)가 다른 뱅크내에 포함된 인스트럭션을 수행하는 동안, 메모리 블록(MB)으로부터 뱅크로 인스트럭션을 복사하는 것은 가능하다.

    인스트럭션은 다음과 같은 방식으로 메모리 블록(MB)내에 저장될 수 있다.제 1 메모리 블록(MB1)은 인스트럭션의 최상위 부분(a most-significant portion of the instruction)을 포함하며, 제 2 메모리 블록(MB2)은 중간 유효 부분(an intermediate significant portion)을 포함하며, 제 3 메모리 블록은 최하위 부분(a least significant portion)을 포함하는데, 이들 부분은 각기, 예를 들면 8 비트(bit)를 포함한다. 이러한 부분이 프로그램 메모리(PMEM)로 전송되는 경우에, 말하자면, 이들은 함께 묶여져 24 비트를 포함하는 인스트럭션을 형성한다. 인스트럭션이 저장된 메모리 블록(MB)은 처리될 데이터가 저장되는 메모리 블록(MB)에 부가적일 수도 있음은 주의되어야 한다. 즉, 멀티미디어 장치는, 예를 들면 하나는 데이터를 위한, 그리고 다른 하나는 제어를 위한 다수의 메모리 블록 세트를 포함할 수 있는데, 각각의 메모리 블록 세트는 자신의 크로스바(crossbar)를 가진다.

    아래에 기술하는 내용은 MCP 인스트럭션 구조(syntax)의 예이다. MCP 인스트럭션은 b23 내지 b0의 24 비트를 포함한다. b23 비트는 MCP 인스트럭션이 무조건부인지 조건부인지 여부를 정의한다. MCP 인스트럭션의 b23 비트가 0의 값을 가지는 경우에는 MCP 인스트럭션은 무조건부이다. 무조건부 MCP 인스트럭션은 항상 실행된다. MCP 인스트럭션의 b23 비트가 1의 값을 가지는 경우에는 MCP 인스트럭션은 조건부이다. 조건부 MCP 인스트럭션은 특정 레지스터내의 최하위 비트가 0의 값을 가지는 경우에만 실행될 것이다. b22, b21 및 b12 비트는 상이한 타입의 인스트럭션들을 구분하는 데에 이용된다. 소정의 타입의 MCP 인스트럭션은 무조건부 또는 조건부일 수 있다. MCP 인스트럭션의 b22 비트가 1의 값을 가지는 경우에 MCP 인스트럭션은 타입 0 인스트럭션(a type-0 instruction)이다. 타입 0 인스트럭션은 데이터를 내부 메모리 위치, 예를 들면 레지스터에 기록하는 데에 기여한다. 타입 0 인스트럭션의 b21 내지 b12 비트는 기록될 데이터를 구성한다. b11 내지 b0 비트는 데이터가 기록될 메모리 위치의 어드레스를 정의한다. 메모리 위치가 10 비트보다 큰 크기를 가지는 경우에는 데이터는 부호 확장형(sign-extended)이 된다.

    b22 및 b21 비트가 모두 0인경우에는 MCP 인스트럭션은 타입 1(type-1) 또는 타입 1A(type-1A)이다. 타입 1 및 타입 1A 인스트럭션은 데이터를 처리하는 데에 기여한다. 부가적으로, b12 비트가 0의 값을 가지는 경우에는 MCP 인스트럭션은 타입 1 인스트럭션이다. 타입 1 인스트럭션의 b11 내지 b0 비트는 어드레스를 정의한다. 이러한 어드레스에 저장된 데이터는 산술 논리 유닛(ALU)의 입력 데이터를 형성한다. b12 비트가 1의 값을 가지는 경우에는 MCP 인스트럭션은 타입 1A 인스트럭션이다. 타입 1A 인스트럭션의 b11 내지 b0 비트는 데이터를 나타낸다. 이러한 데이터는 산술 논리 유닛(ALU)의 입력 데이터를 형성한다. 데이터는 부호형이며, 확장되어 산술 논리 유닛(ALU)에 제공되기 전에 16 비트 2진 워드를 형성한다.

    타입 1 또는 타입 1A 인스트럭션은 b20 내지 b17 비트에 의해서 형성된 연산 코드부(opcode portion)를 포함한다. 연산 코드부는 입력 데이터에 대하여 산술 논리 유닛(ALU)이 수행하는 처리 연산 및 이러한 처리 연산 결과가 저장되는 곳에 관하여 연산을 결정한다. 결과는 TOS에 기록되거나 프로그램 카운터(PC)에 기록된다. 타입 1 인스트럭션에 대하여 16개의 상이한 연산이 존재하며, 또한 타입 1A 인스트럭션에 대하여 16개의 상이한 연산이 존재한다. 예를 들면, 입력 데이터와 TOS의 컨텐츠(content)의 AND 조합을 취하여 이러한 AND 조합의 결과를 TOS에 기록하는연산이 존재한다. 다른 연산들은 NOR, XOR, NAND, OR, XNOR 조합을 만들 수 있다.

    b22 비트가 0의 값을 가지며 b21이 1의 값을 가지는 경우에는 MCP 연산은 타입 2 인스트럭션(a type-2 instruction)이다. 타입 2 인스트럭션은 데이터를 전송하는 데에 기여한다. 타입 2 인스트럭션은 b20 내지 b17 비트에 의해서 형성되는 전송 제어부를 포함한다. 전송 제어부는 전송될 데이터의 소스(source) 및 목적지(destination)을 정의한다. 보다 구체적으로, b18 내지 b17 비트는 소스를 정의하며, b20 내지 b19 비트는 데이터의 목적지 어드레스를 정의한다. TOS, SOS, TOR 또는 프로그램 카운터(PC)의 4개의 데이터 소스가 존재한다. TOS의 컨텐츠, SOS의 컨텐츠, 인덱스 값이 첨가되거나 첨가되지 않은 MCP 인스트럭션 자체의 b11 내지 b0 비트의 4개의 목적지 어드레스가 존재한다.

    타입 0, 타입 1, 타입 1A 인스트럭션은 주로 도 2에 도시된 비디오 출력 유닛(HDVO)의 데이터 조작 요소에 대한 인스트럭션 워드를 생성하는 데에 기여한다. 타입 2 데이터 인스트럭션은 주로 이렇게 생성되어 데이터 조작 요소의 레지스터를 제어하는 인스트럭션 워드를 전송하는 데에 기여한다. 말하자면, 나중의 MCP 인스트럭션은 MCP 인스트럭션을 전송한다.

    타입 1, 타입 1A, 타입 2의 MCP 인스트럭션은 b16 내지 b13 비트에 의해서 형성된 스택 제어부를 포함한다. 연산 스택(CSTCK)은 b16 내지 b15에 따라 제어되며, 리턴 스택(RSTCK)은 b14 내지 b13 비트에 따라 제어된다. 연산 스택(CSTCK)에 대한 4개의 제어 동작 및 리턴 스택(RSTCK)에 대한 4개의 제어 동작이 존재한다. b16 내지 b15 비트 및 b14 내지 b13 비트의 값은 각각의 4개의 제어 동작중 어느것이 수행되어야 하는 지를 결정한다.

    도 7은 이전에 기술된 다양한 타입의 MCP 인스트럭션과 이러한 인스트럭션에 포함된 b23 내지 b21 비트 사이의 관계를 도시한다. 도 7에서, 참조 문자는 다양한 타입의 MCP 인스트럭션을 지시하는 데에 이용되는데, UNCOND은 무조건부 인스트럭션을 지시하며, COND는 조건부 인스트럭션을 지시하며, TP0, TP1, TP1A 및 TP2는 각기 타입 0, 타입 1, 타입 1A 및 타입 2 인스트럭션을 지시한다. 도 7은 나중의 4개의 MCP 인스트럭션의 특성을 지시하는 참조 문자를 더 포함한다. 타입 0 인스트럭션은 데이터를 기록하는 데에 기여한다(WRT). 타입 1 인스트럭션은 내부 메모리로부터 데이터를 판독하여 이러한 데이터를 처리한다(RD&PROC). 타입 1A 인스트럭션은 인스트럭션내에 포함된 데이터를 처리하는 데에 기여한다. 즉, 데이터를 즉각 처리하는 데에 기여한다(IPROC). 타입 2 인스트럭션은 데이터를 전송하는 데에 기여한다(TRNSFER). 도 7은 연산 코드부(OPC), 전송 제어부(WOPC) 및 스택 제어부(STC)를 지시하는 참조문자를 더 포함한다.

    이전에 기술된 바와 같이, b16, b15 비트는 연산 스택(CSTCK)에 대한 4개의 제어 동작을 정의한다. Nop, Cpy, Psh, 및 Pop 제어 동작이 존재한다. Nop 제어 동작은 연산 스택(CSTCK)을 변화시키지 않는다. Cpy 제어 동작은 TOS의 컨텐츠를 SOS에 복사한다. 이러한 복사는 산술 논리 유닛(ALU)이 인스트럭션을 수행하기 전에 행해진다. Psh 제어 동작은 스택 포인터를 증가시킨다. 그 결과, 인스트럭션전에 TOS인 저장 요소는 인스트럭션후에 SOS가 된다. 인스트럭션전에 TOS인 저장 요소의 컨텐츠는 인스트럭션후에 TOS인 저장 요소에 자동으로 복사된다. 따라서, 인스트럭션전의 TOS 컨텐츠는 인스트럭션후의 TOS 컨텐츠이다. 그러나, 인스트럭션이 산술 논리 유닛(ALU)이 데이터를 TOS에 기록하도록 하는 경우에는. 인스트럭션후의 TOS 컨텐츠는 그 데이터가 될 것이다. Pop 제어 동작은 스택 포인터를 감소시킨다. 그 결과, 인스트럭션전에 SOS인 저장 요소는 자동으로 인스트럭션후에 TOS가 된다.

    이전에 기술된 바와 같이, b14, b13 비트는 리턴 스택(RSTCK)에 대한 4개의 제어 동작을 정의한다. Rnop, Rpc, Rpsh 및 Rpop 제어 동작이 존재한다. Rnop 동작은 리턴 스택(RSTCK)을 변화시키지 않는다. Rpc 제어 동작은 스택 포인터를 증가시킨다. 상수값이 프로그램 계수값에 가산되어, 이러한 가산의 결과가 TOR에 복사된다. 상수값은 실시에 따라 달라진다. Rpsh 동작은 스택 포인터를 증가시킨다. 그 결과, 인스트럭션전에 TOR인 저장 요소는 인스트럭션후에 SOR이 된다. 인스트럭션전에 TOS인 저장 요소에 포함된 데이터는 자동으로 리턴 스택(RSTCK)상에 푸쉬(push)된다. 즉, 인스트럭션후의 TOR의 컨텐츠는 인스트럭션전의 TOS 컨텐츠이다. 그러나, 인스트럭션이 산술 논리 유닛(ALU)이 데이터를 TOR에 기록하도록 하는 경우에는, 인스트럭션후의 TOR의 컨텐츠는 그 데이터가 될 것이다. Rpop 제어 동작은 스택 포인터를 감소시킨다. 그 결과, 인스트럭션전에 SOR인 스택내의 저장 요소는 인스트럭션후에 TOR이 된다. 즉, 인스트럭션후의 TOR의 컨텐츠는 인스트럭션전의 SOR의 컨텐츠이다.

    원칙적으로, 이전에 기술된 스택 관련 제어 동작은 타입 1 및 타입 1A 인스트럭션의 연산 코드부에 정의된 연산에 영향을 받지 않고서 수행된다. 또한 스택 관련 제어 동작은 타입 2 인스트럭션의 전송 제어부에서 정의된 데이터 전송에 영향을 받지않고서 수행된다. 따라서, 많은 조합이 가능하다.

    연산 스택(CSTCK) 및 리턴 스택(RSTCK)은 모두 다음과 같은 규칙에 따라서 제어된다. 스텍 포인터는 산술 논리 유닛(ALU)이 관련 인스트럭션을 수행하기 전에 증가되며, 그 후에 스택 포인터는 감소된다. 이리하여, 팝-타입 인스트럭션(a pop-type instruction)에 뒤이은 푸쉬-타입 인스트럭션(a push type instruction)은 스택 포인터를 변화시키지 않은 상태로 둘 것이다. 스택 제어가 하나의 스택에서 다른 스택으로 데이터를 복사하는 단계를 포함한다면, 복사되는 데이터는 항상 인스트럭션전에 스택 위치에 포함되는 데이터이다.

    마스터 제어 프로세서(MCP)가 인스트럭션을 실행하는 경우에, 산술 논리 유닛(ALU)이 스택 위치에 기록하고자하며, 동일한 위치에 인스트럭션의 스택 제어부가 기록하고자 하는 경우가 발생할 수 있다. 이러한 경우에 충돌이 발생한다. 충돌은 산술 논리 유닛(ALU)이 우선 순위를 가진다는 점에서 해소된다. 산술 논리 유닛(ALU)의 출력 데이터는 관련 스택 위치에 기록된다. 어떠한 경우라도, 충돌이 존재하는 경우에도 스택 포인터는 인스트럭션의 스택 제어부에 따라서 변형된다.

    MCP 인스트럭션의 b16, b15 비트 및 b14, b13 비트에 각기 응답하여 연산 스택(CSTCK) 및 리턴 스택(RSTCK)이 이전에 기술된 바와 같이 작동하도록 하는 다양한 방식이 존재한다. 예를 들면, 각각의 스택은 선입 후출 메모리(a first in, last out(FILO) memory)에 배열된 저장 요소에 의해서 형성될 수 있다. 통상적으로 이러한 메모리는 클럭의 양 또는 음의 에지(a positive or negative edge)에 응답하여 포함하고 있는 데이터를 한 위치만큼 쉬프트한다. 데이터가 쉬프트되는 방향은 통상적으로 FILO 메모리의 제어 입력에 입력되는 제어 데이터에 의해서 정의된다. 인스트럭션내의 관련 비트로부터 적절한 제어 데이터를 유도하는 데에는 상대적으로 간단한 논리 회로로 충분할 것이다.

    도 8은 마스터 제어 프로세서(MCP)가 인스트럭션을 수행하는 방식을 도시한다. 도 8은 수평축은 시간을 나타내며 수직축은 인스트럭션(INSTR)을 나타내는 도식이다. 인스트럭션(INSTR)은 8개의 상이한 단계(S1-S8)에서 실행된다. 각각의 단계는 클럭 싸이클(CC)에 해당한다. 결과적으로, 인스트럭션을 모두 실행하는 데에는 8 클럭 싸이클을 필요로한다. 마스터 제어 프로세서(MCP)는 각각의 싸이클마다. 새로운 인스트럭션을 실행하기 시작한다. 따라서, 소정의 클럭 싸이클에서, 마스터 제어 프로세서(MCP)는 상이한 단계를 병렬적으로 수행하며, 각각의 단계는 상이한 인스트럭션에 속한다.

    S1 단계에서, 마스터 제어 프로세서(MCP)는 인스트럭션을 패치한다. 이러한 단계에서 프로그램 카운터가 판독된다. S2 단계에서, 인스트럭션은 디코딩된다. 이러한 단계에서 인스트럭션 디코더는 인스트럭션의 b16, b15 비트 및 b14, b13 비트로부터 연산 스택(CSTCK) 및 리턴 스택(RSTCK)을 구성하는 물리적 요소에 대한 제어 신호를 유도한다. S3 단계에서, 산술 논리 유닛(ALU)의 입력 데이터는 내부 저장 요소로부터 판독된다. S4 단계는 내부 데이터 지연(delay)이다. S5 단계에서, 산술 또는 논리 연산이 인스트럭션에서 정의된 바와 같이 수행된다. S6 단계에서, 산술 또는 논리 연산의 결과는 내부 저장 요소에 기록된다. 이러한 단계에서 TOS가 유효하게 기록된다. 더욱이, 프로그램 카운터는 갱신된다. S7 단계는 지연이다. S8단계에서, 데이터는 마스터 제어 프로세서(MCP)를 멀티미디어 장치에 포함된 다양한 데이터 프로세서에 결합하는 제어 버스(CBUS)에 유효하게 입력될 수 있다.

    마스터 제어 프로세서(MCP)는 필요한 파이프라인 단계(pipeline stages)를 포함하며, 스택 기록을 배제하여 스택 인스트럭션이 추가 대기 싸이클을 부가하지 않고서 차례로 실행되도록 한다. 예를 들면, 마스터 제어 프로세서(MCP)는 산술 논리 유닛(ALU)의 출력과 입력 사이의 데이터 전송 경로를 포함하여 산술 또는 논리 연산의 결과가 후속하는 산술 또는 논리 연산의 TOS 데이터로서 이용되도록 한다. 리턴 스택에서도 유사한 데이터 경로가 이용된다.

    MCP 인스트럭션은 도 6에 도시된 다이렉트 메모리 액세스 회로(DMAC)가 다이렉트 메모리 액세스 세션(a direct memory-access session)을 수행하도록 한다. 다이렉트 액세스 세션에서, 다이렉스 액세스 회로(DMAC)는 자율적으로 메모리에 포함된 인스트럭션 워드의 블록을 전송하여 도 4에 도시된 비디오 출력 유닛(HDVO)내의 다양한 데이터 조작 요소의 레지스터를 제어한다. MCP 인스트럭션은 개시 어드레스 및 다이렉트 메모리 액세스 세션의 모드(a mode for direct memory-access session)를 정의한다. 3가지 상이한 다이렉트 메모리 액세스 모드가 존재한다.

    제 1 다이렉트 메모리 액세스 모드에서, 다이렉트 메모리 액세스 회로(DMAC)는 인스트럭션 워드를 연속하는 어드레스를 가지는 소정의 범위의 제어 레지스터에 기록한다. 블록의 제 1 인스트럭션 워드는 그 어드레스가 개시 어드레스인 제어 레지스터에 기록되며, 제 2 인스트럭션 워드는 그 어드레스가 개시 어드레스에 1만큼 가산한 어드레스를 가지는 제어 레지스터에 기록되며, 이하 동일한 방식을 따른다.

    제 2 다이렉트 메모리 액세스 모드에서, 다이렉트 메모리 액세스 회로(DMAC)는 먼저 템플릿(a template)을 판독한다. 템플릿은 각각의 비트가 연속하는 어드레스를 가지는 소정의 범위의 제어 레지스터내의 상이한 제어 레지스터에 해당하는 2진 워드이다. 상기 범위는 개시 어드레스에서 시작한다. 결과적으로, 다이렉트 메모리 액세스 회로(DMAC)는 비트 단위로 템플릿을 판독하며, 블록의 제 1 인스트럭션 워드를 1의 값을 가지는 제 1 판독 비트에 해당하는 제어 레지스터에 기록하며, 제 2 인스트럭션 워드를 1의 값을 가지는 제 2 판독 비트에 해당하는 제어 레지스터에 기록하며, 이하 동일한 방식을 따른다.

    제 3 다이렉트 메모리 액세스 모드에서, 다이렉트 메모리 액세스 회로(DMAC)는 인스트럭션 워드를 제어 레지스터에 기록하기 전에 먼저 오프셋 값(an offset value)을 판독한다. 인스트럭션 워드는 그 어드레스가 이전에 기록된 제어 레지스터의 어드레스에 오프셋 값을 가산한 어드레스인 제어 레지스터에 기록된다. 블록의 제 1 인스트럭션 워드는 그 어드레스가 개시 어드레스에 제 1 판독 오프셋 값을 가산한 어드레스인 제어 레지스터에 기록된다.

    마스터 제어 프로세서(MCP)는 다이렉트 메모리 액세스 회로를 바람직하게 이용하여 선행하는 VLIW와 상당히 상이한 VLIW를 구성하며, 선행하는 VLIW가 없는 경우에도 VLIW를 구성한다. 예를 들면, 다이렉트 메모리 액세스 세션은 비디오 출력 유닛(HDVO)를 초기화하는 데에 이용될 수 있다. 다이렉트 메모리 액세스 세션은 마스터 제어 프로세서(MCP) 자체가 상대적으로 많은 인스트럭션 워드를 제어 레지스터에 기록하여야 하는 것은 방지한다. 말하자면, 마스터 제어 프로세서(MCP)는 이러한 업무를 다이렉트 메모리 액세스 회로(DMAC)에 위임한다. 그런 다음, 다이렉트 메모리 액세스 회로(DMAC)는 제어 버스(CBUS)를 이용하여 인스트럭션 워드를 제어 레지스터에 기록할 것이다. 따라서, 다이렉트 메모미 액세스 세션동안에, 마스터 제어 프로세서(MCP)내의 다른 요소는 제어 버스(CBUS)에 액세스할 수 없다.

    마스터 제어 프로세서(MCP)는 선행하는 VLIW와 유사한 VLIW를 구성하는 데에 다이렉트 메모리 액세스 회로(DMAC)를 이용할 필요가 없다. 이러한 유사 VLIW는 상대적으로 적은 제어 레지스터의 컨텐츠를 변형함으로써 구성될 수 있다. 그런 다음, 마스터 제어 프로세서(MCP)는 새로운 인스트럭션 워드를 적절한 제어 레지스터에 직접적으로 기록할 수 있다.

    따라서, 프로그래밍의 관점에서 볼 때에, VLIW를 구성하는 데에는 2가지 기술이 존재한다. 제 1 기술은 하나이상의 MCP 인스트럭션을 이용하여 마스터 제어 프로세서(MCP)가 새로운 인스트럭션을 특정 제어 레지스터에 기록하도록 하는 것이다. 이러한 기술은 바람직하게 유사 VLIW를 구성하는 데에 이용된다. 제 2 기술은 MCP 인스트럭션을 이용하여 마스터 제어 프로세서(MCP)가 다이렉트 메모리 액세스 세션을 초기화하도록 하는 것이다. 이러한 기술은 바람직하게 선행하는 VLIW와 상당히 상이한 VLIW를 구성하거나 비디오 출력 유닛(HDVO)을 초기화하는 데에 이용된다.

    도면과 그 설명은 본 발명을 한정하는 것이 아니라 예시적인 것이다. 첨부된 청구의 범위의 사상내에 놓이는 다양한 대안이 존재할 수 있음이 자명할 것이다. 이런 견지에서 다음의 맺음말이 작성되었다.

    도 1에 도시된 인스트럭션-워드 구성 소프트웨어(IWCS)는, 예를 들면 메모리내에 포함될 수 있다. 이것은 팩토리(a factory)내의 메모리에 기록될 수 있다. 그러나, 이용자가 인스트럭션-워드 구성 소프트웨어(IWSC)를 정보 캐리어(an information carrier)로부터 메모리에 복사하는 것은 가능하다. 따라서, 이용자는 도 1에 도시된 데이터 처리 장치(DPA)가 특정 기능을 수행하도록 한다. 소프트웨어(IWSC)를 구성하는 인스트럭션-워드를 포함하는 정보 캐리어는, 예를 들면 디스크(a disk)일 수 있다. 또한, 소프트웨어를 구성하는 인스트럭션-워드는, 예를 들면 인터넷과 같은 통신 네트워크를 통하여 이용가능하게 될 수 있다.

    다양한 유닛에 대해서 기능 혹은 기능적 요소를 물리적으로 분산시키는 다양한 방법이 존재한다. 이런 견지에서, 도면은 단순히 도식적인 것이고, 그 각각은 단지 본 발명의 가능한 실시예를 나타내고 있다. 따라서, 도면이 상이한 기능 요소를 도시하고 있지만, 이것은 하나의 물리적 유닛으로 몇몇 기능 요소 또는 모든 기능 요소를 배제하기 위함이 아니다.

    청구항의 참조 부호는 청구항을 제한하는 것으로 구성되어서는 안될 것이다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈