KR930003709B1 - 데이터 전송 제어장치 및 방법 - Google Patents

데이터 전송 제어장치 및 방법 Download PDF

Info

Publication number
KR930003709B1
KR930003709B1 KR1019850009762A KR850009762A KR930003709B1 KR 930003709 B1 KR930003709 B1 KR 930003709B1 KR 1019850009762 A KR1019850009762 A KR 1019850009762A KR 850009762 A KR850009762 A KR 850009762A KR 930003709 B1 KR930003709 B1 KR 930003709B1
Authority
KR
South Korea
Prior art keywords
data
register
transfer
memory means
area
Prior art date
Application number
KR1019850009762A
Other languages
English (en)
Other versions
KR860005295A (ko
Inventor
요시도 스즈기
Original Assignee
가부시끼가이샤 히다찌세이사꾸쇼
미다 가쓰시게
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 히다찌세이사꾸쇼, 미다 가쓰시게 filed Critical 가부시끼가이샤 히다찌세이사꾸쇼
Publication of KR860005295A publication Critical patent/KR860005295A/ko
Application granted granted Critical
Publication of KR930003709B1 publication Critical patent/KR930003709B1/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/38Information transfer, e.g. on 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)
  • Information Transfer Systems (AREA)
  • Image Processing (AREA)

Abstract

내용 없음.

Description

데이터 전송 제어장치 및 방법
제1도는 본 발명에 관한 오프 셋트가 붙은 데이터 전송방식의 원리를 도시한 설명도.
제2도는 본 발명을 DMA 콘트롤러에 적용한 경우의 1실시예를 표시한 불럭 도면.
제3도는 마이크로 프로그램 시켄서의 불럭 도면.
제4도는 연산 실행부의 불럭 도면.
제5도는 내부의 중요 레지스터의 구성예를 도시한 설명도.
제6도는 DMA 콘트롤러의 동작을 설명하기 위한 프로그램 플로우챠트.
제7a도와 제7b도는 본 발명을 적용한 DMA 콘트롤러에 의한 전송 모오드의 예를 각각 모식화하여 도시한 설명도.
제8도는 본 발명에 관한 오프 셋트가 붙은 데이터 전송을 화상 표시에 응용한 경우의 작용을 도시한 설명도.
본 발명은 데이터(data) 처리 기술 더욱이는 마이크로 콤퓨터 시스템(micro computer system)에 있어서의 디바이스(device)사이의 데이터 전송에 적용해서 특히 유효한 기술에 관하여, 예를 들면 DMA(다이렉트 메모리 엑세스)방식의 데이터 전송을 제어하는 DMA 콘트롤러(controller)에 이용하여 유효한 기술에 관한 것이다.
마이크로 프로셋서(micro processor)와 함께 마이크로 콤퓨터 시스템을 구성하는 제어용 LSI(대규모 집적 회로)의 하나로서, DMA 콘트롤러라고 부르는 LSI가 있다. 이 DMA 콘트롤러는 고속 CRT단만(terminal), 하드 디스크(hard disk) 혹은 플로피 디스크(floppy disk)등의 데이터 입출력 기기(機器)와 메모리(memory)와의 사이에 혹은 메모리 사이에서 대량의 데이터의 전송(轉送)을 행할 필요가 있을때, 마이크로 프로셋서 대신으로 이와같은 데이터 전송을 제어하는 LSI이다. DMA 콘트롤러에 의한 데이터 전송에 의해서, 마이크로 프로셋서가 소프트웨어(soft ware)로 그와 같은 데이터 전송을 행하는 경우에 비해서 데이터 전송 속도가 향상되고, 또한 병열
Figure kpo00001
처리에 의해 시스템(system) 전체의 데이터 처리 능력이 향상된다.
상기와 같은 DMA 콘트롤러로서는 최대 32비트(bit)의 데이터를 여러 종류의 전송 방식으로 전송할 수 있음과 동시에 버스 에러(bus error)나, 인터럽트등 각종의 예의 처리 기능과 에러검출 기능도 내장(內臟)한 높은 기능의 DMA 콘트롤러도 제안되고 있다(예를 들면 일경(日經) 마구로힐사 발행 일경 엘렉트로닉스 1982년 8월 2일호 No.296, pp129∼158참조).
그러나, 종래의 DMA 콘트롤러에 의한 DMA 전송에서는, 전송원(소오스) 어드레스와 전송선(distination) 어드레스가 각각 한개씩 갱신(更新)되도록 되어 있다. 이로인해 일연의 데이터군(群)은 일정한 어드레스 공간내에 연속적으로 격납되어 각 데이터를 드문 드문 격납시킬수는 없다.
본 발명의 목적은 종래에는 없던 새로운 데이터 전송방식을 실현하는데 있다.
본 발명의 다른 목적은 마이크로 프로셋서 부담을 감합하고, 시스템 전체의 처리 능력을 향상시킬 수가 있는 데이터 전송 방식을 제공하는데 있다.
본 발명의 상기 및 그 이외의 목적과 새로운 특징에 대해서는, 본 명세서의 기술 및 첨부 도면에서 명확하게 될 것이다.
본 출원에 있어서 기술되는 발명중, 대표적인 것의 개요를 설명하면 다음과 같다.
즉, 전송원 어드레스와 전송선 어드레스를 각각 갱신시킬 때의 오프 셋트 수치를 설정하기 위한 레지스터(register)를 새로이 마련하고 일연의 데이터군을 어드레스에 오프 셋트를 같게하여 갱신하면서, 즉 어드레스를 스킵(skip)시키면서 전송할 수 있도록 하여, 에를 들면 종래 소프트 웨어로 행하고 있던 CRT 표시 화면위에서의 도형의 회전과 같은 처리를 데이터 전송방식을 변경하는 것만으로 자동적으로 행하도록 하며, 이것에 의하여 콘트롤러의 높은 기능화를 이룩함과 동시에 마이크로 프로셋서의 부담을 경감하고, 시스템 전체 처리 능력을 향상시키는 상기 목적을 달성하는 것이다.
[실시예]
우선 본 발명에 의한 오프 셋트가 붙은 데이터 전송방식의 원리에 대해서 설명한다.
종래의 DMA 콘트롤러에 의해 연속해서 일연의 데이터 전송(불럭 전송)을 행하는 경우 전송원 어드레스는 1개씩 갱신되고 있다. 이로인해, 전송되는 데이터군(이하 불럭이라고 한다) ①, ②, ③은 제1도에 S1로 표시한 것과 같이 각각 연속한 어드레스 영역내에 격납되어 있는 것이 조건으로 되어 있었다.
전송된 데이터는, 메모리나 입출력 기기내의 연속된 어드레스 영역으로 격납된다. 이 경우 격납되는 각 어드레스 영역의 선두(先頭) 어드레스는 임의이다. 또, 격납의 방향, 즉 어드레스를 증가시키면서 데이터를 격납하던가, 감소시키면서 데이터를 격납하는 것은 자유로이 선택되었다. 그 결과 전송선에서는 제1도에 D1-1∼D1-4로 표시된 것과 같은 상태로 각 불럭 데이터(block data)가 격납되도록 되어 있었다. 즉 종래의 불럭 전송방식에 의하면 제1도에서 화살표 a1로 표시한 것과 같은 데이터의 전송이 가능하게 되어 있었다.
이에 대해 본 발명에 의한 데이터 전송방식은 전송원과 전송선 어드레스를 1개씩 갱신하는 대신으로 각각 적당한 오프 셋트 수치(단 1불럭의 데이터의 전송이 끝날때까지는 일정)를 갖게하여, 즉 어드레스를 스킵시키면서 갱신하는 것이다. 더욱이 범용성(凡用性)을 갖게하기 위하여, 전송원 어드레스와 전송선 어드레스의 어느 한쪽, 혹은 양쪽에 오프 셋트 수치를 갖게하여 갱신할 수가 있도록 하는 것이다.
예를 들면, 제1도에 S1로 표시한 것과 같이 연속된 어드레스 영역으로 들어가 있는 불럭 데이터 ①, ②, ③이 전송된 어드레스의 선두를 B로 하고, 또한 오프 셋트 수치를 Y로 하여 이것을 증가 갱신시키면서, 전송되는 것으로 한다. 이 경우, 불럭 ①내의 최초의 데이터 ①-1(단 이 경우 각 데이터는 16비트와 같은 워드(word)단위로 한다)는 제1도의 D2-1과 같이 어드레스 B로 들어가고 다음의 데이터 ①-2는 어드레스 B+Y로 들어간다. 이와 같이하여 n개의 데이터의 전송이 끝나면, 다음의 불럭 ②의 최초의 데이터 ②-1이 어드레스 B+2로 들어가고 다음의 데이터 ②-2는 B+Y+2로 들어간다. 그 결과 전송 데이터는 제1도에 D2-1로 표시한 것과 같은 상태로 격납된다.
한편, 전송선 어드레스의 오프 셋트 수치를 Y로 하고, 그 오프 셋트 수치 Y를 감소 갱신시키면서 데이터를 전송시키는 경우, 데이터는 제1도 D2-2로 표시한 것과 같은 상태로 격납된다. 또한 불럭 ①-③의 전송 순서를, 예를 들면, ③-②-①과 같은 순서로 변경하고, 또한 상기와 같은 조건의 오프 셋트가 붙은 전송을 행하면, 각 데이터는 제1도에 D2-3, D2-4로 표시한 것과 같은 상태로 격납된다.
즉, 이 방법에 의해서 제1도의 화살표 a2로 표시한 것과 같은 데이터의 전송이 실행된다.
또, 전송선 어드레스가, 오프 셋트 수치 Y없이 1개씩 갱신되고, 또 전송원 어드레스가 오프 셋트 수치 X를 가지고, 갱신되면서 데이터의 전송이 행하여 지면, 제1도에 S2로 표시한 것과 같이 전송원에 서전에 등간격(等間隔)(드문 드문있는 상태)으로 격납되어 있던 데이터 ①-1∼①-n, ②-1∼②-n, ③-1∼③-n이, 전송선 디바이스(device)내에 D1-1, D1-2, D1-3, D1-4와 같이 연속된 불럭 상태로 격납되도록 된다.
즉, 이 방법에 의해서 제1도에 화살표 a3으로 표시한 것과 같은 데이터 전송이 실행된다.
또한, 전송원 어드레스와 전송선 어드레스의 양쪽을 각각 오프 셋트 수치를 X, Y로 하여 갱신시키면서 데이터 전송을 행하면 제1도에 화살표 a4로 표시한 것과 같은 전송이 실행된다.
더욱이, 본 발명에 의한 데이터 전송 방식에서는 단지 오프 셋트 수치 X, Y를 각각 0으로 하는 것에 의해서 화살표 a1로 표시한 종래와 같은 방식에서의 불럭 전송도 행하게 된다.
그리고, 상기의 설명에서는, 워드 단위(16비트)의 데이터의 전송을 예로하여 기술하였으나, 바이트(byte)단위(8비트) 혹은 롱(long)워드 단위(32비트)의 데이터의 전송도 동일한 방식으로 행할 수가 있는 것은 말할 것도 없다. 또, 전송 어수(語數) n은 각 불럭마다 틀려도 된다.
다음에 상기 전송방식에 따른 데이터 전송을 실행하는 구체적인 장치의 실시예에 대해서 설명한다.
제2도에는, 본 발명을 DMA 콘트롤러에 적용하였을 경우의 1실시예의 불럭 구성도가 도시되어 있다.
특별히 제한되지 않으나, 도면중 쇄선(鎖線)C로 둘러쌓인 각 회로 불럭은, 단결정(單結晶) 실리콘 기판과 같은 1개의 반도체 칩(chip)위에 있어서 형성된다.
본 실시예의 DMA 콘트롤러는 마이크로 프로그램 방식에 의한 내부 제어 방식이 채용되어 있고, 칩 내부에는 마이크로 프로그램이 격납된 마이크로 프로그램 ROM(리드 온리 메모리) 1이 마련되어 있다.
마이크로 프로그램 ROM1은 다음에 설명하는 것과 같은 여러가지의 전송 모드(mode)에 1대 1로 대응된 마이크로 프로그램을 포함한다. 각 마이크로 프로그램은 각각 1대 1로 대응된 엔트리 어드레스(entry address)를 갖는다. 마이크로 프로그램 ROM1에 한개의 마이크로 프로그램 어드레스가 입력되면, 마이크로 프로그램 ROM은 제어 신호선 CL에, 버스 입출력 회로 8, 연산 실행 유니트 4, FIFO 유니트 6, 플래그 레지스터(flag register) 5등의 내부 회로의 동작 제어를 위한 제어 신호를 출력한다. 마이크로 프로그램 ROM1은 또 시켄서(sequencer) 2에 대해, 다음에 실행되어야 할 마이크로 프로그램 어드레스를 표시하는 어드레스 데이터를 출력한다. 특별히 제한되지 않으나, 마이크로 프로그램 ROM1은 8비트 구성에 어드레스 데이터에 의해서 액세스(access)된다. 마이크로 프로그램 ROM1에서 출력되는 다음 어드레스 데이터는 조건 분기를 표시하는 어드레스 데이터인지 아닌지를 표시하는 1비트와 같은 지시(指示)비트와 함께 다음과 같은 8비트 또는 10비트로 된다. 즉, 그의 다음 어드레스가 조건분기를 표시하는 어드레스가 아닌 경우 다음 어드레스 데이터는, 8비트 구성으로 되고, 그의 다음 어드레스가 조건분기를 표시하는 어드레스인 경우, 6비트 구성의 어드레스 데이터와 4비트의 분기 판정용 비트로 구성된다.
마이크로 프로그램 시켄서 2는, 예를 들면 제3도에 도시되어 있는 것과 같이, 스타트 어드레스 발생부 SAG와 조건분기 제어부 CBC로 된다. 스타트 어드레스 발생부 SAG는 PLA(프로그램어불 로직 어레이)에 구성되고, 콘트롤 레지스터부 3에서 공급되는 전송 모드에 관한 정보에 따라서 상기 마이크로 프로그램 ROM1에 대해서 최초의 마이크로 프로그램 명령의 어드레스 데이터를 발생한다. 조건분기 제어부 CBC는 다음에 기술하는 연산 실행부 4로 부터의 연산 정보나 플래그 레지스터 5로 부터의 스테이터스(status) 정보에 따라서 다음에 실행되어야 할 마이크로 프로그램 명령을 결정한다.
즉 제3도의 마이크로 프로그램 ROM1에서 어드레스 데이터선 NAL에 출력되는 다음 어드레스 데이터가 조건분기를 표시하는 어드레스 데이터가 아닐 경우 그 다음 어드레스 데이터는 마이크로 프로그램 ROM1의 다음 어드레스로서 마이크로 프로그램 ROM1에 공급된다. 어드레스 데이터선 NAL에 출력되는 다음 어드레스 데이터가 조건분기를 표시하는 어드레스 데이터인 경우, 마이크로 프로그램 ROM1에 공급하여야할 다음 어드레스 데이터는 다음과 같이 하여 형성된다.
즉 어드레스 데이터선 NAL에서 출력되는 어드레스 데이터중 4비트의 제어 데이터가 조건분기부 CBC에 공급되고 나머지의 6비트의 어드레스 데이터가 마이크로 프로그램 ROM1에 공급된다. 조건 분기부 CBC는 마이크로 프로그램 ROM1에서 공급되는 4비트의 제2데이터와 플래그 레지스터 5에서 출력되는 다수 비트의 플래그 데이터를 데코더 하는 것에 의하여, 4종의 분기되어야 할 어드레스의 1개를 표시하는 2비트의 어드레스 데이터를 출력한다. 마이크로 프로그램 ROM1에서 출력되는 6비트의 어드레스 데이터와 조건분기부 CBC에서 출력되는 2비트의 어드레스 데이터로 되는 8비트의 어드레스 데이터가 마이크로 프로그램 ROM1에 공급된다. 마이크로 프로그램 시켄서 2에 의한 제어에 의하여 일연의 마이크로 프로그램 명령이 마이크로 프로그램 ROM1에서 호출되는 내부의 제어신호가 형성되어 각 회로 불럭에 공급된다.
콘트롤 레지스터부 3은 다음에 제5도를 가지고 설명하는 것과 같은 오퍼레이션(operation) 콘트롤 레지스터 OCR, 시켄서 콘트롤 레지스터 SCR, 테이블 액세스 콘트롤 레지스터 TCR 및 오프 셋트 콘트롤 레지스터 OFFCR을 갖는다.
연산 실행부 4는 그 내부에 제5도를 가지고 설명하는 것과 같은 메모리 어드레스 레지스터 MAR, 디바이스 어드레스 레지스터 DAR, 베이스 어드레스 레지스터 BAR, 메모리측 오프 셋트 설정용 레지스터 MOFF, 디바이스측 오프 셋트 설정용 레지스터 DOFF, 전송원 불럭 선두 어드레스 보존용 레지스터 GRA, 전송선 프로그램 선두 어드레스 보존용 레지스터 GRB, 전송어 보존용 레지스터 GTC 등으로 되는 각종 레지스터 메모리 트랜스파 카운터 MTC, 베이스 트랜스파 카운터 BTC 등으로 되는 카운터 및 ALU(연산 논리 유니트)를 갖는다.
연산 실행부 4는 상기 마이크로 프로그램 ROM1에서 공급되는 제어 신호에 따라서 DMA 전송에 필요한 어드레스의 계산과 전송어수의 계산등을 행한다.
즉 연산 실행부 4는 예를 들면 제4도에 도시된 바와 같이 내부 버스 IBS1, IBS2 및 이들에 내부 버스 IBS1, IBS2에 결합된 상기 각종 레지스터 워크 에리아(working area)로서의 범용 레지스터 GPR 및 ALU을 갖는다. 내부 버스 IBS2는 예를 들면 도시하지 않은 결합 회로를 거쳐서 제2도에 버스 IDB, IAB에 결합된다. 이 구성에 있어서 예를 들면 메모리 어드레스 레지스터의 데이터는 다음과 같이하여 갱신된다.
즉 메모리측 오프 셋트 설정용 레지스터 MOFF내의 다음에서 설명하는 것과 같은 오프 셋트 데이터가 내부 버스 IBS1을 거쳐서 ALU에 공급되고 또 메모리 어드레스 레지스터 MAR내의 갱신하여야할 어드레스 데이터가 ALU에 공급된다. ALU에 의하여 종급되어야 할 어드레스 데이터가 오프 셋트 데이터에 따라 갱신된다. 갱신된 어드레스 데이터는 내부 버스 IBS1을 거쳐서 재차 메모리 어드레스 레지스터 MAR에 기억된다.
계산된 어드레스 데이터는, 입출력 버퍼(buffer)회로 7 및 외부 단자군 ABST를 거쳐서 외부의 어드레스 버스에 출력된다. 연산 실행부 4내에는 FIFO 유니트 6이 마련되어 있다. FIFO 유니트 6은 입출력 버퍼 회로 7을 거쳐서 칩 내부애 호출된 전송 데이터를 일시적으로 유지함과 동시에 그의 데이터의 분할, 통합등을 관리하기 위하여 이용된다.
에를 들면 외부에서 멀티플렉서 방식에 의하여 공급되는 것과 같은 2분할 데이터는 FIFO 유니트 6내의 2개의 에리아에 차례로 입력되어 그후에 FIFO 유니트 6의 2개의 에리아에서 동시에 출력된다.
이에 따라서, FIFO 유니트는 실질적으로 직열-병열 변환 회로로서 동작된다. 역으로 외부에 멀티플렉서 방식을 가지고 데이터 신호를 출력하여야 할때에는 데이터가 FIFO 유니트내의 2개의 에리아 내에 분할되어 입력되어 그후로 2개의 에리아에서 외부에 차례로 출력된다.
버스 I/O제어부 8은 마이크로 프로그램 ROM1에서 공급되는 제어 신호에 따라서 버스 및 외부에 결합되는 입출력기기의 제어 신호의 발생과 제어를 행한다. 즉 버스 I/O제어부 8은 예를 들면 외부 제어 단자 ECL을 거쳐서 주변 디바이스에서 공급되는 DMA 전송 요구 신호 혹은 찬넬 요구 신호를 받아 전송을 요구한 주변 디바이스에 요구가 인정된 것을 표시하는 찬넬 어크너리지(aeknounledge) 신호 및 주변 제어 신호를 외부 제어 단자 ECL에 출력한다. 버스 I/O제어부 8은 또 마이크로 프로그램 ROM1에서 공급되는 제어 신호와 주변 디바이스에서 공급되는 전송 요구 신호에 따라서 입출력 버퍼의 동작을 제어하기 위한 신호, 바꾸어 말하면 입출력 버퍼 7을 입력 버퍼로서 동작시키든가, 출력 버퍼로서 동작시키는 가를 지시하는 제어신호를 제어선 IOC에 출력한다.
특히 제한되지 않으나 위의 실시예의 DMA 콘트롤러는 4개의 독립한 찬넬을 가지며, 찬넬에 접속되는 입출력 기기를 따로따로 제어할 수 있도록 되어 있다.
또 이 실시예의 DMA 콘트롤러에는 버스 에러, 또는 카운터 에러등 각종의 에러를 검출하여 또 에러 회복 처리나 인터럽트등 각종의 예의 처리를 행하는 에러, 이상 처리 제어부 9가 마련되어 있다.
이상 처리제어부 9는 외부에 마련된 도시하지 않은 엔코더에 의하여 형성되는 코드화된 예의 처리 요구신호에 의하여 동작된다. 이 예의 처리 요구 신호는 외부 단자
Figure kpo00002
를 거쳐서 처리부 9에 공급된다. 이상 처리 제어부 9는 예의 처리 요구 신호를 데코더 하는 것에 의하여 예의 처리를 위한 마이크로 프로그램의 선두 어드레스를 표시하는 어드레스 데이터를 마이크로 프로그램 ROM1에 출력한다. 이상처리 제어부 9에서 어드레스 데이터가 출력되는 경우 프로그램 시켄서 2에서 마이크로 프로그램 ROM1에 공급되는 어드레스 데이터는 마스크(mask)된다. 이것에 의하여 이상처리 프로그램이 실행된다.
다음에 DMA 콘트롤러내에 마련된 각종 레지스터중 본 발명에 관한 오프 셋트가 붙은 데이터 전송에 관계하는 레지스터를 제5도에 표시한다. 이들의 레지스터는 DMA 콘트롤러에 마련된 4개의 찬넬의 각각에 대응하여 각각 하나씩 마련되어 있다. 그중 파선으로 둘러쌓인 각 레지스터 GRA, GRB 및 GRC는 어드레스 계산에 사용하는 내부 워크 레지스터이고 MPU에 의하여 액세스 하는 것은 필요하지 않다. 그러므로 레지스터 GRA, GRD, GTC는 특히 제한되지 않으나 칩의 외부에서는 그 내부 상태를 볼수 없게 되어 있다.
또 제5도에 표시되어 있는 각종 레지스터중 레지스터 MOFF, DOFF, GRA, GRB, GTC, TCR 및 OFFCR은 본 발명의 실시예에 따라서 새로이 추가된 레지스터이다. 다른 레지스터는 주식회사 히다찌 제작소 제 HD68450과 같은 DMA 콘트롤러 등에 있어서 이미 마련되어 있는 바와 같은 레지스터이다.
제5도에 표시한 레지스터중 오퍼레이션 콘트롤 레지스터 OCR은 예를 들면 표 1과 같이 데이터의 전송방향을 표시하는 비트 DIR, 전송되는 데이터의 크기 즉 비트수를 표시하는 비트 치수, 어레이 체인 전송이나, 린크 어레이 체인 전송등의 전송 모드를 표시하는 비트 체인 및 외부 전송요구 혹은 자동 전송 요구등의 전송 요구의 종류를 지정하기 위한 비트 REQG를 가지며, DMA 콘트롤러의 전송 동작 모드를 설정한다.
[표 1]
Figure kpo00003
특히 제한되지 않으나, 비트 DIR의 "0"은 메모리에서 디바이스의 데이터 전송 혹은 메모리 어드레스 레지스터 MAR에 의하여 지시되어 있는 어드레스에서 디바이스 어드레스 레지스터 DAR에 의하여 지시되어 있는 어드레스의 데이터 전송을 의미하여, "1"은 역(逆)의 데이터 전송을 의미한다. 비트 사이즈의 "00", "01" 및 "10"은 각각 바이트(8비트), 워드(16비트), 롱 워드(32비트)와 같은 데이터 사이즈를 표시한다. 비트 체인의 "00", "10" 및 "11"은 각각 체인 동작 내지 어레이 체인 및 린크 어레이 체인을 표시한다.
시켄서 콘트롤 레지스터 SCR은 전송원 어드레스와 전송선 어드레스의 갱신법을 개별적으로 설정하기 위한 콘트롤 비트를 갖는다. 이 때문에, 적은 메모리 번지에서 큰 메모리 번지에 갱신하는 경우와 그 역의 경우 및 갱신하지 않는 경우의 3종류의 갱신의 방법을 설정할 수 있다.
메모리 트랜스파 카운터 MTC에는 전송되는 데이터의 어수가 설정된다. 메모리 트랜스파 카운터 MTC에 설정되는 전송어수는, 상기 시켄서 콘트롤 레지스터 SCR로 지정되는 갱신법에 따라서 카운터 압(up) 혹은 카운터 다운(down)된다.
베이스 트랜스파 카운터 BTC는 어레이 모드 전송할때에 전송 데이터의 불럭수를 설정하여 계수하는데 사용된다.
메모리 어드레스 레지스터 MAR 및 디바이스 어드레스 레지스터 DAR은 각각 메모리의 전송 어드레스와 입출력 기기 혹은 주변 LSI의 전송 어드레스가 격납된다.
이들의 레지스터 MAR, DAR에 있어서 어드레스 데이터가 전송원을 표시하던가, 전송선을 표시하는가의 구별은 상기 오퍼레이션 콘트롤 레지스터 OCR의 전송 방향지정 비트 DIR(표1 참조)에 의하여 정의된다. 이들에 레지스터 MAR, DAR의 내용은 각각 갱신후의 어드레스에 차례로 치환된다. 베이스 어드레스 레지스터 BAR은, 어레이체인 전송이나 린크 어레이 체인 전송의 경우에, DMA 콘트롤러가 참조하여야 할 테이블이 격납되어 있는 메모리 내의 어드레스가 격납된다.
본 실시예에 있어서, 신설된 레지스터 MOFF와 DOFF는 각각 메모리쪽의 전송 어드레스의 오프 셋트 수치와 디바이스쪽의 전송 어드레스의 오프 셋트 수치가 설정된다.
이들의 레지스터 MOFF 및 DOFF의 이용에 의해서, 상기 메모리 어드레스 레지스터에 설정되어 있는 어드레스에, 이 오프 셋트 레지스터 MOFF와 DOFF의 오프셋트 수치가 ALU등에 의해서 가산 혹은 감산된다. 이로인해 오프셋트 분량만큼 어드레스가 갱신된다. 오프 셋트 수치를 가산할 것인가 감산할 것인가는, 다음에 기술하는 오프셋트 콘트롤 레지스터 OFFCR에 의해서 지정된다.
레지스터 GRA와 GRB는 각각 전송원의 불럭의 선두 어드레스와, 전송선의 불럭의 선두 어드레스를 유지한다.
상기, 메모리 어드레스 레지스터 MAR 및 디바이스 어드레스 레지스터 DAR 내의 어드레스 데이터가, 데이터의 전송에 따라서, 갱신되어도 최초에 격납된 각 선두 어드레스는 예를들면 1불럭의 데이터의 전송이 완료되지 않는 사이에 있어서, 이 레지스터 GRA와 GRB에 유지된다.
즉, 예를들면 제1도의 S2와 같은 데이터 전송이 행하여지는 경우, 전송원 선두 어드레스 설정 레지스터 GRA의 내용은 1불럭의 데이터 ①-1 내지 ①-n의 전송이 완료될때까지 이전의 수치로 유지되고, 다음에, 1불럭의 데이터 ②-1 내지 ②-n의 전송에 앞서서 불럭의 선두 어드레스(데이터 ②-1의 어드레스)로 갱신된다. 이들 레지스터 GRA, GRB에 의해 다음에 기술하는 오프 셋트가 붙은 데이터 전송의 경우에, 전송 불럭이 변경되어도 재빨리 필요한 어드레스의 계산이 행하여진다. 즉, 전송원 어드레스, 전송선 어드레스의 선두 어드레스 데이터가 예를들면 외부 메모리로 유지되어 있는 경우, DMA 콘트롤러는 어드레스 계산을 위하여 외부 메모리를 참조하지 않으면 안되게 된다. 이에 대해 실시예와 같이 DMA 콘트롤러 내에 레지스터 GRA, GRB가 마련되어 있을 경우 어드레스 계산은, 마이크로 프로그램 레벨로 가능하게 된다. 그 결과, 고속 동작이 가능하게 된다.
레지스터 GTC는, 메모리 트랜스파(tansfer)와 카운터(counter) MTC에 최초로 설정된 전송어수 n을 유지한다. 데이터 전송에 따라서 메모리 트랜스파카운터 MTC가 카운트 다운 혹은 카운터 압되어 내용이 변경되어도 최초의 전송어수 데이터가 레지스터 GTC로 유지된다. 이로 인해 오프 셋트가 붙은 데이터 전송을 할때의 어드레스 계산이 용이하게 된다.
또, 레지스터 TCR은 어레이 체인(array chain) 전송이나 린크(link) 어레이 체인 전송할때 참조하여야 할 데이터가 유지된다. 이 레지스터 TCR은, 예를들면 다음 표 2에 도시한 비트 구성으로 된다.
[표 2]
Figure kpo00004
표 2의 각 비트에 "1"이 세워져 있으면 대응하는 레지스터 MAR, MOFF, DAR, DOFF, MTC, BAR 을 액세스하는 것을 의미한다.
그리고 리셋트(reset)할때에는, 이 테이블 액세스 콘트롤 레지스터 TCR은 "10001001"에 셋트된다. 즉 각 전송모드로 공통으로 사용되는 레지스터에 대응하는 비트에 사전에 "1"이 세워진다. 단, 어레이 체인 전송모드에서는 비트 BAR과 "0"으로 판단되도록 되어 있다.
오프 셋트 콘트롤 레지스터 OFFCR은 오프 셋트가 붙은 데이터 전송의 경우에 참조하여야할 데이터가 유지된다.
이 레지스터 OFFCR은, 예를들면, 다음의 표 3에 도시한 것과 같은 비트 구성으로 된다.
[표 3]
Figure kpo00005
오프 셋트 콘트롤 레지스터 OFFCR에 있어서, 비트 MOFF와 DOFF가 각각 "0,0"일때는, 메모리쪽 어드레스와 디바이스쪽 어드레스에 각각 오프셋트를 사용하지 않은 모드를 또 "1,0"일때는 블럭내의 각 전송할때마다 오프 셋트를 사용하는 모드를, 또한 "1,1"일때는 불럭의 절환으로 오프셋트를 사용하는 모드를 의미한다. 그리고 여기서는 "0,1"은 미정의(未定義)이다.
오프 셋트 콘트롤 레지스터 OFFCR내의 비트 MOC와 DOC는, 메모리쪽 어드레스와 디바이스쪽 어드레스에 각각 오프셋트 수치를 가산할 것인가 감산할 것인가를 지정하기 위한 데이타로, 여기서는 특별히 제한되지 않으나, "0"일때에 오프셋트 수치의 가산을 의미하고, "1"인 경우는 오프 셋트 수치의 감산을 의미한다.
그리고 DMA 콘트롤러내에 마련되는 레지스터는 상술한 레지스터뿐만 아니라 DMA 콘트롤러의 상태를 표시하는 레지스터나 입출력 기기에 관한 제어 모드의 설정을 행하는 레지스터, 찬넬 우선 순위 설정 레지스터, 기타 전에 나온 (주)히다찌 제작소 제품의 DMA 콘트롤러 HD68450에 마련되어 있는 것과 같은 여러가지의 레지스터 종류가 부설되어 있다.
상기 실시예에서는, 전송 어드레스의 계수(計數)를 용이하게 하기 위하여 연산 실행부 4내에, 전송원과 전송선의 불럭의 선두 어드레스를 유지하기 위한 레지스터 GRA, GRB와, 전송어수 유지용 레지스터 GTC가 새로이 마련되어 있으나, 이들 레지스터를 이용하지 않아도 바라는 어드레스를 계산할 수가 있으므로 생략하는 것도 가능하다.
제2도에 도시된 DMA 콘트롤러가 마이크로 콤퓨터 시스템의 일부로서 사용되는 경우 외부 단자군 ABST는 신호 절환 회로를 포함하는 것 같은 도시하지 않은 버스 인터페이스(bus interface)회로를 거쳐서 도시하지 않은 시스템 데이터 버스 및 시스템 어드레스 버스에 결합된다. 시스템 데이터 버스 및 시스템 어드레스 버스에는 MPU가 결합되고 또, 메모리 디스크 콘트롤러(momory disk controller)등의 입출력 디바이스가 결합된다. 외부 제어선 ECL은 각 입출력 디바이스의 외부 제어 단자에 결합되고 또 MPU의 제어 단자에 결합된다. 이상 처리 제어부를 위한 외부단자
Figure kpo00006
는 입출력 디바이스 및 MPU로 부터의 이상 처리 요구 신호 혹은 이상 지시 신호를 받는 엔코더(encoder)로 되는 것과 같은 제어 회로의 출력에 결합된다.
제6도는, 실시예의 DMA 콘트롤러의 기본적 동작을 설명하기 위한 프로그램 프로 챠트(program folw chart)이다. 프로그램 스텝(step) STP1에 있어서 DMA 콘트롤러는 MPU에 의해서 선택되고, MPU에 의해서 그 내부 레지스터 예를들면, 오퍼레이션 콘트롤 레지스터에 상술과 같은 데이터 전송방향 지시데이터 DIR, 사이즈 데이터 SIZE, 체인징 데이터 CHAIN등의 제어 데이터가 기억된다. 프로그램 스텝 STP1에 있어서 다른 레지스터에 이와 같은 데이터가 기억될 것인가는 필요로 하는 전송 모드에 의해서 결정된다.
다음에 설명하는 것과 같은 전송 정보 테이블을 이용하지 않은 DMA 콘트롤러의 제어 동작인 경우, MPU에 의해서 메모리의 선두 어드레스 데이터, 디바이스의 선두 어드레스 데이터, 오프 셋트 데이터등이 레지스터 MAR, DAR, MOFF, DOFF 등에 기억된다.
전송 정보 테이블이 이용되는 제어동작의 경우, MPU에 의해서, DMA콘트롤러 내의 베이스 어드레스 레지스터 BAR에, 전송 정보 테이블을 구성하는 데이터가 기억되어 있는 메모리의 어드레스가 기억된다.
프로그램 스텝 STP2에 있어서, MPU에 의해 DMA콘크롤러 내의 콘디션 콘트롤 레지스터와 같은 레지스터에 제어데이터의 프리 셋트의 종료를 표시하는 데이터가 기억된다. 이로인해서 DMA 콘트롤러는 제어동작이 가능한 상태로 된다.
DMA 콘트롤러는, 프로그램 스텝 STP3에 있어서, 입출력 디바이스에서 외부 제어단자 ECL에 공급되는 DMA요구신호를 감시한다. 만약, DMA의 요구신호의 공급이 없으면 감시 상태가 유지된다. 만약 1개의 입출력 디바이스에서 DMA요구 신호가 발생되면 프로그램 스텝 STP4가 실행된다.
프로그램 스텝 STP4에 있어서, DMA콘트롤러에서 외부제어선 ECL을 거쳐서 MPU에 버스 요구신호가 출력된다. 버스요구신호에 응답해서, MPU에서 DMA콘트롤러에 버스 허가신호가 공급되면, 버스 점유권(點有權)이 DMA콘트롤러에 부여된다. 이로인해서 다음에 프로그램 스텝 STP5가 실행된다.
프로그램 스텝 STP5에 있어서, DMA콘트롤러는 그 내용의 레지스터에 필요로 되는 데이터를 셋트한다. 예를들면, 상술한 같은 전송 정보 테이블이 이용되는 경우, 베이스 어드레스 레지스터 BAR에 의해서 지시되는 메모리 어드레스가, 참조되어, 그 메모리 어드레스내의 데이터가 메모리 어드레스 레지스터 MAR, 데이터 어드레스 레지스터 DAR 등에 기억된다.
프로그램 스텝 STP5에 있어서, 각종 레지스터로의 데이터의 셋트가 실행된 후 프로그램 스텝 STP6이 실행된다.
프로그램 스텝 6에 있어서는, 각종 레지스터에 셋트된 데이터에 따라서 입출력 디바이스 사이에 혹은 입출력 디바이스와 메모리와의 사이에의 데이터 전송이 실행된다.
스텝 STP6은, 메모리 어드레스 레지스터 MAR, 디바이스 어드레스 레지스터 DAR의 어드레스 데이터를, 오프 셋트 레지스터 MOFF, DOFF 내의 오프 셋트 데이터에 의해서 갱신되는 프로그램을 포함한다.
프로그램 스텝 STP6의 다음에, 프로그램은 이상처리 판정을 위한 프로그램 스텝 STP7로 진행된다. 스텝 STP7에 있어서 이상 처리가 필요치 않다고 판정되었으면, 즉 제2도의 제어입력선
Figure kpo00007
에 이상 동작을 표시하는 신호가 공급되어 있지 않으면 프로그램은 프로그램 스텝 STP8로 진행된다.
프로그램 스텝 STP8에 있어서, 1블럭을 구성하는 데이터의 전송의 완료가 판정된다. 예를들면 제1도의 케이스(case) S1 또는 케이스 S2에 있어서의 1블럭 데이터 ①-1 내지 ①-n의 전송의 완료가 판정된다. 만약 1불럭 데이터의 전송이 완료되지 않았으면, 재차 프로그램 스텝 STP6의 실행된다. 즉 이전의 프로그램 스텝 STP6의 실행에 의해서 갱신된 메모리 어드레스와 디바이스 어드레스에 대해서 데이터의 전송이 실행된다.
프로그램 스텝 STP8에 있어서 1블럭 데이터의 완료가 검출되었으면, 프로그램 스텝 STP9로 진행한다.
프로그램 스텝 STP9에 있어서, 모든 블럭 데이터의 전송의 완료가 판정된다. 모든 블럭 데이터의 전송이 끝나지 않았으면 프로그램은 프로그램 스텝 STP5로 되돌아간다.
프로그램 스텝 STP5에 있어서, 다음에 전송 개시되어야 할 블럭의 선두 어드레스를 표시하는 바와 같은 어드레스 데이터가 메모리 어드레스 레지스터 MAR, 디바이스 어드레스 데이터 DAR 등에 셋트된다.
프로그램 스텝 STP9에 있어서, 모든 블럭 데이터의 전송의 완료가 검출되었으면 프로그램은 프로그램 스텝 STP10으로 진행된다.
프로그램 스텝 STP10에 있어서, 데이터 전송의 완료를 표시하는 플레그가 플레그 레지스터 5에 셋트된다.
프로그램 스텝 STP7에 있어서, 이상처리가 필요하다고 판정되면, 즉 제2도의 제어 입력선
Figure kpo00008
에 버스 에어를 지시하도록 이상지시 신호가 공급되어 있었으면 프로그램은 프로그램 스텝 STP11로 진행된다.
프로그램 스텝 STP11에 있어서, 이상처리가 실행된다. 즉 상술한 바와 같이 마이크로프로그램 ROM1에는 프로그램 시켄서 2에서 출력되는 마이크로 프로그램 어드레스 대신으로 이상처리 제어부 9에서 출력되는 마이크로 프로그램 어드레스가 공급된다.
다음에, 상기 실시예의 DMA콘트롤러에 의한 데이터 전송 동작에 대해서 설명한다. 본 실시예의 구성에 의하면 다음과 같은 3계단에서의 전송 모드가 설정된다.
1개의 전송 모드는, 전송 정보 테이블을 전혀 갖지않는 전송 모드이다. 이 모드에서는, 제5도에 도시되어 있는 각 레지스터 MAR, DAR, MOFF, DOFF, MTC, BTC의 모든 것이 MPU의 소프트 웨어에 의해서 적당한 수치로 설정되고 나서, DMA전송이 개시된다. 이 경우, DMA콘트롤러에 의해서 참조되어야 할 메모리 레이블은 필요로 하지 않는다. 그러므로 이 경우 베이스 어드레스 레지스터 BAR로의 데이터의 설정은 필요가 없다.
이 경우 DMA콘트롤러는 메모리내의 테이블을 참조할 필요가 없으므로 전송 정보를 호출하는데 요하는 시간을 생략할 수가 있다. 따라서, 예를들면 메모리쪽 오프 셋트수치 X나 디바이스쪽의 오프 셋트수치 Y 및 전송어수 n이 각 블럭사이에서 일정한 것과 같은 경우, 각 블럭 전송마다 메모리 선두 어드레스 A와 디바이스 선두 어드레스 B를 설정하는 것만으로 좋으므로 비교적 효율좋게 블럭 전송이 행하여진다.
그러나, 블럭마다 메모리쪽과 디바이스쪽 오프 셋트 수치 X, Y나 전송어수 n이 변경하였을 경우에 전송 블럭마다 레지스터 MAR, DAR, MOFF, DOFF, MTC, BTC의 각 상태를 모두 MPU에 설정하는데에는 MPU의 부담이 커진다.
그리하여, 이와 같은 경우에는, 예를들면 제7a도, 제7b도에 도시한 것과 같이, 나머지 2개의 전송 모드 즉, 전송 정보를 테이블화하여, 데이터의 전송을 행하는 방법을 채용하는 것에 의해 효율이 좋은 전송이 가능하게 된다.
제7a도는 어레이 체인 전송모드, 또 제7b도는 린크 어레이 체인 전송 모드에서의 전송 방식을 모식적으로 도시한다.
우선, 어레이 체인 전송 모드에서는 제7a도와 같이 메모리 선두 어드레스 A, 디바이스 선두 어드레스 B, 메모리쪽 오프 셋트 수치 X, 디바이스쪽 오프 셋트 수치 Y 및 전송어수 n등의 전송 정보를 각각 테이블화하여, 메모리의 적당한 에리아에 넣어 둔다. 그리고 테이블의 선두 어드레스 및 전송 블럭수가 MPU에 의해서 레지스터 BAR과 BTC에 설정된다. 그러면, DMA콘트롤러는 블럭 전송을 개시하기 전에 우선, 레지스터 BAR에 설정된 어드레스를 가진 메모리내의 테이블 데이터를 참조하여 그 테이블 데이터를 최초의 블럭의 선두 어드레스 A,B와 오프셋트 수치 X,Y 및 전송어수 n를*표가 붙어 있는 각 레지스터로 호출시키고 그후, 블럭 전송을 개시한다. 1개의 블럭의 전송이 끝나면, 레지스터 BAR이 갱신되어, 다음의 블럭의 전송 정보(A,B,X,Y,n)가 대응하는 레지스터로 호출되고, 또 전송 블럭수가 들어가 있는 카운터 BTC가 1개 감산된다. 이와 같이, 차례로 블럭이 전송되어, 카운터 BTC의 수치가 0으로 되면 전송 동작이 끝난다.
다음에, 제7b도에 도시한 린크 어레이 체인 전송 모드에서는, 전송 정보로서 상기 어레이 체인 전송 모드에 있어서의 정보 A,B,X,Y,n 이외에, 다음에 전송하여야 할 블럭에 관한 전송 정보가 들어가 있는 어드레스를 도시하는 린크 어드레스도 레이블화되어서 메모리에 격납되어 있다. 단지, 이 경우 전송 블럭수는 불필요하게 된다.
이로인해, MPU에 의해서 레이블의 선두 어드레스만을 레지스터 BAR을 설정하여 주면 좋다.
이 경우, DMA콘트롤러는 테이블을 참조해서 우선 처음의 블럭에 관한 전송 정보(린크 어드레스를 포함한다)을*표가 붙어 있는 각 레지스터에 호출시키고 나서, 블럭 전송을 개시시킨다. 1개의 블럭의 전송이 끝나면, 린크 어드레스에 의해서 표시된 메모리 어드레스에서, 다음의 블럭의 전송 정보가 DMA콘트롤러에 호출되어 이에 따라서 데이터의 전송이 계속된다. 그리고, 최종 블럭의 전송이 끝난후에, 호출되는 린크 어드레스 데이터가 0으로 되어 있을 경우, 이에 따라서는 모든 전송이 끝난다. 그리고 린크 어드레스는 최초에 MPU에 의해서 테이블의 선두 어드레스가 설정된 레지스터 BAR에 차례로 들어간다.
제7a도의 어레이 체인 전송 모드에 있어서, 전송되어야 할 블럭을 삭제하는 경우는, 어레이 레이블이 연속된 메모리의 번지로 들어가 있지 않으면 안되기 때문에, 삭제하는 블럭 보다도 다음의 모든 블럭의 데이터를 차례로 반복해서, 테이블을 바꿀 필요가 있다. 추가하는 경우도 테이블의 데이터를 겹치지 않게 삽입할 필요가 있다. 이에 대해서 린크 어레이 체인 전송 모드 경우는, 블럭의 추가나 삭제가 린크 어드레스를 재차 기억시키는 것만으로 간단하게 된다.
그리고, 제7a도, 제7b도에 도시한 전송모드에 있어서, 전송 정보중 일부(메모리 선두 어드레스 A와 전송어수 n 혹은 이들과 린크 어드레스)만을 테이블화 함과 동시에 다른 정보(디바이스 선두 어드레스 B, 테이블 선두 어드레스 및 오프 셋트수치 X,Y)을 MPU에 의해서 설정하도록 하는 것에 의해서 전송 정보를 호출 하는데 요하는 시간을 단축시키도록 하여도 좋다.
이와 같은 기능은 상기 테이블 액세스 콘트롤러 레지스터 TCR로 전송 정보를 호출 레지스터로 지정하여 주는 것에 의해 용이하게 실현할 수가 있다.
상기 실시예에 있어서는, 새로이 마련된 메모리 오프셋트 레지스터 MOFF와 디바이스 오프 셋트 레지스터 DOFF등을 사용하지 않던가, 혹은 이들 오프 셋트 레지스터 MOFF, DOFF에 0을 설정하여 주는 것에 의해 오프 셋트를 이용하지 않는 종래와 모든 것이 같은 방식의 불럭 전송을 행하게 할 수가 있다.
상기와 같이 구성된 DMA콘트롤러에 의해 오프 셋트가 붙은 데이터 전송을 실행하는 것에 의해서 제1도에 화살표 a1∼a4로 표시한 모든 데이터 전송이 가능하게 되어 DMA콘트롤러의 기능이 향상된다.
다음에 상기 오프 셋트와 붙은 데이터 전송의 구체적 응용예에 대해서 설명한다.
예를들면, 화상처리 기능을 가진 마이크로 콤퓨터 시스템에 있어서, CRT표시 장치의 화면위(기준점 A)에, 제8(a)도에 도시한 도형(여기서는 1예로서 알파벳트의 「F」가 표시되어 있다)을 표시시키도록 데이터가 메모리(리플렛쉬 메모리)에 격납되어 있었다고 한다. 이 경우 종래 방색의 불럭 전송을 적용하는 것에 의해서 제1도에 화살표 a1로 표시한 것과 같은 불럭 전송을 리플렛쉬 메모리(refresh memory)내에서 행하면 제8(b)도에 도시한 것과같이 반전 및 도립(倒立)상태의 4종류의 도형을 화면위의 다른 위치(기준점 B)에 표시시킬 수가 있다. 그러나 종래 방식의 불럭 전송으로는 제8(c)도에 도시한 것과같이, 원래의 도형을 90도 회전시킨 가로 방향의 도형을 표시시키는 것과 같은 데이터 전송은 행할 수가 없었다.
이에 대해 본 발명에 관한 오프 셋트가 붙은 데이터 전송을 이용하면 제1도에 화살표 a2-1, a2-4, a2-4로 표시한 것과같은 전송을 리플렛쉬 메모리내에서 실행하는 것에 의해서 제8(c)도에 표시한 것과같은 도형을 표시시키도록 화상 데이터의 기억이 자동적으로 행하여지게 된다. 이로인해 종래는 MPU가 소프트 웨어로 행할 것인가, 혹은 CRT콘트롤러가 행하고 있던 화상 데이터의 변화를 DMA콘트롤러에 의한 DMA전송으로 매우 간단하게 행할 수가 있게 되어 시스템 전체의 데이터 처리 영역이 향상됨과 동시에 화상 표시 속도로 빨라진다.
또, 마찬가지로, 본 발명에 관한 오프 셋트가 붙은 데이터 전송을 프린터에 적용해서, 메모리 내의 정보를 프린트 아웃할때에, 전송으로 문자 데이터를 90도 변환시키는 것에 의해 가로 쓰기 문자를 세로 쓰기 문자로 하던지, 역으로 세로 쓰기 문자를 가로쓰기 문자로 변환하는 것이 용이하게 행할 수 있게 된다.
본 발명에 따르면 다음의 효과를 얻을 수가 있다.
전송원 어드레스 및 전송선 어드레스의 오프 셋트 수치를 설정하기 위한 레지스터를 새로이 마련하고 있으므로 일연의 데이터군을 어드레스에 오프 셋트를 갖게하여 갱신하면서, 즉 어드레스를 스킵시키면서 전송할 수 있는 작용에 의해 예를들면 종래 소프트 웨어로 행하고 있던 CRT표시 화면 위에서의 도형의 회전과 같은 처리를 데이터 전송의 방식을 변경하는 것만으로 자동적으로 행할 수 있도록 되어, 이로인해서, DMA콘트롤러의 기능이 크게 향상됨과 동시에, 마이크로 프로셋서의 부담이 경감되어 시스템 전체의 처리능력이 향상하는 효과가 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라서 구체적으로 설명하였으나 본 발명은 상기 실시예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러가지로 변경이 가능한 것은 말할 것도 없다. 예를들면, 상기 실시예에서는 새로이 마련된 콘트롤러 레지스터 TCR과 OFFCR을 제2 및 제3표에 도시한 것과 같은 비트 구성으로 하고 있으나, 각 레지스터의 비트 구성은 이에 한정되는 것은 아니고, 여러가지의 변형예가 생각된다. 또, DMA콘트롤러의 불럭 구성도 제2도의 실시예에 한정되는 것은 아니다.
이상의 설명에서는 주로 본 발명자에 의해서 이루어진 발명을 그 배경으로 된 이용 분야인 마이크로 콤퓨터 시스템에 있어서, 데이터 전송을 제어하는 DMA의 콘트롤러에 적용한 것에 대해서 설명하였으나, 이에 한정되지 않으며 데이터 베이스니 화일 프로셋서의 분야등 데이터 처리 시스템 일반에 이용할 수가 있다.

Claims (17)

  1. 마이크로 프로셋서에 의해서 그 동작이 제어되는 데이터 전송 제어 장치에 있어서, 전송원 어드레스 데이터, 전송선 어드레스 데이터, 제1오프 셋트 데이터와 제2오프 셋트 데이터가 셋트되는 다수개의 레지스터와 상기 전송원 어드레스 데이터에 의해서 지시된 디바이스 어드레스에 의해 지시되는 기억 영역에 기억된 데이터를, 상기 전송선 어드레스 데이터에 의해서 지시된 디바이스 어드레스에 의해 지시되는 기억 영역으로 전송하기위한 제어동작, 상기 제1오프 셋트 데이터에 의해서 지시된 오프 셋트 값을 사용하여 상기 전송원 어드레스 데이터를 갱신하기 위한 연산 동작, 상기 제2오프 셋트 데이터에 의해서 지시된 오프 셋트 값을 사용하여 상기 전송선 어드레스 데이터를 갱신하기 위한 연산 동작을 실행하는 제어수단을 포함하는 데이터 전송 제어장치.
  2. 특허청구의 범위 제7항에 있어서, 상기 제어수단은 마이크로 프로그램이 저장된 마이크로 프로그램 ROM, 상기 마이크로 프로그램 ROM에서 출력되는 프로그램 어드레스 데이터에 따라서 상기 마이크로 프로그램 ROM에 공급되어야 할 프로그램 어드레스 데이터를 출력하는 프로그램 시켄서 및 상기 마이크로 프로그램 ROM에서 출력되는 제어 신호에 의해서 그 동작이 제어되는 연산 실행 유니트를 구비한 데이터 전송 제어 장치.
  3. 특허 청구의 범위 제8항에 있어서, 상기 다수개의 레지스터는 상기 연산 실행 유니트내에 마련되어 있는 데이터 전송 제어 장치.
  4. 특허 청구의 범위 제9항에 있어서, 또 상기 연산 실행 유니트내에 마련되며, 전송되어야할 전송원 데이터의 기억 위치의 선두 어드레스를 표시하는 어드레스 데이터를 유지하는 레지스터와, 상기 연산 실행 유니트 내에 마련되며, 데이터가 전송될 기억 위치의 전송선 어드레스중 하나의 선두 어드레스를 표시하는 어드레스 데이터를 유지하는 레지스터를 포함하는 데이터 전송 제어장치.
  5. 특허 청구의 범위 제9항에 있어서, 또 상기 연산 실행 유니트 내에 마련되며, 전송되어야 할 데이터 수가 셋트되는 레지스터를 포함하는 데이터 전송 제어 장치.
  6. 특허 청구의 범위 제8항에 있어서, 또 제어 레지스터를 포함하며, 상기 프로그램 시켄서는 상기 제어 레지스터에서 공급되는 제어 데이터에 응답해서 상기 마이크로 프로그램 ROM에 공급되어야 할 스타트 어드레스 데이터를 출력하는 스타트 어드레스 발생부 및 상기 마이크로 프로그램 ROM에 출력되는 다음 어드레스 데이터와 플레그 데이터에 따라서 상기 마이크로 프로그램에 공급되어야할 어드레스 데이터를 출력하는 조건 분기 제어부를 포함하는 데이터 전송 제어 장치.
  7. 마이크로 프로셋서, 데이터를 유지하는 제1메모리수단, 데이터를 유지하는 제2메모리 수단과 다수의 레지스터를 갖는 메모리 액세스 제어장치를 포함하는 마이크로 콤퓨터 시스템에서의 데이터 전송 제어 방법에 있어서, (a) 제1레지스터에서 전송원 어드레스 데이터를 기억하는 스텝, (b) 제2레지스터에서 전송선 어드레스 데이터를 기억하는 스텝, (c) 제3레지스터에서 제1오프셋트 데이터를 기억하는 스텝, (d) 상기 제1레지스터에서의 상기 전송원 어드레스 데이터에 의해 지시되는 상기 제1메모리 수단 내의 제1영역에서, 상기 제2레지스터에서의 상기 전송선 어드레스 데이터에 의해 지시되는 상기 제2메모리 수단내의 제2영역으로 데이터를 전송하는 스텝, (e) 상기 제3레지스터에서의 상기 제1오프 셋트 데이터에 의해 지시되는 오프 셋트 값을 사용하여 상기 전송원 어드레스 데이터를 갱신하는 스텝과 (f) 상기 스텝(e)에서 갱신된 전송원 어드레스 데이터에 의해 지시되는 상기 제1메모리 수단 내의 제3영역에서, 상기 제2메모리 수단 내의 상기 제2영역에 근접한 제4영역으로 데이터를 전송하는 스텝을 포함하는 데이터 전송 제어방법.
  8. 특허 청구의 범위 제13항에 있어서, 상기 제1메모리 수단은 상기 제1영역과 상기 제3영역사이에 위치한 제5영역을 포함하는 데이터 전송 제어 방법.
  9. 특허 청구의 범위 제13항에 있어서, 또 (c') 제4레지스터에서 제2오프 셋트 데이터를 기억하여 스텝(f)를 따르는 스텝, (g) 상기 제4레지스터에서의 상기 제2오프셋트 데이터에 의해 지시된 오프 셋트 값을 사용하여 상기 전송선 어드레스데이터를 갱신하는 스텝과, (h) 상기 제1영역과 제3영역 사이에 위치한 상기 제1메모리 수단의 제5영역으로 부터, 상기 제4영역을 따름과 동시에 스텝(g)에서 갱신된 전송선 어드레스 데이터에 의해 지시되는 상기 제2메모리 수단의 제6영역으로 데이터를 전송하는 스텝을 포함하는 데이터 전송 제어 방법.
  10. 마이크로 프로셋서, 데이터를 유지하는 제1메모리 수단, 데이터를 유지하는 제2메모리 수단과 다수의 레지스터를 갖는 메모리 액세스 제어 장치를 포함하는 마이크로 콤퓨터 시스템에서의 데이터 전송 제어 방법에 있어서, (a) 제1레지스터에서 전송원 어드레스 데이터를 기억하는 스텝, (b) 제2레지스터에서 전송선 어드레스 데이터를 기억하는 스텝, (c) 제3레지스터에서 제1오프 셋트 데이터를 기억하는 스텝, (d) 상기 제1레지스터에서의 상기 전송원 어드레스 데이터에 의해 지시되는 상기 제1메모리 수단 내의 제1영역에서, 상기 제2레지스터에서의 상기 전송선 어드레스 데이터에 의해 지시되는 상기 제2메모리 수단 내의 제2영역으로 데이터를 전송하는 스텝, (e) 상기 제3레지스터에서의 상기 제1오프셋트 데이터에 의해 지시되는 오프셋트 값을 사용하여 상기 전송선 어드레스 데이터를 갱신하는 스텝과 (f) 상기 제1메모리 수단내에서 상기 제1영역에 근접한 제3영역으로부터, 상기 스텝(e)에서 갱신된 전송선 어드레스 데이터에 의해 지시되는 상기 제2메모리 수단내의 제4영역으로 데이터를 전송하는 스텝을 포함하는 데이터 전송 제어방법.
  11. 특허 청구의 범위 제16항에 있어서, 상기 제1메모리 수단은 상기 제1영역과 상기 제3영역사이에 위치한 제5영역을 포함하는 데이터 전송 제어 방법.
  12. 특허 청구의 범위 제16항에 있어서, 또 (c') 제4레지스터에서 제2오프셋트 데이터를 기억하여 스텝(f)를 따르는 스텝, (g) 상기 제4레지스터에서 상기 제2오프셋트 데이터에 의해 지시된 오프 셋트 값을 사용하여 상기 전송선 어드레스 데이터를 갱신하는 스텝과 (h) 상기 제3영역을 따름과 동시에 스텝(g)에서 갱신된 전송원 어드레스 데이터에 의해 지시된 상기 제1메모리 수단의 제5영역으로부터, 상기 제2영역과 제4영역 사이에 위치한 상기 제2메모리 수단의 제6영역으로 데이터를 전송하는 수단을 포함하는 데이터 전송 제어 방법.
  13. 마이크로 프로셋서, 데이터를 유지하는 제1메모리 수단, 데이터를 유지하는 제2메모리 수단과 다수의 레지스터를 갖는 메모리 액세스 제어 장치를 포함하는 마이크로 콤퓨터 시스템에서의 데이터 전송 제어 방법에 있어서, (a) 제1레지스터에서 전송원 어드레스 데이터를 기억하는 스텝, (b) 제2레지스터에서 전송선 어드레스 데이터를 기억하는 스텝, (c) 제3레지스터에서 제1오프셋트 데이터를 기억하는 스텝, (d) 제4레지스터에서 제2오프셋트 데이터를 기억하는 스텝, (e) 상기 제1레지스터에서의 상기 전송원 어드레스 데이터에 의해 지시되는 상기 제1메모리 수단 내의 제1영역으로부터, 상기 제2레지스터에서 상기 전송선 어드레스 데이터에 의해 지시되는 상기 제2메모리 수단 내의 제2영역으로 데이터를 전송하는 스텝, (f) 상기 제3레지스터에서 상기 제1오프 셋트 데이터에 의해 지시되는 오프 셋트 값을 사용하여 상기 전송원 어드레스 데이터를 갱신하는 스텝, (g) 상기 제4레지스터에서의 상기 제2오프셋트 데이터에 의해 지시되는 오프 셋트 값을 사용하여 상기 전송선 어드레스 데이터를 갱신하는 스텝과 (h) 상기 스텝(f)에서 갱신된 전송원 어드레스 데이터에 의해 지시되는 상기 제1메모리 수단내의 제3영역으로부터, 상기 스텝(g)에서 갱신된 전송선 어드레스 데이터에 의해 지시되는 상기 제2메모리 수단 내의 제4영역으로 데이터를 전송하는 스텝을 포함하는 데이터 전송 제어 방법.
  14. 특허 청구의 범위 제19항에 있어서, 상기 제1오프 셋트 데이터의 값은 상기 제2오프셋트 데이터의 값과 다른 데이터 전송 제어 방법.
  15. 특허 청구의 범위 제19항에 있어서, 상기 스텝(f)∼스텝(h)는 상기 제1메모리 수단의 상기 제3영역을 따르는 영역으로부터, 상기 제2메모리 수단의 상기 제4영역을 따르는 영역으로 데이터를 전송하기 위해 계속하여 반복되는 데이터 전송 제어 방법.
  16. 마이크로 프로셋서 제1메모리 수단 제2메모리 수단 및 상기 제1메모리 수단에서 제1영역을 지시하는 전송원 어드레스 데이터를 유지하기 위한 제1레지스터와 상기 제2메모리 수단에서 제2영역을 지시하는 전송선 어드레스 데이터를 유지하기 위한 제2레지스터와 오프 셋트 데이터를 유지하기 위한 제3레지스터와 상기 전송원 어드레스 데이터 또는 상기 전송선 어드레스 데이터를 갱신하기 위한 연산 실행 수단을 포함하는 마이크로 콤퓨터 시스템에서의 데이터 전송 제어 방법에 있어서, (a) 상기 제1영역에 유지된 데이터를 상기 제2영역으로 전송하는 스텝과 (b) 상기 제3레지스터에서 상기 오프 셋트 데이터에 의해 지시되는 오프 셋트 값을 사용하여, 상기 전송원 어드레스 데이터 또는 상기 전송 어드레스 데이터를 갱신하는 스텝을 포함하는 데이터 전송 제어 방법.
  17. 마이크로 프로셋서, 제1메모리 수단, 제2메모리 수단과 상기 제1메모리 수단에서 영역을 지시하기 위한 전송원 어드레스 데이터를 연속적으로 기억하기 위한 제1레지스터, 상기 제2메모리 수단에서 영역을 지시하기 위한 전송선 어드레스 데이터를 연속적으로 기억하기 위한 제2레지스터, 오프셋트 데이터를 기억하기 위한 오프 셋트 레지스터, 상기 오프 셋트 데이터에 따라서 상기 전송원 어드레스 데이터 또는 상기 전송선 어드레스 데이터를 갱신하기 위한 연산 실행 수단을 갖고, 상기 오프 셋트 레지스터에서의 상기 오프 셋트 데이터에 의해 지시되는 오프셋트 값에 따라서, 상기 제1메모리 수단에 기억되는 데이터를 상기 제2메모리 수단으로 전송하는 수단을 구비한 메모리 액세스 제어 장치를 포함하는 마이크로 콤퓨터 시스템.
KR1019850009762A 1984-12-24 1985-12-24 데이터 전송 제어장치 및 방법 KR930003709B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP59270813A JPH0760423B2 (ja) 1984-12-24 1984-12-24 データ転送方式
JP270813 1984-12-24

Publications (2)

Publication Number Publication Date
KR860005295A KR860005295A (ko) 1986-07-21
KR930003709B1 true KR930003709B1 (ko) 1993-05-08

Family

ID=17491373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019850009762A KR930003709B1 (ko) 1984-12-24 1985-12-24 데이터 전송 제어장치 및 방법

Country Status (3)

Country Link
US (1) US4797851A (ko)
JP (1) JPH0760423B2 (ko)
KR (1) KR930003709B1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63191250A (ja) * 1987-02-04 1988-08-08 Nippon Telegr & Teleph Corp <Ntt> ブロツク結合回路
JP2633263B2 (ja) * 1987-09-14 1997-07-23 株式会社ハドソン データ転送制御装置
JPH01120660A (ja) * 1987-11-04 1989-05-12 Nec Corp マイクロコンピュータ装置
EP0328450B1 (en) * 1988-02-08 1996-08-28 Fujitsu Limited Direct memory access controller
JPH01237864A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd Dma転送制御装置
US5003471A (en) * 1988-09-01 1991-03-26 Gibson Glenn A Windowed programmable data transferring apparatus which uses a selective number of address offset registers and synchronizes memory access to buffer
JP2602946B2 (ja) * 1989-03-16 1997-04-23 富士通株式会社 データ受信方式
US5287471A (en) * 1989-07-24 1994-02-15 Nec Corporation Data transfer controller using direct memory access method
US5278960A (en) * 1989-08-16 1994-01-11 Nec Corporation Information processing apparatus having detecting means for operand overlaps
JP2907451B2 (ja) * 1989-08-31 1999-06-21 キヤノン株式会社 ダイレクトメモリアクセス方法および装置
US5056010A (en) * 1989-10-30 1991-10-08 Industrial Technology Research Institute Pointer based DMA controller
DE69127851T2 (de) * 1990-05-22 1998-04-30 Nippon Electric Co Direktspeicherzugriffübertragungssystem und Benutzung
AU652371B2 (en) * 1990-06-29 1994-08-25 Fujitsu Limited Data transfer system
US5249280A (en) * 1990-07-05 1993-09-28 Motorola, Inc. Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
JPH04333951A (ja) * 1991-05-10 1992-11-20 Mitsubishi Electric Corp プロセッサのダイレクトメモリアクセス制御装置
JPH08110886A (ja) * 1994-10-07 1996-04-30 Ricoh Co Ltd Dmaコントローラ及びファクシミリ装置
US5628026A (en) * 1994-12-05 1997-05-06 Motorola, Inc. Multi-dimensional data transfer in a data processing system and method therefor
US6145030A (en) 1998-03-27 2000-11-07 Intel Corporation System for managing input/output address accesses at a bridge/memory controller
JP3614714B2 (ja) 1999-06-16 2005-01-26 Necマイクロシステム株式会社 Dma制御装置
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
JP2002342262A (ja) 2001-05-11 2002-11-29 Fujitsu Ltd ダイレクトメモリアクセス制御装置およびダイレクトメモリアクセス制御方法
US9218183B2 (en) * 2009-01-30 2015-12-22 Arm Finance Overseas Limited System and method for improving memory transfer
KR20110064076A (ko) * 2009-12-07 2011-06-15 삼성전자주식회사 화상형성장치 및 그 스큐 보정 방법
CN104281545B (zh) * 2013-07-11 2018-02-23 华为技术有限公司 一种数据读取方法及设备
US9516147B2 (en) * 2014-10-30 2016-12-06 Microsoft Technology Licensing, Llc Single pass/single copy network abstraction layer unit parser

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325119A (en) * 1977-01-19 1982-04-13 Honeywell Information Systems Inc. Process and apparatus employing microprogrammed control commands for transferring information between a control processor and communications channels
US4204250A (en) * 1977-08-04 1980-05-20 Honeywell Information Systems Inc. Range count and main memory address accounting system
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
JPS604499B2 (ja) * 1981-01-27 1985-02-04 東芝テック株式会社 デ−タ処理装置におけるアドレス指定装置
US4521871A (en) * 1982-04-12 1985-06-04 Allen-Bradley Company Programmable controller with back-up capability
JPS5924485A (ja) * 1982-07-30 1984-02-08 Toshiba Corp 入出力ペ−ジング機構
US4597041A (en) * 1982-11-15 1986-06-24 Data General Corp. Method and apparatus for enhancing the operation of a data processing system
US4584617A (en) * 1983-09-22 1986-04-22 Dual Systems Corporation Method and apparatus for improving the transfer time in rotating data storage systems

Also Published As

Publication number Publication date
JPH0760423B2 (ja) 1995-06-28
KR860005295A (ko) 1986-07-21
JPS61148563A (ja) 1986-07-07
US4797851A (en) 1989-01-10

Similar Documents

Publication Publication Date Title
KR930003709B1 (ko) 데이터 전송 제어장치 및 방법
KR920007905B1 (ko) 다이렉트 메모리 액세스 제어장치
US4144562A (en) System and method for increasing microprocessor output data rate
US4467447A (en) Information transferring apparatus
US4458313A (en) Memory access control system
US4200912A (en) Processor interrupt system
US5754191A (en) Method and apparatus for optimizing pixel data write operations to a tile based frame buffer
US5146595A (en) Grouping device for forming input signals into groups
US5056011A (en) Direct memory access controller with expedited error control
US6728797B2 (en) DMA controller
EP0331487B1 (en) Data transfer control system
JPH0552989B2 (ko)
US4604709A (en) Channel communicator
EP0182097B1 (en) Serially attached video adapter
KR100214238B1 (ko) 인터럽트 요구를 처리하기 위한 데이타 처리장치 및 방법
JP2554876B2 (ja) アドレス変換装置
KR100499350B1 (ko) 다중및단일채널을갖는다이렉트메모리억세스의데이터전송방법
JPS61241833A (ja) 命令コ−ドアクセス制御装置
JPH0497422A (ja) データ処理回路
JPH01255062A (ja) データ転送装置
KR920010971B1 (ko) 데이타 버퍼램을 이용한 입출력 처리기
JPS61148562A (ja) 情報処理装置におけるデ−タの移送方式
JPH0540728A (ja) バス制御方式
JPH0195350A (ja) データ転送制御方式
JPH01201760A (ja) Dma制御装置

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee