[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR0159008B1 - 직접 메모리 억세스에서의 버스사용 중재회로 - Google Patents

직접 메모리 억세스에서의 버스사용 중재회로 Download PDF

Info

Publication number
KR0159008B1
KR0159008B1 KR1019950056841A KR19950056841A KR0159008B1 KR 0159008 B1 KR0159008 B1 KR 0159008B1 KR 1019950056841 A KR1019950056841 A KR 1019950056841A KR 19950056841 A KR19950056841 A KR 19950056841A KR 0159008 B1 KR0159008 B1 KR 0159008B1
Authority
KR
South Korea
Prior art keywords
bus
signal
logic
unit
outputting
Prior art date
Application number
KR1019950056841A
Other languages
English (en)
Other versions
KR970049652A (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 정장호
Priority to KR1019950056841A priority Critical patent/KR0159008B1/ko
Publication of KR970049652A publication Critical patent/KR970049652A/ko
Application granted granted Critical
Publication of KR0159008B1 publication Critical patent/KR0159008B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/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/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol

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

본 발명은 직접 메모리 억세스에서의 버스사용 중재회로에 관한 것으로, 특히 CPU와 직접 메모리 억세스 기능을 갖는 입출력장치간에 버스사용권을 효과적으로 중재하여 효율적인 데이타 처리를 해 주는 버스사용 중재회로에 관한 것이다.
종래에는 우선순위가 낮은 입출력장치가 우선수위가 높은 입출력 장치로 인해 버스사용권을 안정적으로 배분받지 못하여 효율적인 데이타 처리가 곤란하고, 순차회로의 클럭 동기가 CPU의 시스템 클럭 동기와 상이하여 데이타 처리 속도를 향상시킬 수 없게 되는 문제점이 있다.
따라서, 본 발명은 다수의 입출력장치가 동시에 버스사용 요청을 할 경우 우선순위가 낮은 입출력장치에 안정적으로 버스사용권을 제공할 수 있고, 입출력장치와 CPU의 타이밍 간격이 상이하므로 CPU의 시스템 클럭에 동기시키지 않고 D플립플롭에 비동기적으로 제어클럭을 운용함으로써, 효율적이고 신속한 데이타 처리를 할 수 있으며, 입출력장치가 증설되더라도 FPGA로 구성된 모듈별로 설계되어 있어서 버스사용중신호(BUSY)만 하나식 추가하면 되므로 회로구성을 용이하게 할 수 있다.

Description

직접 메모리 억세스에서의 버스사용 중재회로
제1도는 본 발명에 따른 직접 메모리 억세스에서의 버스사용 중재회로의 블럭 구성도.
제2도는 제1도에 도시된 버스사용 중재회로에 상세 구성도.
* 도면의 주요부분에 대한 부호의 설명
1a~1n : 입출력장치 2 : 버스사용 중재회로
3 : CPU 4 : 메모리
10 : 제1논리부 11~13 : 논리곱 게이트
14 : 부정논리합 게이트 30 : 제2논리부
31 : 반전부 IN11~IN1n : 인버터
32 : 래치부 D1~Dn : D플립플롭
33 : 반전부 IN21~IN2n : 인버터
34 : 신호출력부 34a~34n-1: 논리회로부
IN31~IN3n-1: 인버터부 OR1~ORn-1: 논리합 게이트
50 : 제3논리부 51 : 인버터부
52, 56, 57 : 인버터 53 : 논리곱 게이트
54, 55 : D플립플롭
본 발명은 직접 메모리 억세스에서의 버스사용 중재회로에 관한 것으로, 특히 CPU와 직접 메모리 억세스 기능을 갖는 입출력장치간에 버스사용권을 효과적으로 중재하여 효율적인 데이타 처리를 해 주는 버스사용 중재회로에 관한 것이다.
일반적으로 다수의 입출력장치가 하나의 메모리를 직접 억세하는 경우, 임의의 입출력장치에서의 버스사용권 획득이 다른 입출력장치에 영향을 주지 않도록 하고, 입출력장치가 버스사용권을 안정적으로 배분받아 메모리를 직접 억세스 할 수 있도록 하기 위해서는 입출력장치에 대한 버스사용권을 적절하게 중재해 줄 필요가 있다.
종래 버스사용 중재회로의 경우, 직접 메모리 억세스 기능을 수행하는 임의의 입출력장치가 버스 중재를 관할하는 CPU측에 버스사용 요청신호를 출력하고, CPU로부터 인가되는 버스사용허가신호를 입력 받아서 버스사용권을 획득하면 입출력장치는 버스를 통해 메모리를 직접 억세스하여 입출력 동작을 수행한다.
이때, 다수의 입출력장치가 하나의 메모리를 억세스하는 경우 버스 중재를 관할하는 CPU가 각 입출력장치에 대한 버스사용 중재 및 우선순위를 결정해야 하는데, 다수의 입출력장치가 버스사용요청신호를 CPU측에 출력하여 CPU로부터 버스사용허가신호를 할당받게 되면, 버스사용권의 획득과 함께 '버스사용중' 상태를 CPU에게 통보한 후 로컬버스를 통해 메모리를 억세스한다.
이런 방식으로 버스사용권을 중재할 경우 우선순위가 낮은 입출력 장치가 버스사용권을 일단 할당 받으면, 우선순위가 높은 입출력장치가 버스사용 요청을 하더라도 방해 받지 않고 버스를 사용할 수 있다. 하지만, 우선순위가 낮은 입출력장치가 CPU측에 버스사용을 요청하여 CPU로부터 버스사용을 허가 받기전에 우선순위가 높은 입출력장치가 버스사용을 요청하면, CPU는 우선순위가 낮은 입출력장치의 버스사용권을 박탈하여 우선순위가 높은 입출력장치에 부여한다. 이로 인해 우선순위가 낮은 입출력장치가 직접 메모리를 억세스할때에 오동작이 발생하여 데이타 처리의 효율성이 저하된다.
또한, 종래의 버스사용 중재회로는 순차회로를 이용하여 설계되는데, 순차회로의 클럭을 CPU의 시스템 클럭에 동기시켜 사용함으로써 순차회로의 한 클럭타이밍 동안에 상대적으로 처리 속도가 빠른 CPU에서는 휴지시간이 생기므로 데이타 처리 속도가 저하되고, 순차회로의 설계 자체도 복잡해진다.
전술한 바와 같이, 종래에는 우선순위가 낮은 입출력장치가 우선 순위가 높은 입출력장치로 인해 버스사용권을 안정적으로 배분받지 못해 오동작이 발생할 우려가 있어 효율적인 데이타 처리가 곤란하고, 순차회로의 클럭 동기가 CPU의 시스템 클럭 동기와 상이하여 데이타 처리 속도를 향상시킬 수 없게 됨과 동시에 구성을 간단하게 할 수 없는 문제점이 있었다.
본 발명은 상술한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 우선순위에 관게없이 다수의 입출력장치가 하나의 메모리를 직접 억세스하기 위해 동시에 버스사용 요청을 할 때 우선순위가 낮은 입출력장치에게 안정적인 버스사용권을 제공하고, 순차회로의 클럭과 CPU의 시스템 클럭을 비동기식으로 인가함으로써 보다 효율적이고 신속하게 데이타를 처리하는 직접 메모리 억세스에서의 버스사용 중재회로를 제공하는 데에 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 특징은, 직접 메모리 억세스에서의 버스사용 중재회로에 있어서, 다수의 입출력장치로부터 인가되는 버스사용요청신호()와 CPU측에 출력되는 버스사용요청신호()와 상기 입출력장치측에 출력되는 버스사용허가신호()를 입력받아 논리 연산처리하여 출력하는 제1논리부와, 상기 제1논리부로부터 인가되는 신호(LBRCK)와 입출력장치로부터 인가되는 버스사용요청신호()를 입력받아 논리연산처리하여 다수의 버스사용중신호()를 출력하는 제2논리부와, 상기 제2논리부로부터 인가되는 버스사용중신호()와 입출력장치로부터 인가되는 버스사용요청신호()와 CPU로부터 인가되는 버스사용허가신호() 및 어드레스 스트로브신호()를 입력받아 논리 연산처리하여 제1논리부와 CPU측에 다수의 버스사용요청신호()를 출력함과 동시에 상기 제1논리부와 입출력장치측에 다수의 버스사용허가신호()를 출력하는 제3논리부를 포함하는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하 설명한다.
제1도는 본 발명에 따른 직접 메모리 억세스에서의 버스사용 중재회로에 대한 구성도이고, 제2도는 제1도 도시된 버스사용 중재회로의 상세 구성도이다.
본 발명에서는 다수의 입출력장치가 하나의 메모리를 억세스하는 경우 제1도에 도시된 바와 같이 억세스한다. 제1도에서 다수의 입출력 장치(1a~1n)가 메모리(4)를 억세스하는 경우, 버스사용 중재회로(2)는 다수의 입출력장치(1a~1n)로부터 인가되는 버스사용요청신호()를 입력받아 논리 처리하여 CPU(3)측에 버스사용요청신호()를 출력한다. 버스사용요청신호()를 인가받은 CPU(3)는 우선순위에 따라 소정의 입출력장치(1a~1n)를 할당하여 버스사용허가신호()와 어드레스 스트로브신호()를 버스사용 중재회로(2) 측에 출력한다. 버스사용 중재회로(2)는 CPU(3)로부터 인가되는 버스사용허가신호()와 어드레스 스트로브 신호()를 인가받아 논리 처리하여 할당된 입출력장치(1a~1n)측에 버스사용허가신호()를 출력한다. 버스사용허가신호()를 인가받은 할당된 입출력장치(1a~1n)는 버스사용확인신호()를 버스사용중재회로(2)측에 인가하고, 버스사용중재회로(2)는 CPU(3)측에 버스사용확인신호(LBGACK)를 출력한다. 이때 할당된 입출력장치(1a~1n)는 버스사용권을 획득하고 해당 로컬 버스를 점유하여 메모리를 억세스한다.
본 발명에 따른 버스사용 중재회로(2)는 제2도에 도시된 바와 같이 구성된다. 버스사용 중재회로(2)는 FPGA(Field Programmable Gate Array)로 제작할 수 있는데, 제1논리부(10)는, 제2논리부(30), 제3논리부(50)를 구비하여 이루어진다. 이때 제1a도는 제1논리부(10)와 제2논리부(30)를 도시하는 구성도이고, 제2b도는 제3논리부(50)를 도시하는 구성도이다.
제1논리부(10)는 입출력장치(1a~1n)로부터 인가되는 다수의 버스사용용청신호()와, CPU(3)로부터 이가되는 다수의 버스사용요청신호() 및 버스사용허가신호()를 입력받아 논리 처리하여, 제2논리부(30)측에는 신호(LBRCK)를 출력하고, CPU(3)측에는 버스사용확인신호() 및 버스사용요청신호()를 출력한다. 제2논리부(30)는 제1논리부(10)로부터 인가되는 신호(LBRCK)와, 입출력장치(1a~1n)로부터 인가되는 다수의 버스사용요청신호()를 입력받아 논리 처리하여 제3논리부(50)측에 버스사용중신호()를 출력한다. 제3논리부(50)는 입출력장치(1a~1n)로부터 인가되는 다수의 버스사용요청신호()와, 제2논리부(30)로부터 인가되는 버스사용중신호()와, CPU(3)로부터 인가되는 버스사용허가신호() 및 어드레스 스트로브신호()를 입력받아 논리 처리하여, 다수의 버스사용요청신호()와 버스사용허가신호()를 출력한다.
제1논리부(10)는 논리곱 게이트(11, 12, 13), 부정논리합 게이트(14)를 구비하여 이루어진다. 논리곱 게이트(11)는 다수의 버스사용요청신호()를 논리곱 처리하여 부정논리합 게이트(14)에 출력한다. 논리곱 게이트(12)는 다수의 버스사용요청신호()를 논리곱 처리하여 버스사용요청신호()를 CPU(3)측에 출력함과 동시에 해당 신호를 부정논리합 게이트(14)측에 출력한다. 논리곱 게이트(13)는 다수의 버스사용허가신호()를 논리곱 처리하여 버스사용확인신호()를 CPU(3)측에 출력한다.
제2논리부(30)는 반전부(31), 래칩(32), 반전부(3) 및, 신호출력부(34)를 구비하여 이루어진다. 반전부(31)는 다수의 인버터(IN11~IN1n)를 구비하여 이루어지며, 각 인버터(IN11~IN1n)는 각 입출력장치(1a~1n)로부터 인가되는 버스사용요청신호()를 반전시켜 래치부(32)측에 출력한다. 래치부(32)는 다수의 D플립플롭(D1~Dn)를 구비하여 이루어지며, 각 D플립플롭(D1~Dn)은 반전부(31)의 다수 인버터(IN11~IN1n)로부터 입력단(D)를 통해 인가되는 신호와 함게 각 입출력장치(1a~1n)로부터 인가되는 버스사용요청신호()를 그대로 클리어단자(CLR)을 통해 인가받고, 제1논리부(10)의 부정논리합 게이트(14)로부터 인가되는 신호 클럭에 따라 래치하였다가 반전부(33)에 출력한다. 반전부(33)는 다수의 인버터(IN21~IN2n)를 구비하여 이루어지며, 각 인버터(IN21~IN2n)는 래치부(32)의 각 D플립플롭(D1~Dn)으로부터 인가되는 신호를 반전시켜 신호출력부(34)측으로 출력한다. 신호출력부(34)는 다수의 논리회로부(34a~34n-1)를 구비하여 이루어지는데, 각각의 논리회로부(34a~34n-1)는 인버터부(IN31~IN3n-1), 논리합 게이트(OR1~ORn-1)를 구비하여 이루어진다. 논리회로부(34a)는 반전부(33)의 인버터(IN21)로부터 인가되는 신호를 논리합 게이트(OR1)에 그대로 출력하는 한편 인버터(IN22~IN2n)로부터 인가되는 신호는 인버터부(IN31)에서 반전시켜 논리합 게이트(OR1)측에 인가하여, 논리합 게이트(OR1)에 의해 논리합 처리한 다음 버스사용중신호()를 출력한다. 또한, 논리신호부(34b)는 반전부(33)의 인버터(IN22)로부터 인가되는 신호를 논리합 게이트(OR2)에 그대로 출력하는 한편 인버터(IN23~IN2n)로부터 인가되는 신호는 인버터부(IN32)에서 반전시켜 논리합 게이트(OR2)측에 인가하여, 논리합 게이트(OR2)에 의해 논리합 처리한 다음 버스사용중신호()를 출력한다. 마찬가지로, 논리신호부(34n-1)는 반전부(33)의 인버터(IN2-1)로부터 인가되는 신호를 논리합 게이트(ORn-1)에 그대로 출력하는 한편 인버퍼(IN2n)로부터 인가되는 신호는 인버터(IN3n-1)에서 반전시켜 논리합 게이트(ORn-1)측에 인가하여, 논리합 게이트(ORn-1)에 의해 논리합 처리한 다음 버스사용중신호()를 출력된다. 한편, 반전부(33)의 인버터(IN2n) 출력은 그대로 버스사용중신호()로서 출력한다. 이상과 같이 출력되는 다수의 버스사용중신호()는 제3논리부(50)의 다수 논리처리부(50a~50n)측에 각각 인가된다.
제3논리부(50)는 n개의 논리처리부(50a~50n)를 구비하여 이루어진다.
각 논리처리부(50a~50n)는 인버터(51, 52, 56, 57), 논리곱 게이트(53), D플립플롭(54, 55)를 구비하여 이루어진다. 논리처리부(50a)에 있어서, 인버터(51)는 제2논리부(30)로부터 인가되는 버스사용중신호()와 CPU(3)로부터 인가되는 버스사용허가신호()를 반전시켜 논리곱 게이트(53)측에 출력하고, 논리곱 게이트(53)는 인버터(51)로부터 인가되는 신호와 CPU(3)로부터 인가된느 어드레스 스트로브신호()를 논리곱 처리하여 D플립플롭(55)의 클럭단에 출력하고, D플립플롭(55)은 입력단(D)에 인가되는 바이어스전압(+5V)에 의해 설정된 하이레벨 신호와 입출력장치(1a)로부터 클리어단자(CLR)에 인가되는 버스사용요청신호()를 논리곱 게이트(53)로 부터 인가되는 클럭신호에 따라 래치하였다가 D플립플롭(54)과 인버터(57)측에 출력하며, 인버터(57)는 D플립플롭(55)의 출력단(Q)으로 부터 인가되는 신호를 반전시켜 제1논리부(10)의 논리곱 게이트(13)측에 버스사용허가신호()를 출력한다. 또한, 인버터(52)는 입출력장치(1a)로 부터 인가되는 버스사용요청신호()를 반전시켜 D플립플롭(54)의 클럭단에 출력하고, D플립플롭(54)은 입력단(D)에 인가되는 바이어스전압(+5V)에 의해 설정된 하이레벨 신호와 D플립플롭(55)으로 부터 클리어단자(CLR)에 인가되는 신호를 인버터(52)로부터 인가되는 클럭신호에 따라 래치하였다가 인버터(56)측에 출력하며, 인버터(56)는 D플립플롭(54)으로부터 인가되는 신호를 반전시켜 버스사용요청신호()를 제1논리부(10)의 논리곱 게이트(12)측에 출력한다. 한편 그밖의 논리처리부(50b~50n)는 논리처리부(50a)와 마찬가지로 동일한 회로구성 및 동작을 수행하여 각각에 해당되는 버스사용요청신호() 및 버스사용허가신호()를 출력하여 제1논리부(10)측에 각각 인가한다.
이와 같은 본 발명의 버스사용 중재회로(2)는 다음과 같이 동작한다.
입출력장치(1a~1n)가 메모리(4)를 억세스하기 위해 CPU(3)로부터 버스사용권을 획득해야 하는 경우 버스사용 중재회로(2)측에 버스사용요청신호()를 출력하는데, 이때 버스사용 중재회로(2)의 제1논리부(10)는 인가받은 해당 신호를 논리 처리하여 신호(LBRCK), 버스사용요청신호() 및 버스사용확인신호()를 출력한다. 입출력장치(1a~1n)로부터 인가되는 다수의 버스사용요청신호()는 논리곱 게이트(11)에서 논리곱 연산하여 부정논리합게이트(14)측에 출력되는데, 이때 논리곱 게이트(11)측에 인가되는 버스사용요청신호() 중 하나만이라도 로우레벨이 되면 로우레벨을 출력하므로써, 다수의 입출력장치(1a~1n)중 버스사용을 요청하는 특정 입출력장치(1a~1n)를 검출하게 된다. 한편 제3논리부(50)로부터 인가되는 다수의 버스사용요청신호()는 논리곱 게이트(12)에서 논리곱 연산하여 부정논리합 게이트(14)측에 출력함과 동시에 CPU(3)측에 버스사용요청신호()를 출력하는데, 논리곱 게이트(12)는 인가되는 다수의 버스사용요청신호() 중 버스사용을 요청하는 해당 버스사용요청신호()만을 검출하여 출력한다. 또한 제3논리부(50)로부터 인가되는 다수의 버스사용허가신호()는 논리곱 게이트(13)에서 논리곱 연산하여 버스사용확인신호()를 CPU(3)측에 출력하는데, 논리곱 게이트(13)는 인가되는 다수의 버스사용허가신호() 중 버스사용을 요청하는 해당 입출력장치(1a~1n)를 검출하여 출력한다. 이때, 부정논리합 게이트(14)는 논리곱 게이트(11)와 논리곱 게이트(12)로부터 인가받은 신호를 논리 연산하여 제2논리부(30)에 래치부(32)측에 출력한다.
제1논리부(10)로부터 인가된 부정논리합 게이트(14)의 출력이 제2논리부(30)측에 인가되는 경우, 제2논리부(30)에서 논리 처리하여 버스사용중신호()를 출력한다, 부정논리합 게이트(14)의 출력과 입출력장치(1a~1n)로부터 인가되는 버스사용요청신호()가 래치부(32)측에 인가된다. 이에 따라 래치부(32)는 입출력장치(1a~1n)로부터 인가되는 다수의 버스사용요청신호()가 그대로 D플립플롭의 클리어단자(CLR)에 인가되고, 반전부(31)에서 반전된 다수의 버스사용요청신호()가 각 D플립플롭(D1~Dn)의 입력단(D)에 인가되는 한편 제1논리부(10)의 부정논리합 게이트(14)로부터 각 D플립플롭(D1~Dn)의 클럭단을 통해 인가되는 클럭신호에 따라, 래치하였다가 반전부(33)측에 출력한다. 이때 제1논리부(10)로부터 인가되는 클럭신호가 하이레벨이면 버스사용요청신호()는 로우레벨이 되어 D플립플롭(D1)의 클리어단자(CLR)에는 그대로 로우레벨이 인가되고 입력단(D)측에는 반전된 하이레벨이 인가되어 D플립플롬(D1)은 입력신호를 클리어시켜 반전부(33)의 인버터(IN21)측에 출력한다. 한편 버스사용요청신호()가 하이레벨이 되면 D플립플롭(D1)의 클리어단자(CLR)는 그대로 하이레벨이 인가되고 입력단(D)은 반전된 로우레벨이 인가되어 D플립플롭(D1)은 입력신호를 래치하였다가 반전부(33)의 인버터(IN21)측에 출력한다. 래치부(32)로부터 인가되는 신호를 반전부(33)에서 반전시켜 신호출력부(34)측에 출력한다. 이에 신호출력부(34)의 논리회로부(34a~34n-1)는 반전부(33)의 인버터(IN21~IN2n)로부터 인가되는 신호와 이를 인버터부(IN31~IN3n-1)에서 재반전되어 출력되는 신호가 논리합 게이트(OR1~ORn-1)에 인가되고, 논리합 게이트(OR1~ORn-1)는 이를 논리합 연산하여 다수의 버스사용중신호()를 제3논리부(50)측에 출력한다. 이때 논리회로부(34a)는 반전부(33)의 인버터(IN21)로부터 인가되는 신호와 함께 다수의 인버터(IN22~IN2n)로부터 인가되어 인버터(IN31)에서 재반전되는 신호를 논리합 게이트(OR1)에 인가하여 소정의 버스사용중신호()를 출력하고, 논리회로부(34n-1)는 반전부(33)의 인버터(IN22)로부터 인가되는 신호와 함께 다수의 인버터(IN23~IN2n)로부터 인가되어 인버터부(IN32)에서 재반전되는 신호를 논리합 게이트(OR2)에 인가하여 소정의 버스사용중신호()를 출력하고, 논리회로부(34N-1)는 반전부(33)의 인버터(IN2n-1)로부터 인가되는 신호와 함게 인버터(IN2n)로부터 인가되어 인버터부(IN3n-1)에서 재반전되는 신호를 논리합 게이트(ORn-1)에 인가하여 소정의 버스사용중신호()를 출력한다. 한편 반전부(33)의 인버터(IN2n)의 출력을 그대로 버스사용중신호()로서 출력한다. 출력된 버스사용중신호()는 우선순위를 갖게 된다. 이때, 버스사용중신호()가 최저 우선수위가 되고, 버스사용중신호()가 최고 우선순위가 된다. 즉, 다수의 입출력장치(1a~1n)로부터 다수 버스사용요청신호()가 버스사용 중재회로(2)에 동시에 인가되면 이를 검출한다. 이때 정해진 순위에 따라 버스사용중신호()를 생성하여 구동되는 해당 다수의 버스사용중신호()를 검출하고 이에 대응되는 입출력장치(1a~1n)측으로 버스사용권을 부여하게 된다.
한편, 제2논리부(30)의 버스사용중신호()와, 입출력장치(1a~1n)로부터 인가된 버스사용요청신호()와, CPU(3)로부터 인가된 버스사용허가신호() 및 어드레스 스트로브신호()가 제3논리부(50)에 인가되는 경우, 제3논리부(50)의 논리처리부(50a~50n)에서는 해당 신호를 논리 처리하여 다수의 버스사용요청신호()와 다수의 버스사용허가신호()를 출력한다. 제3논리부(50)의 다수의 논리처리부(50a~50n)에 있어서, 논리처리부(50a)는 제2논리부(30)로부터 인가되는 버스사용중신호()와 CPU(3)로부터 인가되는 버스사용허가신호()가 인버터(51)에서 반전되어 논리곱 게이트(53)측에 인가되고 어드레스 스트로부신호()는 그대로 논리곱 게이트(53)측에 인가되어, 논리곱 게이트(53)에서 논리곱 처리된 후 D플립플롭(55)의 클럭단에 출력된다. D플립플롭(55)은 바이어스전압(+5V)에 의해 설정된 하이레벨 신호가 입력단(D)에 인가되고 입출력장치(1a)로부터 인가되는 버스사용요청신호()가 클리어단자(CLR)에 인가되면, 논리곱 게이트(53)로부터 인가되는 클럭신호에 따라 래치하였다가 인버터(57)와 D플립플롭(54)의 클리어단자(CLR)측에 출력한다. D플립플롭(55)로부터 출력되는 신호는 인버터(57)에서 반전되어 버스사용허가신호()로 변환되어 제1논리부(10)측에 출력된다. 한편, 입출력장치(1a)로부터 인가되는 버스사용요청신호()는 인버터(52)에서 반전되어 D플립플롭(54)의 클럭단에 인가되고, D플립플롭(54)은 입력단(D)를 통해 인가되는 바이어스 전압(+5V)에 의해 설정된 하이레벨 신호와 D플립플롭(55)으로부터 클리어단자(CLR)를 통해 인가된 클리어신호를 입력받아, 인버터(52)로부터 인가된 클럭신호에 따라 래치하였다가 인버터(56)측에 출력한다. 이에 D플립플롭(54)에서 래치된 신호는 인버터(56)에서 반전되어 버스사용요청신호()로 변환되어 제1논리부(10)측에 출력한다. 또한 그밖의 논리처리부(50b~50n)는 위와 같이 마찬가지로 논리 처리하여 버스사용요청신호()와 버스사용허가신호()를 제1논리부(10)측에 출력한다.
이상에서 살펴본 바와 같이 본 발명에 따르면, 다수의 입출력장치가 동시에 버스사용 요청을 할 경우 우선순위가 낮은 입출력장치에 안정적으로 버스사용권을 제공할 수 있고, 입출력장치와 CPU의 타이밍 간격이 상이하므로 CPU의 시스템 클럭에 동기시키지 않고 D플립플롭에 비동기적으로 제어클럭을 운용함으로써, 효율적이고 신속한 데이타 처리를 할 수 있으며, 입출력장치가 증설되더라고 FPGA로 구성된 모듈별로 설계되어 있어서 버스사용중신호()만 하나식 추가하면 되므로 회로구성을 용이하게 할 수 있다.

Claims (5)

  1. 직접 메모리 억세스에서의 버스사용 중재회로에 있어서, 다수의 입출력장치(1a~1n)로부터 인가되는 버스사용요청신호()와 CPU측에 출력되는 버스사용요청신호()와 상기 입출력장치(1a~1n)측에 출력되는 버스사용허가신호()를 입력받아 논리 연산처리하여 출력하는 제1논리부(10)와, 상기 제1논리부(10)로부터 인가되는 신호(LBRCK)와 입출력장치로부터 인가되는 버스사용요청신호()를 입력받아 논리연산처리하여 다수의 버스사용중신호()를 출력하는 제2논리부(30)와; 상기 제2논리부(30)로부터 인가되는 버스사용중신호()와 입출력장치(1a~1n)로 부터 인가되는 버스사용요청신호()와 CPU(3)로부터 인가되는 버스사용허가신호() 및 어드레스 스트로브신호()를 입력받아 논리 연산처리하여 제1논리부(10)와 CPU(3)측에 다수의 버스사용요청신호()를 출력함과 동시에 상기 제1논리부와 입출력장치(1a~1n)측에 다수의 버스사용허가신호()를 출력하는 제3논리부(50)를 포함하는 것을 특징으로 하는 직접 메모리 억세스에서의 버스사용 중재회로.
  2. 제1항에 있어서, 상기 제1논리부(10)는 입출력장치(1a~1n)로 부터 인가되는 다수의 버스사용요청신호()를 논리곱 연산하여 출력하는 논리곱 게이트(11)와; 상기 제3논리부(50)로 부터 인가되는 다수의 버스사용요청신호()를 논리곱 연산하여 소정의 버스사용요청신호()를 출력하는 논리곱 게이트(12)와; 상기 제3논리부(50)로 부터 인가되는 다수의 버스사용허가신호()를 논리곱 연산하여 버스사용확인신호()를 출력하는 논리곱 게이트(13)와; 상기 논리곱 게이트(11)와 상기 논리곱 게이트(12)로 부터 인가되는 신호를 논리 연산처리하여 생성된 신호(LBRCK)를 상기 제2논리부(50)측으로 출력하는 부정논리합 게이트(14)를 포함하는 것을 특징으로 하는 직접 메모리 억세스에서의 버스사용 중재회로.
  3. 제1항에 있어서, 상기 제2논리부(50)는 입출력장치(1a~1n)로 부터 인가되는 다수의 버스사용요청신호()를 반전시켜 출력하는 반전부(31)와; 입출력장치(1a~1n)로 부터 인가되는 버스사용요청신호()와 상기 반전부(31)로 부터 인가되는 신호와 상기 부정논리합 게이트(14)로 부터 인가되는 신호(LBRCK)를 래치하였다가 출력하는 래치부(32)와; 상기 래치부(32)로 부터 인가되는 신호를 반전시켜 출력하는 반전부(33)와; 상기 반전부(33)로 부터 인가되는 신호를 논리 연산처리하여 다수의 버스사용중신호()를 상기 제3논리부(50)측에 출력하는 신호출력부(34)를 포함하는 것을 특징으로 하는 직접 메모리 억세스에서의 버스사용 중재회로.
  4. 제3항에 있어서, 상기 신호출력부(34)는 상기 반전부(33)로 부터 입력되는 신호를 재반전하여 출력하고, 상기 반전부(33)로 부터 입력되는 신호와 상기 재반전된 신호를 논리합 연산하여 출력하는 다수의 논리회로부(34a~34n1)를 포함하는 것을 특징으로 하는 직접 메모리 억세스에서의 버스사용 중재회로.
  5. 제1항에 있어서, 제3논리부(50)는 상기 제2논리부(20)로 부터 인가되는 버스사용중신호()와 CPU로 부터 인가되는 버스사용허가신호()를 반전시켜 출력하는 인버터부(51)와; 상기 반전부(51)로 부터 인가되는 신호와 CPU로 부터 인가되는 어드레스 스트로브신호()를 논리곱 연산하여 출력하는 논리곱 게이트(53)와; 바이어스전압(+5V)에 의해 설정된 하이레벨 신호와 클리어단자(CLR)를 통해 인가되는 버스사용요청신호()를 상기 논리곱 게이트(53)로 부터 인가되는 클럭신호에 따라 래치하였다가 출력하는 D플립플롭(55)과; 상기 D플립플롭(55)로 부터 인가되는 신호를 반전시켜 상기 제1논리부(10)측에 소정의 버스사용허가신호()를 출력하는 인버터(57)와; 소정의 버스사용요청신호()를 입력받아 반전시켜 출력하는 인버터(52)와; 바이어스전압(+5V)에 의해 설정된 하이레벨 신호와 상기 D플립플롭(55)으로 클리어단자(CLR)를 통해 인가되는 신호를 상기 인버터(52)로 부터 인가되는 클럭신호에 따라 래치하였다가 출력하는 D플립플롭(54)과; 상기 D플립플롭(54)으로 부터 인가되는 신호를 반전시켜 CPU측에 소정의 버스사용요청신호()를 출력하는 인버터(56)를 구비하는 다수의 논리처리부(50a~50n)를 포함하는 것을 특징으로 하는 직접 메모리 억세스에서의 버스사용 중재회로.
KR1019950056841A 1995-12-26 1995-12-26 직접 메모리 억세스에서의 버스사용 중재회로 KR0159008B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950056841A KR0159008B1 (ko) 1995-12-26 1995-12-26 직접 메모리 억세스에서의 버스사용 중재회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950056841A KR0159008B1 (ko) 1995-12-26 1995-12-26 직접 메모리 억세스에서의 버스사용 중재회로

Publications (2)

Publication Number Publication Date
KR970049652A KR970049652A (ko) 1997-07-29
KR0159008B1 true KR0159008B1 (ko) 1999-02-18

Family

ID=19444536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950056841A KR0159008B1 (ko) 1995-12-26 1995-12-26 직접 메모리 억세스에서의 버스사용 중재회로

Country Status (1)

Country Link
KR (1) KR0159008B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100451722B1 (ko) * 2000-02-25 2004-10-08 엘지전자 주식회사 직접 메모리 액세스 제어 장치
KR100389030B1 (ko) * 2001-06-21 2003-06-25 삼성전자주식회사 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러
KR100442440B1 (ko) * 2001-08-28 2004-07-30 엘지전자 주식회사 프로그램 로직을 이용한 메모리 액세스 제어방법 및 장치
KR100551480B1 (ko) * 2004-10-25 2006-02-13 삼성전자주식회사 프로세서와 비휘발성 메모리 사이에 위치하는 메모리장치, 이를 포함한 시스템 및 상기 시스템 내의 데이터송수신 방법

Also Published As

Publication number Publication date
KR970049652A (ko) 1997-07-29

Similar Documents

Publication Publication Date Title
US5654988A (en) Apparatus for generating a pulse clock signal for a multiple-stage synchronizer
US5574867A (en) Fast first-come first served arbitration method
RU2110838C1 (ru) Устройство для оптимизации организации доступа к общей шине во время передачи данных с прямым доступом к памяти
JP3587248B2 (ja) スキャン用フリップフロップ
US4503490A (en) Distributed timing system
US4423384A (en) Asynchronous multi-port arbiter
US5805929A (en) Multiple independent I/O functions on a PCMCIA card share a single interrupt request signal using an AND gate for triggering a delayed RESET signal
JP2002523857A (ja) 非同期型論理を用いたfifo
US4841178A (en) Asynchronous processor arbitration circuit
WO1999048203A1 (en) Method and apparatus for glitch protection for input buffers in a source-synchronous environment
US4853847A (en) Data processor with wait control allowing high speed access
EP0261497B1 (en) Semaphore circuit for shared memory cells
EP0520837B1 (en) Efficient arbiter
KR0159008B1 (ko) 직접 메모리 억세스에서의 버스사용 중재회로
US6874049B1 (en) Semaphores with interrupt mechanism
US4482949A (en) Unit for prioritizing earlier and later arriving input requests
US6105082A (en) Data processor used in a data transfer system which includes a detection circuit for detecting whether processor uses bus in a forthcoming cycle
US5872937A (en) System for optimizing bus arbitration latency and method therefor
US20050198420A1 (en) Microcomputer minimizing influence of bus contention
US5249154A (en) Data access controller and method
US20240320062A1 (en) Integrated circuit with hardware semaphore
JP2756445B2 (ja) 非同期回路リセット方式
JP2993795B2 (ja) バス調停回路
JPH0528104A (ja) マルチプロセツサシステム
Aghdasi Application of logic cell arrays in design of self-clocked sequential circuits

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19951226

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19951226

Comment text: Request for Examination of Application

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 19980727

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 19980807

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 19980807

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20010425

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20020329

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20020329

Start annual number: 5

End annual number: 5

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20040510