KR960015587B1 - 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법 - Google Patents

시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법 Download PDF

Info

Publication number
KR960015587B1
KR960015587B1 KR1019940007851A KR19940007851A KR960015587B1 KR 960015587 B1 KR960015587 B1 KR 960015587B1 KR 1019940007851 A KR1019940007851 A KR 1019940007851A KR 19940007851 A KR19940007851 A KR 19940007851A KR 960015587 B1 KR960015587 B1 KR 960015587B1
Authority
KR
South Korea
Prior art keywords
controller
buffer ram
state
system bus
dma
Prior art date
Application number
KR1019940007851A
Other languages
English (en)
Other versions
KR950029957A (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 KR1019940007851A priority Critical patent/KR960015587B1/ko
Publication of KR950029957A publication Critical patent/KR950029957A/ko
Application granted granted Critical
Publication of KR960015587B1 publication Critical patent/KR960015587B1/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/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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • 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
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0044Versatile modular eurobus [VME]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

내용없음

Description

시스템 제어기 모듈에서의 DMA 제어기 및 그 제어방법
제1도는 주전산기3 시스템 제어기 모듈에서의 DTB I/F 모듈 블럭도.
제2도는 제1도의 DTB I/F 모듈의 DMA 제어기를 나타낸 블럭도.
제3도는 DMAC 모듈에서 어드레스 생성기의 블럭도.
제4도는 DMAC 모듈에서 상태 제어기 0의 상태도.
제5도는 DMAC 모듈에서 상태 제어기 1의 상태도.
제6도는 DMAC 모듈에서 상태 제어기 2의 상태도.
* 도면의 주요부분에 대한 부호의 설명
1 : DTB I/F 모듈(Data Transfer Bus Interface Module)
2 : 요청기(RQ : ReQuester)
3 : DMAC(Direct Memory Access Controller)
5 : 프로세서 인터페이스(Processor I/F)
6 : 버퍼 램 베어기(Buffer RAM Controller)
7 : 인터럽트 제어기(Interrupt Controller)
8 : DMAC 상태 제어기(DMAC State Controller)
9 : DMAC 제어/상태 레지스터(DMAC Control/Status Register)
10 : 시스템 버스 어드레스 생성기(System Bus Address Generater)
11 : 버퍼 램 어드레스/제어신호 생성기(Buffer RAM Address/Control Generater).
본 발명은 주전산기3 시스템 제어기 모듈에서의 DMA 제어기 및 그 제어방법에 관한 것으로서, 구체적으로는 시스템 버스와 VME 버스간의 데이타를 프로세서를 거치지 않고 직접 전송하는 DMA 제어기(DMAC)에 관한 것이다.
일반적으로 DMA(Direct Memory Access)는 데이터의 입출력 전송이 직접 메모리 장치와 주변 장치에서 이루어지는 인터페이스를 말한다.
DMA가 일반적으로 입출력 프로그램에 의한 데이타 전송과 다른 점은 CPU의 레지스터를 거치지 않고 직접 메모리와 주변장치 사이의 데이터를 전송한다는 점이다.
주전산기 3는 주처리 장치 모듈, 주기억 장치모듈, 입출력 처리기 모듈 그리고 시스템 제어기 모듈로 구성된다.
이 구성에서 본 발명과 관계되는 시스템 제어기 모듈은 시스템 전체의 통합 제어를 위한 공유 자원을 제어하는 기능과 함께 시스템 버스상의 주기억 장치와 VME(Versa Module Euro) 버스간의 데이터 전송을 담당한다.
이에 대해 시스템 버스와 VME 버스간의 데이터 전송을 고속화 하기 위하여 시스템 제어기는 DMA 제어기를 두어 두 버스간의 데이터를 전송한다.
그리고 주전산기 3 시스템 제어기에서의 데이타 블록전송은 시스템버스와 버퍼램사이에, 버퍼램과 VME버스 사이에서 이루어지는데, 이에 따른 종래의 데이타 블록전송은 32비트, 64비트로 전송을 하였기 때문에 데이타 전송 속도를 저하시키는 문제점이 있었다.
또한, 종래기술에서는 시스템버스와의 데이타 전송에 관련된 동작을 제어하기 위해 여러개의 상태 제어기를 이용함으로써 회로 구성상 복잡한 다른 문제점이 있었다.
따라서 본 발명은 상기 문제점들을 해결하기 위해 시스템 버스와 버퍼램 사이에 128비트 단위로 데이타를 고속 전송하고, 또한, 소수의 상태 제어기를 이용하여 시스템 버스 인터페이스의 버퍼들과 버퍼램, 버퍼램 제어기 등을 액세스함으로써 시스템 버스와 버퍼램 사이의 데이타를 고속 전송하는 시스템 제어기 모듈에서의 DMA 제어기 및 그 제어방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 DMA 제어기는, 128비트의 데이타의 데이타와 22비트의 어드레스를 가진 버퍼램에서 시스템 버스 인터페이스내 128비트 데이타 버퍼로의 블록전송, 혹은 시스템버스에서 버퍼램으로의 128 비트 단위 블록전송을 수행하고, 또한 버퍼램으로 데이타 전송을 하기 위해 프로세서에서 어드레스를 받아 버퍼램을 액세스하는 RAM 어드레스 제어신호 생성기와 시스템 버스로의 데이타 전송을 하는 버스 어드레스 생성기에 의해 시스템 제어기 프로세서인 펜티움프로세서의 어드레스를 고속의 블록 전송형태로 변형하여 만들 수가 있는 특징이 있다.
또한, 본 발명의 DMA 제어기는, 시스템버스와의 데이타 전송에 관련된 동작을 제어하기 위해 3개의 상태 제어기를 구비한 EPLD로 구현함에 따라 각각의 제어기를 단순화할 수 있는 다른 특징이 있다.
이하, 본 발명은 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
시스템 제어기에서 시스템 버스와의 데이터 전송에 관련된 부분을 DTB(Data Transfer Bus) I/F 모듈이라 한다.
상기 DTB I/F 모듈는 시스템 버스에서의 전송 프로토콜을 담당하는 요청기와 DMA 데이터 전송과 관련하여 제어를 담당하는 DMA(DMA Controller)로 구성된다.
제1도는 DTB I/F 모듈의 블럭 구성도이다.
도면에 도시된 바와 같이, 요청기(2)는 시스템 버스상에서의 각종 제어 신호들을 생성하고 확인하는 작업을 수행한다.
그리고 프로세서(5)와 DMAC(3)는 시스템 버스로의 접근 요구를 하는데, 이는 프로세서(5)가 데이터 전송을 요구한 경우에 요청기(2)에 의해 직접 전송을 수행하지만, DMA 전송의 경우에는 요청기(2)와 DMAC(3)가 함께 전송을 한다.
여기서, DMA 전송을 프로세서(5)가 DMAC(3)에게 임의의 크기(실제의 크기는 4MB)의 데이터를 시스템 제어기 내의 버퍼램과 시스템 버스상의 주기억 장치간에 데이터 전송을 명령했을 때, 이를 처리하는 일련의 모든 작업을 말한다.
상기 시스템 제어기내의 버퍼램은 시스템 버스와 VME 버스간의 데이터 전송시 데이터를 임시로 저장하는 기능이 있다.
이에따라 DMAC(3)는 상기 버퍼램과 시스템 버스상의 주기억 장치간의 데이터를 전송하는 기능이 있다.
제2도는 본 발명의 DMAC(3) 내부 블럭 구성도를 나타낸 것이다.
DMAC의 구성은, 시스템버스와의 데이타 전송에 관련된 동작을 제어하는 상태 제어기(8 : State Machine)와, 상기 상태 제어기(8)의 제어신호 및 그 상태를 저장하는 제어/상태 레지스터(9)와, 시스템 버스로의 데이타 전송을 위해 어드레스를 만드는 버스 어드레스 생성기(10) 및 버퍼램(15)으로 데이타 전송을 하기 위해 프로세서로 부터 어드레스를 받아 버퍼램 어드레스 및 그 제어 신호를 생성하는 RAM 어드레스/제어 신호 생성기(11)로 구성된다.
상기 상태 제어기(8)는 세개의 상태 제어기로 구성되는데, 이는 DMAC(3)를 EPLD로 구현함에 따라 각각의 제어기를 단순화하기 위한 것이다.
이와같은 제2도의 구성에 의해 DMA 제어기의 동작을 상기 제1도를 참조하여 설명하면 다음과 같다.
먼저, 상태 제어기(8)가 제어/상태 레지스터(9)를 참조하여 DMA 전송을 명령 받으면 버퍼램 제어기(13)에게 dma_req_(17) 신호를 버퍼램 사용권을 요구한다.
이때, 상기 버퍼램 제어기(13)는 DMAC(3) 및 프로세서 인터페이스 모듈(5)과 VME 제어기간의 버퍼램 사용권에 대한 중재를 한다.
버퍼램 제어기(13)에 의한 중재 결과, 상기 DMAC(3)가 이겼을 경우 버퍼램 사용권은 상기 DMAC(3)에게 부여된다.
즉, DMAC는 버퍼램 제어기(13)로 부터 버퍼램 사용권을 얻으면(dma_grn_ : 18) 다시 요청기(12)에게 시스템 버스의 사용을 요청(db_rq_, d_rq_ : 19,20)하며 전송 방향을 알려준다.(d_rd_ : 21)
이때 요청기(12)는 프로세서와 DMAC간의 시스템 버스 사용 요구권에 대한 중재를 실시한다.
상기 요청기(12)의 중재 결과, 상기 DMAC가 이겼을 경우 상기 요청기는 DMAC에게 시스템 버스 사용요구권을 부여한다.
요청기(12)가 d_gr(22) 신호를 통해 시스템 버스의 사용 준비가 완료되었음을 알리면 DMAC는 상기 요청기의 상태에 따라 시스템 버스 인터페이스(14)와 버퍼램(15)간의 DMA 전송을 제어한다.
그리고 DMAC는 상기 요청기가 보내주는 정보에 따라 시스템 버스의 어드레스 버스로 드라이브할 어드레스를 생성하고 버퍼램(15)을 제어할 ram_a[21 ; 4](24), ram_cs[15 : 0](25), ram_we_(26)등의 신호를 생성해 낸다.
또한, DMAC는 시스템 버스 인터페이스(14)와 버퍼램(15) 사이의 데이터 버퍼를 제어하여 데이터 전송을 수행한다.
제3도는 DMAC 어드레스 생성기의 블록도를 나타낸 것이다.
DMAC의 카운터는 버스 어드레스 카운터(29 : Bus Address Counter), 랩 어드레스 카운터(30 : RAM Address Counter), 전송 크기 카운터(31 : Transfer Size Counter)로 구성된다.
프로세서는 DMAC 전송을 명령하기 위하여 DMAC 내부의 상기 레지스터들(29~31) 또는 카운터들 각각의 시작 어드레스와 전송할 데이터 크기를 쓴다.
그 다음, 프로세서는 DMAC 제어 레지스터의 0번 비트(G0 bit)을 세팅하므로써 DMA 전송 명령을 내린다.
상기 세개의 카운터(29,30,31)는 상기 프로세서에서 요구 받은 전송이 모두 완료될 때까지 즉, 전송 크기 레지스터 값이 0이 될때까지 전송을 계속하게 된다.
또한, 상기 세개의 카운터는 시스템 버스의 전송이 한번씩 끝날 때 마다 상기한 버퍼램 사용권에 대한 중재와 시스템 버스 사용 요구권에 대한 중재를 다시 실시하여 공정성을 기한다.
이때, 전송량이 64바이트 이상인 경우, 시스템 버스 전송이 끝날 때 마다 버퍼램에 대한 중재를 하게 되면 이에 소비되는 시간이 너무 많아지게 된다.
따라서 버퍼램 사용에 대한 다른 요구가 없을 경우에는 버퍼램 사용권에 대한 중재를 생략하여 데이터 전송 속도를 높이도록 한다.
요구된 전송이 모두 끝나에 되면 DMAC는 인터럽트 제어기(16)로 dma_int(27) 신로를 보내서 전송이 완료되었음을 알린다.
이때 인터럽트 제어기(16)로 부터 dma_lack_(28) 신호의 응답이 있으면 인터럽트 신호의 드라이브를 중지한다.
만일 데이터 전송중에 에러가 발생하여 데이터 전송이 실패하는 경우, DMAC가 따로 인터럽트를 발생시키지 않고 요청기가 인터럽트를 보내고, DMAC는 프로세서로부터 DMAC 상태 레지스터로의 접근이 있을 때를 기다려 정상상태로 간다.
상술한 DMA 전송에 대한 상세한 설명을 제4도 내지 제6도에 나타난 상태도를 참조하여 설명한다.
제4도는 DMAC의 3개의 상태 제어기중의 상태 제어기 0에 대한 상태도이다.
상기 상태 제어기 0은 DMAC의 주 상태 제어기이며, 제5도에 나타낸 상태 제어기 1은 버퍼램으로 부터 시스템 버스로의 데이터 전송('쓰기 전송'이라정한다)만 관여하는 상태 제어기이다.
제6도의 상태 제어기 2는 시스템 버스로 부터 버퍼램으로의 데이터는 전송('읽기 전송'이라 정한다)만 관여하는 상태 제어기이다.
상태 천이도상에서 DMAC의 동작을 설명하면 다음과 같다.
첫째, 제1상태 제어기에서는 다음과 같이 동작한다.
리셋 후의 상태인 IDLE0 상태(36)에서는 프로세서로 부터 DMA 전송을 요구 받으면(즉, 제어 레지스터를 셋팅하므로써 이루어짐)(43) DMAC는 ARBIT0 상태(37)로 가서 버퍼램(15)에 대한 사용 요구 신호(dma_req_ : 17)를 버퍼램 제어기(13)로 보낸다.
다음 ARBIT0 상태(37)에서 버퍼램에 대한 사용 요구 신호(dma_req_ : 17)를 버퍼램 제어기로 보낸다.
다시말하면, 버퍼램 사용 중재가 이루어지고 있는 상태이다.
이때, DMAC는 버퍼램 제어기(13)로 부터 버퍼램 사용 허가신호(dma_gm_ : 44)를 받으면 다음 상태인 ARBIT1 상태(38)로 가서 요청기(12)에게 시스템 버스 전송권을 요구한다.
다음 ARBIT1 상태(38)는 시스템 버스 사용 요구권에 대한 요구신호(db_rq_ : 19)를 요청기(12)로 보낸다.
즉, 시스템 버스 사용 요구권에 대한 중재가 이루어지고 있는 상태이다.
이때 전송할 데이터dml 크기가 64바이트 이상이면 블록 전송을 요구(db_rq_ : 19)하고, 크기가 64바이트 미만이면 단일 전송을 요구(d_rq_ : 20)한다.
그리고 요청기(12)로 부터 시스템 버스 사용 허가 신호(d_gr_)을 받으면(64) READY 상태(39)로 천이한다.
이때, 쓰기(id_rd)전송이면서 요청기로 부터 시스템 버스 사용허가 신호와 함께 전송 시작 신호(d_tr_start)를 받으면(45) 바로 TR 상태(40)로 간다.
한편, 요청기로부터 시스템 버스 사용 허가를 받으면 버퍼램 제어 신호(24,25,26)를 드라이브 하기 시작한다.
다음 READY 상태(39)에서는 실제로 DMA 전송이 시작될 때까지 기다리는 상태를 의미한다.
DMAC는 요청기로 부터 DMAC 전송이 시작되었음을 알리는 신호(d_tr_start : 47)를 받을 때 까지 기다렸다가 실제로 DMA 전송이 이루어지고 있는 상태인 TR상태(40)로 천이한다.
이때, DMA 전송이 시작되는 신호를 기다리는 동안 요청기가 심각한 에러가 발생했다는 신호(fatal_err : 49)를 보내면 DMAC도 전송을 포기하고 F-ERROR 상태(42)로 천이한다.
그러나 DMAC는 상기 상태 제어기 1이나 상기 상태 제어기 2의 상태에 따라 버퍼램의 제어신호(24,25,26)를 조정하므로 전송이 모두 끝나고 요청기로 부터 전송 완료 신호(tr_end : 48)를 받으면 UP 상태로 천이한다.
이때, 상기 상태중에 요청기로 부터 fatal_err(50) 신호를 받으면 DMAC도 F-ERROR 상태(42)로 천이한다.
다음 UP 상태(41)는 일단 전송이 완료된 상태를 나타낸다.
따라서, 요청기에게 요구했던 시스템 버스의 사용 요구(19,20)를 중단한다.
즉, 요구받은 DMA 전송이 모두 완료되었을 경우, DMAC는 버퍼램 제어기(13)에게 요구했던 버퍼램 사용 요구(17 : dma_req_)를 중단하고 인터럽트 제어기(16)로 인터럽트(27 : dma_int_)를 보내서 모든 전송이 완료되었음을 알린다.
그 다음 프로세서로부터 DMAC 상태 레지스터(9)로의 읽기 접근(retum_to_idle : 53) 신호가 있으면 IDLE0 상태(36)로 천이한다.
한편, 전송할 데이터가 남은 경우 즉, 프로세서가 DMAC에게 요구한 전송 데이터의 크기가 64바이트 이상일 경우에는 다른 모듈(프로세서나 VME 제어기)로부터의 버퍼램에 대한 사용 요구가 없으면 버퍼램 사용 요구를 중단하지 않는다.
그리고 ARBIT1 상태(38)로 천이해서 나머지 데이터 전송을 계속하며 버퍼램에 대한 사용 요구가 있을 경우에는 버퍼램 사용 요구(17)를 잠시 중단하고 ARBIT0 상태(37)로 가서 재요구를 한다.
다음 F-ERROR(42) 상태에서는 DMA 전송 중 요청기가 F-ERROR 상태로 천이하게 되면 이 상태로 온다.
여기서 에러 상황을 DMAC 상태 레지스터에 기록한 후 프로세서로 부터 DMA 상태 레지스터에 대한 읽기 신호(return_to_idle : 54)가 있으면 IDLE0 상태(36)로 천이한다.
그러나 상기 IDLE0 상태가 되어도 따른 인터럽트를 보내지 않는다.
둘째, 제2상태 제어기에 있어서의 DMAC의 동작을 살펴본다.
리셋 후 상태 IDLE1 상태(55)에서는 쓰기 전송이고 요청기로 부터 d_tr/start 신호(61)을 받으면 WR_0 상태(56)로 천이한다.
다음 WR_0 상태(56)에서는 요청기로 부터 add_drive 신호가 드라이브될 때를 기다린 후 드라이브 되면 블록 전송의 경우(62)에는 WR_1 상태(57)로 가고, 단일 전송(63)의 경우에는 WAIT 상태(60)로 천이한다.
이때, 상기 WAIT 상태(60)에서는 버퍼램으로 부터의 데이터 읽기가 시작된다.
다음 WR_1 상태(57)는 블록 쓰기 전송의 제2데이터를 버퍼램으로부터 읽는 상태로서 항상(64) WR_2 상태(65)로 천이한다.
그리고 WR_2 상태(58)는 블록 쓰기 전송의 제3데이터를 버퍼램으로부터 읽는 상태를 나타내며, 항상 WR_3 상태(59)로 천이한다.
그 다음 상기 Wr_3 상태는 블록 쓰기 전송의 제4데이터를 버퍼램으로부터 읽는 동시에 제1데이터에 대한 데이터 응답을 체크하는 상태이다.
이때 에러가 없으면(67) WAIT 상태(60)로 천이하고, 에러가 발생하면(66) IDLE1 상태(55)로 천이한다.
실제로, 시스템 버스상에 드라이브된 데이터에 대한 응답 체크는 요청기가 수행하여 에러 발생시 요청기는 d_tr_err 신호(66)로서 에러가 발생하였음을 DMAC에게 알려준다.
다음 WAIT 상태(60)에서는 데이터 응답을 체크하여 에러가 발생하거나 데이터 전송이 모두 완료되면(68) IDLE1 상태(55)로 천이한다.
이때 전송이 완료되었다는 것은 요청기가 tr_end라는 신호(68)로서 DMAC에게 알려준다.
세째, 제3상태 제어기의 DMAC의 동작을 설명한다.
IDLE2 상태(69)는 리셋 후 상태이며 읽기 전송(d_rd)이면서 요청기로 부터 d_tr_start 신호(74)를 받으면 RD_0 상태(70)로 천이한다.
다음, 상기 RD_0 상태(70)에서는 블록 전송의 경우 요청기로부터 tag_match 신호(75)를 받으면 RD_1상태(71)로 천이하고, 요청기로 부터 전송 에러 신호나 전송 완료 신호가 오면(76) IDLE2 상태로 다시 돌아간다.
그리고 상기 RD_0 상태가 되면 버퍼램으로의 데이터 쓰기가 시작된다.
다음은 블록 읽기 전송의 제2데이터를 버퍼램에 쓰는 RD_1 상태(71)로서 에러가 발생되면(77 : d_tr_err) 다시 IDLE2 상태(69)로 돌아간다.
그리고 그 밖의 경우는 다음 상태인 RD_2 상태(72)로 천이한다.
다음 상기 RD_2 상태는 블록 읽기 전송의 제3데이터를 버퍼램에 쓰는 상태로서 에러가 발생되면(79) IDLE2로 천이하고, 그 밖의 경우에는 RD_3 상태(73)로 천이한다.
상기 RD_3 상태(73)는 블록 읽기 전송의 제4데이터를 버퍼램에 쓰는 상태로서 항상 IDLE2 상태(69)로 천이한다.
한편, 버스 어드레스 카운터등의 카운터들(29,30,31)은 EPLD로 구현하기 쉽도록 작은 비트의 카운터를 연결하여 구현한다.
즉, 버스 어드레스 카운터(29)의 경우는 31번부터 4번까지의 어드레스를 생성하는데 28비트의 카운터가 필요하다.
그러나 우선 최하위 2비트는 블록 전송중에 연속해서 카운트되는 부분으로서 따로 분리하였다.
그리고 에러 발생에 의해 재시도하는 경우를 대비해서 상기 2비트는 백업용 레지스트를 함께 가지고 있다.
또한 나머지 부분도 네 부분으로 나누어 EPLD로 구현함에 있어서 핏팅(fitting)이 쉽게 되도록 하였다.
상기한 버스 어드레스 카운터의 경우와 마찬가지로 버퍼램 어드레스 카운터(30)의 경우도 21번부터 4번까지의 어드레스중 최하위 2비트를 분리하고 나머지 부분도 세 부분으로 나누어 구현하였다.
먼저 최하위 4비트와 그 다음의 2비트를 따로 분리하여 데이타 전송 크기가 64바이트에 정렬되지 않았을 경우 64바이트 이하의 부분을 따로 구성함으로써 제어 신호의 생성을 편리하게 하였다.
그리고 나머지 부분도 세 부분으로 나누어 구현하여다.
한편 전송 크기 카운터(31)는 감쇠 카운터로서 그 값이 0이 되면 DMAC 상태 제어기에게 모든 전송이 완료되었음을 알린다.
다음 DMAC는 시스템 버스의 어드레스 및 바이트 인에이블신호와 이들에 대한 패리티를 생성하여 시스템 버스 인터페이스 모듈로 드라이브한다.
이때 패리티는 홀수 패리티이다.
이상에서 설명한 DMAC는 EPLD로 구현하기 위하여 EPLD 전용의 AHDL(Altera Hardware Descirption Language)로 구현하여 시스템 버스와 버퍼램 사이에 데이타 전송시 버퍼램의 사용 효율을 극대화 시키므로써 많은 양의 데이타를 고속으로 전송할 수가 있는 것이다.

Claims (5)

  1. 시스템 버스에서의 전송 프로토콜을 담당하는 요청기(2)와, 상기 시스템버스와 VME 버스간의 데이터 전송시 상기 데이터를 임시로 저장하는 버퍼램(15)과, 상기 버퍼램과 상기 시스템 버스상의 주기억장치간의 데이터 전송을 제어하는 DMA 제어기(3)와, 상기 요청기(2)와 상기 DMA 제어기(3)가 발생하는 인터럽트를 제어하는 인터럽트 제어기(7,16)를 포함한 시스템 제어기 모듈에 있어서, 상기 DMA 제어기는 시스템버스와의 데이타 전송에 관련된 동작을 제어하는 상태 제어기(8)와, 상기 상태 제어기(8)의 제어신호 및 그 상태를 저장하는 제어/상태 레지스터(9)와, 시스템 버스로의 데이타 전송을 위해 어드레스를 만드는 버스어드레스 생성기(10)와, 그리고 버퍼램(15)으로 데이타 전송을 하기 위해 프로세서로 부터 어드레스를 받아 버퍼램 어드레스 및 그 제어 신호를 생성하는 RAM 어드레스/제어 신호 생성기(11)로 구성된 것을 특징으로 하는 시스템 제어기 모듈에서의 DMA 제어기.
  2. 제1항에 있어서, 상기 상태제어기(8)는 DMA 제어기의 주 상태 제어기인 제1상태 제어기와 버퍼램(15)으로 부터 시스템 버스로의 데이터 전송만 관여하는 제2상태 제어기와, 시스템 버스로 부터 버퍼램으로의 데이터 전송만 관여하는 제3상태 제어기로 구성되는 것을 특징으로 하는 시스템 제어기 모듈에서의 DMA 제어기.
  3. 제1항에 있어서, 상기 시스템 버스 어드레스 생성기(10)는 버스 어드레스 카운터, 램 어드레스 카운터, 및 전송크기 카운터로 분리한 것을 특징으로 하는 시스템 제어기 모듈에서의 DMA 제어기.
  4. 주전산기3 시스템 모듈의 DMA 제어기의 DMA 전송방법에 있어서, 프로세서로 부터 DMA 전송명령을 받아 버퍼램 제어기(13)에게 버퍼램 사용권을 요구하는 단계와, 상기 버퍼램 제어기(13)가 DMA 제어기 및 프로세서 인터페이스 모듈(5), VME 제어기(13)간의 버퍼램 사용권에 대한 중재를 실시하는 단계와, 상기 버퍼램 사용권을 획득하여 시스템 버스상의 제어신호들을 생성하고 확인하는 요청기(12)에게 시스템 버스의 사용권을 요구하는 단계와, 상기 요청기가 상기 프로세서와 상기 어드레스 제어기간의 시스템 버스 사용 요구권을 중재하는 단계와, 시스템 버스의 사용권을 획득하여 상기 요청기(12) 상태에 따라 시스템 버스 인터페이스(14)와 버퍼램(15)간의 DMA 전송을 제어하는 단계와, 상기 요청기에서 수신된 정보에 의해 시스템 버스의 어드레스 버스로 드라이브할 어드레스를 생성하고 버퍼램을 제어할 제어신호를 생성하는 단계와, 시스템 버스 인터페이스와 버퍼램 사이의 데이터 버퍼를 제어하여 데이터 전송을 수행하는 단계와, 인터럽트 제어기(16)로 인터럽트를 보내어 데이터 전송이 완료됨을 알리는 단계로 이루어지는 것을 특징으로 하는 시스템 제어기 모듈에서의 DMA 제어방법.
  5. 제4항에 있어서, 상기 버퍼램 제어기(13)가 버퍼램 사용권을 중재하는 단계에서 전송량이 64바이트 이상인 경우 버퍼램 사용에 대한 다른 요구가 없을 경우 버퍼램 사용권에 대한 중재를 생략하는 것을 특징으로 하는 시스템 제어기 모듈에서의 DMA 제어방법.
KR1019940007851A 1994-04-14 1994-04-14 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법 KR960015587B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940007851A KR960015587B1 (ko) 1994-04-14 1994-04-14 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940007851A KR960015587B1 (ko) 1994-04-14 1994-04-14 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR950029957A KR950029957A (ko) 1995-11-24
KR960015587B1 true KR960015587B1 (ko) 1996-11-18

Family

ID=19381058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940007851A KR960015587B1 (ko) 1994-04-14 1994-04-14 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR960015587B1 (ko)

Also Published As

Publication number Publication date
KR950029957A (ko) 1995-11-24

Similar Documents

Publication Publication Date Title
US5301279A (en) Apparatus for conditioning priority arbitration
US4937734A (en) High speed bus with virtual memory data transfer and rerun cycle capability
US5191656A (en) Method and apparatus for shared use of a multiplexed address/data signal bus by multiple bus masters
US5881254A (en) Inter-bus bridge circuit with integrated memory port
US4814970A (en) Multiple-hierarchical-level multiprocessor system
KR970000842B1 (ko) 정보 처리 시스템 및 컴퓨터 시스템
CA2007690C (en) High speed bus with virtual memory data transfer capability
US5574868A (en) Bus grant prediction technique for a split transaction bus in a multiprocessor computer system
EP0535793B1 (en) Method for managing data transfers in a computing system having a dual bus structure
US6282598B1 (en) PCI bus system wherein target latency information are transmitted along with a retry request
US5528766A (en) Multiple arbitration scheme
US5649209A (en) Bus coupling information processing system for multiple access to system bus
US5761532A (en) Direct memory access controller with interface configured to generate wait states
US5089953A (en) Control and arbitration unit
US5495585A (en) Programmable timing logic system for dual bus interface
US5097483A (en) Tri-statable bus with apparatus to drive bus line to first level and then second level for predetermined time before turning off
US6721833B2 (en) Arbitration of control chipsets in bus transaction
US5983025A (en) Computer system buffers for providing concurrency and avoid deadlock conditions between CPU accesses, local bus accesses, and memory accesses
JPH0556548B2 (ko)
US6327636B1 (en) Ordering for pipelined read transfers
KR960015587B1 (ko) 시스템 제어기 모듈에서의 dma 제어기 및 그 제어방법
JPH08314854A (ja) データ転送システムおよびこれに関連する装置
US6240474B1 (en) Pipelined read transfers
JPH06250970A (ja) メモリ制御装置
EP0533429B1 (en) Computer bus control system

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
LAPS Lapse due to unpaid annual fee