KR20230026075A - Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법 - Google Patents

Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법 Download PDF

Info

Publication number
KR20230026075A
KR20230026075A KR1020210108025A KR20210108025A KR20230026075A KR 20230026075 A KR20230026075 A KR 20230026075A KR 1020210108025 A KR1020210108025 A KR 1020210108025A KR 20210108025 A KR20210108025 A KR 20210108025A KR 20230026075 A KR20230026075 A KR 20230026075A
Authority
KR
South Korea
Prior art keywords
buffer
row
data
row data
decoder
Prior art date
Application number
KR1020210108025A
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 KR1020210108025A priority Critical patent/KR20230026075A/ko
Publication of KR20230026075A publication Critical patent/KR20230026075A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • 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/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Dram (AREA)

Abstract

개시된 발명의 일 실시예에 따른 복수의 뱅크와 각 뱅크 단위로 마련되는 프로세싱 엘리먼트를 포함하는 RAM 메모리 장치는, 상기 각 뱅크는, 행과 열 단위로 분할되는 복수의 서브 어레이 및 각 서브 어레이와 대응되는 로컬 버퍼를 포함하고, 상기 각 서브 어레이는, 행 단위로 배열되는 복수의 메모리 셀을 포함하고, 상기 로컬 버퍼는, 같은 서브 어레이로부터 서로 독립적으로 행 데이터를 전달받도록 구성되는 둘 이상의 버퍼를 포함하는 다중 버퍼로 구성되고, 상기 다중 버퍼는: 상기 서브 어레이로부터 PIM(Processing In Memory) 연산을 위한 제1 행 데이터를 전달받도록 구성되는 제1 버퍼; 및 상기 서브 어레이로부터 상기 PIM 연산을 위한 제2 행 데이터를 전달받도록 구성되는 제2 버퍼;를 포함하고, 상기 프로세싱 엘리먼트는, 상기 제1 버퍼에 저장된 상기 제1 행 데이터 및 상기 제2 버퍼에 저장된 상기 제2 행 데이터를 기초로 상기 PIM 연산을 수행하도록 구성될 수 있다.

Description

RAM 메모리에 기반한 PIM 연산 장치 및 RAM 메모리에 기반한 PIM 연산 방법{PROCESSING IN MEMORY DEVICE BASED ON RANDOM ACCESS MEMORY AND PROCESSING IN MEMORY METHOD BASED ON RANDOM ACCESS MEMORY}
본 발명은 메모리의 각 서브 어레이마다 대응되는 복수의 버퍼 및 복수의 디코더를 이용하여 PIM(Processing-In-Memory) 연산의 속도를 증가시킬 수 있는 RAM 메모리 장치 및 RAM 메모리 장치의 제어 방법에 관한 것이다. 본 발명은 삼성전자에 의해 지원된 삼성미래기술육성사업의 일환으로 수행한 연구과제(과제명: DRAM 기반의 인 메모리 연산을 위한 시스템소프트웨어 연구)로부터 도출된 것이다.
메모리 장치(memory device)는 용량 및 속도가 증가하고 있다. 메모리 장치는 데이터를 저장하는 용도로 이용될 수 있다. 최근의 메모리 장치는 신경망 네트워크(neural network), 심층 신경망 네트워크(Deep Neural Network; DNN) 등과 같이 다양한 종류의 연산 처리에 이용되는 데이터를 저장하거나 연산 처리 결과를 저장하는 용도로 이용되고 있다.
연산을 수행하는 프로세서의 성능 향상은 딥 러닝에 대한 이와 같은 광범위한 관심의 배경과 원인들 중 하나이다. 인공 지능의 성능을 향상시키기 위해서 하드웨어에 요구되는 연산양이 증가하였으며, 메모리와 프로세서가 분리되는 기존의 하드웨어의 경우, 메모리와 프로세서 사이의 데이터 통신의 제약으로 하드웨어의 성능 향상이 제한되고 있다.
이를 해결하기 위해, 최근에는 반도체 칩 자체에서 프로세서 및 메모리가 일체화된 PIM 기반의 장치가 신경망 컴퓨팅 장치로서 사용되고 있는 추세이다. PIM 기반의 장치는 PIM 기반의 장치 내부에서 직접 연산 동작을 수행하므로, 데이터 처리 속도를 향상시킨다.
하지만, 종래의 PIM 기반의 장치에 의하면, 메모리의 로컬 버퍼(local buffer)는 대응되는 서브 어레이(sub array)로부터 한 번에 하나의 데이터만을 전달받을 수 있다. 이는 PIM 연산 과정에서 서로 다른 데이터 셀에 저장된 복수의 데이터가 필요한 경우, 로컬 버퍼가 해당 PIM 연산에 필요한 데이터들을 순차적으로 전달받은 후 해당 PIM 연산이 종료될 때까지는 서브 어레이로부터 데이터를 전달받을 수 없다는 문제가 있다.
본 발명은 각 서브 어레이마다 대응되는 복수의 버퍼 및 복수의 디코더를 이용하여, 기존의 PIM 연산 장치 및 PIM 연산 방법보다 PIM 연산에 필요한 시간을 감소시키고 연산의 처리량을 개선할 수 있는 RAM 메모리 장치 및 RAM 메모리 장치의 제어 방법을 제공하기 위한 것이다.
또한, 본 발명은 유저(user) 수준의 적절한 data-layout을 위한 별도의 수정이 없더라도, data-layout과 비슷한 효과 및 이득을 얻을 수 있는 RAM 메모리 장치 및 RAM 메모리 장치의 제어 방법을 제공하기 위한 것이다.
또한, 본 발명은 복잡한 과정 없이 서브 어레이에 저장된 복수개의 행에 각각 저장된 데이터들의 행 위치를 서로 변경할 수 있어서 종래의 방법보다 서브 어레이 상에서의 데이터 위치를 변경하는데 필요한 시간 및 에너지를 감소시킬 수 있는 RAM 메모리 장치 및 RAM 메모리 장치의 제어 방법을 제공하기 위한 것이다.
개시된 발명의 일 측면에 따른 복수의 뱅크와 각 뱅크 단위로 마련되는 프로세싱 엘리먼트를 포함하는 RAM 메모리 장치는, 상기 각 뱅크는, 행과 열 단위로 분할되는 복수의 서브 어레이 및 각 서브 어레이와 대응되는 로컬 버퍼를 포함하고, 상기 각 서브 어레이는, 행 단위로 배열되는 복수의 메모리 셀을 포함하고, 상기 로컬 버퍼는, 같은 서브 어레이로부터 서로 독립적으로 행 데이터를 전달받도록 구성되는 둘 이상의 버퍼를 포함하는 다중 버퍼로 구성되고, 상기 다중 버퍼는: 상기 서브 어레이로부터 PIM(Processing In Memory) 연산을 위한 제1 행 데이터를 전달받도록 구성되는 제1 버퍼; 및 상기 서브 어레이로부터 상기 PIM 연산을 위한 제2 행 데이터를 전달받도록 구성되는 제2 버퍼;를 포함하고, 상기 프로세싱 엘리먼트는, 상기 제1 버퍼에 저장된 상기 제1 행 데이터 및 상기 제2 버퍼에 저장된 상기 제2 행 데이터를 기초로 상기 PIM 연산을 수행하도록 구성될 수 있다.
또한, 상기 제2 버퍼는, 상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받고, 상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 메모리 셀의 데이터가 저장되도록 구성될 수 있다.
또한, 상기 제2 버퍼는, 상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구(precharge)하도록 구성될 수 있다.
또한, 상기 제2 버퍼는, 상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구한 후, 상기 메모리 셀로부터 상기 다음 PIM 연산에 이용될 데이터를 전달받도록 구성될 수 있다.
또한, 상기 제1 버퍼는, 상기 제2 버퍼가 상기 제2 행 데이터를 저장하고 있는 동안, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않게 유지하도록 구성될 수 있다.
또한, 상기 각 서브 어레이와 대응되는 로컬 디코더;를 더 포함하고, 상기 로컬 디코더는, 상기 로컬 버퍼에 저장된 행 데이터 중 열 데이터를 서로 독립적으로 선택하도록 구성되는 둘 이상의 디코더를 포함하는 다중 디코더로 구성되고, 상기 다중 디코더는: 상기 제1 버퍼에 저장된 제1 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하도록 구성되는 제1 디코더; 및 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하도록 구성되는 제2 디코더;를 포함하고, 상기 프로세싱 엘리먼트는, 상기 제1 디코더 및 상기 제2 디코더가 선택한 열 데이터들을 기초로 상기 PIM 연산을 수행하도록 구성될 수 있다.
또한, 상기 제2 디코더는, 상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 열 데이터를 선택할 수 있도록 구성될 수 있다.
또한, 상기 제1 버퍼는, 상기 제2 디코더가 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 열 데이터를 선택하기 전에, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드를 수신하도록 구성될 수 있다.
또한, 상기 제1 버퍼는, 상기 서브 어레이의 제1 행 메모리 셀로부터 상기 제1 행 데이터를 전달받고, 상기 제1 행 데이터를 제2 행 메모리 셀로 복구하도록 구성되고, 상기 제2 버퍼는, 상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받고, 상기 제2 행 데이터를 상기 제1 행 메모리 셀로 복구하도록 구성될 수 있다.
개시된 발명의 일 측면에 따른 복수의 뱅크와 각 뱅크 단위로 마련되는 프로세싱 엘리먼트를 포함하고, 상기 각 뱅크는 행과 열 단위로 분할되는 복수의 서브 어레이 및 각 서브 어레이와 대응되는 로컬 버퍼를 포함하고, 상기 각 서브 어레이는 행 단위로 배열되는 복수의 메모리 셀을 포함하는, RAM 메모리 장치의 제어 방법은, 상기 로컬 버퍼에 포함된 둘 이상의 버퍼를 포함하는 다중 버퍼에 의해, 같은 서브 어레이로부터 서로 독립적으로 행 데이터를 전달받는 단계; 상기 다중 버퍼에 포함된 제1 버퍼에 의해, 상기 서브 어레이로부터 PIM 연산을 위한 제1 행 데이터를 전달받는 단계; 상기 다중 버퍼에 포함된 제2 버퍼에 의해, 상기 서브 어레이로부터 상기 PIM 연산을 위한 제2 행 데이터를 전달받는 단계; 상기 프로세싱 엘리먼트에 의해, 상기 제1 버퍼에 저장된 상기 제1 행 데이터 및 상기 제2 버퍼에 저장된 상기 제2 행 데이터를 기초로 상기 PIM 연산을 수행하는 단계;를 포함할 수 있다.
또한, 상기 제2 버퍼에 의해, 상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받는 단계; 및 상기 제2 버퍼에 의해, 상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 메모리 셀의 데이터가 저장되는 단계;를 더 포함할 수 있다.
또한, 상기 제2 버퍼에 의해, 상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구하는 단계;를 더 포함할 수 있다.
또한, 상기 제2 버퍼에 의해, 상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구한 후, 상기 메모리 셀로부터 상기 다음 PIM 연산에 이용될 데이터를 전달받는 단계;를 더 포함할 수 있다.
또한, 상기 제1 버퍼에 의해, 상기 제2 버퍼가 상기 제2 행 데이터를 저장하고 있는 동안, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않게 유지하는 단계;를 더 포함할 수 있다.
또한, 상기 각 서브 어레이와 대응되는 로컬 디코더에 포함된 둘 이상의 디코더를 포함하는 다중 디코더에 의해, 상기 로컬 버퍼에 저장된 행 데이터 중 열 데이터를 서로 독립적으로 선택하는 단계; 및 상기 다중 디코더에 포함된 제1 디코더에 의해, 상기 제1 버퍼에 저장된 제1 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하고, 상기 다중 디코더에 포함된 제2 디코더에 의해, 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하는 단계;를 더 포함하고, 상기 PIM 연산을 수행하는 단계는, 상기 프로세싱 엘리먼트에 의해, 상기 제1 디코더 및 상기 제2 디코더가 선택한 열 데이터들을 기초로 상기 PIM 연산을 수행하는 단계;를 포함할 수 있다.
또한, 상기 열 데이터를 선택하는 단계는, 상기 제2 디코더에 의해, 상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 열 데이터를 선택하는 단계;를 포함할 수 있다.
또한, 상기 제1 버퍼에 의해, 상기 제2 디코더가 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 열 데이터를 선택하기 전에, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드를 수신하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 버퍼에 의해, 상기 서브 어레이의 제1 행 메모리 셀로부터 상기 제1 행 데이터를 전달받고, 상기 제1 행 데이터를 제2 행 메모리 셀로 복구하는 단계; 및 상기 제2 버퍼에 의해, 상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받고, 상기 제2 행 데이터를 상기 제1 행 메모리 셀로 복구하는 단계;를 더 포함할 수 있다.
개시된 발명의 일 측면에 따른 컴퓨터 프로그램은 상기 RAM 메모리 장치의 제어 방법을 실행시키도록 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
개시된 발명의 일 측면에 따르면, 각 서브 어레이마다 대응되는 복수의 버퍼 및 복수의 디코더를 이용하여, 기존의 PIM 연산 장치 및 PIM 연산 방법보다 PIM 연산에 필요한 시간을 감소시키고 연산의 처리량을 개선할 수 있다.
또한, 본 발명의 실시예에 의하면, 유저(user) 수준의 적절한 data-layout을 위한 별도의 수정이 없더라도, data-layout과 비슷한 효과 및 이득을 얻을 수 있다.
또한, 본 발명의 실시예에 의하면, 복잡한 과정 없이 서브 어레이에 저장된 복수개의 행에 각각 저장된 데이터들의 행 위치를 서로 변경할 수 있어서 종래의 방법보다 서브 어레이 상에서의 데이터 위치를 변경하는데 필요한 시간 및 에너지를 감소시킬 수 있다.
도 1은 일 실시예에 따른 RAM 메모리 장치의 구성도이다.
도 2는 일 실시예에 따른 뱅크와 서브 어레이 간의 관계를 도시한 도면이다.
도 3은 일 실시예에서 RAM 메모리 장치 및 뱅크의 구조를 도시한 도면이다.
도 4는 일 실시예에 따른 RAM의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 RAM 메모리 장치의 제어 방법을 설명하기 위한 도면이다.
도 6은 종래의 기술에 따른 PIM 연산 과정을 도시한 도면이다.
도 7은 일 실시예에 따른 PIM 연산 과정을 도시한 도면이다.
도 8은 일 실시예에 따른 다중 버퍼에 의하여 행 데이터의 위치를 변경하는 것을 나타낸 도면이다.
도 9는 종래의 기술에 따른 행 데이터의 위치를 변경하는 과정을 나타낸 도면이다.
도 10은 일 실시예에 따른 행 데이터의 위치를 변경하는 과정을 도시한 도면이다.
도 11은 일 실시예에 따른 RAM 메모리 장치의 제어 방법의 순서도이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '~부'라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '~부'가 하나의 구성요소로 구현되거나, 하나의 '~부'가 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 전기적으로 연결된 경우를 포함하며, 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 개시된 발명의 작용 원리 및 실시예들에 대해 설명한다.
도 1은 일 실시예에 따른 RAM 메모리 장치의 구성도이고, 도 2는 일 실시예에 따른 뱅크와 서브 어레이 간의 관계를 도시한 도면이며, 도 3은 일 실시예에서 RAM 메모리 장치 및 뱅크의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 RAM 메모리 장치(1)는, 복수의 뱅크(Bank)(100) 및 각 뱅크 단위로 마련되는 프로세싱 엘리먼트(Processing Element; PE)(200)를 포함할 수 있다.
RAM 메모리 장치(1)는 연산에 필요한 데이터를 저장할 수 있다. RAM 메모리 장치(1)는 데이터를 일시적으로 기억하기 위한 SRAM(Static Random Access Memory, S-RAM), DRAM(Dynamic Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다.
뱅크(100)는, 메모리 장치에 대한 중앙 처리 장치의 독립적인 접근이 가능하도록 메모리 장치가 여러 부분으로 분할되었을 때, 메모리 장치의 분할된 한 부분일 수 있다. 메모리 장치가 복수의 뱅크(100)로 구성될 경우, 중앙 처리 장치가 복수개의 뱅크(100) 중에서 어느 한 뱅크(100)에 접근할 때 입출력 장치가 다른 뱅크(100)에 접근할 수 있어서 메모리 장치의 효율을 높일 수 있다.
프로세싱 엘리먼트는 독자적인 명령을 분석, 수행할 수 있는 능력을 가지는 소자일 수 있다. 구체적으로, 프로세싱 엘리먼트는, 메모리 장치에 저장된 데이터를 기초로 PIM(Processing In Memory) 연산을 수행할 수 있다.
기존의 컴퓨팅 기술의 경우 중앙 처리 장치(CPU)가 여러 계층의 캐시를 거쳐 칩 외부의 메인 메모리로부터 데이터를 읽고 처리하는 방식이었다. 이는 대용량 데이터를 처리하는 애플리케이션의 경우 캐시의 크기에 비하여 처리할 데이터가 매우 크기 때문에 대부분의 데이터를 메인 메모리에서 읽어오므로, 중앙 처리 장치와 메인 메모리 사이에 대역폭이 메모리 장치의 성능에 병목이 될 수 있었고, 중앙 처리 장치와 메인 메모리 사이에 데이터를 전송하는데 많은 에너지를 낭비할 수 있다는 단점이 있었다. 즉, 데이터를 저장하는 메모리와 데이터를 계산하는 프로세서가 분리된 구조인 이상 기존의 컴퓨팅 기술은 메모리 벽 문제가 발생하였다.
PIM 연산 방식은 메모리 장치 안에서 또는 메모리 장치 근처에서 연산을 할 수 있은 방식이므로 중앙 처리 장치와 메인 메모리 사이의 대역폭 제한에 영향을 받지 않고 성능을 개선할 수 있다. 또한, PIM 연산 방식은 데이터를 중앙 철리 장치까지 가져갈 필요가 없으므로 에너지를 절감할 수 있다.
도 2를 참조하면, 각 뱅크(100)는 행과 열 단위로 분할되는 복수의 서브 어레이(110)를 포함할 수 있다. 즉, 서브 어레이(110)는 뱅크(100)에서 매트릭스의 형태로 배열될 수 있다.
서브 어레이(110)는 복수의 워드 라인(Wordline), 복수의 비트 라인(Bitline) 및 워드 라인과 비트라인의 교차 영역에 배열된 복수의 메모리 셀을 포함할 수 있다.
감지 증폭기(Sense Amplifiers)는 각 열 방향으로 배열된 서브 어레이(110)들 사이에 배치될 수 있다. 감지 증폭기는 인접한 각 서브 어레이(110)의 동일한 열을 따라 배열된 비트 라인에 연결될 수 있다. 즉, 감지 증폭기들은 인접한 서브 어레이(110)들에 의해 공유될 수 있다.
뱅크(100)는 하나의 행 데이터 정보를 저장할 수 있는 행 버퍼(Row buffer)를 포함할 수 있다. 뱅크(100)에 포함된 행 디코더(Row decoder)가 원하는 행(row)을 선택하면 해당 행에 있는 데이터인 행 데이터가 행 버퍼에 전달될 수 있다. 행 버퍼로 전달된 행 데이터 중에서, 열 디코더(Column decoder)를 통해 원하는 열(column)을 선택하는 방식으로 원하는 행 및 열의 데이터를 RAM 메모리 장치(1)로부터 출력할 수 있다.
도 1 및 도 3을 참조하면, 각 뱅크(100)는, 각 서브 어레이(110)와 대응되는 로컬 버퍼(120)를 포함할 수 있다.
종래의 로컬 버퍼는 하나의 서브 어레이에 대응되는 단일의 버퍼로 구성되었다. 즉, 종래의 기술에 의하면 로컬 버퍼는 대응되는 각 서브 어레이로부터 한 번에 하나의 행 데이터만을 전달받을 수 있었다. 이는 PIM 연산 과정에서 서로 다른 행의 데이터 셀에 저장된 복수의 데이터가 필요한 경우, 로컬 버퍼가 PIM 연산에 필요한 행 데이터들을 순차적으로 전달받은 후 PIM 연산이 종료될 때까지는 서브 어레이로부터 데이터를 전달받을 수 없다는 문제가 있었다.
본 발명에 따른 로컬 버퍼(120)는 다중 버퍼로 구성될 수 있다. 다중 버퍼는 같은 서브 어레이(110)로부터 서로 독립적으로 행 데이터를 전달받도록 구성되는 둘 이상의 버퍼를 포함할 수 있다. 다중 버퍼는 제1 버퍼(121) 및 제2 버퍼(122)를 포함할 수 있다.
RAM 메모리 장치(1)는 각 서브 어레이(110)와 대응되는 로컬 디코더(130)를 포함할 수 있다.
로컬 디코더(130)는 다중 디코더로 구성될 수 있다.
다중 디코더는 로컬 버퍼(120)에 저장된 행 데이터 중 열 데이터를 서로 독립적으로 선택하도록 구성되는 둘 이상의 디코더를 포함할 수 있다. 다중 디코더는 제1 디코더(131) 및 제2 디코더(132)를 포함할 수 있다.
도 4는 일 실시예에 따른 RAM의 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 디코더 및 버퍼는 각 동작들을 트리거(Trigger)하는 커멘드(Command)를 입력받을 수 있다.
복구 동작(precharge; PRE)은 이미 이용된 행 데이터가 저장되어 있던 특정한 행 메모리 셀을 닫음으로써, 디코더가 다른 필요한 데이터가 저장된 또 다른 행 메모리 셀에 접근이 가능해지도록 하는 동작일 수 있다.
즉, 복구(PRE) 동작은 PIM 연산에 필요한 어느 특정 행 데이터를 특정 행 메모리 셀로부터 다중 버퍼가 전달받은 뒤, 다시 해당 행 데이터를 해당 행 메모리 셀로 전달하는 동작일 수 있다.
버퍼가 서브 어레이(110)로부터 PIM 연산을 위한 행 데이터를 전달받는 Activation 동작(RAS)은 행 디코더가 특정한 행을 선택하여 해당 행의 메모리 셀에 저장된 행 데이터를 행 버퍼로 전달하는 동작일 수 있다.
읽기 또는 쓰기 동작(CAS)은 버퍼로 전달된 행 데이터 중에서 특정한 열을 선택하여 버퍼에 저장된 행 데이터에 있는 해당 열의 열 데이터를 읽거나 쓰는 동작일 수 있다.
도 5는 일 실시예에 따른 RAM 메모리 장치의 제어 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 제1 버퍼(121)는 서브 어레이(110)로부터 PIM 연산을 위한 제1 행 데이터를 전달(Activation; ACT)받을 수 있다.
제2 버퍼(122)는 서브 어레이(110)로부터 PIM 연산을 위한 제2 행 데이터를 전달(Activation; ACT)받을 수 있다.
한편, 다중 버퍼가 반드시 2개의 버퍼만을 포함해야 하는 것은 아니며, 3개 이상의 버퍼를 포함하고, 3개 이상의 각 버퍼가 서로 독립적으로 서브 어레이(110)로부터 PIM 연산을 위한 행 데이터를 전달받을 수도 있다.
또한 제1 행 데이터 및 제2 행 데이터는 제1 버퍼(121) 및 제2 버퍼(122)가 각각 전달받는 행 데이터를 구분하기 위한 표현일 뿐, 반드시 서로 다른 행 데이터여야 하는 것은 아니다. 즉, 제1 버퍼(121)를 통해 선택할 데이터 및 제2 버퍼(122)를 통해 선택할 데이터가 서로 동일하거나 동일하지 않더라도 같은 행의 서브 어레이(110)에 위치할 경우, 제1 버퍼(121) 및 제2 버퍼(122)는 동일한 행 데이터를 제1 행 데이터 및 제2 행 데이터로서 전달받을 수 있다.
프로세싱 엘리먼트는, 제1 버퍼(121)에 저장된 제1 행 데이터 및 제2 버퍼(122)에 저장된 제2 행 데이터를 기초로 PIM 연산을 수행할 수 있다.
프로세싱 엘리먼트는 RAM 메모리 장치(1)에 포함된 복수개의 프로세서 중 어느 하나의 프로세서를 포함할 수 있다. 또한, 지금까지 설명된 본 발명의 실시예 및 앞으로 설명할 실시예에 따른 이미지 획득 방법은, 프로세서에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다.
여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 부호 수정을 위한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 전술한 정보 표시 방법을 구현하기 위한 프로그램은, 프로세서에 의해 판독 가능한 기록매체에 기록될 수 있다.
프로세서는 각종 논리 회로와 연산 회로를 포함할 수 있으며, 메모리로부터 제공된 프로그램에 따라 데이터를 처리하고, 처리 결과에 따라 제어 신호를 생성할 수 있다.
도 6은 종래의 기술에 따른 PIM 연산 과정을 도시한 도면이다.
도 6을 참조하면, 종래의 기술에 따르면 어느 하나의 로컬 버퍼가 PIM 연산에 필요한 데이터들을 서브 어레이로부터 전달받는다.
즉, 종래의 기술의 경우, 어느 하나의 로컬 버퍼가 메모리 셀로부터 PIM 연산을 위한 제1 행 데이터를 전달받고(첫번째 ACT), 어느 하나의 로컬 디코더는 제1 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택하고(첫번째 RD), 해당 로컬 버퍼는 제1 행 데이터를 메모리 셀로 복구한다(첫번째 PRE).
이후, 해당 로컬 버퍼는 메모리 셀로부터 PIM 연산을 위한 제2 행 데이터를 전달받고(두번째 ACT), 어느 하나의 로컬 디코더는 제2 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택하고(두번째 RD), 해당 로컬 버퍼는 제2 행 데이터를 메모리 셀로 복구한다(두번째 PRE).
프로세싱 엘리먼트는 해당 로컬 버퍼에 저장된 제1 행 데이터 및 제2 행 데이터에 기초하여 PIM 연산을 수행한다(PIM OP).
이처럼 종래의 기술에 의하면 어느 한 PIM 연산에 필요한 데이터를 전달받을 때 오직 하나의 로컬 버퍼만이 이용되므로 해당 PIM 연산이 종료되기 전까지는 더 이상 해당 로컬 버퍼가 데이터를 전달받을 수 없다.
도 7은 일 실시예에 따른 PIM 연산 과정을 도시한 도면이다.
도 7을 참조하면, 상단의 어느 한 PIM 연산 과정과 별개의 다음 PIM 연산을 위한 과정이 하단에 별도로 도시된 것을 확인할 수 있다.
본 발명의 RAM 메모리 장치(1)에서는 복수개의 로컬 버퍼(120)가 PIM 연산에 필요한 데이터들을 서브 어레이(110)로부터 전달받을 수 있다.
즉, 본 발명의 경우, 제1 버퍼(121)가 메모리 셀로부터 PIM 연산을 위한 제1 행 데이터를 전달받고(상단의 첫번째 ACT), 제1 디코더(131)는 제1 버퍼(121)에 저장된 제1 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택할 수 있다(상단의 첫번째 RD).
이후, 제2 버퍼(122)는 서브 어레이(110)의 제2 행 메모리 셀(112)로부터 제2 행 데이터를 전달받을 수 있다(상단의 두번째 ACT).
제1 버퍼(121)는 제2 버퍼(122)가 제2 행 데이터를 저장하고 있는 동안, 저장되어 있는 제1 행 데이터의 값이 변하지 않게 유지할 수 있다.
제2 디코더(132)는 제2 버퍼(122)에 저장된 제2 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택할 수 있다(상단의 두번째 RD).
제1 버퍼(121)는 제2 디코더(132)가 제2 버퍼(122)에 저장된 제2 행 데이터 중에서 열 데이터를 선택하기 전에, 저장되어 있는 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드(Command)를 수신할 수 있다(상단의 WRB: Write-Back).
제2 버퍼(122)는 제2 행 데이터를 제2 행 메모리 셀(112)로 복구할 수 있다(상단의 PRE).
도 7의 상단의 PIM 연산 과정에서의 제2 버퍼(122)의 복구 동작(상단의 PRE)과 하단에 별도로 도시된 다음 PIM 연산을 위한 과정에서의 제2 버퍼(122)의 전달받는 동작(하단의 첫번째 ACT)이 병렬적으로 도시된 것을 확인할 수 있다.
제2 버퍼(122)는, 제2 행 데이터를 제2 행 메모리 셀(112)로 복구한 후, 메모리 셀로부터 다음 PIM 연산에 이용될 데이터를 전달받을 수 있다(하단의 첫번째 ACT).
프로세싱 엘리먼트는 제1 디코더(131) 및 제2 디코더(132)가 선택한 열 데이터들을 기초로 PIM 연산을 수행할 수 있다(상단의 PIM OP).
즉, 제2 버퍼(122)는 프로세싱 엘리먼트가 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 메모리 셀의 데이터가 자신에게 저장되어 있도록 할 수 있다.
제2 디코더(132)는 프로세싱 엘리먼트가 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 열 데이터를 선택할 수 있다(하단의 첫번째 RD).
이처럼 본 발명의 실시예에 따른 RAM 메모리 장치(1)는 기존의 기술과 달리 하나의 서브 어레이(110)에 대하여 두 개의 버퍼 및 두 개의 디코더가 데이터를 전달받고 선택하는 동작을 수행할 수 있다. 따라서, 어느 한 버퍼에 저장되어 있는 데이터를 기초로 하는 PIM 연산이 완료되기 전에도 나머지 버퍼에 다음에 수행될 PIM 연산에서 필요한 데이터를 미리 저장할 수 있으므로 전체적인 PIM 연산 과정에서 시간이 단축될 수 있다.
도 8은 일 실시예에 따른 다중 버퍼에 의하여 행 데이터의 위치를 변경하는 것을 나타낸 도면이다.
경우에 따라서 서브 어레이(110)에 저장된 복수개의 행에 각각 저장된 행 데이터의 위치를 변경해야 할 수도 있다.
예를 들어, 중앙 처리 장치가 메모리로부터 데이터를 가져갈 때에는 메모리보다 상위 계층의 저장 공간인 캐시(cache)로 필요한 데이터를 옮기고, 이후 캐시에 있는 데이터를 가져가는 방식을 취할 수 있다. 캐시가 메모리로부터 데이터를 가져갈 때에는 일정 범위의 영역에 저장된 데이터들을 가져가게 되는데, 자주 쓰이는 데이터들이 메모리에서 서로 가까운 영역에 저장되어 있어야 캐시가 한 번에 해당 데이터들을 가져갈 수 있다. 따라서, 한 번에 필요한 데이터를 전부 캐시로 옮기기 위해서 미리 데이터들이 저장된 행의 위치를 적절하게 배치해 놓는 것이 필요하다.
도 8을 참조하면, 제1 버퍼(121)는 서브 어레이(110)의 제1 행 메모리 셀(111)로부터 제1 행 데이터를 전달받을 수 있다. 또한, 제2 버퍼(122)는 서브 어레이(110)의 제2 행 메모리 셀(112)로부터 제2 행 데이터를 전달받을 수 있다.
이후, 제1 버퍼(121)는 제1 행 데이터를 제2 행 메모리 셀(112)로 복구할 수 있다. 또한, 제2 버퍼(122)는, 제2 행 데이터를 제1 행 메모리 셀(111)로 복구할 수 있다.
이처럼, 서브 어레이(110)마다 대응되는 버퍼가 두개 이상이면 별다른 복잡한 과정 없이도 어느 두 행 데이터의 서브 어레이(110)에서의 행 메모리 셀 위치를 서로 바꿀 수 있다. 이러한 과정을 여러 번 반복하면 서로 같이 자주 쓰이는 데이터들을 메모리에서 서로 인접한 영역에 저장할 수 있다.
도 9는 종래의 기술에 따른 행 데이터의 위치를 변경하는 과정을 나타낸 도면이다.
도 9를 참조하면, 종래의 기술에 따라 행 데이터의 위치를 변경하려면, 어느 하나의 로컬 버퍼가 메모리 셀로부터 PIM 연산을 위한 제1 행 데이터를 전달받고(첫번째 ACT), 어느 하나의 로컬 디코더는 제1 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택하고(첫번째 RD), 해당 로컬 버퍼는 제1 행 데이터를 메모리 셀로 복구한다(첫번째 PRE).
이후, 해당 로컬 버퍼는 메모리 셀로부터 PIM 연산을 위한 제2 행 데이터를 전달받고(두번째 ACT), 어느 하나의 로컬 디코더는 제2 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택하고(두번째 RD), 해당 로컬 버퍼는 제2 행 데이터를 메모리 셀로 복구한다(두번째 PRE).
중앙 처리 장치는 제1 행 데이터 및 제2 행 데이터를 읽고 해당 데이터에 대하여 저장될 위치를 서로 바꾼다(CPU Time). 즉, 본래는 제1 행 데이터가 제1 행 메모리 셀에 위치했고 제2 행 데이터가 제2 행 메모리 셀에 위치했으나, 중앙 처리 장치가 제1 행 데이터에 대하여 제2 행 메모리 셀에 위치하도록 지정하고, 제2 행 데이터에 대하여 제1 행 메모리 셀에 위치하도록 지정하는 것이다.
이처럼 종래의 기술에 의하면 별도의 하드웨어를 메모리 장치에 추가하거나, 중앙 처리 장치가 데이터를 읽는 동작을 수행한 후, 다시 데이터를 써주는 길고 복잡한 과정이 필요하다는 문제가 있다.
도 10은 일 실시예에 따른 행 데이터의 위치를 변경하는 과정을 도시한 도면이다.
도 10을 참조하면, 제1 버퍼(121)는 서브 어레이(110)의 제1 행 메모리 셀(111)로부터 제1 행 데이터를 전달받을 수 있다(첫번째 ACT).
제1 버퍼(121)는 제2 디코더(132)가 제2 버퍼(122)에 저장된 제2 행 데이터 중에서 열 데이터를 선택하기 전에, 저장되어 있는 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드(Command)를 수신할 수 있다(WRB).
제2 버퍼(122)는 서브 어레이(110)의 제2 행 메모리 셀(112)로부터 제2 행 데이터를 전달받을 수 있다(두번째 ACT).
제1 버퍼(121)는 제1 행 데이터를 제2 행 메모리 셀(112)로 복구하고, 제2 버퍼(122)는 제2 행 데이터를 제1 행 메모리 셀(111)로 복구할 수 있다(ACT).
이처럼 본 발명의 RAM 메모리 장치(1)는 종래의 기술과 달리, 별도의 하드웨어를 메모리 장치에 추가하거나, 중앙 처리 장치가 데이터를 읽는 동작을 수행한 후, 다시 데이터를 써주는 길고 복잡한 과정이 필요 없다.
이상에서 설명된 구성요소들의 성능에 대응하여 적어도 하나의 구성요소가 추가되거나 삭제될 수 있다. 또한, 구성요소들의 상호 위치는 시스템의 성능 또는 구조에 대응하여 변경될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
도 11은 일 실시예에 따른 RAM 메모리 장치의 제어 방법의 순서도이다. 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있음은 물론이다.
도 11을 참조하면, 제1 버퍼(121)는 서브 어레이(110)로부터 PIM 연산을 위한 제1 행 데이터를 전달받을 수 있다(1001).
제1 디코더(131)는 제1 버퍼(121)에 저장된 제1 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택할 수 있다(1002).
제2 버퍼(122)는 서브 어레이(110)로부터 PIM 연산을 위한 제2 행 데이터를 전달받을 수 있다(1003).
제2 디코더(132)는 제2 버퍼(122)에 저장된 제2 행 데이터 중에서 PIM 연산에 필요한 열 데이터를 선택할 수 있다(1004). 이때, 제1 버퍼(121)는 제2 디코더(132)가 제2 버퍼(122)에 저장된 제2 행 데이터 중에서 열 데이터를 선택하기 전에, 저장되어 있는 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드를 수신할 수 있다.
제2 버퍼(122)는 제2 행 데이터를 제2 행 메모리 셀(112)로 복구할 수 있다(1005).
제2 버퍼(122)는 제2 행 데이터를 제2 행 메모리 셀(112)로 복구한 후, 메모리 셀로부터 다음 PIM 연산에 이용될 데이터를 전달받을 수 있다(1006).
프로세싱 엘리먼트는 제1 버퍼(121)에 저장된 제1 행 데이터 및 제2 버퍼(122)에 저장된 제2 행 데이터를 기초로 PIM 연산을 수행할 수 있다(1007).
제2 디코더(132)는, 프로세싱 엘리먼트가 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 열 데이터를 선택할 수 있다(1008).
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
1: RAM 메모리 장치
100: 뱅크
110: 서브 어레이
111: 제1 행 메모리 셀
112: 제2 행 메모리 셀
120: 로컬 버퍼
121: 제1 버퍼
122: 제2 버퍼
130: 로컬 디코더
131: 제1 디코더
132: 제2 디코더

Claims (20)

  1. 복수의 뱅크와 각 뱅크 단위로 마련되는 프로세싱 엘리먼트를 포함하는 RAM 메모리 장치에 있어서,
    상기 각 뱅크는, 행과 열 단위로 분할되는 복수의 서브 어레이 및 각 서브 어레이와 대응되는 로컬 버퍼를 포함하고,
    상기 각 서브 어레이는, 행 단위로 배열되는 복수의 메모리 셀을 포함하고,
    상기 로컬 버퍼는, 같은 서브 어레이로부터 서로 독립적으로 행 데이터를 전달받도록 구성되는 둘 이상의 버퍼를 포함하는 다중 버퍼로 구성되고,
    상기 다중 버퍼는:
    상기 서브 어레이로부터 PIM(Processing In Memory) 연산을 위한 제1 행 데이터를 전달받도록 구성되는 제1 버퍼; 및
    상기 서브 어레이로부터 상기 PIM 연산을 위한 제2 행 데이터를 전달받도록 구성되는 제2 버퍼;를 포함하고,
    상기 프로세싱 엘리먼트는,
    상기 제1 버퍼에 저장된 상기 제1 행 데이터 및 상기 제2 버퍼에 저장된 상기 제2 행 데이터를 기초로 상기 PIM 연산을 수행하도록 구성되는 RAM 메모리 장치.
  2. 제1항에 있어서,
    상기 제2 버퍼는,
    상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받고,
    상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 메모리 셀의 데이터가 저장되도록 구성되는, RAM 메모리 장치.
  3. 제2항에 있어서,
    상기 제2 버퍼는,
    상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구(precharge)하도록 구성되는, RAM 메모리 장치.
  4. 제3항에 있어서,
    상기 제2 버퍼는,
    상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구한 후, 상기 메모리 셀로부터 상기 다음 PIM 연산에 이용될 데이터를 전달받도록 구성되는, RAM 메모리 장치.
  5. 제2항에 있어서,
    상기 제1 버퍼는,
    상기 제2 버퍼가 상기 제2 행 데이터를 저장하고 있는 동안, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않게 유지하도록 구성되는, RAM 메모리 장치.
  6. 제1항에 있어서,
    상기 각 서브 어레이와 대응되는 로컬 디코더;를 더 포함하고,
    상기 로컬 디코더는, 상기 로컬 버퍼에 저장된 행 데이터 중 열 데이터를 서로 독립적으로 선택하도록 구성되는 둘 이상의 디코더를 포함하는 다중 디코더로 구성되고,
    상기 다중 디코더는:
    상기 제1 버퍼에 저장된 제1 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하도록 구성되는 제1 디코더; 및
    상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하도록 구성되는 제2 디코더;를 포함하고,
    상기 프로세싱 엘리먼트는,
    상기 제1 디코더 및 상기 제2 디코더가 선택한 열 데이터들을 기초로 상기 PIM 연산을 수행하도록 구성되는, RAM 메모리 장치.
  7. 제6항에 있어서,
    상기 제2 디코더는,
    상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 열 데이터를 선택할 수 있도록 구성되는, RAM 메모리 장치.
  8. 제6항에 있어서,
    상기 제1 버퍼는,
    상기 제2 디코더가 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 열 데이터를 선택하기 전에, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드를 수신하도록 구성되는, RAM 메모리 장치.
  9. 제1항에 있어서,
    상기 제1 버퍼는,
    상기 서브 어레이의 제1 행 메모리 셀로부터 상기 제1 행 데이터를 전달받고,
    상기 제1 행 데이터를 제2 행 메모리 셀로 복구하도록 구성되고,
    상기 제2 버퍼는,
    상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받고,
    상기 제2 행 데이터를 상기 제1 행 메모리 셀로 복구하도록 구성되는, RAM 메모리 장치.
  10. 제4항에 있어서,
    상기 각 서브 어레이와 대응되는 로컬 디코더;를 더 포함하고,
    상기 로컬 디코더는, 상기 로컬 버퍼에 저장된 행 데이터 중 열 데이터를 서로 독립적으로 선택하도록 구성되는 둘 이상의 디코더를 포함하는 다중 디코더로 구성되고,
    상기 다중 디코더는:
    상기 제1 버퍼에 저장된 제1 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하도록 구성되는 제1 디코더; 및
    상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하도록 구성되는 제2 디코더;를 포함하고,
    상기 프로세싱 엘리먼트는,
    상기 제1 디코더 및 상기 제2 디코더가 선택한 열 데이터들을 기초로 상기 PIM 연산을 수행하도록 구성되고,
    상기 제2 디코더는,
    상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 열 데이터를 선택할 수 있도록 구성되고,
    상기 제1 버퍼는,
    상기 제2 버퍼가 상기 제2 행 데이터를 저장하고 있는 동안, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않게 유지하고,
    상기 제2 디코더가 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 열 데이터를 선택하기 전에, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드를 수신하도록 구성되는, RAM 메모리 장치.
  11. 복수의 뱅크와 각 뱅크 단위로 마련되는 프로세싱 엘리먼트를 포함하고, 상기 각 뱅크는 행과 열 단위로 분할되는 복수의 서브 어레이 및 각 서브 어레이와 대응되는 로컬 버퍼를 포함하고, 상기 각 서브 어레이는 행 단위로 배열되는 복수의 메모리 셀을 포함하는, RAM 메모리 장치의 제어 방법에 있어서,
    상기 로컬 버퍼에 포함된 둘 이상의 버퍼를 포함하는 다중 버퍼에 의해, 같은 서브 어레이로부터 서로 독립적으로 행 데이터를 전달받는 단계;
    상기 다중 버퍼에 포함된 제1 버퍼에 의해, 상기 서브 어레이로부터 PIM 연산을 위한 제1 행 데이터를 전달받는 단계;
    상기 다중 버퍼에 포함된 제2 버퍼에 의해, 상기 서브 어레이로부터 상기 PIM 연산을 위한 제2 행 데이터를 전달받는 단계;
    상기 프로세싱 엘리먼트에 의해, 상기 제1 버퍼에 저장된 상기 제1 행 데이터 및 상기 제2 버퍼에 저장된 상기 제2 행 데이터를 기초로 상기 PIM 연산을 수행하는 단계;를 포함하는 RAM 메모리 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 제2 버퍼에 의해, 상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받는 단계; 및
    상기 제2 버퍼에 의해, 상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 메모리 셀의 데이터가 저장되는 단계;를 더 포함하는 RAM 메모리 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 제2 버퍼에 의해, 상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구하는 단계;를 더 포함하는 RAM 메모리 장치의 제어 방법.
  14. 제13항에 있어서,
    상기 제2 버퍼에 의해, 상기 제2 행 데이터를 상기 제2 행 메모리 셀로 복구한 후, 상기 메모리 셀로부터 상기 다음 PIM 연산에 이용될 데이터를 전달받는 단계;를 더 포함하는 RAM 메모리 장치의 제어 방법.
  15. 제12항에 있어서,
    상기 제1 버퍼에 의해, 상기 제2 버퍼가 상기 제2 행 데이터를 저장하고 있는 동안, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않게 유지하는 단계;를 더 포함하는 RAM 메모리 장치의 제어 방법.
  16. 제11항에 있어서,
    상기 각 서브 어레이와 대응되는 로컬 디코더에 포함된 둘 이상의 디코더를 포함하는 다중 디코더에 의해, 상기 로컬 버퍼에 저장된 행 데이터 중 열 데이터를 서로 독립적으로 선택하는 단계;
    상기 다중 디코더에 포함된 제1 디코더에 의해, 상기 제1 버퍼에 저장된 제1 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하는 단계; 및
    상기 다중 디코더에 포함된 제2 디코더에 의해, 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 PIM 연산에 필요한 열 데이터를 선택하는 단계;를 더 포함하고,
    상기 PIM 연산을 수행하는 단계는,
    상기 프로세싱 엘리먼트에 의해, 상기 제1 디코더 및 상기 제2 디코더가 선택한 열 데이터들을 기초로 상기 PIM 연산을 수행하는 단계;를 포함하는 RAM 메모리 장치의 제어 방법.
  17. 제16항에 있어서,
    상기 열 데이터를 선택하는 단계는,
    상기 제2 디코더에 의해, 상기 프로세싱 엘리먼트가 상기 PIM 연산을 처리하는 동안, 다음 PIM 연산에 이용될 상기 열 데이터를 선택하는 단계;를 포함하는 RAM 메모리 장치의 제어 방법.
  18. 제16항에 있어서,
    상기 제1 버퍼에 의해, 상기 제2 디코더가 상기 제2 버퍼에 저장된 제2 행 데이터 중에서 상기 열 데이터를 선택하기 전에, 저장되어 있는 상기 제1 행 데이터의 값이 변하지 않도록 유지하는 커멘드를 수신하는 단계;를 더 포함하는 RAM 메모리 장치의 제어 방법.
  19. 제11항에 있어서,
    상기 제1 버퍼에 의해, 상기 서브 어레이의 제1 행 메모리 셀로부터 상기 제1 행 데이터를 전달받고, 상기 제1 행 데이터를 제2 행 메모리 셀로 복구하는 단계; 및
    상기 제2 버퍼에 의해, 상기 서브 어레이의 제2 행 메모리 셀로부터 상기 제2 행 데이터를 전달받고, 상기 제2 행 데이터를 상기 제1 행 메모리 셀로 복구하는 단계;를 더 포함하는 RAM 메모리 장치의 제어 방법.
  20. 제11항 내지 제19항 중 어느 한 항의 RAM 메모리 장치의 제어 방법을 실행시키도록 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020210108025A 2021-08-17 2021-08-17 Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법 KR20230026075A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210108025A KR20230026075A (ko) 2021-08-17 2021-08-17 Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210108025A KR20230026075A (ko) 2021-08-17 2021-08-17 Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법

Publications (1)

Publication Number Publication Date
KR20230026075A true KR20230026075A (ko) 2023-02-24

Family

ID=85330209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210108025A KR20230026075A (ko) 2021-08-17 2021-08-17 Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법

Country Status (1)

Country Link
KR (1) KR20230026075A (ko)

Similar Documents

Publication Publication Date Title
US11113231B2 (en) Method of processing in memory (PIM) using memory device and memory device performing the same
US20210157503A1 (en) Apparatuses and methods for partitioned parallel data movement
US10692582B2 (en) Semiconductor memory device and method of operating the same
US10153042B2 (en) In-memory computational device with bit line processors
US10672456B2 (en) Three dimensional memory devices
CN108885887B (zh) 用于数据移动的设备及方法
US7023726B1 (en) Hybrid magnetoresistive random access memory (MRAM) architecture
US20130329491A1 (en) Hybrid Memory Module
US10803929B2 (en) Static random-access memory with virtual banking architecture, and system and method including the same
US20170148501A1 (en) Semiconductor memory device and memory system including the same
US20200278923A1 (en) Multi-dimensional accesses in memory
US10217493B2 (en) DRAM data path sharing via a split local data bus
JP4667708B2 (ja) 半導体メモリ装置及びコンピュータシステム
US20180102160A1 (en) DDR Controller for Thyristor Memory Cell Arrays
US6512683B2 (en) System and method for increasing the speed of memories
KR100793669B1 (ko) 반도체 기억 장치
US20230305804A1 (en) In-memory bit-serial addition system
CN116483773A (zh) 一种基于转置dram单元的存内计算电路和装置
KR20230026075A (ko) Ram 메모리에 기반한 pim 연산 장치 및 ram 메모리에 기반한 pim 연산 방법
US10366007B2 (en) Apparatuses and methods for determining efficient memory partitioning
JP2000099389A (ja) Edramを組込んだ集積回路及びデ―タ・アクセス方法
KR102216625B1 (ko) 전치 읽기를 지원하는 sram 셀 및 그를 이용한 sram
CN115836347A (zh) 一种存储器及数据迁移方法
KR20210093127A (ko) Aim 장치
US20180102161A1 (en) Vertical Thyristor Memory Array and Memory Array Tile Therefor

Legal Events

Date Code Title Description
E902 Notification of reason for refusal