KR20230043619A - 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법 - Google Patents

내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법 Download PDF

Info

Publication number
KR20230043619A
KR20230043619A KR1020210126723A KR20210126723A KR20230043619A KR 20230043619 A KR20230043619 A KR 20230043619A KR 1020210126723 A KR1020210126723 A KR 1020210126723A KR 20210126723 A KR20210126723 A KR 20210126723A KR 20230043619 A KR20230043619 A KR 20230043619A
Authority
KR
South Korea
Prior art keywords
write
read
command
memory device
memory
Prior art date
Application number
KR1020210126723A
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 KR1020210126723A priority Critical patent/KR20230043619A/ko
Priority to US17/879,523 priority patent/US20230094148A1/en
Priority to CN202210920554.8A priority patent/CN115862704A/zh
Priority to EP22196315.0A priority patent/EP4156186A3/en
Publication of KR20230043619A publication Critical patent/KR20230043619A/ko

Links

Images

Classifications

    • 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/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/4076Timing circuits
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)
  • Static Random-Access Memory (AREA)

Abstract

내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법이 개시된다. 메모리 장치는 메모리 셀 어레이, 프로세싱 동작을 수행하는 메모리-내-처리(Processing-In-Memory: PIM) 회로 및 노멀 모드 및 내부 프로세싱 모드를 제어하는 제어 로직 회로를 포함한다. 제어 로직 회로는 내부 프로세싱 모드일 때 PIM 회로의 프로세싱 동작에 따라 생성되는 연산 결과를 메모리 셀 어레이에 기입하고, 메모리 셀 어레이로부터 독출되는 독출 데이터를 PIM 회로로 제공한다.

Description

내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법 {Memory device and method of implementing reducing timimg parameters and power comsumption of internal processing operations}
본 발명은 장치들(apparatuses) 및 방법들(methods)에 관한 것으로서, 더욱 상세하게는 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법에 관한 것이다.
고성능 및/또는 그래픽스 알고리즘들과 같은 어플리케이션들은 데이터-집약적이고 컴퓨터-집약적(data- and compute-intensive) 이다. 딥 뉴럴 네트워크들과 같은 어플리케이션들은 보다 정확하게 다른 데이터 셋트들을 훈련(train) 또는 학습(learn)하기 위하여, 대용량 연산 및 메모리 능력을 갖는 컴퓨팅 시스템을 필요로 한다. 컴퓨팅 시스템의 연산 동작들(computation operations) 중 일부를 내부 프로세싱으로 수행하도록, 프로세서-인-메모리(Processor In Memory: 이하 "PIM"이라 통칭한다) 타입의 메모리 장치가 개발되고 있다. 메모리 장치의 PIM 프로세싱 동작을 통하여 컴퓨팅 시스템의 연산 동작 부담이 경감될 수 있다.
PIM 프로세싱 동작은 메모리 콘트롤러와 메모리 장치 사이의 효율적인 통신에 요구되는 신호들, 타이밍, 구동 및/또는 동작 파라미터들과 기능성(functionality)에 상관없이 수행될 수 있다. 왜냐하면, PIM 프로세싱 동작은 메모리 셀 어레이에서 독출된 데이터를 이용하여 수행되기 때문에, 메모리 셀 어레이에서 독출된 데이터를 메모리 콘트롤러로 출력하는 것과 관련된 인터페이스 동작 및/또는 메모리 동작의 타이밍 파라미터들과 기능성은 중요하지 않다. 또한, PIM 프로세싱 동작의 결과를 메모리 셀 어레이에 기입하기 때문에, 메모리 콘트롤러로부터 기입 데이터를 수신하여 메모리 셀 어레이에 저장하는 것과 관련된 인터페이스 동작 및/또는 메모리 동작의 파라미터들과 기능성도 중요하지 않다.
PIM 프로세싱 동작에도 인터페이스 동작 및/또는 메모리 동작을 지원하는 타이밍 파라미터들이 엄격하게(strictly) 요구된다면, 불필요한 동작들과 지연 시간의 불이익(penalties)이 발생할 수 있다. 또한, 인터페이스 동작 및/또는 메모리 동작과 관련된 내부 신호들의 토글링 및/또는 내부 회로들의 동작들에 의해 전력 소모가 발생할 수 있다. 이러한 메모리 장치의 PIM 프로세싱 동작의 지연 시간 및 전력 소모는 컴퓨팅 시스템의 프로세스 효율과 전력 소모량에 현저한 영향을 미친다.
본 발명의 목적은, PIM 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법을 제공하는 데 있다.
본 발명의 실시예들에 따른 메모리 장치는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 프로세싱 동작을 수행하는 PIM 회로; 및 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 노멀 모드의 기입 커맨드에 응답하여 상기 메모리 장치가 상기 메모리 컨트롤러로부터 제공되는 기입 데이터에 대한 기입 동작을 수행하고, 상기 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 내부 프로세싱 모드의 기입 커맨드에 응답하여 상기 메모리 장치가 상기 프로세싱 동작에 따라 생성되는 연산 결과에 대한 기입 동작을 수행하도록 제어하는 제어 로직 회로를 포함하고, 상기 제어 로직 회로는 상기 내부 프로세싱 모드의 기입 동작 수행 시간이 상기 노멀 모드의 기입 동작 수행 시간보다 작아지도록 상기 메모리 장치를 제어하도록 구성된다.
본 발명의 실시예들에 따른 메모리 장치는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 프로세싱 동작을 수행하는 PIM 회로; 및 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 노멀 모드의 독출 커맨드에 응답하여 상기 메모리 장치가 상기 메모리 셀 어레이로부터 독출되는 독출 데이터 및 토글하는 독출 데이터 스트로브 신호를 상기 메모리 컨트롤러로 제공하고, 상기 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 내부 프로세싱 모드의 독출 커맨드에 응답하여 상기 독출 데이터를 상기 PIM 회로로 제공하도록 제어하는 제어 로직 회로를 포함하고, 상기 제어 로직 회로는 상기 내부 프로세싱 모드의 상기 독출 커맨드에 응답하여 상기 독출 데이터 및 상기 독출 데이터 스트로브 신호가 상기 메모리 컨트롤러에 제공되지 않도록 상기 메모리 장치를 제어하도록 구성된다.
본 발명의 실시예들에 따른 메모리 장치는, 적어도 하나의 로직 다이; 상기 적어도 하나의 로직 다이 위에 적층되는 복수의 메모리 다이들; 및 상기 적어도 하나의 로직 다이 및 상기 복수의 메모리 다이들을 전기적으로 연결하는 버스들을 구성하는 스루 실리콘 비아(TSV)들을 포함한다. 상기 복수의 메모리 다이들 각각은, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 프로세싱 동작을 수행하는 PIM 회로; 및 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 노멀 모드의 기입 커맨드에 응답하여 상기 복수의 메모리 다이들 각각이 상기 메모리 컨트롤러로부터 제공되는 기입 데이터에 대한 기입 동작을 수행하고, 상기 메모리 컨트롤러로부터 상기 복수의 메모리 다이들 각각으로 수신되는 내부 프로세싱 모드의 기입 커맨드에 응답하여 상기 복수의 메모리 다이들 각각이 상기 프로세싱 동작에 따라 생성되는 연산 결과에 대한 기입 동작을 수행하도록 제어하는 제어 로직 회로를 포함하고, 상기 제어 로직 회로는 상기 내부 프로세싱 모드의 기입 동작 수행 시간이 상기 노멀 모드의 기입 동작 수행 시간보다 작아지도록 상기 메모리 장치를 제어하도록 구성된다.
본 발명에 따르면, 메모리 장치의 내부 프로세서에 의해 수행되는 내부 프로세싱 동작과 관련된 인터페이스 동작 및/또는 메모리 동작을 지원하는 타이밍 파라미터들 및 전력 소모를 줄일 수 있다.
도 1은 본 발명의 예시적인 실시예들에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 포함하는 시스템을 설명하는 도면이다.
도 2는 본 발명의 예시적인 실시예에 따른 메모리 장치를 설명하는 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 장치의 구성을 나타내는 블락도이다.
도 4 및 도 5는 본 발명의 실시예들에 따른 내부 프로세싱 동작을 제어하는 제어 로직 회로를 설명하는 도면들이다.
도 6 내지 도 7은 본 발명의 실시예들에 따른 메모리 장치에서 데이터의 전송 경로의 실시예를 설명하는 도면들이다.
도 8 및 도 9는 본 발명의 실시예들에 따른 메모리 장치에서 신호 전송 경로의 실시예를 설명하는 도면들이다.
도 10a 및 도 10b는 본 발명의 실시예들에 따른 메모리 장치의 기입 동작의 일실시예들을 나타내는 타이밍도들이다.
도 11a 및 도 11b는 본 발명의 실시예들에 따른 메모리 장치의 독출 동작의 실시예들을 나타내는 타이밍도들이다.
도 12는 본 발명의 실시예들에 따른 메모리 장치를 포함하는 시스템을 나타내는 블록 다이어그램이다.
도 1은 본 발명의 예시적인 실시예들에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 포함하는 시스템을 설명하는 도면(diagram)이다.
도 1을 참조하면, 시스템(100)은 심층 신경 망(deep neural networks)과 같은 러닝 시스템(learning systems)과 같은 어플리케이션들 또는 고성능 컴퓨팅(high-performance computing), 그래픽 동작 등과 같은 어플리케이션들을 실행하도록 구성될 수 있다. 이러한 어플리케이션들은 작업들(jobs) 또는 태스크들을 병렬 방식으로 협력하여 실행하고, 다른 데이터 세트들을 트레이닝하고, 높은 정확도로 학습하기 위하여 많은 연산 및 메모리 능력들을 필요로 하고, 전력 효율성 및 낮은 레이턴시를 중요시한다.
시스템(100)은 호스트 장치(110) 및 메모리 장치(120)를 포함할 수 있다. 호스트 장치(110)는 전체적인 작업 또는 태스크가 많은 수의 컴퓨팅 엔티티들(예, 프로세서들, 프로세서들 내의 코어들, 및 메모리-내-처리(Processing-In-Memory: PIM) 회로(122)에서 병렬로 실행되는, 보다 작은 작업들로 분할되는 병렬 처리 접근법을 사용하여 전체적인 작업 또는 태스크를 해결하는 데 사용될 것이다. 태스크는 계층구조 등으로 구성되어 있는 다수의 작업들을 포함하고, 작업은 컴퓨팅 엔티티에 의해 실행되어야 하는 실행 가능 코드, 처리될 데이터, 컴퓨팅 엔티티에 의해 메모리 장치(120)으로부터 검색되고, 코드의 실행을 통해 조작되며, 이어서 저장될 데이터를 지칭할 수 있다.
호스트 장치(110)는 버스(130)를 통하여 메모리 장치(120)와 통신적으로 연결(communicatively connected)될 수 있다. 호스트 장치(110)는 예시적으로, 컴퓨터, 노트북, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 스마트 폰, 웨어러블(Wearable) 장치와 같은 컴퓨팅 시스템일 수 있다. 또는 호스트 장치(110)는 그래픽스 카드와 같은 컴퓨팅 시스템에 포함된 구성 요소들 중 일부일 수 있다.
호스트 장치(110)는 시스템(100) 내 일반적인 컴퓨터 동작을 수행하는 프로세서(들)(112) 및 메모리 장치(120)로/로부터 데이터 송수신을 관리하는 메모리 콘트롤러(114)를 포함할 수 있다. 프로세서(들)(112)은 명령어들을 처리하고 관리하는 시스템(100)의 주된 구성(primary component)으로, 운영 체제(operating system) 및 어플리케이션들의 실행을 주로 담당한다. 또한, 프로세서(들)(112)은 복잡한 작업 또는 태스크를 해결하기 위해 작업 부하가 병렬 처리 되도록 다수의 컴퓨팅 엔티티들에 분산될 수 있게 한다. 프로세서(들)(112)은 중앙 처리 유닛(Central Processing Unit: CPU), 디지털 시그널 프로세서(Digital Signal Processor: DSP), 그래픽 처리 유닛(Graphic Processing Unit: GPU), 암호화 처리 유닛(encryption processing unit), 물리 처리 유닛(physics processing unit), 머신 러닝 처리 유닛(machine learning processing unit) 등과 같은 처리 유닛을 포함할 수 있다.
프로세서(들)(112)은 다양한 연산 작업들, 명령어들, 또는 커널들(kernels)의 실행을 다른 프로세서로 분산하거나 메모리 장치(120)으로 오프로드하여 효율성을 향상시킬 수 있다. 커널은 함께 그룹화되어 작업 또는 정의 가능한 서브-작업(definable sub-task)을 실행하는 하나 또는 그 이상의 명령어들로서 정의된다. 프로세서(들)(112)에 의해 오프로드된 커널에 의해 메모리 장치(120)의 PIM 회로(122)가 연산 처리를 수행하는 일 예가 설명될 것이다. 다양한 종류의 연산 처리 동작이 PIM 회로(122)에서 수행될 수 있으며, 일 예로서 인공 지능과 관련하여 뉴럴 네트워크 연산들 중 적어도 일부가 PIM 회로(122)에서 수행될 수 있다. 예컨대, 프로세서(들)(112)는 뉴럴 네트워크 연산들 중 적어도 일부가 PIM 회로(122)에 의해 수행될 수 있도록, 메모리 콘트롤러(114)를 통해 메모리 장치(120)를 제어할 수 있을 것이다.
메모리 콘트롤러(114)는 호스트 장치(110)의 메모리 리퀘스트에 따라 메모리 장치(120)를 억세스할 수 있다. 메모리 콘트롤러(114)는 메모리 장치(120)에 커맨드(CMD)와 어드레스(ADDR)를 제공함으로써, 메모리 장치(120)에 대한 기입 동작 또는 독출 동작을 제어할 수 있다. 또한, 기입 동작을 위한 데이터(DQ)와 독출된 데이터(DQ)가 메모리 콘트롤러(114)와 메모리 장치(120) 사이에서 송수신될 수 있다. 이러한 메모리 억세스 동작은 메모리 콘트롤러(114)와 메모리 장치(120) 사이의 버스(130)를 통해 수행될 수 있다.
버스(130)는 메인 클록 신호(CK), 기입 데이터 스트로브 신호(WDQS) 및 독출 데이터 스트로브 신호(RDQS)를 전송하는 클록 신호 라인들, 커맨드/어드레스(CMD/ADDR)를 전송하는 커맨드/어드레스 신호 라인들, 데이터(DQ)를 전송하는 데이터 라인들로 구성될 수 있다. 도면의 간결성을 위하여, 메모리 콘트롤러(114)와 메모리 장치(120) 사이에 클록 신호 라인들, 커맨드/어드레스 신호 라인들과 데이터 라인들이 각각 하나의 신호 라인으로 연결되는 것으로 도시되고 있으나, 실제로는 복수의 신호 라인들을 통해 연결될 수 있다.
메모리 장치(120)는 메모리 콘트롤러(114)의 제어에 따라 데이터를 기입하거나 데이터를 독출할 수 있다. 예시적으로, 메모리 장치(120)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory) 장치일 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 장치(120)는 LPDDR(Low Power Double Data Rate) SDRAM, Wide I/O DRAM, HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube) 등과 같은 휘발성 메모리 장치들 중 어느 하나일 수 있다. 실시예에 따라, 메모리 장치(120)는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등과 같은 비휘발성 메모리 장치들 중 어느 하나일 수 있다.
메모리 장치(120)는 노멀 모드와 내부 프로세싱 모드 중 어느 하나의 동작 모드로 동작할 수 있다. 노멀 모드는 메모리 콘트롤러(112)의 제어에 따라 일반적인 데이터 트랜잭션 동작을 수행하는 동작 모드를 말하고, 내부 프로세싱 모드는 메모리 콘트롤러(112)의 제어에 따라 내부 프로세싱 동작을 수행하는 동작 모드를 말한다. 데이터 트랜잭션 동작에서, 메모리 장치(120)는 메모리 콘트롤러(112)의 제어에 의해 DDR 및/또는 LPDDR 프로토콜에 정해진 노멀 모드 타이밍 파라미터들에 따라 커맨드 및 어드레스 수신 동작과 데이터 교환 동작을 수행할 수 있다. 내부 프로세싱 동작에서, 메모리 장치(120)는 메모리 콘트롤러(112)의 제어에 의해 DDR 및/또는 LPDDR 프로토콜에 정해진 내부 프로세싱 모드 타이밍 파라미터들에 따라 커맨드 및 어드레스 수신 동작과 데이터 교환 동작을 수행할 수 있다. 노멀 모드 타이밍 파라미터들과 내부 프로세싱 모드 타이밍 파라미터들은 서로 다르게 설정될 수 있다. 실시예에 따라, 내부 프로세싱 모드 타이밍 파라미터들은 노멀 모드 타이밍 파라미터들 보다 상대적으로 작은 값들로 설정될 수 있다.
메모리 장치(120)은 PIM 회로(122) 및 제어 로직 회로(126)를 포함할 수 있다. PIM 회로(122)는 호스트 장치(110)에 의해 오프로드된 커널을 실행하도록 구성되는 하나 이상의 프로세싱 소자들(PE)이 구비될 수 있다. PIM 회로(122)는 호스트 장치(110)에 포함된 프로세서(들)(112)과 유사하게, 프로세싱 기능을 갖는 하드웨어이다. PIM 회로(122)를 내부 프로세서로 지칭할 때 "내부"의 용어는 메모리 장치(120) 내에 존재한다는 것을 의미한다. 따라서, 메모리 장치(120)의 "외부"에 존재하는 프로세서는 예를 들어, 호스트 장치(110)의 프로세서(들)(112)를 지칭할 수 있다.
제어 로직 회로(126)는 메모리 장치(120)의 전반적인 동작들을 제어하고, PIM 커맨드 판단부(124)를 포함할 수 있다. PIM 커맨드 판단부(124)는 메모리 장치(120)로 인가되는 커맨드(CMD)가 노멀 모드를 지정하는(specify) 노멀 커맨드인지 또는 내부 프로세싱 모드를 지정하는 PIM 커맨드인지를 판단할 수 있다. 수신된 커맨드가 노멀 커맨드일 때, 메모리 장치(120)는 제어 로직 회로(126)의 제어에 의해 노멀 모드의 데이터 트랜잭션 동작을 수행할 수 있다. 수신된 커맨드가 PIM 커맨드일 때, 메모리 장치(120)는 제어 로직 회로(126)의 제어에 의해 내부 프로세싱 모드의 내부 프로세싱 동작을 수행할 수 있다.
제어 로직 회로(126)는 메모리 장치(120)의 노멀 모드 및 내부 프로세싱 모드에서, 기입 데이터 또는 독출 데이터와 관련되는 레이턴시에 대한 동작 조건을 다르게 설정하여 제어할 수 있다. 제어 로직 회로(126)는 노멀 모드일 때 설정되는 기입 데이터와 관련된 기입 데이터 스트로브 신호(WDQS)의 동작 조건을 내부 프로세싱 모드일 때는 토글하지 않도록 비-설정(non-setting)으로 제어할 수 있다. 제어 로직 회로(126)는 노멀 모드일 때 설정되는 독출 데이터와 관련된 독출 데이터 스트로브 신호(RDQS)의 동작 조건을 내부 프로세싱 모드일 때는 토글하지 않도록 비-설정(non-setting)으로 제어할 수 있다.
제어 로직 회로(126)는 메모리 장치(120)의 노멀 모드 및 내부 프로세싱 모드에서, 독출 커맨드 또는 기입 커맨드와 관련되는 타이밍 파라미터를 다르게 설정하여 제어할 수 있다. 제어 로직 회로(126)는 기입 커맨드에 의한 기입 동작 후에 수신되는 독출 커맨드에 대한 동작 조건으로 제1 타이밍 파라미터(예, tWTR(Write-To-Read delay))를 설정하고, 내부 프로세싱 모드일 때의 제1 타이밍 파라미터를 노멀 모드일 때 보다 짧게 설정하여 제어할 수 있다. 제어 로직 회로(126)는 독출 커맨드에 의한 독출 동작 후에 수신되는 기입 커맨드에 대한 동작 조건으로 제2 타이밍 파라미터(예, tRTW(Read-To-Write delay))를 설정하고, 내부 프로세싱 모드일 때의 제2 타이밍 파라미터를 노멀 모드일 때 보다 짧게 설정하여 제어할 수 있다.
도 2는 본 발명의 예시적인 실시예에 따른 메모리 장치를 설명하는 도면이다. 도 2는 HBM으로 구현된 도 1의 메모리 장치(120)를 보여준다. 도 2에 도시된 HBM 구성은 예로서 제공되며, 반드시 실제의 HBM 구성은 아니라는 것을 밝혀둔다. 또한, 도 2에 도시된 예시적인 HBM 구성은 본 개시 내용에 대한 제한을 나타내거나 암시하지 않는다. 이하에서, 설명의 편의를 위하여, 메모리 장치(120)는 HBM(120)으로 혼용될 수 있다.
도 1 및 도 2를 참조하면, HBM(120)은 JEDEC 표준의 HBM 프로토콜을 통하여 호스트 장치(110)에 연결될 수 있다. HBM 프로토콜은 3차원 적층 메모리들(예를 들어, DRAM)을 위한 고성능 랜덤 액세스 메모리(RAM) 인터페이스이다. HBM(120)은 일반적으로 다른 DRAM 기술들(예를 들어, DDR4, GDDR5 등)보다 실질적으로 더 작은 폼 팩터(form factor)에서, 더 적은 전력을 소비하면서, 더 넓은 대역폭을 달성한다.
HBM(120)은 서로 독립된 인터페이스를 갖는 다수의 채널들(CH1~CH8)을 포함함으로써 높은 대역폭(Bandwidth)을 가질 수 있다. HBM(120)은 다수개의 다이들(210, 220)을 포함할 수 있으며, 일 예로서 로직 다이(또는, 버퍼 다이)(210)와 로직 다이(210) 위에 적층된 하나 이상의 코어 다이들(220)을 포함할 수 있다. 도 2의 예에서는, 제1 내지 제4 코어 다이들(221-224)이 HBM(120)에 구비되는 예가 도시되었으나, 상기 코어 다이들(220)의 개수는 다양하게 변경될 수 있다. 코어 다이들(220)은 메모리 다이들로 지칭될 수 있다.
제1 내지 제4 코어 다이들(221-224) 각각은 하나 이상의 채널을 포함할 수 있다. 도 2에서는 제1 내지 제4 코어 다이들(221-224) 각각이 두 개의 채널을 포함함에 따라 HBM(120)은 8 개의 채널들(CH1~CH8)을 갖는 예가 도시된다. 예컨대, 제1 코어 다이(221)는 제1 채널 및 제3 채널(CH1, CH3)을 포함하고, 제2 코어 다이(222)는 제2 채널 및 제4 채널(CH2, CH4)을 포함하며, 제3 코어 다이(223)는 제5 채널 및 제7 채널(CH5, CH7)을 포함하며, 제4 코어 다이(224)는 제6 채널 및 제8 채널(CH6, CH8)을 포함할 수 있다.
로직 다이(210)는 호스트 장치(110)와 통신하는 인터페이스 회로(211)를 포함할 수 있으며, 인터페이스 회로(211)를 통해 호스트 장치(110)로부터 커맨드/어드레스 및 데이터를 수신할 수 있다. 호스트 장치(110)는 채널(들)(CH1~CH8)에 대응하여 배치되는 버스(들)(130)을 통해 커맨드/어드레스 및 데이터를 전송할 수 있으며, 채널 별로 버스(130)가 구분되도록 형성되거나, 일부의 버스(130)는 적어도 두 개의 채널들에 공유될 수도 있을 것이다. 인터페이스 회로(211)는 호스트 장치(110)가 메모리 동작 또는 연산 처리를 요청하는 채널로 커맨드/어드레스 및 데이터를 전달할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 코어 다이들(320) 각각 또는 채널들 각각은 PIM 회로(122)를 포함할 수 있다.
호스트 장치(110)는 다수의 연산 작업들 또는 커널들 중 적어도 일부가 HBM(120)에서 수행될 수 있도록 커맨드/어드레스 및 데이터를 제공할 수 있으며, 호스트 장치(110)가 지정하는 채널의 PIM 회로(122)에서 연산 처리가 수행될 수 있다. 일 예로서, 수신된 커맨드/어드레스가 연산 처리를 지시하는 경우, 해당 채널의 PIM 회로(122)는 해당 채널에서 독출되는 데이터를 이용하여 연산 처리를 수행하고, 연산 처리 결과를 해당 채널에 라이트-백(write-back) 할 수 있다. 다른 예로서, HBM(120)의 해당 채널로 수신된 커맨드/어드레스가 메모리 동작을 지시하는 경우에는 데이터에 대한 억세스 동작이 수행될 수 있다.
일 실시예에 따라, 채널들(CH1~CH8) 각각은 다수 개의 뱅크들을 포함할 수 있고, 각각의 채널의 PIM 회로(122)에는 하나 이상의 프로세싱 소자들이 구비될 수 있다. 일 예로서, 각각의 채널에서 프로세싱 소자들의 개수는 뱅크들의 개수와 동일할 수 있으며, 또는 프로세싱 소자들의 개수가 뱅크들의 개수보다 적음에 따라 하나의 프로세싱 소자가 적어도 두 개의 뱅크들에 공유될 수도 있을 것이다. 각 채널의 PIM 회로(122)는 호스트 장치(110)에 의해 오프로드된 커널을 실행할 수 있다.
한편, 로직 다이(210)는 스루 실리콘 비아(Through Silicon Via: TSV) 영역(212), HBM 물리 계층 인터페이스(PHYsical layer interface: HBM PHY) 영역(213) 및 직렬화기/역직렬화기(SERializer/DESerializer: SERDES) 영역(214)을 더 포함할 수 있다. TSV 영역(212)은 코어 다이들(220)과의 통신을 위한 TSV가 형성되는 영역으로, 채널(들)(CH1~CH8)에 대응하여 배치되는 버스(들)(130)이 형성되는 영역이다. 각각의 채널(CH1~CH8)이 128 비트의 대역폭을 갖는 경우, TSV들은 1024 비트의 데이터 입출력을 위한 구성들을 포함할 수 있다.
HBM PHY 영역(213)은 메모리 콘트롤러(114)와 채널들(CH1~CH8)과의 통신을 위해 다수의 입출력 회로를 포함할 수 있으며, 일 예로서 HBM PHY 영역(213)은 메모리 콘트롤러(114)와 채널들(CH1~CH8)을 연결하기 위한 하나 이상의 인터컨넥트 회로들을 포함할 수 있다. HBM PHY 영역(213)은 메모리 콘트롤러(114)와 채널들(CH1~CH8) 사이의 효율적인 통신에 요구되는 신호들, 주파수, 타이밍, 구동, 상세 동작 파라미터 및 기능성을 위해 제공되는 물리적 또는 전기적 계층과 논리적 계층을 포함할 수 있다. HBM PHY 영역(213)은 해당 채널에 대하여 메모리 셀에 대응하는 로우 및 칼럼을 선택하는 것, 메모리 셀에 데이터를 기입하는 것, 또는 기입된 데이터를 독출하는 것과 같은 메모리 인터페이싱을 수행할 수 있다. HBM PHY 영역(213)은 JEDEC 표준의 HBM 프로토콜의 특징들을 지원할 수 있다.
SERDES 영역(214)은 호스트 장치(110)의 프로세서(들)(112)의 프로세싱 스루풋이 증가함에 따라, 그리고 메모리 대역폭에 대한 요구들이 증가함에 따라, JEDEC(Joint Electron Device Engineering Council) 표준의 SERDES 인터페이스를 제공하는 영역이다. SERDES 영역(214)은 SERDES 송신기 부분, SERDES 수신기 부분 및 제어기 부분을 포함할 수 있다. SERDES 송신기 부분은 병렬-투-직렬 회로 및 송신기를 포함하고, 병렬 데이터 스트림을 수신하고, 수신된 병렬 데이터 스트림을 직렬화 할 수 있다. SERDES 수신기 부분은 수신기 증폭기, 등화기, 클록 및 데이터 복원 회로 및 직렬-투-병렬 회로를 포함하고, 직렬 데이터 스트림을 수신하고, 수신된 직렬 데이터 스트림을 병렬화 할 수 있다. 제어기 부분은 에러 검출 회로, 에러 정정 회로 및 FIFO(First In First Out)와 같은 레지스터들을 포함할 수 있다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 장치의 구성을 나타내는 블락도이다. 도 3은 도 2의 HBM 내 다수개의 채널들(CH1~CH8) 중에서 대표적으로 제1 채널(CH1)의 구성을 보여준다. 제1 채널(CH1)의 구성은 나머지 채널들(CH2~CH8)에 동일하게 적용될 수 있다. 또한, 제1 채널(CH1)의 구성은 단독(stand-alone) 타입의 DDR 및/또는 LPDDR DRAM으로 구현되는 메모리 장치(120, 도 1)에도 동일하게 적용될 수 있다.
도 3을 참조하면, 제1 채널(CH1)은 어드레스 버퍼(310), 제어 로직 회로(126), PIM 회로(122), 로우 디코더(3060), 칼럼 디코더(3070), 메모리 셀 어레이(3080), 입출력 게이팅 회로(3090), 그리고 데이터 입출력 버퍼(3095)를 포함할 수 있다. 도 3에는 도시되지 않았으나, 제1 채널(CH1)은 클록 버퍼, 커맨드 디코더, 모드 레지스터, 리프레쉬 제어 회로, 전압 발생 회로, 뱅크 제어 로직, 등을 더 포함할 수 있다.
메모리 셀 어레이(3080)는 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d)을 포함할 수 있다. 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d) 각각은 복수의 워드라인들과 복수의 비트라인들, 그리고 워드라인들과 비트라인들이 교차하는 지점에 형성되는 복수의 메모리 셀들을 포함할 수 있다.
로우 디코더(3060)는 제1 내지 제4 뱅크 어레이(3080a, 3080b, 3080c, 3080d)에 각각 연결되는 제1 내지 제4 뱅크 로우 디코더들(3060a, 3060b, 3060c, 3060d)을 포함하고, 칼럼 디코더(3070)는 제1 내지 제4 뱅크 어레이(3080a, 3080b, 3080c, 3080d)에 각각 연결되는 제1 내지 제4 뱅크 칼럼 디코더들(3070a, 3070b, 3070c, 3070d)을 포함하고, PIM 회로(122)는 제1 내지 제4 뱅크 어레이(3080a, 3080b, 3080c, 3080d)에 각각 연결되는 제1 내지 제4 프로세싱 소자들(3085a, 3085b, 3085c, 3085d)을 포함할 수 있다.
제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d), 제1 내지 제4 뱅크 로우 디코더들(3060a, 3060b, 3060c, 3060d), 제1 내지 제4 뱅크 칼럼 디코더들(3070a, 3070b, 3070c, 3070d) 및 제1 내지 제4 프로세싱 소자들(3085a, 3085b, 3085c, 3085d)은 제1 내지 제4 메모리 뱅크들을 각각 구성할 수 있다. 본 실시예에서는 4개의 메모리 뱅크들을 포함하는 제1 채널(CH1)의 예가 도시되어 있으나, 실시예에 따라, 제1 채널(CH1)은 임의의 수의 메모리 뱅크들을 포함할 수 있다.
제어 로직 회로(126)는 제1 채널(CH1)의 전반적인 동작들을 제어할 수 있다. 제어 로직 회로(126)는 제1 채널(CH1)이 기입 동작, 독출 동작 및/또는 리프레쉬 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(126)는 메모리 콘트롤러(114)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더 및 제1 채널(CH1)의 복수개 동작 옵션들을 설정하기 위한 모드 레지스터를 포함할 수 있다. 모드 레지스터는 예컨대, 버스트 길이, 독출/기입 레이턴시, 프리앰블/포스트앰블 길이, 프리-앰파시스, 기준 전압 설정 등을 제어하기 위해 사용될 수 있다. 버스트 길이는 독출 및/또는 기입 커맨드에 대하여 억세스할 수 있는 칼럼 로케이션들의 최대 수를 셋팅하기 위해 제공될 수 있다. 독출/기입 레이턴시는 독출 및/또는 기입 커맨드와 유효한 출력 및 또는 입력 데이터의 첫번째 비트 사이의 클록 사이클 지연을 정의하기 위해 제공될 수 있다.
어드레스 버퍼(310)는 메모리 콘트롤러(114)로부터 로우 어드레스(ROW_ADDR) 및 칼럼 어드레스(COL_ADDR)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 또한, 어드레스 버퍼(310)는 뱅크 어드레스를 수신하여 뱅크 제어 로직에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 디코더(3060)로 제공하고, 수신된 칼럼 어드레스(COL_ADDR)를 제어 로직 회로(126)에 제공할 수 있다. 뱅크 제어 로직은 뱅크 어드레스에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 뱅크 제어 신호들에 응답하여, 제1 내지 제4 뱅크 로우 디코더들(3060a, 3060b, 3060c, 3060d) 중 뱅크 어드레스에 상응하는 뱅크 로우 디코더가 활성화되고, 제1 내지 제4 뱅크 칼럼 디코더들(3070a, 3070b, 3070c, 3070d) 중 뱅크 어드레스에 상응하는 뱅크 칼럼 디코더가 활성화될 수 있다.
입출력 게이팅 회로(3090)는 입출력 데이터(DQ)를 게이팅하는 회로들과 함께, 칼럼 선택 회로, 입력 데이터 마스크 로직, 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d)로부터 출력되는 독출 데이터를 저장하기 위한 독출 데이터 래치들, 그리고 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d)에 데이터를 기입하기 위한 기입 드라이버를 포함할 수 있다.
제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d) 중 하나의 뱅크 어레이에서 출력되는 독출 데이터는 하나의 뱅크 어레이에 대응되는 센스 앰프들에 의해 감지되고 독출 데이터 래치들에 저장될 수 있다. 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d) 중 하나의 뱅크 어레이의 메모리 셀 어레이에 기입될 기입 데이터는 메모리 콘트롤러(114)로부터 데이터 입출력 버퍼(3095)로 제공될 수 있다. 데이터 입출력 버퍼(3095)에 제공된 데이터는 기입 드라이버를 통하여 하나의 뱅크 어레이에 기입될 수 있다.
제어 로직 회로(126)는 메모리 콘트롤러(114)로부터 커맨드(CMD)를 수신하고, 수신된 커맨드(CMD)가 노멀 모드를 지정하는 노멀 커맨드인지 또는 내부 프로세싱 모드를 지정하는 PIM 커맨드인지를 판단하는 PIM 커맨드 판단부(124)를 포함할 수 있다. PIM 커맨드 판단부(124)는 수신된 커맨드가 PIM 커맨드인 것으로 판단되면, PIM 커맨드 신호(PIM_CMD)를 제공할 수 있다.
예시적으로, 수신된 커맨드가 PIM 커맨드일 때, PIM 커맨드 판단부(124)는 PIM 커맨드 신호(PIM_CMD)를 활성화시킬 수 있다. 제어 로직 회로(126)는 활성화된 PIM 커맨드 신호(PIM_CMD)에 응답하여 제1 채널(CH1)이 내부 프로세싱 모드의 내부 프로세싱 동작을 수행하도록 제어할 수 있다. 수신된 커맨드가 노멀 커맨드일 때, PIM 커맨드 판단부(124)는 PIM 커맨드 신호(PIM_CMD)를 비활성화시킬 수 있다. 제어 로직 회로(126)는 비활성화된 PIM 커맨드 신호(PIM_CMD)에 응답하여 제1 채널(CH1)이 노멀 모드의 데이터 트랜잭션 동작을 수행하도록 제어할 수 있다.
제어 로직 회로(126)은, 노멀 모드의 기입 커맨드(CMD)와 함께 뱅크 어드레스 및 칼럼 어드레스를 수신하고, 기입 레이턴시(WL, 도 10a) 후에 토글하는 기입 데이터 스트로브 신호(WDQS, 도 10a)에 동기된 기입 데이터를 수신하여 메모리 셀 어레이(3080)에 기입하도록 구성될 수 있다. 제어 로직 회로(126)은, 내부 프로세싱 모드의 기입 커맨드(CMD)와 함께 뱅크 어드레스 및 칼럼 어드레스를 수신하고, PIM 회로(122)의 프로세싱 소자(PE)에서 수행된 프로세싱 동작의 결과를 메모리 셀 어레이(3080)에 기입하도록 구성될 수 있다. 내부 프로세싱 모드에서는 기입 데이터를 메모리 콘트롤러(114)로부터 수신하지 않기 때문에, 기입 데이터와 관련된 기입 데이터 스트로브 신호쌍(WDQS_t, WDQS_c, 도 10b)은 토글하지 않도록 비-설정되고, 노멀 모드에 규정된 tWTR 파라미터(도 10b)가 줄어들 수 있다.
제어 로직 회로(126)은, 노멀 모드의 독출 커맨드(CMD)와 함께 뱅크 어드레스 및 칼럼 어드레스를 수신하고, 뱅크 및 칼럼 어드레스에 상응하는 메모리 셀 어레이(3080)에서 독출 데이터를 출력하여 독출 레이턴시(RL, 도 11a) 후에 독출 데이터 스트로브 신호(RDQS)에 동기된 독출 데이터를 출력하도록 구성될 수 있다. 제어 로직 회로(126)은, 내부 프로세싱 모드의 독출 커맨드(CMD))와 함께 뱅크 어드레스 및 칼럼 어드레스를 수신하고, 뱅크 및 칼럼 어드레스에 상응하는 메모리 셀 어레이(3080)에서 독출된 데이터를 PIM 회로(122)의 프로세싱 소자(PE)에서 수행되는 프로세싱 동작에 이용하도록 구성될 수 있다. 내부 프로세싱 모드에서는 메모리 셀 어레이(3080)의 독출 데이터를 메모리 콘트롤러(114)로 전송하지 않기 때문에, 독출 레이턴시(RL, 도 11b)와 독출 데이터 스트로브 신호쌍(RDQS_t, RDQS_c)은 토글하지 않도록 비-설정되고 노멀 모드에 규정된 tRTW 파라미터(도 11b)가 줄어들 수 있다.
제어 로직 회로(126)는 PIM 커맨드 신호(PIM_CMD)에 응답하여 내부 칼럼 어드레스(CADDR), 내부 기입 신호(WRS) 및 내부 독출 신호(RDVS)를 생성할 수 있다. 내부 칼럼 어드레스(CADDR), 내부 기입 신호(WRS) 및 내부 독출 신호(RDVS)는 기입 동작 및 독출 동작이 수행되도록 하는 주된 신호들로 작용하고, 칼럼 선택 회로 및 입출력 데이터 게이팅 회로를 포함하는 입출력 게이팅 회로(3090)로 제공될 수 있다.
칼럼 선택 회로는 선택되는 하나의 뱅크 어레이의 복수개의 비트라인쌍들 중에서 소정의 비트라인쌍을 선택하여 선택되는 비트라인쌍을 글로벌 데이터 라인쌍을 통하여 데이터 입출력 라인으로 연결할 수 있다. 데이터 입출력 라인은 궁극적으로 메모리 셀의 데이터를 읽거나 쓰는 동작 상의 마무리단으로서, 데이터 입출력 라인에 실리는 메모리 셀의 데이터는 제1 채널(CH1)의 동작 속도를 결정할 수 있다. 이러한 속도는 독출하고자 하는 메모리 셀에 저장된 데이터의 양을 센싱하여 데이터 입출력 라인으로 출력하는 데 소요되는 시간 또는 기입하고자 하는 데이터를 데이터 입출력 라인으로부터 메모리 셀로 전송하는 데 소요되는 시간 등에 의하여 결정된다. 그러므로, 동작 속도의 지연을 방지하기 위하여 데이터 입출력 라인에 걸리는 부하를 줄일 필요가 있다.
데이터 입출력 라인은 내부 칼럼 어드레스(CADDR)에 의해 동작하는 칼럼 선택 회로와 내부 기입 신호(WRS) 및 내부 독출 신호(RDVS)에 의해 동작하는 입출력 데이터 게이팅 회로와 연결되므로, 제1 채널(CH1)의 동작 속도를 개선하기 위해서는, 내부 칼럼 어드레스(CADDR)의 생성 시점을 앞당길 수 있을 것이다. 또한, 제어 로직 회로(126)는 내부 프로세싱 모드일 때 PIM 커맨드 신호(PIM_CMD)에 응답하여 내부 기입 신호(WRS) 및 내부 독출 신호(RDVS)를 비활성화하여 입출력 데이터 게이팅 회로를 디세이블시킬 수 있다.
도 4 및 도 5는 본 발명의 실시예들에 따른 내부 프로세싱 동작을 제어하는 제어 로직 회로를 설명하는 도면들이다. 도 4는 본 발명의 실시예들에 따른 메모리 장치의 기입 모드와 연관되는 내부 프로세싱 동작에서의 신호 전송 경로를 구현하는 일 실시예를 보여주고, 도 5는 메모리 장치의 독출 모드와 연관되는 내부 프로세싱 동작에서의 신호 전송 경로를 구현하는 일 실시예를 보여준다. 이하, 서로 다른 도면에서 동일한 참조 번호에 붙은 첨자(예컨대, 126a의 a, WRa의 a, RDa의 a)는 유사하거나 동일한 기능을 하는 다수의 회로를 구분하기 위한 것이다.
도 3 및 도 4를 참조하면, 제어 로직 회로(126a)는 기입 버스트 모드에서 어드레스 버퍼(310)에서 제공되는 칼럼 어드레스(COL_ADDR)에 기초하여 점진적으로 증가되는 버스트 어드레스(BADDR)를 생성하고 버스트 어드레스(BADDR)를 저장하는 기입 FIFO(402)를 포함할 수 있다. 버스트 어드레스(BADDR)는 독출 및/또는 기입 커맨드에 대하여 버스트 길이(BL)와 관련해서 억세스할 수 있는 칼럼 로케이션들의 어드레스들을 말한다.
기입 FIFO(402)는 기입 포인터(PTR_WRa~PTR_WRd)를 이용하여 기입 커맨드(WR_CMD)에 상응하는 버스트 어드레스(BADDR)를 저장하는 플립플롭들로 구현될 수 있다. 예컨대, WRa_CMD 기입 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_WRa 기입 포인터의 플립플롭들에 저장될 수 있다. WRb_CMD 기입 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_WRb 기입 포인터의 플립플롭들에 저장되고, WRc_CMD 기입 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_WRc 기입 포인터의 플립플롭들에 저장되고, WRd_CMD 기입 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_WRd 기입 포인터의 플립플롭들에 저장될 수 있다.
기입 FIFO(402)는 입력 신호(W_CLK)에 응답하여 기입 커맨드(WR_CMD)에 상응하는 기입 포인터(PTR_WR)에 해당 버스트 어드레스(BADDR)를 저장하도록 구성될 수 있다. 기입 FIFO(402)는 입력 신호(W_CLK)에 의해 인에이블되어, 입력 신호(W_CLK)로 제공되는 기입 커맨드(WR_CMD)에 의해 식별되는 기입 포인터(PTR_WR)에 해당 버스트 어드레스(BADDR)를 저장할 수 있다. 입력 신호(W_CLK)는 버스트 어드레스(BADDR)를 저장시키는 역할뿐만 아니라 기입 FIFO(402)의 인에이블 신호로 작용할 수 있다.
기입 FIFO(402)는 출력 신호(R_CLK)에 응답하여 기입 포인터(PTR_WR)에 저장된 버스트 어드레스(BADDR)를 출력하도록 구성될 수 있다. 기입 FIFO(402)는 출력 신호(R_CLK)에 상응하는 기입 포인터(PTR_WR)에 저장된 버스트 어드레스(BADDR)를 출력할 수 있다. 이 경우, 출력 신호(R_CLK)는 기입 커맨드(WR_CMD)에 상응하는 기입 데이터 스트로브 신호(WDQS)를 제공받을 수 있다. 기입 데이터 스트로브 신호(WDQS)에 따라 메모리 콘트롤러(114)로부터 해당 기입 커맨드(WR_CMD)의 기입 데이터가 수신될 수 있을 것이다.
제어 로직 회로(126a)는 제1 내지 제3 선택부들(410-430)을 포함하고, 제1 내지 제3 선택부들(410-430)은 멀티플렉서들로 구현될 수 있다. 제1 내지 제3 선택부들(410-430)은 PIM 커맨드 신호(PIM_CMD)에 응답하여 노멀 모드 또는 내부 프로세싱 모드에서의 신호 전송 경로들을 변경할 수 있다. 제1 내지 제3 선택부들(410-430) 각각은 PIM 커맨드 신호(PIM_CMD)가 비활성이면 제1 입력(I0)으로 수신되는 신호를 출력(O)으로 전송하여 노멀 모드 시의 동작 신호로 출력하고, PIM 커맨드 신호(PIM_CMD)가 활성이면 제2 입력(I1)으로 인가되는 신호를 출력(O)으로 전송하여 내부 프로세싱 모드 시의 동작 신호로 출력할 수 있다.
제1 선택부(410)는 기입 FIFO(402)에서 출력되는 버스트 어드레스(BADDR)를 수신하는 제1 입력(I0), 어드레스 버퍼(310)에서 제공되는 칼럼 어드레스(COL_ADDR)를 수신하는 제2 입력(I1), PIM 커맨드 신호(PIM_CMD)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제1 선택부(410)의 출력(O)은 내부 칼럼 어드레스(CADDR)로 제공될 수 있다. 제1 선택부(410)는 PIM 커맨드 신호(PIM_CMD)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 버스트 어드레스(BADDR)를 내부 칼럼 어드레스(CADDR)로 출력할 수 있다. 제1 선택부(410)는 PIM 커맨드 신호(PIM_CMD)가 로직 하이 레벨로 활성일 때, 제2 입력(I1)의 칼럼 어드레스(COL_ADDR)를 내부 칼럼 어드레스(CADDR)로 출력할 수 있다.
제1 선택부(410)에서, 칼럼 어드레스(COL_ADDR)는 수신된 기입 커맨드(WR_CMD)가 내부 프로세싱 모드를 지칭할 때 기입 FIFO(402)를 경유하지 않고 곧바로 내부 칼럼 어드레스(CADDR)로서 출력될 수 있다. 내부 프로세싱 모드에서는 PIM 프로세싱 동작의 결과를 칼럼 어드레스(COL_ADDR)와 연관되는 메모리 셀 어레이(3080)에 기입하기 때문에, 메모리 콘트롤러(114)로부터 기입 데이터를 수신하여 메모리 셀 어레이(3080)에 기입하는 메모리 동작과 관련되는 버스트 어드레스(BADDR)는 중요하지 않다. 즉, 기입 커맨드(WR_CMD)가 내부 프로세싱 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 활성화될 때, 칼럼 어드레스(COL_ADDR)가 내부 칼럼 어드레스(CADDR)로 직접 전달될 수 있다. 칼럼 어드레스(COL_ADDR) 그대로 출력되는 내부 칼럼 어드레스(CADDR)는 기입 FIFO(402)를 경유하여 출력되는 버스트 어드레스(BADDR) 보다 훨씬 먼저 생성될 수 있다. 이에 따라, 칼럼 어드레스(COL_ADDR)에 의한 내부 프로세싱 모드의 동작은 버스트 어드레스(BADDR)에 의한 노멀 모드의 동작 보다 신속하게 수행될 수 있다.
제2 선택부(420)는 기입 커맨드(WR_CMD)를 수신하는 제1 입력(I0), 접지 전압(VSS) 라인에 연결되는 제2 입력(I1), PIM 커맨드 신호(PIM_CMD)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제2 선택부(420)의 출력(O)은 기입 FIFO(402)의 입력 신호(W_CLK)로 제공될 수 있다. 제2 선택부(420)는 PIM 커맨드 신호(PIM_CMD)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 기입 커맨드(WR_CMD)를 기입 FIFO(402)의 입력 신호(W_CLK)로 제공할 수 있다. 제2 선택부(420)는 PIM 커맨드 신호(PIM_CMD)가 로직 하이 레벨로 활성일 때, 제2 입력(11)의 접지 전압(VSS) 레벨을 기입 FIFO(402)의 입력 신호(W_CLK)로 제공할 수 있다.
제2 선택부(420)에서, 기입 커맨드(WR_CMD)가 노멀 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 비활성화될 때, 수신되는 기입 커맨드(WR_CMD)는 기입 FIFO(402)의 입력 신호(W_CLK)로 전달될 수 있다. 이 때, 기입 FIFO(402)는 입력 신호(W_CLK)에 의해 인에이블되고, 입력 신호(W_CLK)로 제공되는 기입 커맨드(WR_CMD)에 의해 식별되는 기입 포인터(PTR_WR)에 해당 버스트 어드레스(BADDR)를 저장할 수 있다. 반면에, 기입 커맨드(WR_CMD)가 내부 프로세싱 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 활성화될 때, 기입 FIFO(402)의 입력 신호(W_CLK)로 접지 전압(VSS) 레벨의 로직 로우 레벨이 인가되어 기입 FIFO(402)는 디세이블된다. 이 때, 제1 선택부(410)에 의해 칼럼 어드레스(COL_ADDR) 그대로 내부 칼럼 어드레스(CADDR)가 출력될 수 있다.
제3 선택부(430)는 기입 데이터 스트로브 신호(WDQS)를 수신하는 제1 입력(I0), 기입 커맨드(WR_CMD)를 수신하는 제2 입력(I1), PIM 커맨드 신호(PIM_CMD)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제3 선택부(430)의 출력(O)은 내부 기입 신호(WRS)로 제공될 수 있다. 제3 선택부(430)는 PIM 커맨드 신호(PIM_CMD)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 스트로브 신호(WDQS)를 내부 기입 신호(WRS)로 출력할 수 있다. 제3 선택부(430)는 PIM 커맨드 신호(PIM_CMD)가 로직 하이 레벨로 활성일 때, 제2 입력(I1)의 기입 커맨드(WR_CMD)를 내부 기입 신호(WRS)로 출력할 수 있다.
제3 선택부(430)에서, 기입 커맨드(WR_CMD)가 노멀 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 비활성화될 때, 수신되는 기입 데이터 스트로브 신호(WDQS)는 내부 기입 신호(WRS)로 전달될 수 있다. 기입 데이터 스트로브 신호(WDQS)는 기입 커맨드(WR_CMD)로부터 기입 레이턴시(WL) 후에 메모리 콘트롤러(114)로부터 제공될 수 있다. 반면에, 기입 커맨드(WR_CMD)가 내부 프로세싱 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 활성화될 때, 수신되는 기입 커맨드(WR_CMD)는 내부 기입 신호(WRS)로 전달될 수 있다. 즉, 기입 커맨드(WR_CMD)가 내부 프로세싱 모드를 지칭할 때, 기입 커맨드(WR_CMD)에 의해 내부 기입 신호(WRS)가 생성될 수 있다. 기입 커맨드(WR_CMD)에 기초한 내부 기입 신호(WRS)는 기입 데이터 스트로브 신호(WDQS) 보다 훨씬 먼저 생성될 수 있다. 이에 따라, 기입 커맨드(WR_CMD)에 기초한 내부 기입 신호(WRS)에 의한 내부 프로세싱 모드의 동작은 기입 데이터 스트로브 신호(WDQS)에 의한 노멀 모드의 동작 보다 신속하게 수행될 수 있다.
도 3 및 도 5를 참조하면, 제어 로직 회로(126b)는 독출 버스트 모드에서 어드레스 버퍼(310)에서 제공되는 칼럼 어드레스(COL_ADDR)에 기초하여 점진적으로 증가되는 버스트 어드레스(BADDR)를 생성하고 버스트 어드레스(BADDR)를 저장하는 독출 FIFO(502)를 포함할 수 있다. 독출 FIFO(502)는 독출 포인터(PTR_RDa~PTR_RDd)를 이용하여 독출 커맨드(RD_CMD)에 상응하는 버스트 어드레스(BADDR)를 저장하는 플립플롭들로 구현될 수 있다. 예컨대, RDa_CMD 독출 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_RDa 독출 포인터의 플립플롭들에 저장될 수 있다. RDb_CMD 독출 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_RDb 기입 포인터의 플립플롭들에 저장되고, RDc_CMD 독출 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_RDc 독출 포인터의 플립플롭들에 저장되고, RDd_CMD 독출 커맨드에 상응하는 버스트 어드레스(BADDR)는 PTR_RDd 독출 포인터의 플립플롭들에 저장될 수 있다.
독출 FIFO(502)는 입력 신호(W_CLK)에 응답하여 독출 커맨드(RD_CMD)에 상응하는 독출 포인터(PTR_RD)에 해당 버스트 어드레스(BADDR)를 저장하도록 구성될 수 있다. 독출 FIFO(502)는 입력 신호(W_CLK)로 제공되는 독출 커맨드(RD_CMD)에 의해 식별되는 독출 포인터(PTR_RD)에 해당 버스트 어드레스(BADDR)를 저장하는 동작이 완료되면, 독출 유효 신호(VALID)를 출력할 수 있다. 독출 유효 신호(VALID)에 기초하여 독출 동작의 주된 신호인 내부 독출 신호(RDVS)가 생성될 것이다.
독출 FIFO(502)는 출력 신호(R_CLK)에 응답하여 독출 포인터(PTR_RD)에 저장된 버스트 어드레스(BADDR)를 출력하도록 구성될 수 있다. 독출 FIFO(502)는 출력 신호(R_CLK)에 상응하는 독출 포인터(PTR_RD)에 저장된 버스트 어드레스(BADDR)를 출력할 수 있다. 이 경우, 출력 신호(R_CLK)는 지연 회로(510)에 의해 소정 시간 지연된 독출 커맨드(RD_CMD)를 제공받을 수 있다.
제어 로직 회로(126b)는 멀티플렉서로 구현되는 제4 선택부(520)를 포함할 수 있다. 제4 선택부(520)는 PIM 커맨드 신호(PIM_CMD)에 응답하여 노멀 모드 또는 내부 프로세싱 모드에서의 신호 전송 경로들을 변경할 수 있다. 제4 선택부(520)는 PIM 커맨드 신호(PIM_CMD)가 비활성이면 제1 입력(I0)으로 수신되는 신호를 출력(O)으로 전송하여 노멀 모드 시의 동작 신호로 출력하고, PIM 커맨드 신호(PIM_CMD)가 활성이면 제2 입력(I1)으로 인가되는 신호를 출력(O)으로 전송하여 내부 프로세싱 모드 시의 동작 신호로 출력할 수 있다.
제4 선택부(520)는 독출 FIFO(502)에서 출력되는 독출 유효 신호(VALID)를 수신하는 제1 입력(I0), 접지 전압(VSS) 라인에 연결되는 제2 입력(I1), PIM 커맨드 신호(PIM_CMD)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제4 선택부(520)의 출력(O)은 내부 독출 신호(RDVS)로 제공될 수 있다. 제4 선택부(520)는 PIM 커맨드 신호(PIM_CMD)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 독출 유효 신호(VALID)를 내부 독출 신호(RDVS)로 제공할 수 있다. 제4 선택부(520)는 PIM 커맨드 신호(PIM_CMD)가 로직 하이 레벨로 활성일 때, 제2 입력(11)의 접지 전압(VSS) 레벨을 내부 독출 신호(RDVS)로 제공할 수 있다.
제4 선택부(520)에서, 독출 커맨드(RD_CMD)가 노멀 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 비활성화될 때, 독출 유효 신호(VALID)는 내부 독출 신호(RDVS)로 전달될 수 있다. 독출 유효 신호(VALID)에 기초한 내부 독출 신호(RDVS)는 입출력 데이터 게이팅 회로를 인에이블시키고, 메모리 셀 어레이(3080)에서 독출되는 데이터가 데이터 입출력 라인으로 출력되도록 제어할 수 있다. 반면에, 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 지칭할 때, 메모리 셀 어레이(3080)에서 독출되는 데이터는 프로세싱 동작에 이용되기 때문에, 독출 데이터는 데이터 입출력 라인으로 출력될 필요가 없다. 이에 따라, 메모리 셀 어레이(3080)에서 독출된 데이터를 메모리 콘트롤러(114)로 출력하는 메모리 동작과 관련된 인터페이스 동작은 중요하지 않다.
도 6 내지 도 7은 본 발명의 실시예들에 따른 메모리 장치에서 데이터의 전송 경로의 실시예를 설명하는 도면들이다. 도 7은 도 6의 제1 코어 다이(221)의 제1 채널(CH1)과 로직 다이(210) 사이의 데이터 전송 경로를 구현하는 일 실시예를 나타내는 도면이다.
도 2 및 도 6을 참조하면, 메모리 장치(120)에서, 코어 다이들(220)의 제1 내지 제8 채널들(CH1~CH8)에 각각 상응하는 제1 내지 제8 버스들(BUS1~BUS8)을 통하여 로직 다이(210)와 제1 내지 제8 채널들(CH1~CH8) 사이에 데이터 전송이 수행될 수 있다. 제1 내지 제8 버스들(BUS1~BUS8) 각각은 복수의 데이터 라인들을 포함하고, 적충된 코어 다이들에 형성된 TSV들을 연결하여 수직으로 길게 연장될 수 있다.
로직 다이(210)와 코어 다이들(220)은 제1 내지 제8 채널들(CH1~CH8)에 상응하는 버스들(BUS1~BUS8)을 통하여 양방향 통신을 수행하는 제1 인터커넥트 회로들(613~618)과 제2 인터커넥트 회로들(621~628)을 포함할 수 있다. 제1 인터커넥트 회로들(613~618)과 제2 인터커넥트 회로들(621~628)에는 송신 회로들 및 수신 회로들을 모두 포함할 수 있다.
제1 내지 제8 채널들(CH1~CH8)에 대한 기입 동작 시, 로직 다이(210)의 제1 인터커넥트 회로(611)의 송신 회로와 코어 다이들(220)의 제2 인터커넥트 회로(621)의 수신 회로가 인에이블되어 상응하는 제1 버스(BUS1)를 통해 기입 데이터가 제1 채널(CH1)로 전송될 수 있다. 이와 마찬가지로, 로직 다이(210)의 제1 인터커넥트 회로들(612~618) 각각의 송신 회로와 코어 다이들(220)의 제2 인터커넥트 회로들(621~628) 각각의 수신 회로가 인에이블되어 상응하는 제2 내지 제8 버스들(BUS2~BUS8) 각각을 통해 기입 데이터가 제2 내지 제8 채널들(CH2~CH8) 각각으로 전송될 수 있다.
제1 내지 제8 채널들(CH1~CH8) 각각에 대한 기입 동작은 해당 기입 커맨드(WR_CMD)에 의해 독립적으로 수행될 수 있다. 기입 커맨드(WR_CMD)가 노멀 모드를 지정하는 노멀 커맨드일 때 제1 인터커넥트 회로들(613~618)과 제2 인터커넥트 회로들(621~628) 사이에 기입 데이터가 전송될 수 있다. 노멀 모드일 때, 제2 인터커넥트 회로들(621~628)로 전송되는 기입 데이터는 기입 커맨드(WR_CMD)에 상응하는 버스트 어드레스(BADDR)에 따라 메모리 셀 어레이(3080)에 기입되는 메모리 동작을 수행할 것이다.
기입 커맨드(WR_CMD)가 내부 프로세싱 모드를 지정하는 PIM 커맨드일 때, 프로세싱 소자(PE)에서 수행된 프로세싱 동작의 결과는 기입 커맨드(WR_CMD)에 상응하는 칼럼 어드레스(COL_ADDR)와 연관되는 메모리 셀 어레이(3080)에 기입될 수 있다. 내부 프로세싱 모드일 때, 프로세싱 소자(PE)에 의한 프로세싱 동작의 결과는 제1 인터커넥트 회로들(613~618)과 제2 인터커넥트 회로들(621~628)로 전송되지 않는다.
제1 내지 제8 채널들(CH1~CH8)에 대한 독출 동작 시, 제1 채널(CH1)의 제2 인터커넥트 회로(621)의 송신 회로와 로직 다이(210)의 제1 인터커넥트 회로(611)의 수신 회로가 인에이블되어 상응하는 제1 버스(BUS1)를 통해 독출 데이터가 로직 다이(210)로 전송될 수 있다. 이와 마찬가지로, 제2 내지 제8 채널(CH2~CH8)의 제2 인터커넥트 회로들(622~628) 각각의 송신 회로와 로직 다이(210)의 제1 인터커넥트 회로들(612~618) 각각의 수신 회로가 인에이블되어 상응하는 제2 내지 제8 버스들(BUS2~BUS8) 각각을 통해 독출 데이터가 로직 다이(210)로 전송될 수 있다.
제1 내지 제8 채널들(CH1~CH8) 각각에 대한 독출 동작은 해당 독출 커맨드(RD_CMD)에 의해 독립적으로 수행될 수 있다. 독출 커맨드(RD_CMD)가 노멀 모드를 지정하는 노멀 커맨드인 경우, 제2 인터커넥트 회로들(621~628)와 제1 인터커넥트 회로들(613~618) 사이에 독출 데이터가 전송될 수 있다. 반면에, 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 지정하는 PIM 커맨드인 경우, 제2 인터커넥트 회로들(621~628)와 제1 인터커넥트 회로들(613~618) 사이의 독출 데이터 전송은 수행되지 않는다. 이것은 제1 내지 제8 채널들(CH1~CH8) 각각은 내부 프로세싱 모드에서 메모리 셀 어레이(3080)에서 독출된 데이터를 프로세싱 동작에 이용하므로, 독출 데이터를 메모리 콘트롤러(114)로 전송할 필요가 없기 때문이다.
도 7을 참조하면, 제1 채널(CH1)의 독출 동작에서, 제1 채널(CH1)의 제2 인터커넥트 회로(621)는 제1 버스(BUS1)를 통하여 로직 다이(210)의 제1 인터커넥트 회로(611)와 선택적으로 연결될 수 있다. 제1 인터커넥트 회로(611)는 제1 전송 클록 신호(BIC_CLK)에 응답하여 선택적으로 인에이블되고, 제2 인터커넥트 회로(621)는 제2 전송 클록 신호(CIC_CLK)에 응답하여 선택적으로 인에이블될 수 있다. 제2 전송 클록 신호(CIC_CLK)는 제1 채널(CH1)에서 생성되는 PIM 커맨드 신호(PIM_CMD)에 의해 제어되는데, PIM 커맨드 신호(PIM_CMD)가 활성화되면 제2 전송 클록 신호(CIC_CLK)에 의해 제2 인터커넥트 회로(621)가 디세이블될 수 있다. 제2 인터커넥트 회로(621)가 디세이블됨에 따라 메모리 셀 어레이(3080)에서 독출된 데이터는 제1 버스(BUS1)로 전달되지 않는다.
로직 다이(210)는 메모리 장치(120)의 전반적인 동작을 제어하는 메모리 제어 회로(710)를 포함할 수 있다. 메모리 제어 회로(710)는 제1 채널(CH1)로 제공되는 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 나타내는지를 판단할 수 있다. 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 나타내는 경우, 메모리 제어 회로(710)는 제1 전송 클록 신호(BIC_CLK)에 의해 제1 인터커넥트 회로(611)가 디세이블되도록 하여 제1 버스(BUS)와 제1 인터커넥트 회로(611)와의 연결을 차단할 수 있다.
도 8 및 도 9는 본 발명의 실시예들에 따른 메모리 장치에서 신호 전송 경로의 실시예를 설명하는 도면들이다. 도 8은 본 발명의 실시예들에 따른 메모리 장치의 독출 모드와 연관되는 내부 프로세싱 동작에서의 신호 전송 경로를 구현하는 일 실시예를 보여주고, 도 9는 도 7의 메모리 제어 회로의 일 실시예를 설명하는 도면이다.
도 7 및 도 8을 참조하면, 제1 채널(CH1)의 제어 로직 회로(126c)는 멀티플렉서로 구현되는 제5 선택부(820)를 포함할 수 있다. 제5 선택부(820)는 클록 발생 회로(810)와 연결될 수 있다. 클록 발생 회로(810)는 메인 클록 신호(CK) 및 독출 커맨드(RD_CMD)에 기초하여 인터커넥트 클록 신호(IC_CLK)를 생성할 수 있다. 인터커넥트 클록 신호(IC_CLK)는 제2 인터커넥트 회로(621)를 제1 버스(BUS1)에 연결시키는 동작 신호로 작용할 수 있다.
제5 선택부(820)는 PIM 커맨드 신호(PIM_CMD)에 응답하여 노멀 모드 또는 내부 프로세싱 모드에서의 신호 전송 경로들을 변경할 수 있다. 제5 선택부(820)는 PIM 커맨드 신호(PIM_CMD)가 비활성이면 제1 입력(I0)으로 수신되는 신호를 출력(O)으로 전송하여 노멀 모드 시의 동작 신호로 출력하고, PIM 커맨드 신호(PIM_CMD)가 활성이면 제2 입력(I1)으로 인가되는 신호를 출력(O)으로 전송하여 내부 프로세싱 모드 시의 동작 신호로 출력할 수 있다.
제5 선택부(820)는 클록 발생 회로(810)에서 제공되는 인터커넥트 클록 신호(IC_CLK)를 수신하는 제1 입력(I0), 접지 전압(VSS) 라인에 연결되는 제2 입력(I1), PIM 커맨드 신호(PIM_CMD)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제5 선택부(820)의 출력(O)은 제2 전송 클록 신호(CIC_CLK)로 제공될 수 있다. 제5 선택부(820)는 PIM 커맨드 신호(PIM_CMD)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 인터커넥트 클록 신호(IC_CLK)를 제2 전송 클록 신호(CIC_CLK)로 제공할 수 있다. 제5 선택부(820)는 PIM 커맨드 신호(PIM_CMD)가 로직 하이 레벨로 활성일 때, 제2 입력(11)의 접지 전압(VSS) 레벨의 로직 로우 레벨을 제2 전송 클록 신호(CIC_CLK)로 제공할 수 있다.
제5 선택부(820)에서, 독출 커맨드(RD_CMD)가 노멀 커맨드로 판단되어 PIM 커맨드 신호(PIM_CMD)가 비활성화될 때, 인터커넥트 클록 신호(IC_CLK)는 제2 전송 클록 신호(CIC_CLK)로 전달될 수 있다. 인터커넥트 클록 신호(IC_CLK)에 기초한 제2 전송 클록 신호(CIC_CLK)는 제2 인터커넥트 회로(621)를 인에이블시키고 메모리 셀 어레이(3080)에서 독출된 데이터가 제1 버스(BUS1)로 전달되도록 제어할 수 있다. 반면에, 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 지칭할 때, 메모리 셀 어레이(3080)에서 독출되는 데이터는 프로세싱 동작에 이용되기 때문에, 독출 데이터는 제1 버스(BUS1)로 출력될 필요가 없다. 이에 따라, 로직 로우 레벨의 제2 전송 클록 신호(CIC_CLK)에 의해 제2 인터커넥트 회로(621)가 디세이블되어 메모리 셀 어레이(3080)에서 독출된 데이터는 제1 버스(BUS1)로 전달되지 않는다. 이 경우, 제2 인터커넥트 회로(621)가 인에이블되어 독출 데이터를 전달하는 것과 비교하여 메모리 장치(120)의 전력 소모가 감소될 수 있다.
도 7 및 도 9를 참조하면, 메모리 제어 회로(710)는 제1 채널(CH1)에 대한 인터커넥트 및 인터페이스 클록 회로(910), 제1 채널(CH1)에 대한 PIM 커맨드 판단부(920), 멀티플렉서들로 구현되는 제1 선택부(930) 및 제2 선택부(940)를 포함할 수 있다. 인터커넥트 및 인터페이스 클록 회로(910)는 제1 채널(CH1)과 관련되는 인터커넥트 클록 신호(IC1_CLK) 및 인터페이스 클록 신호(IF1_CLK)를 출력할 수 있다. 인터커넥트 클록 신호(IC1_CLK)는 제1 인터커넥트 회로(611)를 제1 버스(BUS1)에 연결시키는 동작 신호로 작용할 수 있다. 인터페이스 클록 신호(IF1_CLK)는 인터페이스 회로(211)로 제공되는 제1 채널(CH1)의 독출 데이터 스트로브 신호(RDQS)의 소스 신호로 작용할 수 있다.
PIM 커맨드 판단부(920)는 인터페이스 회로(211)를 통해 메모리 콘트롤러(114)로부터 제1 채널(CH1)로 제공되는 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 나타내는지를 판단할 수 있다. 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 나타내는 경우, PIM 커맨드 판단부(920)는 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)를 생성할 수 있다.
제1 선택부(930)는 인터커넥트 및 인터페이스 클록 회로(910)에서 제공되는 인터커넥트 클록 신호(IC1_CLK)를 수신하는 제1 입력(I0), 접지 전압(VSS) 라인에 연결되는 제2 입력(I1), 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제1 선택부(930)의 출력(O)은 제1 전송 클록 신호(BIC_CLK)로 제공될 수 있다. 제1 선택부(930)는 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 인터커넥트 클록 신호(IC1_CLK)를 제1 전송 클록 신호(BIC_CLK)로 제공할 수 있다. 제1 선택부(930)는 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)가 로직 하이 레벨로 활성일 때, 제2 입력(11)의 접지 전압(VSS) 레벨의 로직 로우 레벨을 제1 전송 클록 신호(BIC_CLK)로 제공할 수 있다.
제1 선택부(930)에서, 제1 채널(CH1)로 제공되는 독출 커맨드(RD_CMD)가 노멀 커맨드로 판단되어 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)가 비활성화될 때, 인터커넥트 클록 신호(IC1_CLK)는 제1 전송 클록 신호(BIC_CLK)로 전달될 수 있다. 인터커넥트 클록 신호(IC1_CLK)에 기초한 제1 전송 클록 신호(BIC_CLK)는 제1 인터커넥트 회로(611)를 인에이블시키고 제1 버스(BUS1)을 통해 제1 채널(CH1)에서 출력되는 데이터를 수신하도록 제어할 수 있다. 반면에, 제1 채널(CH1)로 제공되는 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 지칭할 때, 제1 채널(CH1)의 메모리 셀 어레이(3080)에서 독출되는 데이터는 프로세싱 동작에 이용되기 때문에, 제1 채널(CH1)의 제2 인터커넥트 회로(621)가 디세이블되어 제1 채널(CH1)의 독출 데이터는 제1 버스(BUS1)로 출력되지 않는다. 이에 따라, 로직 로우 레벨의 제1 전송 클록 신호(BIC_CLK)에 의해 제1 인터커넥트 회로(611)가 디세이블되어 제1 버스(BUS)와 제1 인터커넥트 회로(611)와의 연결이 차단된다. 이 경우, 제1 인터커넥트 회로(611)가 인에이블되어 독출 데이터를 전달하는 것과 비교하여 메모리 장치(120)의 전력 소모가 감소될 수 있다.
제2 선택부(940)는 인터커넥트 및 인터페이스 클록 회로(910)에서 제공되는 인터페이스 클록 신호(IF1_CLK)를 수신하는 제1 입력(I0), 접지 전압(VSS) 라인에 연결되는 제2 입력(I1), 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)를 수신하는 선택 신호(S), 그리고 출력(O)을 갖는다. 제2 선택부(940)의 출력(O)은 제1 채널(CH1)에 대한 독출 데이터 스트로브 신호(RDQS)로 제공될 수 있는데, 독출 데이터 스트로브 신호(RDQS)는 제1 채널(CH1)의 독출 데이터와 함께 메모리 콘트롤러(114)로 제공될 수 있다. 제2 선택부(940)는 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)가 로직 로우 레벨로 비활성일 때, 제1 입력(I0)의 인터페이스 클록 신호(IF1_CLK)를 독출 데이터 스트로브 신호(RDQS)로 제공할 수 있다. 제2 선택부(940)는 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)가 로직 하이 레벨로 활성일 때, 제2 입력(11)의 접지 전압(VSS) 레벨의 로직 로우 레벨을 독출 데이터 스트로브 신호(RDQS)로 제공할 수 있다.
제2 선택부(940)에서, 제1 채널(CH1)로 제공되는 독출 커맨드(RD_CMD)가 노멀 커맨드로 판단되어 제1 채널 PIM 커맨드 신호(PIM_CMD_CH1)가 비활성화될 때, 인터페이스 클록 신호(IF1_CLK)를 독출 데이터 스트로브 신호(RDQS)로 전달될 수 있다. 인터페이스 클록 신호(IF1_CLK)에 기초한 독출 데이터 스트로브 신호(RDQS)는 토글링할 것이고 인터페이스 회로(211)를 통해 독출 데이터와 함께 메모리 콘트롤러(114)로 전송되도록 제어될 것이다. 반면에, 제1 채널(CH1)로 제공되는 독출 커맨드(RD_CMD)가 내부 프로세싱 모드를 지칭할 때는 제1 채널(CH1)의 메모리 셀 어레이(3080)에서 독출된 데이터는 프로세싱 동작에 이용되고, 제1 채널(CH1)의 제2 인터커넥트 회로(621)가 디세이블되어 제1 버스(BUS1)로 제1 채널(CH1)의 독출 데이터가 제공되지 않기 때문에, 독출 데이터 스트로브 신호(RDQS)는 로직 로우 레벨로 출력될 수 있다. 이 경우, 독출 데이터와 함께 독출 데이터 스트로브 신호(RDQS)가 토글링하는 것과 비교하여 메모리 장치(120)의 전력 소모가 감소될 수 있다.
도 10a 및 도 10b는 본 발명의 실시예들에 따른 메모리 장치의 기입 동작의 실시예들을 나타내는 타이밍도들이다. 도 10a는 메모리 장치의 기입 커맨드가 노멀 모드를 지칭할 때의 동작 타이밍도를 보여주고, 도 10b는 기입 커맨드가 내부 프로세싱 모드를 지칭할 때의 동작 타이밍도를 보여준다. 본 발명에서 설명되는 타이밍 다이어그램들은 반드시 일정한 비율로 도시된 것은 아니라는 것을 밝혀둔다.
도 1 내지 도 9와 연계하여 도 10a을 참조하면, T0 시점에서 메모리 장치(120)로 노멀 모드의 기입 커맨드(WRITE)가 인가될 수 있다. 기입 커맨드(WRITE)와 함께 뱅크 및 칼럼 어드레스(BAx, CAa)가 수신될 수 있다. T0 시점으로부터 기입 레이턴시(WL) 후, 예컨대 WL=4의 T4 시점에서 기입 데이터(DATA)가 수신될 수 있다. T0 시점에서 T4 시점 사이의 시간은, 기입 데이터 스트로브 신호(WDQS)에 동기되어 수신될 기입 데이터(DATA)를 뱅크 및 칼럼 어드레스(BAx, CAa)에 상응하는 메모리 셀 어레이(3080)에 기입하는 메모리 동작을 위한 준비 시간에 해당한다. 이 동안, 도 4에서 설명된 기입 FIFO(402)에서 기입 커맨드(WRITE)에 상응하는 기입 포인터(PTR_WR)에 해당 버스트 어드레스(BADDR)를 저장할 수 있다. T4 시점에서부터, 기입 FIFO(402)에서 출력되는 버스트 어드레스(BADDR)와 관련된 메모리 셀 어레이(3080)의 메모리 셀들에 기입 데이터(DATA)를 기입하는 기입 동작을 수행할 수 있다.
메모리 장치(120)의 기입 동작 후, Ta 시점에서 독출 커맨드(READ)가 인가될 수 있다. 기입 동작 후 인가되는 독출 커맨드(READ)는 tWTR(Write-To-Read delay) 파라미터를 만족하는 시점에서 인가되어야 한다. tWTR 파라미터는 마지막 기입 데이터(DATA)가 메모리 셀 어레이(3080)에 기입되는 것을 보장하기 위해 제공될 수 있다. tWTR 파라미터는 JEDEC 표준의 DDR 및/또는 LPDDR 규격에 규정된 tWTR 타이밍 요건을 만족할 수 있다. Ta 시점으로부터 독출 레이턴시(RL) 후, 예컨대 RL =6의 Ta+7 시점에서 독출 데이터(DATA)가 출력될 수 있다.
도 10b를 참조하면, T0 시점에서 메모리 장치(120)로 내부 프로세싱 모드의 기입 커맨드(WRITE)와 함께 뱅크 및 칼럼 어드레스(BAx, CAa)가 인가될 수 있다. 내부 프로세싱 모드에서, 메모리 장치(120)는 프로세싱 소자(PE)에서 수행된 프로세싱 동작의 결과 즉, 내부 데이터를 기입 커맨드(WRITE)에 상응하는 뱅크 및 칼럼 어드레스(BAx, CAa)와 관련되는 메모리 셀 어레이(3080)에 기입한다. 이에 따라, 내부 프로세싱 모드의 기입 동작 수행 시간이 노멀 모드의 기입 동작 수행 시간보다 작아질 수 있다. 내부 프로세싱 모드에서는 메모리 콘트롤러(114)로부터 기입 데이터 즉, 외부 데이터를 수신하지 않기 때문에, 메모리 장치(120)는 노멀 모드에 규정된 기입 데이터와 관련된 기입 데이터 스트로브 신호쌍(WDQS_t, WDQS_c)을 토글하지 않도록 비-설정할 수 있다. 또한, 내부 프로세싱 모드에서는 외부 기입 데이터를 메모리 셀 어레이(3080)에 기입하는 메모리 동작을 수행하지 않기 때문에, 노멀 모드에 규정된 tWTR 파라미터를 줄일 수 있다.
도 11a 및 도 11b는 본 발명의 실시예들에 따른 메모리 장치의 독출 동작의 실시예들을 나타내는 타이밍도들이다. 도 11a는 메모리 장치의 독출 커맨드가 노멀 모드를 지칭할 때의 동작 타이밍도를 보여주고, 도 11b는 독출 커맨드가 내부 프로세싱 모드를 지칭할 때의 동작 타이밍도를 보여준다.
도 1 내지 도 9와 연계하여, 도 11a를 참조하면, T0 시점에서 메모리 장치(120)로 노멀 모드의 독출 커맨드(READ)와 함께 뱅크 및 칼럼 어드레스(BAx, CAa)가 인가될 수 있다. T0 시점으로부터 독출 레이턴시(RL) 후, 예컨대 RL=6의 T6 시점에서 독출 데이터(DATA)가 출력될 수 있다. T0 시점에서 T6 시점 사이의 시간은, 독출 데이터 스트로브 신호(WDQS)에 동기되어 출력될 독출 데이터(DATA)를 뱅크 및 칼럼 어드레스(BAx, CAa)에 상응하는 메모리 셀 어레이(3080)에서 독출하는 메모리 동작을 위한 준비 시간에 해당한다. 이 동안, 도 5에서 설명된 독출 FIFO(502)에서 독출 커맨드(READ)에 상응하는 독출 포인터(PTR_RD)에 해당 버스트 어드레스(BADDR)를 저장할 수 있다. T6 시점에서부터, 독출 FIFO(502)에서 출력되는 버스트 어드레스(BADDR)에 연결된 메모리 셀 어레이(3080)의 메모리 셀들에 저장된 데이터를 독출하는 동작을 수행할 수 있다.
독출 동작 후 인가되는 기입 커맨드(WRITE)는 tRTW(Read-To-Write delay) 파라미터를 만족하는 시점에서 인가되어야 한다. tRTW 파라미터는 메모리 셀 어레이(3080)의 마지막 독출 데이터(DATA)가 출력되는 것을 보장하기 위해 제공된다. T6 시점에서, 기입 커맨드(WRITE)와 함께 뱅크 및 칼럼 어드레스(BAx, CAa)가 수신될 수 있다. T6 시점으로부터 기입 레이턴시(WL) 후, 예컨대 WL=4의 T10 시점에서 기입 데이터(DATA)가 수신될 수 있다.
도 11b를 참조하면, T0 시점에서 메모리 장치(120)로 내부 프로세싱 모드의 독출 커맨드(READ)와 함께 뱅크 및 칼럼 어드레스(BAx, CAa)가 인가될 수 있다. 뱅크 및 칼럼 어드레스(BAx, CAa)에 상응하는 메모리 셀 어레이(3080)에서 독출된 데이터는 프로세싱 동작에 이용된다. 그리고, 도 6 내지 도 8에서 설명된 바와 같이, 메모리 장치(120)의 독출 데이터가 메모리 콘트롤러(114)로 전송되지 않기 때문에, 독출 데이터 스트로브 신호쌍(RDQS_t, RDQS_c)도 전송되지 않는다.
내부 프로세싱 모드에서는, 메모리 셀 어레이(3080)의 데이터를 독출하여 메모리 콘트롤러(114)로 전송하는 동작과 관련되는 독출 레이턴시(RL)에 상관없이 독출 데이터를 이용하도록 설정될 수 있다. 이에 따라, 내부 프로세싱 모드에서는 노멀 모드에 규정된 독출 데이터와 관련된 독출 데이터 스트로브 신호쌍(RDQS_t, RDQS_c)을 토글하지 않도록 비-설정할 수 있다. 또한, 내부 프로세싱 모드에서는 독출 데이터를 메모리 콘트롤러(114)로 전송하지 않기 때문에, 노멀 모드에 규정된 tRTW 파라미터를 줄일 수 있다.
도 12는 본 발명의 실시예들에 따른 메모리 장치를 포함하는 시스템(1000)을 나타내는 블록 다이어그램이다.
도 12를 참조하면, 시스템(1000)은 카메라(1100), 디스플레이(1200), 오디오 처리부(1300), 모뎀(1400), DRAM들(1500a, 1500b), 플래시 메모리들(1600a, 1600b), I/O 디바이스들(1700a, 1700b) 및 어플리케이션 프로세서(Application Processor, 1800, 이하 "AP"라고 칭함)를 포함할 수 있다. 시스템(1000)은 랩탑(laptop) 컴퓨터, 휴대용 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기, 또는 IOT(Internet Of Things) 기기로 구현될 수 있다. 또한, 시스템(1000)은 서버(Server), 또는 개인용 컴퓨터(Personal Computer)로 구현될 수도 있다.
카메라(1100)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬영하고, 쵤영한 이미지/영상 데이터를 저장하거나 디스플레이(1200)로 전송할 수 있다. 오디오 처리부(1300)는 플래시 메모리 장치들(1600a, 1600b)나 네트워크의 컨텐츠에 포함된 오디오 데이터를 처리할 수 있다. 모뎀(1400)는 유/무선데이터 송수신을 위하여 신호를 변조하여 송신하고, 수신측에서 원래의 신호로 복구하기 위해 복조할 수 있다. I/O 디바이스들(1700a, 1700b)는 USB(Universal Serial Bus)나 스토리지, 디지털 카메라, SD(Secure Digital) 카드, DVD(Digital Versatile Disc), 네트워크 어댑터(Network adapter), 터치 스크린 등과 같은 디지털 입력 및/또는 출력 기능을 제공하는 기기들을 포함할 수 있다.
AP(1800)는 시스템(1000)의 전반적인 동작을 제어할 수 있다. AP(1800)는 플래시 메모리 장치들(1600a, 1600b)에 저장된 컨텐츠의 일부가 디스플레이(1200)에 표시되도록 디스플레이(1200)를 제어할 수 있다. AP(1800)는 I/O 디바이스들(1700a, 1700b)을 통하여 사용자 입력이 수신되면, 사용자 입력에 대응하는 제어 동작을 수행할 수 있다. AP(1800)는 AI(Artifitial Intelligence) 데이터 연산을 위한 전용 회로인 엑셀레이터(Accelerator) 블록을 포함하거나, AP(1800)와 별개로 엑셀레이터 칩(1820)을 구비할 수 있다. 엑셀레이터 블록 또는 엑셀레이터 칩(1820)에 추가적으로 DRAM(1500b)이 장착될 수 있다. 엑셀레이터는 AP(1800)의 특정 기능을 전문적으로 수행하는 기능 블록으로, 엑셀레이터는 그래픽 데이터 처리를 전문적으로 수행하는 기능 블럭인 GPU, AI 계산과 인퍼런스(Inference)를 전문적으로 수행하기 위한 블럭인 NPU(Neural Processing Unit), 데이터 전송을 전문적으로 하는 블록인 DPU(Data Processing Unit)를 포함할 수 있다
시스템(1000)은 복수의 DRAM들(1500a, 1500b)을 포함할 수 있다. AP(1800)는 JEDEC(Joint Electron Device Engineering Council) 표준 규격에 맞는 커맨드와 모드 레지스터(MRS) 셋팅을 통하여 DRAM들(1500a, 1500b)을 제어하거나, 저전압/고속/신뢰성 등 업체 고유 기능 및 CRC(Cyclic Redundancy Check)/ECC(Error Correction Code) 기능을 사용하기 위하여 DRAM 인터페이스 규약을 설정하여 통신할 수 있다. 예를 들어 AP(1800)는 LPDDR4, LPDDR5 등의 JEDEC 표준 규격에 맞는 인터페이스로 DRAM(1500a)과 통신할 수 있으며, 엑셀레이터 블록 또는 엑셀레이터 칩(1820)는 DRAM(1500a)보다 높은 대역폭을 가지는 엑셀레이터용 DRAM(1500b)을 제어하기 위하여 새로운 DRAM 인터페이스 규약을 설정하여 통신할 수 있다.
도 12에서는 DRAM들(1500a, 1500b)만을 도시하였으나, 이에 한정되지 않고 AP(1800)이나 엑셀레이터 칩(1820) 대역폭과 반응 속도, 전압 조건들을 만족한다면 PRAM이나 SRAM, MRAM, RRAM, FRAM 또는 Hybrid RAM의 메모리 등 어떤 메모리라도 사용 가능하다. DRAM들(1500a, 1500b)은 I/O 디바이스(1700a, 1700b)나 플래시 메모리들(1600a, 1600b) 보다 상대적으로 작은 레이턴시(latency)와 대역폭(bandwidth)를 가지고 있다. DRAM들(1500a, 1500b)은 시스템(1000)의 파워 온 시점에 초기화되고, 운영 체제와 어플리케이션 데이터가 로딩되어 운영 체제와 어플리케이션 데이터의 임시 저장 장소로 사용되거나 각종 소프트웨어 코드의 실행 공간으로 사용될 수 있다.
DRAM들(1500a, 1500b) 내에서는 더하기/빼기/곱하기/나누기 사칙 연산과 벡터 연산, 어드레스 연산, 또는 FFT(Fast Fourier Transform) 연산이 수행될 수 있다. 또한, DRAM들(1500a, 1500b) 내에서는 인퍼런스(inference)에 사용되는 수행을 위한 함수 기능(function)이 수행될 수 있다. 여기서, 인퍼런스는 인공 신경망(artificial neural network)을 이용한 딥러닝 알고리즘에서 수행될 수 있다. 딥러닝 알고리즘은 다양한 데이터를 통해 모델을 학습하는 트레이닝(training) 단계와 학습된 모델로 데이터를 인식하는 인퍼런스 단계를 포함할 수 있다. 실시예로서, 사용자가 카메라(1100)를 통해 촬영한 이미지는 신호 처리되어 DRAM(1500b) 내에 저장이 되며, 엑셀레이터 블록 또는 엑셀레이터 칩(1820)은 DRAM(1500b)에 저장된 데이터와 인퍼런스에 사용되는 함수를 이용하여 데이터를 인식하는 AI 데이터 연산을 수행할 수 있다.
시스템(1000)은 DRAM들(1500a, 1500b) 보다 큰 용량을 가진 복수의 스토리지 또는 복수의 플래시 메모리들(1600a, 1600b)을 포함할 수 있다. 엑셀레이터 블록 또는 엑셀레이터 칩(1820)은 플래시 메모리 장치(1600a, 1600b)를 이용하여 트레이닝(training) 단계와 AI 데이터 연산을 수행할 수 있다. 일 실시예로, 플래시 메모리들(1600a, 1600b)은 메모리 콘트롤러(1610) 내에 구비된 연산 장치를 사용하여 AP(1800) 및/내지 엑셀레이터 칩(1820)이 수행하는 트레이닝(training) 단계과 인퍼런스 AI 데이터 연산을 보다 효율적으로 수행할 수 있다. 플래시 메모리들(1600a, 1600b)은 카메라(1100)를 통하여 찍은 사진을 저장하거나, 데이터 네트워크로 전송 받은 데이터를 저장할 수 있다. 예를 들어, 증강 현실(Augmented Reality)/가상 현실(Virtual Reality), HD(High Definition) 또는 UHD(Ultra High Definition) 컨텐츠를 저장할 수 있다.
시스템(1000)에서, DRAM들(1500a, 1500b)은 노멀 모드 및 내부 프로세싱 모드를 제어하는 제어 로직 회로 및 내부 프로세싱 모드에서 프로세싱 동작을 수행하는 PIM 회로를 포함할 수 있다. DRAM들(1500a, 1500b)은 내부 프로세싱 모드일 때 기입 데이터 스트로브 신호쌍(WDQS_t, WDQS_c)이 토글하지 않도록 비-설정할 수 있다. DRAM들(1500a, 1500b)은 내부 프로세싱 모드일 때 독출 데이터 스트로브 신호쌍(RDQS_t, RDQS_c)이 토글하지 않도록 비-설정할 수 있다. DRAM들(1500a, 1500b)은 기입 커맨드에 의한 기입 동작 후에 수신되는 독출 커맨드에 대한 동작 조건으로 제1 타이밍 파라미터(예, tWTR(Write-To-Read delay))를 설정하고, 내부 프로세싱 모드일 때의 제1 타이밍 파라미터를 노멀 모드일 때 보다 짧게 설정할 수 있다. DRAM들(1500a, 1500b)은 독출 커맨드에 의한 독출 동작 후에 수신되는 기입 커맨드에 대한 동작 조건으로 제2 타이밍 파라미터(예, tRTW(Read-To-Write delay))를 설정하고, 내부 프로세싱 모드일 때의 제2 타이밍 파라미터를 노멀 모드일 때 보다 짧게 설정할 수 있다.
본 발명은 도면에 도시된 제한된 수의 실시예들과 관련하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변경들 및 변형들, 그리고 균등한 다른 실시예들이 가능하다는 점을 인식할 것이다. 따라서, 첨부된 청구항들은 본 발명의 진정한 사상 및 범위 내에 속하는 바와 같은 모든 그러한 변경들 및 변형들을 커버하는 것을 의도한다.

Claims (20)

  1. 메모리 장치에 있어서,
    복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    프로세싱 동작을 수행하는 메모리-내-처리(Processing-In-Memory: PIM) 회로; 및
    메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 노멀 모드의 기입 커맨드에 응답하여 상기 메모리 장치가 상기 메모리 컨트롤러로부터 제공되는 기입 데이터에 대한 기입 동작을 수행하고, 상기 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 내부 프로세싱 모드의 기입 커맨드에 응답하여 상기 메모리 장치가 상기 프로세싱 동작에 따라 생성되는 연산 결과에 대한 기입 동작을 수행하도록 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드의 기입 동작 수행 시간이 상기 노멀 모드의 기입 동작 수행 시간보다 작아지도록 상기 메모리 장치를 제어하도록 구성되는 메모리 장치.
  2. 제1항에 있어서,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드에서 상기 노멀 모드의 상기 기입 동작과 관련되는 기입 데이터 스트로브 신호가 토글되지 않게 비-설정 하도록 구성되는 메모리 장치.
  3. 제1항에 있어서,
    상기 제어 로직 회로는 상기 노멀 모드에서 상기 기입 레이턴시와 관련되는 기입 데이터를 상기 메모리 장치로부터 수신하고, 상기 내부 프로세싱 모드에서 상기 기입 데이터를 상기 메모리 장치로부터 수신하지 않도록 구성되는 메모리 장치.
  4. 제1항에 있어서,
    상기 제어 로직 회로는 상기 노멀 모드에서 상기 기입 데이터를 기입 데이터 스트로브 신호와 함께 상기 메모리 장치로부터 수신하고, 상기 내부 프로세싱 모드에서 상기 기입 데이터 스트로브 신호를 상기 메모리 장치로부터 수신하지 않도록 구성되는 메모리 장치.
  5. 제1항에 있어서,
    상기 제어 로직 회로는 상기 기입 커맨드에 의한 상기 기입 동작 후에 수신되는 독출 커맨드에 대한 동작 조건으로 제1 타이밍 파라미터를 설정하고,
    상기 내부 프로세싱 모드일 때의 상기 제1 타이밍 파라미터를 상기 노멀 모드일 때 보다 짧게 설정하는 메모리 장치.
  6. 제5항에 있어서,
    상기 제1 타이밍 파라미터는 상기 메모리 장치의 규격에 정해진 tWTR(Write-To-Read delay) 파라미터인 메모리 장치.
  7. 제1항에 있어서, 상기 제어 로직 회로는,
    상기 기입 커맨드가 상기 내부 프로세싱 모드를 지정하는 커맨드인지를 판단하여 PIM 커맨드 신호를 생성하는 PIM 커맨드 판단부;
    상기 기입 커맨드와 함께 수신되는 칼럼 어드레스에 기초하여 버스트 어드레스를 생성하고 저장하는 기입 레지스터; 및
    상기 PIM 커맨드 신호가 활성일 때 상기 칼럼 어드레스 그대로 내부 칼럼 어드레스로 전달하고, 상기 PIM 커맨드 신호가 비활성일 때 상기 기입 레지스터에 저장된 상기 버스트 어드레스를 상기 내부 칼럼 어드레스로 전달하도록 구성되는 제1 선택부를 포함하고, 상기 내부 칼럼 어드레스에 기초하여 상기 기입 동작이 수행되는 메모리 장치.
  8. 제7항에 있어서, 상기 제어 로직 회로는,
    상기 PIM 커맨드 신호가 활성일 때 상기 기입 레지스터를 디세이블시키고, 상기 PIM 커맨드 신호가 비활성일 때 상기 기입 커맨드를 상기 기입 레지스터로 제공하여 상기 기입 레지스터를 인에이블시키도록 구성되는 제2 선택부를 더 포함하는 메모리 장치.
  9. 제7항에 있어서, 상기 제어 로직 회로는,
    상기 PIM 커맨드 신호가 활성일 때 상기 메모리 장치 외부로부터 수신되는 기입 데이터 스트로브 신호를 내부 기입 신호로 전달하고, 상기 PIM 커맨드 신호가 비활성일 때 상기 기입 커맨드를 상기 내부 기입 신호로 전달하도록 구성되는 제3 선택부를 더 포함하고, 상기 내부 기입 신호에 기초하여 상기 기입 동작이 수행되는 메모리 장치.
  10. 제9항에 있어서,
    상기 기입 레지스터는 상기 기입 데이터 스트로브 신호에 응답하여 상기 버스트 어드레스를 상기 제1 선택부로 제공하는 메모리 장치.
  11. 메모리 장치에 있어서,
    복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    프로세싱 동작을 수행하는 메모리-내-처리(Processing-In-Memory: PIM) 회로;
    메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 노멀 모드의 독출 커맨드에 응답하여 상기 메모리 장치가 상기 메모리 셀 어레이로부터 독출되는 독출 데이터 및 토글하는 독출 데이터 스트로브 신호를 상기 메모리 컨트롤러로 제공하고, 상기 메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 내부 프로세싱 모드의 독출 커맨드에 응답하여 상기 독출 데이터를 상기 PIM 회로로 제공하도록 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드의 상기 독출 커맨드에 응답하여 상기 독출 데이터 및 상기 독출 데이터 스트로브 신호가 상기 메모리 컨트롤러에 제공되지 않도록 상기 메모리 장치를 제어하도록 구성되는 메모리 장치.
  12. 제11항에 있어서,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드에서 상기 독출 데이터 스트로브 신호가 토글되지 않게 비-설정하도록 구성되는 메모리 장치.
  13. 제11항에 있어서,
    상기 제어 로직 회로는 상기 노멀 모드에서 상기 독출 레이턴시와 관련되는 상기 독출 데이터를 상기 메모리 장치 외부로 출력하고, 상기 내부 프로세싱 모드에서 상기 독출 데이터를 상기 메모리 장치 외부로 출력하지 않도록 구성되는 메모리 장치.
  14. 제13항에 있어서,
    상기 제어 로직 회로는 상기 노멀 모드에서 상기 독출 데이터를 독출 데이터 스트로브 신호와 함께 상기 메모리 장치 외부로 출력하고, 상기 내부 프로세싱 모드에서 상기 독출 데이터 스트로브 신호를 상기 메모리 장치 외부로 출력하지 않도록 구성되는 메모리 장치.
  15. 제11항에 있어서,
    상기 제어 로직 회로는 상기 독출 커맨드에 의한 상기 독출 동작 후에 수신되는 기입 커맨드에 대한 동작 조건으로 제2 타이밍 파라미터를 설정하고,
    상기 내부 프로세싱 모드일 때의 제2 타이밍 파라미터를 상기 노멀 모드일 때 보다 짧게 설정하는 메모리 장치.
  16. 제15항에 있어서,
    상기 제2 타이밍 파라미터는 상기 메모리 장치의 규격에 정해진 tRTW(Read-To-Write delay) 파라미터인 메모리 장치.
  17. 제11항에 있어서, 상기 제어 로직 회로는,
    상기 독출 커맨드가 상기 내부 프로세싱 모드를 지정하는 커맨드인지를 판단하여 PIM 커맨드 신호를 생성하는 PIM 커맨드 판단부;
    상기 독출 커맨드와 함께 수신되는 칼럼 어드레스에 기초하여 버스트 어드레스를 생성하여 저장한 후, 독출 유효 신호를 출력하는 독출 레지스터; 및
    상기 PIM 커맨드 신호가 활성일 때 상기 독출 데이터가 상기 메모리 장치 외부로 출력되는 경로를 차단하고, 상기 PIM 커맨드 신호가 비활성일 때 상기 독출 유효 신호를 내부 독출 신호로 전달하도록 구성되는 선택부를 포함하고, 상기 내부 독출 신호에 기초하여 상기 독출 동작이 수행되는 메모리 장치.
  18. 메모리 장치에 있어서,
    적어도 하나의 로직 다이;
    상기 적어도 하나의 로직 다이 위에 적층되는 복수의 메모리 다이들; 및
    상기 적어도 하나의 로직 다이 및 상기 복수의 메모리 다이들을 전기적으로 연결하는 버스들을 구성하는 스루 실리콘 비아(TSV)들을 포함하고,
    상기 복수의 메모리 다이들 각각은,
    복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    프로세싱 동작을 수행하는 메모리-내-처리(Processing-In-Memory: PIM) 회로; 및
    메모리 컨트롤러로부터 상기 메모리 장치로 수신되는 노멀 모드의 기입 커맨드에 응답하여 상기 복수의 메모리 다이들 각각이 상기 메모리 컨트롤러로부터 제공되는 기입 데이터에 대한 기입 동작을 수행하고, 상기 메모리 컨트롤러로부터 상기 복수의 메모리 다이들 각각으로 수신되는 내부 프로세싱 모드의 기입 커맨드에 응답하여 상기 복수의 메모리 다이들 각각이 상기 프로세싱 동작에 따라 생성되는 연산 결과에 대한 기입 동작을 수행하도록 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드의 기입 동작 수행 시간이 상기 노멀 모드의 기입 동작 수행 시간보다 작아지도록 상기 메모리 장치를 제어하도록 구성되는 메모리 장치.
  19. 제18항에 있어서,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드에서 상기 노멀 모드의 상기 기입 동작과 관련되는 기입 데이터 스트로브 신호가 토글되지 않게 비-설정 하도록 구성되는 메모리 장치.
  20. 제18항에 있어서,
    상기 제어 로직 회로는 상기 내부 프로세싱 모드의 독출 커맨드에 응답하여 상기 독출 데이터를 상기 PIM 회로로 제공하고 상기 독출 데이터가 상기 메모리 컨트롤러에 제공하지 않도록 구상돠고 독출 데이터 스트로브 신호가 토글되지 않게 비-설정하도록 구성되는 메모리 장치.
KR1020210126723A 2021-09-24 2021-09-24 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법 KR20230043619A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210126723A KR20230043619A (ko) 2021-09-24 2021-09-24 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법
US17/879,523 US20230094148A1 (en) 2021-09-24 2022-08-02 Memory device for reducing timing parameters and power consumption for internal processing operation and method of implementing the same
CN202210920554.8A CN115862704A (zh) 2021-09-24 2022-08-02 存储器装置
EP22196315.0A EP4156186A3 (en) 2021-09-24 2022-09-19 Memory device for reducing timing parameters and power consumption for internal processing operation and method of implementing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210126723A KR20230043619A (ko) 2021-09-24 2021-09-24 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법

Publications (1)

Publication Number Publication Date
KR20230043619A true KR20230043619A (ko) 2023-03-31

Family

ID=83598358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210126723A KR20230043619A (ko) 2021-09-24 2021-09-24 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법

Country Status (4)

Country Link
US (1) US20230094148A1 (ko)
EP (1) EP4156186A3 (ko)
KR (1) KR20230043619A (ko)
CN (1) CN115862704A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI792754B (zh) * 2021-12-09 2023-02-11 力晶積成電子製造股份有限公司 具有高資料頻寬的記憶體裝置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
DE102020105628A1 (de) * 2019-03-11 2020-09-17 Samsung Electronics Co., Ltd. Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung

Also Published As

Publication number Publication date
EP4156186A2 (en) 2023-03-29
US20230094148A1 (en) 2023-03-30
CN115862704A (zh) 2023-03-28
EP4156186A3 (en) 2023-06-14

Similar Documents

Publication Publication Date Title
US11194579B2 (en) Memory device supporting skip calculation mode and method of operating the same
US11416178B2 (en) Memory device performing parallel calculation processing, operating method thereof, and operating method of memory controller controlling the memory device
US11474950B2 (en) Memory controller including plurality of address mapping tables, system on chip, and electronic device
US11961548B2 (en) Memory device and method for controlling row hammer
US20240086345A1 (en) Memory device including processing circuit, and electronic device including system on chip and memory device
US20230178140A1 (en) Memory devices and methods for controlling row hammer
EP4156186A2 (en) Memory device for reducing timing parameters and power consumption for internal processing operation and method of implementing the same
US20240103755A1 (en) Data processing system and method for accessing heterogeneous memory system including processing unit
KR20230021496A (ko) 로우 해머 제어 방법 및 메모리 장치
TWI757300B (zh) 用於執行內部程序之記憶體裝置及其操作方法
EP4174672A1 (en) Backward compatible processing-in-memory (pim) protocol
US20190096459A1 (en) Memory devices for performing multiple write operations and operating methods thereof
KR20230060434A (ko) 구버전과 호환되는 PIM(Processing-In-Memory) 프로토콜
US20240071446A1 (en) Apparatuses and methods for providing command having on-the-fly (otf) latency to memory
EP4095701A9 (en) Memory device and method of controlling row hammer
US20230236732A1 (en) Memory device
US20240096395A1 (en) Device, operating method, memory device, and cxl memory expansion device
US20240096391A1 (en) Memory devices and methods thereof for managing row hammer events therein
EP4376006A1 (en) Memory device, operating method of memory device, and memory system
KR20240030923A (ko) 실행 시점 가변 커맨드를 메모리로 제공하는 장치 및 방법
TW202414406A (zh) 記憶體裝置、操作記憶體裝置的方法以及電子裝置
KR20230086543A (ko) 로우 해머 제어 방법 및 메모리 장치
KR20230086560A (ko) 다수의 채널을 갖는 메모리 시스템의 테스트