KR940009432B1 - 데이타 전송장치 및 그 전송방법 - Google Patents

데이타 전송장치 및 그 전송방법 Download PDF

Info

Publication number
KR940009432B1
KR940009432B1 KR1019920002690A KR920002690A KR940009432B1 KR 940009432 B1 KR940009432 B1 KR 940009432B1 KR 1019920002690 A KR1019920002690 A KR 1019920002690A KR 920002690 A KR920002690 A KR 920002690A KR 940009432 B1 KR940009432 B1 KR 940009432B1
Authority
KR
South Korea
Prior art keywords
data
buffer
memory
data buffer
main memory
Prior art date
Application number
KR1019920002690A
Other languages
English (en)
Other versions
KR930018391A (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 KR1019920002690A priority Critical patent/KR940009432B1/ko
Publication of KR930018391A publication Critical patent/KR930018391A/ko
Application granted granted Critical
Publication of KR940009432B1 publication Critical patent/KR940009432B1/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/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

내용 없음.

Description

데이타 전송장치 및 그 전송방법
제 1 도는 종래의 데이타 전송방법에 의한 컴퓨터시스템을 도시한 블럭도.
제 2 도는 제 1 도에 도시된 제 2 직접메모리 억세스(DMA)제어기의 세부적인 블럭도.
제 3a∼3d 도는 종래의 데이타 전송방법을 도시한 흐름도.
제 4a∼4d 도는 종래의 데이타 전송방법에 따른 버스 사이클을 도시한 타이밍도.
제 5 도는 본 발명의 데이타 전송방법에 의한 컴퓨터시스템을 도시한 블럭도.
제 6 도는 제 5 도에 도시된 제 2DMA제어기의 세부적인 블럭도.
제 7a, 7b 도는 본 발명에 의한 데이타 전송방법을 도시한 흐름도.
제 8a, 8b 도는 본 발명의 데이타 전송방법에 따른 버스사이클을 도시한 타이밍도.
본 발명은 컴퓨터 시스템의 데이타 전송장치 및 그 전송방법에 관한 것으로, 특히 시스템버스상의 메인메모리와 입출력처리(IOP)유니트의 내부 버퍼메모리 사이의 데이타 전송장치 및 그 전송방법에 관한 것이다.
제 1 도는 종래의 데이타 전송방법을 사용하는 컴퓨터 시스템을 개략적으로 도시한 블럭도로서, 시스템버스(1)를 통해 상호 연결되는 중앙처리유니트(40)와 입출력처리유니트(30)와 메인메모리유니트(2)를 포함한다. 또한, 입출력처리유니트(30)는 로컬버스(10)를 통해 상호 연결되는 마이크로 프로세서(CPU)(4), 버퍼메모리(7), 제 1 직접 메모리억세스(DMA : Direct Memory Access)제어기(8), 제 2DMA제어기(9), 데이타 버퍼(3), 채널인터페이스부(32) 및 입출력패널(5)을 구비하여 입출력채널(5)을 통해 데이지 체인방식으로 연결되는 입출력장치들(6-1∼6-N)을 제어한다. 여기서, 입출력채널(5)의 마지막에 연결되는 입출력장치(6-N)은 종단저항(34)을 연결하여 종단처리한다.
이와 같은 컴퓨터 구조에서, 중앙처리유니트(40)는 특정한 입력장치로부터 입력데이타가 필요하면, 입출력처리유니트(30)에 이의 처리를 요구한다. 입출력처리유니트(30)는 중앙처리유니트(40)의 요구에 따라 특정한 입력장치로부터 입출력채널(5)을 통해 데이타를 입력하여 버퍼메모리(7)에 일시 저장하고, 이어서 버퍼메모리(7)로부터 메인메모리(2)의 특정 영역에 입력 데이타를 저장한 후 중앙처리유니트(40)에 이를 알린다. 또한, 중앙처리유니트(40)가 출력데이타를 특정한 출력장치로 출력할 필요가 있으면, 입출력처리유니트(30)에 이의 처리를 요구한다. 입출력처리유니트(30)는 중앙처리유니트(40)로부터 출력데이타를 직접 입력하거나 메인메모리(2)에 저장된 출력데이타를 읽어와 버퍼메모리(7)에 일시저장하고, 이어서 버퍼메모리(7)로부터 입출력채널(5)을 통해 특정한 출력장치로 데이타를 출력한다. 이와 달리 입출력장치들(6-1∼6-N)과 메인메모리(2)사이의 데이타 전송은 입출력처리유니트(30)의 버퍼메모리(7)를 통해 이루어진다.
제 1 도에 있어서, 제 1DMA제어기(8)는 입출력채널(5)에 연결되는 입출력장치들(6-1∼6-N)과 버퍼메모리(7)사이의 데이타 전송을 처리하고, 제 2DMA제어기(9)는 버퍼메모리(7)와 메인메모리(2)사이의 데이타 전송을 처리한다. 채널인터페이스부(32)는 입출력채널(5)을 로컬버스(10)에 연결하고, 데이타버퍼(3)는 로컬버스(10)와 시스템버스(1)를 연결한다.
제 2 도는 제 1 도에 도시된 제 2DMA제어기를 도시한 세부적인 블럭도로서, 버퍼메모리 제어로직(11), 버퍼메모리 어드레스카운터(12), 메인메모리 어드레스카운터(13), 전송길이카운터(14), 시스템버스 제어로직(15)을 구비하여 데이타버퍼(3)의 상태(충만(FULL) 또는 비어있음(EMPTY)에 따라 버퍼메모리(7)와 메인메모리(2)에 적절한 하드웨어 사이클(Hardware Cycle)을 발생하여 데이타 전송을 수행한다.
제 2 도에 있어서, 버퍼메모리 제어로직(11)은 버퍼메모리 어드레스카운터(12)의 출력에 따라 버퍼메모리(7)를 억세스하여 버퍼메모리(7)와 데이타버퍼(3)사이의 데이타 전송을 제어하고, 시스템버스 제어로직(15)은 메인메모리 어드레스카운터(13)의 출력에 따라 메인메모리(2)를 억세스하여 데이타버퍼(3)와 메인메모리(2)사이의 데이타 전송을 제어한다. 이러한 데이타 전송동작은 전송길이카운터(14)에서 모든 데이타의 전송이 완료되었다는 신호가 올때까지 반복된다.
한편, 버퍼메모리(7)로부터 메인메모리(2)로의 데이타 전송방법은 데이타버퍼(3)의 상태를 검사하여 비어있을 경우에만 버퍼메모리(7)로부터 데이타를 읽어와 데이타버퍼(3)에 저장하는 제 1 방법과, 데이타버퍼(3)의 상태에 관계없이, 일단 버퍼메모리(7)로부터 데이타를 읽어온 후, 데이타버퍼(3)에 저장할 때, 데이타버퍼(3)가 비어있으면 바로 저장하고, 비어있지 않으면 이전 사이클의 데이타를 데이타버퍼(3)로부터 메인메모리(2)로 저장할 때까지 기다렸다가 저장하는 제 2 방법이 있다.
제 3a,3b 도는 상기 제 1 방법에 의한 데이타전송을 도시한 흐름도로서, 제 3a 도는 데이타의 전송방향이 '버퍼메모리(7)로부터 메인메모리(2)로'이고, 제 3b 도는 '메인메모리(2)로부터 버퍼메모리(7)로'인 경우이다.
제 3a 도에 있어서, S1,S2,S3 및 S4는 버퍼메모리 제어로직(11)이 버퍼메모리(7)로부터 데이타버퍼(3)로 데이타를 전송하는 단계이고, S5,S6,S7 및 S8은 시스템버스 제어로직(15)이 데이타버퍼(3)로부터 메인메모리(2)로 데이타를 전송하는 단계이다. S1단계에서는 데이타버퍼(3)의 상태가 "비었음(EMPTY)"인지를 검사하고, S2단계에서는 데이타버퍼(3)가 비었을 때, '버퍼메모리 읽기사이클'을 시작한다. 여기서, '버퍼메모리 읽기사이클'이란 버퍼메모리(7)의 데이타를 읽어(read) 데이타버퍼(3)에 쓰는(write) 로컬버스 사이클을 말한다. S3단계에서는 데이타버퍼(3)의 상태를 "충만(FULL)"으로 세트(set)한 후 사이클을 종료하고, S4단계에서는 모든 데이타의 전송이 끝났는지를 검사하여 끝나지 않았으면, S1단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
S5단계에서는 데이타버퍼(3)의 상태가 "충만(FULL)"인지를 검사하고, S6단계에서는 데이타버퍼(3)가 충만되었을 때, '메인메모리 쓰기사이클'을 시작한다. 여기서, '메인메모리 쓰기사이클'이란 데이타버퍼(3)의 데이타를 읽어(read) 메인메모리(2)에 쓰는(wtrite) 시스템버스 사이클을 말한다. S7단계에서는 데이타버퍼(3)의 상태를 "비었음(EMPTY)"으로 클리어한 후 사이클을 종료하고, S8단계에서는 모든 데이타의 전송이 끝났는지를 검사하여 끝나지 않았으면 S5단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
제 3b 도에 있어서, S29,S30,S31 및 S32는 시스템버스 제어로직(15)이 메인메모리(2)로부터 데이타버퍼(3)로 데이타를 전송하는 단계이고, S33,S34,S35 및 S36은 버퍼메모리 제어로직(11)이 데이타 버퍼(3)로부터 버퍼메모리(7)로 데이타를 전송하는 단계이다. S29단계에서는 데이타버퍼(3)의 상태가 "비었음(EMPTY)"인지를 검사하고, S30단계에서는 데이타버퍼(3)가 비었을 때 '메인메모리 읽기사이클'을 시작한다. 여기서, '메인메모리 읽기사이클'이란 메인메모리(2)의 데이타를 읽어(read) 데이타버퍼(3)에 쓰는(wtrite) 시스템버스 사이클을 말한다. S31단계에서는 데이타버퍼(3)의 상태를 "충만(FULL)"으로 세트한 후 사이클을 종료하고, S32단계에서는 모든 데이타의 전송이 끝났는지를 판단하여 끝나지 않았으면 S29단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
S33단계에서는 데이타버퍼(3)의 상태가 "충만(FULL)"인지를 검사하고, S34단계에서는 데이타버퍼(3)가 충만되었을 때 '버퍼메모리 쓰기사이클'을 시작한다. 여기서, '버퍼메모리 읽기사이클'이란 데이타버퍼(3)의 데이타를 읽어(read) 버퍼메모리(7)에 쓰는(wtrite) 로컬버스 사이클을 말한다. S35단계에서는 데이타버퍼(3)의 상태를 "비었음(EMPTY)"으로 클리어한 후 사이클을 종료하고, S36단계에서는 모든 데이타의 전송이 끝났는지를 판단하여 끝나지 않았으면, S33단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
제 3b, 3c 도는 상기 제 2 방법에 의한 데이타 전송을 도시한 흐름도로서, 제 3c 도는 데이타의 전송방향이 '버퍼메모리(7)로부터 메인메모리(2)로'이고, 제 3d 도는 '메인메모리(2)로부터 버퍼메모리(7)로'인 경우이다.
제 3c 도에 있어서, S9,S10,S11 및 S12는 버퍼메모리 제어로직(11)이 버퍼메모리(7)로부터 데이타버퍼(3)로 데이타를 전송하는 단계이고, S13,S14,S15 및 S16은 시스템버스 제어로직(11)이 버퍼메모리(3)로부터 메인메모리(2)로 데이타를 전송하는 단계이다. S9단계에서는 데이타버퍼의 상태에 관계없이 '버퍼메모리 읽기사이클'을 시작한다. S10단계에서는 데이타버퍼(3)의 상태가 "비었음(EMPTY)"인지를 검사하여 비었음이 아니면 사이클을 대기(Wait)시키고, S11단계에서는 데이타 버퍼가 비었을 때, 버퍼메모리(7)로부터 읽은 데이타를 데이타버퍼(3)에 저장한 후 데이타버퍼(3)의 상태를 "충만(FULL)"으로 셋(set)하고 사이클을 종료한다. S12단계에서는 모든 데이타의 전송이 끝났는지를 검사하여 끝나지 않았으면 S9단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
S13단계에서는 데이타버퍼(3)의 상태가 "충만(FULL)"인지를 검사하고, S14단계에서는 데이타버퍼(3)가 충만되었을 때, '메인메모리 쓰기사이클'을 시작한다. S15단계에서는 데이타버퍼(3)의 상태를 "비었음(EMPTY)"인지를 검사하여 비었음이 아니면 사이클을 대기(Wait)시키고, S39단계에서는 데이타버퍼(3)가 비었을 때, 메인메모리(2)로부터 읽은 데이타를 데이타버퍼(3)에 저장한 후 데이타버퍼(3)의 상태를 "충만(FULL)"으로 셋(set)하고 사이클을 종료한다. S40단계에서는 모든 데이타의 전송이 끝났는지를 검사하여 끝나지 않았으면 S37단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
S41단계에서는 데이타버퍼(3)의 상태가 "충만(FULL)"인지를 검사하고, S42단계에서는 데이타버퍼(3)가 충만되었을 때, '버퍼메모리 쓰기사이클'을 시작한다. S43단계에서는 데이타버퍼(3)의 상태를 "비었음(EMPTY)"으로 클리어한 후 사이클을 종료하고, S44단계에서는 모든 데이타의 전송이 끝났는지를 판단하여 끝나지 않았으면, S41단계로 돌아가 다음 데이타를 전송하고 끝났으면 종료한다.
제 4a∼4d 도는 제 3a∼3d 도에 도시된 방법에 따라 3개의 데이타(즉, 전송길이가 3)를 전송할 경우의 버스 사이클의 타이밍도이다. 앞에서 설명한 바와 같이 '버퍼메모리 읽기사이클' 및 '버퍼메모리 쓰기사이클'(이들을 간단히 '버퍼메모리 사이클'이라 한다)은 버퍼메모리 제어로직(11)에 의해 로컬버스(10)상에서 수행되는 버스 사이클이고, '메인메모리 읽기사이클' 및 '메인메모리 쓰기사이클'(이들을 간단히 '시스템메모리 사이클'이라 한다)은 시스템버스 제어로직(15)에 의해 시스템버스(1)상에서 수행되는 버스 사이클이다. 또한, 'A'는 버퍼메모리(7)를 억세스하는 시간이고, 'B'는 메인메모리(2)를 억세스하는 시간이고, 'C'는 다음 사이클을 시작하기 위한 셋업(set-up)시간이고, 'W'는 대기(wait) 시간이다.
제 4a 도 및 제 4b 도는 상기 제 1 방법(제 3a,3b 도)에 의한 데이타 전송의 타이밍으로서, 제 4a 도는 버퍼메모리(7)로부터 메인메모리(2)로의 데이타 전송일 경우를 보여주고, 제 4b 도는 메인메모리(2)로부터 버퍼메모리(7)로의 데이타 전송일 경우를 보여준다.
제 4a 도 및 제 4b 도에 있어서, '버퍼메모리 사이클'은 버퍼메모리(7)를 억세스하는 시간(A)으로서 3 클럭(CLOCK)이 소요되고, '시스템메모리 사이클'은 메인메모리(2)를 억세스하는 시간(B)으로서 5 클럭이 소요되고, 3번의 데이타전송에서 상호 중복되지 않는 것을 알 수 있다. 즉, 버퍼메모리 사이클이 종료되고 나서 시스템메모리 사이클이 시작되거나, 시스템메모리 사이클이 종료되고 나서 버퍼메모리 사이클이 시작된다. 따라서, 전송시작으로부터 전송끝까지 3개의 데이타를 전송할 경우에 버퍼메모리 사이클과 시스템메모리 사이클이 각각 세번씩 필요하므로 총 3×3+5×3=24클럭만큼의 기간이 소요되는 것을 알 수 있다.
제 4c 도 및 제 4d 도는 상기 제 2 방법(제 3c, 3d 도)에 의한 데이타 전송의 타이밍으로서, 제 4c 도는 버퍼메모리(7)로부터 메인메모리(2)로의 데이타 전송일 경우를 보여주고, 제 4d 도는 메인메모리(2)로부터 버퍼메모리(7)로의 데이타 전송일 경우를 보여준다.
제 4c 도에 있어서, 버퍼메모리 사이클은 첫번째 사이클에서는 버퍼메모리(7)를 억세스하는 시간(A) 3 클럭이나, 두번째 및 세번째 사이클은 셋업시간(C) 1 클럭 후에 사이클을 시작하여 버퍼메모리 억세스시간(A) 3 클럭과 이전 사이클의 데이타가 처리되기를 기다리는 대기시간(W) 2 클럭으로 이루어진다. 또한, 시스템메모리 사이클은 메인메모리(2)억세스 시간(B) 5 클럭으로 이루어지고, 두번째 및 세번째 사이클은 셋업시간 1 클럭이 지난 후에 시작되는 것을 알 수 있다. 그리고, 버퍼메모리(7)사이클과 시스템메모리 사이클이 중복되어 데이타 전송시간을 단축할 수 있는 것을 보여준다. 즉, 3개의 데이타를 전송하는 전송시작부터 전송끝까지는 약 20 클럭이 소요된 것을 알 수 있다. 제 4d 도에 있어서도 시스템메모리 사이클과 버퍼메모리 사이클을 중복하여 데이타 전송시간을 단축한 것을 보여준다.
이상에서 설명한 바와 같이 종래의 제 1 방법에 의한 데이타 전송은 로컬버스 사이클과 시스템버스 사이클이 중복되지 않아 데이타 전송에 시간이 많이 소요되는 문제점이 있었고, 이를 개선한 종래의 제 2 방법은 로컬버스 사이클과 시스템버스 사이클을 중복하여 데이타 전송시간을 제 1 방법에 비해 단축하였으나 데이타버퍼가 비기(EMPTY)를 기다리는 대기시간(W)만큼 버스를 더 사용하므로 다른 유니트들을 위한 버스가용시간이 줄어드는 문제점이 있었다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하여 데이타의 전송시간을 줄이면서 불필요한 버스의 사용이 없도록 하는 데이타 전송장치를 제공하는 것이다.
본 발명의 다른 목적은 상기 데이타 전송장치에 따른 효율적인 데이타 전송방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 메인메모리와 입출력처리유니트가 시스템버스를 통해 연결되고, 상기 입출력처리유니트는 마이크로프로세서, 로컬버스, 버퍼메모리, 제 1 직접메모리 억세스(DMA)제어기, 채널인터페이스부, 입출력채널을 구비하여 상기 메인메모리와 상기 버퍼메모리 사이에 소정 전송길이의 데이타를 전송하는 컴퓨터시스템의 데이타 전송장치에 있어서, 상기 입출력처리 유니트는, 상기 로컬버스를 통해 상기 버퍼메모리에 연결되는 제 1 데이타버퍼 ; 상기 제 1 데이타버퍼와 연결되고 상기 시스템버스를 통해 상기 메인메모리에 연결되는 제 2 데이타버퍼 ; 및 상기 소정의 전송길이를 카운트하여 데이타 전송을 종료할때까지, 상기 버퍼메모리와 상기 제 1 데이타버퍼 사이의 데이타 전송과 상기 제 1 데이타 전송을 상기 제 2 데이타버퍼 사이의 데이타 전송과 상기 제 2 데이타버퍼와 상기 메인메모리 사이의 데이타 전송을 제어하는 제 2DMA제어기를 더 구비한 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 메인메모리와 입출력처리유니트가 시스템버스를 통해 연결되고, 상기 입출력처리유니트는 마이크로프로세서, 로컬버스, 버퍼메모리, 제 1DMA제어기, 제 2DMA제어기, 제 1 버퍼메모리, 제 2 버퍼메모리를 구비하여 상기 메인메모리와 상기 버퍼메모리 사이에 소정 전송길이의 데이타를 전송하는 컴퓨터시스템의 데이타 전송방법에 있어서, 상기 버퍼메모리로부터 상기 메인메모리로 데이타를 전송하는 과정은, 상기 제 1 데이타버퍼가 비었으면, 상기 버퍼메모리 데이타를 리드하여 상기 제 1 데이타버퍼로 라이트하는 단계 ; 상기 제 2 데이타버퍼가 비었으면, 상기 제 1 데이타버퍼의 내용을 상기 제 2 데이타버퍼로 이동하는 단계 ; 상기 제 2 데이타버퍼가 충만되었으면, 상기 제 2 데이타버퍼의 데이타를 상기 메인메모리로 전송하는 단계를 구비하고, 상기 메인메모리로부터 상기 버퍼메모리로 데이타를 전송하는 과정은, 상기 제 2 데이타버퍼가 비었으면, 상기 메인메모리의 데이타를 리드하여 상기 제 2 데이타버퍼로 라이트하는 단계 ; 상기 제 1 데이타버퍼가 비었으면, 상기 제 2 데이타버퍼의 내용을 상기 제 1 데이타버퍼로 이동하는 단계 ; 상기 제 1 데이타버퍼가 충만되었으면, 상기 제 1 데이타버퍼의 데이타를 상기 버퍼메모리로 전송하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 좀 더 자세하게 설명하기로 한다.
제 5 도는 본 발명에 따른 데이타 전송방법을 사용한 컴퓨터 시스템을 개략적으로 도시한 블럭도로서, 시스템버스(1)를 통해 상호 연결되는 중앙처리유니트(40)와 입출력처리유니트(30)와 메인메모리유니트(2)를 포함한다. 또한, 입출력처리유니트(30)는 로컬버스(10)를 통해 상호 연결되는 마이크로프로세서(CPU)(14), 버퍼메모리(7), 제 1DMA제어기(8), 제 2DMA제어기(16), 제 1 데이타버퍼(3), 제 2 데이타버퍼(17), 채널인터페이스부(32) 및 입출력채널(5)을 구비하여 입출력채널(5)을 통해 데이지 체인방식으로 연결하는 입출력장치들(6-1∼6-N)을 본체에 연결한다.
본 발명은 2개의 데이타 버퍼를 사용하여 버퍼메모리(7)와 메인메모리(2)간에 데이타를 전송하므로써 데이타 전송시간과 버스가용시간을 향상시킨 것이다. 이를 위해 종래의 입출력처리유니트(30)상에 제 2 데이타버퍼(17)를 추가하고, 제 1 데이타버퍼(3)와 제 2 데이터버퍼(17)간의 데이타전송을 제어하도록 제 2DMA제어기의 기능을 추가시킨 것이다. 따라서, 종래와 구성 및 동작이 동일한 블럭은 제 1 도와 동일한 참조번호를 붙이고 자세한 설명은 생략하기로 한다.
제 6 도는 제 5 도에 도시된 제 2DMA제어기의 세부적인 블럭도로서, 버퍼메모리 제어로직(11), 버퍼메모리 어드레스카운터(12), 메인메모리 어드레스카운터(13), 전송길이 카운터(14), 시스템버스 제어로직(15) 및 이단버퍼 제어로직(18)을 구비하여 버퍼메모리(7)와 메인메모리(2)사이에 데이타를 전송한다.
제 6 도에 있어서, 버퍼메모리 제어로직(11), 버퍼메모리 어드레스카운터(12), 메인메모리 어드레스카운터(13), 전송길이 카운터(14), 시스템버스 제어로직(15)은 제 2 도와 동일하므로 동일한 참조번호를 부치고 자세한 설명은 생략한다.
이단버퍼 제어로직(18)은 제 1 데이타버퍼(3)와 제 2 데이타버퍼(17)사이의 데이타 전송을 제어한다. 이의 동작은 나중에 흐름도 및 타이밍도를 참조하여 설명한다.
제 7a,7b 도는 본 발명에 따른 데이타 전송방법을 도시한 흐름도로서, 제 7a 도는 버퍼메모리(7)로부터 메인메모리(2)로 데이타를 전송하는 경우이고, 제 7b 도는 메인메모리(2)로부터 버퍼메모리(7)로 데이타를 전송하는 경우이다.
제 7a 도에 있어서, S17,S18,S19 및 S20는 버퍼메모리 제어로직(11)에 의해 버퍼메모리(7)로부터 메인메모리(2)로 데이타를 전송하는 단계이고, S21,S22,S23 및 S24는 이단버퍼 제어로직(18)에 의해 제 1 데이타버퍼(3)의 내용을 제 2 데이타버퍼(17)로 전송하는 단계이고, S25,S26,S27 및 S28은 시스템버스 제어로직(15)에 의해 제 2 데이타버퍼(17)로부터 메인메모리(2)로 데이타를 전송하는 단계이다.
S17단계에서는 제 1 데이타버퍼(3)의 상태가 "비었음(EMPTY)"인가를 계속 검사하여 제 1 데이타버퍼(3)가 비면, S18단계에서 '버퍼메모리 읽기사이클'을 시작한다. 여기서, '버퍼메모리 읽기사이클'은 앞에서 설명한 바와 같이 버퍼메모리(7)의 데이타를 리드하여 제 1 데이타버퍼(3)에 라이트하는 로컬버스 사이클이다. S19단계에서는 제 1 데이타버퍼(3)에 데이타를 라이트한 후 제 1 데이타버퍼의 상태를 "충만(FULL)"으로 세트(set)한 후 사이클을 종료한다. S20단계에서는 모든 데이타의 전송이 끝났는가를 판단하여 끝나지 않았으면 S17단계로 돌아가서 다음 데이타를 전송하고, 데이타전송이 끝났으면 종료한다. 여기서, 모든 데이타의 전송이 끝났는지를 전송길이 카운터(14)가 설정된 전송길이(전송될 데이타의 수)를 데이타가 전송될때 마다 카운트하여 "0"가 되면 끝난 것을 알 수 있다.
S21단계에서는 제 1 데이타버퍼(3)의 상태가 "충만(FULL)"이고, 제 2 데이타버퍼(17)의 상태가 "비었음(EMPTY)"인지를 계속 검사하여 '예'일 경우에 S22단계에서 제 1 데이타버퍼(3)의 내용을 제 2 데이타버퍼(17)로 이동한다. S23단계에서는 제 1 데이타버퍼(3)의 상태를 "비었음(EMPTY)"으로 클리어하고, 제 2 데이타버퍼(17)의 상태는 "충만(FULL)"으로 셋트(set)한다. S24단계에서는 모든 데이타의 전송이 끝났는지를 판단하여 '아니오'이면, S21단계로 돌아가 다음 데이타를 전송하고, '예'이면 종료한다.
S25단계에서는 제 2 데이타버퍼(17)의 상태가 "충만(FULL)"인지를 계속 검사하여 '예'이면 S26단계에서 '메인메모리 쓰기사이클'을 시작한다. 여기서, '메인메모리 쓰기사이클'은 제 2 데이타버퍼(17)의 데이타를 리드하여 메인메모리(2)에 라이트하는 시스템버스 사이클이다. S27단계에서는 제 2 데이타버퍼(17)의 상태를 "비었음(EMPTY)"으로 클리어한 후 사이클을 종료한다. S28단계에서는 모든 데이타의 전송이 끝났는가를 판단하여 '아니오'이면, S25단계로 돌아가 다음 데이타를 전송하고, '예'이면 종료한다.
제 7b 도에 있어서, S45,S46,S47 및 S48은 시스템버스 제어로직(15)에 의해 메인메모리(2)로부터 버퍼메모리(7)로 데이타를 전송하는 단계이고, S49,S50,S51 및 S52는 이단버퍼 제어로직(18)에 의해 제 2 데이타버퍼(17)의 내용을 제 1 데이타버퍼(3)로 전송하는 단계이고, S53,S54,S55 및 S56은 버퍼메모리 제어로직(11)에 의해 제 1 데이타버퍼(3)로부터 버퍼메모리(7)로 데이타를 전송하는 단계이다.
S45단계에서는 제 2 데이타버퍼(17)의 상태가 "비었음(EMPTY)"인가를 계속 검사하여 제 2 데이타버퍼(17)가 비면, S46단계에서 '메인메모리 읽기사이클'을 시작한다. 여기서, '메인메모리 읽기사이클'은 앞에서 설명한 바와 같이 메인메모리(2)의 데이타를 리드하여 제 2 데이타버퍼(17)에 라이트하는 시스템버스 사이클이다. S47단계에서는 제 2 데이타버퍼(17)에 데이타를 라이트한 후 제 2 데이타버퍼(17)의 상태를 "충만(FULL)"으로 세트(set)한 후 사이클을 종료한다. S48단계에서는 모든 데이타의 전송이 끝났는지를 판단하여 끝나지 않았으면, S45단계로 돌아가서 다음 데이타를 전송하고, 데이타 전송이 끝났으면 종료한다.
S49단계에서는 제 2 데이타버퍼(17)의 상태가 "비었음(EMPTY)"인가를 계속 검사하여 제 2 데이타버퍼(17)가 비면, S46단계에서 '메인메모리 읽기사이클'을 시작한다. 여기서, '메인메모리 읽기사이클'은 앞에서 설명한 바와 같이 메인메모리(2)의 데이타를 리드하여 제 2 데이타버퍼(17)에 라이트하는 시스템버스 사이클이다. S47단계에서는 제 2 데이타버퍼(17)에 데이타를 라이트한 후 제 2 데이타버퍼(17)의 상태를 "충만(FULL)"으로 세트(set)한 후 사이클을 종료한다. S48단계에서는 모든 데이타의 전송이 끝났는가를 판단하여 끝나지 않았으면, S45단계로 돌아가서 다음 데이타를 전송하고, 데이타 전송이 끝났으면 종료한다.
S49단계에서는 제 2 데이타버퍼(17)의 상태가 "충만(FULL)"이고, 제 1 데이타버퍼(3)의 상태가 "비었음(EMPTY)"인지를 계속 검사하여 '예'일 경우에 S50단계에서 제 2 데이타버퍼(17)의 내용을 제 1 데이타버퍼(3)로 이동한다. S51단계에서는 제 2 데이타버퍼(17)의 상태를 "비었음(EMPTY)"로 클리어하고, 제 1 데이타버퍼(3)의 상태는 "충만(FULL)"으로 셋트(set)한다. S52단계에서는 모든 데이타의 전송이 끝났는지를 판단하여 '아니오'이면, S49단계로 돌아가 다음 데이타를 전송하고, '예'이면 종료한다.
S53단계에서는 제 1 데이타버퍼(3)의 상태가 "충만(FULL)"인지를 계속 검사하여 '예'이면 S54단계에서 '메인메모리 쓰기사이클'을 시작한다. 여기서, '메인메모리 쓰기사이클'은 제 1 데이타버퍼(3)의 데이타를 리드하여 버퍼메모리(7)에 라이트하는 로컬버스 사이클이다. S55단계에서는 제 1 데이타버퍼(3)의 상태를 "비었음(EMPTY)"으로 클리어한후 사이클을 종료한다. S56단계에서는 모든 데이타의 전송이 끝났는가를 판단하여 '아니오'이면, S53단계로 돌아가 다음 데이타를 전송하고, '예'이면 종료한다.
제 8a,8b 도는 본 발명에 의한 데이타 전송을 도시한 타이밍도로서, 제 8a 도는 버퍼메모리(7)로부터 메인메모리(2)로의 데이타 전송을 보여주고, 제 8b 도는 메인메모리(2)로부터 버퍼메모리(7)로의 데이타 전송을 보여준다.
재 8a 도 및 제 8b 도에 있어서, 'A'는 버퍼메모리(7)를 억세스하는 사이클로서 3 클럭(CLOCK)이고, 'B'는 메인메모리(2)를 억세스하는 사이클로서 5 클럭이고, 'D'는 제 1 데이타버퍼(3)와 제 2 데이타버퍼(17)사이의 데이타 이동시간으로서 1 클럭이다. 또한, 전송시작부터 전송끝까지 3개의 데이타를 전송하는 경우(즉, 전송길이가 3이다)를 보여주며, 이단 버퍼를 사용하므로서 버퍼메모리 사이클과 시스템메모리 사이클을 중첩하여 전송시간을 단축하면서 데이타버퍼가 빌(EMPTY)때까지 기다리는 대기 시간도 없는 것을 알 수 있다.
제 8b 도를 참조하면, 데이타 전송장치에 클럭펄스가 인가되면, 'A'동안 버퍼메모리(7)의 데이타를 독출하여 제 1 데이타버퍼(3)로 전송하고, 전송된 데이타는 'D'동안 제 2 데이타버퍼(17)로 전송된다. 이어서 제 2 데이타버퍼(17)에 전송된 데이타는 'B'동안 메인메모리(2)에 기입되고, 이와 동시에 제 1 데이타버퍼(3)가 비면 버퍼메모리(7)로부터 제 1 데이타버퍼(3)로 새로운 데이타가 전송되게 된다. 'B'가 'A'에 비해 긴 경우, 버퍼메모리(7)는 매번 버퍼메모리(7)에서 메인메모리(2)로 하나의 데이타가 전송되는 동안, 처음에는 'B-A+D'시간동안, 이후에는 'D+2(B-A)'시간동안 버퍼메모리(7)에서 메인메모리(2)로 데이타를 전송하기 위한 버퍼메모리(7)의 사용이 없으므로, 다른 유니트에서 버퍼메모리(7)의 사용이 가능해진다.
제 8b 도를 참조하면, 데이타 전송장치에 클럭펄스가 인가되면, 'B'동안 메인메모리(2)의 데이타를 독출하여 제 2 데이타버퍼(17)에 전송하고, 전송된 데이타는 다시 'D'동안 제 1 데이타버퍼(3)로 전송된다.
이어서 제 1 데이타버퍼(3)에 전송된 데이타는 다시 버퍼메모리(7)에 기입되며, 이와 동시에 비어 있는 제 2 데이타버퍼(17)에는 새로운 데이타가 전송된다.
따라서, N번의 데이타 전송(전송길이가 N)에 걸리는 시간은, 종래의 제 1 방법에 의한 경우는 N(A+B)…〈1〉이고, 제 2 방법에 의한 경우는 A+(N-1)C+NB…〈2〉이고, 본 발명에 의한 경우는 A+N(B+D)…〈3〉이다. 본 발명에 의한 전송기간을 종래의 제 1 방법 및 제 2 방법과 비교해 보면 다음과 같다.
〈1〉-〈3〉=(N-1)A-ND≒ND…〈4〉
〈2〉-〈3〉=(N-1)C-ND≒0…〈5〉
여기서, 'C'나 'D'는 설계방식에 따라 다르지만, 일반적으로 'A'에 비해 무시할 수 있을 만큼 작고, 초당 전송량을 고려하면 N은 105∼106정도이므로 N-1은 거의 N과 같다. 따라서 앞의 〈4〉,〈5〉에서와 같이 종래의 제 1 방법에 의한 전송시간과 본 발명에 의한 전송시간차는 개략적으로 'ND'이고, 종래의 제 2 방법의 전송시간과 본 발명에 의한 전송시간치는 개략적으로 '0'이다. 즉, 본 발명은 종래의 제 1 방법보다는 'ND'만큼 전송시간이 향상되고, 제 2 방법과는 전송시간이 같으나 대기 사이클이 없이 불필요한 버스사용시간을 줄이는 효과가 있다.

Claims (3)

  1. 메인메모리와 입출력처리유니트가 시스템버스를 통해 연결되고, 상기 입출력처리유니트는 마이크로프로세서, 로컬버스, 버퍼메모리, 제 1 직접메모리 억세스(DMA)제어기를 구비하여 상기 메인메모리와 상기 버퍼메모리 사이에 소정 전송길이의 데이타를 전송하는 컴퓨터시스템의 데이타 전송장치에 있어서, 상기 입출력처리 유니트는, 상기 로컬버스를 통해 상기 버퍼메모리에 연결되는 제 1 데이타버퍼 ; 상기 제 1 데이타버퍼와 연결되고 상기 시스텝버스를 통해 상기 메인메모리에 연결되는 제 2 데이타버퍼 ; 및 상기 소정의 전송길이를 카운트하여 데이타 전송을 종료할 때까지 상기 버퍼메모리와 상기 제 1 데이타버퍼 사이의 데이타전송과 상기 제 1 데이타버퍼와 상기 제 2 데이타버퍼 사이의 데이타 전송과 상기 제 2 데이타버퍼와 상기 메인메모리 사이의 데이타 전송을 제어하는 제 2DMA제어기를 더 구비한 것을 특징으로 하는 컴퓨터시스템의 데이타 전송장치.
  2. 제 1 항에 있어서, 상기 제 2DMA제어기는, 상기 버퍼메모리와 상기 제 1 데이타버퍼 사이의 데이타 전송을 제어하는 버퍼메모리 제어로직과, 상기 제 1 데이타버퍼와 상기 제 2 데이타버퍼 간의 데이타 전송을 제어하는 이단버퍼 제어로직과, 상기 제 2 데이타버퍼와 상기 메인메모리 사이의 데이타 전송을 제어하는 시스템버스 제어로직과, 상기 소정의 전송길이를 카운트하여 데이타 전송의 종료를 상기 제어로직들에 알리는 전송길이카운터를 구비하는 것을 특징으로 하는 컴퓨터시스템의 데이타 전송장치.
  3. 메인메모리와 입출력처리유니트가 시스템버스를 통해 연결되고, 상기 입출력처리유니트는 마이크로프로세서, 로컬버스, 버퍼메모리, 제 1DMA제어기, 제 2DMA제어기, 제 1 버퍼메모리, 제 2 버퍼메모리를 구비하여 상기 메인메모리와 상기 버퍼메모리 사이에 소정 전송길이의 데이타를 전송하는 컴퓨터시스템의 데이타 전송방법에 있어서, 상기 버퍼메모리로부터 상기 메인메모리로 데이타를 전송하는 과정은, 상기 제 1 데이타버퍼가 비었으면, 상기 버퍼메모리 데이타를 리드하여 상기 제 1 데이타버퍼로 라이트하는 단계 ; 상기 제 2 데이타버퍼가 비었으면, 상기 제 1 데이타버퍼의 내용을 상기 제 2 데이타버퍼로 이동하는 단계 ; 상기 제 2 데이타버퍼가 충만되었으면, 상기 제 2 데이타버퍼의 데이타를 상기 메인메모리로 전송하는 단계를 구비하고, 상기 메인메모리로부터 상기 버퍼메모리로 데이타를 전송하는 과정은, 상기 제 2 데이타버퍼가 비었으면, 상기 메인메모리의 데이타를 리드하여 상기 제 2 데이타버퍼로 라이트하는 단계 ; 상기 제 1 데이타버퍼가 비었으면, 상기 제 2 데이타버퍼의 내용을 상기 제 1 데이타버퍼로 이동하는 단계 ; 상기 제 1 데이타버퍼가 충만되었으면, 상기 제 1 데이타버퍼의 데이타를 상기 버퍼메모리로 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터시스템의 데이타 전송방법.
KR1019920002690A 1992-02-21 1992-02-21 데이타 전송장치 및 그 전송방법 KR940009432B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920002690A KR940009432B1 (ko) 1992-02-21 1992-02-21 데이타 전송장치 및 그 전송방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920002690A KR940009432B1 (ko) 1992-02-21 1992-02-21 데이타 전송장치 및 그 전송방법

Publications (2)

Publication Number Publication Date
KR930018391A KR930018391A (ko) 1993-09-21
KR940009432B1 true KR940009432B1 (ko) 1994-10-13

Family

ID=19329335

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920002690A KR940009432B1 (ko) 1992-02-21 1992-02-21 데이타 전송장치 및 그 전송방법

Country Status (1)

Country Link
KR (1) KR940009432B1 (ko)

Also Published As

Publication number Publication date
KR930018391A (ko) 1993-09-21

Similar Documents

Publication Publication Date Title
AU639589B2 (en) Dynamic bus arbitration with grant sharing each cycle
US5768550A (en) Bus interface logic system
US5067075A (en) Method of direct memory access control
KR100348545B1 (ko) 통신 dma 장치
KR940009432B1 (ko) 데이타 전송장치 및 그 전송방법
JPH051504B2 (ko)
US5542057A (en) Method for controlling vector data execution
EP0341670B1 (en) Processing time allocation system and method
JP2800764B2 (ja) データ転送制御方式
KR20010050234A (ko) 메모리(mem)와 결합한 데이터 처리용 디바이스
JP2682789B2 (ja) コンピュータ入出力キャッシュ・システム
JP3450214B2 (ja) データ処理装置およびデータ処理方法
JP2699482B2 (ja) データ転送制御装置
JP2870586B2 (ja) 符号入力インタフェース
JP3442099B2 (ja) データ転送記憶装置
JPS6159563A (ja) バス制御方式
JP2552025B2 (ja) データ転送方式
JPS63114369A (ja) 画信号処理装置
JPH0298764A (ja) ファイルデータ転送制御方式
JPS6012668B2 (ja) ダイレクトメモリアクセス装置のインタ−フエイス回路
JPS62168246A (ja) メモリ書込み制御方式
JPS61208553A (ja) コンピユータ・アクセス制御方法及びコンピユータ・アクセス制御装置
JPS6324349A (ja) メモリアクセス装置
JPS6125262A (ja) デ−タ転送装置
JPH0573473A (ja) 産業用コンピユータシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20050929

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee