KR19980018069A - 멀티미디어신호 프로세서내에서의 멀티프로세서 구동장치 - Google Patents
멀티미디어신호 프로세서내에서의 멀티프로세서 구동장치 Download PDFInfo
- 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
Links
- 239000013598 vector Substances 0.000 claims abstract description 75
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000005236 sound signal Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent 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 항에 있어서,상기 다목적 프로세서가,1세트의 스칼라 레지스터와,명령 디코드 유니트, 및상기 명령 디코드 유니트에 의해 디코딩된 명령에 따라 복수개의 스칼라값을 처리하는 프로세싱 코어를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 2 항에 있어서,상기 벡터 프로세서가,1세트의 벡터 레지스터와,제 2 명령 디코드 유니트, 및상기 제 2 명령 디코드 유니트에 의해 디코딩된 명령에 따라 복수개의 벡터값을 처리하는 제 2 프로세싱 코아를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 1 항에 있어서,상기 다목적 프로세서와 벡터 프로세서에 연결되며, 메모리 캐쉬를 구비한 캐쉬 서브시스템이 더 포함되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 4 항에 있어서,상기 캐쉬 서브시스템이,캐쉬 읽기포트와 캐쉬 쓰기포트를 포함하며, 상기 캐쉬 읽기포트 및 캐쉬 쓰기포트로의 동시 억세스를 지원하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 4 항에 있어서,상기 캐쉬 서브시스템이 상기 다목적 프로세서와 벡터 프로세서에 연결된 데이타 경로와, 상기 다목적 프로세서와 벡터 프로세서에 연결된 어드레스 경로를 더 포함하며, 상기 메모리 캐쉬가 상기 데이타경로 및 어드레스경로에 연결된 SRAM캐쉬와, 상기 데이타경로와 어드레스경로에 연결된 ROM캐쉬를 포함하는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 4 항에 있어서,상기 캐쉬 서브시스템에 연결된 제 1 버스와, 캐쉬 서브시스템에 연결된 제 2 버스가 더 포함되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 7 항에 있어서,상기 제 1 버스가 상기 제 2 버스의 제 2 버스 대역폭보다 큰 제 1 버스 대역폭을 가지는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 8 항에 있어서,제 2 버스에 연결된 비트스트림 프로세서와, 제 1 버스에 연결된 로컬버스 인터페이스가 더 포함되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 9 항에 있어서,상기 로컬버스 인터페이스가 컴퓨터 시스템의 제 1 프로세서의 로컬버스에 연결되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 9 항에 있어서,상기 캐쉬 서브시스템은 벡터 프로세서, 다목적 프로세서, 제 1 버스 및 제 2 버스간의 복수개의 통신 경로를 제공하도록 구성되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 7 항에 있어서,상기 캐쉬 서브시스템은 제 1 캐쉬 요구에 의해 억세스되는 것을 특징으로 하는 집적화된 디지털신호 프로세서.
- 제 12 항에 있어서,상기 제 1 캐쉬 요구가 종료를 위해 복수개의 주기를 필요로할 경우, 상기 캐쉬 서브시스템은 상기 제 1 캐쉬 요구를 종료하기전에 제 2 캐쉬 요구를 받아들일 수 있음을 특징으로 하는 집적화된 디지털신호 프로세서.
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)
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)
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 |
-
1997
- 1997-04-07 KR KR1019970012762A patent/KR100280285B1/ko not_active IP Right Cessation
- 1997-08-07 CN CN97115400A patent/CN1129078C/zh not_active Expired - Lifetime
- 1997-08-18 FR FR9710434A patent/FR2752466B1/fr not_active Expired - Lifetime
- 1997-08-19 JP JP22241597A patent/JP3954163B2/ja not_active Expired - Fee Related
- 1997-08-19 DE DE19735981A patent/DE19735981B4/de not_active Expired - Lifetime
- 1997-08-19 TW TW086111974A patent/TW346573B/zh not_active IP Right Cessation
-
2000
- 2000-10-10 US US09/685,982 patent/US6425054B1/en not_active Expired - Lifetime
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 |