KR950008227B1 - Dma 제어기를 갖는 컴퓨터 시스템 및 dma제어 방법 - Google Patents

Dma 제어기를 갖는 컴퓨터 시스템 및 dma제어 방법 Download PDF

Info

Publication number
KR950008227B1
KR950008227B1 KR1019880002038A KR880002038A KR950008227B1 KR 950008227 B1 KR950008227 B1 KR 950008227B1 KR 1019880002038 A KR1019880002038 A KR 1019880002038A KR 880002038 A KR880002038 A KR 880002038A KR 950008227 B1 KR950008227 B1 KR 950008227B1
Authority
KR
South Korea
Prior art keywords
dma
channel
values
access
computer system
Prior art date
Application number
KR1019880002038A
Other languages
English (en)
Other versions
KR880011675A (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 KR880011675A publication Critical patent/KR880011675A/ko
Application granted granted Critical
Publication of KR950008227B1 publication Critical patent/KR950008227B1/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/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator

Abstract

내용 없음.

Description

DMA 제어기를 갖는 컴퓨터 시스템 및 DMA제어 방법
제1도는 본 발명을 사용하는 컴퓨터 시스템을 나타내는 블럭 다이어그램.
제2도는 본 발명의 동작을 설명하기 위해 사용된 다이어그램.
제3도는 제1도의 컴퓨터 시스템의 주변 장치에 제공된 중재 회로를 상세히 도시한 논리 다이어그램.
제4도는 제1도의 컴퓨터 시스템에서 다수 버스중 하나를 상세히 도시한 다이어그램.
제5도는 본 발명의 컴퓨터 시스템에서 사용된 중앙 중재 제어 회로의 상세한 논리 다이어그램.
제6도는 본 발명에서 사용된 DMA제어 회로의 상세한 논리 다이어그램.
* 도면의 주요부분에 대한 부호의 설명
10 : CPU 12 : DMA제어기
16 : 버스 제어기 22 : 광 디스크
24 : 중재 회로
본 발명은 마이크로 컴퓨터 또는 미니 컴퓨터 시스템에서 사용하는 DMA(직접 메모리 억세스)제어기에 관한 것으로써, 특히 시스템내에 제공된 물리적 DMA채널수 보다 더 많은 주변 장치에 의해 DMA데이타 전송이 수행될 수 있는 DMA제어기에 관한 것이다.
오늘날 다수의 컴퓨터 시스템은 주변 장치들이, CPU(중앙 처리 장치)를 통하지 않는 데이타 전송을, 즉 주로 주 메모리로부터 또는 주 메모리로의 데이타를 전송하도록 해주는 DMA채널을 채용하고 있다. CPU코스를 바이패스 시킴으로써, 데이타 전송율이 증가되고, 이러한 데이타 전송 동안에 CPU는 다른 작업 (task)을 자유롭게 수행하기 때문에 전체 시스템 효율이 향상되는 장점을 갖고 있다.
현재까지의 가장 일반적인 방식은 DMA억세스가 허용되는 모든 주변 장치에 하나의 물리적 DMA채널을 제공하는 것이였다. 이런 장치를 채용한 일례의 컴퓨터 시스템이 IBM PC컴퓨터이다.
그러나, 사용자가 컴퓨터 시스템에 부착할 수 있는 주변 장치의 수는 증가해왔고, 앞으로도 계속 증가할 것으로 기대된다. 예를 들면, 최근에는 광 디스크 판독기, 추가의 통신 장치, 하드 파일, 테이프 백업 장치, 고속 프린터등이 이용가능하며, 이러한 모든 장치들도 DMA억세스를 이용하는 것이 유익하다.
다른 한편으로, 이들을 위해서, 물리적 DMA채널의 갯수가 추가하게 되며, IC카운트, 보드 스페이스, 버스 스페이스를 포함하는 하드웨어 시스템의 가격 상승이 일어난다. 따라서, 상호 배타적 동작의 제한을 갖는 주변 장치사이에서 DMA채널을 공유하는 방안이 제시되었다. 예를 들면, DMA채널의 공유는 IBM XT 및 AT컴퓨터 시스템에서 사용되고 있다. 그러나 이러한 고안(scheme)은 각 DMA채널에 연결된 주변 장치들이 동시에 동작하는 것을 방지하기 위하여 추가의 서브루틴(additional subroutines)이 요구되기 때문에, 운영체제(operating system)에 상당한 수정이 요구된다. 또한, 파일 제어기들이 중복된 탐색 동작 (overlapped seek operation)을 잘 수행하지 못하면 심각한 성능상의 부담도 발생한다. 이러한 문제는 어떤 상황, 예를 들면, LAN(근거리 통신망)기구 및 파일 제어기가 같은 DMA레벨을 공유하고 LAN파일 서브 루틴이 두 장치 사이에서 데이타를 주고받아야 하는 경우에 더욱 심각하게 된다.
바르도더의 미합중국 특허 제3,925,766호에는 주변 장치가 우선 순위 레벨로 할당되며, 메모리와 통하는 억세스를 위한 요구는 우선 순위 레벨에 의하여 선택되는 컴퓨터 시스템에 관한 것이 기술되어 있다. 우선 순위 레벨 할당은 요구 신호가 발생되는 원인에 의하여 변경될 수 있고 또는 중앙 프로세서의 특수 로드 상태에 의하여 변경될 수 있다. 그러나 이 특허에는 어떠한 DMA통로도 제공되어 있지 않다.
스즈끼의 미합중국 특허 제4,400,771호에는 다중 프로세서의 각각이 단일 메모리를 억세스할 수 있는 멀티-프로세서 시스템을 관하여 기술되어 있다. 프로그램 가능한 레지스터 회로는 각 프로세서를 위해 메모리 억세스 우선 순위 등급을 지정하는 우선 순위 정보를 저장한다. 상기 우선 순위 정보는 수동으로 외부 회로에 의하여, 또는 최소한 프로세서 하나에 의하여 변경된다. 그러나 스즈끼의 특허는 다수 주변 장치로부터 메모리로의 DMA억세스는 채용하고 있지 않다.
나디르의 미합중국 특허 제4,257,095호는 버스 중재 기술(bus arbitration techinque)에 관하여 기술되어 있다.
다음의 미합중국 특허, 예를 들면 단위디에, 2세의 제4,371,932호, 라순의 제4,419,728호, 페터슨의 제4,538,224호, 브레웨의 제4,556,952호 및 할버그의 제4,584,703호에는 DMA제어기를 채용하는 컴퓨터 시스템에 관한 일반적인 배경 지식이 기술되어 있다.
따라서, 본 발명의 목적은 시스테에 제공된 물리적 DMA채널보다도 더 많은 주변 장치가, 상기 언급된 종래 기술에 따른 접근 방법에서 보여주는 문제점 없이도 DMA채널을 공유할 수 있는 DMA제어기를 채용한 컴퓨터 시스템을 제공하는 것이다. 본 발명의 다른 목적은, DMA억세스가 허용된 각 주변 장치의 자체의 DMA억세스 중재 레벨이 할당되는 컴퓨터 시스템을 제공하는 것이다.
본 발명의 또다른 목적은, 주변 장치의 DMA채널의 할당이 운영체제의 광범위한 수정없이 소프트웨어로 즉시 제어될 수 있는 컴퓨터 시스템을 제공하는 것이다.
상술된 본 발명 목적 및 다른 목적에 따라, DMA억세스를 요구하는 다수의 주변 장치, 즉 시스템에서 제공된 DMA 채널수 보다 더 많은 다수의 주변 장치를 포함하는 컴퓨터 시스템이 제공된다. 몇몇 주변 장치에서 DMA채널중 일부가 전송 할당되어 고정되며, 한편 다른 주변 장치들은 나머지 DMA채널을 공유한다. 공유되는 나머지 채널들을 본원에서 ˝프로그램 가능한 (programmable)˝ DMA채널로 칭한다. 이들 추가의 DMA채널들은 비물리적이며, 그러므로 그들은 물리적 또는 ˝실(real)˝ DMA채널과 구별하기 위해 ˝가장(virtual)˝ DMA채널이란 용어가 사용된다.
각 주변 장치에는 채널 우선 순위 할당이 주어진다. 중재 회로(an arbitration circuit)는 시스템에 제공된 각 DMA채널을 위한 DMA채널 할당값을 저장한다. 전용 DMA채널을 가지는 가 주변 장치에 있어서는 고정된 DMA채널 할당값이 저장되며, 반면에, 프로그램가능한 DMA채널을 공유하는 나머지 주변장치에 대해서는 프로그램가능한 DMA 채널 할당값이 저장된다.
어떤 주변 장치가 DMA억세스를 원할때, 그 주변 장치는 중재 버스상에 채널 우선순위 값을 전달한다.
중재 버스상에서 ˝승자˝로 되는 것은 그 채널에 전달된 채널 우선 순위값중에서 최고의 채널 우선순위 값이다. 상기 승자의 채널 우선 순위값은 저장된 고정된 DMA채널 할당값 및 프로그램 가능한 DMA채널 할당값들과 비교된다. 만약 채널 우선순위 값이 저장된 고정 또는 프로그램가능한 DMA채널 할당값중 어느 하나와 일치된다면 그 대응 DMA채널(the corresponding DMA channel)로의 억세스가 허용된다.
제1도는 본 발명이 사용되는 컴퓨터 시스템의 블럭 다이어그램을 나타낸다.
CPU는 시스템 버스(26)를 경유하여 메인 메모리(15), 버스 제어기 (16) 및 수치 공통 처리기 (math co-processor) (14)와 통신한다. CPU와 CPU에 연결된 주변 장치 사이의 통신은, 패리미(family)버스(25)를 통해 주변 장치에 결합된 버스 제어기(16)를 통하여 이루어진다. 예로서, 주변 장치는 보조 메모리(17), 두개의 통신 장치 (18,19), 하드파일(20), 광디스크(21), 및 두개의 플로피 디스크(23)을 포함한다. 물론 다른주변 장치도 사용될 수 있다. 주변 장치는 일반적으로 DMA슬레이브(24)로 표시된다.
DMA제어기 (12)는 주변 장치중 최소한 선택된 것만이 직접 메모리 억세스를 허용하도록 설치되어 있다.
이 목적을 위하여 아래에서 상세히 후술되겠지만, 패리미 버스 또는 패미리 버스의 최소한 한 부분은, DMA제어기 (12)로 분기된다. DMA억세스가 안정된 각 주변 장치에서 중재 회로(24)가 제공되며, 중재 회로를 가지는 각 주변 장치에서 중재(우선 순위)레벨이 할당된다. 추후 상세히 설명하겠지만, 중아 중제 제어 회로(11)는 DMA억세스를 동시에 요구하는 주변 장치들 사이에서의 중재와 어느 주변 장치가 억세스를 가지는지를 제어기에게 알리기 위하여 DMA제어기에 연결되어 있다.
본 발명을 구체화할 수 있는 컴퓨터 시스템에서, DMA억세스가 허용된 주변 장치의 수는 시스템에 제공된 물리적 DMA채널수 보다 많다. 본 발명에 따라서, 몇몇 장치는 그들 자신의 전용 DMA채널이 할당되며 반면에 다른 장치는 나머지 DMA채널을 공유한다. 공유된(프로그램 가능한)채널상에서, 억세스는 순서대로 할당된 우선 순위에 따른다.
본 예에서는, 0에서 7까지 가리키는 8개의 물리적 DMA채널이 있다고 가정한다. 또한 채널 0 및 4는 공유이고 나머지 채널 1 내지 3 및 5 내지 7은 각 주변 장치에 할당된다고 가정한다.
제2도는 본 발명의 원리를 설명하기 위해 사용되는 개략적인 도면이며, 비교기에는 두 세트의 입력을 갖고 있다. 한 세트는 버스 ARBUS(중재 버스)로부터 4개의 선으로 구성된다. 중재 버스상에서의 값은, 최고 중재(우선 순위) 레벨을 가지는 DMA채널을 동시에 요구하는 주변 장치를 가리킨다. 그 주변 장치가 지정된 채널 1 내지 3 또는 5 내지 7중 하나를 가지고 있는 주변 장치중 하나라면, 상기 채널에 대하여 직접 억세스가 승인된다. 또다른 한편, 그 주변 장치가 프로그램 가능한 DMA채널(채널 0 및 4)을 공유하는 것들중 하나이면, 억세스는 우선 순위가 레지스터 (6,7)에서 설정되어 있는 값에 대응하는 경우에만 승인된다. 이 동작은 제3 내지 6도에 관련하여 상세히 설명하기로 한다.
제3도는 DMA억세스가 허용된 각 주변 장치에 사용되는 중재 회로(28)중 하나의 논리 다이어그램이다.
주변 장치에 할당된 중재 레벨은, 채널 우선순위 할당 레지스터라 불리는 레지스터 (70)에 세트된다. 이것은 소정의 다수의 공지된 기술 어느 것을 이용하여도 실행할 수 있다. 중재 레벨이 소프트 위에를 통하여 세트될 수 있도록 CPU가 선 할당된 지점을 통하여 주변 장치를 어드레스시킨다. 이것은 BIOS(베이직 입-출력 시스템 Basic Input-Output System), 리스트시의 POST(파워-온 셀프 테스트 Powr-On Self Test). 운영 시스템 또는 요구된 응융 프로그램을 통하여 실행할 수 있다. 다른한편, 하드웨어 스위치를 이용하여 채널 우선 순위 할당값을 입력시키는 것이 가능하다.
실제 중재 회로망으로는 중재기(72)가 사용된다. 제3도에 도시된 여러가지 신호를 포함한 이 회로는, 1983년 6월 13일 IEEE로부터 발행된 미국 국가규격/IEEE규격번호 ANSI/IEEE Std 696-1983에 기대되어 있다. 일반적으로, 중재 기구에 포함된 각 장치에는 상기와같은 회로가 제공되며, 상기 회로들은 ARBUS을 통하여 함께 접속된다. 예로서 도시된 ARBUS는 4개의 데이타 라인 TMA0TMA3을 가지며. 열여섯개의 다른 중제 레벨을 허용한다. 크러나, 필요한 만큼의 수가 사용될 수 있다. 제어신호 PHLDA 및 HOLD에 의하여 표시된 중재 시간 동안 전 버스에 걸친 제어를 요구하는 모든 장치는(TWANT신호가 ˝1˝상태로 세트되는 장치) ARBUS상에 그들의 중재(우선순위)레벨을 전달한다. 이것은 신호/APRIO(˝/˝는 저차순 진리(low-truth신호를 표시함)가 로우 상태(˝0˝)가 될때 제3도의 예에서 발생한다. 이때 레지스터(70)에 보유된 값은 AND게이트(71)를 통하여 중재기(72)로 게이트되며 그로부터, ARBUS라인 TMAO 내지 TMA3상에 게이트된다. 중재 기간 끝에서, ARBUS라인 TMA0 내지 TMA3상의 값은 최고 레벨을 가지는 장치의 중재 레벨 값이다. 여기서 언급된 여러가지 신호의 파형은 ANSI/IEEE규격에 자세히 도시되어 있다.
본 실시예에 있어서, ARBUS는 버스/제어기 (16) 및 CPU(10)에 주변 장치를 결합하는 패미리 버스(25)의 한 부분을 형성한다. 전체 패미리 버스(25)에 대한 ARBUS의 관계를 제4도에서 표시된다.
중앙 중재 제어회로(11) 및 DMA제어기(12)의 설명은 제5도 및 6도를 참고하여 지금부터 기술하기로 한다.
제5도에 도시된 바와 같이, ARBUS로부터 신호 HOLD 및 pHLDA는 신호/ARBTIME을 발생시키는데 사용된다. /ARBTIME은, 하나의 DMA채널에 대해 경합하고 있는 주변장치에 사이에서 중재가 발생하는 시간 동안 ˝0˝상태가 된다. ARBUS에서의 신호가 정상 상태에 도달하기 위한 충분한 기간, 즉, 중재가 종료되는데 충분히 긴 시간 동안 ˝0˝상태가 유지된다. /ARBTIME를 발생하기 위해, pHLDA는 인터버(61)에 의하여 반전한 후, HOLD와 함께 배타적 -OR게이트(62)의 각 입력에 인가된다. ARBUS상에서 중재 시간보다 긴 출력 펄스기간을 가지는 단안정 멀티 바이브레이터(63)는 배타적 -OR게이트(62)로부터 출력 펄스의 입상부에 의하여 트리거된다. 단안정 멀티 바이브레이터의 출력 펄스의 입상부에 의하여 트리거된다. 단안정 멀티 바이브레이터의 출력은 배타적 -OR게이트(62)의 출력과 함께 OR게이트(62)에 인가되어/ARBTIME를 발생한다. 물론, 다른 배열도/ARBTIME을 발생시킥 수 있다. 예를 들면, 각 장치로부터의 DMA요구 신호를 수용하는 OR게이트를 설치하고, 그 출력을 이용하는 적당한 길이의 펄스 신호를 발생시켜도 좋다. 어느 경우에서나, 기본 요구는 중재가 ARBUS상에서 발생하는 시간을 정의하기 위해 /ARBTIME을 ˝0˝상태로 세트시키는 것이다.
한 비교 논리(40)에는 시스템에서 각각의 프로램 가능한 물리적 DMA채널이 제공되며, 한 비교논리(49)에는 각각의 고정된 채널이 제공된다. 프로그램 가능한 DMA채널(본예에서 채널 0 및 4)용 각 비교 논리(40)는 DMA 채널 할당 레지스터로 불리우는 레지스터(41)를 포함하며, 상기 레지스터는 DMA채널 할당으로 CPU에 의하여 로드된다. 즉, 고정된 채널용 비교 논리(49)는 레지스터 (40)가 채널 할당이 수동적으로 세트되는 스위치에 의하여 대체되는 것 이외에는 비교 논리 (40)와 동일하다. 비교 논리 (40,49)의 다른 부분도 동일하며 그들의 입력 신호가 같으므로 비교 논리(40,49)의 단지 하나만 상세히 도시하기로 한다.
프로그램 가능한 채널(비교 논리 40)용 레지스터 (41)의 출력 및 고정된 채널(비교 논리 49)용 스위치의 출력은, 한 세트의 배타적 -OR게이트(42)에 의하여 TMA0 내지 TMA3상의 신호가 비교되며, 게이트 (42)의 출력은 NOR게이트(43)의 입력에 인가된다. 중재 기간 끝에서 TMA0 내지 TMA3로 표시된 값과 채널 할당 사이에서 부합이 존재하면, 즉, 대응 신호가 동일 상태라면, NOR게이트(43) (비교 0 내지 비교 7)로부터의 출력은 ˝1˝상태로 된다. 물론, 하나의 NOR게이트(43)만 동시에 능동출력을 가질 수 있다.
제6도에 있어서, 중재 시간 끝에서/ARBTIME가 ˝1˝레벨로 돌아왔을때, ˝1˝상때에서의 신호(비교 0 내지 7)중 하나로부터의 ˝1˝은 DMA제어기(12)의 두개의 래치(51)중 하나에서 세트된다. 비교 0 내지 비교 7의 다른 신호는 ˝0˝상태가 된다. 그러므로, ˝0˝은 래치(51)의 대응 위치에서 세트된다.
래치(51)의 출력은 두개의 직렬 접속된 DMA제어기 IC(52)의 대응 DMA요구 입력 (DREQ0-DREQ3)에 인가된다. 논의중인 실시예에 있어서, IC(52)는 인텔 코포레이션에 의하여 제조된 8237형 프로그램 가능한 DMA제어기이다. DMA제어기 IC(52)는 NOR게이트(53)을 사용하여 직렬 접속된다. CPU는 8088. 8086 또는 80286와같은 마이크로 프로세서인 Intel iAPX 86 시리즈중의 어느 것이나 된다. 두개의 DMA제어기 IC와 CPU사이에서의 상세한 관계는 1985년 인텔 마이크로 시스템 컴포넌트 핸드북 페이지 2-57 내지 2-71를 참조한다.
그러므로, 전용 DMA채널 할당을 가지는 주변 장치에 있어서, 일단 주변 장치가 ARBUS상에서 승자가 된다면, DMA채널의 즉각적인 사용이 보장된다. DMA채널중 하나를 공유하는 주변 장치에 있어서, 주변 장치가 ARBUS상에서 승자가될때, 채널 우선순위 할당 레지스터(70)에서 얻어진 채널 우선 순위 할당 값이 두개의 레지스터(41)중 하나에서 세트된 DMA 채널 할당 값중 하나에 부합된다면, 즉각적으로 DMA채널을 사용할 수 있다. 물론, BIOS, 운영 시스템 또는 응용 프로그램은, 영구적으로 억세스를 필요로 하는 모든 채널 장치에 DMA채널의 사용을 제공하는 것을 보장하도록 두개의 프로그램가능한 채널 비교 논리(40)의 DMA채널 할당 레지스터(41)에서 얻어진 채널 할당 값을 계속적으로 재프로그램할 수 있다. 많은 다른 프로그래밍도 가까운 장래에 응용되는 중재회로의 채널 우선 순위 해당 레지스터(71)와 DMA 채널 할당 레지스터(41)에 저장된 값을 제어할 수 있도록 이행된다. 단순한 예에서, 우선 순위 할당 레지스터(70)에서 세트된 값은 고정되며, DMA채널 할당 레지스터(41)에서 세트된 값은 우선순위 할당 레지스터(70)의 값중 최소한 몇몇 사이에서 순환되며, 프로그램 가능한 DMA채널 중 하나에 연결된 각 주변 장치에 DMA채널 사용을 제공한다. 자체 제어기를 갖는 ˝지능(intelligent)˝ 주변 장치가 사용된다면, 보다 복잡한 구조로 이행될 수 있다. 예를 들면, 프로그램가능한 DMA채널 할당된 주변 장치가 억세스를 원할때, 주변장치는 프로그램가능한 채널중 한 채널의 이용에 대해 운영 시스템 또는 BIOS에 질의할 수 있다. 채널 이용가능하면, 그것의 수는 억세스를 보장하기 위해 레지스터(70,41)에서 세트될 수 있다. 그러나, 프로그램가능한 구조 선정이 본 발명의 영역가 사용자의 범위밖에 있으므로 여기서 더 이상의 예는 논리하지 않기로 한다.
본 발명의 다른 응용도 또한 이행될 수 있다. 예를 들면, 본 발명의 사용에 의하여 제공된 프로그램 가능한 DMA채널은 전용 채널의 몇개를 위해 여유 예비 채널에 사용되며, 개량된 시스템 신빙성을 구비한다.
변형이 구조 및 사이 기술된 본 발명의 요지를 구성하면 이런 변형은 첨부된 클레임에서 상술된 바와 같이 본 발명의 사상과 범위에 해당된다.

Claims (11)

  1. 다수의 DMA채널들을 제공하는 수단(means fur providing a plurality of DMA channels)과, DMA억세스 요구수단(means for requesting DMA access)을 구비하는 다수의 주변 장치들(aplurality of peripheral devices)과, 상기 주변 장치들중 적어도 하나의 장치(at least one of said peripheral devices)는 DMA억세스를 위한 상기 DMA채널들중 전속 채널(arespective dedicated one of said DMA channels of DMA access)에 할당하고, 상기 주변장치들의 나머지 (the remainder of said peripherals)는 DMA억세스를 위한 상기 DMA채널들의 나머지(the remainder of said DMA channels ofr DMA access)를 공유 (share)할 수 있도록 할당하는 수단(means for assigning)을 포함하되, 상기 할당수단은 DMA억세스를 요구하는 상기 주변장치들의 나머지 각각(each one of said remainder of said peripheral devices requesting DMA access)의 채널 우선순위 할당값들(channel priority assignment values)을 소정 프로그램된 DMA채널 할당값들의 세트(a predetermined programmed set of DMA channel assigment values)와 비교하는 수단(means ofr comparing)과, 상기 주변장치들의 나머지 중 하나가 상기 소정의 프로그램된 DMA채널 할당값들중의 하나에 대응하는 채널 우선순위 할당값을 가질때, 상기 주변장치들의 나머지 중 하나에게 DMA채널에 대한 억세스를 승인하는 수단(means for granting)을 포함하는 것을 특징으로 하는 DMA제어기를 갖는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 비교수단은 상기 소정의 프로그램된 DMA채널 할당값들의 세트를 저장하는 수단(means for storing)과, DMA억세스를 요구하는 상기 주변장치들중의 하나를 위한 상기 채널 우선순위 할당값을 상기 소정의 프로그램된 DMA채널 할당값들의 세트와 동시에 비교하는 수단(means for comparing simultaneously)을 포함하는 것을 특징으로 하는 DMA제어기를 갖는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 DMA채널들의 상기 나머지를 위한 상기 채널 할당값을 변경하는 수단 (means for changing)을 추가하여 포함하는 것에 특징이 있는 DMA제어기를 갖는 컴퓨터 시스템.
  4. DMA억세스를 요구하는 다수의 주변 장치들과, 중재 버스 수단(arbitration bus means)과, 상기 주변장치 각각을 위한 채널 우선순위 할당값을 상기 중재 버스수단에 내어 보냄으로써 (by placing on said arbitration means a channel priority assignment value for the respective peripheral device) DMA억세스를 요구하는 수단(means for requesting)과, 제1 및 제2세트의 DMA채널 할당값들을 저장하는 수단 (means for storing)을 포함하되, 상기 DMA채널 할당값들은 숫적으로는(in number)상기 주변 장치들의 수 보다는 적고, 상기 컴퓨터 시스템에 제공된 DMA채널 수와는 동일하며, 상기 제1세트의 할당값들은 고정되어 있고, 상기 채널 우선순위 할당값들중 고정된 소정의 값들(fixed predetermined ones of said channel priority assignment values)에 대응하며, 상기 제2세트의 할당값들은 프로그램 가능하여 상기 채널 우선순위 할당값들의 나머지 값들 가운데 할당가능하며(allocatable among the remaining ones of said channel priority assignment values), 그리고 상기 중재버스 수단에서 수신한 우선순위 할당값들을 저장된 DMA채널 할당값들의 상기 세트와 비교하는 수단(means for comparing)과, 상기 비교수단에 의해서 상기 제1 및 제2세트의 DMA채널 할당값들 중의 하나와 동일한 것으로 판명된 우선순위 할당값을 갖는 상기 각 주변장치에 DMA억세스를 허락하는 수단(means for granting DMA access)을 포함하는 것에 특징이 있는 DMA제어기를 갖는 컴퓨터 시스템.
  5. 제4항에 있어서, 상기 저장수단은 상기 각 프로그램가능 DMA채널 할당값들을 위하여 상기 컴퓨터 시스템의 중앙처리장치에 의하여 프로그램 가능한 레지스터를 포함하는 것에 특징이 있는 DMA제어기를 갖는 컴퓨터 시스템.
  6. 제5항에 있어서, 상기 저장 수단은 상기 각각의 고정된 DMA채널 할당값을 위하여 각 DMA 채널 할당값을 고정적으로 입력시키는 수단을 포함하는 것을 특징으로 하는 DMA제어기를 갖는 컴퓨터 시스템 .
  7. 컴퓨터 시스템에서 DMA억세스를 제어하는 방법에 있어서, DMA억세스를 요구하는 다수의 주변 장치 각가에 채널 우선순위 할당값을 할당하는 단계와, 각 주변 장치들에 전속된 DMA채널들을 위하여 제1세트의 DMA채널 할당값들을 고정적으로 저장하며, 다수의 주변 장치들 사이에서 공유된 DMA채널들을 위해 제2세트의 DMA채널 할당값들을 프그램가능하게 저장하는 단계와, DMA억세스를 요구하는 상기 각 주변 장치들로부터 그들의 채널 우선순위 할당값을 버스에 전달하는 단계와, DMA억세스를 동시에 요구하는 주변 장치들중 최고의 채널 우선순위 할당값을 결정하도록 상기 버스에서 중재하는 단계와, 상기 최고의 채널 우선순위 할당값과 상기 제1 및 제2세트의 DMA채널 할당값들을 비교하는 단계와, 상기 최고의 채널 우선순위 할당값이 상기 제1 및 제2세트에 포함된 상기 DMA채널 할당값들의 하나와 같을때 대응 주변 장치에 각 DMA채널로의 억세스를 승인하는 단계를 포함하는 것을 특징으로 하는 DMA억세스 제어방법.
  8. 제7항에 있어서, 상기 비교 단계는 상기 최고의 채널 우선순위 할당값과 상기 제1 및 제2세트들을 동시에 비교하는 단계를 포함하는 것을 특징으로 하는 DMA억세스 제어방법.
  9. 중재버스 수단과, 다수의 주변 장치들에 DMA채널을 제공하는 수단을 포함하되, 상기 주변장치들 각각은, 상기 중재버스 수단에 접속 가능하고, 각 주변장치에 관한 채널 우선순위 할당값을 상기 중재버스 수단에 내보내어서(gy placing on said arbitration bus means) DMA억세스를 요구하븐 수단을 구비하는 컴퓨터 시스템에 있어서, 제1 및 제2세트들의 DMA채널 할당값들을 저장하는 수단을 포함하되, 상기 1채널 할당값들은 숫젓으로는(in number)상기 주변장치들의 수 보다는 적고, 상기 컴퓨터 시스템 제공된 DMA채널수와는 동일하며, 상기 제1세트의 할당값들은 고정되어 있고 상기 채널 우선순위 할당값들중 고정된 소정의 값들(fixed predetermined ones of said channel priority assignment values)에 대응하며, 상기 제2세트의 할당값들은 프로그램가능하고 상기 우선 순위 할당값들의 나머지 값들 가운데 할당 가능하며 (allocatable among the remaining ones of said channel priority assignment values), 그리고 상기 중재 버스 수단 및 저장수단에 접속되고, 상기 중재버스에서 수신된 최고의 채널 우선순위 할당값을 저장된 DMA 채널 할당값들의 상기 세트와 비교하는 수단과, 상기 비교수단에 접속되고 주변장치들에 접속가능하며, 상기 비교수단에 의해서 상기 제1 및 제2세트의 DMA채널 할당값들 중의 하나와 동일한 것으로 판명된 상기 최고의 우선순위 할당값을 갖는 상기 주변장치들 중 하나에 DMA억세스를 승인하는 수단을 포함하는 것에 특징이 있는 DMA제어기를 갖는 컴퓨터 시스템.
  10. 제9항에 있어서, 상기 저장 수단은, 상기 프로그램가능한 DMA채널 할당값들 각각을 위하여, 상기 컴퓨터 시스템의 중앙 처리 장치에 의해 프로그램가능한 레지스터를 포함하는 것을 특징으로 하는 DMA제어기를 갖는 컴퓨터 시스템.
  11. 제10항에 있어서, 상기 저장 수단은, 상기 고정된 DMA채널 할당값들 각각을 위하여, 각 DMA채널 할당값을 고정적으로 입력시키는 수단을 포함하는 것을 특징으로 하는 DMA제어기를 갖는 컴퓨터 시스템.
KR1019880002038A 1987-03-27 1988-02-27 Dma 제어기를 갖는 컴퓨터 시스템 및 dma제어 방법 KR950008227B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US030,786 1987-03-27
US30786 1987-03-27
US07/030,786 US4901234A (en) 1987-03-27 1987-03-27 Computer system having programmable DMA control

Publications (2)

Publication Number Publication Date
KR880011675A KR880011675A (ko) 1988-10-29
KR950008227B1 true KR950008227B1 (ko) 1995-07-26

Family

ID=21856024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880002038A KR950008227B1 (ko) 1987-03-27 1988-02-27 Dma 제어기를 갖는 컴퓨터 시스템 및 dma제어 방법

Country Status (17)

Country Link
US (1) US4901234A (ko)
EP (1) EP0288607B1 (ko)
JP (1) JPS63244158A (ko)
KR (1) KR950008227B1 (ko)
CN (1) CN1013068B (ko)
AR (1) AR240681A1 (ko)
AT (1) ATE81220T1 (ko)
BE (1) BE1000819A3 (ko)
DE (3) DE3782045T2 (ko)
ES (1) ES2035027T3 (ko)
FR (1) FR2613095A1 (ko)
GB (1) GB2202977B (ko)
GR (1) GR3006676T3 (ko)
HK (2) HK33692A (ko)
IT (1) IT1216132B (ko)
NL (1) NL185106C (ko)
SG (1) SG13092G (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185864A (en) * 1989-06-16 1993-02-09 International Business Machines Corporation Interrupt handling for a computing system with logical devices and interrupt reset
US5307468A (en) * 1989-08-23 1994-04-26 Digital Equipment Corporation Data processing system and method for controlling the latter as well as a CPU board
DE3928481C2 (de) * 1989-08-29 1994-09-22 Diehl Gmbh & Co Prioritätsorientiertes dezentrales Busvergabesystem
EP0453863A2 (en) * 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
US5974015A (en) * 1990-05-14 1999-10-26 Casio Computer Co., Ltd. Digital recorder
US5519684A (en) * 1990-05-14 1996-05-21 Casio Computer Co., Ltd. Digital recorder for processing in parallel data stored in multiple tracks
EP0473280B1 (en) * 1990-08-31 1996-04-17 Advanced Micro Devices, Inc. Communication control system for a computer and peripheral devices
US5581530A (en) * 1990-09-06 1996-12-03 Casio Computer Co., Ltd. Digital recorder for processing of parallel data stored in multiple tracks and using cross-fade processing
JPH0727507B2 (ja) * 1991-02-19 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション チャネル選択アービトレーション
US5530901A (en) * 1991-11-28 1996-06-25 Ricoh Company, Ltd. Data Transmission processing system having DMA channels running cyclically to execute data transmission from host to memory and from memory to processing unit successively
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
US5640598A (en) * 1994-07-12 1997-06-17 Mitsubishi Denki Kabushiki Kaisha Data transfer processing system
US5495614A (en) * 1994-12-14 1996-02-27 International Business Machines Corporation Interface control process between using programs and shared hardware facilities
JP3320233B2 (ja) * 1995-02-06 2002-09-03 キヤノン株式会社 記録装置
US5664197A (en) * 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5761534A (en) * 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US6154793A (en) * 1997-04-30 2000-11-28 Zilog, Inc. DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting
US6092137A (en) * 1997-11-26 2000-07-18 Industrial Technology Research Institute Fair data bus arbitration system which assigns adjustable priority values to competing sources
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
US6260081B1 (en) * 1998-11-24 2001-07-10 Advanced Micro Devices, Inc. Direct memory access engine for supporting multiple virtual direct memory access channels
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
JP4245852B2 (ja) * 2002-03-19 2009-04-02 富士通マイクロエレクトロニクス株式会社 ダイレクトメモリアクセス装置
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
US7533195B2 (en) * 2004-02-25 2009-05-12 Analog Devices, Inc. DMA controller for digital signal processors
US7240129B2 (en) * 2004-02-25 2007-07-03 Analog Devices, Inc. DMA controller having programmable channel priority
US7130982B2 (en) * 2004-03-31 2006-10-31 International Business Machines Corporation Logical memory tags for redirected DMA operations
US8006001B2 (en) * 2004-09-22 2011-08-23 Lsi Corporation Method and apparatus for manipulating direct memory access transfers
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
US7483422B2 (en) * 2005-02-10 2009-01-27 International Business Machines Corporation Data processing system, method and interconnect fabric for selective link information allocation in a data processing system
US7395361B2 (en) * 2005-08-19 2008-07-01 Qualcomm Incorporated Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth
WO2007023975A1 (ja) * 2005-08-22 2007-03-01 Ssd Company Limited マルチプロセッサ、ダイレクトメモリアクセスコントローラ、及びシリアルデータ送受信装置
JP4499008B2 (ja) * 2005-09-15 2010-07-07 富士通マイクロエレクトロニクス株式会社 Dma転送システム
US7689732B2 (en) * 2006-02-24 2010-03-30 Via Technologies, Inc. Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
CN106294233B (zh) * 2015-06-29 2019-05-03 华为技术有限公司 一种直接内存访问的传输控制方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL283852A (ko) * 1961-10-06
US3766526A (en) * 1972-10-10 1973-10-16 Atomic Energy Commission Multi-microprogrammed input-output processor
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4400771A (en) * 1975-12-04 1983-08-23 Tokyo Shibaura Electric Co., Ltd. Multi-processor system with programmable memory-access priority control
US4090238A (en) * 1976-10-04 1978-05-16 Rca Corporation Priority vectored interrupt using direct memory access
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4437157A (en) * 1978-07-20 1984-03-13 Sperry Corporation Dynamic subchannel allocation
US4558412A (en) * 1978-12-26 1985-12-10 Honeywell Information Systems Inc. Direct memory access revolving priority apparatus
CA1132265A (en) * 1978-12-26 1982-09-21 Minoru Inoshita Direct memory access revolving priority apparatus
US4281381A (en) * 1979-05-14 1981-07-28 Bell Telephone Laboratories, Incorporated Distributed first-come first-served bus allocation apparatus
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4516199A (en) * 1979-10-11 1985-05-07 Nanodata Computer Corporation Data processing system
IT1209338B (it) * 1980-07-24 1989-07-16 Sits Soc It Telecom Siemens Disposizione circuitale per il trasferimento di dati tra la memoria di un elaboratore elettronico e le unita' di interfaccia delle periferiche ad esso collegate.
JPS58223833A (ja) * 1982-06-23 1983-12-26 Fujitsu Ltd ダイレクト・メモリ・アクセス制御方式
US4528626A (en) * 1984-03-19 1985-07-09 International Business Machines Corporation Microcomputer system with bus control means for peripheral processing devices
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
JPS61131153A (ja) * 1984-11-30 1986-06-18 Toshiba Corp Dma転送制御方式
JPS61133461A (ja) * 1984-12-04 1986-06-20 Fujitsu Ltd Dma転送制御方式
US4847750A (en) * 1986-02-13 1989-07-11 Intelligent Instrumentation, Inc. Peripheral DMA controller for data acquisition system

Also Published As

Publication number Publication date
FR2613095A1 (fr) 1988-09-30
EP0288607B1 (en) 1992-09-30
JPS63244158A (ja) 1988-10-11
IT1216132B (it) 1990-02-22
KR880011675A (ko) 1988-10-29
DE3810231C2 (ko) 1989-10-26
DE3782045D1 (de) 1992-11-05
HK33692A (en) 1992-05-15
NL185106B (nl) 1989-08-16
DE8804104U1 (ko) 1988-06-30
ES2035027T3 (es) 1993-04-16
CN1013068B (zh) 1991-07-03
JPH0467224B2 (ko) 1992-10-27
GB2202977B (en) 1991-07-24
NL185106C (nl) 1990-01-16
SG13092G (en) 1992-04-16
CN88100962A (zh) 1988-12-14
EP0288607A1 (en) 1988-11-02
DE3810231A1 (de) 1988-10-06
US4901234A (en) 1990-02-13
AR240681A1 (es) 1990-08-31
GR3006676T3 (ko) 1993-06-30
NL8800715A (nl) 1988-10-17
IT8819827A0 (it) 1988-03-18
HK1000295A1 (en) 1998-02-20
GB8728927D0 (en) 1988-01-27
ATE81220T1 (de) 1992-10-15
DE3782045T2 (de) 1993-04-15
BE1000819A3 (fr) 1989-04-11
GB2202977A (en) 1988-10-05

Similar Documents

Publication Publication Date Title
KR950008227B1 (ko) Dma 제어기를 갖는 컴퓨터 시스템 및 dma제어 방법
US4698753A (en) Multiprocessor interface device
US5129090A (en) System bus preempt for 80386 when running in an 80386/82385 microcomputer system with arbitration
US5280591A (en) Centralized backplane bus arbiter for multiprocessor systems
US4730268A (en) Distributed bus arbitration for a multiprocessor system
US5598542A (en) Method and apparatus for bus arbitration in a multiple bus information handling system using time slot assignment values
US4633394A (en) Distributed arbitration for multiple processors
US5996037A (en) System and method for arbitrating multi-function access to a system bus
US4453214A (en) Bus arbitrating circuit
US4837682A (en) Bus arbitration system and method
US5006982A (en) Method of increasing the bandwidth of a packet bus by reordering reply packets
US4972313A (en) Bus access control for a multi-host system using successively decremented arbitration delay periods to allocate bus access among the hosts
US5388228A (en) Computer system having dynamically programmable linear/fairness priority arbitration scheme
US5506989A (en) Arbitration system limiting high priority successive grants
US5548762A (en) Implementation efficient interrupt select mechanism
US5239651A (en) Method of and apparatus for arbitration based on the availability of resources
KR100296718B1 (ko) 다중프로세서 시스템에서 가변폭 버스를 동시에 액세스하기 위한 방법 및 시스템
EP0150767A2 (en) Program controlled bus arbitration for a distributed array processing system
US5241661A (en) DMA access arbitration device in which CPU can arbitrate on behalf of attachment having no arbiter
US5894562A (en) Method and apparatus for controlling bus arbitration in a data processing system
US5931931A (en) Method for bus arbitration in a multiprocessor system
CA1299295C (en) Dma access arbitration device in which cpu can arbitrate on behalfof attachment having no arbiter
CA1290068C (en) Computer system having programmable dma control
EP0327782A1 (en) Bus controller command block processing system
Foy et al. DEC PDP-7/IBM 1800 high speed interface reference manual

Legal Events

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

Payment date: 20050616

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee