KR100963140B1 - 직접 메모리 접근 장치 및 직접 메모리 접근 방법 - Google Patents

직접 메모리 접근 장치 및 직접 메모리 접근 방법 Download PDF

Info

Publication number
KR100963140B1
KR100963140B1 KR1020080118951A KR20080118951A KR100963140B1 KR 100963140 B1 KR100963140 B1 KR 100963140B1 KR 1020080118951 A KR1020080118951 A KR 1020080118951A KR 20080118951 A KR20080118951 A KR 20080118951A KR 100963140 B1 KR100963140 B1 KR 100963140B1
Authority
KR
South Korea
Prior art keywords
memory access
direct memory
unit
transmission
data
Prior art date
Application number
KR1020080118951A
Other languages
English (en)
Other versions
KR20100060375A (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 KR1020080118951A priority Critical patent/KR100963140B1/ko
Priority to US12/626,857 priority patent/US8069280B2/en
Publication of KR20100060375A publication Critical patent/KR20100060375A/ko
Application granted granted Critical
Publication of KR100963140B1 publication Critical patent/KR100963140B1/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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

Abstract

본 발명은 직접 메모리 접근 장치 및 직접 메모리 접근 방법에 관한 것이다.
본 발명에 따른 직접 메모리 접근 장치는, 메인 처리장치의 실행과는 별도로 메모리에 저장된 데이터를 전송하는 직접 메모리 접근 장치로서, 가변 블록 길이 및 가변 블록 간격의 전송 규칙을 한 단위의 메모리 전송 규칙으로 설정하는 가변 전송 규칙 맵부, 가변 전송 규칙 맵부에 의하여 설정된 한 단위의 메모리 전송 규칙을 이용하여 한 단위의 메모리에 대한 접근 동작시, 가변 블록 길이 및 가변 블록 간격의 데이터 열을 전송하는 직접 메모리 접근부, 가변 블록 길이 및 가변 블록 간격의 데이터 열을 전송하는데 필요한 한 단위의 메모리 전송 규칙을 가변 전송 규칙 맵 부로부터 읽어와서, 직접 메모리 접근부로 전달하는 인터페이스부를 포함한다.
직접 메모리 접근, 가변 전송 규칙, 가변 블록 길이, 가변 블록 간격

Description

직접 메모리 접근 장치 및 직접 메모리 접근 방법{DIRECT MEMORY ACCESS DEVICE AND DIRECT MEMORY ACCESS METHOD}
본 발명은 직접 메모리 접근 장치 및 직접 메모리 접근 방법에 관한 것이다.
직접 메모리 접근(DMA, Direct Memory Access) 장치는 프로세서와는 독립적으로 메모리에 저장된 데이터를 전송하는 장치로 일반적인 프로세서의 주변장치로 널리 사용되고 있다.
일반적으로, 직접 메모리 접근은 소스 어드레스, 목적 어드레스 및 길이 필드를 매개로 한번에 연속적인 어드레스를 가지고 분포하는 데이터 블록을 옮기는데 유용하게 사용되고 있다.
도 1은 종래기술에 따른 직접 메모리 접근 장치의 동작을 설명하기 위한 블록도이고, 도 2는 종래기술에 따른 메모리에 복잡하게 분포된 데이터 열의 전송에 따르는 동작을 설명하기 위한 블록도이다.
도 1에 도시된 바와 같이, 메인 처리장치(100)는 응용 프로그램에서 직접 메 모리 접근 장치(110)가 수행할 메모리(120)에서의 전송 규칙을 소스 어드레스(130), 목적 어드레스(140) 및 전송 길이(150) 필드를 통하여 규정하고, 이의 트리거 원을 설정하면(미도시), 특정 트리거 원이 발생하였을 때, 소스 어드레스에서 목적 어드레스로 전송을 메인 처리장치의 실행과는 독립적으로 수행한다.
일반적으로, 이러한 직접 메모리 전송은 연속한 메모리에 분포하는 데이터 열이나 일정한 길이와 일정한 간격을 가지고 분포하는 데이터 열의 전송에는 효과적이다.
그러나, 도 2에 도시된 바와 같이, 소스 메모리 공간(200) 및/또는 목적지 메모리 공간(210)에 비 균일 간격 및/또는 비 균일 길이를 가지고 메모리에 분포된 데이터 열을 전송하기 위해서는 한 번의 규칙 기술로 전송이 되지 못하고, 각 데이터 요소의 전송에 대한 복수의 전송 규칙을 일련 시키는 것을 요구하여 메인 프로세서의 잦은 처리개입을 필요로 한다. 또한, 잦은 인터럽션(interruption)을 일으키게 되어 직접 메모리 전송을 사용하는 효율성이 떨어지게 된다. 한편, 직접 메모리 접근 장치의 동작을 배제한 메인 처리장치에서의 처리를 고려하면, 상기와 같은 복잡한 규칙의 메모리 접근은 잦은 캐시 미스를 야기하게 되므로, 직접 메모리 접근 장치가 처리해주는 것이 유리하다. 따라서, 가변 길이 디코딩(variable length decoding), 해싱(hashing), OFDMA에서의 서브캐리어(subcarrier) 할당 등의 규칙성은 있으나, 단순 블록 전송으로 한번에 해결되지 않는 동작에는 가변 길이 및 간격의 데이터 열을 한 번의 설정으로 전송할 수 있는 직접 메모리 접근 장치에 의한 전송이 요구된다.
따라서, 상기와 같은 문제점을 해결하기 위하여, 본 발명은 복잡한 규칙을 가지고 메모리에 분포된 데이터 열을 한 번의 전송 규칙을 설정하는 것에 의하여, 메모리에 저장된 연속적인 데이터뿐 아니라, 가변 간격, 가변 길이를 가지는 시퀀스의 전송을 수행할 수 있는 직접 메모리 접근 장치 및 직접 메모리 접근 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 다양한 간격과 길이로 메모리에 분포된 데이터 열을 직접 메모리 접근을 통하여 전송할 수 있는 직접 메모리 접근 장치 및 직접 메모리 접근 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 메인 처리장치의 백그라운드에서 데이터 열을 전송할 경우에 발생하는 인터럽션(interruption)의 수와 잦은 설정 요구를 줄일 수 있는 직접 메모리 접근 장치 및 직접 메모리 접근 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 기존의 직접 메모리 접근부에서 수행하기 힘든 가변 블록 길이 및 가변 간격의 메모리를 가지는 복잡한 규칙의 메모리 접근을 가능하게 하여 메인 처리장치의 메모리 접근 싸이클의 부담을 효율적으로 줄일 수 있는 직접 메모리 접근 장치 및 직접 메모리 접근 방법을 제공하는 것을 목적으로 한다.
청구항 1에 관한 발명인 직접 메모리 접근 장치는, 메인 처리장치의 실행과는 별도로 메모리에 저장된 데이터를 전송하는 직접 메모리 접근 장치로서, 가변 블록 길이 및 가변 블록 간격의 전송 규칙을 한 단위의 메모리 전송 규칙으로 설정하는 가변 전송 규칙 맵부, 가변 전송 규칙 맵부에 의하여 설정된 한 단위의 메모리 전송 규칙을 이용하여 한 단위의 메모리에 대한 접근 동작시, 가변 블록 길이 및 가변 블록 간격의 데이터 열을 전송하는 직접 메모리 접근부, 가변 블록 길이 및 가변 블록 간격의 데이터 열을 전송하는데 필요한 한 단위의 메모리 전송 규칙을 가변 전송 규칙 맵 부로부터 읽어와서, 직접 메모리 접근부로 전달하는 인터페이스부를 포함한다.
청구항 2에 관한 발명인 직접 메모리 접근 장치는, 청구항 1에 관한 발명인 직접 메모리 접근 장치에 있어서, 가변 전송 규칙 맵부는, 메인 처리장치와 인터페이스부로부터 동시에 접근가능하고, 전송될 전송 기술자를 포함하는 전송 기술자 개수 필드, 최초 전송 기술자의 전송 위치를 나타내는 최초 전송 기술자 포인터 필드, 전송 기술자 개수 필드만큼의 단위 전송 기술자를 포함하는 전송기술자 배열 필드를 포함한다.
청구항 3에 관한 발명인 직접 메모리 접근 장치는, 청구항 2에 관한 발명인 직접 메모리 접근 장치에 있어서, 단위 전송 기술자는, 소스 데이터 주소 필드, 목적지 데이터 주소 필드, 소스 데이터 간격 필드, 목적지 데이터 간격 필드, 데이터 길이 필드를 포함한다.
청구항 4에 관한 발명인 직접 메모리 접근 장치는, 청구항 2 또는 청구항 3에 관한 발명인 직접 메모리 접근 장치에 있어서, 가변 전송 규칙 맵부의 필드는 메인 처리장치에 의하여 프로그래밍된다.
청구항 5에 관한 발명인 직접 메모리 접근 장치는, 청구항 1에 관한 발명인 직접 메모리 접근 장치에 있어서, 직접 메모리 접근부는, 소스 시작주소 레지스터, 목적 시작주소 레지스터, 소스 어드레스 발생부, 목적 어드레스 발생부, 전송길이 레지스터를 포함한다.
청구항 6에 관한 발명인 직접 메모리 접근 장치는, 청구항 1에 관한 발명인 직접 메모리 접근 장치에 있어서, 인터페이스부는, 전송 규칙 맵 및 기술자 파라메터 패치부, 전송기술자 카운트 레지스터, 데이터 요소 카운트 레지스터를 포함한다.
청구항 7에 관한 발명인 직접 메모리 접근 방법은, 청구항 1에 관한 발명인 직접 메모리 접근 장치를 이용한 직접 메모리 접근 방법이고, 직접 메모리 접근부의 동작방법은, 전송할 데이터 열의 시작 주소를 저장하는 제 1단계, 데이터 열이 저장될 메모리 위치의 시작 주소를 저장하는 제 2단계, 메모리 위치의 시작 주소가 저장된 레지스터에서 어드레스의 증가 단위 및 전송 길이를 입력받은 후, 실제 주소를 결정하여 데이터 열을 전송하는 제 3단계를 포함한다.
청구항 8에 관한 발명인 직접 메모리 접근 방법은, 청구항 1에 관한 발명인 직접 메모리 접근 장치를 이용한 직접 메모리 접근 방법이고, 인터페이스부의 동작방법은, 메인 처리장치에 의하여 전송 규칙 맵이 설정된 후, 그로부터 전송동작 명령을 수신하고, 가변 전송 규칙 맵부로부터 전송 기술자 개수 읽기 동작을 수행하여 전송 기술자 수 레지스터를 설정하는 제1 단계, 최초 전송 규칙 기술자의 위치 읽기를 수행하여 최초 전송 규칙 기술자의 위치를 파악하는 제2 단계, 직접 메모리 접근부의 전송 동작을 초기화하는 제3 단계, 최초 전송 규칙 기술자로부터 읽어온 소스 및 목적지 시작 주소 설정을 이용하여 직접 메모리 접근부의 소스 및 목적지 레지스터를 설정하는 제4 단계, 가변 전송 규칙 맵부로부터 읽어온 데이터 요소 수 레지스터를 설정하는 제5 단계, 최초 전송 규칙 기술자로부터 읽어온 파라메터들을 직접 메모리 접근부로 전송하고, 기 설정된 소스 및 목적지 레지스터 값에 해당 파라메터를 더한 후, 해당 데이터 열의 주소를 업데이트하여, 소스 데이터의 간격 및 목적지 데이터의 간격, 데이터의 길이를 설정하는 제6 단계, 데이터 요소 수에 대한 카운트 초과 여부를 판단하는 제7 단계, 데이터 요소 수에 대한 카운트 초과시 전송 기술자 개수에 대한 카운트 초과 여부를 판단하는 제 8단계를 포함한다.
청구항 9에 관한 발명인 직접 메모리 접근 방법은, 청구항 8에 관한 발명인 직접 메모리 접근 방법에 있어서, 제7 단계는, 데이터 요소 수에 대한 카운트 미초과시 데이터 요소 수만큼 소스 데이터의 간격 및 목적지 데이터의 간격, 데이터의 길이를 설정하는 동작을 반복한다.
청구항 10에 관한 발명인 직접 메모리 접근 방법은, 청구항 8에 관한 발명인 직접 메모리 접근 방법에 있어서, 제8 단계는, 전송 기술자 개수에 대한 카운트 초과시 인터페이스부의 동작을 종료하는 과정과, 전송 기술자 개수에 대한 카운트 미초과시 제1 단계를 통해 읽혀진 전송 기술자 개수만큼 다음 전송 기술자 위치 읽기를 수행한 후, 제3 단계 내지 제8 단계의 동작을 반복하는 과정을 포함한다.
상기한 바와 같이, 본 발명에 따른 직접 메모리 접근 장치 및 직접 메모리 접근 방법에 의하면, 복잡한 규칙을 가지고 메모리에 분포된 데이터 열을 한 번의 전송 규칙을 설정하는 것에 의하여, 메모리에 저장된 연속적인 데이터뿐 아니라, 가변 간격, 가변 길이를 가지는 시퀀스의 전송을 수행할 수 있다.
또한, 본 발명에 따르면, 다양한 간격과 길이로 메모리에 분포된 데이터 열을 직접 메모리 접근을 통하여 전송할 수 있다.
또한, 본 발명에 따르면, 메인 처리장치의 백그라운드에서 데이터 열을 전송할 경우에 발생하는 인터럽션(interruption)의 수와 잦은 설정 요구를 줄일 수 있다.
또한, 본 발명에 따르면, 기존의 직접 메모리 접근부에서 수행하기 힘든 가변 블록 길이 및 가변 간격의 메모리를 가지는 복잡한 규칙의 메모리 접근을 가능하게 하여 메인 처리장치의 메모리 접근 싸이클의 부담을 효율적으로 줄일 수 있다.
이상과 같은 본 발명에 대한 해결하고자 하는 과제, 과제 해결 수단, 효과 외의 구체적인 사항들은 다음에 기재할 실시예 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하 본 발명의 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다. 다만, 첨부된 도면은 본 발명의 내용을 보다 쉽게 개시하기 위하여 설명되는 것일 뿐, 본 발명의 범위가 첨부된 도면의 범위로 한정되는 것이 아님은 이 기술분야의 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
도 3은 본 발명의 일 실시예에 따른 직접 메모리 접근 장치의 구성을 설명하기 위한 블록도이고, 도 4는 본 발명의 일 실시예에 전송 규칙 맵의 구성을 설명하기 위한 블록도이며, 도 5는 본 발명의 일 실시예에 전송기술자 배열의 구성을 설명하기 위한 블록도이다.
도 3 내지 도 5에 도시된 바와 같이, 본 발명의 일 실시예에 직접 메모리 접근 장치는, 가변 전송 규칙 맵부(330), 직접 메모리 접근부(350), 인터페이스부(340)를 포함한다. 또한, 메인 처리장치(300), 데이터를 저장하는 메모리(320), 메모리(320)에 저장된 데이터의 전송, 어드레스 및 제어신호의 공급을 제어하는 메모리 컨트롤러(310)를 더 포함한다.
도 3에 도시된 본 발명의 실시 예는, 메인 처리장치가 직접 메모리 접근부(350)에 의한 데이터 전송의 필요가 있을 때, 전송 규칙 기술자를 포함하는 전송 규칙 맵을 설정하고, 인터페이스부(340)가 직접 메모리 접근부(350)에서 메모리 전송을 수행하는 데 필요한 파라메터 데이터를 전송 규칙 맵 부(330)에서 읽어서 전달하는 동작 구성을 구비한다. 한편, 직접 메모리 접근 장치를 구성하는 구성부의 설명은 도 8에서 상세히 설명하기로 한다.
도 4에 도시된 전송 규칙 맵은, 메인 처리장치와 인터페이스 부에서 동시 접근 가능한 레지스터 또는 메모리 공간이다. 또한, 본 발명의 실시예에 따른 전송 규칙 맵은, 전송기술자 개수 필드(400), 최초 전송기술자 포인터 필드(410) 및 전송기술자 배열(420)을 구비한다. 이중 전송 기술자 개수 필드(400)는 참조할 전송기술자의 전체 개수를 지시하는 데 사용되며, 최초 전송 기술자 포인터 필드(410)는 전송기술자 배열(420) 중 첫 번째 전송기술자의 위치를 나타내는 필드이다. 또한, 전송기술자 배열(420)은 전송 기술자 개수 필드(400)만큼의 전송기술자로 구성되어 있다. 한편, 전송 규칙 맵의 모든 필드는 도 3의 메인 처리장치(300)의 프로그램에 의해 설정되며, 설정된 필드를 인터페이스부(340)가 읽어서 참조한다.
도 5에 나타낸 전송 기술자 배열은, 직접 메모리 접근부가 수행할 한 단위의 데이터 열에 대한 전송 규칙을 정한다. 본 발명의 실시예에서의 전송기술자(500)는, 도 4에 도시된 전송 기술자 개수 필드(400) 수만큼 배열에 포함되어 있으며, 각 단위 전송 기술자(500) 내부에는 소스 데이터 주소 필드(510), 목적지 데이터 주소 필드(520), 데이터 요소 개수 필드(530), 다음 기술자 지시자(540) 및 데이터 요소 개수 필드(530)의 수만큼의 소스 데이터 간격 필드(550), 목적지 데이터 간격 필드(560), 데이터 길이 필드(570)가 반복된다. 한편, 전송 규칙 맵의 모든 필드는 도 3의 메인 처리장치(300)의 프로그램에 의해 설정되며, 설정된 모든 필드는 인터페이스부(340)가 읽어서 참조한다.
도 6은 본 발명의 일 실시예에 따른 인터페이스부의 동작방법의 순서를 설명하기 위한 순서도이고, 도 7은 본 발명의 일 실시예에 따른 직접 메모리 접근부의 동작방법의 순서를 설명하기 위한 순서도이며, 도 8은 메모리 콘트롤러, 직접 메모리 접근부, 인터페이스부 및 전송 규칙 기술자의 인터페이스 관계를 도시한 블록도이다.
도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인터페이스부의 동작방법은, 전송 기술자 수 읽기동작을 수행하는 제1 단계(S610), 최초 전송 규칙 기술자의 위치읽기를 수행하는 제2 단계(S620), 직접 메모리 접근부의 전송동작을 초기화하는 제3 단계(S630), 직접 메모리 접근부의 소스 및 목적지 시작 주소를 설정하는 제4 단계(S640), 데이터 요소 수를 설정하는 제5 단계(S650), 소스 데이터의 간격 및 목적지 데이터의 간격, 데이터의 길이를 설정하는 제6 단계(S660), 데이터 요소 수에 대한 카운트 초과 여부를 판단하는 제7 단계(S670), 전송 기술자 개수에 대한 카운트 초과 여부를 판단하는 제 8단계(S680)를 포함한다.
보다 구체적으로 설명하자면, 우선, 제1 단계(S610)는, 메인 처리장치에서 전송 규칙 맵 설정이 끝나고 전송 동작을 명령하면, 인터페이스부는 전송 규칙 맵에서 전송기술자 개수 읽기의 동작을 수행하고, 전송기술자 수 레지스터를 설정한다.
그런 다음, 제2 단계(S620)는, 전송 규칙 맵 인터페이스 장치는 최초 전송 규칙 기술자 위치 읽기 동작을 수행하여, 최초 전송 규칙 기술자의 위치를 파악한다.
그런 다음, 인터페이스부는 각 전송 규칙 기술자에 의한 전송동작이 제1 단계(S610)에서 읽어진 전송기술자 개수만큼 전송 규칙 기술자에 의한 전송동작(S630~S690)을 반복 제어한다. 즉, 제3 단계(S630)는, 전송 규칙 기술자에 의한 전송 제어의 첫 단계로서, 우선 직접 메모리 접근부의 전송 동작을 초기화시킨다.
그런 다음, 제4 단계(S640)는, 전송 규칙 기술자에서 읽어온 소스 및 목적지 시작 주소 설정동작을 인터페이스부의 제어 신호를 통해 수행하고, 직접 메모리 접근부 내부의 소스 및 목적지 레지스터를 설정한다.
그런 다음, 제5 단계(S650)는, 전송 규칙 맵에서 읽어온 데이터 요소 수를 설정하여, 데이터 요소 수 레지스터를 설정한다.
그런 다음, 제6 단계(S660)는, 소스 데이터 간격, 목적지 데이터 간격 및 데이터 길이 설정동작으로서, 전송 규칙 기술자에서 읽어온 당해 파라메터 들을 인터페이스부의 제어신호를 통하여 직접 메모리 접근부에 전송하고, 기 설정한 소스 및 목적지 레지스터의 값에 해당 간격 파라메터를 더한 후, 당해 데이터 열의 주소를 업데이트 하도록 하며, 이때 당해 데이터의 길이도 인터페이스부의 제어 신호를 통하여 설정한다.
그런 다음, 제7 단계(S670)는, 데이터 요소 카운트 초과 검사동작으로서, 제5 단계에서 설정된 데이터 요소 수만큼 소스 데이터 간격, 목적지 데이터 간격 및 데이터 길이 설정(S660)동작을 반복한다. 이 수만큼 진행이 끝나면 종료한다.
그런 다음, 제8 단계(S680)는, 제7 단계(S670)에서 데이터 요소 수에 대한 카운트 초과시에 수행되는 전송기술자 카운트 초과 검사단계로서, 제1 단계(S610) 에서 읽혀진 전송기술자 수만큼 다음 전송 기술자 위치 읽기(S690)동작을 포함한 제3 단계 내지 제8 단계(S630~S680)단계의 동작을 반복하며, 이 수만큼 진행이 끝나면 종료한다.
도 7 에 도시된 본 발명의 일 실시예에 따른 직접 메모리 접근부의 동작방법을 도 8의 본 발명의 일 실시예에 따른 메모리 콘트롤러(800), 직접 메모리 접근부(810), 인터페이스부(820) 및 전송 규칙 기술자(830)의 인터페이스 관계를 참조로 하여 설명하기로 한다.
직접 메모리 접근부(810)는 인터페이스부(820)로부터 전송 규칙 커맨드를 제어신호를 통하여 전송받는다. 전송받은 커맨드는 전송 규칙 커맨드 검사(S710)단계에서 초기화 명령인지, 업데이트 명령인지 구분을 한다.
초기화 명령이 전송된 경우, 지금까지 수행된 전송을 초기화(S720) 하고, 소스 시작 주소 레지스터 설정(S730) 및 목적지 시작 주소 레지스터 설정(S740) 동작을 차례로 수행한다. 소스 시작 주소 레지스터 설정(S730) 동작은 인터페이스부(820)가 전송 기술자(830)를 읽어서 제어 신호를 통하여 전송한 후, 소스 시작 주소 값(811a)으로 초기화를 수행한다. 목적지 시작 주소 레지스터 설정(S740) 동작은 인터페이스부(820)가 전송 기술자(830)를 읽어서 제어 신호를 통하여 전송한 후, 목적지 시작 주소 값(812a)으로 초기화를 수행한다. 다음 업데이트 명령을 대기한다.
업데이트 명령이 전송된 경우, 우선 소스 주소 업데이트 동작(750), 목적지 주소 업데이트 동작(S760), 전송길이 업데이트(S770) 및 메모리 전송 컨트롤(S780)을 순차적으로 수행한다. 소스 주소 레지스터 업데이트(S750)동작은, 소스 시작 주소 레지스터(811)에 저장된 값에 인터페이스부(820)가 전송 기술자(830)를 읽어서 보내온 소스 데이터 간격 값(813)을 더하여, 이번 전송에서의 소스 시작 주소 레지스터 값을 업데이트(813a) 한다. 목적지 주소 레지스터 업데이트(S760)동작은, 목적지 시작 주소 레지스터(812)에 저장된 값에 인터페이스부(820)가 전송 기술자(830)를 읽어서 보내온 목적지 데이터 간격 값(814)을 더하여, 이번 전송에서의 목적지 시작 주소 레지스터 값을 업데이트(814a)한다. 데이터 길이 레지스터 업데이트(S770)동작은, 데이터 길이 레지스터(815)를 인터페이스부(820)가 전송 기술자(830)를 읽어서 보내온 데이터 길이 값(815)으로 업데이트(815a)한다. 상술한 소스 주소 업데이트 동작(S750), 목적지 주소 업데이트 동작(S760), 전송길이 업데이트(S770)동작을 통하여, 업데이트된 레지스터 값을 토대로 직접 메모리 접근부(810)는 메모리 컨트롤러(800)에 당해 메모리 전송을 제어 신호(801)를 통하여 실행시키게 된다.
따라서, 상기와 같이 구성된 본 발명에 따른 직접 메모리 접근 장치 및 직접 메모리 접근 방법은, 복잡한 규칙을 가지고 메모리에 분포된 데이터 열을 한 번의 전송 규칙을 설정하는 것에 의하여, 메모리에 저장된 연속적인 데이터뿐 아니라, 가변 간격, 가변 길이를 가지는 시퀀스의 전송을 수행할 수 있고, 다양한 간격과 길이로 메모리에 분포된 데이터 열을 직접 메모리 접근을 통하여 전송할 수 있다. 또한, 메인 처리장치의 백그라운드에서 데이터 열을 전송할 경우에 발생하는 인터 럽션(interruption)의 수와 잦은 설정 요구를 줄일 수 있으며, 기존의 직접 메모리 접근부에서 수행하기 힘든 가변 블록 길이 및 가변 간격의 메모리를 가지는 복잡한 규칙의 메모리 접근을 가능하게 하여 메인 처리장치의 메모리 접근 싸이클의 부담을 효율적으로 줄일 수 있다.
이와 같이, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 종래기술에 따른 직접 메모리 접근 장치의 동작을 설명하기 위한 블록도.
도 2는 종래기술에 따른 메모리에 복잡하게 분포된 데이터 열의 전송에 따르는 동작을 설명하기 위한 블록도.
도 3은 본 발명의 일 실시예에 따른 직접 메모리 접근 장치의 구성을 설명하기 위한 블록도.
도 4는 본 발명의 일 실시예에 전송 규칙 맵의 구성을 설명하기 위한 블록도.
도 5는 본 발명의 일 실시예에 전송기술자 배열의 구성을 설명하기 위한 블록도.
도 6은 본 발명의 일 실시예에 따른 인터페이스부의 동작방법의 순서를 설명하기 위한 순서도.
도 7은 본 발명의 일 실시예에 따른 직접 메모리 접근부의 동작방법의 순서를 설명하기 위한 순서도.
도 8은 메모리 콘트롤러, 직접 메모리 접근부, 인터페이스부 및 전송 규칙 기술자의 인터페이스 관계를 도시한 블록도.

Claims (10)

  1. 메인 처리장치의 실행과는 별도로 메모리에 저장된 데이터를 전송하는 직접 메모리 접근 장치로서,
    가변 블록 길이 및 가변 블록 간격의 전송 규칙을 한 단위의 메모리 전송 규칙으로 설정하는 가변 전송 규칙 맵부;
    상기 가변 전송 규칙 맵부에 의하여 설정된 한 단위의 메모리 전송 규칙을 이용하여 한 단위의 메모리에 대한 접근 동작시, 상기 가변 블록 길이 및 상기 가변 블록 간격의 데이터 열을 전송하는 직접 메모리 접근부; 및
    상기 가변 블록 길이 및 상기 가변 블록 간격의 데이터 열을 전송하는데 필요한 상기 한 단위의 메모리 전송 규칙을 상기 가변 전송 규칙 맵 부로부터 읽어와서, 상기 직접 메모리 접근부로 전달하는 인터페이스부를 포함하는,
    직접 메모리 접근 장치.
  2. 제1항에 있어서,
    상기 가변 전송 규칙 맵부는, 상기 메인 처리장치와 상기 인터페이스부로부터 동시에 접근가능하고,
    전송될 전송 기술자를 포함하는 전송 기술자 개수 필드;
    최초 전송 기술자의 전송 위치를 나타내는 최초 전송 기술자 포인터 필드; 및
    상기 전송 기술자 개수 필드만큼의 단위 전송 기술자를 포함하는 전송기술자 배열 필드를 포함하는,
    직접 메모리 접근 장치.
  3. 제 2항에 있어서,
    상기 단위 전송 기술자는
    소스 데이터 주소 필드;
    목적지 데이터 주소 필드;
    소스 데이터 간격 필드;
    목적지 데이터 간격 필드; 및
    데이터 길이 필드를 포함하는,
    직접 메모리 접근 장치.
  4. 제2항 또는 제3항에 있어서,
    상기 가변 전송 규칙 맵부의 필드는 상기 메인 처리장치에 의하여 프로그래밍되는,
    직접 메모리 접근 장치.
  5. 제 1항에 있어서,
    상기 직접 메모리 접근부는,
    소스 시작주소 레지스터;
    목적 시작주소 레지스터;
    소스 어드레스 발생부;
    목적 어드레스 발생부; 및
    전송길이 레지스터를 포함하는,
    직접 메모리 접근 장치.
  6. 제1항에 있어서,
    상기 인터페이스부는,
    전송 규칙 맵 및 기술자 파라메터 패치부;
    전송기술자 카운트 레지스터; 및
    데이터 요소 카운트 레지스터를 포함하는,
    직접 메모리 접근 장치.
  7. 제1항에 의한 직접 메모리 접근 장치를 이용한 직접 메모리 접근 방법으로서,
    직접 메모리 접근부의 동작방법은,
    전송할 데이터 열의 시작 주소를 저장하는 제 1단계;
    상기 데이터 열이 저장될 메모리 위치의 시작 주소를 저장하는 제 2단계; 및
    상기 메모리 위치의 시작 주소가 저장된 레지스터에서 어드레스의 증가 단위 및 전송 길이를 입력받은 후, 실제 주소를 결정하여 상기 데이터 열을 전송하는 제 3단계를 포함하는,
    직접 메모리 접근 방법.
  8. 제1항에 의한 직접 메모리 접근 장치를 이용한 직접 메모리 접근 방법으로서,
    인터페이스부의 동작방법은,
    메인 처리장치에 의하여 전송 규칙 맵이 설정된 후, 그로부터 전송동작 명령을 수신하고, 상기 가변 전송 규칙 맵부로부터 전송 기술자 개수 읽기동작을 수행하는 제1 단계;
    최초 전송 규칙 기술자의 위치 읽기를 수행하는 제2 단계;
    직접 메모리 접근부의 전송 동작을 초기화하는 제3 단계;
    상기 최초 전송 규칙 기술자로부터 읽어온 소스 및 목적지 시작 주소 설정을 이용하여 상기 직접 메모리 접근부의 소스 및 목적지 레지스터를 설정하는 제4 단계;
    상기 가변 전송 규칙 맵부로부터 읽어온 데이터 요소 수 레지스터를 설정하는 제5 단계;
    상기 최초 전송 규칙 기술자로부터 읽어온 파라메터들을 상기 직접 메모리 접근부로 전송하고, 기 설정된 소스 및 목적지 레지스터 값에 해당 파라메터를 더한 후, 해당 데이터 열의 주소를 업데이트하여, 소스 데이터의 간격 및 목적지 데이터의 간격, 데이터의 길이를 설정하는 제6 단계;
    상기 데이터 요소 수에 대한 카운트 초과 여부를 판단하는 제7 단계; 및
    상기 데이터 요소 수에 대한 카운트 초과시 상기 전송 기술자 개수에 대한 카운트 초과 여부를 판단하는 제 8단계를 포함하는,
    직접 메모리 접근 방법.
  9. 제8항에 있어서,
    상기 제7 단계는, 상기 데이터 요소 수에 대한 카운트 미초과시 상기 데이터 요소 수만큼 상기 소스 데이터의 간격 및 상기 목적지 데이터의 간격, 데이터의 길이를 설정하는 동작을 반복하는,
    직접 메모리 접근 방법.
  10. 제8항에 있어서,
    상기 제8 단계는,
    상기 전송 기술자 개수에 대한 카운트 초과시 상기 인터페이스부의 동작을 종료하는 과정과, 상기 전송 기술자 개수에 대한 카운트 미초과시 상기 제1 단계를 통해 읽혀진 전송 기술자 개수만큼 다음 전송 기술자 위치 읽기를 수행한 후, 상기 제3 단계 내지 제8 단계의 동작을 반복하는 과정을 포함하는,
    직접 메모리 접근 방법.
KR1020080118951A 2008-11-27 2008-11-27 직접 메모리 접근 장치 및 직접 메모리 접근 방법 KR100963140B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080118951A KR100963140B1 (ko) 2008-11-27 2008-11-27 직접 메모리 접근 장치 및 직접 메모리 접근 방법
US12/626,857 US8069280B2 (en) 2008-11-27 2009-11-27 Direct memory access apparatus for sending data stored in memory separately from an operation of a main processor and direct memory access method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080118951A KR100963140B1 (ko) 2008-11-27 2008-11-27 직접 메모리 접근 장치 및 직접 메모리 접근 방법

Publications (2)

Publication Number Publication Date
KR20100060375A KR20100060375A (ko) 2010-06-07
KR100963140B1 true KR100963140B1 (ko) 2010-06-16

Family

ID=42197404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080118951A KR100963140B1 (ko) 2008-11-27 2008-11-27 직접 메모리 접근 장치 및 직접 메모리 접근 방법

Country Status (2)

Country Link
US (1) US8069280B2 (ko)
KR (1) KR100963140B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936508B2 (en) 2019-01-15 2021-03-02 SK Hynix Inc. Storage device and method of operating the same
US11139020B2 (en) 2018-12-19 2021-10-05 SK Hynix Inc. Memory controller and method of operating the same
US11288202B2 (en) 2019-02-15 2022-03-29 SK Hynix Inc. Memory controller and method of operating the same

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6397259B2 (ja) * 2014-08-08 2018-09-26 キヤノン株式会社 通信装置とその制御方法、及びプログラム
KR102280241B1 (ko) * 2019-07-03 2021-07-21 에스케이텔레콤 주식회사 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950014186B1 (ko) * 1993-12-15 1995-11-22 재단법인한국전자통신연구소 데이타 전송능력을 개선한 디.엠.에이(dma) 컨트롤러
KR0152979B1 (ko) * 1988-07-15 1998-11-16 가시오 가즈오 가변길이 데이터 처리장치
KR20000014522A (ko) * 1998-08-21 2000-03-15 윤종용 압축 기능을 갖는 직접 메모리 액세스 컨트롤러
KR100441996B1 (ko) 2001-09-19 2004-07-30 주식회사 팬택 직접 메모리 액세스 제어기 및 제어 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754732B1 (en) * 2001-08-03 2004-06-22 Intervoice Limited Partnership System and method for efficient data transfer management
JPWO2004079583A1 (ja) * 2003-03-05 2006-06-08 富士通株式会社 データ転送制御装置およびdmaデータ転送制御方法
DE102004046822A1 (de) * 2004-09-27 2006-03-30 Infineon Technologies Ag Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0152979B1 (ko) * 1988-07-15 1998-11-16 가시오 가즈오 가변길이 데이터 처리장치
KR950014186B1 (ko) * 1993-12-15 1995-11-22 재단법인한국전자통신연구소 데이타 전송능력을 개선한 디.엠.에이(dma) 컨트롤러
KR20000014522A (ko) * 1998-08-21 2000-03-15 윤종용 압축 기능을 갖는 직접 메모리 액세스 컨트롤러
KR100441996B1 (ko) 2001-09-19 2004-07-30 주식회사 팬택 직접 메모리 액세스 제어기 및 제어 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11139020B2 (en) 2018-12-19 2021-10-05 SK Hynix Inc. Memory controller and method of operating the same
US10936508B2 (en) 2019-01-15 2021-03-02 SK Hynix Inc. Storage device and method of operating the same
US11288202B2 (en) 2019-02-15 2022-03-29 SK Hynix Inc. Memory controller and method of operating the same

Also Published As

Publication number Publication date
US8069280B2 (en) 2011-11-29
US20100131678A1 (en) 2010-05-27
KR20100060375A (ko) 2010-06-07

Similar Documents

Publication Publication Date Title
KR100998929B1 (ko) 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법
KR100963140B1 (ko) 직접 메모리 접근 장치 및 직접 메모리 접근 방법
US9934160B1 (en) Bit-mapped DMA and IOC transfer with dependency table comprising plurality of index fields in the cache for DMA transfer
KR20160053942A (ko) 임베디드 메모리들에서의 커맨드 큐잉의 제공
US9971524B1 (en) Scatter-gather approach for parallel data transfer in a mass storage system
US9164936B2 (en) System and method for regulating direct memory access descriptor among multiple execution paths by using a link to define order of executions
JP2016520905A (ja) ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ
JP6998991B2 (ja) 情報処理用方法及び装置
US11199992B2 (en) Automatic host buffer pointer pattern detection
US11803490B2 (en) Apparatus and method for data transmission and readable storage medium
JP2006338538A (ja) ストリームプロセッサ
KR101112666B1 (ko) 디스크립터 전송 장치, i/o 컨트롤러, 및 디스크립터 전송 방법
US20160011969A1 (en) Method for accessing data in solid state disk
JP2006209778A (ja) ダイレクトメモリアクセスの実現方法および装置、ダイレクトメモリアクセスコンピュータシステム
TW201640487A (zh) 用於降低顯示雜訊之顯示控制器及包括此顯示控制器之系統
US8386725B2 (en) USB host controller and controlling method for USB host controller
KR20060017816A (ko) 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치
KR102645983B1 (ko) 오픈 채널 벡터 커맨드 실행
JP5651622B2 (ja) データ伝送装置、データ伝送方法、及びプログラム
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
JP2010198138A (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
US10489318B1 (en) Scatter-gather approach for parallel data transfer in a mass storage system
JP2011059110A (ja) 試験装置および試験方法
JP2011081695A (ja) データ演算装置の制御回路及びデータ演算装置
TWI416336B (zh) 可共享緩衝器的網路介面卡與緩衝器共享方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140521

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150526

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180525

Year of fee payment: 9