KR19990074298A - 파이포 구조를 갖는 디렉트 메모리 액세스 - Google Patents

파이포 구조를 갖는 디렉트 메모리 액세스 Download PDF

Info

Publication number
KR19990074298A
KR19990074298A KR1019980007780A KR19980007780A KR19990074298A KR 19990074298 A KR19990074298 A KR 19990074298A KR 1019980007780 A KR1019980007780 A KR 1019980007780A KR 19980007780 A KR19980007780 A KR 19980007780A KR 19990074298 A KR19990074298 A KR 19990074298A
Authority
KR
South Korea
Prior art keywords
data
memory access
pointer
direct memory
fifo
Prior art date
Application number
KR1019980007780A
Other languages
English (en)
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 KR1019980007780A priority Critical patent/KR19990074298A/ko
Publication of KR19990074298A publication Critical patent/KR19990074298A/ko

Links

Landscapes

  • Bus Control (AREA)

Abstract

본 발명은 디렉트 메모리 액세스에 관한 것으로, 내부에 버퍼 역할을 하는 FIFO를 두고 데이터를 보관한 다음 시스템 버스가 다른 디바이스에 의해 사용되지 않을 때 FIFO에 들어온 순서에 따라 적당한 크기로 데이터를 전송하여 속도와 버스의 효율적인 사용을 모두 달성할 수 있다.

Description

파이포 구조를 갖는 디렉트 메모리 액세스(DMA with FIFO Structure)
본 발명은 디렉트 메모리 액세스에 관한 것으로, 좀 더 구체적으로는 데이터를 FIFO를 통해 고속으로 전송시키는 장치에 관한 것이다.
현재 빠른 DATA 전송과 함께 효율적인 버스 사용을 목적으로 다양한 시스템에 여러 가지의 DMA(Direct Memory Access)가 사용되고 있다.
이와 같은 DMA를 통한 데이터 전송시 전송 속도의 개선을 위한 방법으로는, 소스 어드레스(Source Address)의 데이터를 시스템 버스에 로딩 시킨 다음 데스티네이션 어드레스(Destination Address)만을 발생시켜 전송하는 것이 있다.
다른 방법으로는 DMA 내부에 버퍼를 두어 소스 어드레스의 데이터를 버퍼에 보관한 다음 다시 데스티네이션 어드레스에 전송시키는 것이 있다.
그러나 첫 번째 방법은 속도는 높일 수 있어도 버스의 utilization ratio가 커지는 단점이 있다.
또한, 두 번째의 방법은 버스의 utilization ratio를 줄일 수는 있으나 전송속도가 느려지는 문제점이 있다.
따라서, 본 발명은 상술한 제반 문제점을 해결하기 위해 제안된 것으로서, 다른 크기의 데이터 전송을 효율적으로 할 수 있는 디렉트 메모리 액세스를 제공함에 그 목적이 있다.
도 1은 본 발명의 실시예에 따른 FIFO의 구성을 나타낸 것으로 각 뱅크는 바이트 단위로 되어 있고 FIFO의 딥스는 4로 된 것을 나타낸 도면;
도 2는 도 1에 도시된 FIFO의 논리적 구성을 나타낸 도면;
도 3은 본 발명의 실시예에 따른 파이포 구조를 갖는 디렉트 메모리 액세스를 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
32 : CPU 33 : 캐시
35 : 디렉트메모리액세스 38~40 : 디바이스
37 : DRAM
상술한 목적을 달성하기 위해 제안된 본 발명의 특징에 의하면, 파이포 구조를 갖는 디렉트 메모리 액세스는 시스템 버스와 접속된 CPU와, 데이터 및 프로그램을 일시적으로 기입하고 독출하는 캐시와, 메모리로의 데이터 전송을 제어하는 디렉트메모리액세스와, 패리페럴 버스와 접속된 복수의 디바이스와, 데이터를 저장시키는 DRAM을 포함한다.
이 특징의 바람직한 실시예에 있어서, 디렉트메모리액세스는 1워드의 데이터를 바이트 단위로 나누고, 1워드의 데이터에 대해 포인터를 설정시키고, 기입을 할 것인지 독출을 할 것인지를 판단하고, 1바이트로 기입할 경우에는 기입 포인터를 1씩 증가시키고, 하프 워드로 기입할 경우에는 기입 포인터를 2씩 증가시키고, 워드로 기입할 경우에는 4씩 증가시키고, 1바이트로 독출할 경우에는 독출 포인터를 1씩 증가시키고, 하프 워드로 독출할 경우에는 독출 포인터를 2씩 증가시키고, 워드로 독출할 경우에는 독출 포인터를 4씩 증가시키고, 독출할 때는 FIFO에 저장하면서 포인터를 증가시키고, 기입할 때는 포인터를 증가시켜서 데이터를 액세스한다.
이 특징의 바람직한 실시예에 있어서, CPU는 FIFO의 딥스를 캐시의 라인 채움 크기만큼 구성하고, 시스템버스와 페리페럴 버스를 FIFO의 데이터 패스로 연결시킨다.
본 발명은 디렉트 메모리 액세스에 관한 것으로, 내부에 버퍼 역할을 하는 FIFO를 두고 데이터를 보관한 다음 시스템 버스가 다른 디바이스에 의해 사용되지 않을 때 FIFO에 들어온 순서에 따라 적당한 크기로 데이터를 전송하여 속도와 버스의 효율적인 사용을 모두 달성할 수 있다.
이하, 도 1 내지 도 3을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 3을 참조하면, 본 발명의 신규한 파이포 구조를 갖는 디렉트 메모리 액세스는 CPU(32), 캐시(33), 디렉트메모리액세스(35), 디바이스(38~40), DRAM(37)을 구비하여, 데이터를 고속으로 전송시킬 수 있다.
첫번째는 바이트(BYTE), 하프 워드(HALF WORD), 워드(WORD)의 서로 크기가 다른 데이터를 전송시키는 예를 설명한다.
먼저, 소스 데이터를 파이포(FIFO)에 채워 넣는다. 이어서 데스티네이션의 사이즈에 맞게 데이터를 전송시킨다.
이렇게 하기 위해서 먼저 한 워드(32비트)를 바이트 단위로 나누고 각각의 바이트 단위로 Read/Write가 가능하게 만든다. 그리고 한 워드에 대한 Align Pointer를 둔다. Align Pointer를 두는 이유는 소스 트랜스퍼 사이즈(Source Transfer Size)가 데스티네이션 트랜스퍼 사이즈(Destination Transfer Size)보다 작은 경우를 위해서 두어야 한다. 이렇게 한 다음 바이트 어드레스(Byte Address)를 베이스로 Read/Write Pointer를 두어서 증가시킨다.
만일, 바이트 단위로 기입(Write)할 경우는 Write Pointer를 1씩 증가시키고, 하프 워드(Half Word)의 경우는 2씩 증가, 워드(Word)일 경우는 4씩 증가시키면 된다.
한편, 바이트 단위로 독출(Read)할 경우는 Read Pointer를 1씩 증가시키고, 하프 워드(Half Word)일 경우는 2씩, 그리고 워드(Word)일 경우는 4씩 증가시키면 된다.
여기서 독출 동작(Read Operation)일 경우는 소스의 데이터를 바이트 단위로 파이포(FIFO)에 저장을 하면서 기입 포인터(Write Pointer)를 증가시킨다. 또한, 데스티네이션에 기입할 경우 독출 포인터(Read Pointer)를 증가 시켜서 데이터를 순서대로 액세스한다. 이런 액세스 동작은 파이포(FIFO)가 비워질 때까지 지속되어져야 한다. 그리고 캐쉬의 라인 채움(Line Fill) 동작으로 DRAM에 전송하기 위한 목적으로 파이포의 풀 포인터(Full Pointer)를 두어서 FIFO가 모두 채워지면 고속 페이지 모드(Fast Page Mode)로 DRAM의 데이터를 전송하게 만든다.
계속해서 데이터 전송을 위한 파이포의 구성과 동작을 상세히 설명한다.
파이포(FIFO)의 Depth를 캐쉬의 라인 채움(Line Fill) 크기만큼 구성한다. 그리고 시스템 버스와 페리페럴 버스(Peripheral Bus)를 파이포(FIFO)의 데이터 패스로 연결한다. 이렇게 할 경우 페리페럴 디바이스에서의 데이터가 바이트, 하프워드, 워드일 경우와 상관없이 시스템 버스 쪽으로 원하는 크기만큼 전송할 수 있다. 만약에 페리페럴 디바이스 쪽에서 바이트로 DRAM에 데이터를 전송한다고 하면, 파이포(FIFO)를 사용하지 않을 경우 매번 시스템 버스를 요청하여서 DRAM 메모리 싸이클로 한 바이트씩 전송해야 하기 때문에 버스의 Utilization Ratio가 커질 뿐만 아니라 전송 속도도 느려지게 된다.
그러나 파이포(FIFO)를 캐쉬의 라인 채움(Line Fill) 크기만큼 구성하고 페리페럴쪽에서 전송되는 데이터를 파이포(FIFO)가 모두 채워질 때까지 저장한 다음 캐쉬 대체 논리회로(Cache Replacement Logic)를 이용하여 캐쉬의 기입버퍼(Write Buffer) 대신 파이포(FIFO)를 DRAM으로 전송한다면, DRAM의 고속 페이지 모드(Fast Page Mode)를 이용할 수 있어서 전체 전송 속도도 빨라질 뿐만 아니라 버스 Utilization Ratio도 줄게 되어 전체 시스템의 성능이 향상된다.
뿐만 아니라 메모리의 내용을 페리페럴 디바이스 쪽으로 전송할 경우 먼저 파이포(FIFO)에 데이터를 저장한 다음 페리페럴 버스의 여러 디바이스에 데이터를 나누어서 적당한 시기에 전송하기도 용이하며 이로 인해 페리페럴 버스의 Bus Utilization도 줄어들게 될 뿐만 아니라 전송 속도도 빨라져서 전체 시스템의 성능이 향상되게 된다.
본 발명은 종래의 디렉트 메모리 액세스의 첫 번째 방법은 속도는 높일 수 있어도 버스의 utilization ratio가 커지는 단점이 있고, 두 번째 방법은 버스의 utilization ratio를 줄일 수는 있으나 전송속도가 느려지는 문제점이 있는 것으로, 다른 크기의 데이터 전송을 효율적으로 할 수 있다.

Claims (3)

  1. 시스템 버스와 패리페럴 버스를 구비하고 데이터를 전송시키는 장치에 있어서:
    시스템 버스와 접속된 CPU(32)와;
    데이터 및 프로그램을 일시적으로 기입하고 독출하는 캐시(33)와;
    메모리로의 데이터 전송을 제어하는 디렉트메모리액세스(35)와;
    패리페럴 버스와 접속된 복수의 디바이스(38~40)와;
    데이터를 저장시키는 DRAM(37)을 구비하여 구성된 것을 특징으로 하는 파이포 구조를 갖는 디렉트 메모리 액세스.
  2. 제 1 항에 있어서,
    상기 디렉트메모리액세스(35)는 1워드의 데이터를 바이트 단위로 나누고;
    1워드의 데이터에 대해 포인터를 설정시키고;
    기입을 할 것인지 독출을 할 것인지를 판단하고;
    1바이트로 기입할 경우에는 기입 포인터를 1씩 증가시키고, 하프 워드로 기입할 경우에는 기입 포인터를 2씩 증가시키고, 워드로 기입할 경우에는 4씩 증가시키고;
    1바이트로 독출할 경우에는 독출 포인터를 1씩 증가시키고, 하프 워드로 독출할 경우에는 독출 포인터를 2씩 증가시키고, 워드로 독출할 경우에는 독출 포인터를 4씩 증가시키고;
    독출할 때는 FIFO에 저장하면서 포인터를 증가시키고, 기입할 때는 포인터를 증가시켜서 데이터를 액세스하는 것을 특징으로 하는 파이포 구조를 갖는 디렉트 메모리 액세스.
  3. 제 1 항에 있어서,
    상기 CPU는 FIFO의 딥스를 캐시의 라인 채움 크기만큼 구성하고,
    시스템버스와 페리페럴 버스를 FIFO의 데이터 패스로 연결시키는 것을 특징으로 하는 파이포 구조를 갖는 디렉트 메모리 액세스.
KR1019980007780A 1998-03-09 1998-03-09 파이포 구조를 갖는 디렉트 메모리 액세스 KR19990074298A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980007780A KR19990074298A (ko) 1998-03-09 1998-03-09 파이포 구조를 갖는 디렉트 메모리 액세스

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980007780A KR19990074298A (ko) 1998-03-09 1998-03-09 파이포 구조를 갖는 디렉트 메모리 액세스

Publications (1)

Publication Number Publication Date
KR19990074298A true KR19990074298A (ko) 1999-10-05

Family

ID=65908936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980007780A KR19990074298A (ko) 1998-03-09 1998-03-09 파이포 구조를 갖는 디렉트 메모리 액세스

Country Status (1)

Country Link
KR (1) KR19990074298A (ko)

Similar Documents

Publication Publication Date Title
CA2307816C (en) Buffering data that flows between buses operating at different frequencies
US5864876A (en) DMA device with local page table
CA2018065C (en) Data processing system with means to convert burst operations into pipelined operations
US20050033874A1 (en) Direct memory access using memory descriptor list
US7930451B2 (en) Buffer controller and management method thereof
US20090254705A1 (en) Bus attached compressed random access memory
KR970010368B1 (ko) 캐시라인 리프레이스장치 및 방법
US20070055813A1 (en) Accessing external memory from an integrated circuit
US20060218332A1 (en) Interface circuit, system, and method for interfacing between buses of different widths
JPH11507749A (ja) 分割バッファアーキテクチュア
WO2004006103A9 (en) Method and system for improving access latency of multiple bank devices
US5467460A (en) M&amp;A for minimizing data transfer to main memory from a writeback cache during a cache miss
BR102013022935A2 (pt) Dispositivo de memória flash serial de múltiplos fluxos de dados
US6751704B2 (en) Dual-L2 processor subsystem architecture for networking system
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
US20070043910A1 (en) Memory control apparatus executing prefetch instruction
US20030014596A1 (en) Streaming data cache for multimedia processor
KR19990074298A (ko) 파이포 구조를 갖는 디렉트 메모리 액세스
JPH02292645A (ja) 高速読出変更書込メモリー・システム及び方法
US7228367B2 (en) Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof
US5732011A (en) Digital system having high speed buffering
KR100369363B1 (ko) 메모리를 이용한 호스트 시스템과 로컬 시스템 내부의마이크로컨트롤러 사이의 데이터 전송 및 수신 장치
JP2000215154A (ja) Dmaコントロ―ラ
US6567898B1 (en) Memory controller and an information processing apparatus with improved efficiency
JP2000137674A (ja) バースト転送メモリマップトレジスタ

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination