KR20230060942A - 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법 - Google Patents

인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법 Download PDF

Info

Publication number
KR20230060942A
KR20230060942A KR1020210145685A KR20210145685A KR20230060942A KR 20230060942 A KR20230060942 A KR 20230060942A KR 1020210145685 A KR1020210145685 A KR 1020210145685A KR 20210145685 A KR20210145685 A KR 20210145685A KR 20230060942 A KR20230060942 A KR 20230060942A
Authority
KR
South Korea
Prior art keywords
cells
neural network
artificial neural
read
memory
Prior art date
Application number
KR1020210145685A
Other languages
English (en)
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 KR1020210145685A priority Critical patent/KR20230060942A/ko
Priority to PCT/KR2022/016683 priority patent/WO2023075495A1/ko
Publication of KR20230060942A publication Critical patent/KR20230060942A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/412Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Static Random-Access Memory (AREA)

Abstract

본 발명에 따른 인공 신경망 가속기를 위한 임베디드 메모리는, 비트 인터리빙 구조로 구동되는 SRAM 메모리; 및 상기 SRAM 메모리의 읽기 동작과 쓰기 동작을 수행하는 제어부를 포함하되, 상기 제어부는 읽기 동작 모드의 실행에 따라, 읽기 대상 셀들의 비트라인을 모두 프리차지시키고, 읽기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시킨 후, 순차적 메모리 주소 접근에 따라, 동일 먹스에 접속된 읽기 대상 셀들에 대해 순차적으로 읽기 동작을 수행한다.

Description

인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법{EMBEDDED MEMORY FOR ARTIFICIAL NEURAL NETWORK ACCELERATOR AND DRIVING METHOD THEREOF}
본 발명은 인공 신경망 가속기를 위한 임베디드 메모리 구동 방법에 대한 것이다.
최근 인공 신경망 기술에 대한 연구 개발이 활발하게 이루어 지고 있으며, 본 발명은 그중에서도 뉴로모픽 장치와 같이, 하드웨어 기반으로 인공 신경망 기술에 대한 것이다. 인공신경망은 MLP(Multi-Layer Perceptron), CNN(Convolution Neural Network) 등 다양한 구조로 구성이 가능하며, 해당 구조에 대한 파라미터 값 (Weight, Bias 등)은 인공 신경망의 구조에 따라 결정된다. 규모가 큰 인공 신경망의 경우, 수백 Mbyte 수준의 인공신경망 파라미터를 필요로 하며, 이는 오프칩 DRAM 이나 외부 저장 장치 및 네트워크를 통해 인공 신경망 가속기로 제공된다. 가속기 내부에는 인공 신경망 파라미터 값을 일시적으로 저장하기 위한 정적 랜덤 액세스 메모리(SRAM) 기반의 버퍼 메모리가 존재하며 연산에 필요한 파라미터 값들을 순차적인 메모리 주소값을 통해 접근 (읽기/쓰기) 한다.
본 발명은 이러한 SRAM 형태의 임베디드 메모리를 더욱 효율적으로 활용하여, 인공 신경망 가속기에 활용할 수 있는 새로운 방안을 제안하고자 한다.
대한민국 등록 특허 제10-1948415호 (발명의 명칭: 비선택 비트라인 전하에 의한 셀 대지전압 상승을 이용한 정적 메모리 및 쓰기 보조 방법)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, SRAM의 동작 특성을 활용하여 인공 신경망 가속기의 동작을 개선할 수 있는, 임베디드 메모리 구동방법을 제공하는데 그 목적이 있다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법은, 상기 임베디드 메모리는 비트 인터리빙 구조로 구동되는 SRAM 메모리이고, 읽기 동작 모드의 실행에 따라, 읽기 대상 셀들의 비트라인을 모두 프리차지 시키는 단계; 읽기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시키는 단계; 및 순차적 메모리 주소 접근에 따라, 동일 먹스에 접속된 읽기 대상 셀들에 대해 순차적으로 읽기 동작을 수행하는 단계를 포함한다.
본 발명의 제 2 측면에 따른 인공 신경망 가속기를 위한 임베디드 메모리는, 비트 인터리빙 구조로 구동되는 SRAM 메모리; 및 상기 SRAM 메모리의 읽기 동작과 쓰기 동작을 수행하는 제어부를 포함하되, 상기 제어부는 읽기 동작 모드의 실행에 따라, 읽기 대상 셀들의 비트라인을 모두 프리차지시키고, 읽기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시킨 후, 순차적 메모리 주소 접근에 따라, 동일 먹스에 접속된 읽기 대상 셀들에 대해 순차적으로 읽기 동작을 수행한다.
본 발명의 구성에 따르면, 종전 SRAM 메모리의 구성을 거의 변경하지 않은 상태에서, 순차적 메모리 주소 접근에 따라 동작하는 인공 신경망 가속기에 대하여, 최적화된 상태로 동작하는 임베디드 메모리를 제공할 수 있다. 즉, 비터 인터리빙 구조에 따라 동작하는 SRAM 메모리의 동작을 일부 수정하는 것 만으로도, 읽기 또는 쓰기 동작에서 발생하는 전력 소모를 최소화하는 효과를 제공한다.
도 1은 본 발명의 일 실시예에 사용되는 임베디드 메모리의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 사용되는 임베디드 메모리의 개별 셀의 구성을 도시한 도면이다.
도 3은 본 발명의 일실시예에 사용되는 임베디드 메모리의 통상적인 읽기 방법을 도시한 것이다.
도 4는 본 발명의 일실시예에 사용되는 임베디드 메모리의 통상적인 쓰기 방법을 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 인공 신경망 가속기에서의 순차적 메모리 주소 접근의 개념을 설명하기 위한 도면이다.
도 6 내지 도 8은 본 발명의 일 실시예에 따른 인공 신경망 가속기를 위한 임베디드 메모리에서의 읽기 방법을 설명하기 위한 도면이다.
도 9 내지 도 11은 본 발명의 일 실시예에 따른 인공 신경망 가속기를 위한 임베디드 메모리에서의 쓰기 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에 따른 임베디드 메모리에 추가되는 보조 회로를 도시한 것이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 일 실시예에 사용되는 임베디드 메모리의 구성을 도시한 도면이고, 도 2는 본 발명의 일실시예에 사용되는 임베디드 메모리의 개별 셀의 구성을 도시한 도면이고, 도 3은 본 발명의 일실시예에 사용되는 임베디드 메모리의 통상적인 읽기 방법을 도시한 것이고, 도 4는 본 발명의 일실시예에 사용되는 임베디드 메모리의 통상적인 쓰기 방법을 도시한 것이다.
도 1에 도시된 바와 같이, 본 발명의 임베디드 메모리는 SRAM메모리 셀 어레이와 그 주변회로를 포함하는데, 주변회로로는 워드라인 구동부(WL Driver), 비트라인 구동부, 제어부(Controller)를 포함한다. 비트라인 구동부의 구성 요소로는 비트라인 프리차지부 (Precharge), 복수의 비트라인을 센스 증폭기와 선택적으로 접속하는 먹스(YMUX), 각 메모리 셀에 저장된 값을 감지하는 센스 증폭기, 비트라인 단위로 데이터를 입출력 하는 인터페이스(Data I/O)를 포함한다.
제어부는 주변회로의 각 구성 요소들의 동작을 제어하여, 본 발명에 따른 순차적 메모리 주소 접근에 따라 읽기 동작과 쓰기 동작을 각각 수행한다.
도 2는 SRAM 메모리 셀의 상세 구성과 읽기 동작 및 쓰기 동작을 각각 도시하고 있다. 각 메모리 셀은 2개의 인버터가 서로 연결된 플립플롭 구조를 가지며, 이는 종래 기술에 해당하는 것으로 상세한 설명은 생략한다. (a)에 도시된 바와 같이, 읽기 동작시에는 셀에 저장된 데이터가 비트라인(BL, BLb)으로 복사되는 형태로 동작하고, (b)에 도시된 바와 같이 쓰기 동작시에는 비트라인에 저장된 데이터가 셀에 복사되는 형태로 동작한다.
도 3은 종래의 읽기 동작을 설명하기 위한 도면으로서, 비트 인터리빙(Bit-Interleaving)의 개념을 도시하고 있다. 일반적인 SRAM은 방사능 등 외부 요인에 의한 버스트 에러(Burst Error)를 방지하고, 주변회로 설계의 효율성을 높이기 위해, 비트 인터리빙 구조를 사용한다. 비트 인터리빙 구조는 SRAM 셀의 집합으로 구성된 메모리 어레이에 대하여, 동일 워드라인에 결합된 복수의 메모리 셀들의 비트라인 (Bitline, BL)에 멀티플렉서(MUX)를 연결한 구성을 갖는 것을 특징으로 한다. 이로 인하여 비트 인터리빙 구조는 하나의 워드라인에 연결된 복수의 SRAM 셀들 중 선택된 열(column) 주소에 해당되는 셀들에 대해서만 먹스에 의해 접근되도록 한다. 도 3에서와 같이, 하나의 워드라인에 결합된 4개의 메모리 셀이 하나의 먹스에 연결되는 구조의 경우, 4개의 메모리 셀 중 어느 하나에 선택적으로 읽기 또는 쓰기 동작이 수행될 수 있다.
이와 같은 비트 인터리빙 구조 기반 SRAM의 동작 특징은 아래와 같다. 읽기 동작의 경우, 행(Row )주소를 통해 활성화된 워드라인에 연결된 모든 메모리 셀들은 각 비트라인에 각 메모리 셀에 저장된 값을 복제하는 방식으로 읽기 동작한다. 이 때, 선택된 열 주소에 해당하는 비트라인들만 읽기 동작을 담당하는 주변회로 (Sense-Amplifier 등)를 통해 접근되며, 나머지 선택되지 않은 열 주소에 해당하는 비트라인 값들은 데이터가 사용되지 않고 버려지게 된다. (b)에 도시된 바와 같이, 1번 위치의 데이터에 대한 읽기 동작 시 2, 3, 4번 위치에 데이터에 대한 값이 비트라인에 함께 읽혀지지만, 해당 데이터는 버려지고 다음 동작 사이클에서 다시 2번 위치의 데이터를 읽는 불필요한 반복이 발생한다. 이로인해 비트라인이 다음 동작을 위한 프리차지로 인하여 불필요한 전력 소모를 발생시킨다.
이러한 문제는 쓰기 동작에서도 마찬가지로 발생한다.
도 4에 도시된 바와 같이, 기존의 SRAM에 대한 쓰기 동작은 쓰기 드라이버 (Write Driver) 를 통해 비트라인을 구동하고, 각 비트라인에 기록하고자 하는 데이터를 설정한 상태에서 워드라인을 활성화시키는 방식으로 이루어진다. 비트 인터리빙 구조에서는 선택된 열 주소에 대해서만 해당 동작이 발생하며 선택되지 않은 열의 메모리 셀에 대해서는 기존 데이터 유지를 위한 읽기 동작이 수행된다. 예를들어, 1번 위치의 데이터에 대하여 쓰기 동작을 수행하는 경우, 2, 3, 4번 위치의 데이터에 대해서는 읽기 동작이 수행된다.
만약, 순차적인 열주소로 접근하는 인공 신경망 가속기 응용에 대하여, 비트 인터리빙 구조에서의 쓰기 동작이나 읽기 동작을 유지한다면, 불필요한 전력 소모를 발생시키는 문제가 발생할 수 있다.
도 5는 본 발명의 일 실시예에 따른 인공 신경망 가속기에서의 순차적 메모리 주소 접근의 개념을 설명하기 위한 도면이다.
비트 인터리빙 구조에서는, 서로 연속되는 데이터인 A0, A1, A2를 서로 다른 먹스에 접속된 메모리 셀들에 분산시켜, 버스트 에러에 대비한다. 마찬가지로, 서로 연속되는 데이터인 B0, B1, B2를 각각 분산시켜 저장한다.
그러나, 인공 신경망 가속기에서는 순차적으로 메모리 주소에 접근하는 형태로 각 데이터가 관리되며, 이 경우에는 A0, B0, C0, D0와 같이 순차적으로 입력된 데이터를 순차적으로 저장하는 형태로 데이터가 관리된다. 이와 같이, 순차적으로 메모리 주소에 접근함에 따라, 인공 신경망 가속기의 동작을 더욱 단순하게 제어할 수 있다.
도 6 내지 도 8은 본 발명의 일 실시예에 따른 인공 신경망 가속기를 위한 임베디드 메모리에서의 읽기 방법을 설명하기 위한 도면이다.
이때, 임베디드 메모리는 하드웨어 또는 소프트웨어적으로 비트 인터리빙 구조로 구동되는 SRAM 메모리이다.
먼저, 읽기 모드의 실행에 따라, 읽기 대상 셀들의 비트라인을 모두 프리차지 시킨다(S810). 이 동작은 종래의 읽기 동작에서의 프리차지 동작과 동일하다. 즉, 동일 워드라인에 접속된 메모리 셀들의 각 비트라인을 플로팅 상태로 유지한 상태에서, 각 비트라인(BL)을 하이레벨 상태로 유지한다.
다음으로, 읽기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시킨다(S820). 도 6에 도시된 펄스 시퀀스 도면과 같이, 워드라인을 활성화시키는 구간은 일정 기간(첫번째 클럭 펄스 구간)만 유지하고, 나머지 구간에서는 워드라인을 비활성화시킨다. 이와 같이, 일시적으로 워드라인을 활성화 하면, 도 2의 (a)와 같이, 메모리 셀의 인버터에 접속된 스위칭 소자(NMOS)가 일시적으로 턴온되고, 이에 따라 각 비트라인(BL, BLb)이 인버터들과 접속되어, 메모리 셀에 저장된 데이터에 따라, 각 비트라인의 전압 레벨이 변경된다. 즉, 메모리 셀에 '1'이 저장된 경우에는 비트라인(BL)이 하이레벨 상태를 유지하고, 메모리 셀에 '0'이 저장된 경우에는 비트라인(BL)이 로우레벨로 변화하게 된다.
다음으로, 순차적 메모리 주소 접근에 따라, 동일 먹스에 접속된 읽기 대상 셀들에 대해 순차적으로 읽기 동작을 수행한다(S830).
앞선 단계(S820)에서 워드라인이 일정시간 동안 활성화됨에 따라 프리차지 상태에 있던 비트라인이 각각 변화된 상태를 센스 증폭기를 통해 순차적으로 감지한다. 이때, 먹스는 각 비트라인 쌍과 접속된 상태에서, 각 비트라인 쌍의 데이터를 순차적으로 센스 증폭기에 전달한다. 예를 들면, 도 6에 도시된 바와 같이, 하나의 먹스에 4개의 메모리 셀(1번, 2번, 3번, 4번)이 접속된 경우, 1번부터 4번 메모리 셀의 데이터가 순차적으로 읽혀지게 된다. 한편, 이와 같은 동작은 각 먹스에 접속된 메모리 셀 단위로 동시에 병렬적으로 수행된다.
도 7을 참조하면, 종래의 읽기 동작((a) 도면)과 본 발명의 읽기 동작((b) 도면)의 차이를 확인할 수 있다. 종래의 경우 비트 인터리빙 방식에 따라 구동되므로, 동일 먹스에 접속된 메모리 셀에 경우에도, 매번 비트라인 프리차지 동작과 워드라인 활성화 동작을 별도로 수행하였다. 그러나, 본 발명에 따라 순차적 메모리 주소 접근에 따라 읽기 동작을 수행하는 경우, 동일 먹스에 접속된 읽기 대상 셀들에 대해서는 한번의 프리차지 동작과 한번의 워드라인 활성화 동작 만으로, 해당 메모리 셀들에 대한 읽기 동작을 모두 수행할 수 있게 된다.
도 9 내지 도 11은 본 발명의 일 실시예에 따른 인공 신경망 가속기를 위한 임베디드 메모리에서의 쓰기 방법을 설명하기 위한 도면이다.
이때, 임베디드 메모리는 하드웨어 또는 소프트웨어적으로 비트 인터리빙 구조로 구동되는 SRAM 메모리이다.
먼저, 쓰기 모드의 실행에 따라, 동일 먹스에 접속된 쓰기 대상 셀들의 비트라인에 입력 데이터를 설정하는 비트라인 드라이빙을 순차적으로 수행한다(S1110). 이 동작은 종래의 쓰기 동작과 가장 구별되는 특징이다.
종래의 경우 도 10의 (a)에 도시된 바와 같이, 쓰기 드라이버 (Write Driver) 를 통해 각 비트라인에 입력 데이터를 설정하고, 바로 워드라인을 활성화 시키는 방식으로 이루어진다. 비트 인터리빙 구조에서는 동일 먹스에 접속된 복수의 셀들 중 쓰기 동작을 위한 셀에 대해서만 비트라인 드라이빙을 수행하고, 쓰기 대상이 아닌 셀들에 대해서는 기존 데이터 유지를 위한 읽기 동작을 수행한다. 예를들어, 도 9에서, 1번 위치의 데이터에 대하여 쓰기 동작을 수행하는 경우, 2, 3, 4번 위치의 데이터에 대해서는 읽기 동작이 수행된다. 이러한 동작은 순차적인 메모리 접근을 하는데 있어, 불필요한 전력 소모를 발생 시킨다.
본 발명에서는 이러한 문제를 해결하기 위해, 도 9 또는 도 10의 (b)에 도시된 바와 같이, 동일 먹스에 접속된 쓰기 대상 셀들의 비트라인에 입력 데이터를 설정하는 비트라인 드라이빙을 순차적으로 수행한다. 예를 들어, 도 9에서, 1번 내지 4번 위치의 셀들에 대하여 순차적으로 데이터 쓰기 동작을 수행하므로, 1번 내지 4번 위치의 셀들에 대하여 순차적으로 비트라인 드라이빙을 수행한다. 즉, 종래 기술과는 달리, 쓰기 동작을 수행하는 셀 이외에 셀에 대해 데이터 유지를 위한 읽기 동작을 별도로 수행하지 않는다.
다음으로, 동일 먹스에 접속된 쓰기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시켜 쓰기 동작을 통합적으로 수행한다(S1120)
이때, 동일 먹스에 접속된 쓰기 대상 셀들에 대해 순차적으로 비트라인 드라이빙을 수행하고, 해당 쓰기 대상 셀들 중 가장 마지막에 비트라인 드라이빙을 수행하는 타이밍에 동기하여 워드라인을 일정시간 동안 활성화한다.
도 9에 도시된 펄스 시퀀스 도면과 같이워드라인을 활성화시키는 구간은 일정 기간(네번째 클럭 펄스 구간)만 유지하고, 나머지 구간에서는 워드라인을 비활성화시킨다. 이와 같이, 일시적으로 워드라인을 활성화 하면, 도 2의 (b)와 같이, 메모리 셀의 인버터에 접속된 스위칭 소자(NMOS)가 일시적으로 턴온되고, 이에 따라 각 비트라인(BL, BLb)이 인버터들과 접속되어, 비트라인 드라이빙을 통해 설정된 입력 데이터가 메모리 셀에 저장된다.
이와 같은 쓰기 동작은 동일 먹스에 접속된 메모리 셀들에 대하여 동시에 수행된다.
도 10을 참조하면, 종래의 쓰기 동작((a) 도면)과 본 발명의 쓰기 동작((b) 도면)의 차이를 확인할 수 있다. 종래의 경우 비트 인터리빙 방식에 따라 구동되므로, 동일 먹스에 접속된 메모리 셀에 경우에도, 매번 비트라인 드라이빙 동작과 워드라인 활성화 동작을 별도로 수행하였다. 그러나, 본 발명에 따라 순차적 메모리 주소 접근에 따라 쓰기 동작을 수행하는 경우, 동일 먹스에 접속된 쓰기 대상 셀들에 대해서는 순차적으로 비트라인 드라이빙 동작을 수행하고 한번의 워드라인 활성화 동작 만으로, 해당 메모리 셀들에 대한 쓰기 동작을 모두 수행할 수 있게 된다.
도 12는 본 발명의 일 실시예에 따른 임베디드 메모리에 추가되는 보조 회로를 도시한 것이다.
본 발명에서는 비트라인이 일시적으로 데이터를 저장할 수 있는 능력을 활용한다. 만약 하나의 비트라인에 연결된 복수의 메모리 셀 들이 비트라인에 저장되야하는 데이터와 반대의 값을 갖는 경우 누설전류 효과로 인하여 데이터가 소실될 가능성이 발생한다. (a)에 도시된 바와 같이, 메모리 셀을 구성하는 2 개의 인버터에서, 제 1 인버터의 출력은 '1'이 유지되고, 제 2 인버터의 출력은 '0'이 유지되고 있는 상태에서, 해당 비트라인에 하이레벨의 데이터 '1'가 설정될 경우, 누설 전류로 인해, 비트라인의 데이터가 소실될 우려가 있다.
이를 해결하기 위하여 각 비트라인에는 누설전류로 인한 데이터 손실을 방지할 수 있는 클램퍼(Clamper)회로가 함께 사용될 수 있다. 이는, 비트라인에 저장될 데이터의 전압 레벨을 조정하여 SRAM 동작의 안정도를 높이는 보조회로 (SRAM Assist Circuit)에 용이하게 구성이 가능하다. 클램퍼 회로의 구성 자체는 일반적으로 사용되는 구조 이며, 읽기 동작 또는 쓰기 동작에 모두 사용될 수 있다.
읽기 동작 모드가 실행될 때, 제어부는 워드라인을 활성화시키고, 활성화된 워드라인에 있는 모든 셀의 데이터를 비트라인으로 복사한다. 워드라인 활성화가 끝나면, 클램퍼 인에이블 신호(CL_EN)를 활성화 시켜서, 플로팅 상태의 비트라인이 데이터를 유지하도록 한다. 이후, 순차적 메모리 주소 접근에 따라, 선택된 읽기 대상 비트라인에서 순차적으로 읽기 동작을 수행한다.
쓰기 동작 모드가 실행될 때, 제어부는 순차적 메모리 주소에 따라, 선택된 비트라인에 드라이빙을 수행한다. 이 때, 선택된 비트라인에 해당하는 클램퍼 인에이블(CL_EN) 신호를 활성화시켜서 플로팅 상태의 비트라인이 데이터를 유지하도록 한다. 마지막 비트라인이 드라이빙 될 때, 제어부는 워드라인을 활성화 시키고, 비트라인에 있는 모든 데이터를 셀로 복사한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (9)

  1. 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법에 있어서,
    상기 임베디드 메모리는 비트 인터리빙 구조로 구동되는 SRAM 메모리이고,
    읽기 동작 모드의 실행에 따라, 읽기 대상 셀들의 비트라인을 모두 프리차지 시키는 단계;
    읽기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시키는 단계; 및
    순차적 메모리 주소 접근에 따라, 동일 먹스에 접속된 읽기 대상 셀들에 대해 순차적으로 읽기 동작을 수행하는 단계;
    를 포함하는 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법.
  2. 제 1 항에 있어서,
    상기 순차적으로 읽기 동작을 수행하는 단계는
    상기 워드라인이 일정시간 동안 활성화됨에 따라 프리차지 상태에 있던 비트라인이 각각 변화된 상태를 센스 증폭기를 통해 순차적으로 감지하는 것인, 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법.
  3. 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법에 있어서,
    상기 임베디드 메모리는 비트 인터리빙 구조로 구동되는 SRAM 메모리이고,
    쓰기 동작 모드의 실행에 따라, 동일 먹스에 접속된 쓰기 대상 셀들의 비트라인에 입력 데이터를 설정하는 비트라인 드라이빙을 순차적으로 수행하는 단계; 및
    상기 동일 먹스에 접속된 쓰기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시켜 쓰기 동작을 수행하는 단계를 포함하는 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법.
  4. 제 3 항에 있어서,
    상기 워드라인을 일정시간 동안 활성화시켜 쓰기 동작을 수행하는 단계는
    상기 동일 먹스에 접속된 쓰기 대상 셀들에 대해 순차적으로 비트라인 드라이빙을 수행하고, 해당 쓰기 대상 셀들 중 가장 마지막에 비트라인 드라이빙을 수행하는 타이밍에 동기하여 상기 워드라인을 일정시간 동안 활성화시키는 것인, 인공 신경망 가속기를 위한 임베디드 메모리의 구동 방법.
  5. 인공 신경망 가속기를 위한 임베디드 메모리에 있어서,
    비트 인터리빙 구조로 구동되는 SRAM 메모리; 및
    상기 SRAM 메모리의 읽기 동작과 쓰기 동작을 수행하는 제어부를 포함하되,
    상기 제어부는 읽기 동작 모드의 실행에 따라, 읽기 대상 셀들의 비트라인을 모두 프리차지시키고, 읽기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시킨 후, 순차적 메모리 주소 접근에 따라, 동일 먹스에 접속된 읽기 대상 셀들에 대해 순차적으로 읽기 동작을 수행하는 것인, 인공 신경망 가속기를 위한 임베디드 메모리.
  6. 제 5 항에 있어서,
    상기 제어부는 순차적으로 읽기 동작을 수행하는 과정에서, 상기 워드라인이 일정시간 동안 활성화됨에 따라 프리차지 상태에 있던 비트라인이 각각 변화된 상태를 센스 증폭기를 통해 순차적으로 감지하는 것인, 인공 신경망 가속기를 위한 임베디드 메모리.
  7. 제 5 항에 있어서,
    상기 제어부는 쓰기 동작 모드의 실행에 따라, 동일 먹스에 접속된 쓰기 대상 셀들의 비트라인에 입력 데이터를 설정하는 비트라인 드라이빙을 순차적으로 수행하고, 상기 동일 먹스에 접속된 쓰기 대상 셀들에 연결된 워드라인을 일정시간 동안 활성화시켜 쓰기 동작을 수행하는 것인, 인공 신경망 가속기를 위한 임베디드 메모리.
  8. 제 7 항에 있어서,
    상기 제어부는 상기 워드라인을 일정시간 동안 활성화시켜 쓰기 동작을 수행하는 과정에서, 상기 동일 먹스에 접속된 쓰기 대상 셀들에 대해 순차적으로 비트라인 드라이빙을 수행하고, 해당 쓰기 대상 셀들 중 가장 마지막에 비트라인 드라이빙을 수행하는 타이밍에 동기하여 상기 워드라인을 일정시간 동안 활성화시키는 것인, 인공 신경망 가속기를 위한 임베디드 메모리.
  9. 제 7 항에 있어서,
    상기 SRAM 메모리의 비트라인의 전압을 일정 상태로 유지시키는 클램퍼회로를 더 포함하는 것인, 인공 신경망 가속기를 위한 임베디드 메모리
KR1020210145685A 2021-10-28 2021-10-28 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법 KR20230060942A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210145685A KR20230060942A (ko) 2021-10-28 2021-10-28 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법
PCT/KR2022/016683 WO2023075495A1 (ko) 2021-10-28 2022-10-28 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210145685A KR20230060942A (ko) 2021-10-28 2021-10-28 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법

Publications (1)

Publication Number Publication Date
KR20230060942A true KR20230060942A (ko) 2023-05-08

Family

ID=86159636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210145685A KR20230060942A (ko) 2021-10-28 2021-10-28 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법

Country Status (2)

Country Link
KR (1) KR20230060942A (ko)
WO (1) WO2023075495A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101948415B1 (ko) 2017-03-07 2019-02-14 연세대학교 산학협력단 비선택 비트라인 전하에 의한 셀 대지전압 상승을 이용한 정적 메모리 및 쓰기 보조 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046568B2 (en) * 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US8971133B1 (en) * 2013-09-26 2015-03-03 Arm Limited Memory device and method of operation of such a memory device
CN109643572A (zh) * 2016-09-12 2019-04-16 株式会社半导体能源研究所 存储装置及其工作方法、半导体装置、电子构件以及电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101948415B1 (ko) 2017-03-07 2019-02-14 연세대학교 산학협력단 비선택 비트라인 전하에 의한 셀 대지전압 상승을 이용한 정적 메모리 및 쓰기 보조 방법

Also Published As

Publication number Publication date
WO2023075495A1 (ko) 2023-05-04

Similar Documents

Publication Publication Date Title
US10049709B2 (en) Port modes for use with memory
US5471430A (en) Test circuit for refresh counter of clock synchronous type semiconductor memory device
KR100518598B1 (ko) 캠 셀 어레이의 결함 여부 테스트가 가능한 캠 및 캠 셀어레이의 결함 여부 테스트 방법
US6359813B1 (en) Semiconductor memory device having improved data transfer rate without providing a register for holding write data
US6018487A (en) Read-only memory device having bit line discharge circuitry and method of reading data from the same
JP2012164416A (ja) 行および列へのアクセス動作を同期させるための方法および装置
JPH08273365A (ja) 半導体記憶装置
US7304908B2 (en) SRAM device capable of performing burst operation
JPS63244494A (ja) 半導体記憶装置
US10885982B2 (en) Semiconductor memory device and control method therefor
US9548101B2 (en) Retention optimized memory device using predictive data inversion
US8724359B2 (en) Methods and circuits for limiting bit line leakage current in a content addressable memory (CAM) device
USRE46474E1 (en) Multiple write during simultaneous memory access of a multi-port memory device
US6891770B2 (en) Fully hidden refresh dynamic random access memory
EP2082399B1 (en) Memory bus output driver of a multi-bank memory device and method therefor
US5724294A (en) Self-tracking sense amplifier strobing circuit and method
JP4342350B2 (ja) 半導体メモリ装置
JP3068426B2 (ja) 半導体記憶装置
US5943288A (en) Apparatus and method for minimizing address hold time in asynchronous SRAM
US9324414B2 (en) Selective dual cycle write operation for a self-timed memory
US5481496A (en) Semiconductor memory device and method of data transfer therefor
US6487132B2 (en) Integrated circuit memory devices having multiple input/output buses and precharge circuitry for precharging the input/output buses between write operations
KR20230060942A (ko) 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법
US6137715A (en) Static random access memory with rewriting circuit
JP2001243764A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal