KR970005454B1 - 데이타 처리 시스템 및 내장 프로그램 제어기 장치 - Google Patents

데이타 처리 시스템 및 내장 프로그램 제어기 장치 Download PDF

Info

Publication number
KR970005454B1
KR970005454B1 KR1019890701334A KR890701334A KR970005454B1 KR 970005454 B1 KR970005454 B1 KR 970005454B1 KR 1019890701334 A KR1019890701334 A KR 1019890701334A KR 890701334 A KR890701334 A KR 890701334A KR 970005454 B1 KR970005454 B1 KR 970005454B1
Authority
KR
South Korea
Prior art keywords
value
signal
register
command
values
Prior art date
Application number
KR1019890701334A
Other languages
English (en)
Other versions
KR890702114A (ko
Inventor
레로이 스프레규 데이빗
하니 케빈
헨리 사이몬 알렌
허드슨 테일러 2세 허버트
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 인텔 코포레이션
Publication of KR890702114A publication Critical patent/KR890702114A/ko
Application granted granted Critical
Publication of KR970005454B1 publication Critical patent/KR970005454B1/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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction selection based on results of processing by instruction selection on output of storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Studio Circuits (AREA)

Abstract

내용 없음.

Description

데이터 처리 시스템 및 내장 프로그램 제어기 장치
제1a 1b 및 1c도는 세 개의 데이터 압신 방법에 의해 발생된 레코드의 데이터 포맷을 보여주는 다이어그램.
제2도는 본 발명의 한 실시예를 포함하는 비디오 신호 처리 회로의 블록 다이어그램.
제3a도는 마이크로 코드 RAM으로서 사용하기에 적합한 회로의 제2도에 도시된 비디오 신호 처리 회로의 순차 회로를 도시하는 블록 다이어그램.
제3b도는 제3a도에 도시된 회로의 작동을 설명하는데 유용한 여러 신호에 대한 시간의 함수로서 신호진폭을 도시하는 타이밍 다이어그램.
제3c도는 제2도에 도시된 회로에서 사용되는 마이크로 코드 RAM 및 순서기에 대한 마이크로 코드의 제어워드의 데이터 포맷을 도시하는 다이어그램.
제4a 및 4b도는 제2도에 도시된 본 발명의 실시예에서 사용되는 산술 및 논리 유니트의 블록 다이어그램.
제5도는 제2도에서 도시된 본 발명의 실시예에서 사용되는 데이터 통로 회로의 블록 다이어그램.
제6도는 제2도에서 도시된 본 발명의 실시예에서 사용되는 데이터 RAM 회로의 블록 다이어그램.
제7a, 7b, 7c, 7d 및 7e도는 제6도에서 도시된 데이터 RAM 회로의 작동을 설명하는데 사용되는 타이민 다이어그램.
제8a도는 본 발명을 실시하는 화소 보간을 블록 다이어그램.
제8b도는 제8a도에서 도시된 화소 보간기에서 사용되는 증배기 블록 다이어그램.
제9a, 9b, 9c, 9d, 9e 및 9f도는 제8도는 도시된 화소 보간기의 작동을 설명하는데 사용되는 다이어그램.
제10a도는 제2도에 도시된 비디오 신호 처리 회로에서 사용하는데 유용한 통계적 디코더의 블록 다이어그램.
제10b도는 제10a도에 도시된 회로의 작동을 이해하는데 유용한 타이밍 다이어그램.
제11a도는 제2도에 도시된 비디오 신호 처리 회로에서 사용하는데 유용한 입력 FIFO의 블록 다이어그램.
제11b도는 제11a도에 도시된 회로의 작동을 이해하는데 유용한 타이밍 다이어그램.
제12a도는 제2도에 도시된 비디오 신호 처리 회로내에서 사용하기에 적합한 출력 FIFO 회로의 블록 다이어그램.
제12b도는 제12a도에 도시된 회로의 작동을 이해하는데 유용한 타이밍 다이어그램.
제13a 및 13b도는 제2도에 도시된 본 발명의 실시예에 사용되는 VRAM 제어 유니트의 블록 다이어그램.
제13c도는 제13a 및 13b도에 도시된 회로의 작동을 이해하는데 유용한 타이밍 다이어그램.
제14도는 압신된 데이터가 제2도의 비디오 랜덤 엑세스 메모리내에 저장되는 방법을 도시하는 메모리 맵 다이어그램.
제15도 내지 23도는 제2 내지 13도에 도시된 회로의 작동을 설명하기에 유용한 제어 플로우 다이어그램 및 다른 다이어그램.
본 발명은 고속으로 작동하여 실시간 비디오 신호 처리기에서 사용하도록 설계된 조절용 브랜치 기재를 갖는 내장 프로그램 제어기에 관한 것이다.
근년에 들어서 비디오 신호 압신 분야엥서 상당한 진전이 있었다. 전송 또는 저장을 용이하게 하도록 디지탈로 인코드된 비디오 신호의 여유도를 감소시키기 위해 여러 방법이 개발되었다. 세가지 방법이 이러한 응용에서 특히 관심을 끌고 있는데, 이후로는 절대 인코딩, 차등 펄스 코드 변조(DPCM) 인코딩 및 상대인코딩으로 불린다. 이러한 비디오 압신 기술은 후술된다.
절대 인코드된 화상은 화상을 다수의 연속 세그먼트로 분해하고 필(fill)값을 각 세그먼트로 지정하므로 발생된다. 이 필 값은 고정된 휘도 및 색도 값이 될 수 있거나, 상기 세그먼트내 화소 위치의 함수로서 한화소에서 다음 화소로 변하는 값이 될 수 있다. 절대 인코드된 화상이 디코드되며 표시될 때, 그 결과는 재구성된 세그먼트로 형성된 모자이크이다.
상기 절대 인코딩 기술은 다수의 데이터 레코드를 발생하며, 그 각각은 원래 화상과 다른 세그먼트를 나타낸다. 이러한 각각의 레코드는 여러 필드를 포함하는데, 여기서 각각의 필드는 하난 이상의 이진 워드를 포함한다. 절대 인코드된 화상으로부터의 예시된 레코드는 제1a도에 도시된다. 이 레코드는 두 개의 원 바이트 필드, X POS 및 Y POS를 구비하는데, 이것은 하나의 세그먼트의 상부 좌측 코너내 화소의 수평 및 수직 위치를 각각 나타낸다. 상기 레코드는 또한 원 바이트 필드 W와 원 바이트 필드 H를 구비하는데 이것은 상기 세그먼트를 제한하는 수평 및 수직 방향의 화소의 수를 나타낸다. 절대 코드 레코드 A, B 및 C내 마지막 세 개의 필드는 세그먼트가 어떻게 채워지는지를 결정한다. 세 개의 값은 특정 화소의 값 PV가 어떻게 결정되는지를 설명하는 쌍일차 방정식(1)의 계수이다.
Figure kpo00001
상기 식(1)에서, C는 상기 세그먼트의 상부 좌측 코너내 휘도 레벨을 나타내는 원 바이트 값이다. A 및 B는 각각, 수평 및 수직 방향의 연속되는 화소 사이에서 휘도 값이 변화하는 양을 나타내는 투 바이트 값이다. X 및 Y는 상기 세그먼트의 상부 좌측 코너에 관계되는 세그먼트내 화소의 위치를 나타내는 값이다. 절대 코드 레코드에 대한 이 예는 배디오 신호의 휘도 및 색도 정보 신호 성분 각각에 대한 레코드의 분리된 그룹을 가정하며 전체 세그먼트가 사각형이 된다고 가정한다. 전대 인코딩 시스템에 대한 더 일반적인 예는 여기서 참조되는 1986년 7월1일자 신호처리(네덜란드왕국) 제11권 1호 제47 내지 60면, 엠.코쳐. 및 알.레오나르디의 논문 화상 근사를 위한 다항식 함수를 사용하는 적합한 영역 성장 기술에서 볼 수 있다.
상술된 제2비디오 신호 압신 방법 및 본원의 방법은 상대 인코딩이다. 상대 인코딩에는 다중 화상 순서 중전의 화상으로부터 대응하는 세그먼트에 의해 정의되는 연속 세그먼트로 상기 화상을 불리시키는 것이 포함된다. 이러한 방법을 사용하는 인코드된 화상은 다수의 데이터 레코드에 의해 표시된다. 하나의 예시 레코드와 제1b도에 도시된다. 필드 X POS, YPOS, W 및 H는 절대 레코드내의 것과 같다. 두 개의 원 바이트 필드 △X 및 △Y는, 전의 비디오 필드내 대응 세그먼트에 대해 통상의 비디오 필드내 세그먼트의 수평 및 수직 방향으로 화소의 변위를 나타낸다. 이러한 변위 값은 디스플레이 화상내 인접 화소 사이의 거리의 일부의 유니트내에 있게될 수 있다.
상대 코드 레코드내 필드 A, B 및 C는 절대 코드 레코드내 대응 필드와 유사하다. 이 값은 상기 세그먼트내 화소 값에 가산되는 값을 발생하기 위한 쌍일차 방정식(1)의 계수로서 사용된다.
상대 코드 화상에 대한 레코드 포맷을 세그먼트가 사각형이며 하나의 화상의 휘도 및 색도 정보 성분중 하나만이 주어진 레코드에 의해 설명된다고 가정한다. 상대 인코딩의 복잡성에 대한 일반적인 설명은, 여기에 참조된, 1977년 4월 통신에 관한 IEEE 의시록 448 내지 455면 에스브로페리오 및 에프.로카의 번역 목표물에 의해 발생된 비디오 신호의 프레임간의 여분 감소에 설명되어 있다.
전술된 제3인코딩 방법, DPCM은 일반적으로, 화소 값 및 차등 화소 값의 합으로서 화상내 각 화소를 설명한다. 이 방법은 절대 또는 상대 코드 레코드로는 쉽게 설명되지 않는 화상내 세그먼트에 적용된다. DPCM 레코드의 예가 제1c도에 도시된다. 이 레코드에 대한 필드 X POS, Y POS, W 및 H는 전술된 절대 코드 레코드 및 사대 코드 레코드에 대한 것과 같다. DPCM 코드 레코드의 나머지는 N 바이트 열로서 여기서 N은 W 및 H 필드내의 값의 적이다. 이 N 바이트중 첫 번째 DP0는 차 값으로서, 128중 고정된 예측 값에 가산될 때, 상기 세그먼트의 상부 좌측 코너의 화소를 발생한다. 다음 바이트 DP1는 차 값으로서, 합 128+DP0에 가산될 때, 상기 세그먼트의 상부 라인의 다음으로 연속되는 화소 값을 발생한다. 이와 유사하게, 값 DP2는 차 값으로서, 128, DP0및 DP1의 주적 합에 가산될 때 상기 세그먼트의 상부 라인의 제3화소 값을 발생한다. 다음 바이트, DP1은 차 값으로서, 합 128+DP0에 가산될 때 상기 세그먼트의 상부 라인에서 다음 연속되는 화소 값을 발생한다. 유사하게, 값 DP2는 차 값으로서, 누적된 합 128, DP0및 DP1에 가산될 때 상기 세그먼트의 상부 라인에서 제3화소 값을 발생한다. DPC M 코드 레코드내 연속되는 값은 각각 상기 레코드내 선행 값의 누적으로서 화소 값을 표시한다. DPCM 인코딩 기술을 사용하는 비디오 신호 압신예는 여기서 참조된 미합중국 특허 제4,125,861호 명칭 비디오 신호 인코딩에서 볼 수 있다.
DPCM 데이터가 제1c도에 도시된 것과 같이 저장 또는 전송되면, 하나의 화소를 표시하는 각각의 값이 비인코드된 화소 값과 같은 하나의 데이터 바이트를 점유하므로 DPCM 인코딩 기술을 사용하는데 거의 또는 전혀 장점이 없다. 그러나, 상기 참조된 특허 제4,125,861호에 설명된 바와 같이, 비교적 작은 값을 갖는 인코드된 바이트의 발생 주파수는 비교적 큰 값을 갖는 인코드된 바이트의 발생 주파수보다 훨씬 크다. 인코드된 바이트의 이 불균등한 분재는 더 큰 값의 샘플에서 사용되는 것보다, 더 적은 수의 비트내 더 작은 값의 샘플을 인코딩하므로 비디오 데이터를 더 압신하기 위해 참조된 특허에서 사용된다. 이러한 형태의 압축을 수행하는 여러 길이의 통계적 인코더는 종래 기술에 공지되어 있다. 이러한 형태의 코드 즉, 후프만 코드를 발생하기 위한 알고리즘이 여기에 참조된 맥그로우 힐 사의 1963년판, 제77 내지 88면, 엔.아브람슨의 명칭 정보 이론 및 코딩에 설명되어 있다.
상술된 각각의 인코딩 방법은 몇몇 형태의 비디오 정보에서 잘 작동하지만 다른것에서는 잘 작동하지 않는다. 상기 절대 인코딩 기술은 인코드되는 화상이 균일한 또는 선형으로 변동하는 휘도 또는 갈리 정보를 갖는 비교적 큰 영역을 구비할 때 정지 화상 또는 이동 순차의 제1비디오 필드에 대해서는 최적이다. 상대코딩 기술은 이동 순차의 제2 및 후속되는 비디오 필드에 대해 최저이다.
이러한 코드에 의해 효율적으로 표시되는 비디오 정보의 여러 형태 때문에, 단일 비디오 화상을 표시하기 위한 둘 이상의 코드를 결합시키는 것이 바람직하다. 예를들어, 절대 인코딩 및 DPCM 인코딩의 결합은 상세한 로우 및 하이 레벨을 포함하는 화상의 콤팩트한 표시를 발생할 수 있다. 이동 순차에서, 제1a, 1b 및 1c도에 표시된 바와 같이, 이러한 세 개의 인코딩 방법은 호환선 레코드 포맷을 발생하기 위해 절단될 수 있다.
그러나, 일단 그렇게 인코드되며 상기 화상이 빨리 디코드되어 재생된 화상이 자연적인 세부점과 동작으로 디스플레이되는 것이 바람직하다.
이러한 형태의 인코드된 화상을 디코드하는데 사용되는 회로는, 내장 프로그램 제어기의 제어하에서 일제히 작용하도록 조절되는 여러 가지 처리 소자를 양호하게 구비할 수 있다. 사용될 수 있는 내장 프로그램 제어기중 하나느이 형태는 여러 가지 마이크로프로세서 집적 회로에서와 같은 마이크로 코드 순차기될 수 있다. 마이크로 코드 순타기의 설계에 대한 일반적인 것이, 여기에 참조된 1967년 스프링거-벌랭사, 메이취.더블유 쉬윈드의 텍스트북 제379 내지 387면 명칭 디지탈 컴퓨터의 설계, 입분에서 볼 수 있다. 여기서 설명된바와 같이, 조절 브랜치 작동의 수행은 마이크로 코드 순차기의 설계에서 중요한 사항이다.
조절 브랜치 작동은, 상기 마이크로 코드 순차기 외부의 회로를 처리하는 특정한 상황의 발생에 응답하여 마이크로 코드 순차기에 의해 제공되는 마이크로 코드 명령의 순서의 변화를 가져온다. 그러한 상태는, 예를들면, 특정 레지스터내에서 유지되는 값이 제로가 되는 상태가 될 수 있다. 조절 브랜치 작동이 주문될 때 특정한 상태가 일어나면, 마이크로 코드 명령의 한 순서는 마이크로 코드 순차기에 의해 제공된다. 상기 상태가 일어나면, 또다른 명령 순서가 제공된다.
상술된 바와 같이, 실시간 풀 동작 디스플레이를 발생하기 위한 인코드된 데이터를 처리하는 비디오 신호처리기에서, 디코딩 처리기의 속도는 중요한 문제이다. 상기 조절 브랜치 작동의 수행은 상기 디코딩 처리기의 수행에 상당한 영향을 미친다. 상술된 참조 텍스트북에 기술된 각각의 조절 브랜치 작동은, 교번하는 명령 순차중 하나의 제1명령이 제공하도록 스케줄된 다음 명령이 아닐 때 하나의 여분의 명령을 역시 필요로한다. 이 순간에, 상기 부자적인 명령 사이클은, 마이크로 코드 명령을 유지하는 랜덤 엑세스 메모리에 대한 어드레스 값을 설정하며 목표 명령을 판독할 필요가 있다.
조절 브랜치 작동의 아웃컴에 대한 중요한 시간 제약을 갖지 않는 내장 프로그램 제어기를 제공하는 것이 바람직하다.
본 발명의 원리에 따라서, 데이터 처리의 내장 프로그램 제어기가 제공된다. 내장 프로그램에 제어기는 다수의 명령 값과 상기 메모리에 의해 제공된 명령 값에 응답하여, 상기 데이터 처리 시스템내 처리 회로를 제어하는 명령 디코드를 유지하기 위한 어드레스가 가능한 메노리를 구비한다. 명령 디코딩 회로에 의해 제공된 어드레스 값에 응답하여, 두 개의 명령 값이 내장 프로그램 제어기의 내부 회로에 의해 상기 메모리로부터 판독된다. 상기 명령 디코딩 회로에 유지되는 명령이 조절 브랜치 작동을 야기시킬 때, 상기 내장 프로그램 제어기의 외부 처리 회로내 상태 값은 상기 메모리로부터 판독된 두 개의 명령중 어느 것이 디코딩 회로에 인가되는 다음 명령인지를 판단한다.
상기 도면에서, 넓은 화살표는 다수의 비트 병렬 디지탈 신호를 전달하기 위한 버스를 표시하며 라인 화살표를 아날로그 신호 또는 단일 비트 디지탈 신호를 전달하기 위한 접속을 표시한다. 상기 장치의 처리속도에 따라서, 보상 지연은 어떤 신호 통로에서 요구될 수도 있다. 종래의 디지탈 신호 처리 회로 설계에 숙련된 사람이라면 그러한 지연이 측정한 시스템에서 필요로 하는 곳이 어디인지를 알 수 있을 것이다.
제2도는 비디오 신호 처리 회로(210) 및 결합된 주변 회로를 도시하는 블록 다이어그램이다. 본 발명의 본 실시예에서, 회로(210)는 단일 집적 회로로서 수행된다. 비디오 신호 처리 시스템은 제2도를 참조하여 간단히 후술되며, 제2 내지 13도를 참조하여 더 상세히 설명된다. 이러한 응용에의 제3부분은 제14내지 23도를 참조하며, 제1a, 1b 및 1c도에 도시된 것과 같은 포맷내 압신된 비디오 데이터를 화소 값으로 변환하기 위해 시스템의 여러 성분이 병렬로 작동하는 방법을 설명한다.
제2도에서, 압신된 비디오 신호(212)의 소스는 비디오 신호 데이터를 제공하는데 이 데이터는 전술된 비디오 신호 압신 기술중 하나 이상을 사용하여 압신되었으며, 통계적으로 인코드된 데이터를 구비한다. 본 발명의 이 실시예에서, 소스(212)에 의해 제공된 데이터는, 비디오 신호 처리기(210)의 내부에 있는 VRAM 제어 유니트(238)의 제어하에서 비디오 랜덤 엑세스 메모리(VRAM)에 인가된다. 본 발명의 이 실시예에 사용되는 소스(212)는 컴팩트 디스크 리드 온리 메모리(CD RAM)이다. 그것은 압신된 데이터를 각각 32비트의 블록내 VRAM(216)에 연속해서 제공한다. VRAM 제어 유니트(238)는, 소스(212)에 의해 제공된 모든 데이터가 VRAM(216)으로 기록되도록 소스(212) 및 회로(210)로부터 VRAM(216)에 데이터 엑세스 요청을 조정한다.
본 발명의 이 실시예에서 사용된 VRAM(216)은 NEC 일렉트로닉스 인코포레이티드에서 제작된 4비트 이중 포트 랜덤 엑세스 메모리 집적 회로된 μPD 41264 64K 128개로 구성되다. 상기 메모리 집적 회로는 16개의 로우 및 8칼럼을 갖는 매트릭스로 배열된다. 이러한 구성에서, VRAM(216)는, 각각 32비트의 1,048,574워드로 배열된 4메가바이트(MB)의 저장소를 제공한다.
디스플레이 처리기(218)는 디스플레이된 비디오 신호의 활성 비디오부를 발생하기 위해 직력 출력 포트를 통해 VRAM(216)을 엑세스한다. 비디오 신호 처리 회로 (210) 및 압신된 비디오 신호(212)의 소스는 표준입력-출력 버스를 통해 VRAM(21 6)의 데이터 셀을 엑세스한다. 비디오 신호 처리기(210) 및 디스플레이처리기(218)에 의해 VRAM(216)에 대한 모든 엑세스는 회로(210)의 VRAM 제어 유니트(238)에 의해 제어된다.
VRAM(216)에 놓인 데이터는 통계적 디코더(230) 및 입력 FIFO 회로(232,234)에 의해 처리 회로(210)에 제공된다. 데이터는 출력 FIFO 회로(236)를 통해 회로(210)에 의해 VRAM(216)에 제공된다. 통계적 디코더(230) 및 입력 FIFO(232, 234)에 의해 제공된 데이터 값은 양방향 데이터 버스 B BUS를 통해 데이터 통로 회로(242), 산술 및 놀리 유니트(ALU)(244) 및 데이터 RAM(228)에 인가된다. 버스 B BUS는 어드레스 값을 VRAM 제어 유니트(238)에 제공하기 위해 사용된다. 제2양방향 버스, A BUS는 데이터 값을 데이터 통로 회로(242), ALU(244) 및 데이터 RAM( 228)으로 전달하기 위해 교번 수단을 제공하기 위한, 그리고 화소 보간기(241)에 데이터를 제공하며 그것으로부터 데이터를 추출하기 위한 회로(210)에 포함된다. 상술된 결합에 어해서, 데이터 버스 A BUS는 마이크로 코드 RAM 및 순차기(226)에 결합되며 마이크로 프로세서(224)에 결합될 수 있다.
일반적으로, 제2도에 도시된 회로는 다음과 같이 작동한다. 소스(212)에 의해 제공되는 압신된 비디오 신호는 VRAM(216)에 기록된다. 이러한 압신된 비디오 신호는 순차 회로(226)의 제어하에서 통계적 디코더(230) 및 입력 FIFO(232,234)를 통해 엑세스된다. 디코더(230) 및 FIFO(232,234)에 의해 제공된 값은 데이터 통로(242), ALU(244) 및 화소 보간기(246)에 인가되며, 순차 회로(226)의 제어하에서 압신된 비디오 신호를 확장시키며 인코드된 화상을 설명하는 화소 값을 발생한다. 상기 발생된 화소 값은 240로우와 256칼럼을 갖는 매트릭스로서 출력 FIFO(236)를 통해 VRAM(216)으로 기록된다. 이것은 각 라인이 256화소 값을 갖는 비디오 신호의 240라인에 대응한다. 이 매트릭스는 이후로는 비트 맵으로 불리운다. 상기 비트 맵은 화상응 재생하기 위해 디스플레이 처리기(218)에 의해 VRAM(216)으로부터 판독된다. 본 발명의 이 실시예에서 사용되는 디스플레이 처리기(218)는 비트 맵내 화소 값을 비디오 신호를 가산한다. VRAM(216)으로부터 디스플레이 처리기(218)로 데이터 전소을 조절하기 위해서, 수평 라인 동기 신호, HS와 수직 필드 동기 신호 VS는 각각의 신호 소스(220,221)에 의해 처리기(210,218)로 제공된다. 본 발명의 양호한 실시예에서, 이 신호는 디스플레이 처리기(218)에 의해 발생될 수 있다.
본 발명의 양호한 실시예에서 클럭 신호(225)의 소스는, 마이크로 코드 RAM 및 순차기 회로(226)에 25MHz 클럭 신호, CLK를 제공한다. 상기 회로(226)는 각각 12.5MHz의 주파수를 갖는 신호 CK 및 CK'와 신호 CK와 대체로 같은 주파수 및 위상을 갖는 신호 CKA와 신호 CK에 대체로 역위상인 신호 CKB를 발생한다. 상기 클럭 신호 CKL, CKA및 CKB는 데이타 RAM(228)에 인가된다. 신호 CKA및 CKB는 데이터통로(242), ALU(244) 및 화소 보간기(246)에 인가된다. 신호 CK는 통계적 디코더(230), 입력 FIFO(232,234)에 그리고 출력 FIFO(236)에 인가된다. 신호 CK'는 VRAM 제어 유니트(238)에 인가된다.
제2도에 도시된 회로의 설명을 간단히 하기 위해서, 압신된 비디오 신호의 소스가 단지 인코드된 휘도신호를 제공하며 회로(210)가 단지 하나의 비트 맵, 휘도 비트 맵을 구성한다고 가정한다. 실제의 시스템에서, I 및 Q 칼라 차 신호와 같이 칼라 정보 신호에 대한 부가적인 비트 맵 역시 발생될 수 있다.
전술된 바와 같이, 비디오 신호 처리회로(210)내 중앙 제어 소자는 마이크로 코드 RAM 및 순차기 회로(226)이다. 제3a도는 마이크로 코드 RAM과 순차기(226)으로서 사용하기에는 적당한 회로를 도시하는 블록 다이어그램이다. 상기 마이크로 코드 RAM(31)는 각각 96비트를 갖는 128워드로서 배열된 종래의 랜덤엑세스 메모리이다. 보통 작동에서, 마이크로 코드 RAM(310)는, 어드레스 레지스터(322)내에 고정된 어드레스 값의 7MSB에 의해 어드레스된 96비트 워드를 제지스터(312)의 입력 포트에 공급한다. 상기 레지스터(312)는 입력 포트에 인가된 값을 로드시키기 위해 제어 회로(308)에 의해 제공된 신호 LD에 의해서 조절된다. 마이크로 코드 RAM(310)에 의해 제공되는 각각의 96비트 값은 2개의 48비트 마이크로 코드 제어 워드 또는 명령어를 포함하고 있다. 레지스터(312)의 48MSB 위치에 있는 이들 명령어 중 한 명령어는 멀티플렉서(314)의 한 입력 단자에 인가되며, 레지스터(312)의 48LSB 위치에 있는 다른 명령어는 멀티플렉서(314)의 제2입력 단자에 인가된다. 상기 멀티플렉서(314)는 플립_플롭(318)에 의해 제공되는 단일 비트신호에 의해, 48비트 명령어중 하나를 명령어 레지스터(316)의 입력 단자로 통과시키도록 조절된다. 상기 명령어 레지스터(316)는 제어 회로(308)에 의해 제공되는 신호 LI에 응답하여 그 입력 단자에 인가되는 마이크로 코드 제어 워드를 로드 시킨다.
명령어 레지스터(316)의 개별 비트는 버스 MCW를 통해 비디오 신호 처리 회로(210)의 각 콤포넌트의 제어 입력 단자에 접속된다. 마이크로 코드 RAM(310)에 의해 제공되는 마이크로 코드 제어 워드가 명령어 레지스터(316)를 통해 배열됨에 따라 상기 회로(210)의 개별 콤포넌트를 일제히 압축된 비디오 데이터를 비트-맵 화소 데이터로 변환하는 동작을 수행하도록 조절된다. 마이크로 코드 제어 워드의 각 비트의 기능은 제3c도를 참조하여 기술되게 된다.
비디오 신호 처리기(210)에 의해 상용된느 클럭 신호 CK 및 CK'는 마이크로 코드 RAM 및 순차회로(226)에 포함된 회로에 의해 발생된다. 신호원(225)에 의해 제공되는 25MHz 클럭 신호 CKL는 12.5MHz의 클럭 신호 CK'를 발생하기 위해 2로 상기 신호 CLK의 주파수를 분할하는 주파수 분할 회로(304)에 인가된다. 상기 신호 CLK는 AND 게이트(306)의 한 입력 단자에 인가되는데, 이 게이트의 다른 입력 단자는 마이크로 프로세서(244)에 의해 제공된느 신호 HALT의 반전 형태를 수신하도록 인버터(302)에 결합된다. 상기 AND 게이트(306)의 출력 신호는 12.5MHz 클럭 신호 CK를 발생하기 위해 그 주파수를 2로 분할하는 주파수 분할 회로(307)에 인가된다. 신호 HALT가 놀리 0값을 가지면, 신호 CK는 12.5MHz 구형파 발진 신호이다. 그러나, 신호 HALT가 논리 1로 변환되면, 신호 CK의 상태는 논리 1 또는 논리 0에서 동결되며 신호 HALT에서의 변화가 발생될때까지 그 상태에 있게된다.
전술한 바와 같이, 마이크로 코드 제어 워드의 8LSB는 다음 어드레스(NEXT ADDRESS) 필드를 한정한다. 어떤 마이크로 코드 제어 워드에서, 이 필드는 명령어 레지스터(316)로 로드될 다음 마이크로 코드 제어 워드의 마이크로 코드 RAM(310)에서의 어드레스를 포함하고 있다. NEXT ADDRESS 필드에 보유된 값은 멀티플렉서(320)를 통해 어드레스 레지스터(322)에 인가된다. NEXT ADDRESS 값의 LSB는 플립-플롭(318)의 입력 단자에 인가된다. 어드레스 레지스터(322)와 플립-플롭(318)은 신호 CK에 의해 그 각각의 입력 단자에 인가된 값을 로드시키도록 조절된다.
후술되는 바와 같이 데이터 통로 회로(242)에 의해 제공되는 신호 CD는 플립-플롭(318)의 리셋트 입력단자 R에 결합된다. 상기 신호 CD의 값은 마이크로 코드 제어 워드의 조건 코드 선택(COND CODE SEL)필드(후술됨)에 의해 제어된다. 이 신호는 명령어 레지스터(316)에 인가되는 마이크로 코드 제어 워드의 순차를 조건부로 변화시키기 위해 마이크로 코드 RAM 및 순차 회로(226)에 사용된다. 신호 CD는 예를 들어 ALU(244)의 출력 값이 0인 신호 처리에서 초기에 발생되는 조건을 나타낸다. 선택된 조건이 참이면, 플립-플롭(318)에 의해 제공되는 출력 신호 Q는 논리 0이 된다. 이 값은 레지스터(312)의 48LSB 위치에 보유된 값을 명령어 레지스터(316)로 통과시키도록 멀티플렉서(314)를 조절한다.
마이크로 코드 RAM 및 순차 회로(226)의 제어 흐름을 조건부로 변화시키기 위해, 다시말하면, 조건적 브랜치 동작을 수행하기 위해 상기 회로가 어떻게 사용될 수도 있는가를 이해하기 위해, 마이크로 코드 제어 워드 A가 그 COND CODE SEL 필드에서의 0이 아닌 값과 그 NEXT ADDRESS 필드에서의 81의 값을 갖는다고 가장하자. 마이크로 코드 제어 워드가 명령어 레지스터(316)로 로드될 때, NEXT ADDRESS 필드에서의 8비트 값은 어드레스 레지스터(322)에 인가되고, 마이크로 코드 RAM(310)에서 어드레스 80 및 81에서의 마이크로 코드 제어 워드는 레지스터(312)로 로드된다. 만일 조건 신호 CD의 값이 논리 0이면, 레지스터(312)의 48MSB 위치(어드레스 81)를 차지하는 마이크로 코드 제어 워드가 사용될 그 다음 것이 된다. 그렇지 않으면, 레지스터(213)의 48LSB 위치(어드레스 80)를 차지하는 마이크로 코드 제어 워드가 그 다음 것이다. 이들 각각의 명령어는 별개의 NEXT ADDRESS 필드를 가지며, 그래서 각각 마이크로 코드 제어 워드의 다른 순차를 한정하는데, 즉 비디오 신호 처리기(210)의 다른 작용을 한정한다. 마이크로 코드RAM(310)이 조건 코드의 두 가능한 값에 대한 다음 명령어를 제공하기 때문에, 조건의 값이 결정되면 그 다음 마이크로 코드 제어 워드를 펫칭하는데 있어 시간 손실이 없다.
마이크로 코드 RAM 및 순차 회로(226)는 버스 A BUS를 통해 공급되는 마이크로 코드 제어 워드를 마이크로 코드 RAM(310)으로 로드시킬 수 있다. 마이크로 코드 제어 워드의 1/3을 각각 나타내는 3개의 16비트 값이 3개의 레지스터(324)에 연속적으로 인가된다. 제1 16비트 값은 레지스터 MR0에 저장되고, 제2 16비트 값은 레지스터 MR1에 저장되며, 제3 16비트 값은 레지스터 MR2에 저장된다. 다음에, 또한 입력 FIFO(232) 및 데이터 RAM(228)을 통해 VRAM(216)에 의해 제공될 수도 있는 어드레스 값이 어드레스 레지스터(322)에 인가된다. 이 어드레스 값의 LSB, 신호 DXC는 마이크로 코드 RAM(310)에 대한 I/O 버스의 48MSB 위치나 또는 48LSB 위치에 3개의 레지스터 MR1, MR1, MR2에 의해 제공되는 48비트 값을 인가하도록 디멀티플렉서(326)를 조절한다. 이와 동시에, 기록 인에이블 신호 WE가 어드레스된 메모리 셀로 48비트 값은 저장하도록 RAM(310)을 조절하기 위해 펄스화된다.
이들 동작에 의해 마이크로 코드 RAM(310)으로 기록된 마이크로 코드 제어 워드는 예를들어 입력 FIFO(232) 및 데이터 RAM 회로(228)를 통해 VRAM(216)으로부터 제공된다. VRAM(216)으로부터 마이크로 코드 명령어를 로드하는 이 능력은 압축된 비디오 신호원(212)으로 하여금 비디오 신호 처리기(210)에 모든 압축된 데이터 및 그것을 감압하는데 필요한 명령어를 제공하도록 허용한다. 초기에, 후술되는 바와 같이, 부트스트랩 프로그램이 처리기(210)의 제어를 할 수도 있는 마이크로 프로세서(224)에 의해 마이크로코드 RAM(310)으로 로드될 수도 있다. 이 부트스트랩 프로그램내의 명령어에 응답하여, 마이크로 코드 RAM 및 순차 회로(226)는 처리기(210)로 하여금 압축된 비디오 데이터를 디코드할 수 있도록 하는 VRAM(216)으로부터의 명령어를 로드시킨다.
제3b도는 마이크로 코드 제어 워드 MC가 마이크로 코드 RAM(310)으로 저장될때의 마이크로 코드 RAM 및 수차 회로(226)의 동작을 도시하는 타이밍도이다. 이 타이밍도에서, 기호 T0내지 T5는 6개의 다중 코드 명령 사이클을 나타낸다. 각 명령 사이클은 신호 CKA의 포지티브-진행 변이에 대해 시작하고 끝난다.
명령 사이클 동안에, 명령어 레지스티(316)에 보유된 마이크로 코드 제어 워드는 버스 A BUS에 의해 전달되는 16비트 값이 레지스터 MR0로 저장될 것이라는 것을 나타내는 그 A DST 필드에서의 값(예, 8)을 가진다. 이 명령 사이클에서, 값 MC0, 즉 마이크로 코드 제어 워드 MC의 16LSB는 예를들어 데이터 RAM회로(228)에 의해 버스 A BUS로 게이트된다. 명령 사이클 T0동안에, 레지스터 MR0는 신호 A DST의 값에 의해 버스 A BUS에 의해 제공되는 16비트 값 MC0을 저장하도록 조절된다. 이 저장 동작은 명령 사이클 T0의 중간점에서 신호 CKA의 네가티브 진행 변이와 동시에 일어난다. 값 MC0에 레지스터 MR0에 저장되는 것과 거의 동시에, 명령어 레지스터(316)에서의 마이크로 코드 제어 워드 NEXT ADDRESS 필드내의 값이 어드레스 레지스터(322)에 저장되며, 이 어드레스 값의 LSB는 플립-플롭(318)에 저장된다. 어드레스 레지스터(322)에 저장된 값은 마이크로 코드 RAM(310)으로 하여금, 그 다음 명령어를 포함하고 있는 96비트 값을 레지스터(312)에 인가하도록 조절한다. 이 96비트 값은 명령 사이클 T0의 중간점 약간 이후에 발생하는 신호 LD의 네가티브 진행 변이와 일치하여 레지스터(312)로 로드된다. 플립-플롭(318)에 보유된 단일 비트 값에 응답하여, 어드레스된 48비트 마이크로 코드 제어 워드는 명령어 레지스터(316)의 입력 단자에 인가된다. 이 마이크로 코드 제어 워드는 명령 사이클 T0의 끝에서 발생하는 신호 LI의 네가티브 진행 엣지와 동시에 명령어 레지스터(316)로 로드된다. 명령 사이클 T1동안에, 새로 로드된 마이크로 코드 제어 워드는 레지스터 MR1로 하여금 마이크로 코드 제어 워드 MC의 중간 16비트를 나타내는 값 MC1을 로드하도록 조절한다. 동일한 방식으로, 명령 사이클의 끝에서 명령어 레지스터(316)으로 로드된 마이크로 코드제어 워드는 레지스터 MR2로 하여금 명령 사이클 T2동안에 마이크로 코드 제어 워드 MC의 16MSB를 로드하도록 조절한다.
명령 사이클 T2의 끝에서 명령어 레지스터(316)로 로드된 마이크로 코드 제어 워드는 레지스터(324)로부터 마이크로 코드 RAM(310)으로의 마이크로 코드 제어 워드 MC의 전달을 제어한다. 마이크로 코드 제어 워드 MC를 저장하는데 사용되는 어드레스는 버스 A BUS를 통해 제공된다. 명령 사이클 T3의 시작점에서, 명령어 레지스터(316)내의 마이크로 코드 제어 워드의 A DST 필드는 11의 값을 갖는데, 이것은 버스 BUS에 의해 제공되는 16비트 값이 어드레스 레지스터(322)로 로드될 것이라는 것을 나타낸다. A DST 필드내의 이 값에 응답하여, 제어 회로(308)는 신호 CK의 거의 한 사이클동안 멀티플렉서(320)에 신호 MXC로서 논리 1값을 인가한다. 이 신호는 멀티플렉서(320)로 하여금 버스 A BUS에 의해 제공되는 값의 8LSB를 어드레스 레지스터(322)의 입력 단자에 인가하도록 조절한다. 이 어드레스 값은 명령 사이클 T3에서 신호 CK의 제1네가티브-진행 변이와 일치하여 레지스터(322)로 로드된다. 어드레스 레지스터(322)에 보유된 LSB, 즉 신호 DXC는 디멀티플렉서(326)의 제어 입력 단자에 인가된다. 상기 디멀티플렉서(326)는 논리 1 또는 논리 0의 값을 가진 신호 DXC에 의해, 레지스터(324)에 의해 제공되는 48비트 값은 I/O 버스의 각 48MSB 위치나 48LSB 위치로 게이트하도록 조절된다.
신호 DXC는 또한 마이크로 코드 RAM(310)의 각 반부에 대해 AND 게이트(311,313)를 통해 개별 기록인에이블 신호를 발생하는데 이용된다. 전술한 바와 같이, 마이크로 코드 RAM(130)은 각 워드가 96비트를 가진 128워드로서 구성된다. 이 메모리는 2개의 반부로서 나누어진다. 좌반부는 128 워드의 48MSB를 포함하며, 우반부는 128워드의 48LSB를 포함하고 있다. 상기 신호 DXC는 마이크로 코드 RAM(310 )의 좌반부에 대한 기록 인에이블 신호를 발생하기 위해 제어 회로(308)에 의해 제공되는 기록 인에이블 신호 WE와 AND 게이트(313)에서 결합된다. 또한 상기 신호 DXC는 반전되어, 다음에 마이크로 코드 RAM(310)의 우반부에 대한 기록 인에이블 신호를 발생하기 위해 게이트(311)에 의해 신호 WE와 논리적으로 AND된다.
본 실시예에서, 상기 신호 DXC는 명령 사이클 T3의 시작점에서 신호 CK의 거의 한 주기동안 논리 1의 값을 갖는다. 결과적으로, 마이크로 코드 제어 워드 MC는 어드레스 레지스터(322)에 보유된 7MSB 값으로 표현되는 어드레스 값을 가진 마이크로 코드 RAM(310)내의 셀의 48MSB 위치로 기록된다. 마이크로 코드제어 워드는 제3b도에 도시된 신호 WE와 동시에 마이크로 코드 RAM(310)으로 기록된다.
명령 사이클 T3이 메모리 기록 동작을 수행하기 때문에, 그다음 마이크로 코드 제어 워드는 신호 CK의 제1주기동안에는 명령어 레지스터(316)로 로드되지 않는다. 이 동작은 명령 사이클 T3에서 신호 CK의 제2주기 동안에 이루어진다. 명령 사이클 T3동안 신호 CK의 제2포지티브-진행 변이와 일치하여, 신호 MXC의 값이 논리 0으로 변화되고, 명령 사이클 T0를 참조하여 전술된 바와 같이 명령어 펫치 동작이 진행된다. 마이크로 코드 RAM 및 순차 회로(226)는 명령 사이클 T4및 T5동안 명령 사이클 T0를 참조하여 기술된 방식으로 작동한다.
제3b도에 기술에 예에서, 신호 LD 및 LI는 에러성의 마이크로 코드 제어 워드가 레지스터(312,316)로 로드되는 것을 방지하기 위해 명령 사이클 T3의 제1빈부 동안에 억제된다. 또한 신호 CKA및 CKB도 비디오 신호 처리 회로를 휴지 상태에 놓도록 명령 사이클 T3동안에 제어 회로에 의해 동결된다. 이것은 ALU(244)와 데이터 RAM(2 28) 및 회소 보간기(246) 사이의 동기 동작을 유지하도록 행해진다. 클럭 신호 CKA및 CKB가 명령 사이클 T2의 제2반부동안에 디스에이블되기 때문에, ALU(244)와 데이터 RAM(228) 및 화소 보간기(246)의 내부 상태는 이 주기에서 변환되지 않는다.
본 발명의 이 실시예에서, 마이크로 코드 RAM(310)에 대한 데이터 판독 동작 및 데이터 기록 동작은 신호 CK의 개별주기동안에 일어난다. 이와 달리, 마이크로 코드 RAM 및 순차 회로(226)가 신호 CK의 단일 주기에서 두 동작을 모두 수행하도록 설계될 수도 있다.
또한 제어 회로(308)는 휴지 논리 회로(240)에 의해 제공되는 신호 PAUSE에 응답하여 클럭 신호 CKA및 CKB를 동결시키게 된다. 또한 상기 제어 회로(308)는 마이크로 프로세서(224)에 의해 제공되는 신호 HALT에 응답하여, 신호 CK가 VRAM 제어유니트(238)를 제외하고 전체 비디오 신호 처리기(210)의 내부 상태를 효과적으로 동결시키는 것을 금지하게 된다.
신호 HALT를 이용하여, 마이크로 프로세서(224)가 비디오 신호 처리기(210)의 제어 기능을 효과적으로 취할 수도 있다. 상기 신호 HALT는 명령어 레지스터(316)에 인가되어 그 레지스터로 하여금 게이팅 회로(223)을 통해 마이크로 프로세서(224)에 의해 제공되는 버스 MCW로부터의 데이터를 받아들이도록 조절한다. 상기 마이크로 프로세서(224)는 신호 HALT를 논리 1에서 논리 0으로 변화시킴으로써 레지스터(316)로 하여금 인가된 마이크로 코드 제어 워드를 로드 시키도록 야기한다. 이 변화 이후에 클럭 신호 CK의 다음 주기동안에, 마이크로 코드 RAM 및 순차 회로(226)는 이 마이크로 코드 명령이 실행되도록 한다. 이 클럭 주기의 완료시에, 마이크로 프로세서(224)는 다시 신호 HALT를 논리 1값으로 변화시키고, 레지스터(316)에 다른 마이크로 코드 명령어를 인가한다. 이런 방식으로 동작함으로써, 상기 마이크로 프로세서(224)는 마이크로 코드 RAM 및 순차회로(226)로 하여금 버스 A BUS 또는 B BUS에 접속된 어느 레지스터에 데이터를 기록하거나 전술한 바와 같이 부트스트랩 프로그램을 로드시키도록 야기한다. 또한 제5도를 참조하여 후술되는 바와 같이, 버스 A BUS로의 그 접속과 버스 게이트(520) 덕택에, 상기 마이크로 프로세서(224)는 어떤 레지스터나 또는 버스 A BUS나 B BUS중의 어느 하나의 내용을 판독할 수도 있다.
제3c도는 마이크로 코드 RAM 및 제어회로(226)에 의해 이용되는 마이크로 코드 제어 워드 또는 명령어의 포맷을 도시하는 도면이다. 이 제어 워드는 13필드를 포함하고 있다. 각 필드는 그 필드가 가질 수도 있는 값과 비디오 신호 처리기(210)의 여러 콤포넌트에 대한 이들 값의 효과에 관해 후술되게 된다. 제어되는 콤포넌트의 구조는 제4도 내지 제13도를 참조하여 후술되게 된다.
마이크로 코드 제어 워드의 비트 0 내지 7는 NEXT ADDRESS 필드를 형성한다. 이들 비트로 표현되는 값은 명령어 레지스터(316)으로 로드될 다음 마이크로 코드 제어 워드의 마이크로 코드 RAM(310)에서의 어드레스이다. 주어진 마이크로 코드 명령 사이클동안에, 상기 필드로 표현되는 값은 마이크로 코드 어드레스 레지스터(322)에 저장된다.
조건 코드 선택 필드는 이 마이크로 코드 제어 워드의 비트 8 내지 10를 차지한다. 이들 3개의 비트는 후술되는 데이터 통로 회로(242)에서 조건 레지스터에 의해 보유되는 조건 값중 하나를 선택한다. 선택된 조건 값은 신호 CD이다. 이 신호는 조건부 브랜치 동작을 수행하는데 이용된다. 전술한 바와 같이, 조건부 브랜치는 명령어 레지스터(316)에 인가되는 마이크로 코드 제어 워드의 순차로 변화되며, 이것은 선택된 조건이 부합될때(즉 CD가 논리 1일때)에만 발생한다. 표 1은 조건 코드 선택 값 및 그 대응하는 설명을 리스트하고 있다.
Figure kpo00002
마이크로 제어 워드의 비트 11 내지 29는 데이터 값이 버스 ABUS 및 B BUS를 통해 회로(210)의 여러 콤포넌트 사이에서 어떻게 전달되는가를 제어하는 4개의 필드를 포함하고 있다. 비트 11 내지 15는 A SRC필드이다. 이 필드는 출력 값을 버스 A BUS에 제공함으로써 원천으로서 작용하는, 콤포넌트 필드나 또는 콤포넌트내의 레지스터의 필드를 나타낸다. 마이크로 코드 제어 워드의 비트 16 내지 20는 A DST 필드이다. 이 필드는 그 입력 값으로서 버스 A BUS에 대한 값을 수용하여 목적지로서 작용하는, 콤포넌트의 필드나 한 콤포넌트내의 레지스터의 필드를 나타낸다. 비슷하게, 필드 B SRC, 비트 21 내지 24 및 B DST, 비트 25 내지 29는 회로의 콤포넌트가 각각 버스 B BUS에 값을 제공하고 그 버스 B BUS로부터 값을 받아들이는 것을 결정한다. 버스 A BUS 및 B BUS는 비디오 신호 처리기(210)의 여러 콤포전트에 데이터및 제어 정보를 모두 전할 수도 있다. 버스 A BUS 및 B BUS에 결합될 수도 있는 레지스터 및 이들 버스에 의해 전달되는 제어 정보가 상기 회로(210)의 적당한 콤포전트를 참조하여 후술되게 된다.
일반적으로, 버스 A BUS 및 B BUS에 결합된 레지스터는 마이크로 코드 제어 워드의 필드 A SRC, A DST, B SRC, B DST 중 하나에 결합되는 종래의 디코딩 회로(도시안됨)를 포함하고 있다. 이 디코딩 회로는 레지스터로의 엑세스를 허용하는 제어 값이 검출될 때 논리 1값을 발생한다. A SRC 필드에 응답하는 디코딩 회로는 마이크로 코드 제어 워드의 LIT, SEL 필드, 비트 31에서의 논리 -1의 갓에 의해 억제된다. 이 비트가 논리 1이면 A SRC에서의 값은 유효 A SRC 값이 아니고, 후술되는 바와 같이 8비트 리터럴(literal)값의 일부이다. 펄스 A SRC 및 B SRC에 의해 제어되는 레지스터에 대해, 디코딩 회로의 출력 값은 레지스터의 출력 인에이블 입력 단자에 결합된다. 이 입력 단자에 인가된 논리 -1값은 레지스터로 하여금 그 저장된 값을 적당한 버스에 인가하도록 조절하고, 논리 -0값은 레지스터로 하여금 버스에 고-임피던스를 부여하도록 조절한다. 필드 A DST 및 B DST에 의해 제어되는 레지스터에 있어서는, 디코딩 회로의 출력 값이 레지스터의 데이터-로드 입력 단자에 결합된다. 이들 레지스터는 적당한 버스에 의해 전달되는 값을 로드하도록 조절되며, 디코딩 회로에 의해 제공되는 신호는 논리 -1값을 갖는다.
상기 마이크로 코드 제어 워드의 비트(30)은 필드 DEC LOOP CTR이다. 이 필드가 1의 값을 가지면, 데이터 통로 회로(242)에서의 루프 카운터는 마이크로 코드 명령 사이클 동안에 그 값을 감소시키도록 조절된다.
마이크로 코드 제어 워드의 비트(31)는 필드 LIT SEL이다. 상기 필드에서 1의 갓은 가상 값으로 현재 마이크로 코드 제어 워드의 비트 8 내지 15를 처리하도록 마이크로 코드 RAM와 순차회로(226)를 결정한다. 상기 값은 마이크로 코드 제어 워드의 비트(31)로 인에이블된 게이트 회로(317)를 통해 버스 A BUS의 여덟 개 LSB 위치에 소스 값으로 인가된다. 제로 값은 가상 값이 선택될 때 버스 A BUS상의 여덟 개 MSB위치에 디지탈 값 소스(315)으로부터 인가된다.
마이크로 코드 제어 워드의 비트(31)는 상술된 바와 같이 소스로 버스 A BUS를 사용할 수 있는 레지스터와, 후술된 데이터 통로 회로의 조건 코드 논리부(518)에 결합된다.
마이크로 코드 제어 워드의 비트(32)의 INT μp 필드이다. 상기 비트가 논리 1값을 가질 때, 마이크로 프로세서(224)는 인터럽트된다. 상기 제어 기능은 예로, 신호가 어떤 마이크로 구조 순서가 완료된 마이크로 프로세서(224)에 사용될 수 있다.
마이크로 코드 제어 워드의 비트(33)는 LSTCH COND CODE 필드이다. 상기 필드가 1의 값을 가질 때, 데이터 통로 회로(242)는 ALU(244)에 의해 조건 코드 레지스터내에 발생된 여러 조건의 값을 래치한다. 상기 제어 기능은 일반적으로 조건상의 브랜치 동작에 대한 조건을 선택하는 명령 이전의 명령에 포함된다.
마이크로 코드 제어 워드의 비트(34 및 35)는 SHIFT CONT 필드이다. 상기 필드는 데이터 통로 회로(242)의 레지스터 RO에 의해 실행된 비트 이동 동작을 제어한다.
표 2는 SHIFT CONT 필드의 여러 값에 응답하여 레지스터 RO에 의해 실행된 기능을 기술한다.
Figure kpo00003
마이크로 코드 제어 워드의 비트(38 내지 46)는 마이크로 코드 명령 주기동안 ALU(244)의 기능을 결정한다. 비트(47)는 사용하지 않는다. ALU(244)의 기능을 이해하기 위해 먼저 2의 구조 기술이 도움된다. 제4a도에 도시된 바와 같은 ALU(244)는 다섯 부분으로 구성하는데, 두 오퍼랜드 입력 레지스터(410 및 412), 산술 및 논리 회로(ALC)(414), 출력 레지스터(416)와 디멀키플렉서(418)이다. 레지스터(412)는 버스 B BUS에 접속되고 버스 B BUS로부터의 값을 로드시키도록 버스 MCW를 통해 제공된 마이크로 코드 제어 워드의 비트(36)내 1의 값에 의해 인에이블된다. 레지스터(410)는 버스 A BUS에 접속되며 마이크로 코드 제어 워드의 비트(37)내 1의 값에 의한 버스로부터의 값을 로드시키도록 인에이블된다. ALC(414)는 레지스터(410 및 412)에서 유지된 값으로 여러 산술 및 논리 연산을 실행한다. 어떤 한 명령 주기동안 실행된 연산은 버스 MCW를 통해 ALU로 제공된 마이크로 코드 제어 워드의 비트(38 내지 46) 필드 ALU OPCODE로 유지된 9비트 값에 의해 제어된다. 상기 9비트 필드에서, 비트(38 내지 44)로 유지된 값은 표 3에 따르는 ALU에 의해 실행된 함수를 결정한다. 표 3에서, A 및 B는 각각 레지스터(410 및 412)에 유지된 값을 나타내며, CIN은 ALC(414)의 캐리인 입력 단자에 인가된 값이다.
Figure kpo00004
상기 표에서, 'NOT'은 복수 연산을 가리키며 'NOR'은 배타적 OR 연산을 가리킨다.
마이크로 코드 제어 워드의 비트(45 및 46)는 ADD 연산(opcode 79)을 이중 ADD 포화 연산으로 변화시키고 캐리인 신호 CIN로 변화시키도록 버스 MCW를 통해 멀티플렉서(420)로 인가된다. 비트(45 및 46) 둘다 제로 값이거나 비트(45)가 제로이고 비트(46)가 1일 때, 멀티플렉서(420)는 신호 CIN로서 디지털 값 소스(422)로부터의 제로의 값을 인가시킨다. 비트(45)가 1이고 비트(46)가 0일 때, 멀티플렉서(420)는 신호 CIN로서 디지털 값 소스(424)로부터의 1의 값을 인가시킨다. 비트(45)와 비트(46)가 1의 값을 갖는다면, 멀티플렉서(420)에 의해 제공된 CIN 입력 값은 데이터 통로 회로(242)의 조건 코드 레지스터에 의해 제공된 캐리 아웃 조건 값 COUT이다.
ALC(414)에 의해 발생된 신호 CARRY OUT는 제4b도에 도시된 16비트 가산기의 MSB단에 의해 제공된 캐리 아웃 신호이다. 신호 SIGN는 ALC(414)에 의해 발생된 16비트 결과의 MSB이다. 신호 OVERFLOW는 ALC(414)에 의해 발생된 출력 값의 사인 비트와 ALC(414)에 인가된 두 입력 값의 사인 비트의 논리 조합이다. 상기 신호는 두 부극성 입력 값이 정극성 출력 값을 발생시키거나 두 정극성 입력 값이 부극성 출력 값을 발생시킬 때 논리 1값을 갖는다. 세 개 사인 비트의 모든 다른 조합에 대해, 신호 OVERFLOW는 논리 0값을 갖는다.
ADD 연산은 비트(45)가 0이고 비트(46)가 1일 때 이중 ADD 포화 연산을 하게 된다. 이중 ADD 포화 연산에서, 16비트 레지스터(410 및 412)의 각각은 두 개의 8비트 값을 포함하는 것으로 취급된다. 레지스터(410)에 유지된 값의 여덟 개 MSB는 레지스터(412)에 유지된 값의 여덟 개 MSB에 가산되며 그 결과 출력 레지스터(416)의 여덟 개 MSB에 저장된다. 마찬가지로, 레지스터(410 및 412)에 유지된 값의 여덟 개 LSB는 합해지며 결과는 레지스터(416)의 여덟 개 LSB에 저장된다. 상기 ADD 동작은 오버플로우 상태를 발생시킬 수 없다.
그 대신, ALC(414)내 회로는 합을 포화시킨다. 이중 가산 연산으로의 입력 값은 부극성 오버플로우 상태 또는 정극성 오버플로우 상태를 발생시키는 여덟 개의 LSB 합 또는 여덟 개의 MSB 합이 된다면, 합에 대해 제공된 값은 각각 0 또는 25로 포화되며, 가장 작고 큰 값은 8비트 사인되지 않은 2진 값으로 나타낼 수 있다.
이중 가산 포화 연산과 재래식 ADD 제공 사이의 스위치를 위해, 비재래식 가산기는 ALC(414)에 의해 사용된다.
제4b도는 ALC(414)에서 사용하기 적당한 가산기의 블록 다이어그램이다. 종래의 16비트 산술 및 논리 회로는 두 16비트 2의 보수 및 캐리 아웃 신호와 16비트 2의 보수 출력 값을 발생시키도록 캐리 인 신호를 합할 수 있는 16비트 가산기를 포함한다. 제4b도에 도시된 회로는 SPLIT가 1일 때 상술된 이중 가산 포화모드에서 두 개의 독립 8비트 가산기로서 또는, SPLIT가 0일 때 종래 16비트 2의 보수 가산기로서 동작하도록 신호에 응답한다.
제4b도에서, ALC(414)의 입력부 A 및 B에 인가된 두 개의 16비트 값은 여덟 개의 MSB부와 여덟 개의 CSB부이다. A 및 B입력 값의 여덟 개 MSB부는 각각 가산기(450)의 다른 입력부에 인가된다. A 및 B값의 여덟 개 LSB부는 각각 가산기(452)의 다른 입력부에 인가된다. 본 발명의 상시 실시예에 사용된 가산기(450 및 452)는 종래의 8비트 2의 보수의 가산기이다. 가산기(452)로의 캐리인 입력 신호는 ALC(414)에 인가된 신호 CIN이다. 가산기(450)로의 캐리 인 입력 신호는 AND 게이트(454)에 의해 제공된다. 상기 신호는 가산기(452)에 의해 제공된 캐리 아웃 신호 CO의 논리 AND이고 신호 SPLIT의 논리적으로 반전된 버전인 신호
Figure kpo00005
는 인버터(456)에 의해 제공된다. 가산기(450)에 의해 제공된 8비트 출력 신호의 MSB 위치내 신호는 ALC 가산기(414)에 의해 제공된 값의 극성을 나타내는 상태 신호 SIGN이다. 가산기(540)의 캐리 아웃 신호 CO7는 ALC(414)에 의해 제공된 신호 CARRY OUT이다.
가산기(450)에 의해 제공된 8비트 값은 ALC(414)의 입력부 A 및 B에 인가된 값의 여덟 개 MSB 2의 보수 합니다.
상기 출력 값의 MSB는 배타적 OR 게이트(472)의 한 입력 단자에 인가되며, 그의 다른 입력 단자는 신호 SPLIT를 수신하도록 결합된다. 배타적 OR 게이트(472)에 의해 제공된 출력 신호는 8비트 변형된 합을 발생시키도록 가산기(450)에 의해 제공된 값의 일곱 LSB로 연결된다. 신호 SPLIT가 제로일 때, 변형된 합은 두 8비트 2의 보수 값 합을 나타내는 8비트 2의 보수 값이다. 어쨌든, 신호 SPLIT가 1일 때, 변형된 합은 사인되지 않은 8비트 2진 값과 8비트 오프셋-128 2진 값의 합을 나타내는 사인되지 않은 8비트 2진 값이다.
ACC 가산기에 인가된 입력 값의 형 변화는 가산 회로의 기능이 아닌 비디오 신호 프로세서(210)를 프로그램밍하는데 구축된 것이다. 상기 종래 것에 의해, 신호 SPLIT가 제로 값을 가질 때, ALC 가산기에 인가된 값은 종래 16비트 2의 보수 값이다. 어쨌든, 신호 SPLIT가 1의 값을 가질 때, 가산기(450 및 452)의 각각에 인가된 값중 하나는 사인되지 않은 8비트 2진 값이며 다른 값은 오프셋-128 표기의 8비트 값이다.
상기 값은 버스 A BUS 또는 B BUS에 대한 소스로 작용할 수 있는 장치의 레지스터에 의해 제공될 수 있다.
신호 SPLIT가 1일 때, 사인되지 않는 8비트 2진 입력 값은 각각 0과 255 사이 값의 범위를 점유할 수 있으며 오프셋 128값은 -128 및 +127 사이 값의 범위를 점유할 수 있다. 그리하여, 변형된 합은 -128 및 382 사이의 값을 나타낼 수 있다. 어쨌든, 상기 모드에서 변형된 합은 사인되지 않은 8비트 2진수이며, 단지 0 및 255 사이의 값만 유효하다. 제4b도에 도시된 ALC 가산기는 255보다 큰 값에 대해 255 및 제로보다 적은 값에 대해 변형된 합을 제로로 표화 또는 제한하고 상기 유효 범위의 외부 값을 검출하는 회로를 포함한다.
AND 게이트(470)는 255보다 큰 변형된 합의 값을 가리키는 정극성 오버플로우 신호 POV1를 발생시킨다. AND 게이트(470)로의 세 입력 신호는 가산기(450)로부터의 신호 SPLIT, 캐리 아웃 신호 CO7및 가산기(450)에 의해 제공된 8비트 값의 MSB이다. 신호 POV7는 신호 SPLIT가 제로이거나 신호 SPLIT가 1일 때 제로이며 변형된 합의 값은 256 이하이다. 신호 POV1는 여덟 NOR 게이트(474)의 각각의 한 입력 단자에 인가된다. NOR 게이트(474)의 각각의 다른 입력 단자는 변형된 합의 8비트 중 각각 다른 것을 수신하도록 결합된다.
NOR 게이트(468)는 신호
Figure kpo00006
, 신호 CO1에 응답하여, 8비트 값의 MSB는 부극성 오버플로우 신호를 발생시키도록 가산기(450)에 의해 제공된다. 변형된 합을 가리키는 상기 신호는 제로 이하의 값을 갖는다. 신호 NOV1는 여덟 NOR 게이트(476) 각각의 한 입력 단자에 결합된다. NOR 게이트(476) 각각의 다른 입력 단자는 여덟 NOR 게이트(474)에 의해 제공된 신호중 각각의 다른 것을 수신하도록 결합된다. NOR 게이트(476)의 여덟 출력 신호는 ALC 가산기의 16 비트 출력 신호의 여덟 MSB이다.
가산기(452)는 상술된 것과 같은 값 제한 회로에 결합된다. NOR 게이트(476)에 대응하는 여덟 NOR 게이트(466)의 여덟 개 출력 신호는 ALC 가산기의 16비트 출력 신호의 여덟 LSB이다.
마이크로 코드 제어 워드의 비트(45 및 46)가 각각 제로 및 1의 값을 가질 때, 신호 SPLIT는 1이며 ALC가산기는 이중 가산 포화 모드로 동작하게 조절된다. 마이크로 코드 제어 워드의 비트(45 및 46)의 값에 대한 모든 다른 조합에 있어서, 신호 SPLIT는 0이고 ALC 가산기는 종래 16비트 2의 보수 가산기로 동작하도록 조절된다.
다음은 두 모드 각각에서 ALC 가산기의 동작 설명이다. 신호 SPLIT는 0이고, AND 게이트(454)는 16비트 2의 보수 가산기로 구성하는 가산기(450)의 캐리인 입력 단자 CI1에 가산기(452)의 출력 단자 CO0로부터의 캐리 아웃 신호를 인가시키도록 조절된다. 배타적 OR 게이트(462 및 472)에 인가된 제로 값 SPLIT신호는 각각의 NOR 게이트(464 및 474)에 각각의 가산기(452 및 450)에 의해 제공된 8비트 출력 값의 변하지 않은 LSB를 통과시키도록 상기 게이트를 조절한다. AND 게이트(460 및 470)에 인가된 제로 값 신호 SPLIT는 각각 NOR 게이트(464 및 474)에 제로값 정극성 오버플로우 신호 POV0및 POV1를 인가시키도록 상기 게이트를 조절한다.
같은 방식으로, NOR 게이트(458 및 468)에 인가된 논리 1값
Figure kpo00007
신호는 각각 NOR 게이트(466 및 476)에 제로 값 부극성 오버플로우 신호 NOVD및 NOV1를 인가시키도록 상기 게이트를 조절한다. NOR 게이트(464 및 466)에 인가된 제로 값 신호 POV0및 NOV0의 효과는 가산기(452)에 의해 두 번 제공된 출력 값을 반전시켜서 ALC 회로에 의해 제공된 16비트 값의 여덟 LSB로 가산기(452)의 출력부에서의 값을 제공하는 것이다. NOR 게이트(474 및 476)를 통해 ALC 가산기의 출력부에 가산기(450)에 의해 제공된 8MSB 값에 대해 같은 것은 참이다.
신호 SPLIT가 논리 1값을 가질 때, 인버터(456)에 의해 제공된 신호
Figure kpo00008
는 논리 제로 값을 가지며 AND 게이트(454)는 가산기(452)로부터의 캐리 아웃 신호를 가산기(450)의 캐리인 입력 단자 CI에 통과시키는 것을 금지한다. 상기 도형은 두 개의 분리 8비트 가산기로서의 가산기(450 및 452)이다. 배타적 OR 게이트(462 및 472)에 인가된 논리 1 신호 SPLIT는 가산기(452 및 450)에 의해 제공된 각각의 8비트 값에 대한 MSB를 논리적으로 반전시키도록 상기 게이트를 조절한다. MSB는 반전되어 가산기(452 및 450) 각각에 의해 발생된 사인되지 않는 8비트 2진 값은 적당히 사인되지 않은 8비트 2진 값과 오프셋 -128 2진값의 합을 표시한다.
신호 SPLIT가 논리 1값을 가질 때, AND 게이트(460 및 470)는 각각의 정극성 오버플로우 신호 POV0및 POV1를 발생시키도록 인에이블되고 각각의 부극성 오버플로우 신호 NOV0및 NOV4를 발생시키도록 인에이블된다. 부극성 오버플로우 신호 NOV1가 논리 1일 때, 8NOR 게이트(476)의 출력 모두 논리 제로로 되고 ALC 가산기에 의해 발생된 값의 최상위 비트에 대한 값은 제로이다. 신호 POV1가 논리 1일 때, 8NOR 게이트(474)의 출력 값 전부 논리 제로로 된다. 상기 신호는 NOR 게이트(476)에 의해 반전된다. 그리하여, ALC 가산기의 출력 값의 8MSB은 모두 논리 1의 값을 갖는다. 이것은 사인되지 않은 255의 2진 값에 대응한다. 같은 분석은 각각의 NOR 게이트(466 및 464)에 인가된 신호 NOV0및 POV0에 의해 유지한다.
표 3에 도시된 연산을 실행함으로써 얻어진 결과는 출력 레지스터(416)에 저장된다. 상기 레지스터는 마이크로 코드 제어 워드의 필드 A SRC 및 B SRC에서 적절한 값에 응답하여 디멀키플렉싱 회로(418)에 의해 버스 A BUS 및 B BUS의 둘다 또는 하나에 결합될 수 있다.
본 발명의 상기 시시예에 사용된 ALC는 예시적이다. 디지털 논리 디자인에 대한 기술에 숙련된 자는 상술된 바와 같은 동작을 할 수 있는 대안의 회로를 설계 및 구축할 수 있다.
ALC의 입력 레지스터(410 및 412)는 마이크로 코드 제어 워드의 버스 소스 및 지정 필드 A SRC, A DST, B SRC 및 B DST와 무관하게 각각의 버스 A BUS 및 B BUS를 엑세스 한다. 결국, 한 동작에서, 마이크로 코드 RMA 및 순차 회로(226)는 버스 A BUS 및 B BUS 각각에 지정하도록 데이터 값을 소스로부터 직접 전달시킬 수 있는 반면, 동시에 데이터 값의 하나 또는 둘로 동작을 실행하도록 ALU는 직접 전달시킨다.
ALU(244)로의 입력 값의 한 소스와 ALU(244)로부터의 출력 값에 대한 지정은 데이터 통로 회로(242)내 레지스터 파일(510)이다. 제5도는 본 발명의 본 실시예에 사용된 데이터 통로 회로(242)의 블록 다이어그램이다. 상기 실시예에 사용된 레지스터 파일(510)은 네 개의 일반 목적 레지스터 R0, R1, R2, 및 R3를 포함한다. 상기 레지스터 각각은 버스 A BUS 및 B BUS 둘다에 결합된다. 버스 MCW에 의해 제공된 마이크로 코드 제어 워드의 필드 A SRC 및 B SRC 제어하에, 상기 레지스터중 어느것도 버스의 하나 또는 둘로 값을 인가시키도록 인에이블될 수 있다. 어쨌든 필드 A DST 및 B DST에 응답하여, 레지스터는 어떤 한 마이크로 코드 명령 주기 동안 버스 A BUS 및 B BUS중 하나에 대해서만 지정하여 사용할 수 있다. 상술한 바와 같이, 레지스터 RO는 래지스터에 인가된 값의 8MSB와 8LSB를 교환시키거나 보다 크거나 작은 유효 비트 위치로 레지스터의 내용을 이동시키도록 마이크로 코드 제어 워드의 SHIFT CONT에 응답하는 회로를 포함한다.
레지스터 RO의 MSB 및 LSB는 각각 조건 코드 레지스터(512)의 다른 입력 단자에 접속된다. 상기 값에 덧붙여, 조건 코드 레지스터는 제로인 루프 가운터(514)에 의해 유지된 값을 가리키는 조건 값과 ALU(244)에 의해 제공된 조건 값 SIGN, ZERO, OVFLOW 및 CARRY OUT, 디지털 값 소스(513)로부터의 제로 값을 수신하도록 결합된다. 조건 코드 레지스터는 마이크로 코드 명령 주기 단부에서 ALU(244)에 의해 발생된 조건의 값을 저장하도록 마이크로 코드 제어 워드의 LSTCH COND CODE 필드에 응답한다. 다른 조건 코드는 발생할 때 비동기적으로 조건 코드 레지스터(512)에 래치된다.
조건 코드 논리부(518)는 상술된 바와 같이 마이크로 코드 RAM 및 순차 회로(226)에서 조건 브랜치 동작을 실행시키는데 사용될 조건 신호 CD와 같은 조건 코드 레지스터(512)내에 유지된 조건 값중 하나를 선택하도록 마이크로 코드 제어 워드의 COND CODE SEL 필드에 응답한다. 조건 코드 논리부는 또한 COND CODE SEL 필드가 가상 값을 버스 A BUS 인가시키도록 A SRC 필드와 더불어 사용될 때 조건 선택을 금지하도록 마이크로 코드 제어 워드의 LIT SEL 필드에 응답한다.
루프 카운터(514)는 마이크로 코드 제어 워드의 필드 A SRC 및 A DST 제어하에서, 버스 A BUS 상의 데이터 값에 대한 지정으로 또는 소스로 사용할 수 있는 16비트 카운터이다. 루프 카운터(514)는 마이크로 코드 제어 워드의 비트(30)가 논리 2의 값을 가질 때 클럭 신호 CKB와 동시에 저감된다. 상기 카운터는 반복 루프에서의 명령이 마이크로 코드 순차기(226)에 의해 수행되는 수를 카운트하는데 사용된다.
일반적인 동작 모드에서, 버스 A BUS 및 B BUS는 상호 독립적이다. 그러나, 비디오 신호 처리기(210)는 상기 두 개의 버스가 단일 버스로 결합되는 상태에서 위치된다. 상기 모드는 정지 모드이다. 처리기(210)는 마이크로 프로세서(224)에 의하여 정지 모드상에 위치된다. 마이크로 프로세서(224)에 의해 제공된 정지 신호는 두 버스를 결합시키는 양방향 게이팅 회로(520)에 필요하다. 상기 모드에서, 마이크로 프로세서(224)는 소스 또는 수신지로서 결합된 버스상에서 레지스터를 엑세스 할 수 있다. 상기 특징은 비디오 신호 처리기(210)를 시험하여 마이크로 프로세서(224)는 예정된 상태에서 시작할 수 있도록 처리기(210)를 구성하는 것을 허용한다. 본 발명의 양호한 실시예에 도시되지 않았지만 선택적으로 버스 게이트(520)는 마이크로 코드 제어 워드, 예를 들면 비트(47)에서 비트에 의해 제어될 수 있다. 마이크로 코드 명령 제어하에서, 게이트(520)는 데이터 전송을 효과적으로 하도록 버스 A BUS 및 B BUS가 결합한 상태로 있으며, 상기 데이터는 버스중의 하나를 다른 버스에 결합된 수신지에 제공된다.
네 개의 목적 레지스터 R0, R1, R2 및 R3를 부가하며, 비디오 신호 처리기(210)는 데이터 값의 임시 저장을 위하여 데이터 RAM 회로(228)를 사용한다. 제6도는 본 발명의 실시예가 사용된 데이터 RAM 회로(228)를 상세하게 도시하는 블록 다이어그램이다. 데이터 RAM 회로(228)는 네 개의 어드레스 레지스터 DR0, DR1, DR2 및 DR3를 포함하는 16비트 RAM(601), 레지스터 파일(612), 증가/감소 회로(622) 및 제어 회로(614)를 포함한다. 제어 회로(614)는 RAM(610)에서 데이터를 전송하며 레지스터 파일(612)의 여러 레지스터에서 어드레스 값을 증가 또는 감소시키며 로딩하도록 마이크로 코드 제어 워드의 필드 A SRC, A DST, B SRC 및 B DST에 응답한다.
정상 운영에서, 마이크로 코드 제어 워드의 관련 필드는 버스 MCW를 통해 제어 회로(614)에 인가된다. RAM(610)를 엑세스하기 위한 어드레스를 나타내는 값은 예를 들면 ALU 회로(24)에 의해 버스 A BUS의 8개 LSB 위치로써 멀티플렉서(616)의 한 입력 포트에 인가된다. 멀티플렉서(616)의 다른 입력 포트는 전술한 바와 같이 증가/감소 회로(622)에 의해 발생된 8-비트 어드레스 값을 수신하도록 결합된다. 레지스터(DR0 내지 DR3)는 8-비트 병렬-입력 병렬-출력 레지스터이며, 각각 신호 L0, L1, L2 및 L3에 의해 입력 포트에 인가된 값을 로드시키는 상태가 된다. 레지스터(DR0 내지 R3)에 의해 제공된 출력 값은 각각 멀티플렉서(618)의 다른 입력 포트에 인가된다. 제어 회로(614)에 의해 제공된 제어 신호 MC2는 멀티플렉서(618)가 레지스터(CR0 내지 DR3)에 의해 고정된 어드레스 값중 하나를 8-비트 어드레스 레지스터(620)의 입력, 포트에 인가시키도록 한다. 어드레스 값은 제어 회로(614)에 의해 제공된 제어 신호 LA에 응답하여 어드레스 레지스터(620)에 로드된다. 레지스터(620)에서 고정된 어드레스 값은 RAM(610)의 어드레스 및 증가/감소 회로(622)의 입력 포트에 인가된다. 회로(622)는 입력 포트에 인가된 어드레스 값을 증가 또는 감소시키며 상기 기술된 바와 같이 멀티플렉서(616)의 제2입력 포트에 상기 수정된 어드레스 값을 제공하도록 제어 회로(614)에 의해 제공된 신호 I/D로 제어된다.
멀티플렉서(618)에 의해 제공된 어드레스 값은 3-상태 게이트(619)를 통해 버스 A BUS에 인가된다. 신호 RO에 응답하여 제어 회로(614)에 제공된 게이트(619)는 멀티플렉서(618) 및 소스(621) 또는 하이 임피던스에 제공된 16-비트 값을 버스 A BUS에 인가된다. 게이트(619)는 레지스터(CR0 내지 CR3)에 의해 고정된 값이 8-비트 데이터 값으로 버스 A BUS에 인가되는 것을 허용한다.
버스 A BUS에 인가된 값의 8MSB는 제로로 세트된다. 버스 MCW를 통해 제공된 마이크로 코드 제어 워드의 A SRC 필드가 버스 A BUS를 통해 전송되는 데이터 값 소스로 레지스터(CR0 내지 DR3)중 하나를 표시할 때 신호 RO는 게이트(619)가 값을 버스 A BUS에 인가하도록 한다.
RAM(610)에 기억된 데이터 값은 두 개의 16-비트 버스 A BUS 및 B BUS를 통해 데이터 RAM 회로(228)에 인가된다. 16-비트 3-상태 게이트(624)는 버스 A BUS 또는 하이 임피던스로부터 RAM(610)의 I/O 버스까지 데이터 값을 인가하도록 제어 회로(614)에 의해 발생된 신호 AIN에 응답한다. 항등 게이트(626)는 버스 B BUS 또는 하이 임피던스로부터 데이터 값을 RAM(610)의 I/O 버스에 선택적으로 인가하도록 제어 회로(614)에 의해 발생된 신호 BIN에 응답한다.
RAM(610)의 I/D 버스에 인가된 데이터 값은 어드레스 레지스터(620)에서 고정된 어드레스 값으로 어드레스되는 데이터 셀에 기록된다. 제어 회로(614)는 기록 가능 신호 WE를 발생하며, 상기 신호는 주어진 메모리 주기동안 RAM(610)이 어드레스된 셀에 데이터 값을 기록하도록 한다.
데이터 값은 메모리 주기의 최소한 한 부분동안 논리 제로 상태에서 신호 WE를 홀딩함으로써 RAM(610)의 어드레스된 셀로부터 판독된다. RAM(610)으로부터 판독된 값은 각각 게이트(628,630)를 통해 버스 A BUS 및 B BUS의 하나 또는 양쪽에 인가된다. 게이트(628,630)는 게이트(624,626)와 동일하며, 그들은 제어 회로(614)에 의해 제공된 신호 AOUT 및 BOUT에 각각 응답하며, I/O 버스 또는 하이 임피던스를 통해 RAM에 의해 제공된 출력 값을 각각 A BUS 및 B BUS에 인가된다.
상기 기술된 바와 같이, 데이터 RAM 회로(228)에 의해 수행된 동작은 마이크로 코드 제어 워드의 필드 A SRC, A DST, B SRC 및 B DST의 값에 의해 결정된다. 표 4는 상기 제개의 필드 값에 응답하여 수행되는 동작을 나타낸다.
Figure kpo00009
표 4에서 기능은 비디오 신호 처리기(210)용 마이크로 코드 제어 워드를 발생하는데 사용되는 어셈블리 언어로써 인코드된 레지스터 네임을 선행하는 별표(*)는 기록 또는 판독된 값이 레지스터에서 고정된 값으로 어드레스되는 RAM셀로부터 전송되는 값을 나타낸다. 선행하는 별표가 없다면, 판독 또는 기록된 값은 네임드 레지스터에 고정된 8-비트 값이다. 레지스터 네임 다음의 ++ 및 --는 어드레스된 메모리셀이 엑세스된 후 레지스터내 값이 각각 증가 또는 감소되는 것을 표시한다.
인코드된 동작이 A SRC 또는 B SRC 칼럼 상태에 있다면, 그때 동작은 판독 동작이고 출력 값은 각각 버스 A BUS 또는 B BUS상에 게이트된다. 인코드된 동작이 A DST 또는 B DST 칼럼 상태에 있다면, 그때 동작은 기록 동작이고 입력 값은 각각 버스 A BUS 및 B BUS에 의해 제공된다.
제7A 내지 7e도는 마이크로 코드 제어 워드의 필드 A SRC, A DST, B SRC 및 B DST의 다른 값에 응답하여 제어 회로(614)에 의해 제공된 여러 가지 신호를 도시하는 타이밍 다이어그램이다. 양호한 실시예를 위해 다른 타이밍 다이어그램과 비교를 제공하도록 마이크로 코드 RAM 및 순차 회로(226)에 의해 제공된 클럭 신호 CKA는 제7a 내지 7e도의 타이밍 다이어드램에 각각 도시된다.
제7a도는 버스 A BUS로부터 레지스터 DR0(즉, A DST=28)까지 8-비트 값을 기록하는 요구에 응답하며 제어 회로(614)에 의해 발생된 여러 신호의 타이밍을 도시한다. 명령 주기내 예정된 시간에서 레지스터 DR0내에 기록된 값 VAL은 버스 A BUS에 인가된다. 상기 명령 주기 동안, 제어 회로(614)는 버스 A BUS이 8LSB 위치에 의해 운반된 값이 레지스터(DR0 내지 DR3)의 입력 포트에 인가하도록 멀티플렉서(616)를 조건화하는 논리 제로 값에서 신호 MC1를 홀드한다. 버스 A BUS에 인가된 값이 안정화될 때, 제어 회로(614)는 입력 포트에 인가된 값을 로드시키며 레지스터 DR0에 신호 LO를 펄스한다. 레지스터 DR1, DR2 및 DR3를 로딩시키는 명령은 유사하며, 유일한 차이는 각 신호 L1, L2 또는 L3중 하나가 제7a도에 도시된 바와 같이 신호 LD 대신에 펄스되는 것이다.
제7b도는 버스 A BUS(즉, A SRC=28)의 8LSB 위치가 레지스터 DR0에서 고정된 값을 전달하도록 제어 회로(614)에 의해 발생된 신호를 나타내는 타이밍 다이어그램이다. 명령 주기의 시작후 짧은 시간 주기에서, 제어 회로(614)는 제로 값을 가지는 신호 MC2를 변화시킨다. 상기 신호는 멀티플렉서(618)가 게이트(619)의 입력 포트에 레지스터 DR0에서 고정된 값을 제공하도록 한다. 신호 MC2를 변화시킨 후, 제어 회로(614)는 신호 RO로서 논리-1를 게이트(619)에 인가한다. 상기 신호는 게이트(619)가 버스 A BUS의 8LSB 위치에 레지스터 RO에서 고정된 값을 인가시키며, 버스 A BUS의 8LSB 위치에 제로 값을 인가시킨다.
이 레지스터 DR1, DR2 또는 DR3에서 유사한 신호 변화 순차를 사용하여 판독되며, 유일한 차이는 MC2의 값이 제7b도에 도시된 바와 같이 제로 대신에 각각 1, 2 또는 3인 것이다.
제7c도는 레지스터 DR0(즉, A SRC=16)에서 고정된 어드레스 값에 의해 어드레스되는 RAM(610)에서 메모리 셀로부터 값을 판독하는데 사용되는 여러 가지 신호의 타이밍을 도시한다. 상기 동작을 위하여, 맨처음, 제어 회로(614)는 제로 값을 가지는 신호 MC2를 변화시키며 멀티플렉서(618)가 DR0에 의해 고정된 어드레스 값을 어드레스 레지스터(620)의 입력 포트에 인가하는 상태가 된다. 상기 신호가 인정화될 때, 제어회로(614)는 어드레스 레지스터(610)내로 어드레스 값을 로드시키도록 신호 L를 펄스한다. 어드레스 값이 RAM(610)의 어드레스 디코딩 논리를 통해 전파될 때, 어드레스된 값은 RAM(610)의 I/O 버스에서 이용할수 있다. 그때 제어 회로(614)는 신호 AOUT의 값을 논리 -1로 변화시킴으로써 버스 A BUS 상에서 상기 값을 게이트한다. 레지스터 DR1에 의해 어드레스된 값은 신호 MC2의 값이 제로 대신에 하나인 것을 제외하고 동일 명령 순차를 사용하여 판독된다. 본 발명이 실시예에서, 레지스터 DR2 또는 DR3에 의해 어드레스되는 RAM(610)에서 데이터는 버스 B BUS를 통해서만 판독된다. 상기 값을 판독하는 신호의 순차는 제7c도에서 MC2 값을 각각 2 또는 3으로 변화시킴으로써 또는 신호 AOUT 대신에 게이팅 신호 BOUT를 사용함으로써 변화된다.
제7d도는 레지스터 DR2(즉, B SRC=2)에서 고정된 어드레스 값을 갖는 RAM(610)의 셀에 버스 B BUS에 입력 제공된 값을 기록하도록 데이터 RAM 회로(228)를 나타내는 제어 신호를 도시한다. 상기 동작 제1단계에서, 제어 회로(614)는 신호 MC2의 값을 두 개로 변화시킨다. 이것은 멀티플렉서(618)가 레지스터 DR2에서 고정된 어드레스 값을 어드레스 레지스터(620)의 입력 포트에 인가하도록 한다. 어드레스 값이 안정화될 때, 제어 회로(614)는 입력 포트에 인가된 값을 로드시키도록 어드레스 레지스터(620)에 신호 LA를 펄스한다. RAM(610)에 인가된 어드레스 값이 안정화될 때, 제어 회로(614)는 신호 BIN를 논리 -1값으로 변화시키며 게이트(626)가 RAM(610)의 I/O/ 버스에 버스 B BUS상에서의 값을 인가시키는 상태가 된다. 안정 주기후, 제어 회로(614)는 어드레스 입력 포트에 인가된 어드레스 값을 갖는 셀에 I/O버스상에서 이 데이터를 기록시키도록 RAM(610)에 신호 WE를 펄스한다. DR3에서 어드레스 값을 사용하며 버스 B BUS로부터 RAM(610)까지 데이터 값을 기록하는데 사용되는 신호는 신호 MC2가 둘보다 큰 셋 값을 갖는 것을 제외하고 제7d도에 도시된 바와 동일하다. 본 발명의 양호한 실시예에서, 버스 A BUS상에서 데이터를 사용하는 메모리 기록 동작은 레지스터 DR0 및 DR1만을 사용한다. 계속하여, 상기 동작 CA DST=28 또는29)에 사용되는 신호를 표시하기 위하여, 제7d도는 다음과 같이 변화된다. 신호 B BUS는 신호 A BUS로 되며, 신호 MC2의 값은 각각 0 또는 1이며 신호 BIN는 신호 AIN으로 된다.
제7e도는 데이터 값이 기억된 후 어드레스 값이 증가되는 것을 제외하고 제7d도와 동일 동작을 나타낸다. 필드 B DST에서 값이 4일 때 상기 동작은 시작된다. 신호 B BUS, MC2, LA, BIN 및 WE는 제7d도와 연관되어 동일하다. 부가하여 신호 BIN의 값을 변화시킨 후, 제어 회로(614)는 논리 1값을 가지는 신호 I/O를 변화시킨다. 상기 신호는 증가/감소 회로(622)가 어드레스 레지스터(620)에서 고정된 값을 증가시키도록하여 멀티플렉서(616)의 제2입력 포트에 나머지 신호를 인가시키도록 한다. 상기 값이 안정화될 때, 제어회로(614)는 레지스터(DR0 내지 DR2)에 증가된 어드레스 값을 닉가하도록 신호 MC1를 펄스한다. 제어 회로(614)는 신호 L2를 펄스하며, 한편, 논리 1상태에서, 신호 MC1는 레지스터 DR2에 증가된 어드레스 값을 로드시킨다.
명령 주기를 통해 논리 제로에서 신호 I/O의 값을 홀딩함으로써, 제7e도에 도시된 신호는 값을 증가시키는 대신에 어드레스 값을 감소시키도록 변경될 수 있다.
레지스터 DR0, DR1 및 DR3를 사용하는 기록 동작용 신호는 제7d 도를 참조하여 상기 기술된 바와 같이 신호 B BUS, MC2 및 BIN를 수정함으로써 제7e도에 기초되며 얻어진다. 또한, 판독 - 및- 증가 동작(A SRC=18,19 및 B SRC=4,5) 및 판독 - 및- 감소 동작(A SRC=20,21 및 B SRC=6,7)용으로 사용된 신호는 적절한 수정으로 제7e도로부터의 신호 MC1, I/O 및 L2를 제7c도에 도시된 신호에 인가함으로써 얻어진다.
본 발명의 실시예에서, 제7a도 내지 제7e도에 도시된 펄스 신호는 소스(225)에 의해 데이터 RAM 회로(228)에 제공된 25MHz 신호 CLK의 펄스를 선택적으로 게이팅함으로써 발생되고, 캐소드-접속 케이팅 소자를 통해 게이트된 클럭 펄스를 지연시킴으로써 발생된다. 클럭 신호 CLK가 제어 신호를 발생하는데 사용된다 할지라도, 데이터 RAM 회로(228)는 클럭 신호가 PAUSE 또는 HALT 명령에 의해 동결될 때 그것의 동작을 중지시키도록 클럭 신호 CK및 CK에 응답한다.
제6도 및 제7a도내지 제7e도와 관련 기술을 사용하여 디지탈 신호 처리 회로 디자인의 기술에 익숙한 사람은 데이터 RAM 회로(228)에 사용하기 위한 적합한 제어 회로(614)를 구성할 수 있다.
제1b도를 참조하여 상기 기술된 바와 같이, 영상 세그먼트는 이전 영상으로부터 대응 세그먼트는 수정으로 인코드될 수 있다. 인코딩으로 불리우는 상기 형태는 두 세그먼트(예를 들면, 제1b도로부터 △X 및 △Y)에서 대응 화소 위치 사이 수평 및 수직 방향으로 오프세트를 기술하는 파라매터를 포함한다. 상술된 바와 같이, 상기 오프세트 값은 인접 화소 사이의 거리이다. 화소 오프세트 값의 부분이 제로가 아닌 영상을 적절하게 디코드하기 위하여, 비디오 신호 처리기(I/O)는 이전 필드에서 세그먼트 화소로 가상 화소를 발생하는 회로를 포함한다. 상기 가상 화소는 오프세트 값을 가진다. 본 발명의 양호한 실시예에서, 가상 화소는 화소 보간기(246)에 의해 발생된다.
화소 보간기(246)는 수직 방향으로 보간된 화소에 대응하는 중간 값 쌍을 계산 및 기억시키도록 구성된다. 상기 중간 값쌍은 보간기에 제공되여 연속적인 중간 값으로 동작하며, 수평 및 수직적으로 보간된 화소 값을 발생하도록 수평 보간을 수행한다. 다른 한편으로, 화소 보간기(246)는 출력 가상 화소 값을 발생하도록 비월 주사된 수직 및 수평 보간 계산을 수행한다.
제8a도는 화소 보간기(246)로 사용하기 적합한 회로를 도시하는 블록 다이어그램이다. 제8a도에서, 16-비트 A BUS는 레지스터(802,812)의 각 입력 포트에 결합되며, 데이터 RAM(228)으로부터 각각 화소 데이터를 제공하며, ALU(244)로부터 화소 보간기(246)까지 값을 제어한다. 마이크로 코드 제어 워드의 A DST필드가 각각 4 또는 5값을 가질 때, 레지스터(802,812)는 버스 A BUS로부터 값을 로드시킨다. 마이크로 코드 제어 워드는 제어 버스 MCW를 통해 화소 보간기(246)에 인가된다. 레지스터(812)는 상술한 바와 같이 화소 보간기(246)의 여러 성분 부분을 위한 제어 신호를 발생하는 제어 회로(814)에 접속된다.
A DST 필드가 S값을 가질 때 레지스터(802)에 로드된 16-비트 값은 입력 비디오 신호의 수평 라인에서 연속적인 위치를 갖는 두 개의 8-비트 화소 값으로 화소 보간기(246)에 의해 해석된다. 신호 LR0 및 LR1에 응답하여, 레지스터(802)에 보유된 값이 각각의 16비트 레지스터(804 및 806)에 교대로 전달된다. 화소 보간기(246)의 정상적인 작동중에, 레지스터(802)에 인가된 교호 값은 입력 비디오 신호의 연속한 라인으로부터의 샘플의 대응하는 쌍이다. 예를 들어, 삼각형이 입력 비디오 신호의 화소를 나타내고 있는 제9a도에서, 레지스터(802)에 인가된 제1값을 화소 SO및 SO을 나타내는 값을 포함하게 된다. 레지스터에 인가되고 그 다음 연속적 값은 비디오 신호의 그 다음 라인으로부터의 대응하는 화소 값인, 화소 S및 S을 나타내는 값을 포함하게 된다.
제9a도 내지 제9c도를 참조하여 후술되게 되는 바와 같이, 수평으로 인접한 화소 값으로부터 레지스터(804,806)에 저장된 화소 쌍을 수직으로 인접한 화소 값의 쌍으로 변환시키는 것이 화소 보간기에 대해 바람직하다. 이 목적을 위해, 레지스터(804,806)의 8개의 MSB 위치가 레지스터(808)의 8개의 MSB 위치와 8개의 LSB 위치에 각각 결합되고, 상기 레지스터(804,806)의 8개의 LSB 위치는 레지스터(810)의 8개의 MSB 위치와 8개의 LSB 위치에 각각 결합된다.
레지스터(808,810)는 제어 회로(814)에 의해 제공되는 신호 XF에 의해 그 입력 단자에 인가된 값을 로드하도록 조절된다. 전술한 예에서, 레지스터(808,810)는 제어 회로 (814)가 신호 XF를 펄스화한 바로 후에 각각의 화소 값 쌍 S, S및 S, S을 포함하고 있다.
레지스터(808,810)에 의해 제공되는 16비트 값은 멀티플렉서(811)의 각각 다른 입력 단자에 인가된다.
멀티플렉서(811)는 그 입력 단자중 선택된 단자에 인가되는 16비트 값을 멀티플렉서(816,818)로 통과시키도록, 제어 회로(814)에 의해 제공되는 신호 MV에 의해 조절된다. 상기 멀티플렉서(811)의 출력 값의 8개의 MSB 위치는 멀티플렉서(816)의 입력 단자에 인가된다. 상기 멀티플렉서(811)의 출력 값의 8개의 LSB위치는 멀티플렉서(818)의 대응하는 입력 단자에 인가된다.
멀티플렉서(816,818)는 제어 회로(814)에 의해 제공되는 신호 ML에 의해, 멀티플렉서(811)에 의해 제공된 2개의 화소 값이나, 또는 각각의 멀티플렉서(861,863)에 의해 제공된 2개의 8비트의 수직으로 보간된 화소 값을 통과시키도록 조절된다. 상기 멀티플렉서(816,818)에 의해 통과된 화소 값은 레지스터(820,822)에 각각 인가된다.
이 레지스터(820,822)는 마이크로 코드 RAM 및 순차 회로(226)에 의해 제공되는 클럭 신호 CK에 응답하여, 그 각각의 입력 단자에 인가되는 값을 로드하게 된다. 레지스터(822)에 보유된 화소 값은 감산기(824)에 의해 레지스터(820)에 보유된 화소 값으로부터 감산된다. 감산기(824)에 의해 발생된 화소 차 값은 증배기 회뢰(825)에 인가된다.
본 발명의 본 실시예에 사용된 증배기(825)는 프로그램 가능한 시프트-앤드-애드(shift-and add)형태의 증배기이다. 증배기(825)로서 사용하기 적합한 회로가 제8b도에 도시되어 있다. 증배될 값은 2개의 데이터 통로에 인가되는데, 각각의 통로는 3개의 직력 결합된 시프터-멀티플렉서 쌍을 포함하고 있다. 제1 및 제2데이타 통로는 모두 9비트 값을 나른다. 감산기(824)에 의해 제공되는 8배트 값은 시프트(826,840) 및 멀티플렉서(828,842)에 인가된 9비트 값의 8개의 MSB 위치로서 인가된다. 이 값의 LSB는 제로이다. 시프트-앤드-애드 증배 기술로 인해 발생할 수도 있는 트렁케이션 에러를 완화시키기 위해 증배기(825)에 정밀도의 여분 비트가 사용된다.
제1데이타 통로는 감산기(824)에 의해 제공되는 화소 차 값을 수신하고 멀티플렉서(828)의 한 입력 단자에 이 값의 비트-시프트된 형태를 제공하도록 결합된 시프트(826)를 포함하고 있다. 상기 멀티플렉서(828)의 다른 입력 단자는 감산기(824)의 출력 단자에 직접 결합된다. 시프트(826) 및 증배기(825)내의 각 시프터는 그 9비트 입력 값의 8개의 MSB 위치를 9비트 출력 값의 8개의 LSB 위치로서 제공한다. 상기 출력 값의 MSB 위치에는 논리-제로 값이 삽입된다. 디지탈 신호 처리 회로 설계 기술에 숙련된 사람인 이런 형태의 시프트를 2로의 분할의 등가로서 인식하게 된다. 멀티플렉서(828)는 제어회로(814)에 의해 제공된 신호 MA에 의해 그 출력 단자에서 시프트된 값이나 같은 시프트되지 않을 값을 제공하도록 조절된다. 멀티플렉서(828)의 출력 단자는 시프트(830)의 입력 단자와 멀티플렉서(832)의 한 입력 단자에 결합된다. 상기 시프터(830) 및 멀티플렉서(832)는 시프터(826) 및 멀티플렉서(828)와 동일한 구성으로 되어 있다. 멀티플렉서(832)는 멀티플렉서(828)의 출력 값이나 이 출력 값의 비트_시프트된 형태를 선택적으로 제공하도록 신호 MA에 의해 제어된다. 상기 멀티플렉서(832)는 시프터(830) 및 멀키플렉서(832)와 동일한 구성으로 되어 있는 시프터(834) 및 멀티 플렉서(836)에 그 출력 값을 제공하도록 결합된다. 상기 멀티플렉서(836)는 제어 회로(814)에 의해 제공되는 신호에 의해 제공된다.
제2데이타 통로는 제1데이타 통로에서의 시프터-멀티플렉서 쌍과 동일한 방식으로 각각 구성된 3개의 시프터-멀티플렉서 쌍(840,842와 844,846 및 848,850)을 포함하고 있다. 상기 멀티플렉서(842,846,850)는 각각의 신호 MB, MB, MB에 의해 제어된다.
멀티플렉서(850)에 의해 제공된 출력 값은 선택적 2의 상보 회로(852)에 인가된다. 이 회로(852)는 제어회로(814)에 의해 제공된 신호 CP에 의해, 그 입력 값이나 또는 그 입력 값의 2의 보수를 레지스터(854)의 입력 단자에 제공하도록 제어된다. 제1데이타 통로의 멀티플렉서(836)에 의해 제공된 출력 값은 레지스터(838)의 입력 단자에 직접 인가된다. 레지스터(818,854)는 모두 마이크로 코드 RAM 및 순차 회로(226)에 의해 제공되는 클럭 신호 CK에 응답하여 각각 입력 단자에 인가되는 값을 로드시키게 된다.
레지스터(838,854)에 의해 제공된 출력 값은 가산기(856)의 각각 다른 입력 단자에 결합된다. 가산기(856)에 의해 제공된 값은 증배기(825)의 출력 값이다.
신호 MA, MA, MA, MB, MB, MB및 CP의 값을 제어함으로써, 증배기(825)는 1/8의 단계에서의 1과 1/8사이의 값을 가진 축척 계수로 감산기(824)에 의해 제공되는 값을 증배시키도록 조절될 수도 있다. 표 5는 축척된 출력 값을 발생하는데 필요한 여러 제어 신호의 값을 리스트하고 있다. 표5에서, MA 또는 MB 신호중 하나에 대한 0의 제어 값은 시프트되지 않은 값을 통과시키도록 대응하는 멀티플렉서를 조절하며, 1의 제어 값은 시프트된 값을 통과시키도록 멀티플렉서를 조절한다. 신호 CP에 대한 1의 값은 그 입력 단자에 인가된 값을 상보하도록 선택적 2의 상보 회로(852)를 조절한다.
Figure kpo00010
신호 MA, MA, MA, MB, MB, MB및 CP의 값은 레지스터(812)에 의해 제공된 제어 값에 응답하여 제어 회로(814)에 의해 발생된다.
가산기(856)에 의해 제공되는 축적된 화소 차 값은 레지스터(857)에 의해 제공되는 화소 값에 가산된다. 레지스터(857)에 보유된 화소 값은 마이크로 코드 RAM 및 순차 회로(226)에 의해 제공되는 클럭 신호 CK와 동기하여 레지스터(822)로부터 로드된다. 감산기(814)와 증배기(825) 및 가산기(856,858)에 의해 수행되는 기능은 방정식(2)으로 표현될 수도 있다.
Figure kpo00011
여기서 A와 B는 각각의 레지스터(820,822)에 보유된 화소 값이다. SF는 예를들어, 제어 값에서 한 필드로서 ALU(244)에 의해 제공되는 레지스터(812)에 보유된 축척 계수 값이다. 축척 계수 SF는 MA, MB 및 CP 신호를 통해 증배기(825)에 제공된다. R은 가산기(858)에 의해 제공된 값이다. 방정식(2)의 대수학적 처리는 종래의 선형 보간 동작을 나타내는 방정식(3)을 만들게된다.
Figure kpo00012
그러므로, 감산기(824)와 증배기(825) 및 가산기(856,858)의 조합이 선형 보간기이다.
가산기(858)에 의해 제공된 값은 레지스터(860,862)의 각 입력 단자와 각 멀티플렉서(861,863)의 제1입력단자에 인가된다. 상기 멀티플렉서(861,863)의 제2입력 단자는 레지스터(860,862)의 각 출력 단자에 결합된다. 각 클럭 신호 ψ2및 ψ1의 네가티브-진행 변이와 동시에 그 각각의 입력 단자에 인가된 값을 로드시킨다. 상기 멀티플렉서(861,863)는 각각의 클럭 신호 ψ2및 ψ1가 논리 -1값을 가지면 가산기(858)에 의해 제공된 값을 각 멀티플렉서(816,818)로 통과시키고, 그렇지 않으면 각 레지스터(860,862)에 보유된 값을 통과시킨다. 레지스터(860,862)와 멀티플렉서(861,863)의 이 구성은 레지스터(860,862)나 또는 레지스터(862, 822)로 가산기(858)에 의해 발생된 값을 동시에 로딩시키는 것을 가능하게 한다. 이 성능의 중요성은 제9c도를 참조하여 후술된다.
상기 가산기(858)에 의해 제공된 화소 값은 또한 16비트 레지스터(864)의 8MSB와 8LSB 비트 위치 모두에 결합된다. 상기 레지스터(864)의 8MSB 위치는 제어 회로 (814)에 의해 제공되는 신호 L1와 동시에 로드되며, 레지스터(864)의 8LSB 위츠는 상기 제어 회로(814)에 의해 제공되는 신호 L0와 동시에 로드된다. 상기 레지스터(864)에 보유된 화소 값은 제어 회로(814)에 의해 제공되는 신호 XO에 응답하여 레지스터(866)에 전달된다. 다음에 이 화소 값은 버스 MCW를 통해 레지스터(866)에 인가된 마이크로 코드 제어 워드의 A SRC 필드의 제어하에 레지스터(866)로부터 버스 A BUS에 인가된다.
비디오 신호 처리기(210)의 성분부로서 정상중인 작동중에, 화소 보간기(246)는 현재 영상에 대한 화소값을 발생하는데 있어서의 한 단계로서, 이전 영상의 화소 값으로부터 보간된 의사-화소 값을 발생한다. 제9a도 내지 제9c도는 상기 회로(246)의 작동을 도시하고 있다.
제9a도에서, 삼각형 점 S0내지 S7및 S10내지 S17는 이전 영상의 두 연속한 인으로부터의 대응하는 화소 값을 나타내는데, 이것은 입력 FIFO(232)와 데이터 통로(242)를 통해 VRAM(216)내의 비트-맵으로부터 제공된다. 원형 점 I0내지 I6은 보간된 의사-화소 값을 나타낸다. 제9a도에 도시된 바와 같이, 보간된 화소 값은 이전의 영상내의 화소에 대해, 수평으로 화소간 거리의 1/4과 수직으로 화소간 거리의 5/8만큼 오프셋된다.
제9b도는 화소 보간기(246)가 의사-화소 값 I0을 제공하기 위해 버스 A BUS에 인가되는 데이터 값에 의해 어떻게 제어되는지를 도시하고 있다. 제9b도에서, 시간 간격 T0내지 T16은 비디오 신호 처리기(210)의 17개의 연속한 명령 사이클을 나타낸다. 명령 사이클 동안에, 마이크로 코드 제어 워드의 필드 A DST는, 예를들어 버스 A BUS를 통해 ALU(244)로부터 제공되는 16비트 제어 값을 로드시키도록 화소 소간기(246)를 조절하는 4의 값을 갖는다. 이 16비트 제어 값의 8MSB 위치는 화소 보간기(246)로 하여금 그동위상 모드에서 작동하도록 조절한다. 이 모드에서, 입력 화소 값 및 그 대응하는 출력 화소 값은 모두 VRAM(216)에서 우수 어드레스를 갖는다. 화소 보간기(246)는 상이한 위상 모드에서 작동할 수도 있다. 상이한 위상 모드에서, 입력 화소 어드레스 및 출력 화소 어드레스는 우수이다. 시간 T0에서 화소 보간기에 인가된 제어 값은 또한 비트 0 내지 3 및 4내지 7에서의 값 5와 2를 각각 포함한다. 값 2는 수평 방향으로의 오프셋 또는 축척 계수 2/8 또는 1/4에 대응하며, 수직 방향으로의 5/8의 오프셋에 대응한다. 본 예에서, 값 5와 2는 제1b도에 도시된 바와 같은 상대 코드 기록의 값 △X 및 △Y의 분수부로부터 얻어진다.
명령 사이클 T1및 T2동안에, 마이크로 코드 제어 워드의 A DST 필드는 5의 값을 갖고 있으며, 화소값 쌍 S0, S1및 S10, S11은 각각 화소 보간기(246)의 레지스터(802)에 인가된다. 명령 사이클 T3동안에는 화소 보간기(246)에 관련된 버스 A BUS에 대한 활동이 없다. 명령 엣지는, 보간된 화소 값(X,X)의 무효쌍이 화소 보간기(246)의 출력 단자에서 이용 가능하다. 이들 값은 비디오 신호 처리 회로(210)에 의해 무시된다.
명령 사이클 T5및 T6에서 각각의 화소 쌍 S2, S3및 S12, S13은 화소 보간기(246)의 레지스터(802)에 인가된다. 명령 사이클 T7동안에는 화소 보간기(246)에 대한 버스 A BUS 상의 활동은 없다. 명령 사이클 T8동안에, 보간된 화소 값의 제2무효쌍이 화소 보간기(246)의 츨력 단자에서 이용 가능한데, 이 값도 무시된다. 명령 사이클 T9및 T10동안에, 각각의 화소 값쌍 S4, S5및 S14, S15는 화소 보간기(246)의 레지스터(802)에 인가된다. 명령 사이클 T11에서, 화소 보간기와 관련된 버스 A BUS 상의 활동은 없다. 명령 사이클 T12동안에, 마이크로 코드 제어 워드의 A SRC 필드는 버스 A BUS에 보간된 화소 값 I0및 I1을 나타내는 16비트 값을 인가하기 위해 화소 보간기(246)를 조절하는 5의 값을 가진다.
명령 사이클 T13내지 T16은 명령 사이클 T9내지 T12과 유사하며, 오직 차이는 화소 보간기(246)에 인가 되고 그것에 의해 제공되는 화소 값이다. 일반적으로, 마이크로 코드 순차 회로(226)는 모든 원하는 보간된 의사-화소 값을 발생하는데 필요한 횟수만큼 상이한 입력 및 출력 화소 값을 이용하여 명령 사이클 T9내지 T12에서 작동을 반복한다.
본 발명의 이 실시예에 사용된 화소 보간기(246)는 높게 파이프 라인된 장치이다. 파이프 라인 지연은 11명령 사이클, 즉 T1에서의 제1입력 값의 인가와 T12에서의 제1유효 출력 값의 제공 사이의 지연이다.
제9c도는 제9b도에서 기술된 예에서 제어 회로(814)에 의해 발생된 여러 신호의 타이밍을 도시하는 신호 타이밍도이다. 신호 CKA및 CKB는 한 명령 사이클 시간과 거의 동일한 주기를 가진 반-위상 클럭 신호이다. 클럭 신호 CKA및 CKB는 마이크로 코드 RAM 및 순차 회로(226)에 의해 화소 보간기에 인가된다.
제8도에 도시된 화소 보간기 회로에 사용된 모든 레지스터는 네가티브-엣지 트리거된다. 다시말해, 이 레지스터는 그 각각의 클럭 또는 로드 신호의 네가티브-진행 변이와 동시에 그 입력 단자에 인가된 값을 로드시키도록 조절된다. 제8도의 레지스터는 클럭 신호 CKA나 또는 클럭 신호 CKB에 동기화된다.
제9b도 및 제9c도를 참조하면, 화소 보간기에 대한 제어 값이 신호 CKA의 네가티브-진행 변이와 동시에 명령 사이클 T0동안에 레지스터(812)로 로드된다. 이 값은 각각 의 신호 MA1, MA2, MA3, MB1, MB2, MB3및 CP에 대한 값 1, 0, 0, 1, 1, 1 및 0을 인가하기 위해 상기 회로(814)를 조절하는 명령 사이클 T0의 끝에 의해 제어 회로(814)에 안정화한다. 이들 값은 수직으로 정령된 화소 값의 쌍 사이를 보간하기 위해 본 실시예에 사용된 축척 계수인 5/8의 축척 계수에 대응한다.
화소 값의 제1쌍 S0및 S1은 신호 CKA의 네가티브-진행 변이와 동시에 명령 사이클 T1동안 레지스터(802)로 로드된다. 이들 화소 값은 신호 LR0의 네가티브-진행 엣지와 동시에 명령 사이클 T1의 끝에서 레지스터(806)에 전달된다.
화소 값의 제2쌍 S10및 S11은 명령 사이클 T2동안에 발생하는 클럭 신호 CKA의 네가티브-진행 변이와 동시에 레지스터(802)로 로드된다. 이들 화소 값은 명령 사이클 T2의 끝에서 발생하는, 신호 LR1의 네가티브 지행 변이와 동시에 레지스터(804)로 전달된다.
명령 사이클 T3동안에, 레지스터(804,806)의 8MSB 위치에 보유된 화소 값은 레지스터(808)의 각각의 8MSB와 8LSB 위치에 전달되며, 상기 레지스터(804,806)의 8MSB 위치에 보유된 화소 값은 레지스터(810)의 각각의 8MSB 및 8LSB 위치에 전달된다. 이 전달은 신호 XF의 네가티브-진행 변이와 동시에 발생한다. 이 전달의 효과는 각각의 레지스터(804,806)에서 수직으로 정령된 화소 값의 쌍 S0, S1및 S10, S11을 레지스터(808,810)에서 수직으로 정렬된 화소 값의 쌍 S10, S11및 S0, S1으로 각각 변환하는 것이다.
사이클 T4동안에, 제어 회로(814)는 신호 MA1내지 MA3, MB1내지 MB3및 CP를 5/8의 축척 계수와 일치하는 값을 갖도록 변화시킨다. 상기 제어 회로(814)는 또한 신호 MV로서 논리 1값과 신호 ML로서의 논리 0값을 발생하여, 신호 MV에 의해 제어되는 멀티플렉서(811)와 신호 ML에 의해 제어되는 멀티플렉서(816,818)로 하여금 레지스터(810)에 보유된 2개의 화소 갓은 레지스터(820,822)의 각 입력 단자에 결합시키도록 조절하게 된다. 신호 CKA의 네가티브 진행 엣지와 일치하여, 명령 사이클 T4동안에, 화소 값 S0은 레지스터(822)로 로드되고 화소 값 S10은 레지스터(820)로 로드된다. 명령 사이클 T4의 잔여 기간 동안에, 레지스터(820,822)에 보유된 값은 전술한 바와 같이, 감산기(824)와 즈배기(825)의 제1 및 제2데이타 통로를 통해 전파한다. 멀티플렉서(836)와 선택적 2의 상보 회로(852)에 의해 제공되는 축척된 화소 차 값은 명령 사이클 T4의 끝에서 발생하는 신호 CKB의 네가티브 진행 엣지와 일치하여 각 레지스터(838,854)로 로드된다. 이와 동시에, 레지스터(822)로부터의 화소 값 S0은 레지스터(857)로 로드된다.
명령 사이클 T5에서, 레지스터(838,854)에 보유된 화소 차 값이 가산기(856)에 의해 합산된다. 다음에, 그 합계는 레지스터(857)에 의해 제공되는 화소 값 S0에 가산기(858)에 의해 가산된다. 화소 값 S10의 5/8배와 화소 값 S0의 3/8배를 더한 값을 나타내는, 가산기(858)에 의해 제공된 합께는 신호 ψ1의 네가티브 진행 엣지와 동기하여 레지스터(862)에 저장된다.
또한 명령 사이클 T5동안에, 버스 A BUS를 통해 제공된 화소 값 S2및 S3은 레지스터(802)에 로드되고, 다음에 신호 LR0의 네가티브 진행 변이와 동시에 레지스터(806)로 전달된다.
명령 사이클 T6동안에, 화소 값 S12및 S13은 버스 A BUS에 인가되어 레지스터(802)에 로드되고 다음에, 신호 LR1의 네가티브 진행 변이와 동시에 레지스터(804)로 전달된다.
명령 사이클 T6의 중간점에서, 레지스터(808)에 보유된 화소값 S1및 S11은 멀티플렉서9811,816,818)를 통해 각 레지스터(822,820)에 인가되며, 신호 CKA의 네가티브 진행 변이에 응답하여 이들 레지스터에 로드된다. 이들 화소 값은 명령 사이클 T6의 잔여 기간과 명령 사이클 T7의 제1반부 도안에 감산기(824)와 증배기(825) 및 레지스터(857)와 가산기(858)를 통해 전파된다.
명령 사이클 T7의 제1반부 동안에, 각각의 레지스터(806,804)에 보유된 수평 정렬된 화소 값 S2, S3, 및 S12, S13이 명령 사이클 T7의 중간점에서 발생하는 신호 XF의 네가티브 진행 변이와 동시에 각 레지스터(810,808)에 저장되는 수직으로 정렬된 화소쌍 S2, S12및 S3, S13으로 변환된다.
명령 사이클 T7동안에 가산기(858)에 의해 제공된 수직 보간된 화소 값(S1, S11)은 레지스터(860)로 로드되고, 멀키플렉서(861,816)를 통해, 명령 사이클 T7의 중간점에서 발생하는 신호 CKA의 네가티브 진행 엣지와 동시에 레지스터(820)로 로드된다. 멀티플렉서(861)로 하여금 멀티플렉서(861)에 의해 제공되는 값을 레지스터(820)로 통과시키도록 조절하는 신호 ML은 또한 멀티플렉서(818)로 하여금 멀티플렉서(863)에 의헤 제공되는 수직 보간된 화소 값(S0, S10)을 레지스터(822)에 인가하도록 조절한다. 이 화소 값은 명령 사이클 T7의 중간점에서 발생하는 클럭 신호 CKA의 네가티브 진행 변이와 동시에 레지스터(822)로 로드되며, 신호 MA1내지 MA3, MB1내지 MB3및 신호 CP는 각각 1, 0, 0, 1, 1, 0 및 1의 값을 갖도록 변화된다. 이들 값은 1/4의 축척 계수에 대응한다. 명령 사이클 T7의 제2반부 및 명령 사이클 T8의 제1반부 동안에, 감산기(824)와 증배기(825) 및 가산기(858)는 화소 값 I0을 발생하기 위해 수직으로 보간된 화소 값으 쌍으로 부터의 화소 값을 수평으로 보간한다. 이 값은 명령 사이클 T8의 중간점에서 발생하는 신호 LO0의 네가티브 진행 엣지와 동시에 레지스터(864)의 8LSB 위치에 저장된다.
또한 명령 사이클 T8동안에, 레지스터(810)에 보유된 화소 값의 S2, S12는 멀티플렉서(811,816,818)를 통해 각 레지스터(822,820)에 전달된다. 이들 화소 값은 명령 사이클 T8의 중간점에서 발생하는 신호 CKA의 네가티브 진행 변이와 동시에 레지스터(822,820)로 로드된다. 명령 사이클 T8의 잔여기간 및 명령 사이클 T9의 제1반부 동안에, 감산기(824)와 증배기(825) 및 가산기(858)는 화소 값의 쌍 S2, S12으로부터 수직으로 보간된 화소 값을 계산한다. 이 보간된 화소 값은 명령 사이클 T9의 중간점에서 발생하는 각 신호 ψ1및 CKA의 네가티브 진행 변이와 동시에 레지스터(862,822)에 저장된다. 명령 사이클 T9의 잔여 기간과 명령 사이클 T10의 제1반부 동안에, 수평으로 보간된 화소 값 I1이 멀티플렉서(861,863)에 의해 제공되는 수직으로 보간된 화소 값으로부터 발생된다. 상기 신호 MA1내지 MA3의 MB1내지 MB3및 CPSMS 명령 사이클 T9동안에 각각 0, 0, 0, 1, 1, 0 및 1의 값을 갖도록 제어 회로(814)에 의해 셋트된다. 이들 값은 3/4의 축척 계수에 대응한다. 화소 값 I1은 명령 사이클 T10의 중간점에서 발생하는 신호 LO1의 네가티브 진행 변이와 동시에 레지스터(864)의 8MSB 위치에 저장된다. 화소 쌍 I0, I1은 신호 XO의 네가티브 진행 변이와 동시에, 명령 사이클 T10의 끝에서 레지스터(864)로부터 레지스터(866)로 전달된다.
또한 명령 사이클 T10의 중간점에서, 레지스터(808)에 보유된 화소 값 S3및 S13은 신호 CKA의 네가티브 진행 엣지와 동시에 각 레지스터(822,820)로 로드된다. 명령 사이클 T10의 잔여 기간 및 명령 사이클 T11의 제1반부 동안에, 수직으로 보간된 화소 값이 화소 값 S3및 S13으로부터 발생된다. 이 화소 값은 사이클 T11의 중간점에서 발생하는 각 신호 ψ2및 CKA의 네가티브 진행 변이와 동시에 레지스터(860,820)에 저장된다.
명령 사이클 T9및 T10동안에, 각각의 화소 쌍 S4, S5및 S14, S15이 각 레지스터(806,804)로 로드 된다. 명령 사이클 T11의 중간점에서, 이들 화소 값은 각 레지스터(810,808)에 저장되는 수직으로 정렬된 화소 쌍 S4, S14및 S5, S15으로 구성된다.
명령 사이클 T1의 제2반부와 명령 사이클 T12와 제1반부 동안에, 감산기(824)와 증배기(825) 및 가산기(858)는 화소 값 I2을 계산하는데, 이 값은 명령 사이클 T12의 중간점에서 발생하는 신호 LO0의 네가티브 진행 변이와 동시에 레지스터(864)의 8LSB 위치에 저장된다. 또한 명령 사이클 T12의 중간점에서, 화소 쌍 I0, I1은 레지스터(866)로부터 버스 A BUS에 인가된다.
명령 사이클 T12및 T13동안에, 수직으로 보간된 화소 값이 화소 쌍 S4, S14에 대해 발생된다. 이 보간된 화소 값은 명령 사이클 T13의 중간점에서 발생하는 각각의 신호 ψ2및 CKA의 네가티브 진행 변이와 동시에 레지스터(860,820)로 로드된다. 명령 사이클 T13및 T14동안에, 화소 갓 I3이 3/4의 축척 계수를 이용하여 발생된다. 이 화소 값은 명령 사이클 T14의 중간점에서 레지스터(864)의 8MSB 위치에 저장된다. 명령 사이클 T14의 끝에서, 화소 쌍 I2, I3은 레지스터(864)로부터 레지스터(866)으로 전달된다. 이 화소 쌍은 명령 사이클 T16동안에 버스 A BUS에 인가된다.
화소 보간기(246)를 로드시키는 신호는 매 4명령 사이클마다 반복된다. 예를들어, 명령 사이클 T13내지 T16에 대한 신호는 명령 사이클 T9내지 T12에 대한 신호와 동일하다. 신호의 순차는 원하는 수의 의사-화소 값을 발생하는데 필요한 만큼 여러번 반복된다.
수평으로 보간될 한쌍의 화소 값의 제1수직 보간된 화소 값이 레지스터(820,822)를 교대로 차지한다는 것을 주목하자. 결과적으로, 가산기(858)에서 축척된 수직 보간된 차 갓에 가산되는 수직 보간된 값은 연속한 수평 보간된 값을 발생하도록 결합되는 수직 보간된 값의 연속한 쌍에서의 제1 및 제2수직 보간된 값사이를 교호한다. 수평 보간 계산에 대한 이런 교호를 수용하기 위해, 제어 회로(814)는 축척 계수 SFH및 (1-SFH)에 각각 대응하는 신호 MA1내지 MB3, MB1내지 MB3및 CP에 대한 값을 교대로 제공하는데 여기서 SFH는 수평보간 축척 계수이다. 본 실시예에서, 한쌍중 제1화소 값이 레지스터(822)에 있을 때, 1/4의 수평 보간 계수가 올바른 의사-화소 값을 발생한다. 그러나 한쌍중 제1화소 값이 레지스터(820)에 있으면, 수평 보간 계수는 올바른 의사-화소 출력 값을 발생시키도록 3/4으로 변화된다.
전술한 설명에서, 명령 사이클 T0동안에 화소 보간기(246)에 인가되는 제어 값은 보간기를 동위상 모드에서 작동하도록 조절한다. 제9d도 내지 제9e도는 상이한 위상 모드에서의 화소 보간기의 동작을 도시하고 있다. 전술한 바와 같이, 상이한 위상 모드는 입력 화소 쌍의 어드레스가 VRAM(216)내의 16비트 값의 어드레스와 일치하지 않을 때 화소 보간기(246)에 대해 선택된다. 이 상황은 입력 화소 값의 쌍이 VRAM 워드 경계를 교차하여 분할되어 있을 때 발생한다. 제9e도는 이 상황을 도시하고 있다.
그 동위상 모드에서와 상이한 위상 모드에서의 화소 보간기(246)의 작동에 있어서의 기본적인 차이점이 제9e도 및 제9f도에 도시되어 있다. 제9e도에 도시된 바와 같이, 화소 값 I0및 I1은 동위상 모드에서와 같이 명령 사이클 T12동안이 아니라 명령 사이클 T16동안에 출력 레지스터(866)에서 이용 가능한다. 작동에 있어서의 이 변화는 제9f도에 도시된 바와 같이, 신호 LO0및 LO1을 스위칭하고 신호 CKA의 2주기 만큼 신호 XO를 지연시킴으로써 실현된다.
비록, 화소 보간기(246)가 비디오 영상에 대한 화소 값을 공간적으로 보간하기 위한 장치로서 기술되었지만, 보다 일반적으로, 수직 방향이나 또는 수평 방향으로 화소 값을 평균화하기 위해 사용될 수도 있다. 이 기능은 여러 필터링 알고리즘에 유용하다. 예를들어, 만일 제9a도내의 화소 값이 S0, S1, S1; S2, S3, S2, S3; 등의 순차로 화소 보간기(246)에 인가되었다면, 보간기에 의해 제공되는 출력 값은 수평 방향으로만 보간 또는 평균되는 화소를 나타낸다.
전술한 설명 및 제8a도, 제8b도 및 제9a도 내지 제9f도를 이용하여, 디지탈 비디오 신호 처리 회로 설계 기술에 숙련된 사람은 화소 보간기(246)로서 사용하기 위한 적합한 회로를 쉽게 설계할 수 있다.
VRAM(216)에 보유된 화소 값 및 데이터는 통계학적 디코더(230)와 입력 FIFO(232,234) 및 출력 FOFO(236)을 통해 비디오 신호 처리기(210)에 의해 엑세스된다. 이 장치를 이용하여 VRAM(216)에서 수행되는 모든 데이터 판독 및 데이터 기록 동작은 VRAM 제어 유니트(238)에 의해 조정된다. 통계학적 디코더 및 각각의 FIFO는 관련 VRAM 어드레스 및 제어 값을 갖는다. 마이크로 코드 순차 회로(226)는 FIFO 파라미터를 초기화하며, 그후 각 FIFO가 자율적으로 작동한다. 비디오 신호 처리기(210)의 관점으로부터, 3개의 입력 명령어와 하나늬 출력 명령어가 있다. 3가지 입력 명령은 통계 디코더(230), 입력 FIFO(232) 또는 입력(234)로부터 화소 값을 얻게 하며, 출력 명령은 상기 화소 값을 출력 FIFO(236)에 보낸다. 이들 장치 각각은 VRAM(216)으로부터 그리고 VRAM(216)으로 32비트 워드를 위한 메모리 엑세스 요청을 자동적으로 발생하며, VRAM(216)에 기억된 8 또는 16비트 화소 값으로 변환시키며 또는 통계적으로 인코드된 데이터를 화소 값으로 변환시키기 위해 필요한 팩킹(pakcing)과 언팩킹(unpacking)을 실행한다.
통계 디코더(230)는 VRAM(216)에 저장된 변수 길이 인코드 데이터를, 마이크로 코드 제어 워드의 B SRC 필드에서 14의 값에 응답하여 버스 B BUS에 인가되는 16비트 2진 값으로 변환시킨다. 제10a도는 통계 디코더(230)로서 이용에 적합한 회로의 블록선도이다.
제13a도를 참고로하여 다음에서 기술하는 바와 같이, 통계 디코더(230)를 위해 VRAM(216)을 엑세스시키는데 사용된 어드레스 값은 예를들어 2단계로 예를들어 데이터 RAM(228)으로부터 VRAM 제어 유니트 내에 로드도니다. 첫째로, 22비트 어드레스 값의 8개 MSB 위치를 표시하는 값은 버스 B BUS에 인가되며 마이크로 코드 제어 워드의 B DST 필드는 31의 값을 갖는다. 다음 어드레스 값의 14개 LSB 위치는 버스 B BUS에 인가된 값의 14개 MSB 위치로부터 로드된다. 마이크로 코드 제어 워드의 B DST 필드에서의 30값은 통계 디코더(230)를 리셋트시키며 통계 디코딩 작동이 개시되도록 하는 상태로 만든다.
명령의 전형적인 순서는 다음과 같이 진행된다. 2개의 연속적인 명령 싸이클동안, 어드레스 값의 8개 MSB와 14개 LSB는 VRAM 제어 유니트(238)에 있는 레지스터쌍에 로드된다. 어드레스 값의 LSB가 로드되는 같은 명령 싸이클에서 통계 디코더(230)는 리셋트되며 작동이 개시된다.
리셋트 동작은 신호 RV로서 논리 1값을 플립-플롭(1017)에 인가하여, 출력 레지스터(1016)에 유리된 8개 비트 값을 무효의 것으로 표시하는 제어 회로에 의해 실행된다. 같은 시간에, 제어 회로(1018)은 플립-플롭(1022)의 셋트 입력 단자 S에 인가되는 신호 RDR 펄스를 발생한다. 상기 작동은 플립-플롭(1022)의 출력 신호 SDR를 논리 1 신호로 변화시킨다. 신호 SDR은 버스 R/S/를 통해 VRAM 제어 유니트(238)에 인가되어, VRAM(216)에서 어드레스된 위치에서 판독 작용을 요청한다. 플립-플롭(1022)의 출력 신호SDR은 제어 회로(1018)에 인가되어 데이타가 VRAM(216)으로부터 요청된 것을 표시한다. VRAM 제어 유니트(238)가 요청된 판독 작용 처리하고 VRAM(216)은 요청된 32비트 값을 D BUS 에 인가할 때, VRAM 제어 유니트(238)에 저스 R/S를 통해 제어된 스트로브 신호 SDS를 펄스로 형성한다. 상기 신호는, 레지스터(1010)는 버스 D BUS로부터 32비트 값을 로드시키도록 조건을 만든다. 신호 SDS는 32비트 데이터 값이 레지스터(1010)에 로드될 때, 신호 SDR의 상태를 논리 제로로 변화시키도록 플립-플롭(1022)의 리셋트 입력 단자(R)에 인가된다. 신호 SDS 후의 신호 CK의 한 주기의 1/2주기는 논리 제로되며, 제어 회로(1018)는 레지스터(1010)으로부터 시프터 레지스터(1012)까지 32비트를 전달하는 신호 SRL을 제공하며, 계수기(102)에 유지된 값을 제로로 리셋트시킨다.
통계 디코더(230)는 VRAM(216)로부터 판독된 32비트 값의 LSB로 디코딩 작동을 시작한다. 다음에서 설명되는 바와 같이, 입력 FIFO(232,234)와 출력 FIFO(236)은 VRAM(216)에 기록되거나 또는 VRAM(216)으로부터 판독되는 4바이트 값으로부터 전달되도록 제1바이트로서 바이트 위치 값을 규정한다. 이들 장치를 위한 바이트 위치 값은 24비트 어드레스 값의 2개 LSB 위치로서 인코드된다. 본 발명의 실시예에서, 통계적인 디코더(230)는 상기 바이트 위치 값을 무시한다. 따라서 통계 디코더(230)에 인가된 데이터는 VRAM(216)에서 32비트 워드의 LSB 위치로 시작한다.
제어 회로(1018)가 레지스터(1010)로부터 32비트 데이터 값을 전달하기 위해 신호 SRL을 발생할때마다, 기억된 어드레스 갓을 VRAM 제어 유니트(238)의 증가시키는 조건을 만들도록 신호 SDR을 발생한다. 신호 SRL과 RDR을 발생한 후 신호 CK의 한 주기의 1/2마다 회로(1018)는 신호 EN과 같은 논리 1값을 통계 디코딩 회로(1014)에 인가하여 회로(1014)가 시프트 레지스터(1012)에서 유지된 값을 디코딩하기 시작한다.
본 발명의 상기 실시예에서 사용된 통계 디코딩 회로(1014)는 예를들어 본원에 참고로 포함된 명칭이 디지탈 허프만 인코딩을 위한 방법 및 장치인 미합중국 특허 제4,396,906호에 기술된 형태일 수 있다. 인에이블될 때, 회로(1014)는 시프트 레지스터(1012)와 카운터(1020)에 신호 SRCK로서 시스템 클럭 신호 CK를 게이트시킨다. 시프트 레지스터(1012)는 LSB 위치로부터 시작하여 MSB 위치로 향하여 계속하여 신호 SRCK의 각 싸이클동안 저장하고 있는 값의 한 비트를 제공한다. 각 비트가 시프트 레지스터(1012)에 의해 제공될 때마다 카운터(102)에서의 값은 하나씩 증가된다.
통계 디코딩 회로(1014)가 16비트 출력 값을 발생하기 위해 처리된 충분한 수의 비트를 가질 때, 바꾸어 말해 하나의 가변 길이 인코드 값으로 디코드되었을 때, 디코드된 16비트 값을 출력 레지스터(1016)의 입력포트에 인가되며, 신호 RDY로서, 논리 1값은 제어 회로(1018)에 인가한다. 다음 제어 회로(1018)은 회로(1014)에 의해 제공된 값을 출력 레지스터(1016)에 인가시키고 그리고 플립플롭(1017)을 세트시켜 레지스터(1016)에 의해 유지된 데이터를 유효한 값으로 표시하기 위해 신호 ORL을 발생한다.
상기 디코딩 작동은 출력 레지스터(1016)에 유지된 값이 14 또는 15값을 갖는 B SRC 필드로 이루어진 마이크로 코드 제어 워드의 사용에 의해 버스 B BUS를 위한 소스로서 엑세스된다. 제어 회로(1018)가 B SRC 필드에서의 상기 값을 검출한후, 다음 클럭 주기에서, 신호 RV를 발생하여 레지스터(1016)에서 유지된 데이터를 무효로서 표시한다. B SRC에 대한 값은 보다 많은 데이터 값이 기대된다는 것을 표시하는 한펴 15의 값은 상기 값이 순서적으로 마지막에 엑세스되었다는 것을 표시한다.
상술된 설명은 레지스터(1016)에 있는 데이터가 유효할때까지 엑세스되지 않는 것으로 가정한다. 무효 데이터 1에 B SRC=14와 ORV=0를 엑세스하려고 하는 경우, 제어 회로(1018)는 신호 PR을 발생한다. 신호 PR은 플립-플롭(1023)의 셋트 입력 단자 S에 인가된다. 신호 PR이 발생될 때 플립플롭(1023)의 출력 신호SDPA는 논리 1값으로 변화된다. 상기 신호는 포우즈(pause) 논리주(240)에 인가되어, 마이크로 코드 RAM과 순치가(226)가 비디오 신호 처리기가 포우즈 상태가 되게 한다. 상기 SDPA 신호는 AND 게이트(1025)의 한 입력 단자에 인가되며 상기 게이트의 다른 입력 단자는 신호 SDR을 수신하기 위해 접속되어있다. 만약 SDR과 SDPA가 논리 1값을 가질 때, AND 게이트(1025)의 출력 신호 SDP는 논리 1이 된다. 상기 신호는 포오즈 논리부(240)를 통해, VRAM 제어 유니트(238)에 인가되어 요청된 판독 작용의 우선순위를 증가시킨다. 신호 SDP는 통계 디코더(230)로부터 긴급 판독 작용 요청 신호이다. 상기 신호 SDPA는 논리 1이 되어 제어 회로(1018)가 신호 ORL을 발생시켜, 레지스터(1016)에 유지된 값을 유효한 것을 표시할 때, 포우즈 상태를 해제시킨다.
상술된 실시예는 하나의 16비트 출력 값을 발생시키는데 있어서 통계 디코더(230)의 내부 동작을 기술한다. 전형적으로 디코더(230)는 상기 값의 순차를 발생한다. 상기 순서로 제1값을 발생하기 위해, 제10도에 도시된 회로는 상기와 같이 작동한다. 상기 값이 한 번 출력 레지스터(1016)에 전달이 되면, 제어 회로(1018)는 신호 EN으로서 논리 1값을 인가하여 통계 디코딩 회로(1014)를 인에이블시켜서 다음 코드된 값을 발생한다. 첫 번째 코드된 값이 출력 레지스터(1016)으로부터 엑세스되고 신호 ORV가 논리 제로 값으로 변경되었을 때, 제어 회로(1018)는 ORL 신호를 발생하여 제2값을 로드시킨다. 제1값이 엣세스되었을 때 제2값 디코드되지 않았을 때, 제어 회로(1018)는 신호 RDY가 통계 디코딩 회로(1014)에 의해 논리 1값으로 변경 되었을때까지 신호 ORL를 발생하지 않는다. 상기 작동순서는 출력 레지스터(1016)에서의 값이 마이크로 코드 제어 워드의 BSR 필드에서 15의 값을 사용하여 엣세스될때까지 작동된다. 출력 레지스터에서의 값이 BSRC 필드에서의 15의 값을 갖는 마이크로 코드 제어 워드에 응답하여 엑세스되었을 때 제어회로(1016)는 신호 EN의 값을 논리 제로 변경하여 통계 디코딩 회로(230)의 작동을 종료시킨다. 데이터는 새로운 값이 디코더(230)에 의해 사용된 VRAM 에드레스 값의 14개 LSB 위치에 대해 설정될때까지 통계 디코더(230)을 사용하여 엑세스될 수 없다.
상술된 디코딩 작동중의 어느 하나에서, 32비트 데이터 갓은 요청된 바와 같이 VRAM(216)으로부터 레지스터(1010)에 제공된다. 카운터(1020)는 32비트 값의 MSB가 회로(1014)에 인가되었다는 것을 표시하는 31의 값을 갖도록 증가되었을 때, 제어 회로(1018)는 레지스터(1010)로부터 시프트 레지스터(1012)에 다음 32비트 값을 전달하며, 카운터(1020)의 값을 리셋트시키기 위해, 신호 SRL을 발생한다. 동시에, 제어 회로(1018)는 VRAM(216)으로부터 다음 순차의 32비트 값을 요청하기 위해 신호 RDR을 발생한다.
카운터(1020)에서의 값이 31과 같을 때 신호 SDR의 값이 논리 1일 경우, 제어 회로(1018)은 레지스터(1010)으로부터의 값을 레지스터(1012)에 전달할 수 없다. 왜냐하면, 레지스터(1010)를 채우기 위한 판독 작용은 완전히 완료되지 않았기 때문이다. 이때, 제어 회로(1018)는 신호 EN을 변화시켜, 논리 제로 값을 갖도록 하여, 디코딩 회로(1014)를 작동시킨다. 요청된 판독 작용이 완료되었을 때, 제어 회로(1018)는 레지스터(1010)로부터 새로운 32비트 값을 레지스터(1012)에 전달하고 그리고 신호 EN의 값을 논리 1상태로 변화시켜 신호 SRL을 발생하며, 신호 RDR을 발생한다. 이들 신호는 통계적 디코더(230)을 작동시켜 정상적인 작동을 시작하게 하며, VRAM(216)으로부터 새로운 32비트 값을 요청한다.
제10b도는 2개의 데이터 값이 디코드될 때 제어 회로(1018)에 의해 발생된 신호의 상대적 타이밍을 도시하는 타이밍 다이어그램이다.
제10a도 및 10b도와 상술된 설명으로부터, 디지털 신호 처리 회로의 기술에 숙련된 사람은 통계적 디코더(230)용으로 적합한 회로를 쉽게 설계 구성할 수 있을 것이다.
입력 FIFO(232,234)는 신호 처리기(210)가 VRAM(216)을 위해 8비트 또는 16비트 값을 랜덤하게 판독하거나 또는 8비트 또는 16비트 값을 순차적으로 판독하게 하여 화소 처리 요소가 처리되게 한다. 랜덤 또는 순차 모드중 어느 한 모드에서 마이크로 코드 RAM과 순차 회로(226)에 의해 실행된 마이크로 코드 제어 워드 명령어는 초기 어드레스 값을 VRAM 제어 유니트(238)에 인가한다. 선택된 입력 FIFO는 VRAM제어 유니트(238)를 통해 VRAM(217)을 엑세스하며, 요청된 값을 마이크로 코드 RAM과 순차기(226)에 의해 다른 방해없이 버스 B BUS에 요청된 값을 제공한다.
예를들어 데이터 RAM(228)에 의해 제공된 입력 FIFO(232,234)에 대한 개시 어드레스 값은 어드레스 값이 통계 디코더(230)에 대해 정해지는 바와 같은 방법으로 VRAM 제어 유니트(238)에서 설정된다. 어드레스 값의 8개 MSB 위치는 버스 B BUS를 통해, 각각의 23 및 27을 갖는 마이크로 제어 워드의 B DST 필드에 응답하여, 각각 입력 FIFO(232,234)에 대한 어드레스 레지스터에 전달된다. 입력 FIFO(232,234)에 대한 어드레스 값의 14개 LSB 위치는 마이크로 코드 제어 워드의 B DST 필드가 각각 22와 26의 값을 가질 때 버스 B BUS에 인가된 값의 14개 MSB 위치로부터 전달된다. B DST 필드가 22와 26의 값을 가질 때 버스 B BUS에 인가된 값의 12개의 LSB 위치는 각각 입력 FIFO(232,234)에 내부적으로 기억된다. 2개의 비트에 의해 표시된 값은 버스 B BUS에 제공될 제1바이트로서 VRAM(216)에 의해 제공된 4개 바이트 값의 특정 바이트를 가르킨다.
제11a도는 입력 FIFO(232,234)중의 어느 하나와 같은 용도로 적합한 회로를 도시하는 블록 다이어그램이다. 상기 회로는 입력 FIFO(232)에 대해 다음에서 설명하기로 한다. 입력 FIFO(234)를 포함하기 위해 설명에서의 변화는 적당한 괄호 형태로 표시된다. 제11a도에 도시된 회로는 입력 FIFO가 셋트되어 랜덤 모드로 작동하는 경우 정상적인 순차의 작동 형태로 기술한다. 상기 설명은 FIFO가 셋트되어 순차적인 모드로 작동할 때 순차 작동에서의 변화를 설명한다.
상기 순차에서 제1단계는 B DST 필드에서 21의 값(FIFO(234)에 대해서는 29)을 갖는 마이크로 코드 제어 워드를 이용하여 버스 B BUS에 제어 값을 인가하는 것이다. 상기 B DST 값에 응답하며 예를들어 ALU(244)에 의해 제공된 제어 값은 레지스터(1112)에 로드된다. 상기 예에서 사용된 제어 값은 입력 FIFO(232)가 상기 순차 모드와 반대로 랜덤 모드로 작동하도록 조건을 만들어 16비트 값에 반대인 8비트 값을 버스 B BUS에 제공하는 것이다.
상기 순차에서 다음 단계는 상술된 바와 같이 VRAM 제어 유니트(238)에서 FIFO(232)를 위해 어드레스를 설정한다. FIFO(232)에 대해 내부적인 레지스터(1110)는 22(26)의 값을 갖는 마이크로 코드 제어 워드의 B DST 필드에 응답하여 바이트 위치 값 즉, 버스 B BUS를 통해 제공된 16비트의 어드레스 값중 2개의 LSB를 로드시킨다. 제어 회로(1116)는 또한 입력 FIFO(232)를 초기 상태로 리셋트시켜 VRAM 판독작용을 개시하기 위해 B DST 필드의 상기 값에 의해 조건이 이루어진다.
상기 리셋트 작동에서, 상기 제어 회로(1116)는 신호 C0를 발생하여 플립플롭(1134)을 리세트시킨다. 신호 CK의 한 주기 1/2후에 제어 회로(1116)는 신호 PC를 발생하여 레지스터(1110)으로부터 바이트 위치 값 BP를 카운터(1128)과 플립플롭(1132)에 로드시킨다. 상기 작동후 신호 CK의 한 주기의 1/2에서 제어 회로(1116)는 플립플롭(1133)의 셋트 입력 단자 S에 인가되는 신호 IR를 발생한다. 플립플롭(1133)에 의해 제공된 신호 IFOR는 제어 버스 R/S를 통해 VRAM 제어 유니트(238)에 인가되어, VRAM 제어 유니트(238)가 VRAM(216)에서 어드레스된 메모리 위치에 대한 판독 작용 개시하도록 하는 조건을 만든다. 상기 신호 IFOR은 제어 회로(1116)에 인가되어 판독 작용이 진행중에 있다는 것을 표시한다.
VRAM 제어 유니트(238)가 판독 작용을 처리했을 때 그리고 VRAM(216)이 요청된 데이터를 버스 D BUS에 인가했을 때 VRAM 제어 유니트는 버스 R/S를 통해 제공된 스트로브 신호 IFOS를 발생하여 레지스터(1118)이 버스 D BUS로부터 32비트 값을 로드하도록 조건을 만든다. 상기 신호 IFOS는 또한, 플립풀롭(1133)의 리셋트 입력 단자 R에 인가되어 플립플롭(1133)의 내부 상태를 리셋트시키고 그리고 신호 IFOR를 발생하여 논리 제로 값으로 되게하여 메모리 판독 작용이 완료되었다는 것을 표시한다.
신호 IFOR이 논리 제로로된 후 신호 CK의 제1주기 동안, 제어 회로(1116)는 신호 LR을 발생하여 레지스터(1118)에 유지된 32비트 값이 레지스터(1120)로 전달되게한다.
레지스터(1120)의 비트 0-7, 8-15, 16-23 및 24-31을 각각 포함하는 4개의 8비트 세그먼트 B0, B1, B2 및 B3로 나누어지낟. 8개 비트 값 B0, B1, B2 및 B3는 멀티플렉서(1124)의 각각 서로 다른 입력 포트에 인가된다. 멀티플렉서(1124)는 카운터(1128) 또는 증배기(1130)에 의해 제공된 값에 의해 제공되어 출력 레지스터(1114)의 8개 LSB 위치에 상기 입력 포트에 인가된 4개 값중의 하나를 제공한다.
본 실시예에서, 레지스터(1112)에서의 제어 값은 8비트 값이 출력 레지스터(1114)에 의해 제공될 것이라는 것을 표시한다. 따라서, 상기 제어 회로(1116)는 신호 MXC로서 논리 1값을 멀티플렉서(1126)에 인가한다. 신호 MXC의 값은 멀티플렉서(1126)가 멀티플렉서(1124)의 제어 입력 포트에, 카운터(1128)에서 유지된 값을 인가한다. 제1바이트 위치의 값인 상기 값은 멀티플렉서(1124)가 출력 레지스터(1114)의 8개 LSB 위치에 어드레스된 바이트를 인가하도록 하는 조건을 만든다. 신호 LR을 발생한후 신호 CK의 다음 연속적인 주기후, 제어 회로(1116)는 멀티플렉서(1124)에 의해 인가된 값을 레지스터(1114)의 8개 LSB 위치에 로드시키고, 레지스터(114)의 8개 MSB 위치를 리셋트시키며, 플립플롭(1134) 셋트시킨다. 플립플롭(1134)가 셋트되기 때문에, 그 출력 신호 OV는 출력 레지스터(1114)에서의 값이 유효한 것을 표시하는 논리 1이다.
상기 실시예에 대한 작동의 순차는 마이크로 코드 RAM 및 순차 회로(226)가 마이크로 코드 제어 워드를 실행하며, 여기서 B SRC 필드는 12의 값(입력 FIFO(234)에 대해서는 13)을 갖는다. 레지스터(1114)에 인가된 상기 값은 레지스터가 작동되게 하며 기억된 값을 버스 B BUS에 제공한다. 상기 제어 회로(1116)는 또한, B SRC 필드에 있는 12(13)의 값에 응답하여 신호 CO를 발생하며 그에 의해 플립플롭(1134)을 리셋트시키고 출력 레지스터(1114)에서의 값은 무효의 것으로 표시한다.
제어 레지스터(1112)에 있는 값이, 16비트 값이 버스 B BUS에 제공되도록 되어 있다고 표시하는 경우, 제어 회로(116)는 신호 MXC로서 논리 제로 값을 멀티플렉서(1126)의 제어 입력 단자에 인가된다. 상기 제어 값은 멀티플렉서(1124)가 제어 입력 포트에, 증배기(1130)에 의해 제공된 값을 인가하기 위한 멀티플렉서(1126)가 준비상태가 되게 한다.
증배기(1130)가 플립플롭(1132)의 출력 단자에 접속된다. 상술된 바와 같이, 상기 플립플롭(1132)는 레지스터(1110)에 LRDJREHLS 바이트 위치 값의 MSB의 값으로 프리셋트된다. 상기 1비트 값은 증배기(1130)에 의해 보다 큰 상위 위치쪽으로 한 비트 값 시프트된다(즉 2가 곱해진다). 그래서, 멀티플렉서(1124)에 의해 제공된 값은 2 또는 0중의 하나이다. 따라서, 멀티플렉서(1124)는 바이트 B0 또는 바이트 B2를 출력 레지스터(1114)의 8개의 하위 위치에 인가된다.
플립플롭의 출력 단자는 또한 멀티플렉서(1122)의 제어 입력 단자에 접속된다. 멀티플렉서(1122)는 레지스터(1120)의 B3와 B1에 접속된다. 플립플롭(1132)에 의해 제공된 값이 논리 제로 또는 논리 1일 때 멀티플렉서(1122)는 레지스터(1120)의 각 B1 또는 B3에 유지된 값을 레지스터(1114)의 8개 MSB 위치에 인가한다. 16비트 모드에서, 제어 회로(1116)는 선택된 8개 MSB와 8개 LSB를 레지스터(1114)에 로드하기 위해, 동시에, 신호 LL과 LM을 발생한다. 상기 값이 엑세스될 때, B SRC 필드에서 12(13)의 값을 갖는 마이크로 제어 워드를 통해, VRAM(216)에 의해 제공된 32비트 값의 16 MSB 또는 16 LSB가 판독될 수도 있다.
레지스터(1110)에서 유지된 바이트 위치 값이 1 또는 3일 때 각각 0 또는 2로서 번역될 수 있다. 바이트 B1과 B2를 포함하는 16비트 값은 본 발명의 상기 실시예와 더불어 사용된 입력 FIFO(232,234)에 의해 제공될 수 없다.
상술된 실시예에서, 입력 FIFO에 인가된 제어 갓은 랜덤 모드에서 작동하도록 조건을 만든다. 상기 모드에서 FIFO는 버스 B BUS에 어드레스된 값만을 제공한다.
순차적인 모드에서, 입력 FIFO(232 또는 234)는 VRAM(216)에서 지정된 어드레스를 갖는 값으로 시작하여 연속적으로 보다 더 큰 어드레스 값을 통해 계속하여 순차적인 값을 제공할 수도 있다. 순차적으로 모드에서 FIFO(232,234)의 작동은 랜덤 모드에서 그 작동과 다른 차이를 기술하기로 한다.
랜덤 모드의 순차 모드 차이는 즉, 제어 회로(1116)가 레지스터91120)에 새로운 32비트 값을 로드시키기 위해 신호 LR을 발생할때마다, VRAM(216)으로부터 다음 32비트 값을 요청하기 위해 신호 LR을 발생한다.
랜덤 모드에서 회로(1128)와 플립플롭(1132)는 레지스터(1110)에서 기억된 바이트 위치 값을 유지하기 위한 레지스터로서만 사용된다. 순차 모드에서, 카운터(1128)와 플립플롭(1132)는 레지스터(1120)로부터 출력 레지스터(1114)까지 각각 연속적인 8비트 또는 16비트 값을 순차적으로 제공하기 위해 사용된다. 카운터(1128)는 프리셋트 값 입력 포트와 프리셋트 입력 단자를 갖는 종래의 2비트 2진 카운터이다. 프리셋트 입력 단자에 인가된 신호가 펄스 형태일 때, 카운터(1128)는 내부 값으로서 프리셋트 값 입력 단자에 인가된 값을 로드시킬 준비 상태가 된다. 플립-플롭(1132)는 종래의 트리거형 또는 T 플립플롭이다. 상기 플립플롭은 프리셋트 값을 가지며, 상술한 바와 같이 작동되도록 인가된 신호에 의해 준비 상태가 되는 프리셋트 입력 단자를 갖는다. 제어 회로(1116)에 의해 제공된 클럭 신호 CCK는 카우너(1128)와 플립플롭(1132)에 인가된다. 클럭 신호 CCK의 연속적인 펄스에 응답하여, 카운터(1128)는 값 0,1,2 및 3을 통해 내부 값 CV 의 싸이클을 계속한다. 플립플롭(1132)는 신호 CCK의 연속적인 펄스에 응답하여 0과 1 사이에서 내부 상태를 변화시킨다. 상기 실시예에서, 입력 FIFO가 순차 모드에 있을 때, 신호 CCK는 신호 LL과 같고, FIFO가 랜덤 모드에 있을 때, 신호 CCK는 일정한 논리 제로 값을 갖는다. 결과적으로 한 값이 출력 레지스터(1114)에 로드되자마자, 카운터(1128) 또는 플립플롭(1132)는 다음 순차 값을 레지스터(1114)의 입력포트에 인가하기 위해 멀티플렉서(1122)를 포함한다. 레지스터(1114)의 입력 포트에 인가된 값은 새로운 값이 출력 레지스터(1114)에 로드될 때 마다 바뀌기 때문에, 상기 인가된 값은 레지스터(1114)에서의 한 값이 버스 B BUS에 인가되자마자 출력 레지스터에 로드될 수 있다.
카운터(1128)의 출력 값 CV는 제어 회로(1116)에 인가된다. 제어 회로(1116)는 레지스터(1118)로부터 레지스터(1120)에 32비트 값을 전달시키는 시기를 결정하기 위해 신호를 모니터한다. 레지스터(1112)에서 유지된 제어 값은 입력 FIFO(232)가 8비트 모드에서 작동하고 있다는 것을 표시할 때, 제어 회로(1110)는, 레지스터(1118)로부터 3에서 0까지 변하는 신호 CV의 값과 일치하는(즉, 신호 CV의 MSB가 1에서 0까지 변화할 때) 레지스터(1120)로 32비트 값을 전달하기 위해 신호 LR을 발생한다. 입력 FIFO가 16비트 모드로 작동할 때, 제어 회로(1116)는 1로부터 2 또는 3에서부터 0까지 신호 CV의 값이 변할 때 신호 LR을 발생한다.
상술된 실시예는 VRAM 제어 유니트(238)와 VRAM(216)이 32비트 데이터 값을 안정 스트림으로 입력 FIFO(232,234)에 제공하는 것으로 가정한다. 상기 스트림은 인터럽트되어야 하는 경우, 예를들어, 신호 IFOR은 신호 CV의 값이 3으로부터 0으로 상태를 바꾸었을 때 판독 작용이 진행중이라는 것을 표시하는 논리 1의 값을 갖는다. 이때, 회로(1116)는 요청된 판독 작용이 일어났다는 것을 표시하는 논리 제로 값으로 신호 IFOR이 변하는 것을 표시할때까지 내부 상태를 동결시킨다. 그래서 레지스터(1118)는 유효한 데이터를 포함하고 있다. 신호 IFOR이 제로로 되었을 때 제어 회로(1116)는 본연의 작동 상태로 다시된다.
제어 회로(1116)의 내부 상태가 동결되어 있는 동안 레지스터(1114)의 내용을 판독해야 하는 요청 신호가 버스 B BUS(즉, BSRC=12)에 수신되어 있는 경우, 제어 회로(1116)는 플립-플롭(1135)의 셋트 입력 단자에 인가되는 신호 IP를 발생한다. 상기 작용은 플립플롭(1135)에 의해 제공된 신호 IFOPA의 상태를 놀리 1로 변화시킨다. 상기 신호 IFOPA는 마이크로 코드 RAM과 순차기 회로가 비디오 신호 처리 회로(210)을 포우즈 상태로 되도록 하게 하는 포우즈 논리 회로(240) 상술된 바와 같이, 제3a도를 참조로 하면, 클럭 신호 CKA와 CKB는 포우즈 상태로 되어, 데이터 통로 회로(242), ALU(244), 데이터 RAM(228)과 화소 보간기(246)를 효과적으로 동결시킨다.
신호 IFOPA와 신호 IFOR은 AND 게이트(1136)의 입력 단자에 인가된다. 이들 신호의 모두는 판독 작용이 요청되었으며 프로세서(210)가 입력 FIFO(232)로부터의 값을 위해 대기하는 포우즈 상태에 있다는 것을 표시하는 논리 1값을 가질 때, AND 게이트(1136)의 출력 신호 IFOP는 논리 1값으로 변화된다. 신호 IFOP는 포우즈 논리(240)를 통해 VRAM 제어 유니트(238)에 인가된다. 신호 IFOP를 위한 논리 1값은 VRAM 제어 유니트(238)가 긴급 요청으로서 입력 FIFO(232)을 위해 판독 요청 작동을 처리하도록 하는 상태를 만든다. 판독 작용이 완료되었을 때, 신호 IFOS는 플립플롭(1133)을 리셋트시키며, 신호 IFOR과 IFOP를 논리 제로 값으로 변화시킨다. 레지스터(1118)로부터 요청된 값이 출력 레지스터(1114)에 전달되었을 때, 제어 회로(1116)는 플립플롭(1134)를 셋트시키며, 상기 플립플롭의 출력 신호 OV는 처리기 회로(210)를 포우즈 상태로부터 해제시킨다.
제11b도는 입력 FIFO(232)의 2개의 순차적인 8개 비트 데이터를 위해 제어 회로(1116)에 의해 발생된 신호의 상대적인 시간을 도시하는 타이밍 다이어그램이다.
출력 FIFO(236)는 입력 FIFO(232,234)에 의해 실행된 것과는 반대인 기능을 실행하며, 비디오 신호 처리기(210)의 화소 처리 소자로부터 한번에 하나 또는 2개 바이트인 데이터를 받아들이며 상기 데이터를 32비트 블록으로 포맷하여 이들 블록을 VRAM(216)에 전달한다. 출력 FIFO(236)는 2개의 모드를 가지며, 즉, 단일 8개 또는 16비트 값이 주어진 어드레스 값을 사용하여 VRAM(216)에 기록된다. 그리고 순차 모드에서는 일련의 8 또는 16비트 값이 주어진 어드레스 값을 사용하여 VRAM(216)에 기록된다. 그리고 순차 모드에서는 일련의 8 또는 16비트 데이터 값이 연속적으로 증가하는 어드레스 값을 이용하여 기록된다. 랜덤한 전달을 위해 사용된 어드레스 값 또는 순차적인 전달을 위해 사용된 개시 어드레스 갑슬 통계 디코더(230)와 입력 FIFO (232, 234)에 대해 기재한 바와 같은 방법으로 VRAM 제어 유니트에서 설정이 된다. 22비트 어드레스 값의 8개 MSB와 14개 LSB에 대해 사용된 B DST 필드의 값은 각각 15와 14가 된다. B DST 필드가 14일 때 버스 B BUS에 인가된 16비트 값중에서 두 개의 LSB 위치에 있는 값은 출력 FIFO(236)에 대해 내부에 있는 레지스터에 기억이 된다. 상기 값은 최하위 바이트 또는 단 하나의 바이트가 될 VRAM(216)에 인가된 32비트(4바이트)에 있는 특정 바이트를 나타낸다. 출력 FIFO(236)와 VRAM 제어 유니트는 VRAM(216)에 기록되지 않는 32비트 값에 있는 다른 바이트 위치에 대응하는 VRAM(216)에서의 데이터의 파괴를 방지하는 회로를 포함한다.
제12a도는 출력 FIFO(236)와 같은 용도로 적당한 회로를 도시하는 블록선도이다. 상기 회로는 소정의 어드레스 값을 사용하여 단일 8비트 값이 VRAM(216)에 기록될 랜덤 모드에서 정상 순차의 작동에 대해 기술하기로 한다. 상기 설명은 랜덤 모드 대신에 FIFO가 순차 모드로 작동될 때, 그리고 8개 비트 값 대신에 16비트 데이터 값이 사용될 때 출력 FIFO의 작동에서의 차를 다음에 설명하기로 한다.
VRAM(216)에서 랜덤 위치에 데이터의 한 바이트를 기록하는 작용의 순서에서 제1단계는, 출력 FIFO가 랜덤 모드가 되도록 하여 출럭 FIFO(236)에 제어 값을 인가하도록 하는 것이다. 본 발명에서 양호한 실시예에서 2개 비트 제어 값은 B DST 필드에서 13의 값을 갖는 마이크로 코드 제어 워드에 응답하여 예를 들어 ALU(244)에 의해 버스 B BUS에 인가된다. 마이크로 코드 제어 워드의 B DST 필드가 버스 MCW를 통해 제어 레지스터(1212)에 인가된다. 레지스터(1212)는 출력 FIFO(236)을 위해 제어 값으로서 버스 B BUS의 2개의 LSB 위치에 의해 전달된 값을 로드하기 위해 13의 값을 갖는 마이크로 코드 제어 워드이 B DST 값에 응답한다.
출력 FIFO(236)에 내부적인 제어 회로(1216)은 레지스터(1220)에서 유지된 데이터를 VRAM(216)에 전달하는 기록 작용을 개시하기 위해 B DST 필드에 있는 13의 값에 응답한다. 상기 데이터는 이전의 데이터 출력 작용으로부터의 데이터의 최종 부분적인 블록이다.
플립플롭(1232)에 의해 제공된 신호 OFR이 출력 FIFO(236)을 위해 메모리 기록 작동이 진행되고 있지 않다는 것을 표시하는 논리 제로 값을 갖는 경우, 제어 회로(1216)은 레지스터(1220)에 있는 값을 출력 레지스터(1218)에 전달하며, 래치(1228)에서 유지되는 4-비트 바이트 마스크를 전달하기 위해 신호 LOR을 발생한다. 제어 회로가 신호 LOR을 발생한 후 신호 CK의 한 주기의 1/2마다 플립플롭(1232)의 셋트 입력 단자 S 에 인가된 신호 WR을 발생한다. 상기 작용은 플립플롭(1232)에 의해 제공된 신호 OFR의 상태를 논리 1 상태로 변화시킨다.
신호 OFR은 버스 R/S를 통해 VRAM 제어 유니트(238)에 인가된다. 신호 OFR로부터 논리 1의 값은 출력 FIFO(236)을 위한 VRAM 제어 유니트에 유지된 어드레스 값을 사용하여 그리고 레지스터(1218)에 유지된 32비트 데이터 값을 사용하여 VRAM 기록 작용을 위한 요청으로서 VRAM 제어 유니트(238)에 의해 번역이 된다. 레지스터에서 (1230)의 바이트 마스크가 VRAM 제어 유니트(238)에 인가된다. 상기 마스크는 바이트 마스크 신호 CASM에 대응하는 바이트 위치를 갖는 레지스터(1218)에서의 단지 그러한 바이트 즉, 레지스터(1220)에 로드될 때 제어 회로(1216)에 의해 유효한 것으로 표시되는 그러한 바이트를 기억하기 위해 VRAM(218)을 준비 상태로 만든다. 바이트가 유효한 것으로 표시되는 방법과 VRAM 제어 유니트(238)에 의해 신호 CASM의 사용에 대해 다음에서 기술하기로 한다.
제어 회로(1216)가 신호 WR을 발생함과 동시에, 래치(1228)에 있는 4개의 플립플롭 각각의 리셋트 입력 단자 R에 인가되는 신호 RM를 발생한다. 상기 신호는 각 바이트 위치 B0 내지 B3의 값을 유효한 값으로 표시하는 래치(1228)에서 플립플롭 FF0 내지 FF3를 리셋트한다.
상술된 바와 같이, 제어 유니트(1216)은 신호 OFR이 제로인 경우에만 기록 작동을 개시한다. 만약 신호 OFR은 제어 레지스터(1212)에서의 값이 변화될 때 논리 1인 경우, 제어 회로(1216)은 VRAM 제어 유니트(238)에 의해 제공된 신호 OFS가 요청된 메모리 기록 작용이 완료되었다는 것을 나타날 때까지 내부 상태를 동결시킨다. 신호 OFS는 레지스터가 기억된 값을 버스 D BUS에 인가되도록 작동시키기 위해 레지스터(1218)의 출력 인에이블 단자 OE가 인가된다. 신호 OFS가 논리 1값을 가질 때 레지스터(1218)에서의 데이터는 VRAM(216)에 전달된다. 신호 OFR는 신호 OFR의 값을 논리 제로로 변화시키는 플립플롭을 리셋트 시킨다. 제어 회로(1216)는 정상 작동을 재개하기 위해 논리 제로 값을 갖는 신호 OFR에 응답한다.
전원이 비디오 신호 프로세서(210)에 인가된 후 제1출력 FIFO 요청에 의해 VRAM(216)에 에러 데이터가 기록되는 것을 방지하기 위해, 플립플롭(1228)은 예를들어 종래의 전원 온 리셋트 회로에 의해 논리 제로의 초기 값을 갖는 조건을 만든다. 다음에서 설명하는 바와 같이, 플립플롭에서의 논리 제로의 값은 VRAM(216)에 레지스터(1220)로부터의 데이터가 기록되는 것을 방지한다.
이전 출력 작동으로부터의 데이터가 레지스터(1220)으로부터 레지스터(1218)에 전달되고, 메모리 기록 작용이 실행되었을 때, 실시예의 랜덤 출력 작동을 위한 어드레스 값이 정해질 수 있다. 상기 단계는 상기에서 기술하였다. 바이트 위치 레지스터(1210)는 버스 B BUS의 2개 LSB 우치에 의해 전달된 값을 로드하기 위해 B DST 필드에서 14의 값에 응답한다. 상술한 바와 같이 상기 값은 레지스터(1220)의 바이트 위치 즉 B0, B1, B2 또는 B3는 인가된 데이터 값을 유지할 것이라는 것을 나타낸다.
제어 회로(1216)는 2개 비트 카운터(1226)의 내부 값으로서 바이트 위치 값을 설정하기 위해 바이트 위치 레지스터가 로드된 후 신호 CK의 한 주기의 1/2에서 신호 OPC를 발생하기 위해 B DST 필드에서 14의 값에 응답한다. 상기 값은 신호 OCV로서 제어회로(1216)에 인가된다. 신호 OPC의 발생과 동시에 제어 회로(1216)는 플립플롭(1234)을 셋트시키기 위해 신호 LR을 발생하여, 입력 레지스터(1214)에서의 데이터를 유효한 것으로 표시한다. 플립플롭(1234)의 출력 신호 INV가 제어 회로(1216)에 인가되어 버스 B BUS로 부터의 데이터가 레지스터(1214)에 로드될 수 있다는 것을 표시한다.
실시예의 순서적인 작동어 다음 단계는 8비트 데이터 값을 출력 FIFO(236)에 인가하는 것이다. 이는 마이크로 코드 제어 워드가 B DST 필드에서 20의 값을 가질 때 생긴다. B DST 필드에서의 상기 값은 레지스터(1214)가 예를들어 ALU(244)에 의해 제공되며 버스 B BUS에 의해 전달되는 16비트 값을 로드시키도록 하는 상태를 만든다. 제어 레지스터(1212)에서의 값은 8비트 값이 처리될 것이라는 것을 나타내기 때문에, 레지스터(1214)에서의 값의 8개 LSB 위치만 관련된다. 한 값이 레지스터(1214)에 로드되었을 때, 제어회로(1216)는 플립플롭(1234)의 입력 단자를 리셋트하기 위해 인가된 신호 CO를 발생한다. 상기 작용은 신호 INV의 상태를 논리 제로로 변화시켜, 입력 레지스터(1214)에 유지된 값을 유효한 것으로 표시한다.
입력 레지스터(1214)의 8개 LSB 위치는 레지스터(1220)의 비트 위치 0-7(바이트 위치 B0)와 16-23(바이트 위치 B2)에 직접 접속되며, 3개 상태 게이트(1224)를 통해 레지스터(1220)의 비트 위치 8-15(바이트 위치 B1)과 24-31(바이트 B3)에 접속된다. 3 상태 게이트(122,1224)는 제어회로(1216)에 의해 제곧왼 각 신호 UBE에 의해 제어된다. 본 실시예에서와 같이, 레지스터(1212)에서의 제어 값은 출력 FIFO(236)가 8개 비트 값을 처리하는 것을 표시할 때, 제어 신호 UBE는 3 상태 게이트(1222)가 출력 포트에서 높은 임피던스를 나타내게 하는 상태를 만들며, 제어 신호 LBE는 3 상태 게이트(1224)가 출력 포트에서의 데이터 입력 값을 인가하고 그래서 레지스터(1220)의 바이트 위치(B1 과 B3)에 인가하도록 하는 상태를 만든다. 그래서 본 실시예에서, 레지스터(1214)의 8개 LSB 위치는 레지스터(1220) 바이트 위치 B0 내지 B3의 각각에 접속된다.
제어 회로(1216)는 B DST 필드에서 20의 값에 응답한다. 상기 검출된 후 신호 CK의 한 주기의 1/2에서 제어회로(1216)는 레지스터(1220)의 바이트 위치중의 하나에 레지스터(1214)로부터 8비트 값을 로드시켜 래치(1228)에서 각 플립플롭 FF0, FF1, FF2 또는 FF3를 셋팅하여 유효 데이터를 포함하는 것으로서 선택된 바이트 위치를 표시하기 위해 신호 LR0, LR1, LR2 또는 LR3 중의 하나를 발생한다. 동시에, 제어 회로(1216)는 입력 레지스터(1214)에서 유지된 데이터를 표시하기 위해 신호 LR을 발생한다. 선택된 레지스터(1220)에서의 바이트 위치는 카운터(1226)에 의해 제공된 신호 OCV에 의해 결정된다. 본 실시예에서, 카운터(1126)의 출력 신호는 레지스터(1210)에 유지된 바이트 위치값과 동일하다,
출력 FIFO(236)에 인가된 1바이트 데이터 값은 레지스터(1220)에서 바이트 위치중 하나를 점유한다. 상기 값은 상술한 바와 같이 레지스터(1212)에 새로운 제어 값이 인가될 때 VRAM(216)에 기록된다.
상술된 실시예에서, 출력 FIFO(236)에 인가된 초기 제어 값은 랜덤 모드에서 작동하도록 만들었다.
만약 그 대신에 제어 값이 순차 모드로 사용되어야 한다고 지정한 경우, 상술된 실시예는 바이트 전달 작용의 단지 첫 번째 순차만 기술하기로 한다. 상기 순차 모드에서 카운터(1226)에 의해 유지되는 값은 신호 CCK의 펄스 만큼 증가된다. 본 발명의 상기 실시예에서, 출력 FIFO(236)가 순차 모드에서 작동하도록 셋트되어 있을 때, 제어 회로(1216)는 신호 LR0 내지 LR3 중의 하나를 발생하도록 할 때마다 신호 CCK를 발생한다.
제2바이트의 순차가 레지스터(1214)에 인가되었을 때, 증가된 계수 값 신호 OCV는 제어 회로(1216)가 신호 LR0, LR1, LR2 또는 LR3 중의 다음 순차의 하나를 발생하게 하여, 레지스터(1220)의 다음 순차 바이트 위치 B0, B1, B2 또는 B3에 입력 바이트를 로드시키곤 한다. 카운터(1226)가 2비트 카운터이기 때문에 0, 1, 2, 3, 0 1 등의 값을 발생한다.
카운터 값 OCV가 3으로부터 0으로 증가되었을 때, 레지스터(1220)의 최종 바이트 위치 B3가 채워진다. 다음 제어 회로(1216)는 신호 LOR을 발생하여 레지스터(1220)에 있는 데이터를 레지스터(1218)에 전달하고, 신호 WR을 발생하여 VRAM 제어 유니트(238)가 레지스터(1218)에 유지된 데이터를 위해 VRAM 기록 작용의 스케줄을 조정하게 한다. 만약 신호 OCV가 3으로부터 0으로 변할 때 신호 OFR은 기록 작용이 진행 중이라는 것을 표시하는 논리 1값을 갖는 경우, 제어회로(1216)는 신호 LOR을 발생하지 않는다.
대신에, VRAM 제어 유니트(238)에 의해 제공된 신호 OFS가 플립플롭(1232)를 리셋트시켜 신호 OFR의 상태를 논리 제로로 변화시킬 때까지 상태를 동결시킨다.
플립플롭(1234)에 의해 제공된 신호 INV는 레지스터(1214)에 있는 데이터가 유효한 것으로 표시하는 동안(즉 레지스터(1220)에 전달된 상태를 표시하는 동안) 버스 B BUS로부터의 데이터를 레지스터로 전달하려고 시도하는 경우, 제어 회로(1216)는 플립플롭(1233)을 셋트시키는 신호 OP를 발생하며, 플립플롭(1233)을 통해 제공된 신호 OFPA를 통해 포우즈 논리부(240)에 셋트시키며, 회로(210)를 포우즈 상태로 둔다. 신호 OFPA는 신호 OFP를 발생하기 위해 AND 게이트(1236)에 의해 신호 OFR로 논리적으로 AND형이 된다. 신호 OFP는 포우즈 논리부(20)를 통해 VRAM 제어 유니트(238)에 인가된다. 상기 신호는 현재 진행중에 있는 VRAM 기록 작용의 우선순위를 발생한다. 상기 기록 작용이 완료되었을 때, VRAM 제어 유니트(238)는 신호 OFR과 OFP의 값을 논리 제로로 변화시키는 플립플롭(1232)을 리셋트시키는 신호 OFS를 발생한다.
논리 1의 값으로부터 논리 제로의 값까지 변이에 응답하여 회로(1216)는 레지스터(1220)에 있는 값을 레지스터(1218)에 로드시키고 래치(1228)의 값을 레지스터(1230)에 로드시키기 위해 신호 LOR을 발생한다. 다음 제어 회로는 VRAM 기록 작동을 요청하기 위해 신호 WR을 발생한다.
제어 회로(1216)가 신호 LOR을 발생한 후, 신호의 한 주기 1/2마다 래치(1228)의 플립플롭 FF0, FF1, FF2, FF3를 리셋트시키기 위해 신호 RM을 발생한다. 순차적 작동에 있어서, 출력 FIFO(236)는 입력 데이터의 다음 바이트를 받아들이며, 또한 레지스터(1220)의 바이트 위치 B0에서 기억을 할 수 있는 상태를 만든다. 따라서, 제어 회로(1216)는 신호 LR0 내지 LR3 중의 하나를 발생하여 레지스터(1214)에서 유지된 값을 레지스터(1220)의 대응 위치 B0 내지 B3 중의 하나를 발생한다. 동시에 제어회로(1216)는 입력 레지스터(1214)에서의 값을 무효의 값으로 표시하도록 신호 LR을 발생하여 플립플롭(1234)을 셋트시키며, 신호 INV를 통해 플립플롭(1233)을 리셋트시켜 처리기(210)가 포우즈 상태로부터 해제되게 한다.
출력 FIFO(236)의 작동에서 최종 변환은 16비트 데이터 전달이다. 상기 모드에서, 출력 FIFO는 버스 B BUS로부터 16비트 값을 받아들여 이들을 랜덤하게 또는 순차적으로 VRAM(216)에 기록한다. 출력 FIFO는 제어 레지스터(1212)에 로드된 제어 값에 의해 16비트 데이터 전달 모드에 있게 된다. 출력 FIFO가 상기 모드에 있을 때, 제어회로(1216)에 의해 제공된 신호 UBE는 레지스터(1220)의 비트 위치 B1과 B3에 레지스터(1214)의 8 MSB 위치에 있는 값을 3 상태 게이트(1222)가 인가하도록 하는 조건을 만든다. 상기 신호 LBE는 상기 모드에서 3 상태 게이트가 출력 포트에서 높은 임피던스가 존재하도록 하는 상태로 만든다.
16비트 전달 모드에서 레지스터(1210)에서의 바이트 위치 값의 MSB는 카운터(1226)의 LSB 위치에 로드되며, 제어 회로(1216)는 신호 OCV의 LSB에만 응답하게 한다. 상기 네트가 0이고 데이터 값이 레지스터(1214)에 로드될 때 제어 회로는 신호 LR0, LR1, 및 LR을 발생시켜 레지스터(1214)로부터 16비트 값을 레지스터(1220)의 바이트 위치로 전달하고, 그리고 래치(1228)에서의 플립플롭 F0O와 FF1을 셋트시키며, 레지스터(1214)가 무효 데이터를 유지하고 있는 것으로 표시한다. 한편, 신호 OCV의 LSB가 1일 때, 제어 회로(1216)는 신호 LR2, LR3 및 LR을 발생하여 레지스터(1220)의 비트 위치 B2와 B3에 16비트 값을 전달하며 래치(1228)에서 플립플롭 FF2와 FF3를 셋트시키며 레지스터(1214)에서 유지되는 데이터가 무효인 것을 표시한다. 제어 회로(1216)는 1에서 0로의 신호 OCV의 LSB의 값에서의 변이에 응답하여, 레지스터(1220)에 유지된 데이터를 레지스터(1218)에 전달하며, VRAM 기록 작용의 스케줄을 설정한다.
제12b도는 출력 FIFO(236)를 통해, 이루어진 5개 순차, 단일 바이트 데이터 전달의 상대적인 타이밍을 도시하는 타이밍 다이어그램이다.
본 실시예에서 사용된 포우즈 논리(240)는 2개의 게이트(도시하지 않음)를 포함한다. 입력 신호 SDP, IFOP, IFIP와 OFP는 출력 신호 UREQ를 발생하는 제1게이트에 인가된다. 신호 UREQ는 다음에서 설명하는 바와 같이, VRAM 제어 유니트(238)에 인가되어 통계 디코더(230), 입력 FIFO(232,234) 또는 출력 FIFO(236)중의 하나에 의해 요청된 긴급 메모리 동적을 표시한다. 신호 SDP, IFOP, IFIP와 OFP는 또한 버스 UR을 통해 VRAM 제어 유니트(238)에 제공된다.
제2OR 게이트에 대한 입력 신호는 VRAM 제어 유니트(238)에 의해 제공된 신호 SDAP, IFOPA, IFIPA 및 OFPA와 신호 VCUPA이다. 상기 제2OR 게이트의 출력 신호는 상술된 바와 같이 마이크로 코드 RAM과 순차기 회로(226)에 인가되는 신호 PAUSE이다.
제13a도와 13b도는 VRAM 제어 유니트(238)용으로 적용한 회로를 나타낸 블록 다이어그램을 형성한다.
상술된 바와 같이, VRAM 제어 유니트(238)용으로 통계 디코더(230), 입력 FIFO(232,234)와 출력 FIFO(236)를 위해 VRAM 어드레스 값을 기억하는 마이크로 코드 제어 워드의 B DST 필드에 응답하는 회로를 포함한다. 또한 VRAM 제어 유니트(238)는 표시 처리기(218)에 화소 값을 제공하기 위해 사용되는 비트맵 어드레스와 VRAM(216)에 의해 사용된 다이나믹 랜덤 엑세스 메모리의 내용을 주기적으로 리프레쉬시키는 리프레쉬 어드레스를 기억하기 위한 회로를 포함한다. VRAM 제어 회로(238)는 통계 디코더(230), 입력 FIFO(232,234) 및 출력 FIFO(236)에 의해 발생된 메모리 판독 및 메모리 기록 요청 신호에 응답하며, 표시 처리기(218)를 위한 판독 요청 신호, 압축된 비디오 신호(212)의 소스를 위한 기록 요청 신호 및 내부적으로 발생된 리프레쉬 요청 신호에 응답하는 회로를 포함하여, 여러 가지 요청된 메모리 작동을 개시하며, 적당한 형태로 이들의 완료 신호를 발생한다.
여러 가지 어드레스 값을 기억하는 회로는 제어 회로(1310)에 의해 제어된다. 회로(1310)는 클럽 신호 CK'버스 MCW에 의해 제공된 마이크로 코드 제어 워드의 B DST 필드와 다음에서 기술하는 바와 같이, 멀티플렉서(1378)에 의해 제공된 장치 선택값과 소스(222)에 의해 제공된 수직 필드 동기 신호에 응답한다. 제어 회로(1310)는 우선 여러 가지 장치를 위한 어드레스 값의 로딩을 제어한다.
통계 디코더(230)를 위한 어드레스 값은 로드하기 위해 예를 들러 B DST 필드에서 31의 값을 갖는 마이크로 제어 워드는 B SRC 필드에서의 값을 통해 예를들어 ALU(244)와 같은 비디오 신호 처리기(210)에서의 다른 회로들이 버스 B BUS에 인가된 값의 8개 LSB로서의 어드레스 값의 8개 MSB를 제공한다. B DST 필드에서 31의 값에 응답하여 제어 회로(1310)는 신호 STM으로서 논리 1값을 신호 CK의 한 주기동안 한쌍의 멀티플렉서(1312,1316)에 인가한다.
상기 신호는 버스 B BUS에 의해 전달된 8비트 값을 멀티플렉서(1312)가 레지스터(1314)의 입력 포트에 인가하게 한다.
신호 STM은 논리 1값을 갖는 동안, 제어회로(1310)는 레지스터(1314)가 입력 포트에 인가된 값을 로드 시키도록 신호 STHL을 발생한다.
다음 명령 싸이클에서 B DST 필드에 있는 30의 값을 갖는 마이크로 코드 제어 워드는 제어 유니트(1310)가 신호 CK'의 한 주기 동안 논리 1값에서 신호 STM을 유지하며 신호 STLL을 발생한다. 이들 신호의 결합은 멀티플렉서(1316)가 버스 B BUS의 14MSB 위치에 의해 전달된 값을 14비트 레지스터(1318)가 입력 포트에 인가된 값을 기억하도록 만든다. 레지스터(1314,1318)에 유지된 값은 멀키플렉서(1356)의 입력 포트에 인가된 22비트 어드레스 값을 형성하기 위해 나누어진다.
입력 FIFO(232,234)와 출력 FIFO(236)를 위한 작동 순서의 타이밍은 통계 디코더(230)를 위한 어드레스값을 저장하는 작동과 동일하다. FIFO(232)를 위한 어드레스 값을 기억하기 위해, 멀티플렉서(1320,1324)는 어드레스 값의 8개 MSB와 어드레스 값의 14LSB를 레지스터(1322,1326)의 입력 포토 각각 인가하기 위해 제어 회로(1310)에 의해 제공된 신호 IFOM에 의해 조건이 이루어진다. 레지스터(1322,1326)는 각각의 입력 포트에 인가된 값을 제어 회로(1310)에 의해 제공된 신호 IFOHL과 IFOLL에 응답하는 각 입력 포토에 인가된다. 멀티플렉서(1320,1324)와 레지스터(1322,1326)은 멀티플렉서(1312,1316)와 레지스터(1314,1318)에 대응한다. 신호 IFOM, IFOHL, IHOLL은 각각 신호 STM, STHL 및 STLL에 대응한다. 신호 IFOLL과 IFOHL은 22와 23의 B DST 값에 의해 활성화되며, 이들 두 값은 신호 IFOM을 활성화시킨다.
멀티플렉서(1328,1332)와 레지스터(1330,1334)는 각 멀티플렉서(1312,1316)과 레지스터(1314,1318)와 같은 구성이다. 이들 멜티플렉서와 레지스터는 제어 회로(1310)에 의해 제공된 신호 IFIM, IFIHL 및 IFILL에 응답하여 입력 FIFO(234)를 위한 22비트 어드레스 값을 로드한다. 이들 값의 8개 MSB는 B DST 필드가 27의 값을 가질 때 레지스터(1330)에 로드되며, 14 LSB는 B DST 필드가 26의 값을 가잴 때 레지스터(1334)내로 로드된다.
출력 FIFO(236)의 어드레스 값은 제어 회로(1310)에 의해 발생된 신호 OFM, OFHL과 OFLL에 응답하여 각 멀티플렉서(1336,1340)을 통해 각 레지스터(1338,1342)에 로드된다. 이들 신호는 상술된 각 신호 STM, STHL, STLL에 대응한다. 상기 제어 회로(1310) 펄스는 B DST 필드가 14의 값을 가질 때 14 LSB의 어드레스 값을 레지스터(1342)에 로드시키기 위해 신호 OFM과 OFLL을 발생하며 B DST 필드가 15의 값을 가질 때 8 MSB의 어드레스 값을 레지스터(1338)에 로드시키기 위해 신호 OFM과 OFHL을 발생한다. 각 레지스터 쌍(1322,13126), (1330, 1334), (1338, 1342)에서 유지되는 값을 분할하여 형성된 22비트 어드레스 값은 멀티플렉서(1356)의 각 입력 포트(1,2,3)에 인가된다.
입력 FIFO(232, 234)와 출력 FIFO(236)를 위해 어드레스 값을 전달하는 멀티플렉서의 대응 쌍의 제2입력 포트와 마찬가지로 통계 디코더를 위해 어드레스를 전달하는 각 멀티플렉서(1312, 1316)의 제2입력 포트는 가산기(1392)의 출력 포트에 접속된다.
증가된 어드레스 값은 통계 디코더(230), 입력 FIFO(232,234)와 출력 FIFO (236)에 사용된다. 통계 디코더(230)의 단 하나의 용도를 본원에서 기술하기로 한다. 증가된 어드레스 값의 8개 MSB는 멀티플렉서(1312)의 제2입력 포트로 인가되며, 14LSB는 멀티플렉서(1316)의 제2입력 포트에 인가된다. 신호 STM이 논리 제로값을 가질 때, 멀티플렉서(1312,1316)은 어드레스 레지스터(1314,1318)의 입력 포트에 이들 값을 전달시키도록 하는 상태로 된다. 한편 통계 디코더를 위한 메모리 판독 작용이 진행중인 동안 제어 회로(1310)는 레지스터(1314,1318)에 증가된 값을 로드시키기 위해 신호 STHL과 STLL을 발생한다. 만약 통계 디코더가 순차 모드에서 작동을 위해 셋트되는 경우, 또는 디코더(230)가 랜덤 모드에서 작동을 위해 셋트 될 때 제2 32비트 값이 VRAM(216)으로부터 필요한 경우, 상기 증가된 어드레스 값은 통계 디코더(230)를 위한 다음 메모리 작동을 수행하기 위해 사용된다.
가산기(1392)의 출력 포트는 또한, VRAM(216)에서 메모리 리프레쉬 작동을 수행하기 위해 사용된 어드레스 값을 기억하고 있는 22비트 레지스터(1346)의 입력 포트에 접속된다. 레지스터(1346)의 츨력 포트는 멀티플렉서(1356)의 입력 포터(5)에 접속된다. 리프레쉬 어드레스 레지스터(1346)에 의해 제공된 값은 때 4밀리초 마다 각 열에서 어드레스하는 싸이클에서 변화된다. 본 발명의 실시예에서, 리프레쉬 작동은 다음에서 설명하는 회로 즉, VRAM 제어 유니트(238)에 대해 내부적인 회로에 의해 제어된다.
본 발명의 실시예에서 사용된 VRAM 제어 유니트(238)에 의해 유지되는 최종 어드레스 값은 비트 맵 어드레스이다. 상기 어드레스 값은 예를들어 19와 18의 B DST 값을 갖는 2개의 개별 마이크로 코드 제어 워드에 응답하는 각 제어 신호 BMHL과 BMLL을 발생하여 레지스터(1348)과 (1350)내에 기록된다. 어드레스(1348,1350)에 기록된 어드레스 값은 압축된 비디오 신호(212)의 소스에 의해 제공된 영상의 압축 표시로부터 비디오 신호 처리 회로(210)에 의해 발생된 휘도 신호 비트 맵의 개시 어드레스이다. 표시 처리기(218)를 위한 데이터를 엑세스하기 위해 사용된 비트 맵 어드레스 값은 레지스터(1354)에서 기억된다.
레지스터(1350)에 있는 14비트 값과 레지스터(1348)에 있는 8비트 값을 연결시켜 얻어진 22비트 어드레스 값은 소스(222)에 의해 제공된 수직 필드 동기 신호 VS의 펄스에 응답하여, 레지스터(1354)에 로드되낟. 정상 모드 작동에서, 비디오 신호 처리(210)는 새로운 비트 맵 어드레스 값을 신호 VS의 매 2개 펄스마다 한 번씩 로드시킨다. 그래서, 각 비트 맵은 움직이는 비디오 장면을 재생하기 위해 2번 표시된다.
레지스터(1348,1350)의 내용은 다음과 같이, 레지스터(1354)에 전달된다. 신호 VS의 펄스와 일치하면, 제어 회로(1310)는 신호 BMM의 상태를 신호 CK의 한주기 동안 논리 1로 변화시킨다. 이는 멀티플렉서(1352)가 레지스터(1348,1350)에 유지된 어드레스 값을 레지스터(1354)의 입력 포트에 인가하도록 한다. 한편 신호 BMM이 논리 1의 상태에 있을 때, 제어회로(1310)은 신호 BML를 발생하며, 레지스터(1354)가 입력 포트에 인가된 값을 로드시키게 한다. 레지스터(1354)에 유지된 값은 멀티플렉서(1356)의 입력 포트(6)에 인가된다.
신호 BMM이 논리 제로 상태일 때, 멀티플렉서(1352)는 가산기(1392)에 의해 제공된 22비트 증가 어드레스 값을 레지스터(1354)의 입력 포트에 인가시키게 한다. 표시 처리기(218)를 위한 메모리 판독 작용동안, 제어 회로(1310)는 신호 BML을 발생하며, 신호 BMM을 논리 제로 상태로 유지하여 증가된 비트 맵 어드레스 값을 레지스터(1354)에 로드시켜 표시 처리기(218)를 위한 다음 판독 작용을 위해 준비를 한다.
현재 어드레스 값이 증가되는 한편 통계 디코더(230) ; 입력 FIFO(232,234) 및 출력 FIFO(236)중의 하나를 위해 새로운 어드레스 값을 로드시키려고 하는 경우, 어떤 전위 갈등이 VRAM 제어 유니트(238)에서 존재한다. 상기 갈등은 새로운 어드레스 값이 로드되고, 다음 가산기(1392)에 의해 제공된 증가된 이전 어드레스 값을 중복하여 기록하는 경우 발생한다. 전위 갈등을 검출함과 동시에 제어 회로(1310)는 신호 VCUPA의 상태를 논리 1 상태로 변화시키는 한편 어드레스 값은 증가되어 레지스터 쌍(1314,1318), (1322,1326), (1330,1334) 또는 (1338,1342)중의 하나에 기록한다. 상기 신호는 처리기(210)를 증가된 어드레스가 기억되었을 때까지 포우즈 상태로 두기 위해 포우즈 논리(240)에 인가된다. 제어 회로(1310)는 전위 갈등이 존재할 때 즉, 상술된 레지스터 쌍중의 하나에 데이터를 기억시키려고 하는 시도가 증가된 어드레스 값을 기억하기 위한 시도와 일치할 때 처리기(210)를 단지 포우즈시킨다.
어드레스 로드 작동의 상대적 타이밍의 도면과 같이, 제13c도는 초기 어드레스 값과 증가된 어드레스 값이 통계 디코더(230)를 위해 로드된 경우 제어 회로(1310)에 의해 발생된 여러 신호의 타이밍 다이어그램이다.
다음에서 각각의 소자(230,232,234,236)은 정상 메모리 요청 또는 긴급 메모리 요청을 발생할 수도 있다. VRAM 제어 유니트(238)는 라운드-로빈으로 불리는 원형 순차로 소자의 각각에 의해 정상 메모리 요청 신호를 취급한다. 모드 소자(230,232,234,236)은 거의 같은 우선 순위를 갖는 것으로 테스트된다.
소자(230,232,234,236)에 의해 발생되는 긴급 메모리 요청 작용은 제2 스케줄링 메카니즘에 의해 취급된다. 상기 제2스케줄러는 리프레쉬 작용, 압축된 비디오(212)의 소스로부터 기록 작용과 처리기(218)를 위한 비트 맵 판독 작용을 취급한다. 상기 스케줄러는 고정된 우선 형태에 따라 작용한다. 비트 맵 판독 작용은 내림 우선순위로 이어지는 가장 높은 우선 순위를 갖는다. 즉, 리프레쉬 작용, 압축 데이터 기록 작용, 출력 FIFO(234,232)를 위한 긴급 메모리 작용과 통계 디코더(230)를 위한 긴급 메모리 판독 작용등이다. 상기 작용의 스케줄링 및 개시를 제어하는 회로는 다음과 같다.
상술한 바와 같이, 메모리 요청 신호 OFR, IFIR, IFOR, 및 SDR은 버스 R/S를 통해 VRAM 제어 유니트(238)에 인가된다. 제13a도 및 b도에 있어서, 상기 신호는, 버스 R/S에 의해 전달된 다른 신호로부터 나누어지며, 배럴 시프터(1360)에 인가된다. 배럴 시프터(1360)에 있어서, 4비트 요청 신호는 원형 시프트(1362)에 인가되며, 멀티플렉서(1364)의 한 입력 포트에 인가된다. 시프트(1362)는 1비트 위치마다 4개 비트 요청 신호의 3개 MSB를 하위 비트쪽으로 시프트 시키며, 4개 비트 요청 신호의 LSB를 출력 신호의 MSB위치로 시프트 시킨다. 시프터(1362)의 출력신호는 멀티플렉서(1364)의 제2입력 포트에 인가된다. 멀티플렉서(1364)에 의해 제공된 신호는 원형 시프트(1366)에 인가되며, 멀티플렉서(1368)의 한 입력 포트에 인가된다. 원형 시프터(1366)는, 멀티플렉서(1369)의 제2입력 포트에 인가된 출력 값을 발행하기 위해, 입력 값의 2개의 LSB와 2개 MSB 위치를 교환한다. 멀티플렉서(1364,1368)은 레지스터(1376)에 의해 제공된 2개 비트 신호의 하위 비티와 상위 비트에 의해 제어된다. 0.1, 3의 값을 갖는 상기 신호에 응답하여, 배럴 시프터(1360)는 0,1,2 또는 3비트 위치 각각의 하위 비트 위치에 대해 원형 시프트를 실행한다.
배럴 시프트(1360)에 의해 제공된 출력 신호는 4비트 우선순위 디코더(1370)에 인가된다. 우선순위 디코더의 출력신호는, 입력포트의 인가된 값의 최상위 하나 값 비트중의 비트 위치 번호 1,2,3이다. 예를 들어, 4개 비트 입력 값이 0일 경우, 우선순의 디코더(1370)의 출력 값을 최상위 1값 비트가 비트 위치 2에 있기 때문에 2가 될 것이다. 우선 순위 디코더(1370)의 출력 신호는 제어 회로(1310)에 의해 제공된 신호 CCK에 응답하여 입력 포트에 인가된 값을 로드시키는 레지스터(1372)에 인가된다.
레지스터(1372)에 유지된 값은 2비트 가산기(1374)의 한 입력에 인가된다. 가산기(1374)의 출력 포트가 2비트 레지스터(1376)의 입력 포트에 접속된다. 레지스터(1376)의 출력 포트는 배럴 시프트(1360)에 접속되며, 가산기(1374)의 제2입력 포트에 접속된다. 레지스터(1376)와 가산기(1374)의 결합은 모듈4 어큐물레이터이다. 주어진 시간에 레지스터(1376)에서 유지된 값은 상기 시간까지 레지스터(1372)에 의해 가산기(1374)에 인가된 값의 모드의 누적된 합계 모듈 4이다. 레지스터(1376)에서 유지된 값은 메모리 작동이 실행되는 소자의 수이다. 제로는 통계 디코더(230)에 대응하며, 1은 입력 FIFO(232)에 대응하며 2는 입력 FIFO(234)에 대응하며, 3은 출력 FIFO(236)에 대응한다. 배럴 시프터(1360)의 작용에 위해, 선택된 소자를 위해 메모리 요청 값은 우선순위 디코더(1370)에 대한 입력의 LSB 위치에 시프트되어 다음 메모리 작동을 위해 선택된 최하위 우선순위를 소자에 주어진다. 배럴 시프터(1360) 우선순위 디코더(1370), 레지스터(1372,1376)와 가산기(1374)를 포함하는 소자(230,232,234,236)에 의해 발생된 메모리 요청은 거의 같은 우선순위로 처리되게 하는 스케줄러이다.
레지스터(1376)의 출력 신호는 MSB 위치에서 논리 제로를 연결시켜 3비트로 확장된다. 멀티플렉스(1378)의 제2 입력 포트는 긴급한 요청, 리프레쉬 요청 및 압축 데이터 기록 요청 및 비트 맵 판독 요청을 취급하는 스케줄러의 출력 신호를 수신하기 위해 접속된다. 통계 디코더(203), 입력 FIFO(232,234) 및 출력 FIFO(236)을 위한 긴급 메로리 요청을 각 신호 SDP, IFOP, IFIP, 와 OFP에 의해 전달된다. 이들 신호는 비트 위치 0,1,2 및 3에서 각각 우선순위 디코더(1380)의 입력 포트에 인가된다. 비트 맵 판독 요청 신호는 소스(220)에 의해 제공된 수평 라인 동기 신호 HS이다. 상기 신호는 우선순위 디코더(1380)의 입력 포트의 비트 위치에 인가된다. 리프레쉬 요청 신호는 카운터(1382)에 위해 발생된다. 카운터(1382)는 종래의 7비트 래칭 카운터이다. 신호 CK′의 128개 펄스를 계수하며, 카운터가 리셋트될 때까지 논리 1값에서 1비트 출력 신호 RF를 래치시킨다. 본 발명의 상기 실시예에서 신호 RF는 우선순위 디코더(1380)의 입력 포트의 비트 위치 5에 인가된다. 카운터(1382)의 리셋트 입력 단자는 VRAM 신호 발생기(1388)에 의해 제공된 신호 RFS에 접속된다. 상기 신호는 카운터(1382)를 리셋트시키기 위해 리프레쉬의 끝에서 발생기(1388)에 의해 발생된다. 상기 압축된 데이터 판독 요청신호 CVR은 상술된 바와 같이, 압축된 비디오(212)의 소스에 의해 VRAM 제어 유니트(238)에 인가된다. 상기 신호는 비트 위치4에서 우선순위 디코더(1380)의 입력 포트에 접속된다.
우선순위 디코더(1380)위 출력 포트는 레지스터(1384)의 입력 포트에 접속된다. 레지스터(1384)는 제어회로(1310)에 의해 제공된 신호 CCK′의 펄스에 응답하여 입력 포트에 인가된 값을 로드시키도록 하는 상태가 된다. 레지스터(1384)의 3비트 출력 신호는 멀티플렉서(1378)의 제2 입력 포트에 접속된다.
멀티플렉서(1378)은 OR 게이트(1386)에 위해 신호에 의해 제어된다. 상기 신호는 포우즈 논리부(240)에 위해 발생된 신호 UREQ와 신호 HS, CVR 및 RF의 논리 OR이다. OR 게이트(1386)의 출력은 우선순위 디코더(1380)의 하나 이상의 입력 신호가 논리 1일 때 논리 1이다. 멀티플렉서(1378)는 제어 입력 신호가 논리 제로일 때, 레지스터(1376)에 의해 제공되는 3비트 값을 통과시키며, 레지스터(1384)에 의해 제공된 3비트를 통과시키도록 하는 상태가 된다.
멀티플렉서(1378)에 의해 전달된 값은 멀티플렉서(1356)에 인가된 6개 어드레스 값중 어느 것이 VRAM(216)의 뱅크 선택 논리부와 어드레스 입력 포트에 인가되며 가산기(1392)의 제1입력 포트에 인가되는가를 표시한다. 멀티플렉서(1378)에 의해 값은 가산기(1392)의 제2 입력 포트에 제공하는 ROM(1390)에 인가된다. ROM (1390)은 메모리 작동이 실행될 것이라는 것이 통계 디코더(230) 입력 FIFO(232, 234) 또는 출력 FIFO(236)에 위해 요청된 경우 1의 증가 값을 제공하며, 메모리 작동이 비트 맵 판독 작용된 경우 64의 증가 값을 제공하고, 메모리 작용이 리프레쉬 작용인 경우 256의 증가 값을 제공하도록 프로그램되어 있다. 상기 상술한 바와 같이, 제어 회로(1310)는 메모리 싸이클 동안 레지스터에서 증가된 어드레스 값을 포트시키기 위해 적당한 레지스터를 위해 로드 신호를 활성화시키는 멀티플렉서(1378)에 위해 제공되는 3개 비트에 응답한다.
VRAM 신호 발생기(1388)는 랜덤 판독 또는 기록, 직렬 판독 또는 리프레쉬 작용을 실행하기 위해 VRAM(216)을 위해 제어 신호를 발생하며 메모리 작동이 완료되었을 때, 적당한 스트로브 신호를 발생하는 멀티플렉서(1378)에 의해 제공된 3비트 신호에 응답한다. VRAM 신호 발생기는 출력 FIFO(236)에 의해 제공된 4비트 신호 CASM을 수신하기 위해 접속된다. 상기 신호는 행 어드레스 스트로브 신호 CAS0, CAS1, CAS2 및 CAS2를 선택적으로 디스에이블시키기 위해 메모리 기록 작용동한 사용되며, 상기 신호들중의 하나는 VRAM(216)에서 메모리 집적회로의 8개열의 각 쌍에 인가된다. 상술한 바와 같이, 본 발명의 상기 실시예와 더불어 사용된 VRA M(216)은 집적 회로에서 8개 행과 16열을 갖는 매트릭스로서 구성된다. 각 집적회로는 4비트의 데이터를 수용하여 제공한다. 모두 8개 행의 메모리에 의해 제공된 32비트를 제공하기 위해 행은 쌍을 형성하여, 행 어드레스 스트로브 신호
Figure kpo00013
,
Figure kpo00014
,
Figure kpo00015
Figure kpo00016
의 각각 서로 다른 것이 행의 각 4쌍에 인가된다. 본원에 참고로 포함되어 있으며 NEC에 의해 출판된 1985년 도판 메모리 제품 데이터 북에서 기술된 바와 같이, 행 어드레스 스트로브가 μPD41264 집적 회로에 대해 메모리 기록 작용에서 활성화 되지 않았을 때, 어드레스된 메모리 셀에는 데이터가 기록되지 않는다. 따라서 4비트의 신호 CASM이 논리 제로인 경우, 신호 발생기(1388)는 대응하는
Figure kpo00017
신호를 디스에이블시키면서, 버스 D BUS의 대응 바이트 위치에서 데이터가 VRAM에 기록되지 않는다. 어드레스된 32비트 워드에서 바이트 위치의 이런 내용은 방해가 되지 않은 채로 유지된다.
VRAM 신호 발생기(1388)는 실행될 메모리 작동의 형태를 위해 적합한 형태로서, 열 어드레스 스트로브 신호 RAS, 기록 인에이블 신호 WE, 출력 인에이블 신호 OE, 직렬 제어 신호 SC, 직렬 출력 인에이블 신호 SOE와 마찬가지로 행 어드레스 스트로브 신호
Figure kpo00018
,
Figure kpo00019
,
Figure kpo00020
Figure kpo00021
를 발생하는 유한 상태의 기계이다. 이들 신호를 위한 타이밍 다이어그램은 메모리 제품 데이터 북의 상기 부분을 참조로 하여 기술하기로 한다.
VRAM(216)을 구성하는 개별 집적 회로를 제어하는 신호를 발생할 뿐만 아니라 VRAM 신호 발생기(1388)는 통계 디코더(230), 입력 FIFO(232,234), 출력 FIFO(236)과 리프레쉬 카운터(1382)에게 요청된 메모리 작용이 실행되었다는 것을 표시하는 신호 SDS, IFOS, OFS 및 RFS를 제공한다. 이들 신호는 메모리 싸이클의 마지막에서 발생된다. 본원에서 기술된 설명과 메모리 제품 데이터 북의 상기 부분에 있는 타이밍 다이어그램으로부터 본 분야의 기술에 숙련된 사람은 VRAM 신호 발생기(1388)용으로 적합한 쉽게 고안으로하여 구성할 수 있다.
VRTAM 신호 발생기는 또한 멀티플렉서(1378)에 위해 제공된 신호를 위한 4의 값에 응답하여 제어 출력단자에서 높은 임피더스를 제공한다. 상기 고 임피던스 상태는 합성 비디오 신호(212)의 소스가 메모리 기록 작용을 위해 VRAM(216)을 제어하게 된다. 본 발명의 실시예에서, 멀티플렉서(1378)에 의해 제공된 4의 값은 멀티플렉서(1356)에 접속 디코더(1355)에 의해 디코드된다. 디코더(1355)에 인가된 4의 값은 논리 1값을 멀티플렉서(1376)의 입력 단자 EN에 인가하도록 한다. 상기 신호는 멀티플렉서(1356)가 VRAM(216)의 어드레스 포트에 고 임피던스를 제공하게 한다. 상기 고 임피던스는 압축된 비디오 신호(212)의 소스가 하나의 메모리 싸이클을 위해 VRAM의 어드레스 입력 포트를 제어하게 한다.
각 VRAM 메모리 싸이클은 신호 CK′의 4개 주기 정도의 범위이다. 신호 CK′를 이용한 제어 회로(1310)는 신호 CK′의 한 주기의 1/2만큼 VRAM 메모리 싸이클을 앞서사는 신호 CCK′를 발생한다. 신호 CCK의 입상부 다음 즉, VRAM 메모리 싸이클의 시작에서 신호 CK′의 한 주기마다, 스케줄링 회로는 그렇게 스케줄된 것 중에서 선택되고 선택된 작동이 멀티플렉서(1379)의 출력 포트에서 이용 가능하다.
선택된 값은 멀티플렉서(1356)이 어드레스, 입력 단자와 VRAM(216)의 뱅크 선택 논리에 선택된 레지스터에서의 어드레스 또는 고 임피던스를 인가하도록 하는 상태를 만들며, VRAM 신호 발생기(1388)는 선택된 메모리 요청이 수평 라인 동기 신호 HS, 카운터(1382), 출력 FIFO(232) 또는 입력 FIFO(234)에 의해 발생되는 경우 직렬 판독 작용, 리프레쉬 작용, 랜덤 기록 작용, 또는 랜덤 판독 작용을 하게 된다. 메모리 싸이클의 끝전에 신호 CK′의 한 주기에서, VRAM 신호 발생기(1388)는 요청된 메모리 작동이 실행되었다는 것을 표시하기 위해 적당한 신호 RFS, OFS, SDS, IFOS 또는 IFIS를 발생한다.
VRAM 제어 유니트는 모든 VRAM 메모리 싸이클을 사용할 수 없다. 왜냐하면, 압축된 비디오 신호(212)의 소스가 압축된 비디오 데이터를 VRAM(216)에 로드시키기 위해 주기적으로 사용하기 때문이다. VRAM(216)의 사용에서 전위 갈등은 긴급 메모리 요청을 처리하는 스케줄링 회로에 의해 해결된다.
압축된 비디오(212)의 소스가 VRAM(216)에 기억을 위해 32비트 값을 가질 때, 신호 CVR의 상태를 논리 1로 변화시킨다. 상기 신호 CVR은 비트 위치 4에서 우선순위 디코더(1380)의 입력 포트에 인가된다. 스케줄링 회로는 상기 형태의 요청을 처리할 때, 4의 값을 제어회로(1310)에 대한 VRAM 신호 발생기(1388)에 인가하여, 멀티플렉서(1356)에 접속된 디코더(1355)에 인가한다. 상기 값은 신호 발생기(1388)과 멀티플렉서(1356)가 버스 AD/CTL을 통해 VRAM(216)에 접속된 이들의 출력 단자에서 고 임피던스를 제공하게 한다. 또한, 4의 값은 제어 회로 (1310)가 압축 비디오(212)의 소스에 대한 신호 GRAT와 같이 논리 1값은 인가하게 한다. 상기 신호는 어드레스를 인에이블시키며, 소스(212)에 대해 내부인 제어 회로가 소스(212)로부터 VRAM(216)내에 데이터를 기억시키는 메모리 기록 작용을 위한 신호를 발생한다.
VRAM 신호 발생기(1388)는 2개의 별도 회로, 즉 랜덤한 기록, 직력 판독 또는 리프레쉬 작용이 실행될 것인가를 표시하는 신호 스케줄러에 위해 제공된 값을 변환시키는 제1회로와, 이들 신호로부터 VRAM 집적 회로에 인가된 실제 신호를 발생하는 제2회로 나누어질 수 있다는 사실을 고려해 볼수 있다. 제1회로는 VRAM 제어 유니트의 일부일 수 있으며, 그래서, 처리기 집적 회로(210)에 대해 내부적일 수 있다. 그러나, 제2회로는 회로(210)의 외부에 실행될 수 있으며, 따라서 압축된 비디오 소스(212)에 의해 나누어질 수 있다.
본원에서 기술된 발명의 실시예는 휘도 비트 맵의 어드레스를 기억하기 위해, 한 쌍이 비트 맵 어드레스 레지스터를 가지는 한편, 칼라 비디오 신호를 처리하는 본 발명의 실시예는 2개의 색차 신호 비트 맵의 어드레스를 기억하기 위해 2개의 부가적인 비트 맵 레지스터를 갖는 것을 고려해 볼 수 있다. 또한 모든 비트 맵 어드레스 레지스터에 대한 초기 비트 맵 어드레스 값을 마이크로프로세서(224)에 의해 기억될 수 있으며, 한편 비디오 신호 처리기(210)는 정지 상태로 유지되는 것을 고려해 볼 수 있다.
상기 비디오 신호 처리기(210)의 회로를 상세하게 기술한다. 상기 처리기가 압축된 비디오 신호를 디코드 하는데 사용되는 방법을 설명하기로 한다.
제1도를 참고로 하여 상기에서 나타낸 바와 같이, 처리기에 의해 재구성될 영상은 상대적인 또한, 상대적 2차 선형, 다항식(Ax+By+C)으로 장방형 영역(이하 셀 이라함) 또는 DPCM 인코딩 기술을 이용한 개별 인코드된 화소로 기술하는 레코드에 인코드된다. 제1도에 기술된 레코드 포맷은 개념적으로 유효하지만, 인코드된 데이터의 양호한 장치는 제14도에 도시되어 있다. 데이터는 5개 부분, 즉 각 셀에 대해 유지되는 데이터를 포함하는 셀 테이블과 만족스럽게 인코드된 데이터(이하 데이터라 함)의 개별 블록, 테이블쌍으로 구성되며, 이들 중의 하나는 2차 선형 방정식 (기울기 리스트)을 디코드하기 위해 사용되며, 다른 하나는 DPCM 인코드 데이터(테이블 D)를 디코드하기 위해 사용되며, 현재 표시되고 있는 영상을 위한 비트 맵을 위해 사용된다. 만족스럽게 인코드된 데이터 세그먼트는 분리되어, 통계 디코더(230)를 사용하여 처리기(210)에 의해 판독될 수 있다. 셀 테이블, 데이터 값, 기울기 리스트, 테이블 D와 비트 맵은 모두 VRAM(216)에 기억된다. 또한, 디코딩 작용이 진행됨에 따라 다음 영상을 기술하는 새로운 또는 현재 비트 맵이 발생한다.
셀 테이블은 각 셀에 대해 번호로서 인코드된 형태 T(예 1=절대적, 2=상대적, 3=DPCM)과 상부 좌측코너(XPOS, YPOS)에 있는 화소값의 비트 맵에서의 좌표 및 크기(H, W)를 포함한다. 만약 셀이 상대적 또는 절대적 셀인 경우, 다항 계수 A, B와 C에 대한 정보가 주어진다. 만약 셀이 상대적인 경우, 현재 표시되고 있는 영상의 비트 맵에서의 셀에서 대응 화소값에 상대적인 현재 셀에서 화소값의 변위값 △X와 △Y가 주어진다. 디코딩을 간단히 하기 위해 레코드는 길이가 고정된 것으로 가정한다. (레코드당 10개 비트 워드). 10개 워드의 데이터보다 작은 레코드(DPCM과 같은)는 10워드에 패드된다.
다항식 Ax+By+C에서 기울기를 나타내는 계수 A와 B는 특별한 방법으로 인코드된다. 실제 A와 B값을 포함하는 대신에, 셀 테이블은 기울기 리스트에 색인 값을 포함시킨다. 상기 기울기 리스트는 각 영상(또는 각 영상의 순차 또는 교번)을 따라 디코더에 전송된다. 기울기 리스트에 대한 이유는 디코더가 다음에 상술되는 바와 같이 디코딩에서 개선된 효율을 위해 디코더가 기울기 테이블을 이용하도록 허용한다.
전체 압축된 영상을 디코드하기 위해 사용된 마이크로코드가 일반적으로 처리기 이용 가능 마이크로코드 RAM(310)으로 맞지 않기 때문에 디코딩 작용을 여러 가지 전달로 나누어진다. 제1전달은 모든 절대적 셀을 디코드하며 다음에 상대적 셀을 위한 또다른 전달과 DPCM 셀을 위한 또다른 것으로 나누어진다. 상기 과정은 제15도에 개략적으로 나타나 있으며 이는 연속적인 스위치(1510)의 선택에 의해 세번 불러낸 같은 과정(1520)(지정된 형태의 모든 셀을 디코드하기 위해)으로 구성되어 있다.
처리 과정(1520)의 세부 사항이 제16도에 도시되어 있다. 첫째, 통계 디코더(230)와 입력 FIFO(232)는 단계(1610,1620)에서 통계적으로 인코드된 데이터와 셀 테이블을 포함하는 VRAM의 세그먼트를 어드레스 하기 위해 시작이 된다. 단계 1630은 셀 테이블의 레코드로부터 값 T를 판독한다. 값 T는 셀 형태를 지정한다. 단계 1640에서 값 T는 특정 테이블 끝 값과 비교된다. 전형적으로 제로는 테이블 끝 플래그용으로 사용되며 비교 작용이 신속하게 진행된다. 만약 테이블 끝에 달하지 않았을 때 값 T는 처리되고 있는(단계 1650에서) 셀의 형태와 비교된다. 만약 상기 코드가 현재 처리되고 있는 형태인 경우 레코드는 디코드 되며(단계 1660) 그렇지 않는 경우 레코드는 생략된다. (단계 1670).
디코딩 셀의 처리 과정은 다음에서 상세히 기술하기로 한다. 시작을 위해 절대적 및 상대적 셀을 효과적으로 디코딩하기 휘한 처리 과정의 중요 요소인 기울기 표의 개념을 소개하며 기술할 필요가 있다.
기울기 테이블 개념은 제17a도 및 제17b도에 도시되어 있다. 제17a도는 2차 선형 다항식 함수 Ax+By+C로 채워지도록 되어 있는 장방형 영역을 도시한다. 상기 2차 선형 함수는 2개 절대적 셀에 의해 사용되며, 상기 셀은 상기 함수로부터 값으로 직접 채워지고 상대적 셀에 의해 사용되며, 여기서 상기 함수에 의해 제공된 값이 이전의 비디오 영상의 셀로부터 화소값에 가산되는 것을 고려해 보기로 한다. 기울기 테이블은 절대적 그리고 상대적 셀에 대해서도 같다.
함수 P(x,y)의 값=Ax+By+C는 첫째 열에 대해 P0, P1, P2 등과 제2열에 대해 P0′P1′P2′등과 같은 값으로 도시된 바와 같다. 실제 시간에서 상기 함수의 값을 계산하는데 2가지 문제가 있다. 첫째 문제는 2번의 곱이 필요한 것이다(Ax와 By). 만약 모든 계수(A,B,C)가 정수인 경우, 상기 문제는 증가 가산의 공지된 기술을 사용하여 해결될 수 있다. 이는 P(x+1,y)P(x,y)+A이라는 사실의 잇점을 이용하여 셀의 수평 라인내의 화소값이 값 A의 연속적인 어큐뮬레이터에 가산하여 계산될 수 있다. 그러나, 본 발명에서, 값 C는 항상 정수이며 그러나 값 A와 B는 정수가 아니다. 이는 영상에서 휘도갑의 공간 변화가 화소당 1회색레벨보다 전형적으로 적기 때문이다. 따라서 실제로 A와B가 분수를 가질 뿐만 아니라 이들은 통상적으로 절대값인 1보다 통상 적다. 또한 2개의 화소값이 하나의 명령 싸이클에서 계산될 수 있기 때문에 이들 화소값을 계산하기 위해 포화 작용과의 이중 가산을 이용하는 것이 바람직하다. 그러나, 포화 작용과의 이중 가산은 정수 가산을 지원하며 그래서 분수 기울기 값은 누적할 수 있다.
상기 제2문제를 풀기 위해, 기울기 리스트와 기울기 테이블이 사용된다. 기울기 리스트는 전체 영상이 처리되기 위해 배타적인 기울기 값으로서 사용되도록 되어 있는 A와 B의 특정값(1/256번째 정밀도로 규정된)의 작은 셋트이다. 바꾸어 말하자면, 영상에서 자연적으로 발생하는 A와 B의 각 값은 기울기 리스트에서 값의 하나중에 의해 근사화 된다. 제17a도는 기울기 리스트에서 발견될 수 있는 A의 특정값을 위해 함수 P(x,y)를 평가하는 결과를 나타낸다. 차이값 D0, D1, D3 등은 하나의 방해 화소값에 의해 나누어지는 화소값 사이의 차의 정수 부분으로서 계산된다. 예를 들어, D2는 P2-P0의 값의 정수 부분과 같으며, D3는 P3-P1의 정수 부분과 같다. 차이값 D0과 D1의 제1쌍은 실제 화소값 P0와 P1으로부터 값 P0을 감산하여 얻어진다는 것을 알아야 한다.
차이값의 셋트는 다항식에서 A의 값에 따라 다르며 따라서 기울기 리스트에서 A의 각 값에 대해서 차이값의 테이블은 계산될 수 있다. 기울기 기스트가 주어진 경우, 단지 정수값을 포함하는 기울기 테이블을 전체적으로 사전 계산될 수 있으며, VRAM (216)에서 기억되며, 따라서 아주 실시간 디코딩 비용이 거의 들지 않는다.
화소는 상기 도면에서 쌍으로 도시된다. 왜냐하면 디코딩 과정은 제4b도를 참조로 하여 상술된 디코딩 처리기에서 포화 ALU 작용과의 이중 가산을 이용한다. 상기 도면에서 도시된 값은 8비트 값이며 각 쌍의 값은 단일 16비트 워드로 팩된다. X 기울기 테이블 값이 사용 가능한 것으로 가정하는 경우, 함수 P(x,y)의 값은 예를 들어 다음과 같이 단일 ALU 작용으로 계산될 수 있다.
(P4,P5)=(P2,P3)+](D4,D5)
여기서 +]는 포화 작용과의 이중 가산을 나타낸다. 8비트 값 쌍[P0,P0]로 로드된 어큐물레이터 레지스터로 시작하여 그리고 기울기 테이블로부터의 값쌍을 연속적으로 가산하여 P(x,y)값의 정확한 재구성은 화소값의 각 쌍에 대해 단지 단일 ALU 작용을 이용하여 얻어진다.
(P0 2,P0 2)=(PP)+](Q0,Q0)
여기서 (Q0,Q0)는 X 기울기 테이블과 유사하지만 다르게 구성된 Y 기울기 테이블로부터의 한 값이다. Y 기울기 테이블에서 제17도에 표시된 바와 같이, 함수 P(x,y)의 수직 인접값은 기울기 테이블값을 얻기 위해 감산된다. 이는 X 기울기 테이블과는 다르며 하나의 틈새의 화소에 의해 나누어진 값이 감산된다. 또한, Y 기울기 테이블에서 이중 8비트 워드의 1/2에서 복제된다.
요약하면 비디오 신호 처리기(210)는 현재 영상을 위해 사용되는 기울기 리스트를 포함하는 기울기 리스트를 압축된 비디오 테이터의 일부로서 수신한다. 절대적 또는 상대적 셀을 디코딩하기 전에 처리기(210)는 기울기 리스트에서 각 기울기를 위한 하나의 벡터 입력에서 X와 Y의 기울기 모두를 구성한다. 이들 기울기 표는 VRAM (216)에 있는 소정의 위치에서 기억된다. 기울기 테이블이 기울기 리스트에서 보다 셀 테이블에서 인코드될 수 있는 것을 고려할 때 기울기 리스트는 보다 적고 그래서 코딩 효율에 이바지 한다.
X와 Y 기울기 표와 기울기 리스트의 개념은 제17b도에 실시예로서 도시되어 있다. 상술된 바와 같이, X와 Y 기울기 테이블은기울기 리스트에서 각 기울기 값을 위한 엔트리를 갖는다. 엔트리는 X 기울기 엔트리에 대한 교번 화소값 사이의 차와 Y 기울기 테이블에 대한 인접 화소값 사이의 차에 대응하는 일련의 값으로 구성된다. 다음에 설명되는 실시예에서 기울기 리스트 1.25에서 6항에 대한 X 기울기 테이블 엔트리와 기울기 리스트 2.25에서 10항에 대한 Y 기울기 테이블 엔트리가 발생된다.
X 기울기 테이블 엔트리는 16비트 기울기 값은 이전의 합계에 가산하여 실행 합계를 누적시켜 발생된다. 각각의 부가적인 작용에 대해 누적된 합의 정수 부분(즉 8개 MSB)가 기억된다. X 기울기 테이블 엔트리는 기억된 값중의 교번되는 하나의 차이를 위하여 발생한다. 이들 값은 선택된 기울기 값을 위한 X 기울기 테이블 엔트리로서 기억된다. X 기울기 테이블 엔트리를 발생하는 알고리즘은 방해값에 의해 나누어진 값의 차를 기억한다. 왜냐하면 포화작용과의 이중 가산은 X 기울기 테이블 엔트리로부터 절대적 또는 상대적 셀을 재구성하는데 사용된다. 상기 작용은 2개의 병렬 가산을 실행하기 때문에 절대적 또는 상대적 셀을 재구성하기 위한 알고리즘은 샘플중의 교번 샘플을 별도로 누적시킨다. X 기울기 테이블 엔트리는 상기 이중 누적을 정착하게 그리고 정밀하게 하기 위해 배열된다.
Y 기울기 테이블 엔트리를 발생하기 위해 선택된 기울기 값은 마찬가지로 누적되며 누적된 합의 정수 부분이 기억된다. 그러나, Y 기울기 테이블 엔트리에 기억된 차 값은 기억된 샐플의 인접한 하나로부터 발생된다.
제18도는 절대 셀을 리코드 하기 위해 처리기가 실행하는 연산의 순차를 도시한다. 제1단계 1810은 디코딩 처리 과정의 나머지 동안 보다 효율적인 엑세스를 위해 입력 FIFO(232)를 사용하여 테이터 RAM(228)에 셀 테이블로부터의 값을 전달하는 것이다. 단계 1812는 셀 테이블 엔트리로부터 테이터 RAM(228)에 입력 FIF(234)를 사용하여 A의 값에 대응하는 X 기울기 테이블 엔트리를 전달한다. 이러한 것이 이루어져 셀 테이블 엔트리가 다음에 기술하는 처리 과정의 내부 루프에서 가장 빠른 엑세스를 위해 이용가능하다. 단계 1814는 셀의 개시에 대응하는 현재 영상 비트 맵에서 어드레스로 출력 FIFO(236)를 초기화시킨다. 다음 단계 1818은 데이터 통로(242)에서 레지스터, 예를 들어 R3(상징적으로 불리는 값)를 값(C,C) 즉, 상위 그리고 하위 8개 비트 위치 모두에서 셀 테이블 레코드로부터 상수값 C를 갖는 16비트 워드인 값으로 초기화시킨다. 단계 1820은 또다른 레지스터 예를 들어 y계수로 불리는 R2를 셀 테이블 엔트리로부터 값 H에 초기화 시킨다.
단계 1822는 처리의 외부 루프 즉, 처리되고 있는 셀의 각 주사 라인에 대해 한 번씩 실행되는 루프를 시작한다. 먼저(단계 1822) 데이터 RAM(228)에서 포인터 레지스터 중의 하나 DR2가 단계 1812에서 데이터 RAM 으로 이전에 전달된 X 기울기 테이블에서 제1엔트리점으로 초기화 된다. 단계 1824에서 데이터 통로 회로(242)(상징적으로 cnt라 불리는)의 루프카운터(514)는 W/2값으로 초기화 된다. 이는 셀의 각 수평 라인 각각을 위해 발생될 수 있는 화소값쌍의 번호이다. 집합에 의해 인코딩 시스템은 라인당 화소의 짝수 번호를 갖는다. 그래서 W는 항상 짝수이다. 단계 1826은 기울기 테이블의 논의에서 이미 기술한 바와 같이 출력 화소값을 누적하기 위해 사용될 수 있는 ALU(244)의 출력 레지스트(416)에 레지스터값에 있는 값을 전달한다. 단계 1828은 셀라인의 수평 라인상에서 각 화소쌍을 위해 한 번씩 실행되는 처리 과정의 내부 루프이며 다음에서 상세히 설명하기로 한다. 각 셀을 위해 화소 데이터의 한 수평 라인을 처리한 후 다음 단계 1830은 17a도를 참조로 하여 앞서 논의된 바와 같이 계산값=값+](Q0,Q0)에 등가인 값에 Y 기울기 테이블 값을 가산한다. 단계 1832는 셀에서 다음 수평라인의 개시 화소 어드레스로 출력 FIFO(236)를 재초기화 시키며, 단계 1834는 y계수의 값을 감소시킨다. 테스트 1836은 y계수가 제로인지를 검사하며 어느 한 루프는 단계 1822로 돌아가거나(제로가 아닌 경우) 또는 루프로 돌아간다(제로가 있는 경우). 이는 하나의 절대 셀의 처리를 완료한다.
제19도는 실제 마이크로코드 제어 워드 또는 명령의 견지에서 18도의 처리과정의 내부 루프 1828을 도시한다. 내부 루프 1828은 루프 카운터(514)의 제어하에서 교번적으로 실행되는 2개 명령으로 구성된다. 나열된 명령 어드레스는 단지 예시 목적이지만 그러나 이들의 넘버링은 마이크로코드 RAM과 순차 회로(226)에 의해 조건 분기 연산이 실행되는 방식 때문에 기술하는 바와 같이 완전히 임의는 아니다.
제1명령(1)은 심볼 *DR2++가 테이블 4를 참조로 하여 기술된 계산 ALU= ALU +]*DR2++를 실행한다. 상기 계산은 X 기울기 테이블 엔트리로부터의 한쌍의 값을 ALU 출력 레지스터(416)2차 선형 함수값의 누적기로서 이용되는)에 가산하며, 데이터 RAM의 포인터 레지스터 DR2를 기울기 테이블에서의 다음쌍의 값에 대한 지점까지 자동 증가시킨다. 상기 명령은 또한 루프 카운터를 감소시키며 그리고 마이크로코드 RAM과 순차 회로(226)가 명령 2와 다음 마이크로코드 제어 워드를 로드시킬 수 있도록 하는 조건을 만든다. 명령2는 회로(210)가 출력 FIFO(236)를 통해 ALU(416)에서의 값을 전달하도록 하는 조건을 만들어 2개 화소값을 VRAM에 기록한다. 조건적 분기는 루프 카운터 제로 조건을 이용하여 상기 명령에서 셋트된다. 상기 조건이 if거짓인 경우, 제어는 명령 1로 전달되고 루프는 계속될 것이다. 수평 라인을 위한 화소 데이터가 끝이 났을 때, 루프 카운터는 제로로 되고 따라서 상기 조건은 참이 되어 마이크로코드 순차기가 어드레스의 LSB가 제로되게 한다. 이는 명령 0에 대한 점프를 야기하며 그래서 내부 루프로부터 벗어난다.
상기는 2개의 명령 루프이기 때문에 그리고 2개의 화소값이 루프를 통해 매번 발생되기 때문에, 상기 내부 루프는 화소값당 하나의 명령의 속도로 실행된다. 예를 들면 명령 싸이클 시간이 80ns이고 영상이 256×240화소이며 처리기(210)에 대해 포우즈 상태가 아닌 것으로 가정하면, 내부 루프을 위한 가장 큰 가능한 실행시간(즉, 영상이 하나의 절대 셀로 기술되는 경우)은 3필드 간격(약 1/200초)이다. 외부 루프와 같은 시스템에서 다른 처리 과정과 제16도에의 처리는 부가적인 디코딩 시간을 가산한다. 또한, 영상이 단일 형태의 셀 전체로 구성되지 않는다고 가정한다. 다음에서 알 수 있는 바와같이 상대적 그리고 DPCM 셀은 절대셀보다 디코드 하기 위해 보다 많은 시간을 필요로 한다. 그러나 이러한 요소로도 2필드 주기 이하인 영상을 디코드 하는 것이 가능하다. 2필드 주기의 디코딩 시간이 1/30초의 소정의 TV 프레임 전송 속도에 대응한다.
제20도는 처리기(210)가 상대 셀을 디코드 하기 위해 실행하는 연산의 순차를 도시한다. 많은 단계는 절대 셀 디코딩 처리 과정에서의 단계와 유사하다. 그러나 여러 가지 중요한 변화가 있다. 2차 선형 함소 Ax+By+C의 값을 발생하는데 덧붙여 상대적 셀 디코딩 처리는 상기 함수의 값을 이전 영상 비트 맵의 장방형 영역으로부터의 화소값에 가산한다. 결과적인 합은 현재 영상 비트 맵에 기록된다. 또한 화소값은 이전 영상의 비트 맵으로부터 직접 취하지만 그러나 화소 보간기(246)를 이용하여 이들 화소 가운데서부터 보간에 의해 얻어진다.
화소 보간기(246)가 파이프 라인되고 따라서 출력값은 입력값에 대해 지연된 것으로 가정한다. 상기 시간 지연은 이전 그리고 영상 셀에서의 화소를 통해 주사 작용을 복자화 시킨다. 왜냐하면 입력 및 출력 FIFO는 단계를 벗어난다. 상기 문제는 내부 루프를 2개의 동일 명령 그룹으로 나누어서 해결된다. W/2번 실행된 하나 내부 루프 대신에(절대 디코딩에서와 같이), 2개의 내부 루프가 있다. 즉, N1번 실행된 것돠 N2배 실행된 것이 있다(여기서 N1+N2=W/2). 값 N1과 N2는 첫 번째 내부 루프 다음 입력 FIFO(232)가 이전의 영상 비트 맵의 다음 연속적인 수평 라인에서 개시 화소 위치에 대한 지점으로 진행할 수 있으며, 제2내부 루프후 출력 FIFO(236)는 현재 영상 비트 맵에서 전류 셀의 다음 연속적인 수평 라인에서 개시 화소 위치까지 진행할 수 있도록 미리 계산된다.
최종적으로, 제9도를 참고로하여 논의된 바와 같이 화소 데이터의 2개의 주사 라인은 전류 셀을 위한 하나의 수평 라인의 화소를 발생하기 위해 이전 영상으로부터 판독된다. VRAM(216)에 대한 엑세스의 수를 감소시키기 위해 그리하여 디코딩 횟수를 감소시키기 위해 제20도의 처리는 처리의 Y 루프를 통해 한 번을 위해 사용된 2개 라인의 하부 라인은 Y 루프를 통해 다음번에 사용된 2개 라인의 상부 라인과 동일하다. 그래서, VRAM으로부터 상기 데이터를 2번 판독하는 대신에 회로(210)는 루프를 통해 다음번 사용을 위한 루프를 통해 매번 데이터 RAM(228)에서 라인 버퍼에 데이터를 기억한다.
제20도에 도시된 처리 과정은 셀 테이블 레코드로부터 RAM(228)까지 값을 전달하는 단계 2010으로 시작한다. 단계 2012는 VRAM(216)으로부터 데이터 RAM(228)에 현재 셀 테이블 레코드로부터의 값 A 에대한 X 기울기 테이블 엔트리를 전달한다. 이들 전달 작용은 입력 FIFO(232)를 사용한다. 단계 204, 2016 및 2018은 출력 FIFO(232)를 현재 영상 비트 맵에 대한 지점까지 이전 영상 비트 맵에 대한 입력 FIFO(232) 및 현재 셀 테이블 레코드로부터의 값 B에 대응하는 Y 기울기 테이블 엔트리에 대해 입력 FIFO(234)를 초기화 시킨다. 단계 2020은 △X와 △Y의 분수와 같은 변위값으로 화소 보간기(246)를 초기화 시킨다. 화소 보간기는 이전 영상을 위한 시작 어드레스의 LSB가 0인 경우 통상 모드로 초기화 시키며 그렇지 않은 경우 이상 모드로 셋트시킨다. 단계 2022는 디코딩 처리 과정의 나머지에서의 사용을 위해 W의 1/2이다. 단계 2024는 N1과 N2의 값과 2개의 내부 루프를 위한 계수값을 계산한다.(박스 2024에서 가변 위상은 이전 영상을 위한 개시 어드레스의 LSB로서 같은 값을 갖는다). 단계 2026은 셀 테이블 레코드로부터의 H의 값에 대한 레지스터를 셀에서 수평 라인을 계수하도록 셋트된다. 단계 2028은 데이터 RAM(228)에서 라인 버퍼내에 이전 영상 셀의 한 수평 라인을 로드시키며, 포인터 레지스터 DR1과 DR2를 라인 버퍼에서 제16비트 값에 대한 지점으로 리셋트 시킨다. 단계 2020은 첫 번째 유용한 결과가 판독될 수 있는 지점까지만 화소 보간기(246)의 파이프 라인을 로드시킨다. 예를들어 제9b도를 참조로 하면, 단계 2030은 명령싸이클 T1내지 T11을 포함한다.
단계 2032는 처리 과정의 외부 루프의 시작이다. 첫째(단계 2032) 데이터 RAM(228)(예를들어 DR0)에서 포인터중의 하나는 X 기울기 테이블 엔트리에서 제1값에 대한 지점으로 초기화 된다. 다음 현재 셀 테이블 레코더로부터 복제된 상수항인 값(C,C)는 2차 선형 함수(x,y)의 값을 누적하는데 사용되는 ALU(244)의 B 입력값에 로드된다. 단계 2036, 2038 및 2039는 N1이 제로일 수도 있는 내부 루프 명령을 N1번 실행한다. 다음 단계 2040은 이전의 영상으로부터 셀에서 다음 수평 라인의 시작에 대한 지점에 입력 FIFO(232)를 리셋트 시킨다. 단계(2042)는 상기 라인 버퍼의 시작까지 라인 버퍼 포인터(DR1과 DR2)를 리셋트 시킨다. 단계 2044, 2046 및 2048은 N2가 제로일 수도 있는 내부 루프 명령을 N2번 실행한다.
단계 2050에서, 출력 FIFO(236)에 의해 사용되는 어드레스 값은 현재 비트 맵을 위한 셀의 다음 라인에서 첫째 화소 위치까지의 지점까지 진행된다. 단계(2052)는 화소 보간기를 통해 하나 이상의 셋트(4화소)의 값을 통과시킨다. 이들 값은 이전 영상에서 셀의 제1연부를 방금 통과한 위치를 갖는 화소에 대응하며, 라인상에서 최조 보간된 결과를 발생하는데 사용된다. 그러나 상기 단계는 여분쌍의 결과가 화소 보간기에 의해 발생되게 한다. 상기 결과는 단계 2052에서 판독되며 간단히 무시된다. 단계 2054는 y계수를 감소시키며, 테스트 2056은 셀에 대한 화소값의 최종 수평 라인이 처리되었는가를 검사한다. 만약 처리기가 외부 루프를 빠져 나오며 그렇지 않은 경우 단계 2032를 가지고 루프를 계속 진행한다.
제21도는 제20도에 도시된 처리 과정의 내부 루프를 도시한다. 상기 루프는 4개의 명령으로 구성된 제1명령은 ALU(244)의 B입력 레지스터(412)에 있는 값을 값 *DR0(즉 레지스터 DR0에서 유지되는 어드레스 값을 갖는 데이터 RAM 셀에 있는 값)에 가산한다. 또한 상기 명령동안, DR0에서 유지된 어드레스 값은 하나씩 증가된다. ALU(244)의 B입력 레지스터(412)는 2차 선형 함수 Ax+By+C의 값을 누적시키는데 사용된다. 명령어 1은 또한 입력 FIFO(232)를 사용하여 화소 값쌍을 판독하며 이들을 데이터 통로 회로(242)의 레지스터 R0에 로드시킨다. 이들 화소값은 보간된 화소값쌍을 발생하기 위해 화소 보간기에 인가된 4화소의 하부쌍에 대응한다. 다음 명령(2)은 B입력 레지스터(412)에 ALU 출력값(명령 1의 결과)을 다시 입력시킨다. 또한 2개의 연속적인 화소값을 위한 함수 Ax+By+C의 값을 발생하기 위해 화소 보간기(246)의 출력값에 상기 값을 가산한다. 화소값은 상기 쌍은 다음 명령(3)에서 출력 FIFO를 통해 VRAM(216)에 기록된다. 또한 명령어(3)는 레지스터 DR1에서 유지된 어드레스 값을 이용하여 데이터 RAM(228)에서 유지된 라인 버퍼로부터의 값(2화소)으로 화소 보간기에 로드시킨다. 상기 화소는 보간기(246)에 인가되고 있는 4화소의 상부쌍에 대응한다. 상기 명령은 또한 데이터 통로 회로(242)의 루프 카운터(514)를 감소시킨다. 최종적으로 명령 4는 레지스터 R0에 있는 값을 취하며, 보간기(246)를 위해 화소값의 하부 쌍을 취하며 이들 값을(레지스터 DR2에 있는 어드레스를 이용하여 데이터 RAM(228)에 있는 라인 버퍼에 그리고 화소 보간기(246)에 로드된다. 제로에 도달한 루프 카운터를 기초로한 조건 분기 작용은 루프에 있는 명령이 소정수의 화소값이 도달될때까지 반복되게 한다.
상기 내부 루프는 포우즈 상태가 없다고 가정할 때, 256x240 영상(이는 내부 루프에 대한 것이다)을 위한 6필드의 최대 총 경과 시간에 대응한는 4개 명령 싸이클에서의 2개 화소값을 발생한다.
제22도는 DPCM 셀을 디코딩 하는데 연관된 작동의 순차를 도시한다. DPCM 셀은 압축된 비디오 영상의 데이터 세그먼트에 있는 신호값 V에 의해 인코드된다. 상기 값 V는 전류 영상에 있는 모든 가능한 픽-픽 차이를 포함하는 값의 테이블(테이블 D)내에 색인으로서 번역된다. 테이블 D는 데이터 RAM(228)에 기억된다. DPCM 셀을 위한 최대 화소값은 타겟트 화소의 좌측에 테이블 D로부터 화소값까지 서로 다른 화소 값을 가산하여 발생한다. 셀의 좌측연부를 위한 화소값은 이전의 라인에서 대응값에 테이블 D로부터 서로 다른 화소값을 가산하여 발생된다. 셀의 상부좌측 모서리에 있는 화소 상부의 점선 화소 는 128의 일정값을 갖는 것으로 가정한다.
DPCM 디코딩 처리 과정은 입력 FIFO(232)을 통해 VRAM(216)에 있는 셀 테이블로부터 데이터 RAM(228)으로 전달하여 시작한다(2210단계). 다음, 출력 FIFO(236)은 전류 셀의 상부 좌측 모서리에 있는 화소에 대응하는 에드레스(XPOS,YPOS)에 대한 지점으로 초기화 시킨다. 단계 2214에서, 예를들어 R3와 같은 레지스트(최종 라인)는 값(128)으로 셋트된다. 레지스터 '최종 라인'은 현재 라인상에서 제1화소를 발생할 때 사용하기 위한 이전 라인의 제1화소값을 기억하는데 사용된다. 단계 221 6은 셀에서 수평 라인의 수를 유지하는 예를들어 R2를 위한 레지스터 'y계수를 로드시킨다.
단계 2218은 셀 테이블 레코드로부터의 값 W를 데이터 통로 회로(242)의 루프 카운터(514)에 로드시킨다. 단계 2220은 통계 디코더(230)로부터의 값 V를 값 *DR2(즉, 테이블 D로부터의 값)을 판독하는 레지스터 DR2에 로드시키고(테이블 D에 색인을 넣어) 그리고 최종 라인=최종 라인+]*DR를 실행하여 수평 라인상에 제1화소의 값을 계산한다. 다음 내부 루프가 실행된다(단계 2222). 마지막으로 출력 FIFO는 현재 비트 맵의 다음 수평 라인의 제1화소값에 대한 지점에 리셋트 되며 레지스트 'y 계수'는 감소되면서 루프가 끝날때까지(즉, 'y 계수=0일 때) 테스트 된다.
제23도는 DPCM 디코딩 처리 과정의 내부 루프에 대한 마이크로코드 명령어를 도시한다. 제1명령어(2)는 출력 FIFO(236)를 통해 VRAM(216)에 대해 전류 누적값(ALU 출력 레지스터(416)에 있는)을 기록하며 또한 데이터 통로 회로(242)의 레지스터 R1에서 상기 값이 기억된다. 상기 루프의 제1명령은 루프 카운터(514)에서 유지되는 값이 제로인가 아닌가에 따라 루프를 벗어나거나 또는 계속하는 조건 분기를 갖는다. 다음 명령(10)은 통계 디코더(230)를 이용하여 VRAM(216)으로부터의 값을 판독하며, 이를 레지스터 R0에 기억한다. 다음 명령(3)은 레지스터 R0으로부터의 값을 데이터 RAM 회로(228)의 레지스터 DR2에 전달한다. 상기 루프(4)의 최종 명령은 값 *DR2(데이타 RAM(228)에 있는 테이블 D로부터의 차이값인)에 레지스터 R1에 있는 이전 화소값을 가산하며 루프의 상부로 분기된다.
DPCM 데이터를 디코드 하기 위해 사용된 명령 순차의 내부 루프는 포화와의 이중 가산 연산을 이용한다는 것에 유의하여야 한다. 상기 명령 순차는 버스 A BUS와 B BUS의 8개 LSB 위치에 의해 전달된 데이터의 단일 바이트상에서 작용한다. 포화와의 이중 가산 작용은 실제 차이값보다는 테이블 D로부터 근사적인 차이값을 이용하게 하는 것으로부터 초래되는 어떤 에러 화소값을 포화시키는데 사용된다. 상기 포화 가산의 형태는 단지 포화와의 이중가산에서 ALU(244)에 의해 보조된다.
DPCM 디코딩 명령 순차의 내부 루프는 포우즈 상태가 없다고 가정하는 경우 내부 루프에만 대해 256X240 영상에 대해 1.2필드의 최대 전체 경과 시간에 대응하는 각 4개 명령에마다 하나의 화소를 발생한다.
비디오 신호 처리기(210)의 내부 회로의 상기 설명을 이용하여 본 분야의 기술에 숙련된 사람은 본 발명을 쉽게 변형시킬 수 있다.

Claims (6)

  1. 데이터 처리용 제어 신호에 응답하는 처리 수단 및 다수의 조건 값을 표시하는 수단과 상기 처리 수단에 접속된 기억 프로그램 제어기를 구비하는 데이터 처리 시스템에 있어서, 명령값중 하나가 조건 브랜치 동작을 나타내는 다수 명령값을 홀딩하는 메모리 수단과 상기 메모리 수단에 의해 제공된 명령값을 홀딩하며 상기 처리 수단용 제어 신호와 상기 기억 프로그랩용 제어 신호를 제공하는 명령 디코딩 수단과 상기 명령 디코딩 수단에 의해 제공된 제어 응답하며 상기 메모리 수단으로부터 제1 및 제2명령값을 동시에 판독하는 메모리 엑세싱 수단과 상기 명령 디코딩 수단에 의해 제공된 제어 신호에 응답하며 상기 명령 디코딩 수단에서의 명령이 조건 브래치 동작을 표시할 때 다수의 조건 값을 나타내는 상기 수단에 응답하여 상기 명령 디코딩 수단으로 상기 제1 및 제2명령중 선택된 하나를 포함하는 다음 명령 선택 수단을 구비하는 것을 특징으로 하는 데이터 처리 시스템.
  2. 제1항에 있어서, 상기 메모리 수단에서 홀드된 각 명령값은 조건 브랜치 동작을 표시하며 상기 다수의 조건중 하나를 표시하는 조건 선택값을 표시하며 상기 명령 선택 수단은 상기 명령 디코딩 수단으로 상기 제1 및 제2명령값중 선택된 하나를 로딩하기 위하여 상기 명령 디코딩 수단에서 홀드된 명령값중 조건 선택값에 의하여 표시된 조건에 응답하는 수단을 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  3. 제1항에 있어서, 상기 메모리 수단에서 홀드된 각 명령은 N-비트 다음 어드레스 값을 포함하며, N는 양의 정수이고, 상기 메모리 수단은 2N-1의 어드레스 가능한 셀을 포함하며, 각 셀은 두 명령값을 홀드하는 충분한 용량을 갖고 상기 메모리 엑세싱 수단은 상기 제1 및 제2명령값에 의하여 홀드된 두 명령값을 판독하여 상기 메모리 수단의 셀중 하나를 어드레스하기 위하여 상기 명령 디코딩 수단에서 홀드되는 명령의 다음 어드레스 값 N-1 비트에 응답하는 수단을 포함하고 상기 다음 명령 선택 수단은 상기 명령 디코딩 수단으로 각각 상기 제1 또는 제2명령값을 로딩하기 위하여 제1 또는 제2예정된 값을 가지며 상기 명령 디코딩 수단에서 홀드되고 명령값중 N-비트 어드레스 값의 예정된 비트에 응답하는 수단을 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  4. 제3항에 있어서, 상기 메모리 수단에서 홀드된 각 명령값은 조건 브랜치 동작을 포함하고 상기 다수의 조건중 하나를 표시하는 조건 선택값을 포함하며, 상기 명령 선택 수단은 상기 명령 디코딩 수단에서 홀드된 명령값중 N-비트 어드레스 값의 예정된 비트값에 관계없이, 상기 명령 디코딩 수단으로 상기 제1빛 제2명령값중 선택된 하나를 로딩하기 위하여 상기 명령 디코딩 수단에서 홀드된 명령값중 조건 선택값에 대응하는 수단을 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  5. 내장 프로그램 제어기 장치에 있어서 한쌍의 명령 워드를 홀딩하는 어드레스 가능한 위치를 갖는 메모리 수단과 상기 메모리 수단의 판독 주기 동안 상기 어드레스 가능한 장소의 주어진 하나로부터 상기 명령 워드중 두 개를 기억하도록 응답하며 상기 메모리 수단에 접속된 두-워드 명령 레지스터 수단과, 스위치 수단과 상기 스위치 수단에 의해 선택된 상기 두 명령 워드중 하나를 기억하도록 상기 스위치 수단을 통해 상기 2-워드 명령 레지스터 수단에 접속된 1-워드 명령 레지스터 수단과 상기 1-워드 명령 레지스터 수단의 출력 단자에 접속된 제1입력 단자와, 거기에 제공된 조건 신호를 수신하도록 접속된 다른 입력 단자와 상기 1-워드 명령 레지스터 수단이 상기 출력 및 상기 조건 신호의 함수로서 상기 스위치 수단을 제어하도록 접속된 출력 신호를 갖는 제어 수단을 구비하는 것을 특징으로 하는 내장 프로그램 제어기 장치.
  6. 내장 프로그램 제어기 장치에 있어서, 상기 각 장소에서 두 명령 워드를 홀딩하기 위한 어드레스 가능한 장소를 갖는 메모리 수단과 조건 신호를 제공하기 위한 수단과 상기 선택된 어드레스에 대응하여 상기 메모리 수단의 어드레스 가능한 장소에서 홀드되는 2명령 워드를 제공하기 위하여 선택된 어드레스에 응답하는 수단과 선택된 어드레스를 발생하며 상기 2명령 워드중 하나를 선택하는 수단과, 상기 선택된 명령에 응답하는 사용 수단을 구비하며 상기 선택된 수단은 최후로 선택된 명령 및 상기 조건 신호에 응답하는 것을 특징으로 하는 내장 프로그램 제어기 장치.
KR1019890701334A 1987-11-16 1988-11-03 데이타 처리 시스템 및 내장 프로그램 제어기 장치 KR970005454B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US121,820 1987-11-16
US07/121,820 US4881194A (en) 1987-11-16 1987-11-16 Stored-program controller for equalizing conditional branch delays
PCT/US1988/003819 WO1989005011A2 (en) 1987-11-16 1988-11-03 Stored program controller with a conditional branch facility as for a video signal processor

Publications (2)

Publication Number Publication Date
KR890702114A KR890702114A (ko) 1989-12-22
KR970005454B1 true KR970005454B1 (ko) 1997-04-16

Family

ID=22399011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890701334A KR970005454B1 (ko) 1987-11-16 1988-11-03 데이타 처리 시스템 및 내장 프로그램 제어기 장치

Country Status (8)

Country Link
US (1) US4881194A (ko)
EP (1) EP0393125B1 (ko)
JP (1) JPH03501540A (ko)
KR (1) KR970005454B1 (ko)
AU (1) AU2818389A (ko)
CA (1) CA1309185C (ko)
DE (1) DE3851230T2 (ko)
WO (1) WO1989005011A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151986A (en) * 1987-08-27 1992-09-29 Motorola, Inc. Microcomputer with on-board chip selects and programmable bus stretching
JPH01283635A (ja) * 1988-05-11 1989-11-15 Nec Corp バッファ制御回路
US5165025A (en) * 1988-10-06 1992-11-17 Lass Stanley E Interlacing the paths after a conditional branch like instruction
DE68927218T2 (de) * 1988-10-18 1997-02-06 Hewlett Packard Co Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
US5692169A (en) * 1990-12-14 1997-11-25 Hewlett Packard Company Method and system for deferring exceptions generated during speculative execution
EP0522513A2 (en) * 1991-07-09 1993-01-13 Hughes Aircraft Company High speed parallel microcode program controller
DE69326705T2 (de) * 1992-02-14 2000-04-27 Motorola, Inc. Verfahren und Anordnung zur Feststellung der Befehlsablauffolge in einem Datenverarbeitungssystem
US5581719A (en) * 1992-11-12 1996-12-03 Digital Equipment Corporation Multiple block line prediction
JP3452655B2 (ja) * 1993-09-27 2003-09-29 株式会社日立製作所 ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法
US5537560A (en) * 1994-03-01 1996-07-16 Intel Corporation Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor
US5634103A (en) * 1995-11-09 1997-05-27 International Business Machines Corporation Method and system for minimizing branch misprediction penalties within a processor
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5299034A (en) * 1976-02-17 1977-08-19 Nippon Telegr & Teleph Corp <Ntt> Control system for micro program
US4125861A (en) * 1977-08-18 1978-11-14 Bell Telephone Laboratories, Incorporated Video signal encoding
US4342078A (en) * 1979-05-21 1982-07-27 Motorola, Inc. Instruction register sequence decoder for microprogrammed data processor and method
JPS5748139A (en) * 1980-09-04 1982-03-19 Nec Corp Microprogram control device
US4396906A (en) * 1980-10-31 1983-08-02 Sri International Method and apparatus for digital Huffman encoding
US4689823A (en) * 1984-01-04 1987-08-25 Itek Corporation Digital image frame processor

Also Published As

Publication number Publication date
EP0393125A1 (en) 1990-10-24
KR890702114A (ko) 1989-12-22
WO1989005011A2 (en) 1989-06-01
CA1309185C (en) 1992-10-20
US4881194A (en) 1989-11-14
EP0393125B1 (en) 1994-08-24
JPH03501540A (ja) 1991-04-04
AU2818389A (en) 1989-06-14
DE3851230D1 (de) 1994-09-29
WO1989005011A3 (en) 1989-09-21
DE3851230T2 (de) 1995-04-13

Similar Documents

Publication Publication Date Title
KR960006501B1 (ko) 비디오 신호 처리기 시스템 및 비디오 처리기용 메모리 제어기
JP2750462B2 (ja) ビデオ信号プロセッサ、圧縮されたビデオデータを処理するための装置、および復元されたビデオ信号を生成する集積回路
JP2750438B2 (ja) 2次元ピクセル補間器および2次元で補間されたピクセル値を生成する方法
US5047975A (en) Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US5189636A (en) Dual mode combining circuitry
US4835607A (en) Method and apparatus for expanding compressed video data
KR970005454B1 (ko) 데이타 처리 시스템 및 내장 프로그램 제어기 장치
US5694588A (en) Apparatus and method for synchronizing data transfers in a single instruction multiple data processor
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US5528528A (en) Method, apparatus, and system for transforming signals
AU622879B2 (en) Pixel interpolation circuitry as for a video signal processor
AU625151B2 (en) Memory controller as for a video signal processor
AU622128B2 (en) Processor for expanding a compressed video signal
AU623874B2 (en) Stored program controller with a conditional branch facility as for a video signal processor
AU626847B2 (en) Dual mode adder circuitry
JPS63208942A (ja) マイクロプログラムメモリ回路
JPH0713755A (ja) 命令解読装置
JPS6371731A (ja) マイクロ・プログラム制御装置

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110630

Year of fee payment: 15

EXPY Expiration of term