KR19980018069A - 멀티미디어신호 프로세서내에서의 멀티프로세서 구동장치 - Google Patents

멀티미디어신호 프로세서내에서의 멀티프로세서 구동장치 Download PDF

Info

Publication number
KR19980018069A
KR19980018069A KR1019970012762A KR19970012762A KR19980018069A KR 19980018069 A KR19980018069 A KR 19980018069A KR 1019970012762 A KR1019970012762 A KR 1019970012762A KR 19970012762 A KR19970012762 A KR 19970012762A KR 19980018069 A KR19980018069 A KR 19980018069A
Authority
KR
South Korea
Prior art keywords
cache
processor
data
bus
vector
Prior art date
Application number
KR1019970012762A
Other languages
English (en)
Other versions
KR100280285B1 (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 KR19980018069A publication Critical patent/KR19980018069A/ko
Application granted granted Critical
Publication of KR100280285B1 publication Critical patent/KR100280285B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Abstract

낮은 비용으로 고성능의 집적화된 디지털신호 프로세서를 구현하기 위해 다목적 프로세서와 벡터프로세서를 포함하는 구조를 이용한다. 상기 집적화된 디지털신호 프로세서는 또한 캐쉬 서브시스템, 제 1 버스 및 제 2 버스를 포함한다. 캐쉬 서브시스템은 상기 프로세서들과 버스들로 캐쉬경로 및 데이타경로를 제공한다. 상기 프로세서들과 버스들을 위하여 캐쉬 서브시스템에 다수개의 동시 통신경로가 사용될 수 있다. 또한, 캐쉬 서브시스템내의 캐쉬 메모리에 동시적인 읽기 및 쓰기동작이 지원된다.

Description

멀티미디어신호 프로세서내에서의 멀티프로세서 구동장치
이하에 기재하는 현재출원중인 서류들은 본 발명과 관계되는 것이며, 본 명세서에서 참조로 인용된다: 1) 출원번호가 부여되지 않은 Single-Instruction- Multiple-Data Processing in a Multimedia Signal Processor라는 제목의 미합중국 특허출원; 2) 출원번호가 부여되지 않은 Efficient Context Saving and Restoring in Multiprocessors라는 제목의 미합중국 특허출원; 3) 출원번호가 부여되지 않은 System and Method for Handiling Software Interrupts with Argument Passing라는 제목의 미합중국 특허출원; 4) 출원번호가 부여되지 않은 System and Method for Handiling Interrupts and Exception Events in an Saymmetric Multiprocessor Architecture라는 제목의 미합중국 특허출원; 5) 출원번호가 부여되지 않은 Methods and Apparatus for Processing Video Data라는 제목의 미합중국 특허출원; 6) 출원번호가 부여되지 않은 Sungle-Instruction- Multiple-Data Processing Using Multiple Banks of Vector Registers라는 제목의 미합중국 특허출원; 7) 출원번호가 부여되지 않은 Single-Instruction-Multiple- Data Processing with Combined Scalar/Vector Operations라는 제목의 미합중국 특허출원.
본 발명은 디지털신호 프로세서에 관한 것으로, 특히 벡터데이터의 처리를 위한 다목적 프로세서 및 벡터프로세서를 포함하는 이중 경로의(dual-threaded) 비대칭 병렬 처리시스템에 관한 것이다.
다양한 종류의 디지털신호 프로세서(DSP)들이 비디오신호, 오디오신호 및 통신데이타의 코딩 및 디코딩과 같은 멀티미디어 응용에 사용되고 있다. 이중 어떤 DSP는 MPEG 비디오 디코딩 또는 엔코딩과 같은 특정문제를 해결하는 하드웨어를 제공해왔다. 이와 같이 제공된 하드웨어 DSP는 일반적으로 그 비용에 비해 고성능을 제공하지만, 특정문제에만 유용하고 다른 문제들이나 규격의 변화에는 적용시킬 수 없다.
프로그램가능한(programmable) DSP는 멀티미디어 문제를 해결하는 프로그램을 수행하고 제공된 하드웨어 DSP보다 우수한 융통성을 제공하는데, 이는 프로그램가능한 DSP를 위한 소프트웨어의 변경이 해결된 문제를 변화시킬 수 있기 때문이다. 그러나 이 프로그램가능한 DSP는 그 비용에 비해 성능이 낮다는 문제점을 갖는다. 프로그램가능한 DSP는 다목적 프로세서의 구조와 유사한 구조를 가지며 다소 낮은 처리능력을 갖는다. 이러한 낮은 처리능력은 비용을 최소화하려는 시도로부터 얻어진 것이다. 그러므로 이러한 DSP는 실시간 비디오 엔코딩 및 디코딩과 같은 좀더 복잡한 멀티미디어 문제를 해결하는기 위한 DSP의 능력을 방해하기 때문에 전적으로 만족스럽지 못하다.
프로그램가능한 DSP에 있어서의 목표는 최소비용으로 멀티미디어 문제를 해결하는 처리능력을 제공하는 것이므로 처리능력을 증가시키는 방법으로 알려져 있는 DSP 병렬처리로 통합되는 것이 바람직하다. 병렬처리의 한 구조는 매우 긴 명령단어(very long instruction word;VLIW)로서, 이것은 대부분이 다르지만 단순한 타스크(task)들을 수행하는 다수의 기능유니트들(functional units)에 의해 특징지워진다. VLIW DSP에 대한 단일 명령은 128바이트 이상으로 서로 독립된 부분들을 가진다. 각 부분은 병렬로 된 각각 독립된 기능유니트들에 의해 수행될 수 있다. VLIW DSP는 다수개의 기능유니트들이 병렬로 동작할 수 있기 때문에 높은 계산 능력을 갖는다. 또한 VLIW DSP는 각각의 기능유니트가 작고 단순하기 때문에 가격이 낮다. 그러나 VLIW DSP는 입출력 제어, 호스트컴퓨터와의 통신, 그리고 VLIW DSP의 기능유니트들의 병렬수행에 사용되지 않는 다른 기능들을 조정하는데 유효하지 않다. 따라서 VLIW를 위한 프로그램은 통상적인 컴퓨터 프로그램과 다르며, 프로그래밍툴(programming tool) 및 VLIW 소프트웨어 구조를 잘아는 프로그래머의 부족으로 개발이 어렵다는 문제점을 가진다.
본 발명은 집적화된 디지털신호 프로세서를 제공한다. 본 발명의 디지털신호 프로세서는 다목적 프로세서와 벡터프로세서를 조합한 것으로, 다목적 프로세서와 병렬로 구동될 수 있다. 상기 디지털신호 프로세서는 두개의 프로세서가 각각의 프로세서에 이상적으로 적합한 타스크만을 수행하므로 낮은 가격으로 높은 성능을 실현할 수 있다. 예를 들면, 다목적 프로세서는 실시간 구동시스템을 동작시키고 전체적인 시스템을 관리하며, 벡터프로세서는 벡터라고 하는 데이타구조를 이용하는 병렬계산을 행하는데 사용된다. 벡터는 동일한 타입의 데이타 요소들을 모은 것이다.
본 발명의 일실시예에 있어서, 디지털신호 프로세서는 캐쉬 서브시스템, 제 1 버스 및 제 2 버스를 포함한다. 상기 제 1 버스는 로컬버스 인터페이스, DMA콘트롤러, 디바이스 콘트롤러 및 메모리 콘트롤러와 같은 고속 디바이스를 위해 사용되며, 제 2 버스는 시스템 타이머, UART, 비트스트림 프로세서 및 인터럽트 콘트롤러와 같은 저속 디바이스를 위해 사용된다.
캐쉬 서브시스템은 캐쉬 기능과 스위치보딩(switchboarding) 또는 데이타 루팅(data routing) 기능을 합한 것이다. 스위치보드 기능은 프로세서들과 버스들간의 다중 통신경로들이 동시에 작동되도록 한다. 또한, 캐쉬 서브시스템의 캐쉬부분은 캐쉬메모리의 읽기 및 쓰기가 동시에 이루어지도록 한다.
도 1 은 본 발명의 일실시예에 의한 멀티미디어 카드의 구성도.
도 2 는 본 발명의 일실시예에 의한 멀티미디어신호 프로세서의 구성도.
도 3 은 본 발명의 일실시예에 의한 멀티미디어신호 프로세서를 포함하는 시스템의 프로세서들과 소프트웨어 또는 펌웨어간의 관계를 나타낸 도면.
도 4 는 본 발명의 일실시예에 의한 캐쉬 서브시스템의 구성도.
도 5 는 본 발명의 일실시예에 의한 메모리 맵을 도시한 도면.
도 6 은 본 발명의 일실시예에 의한 캐쉬 서브시스템에 사용되는 제 1 데이타 경로의 구성도.
도 7 은 본 발명의 일실시예에 의한 캐쉬 서브시스템에 사용되는 제 2 데이타 경로의 구성도.
도 8 은 본 발명의 일실시예에 의한 캐쉬 서브시스템에 사용되는 어드레스 경로의 구성도.
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
본 발명의 일실시예에 의하면, 멀티미디어 프로세서는 각각 독립된 프로그램 경로(thread)에 따라 병렬로 동작하는 다목적 프로세서와 벡터프로세서를 포함한다. 통상적인 다목적 프로세서와 같은 상기 다목적 프로세서는 스칼라(scalar) 데이타를 처리하는 명령을 수행하는 것으로, 입출력 및 제어기능의 수행에 적합하다. 본 발명의 실시예에 있어서, 상기 다목적 프로세서는 하나의 데이타워드로 팩킹되는 몇개의 바이트크기 데이타요소들의 제한된 벡터 처리능력을 갖는다. 예를 들어, 다목적 프로세서가 32비트 프로세서일 경우, 4개의 1바이트 데이타요소들을 동시에 처리할 수 있다. 그러나 오디오 및 비디오데이타의 압축 및 신장과 같은 멀티미디어 컴퓨팅은 오디오데이타의 픽셀 어레이들과 스트링들상에서의 수많은 반복적인 계산을 필요로 한다. 실시간 멀티미디어 동작을 위해서 스칼라 데이타(예컨대 1픽셀값 또는 연산수(operand)당 사운드 진폭) 또는 작은 벡터를 처리하는 다목적 프로세서는 높은 클럭주파수에서 동작해야 한다. 반대로, 벡터프로세서는 각각의 연산수가 다수의 데이타 요소들을 포함하는 벡터(예컨대 다수개의 픽셀값 또는 사운드 진폭)인 명령들을 수행한다. 그러므로, 벡터프로세서는 동일한 기능을 수행하는 다목적 프로세서에 필요한 클럭주파수의 일부에서도 실시간 멀티미디어 동작을 수행할 수 있다.
그러므로, 멀티미디어 응용에 필요한 타스크들의 효율적인 분할을 허용함으로써 프로그램가능한 다목적 프로세서 및 벡터 프로세서의 조합은 가격당 고성능을 제공한다. 본 발명의 일실시예에 있어서, 다목적 프로세서는 호스트 컴퓨터시스템과 통신하는 미디어 회로보드(카드)를 위해 구성된 실시간 구동시스템을 동작시킨다. 상기 실시간 구동시스템은 호스트 컴퓨터시스템의 제 1 프로세서와 통신하고, 카드에 연결된 입출력장치를 제공하며, 벡터프로세서가 수행하는 타스크를 선택한다. 벡터프로세서는 다목적프로세서가 벡터프로세서의 마스터프로세서로 작용하는 동안 큰 데이타블럭의 처리가 요구되는 계산집중적인 타스크들을 수행하기 위해 구성된다. 각각의 프로세서를 위한 프로그램 경로는 멀티미디어 프로세서를 프로그래머와 친숙하게 만드는 통상적인 명령세트를 이용하여 기입된다. 프로그램가능함은 멀티미디어 프로세서가 여러가지 다양한 다른 멀티미디어 타스크들을 수행하는 것을 허용한다. 예를 들어, 멀티미디어 프로세서는 응용프로그램 또는 펌웨어를 변화시키는 것만으로 새로운 프로토콜에 적합하도록 만들 수 있다. 상기 명령세트는 통상적인 RISC(reduced instruction set computer) 명령세트와 유사하다.
본 발명의 다른 실시예에 있어서, 다목적 프로세서와 벡터프로세서는 단일 어드레스 공간을 통해 접근가능한 다양한 온칩(on-chip) 및 오프칩(off-chip) 수단들을 공유한다. 각각의 프로세서를 위해 독립된 데이타 및 명령 캐쉬들을 제공하는 캐쉬 서브시스템은 로컬 메모리와, 메모리맵(memory map)장치들인 비트스트림 프로세서, UART(universal asynchronous receiver-transmitter), 다이렉트 메모리 억세스(DMA) 콘트롤러, 로컬버스 인터페이스 및 코더-디코더(CODEC) 인터페이스와 같은 장치들 사이에 스위치보드 타입의 접속을 제공한다. 캐쉬 서브시스템은 프로세서들과 메모리맵 장치들간의 데이타 억세스를 위한 스위치보드를 제공하는 트랜색션지향적인(transaction-oriented) 프로토콜을 사용할 수 있다.
도 1 은 본 발명의 일실시예에 의한 멀티미디어 카드(100)를 나타낸 것이다. 멀티미디어 카드(100)는 프린티드 회로보드, 멀티미디어 프로세서(110) 및 호스트 컴퓨터 시스템의 로컬버스(105)에 접속된 커넥터를 포함한다. 로컬버스(105)는 PCI버스이거나 소유권이 있는(proprietary) 버스 또는 ISA나 VESA버스 프로토콜과 같은 소정의 프로토콜에 적합한 버스일 수 있다.
멀티미디어 프로세서(110)는 멀티미디어 카드(100)상에 위치하는 데이타의 저장과 프로그램 명령을 위한 로컬메모리(120)를 사용한다. 로컬메모리(120)는 비디오신호 코딩 및 디코딩을 위한 프레임버퍼로서도 사용될 수 있다. 로컬메모리(120)는 512KX32비트 동기(synchronous) DRAM으로 구성될 수 있다. 로컬메모리공간의 부분들은 멀티미디어 프로세서(110)내에서 온칩 SRAM 및 ROM으로 구성될 수 있다. 실제적으로, 온칩 메모리가 멀티미디어 카드(100)의 데이타 및 명령을 충분히 저장하기 위해 제공된다면, 로컬메모리(120)는 마련될 필요가 없다.
멀티미디어 프로세서(110)와 로컬메모리(120)외에 멀티미디어 카드(100)는 비디오 아날로그-디지털 컨버터(ADC)(132), 비디오 디지털-아날로그 컨버터(DAC) (134), 오디오 ADC(142), 오디오 DAC(144), 통신용 ADC(146) 및 통신용 DAC(148)를 포함한다. 각각의 컨버터(132,134,142,144,146,148)는 하나 이상의 독립된 집적회로들에 의해 구성될 수 있다. 또는, 두개 이상의 컨버터들(132,134,142,144,146, 148)은 단일 집적회로상에 집적화될 수 있다. 예를 들면, 아날로그 디바이스사의 AD1843인 단일 집적회로(140)는 컨버터(142,144,146,148)의 기능을 수행할 수 있다.
예컨대 삼성전자의 KS0122집적회로로 구성될 수 있는 비디오 ADC(132)는 비디오 카메라나 다른 비디오신호원에 연결되어 비디오신호를 직렬의 픽셀값으로 디지탈화한다. 멀티미디어 카드(100)는 MPEG, JPEG 또는 멀티미디어 프로세서(110)에 의해 동작되는 펌웨어내에 마련된 H.324와 같은 비디오 엔코딩 기준에 따라 상기 픽셀값을 압축하거나 엔코딩한다. 엔코딩된 비디오 데이타는 로컬버스(105)를 통해 호스트컴퓨터로 전송되거나 로컬버스(105)에 연결된 Ethernet 카드와 같은 장치에 연결되거나 통신용 DAC(148)에 연결된 전화선상의 전송을 위해 더 엔코딩된다.
비디오 DAC(134)는 멀티미디어 프로세서(110)로부터의 일련의 디지털 샘플들을 비디오 모니터 또는 텔레비젼을 위한 아날로그 비디오신호로 변환시킨다. 비디오 DAC는 NTSC 또는 PAL비디오방식에 따라 예컨대, 삼성전자의 KS0119집적회로로 구성할 수 있다. 멀티미디어 프로세서(110)는 호스트 컴퓨터, 로컬버스(105)에 연결된 다른 장치, 비디오 ADC에 연결된 비디오 카메라 또는 통신용 ADC(146)에 연결된 전화선으로부터 인가되는 데이타를 기초로 하여 비디오 DAC(134)를 위한 일련의 디지털 샘플들을 생성할 수 있다.
멀티미디어 카드(100)는 로컬메모리(120)를 멀티미디어 프로세서(110)와 공유하며, 호스트컴퓨터를 위해 비디오 모니터에 비디오 신호를 제공하는 그래픽 콘트롤러(150)를 선택적인 구성요소로서 포함한다. 그래픽 콘트롤러(150)는 예컨대, Cirrus Logic, S3 또는 Trident Microsystems등의 VGA 그래픽 콘트롤러로 구성할 수 있다. 멀티미디어 프로세서(110)는 그래픽 콘트롤러(150)가 비디오 모니터를 위한 비디오 신호를 생성하는 로컬메모리(120)내에서 픽셀 맵(pixel map)을 생성하고 저장한다.
오디오 ADC 및 오디오 DAC(142,144)는 아날로그 오디오신호의 입출력을 위한 것이다. 본 발명의 일실시예에 있어서, 멀티미디어 카드(100)는 널리 보급된 사운드플래스터(SoundBlaster)와 같은 사운드카드의 기능을 에뮬레이트하고, 웨이브테이블 합성(wavetable synthesis) 및 FM합성과 같은 사운드 합성을 수행한다. 사운드카드 에뮬레이션을 위해 호스트컴퓨터에 의해 수행되는 응용프로그램은 사운드를 나타내는 데이타를 제공하고, 멀티미디어 프로세서(110)는 이 데이타에 따라 사운드 진폭을 생성한다. 오디오 DAC(144)는 상기 사운드진폭을 스피커 또는 증폭기를 위한 아날로그 오디오신호로 변환시킨다. 멀티미디어 프로세서(110)는 오디오 ADC(142)로부터의 입력오디오신호를 유사하게 처리한다.
통신용 ADC(146)는 전화선으로부터 인가되는 아날로그신호를 샘플링하여 디지털화된 샘플들을 멀티미디어 프로세서(110)로 보낸다. 멀티미디어 프로세서(110)가 디지털화된 샘플들을 어떻게 처리하는가는 펌웨어에서 수행되는 기능에 달려 있다. 예를 들면, 멀티미디어 프로세서(110)는 샘플들의 V.34 복조 및 V.42bis 에러정정 및 신장(error correction and decompression)을 행하는 펌웨어의 프로그램을 수행함으로써 모뎀 기능을 수행할 수 있다. 멀티미디어 프로세서(110)는 또한 호스트컴퓨터로 부터 제공된 데이타를 압축하여 통신용 DAC(148)에 의해 전송될 정확하게 변조된 아날로그신호를 나타내는 디지털샘플들을 생성할 수 있다. 이와 마찬가지로, 멀티미디어 프로세서(110)는 적절한 펌웨어 또는 소프트웨어가 제공되면 전화선과의 인터페이스로서 상기 ADC(146) 및 DAC(148)과 같은 하드웨어를 이용하여 자동응답기, 팩시밀리 또는 비디오폰 기능을 수행할 수 있다.
도 2 는 멀티미디어 프로세서(110)의 일실시예의 구성도를 나타낸 것이다. 멀티미디어 프로세서(110)는 다목적 프로세서(210)와 벡터 프로세서(220)를 포함하는 프로세싱코어(processing core)(200)를 구비한다. 여기서, 벡터 프로세서는 벡터 연산수, 즉, 동일한 형태의 다수개의 데이타 요소들을 포함하는 연산수들을 갖는 명령을 수행하는 프로세서를 의미한다. 다목적 프로세서(210)와 벡터 프로세서(220)는 각각 독립된 프로그램을 수행하며, 스칼라 또는 수퍼스칼라(superscalar) 프로세서일 수 있다.
본 발명의 일실시예로서, 다목적 프로세서(210)로 40MHz에서 동작하며 표준 ARM7명령세트를 따르는 32비트 RISC 프로세서를 사용할 수 있다. ARM7 RISC프로세서 및 ARM7 명령세트의 구성은 Advanced RISC Machines사의 ARM7DM 데이타표(Data Sheet)에 나타나 있다. 다목적 프로세서(210)는 벡터프로세서(220)와의 인터페이스에 대한 명령을 포함하고 있는 ARM7 명령세트를 확장시키는 역할을 한다. 참고문헌으로 본 명세서에 기술한 특허출원된 System and Method for Handling Software Interrupts with Argument Passing에 본 발명의 일실시예에 의한 ARM7명령세트의 확장에 대해 기술되어 있다. 다목적 프로세서(210)는 제어버스(212)에 의해 벡터프로세서(220)에 연결되어 ARM7명령세트의 확장을 수행한다. 또한, 벡터프로세서(220)에 의해 인터럽트라인(222)이 사용되어 다목적 프로세서(210)상의 인터럽트를 요구한다.
벡터프로세서(220)는 SIMD(single-instruction-multiple-data)구조를 가지며 스칼라와 벡터양을 모두 처리한다. 본 발명의 일실시예에 있어서, 벡터 프로세서(220)는 80MHz에서 동작하며 288비트의 벡터 레지스터 파일을 가진 경로연결된(pipelined) RISC 중앙처리장치로 이루어진다. 벡터 레지스터 파일내의 각각의 벡터레지스터는 32개까지의 데이타 요소들을 포함할 수 있다. 표 1에 벡터내의 데이타요소들의 데이타 타입을 나타내었다.
[표 1]
따라서, 벡터레지스터는 32개의 8비트 또는 9비트의 정수 데이타요소들, 16개의 16비트 정수 데이타요소들 또는 8개의 32비트 정수 또는 플로팅포인트(floating point)요소들을 가질 수 있다. 또한, 상기 실시예는 2개의 벡터 레지스터에 걸친 576비트 벡터연산수상에서 동작할 수 있다.
벡터프로세서(220)에 대한 명령세트는 벡터와 스칼라를 처리하기 위한 명령을 포함한다. 본 명세서의 참고문헌으로서 기재된 특허 명세서 Single- Instruction-Multiple-Data Processing in a Multimedia Signal Processor에 본 발명의 실시예에 대한 명령세트 및 이 명령세트를 수행하기 위한 구성이 기술되어 있다.
캐쉬 서브시스템(230)은 2개의 블럭으로 나타낸 SRAM블럭(260)과 ROM(270) 및 캐쉬 제어부(280)를 구비한다. 캐쉬 서브시스템(230)은 다목적 프로세서(210)를 위해 SRAM블럭(260)을 명령캐쉬(262)와 데이타 캐쉬(264)로 통합시키고, 벡터 프로세서(220)를 위해 명령캐쉬(292)와 데이타캐쉬(294)에 통합시킬 수 있다. 다목적 프로세서(210)와 벡터 프로세서(220)를 위한 데이타 및 명령을 포함하는 온칩 ROM(270)도 캐쉬에 의해 통합될 수 있다. 본 발명의 일실시예에 있어서, ROM(270)은 리셋 및 초기화과정, 셀프테스트 진단과정, 인터럽트 및 제외(exception)처리, 사운드블래스터 에뮬레이션을 위한 서브루틴, V.34모뎀신호 처리를 위한 서브루틴, 일반적인 전화기능, 2차원 및 3차원 그래픽 서브루틴 라이브러리, 및 MPEG-1, MPEG-2, H.261, H.263, G.728 alc G.723과 같은 오디오 및 비디오 규격을 위한 서브루틴 라이브러리를 포함한다.
도 3 은 호스트컴퓨터 시스템(300)내에 멀티미디어 카드(100)를 적용함에 있어서의 하드웨어와 소프트웨어 또는 펌웨어간의 관계를 나타낸 것이다. 호스트컴퓨터 시스템(300)은 주메모리(320)내에 저장된 프로그램을 수행하는 제 1 프로세서(310)를 가진다. 본 발명의 일실시예에 있어서, 호스트컴퓨터 시스템(300)은 x86형 마이크로프로세서를 구비한 IBM호환성을 갖는 컴퓨터이고, 호스트컴퓨터 시스템(300)에 의해 수행되는 프로그램은 WindowsTM 95 또는 NT와 같은 구동시스템하에서 돌아가는 응용프로그램(330)을 포함한다. 응용프로그램(330)은 디바이스 구동장치(342)를 통해 멀티미디어 카드(100)와 통신할 수 있다. 디바이스 구동장치(342)는 구동시스템의 디바이스 구동장치 API를 따른다.
각기 다른 실시예의 멀티미디어 카드(100)는 다른 레지스터맵들과 인터럽트 레벨들과 같은 각기 다른 하드웨어 기능을 가지므로 상기 디바이스 구동장치는 각각의 멀티미디어 카드(100)에 구비되어 있다. 디바이스 구동장치는 특정한 멀티미디어 카드(100)에 필요한 제어신호를 구동시스템의 디바이스 구동장치 API에 의해 규정되는 제어신호로 적절하게 변형시켜야 한다. 상기 구동시스템은 모뎀 구동장치, 그래픽 구동장치 및 오디오 구동장치와 같은 각각의 디바이스를 위한 각기 다른 디바이스 구동장치를 기대할 것이다. 그러므로, 일실시예의 멀티미디어 카드(100)가 오디오카드, 모뎀 및 그래픽카드의 기능을 조합한 것이라면, 3개의 다른 디바이스 구동장치가 구동시스템에 필요하게 된다.
멀티미디어 프로세서(110)내의 다목적 프로세서(210)는 디바이스 구동장치(342)와의 통신을 제어하는 실시간 구동시스템(360)을 실행시킨다. 다목적 프로세서(210)는 또한 일반적인 타스크(370)를 수행한다. 벡터 프로세서(220)는 벡터 타스크(380)를 수행한다.
캐쉬 서브시스템(230)(도 2 참조)은 다목적 프로세서(210)와 벡터 프로세서(220)를 2개의 시스템 버스, IOBUS(240)와 FBUS(250)에 연결한다. IOBUS(240)는 FBUS(250)보다 느린 주파수에서 동작한다. 저속 디바이스는 IOBUS(240)에 연결되고, 고속 디바이스는 FBUS(250)에 연결된다. 고속 디바이스와 저속 디바이스를 분리시킴으로써 저속 디바이스가 고속 디바이스의 동작에 과도하게 영향을 미치는 것을 방지한다.
캐쉬 서브시스템(230)은 또한 IOBUS(240), FBUS(250), 다목적 프로세서(210) 및 벡터 프로세서(220)간의 통신을 위한 스위치보드의 역할을 한다. 대부분의 실시예의 캐쉬 서브시스템(230)에 있어서, 버스들과 프로세서들간의 다수의 동시적인 억세스들이 가능하다. 예를 들면, 다목적 프로세서(210)가 IOBUS(240)와 통신을 할때 동시에 벡터 프로세서(220)는 FBUS(250)와 통신할 수 있다. 본 발명의 일실시예에 있어서, 스위치보드와 캐쉬 기능의 조합은 FBUS(250)와 IOBUS(240)에 대한 직접 매핑기술을 이용함으로서 달성된다. 특히, FBUS(250) 및 IOBUS(240)상의 디바이스들은 적절한 어드레스에서의 표준 메모리 읽기 및 쓰기동작에 의해 다목적 프로세서(210)와 벡터 프로세서(220)에 의해 억세스될 수 있다.
도 5 는 본 발명의 일실시예의 메모리 맵을 나타낸 것이다. 메모리 블럭(510), 즉, 바이트-어드레스(byte-address) 0에서 어드레스 4M-1까지의 어드레스 공간은 ROM(270)에 제공된다. 메모리 블럭(520), 즉, 바이트-어드레스 4M에서 8M-1까지의 어드레스 공간은 SRAM 블럭(260)에 제공된다. 메모리 블럭(530), 즉, 바이트-어드레스 8M에서 72M-1까지의 어드레스공간은 로컬 메모리(120)에 제공된다. FBUS(250)상의 디바이스들은 바이트-어드레스 72M에서 시작하여 바이트-어드레스 77M로 확장되는 메모리 블럭(540)으로 매핑된다. 메모리 블럭(550)은 미래의 확장을 위해 보존된다. IOBUS(240)상의 디바이스들은 바이트-어드레스 125M에서 시작하여 128M-1까지 확장되는 메모리 블럭(560)으로 매핑된다. 메모리 블럭(570)은 미래의 확장을 위해 보존된다. 메모리 블럭(580), 즉, 바이트-어드레스 2G에서 4G-1까지의 어드레스 공간은 다른 호스트 컴퓨터 디바이스들에 제공되며, 로컬 버스 인터페이스(255)를 통해 억세스된다. 여기서, 메모리 어드레스에 대한 유닛으로 사용된 M과 G는 1,048,567(즉, 1024*1024)와 1,073,741,824(즉, 1024*1024*1024 )를 나타낸다.
FBUS(250)(도 2 참조)는 도 1 에 도시된 로컬 메모리(120), 로컬버스(105) 및 컨버터(132,134,142,144,146,148,150)에 대하여 각각 인터페이스를 제공하는 메모리 콘트롤러(258), DMA콘트롤러(257), 로컬버스 인터페이스(255) 및 디바이스 인터페이스(252)에 연결된다.
메모리 콘트롤러(258)는 로컬메모리(120)로의 읽기 및 쓰기동작을 제어한다. 본 발명의 일실시예에 있어서, 메모리 콘트롤러(258)는 1뱅크(bank)의 동기(synchronous) DRAM들(2개의 1Mx16 SDRAM 칩)을 제어하는바, 상기 동기 DRAM들은 24 내지 26개의 어드레스 비트와 32데이타비트를 사용하도록 구성되고, 다음과 같은 특징을 갖는다. 1) 프로그램 가능한 리프레쉬율(programmable refresh rate)에서 수행되는 RAS전 CAS(CAS-before-RAS) 리프레쉬 프로토콜, 2) 읽기-변경-쓰기(Read- Modify-Write) 동작을 개시하는 부분적인 기입, 3) 내부 뱅크 인터리브(internal bank interleave). 메모리 콘트롤러(258)는 또한 메모리(120)와 FBUS (250)간의 1:1 주파수정합, 매뉴얼 양측 뱅크 프리차아지(both bank precharge), 및 FBUS(250)를 더욱 잘 활용하기 위해 배열된 어드레스 및 데이타를 제공한다. 동기 DRAM은 80MHz의 주파수에서 효율적으로 구동되는 것으로 알려져 있으며, 스탠다드 패스트 페이지(standard fast page) DRAM 및 EDO(extended data out) DRAM을 이용할 수도 있다. 메모리 콘트롤러(258)와 유사한 기능을 갖는 본 발명의 일실시예에 의한 DRAM콘트롤러는 당분야에서 공지의 것이다.
DMA콘트롤러(257)는 호스트컴퓨터의 주메모리와 멀티미디어 프로세서(210)의 로컬메모리간의 직접적인 메모리 억세스를 제어한다. 이러한 DMA콘트롤러는 당분야에서 공지의 것이다. 본 발명의 실시예에 있어서, 메모리데이타 무버(mover)가 포함된다. 이 메모리 데이타 무버는 하나의 메모리 블럭으로부터 다른 메모리블럭으로 DMA를 수행한다.
로컬버스 인터페이스(255)는 로컬버스(105)를 통해 호스트컴퓨터와의 통신을 위해 요구되는 프로토콜을 수행한다. 본 발명의 일실시예에 있어서, 로컬버스 인터페이스(255)는 33MHz, 32비트의 PCI버스에 인터페이스를 제공한다.
디바이스 인터페이스(252)는 멀티미디어 프로세서(110)와 프린트회로기판상의 컨버터(132,134,142,144,146,148)와 같은 디바이스들에 하드웨어 인터페이스를 제공한다. 디바이스 인터페이스(252)는 멀티미디어 프로세서(110)의 특정 응용을 위해 주문제작될 수 있다. 특히, 디바이스 인터페이스(252)는 특정 디바이스 또는 IC에 대해 인터페이스만을 적용할 수도 있다. 디바이스 인터페이스(252)내의 전형적인 유니트는 표준적인 ADC, DAC 또는 CODEC의 접속을 위한 인터페이스를 제공한다. ADC, DAC 및 CODEC 인터페이스를 위한 설계는 당분야에서 공지의 것이므로 더이상의 설명은 하지 않기로 한다. 이용할 수 있는 그밖의 다른 인터페이스에는 마이크로채널 버스와 같은 버스를 위한 디지털 전화 및 인터페이스를 위한 ISDN인터페이스가 포함되나 이것에만 제한되는 것은 아니다. 멀티미디어 프로세서(110)의 일실시예에 있어서, 디바이스 인터페이스(252)는 원하는 기능을 수행하기 위해 프로그램될 수 있는 ASIC일 수 있다.
IOBUS(240)은 버스(250)의 동작 주파수(80MHz)보다 낮은 주파수(40MHz)에서 동작한다. IOBUS(240)에는 시스템 타이머(242), UART(universal asynchronous receiver transceiver)(243), 비트스트림 프로세서(248) 및 인터럽트 콘트롤러(245)가 연결된다. 시스템 타이머(242)는 시스템 타이머(242)에 상응되는 레지스터에 쓰기동작을 행함으로써 선택되는 계획된 간격으로 프로세서(210)를 인터럽트한다. 본 발명의 일실시예에 있어서, 시스템 타이머(242)는 3개의 독립적인 16비트 카운터와 6개의 프로그램가능한 카운터 모드를 갖춘 표준 인텔 8254 컴패터블 인터벌 타이머(standard Intel 8254 compatible interval timer)이다.
UART(243)은 직렬 인터페이스로서, 개인용 컴퓨터의 표준 직렬 통신포트를 필요로 하는 모뎀이나 팩시밀리에 사용되는 16450 UART 집적회로와 호환될 수 있다.
비트스트림 프로세서(245)는 입력 또는 출력 비트스트림상의 특정 기능을 수행하는 고정된 하드웨어 프로세서이다. 본 발명의 일실시예에 의하면, 비트스트림 프로세서(245)는 MPEG 코딩 또는 디코딩의 최초 또는 최종단계를 수행한다. 특히, 비트스트림 프로세서(245)는 가변길이(Huffman) 코딩 및 디코딩과, 지그재그 포맷된 비디오 데이타의 팩킹 및 언팩킹(unpacking)을 수행한다. 비트스트림 프로세서(245)는 다목적 프로세서(210) 및 벡터 프로세서(220)의 제어하에 이들과 병렬로 동작된다. 프로세서(210,220)는 제어레지스터를 통해 비트스트림 프로세서(245)와 연결된다. 본 명세서의 참조문헌으로서 기재한 미국 특허출원 Methods and Apparatus for Processing Video Data에 비트스트림 프로세서(245)의 일실시예가 기술되어 있다.
인터럽트 콘트롤러(248)는 다목적 프로세서(210)의 인터럽트를 제어하며, 다수의 인터럽트 우선순위를 지원한다. 마스크 레지스터는 각각의 인터럽트 우선순위가 각각 마스크되도록 하기 위해 제공된다. 본 발명의 일실시예에 있어서, 인터럽트 콘트롤러(248)는 프로그램가능하며, x86기준의 개인용 컴퓨터에서 공통인 표준 인텍 8259 인터럽트 시스템에 이용될 수 있다. 최고 우선순위 (레벨0) 인터럽트는 시스템 타이머(242)에 할당된다. 우선순위 레벨 1,2,3 및 7은 각각 가상기억 프레임 버퍼(virtual frame buffer), DMA콘트롤러(257) 및 디바이스 인터페이스(252), 비트스트림 프로세서(245), 로컬버스 인터페이스(255), 및 UART(243)에 할당된다. 인터럽트 우선순위 레벨 4,5 및 6은 본 발명의 실시예에서 할당되지 않는다. 우선순위 레벨1의 가상기억 프레임 버퍼는 본 발명의 실시예에 포함되는 것으로, 표준 VGA 프레임 버퍼를 에뮬레이트한다.
도 4 는 캐쉬 서브시스템의 구성도이다. SRAM블럭(260)은 4개의 메모리 뱅크로 구분되어 다목적 프로세서(210)에 사용되기 위한 명령 캐쉬(262)와 데이타 캐쉬(264), 및 벡터 프로세서(220)에 사용되기 위한 명령 캐쉬(292) 및 데이타 캐쉬(294)를 형성한다. SRAM블럭(260)은 각각의 메모리 뱅크에 대해 구분되는 태그부(406)를 포함한다. SRAM블럭(260)은 읽기포트(440) 및 쓰기포트(430)를 갖춘 듀얼포트 메모리회로로서, SRAM블럭(260)의 동시 읽기 및 쓰기동작이 지원된다. 캐쉬 서브시스템(230)은 태그필드(tag field)(472)를 갖춘 ROM캐쉬(270)를 포함한다. 상술한 바와 같이 ROM캐쉬(270)는 다목적 프로세서(210) 및 벡터 프로세서(220)에 빈번하게 사용되는 명령 및 데이타를 포함하고 있다. 태그필드(472)는 변경될 수 없지만, 각각의 어드레스는 쓸모없는 것으로 표시될 수 있으므로 데이타 또는 명령을 ROM(270)의 데이타 또는 명령의 위치에 사용되는 메모리로부터 가져올 수 있다.
데이타 경로(data pipeline)(410)는 캐쉬 서브시스템(230)의 데이타 스위치보드 기능을 수행한다. 데이타 경로(410)는 IOBUS(240), FBUS(250), 다목적 프로세서(210), 벡터 프로세서(220) 및 SRAM블럭(260)간의 다수의 동시 데이타 통신경로를 생성할 수 있다. 마찬가지로, 어드레스 경로(420)는 어드레스에 대한 스위치보드 기능을 수행한다. 도 4 의 실시예에 있어서, IOBUS(240) 및 FBUS(250)은 어드레스 및 데이타신호에 대한 시간 다중화를 이용한다. 캐쉬 제어부(280)는 데이타 경로(410)와 어드레스 경로(420)에 제어라인을 제공하여 통신 채널을 적절하게 구성한다.
캐쉬 서브시스템(230)의 일실시예에 있어서, 모든 읽기 및 쓰기 동작을 지지하기 위해 트랜섹션기준의 프로토콜(transaction-based protocol)이 이용된다. 다목적 프로세서(210), 벡터 프로세서(220) 또는 IOBUS(240) 및 FBUS(250)상의 여러 디바이스와 같은 캐쉬 서브시스템(230)에 연결된 어떠한 유니트도 캐쉬 서브시스템(230)에 요구(request)를 할 수 있다. 이러한 요구는 디바이스 확인코드(identification code;ID)와 요구된 메모리 위치의 어드레스에 의해 형성된다. 각각의 유니트는 별개의 디바이스ID를 가지며, 캐쉬 서브시스템(230)은 요구를 형성하는 유니트의 디바이스ID에 기초한 요구들에 우선순위를 부여할 수 있다. 요구된 어드레스의 데이타가 유효할 경우, 캐쉬 서브시스템은 디바이스ID, 트랜섹션 ID(transaction identification code), 어드레스 및 상기 요구된 데이타에 응답한다. 요구된 어드레스가 SRAM블럭(260)이나 ROM블럭(270)에 포함되어 있지 않으면, 캐쉬 서브시스템(230)은 메모리 어드레스의 데이타가 검색될때 몇개의 클럭주기 동안에 특정 요구에 응답할 수 없게 된다. 그러나 첫번째 요구된 데이타가 검색될때 캐쉬 서브시스템(230)은 다른 디바이스ID를 갖춘 다른 유니트로부터의 두번째 오구를 처리할 수 있다. 이와 같이 진행중인 요구는 다른 유니트로부터의 연속되는 요구들을 막지 않는다. 또한, 캐쉬 서브시스템(230)은 단일 주기동안 읽기요구 및 쓰기요구를 동시에 처리할 수 있다.
상술한 바와 같이 SRAM블럭(260)은 4개의 메모리 뱅크로 나누어진다. SRAM블럭(260)은 읽기포트(440)와 쓰기포트(430)의 듀얼포트를 가짐으로써 어떠한 주기동안에 하나의 읽기요구와 하나의 쓰기요구를 받아들일 수 있다. SRAM블럭(260)의 TAG부(406)는 동시에 일어나는 읽기 및 쓰기구를 지원하기 위해 2개의 쓰기포트를 가져야 한다. 그러므로, 읽기포트(440)에 의해 사용되는 어드레스와 쓰기포트(430)에 의해 사용되는 어드레스는 히트(hit) 또는 미스(miss)의 조건들을 위한 내부 캐쉬 태그(tag)와 동시에 비교될 수 있다. 태그부(406)는 별도의 쓰기포트를 가짐으로써 쓰기포트(430)에서 쓰기요구가 행해짐에 따라 적절한 태그 필드가 변경된다.
전체 시스템의 제한에 따라, 캐쉬 서브시스템(230)은 라이트백(write-back) 또는 라이트쓰루(write-through) 캐쉬수단과 함께 사용될 수 있다. 또한, 본 발명의 실시예에 있어서, 속도를 더욱 증가시키기 위해 캐쉬의 라인크기는 데이타 폭의 2배가 될 수 있다. 본 발명의 일실시예에 있어서, 부기(book-keeping) 목적을 위해 각각의 캐쉬 라인이 2개의 벡터를 포함하므로 2개의 유효비트(valid bit)와 2개의 부정 비트(dirty bit)를 할당해야 한다. SRAM블럭(260)은 전면 소거신호(global clear signal)가 인가되면 모든 유효비트들을 전면적으로 소거해야 한다. 본 발명의 다른 실시예에 있어서, 각각의 소거신호는 SRAM블럭(260)내의 4개의 메모리뱅크에 의해 지원된다.
도 6 은 데이타경로(410)의 일실시예를 나타낸 구성도이다. 캐쉬 서브시스템(230)이 IOBUS(240), FBUS(250), 다목적 프로세서(210) 및 벡터 프로세서(220)를 위한 캐쉬 시스템과 스위치보드의 역할을 하므로 상기 버스들과 프로세서는 캐쉬가 다른 디바이스에 사용될 경우 캐쉬를 통하거나 직접적으로 통신할 수 있어야 한다. 상기 프로세서들은 버스상의 디바이스보다 보통 빠르므로 쓰기동작상의 캐쉬를 이용하고 캐쉬 라이트백 시스템을 허용하여 데이타를 적절한 버스 디바이스에 위치시키도록 한다. 이와 마찬가지로, 프로세서들은 디바이스에 직접 정보를 요구하기 보다는 캐쉬로부터 정보를 요구한다. 캐쉬가 요구된 데이타를 포함하고 있지 않으면, 프로세서들은 캐쉬 서브시스템에 의존하여 요구된 데이타를 캐쉬에 보내고 프로세서로 그 데이타를 제공한다. 그러나, 캐쉬가 비지(busy)상태일 경우에는 프로세서가 직접 버스를 억세스할 수 있다.
데이타는 다목적 프로세서(210)로부터 OI MUX(630)를 통해 IOBUS(240)로 전달된다. IOBUS(240)로부터의 데이타는 GP 독출MUX(620)를 통해 다목적 프로세서(210)로 전달된다. 데이타는 캐쉬 독출MUX(650) 및 GP독출MUX(620)를 통해 SRAM블럭(260) 또는 ROM블럭(207)으로부터 다목적 프로세서(21)로 전달된다. 데이타는 다목적 프로세서(210)로부터 캐쉬 기입MUX(610)를 통해 SRAM블럭(260)으로 전달된다. 캐쉬 독출MUX(650), 캐쉬 기입MUX(610), IO MUX(630) 및 GP 독출MUX(620)는 통상적인 멀티플렉서일 수 있으며, 타이밍문제를 위해 내부 래치 또는 레지스터를 포함할 수 있다. 멀티플렉서의 선택 제어라인(도시안됨)은 캐쉬 제어부(280)(도 4 참조)의 지시를 받는다. 데이타는 다목적 프로세서(210)로부터 캐쉬 기입MUX(610)와 FBUS MUX(640)를 통해 FBUS(250)에 전달된다. 데이타는 FBUS(250)로부터 버퍼(660), 캐쉬 독출MUX(650) 및 GP 독출MUX(620)를 통해 다목적 프로세서(210)로 전달된다. 이러한 기능을 수행하기 위해 버퍼(660)는 통상적인 버퍼, 래치 또는 레지스터일 수 있다.
다목적 프로세서(210)는 제어라인(212) (도 2 참조)을 통해 벡터 프로세서(220)를 제어할 수 있다. 다목적 프로세서(210)와 벡터 프로세서(220)간의 직접적인 데이타의 전달은 꼭 필요한 것은 아니나, 상기 두 프로세서가 공통 메모리맵은 공유하므로 SRAM블럭(260) 또는 어떠한 다른 디바이스를 통해 데이타의 전달이 이루어질 수도 있다.
ROM(270) 및 SRAM블럭(260)으로부터의 데이타는 캐쉬 독출MUX(650)와 IO MUX(630)을 통해 IOBUS(240)로 전달되며, IOBUS(240)으로부터의 데이타는 캐쉬 기입MUX(610)를 통해 SRAM블럭(260)으로 전달된다. IOBUS(240)로부터의 데이타는 캐쉬 기입MUX(610) 및 FBUS MUX(640)를 통해 FBUS(250)로 보내지고, FBUS(250)으로부터의 데이타는 버퍼(660), 캐쉬 독출MUX(650) 및 IO MUX(630)를 통해 IOBUS(240)로 전달된다. 벡터 프로세서(220)로부터의 데이타는 캐쉬 기입MUX(610) 및 IO MUX(630)를 통해 IOBUS(240)로 보내지고, IOBUS(240)로부터의 데이타는 캐쉬 독출MUX(650)를 통해 벡터 프로세서(220)로 전달된다. 본 발명의 실시예에 있어서, 벡터 프로세서(220)로부터 IOBUS(240)로의 데이타의 직접경로는 데이타 경로(410)의 설계를 간단하게 하기 위해 제거된다. 벡터 프로세서(220)의 대역폭이 IOBUS(240)의 대역폭보다 훨씬 크므로 벡터 프로세서(220)에서 IOBUS(240)로의 직접적인 통신경로는 벡터 프로세서(220)의 처리시간을 고려해볼때 쓸모가 없는 것이다.
SRAM블럭(260)과 ROM(270)으로부터의 데이타는 캐쉬 독출MUX(650) 및 FBUS MUX(640)를 거쳐 FBUS(250)로 전달되며, FBUS(250)로부터의 데이타는 버퍼(660) 및 캐쉬 기입MUX(610)를 거쳐 SRAM블럭(260)으로 보내진다. FBUS(250)로부터의 데이타는 버퍼(660) 및 캐쉬 독출MUX(650)를 통해 벡터 프로세서(220)로 직접 전달된다. 데이타는 벡터 프로세서(220)로부터 캐쉬 기입MUX(610) 및 FBUS MUX(640)를 통해 FBUS(250)로 직접 전달될 수 있다. 벡터 프로세서(220)로부터의 데이타는 캐쉬 기입MUX(610)를 통해 SRAM블럭(260)으로 전달되며, SRAM블럭(260) 및 ROM(270)으로부터의 데이타는 캐쉬 독출MUX(650)를 통해 벡터 프로세서(220)로 전달된다.
도 7 은 데이타경로(410)의 제2실시예의 구성을 상세히 나타낸 것이다. 도 7 의 실시예의 기능은 도 6 의 실시예의 기능과 유사하므로 두 실시예의 차이점에 관해서만 설명하기로 한다. 그러나, 각 실시예에 있어서의 일반적인 구성에 대해서는 설명될 것이다. 도 7 에 있어서, 캐쉬 읽기MUX(650)는 캐쉬 읽기MUX(750) 및 MUX래치(751)로 대체될 수 있다. 버퍼(660)는 읽기래치(760)로 대체될 수 있으며, FBUS MUX(640)는 FBUS MUX(740), 라이트백(WB) 데이타래치(741), 메모리 라이트래치(742) 및 메모리 라이트래치(743)으로 대체될 수 있다. 도 7 의 실시예에 있어서의 래치들은 데이타 경로를 연결하는데 이용된다. 캐쉬 쓰기MUX(610)는 캐쉬 쓰기MUX(710), 쓰기 데이타래치(712), 얼라이너(713) 및 IO 쓰기래치(711)로 대체할 수 있고, IO MUX(630)는 IO 읽기래치(731) 및 IO 읽기래치(711)로 대체할 수 있다. GP 읽기MUX(620)는 IO 쓰기래치(721) 및 마이크로캐쉬(722)로 대체할 수 있다.
마이크로캐쉬(722)는 메인 캐쉬, SRAM블럭(270) 및 ROM(260)을 다목적 프로세서(210)에 연결한다. 마이크로캐쉬(722)는 마이크로 명령캐쉬와 마이크로 데이타캐쉬로 나누어지며, 이들 각각은 태그부(822) (도 8에 도시됨), 태그 비교기 및 유효비트들을 포함한다. 마이크로캐쉬(722)는 프리페취(pre-fetch) 버퍼로서 작동한다. 다목적 프로세서(210)로부터의 요구의 어드레스는 우선 마이크로캐쉬(722)의 태그부(822)와 비교된다. 마이크로캐쉬 미스(miss)가 발생하면 (즉, 마이크로캐쉬 태그(822)내에 매치가 없으면), 요구의 어드레스와 다른 제어정보가 메인캐쉬로 보내진다. 마이크로캐쉬(722)의 구성을 단순화하기 위해 마이크로캐쉬(722)내의 태그를 매치시키는 다목적 프로세서(210)로부터 쓰여진 데이타가 마이크로캐쉬 어드레스를 무효화시킴으로써 쓰여진 데이타가 메인캐쉬로 보내지게 된다. 이러한 캐쉬의 통일성(coherence)는 마이크로캐쉬(722)상의 복잡한 라이트백 또는 라이트쓰루 디자인없이도 유지될 수 있다.
도 8 은 어드레스 경로(420)의 일실시예의 구성도이다. FBUS인터페이스(850)는 4개의 기입어드레스열(entry address queue) 및 라이트백 래치로 구성된다. FBUS인터페이스(850)는 명령캐쉬(262)로부터의 진행중인 읽기, 명령캐쉬(292)로부터의 진행중인 읽기, 데이타캐쉬(294)로부터의 쓰기 요구 및 데이타캐쉬(294)로부터의 라이트백 요구를 동시에 지원한다. 읽기동작 요구를 위한 어드레스는 읽기 어드레스MUX(820)로 보내지고, 쓰기동작 요구를 위한 어드레스는 쓰기 어드레스MUX(810)로 보내진다. 캐쉬 제어부(280) (도 2 참조)는 요구의 디바이스ID에 기초하여 다목적 프로세서(210), 벡터 프로세서(220), IOBUS(240) 및 FBUS(250)간의 조정(arbitration)을 행한다. 캐쉬 제어부(280)는 데이타 경로(410) 및 데이타 경로(420)의 여러가지 다양한 멀티플렉서를 구성하여 요구를 처리한다. 캐쉬 제어부의 조정계획은 각각의 디바이스의 중요성을 평가한 것을 기초로 하여 결정될 수 있다. 다목적 프로세서(210)는 우선순위가 가장 높다. 상술한 바와 같이 캐쉬 서브시스템(230)은 읽기 및 쓰기동작을 동시에 수행할 수 있다. 그러므로, 별도의 비교기들이 읽기 및 쓰기요구를 위해 필요한다. 비교기(811)는 쓰기 어드레스MUX(810)로부터의 쓰기 어드레스를 쓰기 태그포트(406-1)를 통해 받아들인 어드레스와 비교하여 현재 요구된 쓰기 어드레스가 캐쉬에 있는가를 결정한다. 어드레스가 캐쉬에 있으면, 캐쉬는 매칭되는 캐쉬 위치에서 새로운 데이트로 갱신한다. 어드레스가 캐쉬에 없는 경우에는 어드레스와 데이타가 사용되지 않은 캐쉬위치 또는 가장 최근에 억세스된 캐쉬 위치내의 캐쉬로 라이트된다. 결국, 데이타는 라이트백 또는 라이트쓰루 캐쉬 기술에 의해 적절한 직접적으로 매핑된 디바이스로 보내진다.
비교기(821)는 읽기 어드레스MUX(820)로부터의 읽기 요구의 읽기 어드레스와 읽기 태그포트(406-2)를 통해 받아들인 어드레스를 비교한다. 태그가 읽기 어드레스와 매치되면, 태그와 관련된 데이타가 데이타경로(410)를 이용하는 요구되는 디바이스로 보내진다. 상술한 바와 같이 트랜섹션 프로토콜이 사용될 경우, 데이타는 디바이스ID, 트랜섹션ID 및 요구된 어드레스와 함께 복구될 것이다. 태그가 읽기 어드레스와 매치되지 않으면, 캐쉬 서브시스템(230)은 적적한 직접 메모리매핑된 디바이스로부터 요구된 데이타를 리트리브해야 한다. 요구된 데이타가 리트리브(retrieve)되면, 요구된 데이타, 다바이스ID, 트랜섹션ID 및 어드레스가 요구되고 있는 디바이스로 보내진다. 첫번째 요구를 위한 데이타가 리트리브되는 동안 캐쉬 서브시스템(230)은 두번째 읽기 요구를 서비스할 수 있으므로 캐쉬를 필요로 하는 두번째 디바이스는 첫번째 디바이스에 의해 방해받지 않는다.
이상에서 설명한 본 발명은 전술한 실시예에 의해 한정되지 않는다. 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 데이타 경로, 스위치보드, 어드레스 경로, 캐쉬 서브시스템, 멀티플렉서, 래치, 버스, 프로세서가 다르게 구성되고, 이들이 특징을 이용하여 디지털 신호 프로세서가 생성될 수 있다.

Claims (13)

  1. 다목적 프로세서와,
    상기 다목적 프로세서와 병렬로 구동될 수 있는 벡터 프로세서를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  2. 제 1 항에 있어서,
    상기 다목적 프로세서가,
    1세트의 스칼라 레지스터와,
    명령 디코드 유니트, 및
    상기 명령 디코드 유니트에 의해 디코딩된 명령에 따라 복수개의 스칼라값을 처리하는 프로세싱 코어를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  3. 제 2 항에 있어서,
    상기 벡터 프로세서가,
    1세트의 벡터 레지스터와,
    제 2 명령 디코드 유니트, 및
    상기 제 2 명령 디코드 유니트에 의해 디코딩된 명령에 따라 복수개의 벡터값을 처리하는 제 2 프로세싱 코아를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  4. 제 1 항에 있어서,
    상기 다목적 프로세서와 벡터 프로세서에 연결되며, 메모리 캐쉬를 구비한 캐쉬 서브시스템이 더 포함되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  5. 제 4 항에 있어서,
    상기 캐쉬 서브시스템이,
    캐쉬 읽기포트와 캐쉬 쓰기포트를 포함하며, 상기 캐쉬 읽기포트 및 캐쉬 쓰기포트로의 동시 억세스를 지원하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  6. 제 4 항에 있어서,
    상기 캐쉬 서브시스템이 상기 다목적 프로세서와 벡터 프로세서에 연결된 데이타 경로와, 상기 다목적 프로세서와 벡터 프로세서에 연결된 어드레스 경로를 더 포함하며, 상기 메모리 캐쉬가 상기 데이타경로 및 어드레스경로에 연결된 SRAM캐쉬와, 상기 데이타경로와 어드레스경로에 연결된 ROM캐쉬를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  7. 제 4 항에 있어서,
    상기 캐쉬 서브시스템에 연결된 제 1 버스와, 캐쉬 서브시스템에 연결된 제 2 버스가 더 포함되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  8. 제 7 항에 있어서,
    상기 제 1 버스가 상기 제 2 버스의 제 2 버스 대역폭보다 큰 제 1 버스 대역폭을 가지는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  9. 제 8 항에 있어서,
    제 2 버스에 연결된 비트스트림 프로세서와, 제 1 버스에 연결된 로컬버스 인터페이스가 더 포함되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  10. 제 9 항에 있어서,
    상기 로컬버스 인터페이스가 컴퓨터 시스템의 제 1 프로세서의 로컬버스에 연결되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  11. 제 9 항에 있어서,
    상기 캐쉬 서브시스템은 벡터 프로세서, 다목적 프로세서, 제 1 버스 및 제 2 버스간의 복수개의 통신 경로를 제공하도록 구성되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  12. 제 7 항에 있어서,
    상기 캐쉬 서브시스템은 제 1 캐쉬 요구에 의해 억세스되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
  13. 제 12 항에 있어서,
    상기 제 1 캐쉬 요구가 종료를 위해 복수개의 주기를 필요로할 경우, 상기 캐쉬 서브시스템은 상기 제 1 캐쉬 요구를 종료하기전에 제 2 캐쉬 요구를 받아들일 수 있음을 특징으로 하는 집적화된 디지털신호 프로세서.
KR1019970012762A 1996-08-19 1997-04-07 멀티미디어 신호에 적합한 멀티미디어 프로세서 KR100280285B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69710296A 1996-08-19 1996-08-19
US8/697,102 1996-08-19

Publications (2)

Publication Number Publication Date
KR19980018069A true KR19980018069A (ko) 1998-06-05
KR100280285B1 KR100280285B1 (ko) 2001-02-01

Family

ID=24799807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970012762A KR100280285B1 (ko) 1996-08-19 1997-04-07 멀티미디어 신호에 적합한 멀티미디어 프로세서

Country Status (7)

Country Link
US (1) US6425054B1 (ko)
JP (1) JP3954163B2 (ko)
KR (1) KR100280285B1 (ko)
CN (1) CN1129078C (ko)
DE (1) DE19735981B4 (ko)
FR (1) FR2752466B1 (ko)
TW (1) TW346573B (ko)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6804726B1 (en) * 1996-05-22 2004-10-12 Geovector Corporation Method and apparatus for controlling electrical devices in response to sensed conditions
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US5933855A (en) 1997-03-21 1999-08-03 Rubinstein; Richard Shared, reconfigurable memory architectures for digital signal processing
US6895452B1 (en) 1997-06-04 2005-05-17 Marger Johnson & Mccollom, P.C. Tightly coupled and scalable memory and execution unit architecture
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
AU7575398A (en) * 1998-05-15 1999-12-06 Richard Rubinstein Shared, reconfigurable cache memory execution subsystem
US6233389B1 (en) 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
DE69917489T2 (de) 1998-11-09 2005-06-02 Broadcom Corp., Irvine Anzeigesystem zur mischung von graphischen daten und videodaten
EP1059781B1 (de) 1999-05-06 2007-09-05 Siemens Aktiengesellschaft Kommunikationseinrichtung mit Mitteln zur Echtzeitverarbeitung von zu übertragenden Nutzdaten
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
US6668299B1 (en) 1999-09-08 2003-12-23 Mellanox Technologies Ltd. Software interface between a parallel bus and a packet network
US6580767B1 (en) * 1999-10-22 2003-06-17 Motorola, Inc. Cache and caching method for conventional decoders
US6624819B1 (en) * 2000-05-01 2003-09-23 Broadcom Corporation Method and system for providing a flexible and efficient processor for use in a graphics processing system
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
DE10029675A1 (de) * 2000-06-23 2002-01-31 Dialog 4 System Engineering Gm Elektronisches Audiogerät
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US7003450B2 (en) * 2000-10-20 2006-02-21 Pts Corporation Methods and apparatus for efficient vocoder implementations
KR100771728B1 (ko) * 2000-12-09 2007-10-30 엘지엔시스(주) 자동은행거래단말기에서의 상호 스레드 통신방법
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US20030088407A1 (en) * 2001-04-02 2003-05-08 Yi Hu Codec
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
DE10254255A1 (de) * 2002-11-20 2004-06-17 Werner Wirsum Verfahren zur Leistungsbesserung von Audioanwendungen auf Computern unter Einbeziehung sog. Grafikkarten in die Datenberechnung
JP4542308B2 (ja) * 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
US20040128485A1 (en) * 2002-12-27 2004-07-01 Nelson Scott R. Method for fusing instructions in a vector processor
KR100463205B1 (ko) * 2003-02-13 2004-12-23 삼성전자주식회사 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
CN1792097A (zh) 2003-05-19 2006-06-21 皇家飞利浦电子股份有限公司 具有低存储器带宽要求的视频处理设备
JP2005057738A (ja) * 2003-07-18 2005-03-03 Canon Inc 信号処理装置、信号処理方法及びプログラム
JP4699685B2 (ja) * 2003-08-21 2011-06-15 パナソニック株式会社 信号処理装置及びそれを用いた電子機器
US7627039B2 (en) * 2003-09-05 2009-12-01 Realnetworks, Inc. Parallel video decoding
US6993598B2 (en) * 2003-10-09 2006-01-31 International Business Machines Corporation Method and apparatus for efficient sharing of DMA resource
WO2005050454A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
US7136943B2 (en) * 2004-03-18 2006-11-14 International Business Machines Corporation Method and apparatus for managing context switches using a context switch history table
ITMI20040600A1 (it) * 2004-03-26 2004-06-26 Atmel Corp Sistema dsp su chip a doppio processore a virgola mobile nel dominio complesso
EP1728171A2 (en) * 2004-03-26 2006-12-06 Atmel Corporation Dual-processor complex domain floating-point dsp system on chip
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7693257B2 (en) 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
KR100882949B1 (ko) 2006-08-17 2009-02-10 한국전자통신연구원 화소 유사성에 따라 적응적인 이산 코사인 변환 계수스캐닝을 이용한 부호화/복호화 장치 및 그 방법
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20100191913A1 (en) * 2009-01-26 2010-07-29 Agere Systems Inc. Reconfiguration of embedded memory having a multi-level cache
CN101567732B (zh) * 2009-06-05 2012-07-04 北京派瑞根科技开发有限公司 实现模拟多媒体广播内容过滤的方法
EP2339795B1 (en) * 2009-12-07 2013-08-14 STMicroelectronics (Research & Development) Limited Inter-chip communication interface for a multi-chip package
EP2330514B1 (en) 2009-12-07 2018-12-05 STMicroelectronics (Research & Development) Limited An integrated circuit package
EP2333673B1 (en) * 2009-12-07 2014-04-16 STMicroelectronics (Research & Development) Limited Signal sampling and transfer
EP2333830B1 (en) 2009-12-07 2014-09-03 STMicroelectronics (Research & Development) Limited a package comprising a first and a second die coupled by a multiplexed bus
EP2339475A1 (en) * 2009-12-07 2011-06-29 STMicroelectronics (Research & Development) Limited Inter-chip communication interface for a multi-chip package
US8959501B2 (en) * 2010-12-14 2015-02-17 Microsoft Corporation Type and length abstraction for data types
US8521937B2 (en) * 2011-02-16 2013-08-27 Stmicroelectronics (Grenoble 2) Sas Method and apparatus for interfacing multiple dies with mapping to modify source identity
US8836709B2 (en) 2011-08-18 2014-09-16 International Business Machines Corporation Vector register file caching of context data structure for maintaining state data in a multithreaded image processing pipeline
CN102968379B (zh) * 2012-10-24 2015-05-06 无锡江南计算技术研究所 一种寄存器分配方法、系统及处理器
JP6555259B2 (ja) * 2014-06-19 2019-08-07 日本電気株式会社 情報処理装置、データ格納方法、及び、プログラム
US9818337B2 (en) * 2014-07-24 2017-11-14 Sct Technology, Ltd. LED display control circuit with PWM circuit for driving a plurality of LED channels
KR102446677B1 (ko) * 2015-11-26 2022-09-23 삼성전자주식회사 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4300763A (en) * 1980-02-21 1981-11-17 Barr Samuel J Psychological game device
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
US4394540A (en) 1981-05-18 1983-07-19 Timex Corporation Remote meter reader and method for reading meters over non-dedicated telephone lines
JPS6467680A (en) 1987-09-09 1989-03-14 Hitachi Ltd Vector processor
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
JP2570845B2 (ja) * 1988-05-27 1997-01-16 セイコーエプソン株式会社 情報処理装置
US5040109A (en) 1988-07-20 1991-08-13 Digital Equipment Corporation Efficient protocol for communicating between asychronous devices
US6070003A (en) 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
JP2825906B2 (ja) 1990-02-01 1998-11-18 株式会社日立製作所 計算機システム
US5263144A (en) 1990-06-29 1993-11-16 Digital Equipment Corporation Method and apparatus for sharing data between processors in a computer system
US5666510A (en) 1991-05-08 1997-09-09 Hitachi, Ltd. Data processing device having an expandable address space
US5530881A (en) * 1991-06-06 1996-06-25 Hitachi, Ltd. Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs
DE69227433T2 (de) 1991-11-19 1999-03-18 Fujitsu Ltd Speicherzugriffseinrichtung
US5930522A (en) * 1992-02-14 1999-07-27 Theseus Research, Inc. Invocation architecture for generally concurrent process resolution
US5669010A (en) 1992-05-18 1997-09-16 Silicon Engines Cascaded two-stage computational SIMD engine having multi-port memory and multiple arithmetic units
US5418973A (en) 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US5423051A (en) * 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
US5502683A (en) 1993-04-20 1996-03-26 International Business Machines Corporation Dual ported memory with word line access control
US5546586A (en) 1993-05-06 1996-08-13 Apple Computer, Inc. Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5644756A (en) 1995-04-07 1997-07-01 Motorola, Inc. Integrated circuit data processor with selectable routing of data accesses
US5822606A (en) 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5949439A (en) 1996-08-15 1999-09-07 Chromatic Research, Inc. Computing apparatus and operating method using software queues to improve graphics performance

Also Published As

Publication number Publication date
TW346573B (en) 1998-12-01
JPH1091596A (ja) 1998-04-10
US6425054B1 (en) 2002-07-23
DE19735981A1 (de) 1998-03-26
DE19735981B4 (de) 2007-02-22
FR2752466A1 (fr) 1998-02-20
KR100280285B1 (ko) 2001-02-01
CN1175037A (zh) 1998-03-04
CN1129078C (zh) 2003-11-26
FR2752466B1 (fr) 2005-01-07
JP3954163B2 (ja) 2007-08-08

Similar Documents

Publication Publication Date Title
KR100280285B1 (ko) 멀티미디어 신호에 적합한 멀티미디어 프로세서
US5860158A (en) Cache control unit with a cache request transaction-oriented protocol
US5966734A (en) Resizable and relocatable memory scratch pad as a cache slice
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
KR100267102B1 (ko) 벡터 프로세서용 로드 및 저장 유니트
US5638531A (en) Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization
US5875463A (en) Video processor with addressing mode control
KR100267091B1 (ko) 비대칭싱글-칩이중멀티프로세서의정합및동기화
US6170049B1 (en) PC circuits, systems and methods
US6141744A (en) PC circuits, systems and methods
US5864704A (en) Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction
US5889480A (en) Full duplex serial codec interface with DMA
US5696985A (en) Video processor
US5784076A (en) Video processor implementing various data translations using control registers
US5557759A (en) Video processor with non-stalling interrupt service
US5907864A (en) Data processing device with time-multiplexed memory bus
Undy et al. A low-cost graphics and multimedia workstation chip set
US20020166004A1 (en) Method for implementing soft-DMA (software based direct memory access engine) for multiple processor systems
McMahon New and future 29 K family products: microprocessors and microcontrollers
JPS61260343A (ja) デ−タ処理システム

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
FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee