KR20060084949A - 직접 메모리 억세스 제어방법 및 그 장치 - Google Patents

직접 메모리 억세스 제어방법 및 그 장치 Download PDF

Info

Publication number
KR20060084949A
KR20060084949A KR1020050005718A KR20050005718A KR20060084949A KR 20060084949 A KR20060084949 A KR 20060084949A KR 1020050005718 A KR1020050005718 A KR 1020050005718A KR 20050005718 A KR20050005718 A KR 20050005718A KR 20060084949 A KR20060084949 A KR 20060084949A
Authority
KR
South Korea
Prior art keywords
dma
memory access
file
memory
sequential
Prior art date
Application number
KR1020050005718A
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 KR1020050005718A priority Critical patent/KR20060084949A/ko
Publication of KR20060084949A publication Critical patent/KR20060084949A/ko

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C5/00Pavings made of prefabricated single units
    • E01C5/005Individual couplings or spacer elements for joining the prefabricated units
    • E01C5/006Individual spacer elements
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C5/00Pavings made of prefabricated single units
    • E01C5/18Pavings made of prefabricated single units made of rubber units
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C2201/00Paving elements
    • E01C2201/02Paving elements having fixed spacing features
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C2201/00Paving elements
    • E01C2201/16Elements joined together

Landscapes

  • Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 직접 메모리 억세스(DMA) 제어방법과 그 장치에 관한 것으로서, 특히 비순차적 방식으로 메모리를 억세스할 때의 비순차적 메모리 억세스를 제어하는 방법과 그 제어장치에 관한 것이다.
본 발명은 데이터/제어/어드레스 버스를 기반으로 하여 중앙처리장치와 DMA 제어기 및, 메모리, DMA 기반의 상기 메모리 억세스 수행이 요구되는 코덱 등의 장치를 포함하는 DMA 기반 메모리 억세스 시스템에 있어서, 순차 및 비순차적인 직접 메모리 억세스 제어를 수행하는 DMA 전처리수단과, 메모리 억세스를 수행할 장치로부터 요구되는 비순차적인 메모리 억세스를 위하여 파일 포인터 값을 변경시켜 주는 파일 탐색수단(FILE SEEKER)과, 메모리 억세스를 수행할 장치로부터 비순차적인 메모리 억세스 요구가 있을 경우 현재 진행중인 DMA 전송을 정리하고 상기 파일 탐색수단에 의해서 변경된 포인터가 지시하는 부분부터 다시 DMA를 재설정하여 주는 DMA 후처리수단을 포함하여 구성된 것을 특징으로 한다.
DMA, 메모리 억세스, 순차 메모리 억세스, 비순차 메모리 억세스

Description

직접 메모리 억세스 제어방법 및 그 장치{DIRECT MEMORY ACCESS CONTROL METHOD AND APPARATUS THEREOF}
도1은 DMA 개요를 나타낸 블록 구성도
도2는 더블 버퍼링의 개요를 나타낸 블록 구성도
도3은 DMA 스테이터스(Status)의 예를 나타낸 도면
도4는 본 발명의 DMA 제어장치의 블록 구성도
도5는 본 발명의 DMA 제어방법의 플로우차트
<도면의 주요 부분에 대한 부호의 설명>
41: 중앙처리장치 42: 메모리
43: 코덱(CODEC) 44: 파일 탐색기(FILE SEEKER)
45: DMA 전처리기 46: DMA 후처리기
본 발명은 직접 메모리 억세스(DMA) 제어방법과 그 장치에 관한 것으로서, 특히 비순차적 방식으로 메모리를 억세스할 때의 비순차적 메모리 억세스를 제어하는 방법과 그 제어장치에 관한 것이다.
DMA(Direct Memory Access) 기법은 기존의 중앙처리장치(CPU)가 시스템 전반을 제어하는 방식에서 벗어나서, DMA 제어기가 메모리 관리를 직접 처리하는 분업처리 방식을 따르고 있다. DMA가 없는 환경에서는 중앙처리장치(CPU)가 시스템에서 일어나는 모든 일에 관한 관리를 하고 프로세스를 책임진다. 즉, 하나의 통합적인 작업을 수행하기 위해서 여러 가지의 일련의 과정들로 구성이 되고 그 과정들의 순차적인 결과를 통하여 하나의 통합적인 작업 수행되는데 이를 중앙처리장치(CPU)가 관할하는 것이다.
그런데, 이러한 시스템 작업 처리 및 제어과정의 실행 중에 메모리 억세스, 디스크(Disk) 억세스 등과 같이 많은 시간이 소요되는 작업이 있을 경우에 중앙처리장치(CPU)는 다음의 작업을 처리하지 못하고 이 과정이 끝나기를 기다리는 경우가 발생한다. 이러한 경우 전체 작업시간은 많은 시간이 소요되는 작업인 메모리 억세스나 디스크 억세스 등의 처리 과정에 의존하여 크게 증가한다고 볼 수 있다. DMA는 이러한 단점을 보완하기 위해서 메모리 억세스에 관련된 제어권을 중앙처리장치(CPU)로부터 넘겨받아 DMA 제어기(DMA Controller)가 메모리 억세스를 분담함으로써 시스템 속도와 성능의 향상을 기할 수 있도록 만들어진 것이다.
도1은 이러한 DMA의 개요를 도식적으로 보여준다. 도1에 나타낸 시스템에서는 중앙처리장치(CPU)(11), 메모리(12), DMA 제어기(13)가 데이터/제어/어드레스 버스(BUS)를 기반으로 하여 상호 연결된 구조를 따르고 있으며, 메모리(12)의 억세스를 DMA 제어기(13)가 담당하는 구조에 해당한다.
즉, 도1에서, 메모리(12)에 데이터를 기록하거나 읽어내는 억세스 등과 같은 작업을 DMA 제어기(13)가 제어권을 넘겨 받아서 처리를 하고, DMA 제어기(13)가 메모리 억세스를 처리하는 기간 동안에 중앙처리장치(CPU)(11)는 다른 작업을 진행할 수 있게 되는 것이다. 이렇게 함으로써 시스템 전체적인 작업 시간에서의 효율성을 높일 수 있는 것이다.
그렇지만 DMA 기반의 메모리 관리에서도 순차적인 메모리 억세스의 경우와 비순차적인 메모리 억세스의 경우 각각에서의 효율성은 차이가 있다.
도2는 DMA를 기반으로 하여 디스크(21)에서 더블 버퍼(BUFFER1,BUFFER2) (22a,22b)를 이용하여 코덱(CODEC)(23)이 데이터를 억세스하는 방식을 보여주고 있다. 즉, 더블 버퍼링을 기반으로 하여 메모리 억세스가 이루어지는 개념을 보여주고 있다.
도2에 나타낸 바와 같이, 일반적인 오디오 코덱(23)에서는 더블 버퍼링이라는 개념을 사용하여 메모리의 데이터 스트림(Data Stream)을 읽어가는데, 이 때 읽어가는 방식이 DMA를 사용하여 읽어가는 것이다. DMA는 기본적으로 1024바이트의 단위(Block)로 읽어가는데, 더블 버퍼링 시에 하나의 버퍼가 큰 단위일 경우에는 DMA를 여러 번 수행시켜서 메모리 데이터를 나누어 옮기게 된다.
도3은 이와 같이 DMA 수행 시에 여러 번으로 나누어 데이터를 옮겨가는 방법을 도식적으로 보여주고 있다. 도3에서, DMA의 단계(Status)는 하나의 버퍼를 기준으로 하였을 때 DMA 개시단계(FIRST)(31), DMA 중간단계(MIDDLE)(32), 그리고 DMA 종료단계(END)(33)로 나눌 수 있음을 보여준다.
즉, 큰 덩어리의 메모리 데이터를 여러 번의 DMA로 나누어 옮겨갈 때 처음 옮겨가는 데이터 블록(BLOCK)을 DMA 개시단계(FIRST)라고 할 수 있다. DMA 개시단계(FIRST) 이후에도 더 읽을 메모리 데이터 블록이 있다는 것을 의미한다. 그리고 총 몇 개의 데이터 블록 중에서 몇 번째의 메모리 데이터 블록을 옮기는 중이라면 중간이라고 할 수 있는 DMA 중간단계(MIDDLE)를 거치게 될 것이고, 이 DMA 중간단계(MIDDLE)에서도 더 옮길 메모리 데이터가 있다는 것을 의미한다. 마지막으로 DMA 종료단계(END)에서는 더 이상 읽을 메모리 데이터 블록이 존재하지 않는다는 것이다.
앞서 설명한 바와 같이 더블 버퍼링(BUFFER1,BUFFER2)을 사용함으로써 중앙처리장치(CPU)가 하나의 버퍼1(BUFFER1)에서 가져온 스트림을 처리하는 동안 다른 빈 버퍼2(BUFFER2)에다가 DMA 제어기(13)가 다음 스트림의 내용을 채워넣게 된다. 또한 중앙처리장치(CPU)가 버2퍼(BUFFER2)에서 가져온 스트림을 처리하는 동안에는 다른 빈 버퍼1(BUFFER1)에다가 DMA 제어기(13)가 다음 스트림의 내용을 채워넣게 된다. 이러한 동작을 교번하여 수행함으로써 메모리(12)의 데이터 억세스 효율을 높일 수 있게 되는 것이다. 따라서, 더블 버퍼링을 기반으로 하여 메모리 억세스가 이루어지면 처리 시간의 단축 효과를 가져온다.
그러나, 이와 같은 더블 버퍼링 방식의 DMA 전송은 순차적으로 메모리를 억세스하는 코덱의 경우는 용이할 수 있지만, 순차적으로 메모리를 억세스하지 않고 랜덤(random)하게 메모리를 억세스하는 비순차 메모리 억세스 기반의 코덱의 경우에는 그 효율성 및 동작성이 떨어질 수 있다. 예를 들면 OGG Vorbis와 같이 스트림 중간에 헤더가 들어있는 오디오 코덱의 경우가 해당된다.
그러므로 비순차적으로 메모리를 억세스하는 경우에도 적용할 수 있는, 보다 더 효율적인 DMA 처리 방법이 필요하다.
본 발명은 DMA 기반 메모리 억세스 시스템에서, 직접 메모리 억세스(DMA)를 제어하는 방법 및 그 장치로서, 비순차적으로 메모리를 억세스하는 경우의 DMA 처리 방법과 그 장치를 제공하는데 목적이 있다.
또한 본 발명은 순차적으로 메모리를 억세스하는 것은 물론, 시스템 상황에 따라 비순차적으로 메모리를 억세스해야 하는 경우에도 대응할 수 있는 DMA 처리방법과 그 장치를 제공하는데 목적이 있다.
또한 본 발명은 비순차적으로 메모리를 억세스하는 오디오 코덱 중의 하나인 OGG Vorbis에 적합한 DMA 처리방법과 그 장치를 제공하는데 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 직접 메모리 억세스(DMA) 제어장치는, 데이터/제어/어드레스 버스를 기반으로 하여 중앙처리장치와 DMA 제어기 및, 메모리, DMA 기반의 상기 메모리 억세스 수행이 요구되는 코덱 등의 장치를 포함하는 DMA 기반 메모리 억세스 시스템에 있어서,
순차 및 비순차적인 직접 메모리 억세스 제어를 수행하는 DMA 전처리수단과, 메모리 억세스를 수행할 장치로부터 요구되는 비순차적인 메모리 억세스를 위하여 파일 포인터 값을 변경시켜 주는 파일 탐색수단(FILE SEEKER)과, 메모리 억세스를 수행할 장치로부터 비순차적인 메모리 억세스 요구가 있을 경우 현재 진행중인 DMA 전송을 정리하고 상기 파일 탐색수단에 의해서 변경된 포인터가 지시하는 부분부터 다시 DMA를 재설정하여 주는 DMA 후처리수단을 포함하여 구성된 것을 특징으로 한다.
상기 본 발명의 DMA 제어장치에서 상기 비순차적인 메모리 억세스는 OGG Vorbis와 같이 비순차적 메모리 억세스 방식을 사용하는 코덱에 대해서 이루어지는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명의 직접 메모리 억세스(DMA) 제어방법은, 데이터/제어/어드레스 버스를 기반으로 하여 중앙처리장치와 DMA 제어기 및, 메모리, DMA 기반의 상기 메모리 억세스 수행이 요구되는 코덱 등의 장치를 포함하는 DMA 기반 메모리 억세스 시스템에 있어서,
DMA 기반의 메모리 억세스 시, 전송 각 상태(FIRST, MIDDLE, END)에 따른 DMA 전송을 실행함과 함께 파일 탐색기(FILE SEEKER) 호출 여부를 판별하는 단계; 상기 파일 탐색기가 호출된 경우 비순차적인 메모리 억세스가 요구된 것으로 인식하여 파일 탐색기의 포인터(Pointer)를 비순차적인 메모리 억세스를 위한 값으로 변경시켜 주고 현재의 각 상태에 대한 종료 절차를 실행하는 단계; 상기 종료 절차를 완료한 후 상기 변경된 파일 포인터 값을 기점으로 DMA 전송을 재개하는 단계; 를 포함하여 이루어지는 것을 특징으로 한다.
상기한 바와 같이 이루어지는 본 발명에 따르면 비순차적 메모리 억세스를 알리는 파일 탐색기(File Seeker)와 DMA 전처리기 및 DMA 후처리기를 포함하며, DMA 후처리기는 파일 탐색기(File Seeker)의 동작과 연계되어 동작된다.
도4는 본 발명의 DMA 처리장치의 실시예 구성을 보여준다. 데이터/제어/어드레스 버스(BUS)를 기반으로 하여 중앙처리장치(CPU)(41), 메모리(42), 코덱(CODEC)(43)이 연결되어 있고, 순차 및 비순차적인 메모리 억세스 제어를 위하여 파일 탐색기(FILE SEEKER)(44)와 DMA 전처리기(45) 및 DMA 후처리기(46)가 구비된다.
상기 DMA 전처리기(45)는 기존의 DMA를 사용하는 방식에서 볼 수 있는 것으로 DMA의 일반적인 동작을 관리하고 있다. 즉, DMA 전처리기는 순차적인 메모리(42)의 억세스 뿐만 아니라 비순차적인 메모리(42)의 억세스에 따른 DMA 제어를 수행하는 것이다. 즉, DMA 전처리기(45)는 순차적인 방식과 비순차적인 방식에 모두 들어있는 모듈로, 일반적인 DMA 전송을 위하여 필요한 제반 설정을 하는 일련의 과정(제어 수순)을 포함하고 있다.
상기 DMA 후처리기(46)는 파일 탐색기(FILE SEEKER)(44)가 동작하는 경우 이에 동반하여 DMA 후처리기(46)도 동작을 하게 된다. 일반적으로 순차적인 메모리(42)의 억세스를 수행할 경우에 DMA 전송은 DMA 설정을 한 후에 순차적으로 전송을 진행하면 되지만, DMA 전송 중에 파일 탐색기(FILE SEEKER)(44)가 동작하여 원본의 내용이 달라질 경우에는 DMA를 재설정을 해야 하는 과정이 발생한다. 이 것을 DMA 후처리기(46)에서 담당해 준다.
즉, DMA 후처리기(46)는 순차적인 메모리 억세스 방식에서는 동작할 필요가 없지만, 비순차적인 메모리 억세스 방식에서는 필요한 모듈이다. 이 모듈-DMA 후처리기(46)는 예를 들면 OGG Vorbis와 같은 비순차적 메모리 억세스 방식을 사용하는 코덱(43)이 DMA 전송 중에 파일 탐색기(FILE SEEKER)(44)를 이용하여 메모리(42)의 특정 부분을 억세스하고자 할 때, 현재 진행중인 DMA 전송을 정리하고 옮겨진 포인터 부분에서 다시 DMA를 재설정하여 진행하고자 하는 수단이다.
파일 탐색기(FILE SEEKER)(44)는 비순차적인 메모리(42)의 억세스가 필요한 시스템에서 사용되며, 예를 들면 OGG Vorbis 코덱(43) 사용 시에 볼 수 있는 것으로, 비순차적인 메모리 억세스나 디스크의 억세스 시에 사용하는 모듈이다.
상기 파일 탐색기(FILE SEEKER)(44)는 메모리(42)내의 버퍼링할 데이터 위치를 가리키는 파일 포인터(File Pointer)를 비순차적인 메모리 억세스에 해당하는 위치의 값으로 강제로 이동시키는 역할을 한다. 즉, 현재 순차적으로 메모리(42)를 억세스하는 중간에 포인터를 이동해야 할 필요성이 있는 경우 이 모듈-파일 탐색기(FILE SEEKER)(44)가 해당 메모리 포인터값을 조정하게 되는 것이다.
일반적으로 헤더(Header) 뒤에 스트림이 존재하는 AAC, MP3와 같은 코덱에서는 파일 탐색기(FILE SEEKER)(44)는 사용할 필요가 없는 모듈이지만, OGG Vorbis와 같이 스트림의 중간에 헤더가 들어있는 코덱(43)에서는 비순차적인 메모리 억세스를 위하여 반드시 필요하게 된다.
도5는 본 발명에 따른 DMA 처리방법의 플로우차트이다. 도5에 나타낸 바와 같이, 본 발명에 따른 비순차적인 메모리 억세스 기반의 DMA 제어 시에는 파일 탐색기(FILE SEEKER)(44)와 DMA 후처리기(46)의 복합적인 작용으로 비순차적인 메모리 억세스가 이루어진다.
도5를 참조하여 본 발명에 따른 DMA 처리방법을 살펴본다.
먼저, 코덱(43)으로부터 메모리(42)의 데이터 억세스 요구가 발생하면 중앙처리장치(CPU)의 개입없이 DMA 기반의 메모리 억세스가 개시된다. 이 것은 DMA 전처리기(45)에서 기존의 순차적인 메모리 억세스 기반의 DMA 제어 과정과 동일하게 실행된다.
이 것에 의하여 DMA 전송이 시작된다(S11). DMA 전송이 이루어질 때 앞서 설명한 바와 같이 더블 버퍼링 방식을 기반으로 하여 메모리(42)의 데이터를 읽어가게 된다. 그러므로 각각 DMA 개시단계(FIRST), DMA 중간단계(MIDDLE), DMA 종료단계(END)의 3개 상태를 가지게 된다. 먼저, DMA 개시단계(FIRST)(S12)의 실행에 의해서 메모리(42)로부터 해당 데이터 블록의 억세스가 이루어진다. 다음 단계(S13)에서는 이와 같이 데이터 블록의 억세스가 이루어질 때 블록(BLOCK)의 마지막인지의 여부를 검색한다.
상기 검색단계(S13)에서 데이터 블록의 마지막이면 DMA 종료단계(S16)로 이행하고, 그렇지 않다면 다음의 DMA 중간단계(S14)로 이행한다. DMA 중간단계(S14)를 실행하여 메모리(42)의 나머지 남아있는 데이터 블록의 억세스를 실행한다. 그리고 다음 단계(S15)로 이행하여 데이터 블록의 마지막인지의 여부를 검색한다.
상기 검색단계(S15)에서 데이터 블록의 마지막이면 DMA 종료단계(S16)로 이행하고, 데이터 블록의 마지막이 아니라면 DMA 중간단계(S14)로 이행하여 나머지 남아있는 데이터 블록의 억세스를 계속한다.
이와 같이 더블 버퍼링을 기반으로 하여 메모리(42)를 억세스함에 있어서, 즉 상기 각각의 상태(FIRST, MIDDLE, END)에 대응하는 메모리 데이터의 DMA 처리를 수행하는 과정에서 파일 탐색기(FILE SEEKER)(44)를 호출하였는지의 여부를 검색한다(S21).
이 것은 앞서 설명한 바와 같이, 데이터 스트림의 중간에 헤더가 들어있는 OGG Vorbis와 같은 코덱(43)에 의한 메모리 억세스 시, 현재 순차적으로 메모리(42)를 억세스하는 중간에 비순차적인 메모리 억세스가 요구되는지의 여부를 판별하기 위한 과정이다.
상기 파일 탐색기(FILE SEEKER)(44)의 호출이 있는지를 판별하는 단계(S21)에서 파일 탐색기(FILE SEEKER)(44)가 호출되면, DMA 후처리기(46)는 상기 각각의 상태(FIRST, MIDDLE, END)에 적절한 종료 조건을 검사한 후 종료 절차를 밟고, 종료 절차가 완료된 후에 파일 탐색기(FILE SEEKER)(44)에 의해서 강제로 옮겨진 파일 포인터값이 지시하는 메모리 위치를 기준으로 새로운 DMA 전송을 실행한다(S22).
즉, 비순차적 접근 방식을 사용하는 코덱(43)이 DMA 전송 중에 파일 탐색기(FILE SEEKER)(44)를 이용해서 메모리(42)의 특정 부분을 억세스하고자 할 때, DMA 후처리기(46)가 현재 진행중인 DMA 전송을 정리하고, 옮겨진 파일 포인터 부분에서 다시 DMA를 재설정하여 진행하는 것이다.
지금까지 도5를 참조하여 설명한 바와 같이 본 발명의 DMA 처리방법에 의해서 순차적인 메모리 억세스는 물론, 비순차적인 메모리 억세스가 요구될 때 그 것에 대응하여 메모리 억세스를 차질없이 수행할 수 있게 되는 것이다.
정리하면, DMA 전송이 이루어지면 DMA 개시단계(FIRST)가 되고, 전송의 끝인 지를 판단하여, 더 전송할 것이 있으면 DMA 중간단계(MIDDLE)로 넘어가게 되며, 또한 각 상태(FIRST, MIDDLE, END)별로 전송의 끝인지를 판단하게 되고, 여기서 전송이 종료되면 DMA 종료단계(END)로 넘어가게 되는 일련의 DMA 과정이 기본적으로 실행되는 것이다.
만약, 이러한 DMA 수행 중에 코덱(43)에서 파일 탐색기(FILE SEEKER)(44)를 호출하게 되면, 메모리(42)의 데이터 억세스를 위한 파일 포인터의 값을 조정하게 되고, 이는 새로운 DMA 전송으로 조정해야 하는 것으로 인식 및 제어되는 것이다.
즉, 파일 탐색기(FILE SEEKER)(44)가 호출되면 각 상태(FIRST, MIDDLE, END)에서는 각 상태에 적절한 종료 조건을 검사하고 종료 절차를 완료한 후에는 상기 비순차적인 메모리 억세스를 위하여 새로 옮겨진 파일 포인터값을 기준으로 해당 메모리 위치로부터 새로운 DMA 전송을 유지하게 되는 것이다. 이렇게 함으로써, 조정된 파일 포인터를 기점으로 하는 더블 버퍼링을 유지할 수 있게 하는 것이다.
이러한 방식은 DMA의 크기가 작을 수록 효율적이게 되지만, 비순차적인 메모리 억세스가 너무 자주 발생하게 되면 오히려 효율이 떨어질 수 있다는 점을 상기한다.
그렇지만, 기존에 순차적으로 메모리 억세스가 이루어지는 코덱의 경우 뿐만 아니라, 비순차적으로 랜덤하게 메모리 억세스가 요구되는 시스템 동작 환경에도 적응적으로 대처할 수 있기 때문에, 비순차적으로 메모리 억세스가 필요한 경우에서도 DMA의 장점을 최대한 확보할 수 있는 기반을 제공할 수 있다.
본 발명은 DMA 구동 시, 비순차적 메모리 억세스에 대한 DMA 관리방법을 제공하였다. 이 것을 통하여 더블 버퍼링을 하면서 메모리의 값을 읽어가게 만드는 루틴에서 DMA를 쓸 수 있는 환경이 제공된다.
오디오 코덱을 예로 들면 MP3, AAC와 같이 헤더에서부터 스트림까지 순차적으로 읽어가는 방식을 채택하고 있는 코덱에서는 DMA를 순차적으로 접근해서 메모리 복사를 진행하면 되지만, OGG Vorbis와 같은 오디오 코덱에서는 헤더의 정보가 파일의 중간에 있기 때문에 파일 포인터를 이동하면서 읽어야 하는 경우가 발생한다. 따라서, 이 경우에 기존의 순차적으로 억세스하는 DMA가 아닌, 비순차적으로 억세스하는 DMA 방식을 사용해야 하고, 이러한 경우에 본 발명은 유용한 것이다.

Claims (3)

  1. 데이터/제어/어드레스 버스를 기반으로 하여 중앙처리장치와 DMA 제어기 및, 메모리, DMA 기반의 상기 메모리 억세스 수행이 요구되는 코덱 등의 장치를 포함하는 DMA 기반 메모리 억세스 시스템에 있어서,
    순차 및 비순차적인 직접 메모리 억세스 제어를 수행하는 DMA 전처리수단과, 메모리 억세스를 수행할 장치로부터 요구되는 비순차적인 메모리 억세스를 위하여 파일 포인터 값을 변경시켜 주는 파일 탐색수단(FILE SEEKER)과, 메모리 억세스를 수행할 장치로부터 비순차적인 메모리 억세스 요구가 있을 경우 현재 진행중인 DMA 전송을 정리하고 상기 파일 탐색수단에 의해서 변경된 포인터가 지시하는 부분부터 다시 DMA를 재설정하여 주는 DMA 후처리수단을 포함하여 구성된 것을 특징으로 하는 직접 메모리 억세스 제어장치.
  2. 제 1 항에 있어서, 상기 비순차적인 메모리 억세스는 OGG Vorbis와 같이 비순차적 메모리 억세스 방식을 사용하는 코덱에 대해서 이루어지는 것을 특징으로 하는 직접 메모리 억세스 제어장치.
  3. 데이터/제어/어드레스 버스를 기반으로 하여 중앙처리장치와 DMA 제어기 및, 메모리, DMA 기반의 상기 메모리 억세스 수행이 요구되는 코덱 등의 장치를 포함하는 DMA 기반 메모리 억세스 시스템에 있어서,
    DMA 기반의 메모리 억세스 시, 전송 각 상태(FIRST, MIDDLE, END)에 따른 DMA 전송을 실행함과 함께 파일 탐색기(FILE SEEKER) 호출 여부를 판별하는 단계; 상기 파일 탐색기가 호출된 경우 비순차적인 메모리 억세스가 요구된 것으로 인식하여 파일 탐색기의 포인터를 비순차적인 메모리 억세스를 위한 값으로 변경시켜 주고 현재의 각 상태에 대한 종료 절차를 실행하는 단계; 상기 종료 절차를 완료한 후 상기 변경된 파일 포인터 값을 기점으로 DMA 전송을 재개하는 단계; 를 포함하여 이루어지는 것을 특징으로 하는 직접 메모리 억세스 제어방법.
KR1020050005718A 2005-01-21 2005-01-21 직접 메모리 억세스 제어방법 및 그 장치 KR20060084949A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050005718A KR20060084949A (ko) 2005-01-21 2005-01-21 직접 메모리 억세스 제어방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050005718A KR20060084949A (ko) 2005-01-21 2005-01-21 직접 메모리 억세스 제어방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20060084949A true KR20060084949A (ko) 2006-07-26

Family

ID=37174814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050005718A KR20060084949A (ko) 2005-01-21 2005-01-21 직접 메모리 억세스 제어방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20060084949A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023243A (zh) * 2014-05-05 2014-09-03 北京君正集成电路股份有限公司 视频前处理方法和系统,视频后处理方法和系统
KR102238383B1 (ko) * 2019-10-30 2021-04-09 주식회사 엠투아이코퍼레이션 통신 최적화기능이 내장된 hmi

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023243A (zh) * 2014-05-05 2014-09-03 北京君正集成电路股份有限公司 视频前处理方法和系统,视频后处理方法和系统
KR102238383B1 (ko) * 2019-10-30 2021-04-09 주식회사 엠투아이코퍼레이션 통신 최적화기능이 내장된 hmi

Similar Documents

Publication Publication Date Title
US7680962B2 (en) Stream processor and information processing apparatus
KR100708266B1 (ko) 다이렉트 메모리 액세스 제어 방법, 다이렉트 메모리액세스 제어 장치, 정보 처리 시스템, 프로그램을 기록한컴퓨터 판독 가능한 기록 매체
JP5040050B2 (ja) 複数チャネルdmaコントローラおよびプロセッサシステム
CN114610472A (zh) 异构计算中多进程管理方法及计算设备
CN100365594C (zh) 信息处理控制系统
KR20060084949A (ko) 직접 메모리 억세스 제어방법 및 그 장치
US7870311B2 (en) Preemptive packet flow controller
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
JP2008090455A (ja) マルチプロセッサ信号処理装置
US20030182506A1 (en) Control method for data transfer control unit
JP2005258509A (ja) ストレージ装置
JP2007206924A (ja) 演算処理システム
JP4218034B2 (ja) データ通信システムおよびデータ通信方法、データ通信プログラム
JP2009205366A (ja) チャネル装置、情報処理システム、及びデータ転送方法
JP2003140946A (ja) 記憶装置
JP2009093225A (ja) ストレージ制御装置、方法及びプログラム並びにストレージ装置
JP6488962B2 (ja) キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
CN115794750B (zh) 异步i/o系统文件打开/关闭的控制方法、装置及设备
KR20030007851A (ko) 프로그래머블 컨트롤러
JP2003203486A (ja) 半導体記憶装置及びその制御方法
JP4551657B2 (ja) 電子回路におけるデータ転送方法、電子回路及び関連装置
US20190243341A1 (en) Program storage device and program storage system
JP2007087244A (ja) コプロセッサ及びコンピュータシステム
CN117743207A (zh) 一种prp链表处理方法、系统、设备及介质
JP2004046845A (ja) システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application