KR910010137B1 - 다이렉트 메모리 액세스 제어장치 - Google Patents

다이렉트 메모리 액세스 제어장치 Download PDF

Info

Publication number
KR910010137B1
KR910010137B1 KR1019890002249A KR890002249A KR910010137B1 KR 910010137 B1 KR910010137 B1 KR 910010137B1 KR 1019890002249 A KR1019890002249 A KR 1019890002249A KR 890002249 A KR890002249 A KR 890002249A KR 910010137 B1 KR910010137 B1 KR 910010137B1
Authority
KR
South Korea
Prior art keywords
bus
data
central processing
control means
input
Prior art date
Application number
KR1019890002249A
Other languages
English (en)
Other versions
KR890013567A (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
Priority claimed from JP63042998A external-priority patent/JPH0833871B2/ja
Priority claimed from JP5589888A external-priority patent/JP2504511B2/ja
Priority claimed from JP63055900A external-priority patent/JPH01229353A/ja
Application filed by 후지쓰 가부시끼가이샤, 야마모도 다꾸마, 후지쓰 마이크로 컴퓨터 시스템스 가부시끼가이샤, 시무라 도시유끼 filed Critical 후지쓰 가부시끼가이샤
Publication of KR890013567A publication Critical patent/KR890013567A/ko
Application granted granted Critical
Publication of KR910010137B1 publication Critical patent/KR910010137B1/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

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

다이렉트 메모리 액세스 제어장치
제1도는 2 시스템 버스간에 DMA 전송을 행할 수 있는 종래의 데이타 처리장치의 실시예를 도시한 시스템 블록도.
제2도는 제1도에 도시된 데이타 처리장치의 중요부분과 버스 마스터(master)들을 도시하는 시스템 블록도.
제3도는 종래 데이타 처리장치의 다른 실시예의 중요부분과 버스 마스터들을 도시하는 시스템 블록도.
제4a도는 DMAC가 CPU를 접속시킨 시스템 버스에만 접속된 제1의 시스템을 사용하는 종래의 데이타 처리장치의 중요부분을 도시하는 시스템 블록도.
제4b도는 DMAC가 CPU를 접속시키지 않은 다른 시스템 버스에 접속된 제2의 시스템을 사용하는 데이타 처리장치의 중요부분을 나타내는 시스템 블록도.
제4c도는 DMAC가 CPU를 접속시킨 시스템 버스와 다른 CPU를 접속시킨 다른 시스템 버스 모두에 접속된 제3의 시스템을 사용하는 데이타 처리장치의 중요부분을 나타내는 시스템 블록도.
제5도는 본 발명에 따른 DMAC의 첫번째 실시예를 나타내는 시스템 블록도.
제6도는 제5도에 도시된 DMAC의 통신 레지스터(communic ation register)의 실시예를 나타내는 시스템 블록도.
제7도는 제6도에 도시된 통신 레지스터의 상대 버퍼와 인터럽트 발생회로의 실시예를 나타내는 시스템 블록도.
제8a도 내지 제8s도는 제5도에 도시된 DMAC의 슬레이브(slave) 동작을 설명하기 위한 라이밍도.
제9a도 내지 제9t도와 제10a도 내지 제10t도는 제5도에 도시된 DMAC에 의하여 제어되는 싱글 전송을 설명하기 위한 타이밍도.
제11a도 내지 제11t도와 제12a도 내지 제12k도는 제5도에 도시된 DMAC에 의하여 제어되는 듀얼(dual) 전송을 설명하기 위한 타이밍도.
제13도는 그의 동작원리를 설명하기 위하여 본 발명에 따른 DMAC의 첫번째 실시예가 적용된 데이타 처리장치의 중요부분을 나타내는 시스템 블록도.
제14도는 DMAC의 첫번째 실시예와 적용된 데이타 처리장치의 중요부분을 보다 상세히 나타내는 시스템 블록도.
제15도는 싱글 시스템 버스 상에서 싱글 전송을 행할 때에 데이타 처리장치의 중요부분을 나타내는 시스템 블록도.
제16a도 내지 제16l도는 싱글 시스템 버스 상에서 싱글 전송을 행할 때에 제15도와 제17도에 도시된 블록 시스템의 동작을 설명하기 위한 타이밍도.
제17도는 한 시스템 버스에 접속된 메모리 장치로부터 입/출력 장치로의 싱글 전송을 설명하기 위한 도.
제18도는 다른 시스템 버스에 접속된 입/출력 장치로부터 메모리 장치로의 싱글 전송을 설명하기 위한 도.
제19도는 한 시스템 버스에 접속된 메모리장치로부터 다른 시스템 버스에 접속된 입/출력 장치로의 싱글 전송을 설명하기 위한 도.
제20a도 내지 제20l도는 두 시스템 사이의 싱글 전송을 행할 때에 제19도와 제21도에 도시된 블록 시스템들의 동작을 설명하기 위한 타이밍도.
제21도는 한 시스템 버스에 접속된 입/출력 장치로부터 다른 시스템 버스에 접속된 메모리장치로의 싱글 전송을 설명하기 위한 도.
제22도는 제5도에 도시된 DMAC의 단자 제어장치의 실시예를 나타내는 시스템 블록도.
제23도는 본 발명에 따른 DMAC의 첫번째 실시예에 적용된 다른 데이타 처리장치의 중요부분을 나타내는 시스템 블록도.
제24도는 제23도에 도시된 데이타 처리장치의 데이타 버퍼들의 실시예를 나타내는 회로도.
제25도는 본 발명에 따른 DMAC의 두번째 실시예가 적용되고 제1의 시스템을 사용하는 데이타 처리장치를 나타내는 시스템 블록도.
제26도는 본 발명에 따른 DMAC의 두번째 실시예가 적용되고 제2의 시스템을 사용하는 데이타 처리장치를 나타내는 시스템 블록도.
제27도는 본 발명에 따른 DMAC의 두번째 실시예를 나타내는 시스템 블록도.
제28도는 제27도에 도시된 버스 구성 결정부의 실시예를 나타내는 시스템 블록도.
제29도는 제27도에 도시된 DMAC를 적용한 시스템 랙(rack)의 실시예를 나타내는 사시도.
제30도는 대규모 집적회로의 형태로 제작된 본 발명에 따른 DMAC를 나타내는 블록도.
본 발명은 일반적으로 다이렉트 메모리 액세스 제어장치, 특히 중앙처리장치를 갖는 데이타 처리장치에 있어서, 중앙처리장치가 전유권(exclusive right)을 상실하는 기간에 메모리 장치와 입/출력 장치 또는 다른 메모리 장치 사이에 데이타를 고속으로 직접 전송시키는 다이렉트 메모리 액세스를 제어하기 위한 다이렉트 메모리 액세스 제어장치에 관한 것이다.
컴퓨터 시스템과 같은 데이타 처리장치에 있어서, 다이렉트 메모리 액세스 제어장치(DMAC)는 공통 시스템 버스에 접속된 메모리와 입/출력(I/O) 장치 사이의 데이타 전송시간을 줄이기 위해서 사용된다. 다이렉트 메모리 액세스에 따라, 시스템 버스에 접속된 주변장치로서 사용되는 중앙처리장치(CPU)를 통해서 데이타를 통과시키지 않고, DMAC의 제어하에서 메모리와 I/O 장치 사이에 직접 데이타를 전송시킬 수 있다.
한편, 보다 개선된 기능을 갖는 데이타 처리장치로서 상호 독립된 두 시스템 버스을 갖는 데이타 처리장치를 생각할 수 있다. 상호 독립된 두 시스템 버스에 접속된 두 장치들 사이의 데이타 전송을 행하는 경우에는 훠스트-인-훠스트-아웃(FIFO:first-in-first-out) 버퍼, 또는 듀얼 포트 랜덤 액세스 메모리들(RAMs)이 사용된다. 그러나, 상호 독립된 두 시스템 버스들을 갖는 데이타 처리장치에서 데이타 전송을 고속으로 행하기 위해서는 두 시스템 버스 사이의 DMA 실현이 요망되고 있다.
제1도는 두 시스템 버스들 사이의 DMA 전송을 행할 수 있는 데이타 처리장치이 한 실시예를 나타낸다. 제1도에서, 중앙처리장치(CPU) 11, DMAC 12, 메모리 13 및 입/출력(I/O) 장치 14들이 시스템 버스 10에 접속되어 제1의 시스템을 구성한다. 또한, CPU 21, DMAC 22, 메모리 23, 및 I/O 장치 24들이 시스템 버스 20에 접속되어 제2의 시스템을 구성한다. FIFO 버퍼 15와 25가 시스템 버스 10과 20 사이에 설치된다. FIFO 버퍼 15는 CPU 11과 21 사이의 메세지 전송을 위해서 사용되며, 한편 FIFO 버퍼 25는 시스템 버스 10과 20 사이의 데이타 전송을 위해서 사용된다.
예를들면, 메모리 23으로부터 메모리 13으로 DMA 전송을 행하는 경우에, DMAC 22는 먼저 CPU로부터 시스템 버스 20의 사용권을 얻어, 메모리 23으로부터 데이타를 FIFO 버퍼 25에 라이트한다. DMAC 12는 FIFO 버퍼 25로부터의 전송요구에 따라 시스템 버스 10의 사용권을 얻어, FIFO 버퍼 25로부터의 데이타를 메모리 13에 라이트한다.
이러한 데이타 처리장치에 따라 2개의 DMAC 12, 22와 2개의 FIFO 버퍼 15, 25가 설치될 필요가 있다. 그러나 FIFO 버퍼 15, 25가 양방향성의 장치이기 때문에, 많은 수의 주변 회로들은 FIFO 버퍼 15, 25를 제어하기 위해서 제어장치등을 포함할 필요가 있다. 더우기, 시스템 버스 10과 20 사이의 DMA 전송은 FIFO 버퍼 25를 통하여 행해지며, DMAC 12, 22와 FIFO 25가 핸드쉐이킹(hand shaking) 상태에 있기 때문에 데이타 전송의 효율이 저하한다. 또한, 한 시스템 버스에 접속된 I/O 장치로부터의 요구를 다른 시스템 버스에 접속된 메모리 장치에 전송하기 위한 경로가 시스템 버스 10과 20 사이에 설치되어 있지 않기 때문에, 두 시스템 버스 10과 20 사이의 싱글 전송은 행해질 수 없다.
상호 독립된 2개 이상의 시스템 버스들을 갖는 데이타 처리장치에 있어서, 버스 마스터(master)는 그의 관리를 위해서 각 시스템 버스에 접속되어야만 한다. 데이타 처리장치 전체 동작을 조정 등에 행하기 위해서는 버스 마스터들 간에 메세지 통신을 필요하다.
제2도는 제1도에 도시된 데이타 처리장치의 중요부분과 버스 마스터들을 나타낸다. 제2도에서, 제1도에 대응하는 동일 부분들은 동일 참조번호를 부여하였고, 그의 설명은 생략할 것이다. 제2도에서, 버스 마스터 16은 시스템 버스 10을 구성하는 시스템 버스와 어드레스 버스에 접속되며, 한편 버스 마스터 26은 시스템 버스 20을 구성하는 데이타 버스와 어드레스 버스에 접속된다. 버스 마스터 16과 26으로부터의 메세지들은 각각 FIFO 버퍼 15와 25에 저장되며, 버스 마스터 16과 26이 각각 FIFO 버퍼 15와 25로부터 메세지들을 읽어낼 때에 메세지 통신이 행하여진다. 이 경우에, 메세지들이 FIFO 버퍼 15와 25에 라이트 될 때에, 이를 버스 마스터 16과 26에 통지하는 외부회로가 제공되어야만 하며, 하드웨어의 수가 증가되어, 시스템 설계가 복잡하게 되는 문제들이 있다.
제3도에 종래의 데이타 처리장치의 다른 실시예의 중요부분과 버스 마스터들을 나타낸다. 제3도에서, 제2도에 대응하는 동일 부분들은 동일 참조번호들로 나타냈고, 그의 설명은 생략할 것이다. 제3도에서, 유얼 포트 랜덤 액세스 메모리(RAM) 30은 FIFO 버퍼 15와 25대신에 제공되며, 메세지 통신은 버스 마스터 16과 26이 각각 듀얼 포트 RAM 30을 액세스할 때에 행한다. 이 경우에, 메세지들이 듀얼 포트 RAM 30에 라이트될 때, 이를 버스 마스터 16과 26에 통지하는 외부회로가 제공되어야만 하며, 하드웨어의 수가 증가되어, 시스템 설계가 복잡하게 되는 문제들이 있다.
싱글 DMAC의 상용에 의하여 두 시스템 버스들 사이의 DMA 전송을 제어하는 것이 고려되고 있다. 그러나, 종래의 DMAC는 원래 싱글 시스템 상에서 DMA 전송을 제어할 수 있도록 설계되어 있으며, 이러한 이유 때문에, DMA 전송에 필요한 리이드/라이트 신호등의 제어신호들은 단일 시스템 버스에 접속된 장치에서만 출력될 수 있다. 그러므로, 상호 독립된 두 시스템 버스들 사이의 DMA 전송을 행하기 위해서는 두 시스템 버스들 사이의 DMA 전송에 필요한 제어 신호들을 출력하기 위한 제어 회로를 설치할 필요가 있다.
그러므로, 두 DMAC를 사용하는 종래의 데이타 처리장치의 경우에는 싱글 전송이 상호 독립된 두 시스템 버스들 사이에서 행해질 수 없는 문제가 있다. 한편, 단일 DMAC를 사용하는 데이타 처리장치의 경우에는 DMA 전송에 필요한 제어 신호들을 출력하기 위한 복잡한 회로구성의 제어회로가 상호 독립된 두 시스템 버스들 사이의 싱글 전송을 행하기 위해서 상호 독립된 두 시스템 버스들 사이에 설치되어야만 하고, 데이타 처리장치의 구성이 복잡하게 되는 문제가 있다.
제4a도는 DMAC 32가 CPU 11을 접속시킨 시스템 버스 10에만 접속된 제1의 시스템을 사용하는 종래의 데이타 처리장치의 중요부분을 나타낸다. 제4b도는 DMAC 32가 CPU를 접속시키지 않은 시스템 버스 20에 접속되는 제2의 시스템을 사용하는 데이타 처리장치의 중요부분을 나타낸다. 제4c도는 DMAC 32가 CPU 21을 접속시킨 시스템 버스 20과 CPU 11을 접속시킨 시스템 버스 10 모두에 접속되는 제3의 시스템을 사용하는 데이타 처리장치의 중요부분을 나타낸다. 동일한 DMAC 32가 제1, 제2, 제3의 시스템들을 사용하는 데이타 처리장치에 적용되는 경우에는, 시스템에 따라 DMAC 32의 내부동작을 절환하는 것이 필요하다. 따라서, 내부동작의 모우드(즉, 선택된 시스템)를 나타내는 모우드 신호를 수신하기 위해서 DMAC 32상에 외부단자들을 설치하고, DMAC 32가 설치된 프린트기판 보오드(board)로부터 고정 모우드 신호를 공급하는 것이 고려되고 있다. 그러나, 이 경우에, 제1의 시스템을 제2 또는 제3의 시스템으로 확장할 때에는, DMAC 32가 설치된 프린트 기판 보오드를 변화시킬 필요가 있다. 결과적으로, 단순히 시스템 버스 20, 또는 시스템 버스 20과 CPU 21을 갖는 프린트 기판 보오드를 추가하므로써 시스템을 확장시킬 수 없고, 시스템의 확장성이 나빠지는 문제들이 있다.
한편, DMAC 32가 다수의 채널들을 갖는 경우에, 제1, 제2시스템들에서는 모든 채널들이 CPU 11에 의하여 제어되나, 제3의 시스템에서는 각 채널을 CPU 11 또는 CPU 21 중의 어느 것에 의해서 제어할 것인가를 지정해야 한다. 그러므로, 이 경우에, 제1 또는 제2의 시스템을 제3의 시스템으로 확장할 때는 DMAC 32가 설치된 프린트 기판 보오드를 교환시킬 필요가 있고, 그 시스템의 확장성이 나빠지는 문제들이 있다.
따라서, 본 발명의 일반적인 목적은 전술된 문제들이 단일 DMAC로 상호 독립된 두 시스템 버스들 사이의 다이렉트 메모리 액세스(싱글 전송 또는 듀얼 전송)의 제어를 인에이블하고, 단일 DMAC로 여러 시스템들의 서포트(support)를 인에이블 하므로써 제거되는 편리하고, 유용한 다이렉트 메모리 액세스 제어장치(DMAC)를 제공함에 있다. 여러 시스템들은 CPU와 DMAC가 단일 시스템 버스에 접속된 시스템, CPU가 제1의 시스템 버스에 접속되고, DMAC가 제1의 시스템 버스와 이와 독립된 제2의 시스템 버스에 접속된 시스템 및 두개의 CPU가 각각 제1, 제2의 시스템 버스에 접속되고 DMAC가 제1, 제2의 시스템 버스에 접속된 시스템 등을 포함한다.
본 발명의 다르고 특별한 목적은, 적어도 상호 독립된 제1, 제2의 시스템 버스, 제1의 시스템 버스에 접속된 적어도 하나의 메모리 장치, 제2의 시스템 버스에 접속된 적어도 하나의 입/출력 장치, 제1, 제2의 시스템 버스들 중 적어도 하나에 접속된 중앙처리장치 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 방향을 제어하기 위한 버퍼 수단등을 포함하는 데이타 처리장치에서 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치를 제공함에 있다. 다이렉트 메모리 액세스 제어 장치는 메모리 장치와 입/출력 장치중의 한 장치로부터 수신된 전송 요구에 따라 제1, 제2의 시스템 사용권을 얻기 위한 제1, 제2의 시스템 버스들에 접속된 버스와 단자 제어 수단, 중앙처리장치로부터의 액세스를 제어하고 중앙처리장치에서 인터럽트를 제어하기 의한 제1, 제2의 시스템 버스들에 접속된 인터럽트와 슬레이브 제어수단 및 버스와 단자 제어 수단이 제1, 제2의 시스템 버스 사용권을 갖고 있는지 갖고 있지 않는지와 액세스를 중앙장치로부터 행하는지 행하지 않는지, 메모리 장치와 입/출력 장치중의 한 장치로부터 수신된 전송요구에 따라 다이렉트 메모리 액세스 제어 장치의 동작을 결정하기 위한 동작 결정 수단 등을 포함한다. 동작 결정 수단을 결정된 동작을 기초로하여 버스와 단자 제어 수단, 버퍼 수단 및 인터럽트와 슬레이브 제어 수단을 제어하고, 이에 의하여, 싱글 전송을 전송 요구에 응답해서 메모리와 입/출력 장치 사이에서 행한다. 본 발명의 다이렉트 메모리 액세스 제어장치에 따라, 데이타 전송의 효율은 향상되며, 데이타 처리장치의 구성을 복잡하게 하지 않고 제1, 제2의 시스템 버스들 사이에서 다이렉트 메모리 액세스 전송을 행할 수 있다.
본 발명의 또 다른 목적은, 적어도 상호 독립된 제1, 제2의 시스템 버스, 제1, 제2의 시스템 버스에 각각 접속된 제1, 제2의 메모리 장치, 제1, 제2의 시스템 버스에 각각 접속된 제1, 제2의 입/출력 장치, 제1, 제2의 시스템 버스 중의 적어도 하나에 접속된 중앙처리장치 및 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 방향을 제어하기 위한 버퍼 수단등을 포함하는 데이타 처리장치에서 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치를 제공함에 있다. 다이렉트 메모리 액세스 제어장치는 제1, 제2의 메모리 장치들과 제1, 제2의 입/출력 장치들 중의 한 장치로부터 수신된 전송 요구에 응답해서 제1, 제2의 시스템 버스 사용권을 얻기 위한 제1, 제2의 시스템 버스에 접속된 버스와 단자 제어수단, 중앙처리장치부터의 액세스를 제어하고 중앙처리장치의 인터럽트를 제어하기 위한 제1, 제2의 시스템 버스에 접속된 인터럽트와 슬레이브 제어 수단, 및 버스와 단자 제어 수단이 제1, 제2의 시스템 버스의 사용권을 갖고 있는지 갖고 있지 않은지, 액세스를 중앙처리장치로부터 행하는지 행하지 않는지, 제1, 제2의 메모리장치와, 제1, 제2의 입/출력 장치들 중의 한 장치로부터 수신된 전송 요구에 따라 다이렉트 메모리 액세스 제어장치의 동작을 결정하기 위한 동작 결정 수단등을 포함한다. 동작 결정 수단을 결정된 동작을 기초로 하여 버스와 단자 제어 수단, 버퍼 수단 및 인터럽트와 슬레이브 제어 수단들을 제어하며, 이에 의하여 제1, 제2의 메모리 장치와 제1, 제2의 입/출력 장치 중에 임의의 두 장치 사이의 다이렉트 메모리 액세스 전송이 전송 요구에 응답해서 행하여진다.
본 발명의 또 다른 목적은, 적어도 상호 독립된 제1, 제2의 시스템 버스, 제1, 제2의 시스템 버스에 각각 접속된 제1, 제2의 메모리 장치, 제1, 제2의 시스템 버스에 각각 접속된 제1, 제2의 입/출력 장치, 제1, 제2의 시스템 버스에 각각 접속된 제1, 제2의 중앙처리장치 및 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 방향을 제어하기 위한 버퍼 수단등을 포함하는 데이타 처리장치에서 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치를 제공함에 있다. 다이렉트 메모리 액세스 제어장치는 제1, 제2의 메모리 장치와 제1, 제2의 입/출력 장치들 중의 한 장치로부터 수신된 전송 요구에 응답하여 제1, 제2의 시스템 버스들의 사용권을 얻기 위한 제1, 제2의 시스템 버스들에 접속된 버스와 단자 제어 수단, 제1, 제2의 중앙처리장치들 중에 하나의 인터럽트를 제어하고 제1, 제2의 중앙처리장치들로부터의 액세스를 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 인터럽트와 슬레이브 제어 수단 및 버스와 단자 제어 수단이 제1, 제2의 시스템 버스들에 접속된 인터럽트와 슬레이브 제어 수단 및 버스와 단자 제어 수단이 제1, 제2의 시스템 버스의 사용권을 갖고 있는지 갖고 있지 않는지, 액세스를 제1, 제2의 중앙처리장치 중의 하나로부터 행하는지 행하지 않는지 제1, 제2의 메모리 장치와 제1, 제2의 입/출력 장치 중의 하나로부터 수신된 전송 요구에 따라 다이렉트 메모리 액세스 제어장치의 동작을 결정하기 위한 동작 결정 수단 등을 포함한다. 동작 결정 수단은 결정된 동작을 기초로하여 버스와 단자 제어 수단, 버퍼 수단 및 인터럽트와 슬레이브 제어 수단을 제어하며, 이에 의하여 제1, 제2의 메모리 장치와 제1, 제2의 입/출력 장치들 중에 임의의 두 장치 사이의 다이렉트 메모리 액세스 전송이 전송 요구에 응답해서 행하여진다.
본 발명의 다른 목적들과 특징은 수반된 도면들에 의거하여 상세히 서술하므로써 명백해질 것이다.
제5도는 본 발명에 따른 DMAC의 첫번째 실시예를 도시하고 있다. DMAC 60A에서, 전송요구 제어부 80은 메모리 장치 41, 51과 I/O 장치 42, 52로부터 얻어진 전송요구 REQ 0-REQ 3을 제어 버스 40C와 50C를 통하여 단자 81에서 수신한다. 다수의 전송 요구들이 동시에 수신될지라도 전송요구제어부 80은 사전에 결정된 우선순위에 따라 하나의 전송요구를 선택하며, 이 선택된 전송요구를 중앙 처리부 82와 동작 결정부 83에 보고한다. 동작 결정부 83은 보고된 전송요구에 대해서 응답을 행한다.
슬레이브 제어부 84는 CPU 43과 53으로부터 얻어진 칩 선택신호 CS 1, CS 2와 인터럽트 요구응답 신호 IACK 1, IACK 2를 제어 버스 40C와 50C를 통하여 단자 85와 86에서 수신한다. 칩 선택 신호 CS 1과 CS 2는 후술될 통신 레지스터 101 또는 레지스터 87의 액세스를 행하기 위해서 CPU 43과 53에 의하여 사용된 신호들이다. 인터럽트 요구응답 신호 IACK 1과 IACK 2는 DMAC 60A가 CPU 43과 53의 인터럽트 요구를 행하는 경우의 응답으로 CPU 43과 53으로부터 출력된 신호들이다. 이러한 신호들의 다수가 동시에 수신되는 경우에도, 슬레이브 제어부 84는 이미 결정된 우선 순위에 따라 한 신호를 선택하며 그 선택된 신호를 동작 결정부 83에 보고한다. 즉, 슬레이브 제어부 84는 CPU의 리이드/라이트 싸이클과 인터럽트 응답 싸이클을 제어하며, 이러한 제어 동작들 슬레이브 동작(또는 싸이클)으로 칭하여진다. 슬레이브 동작은 버스 구조와 버스 속성(attribute)에 따라 신호 CS와 IACK를 수신할 수 있는 시스템 버스에 관해서만 수행된다.
동작 결정부 83은 슬레이브 액세스를 슬레이브 제어부 84로부터 보고된 신호에 응답하여 행할 것인지 아닌지를 슬레이브 제어부 84에 보고한다. 더우기, 동작 결졍부 83은 그 보고를 슬레이브 제어부 84로부터 중앙처리부 82에 전달한다. 또한 동작 결정부 83은 슬레이브 액세스가 시스템 버스 40으로부터인지, 시스템 버스 50으로부터 인지를 나타내는 버스 속성신호를 통신 레지스터 101에 공급한다. 슬레이브 액세스가 가능하다는 보고를 받은 슬레이브 제어부 84는 리이드 요구신호 또는 라이트 요구신호를 발생하며, 그 발생된 신호를 중앙 처리부 82와 통신 레지스터 101에 공급한다 즉, 동작 결정부 83은 전송요구와 슬레이브 등과 같은 DMAC 60A의 동작의 첫째 요인들을 조정하므로써 동작을 결정한다.
중앙 처리부 82는 DMAC 60A 전체의 동작 상태의 관리를 수행하며, 동작 상태와 동작 요구는 동작 결정부 83에 보고된다. 전송에 필요한 소오스 어드레스 목표 어드레스, 블록수 등은 중앙 처리부 82 내의 레지스터 87에 저장된다. 다시 말하면, 중앙 처리부 82는 마이크로-콘트롤, PLA에 의한 전송 정보의 제어 및 어드레스와 전송 바이트들 수의 계산을 행한다. 더우기, 레지스터 87은 어드레스와 전송 바이트들 수등 정보를 저장한다.
버스 요구가 중앙 처리부 82로부터 수신될 때, 동작 결정부 83은 버스 제어부 90이 버스 요구신호 HREQ 1과 HREQ 2를 43과 53에 단자 91을 통하여 공급하도록 버스 제어부 90에 지시를 출력한다. 버스 요구신호 HREQ 1과 HREQ 2에 응답하여 CPU 43과 53으로부터 각각 출력된 버스 요구 응답신호 HACK 1과 HACK 2가 단자 92에서 수신되어 버스 제어부 90에 공급된다. 버스 제어부 90은 버스 요구 응답신호 HACK 1과 HACK 2에 동작 결정부 83에 보고하며, 이 보고는 중앙 처리부 82에 전달된다. 그러므로, 버스 제어부 90은 DMA 전송을 행하기 위하여 CPU(버스 마스터)로부터 시스템 버스의 사용권을 얻는 동작을 제어한다.
단자 제어부 93은 각각 제어 버스 40C와 50C로부터 들어오고 단자 94에서 수신된 데이타 완료 신호 DC 1과 DC 2를 수신한다. 데이타 완료 신호 DC 1과 DC 2는 데이타 라이트 또는 리이드 동작의 완료를 표시한다. 단자 제어부 93은 데이타 완료 신호 DC 1과 DC 2를 동작 결정부 83에 보고하며, 동작 결정부 83으로부터의 지시에 응답하여 데이타 완료 신호 DC 1과 DC 2를 단자 94를 통하여 출력한다. 더우기, 단자 제어부 93은 제어 버스 40C와 50C로부터의 리이드/라이트 신호 R/W 1과 R/W 2를 단자 95에서 수신한다. 단자 제어부 93은 리이드/라이트 신호 R/W 1과 R/W 2를 동작 결정부 83에 보고한다. 또한, 단자 제어부 93은 동작 결정부 83으로부터의 지시에 응답하여 어드레스 스트로브 신호 AS 1과 AS 2, 데이타 스트로브 신호 DS 1과 DS 2 및 리이드/라이트 신호 R/W 1과 R/W 2를 단자 95를 통하여 출력한다. 더구나, 단자 제어부 93은 제어 신호 AIN 1, AIN 2, ABEN 1, ABEN 2, DIN 1, DIN 2, DBEN 1, DBEN 2 등을 어드레스 버퍼 61a, 61b와 데이터 버퍼 62a, 62b에 단자 96을 통하여 공급하며, 동작 결정부 83으로부터의 지시에 응답하여 데이타 전송 애크놀리지(acknowledge) 신호 ACK를 단자 104를 통하여 출력한다. 그러므로, 단자 제어부 93은 외부 동작 제어 시스템과 외부 버퍼 제어 시스템에 접속된 단자들을 제어하며, 전송, 슬레이브, 버스 구조 등에 따라 단자들의 출력동작, 입력 타이밍등을 제한한다.
입/출력 제어부 97은 단자 98에서 수신된 어드레스 버퍼 61a와 61b로부터의 어드레스를 동작 결정부 83으로부터의 지시에 응답하여 중앙 처리부 82내의 레지스터 87과 통신 레지스터 101에 공급한다. 입/출력 제어부 97은 또한 중앙 처리부 82로부터의 어드레스를 어드레스 버퍼 61a와 61b에 단자 98을 통하여 공급한다. 더우기, 입/출력 제어부 97은 단자 99에서 수신된 데이타 버퍼 62a와 62b로부터의 데이타를 레지스터 87과 통신 레지스터 101에 공급하며, 레지스터 87 또는 통신 레지스터 101로부터의 데이타를 데이타 버퍼 62a와 62b에 단자 99를 통해서 공급한다. 또한, 듀얼 전송시의 전송 데이타는 입/출력 제어부 97 내의 데이타 홀딩 레지스터 100에 저장된다. 다시 말하면 입/출력 제어부 97은 어드레스 출력과 데이타의 입/출력을 제어하며, 데이타 홀딩 레지스터 100은 전송 디스크립터(descriptor)의 데이타 입력과 출력을 위하여 사용된다.
통신 레지스터 101은 CPU 43과 53 사이의 통신 메세지를 저장한다. 즉, CPU 43과 53 사이의 통신은 통신 레지스터 101을 통하여 이루어진다. 제6도는 통신 레지스터 101의 한 실시예를 도시하고 있다. 통신 레지스터 101은 일반적으로 도시된 바와 같이 연결된 디코우더 111, 메세지 버퍼 115 및 상태 버퍼와 인터럽트 발생회로 116을 갖는다. 내부 어드레스 버스 112로부터의 어드레스는 디코우더 111에 공급된다. 디코우더 111에는 또한 슬레이브 제어부 84로부터의 리이드 요구 신호와 라이트 요구 신호들이 각각 단자 113a와 113b를 통해서 공급된다. 동작 결정부 83으로부터의 버스 속성 신호는 단자 114를 통하여 디코우더 111에 공급된다. 디코우더 111은 수신된 신호들을 디코우드하여, 리이드 인에이블 신호와 라이트 인에이블 신호들을 메세지 버퍼 115 및 상태 버퍼와 인터럽트 발생회로 116에 공급한다.
메세지 버퍼 115는 내부 데이타 버스 117에 접속되고, 라이트 인에이블 신호와 리이드 인에이블 신호에 응답하여 CPU 43 또는 53으로부터의 메세지를 라이트하고 리이드한다.
상태 버퍼와 인터럽트 발생회로 116은 내부 데이타 버스 117에 접속되며, 제7도에 도시된 바와 같이 구성될 수 있다. 제7도에서, CPU 43으로부터의 4-비트 상태 LPS와 제어 비트 LIEN, LICL, SINT는 LCCR 버퍼 120으로 라이트된다. CPU 53으로부터의 4-비트 상태 SPC와 제어 비트 SIEN, SICL, LINT는 SCCR 버퍼 121로 라이트된다. 제어 비트 LIEN과 SIEN은 인터럽트 인에이블 비트들이고, 제어비트 LICL과 SICL은 인터럽트 요구를 클리어하기 위한 인터럽트 클리어 비트들이다.
LCSR 버퍼 122의 내용은 CPU 43에 의하여 읽어내며, SCSR 버퍼 123의 내용은 CPU 53에 의하여 읽어낸다. LCSR 버퍼 122의 제어 비트 SIEN과 상태 SPS 각각은 SCCR 버퍼 121의 대응하는 내용이 세트되며, SCCR 버퍼 121의 제어 비트 LINT는 제어 비트 LIST에 세트되며, 제어비트 LIST는 LCCR 버퍼 120의 제어 비트 LICL에 의하여 클리어된다. 더우기, SCSR 버퍼 123의 대응하는 내용은 인터럽트 상태 비트 SIST에 세트된다. 한편, SCSR 버퍼 123은 LCCR 버퍼 120과 SCCR 버퍼 121의 내용들에 의하여 유사하게 세트된다.
AND 회로 124는 SCCR 버퍼 120의 제어 비트 LIEN과 LCSR 버퍼 122의 인터럽트 상태 비트 LIST를 기초로 하여 CPU 43에 관한 인터럽트 요구 신호를 발생한다. AND 회로 125는 SCCR 버퍼 121의 제어 비트 SIEN과 SCSR 버퍼 123의 인터럽트 상태 비트 SIST를 기초로 하여 CPU 53에 관한 인터럽트 요구 신호를 발생한다. AND 회로 124와 125로부터의 인터럽트 요구 신호들은 제6도에 도시된 단자 118로부터 얻어지며, 제5도에 도시된 인터럽트 제어부 102에 공급된다.
CPU 43과 53에 관한 인터럽트 벡터들은 LCVR 버퍼 126과 SCVR 버퍼 127에 각각 저장된다. 이들 인터럽트 벡터들은 CPU 43과 53에 의하여 각각 읽어내어진다.
제5도의 설명에 있어서, 중앙 처리부 82로부터 얻어진 데이타 전송용 인터럽트 요구 신호와 통신 레지스터 101로부터 얻어진 통신용 인터럽트 요구 신호는 인터럽트 제어부 102에 공급되며, 인터럽트 제어부 102는 CPU 43에 관해서 인터럽트 요구 IRQ1, CPU 53에 관해서 인터럽트 요구 IRQ2를 발생한다. 인터럽트 제어부 102는 중앙 처리부 82로부터의 지시에 응답하여 인터럽트 요구 IRQ1과 IRQ2를 단자 103을 통해서 각각 CPU 43과 53에 공급한다. 다시 말하면, 인터럽트 제어부 102는 여러 인터럽트들을 인지하여, 단자 103에서 인터럽트 요구 IRQ1과 IRQ2를 제어한다. 더우기, 인터럽트 제어부 102는 또한 인터럽트들이 정상(normal)인지 비정상(abnormal)인지를 판단한다.
예를들면, CPU 43은 제6도에 도시된 버퍼 115에 메세지를 세트하며, 제7도에 도시된 LCCR 버퍼 120의 제어 비트 SINT를 세트하여 CPU 53에 대해서 인터럽트 요구를 행한다. SCCR 버퍼 121의 제어 비트 SIEN이 이 상태에서 CPU 53에 의하여 세트될 때에, 인터럽트 요구 신호는 AND 회로 125로부터 출력되어 인터럽트 제어부 103을 통해서 CPU 53에 공급된다.
CPU 53이 인터럽트 요구를 받은 경우에, CPU 53은 인터럽트 요구 응답신호 IACK2를 어서트(assert) 하며, 인터럽트 애크놀리지 싸이클을 행한다.
따라서, CPU 53은 SCSR 버퍼 123의 내용을 리이드(read)하여 CPU 43으로부터의 인터럽트가 있다는 것을 인지한다. CPU 53은 또한 상태 LPS의 내용으로부터 메세지의 수신을 요구하고 있는 것을 인지한다. 그러므로, CPU 53은 메세지버퍼 115의 내용을 리이드하고, 그의 내용을 수신한다.
그후, CPU 53은 SCCR 버퍼 121의 제어 비트 SICL을 세트하고, LCSR 버퍼 122와 SCSR 버퍼 123의 인터럽트 상태 비트 SIST를 클리어하여 통상의 처리를 이행한다.
메세지 통신은 상술된 일련의 동작들에 의하여 CPU 43으로부터 CPU 53에서 행해진다.
다음에는 CPU 43과 53이 DMAC 60A의 레지스터 87 또는 통신 레지스터 101을 액세스하는 슬레이브 동작에 대해서 서술할 것이다.
제8a도 내지 제8j도는 리이드 동작시에 DMAC 60A의 동작을 설명하기 위한 타이밍도이고, 제8k도 내지 제8s도는 라이트 동작시에 DMAC 60A의 동작을 설명하기 위한 타이밍도이다.
제8a도에 도시된 클럭신호 CLK는 DMAC 60A에 공급된다. 리이드 동작중에, DMAC 60A는 제8j도에 도시된 로우-레벨의 칩 선택 신호 CS1이 CPU 43으로부터 수신될 때에 슬레이브 모우드로 되고, 싸이클 Ts1에서 제8b도와 제8c도에 도시된 제어 신호 ABEN1과 AIN1을 로우-레벨로 세트하고, 제8f도에 도시된 어드레스를 CPU 43으로부터 거둬들인다. 더우기, DMAC 60A는 싸이클 Ts2에서 제8g도에 도시된 하이-레벨의 리이드/라이트 신호 R/W1에 응답하여 제8d도에 도시된 제어 신호 DBEN1을 로우-레벨로 세트하고, 제8e도에 도시된 제어신호 DIN1을 하이-레벨로 세트한다. 따라서, 레지스터 87과 101로부터 읽어낸 제8h도에 도시된 데이타는 DMAC 60A로부터 출력되며, DMAC 60A는 제8i도에 도시된 데이타 완료 신호 DC1을 출력한다.
라이트 동작중에, DMAC 60A는 제8p도에 도시된 로우-레벨의 리이드/라이트 신호 R/W1에 응답하여 제8m도와 제8n도에 각각 도시된 제어 신호 DBEN1와 DIN1을 로우-레벨로 세트한다. CPU 43으로부터 수신된 데이타는 레지스터 87 또는 통신 레지스터의 CPU 43에 따라서 공급된 어드레스에 라이트된다. 제8k도와 제8l도는 각각 제어 신호 ABEN1과 AIN1을 도시하며, 제8o도는 어드레스를 도시한다. 제8q도, 제8r도 및 제8s도는 각각 데이타, 데이타 완료 신호 DC1 및 칩 선택 신호 CS1을 도시한다.
다음에는 데이타 홀딩 레지스터 100을 통하지 않고 다이렉트 데이타 전송이 메모리 장치 41, 51과 I/O 장치 42, 52 사이에서 행해지는 경우에 DMAC 60A에 의하여 제어되는 싱글 전송에 대해서 서술하기로 한다.
데이타를 메모리 장치 41로부터 I/O 장치 42로 전송하기 위한 전송 요구가 있을 때, DMAC 60A는 동작 결정부 83으로부터의 지시에 응답하여 제9a도에 도시된 클럭 신호 CLK와 동기화시켜 메모리 장치 41과 I/O 장치 42에 관하여 제9b도에 도시된 어드레스, 제9d도에 도시된 어드레스 스트로브 신호 AS1, 제9e도에 도시된 데이타 스트로브 신호 DS1 및 제9f도에 도시된 리이드/라이트 신호 R/W1 등을 출력한다. 더우기, DMAC 60A는 I/O 장치 42에 관하여 제9t도에 도시된 데이타 전송 애크놀리지 신호 ACK를 출력한다.
이 상태에서, 제어 신호 AIN1, ABEND1, DIN1, DBEN1은 제9g도, 제9h도, 제9i도, 제9j도에 각각 도시되어 있다. 그러므로, 메모리 장치 41로부터 읽어낸 데이타는 I/O 장치 42에 전송되며, 제9k도에 도시된 데이타 완료 신호 DC1은 이 경우에 소오스인 메모리 장치 41로부터 출력된다. DMAC 60A로의 입력과 DMAC 60A로부터의 출력은 제9c도에 도시된 바와 같이 이 경우에서 금지된다. 상술된 동작은 시간 TT1에서 수행된다.
데이타 전송이 시스템 버스 40과 50을 통해서 메모리 장치 41로부터 I/O 장치 52로 행해지는 시간 TT2에서, 제어 신호 DIN1과 DBEN1은 각각 제9i도와 제9j도에 도시된 바와 같이 로우-레벨을 가지며, 제어신호 AIN2, ABEN2, DIN2 및 DBEN2는 각각 제9o도, 제9p도, 제9q도, 제9r도에 도시된 바와 같다. 더우기, 어드레스 스트로브 신호 AS2, 데이타 스트로브 신호 DS2 및 리이드/라이트 신호 R/W2 각각은 제9l도, 제9m도, 제9n도에 도시된 바와 같다. 그러므로, 메모리 장치 41로부터 읽어낸 데이타는 I/O 장치 52에 전송된다.
데이타 전송이 메모리 장치 51로부터 I/O 장치 42로 행해지는 시간 TT3에서, 이 경우에 소오스인 메모리 장치 51은 제9s도에 도시된 데이타 완료 신호 DC2를 DMAC 60A에 공급한다.
제9a도 내지 제9t도에서의 시간 TT4은 데이타 전송이 메모리 장치 51로부터 I/O 장치 52로 행해지는 시간을 나타낸다.
제10a도 내지 제10t도는 제9a도 내지 제9t도에 도시된 신호들에 각각 대응하는 신호들을 도시하는 타이밍도이다. 시간 TT5는 데이타 전송이 I/O 장치 42로부터 메모리 장치 41로 행해지는 시간을 나타내며, 시간 TT6는 데이타 전송이 I/O 장치 42로부터 메모리 장치 51로 행해지는 시간을 나타낸다. 또한, 시간 TT7은 데이타 전송이 I/O 장치 52로부터 메모리 장치 41로 행해지는 시간을 나타내며, 시간 TT8은 데이타 전송이 I/O 장치 52로부터 메모리 장치 51로 행해지는 시간을 나타낸다.
다음에는 다이렉트 데이타 전송이 데이타 홀딩 레지스터 100을 통하여 메모리 장치 41, 51과 I/O 장치 42, 52 사이에서 행해지는 경우에, DMAC 60A에 의하여 제어되는 듀얼 전송에 대해서 서술하기로 한다.
제11a도 내지 제11t도에 도시된 시간 TT10에서, DMAC 60A는 메모리 장치 51로부터 데이타를 읽어내며, 그 데이타를 데이타 홀딩 레지스터 100에 라이트한다.
다음, 시간 TT11에서 DMAC 60A는 데이타 홀딩 레지스터 100로부터 데이타를 읽어내며, 그 데이타를 I/O 장치 42에 공급한다. 이 경우에 어드레스는 I/O 장치 42를 지시하는 값을 갖는다.
유사하게, DMAC 60A는 시간 TT12에서 I/O 장치 42로부터 데이타를 읽어내며, 시간 TT13에서 메모리 장치 51로 그 데이타를 라이트한다. 제11a도 내지 제11t도는 각각 제9a 도 내지 제9t도에 도시된 신호들에 대응하는 신호들을 도시한다.
편의상, 메모리 장치 41로의 입력과 메모리 장치 41로부터의 출력이 16비트의 단위로 수행된다고 가정할 때, 데이타 버스 40b는 32비트를 가지며, 시스템 버스 40에 접속된 32비트 메모리 장치(도시되지 않았음)로의 입력과 32비트 메모리 장치로부터의 출력은 32비트의 단위로 수행되며, DMACI/O 장치 60A는 듀얼 전송을 행하는 경우에 제12a도 내지 제12k도에 도시된 타이밍들로 제어를 수행한다.
제12a도 내지 제12k도에 도시된 시간 TT2O에서, DMAC 60A는 1워어드가 16비트로 된 데이타를 메모리 장치 41로부터 읽어내며, 그 데이타를 데이타 홀딩 레지스터 100으로 라이트한다. 더우기, 시간 TT21에서, DMAC 60A는 1워어드가 16비트로 된 데이타를 메모리 장치 41로부터 읽어내며, 그 데이타를 데이타 홀딩 레지스터 100으로 라이트한다.
다음 시간 TT22에서, DMAC 60A는 32비트로 된 데이타(2워어드)를 데이타 홀딩 레지스터 100으로 읽어내며, 그 32비트 데이타를 32비트 메모리에 라이트한다. 제12a도 내지 제12k도는 각각 제9a도 내지 제9k도에 도시된 신호들에 대응하는 신호들을 도시한다.
그러므로, 상호 독립된 두 시스템 버스를 갖는 데이타 처리장치에서 싱글 및 듀얼 전송을 지원하기 위해서는 FIFO 버퍼도 주변회로도 모두 필요없다. 또한, 싱글 전송의 경우에는, 시스템 버스 40과 50을 사용하는 시간 TT2에서의 전송이 시스템 버스 40만을 사용하는 시간 TT1에서의 전송과 동일한 속도로 행해질 수 있기 때문에 그의 전송 효율이 높다.
그러므로, DMAC 60A에는 메세지 버퍼 115외에 슬레이브 제어부 84 및 상태 버퍼와 인터럽트 발생회로 116이 더 제공되기 때문에, CPU 43과 53 사이의 메세지 전송은 다른 외부 회로를 추가할 필요없이 DMAC 60A의 제어하에서 행해질 수 있다. 결과적으로, 하드웨어의 관점에서 필요한 부품의 수가 적으며, 데이타 처리장치의 설계가 용이하다.
제13도는 그의 동작원리를 설명하기 위해서, 본 발명에 따른 DMAC의 첫번째 실시예가 적용된 데이타 처리장치의 중요부분을 도시한다. 데이타 처리장치는 두개의 산호 독립된 시스템 버스 40과 50, 시스템 버스 40에 접속된 메모리 장치 41, 시스템 버스 50에 접속된 입/출력(I/O) 장치 52 등을 포함한다. DMAC 60A는 시스템 버스 40, 50 각각의 DMA 전송과 시스템 버스 40과 50 사이의 DMA 전송을 제어하기 위해서 상기 두 시스템 버스들 사이에 접속된다.
두 시스템 버스 40과 50을 통하여 메모리 장치 41로부터 I/O 장치 52로의 싱글 전송을 행하는 경우에, DMAC 60A는 시스템 버스 4상에 제1의 어드레스 스트로브 신호 AS1와, 메모리 장치 41에 대해 예정된 리이드 동작을 지시하는 제1의 리이드/라이트 신호 R/W1을 출력한다. 더우기, DMAC 60A는 시스템 버스 50상에 제2의 데이타 스트로브 신호 DS2와, I/O 장치 52에 대해 예정된 리이드 동작을 지시하는 제2의 리이드/라이트 신호 R/W2를 출력한다.
한편, 두 시스템 버스 50과 40을 통해서 I/O 장치 52로부터 메모리 장치 41로의 싱글 전송을 행하는 경우에, DMAC 60A는 시스템 버스 50상에 제2의 데이타 스트로브 신호 DS2와, I/O 장치 52에 대해 예정된 리이드 동작을 지시하는 제2의 리이드/라이트 신호 R/W2를 출력한다. 또한, DMAC 60A는 시스템 버스 40상에 제1의 어드레스 스트로브 신호 AS1, 제1의 데이타 스트로브 신호 DS1 및 메모리 장치 41에 대해 예정된 라이트 동작을 지시하는 제1의 리이드/라이트 신호 R/W1를 출력한다.
따라서, 데이타 처리장치의 구성을 복잡하게 하지 않고 두개의 독립된 시스템 버스 40과 50 사이의 싱글 전송을 할 수 있다.
제14도는 DMAC의 첫번째 실시예가 적용된 데이타 처리장치의 중요부분을 보다 상세히 도시하고 있다. 제14도에서, 제13도에 대응하는 동일 부분들은 동일한 참조번호들을 부여하였다. 상호 독립 시스템 버스 40과 50은 각각 어드레스 버스, 데이타 버스 및 제어 버스로 구성된다. 메모리 장치 41, I/O 장치 42, 중앙처리장치(CPU, 도시되지 않았음) 등은 시스템 버스 40에 접속된다. 유사하게, 메모리 장치 51, I/O 장치 52, CPU(도시되지 않았음) 등은 시스템 버스 50에 접속된다. DMAC 60A는 쌍방향 어드레스 버퍼 61를 통하여 시스템 버스 40과 50의 어드레스 버스들에 접속되며, 쌍방향 데이타 버퍼 62를 통하여 시스템 버스 40과 50의 데이타 버스들에 접속된다. 또한, DMAC 60A는 어드레스 버퍼 61의 ON/OFF 상태 제어용 제어 신호와 싱글 전송방향 제어용 제어신호를 어드레스 버퍼 61에 공급하므로써 어드레스를 시스템 버스 40 또는 50에 출력한다. 어드레스 전송을 행하는 메모리 장치가 접속된 시스템 버스상에 출력된다. 유사하게, DMAC 60A는 시스템 버스 40과 50사이의 데이타 전송을 인에이블하기 위해서 데이타 버퍼 62의 ON/OFF 상태 제어용 제어신호와 싱글 전송의 반향 제어용 제어신호를 데이타 버퍼 62에 공급한다.
먼저, 한 시스템 버스상에서 싱글 전송을 행하는 경우에 데이타 처리장치의 동작에 대해서 서술하기로 한다. 편의상, 싱글 전송이 시스템 버스 40상에서 메모리 장치 41로부터 I/O 장치 42로 행해진다고 가정한다. 제15도는 이러한 싱글 전송을 설명하기 위하여 데이타 처리장치의 중요부분을 도시한다.
제15도에서, DMAC 60A가 I/O 장치 42로부터 전송요구를 받았을 대, DMAC 60A에 메모리 장치 41에 대해 예정된 전송 어드레스를 시스템 버스 40의 어드레스 버스 상에 출력한다. 또한, DMAC 60A는 어드레스 스트로브 신호 AS1, 데이타 스트로브 신호 DS1, 및 메모리 장치 41에 대해 예정된 리이드/라이트 신호 R/W1을 전송을 시작하기 위해 시스템 버스 40의 제어버스상에 출력한다. 동시에, DMAC 60A는 I/O 장치 42에 대해 예정된 애크놀리지 신호 ACK를 시스템 버스 40의 제어 버스 상에 출력한다. I/O 장치 42는 메모리 장치 41에 대하여 출력된 제어 신호들의 사용에 의하여 제어된다. 다시 말하면, 시스템 버스 40의 제어 버스로부터의 메모리 장치 41에 대한 리이드/라이트 신호 R/W1은 인버터 INV에 의하여 반전되어, I/O 장치 42에 공급된다. I/O 장치 60A에는 메모리 장치 41로부터의 데이타 완료 신호 DC1이 시스템 버스 40의 제어 버스를 통하여 얻어질 때 통신의 종료가 통지된다.
제16a도 내지 제16l도는 싱글 전송이 단일 시스템 버스 상에서 행해지는 경우에 후술될 제17도와 제15도에 도시된 블록 시스템의 동작을 설명하기 위한 타이밍도이다. 케이스 I은 상술된 경우에 대한 각종 신호들의 타이밍들을 도시하며, 제16a도와 제16b도는 각각 시스템 클럭 신호 CLK와 전송 어드레스 ADR을 도시하며, 제16c도 내지 제16f도는 각각 신호 AS1, DS1, R/W1 및 DC1을 도시한다. 더우기, 제16l도는 애크놀리지 신호 ACK를 도시한다.
케이스 II는 싱글 전송이 시스템 버스 50상에서 I/O 장치 52로부터 메모리 장치 51로 행해지는 경우에 대한 각종 신호들의 타이밍이다. 제16g도 내지 제16j도는 각각 DMAC 60A로부터 시스템 버스 50상에 출력된 메모리 장치 51에 대한 어드레스 스트로브 신호 AS2, 데이타 스트로브 신호 DS2 리이드/라이트 신호 R/W2 및 데이타 완료 신호 DC2 등을 도시한다. 이 케이스 II에서의 데이타 처리장치의 동작은 상술된 케이스 I에서의 데이타 처리장치의 동작과 유사하기 때문에 그의 상세한 설명은 생략하기로 한다.
지금까지는 DMAC 60A가 I/O 장치 42와 52에 관하여 애크놀리지 신호 ACK를 출력하는 것을 서술하였다. 다음에는 I/O 장치 42와 52가 부가적으로 레디(ready) 신호의 출력 기능을 갖는 경우에 대해서 서술하기로 한다. 제17도는 메모리 장치 41로부터 I/O 장치 42로의 싱글 전송을 설명하기 위한 도면이며, 제18도는 I/O 장치 52로부터 메모리 장치 51로의 싱글 전송을 설명하기 위한 도면이다.
메모리 장치 41로부터 I/O 장치 42로의 싱글 전송을 행하는 경우에, 전송 어드레스 ADR은 DMAC 60A의 제어하에서 DMAC 60A로부터 메모리 장치 41로 공급되며, 신호 AS1, DS1 및 R/W1은 제17도에 ①로 나타낸 바와 같이 DMAC 60A로부터 메모리 장치 41에 공급된다. 또한, DMAC 60A는 신호 DS1, R/W1 및 애크놀리지 신호 ACK를 ①로 나타낸 바와 같이 I/O장치 42에 공급한다. 그러므로, 메모리 장치 41로부터의 데이타는 ②로 나타낸 바와 같이 I/O장치 42로 전송된다. 그 이후에, 메모리 장치 41은 DMAC 60A에 관해서 데이타 완료 신호 DC1을 출력하며, I/O장치 42는 ③으로 나타낸 바와 같이 DMAC 60A에 관해서 레디신호 IOREADY를 출력한다. 이 경우에 각종 신호들의 타이밍은 제16a도 내지 제16l도에서의 케이스 III으로 도시되어 있다. 제16k도는 레디신호 IOREADY를 도시한다. 이 경우에, DMAC 60A는 데이타 완료 신호 DC1과 레디 신호 IOREADY를 동시에 모니터하므로써 전송을 종료한다.
I/O 장치 52로부터 메모리 장치 51로의 싱글 전송을 행하는 경우에, 전송 어드레스 ADR은 DMAC 60A의 제어하에서 DMAC 60A로 부터 메모리 장치 51로 공급되며, 신호 AS2와 R/W2는 제18도에 ①로 나타낸 바와 같이 DMAC 60A로부터 메모리 장치 51로 공급된다. 또한 DMAC 60A ①로 나타낸 바와 같이 신호 R/W2와 애크놀리지 신호 ACK를 I/O 장치 52에 공급한다. 그러므로 I/O 장치 52로부터의 데이타는 ②로 나타낸바와 같이 메모리 장치 51에 전송된다. 다음에 I/O 장치 52는 ③으로 나타낸 바와같이 DMAC 60A에 관해서 레디 신호 IOREADY를 출력한다. 그 이후, DMAC 60A가 레디 신호 IOREADY를 받았을 때 DMAC 60A는 ④로 나타낸 바와같이 데이타 스트로브 신호 DS2를 메모리 장치 51에 공급하며, 메모리 장치 51은 ⑤로 나타낸 바와같이 데이타 완료 신호 DC2를 DMAC 60A에 공급한다. 이 경우의 각종 신호들이 타이밍은 제15a도 내지 제16l도에 케이스 IV로서 도시되어 있다. 이 경우에, DMAC 60A는 데이타 완료 신호 DC2가 메모리 장치 51로 부터 수신되는 경우에 전송을 종료한다.
I/O 장치 42(52)의 데이타 스트로브 신호는 데이타 처리장치에 따라 다르게 발생될 수 있으며, 예를들면 DMAC 60A로부터 출력된 애크놀리지 신호 ACK와 리이드/라이트 신호 R/W1(R/W2)를 기초로하여 발생될 수 있다.
다음에는 두 시스템 버스 40과 50 사이의 싱글전송을 행하는 경우에 데이타 처리장치의 동작에 대해서 서술하기로 한다. 편의상, 싱글 전송이 시스템 버스 40과 50 사이에서 메모리 장치 41로부터 I/O 장치 52로 행해진다고 가정한다. 제19도는 이러한 싱글 전송을 설명하기 위한 데이타 처리장치의 중요부분을 도시하고 있다. 제19도에서 DMAC 60A가 I/O 장치 52로부터 전송 요구를 받았을 대, DMAC 60A는 시스템 버스 40의 어드레스 버스 상에 전송 어드레스 ADR을 출력하며, 또한 이 전송 어드레스 ADR을 메모리 장치 41에 어드레스 버퍼 61을 통해서 공급한다. 더우기 DMAC 60A는 어드레스 스트로브 신호 AS1, 데이타 스트로브 신호 DS1 및 리이드 동작을 지시하는 리이드/라이트 신호 R/W1을 메모리 장치 41에 시스템 버스 40의 제어 버스를 통해서 공급한다. 동시에, DMAC 60A는 애크놀리지 신호 ACK를 I/O장치 52에 시스템 버스 50의 제어 버스를 통해서 공급한다. 또한 DMAC 60A는 데이타 스트로브 신호 DS2와, 리이드 동작을 지시하는 리이드/라이트 신호 R/W2를 I/O장치 52에 시스템 버스 50의 제어 버스를 통해서 공급한다. 따라서, 메모리 장치 41로 부터의 데이타는 시스템 버스 40의 데이타 버스, 데이타 버퍼 62 및 시스템 버스 50의 데이타 버스를 통해서 I/O 장치 52에 전송된다.
전송 어드레스 ADR이 전송되면, 어드레스 버퍼 61은 DMAC 60A에 의하여 ON으로 되고, 전송 방향은 시스템 버스 50으로 부터 시스템 버스 40으로 절환된다. 유사하게, 데이타 버퍼 62은 데이타를 전송할 때에 DMAC 60A에 의하여 ON되며, 전송 방향은 시스템 버스 40으로 부터 시스템 버스 50으로 절환된다.
제20a도 내지 제20l도는 두 시스템 버스들 사이의 싱글 전송을 행할 때, 제19도와 후술될 제21도에 도시된 블록 시스템의 동작을 설명하기 위한 타이밍도이다. 케이스 V는 상술된 경우에 대한 각종 신호들의 타이밍을 도시하고 있다. 제20a도 내지 제20l도에서, 제16a도 내지 제16l도에 도시된 바와같이 동일 신호 명칭을 사용한다. 케이스 VII는 I/O 장치 52가 DMAC 60A에 관해서 래디신호 IOREADY를 출력할 때의 각종 신호들의 타이밍을 도시하고 있다. 이 케이스 VII에서, DMAC 60A는 I/O 장치 52로부터의 래디 신호 IOREADY와 메모리 장치 41로부터의 데이타 완료 신호 DC1을 동시에 모니터하므로써 전송을 종료한다.
다음에는 두 시스템 버스 40과 50 사이의 I/O장치 42로부터 메모리 장치 51로의 싱글 전송을 행할 때에 데이타 처리장치의 동작을 서술하기로 한다. 제21도는 이러한 싱글전송을 설명하기 위한 데이타 처리장치의 중요 부분을 나타낸다. 제21도에서 DMAC 60A가 I/O 장치 42로 부터 전송 요구를 받았을 때, DMAC 60A는 데이타 스트로브 신호 DS1과 라이트 동작을 지시하는 리이드/라이트 신호 R/W1을 I/O 장치 42에 시스템 버스의 40의 제어 버스를 통해서 출력한다. 동시에, DMAC 60A는 전송 어드ADR을 메모리 장치 51에 시스템 버스 50의 어드레스 버스와 어드레스 버퍼 61을 통해서 공급한다. 더우기, DMAC 60A는 어드레스 스트로브 신호 AS2, 데이타 스트로브 신호 DS2 및 라이트 동작을 지시하는 리이드/라이트 신호 R/W2를 메모리 장치 51에 시스템 버스 50의 제어버스를 통해서 출력한다. 또한, DMAC 60A는 애크놀리지 신호 ACK를 I/O 장치 42에 시스템 버스 40의 제어 버스를 통해서 공급한다. 그러므로, I/O 장치 42로부터의 데이타는 싱글 전송에 의하여 메모리 장치 51에 시스템 버스 40의 데이타 버스, 데이타 버퍼 62 및 시스템 버스 50의 데이타 버스등을 통하여 전송된다.
이 경우에, 버퍼 61과 62가 ON될 때, 그의 전송 방향은 DMAC 60A의 제어에 의하여 시스템 버스 50으로 부터 시스템 버스 40으로 모두 변환된다. 케이스 VI는 이 경우의 각종 신호들의 타이밍을 나타낸다.
케이스 VIII는 I/O 장치 42가 DMAC 60A에 관해서 레디 신호 IOREADY를 출려할 때의 각종 신호들의 타이밍을 나타낸다. 이 케이스 VIII에서, DMAC 60A는 레디 신호 IOREADY가 I/O 장치 42로 부터 수신될 때 메모리 장치 51에 대한 데이타 스트로브 신호 DS2를 액티브로 만들며, 메모리 장치 51로부터의 데이타 완료 신호 DC2를 모니터하므로써 전송을 종료한다.
다음에는 상술된 각종 제어 신호들을 발생하고 출력하는 DMAC 60A의 단자 제어부의 한 실시예를 제22도에 의거하여 서술하기로 한다. 단자 제어부는 일반적으로 제어 정보 제어부 603, 레지스터 604, 디코우더 605, 전송 정보 발생부 606, 출력 신호 발생부 607을 갖는다. 제어 정보 제어부 603은 DMAC 60A의 중앙 처리부 82로부터 제어신호를 수신하는 정보 세팅용 타이밍 시이퀀서 608, DMAC 60A의 내부 데이타 버스 602에 접속된 래치 회로 609 및 전송 정보 발생용 프로그램어블 로직 어레이(PLA) 610을 갖는다.
타이밍 시이퀀서 608은 중앙 처리부 82로 부터의 제어 신호를 기초로 하여 래치 회로 609의 래치 타이밍을 제어한다. PLA 610은 래치 회로 609를 통하여 내부 데이타 버스 602로 얻은 전송 정보를 기초로 하여 싱글 전송을 위해 사용되는 각종 제어 신호들에 관한 정보를 발생하며, 이러한 정보를 레지스터 604에 저장한다. 내부 데이타 버스 602로 부터의 전송 정보는 소오스가 시스템 버스 40에 접속된 메모리 장치 41인지 아닌지, 전송이 싱글 전송인지 아닌지 등등의 정보를 포함한다. 따라서, PLA 610으로 부터 출력된 정보는 어드레스 스트로브 신호 AS1이 액티브인지 아닌지, 등등의 정보를 포함한다. 한편, 전송 정보 발생부 604는 다른 전송 정보를 발생하며, 이 다른 전송 정보를 디코우더 605에 공급한다. 그러므로, 디코우더 605는 전송 정보 발생부 606으로 부터의 정보를 기초로 하여 전송 모우드들에 의존하는 각종 제어 신호들에 따른 정보를 출력한다. 출력 신호 발생부 607은 디코우더 605로 부터의 정보를 기초로 하여 신호 AS1, DS1, R/W1, AS2, DS2, R/W2 및 ACK와 버퍼 61과 62제어용 제어 신호들을 발생한다.
본 실시예에 따라, 시스템 버스 50상에 출력된 제어 신호들은 DMAC 60A로부터 시스템 버스 40상에 출력된 제어 신호들의 사용에 의하여 발생되지 않으며, DMAC 60A는 오로지 두 시스템 버스 40과 50에 대한 제어 신호들을 발생한다. 이러한 이유 때문에 두 시스템 버스 40과 50 사이의 싱글 전송을 행하는 경우에, 특별히 복잡한 제어 회로에 의하여 시스템 버스 40과 50에 접속된 장치들을 제어할 필요가 없다.
더우기, DMAC 60A는 두 시스템 버스 40과 50 사이의 싱글 전송을 행하는 경우에 데이타 스트로브 신호 DS1과 DS2를 대응하는 시스템 버스 40과 50 상에 출력한다. 동일 시스템 버스 상에서 싱글 전송을 행하는 경우에, I/O 장치의 데이타 스트로브 신호는 예를들면 DMAC 60A로부터의 리이드/라이트 신호와 애크놀리지 신호를 기초로 하여 발생된다. 그러나, 제20a도 내지 제20l도로 부터 알 수 있는 바와같이, DMAC 60A로 부터의 동일 데이타 스트로브 신호는 케이스 V와 VI에서의 데이타 스트로브 신호 DS1과 DS2로서 사용된다. 따라서, 두 시스템 버스 40과 50 사이의 싱글 전송을 행하는 경우에 데이타 스트로브 신호를 발생하는 회로의 회로구성을 간단하게 할 수 있다.
또한, 제20a도 내지 제20l도에서 알 수 있는 바와같이, DMAC 60A로 부터의 동일 리이드/라이트 신호는 케이스 V 내지 VIII에서의 리이드/라이트 신호 R/W1과 R/W2로서 사용된다. 결과적으로, 두 시스템 버스 40과 50 사이의 싱글 전송을 행하는 경우에 리이드/라이트 신호를 발생하는 회로의 회로구성을 간단하게 할 수 있다. 더우기, 메모리 장치에 관한 리이드/라이트 신호는 동일 시스템 버스 상에서의 싱글 전송을 행할 때에 반전되어 I/O 장치에 공급된다. 따라서, I/O 장치를 제어하기 위한 셀렉터 등의 특별한 회로를 설치할 필요가 없다.
다음에는 본 발명에 따른 DMAC의 첫번째 실시예가 제공딘 다른 데이타 처리장치에 대해서 서술하기로 한다. 제23도는 본 발명에 따른 I/O 장치의 첫번째 실시예가 적용된 데이타 처리장치의 중요부분을 나타낸다. 제23도에서, 제14도에 대응하는 부분들과 근본적으로 동일한 부분은 동일한 참조번호들을 부여하였다. 시스템 버스 40은 어드레스 버스 40a 데이타 버스 40b 및 제어 버스 40c로 구성된다. 메모리 장치 41, I/O 장치 42 및 버스 마스터로서 사용되는 CPU 43은 시스템 버스 40에 접속된다. 유사하게, 시스템 버스 50은 어드레스 버스 50a, 데이타 버스 50b 및 제어 버스 50c로 구성되며, 메모리 51, I/O 장치 52 및 버스 마스터용 CPU 53은 시스템 버스 50에 접속된다.
DMAC 60A는 제어 버스 40c와 50c에 직접적으로 접속된다. 더우기, DMAC 60A는 쌍방향 버퍼 61a와 61b를 통해서 어드레스 버스 40a와 40b에 접속되고, 쌍방향 버퍼 62a와 62b를 통해서 데이타 버스 40a와 50b에 접속된다. 어드레스 버퍼 61a와 61b는 제14도에 도시된 어드레스 버퍼 61에 대응하며, 데이타 버퍼 62a와 62b는 데이타 버퍼 62에 대응한다.
데이타 버퍼 62a와 62b는 제24도에 도시된 구성을 가질 수 있다. 데이타 버퍼 62a는 도시된 바와같이 연결된 게이트 회로 73a, 74a와 3상태 버퍼 75a 76a를 갖는다. 데이타 버퍼 62b는 도시된 바와같이 연결된 게이트 회로 73b, 74b와 3상태 버퍼 75b, 76b를 갖는다. 데이타 버퍼 62a와 62b의 ON/OFF 상태를 제어하기 위한 DMAC 60A로 부터의 제어신호 DBEN1과 DBEN2는 각각 단자 71a와 71b(EN)에 가해진다. 제어신호 DBEN1은 데이타 버퍼 62a의 게이트 회로 73a와 74a에 공급되며, 제어 신호 DBEN2는 데이타 버퍼 62b의 게이트 회로 73b와 74b에 공급된다. 전송방향을 제어하기 위한 DMAC 60A로 부터의 제어신호 DIN1과 DIN2는 각각 단자 72a와 72b(T/R)에 가해진다. 제어신호 DIN1은 데이타 버퍼 62a의 게이트 회로 73a와 74a에 공급되며, 제어신호 DIN2는 데이타 버퍼 62b의 게이트 회로 73a와 74b에 공급된다.
DMAC 60A의 데이타 버스 40b와 입/출력 단자 77을 연결하기 위해서는, 제어신호 DIN1과 DBEN1이 모두 로우-레벨일 때에 3상태 버퍼 75a가 콘닥티브되고, 제어신호 DIN1이 하이-레벨이고 제어신호 DBEN1이 로우-레벨일 때에 3상태 버퍼 76a가 콘닥티브된다. 그러므로, 3상태 버퍼 76a와 76b가 콘닥티브될 때, 예를들면 데이타 버스 40b와 50b를 연결할 수 있다.
어드레스 버퍼 61a와 61b는 데이타 버퍼 62a와 62b에서의 것들과 동일한 구성을 갖는다. 따라서, 그의 설명은 생략하기로 한다. 어드레스 버퍼 61a는 각각 EN과 T/R에서 ON/OFF 상태를 제어하는 제어 신호 ABEN1과 전송 방향을 제어하는 제어신호 AIN1을 수신하며, 어드레스 버퍼 61b는 각각 단자 EN과 T/R에서 ON/OFF 상태를 제어하는 제어신호 ABEN2와 전송방향을 제어하는 제어신호 WAIN2를 수신한다.
다음에는 제1-제3의 시스템들을 사용하는 데이타 처리장치에 적용된 본 발명에 따른 DMAC의 두번째 실시예에 대해서 서술하기로 한다.
제1의 시스템에 따라, DMAC 60B는 CPU 43이 제25도에 도시된 바와같이 접속된 시스템 버스 40에 접속된다. 제25도에서, 제15도에 대응하는 동일 부분들은 동일한 참조번호들을 부여하였으며, 그의 설명은 생략하기로 한다. 제1의 시스템이 적용될 때의 DMAC 60B의 모우드를 로컬(local) 모우드라 한다. 제25도에서, DMAC 60B는 시스템 버스 40 상의 DMA 전송을 제어하며, 버퍼 61a와 62a는 버스 드라이버들(bus drivers)로서 사용된다.
제2의 시스템에 따라, DMAC 60B는 또한 CPU가 제26도에 도시된 바와같이 시스템 버스 50에 접속되지 않은 시스템 버스 50에 접속된다. 제26도에서, 제25도에 대응하는 동일 부분들은 동일한 참조번호들을 부여하였고, 그의 설명은 생략하기로 한다. 제2의 시스템이 적용될 때의 DMAC 60B의 모우드를 리모트(remote) 모우드라 한다. 제26도에서, DMAC 60B는 항상 시스템 버스 50의 전휴권을 갖는다. 버퍼 61a와 62a는 버스 아이솔레이터들(bus isolators)로서 사용되며, 버퍼 61b와 62는 버스 드라이버들로서 사용된다.
제3의 시스템에 따라, 전술된 제23도에 도시된 바와같이 DMAC 60B는 CPU 43이 접속된 시스템 버스 40과 CPU 53이 접속된 시스템 버스 50에 접속된다. 이 경우에서 시스템 블록도가 제23도에서와 동일하기 때문에, DMAC 60B의 두번째 실시예는 제23도에 간단하게 나타나있다. 제3의 시스템이 적용될 때의 DMAC 60B의 모우드를 서브채널(subchannel) 모우드라 한다.
제27도는 본 발명에 따른 DMAC의 두번째 실시예를 나타낸다. 제27도에서, 제5도에 대응하는 부분들과 근본적으로 같은 부분들은 동일 참조번호를 부여하였고, 그의 설명은 생략하기로 한다. DMAC 60B는 제5도에 도시된 DMAC 60A의 요소들 외에 버스 구성 결정부 105를 더 포함한다.
버스 구성 결정부 105는 내부 어드레스 버스와 내부 데이타 버스에 접속된다. 예를들면, 시스템이 전원이 ON되면, CPU 43은 버스 구성 결정부 105의 라이트 액세스를 행하고, 버스 구성 결정부 105내의 버스 정의 레지스터(BDR) 106에서 버스 구성(즉, 시스템)을 정의하는 버스 정의 데이타를 설정하고, 버스 구성 결정부 105내의 채널 버스 속성 레지스터(CAR) 143에서 어떤 채널이 어느 CPU에 의하여 제어되는 가를 정의하는 채널 버스 속성 데이타를 설정한다. 레지스터 106과 143에서 데이타의 상술된 설정은 칩 선택 신호 CS1을 CPU 43으로 부터 슬레이브 제어부 84에 공급하고 라이트 요구를 슬레이브 제어부 84로부터 버스 구성 결정부 105에 공급하므로써 행해진다. 버스 구성 결정부 105는 그 안에 저장된 데이타로 부터 모우드 신호들을 발생하며 이 모우드 신호들은 제1, 제2, 제3의 시스템들을 나타낸다. 즉, 모우드 신호들은 DMAC 60B의 로컬, 리모트, 서브채널을 나타낸다. 더우기, 버스 구성 결정부 105는 데이타 전송을 행하는 4채널들의 각각에 대해 각 채널을 제어하는 CPU(43 또는 53)를 나타내는 채널 버스 속성 신호를 발생한다. 버스 구성 결정부 105로 부터의 모우드 신호들과 채널 버스 속성 신호들은 중앙 처리부 82, 동작 결정부 83, 버스 제어부 90 및 단자 제어부 93에 공급된다.
제28도는 버스 구성 결정부 105의 실시예를 나타낸다. 제28도에서, 디코우어 140은 슬레이브 제어부 84로 부터의 라이트/리이드 요구가 단자 141을 통하여 얻어지 때 내부 어드레스 버스 142로 부터 공급된 어드레스를 디코우드(decode)하며, 레지스터 106과 143에 대한 라이트 인에이블 신호와 리이드 인에이블 신호를 발생한다.
버스 정의 레지스터 106은, 라이트 인에이블 신호가 버스 정의 레지스터 106에 의하여 수신될 때에 내부 데이타 버스 144를 통해서 예를들면 CPU 43으로 부터 얻어진 2-비트 버스 정의 데이타를 저장한다. 버스 정의 레지스터 106은 항상 저장된 데이타를 동작 모우드 결정회로 145에 공급하며, 리이드 인에이블 신호가 디코우더 140으로 부터 수신될 때에 저장된 데이타를 내부 데이타 버스 144에 공급한다.
채널 버스 속성 레지스터 143은, 라이트 인에이블 신호가 채널 버스 속성 레지스터 143에 의하여 수신될 때에 예를들면 CPU 43으로 부터 얻어진 4-비트 채널 버스 속성 데이타를 내부 데이타 버스 144를 통해서 저장한다. 채널 버스 속성 데이타는 DMAC 60B내에서 데이타 전송을 독립적으로 행하는 4채널들의 각각에 대한 각 채널을 제어하는 CPU(43 또는 53)를 나타낸다. 채널 버스 속성 데이타의 1비트는 1채널에 대응하며, 각 비트는 비트 값이 ″0″일 때 CPU 43에 대응하며, 비트 값이 ″1″일 때 CPU 53에 대응한다. 채널 버스 속성 데이타는 버스 정의 레지스터 106에 버스 정의 데이타를 설정하는 것과 같은 시간에 채널 버스 속성 레지스터 143에 설정된다. 채널 버스 속성 레지스터 143은 항상 저장된 데이타를 AND 회로 146에 공급하며, 리이드 인에이블 신호가 디코우더 140으로 부터 수신될 때에 저장된 데이타를 내부 데이타 버스 144에 공급한다.
동작 모우드 결정회로 145는 버스 정의 레지스터 106으로 부터 버스 정의 데이타로 부터의 데이타를 디코우드하며, 로컬, 리모트 및 서브채널 모우드들을 나타내는 모우드 신호들을 발생한다. 로컬, 리모트 및 서브채널 모우드들을 나타내는 모우드 신호들은 각각 단자 147, 148 및 149로 부터 출력된다. 더우기, 값 ″1″이 단자 149로부터 출력될 때에 서브채널 모우드를 나타내는 모우드 신호는 AND 회로 146에 공급된다.
AND회로 146은 4-비트 출력 신호를 출력하도록 설계되어 있으며, 단자 150을 통하여 채널 버스 속성 레지스터 113으로 부터 4-비트 데이타를 서브채널 모우드에서만 채널 버스 속성 신호로서 출력한다. 로컬과 리모트 모우드들에서, 채널 버스 속성 신호의 4비트 모우드는 채널들의 모두가 CPU 43에 의하여 제어되는 것을 나타내는 ″0″이 된다.
다음에는 예를들면 CPU 43이 DMAC 60B의 레지스터 106과 143의 액세스를 행하는 슬레이브 동작에 대해 두번째 실시예에 관련되어 전술된 제8a도 내지 제8s도에 의거하여 서술하기로 한다.
제8a도에 도시된 클럭신호 CLK는 DMAC 60B에 공급된다. 리이드 동작중에, DMAC 60B는 제8j도에 도시된 로우-레벨의 칩 선택신호 CS1이 CPU 43으로 부터 수신될 때에 슬레이브 모우드에 들어가며, 싸이클 Ts1에서 제8f도에 도시된 어드레스를 CPU 43으로 부터 받아들기 위해 제8b도와 제8c도에 각각 도시된 제어 신호 ABEN1과 AIN1을 로우-레벨로 설정한다. 더우기, DMAC 60B는 제8g도에 도시된 하이-레벨의 리이드/라이트 신호 R/W1에 응답하여 싸이클 TS4에서 제8e도에 도시된 제어신호 DIN1을 하이-레벨로 설정하고, 제8d도에 도시된 제어신호 DBEN1을 로우-레벨로 설정한다. 따라서, 버스 정의 레지스터 106으로 부터 읽어낸 제8h도의 데이타는 DMAC 60B로 부터 출력되며, DMAC 60B는 제8i도에 도시된 데이타 완료신호 DC1을 출력한다.
라이트 동작중에, DMAC 60B는 제8p도에 도시된 로우-레벨의 리이드/라이트 신호 R/W1에 응답하여 제8m도와 제8n도에 각각 도시된 제어신호 DBEN1과 DIN1을 로우-레벨로 설정한다. CPU 43으로 부터 수신된 데이타는 CPU 43으로 부터 공급된 레지스터 87 또는 통신 레지스터 101의 어드레스에 라이트된다. 버스구성을 정의하는 CPU 43으로 부터의 데이타는 버스구성 결정부 105의 버스 정의 레지스터 106에 라이트된다. 제8k도와 제8l도는 각각 제어신호 ABEN1과 AIN1을 나타내며, 제8o도는 어드레스를 나타낸다. 제8q, 제8r도 및 제8s도는 각각 데이타, 데이타완료신호 DC1 및 칩 선택 신호 CS1을 나타낸다.
제29도는 제27도에 도시된 DMAC를 넣은 시스템 랙의 실시예를 나타낸다. 제29도에 도시된 시스템 랙 160에서, DMAC 60B는 보오드 161상에 설치되며, 메모리 장치 41, I/O 장치 42 및 CPU 43이 제공된 보오드(도시되지 않았음)는 보오드 161의 우측공간 160a에 삽입된다. 이러한 보오드(도시되지 않았음)는 배면(back plane) 162에 의하여 보오드 161에 연결된다. 다시말하면, 제1의 시스템을 사용하는 데이타 처리 장치는 공간 160a내에 단독으로 구성된다.
제1의 시스템을 사용하는 데이타 처리장치를 제2의 시스템을 사용하는 데이타 처리장치로 확장하는 경우에는, 메모리 장치 51과 I/O 장치 52가 제공된 보오드(도시되지 않았음)가 보오드 161의 좌측공간 160b에 삽입된다.
제2의 시스템을 사용하는 데이타 처리장치를 제3의 시스템을 사용하는 데이타 처리장치로 더 확장하는 경우에는, CPU 53이 제공된 보오드(도시되지 않았음)가 공간 160b에 더 삽입된다.
제1의 시스템으로부터 제2의 시스템으로 데이타 처리장치의 시스템을 확장하는 경우에는 하나의 보오드를 추가하고, CPU 43에 의하여 DMAC 60B에 설정된 버스 정의 데이타를 변경하는 것만이 필요하다. 제1 또는 제2의 시스템으로부터 제3의 시스템으로 데이타 처리장치의 시스템을 확장하는 경우에는, 하나 또는 두개의 보오드를 추가하고, 버스 정의 데이타와 채널 버스 속성 데이타를 변경하는 것만이 필요하다. 그러므로, 데이타 처리장치의 시스템을 확장하는 경우에는 DMAC 60B가 설치된 보오드 161을 변경할 필요가 없으며, 데이타 처리장치의 시스템 확장성이 향상된다.
제30도는 대규모 집적회로(LSIC)의 형태로 제작된 본 발명에 따른 DMAC 60A(또는 60B)를 나타낸다. DMAC 60A는 어드레스 입/출력 단자 A 0-A 29, 데이타 입/출력 단자 D 0-D 31, 로컬 사이드 버스 제어단자 R/W1, CS1, AS1, DC1 및 DS1, 로컬사이드 버퍼 제어단자 ABEN1, AIN1, DBEN1 및 DIN1, 로컬 사이드 버스 제어단자 HREQ1과 HACK1, 로컬사이드 인터럽트 제어단자 IRQ1과 IACK1, 클럭 입력 단자 CLK, 확장된 사이드 버스 제어단자 R/W2, CS2, AS2, DC2 및 DS2 확장된 사이드 버퍼 제어단자 ABDN2, AIN2, DBEN2 및 DIN2, 확장된 사이드 버스 제어단자 HREQ2와 HACK2, 확장된 인터럽트 제어단자 IRQ2와 IACK2, 전원전압단자 Vcc와 GND 및 주변 제어단자 REQ 0-REQ 3, ACK 0-ACK 3, PCL 0-PCL 3등을 포함한다.
DMAC 60A가 버스 마스터일 때, 어드레스 입/출력 단자 A) -A 29는 액세스가 행해지도록 외부장치의 어드레스를 출력한다. 한편, DMAC 60A가 버스 슬레이브일 때, 어드레스 입/출력 단자 A 0-A 29는 내부 레지스터를 선택하기 위한 어드레스를 입력한다. 어드레스 입/출력 단자 A 0-A 29의 모두는 아이들(IDLE) 상태에서 고임피던스를 갖는다.
데이타 입/출력 단자 D 0-D 31은 DMAC 60A가 버스 슬레이브일 때에 DMAC 60A와 CPU 사이의 데이타 전송을 위해서 사용되며, DMAC 60A가 버스 마스터일 때에 DMAC 60A와 외부장치 사이의 데이타 전송을 위해서 사용된다.
단자 AS1과 AS2는 각각, DMAC 60A가 버스 마스터일 때, DMAC 60A로부터 출력된 어드레스가 유효하다는 것을 지시하는 어드레스 스트로브 신호 AS1과 AS2를 출력한다. 단자 DS1과 DS2는 각각, DMAC 60A가 버스 마스터일 때, DMAC 60A로부터 출력된 데이타가 라이트 동작중에 유효하고 외부장치가 리이드 동작중에 데이타를 출력할 수도 있다는 것을 지시하는 데이타 스트로브 신호 DS1과 DS2를 출력한다. 입/출력 단자 R/W1과 R/W2는 데이타 버스 상에서 데이타 전송의 방향을 제어하기 위하여 사용된다. DMAC 60A가 버스 마스터일 때, 외부 장치에 관한 리이드/라이트 신호 R/W1과 R/W2는 입/출력 단자 R/W1과 R/W2로부터 출력되는데, 로우-레벨은 외부장치에서의 라이트 동작을 지시하며, 하이-레벨은 외부 장치로부터의 리이드 동작을 지시한다. DMAC 60A가 버스 슬레이브일 때, CPU로부터의 리이드/라이트 신호 R/W1과 R/W2는 입/출력 단자 R/W1과 R/W2로 입력되어 DMAC 60A의 레지스터에 공급되는데, 로우-레벨은 레지스터에서의 라이트 동작을 지시하며, 하이-레벨은 레지스터로부터의 리이드 동작을 지시한다.
입/출력 단자 DC1과 DC2는 각각 데이타 버스상의 데이타가 유효하다는 것을 지시하고 데이타 라이트 동작이 완료되었다는 것을 지시하는 데이타 완료신호 DC1과 DC2를 입력하고 출력한다. 입/출력단자 DC1과 DC2는 각각, DMAC 60A가 버스 슬레이브일 때, 데이타가 DMAC 60A의 레지스터에 라이트되었다는 것 또는 레지스터의 내용이 데이타 버스상에 출력되었다는 것을 지시하는 데이타 완료신호 DC1과 DC2를 출력한다. DMAC 60A가 버스 마스터일 때, 입/출력 단자 DC1과 DC2는 각각, 외부장치의 데이타가 유효하다는 것 또는 외부 장치에서의 데이타 라이트 동작이 완료되었다는 것을 지시하는 데이타 완료신호 DC1과 DC2를 입력한다. 입력단자 CS1과 CS2는 각각, DMAC 60A의 내부 레지스터로부터 데이타를 리이드하고 DMAC 60A의 내부 레지스터에 데이타를 라이트하기 위하여 칩 선택 신호 CS1과 CS2를 입력한다.
출력단자 ABEN1과 ABEN2는 각각 어드레스 버스 인에이블 신호 ABEN1과 ABEN2를 출력한다. DMAC 60A가 버스 마스터 또는 버스 슬레이브일 때, 출력단자 ABEN1과 ABEN2는 각각 DMAC 60A와 외부 어드레스 버스 사이에 설치된 어드레스 버퍼들을 제어하기 위하여 어드레스 버스 인에이블 신호 ABEN1과 ABEN2를 출력한다. 출력단자 AIN1과 AIN2는 각각 DMAC 60A와 외부 어드레스 버스들 사이에 설치된 어드레스 버퍼들의 어드레스 전송방향을 제어하기 위하여 어드레스 인 신호(address in signal) AIN1과 AIN2를 출력한다. 어드레스 인 신호 AIN1과 AIN2는 각각 외부 어드레스 버스들로 부터 DMAC 60A로 어드레스들을 인터럽트할 때에 로우-레벨을 갖는다. 출력단자 DBEN1과 DBEN2는 각각 DMAC 60A와 외부 데이타 버스들 사이에 설치된 데이타 버퍼들을 제어하기 위해서 DMAC 60A가 버스 마스터 또는 버스 슬레이브일 때 데이타 버스 인에이블 신호 DBEN1과 DBEN2를 출력한다. 출력단자 DIN1과 DIN2는 각각 DMAC 60A와 외부 데이타 버스들 사이에 제공된 데이타 버퍼들의 데이타 전송방향을 제어하기 위하여 데이타 인 신호 DIN1과 DIN2를 출력한다. 데이타 인 신호 DIN1과 DIN2는 각각 데이타가 외부 데이타 버스로부터 DMAC 60A에 입력될 때 로우-레벨을 갖는다.
출력단자 HREQ1과 HREQ2는 각각 DMAC 60A가 외부 시스템 버스의 사용권을 요구하는 것을 지시하는 홀드요구 HREQ1과 HREQ2를 출력한다. 입력단자 HACK1과 HACK2는 각각 홀드 애크놀리지 신호 HACK1과 HACK2를 입력하며, DMAC 60A가 외부 시스템 버스의 사용권을 얻었을 때에 DMAC 60A에 통지된다. 출력단자 IRQ1과 IRQ2는 각각 인터럽트 처리를 요구하기 위해서 인터럽트 요구신호 IRQ1과 IRQ2를 출력한다. 입력단자 IACK1과 IACK2는 각각 CPU로 부터 인터럽트 애크놀리지 응답을 수신하기 위해서 인터럽트 애크놀리지 신호 IACK1과 IACK2를 입력한다. 인터럽트 애크놀리지 신호 IACK1과 IACK2가 어서트(assert)될 때, 인터럽트 애크놀리지 싸이클이 실행되며, 인터럽트 벡터가 출력된다.
입력단자 REQ 0-REQ 3은 각각 입/출력 장치로부터 데이타 전송 요구 신호 REQ 0-REQ 3을 입력한다. 출력단자 ACK 0-ACK 3은 각각 DMA 전송 싸이클을 어서트하고 입/출력 장치에 실행해야 할 전송을 통지하기 위해서 데이타 전송 애크놀리지 신호 ACK 0-ACK 3을 출력한다.
클럭 입력단자 CLK는 DMAC 60A의 동작 클럭신호 CLK를 입력한다. 동작 클럭신호 CLK는 클럭 발생기(도시되지 않았음)에서 발생되며, 전원전압 단자 Vcc는 예를들면 +5V의 전원전압을 수신하며, 전원전압 단자 GND는 접지되어 있다.
더우기, 본 발명은 이들 실시예들로만 제한되지 않으며, 본 발명의 범위를 벗어나지 않고 다양한 수정과 변형을 가할 수 있다.

Claims (17)

  1. 상호 독립된 제1, 제2의 시스템 버스, 제1의 시스템 버스에 접속된 제1의 주변장치, 제2의 시스템 버스에 접속된 제2의 주변장치, 제1, 제2의 시스템 버스 들중의 적어도 하나에 접속된 중앙처리장치 및 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 전송방향을 제어하기 위한 버퍼 수단들을 포함하는 데이타 처리장치에서의 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치에 있어서, 어드레스와 데이타를 수신하고 출력하기 위한 입/출력 수단과, 전송 요구에 응답하여 제1의 시스템 버스, 제2의 시스템 버스 및 입/출력 수단 사이의 데이타와 어드레스 전송 방향을 제어하기 위하여 버퍼 제어신호를 버퍼 수단에 공급하기 위한 버퍼 제어 수단과, 전송 요구에 응답하여 각각 제1의 주변장치와 제2의 주변장치에 두세트의 제어신호를 공급하기 위한 제어신호 발생수단으로 이루어진 다이렉트 메모리 액세스 제어장치.
  2. 적어도 상호 독립된 제1, 제2의 시스템 버스, 제1의 시스템 버스에 접속된 적어도 하나의 메모리 장치, 제2의 시스템 버스에 접속된 적어도 하나의 입/출력 장치, 제1, 제2의 시스템 버스의 적어도 하나에 접속된 중앙처리장치 및 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 전송방향을 제어하기 위한 버퍼 수단들을 포함하는 데이타 처리장치에서의 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치에 있어서, 전송 요구에 응답하여 제1, 제2의 시스템 버스들의 사용권을 얻기 위한 제1, 제2의 시스템 버스들에 접속된 버스와 단자 제어 수단과, 중앙처리장치로의 인터럽트와 중앙처리장치로부터의 액세스를 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 인터럽트와 슬레이브 제어 수단과, 상기 버스와 단자 제어수단이 제1, 제2의 시스템 버스들의 사용권을 갖고 있든 갖고 있지않든, 액세스가 중앙처리장치로부터 이루어지든 이루어지지 않든 전송요구에 따라 다이렉트 메모리 액세스 제어장치의 동작을 결정하고, 상기 전송요구에 응답하여 메모리 장치와 입/출력 장치 사이의 전송을 행하기 위해서 결정된 동작을 기초로하여 상기 버스와 단자 제어수단, 상기 버퍼수단 및 상기 인터럽트와 슬레이브 제어수단을 제어하는 동작 결정수단 등으로 이루어지는 다이렉트 메모리 액세스 제어장치.
  3. 제2항에 있어서, 상기 버스와 단자 제어수단이 제1의 어드레스 스트로브 신호, 제1의 데이타 스트로브 신호 및 리이드 동작을 지시하는 제1의 리이드/라이트 신호등을 메모리에 관한 제1의 시스템 버스에 출력하고, 제2의 데이타 스트로브 신호와 상기 요구가 이루어질 때에 리이드 동작을 지시하는 제2의 리이드/라이트 신호를 입/출력 장치에 관한 제2의 시스템 버스에 출력하고, 제1, 제2의 시스템 버스들을 통하여 메모리 장치로부터 입/출력 장치로의 싱글 전송을 요구하고, 또한 상기 버스와 단자 제어수단이 제2의 데이타 스트로브 신호와 라이트 동작을 지시하는 제2의 리이드/라이트 신호를 입/출력 장치에 관한 제2의 시스템 버스에 출력하고, 제1의 어드레스 스트로브 신호, 제1의 데이타 스트로브 신호 및 상기 요구가 이루어질 때에 라이트 동작을 지시하는 제1의 리이드/라이트 신호를 메모리 장치에 관한 제1의 시스템 버스에 출력하고, 제2, 제1의 시스템 버스들을 통해서 입/출력 장치로부터 메모리 장치로의 싱글 전송을 요구하는 다이렉트 메모리 액세스 제어장치.
  4. 제2항에 있어서, 다수의 전송요구를 수신하고, 전송 요구로서 가장 높은 우선권을 갖는 전송요구들 중의 하나를 선택하기 위한 전송요구 제어수단과, 상기 전송요구 제어수단에 의하여 선택된 상기 전송요구에 따라 전송정보를 적어도 제어하기 위한 중앙처리수단과, 상기 동작 결정수단에 의하여 결정된 동작에 따라 어드레스와 데이타의 입력과 출력을 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 입/출력 제어수단을 더 포함하는 다이렉트 메모리 액세스 제어장치.
  5. 적어도 상호 독립된 제1, 제2의 시스템 버스들, 제1, 제2의 시스템 버스에 접속된 메모리 장치, 제1, 제2의 메모리 장치, 제1,제2의 시스템 버스들에 각각 접속된 제1, 제2의 입/출력 장치, 제1, 제2의 시스템 버스들 중의 적어도 하나에 접속된 중앙처리장치 및 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 방향을 제어하기 위한 버퍼 수단들을 포함하는 데이타 처리장치에서의 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치에 있어서, 전송 요구에 응답하여 제1, 제2의 시스템 버스들의 사용권을 얻기 위한 제1, 제2의 시스템 버스들에 접속된 버스와 단자 제어 수단과, 중앙처리장치로의 인터럽트와 중앙처리장치로부터의 액세스를 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 인터럽트와 슬레이브 제어 수단과, 상기 버스와 단자 제어수단이 제1, 제2의 시스템 버스들의 사용권을 갖고 있든 갖고 있지않든, 액세스가 중앙처리장치로부터 이루어지든 이루어지지 않든 전송요구에 따라 다이렉트 메모리 액세스 제어장치의 동작을 결정하고, 상기 전송요구에 따라 다이렉트 메모리 액세스 전송을 행하기 위하여 결정된 동작을 기초로 하여 상기 버스와 단자 제어수단, 상기 버퍼수단 및 상기 인터럽트와 슬레이브 제어수단을 제어하는 동작 결정수단 등으로 이루어진 다이렉트 메모리 액세스 제어장치.
  6. 제5항에 있어서, 상기 버스와 단자 제어수단이 제1의 어드레스 스트로브 신호, 제1의 데이타 스트로브 신호 및 리이드 동작을 지시하는 제1의 리이드/라이트 신호를 제1의 메모리 장치에 관한 제1의 시스템 버스에 출력하고, 제2의 데이타 스트로브 신호와 상기 요구가 이루어질 때에 리이드 동작을 지시하는 제2의 리이드/라이트 신호를 입/출력 장치에관한 제2의 시스템 버스에 출력하고, 제1, 제2의 시스템 버스들을 통하여 제1의 메모리 장치로부터 제2의 입/출력 장치로의 싱글 전송을 요구하고, 또한 상기 버스와 단자 제어수단이 제2의 데이타 스트로브 신호와 라이트 동작을 지시하는 제2의 리이드/라이트 신호를 제2의 입/출력 장치에 관한 제2의 시스템 버스에 출력하고, 제1의 어드레스 스트로브 신호, 제1의 데이타 스트로브 신호 및 상기 요구가 이루어질 때에 라이트 동작을 지시하는 제1의 리이드/라이트 신호들을 제1의 메모리 장치에 관한 제1의 시스템 버스에 출력하고, 제2, 제1의 시스템 버스들을 통하여 제2의 입/출력 장치로부터 제1의 메모리 장치로의 싱글 전송을 요구하는 다이렉트 메모리 액세스 제어장치.
  7. 제5항에 있어서, 다수의 잔송요구들을 수신하고 상기 전송요구로서 가장 높은 우선권을 갖는 전송요구들 중의 하나를 선택하기 위한 전송요구 제어수단과, 상기 전송요구 제어수단에 의해 선택된 상기 전송요구에 따라 전송정보를 적어도 제어하기 위한 중앙처리수단과, 상기 동작 결정수단에 의하여 결정된 동작에 따라 어드레스와 데이타의 입력과 출력을 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 입/출력 제어 수단등을 더 포함하는 다이렉트 메모리 액세스 제어장치.
  8. 제7항에 있어서, 중앙처리장치로부터 수신하고 데이타 처리장치의 시스템 구성을 정의하는 버스 정의 데이타를 저장하기 위한 레지스터 수단을 갖는 버스 구성 결정수단을 더 포함하고, 상기 버스 정의 데이타가 상기 버스와 단자 제어수단, 상기 인터럽트와 슬레이브 제어수단, 상기 동작 결정수단 및 상기 중앙처리수단에 공급되어 그의 동작들이 결정되는 다이렉트 메모리 액세스 제어장치.
  9. 제7항에 있어서, 중앙처리장치로부터 수신되고 데이타 처리장치의 시스템 구성을 정의하는 버스 정의 데이타와 중앙처리장치로부터 수신되고 어떤 시스템 버스가 중앙처리장치에 의하여 제어되는가를 정의하는 채널 버스 속성 데이타를 각각 저장하기 위한 제1, 제2의 레지스터 수단을 갖는 버스 구성 결정수단을 더 포함하고, 상기 버스 정의 데이타와 상기 채널 버스 속성 데이타가 상기 버스와 단자 제어수단, 상기 동작 결정수단 및 상기 중앙처리장치수단들에 공급되어 그의 동작들이 결정되는 다이렉트 메모리 액세스 제어장치.
  10. 적어도 상호 독립된 제1, 제2의 시스템 버스들, 제1의 시스템 버스들에 각각 접속된 제1, 제2의 메모리 장치들, 제1, 제2의 시스템 버스들에 각각 접속된 제1, 제2의 입/출력 장치들, 제1, 제2의 시스템 버스들에 각각 접속된 제1, 제2의 중앙처리장치들 및 제1, 제2의 시스템 버스들 사이의 데이타와 어드레스 전송과 그의 전송방향을 제어하기 위한 버퍼 수단을 포함하는 데이타 처리장치에서의 다이렉트 메모리 액세스를 제어하기에 적합한 다이렉트 메모리 액세스 제어장치에 있어서, 전송 요구에 따라 제1, 제2의 시스템 버스들의 사용권을 얻기 위한 제1, 제2의 시스템 버스들에 접속된 버스와 단자 제어 수단과, 제1, 제2의 중앙처리장치들 중의 하나로의 인터럽트와 제1, 제2의 중앙처리장치들 중의 하나로부터의 액세스를 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 인터럽트와 슬레이브 제어 수단과, 상기 버스와 단자 제어수단이 제1, 제2의 시스템 버스들의 사용권을 갖고 있든 갖고 있지않든, 액세스가 상기 제1, 제2의 중앙처리장치들 중의 하나로부터 이루어지든 이루어지지 않든 전송요구에 따라 다이렉트 메모리 액세스 제어장치의 동작을 결정하고, 상기 전송요구에 따라 다이렉트 메모리 액세스 전송을 행하기 위하여 결정된 동작을 기초로 하여 상기 버스와 단자 제어수단, 상기 버퍼수단 및 상기 인터럽트와 슬레이브 제어수단을 제어하는 동작 결정수단 등으로 이루어진 다이렉트 메모리 액세스 제어장치.
  11. 제10항에 있어서, 상기 버스와 단자 제어수단이 제1의 어드레스 스트로브 신호, 제1의 데이타 스트로브 신호 및 리이드 동작을 지시하는 제1의 리이드/라이트 신호를 제1의 메모리 장치에 관한 제1의 시스템 버스에 출력하고, 제2의 데이타 스트로브 신호와 상기 요구가 이루어질 때에 리이드 동작을 지시하는 제2의 리이드/라이트 신호를 입/출력 장치에관한 제2의 시스템 버스에 출력하고, 제1, 제2의 시스템 버스들을 통하여 제1의 메모리 장치로부터 제2의 입/출력 장치로의 싱글 전송을 요구하고, 또한 상기 버스와 단자 제어수단이 제2의 데이타 스트로브 신호와 라이트 동작을 지시하는 제2의 리이드/라이트 신호를 제2의 입/출력 장치에 관한 제2의 시스템 버스에 출력하고, 제1의 어드레스 스트로브 신호, 제1의 데이타 스트로브 신호 및 상기 요구가 이루어질 때에 라이트 동작을 지시하는 제1의 리이드/라이트 신호들을 제1의 메모리 장치에 관한 제1의 시스템 버스에 출력하고, 제2, 제1의 시스템 버스들을 통하여 제2의 입/출력 장치로부터 제1의 메모리 장치로의 싱글 전송을 요구하는 다이렉트 메모리 액세스 제어장치.
  12. 제10항에 있어서, 다수의 전송요구들을 수신하고 상기 전송요구로서 가장 높은 우선권을 갖는 전송요구들 중의 하나를 선택하기 위한 전송요구 제어수단과, 상기 전송요구 제어수단에 의하여 선택된 상기 전송요구에 따라 전송정보를 적어도 제어하기 위한 중앙처리수단과, 상기 동작결정수단에 의하여 결정된 동작에 따라 어드레스와 데이타의 입력과 출력을 제어하기 위한 제1, 제2의 시스템 버스들에 접속된 입/출력 제어수단을 더 포함하는 다이렉트 메모리 액세스 제어장치.
  13. 제12항에 있어서, 제1, 제2의 중앙처리장치들중의 임의의 하나로부터 수신되고 데이타 처리장치의 시스템 구성을 정의하는 버스 정의 데이타를 저장하기 위한 레지스터 수단을 갖는 버스 구성 결정수단을 더 포함하고, 상기 버스 정의 데이타가 상기 버스와 단자 제어수단, 상기 인터럽트와 슬레이브 제어수단, 상기 동작 결정수단 및 상기 중앙처리장치에 공급되어 그의 동작들을 결정하는 다이렉트 메모리 액세스 제어장치.
  14. 제12항에 있어서, 제1, 제2의 중앙처리장치들중의 임의의 하나로부터 수신되고 데이타 처리장치의 시스템 구성을 정의하는 버스 정의 데이타와 제1, 제2의 중앙처리장치들 중의 임의의 하나로부터 수신되고 어떤 시스템 버스가 중앙처리장치에 의하여 제어되는가를 정의하는 채널 버스속성 데이타를 각각 저장하기 위한 제1, 제2의 레지스터 수단을 갖는 버스 구성 결정수단을 더 포함하고, 상기 버스 정의 데이타가 상기 채널 버스 속성 데이타가 상기 버스와 단자 제어수단, 상기 인터럽트와 슬레이브 제어수단, 상기 동작 결정수단 및 상기 중앙처리장치에 공급되어 그의 동작들이 결정되는 다이렉트 메모리 액세스 제어장치.
  15. 제10항에 있어서, 제1, 제2의 중앙처리장치들로부터의 메세지를 저장하기 위한 상기 동작 결정수단에 접속된 통신 레지스터 수산과, 제1, 제2의 중앙처리장치들로부터의 전송요구들에 따라 상기 통신 레지스터 수단의 액세스를 하기 위해 제1, 제2의 중앙처리장치들 중의 하나를 인에이블하기 위한 상기 통신 레지스터 수단에 접속된 제어수단과, 메세지가 상기 통신 레지스터 수단에 저장될 때에 목표가 되는 제1, 제2의 중앙처리장치들 중의 하나에 통지하기 위한 상기 통신 레지스터 수단과 제1, 제2의 시스템 버스들에 접속된 인터럽트 제어 수단등을 더 포함하고, 제1, 제2의 중앙처리장치 사이의 메세지 통신이 상기 통신 레지스터 수단을 통하여 이루어지는 다이렉트 메모리 액세스 제어장치.
  16. 제12항에 있어서, 제1, 제2의 중앙처리장치들로부터의 메세지들을 저장하기 위한 상기 동작 결정수단에 접속된 통신 레지스터 수단과, 제1, 제2의 중앙처리장치로부터의 전송요구에 따라 상기 통신 레지스터 수단의 액세스를 행하기 위해 제1, 제2의 중앙처리장치들 중의 하나를 인에이블하기 위한 상기 통신 레지스터 수단에 접속된 제어수단과, 메세지들이 상기 통신 레지스터 수단에 저장될 때에 목표가 되는 제1, 제2의 중앙처리장치들 중의 하나에 통지하기 위한 상기 통신 레지스터 수단과 제1, 제2의 시스템 버스들에 접속된 인터럽트 제어 수단들을 더 포함하고, 제1, 제2의 중앙처리장치들 사이의 메세지 통신이 상기 통신 레지스트 수단을 통하여 이루어지는 다이렉트 메모리 액세스 제어장치.
  17. 제15항에 있어서, 상기 인터럽트 제어수단이 상기 인터럽트와 슬레이브 제어수단의 일부인 다이렉트 메모리 액세스 제어장치.
KR1019890002249A 1988-02-25 1989-02-25 다이렉트 메모리 액세스 제어장치 KR910010137B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP?63-42998 1988-02-25
JP63042998A JPH0833871B2 (ja) 1988-02-25 1988-02-25 Dma製御装置
JP63-42998 1988-02-25
JP?63-55898 1988-03-09
JP5589888A JP2504511B2 (ja) 1988-03-09 1988-03-09 Dmaコントロ―ラ
JP63055900A JPH01229353A (ja) 1988-03-09 1988-03-09 Dmaコントローラ
JP63-55900 1988-03-09
JP?63-55900 1988-03-09
JP63-55898 1988-03-09

Publications (2)

Publication Number Publication Date
KR890013567A KR890013567A (ko) 1989-09-23
KR910010137B1 true KR910010137B1 (ko) 1991-12-17

Family

ID=27291414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890002249A KR910010137B1 (ko) 1988-02-25 1989-02-25 다이렉트 메모리 액세스 제어장치

Country Status (2)

Country Link
EP (1) EP0330110B1 (ko)
KR (1) KR910010137B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69610450T2 (de) * 1995-03-13 2001-04-26 Sun Microsystems Inc Virtueller Ein/Ausgabeprozessor
CN117171075B (zh) * 2023-10-27 2024-02-06 上海芯联芯智能科技有限公司 一种电子设备及任务处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1151351B (it) * 1982-01-19 1986-12-17 Italtel Spa Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave
JPS61224063A (ja) * 1985-03-29 1986-10-04 Yokogawa Electric Corp デ−タ転送制御装置
JPS62197853A (ja) * 1986-02-26 1987-09-01 Toshiba Corp デ−タ転送回路

Also Published As

Publication number Publication date
KR890013567A (ko) 1989-09-23
EP0330110A3 (en) 1991-03-13
EP0330110A2 (en) 1989-08-30
EP0330110B1 (en) 1996-08-28

Similar Documents

Publication Publication Date Title
KR100245818B1 (ko) 트랜잭션 및 수신지 id를 가진 공유 버스 시스템
US5819096A (en) PCI to ISA interrupt protocol converter and selection mechanism
JP2007128633A (ja) 半導体記憶装置及びこれを備えた送受信システム
KR970049655A (ko) 직접메모리접근(dma) 제어장치
US5043935A (en) Data transfer system for rearranging data units using intermediate temporary registers
KR910010137B1 (ko) 다이렉트 메모리 액세스 제어장치
EP1376373B1 (en) Arrangement having a first device and a second device connected via a cross bar switch
US7310717B2 (en) Data transfer control unit with selectable transfer unit size
JPS6242306B2 (ko)
KR100261154B1 (ko) 직접 메모리 액세스 제어 장치
US6606672B1 (en) Single-chip-based electronic appliance using a data bus for reading and writing data concurrently
US4937735A (en) Memory access system utilizing address translation
KR20000065450A (ko) 버스 인터페이스 시스템과 이를 이용한 버스 인터페이스 방법
JP4642398B2 (ja) 共有バス調停システム
JPH0561812A (ja) 情報処理システム
JP3201439B2 (ja) ダイレクト・メモリ・アクセス・制御回路
JP2504511B2 (ja) Dmaコントロ―ラ
JPH02207363A (ja) データ転送制御方式、デバイスコントローラ、およびメモリ・コントローラ
KR100221077B1 (ko) 로컬버스의 읽기 데이터 버퍼
KR20030025018A (ko) 직접 메모리 액세스 제어기 및 제어 방법
KR100328630B1 (ko) 선버스와 브이엠버스의 데이타 전송방법 및 전송채널장치
KR100210404B1 (ko) 공유 메모리 억세스 제어장치
JP2001236305A (ja) 半導体集積回路及びデータ処理装置
JP2002007310A (ja) 半導体装置
KR20000060513A (ko) 인터페이스 장치

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: 20071207

Year of fee payment: 17

LAPS Lapse due to unpaid annual fee