KR20040045665A - 파이프라인형 직접 메모리 접근 컨트롤러 - Google Patents

파이프라인형 직접 메모리 접근 컨트롤러 Download PDF

Info

Publication number
KR20040045665A
KR20040045665A KR1020020073510A KR20020073510A KR20040045665A KR 20040045665 A KR20040045665 A KR 20040045665A KR 1020020073510 A KR1020020073510 A KR 1020020073510A KR 20020073510 A KR20020073510 A KR 20020073510A KR 20040045665 A KR20040045665 A KR 20040045665A
Authority
KR
South Korea
Prior art keywords
memory
data
controller
bus
buffers
Prior art date
Application number
KR1020020073510A
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 KR1020020073510A priority Critical patent/KR20040045665A/ko
Publication of KR20040045665A publication Critical patent/KR20040045665A/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/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

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

Abstract

메모리와 프로세싱 유닛 사이의 인터페이스인 직접 메모리 접근 컨트롤러는, 상기 메모리/프로세서로부터의 데이터를 저장하기 위한 적어도 2 개의 버퍼들 그리고 상기 버퍼들 중 어느 하나의 버퍼에 상기 메모리/프로세서로부터의 데이터가 저장될 때 나머지 버퍼에 저장된 데이터를 상기 프로세서/메모리로 전달하는 주변 회로들을 포함한다.

Description

파이프라인형 직접 메모리 접근 컨트롤러{PIPELINED DIRECT MEMORY ACCESS CONTROLLER}
본 발명은 직접 메모리 접근(Direct Memory Access : DMA) 컨트롤러에 관한 것이다.
직접 메모리 접근(DMA) 방식은, 자기 디스크와 같은 고속 저장 장치와 메모리 사이의 데이터 전송에서 CPU(또는 마이크로프로세서)에 의해 속도가 제한되는 것을 방지하고자 데이터 경로에서 CPU를 제거하고 주변 장치가 직접 메모리 버스를 관리하여 전송 속도를 증가시키는 방식이다. DMA 전송 수행 동안 CPU는 메모리 버스를 제어하지 못하고 쉬게 된다.
그런데 빠른 데이터 전송 속도를 갖는 I/O를 지원하기 위해서는 DMA가 데이터 전송을 대신하는 것 뿐만 아니라 빠른 전송 속도를 보장해야 한다. 대표적인 DMA 구조로는 버퍼 DMA(Buffered DMA) 구조를 들 수 있다. BDMA는 각 프레임에 대한 정보 및 주소를 버퍼 디스크립터(Buffer Descriptor)라는 이름의 구조(Structure)로 관리하며, 각 버퍼 디스크립터는 링크 리스트(Linked List) 구조로 연결이 되어 있다. 그러나, BDMA는 연속적인 프레임에 대한 관리를 효율적으로 처리하는 구조일 뿐, DMA가 연결되어 있는 버스의 충돌(Contention)으로 인한 지연 등을 효율적으로 처리하는 것에 대한 언급은 없다.
따라서, 본 발명의 목적은 버스 충돌로 인한 지연을 최소화하면서 프레임에 대한 처리를 연속적으로 할 수 있는 DMA 컨트롤러를 제공하는데 있다.
본 발명의 다른 목적은 메모리 액세스 속도가 향상된 DMA 컨트롤러를 제공하는데 있다.
도 1은 일반적인 멀티-마스터 버스 구조를 보여주는 도면;
도 2는 버스 마스터가 버스를 사용하는 과정을 개념적으로 보여주는 도면;
도 3은 일반적인 버스 마스터 구조에서 데이터를 독출/기입하는 과정과 처리하는 과정을 보여주는 도면;
도 4는 본 발명의 바람직한 실시예에 따른 PDMA 컨트롤러;
도 5는 도 4에 도시된 PDMA 컨트롤러의 동작 예를 보여주는 타이밍도;
도 6은 PDMA 컨트롤러에서 제안하는 파이프라인 독출 동작을 보여주는 도면;
도 7은 메모리로부터 데이터를 독출할 때의 스테이트 머신의 트랜지션 다이어그램; 그리고
도 8a 내지 도 8c는 독출/기입 시간과 프로세싱 유닛의 처리 시간의 비율들을 각각 보여주고 있다.
*도면의 주요 부분에 대한 설명
100 : 시스템 버스200 : PDMA 컨트롤러
210 : DMA 스테이트 머신220-240 및 270-290 : 선택기
250, 260 : 버퍼300 : 프로세싱 유닛
400 : FIFO
(구성)
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 메모리와 프로세싱 유닛 사이의 인터페이스인 직접 메모리 접근 컨트롤러는: 상기 메모리/프로세서로부터의 데이터를 저장하기 위한 적어도 2 개의 버퍼들 그리고 상기 버퍼들 중 어느 하나의 버퍼에 상기 메모리/프로세서로부터의 데이터가 저장될 때 나머지 버퍼에 저장된 데이터를 상기 프로세서/메모리로 전달하는 주변 회로들을 포함한다.
바람직한 실시예에 있어서, 상기 직접 메모리 접근 컨트롤러는, 상기 프로세서로부터의 데이터를 상기 메모리에 기입하기 위한 기입 모드와 상기 메모리로부터 독출된 데이터를 상기 프로세서로 전달하기 위한 독출 모드를 갖는다.
이 실시예에 있어서, 상기 주변 회로는, 독출 모드동안 상기 메모리로부터 독출된 데이터를 상기 버퍼들 중 하나로 전달하고, 기입 모드 동안 상기 버퍼들 중 하나에 저장된 데이터를 상기 메모리로 전달하는 제 1 선택 회로와, 독출 모드동안 상기 버퍼들 중 하나에 저장된 데이터를 상기 프로세서로 전달하고, 기입 모드동안 상기 프로세서로부터의 데이터를 상기 버퍼들 중 하나에 저장하는 제 2 선택 회로그리고 상기 제 1 및 제 2 선택 회로들을 제어하는 제어기를 포함한다.
이와 같은 구성에 의하면, DMA 컨트롤러의 메모리 액세스 속도가 향상된다.
(실시예)
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
일반적인 버스 시스템은 도 1에 도시된 바와 같이, 단일 버스(50)에 여러 개의 버스 마스터들(21-23)이 연결되어 있는 멀티-마스터(multi-master) 구조이다. 멀티-마스터 구조에서는 버스 마스터들(21-23)이 버스(50)를 사용하기 위해서 중재기(Arbiter)에게 버스 사용권을 허락 받는다. 그래서, 한 순간에는 항상 하나의 버스 마스터만 버스를 사용하는 구조이다. 이러한 구조에서 버스 마스터가 버스를 사용하는 과정이 도 2에 도시되어 있다.
도 2를 참조하면, 먼저, 마스터(20)가 중재기(60)에게 버스 사용 요구 신호를 보낸다(a). 중재기(60)는 버스 사용을 요청한 마스터(20)에게 사용 허가신호를 전송한다(b). 이와 같은 결정은, 마스터(20)가 버스 사용을 요청하는 순간에 다른 마스터들의 요구(request)와 중재 스킴(arbitration scheme)에 따라 결정된다. 중재 스킴으로는 라운드 로빈(Round-Robin) 방식이나 프로그래머블 우선순위 스킴(Programmable Priority Scheme)이 사용될 수 있으며 대부분 라운드 로빈 방식이 사용된다. 허가된 마스터(20)는 메모리 컨트롤러(70)로 액세스하고자 하는 데이터를 요청한다(c). 즉, 마스터(20)는 액세스하고자 하는 어드레스를 메모리 컨트롤러(70)로 전송한다. 이 순간에는 오직 한 개의 버스 마스터만이 동작한다.메모리 컨트롤러(70)는 메모리(80)의 요구된 어드레스 영역에 대해 데이터를 읽는다(d). 메모리 컨트롤러(70)는 메모리(80)로부터 독출된 데이터를 마스터(20)로 전송한다(e).
마스터(20)에서의 데이터 처리는 위의 5 단계를 거쳐서 데이터를 얻은 후에 수행된다. 도 3은 일반적인 버스 마스터 구조에서 데이터를 독출/기입하는 과정과 처리하는 과정을 보여주고 있다. 앞서 언급했듯이 데이터를 독출/기입하는 과정과 처리하는 과정이 순차적으로 처리됨으로써 실제 처리하는 시간에서 비효율적임을 보여 준다. 따라서, 본 발명에서는 읽고/쓰는 과정과 처리 과정을 중첩하여 처리 성능을 향상시키는 파이프라인 DMA(pipelined DMA, 이하 PDMA) 컨트롤러를 제안한다.
본 발명의 바람직한 실시예에 따른 PDMA 컨트롤러는 도 4와 같다. 도 4를 참조하면, PDMA 컨트롤러(200)는, DMA 스테이트 머신(state machine)(210), 선택기들(220-240 및 270-290) 그리고 2 개의 4-워드(word) 크기의 버퍼들(250, 260)을 포함한다.
상기 선택기들(220-240 및 270-290)은 DMA 스테이트 머신(210)에 의해 제어된다. 4-워드 크기의 버퍼는 어플리케이션(Application)이 요구하는 처리 속도에 따라 8-워드가 될 수도 있고 16-워드가 될 수도 있다. 그리고 4-워드의 전송 방식은 버스트(Burst) 전송을 기본으로 하고 있다(도 5 참조). 왜냐하면, 단일 전송으로는 PDMA 구조를 효율적으로 사용하기에 성능 면에서 부족하기 때문이다. 따라서, 도 4에 도시된 바와 같이, PDMA 컨트롤러(200)는 4-워드 단위로 데이터를 읽어온 후에 바이트 단위로 프로세싱 유닛(300)으로 제공하고, 프로세싱 유닛(300)은 데이터 처리를 수행한 후에 FIFO(300)에 값을 저장한다.
PDMA 컨트롤러(200)에서 제안하는 파이프라인 독출 동작은 도 6과 같다. 우선 시스템 버스(100)를 통해 메모리(미 도시됨)로부터 독출된 데이터를 선택기들(220, 230)을 통해 버퍼(250)에 저장한다. 그리고 버퍼(250)에 저장된 데이터를 선택기들(270, 290)을 통해 프로세싱 유닛(300)으로 전송하는 동안 버스(100)를 통해 버퍼(260) 데이터를 저장한다. 그렇게 함으로써 버스(100)를 통해 데이터를 독출하는 과정과 프로세싱 유닛(300)이 데이터를 처리하는 과정이 중첩되는 파이프라인 방식으로 동작된다.
이와 같은 파이프라인 동작은 데이터를 메모리에 기입 동작하는에서도 동일하게 적용된다. 즉, 프로세싱 유닛(300)이 데이터를 처리한 후에 버퍼(250)에 데이터를 저장한다. 버퍼(250)에 저장된 데이터를 버스를 통해 메모리(미 도시됨)에 기입하는 동안에 프로세싱 유닛(300)은 또 다른 데이터를 처리하여 버퍼(260)에 저장한다. 그렇게 함으로써 버스(100)를 통해 PDMA 컨트롤러(200)가 메모리에 데이터를 기입하는 과정과 프로세싱 유닛(3000이 데이터를 처리하는 과정이 중첩된다.
도 7은 메모리로부터 데이터를 독출할 때의 스테이트 머신(210)의 트랜지션 다이어그램을 보여 준다.
다시 도 4를 참조하면, 본 발명에서는 PDMA 컨트롤러(200)가 2 개의 버퍼들(250, 260)을 중첩하여 사용하고 있다. 그런데, 사용하는 버퍼의 개수는 메모리로부터/에 데이터를 독출/기입 시간과 프로세싱 유닛(300)의 처리 시간의 비율로 얻을 수 있다. 도 8a 내지 도 8c는 독출/기입 시간과 프로세싱 유닛(300)의 처리 시간의 비율들을 각각 보여주고 있다.
도 8a는 PDMA 컨트롤러(200)의 독출/기입 시간이 프로세싱 유닛(300)의 처리 시간보다 긴 경우를 보여주고 있다. 이 경우는 버스(100)를 통해 메모리로부터/에 데이터를 독출/기입하는 동작에 upper-bound되어 동작되므로 2개의 버퍼가 효율적이다.
도 8b는 프로세싱 유닛(300)의 처리 시간이 PDMA 컨트롤러(200)의 독출/기입 시간보다 긴 경우를 보여주고 있다. 이 경우에는 프로세싱 유닛(300)의 처리 시간에 upper-bound되어 동작하므로 역시 2개의 버퍼가 효율적이다.
도 8c는 PDMA 컨트롤러(200)의 독출/기입 시간과 프로세싱 유닛(300)의 처리 시간이 동일한 경우이다. 이 경우에도 서로 시간이 동일하므로 역시 2개의 버퍼가 효율적이다. 따라서, 단일 버스 구조와 단일 프로세싱 유닛을 가지고 있는 경우에는 2개의 버퍼를 두는 구조가 가장 효율적이다. 그러나, 만약 멀티-버스 구조이거나, 멀티-프로세싱 유닛을 가지는 경우에는 읽기/쓰기 시간과 처리 시간 비율에 따라 2개 이상의 버퍼가 효율적이다.
예시적인 바람직한 실시예를 이용하여 본 발명을 설명하였지만, 본 발명의 범위는 개시된 실시예에 한정되지 않는다는 것이 잘 이해될 것이다. 따라서, 청구범위는 그러한 변형 예들 및 그 유사한 구성들 모두를 포함하는 것으로 가능한 폭넓게 해석되어야 한다.
이와 같은 본 발명에 의하면, DMA 컨트롤러의 메모리 액세스 속도가 향상된다.

Claims (3)

  1. 메모리와 프로세싱 유닛 사이의 인터페이스인 직접 메모리 접근 컨트롤러에 있어서:
    상기 메모리/프로세서로부터의 데이터를 저장하기 위한 적어도 2 개의 버퍼들; 그리고
    상기 버퍼들 중 어느 하나의 버퍼에 상기 메모리/프로세서로부터의 데이터가 저장될 때 나머지 버퍼에 저장된 데이터를 상기 프로세서/메모리로 전달하는 주변 회로들을 포함하는 것을 특징으로 하는 직접 메모리 접근 컨트롤러.
  2. 제 1 항에 있어서,
    상기 프로세서로부터의 데이터를 상기 메모리에 기입하기 위한 기입 모드와 상기 메모리로부터 독출된 데이터를 상기 프로세서로 전달하기 위한 독출 모드를 갖는 것을 특징으로 하는 직접 메모리 접근 컨트롤러.
  3. 제 2 항에 있어서,
    상기 주변 회로는,
    독출 모드동안 상기 메모리로부터 독출된 데이터를 상기 버퍼들 중 하나로 전달하고, 기입 모드 동안 상기 버퍼들 중 하나에 저장된 데이터를 상기 메모리로 전달하는 제 1 선택 회로와;
    독출 모드동안 상기 버퍼들 중 하나에 저장된 데이터를 상기 프로세서로 전달하고, 기입 모드동안 상기 프로세서로부터의 데이터를 상기 버퍼들 중 하나에 저장하는 제 2 선택 회로; 그리고
    상기 제 1 및 제 2 선택 회로들을 제어하는 제어기를 포함하는 것을 특징으로 하는 직접 메모리 접근 컨트롤러.
KR1020020073510A 2002-11-25 2002-11-25 파이프라인형 직접 메모리 접근 컨트롤러 KR20040045665A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020073510A KR20040045665A (ko) 2002-11-25 2002-11-25 파이프라인형 직접 메모리 접근 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020073510A KR20040045665A (ko) 2002-11-25 2002-11-25 파이프라인형 직접 메모리 접근 컨트롤러

Publications (1)

Publication Number Publication Date
KR20040045665A true KR20040045665A (ko) 2004-06-02

Family

ID=37341432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020073510A KR20040045665A (ko) 2002-11-25 2002-11-25 파이프라인형 직접 메모리 접근 컨트롤러

Country Status (1)

Country Link
KR (1) KR20040045665A (ko)

Similar Documents

Publication Publication Date Title
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US6052738A (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US4449183A (en) Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
JP3598321B2 (ja) 異なる周波数で動作するバス間でやりとりされるバッファリングデータ
US5805927A (en) Direct memory access channel architecture and method for reception of network information
US6006303A (en) Priority encoding and decoding for memory architecture
US5412788A (en) Memory bank management and arbitration in multiprocessor computer system
US6202107B1 (en) Host controller interface descriptor fetching unit
JPH0728758A (ja) ダイナミックタイムループ調停及び装置
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
KR100376610B1 (ko) 집적 멀티 마스터 버스 시스템에 대한 프리 중재 요청제한기
EP0587370A1 (en) Method and apparatus for software sharing between multiple controllers
KR20040045665A (ko) 파이프라인형 직접 메모리 접근 컨트롤러
JP4335327B2 (ja) 調停装置および方法
JP3618249B2 (ja) データ転送装置
US20100153610A1 (en) Bus arbiter and bus system
US20080228961A1 (en) System including virtual dma and driving method thereof
JPH0351943A (ja) 高速バスと低速バスのバスライン共用化方式
JPH0273591A (ja) 半導体記憶装置
KR100210404B1 (ko) 공유 메모리 억세스 제어장치
JPH0895899A (ja) Dma転送制御装置
KR100294639B1 (ko) 다중억세스캐쉬장치
JPH01191964A (ja) メモリバスデータ転送方法
JPH02307123A (ja) 計算機
JP2003186820A (ja) 情報処理装置

Legal Events

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