KR20210133784A - Method and apparatus for controlling memory - Google Patents
Method and apparatus for controlling memory Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements 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
Description
본 발명은 메모리 제어 장치 및 방법에 관한 것이다. 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
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
도 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
메모리 제어 장치(10)는 외부 메모리(3)와 연결되는 메모리 제어기(11)를 포함하며, 복수의 미세 가변 지연 제어기를 포함할 수 있다. 복수의 미세 가변 지연 제어기는 외부 메모리(3)와 연결되는 미세 가변 지연 제어기(제1 미세 가변 지연 제어기라고도 명명됨)(12)와 메모리 제어기(11)에 연결되는 미세 가변 지연 제어기(제2 미세 가변 지연 제어기라고도 명명됨)(13)를 포함할 수 있다. 제1 미세 가변 지연 제어기(12)는 외부 메모리(3)의 개수에 따라 복수일 수 있다. 이러한 미세 가변 지연 제어기(12, 13)는 오실레이터(도시하지 않음)로부터 출력되는 신호를 처리하여 클락 신호로서 제공하는 PLL(phase lock loop)(14)에 연결될 수 있다. The
메모리 제어기(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
본 발명의 실시 예에서는 위에 기술된 바와 같은 불확실한 물리적인 지연 시간을 예측하여 정확하게 메모리 데이터를 읽고 쓸 수 있도록 한다. 또한, 신경망 가속기가 하드웨어로 구현되어 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
각 버퍼부(121)는 미세 지연 레지스터(122)로부터 입력되는 제어 신호에 따라 어느 하나의 입력 단자로 입력되는 신호를 출력하도록 구성된 신호 출력부(1211)와, 신호 출력부(1211)로부터 출력되는 신호를 지연시키는 복수의 지연 소자(delay element)(1212)를 포함한다. 신호 출력부(1211)는 입력되는 제어 신호에 따라 제1 입력 단자와 제2 입력 단자 중 하나의 단자를 통해 입력되는 신호를 출력하도록 구성되는 버퍼로서 기능하며, 예를 들어, 플립플롭(flip-flop)일 수 있다. 지연 소자(1212)는 앞 단의 신호 출력부(1211)로부터 출력되는 신호를 지연시켜 다음 단에 연결된 신호 출력부로 제공한다. Each
이에 따라 버퍼부(121)를 통해 입력되는 클락 신호가 지연되어 출력된다. Accordingly, the clock signal input through the
이러한 구조로 이루어지는 미세 가변 지연 제어기(12, 13)는 ASIC 칩으로 구현시 해당 파운더리의 버퍼셀이나 동등 지연 셀의 조합으로 구현가능하며, FPGA로 구현시에도 해당 버퍼 라이브러리로 구성이 가능하다. The finely
이러한 구조의 미세 가변 지연 제어기(12, 13)는 미세 지연 레지스터(122)를 이용하여 미세 지연 시간 설정을 할 수 있다. 구현에 따라, 소프트웨어의 지연 시간 예측 테스트와 연동해서 미세 지연 시간 설정을 할 수 있다. The finely
미세 가변 지연 제어기(12)는 도 2에서와 같이, 외부 메모리(3)의 입력 클락 앞에서 구현되어, 외부 메모리(3)의 클락 스큐(Skew)를 감소시킬 수 있다. As shown in FIG. 2 , the finely
도 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
본 발명의 실시 예에 따른 미세 가변 지연 제어기(12)를 통해 외부 메모리 클락 #1~ 외부 메모리 클락 #4가 출력되며, 도 4에서와 같이, 미세 가변 지연 제어기로 입력되는 외부 메모리 클락에 비해 출력되는 각각의 외부 메모리의 클락의 스큐가 감소됨을 알 수 있다. 따라서 미세 지연 제어가 이루어지며, 외부 메모리 칩간 클락 동기를 맞출 수 있다. External
도 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
다음, 외부 메모리 클락 미세 지연 조정을 수행한다(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
그리고 메모리 제어기(11)는 지연 시간 예측 설정 테스트를 수행한다(S120). 구체적으로, 메모리 제어기(11)는 초기에 메모리별로 특정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 방식으로, 각 메모리에 대해 발생 가능한 지연 시간을 예측하는 지연 시간 예측 설정 테스트를 수행한다. 이 경우 인공지능 신경망 칩의 펌웨어를 이용하여 지연 시간 예측 설정 테스트를 구현할 수도 있고, 메모리 제어기 내에서 설정 레지스터의 특정 값을 변경하여 자동화(Macro)방식으로 메모리 R(read)/W(write) 데이터를 비교하는 방식으로 지연 시간 예측 설정 테스트를 구현할 수 있으며, 반드시 이러한 것에 한정되는 것은 아니다. And the
이러한 지연 시간 예측 설정 테스트에서, 메모리별로 특정 주소에 데이터를 쓰고 그 해당 주소에서 데이터를 읽는 과정에서, 메모리 전송 클락, 연결된 메모리의 시간 파라미터(예: 액세스 시간), 메모리 읽기 클락 및 초기 메모리 지연시간(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
성긴 지연 조정을 수행하고 지연 시간 예측 설정 테스트를 수행하며, 그 결과 메모리로의 읽고 쓰기가 실패할 경우, 미세 지연 조정을 수행한다(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
미세 지연 조정을 수행하고 지연 시간 예측 설정 테스트를 수행하며, 그 결과 메모리로의 읽고 쓰기가 실패할 경우(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
메모리 제어 장치(200)는 프로세서(210), 메모리(220), 입력 인터페이스 장치(230), 출력 인터페이스 장치(240), 및 저장 장치(250)를 포함한다. 각각의 구성 요소들은 버스(bus)(260)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성요소들은 공통 버스(260)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.The
프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU) 또는 본 발명의 실시 예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 이러한 프로세서(210)는 위의 도 1 내지 도 6을 토대로 설명한 방법에서 대응하는 기능을 구현하도록 구성될 수 있다.The
메모리(220)는 프로세서(210)와 연결되고 프로세서(210)의 동작과 관련한 다양한 정보를 저장한다. 메모리(220)는 프로세서(210)에서 수행하기 위한 명령을 저장하고 있거나 저장 장치(250)로부터 명령을 로드하여 일시 저장할 수 있다. 프로세서(210)는 메모리(220)에 저장되어 있거나 로드된 명령을 실행할 수 있다. 메모리는 ROM(221) 및 RAM(222)를 포함할 수 있다. The
본 발명의 실시 예에서 메모리(220)/저장 장치(250)는 프로세서(210)의 내부 또는 외부에 위치할 수 있고, 이미 알려진 다양한 수단을 통해 프로세서(210)와 연결될 수 있다. In an embodiment of the present invention, the
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.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.
상기 지연 시간 예측 설정 테스트를 수행하는 단계는,
상기 지연 시간 예측 설정 테스트에서, 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 메모리 제어기로 입력되는 클락 신호에 대한 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계
를 포함하는, 제어 방법.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.
상기 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계는, 메모리 클락 주기의 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.
상기 지연 시간 예측 설정 테스트를 수행하는 단계는,
상기 성긴 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계 이후에, 상기 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 메모리 제어기로 입력되는 클락 신호에 대한 미세 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계
를 더 포함하는, 제어 방법.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.
상기 미세 지연 조정을 수행하여 상기 외부 메모리로의 읽고 쓰기를 수행하는 단계는, 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.
상기 설정된 파라미터는 메모리 전송 클락, 연결된 외부 메모리의 시간 파라미터, 메모리 읽기 클락 및 초기 메모리 지연시간을 포함하는, 제어 방법.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.
상기 최적의 읽기/쓰기 타이밍을 결정하는 단계는,
해당 외부 메모리로의 읽기를 수행한 시간과 상기 외부 메모리로의 쓰기를 수행한 시간을 최적의 메모리 읽기/쓰기 시간으로 정하는 단계를 포함하는, 제어 방법.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.
상기 동기를 맞추는 단계는
미세 가변 지연 제어기가 입력되는 클락 신호를 설정된 미세 지연 값에 따라 지연시켜서 상기 외부 메모리들로 출력하여, 상기 외부 메모리들로 입력되는 클락 신호간의 스큐(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.
상기 지연 시간 예측 설정 테스트에서, 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 제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.
상기 성긴 지연 조정은 메모리 클락 주기의 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.
상기 성긴 지연 조정에 따라 상기 외부 메모리로의 읽고 쓰기를 수행한 결과 해당 외부 메모리로의 읽고 쓰기가 실패한 경우, 상기 제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.
상기 미세 지연 조정은 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.
상기 설정된 파라미터는 메모리 전송 클락, 연결된 외부 메모리의 시간 파라미터, 메모리 읽기 클락 및 초기 메모리 지연시간을 포함하는, 제어 장치.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.
상기 제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.
상기 제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.
상기 인공지능 신경망 칩이 하드웨어로 구현되어 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.
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) |
-
2020
- 2020-04-29 KR KR1020200052825A patent/KR20210133784A/en unknown
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 |