KR20210004047A - 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법 - Google Patents

메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법 Download PDF

Info

Publication number
KR20210004047A
KR20210004047A KR1020190079853A KR20190079853A KR20210004047A KR 20210004047 A KR20210004047 A KR 20210004047A KR 1020190079853 A KR1020190079853 A KR 1020190079853A KR 20190079853 A KR20190079853 A KR 20190079853A KR 20210004047 A KR20210004047 A KR 20210004047A
Authority
KR
South Korea
Prior art keywords
address
target
area indicated
control
source address
Prior art date
Application number
KR1020190079853A
Other languages
English (en)
Other versions
KR102280241B9 (ko
KR102280241B1 (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 KR1020190079853A priority Critical patent/KR102280241B1/ko
Publication of KR20210004047A publication Critical patent/KR20210004047A/ko
Application granted granted Critical
Publication of KR102280241B1 publication Critical patent/KR102280241B1/ko
Publication of KR102280241B9 publication Critical patent/KR102280241B9/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

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

Abstract

일 실시예에 따른 메모리 액세스 제어 장치는 제어부를 포함하고, 상기 제어부는 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행한다

Description

메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법 {SYSTEM FOR CONTROLLING MEMORY-ACCESS, APPARATUS FOR CONTROLLING MEMORY-ACCESS AND METHOD FOR CONTROLLING MEMORY-ACCESS USING THE SAME}
본 발명은 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법에 관한 것이다.
직접 메모리 액세스(direct memory-access, DMA)는 특정 하드웨어 하위 시스템이 중앙 처리 장치(Host)와 독립적으로 주 시스템 메모리 (RAM/DRAM)에 액세스 할 수 있게 해주는 컴퓨터 시스템의 기능이다. DMA가 없으면 프로그램된 입력/출력을 할 때 Host가 직접 읽기 또는 쓰기 작업을 하게 되어 Workload의 대부분을 점유함에 따라 다른 작업을 병렬적으로 수행할 수 없다. DMA를 사용하면 Host는 DMA를 사용하여 전송을 시작한 다음 전송이 진행되는 동안 다른 작업을 수행하고, 마지막으로 작업이 완료되어 DMA 컨트롤러에서 인터럽트를 Host에 전송하는 정보만 관리하면 된다. 이 기능은 Host가 데이터 전송 속도를 따라갈 수 없거나 Host가 비교적 느린 I/O 데이터 전송을 기다리는 동안 다른 작업을 수행해야 할 때 유용하다. 많은 하드웨어 시스템은 디스크 드라이브 컨트롤러, 그래픽 카드, 네트워크 카드 및 사운드 카드를 포함한 DMA를 사용한다. 최근 이슈가 되고 있는 AI accelerator의 경우도 마찬가지이다. DMA는 멀티 코어 프로세서에서 칩 내부 데이터 전송에도 사용된다. DMA가 있는 컴퓨터는 DMA가 없는 컴퓨터보다 훨씬 적은 Host 오버 헤드로 장치 간에 데이터를 전송할 수 있게 된다. 마찬가지로 멀티 코어 프로세서 내부의 처리 요소는 프로세서 시간을 차지하지 않고 로컬 메모리와 데이터를 주고받을 수 있으므로 계산 및 데이터 전송을 병렬로 진행할 수 있게 된다.
한국공개특허공보, 10-2018-0117377호 (2018.10.29.공개)
본 발명의 해결하고자 하는 과제는 전술한 DMA를 개선시키는 것을 포함할 수 있다. 예컨대 DMA에는 직접적 어드레스 접근 방식과 간접적 어드레스 접근 방식이 있고, 이 중 간접적 어드레스 방식에서는 소정의 어드레스에 대한 정보를 확보하는 시간이 deterministic하지 않다는 문제점이 있는데, 본 발명의 해결하고자 하는 과제는 이러한 문제점을 개선 내지 해결하는 것을 포함할 수 있다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급된 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 메모리 액세스 제어 장치는 제어부를 포함하며, 상기 제어부는 상기 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 상기 연산부로부터 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 상기 호스트 메모리부로부터 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행한다.
일 실시예에 따른 메모리 액세스 제어 방법은 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받는 단계와, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하는 단계와, 소정의 포인터 정보를 수신받는 단계와, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하는 단계와, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 단계를 포함한다.
일 실시예에 따른 메모리 액세스 제어 시스템은 연산부와, 호스트 메모리부와, 상기 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 상기 연산부로부터 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 상기 호스트 메모리부로부터 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행하는 제어부를 포함한다.
일 실시예에 따르면 초반에는 연산부로부터 수신받은 분산/수집 정보에 기초해서 직접적 어드레스 방식에 따라 DMA가 수행되고, 그 이후부터는 호스트 메모리부로부터 획득된 포인터 정보에 기초해서 주소를 획득한 뒤 이에 기초해서 간접적 어드레스 방식에 따라 DMA가 수행된다. 즉, 초반에는 연산부로부터 수신받은 어드레스를 즉시 이용해서 데이터의 이동이 수행될 수 있게 되며, 따라서 간접적 어드레스 방식에서 어드레스의 획득(fetching)에 소요되는 시간만큼이 일 실시예에서는 소요되지 않게 되므로, 그만큼 메모리 접근 제어 시스템의 성능이 향상될 수 있다.
도 1은 일 실시예에 메모리 액세스 제어 시스템에 대한 개략적인 구성도이다.
도 2는 일 실시예에 따라 메모리 액세스 제어 장치가 연산부로부터 수신받는 분산/수집 정보에 대한 예시이다.
도 3은 일 실시예에 따른 메모리 액세스 제어 시스템에서의 데이터 내지 정보 흐름에 대한 개략적인 개념도이다.
도 4는 일 실시예에 따른 메모리 액세스 제어 시스템에서 수행 가능한 절차에 대한 개략적인 순서도이다.
도 5는 일 실시예에 따른 메모리 액세스 제어 시스템에서 각 채널 별로 데이터가 처리되는 과정에서의 타이밍을 나타내는 개략적인 타이밍도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시예에 메모리 액세스 제어 시스템(1000) 및 타겟 메모리부(2000)에 대한 개략적인 구성도이다. 도 1을 참조하면, 메모리 액세스 제어 시스템(1000)은 메모리 액세스 제어 장치(100), 호스트 메모리부(200) 및 연산부(300)를 포함한다. 아울러, 도 1에는 도시되지 않았지만 메모리 액세스 제어 장치(100)는 제어부를 포함한다. 다만, 도 1에 도시된 구성도는 예시적인 것에 불과하므로, 메모리 액세스 제어 시스템(1000)은 도 1에 도시된 구성 중 적어도 하나를 포함하지 않거나 또는 도 1에 도시되지 않은 구성을 추가로 포함할 수 있다.
먼저, 타겟 메모리부(2000)는 데이터를 저장하는 메모리 등에 의해 구현될 수 있다. 이러한 타겟 메모리부(2000)는 메모리 액세스 제어 시스템(1000)과는 별개의 타겟 장치에 구현될 수 있다. 또는 도 1에 도시된 것과는 상이하게 타겟 메모리부(2000)는 메모리 액세스 제어 시스템(1000) 내부에 구현될 수도 있다.
다음으로, 호스트 메모리부(200)는 데이터를 저장하는 메모리 등에 의해 구현될 수 있다. 이러한 호스트 메모리부(200)에는 다양한 종류의 정보가 저장될 수 있다. 예컨대 호스트 메모리부(200)에는 이동/복사의 대상인 일반적인 데이터가 저장될 수 있다. 또한, 호스트 메모리부(200)에는 DMA 중 간접적 어드레스 접근 방식에서 이용되는 분산/수집 정보가 저장될 수도 있다.
이러한 분산/수집 정보는 호스트 메모리부(200)의 영역 중의 일부를 가리키는 포인터를 포함할 수 있다. 아울러, 이러한 포인터가 가리키는 호스트 메모리부(200)의 주소에는, 호스트 메모리부(200)에서 데이터가 저장된 소스 주소, 타겟 메모리부(2000)에서 데이터가 쓰여져야할 타겟 주소 및 호스트 메모리부(200)로부터 읽어들여져야할 데이터의 용량 정보 중 적어도 하나가 기록되어 있을 수 있으며, 다만 이에 한정되는 것은 아니다.
연산부(300)는 호스트 또는 중앙 처리 장치라고도 지칭되는데, 메모리 액세스 제어 시스템(1000)에 대한 전반적인 동작을 관리 내지 제어하는 구성이다. 이러한 연산부(300)는 다양한 기능을 수행하도록 프로그램된 명령어를 저장하는 메모리 및 이러한 명령어를 실행하는 마이크로프로세서에 의해 구현 가능하다.
메모리 액세스 제어 장치(100)는 DMA, 즉 직접 메모리 액세스를 관리 내지 제어하는 구성이다. 이러한 메모리 액세스 제어 장치(100)는 이하에서 설명될 다양한 기능을 수행하도록 프로그램된 제어부를 포함할 수 있다.
보다 구체적으로 살펴보면, 메모리 액세스 제어 장치(100)는 제어부를 통해서 제1 제어와 제2 제어를 수행한다.
이 중, 제1 제어는 호스트 메모리부(200)에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부(2000)에서의 타겟 주소 중 제1 타겟 주소를 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 동작을 포함할 수 있다. 이 때, 제1 소스 주소와 제1 타겟 주소는 연산부(300)로부터 수신받은 것일 수 있다. 아울러, 제1 소스 주소 및 제1 타겟 주소와 함께, 이동되어야 할 데이터의 용량 정보가 연산부(300)로부터 수신될 수도 있다. 이 때 이동되어야 할 데이터란, 데이터의 이동 상황에서 상대적으로 먼저 이동해야되는 것으로 기 지정된 데이터일 수 있으며, 예컨대 각각의 데이터에 이동 순서가 부여되어 있을 때 그 순번이 가장 빠른 것부터 순차적으로 소정 개수 또는 소정 용량만큼의 데이터까지로 지정될 수 있다. 도 2에는 전술한 제1 소스 주소와 제1 타겟 주소 및 용량 정보가 예시적으로 도시되어 있다.
즉, 제1 제어에 의해서는 연산부(300)로부터 수신받은 제1 소스 주소, 제1 타겟 주소 및 용량 정보에 의해 데이터의 이동이 수행되는데, 이는 DMA 중 직접적 어드레스 방식에 해당된다.
여기서, 제1 소스 주소, 제1 타겟 주소 및 용량 정보는 각각 상기 제1 제어와 관련된 정보인데, 이러한 정보는 호스트 메모리부(200)에 저장되어 있는 전술한 분산/수집 정보를 연산부(300)가 로딩한 뒤 이들을 이용해서 변형 생성한 것일 수 있다. 예컨대, 연산부(300)는 호스트 메모리부(200)에 저장되어 있는 분산/수집 정보 중 상대적으로 초기에 이동되어야 할 정보를 일정 용량만큼 지정한 뒤, 이렇게 지정된 정보를 대상으로 제1 소스 주소, 제1 타겟 주소 및 용량 정보를 변형 생성할 수 있다. 여기서 일정 용량은 시스템의 성능 등에 따라 정해진 것일 수 있다.
한편, 제2 제어는 소정의 포인터 정보를 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득(fetching)하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 동작을 포함할 수 있다. 이 때, 포인터 정보는 호스트 메모리부(200)로부터 수신받은 것일 수 있다. 아울러, 제2 소스 주소와 제2 타겟 주소는 포인터 정보가 가리키는 호스트 메모리부(200)의 영역으로부터 획득된 것일 수 있다.
즉, 제2 제어에 의해서는 호스트 메모리부(200)로부터 수신받은 포인터 정보에 기초해서 데이터의 이동이 수행되는데, 이는 DMA 중 간접적 어드레스 방식에 해당된다.
도 3은 메모리 액세스 제어 장치(100)가 이러한 제어부를 통해서 전술한 제1 제어와 제2 제어를 수행하는 것을 개념적으로 도시하고 있다. 여기서, 도 3은 예시적인 것에 불과하므로, 본 발명의 사상이 도 3에 도시된 것으로 한정해석되는 것은 아니다.
도 3을 참조하면, 연산부(300)는 메모리 액세스 제어 장치(100)에게 호스트 메모리부(200)에 저장된 데이터 중 적어도 일부를 타겟 메모리부(2000)에게 이동 내지 전송하라는 명령을 전달한다(S10).
이 때, 일 실시예에 따르면, 이러한 명령과 함께 분산/수집 정보가 연산부(300)로부터 메모리 액세스 제어 장치(100)에게 전달될 수 있다. S10에서 전달되는 분산/수집 정보에는 제1 소스 주소, 제1 타겟 주소 및 용량 정보가 포함될 수 있다.
그러면 메모리 액세스 제어 장치(100)의 제어부는, 전술한 분산/수집 정보를 기초로 호스트 메모리부(200)로부터 데이터를 획득한 뒤, 획득된 데이터를 타겟 메모리부(2000)에게 이동시키는 제1 제어를 수행한다(S20,S30). 이 때, 이동되는 데이터에는 제1 소스 주소가 가리키는 영역에 저장된 데이터부터 상기 용량 정보만큼의 데이터가 포함될 수 있다. 즉, 제1 제어는 DMA 중 직접적 어드레스 방식에 해당된다.
다음으로, 메모리 액세스 제어 장치(100)의 제어부는, 호스트 메모리부(200)로부터 분산/수집 정보(210)를 수신받은 뒤(S20), 이러한 분산/수집 정보(210)에 포함된 포인터 정보가 가리키는 영역으로부터 제2 소스 주소와, 제2 타겟 주소를 획득(fetching)하고, 제2 소스 주소가 가리키는 영역에 저장된 데이터(220,230)를 제2 타겟 주소가 가리키는 영역(2020,2030)으로 이동시키는 제2 동작을 수행한다(S40,S50). 이 때, 이동되는 데이터에는 제2 소스 주소가 가리키는 영역에 저장된 데이터부터 상기 용량 정보만큼의 데이터가 포함될 수 있다. 즉, 제2 제어는 DMA 중 간접적 어드레스 방식에 해당된다.
한편, 전술한 제1 동작과 제2 동작은 메모리 액세스 제어 장치(100)에 마련된 복수 개의 채널 별로 수행될 수 있는데, 이에 대해서는 도 4를 참조하여서 살펴보기로 한다.
도 4는 일 실시예에 따른 메모리 액세스 제어 시스템(1000)에서의 데이터 내지 정보 흐름에 대한 개략적인 개념도이다. 다만, 도 4는 예시적인 것에 불과하므로, 본 발명의 사상이 도 4에 도시된 것으로 한정 해석되는 것은 아니다
도 4를 참조하기에 앞서, 연산부(300)는 분산/수집 정보를 생성한다(S100). 이러한 분산/수집 정보는 호스트 메모리부(200)로부터 획득되어서 생성된 것일 수 있으나 이에 한정되는 것은 아니다. 아울러, 이와 같이 생성된 분산/수집 정보는 액세스 제어 장치(100)에 마련된 복수 개의 채널 별로 생성될 수 있다.
여기서 '채널'이란 데이터의 전송에 이용되는, 논리적 또는 물리적으로 서로 구분 가능한 통로를 지칭한다.
다음으로, 연산부(300)는 복수 개의 채널 별로 명령(command)를 생성한다(S110). 이러한 명령은 호스트 메모리부(200)에 저장된 데이터 중 적어도 일부를 타겟 메모리부(2000)에게 이동시키라는 동작을 포함할 수 있다.
이 후, 연산부(300)로부터 메모리 액세스 제어 장치(100)에게 S100에서 생성된 분산/수집 정보와 S110에서 생성된 명령이 채널 별로 전송된다(S120).
그러면, 메모리 액세스 제어 장치(100)는 제어부를 통해서 DMA를 시작한다(S200).
구체적으로 살펴보면, 데이터를 이동/복사시키는 동작(S210)은 S120에서 수신받은 정보를 토대로 수행된다. 이 후에는 추가 명령이 필요한지를 판단하는 동작(S220), 만약 추가 명령이 필요하다고 판단되면 새로운 새로운 명령을 로딩해서(S230) 이러한 새로운 명령이 동작되도록 하고 그렇지 않은 경우에는 S240으로 이동하는 동작이, 복수 개의 채널 별로 수행된다.
여기서, S230에 따른 동작은 DMA 중 간접적 어드레스 방식에 사용되는 것과 동일한 방식에 따라 수행될 수 있다. 예컨대 기본적인 High-bandwidth를 사용하는 고성능 유저 Logic인 경우 멀티 형태의 outstanding request들로 구성이 되어 있는데, 이러한 경우 동작 중간의 몇 개의 어드레스 fetch(즉, 추가 명령 로딩)는 다른 request들에 가려질 수 가 있다.
만약 S220에서 복수 개의 채널 전체에서 추가 명령이 필요하지 않다고 판단되면, 메모리 액세스 제어 장치(100)의 제어부는 인터럽트를 생성한다(S240).
S240에서 생성된 인터럽트는 연산부(300)에게 전송되고(S250), 연산부(300)는 DMA job을 정리한다(S300).
이상에서 살펴본 바와 같이, 일 실시예에 따르면 초반에는 연산부로부터 수신받은 분산/수집 정보에 기초해서 직접적 어드레스 방식에 따라 DMA가 수행되고, 그 이후부터는 호스트 메모리부로부터 획득된 포인터 정보에 기초해서 주소를 획득한 뒤 이에 기초해서 간접적 어드레스 방식에 따라 DMA가 수행된다. 즉, 초반에는 연산부로부터 수신받은 어드레스를 즉시 이용해서 데이터의 이동이 수행될 수 있게 되며, 따라서 간접적 어드레스 방식에서 어드레스의 획득(fetching)에 소요되는 시간만큼이 일 실시예에서는 소요되지 않게 되므로, 그만큼 메모리 접근 제어 시스템의 성능이 향상될 수 있다.
도 5는 이러한 일 실시예에 따란 메모리 접근 제어 시스템(1000)에서의 성능 향상을 예시적으로 도시하고 있다. 도 5를 참조하면, 메모리 접근 제어 시스템(1000)에서는 초기에 어드레스 획득(fetching)에 시간이 소요되지 않음을 알 수 있다. 뿐만 아니라, 복수 개의 채널 각각에서 DMA 동작이 수행되는 시점 또한 통일될 수 있다. 아울러, 한번의 DMA 세팅으로서 여러 채널의 동작 형태가 버스트(burst) 형태로 지원될 수 있다. 따라서, 값비싼 하드웨어의 활용도를 극대화하고 자원의 낭비가 억제됨으로써, 전체 시스템의 성능이 향상될 수 있다.
한편, 일 실시예에 따른 메모리 액세스 제어 방법은 전술한 메모리 액세스 제어 장치(100)에 의해 수행될 수 있는데, 이러한 제어 방법은 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받는 단계와, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하는 단계와, 소정의 포인터 정보를 수신받는 단계와, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하는 단계와, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 단계를 포함하여 수행될 수 있다.
또한, 아울러, 제어 방법에 대해서는 전술한 메모리 액세스 제어 장치(100)에 대한 사항이 원용될 수 있는 바, 중복된 부분에 대한 설명은 생략하기로 한다.
또한, 전술한 제어 방법의 경우 전술한 관리 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램의 형태 또는 이러한 방법의 각 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체의 형태로 구현 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
일 실시예에 따르면 초반에는 연산부로부터 수신받은 분산/수집 정보에 기초해서 직접적 어드레스 방식에 따라 DMA가 수행되고, 그 이후부터는 호스트 메모리부로부터 획득된 포인터 정보에 기초해서 주소를 획득한 뒤 이에 기초해서 간접적 어드레스 방식에 따라 DMA가 수행된다. 즉, 초반에는 연산부로부터 수신받은 어드레스를 즉시 이용해서 데이터의 이동이 수행될 수 있게 되며, 따라서 간접적 어드레스 방식에서 어드레스의 획득(fetching)에 소요되는 시간만큼이 일 실시예에서는 소요되지 않게 되므로, 그만큼 메모리 접근 제어 시스템의 성능이 향상될 수 있다.
1000 : 연산 가속 장치

Claims (11)

  1. 제어부를 포함하는 메모리 액세스 제어 장치로서,
    상기 제어부는,
    호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고,
    소정의 포인터 정보를 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행하는
    메모리 액세스 제어 장치.
  2. 제 1 항에 있어서,
    상기 제어부는,
    상기 제1 소스 주소로부터 읽어들여야 할 데이터의 용량 정보를 추가로 수신받고, 상기 제1 제어를 통해서 상기 용량 정보만큼의 데이터를 이동시키는
    메모리 액세스 제어 장치.
  3. 제 1 항에 있어서,
    상기 제어부는,
    상기 포인터 정보가 가리키는 영역으로부터 상기 제2 소스 주소로부터 읽어들여야 할 데이터의 용량 정보를 추가로 수신받고, 상기 제2 제어를 통해서 상기 용량 정보만큼의 데이터를 이동시키는
    메모리 액세스 제어 장치.
  4. 제 1 항에 있어서,
    상기 제1 소스 주소 및 상기 제1 타겟 주소는 연산부로부터 수신받은 것이고,
    상기 포인터 정보는 상기 호스트 메모리로부터 수신받은 것인
    메모리 액세스 제어 장치.
  5. 제 1 항에 있어서,
    상기 메모리 액세스 제어 장치에는 상기 제1 제어와 상기 제2 제어가 수행되는 복수 개의 채널이 마련되되,
    상기 복수 개의 채널 각각에서 상기 제1 제어가 수행되는 시점은 서로 동일한
    메모리 액세스 제어 장치.
  6. 제 1 항에 있어서,
    상기 제어부는,
    상기 제1 제어를 수행한 뒤에 상기 제2 제어를 수행하는
    메모리 액세스 제어 장치.
  7. 제 1 항에 있어서,
    상기 제1 소스 주소 및 상기 제1 타겟 주소는,
    상대적으로 먼저 이동되어야 하는 소정 용량의 데이터에 대한 정보가, 상기 호스트 메모리부에 저장된 분산/수집 정보로부터 추출된 것에 기초해서 생성된 것이고,
    상기 제2 제어는,
    상기 제1 제어에 따라 상기 제1 소스 주소가 가리키는 영역으로부터 상기 제1 타겟 주소가 가리키는 영역으로 상기 용량의 데이터가 이동된 뒤에 수행되는
    메모리 액세스 제어 장치.
  8. 메모리 액세스 제어 장치의 제어부가 수행하는 메모리 액세스 제어 방법으로서,
    호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받는 단계와,
    상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하는 단계와,
    소정의 포인터 정보를 수신받는 단계와,
    상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하는 단계와,
    상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 단계를 포함하는
    메모리 액세스 제어 방법.
  9. 제 8 항에 따른 제어 방법에 포함된 각 단계를 포함하여 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체.
  10. 제 8 항에 따른 제어 방법에 포함된 각 단계를 포함하여 수행하도록 프로그램된 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.
  11. 연산부와,
    호스트 메모리부와,
    상기 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 상기 연산부로부터 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 상기 호스트 메모리부로부터 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행하는 제어부를 포함하는
    메모리 액세스 제어 시스템.
KR1020190079853A 2019-07-03 2019-07-03 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법 KR102280241B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190079853A KR102280241B1 (ko) 2019-07-03 2019-07-03 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190079853A KR102280241B1 (ko) 2019-07-03 2019-07-03 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법

Publications (3)

Publication Number Publication Date
KR20210004047A true KR20210004047A (ko) 2021-01-13
KR102280241B1 KR102280241B1 (ko) 2021-07-21
KR102280241B9 KR102280241B9 (ko) 2021-10-27

Family

ID=74142777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190079853A KR102280241B1 (ko) 2019-07-03 2019-07-03 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법

Country Status (1)

Country Link
KR (1) KR102280241B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000505215A (ja) * 1995-09-27 2000-04-25 メモリー・コーポレーシヨン・ピー・エル・シー メモリ管理
KR20080050237A (ko) * 2006-12-01 2008-06-05 한국전자통신연구원 직접 메모리 접근 제어 방법 및 장치
KR20100060375A (ko) * 2008-11-27 2010-06-07 한국과학기술원 직접 메모리 접근 장치 및 직접 메모리 접근 방법
KR101018080B1 (ko) * 2009-11-26 2011-03-02 주식회사 케피코 디엠에이를 사용한 임베디드 시스템의 메모리 데이터 수집 방법
KR20180117377A (ko) 2017-04-19 2018-10-29 한국전자통신연구원 분산 파일시스템 환경에서 사용자 수준 dma i/o를 지원하는 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000505215A (ja) * 1995-09-27 2000-04-25 メモリー・コーポレーシヨン・ピー・エル・シー メモリ管理
KR20080050237A (ko) * 2006-12-01 2008-06-05 한국전자통신연구원 직접 메모리 접근 제어 방법 및 장치
KR20100060375A (ko) * 2008-11-27 2010-06-07 한국과학기술원 직접 메모리 접근 장치 및 직접 메모리 접근 방법
KR101018080B1 (ko) * 2009-11-26 2011-03-02 주식회사 케피코 디엠에이를 사용한 임베디드 시스템의 메모리 데이터 수집 방법
KR20180117377A (ko) 2017-04-19 2018-10-29 한국전자통신연구원 분산 파일시스템 환경에서 사용자 수준 dma i/o를 지원하는 시스템 및 그 방법

Also Published As

Publication number Publication date
KR102280241B9 (ko) 2021-10-27
KR102280241B1 (ko) 2021-07-21

Similar Documents

Publication Publication Date Title
US11334262B2 (en) On-chip atomic transaction engine
US9015451B2 (en) Processor including a cache and a scratch pad memory and memory control method thereof
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
EP1880277B1 (en) Command execution controlling apparatus, command execution instructing apparatus and command execution controlling method
US20060064518A1 (en) Method and system for managing cache injection in a multiprocessor system
US5201040A (en) Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
US20030177288A1 (en) Multiprocessor system
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
US20060206663A1 (en) Disk array device and shared memory device thereof, and control program and control method of disk array device
KR20130065957A (ko) 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR102579192B1 (ko) 데이터 처리방법과 장치 및 관련 제품
US20150268985A1 (en) Low Latency Data Delivery
US20090083496A1 (en) Method for Improved Performance With New Buffers on NUMA Systems
KR20210094629A (ko) 정보 처리 방법, 장치, 전자 디바이스 및 기록 매체
KR102280241B1 (ko) 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법
CN102736949B (zh) 改善对非连贯设备要执行的任务的调度
KR102334473B1 (ko) 적응형 딥러닝 가속 장치 및 방법
US7788448B2 (en) Sequencer cache and method for operating the same
US7650469B2 (en) Determining whether a non-running processor has access to an address space
KR101414453B1 (ko) 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US20170329731A1 (en) Method and apparatus for efficient and flexible direct memory access
JPH1185673A (ja) 共有バスの制御方法とその装置
JP4409561B2 (ja) イベント通知方法および情報処理装置ならびにプロセッサ
JPH0756800A (ja) メモリ領域の動的管理装置
JPH09146840A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction