KR100240922B1 - 컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 방법 - Google Patents

컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 방법 Download PDF

Info

Publication number
KR100240922B1
KR100240922B1 KR1019970010768A KR19970010768A KR100240922B1 KR 100240922 B1 KR100240922 B1 KR 100240922B1 KR 1019970010768 A KR1019970010768 A KR 1019970010768A KR 19970010768 A KR19970010768 A KR 19970010768A KR 100240922 B1 KR100240922 B1 KR 100240922B1
Authority
KR
South Korea
Prior art keywords
dma
dma controller
slave
computer system
bus
Prior art date
Application number
KR1019970010768A
Other languages
English (en)
Other versions
KR970076291A (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 KR970076291A publication Critical patent/KR970076291A/ko
Application granted granted Critical
Publication of KR100240922B1 publication Critical patent/KR100240922B1/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
    • 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/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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)
  • Computer And Data Communications (AREA)

Abstract

퍼스널 컴퓨터 상호접속 버스 즉, "PCI" 버스처럼 슬레이브 장치를 지원하지 않는 컴퓨터 시스템 버스상에서 슬레이브 직접 메모리 액세스(slave direct memory access ; 이하 슬레이브 DMA라 칭함)를 지원하는 방법을 제공한다. 이 방법을 이용하여, 로컬 DMA 콘트롤러를 갖는 어댑터 카드 혹은 마이크로프로세서가 버스마스터처럼 동작할 수 있게 되어, 슬레이브 DMA 동작동안 통상 사용되는 시스템 DMA 콘트롤러를 시뮬레이션할 수 있다. 선택적으로, 이 방법은, 로컬 DMA 콘트롤러가 현재의 시스템 DMA 콘트롤러와 작동하여, 시스템 DMA 콘트롤러에서 레지스터들을 폴링(polling)할 때 올바른 상태를 어플리케이션 소프트웨어가 수신할 수 있도록 한다. 본 발명의 방법은 시스템 DMA 콘트롤러가 마치 DMA 전송을 제어중인 것처럼 동작하도록 만든다. 이런 방법으로 시스템 DMA 콘트롤러와 로컬 DMA 콘트롤러 사이의 장치경쟁(device contention)이 방지된다.

Description

컴퓨터 시스템 버스상에서 슬레이브 직접 메모리 액세스 에뮬레이션하는 방법{METHOD FOR SLAVE DMA EMULATION ON A COMPUTER SYSTEM BUS}
본 발명은 컴퓨터 시스템 버스를 통해 이용되는 직접 메모리 액세스(direct memory access ; DMA) 방법에 관한 것이다. 보다 상세하게 설명하면, 본 발명은 소위 "슬레이브(slave)" DMA장치들을 본래 지원하지 않는 컴퓨터 시스템 버스를 통해 슬레이브 DMA 에뮬레이션이 수행될 수 있도록 하는 방법에 관한 것이다.
사업이나 개인생활의 모든 면에서 퍼스널 컴퓨터의 사용이 증가함에 따라 이런 퍼스널 컴퓨터에 끼워넣는 주변 어댑터 카드의 성능도 점점 향상될 것이 요구된다. 어댑터 카드는 사용자에 의해 요구되는 특정 기능을 수행하는 전용 회로를 포함한다. 예를들면, 어댑터 카드는 모뎀, 사운드프로세서 또는 비디오프로세서로서 동작할 수 있다. 주변 어댑터 카드는 통상 디지탈 프로세서나 또는 내장형 콘트롤러처럼 전용 마이크로프로세서를 포함한다. 주변 어댑터 카드의 성능을 강화하는 한가지 방법은 데이터가 호스트 컴퓨터의 주 시스템 메모리와 어댑터 카드 사이에서 직접 교환되도록 하는 것이다. 이러한 직접교환은 업계에서 직접 메모리 액세스 혹은 "DMA"로 알려져 있다. DMA기능을 이용하는 컴퓨터 시스템 버스의 동작 원리는 본 기술 분야에서 잘 알려져 있고, 오늘날에는 많은 종류의 컴퓨터 시스템 버스들이 DMA능력을 갖는다. 예를들면, IBM 호환 퍼스널 컴퓨터에 널리 보급된 업계 표준 아키텍쳐 즉 "ISA" 버스는 DMA능력을 제공한다.
ISA 버스를 포함하여 DMA가 가능한 몇몇 컴퓨터 시스템 버스들은 상이한 두 종류의 DMA장치 즉, 마스터(master) 장치 및 슬레이브(slave) 장치와 함께 동작한다. 본 명세서에서는 이것을 "마스터/슬레이브" 컴퓨터 시스템 버스라고 칭한다. 슬레이브 장치의 동작을 제공하기 위해, 버스는 시스템 DMA 콘트롤러에 접속되어야 하고, 이 시스템 DMA콘트롤러는 슬레이브 DMA 데이터가 전송되는 동안 데이터의 흐름을 관리하는 역할을 한다. 그러나, 마스터 장치와의 DMA 전송시에는 시스템 DMA 콘트롤러가 사용되지 않는다. 실제, DMA 콘트롤러는 주변 카드상에 위치한다. 이러한 DMA 콘트롤러를 갖는 주변 카드는 버스마스터(busmaster) 카드라고 불리운다. 1995년 11월 2일에 출원된 미국 특허 출원 제 08/556,773호는 버스마스터로서 동작하는 어댑터 카드의 잇점 몇가지를 개시하고 있으며, 이 미국출원은 본 명세서에서 참조로 이용되고 있다. 컴퓨터 시스템 버스상의 버스마스터 카드와 함께, 어댑터 카드상의 DMA콘트롤러 즉, 로컬 DMA 콘트롤러는 DMA 데이터 전송동안 버스를 제어하고 데이터 흐름을 관리한다.
몇몇 주변 어댑터 카드는 DMA 데이터 전송을 필요로 하면서도, 로컬 DMA 콘트롤러를 구비하지 않는다. 이러한 어댑터 카드는 자신과 컴퓨터 시스템의 주 메모리 사이에 DMA 데이터 전송을 행하기 위해서 항상 "슬레이브" 장치로서 동작한다. 슬레이브 장치와 함께, 호스트 컴퓨터 시스템에서 실행되는 디바이스 드라이버 소프트웨어는 행해질 DMA 데이터 전송의 시작 어드레스와 깊이(depth)를 시스템 DMA 콘트롤러에게 통지한다. 다음, 어댑터 카드상의 슬레이브 장치는 시스템 DMA 콘트롤러에게 버스를 점유한 다음 자신과 호스트 컴퓨터 메모리 사이의 DMA 데이터 전송을 관리할 것을 요구한다. 이 요구는 버스내의 특정한 일련의 접속들(a specific set of connections)을 통해 시스템 DMA 콘트롤러에 통신된다. 업계 표준 아키텍쳐(ISA) 버스에서, 어댑터 카드는 DMA 요구(DMA request) 라인 즉, "DRQ"라인을 통해 시스템 DMA 콘트롤러에게 전송(a transfer)을 수행할 것을 요구하고, DMA 긍정 응답(DMA acknowledgment) 라인 즉, "DACK" 라인을 통해 시스템 DMA 콘트롤러로부터 긍정 응답 신호를 수신한다. 이 시스템 DMA 콘트롤러는 버스를 점유하고 버스마스터 카드와 똑같은 방식으로 전송을 관리한다.
슬레이브 장치가 갖는 문제점은 이들이 시스템 DMA 콘트롤러를 갖는 관련 버스에 좌우된다는 것이다. 몇몇 컴퓨터 시스템 버스는 시스템 DMA 콘트롤러를 갖지 않으며 따라서 슬레이브 장치와는 동작하지 않으면서 버스마스터 장치와 동작한다. 설명을 위해 본 명세서에서는 이러한 버스를 "마스터 전용(master-only)" 컴퓨터 시스템 버스라고 부를 것이다. 마스터 전용 버스의 일예로, 퍼스널 컴퓨터 상호접속 버스 즉 "PCI" 버스를 들 수 있다. PCI 버스상에서, 버스 사이클을 개시하는 모든 장치(bus cycle initiators)는 버스마스터 장치로서 동작해야 한다. 슬레이브 DMA 지원이나 시스템 DMA 콘트롤러는 존재하지 않는다. PCI 버스는 고 대역폭 및 고속 클럭을 제공함으로써 오늘날의 고성능의 IBM 호환 퍼스널 컴퓨터에 널리 이용된다. 이러한 특징들의 잇점을 살리기 위해, 어댑터 카드 설계자들은 PCI방식의 주변 어댑터 카드를 설계하고 있다.
이러한 PCI카드들 중 하나를 이용할 때 발생하는 문제점은 어떤 경우에 ISA방식의 카드와 함께 동작하도록 설계된 어플리케이션 소프트웨어가 DMA 데이터 전송에 대해 카드를 슬레이브로서 동작시키도록 되어 있다는 것이다. 컴퓨터 사용자들은 PCI방식의 어댑터 카드와 함께 자신의 기존의 소프트웨어 어플리케이션을 이용하기를 원한다. PCI방식의 어댑터 카드는 유사한 회로를 이용하여 ISA방식의 카드와 동일한 기능을 수행할 것이다. 설명을 위해 본 명세서에서는 어댑터 카드상에서 특수한 목적의 기능을 수행하는 회로를 에뮬레이션 회로(emulation circuitry)라고 부른다. 이 회로는 사운드 생성, 통신, 또는 그 밖의 다른 기능을 수행할 수도 있다. 만약 어댑터 카드를 위한 어플리케이션 소프트웨어가 ISA방식의 카드를 "슬레이브" 장치로서 동작시킬 경우, 카드상의 DMA 콘트롤러가 버스마스터 장치로서의 동작뿐 아니라 슬레이브 동작을 에뮬레이트하지 않는 한, 이 소프트웨어는 PCI방식의 카드와 작동하지 않을 것이다. 이러한 상황은 널리 보급되어 있는 사운드블러스터(SoundBlasterTM) 호환 어댑터 카드나 많은 게임 어플리케이션에 대해서도 마찬가지이다. 그러나, 만약 해당 퍼스널 컴퓨터가 마스터 전용 컴퓨터 시스템 버스와 마스터/슬레이브 컴퓨터 시스템 버스를 둘다 갖는다면, 이 퍼스널 컴퓨터는 역시 시스템 DMA 콘트롤러도 구비할 것이다. 이 경우, 카드가 슬레이브 장치로서 동작하도록 하기 위해 어댑터 카드상의 로컬 DMA콘트롤러가 시스템 DMA콘트롤러로서 동작하면, 용납될 수 없는 장치 경쟁(contention)이 발생할 것이다. 시스템 DMA콘트롤러가 컴퓨터 시스템에 제공될 가능성도 고려하여 PCI 버스같은 마스터 전용 컴퓨터 시스템 버스상에서 슬레이브 DMA동작을 에뮬레이트하는 방법이 필요하다.
본 발명은 어댑터 카드에 대해 두 개의 모드로 동작할 수 있는 로컬 DMA 콘트롤러를 구비하는 처리회로를 동작시키는 방법을 제공한다. 이 로컬 DMA 콘트롤러는, 버스마스터로서 동작하면서도 버스에 대해 적당한 레지스터를 제공함으로써 어플리케이션이 슬레이브 장치 및 시스템 DMA 콘트롤러를 인식하도록 만드는 완전 DMA 모드를 제공할 수 있다. 또한, 본 발명의 로컬 DMA 콘트롤러가 마스터 전용 버스와 마스터/슬레이브 버스를 둘다 갖는 호스트 컴퓨터 시스템에 설치(installed)될 때에는 슬레이브 DMA 에뮬레이션 모드로도 동작한다. 슬레이브 에뮬레이션 모드는 통상 ISA 버스와 PCI 버스를 둘다 포함하는 IBM 호환가능 퍼스널 컴퓨터에서 상당히 유용하다. 이런 종류의 퍼스널 컴퓨터는 적절한 동작이 유지되기 위해서 어댑터 카드상에서 로컬 DMA 콘트롤러와 경쟁해서는 안되는 시스템 DMA 콘트롤러를 갖는다.
본 발명의 방법은 디지탈 신호 프로세서 즉 DSP같은 전용 마이크로프로세서상에서 바람직하게 구현된다. 코어 로직(core logic)에 덧붙여서, 이러한 마이크로프로세서에는 로컬 DMA 콘트롤러라고 불리우는 자신의 내장 DMA 콘트롤러가 함께 제공된다. 본 발명에 따른 로컬 DMA 콘트롤러는 마스터 전용 버스 인터페이스 로직에 대한 접속뿐만 아니라, 마스터/슬레이브 컴퓨터 시스템 버스와 마스터 전용 컴퓨터 시스템 버스를 둘다 갖는 컴퓨터 시스템에 포함된 시스템 DMA 콘트롤러에 대한 접속도 구비한다. 마스터/슬레이브 버스가 ISA 버스인 시스템을 위해 설계된 마이크로프로세서에서는 이러한 접속들은 이전에 논의된 DRQ 및 DACK접속들이다. 또한 마이크로프로세서는 로컬 DMA 콘트롤러와 코어 로직 사이에 배치된 마스터 전용 버스 인터페이스 로직과, 로컬 DMA 콘트롤러와 코어 로직 사이에 배치된 에뮬레이션 로직을 포함한다. 마스터 전용 버스 인터페이스 로직은 마스터 전용 버스 인터페이스를 구비한다.
전술한 로컬 DMA 콘트롤러는 통상 어댑터 카드상에서 호스트 컴퓨터 시스템에 이용된다. 전술한 처리회로는 호스트 컴퓨터 시스템에서 어떠한 시스템 DMA 콘트롤러와도 작업하지 않도록 설계된 어댑터 카드상에 설치될 수 있다. 이러한 카드는 흔히 마스터 전용 버스에 대한 커넥터(connector)만을 갖는다. 이 경우, 시스템 DMA 콘트롤러에 대한 접속들은 사용되지 않는다. 또한 본 발명은 마스터 전용 컴퓨터 시스템 버스와 마스터/슬레이브 컴퓨터 시스템 버스에 대한 하나의 커넥터를 이용하여 어댑터 카드상에서 사용될 수 있다. 어댑터 카드상의 처리회로는 마스터/슬레이브 컴퓨터 시스템 버스를 통해 시스템 DMA 콘트롤러에 접속된다. 어느 경우든 로컬 DMA 콘트롤러나 혹은 에뮬레이션 로직처럼 어댑터 카드상의 여러 구성 성분들 중 몇 개는 독립적인 칩상에 존재할 수 있지만, 이들이 모두 단일 마이크로프로세서상에 집적되는 것이 바람직하다.
완전 DMA 모드에서, 로컬 DMA 콘트롤러는, DMA 전송의 워드 카운트 및 시작 어드레스를 수신하고, 요구를 수신하고, 마스터 전용 컴퓨터 시스템 버스를 통해 DMA 전송을 수행하며, 내부 상태 레지스터를 갱신한 다음, 전송이 종료되면 에뮬레이션 로직에게 통지함으로써 동작한다. 슬레이브 DMA 에뮬레이션 모드에서, 로컬 DMA 콘트롤러는 DMA 동작(activity)을 위해 마스터 전용 버스를 모니터하고, DMA 제어 정보를 래치(latch)시키며, 마스터 전용 버스상에서 전송을 수행함과 시에 시스템 DMA 콘트롤러에게 마스터/슬레이브 버스상에서 전송을 수행할 것을 지시하고, 에뮬레이션 로직에게 전송이 종료되었음을 통지한다. 전술한 두 경우에서 데이터를 모두 옮기는데 한 번 이상의 전송이 필요할 경우에는 프로세스가 반복될 수도 있다.
본 발명은, 시스템 DMA 콘트롤러가 없어도 로컬 DMA 콘트롤러를 완전 DMA 모드로 동작시킬 수 있을 뿐만 아니라 시스템 DMA 콘트롤러를 가질 경우에는 로컬 DMA 콘트롤러를 슬레이브 DMA 에뮬레이션 모드로 동작시킬 수 있는 융통성이 있는 방법을 제공한다. 본 발명은 PCI 버스같은 마스터 전용 컴퓨터 시스템 버스를 구비하는 컴퓨터 시스템에서 이용될 수 있다. 또한 본 발명은, 시스템 DMA 콘트롤러를 구비하며 예컨대 ISA 버스같은 마스터/슬레이브 컴퓨터 시스템 버스와 마스터 전용 컴퓨터 시스템 버스를 둘다 갖는 컴퓨터 시스템에서 이용될 수 있다. 본 발명은 모든 종류의 시스템에 장치 경쟁 문제를 유발시키지 않으면서 마스터 및 슬레이브 DMA 동작을 제공한다.
도 1은 마스터 전용 컴퓨터 시스템 버스에 접속되는 본 발명에 따른 처리회로를 도시하는 도면
도 2는 마스터 전용 컴퓨터 시스템 버스와 마스터/슬레이브 컴퓨터 시스템 버스에 접속되는 본 발명에 따른 처리회로를 도시하는 도면
도 3은 본 발명의 로컬 DMA 콘트롤러가 완전 DMA 모드로 동작하는 방법을 도시하는 도면
도 4는 본 발명의 로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA기록을 수행하는 방법을 도시하는 도면
도 5는 본 발명의 로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA판독을 수행하는 방법을 도시하는 도면
도 6은 본 발명이 구현된 어댑터 카드를 포함하는 호스트 컴퓨터 시스템을 도시하는 도면
도 7은 시스템 머더보드(motherboard)상에 본 발명이 구현된 호스트 컴퓨터 시스템을 도시하는 도면
도면의 주요 부분에 대한 부호의 설명
102, 202 : 로컬 DMA 콘트롤러 103, 203 : 버스 인터페이스
104, 204 : 에뮬레이션 로직 105, 205 : 코어 로직
110, 210 : 마스터 전용 버스 207 : 시스템 DMA 콘트롤러
211 : 마스터/슬레이브 버스
도 1은 예컨대 PCI 버스같은 마스터 전용 컴퓨터 시스템 버스(110)에 접속된 본 발명의 처리회로(106)를 도시한다. 바람직한 실시예에서, 처리회로(106)는 예컨대 디지탈 신호 프로세서같은 단일 마이크로프로세서로 집적된다. 마이크로프로세서 코어(105)는 버스 인터페이스 로직(103)과 에뮬레이션 로직(104)에 접속된다.
에뮬레이션 로직(104)은 어댑터의 사용자 기능(들)을 구현하는 하드웨어를 제공한다. 이러한 기능들은 사운드 생성, 모뎀 기능들, 비디오, 음성 인식, 텔레폰 응답 기능, 또는 이들 기능이나 다른 기능들의 소정 결합일 수도 있다. 에뮬레이션 로직(104)은 예컨대 마이크로폰이나 스피커같은 호스트 컴퓨터 시스템의 외부장치를 위한 추가적인 커넥터를 포함할 수도 있다. 도시를 간단히 하기 위해, 이러한 추가적인 커넥터는 도시하지 않았다.
버스 인터페이스 로직(103)과 에뮬레이션 로직(104)은 둘다 로컬 DMA 콘트롤러(102)에 접속된다. 본 발명이 이용되는 어댑터가 PCI 버스와 동작하도록 설계되었다고 가정하면, 로컬 DMA 콘트롤러는 마스터 전용 버스 인터페이스 로직(103)과 마스터 전용 버스 인터페이스(108)를 통해 PCI 버스(110)에 접속된다. PCI 버스(110)는 CPU브리지를 통해 호스트 시스템 CPU(101)에 접속된다.
버스 인터페이스 로직(103)은 내부의 로직 구성요소(102, 105)(전술되었음)와 마스터 전용 버스 사이에 핸드셰이킹(handshaking) 인터페이스 제어를 제공한다. 이 제어에 의해 코어 로직(105)과 로컬 DMA 콘트롤러(102)는 다양한 버스 아키텍쳐로 이용될 수 있다. PCI 버스인 경우, 버스 인터페이스는 로컬 DMA 콘트롤러와 코어 로직의 로컬 인터페이스 프로토콜을 지원하는 PCI브리지이다. CPU브리지는 호스트 CPU와 특정 마스터 전용 컴퓨터 시스템 버스 사이에 핸드셰이킹을 제공한다. 또한 이 CPU브리지는 예컨대 메모리 콘트롤러나 또는 비디오 콘트롤러같이 CPU에 밀접하게 결합된(tightly coupled) 다른 로직 구성요소를 포함할 수 있다. PCI시스템의 경우, CPU브리지는 DRAM 콘트롤러를 포함한다.
로컬 DMA 콘트롤러(102)는 시스템 DMA 콘트롤러에 대한 접속(109)을 갖는다. 만약 로컬 DMA 콘트롤러가 ISA 버스가 존재하는 머신(machine)내에서 ISA 아키텍쳐와 작동하도록 설계되었다면, 이러한 접속들은 DRQ와 DACK이다. 도 1에서, 어댑터 카드는 마스터 전용 PCI 버스에만 접속되므로, 접속들(109)은 사용되지 않는다. 이 경우, 카드의 기능이 시스템에서 실행되는 소프트웨어에 의해 슬레이브 장치로서 액세스될 것을 필요로 하면, 로컬 DMA 콘트롤러는 완전 DMA 모드로 동작한다. 다음, 로컬 DMA 콘트롤러는 시스템 DMA 콘트롤러를 에뮬레이트한다. 본 발명의 바람직한 실시예에서, 카드의 기능은 원래 ISA 버스상에서 구현되었고, 로컬 DMA 콘트롤러는 인텔 8237 DMA 콘트롤러―이것은 ISA 즉 업계 표준 아키텍쳐를 이용하는 퍼스널 컴퓨터에 일반적으로 보급되어 있다―를 에뮬레이트한다.
로컬 DMA 콘트롤러는 8237의 레지스터와 동일한 다음의 DMA 레지스터들을 제공함으로써 8237 DMA 콘트롤러를 에뮬레이트한다. 본 명세서에서는 하나의 DMA 채널만을 기술하였다. 만약 다른 DMA 채널이 선택된다면, 해당 채널용의 적절한 레지스터들이 사용된다. 인텔 8237 콘트롤러에 관련된 레지스터들과 그 기능에 관한 내용은 1989년판 인텔 주변장치 데이터 북(Intel Peripheral Data Book) 또는 1990년 12월판 CS8233 PEAK/386 AT 칩세트 데이터 북(Chipset Data Book)에 상세히 설명되어 있으며, 이 데이터 북들은 본 명세서에서 참조로 이용하고 있다(표 1참조).
Figure pat00001
로컬 DMA 콘트롤러(102)는 완전 DMA 모드에서 적절한 채널을 위해 프로그램된 후 이러한 모든 레지스터들에 대해 전부 액세스할 것을 요구한다.
도 3은 일단 로컬 DMA 콘트롤러가 적절한 채널용으로 프로그램된 뒤 DMA 전송을 수행하기 위해 완전 DMA 모드에서 이용하는 방법을 도시한다. 채널은 파워-업 즉 프로그램 로드(load) 시에 시스템 BIOS에 의해 설정되거나 또는 디바이스 드라이버에 의해 설정된다. 단계(301)에서, 로컬 DMA 콘트롤러는 워드 카운트, 베이스 어드레스 및 후속 DMA 전송의 방향을 입력한다. 단계(302)에서, 호스트 컴퓨터 시스템에서 실행중인 어플리케이션 소프트웨어 또는 소프트웨어 드라이버는 DMA 데이터 전송을 요구하고, 로컬 DMA 콘트롤러는 에뮬레이션 로직으로부터의 요구를 수신한다. 단계(303)에서, 로컬 DMA 콘트롤러는 버스를 통해 전송을 수행한다. 로컬 DMA 콘트롤러는 버스 요구를 개시한 후, 승인(grant)을 수신한 다음, 적절한 메모리 어드레스에 대해 판독 및/또는 기록 버스 사이클을 수행함으로써 전송을 수행한다. 프로세스가 종료되면, 로컬 DMA 콘트롤러는 단계(304)에서 자신의 내부 어드레스, 워드 카운트 및 상태 레지스터를 갱신한다. 이 단계는 어플리케이션 또는 드라이버 소프트웨어가 종종 이들 레지스터들의 상태를 체크하기 때문에 필수적이다. 단계(305)에서, 로컬 DMA 콘트롤러는 전송이 종료되었음을 에뮬레이션 로직에게 통지한다. 단계(306)에서는 전송이 종료되기 전에 이동시킬 데이터가 더 있는지를 판정한다. 만약 전송되어야 할 데이터가 아직 남아 있다면, 다른 전송 요구가 단계(302)부터 시작하여 처리된다. 전송이 종료되면, 이 프로세스는 다음에 DMA 전송이 요구될 때 반복된다.
도 2는 슬레이브 DMA 에뮬레이션 모드에서 동작하는 본 발명의 어댑터 카드를 도시한다. 전용 회로 또는 마이크로프로세서(206)는 도 1의 것과 동일한 구성요소들 즉, 마이크로프로세서 코어(205), 버스 인터페이스(208), 버스 인터페이스 로직(203), 에뮬레이션 로직(204) 및 로컬 DMA 콘트롤러(202)를 갖는다. 이 경우, 본 발명은, 바람직한 실시예에서 PCI 버스에 해당하는 마스터 전용 버스(210)와 바람직한 실시예에서 ISA 버스에 해당하는 마스터/슬레이브 버스(211)를 둘다 갖는 시스템에서 이용되고 있다. 마스터 전용 버스 인터페이스(208)는 버스 인터페이스 로직(203)을 마스터 전용 버스에 접속시킨다. 다음, 이 마스터 전용 버스는 브리지를 통해 호스트 시스템 CPU(201)에 접속된다.
도 2의 구성에서, 호스트 컴퓨터 시스템은 시스템 DMA 콘트롤러(207)를 갖는다. 이 경우, 시스템 DMA 콘트롤러에 대한 접속들(209) 즉, DRQ 및 DACK는 시스템 DMA 콘트롤러(207)에 접속된다. 이런 접속들은 통상 버스들중 하나를 통해 이루어지지만, 본 발명의 개념을 더 잘 설명하기 위해 DMA 콘트롤러들 사이에 직접 접속된 것으로 도시하였다. 도 2의 구성에 의해 로컬 DMA 콘트롤러(202)는 DMA동작을 위해 PCI 버스를 스누핑(snoop)한다. 만약 에뮬레이션 로직 기능을 갖는 ISA방식의 어댑터 카드가 슬레이브 장치이면, 어플리케이션 소프트웨어 또는 드라이버는 먼저 후속 전송의 시작 어드레스와 깊이를 시스템 DMA 콘트롤러(207)에게 통신함으로써 슬레이브 DMA 전송을 개시하려고 시도할 것이다. 로컬 DMA 콘트롤러(202)는 이 정보를 포착하지만, 올바른 레지스터 상태를 입수하기 위해 시스템 DMA 콘트롤러(207)에게 ISA 버스상에서 전송을 수행할 것을 지시한다. 슬레이브 DMA 기록에 대해, 시스템 DMA 콘트롤러(207)는 ISA 버스에 통상적으로 접속된 풀-업(pull-up) 저항들로 인해 모두 "1"들을 ISA 버스로부터 판독하여, 모두 "1"들을 시스템 메모리에 기록한다. 다음, 로컬 DMA 콘트롤러(202)는 메모리내의 이 데이터를 에뮬레이션 로직(204)에 의해 공급된 올바른 데이터로 바꾼다. DMA판독의 경우, 시스템 DMA 콘트롤러는 데이터를 ISA 버스에 기록하고 이 데이터는 손실될 것이지만, 올바른 데이터는 다시 로컬 DMA 콘트롤러(202)에 의해 에뮬레이션 로직(204)에 기록될 것이다. 이런 방식으로, 시스템 DMA 콘트롤러는 항상 레지스터들의 올바른 상태를 알 것이고, 이것은 어플리케이션 소프트웨어에 의해 폴링될 수는 있지만 실제 DMA 전송에 영향을 미치지는 않을 것이다.
도 4는 슬레이브 DMA 에뮬레이션 모드에서 로컬 DMA 콘트롤러를 이용하여 기록을 수행하는 방법을 예시한다. 단계(401)에서, 로컬 DMA 콘트롤러는 DMA 동작을 위해 버스를 모니터한다. 호스트 시스템 CPU가 후속 전송의 시작 어드레스와 깊이를 포함하는 DMA 제어 정보를 시스템 DMA 콘트롤러에 기록할 때, 로컬 DMA 콘트롤러는 이 정보를 단계(402)에서 래치(latch)한다. 로컬 DMA 콘트롤러는 어댑터상의 에뮬레이션 로직으로부터의 데이터를 단계(403)에서 로컬 DMA 콘트롤러로 전송한다. 단계(410)에서, 로컬 DMA 콘트롤러는 두개의 선택권을 갖는다. 즉, 시스템 DMA 콘트롤러가 마스터/슬레이브 버스상에서 동일한 전송을 수행하도록 요구하기 전에 단계(409)에서 시스템 DMA 콘트롤러의 현재 어드레스를 변경할 수 있다. 그렇지 않고, 단계(404)로 곧장 진행할 수도 있다. 만약 어드레스를 변경한다면, 전송을 요구하기 전에 더미(dummy) 32-비트 바이트 어드레스를 시스템 DMA 콘트롤러에 기록할 것이다. 어드레스 위치는 시스템 초기화동안 미리 할당된다. 현재의 어드레스를 변경함으로써, 로컬 DMA 콘트롤러는 실제 데이터를 기록하기 전에 시스템 DMA 콘트롤러가 예정된 DMA 목표 메모리를 변경(clobber)하지 못하도록 할 수 있다. 호스트 소프트웨어가 특정 값의 변경을 위해 목표 메모리 위치를 항상 판독하는 경우에는 단계(409)가 꼭 필요할 수도 있다.
단계(404)에서, 로컬 DMA 콘트롤러는 시스템 DMA 콘트롤러에게 마스터/슬레이브 버스상에서 똑같은 전송을 수행할 것을 요구하고, 긍정 응답을 수신한다. 이러한 동작은 전술한 것처럼 ISA인 경우는 DRQ 및 DACK신호들에 의해 처리된다. 단계(405)에서는 더미(dummy) 전송이 종료되었는지를 검사한다. 일단 전송이 종료되면, 단계(406)에서, 로컬 DMA 콘트롤러는 실제 데이터를 마스터 전용 버스를 통해 시스템 메모리로 전송한다. 로컬 DMA 콘트롤러는 단계(407)에서 에뮬레이션 로직에게 전송이 종료되었음을 통지한다. 단계(408)에서는 전송이 종료되기 전에 이동시킬 데이터가 더 있는지 판정한다. 만약 데이터가 더 있다면, 프로세스는 단계(403)에서부터 시작하여 반복되고, 그렇지 않다면 프로세스는 처음으로 리셋된다.
전술한 것처럼, 시스템 DMA 콘트롤러는 처음에 메모리에 모두 "1"을 기록한다. 더미 전송이 종료되면 이 데이터는 실제 데이터로 대체되어야 하므로, 단계(405)에서 더미 전송이 종료된 시점을 판정하는 것은 중요하다. 가능한 빨리 시스템 메모리에 실제 데이터를 기록하는 가장 좋은 방법은 마스터 전용 버스를 스누핑함으로써 전송을 직접 모니터하여 전송이 완료되는 시점을 판정하는 것이다. 이 판정을 위해 스누핑 기능을 이용함으로써, 시스템 DMA 콘트롤러가 DACK라인을 표명해제(de-asserting)한 후 메모리에 모두 "1"을 기록할 경우 데이터를 손실할 가능성을 최소화시킨다. 만약 데이터 손실의 가능성이 전혀 없어서 전송 종료 타이밍이 중요하지 않다면, 단계(405)의 판정은 DACK라인에 대한 표명해제를 모니터함으로써 이루어질 수 있다. DACK라인의 표명해제는 시스템 DMA 콘트롤러로부터의 전송이 끝났음을 알리는 긍정 응답으로서 기능한다. 이 방법은 어댑터 카드의 설계를 단순화시킨다.
도 5는 슬레이브 DMA 에뮬레이션 모드에서 로컬 DMA 콘트롤러를 이용하여 DMA 판독을 수행하는 방법을 예시한다. 단계(501)에서 마스터 전용 버스가 모니터된다. 호스트가 DMA 전송할 준비가 되면, 시작 어드레스 및 전송 깊이를 포함하는 DMA 제어 정보가 시스템 DMA 콘트롤러에 기록된다. 로컬 DMA 콘트롤러는 버스를 스누핑하고, 이 정보를 단계(502)에서 래치한다. 다음, 로컬 DMA 콘트롤러가 단계(503)에서 데이터를 수신하는 것과 동시에 단계(504)에서 시스템 DMA 콘트롤러에게 마스터/슬레이브 컴퓨터 시스템 버스를 통해 전송을 수행할 것을 요구한다. 또한 로컬 DMA 콘트롤러는 긍정응답을 수신한다. 요구 및 긍정응답은 DRQ 및 DACK라인을 통해 다루어진다. 로컬 DMA 콘트롤러는 단계(505)에서 시스템 DMA 콘트롤러가 전송을 종료하기를 기다린다. 전송은 DACK라인이 표명해제될 때 종료된다. 단계(506)에서, 로컬 DMA 콘트롤러는 데이터를 에뮬레이션 로직으로 전송한다. 단계(507)에서는 전송이 종료되기 전에 이동시킬 데이터가 더 있는지 검사한다. 만약 데이터가 더 있다면, 프로세스는 단계(503)에서부터 반복되고, 그렇지 않다면 프로세스는 처음으로 리셋된다.
본 발명을 구현한 어댑터 카드는 도 6에 도시된 것처럼 데스크탑 또는 휴대용 컴퓨터 시스템(600)에서 사용된다. 이 시스템은 시스템 유닛(606)과, 키 보드(607) 및 컴퓨터 디스플레이(601)에 대한 접속부들을 포함한다. 이 접속부들은 시스템 유닛의 배면에 있으며 도시되지 않았다. 시스템 중앙 처리 장치 즉 CPU(603)는 시스템의 머더보드에 포함되어 있다. 시스템은 마스터/슬레이브 컴퓨터 시스템 버스와 마스터 전용 컴퓨터 시스템 버스 둘다에 접속된 적어도 하나의 어댑터 카드(608)를 갖는다. IBM 호환 퍼스널 컴퓨터에서, 버스 커넥터의 쌍들(pairs)은 하나의 어댑터 카드(608)가 마스터/슬레이브 버스와 마스터 전용 버스를 모두 인터페이스할 수 있도록 설계된다. 로컬 DMA 콘트롤러와 마이크로프로세서 코어 로직을 포함하는 본 발명을 구현한 회로(605)는 어댑터 카드(606)상에 포함된다. 또한 이 회로는 에뮬레이션 로직과 마스터 전용 버스 인터페이스를 포함한다. 흔히 이 기능들은 단일 디지탈 신호 프로세서 즉 "DSP"로 집적된다. 또한 컴퓨터 시스템은 시스템 DMA 콘트롤러를 포함하는데, 이것은 도면에 도시하지 않았다.
도 7은 컴퓨터 시스템(700)을 예시하며, 이 시스템에는 본 발명을 이루는 회로가 컴퓨터 시스템 유닛의 머더보드상에 포함되어 있다. 컴퓨터 시스템(700)은 시스템 유닛(707), 키 보드(707) 및 컴퓨터 디스플레이(701)에 대한 접속부들로 이루어진다. 이 접속부들은 도시하지 않았다. 이 시스템 유닛은 CPU(703)를 포함한다. 본 발명의 처리회로(705) 즉, 통상적으로 DSP는 CPU(703)와 함께 시스템 유닛의 머더보드상에 포함된다. 처리회로는 마스터 전용 컴퓨터 시스템 버스 및 마스터/슬레이브 컴퓨터 시스템 버스에 대해 하드웨어로 배선되며, 로컬 DMA 콘트롤러, 마이크로프로세서 코어 로직, 에뮬레이션 로직 및 마스터 전용 버스 인터페이스를 포함한다.
본 명세서에서는 전용 어댑터 카드 혹은 호스트 컴퓨터의 머더보드상의 로컬 DMA 콘트롤러가 두 개의 동작 모드를 갖는 본 발명의 특정 실시예를 예시하였다. 로컬 DMA 콘트롤러는 완전 DMA 모드나 슬레이브 DMA 에뮬레이션 모드로 동작할 수 있다. 본 발명은 어댑터를 슬레이브 장치로서 동작시키도록 설계된 소프트웨어적인 방법을 호스트 컴퓨터 시스템에 제공하여 슬레이브 DMA를 지원하지 않는 버스상의 어댑터와도 적절하게 작동할 수 있도록 한다. 비록 본 발명의 특정 실시예가 설명되었지만, 본 기술 분야에서 통상의 지식을 가진 사람이라면 본 발명에 대해 많은 다른 실시예들도 가능함을 인지할 것이다.

Claims (5)

  1. 에뮬레이션 로직을 갖는 어댑터 카드상에 존재하며, 완전 직접 메모리 액세스(DMA) 에뮬레이션이 가능하여 어댑터 카드가 마스터 전용 컴퓨터 시스템 버스에 접속될 때 슬레이브 DMA 기능을 제공할 수 있으며, 마스터/슬레이브 컴퓨터 시스템 버스에 접속된 시스템 DMA 콘트롤러에 대해 접속들을 구비하는 로컬 DMA 콘트롤러를 완전 DMA 모드로 동작시키는 방법에 있어서,
    ① DMA 데이터 전송을 위해 워드 카운트와 시작 어드레스를 수신하는 단계와,
    ② 상기 에뮬레이션 로직으로부터 DMA 전송 요구를 수신하는 단계와,
    ③ 상기 마스터 전용 컴퓨터 시스템 버스를 통해 DMA 전송을 수행하는 단계와,
    ④ 내부 상태 레지스터를 갱신하는 단계와,
    ⑤ DMA 전송이 종료된 시점을 상기 에뮬레이션 로직에게 통지하는 단계와,
    ⑥ 전송될 데이터가 더 있을 경우 다른 DMA 전송 요구를 수신하는 단계를 포함하는
    로컬 DMA 콘트롤러를 완전 DMA 모드에서 동작시키는 방법.
  2. 에뮬레이션 로직을 갖는 어댑터 카드상에 존재하며, 완전 직접 메모리 액세스(DMA) 에뮬레이션이 가능하여 어댑터 카드가 마스터 전용 컴퓨터 시스템 버스에 접속될 때 슬레이브 DMA 기능을 제공할 수 있으며, 마스터/슬레이브 컴퓨터 시스템 버스에 접속된 시스템 DMA 콘트롤러에 대해 접속들을 구비하는 로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA 기록을 수행하는 방법에 있어서,
    ① DMA 동작을 위해 상기 마스터 전용 컴퓨터 시스템 버스를 모니터하는 단계와,
    ② DMA 전송 요구를 위한 DMA 제어 정보를 래치(latching)하는 단계와,
    ③ 상기 에뮬레이션 로직으로부터 상기 로컬 DMA 콘트롤러로 데이터를 DMA 전송하는 단계와,
    ④ DMA 전송이 직접 모니터되지 않을 경우 더미(dummy) 어드레스를 상기 시스템 DMA 콘트롤러에 기록하는 단계와,
    ⑤ 상기 시스템 DMA 콘트롤러에게 상기 마스터/슬레이브 컴퓨터 시스템 버스상에서 DMA 전송을 수행할 것을 요구하고, 상기 시스템 DMA 콘트롤러로부터 긍정응답을 수신하는 단계와,
    ⑥ 상기 마스터/슬레이브 컴퓨터 시스템 버스상에서 DMA 전송이 종료되었는지를 판정하는 단계와,
    ⑦ 상기 마스터 전용 버스상에서 DMA 전송을 수행하는 단계와,
    ⑧ 상기 에뮬레이션 로직에게 DMA 전송이 완료되었음을 통지하는 단계와,
    ⑨ 모든 깊이의 DMA 전송 요구가 종료되지 못한 경우, 추가의 DMA 전송을 수행하는 단계를 포함하는
    로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA 기록을 수행하는 방법.
  3. 제 2 항에 있어서,
    상기 판정 단계는 DMA 전송을 직접 모니터함으로써 이루어지는
    로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA 기록을 수행하는 방법.
  4. 제 2 항에 있어서,
    상기 판정 단계는 상기 시스템 DMA 콘트롤러로부터 긍정응답을 수신함으로써 이루어지는
    로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA 기록을 수행하는 방법.
  5. 에뮬레이션 로직을 갖는 어댑터 카드상에 존재하며, 완전 직접 메모리 액세스(DMA) 에뮬레이션이 가능하여 어댑터 카드가 마스터 전용 컴퓨터 시스템 버스에 접속될 때 슬레이브 DMA 기능을 제공할 수 있으며, 마스터/슬레이브 컴퓨터 시스템 버스에 접속된 시스템 DMA 콘트롤러에 대해 접속들을 구비하는 로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA 판독을 수행하는 방법에 있어서,
    ① DMA 동작을 위해 상기 마스터 전용 컴퓨터 시스템 버스를 모니터하는 단계와,
    ② DMA 전송 요구를 위한 DMA 제어 정보를 래치(latching)하는 단계와,
    ③ 상기 마스터 전용 컴퓨터 시스템 버스상에서 상기 로컬 DMA 콘트롤러에 대해 DMA 전송을 수행하는 단계와,
    ④ 상기 시스템 DMA 콘트롤러에게 상기 마스터/슬레이브 컴퓨터 시스템 버스상에서 DMA 전송을 수행할 것을 요구하고, 상기 시스템 DMA 콘트롤러로부터 긍정응답을 수신하는 단계와,
    ⑤ 상기 시스템 DMA 콘트롤러가 DMA 전송을 종료하기를 기다리는 단계와,
    ⑥ 상기 로컬 DMA 콘트롤러로부터 상기 에뮬레이션 로직으로 데이터를 DMA 전송하는 단계와,
    ⑦ 모든 깊이의 DMA 전송 요구가 종료되지 못한 경우, 추가의 DMA 전송을 수행하는 단계를 포함하는
    로컬 DMA 콘트롤러가 슬레이브 DMA 에뮬레이션 모드에서 DMA 판독을 수행하는 방법.
KR1019970010768A 1996-05-31 1997-03-27 컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 방법 KR100240922B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/657,845 US5748945A (en) 1996-05-31 1996-05-31 Method for slave DMA emulation on a computer system bus
US08/657,845 1996-05-31
US8/657,845 1996-05-31

Publications (2)

Publication Number Publication Date
KR970076291A KR970076291A (ko) 1997-12-12
KR100240922B1 true KR100240922B1 (ko) 2000-01-15

Family

ID=24638884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970010768A KR100240922B1 (ko) 1996-05-31 1997-03-27 컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 방법

Country Status (4)

Country Link
US (1) US5748945A (ko)
JP (1) JP3416021B2 (ko)
KR (1) KR100240922B1 (ko)
TW (1) TW476884B (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884050A (en) * 1996-06-21 1999-03-16 Digital Equipment Corporation Mechanism for high bandwidth DMA transfers in a PCI environment
US5898859A (en) * 1996-10-01 1999-04-27 Intel Corporation Address shadow feature and methods of using the same
US6078742A (en) * 1996-12-19 2000-06-20 Ati International Hardware emulation
US5974239A (en) * 1997-06-11 1999-10-26 Micron Electronics, Inc. Data transfer method for a bus device in a computer system by placing first and second addresses corresponding to a bridge and with the bus device respectively on a bus
US6047349A (en) * 1997-06-11 2000-04-04 Micron Electronics, Inc. System for communicating through a computer system bus bridge
US5918028A (en) * 1997-07-08 1999-06-29 Motorola, Inc. Apparatus and method for smart host bus adapter for personal computer cards
GB9909196D0 (en) * 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6654835B1 (en) * 2000-03-23 2003-11-25 International Business Machines Corporation High bandwidth data transfer employing a multi-mode, shared line buffer
US6636913B1 (en) 2000-04-18 2003-10-21 International Business Machines Corporation Data length control of access to a data bus
US7062561B1 (en) * 2000-05-23 2006-06-13 Richard Reisman Method and apparatus for utilizing the social usage learned from multi-user feedback to improve resource identity signifier mapping
US7062488B1 (en) * 2000-08-30 2006-06-13 Richard Reisman Task/domain segmentation in applying feedback to command control
US8157654B2 (en) * 2000-11-28 2012-04-17 Nintendo Co., Ltd. Hand-held video game platform emulation
US7155379B2 (en) * 2003-02-25 2006-12-26 Microsoft Corporation Simulation of a PCI device's memory-mapped I/O registers
US20060206689A1 (en) * 2003-08-07 2006-09-14 Matsushita Electric Industrial Co., Ltd. Processor integrated circuit and product development method using the processor integrated circuit
GB2433333B (en) * 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US7912998B2 (en) * 2006-01-06 2011-03-22 Hewlett-Packard Development Company, L.P. DMA access systems and methods
WO2008033511A2 (en) 2006-09-14 2008-03-20 Thomson Reuters Global Resources Information-retrieval with content relevancy enhancements
US8346764B1 (en) 2007-06-01 2013-01-01 Thomson Reuters Global Resources Information retrieval systems, methods, and software with content-relevancy enhancements
US7979601B2 (en) * 2008-08-05 2011-07-12 Standard Microsystems Corporation External direct memory access of embedded controller memory
KR101706201B1 (ko) * 2010-12-15 2017-02-15 한국전자통신연구원 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법
US10838896B2 (en) * 2018-10-15 2020-11-17 Texas Instruments Incorporated Split direct memory access (DMA)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335329A (en) * 1991-07-18 1994-08-02 Texas Microsystems, Inc. Apparatus for providing DMA functionality to devices located in a bus expansion chassis
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5598576A (en) * 1994-03-30 1997-01-28 Sigma Designs, Incorporated Audio output device having digital signal processor for responding to commands issued by processor by emulating designated functions according to common command interface
US5590377A (en) * 1995-06-07 1996-12-31 Ast Research, Inc. Automatic control of distributed DMAs in a PCI bus system supporting dual ISA buses
US5668957A (en) * 1995-11-02 1997-09-16 International Business Machines Corporation Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support

Also Published As

Publication number Publication date
JPH1069455A (ja) 1998-03-10
KR970076291A (ko) 1997-12-12
JP3416021B2 (ja) 2003-06-16
US5748945A (en) 1998-05-05
TW476884B (en) 2002-02-21

Similar Documents

Publication Publication Date Title
KR100240922B1 (ko) 컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 방법
KR100271336B1 (ko) 주변구성요소 내부접속 버스상의 기능을 향상시키는 장치 및방법
JP3838278B2 (ja) コンピュータ・システムの2つのバス間のブリッジ回路
US5528764A (en) Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period
KR100245818B1 (ko) 트랜잭션 및 수신지 id를 가진 공유 버스 시스템
EP0784277B1 (en) Interfacing direct memory access devices to a non-ISA bus
KR970004523B1 (ko) 퍼스널 컴퓨터 시스템
US5649128A (en) Multiple bus interface adapter for connection to a plurality of computer bus architectures
US5426739A (en) Local bus - I/O Bus Computer Architecture
US5937173A (en) Dual purpose computer bridge interface for accelerated graphics port or registered peripheral component interconnect devices
US6067589A (en) USB legacy support system
US6167476A (en) Apparatus, method and system for accelerated graphics port bus bridges
EP0765502B1 (en) System and method for expansion of a computer
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US5678064A (en) Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives
JP3403284B2 (ja) 情報処理システム及びその制御方法
US6449677B1 (en) Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
US5502824A (en) Peripheral component interconnect "always on" protocol
KR100347076B1 (ko) 2차 버스로부터의 메시징 유닛 액세스
US6014717A (en) PCMCIA host adapter and method for variable data transfers
KR100267428B1 (ko) 컴퓨터 시스템 버스상에서 슬레이브 dma를 에뮬레이션하는 장치
KR20010108428A (ko) 데이터 트랜잭션 액세스 시스템 및 방법
US6463490B1 (en) Dual data rate transfer on PCI bus
US20050198427A1 (en) Portable electronic system and accessing method thereof
CA2130407A1 (en) Store in cache having direct slave interface

Legal Events

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

Payment date: 20091005

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee