KR20010029924A - 데이터 처리장치 - Google Patents

데이터 처리장치 Download PDF

Info

Publication number
KR20010029924A
KR20010029924A KR1020000039762A KR20000039762A KR20010029924A KR 20010029924 A KR20010029924 A KR 20010029924A KR 1020000039762 A KR1020000039762 A KR 1020000039762A KR 20000039762 A KR20000039762 A KR 20000039762A KR 20010029924 A KR20010029924 A KR 20010029924A
Authority
KR
South Korea
Prior art keywords
data
memory
master
master device
memory device
Prior art date
Application number
KR1020000039762A
Other languages
English (en)
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 KR20010029924A publication Critical patent/KR20010029924A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

복수의 버스(10)의 각각에는 로컬버퍼(13)∼로컬버퍼(15)가 각각 대응되어 있고, 버스(1)와 버스(10)∼버스(12)의 비트폭의 차이에 기초하여 전송속도의 속도차를 흡수하도록 버스(1)와 버스(10)∼버스(12)의 각각과의 사이에서 데이터의 입출력을 행한다. 마스터 디바이스(4)∼마스터 디바이스(6)에 할당할 대역폭을 변경하고 싶은 경우는 마스터 디바이스(4)∼마스터 디바이스(6) 및 버스(10)∼버스(12), 로컬버퍼(13)∼로컬버퍼(15)의 판독기입 포트를 변경하면 되므로 메모리 디바이스, 메모리 컨트롤러(3), 버스(1)를 재설계할 필요는 없다.

Description

데이터 처리장치{DATA PROCESSING APPARATUS}
본 발명은 복수의 데이터 전송요구를 효율적으로 처리하는 데이터 처리장치에 관한 것이다.
최근 DVD 재생장치나 디지털 위성방송의 수신장치라는 여러가지 타입의 멀티미디어 관련제품이 일반기기 시장에 등장하고 있고, 그들을 개발하는 메이커 사이의 경쟁도 뜨거워지고 있다. 이러한 배경에서, 신호처리의 응용분야에 관계하는 설계자는 복수의 미디어처리의 병렬화를 효율적으로 행하는 범용 신호처리 프로세서의 개발에 여러가지로 고심하고 있다. 복수 미디어처리의 병렬화에 고심하게 되는 것은 상기와 같은 제품의 개발에 있어서, 비디오, 오디오의 데이터가 다중화된 MPEG 스트림에 덧붙여 컴퓨터ㆍ그래픽 등의 데이터를 어떻게 효율적으로 동시 처리할 것인지가 이들 제품의 시장적 가치를 크게 좌우하기 때문이다. 여기에서 미디어처리에는 비디오 복호처리, 오디오 복호처리, 비디오 출력처리, 컴퓨터ㆍ그래픽 묘화처리 등을 비롯한 여러가지 것이 있다.
이러한 미디어처리에서는 그 밖의 데이터처리와 비교하여 통계적으로 복수의 독립된 DMA 전송을 동시에 실행할 기회가 대단히 많다는 특징과, 또한 각각의 DMA 전송의 대역폭이 다르다는 특징이 현저히 나타나므로 그 효율화에 여러가지 주의가 필요하게 된다. 여기에서 DMA(Direct Memory Access)란 중앙처리장치(CPU)의 개재없이 복수 마스터 디바이스와 메모리 사이에서 전송을 행하는 것을 말한다.
상기의 미디어처리의 일례에 있어서 각 마스터 디바이스는 비디오 복호처리, 오디오 복호처리, 비디오 출력처리, 컴퓨터ㆍ그래픽 묘화처리 등을 실현하는 애플리케이션 프로그램과, 이 프로그램을 동작시키는 하드웨어로 이루어지고, 또 미디어처리의 일례에 있어서 상기 메모리는 이들 애플리케이션 프로그램이 이용하는 비디오 데이터, 오디오 데이터, 컴퓨터ㆍ그래픽 데이터를 저장하는 것이다.
또 DMA 전송의 대역폭이란 각 마스터 디바이스, 메모리의 판독기입 포트의 비트폭과, 마스터 디바이스, 메모리의 동작주파수 사이의 곱으로 표현되는 단위이다. 대강의 값을 예시하면 비디오 복호처리의 애플리케이션 프로그램은 모션보상시에 참조화상의 DMA 전송을 행할 필요가 있고, 이 DMA 전송은 80OMbyte/s라는 오더의 대역폭을 요구한다. 또 오디오 데이터, 컴퓨터ㆍ그래픽 데이터용 애플리케이션 프로그램은 50Mbyte/s라는 오더의 대역폭을 요구하는 것이며, 비디오 출력처리의 애플리케이션 프로그램은 「128Mbyte/s ×플래인 수」라는 오더의 대역폭을 요구한다. 이와 같이 대역폭의 필요수가 개개의 미디어처리에 있어서 다른 것은, 처리해야 할 데이터 크기나 데이터 복호 부하의 가벼움·무거움이 각각의 미디어처리에서 제각기 다르기 때문이다.
이후 일반의 DMA 전송을 하는 DMA 전송시스템과, 미디어처리 특유의 개량이 실시된 DMA 전송시스템을 대비하여 설명한다. 전자의 시스템 구성도를 도 1a에 도시하고, 후자의 시스템 구성도를 도 1b에 도시한다.
도 1a에서 데이터 처리장치는 메모리(51), 메모리 컨트롤러(52), 아비터(53), 버스(54), 마스터 디바이스(45, 46, 47)로 구성된다.
마스터 디바이스(45, 46, 47)는 미디어처리에 관한 애플리케이션 프로그램을 동작시키고 있다. 각 애플리케이션 프로그램이 DMA 전송을 요구한 경우, 메모리 컨트롤러(52)에 대하여 버스 리퀘스트를 발행한다. 버스 리퀘스트가 발행되면 아비터(53)는 마스터 디바이스(45), 마스터 디바이스(46), 마스터 디바이스(47) 사이의 조정을 행하고, 조정 결과, 마스터 디바이스(45), 마스터 디바이스(46), 마스터 디바이스(47) 중 어느 하나에 사용권을 부여한다. 버스사용권을 획득할 수 없었던 것은 데이터 전송시작을 기다려 사용권이 부여된 후 데이터 전송을 시작한다.
상술한 바와 같이 미디어처리에는 각각의 애플리케이션 프로그램에 최적의 대역폭을 할당할 필요가 있고, 이러한 대역폭 할당기술에는 버스를 복수로 분할함으로써 얻어진 비트폭을 마스터 디바이스(45)∼마스터 디바이스(47)의 각각에 할당하는 방법이 있다.
예를 들면 메모리(51)의 판독기입 포트 및 버스의 비트폭이 128비트인 경우, 이것을 64비트-32비트-32비트로 분할하고, 이들을 각 애플리케이션 프로그램이 동작하고 있는 마스터 디바이스(45)∼마스터 디바이스(47)의 각각에 할당하는 것이다. 도 1b는 비트폭 분할에 의해 실현된 대역폭 할당 기술의 일례를 도시한 도면이다. 도 1b에서 128비트의 버스를 64비트, 32비트, 32비트로 분할하고, 분할에 의해 얻어진 각각의 비트폭을 마스터 디바이스(45)∼마스터 디바이스(47)에 할당하고 있다.
이 때 메모리(51) 내의 판독기입 포트를 버스의 분할폭에 따라 분할하는 것과 아울러, 메모리 컨트롤러는 병렬로 메모리 내부의 액세스제어를 한다. 즉 64비트, 32비트, 32비트의 데이터를 병렬로 메모리 내부로부터 판독하고, 64비트, 32비트, 32비트의 데이터를 병렬로 메모리 내부에 기입한다. 이러한 액세스제어를 병렬화하기 위해서는 64비트, 32비트, 32비트 데이터의 동시 액세스를 행하기 위한 제어회로(도면 중의「64비트 액세스 컨트롤」「32비트 액세스 컨트롤」「32비트 액세스 컨트롤」)를 메모리 컨트롤러 내에 설치해야 하는데, 이 비트폭을 분할하는 방법으로는 버스가 분할되는 것에 의해 마스터 디바이스(45)∼마스터 디바이스(47) 사이의 경합이 생기지 않고, 메모리 버스의 버스 록이 발생되는 일이 없다.
여기에서 마스터 디바이스(45)는 영상복호처리를 행하는 것으로 상정하고 있고, 64비트라는 비트폭을 할당하고 있다. 이와 같이 마스터 디바이스(45)에 의해 높은 비트폭을 할당하고 있는 것은, 영상복호처리가 다른 미디어처리보다 높은 대역폭을 필요로 하고 있기 때문이다.
요컨대 미디어처리에서는 실시간성을 유지하는 데 충분한 대역폭이 서로 다르므로 이 비트폭을 분할하는 방법에서는 각 애플리케이션 프로그램이 필요로 하는 대역폭에 따라 비트폭의 분할 비율을 결정해야 한다.
마지막으로 상기 데이터 처리장치에 이용될 메모리 디바이스에 대하여 설명하기로 한다. 상술한 신호처리 응용분야는 보다 대용량이고 높은 대역폭을 갖는 메모리 디바이스를 요구하고 있고, 이러한 수요에 따르기 위해 반도체 프로세스 및 실장기술에 있어서 여러가지 기술혁신이 이루어지고 있다. 그 결과, 전자부품시장에는 고성능 메모리 디바이스가 속속 등장하고 있고, 그 모델체인지도 매우 빈번하게 행해지고 있다. 여기에서 메모리 디바이스에는 SDRAM, RAMBUS 사양의 메모리 등이 있다. Synchronus Dynamic Random Access memory(SDRAM)란 데이터의 버스트 전송을 실현하고, DRAM과 비교하여 전송능력을 향상시킨 메모리이다. RAMBUS 사양의 메모리란 버스와의 인터페이스 사양이 실장방법을 포함해서 엄밀히 규정된 메모리이고 SDRAM보다 높은 대역폭을 얻는 것을 가능하게 하고 있고, 이러한 메모리에는 D-RDRAM라고 불리는 것이 있다. 또 데이터 처리장치와 비교적 대용량의 DRAM을 동일한 반도체 칩 상에 탑재하도록 반도체 프로세스를 행하는 것(일반적으로 온칩화라 함)도 가능해지고 있다.
이와 같이 많은 메모리 디바이스가 등장하고, 그 모델체인지도 빈번하면 메모리 아키텍처를 어떻게 설계할 것인가라는 판단에 설계자는 당황하게 된다. 이러한 판단을 하는 데 있어서 커다란 요인은 역시 대역폭과 제조비용인데, 데이터 처리장치의 장래성을 고려하여 설계하는 것도 필요하다. 장래성을 고려한 메모리 아키텍처 설계란 여러가지 하드웨어 스펙을 갖는 메모리 디바이스를 채용할 수 있도록 메모리 아키텍처를 범용화해 두는 것이다.
그런데 처음에 설명한 비트폭을 분할하여 최적의 대역폭을 할당하는 방법은, 마스터 디바이스(45)∼마스터 디바이스(47)에 대한 각각에 할당되어 있는 비트폭을 늘리거나 줄이고자 하면 그와 같은 비트폭의 할당 변경이 장치 전체의 설계변경에까지 파급된다는 첫 번째 문제점을 갖고 있다.
대역폭의 할당변경은 어떤 장치에 설치되어 있는 데이터 처리장치를 다른 장치에 전용하는 경우 등에 필요하게 된다. 이러한 전용은 MPEG 스트림의 복호라는 공통의 기능을 갖는 복수제품을 병행 개발하는 경우에 종종 보이는 것이다. 여기에서 이하에 나타내는 바와 같은 상황을 상정하여 데이터 처리장치의 전용에 대하여 설명하기로 한다. 도 1b에 도시된 데이터 처리장치는 MPEG 스트림의 복호장치이며, 이 MPEG 스트림의 복호장치는 그때까지 광디스크의 재생장치에 탑재되는 것을 전제로 하여 개발된 것으로 한다. 또한 본 장치는 당초에는 디스크 재생장치로의 탑재가 전제였으나, 메이커의 상품개발 전략 상의 사정에 의해 이 복호장치를 디지털 위성방송 등의 수신장치 등의 다른 장치에 전용하는 것을 명령받은 것으로 한다. 이상의 이유로 복호장치의 전용을 명령받으면 해당 장치의 설계자는 재생장치 특유의 미디어처리에 할당되어 있는 비트폭을 수신장치 특유의 미디어처리에 할당하는 대처 등을 행해야 하는데, 이 대처를 행하고자 하면 종래의 데이터 처리장치에서는 버스의 재배선(1)이나, 메모리 디바이스의 판독기입 포트의 재설계(2), 마스터 디바이스(45)∼마스터 디바이스(47)의 판독기입 포트의 재설계(3), 메모리 컨트롤러의 재설계(4) 등을 고려해야 한다.
예를 들면 도 1b의 일례에 있어서 메모리 컨트롤러는 64비트, 32비트, 32비트의 데이터를 병렬로 메모리 내부로부터 판독하는 것과 아울러, 64비트, 32비트, 32비트의 데이터를 병렬로 메모리 내부에 기입하는 제어를 하는데, 마스터 디바이스(45)∼마스터 디바이스(47)에 대한 비트폭의 할당을 64비트, 24비트, 8비트로 변경하려고 한 경우, 메모리 컨트롤러는 64비트, 24비트, 8비트의 데이터를 병렬로 메모리 내부로부터 판독하는 것과 아울러, 64비트, 24비트, 8비트의 데이터를 병렬로 메모리 내부에 기입하는 제어를 해야 하므로 도 1b에 도시된 메모리 컨트롤러의 제어를 근본적으로 재설계할 필요가 있다. 또 마스터 디바이스(46)∼마스터 디바이스(47)의 인터페이스의 비트폭 변경이 발생되므로 이들을 다른 것으로 치환해야 하며, 또 마스터 디바이스(46)∼마스터 디바이스(47)의 인터페이스와 버스의 배선접속도 새롭게 다시 해야 한다.
이러한 (1)부터 (4)까지의 재배선이나 재설계를 행하는 것은 설계자에게 막대한 부담이 되며, 설계자는 각 미디어처리에 다른 대역폭을 할당하는 것에 데이터 처리장치를 재설계로 할 때와 같은 노력을 들여야 한다.
또 둘째로 설명한 바와 같이, 데이터 처리장치는 여러가지 메모리 디바이스의 채용이 가능하도록 메모리 아키텍처를 설계해 두는 것이 바람직하지만, 일반적으로 접속해야 할 메모리 디바이스에는 그 최대성능을 발휘할 수 있는 동작주파수가 있고, 종래의 데이터 처리장치의 동작주파수는 그와 같은 최대성능을 발휘할 수 있는 값으로 설정되어 있으므로 메모리 디바이스를 다른 것으로 치환하고자 하는 경우, 그 새로운 메모리 디바이스의 최대성능을 발휘할 수 있는 값으로 데이터 처리장치측의 동작주파수를 재설정해야 한다는 문제점이 있다. 즉 데이터 처리장치의 제조비용, 메모리의 용량 등의 관점에서 복수 메모리 디바이스 중 어느 하나를 채용하였지만 후일의 사양변경에 의해 메모리 디바이스를 다른 것으로 치환해야 하는 경우, 메모리 디바이스의 변경마다 데이터 처리장치의 동작주파수를 변경시켜야 하므로 설계자에게 큰 부담이 강요된다는 문제점이 있다.
덧붙여서, 데이터 처리장치를 실장한 반도체 칩에 메모리를 온칩화한 경우는 온칩화된 메모리 및 메모리 디바이스의 어느 한쪽은 최대성능을 발휘할 수 없다는 다른 문제점이 있다. 메모리 컨트롤러(52)-마스터 디바이스(45)∼마스터 디바이스(47)와, 메모리(51)를 동일 칩에 실장한 경우, 이들을 동일한 동작주파수로 동작시킬 필요가 있다. 이 경우, 메모리 디바이스의 최대성능을 발휘시키는 동작주파수와, 온칩화된 메모리의 최대성능을 발휘시키는 동작주파수가 다른 것도 충분히 있을 수 있다. 이 경우 어느 한쪽의 최대성능을 발휘시키는 동작주파수로 데이터 처리장치를 동작시키면, 다른쪽은 최대성능을 발휘할 수 없다. 또 영상관련 미디어처리에서는 디스플레이장치의 동작주파수에 기초하여 데이터 처리장치의 동작주파수를 설정하는 것이 바람직하지만, 이와 같이 디스플레이장치의 동작주파수에 기초하여 데이터 처리장치의 동작주파수를 설정하면, 이번에는 메모리 디바이스의 최대성능을 발휘할 수 없게 되어 버린다.
본 발명의 제 1의 목적은, 장래의 미디어 처리마다 대역폭의 할당변경에 대처할 수 있도록 높은 범용성을 갖는 데이터 처리장치를 제공하는 것이다.
본 발명의 제 2의 목적은, 장래의 메모리 디바이스의 치환이나, 메모리의 온칩화에 대처할 수 있도록 높은 범용성을 갖는 데이터 처리장치를 제공하는 것이다.
도 1a는 일반의 DMA 전송을 하는 DHA 전송시스템을 도시한 구성도
도 1b는 비트폭 분할에 의해 실현된 대역폭 할당기술의 일례를 도시한 도면
도 2a는 원칩 LSI인 데이터 처리장치가 외부메모리 디바이스(2)와 함께 멀티미디어 관련제품에 내장되어 이용되는 경우를 상정한 도면
도 2b는 데이터 처리장치의 제 1 실시예를 설명한 도면
도 3은 외부메모리 디바이스(2)-버스(1) 사이의 데이터 전송을 도시한 타이밍차트
도 4는 로컬버퍼(13)가 외부메모리 디바이스(2)에 데이터를 기입할 때의 동작타이밍을 도시한 타이밍차트
도 5는 로컬버퍼(13)가 외부메모리 디바이스(2)로부터 데이터를 판독할 때의 동작타이밍을 도시한 타이밍차트
도 6은 로컬버퍼(14)가 외부메모리 디바이스(2)에 데이터를 기입할 때의 동작타이밍을 도시한 타이밍차트
도 7은 로컬버퍼(14)가 외부메모리 디바이스(2)로부터 데이터를 판독할 때의 동작타이밍을 도시한 타이밍차트
도 8은 로컬버퍼(13)∼로컬버퍼(15)와 버스(10)∼버스(12) 사이에 설치되어 있는 회로를 공통화하는 경우의 구성을 도시한 도면
도 9a는 도 8에 도시된 셀렉터 중 32비트 버퍼(61∼64)로부터 32비트 버스(57∼60)로의 판독시에 이용되는 것만을 도시한 도면
도 9b는 도 8에 도시된 셀렉터 중 32비트 버스(57∼60)로부터 32비트 버퍼(61∼64)로의 기입시에 이용되는 것만을 도시한 도면
도 10a는 버스(10)의 비트폭과 4입력-1출력 셀렉터(65)∼게이트(68)가 선택하는 접속선의 대응을 도시한 도면
도 10b는 버스(10)의 비트폭과, 제 1∼제 4번째의 데이터가 전송되어오는 접속선과의 조합에 있어서 셀렉터(71)∼셀렉터(74)가 어떤 접속선을 선택출력할 것인지를 도시한 도면
도 11a는 전송속도가 32비트인 경우의 타이밍차트
도 11b는 전송속도가 64비트인 경우의 타이밍차트
도 11c는 전송속도가 128비트인 경우의 타이밍차트
도 12a는 전송속도가 32비트인 경우의 타이밍차트
도 12b는 전송속도가 64비트인 경우의 타이밍차트
도 12c는 전송속도가 128비트인 경우의 타이밍차트
도 13은 복수 마스터 디바이스가 버스(10)에 설치된 데이터 처리장치를 도시한 도면
도 14는 듀얼포트 메모리(26)가 설치된 데이터 처리장치를 도시한 도면
도 15는 제 4 실시예에 관한 데이터 처리장치의 구성을 도시한 도면
도 16은 현재상태 비트열의 일례를 도시한 도면
도 17은 제 5 실시예에 관한 데이터 처리장치를 도시한 도면
도 18은 제 5 실시예에 관한 데이터 처리장치의 구성을 도시한 도면
도 19는 아비터(112)의 구성을 도시한 도면
도 20은 상기 n개의 레지스터 중 m개의 레지스터에 마스터 디바이스 x에 대한 식별정보 x를 저장시킨 경우의 일례를 도시한 도면
도 21은 제 8 실시예에서의 외부메모리 디바이스(2)의 메모리할당을 도시한 도면
도 22는 제 9 실시예에 관한 데이터 처리장치에 내부구성을 도시한 도면
도 23은 듀얼포트 메모리(100)와 마스터 디바이스 사이의 접속관계를 생략하여 나타낸 데이터 처리장치의 내부구성을 도시한 도면
도 24는 복수의 마스터 디바이스에 대한 우선순위가 어떻게 설정되어 있는 가를 도시한 도면
도 25는 제 9 실시예에서의 엔트리영역의 구성을 도시한 도면
도 26a는 1바이트 = 부호있음 8비트로 설정된 경우의 메모리 셀의 비트할당을 도시한 도면
도 26b는 1바이트 = 부호없음 8비트로 설정된 경우의 메모리 셀의 비트할당을 도시한 도면
도 27은 마스크비트의 설정시에 있어서, 외부메모리 디바이스(2)가 어떻게 기입되는지를 도시한 도면
도 28은 도 22에 도시된 듀얼포트 메모리(100)의 태그영역에 저장할 데이터를 도시한 도면
상기 제 1의 목적은, 2개의 포인트를 갖고 있고, 그 중 한쪽 포인트에 메모리 디바이스와 접속되는 메모리 버스와, 각각이 2개 이상의 포인트를 갖고 있고, 그 중 하나 이상의 포인트에 각 마스터 디바이스와 접속되는 복수의 로컬버스와, 메모리 디바이스에 대한 데이터 판독 및 메모리 디바이스에 대한 데이터 기입을 행하고, 각 로컬버스에서는 각 마스터 디바이스가 요구하는 전송속도로 데이터를 전송시키고, 메모리 버스 상에서는 메모리 디바이스가 요구하는 전송속도로 데이터를 전송시키는 전송제어수단과, 메모리 버스의 다른쪽 포인트 및 각 로컬버스의 하나의 포인트에 접속된 복수의 버퍼이고, 메모리 버스와, 로컬버스 사이의 전송속도의 차이를 흡수하도록, 데이터를 입출력하는 복수의 로컬버퍼수단을 구비하는 데이터 처리장치에 의해 달성된다. 설계자가 각 마스터 디바이스에 할당할 대역폭의 변경을 원하는 경우, 마스터버스가 요구하는 전송속도를 변경하면 되므로 데이터 처리장치 전체를 재설계할 필요는 없다. 메모리 디바이스-마스터버스측의 변경을 수반하지 않고 각 마스터 디바이스에 대한 대역폭의 할당을 변경할 수 있으므로 장래의 데이터 처리장치의 어느 하나의 개소에 대하여 대역폭을 변경할 필요가 생기더라도 설계자는 많은 노력을 들이는 일은 없다. 구체적으로 말하면 본 발명에 관한 데이터 처리장치가 MPEG 스트림의 복호장치이며, 메이커의 상품개발 전략 상의 사정에 의해 이 MPEG 스트림의 복호장치를 디지털 위성방송 등의 수신장치 등의 다른 장치에 전용하는 것을 명령받은 경우, 복수의 마스터 디바이스, 복수의 로컬버스측을 재설계하면 되고, 메모리 디바이스, 마스터버스측에는 아무런 개량을 가하지 않아도 된다. 각 마스터 디바이스에 어떻게 비트폭이 할당되어도 이 변경은 복수의 로컬버스에 대하여 행하면 되고, 비트폭의 변경전후라도 같은 메모리 디바이스에 대한 메모리제어를 변경할 필요가 없으므로 각 마스터 디바이스에 대한 대역폭 할당변경을 간단히 할 수 있다. 각 마스터 디바이스에 어떻게 비트폭이 할당되어도 이 변경은 복수의 로컬버스에 대하여 행하면 되고, 비트폭의 변경전후라도 같은 메모리 디바이스에 대한 메모리제어를 변경할 필요가 없으므로 각 마스터 디바이스에 대한 대역폭 할당변경을 간단히 할 수 있다.
여기에서 상기 로컬버스에는 3개 이상의 포인트를 갖고 있는 것이 있고, 그 중 2개 이상의 포인트에는 2개 이상의 마스터 디바이스가 접속되어 있고, 이들 2개 이상의 포인트에 접속된 마스터 디바이스에서 데이터 판독요구 또는 메모리 디바이스로의 데이터 기입요구가 경합한 경우, 상기 마스터 디바이스는 아비터에 의한 조정 결과, 요구가 부인된 마스터 디바이스에 대한 로컬버스에서의 데이터 전송을 정지해도 된다. 오디오 데이터, 부영상, OSD 등 서브시스템이라는 계통으로 분류되는 미디어처리를 행하는 복수의 마스터 디바이스에 대하여 메모리 디바이스의 판독요구 및 메모리 디바이스의 기입요구가 경합한 경우, 마스터버스 및 로컬버스의 한쪽에서의 데이터 전송을 지연시키면 되므로 데이터 처리장치 전체의 전송효율을 저하시키지 않고 조정할 수 있다.
상기 제 2의 목적은, 한쪽의 포트가 상기 메모리 디바이스의 판독기입 포트에 접속하고 있고, 다른쪽 포트가 상기 복수의 로컬버퍼수단에 접속하고 있고, 메모리 디바이스에서의 동작주파수와 데이터 처리장치 내부에서의 동작주파수의 차이를 흡수하도록 메모리버스와 복수의 로컬버퍼수단 사이에서 데이터의 입출력을 행하는 듀얼포트 메모리 디바이스를 구비하는 데이터 처리장치에 의해 달성된다. 메모리 디바이스와 내부 메모리 사이의 데이터 전송에 있어서의 비동기제어를 실현할 수 있고, 메모리 디바이스와 데이터 처리장치를 각각 고유의 동작주파수로 동작시킬 수 있다. 따라서 메모리 디바이스의 성능을 최대한 발휘할 수 있는 동작주파수가 데이터 처리장치에 있어서 최적의 동작주파수와 다른 경우에, 메모리 디바이스 및 데이터 처리장치를 최적의 동작주파수로 동작시킬 수 있다.
또 상기 구성에 있어서, 상기 복수의 마스터 디바이스에는 제어버스가 접속되어 있고, 복수의 마스터 디바이스 중 적어도 하나 이상이 메모리 디바이스로의 데이터 기입을 요구한 경우, 메모리 디바이스에 있어서 데이터가 기입된 영역의 선두부를 나타내는 엔트리 어드레스를 제어버스에 전송시키고, 복수의 마스터 디바이스 중 다른 것은 제어버스에 전송된 엔트리 어드레스 이후에 저장되어 있는 데이터의 판독을 요구해도 된다. 어떤 마스터 디바이스가 메모리 디바이스에 기입된 데이터를 다른 마스터 디바이스가 이용할 수 있다.
또 상기 구성에 있어서, 상기 복수의 마스터 디바이스에는 제어버스가 접속되어 있고, 복수의 마스터 디바이스 중 적어도 하나 이상이 메모리 디바이스로의 데이터 기입을 요구한 경우, 메모리 디바이스에 있어서 데이터가 기입된 영역의 종단부를 나타내는 종료 어드레스를 제어버스에 전송시키고, 복수의 마스터 디바이스 중 다른 것은 제어버스에 전송된 종료 어드레스의 다음 어드레스로부터의 데이터 기입을 요구해도 된다. 직전에 데이터 기입을 한 마스터 디바이스의 기입종료 어드레스를 제어버스를 통하여 다른 마스터 디바이스에 전송하고, 다른 마스터 디바이스는 통지된 종료 어드레스의 다음 어드레스 이후를 데이터의 기입장소로 이용할 수 있다. 이에 따라 메모리 디바이스의 기입장소영역을 고정화하는 경우에 비하여 메모리 디바이스의 이용 효율을 향상시킬 수 있다.
또 상기 구성에 있어서, 메모리 디바이스에 포함되는 복수영역의 각각에 대한 사용상황이 기입완료, 미사용 중 어느 것인지를 나타내는 사용상황 정보를 기억하고 있고, 어느 하나의 마스터 디바이스가 메모리 디바이스로의 데이터 기입을 요구하고자 한 경우, 그 사용상황 정보가 미사용으로 설정되어 있는 영역의 어드레스를 해당 마스터 디바이스에 통지하는 어드레스 서버를 구비하고 있어도 된다. 메모리 디바이스에서의 영역의 사용상황이 엔트리표에 관리되어 있으므로 메모리로의 기입을 요구하는 마스터 디바이스는 어드레스 서버에 빈 영역의 엔트리 어드레스를 조회하면 그 기입장소 어드레스를 특정할 수 있다. 마스터 디바이스가 각각 빈 영역을 탐색하지 않아도 되므로 데이터 처리장치 전체의 처리효율을 향상시킬 수 있다.
이하 데이터 처리장치의 실시예에 대하여 도면을 참조하여 설명하기로 한다. 또 데이터 처리장치의 여러 가지 기능을 정리하여 설명하고자 하면 설명이 매우 복잡하게 될 우려가 있으므로 복수의 실시예에 있어서 데이터 처리장치의 여러 가지 기능을 단계적으로 설명해 가기로 한다.
(제 1 실시예)
제 1 실시예는 적은 노동력으로 복수의 마스터 디바이스에 대한 대역폭의 할당을 변경할 수 있도록 구성된 데이터 처리장치에 관한 것이다. 데이터 처리장치를 도 2a에 도시한다. 도 2a에 도시된 바와 같이 데이터 처리장치는 원칩의 LSI이고, 외부메모리 디바이스(2)와 함께 멀티미디어 관련제품에 내장되어 이용된다. 이러한「비트폭 할당 변경작업의 간소화」라는 요지를 갖고 구성된 데이터 처리장치를 도 2b에 도시한다. 도 2b의 구성도는 데이터 처리장치의 구성요소 중 상기 요지에 필요한 것만을 도시하고 있고, 이러한 요지와 관계없는 구성요소에 대해서는 그 도시를 생략하고 있다. 도 2b에서 일점쇄선으로 나타내는 테두리는 데이터 처리장치로서 원칩화되는 부위를 도시한다. 도 2b에서 데이터 처리장치는 메모리 컨트롤러(3), 마스터 디바이스(4∼6), 로컬 메모리(7∼9), 버스(10∼12), 로컬버퍼(13∼15), 아비터(16), 로컬 컨트롤러(17∼19) 및 접속회로(20, 21, 22)를 구비하고, 128비트 버스(1)를 통해 외부메모리 디바이스(2)와 접속되어 있다.
본 실시예 및 이후의 실시예에 있어서 각 마스터 디바이스가 요구하는 전송속도(대역폭)는 버스의 비트폭과, 각 마스터 디바이스가 요구하는 사용빈도에 따라 좌우된다. 즉 비트폭이 동일한 버스가 2개 있고, 한쪽의 버스에서 마스터 디바이스는 높은 빈도로 데이터 전송을 요구하고, 다른쪽 버스에서 마스터 디바이스는 낮은 빈도로 데이터 전송을 요구하는 경우,「전자의 마스터 디바이스가 요구하는 전송속도는 후자의 마스터 디바이스가 요구하는 전송속도보다 높은」것을 의미한다(또 이후의 설명에서는, 설명을 간단히 하기 위해 각 마스터 디바이스에 대한 사용빈도에 대해서는 특별히 고려하지 않고, 각 마스터 디바이스가 요구하는 전송속도를 판독기입 포트의 비트폭만으로 표현하는 것으로 함).
또 미디어처리를 하는 데 있어서, 각 판독기입 포트의 비트폭에는 최적의 값이 존재하지만, 이들을 구체적으로 예시하여 설명하면 설명이 복잡해질 우려가 있으므로 이후에서는 버스(1), 버스(10), 버스(11), 버스(12)의 비트폭 및 대역폭을 128비트, 64비트, 32비트, 32비트라 가정하여 설명한다. 또한 로컬버퍼(13), 로컬 컨트롤러(17), 접속회로(20)는 마스터 디바이스(4)에 대응된 주변회로이므로 이후의 설명에서는 이들을『마스터 디바이스(4)의 주변회로』라고 총칭한다. 마찬가지로 로컬버퍼(14), 로컬 컨트롤러(18), 접속회로(21)는 『마스터 디바이스(5)의 주변회로』라고 총칭하고, 로컬버퍼(15), 로컬 컨트롤러(19), 접속회로(22)를 『마스터 디바이스(6)의 주변회로』라고 총칭한다.
128비트 버스(1)는 외부메모리 디바이스(2)와, 로컬버퍼(13)-로컬버퍼(14)-로컬버퍼(15) 사이의 데이터 전송을 행한다. 본 실시예에서 외부메모리 디바이스(2)의 판독기입 포트의 비트폭은 128비트이고, 로컬버퍼(13)∼로컬버퍼(15)의 한쪽의 판독기입 포트의 비트폭이 128비트이므로 128비트 버스(1)에서의 데이터 전송은 128비트의 전송속도로 행해진다.
도 3은 버스(1)와 외부메모리 디바이스(2)의 입출력의 관계를 나타내는 타이밍차트이다. 버스(1)에서의 데이터 전송은 본 도면의 제 3단째에 나타나 있다. 본 도면에서의 데이터 Ptr.4는 마스터 디바이스(4)가 메모리로부터의 판독 또는 메모리로의 기입을 요구한 128비트의 데이터이고, 데이터 Ptr.5, 데이터 Ptr.6은 각각 마스터 디바이스(5), 마스터 디바이스(6)가 메모리로부터의 판독 또는 메모리로의 기입을 요구한 128비트의 데이터이다.
본 도면을 참조하면 사이클 c1, c3, c5, c7, c9에 있어서 데이터 Ptr.4가 전송되고, 사이클 c2, c6, c10에 있어서 데이터 Ptr.5, 사이클 c4, c8에 있어서 데이터 Ptr.6이 전송되어 있는 것을 알 수 있다. 이것은 데이터 Ptr.4가 2사이클에 1회의 비율로 전송되어 있고, 데이터 Ptr.5, 데이터 Ptr.6은 4사이클에 1회의 비율로 전송되어 있는 것을 나타낸다. 본 도면에 도시된 바와 같이 버스(1)는 마스터 디바이스(4)∼마스터 디바이스(6)에 대한 데이터를 시분할로 전송하고 있는 것이다.
외부메모리 디바이스(2)는 마스터 디바이스(4∼6)가 이용할 작업영역과, 128비트의 판독기입 포트를 갖고 있고, 메모리 컨트롤러(3)로부터 판독커맨드와, 판독장소 어드레스와, 판독할 데이터길이가 지시되면 그 데이터를 버스(1)에 출력한다. 한편 메모리 컨트롤러(3)로부터 기입커맨드와, 기입장소 어드레스가 지시되면 버스(1)에 출력된 데이터를 그 기입장소 어드레스에 기입한다.
메모리 컨트롤러(3)는 외부메모리 디바이스(2)로부터의 데이터 판독제어와, 외부메모리 디바이스(2)에 대한 데이터 기입제어를 행한다. 메모리 컨트롤러(3)에 의한 데이터 판독제어는 판독장소 어드레스와, 판독커맨드와, 판독할 데이터길이를 외부메모리 디바이스(2)에 대하여 발행하고, 해당 판독장소 어드레스 이후에 함께 저장되어 있는 데이터를 외부메모리 디바이스(2)로부터 버스(1)에 판독시킴으로써 행해진다. 또 기입제어는 기입장소 어드레스와, 기입커맨드와, 기입할 데이터길이를 외부메모리 디바이스(2)에 대하여 발행하고, 버스(1)에 전송되어 있는 데이터를 외부메모리 디바이스(2)에 있어서 해당 기입장소 어드레스 이후에 기입시킴으로써 행해진다. 메모리 컨트롤러(3)에 의한 이들의 데이터 판독제어/데이터 기입제어는 마스터 디바이스(4)∼마스터 디바이스(6)로부터의 판독요구/기입요구에 따라 행해진다. 이로 인하여 메모리 컨트롤러(3)는 복수의 포인터와, 증분기를 갖고 있다. 복수의 포인터의 각각은 마스터 디바이스(4), 마스터 디바이스(5), 마스터 디바이스(6)의 각각에 대응되고, 마스터 디바이스(4)∼마스터 디바이스(5)로부터 발해진 판독장소/기입장소 어드레스를 저장하고 있다. 또 증분기는 마스터 디바이스(4)∼마스터 디바이스(6) 중 어느 것에 대한 판독커맨드 및 기입커맨드를 발행하면 해당하는 마스터 디바이스에 대응한 포인터에 저장되어 있는 어드레스를 증분한다.
계속해서 마스터 디바이스(4)∼마스터 디바이스(6)에 대한 판독요구/기입요구를 어떠한 타이밍으로 외부메모리 디바이스(2)에 대하여 행하는지를 도 3의 타이밍차트를 참조하여 설명하기로 한다.
본 도면의 제 1단째는 외부메모리 디바이스(2)에 대한 어드레스 출력을 나타내며, 제 2단째는 외부메모리 디바이스(2)로부터의 데이터출력을 나타낸다. 이들을 참조하면 데이터 Ptr.4는 2사이클에 1회의 비율로 전송해야 하며, 데이터 Ptr.5, 데이터 Ptr.6은 4사이클에 1회의 비율로 전송해야 하므로 메모리 컨트롤러(3)는 사이클 c0, c2, c4, c6, c8, c10에 있어서 어드레스 Ptr.4에 대한 판독장소 어드레스와 판독커맨드를 외부메모리 디바이스(2)에 출력하고 있고, 사이클 c1, c5, c9에 있어서 어드레스 Ptr.5에 대한 판독장소 어드레스와 판독커맨드를 출력하고 있다. 또한 사이클 c3, c7에 있어서 어드레스 Ptr.6에 대한 판독장소 어드레스와 판독커맨드를 출력하고 있다.
마스터 디바이스(4)는 로컬 메모리(7)와, 64비트의 판독기입 포트를 구비하고, 메모리 컨트롤러(3)에 대하여 데이터의 판독/기입을 요구하는 액세스 커맨드를 발행한다. 데이터 판독을 요구할 때 외부메모리 디바이스(2)에 저장되어 있는 데이터의 판독을 요구하는 취지를 나타내는 액세스 커맨드를 메모리 컨트롤러(3)에 발행하고, 외부메모리 디바이스(2)-버스(1)-로컬버퍼(13)-버스(10)를 통해 해당 데이터가 전송되는 것을 기다린다. 데이터가 전송되면 해당 데이터를 차례로 도입하여 로컬 메모리(7)에 저장하여 간다.
데이터 기입을 요구할 때, 외부메모리 디바이스(2)에 데이터의 기입을 요구하는 취지를 나타내는 액세스 커맨드를 메모리 컨트롤러(3)에 발행하고, 외부메모리 디바이스(2)에 기입할 데이터를 로컬 메모리(7)로부터 버스(10)에 차례로 출력한다. 출력된 데이터는 버스(10)-로컬버퍼(13)-버스(1)를 통해 차례로 외부메모리 디바이스(2)에 기입되어 간다.
마스터 디바이스(5)는 로컬 메모리(8)와, 32비트의 판독기입 포트를 구비하고, 마스터 디바이스(4)와 마찬가지로 메모리 컨트롤러(3)에 대하여 데이터의 판독/기입을 요구한다. 마스터 디바이스(4)와의 차이는 데이터를 판독/기입할 때의 데이터 전송경로이다. 즉, 마스터 디바이스(4)가 외부메모리 디바이스(2)-버스(1)-로컬버퍼(13)-버스(10)의 경로로 데이터를 판독/기입하는 데 대하여, 마스터 디바이스(5)는 외부메모리 디바이스(2)-버스(1)-로컬버퍼(14)-버스(11)의 경로로 데이터를 판독/기입한다.
마스터 디바이스(6)는 로컬 메모리(9)와, 32비트의 판독기입 포트를 구비하고, 마스터 디바이스(4)와 마찬가지로 메모리 컨트롤러(3)에 대하여 데이터의 판독/기입을 요구한다. 마스터 디바이스(4)와의 차이는 데이터를 판독/기입할 때의 데이터 전송경로이다. 즉 마스터 디바이스(4)가 외부메모리 디바이스(2)-버스(1)-로컬버퍼(13)-버스(10)의 경로로 데이터를 판독/기입하는 데 대하여, 마스터 디바이스(6)는 외부메모리 디바이스(2)-버스(1)-로컬버퍼(15)-버스(12)의 경로로 데이터를 판독/기입한다.
버스(10)는 마스터 디바이스(4)의 판독기입 포트와, 로컬버퍼(13)의 다른쪽 판독기입 포트에 접속된 버스이다.
버스(11)는 마스터 디바이스(5)의 판독기입 포트와, 로컬버퍼(14)의 다른쪽 판독기입 포트에 접속된 버스이다.
버스(12)는 마스터 디바이스(6)의 판독기입 포트와, 로컬버퍼(15)의 다른쪽 판독기입 포트에 접속된 버스이다.
로컬버퍼(13)는 한쪽 판독기입 포트에 128비트 버스(1)가 접속되고, 다른쪽판독기입 포트에 접속회로(20)를 통해 버스(10)가 접속된 버퍼이고, 외부메모리 디바이스(2)가 128비트의 판독기입 포트로 버스(1)에 출력한 데이터를 도입하고, 이것을 버스(10)를 이용하여 전송시킨다. 반대로 버스(10)에 전송되어 있는 데이터를 도입하고, 이것을 버스(1)에 출력한다. 여기에서 로컬버퍼(13)에서의 다른쪽 판독기입 포트의 비트폭은 최대 128비트이지만, 접속회로(20)를 개재함으로써 다른쪽 판독기입 포트의 비트폭이 마스터 디바이스(4)의 판독기입 포트와 동일한 비트폭, 즉 64비트로 설정되어 있다. 이와 같이 마스터 디바이스(4)의 판독기입 포트가 64비트이고, 로컬버퍼(13)의 판독기입 포트가 64비트로 설정되어 있으므로 버스(1O)에서의 전송은 64비트의 전송속도로 행해진다.
계속해서 로컬버퍼(13)의 입출력에 대하여 도 4 및 도 5를 참조하여 설명하기로 한다. 도 4는 로컬버퍼(13)가 외부메모리 디바이스(2)로 데이터를 출력할 때의 동작타이밍을 나타내는 타이밍차트이고, 도 5는 로컬버퍼(13)가 외부메모리 디바이스(2)로부터 판독된 데이터를 입력할 때의 동작타이밍을 도시한 타이밍차트이다.
도 4를 참조하여, 우선 로컬버퍼(13)로부터 외부메모리 디바이스(2)로의 데이터 기입시의 처리에 대하여 설명하기로 한다.
사이클 c2에서는 버스(1O)에서 64비트로 전송되어 있는 데이터 “데이터 d0, 1 ”을 로컬버퍼(13)가 도입하고, 계속해서 사이클 c3에서는 버스(10)에서 64비트로 전송되어 있는 데이터 “데이터 d2, 3 ”을 로컬버퍼(13)가 도입한다. 이렇게 하여 도입한 데이터 d0, 1, 2, 3을 사이클 c4에서 버스(1)에 전송한다.
사이클 c3에 있어서 메모리 컨트롤러(3)는 마스터 디바이스(4)를 위한 기입장소 Ptr.4를 출력하고 있으므로 사이클 c4에 있어서 버스(1)에 전송되어 있는 데이터 d0, 1, 2, 3이 그 기입장소에 기입되게 된다.
마찬가지로 사이클 c4에서는 버스(1O)에서 전송되어 있는 데이터 “데이터 d4, 5 ”를, 사이클 c5에서는 데이터 “데이터 d6, 7 ”을 로컬버퍼(13)가 도입한다. 이렇게 하여 도입한 데이터 d4, 5, 6, 7을 사이클 c6에서 버스(1)에 전송하면 데이터 d4, 5, 6, 7이 그 기입장소 어드레스 Ptr.4에 기입된다.
계속해서 도 5를 참조하여 외부메모리 디바이스(2)로부터 로컬버퍼(13)로의 데이터 판독시의 처리에 대하여 설명하기로 한다.
사이클 c7에서는 메모리 컨트롤러(3)는 마스터 디바이스(5)를 위한 판독장소 “Ptr.5 ”를 출력하고 있으므로 사이클 c8에 있어서 데이터 d4, 5, 6, 7이 버스(1)에 전송된다. 사이클 c4에 있어서, 로컬버퍼(13)는 버스(1)에서 128비트로 전송되어 있는 데이터 d0, 1, 2, 3을 로컬버퍼(13)가 도입한다. 계속해서 사이클 c5에서는 이렇게 하여 도입한 데이터 d0, 1, 2, 3 중 데이터 d0, 1을 사이클 c5에서 버스(1O)에 전송하고, 데이터 d2, 3을 사이클 c6에서 버스(10)에 전송한다.
사이클 c5에서 메모리 컨트롤러(3)는 마스터 디바이스(4)를 위한 판독장소 Ptr.4를 출력하고 있으므로 버스(1)에는 그 판독장소에 저장되어 있는 데이터 d4, 5, 6, 7이 전송되어 있다. 사이클 c6에서 로컬버퍼(13)는 버스(1)에서 전송되어 있는 데이터 “데이터 d4, 5, 6, 7 ”을 도입한다. 이렇게 하여 도입한 데이터 d4, 5, 6, 7 중 데이터 d4, 5를 사이클 c7에서 버스(1O)에 전송하고, 사이클 c8에서 데이터 d6, 7을 버스(1O)에 전송한다.
이상과 같이 로컬버퍼(13)로부터 버스(1)로의 데이터 출력 및 버스(1)로부터 로컬버퍼(13)로의 데이터 도입에는 2사이클을 요하는 것을 알 수 있다. 데이터 Ptr.4를 2사이클에 1회의 비율로 버스(1)에 전송시키도록 메모리 컨트롤러(3)가 메모리 액세스를 하고 있던 것은 로컬버퍼(13)에서의 데이터 출력 및 데이터 도입에 2사이클을 요하기 때문이다. 이들의 로컬버퍼(13)에서의 입출력에 의해 버스(1)의 전송속도와 버스(10)의 전송속도의 속도차가 흡수되어 있는 것을 알 수 있다.
로컬버퍼(14), 로컬버퍼(15)는 한쪽의 판독기입 포트에 128비트 버스(1)가 접속되고, 다른쪽 판독기입 포트에 접속회로(21, 22)를 통해 버스(11, 12)가 접속된 버퍼이고, 외부메모리 디바이스(2)가 버스(1)에 출력한 데이터를 도입하고, 이것을 버스(11, 12)를 이용하여 전송시킨다. 반대로 버스(11, 12)에 전송되어 있는 데이터를 도입하고, 이것을 버스(1)에 출력한다. 여기에서 로컬버퍼(14, 15)에서의 다른쪽 판독기입 포트의 비트폭은 최대 128비트이지만, 접속회로(21, 22)를 개재함으로써 다른쪽 판독기입 포트의 비트폭이 마스터 디바이스(5, 6)의 판독기입 포트와 동일한 비트폭, 즉 32비트로 설정되어 있다. 이와 같이 마스터 디바이스(5, 6)의 판독기입 포트는 32비트로 설정완료되고, 로컬버퍼(14, 15)의 판독기입 포트가 32비트로 설정되어 있으므로 버스(11, 12)에서의 전송은 32비트의 전송속도로 행해진다.
계속해서 도 6 및 도 7을 참조하여 로컬버퍼(14)의 입출력 타이밍에 대하여 설명하기로 한다. 도 6은 로컬버퍼(14)가 외부메모리 디바이스(2)에 데이터를 기입할 때의 동작타이밍을 도시한 타이밍차트이고, 도 7은 로컬버퍼(14)가 외부메모리 디바이스(2)로부터 데이터를 판독할 때의 동작타이밍을 도시한 타이밍차트이다.
우선 도 6을 참조하여 로컬버퍼(14)로부터 외부메모리 디바이스(2)로의 데이터 기입시의 처리에 대하여 설명하기로 한다. 사이클 c2에서는 버스(11)에 있어서 32비트로 전송되어 있는 데이터 d0을 도입하고, 사이클 c3에서는 데이터 d1을 도입한다. 마찬가지로 사이클 c4, c5에서는 데이터 d2, d3을 도입해 간다. 이상과 같이 하여 도입한 데이터 d0, 1, 2, 3을 사이클 c6에서 버스(1)에 전송한다.
사이클 c5에서는 메모리 컨트롤러(3)는 마스터 디바이스(4)를 위한 기입장소“Ptr.5 ”를 출력하고 있으므로 사이클 c6에서 버스(1)에 전송되어 있는 데이터 d0, 1, 2, 3이 그 기입장소 “Ptr.5 ”에 기입된다.
마찬가지로 로컬버퍼(14)는 사이클 c6, c7에서는 버스(11)에서 전송되어 있는 데이터 d4, 5를 도입하고, 사이클 c8, 9에서는 데이터 d6,7을 도입한다. 이렇게 하여 도입한 데이터 d4, 5, 6, 7을 사이클 c10에서 버스(1)에 전송하면 데이터 d4, 5, 6, 7이 그 기입장소 어드레스 Ptr.5에 기입된다.
다음으로 도 7을 참조하여 외부메모리 디바이스(2)로부터 로컬버퍼(14)로의 데이터 판독시의 처리에 대하여 설명하기로 한다. 사이클 c3에서는 메모리 컨트롤러(3)가 마스터 디바이스(4)를 위한 판독장소 “Ptr.5 ”를 출력하고 있으므로 사이클 c4에서 그 데이터 d0, 1, 2, 3이 버스(1)에 전송된다. 사이클 c4에서는 버스(1)에 있어서 128비트로 전송되어 있는 데이터 “데이터 d0, 1, 2, 3을 로컬버퍼(14)가 도입한다. 계속해서 사이클 c5에서는 이렇게 하여 도입한 데이터 d0, 1, 2, 3 중 데이터 d0을 버스(11)에 전송하고, 사이클 c6에서는 데이터 d1을 전송한다. 사이클 c7에서는 데이터 d2를 출력하고, 사이클 c8에서는 데이터 d3을 각각 출력한다.
사이클 c7에서는 메모리 컨트롤러(3)가 마스터 디바이스(4)를 위한 판독장소 “Ptr.5 ”를 출력하고 있으므로 사이클 c8에서 데이터 d4, 5, 6, 7이 버스(11)에 전송된다. 로컬버퍼(14)는 이와 같이 전송된 데이터 d4, 5, 6, 7을 도입한다. 계속해서 사이클 c9에서는 이렇게 하여 도입한 데이터 d4, 5, 6, 7 중 데이터 d4를 버스(11)에 전송하고, 사이클 c10에서는 데이터 d5를 전송한다. 사이클 c11에서는 데이터 d6을 출력하고, 사이클 c12에서는 데이터 d7을 각각 출력한다.
이상과 같이 로컬버퍼(14)로부터 버스(1)로의 데이터 출력 및 버스(1)로부터 로컬버퍼(14)로의 데이터 도입에는 4사이클을 요하는 것을 알 수 있다. 데이터 Ptr.5를 4사이클에 1회의 비율로 버스(1)에 전송시키도록 메모리 컨트롤러(3)가 메모리 액세스를 행하고 있던 것은 로컬버퍼(14)에서의 데이터 출력 및 데이터 도입에 4사이클을 요하기 때문이다. 이들의 로컬버퍼(14)에서의 입출력에 의해 버스(1)의 전송속도와 버스(11)의 전송속도의 속도차가 흡수되어 있는 것을 알 수 있다.
아비터(16)는 버스(1)의 사용에 대한 경합이 복수의 마스터 디바이스 사이에서 발생한 경우에 버스(1)의 사용에 관한 조정을 행한다. 조정 결과, 버스(1)를 사용하여야 한다고 인정한 마스터 디바이스에 대하여 응답신호를 출력한다. 한편 버스의 사용이 부인된 것에 대해서는 응답신호를 비활동으로 설정하거나 혹은 홀드신호를 출력한다. 이로 인하여 버퍼로의 기입 또는 버퍼로부터의 판독이 지연되어 버스전송이 지연된다.
또 이미 설명한 바와 같이 본 실시예에서는 4사이클 중 2사이클을 데이터 Ptr.4의 데이터 전송에 할당하고 있고, 나머지 2사이클 중 1사이클씩 데이터 Ptr.5의 데이터 전송, 데이터 Ptr.6의 데이터 전송에 할당하고 있으므로 마스터 디바이스(4∼6) 중 어느 것도 버스(1)의 사용을 기다리는 것은 비효율적이다.
로컬 컨트롤러(17)는 버스(1)에 전송되어 있는 데이터와, 버스(10)에 전송되어 있는 데이터의 입출력을 행하도록 로컬버퍼(13)를 제어한다. 메모리로 데이터를 기입할 때, 로컬 컨트롤러(17)는 로컬버퍼(13)의 내부영역을 지시하는 기입포인터를 갖고 있고, 버스(10)에 전송되어 있는 64비트 데이터를 기입포인터로써 지시되어 있는 로컬버퍼(13)의 영역에 저장시킨다. 출력후 기입포인터를 64비트만큼 증분시키고, 다음 64비트분을 증분된 기입포인터에 지시되어 있는 영역에 저장시킨다. 이러한 기입포인터의 갱신과, 64비트단위의 데이터 저장을 버스(10)에 출력된 모든 데이터에 대하여 반복하면, 로컬버퍼(13)에 128비트 데이터가 저장된 것으로 된다. 이와 같이 128비트 데이터를 저장한 후 버스(1)에 출력한다. 128비트를 외부메모리 디바이스(2)에 송출한 후 다음 64비트 데이터가 버스(1O)에 전송되는 것을 기다려, 전송되면 마찬가지의 순서를 반복한다.
또 로컬 컨트롤러(17)는 메모리로부터 데이터를 판독할 때 버스(1)에 전송되어 있는 데이터를 로컬버퍼(13)에 저장하는 것과 아울러, 버퍼에 판독된 128비트 데이터 중 판독포인터로써 지시되어 있는 부분으로부터 64비트분을 버스(1O)에 출력시킨다. 출력후 판독포인터를 64비트만큼 증분하고, 다음 64비트분을 버스(1O)에 출력시킨다. 이러한 판독포인터의 갱신과, 64비트단위의 데이터출력을 로컬버퍼(13)에 판독된 모든 데이터에 대하여 반복하면, 로컬버퍼(13)의 데이터는 모두 마스터 디바이스(4)에 송출된 것이 된다. 128비트 데이터를 마스터 디바이스(4)에 송출한 후 다음 128비트 데이터가 버스(1)에 전송되는 것을 기다려, 전송되면 마찬가지의 순서를 반복한다.
로컬 컨트롤러(18, 19)는 64비트와 32비트의 차이는 있지만, 로컬 컨트롤러(17)와 마찬가지로 버스(1)에 전송되어 있는 데이터와, 버스(11)∼버스(12)에 전송되어 있는 데이터와의 입출력을 행하도록 로컬버퍼(14)∼로컬버퍼(15)를 제어한다.
접속회로(20, 21, 22)는 로컬버퍼(13∼15)와, 버스(10∼12)를 각각 접속한다. 접속회로(20∼22)는 그 회로구성이 공통화되어 있고, 버스(10∼12)의 각각에 대하여 앞으로 판독기입 포트의 비트폭을 변경할 요구이 생기더라도 복수 셀렉터의 입출력을 설정함으로써 간단히 판독기입 포트의 비트폭을 변경할 수 있도록 하고 있다. 상기한 바와 같이 접속회로(20∼22)는 로컬버퍼(13∼15)의 판독기입 포트의 비트폭을 각각 마스터 디바이스(4∼6)의 판독기입 포트의 비트폭과 동일한 비트폭으로 설정하고 있지만, 이들의 비트폭의 설정은 접속회로(20∼22)가 구비하고 있는 복수 셀렉터의 입출력을 설정함으로써 전환할 수 있다.
또 현상태의 대역폭에서는 버스(1)에 버스 록이 발생할 가능성이 있는 경우, 보다 넓은 대역폭을 갖는 인터페이스를 갖는 외부메모리 디바이스(2)로 치환하고, 버스(1)의 비트폭을 넓게 함으로써 마스터 디바이스(4∼6), 버스(10∼12)로 변경을 가하지 않더라도 간단히 버스 록을 방지할 수 있다는 효과가 있다.
이상과 같이 본 실시예에 의하면, 외부메모리 디바이스(2)에 버스(1)를 접속하는 것과 아울러, 마스터 디바이스(4∼6)의 각각의 버스(10∼12)를 접속하고 있고, 로컬버퍼(13∼15)는 이들 버스의 입출력을 행하므로 마스터 디바이스(4∼6)에 할당할 대역폭을 변경하고 싶은 경우는 마스터 디바이스(4∼6) 및 버스(10∼12), 로컬버퍼(13∼15)의 한쪽 판독기입 포트를 변경하면 되므로 외부메모리 디바이스(2), 메모리 컨트롤러(3), 버스(1)를 재설계할 필요는 없다. 외부메모리 디바이스(2)-메모리 컨트롤러(3)-버스(1)의 변경을 수반하지 않고 마스터 디바이스(4∼6)에서의 대역폭의 할당을 변경할 수 있으므로 앞으로 대역폭을 변경할 필요가 생기더라도 설계자가 큰 노력을 들이는 일은 없다.
(제 1 실시예의 응용예)
본 응용예는 32비트 버퍼(61∼64), 버스(10∼12), 접속회로(20∼22)를 공통화하는 경우의 회로구성을 제안하는 것이다.
도 8은 32비트 버퍼(61∼64), 버스(10∼12), 접속회로(20∼22)의 회로구성을 공통화하는 경우의 회로구성을 도시한 도면이다. 도 8에서 32비트 버스(57), 32비트 버스(58), 32비트 버스(59), 32비트 버스(60)는 버스(10∼12)를 구성하는 것이며, 32비트 버퍼(61∼64)는 어느 것이나 128비트 버퍼(13∼15)를 구성하는 것이다. 4입력-1출력 셀렉터(65), 2입력-1출력 셀렉터(66), 게이트(67), 게이트(68), 셀렉터(71), 셀렉터(72), 셀렉터(73), 셀렉터(74)는 어느 것이나 접속회로(20∼22)를 구성하는 것이다. 도 9a는 도 8에 도시된 셀렉터 중 32비트 버퍼(61∼64)로부터 32비트 버스(57∼60)로의 판독시에 이용되는 것만을 도시한 도면이고, 도 9b는 도 8에 도시된 셀렉터 중 32비트 버스(57∼60)로부터 32비트 버퍼(61∼64)로의 기입시에 이용되는 것만을 도시한 도면이다.
32비트 버스(57), 32비트 버스(58), 32비트 버스(59), 32비트 버스(60)는 각각 32비트의 비트폭을 갖는 버스이고, 마스터 디바이스(4∼6)의 각각과 접속되어 있다. 64비트로 데이터를 전송하는 경우, 32비트 버스(57, 58)가 전송에 이용되고, 32비트로 데이터를 전송하는 경우, 32비트 버스(57)만이 전송에 이용된다.
32비트 버퍼(61), 32비트 버퍼(62), 32비트 버퍼(63), 32비트 버퍼(64)는 32비트의 데이터를 유지하는 버퍼이고, 32비트 버퍼(61∼64)를 모두 합하여 버스 128비트의 데이터를 보유한다.
4입력-1출력 셀렉터(65), 2입력-1출력 셀렉터(66), 게이트(67), 게이트(68), 셀렉터(71), 셀렉터(72), 셀렉터(73), 셀렉터(74)는 32비트 버스(57∼60)에서의 전송을 32비트, 64비트, 128비트 중 어느 하나의 비트폭으로 행하도록 입출력의 선택 전환을 행한다.
이들의 셀렉터, 게이트에 대한 입출력의 대응표를 도 10a, 도 10b에 도시한다. 도 10a는 비트폭과, 4입력-1출력 셀렉터(65)∼게이트(68)가 선택하는 접속선과의 대응을 도시한 도면이다. 비트폭이 32비트인 난을 참조하면 4입력-1출력 셀렉터(65)에 대한 난만 접속선 A, 접속선 B, 접속선 C, 접속선 D라고 기술되어 있는 것을 알 수 있다. 이것은 32비트의 전송속도의 경우, 4입력-1출력 셀렉터(65)가 접속선 A∼접속선 D를 통해 제 1∼제 4번째의 32비트 데이터를 버스(57) 상에 전송하는 것을 나타낸다.
비트폭이 64비트인 난을 참조하면 4입력-1출력 셀렉터(65)에 대한 난에 접속선 A, 접속선 C라고 기술되고, 2입력-1출력 셀렉터(66)에 대한 난만 접속선 B, 접속선 D라고 기술되어 있는 것을 알 수 있다. 이것은 64비트의 전송속도의 경우, 접속선 A, 접속선 C를 통해 제 1, 제 3번째의 32비트 데이터를 버스(57) 상에 전송하고, 접속선 B, 접속선 D를 통해 제 2, 제 4번째의 32비트 데이터를 버스(58) 상에 전송하는 것을 나타낸다.
비트폭이 128비트인 난을 참조하면 4입력-1출력 셀렉터(65)에 대한 난에 접속선 A, 2입력-1출력 셀렉터(66)에 대한 난에 접속선 B, 게이트(67)에 대한 난에 접속선 C, 게이트(68)에 대한 난에 접속선 D라고 기술되어 있는 것을 알 수 있다. 이것은 128비트의 전송속도의 경우, 접속선 A, 접속선 B, 접속선 C, 접속선 D를 통해 제 1∼제 4번째의 32비트 데이터를 버스(57∼60) 상에 전송하는 것을 나타낸다.
계속해서 도 9a에 도시된 4입력-1출력 셀렉터(65), 2입력-1출력 셀렉터(66), 게이트(67), 게이트(68)의 입출력에 대하여 차례로 설명하기로 한다.
4입력-1출력 셀렉터(65)는 접속선 A, 접속선 B, 접속선 C, 접속선 D를 선택적으로 버스(57)에 출력함으로써 32비트 버퍼(61∼64)에 저장되어 있는 데이터를 차례로 버스(57)에 전송시킨다. ,
또 이후의 설명에서 128비트 데이터의 부분비트로서, 상위 m비트째로부터 상위 n비트까지에 위치하는 것을 비트 [m:n]이라는 단위로 호칭한다.
도 11a는 비트폭이 32비트인 경우의 타이밍차트이다. 전송속도가 32비트뿐인 경우, 데이터 전송을 버스(57)만으로 행할 필요가 있다. 그 때문에 도 11a의 사이클 c11에서 4입력-1출력 셀렉터(65)는 제 1번째의 32비트 데이터를 출력하기 위해 접속선 A를 선택 출력한다. 계속해서 사이클 c12에서 4입력-1출력 셀렉터(65)는 제 2번째의 32비트 데이터를 출력하기 위해 접속선 B를 선택 출력하고, 사이클 c13에서 제 3번째의 32비트 데이터를 출력하기 위해 접속선 C를 선택 출력한다. 4입력-1출력 셀렉터(65)는 사이클 c14에서 제 4번째의 32비트 데이터를 출력하기 위해 접속선 D를 선택 출력한다.
도 11b는 비트폭이 64비트인 경우의 타이밍차트이다. 전송속도가 64비트인 경우, 데이터 전송은 버스(57)와 버스(58)를 동시에 이용함으로써 실행된다. 그 때문에 4입력-1출력 셀렉터(65)는 도 11b의 사이클 c11에서 제 1번째의 64비트 데이터의 상위 32비트를 출력하기 위해 접속선 A를 선택 출력한다. 다음 사이클 c12에서 4입력-1출력 셀렉터(65)는 제 2번째의 64비트 데이터의 상위 32비트 데이터를 출력하기 위해 접속선 C를 선택 출력한다. 도 11c는 전송속도가 128비트인 경우의 타이밍차트이다. 전송속도가 128비트인 경우, 데이터 전송은 버스(57∼60)를 동시에 이용함으로써 실행된다. 그 때문에 4입력-1출력 셀렉터(65)는 사이클 c11에서 1사이클을 소비하여 32비트 버퍼(61)에 저장되어 있는 데이터를 버스(57)에 전송시키도록 접속선 A의 데이터를 출력한다.
2입력-1출력 셀렉터(66)는 접속선 B, 접속선 D를 선택적으로 버스(57)에 출력함으로써 32비트 버퍼(62), 32비트 버퍼(64)에 저장되어 있는 데이터를 차례로 버스(57)에 전송시킨다. 도 11b에 도시된 바와 같이 전송속도가 64비트인 경우, 데이터 전송은 버스(57, 58)를 동시에 이용함으로써 실행된다. 그 때문에 2입력-1출력 셀렉터(66)는 사이클 c11에서 제 1번째의 64비트 데이터의 하위 32비트 데이터를 출력하기 위해 접속선 B를 선택 출력한다. 다음 사이클 c12에서 2입력-1출력 셀렉터(66)는 제 2번째의 64비트 데이터의 하위 32비트 데이터를 출력하기 위해 접속선 D를 선택 출력한다. 전송속도가 128비트인 경우, 데이터 전송은 버스(57∼60)를 동시에 이용함으로써 실행된다. 그 때문에 2입력-1출력 셀렉터(66)는 도 11c에 도시된 바와 같이 사이클 c11에서 128비트 데이터에서의 비트 [95:64]를 출력하기 위해 접속선 B를 선택 출력한다.
게이트(67)는 접속선 C에 전송되어 있는 데이터를 선택적으로 버스(59)에 출력함으로써 32비트 버퍼(63)에 저장되어 있는 데이터를 차례로 버스(59)에 전송시킨다. 도 11c에 도시된 바와 같이 전송속도가 128비트인 경우, 데이터 전송은 버스(57∼60)를 동시에 이용함으로써 실행된다. 그 때문에 게이트(67)는 사이클 c11에서 128비트 데이터의 비트 [63:32]를 출력하기 위해 접속선 C를 선택 출력한다.
게이트(68)는 접속선 D에 전송되어 있는 데이터를 선택적으로 버스(60)에 출력함으로써 32비트 버퍼(64)에 저장되어 있는 데이터를 차례로 버스(60)에 전송시킨다. 전송속도가 128비트인 경우, 데이터 전송은 버스(57∼60)를 동시에 이용함으로써 실행된다. 그 때문에 도 11c에 도시된 바와 같이 게이트(68)는 사이클 c11에서 128비트 데이터의 비트 [31:O]를 출력하기 위해 접속선 D를 선택 출력한다.
계속해서 도 9b에 도시된 셀렉터(71∼74)의 각각에 대하여 설명하기로 한다.
도 10b는 비트폭과, 제 1∼제 4번째의 데이터가 전송되는 접속선과의 조합에 있어서 셀렉터(71∼74)가 어떤 접속선을 선택 출력하는지를 도시한 도면이다.
전송속도가 32비트인 경우, 데이터 전송은 버스(57)를 이용해서만 행해지기 때문에 전송속도가 32비트인 난을 참조하면 제 1, 제 2, 제 3, 제 4번째의 32비트 데이터는 모두 접속선 E라고 기술되어 있는 것을 알 수 있다. 이것은 32비트의 전송속도의 경우, 제 1∼제 4번째의 32비트 데이터는 접속선 E를 통해 32비트 버퍼(61), 32비트 버퍼(62), 32비트 버퍼(63), 32비트 버퍼(64)에 도입되는 것을 나타낸다.
전송속도가 64비트인 경우, 데이터 전송은 상위 32비트를 버스(57), 하위 32비트를 버스(58)를 이용하여 행해지기 때문에 전송속도가 64비트인 난을 참조하면 제 1, 제 2번째의 64비트 데이터의 상위 32비트는 접속선 E라고 기술되고, 제 1, 제 2번째의 64비트 데이터의 하위 32비트는 접속선 F라고 기술되어 있는 것을 알 수 있다. 이것은 64비트의 전송속도의 경우, 제 1번째의 64비트 데이터는 접속선 E, 접속선 F를 통해 32비트 버퍼(61, 62)에 도입되고, 제 2번째의 64비트 데이터는 접속선 E, 접속선 F를 통해 32비트 버퍼(63, 64)에 도입되는 것을 나타낸다.
전송속도가 128비트인 경우, 데이터 전송은 버스(57, 58, 59, 60)를 동시에 이용하여 행해지기 때문에 전송속도가 128비트인 난을 참조하면 128비트 데이터의 비트 [127:96]은 접속선 E라고 기술되고, 128비트 데이터의 [95:64]는 접속선 F, 128비트 데이터의 비트 [63:32]는 접속선 G, 128비트 데이터의 비트 [31:0]은 접속선 H라고 기술되어 있는 것을 알 수 있다. 이것은 128비트의 전송속도의 경우, 128비트 데이터는 접속선 E, 접속선 F, 접속선 G, 접속선 H를 통해 각각 32비트 버퍼(61∼64)에 도입되는 것을 나타낸다.
셀렉터(71)는 버스(57∼60)에 의해 전송되는 128비트의 데이터 중 버스(57) 상에서 전송되는 제 1번째의 것을 32비트 버퍼(61)에 도입한다.
도 12a는 버스(57) 상에 제 1번째의 32비트 데이터, 제 2번째의 32비트 데이터, 제 3번째의 32비트 데이터, 제 4번째의 32비트 데이터가 전송되는 경우를 나타내는 타이밍차트이다. 본 도면에서 셀렉터(71)는 제 1번째의 32비트 데이터만을 32비트 버퍼(61)에 도입하고 있는 것을 알 수 있다. 도 12b는 버스(57) 상에 제 1번째의 64비트 데이터의 상위 32비트, 제 2번째의 64비트 데이터의 상위 32비트가 전송되어 있고, 버스(58) 상에 제 1번째의 64비트 데이터의 하위 32비트, 제 2번째의 64비트 데이터의 하위 32비트가 전송되는 경우를 나타내는 타이밍차트이다. 본 도면에서도 셀렉터(71)는 버스(57)에 의해 전송되는 제 1번째의 64비트 데이터의 상위 32비트 데이터만을 32비트 버퍼(61)에 도입하고 있는 것을 알 수 있다. 도 12c는 버스(57) 상에 128비트 데이터의 비트 [127:96]이 전송되어 있고, 버스(58) 상에 128비트 데이터의 비트 [95:64], 버스(59) 상에 128비트 데이터의 비트 [63:32], 버스(6O) 상에 128비트 데이터의 비트 [31:0]이 전송되는 경우를 나타내는 타이밍차트이다. 본 도면에서도 셀렉터(71)는 32비트 버스(57)에 의해 전송되는 128비트 데이터인 [127:96]만을 32비트 버퍼(61)에 도입하고 있는 것을 알 수 있다.
2입력-1출력 셀렉터(72)는 버스(57∼60)에 의해 전송되는 128비트의 데이터 중 비트 [95:64]를 32비트 버퍼(62)에 도입하도록, 접속선 E, 접속선 F를 선택하여 버퍼(62)로 출력한다. 도 12a에서는 2번째의 32비트를 접속선 E를 통해 32비트 버퍼(62)로, 도 12b에서는 1번째의 64비트 데이터의 하위 32비트를 접속선 F를 통해 32비트 버퍼(62)로, 도 12c에서는 128비트 데이터인 [95:64]를 접속선 F를 통해 32비트 버퍼(62)에 도입한다.
셀렉터(73)는 버스(57∼60)에 의해 전송되는 128비트의 데이터 중 비트 [63:32]에 상당하는 데이터를 32비트 버퍼(63)에 도입하도록, 접속선 E, G를 선택하여 32비트 버퍼(63)에 출력한다. 도 12c에서 셀렉터(73)는 버스(59)에 전송되어 있는 128비트 데이터의 비트 [63:32]를 접속선 G를 통해 32비트 버퍼(63)에 도입하고 있는 알 수 있다.
셀렉터(74)는 버스(57∼60)에 의해 전송되는 128비트의 데이터 중 비트 [31:O]에 상당하는 데이터를 32비트 버퍼(64)에 도입하도록, 접속선 E, 접속선 F, 접속선 H를 선택하여 32비트 버퍼(64)에 출력한다. 도 12c에서는 셀렉터(74)가 버스(60)에 전송되어 있는 128비트 데이터의 비트 [31:0]을 접속선 H를 통해 32비트 버퍼(64)에 도입하고 있는 것을 알 수 있다.
또 본 응용예에 있어서, 32비트 버퍼(61), 32비트 버퍼(62), 32비트 버퍼(63), 32비트 버퍼(64)의 비트폭은 모두 32비트이므로 전송속도(비트폭)는 32비트 데이터의 정수배단위로 변경 가능하였지만, 이들 버퍼가 모두 8비트라면 전송속도(비트폭)가 8비트의 정수배단위로 변경 가능하게 되고, 이들의 버퍼가 모두 16비트라면 전송속도(비트폭)는 16비트의 정수배단위로 변경 가능해진다. 이와 같이 버퍼(61∼64)의 비트폭은 각 마스터 디바이스에 대한 전송속도를 어떻게 설정하는가에 따라 설정하면 된다.
(제 2 실시예)
제 1 실시예에서는 마스터 디바이스(4∼6)의 각각에 버스(10∼12)의 각각을 1 대 1의 비율로 설치하고 있었지만, 제 2 실시예에서는 버스(10)에 복수의 마스터 디바이스를 설치한 실시예이다.
도 13은 복수 마스터 디바이스가 버스(10)에 설치된 데이터 처리장치를 도시한 도면이다. 본 도면에서 버스(10)에는 마스터 디바이스(4) 외에 마스터 디바이스(24)가 설치된다.
마스터 디바이스(24)는 마스터 디바이스(4)와 동일한 대역폭으로 DMA 전송을 요구하는 애플리케이션 프로그램이 동작하고 있고, 외부메모리 디바이스(2)를 액세스할 때 로컬 컨트롤러(17)에 DMA 전송요구를 출력한다.
아비터(25)는 마스터 디바이스(4), 마스터 디바이스(24)가 DMA 전송요구를 출력하면 이들의 DMA 전송요구에 대한 조정을 하여, 마스터 디바이스(4), 마스터 디바이스(24)의 어느 한쪽에 마스터 디바이스에 응답신호를 통달함으로써 버스(10)의 액세스권을 부여한다. 액세스권을 얻은 마스터 디바이스(4, 24)는 제 1 실시예와 마찬가지로 외부메모리 디바이스(2)에 대한 DMA 전송을 한다. 한편 액세스권을 획득할 수 없었던 것에 대해서는 응답신호를 비활동으로 설정하거나 혹은 홀드신호를 출력한다. 이로 인하여 버스로의 전송을 지연한다. 또 마스터 디바이스(4)와 마스터 디바이스(24)의 버스(10)의 액세스권을 전체 버스제어용 아비터(25)에 의해 결정하는 대신, 개개의 버스(여기에서는 버스(10)) 제어전용 아비터를 설치하고, 그 아비터에 의해 상기 액세스권을 제어하는 기구라도 동일한 효과를 얻을 수 있고, 또 아비터의 기구를 간단한 것으로 할 수 있다.
이상과 같이 본 실시예에 의하면, 오디오 데이터, 부영상, OSD 등, 서브시스템이라는 계통으로 분류되는 미디어처리를 하는 복수의 마스터 디바이스에 대해서는 그들 복수의 마스터 디바이스를 하나의 버스(10)와 로컬버퍼(13)에 대응시키므로 서브시스템에 속하는 미디어 처리가 다수 존재하는 경우라도 시스템을 간소화할 수 있다.
(제 3 실시예)
제 3 실시예는 데이터 처리장치와, 외부메모리 디바이스(2)의 비동기제어를 실현하는 실시예이다. 여기에서 데이터 처리장치와, 외부메모리 디바이스(2)의 비동기제어가 구해지는 것은 이하의 이유에 의한다. 즉 마스터 디바이스(4∼6)가 미디어처리를 하는 경우, 데이터 처리장치는 디스플레이장치와의 동기제어를 실현해야 하므로 데이터 처리장치 내의 마스터 디바이스(4∼6), 메모리 컨트롤러(3), 로컬 컨트롤러(17∼19)는 디스플레이장치의 표시기간에 기초를 둔 동작주파수로 동작해야 한다. 이에 대하여 외부메모리 디바이스(2)는 그 하드웨어 스펙에 있어서 최적의 동작주파수가 정해져 있으므로 그 동작주파수로 동작해야 한다. 이와 같이 데이터 처리장치와, 외부메모리 디바이스(2)는 그 동작에 최적의 동작주파수가 다르므로 비동기제어가 필요한 것이다.
비동기제어가 가능한 데이터 처리장치의 구성을 도 14에 도시한다. 도 14에서 새로운 것은 듀얼포트 메모리(26)가 설치되어 있는 점이다.
듀얼포트 메모리(26)는 한쪽의 포트가 외부메모리 디바이스(2)와 접속하고 있고, 다른쪽 포트가 로컬버퍼(13∼15)에 접속하고 있고, 외부메모리 디바이스(2)로부터 판독된 데이터 및 로컬버퍼(13∼15)로부터 출력된 데이터를 저장하고 있다.
제 3 실시예에서 마스터 디바이스(4∼6)는 2단계의 판독요구를 거쳐 외부메모리 디바이스(2)의 데이터를 얻는다. 제 1단계째는 외부메모리 디바이스(2)로부터 듀얼포트 메모리(26)로의 판독이다. 이 때 마스터 디바이스(4∼6)는 판독요구를 로컬 컨트롤러(17∼19)를 통해 메모리 컨트롤러(3)에 출력하고, 외부메모리 디바이스(2)로부터 듀얼포트 메모리(26)로의 데이터 판독을 메모리 컨트롤러(3)에 행하게 한다. 제 2단계째는 듀얼포트 메모리(26)로부터 로컬버퍼(13∼15)를 통한 DMA 마스터(4∼6)로의 판독이다. 듀얼포트 메모리(26)에 필요한 데이터가 판독된 단계에서 로컬 컨트롤러(17∼19)에 대하여 메모리 컨트롤러(3)로부터 판독응답신호가 출력되므로 로컬 컨트롤러(17∼19)는 이 응답신호를 수취하였을 때 제 1 실시예와 마찬가지로 듀얼포트 메모리(26)로부터 로컬버퍼(13∼15)를 통해 마스터 디바이스(4∼6)로 데이터를 전송한다.
한편 마스터 디바이스(4∼6)는 2단계의 기입요구를 거쳐 외부메모리 디바이스(2)에 데이터를 기입한다. 제 1단계째의 기입요구는 제 1 실시예와 마찬가지의 기입이고, 마스터 디바이스(4∼6)는 대응하는 버스의 로컬 컨트롤러의 제어소스, 기입할 데이터를 로컬버퍼(13∼15)를 통해 듀얼포트 메모리(26)에 기입한다. 제 2단계째는 듀얼포트 메모리(26)로부터 외부메모리 디바이스(2)로의 기입요구이고, 메모리 컨트롤러(3)에 대하여 로컬 컨트롤러(17∼19)가 기입을 요구한다.
제 3 실시예에서 메모리 컨트롤러(3)는 마스터 디바이스(4∼6)로부터 외부메모리 디바이스(2)로부터의 데이터 판독이 요구되면 듀얼포트 메모리(26)의 판독기입 포트의 취득 요구를 발행하고, 취득된 단계에서 외부메모리 디바이스(2)에 대하여 판독커맨드를 발행한다. 이에 따라 외부메모리 디바이스(2)로부터 듀얼포트 메모리(26)로 데이터를 판독하게 한다. 메모리 컨트롤러(3)는 데이터 판독이 완료되는 것을 기다려, 듀얼포트 메모리(26)에 필요한 데이터가 판독된 단계에서 로컬 컨트롤러(17∼19)에 대하여 판독응답신호를 되돌린다. 또 메모리 컨트롤러(3)는 마스터 디바이스(4∼6)로부터 데이터 기입이 요구되고, 외부메모리 디바이스(2)에 기입할 데이터가 듀얼포트 메모리(26)에 축적되면 데이터가 축적한 단계에서 외부메모리 디바이스(2)에 대하여 기입커맨드를 발행한다. 이에 따라 듀얼포트 메모리(26)로부터 외부메모리 디바이스(2)로의 데이터 기입이 행해진다.
제 3 실시예에서 로컬 컨트롤러(17∼19)는 판독요구가 이루어진 후 외부메모리 디바이스(2)로부터 판독된 데이터가 듀얼포트 메모리(26)에 저장된 단계에서 듀얼포트 메모리(26)에 저장된 데이터를 로컬버퍼(13∼15)에 출력한다.
기입요구가 이루어지면 기입할 데이터가 로컬버퍼(13∼15)에 저장된 단계에서 듀얼포트 메모리(26)의 판독기입 포트의 취득요구를 발행하고, 판독기입 포트가 취득된 단계에서 로컬버퍼(13∼15)로부터 듀얼포트 메모리(26)로 데이터를 기입한다.
이상과 같이 본 실시예에 의하면 듀얼포트 메모리의 한쪽 포트를 메모리 디바이스와 접속하고, 다른쪽 포트를 상기 복수의 버퍼에 접속함으로써 메모리 디바이스와 내부메모리 사이의 데이터 전송에서의 비동기제어를 실현할 수 있고, 외부메모리 디바이스(2)와 데이터 처리장치를 각각 고유의 동작주파수로 동작시킬 수 있다. 이에 따라 외부메모리 디바이스(2)를 동작주파수가 다른 메모리 디바이스로 변경하였다고 해도 외부메모리 디바이스(2)와 장치 내부 사이의 데이터 전송은 변경전과 마찬가지로 행하면 된다.
또 내부메모리(온칩 메모리)가 증설된 경우라도 외부의 메모리 디바이스와, 증설된 내부메모리의 데이터 전송은 외부메모리 디바이스와 기존의 내부메모리와의 데이터 전송과 마찬가지로 실현하면 된다. 외부메모리 디바이스(2)의 변경 뿐만아니라 내부메모리의 증설도 용이하게 할 수 있으므로 메모리 아키텍처를 설계하는 데에 있어서의 자유도가 높아진다는 효과가 있다.
(제 4 실시예)
제 4 실시예는 듀얼포트 메모리(100)를 통해 마스터 디바이스와 외부메모리 디바이스(2) 사이의 데이터 전송을 엔트리 컨트롤러(113)에 통합관리시키는 경우의 개량에 관한 것이다. 도 15는 제 4 실시예에 관한 데이터 처리장치의 구성을 도시한 도면이다. 본 도면에 도시된 바와 같이 데이터 처리장치는 듀얼포트 메모리(100) (데이터 유니트(101), 태그 유니트(102)), 마스터 디바이스(103∼105), 로컬버퍼(106∼108), 로컬 컨트롤러(109∼111), 아비터(112), 엔트리 컨트롤러(113), 판독요구 큐(114), 기입요구 큐(115), 메모리 컨트롤러(116), 판독대기 큐(117), 판독응답 큐(118), 판독응답 큐(119), 판독응답 큐(120), 어드레스 선택회로(121), 어드레스 선택회로(122)로 이루어진다.
듀얼포트 메모리(100)는 데이터 유니트(101)와, 태그 유니트(102)로 이루어진다. 데이터 유니트(101)는 2개의 뱅크영역(101a, 101b)으로 이루어지고, 각 뱅크영역(1O1a, 101b)은 16바이트의 엔트리영역을 512개 배치하여 이루어진다. 이 엔트리영역 중에는 외부메모리 디바이스(2)-마스터 디바이스(103, 104, 105) 사이의 입출력버퍼에 할당되어 있는 것(FIFO영역이라고 하고, 듀얼포트 메모리(1OO)에서 합계 24개 존재함)과, 마스터 디바이스가 작업영역으로서 이용할 수 있는 것이 있다. 각 엔트리영역에는 엔트리 어드레스 Entr_Addr가 부여되어 있고, 각 엔트리영역은 이 엔트리 어드레스 Entr_Addr를 이용함으로써 액세스된다(2개의 뱅크영역에 존재하는 엔트리영역은 공통의 엔트리 어드레스 Entr_Addr를 이용하여 액세스됨). 또 24개의 FIFO영역 중 8개의 FIFO영역은 외부메모리 디바이스(2)로부터의 판독용, 16개의 FIFO영역은 외부메모리 디바이스(2)로의 기입용으로 할당되어 있다. 각 엔트리영역은 1바이트의 메모리 셀을 16개 포함하고 있고, 합계 16바이트의 데이터를 저장할 수 있다.
태그 유니트(102)도 512개의 엔트리로 이루어지고, 각 엔트리는 데이터 유니트(101)의 각 엔트리영역과 1 대 1로 대응되어 있다. 태그 유니트(102)의 각 엔트리에는 외부메모리 디바이스(2)에서의 외부어드레스 Ext_Addr(판독장소 어드레스 또는 기입장소 어드레스)와, 그 외부어드레스 Ext_Addr에 대한 액세스를 요구한 마스터 디바이스(103)에 대한 식별정보가 저장되어 있다. 태그 유니트(102)의 각 엔트리에는 1 대 1로 대응하는 데이터 유니트(1O1)의 엔트리영역과 동일한 엔트리 어드레스 Entr_Addr가 부여되어 있고, 외부메모리 디바이스(2)와 듀얼포트 메모리(100) 사이의 데이터 전송을 할 때의 듀얼포트 메모리(100)의 액세스장소의 지정은 이 엔트리 어드레스 Entr_Addr를 이용함으로써 행해진다.
마스터 디바이스(103, 104, 105)는 액세스 커맨드를 발행한다. 이 액세스 커맨드는 외부메모리 디바이스(2)로부터 마스터 디바이스(103, 104, 105)로의 데이터 판독 또는 마스터 디바이스(103, 104, 105)로부터 외부메모리 디바이스(2)로의 데이터 기입을 요구하는 것이며, 이들의 데이터 판독 또는 데이터 기입은 듀얼포트 메모리(100)에서의 FIFO영역과 외부메모리 디바이스(2) 사이의 데이터 전송과, 듀얼포트 메모리(100)에서의 FIFO영역과 마스터 디바이스(103, 104, 105) 사이의 데이터 전송에 의해 실현된다. 이들의 데이터 판독 또는 데이터 기입은 어느 것이나 듀얼포트 메모리(1OO)에서의 FIFO영역을 중계점으로 하고 있으므로 마스터 디바이스(103, 104, 105)는 듀얼포트 메모리(100) 내에 빈 FIFO영역이 존재하는 것이 분명한 경우만 액세스 커맨드를 발행한다. 듀얼포트 메모리(1OO)에서의 빈 FIFO영역의 유무에 대해서는 엔트리 컨트롤러(113)에 의해 발해지는 사용상황 정보에 표시되어 있으므로 마스터 디바이스(103, 104, 105)는 엔트리 컨트롤러(113)에 의해 발해지는 사용상황 정보를 감시하여 듀얼포트 메모리(100) 내에 빈 FIFO영역이 존재하는 경우만 액세스 커맨드를 발행한다. 이 사용상황 정보에 빈 FIFO영역이 존재하지 않는 취지가 표시되어 있는 경우, 마스터 디바이스(1O3, 104, 105)는 빈 FIFO영역이 나타나는 것을 기다려, 빈 FIFO영역이 듀얼포트 메모리(100)에 나타나고 나서 액세스 커맨드를 발행한다.
로컬버퍼(106, 107, 108)는 각 마스터 디바이스에 대응된 버퍼이고, 외부메모리 디바이스(2)로부터 판독할 데이터 rdata의 입출력과, 외부메모리 디바이스(2)에 기입할 데이터 wdata의 입출력에 이용된다. 이 버퍼를 이용함으로써 듀얼포트 메모리(100)로의 버스폭 16바이트와 마스터 디바이스(103, 104, 105)의 버스폭의 차이를 흡수할 수 있다. 또한 이 버퍼를 더블버퍼로 하고, 마스터 디바이스(103, 104, 105)의 액세스와 듀얼포트 메모리(100)의 액세스를 병렬처리 가능하게 함으로써 데이터 전송의 고속화를 도모할 수 있다. 그러므로 예를 들면 일부의 마스터 디바이스가 높은 전송속도의 데이터 전송을 요구하였다고 해도 그와 같은 전송속도를 만족하는 데이터 입출력을 행할 수 있다.
로컬 컨트롤러(109, 110, 111)는 마스터 디바이스(103, 104, 105)의 각각에 대응되어 있고, 마스터 디바이스(103, 104, 105)에 대한 로컬버퍼(106, 107, 108)와, 듀얼포트 메모리(100)에서의 FIFO영역 사이에서 외부메모리 디바이스(2)에 기입할 데이터 wdata, 또는 외부메모리 디바이스(2)로부터 판독된 데이터 rdata에 대한 데이터 전송을 행한다.
외부메모리 디바이스(2)로의 데이터 기입을 행하는 경우에 대한 상세한 것은 이하와 같다. 즉 마스터 디바이스(103, 104, 105)에 의해 감시되어 있는 사용상황 정보에는 듀얼포트 메모리(1OO)에서의 빈 FIFO영역에 대한 엔트리 어드레스 Entr_Addr가 표시되어 있으므로 로컬 컨트롤러(109, 110, 111)는 이 사용상황 정보를 참조하여 빈 FIFO영역의 소재를 특정함으로써 외부메모리 디바이스(2)에 기입할 데이터 wdata를 일단 FIFO영역에 저장시킨다.
외부메모리 디바이스(2)로부터의 데이터 판독을 행하는 경우에 대한 상세한 것은 이하와 같다. 즉 외부메모리 디바이스(2)로부터 듀얼포트 메모리(100)로 전송된 데이터를 로컬버퍼(106, 107, 108)까지 판독하려면 듀얼포트 메모리(1OO) 중 어떤 FIFO영역에 해당 데이터가 판독되었는지를 로컬 컨트롤러(109, 110, 111)가 알아야 한다. 그와 같은 어드레스, 즉 판독장소 어드레스는 메모리 컨트롤러(116)로부터 발해지는 판독완료통지에 포함되어 있고, 그 판독완료통지는 메모리 컨트롤러(116)에 의해 발행되고, 판독대기 큐(117)를 통해 판독응답 큐(118, 119, 120)에 저장된다. 로컬 컨트롤러(109, 110, 111)는 이 판독완료 통지로부터 엔트리 어드레스 Entr_Addr를 인출함으로써 외부메모리 디바이스(2)로부터 판독된 데이터 rdata가 듀얼포트 메모리(100)에 있어서 어디에 저장되어 있는지를 알 수 있다. 그렇게 하여 외부메모리 디바이스(2)로부터 판독된 데이터 rdata의 소재를 알면 마스터 디바이스(103, 104, 105)의 각각에 대응하는 로컬버퍼(106, 107, 108)와, 판독완료통지에 포함되는 엔트리 어드레스 Entr_Addr에 대응하는 FIFO영역 사이에서 외부메모리 디바이스(2)로부터 판독된 데이터 rdata의 데이터 전송을 행함으로써 마스터 디바이스(103, 104, 105)로 데이터를 인도할 수 있다.
아비터(112)는 마스터 디바이스(103, 104, 105) 사이에서 듀얼포트 메모리(100)에 대한 이용조정을 행한다. 아비터(112)가 이러한 조정을 하는 것은 이하의 이유에 의한다. 즉 외부메모리 디바이스(2)로부터 마스터 디바이스로의 데이터 판독 및 마스터 디바이스로부터 외부메모리 디바이스(2)로의 데이터 기입이 어느 것이나 듀얼포트 메모리(100)를 중계점으로 하여 행해지는 것은 상술한 바와 같다. 그렇게 하면 듀얼포트 메모리(100)와, 로컬버퍼(106, 107, 108) 사이는 가장 데이터 전송이 집중된다. 따라서 본 실시예에서는 각 마스터 디바이스가 듀얼포트 메모리(100)를 이용함에 있어서 어떤 마스터 디바이스에 듀얼포트 메모리(100)의 이용을 허가시킬 것인지의 결정권을 아비터(112)에 주고 있고, 복수의 마스터 디바이스로부터 액세스 커맨드가 발해지는 경우, 아비터(112)는 그들 복수의 마스터 디바이스 중 어느 하나의 마스터 디바이스(103, 104, 105)에 대하여 듀얼포트 메모리(100)를 통한 데이터 전송을 허가하고, 그 밖의 마스터 디바이스(103, 104, 105)에 대하여 듀얼포트 메모리(100)를 통한 데이터 전송을 허가하지 않는다. 이로 인하여 1개의 듀얼포트 메모리(100)를 통한 데이터 전송이 효율적으로 행해지게 된다.
엔트리 컨트롤러(113)는 FIFO영역 중 데이터 저장에 이미 사용되고 있는 것(사용중인 것), 데이터 저장에 사용되고 있지 않은 것(미사용인 것)을 개별로 나타내는 비트열(현재상태 비트열)을 갖고 있고, 현재상태 비트열에서의 모든 비트가 온 “1 ”로 설정되어 있으면 빈 FIFO영역이 존재하지 않는다는 취지의 사용상황 정보를 각 마스터 디바이스에 통지한다. 그와 더불어, 비트열에서 어느 하나의 비트가 오프 “0 ”으로 설정되어 있으면, 그 비트에 대응하는 엔트리 어드레스 Entr_Addr를 사용상황 정보로서 각 마스터 디바이스에 통지한다. 도 16은 현재상태 비트열의 일례를 도시한 도면이다. 본 도면에서 현재상태 비트열은 32비트 데이터의 비트열이고, 본 현재상태 비트열에서의 0∼5비트째는 엔트리 어드레스 Entr_Addr00∼엔트리 어드레스 Entr_Addr05에 대응하고 있고, 6∼31비트째는 엔트리 어드레스 Entr_Addr06∼엔트리 어드레스 Entr_Addr31에 대응하고 있다. 이 엔트리 어드레스 Entr_AddrOO∼엔트리 어드레스 Entr_Addr05에 대응하는 0∼5비트째가, 도 16에서는 모두 온 “1 ”로 설정되어 있으므로 엔트리 어드레스 Entr_AddrO0∼엔트리 어드레스 Entr_Addr05의 FIF0영역이 사용중이다. 이 엔트리 어드레스 Entr_Addr06∼엔트리 어드레스 Entr_Addr31에 대응하는 6∼31비트째가 도 16에서는 모두 오프 “0 ”으로 설정되어 있으므로 엔트리 어드레스 Entr_Addr06∼엔트리 어드레스 Entr_Addr31의 FIFO영역이 미사용이다. 이와 같이 도 16의 일례에서는 엔트리 어드레스 Entr_Addr06∼엔트리 어드레스 Entr_Addr31의 엔트리영역이 미사용인 것으로 표시되어 있으므로 엔트리 컨트롤러(113)는 현재상태 비트열에 표시되는 빈 엔트리 어드레스 중 가장 먼저의 것(본 도면의 일례에서는 엔트리 어드레스 Entr_Addr06)을 사용상황 정보로서 각 마스터 디바이스에 통지한다.
미사용의 FIFO영역을 마스터 디바이스(103)에 할당하는 처리의 상세한 것은 이하와 같다. 출력된 사용상황 정보를 마스터 디바이스(103)가 참조하여, 마스터 디바이스(103)가 액세스 커맨드의 발행을 행한 것으로 한다. 그렇게 하여 액세스 커맨드의 발행을 행한 마스터 디바이스(103)에 대하여, 듀얼포트 메모리(100)를 통한 데이터 전송이 아비터(112)에 의해 허가되면 엔트리 컨트롤러(113)는 엔트리 어드레스 Entr_Addr를 전송장소 또는 전송소스로 한 데이터 전송을 행하게 하도록, 이 엔트리 어드레스 Entr_Addr를 포함하는 요구데이터(판독요구, 기입요구의 종별이 있음)를 판독요구 큐(114), 기입요구 큐(115)에 저장한다. 여기에서 본 실시예에서의 요구데이터가 어떠한 양식이고, 이것을 이용한 데이터 전송이 어떻게 행해지는지에 대하여 설명하기로 한다. 본 실시예에서의 요구데이터(판독요구, 기입요구가 있음)가 액세스 커맨드와 다른 것은 듀얼포트 메모리(10O)에서의 엔트리 어드레스 Entr_Addr를 포함하고 있는 점이다. 상술한 바와 같이 이 엔트리 어드레스 Entr_Addr로 지시되는 태그영역에는 외부메모리 디바이스(2)에 있어서 액세스장소가 되는 외부 어드레스 Ext_Addr가 저장되어 있으므로 메모리 컨트롤러(116)는 요구데이터에 포함되는 엔트리 어드레스 Entr_Addr와, 그 엔트리 어드레스가 나타내는 태그영역에 저장되어 있는 외부 어드레스 사이에서 데이터 전송을 행함으로서 외부메모리 디바이스(2)로부터 듀얼포트 메모리(100)로의 데이터 판독 또는 듀얼포트 메모리(100)로부터 외부메모리 디바이스(2)로의 데이터 기입을 실현한다.
요구데이터는 엔트리 컨트롤러(113)로 작성되어 발행되지만, 그들은 발행된 순서에 따라 판독요구, 기입요구로 분류되어 판독요구 큐(114), 기입요구 큐(115)에 복수 저장된다.
요구데이터를 메모리 컨트롤러(116)에 발행하면 엔트리 컨트롤러(113)는 현재상태 비트열에서, 통지된 엔트리영역에 할당된 비트를 사용중으로 설정한다. 한편 통지되어 있는 엔트리 어드레스 Entr_Addr에 의해 특정되는 태그영역에 마스터 디바이스(103)로부터 발행된 외부 어드레스 Ext_Addr를 저장시킨다. 이상의 처리에 의해 마스터 디바이스(103)에 할당된 FIFO영역이 듀얼포트 메모리(100)로부터 판독된 데이터의 저장용, 외부메모리 디바이스(2)에 기입할 데이터 wdata의 저장용으로 할당된다.
FIFO영역을 미사용으로 개방하는 처리의 상세한 것은 이하와 같다. 예를 들면 판독요구의 발행후, 외부메모리 디바이스(2)로부터 FIFO영역으로 데이터가 판독되면 엔트리 컨트롤러(113)는 FIFO영역에서의 데이터가 듀얼포트 메모리(100)로부터 마스터 디바이스로 전송되는 것을 기다린다. 이러한 전송이 행해지면 그 FIFO영역에 해당 데이터를 저장해 둘 필요가 없으므로 엔트리 컨트롤러(113)는 현재상태 비트열에서 그 FIFO영역에 대응하는 비트를 사용중으로부터 미사용으로 변경한다.
기입요구의 발행 후, 마스터 디바이스(103)로부터 FIFO영역에 데이터를 기입하면 엔트리 컨트롤러(113)는 FIFO영역에서의 데이터가 듀얼포트 메모리(100)로부터 외부메모리 디바이스(2)로 전송되는 것을 기다려, 이러한 전송이 행해지면 엔트리 컨트롤러(113)는 현재상태 비트열에서 그 FIFO영역에 대응하는 비트를 사용중으로부터 미사용으로 변경한다. 이상과 같이 현재상태 비트열에서의 각 비트를 갱신함으로써 각 FIFO영역의 사용상황이 실시간에 현재상태 비트로 반영된다.
또 상술한 바와 같이 복수의 FIFO영역은 판독용, 기입용으로 각각 할당되어 있으므로 마스터 디바이스(103)에 빈 영역을 할당함에 있어서, 엔트리 컨트롤러(113)는 액세스 커맨드가 외부메모리 디바이스(2)로부터의 판독을 요구하는 것인지, 외부메모리 디바이스(2)로의 기입을 요구하는 것인지를 고려한 FIFO영역의 할당을 행한다.
외부메모리 디바이스(2)로부터의 데이터 판독을 요구하는 취지의 액세스 커맨드를 마스터 디바이스가 발행한 경우, 엔트리 컨트롤러(113)는 데이터 판독용으로 할당된 FIFO영역으로부터 해당 데이터 전송에 있어서 입출력에 이용할 FIFO영역을 선택하여 그 엔트리 어드레스 Entr_Addr를 마스터 디바이스에 출력한다. 또 외부메모리 디바이스(2)로의 데이터 기입을 요구하는 취지의 액세스 커맨드를 마스터 디바이스가 발행한 경우, 데이터 기입용으로 할당된 FIFO영역으로부터 해당 데이터 전송에 있어서 입출력에 이용할 FIFO영역을 선택하여 그 엔트리 어드레스 Entr_Addr를 마스터 디바이스에 출력한다.
이와 같이 FIFO영역을 외부메모리 디바이스(2)로부터의 데이터 판독용, 외부메모리 디바이스(2)로의 데이터 기입용으로 나눔으로써 외부메모리 디바이스(2)로부터의 데이터 판독 및 외부메모리 디바이스(2)로의 데이터 기입 중 어느 한쪽이 집중된 경우에도 다른쪽 처리가 지연되는 것을 방지할 수 있다.
메모리 컨트롤러(116)는 판독요구 큐(114), 기입요구 큐(115)에 저장된 복수의 요구데이터를 하나씩 인출하여 듀얼포트 메모리(100)-외부메모리 디바이스(2)사이의 데이터 전송을 행한다. 외부메모리 디바이스(2)-듀얼포트 메모리(100) 사이의 데이터 전송이 외부메모리 디바이스(2)로부터의 데이터 판독인 경우, 메모리 컨트롤러(116)는 요구데이터를 판독대기 큐(117)에 저장한다. 그리고 메모리 컨트롤러(116)는 외부메모리 디바이스(2)로부터 판독데이터가 출력되는 것을 기다려, 리드데이터가 출력되고, 그것을 듀얼포트 메모리(100)의 데이터 유니트(101)에 저장하면 판독대기 큐(117)에 저장되어 있는 요구데이터를 판독응답 큐(118, 119, 120)에 출력한다.
판독응답 큐(118, 119, 120)는 판독대기 큐(117)로부터 출력되는 요구데이터 중 각 마스터 디바이스에 대응하는 것을 각 마스터 디바이스마다 저장한다. 각 마스터 디바이스마다의 요구데이터가 각 판독응답 큐(118, 119, 120)에 저장되면 로컬 컨트롤러(109, 110, 111)는 함부로 판독커맨드를 발행함으로써, 요구한 외부메모리 디바이스(2)-듀얼포트 메모리(100) 사이의 데이터 판독이 이미 완료되어 있는 것을 알 수 있다. 이렇게 해서 전송완료를 알게 된 로컬 컨트롤러(109, 110, 111)가 듀얼포트 메모리(100)로부터 마스터 디바이스(103, 104, 105)로의 데이터 판독을 요구하는 취지의 판독커맨드를 발행하고, 상술한 바와 같은 듀얼포트 메모리(100), 로컬버퍼(106, 107, 108) 사이의 데이터 전송을 행하면, 듀얼포트 메모리(100)에 저장되어 있는 데이터가 차례로 각 마스터 디바이스로 인도된다.
어드레스 선택회로(121)는 액세스 커맨드에 있어서 액세스장소로서 마스터 디바이스(103, 104, 105)로부터 발행되는 외부 어드레스 Ext_Addr를 선택적으로 출력한다. 아비터(112)에 의해 요구가 허가된 마스터 디바이스(103)가 외부메모리 디바이스(2)-듀얼포트 메모리(100) 사이의 데이터 전송을 요구하고 있는 경우, 어드레스 선택회로(121)는 해당 마스터 디바이스(103)에 의해 출력되는 외부 어드레스 Ext_Addr를 태그영역에 저장시키도록 마스터 디바이스(103)에 의해 출력된 외부 어드레스 Ext_Addr를 태그영역에 출력한다. 아비터(112)에 의해 요구가 허가된 마스터 디바이스(103)가 마스터 디바이스(103)-듀얼포트 메모리(100) 사이의 데이터 전송을 요구하고 있는 경우, 데이터 유니트(101)-마스터 디바이스 사이의 데이터 전송을 행하게 하기 위해 마스터 디바이스로부터 출력된 엔트리 어드레스 Entr_Addr를 데이터 유니트(101)에 출력한다.
어드레스 선택회로(122)는 듀얼포트 메모리(100)-외부메모리 디바이스(2)사이의 데이터 전송을 행하는 경우는 엔트리 컨트롤러(113)로부터 출력되는 엔트리 어드레스 Entr_Addr를 데이터 유니트(101), 태그 유니트(102)에 출력한다. 한편 듀얼포트 메모리(100)-마스터 디바이스(103, 104, 105) 사이의 데이터 전송을 행하는 경우는 어드레스 선택회로(121)를 통해 마스터 디바이스(103, 104, 105)로부터 출력되는 엔트리 어드레스 Entr_Addr를 듀얼포트 메모리(1OO)의 데이터 유니트(1O1)에 출력한다.
이상과 같이 본 실시예에 의하면, 듀얼포트 메모리(100)를 통해 마스터 디바이스(103)-외부메모리 디바이스(2) 사이의 데이터 전송을 행할 수 있다.
(제 5 실시예)
제 5 실시예에서는 외부메모리 디바이스(2)와 마스터 디바이스(103) 사이의 입출력에 이용되고 있던 듀얼포트 메모리(100)를 마스터 디바이스(103, 104, 105)의 작업영역으로서 이용시키는 경우의 개량에 관한 것이다. 도 17은 제 5 실시예에 관한 데이터 처리장치를 도시한 도면이다.
듀얼포트 메모리(100)를 작업영역으로서 이용하기 위해 제 5 실시예에 관한 마스터 디바이스(103, 104, 105)는 작업영역으로서 이용되는 엔트리 영역표(123, 124, 125)를 보유하고 있다. 구체적으로는, 본 표는 작업영역에 대한 엔트리 어드레스 Entr_Addr와 그 작업영역이 할당된 마스터 디바이스의 식별정보 Id를 대응시키고 있다.
또 제 4 실시예에서의 액세스 커맨드는 외부메모리 디바이스(2)로부터의 데이터 판독 또는 외부메모리 디바이스(2)로의 데이터 기입을 요구하는 것이었지만, 제 5 실시예에서의 액세스 커맨드는 듀얼포트 메모리(100)로부터 마스터 디바이스(103)로의 데이터 판독 또는 마스터 디바이스(103)로부터 듀얼포트 메모리(100)로의 데이터 기입을 요구하는 커맨드, 즉 듀얼포트 메모리(100)에 대한 데이터 판독 또는 데이터 기입을 요구하는 커맨드이고, 제 5 실시예에 관한 마스터 디바이스(103)는 이러한 듀얼포트 메모리(100)에 대한 액세스 커맨드를 아비터(112)에 대하여 발행한다. 그 때문에 도 17에서는 각 마스터 디바이스로부터는 엔트리 어드레스 Entr_Addr가 발행되는 것으로 기재되어 있다.
제 5 실시예에 관한 아비터(112)는 마스터 디바이스(103, 104, 105)에 의해 듀얼포트 메모리(100)에 대한 액세스를 요구하는 액세스 커맨드가 발행되면, 제 4 실시예와 마찬가지로 듀얼포트 메모리(100)를 통한 데이터 전송을 해당 마스터 디바이스(103)에 대하여 허가할 것인지의 여부를 판정한다.
제 5 실시예에 관한 로컬 컨트롤러(109, 110, 111)는 마스터 디바이스(103)에 의해 듀얼포트 메모리(100)에 대한 액세스 커맨드가 발행되고, 듀얼포트 메모리(100)를 통한 데이터 전송이 아비터(112)에 의해 허가되면, 해당 액세스 커맨드에 의해 지시된 엔트리영역과, 마스터 디바이스(103) 사이의 데이터 전송을 행한다. 이에 따라 마스터 디바이스(103)로부터 엔트리영역으로의 데이터 기입 또는 엔트리영역으로부터 마스터 디바이스(103)로의 데이터 판독이 실현된다.
예를 들면, 어떤 마스터 디바이스(103)가 자신의 장치에 할당된 엔트리영역 x에 대하여 소정의 데이터를 기입하는 취지의 액세스 커맨드를 발행하고, 다른 마스터 디바이스(104)가 그 엔트리영역 x에 기입된 데이터를 판독하는 취지의 액세스 커맨드를 발행하였다고 한다. 이와 같이 2개의 마스터 디바이스(103, 104)가 엔트리영역에 대한 데이터 기입, 데이터 판독을 행하면 마스터 디바이스(103, 104)는 엔트리영역 x를 통해 데이터를 주고받을 수 있다.
이상과 같이 본 실시예에 의하면, 마스터 디바이스와 듀얼포트 메모리(100) 사이의 데이터 판독, 데이터 기입을 행함으로써 마스터 디바이스(103, 104) 사이의 데이터 수수(授受)가 가능해져 마스터 디바이스끼리의 제휴작업이 추진된다.
(제 6 실시예)
외부메모리 디바이스(2)-듀얼포트 메모리(100) 사이의 DMA 전송을 각 마스터 디바이스가 자유롭게 실행할 수 있도록 한 개량에 관한 것이다. 제 6 실시예에 관한 데이터 처리장치의 구성을 도 18에 도시한다.
도 18에서 데이터 처리장치에는 DMA 컨트롤러(126)가 구비되어 있고, 제 5 실시예에 있어서, 마스터 디바이스(103, 104, 105)는 외부메모리 디바이스(2)-듀얼포트 메모리(100) 사이의 DMA 전송을 행하는 취지의 DMA 커맨드를 DMA 컨트롤러에 출력하고, DMA 커맨드와 함께 DMA 어드레스를 DMA 컨트롤러(126)에 발행한다. 여기에서 DMA 어드레스는 전송소스 및 전송장소가 되는 엔트리 어드레스 Entr_Addr, 외부 어드레스 Ext_Addr를 나타낸다. DMA 컨트롤러는 DMA 전송을 요구하는 액세스 커맨드(DMA 커맨드라 함)가 발행되면 이 액세스 커맨드에 있어서, 전송소스 및 전송장소로서 지정되어 있는 엔트리 어드레스 Entr_Addr, 외부 어드레스 Ext_Addr를 유지하는 것과 아울러, 다른 액세스 커맨드의 경우와 마찬가지로 DMA 커맨드에서의 데이터 전송의 허가를 아비터(112)에게 요구한다. 듀얼포트 메모리(100)에 대한 액세스가 아비터(112)에 허가되면, 액세스 커맨드로 지정된 엔트리 어드레스 Entr_Addr에 대응하는 태그영역에 액세스 커맨드로써 지정된 외부 어드레스 Ext_Addr를 저장시키고, 또 해당 엔트리 어드레스 Entr_Addr를 전송방향에 맞추어 판독요구 큐(114) 혹은 기입요구 큐(115)에 저장함으로써 엔트리 어드레스 Entr_Addr에 의해 지시된 엔트리영역과, 외부 어드레스 Ext_Addr에 의해 표시되는 외부영역 사이의 데이터 전송을 메모리 컨트롤러(116)에 행하게 한다.
메모리 컨트롤러(116)는 제 4 실시예와 마찬가지로 외부메모리 디바이스(2)와 듀얼포트 메모리(100) 사이의 데이터 전송을 행한다. 이러한 데이터 전송이 행해지면 메모리 컨트롤러(116)는 요구된 데이터 전송이 완료되었다는 취지의 통지 DMA_done을 각 마스터 디바이스에 출력하고, DMA 커맨드가 수행된 것을 마스터 디바이스(103)에 알린다.
이상과 같이 본 실시예에 의하면, 마스터 디바이스(103)는 마스터 디바이스(103)-외부메모리 디바이스(2) 사이의 데이터 전송과 마찬가지로 외부메모리 디바이스(2)-듀얼포트 메모리(1OO) 사이의 데이터 전송을 DMA 컨트롤러에게 명할 수 있으므로 외부메모리 디바이스(2)로부터 판독할 데이터를 선행적으로 듀얼포트 메모리(100)에 저장해 둘 수 있어, 마스터 디바이스(103)의 외부메모리로부터의 데이터 판독을 고속으로 행할 수 있다.
(제 7 실시예)
제 7 실시예는 어떤 마스터 디바이스(103)에 대한 듀얼포트 메모리(100)의 이용허가를 조정시킬 수 있는 아비터(112)를 제공하는 개량에 관한 것이다. 제 7 실시예에 관한 아비터(112)의 구성을 도 19에 도시한다. 도 19에 도시된 바와 같이 아비터(112)는 링 레지스터(131), 시프트 제어부(132), 조정부(133), 저장제어부(134)로 이루어진다.
링 레지스터(131)는 링형상으로 접속되어 있는 n개의 레지스터로 이루어지고, 각 레지스터에는 각 마스터 디바이스에 대한 식별정보가 저장되어 있다.
시프트 제어부(132)는 n사이클에 있어서, n개의 레지스터에 저장되어 있는 n 개의 식별정보의 각각을 현재정보로서 특정하도록, n개의 레지스터의 각각에 저장되어 있는 식별정보를 순회 시프트시킨다.
조정부(133)는 n사이클 중 마스터 디바이스 x에 대한 식별정보가 현재정보로서 특정되어 있는 사이클에 있어서, 해당 마스터 디바이스 x에 의해 액세스 커맨드가 발행된 경우, 해당 마스터 디바이스 x에 대하여 듀얼포트 메모리(100) 내의 엔트리영역을 통한 데이터 전송을 허가한다.
한편 조정부(133)는 마스터 디바이스 x에 대한 식별정보 x가 현재정보이고, 마스터 디바이스 x가 현재로서 특정되어 있는 사이클에 있어서, 해당 마스터 디바이스 x가 액세스 커맨드를 발행하지 않은 경우는 마스터 디바이스 x보다 우선순위가 낮은 마스터 디바이스 중 우선순위가 가장 높은 것으로서, 액세스 커맨드를 발행한 것에 대하여 데이터 전송을 허가한다.
또 마스터 디바이스 x가 액세스 커맨드를 발행하지 않고, 마스터 디바이스 x보다 우선순위가 낮은 마스터 디바이스도 액세스 커맨드를 발행하지 않은 경우, 마스터 디바이스 x보다 우선순위가 높은 마스터 디바이스 중 우선순위가 가장 높은 것으로서, 액세스 커맨드를 발행한 것에 대하여 데이터 전송을 허가한다.
예를 들면 현재가 우선순위 = 3인 마스터 디바이스 x인 경우, 우선순위 = 3인 마스터 디바이스 x가 액세스 커맨드를 발하면, 이 마스터 디바이스 x에 대한 듀얼포트 메모리(100)를 통한 데이터 전송을 허가한다. 한편 이 마스터 디바이스 x가 액세스 커맨드를 발하지 않았지만 우선순위 = 4, 5, 6, 7 등의 우선순위 = 3보다 우선순위가 낮은 마스터 디바이스가 액세스 커맨드를 발하고 있는 경우, 이들의 마스터 디바이스 중 가장 우선순위가 높은 마스터 디바이스(이 경우라면 우선순위 = 4의 마스터 디바이스가 됨)에 대하여 듀얼포트 메모리(100)를 통한 데이터 전송을 허가한다. 또 해당 마스터 디바이스 x 및 마스터 디바이스 x보다 우선순위가 낮은 마스터 디바이스는 액세스 커맨드를 발행하지 않았지만 우선순위 = 1, 2 등의 우선순위 = 3보다 우선순위가 높은 마스터 디바이스가 액세스 커맨드를 발행하고 있는 경우, 이들의 마스터 디바이스 중 우선순위가 가장 높은 마스터 디바이스(이 경우라면 우선순위 = 1의 마스터 디바이스가 됨)에 듀얼포트 메모리(100)를 통한 데이터 전송을 허가한다.
저장제어부(134)는 복수 마스터 디바이스 중 특정한 마스터 디바이스(마스터 디바이스 x라 함)에 대한 데이터 전송을, n회에 대하여 m회(n>m)의 비율로 허가시키고 싶은 경우, 도 20에 도시된 바와 같이 상기 n개의 레지스터 중 m개의 레지스터에 마스터 디바이스 x에 대한 식별정보 x를 저장시킨다. 여기에서 식별정보 x는 n개의 레지스터 중 m개의 것에 저장되어 있고, 식별정보 x는 n사이클 중 m사이클에 있어서 현재정보로서 특정되므로 마스터 디바이스 x에 의한 듀얼포트 메모리(1OO)의 액세스는 n사이클당 m사이클(n>m)의 비율로 허가된다. 따라서 마스터 디바이스 x에 의한 메모리 액세스 빈도는 조정된다.
이상과 같이 본 실시예에 의하면, 어떤 마스터 디바이스에 대하여 n사이클당 m사이클(n>m)의 비율로 허가시킨다고 하는 빈도조정을 할 수 있으므로 액세스빈도를 자유롭게 설정할 수 있다. ,
또 본 실시예에 있어서, 어떤 마스터 디바이스에 대한 식별정보가 현재정보가 되면 특정한 마스터 디바이스에 대해서는 그 마스터 디바이스로부터 액세스 커맨드가 발행되는대로 듀얼포트 메모리(100)를 통한 데이터 전송을 허가해도 된다.
(제 8 실시예)
제 8 실시예는 데이터 처리장치를 복수의 미디어처리를 하는 미디어코어 프로세서로서 실시하는 경우의 실시예이다.
도 21은 제 8 실시예에서의 외부메모리 디바이스(2)의 메모리 할당을 도시한 도면이다. 본 도면에서 외부메모리 디바이스(2) 상에는, 부호화 스트림 버퍼영역(198), 화상 프레임영역(199)이 할당되어 있다.
부호화 스트림 버퍼영역(198)은 외부로부터 입력되어 온 MPEG 스트림을 복호하지 않은 채로 저장해 두기 위한 영역이다. 여기에서 MPEG 스트림이란 복수의 엘리먼트리 스트림을 포함하는 비트스트림이다. 엘리먼트리 스트림에는 동화상 스트림과 음성스트림이 있다. 동화상 스트림은 복수의 매크로블록(MB)으로 이루어진다. 동화상 스트림은 이 매크로블록을 부호화단위로 하여 화상간의 시간적 상관성에 기초하여 정보압축되어 있다. 또한 복호시에도 이 매크로블록을 복호화단위로서 프레임간 예측방식의 모션보상이 행해진다. 매크로블록은 가로 16 ×세로 16의 화소데이터로 이루어진다. 여기에서 가로 16 x 세로 16의 화소데이터는 가로 8 ×세로 8의 휘도데이터로 이루어지는 휘도블록 Y0, Y1, Y2, Y3을 갖고 있고, 가로 8 ×세로 8의 청색차 데이터로 이루어지는 청색차 블록 Cb와, 가로 8 ×세로 8의 적색차 데이터로 이루어지는 적색차 블록 Cr을 포함한다.
화상 프레임영역(199)은 동화상 스트림을 복호함으로써 얻어진 화소데이터나 정지화상 데이터, OSD 픽셀데이터가 저장되어 있다.
도 22는 제 9 실시예에 관한 데이터 처리장치에 내부구성을 도시한 도면이다. 도 22에서 마스터 디바이스는 10개 실장되어 있고, 각 마스터 디바이스는 비디오 복호처리, 오디오 복호처리, 비디오 출력처리, 컴퓨터 그래픽 묘화처리 등을 비롯한 여러가지 미디어처리를 실행한다.
각 마스터 디바이스가 미디어처리를 하는 데 있어서, 외부메모리 디바이스(2)는 MPEG 스트림의 복호처리를 비롯한 각종 처리의 작업용에 이용된다.
계속해서 미디어코어 프로세서로서의 처리를 하는 경우의 데이터 처리장치의 내부구성에 대하여 설명하기로 한다. 도 22에 도시된 바와 같이 데이터 처리장치는 스트림 유니트(201), 입출력 버퍼(202), 셋업 프로세서(203), 비트스트림 FIFO(204), VLD(205), TE(206), POUA(207), POUB(208), POUC(209), 오디오 유니트(210), IOP(211), VBM(212), 비디오 유니트(213), 호스트 유니트(214), RE(215), 필터(216)로 이루어진다. 이들의 구성요소 중 마스터 디바이스인 것에 대해서는 마스터 디바이스명(master 0, 1, 2, 3, 4·····8, 9)을 부여하여 나타낸다. 또 본 도면에서는 로컬버퍼(106), 로컬 컨트롤러(109), 판독응답 큐(118) 등을 하나의 마스터 주변회로로서 표기하고 있다. 또 데이터 처리장치의 내부구성 중 듀얼포트 메모리(100)와 마스터 디바이스 사이의 접속관계를 생략하면 데이터 처리장치의 내부구성은 도 23과 같이 나타내어진다. 본 도면에서도 알 수 있는 바와 같이, 외부메모리 디바이스(2) 및 듀얼포트 메모리(100)는 마스터 디바이스 master 0, 1, 2, 3, 4·····8, 9에 의한 액세스가 집중하게 된다. 이후 미디어코어 프로세서로서 기능하는 데이터 처리장치의 구성요소에 대하여 설명하기로 한다.
스트림 유니트(201)는 기록매체나 통신매체로부터 MPEG 스트림이 인출되고 미디어코어 프로세서에 입력되면 MPEG 스트림을 동화상 스트림, 음성 스트림으로 분리하여 입출력 버퍼(202)에 기입한다.
셋업 프로세서(Setup)(203)는 마스터 디바이스(master 7)이고, MPEG 스트림으로 다중화되어 있는 음성스트림을 복호하여, 비압축의 음성데이터를 마스터 주변회로 및 듀얼포트 메모리(100)를 통해 외부메모리 디바이스에 기입한다. 음성 스트림은 IOP(211)에 의해 차례로 비트스트림 FIFO(204)에 공급되고, 셋업(203)은 이 비트스트림 FIFO(204)로부터 음성 스트림을 인출하여 음성스트림을 복호한다.
가변부호길이 디코드부(VLD)(205)는 동화상 스트림으로부터 매크로블록 MB를 인출하여 매크로블록 MB에 포함되어 있는 4개의 휘도블록 YO, Y1, Y2, Y3과, 2개의 색차블록 Cb, Cr에 대하여 가변부호길이 디코드를 행한다. 동화상 스트림은 IOP(211)에 의해 차례로 비트스트림 FIFO(204)에 공급되고, VLD(205)는 이 비트스트림 FIFO(204)로부터 동화상 스트림을 인출하여 동화상 스트림을 복호한다.
트랜스폼 엔진부(TE)(206)는 마스터 디바이스(master 3)이고, VLD에 의해 가변부호길이 디코드가 이루어진 4개의 휘도블록 Y0, Y1, Y2, Y3과, 2개의 색차블록 Cb, Cr에 대하여 역양자화 및 역이산여현변환을 행하고, 그 결과를 마스터 주변회로 및 듀얼포트 메모리(100)를 통해 외부메모리 디바이스(2)에 기입한다.
픽셀 오퍼레이션 유니트 A(POUA)(207)는 역양자화 및 역이산여현변환이 이루어진 4개의 휘도블록 Y0, Y1, Y2, Y3과, 2개의 색차블록 Cb, Cr이 외부메모리 디바이스(2)에 기입되면 이들 4개의 휘도블록 Y0, Y1, Y2, Y3과, 2개의 색차블록 Cb, Cr을 외부메모리 디바이스(2)로부터 판독하고, 아울러 이것에 대응하는 참조화상을 외부메모리 디바이스(2)에서의 화상 프레임영역(199)으로부터 판독한다. 그 후 참조화상에 대하여 하프펠처리를 하여 그 결과를 평균화한 것에 역양자화 및 역이산 여현변환이 이루어진 4개의 휘도블록 Y0, Y1, Y2, Y3과, 2개의 색차블록 Cb, Cr을 합한다(이상의 처리를 모션보상이라 함). 그 후 모션보상의 결과를 마스터 주변회로 및 듀얼포트 메모리(100)를 통해 외부메모리 디바이스(2)의 화상 프레임영역(199)에 기입하게 한다.
또 POUA(207)는 온 스크린 디스플레이(OSD)의 묘화처리를 한다. OSD란 조작자의 지시에 따라 동화상 상에 오버레이되는 문자폰트나 컴퓨터 그래픽이고, 현재 시각을 표시하기 위한 카운터나 『재생』『정지』『녹화』등, 데이터 처리장치에 현재 행하고 있는 처리내용을 표시화면 상에 표시할 때 이용된다. POUA(207)가 행하는 것은 듀얼포트 메모리(100)와 마스터 디바이스 사이의 데이터 전송이고, 외부메모리 디바이스(2)와 듀얼포트 메모리(100) 사이의 데이터 전송은 POUC(209)에게 맡기고 있다.
픽셀 오퍼레이션 유니트 B(POUB)(208)는 화상에 대한 필터링처리를 하며, 확대·축소가공을 실시하는 마스터 디바이스(master 2)이고, 듀얼포트 메모리(100)와 마스터 디바이스 사이의 데이터 전송을 행한다. POUA(207)와 마찬가지로 외부메모리 디바이스(2)와 듀얼포트 메모리(100) 사이의 데이터 전송은 P0UC(209)에게 맡기고 있다.
픽셀 오퍼레이션 유니트 C(POUC)(209)는 제 7 실시예에 나타낸 DMA 커맨드를 출력함으로써 외부메모리 디바이스(2)와 듀얼포트 메모리(1OO) 사이의 입출력을 행하는 마스터 디바이스(master O)이다.
오디오 유니트(210)는 입출력 버퍼(202)에 저장된 음성데이터를 차례로 재생출력한다.
I/0 프로세서(I0P)(211)는 이하에 나타내는 3가지의 전송처리를 행하는 마스터 디바이스이다. 첫 번째 전송처리는 스트림 유니트(201)로부터 차례로 입력되고, 입출력 버퍼(202)에 차례로 저장되는 MPEG 스트림을 마스터 주변회로 및 듀얼포트 메모리(100)를 통해 외부메모리 디바이스(2)의 부호화 스트림 버퍼영역(198)에 기입하는 것이다. 두 번째 전송처리는 셋업(203) 및 VLD(205)에 의한 복호처리의 진척에 따라 비트스트림 FIFO(204)에 동화상 스트림, 음성 스트림을 공급하는 처리이다. 즉 I0P(211)는 비트스트림 FIFO(204)에 저장되어 있는 동화상 스트림 및 음성 스트림이 셋업(203) 및 VLD(205)에 의해 어느 정도 복호되었는지를 감시한다. 소정량만큼 복호되면 그 소정량의 MPEG 스트림을 보충하도록 외부메모리 디바이스(2)로부터 동화상 스트림 및 음성 스트림을 판독하여 비트스트림 FIFO(204)에 공급한다. 이에 따라 비트스트림 FIFO(204)의 언더플로우를 피할 수 있게 되어 셋업(203) 및 VLD(205)에 의한 복호처리는 중단하지 않고 계속하게 된다.
세 번째 전송처리는 셋업(203)의 복호처리에 의해 차례로 외부메모리 디바이스(2)에 기입된 비압축의 음성데이터를 듀얼포트 메모리(100) 및 마스터 주변회로를 통해 판독하여 I/0 버퍼(202)에 공급하는 처리이다. 이와 같이 비압축의 음성데이터가 차례로 I/0 버퍼(202)에 공급되면 그들 음성 데이터는 오디오 유니트(210)에 의해 차례로 재생출력된다.
비디오 유니트(VU)(213)는 마스터 디바이스(master 4)이고, 외부메모리 디바이스(2)의 화상 프레임영역(199)으로부터 2, 3라인분의 화소데이터를 판독하고, 비디오 버퍼 메모리(VBM)(212)에 저장하고, VBM(212)에 판독된 2, 3라인분의 화소데이터를 영상신호로 변환하여 외부에 접속된 텔레비전 수상기 등의 디스플레이장치에 출력하는 처리를 행한다.
호스트 유니트(HOST)(214)는 데이터 처리장치에 접속된 호스트 마이크로컴퓨터로부터의 지시에 따른 제어를 데이터 처리장치 내부에서 행하기 위한 마스터 디바이스(master 5)이다.
렌더링엔진(RE)(215)은 컴퓨터ㆍ그래픽에서의 렌더링처리를 행하는 마스터 디바이스(master 9)이고, 데이터 처리장치에 전용 LSI가 접속된 경우에 제어를 행한다.
필터(FILTER)(216)는 정지화상 데이터의 확대축소처리를 행한다. RE와 마찬가지로 데이터 처리장치에 전용 LSI가 접속된 경우에 제어를 행하는 마스터 디바이스(master 6)이다.
이상으로, 데이터 처리장치의 구성요소에 대한 설명을 마치고, 계속해서 미디어코어 프로세서로서의 처리를 행하는 데이터 처리장치에 있어서, 9개의 마스터 디바이스에서의 듀얼포트 메모리(100)의 액세스를 어떻게 조정할 것인지에 대하여 설명하기로 한다. 도 24는 복수의 마스터 디바이스에 대한 우선순위가 어떻게 설정되어 있는지를 도시한 도면이다. 본 도면에 의하면, 마스터 디바이스에 대한 우선순위는 순위 1 : POUA(207), 순위 2 : POUB(208), 순위 3 : TE(206), 순위 4 : VU(213), 순위 5 : 호스트 유니트, 순위 6 : 필터(216), 순위 7 : 셋업(203), 순위 8 : IOP(211), 순위 9 : RE(214) 라는 식으로 설정되어 있는 것을 알 수 있다. 이들의 우선순위는 각 마스터 디바이스에 부여된 “1 ”, “2 ”, “3 ”, “4 ”···라는 수치와 동일하다. 아비터(112)는 이들 마스터 디바이스에 부여된 우선순위를 참조하여 제 9 실시예에 나타낸 순서로 마스터 디바이스의 어느 하나에 듀얼포트 메모리(100)를 통한 데이터 전송을 허가한다.
제 7 실시예에서 설명한 바와 같이, 시프트 레지스터의 각각에 각 마스터 디바이스의 식별정보를 몇 개 저장하는가에 따라 각 마스터 디바이스가 허가되는 횟수가 조정되므로 각 레지스터에 각 마스터 디바이스의 식별정보를 저장함으로써 각 마스터 디바이스가 허가되는 횟수를 규정하고 있다.
도 24에서의 레지스터란은 22개째의 레지스터의 각각에 어떤 마스터 디바이스의 식별정보가 저장되어 있는지를 도시한다. 본 도면에서는 22개의 레지스터에 있어서, 11개의 레지스터에 POUA(207)의 식별정보 “1 ”이 저장되고, 2개의 레지스터에는 POUB(208)의 식별정보 “2 ”가, 2개의 레지스터에 TE(206)의 식별정보 “3 ”이, 2개의 레지스터에 VU(213)의 식별정보 “4 ”가 각각 저장되어 있다. 이와 같이, 11개의 레지스터에 POUA(207)의 식별정보 “1 ”이 저장되어 있으므로 POUA(207)에 대한 데이터 전송은 22사이클 중 최대 11회 허가된다. POUB(208)는 22사이클 중 최대 2회, TE는 최대 2회, VU는 최대 2회 허가된다.
따라서 각 마스터 디바이스는 이하에 나타내는 비율로, 듀얼포트 메모리(100)를 통한 듀얼포트 메모리(100)가 허가된다.
POUA:POUB:TE:VU:FILTER:SETUP:IOP:RE=11:2:2:2:1:1:1:1:1
이상과 같이 본 실시예에 의하면, 미디어처리를 하는 각 마스터 디바이스는 마스터 주변회로를 통해 듀얼포트 메모리(100)에 접속되어 있으므로 이들의 마스터 디바이스에서의 판독기입 포트의 비트폭을 바꿀 필요가 생겨도 그와 같은 변환을 용이하게 행할 수 있다.
(제 9 실시예)
듀얼포트 메모리(1OO)에 1바이트 = 9비트의 메모리 셀을 사용하는 경우의 개량에 관한 것이다. 도 25는 제 9 실시예에서의 엔트리영역의 구성을 도시한 도면이다. 본 도면에 도시된 바와 같이 제 9 실시예에 있어서 16바이트의 엔트리영역은 1바이트 = 9비트의 메모리 셀을 16개 배치하여 이루어진다. 이러한 1바이트 = 9비트의 메모리 셀을 이용하면 이하에 나타내는 바와 같은 (1)부호있음 8비트 데이터 수수와, (2)부호없음 8비트 데이터 수수를 고속으로 할 수 있다.
(1)부호있음 8비트 데이터 수수
1바이트 = 부호있음 8비트로 설정되었을 때 9비트째는 부호비트로서 이용된다. 도 26a는 1바이트 = 부호있음 8비트로 설정된 경우의 메모리 셀의 비트할당을 도시한 도면이다. 여기에서 데이터 처리장치에 존재하는 복수의 마스터 디바이스 중 한쪽의 마스터 디바이스가 MPEG 복호처리에 있어서의 역양자화 코사인변환(IDCT)을 행하는 TE(206)이고, 다른쪽 마스터 디바이스가 MPEG 복호처리에서의 모션보상처리를 행하는 POUA(207)인 것으로 한다. IDCT의 처리결과는 부호있음 8바이트 데이터로서 표현되므로 이들 2개의 마스터 디바이스는 부호있음 8비트 데이터 수수를 행해야 한다. 여기에서 듀얼포트 메모리(1OO)는 1바이트 = 9비트의 메모리 셀로 구성되어 있으므로 IDCT를 행하는 측의 TE(206)가 부호있음 8바이트 데이터를 듀얼포트 메모리(100)에 기입하고, 모션보상을 하는 쪽의 POUA(207)가 그와 같이 기입된 부호있음 8바이트 데이터를 듀얼포트 메모리(1OO)로부터 판독하여 이용하면 부호있음 8바이트 데이터의 인도는 이들 2개의 마스터 디바이스 사이에서 고속으로 행해지게 된다.
(2)부호없음 8비트 데이터 수수
1바이트 = 8비트로 설정되었을 때, 9비트째는 마스크비트로서 이용된다. 도 26b는 1바이트 = 부호없음 8비트로 설정된 경우의 메모리 셀의 비트할당을 도시한 도면이다. 여기에서 듀얼포트 메모리(100)로부터 외부메모리 디바이스(2)로의 데이터 기입을 행하는 경우, 엔트리영역에 포함되는 32바이트의 데이터 중 외부메모리 디바이스(2)에 기입할 1바이트 데이터는 그 9비트째에 위치하는 마스크비트를 오프 “0 ”으로 설정한다. 한편 외부메모리 디바이스(2)로의 기입을 금지시키고 싶은 1바이트 데이터는 그 9비트째에 위치하는 마스크비트를 온 “1 ”로 설정한다.
듀얼포트 메모리(100)로부터 외부메모리 디바이스(2)로의 기입시에 있어서, 마스크비트가 오프 “O ”으로 설정된 1바이트 데이터는 외부메모리 디바이스(2)에 기입된다. 한편 마스크비트가 온 “1 ”로 설정된 1바이트 데이터는 외부메모리 디바이스(2)에 기입되지 않고, 외부메모리 디바이스(2)의 원래의 값이 유지된다. 도 27은 마스크비트의 설정시에 있어서, 외부메모리 디바이스(2)가 어떻게 기입되는지를 도시한 도면이다. 본 도면의 하단은 영역(1)∼(5)로 이루어지는 엔트리영역을 나타낸다. 이 중 영역 (1) (3) (5)를 구성하는 1바이트 데이터는 마스크비트가 1로 설정되고, 영역 (2) (4)를 구성하는 1바이트 데이터는 마스크비트가 0으로 설정되어 있는 것으로 한다. 그렇게 하면 외부메모리 디바이스(2) 중 영역(2) (4)에 대응하는 부분은 엔트리영역의 내용에 의해 덧쓰기되지만, 영역 (1) (3) (5)에 대응하는 부분은 엔트리영역을 이용한 덧쓰기로부터 제외되어 원래의 값을 유지하게 된다.
각 1바이트 데이터를 외부메모리 디바이스(2)에 기입할 것인지의 여부는 마스크비트를 이용하여 설정되므로 마스크비트는 화상에 문자패턴을 합성하는 등의 용도에 응용할 수 있다. 여기에서 외부메모리 디바이스(2)에 1화면분의 화상데이터가 저장되어 있는 것으로 한다. 외부메모리 디바이스(2)에 저장된 화상데이터를 문자패턴과 합성시키려면 마스터 디바이스는 소위 판독, 변경 및 기입을 행해야 한다. 즉 각 마스터 디바이스는 외부메모리 디바이스(2)에 저장된 화상데이터를 일단 판독하고(Read), 그것을 도입하고나서 문자패턴과 합성하는 처리를 하고 (Modify), 문자패턴을 합성한 후 외부메모리 디바이스(2)에 되돌려 쓰는(Write) 처리를 행해야 한다. 이 때 마스터 디바이스(103)는 외부메모리 디바이스(2)에 저장된 화상데이터의 판독과, 판독된 화상데이터의 기입이라는 두가지 처리를 해야 하므로 처리부하가 커진다.
따라서 마스크비트를 이용하면 외부메모리 디바이스(2)에 저장된 화상데이터와, 문자패턴을 이하와 같이 간단하게 합성할 수 있다. 문자패턴과 화상데이터를 합성함에 있어서, 듀얼포트 메모리(100)에는 문자데이터를 저장해 둔다. 이 문자데이터는 배경부와, 스트로크부로 이루어진다. 여기에서 듀얼포트 메모리(100)에 저장되어 있는 1바이트 데이터 중 문자의 배경부에 해당하는 것에는 마스크비트가 온 “1 ”의 설정을, 1바이트 데이터 중 문자의 스트로크부분에 해당하는 것에는 마스크비트가 오프 “0 ”의 설정을 한다.
마스크비트가 이와 같이 설정된 상태에서 듀얼포트 메모리(100)로부터 외부메모리 디바이스(2)로의 데이터 기입이 행해지면 외부메모리 디바이스(2)의 화상 중 문자의 스트로크부분에 해당하는 부분이 듀얼포트 메모리(100)에 저장되어 있는 데이터를 이용하여 덧쓰기되고, 외부메모리 디바이스(2)의 화상 중 문자의 배경부분에 해당하는 부분은 듀얼포트 메모리(100)에 저장된 데이터를 이용한 덧쓰기로부터 제외된다. 마스크비트를 설정한 후에 듀얼포트 메모리(100)에 저장된 문자패턴을 외부메모리 디바이스(2)에 저장되어 있는 화상데이터에 기입함으로써 화상과 문자가 합성된 합성화상을 용이하게 얻을 수 있다.
상기 실시예에 기초하여 설명하였지만, 현상태에서 최선의 효과를 기대할 수 있는 시스템예로서 제시한 것에 불과하다. 본 발명은 그 요지를 일탈하지 않는 범위에서 변경 실시할 수 있다. 대표적인 변경실시예로서 이하 (a) (b) (c) ····의 것이 있다.
(a) 도 22에 도시된 듀얼포트 메모리(100)의 태그영역에 도 28에 도시된 데이터를 저장해 두어도 된다. 여기에서는 1개의 커맨드가 2개의 태그영역으로 구성될 때의 예를 나타낸다. 도 28에서의 22비트에 위치하는 Tag2Valid는 1개의 커맨드 중 두개째 태그정보가 유효한지의 여부를 나타내는 플래그이다. 23비트째에 위치하는 MB 액세스 비트는 매크로블록의 저장용인지의 여부를 나타내는 부호이다. 24비트째에서의 done bit는 마스터 디바이스가 요구한 전송의 마지막 데이터인지의 여부를 나타내는 부호이다. 25비트째에서의 DMA 모드 비트는 메모리간 전송이 외부메모리 디바이스(2)-듀얼포트 메모리(100) 사이의 데이터 전송인지, 외부메모리 디바이스(2)-마스터 디바이스(103) 사이의 데이터 전송인지를 나타낸다. 26비트째에서의 16B/32B 액세스 플래그는 하나의 엔트리영역을 구성하는 두개의 뱅크영역 중 한쪽(16바이트분)이 유효한지, 양쪽(32바이트분)이 유효한지를 나타낸다. 27비트째의 Tag1Valid는 하나의 커맨드 중 첫 번째 태그정보가 유효한지의 여부를 나타내는 플래그이다. 28비트부터 30비트까지는 마스터 디바이스 ID이고, 31비트에서의 POU DMA MODE 플래그는 POU DMA MODE가 온 “1 ”되어 있는지의 여부를 나타내는 부호이다.
(b)각 마스터 디바이스에 제어버스에 접속시켜, 마스터 디바이스 사이의 정보교환을 하게 해도 된다. 제어버스는 각 마스터 디바이스가 소정의 결정에 따라 데이터 기입시의 엔트리 어드레스를 서로 통지할 때 해당 엔트리 어드레스를 전송시키기 위한 버스이다.
복수의 마스터 디바이스 중 적어도 1개 이상이 외부메모리 디바이스(2)로의 데이터 기입을 요구한 경우, 외부메모리 디바이스(2)에 있어서 데이터가 기입된 영역의 선두부를 나타내는 엔트리 어드레스를 제어버스에 전송시켜 복수의 마스터 디바이스 중 다른 것은 제어버스에 전송된 엔트리 어드레스 이후에 저장되어 있는 데이터의 판독을 요구한다.
복수의 마스터 디바이스 중 적어도 1개 이상이 외부메모리 디바이스(2)로의 데이터 기입을 요구한 경우, 외부메모리 디바이스(2)에 있어서 데이터가 기입된 영역의 종단부를 나타내는 종료 어드레스를 제어버스에 전송시켜, 복수의 마스터 디바이스 중 다른 것은 제어버스에 전송된 종료 어드레스의 다음 어드레스로부터의 데이터 기입을 요구한다.
(c) 제 3 실시예에 있어서 외부메모리 디바이스(2)에서의 사용상황의 통합관리를 행하는 메모리 어드레스 서버를 설치해도 된다. 메모리 어드레스 서버는 어드레스표를 갖고 있고, 외부메모리 디바이스(2) 내의 각 메모리의 사용상황을 1Kbit의 블록을 최소단위로 하여 관리하고 있다. 외부메모리 디바이스(2)에 있어서 블록이 n개 존재하는 것으로 하면 메모리 크기가 1Kbit ×nbit가 된다. 그 한쪽의 어드레스표는 2비트 ×n의 크기가 된다. 어드레스표에서의 2비트는 외부메모리 디바이스(2)에 있어서의 블록의 사용상황을 나타낸다. 여기에서 외부메모리 디바이스(2)에서의 블록이 미사용이라면 어드레스표에서의 2비트는「00」이 된다. 블록이 기입중이라면 어드레스표에서의 2비트는「01」, 블록이 기입완료라면 어드레스표에서의 2비트는「10」이 된다. 블록이 미사용이지만, 그 사용이 예약되어 있는 경우, 어드레스표에서의 2비트는「11」이 된다.
어떤 마스터 디바이스가 외부메모리 디바이스(2)로의 데이터 기입을 요구하고자 한 경우, 그 사용상황이 미사용으로 설정되어 있는 영역의 어드레스를 해당 마스터 디바이스에 통지하고, 어떤 마스터 디바이스의 요구에 따라 외부메모리 디바이스(2)에 데이터가 기입된 경우, 그 영역에 대응하는 사용상황을 기입완료로 갱신한다. 상기 복수의 마스터 디바이스 중 적어도 1개 이상이 외부메모리 디바이스(2) 상의 복수개 영역 중 어떤 것의 사용상황을 미사용으로 해방하는 취지를 요구하여 메모리 어드레스 서버는 어떤 마스터 디바이스의 요구에 따라 그 영역에 대응하는 사용상황을 미사용으로 갱신한다. 각 마스터 디바이스가 상기와 같은 액세스 커맨드를 발행하면 외부메모리 디바이스(2)의 이용효율을 향상시킬 수 있다.
(d) 제 3 실시예에 있어서, 듀얼포트 메모리(26)에 대한 액세스를 하나의 마스터 디바이스가 통합하여 행해도 된다. 본 실시예에 있어서 마스터 디바이스(4)는 외부메모리 디바이스(2)로부터의 데이터 판독시, 외부메모리 디바이스(2)에서 자신에게 할당된 영역으로부터 듀얼포트 메모리(26)로의 데이터 판독을 행하는 것과 아울러, 마스터 디바이스(5)∼마스터 디바이스(6)에 할당된 영역으로부터 듀얼포트 메모리(26)로의 데이터 판독을 행한다. 이러한 데이터 판독에 의해 듀얼포트 메모리(26) 상에는 마스터 디바이스(4)∼마스터 디바이스(6)의 데이터가 모두 판독된 것이 된다. 마스터 디바이스(5)∼마스터 디바이스(6)는 엔트리정보에 표시되어 있는 영역으로부터 자신의 로컬 메모리(8)∼로컬 메모리(9)로의 DMA 전송을 행함으로써 외부메모리 디바이스(2)로부터 판독된 데이터를 취득한다.
외부메모리 디바이스(2)로의 데이터 기입시, 마스터 디바이스(4)는 로컬 메모리(7)로부터 듀얼포트 메모리(26)에 있어서 자신에게 할당된 영역으로의 데이터 기입을 행하고, 그와 더불어 듀얼포트 메모리(26) 상의 마스터 디바이스(5)∼마스터 디바이스(6)에 대한 엔트리정보를 마스터 디바이스(5)∼마스터 디바이스(6)에 통지한다. 이후 마스터 디바이스(4)는 듀얼포트 메모리(26)에 있어서 마스터 디바이스(4)∼마스터 디바이스(6)용 데이터가 기입되어 있는 영역으로부터 외부메모리 디바이스(2)에서 마스터 디바이스(4)∼마스터 디바이스(6)용으로 할당되어 있는 영역으로의 DMA 전송을 행한다. 이에 따라 외부메모리 디바이스(2)에는 마스터 디바이스(4)∼마스터 디바이스(6)용 데이터가 기입되게 된다.
상술한 본 발명의 구성에 의하면 마스터 디바이스에 할당할 대역폭의 변경을 원하는 경우, 마스터 버스가 요구하는 전송속도를 변경함으로써 데이터 처리장치 전체를 재설계할 필요없이 높은 범용성을 갖는 데이터 처리장치를 제공할 수 있게 된다.
본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 첨부된 특허청구범위에 개시된 본 발명의 사상과 범위를 통해 각종 수정, 변경, 대체 및 부가가 가능할 것이다.

Claims (30)

  1. 복수의 마스터 디바이스와, 하나의 메모리 디바이스에 접속되고, 메모리 디바이스와 각 마스터 디바이스 사이의 데이터 전송을 행하는 데이터 처리장치에 있어서,
    2개의 포인트를 갖고 있고, 그 중 한쪽 포인트에 메모리 디바이스와 접속되는 메모리 버스와,
    각각이 2개 이상의 포인트를 갖고 있고, 그 중 하나 이상의 포인트에 각 마스터 디바이스와 접속되는 복수의 로컬버스와,
    메모리 디바이스에 대한 데이터 판독 및 메모리 디바이스에 대한 데이터 기입을 행하고, 각 로컬버스 상에서는 각 마스터 디바이스가 요구하는 전송속도로 데이터 전송을 행하게 하고, 메모리 버스 상에서는 메모리 디바이스가 요구하는 전송속도로 데이터를 전송하게 하는 전송제어수단과,
    메모리 버스의 다른쪽 포인트 및 각 로컬버스의 하나의 포인트에 접속된 복수의 버퍼이며, 메모리 버스와 로컬버스 사이의 전송속도의 차이를 흡수하도록 데이터의 입출력을 행하는 복수의 로컬버퍼수단을 포함하는 것을 특징으로 하는 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 복수의 마스터 디바이스는,
    메모리 디바이스로부터의 데이터 판독 및 메모리 디바이스로의 데이터 기입을 요구하고,
    상기 전송제어수단은,
    각 마스터 디바이스에 의해 메모리 디바이스로부터의 데이터 판독이 요구되면 메모리 디바이스로부터의 데이터 판독을 행하여 해당 데이터를 메모리 버스 상에서 전송시키는 처리를 행하고, 메모리 디바이스로의 데이터 기입이 요구되면 메모리 디바이스에 기입할 데이터를 메모리 버스 상에서 전송시키고, 각 마스터 디바이스로부터의 요구에 따라 메모리 디바이스에 기입하는 처리를 행하는 메모리 컨트롤러와,
    복수의 로컬버스의 각각에 대응되어 있고, 메모리 디바이스로부터 판독된 데이터 및 메모리 디바이스에 기입할 데이터를 각 마스터 디바이스가 요구하는 전송속도로 로컬버스 상에서 전송시키는 복수의 로컬 컨트롤러를 포함하는 것을 특징으로 하는 데이터 처리장치.
  3. 제 2항에 있어서,
    각 로컬 컨트롤러는,
    각 마스터 디바이스가 그 판독을 요구한 데이터가 메모리 버스 상에 전송되면 해당 메모리 버스 상의 데이터를 로컬버퍼수단에 도입하고, 도입한 데이터를 로컬버스에 출력시키도록 로컬버퍼수단을 제어하고,
    마스터 디바이스가 메모리 디바이스로의 기입을 요구한 데이터가 로컬버스 상에 전송되면 데이터를 로컬버퍼수단에 도입하고, 소정수의 데이터를 해당 로컬버퍼수단에 저장한 후 저장된 데이터를 메모리 버스에 출력시키도록 로컬버퍼수단을 제어하는 것을 특징으로 하는 데이터 처리장치.
  4. 제 2항에 있어서,
    상기 데이터 처리장치는,
    복수의 마스터 디바이스에 대한 데이터 판독요구 또는 메모리 디바이스로의 데이터 기입요구가 경합한 경우, 복수의 마스터 디바이스 중 몇가지의 요구를 인정하고 다른 요구를 부인하는 취지를 결정하는 조정수단을 구비하고,
    상기 마스터 디바이스는 아비터에 의한 조정 결과, 요구가 부인된 마스터 디바이스에 대한 메모리 버스 또는 로컬버스에서의 데이터 전송을 정지하는 것을 특징으로 하는 데이터 처리장치.
  5. 제 4항에 있어서,
    로컬버스에는 3개 이상의 포인트를 갖고 있는 것이 있고, 그 중 2개 이상의 포인트에는 2개 이상의 마스터 디바이스가 접속되어 있고, 이들 2개 이상의 포인트에 접속된 마스터 디바이스에 있어서 데이터 판독요구 또는 메모리 디바이스로의 데이터 기입요구가 경합한 경우,
    상기 마스터 디바이스는 아비터에 의한 조정 결과, 요구가 부인된 마스터 디바이스에 대한 로컬버스에서의 데이터 전송을 정지하는 것을 특징으로 하는 데이터 처리장치.
  6. 제 1항에 있어서,
    메모리 디바이스에는 데이터 처리장치의 동작주파수와 다른 동작주파수의 동기클록신호가 공급되어 있고,
    상기 데이터 처리장치는 또,
    한쪽의 포트가 상기 메모리 디바이스의 판독기입 포트에 접속되어 있고, 다른쪽 포트가 상기 복수의 로컬버퍼수단에 접속되어 있고, 메모리 디바이스에서의 동작주파수와 데이터 처리장치 내부에서의 동작주파수의 차이를 흡수하도록 메모리 버스와 복수의 로컬버퍼수단 사이에서 데이터의 입출력을 행하는 듀얼포트 메모리 디바이스를 구비하는 것을 특징으로 하는 데이터 처리장치.
  7. 제 6항에 있어서,
    상기 전송제어수단은,
    메모리 버스 상에 전송되어 있는 복수 마스터 디바이스가 그 판독을 요구한 복수 데이터를 듀얼포트 메모리 디바이스에 도입하고, 데이터를 로컬버퍼수단에 출력하도록 제어하는 것을 특징으로 하는 데이터 처리장치.
  8. 제 6항에 있어서,
    상기 전송제어수단은,
    복수의 마스터 디바이스가 메모리 디바이스로의 기입을 요구한 데이터가 로컬버퍼수단으로부터 출력되면, 이들 복수의 데이터를 듀얼포트 메모리 디바이스에 도입하고, 해당 듀얼포트 메모리 디바이스에 축적한 후 축적된 데이터를 메모리 버스에 출력시키도록 듀얼포트 메모리 디바이스를 제어하는 것을 특징으로 하는 데이터 처리장치.
  9. 제 1항에 있어서,
    상기 복수의 마스터 디바이스에는 제어버스가 접속되어 있고,
    복수의 마스터 디바이스 중 적어도 하나 이상이,
    메모리 디바이스로의 데이터 기입을 요구한 경우, 메모리 디바이스에서 데이터가 기입된 영역의 선두부를 나타내는 엔트리 어드레스를 제어버스에 전송시키고,
    복수의 마스터 디바이스 중 다른 것은,
    제어버스에 전송된 엔트리 어드레스 이후에 저장되어 있는 데이터의 판독을 요구하는 것을 특징으로 하는 데이터 처리장치.
  10. 제 1항에 있어서,
    상기 복수의 마스터 디바이스에는 제어버스가 접속되어 있고,
    복수의 마스터 디바이스 중 적어도 하나 이상이,
    메모리 디바이스로의 데이터 기입을 요구한 경우, 메모리 디바이스에서 데이터가 기입된 영역의 종단부를 나타내는 종료 어드레스를 제어버스에 전송시키고,
    복수의 마스터 디바이스 중 다른 것은,
    제어버스에 전송된 종료 어드레스의 다른 어드레스로부터의 데이터 기입을 요구하는 것을 특징으로 하는 데이터 처리장치.
  11. 제 1항에 있어서,
    데이터 처리장치는,
    메모리 디바이스에 포함되는 복수영역의 각각에 대한 사용상황이 기입완료되고, 사용하지 않은 것이 어느 것인지를 나타내는 사용상황 정보를 기억하고 있고, 어떤 마스터 디바이스가 메모리 디바이스로의 데이터 기입을 요구하고자 한 경우, 그 사용상황 정보가 미사용으로 설정되어 있는 영역의 어드레스를 해당 마스터 디바이스에 통지하는 어드레스 서버를 구비하는 것을 특징으로 하는 데이터 처리장치.
  12. 제 11항에 있어서,
    상기 어드레스 서버는,
    어떤 마스터 디바이스의 요구에 따라 메모리 디바이스에 데이터가 기입된 경우, 그 영역에 대응하는 사용상황 정보를 기입완료로 갱신하는 제 1 갱신부를 구비하는 것을 특징으로 하는 데이터 처리장치.
  13. 제 11항에 있어서,
    상기 복수의 마스터 디바이스 중 적어도 하나 이상이,
    메모리 디바이스 상의 복수의 영역 중 어떤 것의 사용상황을 미사용으로 해방한다는 취지를 요구하고,
    상기 제 1 갱신부는,
    어떤 마스터 디바이스의 요구에 따라 그 영역에 대응하는 사용상황 정보를 미사용으로 갱신하는 것을 특징으로 하는 데이터 처리장치.
  14. 메모리 디바이스와 접속된 데이터 처리장치에 있어서,
    메모리 디바이스로부터의 데이터 판독, 또는 메모리 디바이스로의 데이터 기입을 요구하는 액세스 커맨드를 발행하는 복수의 마스터 디바이스와,
    듀얼포트 메모리와,
    액세스 커맨드가 발행되면 외부메모리 디바이스에서의 동작주파수와 데이터 처리장치 내부에서의 동작주파수의 차이를 흡수하도록 듀얼포트 메모리를 통한 메모리 디바이스와 복수의 마스터 디바이스 사이의 데이터 전송을 행하는 전송제어수단을 포함하는 것을 특징으로 하는 데이터 처리장치.
  15. 듀얼포트 메모리는 엔트리 어드레스가 부여된 복수의 엔트리 영역과, 각 엔트리 영역에 대응된 태그영역을 포함하며,
    액세스 커맨드는 데이터의 판독장소가 되는 외부 어드레스, 또는 데이터의 판독장소가 되는 외부 어드레스의 지정을 포함하며,
    외부 어드레스는 메모리 디바이스에 포함되는 복수의 외부영역 중 액세스 장소가 되는 것을 나타내며,
    제 14항 기재의 상기 데이터 처리장치는,
    메모리 디바이스에 대한 액세스 커맨드가 발행되면 듀얼포트 메모리를 구성하는 복수의 엔트리 영역 중 어떤 엔트리 영역을 마스크와 메모리 디바이스 사이의 데이터 전송에 할당하여 그 엔트리 영역에 대응하는 태그영역에 액세스 커맨드에 포함되는 외부 어드레스를 저장하는 엔트리 관리수단을 포함하며,
    상기 전송제어수단은,
    데이터 전송에 할당된 엔트리영역과 외부 어드레스로 나타내는 외부영역 사이의 데이터 전송을 행하는 메모리 제어부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  16. 제 15항에 있어서,
    엔트리 관리수단은,
    듀얼포트 메모리에서의 빈 엔트리영역의 소재를 나타내는 엔트리 어드레스를 사용상황 정보로서 각 마스터 디바이스에 통지하는 사용상황 정보통지부를 포함하며,
    상기 데이터 처리장치는,
    마스터 디바이스와, 사용상황 정보에 의해 통지된 빈 엔트리 어드레스에 의해 나타내어지는 빈 엔트리 영역 사이에서 메모리 디바이스에 기입할 데이터 또는 메모리 디바이스로부터 판독된 데이터의 데이터 전송을 행하는 로컬 컨트롤러부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  17. 제 16항에 있어서,
    엔트리 관리수단은,
    비트열을 보유하는 비트열 보유부를 포함하며,
    듀얼포트 메모리에서의 각 엔트리 어드레스에 대응된 비트로 이루어지고, 각 비트는 온 또는 오프로 설정되며,
    상기 사용상황 정보 통지부는,
    비트열에서 오프로 설정되어 있는 비트에 대응하는 엔트리 어드레스를 사용상황 정보로서 각 마스터 디바이스에 통지하며,
    상기 엔트리 관리수단은,
    사용상황 정보의 통지후 어떤 마스터 디바이스로부터 액세스 커맨드가 발행되면 사용상황 정보로서 통지된 엔트리 어드레스에 대응하는 비트를 오프로부터 온으로 갱신하는 제 1 갱신수단과,
    상기 엔트리 어드레스로 지시되는 엔트리 영역에 데이터가 저장된 후 해당 데이터가 메모리 디바이스로 전송된 경우 또는 해당 데이터가 마스터 디바이스로 전송된 경우, 해당 비트를 온으로부터 오프로 갱신하는 제 2 갱신수단을 포함하는 것을 특징으로 하는 데이터 처리장치.
  18. 제 17항에 있어서,
    사용상황 정보통지부는,
    비트열에서의 모든 비트가 온으로 설정되면 듀얼포트 메모리에서 빈 엔트리영역이 존재하지 않는다는 취지를 나타내는 사용상황 정보를 각 마스터 디바이스에 통지하고,
    상기 각 마스터 디바이스는,
    빈 엔트리영역이 존재하지 않는다는 취지를 나타내는 사용상황 정보가 통지되어 있는 경우, 액세스 커맨드를 발행하지 않고, 빈 엔트리 영역의 엔트리 어드레스가 통지되고나서 액세스 커맨드를 발행하는 것을 특징으로 하는 데이터 처리장치.
  19. 상기 메모리 제어부는,
    외부 어드레스에서 나타내어지는 외부영역으로부터 엔트리영역으로의 데이터 전송이 완료된 경우, 엔트리 영역에 대한 엔트리 어드레스를 포함하는 판독완료 통지를 액세스 커맨드의 발행소스 마스터 다바이스에 출력하고,
    제 15항 기재의 상기 전송제어수단은,
    복수의 마스터 디바이스의 각각에 대응되어 있고, 대응하는 마스터 디바이스에 대하여 판독완료 통지가 출력되면 판독완료 통지로부터 엔트리 어드레스를 인출하여 엔트리 어드레스로 나타내어지는 엔트리영역으로부터 대응하는 마스터 디바이스로의 데이터전송을 행하는 복수의 로컬 컨트롤러부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  20. 제 19항에 있어서,
    복수의 마스터 디바이스 중 1조의 마스터 디바이스는,
    듀얼포트 메모리에서의 어떤 엔트리 영역을 지시하는 엔트리 어드레스를 지정한 액세스 커맨드를 발행하고,
    복수의 로컬 컨트롤러부는,
    엔트리 어드레스에 의해 지시된 엔트리영역을 통하여 1조의 마스터 디바이스 사이에서 데이터 전송을 행하는 것을 특징으로 하는 데이터 처리장치.
  21. 듀얼포트 메모리에서의 복수의 엔트리영역은 메모리 디바이스로부터의 데이터 판독용과, 메모리 디바이스로의 데이터 기입용으로 할당되어 있고,
    제 19항 기재의 상기 엔트리 관리수단은,
    메모리 디바이스로부터의 데이터 판독을 요구한다는 취지의 액세스 커맨드를 마스터 디바이스가 발행한 경우, 데이터 판독용으로 할당된 빈 엔트리영역의 엔트리 어드레스를 발행소스의 마스터 디바이스에 출력하고,
    메모리 디바이스로의 데이터 기입을 요구한다는 취지의 액세스 커맨드를 마스터 디바이스가 발행한 경우, 데이터 기입용으로 할당된 빈 엔트리영역의 엔트리 어드레스를 발행소스의 마스터 디바이스에 출력하고,
    상기 메모리 제어부는,
    엔트리 어드레스가 출력된 엔트리영역과 메모리 디바이스 사이의 데이터 전송을 행하고,
    상기 복수의 로컬 컨트롤러부는,
    엔트리 어드레스가 출력된 엔트리영역과, 액세스 커맨드의 발행소스의 마스터 디바이스 사이의 데이터 전송을 행하는 것을 특징으로 하는 데이터 처리장치.
  22. 제 15항에 있어서,
    액세스 커맨드는,
    메모리 디바이스로부터의 데이터 판독을 요구하는 것 또는 메모리 디바이스로의 데이터 기입을 요구하는 것 외에, 듀얼포트 메모리에서의 어떤 엔트리영역과 메모리 디바이스에서의 외부영역의 다이렉트 메모리 액세스(DMA) 전송을 요구하는 것이며,
    DMA 전송을 요구하는 액세스 커맨드는,
    메모리 디바이스에서의 외부영역을 나타내는 외부 어드레스의 지정과, 듀얼포트 메모리에서의 어떤 엔트리영역을 지시하는 엔트리 어드레스의 지정을 포함하며,
    상기 데이터 처리장치는,
    DMA 전송을 요구하는 액세스 커맨드가 발행되면 액세스 커맨드로 지정된 엔트리 어드레스에 대응하는 태그영역에 액세스 커맨드로 지정된 외부 어드레스를 저장시켜 엔트리 어드레스에 의해 지시된 엔트리영역과, 외부어드레스에 의해 나타내어지는 외부영역 사이의 데이터 전송을 메모리 제어부에 실행시키는 DMA 제어부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  23. 제 15항에 있어서,
    엔트리영역은 복수의 메모리 셀로 이루어지며,
    각 메모리 셀은 마스크 비트를 포함하며,
    상기 메모리 제어부는,
    엔트리영역에 저장되어 있는 데이터를 메모리 디바이스에 전송할 때 마스크 비트가 온으로 설정되어 있는 메모리 셀은 메모리 디바이스에 기입하지 않고 마스크 비트가 오프로 설정되어 있는 메모리 셀만 메모리 디바이스에 기입하는 것을 특징으로 하는 데이터 처리장치.
  24. 제 15항에 있어서,
    데이터 처리장치는,
    2개 이상의 마스터 디바이스가 같은 사이클에서 액세스 커맨드를 발행한 경우, 발행소스의 마스터 디바이스 중 어떤 것에 듀얼포트 메모리 내의 엔트리영역을 통한 데이터 전송을 허가하는 아비터를 포함하며,
    복수의 마스터 디바이스의 각각에 대응되어 있고, 어느 하나의 마스터 디바이스에 대하여 듀얼포트 메모리 내의 엔트리 영역을 통한 데이터 전송이 허가되면 엔트리영역과 해당 마스터 디바이스 사이의 데이터 전송을 행하게 하는 복수의 로컬 컨트롤러부를 포함하며,
    상기 메모리 제어부는,
    어느 하나의 마스터 디바이스에 대하여 듀얼포트 메모리 내의 엔트리영역을 통한 데이터 전송이 허가되면 메모리 디바이스와 엔트리영역 사이의 데이터를 전송하는 것을 특징으로 하는 데이터 처리장치.
  25. 제 24항에 있어서,
    상기 아비터는,
    링형상으로 접속되어 있는 n개의 레지스터이며, 각 레지스터에는 각 마스터 디바이스에 대한 식별정보가 저장되어 있는 링 레지스터와,
    n사이클에서, n개의 레지스터에 저장되어 있는 n개의 식별정보의 각각을 현재정보로서 특정하도록 n개의 레지스터의 각각에 저장되어 있는 식별정보를 순회 시프트시키는 시프트 제어수단과,
    마스터 디바이스 x에 대한 사용상황 정보가 현재정보로서 특정되어 있는 사이클에서, 해당 마스터 디바이스 x에 의해 액세스 커맨드가 발행된 경우, 해당 마스터 디바이스 x에 대하여 듀얼포트 메모리 내의 엔트리영역을 통한 데이터 전송을 허가하는 허가부를 포함하는 것을 특징으로 하는 데이터 처리장치.
  26. 제 25항에 있어서,
    마스터 디바이스 x에 대한 데이터 전송을 n회당 m회(m은 n>m을 만족하는 정수)의 비율로 허가시키고 싶은 경우, 상기 n개의 레지스터 중 m개의 레지스터에 마스터 디바이스 x에 대한 식별정보 x를 저장시키는 저장제어수단을 구비하며,
    상기 허가부는,
    m개의 레지스터의 어느 하나에 저장되어 있는 식별정보 x가 현재정보로서 특정되어 있는 사이클에서, 해당 마스터 디바이스 x에 의해 액세스 커맨드가 발행된 경우, 해당 마스터 디바이스 x에 대하여 듀얼포트 메모리 내의 엔트리영역을 통한 데이터 전송을 허가하는 것을 특징으로 하는 데이터 처리장치.
  27. 제 26항에 있어서,
    각 마스터 디바이스에는 우선순위가 부여되어 있고,
    상기 허가부는,
    m개의 레지스터의 어느 하나에 저장되어 있는 식별정보 x가 현재정보로서 선택되어 있는 사이클에서, 해당 마스터 디바이스 x가 액세스 커맨드를 발행하고 있지 않은 경우, 마스터 디바이스 x보다 우선순위가 낮은 마스터 디바이스로서, 액세스 커맨드를 발행한 것에 대하여 듀얼포트 메모리 내의 엔트리 영역을 통한 데이터 전송을 허가하는 것을 특징으로 하는 데이터 처리장치.
  28. 제 27항에 있어서,
    상기 허가부는,
    m개의 레지스터의 어느 하나에 저장되어 있는 식별정보 x가 현재정보로서 선택되어 있는 사이클에서, 해당 마스터 디바이스 x 및 마스터 디바이스 x보다 우선순위가 낮은 마스터 디바이스가 액세스 커맨드를 발행하고 있지 않은 경우, 마스터 디바이스 x보다 우선순위가 높은 마스터 디바이스로서, 액세스 커맨드를 발행한 것에 대하여 듀얼포트 메모리 내의 엔트리영역을 통한 데이터 전송을 허가하는 것을 특징으로 하는 데이터 처리장치.
  29. 제 14항에 있어서,
    데이터 처리장치는,
    한쪽의 판독기입 포트가 듀얼포트 메모리에 접속되고, 다른쪽 판독기입 포트가 마스터 디바이스에 접속되어 있고, 마스터 디바이스의 판독기입 포트의 비트폭과, 듀얼포트 메모리의 판독기입 포트의 비트폭을 정합시키도록 듀얼포트 메모리로부터 판독할 데이터 및 듀얼포트 메모리에 기입할 데이터의 입출력을 행하는 복수의 로컬버퍼수단을 포함하는 것을 특징으로 하는 데이터 처리장치.
  30. 제 29항에 있어서,
    상기 복수의 로컬버퍼수단은 듀얼포트 메모리로부터 판독할 데이터의 입출력과, 듀얼포트 메모리에 기입할 데이터의 입출력을 병행하여 행하는 더블버퍼인 것을 특징으로 하는 데이터 처리장치.
KR1020000039762A 1999-07-12 2000-07-12 데이터 처리장치 KR20010029924A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP19800099 1999-07-12
JP???11-198000 1999-07-12

Publications (1)

Publication Number Publication Date
KR20010029924A true KR20010029924A (ko) 2001-04-16

Family

ID=16383856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000039762A KR20010029924A (ko) 1999-07-12 2000-07-12 데이터 처리장치

Country Status (4)

Country Link
EP (1) EP1069512A3 (ko)
KR (1) KR20010029924A (ko)
CN (1) CN1282925A (ko)
TW (1) TW476029B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450680B1 (ko) * 2002-07-29 2004-10-01 삼성전자주식회사 버스 대역폭을 증가시키기 위한 메모리 컨트롤러, 이를이용한 데이터 전송방법 및 이를 구비하는 컴퓨터 시스템
KR100553348B1 (ko) * 2004-05-31 2006-02-20 한국전자통신연구원 피엠이엠 제어기를 이용한 고속 스트리밍 데이터 전송장치 및 방법
KR100865532B1 (ko) * 2005-10-26 2008-10-27 키몬다 아게 메모리 디바이스와 메모리 제어기 간에 신호를 전송하는방법
US9214207B2 (en) 2012-02-27 2015-12-15 Samsung Electronics Co., Ltd. Apparatus and method for data decoding

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664027B2 (en) 2004-10-20 2010-02-16 Sigmatel, Inc. Infrared adapter with data packet throttle
CN101305356B (zh) * 2005-11-08 2010-09-01 Nxp股份有限公司 用于使内核之间的通信同步的具有标志寄存器的控制装置
JP5226341B2 (ja) * 2008-02-27 2013-07-03 富士通株式会社 チャネル装置、情報処理システム、及びデータ転送方法
CN101610477B (zh) * 2009-07-13 2012-09-05 中兴通讯股份有限公司 多媒体消息业务的处理系统和方法
GB2490753B (en) * 2011-10-14 2013-03-27 Renesas Mobile Corp Memory controller and methods
US8549234B2 (en) 2011-10-14 2013-10-01 Renesas Mobile Corporation Memory controller and methods
US8699277B2 (en) * 2011-11-16 2014-04-15 Qualcomm Incorporated Memory configured to provide simultaneous read/write access to multiple banks
CN105190576A (zh) * 2013-03-28 2015-12-23 惠普发展公司,有限责任合伙企业 共享的存储器系统
CN107943727B (zh) * 2017-12-08 2021-02-09 深圳市德赛微电子技术有限公司 一种高效dma控制器
JP7257772B2 (ja) * 2018-10-31 2023-04-14 ルネサスエレクトロニクス株式会社 半導体装置を用いるシステム
CN111459861B (zh) * 2019-01-22 2022-01-07 瑞昱半导体股份有限公司 具异质平台的信号传输方法与电路结构
CN116150058B (zh) * 2023-04-17 2023-06-23 合肥芯荣微电子有限公司 一种基于axi总线的并发传输模块和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0433520B1 (en) * 1989-12-22 1996-02-14 International Business Machines Corporation Elastic configurable buffer for buffering asynchronous data
JPH0535442A (ja) * 1991-07-31 1993-02-12 Toshiba Corp 画像データ変換回路
CA2080210C (en) * 1992-01-02 1998-10-27 Nader Amini Bidirectional data storage facility for bus interface unit
US5664122A (en) * 1993-11-12 1997-09-02 Intel Corporation Method and apparatus for sequencing buffers for fast transfer of data between buses
US5535341A (en) * 1994-02-24 1996-07-09 Intel Corporation Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation
US5692137A (en) * 1995-05-08 1997-11-25 Apple Computer, Inc. Master oriented bus bridge
JPH0991197A (ja) * 1995-09-22 1997-04-04 Sharp Corp データ転送制御装置
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
US5793992A (en) * 1996-06-13 1998-08-11 Vlsi Technology, Inc. Method and apparatus for arbitrating access to main memory of a computer system
US5933614A (en) * 1996-12-31 1999-08-03 Compaq Computer Corporation Isolation of PCI and EISA masters by masking control and interrupt lines
US6047339A (en) * 1997-10-27 2000-04-04 Emulex Corporation Buffering data that flows between buses operating at different frequencies

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450680B1 (ko) * 2002-07-29 2004-10-01 삼성전자주식회사 버스 대역폭을 증가시키기 위한 메모리 컨트롤러, 이를이용한 데이터 전송방법 및 이를 구비하는 컴퓨터 시스템
KR100553348B1 (ko) * 2004-05-31 2006-02-20 한국전자통신연구원 피엠이엠 제어기를 이용한 고속 스트리밍 데이터 전송장치 및 방법
KR100865532B1 (ko) * 2005-10-26 2008-10-27 키몬다 아게 메모리 디바이스와 메모리 제어기 간에 신호를 전송하는방법
US7587655B2 (en) 2005-10-26 2009-09-08 Infineon Technologies Ag Method of transferring signals between a memory device and a memory controller
US9214207B2 (en) 2012-02-27 2015-12-15 Samsung Electronics Co., Ltd. Apparatus and method for data decoding

Also Published As

Publication number Publication date
TW476029B (en) 2002-02-11
EP1069512A2 (en) 2001-01-17
EP1069512A3 (en) 2004-12-15
CN1282925A (zh) 2001-02-07

Similar Documents

Publication Publication Date Title
KR20010029924A (ko) 데이터 처리장치
US6266753B1 (en) Memory manager for multi-media apparatus and method therefor
US5768445A (en) Compression and decompression scheme performed on shared workstation memory by media coprocessor
US6058459A (en) Video/audio decompression/compression device including an arbiter and method for accessing a shared memory
KR100826740B1 (ko) 멀티그래픽프로세서시스템, 그래픽프로세서 및묘화처리방법
US6041400A (en) Distributed extensible processing architecture for digital signal processing applications
EP0870303B1 (en) High performance universal multi-port internally cached dynamic random access memory system, architecture and method
US7533196B2 (en) Semiconductor integrated circuit device
US6847365B1 (en) Systems and methods for efficient processing of multimedia data
JP2002506251A (ja) 共有メモリを有するマルチプロセッサ装置
JP3327900B2 (ja) データ処理装置
KR100489719B1 (ko) 특수 메모리 장치
EP2382546B1 (en) Memory management process and apparatus for the same
JP4728083B2 (ja) メディア処理装置
JP2002196975A (ja) データ処理装置
JP2002049577A (ja) データ処理装置
US20030123555A1 (en) Video decoding system and memory interface apparatus
KR19990062876A (ko) 셋 톱 박스 집적 회로 및 집적 방법
JP2004326228A (ja) 並列演算処理装置
WO2010122746A1 (ja) 情報処理装置
US6901487B2 (en) Device for processing data by means of a plurality of processors
KR0155527B1 (ko) 복합 멀티미디어 보드의 pc 정합방법 및 그 장치
KR100469284B1 (ko) 디지털 티브이의 버퍼 뱅크 제어 장치
CN101552915A (zh) 视频yuv数据的dma传输方法、装置及dma控制器
JPH08317360A (ja) 動画像の多画面転送装置

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination