KR100615659B1 - 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진 - Google Patents

다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진 Download PDF

Info

Publication number
KR100615659B1
KR100615659B1 KR1020017006363A KR20017006363A KR100615659B1 KR 100615659 B1 KR100615659 B1 KR 100615659B1 KR 1020017006363 A KR1020017006363 A KR 1020017006363A KR 20017006363 A KR20017006363 A KR 20017006363A KR 100615659 B1 KR100615659 B1 KR 100615659B1
Authority
KR
South Korea
Prior art keywords
memory access
direct memory
physical
virtual
channels
Prior art date
Application number
KR1020017006363A
Other languages
English (en)
Other versions
KR20010080515A (ko
Inventor
마그로제임스알.
맨다니엘피.
굳리치플로이드3세
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 KR20010080515A publication Critical patent/KR20010080515A/ko
Application granted granted Critical
Publication of KR100615659B1 publication Critical patent/KR100615659B1/ko

Links

Images

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

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

직접 메모리 액세스 엔진은 다중 가상 직접 메모리 액세스 채널들을 지원한다. 상기 직접 메모리 액세스 엔진은 직접 메모리 액세스 제어기와 다수의 가상 직접 메모리 액세스 채널들에 대한 파라미터들을 가지는 메모리의 파라미터 테이블을 포함한다. 상기 직접 메모리 액세스 엔진은 하나의 물리적 직접 메모리 액세스 채널과 다수의 가상 직접 메모리 액세스 채널들을 제공한다. 상기 다수의 가상 직접 메모리 액세스 채널들 중 한 채널만이 소정의 시간 동안 활성화 된다. 상기 활성 채널에 대한 파라미터들은 상기 파라미터 테이블로부터 상기 직접 메모리 액세스 제어기의 물리적 직접 메모리 액세스 제어 블럭과 물리적 직접 메모리 액세스 채널 리소스에 로드된다. 상기 직접 메모리 액세스 제어기의 물리적 직접 메모리 액세스 제어 블럭은 상기 로드된 파라미터들에 에 근거하여 채널에 대한 직접 메모리 액세스 전송을 수행하도록 물리적 직접 메모리 액세스 채널 리소스를 이용한다. 상기 물리적인 직접 메모리 액세스 채널 리소스는 다수의 가상 메모리 액세스 채널들에 의해 공유된다. 상기 직접 메모리 액세스 엔진은 상기 다수의 가상 직접 메모리 액세스 채널들 중 한개의 활성 채널에 대한 직접 메모리 액세스 요청 라인과 직접 메모리 액세스 확인 라인을 더 포함한다.

Description

다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진{A DIRECT MEMORY ACCESS ENGINE FOR SUPPORTING MULTIPLE VIRTUAL DIRECT MEMORY ACCESS CHANNELS}
본 발명은 마이크로컨트롤러들의 직접 메모리 액세스 제어에 관한 것으로, 좀더 구체적으로는 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진에 관한 것이다.
마이크로컨트롤러들
기술이 진보함에 따라서, 컴퓨터 시스템 구성요소들은 이전에 마이크로프로세서나 컴퓨터 시스템 전체가 제공하던 특정 서비스들을 제공한다. 이러한 진보된 기술의 중요한 부분은 마이크로컨트롤러, 혹은 내장 제어기(embedded controller)로 알려져 있으며, 이는 개인용 컴퓨터에 사용되는 마이크로프로세서와 동일한 효과가 있으나, 동일한 모놀리식(monolithic) 반도체 기판(즉, 칩) 상에 다수의 부가적인 기능들을 가진다. 전형적인 개인용 컴퓨터에서, 상기 마이크로프로세서는 기본적인 연산 기능들을 수행하지만, 다른 집적회로들은 네트워크를 통한 통신, 컴퓨터 메모리 제어, 그리고 사용자에 대한 입출력 제공과 같은 기능들을 수행한다.
전형적인 마이크로컨트롤러에서, 이러한 많은 기능들은 상기 집적회로 칩 내부에 내장된다. 캘리포니아, 서니베일의 어드밴스드 마이크로 디바이시즈 인코포레이티드의 AM186EM 또는 AM186SE와 같은 전형적인 마이크로컨트롤러는 코어(core) 마이크로프로세서 뿐만 아니라 메모리 제어기, 직접 메모리 액세스(DMA) 제어기, 인터럽트 제어기, 그리고 비동기 및 동기 직렬 인터페이스들을 더 포함한다. 컴퓨터 시스템에서, 이러한 디바이스들은 전형적으로 개별 집적 회로들로서 구현되고, 큰 공간을 필요로 하므로 제품의 크기가 증가된다. 단일 칩 내부에 이러한 기능들을 내장함으로써, 크기를 현저하게 줄일 수 있으며, 이는 종종 소비자 제품들에 있어서 중요한 요인이 된다.
소비자 제품 설계자들의 관점에서, 부가된 특징들의 특정 조합은 특정 마이크로컨트롤러를 종종 소정의 응용제품에 대해서 매력적으로 만든다. 많은 마이크로컨트롤러들은 기본적인 80x86 마이크로프로세서 명령들의 사용이 가능하며, 이는 이러한 마이크로컨트롤러들에 대해서 소프트웨어를 쉽게 개발할 수 있도록 한다. 상기 유사한 실행 유닛 명령 세트들 때문에, 상기 부가되는 특징들이 특정 마이크로컨트롤러들을 구별하는 중요한 기준이 되는 것이 많다.
내장 시스템들에 마이크로프로세서들을 구현함에 있어서, 다른 일반적인 요구사항이나 원하는 특징들은, 상기 마이크로컨트롤러의 특정 부분이 다른 부분과 교섭하는 경우에 의한 필요 대역폭(bandwidth)을 줄이는 것이다. 예를 들어서, 마이크로컨트롤러의 코어는 실행 유닛이고, 이는 마이크로프로세서 코어의 필수 부분이다. 상기 마이크로컨트롤러 내부의 다른 유닛들을 대기하느라 시간을 소비하는 것보다, 실행 유닛은 상기 실행 유닛의 전용 프로그램된 작업을 수행하도록 자유로워야 한다.
직접 메모리 액세스
상기 실행 유닛을 자유롭게 하는데 종종 도움이 되는 것은 직접 메모리 액세스(DMA) 유닛들, 타이머 제어 유닛들, 그리고 인터럽트 제어 유닛들이다. 이러한 유닛들은 특정 외부 트랜잭션(transaction)들의 발생 동안 대기해야하는 작업들을 오프-로드(off-load) 하며, 상기 DMA 유닛의 경우에는, 실제로 상기 작업 자체를 오프-로드한다. 상기 DMA 유닛은 메모리 위치들 간의 전송, 입/출력 포트들 간의 전송, 또는 메모리 위치와 입/출력 포트 간의 전송들을 수행하도록 프로그램될 수 있다. 이러한 작업들을 오프-로드함으로써, 상기 실행 유닛은 이러한 전송들이 발생하는 동안 대기하지 않아도 되며, 이로 인해서 상기 컴퓨터 시스템의 전체 속도가 증가한다.
상기 DMA 유닛은 마이크로프로세서의 관여 없이, 상기 DMA 유닛의 제어 레지스터들을 전송 제어 정보로 초기화함으로써 기능한다. 상기 전송 제어 정보는 일반적으로 소스 주소(전송될 데이터 블럭의 시작 주소), 목적지 주소(데이터 블럭의 시작이 전송될 곳의 주소), 그리고 상기 데이터 블럭의 크기를 포함한다. 상기 마이크로프로세서 및 DMA 유닛 모두는 데이터를 적절한 주소로 분배하기 전에 내부적으로 데이터를 저장하지만, DMA 유닛은 주변 또는 메모리 디바이스로 또는 그로부터 주소와 버스 제어 신호들을 제공하여 상기 주변 또는 메모리 디바이스가 읽기 또는 기록 주기 동안 주변 또는 메모리 디바이스에 액세스하도록 할 수 있다.
DMA 유닛에서 특정 채널들이 구현되어, 주변 또는 메모리 디바이스들이 다른 주변 또는 메모리 디바이스들로 또는 그로부터 (상기 DMA 유닛에 의한 내부적 데이터 저장과 함께 혹은 이것 없이) 데이터를 전송할 수 있도록 한다. 채널은 주변 또는 메모리 디바이스로부터 DMA 요청 신호(DREQ)를 통해 활성화될 수 있다. 상기 DMA 유닛은 상기 DREQ를 수신하고, DMA 확인(acknowledge) 신호(DACK)혹은 그것을 시뮬레이트한(simulated) 것을 제공하고, 상기 채널을 통해 상기 주변 또는 메모리 디바이스로 또는 그들로부터 데이터를 전송한다. DMA 채널들을 일반적으로 사용하는 주변 장치들은 DRAM(동적 랜덤 액세스 메모리) 리프레시(refresh) 회로부, 사운드 카드들, SCSI 호스트 어댑터들, 병렬 포트들, 테이프 카드들, 네트워크 카드들, 모뎀들, 그리고 플로피 디스크 제어기들을 포함한다.
직접 메모리 액세스 채널들은 종래 하드웨어로 지원되고 직접 메모리 액세스 제어기 내의 제어 로직에 의해 관리되고 있다. 상기 제어 로직은 다수의 레지스터들(예를 들어, DMA 명령 레지스터들, DMA 모드 레지스터들, DMA 상태 레지스터들, DMA 마스크 레지스터들, DMA 요청 레지스터들, DMA 카운트 레지스터들, 그리고 DMA 주소 레지스터들)의 형태를 취해서 전형적으로 귀중한 실리콘 공간을 차지한다. 각 직접 메모리 액세스 채널은 상기 제어 로직의 고유의 부분(예를 들어, DINA 카운트 레지스터들과 DINA 주소 레지스터들)과 관련지어 졌다.
US-A-5, 619, 727은 n개의 DMA 블럭들이 직렬로 연결되고, 각 DMA 블럭이 데이터 전송을 위한 m개의 독립 채널들을 가지는 다중 채널 직접 메모리 액세스 장치를 보인다. 소스 주소 및 목적지 주소와 같은 DMA 전송을 제어하기 위한 파라미터들은 상기 m채널들의 각 하나에 대한 메모리에 저장된다. 상기 장치에서, 각 DMA 블럭은 그 자체에 물리적 제어 회로와 그 자체에 물리적 제어 레지스터를 가진 물리적 DMA 채널을 가진다.
간략하게, 본 발명은 다중 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진을 제공한다. 상기 직접 메모리 액세스 엔진은 직접 메모리 액세스 제어기와 다수의 가상 직접 메모리 액세스 채널들에 대한 파라미터들을 포함한 메모리의 파라미터 테이블을 포함한다. 상기 직접 메모리 액세스 엔진은 단일의 물리적 직접 메모리 액세스 채널과 다수의 가상 직접 메모리 액세스 채널들을 제공한다. 상기 다수의 가상 직접 메모리 액세스 채널들 중 한 채널만이 소정의 시간 동안 활성화된다. 상기 활성 채널에 대한 파라미터들이 상기 파라미터 테이블로부터 상기 직접 메모리 액세스 제어기에 로드된다. 상기 직접 메모리 액세스 제어기의 물리적 직접 메모리 액세스 제어 블럭이 물리적 직접 메모리 액세스 채널 리소스를 이용하여 상기 로드된 파라미터들에 근거하여 상기 활성화된 채널에 대한 직접 메모리 액세스 전송을 수행한다. 상기 제어기의 물리적인 직접 메모리 액세스 채널 리소스는 다수의 가상 메모리 액세스 채널들에 의해 공유된다. 상기 직접 메모리 액세스 엔진은 상기 다수의 가상 직접 메모리 액세스 채널들의 활성 채널에 대한 직접 메모리 액세스 요청 라인과 직접 메모리 액세스 확인 라인을 더 포함한다.
본 발명은 각 직접 메모리 액세스 채널을 그 자체의 제어 로직과 관련지을 필요가 없어진다. 이러한 방법에서, 다중 직접 메모리 액세스 채널들에 대한 직접 메모리 액세스 제어 로직이 큰 실리콘 영역들을 소비하는 것이 아니라 직접 메모리 액세스 채널에 관한 직접 메모리 액세스 제어 정보를 저장하기 위해서 메모리가 사용된다.
본 발명의 더 나은 이해를 위해서 다음의 본 발명에 대한 자세한 설명을 다음의 도면들을 참조하여 고려할 수 있다.
도 1은 본 발명에 따르는 직접 메모리 액세스 엔진을 제공하는 마이크로컨트롤러의 블럭도이다.
도 2는 본 발명에 따르는 도 1의 예시적인 직접 메모리 액세스 엔진의 개략도이다.
도 3은 본 발명에 따르는 예시적인 가상 직접 메모리 액세스 제어 방법의 흐름도이다.
도면을 보면, 도 1은 본 발명에 따르는 마이크로컨트롤러(M)의 예시적인 구조에 대한 블럭도이다. 상기 마이크로컨트롤러(M)는 다양한 칩 내장(on-chip) 유닛들을 지원할 수 있다. 상기 도시된 구조에서, 실행 유닛(100), 메모리 유닛(102), 버스 제어 유닛(104), 직접 메모리 액세스(DMA) 유닛(106), 테스트 액세스 포트(108), 타이머 유닛(110), 주변장치 제어 유닛(112), 인터럽트 제어 유닛(114), 프로그램 가능한 I/O 유닛(116) 및 포트 유닛(118)이 각각 시스템 버스(120)에 연결된다. 상기 시스템 버스(120)는 상기 연결된 유닛들 간의 데이터, 주소 및 제어 정보를 통신하기 위한 데이터 버스, 주소 버스, 그리고 제어 버스를 포함할 수 있다.
상기 실행 유닛(100)은 상기 메모리 유닛(102)에 저장된 코드를 실행하기 위한 고도로 집적된 프로세서(101)를 제공할 수 있다. 상기 개시된 실시예에서, 상기 실행 유닛(100)은 캘리포니아, 서니베일의 어드밴스드 마이크로 디바이시즈 인코포레이티드의 다양한 마이크로컨트롤러에 구현된 Am186 명령 세트와 호환성이 있다. 상기 실행 유닛(100) 대신에 다양한 다른 실행 유닛들이 사용될 수 있다.
상기 메모리 유닛(102)은 칩 내장(on-chip) 또는 칩 외장(off-chip) 메모리 디바이스들로 혹은 이들로부터의 데이터 통신을 제어하기 위한 다중 메모리 제어기들을 지원할 수 있다. 예를 들어, 이러한 메모리 디바이스들은 동적 임의 액세스 메모리(DRAM), 읽기 전용 메모리(ROM) 및/또는 플래시 메모리를 포함할 수 있다. 메모리 제어기의 한 예는 확장 데이터 출력(extended data out:EDO), 동기 DRM(SDRAM) 지원, 기록 버퍼링 지원 및 읽기 버퍼링 지원을 제공하는 DRAM 컨트롤러이다.
상기 버스 제어 유닛(104)은 다양한 버스들을 제어하여 상기 버스들에 연결된 주변기기들을 지원하기 위한 버스 제어기들의 호스트를 제공할 수 있다. 예를 들어, 이러한 버스 제어기들은 USB(범용 직렬 버스) 제어기, ISA(산업 표준 구조) 버스 제어기, PCI(주변장치 구성요소 상호연결) 버스 제어기, 범용 버스 제어기 및/또는 VL-버스 제어기를 포함할 수 있다. 그래서 상기 버스 제어 유닛(104)은 상기 마이크로컨트롤러(M)가 다수의 외부 버스들 및 주변장치들을 지원하도록 할 수 있다.
상기 DMA 유닛(106)은 상기 마이크로컨트롤러(M) 유닛들 간의 직접 메모리 액세스 전송 제어를 위한 몇 개의 DMA 채널들을 가지는 다중 DMA 제어기들을 제공할 수 있다. 본 발명에 따라서, 상기 DMA 유닛(106)은 다중 가상 DMA 채널들을 지원하기 위한 DMA 엔진(150)을 제공한다. 상기 테스트 액세스 포트(108)는 제조 환경에 있어서 상기 마이크로컨트롤러(M)를 테스트하기 위한 검색 인터페이스를 제공하고, 상기 포트(108)의 테스트 로직을 제어하기 위한 테스트 액세스 포트(TAP) 제어기를 지원한다.
상기 주변장치 제어기 유닛(112)은 다양한 주변 디바이스들을 제어하기 위한 집적된 주변장치 제어기들의 호스트를 제공할 수 있다. 이러한 주변장치 제어기들은, 예를 들어, 그래픽 제어기, 키보드 제어기 및/또는 PC 카드 제어기를 포함할 수 있다. 상기 그래픽 제어기는 내부의 통합 메모리 구조(UMA) 및 다양한 그래픽 어뎁터들과의 소프트웨어 호환성을 제공하는 것이 바람직하다. 상기 PC 카드 제어기 또는 어뎁터는 PCMCIA(개인용 컴퓨터 메모리 카드 국제 협약)의 규격을 따르는 것이 바람직하다.
상기 인터럽트 제어 유닛(114)은 몇몇 인터럽트 요청들을 지원하기 위해서 다중 인터럽트 제어기들을 제공할 수 있다. 각 인터럽트 제어기는 그와 연관되는 인터럽트 요청들의 발생 및 허용을 조절할 수 있다. 상기 프로그램 가능한 I/O 유닛(116)은 몇 개의 범용 I/O 핀들을 지원한다. 이러한 핀들은 상기 마이크로컨트롤러(M)에 외부 디바이스들을 위한 병렬 인터페이스를 제공한다. 상기 포트 유닛(118)은 표준 병렬 포트 인터페이스, 직렬 포트 인터페이스 및/또는 적외선 포트 인터페이스를 제공한다. 상기 병렬 포트 인터페이스는 고속 전송을 위한 개선된 병렬 포트(EPP) 모드를 지원할 수 있다. 상기 직렬 포트 인터페이스와 적외선 인터페이스는 PC 호환성을 가질 수 있도록 산업-표준 범용 비동기 수신/송신기(UART)에 의해 구동될 수 있다.
상기 마이크로컨트롤러(M)의 이러한 유닛들은 다양한 구조들 및 조합들이 될 수 있다. 예를 들어서, 상기 마이크로컨트롤러(M)는 Am186™ED 마이크로컨트롤러, Elan™SC400 마이크로컨트롤러, 또는 Am186™CC 마이크로컨트롤러일 수 있다. 상기 설명된 유닛들은 예시적인 것이며 상술할 필요가 없다는 것을 이해하여야 한다. 본 발명의 사상을 해치는 일 없이 도시된 유닛들을 몇 개 배제하거나 추가할 수 있다. 또한, 상기 마이크로프로세서(M)에 의해 지원되는 특정 유닛들의 선택은 상기 특정 마이크로컨트롤러 응용제품의 기능일 수 있다. 예를 들어서, 휴대용 컴퓨팅 응용제품에서, 적외선 포트 인터페이스, 그래픽 제어기 및 PC 카드 제어기가 지원될 수 있다. 다른 예에서, 통신 응용제품에 있어서, USB 제어기 및 HLDC(고-수준 데이터 연결 제어) 제어기가 지원될 수 있다. 이와 같이, 상기 설명된 마이크로컨트롤러(M)는 구조적인 유연성을 갖는다.
본 발명에 따르는 기술 및 회로는 다양한 마이크로컨트롤러들에 적용될 수 있다. "마이크로컨트롤러"라는 용어 그 자체가 업계에서 상이한 정의들을 가진다. 어떠한 업체들은 부가적인 특징들(예를 들어 I/O)을 갖춘 프로세서 코어가 보드-내장 메모리를 갖지 않으면 "마이크로프로세서"라 하는 경우도 있어, 디지털 신호 프로세서들(DSPs)은 이제 특별한 목적과 범용 목적 제어기 기능들 모두에 사용된다. 여기서 사용하는 "마이크로컨트롤러" 용어는 모든 제품들을 포괄하여 이용되고 있어, 일반적인 의미는 단일 모놀리식 집적 회로 상에 모든 부가적 기능들이 실현된 유닛을 의미한다.
도 2에서, 다중 가상 DMA 채널들을 지원하기 위한 예시적인 DMA 엔진(150)의 간단한 블럭도가 보여진다. 상기 DMA 엔진(150)은 DMA 제어기(200) 및 메모리(208)를 제공한다. 상기 DMA 제어기(200)는 단일의 물리적 DMA 채널(204) 및 다수의 가상 DMA 채널들(202)을 지원한다. 상기 다수의 가상 DMA 채널들(202)은 n(n은 임의의 정수일 수 있다)개의 가상 DMA 채널들로서 표현된다. 상기 다수의 가상 DMA 채널들(202) 중 한 채널만 소정의 시간 동안 활성화된다. 상기 활성 가상 DMA 채널은 상기 단일의 물리적 DMA 채널(204)을 이용한다. 그래서, 상기 물리적인 DMA 채널(204)은 상기 다수의 가상 DMA 채널들(202) 중에서 교체될 수 있다. 도 2에서, 사선으로 나타나는 상기 물리적 DMA 채널(204)은 VIRTUAL_DMA_1 채널에 해당함으로써 표현된다.
활성 가상 DMA 채널(202)에 의한 DMA 전송은 상기 DMA 제어기(200)의 물리적 DMA 제어 블럭(206)에 의해 제어된다. 상기 물리적 DMA 제어 블럭(206)은 5개의 표준형 구성(configuration) 레지스터들(228)의 임의 조합을 포함할 수 있는데, 이 레지스터들은 DMA 모드 레지스터들, DMA 상태 레지스터들, DMA 마스크 레지스터들, DMA 요청 레지스터들, 그리고 DMA 명령 레지스터들이다. 소정의 시간에, 상기 물리적 DMA 제어 블럭(206)은 상기 물리적 DMA 채널(204)을 이용하는 가상 DMA 채널(202)에 적응하도록 구성될 수 있다. 상기 DMA 제어기(200)는 물리적 DMA 채널 리소스(220)를 더 포함할 수 있다. 상기 DMA 제어기(200)의 프로그래밍 상태 동안, 상기 물리적 DMA 채널 리소스(220) 및 상기 물리적 DMA 제어 블럭(206)은 활성화된 가상 DMA 채널에 의한 DMA 전송에 대한 파라미터들로 프로그램된다. 상기 물리적 DMA 채널 리소스(220)는 단 하나의 물리적 DMA 채널(204)에만 적응하도록 구성된다. 상기 설명된 실시예에서, 상기 물리적 DMA 채널 리소스(220)는 단일 DMA 채널에 대한 DMA 전송 카운트 레지스터들(224) 및 DMA 주소 카운터들(소스 및 목적지)(226)과 같은 DMA 전송 제어 리소스들의 세트를 포함한다. 대안적으로, 본 발명에 따르면, 상기 DMA 제어기(200)는 많은 수의 가상 DMA 채널들(202)에 의해 공유되는 임의 수의 물리적 DMA 채널들(204)을 지원할 수 있다. 상기 물리적 DMA 채널들(204)과 같이, 상기 물리적 DMA 채널 리소스(220)의 사용은 상기 다수의 가상 DMA 채널들(202) 중에서 교대될 수 있다. 상기 물리적 DMA 채널 리소스(220)는 하드웨어를 최소화하도록 구성되는 것이 바람직하다.
상기 DMA 제어기(200)는 메모리(208)와 주변장치(216)에 더 연결된다. 상기 DMA 제어기(200)는 상기 메모리(208)에 대한 메모리 읽기 신호(MEM RD)와 메모리 기록 신호(MEM WR)를 제공한다. 주변장치 읽기 신호(DEV RD)와 주변장치 기록 신호(DEV WR)는 상기 DMA 제어기(200)에 의해서 상기 주변장치(216)에 제공된다. 상기 메모리(208)는 상기 다수의 가상 DMA 채널들(202)에 대한 파라미터들을 저장하기 위해 파라미터 테이블 또는 유사한 데이터 배열(210)을 제공한다. 상기 다수의 가상 DMA 채널들(202)에 대한 파라미터들이 상기 실행 유닛(100)에 의해 상기 파라미터 테이블(210)로 로드될 수 있다. 상기 메모리(208)는 상기 실행 유닛에 주소 라인(ADDR)을 제공하여 상기 실행 유닛(100)이 상기 파라미터 테이블(210)의 주소를 지정할 수 있도록 한다. 한 가상 DMA 채널(202)이 활성화되면, 상기 특정한 가상 DMA 채널(202)에 대한 파라미터들이 상기 파라미터 테이블(210)로부터 상기 물리적 DMA 채널 리소스(220) 및 상기 물리적 DMA 제어 블럭(206)으로 제공된다. 상기 개시된 실시예에서, 상기 적절한 파라미터들이 상기 실행 유닛(100)에 의해서 상기 DMA 제어기(200)의 상기 물리적 DMA 리소스(200)에 로드된다. 상기 DMA 제어기(200)에 상기 로드된 파라미터들에 근거하여 DMA 전송을 실시한다. DMA 전송 중에, 상기 DMA 제어기(200)는 상기 메모리(208), 상기 주변장치(216) 그리고 상기 실행 유닛(100)에 연결된 로컬 데이터 버스(DATA)를 가진다.
상기 설명된 실시예에서, 적어도 4종류의 DMA 전송이 가능하다는 것을 이해해야 하는데, 즉 메모리-주변장치 디바이스 전송, 주변장치-메모리 디바이스 전송, 메모리-메모리 디바이스 전송, 그리고 주변장치-주변장치 디바이스 전송이다. 메모리-주변장치 디바이스 전송은 상기 메모리 읽기 신호(MEM RD) 및 상기 주변장치 기록 신호(DEV WR)에 따라 데이터를 상기 메모리 디바이스(208)로부터 상기 주변장치(216)로 전송하는 것이다. 주변장치-메모리 디바이스 전송은 상기 주변장치 읽기 신호(DEV RD) 및 상기 메모리 기록 신호(MEM WR)에 따라 데이터를 상기 주변장치(216)로부터 상기 메모리 디바이스(208)로 전송하는 것이다.
메모리-메모리 디바이스 전송은 상기 메모리 읽기 신호(MEM RD) 및 상기 메모리 기록 신호(MEM WR)에 따라 데이터를 상기 메모리 디바이스(208)의 한 주소 영역으로부터 상기 메모리 디바이스(208)의 다른 주소 영역으로 전송하는 것이다. 주변장치-주변장치 디바이스 전송은 상기 주변장치 읽기 신호(DEV RD) 및 상기 주변장치 기록 신호(DEV WR)에 따라 데이터를 상기 주변장치(216)의 한 I/O 주소 영역으로부터 상기 주변장치(216)의 다른 I/O 주소 영역으로 전송하는 것이다. 메모리-메모리 디바이스 전송 또는 주변장치-주변장치 디바이스 전송은 읽기 상태(phase), 내부 데이터 저장 상태 및 기록 상태를 포함할 수 있다. 상기 읽기 상태에서, 읽기 주소가 메모리(208) 또는 주변장치(216)에 적용된다. 그 다음, 상기 읽기 데이터는 DMA 제어기(200)의 일시(temporary) 레지스터(도시되지 않음)에 의해 저장될 수 있다. 그 다음, 기록 주소가 상기 메모리(208) 또는 주변 디바이스(216)에 적용된다. 대안적으로, 일시 레지스터 없이 메모리-메모리 전송 또는 주변장치-주변장치 전송이 수행될 수 있다. 간략화를 위해, 단일 메모리 디바이스(208) 및 단일 주변장치(216)가 도시되지만, 상기 DMA 제어기(150)는 또한 다수의 메모리 디바이스들 및 다수의 주변장치들 사이의 DMA 전송을 제어할 수 있다. 상기 설명된 실시예에서, 가상 DMA 채널(202)은 상기 메모리 디바이스(208) 또는 상기 주변장치(216)에 할당될 수 있다.
상기 DMA 엔진(150)은 DMA 요청/확인 포트 블럭(212)을 더 포함한다. 상기 개시된 실시예에서, 상기 DMA 요청/확인 포트 블럭(212)은 상기 주변장치(216) 또는 상기 메모리 디바이스(208)로부터 요청신호(DREQ(n))를 수신한다. 디바이스는 DMA 전송을 요청하기 위해서 DMA 요청 신호(DREQ(n))를 상기 DMA 요청/확인 포트 블럭(212)에 제공한다. 상기 DMA 요청/확인 포트 블럭(212)은 DMA 확인 신호(DACK(n))를 상기 주변 디바이스(216) 또는 상기 메모리 디바이스(208)에 공급한다. 활성 DMA 확인 신호(DACK(n))는 한 개의 가상 DMA 채널(202)이 사용가능(enable)하여, 상기 DMA 요청을 발행하는 해당 디바이스가 서비스되고 있는 것을 나타낸다.
도 3에서, 예시적인 가상 DMA 제어 과정의 순서도가 도시된다. 상기 예시적인 가상 DMA 제어 과정은 가상 DMA 채널(202)에 의한 DMA 전송의 초기화 및 실행을 나타낸다. 단계(300)의 처음에서, 직접 메모리 액세스 요청 신호(DRQ(n))가 상기 주변장치(216) 또는 상기 메모리 디바이스(208)에 의해 상기 DMA 요청/확인 포트 블럭(212)에 표명되었는지가 결정된다. 만일 DRQ(n)이 표명되지 않거나 활성화되지 않았다면, 제어는 단계(300)에 머문다. 만일 DRQ(n)이 활성화되면, 제어는 단계(302)로 진행하여, 여기서 인터럽트 신호(INT)가 상기 DMA 요청/확인 포트 블럭(212)에 의해 상기 실행 유닛(100)으로 제공된다. 그 다음, 단계(304)에서, 상기 실행 유닛(100)은 상기 DMA 요청/확인 포트 블럭(212)을 읽기 위해 CPU 읽기 신호(CPU RD)를 제공하고, 어떠한 디바이스가 서비스를 요청했는지 결정한다. 단계(304)로부터, 제어는 단계(306)로 진행하여 여기서 상기 DMA 제어기(200)에 상기 DMA 전송을 위해 위치된 상기 가상 DMA 채널(202)에 대한 파라미터들이 로드된다. 상기 파라미터들은 상기 파라미터 테이블(210)로부터 상기 DMA 제어 블럭(206) 및 상기 물리적인 DMA 리소스(220)에 로드된다. 상기 파라미터들의 일부는 상기 DMA 제어 블럭(206)에 로드되고, 상기 파라미터들의 일부는 상기 물리적 DMA 채널 리소스(220)에 로드될 수 있다.
상기 DMA 엔진(150)은 특정 중재 방식(arbitration scheme)에 따라 다수의 가상 DMA 채널 요청들 중 가상 DMA 채널(202)을 선택하기 위한 DMA 중재자(arbiter)(도시되지 않음)를 더 포함할 수 있다. 만일 다수의 직접 메모리 액세스 요청 신호들(DRQ(n))이 동시에 활성화되면, 최우선 순위의 상기 직접 메모리 액세스 요청(DRQ(n))이 선택된다.
그 다음, 단계(308)에서, 상기 DMA 제어기(200)는 일반적인 확인 신호(ACK)로 상기 요청 디바이스를 확인한다. 단계(309)에서, 상기 확인 신호(DACK(n))가 상기 DMA 요청/확인 포트 블럭(212)에 의해 상기 요청 디바이스로 표명되어, 상기 할당되거나 활성된 가상 DMA 채널(202)을 가능하게 하거나 활성화시킨다. 상기 적절한 DACK(n) 신호가 상기 DMA 요청/확인 포트 블럭(212)의 조향(steering) 로직(214)에 의해 결정된다. 상기 조향 로직(214)은 본질적으로는, 상기 할당되거나 활성화 된 가상 DMA 채널(202)에 해당하는 일반 확인 신호(ACK)를 검출함으로써, 해당하는 확인 신호(DACK(n))가 상기 요청 디바이스에 제공된다. 상기 조향 단계(phase) 이전에, 상기 확인 신호(DACK(n))는 상기 다수의 가상 DMA 채널들(202)에 의해 가상적인 의미로 물리적 수준에서 공유된다. 물리적 수준에서, 상기 물리적 DMA 채널(204)은 가상적으로 일반적 확인 신호(ACK)를 공유한다. 상기 일반적 확인 신호(ACK)는 상기 적절한 DACK(n) 신호로 조정된다.
단계(310)에서, 상기 활성된 가상 DMA 채널(202)에 대한 상기 DMA 전송은 상기 물리적 DMA 제어 블럭(206) 및 상기 물리적 DMA 채널 리소스(220)로 로드되는 파라미터들에 근거하여 수행된다. 단계(310)로부터 제어는 단계(312)로 진행되어 여기서 실행 유닛(100)은 인터럽트와 같은 상기 가상 DMA 동작의 종료를 통지 받는다. 제어는 단계(314)를 거쳐 종료하는데, 단계(314)에서 가상 DMA 제어 처리가 완료된다.
그래서, 본 발명은 다수의 가상 직접 메모리 액세스 채널(202)을 지원하기 위한 직접 메모리 액세스 엔진(150)을 제공한다. 상기 직접 메모리 액세스 엔진(150)은 직접 메모리 액세스 제어기(200)와 다수의 가상 직접 메모리 액세스 채널들(202)에 대한 파라미터들을 포함하는 메모리(208) 내의 파라미터 테이블(210)을 포함한다. 상기 직접 메모리 액세스 엔진(150)은 단일의 물리적 직접 메모리 액세스 채널(204) 및 다수의 가상 직접 메모리 액세스 채널들(202)을 제공한다. 상기 다수의 가상 직접 메모리 액세스 채널(202)들 중 한 채널만이 소정의 시간 동안 활성화된다. 상기 활성 채널(202)에 대한 파라미터들은 상기 파라미터 테이블(210)로부터 상기 직접 메모리 액세스 제어기(200)의 상기 직접 메모리 액세스 제어 블럭(206) 및 상기 물리적 직접 메모리 액세스 채널 리소스(220)에 로드된다. 상기 물리적 직접 메모리 액세스 제어 블럭(206)은 물리적 DMA 채널 자원(220)을 이용하여 상기 로드된 파라미터에 근거하여 상기 활성화된 채널(202)에 대한 직접 메모리 액세스 전송을 수행한다. 상기 물리적 DMA 채널 리소스(220)는 다수의 가상 메모리 액세스 채널들(202)에 의해 공유된다. 상기 직접 메모리 액세스 엔진(150)은 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 채널(202)에 대한 직접 메모리 액세스 요청 라인(DREQ(n))과 직접 메모리 액세스 확인 라인(DACK(n))을 더 포함한다.
상기 DMA 제어기(200)는 다수의 가상 DMA 채널들(202)에 의해 공유되는 어떠한 수의 물리적 DMA 채널들(204)에도 적용할 수 있도록 다수의 물리적 DMA 채널 리소스들(200) 및 다수의 물리적 DMA 제어 블럭들(206)을 지원할 수 있다는 것을 이해해야 한다.
본 발명은 각 직접 메모리 액세스 채널을 그 고유의 제어 로직과 관련시킬 필요가 없어진다. 이러한 방법에서, 다중 직접 메모리 액세스 채널들에 대한 직접 메모리 액세스 제어 로직이 큰 실리콘 영역들을 소비하는 것이 아니라 단일 직접 메모리 액세스 채널에 관한 직접 메모리 액세스 제어 정보를 저장하기 위해 메모리가 이용된다.
본 발명의 설명과 상기 언급한 것은 예시적이고, 그에 관해 설명하기 위한 것이며, 상기 구성요소들, 회로 소자들, 신호들, 레지스터들, 그리고 연결들의 다양한 변경들 및 상기 예시된 회로부와 구성 및 동작 방법의 자세한 부분들을 첨부되는 청구항들의 범위를 벗어나지 않으면서 여러 가지로 변경하는 것이 가능하다.

Claims (26)

  1. 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진(150)에 있어서,
    직접 메모리 액세스 제어기(200)를 포함하며, 이 직접 메모리 액세스 제어기는,
    물리적 직접 메모리 액세스 제어 블럭(206)과;
    물리적 직접 메모리 액세스 채널 리소스(220)와;
    상기 물리적 직접 메모리 액세스 제어 블럭(206) 및 상기 물리적 직접 메모리 액세스 채널 리소스(220)를 공유함과 아울러 상기 물리적 직접 메모리 액세스 제어 블럭(206)에 연결되는 다수의 가상 직접 메모리 액세스 채널들(202)과;
    상기 다수의 가상 직접 메모리 액세스 채널들(202)에 대한 파라미터들을 저장하는 파라미터 테이블(210)을 구비하는 메모리(208)와; 그리고
    상기 물리적 직접 메모리 액세스 제어 블럭(206) 및 상기 물리적 직접 메모리 액세스 채널 리소스(220)에 연결되는 물리적 직접 메모리 액세스 채널(204)을 포함하는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  2. 제 1항에 있어서, 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 가상 직접 메모리 액세스 채널에 대한 파라미터들이 상기 파라미터 테이블(210)로부터 상기 물리적 직접 메모리 액세스 채널 리소스(220) 및 상기 물리적 직접 메모리 액세스 제어 블럭(206)으로 로드되는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  3. 제 1항 또는 제 2항에 있어서, 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 하나의 채널이 소정의 시간에 활성화되는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  4. 제 1항에 있어서, 상기 물리적 직접 메모리 액세스 채널 리소스(220) 및 상기 물리적 직접 메모리 액세스 제어 블럭(206)은 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 가상 직접 메모리 액세스 채널에 대한 파라미터들을 저장하는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  5. 제 1항에 있어서, 상기 직접 메모리 액세스 제어기(200)는 상기 파라미터 테이블(210)에 저장된 상기 파라미터들에 근거하여 상기 물리적 직접 메모리 액세스 채널(204) 통해 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 가상 직접 메모리 액세스 채널에 대한 직접 메모리 액세스 전송을 수행하는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  6. 제 1항에 있어서,
    상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 채널에 대한 직접 메모리 액세스 요청 라인을 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  7. 제 1항에 있어서,
    상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 채널에 대한 직접 메모리 액세스 확인 라인을 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  8. 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 마이크로컨트롤러(M)에 있어서,
    실행 유닛(100)과; 그리고 상기 실행 유닛에 연결되는 직접 메모리 액세스 유닛(106)을 포함하며,
    상기 직접 메모리 액세스 유닛은 상기 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진(150)을 포함하며, 상기 직접 메모리 액세스 엔진(150)은 직접 메모리 액세스 제어기(200)를 포함하며, 상기 직접 메모리 액세스 제어기(200)는:
    물리적 직접 메모리 액세스 제어 블럭(206)과;
    물리적 직접 메모리 액세스 채널 리소스(220)와;
    상기 물리적 직접 메모리 액세스 제어 블럭(206) 및 상기 물리적 직접 메모리 액세스 채널 리소스(220)를 공유함과 아울러 상기 물리적 직접 메모리 액세스 제어 블럭(206)에 연결되는 다수의 가상 직접 메모리 액세스 채널들(202)과;
    상기 다수의 가상 직접 메모리 액세스 채널들(202)에 대한 파라미터들을 저장하는 파라미터 테이블(210)을 구비하는 메모리(208)와; 그리고
    상기 물리적 직접 메모리 액세스 제어 블럭(206) 및 상기 물리적 직접 메모리 액세스 채널 리소스(220)에 연결되는 물리적 직접 메모리 액세스 채널(204)을 포함하는 것을 특징으로 하는 마이크로컨트롤러.
  9. 제 8항에 있어서, 상기 실행 유닛(100)은 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 가상 직접 메모리 액세스 채널에 대한 파라미터들을 상기 파라미터 테이블(210)로부터 상기 물리적 직접 메모리 액세스 채널 리소스(220) 및 상기 물리적 직접 메모리 액세스 제어 블럭(206)으로 로드하는 것을 특징으로 하는 직접 메모리 액세스 엔진.
  10. 제 8항 또는 제 9항에 있어서, 상기 직접 메모리 액세스 엔진(150)은 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 채널에 대한 직접 메모리 액세스 요청 라인과 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 활성 채널에 대한 직접 메모리 액세스 확인 라인을 포함하며, 상기 직접 메모리 액세스 엔진(150)은,
    상기 직접 메모리 액세스 요청 라인을 수신하고 상기 직접 메모리 액세스 확인 라인을 제공하기 위한 직접 메모리 액세스 요청/확인 포트 블럭(212)을 더 포함하는 것을 특징으로 하는 마이크로컨트롤러.
  11. 제 10항에 있어서, 상기 직접 메모리 액세스 요청/확인 포트 블럭(212)은,
    상기 활성 가상 직접 메모리 액세스 채널에 대응하는 직접 메모리 액세스 확인 신호를 상기 직접 메모리 액세스 제어기(200)로부터 상기 직접 메모리 액세스 확인 라인으로 향하게 하기 위한 조향 로직(214)을 포함하는 것을 특징으로 하는 마이크로컨트롤러.
  12. 제 10항에 있어서, 상기 직접 메모리 액세스 요청/확인 포트 블럭에 연결되어, 상기 직접 메모리 액세스 요청/확인 포트 블럭에 직접 메모리 액세스 확인 신호를 제공함과 아울러 상기 직접 메모리 액세스 요청/확인 포트 블럭으로부터 직접 메모리 액세스 확인 신호를 수신하는 디바이스를 더 포함하는 것을 특징으로 하는 마이크로컨트롤러.
  13. 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진을 이용하여 직접 메모리 액세스 전송을 제어하는 방법 - 여기서,
    상기 직접 메모리 액세스 엔진(150)은 물리적 직접 메모리 액세스 제어 블럭(206)과, 물리적 직접 메모리 액세스 채널 리소스(220)와, 다수의 가상 직접 메모리 액세스 채널들(202)과, 그리고 물리적 직접 메모리 액세스 채널(204)을 가진 직접 메모리 액세스 제어기(200)를 포함하고,
    상기 다수의 가상 직접 메모리 액세스 채널들은 상기 물리적 직접 메모리 액세스 제어 블럭(206) 및 상기 물리적 직접 메모리 액세스 채널 리소스(220)를 공유하며,
    상기 직접 메모리 액세스 엔진은 상기 다수의 가상 직접 메모리 액세스 채널들(202)에 대한 파라미터들을 저장하는 파라미터 테이블을 가지는 메모리(208)를 더 포함하며- 으로서,
    상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 제 1 활성 가상 직접 메모리 액세스 채널에 대한 파라미터들을 상기 파라미터 테이블(210)로부터 상기 직접 메모리 액세스 제어기(200)에 로드하는 단계와; 그리고
    상기 직접 메모리 액세스 제어기에 로드된 상기 파라미터들에 근거하여 상기 물리적 직접 메모리 액세스 채널을 통해 상기 제 1 활성 가상 직접 메모리 액세스 채널에 대한 직접 메모리 액세스 전송을 수행하는 단계를 포함하는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  14. 제 13항에 있어서, 상기 다수의 가상 직접 메모리 액세스 채널들(202) 중 제 2 활성 가상 직접 메모리 액세스 채널에 대한 파라미터들을 상기 파라미터 테이블(210)로부터 상기 직접 메모리 액세스 제어기(200)에 로드하는 단계와; 그리고
    상기 직접 메모리 액세스 제어기에 로드된 상기 파라미터들에 근거하여 상기 물리적 직접 메모리 액세스 채널을 통해 상기 제 2 활성 가상 직접 메모리 액세스 채널에 대한 직접 메모리 액세스 전송을 수행하는 단계를 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  15. 제 13항에 있어서, 상기 로드하는 단계는 실행 유닛(100)에 의해 수행되는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  16. 제 13항에 있어서, 상기 직접 메모리 액세스 전송을 수행하는 단계는 상기 직접 메모리 액세스 제어 블럭(206)에 의해 제어되는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  17. 제 13항에 있어서, 마이크로컨트롤러에 상기 직접 메모리 액세스 엔진(150)을 제공하는 단계를 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  18. 제 13항에 있어서, 상기 로드하는 단계는 상기 파라미터들의 일부를 상기 물리적 직접 메모리 액세스 채널 리소스(220)에 로드하는 단계를 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  19. 제 13항에 있어서, 상기 로드하는 단계는 상기 파라미터들의 일부를 상기 물리적 직접 메모리 액세스 제어 블럭(206)에 로드하는 단계를 더 포함하는 것을 특징으로 하는 직접 메모리 액세스 전송 제어 방법.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020017006363A 1998-11-24 1999-06-29 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진 KR100615659B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/198,797 1998-11-24
US09/198,797 US6260081B1 (en) 1998-11-24 1998-11-24 Direct memory access engine for supporting multiple virtual direct memory access channels

Publications (2)

Publication Number Publication Date
KR20010080515A KR20010080515A (ko) 2001-08-22
KR100615659B1 true KR100615659B1 (ko) 2006-08-25

Family

ID=22734891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017006363A KR100615659B1 (ko) 1998-11-24 1999-06-29 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진

Country Status (6)

Country Link
US (1) US6260081B1 (ko)
EP (1) EP1131732B1 (ko)
JP (1) JP4562107B2 (ko)
KR (1) KR100615659B1 (ko)
DE (1) DE69903061T2 (ko)
WO (1) WO2000031648A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763448B1 (en) * 1999-02-16 2004-07-13 Renesas Technology Corp. Microcomputer and microcomputer system
US6622181B1 (en) * 1999-07-15 2003-09-16 Texas Instruments Incorporated Timing window elimination in self-modifying direct memory access processors
US6408345B1 (en) * 1999-07-15 2002-06-18 Texas Instruments Incorporated Superscalar memory transfer controller in multilevel memory organization
US6785743B1 (en) * 2000-03-22 2004-08-31 University Of Washington Template data transfer coprocessor
US7075565B1 (en) * 2000-06-14 2006-07-11 Landrex Technologies Co., Ltd. Optical inspection system
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
KR100403620B1 (ko) 2001-02-28 2003-10-30 삼성전자주식회사 채널 활용율을 높이는 통신 시스템 및 그 방법
US6839797B2 (en) 2001-12-21 2005-01-04 Agere Systems, Inc. Multi-bank scheduling to improve performance on tree accesses in a DRAM based random access memory subsystem
EP1341092A1 (en) * 2002-03-01 2003-09-03 Motorola, Inc. Method and arrangement for virtual direct memory access
US6941390B2 (en) * 2002-11-07 2005-09-06 National Instruments Corporation DMA device configured to configure DMA resources as multiple virtual DMA channels for use by I/O resources
JP2005221731A (ja) * 2004-02-05 2005-08-18 Konica Minolta Photo Imaging Inc 撮像装置
US20050262275A1 (en) * 2004-05-19 2005-11-24 Gil Drori Method and apparatus for accessing a multi ordered memory array
CN100432968C (zh) * 2004-07-09 2008-11-12 上海奇码数字信息有限公司 存储器直接存取装置及其数据传输方法
JP4499008B2 (ja) * 2005-09-15 2010-07-07 富士通マイクロエレクトロニクス株式会社 Dma転送システム
KR100891508B1 (ko) * 2007-03-16 2009-04-06 삼성전자주식회사 가상 디엠에이를 포함하는 시스템
US20080295097A1 (en) * 2007-05-24 2008-11-27 Advanced Micro Devices, Inc. Techniques for sharing resources among multiple devices in a processor system
US8417842B2 (en) * 2008-05-16 2013-04-09 Freescale Semiconductor Inc. Virtual direct memory access (DMA) channel technique with multiple engines for DMA controller
US7979601B2 (en) * 2008-08-05 2011-07-12 Standard Microsystems Corporation External direct memory access of embedded controller memory
KR20160007859A (ko) * 2014-07-04 2016-01-21 삼성전자주식회사 컴퓨팅 시스템 및 이의 동작 방법.
KR102254676B1 (ko) 2014-10-31 2021-05-21 삼성전자주식회사 이미지를 실시간으로 처리할 수 있는 이미지 처리 회로와 이를 포함하는 장치들
KR102391518B1 (ko) 2015-09-15 2022-04-27 삼성전자주식회사 기준 전류 발생 회로와 이를 구비하는 반도체 집적 회로
JP7122969B2 (ja) * 2016-02-29 2022-08-22 ルネサス エレクトロニクス アメリカ インコーポレイテッド マイクロコントローラのデータ転送をプログラミングするシステムおよび方法
US10037150B2 (en) 2016-07-15 2018-07-31 Advanced Micro Devices, Inc. Memory controller with virtual controller mode

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619727A (en) * 1995-03-08 1997-04-08 United Microelectronics Corp. Apparatus for a multiple channel direct memory access utilizing a virtual array technique
EP0772131A2 (en) * 1995-11-03 1997-05-07 Sun Microsystems, Inc. Method and apparatus for support of virtual channels for the transfer of data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5898893A (ja) * 1981-12-09 1983-06-11 Toshiba Corp 情報処理装置
JPS6249552A (ja) * 1985-08-29 1987-03-04 Toshiba Corp Dma装置
US4901234A (en) * 1987-03-27 1990-02-13 International Business Machines Corporation Computer system having programmable DMA control
JPH081631B2 (ja) * 1987-04-30 1996-01-10 ジーイー横河メディカルシステム株式会社 Dma制御装置
US5392404A (en) * 1992-06-22 1995-02-21 International Business Machines Corp. Bus control preemption logic
US6026443A (en) * 1992-12-22 2000-02-15 Sun Microsystems, Inc. Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface
JPH06259341A (ja) * 1993-03-03 1994-09-16 Mitsubishi Electric Corp 論理チャネルリセット装置及び回線情報表示装置
JPH0744486A (ja) * 1993-08-02 1995-02-14 Hitachi Ltd 入出力制御装置
JPH0883233A (ja) * 1994-09-14 1996-03-26 Fujitsu Ltd チャネル制御装置
JPH08340349A (ja) * 1995-06-12 1996-12-24 Fujitsu Ltd 接続制御方法及びその方法を用いた通信処理装置
US5751951A (en) * 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
EP0803821A3 (en) 1996-04-26 1998-01-28 Texas Instruments Incorporated DMA channel assignment in a data packet transfer device
US5875289A (en) * 1996-06-28 1999-02-23 Microsoft Corporation Method and system for simulating auto-init mode DMA data transfers
JPH1093580A (ja) 1996-09-18 1998-04-10 Hitachi Ltd データ処理装置の制御方法およびデータ処理装置
US5832246A (en) * 1996-12-03 1998-11-03 Toshiba America Information Systems, Inc. Virtualization of the ISA bus on PCI with the existence of a PCI to ISA bridge

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619727A (en) * 1995-03-08 1997-04-08 United Microelectronics Corp. Apparatus for a multiple channel direct memory access utilizing a virtual array technique
EP0772131A2 (en) * 1995-11-03 1997-05-07 Sun Microsystems, Inc. Method and apparatus for support of virtual channels for the transfer of data

Also Published As

Publication number Publication date
DE69903061T2 (de) 2003-06-05
WO2000031648A1 (en) 2000-06-02
DE69903061D1 (de) 2002-10-24
EP1131732A1 (en) 2001-09-12
US6260081B1 (en) 2001-07-10
EP1131732B1 (en) 2002-09-18
JP2002530778A (ja) 2002-09-17
KR20010080515A (ko) 2001-08-22
JP4562107B2 (ja) 2010-10-13

Similar Documents

Publication Publication Date Title
KR100615659B1 (ko) 다수의 가상 직접 메모리 액세스 채널들을 지원하기 위한 직접 메모리 액세스 엔진
KR100420706B1 (ko) 가변폭버스의동시적인액세스를이용하는다중프로세서시스템에서i/o제어를위한방법및시스템
KR100420707B1 (ko) 가변폭버스의동시적인액세스를이용하는다중프로세서시스템에서버스중재를위한방법및시스템
KR970000842B1 (ko) 정보 처리 시스템 및 컴퓨터 시스템
US5619726A (en) Apparatus and method for performing arbitration and data transfer over multiple buses
US6272582B1 (en) PCI-PCI bridge allowing controlling of a plurality of PCI agents including a VGA device
US5301282A (en) Controlling bus allocation using arbitration hold
US5577230A (en) Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
KR100296718B1 (ko) 다중프로세서 시스템에서 가변폭 버스를 동시에 액세스하기 위한 방법 및 시스템
KR100847968B1 (ko) 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법
JPH071495B2 (ja) データ処理システム
JP2002222163A (ja) グローバルdmaアクセス用の結合サブシステムメモリバスを有するマルチコアdspデバイス
US5859987A (en) Method and apparatus for providing multiple configuration reset modes for an intelligent bridge
KR20060028705A (ko) 재 어드레스 가능한 가상 dma 제어 및 상태 레지스터들
US5933613A (en) Computer system and inter-bus control circuit
US7243178B2 (en) Enable/disable claiming of a DMA request interrupt
US20030236941A1 (en) Data processor
US6327636B1 (en) Ordering for pipelined read transfers
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
US6081861A (en) PCI migration support of ISA adapters
US5892977A (en) Apparatus and method for read-accessing write-only registers in a DMAC
EP1231540A2 (en) Direct memory access controller
JPH10283302A (ja) 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム
CN114281726B (zh) 用于soc芯片的系统架构及外设通信方法
JP2002342266A (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: 20120727

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130723

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140722

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150717

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 13

EXPY Expiration of term