KR102280241B1 - System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same - Google Patents
System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same Download PDFInfo
- Publication number
- KR102280241B1 KR102280241B1 KR1020190079853A KR20190079853A KR102280241B1 KR 102280241 B1 KR102280241 B1 KR 102280241B1 KR 1020190079853 A KR1020190079853 A KR 1020190079853A KR 20190079853 A KR20190079853 A KR 20190079853A KR 102280241 B1 KR102280241 B1 KR 102280241B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- target
- area indicated
- control
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Abstract
일 실시예에 따른 메모리 액세스 제어 장치는 제어부를 포함하고, 상기 제어부는 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행한다An apparatus for controlling memory access according to an embodiment includes a control unit, wherein the control unit receives a first source address among source addresses in a host memory unit and a first target address among target addresses in a target memory unit, The first control is performed for moving data stored in the area indicated by the source address to the area indicated by the first target address, receiving predetermined pointer information, and receiving a second source address among the source addresses from the area indicated by the pointer information and obtaining a second target address among the target addresses, and performing a second control of moving data stored in the area indicated by the second source address to the area indicated by the second target address.
Description
본 발명은 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법에 관한 것이다.The present invention relates to a memory access control system, a memory access control apparatus, and a memory access control method 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 오버 헤드로 장치 간에 데이터를 전송할 수 있게 된다. 마찬가지로 멀티 코어 프로세서 내부의 처리 요소는 프로세서 시간을 차지하지 않고 로컬 메모리와 데이터를 주고받을 수 있으므로 계산 및 데이터 전송을 병렬로 진행할 수 있게 된다.Direct memory-access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory (RAM/DRAM) independently of the central processing unit (Host). Without DMA, the host directly reads or writes when performing programmed input/output, and as it occupies most of the workload, other tasks cannot be performed in parallel. With DMA, the host only needs to manage the information that uses DMA to initiate a transfer, then perform other tasks while the transfer is in progress, and finally the DMA controller sends an interrupt to the host when the task is complete. This feature is useful when the host cannot keep up with the data transfer rate, or when the host needs to do something else while waiting for a relatively slow I/O data transfer. Many hardware systems use DMA, including disk drive controllers, graphics cards, network cards, and sound cards. The same is true of the AI accelerator, which has been a hot topic recently. DMA is also used for intra-chip data transfer in multi-core processors. A computer with DMA will be able to transfer data between devices with much less host overhead than a computer without DMA. Similarly, processing elements inside a multi-core processor can send and receive data to and from local memory without occupying processor time, allowing calculation and data transfer to proceed in parallel.
본 발명의 해결하고자 하는 과제는 전술한 DMA를 개선시키는 것을 포함할 수 있다. 예컨대 DMA에는 직접적 어드레스 접근 방식과 간접적 어드레스 접근 방식이 있고, 이 중 간접적 어드레스 방식에서는 소정의 어드레스에 대한 정보를 확보하는 시간이 deterministic하지 않다는 문제점이 있는데, 본 발명의 해결하고자 하는 과제는 이러한 문제점을 개선 내지 해결하는 것을 포함할 수 있다.The problem to be solved by the present invention may include improving the above-described DMA. For example, in DMA, there are a direct address access method and an indirect address access method. Among them, the indirect address method has a problem that the time to secure information about a predetermined address is not deterministic. The problem to be solved by the present invention is to solve this problem. It may include improving or resolving.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급된 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problems to be solved of the present invention are not limited to those mentioned above, and other problems to be solved that are not mentioned can be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. will be.
일 실시예에 따른 메모리 액세스 제어 장치는 제어부를 포함하며, 상기 제어부는 상기 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 상기 연산부로부터 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 상기 호스트 메모리부로부터 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행한다.The apparatus for controlling memory access according to an embodiment includes a control unit, wherein the control unit receives a first source address among the source addresses in the host memory unit and a first target address among target addresses in the target memory unit by receiving from the operation unit, , performs a first control of moving data stored in the area indicated by the first source address to the area indicated by the first target address, receives predetermined pointer information from the host memory unit, and receives the pointer information in the area indicated by the pointer information obtains a second source address from among the source addresses and a second target address from among the target addresses, and performs a second control of moving data stored in the area indicated by the second source address to the area indicated by the second target address do.
일 실시예에 따른 메모리 액세스 제어 방법은 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받는 단계와, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하는 단계와, 소정의 포인터 정보를 수신받는 단계와, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하는 단계와, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 단계를 포함한다.A memory access control method according to an embodiment includes receiving a first source address among source addresses in a host memory unit and a first target address among target addresses in a target memory unit in a region indicated by the first source address. performing a first control of moving stored data to an area indicated by the first target address; receiving predetermined pointer information; and a second source address of the source addresses and the second source address from the area indicated by the pointer information obtaining a second target address among target addresses; and moving data stored in the area indicated by the second source address to the area indicated by the second target address.
일 실시예에 따른 메모리 액세스 제어 시스템은 연산부와, 호스트 메모리부와, 상기 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 상기 연산부로부터 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 소정의 포인터 정보를 상기 호스트 메모리부로부터 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행하는 제어부를 포함한다.A memory access control system according to an embodiment includes a calculator, a host memory unit, a first source address among source addresses in the host memory unit, and a first target address among target addresses in the target memory unit by receiving from the operation unit, , performs a first control of moving data stored in the area indicated by the first source address to the area indicated by the first target address, receives predetermined pointer information from the host memory unit, and receives the pointer information in the area indicated by the pointer information obtains a second source address from among the source addresses and a second target address from among the target addresses, and performs a second control of moving data stored in the area indicated by the second source address to the area indicated by the second target address It includes a control unit that
일 실시예에 따르면 초반에는 연산부로부터 수신받은 분산/수집 정보에 기초해서 직접적 어드레스 방식에 따라 DMA가 수행되고, 그 이후부터는 호스트 메모리부로부터 획득된 포인터 정보에 기초해서 주소를 획득한 뒤 이에 기초해서 간접적 어드레스 방식에 따라 DMA가 수행된다. 즉, 초반에는 연산부로부터 수신받은 어드레스를 즉시 이용해서 데이터의 이동이 수행될 수 있게 되며, 따라서 간접적 어드레스 방식에서 어드레스의 획득(fetching)에 소요되는 시간만큼이 일 실시예에서는 소요되지 않게 되므로, 그만큼 메모리 접근 제어 시스템의 성능이 향상될 수 있다.According to an embodiment, in the beginning, DMA is performed according to the direct address method based on the distribution/collection information received from the operation unit, and after that, the address is obtained based on the pointer information obtained from the host memory unit, and based on this, DMA is performed according to an indirect addressing scheme. That is, in the beginning, data movement can be performed immediately by using the address received from the operation unit, and thus, the time required for address fetching in the indirect address method is not consumed in one embodiment. The performance of the memory access control system may be improved.
도 1은 일 실시예에 메모리 액세스 제어 시스템에 대한 개략적인 구성도이다.
도 2는 일 실시예에 따라 메모리 액세스 제어 장치가 연산부로부터 수신받는 분산/수집 정보에 대한 예시이다.
도 3은 일 실시예에 따른 메모리 액세스 제어 시스템에서의 데이터 내지 정보 흐름에 대한 개략적인 개념도이다.
도 4는 일 실시예에 따른 메모리 액세스 제어 시스템에서 수행 가능한 절차에 대한 개략적인 순서도이다.
도 5는 일 실시예에 따른 메모리 액세스 제어 시스템에서 각 채널 별로 데이터가 처리되는 과정에서의 타이밍을 나타내는 개략적인 타이밍도이다.1 is a schematic configuration diagram of a memory access control system according to an embodiment.
2 is an example of distributed/collected information received by a memory access control apparatus from an operation unit according to an embodiment.
3 is a schematic conceptual diagram of data or information flow in a memory access control system according to an embodiment.
4 is a schematic flowchart of a procedure that can be performed in a memory access control system according to an embodiment.
5 is a schematic timing diagram illustrating a timing in a process in which data is processed for each channel in a memory access control system according to an exemplary embodiment.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, if it is determined that a detailed description of a well-known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, the terms to be described later are terms defined in consideration of functions in an embodiment of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification.
도 1은 일 실시예에 메모리 액세스 제어 시스템(1000) 및 타겟 메모리부(2000)에 대한 개략적인 구성도이다. 도 1을 참조하면, 메모리 액세스 제어 시스템(1000)은 메모리 액세스 제어 장치(100), 호스트 메모리부(200) 및 연산부(300)를 포함한다. 아울러, 도 1에는 도시되지 않았지만 메모리 액세스 제어 장치(100)는 제어부를 포함한다. 다만, 도 1에 도시된 구성도는 예시적인 것에 불과하므로, 메모리 액세스 제어 시스템(1000)은 도 1에 도시된 구성 중 적어도 하나를 포함하지 않거나 또는 도 1에 도시되지 않은 구성을 추가로 포함할 수 있다.1 is a schematic configuration diagram of a memory
먼저, 타겟 메모리부(2000)는 데이터를 저장하는 메모리 등에 의해 구현될 수 있다. 이러한 타겟 메모리부(2000)는 메모리 액세스 제어 시스템(1000)과는 별개의 타겟 장치에 구현될 수 있다. 또는 도 1에 도시된 것과는 상이하게 타겟 메모리부(2000)는 메모리 액세스 제어 시스템(1000) 내부에 구현될 수도 있다.First, the
다음으로, 호스트 메모리부(200)는 데이터를 저장하는 메모리 등에 의해 구현될 수 있다. 이러한 호스트 메모리부(200)에는 다양한 종류의 정보가 저장될 수 있다. 예컨대 호스트 메모리부(200)에는 이동/복사의 대상인 일반적인 데이터가 저장될 수 있다. 또한, 호스트 메모리부(200)에는 DMA 중 간접적 어드레스 접근 방식에서 이용되는 분산/수집 정보가 저장될 수도 있다. Next, the
이러한 분산/수집 정보는 호스트 메모리부(200)의 영역 중의 일부를 가리키는 포인터를 포함할 수 있다. 아울러, 이러한 포인터가 가리키는 호스트 메모리부(200)의 주소에는, 호스트 메모리부(200)에서 데이터가 저장된 소스 주소, 타겟 메모리부(2000)에서 데이터가 쓰여져야할 타겟 주소 및 호스트 메모리부(200)로부터 읽어들여져야할 데이터의 용량 정보 중 적어도 하나가 기록되어 있을 수 있으며, 다만 이에 한정되는 것은 아니다.Such distributed/collected information may include a pointer indicating a part of the region of the
연산부(300)는 호스트 또는 중앙 처리 장치라고도 지칭되는데, 메모리 액세스 제어 시스템(1000)에 대한 전반적인 동작을 관리 내지 제어하는 구성이다. 이러한 연산부(300)는 다양한 기능을 수행하도록 프로그램된 명령어를 저장하는 메모리 및 이러한 명령어를 실행하는 마이크로프로세서에 의해 구현 가능하다.The
메모리 액세스 제어 장치(100)는 DMA, 즉 직접 메모리 액세스를 관리 내지 제어하는 구성이다. 이러한 메모리 액세스 제어 장치(100)는 이하에서 설명될 다양한 기능을 수행하도록 프로그램된 제어부를 포함할 수 있다.The memory
보다 구체적으로 살펴보면, 메모리 액세스 제어 장치(100)는 제어부를 통해서 제1 제어와 제2 제어를 수행한다. More specifically, the memory
이 중, 제1 제어는 호스트 메모리부(200)에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부(2000)에서의 타겟 주소 중 제1 타겟 주소를 수신받아서, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 동작을 포함할 수 있다. 이 때, 제1 소스 주소와 제1 타겟 주소는 연산부(300)로부터 수신받은 것일 수 있다. 아울러, 제1 소스 주소 및 제1 타겟 주소와 함께, 이동되어야 할 데이터의 용량 정보가 연산부(300)로부터 수신될 수도 있다. 이 때 이동되어야 할 데이터란, 데이터의 이동 상황에서 상대적으로 먼저 이동해야되는 것으로 기 지정된 데이터일 수 있으며, 예컨대 각각의 데이터에 이동 순서가 부여되어 있을 때 그 순번이 가장 빠른 것부터 순차적으로 소정 개수 또는 소정 용량만큼의 데이터까지로 지정될 수 있다. 도 2에는 전술한 제1 소스 주소와 제1 타겟 주소 및 용량 정보가 예시적으로 도시되어 있다. Among them, the first control receives a first source address among the source addresses in the
즉, 제1 제어에 의해서는 연산부(300)로부터 수신받은 제1 소스 주소, 제1 타겟 주소 및 용량 정보에 의해 데이터의 이동이 수행되는데, 이는 DMA 중 직접적 어드레스 방식에 해당된다.That is, according to the first control, data movement is performed according to the first source address, the first target address, and the capacity information received from the
여기서, 제1 소스 주소, 제1 타겟 주소 및 용량 정보는 각각 상기 제1 제어와 관련된 정보인데, 이러한 정보는 호스트 메모리부(200)에 저장되어 있는 전술한 분산/수집 정보를 연산부(300)가 로딩한 뒤 이들을 이용해서 변형 생성한 것일 수 있다. 예컨대, 연산부(300)는 호스트 메모리부(200)에 저장되어 있는 분산/수집 정보 중 상대적으로 초기에 이동되어야 할 정보를 일정 용량만큼 지정한 뒤, 이렇게 지정된 정보를 대상으로 제1 소스 주소, 제1 타겟 주소 및 용량 정보를 변형 생성할 수 있다. 여기서 일정 용량은 시스템의 성능 등에 따라 정해진 것일 수 있다.Here, the first source address, the first target address, and the capacity information are information related to the first control, respectively, and the
한편, 제2 제어는 소정의 포인터 정보를 수신받아서, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득(fetching)하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 동작을 포함할 수 있다. 이 때, 포인터 정보는 호스트 메모리부(200)로부터 수신받은 것일 수 있다. 아울러, 제2 소스 주소와 제2 타겟 주소는 포인터 정보가 가리키는 호스트 메모리부(200)의 영역으로부터 획득된 것일 수 있다.Meanwhile, the second control receives predetermined pointer information, fetches a second source address among the source addresses and a second target address among the target addresses from an area indicated by the pointer information, and the second source address and moving data stored in the area indicated by , to the area indicated by the second target address. In this case, the pointer information may be received from the
즉, 제2 제어에 의해서는 호스트 메모리부(200)로부터 수신받은 포인터 정보에 기초해서 데이터의 이동이 수행되는데, 이는 DMA 중 간접적 어드레스 방식에 해당된다.That is, according to the second control, data movement is performed based on pointer information received from the
도 3은 메모리 액세스 제어 장치(100)가 이러한 제어부를 통해서 전술한 제1 제어와 제2 제어를 수행하는 것을 개념적으로 도시하고 있다. 여기서, 도 3은 예시적인 것에 불과하므로, 본 발명의 사상이 도 3에 도시된 것으로 한정해석되는 것은 아니다.3 conceptually illustrates that the memory
도 3을 참조하면, 연산부(300)는 메모리 액세스 제어 장치(100)에게 호스트 메모리부(200)에 저장된 데이터 중 적어도 일부를 타겟 메모리부(2000)에게 이동 내지 전송하라는 명령을 전달한다(S10). Referring to FIG. 3 , the
이 때, 일 실시예에 따르면, 이러한 명령과 함께 분산/수집 정보가 연산부(300)로부터 메모리 액세스 제어 장치(100)에게 전달될 수 있다. S10에서 전달되는 분산/수집 정보에는 제1 소스 주소, 제1 타겟 주소 및 용량 정보가 포함될 수 있다. At this time, according to an embodiment, distribution/collection information along with such a command may be transmitted from the
그러면 메모리 액세스 제어 장치(100)의 제어부는, 전술한 분산/수집 정보를 기초로 호스트 메모리부(200)로부터 데이터를 획득한 뒤, 획득된 데이터를 타겟 메모리부(2000)에게 이동시키는 제1 제어를 수행한다(S20,S30). 이 때, 이동되는 데이터에는 제1 소스 주소가 가리키는 영역에 저장된 데이터부터 상기 용량 정보만큼의 데이터가 포함될 수 있다. 즉, 제1 제어는 DMA 중 직접적 어드레스 방식에 해당된다.Then, the control unit of the memory
다음으로, 메모리 액세스 제어 장치(100)의 제어부는, 호스트 메모리부(200)로부터 분산/수집 정보(210)를 수신받은 뒤(S20), 이러한 분산/수집 정보(210)에 포함된 포인터 정보가 가리키는 영역으로부터 제2 소스 주소와, 제2 타겟 주소를 획득(fetching)하고, 제2 소스 주소가 가리키는 영역에 저장된 데이터(220,230)를 제2 타겟 주소가 가리키는 영역(2020,2030)으로 이동시키는 제2 동작을 수행한다(S40,S50). 이 때, 이동되는 데이터에는 제2 소스 주소가 가리키는 영역에 저장된 데이터부터 상기 용량 정보만큼의 데이터가 포함될 수 있다. 즉, 제2 제어는 DMA 중 간접적 어드레스 방식에 해당된다.Next, the control unit of the memory
한편, 전술한 제1 동작과 제2 동작은 메모리 액세스 제어 장치(100)에 마련된 복수 개의 채널 별로 수행될 수 있는데, 이에 대해서는 도 4를 참조하여서 살펴보기로 한다.Meanwhile, the first operation and the second operation described above may be performed for each of a plurality of channels provided in the memory
도 4는 일 실시예에 따른 메모리 액세스 제어 시스템(1000)에서의 데이터 내지 정보 흐름에 대한 개략적인 개념도이다. 다만, 도 4는 예시적인 것에 불과하므로, 본 발명의 사상이 도 4에 도시된 것으로 한정 해석되는 것은 아니다4 is a schematic conceptual diagram of data or information flow in the memory
도 4를 참조하기에 앞서, 연산부(300)는 분산/수집 정보를 생성한다(S100). 이러한 분산/수집 정보는 호스트 메모리부(200)로부터 획득되어서 생성된 것일 수 있으나 이에 한정되는 것은 아니다. 아울러, 이와 같이 생성된 분산/수집 정보는 액세스 제어 장치(100)에 마련된 복수 개의 채널 별로 생성될 수 있다.Before referring to FIG. 4 , the
여기서 '채널'이란 데이터의 전송에 이용되는, 논리적 또는 물리적으로 서로 구분 가능한 통로를 지칭한다.Here, the 'channel' refers to a logically or physically distinguishable path used for data transmission.
다음으로, 연산부(300)는 복수 개의 채널 별로 명령(command)를 생성한다(S110). 이러한 명령은 호스트 메모리부(200)에 저장된 데이터 중 적어도 일부를 타겟 메모리부(2000)에게 이동시키라는 동작을 포함할 수 있다.Next, the
이 후, 연산부(300)로부터 메모리 액세스 제어 장치(100)에게 S100에서 생성된 분산/수집 정보와 S110에서 생성된 명령이 채널 별로 전송된다(S120).Thereafter, the distribution/collection information generated in S100 and the command generated in S110 are transmitted from the
그러면, 메모리 액세스 제어 장치(100)는 제어부를 통해서 DMA를 시작한다(S200).Then, the memory
구체적으로 살펴보면, 데이터를 이동/복사시키는 동작(S210)은 S120에서 수신받은 정보를 토대로 수행된다. 이 후에는 추가 명령이 필요한지를 판단하는 동작(S220), 만약 추가 명령이 필요하다고 판단되면 새로운 새로운 명령을 로딩해서(S230) 이러한 새로운 명령이 동작되도록 하고 그렇지 않은 경우에는 S240으로 이동하는 동작이, 복수 개의 채널 별로 수행된다.More specifically, the operation of moving/copying data ( S210 ) is performed based on the information received in S120 . After that, the operation of determining whether an additional command is necessary (S220), if it is determined that an additional command is necessary, loading a new command (S230) so that the new command is operated, otherwise, the operation of moving to S240, It is performed for each of a plurality of channels.
여기서, S230에 따른 동작은 DMA 중 간접적 어드레스 방식에 사용되는 것과 동일한 방식에 따라 수행될 수 있다. 예컨대 기본적인 High-bandwidth를 사용하는 고성능 유저 Logic인 경우 멀티 형태의 outstanding request들로 구성이 되어 있는데, 이러한 경우 동작 중간의 몇 개의 어드레스 fetch(즉, 추가 명령 로딩)는 다른 request들에 가려질 수 가 있다.Here, the operation according to S230 may be performed according to the same method used for the indirect address method in DMA. For example, in case of high-performance user logic using basic high-bandwidth, it is composed of multi-form outstanding requests. In this case, some address fetches in the middle of operation (that is, loading additional commands) can be hidden from other requests. there is.
만약 S220에서 복수 개의 채널 전체에서 추가 명령이 필요하지 않다고 판단되면, 메모리 액세스 제어 장치(100)의 제어부는 인터럽트를 생성한다(S240). If it is determined in S220 that an additional command is not required in all of the plurality of channels, the control unit of the memory
S240에서 생성된 인터럽트는 연산부(300)에게 전송되고(S250), 연산부(300)는 DMA job을 정리한다(S300).The interrupt generated in S240 is transmitted to the operation unit 300 (S250), and the
이상에서 살펴본 바와 같이, 일 실시예에 따르면 초반에는 연산부로부터 수신받은 분산/수집 정보에 기초해서 직접적 어드레스 방식에 따라 DMA가 수행되고, 그 이후부터는 호스트 메모리부로부터 획득된 포인터 정보에 기초해서 주소를 획득한 뒤 이에 기초해서 간접적 어드레스 방식에 따라 DMA가 수행된다. 즉, 초반에는 연산부로부터 수신받은 어드레스를 즉시 이용해서 데이터의 이동이 수행될 수 있게 되며, 따라서 간접적 어드레스 방식에서 어드레스의 획득(fetching)에 소요되는 시간만큼이 일 실시예에서는 소요되지 않게 되므로, 그만큼 메모리 접근 제어 시스템의 성능이 향상될 수 있다.As described above, according to an embodiment, DMA is initially performed according to the direct address method based on the distribution/collection information received from the operation unit, and thereafter, the address is determined based on the pointer information obtained from the host memory unit. After acquisition, DMA is performed according to the indirect address method based on this. That is, in the beginning, data movement can be performed immediately by using the address received from the operation unit, and thus, the time required for address fetching in the indirect address method is not consumed in one embodiment. The performance of the memory access control system may be improved.
도 5는 이러한 일 실시예에 따란 메모리 접근 제어 시스템(1000)에서의 성능 향상을 예시적으로 도시하고 있다. 도 5를 참조하면, 메모리 접근 제어 시스템(1000)에서는 초기에 어드레스 획득(fetching)에 시간이 소요되지 않음을 알 수 있다. 뿐만 아니라, 복수 개의 채널 각각에서 DMA 동작이 수행되는 시점 또한 통일될 수 있다. 아울러, 한번의 DMA 세팅으로서 여러 채널의 동작 형태가 버스트(burst) 형태로 지원될 수 있다. 따라서, 값비싼 하드웨어의 활용도를 극대화하고 자원의 낭비가 억제됨으로써, 전체 시스템의 성능이 향상될 수 있다.FIG. 5 exemplarily illustrates performance improvement in the memory
한편, 일 실시예에 따른 메모리 액세스 제어 방법은 전술한 메모리 액세스 제어 장치(100)에 의해 수행될 수 있는데, 이러한 제어 방법은 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신받는 단계와, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하는 단계와, 소정의 포인터 정보를 수신받는 단계와, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하는 단계와, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 단계를 포함하여 수행될 수 있다.Meanwhile, the memory access control method according to an embodiment may be performed by the above-described memory
또한, 아울러, 제어 방법에 대해서는 전술한 메모리 액세스 제어 장치(100)에 대한 사항이 원용될 수 있는 바, 중복된 부분에 대한 설명은 생략하기로 한다.In addition, as for the control method, the above-described information on the memory
또한, 전술한 제어 방법의 경우 전술한 관리 방법에 포함된 각 단계를 수행하도록 프로그램된 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램의 형태 또는 이러한 방법의 각 단계를 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 기록매체의 형태로 구현 가능하다.In addition, in the case of the above-described control method, a computer program storing a computer program stored in a computer-readable recording medium programmed to perform each step included in the above-described management method or a computer program programmed to perform each step of the method It can be implemented in the form of a readable recording medium.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and various modifications and variations will be possible without departing from the essential quality of the present invention by those skilled in the art to which the present invention pertains. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.
일 실시예에 따르면 초반에는 연산부로부터 수신받은 분산/수집 정보에 기초해서 직접적 어드레스 방식에 따라 DMA가 수행되고, 그 이후부터는 호스트 메모리부로부터 획득된 포인터 정보에 기초해서 주소를 획득한 뒤 이에 기초해서 간접적 어드레스 방식에 따라 DMA가 수행된다. 즉, 초반에는 연산부로부터 수신받은 어드레스를 즉시 이용해서 데이터의 이동이 수행될 수 있게 되며, 따라서 간접적 어드레스 방식에서 어드레스의 획득(fetching)에 소요되는 시간만큼이 일 실시예에서는 소요되지 않게 되므로, 그만큼 메모리 접근 제어 시스템의 성능이 향상될 수 있다.According to an embodiment, DMA is initially performed according to the direct address method based on the distribution/collection information received from the operation unit, and after that, the address is obtained based on the pointer information obtained from the host memory unit and based on this DMA is performed according to an indirect addressing scheme. That is, in the beginning, data movement can be performed immediately by using the address received from the operation unit, and thus, the time required for address fetching in the indirect address method is not consumed in one embodiment. The performance of the memory access control system may be improved.
1000 : 연산 가속 장치1000: computational accelerator
Claims (11)
상기 제어부는,
연산부로부터 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신하여, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고,
상기 호스트 메모리부로부터 직접 소정의 포인터 정보를 수신하여, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행하는
메모리 액세스 제어 장치.A memory access control device comprising a control unit, comprising:
The control unit is
The first target address receives data stored in an area indicated by the first source address by receiving a first source address among the source addresses in the host memory unit and the first target address among the target addresses in the target memory unit from the operation unit. performing a first control of moving to an area,
Receives predetermined pointer information directly from the host memory unit to obtain a second source address among the source addresses and a second target address among the target addresses from an area indicated by the pointer information, and a region indicated by the second source address performing a second control of moving the data stored in the second target address to the area indicated by the
Memory access control unit.
상기 제어부는,
상기 제1 소스 주소로부터 읽어들여야 할 데이터의 용량 정보를 추가로 수신받고, 상기 제1 제어를 통해서 상기 용량 정보만큼의 데이터를 이동시키는
메모리 액세스 제어 장치.The method of claim 1,
The control unit is
receiving additional capacity information of data to be read from the first source address, and moving data as much as the capacity information through the first control
Memory access control unit.
상기 제어부는,
상기 포인터 정보가 가리키는 영역으로부터 상기 제2 소스 주소로부터 읽어들여야 할 데이터의 용량 정보를 추가로 수신받고, 상기 제2 제어를 통해서 상기 용량 정보만큼의 데이터를 이동시키는
메모리 액세스 제어 장치.The method of claim 1,
The control unit is
receiving additional data capacity information to be read from the second source address from the area indicated by the pointer information, and moving data corresponding to the capacity information through the second control
Memory access control unit.
상기 메모리 액세스 제어 장치에는 상기 제1 제어와 상기 제2 제어가 수행되는 복수 개의 채널이 마련되되,
상기 복수 개의 채널 각각에서 상기 제1 제어가 수행되는 시점은 서로 동일한
메모리 액세스 제어 장치.The method of claim 1,
A plurality of channels on which the first control and the second control are performed are provided in the memory access control device,
The timing at which the first control is performed in each of the plurality of channels is the same
Memory access control unit.
상기 제어부는,
상기 제1 제어를 수행한 뒤에 상기 제2 제어를 수행하는
메모리 액세스 제어 장치.The method of claim 1,
The control unit is
performing the second control after performing the first control
Memory access control unit.
상기 제1 소스 주소 및 상기 제1 타겟 주소는,
상대적으로 먼저 이동되어야 하는 소정 용량의 데이터에 대한 정보가, 상기 호스트 메모리부에 저장된 분산/수집 정보로부터 추출된 것에 기초해서 생성된 것이고,
상기 제2 제어는,
상기 제1 제어에 따라 상기 제1 소스 주소가 가리키는 영역으로부터 상기 제1 타겟 주소가 가리키는 영역으로 상기 용량의 데이터가 이동된 뒤에 수행되는
메모리 액세스 제어 장치.The method of claim 1,
The first source address and the first target address are,
Information on data of a predetermined capacity that needs to be moved relatively first is generated based on extraction from distribution/collection information stored in the host memory unit,
The second control is
This is performed after the data of the capacity is moved from the area indicated by the first source address to the area indicated by the first target address according to the first control.
Memory access control unit.
연산부로부터 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신하는 단계와,
상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하는 단계와,
상기 호스트 메모리부로부터 직접 소정의 포인터 정보를 수신하는 단계와,
상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하는 단계와,
상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 단계를 포함하는
메모리 액세스 제어 방법.As a memory access control method performed by a control unit of a memory access control device,
Receiving a first target address from among the source addresses in the host memory unit and the target address in the target memory unit from the operation unit;
performing a first control of moving data stored in the area indicated by the first source address to the area indicated by the first target address;
receiving predetermined pointer information directly from the host memory unit;
obtaining a second source address among the source addresses and a second target address among the target addresses from the area indicated by the pointer information;
moving data stored in the area indicated by the second source address to the area indicated by the second target address
How to control memory access.
호스트 메모리부와,
상기 연산부로부터 상기 호스트 메모리부에서의 소스 주소 중 제1 소스 주소 및 타겟 메모리부에서의 타겟 주소 중 제1 타겟 주소를 수신하여, 상기 제1 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제1 타겟 주소가 가리키는 영역으로 이동시키는 제1 제어를 수행하고, 상기 호스트 메모리부로부터 직접 소정의 포인터 정보를 수신하여, 상기 포인터 정보가 가리키는 영역으로부터 상기 소스 주소 중 제2 소스 주소 및 상기 타겟 주소 중 제2 타겟 주소를 획득하고, 상기 제2 소스 주소가 가리키는 영역에 저장된 데이터를 상기 제2 타겟 주소가 가리키는 영역으로 이동시키는 제2 제어를 수행하는 제어부를 포함하는
메모리 액세스 제어 시스템.arithmetic unit,
host memory;
A first source address among the source addresses in the host memory unit and a first target address among the target addresses in the target memory unit are received from the operation unit, and data stored in an area indicated by the first source address is converted to the first target address. performs a first control of moving to an area indicated by , receives predetermined pointer information directly from the host memory unit, and receives a second source address among the source addresses and a second target among the target addresses from the area indicated by the pointer information A control unit that acquires an address and performs a second control of moving data stored in the area indicated by the second source address to the area indicated by the second target address
Memory access control system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190079853A KR102280241B1 (en) | 2019-07-03 | 2019-07-03 | System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190079853A KR102280241B1 (en) | 2019-07-03 | 2019-07-03 | System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same |
Publications (3)
Publication Number | Publication Date |
---|---|
KR20210004047A KR20210004047A (en) | 2021-01-13 |
KR102280241B1 true KR102280241B1 (en) | 2021-07-21 |
KR102280241B9 KR102280241B9 (en) | 2021-10-27 |
Family
ID=74142777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190079853A KR102280241B1 (en) | 2019-07-03 | 2019-07-03 | System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102280241B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000505215A (en) * | 1995-09-27 | 2000-04-25 | メモリー・コーポレーシヨン・ピー・エル・シー | Memory management |
KR101018080B1 (en) * | 2009-11-26 | 2011-03-02 | 주식회사 케피코 | Method for memory data acquisition of embedded system using dma |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100889730B1 (en) * | 2006-12-01 | 2009-03-24 | 한국전자통신연구원 | Method and Apparatus for Direct Memory Access Controlling |
KR100963140B1 (en) * | 2008-11-27 | 2010-06-16 | 한국과학기술원 | Direct memory access device and direct memory access method |
KR102263357B1 (en) | 2017-04-19 | 2021-06-11 | 한국전자통신연구원 | System for supporting user-level dma i/o in distributed filesystem environment and method for the same |
-
2019
- 2019-07-03 KR KR1020190079853A patent/KR102280241B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000505215A (en) * | 1995-09-27 | 2000-04-25 | メモリー・コーポレーシヨン・ピー・エル・シー | Memory management |
KR101018080B1 (en) * | 2009-11-26 | 2011-03-02 | 주식회사 케피코 | Method for memory data acquisition of embedded system using dma |
Also Published As
Publication number | Publication date |
---|---|
KR20210004047A (en) | 2021-01-13 |
KR102280241B9 (en) | 2021-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868628B2 (en) | On-chip atomic transaction engine | |
US9015451B2 (en) | Processor including a cache and a scratch pad memory and memory control method thereof | |
US7630388B2 (en) | Software defined FIFO memory for storing a set of data from a stream of source data | |
US8650339B2 (en) | Control of data transfer | |
US5201040A (en) | Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor | |
US20060277325A1 (en) | Efficient data transmission system and method via direct memory access controller | |
CN108139974B (en) | Distributed cache live migration | |
JP2002117002A (en) | Common type peripheral architecture | |
JPH06250928A (en) | Information processor | |
KR100630071B1 (en) | High speed data transmission method using direct memory access method in multi-processors condition and apparatus therefor | |
US6874040B2 (en) | Employing a data mover to communicate between dynamically selected zones of a central processing complex | |
US7334056B2 (en) | Scalable architecture for context execution | |
KR102280241B1 (en) | System for controlling memory-access, apparatus for controlling memory-access and method for controlling memory-access using the same | |
US5107416A (en) | Arrangement for simultaneously dealing with transfer requests produced by central, arithmetic and input-output processors of a super computer | |
JP6161396B2 (en) | Arithmetic unit | |
US20120179901A1 (en) | Computer apparatus | |
US11010318B2 (en) | Method and apparatus for efficient and flexible direct memory access | |
JP2001188745A (en) | Controller and control method | |
JPH1185673A (en) | Method and device for controlling shared bus | |
JPH09146840A (en) | Multiprocessor system | |
JPH0756800A (en) | Dynamic management device for memory area | |
JP4409561B2 (en) | Event notification method, information processing apparatus, and processor | |
JP2018081346A (en) | Storage device, storage system, storage control method, and storage control program | |
JPH01263763A (en) | Instruction execution control system | |
JPH07101411B2 (en) | Extended storage access controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
G170 | Publication of correction |