KR20010105279A - 고성능 dma 콘트롤러 - Google Patents

고성능 dma 콘트롤러 Download PDF

Info

Publication number
KR20010105279A
KR20010105279A KR1020010027241A KR20010027241A KR20010105279A KR 20010105279 A KR20010105279 A KR 20010105279A KR 1020010027241 A KR1020010027241 A KR 1020010027241A KR 20010027241 A KR20010027241 A KR 20010027241A KR 20010105279 A KR20010105279 A KR 20010105279A
Authority
KR
South Korea
Prior art keywords
data transfer
reservation
transfer request
clock
dma
Prior art date
Application number
KR1020010027241A
Other languages
English (en)
Other versions
KR100429724B1 (ko
Inventor
마사요시 도지마
야스오 고하시
도모노리 요네자와
Original Assignee
마츠시타 덴끼 산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마츠시타 덴끼 산교 가부시키가이샤 filed Critical 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR20010105279A publication Critical patent/KR20010105279A/ko
Application granted granted Critical
Publication of KR100429724B1 publication Critical patent/KR100429724B1/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

우선도 및 타이밍 정보, 캔슬 정보 등의 파라미터를 DMA 요구에 갖게 하여 상기 파라미터를 사전에 예약할 수 있고, 또한 설정된 상기 파라미터에 따른 DMA 전송을 실행할 수 있으며, 회로 규모가 적어 용이하게 설계 가능한 고성능 DMA 콘트롤러를 제공한다.
데이터 전송 제어부에 기동 명령 수신부와 데이터 전송 요구에 포함되는 전송 종별을 우선도마다 유지하는 데이터 전송 요구 수신부를 구비하고, 데이터 전송 제어부의 기동이 걸려 있을 때는 데이터 전송 제어부는 데이터 전송 요구 수신부에 있어서 요구의 예약만을 접수하고 데이터 전송 처리를 실행하지 않는 것이다. 또, 데이터 전송 요구의 예약은 우선도마다 마련된 예약 레지스터에 직접 전송 상대 종별을 유지하고, 우선도가 높은 예약 레지스터부터 순서대로 등록된 예약이 없어질 때까지 데이터 전송을 실행해 가는 제어를 행한다.

Description

고성능 DMA 콘트롤러{HIGH-PERFORMANCE DMA CONTROLLER}
본 발명은 메모리와 메모리 사이를 직접 데이터 전송하는 DMA 콘트롤러에 관한 것으로서, 특히 데이터 전송 효율이 좋고, 저소비 전력인 DMA 콘트롤러에 관한 것이다.
현재, 데이터 버스에 복수의 장치나 메모리를 접속한 데이터 처리 장치에 있어서, 장치 사이의 데이터 전송을 직접 전송할 때에 복수의 DMA 전송 요구를 연속적으로, 또한 이 DMA 전송 요구에 우선도를 부가해서 실행함으로써, 전송 효율을 향상시키는 방법이 몇 가지 알려져 있다.
예를 들면, 일본 특허 공개 공보 평성 제 09-223102 호에는 전술한 전송 효율을 향상시키는 직접 액세스 콘트롤러에 대해서 기재되어 있고, 도 27 및 도 28에 도시한 구성을 취한다. 도 27은 직접 메모리 액세스 콘트롤러(DMA 콘트롤러)를 도시한 블럭도이고, 도 28은 도 27에 도시한 DMA 콘트롤러를 일부로 하는 데이터 처리 장치를 도시한 블럭도이다. 도 27 및 도 28에 있어서 DMA 콘트롤러(10022)는 복수의 DMA 전송의 제어 데이터를 각 레지스터(데이터 유지 수단)(10012∼10016)에 설정함과 동시에, 복수의 DMA 전송의 우선도를 DMA 대기 레지스터(우선도 유지 수단)(10027)에 유지시키고, 제어 회로(전송 제어 수단)(10025)의 제어에 의해 상기 DMA 대기 레지스터(10027)에 유지하고 있는 우선도의 순번으로 복수의 DMA 전송을 실행시키는 것이다. 그리고, 상기 DMA 콘트롤러(10022)의 제어 회로(10025)는 CPU(10004)와 DMA 액세스선(10023)에 의해서 접속되고, CPU(10004)가 데이터 유지 수단(10012∼10016)에 액세스하기 위한 어드레스, 데이터, 제어 신호가 전송됨과 동시에, DMA 전송 종료 통지 등을 위한 인터럽트 신호, 요구 신호, 응답 신호가 전송된다. 그리고, 이 DMA 콘트롤러(10022)의 DMA 대기 레지스터(우선도 유지 수단)(10027)에 설정되는 우선도는 복수의 DMA 전송의 제어 데이터의 입력 시각 순서이거나 전송 상대인 I/O(10007)의 중요도에 따라서 미리 결정되어 있는 것이다.
또, 데이터 처리 장치에 있어서의 저소비 전력을 실현하기 위한 클럭 제어 방식에 관해서도 몇 가지 방법이 알려져 있다.
예를 들면, 일본 특허 공개 공보 평성 제 08-255034 호에는 LSI 전체의 제어 회로의 설계 변경을 수반하지 않고 저소비 전력화를 실행하는 저소비 전력형 데이터 처리 장치에 관한 기재가 있고, 도 29에 도시한 구성을 취하고 있다. 도 29는 저소비 전력형 데이터 처리 장치의 회로 구성의 일례를 도시한 도면으로서, 복수의 기능 회로(30123∼30125) 각각에 구비된 클럭 제어용 게이트 회로(30117∼30119),이 개개의 게이트 회로의 동작을 정의하는 제어 데이터를 기입하기 위한 게이트 제어용 레지스터(30105∼30107) 및 이 레지스터(30105∼30107)에 대한 데이터의 기입을 제어하기 위한 어드레스 디코더 회로(30111)를 구비한다. 상기 레지스터(30105∼30107)는 CPU 등의 메모리 맵 영역에 할당되어 있고, 고유의 어드레스를 갖는 것이다. 상기 어드레스 디코더 회로(30111)는 CPU 등의 명령에 따라서 해당 회로에 입력된 기입 인에이블 신호 Sen에 근거하여, 어드레스 버스(30103)를 경유하여 공급되는 상기 레지스터의 어드레스값을 디코드하고, 또 데이터 버스(30104)를 경유하여 공급되는 상기 기능 회로로의 제어 데이터를 상기 레지스터에 기록한다. 상기 레지스터로부터의 출력은 각 기능 회로(30123∼30125)에 대한 클럭 공급 제어 신호 Scc로서 사용되고, 상기 게이트 회로(30117∼30119)는 이 클럭 공급 제어 신호 Scc에 근거하여, 각 기능 회로(30123∼30125)에 대한 클럭 신호의 공급을 허가/정지한다.
또, 일본 특허 공개 공보 평성 제 08-153387 호에는 입력 영상 신호의 유효 화소 수에 따라 액세스를 정지시켜 저소비 전력화를 도모하는 FIFO 메모리에 관해서 기재되어 있고, 도 30의 구성을 취한다. 도 30은 FIFO 메모리의 구성을 기능면에서 도시한 도면으로서, 이 FIFO 메모리는 데이터 신호의 기입 및 판독이 실행되는 메모리셀 어레이(40006), 외부로부터의 리세트신호 RES를 받고 외부로부터 입력하는 클럭신호 CLK0에 근거하여, I/O 회로(40007)에 대한 CLK(비트선용 클럭)와 워드선 포인터(40004)에 대한 제 1 클럭 CLK1(워드선용 클럭)을 생성하는 클럭 생성기(generator)(40003), 상기 CLK, CLK1 각각에 따라서 상기 메모리 셀 어레이의 워드선 및 비트선으로 액세스를 실행하는 어드레스 지정 수단(I/O 회로, 워드선 포인터) 및 상기 클럭 생성기(40003)의 동작을 정지시키는 신호를 생성하는 제어 플래그 생성기(40002)를 갖는 것이다. 그리고, 상기 클럭 생성기(40003)가 출력하는 CLK1에 따라 워드선 포인터(40004)는 순차 워드선(40008)을 지정하고, 최후의 포인터(40005)가 최후의 워드선(40008E)의 액세스를 나타내는 최종 행 액세스 신호 PAS3을 제어 플래그 생성기(40002)에 대해서 출력하면, 이 제어 플래그 생성기(40002)는 최종 행 액세스 신호 PAS3 및 CLK1과 동기한 클럭 COS에 의해 최종 어드레스의 액세스를 검출하고, 그 검출 타이밍에 따라 클럭 제어 신호 CCNT를 클럭 생성기(40003)에 대해서 출력한다. 그리고, 상기 클럭 제어 신호 CCNT를 받은 상기 클럭 생성기(40003)는 기본 클럭 CLK0의 카운트 동작을 정지시키는 것이다. 즉, 상기 FIFO 메모리는 FIFO 메모리 자신이 데이터의 기입과 판독을 개시하는 타이밍을 제어 신호로부터 검출하여 메모리 셀 어레이(40006)에 대해서 클럭의 공급을 개시하고, 어드레스 지정 수단(I/0 회로, 워드선 포인터)이 지정하는 최종 어드레스 신호를 검출하여 상기 클럭 생성기(40003)의 클럭을 정지시키는 클럭 제어 신호 생성 수단(제어 플래그 생성기(40002))을 구비한 특별한 FIFO 메모리이다.
또, 일본 특허 공개 공보 평성 제 7-182857 호에는 마이크로 컴퓨터 시스템에 관해서 기재되어 있고, CPU의 대기시에 DRAM을 셀프 리프레쉬 제어하는 방법이 개시되어 있다. 도 31은 마이크로 컴퓨터 시스템의 구성을 도시한 블럭도이다.
도 31의 마이크로 컴퓨터 시스템에 있어서는 시스템이 대기 상태로 설정되면, CPU(50001)에 의해 셀프 리프레쉬 모드가 설정되고, DRAM 콘트롤러(50003)로부터의 지령에 의해 간격(interval) 리프레쉬 회로(50004)에서 셀프 리프레쉬 회로(50005)로 전환된다. 그리고, 통상 동작시에 클럭 생성기(50002)로부터 발생되는 클럭 신호를 정지시킨 상태에서, 셀프 리프레쉬 회로(50005)가 DRAM 콘트롤러(50003)로 셀프 리프레쉬 동작을 실행하도록 제어 신호를 공급하는 구성으로 되어 있는 것이다.
또, 일본 특허 공개 공보 평성 제 7-169266 호에는 반도체 메모리 장치 내에 있어서의 메모리 셀 어레이의 분할 제어 방법에 관해서 개시되어 있다. 도 32는 반도체 메모리의 기본적 구성을 도시한 도면이다.
도 32에 있어서의 반도체 메모리는 칩내에 분할된 복수개의 메모리 어레이(60001…)를 마련하고, 소정의 메모리 어레이(60001)가 메모리 어레이 선택 회로(60005)에서 선택되었을 때는 제 1 외부 어드레스 신호군의 어드레스에 의해서 선택된 메모리 어레이(60001)내의 워드선의 선택을 실행한다. 이것과 동시에, 선택되지 않은 메모리 어레이(60001…)에 대해서는 칩내에 내장하는 셀프 리프레쉬용 클럭 발생 회로(60006)로부터 셀프 리프레쉬용 워드선 기본 클럭 및 리프레쉬용 워드선 기본 클럭(/RASF)을 출력해서 선택되지 않은 메모리 어레이(60001)내의 워드선의 선택을 실행한다. 메모리 어레이(60001)가 선택되는 설정 시간 전에 리프레쉬 정지 신호를 출력하여 리프레쉬 동작을 강제적으로 정지시켜 메모리셀의 충분한 전하 재축적을 방지한다. 그리고, 이와 같이 메모리 어레이(60001)를 복수로 분할하고, 선택된 메모리 어레이에서 통상 판독/기입 동작을 실행함과 동시에 다른 선택되지 않은 메모리 어레이에서 리프레쉬 동작을 실행하므로, 1개의 메모리 어레이를 보면 통상 동작과 리프레쉬 동작의 경합이 없어, 외부로부터의 리프레쉬의 제어가 불필요하고 또한 고속 직렬 액세스가 가능해진다. 또, 메모리 어레이 선택 회로(60005)는 1개 이상의 메모리 셀 어레이를 선택하는 경우에 이용되는 것으로서, 이 선택 신호는 워드선 기본 클럭(/RAS)의 출력인지 리프레쉬 카운터 및 리프레쉬용 클럭(/RASF)의 출력인지를 선택하는 것에 사용되는 것이다.
그러나, 일본 특허 공개 공보 평성 제 09-223102 호에 기재된 DMA 콘트롤러에서는, 복수의 DMA 전송의 제어 데이터를 설정한 시점에서 데이터 전송이 실행되기 때문에 사전에 상기 제어 데이터를 설정해 둘 수 없을 뿐만 아니라, 데이터 전송 요구를 예약해 둘 수도 없기 때문에, CPU 등의 프로그램 등에 의해서 전(前)처리 등에서 데이터 전송의 설정을 해 둘 수 없고, CPU 등의 프로그램 설계의 자유도를 작게 해 버린다고 하는 문제가 있었다.
또, 상기 종래의 DMA 콘트롤러는 자유롭게 우선도를 지정하는 구성이 아니라, 상기 제어 데이터의 설정 시각 순서나 전송 상대인 I/O의 중요도에 따라서 우선도가 설정되도록 되어 있는 것이다. 그 때문에, 전송 상대인 I/O의 데이터의 중요도가 변화되는 것인 경우에는 우선도를 자유롭게 설정 변경할 수 없다는 문제가 있었다. 또한, 그 복수의 전송 데이터의 유지 구성으로서는, 전송 데이터에 대해서 우선도를 유지하는 구성을 취하므로, 전송 상대가 증가하면, 그 증가분의 우선도 유지 수단을 추가로 마련할 필요가 있다는 문제도 있었다.
또, 종래의 데이터 전송 요구 처리에 관해서도 일본 특허 공개 공보 평성 제 09-223102 호에서는, 요구를 접수한 시점으로부터 그들 요구의 순번을 즉시 판단하는 것이기 때문에, 데이터 전송의 중단/재개와 같은 복잡한 처리가 필요하게 되는 부분도 있고, 데이터 전송 요구의 타이밍과 그 우선도에 따라서는 우선도가 역전하게 된다고 하는 문제가 있었다. 즉, 데이터 전송 요구시에 예약 우선도를 판단하게 되면, 데이터 전송 요구한 시간은 새롭지만, 보다 우선도가 높은 데이터 전송 요구가 다음 데이터 전송 개시시까지 발행되더라도 그 실행 순서를 교체할 수 없고, 데이터 전송 처리 수순을 최적으로 할 수 없었다.
또, 일본 특허 공개 공보 평성 제 09-223102 호에 기재된 DMA 콘트롤러에서는, 데이터 전송의 일시 중단은 실현할 수 있지만, 예약중인 데이터 전송 요구의 취소 또는 CPU 등의 프로그램에 의한 예약중인 데이터 전송 요구의 시퀀싱(sequencing)은 실현할 수 없었다. 또, 실행중인 데이터 전송의 취소에 관해서도 데이터 버스를 CPU에 개방하고 있는 동안 DMA 전송을 정지시키는 일시 정지 방법을 취하고 있고, DMA 전송을 중지하여 새로운 DMA 전송을 계속하는 정지 방법은 취하고 있지 않았다. 또, 이러한 DMA 전송의 중단, 일시 정지를 실현하기 위해서는, DMA 전송을 재개할 때의 데이터를 유지하는 수단과, 그 유지 처리 및 재개 처리 기간이 필요하게 되고, 그 제어와 장치 회로가 복잡하게 되는 것에 비해서는 중단시의 나머지 데이터 전송 개수가 (데이터 퇴피 처리 + 전송 재개 처리) 이상의 사이클이 없는 한 이것에 따른 효과가 적었다. 또, DMA 전송의 중단 또는 일시 정지와 같은 상태로 될 확률은 매우 적음에도 불구하고, 이에 의해 장치 회로 규모가증대하고 복잡화되기 때문에 개발 기간, 소비 전력의 면에서 불리하게 된다는 문제도 있었다.
또, 일본 특허 공개 공보 평성 제 09-223102 호에서는 제어 데이터 또는 데이터 전송의 요구 명령을 발행한 시점에서 DMA 전송이 실행되기 때문에, 미리 데이터 전송을 예약해 두고 원하는 시각으로 되고 나서 또는 원하는 타이밍에 있어서 데이터 전송을 자동적으로 실행에 옮긴다고 하는 것은 불가능하였다. 또, 데이터 유지 수단이 복수로 분할되어 있기 때문에, 액세스 제어가 각각의 수단에 대해서 필요하게 되어 장치 구성이 커져 버릴 뿐만 아니라, CPU 등의 프로그램에 의해 액세스 명령을 발행할 때에도 복수 명령이 필요했다. 게다가, 상기 데이터 유지 수단에는 어드레스 정보, 전송 목적지에 해당하는 I/O 정보를 저장한다는 내용이 개시되어 있지만, 이들 정보를 복수의 자원으로 나누어 저장하지 않으면 안 되었으므로, 메모리에 대해서 다양한 액세스 패턴으로 액세스하고자 하더라도, 그 정보에 관련시키는 파라미터를 유지하고 있지 않기 때문에 1 패턴의 액세스밖에 실행할 수 없었다.
또한, 데이터 전송 요구원이 복수 있는 경우에는, 종래의 일본 특허 공개 공보 평성 제 9-223l0 호와 같이 전송 상대마다 우선도를 유지할 필요가 생기지만 반드시 전송 요구원과 전송 상대의 수가 동등하다고는 할 수 없기 때문에, 전송 요구원이 증가하는 것에 의해서 전송 상대방이 많아지면 종래 방법에서는 더욱 유지 수단이 증가하게 되고, 또 그의 데이터 전송 처리에 있어서도 우선도와 등록순의 양쪽을 체크할 필요가 있기 때문에, 제어가 복잡하게 된다는 문제는 해결되지 않는다.
또, 종래의 저소비 전력을 실현하는 클럭 제어방식에 관해서는 일본 특허 공개 공보 평성 제 08-255034 호의 장치에 있어서 클럭의 공급/정지 제어를 실행하는 경우, 기능 회로를 동작시키기 전과 후에 반드시 제어 레지스터에 액세스할 필요가 있기 때문에 CPU 등의 프로그램에 의해 상세한 제어를 실행할 필요가 있다는 문제가 있었다.
또, 일본 특허 공개 공보 평성 제 08-153387 호의 FIFO 메모리에서는 메모리셀에 대한 클럭 제어 방식이 개시되어 있지만, 일반적으로 부품으로서 사용하는 메모리 디바이스에는 여기서 언급한 바와 같은 제어는 고려되어 있지 않고, 외부로부터 제어할 수밖에 없다. 그리고, 그의 외부에는 메모리 콘트롤러를 구비하고 있기 때문에, 메모리 콘트롤러도 포함시켜 저소비 전력화 제어를 실행할 필요가 있다. 따라서, 사전에 데이터 전송 요구를 복수개 예약해 두는 경우나 메모리 액세스 패턴이 임의인 경우 또는 전송 회수나 개수가 임의인 경우, 또한 전송 개시가 임의의 타이밍에 있어서 복수 있는 경우에는 그 검출 방법을 이 특허의 개시 방법과 같이 메모리로의 액세스 개시 시점을 리세트 신호와 같은 것으로는 할 수 없다. 또한, 전송 종료의 검출도 최종 워드선 액세스를 검출하는 등 불가능하고, 또 데이터 전송 요구 예약 수에 따라서도 또는 전송 개수도 임의이기 때문에 미리 설정해 둘 수 없다. 또, 액세스할 메모리가 1개이면, 메모리내의 액세스하지 않는 영역에도 클럭을 공급할 필요가 있어 불필요한 전력을 소비하게 된다. 또, 메모리가 DRAM인 경우, 1개의 DRAM으로 구성하면 일부의 영역만 액세스하는 경우라도, 액세스할 때마다 DRAM 전체를 동작시킬 필요가 있을 뿐만 아니라, 리프레쉬 동작시에도 DRAM 전체를 동작시킬 필요가 있어 쓸데없는 전력을 소비하게 된다는 문제가 있었다.
또, 일본 특허 공개 공보 평성 제 7-182857 호의 장치에서는 시스템의 대기시에만 셀프 리프레쉬 모드 제어 회로로 전환되도록 제어되고 있기 때문에, 동작중에 실시간으로 임의로 설정 변경할 수 없고, 동작시의 전력을 저감하는 것이 불가능하다. 또, DRAM 뱅크를 복수로 분할한 경우에는 어떻게 제어할 것인지 개시되어 있지 않다. 또, DRAM을 분할해서 구성한 경우, 사용하지 않는 영역에 대해서 자동 리프레쉬를 실행하는 경우에는 그 사용하지 않는 영역으로도 클럭을 입력할 필요가 있어 쓸데없는 전력을 소비하게 된다. 또, 클럭을 공급하지 않으면 데이터가 소거되게 된다는 문제가 있었다.
또, 일본 특허 공개 공보 평성 제 7-169266 호의 경우에는 반도체 메모리 자신의 구성을 변경해서 특별하게 작성할 필요가 있어 비용의 증가를 초래하게 된다. 또, 메모리셀 어레이(60001)마다 어드레스 선택 회로(60003) 및 로우디코더(60002), 리프레쉬 카운터(60004)를 마련하고 있기 때문에, 회로 규모가 증대하게 되고, 또 반도체 메모리가 저소비 전력화를 목적으로 이루어진 것이 아닌 경우에도 있어서 본 발명에 관한 저소비 전력을 목적으로 한 메모리 뱅크를 분할한 구성의 DMA 콘트롤러에는 적합하지 않은 것이었다.
또, 실제의 LSI에 있어서는 대용량의 메모리 영역을 단일 DRAM으로 실현한 경우의 결과로서 이하와 같은 보고가 되어 있다.
「A Low Power MPEG-4 Video/Audio codec LSI with 16Mbit embedded DRAM」Proceedings of COOL Chips Ⅲ, pp89-100, April. 2000에 의하면, 단일 매크로로 구성되어 있는 16Mbit DRAM의 소비 전력은 LSI 전체의 240㎽에 대해서 대략 25%를 차지하고 있다. 일반적으로, 논리부는 미세화에 수반해서 전원 전압이 비교적 용이하게 저하해 가기 때문에 소비 전력의 삭감은 진행할 것으로 예상되지만, 혼재 DRAM에 관해서는 메모리 셀 구동 때문에 전압을 용이하게 저하시킬 수 없다. 또한, 금후 혼재되는 메모리 용량은 화상 애플리케이션의 다양화(3차원 그래픽스나 해상도의 향상 등)에 의해 증대할 것으로 예상된다. 따라서, 저소비 전력화가 진행하는 시스템 LSI에 있어서 DRAM을 대표로 하는 메모리의 소비 전력이 차지하는 비율은 무시할 수 없게 될 것으로 예상된다.
본 발명의 목적은 상기 과제를 감안해서 이루어진 것으로서, 회로 규모가 적어 용이하게 설계 가능하고 데이터 전송 효율이 좋고 또한 저소비 전력인 고성능 DMA 콘트롤러를 제공하는 것이다.
도 1은 본 발명의 실시예 1에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 2는 본 발명의 실시예 1에 있어서의 DMA 콘트롤러의 데이터 전송 요구 수신부의 구성도,
도 3은 본 발명의 실시예 2에 있어서의 복수의 DMA 전송 요구 발행원으로부터 DMA 전송 요구되는 DMA 콘트롤러를 사용한 시스템의 구성도,
도 4는 본 발명의 실시예 2에 있어서의 복수의 DMA 전송 요구 발행원으로부터 DMA 전송 요구되는 DMA 콘트롤러의 예비 예약 수단 및 데이터 전송 요구 수신부의 구성도,
도 5는 본 발명의 실시예 3에 있어서의 시스템에 있어서 데이터 전송 요구와 DMA 전송 실행의 타이밍을 도시한 도면,
도 6은 본 발명의 실시예 4에 있어서의 DMA 콘트롤러의 데이터 전송 요구 수신부의 구성도,
도 7은 본 발명의 실시예 5에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 8은 본 발명의 실시예 5에 있어서의 DMA 콘트롤러의 데이터 전송 요구 수신부의 구성도,
도 9는 발명의 실시예 5에 있어서의 복수의 DMA 전송 요구 발행원으로부터 DMA 전송 요구되는 DMA 콘트롤러를 사용한 시스템의 구성도,
도 10은 본 발명의 실시예 5에 있어서의 복수의 DMA 전송 요구 발행원으로부터 DMA 전송 요구되는 DMA 콘트롤러의 예비 예약 수단 및 데이터 전송 요구 수신부의 구성도,
도 11은 본 발명의 실시예 6에 있어서의 DMA 콘트롤러의 데이터 전송 요구 수신부의 구성도,
도 12는 본 발명의 실시예 6에 있어서의 복수의 DMA 전송 요구 발행원으로부터 DMA 전송 요구되는 DMA 콘트롤러의 예비 예약 수단 및 데이터 전송 요구 수신부의 구성도,
도 13은 본 발명의 실시예 7의 DMA 콘트롤러에 있어서 미리 설정된 타이밍 신호가 입력되고 있는 데이터 전송 요구 수신부의 구성도,
도 14는 본 발명의 실시예 7의 DMA 콘트롤러에 있어서 복수의 타이밍 신호가 입력되고 있는 데이터 전송 요구 수신부의 구성도,
도 15는 본 발명의 실시예 8에 있어서의 DMA 콘트롤러의 데이터 전송 요구 수신부의 구성도,
도 16은 본 발명의 실시예 8에 있어서의 복수의 DMA 전송 요구 발행원으로부터 DMA 전송 요구되는 DMA 콘트롤러의 예비 예약 수단 및 데이터 전송 요구 수신부의 구성도,
도 17은 본 발명의 실시예 9에 있어서의 DMA 콘트롤러의 DMA 파라미터 메모리의 내용의 1예를 도시한 도면,
도 18은 본 발명의 실시예 10에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 19는 본 발명의 실시예 11에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 20은 본 발명의 실시예 12에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 21은 본 발명의 실시예 12에 있어서의 메모리 영역을 분할했을 때의 소비 전력을 비교한 그래프,
도 22는 본 발명의 실시예 12에 있어서 메모리 영역을 4분할했을 때의 소비 전력을 비교한 그래프,
도 23은 본 발명의 실시예 12에 있어서 분할 메모리와 단일 메모리에 있어서 MPEG-4의 Simple@L1을 실행했을 때의 소비 전력을 비교한 그래프,
도 24는 본 발명의 실시예 13에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 25는 본 발명의 실시예 14에 있어서의 DMA 콘트롤러를 사용한 시스템의 구성도,
도 26은 본 발명의 실시예 15에 있어서의 DMA 콘트롤러를 사용한 시스템의구성도,
도 27은 종래 예에 따른 직접 메모리 액세스 콘트롤러인 DMAC의 블럭도,
도 28은 종래 예에 따른 DMAC를 일부로 하는 데이터 처리 장치의 블럭도,
도 29는 종래 예에 따른 저소비 전력 장치의 회로 구성도의 일례를 도시한 도면,
도 30은 종래 예에 따른 FIFO 메모리의 1 구성 예를 기능면에서 도시한 블럭도,
도 31은 종래 예에 따른 마이크로 컴퓨터 시스템의 1 구성 예를 도시한 블럭도,
도 32는 종래 예에 따른 반도체 메모리 장치내에 있어서의 메모리 셀 어레이를 분할했을 때의 구성을 도시한 도면.
도면의 주요 부분에 대한 부호의 설명
101, 501, 801, 901, 1001, 1101, 1201, 1601, 1701, 1801 : 데이터 전송 제어 장치
102, 102a, 102b, 102c, 102d, 102e, 502, 1002, 1102, 1202 : 데이터 전송 요구 수신부
103, 503, 1003, 1103, 1203, 1603, 1703, 1803 : 메모리 인터페이스부
104, 504, 1004, 1104, 1204, 1604, 1704 : 데이터 입출력부
105, 505, 1005, 1105, 1205 : DMA 파라미터 메모리
106, 506, 1006, 1106, 1206 : 기동 신호 수신부
110, 510, 810, 910, 1012, 1120, 1220, 1620, 1720, 1820 : 메인 메모리
111, 511, 1011, 1121, 1221, 1621, 1721, 182 1: 프로세서
112, 512, 812, 912, 1013, 1223, 1622, 1722, 1822 : 로컬 메모리
201, 601, 701,1301, 1401, 1501 : 우선 레벨 해독부
202, 402, 602, 702, 1302, 1402, 1502 : 선택기
210, 410, 610, 710, 1310, 1410, 1510 : 예약 레지스터
211, 411, 611, 711, 1311, 1411, 1511 : 우선 레벨 1 예약 레지스터
212, 412, 612, 712, 1312, 1412, 1512 : 우선 레벨 2 예약 레지스터
213, 413, 613, 713, 1313, 1413, 1513 : 우선 레벨 3 예약 레지스터
401 : 우선 레벨/캔슬 해독부
621∼623 : 예약 포인터
631∼633 : 판독 포인터
811, 911 : 메인 프로세서
813, 913 : 서브 프로세서
820, 830, 840 : 예비 예약 수단
821, 831, 841 : 예비 1 예약 레지스터
822, 832, 842 : 예비 2 예약 레지스터
823 : 예비 선택기
1007, 1107, 1207, 1607, 1707, 1807 : 클럭 제어부
1008, 1108, 1208 : 메모리 클럭 제어 레지스터
1009, 1010, 1109, 1110, 1209, 1210 : 클럭 공급/정지부
1111, 1212 : 메인 메모리 클럭 공급/정지부
1211, 1708 : 메인 메모리 뱅크 레지스터
1608 : 어드레스 판정부
1823 : 전원 스위치
상기 과제를 해결하기 위해서, 본 발명의 제 1 특징에 따른 고성능 DMA 콘트롤러는 각종 데이터를 축적하는 주기억 수단과 이 주기억 수단의 전송 상대인 복수의 자기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는, 상기 주기억 수단으로의 제어 신호를 발생하는 인터페이스부와, 데이터의 입출력을 제어하는 데이터 입출력부와, 데이터 전송을 실행하는 데 필요한 각종 파라미터를 저장하는 파라미터 유지 수단과,데이터 전송의 요구를 접수하는 데이터 전송 요구 수신부와, 데이터 전송 제어부의 기동 및 정지 명령을 수신하는 기동 명령 수신부를 구비하고, 상기 데이터 전송 요구 수신부는 데이터 전송 요구 발행원으로부터 자유롭게 설정되는 실행 우선도 정보 및 상기 자기억 수단의 종별 정보로 이루어지는 복수의 데이터 전송 요구의 예약을 접수하여, 이 실행 우선도 정보마다 상기 자기억 수단의 종별 정보를 유지해 두는 것이며, 상기 데이터 전송 제어부는 장치 전체를 제어하는 시스템 콘트롤러부로부터 기동 명령이 발행될 때까지는 상기 데이터 전송 요구의 예약만을 접수하고, 상기 시스템 콘트롤러부로부터 기동 명령이 발행되면 예약된 데이터 전송 요구를 상기 실행 우선도가 높은 것중에서 데이터 전송 요구된 시간이 빠른 것부터 순서대로 상기 자기억 수단의 종별 정보를 해독하고, 그 해독 결과에 따라서 상기 파라미터 유지 수단으로부터 데이터 전송에 필요한 파라미터를 순차 취출(인출)하여 데이터 전송을 실행하는 것이다.
또, 본 발명의 제 2 특징에 따른 고성능 DMA 콘트롤러는 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 발행원이 복수인 경우, 상기 데이터 전송 제어부는 상기 복수의 데이터 전송 요구 발행원으로부터 자유롭게 설정되는 실행 우선도 정보 및 상기 자기억 수단의 종별 정보를 포함하는 데이터 전송 요구의 예약을 상기 데이터 전송 요구 발행원마다 접수하는 예비 예약 수단을 구비하며, 상기 예비 예약 수단은 미리 결정된 상기 전송 요구 발행원의 우선도에 따라서 상기 데이터 전송 요구 발행원마다 접수한 데이터 전송 요구를 상기 데이터 전송 요구 수신부로 전송하는 것이다.
또, 본 발명의 제 3 특징에 따른 고성능 DMA 콘트롤러는 제 1 또는 제 2 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 복수의 데이터 전송 요구 발행원 중의 1개가 시스템 전체를 제어하는 시스템 콘트롤러부이다.
또, 본 발명의 제 4 특징에 따른 고성능 DMA 콘트롤러는 제 2 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 예비 예약 수단은 상기 데이터 전송 요구를 상기 전송 요구 발행원마다 일시 유지하는 복수의 예비 예약 레지스터와, 상기 예비 예약 레지스터에 일시 유지된 상기 데이터 전송 요구의 출력을 선택하는 예비 선택기를 구비하며, 상기 예비 선택기는 미리 결정된 상기 데이터 전송 요구 발행원의 우선도에 따라서 상기 데이터 전송 요구를 선택하여 상기 데이터 전송 요구 수신부로 전송하는 것이다.
또, 본 발명의 제 5 특징에 따른 고성능 DMA 콘트롤러는 제 1, 제 2 또는 제 4 특징 중의 어느 하나에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 수신부는, 상기 데이터 전송 요구의 실행 우선도 정보를 해독하는 우선 레벨 해독부와, 상기 자기억 수단의 종별 정보를 상기 실행 우선도 정보마다 저장하는 실행 우선도 정보마다의 예약 레지스터와, 상기 자기억 수단의 종별 정보의 출력을 선택하는 선택기를 구비하며, 상기 우선 레벨 해독부에 의해 복수의 상기 데이터 전송 요구를 상기 각 실행 우선도 정보마다의 예약 레지스터에 저장하고, 이 각 실행 우선도 정보마다의 예약 레지스터에 상기 데이터 전송 요구의 예약이 있는지 어떤지를 나타내는 각 예약 플래그(flag)의 상태에 따라 다음에 실행할 상기 자기억 수단의 종별 정보를 상기 선택기에 의해 선택하여 상기 인터페이스부로 전송하는것이다.
또, 본 발명의 제 6 특징에 따른 고성능 DMA 콘트롤러는 제 5 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는 데이터 전송 처리 개시전인 전(前) 데이터 전송 처리가 종료하기 일정 시간 전에 사전에 상기 예약 레지스터에 예약되어 있는 데이터 전송 요구 중에서 상기 실행 우선도 정보 및 전송 요구된 시간에 따라서 다음에 실행할 데이터 전송 종별 정보를 판단하는 것이다.
또, 본 발명의 제 7 특징에 따른 고성능 DMA 콘트롤러는 제 6 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구는 상기 예약 레지스터에 예약된 데이터 전송 요구를 취소하는 캔슬(cancel) 정보를 포함하는 것이다.
또, 본 발명의 제 8 특징에 따른 고성능 DMA 콘트롤러는 제 7 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 캔슬 정보는 실행중인 데이터 전송에 대해서도 유효한 것이다.
또, 본 발명의 제 9 특징에 따른 고성능 DMA 콘트롤러는 제 7 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 우선 레벨 해독부는, 상기 데이터 전송 요구가 상기 예약 레지스터에 예약된 데이터 전송 요구를 취소하는 캔슬 정보를 포함하는지 여부를 또한 해독하는 것이고, 상기 캔슬 정보가 예약된 데이터 전송 요구에 대해서 이루어진 경우에는 상기 예약 플래그의 상태를 변경하는 것에 의해 상기 데이터 전송 요구를 캔슬하고, 상기 캔슬 정보가 실행중인 데이터 전송에 대해서 이루어진 경우에는 상기 시스템 콘트롤러부에 의해 상기 데이터 전송을 종료시키는 것이다.
또, 본 발명의 제 10 특징에 따른 고성능 DMA 콘트롤러는 제 5 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 수신부는, 장치 전체를 제어하는 시스템 콘트롤러부와 접속되고, 상기 실행 우선도 정보마다의 예약 레지스터는, 링 형상으로 배치된 복수의 설정 레지스터와, 상기 복수의 설정 레지스터 중에서, 다음에 설정될 설정 레지스터 및 다음에 실행될 설정 레지스터를 선택하는 포인터 레지스터를 구비한 것이다.
또, 본 발명의 제 11 특징에 따른 고성능 DMA 콘트롤러는 제 10 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 수신부는, 상기 시스템 콘트롤러부와 접속되어 있고, 상기 복수의 설정 레지스터 또는 상기 포인터 레지스터는 상기 데이터 전송 요구에 관계없이 상기 시스템 콘트롤러부에 의해서 자유롭게 판독/기입되는 것이다.
또, 본 발명의 제 12 특징에 따른 고성능 DMA 콘트롤러는 제 5 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 복수의 데이터 전송 요구는 실행 타이밍 정보를 더 포함하고, 상기 데이터 전송 요구 수신부는 상기 실행 우선도에 관계없이 지정된 상기 실행 타이밍 이외에서는 상기 실행 타이밍 정보를 포함하는 데이터 전송을 실행하지 않고, 상기 실행 타이밍으로 되면, 그 시각에 있어서의 상기 실행 우선도에 따라서 데이터 전송을 실행하는 것이다.
또, 본 발명의 제 13 특징에 따른 고성능 DMA 콘트롤러는 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 실행 타이밍 정보는, 상기 데이터 전송 요구를 예약하고 나서 이 데이터 전송을 실행할 때까지의 사이클 수를 나타내고 있는것이고, 상기 실행 우선도 정보마다의 예약 레지스터는, 상기 사이클 수를 유지하는 예약 레지스터를 더 구비하는 것이다.
또, 본 발명의 제 14 특징에 따른 고성능 DMA 콘트롤러는 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 실행 타이밍 정보는 상기 데이터 전송 요구 수신부로 송신될 결정된 타이밍 신호를 사용할지 여부를 지정하는 것이고, 상기 실행 우선도 정보마다의 예약 레지스터는, 상기 타이밍 신호를 사용할지 여부를 유지하는 타이밍 지정 레지스터를 더 구비하는 것이다.
또, 본 발명의 제 15 특징에 따른 고성능 DMA 콘트롤러는 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 실행 타이밍 정보는, 상기 데이터 전송 요구 수신부에 송신되는 타이밍 신호중에서 사용할 타이밍 신호의 종류를 지정하는 것이고, 상기 실행 우선도 정보마다의 예약 레지스터는, 상기 지정된 타이밍 신호의 종류를 유지하는 타이밍 종류 레지스터를 더 구비하는 것이다.
또, 본 발명의 제 16 특징에 따른 고성능 DMA 콘트롤러는 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구는, 상기 데이터 전송 요구의 반복 실행 회수를 나타내는 반복 정보를 더 포함하며, 상기 데이터 전송 요구 수신부는, 상기 반복 정보를 유지하는 반복 회수 지정 레지스터와, 상기 반복 회수를 카운트하는 반복 회수 카운터를 더 구비하고, 상기 데이터 전송 요구 수신부는, 상기 반복 정보를 수신한 경우에, 그 데이터 전송 요구 예약을 유지하여 상기 실행 타이밍으로 되면, 그 시각에 있어서의 실행 우선도에 따라서 상기 반복 실행 회수 및 상기 데이터 전송 요구를 반복해서 실행하는 것이다.
또, 본 발명의 제 17 특징에 따른 고성능 DMA 콘트롤러는 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단은 상기 자기억 수단마다 어드레스로 구획된 영역을 갖고, 상기 영역에는 상기 자기억 수단마다 대응한 데이터 전송에 사용되는 파라미터가 상기 시스템 콘트롤러부에 의해서 미리 저장되어 있는 것이다.
또, 본 발명의 제 18 특징에 따른 고성능 DMA 콘트롤러는 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단은 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역을 갖고, 상기 영역에는 액세스 패턴마다 대응한 파라미터가 상기 시스템 콘트롤러부에 의해서 미리 저장되어 있는 것이다.
또, 본 발명의 제 19 특징에 따른 고성능 DMA 콘트롤러는 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단은 상기 자기억 수단마다 어드레스로 구획된 영역과 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역을 갖고, 상기 시스템 콘트롤러부에 의해 상기 자기억 수단마다 어드레스로 구획된 영역에는 상기 자기억 수단마다 대응한 데이터 전송에 사용되는 파라미터가 미리 저장되고, 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역에는 액세스 패턴마다 대응한 파라미터가 미리 저장되는 것이다.
또, 본 발명의 제 20 특징에 따른 고성능 DMA 콘트롤러는 제 17 특징 내지 제 19 특징중의 어느 하나에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단에 저장되는 파라미터에는 상기 자기억 수단마다의 기입/판독 정보, 액세스 단위 정보, 액세스 패턴 정보가 포함되고, 또 액세스 패턴마다의 개시 어드레스, 전송 개수, 직사각형 영역 액세스의 정보, 링 버퍼를 형성하는 영역 개시 및 종료 어드레스 정보를 포함하는 것이다.
또, 본 발명의 제 21 특징에 따른 고성능 DMA 콘트롤러는 제 1 특징 또는 제 2 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는, 상기 인터페이스부, 상기 데이터 입출력부, 상기 파라미터 유지 수단 및 상기 주기억 수단에 대한 클럭의 공급과 정지를 제어하는 클럭 제어부를 더 구비하며, 상기 클럭 제어부는 상기 시스템 콘트롤러부가 상기 데이터 전송 제어부를 기동시키고 있지 않은 경우에는 클럭의 공급을 정지하고, 또 기동시키고 있으며 또한 데이터 전송 요구가 상기 데이터 전송 요구 수신부에 예약되어 있는 경우에는 클럭을 공급하며, 또한 상기 데이터 전송 요구 수신부에 예약이 없어져서, 최후의 데이터 전송이 종료한 경우에는 클럭의 공급을 정지하는 것이다.
또, 본 발명의 제 22 특징에 따른 고성능 DMA 콘트롤러는 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는, 상기 인터페이스부, 상기 데이터 입출력부, 상기 파라미터 유지 수단 및 상기 주기억 수단에 대한 클럭의 공급과 정지를 제어하는 클럭 제어부를 더 구비하고, 상기 클럭 제어부는 상기 시스템 콘트롤러부가 상기 데이터 전송 제어부를 기동시키고 있지 않는 경우에는 클럭의 공급을 정지하며, 또한, 기동시키고 있고, 또 데이터 전송 요구가 상기 데이터 전송 요구 수신부에 예약되어 있는 경우에는 클럭을 공급하고, 또한, 기동되어 있고, 또 예약되어 있어도, 상기 데이터 전송 요구 수신부가 수신한 상기실행 타이밍 정보에 의해, 상기 실행 타이밍으로 될 때까지는 클럭의 공급을 정지하고, 상기 실행 타이밍으로 되면, 클럭 공급을 개시하는 것이며, 또한, 상기 데이터 전송 제어부에 예약이 없어져서, 최후의 데이터 전송이 종료한 경우에는, 클럭의 공급을 정지하는 것이다.
또, 본 발명의 제 23 특징에 따른 고성능 DMA 콘트롤러는 각종 데이터를 축적하는 주기억 수단과 이 주기억 수단의 전송 상대인 복수의 자기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서, 상기 주기억 수단은 복수의 영역으로 분할되어, 이 영역마다 클럭이 공급되고 있는 복수의 개별 주기억 수단으로 이루어지고, 상기 데이터 전송 제어부는, 상기 주기억 수단과 상기 데이터 전송 제어부에 대해서 클럭의 공급을 정지 제어하는 클럭 제어부와, 액세스할 어드레스 영역을 판정하는 어드레스 판정부를 구비하며, 상기 클럭 제어부는 상기 복수의 개별 주기억 수단중, 상기 어드레스 판정부에 의해 선택된 사용 영역에 대해서만 클럭 및 제어 신호를 공급하고, 비선택 영역에 대해서는 클럭 및 제어 신호를 공급하지 않는 것이다.
또, 본 발명의 제 24 특징에 따른 고성능 DMA 콘트롤러는 각종 데이터를 축적하는 주기억 수단과 이 주기억 수단의 전송 상대인 복수의 자기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서, 상기 주기억 수단은 복수의 영역으로 분할되어, 이 영역마다 클럭이 공급되고 있는 복수의 개별 주기억 수단으로 이루어지고, 상기 데이터 전송 제어부는, 상기 주기억 수단과 상기 데이터 전송 제어부에 대해서 클럭의 공급을 정지 제어하는 클럭 제어부와, 상기 개별 주기억 수단의 사용 영역을 설정하는 영역 설정 레지스터를 구비하며, 상기 클럭 제어부는 상기 복수의 개별 주기억 수단중 상기 영역 설정 레지스터에 의해 선택 설정된 사용 영역에 대해서만 클럭 및 제어 신호를 공급하고 비선택 영역으로는 클럭 및 제어 신호를 공급하지 않는 것이다.
또, 본 발명의 제 25 특징에 따른 고성능 DMA 콘트롤러는 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는 상기 개별 주기억 수단에 대한 전원 공급을 정지 제어하는 전원 공급 제어부를 구비하며, 상기 선택 설정된 사용 영역에 대해서만 전원을 공급하고, 상기 비선택 영역에 대해서는 전원을 공급하지 않는 것이다.
또, 본 발명의 제 26 특징에 따른 고성능 DMA 콘트롤러는 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 개별 주기억 수단은 SRAM으로 구성되어 있는 것이다.
또, 본 발명의 제 27 특징에 따른 고성능 DMA 콘트롤러는 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 개별 주기억 수단은 DRAM으로 구성되어 있고, 상기 선택 설정된 DRAM에 대해서만 클럭 및 제어 신호를 공급하며, 또한 리프레쉬 동작을 실행하고, 상기 비선택 DRAM에 대해서는 클럭 및 제어 신호를 공급하지 않고, 또한 리프레쉬 동작을 실행하지 않는 것이다.
또, 본 발명의 제 28 특징에 따른 고성능 DMA 콘트롤러는 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 개별 주기억 수단은 DRAM으로 구성되어 있고, 상기 선택 설정된 DRAM에 대해서만 클럭 및 제어 신호를공급하며, 또한 자동 리프레쉬 동작을 실행하고, 상기 비선택 DRAM에 대해서는 클럭을 공급하지 않고, 또한 자동 리프레쉬 동작을 실행하지 않고, 셀프 리프레쉬 동작을 실행하는 것이다.
(발명의 실시예)
(실시예 1)
이하, 실시예 1에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 1 및 도 2를 이용하여 본 실시예 1에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 1은 실시예 1에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템 구성도이고, 도 2는 실시예 1에 있어서의 데이터 전송 제어부내의 데이터 전송 요구 수신부(102)의 구성을 도시한 도면이다.
도 1에 있어서 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(101), 프로세서(111), 메인 메모리(110), 로컬 메모리(112), DMA 버스 및 로컬 버스로 이루어지는 것이다.
상기 프로세서(111)는 데이터 전송 제어부(101)를 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(101)에 대해서 DMA 전송 요구를 발행하는 것이다.
메인 메모리(110)는 각종 데이터를 저장하는 것이고, 로컬 메모리(112)는 로컬 버스에 의해서 프로세서(111)에 접속된 로컬 메모리군이다.
또, 상기 데이터 전송 제어부(DMA 콘트롤러)(101)는 데이터 전송 요구 수신부(102), 메모리 인터페이스부(103), 데이터 입출력부(104), DMA 파라미터 메모리(105) 및 기동 신호 수신부(106)를 구비하는 것이다.
메모리 인터페이스부(103)는 메인 메모리(110)로의 제어 신호를 생성하는 것이고, 데이터 입출력부(104)는 데이터의 입출력을 제어하는 것이며, DMA 파라미터 메모리(105)는 DMA 전송을 실행하기 위해서 필요한 파라미터를 저장하는 것이다.
기동 신호 수신부(106)는 데이터 전송 제어부(101)의 기동 및 정지 명령을 프로세서(111)로부터 수신하고, 메모리 인터페이스부(103)로 그 명령을 전달하는 것이다.
데이터 전송 요구 수신부(102)는 프로세서(111)로부터의 DMA 전송 요구를 접수하는 것이고, 그 구성의 상세(詳細)에 관해서는 이하 도 2를 이용하여 설명한다.
도 2에 있어서 데이터 전송 요구 수신부(102)는 우선 레벨 해독부(201), 예약 레지스터(210) 및 선택기(202)로 구성된다.
우선 레벨 해독부(201)는 입력된 DMA 전송 요구의 우선 레벨을 해독하고, 저장할 레지스터를 확정하는 것이다.
예약 레지스터(210)는 우선 레벨 1 예약 레지스터(211)∼우선 레벨 3 예약 레지스터(213)로 이루어지고, 개개의 우선 레벨 예약 레지스터에는 전송 상대 종별 정보(자원(resource) A∼자원 C)가 저장된다. 여기서는, 그 전송 상대 종별 정보를 저장하기 위한 설정 레지스터가 각 우선 레벨 예약 레지스터에 1개씩 구비되어 있다. 각 우선 레벨 예약 레지스터(211∼213)에 예약이 들어가면, 각 우선 레벨예약 레지스터에 대응한 예약 flag1∼예약 flag3이 설정되도록 되어 있다. 또, 이들 예약 flag는 논리합이 취해져 데이터 전송 요구 수신부(102)에 예약이 있는 것을 나타내는 예약 플래그로서 메모리 인터페이스부(103)로 출력된다.
선택기(202)는 개개의 우선 레벨 예약 레지스터(211∼213)로부터 출력되는 전송 상대 종별 정보를 선택하는 선택기에서, 그의 각 우선 레벨 예약 레지스터에서 출력되는 예약 flag1∼예약 flag3의 상태에 따라서 선택지가 변경되도록 되어 있다. 예를 들면, 예약 flag1이 "1"인 경우에는 우선 레벨 1 예약 레지스터(211)의 출력을 선택하고, 예약 flag1이 "0"이고 또한 예약 flag2가 "1"인 경우에는 우선 레벨 2 예약 레지스터(212)의 출력이 선택된다. 또, 예약 flag1과 예약 flag2가 모두 "0"이고 예약 flag3이 "1"인 경우에는 우선 레벨 3 예약 레지스터(213)의 출력이 선택되도록 되어 있다. 즉, 여기서의 우선도는 우선 레벨 1 > 우선 레벨 2 > 우선 레벨 3의 순인 것을 나타내고 있다.
다음에, 도 1 및 도 2를 이용하여 본 실시예 1의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(101)의 동작을 설명한다.
먼저, 프로세서(111)는 로컬 버스에 의해 DMA 파라미터 메모리(105)에 DMA 전송 실행에 필요한 파라미터, 예를 들면 판독/기입 정보, 바이트/워드 등의 액세스 단위 정보, 연속 액세스인지 직사각형 액세스인지 링 포인터 액세스인지 등을 나타내는 액세스 정보 및 개시 어드레스 등의 각종 어드레스 정보나 전송 개수 등을 미리 저장해 둔다.
프로세서(111)는 데이터 전송 제어부(101)(DMA 콘트롤러) 기동의 전(前)준비로서 즉시 실행하고자 하는 DMA 명령을 미리 데이터 전송 요구 수신부(102)에 예약해 둔다. 이 때, 예약 플래그가 메모리 인터페이스부(103)로 출력된다.
본 시스템이 동작 개시 상태로 되면, 프로세서(111)는 기동 신호 수신부(106)에 대해 기동 명령을 발행한다. 기동 명령을 수신한 데이터 전송 제어부(101)는 DMA 전송 동작을 개시하게 된다.
먼저, 메모리 인터페이스부(103)는 예약 플래그가 유효로 되어 있으므로, 데이터 전송 요구 수신부(102)에 대해 예약 체크 신호를 발행한다.
현재, 데이터 전송 요구 수신부(102)에는 도 2에 도시하는 바와 같이 3개의 DMA 전송의 예약이 들어가 있다고 하면, 예약 flag1은 "1"로 되어 있다. 현재, 도 2에 있어서 우선 레벨 1 예약 레지스터(211)의 설정 레지스터에 자원 C를 나타내는 코드가 저장되어 있으므로, 선택기(202)에 의해서 우선 레벨 1 예약 레지스터(211)의 출력인 자원 C(로컬 메모리 C)가 선택된다.
이 예약 정보인 자원 C가 DMA 종별 정보로서 메모리 인터페이스부(103)로 보내지면, 로컬 메모리 C의 예약이 들어가 있다는 것이 메모리 인터페이스부(103)에 의해서 해독된다.
그 후, 판독된 우선 레벨 1의 예약 flag1은 "O"으로 되고 예약 flag2는 "1"이기 때문에, 선택기(202)는 우선 레벨 2 예약 레지스터(212)의 출력을 선택한다.
메모리 인터페이스부(103)는 로컬 메모리 C의 DMA 전송 실행 정보가 저장되어 있는 DMA 파라미터 메모리(105)의 결정된 어드레스로 액세스하고, DMA 전송 실행에 필요한 파라미터를 로드한다. 로드한 값에 따라서 메모리 인터페이스부(103)는 메인 메모리(110)에 대해서 제어 신호를 생성하고 로컬 메모리 C와의 DMA 전송을 실행한다.
로컬 메모리 C와 메인 메모리(110)의 DMA 전송이 종료하면, 메모리 인터페이스부(103)는 다시 데이터 전송 요구 수신부(102)에 대해서 예약 체크 신호를 발행하고, 우선 레벨 2 예약 레지스터(212)의 설정 레지스터에 저장되어 있는 자원 B(로컬 메모리 B)의 정보를 출력한다.
마찬가지로, 이 예약 정보인 자원 B가 DMA 종별 정보로서 메모리 인터페이스부(103)로 보내지면, 로컬 메모리 B의 예약이 들어가 있다는 것이 메모리 인터페이스부(103)에 의해서 해독된다. 그 후, 예약 flag1="0", 예약 flag2="0", 예약 flag3="1"이기 때문에, 선택기(202)는 우선 레벨 3 예약 레지스터(213)를 선택한다. 이하, 마찬가지로 DMA 전송을 실행한다.
이렇게 하여, 메모리 인터페이스부(103)는 데이터 전송 요구 수신부(102)에 저장되어 있는 예약의 체크를 실행하고, 예약 플래그가 "0"으로 될 때까지 DMA 전송을 연속해서 실행한다.
또, 프로세서(111)가 기동 신호 수신부(106)에 대해서 정지 명령을 발행한 경우, 데이터 전송 제어부(101)는 현재 실행중인 DMA 전송을 종료한 시점에서 그 이후의 DMA 전송의 실행을 정지하고 DMA 전송의 예약만을 접수하게 된다.
이상과 같이, 본 실시예 1에서는 데이터 전송 제어부(DMA 콘트롤러)(101)가 기동 신호 수신부(106)를 구비하는 것에 의해, 데이터 전송 요구 발행원인 프로세서(111)로부터 접수한 DMA 전송을 실행하지 않고 예약만을 실행할 수 있다. 이에의해, 시스템 콘트롤러인 프로세서(111) 등의 프로그래밍의 자유도가 향상된다.
또, 본 실시예 1에서는 데이터 전송 요구 수신부(102)에 있어서 DMA 전송 예약을 우선도마다 전송 상대의 종별 정보를 유지하는 것이므로, 유지 레지스터의 수가 (전송 상대 종별 수 ×우선도를 나타내는 비트 수)가 아니라 (우선도 수 ×전송 상대 종별 수를 나타내는 비트 수)로 되어 데이터 전송 요구 수신부(102)내의 유지 레지스터 수를 적게 할 수 있다.
또, 본 실시예 1에서는 DMA 전송 실행을 위한 판단 제어를 전송 종별 정보의 모든 우선도를 보고 판단하는 것이 아니라 높은 우선도의 레지스터내에 저장되어 있는 전송 상대 종별 정보를 보고 판단하면 좋으므로, 그 판단 제어가 용이하게 될 뿐만 아니라 회로도 간소화할 수 있다.
(실시예 2)
이하, 실시예 2에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 3 및 도 4를 이용하여 본 실시예 2에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 3은 실시예 2에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템 구성도이고, 도 4는 실시예 2에 있어서의 데이터 전송 제어부내의 데이터 전송 요구 수신부의 구성을 도시한 도면이다.
도 3에 있어서의 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(801)에 대한 DMA 전송 요구의 발행원이 복수 있는 경우이고, 본 실시예 2에서는 DMA 전송 요구의 발행원이 메인 프로세서(811) 및 서브 프로세서(813)인 경우를 예로 들어 설명한다. 따라서, 본 실시예 2에 있어서의 본 시스템의 구성은 상기 데이터 전송 제어부(801), 메인 프로세서(811) 및 서브 프로세서(813), 메인 메모리(810), 로컬 메모리(812), DMA 버스 및 로컬 버스로 이루어지는 것이다.
상기 메인 프로세서(811) 및 서브 프로세서(813)는 데이터 전송 제어부(801)에 대해서 DMA 전송 요구를 발행하는 것이고, 또한 메인 프로세서(811)는 데이터 전송 제어부(801)을 비롯하여 시스템 전체를 제어하는 것이다.
메인 메모리(810)는 각종 데이터를 저장하는 것이고, 로컬 메모리(812)는 로컬 버스에 의해서 메인 프로세서(811) 및 서브 프로세서(813)에 접속된 로컬 메모리군이다.
또, 상기 데이터 전송 제어부(DMA 콘트롤러)(801)는 예비 예약 수단(820), 데이터 전송 요구 수신부(102), 메모리 인터페이스부(103), 데이터 입출력부(104), DMA 파라미터 메모리(105) 및 기동 신호 수신부(106)를 구비하는 것이다.
예비 예약 수단(820)은 복수의 DMA 전송 요구의 발행원 즉 메인 프로세서(811) 및 서브 프로세서(813)로부터의 DMA 전송 요구를 접수하여 일시적으로 보관하고, 시스템 제어의 중요도에 따라 미리 설정되어 있는 우선도에 따라서 데이터 전송 요구 수신부(102)로 전송하는 DMA 전송 요구를 선택하는 것이다.
또한, 그 밖의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
이하, 데이터 전송 제어부(801)내의 데이터 전송 요구 수신부(102) 및 예비 예약 수단(820)의 상세한 구성에 관해서 도 4를 이용하여 설명한다.
도 4에 있어서, 예비 예약 수단(820)은 메인 프로세서(811)로부터의 DMA 전송 요구를 접수하는 예비 1 예약 레지스터(821), 서브 프로세서(813)로부터의 DMA 전송 요구를 접수하는 예비 2 예약 레지스터(822), 상기 데이터 전송 요구 수신부(102)에 대해서 상기 복수의 예비 예약 레지스터에 저장된 DMA 전송 요구를 시스템 제어의 중요도에 따라 미리 설정되어 있는 우선도에 따라서 선택하는 예비 선택기(823)로 구성되어 있다.
상기 예비 1 예약 레지스터(821), 예비 2 예약 레지스터(822) 각각은 우선 레벨 레지스터와 종별 레지스터를 구비하고, 각 프로세서로부터 출력된 DMA 전송 요구의 정보인 우선도와 전송 상대 종별 정보(자원 A∼자원 C)를 각각 상기 우선 레벨 레지스터, 종별 레지스터에 일시적으로 유지한다. 이 각 예비 예약 레지스터(821, 822)에 상기 예약 정보가 저장되면, 각 예비 예약 레지스터(821, 822)로부터의 예비 예약 flag1, 예비 예약 flag2가 유효로 된다.
또한, 데이터 전송 요구 수신부(102)에 관해서는 실시예 1과 마찬가지의 구성을 갖기 때문에 여기서는 설명을 생략한다.
다음에, 도 3 및 도 4를 이용하여 본 실시예 2의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(801)의 동작을 설명한다.
메인 프로세서(811)로부터 DMA 전송 요구가 예비 예약 수단(820)으로 들어가면, 상술한 바와 같이 하여 예비 1 예약 레지스터의 우선도 레지스터 1 및 종별 레지스터 1에 상기 DMA 전송 요구의 정보가 유지된다. 상기 예비 1 예약 레지스터에 정보가 접수되면 예비 예약 플래그 1이 유효로 되고, 예비 선택기(823)는 상기 예비 1 예약 레지스터에 유지되어 있던 정보(우선 레벨, 전송 상대 종별 정보)를 데이터 전송 요구 수신부(102)로 전송한다.
여기서, 메인 프로세서(811) 및 서브 프로세서(813)로부터 예비 예약 수단(820)에 대해서 동시에 DMA 전송 요구가 발행된 경우에는 메인 프로세서(81l)로부터의 DMA 전송 요구가 상기 예비 1 예약 레지스터(821)에 입력되고, 또 서브 프로세서(813)로부터의 DMA 전송 요구가 상기 예비 2 예약 레지스터(822)에 입력되며, 각 예비 예약 레지스터내의 우선 레벨 레지스터 및 종별 레지스터에 유지된다. 그리고, 정보가 유지됨과 동시에 예비 예약 flag1, 2 양쪽이 유효로 되지만, 본 실시예 2에서는 서브 프로세서(813)보다 메인 프로세서(811) 쪽이 시스템 제어의 중요도가 높다고 설정되어 있기 때문에, 예비 선택기(823)는 예비 1 예약 레지스터(821)에 유지되어 있는 메인 프로세서(811)로부터의 DMA 전송을 우선하여 선택하고, 이 DMA 전송 요구의 데이터를 데이터 전송 요구 수신부(102)로 출력한다. 그 후의 데이터 전송 요구 수신부(102)에 있어서의 동작은 실시예 1에서 설명한 것과 마찬가지이기 때문에 여기서는 설명을 생략한다.
또한, 본 실시예 2에 있어서는 DMA 전송 요구 발행원인 프로세서가 2개인 경우를 예로 들어 설명했지만, 이 DMA 전송 요구 발행원이 임의의 수인 경우에는 예비 예약 수단(820)내의 예비 예약 레지스터의 수를 그 DMA 전송 요구 발행원과 동일 수로 하면 마찬가지로 실현할 수 있다. 또, 상기 DMA 전송 요구에 포함되는 정보에 관해서도 여기서는 우선도 및 전송 상대 종별 정보로 했지만, 그 이외의 정보를 포함하고 있는 경우에 상기 각 예비 예약 레지스터에 구비된 레지스터 수를 증가시키는 것에 의해 용이하게 대응할 수 있는 것이다.
이상과 같이, 본 실시예 2에서는 예비 예약 수단(820)을 부가하도록 했으므로, 복수의 DMA 전송 요구원으로부터 동시에 발행되는 전송 요구를 제어할 수 있는 고성능 DMA 콘트롤러를 실현할 수 있다. 또, 단일 전송 요구원에 대응한 DMA 콘트롤러를 복수의 전송 요구원에 대응할 수 있도록 회로를 변경하는 경우에, 그 단일 전송 요구에 대응한 DMA 콘트롤러에 예비 예약 수단(820) 등을 부가하는 것에 의해 변경 가능하기 때문에, 회로를 재이용할 수 있다는 효과도 있다.
또한, 본 실시예에서는 DMA 전송 요구의 발행원이 프로세서인 것으로 하고 있지만, 서브 프로세서가 하드웨어이거나 메인 프로세서 및 서브 프로세서의 양쪽이 하드웨어이더라도 마찬가지로 처리 가능하다.
(실시예 3)
이하, 실시예 3에 있어서의 DMA 콘트롤러에 관해서 설명한다.
본 실시예 3에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
이하, 도 1, 도 2 및 도 5를 사용하여 실시예 1에 있어서의 데이터 전송 제어부(DMA 콘트롤러)(101)의 동작에 따라서 데이터 전송 요구, DMA 전송 실행의 타이밍 및 실행 데이터의 실행순 대기 상태의 천이에 관해서 설명한다.
도 5는 실시예 3에 있어서의 DMA 전송 요구, 그 DMA 전송 실행순 대기 상태의 천이 및 DMA 전송 실행의 타이밍을 도시한 도면이다.
현재, 도 5에 도시한 타이밍에서 프로세서(111)로부터 DMA 전송 요구가 발행된 것으로 한다. 데이터 전송 요구 수신부(102)에서는 도 5에 도시하는 바와 같이 실행 우선순이 천이되어 간다.
먼저, 도 5에 도시되는 바와 같이 프로세서(111)로부터 기동 명령이 발행되어 기동 신호가 "1"로 될 때까지 3개의 DMA 전송 요구가 발행되어 있는 것으로 한다(실행 대기 상태 (가)). 그리고, 이 상태에서 메모리 인터페이스부(103)로부터 예약 체크 신호가 발행된 경우, 예약되어 있는 요구중에서 가장 우선 레벨이 높은 우선 레벨 1의 예약이 먼저 실행되게 된다.
우선 레벨 1의 데이터 전송이 실행으로 옮겨지면, 데이터 전송 요구 수신부(102)에 있어서의 예약의 실행 우선순은 우선 레벨 2, 우선 레벨 3의 순으로의 실행 대기 상태 (나)로 천이한다.
그러나, 이 우선 레벨 1의 DMA 전송 실행중에 다시 프로세서(111)로부터 우선 레벨 1의 DMA 전송 요구가 데이터 전송 요구 수신부(102)에 대해 발행된 경우, 데이터 전송 요구 수신부(102)에 있어서의 예약의 실행 우선순은 다시 우선 레벨 1, 우선 레벨 2, 우선 레벨 3으로 되어 실행 대기 상태 (다)로 천이한다.
그 후, 우선 레벨 1의 DMA 전송이 종료하면, 다시 메모리 인터페이스부(103)로부터 예약 체크 신호가 발행되고, 이 때에 예약되어 있는 요구중에서 가장 우선 레벨이 높은 우선 레벨 1의 예약이 먼저 실행되게 된다.
여기서, 상기 예약 체크 신호가 발행되는 타이밍에 관해서 구체적으로 설명한다. 예를 들면, 상기 메모리 인터페이스부(103)에서는 메인 메모리(110)와 각로컬 메모리 사이에서 실행되는 DMA 전송의 데이터 전송 개수를 카운트해 두고, 1개 전의 DMA 전송 처리가 종료하기 일정 시간 전, 예를 들면 DMA 전송 종료전 16사이클로 되면, 메모리 인터페이스부(103)가 데이터 전송 요구 수신부(102)에 대해 예약 체크 신호를 발행한다. 그리고, 이 예약 체크 신호를 수신한 데이터 전송 요구 수신부(102)는 예약 레지스터(210)를 체크하고, 다음의 DMA 전송 처리의 준비를 실행한다. 또한, 여기서는 DMA 전송 종료전의 일정 시간을 16사이클로 했지만, 이 일정 시간은 DMA 파라미터 메모리(105)로부터 다음의 DMA 전송 실행을 위한 각종 파라미터를 로드하는 사이클 수에 의존하는 것이고, 다음에 DMA 전송을 실행에 옮기기 위한 준비 시간에 해당하는 것이다. 따라서, 이 일정 시간의 사이클 수는 실행 조건에 따라서 임의로 변화되어도 좋다.
또한, 이상에서 설명한 본 실시예 3의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구 발행원이 복수인 경우에도 적응 가능하다.
이와 같이, 본 실시예 3에서는 메모리 인터페이스부로부터 다음의 DMA 전송 실행 직전에 데이터 전송 요구 수신부에 대해 예약 체크 신호를 발행하여 다음에 전송 실행할 데이터를 확인하는 것에 의해, DMA 예약의 연속성을 유지한 채 전송 실행 직전에 들어 간 우선도가 높은 DMA 예약을 실행하는 것이 가능해진다.
또한, 상기 예약 체크 신호는 DMA 전송의 준비 기간을 예측하여 DMA 전송이 종료하기 전의 일정 사이클 전에 사전에 발행하면, 더욱 연속성이 확보된다. 이것을 실현하기 위해서는 메모리 인터페이스부에 있어서 DMA 전송의 종료전 십수 사이클을 검출해 두고, 그것을 검출했을 때에 예약 체크 신호를 발행하도록 하면 좋다.
(실시예 4)
이하, 실시예 4에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 1 및 도 6을 이용하여 실시예 4에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 6은 실시예 4에 있어서의 데이터 전송 요구 수신부(102a)의 구성을 도시한 도면이다.
도면에 있어서 본 실시예 4에 있어서의 데이터 전송 요구 수신부(102a)는 우선 레벨/캔슬 해독부(401), 선택기(402) 및 예약 레지스터(410)로 구성되어 있다.
우선 레벨/캔슬 해독부(401)는 입력된 DMA 전송 요구의 우선 레벨과 이 DMA 전송 요구가 캔슬인지 여부를 해독하여 저장 또는 캔슬해야 할 레지스터를 확정하는 것이다.
예약 레지스터(410)는 우선 레벨 1 예약 레지스터(411)∼우선 레벨 3 예약 레지스터(413)로 이루어지고, 개개의 우선 레벨 예약 레지스터에는 전송 상대 종별 정보(자원)가 저장된다. 여기서는, 그 정보를 저장하기 위한 설정 레지스터가 각 우선 레벨 예약 레지스터(411∼413)에 1개씩 구비되어 있다.
각 우선 레벨 예약 레지스터(411∼413)에 예약이 들어가면, 각 우선 레벨예약 레지스터에 대응한 예약 flag1∼예약 flag3이 설정되도록 되어 있다. 또, 이 예약 flag는 논리합이 취해져 데이터 전송 요구 수신부(102a)에 예약이 있다는 것을 나타내는 예약 플래그로서 메모리 인터페이스부(103)로 출력된다.
선택기(402)는 개개의 우선 레벨 예약 레지스터에서 출력되는 전송 상대 종별 정보를 선택하는 선택기에서, 각 우선 레벨 예약 레지스터로부터 출력되는 예약 플래그의 상태에 따라서 선택지가 변경되도록 되어 있다. 예를 들면, 예약 flag1이 "1"인 경우에는 우선 레벨 1 예약 레지스터(411)의 출력을 선택하고, 예약 flag1이 "0"이고 또한 예약 flag2가 "1"인 경우에는 우선 레벨 2 예약 레지스터(412)의 출력이 선택된다. 또, 예약 flag1과 예약 flag2가 모두 "0"이고 예약 flag3이 "1"인 경우에는 우선 레벨 3 예약 레지스터(413)의 출력이 선택되도록 되어 있다. 즉, 여기서의 우선도는 우선 레벨 1 > 우선 레벨 2 > 우선 레벨 3의 순인 것을 나타내고 있다.
또한, 상기 이외의 실시예 4에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 가진 시스템의 구성은 실시예 1의 것과 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 1 및 도 5를 이용하여 실시예 4의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(101)의 동작을 설명한다.
DMA 전송 요구는 실시예 1에서 설명한 바와 같은 수순으로 프로세서(111)로부터 데이터 전송 요구 수신부(102a)에 미리 예약되어 있는 것으로 한다.
현재, 데이터 전송 요구 수신부(102a)에 도 6에 도시하는 바와 같이 3개의 DMA 명령의 예약이 들어가 있다고 하면, 예약 flag1은 "1"로 되어 있다. 여기서, 자원 C를 나타내는 코드가 우선 레벨 1 예약 레지스터(411)에 저장되어 있으므로, 선택기(402)에 의해 우선 레벨 1 예약 레지스터(411)의 출력인 자원 C(로컬 메모리 C)가 선택되고, 로컬 메모리 C와 메인 메모리(110) 사이에서 DMA 전송이 실행된다.
이 DMA 전송의 도중에 프로세서(111)가 DMA 명령을 이용하여 캔슬 명령을 발행한 것으로 한다. 이 캔슬 명령은 우선 레벨 정보, 전송 상대 종별 정보(자원)를 포함하고 있다.
예를 들면, 우선 레벨 2, 자원 B와 함께 캔슬 정보가 발행된 것으로 한다. 상기 캔슬 정보를 포함한 DMA 명령을 수신한 데이터 전송 요구 수신부(102a)는 우선 레벨/캔슬 해독부(401)에 의해 그 DMA 명령이 우선 레벨 2의 캔슬 명령인 것을 해독한다. 이에 근거하여, 데이터 전송 요구 수신부(102a)는 우선 레벨 2 예약 레지스터(412)의 예약 flag2를 "0"으로 하고, 우선 레벨 2인 자원 B(로컬 메모리 B)와의 DMA 전송 예약이 캔슬된다.
이에 의해서, 실행중인 로컬 메모리 C와 메인 메모리(110) 사이의 DMA 전송이 종료한 시점에서 예약 flag1이 "0", 예약 flag2가 "0", 예약 flag3이 "1"로 되기 때문에, 우선 레벨 3 예약 레지스터(413)에 예약되어 있는 자원 A와 메인 메모리(110) 사이의 DMA 전송이 다음의 DMA 전송으로서 실행된다.
또, 예를 들면 자원 C(로컬 메모리 C)와 메인 메모리(110) 사이의 우선 레벨 1의 DMA 전송이 실행되고 있는 도중에 프로세서(111)에 의해 우선 레벨 2로 자원 C의 캔슬 명령이 발행되면, 데이터 전송 요구 수신부(102a)에 의해 그 DMA 명령이 실행중인 DMA 전송의 캔슬인 것이 판정되어 메모리 인터페이스부(103)에 대해 정지 신호가 발행된다. 그 후, 메모리 인터페이스부(103)에서는 실행중인 DMA 전송을 종료 처리로 이행한다.
또한, 이상에서 설명한 본 실시예 4의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구원이 복수인 경우에도 적응 가능하다.
이와 같이, 본 실시예 4에서는 예약중인 DMA 전송예약을 데이터 전송 요구 발행원인 프로세서로부터의 명령에 의해서 캔슬할 수 있도록 하는 것에 의해, 시스템의 상태에 따라 필요가 없어진 DMA 전송을 실행하지 않아도 좋고, 또 재예약 등의 조작과 조합하는 것에 의해 예약을 교체하는 것도 가능해진다.
또한, 쓸데없는 DMA 전송을 실행할 필요가 없기 때문에, 소비 전력의 삭감으로도 이어진다.
또, 본 실시예 4에 있어서는 종래 실현되고 있던 일시 정지나 중단/재개 처리와 같이 정지시의 파라미터를 유지할 필요가 없고, 또한 연속해서 다음으로 예약되어 있는 DMA 전송을 우선적으로 실행할 수 있다. 이 조작에 의해, 중단이나 정지를 실행하더라도 DMA의 연속성은 유지된다.
또, 종래 복잡한 회로로 실현되고 있던 일시정지나 중단의 처리가 캔슬 명령과 재예약에 의해 용이하게 실현할 수 있기 때문에, 복잡한 제어나 쓸데없는 회로를 구비할 필요가 없으므로, 설계 개발 기간 및 검증 기간을 대폭으로 단축할 수 있다.
(실시예 5)
이하, 실시예 5에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 7 및 도 8을 이용하여 본 실시예 5에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 7은 실시예 5에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템구성도이고, 도 8은 실시예 5에 있어서의 데이터 전송 제어부내의 데이터 전송 요구 수신부의 구성을 도시한 도면이다.
도 7에 있어서, 본 실시예 5에 있어서의 시스템은 DMA 콘트롤러인 데이터 전송 제어부(501), 메인 메모리(510), 프로세서(511), 로컬 메모리(512), 로컬 버스 및 DMA 버스로 구성되어 있다.
상기 프로세서(511)는 데이터 전송 제어부(501)를 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(501)에 대해서 DMA 전송 요구를 발행하는 것이다.
또, 메인 메모리(510)는 각종 데이터를 저장하는 것으로서, 로컬 메모리(512)는 프로세서(511)의 로컬 버스에 접속된 로컬 메모리군이다.
또한, 상기 데이터 전송 제어부(DMA 콘트롤러)(501)는 데이터 전송 요구 수신부(502), 메모리 인터페이스부(503), 데이터 입출력부(504), DMA 파라미터 메모리(505) 및 기동 신호 수신부(506)를 구비하는 것이다.
데이터 전송 요구 수신부(502)는 프로세서(511)로부터의 DMA 전송 요구를 접수하는 것으로서, 로컬 버스와 DMA 요구 관련의 신호선에 의해서 프로세서(511)에 접속되어 있다. 이하, 도 8을 이용하여 그 구성에 대해서 상세하게 설명한다.
도 8에 있어서, 데이터 전송 요구 수신부(502)는 우선 레벨 해독부(601), 선택기(602), 예약 레지스터(610) 및 로컬 버스로 구성된다.
우선 레벨 해독부(601)는 입력된 데이터 전송 요구의 우선 레벨을 해독하여 저장할 레지스터를 확정하는 것이다.
예약 레지스터(610)는 우선 레벨 1 예약 레지스터(611)∼우선 레벨 3 예약 레지스터(613)로 이루어지고, 개개의 우선 레벨 예약 레지스터(61l∼613)는 전송 상대 종별 정보(자원)가 저장되는 설정 레지스터와 포인터 레지스터로 이루어진다. 여기서는, 상기 설정 레지스터가 각 우선 레벨 예약 레지스터(611∼613)에 3개씩 구비되어 있다.
상기 포인터 레지스터는 예약 포인터와 판독 포인터로 이루어지고, 예약 포인터(621∼623)는 각 우선 레벨 예약 레지스터(611∼613)내에서 다음에 설정할 설정 레지스터를 선택하는 것이고, 판독 포인터(631∼633)는 각 우선 레벨 예약 레지스터(611∼613)내에서 다음에 실행될 설정 레지스터를 선택하는 것이다.
또, 도 7 및 도 8에 도시하는 바와 같이, 프로세서(511)는 로컬 버스에 의해 데이터 전송 요구 수신부(502)내의 각 우선 레벨 예약 레지스터(611∼613)에 접속되어 있고, 각각의 우선 레벨 예약 레지스터(611∼613)내의 복수의 설정 레지스터와 포인터 레지스터에 직접 데이터를 판독/기입할 수 있도록 되어 있다.
도 8에 있어서, 각 우선 레벨 예약 레지스터(611∼613)에 예약이 들어가면, 각 우선 레벨 예약 레지스터에 대응한 예약 flag1∼flag3이 설정되도록 되어 있다. 또, 이 예약 flag는 논리합이 취해져 데이터 전송 요구 수신부(502)에 예약이 있다는 것을 나타내는 예약 플래그로서 메모리 인터페이스부(503)로 출력된다.
선택기(602)는 개개의 우선 레벨 예약 레지스터(611∼613)로부터 출력되는 전송 상대 종별 정보를 선택하는 선택기로서, 그의 각 우선 레벨 예약 레지스터에서 출력되는 예약 flag1∼예약 flag3의 상태에 따라서 선택지가 변하도록 되어 있다. 예를 들면, 예약 flag1이 "1"인 경우에는 우선 레벨 1 예약 레지스터(611)의 출력을 선택하고, 예약 flag1이 "0"이고 또한 예약 flag2가 "1"인 경우에는 우선 레벨 2 예약 레지스터(612)의 출력이 선택된다. 또, 예약 flag1과 예약 flag2가 모두 "0"이고 예약 flag3이 "1"인 경우에는 우선 레벨 3 예약 레지스터(613)의 출력이 선택되도록 되어 있다. 즉, 여기서의 우선도는 우선 레벨 1>우선 레벨 2>우선 레벨 3의 순인 것을 나타내고 있다.
다음에, 도 7 및 도 8을 이용하여 실시예 5의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(501)의 동작에 관해서 설명한다.
먼저, 프로세서(511)는 로컬 버스에 의해 DMA 파라미터 메모리(505)에 DMA 전송실행에 필요한 파라미터 예를 들면 판독/기입 정보, 바이트/워드 등의 액세스 단위 정보, 연속 액세스인지 직사각형 액세스인지 링 포인터 액세스인지 등을 나타내는 액세스 정보 및 개시 어드레스 등의 각종 어드레스 정보나 전송 개수 등을 미리 저장해 둔다.
프로세서(511)는 데이터 전송 제어부(501)(DMA 콘트롤러) 기동의 전준비로서 즉시 실행하고자 하는 DMA 명령을 미리 데이터 전송 요구 수신부(502)에 예약해 둔다. 이 때, 예약 플래그가 메모리 인터페이스부(503)로 출력된다. 또한, 상기 DMA 전송 요구의 예약은 DMA 전송 요구 신호 또는 로컬 버스에 의해 프로세서(511)로부터 예약 레지스터(610)에 직접 기입하는 것에 의해서 실행된다.
실시예 1에서 설명한 바와 같이, 프로세서(511)가 기동 신호 수신부(506)에 대해 기동 명령을 발행하면, 데이터 전송 제어부(501)는 DMA 전송 동작을 개시하게된다.
먼저, 메모리 인터페이스부(503)는 예약 플래그가 유효로 되어 있는 것에 의해, 데이터 전송 요구 수신부(502)에 대해서 예약 체크 신호를 발행한다.
그러면, 데이터 전송 요구 수신부(502)는 도 8에 도시한 우선 레벨 1 예약 레지스터(611)의 제 1 설정 레지스터에 저장되어 있는 DMA 전송 예약 1-1을 메모리 인터페이스부(503)에 의해서 실행에 옮긴다.
이 예약 1-1의 DMA 전송 실행 도중에 이미 예약한 우선 레벨 2 예약 레지스터(612)내의 제 1 설정 레지스터에 저장되어 있는 예약 2-1을 우선 레벨 3으로 레벨을 변경하고자 하는 경우가 발생했다고 한다.
이 경우, 먼저 프로세서(511)는 로컬 버스를 통하여 예약 레지스터(610)의 현재의 상태를 판독한다. 지금, 우선 레벨 1 예약 레지스터(611)내의 예약 1-1이 실행중이기 때문에, 우선 레벨 1 예약 레지스터(611)에서는 예약 포인터(621)와 판독 포인터(631)가 동일한 위치를 나타내고 있다. 또, 우선 레벨 2예약 레지스터(612)에 있어서는 2개의 예약이 되어 있지만 미실행이기 때문에, 예약 포인터(622)는 제 3 설정 레지스터를 선택하고 판독 포인터(632)는 제 1 설정 레지스터를 선택하고 있다. 또한, 우선 레벨 3 예약 레지스터(613)에 있어서는 1개의 예약이 되어 있기는 하지만 미실행이기 때문에, 예약 포인터(623)는 제 2 설정 레지스터를 선택하고 판독 포인터(632)는 제 1 설정 레지스터를 선택하고 있다. 또, 우선 레벨 2예약 레지스터(612)의 제 1 설정 레지스터에는 예약 2-1이 설정되어 있다.
그리고, 상기 예약 2-1을 우선 레벨 3으로 레벨을 변경하기 위해서, 프로세서(511)는 우선 레벨 2 예약 레지스터(612)의 판독 포인터(632)를 제 1 설정 레지스터에서 제 2 설정 레지스터를 선택하도록 리라이트한다. 이에 의해, 우선 레벨 2 예약 레지스터(612)내의 제 1 설정 레지스터에 저장되어 있는 예약 2-1이 캔슬된 것으로 된다. 또, 우선 레벨 3에 예약 2-1을 예약하기 위해서, 우선 레벨 3 예약 레지스터(613)내의 제 2 설정 레지스터에 예약 2-1이 나타내는 전송 상대 종별 정보를 기입한다. 그 후, 예약 포인터(623)를 제 3 설정 레지스터를 선택하도록 변경한다.
이상의 설명에서는 본 시스템이 전송 요구 발행원인 프로세서가 1개인 경우에 관해서 설명했지만, 실시예 2와 같이 본 시스템이 복수의 DMA 전송 요구 발행원을 구비하는 경우에는 도 9 및 도 10에 도시하는 바와 같이 메인 프로세서(911)와 데이터 전송 요구 수신부(502)를 로컬 버스에 의해서 접속시키고, 메인 프로세서(911)가 예약 레지스터(610)를 자유롭게 판독/기입할 수 있도록 하고, 또 데이터 전송 요구 수신부(502)의 전단에 예약 수단(820)을 부가하는 것에 의해 마찬가지로 처리 실행할 수 있다.
이와 같이, 본 실시예 5에서는 프로세서와 예약 레지스터를 로컬 버스에 의해 접속하고 프로세서가 예약 레지스터를 자유롭게 판독/기입할 수 있도록 했으므로, 이미 예약해 버린 DMA 요구를 자유롭게 캔슬하거나 우선 레벨을 교체하거나 우선 레벨내의 순번을 교체하는 것이 가능해진다.
이에 의해, 프로세서의 프로그래밍 능력(programability)(프로그램 설계 자유도)이 향상되어 복수 개발자에 의한 프로그램 설계를 용이하게 할 뿐만 아니라, 시스템 동작상 발생하는 다양한 에러 처리나 애플리케이션 요구 등에도 유연하게 대응할 수 있게 된다.
또한, 본 실시예 5에 있어서는 우선 레벨 수와 각 우선 레벨의 설정 레지스터 수는 3으로 했지만, 임의의 수라도 좋다.
또, 여기서는 예약의 교체의 일 실시예에 관해서 설명했지만, 마찬가지로 해서 한번 실행한 DMA 예약을 부활시키는 것도 가능하다.
(실시예 6)
이하, 실시예 6에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 1 및 도 11을 이용하여 본 실시예 6에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 11은 실시예 6에 있어서의 DMA 콘트롤러(데이터 전송 제어부) 내의 데이터 전송 요구 수신부의 구성을 도시한 도면이다.
도 11에 있어서 데이터 전송 요구 수신부(102b)는 우선 레벨 해독부(701), 예약 레지스터(710) 및 선택기(702)를 구비하고, 상기 예약 레지스터(710) 내의 각 우선 레벨 예약 레지스터(711∼713)는 설정 레지스터와 예약 타이머를 구비하고 있다.
또한, 본 실시예 6에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 그 밖의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 1 및 도 11을 이용하여 실시예 6의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(101)의 동작을 설명한다.
현재, 도 1에 있어서의 시스템은 기동 상태에 있고, 프로세서(111)는 데이터 전송 제어부(101)에 대해서 기동 명령을 발행 완료한 것으로 한다. 그리고, 또 데이터 전송 제어부(101)는 우선 레벨 1 예약 레지스터(711)의 예약 1의 DMA 전송을 실행중이고, 우선 레벨 2 예약 레지스터(712) 및 우선 레벨 3 예약 레지스터(713)의 설정 레지스터에는 예약 2 및 예약 3의 DMA 전송이 예약되어 있다고 한다.
여기서, 새롭게 프로세서(111)가 데이터 전송 요구 수신부(102b)에 대해서 DMA 전송 요구를 발행한 것으로 한다. 이 DMA 전송 요구에는 우선 레벨, 전송 상대 종별 정보 및 실행까지의 사이클 수인 실행 타이밍 정보가 포함된다.
현재, 프로세서(111)로부터 우선 레벨 1 예약 레지스터(711)에 대해서 전송 상대 종별 정보로서 자원 B, 예약 타이머 1에 실행 타이밍 정보로서 1000 사이클이 지정된 것으로 한다.
데이터 전송 요구 수신부(102b)는 상기 DMA 전송 요구를 수신하면, 우선 레벨 해독부(701)에 의해 우선 레벨 1 예약 레지스터(711)가 선택되고, 우선 레벨 1 예약 레지스터(711)의 설정 레지스터에는 전송 상대 종별 정보 자원 B를 설정하며, 예약 타이머 1에는 실행 타이밍 정보 1000 사이클을 설정한다. 설정 후, 예약 타이머 1은 1000 사이클 후까지 카운트 다운을 개시하고, 그 동안 우선 레벨 1 예약 레지스터(711)내의 자원 B의 예약은 실행되지 않는다. 따라서, 예약 flag1은 "0"으로 유지되고("0" 그대로이고), 1OOO 사이클 후에 "1"로 된다.
실행중이던 예약 1의 로컬 메모리 C와 메인 메모리(110)의 DMA 전송이 종료하면, 예약 flag1은 "0"으로 되고 예약 flag2는 "1"로 되므로, 다음의 DMA 전송으로서 우선 레벨 2 예약 레지스터(712)에 설정되어 있는 예약 2의 자원 B와의 DMA 전송을 실행하게 된다.
예약 2의 자원 B와의 DMA 전송이 종료한 시점에서 예약 타이머 1의 카운트가 종료하지 않은 경우, 예약 flag1, 예약 flag2가 "0", 예약 flag3이 "1"이기 때문에, 우선 레벨 3 예약 레지스터(713)에 설정되어 있는 예약 3의 자원 A와의 DMA 전송이 실행된다.
그리고, 예약 3의 DMA 전송 실행중에 예약 타이머1이 1000 사이클 카운트가 종료했다고 하면, 그 시점에서 예약 flag1이 "1"로 되고, 예약 3의 자원 A와의 DMA 전송이 종료한 후에 우선 레벨 1로 예약되어 있던 자원 B와의 DMA 전송이 실행에 옮겨지게 된다.
또한, 이상에서 설명한 본 실시예 6의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구원이 복수인 경우라도, 도 12에 도시하는 바와 같이 예비 예약 수단(830) 내의 각 DMA 전송 요구 발행원마다의 예비 예약 레지스터(831, 832)가 구비하는 레지스터에 실행 타이밍 정보를 유지할 수 있는 실행 타이밍 레지스터를 추가하는 것에 의해 적응할 수 있다.
이와 같이, 본 실시예 6에서는 데이터 전송 요구 수신부(102b)에 예약한 DMA 전송의 실행 타이밍으로서 예약하고 난 후의 사이클 수를 지정하고, 그 지정 시간 경과 후에 이 DMA 전송이 실행되도록 했으므로, 시간 지연된 DMA 전송을 용이하게실행할 수 있다. 이에 의해, 예를 들면 프로세서의 프로그램 개발에 있어서 DMA 전송의 발행 제어를 실행하는 모듈의 작성과 DMA 전송을 의식하지 않는 처리 모듈의 작성으로 나누어 실행하는 설계가 용이하게 된다. 이에 의해, 프로세서의 개발 용이성이 증대하여 개발 효율의 향상, 개발 기간의 단축, 프로그램 스텝 수의 삭감이 가능해진다.
(실시예 7)
이하, 실시예 7에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 1 및 도 13을 이용하여 본 실시예 7에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 13은 실시예 7에 있어서의 DMA 콘트롤러(데이터 전송 제어부)내의 데이터 전송 요구 수신부의 구성을 도시한 도면이다.
도 13에 있어서, 데이터 전송 요구 수신부(102c)는 우선 레벨 해독부(1301), 예약 레지스터(1310) 및 선택기(1302)를 구비하고, 상기 예약 레지스터(1310)내의 각 우선 레벨 예약 레지스터(1311∼1313)는 전송 상대 종별 정보를 저장하는 설정 레지스터와 예약 레지스터(1310)에 입력되어 있는 미리 결정된 타이밍 신호를 실행 타이밍으로서 사용할지 여부를 지정하는 타이밍 지정 레지스터를 구비하고 있다.
또한, 본 실시예 7에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 그 밖의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 1 및 도 13을 이용하여 실시예 7의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(101)의 동작을 설명한다.
현재, 도 1에 있어서의 시스템은 기동 상태에 있고, 프로세서(111)는 데이터 전송 제어부(101)에 대해서 기동 명령을 발행 완료한 것으로 한다.
현재, 프로세서(111)로부터 우선 레벨 1, 전송 상대 종별 정보가 자원 C이고 또한 실행 타이밍 정보가 실행 타이밍 지정 있는 DMA 전송 요구가 발행된 것으로 한다. 또한, 여기서의 실행 타이밍에 사용되는 미리 결정된 타이밍 신호를, 예를 들면 비디오 입력의 수평 동기 신호로 한다.
이상과 같은 DMA 전송 요구를 수신한 데이터 전송 요구 수신부(102c)는 우선 레벨 해독부(1301)에 의해 우선 레벨 1 예약 레지스터(1311)가 선택된다. 그리고, 이 우선 레벨 1 예약 레지스터(1311)의 설정 레지스터에는 전송 상대 종별 정보로서 자원 C가, 또한 타이밍 지정 레지스터 1에는 "1"의 플래그가 설정된다. 설정후 실행 타이밍으로 될 때까지 우선 레벨 1 예약 레지스터(1311)내의 자원 C의 예약은 실행되지 않는다. 따라서, 예약 flag는 "0"으로 유지되고, 실행 타이밍으로 되면 "1"로 된다.
다음에, 프로세서(111)는 우선 레벨 2, 전송 상대 종별 정보가 자원 B, 실행 타이밍 정보가 실행 타이밍 지정 없음(無)인 DMA 전송 요구를, 그리고 우선 레벨 3, 전송 상대 종별 정보가 자원 A, 실행 타이밍 정보가 실행 타이밍 지정 없음인 DMA 전송 요구를 차례로 지정한다.
이상과 같은 DMA 전송 요구를 수신한 데이터 전송 요구 수신부(102c)는 각각을 우선 레벨 2 예약 레지스터(1312), 우선 레벨 3 예약 레지스터(1313)에 설정하고, 먼저 우선 레벨 2 예약 레지스터(1312)에 설정된 자원 B의 DMA 전송을 실행에 옮긴다.
그 직후, 타이밍 신호가 입력되었다고 하자. 여기서, 우선 레벨 1 예약 레지스터(1311)에 설정된 예약 1은 타이밍 지정1 레지스터에 의해 실행타이밍이 지정되어 있기 때문에, 상기 타이밍 신호가 입력된 타이밍에서 예약 flag1이 "1"로 되고, 이 시점에서 DMA 전송 예약이 유효로 된다.
따라서, 지금 실행중인 자원 B의 DMA 전송이 종료하면, 우선 레벨 1 예약 레지스터(1311)의 예약 flag1이 "1"이기 때문에, 우선 레벨 1 예약 레지스터(1311)에 설정된 자원 C의 DMA 전송이 실행에 옮겨진다.
이상의 설명에서는 상기 실행 타이밍 정보가 예약 레지스터에 입력하고 있는 미리 결정된 타이밍 신호(여기서는, 비디오 입력의 수평 동기 신호)를 DMA 전송 요구의 실행 타이밍으로서 사용할지 여부를 지정하는 것으로 했지만, 이 실행 타이밍 신호가 예약 레지스터에 입력하고 있는 복수의 타이밍 신호중 DMA 전송 요구의 실행 타이밍으로서 사용하는 타이밍 신호의 종류를 지정하는 것이더라도 좋다.
이 경우, 도 14에 도시하는 바와 같이 데이터 전송 요구 수신부(102d) 내의 예약 레지스터(1410)에는 복수의 타이밍 신호가 입력되고, 각 우선 레벨 예약 레지스터(1411∼1413)에 구비된 타이밍 종류 레지스터에 설정하는 값에 따라서 어떤 타이밍 신호를 실행 타이밍으로서 사용할 것인지를 선택하도록 한다. 예를 들면, 타이밍 종류 레지스터 1에 "0"을 설정하면 비디오 입력의 수평 동기 신호를 선택하고, "1"을 설정하면 비디오 입력의 수직 동기 신호를 선택하는 등과 같이 한다.
또, 이상에서 설명한 바와 같이 본 실시예 7의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구원이 복수인 경우에도 적응 가능하다. 이 경우, 실시예 6의 도 12와 마찬가지로 예비 예약 수단(830) 내의 각 예비 예약 레지스터(831, 832)에 새롭게 DMA 전송 요구의 정보에 추가된 실행 타이밍 정보(타이밍 지정 또는 타이밍 종류)를 유지하는 실행 타이밍 레지스터를 부가하는 것에 의해 실현할 수 있다.
이와 같이, 본 실시예 7에 의하면 데이터 전송 요구 수신부에 예약된 DMA 전송의 실행을 이 데이터 전송 요구 수신부의 예약 레지스터에 입력되어 있는 특정 타이밍 신호를 지정하고 이 지정한 신호가 입력되는 타이밍을 이용하여 실행할 수 있도록 했으므로, 데이터 전송 요구 발행원인 프로세서가 DMA 전송 요구를 발행하는 타이밍을 고려하지 않고 데이터 전송 요구 수신부에 예약을 실행할 수 있다. 이에 의해, 프로세서의 프로그램 개발의 자유도가 증대하여 개발에 가해지는 부담을 대폭으로 삭감할 수 있고 개발 기간의 단축에 크게 기여할 수 있다.
또, DMA 전송의 실행 타이밍을 지정하는 타이밍 신호를 복수의 신호에서 선택할 수 있도록 하는 것에 의해, 실행 타이밍을 지정하는 자유도가 증대하여 프로세서의 프로그램 개발의 자유도 및 개발의 용이성이 향상된다.
또한, 본 실시예에서는 설명상 우선 레벨 수는 3이고 또 각 우선 레벨 예약 레지스터의 설정 레지스터 수는 1이었지만, 임의의 수이더라도 좋다.
또, 상기 DMA 전송 요구에 포함되는 실행 타이밍 정보로서 실시예 6에 있어서 설명한 DMA 전송 실행까지의 사이클 수와 본 실시예 7에서 설명한 타이밍 신호를 사용할지 여부를 지정하는 것을 조합하고, DMA 전송 요구의 정보에 사이클 수가 포함되어 있으면 예약 레지스터 내의 예약 타이머에 의해 이 사이클 수를 카운트하고, 타이밍 신호의 사용을 지정하는 정보가 포함되어 있으면 이 타이밍 신호의 타이밍에 따라서 DMA 전송을 실행하도록 해도 좋다.
(실시예 8)
이하, 실시예 8에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 1 및 도 15를 이용하여 본 실시예 8에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 15는 실시예 8에 있어서의 DMA 콘트롤러(데이터 전송 제어부)내의 데이터 전송 요구 수신부의 구성을 도시한 도면이다.
본 실시예 8에 있어서는 프로세서(111)로부터의 상기 데이터 전송 요구에 실시예 7에서 설명한 타이밍 신호 지정의 유무 또는 타이밍 신호의 종류 지정인 실행 타이밍 정보에 부가해서, DMA 전송 실행의 반복 회수를 나타내는 반복 정보가 더 포함되어 있는 것이다.
이 경우, 도 15에 도시하는 바와 같이 데이터 전송 예약 수신부(102e)의 각 우선 레벨 예약 레지스터(1511∼1513)에 전송 상대 종별 정보를 저장하는 설정 레지스터 및 실행 타이밍으로서 사용하는 타이밍 신호의 종류를 나타내는 실행 타이밍 정보를 저장하는 타이밍 종류 레지스터에 부가해서, 이 DMA 전송 요구의 실행 회수를 저장하는 반복 회수 설정 레지스터 및 이 반복 회수 설정 레지스터에 설정한 실행 회수를 카운트하는 반복 회수 카운터를 구비하도록 한다.
또한, 본 실시예 8에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 그 밖의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 1 및 도 15를 이용하여 본 실시예 8의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(101)의 동작을 설명한다.
지금, 프로세서(111)로부터 우선 레벨 1 예약 레지스터(1511)에 DMA 전송 요구와 함께 실행 타이밍 정보로서 타이밍 종류 레지스터 1에 비디오 출력의 수직 동기 신호를 선택하도록 "3"이 설정되고, 또한 반복 회수 설정 레지스터 1에 실행 회수"2"가 지정된 것으로 한다. 이 때, 반복 회수 카운터1의 초기값은 반복 회수 설정 레지스터 1에 설정된 값으로 된다. 우선 레벨 1 예약 레지스터(1511)의 예약 flag1은 최초에 "0"이지만, 비디오 출력의 수직 동기 신호의 하강 에지(수직 블랭킹 개시)의 타이밍에서 예약 flag1이 "1"로 되고, 현재 실행중인 DMA 전송이 종료하면 우선 레벨 1 예약 레지스터(1511)에 설정된 DMA 전송이 실행에 옮겨지고, 그것과 함께 반복 회수 카운터 1이 카운트 다운되어 "1"로 된다. 그리고, 이 DMA 전송이 종료한 후에도 여전히 예약 flag1은 "1"로 유지되고, 다시 우선 레벨 1 예약 레지스터(1511)에 설정된 동일한 DMA 전송이 실행에 옮겨지면 반복 회수 카운터1이 카운트 다운되어 "0"으로 된다. 동시에, 예약 flag1은 "0"으로 되고, 예약이 들어가 있지 않은 것을 나타내게 된다. 또한, 본 실시예에서는 반복 회수 설정 레지스터와 반복 카운터를 구비하고 상기 반복 회수 설정 레지스터에 설정된 반복 회수를 상기 반복 카운터에 의해 카운트해 가도록 하고 있지만, 반복 카운터만 구비하고이 반복 카운터에 반복 회수를 설정하여 카운트하는 것이더라도 좋다.
또, 이상에서 설명한 본 실시예 8의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구원이 복수인 경우에도 적응 가능하다. 이 경우, 도 16에 도시하는 바와 같이 예비 예약 수단(840) 내의 각 예비 예약 레지스터(841, 842)에 새롭게 DMA 전송 요구의 정보에 추가된 실행 타이밍 정보(타이밍 지정, 타이밍 종류)를 유지하는 실행 타이밍 레지스터 및 반복 회수 정보(반복 회수)를 유지하는 반복 회수 레지스터를 부가하는 것에 의해 실현할 수 있다.
이와 같이, 본 실시예 8에 의하면 반복 회수를 지정하도록 하여 동일 종류의 DMA 전송 요구를 데이터 전송 요구 발행원인 프로세서로부터 복수 회수 요구할 필요가 없어지기 때문에, 요구 발행을 간략화할 수 있다. 이에 의해, 프로세서의 하드웨어 설계나 프로세서의 프로그램 등의 소프트웨어 설계를 용이화할 수 있고, 개발의 부담을 경감할 수 있을 뿐만 아니라 개발의 용이성을 향상시킬 수 있다.
또한, 본 실시예에서는 설명상 우선 레벨 수는 3이고 또 각 우선 레벨 예약 레지스터의 설정 레지스터 수는 1이었지만, 임의의 수이더라도 좋다.
(실시예 9)
이하, 실시예 9에 있어서의 DMA 콘트롤러에 관해서 설명한다.
도 17은 실시예 9에 있어서의 DMA 파라미터 메모리 내의 데이터 배치를 도시한 도면이다.
도 17에 있어서, DMA 파라미터 메모리의 전반 부분은 전송 상대편마다 DMA전송에 필요한 파라미터를 통합하고 있는 것을 나타내고 있다 . 예를 들면, 자원 A 파라미터 영역에 있어서 액세스 패턴 지정 파라미터 정보는 전송 상대편과의 DMA 전송에 있어서의 메인 메모리로의 액세스 패턴을 나타내는 정보가 저장된다. 판독/기입 정보는 메인 메모리로부터의 판독인지 메인 메모리로의 기입인지를 나타낸다. 액세스 단위 정보는 메인 메모리에 대해 바이트 단위로 액세스할지 워드 단위로 액세스할지를 나타내는 정보이다. 또, 기본적인 연속 액세스를 실행하기 위해서, 전송 개시 어드레스를 나타내는 개시 어드레스와 전송 개수가 저장되도록 되어 있다.
후반 부분은 액세스 패턴마다 필요한 파라미터가 저장된다. 여기서는, 예를 들면, 3 종류의 액세스 패턴이 있고, 1개째는 직사각형 영역으로의 액세스 패턴, 2개째는 링 버퍼 1 영역용, 3개째는 링 버퍼 2 영역용이다.
직사각형 영역으로의 액세스 패턴에는 개시 어드레스와 종방향 및 횡방향의 액세스 개수가 저장된다.
링 버퍼 1 영역용에는 링 버퍼를 형성할 때의 영역 선두 어드레스, 영역 종료 어드레스와 DMA 전송 개시 어드레스인 개시 어드레스 및 전송 개수가 저장된다.
고기능 링 버퍼인 링 버퍼 2 영역용에는 영역 선두 어드레스, 영역 종료 어드레스에 부가해서, 기입시의 개시 어드레스와 전송개수, 판독시의 개시 어드레스와 전송개수가 각각 저장된다.
이상과 같이, 전송 상대마다 및 액세스 패턴마다 각 파라미터가 정리된 어드레스 영역에 저장되어 있다.
또한, 본 실시예 9에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 1, 도 2, 도 17을 이용하여 본 실시예 9의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(101)의 동작에 관해서 설명한다.
프로세서(111)는 로컬 버스를 이용하여 DMA 파라미터 메모리(105)에 DMA 전송에 필요한 파라미터를 저장해 둔다. 예를 들면, 도 17에 도시하는 바와 같이 자원 A∼자원 C의 파라미터 영역에 액세스 패턴 정보나 판독/기입 정보, 액세스 단위 정보와 기본 액세스 패턴(연속 액세스) 시의 개시 어드레스와 전송 개수를 저장한다. 이와 같이, 자원마다 정리하고 있기 때문에, 프로세서(111)는 로컬 버스상에서 연속 어드레스 액세스에 의해 파라미터를 설정할 수 있다.
또, 액세스 패턴마다 필요한 정보를 직사각형 영역 액세스, 링 버퍼 1, 링 버퍼 2마다 저장한다. 이와 같이, 액세스 패턴마다 정리해 두면, CPU는 관련된 정보를 로컬 버스상에서 연속 어드레스 액세스할 수 있다.
프로세서(111)가 필요한 DMA 전송 요구를 데이터 전송 요구 수신부(102)에 대해 발행하면, 도 2에 도시하는 바와 같이 각각의 우선 레벨 예약 레지스터에 DMA 전송 요구가 예약된다.
데이터 전송 제어부(101)내의 기동 신호 수신부(106)에 대해 기동 명령이 발행되면, 실시예 1에 있어서 설명한 바와 같이 우선 레벨이 높은 예약 레지스터부터 순차 DMA 전송이 실행에 옮겨진다.
여기서는, 최초에 우선 레벨 1 예약 레지스터(211)에 설정되어 있는 자원 C와 메인 메모리(110)의 DMA 전송이 실행된다.
데이터 전송 제어부(101)에 의해서 메모리 인터페이스부(103)로 DMA 종별 정보가 전송되면, 메모리 인터페이스부(103)는 자원 C에 관한 DMA 전송인 것을 알 수 있다. 이에 의해, DMA 파라미터 메모리(105)로부터 자원 C에 관한 정보를 통합해서 판독한다. 판독한 파라미터로부터 자원 C에 관한 DMA 전송은 액세스 패턴이 연속 액세스이고 메인 메모리(110)로의 기입 동작이며 워드 전송인 것을 안다. 또, 액세스 패턴이 연속 액세스이기 때문에, 그대로 개시 어드레스 $3F00(16진), 전송 개수 88개를 이용하여 자원 C에서 메인 메모리(110)로의 DMA 기입 전송을 실행한다.
자원 C와의 DMA 전송이 종료하면, 종료 어드레스를 다시 DMA 파라미터 메모리(105) 내의 자원 C 개시 어드레스부에 라이트백한다. 동시에, 우선 레벨 2의 자원 B와의 DMA 전송이 실행에 옮겨진다.
메모리 인터페이스부(103)는 DMA 종별 정보로부터 자원 B의 전송인 것을 안다. 이에 의해, DMA 파라미터 메모리(105) 내의 자원 B에 관한 정보가 저장되어 있는 영역으로부터 데이터를 연속해서 판독한다. 판독한 파라미터로부터 자원 B에 관한 DMA 전송은 액세스 패턴이 직사각형 영역 액세스이고, 메인 메모리(110)로부터의 판독 동작이며 바이트단위로 데이터를 전송하는 것임을 안다. 여기서, 액세스 패턴이 직사각형 영역 액세스이기 때문에, 메모리 인터페이스부(103)는 다시 DMA 파라미터 메모리(105) 내의 직사각형 영역 액세스에 관한 정보가 저장되어 있는 영역으로부터 데이터를 연속해서 판독한다. 이에 의해, 직사각형 액세스하는영역의 선두 어드레스가 $1000(16진)이며, 횡방향 액세스 개수가 16개, 종방향 액세스 개수가 16개인 전송이라는 것을 알 수 있다. 이들을 이용하여 메인 메모리(110)에서 자원 B로 $1000을 시점으로 하는 16 ×16의 직사각형 영역의 DMA 판독 전송이 실행된다.
자원 B의 DMA 전송이 종료하면, 이하 마찬가지로 해서 우선 레벨 3인 자원 A의 링 버퍼(2)의 DMA 기입 전송이 바이트(Byte) 단위로 실행된다.
또한, 본 실시예 9의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구원이 복수인 경우에도 적응 가능하다.
이와 같이, 본 실시예 9에서는 각 자원마다 DMA 전송에 필요한 파라미터를 어드레스 영역에서 정리한 것에 의해, DMA 파라미터 메모리는 1개라도 복수의 자원에 관한 정보를 연속적으로 설정하여 취출할 수 있다.
또, 본 실시예 9에서는 각 자원마다 액세스 패턴 정보를 구비한 것에 의해, 복수의 액세스 패턴을 이용하여 메인 메모리로 액세스하는 것이 가능해진다.
또, 본 실시예 9에서는 판독/기입 정보, 액세스 단위 정보를 파라미터 메모리에 갖는 것에 의해 DMA 전송 요구시에 지정할 필요가 없어 DMA 전송 명령을 간략화할 수 있고, 이에 의해서 프로세서의 프로그램 코드를 간략화할 수 있다.
또, 본 실시예 9에서는 개시 어드레스 정보와 전송 개수를 액세스 패턴마다 갖는 것에 의해 액세스 패턴에 따라서 개시 어드레스나 전송 개수를 고정시키는 것이 가능해진다. 이에 의해, 자원마다의 액세스 패턴이 변화될 때마다 액세스 개시 어드레스를 지정할 필요가 없어진다. 또, 액세스 패턴도 파라미터를 저장하는 어드레스 영역을 정리하는 것에 의해 연속해서 설정하고 취출할 수 있게 된다. 이들의 결과, 프로세서의 프로그램이 간단하게 되고 회로 제어도 간단하게 되는 것에 의해, 개발 기간의 단축에 크게 기여하게 된다.
또한, 본 실시예 9의 도 17에 도시하는 메모리의 저장 방법 및 파라미터의 종류, 값은 일례로서 이것에 한정되지는 않는다.
(실시예 10)
이하, 실시예 10에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 18을 이용하여 본 실시예 10에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 18은 실시예 10에 있어서의 DMA 콘트롤러를 갖는 시스템 구성을 도시한 도면이다.
도 18에 있어서 실시예 10에 있어서의 시스템은 DMA 콘트롤러인 데이터 전송 제어부(1001), 프로세서(1011), 메인 메모리(1012), 로컬 메모리(1013), 로컬 버스 및 DMA 버스로 구성되어 있다.
상기 프로세서(1011)는 데이터 전송 제어부(1001)를 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(1001)에 대해서 DMA 전송 요구를 발행하는 것이다.
메인 메모리(1012)는 각종 데이터를 저장하기 위한 메인 메모리이고, 로컬 메모리(1013)는 프로세서(1011)의 로컬 버스에 접속된 로컬 메모리군이다.
상기 데이터 전송 제어부(DMA 콘트롤러)(1001)는 데이터 전송 요구 수신부(1002), 메모리 인터페이스부(1003), 데이터 입출력부(1004), DMA 파라미터 메모리(1005), 기동 신호 수신부(1006), 클럭 제어부(1007), 메모리 클럭 제어 레지스터(1008) 및 클럭 공급/정지부(1009, 1010)를 구비한다.
클럭 제어부(1007)는 기동 신호 수신부(1006)로부터 동작 인에이블이 발행되고 또한 데이터 전송 요구 수신부(1002)에 DMA 전송 예약이 축적되어 있는 경우에만 클럭 인에이블을 출력한다.
메모리 클럭 제어 레지스터(1008)는 DMA 파라미터 메모리용으로 특별히 마련된 메모리 클럭 제어용 레지스터로서, DMA 파라미터 메모리(1005)로 클럭을 강제적으로 공급할지 여부를 제어하는 것이다.
또, 클럭 공급/정지부(1009, 1010)는 DMA 파라미터 메모리(1005), 메모리 인터페이스부(1003), 데이터 입출력부(1004) 및 메인 메모리(1012)에 대한 클럭의 공급 및 정지를 제어하는 것이다. 상기 클럭 공급/정지부(1009)는 예를 들면 AND 게이트와 같은 것으로 구성되고, 클럭 제어부(1007)에 의해 제어되는 것이며, 이것이 출력하는 클럭에 의해서 메모리 인터페이스부(1003), 데이터 입출력부(1004) 및 메인 메모리(1012)가 동작한다. 또, 상기 클럭 공급/정지부(1010)는, 예를 들면 OR와 AND 등으로 형성된 복합 게이트로 구성되고, 메모리 클럭 제어 레지스터(1008)또는 클럭 제어부(1007)에 의해 제어된다. 그리고, 이것이 출력하는 클럭에 의해서 DMA 파라미터 메모리(1005)가 동작한다.
또한, 본 실시예 10에 있어서의 데이터 전송 제어부(1001) 내의 데이터 전송요구 수신부(1002)의 구성은 실시예 1과 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 18 및 도 2를 이용하여 본 실시예 10의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(1001)의 동작을 설명한다.
먼저, 프로세서(1011)는 로컬 버스를 이용하여 메모리 클럭 제어 레지스터(1008)에 "1"을 기입하여 메모리 클럭을 유효로 한다. 이에 의해, DMA 파라미터 메모리(1005)로 클럭이 강제적으로 공급된다. 그 후, 프로세서(1011)는 DMA 전송에 필요한 파라미터를 미리 DMA 파라미터 메모리(1005)에 저장하고, 다시 메모리 클럭 제어 레지스터(1008)를 "0"으로 하여 클럭을 정지시켜 둔다. 그리고, 초기 전송에 필요한 DMA 전송 요구를 데이터 전송 요구 수신부(1002)에 대해 발행하여 예약한다. 여기서, 도 2에 도시하는 바와 같이 3개의 DMA 전송의 예약이 이루어졌다고 한다.
시스템이 기동되면, 프로세서(1011)는 기동 신호 수신부(1006)에 대해 기동 명령을 발행한다. 기동 명령을 수신한 기동 신호 수신부(1006)는 메모리 인터페이스부(1003) 및 클럭 제어부(1007)에 대해 동작 인에이블을 발행한다. 클럭 제어부(1007)에는 동작 인에이블과 예약 플래그가 입력되어 있고, 이들이 모두 유효한 경우에 클럭 인에이블을 유효로 하는 동작을 한다. 상기 클럭 제어부(1007)에서 출력되는 클럭 인에이블은 클럭 공급/정지부(1009, 1010)에 입력되고 있고, 클럭 인에이블이 유효한 기간에만 메인 메모리(1012), 메모리 인터페이스부(1003), 데이터 입출력부(1004), DMA 파라미터 메모리(1005)로 클럭이 공급되도록 상기 클럭 공급/정지부(1009, 1010)에 의해 제어한다.
도 2에 도시하는 3개의 예약이 우선 레벨순으로 실행되고, 각각의 DMA 전송에 있어서 데이터를 메인 메모리(1012)에 기입하는 것이 종료하거나 또는 데이터를 각 로컬 메모리(1013)에 기입 종료하면, 데이터 입출력부(1004)는 메모리 인터페이스부(1003)에 그 취지를 알리고, 메모리 인터페이스부(1003)는 전송 종료 신호를 클럭 제어부(1007)로 출력한다. 또, 예약 플래그는 데이터 전송 요구 수신부(1002)에 예약이 없어지면 "0"으로 된다. 상기 클럭 제어부(1007)는 메모리 인터페이스부(1003)로부터 전송 종료 신호를 받고, 데이터 전송 요구 수신부(1002)로부터의 예약 플래그가 "0"으로 된 타이밍에서 클럭 인에이블을 "0"으로 하여 클럭 공급/정지부(1009, 1010)에 대해 출력한다. 상기 클럭 인에이블 신호를 수신한 클럭 공급/정지부(1009, 1010)는 메인 메모리(1012), 메모리 인터페이스부(1003), 데이터 입출력부(1004), DMA 파라미터 메모리(1005)로의 클럭 공급을 정지한다.
또한, 이상에서 설명한 본 실시예 10의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구 발행원이 복수인 경우에도 적응 가능하다.
이와 같이, 본 실시예 10에서는 데이터 전송에 관계된 제어 블럭과 메인 메모리의 클럭을 필요 최저한의 기간에만 자동적으로 공급/정지하도록 했으므로, 효율좋게 전력을 제어할 수 있어, 저소비 전력을 실현하는 시스템을 얻을 수 있다.
또, 본 실시예 10에서는 DMA 전송 명령을 발행할 때마다 프로세서의 프로그램이 클럭 제어를 실행할 필요가 없기 때문에, 프로그램이 복잡하게 되지 않고 더또한 프로그램 스텝 수를 삭감할 수 있다.
(실시예 11)
이하, 실시예 11에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 19를 이용하여 본 실시예 11에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 19는 실시예 11에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템 구성도이다.
도 19에 있어서 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(1101), 메인 메모리(1120), 프로세서(1121), 로컬 메모리(1123), 로컬 버스 및 DMA 버스로 구성된다.
메인 메모리(1120)는 각종 데이터를 저장하는 메모리로서, SRAM으로 구성되어 있다. 또, 이 SRAM은 선형 어드레스 영역이 4뱅크로 물리적으로 분할되어 있고, 각각에 독립된 클럭이 입력되고 있다.
프로세서(1121)는 DMA 콘트롤러(1101)을 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(1101)에 대해서 DMA 전송 요구를 발행하는 것이다.
로컬 메모리(1123)는 프로세서(1121)에 로컬 버스에 의해서 접속된 로컬 메모리군이다.
또, 상기 데이터 전송 제어부(DMA 콘트롤러)(1101)는 데이터 전송 요구 수신부(1102), 메모리 인터페이스부(1103), 데이터 입출력부(1104), DMA 파라미터 메모리(1105), 기동 신호 수신부(1106), 클럭 제어부(1107), 메모리 클럭 제어 레지스터(1108), 클럭 공급/정지부(1109, 1110) 및 메인 메모리 클럭 공급/정지부(1111)를 구비하는 것이다.
클럭 제어부(1107)는 기동 신호 수신부(1106)에서 동작 인에이블이 발행되고 또한 데이터 전송 요구 수신부(1102)에 DMA 전송 예약이 축적되어 있는 경우에만 클럭 인에이블을 출력하는 것이다.
메모리 클럭 제어용 레지스터(1108)는 DMA 파라미터 메모리(1105)용으로 특별히 마련된 것으로서, DMA 파라미터 메모리(1105)로 클럭을 강제적으로 공급할지 어떤지를 제어하는 것이다.
또, 메모리 인터페이스부(1l03), 데이터 입출력부(1104) 및 메인 메모리 클럭 공급/정지부(1111)는 클럭 공급/정지부(1109)가 출력하는 클럭에 의해서 동작하도록 되어 있고, 상기 클럭 공급/정지부(1109)는, 예를 들면 AND 게이트로 구성되어 있다. 또, DMA 파라미터 메모리(1105)는 클럭 공급/정지부(1110)가 출력하는 클럭에 의해서 동작하도록 되어 있고, 이 클럭 공급/정지부(1110)는 메모리 클럭 제어 레지스터(1108) 또는 클럭 제어부(1107)에 의해 제어되는 것으로서, 예를 들면 메모리 클럭 제어 레지스터(1108)의 출력과 클럭 인에이블의 OR 및 이 OR의 출력과 클럭의 AND로 형성된 복합 게이트로 구성되어 있는 것이다.
메인 메모리 클럭 공급/정지부(1111)는 메인 메모리(1120)인 SRAM0∼SRAM3으로 각각 독립된 클럭 clkram0∼clkram3을 공급하기 위해서 각각의 메모리(SRAM0∼3)에 대응한 클럭 공급/정지부를 구비하고 있고, 이 SRAM 마다의 클럭 공급/정지부에는 클럭 제어부(1107)로부터 클럭 인에이블이 입력되고, 또 메모리 인터페이스부(1103)로부터 메인 메모리(1120)에 대한 어드레스의 상위 2비트가 디코드되고, 그들이 뱅크 선택 신호로서 입력된다. 이하, 표 1에 어드레스의 상위 2비트(bit)와 뱅크 선택 신호의 관계를 나타낸다.
메인 메모리 클럭 공급/정지부(1111)의 각 메모리 클럭 공급/정지부는 어드레스 디코드된 뱅크 선택 신호 bank0∼bank3이 유효하고 또한 클럭 제어부(1107)로부터의 클럭 인에이블이 유효할 때에만 메인 메모리(1120) 내의 각 SRAM에 대해서 클럭을 공급하도록 되어 있다. 이들 메모리 클럭 공급/정지부는 예를 들면 AND 게이트와 같은 것으로 구성되어 있다.
또한, 본 실시예 11에 있어서의 데이터 전송 제어부(1101) 내의 데이터 전송 요구 수신부(1102)의 구성은 실시예 1과 마찬가지이고, 또 본 실시예 11에 있어서의 DMA 파라미터 메모리(1105)내의 데이터 배치는 실시예 9와 마찬가지이기 때문에 설명을 생략한다.
다음에, 도 19, 도 2 및 도 17을 이용하여 본 실시예 11의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(1101)의 동작에 관해서 설명한다.
실시예 10에서 설명한 동작과 마찬가지로, 먼저 프로세서(1121)는 로컬 버스를 이용하여 메모리 클럭 제어 레지스터(1108)에 "1"을 기입하여 메모리 클럭을 유효로 한다. 이에 의해, DMA 파라미터 메모리(1105)로 클럭이 강제적으로 공급된다. 그 후, 프로세서(1121)는 DMA 전송에 필요한 파라미터를 미리 DMA 파라미터 메모리(1105)에 저장하고, 다시 메모리 클럭 제어 레지스터(1108)를 "0"으로 하여 클럭을 정지시켜 둔다. 그리고, 초기 전송에 필요한 DMA 전송 요구를 데이터 전송 요구 수신부(1102)에 대해 발행하여 예약한다. 여기서, 도 2에 도시하는 바와 같이 3개의 DMA 전송의 예약이 이루어진 것으로 한다.
시스템이 기동되면, 프로세서(1121)는 기동 신호 수신부(1106)에 대해 기동 명령을 발행한다. 기동 명령을 수신한 기동 신호 수신부(1106)는 메모리 인터페이스부(1103) 및 클럭 제어부(1107)에 대해 동작 인에이블을 발행한다. 클럭 제어부(1107)에는 동작 인에이블과 예약 플래그가 입력되고 있고, 이들이 모두 유효한 경우에 클럭 인에이블을 유효로 하는 동작을 한다. 클럭 인에이블은 클럭 공급/정지부(1109, 1110)에 입력되고 있고, 클럭 인에이블이 유효한 기간에만 메모리 인터페이스부(1103), 데이터 입출력부(1104), DMA 파라미터 메모리(1105)로 클럭이 공급된다.
현재, 우선 레벨 1의 예약인 자원 C와 메인 메모리(1120)의 DMA 전송이 실행되고 있다고 하고, 이 때의 DMA 파라미터가 도 17에 도시하는 바와 같은 것이었다고 하면, 액세스 패턴이 연속 액세스, 개시 어드레스가 $3F00(16진), 전송 개수가 88개의 워드 단위로의 기입 전송으로 된다.
메모리 인터페이스부(1103)는 메인 메모리(1120)의 액세스 개시 어드레스의 상위 2비트가 "00"이기 때문에, 먼저 메인 메모리 클럭 공급/정지부(1111)로bank0=1, bank1=0, bank2=0, bank3=0의 신호를 출력한다. 메인 메모리 클럭 공급/ 정지부(1111)는 클럭 제어부(1107)로부터의 클럭 인에이블과 메모리 인터페이스부(1103)로부터의 bank0 신호를 받아 SRAM0에 대한 클럭 clkramO만을 공급한다.
전술한 16워드의 전송이 종료한 시점에서 어드레스가 $4000(16진)으로 변화되면 어드레스의 상위 2비트가 "10"으로 변화되기 때문에, 메모리 인터페이스부(1107)는 메인 메모리 클럭 공급/정지부(1111)로 bank0=0, bank1=1, bank2=0, bank3=0의 신호를 출력한다. 메인 메모리 클럭 공급/정지부(1111)는 클럭 제어부(1107)로부터의 클럭 인에이블과 메모리 인터페이스부(1103)로부터의 bank1 신호를 받아 SRAM1에 대한 클럭 clkram1만을 공급하고, 다른 SRAM0 및 SRAM2, SRAM3으로의 클럭 공급을 정지한다.
이러한 제어하에서 도 2에 도시한 3개의 예약이 우선 레벨 순으로 실행되고, 각각의 DMA 전송에 있어서 데이터를 메인 메모리(1120)에 기입 종료하거나 또는 데이터를 각 로컬 메모리(1123)에 기입 종료하면, 데이터 입출력부(1104)는 메모리 인터페이스부(1103)에 그 취지를 알린다. 메모리 인터페이스부(1103)는 전송 종료 신호를 클럭 제어부(1107)로 출력하고, 예약 플래그는 데이터 전송 요구 수신부(1102)에 예약이 없어지면 "0"으로 된다. 클럭 제어부(1107)는 메모리 인터페이스부(1103)로부터 전송 종료 신호를 받고, 데이터 전송 요구 수신부(1102)로부터의 예약 플래그가 "0"으로 된 타이밍에서 클럭 인에이블을 "0"으로 하여 클럭 공급/정지부(1109, 1110)에 대해서 출력한다. 이 클럭 인에이블 신호를 수신한 클럭공급/정지부(1109, 1110)는 메모리 인터페이스부(1103), 데이터 입출력부(1104), DMA 파라미터 메모리(1105), 메인 메모리 클럭 공급/정지부(1111)로의 클럭 공급을 정지한다.
또한, 이상에서 설명한 본 실시예 11의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구 발행원이 복수인 경우에도 적응 가능하다.
이와 같이, 본 실시예 11에서는 메인 메모리를 물리적으로 분할해 두고, 클럭 및 제어 신호를 분할한 메모리에 따로따로 입력하고, 사용하지 않는 어드레스 영역인 경우에는 클럭 및 제어 신호를 자동적으로 공급하지 않는 것에 의해서, 효율적으로 저소비 전력을 실현하는 시스템을 얻을 수 있다.
또, 본 실시예 11에 있어서는 회로가 자동적으로 클럭 제어하는 것에 의해 프로세서의 프로그램이 클럭 제어를 실행할 필요가 없기 때문에, 프로그램이 복잡하게 되지 않고, 또한 프로그램 스텝 수를 삭감할 수 있다.
(실시예 12)
이하, 실시예 12에 있어서의 DMA 콘트롤러에 관해서 설명한다.
먼저, 도 20을 이용하여 본 실시예 12에 있어서의 DMA 콘트롤러 및 그 DMA 콘트롤러를 갖는 시스템의 구성을 설명한다.
도 20은 실시예 12에 있어서의 DMA 콘트롤러를 갖는 시스템 구성도이다.
도 20에 있어서 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(1201), 메인 메모리(1220), 프로세서(1221), 로컬 메모리(1223), 로컬 버스 및 DMA 버스로구성된다.
메인 메모리(1220)는 각종 데이터를 저장하기 위한 메인 메모리로서, DRAM으로 구성되어 있다. 이 DRAM은 선형 어드레스 영역이 4뱅크로 물리적으로 분할되어 있고, 각각에 독립된 클럭이 입력되고 있다.
프로세서(1221)는 데이터 전송 제어부(1201)를 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(1201)에 대해서 DMA 전송 요구를 발행하는 것이다.
로컬 메모리(1223)는 상기 프로세서(1221)에 로컬 버스에 의해서 접속된 로컬 메모리군이다.
또, 상기 데이터 전송 제어부(DMA 콘트롤러)(1201)는 데이터 전송 요구 수신부(1202), 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205), 기동 신호 수신부(1206), 클럭 제어부(1207), 메모리 클럭 제어 레지스터(1208), 클럭 공급/정지부(1209, 1210), 메인 메모리 뱅크 레지스터(1211) 및 메인 메모리 클럭 공급/정지부(1212)를 구비한다.
클럭 제어부(1207)는 기동 신호 수신부(1206)로부터 동작 인에이블이 발행되고 또한 데이터 전송 요구 수신부(1202)에 DMA 전송 요구의 예약이 축적되어 있는 경우에만 클럭 인에이블을 출력한다. 메모리 클럭 제어용 레지스터(1208)는 DMA 파라미터 메모리(1205)용으로 특별히 마련된 메모리로서, DMA 파라미터 메모리(1205)로 클럭을 강제적으로 공급할지 어떤지를 제어하는 것이다.
또, 메모리 인터페이스부(1203), 데이터 입출력부(1204) 및 메인메모리(1220)는 클럭 공급/정지부(1209)가 출력하는 클럭에 의해 동작하는 것이고, 상기 클럭 공급/정지부(1209)는, 예를 들면 AND 게이트로 구성되어 있다. 또, DMA 파라미터 메모리(1205)는 클럭 공급/정지부(1210)가 출력하는 클럭에 의해 동작하는 것이고, 이 클럭 공급/정지부(1210)는 메모리 클럭 제어 레지스터(1208) 또는 클럭 제어부(1207)에 의해 제어된다. 이 클럭 공급/정지부(1210)는, 예를 들면 메모리 클럭 제어 레지스터(1208)의 출력과 클럭 인에이블의 OR 및 그 OR의 출력과 클럭의 AND로 형성된 복합 게이트로 구성되는 것이다.
메인 메모리 뱅크 레지스터(1211)는 메인 메모리(1220)의 4개로 분할된 뱅크의 선택 제어를 하는 것으로서, 로컬 버스에 의해서 프로세서(1221)에 접속되어 있다. 이 로컬 버스에 의해서, 사용할 뱅크의 선택 및 사용할 뱅크 이외의 DRAM을 완전히 오프(OFF)할지 셀프 리프레쉬만 실행할지를 설정한다. 또, 메인 메모리 뱅크 레지스터(1211)는 하위 2비트로 설정된 0∼3까지의 값에 근거하여 DRAM0∼DRAM3에 대응한 뱅크 선택 신호 bank0∼bank3을 출력한다. 이하, 표 2에 설정값과 셀프 리프레쉬 설정과 뱅크 선택 신호의 관계를 나타낸다.
메인 메모리 클럭 공급/정지부(1212)는 메인 메모리(1220)인 DRAM0∼DRAM3으로 각각 독립된 클럭 clkdram0∼clkdram3을 공급하기 위한 클럭 공급/정지부로서, 예를 들면 각각이 AND 게이트와 같은 것으로 구성되어 있다.
뱅크 선택 신호(bank0∼bank3) 및 셀프 리프레쉬 제어 신호(selfon)는 메모리 인터페이스부(1203)에 입력되고, DRAM0∼DRAM3에 대한 제어 신호의 선택에 사용된다.
또한, 본 실시예 12에 있어서의 데이터 전송 제어부(1201) 내의 데이터 전송 요구 수신부(1202)의 구성은 실시예 1과 마찬가지이기 때문에 설명은 생략한다.
다음에, 도 20 및 도 2를 이용하여 본 실시예 12의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(1201)의 동작에 관해서 설명한다.
실시예 10에서 설명한 동작과 마찬가지로, 먼저 프로세서(1221)는 로컬 버스를 이용하여 메모리 클럭 제어 레지스터(1208)에 "1"을 기입하여 메모리 클럭을 유효로 한다. 이에 의해, DMA 파라미터 메모리(1205)로 클럭이 강제적으로 공급된다. 그 후, 프로세서(1221)는 DMA 전송에 필요한 파라미터를 미리 DMA 파라미터 메모리(1205)에 저장하고, 다시 메모리 클럭 제어 레지스터(1208)를 "0"으로 하여 클럭을 정지시켜 둔다.
그리고, 초기 전송에 필요한 DMA 전송 요구를 데이터 전송 요구 수신부(1202)에 대해 발행하여 예약한다. 여기서, 도 2에 도시하는 바와 같이 3개의 DMA 전송의 예약이 이루어진 것으로 한다.
지금, 사용하고자 하는 DRAM의 영역이 절반까지인 것으로 하자. 프로세서(1221)는 로컬 버스를 이용하여 메인 메모리 뱅크 레지스터(1211)에 셀프 리프레쉬 오프 설정 및 DRAM 사용 영역 2 뱅크를 나타내는 3비트, "101"을 설정한다.
그 후, 시스템이 기동되면, 프로세서(1221)는 기동 신호 수신부(1206)에 대해 기동 명령을 발행한다. 기동 명령을 수신한 기동 신호 수신부(1206)는 메모리 인터페이스부(1203) 및 클럭 제어부(1207)에 대해 동작 인에이블을 발행한다. 클럭 제어부(1207)에는 동작 인에이블과 예약 플래그가 입력되고 있고, 이들이 모두 유효한 경우에 클럭 인에이블을 유효로 하는 동작을 한다. 클럭 인에이블은 클럭 공급/정지부(1209, 1210)에 입력되고 있고, 클럭 인에이블이 유효한 기간에만 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205)로 클럭이 공급된다.
또, 메인 메모리 클럭 공급/정지부(1212)에는 클럭 제어부(1207)로부터 클럭 인에이블이, 메인 메모리 뱅크 레지스터(1211)로부터 뱅크 선택 신호 bank0=1,bank1=1, bank2=0, bank3=0이 입력되고 있고, 선택된 뱅크(여기서는, DRAM0과 DRAMl)에 대해서 클럭 인에이블이 유효한 기간에만 클럭 clkdramO, clkdram1이 공급된다.
또, 메모리 인터페이스부(1203)에서는 메인 메모리 뱅크 레지스터(1211)에서 입력되는 각 제어 신호 selfon, bank0∼bank3에 의해 각 DRAM0∼3에 대한 제어를 실행한다. selfon 신호가 "0"인 경우, bank 신호에 의해 선택된 DRAM0, DRAM1 이외의 DRAM2, DRAM3은 오프 상태로서, 액세스는 실행되지 않고 또 리프레쉬조차도 실행되지 않는다. 또, 선택된 각 뱅크 DRAM0, DRAM1에 대한 제어 신호도 메모리 인터페이스부(1203)에 있어서 어드레스의 상위 2비트에 의해 공급이 제어된다. 또, 통상 액세스와 함께 필요에 따라서 자동 리프레쉬가 실행된다. 자동 리프레쉬라는 것은 외부로부터 정기적으로 DRAM에 대해서 실행하는 리프레쉬 커맨드를 의미하며, 클럭과 함께 입력된다.
이 상태에서 도 2에 도시하는 3개의 예약이 우선 레벨순으로 실행되고, 각각의 DMA 전송에 있어서 데이터를 메인 메모리(1220)에 기입 종료하거나 또는 데이터를 각 로컬 메모리(1223)에 기입 종료하면, 데이터 입출력부(1204)는 메모리 인터페이스부(1203)에 그 취지를 알린다. 메모리 인터페이스부(1203)는 전송종료 신호를 클럭 제어부(1207)로 출력하고, 예약 플래그는 데이터 전송 요구 수신부(1202)에 예약이 없어지면 "0"으로 된다. 클럭 제어부(1207)는 메모리 인터페이스부(1203)로부터 전송 종료 신호를 받고, 데이터 전송 요구 수신부(1202)로부터의 예약 플래그가 "0"으로 된 타이밍에서 클럭 인에이블을 "0"으로 하여 클럭 공급/정지부(1209, 1210)에 대해서 출력한다. 이 클럭 인에이블을 수신한 클럭 공급/정지부(1209, 1210)는 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205)로의 클럭 공급을 정지한다. 또, 메인 메모리 클럭 공급/정지부(1212)도 클럭 제어부(1207)로부터의 상기 클럭 인에이블을 받아 DRAM0 및 DRAM1에 대한 클럭 공급을 정지한다.
다음에, 최초에는 전체 영역에 액세스하고 도중에 절반의 영역으로 변경하고자 하는 경우에 관해서 설명한다.
먼저, 프로세서(1221)는 DMA 파라미터 메모리(1205)에의 설정 및 DMA 전송 요구의 데이터 전송 요구 수신부(1202)에의 예약과 함께, 로컬 버스를 이용하여 메인 메모리 뱅크 레지스터(1211)에 셀프 리프레쉬 온(ON)설정 또한 DRAM 사용 영역이 전체 영역을 나타내는 3비트, "011"을 설정한다.
이 후, 본 시스템이 기동되면, 프로세서(1221)는 기동 신호 수신부(1206)에 대해 기동 명령을 발행한다. 기동 명령을 수신한 기동 신호 수신부(1206)는 메모리 인터페이스부(1203) 및 클럭 제어부(1207)에 대해 동작 인에이블을 발행한다. 클럭 제어부(1207)에는 동작 인에이블과 예약 플래그가 입력되고 있고, 이들이 모두유효한 경우에 클럭 인에이블을 유효로 한다. 또, 상기 클럭 인에이블은 클럭 공급/정지부(1209,1210)에 입력되고 있고, 클럭 인에이블이 유효한 기간에만 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205)로 클럭이 공급된다.
또, 메인 메모리 클럭 공급/정지부(1212)에는 클럭 제어부(1207)로부터 클럭인에이블이, 메인 메모리 뱅크 레지스터(1211)로부터 뱅크 선택 신호 bank0=1, bank1=1, bank2=1, bank3=1이 입력되고 있고, 선택된 뱅크(여기서는, DRAM0∼DRAM3의 전체영역)에 대해서 클럭 인에이블이 유효한 기간에만 클럭 clkdram0, clkdram1, clkdram2, clkdram3이 공급된다.
또, 메모리 인터페이스부(1203)에서는 메인 메모리 뱅크 레지스터(1211)에서 입력되는 각 제어 신호 selfon, bank0∼bank3에 의해 각 DRAM 뱅크에 대한 제어를 실행한다. 현재, selfon 신호가 "1"이고 bank 신호가 전체 뱅크에 대해 유효하기 때문에, 전체 뱅크 통상 동작 모드로 되어 액세스와 함께 필요에 따라 자동 리프레쉬가 실행된다. 자동 리프레쉬라는 것은 외부로부터 정기적으로 DRAM에 대해서 실행하는 리프레쉬 커맨드를 의미한다.
또, 선택된 각 뱅크에 대한 제어 신호는 메모리 인터페이스부(1203)에 있어서 어드레스의 상위 2비트에 의해 공급이 제어된다.
이 상태에서 도 2에 도시하는 바와 같은 데이터 전송 요구 수신부에 설정된 3개의 예약이 우선 레벨 순으로 실행되었다고 한다. 각각의 DMA 전송에 있어서 데이터를 메인 메모리(1220)에 기입 종료하거나 또는 데이터를 각 로컬 메모리(1223)에 기입 종료하면, 데이터 입출력부(1204)는 메모리 인터페이스부(1203)에 그 취지를 알린다. 메모리 인터페이스부(1203)는 전송종료 신호를 클럭 제어부(1207)로 출력하고, 예약 플래그는 데이터 전송 요구 수신부(1202)에 예약이 없어지면 "0"으로 된다. 클럭 제어부(1207)는 메모리 인터페이스부(1203)로부터 전송종료 신호를 받고, 데이터 전송 요구 수신부(1202)로부터의 예약 플래그가 "0"으로 된 타이밍에서 클럭 인에이블을 "0"으로 하여 클럭 공급/정지부(1209, 1210)에 대해서 출력한다. 이 클럭 인에이블을 수신한 클럭 공급/정지부(1209, 1210)는 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205)로의 클럭 공급을 정지한다. 또, 메인 메모리 클럭 공급/정지부(1212)도 클럭 제어부(1207)로부터의 상기 클럭 인에이블을 받아 DRAM0∼DRAM3에 대한 클럭 공급을 정지한다.
이 때, 프로세서(1221)가 그 후 잠시 메인 메모리(1220)내의 절반의 영역밖에 사용하지 않는다고 판단한 경우, 프로세서(1221)는 로컬 버스를 통하여 메인 메모리 뱅크 레지스터(1211)에 셀프 리프레쉬 온설정 및 DRAM 사용 영역 2뱅크(여기서는 DRAM0, DRAM1)를 나타내는 3비트, "001"을 설정한다.
그리고, 본 시스템이 기동되면, 프로세서(1221)는 기동 신호 수신부(1206)에 대해 기동 명령을 발행한다. 기동 명령을 수신한 기동 신호 수신부(1206)는 메모리 인터페이스부(1203) 및 클럭 제어부(1207)에 대해 동작 인에이블을 발행한다. 클럭 제어부(1207)에는 동작 인에이블과 예약 플래그가 입력되고 있고, 이들이 모두 유효한 경우에 클럭 인에이블을 유효로 한다. 클럭 인에이블은 클럭 공급/정지부(1209, 1210)에 입력되고 있고, 클럭 인에이블이 유효한 기간에만 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205)로 클럭이 공급된다.
또, 메인 메모리 클럭 공급/정지부(1212)에는 클럭 제어부(1207)로부터 클럭 인에이블이, 메인 메모리 뱅크 레지스터(1211)로부터 뱅크 선택 신호 bank0=1, bank1=1, bank2=0, bank3=0이 입력되고 있고, 선택된 뱅크(여기서는 DRAM0, DRAM1)에 대해서 클럭 인에이블이 유효한 기간에만 클럭 clkdram0, clkdram1이 공급된다.
또, 메모리 인터페이스부(1203)에서는 메인 메모리 뱅크 레지스터(1211)로부터 입력되는 각 제어 신호 selfon, bank0∼bank3에 의해 각 DRAM 뱅크에 대한 제어를 실행한다. 현재, selfon 신호가 "1"이고 bank 신호는 bankO, bank1이 유효하기 때문에, bank 신호에 의해 선택된 DRAM0, DRAM1 이외의 DRAM2, DRAM3은 액세스는 실행되지 않고 셀프 리프레쉬 상태로 된다. 셀프 리프레쉬 상태라는 것은 여기서는 셀프 리프레쉬 제어 신호를 "L"로 하여 클럭 공급을 정지하는 것을 의미하고 있다.
또, 선택된 각 뱅크(DRAM0, DRAMl)에 대한 제어 신호도 메모리 인터페이스부(1203)에 있어서 어드레스의 상위 2비트에 의해 공급이 제어된다. 리프레쉬는 액세스의 사이에 실행되는 자동 리프레쉬에 의해 실행된다.
이 상태에서 도 2에 도시하는 바와 같은 데이터 전송 요구 수신부에 설정된 3개의 예약이 우선 레벨 순으로 실행된 것으로 한다. 각각의 DMA 전송에 있어서 데이터를 메인 메모리(1220)에 기입 종료하거나 또는 데이터를 각 로컬 메모리에 기입 종료하면, 데이터 입출력부(1204)는 메모리 인터페이스부(1203)에 그 취지를 알린다. 메모리 인터페이스부는 전송 종료 신호를 클럭 제어부(1207)로 출력하고, 예약 플래그는 데이터 전송 요구 수신부(1202)에 예약이 없어지면 "0"으로 된다. 클럭 제어부(1207)는 메모리 인터페이스부(1203)로부터 전송종료 신호를 받고, 데이터 전송 요구 수신부(1202)로부터의 예약 플래그가 "0"으로 타이밍에서 클럭 인에이블을 "0"으로 하여 클럭 공급/정지부(1209, 1210)에 대해서 출력한다. 이 클럭 인에이블 신호를 수신한 클럭 공급/정지부(1209, 1210)는 메모리 인터페이스부(1203), 데이터 입출력부(1204), DMA 파라미터 메모리(1205)로의 클럭 공급을 정지한다. 또, 메인 메모리 클럭 공급/정지부(1212)도 클럭 제어부(1207)로부터의 상기 클럭 인에이블을 받아 DRAM0, DRAM1에 대한 클럭 공급을 정지한다.
그 이후, 다시 전체 영역을 사용하고자 하는 경우는 메인 메모리 뱅크 레지스터(1211)의 설정을 변경하는 것에 의해, DRAM2, DRAM3이 셀프 리프레쉬 모드에서 빠져나와 전체 영역 통상 액세스 모드로 된다.
여기서, 단일의 DRAM과 복수 뱅크로 분할한 DRAM의 소비 전력의 차이에 관해서 구체적인 예를 이용하여 설명한다.
예를 들면, 화상 압축/신장의 국제 표준 규격인 MPEG-4를 처리하는 바와 같은 화상 처리 장치에 있어서, 그 화상 처리에 사용하는 메모리에 관해서 고려한다.
상기 화상 처리에 사용하는 메모리의 영역은 처리할 화상의 종류에 따라 다른 경우가 있고, 표 3은 그 처리할 화상의 종류와 그 경우에 필요하게 되는 메모리 용량의 관계를 나타내는 것이다.
표 3에 있어서, 메모리의 최대 사용 용량은 16Mbit로 되어 있고, 이 때 LSI내부에 혼재할 수 있는 DRAM의 소비 전력을 견적하면, 도 21에 도시하는 바와 같이 된다. 도 21은 16Mbit의 메모리 영역을 단일, 2분할, 4분할, 8분할했을 때의 소비 전력을 비교한 그래프이다. 도 21로부터 16Mbit의 메모리 영역을 단일의 DRAM으로서 사용하는 것보다 복수 뱅크로 분할하여 이용한 쪽이 소비 전력이 저감하는 경우가 있다는 것을 알 수 있다.
도 21의 결과에 입각해서, 16Mbit의 영역을 4Mbit 단위로 4분할하고, 개별의 DRAM을 사용하여 메모리를 구성하고, 처리의 종류에 따라서 사용할 DRAM의 영역을 선택할 수 있도록 했다고 한다.
예를 들면, CIF 사이즈의 코덱(CODEC)을 실행하는 경우에는 표 3에 표시되는 바와 같이 16Mbit 전체 영역을 사용할 필요가 있지만, 그 후 화상사이즈가 변경되어 QCIF 사이즈의 코덱을 실행하는 경우에는 그 사용 영역은 8Mbit로도 충분하게 되므로, 분할한 4개의 DRAM중 2개의 DRAM 뱅크만을 사용하도록 설정한다. 이와 같이 하는 것에 의해, 사용하지 않는 메모리 영역에 대해서는 클럭 및 제어 신호를 공급하지 않고 또 액세스도 실행하지 않도록 할 수 있다. 도 22는 16Mbit의 메모리 영역을 4분할했을 때에 그 각 분할한 메모리 영역만을 사용한 경우와 전체 영역을 사용한 경우의 소비 전력을 비교한 그래프이다. 도 22로부터 메모리의 전체 영역을 사용할 때보다 사용하지 않는 메모리 영역에 대해서는 클럭 및 제어 신호를 공급하지 않을 때가 소비 전력을 삭감할 수 있다는 것을 알 수 있다.
이상과 같은 제어를 실시하여 MPEG-4의 심플 프로파일 레벨 1(Simple@L1)을 실행하는 경우, 단일의 DRAM으로 구성한 메모리를 사용한 경우의 견적값과 복수DRAM으로 구성한 메모리를 사용한 경우의 측정값을 비교하면, 복수 DRAM으로 구성한 메모리는 도 23에 도시하는 바와 같이 소비 전력을 약 36% 삭감할 수 있다는 것을 알 수 있었다.
또한, 이상에서 설명한 본 실시예 12의 DMA 전송 처리는 실시예 2와 같이 상기 DMA 전송 요구 발행원이 복수인 경우에도 적응 가능하다.
이와 같이, 본 실시예 12에서는 DRAM에 있어서도 연속 어드레스 영역인 메인 메모리를 물리적으로 분할하고, 필요한 뱅크로만 클럭을 따로따로 공급할 수 있도록 제어하는 것에 의해 효율좋게 전력을 제어할 수 있기 때문에 더욱 저소비 전력을 실현하는 시스템이 얻어진다.
또, 애플리케이션에 의해 탑재한 DRAM의 절반밖에 사용하지 않는 경우에는 미리 절반의 영역을 오프 상태로 하는 것에 의해, 더욱더 저소비 전력을 실현하는 시스템이 얻어진다.
또, 일련의 애플리케이션 동작중에도 실시간으로 사용 영역이 변화되는 경우에는 사용하지 않는 뱅크에 대해서 셀프 리프레쉬 모드를 실행하도록 해 두는 것에 의해, 다시 전체 영역을 유효로 했을 때에도 데이터가 소거되지 않아 활용할 수 있다.
또한, 클럭의 입력도 없고 또 자동 리프레쉬를 위한 제어 신호의 입력도 없기 때문에, 최적한 저소비 전력으로 데이터를 유지하여 활용할 수 있다.
또한, 본 실시예 12에 있어서 메인 메모리의 분할은 4이었지만, 임의의 수이더라도 마찬가지이다.
(실시예 13)
이하, 실시예 13에 있어서의 DMA 콘트롤러에 관해서 설명한다.
도 24는 본 실시예 13에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템 구성도이다.
도 24에 있어서 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(1601), 프로세서(1621), 메인 메모리(1620), 로컬 메모리(1622), DMA 버스 및 로컬 버스로 이루어지는 것이다.
메인 메모리(1620)는 각종 데이터를 저장하는 것으로서, SRAM으로 구성되어 있다. 또, 이 SRAM은 선형 어드레스 영역이 4뱅크로 분할되어 있고, 각각에 독립된 클럭이 입력되고 있다.
프로세서(1621)는 DMA 콘트롤러(데이터 전송 제어부)(1601)를 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(1601)에 대해서 DMA 전송 요구를 발행하는 것이다.
로컬 메모리(1622)는 프로세서(1621)의 로컬 버스에 접속된 로컬 메모리군이다.
또, 상기 데이터 전송 제어부(DMA 콘트롤러)(1601)는 메모리 인터페이스부(1603), 데이터 입출력부(1604), 클럭 제어부(1607) 및 어드레스 판정부(1608)를 구비한다.
메모리 인터페이스부(1603)는 프로세서(1621)로부터의 지시를 받아 메모리(1620)의 제어를 실행하는 것이고, 어드레스 판정부(1608)는 프로세서(1621)에서 설정되는 개시 어드레스, 종료 어드레스(또는 전송 개수)에 의해서 액세스될 어드레스 영역을 판별하고, 클럭 공급/정지를 실행하는 클럭 제어부(1607)로 제어 신호를 출력하는 것이다. 또, 데이터 입출력부(1604) 및 메인 메모리(1620)는 상기 클럭 제어부(1607)가 출력하는 클럭에 의해 동작하도록 되어 있다. 이 클럭 제어부(1607)는, 예를 들면 AND 게이트와 같은 것으로 구성된다.
다음에, 도 24를 이용하여 본 실시예 13의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(1601)의 동작을 설명한다.
프로세서(1621)는 로컬 버스를 이용하여 DMA 전송의 개시 어드레스 및 종료 어드레스를 데이터 전송 제어부(1601)에 설정한다. 이 프로세서(1621)에 의해 설정된 어드레스 정보는 데이터 전송 제어부(1601)내의 어드레스 판정부(1608)을 거쳐서 메모리 인터페이스부(1603)로 전달되고, 메인 메모리(1620)와의 액세스 시의 어드레스로서 이용된다.
현재, 프로세서(1621)가 새로운 DMA 전송명령을 발행한다고 한다. 프로세서(1621)는 발행하고자 하는 DMA 전송의 개시 어드레스와 종료 어드레스를 데이터 전송 제어부(1601) 내의 어드레스 판정부(1608)에 설정한다. 어드레스 판정부(1608)는 이 설정된 어드레스에 의해 메인 메모리(1620) 내의 액세스될 뱅크를 판정하고, 프로세서(1621)로부터 DMA 전송 요구가 발행되면 이 액세스 뱅크에 대응하는 bank0∼bank3 신호를 유효로 하여 액세스 뱅크를 나타낸다.
여기서, 메인 메모리(1620)는 전부 1MByte영역이며, 1개의 SRAM이 256KByte의 용량이라고 한다. 또한, 어드레스는 4개의 SRAM을 이용하고, 1MByte 영역을 연속적으로 연결하고 있다.
지금, 프로세서(1621)가 개시 어드레스 200KByte째, 종료 어드레스 300 KByte 째를 설정했다고 하자.
그 후, 프로세서(1621)가 DMA 전송 요구를 발행하면, 어드레스 판정부(1608)는 동작 인에이블 acten을 유효로 하고, 또한 개시 어드레스인 200 KByte째가 존재하는 bank0과 종료 어드레스인 300KByte 째가 존재하는 bank1을 유효로 한다. 이 때, bank2, bank3은 무효로 유지된다.
전술한 바와 같은 제어 신호를 수신한 클럭 제어부(1607)는 bank0, bank1에 대응하는 클럭을 메인 메모리(1620) 내의 대응하는 SRAM으로 공급하고, bank2, bank3에 대응하는 클럭은 정지시킨다.
이와 같이, 본 실시예 13에 의하면, 메인 메모리를 물리적으로 분할하고, DMA 전송 요구가 발행된 후의 DMA 전송 기간과 액세스할 어드레스에 의해 분할된 영역마다(메모리 단위) 클럭의 공급/정지 제어를 실행하도록 했으므로, 필요한 시간, 필요한 영역에만 회로를 동작시킬 수 있다. 이 결과, 회로의 소비 전력을 효율좋게 제어할 수 있어 더욱 저소비 전력을 실현하는 시스템이 얻어진다.
또, 어드레스 판정부(1608)에 있어서 프로세서(1621)에서 설정되는 개시 어드레스, 종료 어드레스(또는 전송 개수)에 의해 액세스될 어드레스 영역을 판별하는 것이 아니라, 메모리 인터페이스부(1603)에 구비된 어드레스 생성기와 연동하여 실시간으로 액세스 영역을 판별하도록 하면 클럭을 공급하는 시간과 영역을 더욱 세밀하게 제어할 수 있다. 이에 의해, 실시간으로 클럭의 정지 제어를 실현할 수있기 때문에, 더욱더 저소비 전력을 실현하는 시스템이 얻어진다.
또한, 본 실시예에서는 메인 메모리(1620)에 SRAM을 이용했지만, DRAM이라도 마찬가지로 해서 클럭 제어를 실현할 수 있다.
(실시예 14)
이하, 실시예 14에 있어서의 DMA 콘트롤러에 관해서 설명한다.
도 25는 본 실시예 14에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템 구성도이다.
도 25에 있어서 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(1701), 프로세서(1721), 메인 메모리(1720), 로컬 메모리(1722), DMA 버스 및 로컬 버스로 이루어지는 것이다.
메인 메모리(1720)는 각종 데이터를 저장하는 것으로서, DRAM으로 구성되어 있다. 또, 이 DRAM은 선형 어드레스 영역이 4뱅크로 분할되어 있고, 각각에 독립된 클럭이 입력되고 있다.
프로세서(1721)는 DMA 콘트롤러(데이터 전송 제어부)(1701)를 비롯하여 시스템 전체를 제어하는 것이고, 또 이 데이터 전송 제어부(1701)에 대해서 DMA 전송 요구를 발행하는 것이다.
로컬 메모리(1722)는 로컬 버스에 의해서 프로세서(1721)에 접속된 로컬 메모리군이다.
또, 상기 데이터 전송 제어부(DMA 콘트롤러)(1701)는 메모리인터페이스부(1703), 데이터 입출력부(1704), 클럭 제어부(1707) 및 메인 메모리 뱅크 레지스터(1708)를 구비한다.
메모리 인터페이스부(1703)는 프로세서(1721)로부터의 지시를 받아 메인 메모리(1720)의 제어를 실행하는 것이고, 메인 메모리 뱅크 레지스터(1708)는 프로세서(1721)가 로컬 버스를 거쳐서 사용 메모리 영역을 설정하는 것이다. 또, 데이터 입출력부(1704) 및 메인 메모리(1720)는 클럭 제어부(1707)가 출력하는 클럭에 의해 동작하도록 되어 있다. 이 클럭 제어부(1707)는, 예를 들면 AND 게이트와 같은 것으로 구성된다.
다음에, 도 25를 이용하여 본 실시예 14의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(1701)의 동작을 설명한다.
여기서의 메인 메모리(1720)는 전부 1MByte 영역이며, 1개의 DRAM이 256 KByte의 용량이라고 한다. 또한, 어드레스는 4개의 DRAM을 이용하여 1MByte 영역을 연속적으로 연결하고 있다.
현재, 메인 메모리(1720)의 사용하고자 하는 영역을 전체 영역으로 하면, 프로세서(1721)는 로컬 버스를 거쳐서 데이터 전송 제어부(1701) 내의 메인 메모리 뱅크 레지스터(1708)에 전체 영역을 유효로 하는 설정을 실행한다. 또, 여기서는 메인 메모리 뱅크 레지스터(1708)에 "111"이 기입된 것으로 한다.
또, 프로세서(1721)는 로컬 버스를 이용하여 DMA 전송의 개시 어드레스 및 전송 개수 등을 데이터 전송 제어부(1701)내의 메모리 인터페이스부(1703)에 설정한다. 이 정보에 따라서 메모리 인터페이스부(1703)에서는 메인 메모리(1720)와의액세스 시의 어드레스가 생성된다.
다음에, DMA 전송을 실행하기 위해서 프로세서(1721)는 DMA 전송 요구를 발행한다. DMA 전송 요구를 접수한 데이터 전송 제어부(1701) 내의 메인 메모리 뱅크 레지스터(1708)는 동작 인에이블 acten을 유효로 함과 동시에 bank0∼bank3의 신호를 유효로 한다. 이에 의해, 모든 회로 및 메모리에 대해서 클럭이 공급되고, 모든 메모리에 대해서 액세스 및 리프레쉬 동작이 허가된다. 또, 액세스가 종료하면 모든 클럭 공급은 정지된다.
이 상태에서 필요한 처리를 실행하기 위한 일련의 DMA 전송을 종료하면, 프로세서(1721)는 다음의 처리에 있어서 필요한 DRAM 영역을 메인 메모리 뱅크 레지스터(1708)에 재설정한다.
여기서, 다음의 처리가 메인 메모리(1720)의 절반의 영역(DRAM0, DRAM1) 밖에 사용하지 않는 처리인 것으로 한다. 이 때, 나머지 절반의 영역(DRAM2, DRAM3)의 데이터를 남겨 둘 필요가 있는 경우에는 DRAM2, DRAM3을 셀프 리프레쉬 모드로 하고, 또 소거해도 좋은 경우에는 DRAM2, RAM3을 오프 상태로 한다. 예를 들면, 이 설정 항목은 셀프 리프레쉬가 "101", 오프 상태가 "001" 등으로 하면 좋다.
지금, 프로세서(1721)에 의해서 메인 메모리 뱅크 레지스터(1708)에 오프 상태 "001"이 설정되었다고 한다.
프로세서(1721)는 다시 로컬 버스를 통하여 메모리 인터페이스부(1703)에 어드레스 및 전송 개수 등을 설정한 후 DMA 전송 요구를 발행하면, 메인 메모리 뱅크 레지스터(1708)는 bank0, bank1을 유효로 하고 bank2, bank3은 무효 그대로 한다.이것을 받아 클럭 제어부(1707)는 bank0 및 bank1로만 클럭을 공급한다. 또, 메모리 인터페이스부(1703)에서는 bank0 및 bank1로만 제어 신호를 공급하여 리프레쉬 동작을 실행하고, bank2, bank3에 대해서는 일체의 액세스 제어를 실행하지 않는다. 즉, 액세스를 실행하고 있는 동안에는 클럭 제어부(1707)로부터 클럭이 공급되지만, 액세스가 종료하면 클럭 제어부(1707)로부터의 모든 회로 및 메모리에 대한 클럭 공급은 정지된다.
단, 선택되어 있는 DRAM에 관해서는 메모리 인터페이스부(1703)에 의해 정기적으로 리프레쉬 동작이 실행되어 데이터가 소거되지 않도록 한다.
이와 같이, 본 실시예 14에 의하면 물리적으로 메모리를 분할하고 처리 모드에 따라 사용할 메모리 영역을 선택하는 것에 의해, 쓸데없는 영역의 메모리를 동작시키지 않아 저소비 전력을 실현하고 또한 다양한 처리 모드에 유연하게 대응할 수 있는 처리 시스템을 용이하게 실현할 수 있다.
또, 동작 영역을 미리 설정하는 것에 의해 영역을 판정하는 회로도 필요없고, 메인 메모리가 DRAM과 같은 경우에 리프레쉬 제어도 용이하게 선택 실행할 수 있다.
(실시예 15)
이하, 실시예 15에 있어서의 DMA 콘트롤러에 관해서 설명한다.
도 26은 본 실시예 12에 있어서의 DMA 콘트롤러(데이터 전송 제어부)를 갖는 시스템 구성도이다.
도 26에 있어서 본 시스템은 DMA 콘트롤러인 데이터 전송 제어부(1801), 프로세서(1821), 메인 메모리(1820), 로컬 메모리(1822), 전원 스위치(1823), DMA 버스 및 로컬 버스로 이루어지는 것이다. 또한, 상기 데이터 전송 제어부(1801)의 구성은 실시예 14와 마찬가지이기 때문에 설명을 생략한다.
전원 스위치(1823)는 선형 어드레스 영역이 4뱅크로 분할된 메인 메모리(1820)의 각 DRAM0∼DRAM3에 대응하는 것으로서, 각 DRAM0∼DRAM3에 대한 전원 공급을 제어하는 것이다.
다음에, 도 26을 이용하여 본 실시예 15의 시스템에 있어서의 DMA 콘트롤러(데이터 전송 제어부)(1801)의 동작을 설명한다.
뱅크 선택 신호 bank0∼bank3은 전원 스위치부(1823)에 있어서 각각의 DRAM0∼DRAM3에 대응한 전원 스위치에 입력되고 있고, bank0∼bank3이 무효인 경우, 예를 들면 접지로 떨어뜨리는 것 등에 의해 DRAM으로 전원이 공급되지 않도록 제어한다.
따라서, 상술한 실시예 14와 같은 제어를 실행한 경우, 본 시스템에 있어서는 비선택의 메모리에 대해서는 클럭 공급 정지뿐만 아니라 전원 공급도 정지되게 된다.
이와 같이, 본 실시예 15에 의하면 물리적으로 메모리를 분할하고, 그 분할한 각 메모리에 대해서 전원 스위치를 구비하도록 하는 것에 의해 사용하고 있지 않은 메인 메모리의 리크 전류(누설 전류)를 억제할 수 있어 더욱더 저소비 전력화를 실현할 수 있다.
이상과 같이, 본 발명의 제 1 특징에 따른 고성능 DMA 콘트롤러에 의하면, 각종 데이터를 축적하는 주기억 수단과 이 주기억 수단의 전송 상대인 복수의 자기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는 상기 주기억 수단으로의 제어 신호를 발생하는 인터페이스부와, 데이터의 입출력을 제어하는 데이터 입출력부와, 데이터 전송을 실행하는 데 필요한 각종 파라미터를 저장하는 파라미터 유지 수단과, 데이터 전송의 요구를 접수하는 데이터 전송 요구 수신부와, 데이터 전송 제어부의 기동 및 정지 명령을 수신하는 기동 명령 수신부를 구비하고, 상기 데이터 전송 요구 수신부는 데이터 전송 요구 발행원으로부터 자유롭게 설정되는 실행 우선도 정보 및 상기 자기억 수단의 종별 정보로 이루어지는 복수의 데이터 전송 요구의 예약을 접수하여, 이 실행 우선도 정보마다 상기 자기억 수단의 종별 정보를 유지해 두는 것이고, 상기 데이터 전송 제어부는 장치 전체를 제어하는 시스템 콘트롤러부로부터 기동 명령이 발행될 때까지는 상기 데이터 전송 요구의 예약만을 접수하고, 상기 시스템 콘트롤러부로부터 기동 명령이 발행되면 예약된 데이터 전송 요구를 상기 실행 우선도가 높은 것중에서 데이터 전송 요구된 시간이 빠른 것부터 순서대로 상기 자기억 수단의 종별 정보를 해독하고, 그 해독 결과에 따라서 상기 파라미터 유지 수단으로부터 데이터 전송에 필요한 파라미터를 점차 취출하여 데이터 전송을 실행하도록 했으므로, 데이터 전송을 실행하지 않고 DMA 파라미터의 설정 및 DMA 전송 요구의 예약만을 실행할 수 있다.
또, 본 발명의 제 2 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 발행원이 복수인 경우, 상기 데이터 전송 제어부는, 상기 복수의 데이터 전송 요구 발행원으로부터 자유롭게 설정되는 실행 우선도 정보 및 상기 자기억 수단의 종별 정보를 포함하는 데이터 전송 요구의 예약을 상기 데이터 전송 요구 발행원마다 접수하는 예비 예약 수단을 구비하고, 상기 예비 예약 수단은 미리 결정된 상기 전송 요구 발행원의 우선도에 따라서 상기 데이터 전송 요구 발행원마다 접수한 데이터 전송 요구를 상기 데이터 전송 요구 수신부로 전송하도록 했으므로, 복수의 데이터 전송 요구 발행원으로부터 동시에 이루어진 데이터 전송 요구를 수신하여, 우선도를 갖는 예약을 가능한 것으로 한다. 이에 의해, 효율적으로 데이터 전송을 가능한 것으로 한다. 또, 복수의 전송 요구원에 대응할 수 있도록 회로를 변경할 때에 단일의 전송 요구원에 대해서만 대응하는 회로를 재이용할 수 있다.
또, 본 발명의 제 3 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 1 특징 또는 제 2 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 복수의 데이터 전송 요구 발행원 중의 1개가 시스템 전체를 제어하는 시스템 콘트롤러부이므로, 상기 시스템 콘트롤러부인 프로세서 등의 프로그래밍에 있어서, 데이터 전송을 위한 초기 설정을 시스템 콘트롤러가 기동을 걸기 전에 미리 실행할 수 있는 구성이므로, 초기 설정 처리부를 개발할 수 있는 등의 자유도가 향상된다. 이것은 프로세서 등의 개발을 용이하게 하는 것을 나타내고 있어 개발 기간의 단축에 기여한다.
또, 본 발명의 제 4 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 3 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 예비 예약 수단은, 상기 데이터 전송 요구를 상기 전송 요구 발행원마다 일시 유지하는 복수의 예비 예약 레지스터와, 상기 예비 예약 레지스터에 일시 유지된 상기 데이터 전송 요구의 출력을 선택하는 예비 선택기를 구비하며, 상기 예비 선택기는 미리 결정된 상기 데이터 전송 요구 발행원의 우선도에 따라서 상기 데이터 전송 요구를 선택하여 상기 데이터 전송 요구 수신부로 전송하도록 했으므로, 최소한의 회로를 부가함으로써, 복수의 데이터 전송 요구 발행원으로부터 동시에 이루어진 데이터 전송 요구를 제어할 수 있다.
또, 본 발명의 제 5 특징에 따른 고성능 DMA 콘트롤러에 의하면 제 1, 제 2 또는 제 4 특징 중의 어느 하나에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 수신부는, 상기 데이터 전송 요구의 실행 우선도 정보를 해독하는 우선 레벨 해독부와, 상기 자기억 수단의 종별 정보를 상기 실행 우선도 정보마다 저장하는 실행 우선도 정보마다의 예약 레지스터 및 상기 자기억 수단의 종별 정보의 출력을 선택하는 선택기를 구비하며, 상기 우선 레벨 해독부에 의해 복수의 상기 데이터 전송 요구를 상기 각 실행 우선도 정보마다의 예약 레지스터에 저장하고, 이 각 실행 우선도 정보마다의 예약 레지스터에 상기 데이터 전송 요구의 예약이 있는지 어떤지를 나타내는 각 예약 플래그의 상태에 따라 다음에 실행할 상기 자기억 수단의 종별 정보를 상기 선택기에 의해 선택하여 상기 인터페이스부로 전송하도록 했으므로, 데이터 전송 요구를 유지하는 유지레지스터의 수를 적게 할 수 있다. 또, DMA 전송 실행을 위한 판단 제어가 전송 종별 모든 우선도를 보고 판단하는 것보다 높은 우선도의 레지스터내의 전송 상대 종별을 보면 좋으므로, 우선도 판단을 고속으로 실행할 수 있고, 또한 제어가 용이하게 될 뿐만 아니라 회로도 간소화할 수 있다. 이에 의해, 고성능 DAM 콘트롤러의 회로 개발이 용이하게 되어 개발기간의 단축을 실현할 수 있다.
또, 본 발명의 제 6 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 5 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는 데이터 전송 처리 개시전인 전(前) 데이터 전송 처리가 종료하기 일정 시간 전에 사전에 상기 예약 레지스터에 예약되어 있는 데이터 전송 요구 중에서 상기 실행 우선도 정보 및 전송 요구된 시간에 따라서 다음에 실행할 데이터 전송 종별 정보를 판단하도록 했으므로, 데이터 전송의 실행준비 처리를 실행하는 것에 의해 데이터 전송 간격을 최소한으로 해서 연속된 효율좋게 데이터 전송을 실행할 수 있고, 상기 데이터 전송 요구 발행원으로부터의 데이터 전송 요구의 예약의 연속성을 유지한 채 데이터 전송 처리를 실행하기 직전에 들어 간 우선도가 높은 데이터 전송 요구의 예약을 실행할 수 있게 된다. 이것은 데이터 전송 실행중에 새롭게 더욱 우선도가 높은 데이터 전송 요구가 발행되더라도, 그 최신의 우선도로 데이터 전송을 실행하는 것이 가능해진다. 이에 의해, 중단/개발 처리의 제어가 복잡한 것으로 되지 않으므로, 고성능 DMA 콘트롤러의 회로도 소규모화할 수 있고 개발기간 단축에 크게 기여한다.
또, 본 발명의 제 7 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 6 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구는 상기 예약 레지스터에 예약된 데이터 전송 요구를 취소하는 캔슬 정보를 포함하도록 했으므로, 예약되어 있는 DMA 요구를 간단하게 취소할 수 있다. 또한, 시스템의 상태에 따라 필요가 없어진 DMA 전송을 실행하지 않아도 좋고, 또 재예약 등의 조작과 조합하는 것에 의해 예약을 교체하는 것도 가능하게 된다. 또, 쓸데없는 DMA 전송을 실행할 필요가 없기 때문에, 고성능 DMA 콘트롤러의 소비전력 삭감으로도 이어진다.
또, 본 발명의 제 8 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 7 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 캔슬 정보는 실행중인 데이터 전송에 대해서도 유효하도록 했으므로, 종래 실현되고 있던 일시정지나 중단/재개 처리와 같이 정지시의 파라미터를 유지할 필요가 없고 또한 연속해서 다음에 예약되어 있는 DMA 전송을 우선적으로 실행할 수 있다. 이 조작에 의해 캔슬을 실행해도 DMA의 연속성은 유지되므로, 중단/재개와 같이 퇴피/재로드 처리 사이클을 필요로 하지 않기 때문에 DMA 전송의 효율 저하를 초래하지 않는다.
또, 본 발명의 제 9 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 7 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 우선 레벨 해독부는, 상기 데이터 전송 요구가 상기 예약 레지스터에 예약된 데이터 전송 요구를 취소하는 캔슬 정보를 포함하는지 여부를 또 해독하는 것이고, 상기 캔슬 정보가 예약된 데이터 전송 요구에 대해서 이루어진 경우에는 상기 예약 플래그의 상태를 변경하는 것에 의해 상기 데이터 전송 요구를 캔슬하고, 상기 캔슬 정보가 실행중인 데이터 전송에 대해서 이루어진 경우에는 상기 시스템 콘트롤러부에 의해 상기 데이터 전송을 종료시키도록 했으므로, 예약 캔슬이 고속으로, 또한 간단한 제어로 실현할 수 있고,종래 복잡한 회로로 실현되고 있던 일시정지나 중단의 처리가 예약의 판단 타이밍과 캔슬 명령 및 재예약에 의해 용이하게 실현할 수 있다. 이에 의해, 고성능 DMA 콘트롤러에 복잡한 제어나 쓸데없는 회로를 구비할 필요가 없으므로, 회로의 설계개발 기간 및 검증 기간을 대폭 단축할 수 있다.
또, 본 발명의 제 10 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 5 특징 에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 수신부는, 장치 전체를 제어하는 시스템 콘트롤러부와 접속되고, 상기 실행 우선도 정보마다의 예약 레지스터는, 링 형상으로 배치된 복수의 설정 레지스터와 상기 복수의 설정 레지스터 중으로부터, 다음에 설정될 설정 레지스터 및 다음에 실행될 설정 레지스터를 선택하는 포인터 레지스터를 구비하도록 했으므로, 이미 예약해 버린 데이터 전송 요구를 자유롭게 캔슬하거나 우선 레벨을 교체하거나, 또는 순서를 교체하는 것을, 시스템 콘트롤러부의 소프트웨어 등으로부터 직접 실행하는 것이 가능해진다. 또, 시스템 동작상 발생하는 다양한 에러 처리나 애플리케이션 요구 등에도 유연하게 대응할 수 있게 되고 시스템 성능도 향상하여 더욱 고성능인 시스템을 개발할 수 있다. 또한, 소프트웨어 개발의 자유도도 향상한다.
또, 본 발명의 제 11 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 10 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구 수신부는 상기 시스템 콘트롤러부와 접속되어 있고, 상기 복수의 설정 레지스터 또는 상기 포인터 레지스터는 상기 데이터 전송 요구에 관계없이 상기 시스템 콘트롤러부에 의해서 자유롭게 판독/기입되는 것이므로, 시스템 콘트롤러부의 소프트웨어 등으로부터,직접 설정을 리라이트할 수 있기 때문에, 고속이고, 또한 자유롭게 설정을 변경할 수 있다. 그리고, 이미 예약해 버린 DMA 요구를 자유롭게 캔슬하거나 우선 레벨을 교체하거나 또 순서를 교체하거나 하는 것이 가능해진다. 이에 의해, 데이터 전송 요구 발행원의 프로그래밍 능력(프로그램 설계 자유도)이 향상되어 복수 개발자에 의한 독립된 프로그램 설계를 용이하게 한다. 이것은 데이터 전송 요구 발행원의 개발 기간의 단축을 실현하여 개발 체제의 자유도를 향상시킨다.
또, 시스템 동작상 발생하는 다양한 에러 처리나 애플리케이션 요구 등에도 유연하게 대응할 수 있게 된다. 이에 의해, 시스템 성능도 향상하여 더욱 고성능인 시스템을 개발할 수 있다.
또, 본 발명의 제 12 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 5 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 복수의 데이터 전송 요구는 실행 타이밍 정보를 더 포함하고, 상기 데이터 전송 요구 수신부는 상기 실행 우선도에 관계없이 지정된 상기 실행 타이밍 이외에서는 상기 실행 타이밍 정보를 포함하는 데이터 전송을 실행하지 않고, 상기 실행 타이밍으로 되면 그 시각에 있어서의 상기 실행 우선도에 따라서 데이터 전송을 실행하도록 했으므로, 용이하게 시간 지연된 데이터 전송을 실행할 수 있다. 이에 의해, 예를 들면, 데이터 전송 요구 발행원의 프로그램 개발에 있어서 데이터 전송의 발행 제어를 실행하는 모듈의 작성과 데이터 전송을 의식하지 않는 처리 모듈의 작성으로 분할한 설계가 용이하게 된다. 이에 의해, 데이터 전송 요구 발행원의 개발 용이성이 증대하고, 개발 효율의 향상, 개발 기간의 단축, 프로그램 스텝 수의 삭감을 가능하게 한다.
또, 본 발명의 제 13 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 실행 타이밍 정보는 상기 데이터 전송 요구를 예약하고 나서 이 데이터 전송을 실행할 때까지의 사이클 수를 나타내고 있는 것이고, 상기 실행 우선도 정보마다의 예약 레지스터는, 실행 시간 설정을 간단하게 할 수 있게 된다. 이에 의해, 용이하게 시간 지연된 DMA 전송을 실행하는 것이, 그 소망하는 타이밍으로, 또는 소망하는 시각으로 되고 나서 데이터 전송을 실행할 수 있다. 이에 의해, 데이터 전송 요구 발행원의 개발 용이성이 증대하고, 개발 효율의 향상, 개발 기간의 단축, 프로그램 스텝 수의 삭감을 가능하게 한다.
또, 본 발명의 제 14 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 실행 타이밍 정보는 상기 데이터 전송 요구 수신부로 송신될 결정된 타이밍 신호를 사용할지 여부를 지정하는 것이고, 상기 실행 우선도 정보마다의 예약 레지스터는 상기 타이밍 신호를 사용할지 여부의 지정을 유지하는 타이밍 지정 레지스터를 더 구비하도록 했으므로, 실행 방법의 선택 범위가 넓어져서, 데이터 전송 요구를 발행하는 타이밍을 고려하지 않고 데이터 전송 요구의 예약을 할 수 있다. 이에 의해, 데이터 전송 요구 발행원의 프로그램이나, 발행 타이밍 제어를 용이한 것으로 할 수 있고, 또한 개발의 자유도가 증대하여 개발 기간을 단축할 수 있다.
또, 본 발명의 제 15 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 실행 타이밍 정보는 상기 데이터전송 요구 수신부에 송신되는 복수의 타이밍 신호중에서, 사용할 타이밍 신호의 종류를 지정하는 것이고, 상기 실행 우선도 정보마다의 예약 레지스터는, 상기 지정된 타이밍 신호의 종류를 유지하는 타이밍 종류 레지스터를 더 구비하도록 했으므로, 데이터 전송의 실행 타이밍을 지정하는 자유도가 증대하고, 데이터 전송 요구 발행원의 발행 타이밍 지정을 위한 제어가 불필요하게 되기 때문에, 개발에 가해지는 부담을 더욱 삭감할 수 있다.
또, 본 발명의 제 16 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 요구는 상기 데이터 전송 요구의 반복 실행 회수를 나타내는 반복 정보를 더 포함하고, 상기 데이터 전송 요구 수신부는 상기 반복 정보를 유지하는 반복 회수 지정 레지스터와, 상기 반복 회수를 카운트하는 반복 회수 카운터를 더 구비하며, 상기 데이터 전송 요구 수신부는 상기 반복 정보를 수신한 경우에 그 데이터 전송 요구 예약을 유지하여 상기 실행 타이밍으로 되면, 그 시각에 있어서의 실행 우선도에 따라서 상기 반복 실행 회수 및 상기 데이터 전송 요구를 반복해서 실행하도록 했으므로, 동일 종류의 데이터 전송 요구를 복수회 요구할 필요가 없어져 데이터 전송 요구 발행원으로부터의 요구 발행을 간소화할 수 있다.
또, 본 발명의 제 17 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 1 특징 에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단은 상기 자기억 수단마다 어드레스로 구획된 영역을 갖고, 상기 영역에는 상기 자기억 수단마다 대응한 데이터 전송에 사용되는 파라미터가 상기 시스템 콘트롤러부에 의해서 미리저장되어 있도록 했으므로, DMA 파라미터 메모리는 1개이더라도 복수의 자원에 관한 정보를 연속해서 설정하고 취출할 수 있게 된다. 이에 의해, 파라미터 메모리로의 액세스 명령이 1회의 연속 명령이라도 좋아 데이터 전송 요구 발행원의 프로그램 코드를 간소화할 수 있고, 프로그램 스텝 수의 삭감과 실행 사이클수의 삭감으로 이어진다. 이것은 시스템의 성능을 향상시키게 된다.
또, 실행 제어 회로가 파라미터 메모리로부터 데이터를 판독하는 경우에도 연속으로 액세스할 수 있기 때문에, 데이터 전송 준비를 고속으로 실행하고, 또한 고성능 DMA 콘트롤러의 제어 회로를 간략화할 수 있어 회로 규모의 삭감과 개발 기간의 단축을 실현할 수 있다.
또, 본 발명의 제 18 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단은 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역을 갖고, 상기 영역에는 액세스 패턴마다 대응한 파라미터가 상기 시스템 콘트롤러부에 의해서 미리 저장되어 있도록 했으므로, 1개의 DMA 파라미터 메모리라도 메모리 액세스를 연속으로, 또한 간단히 실행할 수 있고, 데이터 메모리로의 액세스에, 복수의 액세스 패턴을 갖는 경우에도, 설정/판독을 고속이고, 또한 용이하게 실현할 수 있다. 이에 의해, DMA 파라미터 메모리가 1개이더라도 데이터 전송을 복수의 액세스 방법으로 실현할 수 있다. 이것은 파라미터 메모리로의 액세스명령이 1회의 연속 액세스명령이라도 좋아 데이터 전송 요구 발행원의 프로그램 코드를 간략화할 수 있고, 프로그램 스텝 수의 삭감과 실행 사이클수의 삭감을 가져온다. 그리고, 이 결과, 시스템의 성능을 향상시키게 된다.
또, 실행 제어 회로가 파라미터 메모리로부터 데이터를 판독하는 경우에도 연속으로 액세스할 수 있기 때문에, 고성능 DMA 콘트롤러의 제어 회로를 간략화할 수 있어 회로 규모의 삭감과 개발 기간의 단축을 실현할 수 있다.
또, 본 발명의 제 19 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 1 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단은 상기 자기억 수단마다 어드레스로 구획된 영역과 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역을 갖고, 상기 시스템 콘트롤러부에 의해 상기 자기억 수단마다 어드레스로 구획된 영역에는 상기 자기억 수단마다 대응한 데이터 전송에 사용되는 파라미터가 미리 저장되고, 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역에는 액세스 패턴마다 대응한 파라미터가 미리 저장되도록 했으므로, 각 자원이 액세스 패턴 파라미터를 각각 갖지 않더라도, 복수의 액세스 패턴을 이용하여 메인 메모리로 액세스하는 것이 가능해진다. 이것은 메인 메모리에 대해서 다양한 액세스를 용이하게 실현할 수 있으므로 시스템의 성능 향상으로 이어진다.
또한, 필요한 정보를 어드레스 단위로 통합하였기 때문에, 파라미터 메모리에 대해 고속으로 액세스할 수 있는 것 외에, 액세스 제어도 용이하게 된다.
또, 각 자원마다 파라미터를 저장하는 어드레스 영역을 통합하고, 각 액세스 패턴마다 파라미터를 저장하는 어드레스 영역을 통합하는 것에 의해, 1자원에 대해서 많은 액세스 패턴을 실현하면서 최소한의 파라미터 메모리 영역으로 억제할 수 있다. 이것은 파라미터 메모리 용량의 삭감으로 이어지고, 고성능 DMA 콘트롤러의회로 규모의 삭감, 소비 전력의 삭감으로 이어진다.
또, 본 발명의 제 20 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 17 특징 내지 제 19 특징중의 어느 하나에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 파라미터 유지 수단에 저장되는 파라미터에는 상기 자기억 수단마다의 기입/판독 정보, 액세스 단위 정보, 액세스 패턴 정보가 포함되고, 또 액세스 패턴마다의 개시 어드레스, 전송 개수, 직사각형 영역 액세스의 정보, 링 버퍼를 형성하는 영역 개시 및 종료 어드레스 정보를 포함하도록 했으므로, 데이터 전송 요구시에 파라미터를 지정할 필요가 없어 데이터 전송 명령을 간략화할 수 있고, 또한 다수의 조합 액세스 패턴을 실현할 수 있다. 이것은 프로세서의 프로그램의 개발 자유도를 향상시킬 뿐만 아니라, 프로그램이 간단하게 되고 회로 제어도 간단하게 되므로, 개발 기간의 단축에 크게 기여하게 된다.
또, 본 발명의 제 21 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 1 특징 또는 제 2 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는 상기 인터페이스부, 상기 데이터 입출력부, 상기 파라미터 유지 수단 및 상기 주기억 수단에 대한 클럭의 공급과 정지를 제어하는 클럭 제어부를 더 구비하고, 상기 클럭 제어부는 상기 시스템 콘트롤러부가 상기 데이터 전송 제어부를 기동시키고 있지 않은 경우에는 클럭의 공급을 정지하고, 또 기동시키고 있으며 또한 데이터 전송 요구가 상기 데이터 전송 요구 수신부에 예약되어 있는 경우에는 클럭을 공급하고, 또한 상기 데이터 전송 요구 수신부에 실행 타이밍 정보가 있는 경우에는, 실행 시각으로 될 때까지는 클럭의 공급을 정지하고, 실행 시각으로 되면 클럭공급을 개시하며, 또한 상기 데이터 전송 요구 수신부에 실행 타이밍 정보가 있는 경우에는 실행 시각으로 될 때까지는 클럭의 공급을 정지하고, 실행 시각으로 되면 클럭 공급을 개시하고, 또 상기 데이터 전송 요구 수신부에 예약이 없어져서, 최후의 데이터 전송이 종료한 경우에는 클럭의 공급을 정지하도록 했으므로, 데이터 전송에 관계된 제어 블럭과 메인 메모리의 클럭을 필요 최저한의 기간만 자동적으로 공급/정지하는 것에 의해서 고성능 DMA 콘트롤러의 전력을 효율좋게 제어할 수 있다. 이에 의해, 더욱 저소비 전력을 실현하는 시스템이 얻어진다.
또, 데이터 전송 명령을 발행할 때마다 데이터 전송 요구 발행원의 프로그램이 클럭 제어를 실행할 필요가 없기 때문에 프로그램이 복잡하게 되지 않는다.
또, 본 발명의 제 22 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 12 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는, 상기 인터페이스부, 상기 데이터 입출력부, 상기 파라미터 유지 수단 및 상기 주기억 수단에 대한 클럭의 공급과 정지를 제어하는 클럭 제어부를 더 구비하고, 상기 클럭 제어부는 상기 시스템 콘트롤러부가 상기 데이터 전송 제어부를 기동시키고 있지 않는 경우에는 클럭의 공급을 정지하며, 또한, 기동시키고 있고, 또 데이터 전송 요구가 상기 데이터 전송 요구 수신부에 예약되어 있는 경우에는 클럭을 공급하고, 또한, 기동되어 있고, 또 예약되어 있어도, 상기 데이터 전송 요구 수신부가 수신한 상기 실행 타이밍 정보에 의해, 상기 실행 타이밍으로 될 때까지는 클럭의 공급을 정지하고, 상기 실행 타이밍으로 되면, 클럭 공급을 개시하는 것이며, 또한, 상기 데이터 전송 제어부에 예약이 없어져서, 최후의 데이터 전송이 종료한 경우에는, 클럭의 공급을 정지하도록 한 것이므로, 필요 최저한의 개발만, 자동적으로 공급/정지하는 것에 의해, 고성능 DMA 콘트롤러의 전력을 효율좋게 제어할 수 있다. 이에 의해, 보다 저소비 전력을 실현하는 시스템이 얻어진다.
또한, 데이터 전송 명령을 실행할 때마다, 데이터 전송 요구 발행원의 프로그램이 클럭 제어를 실행할 필요가 있기 때문에, 프로그램이 복잡하게 되지 않고, 또한 프로그램 스텝 수를 삭감할 수 있으며, 실행 사이클 수의 삭감에 수반되는 실행 성능이 향상한다.
또, 본 발명의 제 23 특징에 따른 고성능 DMA 콘트롤러는 각종 데이터를 축적하는 주기억 수단과 이 주기억 수단의 전송 상대인 복수의 자기억 수단의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서, 상기 주기억 수단은 복수의 영역으로 분할되어, 이 영역마다 클럭이 공급되고 있는 복수의 개별 주기억 수단으로 이루어지고, 상기 데이터 전송 제어부는 상기 주기억 수단과 상기 데이터 전송 제어부에 대해서 클럭의 공급을 정지 제어하는 클럭 제어부와 액세스할 어드레스 영역을 판정하는 어드레스 판정부를 구비하고, 상기 클럭 제어부는 상기 복수의 개별 주기억 수단중 상기 어드레스 판정부에 의해 선택된 사용 영역에 대해서만 클럭 및 제어 신호를 공급하고 비선택 영역에 대해서는 클럭 및 제어 신호를 공급하지 않도록 했으므로, 메인 메모리를 필요한 시간, 필요한 영역만 동작시킬 수 있다. 이에 의해, 고성능 DMA 콘트롤러의 회로와 메인 메모리의 소비 전력을 효율좋게 제어할 수 있어 더욱 저소비 전력을 실현하는 시스템이 얻어진다.
또, 본 발명의 제 24 특징에 따른 고성능 DMA 콘트롤러에 의하면, 각종 데이터를 축적하는 주기억 수단과 이 주기억 수단의 전송 상대인 복수의 자기억 수단의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서, 상기 주기억 수단은 복수의 영역으로 분할되어, 이 영역마다 클럭이 공급되고 있는 복수의 개별 주기억 수단으로 이루어지고, 상기 데이터 전송 제어부는 상기 주기억 수단과 상기 데이터 전송 제어부에 대해서 클럭의 공급을 정지 제어하는 클럭 제어부와 상기 개별 주기억 수단의 사용 영역을 설정하는 영역 설정 레지스터를 구비하고, 상기 클럭 제어부는 상기 복수의 개별 주기억 수단중 상기 영역 설정 레지스터에 의해 선택 설정된 사용 영역에 대해서만 클럭 및 제어 신호를 공급하고 비선택 영역으로는 클럭 및 제어 신호를 공급하지 않도록 했으므로, 메인 메모리에 어드레스 제어가 곤란한 DRAM 등을 이용해도, 해당 메인 메모리에 대해 용이한 제어로, 쓸데없는 메모리를 동작시키지 않도록 하는 것이 가능하고, 그 결과 저소비 전력을 실현하는 시스템이 얻어진다.
또, 본 발명의 제 25 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 데이터 전송 제어부는 상기 개별 주기억 수단에 대한 전원 공급을 정지 제어하는 전원 공급 제어부를 구비하고, 상기 선택 설정된 사용 영역에 대해서만 전원을 공급하고, 상기 비선택 영역에 대해서는 전원을 공급하지 않도록 했으므로, 사용하고 있지 않은 메인 메모리의 누설전류를 억제할 수 있어 더욱더 저소비 전력화를 실현할 수 있다.
또, 본 발명의 제 26 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 개별 주기억 수단은 SRAM으로 구성되어 있으므로, 어드레스를 이용하여 정지 제어를 실행하고 특별한 설정수단을 필요하게 되지 않아 고성능 DMA 콘트롤러의 회로를 간소화할 수 있다.
또, 본 발명의 제 27 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 개별 주기억 수단은 DRAM으로 구성되어 있고, 상기 선택 설정된 DRAM에 대해서만 클럭 및 제어 신호를 공급하여 리프레쉬 동작을 실행하고, 상기 비선택의 DRAM에 대해서는 클럭 및 제어 신호를 공급하지 않고, 또한 리프레쉬 동작을 실행하지 않도록 하였기 때문에, DRAM과 같은 대용량의 메모리를 필요로 하는 시스템에 있어서도, 메인 메모리를 저소비 전력으로 제어할 수 있고, 용이하게 클럭 정지나 제어 신호의 공급 제어를 실행할 수 있다.
또, 본 발명의 제 28 특징에 따른 고성능 DMA 콘트롤러에 의하면, 제 23 특징 또는 제 24 특징에 기재된 고성능 DMA 콘트롤러에 있어서, 상기 개별 주기억 수단은 DRAM으로 구성되어 있고, 상기 선택 설정된 DRAM에 대해서만 클럭 및 제어 신호를 공급하고, 또한 자동 리프레쉬 동작을 실행하며, 상기 비선택 DRAM에 대해서는 클럭을 공급하지 않고, 또한 자동 리프레쉬 동작은 실행하지 않으며, 셀프 리프레쉬 동작을 실행하도록 했으므로, 사용하지 않는 영역에 대해서도, 메모리의 내용은 유지하면서, 전력을 삭감하는 것을 간단하게 실현할 수 있다.

Claims (28)

  1. 각종 데이터를 축적하는 주기억 수단과, 이 주기억 수단의 전송 상대인 복수의 자(子)기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서,
    상기 데이터 전송 제어부는,
    상기 주기억 수단으로의 제어 신호를 발생하는 인터페이스부와,
    데이터의 입출력을 제어하는 데이터 입출력부와,
    데이터 전송을 실행하는데 필요한 각종 파라미터를 저장하는 파라미터 유지 수단과,
    데이터 전송의 요구를 접수하는 데이터 전송 요구 수신부와,
    데이터 전송 제어부의 기동 및 정지 명령을 수신하는 기동 명령 수신부를 구비하며,
    상기 데이터 전송 요구 수신부는 데이터 전송 요구 발행원으로부터 자유롭게 설정되는 실행 우선도 정보 및 상기 자기억 수단의 종별 정보로 이루어지는 복수의 데이터 전송 요구의 예약을 접수하여, 이 실행 우선도 정보마다 상기 자기억 수단의 종별 정보를 유지해 두는 것이며,
    상기 데이터 전송 제어부는 장치 전체를 제어하는 시스템 콘트롤러부로부터 기동 명령이 발행될 때까지는 상기 데이터 전송 요구의 예약만을 접수하고, 상기 시스템 콘트롤러부로부터 기동 명령이 발행되면, 예약된 데이터 전송 요구를 상기실행 우선도가 높은 것중에서, 데이터 전송 요구된 시간이 빠른 것부터 순서대로 상기 자기억 수단의 종별 정보를 해독하고, 그 해독 결과에 따라서 상기 파라미터 유지 수단으로부터 데이터 전송에 필요한 파라미터를 점차 취출하여 데이터 전송을 실행하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  2. 제 1 항에 있어서,
    상기 데이터 전송 요구 발행원이 복수인 경우,
    상기 데이터 전송 제어부는, 상기 복수의 데이터 전송 요구 발행원으로부터 자유롭게 설정되는 실행 우선도 정보 및 상기 자기억 수단의 종별 정보를 포함하는 데이터 전송 요구의 예약을 상기 데이터 전송 요구 발행원마다 접수하는 예비 예약 수단을 구비하며,
    상기 예비 예약 수단은 미리 결정된 상기 전송 요구 발행원의 우선도에 따라서 상기 데이터 전송 요구 발행원마다 접수한 데이터 전송 요구를 상기 데이터 전송 요구 수신부로 전송하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  3. 제 1 항 또는 제 2 항에 있어서,
    상기 복수의 데이터 전송 요구 발행원 중의 1개가 시스템 전체를 제어하는 시스템 콘트롤러부인 것을 특징으로 하는 고성능 DMA 콘트롤러.
  4. 제 2 항에 있어서,
    상기 예비 예약 수단은,
    상기 데이터 전송 요구를 상기 전송 요구 발행원마다 일시 유지하는 복수의 예비 예약 레지스터와,
    상기 예비 예약 레지스터에 일시 유지된 상기 데이터 전송 요구의 출력을 선택하는 예비 선택기를 구비하며,
    상기 예비 선택기는 미리 결정된 상기 데이터 전송 요구 발행원의 우선도에 따라서 상기 데이터 전송 요구를 선택하여 상기 데이터 전송 요구 수신부로 전송하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  5. 제 1 항, 제 2 항 또는 제 4 항중 어느 한 항에 있어서,
    상기 데이터 전송 요구 수신부는,
    상기 데이터 전송 요구의 실행 우선도 정보를 해독하는 우선 레벨 해독부와,
    상기 자기억 수단의 종별 정보를 상기 실행 우선도 정보마다 저장하는 실행 우선도 정보마다의 예약 레지스터와,
    상기 자기억 수단의 종별 정보의 출력을 선택하는 선택기를 구비하고,
    상기 우선 레벨 해독부에 의해 복수의 상기 데이터 전송 요구를 상기 각 실행 우선도 정보마다의 예약 레지스터에 저장하고, 이 각 실행 우선도 정보마다의예약 레지스터에 상기 데이터 전송 요구의 예약이 있는지 여부를 나타내는 각 예약 플래그의 상태에 따라 다음에 실행할 상기 자기억 수단의 종별 정보를 상기 선택기에 의해 선택하여 상기 인터페이스부로 전송하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  6. 제 5 항에 있어서,
    상기 데이터 전송 제어부는, 데이터 전송 처리 개시 전인 전(前) 데이터 전송 처리가 종료하기 일정 시간 전에, 사전에 상기 예약 레지스터에 예약되어 있는 데이터 전송 요구 중에서 상기 실행 우선도 정보 및 전송 요구된 시간에 따라서 다음에 실행할 데이터 전송 종별 정보를 판단하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  7. 제 6 항에 있어서,
    상기 데이터 전송 요구는 상기 예약 레지스터에 예약된 데이터 전송 요구를 취소하는 캔슬(cancel) 정보를 포함하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  8. 제 7 항에 있어서,
    상기 캔슬 정보는 실행중인 데이터 전송에 대해서도 유효한 것을 특징으로 하는 고성능 DMA 콘트롤러.

  9. 제 7 항에 있어서,
    상기 우선 레벨 해독부는, 상기 데이터 전송 요구가 상기 예약 레지스터에 예약된 데이터 전송 요구를 취소하는 캔슬 정보를 포함하는지 여부를 또한 해독하는 것이고,
    상기 캔슬 정보가 예약된 데이터 전송 요구에 대해서 이루어진 경우에는 상기 예약 플래그의 상태를 변경하는 것에 의해 상기 데이터 전송 요구를 캔슬하고,
    상기 캔슬 정보가 실행중인 데이터 전송에 대해서 이루어진 경우에는 상기 시스템 콘트롤러부에 의해 상기 데이터 전송을 종료시키는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  10. 제 5 항에 있어서,
    상기 데이터 전송 요구 수신부는, 장치 전체를 제어하는 시스템 콘트롤러부와 접속되고,
    상기 실행 우선도 정보마다의 예약 레지스터에 있어서, 링 형상으로 배치된 복수의 설정 레지스터와,
    상기 복수의 설정 레지스터중에서, 다음에 설정될 설정 레지스터 및 다음에 실행될 설정 레지스터를 선택하는 포인터 레지스터를 구비한 것을 특징으로 하는 고성능 DMA 콘트롤러.

  11. 제 10 항에 있어서,
    상기 데이터 전송 요구 수신부는, 상기 시스템 콘트롤러부와 접속되어 있고,
    상기 복수의 설정 레지스터 또는 상기 포인터 레지스터는, 상기 데이터 전송 요구에 관계없이, 상기 시스템 콘트롤러부에 의해서 자유롭게 판독/기입되는 것인 것을 특징으로 하는 고성능 DMA 콘트롤러.

  12. 제 5 항에 있어서,
    상기 복수의 데이터 전송 요구는, 상기 예약 레지스터에 예약된 데이터 전송 요구를 실행하는 타이밍인 실행 타이밍 정보를 더 포함하고,
    상기 데이터 전송 요구 수신부는, 상기 실행 우선도에 관계없이, 지정된 상기 실행 타이밍 이외에서는 상기 실행 타이밍 정보를 포함하는 데이터 전송을 실행하지 않고, 상기 실행 타이밍으로 되면, 그 시각에 있어서의 상기 실행 우선도에 따라서 데이터 전송을 실행하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  13. 제 12 항에 있어서,
    상기 실행 타이밍 정보는, 상기 데이터 전송 요구를 예약하고 나서 이 데이터 전송을 실행할 때까지의 사이클 수를 나타내고 있는 것이며,
    상기 실행 우선도 정보마다의 예약 레지스터는, 상기 사이클 수를 유지하는 예약 타이머를 더 구비하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  14. 제 12 항에 있어서,
    상기 실행 타이밍 정보는, 상기 데이터 전송 요구 수신부에 송신되는 결정된 타이밍 신호를 사용할지 여부를 지정하는 것이고,
    상기 실행 우선도 정보마다의 예약 레지스터는, 상기 타이밍 신호를 사용할지 여부의 지정을 유지하는 타이밍 지정 레지스터를 더 구비하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  15. 제 12 항에 있어서,
    상기 실행 타이밍 정보는, 상기 데이터 전송 요구 수신부에 송신되는 복수의 타이밍 신호중에서 사용할 타이밍 신호의 종류를 지정하는 것이고,
    상기 실행 우선도 정보마다의 예약 레지스터는, 상기 지정된 타이밍 신호의종류를 유지하는 타이밍 종류 레지스터를 더 구비하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  16. 제 12 항에 있어서,
    상기 데이터 전송 요구는, 상기 데이터 전송 요구의 반복 실행 회수를 나타내는 반복 정보를 더 포함하며,
    상기 데이터 전송 요구 수신부는, 상기 반복 정보를 유지하는 반복 회수 지정 레지스터와, 상기 반복 회수를 카운트하는 반복 회수 카운터를 더 구비하고,
    상기 데이터 전송 요구 수신부는, 상기 반복 정보를 수신한 경우에 그 데이터 전송 요구 예약을 유지하고, 상기 실행 타이밍으로 되면 그 시각에 있어서의 실행 우선도에 따라서 상기 반복 실행 회수 및 상기 데이터 전송 요구를 반복해서 실행하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  17. 제 1 항에 있어서,
    상기 파라미터 유지 수단은 상기 자기억 수단마다 어드레스로 구획된 영역을 갖고,
    상기 영역에는 상기 자기억 수단마다 대응한 데이터 전송에 사용되는 파라미터가 상기 시스템 콘트롤러부에 의해서 미리 저장되어 있는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  18. 제 1 항에 있어서,
    상기 파라미터 유지 수단은 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역을 갖고,
    상기 영역에는 액세스 패턴마다 대응한 파라미터가 상기 시스템 콘트롤러부에 의해서 미리 저장되어 있는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  19. 제 1 항에 있어서,
    상기 파라미터 유지 수단은 상기 자기억 수단마다 어드레스로 구획된 영역과 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역을 갖고,
    상기 시스템 콘트롤러부에 의해 상기 자기억 수단마다 어드레스로 구획된 영역에는 상기 자기억 수단마다 대응한 데이터 전송에 사용되는 파라미터가 미리 저장되고, 상기 주기억 수단으로의 액세스 패턴마다 어드레스로 구획된 영역에는 액세스 패턴마다 대응한 파라미터가 미리 저장되는 것을 특징으로 하는 고성능 DMA 콘트롤러.


  20. 제 17 항 내지 제 19 항중 어느 한 항에 있어서,
    상기 파라미터 유지 수단에 저장되는 파라미터에는 상기 자기억 수단마다의 기입/판독 정보, 액세스 단위 정보, 액세스 패턴 정보가 포함되고, 또한 액세스 패턴마다의 개시 어드레스, 전송 개수, 직사각형 영역 액세스의 정보, 링 버퍼를 형성하는 영역 개시 및 종료 어드레스 정보를 포함하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  21. 제 1 항 또는 제 2 항에 있어서,
    상기 데이터 전송 제어부는,
    상기 인터페이스부, 상기 데이터 입출력부, 상기 파라미터 유지 수단 및 상기 주기억 수단에 대한 클럭의 공급과 정지를 제어하는 클럭 제어부를 더 구비하며,
    상기 클럭 제어부는, 상기 시스템 콘트롤러부가 상기 데이터 전송 제어부를 기동시키고 있지 않은 경우에는 클럭의 공급을 정지하고, 또 기동시키고 있으며 또한 데이터 전송 요구가 상기 데이터 전송 요구 수신부에 예약되어 있는 경우에는 클럭을 공급하며,
    또한 상기 데이터 전송 요구 수신부에 예약이 없어져서, 최후의 데이터 전송이 종료한 경우에는 클럭의 공급을 정지하는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  22. 제 12 항에 있어서,
    상기 데이터 전송 제어부는,
    상기 인터페이스부, 상기 데이터 입출력부, 상기 파라미터 유지 수단 및 상기 주기억 수단에 대한 클럭의 공급과 정지를 제어하는 클럭 제어부를 더 구비하고,
    상기 클럭 제어부는, 상기 시스템 콘트롤러부가 상기 데이터 전송 제어부를 기동시키고 있지 않는 경우에는 클럭의 공급을 정지하며,
    또한, 기동시키고 있고, 또 데이터 전송 요구가 상기 데이터 전송 요구 수신부에 예약되어 있는 경우에는 클럭을 공급하고,
    또한, 기동되어 있고, 또 예약되어 있어도, 상기 데이터 전송 요구 수신부가 수신한 상기 실행 타이밍 정보에 의해, 상기 실행 타이밍으로 될 때까지는 클럭의 공급을 정지하고, 상기 실행 타이밍으로 되면, 클럭 공급을 개시하는 것이며,
    또한, 상기 데이터 전송 제어부에 예약이 없어져서, 최후의 데이터 전송이 종료한 경우에는, 클럭의 공급을 정지하는 것을 특징으로 하는 고성능 DMA 콘트롤러.


  23. 각종 데이터를 축적하는 주기억 수단과, 이 주기억 수단의 전송 상대인 복수의 자기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서,
    상기 주기억 수단은 복수의 영역으로 분할되어, 상기 영역마다 클럭이 공급되고 있는 복수의 개별 주기억 수단으로 이루어지고,
    상기 데이터 전송 제어부는,
    상기 주기억 수단과 상기 데이터 전송 제어부에 대해서 클럭의 공급을 정지 제어하는 클럭 제어부와,
    액세스할 어드레스 영역을 판정하는 어드레스 판정부를 구비하며,
    상기 클럭 제어부는 상기 복수의 개별 주기억 수단중, 상기 어드레스 판정부에 의해서 선택된 사용 영역에 대해서만 클럭 및 제어 신호를 공급하고, 비선택 영역에 대해서는 클럭 및 제어 신호를 공급하지 않는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  24. 각종 데이터를 축적하는 주기억 수단과, 이 주기억 수단의 전송 상대인 복수의 자기억 수단과의 데이터 전송을 제어하는 데이터 전송 제어부인 고성능 DMA 콘트롤러에 있어서,
    상기 주기억 수단은 복수의 영역으로 분할되어, 상기 영역마다 클럭이 공급되고 있는 복수의 개별 주기억 수단으로 이루어지고,
    상기 데이터 전송 제어부는,
    상기 주기억 수단과 상기 데이터 전송 제어부에 대해서 클럭의 공급을 정지 제어하는 클럭 제어부와,
    상기 개별 주기억 수단의 사용 영역을 설정하는 영역 설정 레지스터를 구비하며,
    상기 클럭 제어부는 상기 복수의 개별 주기억 수단중, 상기 영역 설정 레지스터에 의해 선택 설정된 사용 영역에 대해서만 클럭 및 제어 신호를 공급하고, 비선택 영역에는 클럭 및 제어 신호를 공급하지 않는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  25. 제 23 항 또는 제 24 항에 있어서,
    상기 데이터 전송 제어부는, 상기 개별 주기억 수단에 대한 전원 공급을 정지 제어하는 전원 공급 제어부를 구비하며,
    상기 선택 설정된 사용 영역에 대해서만 전원을 공급하고, 상기 비선택 영역에 대해서는 전원을 공급하지 않는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  26. 제 23 항 또는 제 24 항에 있어서,
    상기 개별 주기억 수단은 SRAM으로 구성되어 있는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  27. 제 23 항 또는 제 24 항에 있어서,
    상기 개별 주기억 수단은 DRAM으로 구성되어 있고, 상기 선택 설정된 DRAM에 대해서만 클럭 및 제어 신호를 공급하며, 또한 리프레쉬 동작을 실행하여, 상기 비선택 DRAM에 대해서는 클럭 및 제어 신호를 공급하지 않고, 또한 리프레쉬를 실행하지 않는 것을 특징으로 하는 고성능 DMA 콘트롤러.

  28. 제 23 항 또는 제 24 항에 있어서,
    상기 개별 주기억 수단은 DRAM으로 구성되어 있고, 상기 선택 설정된 DRAM에 대해서만 클럭 및 제어 신호를 공급하며, 또한 자동 리프레쉬 동작을 실행하고, 상기 비선택 DRAM에 대해서는 클럭을 공급하지 않고, 또한 자동 리프레쉬 동작은 실행하지 않으며, 셀프 리프레쉬 동작을 실행하는 것을 특징으로 하는 고성능 DMA 콘트롤러.
KR10-2001-0027241A 2000-05-19 2001-05-18 고성능 dma 콘트롤러 KR100429724B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2000-148680 2000-05-19
JP2000148680 2000-05-19
JP2001-120483 2001-04-19
JP2001120483A JP2002041445A (ja) 2000-05-19 2001-04-19 高性能dmaコントローラ

Publications (2)

Publication Number Publication Date
KR20010105279A true KR20010105279A (ko) 2001-11-28
KR100429724B1 KR100429724B1 (ko) 2004-05-03

Family

ID=26592257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0027241A KR100429724B1 (ko) 2000-05-19 2001-05-18 고성능 dma 콘트롤러

Country Status (5)

Country Link
US (1) US6775716B2 (ko)
EP (2) EP1156422B1 (ko)
JP (1) JP2002041445A (ko)
KR (1) KR100429724B1 (ko)
DE (1) DE60129373T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484304B1 (ko) * 2002-11-14 2005-04-20 한국전자통신연구원 가중 파라메타를 이용한 직접 메모리 접근 제어기의 버스마스터 우선순위 결정방법

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3588597B2 (ja) * 2001-06-15 2004-11-10 シャープ株式会社 通信プロトコルに基づく受信装置
JP3671925B2 (ja) * 2002-03-20 2005-07-13 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
JP2003304481A (ja) * 2002-04-12 2003-10-24 Sony Corp 画像処理装置と画像処理方法
US7200711B2 (en) * 2002-08-15 2007-04-03 Network Appliance, Inc. Apparatus and method for placing memory into self-refresh state
US7139937B1 (en) * 2002-08-15 2006-11-21 Network Appliance, Inc. Method and apparatus to establish safe state in a volatile computer memory under multiple hardware and software malfunction conditions
US7035155B2 (en) * 2002-09-26 2006-04-25 Xware Technology, Inc. Dynamic memory management
US6874054B2 (en) * 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
JP4749657B2 (ja) * 2003-03-20 2011-08-17 パナソニック株式会社 Dma制御装置
JP2005056067A (ja) * 2003-08-01 2005-03-03 Matsushita Electric Ind Co Ltd Dma転送制御装置
US20050149771A1 (en) * 2003-11-07 2005-07-07 Seiko Epson Corporation Processor control circuit, information processing apparatus, and central processing unit
JP4536361B2 (ja) * 2003-11-28 2010-09-01 株式会社日立製作所 データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2005165466A (ja) * 2003-11-28 2005-06-23 Canon Inc 印刷制御装置、印刷制御方法およびコンピュータプログラム
US20050182863A1 (en) * 2004-02-18 2005-08-18 Arm Limited, Direct memory access control
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
US8561076B1 (en) * 2004-06-30 2013-10-15 Emc Corporation Prioritization and queuing of media requests
US7340542B2 (en) * 2004-09-30 2008-03-04 Moyer William C Data processing system with bus access retraction
US7130943B2 (en) * 2004-09-30 2006-10-31 Freescale Semiconductor, Inc. Data processing system with bus access retraction
JP2006172266A (ja) * 2004-12-17 2006-06-29 Matsushita Electric Ind Co Ltd ダイレクトメモリアクセスシステム
JP2007148776A (ja) * 2005-11-28 2007-06-14 Seiko Epson Corp Dma回路内蔵集積回路、コントローラにおける消費電力低減方法
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
JP4908017B2 (ja) * 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
US7861012B2 (en) * 2006-03-01 2010-12-28 Panasonic Corporation Data transmitting device and data transmitting method
JP4555791B2 (ja) 2006-03-16 2010-10-06 富士通株式会社 データ読出方法及びデータ読出装置
JP2008021257A (ja) * 2006-07-14 2008-01-31 Matsushita Electric Ind Co Ltd データ転送装置
US20080240168A1 (en) * 2007-03-31 2008-10-02 Hoffman Jeffrey D Processing wireless and broadband signals using resource sharing
US8266467B2 (en) 2007-07-24 2012-09-11 Nec Corporation Data transfer device and data transfer method
US9032113B2 (en) * 2008-03-27 2015-05-12 Apple Inc. Clock control for DMA busses
US8171187B2 (en) * 2008-07-25 2012-05-01 Freescale Semiconductor, Inc. System and method for arbitrating between memory access requests
US8205031B2 (en) 2008-08-19 2012-06-19 Sonix Technology Co., Ltd. Memory management system and method thereof
JP2010102458A (ja) * 2008-10-22 2010-05-06 Hitachi Ltd コマンドの起動を制御するストレージシステム及び方法
JP5707911B2 (ja) * 2010-01-27 2015-04-30 富士通セミコンダクター株式会社 データ転送制御装置
JP5613242B2 (ja) * 2010-07-29 2014-10-22 パナソニック株式会社 メモリ管理ユニット、画像処理装置および集積回路
JP5782330B2 (ja) 2011-08-09 2015-09-24 ルネサスエレクトロニクス株式会社 半導体装置
WO2013128494A1 (en) 2012-03-02 2013-09-06 Hitachi, Ltd. Storage system and data transfer control method
JP6003420B2 (ja) * 2012-09-06 2016-10-05 富士通株式会社 回路システムおよび半導体装置
US9053093B1 (en) 2013-08-23 2015-06-09 Altera Corporation Modular direct memory access system
JP6233279B2 (ja) * 2014-11-07 2017-11-22 コニカミノルタ株式会社 画像形成装置、画像形成装置の制御プログラム、およびコントローラー
US9684615B1 (en) * 2015-01-08 2017-06-20 Altera Corporation Apparatus and methods for multiple-channel direct memory access
KR102373544B1 (ko) 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
DE102016211386A1 (de) * 2016-06-14 2017-12-14 Robert Bosch Gmbh Verfahren zum Betreiben einer Recheneinheit
WO2020059156A1 (en) * 2018-09-18 2020-03-26 Nec Corporation Data processing system, method, and program
US10761999B1 (en) * 2019-05-30 2020-09-01 Western Digital Technologies, Inc. Storage device with predictor engine of host turnaround time
US10642766B1 (en) * 2019-07-15 2020-05-05 Daniel Kilsdonk Facilitating sequential data transformations via direct memory access
CN114201421B (zh) * 2022-02-17 2022-05-10 苏州浪潮智能科技有限公司 一种数据流处理方法、存储控制节点及可读存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4370712A (en) * 1980-10-31 1983-01-25 Honeywell Information Systems Inc. Memory controller with address independent burst mode capability
JPH0789346B2 (ja) 1985-07-05 1995-09-27 日本電気株式会社 Dmaコントローラ
JPH0821011B2 (ja) * 1987-06-03 1996-03-04 株式会社日立製作所 バス拡張制御方式
US5212795A (en) * 1988-10-11 1993-05-18 California Institute Of Technology Programmable DMA controller
US5471637A (en) * 1988-12-30 1995-11-28 Intel Corporation Method and apparatus for conducting bus transactions between two clock independent bus agents of a computer system using a transaction by transaction deterministic request/response protocol and burst transfer
JP2550496B2 (ja) * 1989-03-30 1996-11-06 三菱電機株式会社 Dmaコントローラ
KR940002905B1 (en) * 1989-12-15 1994-04-07 Ibm Apparatus for conditioning priority arbitration in buffered direct memory addressing
JPH04346150A (ja) 1991-05-24 1992-12-02 Matsushita Electric Ind Co Ltd データ転送処理システム
US5353417A (en) * 1991-05-28 1994-10-04 International Business Machines Corp. Personal computer with bus interface controller coupled directly with local processor and input/output data buses and for anticipating memory control changes on arbitration for bus access
JPH0550597A (ja) 1991-08-28 1993-03-02 Tokyo Electric Co Ltd インクジエツトプリンタヘツド
JPH05165762A (ja) * 1991-12-13 1993-07-02 Toshiba Corp Dmaコントローラ
US5388219A (en) * 1992-03-02 1995-02-07 International Business Machines Corporation Efficient channel and control unit for host computer
JPH0660645A (ja) 1992-08-04 1994-03-04 Ricoh Co Ltd 節電型メモリ装置
JPH06214939A (ja) * 1993-01-14 1994-08-05 Toshiba Corp Dmaコントローラ
JPH0713923A (ja) 1993-06-24 1995-01-17 Ricoh Co Ltd バス制御方法
JPH07169266A (ja) 1993-12-15 1995-07-04 Matsushita Electric Ind Co Ltd 半導体メモリ
JPH07182857A (ja) 1993-12-24 1995-07-21 Toshiba Corp マイコンシステム
TW266275B (en) * 1994-10-13 1995-12-21 Yamaha Corp Digital signal processing device and its direct memory access control process
JPH08153387A (ja) 1994-11-30 1996-06-11 Mitsubishi Electric Corp Fifoメモリ
JPH08255034A (ja) 1995-03-17 1996-10-01 Hitachi Ltd 低消費電力型データ処理装置
JPH09223102A (ja) 1995-12-14 1997-08-26 Ricoh Co Ltd ダイレクトメモリアクセスコントローラ
JP2996183B2 (ja) * 1996-08-16 1999-12-27 日本電気株式会社 Dma機能を備えたデータ処理装置
JPH10154125A (ja) * 1996-11-26 1998-06-09 Toshiba Corp Dmaデータ転送装置および同装置を使用した動画像復号化装置並びにdmaデータ転送制御方法
JP3968167B2 (ja) 1997-04-02 2007-08-29 松下電器産業株式会社 データを内部メモリに取り込み当該データに演算を施して出力する高速動作可能なデータ入出力装置
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
JP3524337B2 (ja) 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
KR100257071B1 (ko) * 1997-12-30 2000-05-15 김영환 디앰에이 컨트롤러 및 이를 이용한 디앰에이 요구신호 우선순위 변경방법
US6574682B1 (en) * 1999-11-23 2003-06-03 Zilog, Inc. Data flow enhancement for processor architectures with cache

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484304B1 (ko) * 2002-11-14 2005-04-20 한국전자통신연구원 가중 파라메타를 이용한 직접 메모리 접근 제어기의 버스마스터 우선순위 결정방법

Also Published As

Publication number Publication date
KR100429724B1 (ko) 2004-05-03
JP2002041445A (ja) 2002-02-08
EP1156422A3 (en) 2005-01-26
EP1156422B1 (en) 2007-07-18
DE60129373D1 (de) 2007-08-30
US20020026543A1 (en) 2002-02-28
EP1156422A2 (en) 2001-11-21
EP1713005A1 (en) 2006-10-18
US6775716B2 (en) 2004-08-10
DE60129373T2 (de) 2008-04-03

Similar Documents

Publication Publication Date Title
KR100429724B1 (ko) 고성능 dma 콘트롤러
CN112506422B (zh) 精细粒度刷新
US4829467A (en) Memory controller including a priority order determination circuit
US7782683B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
US7363406B2 (en) Dynamic access scheduling memory controller
US6151664A (en) Programmable SRAM and DRAM cache interface with preset access priorities
US20060065746A1 (en) Semiconductor memory device
US7436728B2 (en) Fast random access DRAM management method including a method of comparing the address and suspending and storing requests
CN101398793A (zh) 存储器控制设备和半导体处理装置
KR0142795B1 (ko) 디램 리프레쉬 회로
CN115516563A (zh) 用于dram的刷新管理
KR100288177B1 (ko) 메모리 액세스 제어 회로
US11755246B2 (en) Efficient rank switching in multi-rank memory controller
US6195753B1 (en) Information processing apparatus with reduced power consumption
US6684278B1 (en) Microcomputer and memory access control method
JP4077349B2 (ja) Dmaコントローラ
JP4008307B2 (ja) メモリインターフェース回路
JP3303420B2 (ja) メモリアクセス制御装置
JPS6143741B2 (ko)
US20070073961A1 (en) Memory controller
JPH11176155A (ja) Dramリフレッシュ回路
JPH07253920A (ja) Fifo ram コントローラ
CN112711548A (zh) 内存装置、图像处理芯片以及内存控制方法
JPH05174574A (ja) メモリ制御装置
JP2001325217A (ja) トランザクション実行方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110318

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee