KR20000062253A - 비디오 프레임 렌더링 엔진 - Google Patents

비디오 프레임 렌더링 엔진 Download PDF

Info

Publication number
KR20000062253A
KR20000062253A KR1019997005593A KR19997005593A KR20000062253A KR 20000062253 A KR20000062253 A KR 20000062253A KR 1019997005593 A KR1019997005593 A KR 1019997005593A KR 19997005593 A KR19997005593 A KR 19997005593A KR 20000062253 A KR20000062253 A KR 20000062253A
Authority
KR
South Korea
Prior art keywords
circuit
memory
circuits
data
interface
Prior art date
Application number
KR1019997005593A
Other languages
English (en)
Other versions
KR100366689B1 (ko
Inventor
제닝스얼더블유
Original Assignee
박세광
현대 일렉트로닉스 아메리카
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 박세광, 현대 일렉트로닉스 아메리카 filed Critical 박세광
Publication of KR20000062253A publication Critical patent/KR20000062253A/ko
Application granted granted Critical
Publication of KR100366689B1 publication Critical patent/KR100366689B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

비디오처리와 동화제작 또한 디지털신호와 화상처리에 사용하기 위한 전부 또는 일부의 프레임을 생성하는데 필요한 메모리, 로직, 산술적 및 제어회로를 포함하는 회로가 제공된다.
하나 또는 그 이상의 그러한 회로가 집적회로상에 제공된다.
동화제작을 위한 프레임생성의 예외적인 성능을 또한 특히 의료화상과 같은 3차원 또는 기타 고성능 응용을 제공하기 위해 또는 비디오게임에 있어서 효과적인 현실성과 실시간 장면 생성과 모의실험 환경을 제공하기 위해 비디오 또는 화상프레임 생성시스템은 하나 또는 그 이상의 집적회로로, 임의로 추가적인 메모리회로로 구성되어 있다.
MPEG4에 의해 제안되고, 고도로 가장 효과적으로 활용된 숫자의 성능을 갖는 단일칩 JAVA엔진으로서 작동하는 것과 같은 흐름에 관련된 고속의 목적에 적응시킨 그래픽의 처리에 이들 회로는 사용된다.

Description

비디오 프레임 렌더링 엔진 {VIDEO FRAME RENDERING ENGINE}
그래픽산업의 중심 문제는 프레임을 생성하는 것이다.
각 프레임은 화소의 직사각형의 배열(array)이며, 때로는 수백만 화소 이상을 포함한다.
동화제작, 특히 3차원 동화제작에서는 일반적으로 하나의 화소를 생성하는데 수백만에서 수십억의 계산을 필요로 한다.
유사하게, 그래픽적용(예를들면, 의료용 화상)에는 때로는 동화제작 순서와 같이, 하나나 그 이상의 프레임의 생성이 요구된다.
1995년에 픽서(Pixer)의 노력에 의해 영화 "토이 스토리(Toy story)"를 제작하는데 필요한 예를 생각해보자.
영화에는 110,000프레임이 있다.
픽서는 87개의 이중가공처리기 100MHz Sparc 20's와 30quad 가공처리기 100MHz, Sparc 20'를 사용했다.
이것은 전체로 294CPU이다.
거기에는 CPU당 평균 96메가바이트의 RAM이 있었고, 각 가공처리노드는 3-5기가바이트의 국부 디스크드라이브를 갖고 있었다.
그 디스크와 그들의 제공자는 본 발명과는 관련이 없지만 대단히 큰 것이었다.
Sparc CPU 처리시간으로 1 내지 3시간을 취하면서 평균프레임을 계산하는데 완전한 영화는 46일이 소요되었다.
"토이 스토리"는 사진과 동일한 것이 아니고 약진이었다.(참조문 1 참조)
그것은 첫번째 전체 길이의 컴퓨터 3차원 동화제작기술에 의해 완전히 제작된 영화였다.
그러한 필름의 사진과 동일한 것은 적어도 10이상의 요소의 계산복잡성을 필요로 한다.
사진과 동일한 프레임은 30시간을 계산하는 것을 상상해보라.
프레임 생성에는 많은 다른 프로그램이 사용된다.
이들 프로그램들은 모두 복잡하고 고성능을 필요로 한다.(참조문 19∼23 참조)
그들은 고수준의 절차와 목적에 적응하는 C, C++, 및 포트란(FORTRAN )과 같은 컴퓨터 프로그램 언어로 생성된다.
이들 프로그램의 가장 성능이 결정적인 부분은, 조립/기계 언어의 프로그램의 곤란성과 과중한 경비 때문에 근원적인 재현기구 하드웨어를 목표로 하는 직접 기록된 어셈블리/기계 언어일 것이다.
부유점 계산법이 이들 넓은 동적범위와 프로그램의 용이성 때문에 이들 프로그램에서 유명하다.
성능 개선의 필요성은 크다.
최적의 비디오 편집에 매초당 1프레임을 필요로 한다.
실시간의 효과적인 현실성은 초당 30프레임까지 생성되는 것이 필요하다.
이들 두 상업상의 적용을 만족시키기 위해 성능개선의 필요성은 비디오편집(=30시간/프레임×3600초/시간)에는 108,000×, 효과적인 현실성(=30비디오편집)에는 3,240,000×로 가속되었다.
유사한 상황이 고성능 디지털 신호 처리에도 존재한다.
대표적인 요구는 때로는 인체나 기계도구를 포함하는 재료의 내부의 화상을 시간에 걸쳐 구성하기 위한 2차원 및 3차원 센서어레이로부터 수집된 화상처리를 포함한다.
이들 다차원적인 신호처리응용은 초음 또는 자기화상센서의 뱅크로부터 화상을 구성한다.
이것은 프레임 생성에 유사한 성능요구를 갖고 있다.
이들 응용은 3차원 또는 4차원환경의 재구성/모의실험에 있어서의 해결기능의 목표를 갖고 있다.(주; 4차원은 3차원영역관찰/시간에 걸친 모의)
기능분석은 입력센서분석의 기능이고, 주어진 기간내에 계산적으로 산출될수 있는 FFT분석의 깊이는 데이터프레임의 처리를 통해서 반올림오차와 그들 반올림오차의 누산을 제어한다.
최소시간의 미세한 기능 해석은 생성된 화소 또는 출력데이터점에 대한 수백만 때로는 수십억의 산술적 조작을 수행하는 것을 선도한다.
동적범위제어와 유연한 반올림오차제어를 제공하기 위한 부유점 계산의 사용은 상당히 일반적이다.
계속적인 소프트웨어의 진보와 많은 다른 응용의 사용가능도에 의해 알고리즘적 유연성이 우선적이다.
이들 다른 응용은 때로는 많은 다른 소프트웨어를 필요로 한다.
응용소프트웨어 개발요구는 대단히 일관성이 있다.
특히, 대부분의 응용은 수많은 프로그램을 필요로 하고, 대부분 C, C++, FORTRAN(참조문 11∼18 참조)과 같은 절차상의 컴퓨터 프로그램 언어로 기록되어 있으며, 기계수준의 프로그램의 사용은 프로그램의 대부분의 성능의 한계부분에 제한되어 있다.
목표알고리즘표시는 다음의 일반적인 특징을 갖는다 : 처리요소당 많은 양의 메모리를 필요로 하고 때로는 100MB의 범위이며 ; 출력치(화소, 데이터점 등)당 대단히 많은 수의 산술적 계산을 필요로 하고, 모든 입력치(화소, 데이터점 등)가 아닌것에 기초한 대단히 많은 수의 계산을 필요로 하며; 계산용량에 비해 비교적 적은 통신오버헤드를 필요로 한다.
과거 30년간 고분석 그래픽을 위한 지원이 개발되었다.
1960년대와 1970년대초의 예비노력으로 최소의 전용하드웨어와 함께 그래픽컴퓨터시스템이 작성되었다.
그 당시는 VLSI 집적회로에 대한 고려는 없거나 적었었다.
반도체장치에 의한 그래픽산업의 지원은 다음의 문제에 초점을 맞추었다.
A. I/O장치의 지원, 스크린표시장치의 지원에 많은 노력을 소모했다.
이것이 스크린을 제어하기 위한 전용집적회로의 개발을 선도했다.
B. 고속마이크로 프로세서와 디지털신호 프로세서의 개발.
C. 특히, DRAM, VRAM등과 같은 고속 고밀도메모리장치의 개발,
D. 실시간 화상처리와 프레임 생성응용을 겨냥한 특별목적부품.
이들 노력은 다음에 기술하는 바와 같은 기본적인 제한을 갖고 있었다.
A. 표시장치제어기는 특정한 양의 시간내에 고정된 실행구조기계에 의해 생성된 각 프레임은 제한되었다.
이렇게 해서 프레임 알고리즘의 변화는 필요하게 제한된다.
B. 고속마이크로 프로세서와 DSP는 큰 진성의 알고리즘적 유연성을 갖으며, 그러므로 토이 스토리에서 생성된 선(SUN)망과 같은 고성능 전용프레임 재현구성에 사용된다.
인텔 펜티엄 프로세서의 출현은 모든 RISC(Reduced Instruction Set Computing)공동체의 성능수단의 결합을 가져왔다.
그러나, 상업적인 마이크로 프로세서나 DSP시스템은 그들의 육중한 오버헤드 회로소자에 의해 엄격하게 제한되었다.
최신의 슈퍼 스칼라 컴퓨터에서는 이 오버헤드회로소자는 실제로 산술적단위 보다 크다.
C. 고성능 메모리가 필요하지만 그것을 단순히 저장하는 데이터를 생성하지 않기 때문에 신속한 프레임생성을 보증하기에는 충분하지 않다.
D. 하나의 고성능메모리와 때로는 DRAM의 집적회로상에 견고히 결합된 결합데이터처리소자인 몇가지의 특별한 목적의 부품이 제안되어 있다.
그러나 이들 노력은 수난을 받는 한계를 갖는다.
제안된 특별한 목적의 부품은 몇가지 알고리즘의 범주를 수행하기 위해 가장효과적으로 활용된다.
이들 부품은 다음의 것을 포함한다.
D1. 화상압축/압축해제 프로세서
대단히 중요한 이 회로는 대단히 전문적이고 각종 알고리즘에 대한 일반 목적의 해결을 제공하지 않는다.
예를들면, 그러한 엔진은 C, C++, FORTRAN 과 같은 고수준의 절차상의 언어로 효율적으로 프로그램하기가 대단히 어려운 경향이 있다.
어셈블리언어로의 그들의 프로그램요구는 그러한 장치는 소프트웨어개발에 많은 비용없이 다차원화상과 그래픽프레임 생성을 위한 일반 목적의 요구를 지정하지 않는다는 것을 암시한다.(참조문 24, 25참조)
D2. 프랙털스, Z-버퍼, 고우러드채색과 같은 그래픽알고리즘을 위한 가장 효과적으로 활용한 프로세서.
이들 회로는 양 그래픽프레임생성과 화상처리요구를 넓은 단면의 액세스를 위한 낙관을 허용하지 않는다.(참조문 26∼29 참조)
D3. 잔물결, 기타 여파기, 제1통과 기수4,8,16FFT, 1차원, 2차원, 분리코사인 변형엔진 등과 같은 신호처리 예비처리기 가속기.
이들 회로는 넓은 범위의 각종대형 프레임생성 태스크의 효율적인 실행을 위한 프로그램을 하기가 어렵다.
D4. 다중처리기 화상처리기.
이들 처리기는 혼합 MIMD와 SIMD시스템을 포함하고, 일반목적 프로그램에 불량 적응된다.(참조문 24, 41∼43참조)
이들 처리기는 크로마틱스 MPACT IC와 같은 VLWI(Very Long Instruction Word) IC를 또한 포함한다.
그러한 IC는 다시또 효율적인 편집자 지원이 요구되는 상업용 응용에 사용되는 큰양의 3차원동화제작 소프트웨어를 프로그램하기 위해 필요한 계산적인 유연성을 제공할수가 없다.(참조문 34, 39참조)
D5. 다중매체 신호처리기
이들 처리기는 또한 부유점 지원부족, 넓은 외부데이터메모리 인터페이스 대역폭의 대형외부메모리에의 액세스의 부족, 명령어처리 유연성과 데이터처리 범용성의 부족, 누산결과에 관련해서 대단히 균일한 데이터 액세스 기구없이 동작시키기 위해 프로그램하기가 비효율적이고 어려운 벡터처리기가 신뢰가 있다.(참조문 35∼38참조)
필요한 것은 비디오 프레임 렌더링과 DSP 태스크를 위한 계산과 관련해서 상기한 제한을 피하는 계산하는 엔진이다.
본 발명은 회로에 관한 것이며, 더욱 상세히는 본 발명은 비디오프레임 생산태스크와 디지털신호 가공처리(DSP)태스크에 적합한 고성능 집적회로소자에 관한 것이다.
도 1은 본 발명의 실시예에 따른 기초회로의 블록도.
도 2는 본 발명의 실시예에 따른 도 1의 어레이 프로세서의 블록도.
도 3은 본 발명의 다른 실시예에 따른 도 1의 어레이 프로세서의 블록도.
도 4는 도 1의 매입된 마이크로 프로세서의 블록도.
도 5는 독립된 외부메모리 인터페이스와 함께 도1의 기초회로의 두 개의 사례를 갖는 집적회로의 블록도.
도 6은 하나의 외부메모리 인터페이스를 분배한 도1의 기초회로의 두 개의 사례를 갖는 집적회로의 블록도.
도 7은 독립된 외부메모리 인터페이스와 함께 도1의 기초회로의 네 개의 사례를 갖는 집적회로의 블록도.
도 8은 하나의 외부메모리 인터페이스를 분배한 도1의 기초회로의 네 개의 사례를 갖는 집적회로의 블록도.
도 9는 두 개의 외부메모리 인터페이스를 분배한 도1의 기초회로의 네 개의 사례를 갖는 집적회로의 블록도.
도 10은 두 개의 외부메모리 인터페이스를 분배하고 완전히 내부 접속된 메시지포트(PORT)를 갖는 도1의 기초회로의 네개의 사례를 갖는 집적회로의 블록도.
도 11은 네 개의 메모리 인터페이스를 분배한 도1의 기초회로의 열여섯개의 사례를 갖는 집적회로의 블록도.
도 12는 두 개의 메모리 인터페이스를 분배한 도1의 기초회로의 열여섯개의 사례를 갖는 집적회로의 블록도.
도 13은 그들의 대응하는 메모리모듈과 함께 도1의 기초회로의 사례를 갖는 프린트회로기판의 블록도.
도 14는 그들의 대응하는 메모리모듈과 함께 도1의 기초회로의 사례를 갖는 다른 프린트회로기판의 블록도.
(도면의 주요부분에 대한 부호의 설명)
1. 기초회로
2. 제어기
4. 내부 로컬메모리
6. 큰 메모리 광인터페이스회로
7. GEBI
8. 마이크로 프로세서 서브시스템
9. DSP
10. 인접회로통신포트
11. 특별목적회로
비디오처리와 동화제작 또한 디지털신호와 화상처리에 사용하기 위한 전부 또는 일부의 프레임을 생성하는데 필요한 메모리, 로직, 산술적 및 제어회로를 포함하는 회로가 제공된다.
하나 또는 그 이상의 그러한 회로가 집적회로상에 제공된다.
동화제작을 위한 프레임생성의 예외적인 성능을 또한 특히 의료화상과 같은 3차원 또는 기타 고성능응용을 제공하기 위해 또는 비디오게임에 있어서 효과적인 현실성과 실시간 장면생성과 모의실험 환경을 제공하기 위해 비디오 또는 화상프레임생성 시스템은 하나 또는 그 이상의 집적회로로, 임의로 추가적인 메모리회로로 구성되어 있다.
MPEG4 에 의해 제안되고, 고도로 가장 효과적으로 활용된 숫자의 성능을 갖는 단일칩 JAVA 엔진으로서 작동하는 것과 같은 흐름에 관련된 고속의 목적에 적응시킨 그래픽의 처리에 이들 회로는 사용된다.
본 발명은 메모리, 로직, 산술과 전문화된 회로가 내장된 가격이 유효한 기초회로를 제공하며, 특히, 비디오 프레임 렌더링에 사용되는 알고리즘의 광범한 종류를 지원하는데 적합한 기초회로를 제공한다.
기초회로를 반복하므로서 계산용량을 증가시키고, 대단히 고성능요구를 지원하는 능력을 생성한다.
고성능간의 구별은 때로는 다차원의 신호처리와 고성능 프레임 렌더링 그래픽은 적다.
이 명세서에서는 그 설명은 본 발명의 응용의 차이를 기술하기 위해 필요한 기술을 추가한 그래픽 투시도법으로부터의 프레임렌더링에 초점을 맞추게 될 것이다.
도 1은 본 발명의 실시예에 따른 기초회로(1)의 블록도이다.
기초회로(1)에서, 외부로컬 메모리 인터페이스를 위한 하나 또는 그 이상의 제어기(2)는 기초회로(1)에 결합된 로컬외부메모리에 액세스하게 한다.
그러한 로컬 외부메모리는 바람직하게는 100MB 이상(참조문 1의 Toy Story 참조), 즉 1GB이다.
주메모리 인터페이스와 제어기(6), 또한 "큰 메모리 광인터페이스회로"(6)는 외부로컬메모리 인터페이스(2)와 각종 기타부품간의 명령어를 포함하는 데이터의 흐름을 제어한다.
MMIC(6)은 또한 내부로컬메모리(4)에의 액세스도 제어한다.
기초회로(1)는 또한 광역외부버스 인터페이스(7), 마이크로 프로세서 서브시스템(8), DSP(어레이 프로세서)(9), 인접회로통신포트(10), 특별목적회로(11)(즉 전문화된 프레임생성회로, 내용지적메모리 등)및 도 1에 나타낸 회로를 내부 접속하는 와이어묶음(3),(5),(12),(13),(14),(15),(16) 및 (17)을 포함한다.
GEBI(7)은 외부환경에 인터페이스를 제공한다.
외부버스는 잘 알려진 주변기기부품 내부접속(PCI), 가속된 그래픽포트(AGP), 유니버설 시리얼버스(USB), IEEE 1394, 또는 화이버채널, 또는 외부제어기호스트와 본 발명의 다수의 사례를 지원하기 위해 설계된 특별목적버스 등과 같은 표준컴퓨터버스이다.
매입된 마이크로 프로세서 서브시스템(8)은 기초회로(1)의 동작을 제어하며, DSP(9)나 특별목적회로(11)를 목표로 하지 않고 계산을 수행한다.
마이크로 프로세서 서브시스템(8)은 다음에 다시 상세히 설명한다.
DSP(9)는 부유점 계산을 수행한다.
본 발명의 일실시예에서, DSP(9)는 1997.6.20자로 출원되어 참조로 제시된 미국특허출원 제 60/050,396호에 기재된 것과 같다.
DSP(9)에 대해서는 다음에 다시 상세히 설명한다.
인접회로 통신포트(10)는 기초회로(1)와 시스템내의 기초회로(1)의 다른 사례간의 통신을 제공한다.
시스템응용에서, 기초회로(1)의 단 하나의 사례만이 사용되었으면 이들 포트(10)는 필요하지 않다.
특별한 실시예에서는 상술한 것의 예외로서, 이들 포트(10)의 어떤것은 기초회로(1)의 사례가 아니고, 그래도 역시 고도의 병발하는(동시발생의) 처리 또는 기초회로(1)의 사례로부터의 이익이 되는 다른 부품의 통신을 제공한다.
기초회로(1)의 다중의 사례를 갖는 응용은 때로는 고속과 기초회로의 사례간의 병발하는 통신을 필요로 한다.
통신포트(10)를 제공하므로서 기초회로(1)는 외부버스인터페이스(GEBI)(7)의 잠재적인 병목현상을 감소시킨다.
특별한 실시예에서는 통신포트(10)는 정확히 두 개의 사례간의 전념하는 통신을 제공하고, 그러므로 각 포트에 사용된 프로토콜은 외부버스인터페이스(7)에 사용된 버스프로토콜 보다 상당히 간단하다.
일반적으로 내부사례 통신에 표준방법이 사용된다.
예를들면, 이 기술에 잘 첨부된 통신프로토콜에 기초한 각종 통신계획이 사용된다.
유사하게 어떤 몇가지의 신호기 시스템이나 핸드쉐이킹시스템은 근사하지 않은 사례에 의해 동작하는 콘커런트 시퀀스 프로세스(CSP)를 동기하고 제어하기 위한 능력을 제공하기 위해 사용된다.
특별목적회로(11)는 응용에 있어서, 그렇지 않으면 극도로 복합적이고 시간소비동작이 필수적인 성능 강화를 제공하기 위해 각종 실시예가 존재한다.
한정되지는 않지만 그러한 회로의 예는 Z-버퍼 동작을 가속하기 위한 프레임생성기, 직사각형필, "BiTBlts "와 표면조직, 프락탈 압축을 위한 패턴정합을 위한 콘텐트 어드레서블메모리(CAM), 또는 해시표로 지정하면서 압축된 송신권을 표준핸들로 변형하고, 선마이크로시스템의 상표인 MPEG(Moving pictures experts group)와 Java와 같은 언어를 고도로 압축된 통신계획을 위한 데이터표제와 명령을 복호화하기 위한 비트코드 구문해석계 등을 포함한다.
내부메모리뱅크(4)는 하나와 그 이상의 RAM 어레이 뱅크를 포함한다.
이 메모리들은 본 발명의 실시예에서 경제적인 DRAM 이지만 다른 형의 메모리도 또한 사용할수가 있다.
바람직하게는 본 실시예에서는 넓은 구성으로 편성된 전체메모리가 1에서 32MB가 제공된다.
이는, 1024비트(1K 비트)까지의 폭을 의도하고 있다.
64비트 이상의 폭을 "광역"이라고 생각한다.
이들 메모리의 바람직한 구성은 다음의 것을 포함하지만 이에 한정되지는 않는다.
32K by 64,by 128,by 256, by 512 및 by 1K비트
64K by 64,by 128,by 256, by 512 및 by 1K비트
128K by 64,by128,by 256, by 512 및 by 1K비트
256K by 64,by128,by 256, by 512 및 by 1K비트
등.
이러한 구성은 이점을 갖는 예를들면 72와 같은 2의 전력보다 데이터 길이에의 액세스를 제공한다.
그러한 구성은 실행되고 가산된 MMIC(6)에 결합된 표준 로직의 오차검출과 계획정정을 지원한다.
MMIC(6)은 몇가지의 기능을 지원하는 디지털 로직회로이다.
만일, 내부메모리뱅크(4)가 DRAM 또는 DRAM과 같이 행하는 재생이 요구되면 MMIC(6)은 자동적으로 내부 RAM뱅크(4)를 재생한다.
MMIC(6)은 GEBI(7)와, 매입된 마이크로 프로세서(8)와, DSP(9)와, 잠재적으로 인접회로통신포트(10)의 사례와, 특별목적회로(11)에 의한 기록과 판독을 위해 내부 RAM뱅크(4)에 액세스 하는 것을 허용하고 제어한다.
MMIC(6)은 또한 GEBI(7)와, 매입된 마이크로 프로세서(8)와, DSP(9)와 잠재적으로 인접회로통신포트(10)의 사례와, 특별목적회로(11)에 의한 외부로컬메모리인터페이스(2)에 액세스 하는 것을 허용하고 제어한다.
본 발명의 실시예에서는 MMIC(6)는 외부로컬메모리의 데이터 및/또는 명령어를 위한 모듈(7),(8),(10),(11)로부터의 요구를 수용하므로서 데이터와 명령어의 흐름을 제어하기 위한 피니트스테이트머신(FSM)을 포함한다.
MMIC(6)은 FSM내에 부호화 된 결정알고리즘에 기초해서 그들을 만족시킨다.
FSM의 데이터/명령어 흐름 제어는 잘 알려진 것이다.
본 발명의 실시예에서는 분리된 명령어와 데이터흐름은 각 매입된 마이크로 프로세서(8)와, DSP(9)와, 특별목적회로(11)에 유지된다.
이 명령어와 데이터흐름은 GEBI(7)로부터 프로그램의 초기화와 동작중에 거기에 장착된 후에 특히 외부로컬메모리상에 존재한다.
이들 명령어와 데이터흐름은 알려진 편집기 기술에 의해 하나 또는 그 이상의 편집기에 의해 특히 생성되고, 알려진 방법에 따라 동격화를 위해 일정량의 핸드쉐이킹에 결합될 것이다.
MMIC(6)에 추가해서 매입된 마이크로 프로세서(8)와 GEBI(7)는 이 기술에서 알려진 방법으로 데이터/명령어의 흐름의 제어를 위한 방향을 제공한다.
예를들면, 마이크로 프로세서(8)는 오차제어나 초기화, GEBI(7)상의 버스오차처리의 포획과 같은 FSM의 선제로 파악하는 제어를 할 수가 있다.
외부로컬 메모리 인터페이스를 위한 제어기(2)는 하나 또는 그 이상의 종류의 외부IC 메모리에 액세스하기 위한 인터페이스 관례와 외부타이밍을 위한 지원을 제공한다.
예를들면, ELMI(2)는 RAM에 기록과 판독의 액세스를 제공하고, 불휘발성 메모리에 기록액세스를 제공한다.
만일 일부나 모든 외부메모리가 DRAM이면 ELMI(2)는 자동메모리재생을 지원한다.( 참조문 54의 chapters 6과 7참조)
최선으로 ELMI(2)는 재생중에 액세스 요구의 대기행렬을 제공한다.
ELMI(2)는 또한 임의로 기록과 소거 및 기타의 잠재적으로 느린 동작동안 액세스요구의 대기행렬을 제공한다.
실시예에서 적어도 약간의 외부메모리가 프로그램가능하고 불휘발성이면, ELMI(2)는 특별한 언어의 기록과 적당한 언어블록의 소거를 제공한다.(참조문 54의 chapters 10, 11, 12참조)
최선으로 ELMI(2)는 불휘발성인 메모리동작을 위한 소거 보류와 어떤 응용에서 이득을 제공하기 위해 이 기술에서 잘 알려진 추가적인 기능을 제공한다.
또한, 도 1에서 특별히 나타내지 않았지만 다른 실시예에서의 기초회로(1)는 아날로그/디지털변환기, 디지털/아날로그변환기, 전압제어발진기 등 및 그들의 대응하는 와이어 묶음 등과 같은 하나 또는 그 이상의 아날로그 인터페이스부품을 포함한다.
한정되지는 않았지만 다른 실시예의 추가적인 2차지원회로는 내부클록승산기, 위상잠금루프(PLLs), 클록분배망, 조립자기시험회로(BIST), 경계주사통로 등과 같은 이 기술에서 알려진 것을 포함한다.
기초회로(1)는 프레임렌더링과 유사한 태스크를 위해 고성능계산엔진을 제공하기 위해 여러가지로 가장 효과적으로 활용할수 있도록 설계되어 있다.
매입된 마이크로 프로세서(8)와, DSP(9)와, 특별목적회로(11)는, 데이터와 명령어의 부족에 대한 기능정지를 최소화하는 그들의 개개의 명령어와 데이터를 동시에 생성하기 위한 회로자원을 제공한다.
상술한 바와 같이 또한 다음에 기술하는 바와 같이 예를들면 전체의 설계로부터 개개의 모듈의 설계로부터 이들 효과는 나타난다.
예를들면, 상호작용을 위해 제공된 통로를 구성하므로서, 즉 글로벌 외부버스와 주버스 인터페이스상에서 일차흐름처리와 독립된 매입된 마이크로 프로세서간을 제어하므로서 와이어묶음(13)은 주버스인터페이스(6)와 와이어묶음(12),(14),(15),(16),(17)상의 대역폭을 감소시킨다.
이러한 방법으로 주버스인터페이스의 대역폭이 보호된다.
실시예에서는 기초회로(1)는 집적회로(IC)로서 실행된다.
중요하게도 기초회로(1)는 그 설계에 의해 비교적 작은 양의 IC표면적을 사용하면서 실행될수 있다.
또한, 특히 마이크로 프로세서와 어레이 프로세서의 계산단위를 효과적으로 목표로 하는 이 기술은 간단하고 편집기에 이를 허용하는 것이 충분히 유연하다.
도 2는 본 발명의 실시예에 따른 도 1의 어레이 프로세서(9)의 블록도이다.
다음의 설명으로부터 명백한 바와 같이 종래의 기술에서 벡터처리기술을 사용하여 병렬로 효과적으로 처리할수 없었던 계산을 수행하는 것이 가능하다.
예를들면 계산은 몇개의 비교적 짧은 벡터가 소요되는 계산을 포함한다.
예를들면 X=(az+b)/(cz+d),(여기서 a,b,c,d,z는 모두 복합부유점수)과 같은 계산복합치기능이다.
잘 알려진 바와 같이 이들 계산과 유사한 계산이 프레임렌더링에서 공통이다.
기능을 계산하기 위한 ao,bo,co,do,zo,및 xo는 실부품으로 한정되고, 이에 대응하는 a1,b1,c1,d1,z1 및 x1은 가상부품으로 한정된다.
부유점 분할회로의 계산에 들어가기 전에 두 개의 승산 집계통로로 진행한다.
첫째 통로에서 다음의 것이 계산된다.
AO=ao*zo-al*zl+b0
A1=a0*z1+a1*zo+b1
BO=c0*zo-c1*zl+do
B1=c0*z1+c1*z0+d1
제2통로에서 BO와 B1의 결과는 승산기와 누산기로 귀환되고, 분배된 연산수를 생성한다.
CO=A0*B0-A1*B1
C1=A1*BO+A0*B1
D=BO*BO+B1*B1
최종적으로 분할작업은 다음과 같이 수행된다.
X0=CO/D
X1=C1/D
도2의 실시예에 따르면 어레이 프로세서 인터페이스회로(APIC)(965)는 MMIC(6)로 부터의 명령어와 데이터의 요구와 수신 및 MMIC(6)으로의 데이터의 송신을 제어한다.
이 실시예의 어레이 프로세서(9)는 다중데이터통로처리장치(900)의 단일 수집기(970)를 갖는다.
데이터통로처리장치(900)는 또한 단순히 데이터통로로서 기능한다.
수집기(970)는 산수처리장치(APU)를 형성한다.
APU(970)내에서 내부 부유점 표시법이 사용된다.
이 내부표시법은 외부에서 사용되는 부유점 표시법과 같거나 다르다.
일반적으로 APU(970)는 적어도 표준외부표시법, 즉 표준 IEEE부유점 표시법을 기대해서 채용되었다.
바람직한 실시예에서는 사용된 부유점 표시법은 예외적인 경우를 포함하지 않는 단순화된 표시법, 즉 표준 IEEE부유점 표시법이다.
단순화된 표시법을 사용하므로서 회로 크기에 관련해서 예외적인 경우의 복잡성을 피하면서 보다 큰 내부효율을 가능하게 한다.
예외적인 경우는, 특히 프레임렌더링과 DSP응용에 크게 관련되지 않기 때문에 단순화된 표시법을 사용하는 것이 실용적이다.
APU(970)는 승산기입력회로로 작용하는 분배연산수회로(SOC)를 포함한다.
임의로 SOC(910)는 RAM이 연산수저장물로 또는 제1-입-제1-출(FIFO)대기행렬로 사용될것인가 아닌가를 결정하는 어드레스제어하는 RAM회로를 포함한다.
SOC(910)내의 제1서브회로(도시생략)는 와이어묶음(902)의 상태를 포착하고 입력을 수용하기 위한 다수의 입력레지스터를 포함한다.
SOC(910)는 제1서브회로내의 레지스터에 결합된 제2서브회로를 포함한다.
제2서브회로는 정수의 산술로직장치(ALU)를 포함한다(도시생략).
제2서브회로는 레지스터로부터의 와이어묶음(902)의 상태의 선택된 필드상에서 고정점 가산/공제를 수행한다.
제2서브회로는 가산/공제동작의 고정점결과나 또는 선택된 필드의 입력 레지스터를 알려진 변환알고리즘에 따라 내부 부유점 표시법으로 변환한다.
그러므로 제2서브회로는 부유점 변환장치를 포함한다고 할 수 있다(도시생략).
APU(970)는 데이터통로 처리장치(900)로서 둘 또는 그 이상의 승산기/누산기(MACs)(900)를 포함한다.
MACs는 이 기술분야에서 잘 알려진 것이다.
각 MAC(900)는 SOC(900)로부터 분배된 연산수를 수용하기 위한 와이어묶음(906)에 결합되어 있다.
각 MAC(900)은 또한 대응하는 로컬(local)데이터저장소(920)에 결합되어 있다.
일반적으로 MAC(900)으로서 많은 로컬데이터메모리회로(920)가 있다.
동작중에 각 MAC(900)는 어떤 숫자 형식으로 3개의 숫자 X,Y 및 Z를 수신하고, 여기서 X는 와이어묶음(906)을 거쳐서 수신한 분배연산수이고, X와 Z는 와이어묶음(909)을 거쳐서 로컬데이터저장고(920)로부터 수신한 것이다.
각 MAC(900)은 두 개 이상의 레지스터를 바람직하게는 적어도 4개를 소유한다.
각 MAC(900)는 각 클록주기내에서 승산과 가산/공제를 수행할 수가 있고, 그리하여 전류 또는 선행클록주기로부터 수신한 값 X,Y,Z로부터 XY+Z, XY-Z를 생성한다.
각 MAC(900)은 조건부로 그 하나의 레지스터에 생성된 결과를 저장한다.
APU(970)는 또한 분배출력 귀환인터페이스(SOFI)(940)를 포함한다.
SOFI(940)는 부유점변환장치를 포함하고(도시생략), 와이어묶음(907)의 내부숫자형식을 필수의 부유점 또는 외부에서 필요한 고정점포시법으로 변환하기 위해 표준기술을 사용해서 채용되었다.
물론 실시예에서 내부 부유점 표시는 외부표시와 동일하고, 특별한 변환은 수행될 필요가 없다.
SOFI(940)는 광역버스(901)를 거쳐 APIC(965)로의 그러한 변환의 결과의 전송을 제어한다.
특별한 실시예에서는 또한 SOFI(940)는 임시로 그러한 결과를 필요에 따라 전송전에 저장한다.
데이터메모리(920)는 액세스를 위한 어드레스를 제공하기 위해 대응하는 어드레스발생기를 갖고 있다.
Y와 Z연산수를 초래하기 위해 사용된 어드레스는 동일하거나 동일하지 않다.
다른 어드레스의 생성을 지원하므로서 FFT와 같은 많은 응용요구를 위해 이점이 제공된다.
APU(970)는 전체제어 동기회로와 명령어 저장장치(CSIS)(950)를 포함한다.
CSIS(950)는 APU(970)의 각종 모듈의 제어와 동기를 수행하고, 명령어의 저장을 포함한다.
도 2에 나타내는 APU(970)의 주어진 구성과 여기서 설명하는 CSIS(950)는 이들 과제를 수행하기 위한 적당한 구조를 갖는다.
특히, CSIS(951)는 상태레지스터, 프로그램계수기, 둘이상의 루프계수기, 각 MAC에 결합된 각 Y와 Z연산수 로컬메모리(920)를 위한 적어도 하나의 인덱스레지스터, 명령어 저장기를 포함하고, 모든 부품은 이 기술에서 잘 알려진 것이다.
명령어는 각 입력,출력분배, MAC(900)을 위한 다른 필드를 소유한다.
상태레지스터는 임의로 적어도 와이어상태의 복잡성을 보호한다.
이들 와이어상태는 적어도 루프계수기의 상태조건비트와 각 SOC의 정수(ALU)로부터 제로검출신호와 각 APU(970)의 SOFI(940)의 부유점변환장치의 조건비트를 포함한다.
CSIS는 명령어를 요구하고, 이들 명령어를 명령어 저장기에 완충시키기 위해 채용되었다.
와이어묶음(903)은 로컬데이터저장고(920)에 입력을 제공한다.
와이어묶음(903)은 적어도 각 로컬데이터메모리(920)의 부품메모리를 위한 어드레스와, 기록/판독제어와 각 로컬데이터메모리(920)의 페이지삽입제어신호를 포함한다.
각 APU(970)는 두 개의 벡터에서 동작한다.
즉, "벡터 가산벡터"동작과 또는 하나의 벡터와 스칼라, "벡터의 요소를 승산하는 스칼라"동작이다.
로컬메모리회로(920)나 다른 MAC레지스터의 상태가 다른 두 개의 연산수를 제공하기 때문에 또한 입력연산수가 MAC의 복잡성중에 분배되어 있기 때문에 APU(970)는 대단히 융통성이 있다.
본 발명에 따른 어레이 프로세서(9)는 벡터처리기를 사용해서 효율적으로 수행할수 없었던 수행해야 할 계산의 형식을 가능하게 한다.
예를들면, 몇 가지의 디스크리트 웨이브레트 변형여파기(DWTF)는 몇개의 벡터의 서브콤포넨트를 넘어서 몇개의 다른 스칼라를 분배해야 할 필요가 자주 있다.
벡터프로세서는 특히 분배해야 될 스칼라의 수에 있어서, 이 과제를 수행하는데 많은 주기를 필요로 한다.
이들 DWTF는 각 입력이 모든 여파기출력에 영향을 미치고, 기수출력은 다만 여파기출력의 절반에 영향을 미친다.
4개의 입력을 이 방법으로 처리하므로서 한계를 강요하고, 벡터 프로세서 액세스를 사용해서 기수입력은 동시에 처리될 수가 없다.
그러나, 어레이 프로세서(9)에서는 이들 문제는 최소화되고, 예를들면 두 개의 기수 입력스칼라요소를 벡터의 다른 부품에 보낼수가 있기 때문이다.
기수 2FFT는 벡터의 부품을 달리하는데 양 합계와 차이를 나타낸다.
본 발명에서는 벡터프로세서에 의해 한쌍의 요소당 두 주기가 소요되는 것 대신에 벡터의 각각의 부품과 이들을 병렬로 표시하므로서 한 주기의 결과를 달성할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 도 1의 어레이 프로세서(9)의 블록도이다.
도 3에 나타내는 바와 같이 어레이 프로세서(9)는 두 개의 APU(970)를 갖는다.
이 구성은 다른 모듈, 즉 매입된 마이크로 프로세서에 의해 수행되어야 할 다른 계산에 관련하여 부유점 계산의 가산된 협조의 응용에 있어서 특히 많다는 것이 예측된다.
이 실시예에서는 기초회로(1)의 APU(970)의 수는 두 개 이상으로 증가시킬수가 있다.
실시예에서 사용된 도 3에 따른 어레이 프로세서(9)는 도 3에 따른 어레이 프로세서(9)에 추가해서 기초회로(1)는 필요하면 GEBI(7), ELMI(2), 매입된 마이크로 프로세서 서브시스템(8), 인접회로 통신포트(10)을 포함하고, 또한 추가적인 특별목적회로(11), 메모리뱅크(4)는 포함하고 있지 않으며, 그러므로 마스터 인터페이스 및 콘트롤MIC(6)는 MMIC(6)의 메모리 제어기는 제외된다.
도 4는 도 1의 매입된 마이크로 프로세서 서브시스템(8)의 블록도이다.
매입된 마이크로 프로세서는 잘 알려진 기술이다.
도 4에 나타내는 매입된 마이크로 프로세서 서브시스템(8)은 마이크로 프로세서(800)를 포함한다.
마이크로 프로세서(800)는 Java나 MPEG-4엔진, 프로그램어블 피니트 스테이트 머신(PFSM), RISC엔진, 바람직하게는 32비트 데이터 통로와 같이 16비트 명령어세트 ARM7TDMI 또는 MIPS(16)를 바이코드머신으로서 실행할수가 있다.
매입된 마이크로 프로세서 서브시스템(8)은 또한 임의의 전체메모리가 적어도 1K언어의 메모리와 적어도 64페이지의 2-4방향이 매입된 로컬저장물(810)을 포함한다.
특히, 저장물메모리(810)는 32비트 언어로 편성되어 있다.
저장메모리(810)는 하나의 명령어와 하나의 데이터를 위한 두 개의 부품저장물을 포함한다.
매입된 마이크로 프로세서 서브시스템(8)은 또한 이 기술에서 잘 알려진 RAM(820)이나 ROM(830)과 같은 추가적인 임의의 로컬저장물을 포함한다.
ROM(830)은 마이크로 프로세서 서브시스템(8)이나 기초회로(1)를 위한 초기화정보를 포함한다.
실시예에서는 마이크로 프로세서(800)는 두 변형의 명령어세트, 즉 하나는 편집기 기술에서 생성된 코드에 의해 사용되는 가장 일반적인 명령어를 포함하는 길이가 16비트인 변형과, 하나는 길이가 32비트의 변형을 포함한다.
그러한 마이크로 프로세서는 잘 알려진 기술이다.
그러한 마이크로 프로세서의 이점은 대부분의 생성된 프로그램코드가 16비트 형식인 것이다.
각 마이크로 프로세서(800)에는 32비트 또는 그 이상의 명령어범위는 그 이상의 명령어메모리 액세스의 자원없이 다음의 1 내지 3의 명령어를 제공할수가 있다.
여기서 기술한 기초회로(1)과 어레이 프로세서(9)는 몇가지의 현저한 이점을갖는 회로의 구성을 나타낸다.
하나의 이점은 마이크로 프로세서나 종래의 DSP를 사용한 인쇄회로기판의 크기와 비교한 그러한 알고리즘의 수행에 비해 기초회로(1)은 그러한 환경에서 특히 계산적으로 강한 알고리즘을 실행할수 있는 높은 수준의 효율을 갖고 있다.
일반적으로 기초회로(1)는 같은 결과를 달성할 수 있는 다른 기구에 비해 작은 회로크기가 소요된다.
그러므로 기초회로(1)는 같은 결과를 달성하는데 있어서, 다른 기구에 비해 저렴하다.
어레이 프로세서(9)의 작은 회로크기소요는 분할작업을 직접 실행하지 않기 때문이며, 그것은 실제로 프레임렌더링이나 DSP 알고리즘의 큰수의 이익은 일반적이 아니기 때문이다.
어레이 프로세서의 실시예에 있어서, MAC는 단일정밀산수를 지원하도록 구성되어 있고, 특히 큰 클래스의 프레임렌더링이나 DSP응용에 충분하고, 어레이 프로세서(9)의 회로크기의 소요가 현저히 감소된다.
어레이 프로세서(9)의 구성은 부유점 변환과 그리고 승산 누산에 이어서 고정점 가산/공제의 "전면단말"을 제공한다.
이 "전면단말"은 대칭적인 또는 비대칭적인 FIR에 포함된 예비동작과 약간의 낮은 기수FFT계산을 수행한다.
이들 동작은 DSP응용에 대단히 유용하고, 데이터는 고정점 정확도의 8 내지 16비트를 생성하는 샘플링회로로부터 고정점 변형을 수신한다.
어레이 프로세서(9)의 다른 이점은 반올림오차의 누산의 일반적인 현상에 관한 것이다.
DSP알고리즘이 산수결과의 정밀도를 유지하는 것은 대단히 중요하다.
효율을 위해 종래의 많은 DSP프로세서는 고정점 산수를 수행하는 알고리즘을 사용한다.
그러한 고정점 산수는 정확도를 유지하기 위해 반올림 오차를 관리하는데 많은 양의 주의를 요한다.
이에 대해 어레이 프로세서(9)는 부유점계산을 효율적으로 수행할수가 있다.
부유점계산은 훨씬 좋은 동적범위를 제공하는 이점이 있고, 결과가 같은 정확도를 위한 프로그램밍이 현저히 용이하다.
어레이 프로세서(9)의 시험예에서 특별한 가능성을 확인하는 것은 흥미롭다.
시험예에서 어레이 프로세서(9)는 APIC(965)에서 MMIC(6)으로부터 적어도 128비트를 수신한다.
각 APU(970)의 SOC(910)는 동시에 적어도 64비트를 수신한다.
SOC(910)는 수신한 데이터를 고정 8비트나 16비트의 정수필드로 분석할 수가 있다.
SOC(910)는 동시에 4까지 수집하면서 이들 필드를 가산하거나 감산할수가 있다.
이 시험예의 구성은 다른 계산중에서 기수-4FFT의 계산을 높은 성능으로 달성하는 것이 가능하다.
시험예에서 어레이 프로세서서브시스템(9)은 200MHz의 내부클록율을 갖는다.
다음의 동작, 4개의 단일정밀부유점의 승산과 4개의 단일정밀부유점가산과 ;정수/고정점 승산/감산, 정수/고정점을 부유점비율변환과 ; 부유점을 고정점비율변환, 등은 매클록주기에 수행될 수 있다.
실시예에서는 로컬데이터저장기(920)는 대응하는 MAC(900)을 위한 Y와 Z를 초래하면서 MMIC(6)를 거친 액세스를 수신한 데이터를 지원하기 위해 2방향으로 매입된다.
실시예에서는 통신계획은 GEBI(7), MMIC(6), 매입된 마이크로 프로세서 서브시스템(8), ELMI(2),어레이 프로세서(9)의 AIPC(965)이 실행되고, 표준기술을 사용해서 어레이 프로세서(9)가 프레임 렌더링이나 DSP응용상상을 위해 시간의 75%의 순으로 전체로 활성으로 유지되는 것을 허용한다.
이 수행가정은 기초회로(1)와 그 내부어레이 프로세서에 대한 데이터의 로컬성에 기초해서 합리적이다.
시험예의 성능의 결과로서 주어진 상기한 가정은 많은 DSP와 특별한 프레임렌더링 알고리즘을 위한 1에서 3 기가플롭(초당 10억 부유점동작)가 될것이다.
기초회로(1)가 176핀 TQFP와 같은 표준 IC 패키지에 실행되었다고 가정하면 각 IC는 대략 1평방 인치의 인쇄회로기판의 공간을 취할 것이다.
본 발명의 실시예는 32개의 이들 IC를 유지할 수 있는 PCI버스카드로서 실행될 수 있고, 비용의 비율에서 실리콘 그래픽스 워크스테이션(참조문 1의 Toy Story 참조)의 성능의 16배를 제공할 수 있다.
본 발명은 특히 Java(참조문 64, 65참조)와 MPEG(참조문 57∼63참조)와 같은 상호 작용하는 오디오-비디오 언어를 포함하는 응용의 사용에 적합하다.
MPGA-4표준작용은 수요자를 목표로 하는 하드웨어상에서 수행할 수 있는 넓은 범위의 각종 알고리즘의 환경하에서 개발되고 있다.
Java는 대단히 복잡하고 계산적으로 비싼 알고리즘을 생성하고 간청하기 위해 의미론의 능력과 정의와 소유가 독립된 기계이다.
본 발명은 망기구의 고성능지원을 제공한다.
본 발명의 다른 실시예를 집적회로의 윤곽형식으로 기술한다.
하나의 큰 메모리 광인터페이스회로는 큰 메모리는 집적회로내에 위치하거나 또는 위치하지 않고, 큰 메모리 광인터페이스회로는 버스(BO)에 의해 큰 메모리에 접속되며, 큰 메모리 광인터페이스회로내의 2방향 송수신기는 상기 접속버스(B0)의 와이어묶음(D0)을 접속하고, 큰 메모리 광인터페이스회로와 큰 메모리간의 데이터의 전송을 제공한다.;
하나 또는 그 이상의 데이터처리회로는 프로그램머블 피니트 스테이트 머신(PFSM)과 마이크로 프로세서를 포함하고, 큰 메모리 광인터페이스에 대한 데이터처리 인터페이스회로에서 데이터처리회로는 버스(B1)에 의해 큰 메모리 광인터페이스회로에 접속되며, 양 회로는 2방향 송수신기는 접속버스(B1)의 와이어묶음부품(D1)에 접속되고, 접속버스(B1)의 접속부품와이어묶음(D1)의 저장과 주필드와 및/또는 감지한 상태를 저장할 능력을 제공하기 위한 로컬메모리회로는 로컬메모리회로가 상태가 더 이상 주장할수 없는 상태 이후의 상태정보를 유지할 수 있도록 그리하여 접속버스(B1)의 접속부품와이어묶음(D1)에 의해 감지되도록 구성되고, 버스(B1)의 와이어묶음(D1)의 신호상태는 시간내에 전후로 변환된 일부 또는 모든 신호상태(DO)를 포함하고, 버스(B0)의 와이어묶음(D0)으로부터 데이터가 전송되는 기구이고; 큰 메모리 광인터페이스회로에 각각 어레이 프로세서 인터페이스회로를 포함하는 하나 또는 그 이상의 어레이 프로세서는 분배된 연산수입력회로와, 승산기/누산기의 승산과, 분배된 승산기출력회로와 명령어복호회로를 포함하고, 큰 메모리 광인터페이스회로에 대한 어레이 프로세서 인터페이스 접속은 인터페이스회로와 큰 메모리 인터페이스회로와 버스(B2)로 구성되고, 접속버스(B2)의 접속와이어묶음부품(D2)에 접속된 2방향 송수신기를 포함하고, 접속버스(B2)의 접속부품와이어묶음(D2)의 저장과 주필드와 및/또는 감지한 상태를 저장할 능력을 제공하기 위한 로컬메모리회로는 로컬메모리회로가 상태가 더 이상 주장할수 없는 상태 이후의 상태정보를 유지할수 있도록 그리하여 접속버스(B2)의 접속부품와이어묶음(D2)에 의해 감지되도록 구성되고, 버스(B2)의 와이어묶음(D2)의 신호상태는 시간내에 전후로 변환된 일부 또는 모든 신호상태(DO)를 포함하고, 버스(B0)의 와이어묶음(D0)으로부터 데이터가 전송되는 기구이고; 분배된 연산수입력회로는 추가적으로 버스(B3)에 의해 어레이 프로세서 인터페이스회로에 접속되고, 분배된 연산수입력회로는 버스(B4)에 의해 승산기/누산기에 결합된 로컬데이터 메모리회로와 분배된 승산기 출력회로에 접속되어 있고; 분배된 연산수 입력회로는 와이어묶음의 일부 또는 모든 상태정보를 수신하고; 승산기 누산기는 승산과 가산기구로 구성되어 있고, 두 개의 독립적으로 어드레스 가능한 RAM으로 구성되어 있고; 승산과 가산기구는 하나의 승산기 입력을 분배하고, 판독전용이거나 아닌 독립적으로 어드레스 가능한 두 개의 RAM으로부터 두 개의 다른 입력이 제공되고; 각 RAM의 어드레스 제어와이어묶음은 제어와이어묶음의 부품이며; 승산과 가산기구는 승산기와 누산기 및 승산기출력회로가 분배된 와이어묶음(MO)에 대한 출력구동장치를 갖고; 각 출력구동장치는 제어와이어묶음(CWB)의 와이어묶음부품에 의해 제어되고; 승산기출력회로는 MO와이어묶음 인터페이스와 승산기출력 메모리회로와 승산기출력 인터페이스로 구성되고; MO와이어묶음 인터페이스는 M0와이어묶음에 접속된 입력회로로 구성되고; 승산기출력회로는 메모리회로에 데이터가 저장될수 있도록 그러한 방법으로 MO와이어묶음 인터페이스회로의 입력회로에 접속되어 있고; 메모리출력회로는 메모리회로의 상태를 메모리출력 인터페이스로부터 부품와이어묶음이나 전체버스(B3)로 출력할수 있도록 승산기출력 인터페이스에 접속되어 있고; 이 실시예에서는 버스(BO)는 추가적으로 부품와이어묶음 (DOA)와 (DOC)를 포함하고; 큰 메모리 광인터페이스회로내의 출력구동장치는 접속버스(BO)의 와이어묶음(DOC)를 접속하고, 큰 메모리데이터 액세스에 필요한 제어신호를 제공하고; 다른 실시예에서는 버스(BO)는 추가적으로 부품와이어묶음을 포함하고; 큰 메모리 광인터페이스회로내의 입력구동장치는 접속버스(BO)의 와이어묶음(DOF)를 접속하고, 큰 메모리데이터액세스의 통신에 사용되는 귀환신호를 제공하고; 실시예에서 외부회로에의 통신인터페이스의 적어도 하나는 요구한 회로가 주버스로 작용하는 버스에 통신인터페이스를 제공하고; 실시예에서 외부회로에의 통신인터페이스의 적어도 하나는 요구한 회로가 종버스로 작용하는 버스에 통신인터페이스를 제공한다.
본 발명에 의하면, 비디오처리와 동화제작 또한 디지털신호와 화상처리에 사용하기 위한 전부 또는 일부의 프레임을 생성하는데 필요한 메모리, 로직, 산술적 및 제어회로를 포함하는 회로가 제공되며, 하나 또는 그 이상의 그러한 회로가 집적회로상에 제공된다.
동화제작을 위한 프레임생성의 예외적인 성능을, 또한 특히 의료화상과 같은 3차원 또는 기타 고성능응용을 제공하기 위해 또는 비디오게임에 있어서 효과적인 현실성과 실시간 장면생성과 모의실험 환경을 제공하기 위해 비디오 또는 화상프레임생성 시스템은 하나 또는 그 이상의 집적회로로, 임의로 추가적인 메모리회로로 구성되어 있다.
MPEG4에 의해 제안되고, 고도로 가장 효과적으로 활용된 숫자의 성능을 갖는 단일칩 JAVA엔진으로서 작동하는 것과 같은 흐름에 관련된 고속의 목적에 적응시킨 그래픽의 처리에 이들 회로는 사용된다.
참 조 문

Claims (4)

  1. 메모리와 같이 동작하는 동작중의 집적회로에 있어서,
    상기 메모리에 결합되고, 상기 메모리에의 액세스를 제어하도록 구성된 인터페이스회로와,
    정보를 수신하기 위해 상기 인터페이스회로에 결합되고, 상기 집적회로를 제어하도록 구성된 매입된 프로세서와,
    정보를 수신하기 위해 상기 인터페이스회로에 결합되고, 산수계산을 수행하기 위한 어레이 프로세서로 구성된 집적회로.
  2. 제1항에 있어서,
    상기 어레이 프로세서는 복수의 승산기/ 누산기와, 적어도 두 개의 상기한 복수의 승산기/누산기의 공유연산수를 제공하기 위해 결합된 공유연산수회로로 구성된 집적회로.
  3. 제1항에 있어서,
    상기 인터페이스회로가 광범위한 액세스를 제공하기 위해 와이어묶음을 포함하는 구성인 집적회로.
  4. 제3항에 있어서,
    상기 와이어묶음이 적어도 256와이어로 구성된 집적회로.
KR10-1999-7005593A 1996-12-19 1997-12-18 비디오 프레임 렌더링 엔진 KR100366689B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3347696P 1996-12-19 1996-12-19
US60/033,476 1996-12-19
US5039697P 1997-06-20 1997-06-20
US60/050,396 1997-06-20

Publications (2)

Publication Number Publication Date
KR20000062253A true KR20000062253A (ko) 2000-10-25
KR100366689B1 KR100366689B1 (ko) 2003-01-06

Family

ID=26709753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-7005593A KR100366689B1 (ko) 1996-12-19 1997-12-18 비디오 프레임 렌더링 엔진

Country Status (6)

Country Link
US (1) US6854003B2 (ko)
JP (1) JP4235987B2 (ko)
KR (1) KR100366689B1 (ko)
DE (2) DE19782200B4 (ko)
GB (1) GB2335127B (ko)
WO (1) WO1998028695A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100648293B1 (ko) * 2005-08-09 2006-11-23 삼성전자주식회사 그래픽 시스템 및 그것의 그래픽 처리 방법

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6646639B1 (en) 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
DE69813912T2 (de) * 1998-10-26 2004-05-06 Stmicroelectronics Asia Pacific Pte Ltd. Digitaler audiokodierer mit verschiedenen genauigkeiten
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
US7111155B1 (en) 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
US7107302B1 (en) 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6820189B1 (en) 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US6573900B1 (en) 1999-12-06 2003-06-03 Nvidia Corporation Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads
US6417851B1 (en) 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
US6452595B1 (en) 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
US6765575B1 (en) 1999-12-06 2004-07-20 Nvidia Corporation Clip-less rasterization using line equation-based traversal
US7209140B1 (en) 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
US6650325B1 (en) 1999-12-06 2003-11-18 Nvidia Corporation Method, apparatus and article of manufacture for boustrophedonic rasterization
US6504542B1 (en) 1999-12-06 2003-01-07 Nvidia Corporation Method, apparatus and article of manufacture for area rasterization using sense points
US6353439B1 (en) 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6198488B1 (en) 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
US6515671B1 (en) 1999-12-06 2003-02-04 Nvidia Corporation Method, apparatus and article of manufacture for a vertex attribute buffer in a graphics processor
US6844880B1 (en) 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6870540B1 (en) 1999-12-06 2005-03-22 Nvidia Corporation System, method and computer program product for a programmable pixel processing model with instruction set
US6593923B1 (en) 2000-05-31 2003-07-15 Nvidia Corporation System, method and article of manufacture for shadow mapping
US6806886B1 (en) 2000-05-31 2004-10-19 Nvidia Corporation System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
US20020008704A1 (en) * 2000-07-21 2002-01-24 Sheasby Michael C. Interactive behavioral authoring of deterministic animation
US8930844B2 (en) * 2000-08-22 2015-01-06 Bruce Carlin Network repository of digitalized 3D object models, and networked generation of photorealistic images based upon these models
US6597356B1 (en) 2000-08-31 2003-07-22 Nvidia Corporation Integrated tessellator in a graphics processing unit
US7162716B2 (en) 2001-06-08 2007-01-09 Nvidia Corporation Software emulator for optimizing application-programmable vertex processing
US6697064B1 (en) 2001-06-08 2004-02-24 Nvidia Corporation System, method and computer program product for matrix tracking during vertex processing in a graphics pipeline
WO2002101497A2 (en) 2001-06-08 2002-12-19 Nvidia Corporation System, method and computer program product for programmable fragment processing in a graphics pipeline
US7456838B1 (en) 2001-06-08 2008-11-25 Nvidia Corporation System and method for converting a vertex program to a binary format capable of being executed by a hardware graphics pipeline
US7006101B1 (en) 2001-06-08 2006-02-28 Nvidia Corporation Graphics API with branching capabilities
JP4945053B2 (ja) 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
US7353362B2 (en) 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7412588B2 (en) 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
KR100835173B1 (ko) * 2006-09-20 2008-06-05 한국전자통신연구원 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법
DE602007008845D1 (de) * 2007-04-20 2010-10-14 Nethawk Oyj Verfahren, Vorrichtung, Testgerät und Programm zum Testen von Multimediakommunikationsgeräten und -software
US8515052B2 (en) * 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US7724165B2 (en) * 2008-07-17 2010-05-25 Faraday Technology Corp. Audio codec and built-in self test method for the same
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
CN103937737B (zh) * 2008-11-12 2023-05-23 因瑞金公司 分离的肾细胞及其用途
KR101511273B1 (ko) 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
JP5380392B2 (ja) * 2010-08-04 2014-01-08 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP5324676B2 (ja) * 2012-02-17 2013-10-23 ルネサスエレクトロニクス株式会社 プロセッサ、バスインターフェース装置、およびコンピュータシステム
US9411726B2 (en) * 2014-09-30 2016-08-09 Samsung Electronics Co., Ltd. Low power computation architecture

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621214A (en) 1968-11-13 1971-11-16 Gordon W Romney Electronically generated perspective images
US3833889A (en) 1973-03-08 1974-09-03 Control Data Corp Multi-mode data processing system
US4128880A (en) 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS5725069A (en) 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
DE3267489D1 (en) 1982-02-18 1986-01-02 Itt Ind Gmbh Deutsche Digital parallel calculating circuit for positive and negative binary numbers
US4590465A (en) 1982-02-18 1986-05-20 Henry Fuchs Graphics display system using logic-enhanced pixel memory cells
US4589067A (en) 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU
US4888682A (en) * 1983-09-09 1989-12-19 International Business Machines Corp. Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
US4646075A (en) 1983-11-03 1987-02-24 Robert Bosch Corporation System and method for a data processing pipeline
US4594651A (en) * 1984-01-18 1986-06-10 General Electric Company Concurrent processor for control
US4799144A (en) * 1984-10-12 1989-01-17 Alcatel Usa, Corp. Multi-function communication board for expanding the versatility of a computer
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
GB2181929B (en) 1985-10-21 1989-09-20 Sony Corp Methods of and apparatus for video signal processing
GB8719395D0 (en) * 1987-08-17 1988-04-27 Gen Electric Co Plc Radar systems
GB8728836D0 (en) 1987-12-10 1988-01-27 Quantel Ltd Electronic image processing
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US4949280A (en) 1988-05-10 1990-08-14 Battelle Memorial Institute Parallel processor-based raster graphics system architecture
US5293586A (en) 1988-09-30 1994-03-08 Hitachi, Ltd. Data processing system for development of outline fonts
US5101365A (en) 1988-10-31 1992-03-31 Sun Microsystems, Inc. Apparatus for extending windows using Z buffer memory
US5184318A (en) 1989-09-05 1993-02-02 Cyrix Corporation Rectangular array signed digit multiplier
US5182797A (en) 1989-10-23 1993-01-26 International Business Machines Corporation Multi-processor graphics display system for displaying hierarchical data structures
US5522083A (en) 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US5410649A (en) 1989-11-17 1995-04-25 Texas Instruments Incorporated Imaging computer system and network
US5544337A (en) 1989-12-29 1996-08-06 Cray Research, Inc. Vector processor having registers for control by vector resisters
EP0442041A3 (en) * 1990-01-18 1991-09-04 National Semiconductor Corporation Integrated digital signal processor/general purpose cpu with shared internal memory
DE69324399T2 (de) 1992-04-29 1999-09-30 Canon Kk Videoprozessorsystem
US5418973A (en) 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US5388206A (en) 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
JP3304444B2 (ja) 1992-11-30 2002-07-22 富士通株式会社 ベクトル処理装置
JPH06223198A (ja) 1993-01-26 1994-08-12 Hitachi Ltd 光線追跡による画像生成装置及び方法
US5717947A (en) 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5579455A (en) 1993-07-30 1996-11-26 Apple Computer, Inc. Rendering of 3D scenes on a display using hierarchical z-buffer visibility
US5630043A (en) 1995-05-11 1997-05-13 Cirrus Logic, Inc. Animated texture map apparatus and method for 3-D image displays
US5557759A (en) * 1995-06-07 1996-09-17 International Business Machines Corporation Video processor with non-stalling interrupt service
US5790880A (en) * 1996-01-04 1998-08-04 Advanced Micro Devices Microprocessor configured to dynamically connect processing elements according to data dependencies
US5745125A (en) * 1996-07-02 1998-04-28 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance
US5747125A (en) * 1996-07-18 1998-05-05 Viskase Corporation Fibrous composite cellulosic film and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100648293B1 (ko) * 2005-08-09 2006-11-23 삼성전자주식회사 그래픽 시스템 및 그것의 그래픽 처리 방법
US7580042B2 (en) 2005-08-09 2009-08-25 Samsung Electronics Co., Ltd. Systems and methods for storing and fetching texture data using bank interleaving

Also Published As

Publication number Publication date
WO1998028695A1 (en) 1998-07-02
JP4235987B2 (ja) 2009-03-11
DE19782200T1 (de) 1999-11-18
GB9914054D0 (en) 1999-08-18
JP2001506781A (ja) 2001-05-22
GB2335127B (en) 2002-02-13
KR100366689B1 (ko) 2003-01-06
US20020002574A1 (en) 2002-01-03
US6854003B2 (en) 2005-02-08
GB2335127A (en) 1999-09-08
DE19782200B4 (de) 2011-06-16

Similar Documents

Publication Publication Date Title
KR20000062253A (ko) 비디오 프레임 렌더링 엔진
Bove et al. Cheops: A reconfigurable data-flow system for video processing
US6192384B1 (en) System and method for performing compound vector operations
Kapasi et al. The Imagine stream processor
JP3559046B2 (ja) データ処理マネージメントシステム
Rixner et al. A bandwidth-efficient architecture for media processing
Khailany et al. Imagine: Media processing with streams
Diede et al. The Titan graphics supercomputer architecture
JPH03138759A (ja) 信号プロセツサ
Hannig et al. System integration of tightly-coupled processor arrays using reconfigurable buffer structures
US6785743B1 (en) Template data transfer coprocessor
Undy et al. A low-cost graphics and multimedia workstation chip set
Catthoor et al. Data transfer and storage architecture issues and exploration in multimedia processors
JP2010244096A (ja) データ処理装置、印刷システムおよびプログラム
KR100267092B1 (ko) 멀티미디어신호프로세서의단일명령다중데이터처리
JPS63501904A (ja) 統合したマルチコンピュ−タデ−タ処理装置
Shichman Personal Instrument (PI)—A PC-based signal processing system
Dowling et al. HARP: An open architecture for parallel matrix and signal processing
Koh et al. A configurable multiprocessor system for DSP behavioral simulation
Erickson et al. RISC for graphics: A survey and analysis of multimedia extended instruction set architectures
JP2643116B2 (ja) 主記憶制御装置
Rixner et al. Media processing using streams
TW484110B (en) Video frame rendering engine
KR920008212B1 (ko) MSCM(Mixed Shuffle Connection Method)을 이용한 이차원 FFT(Fast Fourier Transform)프로세서.
Nordlöv Implementation Aspects of Image Processing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee