KR20010023916A - 직접 메모리 액세스 유니트 - Google Patents

직접 메모리 액세스 유니트 Download PDF

Info

Publication number
KR20010023916A
KR20010023916A KR1020007002607A KR20007002607A KR20010023916A KR 20010023916 A KR20010023916 A KR 20010023916A KR 1020007002607 A KR1020007002607 A KR 1020007002607A KR 20007002607 A KR20007002607 A KR 20007002607A KR 20010023916 A KR20010023916 A KR 20010023916A
Authority
KR
South Korea
Prior art keywords
memory
access unit
unit
memory access
parameter
Prior art date
Application number
KR1020007002607A
Other languages
English (en)
Inventor
칼-헤인즈 맷데이스
피터 롬
Original Assignee
인피니언 테크놀로지스 노쓰 아메리카 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인피니언 테크놀로지스 노쓰 아메리카 코포레이션 filed Critical 인피니언 테크놀로지스 노쓰 아메리카 코포레이션
Publication of KR20010023916A publication Critical patent/KR20010023916A/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring

Landscapes

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

Abstract

본 발명은 다수의 전송 채널을 가진 DMA-유니트에 관한 것이다. 본 발명에 따른 DMA-유니트는 데이터를 전송하기 위한 버스와 접속된 버스 인터페이스 유니트를 가진 데이터 처리 유니트를 포함한다. 데이터 처리 유니트는 프로그램 가능한 파라미터에 따라 상기 버스를 통해 데이터를 전송한다. 본 발명의 DMA-유니트는 각각의 전송 채널에 대한 파라미터를 저장하는 파라미터 메모리를 포함하며, 파라미터 메모리는, 각각의 한정된 전송 채널에 대하여, 벡터 어드레스를 가지는 워드를 상기 전송채널에 대한 특정 파라미터를 가지는 제 2 메모리 영역에 저장하는 제 1 메모리 영역을 제공한다.

Description

직접 메모리 액세스 유니트 {DIRECT MEMORY ACCESS UNIT}
표준 DMA-유니트, 소위 DMA-제어기는 단지 한 메모리 또는 I/O 위치로부터 다른 위치로 데이터 또는 데이터의 일부를 전송할 수 있다.
본 발명은 다수의 전송 채널을 가진 직접 메모리 액세스(DMA) 장치에 관한 것이다.
도 1은 본 발명에 따른 직접 메모리 액세스 유니트의 제 1 실시예에 대한 기본적인 블록도.
도 2는 파라미터 메모리에서 프로그래밍하는 채널의 예를 나타낸 도면.
도 3은 본 발명에 따른 직접 메모리 액세스 유니트의 제 2 실시예에 대한 기본적인 블록도.
도 4는 코드 메모리 및 파라미터 메모리의 구성의 실시예를 나타낸 도면.
도 5는 본 발명의 제 2 실시예의 데이터 처리 유니트의 레지스터 세트에 대한 실시예를 나타낸 도면.
도 6은 DMA 서비스 루틴의 5개의 실시예를 나타낸 도면.
따라서, 본 발명의 목적은 DMA 제어기에 큰 범용성을 제공하는데 있다. 이와같은 목적은 다수의 전송 채널을 가진 직접 메모리 액세스 유니트에 의해 달성된다. 본 발명에 따르면, 직접 메모리 액세스 유니트는 데이터를 전송하는 버스와 접속되는 버스 인터페이스 버스를 가진 데이터 처리 유니트를 포함한다. 데이터 처리 유니트는 프로그램가능한 파라미터에 따라 상기 버스를 통한 데이터 전송을 실행한다. 직접 메모리 액세스 유니트는 각 전송 채널에 대한 파라미터를 저장하는 파라미터 메모리를 포함하며, 파라미터 메모리는 각각의 한정된 전송채널에 대하여 벡터 어드레스를 가진 워드를 저장하는 제 1 메모리 영역과 상기 전송 채널에 대한 특정 파라미터를 가지는 제 2 메모리 영역을 포함한다.
본 발명에 따른 다른 실시예에서, 다수의 전송 채널을 가진 직접 메모리 액세스 유니트는 명령을 저장하는 코드 메모리, 데이터를 전송하는 버스와 접속되는 버스 인터페이스 유니트를 가진 상기 코드 메모리에 접속된 데이터 처리 유니트, 및 각 전송 채널에 대한 파라미터를 저장하는 파라미터 메모리를 포함하며, 상기 데이터 처리 유니트는 코드 메모리에 저장되고 프로그램 가능한 파라미터에 영향을 받는 프로그램을 실행함으로써 버스를 통한 데이터 전송을 실행하며, 상기 코드 메모리는 제 1 메모리 영역 및 제 2 메모리 영역을 제공한다. 제 1 메모리 영역은 각각의 한정된 전송채널에 대하여 입력 포인트 어드레스를 제 2 메모리 영역에 저장한다. 제 2 메모리 영역은 적어도 하나의 프로그램 시퀀스를 포함한다.
본 발명에 따른 이러한 형태의 직접 메모리 액세스는 매우 큰 융통성 및 기능성을 가진다. 또한, 본 발명에 따른 직접 메모리 액세스는 단순한 데이터 전송 뿐만아니라 전송된 데이터 값을 감시하고 이 감시에 따라 연산을 수행한다.
본 발명에 따르면, 예를들어 단일 마이크로제어기 도는 마이크로컴퓨터에 집적할 수 있는 직접 메모리 액세스 제어기의 제 1 실시예는 랜덤 액세스 메모리(RAM) 어드레싱 유니트(9)를 가진 데이터 처리 유니트(1), DMA요구 제어 유니트(4), 페치 유니트(5), 제어 및 실행 유니트(6), 어드레스 유니트(7), 데이터 유니트(8), 및 버스 인터페이스 유니트(10)를 포함한다. 버스 인터페이스 유니트(10)는 DMA-제어기를 시스템 버스(3)에 접속시키며, 시스템 버스(3)는 완전한 데이터 처리 시스템을 예를들어 마이크로제어기 또는 마이크로컴퓨터, 시스템 메모리 및 다른 필요한 주변장치에 접속시킨다. RAM 어드레싱 유니트(9)는 마이크로처리기에 의해 파라미터 RAM(2)을 프로그래밍하기 위하여 시스템(3)과 접속되는 버스(11)를 통해 데이터 처리 유니트(1)를 파라미터 RAM에 접속시킨다.
DMA 채널에 대해 요구된 레지스터(주로, 포인터)의 수는 요구되는 기능에 따른다. 단순히 데이터 전송을 수행하는 채널은 적어도 소스 및 목적 포인터, 전송 카운터, 및 포인터의 최적 수정을 지정하는 임의의 제어 비트를 필요로한다. 고기능성 채널은 3개의 소스 포인터, 하나 또는 두 개의 목적 포인터, 전송중에 데이터를 수정하기 위하여 사용되는 상수를 저장하는 임의의 레지스터, 전송 카운터 및 적정 연산을 지정하는 임의의 제어 비트량을 필요로한다. 이들을 사용하는 종래의 방식은 단순 기능을 가진 임의의 량의 채널과 중간 또는 고기능을 가진 다른 량의 채널을 실행해야 한다. 그러나, 이와같은 방법은 단지 이들 채널들을 고정된수로 분할할수 있다. 사용자가 실행되는 것보다 더 단순한 채널을 필요로 하는 경우에도, 사용자는 단순 작업을 위해 고기능성 채널을 사용하여야 하므로 추가 비용을 지불해야 한다. 사용자가 고기능성 채널을 필요로하는 경우, 저기능성 채널은 사용하지 못한다. 저기능성 채널을 고기능을 위해 사용하지 못한다. 더욱이, 이러한 실행은 사용자에게 지정된 순서 및 우선권을 채널에 할당하는 것을 제약할 수 있다.
이와같은 문제점을 막고 사용자에게 보다 큰 융통성을 제공하기 위하여, 본 발명에 따른 DMA-유니트는 다른 방법을 취한다. 소정의 기능성을 가진 고정된 수의 채널을 제공하는 대신에, 사용자는 사용자가 적용하는데 필요한 순서대로 파라미터-메모리(2)에 채널의 수 및 기능성을 셋업할 수 있다. 지금, 채널의 수 및 기능성은 단지 메모리(2)의 크기에 의해 제한된다. 그러나, 채널을 저기능성, 중간 기능성 또는 고기능성으로 분할하는 것과 사용자 순서 및 우선권은 전체적으로 프로그래밍된다.
DMA 요구 유니트(4)는 다른 소스의 요구에 대한 조정을 실행하며, 주어진 시간에 가능 높은 우선권을 가진 요구에 서비스를 허용한다. 페치 유니트(5)는 각각의 채널의 명령 워드를 통해 지정된 기능에 다라 파라미터 RAM(2)에 채널 파라미터를 액세스한다. 제어/실행 유니트(6)는 어드레스 및 데이터 경로를 제어한다. 포인터의 수정은 어드레스 유니트(7)를 통해 조절되는 반면에 데이터 연산은 데이터 유니트(8)에서 실행된다. 버스 인터페이스 유니트(10)는 시스템 버스에 적절한 접속을 제공한다.
DMA-유니트(1)의 파라미터 RAM(PRAM)(2)은 DMA 채널의 명령, 포인터, 링크 포인터, 전송 카운터 및 최적 데이터 파라미터를 저장하기 위하여 사용된다. 더욱이, 임의의 일시적인 기억위치는 특정 연산을 위해 필요할 수 있다.
도 2는 PRAM의 사용에 대한 실시예를 도시한다. PRAM은 32비트 RAM 어레이(다른 구성도 가능함)으로써 구성된다. PRAM의 크기는 다른 수의 DMA 채널을 필요로하는 다른 응용 영역이 필요성에 따라 도함수가 설정될 수 있도록 스케일할 수 있다. PRAM의 적절한 최소 크기는 64 바이트를 가지며 채널의 적정 복잡성에 따라 2개 내지 4개의 DMA 채널을 사용할 수 있다. 임의의 최대 크기는 DMA 제어기의 능력을 따르며, 예를들어 4Kbyte일 수 있으며, 본 실시예에서는 64 개의 복잡한 채널의 저장할 수 있다.
PRAM의 파라미터가 판독되고 수정되어 PRAM에 다시 기록되기 때문에(예를들어 포인터 증분), PRAM은 바람직한 병렬 판독 및 기록 성능을 제공하기 위하여 이중-포트 메모리일 수 있다. 이는 파이프라인 구조가 실행되도록 하며, 여기서 임의의 파라미터가 판독되고 동시에 다른 파라미터를 다시 기록된다.
하위 어드레스 범위는 PRAM의 제 1 메모리 영역을 형성하며, 벡터 테이블로써 사용된다는 점에서 특별하다. DMA 서비스가 허용된 소스의 우선권 번호는 요구된 DMA 채널을 지정하는 벡터 테이블을 지시하기 위하여 사용된다. 이를 위해서, 우선권 번호는, 예를들어 2만큼 좌측으로 시프트될 수 있으며(32-비트 PRAM에 대하여), 그다음에 PRAM에서 32비트 워드까지 직접 어드레스로써 사용된다. 이 위치는 요구된 채널에 대한 제 1 명령과, 채널의 다른 파라미터가 저장되는 PRAM 어드레스를 지시하는 링크 어드레스를 포함한다.
벡터 테이블의 최대 크기는 최대 64 채널에 대하여 예를들어 64 워드로 제한될 수 있다. 만일 적은 채널이 프로그래밍되면, 이에 따라 벡터 테이블의 크기가 감소된다. 사용되지 않는 벡터 테이블은 채널의 파라미터를 저장하기 위하여 사용될 수 있다. 최적 성능을 얻기 위하여, DMA 서비스를 요구하는 주변 소스의 채널 및 우선권 번호는 벡터 테이블이 항상 PRAM 위치에서 시작하여 계속해서 위쪽으로 상승하도록 프로그래밍되어야 한다.
DMA 채널은 DMA-유니트의 파라미터 RMA(PRAM)(2)에 셋업된다. 채널의 요구된 기능에 따르면, 다른 수의 PRAM 위치는 연산동안 모든 필요한 파라미터를 지정하기 위하여 필요하다. 따라서, 프로그래밍될 수 있는 채널의 수는 PRAM의 양과 채널의 적정 기능에 따른다. 예를들어, 128바이트 PRAM에서는 4개의 PRAM 위치를 필요로하는 8개의 채널 또는 8개의 PRAM 위치를 필요로하는 4개의 채널이 프로그래밍될 수 있다. 임의의 결합이 PRAM의 크기까지 가능하다.
각각의 채널은 도 2에 도시된 바와같이, 채널의 전체 기능성과 채널의 다른 파라미터 위치를 지시하는 링크 어드레스(2f)를 지정하기 위하여 적어도 하나의 명령 워드(2a, 2b, 2c, 2d, 2e,...)를 가진다. 더욱이, 기능성을 따르면, 하나 이상의 소스 및 목적 포인터, 전송 카운터, 데이터값, 임시적인 위치 및 제 2 명령 워드가 요구될 수 있다. 이들 파라미터는 제 1 채널에 대하여 위치(2g)에 저장되며, 링크 포인터(2f)는 이의 어드레스 위치를 지시한다. 메모리 위치(2h)는 채널(1)에 대한 파라미터, 채널(2, 3)에 대한 메모리 위치(2i, 2j)를 각각 포함한다. 각 위치에 저장된 각 파라미터 필드의 크기는 제 1 메모리 영역에 저장된 명령 워드에 따른다. 이 실시예에서, 채널 0은 3워드를 점유하며, 채널 1은 4워드를 점유하며, 채널 2는 5워드를 점유하며, 채널 3은 3워드를 점유한다.
각각의 DMA 채널은 두 개의 명령 워드를 포함할 수 있다. 제 1명령 a은 제 1 메모리 영역에 저장되며 실행될 전체 전송동작을 지정하며, 제 2명령 b는 제 1 메모리 영역에 저장되며 전송된 데이터 정보를 사용하여 가능한 연산을 지정한다.
만일 DMA-유니트가 시스템 버스상에서 가장 빠른 우선권을 가진다면, 에러 또는 오류 프로그래밍으로 인해 DMA에 의한 완전한 버스 로크를 막기 위하여 측정이 실행될 수 있다. 이러한 목적을 위하여, DMA의 버스 인터페이스는 타임-아웃 카운터 유니트를 포함할 수 있다. 그것은 리세트후에 오류값으로 세팅될 수 있으나 사용자는 이 유니트를 프로그래밍하기 위한 옵션을 가질 수 있다. 이러한 유니트는 두가지 방식으로 동작해야 한다. 즉, 한 방식은 유니트가 버스트 모드에서 전송의 수를 카운트하여 사전에 프로그래밍된 수의 전송이 도달되었을 때 DMA가 버스를 해제하도록 한다. 이는 다른 시스템 버스 요구가 존재하는 겨우 버스트의 종료가 실행되도록 조건적으로 만들어질 수 있다. 시스템 버스 제어기로부터 DMA까지의 개별 접속은 다른 버스 요구가 존재하는 DMA를 호출하기 위하여 사용될 수 있다. 그 다음에, DMA는 버스트의 최대 전송번호가 도달된후에 버스를 해제한다. 만일 어느 요구도 존재하지 않는다면, DMA는 버스트 전송을 계속할 수 있다. 타임 아웃 유니트의 제 2동작은 시간을 감시하는 것이다. 이러한 방식에서, 버스 전송은 너무 길어서 포기될 것이다.
각각의 전송후에, 포인터는 명령 워드에 저장된 제어 명령에 따라 자동적으로 갱신된다. 옵션은 다음과 같다.
어느 포인터도 수정하지 않음
소스 포인터를 증가/감소시킴
목적 포인터를 증가/감소시킴
소스 및 목적 포인터 둘다를 증가/감소시킴
증가/감소 단계는 데이터 형태의 크기에 의해 결정된다. 여기서, 개별 제어는 소스 및 목적 데이터의 형태를 지정하기 위하여 요구된다(데이터 형태 변환 참조). 예를들어, 만일 데이터가 바이트 주변장치로부터 페치되어 워드 구성 메모리에 저장된다면, 소스 포인터는 1에 의해 수정되어야 하며, 목적 포인터는 데이터 형태를 따르기 위하여 4에 의해 수정된다.
본 실시예에서, 두 개의 기본적인 전송 모드, 즉 단일-어드레스 전송 및 이중 어드레스 전송모드가 실행될 수 있다.
1. 단일-어드레스 전송
전송 모드동안, 소스 또는 목적 유니트중 하나는 데이터 긍정응답신호에 응답하여 동작할 수 있는 장치(보통, 주변장치)이어야 한다. 이와같은 장치는 추가 어드레스 없이 데이터 긍정응답 신호에 응답하여 판독 및 기록되는 반면에, 다른 장치, 보통 메모리는 그것으로부터 판독되거나 기록되는 위치를 지정하는 어드레스로 액세스된다. 이들 전송은 하나의 버스 사이클에서 조절된다. 이 경우에 전송된 데이터는 DMA 유니트를 통과하지 않으며 한 사이클동안만 버스상에서 나타난다.
어드레스 모드는 블록단위로 전송될 데이터의 큰 부분을 가지는 임의의 고성능 주변장치에 의해 요구된다. 따라서, 주변장치는 데이터를 홀딩하기 위하여 메모리 블록 또는 FIFO중 하나를 포함한다. 이들 메모리는 매우 전문화된 지능형 주변장치를 위해서만 사용된다.
2. 이중-어드레스 전송
이 모드에서, 판독된 장치 및 기록될 장치 둘다는 어드레스를 통해 액세스된다. 따라서, 이러한 경우에, 두 개의 버스 사이클이 요구된다. 하나의 사이클은 데이터를 판독하여 그것을 DMA에 일시적으로 저장하기 위하여 요구되며, 다른 사이클은 그것을 목적 메모리에 저장하기 위하여 요구된다. 전송된 데이터가 DMA 유니트를 통과하기 때문에, DMA-유니트에 대해 지정된 모든 데이터 연산은 데이터에 대해 또는 데이터와 함께 실행될 수 있다. 이하에 기술된 실시예는 항상 이중 어드레스 전송모드를 사용한다.
DMA는 데이터가 메모리 및/또는 다른 버스폭을 가진 주변장치사이에서 전송되도록 한다. 본 발명에 따른 DMA 유니트는 데이터 형태를 자동적으로 변환하고, 예를들어 바이트 주변장치로부터 4개의 연속적인 바이트를 판독하여 한 워드(32비트)로써 그들을 메모리에 저장하는 각각의 저장수단을 가진다. 단일 비트를 바이트 및 워드로 변환하는 것이 가능하다(역도 가능함). 변환은 이하에서 더 상세히 설명될 데이터 유니트의 시프트 및 회전 연산을 사용하여 프로그래밍될 수 있다. 이와같은 옵션은 예를들어 포트 핀을 통해 비트 스트림을 입력 또는 출력시킬 수 있다. 일련의 전송은 이와같은 방식으로 에뮬레이트될 수 있다.
데이터의 수집 및 분산은 본 발명에 따른 DMA 유니트에 의해 지원될 수 있다. 이는 데이터의 비연속적인 블록을 하나의 연속적인 블록으로 이동시키는 옵션을 제공한다(역도 가능함). 이를 위하여, 링크된 리스트는 시스템 메모리에 셋업된다. 링크된 리스트의 각 엘리먼트는 데이터의 한 블록과 연관되며 데이터 바이트의 번호, 데이터 테이블에 대한 포인터 및 다음 리스트 엘리먼트에 대한 포인터를 포함한다. 마지막 리스트 엘리먼트는 바이트의 번호가 제로값이다. 이 조건은 DMA 전송을 종료한다. 이러한 연산에 대한 DMA 채널은 명령, 메모리에 링크된 리스트의 제 1 엘리먼트에 대한 포인터, 소스 또는 목적 포인터(데이터 분산에 대한 소스 포인터 및 데이터 수집에 대한 목적 포인터)로 셋업된다. 채널에서의 제 2 명령은 전송된 데이터로 수행될 연산을 지정하기 위하여 사용될 수 있다.
채널 프로그램이 종료될 때 CPU에 인터럽트 요구를 발생시키는 대신에, 다른 DMA 채널에 대한 요구가 발생될 수 있다. 이러한 요구는 DMA 채널에 대한 모든 서비스 요구와 동일한 우선순위 구조를 따른다. 이러한 옵션을 사용할 때, 채널은 한 채널 프로그램의 종료후에 다른 채널 프로그램이 호출될 수 있도록 함께 링크될 수 있다. 모든 서비스 요구 노드에서 처럼, 표준 인터럽트 서비스 또는 DMA 서비스가 요구될 수 있다. 이는 DMA 채널 그자체의 서비스 요구 노드에 대해 명백하다. 이들 두가지 형태의 서비스 요구사이의 목적지가 서비스 요구 제어 레지스터(도시안됨)의 제어 비트를 통해 만들어진다.
표준 DMA 제어기와 다르게, 본 발명에 따른 DMA-유니트는 전송된 데이터에 대해 또는 전송된 데이터를 사용하여 연산을 수행할 수 있다. 이러한 방식에서, DMA- 유니트는 그와 함께 동작하기전에 데이터 정보의 임의의 부분을 마스크하는 것과 같은 마스크로부터 CPU를 언로드할 수 있다. 그러나, DMA-유니트는 임의의 CPU 중재없이 주변장치에 더 서비스할 수 있다. 비교 레지스터에 새로운 타임아웃 값을 부가하거나 또는 소정의 최대값이 도달될때까지 PWM 신호의 펄스 폭을 증가시키는 연산은 CPU를 인터럽트하는 임의의 요구없이 본 발명의 DMA-유니트를 통해 완전하게 실행될 수 있다.
데이터 처리 유니트(1)는 예를들어 다음과 같은 연산, 즉 가산, 감산, 비교, AND, OR, XOR, 좌측 시프트 또는 우측 시프트 등을 실행할 수 있다.
각각의 서비스 요구 노드 제어 레지스터에 저장된 우선권 번호는 서비스 요구의 우선권 및 요구된 채널 번호 둘다를 결정하기 위하여 사용된다. 그러나, 본 실시예에서 허용된 우선권 번호의 범위는 64 이하의 채널이 DMA에 프로그래밍되고 범위가 단순히 0에서 채널-1의 프로그래밍된 번호사이인 경우 0 내지 63이다. DMA에서 셋업되지 않은 채널을 요구하는 것은 오류 연산을 유발하며 예를들어 인터럽트를 유발할 것이다.
DMA 유니트의 채널은 가장 높은 채널 번호가 가장 높은 우선권을 가지도록(채널0: 가장 낮은 우선권; 채널 63: 가장 높은 우선권) 하드웨어를 통해 우선순위가 결정된다. 이와같이. 임의의 라운드의 끝에서 결정된 우선권 번호는 서비스 채널 번호를 직접 결정한다. 만일 64 이하의 채널이 실행된다면, 채널의 번호 및 우선순위는 항상 0 내지 주어진 최대 번호에서 시작해야 한다.
도 3에 도시된 제 2실시예에 있어서, DMA 유니트는 향상된 능력을 가진다. 파라미터 RAM(2)은 본 실시예에서 64비트로 구성된다. 코드 메모리(12)는 DMA-유니트에 대한 실행 코드를 포함한다. 코드 메모리(12)는 파라미터 RAM(2)외에, 코드 메모리(12)는 판독 전용 메모리 또는 정적 랜덤 액세스 메모리와 같은 휘발성 또는 비휘발성 메모리일 수 있다. 바람직하게, 코드 메모리(12)는 소정의 DMA 루틴을 포함하는 플래시 메모리이다. 코드 메모리(12)는 라인(13)을 통해 데이터 처리유니트(1) 및 시스템 버스에 접속된다. 더욱이, 도 3은 라인(17)을 통해 시스템 버스(3)에 접속된 중앙처리장치(16)와 라인(15)을 통해 시스템 버스에 접속된 시스템 메모리(14)를 도시한다. PRAM(2)은 점선으로 도시된 이중 워드로 구성될 수 있다. 본 실시예에 있어서, PRAM은 64비트로 구성된다.
도 4의 좌측은 코드 메모리(12)가 구성될 수 있는 방법을 도시한다. 코드 메모리(12)는 4개의 영역으로 분할된다. 제 1 영역은 12a에서 시작하여 엔트리 테이블 포인터를 저장하며, 엔트리 테이블 포인터는 활성 채널당 하나 또는 두 개의 엔트리를 포함할 수 있다. 각각의 엔트리 테이블 포인터(12a)는 12b에서 시작하여 다수의 다른 DMA-서비스 루틴을 저장할 수 있는 제 2 코드 메모리 영역을 지시한다. 이들 루틴은 시스템 버스(3)에 접속된 CPU(16)에 의해 프로그래밍될 수 있으며 또는 판독전용 메모리내에 사전에 프로그래밍될 수 있다. 제 3 영역은 12c에서 시작하여, 파라미터 메모리(2)에 저장된 각각의 파라미터를 지시하는 파라미터 테이블 포인터를 포함한다. 파라미터 필드중 두 필드는 도 4에 도시된 예에서는 위치 2m 및 2n에서 시작한다. 12d에서 시작하는 제 4영역은 필요한 경우 추가 코드를 포함할 수 있다.
도 4의 우측은 파라미터 RAM(2)의 구성을 도시한다. 2k에서 시작하는 아래 부분은 하나의 DMA 채널에 필요한 파라미터의 최소량을 포함한다. 따라서, 이러한 제 1 영역은 각 채널에 대해 동일한 부분으로, 예를들어 각 채널에 대해 4개의 파라미터를 포함하는 2워드로 분할된다. 두 개의 제 1 파라미터는 포인터 2k 및 2l에 의해 도 4에 도시된다. 제 2 영역은 포인터 2m에서 시작하며, 제 1실시예와 동일한 방식으로 저장된 다른 파라미터를 포함하는 영역이다. 각 채널에 대한 크기는 각 채널에 대한 엔트리 테이블 포인터 또는 파라미터 테이블 포인터중 하나에 의해 한정된 각 채널의 정의에 따른다.
DMA 유니트는 마이크로처리기 처럼 레지스터 세트를 가질 수 있다. 예를들어, 이러한 레지스터 세트는 도 5에 도시되어 있다. 10개의 레지스터가 사용된다. 레지스터 ACC, B, SRC, DST, DPTR, 및 EXCB는 예를들어 32비트 폭을 가진다. 레지스터 CNT1, CNTO, INTV 및 FLAGS는 각각 8비트 폭을 가진다. 10개의 레지스터중 6개는 다른 채널을 스위칭하기 위하여 제 1 파라미터 영역에 저장될 필요가 있다. 이들 파라미터는 누산기 ACC, 인터럽트 벡터 레지스터 INTV, 플래그 레지스터 FLAG, 카운터 레지스터 CNT1/CNT0중 하나, 소스 레지스터 SRC 및 목적 레지스터 DST이다. 파라미터 레지스터의 각 워드가 64비트 폭을 가지기 때문에, 2워드는 도 4에 도시된 바와같이 6개의 파라미터를 저정하기 위하여 사용된다. EXCB 레지스터코드 공간의 확장을 위해 사용될 수 있다. DPTR 레지스터는 코드 메모리(12)로부터 파라미터 포인터(12c)를 저장하며, B 레지스터는 범용 목적으로 사용될 수 있다.
채널이 시작될 때, 6개의 레지스터는 PRAM(2)의 각각의 위치 2k, 2l로부터 작업 레지스터 세트로 로드된다. 채널 파라미터 포인터(12c)는 PRAM(2)에 저장된 각각의 파라미터를 지시하기 위하여 코드 메모리(12)로부터 레지스터 DPTR로 로드된다. 프로그램 카운터(도 5에 도시안됨)에는 코드 메모리(12)로부터 각각의 엔트리 테이블 포인터(12a)가 로드되며, 코드 메모리(12B)에 저장된 각각의 DMA 서비스 루틴이 실행된다. 본 실시예에서, 채널 0은 엔트리 테이블 포인터(12a), 파라미터 포인터(12c), 2k에서 시작하는 일반적인 파라미터, 2m에서 시작하는 파라미터 필드, 및 코드 기저 포인터(12b)에서 시작하는 코드 영역에 저장된 루틴을 가진다.
만일 이러한 채널 스위칭이 소정의 순서대로 수행된다면, DMA-유니트는 모든 파라미터가 로드되기 전에 연산을 시작할 수 있다. 예를들어, 만일 소스 어드레스, 프로그램 카운터 및 연관된 플래그가 로드되면, DMA-유니트는 목적 어드레스를 가지지 않고 연산을 시작할 수 있다. 목적 어드레스를 로드하는 동안, DMA-유니트는 전송될 데이터를 얻기 위하여 제 1 판독 사이클을 실행할 수 있다.
제 2 실시예는 제 1 실시예와 유사하게 동작한다. 더욱이, 다양한 다른 서비스 루틴은 코드 메모리(12)내에 프로그래밍될 수 있어서 DMA-유니트를 융통성있게 조절할 수 있다. 이러한 경우에, CPU는 필요한 경우 프로그램의 실행동안 DMA-유니트의 프로그램을 변화시킬 수 있다. 만일 코드 메모리(12)가 ROM 또는 플래시 메모리이라면, 코드 메모리는 종래의 특정 DMA-서비스 루틴을 사용하여 시스템의 목적에 따라 사전에 프로그래밍될 수 있다.
도 6에 도시된 이하의 상세한 설명에서, 5개의 예 A-E는 전술한 실시예에 따른 DMA-유니트의 다양한 연산중 일부를 위해 제공된다. 단일 전송이 도시되어 있으나, 이들 연산은 버스트 모드에서 실행될 수 있다. 각각의 예에 대하여, 요구된 채널 파라미터 및 DPI 버스 연산이 제공된다.
도 6A는 제 1 파라미터 메모리 영역에 1워드가 저장되고 제 2 파라미터 메모리 영역에 3워드가 저장되는 4개의 파라미터를 필요로하는 단순한 DMA 전송을 도시한다. 이들 파라미터는 메모리 영역 2g 또는 2j에 저장되어 있는 것으로 도 2에 도시되어 있다. 명령은 이러한 연산을 한정하며, 소스 포인터(14a)는 소스 어드레스를 한정하며, 목적 포인터(14b)는 목적 어드레스를 한정한다. 카운터는 전송될 바이트/워드의 번호를 저장한다. 포인터는 자동적으로 증가되거나 감소된다.
도 6B는 예를들어 주변 타이머를 재로드하기 위한 상수의 이동을 도시한다. 또한, 4개의 파라미터이 앞에서와 같이 요구된다. 이러한 경우의 소스 포인터(2p)는 목적 포인터(14c)에 저장되는 상수를 저장한다. 목적 포인터는 증가되거나 감소되거나 또는 그 내용을 일정하게 유지할 수 있다.
도 6C는 상수를 사용하여 전송을 조작하고 그 결과를 다른 위치에 저장하는 방법(예를들어, 고정된 오프셋을 A/D값으로부터 감산하는 방법)을 도시한다. 이 예에서는 4-5 파라미터가 필요하며, 제 1 파라미터 메모리 영역에는 1워드가 저장되고 제 2 파라미터 메모리 영역에는 4워드가 저장된다. 더욱이, 이들 파라미터는 예를들어 명령 b에 의해 한정된 연산중에, 전송되는 각각의 바이트/워드와 결합되는 상수를 포함한다. 이 연산은 오퍼레이터(18)에 의해 행해지되 임의의 산술 도는 논리 연산일 수 있다. 제 1 실시예에서, 연산은 명령 b에 의해 한정되며, 제 2실시예에서 코드 메모리(12)에 저장된 각각의 프로그램에 의해 한정된다. 더욱이, 이러한 바이트/워드는 각각의 마스크 파라미터에 의해 마스킹될 수 있다. 파라미터는 예를들어 도 2에 도시된 바와같이 메모리 영역(2i)에 저장된다. 제 2 목적 포인터 2p는 상수를 포함한다.
도 6D는 제 2 오퍼랜드를 사용하여 전송을 조작하는 방법(예를들어, 측정된 펄스를 펄스 주기로부터 감산하는 방법)을 도시한다. 이러한 예에서는 4-5 파라미터가 필요하며, 제 1 파라미터 메모리 영역에서는 1워드가 저장되며 제 2 파라미터 메모리 영역에서는 2워드가 저장된다.
이들 파라미터는 연산중에 예를들어 명령 b 또는 각각의 프로그램에 의해 한정된 오퍼레이터(18)에 의해 전송되는 각각의 바이트/워드와 결합되는 데이터를 지시하는 제 2 포인터(14c)를 상수 대신에 포함한다. 더욱이, 이러한 바이트/워드는 각각의 마스크 파라미터에 의해 마스킹될 수 있다. 파라미터는 예를들어 도 2에 도시된 바와같이 메모리 영역(2i)에 저장된다.
도 6E는 PRAM내의 누산과 최적의 전송을 도시한다(예 1: 측정된 시간값을 테이블에 저장하고 전체 경과시간을 합산한다. 예 2: 합계검사를 계산한다). 이 예에서는 4-5 파라미터가 필요하며, 제 1 파라미터 메모리 영역에서는 1워드가 저장되며 제 2 파라미터 메모리 영역에서는 4워드가 저장된다. 각각의 바이트/비트가 전송되는 동안 각각의 바이트/워드는 오퍼레이터(18)에 의해 파라미터 2p중 하나와 결합되며 파라미터 2p에 저장된다. 더욱이, 이러한 바이트/워드는 각각의 마스크 파라미터에 의해 마스킹될 수 있다. 파라미터는 에를들어 도 2에 도시된 바와같이 메모리 영역(2i)에 저장된다. 제 2 목적 포인터는 값을 저장한다.
본 발명의 실시예에 따른 이러한 DMA-유니트는 CPU에 병렬로 다수의 주변장치에 서비스할 수 있으며, 종래의 시스템에서는 CPU가 인터럽트 서비스 루틴을 수행해야 하는 문제점을 가진다. 본 발명의 DMA-제어기는 다음과 같은 연산을 수행할 수 있다.
임의의 두 메모리 또는 I/O 위치사이에 데이터를 이동시킨다.
파라미터 RAM 및 임의의 메모리 또는 I/O 위치사이에서 데이터를 이동시킨다.
데이터를 판독한다음 그것을 수정하고 그 결과를 저장한다.
소정의 데이터값이 검출될때까지 데이터를 이동시킨다.
데이터를 판독하고 그것을 소정 제한치에 비교하여 적정 동작을 수행한다.
데이터를 판독하고 그것을 이전에 판독된 데이터에 누산시킨다.
데이터를 이동시키고 그것을 이전에 판독된 데이터에 누산시킨다.
두 개의 데이터값을 판독하고 산술 또는 논리 연산을 수행하여, 그 결과를 저장한다.
이러한 기능은 CPU에 의해 인터럽트 서비스 루틴을 통해 수행되어야 하는 주변장치에 이해 요구된 많은 서비스 연산을 조절하기 위하여 사용될 수 있으며, 모든 오버헤드는 서비스 연산과 함께 포함된다. 이하에서는 DMA-제어기를 사용하기 위한 임의의 응용예를 리스트한다.
주변 레지스터에 상수를 재로드한다(예를들어, 타이머를 재로드한다).
주변 레지스터에 비트 또는 비트 필드를 수정한다(예를들어, 타이머 또는 A/D 컨버터를 시동 또는 정지시킨다)
주변장치로부터 검색된 값을 누산한다(예를들어, 펄스주기 측정치를 누산한다).
누산값이 소정 제한치와 매칭되는 경우에만 데이터를 이동시킨다(예를들어, 아날로그 입력에서 임의의 전압 제한치를 감시한다)
이 값들을 주변 레지스터에 더한다(예를들어, PWM 발생 등등을 위해 다음 비교 이벤트를 계산한다).
더욱이, 본 발명은 CPU 또는 주변장치상에서의 검사 연산을 수행하기 위하여 DMA-유니트를 사용할 수 있다. CPU로부터의 계산결과는 DMA-유니트를 사용함으로써 소정의 범위에 대해서 검사될 수 있다. 주변 제어 레지스터의 완전성은 DMA-유니트에 의해 메모리에 저장된 소정의 테이블과 레지스터의 내용을 비교함으로써 감시될 수 있다.
제 2 실시예에 따른 DMA-유니트는 각각의 프로그램이 임의의 종류의 데이터를 조절 및 조작할 수 있기 때문에 그 기능이 거의 제한되지 않는다.

Claims (24)

  1. 다수의 전송채널을 가진 직접 메모리 액세스 유니트에 있어서,
    데이터를 전송하기 위한 버스와 결합된 인터페이스 유니트를 가지며, 프로그램가능한 파라미터에 따라 상기 버스를 통해 데이터를 전송하는 데이터 처리 유니트와;
    각각의 전송 채널에 대한 상기 파라미터를 저장하는 파라미터 메모리를 포함하며, 상기 파라미터 메모리는, 각각의 한정된 전송 채널에 대하여, 벡터 어드레스를 가지는 워드를 상기 전송채널에 대한 특정 파라미터를 가지는 제 2 메모리 영역에 저장하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  2. 제 1항에 있어서, 상기 워드는 상기 제 2 메모리 영역에 저장된 파라미터의 수를 한정하는 전송 명령을 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  3. 제 1항에 있어서, 상기 데이터 처리 유니트는 상기 프로그래밍된 파라미터를 사용하여 상기 버스를 통해 전송된 상기 데이터를 변경할 수 있는 데이터 조작 유니트를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  4. 제 3항에 있어서, 상기 조작 유니트는 산술 오퍼레이터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  5. 제 3항에 있어서, 상기 조작 유니트는 논리 오퍼레이터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  6. 제 3항에 있어서, 상기 조작 유니트는 비교 유니트를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  7. 제 2항에 있어서, 상기 파라미터는 소스 포인터, 목적 포인터, 전송 카운터, 및 채널 명령을 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  8. 제 7항에 있어서, 상기 파라미터는 데이터 조작 레지스터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  9. 제 8항에 있어서, 상기 파라미터는 제 2 소스 포인터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  10. 제 1항에 있어서, 상기 파라미터 메모리는 이중 포트 메모리인 것을 특징으로 하는 직접 메모리 액세스 유니트.
  11. 다수의 전송 채널을 가진 직접 메모리 액세스 유니트에 있어서,
    명령을 저장하는 코드 메모리와;
    상기 코드 메모리에 접속되며, 데이터를 전송하기 위한 버스와 접속되는 버스 인터페이스 유니트를 가지며, 상기 코드 메모리에 저장되고 프로그램가능한 파라미터에 따르는 프로그램을 실행함으로써 상기 버스를 통해 데이터를 전송하는 데이터 처리 유니트와;
    각각의 전송 채널에 대한 상기 파라미터를 저장하는 파라미터 메모리를 포함하며, 상기 코드 메모리는 제 1 메모리 영역 및 제 2 메모리 영역을 제공하며, 상기 제 1 메모리 영역은 각각의 한정된 전송 채널에 대하여 엔트리 포인트 어드레스를 상기 제 2메모리에 저장하며, 상기 제 2 메모리 영역은 적어도 하나의 프로그램 시퀀스를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  12. 제 11항에 있어서, 상기 코드 메모리는, 각각의 한정된 전송 채널에 대하여, 벡터 어드레스를 가지는 워드를 상기 전송 채널에 대한 특정 파라미터를 가지는 제 4 메모리 영역에 저장하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  13. 제 12항에 있어서, 상기 제 4 메모리 영역은 상기 코드 메모리내에 위치하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  14. 제 12항에 있어서, 상기 제 4 메모리 영역은 상기 파라미터 메모리내에 위치하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  15. 제 11항에 있어서, 상기 코드 메모리는 상기 버스에 접속되는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  16. 제 11항에 있어서, 상기 코드 메모리는 비휘발성 플래시 메모리인 것을 특징으로 하는 직접 메모리 액세스 유니트.
  17. 제 11항에 있어서, 상기 데이터 처리 유니트는 상기 프로그래밍된 파라미터를 사용하여 상기 버스를 통해 전송된 상기 데이터를 변경할 수 있는 데이터 조작 유니트를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  18. 제 17항에 있어서, 상기 조작 유니트는 산술 오퍼레이터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  19. 제 17항에 있어서, 상기 조작 유니트는 논리 오퍼레이터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  20. 제 17항에 있어서, 상기 조작 유니트는 비교 유니트를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  21. 제 12항에 있어서, 상기 파라미터는 소스 포인터, 목적 포인터, 전송 카운터 및 채널 명령을 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  22. 제 21항에 있어서, 상기 파라미터는 데이터 조작 레지스터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  23. 제 21항에 있어서, 상기 파라미터는 제 2 소스 포인터를 포함하는 것을 특징으로 하는 직접 메모리 액세스 유니트.
  24. 제 11항에 있어서, 상기 파라미터 메모리는 이중 포트 메모리인 것을 특징으로 하는 직접 메모리 액세스 유니트.
KR1020007002607A 1997-09-12 1998-09-04 직접 메모리 액세스 유니트 KR20010023916A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/928,558 1997-09-12
US08/928,558 US5944800A (en) 1997-09-12 1997-09-12 Direct memory access unit having a definable plurality of transfer channels
PCT/US1998/018672 WO1999014680A1 (en) 1997-09-12 1998-09-04 Direct memory access unit

Publications (1)

Publication Number Publication Date
KR20010023916A true KR20010023916A (ko) 2001-03-26

Family

ID=25456423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007002607A KR20010023916A (ko) 1997-09-12 1998-09-04 직접 메모리 액세스 유니트

Country Status (6)

Country Link
US (1) US5944800A (ko)
EP (1) EP1012732B1 (ko)
JP (1) JP2001516925A (ko)
KR (1) KR20010023916A (ko)
DE (1) DE69803860T2 (ko)
WO (1) WO1999014680A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167465A (en) * 1998-05-20 2000-12-26 Aureal Semiconductor, Inc. System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connection
US6385670B1 (en) * 1998-06-01 2002-05-07 Advanced Micro Devices, Inc. Data compression or decompressions during DMA transfer between a source and a destination by independently controlling the incrementing of a source and a destination address registers
US6275877B1 (en) * 1998-10-27 2001-08-14 James Duda Memory access controller
US6633926B1 (en) * 1998-11-30 2003-10-14 Matsushita Electric Industrial Co., Ltd. DMA transfer device capable of high-speed consecutive access to pages in a memory
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
US6654819B1 (en) * 1999-07-15 2003-11-25 Texas Instruments Incorporated External direct memory access processor interface to centralized transaction processor
US6574683B1 (en) * 1999-07-15 2003-06-03 Texas Instruments Incorporated External direct memory access processor implementation that includes a plurality of priority levels stored in request queue
US6418489B1 (en) * 1999-10-25 2002-07-09 Motorola, Inc. Direct memory access controller and method therefor
JP2001249891A (ja) * 2000-03-03 2001-09-14 Sony Computer Entertainment Inc エンタテインメント装置
US6785743B1 (en) * 2000-03-22 2004-08-31 University Of Washington Template data transfer coprocessor
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6633996B1 (en) 2000-04-13 2003-10-14 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus architecture
US6691257B1 (en) 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6735715B1 (en) 2000-04-13 2004-05-11 Stratus Technologies Bermuda Ltd. System and method for operating a SCSI bus with redundant SCSI adaptors
US6874039B2 (en) 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6766479B2 (en) 2001-02-28 2004-07-20 Stratus Technologies Bermuda, Ltd. Apparatus and methods for identifying bus protocol violations
US6775727B2 (en) * 2001-06-23 2004-08-10 Freescale Semiconductor, Inc. System and method for controlling bus arbitration during cache memory burst cycles
US6799232B1 (en) * 2001-12-05 2004-09-28 Zarlink Semiconductor V.N., Inc. Automatic byte swap and alignment for descriptor-based direct memory access data transfers
US6728791B1 (en) * 2002-01-16 2004-04-27 Adaptec, Inc. RAID 1 read mirroring method for host adapters
US6701385B1 (en) 2002-01-16 2004-03-02 Adaptec, Inc. Raid 1 write mirroring method for host adapters
JP2004118544A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp メモリシステム
WO2004079583A1 (ja) * 2003-03-05 2004-09-16 Fujitsu Limited データ転送制御装置およびdmaデータ転送制御方法
US7428644B2 (en) 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US20050080945A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Transferring message packets from data continued in disparate areas of source memory via preloading
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
CN100432968C (zh) * 2004-07-09 2008-11-12 上海奇码数字信息有限公司 存储器直接存取装置及其数据传输方法
US7386642B2 (en) 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US9094686B2 (en) * 2006-09-06 2015-07-28 Broadcom Corporation Systems and methods for faster throughput for compressed video data decoding
US20090063725A1 (en) * 2007-08-31 2009-03-05 O2Micro Inc. Direct memory access system
KR101202738B1 (ko) * 2008-12-22 2012-11-20 한국전자통신연구원 멀티 채널 데이터 전송 장치
US10789192B2 (en) * 2016-02-29 2020-09-29 Renesas Electronics America Inc. System and method for programming data transfer within a microcontroller

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6057457A (ja) * 1983-09-07 1985-04-03 Ricoh Co Ltd Dma装置
US4751634A (en) * 1985-06-14 1988-06-14 International Business Machines Corporation Multiple port communications adapter apparatus
US4896261A (en) * 1986-11-24 1990-01-23 Motorola Inc. System for scheduling serial message transmission on a bus which is adoptable for rescheduling prioritized messages using a doubly-linked list
US5179663A (en) * 1988-02-19 1993-01-12 Hitachi, Ltd. Data transfer controller
US5212795A (en) * 1988-10-11 1993-05-18 California Institute Of Technology Programmable DMA controller
US5297242A (en) * 1989-12-15 1994-03-22 Nec Corporation DMA controller performing data transfer by 2-bus cycle transfer manner
EP0654740A1 (de) * 1993-11-22 1995-05-24 Siemens Aktiengesellschaft Bussteuerung
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
JP3525518B2 (ja) * 1994-10-13 2004-05-10 ヤマハ株式会社 データ転送装置
US5613162A (en) * 1995-01-04 1997-03-18 Ast Research, Inc. Method and apparatus for performing efficient direct memory access data transfers
US5619727A (en) * 1995-03-08 1997-04-08 United Microelectronics Corp. Apparatus for a multiple channel direct memory access utilizing a virtual array technique

Also Published As

Publication number Publication date
WO1999014680A1 (en) 1999-03-25
EP1012732A1 (en) 2000-06-28
DE69803860T2 (de) 2002-10-02
JP2001516925A (ja) 2001-10-02
DE69803860D1 (de) 2002-03-21
US5944800A (en) 1999-08-31
EP1012732B1 (en) 2002-02-13

Similar Documents

Publication Publication Date Title
KR20010023916A (ko) 직접 메모리 액세스 유니트
US5628026A (en) Multi-dimensional data transfer in a data processing system and method therefor
US7627743B2 (en) Method and circuit implementation for multiple-word transfer into/from memory subsystems
US5517436A (en) Digital signal processor for audio applications
JP5989656B2 (ja) 処理クラスタ用の共有機能メモリ回路要素
US6370601B1 (en) Intelligent direct memory access controller providing controlwise and datawise intelligence for DMA transfers
US6311234B1 (en) Direct memory access controller with split channel transfer capability and FIFO buffering
US5212795A (en) Programmable DMA controller
US20030056071A1 (en) Adaptable boot loader
JPH0128967B2 (ko)
WO1997044739A1 (en) Apparatus for converting data between different endian formats and system and method employing same
EP1103889B1 (en) Flexible general-purpose input/output system
JP6449287B2 (ja) 自律的メモリの方法及びシステム
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
EP0614137B1 (en) Data processing system providing an extensible register and method thereof
US20060168373A1 (en) Configurable application specific standard product with configurable I/O
EP0267974A1 (en) Control interface for transferring data between a data processing unit and input/output devices
US5208915A (en) Apparatus for the microprogram control of information transfer and a method for operating the same
US10983936B2 (en) Programmable arbitrary sequence direct memory access controller for configuring multiple core independent peripherals
US5737381A (en) Counting device
US20040205701A1 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
JP2884601B2 (ja) ベクトルプロセッサ
JPS59218569A (ja) マイクロ・コンピユ−タ
US7213127B2 (en) System for producing addresses for a digital signal processor
JPH0477930A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid