KR20170102418A - 재구성 가능한 계산 로직을 포함하는 3차원-적층 메모리 - Google Patents

재구성 가능한 계산 로직을 포함하는 3차원-적층 메모리 Download PDF

Info

Publication number
KR20170102418A
KR20170102418A KR1020170010555A KR20170010555A KR20170102418A KR 20170102418 A KR20170102418 A KR 20170102418A KR 1020170010555 A KR1020170010555 A KR 1020170010555A KR 20170010555 A KR20170010555 A KR 20170010555A KR 20170102418 A KR20170102418 A KR 20170102418A
Authority
KR
South Korea
Prior art keywords
memory
instructions
data
base die
interface
Prior art date
Application number
KR1020170010555A
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 삼성전자주식회사
Publication of KR20170102418A publication Critical patent/KR20170102418A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • 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
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/785Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) with decentralized control, e.g. smart memories
    • 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
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0625Power saving in storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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
    • 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

Abstract

본 발명에 따른 3차원-적층 메모리 장치는 데이터 흐름을 지시하는 복수의 스위치들 및 데이터를 계산하는 복수의 산술 논리 유닛들을 포함하는 베이스 다이, 상기 베이스 다이 상에 적층되는 복수의 메모리 다이들, 그리고 상기 베이스 다이를 제어하는 신호들을 전송하는 인터페이스를 포함한다.

Description

재구성 가능한 계산 로직을 포함하는 3차원-적층 메모리{3D-STACKED MEMORY WITH RECONFIGURABLE COMPUTE LOGIC}
본 발명은 반도체 메모리에 관한 것으로, 좀 더 상세하게는 재설정 가능한 계산 로직을 포함하는 3차원 적층 메모리에 관한 것이다.
3차원-적층(이하, 3DS) 메모리는 일반적으로 베이스 다이(base die) 상에 적층되며 실리콘 관통 전극(TSV)들을 이용하여 서로 연결되는 메모리 다이(memory die)들의 다수의 층들을 포함하는 고밀도 및 고성능 메모리 구조이다. 베이스 다이는 일반적으로 메모리 다이들에 데이터를 읽고 쓰기 위한 지원 로직을 수행하는 것으로 제한된다. 3DS 메모리의 예시들은 하이브리드 메모리 큐브(hybrid memory cube; 이하, HMC) 및 고 대역폭 메모리(high bandwidth memory; 이하, HBM)를 포함한다.
일반적으로, 프로세서 및 메모리는 분리되고, 따라서, 그들 사이에 데이터 전송은 메모리 액세스 레이턴시(memory access latency) 및 높은 전력 소모를 초래한다. 최근, 메모리에 더 가까운 곳에서 처리 능력을 구현하는 것이 유행이고, 그래서 프로세서의 메모리 용량은 증가할 수 있고, 그리고 메모리 액세스 레이턴시는 감소될 수 있다.
하지만, 이러한 솔루션(solution)들은 주로 일반적인 목적의 프로세서들(예를 들어, CPU들 또는 GPU들) 또는 주문형 프로세서(application specific processor)들(예를 들어, ASIC들)에 초점을 맞추고 있다. 일반적인 프로세서들은 융통성을 제공하는 반면에, 주문형 프로세서들에 비하면 그들은 종종 더 복잡하고, 비싸고, 그리고 높은 전력을 소모한다. 한편, 메모리와 패키징 된 주문형 프로세서들은 덜 융통적이고, 종종 애플리케이션에 특정된 구성들을 초래한다. 더욱이, 일부 솔루션들은 효율성 및 융통성을 가진 데이터 감소/가속 로직에 초점을 맞추고 있지만, 그들은 데이터를 계산하지 않는다.
이 배경 기술 분야에서 개시된 이상의 정보는 본 발명의 배경에 대한 이해를 높이기 위한 것이므로, 종래 기술을 구성하지 않는 정보를 포함할 수 있다.
본 발명의 목적은 재구성 가능한 계산 로직을 포함하는 3차원-적층 메모리를 제공하는 데 있다.
본 발명의 하나 이상의 예시적인 실시 예들은 데이터를 계산하도록 재구성될 수 있는 베이스 다이를 포함하는 3차원-적층 메모리 장치를 설명한다.
본 발명의 하나 이상의 예시적인 실시 예들은 데이터를 계산하도록 재구성될 수 있는 베이스 다이를 포함하는 3차원-적층 메모리 장치를 위한 인터페이스를 설명한다.
본 발명의 하나 이상의 예시적인 실시 예들에 따르면, 3차원-적층 메모리 장치는 데이터 흐름을 지시하도록 구성되는 복수의 스위치들 및 데이터를 계산하도록 구성되는 복수의 산술 논리 유닛들을 포함하는 베이스 다이, 상기 베이스 다이 상에 적층되는 복수의 메모리 다이들, 그리고 상기 베이스 다이를 제어하는 신호들을 전송하도록 구성되는 인터페이스를 포함한다.
실시 예에서, 상기 베이스 다이는 프로그램 메모리를 더 포함하며, 상기 프로그램 메모리는 상기 인터페이스를 통해 외부 호스트에 의해 제어되도록, 상기 스위치들을 구성하도록, 그리고 상기 산술 논리 유닛들의 동작들을 제어하도록 구성된다.
실시 예에서, 상기 인터페이스는, 상기 호스트로부터 상기 베이스 다이로 요청 패킷을 전송하도록 구성되는 요청 링크, 그리고 상기 베이스 다이로부터 상기 호스트로 응답 패킷을 전송하도록 구성되는 응답 링크를 포함한다.
실시 예에서, 상기 요청 패킷은 상기 스위치들 및 상기 데이터를 계산하는 상기 산술 논리 유닛들을 지시하는 구성 명령어들 및/또는 구성 명령들을 포함한다.
실시 예에서, 상기 요청 패킷은 상기 베이스 다이로 상기 구성 명령어들 및/또는 상기 구성 명령들을 전송하기 위해 사용되는 리저브드 비트(reserved bit)들을 포함한다.
실시 예에서, 상기 요청 패킷은 헤더 및 테일을 포함하며, 상기 테일은 상기 베이스 다이로 상기 구성 명령어들 및/또는 상기 구성 명령들을 전송하기 위해 사용되는 비트들을 포함한다.
실시 예에서, 상기 인터페이스는, 호스트로부터 상기 베이스 다이로 명령들을 전송하도록 구성되는 제어 버스, 그리고 상기 호스트 및 상기 베이스 다이 사이에서 상기 데이터를 전송하도록 구성되는 데이터 버스를 포함한다.
실시 예에서, 상기 명령들은 상기 데이터를 계산하는 PIM(Processor In Memory) 모드에서 동작하도록 상기 3차원-적층 메모리 장치를 구성하는 모드 레지스터 세트 명령을 포함한다.
실시 예에서, 상기 명령들은 메모리 명령을 포함하고, 그리고 상기 베이스 다이는, 상기 PIM 모드에서 동작하는 경우, 상기 데이터를 계산하는 상기 메모리 명령을 번역하도록 구성된다.
실시 예에서, 상기 베이스 다이는, 노말 모드에서 동작하는 경우, 상기 메모리 명령을 수행하도록 구성된다.
실시 예에서, 상기 메모리 명령은 DRAM 명령을 포함한다.
본 발명의 하나 이상의 예시적인 실시 예들에 따르면, 복수의 스위치들 및 복수의 산술 논리 유닛들을 포함하는 베이스 다이, 상기 베이스 다이 상에 적층되는 복수의 메모리 다이들, 그리고 상기 베이스 다이를 제어하도록 구성되는 인터페이스를 포함하는 3차원-적층 메모리 장치의 동작 방법은, 구성 명령어들에 따라 데이터 흐름을 지시하는 스위치들을 구성하는 단계, 로직 명령들에 따라 데이터를 계산하는 상기 산술 논리 유닛들의 동작들을 제어하는 단계, 그리고 상기 메모리 다이들에 상기 계산된 데이터를 저장하는 단계를 포함한다.
실시 예에서, 상기 구성 명령어들 및 상기 로직 명령들은 요청 패킷에 내장되며, 상기 인터페이스의 요청 링크를 통해 호스트로부터 상기 요청 패킷을 수신하는 단계, 그리고 상기 구성 명령어들 및 상기 로직 명령들을 확인하기 위해 상기 요청 패킷을 디코딩하는 단계를 더 포함한다.
실시 예에서, 상기 인터페이스의 요청 링크를 통해 상기 호스트로 응답 패킷을 전송하는 단계를 더 포함한다.
실시 예에서, 상기 요청 패킷은 상기 구성 명령어들 및/또는 상기 구성 명령들을 위한 리저브드 비트들을 포함한다.
실시 예에서, 상기 요청 패킷은 헤더 및 테일을 포함하며, 상기 테일은 상기 베이스 다이로 상기 구성 명령어들 및/또는 상기 구성 명령들을 위한 비트들을 포함한다.
실시 예에서, 상기 인터페이스의 제어 버스를 통해 호스트로부터 모드 레지스터 세트 명령을 수신하는 단계, 그리고 상기 모드 레지스터 세트 명령의 수신에 응답하여, 상기 데이터를 계산하는 PIM 모드를 구성하는 단계를 더 포함한다.
실시 예에서, 상기 제어 버스를 통해 상기 호스트로부터 제 1 메모리 명령을 수신하는 단계, 상기 제 1 메모리 명령을 상기 로직 명령들로 번역하는 단계, 그리고 상기 로직 명령들에 따라 상기 데이터를 계산하는 단계를 더 포함한다.
실시 예에서, 노말 모드를 구성하는 단계, 상기 제어 버스를 통해 상기 호스트로부터 제 2 메모리 명령을 수신하는 단계, 그리고 상기 제 2 메모리 명령에 따라 메모리 기능을 수행하는 단계를 더 포함한다.
본 발명의 하나 이상의 예시적인 실시 예들에 따르면, 메모리 내 프로세서를 포함하는 메모리 장치의 인터페이스는, 외부 호스트로부터 상기 메모리 장치로 명령들을 전송하도록 구성되는 제어 버스, 그리고 상기 메모리 장치 및 상기 호스트 사이에서 데이터를 전송하도록 구성되는 데이터 버스를 포함하되, 상기 인터페이스는 상기 데이터를 계산하는 PIM 모드에서 동작하도록 상기 메모리 장치를 설정하는, 그리고 메모리 기능들을 수행하는 노말 모드에서 동작하도록 상기 메모리 장치를 설정하는 상기 명령들을 전송하도록 구성되고, 그리고 상기 메모리 장치는 상기 PIM 모드인 경우 로직 명령들에 따라 상기 데이터를 계산하도록 메모리 명령들을 상기 로직 명령들로 번역하도록, 그리고 상기 노말 모드인 경우 상기 메모리 명령들에 따라 상기 메모리 기능들을 수행하도록 구성된다.
본 발명은 베이스 다이 상에 재구성 가능한 계산 로직을 포함하여 노말 모드 및 PIM 모드로 동작 가능한 3차원-적층 메모리를 제공할 수 있다.
본 발명의 실시 예들의 상기된 및 다른 측면, 특징 및 장점은 첨부된 도면을 참조한 상세한 설명에 의해 더욱 명백해질 것이다.
도 1은 본 발명의 실시 예에 따른 3차원-적층 메모리 장치의 단면도를 보여주는 도면이다.
도 2는 본 발명의 예시적인 실시 예에 따른 도 1에 도시된 3DS 메모리 장치의 베이스 다이를 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 도 2에 도시된 하나의 스위치를 보여주는 도면이다.
도 4a 내지 도 4c는 본 발명의 실시 예에 따른 3DS 메모리 장치의 4X4 로직 어레이에서 예시적인 로직 연산을 보여주는 도면이다.
도 5a 내지 도 5f는 본 발명의 실시 예에 따른 응답 및 요청 링크들을 포함하는 인터페이스를 위한 예시적인 패킷(packet)들을 보여준다.
도 6은 본 발명의 실시 예에 따른 응답 및 요청 링크들을 포함하는 인터페이스의 동작들을 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 제어 및 데이터 버스들을 포함하는 인터페이스의 동작들을 보여주는 순서도이다.
이하에서, 예시적인 실시 예들은 유사한 참조 번호들은 유사한 구성 요소들을 지칭하는 첨부 도면을 참조하여 상세히 설명될 것이다. 하지만, 본 발명은 다양한 다른 형태들로 구현될 수 있고, 본 명세서에서 단지 예시된 실시 예들에 한정되는 것은 아니다. 오히려, 이러한 실시 예들은 이 개시가 철저하고 완전하게 되기 위한 예로서 제공되며, 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 특징 및 기능을 완전하게 전달할 것이다. 따라서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명의 특징 및 기능을 완벽하게 이해하기 위해 필요하지 않은 프로세스, 요소들, 및 기술들은 설명되지 않을 수 있다. 특별히 언급하지 않는 한, 유사한 참조 번호들은 첨부된 도면들 및 쓰인 설명에서 유사한 구성요소들을 나타내고, 따라서 그것에 대한 설명은 반복되지 않을 것이다.
도면에서, 구성 요소들, 층들 및 영역들의 상대적인 크기는 명확성을 위해 과장 및/또는 단순화될 수 있다. 하나의 요소 또는 도면에서 도시된 다른 구성 요소(들) 또는 특징(들)과의 특징적인 관계를 설명하기 위한 설명을 용이하게 하기 위해 "아래의", "아래", "낮은", "특정 부분 아래", "위에", "상부"와 같은 공간적이고 상대적인 용어들이 여기에서 사용될 수 있다. 공간적이고 상대적인 용어들은 도면에서 묘사된 방향에 더해 사용 또는 동작에서 장치의 다른 방향들을 포함하도록 의도된 것이 이해될 것이다. 예를 들면, 만약 도면의 장치가 뒤집히면, 다른 구성 요소들 또는 특징들의 "아래" 또는 "아래의" 또는 "특정 부분 아래"로 설명된 구성요소들은 다른 구성 요소들 또는 특징들의 "위로" 맞춰지게 된다. 따라서, "아래의" 또는 "특정 부분 아래"의 예시적인 용어들은 위 또는 아래 방향 모두를 포함할 수 있다. 장치는 다르게 맞춰질 수 있으며(예를 들면, 90도 도는 다른 방향으로 회전됨) 그리고 공간적으로 상대적인 기술어들은 그에 따라 해석되어야 한다.
비록 여기에서 "제 1", "제 2", "제 3" 등의 용어들은 다양한 요소들, 성분들, 영역들, 층들 및/또는 섹션들을 설명하기 위해 사용되지만, 이러한 요소들, 성분들, 영역들, 층들 및/또는 섹션들은 이러한 용어들로 인해 제한되지 않는 것으로 이해될 것이다. 이러한 용어들은 다른 요소, 성분, 영역, 층, 또는 섹션으로부터 하나의 요소, 구성, 영역, 층 또는 섹션을 구별하기 위해 사용된다. 따라서, 후술하는 제 1 구성 요소, 성분, 영역, 층, 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고, 제 2 구성 요소, 성분, 영역, 층, 또는 섹션을 지칭 할 수 있다.
요소 또는 층이 다른 요소 또는 층"에", "에 연결된", "에 결합된" 것으로 언급되는 때, 그것은 다른 요소 또는 층"에 직접적으로", "에 직접적으로 연결된", "에 직접적으로 결합된"일 수 있거나, 하나 또는 그 이상의 사이의 요소들 또는 층들이 존재할 수 있다. 게다가, 요소 또는 층이 두 개의 요소들 또는 층들 "사이"로 언급되는 때, 그것은 단지 요소 또는 층이 두 요소들 또는 층들 사이에 있을 수 있거나, 또는 하나 또는 그 이상의 사이의 요소들 또는 층들이 또한 존재할 수 있는 것으로 또한 이해될 것이다.
본 명세서에서 사용된 용어들은 단지 특정한 실시 예들을 설명하기 위한 것이고, 본 발명을 제한하려는 것으로 의도되지 않는다. 본 명세서에서 사용된 바와 같이, 문맥상 명백하게 다르게 뜻하지 않는 한, 단수 형태 "하나"는 복수의 형태도 포함하는 것으로 의도된다. "구성되는", "구성되고 있는", "포함하는", 그리고 "포함하고 있는" 용어들이 본 명세서에서 사용될 때, 이러한 용어들은 정해진 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 성분들이 존재를 명시하나, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 성분들, 및/또는 그것들의 그룹들의 추가 또는 존재를 불가능하게 하지 않는다. 본 명세서에서 사용된 바와 같이, "및/또는" 용어는 하나 또는 그 이상의 열거된 항목들과 연관된 임의의 그리고 모든 조합들 포함한다. "적어도 하나"와 같은 표현들은 요소들 전체 리스트를 수정하고 그리고 리스트의 개별 요소들을 수정하지 않는다.
본 명세서에서 사용된 바와 같이, "대체로", "약" 용어 그리고 이와 유사한 용어들은 근사치의 용어들로서 사용되고, 정도의 용어들로서 사용되지 않고. 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 식별되는 측정된 또는 계산된 값들의 고유한 변동을 고려하기 위한 것이다. 또한, 본 발명의 실시 예들을 기술할 때 "할 수 있다"의 사용은 "본 발명의 하나 이상의 실시 예들"을 의미한다. 본 명세서에서 사용된 바와 같이, "사용", "사용하는", 그리고 "사용되는" 용어들은 "이용", "이용하는", 그리고 "이용되는" 용어들의 동의어로 각각 간주 될 수 있다. 또한, "예시" 용어는 예 또는 그림을 의미한다.
다르게 정의되지 않는 한, 본 명세서에서 사용된 모든 용어들(기술적 그리고 과학적 용어들을 포함하는)은 본 발명의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 이러한 용어들이 본 명세서 및/또는 관련 기술의 문맥에서 그들의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의되지 않는 한 이상화되거나 지나지게 형식적인 감각으로 해석되지 않아야 하는 것은 또한 이해될 것이다.
본 발명의 하나 이상의 실시 예들에 따르면, 재구성 가능한 계산 로직(reconfigurable compute logic)은 3DS 메모리 장치의 베이스 다이 상에 구현될 수 있다. 일반적으로, 3DS 메모리 장치는 슬레이브 장치(slave device)이고, 그래서 계산은 프로세서(예를 들어, CPU 또는 GPU) 쪽에서 수행되며, 그리고 데이터는 프로세서와 메모리 사이에서 왔다 갔다 하면서 전송된다. 베이스 다이는 일반적으로 호스트(예를 들어, CPU 또는 메모리 컨트롤러)와 메모리 다이들 사이의 중간체(intermediate)이다. 베이스 다이의 목적은, 호스트에 의해 전송된 명령들이 메모리에 의해 이해될 수 있도록, 필요한 인터페이스 및 로직을 제공하는 것이다. HMC의 경우에, 베이스 다이는, 호스트로 전송되는 정보가 이해될 수 있도록, 메모리 다이로부터의 응답을 또한 인코딩(encoding)할 수 있다.
하지만, 3DS 메모리는 일반적으로 베이스 다이 및 메모리 다이들 사이에서 고 대역폭 및 저 레이턴시를 가지고, 베이스 다이 상의 이용 가능한 반도체(예를 들어, 실리콘) 영역은 데이터를 계산하는 베이스 다이 상에 지능형 반도체(processor in memory; 이하, PIM)를 구현하기에 적합할 수 있다. 본 발명의 하나 이상의 실시 예들에 따라 베이스 다이 상에 PIM을 구현하는 것에 의해, 계산 로직 및 메모리는 긴밀히 결합되므로, 따라서, 데이터 전송 시간 및/또는 에너지 소모는 감소될 수 있다.
도 1은 본 발명의 실시 예에 따른 3차원-적층 메모리 장치의 단면도를 보여주는 도면이다.
도 1을 참조하면, 3DS 메모리 장치(100)는 베이스 다이(102), 베이스 다이(102) 상에 적층된 복수의 메모리 다이들(104), 실리콘 관통 비아(through silicon via, TSV)들(106), 및 3DS 메모리 장치(100) 및 호스트(110)(예를 들어, CPU 또는 GPU와 같은 외부의 호스트 프로세서 또는 컨트롤러) 사이의 인터페이스(108)를 포함한다.
메모리 다이들(104)은, 예를 들면, 동적 랜덤 액세스 메모리(DRAM)로 구현될 수 있다. 하지만, 본 발명은 이것에 제한되지 않으며, 메모리 다이들(104)은 3차원-적층 구조를 구현할 수 있는 어떠한 적합한 메모리로 구현될 수 있다. TSV들(106)은 메모리 다이들(104) 및 베이스 다이(102)를 연결(예를 들어, 내부연결)하고, 메모리 다이들(104) 및 베이스 다이(102) 사이에서 데이터를 전송한다.
본 발명의 일부 실시 예들에 따르면, 베이스 다이(102)는 복수의 스위치들 및 복수의 산술 논리 유닛(arithmetic logic unit; 이하, ALU)들을 포함하는 로직 어레이(logic array)를 포함하고, 이하에서 자세히 설명된다. 도 2를 참조하여 더 자세히 설명되는 것과 같이, 로직 어레이는 데이터를 계산할 수 있고, 그리고 인터페이스(108)를 통해 호스트(110)로부터 수신된 PIM 명령어(instruction)들을 통하여 실시간으로 재구성될 수 있다. 즉, 호스트(110)는 인터페이스(108)를 통해 베이스 다이(102)와 통신(예를 들어, 직접 통신)할 수 있고, 베이스 다이(102)는 계산 로직을 수행하기 위해 메모리 다이들(104)과 통신(예를 들어, 직접 통신)할 수 있다.
도 2는 본 발명의 예시적인 실시 예에 따른 도 1에 도시된 3DS 메모리 장치(100)의 베이스 다이(102)를 더 자세히 보여주는 도면이다.
도 2를 참조하면, 베이스 다이(102)는 프로그램 메모리(202) 및 로직 어레이(204)를 포함한다. 로직 어레이(204)는 복수의 스위치들(206) 및 복수의 ALU들(208)을 포함한다. 프로그램 메모리(202)는 인터페이스(108)를 통해 호스트(110)로부터 제어 명령어들을 수신하고, 메모리 다이들(104)에 대한 액세스를 제어하고, 스위치들(206)을 구성하고, 그리고 ALU들(208)의 동작을 지시한다. 스위치들(206)은 데이터 경로(data path)들을 생성하며 데이터 흐름(data flow)을 지시하고, 그리고 ALU들(208)은 데이터를 계산한다.
본 발명의 실시 예에 따르면, 프로그램 메모리(202)는, 예를 들면, 정적 랜덤 액세스 메모리(SRAM)로 구현될 수 있다. 하지만, 본 발명은 이것에 제한되지 않으며, 프로그램 메모리(202)는 베이스 다이(102) 상의 어떠한 적합한 프로그램 메모리로 구현될 수 있다.
더 자세하게는, 프로그램 메모리(202)는 호스트(110)로부터 제어 명령어들을 수신한다. 제어 명령어들은 스위치들(206)을 구성하고, 메모리 다이들(104)을 액세스하고, 그리고 ALU들(208)을 동작하기 위한 명령(command)들을 포함할 수 있다. 메모리 다이들(104)을 액세스하고 ALU들(208)을 동작하기 위한 명령들은 CPU 명령어들(예를 들어, LOAD, STORE, ADD, MULTIPLY, 기타 등등)과 동일 또는 유사할 수 있다.
프로그램 메모리(202)는 구성 데이터 및 명령어들을 저장하고, 그리고 어떤 주어진 시간에서 동작들을 효율적으로 파이프라인(pipeline)할 수 있도록 다수의 구성 데이터 및 명령어들을 저장할 수 있다. 하지만, 본 발명은 이것에 제한되지 않는다. 예를 들면, 구성 데이터 및/또는 명령어들은 보조 스토리지로서 메모리 다이들에 저장될 수 있다(예를 들어, 프로그램 메모리(202)가 가득 차거나 실질적으로 가득 찬 경우).
예를 들면, 시스템 초기화 동안, 호스트(110)는 프로그램 메모리(202)의 크기, 그리고 구성 데이터 및 명령어들을 저장하기 위해 사용될 수 있는 메모리 다이들(104)의 용량(예를 들어, 최대 용량)을 결정하기 위해 메모리 장치로부터 읽을 수 있다. 구성 데이터를 저장하기 위한 용량은 메모리 장치에 의해 결정되기 때문에, 메모리 다이들(104)이 구성 데이터 및 명령어들을 저장하기 위해 사용될 수 없는 경우가 있을 수 있다. 하지만, 메모리 다이들(104)이 구성 데이터 및 명령어들을 저장하는 경우(예를 들어, 프로그램 메모리(202)가 가득 찼기 때문에), 베이스 다이(102)는 호스트(110)로부터 메모리 다이들(104)로의 구성을 지시하는 로직을 가질 수 있고(예를 들어, 프로그램 메모리(202)를 우회하는), 그리고 메모리 다이들(104)로부터 프로그램 메모리(202)로 구성을 패치(fetch)하는 로직을 가질 수 있다.
프로그램 메모리(202)의 크기는 스위치들(206)의 수, ALU들(208)의 수, 및/또는 메모리 다이들(104)의 크기에 따라 달라질 수 있다. 또한, 제어 회로(203)(예를 들어, 컨트롤러)는 프로그램 메모리(202)를 읽기/쓰기 위해, 그리고 그것에 따른 변경들을 가하기 위해 제공될 수 있다.
프로그램 메모리(202)는 데이터 경로들을 생성하고 데이터 흐름을 지시하는 스위치들(206)을 구성하기 위해 구성 데이터를 사용할 수 있다. 프로그램 메모리(202)는 메모리 다이들(104)에 액세스하기 위해 메모리 명령어들을 사용할 수 있고, 그리고 데이터를 계산하기 위해 ALU 명령어들을 사용할 수 있다. ALU들(208)은 데이터를 계산하기 위해 하나 이상의 산술/로직 연산들(예를 들어, ADD, MULTIPLE, DIVIDE, COMPARE, SHIFT, AND, OR, XOR, 기타 등등)을 지원할 수 있다.
도 2에서 스위치들(206) 및 ALU들(208)은 일대일 관계를 가지는 것으로 도시되었지만, 본 발명은 이것에 제한되지 않는다. 예를 들면, 일부 실시 예들에서, 하나의 ALU(208)는 다수의 스위치들(206)과 연관될 수 있다. 일부 실시 예들에서, 복수의 ALU들(208)은 단일 또는 복수의 스위치들(208)과 연관될 수 있다.
도 3은 본 발명의 실시 예에 따른 도 2에 도시된 하나의 스위치를 보여주는 도면이다.
도 2 및 도 3을 참조하면, 스위치들(206) 각각은 데이터가 하나의 방향으로부터 어떤 복수의 방향들로 이동하도록 지시할 수 있다. 예를 들면, 스위치들(206) 중에서 스위치(306)는 데이터가 제 1 방향, 제 1 방향에 반대인 제 2 방향, 제 1 방향에 수직인 제 3 방향, 그리고 제 3 방향에 반대인 제 4 방향으로 이동하도록 지시할 수 있다고 가정하면, 스위치(306)는 복수의 멀티플렉서(multiplexer, MUX)들을 포함하는 4-웨이(way) 스위치로 구현될 수 있다. 스위치(306)가 4-웨이 스위치인 경우, 복수의 멀티플렉서들은 제 1 내지 제 4 멀티플렉서를 포함하고, 멀티플렉서들 각각은 하나의 방향에 대응할 수 있다. 하지만, 본 발명은 이것에 제한되지 않고, 스위치들(206)은 어떤 수의 방향들로도 데이터가 이동하도록 지시할 수 있는 어떠한 적합한 스위치들로 구현될 수 있다.
설명의 편의를 위해, 도 3에 도시된 스위치(306)는 데이터가 제 1 내지 제 4 방향으로 이동하도록 지시하는 제 1 내지 제 4 멀티플렉서(308, 310, 312, 및 314)를 포함하는 4-웨이 스위치로 구현되고, 다만 본 발명은 이것에 제한되지 않는다. 예를 들면, 스위치(306)가 데이터를 전송하는 방향들의 수는 4보다 크거나 작을 수 있고, 멀티플렉서들의 수는 방향들의 수에 대응할 수 있다.
좀 더 자세하게는, 도 3의 스위치(306)는 제 1 내지 제 4 멀티플렉서(308~314)를 포함할 수 있다. 멀티플렉서들(308~314) 각각은 데이터가 제 1 내지 제 4 방향 중 어느 하나의 방향으로 이동하도록 지시할 수 있다. 예를 들면, 제 1 멀티플렉서(308)는 제 1 출력 단자(1st_OUT)를 통해 데이터를 제 1 방향으로 지시할 수 있다. 제 2 멀티플렉서(310)는 제 2 출력 단자(2nd_OUT)를 통해 데이터를 제 2 방향으로 지시할 수 있다. 제 3 멀티플렉서(312)는 제 3 출력 단자(3rd_OUT)를 통해 데이터를 제 3 방향으로 지시할 수 있다. 제 4 멀티플렉서(314)는 제 4 출력 단자(4th_OUT)를 통해 데이터를 제 4 방향으로 지시할 수 있다.
멀티플렉서들(308~314) 각각은 제 1 방향으로부터 데이터를 수신하는 제 1 입력 단자(1st_IN), 제 2 방향으로부터 데이터를 수신하는 제 2 입력 단자(2nd_IN), 제 3 방향으로부터 데이터를 수신하는 제 3 입력 단자(3rd_IN), 및 제 4 방향으로부터 데이터를 수신하는 제 4 입력 단자(4th_IN)를 포함할 수 있다. 멀티플렉서들(308~314) 각각의 제 1 입력 단자(1st_IN)들은 서로 전기적으로 연결될 수 있다. 멀티플렉서들(308~314) 각각의 제 2 입력 단자(2nd_IN)들은 서로 전기적으로 연결될 수 있다. 멀티플렉서들(308~314) 각각의 제 3 입력 단자(3rd_IN)들은 서로 전기적으로 연결될 수 있다. 멀티플렉서들(308~314) 각각의 제 4 입력 단자(4th_IN)들은 서로 전기적으로 연결될 수 있다.
일부 실시 예들에서, 대응하는 ALU에 의해 생성된 신호들은 동일한 ALU로 되돌아올(loop back) 수 있다. 이 경우에, 신호들은 대응하는 멀티플렉서를 통해 되돌아오거나, 또는 신호들은 단지 대응하는 ALU의 내부로 되돌아올 수 있다. 신호가 대응하는 멀티플렉서를 통해 되돌아오는 경우, 멀티플렉서는 제 5 입력 단자를 더 포함할 수 있고, 제 5 입력 단자는 반대 방향들에서 오는 데이터를 수신하기 위해 멀티플렉서의 출력 단자에 전기적으로 연결될 수 있다. 하지만, 본 발명은 이것에 제한되지 않는다.
멀티플렉서들(308~314) 각각은 선택 단자(SEL)를 더 포함할 수 있다. 선택 단자(SEL)는 대응하는 방향으로 데이터를 보내도록 대응하는 멀티플렉서를 인에이블(enable)한다. 예를 들면, 스위치(306)가 데이터를 제 3 방향으로부터 제 1 방향으로 보내길 원한다고 가정하면, 선택 단자(SEL)는 제 1 멀티플렉서(308)를 인에이블하고(및/또는 제 2 내지 제 4 멀티플렉서(310~314)를 디스에이블(disable)하고), 그리고 제 1 멀티플렉서(308)는 그것의 제 3 입력 단자(3rd_IN)에서 수신된 데이터를 그것의 출력 단자(1st_OUT)를 통해 제 1 방향으로 출력한다.
도 4a 내지 도 4c는 본 발명의 실시 예에 따른 3DS 메모리 장치의 4X4 로직 어레이에서 예시적인 로직 연산을 보여주는 도면이다. 도 4a 내지 도 4c에 도시된 예시는 4개의 수들 A, B, C 및 D를 합하고, 그 합을 메모리 다이들(404)에 저장하는 것을 목표로 가정한다. 도 4a는 연산의 제 1 사이클을 보여주고, 도 4b는 연산의 제 2 사이클을 보여주고, 그리고 도 4c는 연산의 제 3 사이클을 보여준다. 도 4a 내지 도 4c는 4X4 로직 어레이의 단순화된 예시적인 연산을 보여주는 반면에, 본 발명은 이것에 제한되지 않는다.
도 4a 내지 도 4c에서, 베이스 다이(400)는 스위치들(SW11~SW44) 및 ALU들(A11~A44)의 4X4 로직 어레이를 포함하고, 그리고 스위치들(SW11~SW44) 및 ALU들(A11~A44)을 구성하고 지시하는 프로그램 메모리(402)를 포함한다.
도 4a를 참조하면, 제 1 사이클 동안, 프로그램 메모리(402)는 메모리 다이들(404)로부터 ALU(A11)로 A 및 B의 값들을 로딩하기 위해 스위치들(SW11, SW12) 및 메모리 다이들(404)을 구성하고, 그리고 메모리 다이들(404)로부터 ALU(A13)로 C 및 D의 값들을 로딩하기 위해 스위치들(SW13, SW14) 및 메모리 다이들(404)을 구성한다. 프로그램 메모리(402)는 A 및 B의 값들을 ADD 연산하도록 ALU(A11)를 지시하고, 그리고 C 및 D의 값들을 ADD 연산하도록 ALU(A13)를 지시한다.
도 4b를 참조하면, 제 2 사이클 동안, 프로그램 메모리(402)는 ALU(A11)로부터 ALU(A21)로 A와 B의 합인 결과 X를 전송하기 위해 스위치들(SW11, SW21)을 구성하고, 그리고 ALU(A13)로부터 ALU(A21)로 C와 D의 합인 결과 Y를 전송하기 위해 스위치들(SW13, SW21, SW22, SW23)을 구성한다. 프로그램 메모리(402)는 X 및 Y의 값들을 ADD 연산하도록 ALU(A21)를 지시한다.
도 4c를 참조하면, 제 3 사이클 동안, 프로그램 메모리(402)는 ALU(A21)로부터 메모리 다이들(404)로 X와 Y의 합인 결과 Z를 저장하기 위해 스위치들(SW12, SW21, SW22) 및 메모리 다이들(404)을 구성한다.
따라서, 스위치들(SW11~SW44)은 데이터 경로들을 생성하며 데이터 흐름을 지시할 수 있고, 그리고 ALU들(A11~A44)은 데이터를 계산할 수 있다.
도 1 및 도 2를 다시 참조하면, 호스트(110)는 데이터를 계산하는 베이스 다이(102)(예를 들어, 스위치들(206) 및 ALU들(208))에 대한 구성 명령어들 및 명령들을 3DS 메모리 장치(100) 및 호스트(110) 사이의 인터페이스(108)를 통해 보낼 수 있다. 일부 실시 예들에서, 인터페이스(108)는 응답 및 요청 링크들(예를 들어, 비동기 응답 및 요청 링크들)을 포함할 수 있다. 일부 실시 예들에서, 인터페이스(108)는 제어 및 데이터 버스들을 포함할 수 있다. 예를 들어, 본 발명의 하나 이상의 실시 예들에 따르면, 인터페이스(108)는 데이터를 계산하는 베이스 다이(102)(예를 들어, 베이스 다이(102) 상의 스위치들(206) 및 ALU들(208))에 대한 PIM 명령어들을 전송하기 위해 변형된 HMC 장치 또는 HBM 장치의 인터페이스를 포함할 수 있다. 하지만, 본 발명은 이것에 제한되지 않으며, 인터페이스(108)는 데이터를 계산하는 베이스 다이(102)를 구성하며 지시하는 어떠한 적합한 인터페이스를 포함할 수 있다.
도 5a 내지 도 5f는 본 발명의 실시 예에 따른 응답 및 요청 링크들을 포함하는 인터페이스를 위한 예시적인 패킷(packet)들을 보여준다. 도 5a는 데이터를 포함하지 않은 패킷을 보여주고, 도 5b는 데이터를 포함하는 패킷을 보여주고, 도 5c는 요청 패킷 헤더 레이아웃(request packet header layout)을 보여주고, 도 5d는 요청 패킷 테일 레이아웃(request packet tail layout)을 보여주고, 도 5e는 응답 패킷 헤더 레이아웃(response packet header layout)을 보여주고, 그리고 도 5f는 응답 패킷 테일 레이아웃(response packet tail layout)을 보여준다.
HMC 장치의 인터페이스와 같이, 인터페이스가 응답 및 요청 링크들(예를 들어, 비동기 응답 및 요청 링크들)을 포함하는 경우, 요청 링크는 호스트로부터 3DS 메모리 장치로 패킷들을 보내고, 응답 링크는 3DS 메모리 장치로부터 호스트로 패킷들을 보낸다. 호스트는 어드레스 정보, 명령들, 및/또는 데이터를 포함하는 패킷을 요청 패킷을 통해 3DS 메모리 장치로 보낸다. 3DS 메모리 장치는 응답 패킷을 통해 호스트에 응답한다. 호스트 및 3DS 메모리 장치 각각은 패킷들을 처리하는 인코더(encoder) 및 디코더(decoder)를 포함할 수 있다. 구성 명령어들 및 명령들은 패킷들에 내장될 수 있고, 3DS 메모리 장치는 데이터를 계산하는 베이스 다이(102)(예를 들어, 베이스 다이(102) 상의 스위치들(206) 및 ALU들(208))를 구성하기 위해 구성 명령어들 및 명령들을 디코딩할 수 있다.
도 5a 및 도 5b를 참조하면, 패킷은 일반적으로 헤더 및 테일을 포함한다. 예를 들어, 패킷(예를 들어, 128비트)이 데이터를 포함하지 않는 경우, 헤더는 0번 비트에서 63번 비트까지 할당될 수 있고, 테일은 64번 비트에서 127번 비트까지 할당될 수 있다. 패킷이 데이터(예를 들어, 32바이트 데이터 페이로드(payload))를 포함하는 경우, 패킷은 전송 단위인 플릿(Flit)(예를 들어, 하나의 플릿은 128비트이다)으로 직렬화되고, 각 번호가 매겨진 데이터 필드(field)는 비트 위치들[7(MSB):0(LSB)]을 포함하는 하나의 바이트를 표시한다.
도 5c를 참조하면, 예를 들어, 인터페이스(108)가 HMC 장치의 인터페이스와 동일 또는 실질적으로 동일한 경우, 요청 패킷 헤더 레이아웃은 복수의 필드들을 포함한다. 필드들은 큐브 아이디(cube ID; CUB)(예를 들어, 비트 범위 [63:61]), 리저브드(reserved; RES)(예를 들어, 비트 범위 [60:58]), 어드레스(ADRS)(예를 들어, 비트 범위 [57:24]), 리저브드(RES)(예를 들어, 비트 범위 [23]), 태그(TAG)(예를 들어, 비트 범위 [22:12]), 패킷 길이(LNG)(예를 들어, 비트 범위 [11:7]), 및 명령(CMD)(예를 들어, 비트 범위 [6:0])을 포함한다.
요청 패킷 헤더 필드들은, 예를 들면, 아래의 표 1에서 정의된다(예를 들어, HMC 장치를 위한).
명칭 필드 라벨 비트 카운트 비트 범위 기능
큐브 아이디 CUB 3 [63:61] 큐브 아이디 필드는 목표 큐브와 요청을 매치하기 위해 사용된다. 내부 큐브 아이디 레지스터는 각 HMC 장치의 외부 CUB 핀들에서 읽어온 값이 디폴트로 된다.
리저브드 RES 3 [60:58] 예약됨. 이러한 비트들은 미래의 어드레스 또는 큐브 아이디 확장을 위해 예약된다. 응답자는 CRC 계산에서 이러한 비트들을 포함하는 경우를 제외하고 요청자로부터의 이 필드의 비트들을 무시할 것이다. HMC는 내부적으로 이 필드 범위의 부분들을 사용할 수 있다.
어드레스 ADRS 34 [57:24] 요청 어드레스. 일부 명령들을 위해, 제어 필드들은 이 범위 내에 포함될 수 있다.
리저브드 RES 1 [23]
태그 TAG 11 [22:12] 이 요청을 고유하게 확인하는 태그 번호.
패킷 길이 LNG 5 [11:7] 플릿들에서 패킷의 길이(1 플릿은 128비트). 헤더, 데이터 페이로드, 및 테일을 포함.
명령 CMD 7 [6:0] 패킷 명령.
도 5d를 참조하면, 예를 들어, 인터페이스(108)가 HMC 장치의 인터페이스와 동일 또는 실질적으로 동일한 경우, 요청 패킷 테일 레이아웃은 복수의 필드들을 포함한다. 필드들은 순환 중복 검사(cyclic redundancy check; CRC)(예를 들어, 비트 범위 [63:32]), 리턴 토큰 카운트(return token count; RTC)(예를 들어, 비트 범위 [31:29]), 소스 링크 아이디(source link ID; SLID)(예를 들어, 비트 범위 [28:26]), 리저브드(RES)(예를 들어, 비트 범위 [25:22]), 포이즌 비트(poison bit; Pb)(예를 들어, 비트 범위 [21]), 시퀀스 번호(sequence number; SEQ)(예를 들어, 비트 범위 [20:18]), 포워드 리트라이 포인터(forward retry pointer; FRP)(예를 들어, 비트 범위 [17:9]), 및 리턴 리트라이 포인터(return retry pointer; RRP)(예를 들어, 비트 범위 [8:0])를 포함한다.
요청 패킷 테일 필드들은, 예를 들면, 아래의 표 2에서 정의된다(예를 들어, HMC 장치를 위한).
명칭 필드 라벨 비트 카운트 비트 범위 기능
순환 중복 검사 CRC 32 [63:32] 에러 검출 코드 필드는 전체 패킷을 커버한다.
리턴 토큰 카운트 RTC 3 [31:29] 트랜잭션(transaction)-계층 흐름 제어를 위한 리턴 토큰 카운트. 요청 패킷 테일에서, RTC는 요청자의 입력 버퍼에서 사용 가능한 공간을 표시하는 토큰들을 위해 인코딩된 값을 포함한다.
소스 링크 아이디 SLID 3 [28:26] 응답 라우팅(routing)을 위한 소스 링크를 확인하기 위해 사용된다. 이 필드의 인커밍(incoming) 값은 HMC에 의해 무시된다. 내부적으로, HMC는 이 필드를 덮어쓰고 응답 라우팅을 위한 값을 사용한다. 응답 헤더에서 SLID 필드의 설명을 참조.
리저브드 RES 4 [25:22] 예약됨. 응답자는 CRC 계산에서 이러한 비트들을 포함하는 경우를 제외하고 요청자로부터의 이 필드의 비트들을 무시할 것이다. HMC는 내부적으로 이 필드 범위의 부분들을 사용할 수 있다.
포이즌 비트 Pb 1 21 포이즌 비트. 이 요청에서 쓰여질 DRAM 어드레스들은 첫 번째 요청된 16바이트 블록을 시작으로 16바이트 블록들을 교대로 쓰여지게 하는 특별한 포이즌 코드(poison code)를 쓰도록 하는 것에 의해 나쁜 영향을 받게 될 것이다. 이 요청 내의 다른 16바이트 블록들은 데이터 페이로드에 포함된 대응하는 쓰기 데이터를 사용하여 통상적으로 쓰여지게 된다.
시퀀스 번호 SEQ 3 [20:18] PRET 및 IRTRY 패킷들을 제외하고, 전송된 각 패킷을 위해 증가하는 값.
포워드 리트라이 포인터 FRP 9 [17:9] 리트라이 버퍼에서 이 패킷의 위치를 표시하는 리트라이 포인터.
리턴 리트라이 포인터 RRP 9 [8:0] 링크의 다른 쪽에 대해 반송되는 리트라이 포인터.
도 5e를 참조하면, 예를 들어, 인터페이스(108)가 HMC 장치의 인터페이스와 동일 또는 실질적으로 동일한 경우, 응답 패킷 헤더 레이아웃은 복수의 필드들을 포함한다. 필드들은 큐브 아이디(CUB)(예를 들어, 비트 범위 [63:61]), 리저브드(RES)(예를 들어, 비트 범위 [60:42]), 소스 링크 아이디(SLID)(예를 들어, 비트 범위 [41:39]), 리저브드(RES)(예를 들어, 비트 범위 [38:34]), 아토믹 플래그(Atomic flag; AF)(예를 들어, 비트 범위 [33]), 리저브드(RES)(예를 들어, 비트 범위 [32:23]), 태그(TAG)(예를 들어, 비트 범위 [22:21]), 패킷 길이(LNG)(예를 들어, 비트 범위 [11:7]), 및 명령(CMD)(예를 들어, 비트 범위 [6:0])을 포함한다.
요청 패킷 헤더 필드들은, 예를 들면, 아래의 표 3에서 정의된다(예를 들어, HMC 장치를 위한).
명칭 필드 라벨 비트 카운트 비트 범위 기능
큐브 아이디 CUB 3 [63:61] 목표 큐브는 자신의 큐브 아이디 번호를 이 필드에 삽입한다. 요청자는 검증을 위해 그리고 목표 큐브 당 고유의 태그들을 확인하기 위해 이 필드를 이용할 수 있다.
리저브드 RES 19 [60:42] 예약됨. 호스트는, CRC 계산에서 이러한 비트들을 포함하는 경우를 제외하고, HMC로부터의 이 필드의 비트들을 무시할 것이다.
소스 링크 아이디 SLID 3 [41:39] 응답 라우팅(routing)을 위한 소스 링크를 확인하기 위해 사용된다. 이 값은 대응하는 요청 헤더로부터 복사되고 응답 라우팅 목적들로 사용된다.
호스트는 이러한 비트들을 무시할 수 있다(CRC 계산에서 이러한 비트들을 포함하는 경우는 제외).
리저브드 RES 5 [38:34] 예약됨. 호스트는, CRC 계산에서 이러한 비트들을 포함하는 경우를 제외하고, HMC로부터의 이 필드의 비트들을 무시할 것이다.
아토믹 플래그 AF 1 [33] 아토믹 플래그
리저브드 RES 10 [32:23] 예약됨. 호스트는, CRC 계산에서 이러한 비트들을 포함하는 경우를 제외하고, HMC로부터의 이 필드의 비트들을 무시할 것이다.
태그 TAG 11 [22:12] 이 응답을 요청에 고유하게 연결하는 태그 번호.
패킷 길이 LNG 5 [11:7] 128비트 플릿들에서 패킷의 길이. 헤더, 데이터 페이로드, 및 테일을 포함.
명령 CMD 7 [6:0] 패킷 명령.
도 5f를 참조하면, 예를 들어, 인터페이스(108)가 HMC 장치의 인터페이스와 동일 또는 실질적으로 동일한 경우, 응답 패킷 테일 레이아웃은 복수의 필드들을 포함한다. 필드들은 순환 중복 검사(CRC)(예를 들어, 비트 범위 [63:32]), 리턴 토큰 카운트(RTC)들(예를 들어, 비트 범위 [31:29]), 오류 상태(error status; ERRSTAT)(예를 들어, 비트 범위 [28:22]), 데이터 무효(data invalid; DINV)(예를 들어, 비트 범위 [21]), 시퀀스 번호(SEQ)(예를 들어, 비트 범위 [20:18]), 포워드 리트라이 포인터(FRP)(예를 들어, 비트 범위 [17:9]), 및 리턴 리트라이 포인터(RRP)(예를 들어, 비트 범위 [8:0])를 포함한다.
요청 패킷 테일 필드들은, 예를 들면, 아래의 표 4에서 정의된다(예를 들어, HMC 장치를 위한).
명칭 필드 라벨 비트 카운트 비트 범위 기능
순환 중복 검사 CRC 32 [63:62] 에러 검출 코드 필드는 전체 패킷을 커버한다.
리턴 토큰 카운트들 RTC 3 [31:29] 트랜잭션-계층 흐름 제어를 위한 리턴 토큰 카운트. 응답 패킷 테일에서, RTC는 반송된 토큰들을 균등하게 하는 인코딩된 값을 포함한다. 토큰들은 HMC 입력 버퍼에서 증분의(incremental) 사용 가능한 공간을 표시한다.
오류 상태 ERRSTAT 7 [28:22] 오류 상태 비트들.
데이터 무효 DINV 1 [21] 패킷 페이로드의 유효성을 표시. 패킷의 데이터는 DINV=0이면 유효이고 DINV=1이면 무효이다.
시퀀스 번호 SEQ 3 [20:18] 전송된 각 패킷을 위해 증가하는 값.
포워드 리트라이 포인터 FRP 9 [17:9] 리트라이 버퍼에서 이 패킷의 위치를 표시하는 리트라이 포인터.
리턴 리트라이 포인터 RRP 9 [8:0] 링크의 다른 쪽에 대해 반송되는 리트라이 포인터.
본 발명의 예시적인 실시 예에 따르면, 요청/응답 패킷들 내의 리저브드 비트들(RES)은 PIM 명령어들을 운반하기 위해 사용될 수 있다(예를 들어, 재구성 계산을 위해). 또한, 요청/응답 패킷들 내의 리저브드 비트들(RES)이 충분하지 않으면, 요청/응답 패킷 정의는 확장될 수 있고, 그로 인해 테일은 더 많은 비트들을 가질 수 있다. 그러면 확장된 테일 비트들은 PIM 명령어들을 전달하기 위해 사용될 수 있다. 따라서, 예를 들면, HMC 인터페이스의 응답/요청 패킷들은 3DS 메모리 장치(100) 및 호스트(110) 사이의 인터페이스(108)를 통해 데이터를 계산하는 베이스 다이(102)(예를 들어, 스위치들(206) 및 ALU들(208))를 구성 및 지시하는 PIM 명령어들을 전송하기 위해 변형될 수 있다.
예를 들면, 도 4a 내지 도 4c에 도시된 예시를 다시 참조하면, (1) A, B, C, D를 로딩(예를 들어, 4개의 LOAD 명령어들), (2) "X = A + B", "Y = C + D" (예를 들어, 2개의 ADD 명령어들), (3) "Z = X + Y" (예를 들어, 하나의 ADD 명령어), 그리고 (4) Z를 저장(예를 들어, 하나의 STORE 명령어)하는 단계들을 포함할 수 있다.
호스트는 순서대로 이러한 명령어들을 보낼 수 있다. 각 명령어는 하나의 요청 패킷에 내장될 수 있다. 각 요청 패킷은 명령어들에 관련된 데이터 및 어드레스를 또한 포함할 수 있다. 따라서, 본 예시에서, 도 6에 도시된 바와 같이, 시퀀스는 "LOAD A" 연산(610 블록), "LOAD B" 연산(620 블록), "LOAD C" 연산(630 블록), "LOAD D" 연산(640 블록), "ADD X A B" 연산(650 블록), "ADD Y C D" 연산(660 블록), "ADD Z X Y" 연산(670 블록), 및 "STORE Z" 연산(680 블록)을 포함할 수 있다.
시퀀스의 마지막에, 메모리 장치는 호스트에게 시퀀스가 종료되었음을 알리고, 그리고 종료 결과 Z가 저장된 어드레스를 제공하는 응답을 보낼 수 있다(690 블록).
대신에, "ADD4"로 지칭되는 명령어가 있을 수 있고, 이는 4개의 데이터를 함께 합할 수 있다. 이 경우에, 호스트는 간단하게 하나의 패킷, 예를 들어, "ADD4 Z A B C D" 연산을 보낼 것이다. 이 경우, 오버헤드는 더 적고, 많은 PIM 연산들은 CPU에게 명료하고(transparent), 그래서 CPU가 모든 세부 사항을 관리하는 것은 바람직하지 않을 수 있다.
하지만, 본 발명은 이것에 제한되지 않으며, ALU들 및/또는 메모리 장치의 성능들에 따라 다양한 추가적인 정의들이 있을 수 있다.
도 7은 본 발명의 실시 예에 따른 제어 및 데이터 버스들을 포함하는 인터페이스에 대한 흐름도를 보여준다.
HBM 장치를 위한 인터페이스와 같이, 인터페이스(108)는 제어 및 데이터 버스들을 포함하는 경우, 제어 버스는 호스트로부터 3DS 메모리 장치로 단방향이고, 데이터 버스는 호스트 및 3DS 메모리 장치 사이에서 양방향이다. 제어 버스는 호스트로부터 3DS 메모리 장치로 어드레스 비트들 및 명령들을 전송한다. 데이터 버스는 호스트로부터 메모리 다이들로 데이터를 전송하고(예를 들어, WRITE 명령을 통해), 메모리 다이들로부터 호스트로 데이터를 전송한다(예를 들어, READ 명령을 통해).
명령들은 통상적인 명령들(예를 들어, READ, WRITE, ACTIVATE, PRECHARGE, REFRESH 등과 같은 DRAM 액세스 명령들)을 포함할 수 있고, 3DS 메모리 장치를 구성하기 위한 모드 레지스터 세트 명령(mode register set command; 예를 들어, MRS 명령)을 포함할 수 있다. 예를 들면, MRS 명령은 PIM 모드 또는 노말 모드(normal mode)에서 동작하도록 3DS 메모리 장치의 레지스터들을 구성할 수 있다. 노말 모드에서, 3DS 메모리 장치는 계산 없이 통상적인 3DS 메모리 장치(예를 들어, HBM 장치)처럼 동작할 수 있고, 예상대로 통상적인 명령들(예를 들어, RAS, CAS, CASW, 기타 등등)을 해석할 수 있다. 한편, PIM 모드에서, 3DS 메모리 장치는 통상적인 명령들이 다른 의미를 가지도록 해석할 수 있다. 다시 말해서, MRS 명령이 PIM 모드에서 동작하도록 수신되는 경우, 통상적인 명령들(예를 들어, RAS, CAS, CASW, 기타 등등)은 3DS 메모리 장치에 의해 베이스 다이(102)(예를 들어, ALU들(208))를 통해 데이터를 계산하는 명령어들(예를 들어, ADD, MULTIPLY, DIVIDE, COMPARE, 기타 등등)로서 해석될 수 있다.
예를 들면, 도 4a 내지 도 4c 및 도 7을 참조하면, 프로세스가 시작하고 700 블록에서, 3DS 메모리 장치는 인터페이스를 통해 호스트로부터 3DS 메모리 장치를 구성하는 MRS 명령을 수신한다. 705 블록에서, 3DS 메모리 장치는 MRS 명령이 PIM 모드에서 동작하는 명령어들을 포함하는지 여부를 판별한다. PIM 모드에서 동작하는 명령어들을 포함하지 않으면, 3DS 메모리 장치는 710 블록에서 노말 모드로 동작한다. PIM 모드에서 동작하는 명령어들을 포함하면, 715 블록에서, 3DS 메모리 장치는 PIM 모드로 진입하도록 구성된다. 720 블록에서, 3DS 메모리 장치는 A, B, C 및 D에 대한 통상적인 명령들(예를 들어, RAS/CAS)을 수신한다. 725 블록에서, 3DS 메모리 장치는 통상적인 명령들(예를 들어, RAS/CAS)이 계산 로직(예를 들어, ADD)으로 해석되어야 하는지를 판별한다. 730 블록에서, 3DS 메모리 장치는 "X+Y=Z"로써 A, B, C 및 D를 합하고 Z의 값을 저장한다(예를 들어, 도 4를 참조). 몇몇의 통상적인 명령들(예를 들어, RAS/CAS)이 동작에 따라 수신될 수 있다.
일부 실시 예들에서, 데이터 버스는 PIM 모드에서 단지 데이터뿐만 아니라 명령, 어드레스, 상태 등을 전송할 경우 용도 변경될 수 있다. 예를 들면, 계산 명령어들이 "ADD4 Z A B C D" 연산을 포함한다고 가정하면, RAS 명령은 ADD4 명령어를 표시하기 위해 사용될 수 있고, 데이터 버스 비트들은 A, B, C, 및 D의 어드레스들을 표시하기 위해 사용될 수 있다. 계산이 완료된 후에, 데이터 버스는 호스트로 Z의 어드레스를 전송하기 위해 사용될 수 있다. 이와 유사하게, 일부 실시 예들에서, 계산 명령어들은, 예를 들어, "ADD X A B" 연산을 포함할 수 있고, 이 경우에, CAS 명령은 ADD 명령어를 표시하기 위해 사용될 수 있고, 데이터 버스는 A 및 B의 어드레스들을 표시하기 위해 사용될 수 있다.
여기서 예시들은 용도 변경된 RAS/CAS 명령들로 설명되지만, 본 발명은 이것에 제한되지 않는다. 예를 들면, 다른 통상적인 명령들(예를 들어, DRAM 명령들)은 원하는 대로 용도 변경될 수 있고, 또는 통상적인 명령들 중 어떠한 것에 의해서도 정의되지 않은 PIM 명령어들은 원하는대로 정의될 수 있다.
일부 실시 예들에서, MRS 명령은 PIM 모드에서 빠져나가도록 3DS 메모리 장치를 구성하기 위해 사용될 수 있고, 통상적인 3DS 메모리 장치(예를 들어, 보통 HBM 장치)로서 작동하기 위해 사용될 수 있다. 그러면, 3DS 메모리 장치는 데이터 계산 없이 통상적인 메모리 장치(예를 들어, HBM 장치)로서 동작할 수 있다. 하지만, 본 발명은 이것에 제한되지 않으며, 일부 실시 예들에서, 3DS 메모리 장치는, 예를 들어, 한번 계산을 완료하면 추가적인 MRS 명령들 없이 디폴트(default)로 노말 모드로 복귀할 수 있다.
본 발명의 하나 이상의 예시적인 실시 예들에 따르면, 재구성 가능한 계산 로직은 3DS 메모리 장치의 베이스 다이 상에 구현될 수 있다. 예를 들면, 베이스 다이는 프로그램 메모리, 및 복수의 스위치와 복수의 ALU를 포함하는 로직 어레이를 포함할 수 있다. 스위치들은 데이터 흐름을 지시하고 데이터 경로들을 생성할 수 있고, ALU들은 데이터를 계산할 수 있다. 또한, 3DS 메모리 장치 및 호스트 사이의 인터페이스는 데이터를 계산하는 베이스 다이(예를 들어, 스위치들 및 ALU들)를 구성 및 지시하기 위해 사용될 수 있다. 일부 실시 예들에서, 인터페이스는 패킷화된 어드레스/명령들/데이터를 송신/수신하는 요청/응답 링크들(예를 들어, HMC 인터페이스)을 포함할 수 있다. 일부 실시 예들에서, 인터페이스는 PIM 모드에서 3DS 메모리 장치를 구성하고, 그리고 계산 명령들로서 통상적인 명령들을 해석하는 제어 및 데이터 버스들(예를 들어, HBM 인터페이스)을 포함할 수 있다. 일부 실시 예들에서, 인터페이스는 데이터를 계산하는 베이스 다이(예를 들어, 베이스 다이 상의 스위치들 및 ALU들)에 대한 PIM 명령어들을 전송하기 위해 변형되는 HMC 장치 또는 HBM 장치의 인터페이스를 포함할 수 있다.
여기서 설명되는 본 발명의 실시 예에 따른 전자 또는 전기 장치들 및/또는 다른 관련된 장치들 또는 구성들은 적절한 하드웨어, 펌웨어(예를 들면, ASIC), 소프트웨어, 또는 소프트웨어, 펌웨어, 및 하드웨어의 조합을 사용하여 구현될 수 있다. 예를 들면, 이들 장치들의 다양한 구성들은 하나의 집적 회로(IC) 칩에 또는 분리된 집적 회로 칩들에 형성될 수 있다. 또한, 이들 장치의 다양한 구성들은 연성 인쇄 회로 필름, 테이프 캐리어 패키지(TCP), 인쇄 회로 기판(PCB) 상에 구현되거나 하나의 기판상에 형성될 수 있다. 또한, 이들 장치들의 다양한 구성들은 하나 또는 그 이상의 컴퓨터 장치 내에 장착된 하나 또는 그 이상의 컴퓨터 프로세서들(마이크로프로세서와 같은)에서 구동되고, 컴퓨터 프로그램 명령어들을 실행하고, 여기에 게시되는 다양한 기능들을 수행하기 위한 다른 시스템 구성들과 상호 작용하는 프로세스나 쓰레드일 수 있다. 컴퓨터 프로그램 명령어들은, 예를 들면, 랜덤 액세스 메모리(RAM)와 같은 표준 메모리 장치를 사용하는 컴퓨팅 장치 내에 장착된 메모리에 저장될 수 있다. 컴퓨터 프로그램 명령어들은 다른 비 일시적인 컴퓨터 판독 가능 매체(예를 들면, CD-ROM, 플래시 드라이브 등과 같은)에 또한 저장될 수 있다. 또한, 본 발명의 기술 분야에서 통상의 지식을 가진 자는 본 발명의 사상 및 범위를 벗어나지 않고서 다양한 컴퓨팅 장치들의 기능이 하나의 컴퓨터 장치에 조합 또는 집적되거나, 특정 컴퓨팅 장치의 기능이 하나 또는 그 이상의 컴퓨팅 장치들에 분산될 수 있음을 잘 이해할 것이다.
비록 본 발명은 예시적인 실시 예들을 참조하여 설명되었지만, 본 발명의 기술분야에서 통상의 지식을 가진 자는, 본 발명의 사상 및 범위를 벗어나지 않고, 설명된 실시 예들에 다양한 변화들 및 수정들이 수행될 수 있음을 잘 이해할 것이다. 또한, 본 발명의 기술분야에서 통상의 지식을 가진 자는 여기에 설명된 본 발명이 다른 작업들의 해결책들 및 다른 응용을 위한 적응책들을 제시할 수 있음을 잘 이해할 것이다. 출원인은, 본 발명의 사상 및 범위를 벗어나지 않고, 본 출원의 청구 범위에 의해, 본 발명의 이러한 모든 사용들, 및 개시의 목적으로 선택된 본 발명의 예시적인 실시 예들에 어떠한 변경들 및 수정들을 포함하고자 의도한다. 따라서, 본 발명의 예시적인 실시 예들은, 첨부된 청구 범위 및 그것의 균등물에 의해 보여지는 본 발명의 사상 및 범위에서, 예시적이고 제한적이지 않도록 모든 측면에서 고려되어야 한다.
100: 3DS 메모리 장치
102, 400: 베이스 다이
104, 404: 메모리 다이들
106: TSV
108: 인터페이스
110: 호스트
202, 402: 프로그램 메모리
203: 제어 회로
204: 로직 어레이
206, 306: 스위치
208: ALU
308, 310, 312, 314: 멀티플렉서

Claims (10)

  1. 데이터 흐름을 지시하도록 구성되는 복수의 스위치들 및 데이터를 계산하도록 구성되는 복수의 산술 논리 유닛들을 포함하는 베이스 다이;
    상기 베이스 다이 상에 적층되는 복수의 메모리 다이들; 그리고
    상기 베이스 다이를 제어하는 신호들을 전송하도록 구성되는 인터페이스를 포함하는 3차원-적층 메모리 장치.
  2. 제 1 항에 있어서,
    상기 베이스 다이는 프로그램 메모리를 더 포함하며,
    상기 프로그램 메모리는 상기 인터페이스를 통해 외부 호스트에 의해 제어되도록, 상기 스위치들을 구성하도록, 그리고 상기 산술 논리 유닛들의 동작들을 제어하도록 구성되는 3차원-적층 메모리 장치.
  3. 제 2 항에 있어서,
    상기 인터페이스는,
    상기 호스트로부터 상기 베이스 다이로 요청 패킷을 전송하도록 구성되는 요청 링크; 그리고
    상기 베이스 다이로부터 상기 호스트로 응답 패킷을 전송하도록 구성되는 응답 링크를 포함하는 3차원-적층 메모리 장치.
  4. 제 3 항에 있어서,
    상기 요청 패킷은 상기 스위치들 및 상기 데이터를 계산하는 상기 산술 논리 유닛들을 지시하는 구성 명령어들 또는 구성 명령들을 포함하는 3차원-적층 메모리 장치.
  5. 제 4 항에 있어서,
    상기 요청 패킷은 상기 베이스 다이로 상기 구성 명령어들 또는 상기 구성 명령들을 전송하기 위해 사용되는 리저브드 비트(reserved bit)들을 포함하는 3차원-적층 메모리 장치.
  6. 제 4 항에 있어서,
    상기 요청 패킷은 헤더 및 테일을 포함하며,
    상기 테일은 상기 베이스 다이로 상기 구성 명령어들 또는 상기 구성 명령들을 전송하기 위해 사용되는 비트들을 포함하는 3차원-적층 메모리 장치.
  7. 복수의 스위치들 및 복수의 산술 논리 유닛들을 포함하는 베이스 다이, 상기 베이스 다이 상에 적층되는 복수의 메모리 다이들, 그리고 상기 베이스 다이를 제어하도록 구성되는 인터페이스를 포함하는 3차원-적층 메모리 장치의 동작 방법에 있어서,
    구성 명령어들에 따라 데이터 흐름을 지시하는 상기 스위치들을 구성하는 단계;
    로직 명령들에 따라 데이터를 계산하는 상기 산술 논리 유닛들의 동작들을 제어하는 단계; 그리고
    상기 메모리 다이들에 상기 계산된 데이터를 저장하는 단계를 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 구성 명령어들 및 상기 로직 명령들은 요청 패킷에 내장되며,
    상기 인터페이스의 요청 링크를 통해 호스트로부터 상기 요청 패킷을 수신하는 단계; 그리고
    상기 구성 명령어들 및 상기 로직 명령들을 확인하기 위해 상기 요청 패킷을 디코딩하는 단계를 더 포함하는 동작 방법.
  9. 제 8 항에 있어서,
    상기 인터페이스의 요청 링크를 통해 상기 호스트로 응답 패킷을 전송하는 단계를 더 포함하는 동작 방법.
  10. 메모리 내 프로세서를 포함하는 메모리 장치의 인터페이스에 있어서,
    외부 호스트로부터 상기 메모리 장치로 명령들을 전송하도록 구성되는 제어 버스; 그리고
    상기 메모리 장치 및 상기 호스트 사이에서 데이터를 전송하도록 구성되는 데이터 버스를 포함하되,
    상기 인터페이스는 상기 데이터를 계산하는 PIM 모드에서 동작하도록 상기 메모리 장치를 설정하는, 그리고 메모리 기능들을 수행하는 노말 모드에서 동작하도록 상기 메모리 장치를 설정하는 상기 명령들을 전송하도록 구성되고, 그리고
    상기 메모리 장치는 상기 PIM 모드인 경우 로직 명령들에 따라 상기 데이터를 계산하도록 메모리 명령들을 상기 로직 명령들로 번역하도록, 그리고 상기 노말 모드인 경우 상기 메모리 명령들에 따라 상기 메모리 기능들을 수행하도록 구성되는 인터페이스.
KR1020170010555A 2016-03-01 2017-01-23 재구성 가능한 계산 로직을 포함하는 3차원-적층 메모리 KR20170102418A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662301966P 2016-03-01 2016-03-01
US62/301,966 2016-03-01
US15/143,248 2016-04-29
US15/143,248 US11079936B2 (en) 2016-03-01 2016-04-29 3-D stacked memory with reconfigurable compute logic

Publications (1)

Publication Number Publication Date
KR20170102418A true KR20170102418A (ko) 2017-09-11

Family

ID=59722692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170010555A KR20170102418A (ko) 2016-03-01 2017-01-23 재구성 가능한 계산 로직을 포함하는 3차원-적층 메모리

Country Status (2)

Country Link
US (3) US11079936B2 (ko)
KR (1) KR20170102418A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190030578A (ko) * 2017-09-14 2019-03-22 삼성전자주식회사 고대역 메모리 시스템을 위한 준-동기식 프로토콜
KR20190133555A (ko) * 2018-05-23 2019-12-03 삼성전자주식회사 재구성 가능 로직을 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10860501B2 (en) 2018-12-18 2020-12-08 Hyundai Motor Company Redundancy method and system of three-dimensional laminated memory
WO2021020646A1 (ko) * 2019-07-29 2021-02-04 전자부품연구원 효율적인 명령어 처리를 위한 프로세싱-인-메모리 제어 방법 및 이를 적용한 연산장치

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
KR102548591B1 (ko) * 2016-05-30 2023-06-29 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법
US10387303B2 (en) * 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
KR102395463B1 (ko) * 2017-09-27 2022-05-09 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법
US10866900B2 (en) * 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
KR102543177B1 (ko) 2018-03-12 2023-06-14 삼성전자주식회사 고 대역폭 메모리 장치 및 이 장치를 포함하는 시스템 장치
US10586795B1 (en) * 2018-04-30 2020-03-10 Micron Technology, Inc. Semiconductor devices, and related memory devices and electronic systems
US10817422B2 (en) * 2018-08-17 2020-10-27 Advanced Micro Devices, Inc. Data processing system with decoupled data operations
US20200117449A1 (en) * 2018-10-12 2020-04-16 Micron Technology, Inc. Accelerated Access to Computations Results Generated from Data Stored in Memory Devices
US11157213B2 (en) 2018-10-12 2021-10-26 Micron Technology, Inc. Parallel memory access and computation in memory devices
US10461076B1 (en) 2018-10-24 2019-10-29 Micron Technology, Inc. 3D stacked integrated circuits having functional blocks configured to accelerate artificial neural network (ANN) computation
US10901694B2 (en) * 2018-12-31 2021-01-26 Micron Technology, Inc. Binary parallel adder and multiplier
KR20210108583A (ko) * 2020-02-26 2021-09-03 삼성전자주식회사 반도체 패키지 및 그의 제조 방법
KR20220031793A (ko) 2020-09-03 2022-03-14 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법
KR20220032366A (ko) * 2020-09-07 2022-03-15 삼성전자주식회사 가변적인 모드 설정을 수행하는 메모리 장치 및 그 동작방법
US11960438B2 (en) * 2020-09-08 2024-04-16 Rambus Inc. Methods and circuits for streaming data to processing elements in stacked processor-plus-memory architecture
US11409674B2 (en) * 2020-10-02 2022-08-09 Micron Technology, Inc. Memory with improved command/address bus utilization
US11977915B2 (en) 2020-12-15 2024-05-07 Western Digital Technologies, Inc. Non-volatile memory with intelligent compute task distribution
US11922066B2 (en) * 2021-01-21 2024-03-05 Rambus Inc. Stacked device communication
US20240103745A1 (en) * 2022-09-28 2024-03-28 Advanced Micro Devices, Inc. Scheduling Processing-in-Memory Requests and Memory Requests

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4104538B2 (ja) * 2003-12-22 2008-06-18 三洋電機株式会社 リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
US8055852B2 (en) * 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
US8064739B2 (en) 2007-10-23 2011-11-22 Hewlett-Packard Development Company, L.P. Three-dimensional die stacks with inter-device and intra-device optical interconnect
US8031505B2 (en) 2008-07-25 2011-10-04 Samsung Electronics Co., Ltd. Stacked memory module and system
US9287239B2 (en) 2010-04-26 2016-03-15 Rambus Inc. Techniques for interconnecting stacked dies using connection sites
US8922243B2 (en) * 2012-12-23 2014-12-30 Advanced Micro Devices, Inc. Die-stacked memory device with reconfigurable logic
US8737108B2 (en) 2012-09-25 2014-05-27 Intel Corporation 3D memory configurable for performance and power
US10079044B2 (en) * 2012-12-20 2018-09-18 Advanced Micro Devices, Inc. Processor with host and slave operating modes stacked with memory
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
US9286948B2 (en) * 2013-07-15 2016-03-15 Advanced Micro Devices, Inc. Query operations for stacked-die memory device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190030578A (ko) * 2017-09-14 2019-03-22 삼성전자주식회사 고대역 메모리 시스템을 위한 준-동기식 프로토콜
KR20190030586A (ko) * 2017-09-14 2019-03-22 삼성전자주식회사 고대역 메모리 시스템을 위한 준-동기식 프로토콜
US11893239B2 (en) 2017-09-14 2024-02-06 Samsung Electronics Co., Ltd. Quasi-synchronous protocol for large bandwidth memory systems
KR20190133555A (ko) * 2018-05-23 2019-12-03 삼성전자주식회사 재구성 가능 로직을 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US11550738B2 (en) 2018-05-23 2023-01-10 Samsung Electronics Co., Ltd. Storage device including reconfigurable logic and method of operating the storage device
US11650940B2 (en) 2018-05-23 2023-05-16 Samsung Electronics Co., Ltd. Storage device including reconfigurable logic and method of operating the storage device
US10860501B2 (en) 2018-12-18 2020-12-08 Hyundai Motor Company Redundancy method and system of three-dimensional laminated memory
WO2021020646A1 (ko) * 2019-07-29 2021-02-04 전자부품연구원 효율적인 명령어 처리를 위한 프로세싱-인-메모리 제어 방법 및 이를 적용한 연산장치
US11907578B2 (en) 2019-07-29 2024-02-20 Korea Electronics Technology Institute Processing-in-memory control method for efficient instruction processing and computing device applying same

Also Published As

Publication number Publication date
US20170255390A1 (en) 2017-09-07
US20210311634A1 (en) 2021-10-07
US20240004547A1 (en) 2024-01-04
US11079936B2 (en) 2021-08-03
US11789610B2 (en) 2023-10-17

Similar Documents

Publication Publication Date Title
US11789610B2 (en) 3D-stacked memory with reconfigurable compute logic
JP7317478B2 (ja) 積層型メモリ装置及びメモリシステム
US9953702B2 (en) Semiconductor memory devices, memory systems including the same and methods of operating the same
US9134919B2 (en) Memory device including priority information and method of operating the same
KR102453542B1 (ko) 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법
US11474950B2 (en) Memory controller including plurality of address mapping tables, system on chip, and electronic device
JP2008140220A (ja) 半導体装置
KR20220041224A (ko) 시스템 온 칩과 메모리 칩을 연결하는 가속기 칩
US20210225429A1 (en) High bandwidth memory and system having the same
US20230051126A1 (en) Signal routing between memory die and logic die for performing operations
KR20220041226A (ko) 시스템 온 칩과 가속기 칩을 연결하는 메모리 칩
CN107209735B (zh) 可配置管芯、层叠封装装置以及方法
CN110780805B (zh) 存储器装置、处理系统及控制处理系统的方法
CN116583823A (zh) 使用长向量仲裁的异步管线合并
US11281397B2 (en) Stacked memory device performing function-in-memory (FIM) operation and method of operating the same
US20230315334A1 (en) Providing fine grain access to package memory
US9552314B2 (en) Memory system having first and second memory devices and driving method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal