KR20210133784A - Method and apparatus for controlling memory - Google Patents

Method and apparatus for controlling memory Download PDF

Info

Publication number
KR20210133784A
KR20210133784A KR1020200052825A KR20200052825A KR20210133784A KR 20210133784 A KR20210133784 A KR 20210133784A KR 1020200052825 A KR1020200052825 A KR 1020200052825A KR 20200052825 A KR20200052825 A KR 20200052825A KR 20210133784 A KR20210133784 A KR 20210133784A
Authority
KR
South Korea
Prior art keywords
memory
delay
external
external memory
controller
Prior art date
Application number
KR1020200052825A
Other languages
Korean (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 KR1020200052825A priority Critical patent/KR20210133784A/en
Publication of KR20210133784A publication Critical patent/KR20210133784A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

Provided are a memory control device and a method thereof. The method, which is the method of controlling a plurality of external memories in an artificial intelligence neural network chip, includes the following steps of: synchronizing, by a memory control device, clock synchronization between the external memories with respect to the plurality of external memories; performing, by the memory control device, a delay time prediction setting test for writing data to a setting address and reading data from the corresponding address with respect to the external memory according to a set parameter; and determining an optimal read/write timing for the external memory based on the parameter used in the test, if read/write to the external memory is successful according to the delay time prediction setting test. Accordingly, it is possible to solve a problem of uncertain latency time without redesigning and implementing the memory control device.

Description

메모리 제어 장치 및 방법{Method and apparatus for controlling memory} METHOD AND APPARATUS FOR CONTROLLING MEMORY

본 발명은 메모리 제어 장치 및 방법에 관한 것이다. The present invention relates to a memory control apparatus and method.

인간의 시신경 구조를 모방하여 시각정보 처리를 모사하는 시각 인지 신경망인 CNN(convolutional neural Network)은 다양한 응용(예를 들어, 객체 인식 및 검출, 음성 인식(speech recognition 등)에 적용되고 있다. 이러한 신경망을 ASIC(application specific integrated circuit)이나 FPGA(field programmable gate array) 등의 하드웨어 회로로 구현할 수 있다. A convolutional neural network (CNN), a visual cognitive neural network that mimics the human optic nerve structure to simulate visual information processing, has been applied to various applications (eg, object recognition and detection, speech recognition, etc.). can be implemented as a hardware circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

시각인지 신경망에서, 실시간으로 입력되는 영상을 인식하는 처리를 수행하기 위해서는 신경망 가속기의 버스 대역폭을 최대한 활용하면서 외부의 고속 메모리를 제어할 수 있는 고속 메모리 제어기 설계 필요하다. 범용 객체 인식의 응용에 따라 시스템 구현 시에, 메모리 제어기가, 외부 메모리의 PCB(printed circuit board) 라인과 신경망 가속기의 칩(chip)과 패키지 패드 지연(package pad delay) 등으로 발생하는 물리적인 지연 시간을 예측할 수 있는 기능을 지원해야 한다. In order to perform the processing of recognizing input images in real time in a visual cognitive neural network, it is necessary to design a high-speed memory controller that can control an external high-speed memory while maximizing the bus bandwidth of the neural network accelerator. Physical delay caused by the memory controller's printed circuit board (PCB) line of the external memory, the chip of the neural network accelerator, and the package pad delay when implementing a system according to the application of general-purpose object recognition It should support the ability to predict time.

기존에는 신경망 가속기가 응용에 따라 지연 시간에 오차가 발생하여, 외부 메모리별로 제어기를 다시 설계해야 하거나, 시스템 보드 재설계 등으로 추가 시간이나 비용이 발생하는 문제점이 있다In the past, there is a problem that neural network accelerators have an error in delay time depending on the application, so that the controller needs to be redesigned for each external memory, or additional time or cost occurs due to the redesign of the system board, etc.

본 발명이 해결하고자 하는 과제는, 인공지능 신경망 칩(하드웨어 가속기)에 연결되는 메모리에 대해 미세 지연 시간 제어가 가능한 메모리 제어 장치 및 방법을 제공하는 것이다. An object of the present invention is to provide a memory control apparatus and method capable of fine delay time control for a memory connected to an artificial intelligence neural network chip (hardware accelerator).

또한, 본 발명이 해결하고자 하는 과제는, 인공지능 신경망 칩이나 하드웨어 가속기가 외부 메모리와 PCB 보드상에 구현되었을 때 발생하는 물리적인 지연시간을 보상할 수 있도록 메모리를 제어하는 장치 및 방법을 제공하는 것이다. In addition, the problem to be solved by the present invention is to provide an apparatus and method for controlling the memory so as to compensate the physical delay time that occurs when an artificial intelligence neural network chip or hardware accelerator is implemented on an external memory and a PCB board. will be.

본 발명의 일 실시 예에 따르면, 인공지능 신경망 칩에서 복수의 외부 메모리를 제어하는 방법이 제공된다. 상기 방법은, 메모리 제어 장치가, 복수의 외부 메모리에 대해 외부 메모리간 클락 동기를 맞추는 단계; 상기 메모리 제어 장치가, 설정된 파라미터에 따라, 상기 외부 메모리에 대해 설정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 지연 시간 예측 설정 테스트를 수행하는 단계; 및 상기 지연 시간 예측 설정 테스트에 따라 상기 외부 메모리로의 읽기/쓰기가 성공한 경우, 해당 테스트에 사용된 파라미터를 토대로 상기 외부 메모리에 대한 최적의 읽기/쓰기 타이밍을 결정하는 단계를 포함한다. According to an embodiment of the present invention, there is provided a method for controlling a plurality of external memories in an artificial intelligence neural network chip. The method includes the steps of: synchronizing, by a memory control device, clock synchronization between external memories for a plurality of external memories; performing, by the memory control device, a delay time prediction setting test for writing data to a setting address and reading data from the corresponding address with respect to the external memory according to a set parameter; and when the read/write to the external memory is successful according to the delay time prediction setting test, determining an optimal read/write timing for the external memory based on parameters used for the test.

일 구현에서, 상기 지연 시간 예측 설정 테스트를 수행하는 단계는, 상기 지연 시간 예측 설정 테스트에서, 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 메모리 제어기로 입력되는 클락 신호에 대한 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계를 포함할 수 있다. In one implementation, the performing the delay time prediction setting test includes, in the delay time prediction setting test, when reading and writing to the corresponding external memory fails, performing coarse delay adjustment on the clock signal input to the memory controller to read and write to the external memory.

일 구현에서, 상기 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계는, 메모리 클락 주기의 1/2 분해능으로 상기 성긴 지연 조정을 수행할 수 있다. In one implementation, the step of reading and writing to the external memory by performing the coarse delay adjustment may include performing the coarse delay adjustment with a resolution of 1/2 of a memory clock cycle.

일 구현에서, 상기 지연 시간 예측 설정 테스트를 수행하는 단계는, 상기 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계 이후에, 상기 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 메모리 제어기로 입력되는 클락 신호에 대한 미세 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계를 더 포함할 수 있다. In one implementation, the performing of the delay time prediction setting test may include, after performing the coarse delay adjustment to read and write to the external memory, when reading and writing to the external memory fails, the memory The method may further include reading and writing to the external memory by performing fine delay adjustment on the clock signal input to the controller.

일 구현에서, 상기 미세 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계는, ps 단위의 분해능으로 미세 시간 제어를 수행하면서, 메모리 클락 주기의 2배 범위 내에서 상기 미세 지연 조정을 수행할 수 있다. In one embodiment, the step of performing the reading and writing to the external memory by performing the fine delay adjustment includes performing fine time control with a resolution of ps unit, and performing the fine delay adjustment within a range of twice the memory clock period. can be done

일 구현에서, 상기 설정된 파라미터는 메모리 전송 클락, 연결된 외부 메모리의 시간 파라미터, 메모리 읽기 클락 및 초기 메모리 지연시간을 포함할 수 있다. In one implementation, the set parameter may include a memory transfer clock, a time parameter of a connected external memory, a memory read clock, and an initial memory delay time.

일 구현에서, 상기 최적의 읽기/쓰기 타이밍을 결정하는 단계는, 해당 외부 메모리로의 읽기를 수행한 시간과 상기 외부 메모리로의 쓰기를 수행한 시간을 최적의 메모리 읽기/쓰기 시간으로 정하는 단계를 포함할 수 있다. In one implementation, the determining of the optimal read/write timing includes determining a time for performing a read to the corresponding external memory and a time for performing a write to the external memory as an optimal memory read/write time may include

일 구현에서, 상기 동기를 맞추는 단계는, 미세 가변 지연 제어기가 입력되는 클락 신호를 설정된 미세 지연 값에 따라 지연시켜서 상기 외부 메모리들로 출력하여, 상기 외부 메모리들로 입력되는 클락 신호간의 스큐(skew)를 조정할 수 있다. In one implementation, the step of synchronizing may include delaying a clock signal input by a finely variable delay controller according to a set fine delay value and outputting it to the external memories, thereby causing a skew between clock signals input to the external memories. ) can be adjusted.

본 발명의 다른 실시 예에 따르면, 인공지능 신경망 칩에서 복수의 외부 메모리를 제어하는 장치가 제공된다. 상기 장치는, 복수의 외부 메모리를 제어하도록 구성된 메모리 제어기; 입력되는 클락 신호를 제어하여 상기 외부 메모리로 제공하도록 구성된 제1 미세 가변 지연 제어기; 및 상기 입력되는 클락 신호를 제어하여 상기 메모리 제어기로 제공하도록 구성된 제2 미세 가변 지연 제어기를 포함하고, 상기 메모리 제어기는 설정된 파라미터에 따라, 상기 외부 메모리에 대해 설정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 지연 시간 예측 설정 테스트를 수행하고, 상기 지연 시간 예측 설정 테스트에 따라 상기 외부 메모리로의 읽기/쓰기가 성공한 경우, 해당 테스트에 사용된 파라미터를 토대로 상기 외부 메모리에 대한 최적의 읽기/쓰기 타이밍을 결정하도록 구성된다. According to another embodiment of the present invention, an apparatus for controlling a plurality of external memories in an artificial intelligence neural network chip is provided. The apparatus includes: a memory controller configured to control a plurality of external memories; a first fine variable delay controller configured to control an input clock signal and provide it to the external memory; and a second fine variable delay controller configured to control the input clock signal and provide it to the memory controller, wherein the memory controller writes data to a set address for the external memory according to a set parameter and writes data at the corresponding address When the delay time prediction setting test for reading data is performed, and the read/write to the external memory is successful according to the delay time prediction setting test, the optimal read/write to the external memory is performed based on the parameters used for the test configured to determine timing.

일 구현에서, 상기 지연 시간 예측 설정 테스트에서, 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 제2 미세 가변 지연 제어기가 상기 메모리 제어기로 입력되는 클락 신호에 대해 성긴 지연 조정을 수행하도록 구성될 수 있으며, 상기 메모리 제어기가 상기 제2 미세 가변 지연 제어기로부터 조절되어 입력되는 클락 신호에 따라 상기 외부 메모리로의 읽고 쓰기를 수행하도록 구성될 수 있다. In one implementation, in the delay time prediction setting test, when reading and writing to the corresponding external memory fails, the second finely variable delay controller may be configured to perform coarse delay adjustment on the clock signal input to the memory controller and the memory controller may be configured to read and write to the external memory according to a clock signal adjusted and input from the second fine variable delay controller.

일 구현에서, 상기 성긴 지연 조정은 메모리 클락 주기의 1/2 분해능으로 조절하는 것일 수 있다. In one implementation, the coarse delay adjustment may be adjusted to a resolution of 1/2 of a memory clock period.

일 구현에서, 상기 성긴 지연 조정에 따라 상기 외부 메모리로의 읽고 쓰기를 수행한 결과 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 제2 미세 가변 지연 제어기가 상기 메모리 제어기로 입력되는 클락 신호에 대한 미세 지연 조정을 수행하도록 구성될 수 있으며, 상기 메모리 제어기가 상기 제2 미세 가변 지연 제어기로부터 조절되어 입력되는 클락 신호에 따라 상기 외부 메모리로의 읽고 쓰기를 수행하도록 구성될 수 있다. In one embodiment, when reading and writing to the external memory fails as a result of reading and writing to the external memory according to the coarse delay adjustment, the second fine variable delay controller responds to the clock signal input to the memory controller. It may be configured to perform fine delay adjustment, and the memory controller may be configured to read and write to the external memory according to a clock signal adjusted and input from the second fine variable delay controller.

일 구현에서, 상기 미세 지연 조정은 ps 단위의 분해능으로 메모리 클락 주기의 2배 범위 내에서 이루어질 수 있다. In one implementation, the fine delay adjustment may be performed within a range of twice the memory clock period with a resolution of ps.

일 구현에서, 상기 설정된 파라미터는 메모리 전송 클락, 연결된 외부 메모리의 시간 파라미터, 메모리 읽기 클락 및 초기 메모리 지연시간을 포함할 수 있다. In one implementation, the set parameter may include a memory transfer clock, a time parameter of a connected external memory, a memory read clock, and an initial memory delay time.

일 구현에서, 상기 제2 미세 가변 지연 제어기는, 상기 입력되는 클락 신호를 설정된 미세 지연 값에 따라 지연시켜서 상기 외부 메모리들로 출력하여, 상기 외부 메모리들로 입력되는 클락 신호간의 스큐를 조정할 수 있다. In one implementation, the second fine variable delay controller may delay the input clock signal according to a set fine delay value and output it to the external memories to adjust a skew between the clock signals input to the external memories. .

일 구현에서, 상기 제1 미세 가변 지연 제어기 및 제2 미세 가변 지연 제어기는 각각 지연 시간을 설정하는 미세 지연 레지스터 그리고, 버퍼와 지연 소자를 포함하는 복수의 버퍼부를 포함할 수 있다. In one implementation, the first finely variable delay controller and the second finely variable delay controller may include a fine delay register for setting a delay time, respectively, and a plurality of buffers including a buffer and a delay element.

일 구현에서, 상기 인공지능 신경망 칩이 하드웨어로 구현되어 PCB(Printed Circuit Board) 보드에 장착될 수 있으며, 상기 메모리 제어 장치가 상기 PCB 보드 상에서 상기 복수의 외부 메모리를 제어하도록 구성될 수 있다. In one implementation, the artificial intelligence neural network chip may be implemented as hardware and mounted on a printed circuit board (PCB) board, and the memory control device may be configured to control the plurality of external memories on the PCB board.

실시 예에 따르면, 외부 메모리에 대한 메모리 제어기가 필요한 신경망 가속기를 실제 하드웨어로 구현할 때 발생하는 불확실한 지연 시간을 시간 지연 테스트를 통해 간단하게 예측할 수 있다. 따라서 메모리 제어기 재설계 및 구현 없이, 불확실한 지연 시간 문제를 해결할 수 있다. According to an embodiment, an uncertain delay time that occurs when a neural network accelerator that requires a memory controller for an external memory is implemented as actual hardware can be simply predicted through a time delay test. Thus, the uncertain latency problem can be solved without memory controller redesign and implementation.

또한, 본 발명의 실시 예에 따른 장치 및 방법은, 신경망 가속기에 대해 각 회사별로 메모리 액세스 시간 및 메모리 종류 그리고 시간 설정이 변경되어도 용이하게 적용이 가능하며, 시스템 PCB 등의 시스템 보드를 재설계하지 않아도 바로 적용이 가능하다. In addition, the apparatus and method according to an embodiment of the present invention can be easily applied even if the memory access time, memory type, and time setting are changed for each company for the neural network accelerator, and the system board such as the system PCB is not redesigned. You can apply it right away without having to.

도 1은 본 발명의 실시 예에 따른 메모리 제어 장치가 적용되는 예를 나타낸 도이다.
도 2는 본 발명의 실시 예에 따른 메모리 제어 장치의 구조를 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 미세 가변 지연 제어기의 구현 예시도이다.
도 4는 본 발명의 실시 예에 따른 미세 가변 지연 제어기의 클락 파형을 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른, 미세 지연 제어 후, 읽기 클락과 성긴 지연 시간 제어를 통한 메모리 데이터 읽기 타이밍을 나타낸 예시도이다.
도 6은 본 발명의 실시 예에 따른 메모리 제어 방법의 흐름도이다.
도 7은 본 발명의 다른 실시 예에 따른 메모리 제어 장치의 구조도이다.
1 is a diagram illustrating an example to which a memory control apparatus according to an embodiment of the present invention is applied.
2 is a diagram illustrating a structure of a memory control apparatus according to an embodiment of the present invention.
3 is an exemplary implementation diagram of a finely variable delay controller according to an embodiment of the present invention.
4 is an exemplary diagram illustrating a clock waveform of a finely variable delay controller according to an embodiment of the present invention.
5 is an exemplary diagram illustrating memory data read timing through a read clock and coarse delay time control after fine delay control according to an embodiment of the present invention.
6 is a flowchart of a memory control method according to an embodiment of the present invention.
7 is a structural diagram of a memory control apparatus according to another embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily implement them. However, the present invention may be embodied in various different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated.

본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.In the present specification, expressions described in the singular may be construed in the singular or plural unless an explicit expression such as “a” or “single” is used.

또한, 본 발명의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Also, terms including an ordinal number such as first, second, etc. used in an embodiment of the present invention may be used to describe the constituent elements, but the constituent elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.

이하, 도면을 참조하여 본 발명의 실시 예에 따른 메모리 제어 장치 및 방법에 대하여 설명한다. Hereinafter, an apparatus and method for controlling a memory according to an embodiment of the present invention will be described with reference to the drawings.

도 1은 본 발명의 실시 예에 따른 메모리 제어 장치가 적용되는 예를 나타낸 도이다. 1 is a diagram illustrating an example to which a memory control apparatus according to an embodiment of the present invention is applied.

첨부한 도 1에서와 같이, CNN(convolutional neural Network) 신경망에서, 본 발명의 실시 예에 따른 메모리 제어 장치 즉, 메모리 제어기(1)가 버스 인터페이스를 통해서 신경망 MAC(multiply accumulate) 연산기(2)와 연결되고 그리고 외부 메모리(3)와 연결될 수 있다. 여기서, 외부 메모리(3)는 예를 들어, SRAM(Static RAM), SSRAM(synchronous static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM) 등의 휘발성 저장 장치일 수 있다.1 , in a convolutional neural network (CNN) neural network, the memory control device according to an embodiment of the present invention, that is, the memory controller 1 is connected to the neural network MAC (multiply accumulate) operator 2 through a bus interface. connected and may be connected with the external memory 3 . Here, the external memory 3 is, for example, a volatile storage device such as SRAM (Static RAM), SSRAM (synchronous static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), etc. can be

CNN 신경망에서는 레이어 필터 계수와 연산 결과인 입출력 레이어 특징 맵(feature map)을 저장할 외부 메모리가 필요하다. 이에 따라 신경망 MAC 연산기(2)가 도 1에서와 같이, 연산 수행 전후로 메모리 제어기(1)를 통해서 외부 메모리(3)와 통신한다. 메모리 제어기(1)는 외부 메모리(3)를 제어하고, 신경망 MAC 연산기(2)에 의해 요청된 데이터를 외부 메모리(3)로부터 읽어 들여서 버퍼(도시하지 않음)에 저장할 수 있다. 신경망 MAC 연산기(2)는 버퍼에 저장된 데이터를 읽어서 연산을 수행하고, 연산된 데이터(예를 들어, 업데이트된 가중치)는 버퍼를 거쳐 외부 메모리(3)에 저장될 수 있다. The CNN neural network requires an external memory to store the layer filter coefficients and the input/output layer feature map, which is the result of the calculation. Accordingly, the neural network MAC operator 2 communicates with the external memory 3 through the memory controller 1 before and after the operation is performed, as shown in FIG. 1 . The memory controller 1 may control the external memory 3 and read data requested by the neural network MAC operator 2 from the external memory 3 and store it in a buffer (not shown). The neural network MAC operator 2 reads data stored in the buffer and performs an operation, and the calculated data (eg, updated weights) may be stored in the external memory 3 through the buffer.

도 2는 본 발명의 실시 예에 따른 메모리 제어 장치의 구조를 나타낸 도이다. 2 is a diagram illustrating a structure of a memory control apparatus according to an embodiment of the present invention.

인공지능 신경망 칩이 하드웨어로 구현되어 PCB(Printed Circuit Board) 시스템에 장착되었을 때, 메모리 제어 장치(10)가 도 2와 같이 PCB 보드 상에서 외부 메모리(3)와 연결될 수 있다. When the artificial intelligence neural network chip is implemented as hardware and mounted on a printed circuit board (PCB) system, the memory control device 10 may be connected to the external memory 3 on the PCB board as shown in FIG. 2 .

메모리 제어 장치(10)는 외부 메모리(3)와 연결되는 메모리 제어기(11)를 포함하며, 복수의 미세 가변 지연 제어기를 포함할 수 있다. 복수의 미세 가변 지연 제어기는 외부 메모리(3)와 연결되는 미세 가변 지연 제어기(제1 미세 가변 지연 제어기라고도 명명됨)(12)와 메모리 제어기(11)에 연결되는 미세 가변 지연 제어기(제2 미세 가변 지연 제어기라고도 명명됨)(13)를 포함할 수 있다. 제1 미세 가변 지연 제어기(12)는 외부 메모리(3)의 개수에 따라 복수일 수 있다. 이러한 미세 가변 지연 제어기(12, 13)는 오실레이터(도시하지 않음)로부터 출력되는 신호를 처리하여 클락 신호로서 제공하는 PLL(phase lock loop)(14)에 연결될 수 있다. The memory control device 10 includes a memory controller 11 connected to the external memory 3 , and may include a plurality of finely variable delay controllers. The plurality of finely variable delay controllers includes a finely variable delay controller (also called a first finely variable delay controller) 12 connected to the external memory 3 and a finely variable delay controller (second finely variable delay controller) connected to the memory controller 11 . Also called variable delay controller) 13 . The number of first fine variable delay controllers 12 may be plural according to the number of external memories 3 . The finely variable delay controllers 12 and 13 may be connected to a phase lock loop (PLL) 14 that processes a signal output from an oscillator (not shown) and provides it as a clock signal.

메모리 제어기(11)가 PCB 보드 상에서 외부 메모리(3)와 연결되었을 때 물리적인 시간 지연이 발생한다. 이러한 시간 지연은 메모리 I/O(input/Output) 로드(Load)의 차이에 따른 불확실한 지연시간, 패키지 라우팅(package routing)의 지연시간, 보드 트레이스(trace)에 따른 불확실한 지연시간 등일 수 있으며, 이러한 불확실한 시간 지연은 PCB 라인 자체에서 커패시턴스에 따라 다양하게 달라질 수 있다. 그리고 Best/Worst/Typical 조건에 따라서 인공지능 신경 칩 내 신호 전달 시간이 달라질 수 있다. 더욱이 시스템 설계시에 예측했던 이론적인 지연값과, 시스템을 PCB 보드상에서 실제로 구현하였을 때의 측정 지연값도 오차가 발생한다. 이런 예측 불가한 거의 모든 물리적인 지연 시간을 보상하기 위해서, 미세 지연 제어와 성긴 지연 제어를 수행한다. 미세 지연 제어는 수십 ps(picosecond) 단위의 분해능으로 시간 제어를 수행할 수 있으며, 메모리 시스템 클락 주기의 2배 이상의 범위로 제어가 가능하도록 구현될 수 있다. 한편 성긴 지연 제어의 분해능은 인공지능 신경망칩의 클락 구현에 따라 달라질 수 있으며, 대략적으로 제어 클락 주기의 1/8~ 1/2 의 다양한 분해능을 가질 수 있다. When the memory controller 11 is connected to the external memory 3 on the PCB board, a physical time delay occurs. Such time delay may be uncertain delay time due to differences in memory input/output (I/O) load, package routing delay time, and uncertain delay time due to board trace. The uncertain time delay can vary with capacitance in the PCB line itself. And the signal transmission time in the artificial intelligence neural chip may vary depending on Best/Worst/Typical conditions. Moreover, errors occur in the theoretical delay value predicted during system design and the measurement delay value when the system is actually implemented on the PCB board. In order to compensate for almost all of these unpredictable physical delay times, fine delay control and coarse delay control are performed. The fine delay control can perform time control with a resolution of several tens of ps (picosecond), and can be implemented to be controlled in a range more than twice the memory system clock period. Meanwhile, the resolution of the coarse delay control may vary depending on the clock implementation of the artificial intelligence neural network chip, and may have various resolutions of approximately 1/8 to 1/2 of the control clock cycle.

본 발명의 실시 예에서는 위에 기술된 바와 같은 불확실한 물리적인 지연 시간을 예측하여 정확하게 메모리 데이터를 읽고 쓸 수 있도록 한다. 또한, 신경망 가속기가 하드웨어로 구현되어 PCB 보드 상에서 고속 메모리와 통신할 경우, 칩 사이의 선의 길이와 배치에 따라 읽고 쓰는 시간 지연을 빠르고 정확하게 적응적으로 보상한다. According to an embodiment of the present invention, it is possible to accurately read and write memory data by predicting an uncertain physical delay time as described above. In addition, when the neural network accelerator is implemented in hardware and communicates with the high-speed memory on the PCB board, it adaptively compensates for the read/write time delay according to the length and arrangement of the lines between the chips quickly and accurately.

도 3은 본 발명의 실시 예에 따른 미세 가변 지연 제어기의 구현 예시도이다. 3 is an exemplary implementation diagram of a finely variable delay controller according to an embodiment of the present invention.

본 발명의 실시 예에 따른 메모리 제어 장치의 미세 가변 지연 제어기(12, 13)는 첨부한 도 3에서와 같이, 입력되는 클락 신호를 지연시키는 복수의 버퍼부(121)와 미세 지연 시간 설정이 가능한 미세 지연 레지스터(122)를 포함한다. The finely variable delay controllers 12 and 13 of the memory control apparatus according to an embodiment of the present invention, as shown in FIG. 3, include a plurality of buffer units 121 for delaying an input clock signal and a fine delay time setting possible. It includes a fine delay register 122 .

각 버퍼부(121)는 미세 지연 레지스터(122)로부터 입력되는 제어 신호에 따라 어느 하나의 입력 단자로 입력되는 신호를 출력하도록 구성된 신호 출력부(1211)와, 신호 출력부(1211)로부터 출력되는 신호를 지연시키는 복수의 지연 소자(delay element)(1212)를 포함한다. 신호 출력부(1211)는 입력되는 제어 신호에 따라 제1 입력 단자와 제2 입력 단자 중 하나의 단자를 통해 입력되는 신호를 출력하도록 구성되는 버퍼로서 기능하며, 예를 들어, 플립플롭(flip-flop)일 수 있다. 지연 소자(1212)는 앞 단의 신호 출력부(1211)로부터 출력되는 신호를 지연시켜 다음 단에 연결된 신호 출력부로 제공한다. Each buffer unit 121 includes a signal output unit 1211 configured to output a signal input to any one input terminal according to a control signal input from the fine delay register 122 , and a signal output unit 1211 outputted from the signal output unit 1211 . and a plurality of delay elements 1212 for delaying the signal. The signal output unit 1211 functions as a buffer configured to output a signal input through one of the first input terminal and the second input terminal according to the input control signal, for example, a flip-flop (flip-flop). flop). The delay element 1212 delays the signal output from the signal output unit 1211 of the previous stage and provides it to the signal output unit connected to the next stage.

이에 따라 버퍼부(121)를 통해 입력되는 클락 신호가 지연되어 출력된다. Accordingly, the clock signal input through the buffer unit 121 is delayed and output.

이러한 구조로 이루어지는 미세 가변 지연 제어기(12, 13)는 ASIC 칩으로 구현시 해당 파운더리의 버퍼셀이나 동등 지연 셀의 조합으로 구현가능하며, FPGA로 구현시에도 해당 버퍼 라이브러리로 구성이 가능하다. The finely variable delay controllers 12 and 13 having such a structure can be implemented as a combination of buffer cells or equivalent delay cells of the corresponding foundry when implemented with an ASIC chip, and can be configured with a corresponding buffer library when implemented with an FPGA.

이러한 구조의 미세 가변 지연 제어기(12, 13)는 미세 지연 레지스터(122)를 이용하여 미세 지연 시간 설정을 할 수 있다. 구현에 따라, 소프트웨어의 지연 시간 예측 테스트와 연동해서 미세 지연 시간 설정을 할 수 있다. The finely variable delay controllers 12 and 13 having such a structure may set a fine delay time using the fine delay register 122 . Depending on the implementation, it is possible to set the fine delay time in conjunction with the latency prediction test in the software.

미세 가변 지연 제어기(12)는 도 2에서와 같이, 외부 메모리(3)의 입력 클락 앞에서 구현되어, 외부 메모리(3)의 클락 스큐(Skew)를 감소시킬 수 있다. As shown in FIG. 2 , the finely variable delay controller 12 may be implemented in front of the input clock of the external memory 3 to reduce clock skew of the external memory 3 .

도 4는 본 발명의 실시 예에 따른 미세 가변 지연 제어기의 클락 파형을 나타낸 예시도이다. 4 is an exemplary diagram illustrating a clock waveform of a finely variable delay controller according to an embodiment of the present invention.

첨부한 도 4에 예시되어 있듯이, 미세 가변 지연 제어기(12)는 입력되는 외부 메모리 클락 신호(PLL(14)로부터 출력되는 클락 신호)을 지연시켜, 지연된 외부 메모리 클락을 출력한다. 여기서는 4개의 외부 메모리에 각각 제공되는 외부 메모리 클락 #1~ 외부 메모리 클락 #4를 예로 들었다. As illustrated in FIG. 4 , the finely variable delay controller 12 delays the input external memory clock signal (the clock signal output from the PLL 14 ), and outputs the delayed external memory clock. Here, external memory clock #1 to external memory clock #4 provided to each of the four external memories are taken as an example.

본 발명의 실시 예에 따른 미세 가변 지연 제어기(12)를 통해 외부 메모리 클락 #1~ 외부 메모리 클락 #4가 출력되며, 도 4에서와 같이, 미세 가변 지연 제어기로 입력되는 외부 메모리 클락에 비해 출력되는 각각의 외부 메모리의 클락의 스큐가 감소됨을 알 수 있다. 따라서 미세 지연 제어가 이루어지며, 외부 메모리 칩간 클락 동기를 맞출 수 있다. External memory clock #1 to external memory clock #4 are output through the fine variable delay controller 12 according to an embodiment of the present invention, and as shown in FIG. 4 , the output is compared to the external memory clock input to the fine variable delay controller. It can be seen that the skew of the clock of each external memory to be used is reduced. Accordingly, fine delay control is performed, and clock synchronization between external memory chips can be achieved.

도 5는 본 발명의 실시 예에 따른, 미세 지연 제어 후, 읽기 클락과 성긴 지연 제어를 통한 메모리 데이터 읽기 타이밍을 나타낸 예시도이다. 5 is an exemplary diagram illustrating memory data read timing through a read clock and coarse delay control after fine delay control according to an embodiment of the present invention.

예를 들어, 도 2와 같은 구현 환경에서, 메모리 출력 데이터는 첨부한 도 5에 예시된 바와 같이, 메모리 액세스 시간 후에 물리적 지연 시간이 더해져서 신경망 칩의 입력으로 들어오게 된다. For example, in the implementation environment shown in FIG. 2 , the memory output data is input to the neural network chip by adding a physical delay time after the memory access time, as illustrated in FIG. 5 .

내부 메모리와 외부 메모리용 미세 지연 조정값을 변경한 후, 성긴 지연 조정에서 설정된 시간값을 중심으로 미세하게 시간 조정값을 조정하여 정확한 메모리 데이터 읽기가 가능하다. 본 예시에서는 메모리 시스템 클락주기의 1/2의 분해능으로 성긴 지연시간을 조정한다. After changing the fine delay adjustment values for internal memory and external memory, accurate memory data reading is possible by finely adjusting the time adjustment value centering on the time set in the coarse delay adjustment. In this example, the coarse delay time is adjusted with a resolution of 1/2 of the memory system clock period.

다음에는 본 발명의 실시 예에 따른 메모리 제어 방법에 대해 설명한다. Next, a memory control method according to an embodiment of the present invention will be described.

도 6은 본 발명의 실시 예에 따른 메모리 제어 방법의 흐름도이다. 6 is a flowchart of a memory control method according to an embodiment of the present invention.

신경망 가속기의 초기화를 통해서 메모리 제어기(11)와 연결된 메모리 대역폭 및 전송 클락, 읽기 클락 및 읽기 지연시간 등의 메모리 제어 초기 환경 레지스터를 설정한다. 즉, 초기 메모리 파라미터를 설정한다(S100). Through initialization of the neural network accelerator, memory control initial environment registers such as a memory bandwidth connected to the memory controller 11, a transmission clock, a read clock, and a read delay time are set. That is, an initial memory parameter is set (S100).

다음, 외부 메모리 클락 미세 지연 조정을 수행한다(S110). 외부 메모리용 미세 지연 조정을 수행하여 외부 메모리들로 입력되는 클락간의 스큐를 조정한다. 구체적으로, 위에 기술된 바와 같이, 미세 가변 지연 제어기(12)를 이용하여 입력되는 외부 메모리 클락에 대해 미세 지연 처리를 수행하여, 외부 메모리들로 입력되는 클락간의 스큐를 조정한다. 이에 따라 외부 메모리들 사이의 클락 동기를 맞출 수 있다.Next, fine delay adjustment of the external memory clock is performed (S110). Adjusts the skew between clocks input to external memories by performing fine delay adjustment for external memory. Specifically, as described above, the fine delay processing is performed on the external memory clock input using the fine variable delay controller 12 to adjust the skew between the clocks input to the external memories. Accordingly, clock synchronization between the external memories can be matched.

그리고 메모리 제어기(11)는 지연 시간 예측 설정 테스트를 수행한다(S120). 구체적으로, 메모리 제어기(11)는 초기에 메모리별로 특정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 방식으로, 각 메모리에 대해 발생 가능한 지연 시간을 예측하는 지연 시간 예측 설정 테스트를 수행한다. 이 경우 인공지능 신경망 칩의 펌웨어를 이용하여 지연 시간 예측 설정 테스트를 구현할 수도 있고, 메모리 제어기 내에서 설정 레지스터의 특정 값을 변경하여 자동화(Macro)방식으로 메모리 R(read)/W(write) 데이터를 비교하는 방식으로 지연 시간 예측 설정 테스트를 구현할 수 있으며, 반드시 이러한 것에 한정되는 것은 아니다. And the memory controller 11 performs a delay time prediction setting test (S120). Specifically, the memory controller 11 performs a delay time prediction setting test for predicting a possible delay time for each memory by initially writing data to a specific address for each memory and reading data from the corresponding address. In this case, the delay time prediction setting test can be implemented using the firmware of the artificial intelligence neural network chip, and the memory R (read)/W (write) data can be automated (Macro) by changing the specific value of the setting register within the memory controller. A delay time prediction setting test can be implemented in a way that compares , but is not limited thereto.

이러한 지연 시간 예측 설정 테스트에서, 메모리별로 특정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 과정에서, 메모리 전송 클락, 연결된 메모리의 시간 파라미터(예: 액세스 시간), 메모리 읽기 클락 및 초기 메모리 지연시간(latency) 등을 조합하여, 메모리 데이터를 읽을 타이밍을 기준점으로 지연 시간 예측 설정 테스트를 수행한다. In this delay time prediction setup test, in the process of writing data to a specific address for each memory and reading data from that address, the memory transfer clock, time parameters of the connected memory (such as access time), memory read clock and initial memory latency (latency) and the like are combined to perform a delay time prediction setting test using the timing to read memory data as a reference point.

이러한 지연 시간 예측 설정 테스트에서, 메모리로의 읽고 쓰기가 실패할 경우(S130), 성긴 지연 조정을 수행한다(S140). 예를 들어, 인공지능 신경망칩의 클락 구현에 따라 성긴 지연 조정의 분해능이 가변적이며, 예를 들어, 메모리 시스템 클락 주기의 1/2의 분해능으로 성긴 지연 조정을 수행한다. 예를 들어, 도 2의 구조에서, 미세 가변 지연 제어기(13)를 통해 메모리 제어기(11)로 입력되는 클락을 시스템 클락 주기의 1/2로 제어하여, 메모리 제어기(11)의 메모리로의 읽고 쓰기 동작이 성긴 지연 조정되도록 한다. In this delay time prediction setting test, when reading and writing to the memory fails (S130), coarse delay adjustment is performed (S140). For example, the resolution of the coarse delay adjustment is variable according to the clock implementation of the artificial intelligence neural network chip. For example, the coarse delay adjustment is performed with a resolution of 1/2 of the clock period of the memory system. For example, in the structure of FIG. 2 , the clock input to the memory controller 11 through the finely variable delay controller 13 is controlled to 1/2 of the system clock cycle, and read into the memory of the memory controller 11 Allows write operations to be coarsely delayed.

성긴 지연 조정을 수행하고 지연 시간 예측 설정 테스트를 수행하며, 그 결과 메모리로의 읽고 쓰기가 실패할 경우, 미세 지연 조정을 수행한다(S150, S160). 미세 지연 조정시, 예를 들어, 메모리 시스템 클락 주기의 2배 이상의 범위로 미세 지연 조정이 수행될 수 있다. 예를 들어, 도 2의 구조에서, 미세 가변 지연 제어기(13)를 통해 메모리 제어기(11)로 입력되는 클락을 시스템 클락 주기의 2배 이상의 범위 내에서 제어하면서 예를 들어, 제어 클락 주기의 1/8~ 1/2로 제어하여, 메모리 제어기(11)의 메모리로의 읽고 쓰기 동작이 미세 지연 조정되도록 한다. A coarse delay adjustment is performed, a delay time prediction setting test is performed, and as a result, when reading and writing to the memory fails, fine delay adjustment is performed (S150, S160). In fine delay adjustment, for example, the fine delay adjustment may be performed in a range of two times or more of a memory system clock period. For example, in the structure of FIG. 2 , the clock input to the memory controller 11 through the finely variable delay controller 13 is controlled within a range of 2 times or more of the system clock period, for example, 1 of the control clock period. By controlling /8 to 1/2, the read/write operation to the memory of the memory controller 11 is finely delayed.

미세 지연 조정을 수행하고 지연 시간 예측 설정 테스트를 수행하며, 그 결과 메모리로의 읽고 쓰기가 실패할 경우(S170), 위의 단계(S140~S170)을 반복적으로 수행한다. Fine delay adjustment is performed and delay time prediction setting test is performed. As a result, when reading and writing to the memory fails (S170), the above steps (S140 to S170) are repeatedly performed.

한편, 단계(S130)에서 메모리로의 읽고 쓰기가 성공하거나, 또는 단계(S150)에서 성긴 지연 조정 후에 메모리로의 읽고 쓰기가 성공하거나, 또는 단계(S170)에서 미세 지연 조정 후에 메모리로의 읽고 쓰기가 성공한 경우, 해당하는 메모리로의 읽기를 수행한 시간과 메모리로의 쓰기를 수행한 시간을 최적의 메모리 읽기/쓰기 시간으로 설정한다. 이에 따라 해당 메모리에 대한 최적의 메모리 읽기/쓰기 시간 파라미터가 설정된다(S180). On the other hand, read/write to the memory is successful in step S130, or read/write to the memory is successful after coarse delay adjustment in step S150, or read/write to the memory after fine delay adjustment in step S170 If is successful, the time at which the read to the corresponding memory is performed and the time at which the write to the memory is performed are set as the optimal memory read/write time. Accordingly, an optimal memory read/write time parameter for the corresponding memory is set ( S180 ).

위에 기술된 바와 같은 과정을, 신경망 칩에 연결된 메모리들에 대해 각각 개별적으로 수행할 수 있고, 또는 모든 연결된 메모리들에 대해 동시에 수행할 수도 있다. The process as described above may be individually performed for each memory connected to the neural network chip, or may be performed simultaneously for all connected memories.

이러한 본 발명의 실시 예에 따르면, 외부 메모리를 제어하기 위한 메모리 제어기가 필요한 신경망 가속기를 실제 하드웨어로 구현할 때 발생할 수 있는 불확실한 지연 시간을 초기 시간 지연 테스트를 통해서 간단하게 예측할 수 있다. 이에 따라 메모리 제어기를 재설계하거나 구현하는 등의 재설계 및 구현 없이, 불확실한 지연 시간 문제를 용이하게 해결할 수 있다. According to this embodiment of the present invention, an uncertain delay time that may occur when a neural network accelerator that requires a memory controller for controlling an external memory is implemented as actual hardware can be simply predicted through an initial time delay test. Accordingly, the uncertain latency problem can be easily solved without redesigning and implementing the memory controller, such as redesigning or implementing the memory controller.

도 7은 본 발명의 다른 실시 예에 따른 메모리 제어 장치의 구조도이다. 7 is a structural diagram of a memory control apparatus according to another embodiment of the present invention.

본 발명의 다른 실시 예에 따른 메모리 제어 장치(200)는 첨부한 도 7에 도시되어 있듯이, 컴퓨터 시스템으로 구현될 수 있다. As illustrated in FIG. 7 , the memory control apparatus 200 according to another embodiment of the present invention may be implemented as a computer system.

메모리 제어 장치(200)는 프로세서(210), 메모리(220), 입력 인터페이스 장치(230), 출력 인터페이스 장치(240), 및 저장 장치(250)를 포함한다. 각각의 구성 요소들은 버스(bus)(260)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성요소들은 공통 버스(260)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.The memory control device 200 includes a processor 210 , a memory 220 , an input interface device 230 , an output interface device 240 , and a storage device 250 . Each of the components may be connected by a bus 260 to communicate with each other. In addition, each of the components may not be connected to the common bus 260 but to the processor 210 through an individual interface or a separate bus.

프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU) 또는 본 발명의 실시 예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 이러한 프로세서(210)는 위의 도 1 내지 도 6을 토대로 설명한 방법에서 대응하는 기능을 구현하도록 구성될 수 있다.The processor 210 may execute a program command stored in at least one of the memory 220 and the storage device 260 . The processor 210 may refer to a central processing unit (CPU) or a dedicated processor on which methods according to embodiments of the present invention are performed. Such a processor 210 may be configured to implement a function corresponding to the method described based on FIGS. 1 to 6 above.

메모리(220)는 프로세서(210)와 연결되고 프로세서(210)의 동작과 관련한 다양한 정보를 저장한다. 메모리(220)는 프로세서(210)에서 수행하기 위한 명령을 저장하고 있거나 저장 장치(250)로부터 명령을 로드하여 일시 저장할 수 있다. 프로세서(210)는 메모리(220)에 저장되어 있거나 로드된 명령을 실행할 수 있다. 메모리는 ROM(221) 및 RAM(222)를 포함할 수 있다. The memory 220 is connected to the processor 210 and stores various information related to the operation of the processor 210 . The memory 220 may store instructions to be executed by the processor 210 or may temporarily store instructions by loading the instructions from the storage device 250 . The processor 210 may execute instructions stored in or loaded from the memory 220 . The memory may include a ROM 221 and a RAM 222 .

본 발명의 실시 예에서 메모리(220)/저장 장치(250)는 프로세서(210)의 내부 또는 외부에 위치할 수 있고, 이미 알려진 다양한 수단을 통해 프로세서(210)와 연결될 수 있다. In an embodiment of the present invention, the memory 220/storage device 250 may be located inside or outside the processor 210 , and may be connected to the processor 210 through various known means.

본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.The embodiment of the present invention is not implemented only through the apparatus and/or method described above, but may be implemented through a program for realizing a function corresponding to the configuration of the embodiment of the present invention, a recording medium in which the program is recorded, etc. Also, such an implementation can be easily implemented by those skilled in the art to which the present invention pertains from the description of the above-described embodiments.

이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improved forms of the present invention are also provided by those skilled in the art using the basic concept of the present invention as defined in the following claims. is within the scope of the right.

Claims (17)

인공지능 신경망 칩에서 복수의 외부 메모리를 제어하는 방법으로서,
메모리 제어 장치가, 복수의 외부 메모리에 대해 외부 메모리간 클락 동기를 맞추는 단계;
상기 메모리 제어 장치가, 설정된 파라미터에 따라, 상기 외부 메모리에 대해 설정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 지연 시간 예측 설정 테스트를 수행하는 단계; 및
상기 지연 시간 예측 설정 테스트에 따라 상기 외부 메모리로의 읽기/쓰기가 성공한 경우, 해당 테스트에 사용된 파라미터를 토대로 상기 외부 메모리에 대한 최적의 읽기/쓰기 타이밍을 결정하는 단계
를 포함하는 제어 방법.
A method of controlling a plurality of external memories in an artificial intelligence neural network chip, comprising:
synchronizing, by the memory control device, clock synchronization between the external memories with respect to the plurality of external memories;
performing, by the memory control device, a delay time prediction setting test for writing data to a setting address and reading data from the corresponding address with respect to the external memory according to a set parameter; and
If the read/write to the external memory is successful according to the delay time prediction setting test, determining the optimal read/write timing for the external memory based on the parameters used for the test
A control method comprising a.
제1항에 있어서,
상기 지연 시간 예측 설정 테스트를 수행하는 단계는,
상기 지연 시간 예측 설정 테스트에서, 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 메모리 제어기로 입력되는 클락 신호에 대한 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계
를 포함하는, 제어 방법.
According to claim 1,
The step of performing the delay time prediction setting test is,
In the delay time prediction setting test, when reading and writing to the corresponding external memory fails, performing read/write to the external memory by performing coarse delay adjustment on the clock signal input to the memory controller;
Including, a control method.
제2항에 있어서,
상기 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계는, 메모리 클락 주기의 1/2 분해능으로 상기 성긴 지연 조정을 수행하는, 제어 방법.
3. The method of claim 2,
The step of performing reading and writing to the external memory by performing the coarse delay adjustment includes performing the coarse delay adjustment with a resolution of 1/2 of a memory clock cycle.
제2항에 있어서,
상기 지연 시간 예측 설정 테스트를 수행하는 단계는,
상기 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계 이후에, 상기 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 메모리 제어기로 입력되는 클락 신호에 대한 미세 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계
를 더 포함하는, 제어 방법.
3. The method of claim 2,
The step of performing the delay time prediction setting test is,
After reading and writing to the external memory by performing the coarse delay adjustment, when reading and writing to the external memory fails, fine delay adjustment is performed on the clock signal input to the memory controller to perform the fine delay adjustment to the external memory. Steps to read and write to memory
Further comprising, a control method.
제4항에 있어서,
상기 미세 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계는, ps 단위의 분해능으로 미세 시간 제어를 수행하면서, 메모리 클락 주기의 2배 범위내에서 상기 미세 지연 조정을 수행하는, 제어 방법.
5. The method of claim 4,
The step of performing the read/write to the external memory by performing the fine delay adjustment includes performing fine time control with a resolution of ps unit, and performing the fine delay adjustment within a range of twice the memory clock period. Way.
제1항에 있어서,
상기 설정된 파라미터는 메모리 전송 클락, 연결된 외부 메모리의 시간 파라미터, 메모리 읽기 클락 및 초기 메모리 지연시간을 포함하는, 제어 방법.
According to claim 1,
The set parameter includes a memory transfer clock, a time parameter of a connected external memory, a memory read clock and an initial memory delay time.
제1항에 있어서,
상기 최적의 읽기/쓰기 타이밍을 결정하는 단계는,
해당 외부 메모리로의 읽기를 수행한 시간과 상기 외부 메모리로의 쓰기를 수행한 시간을 최적의 메모리 읽기/쓰기 시간으로 정하는 단계를 포함하는, 제어 방법.
According to claim 1,
The step of determining the optimal read/write timing includes:
A control method comprising the step of determining a time for performing a read to the corresponding external memory and a time for performing a write to the external memory as an optimal memory read/write time.
제1항에 있어서,
상기 동기를 맞추는 단계는
미세 가변 지연 제어기가 입력되는 클락 신호를 설정된 미세 지연 값에 따라 지연시켜서 상기 외부 메모리들로 출력하여, 상기 외부 메모리들로 입력되는 클락 신호간의 스큐(skew)를 조정하는, 제어 방법.
According to claim 1,
The step of synchronizing
A control method, comprising: a fine variable delay controller delaying an input clock signal according to a set fine delay value and outputting it to the external memories to adjust a skew between clock signals input to the external memories.
인공지능 신경망 칩에서 복수의 외부 메모리를 제어하는 장치로서,
복수의 외부 메모리를 제어하도록 구성된 메모리 제어기;
입력되는 클락 신호를 제어하여 상기 외부 메모리로 제공하도록 구성된 제1 미세 가변 지연 제어기; 및
상기 입력되는 클락 신호를 제어하여 상기 메모리 제어기로 제공하도록 구성된 제2 미세 가변 지연 제어기
를 포함하고,
상기 메모리 제어기는 설정된 파라미터에 따라, 상기 외부 메모리에 대해 설정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 지연 시간 예측 설정 테스트를 수행하고, 상기 지연 시간 예측 설정 테스트에 따라 상기 외부 메모리로의 읽기/쓰기가 성공한 경우, 해당 테스트에 사용된 파라미터를 토대로 상기 외부 메모리에 대한 최적의 읽기/쓰기 타이밍을 결정하도록 구성되는, 제어 장치.
A device for controlling a plurality of external memories in an artificial intelligence neural network chip, comprising:
a memory controller configured to control the plurality of external memories;
a first fine variable delay controller configured to control an input clock signal and provide it to the external memory; and
a second fine variable delay controller configured to control the input clock signal and provide it to the memory controller
including,
The memory controller performs a delay time prediction setting test for writing data to a setting address and reading data from the corresponding address with respect to the external memory according to a set parameter, and reading into the external memory according to the delay time prediction setting test If the /write is successful, the control device is configured to determine an optimal read/write timing for the external memory based on the parameters used for the test.
제9항에 있어서,
상기 지연 시간 예측 설정 테스트에서, 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 제2 미세 가변 지연 제어기가 상기 메모리 제어기로 입력되는 클락 신호에 대해 성긴 지연 조정을 수행하도록 구성되며,
상기 메모리 제어기가 상기 제2 미세 가변 지연 제어기로부터 조절되어 입력되는 클락 신호에 따라 상기 외부 메모리로의 읽고 쓰기를 수행하도록 구성되는, 제어 장치.
10. The method of claim 9,
In the delay time prediction setting test, when reading and writing to the corresponding external memory fails, the second fine variable delay controller is configured to perform coarse delay adjustment on the clock signal input to the memory controller,
and the memory controller is configured to read and write to the external memory according to a clock signal adjusted and input from the second fine variable delay controller.
제10항에 있어서,
상기 성긴 지연 조정은 메모리 클락 주기의 1/2 분해능으로 조절하는 것인, 제어 장치.
11. The method of claim 10,
The control device of claim 1, wherein the coarse delay adjustment is adjusted to 1/2 resolution of the memory clock period.
제10항에 있어서,
상기 성긴 지연 조정에 따라 상기 외부 메모리로의 읽고 쓰기를 수행한 결과 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 제2 미세 가변 지연 제어기가 상기 메모리 제어기로 입력되는 클락 신호에 대한 미세 지연 조정을 수행하도록 구성되며,
상기 메모리 제어기가 상기 제2 미세 가변 지연 제어기로부터 조절되어 입력되는 클락 신호에 따라 상기 외부 메모리로의 읽고 쓰기를 수행하도록 구성되는, 제어 장치.
11. The method of claim 10,
When reading and writing to the external memory fails as a result of reading and writing to the external memory according to the coarse delay adjustment, the second fine variable delay controller performs fine delay adjustment of the clock signal input to the memory controller. is configured to perform
and the memory controller is configured to read and write to the external memory according to a clock signal adjusted and input from the second fine variable delay controller.
제12항에 있어서,
상기 미세 지연 조정은 ps 단위의 분해능으로 메모리 클락 주기의 2배 범위내에서 이루어지는, 제어 장치.
13. The method of claim 12,
The control device, wherein the fine delay adjustment is made within a range of twice the memory clock period with a resolution of ps.
제9항에 있어서,
상기 설정된 파라미터는 메모리 전송 클락, 연결된 외부 메모리의 시간 파라미터, 메모리 읽기 클락 및 초기 메모리 지연시간을 포함하는, 제어 장치.
10. The method of claim 9,
The set parameter includes a memory transfer clock, a time parameter of a connected external memory, a memory read clock and an initial memory delay time, the control device.
제9항에 있어서,
상기 제2 미세 가변 지연 제어기는, 상기 입력되는 클락 신호를 설정된 미세 지연 값에 따라 지연시켜서 상기 외부 메모리들로 출력하여, 상기 외부 메모리들로 입력되는 클락 신호간의 스큐를 조정하는, 제어 장치.
10. The method of claim 9,
and the second fine variable delay controller delays the input clock signal according to a set fine delay value and outputs it to the external memories to adjust a skew between the clock signals input to the external memories.
제9항에 있어서,
상기 제1 미세 가변 지연 제어기 및 제2 미세 가변 지연 제어기는 각각 지연 시간을 설정하는 미세 지연 레지스터 그리고, 버퍼와 지연 소자를 포함하는 복수의 버퍼부를 포함하는, 제어 장치.
10. The method of claim 9,
The first finely variable delay controller and the second finely variable delay controller each include a fine delay register for setting a delay time, and a plurality of buffers including a buffer and a delay element.
제9항에 있어서,
상기 인공지능 신경망 칩이 하드웨어로 구현되어 PCB(Printed Circuit Board) 보드에 장착되고, 상기 메모리 제어 장치가 상기 PCB 보드 상에서 상기 복수의 외부 메모리를 제어하도록 구성되는, 제어 장치.









10. The method of claim 9,
The artificial intelligence neural network chip is implemented in hardware and mounted on a printed circuit board (PCB) board, and the memory control device is configured to control the plurality of external memories on the PCB board.









KR1020200052825A 2020-04-29 2020-04-29 Method and apparatus for controlling memory KR20210133784A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200052825A KR20210133784A (en) 2020-04-29 2020-04-29 Method and apparatus for controlling memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200052825A KR20210133784A (en) 2020-04-29 2020-04-29 Method and apparatus for controlling memory

Publications (1)

Publication Number Publication Date
KR20210133784A true KR20210133784A (en) 2021-11-08

Family

ID=78497342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200052825A KR20210133784A (en) 2020-04-29 2020-04-29 Method and apparatus for controlling memory

Country Status (1)

Country Link
KR (1) KR20210133784A (en)

Similar Documents

Publication Publication Date Title
US20210082534A1 (en) Methods for memory interface calibration
US6646929B1 (en) Methods and structure for read data synchronization with minimal latency
US6553472B2 (en) Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor
US7177230B1 (en) Memory controller and memory system
US7818528B2 (en) System and method for asynchronous clock regeneration
US7571396B2 (en) System and method for providing swap path voltage and temperature compensation
US20080068904A1 (en) System and method for providing programmable delay read data strobe gating with voltage and temperature compensation
TWI514402B (en) Memory test system and memory test method
US9355744B2 (en) Dynamic memory signal phase tracking method and associated control circuit
CN108009372B (en) DDR memory virtual write level calibration response method
US10741231B1 (en) Memory access interface device including phase and duty cycle adjusting circuits for memory access signals
WO2011077574A1 (en) Signal decoding circuit, latency adjustment circuit, memory controller, processor, computer, signal decoding method, and latency adjustment method
US8754656B2 (en) High speed test circuit and method
US6665230B1 (en) Programmable delay compensation circuit
US7493461B1 (en) Dynamic phase alignment for resynchronization of captured data
US6529424B2 (en) Propagation delay independent SDRAM data capture device and method
US20120110400A1 (en) Method and Apparatus for Performing Memory Interface Calibration
KR20210133784A (en) Method and apparatus for controlling memory
JP4206508B2 (en) Signal control circuit
CN113608668B (en) Memory system and memory access interface device thereof
CN111722670B (en) eMMC timing sequence adjustment method, system and eMMC main control chip
US7583548B2 (en) Semiconductor memory apparatus for allocating different read/write operating time to every bank
US6982576B2 (en) Signal delay compensating circuit
CN116486852B (en) Clock circuit, clock alignment system and clock alignment method
KR20000056166A (en) Phase delay compensation circuit and method for semiconductor memory