KR20210085284A - Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법 - Google Patents

Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법 Download PDF

Info

Publication number
KR20210085284A
KR20210085284A KR1020190178165A KR20190178165A KR20210085284A KR 20210085284 A KR20210085284 A KR 20210085284A KR 1020190178165 A KR1020190178165 A KR 1020190178165A KR 20190178165 A KR20190178165 A KR 20190178165A KR 20210085284 A KR20210085284 A KR 20210085284A
Authority
KR
South Korea
Prior art keywords
memory
data
path
pim
memory device
Prior art date
Application number
KR1020190178165A
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 KR1020190178165A priority Critical patent/KR20210085284A/ko
Priority to US16/869,853 priority patent/US11403239B2/en
Publication of KR20210085284A publication Critical patent/KR20210085284A/ko
Priority to US17/845,441 priority patent/US11880317B2/en

Links

Images

Classifications

    • 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)

Abstract

일 실시예에 따른 PIM(Processing In Memory) 메모리 디바이스는 외부의 호스트 프로세서로부터 제1 경로를 통해 데이터를 수신하는 메모리 및 제1 경로를 통해 데이터가 메모리에 전달될 때, 제1 경로와 연결된 제2 경로를 통해 데이터를 수신하는 정보 수집 유닛(information gathering unit)을 포함하고, 정보 수집 유닛은, 제2 경로를 통해 수신한 데이터를 처리하여 소정의 정보를 생성할 수 있다.

Description

PIM 메모리 디바이스, PIM 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 PIM 메모리 디바이스의 동작 방법{PIM memory device, computing system including PIM memory device and method for operating PIM memory device}
본 개시는 PIM 메모리 디바이스, PIM 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 PIM 메모리 디바이스의 동작 방법에 관한 것이다.
종래의 반도체 메모리 디바이스는 연산 작업을 수행하는 프로세서와 기능이 완전히 분리되어 있었다. 따라서, 많은 양의 데이터에 대한 연산이 요구되는 뉴럴 네트워크, 빅 데이터, 사물 인터넷 등과 같은 응용들을 구현하는 시스템에서 반도체 메모리 디바이스와 프로세서 간에 많은 양의 데이터가 송수신됨에 따라 병목 현상이 자주 발생되는 문제가 있었다.
이와 같은 문제를 해결하기 위해 메모리 기능에 연산 작업을 수행하는 프로세서의 기능을 합친 반도체 메모리 디바이스로서, 프로세스 인 메모리(Process in memory: PIM)에 대한 연구가 진행되고 있다.
PIM 메모리 디바이스, PIM 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 PIM 메모리 디바이스를 제공하는데 있다. 본 개시가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 해결하기 위한 수단으로서, 일 측면에 따르면 외부의 호스트 프로세서로부터 제1 경로를 통해 데이터를 수신하는 메모리 및 제1 경로를 통해 데이터가 메모리에 전달될 때, 제1 경로와 연결된 제2 경로를 통해 데이터를 수신하는 정보 수집 유닛(information gathering unit)을 포함하고, 정보 수집 유닛은, 제2 경로를 통해 수신한 데이터를 처리하여 소정의 정보를 생성하는 PIM(Processing In Memory) 메모리 디바이스가 제공될 수 있다.
또한, PIM 메모리 디바이스는 호스트 프로세서의 요청에 따라, 메모리는 데이터를 반환하고, 정보 수집 유닛은 소정의 정보를 반환할 수 있다.
또한, 호스트 프로세서의 요청에 따라, 메모리는 제1 경로를 통해 데이터를 호스트 프로세서로 반환하고, 정보 수집 유닛은 제2 경로를 통해 소정의 정보를 호스트 프로세서로 반환할 수 있다.
또한, 호스트 프로세서의 요청에 따라, 메모리는 제3 경로를 통해 데이터를 호스트 프로세서로 반환하고, 정보 수집 유닛은 제3 경로와 정보 수집 유닛을 연결하는 제4 경로를 통해 소정의 정보를 호스트 프로세서로 반환할 수 있다.
또한, PIM 메모리 디바이스는 호스트 프로세서로부터 전달되는 데이터를 일시적으로 저장하는 메모리 버퍼를 더 포함하고, 메모리 버퍼는 제1 경로를 통해 데이터를 메모리로 전달하고, 제2 경로를 통해 데이터를 정보 수집 유닛으로 전달할 수 있다.
또한, 정보 수집 유닛은 데이터를 처리하여 소정의 정보를 생성하는 프로세서 및 호스트 프로세서로부터 소정의 정보에 관한 설정 사항들을 저장하는 적어도 하나의 레지스터를 포함할 수 있다.
또한, 정보 수집 유닛은, 설정 사항들에 따라, 데이터로부터 소정의 정보의 수집 여부를 저장하는 활성화 레지스터(Enabling register), 소정의 정보를 수집하는 범위를 저장하는 범위 레지스터(Range register), 소정의 정보의 종류를 저장하는 마스크 레지스터(Mask register) 및 생성된 소정의 정보를 저장하는 정보 레지스터 파일(Information register file) 중 적어도 어느 하나를 포함 할 수 있다.
또한, PIM 메모리 디바이스는 디램(DRAM), 고대역 메모리(HBM) 및 LRDIMM 중 어느 하나일 수 있다.
다른 일 측면에 따르면, 호스트 프로세서 및 호스트 프로세서로부터 데이터를 수신하는 메모리 및 데이터를 수신하고, 데이터를 처리하여 소정의 정보를 생성하는 정보 수집 유닛(information gathering unit)을 포함하는 PIM(Processing In Memory) 메모리 디바이스를 포함하고, PIM 메모리 디바이스는 제1 경로를 통해 메모리로 데이터를 전달하고, 제1 경로와 연결된 제2 경로를 통해 정보 수집 유닛으로 소정의 정보를 전달하고, 호스트 프로세서는 PIM 메모리 디바이스에 데이터 및 소정의 정보 중 적어도 하나를 요청할 수 있고, PIM 메모리 디바이스는 데이터에 대한 요청에 응답하여 메모리로부터 데이터를 반환하고, 소정의 정보에 대한 요청에 응답하여 정보 수집 유닛으로부터 소정의 정보를 반환하는 컴퓨팅 시스템이 제공될 수 있다.
또 다른 일 측면에 따르면, 외부의 호스트 프로세서로부터 수신한 데이터를 제1 경로를 통해 메모리에 전달하는 단계, 제1 경로를 통해 데이터가 메모리에 전달될 때, 제1 경로와 연결되는 제2 경로를 통해 정보 수집 유닛에 데이터를 전달하는 단계 및 정보 수집 유닛을 통해 데이터를 처리하여 소정의 정보를 생성하는 단계를 포함하는 PIM 메모리 디바이스의 동작 방법이 제공될 수 있다.
또한, PIM 메모리 디바이스의 동작 방법은 호스트 프로세서의 요청에 따라, 메모리로부터 데이터를 반환하거나, 정보 수집 유닛으로부터 소정의 정보를 반환하는 단계를 더 포함할 수 있다.
또 다른 일 측면에 따르면, PIM 메모리 디바이스의 동작 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
본 개시에 따르면, PIM 메모리 디바이스는 외부로부터 수신한 데이터를 메모리 디바이스에 기록(write)할 때, 데이터를 처리하여 소정의 정보를 생성하고 저장함으로써, 이후 메모리에 대한 추가적인 접근 없이 기 생성된 소정의 정보를 반환할 수 있다. 그 결과 데이터 처리 및 정보 생성에 필요한 수행 시간 및 에너지가 감소할 수 있다.
도 1은 일 실시예에 따른 PIM 메모리 디바이스를 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 2는 일 실시예에 따른 PIM 메모리 디바이스 내 정보 수집 유닛의 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 PIM 메모리 디바이스의 동작 방법에 관한 순서도이다.
도 4는 일 실시예에 따른 DRAM을 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 5는 일 실시예에 따른 LRDIMM를 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 6은 일 실시예에 따른 HBM을 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 기술분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 임의로 선정된 용어도 있으며, 이 경우 해당 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시예들에 대한 설명들에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 실시예들에서 사용되는 "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 도는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
하기 실시예들에 대한 설명은 권리범위를 제한하는 것으로 해석되지 말아야 하며, 해당 기술분야의 당업자가 용이하게 유추할 수 있는 것은 실시예들의 권리범위에 속하는 것으로 해석되어야 할 것이다. 이하 첨부된 도면들을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다.
도 1은 일부 실시예에 따른 PIM 메모리 디바이스를 포함하는 컴퓨팅 시스템(1000)의 구성을 나타내는 블록도이다.
도 1을 참조하면, 컴퓨팅 시스템(1000)은 호스트 프로세서(200) 및 PIM 메모리 디바이스(100)를 포함할 수 있다. 도 1에 도시된 컴퓨팅 시스템(1000)에는 실시예들과 관련된 구성요소들만이 도시되어 있으나, 이 외에 다른 범용적인 구성요소들, 예를 들어 다른 전자 기기들과 연결시키는 인터페이싱 모듈, 사용자 입력을 수신하고 정보를 출력할 수 있는 입출력 모듈 등이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
컴퓨팅 시스템(1000)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, PDA(personal digital assistants), 휴대형 미디어 플레이어, 비디오 게임용 콘솔, 텔레비젼 셋탑 박스, 태블릿 디바이스, 이북 리더, 웨어러블 디바이스 등을 예로 들 수 있지만, 이에 제한되지 않는다. 즉, 컴퓨팅 시스템(1000)의 범주에는 다양한 장치들이 포함될 수 있다.
호스트 프로세서(200)는, 프로세싱 기능을 갖는 하드웨어로서, 컴퓨팅 시스템(1000)의 전반적인 동작을 제어한다. 호스트 프로세서(200)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 호스트 프로세서(200)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 등으로 구현될 수 있다.
호스트 프로세서(200)는 PIM 메모리 디바이스(100)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 일부 실시예에 있어서, 호스트 프로세서(200)는 PIM 메모리 디바이스(100)에 저장된 프로그램들을 실행함으로써, 뉴럴 네트워크 장치의 기능을 제어할 수 있다.
호스트 프로세서(200)는 PIM 메모리 디바이스(100)를 제어하기 위한 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는 메모리 장치를 제어하기 위한 커맨드(CMD) 및 어드레스(ADDR)를 인가하여 메모리 장치의 동작을 제어한다.
호스트 프로세서(200)는 데이터를 기록(write)할 때, 기록할 데이터와, 각 데이터가 저장될 메모리 공간에 대응하는 어드레스를 PIM 메모리 디바이스(100)에 전달할 수 있다. PIM 메모리 디바이스(100)는 수신한 어드레스에 대응하는 메모리 공간에 데이터를 기록할 수 있다. 이후 데이터를 판독(read)할 때, 호스트 프로세서(200)는 판독할 데이터가 기록된 메모리 공간에 대응하는 어드레스를 PIM 메모리 디바이스(100)에 전달하고, PIM 메모리 디바이스(100)로부터 해당 어드레스에 저장된 데이터를 반환 받을 수 있다.
컴퓨팅 시스템(1000)은, 입출력 장치(I/O device; 미도시)를 더 포함할 수 있고, 호스트 프로세서는 메모리 맵 입출력(Memory-mapped I/O, MMIO) 방식에 따라 입출력 장치 및 PIM 메모리 디바이스(100)를 제어할 수 있다.
호스트 프로세서(200)는 호스트 프로세서(200)와 PIM 메모리 디바이스(100)를 연결하는 경로를 통해 각종 데이터를 전달할 수 있다. 예를 들면, 호스트 프로세서(200)는 데이터를 전송하기 위한 데이터 버스 및 코맨드(CMD) 및 어드레스(ADDR)를 전송하기 위한 콘트롤 버스 등을 통해 각종 데이터 및 정보들을 PIM 메모리 디바이스(100)로 전달할 수 있다.
PIM(Processing In Memory) 메모리(110) 디바이스는 프로그램들, 데이터, 또는 명령들을 저장할 수 있다. 또는, PIM 메모리 디바이스(100)는 뉴럴 네트워크 장치의 연산 수행 과정에 필요한 입력값과 연산 수행의 결과로 생성되는 중간 및 최종 결과들을 저장할 수 있다.
PIM 메모리 디바이스(100)는, 외부의 호스트 프로세서(200)로부터 데이터를 수신하고 저장하는 메모리(110), 및 메모리(110)에 전달되는 데이터를 데이터 버스 상에서 획득하고, 획득한 데이터를 처리하는 정보 수집 유닛(120)(information gathering unit)을 포함할 수 있다.
PIM 메모리 디바이스(100)는 도 1에 도시된 구성요소들 외에도, 다른 범용적인 구성요소들을 포함할 수 있다. 예를 들면, PIM 메모리 디바이스(100)는 메모리(110) 패키지의 칩 내에서 함께 패키징되어 내부에서 데이터를 처리할 수 있는 내부(internal) 프로세서 및 전달되는 데이터를 임시로 저장하는 메모리 버퍼 등을 더 포함할 수 있다.
PIM 메모리 디바이스(100)는, DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory)에 해당되거나, 또는 ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), 또는 고대역 메모리(High Bandwidth Memory; HBM), LRDIMM(Load Reduced Dual In-line Memory Module) 등과 같은 디바이스에 해당될 수 있다.
메모리(110)는 외부의 호스트 프로세서(200)로부터 데이터를 수신하고 저장할 수 있다. 메모리(110)가 수신 및 저장하는 데이터의 종류는 다양할 수 있다. 예를 들어 메모리(110)는 음성 인식 데이터, 영상 데이터, 생체 정보와 관련된 데이터 등을 수신하고, 저장할 수 있다.
메모리(110)는, 호스트 프로세서(200)로부터 소정의 경로(L1)를 통해 데이터를 수신할 수 있다. 경로(L1)는 데이터의 이동 통로로서, 예를 들면, 데이터 버스일 수 있다. 메모리(110)는 경로(L1)를 통해 데이터를 수신된 그대로(as-received) 저장한다. 다시 말하면, 메모리(110)는 데이터를 수신할 때, 별도의 연산 또는 처리를 하지 않고 저장한다.
메모리(110)는, 호스트 프로세서(200)의 요청에 따라 데이터를 반환할 수 있다. 이 때, 메모리(110)는 소정의 경로(L3)를 통해 데이터를 반환할 수 있다.
일 실시예에 따르면, 메모리(110)가 데이터를 수신하는 경로(L1)와, 데이터를 반환하는 경로(L3)는 동일한 경로일 수 있다. 다른 일 실시예에 따르면 메모리(110)가 데이터를 수신하는 경로(L1)와, 데이터를 반환하는 경로(L3)는 데이터 처리를 위해 경유해야 하는 전자 구성요소들 및 교차하는 다른 경로 등을 고려하여 상이하게 설계될 수도 있다.
일 실시예에 따르면 메모리(110)는 다수의 메모리(110)를 포함하는 메모리 어레이로 구성될 수 있고, 메모리 어레이는 메모리 뱅크를 형성할 수 있다. 호스트 프로세서(200)는 메모리 뱅크 각각에 독립적으로 접근할 수 있다.
정보 수집 유닛(120)은 데이터 처리 및 연산을 수행하는 프로세서 및 데이터로부터 생성된 정보를 저장하는 기억 장치를 포함할 수 있다. 프로세서는 메모리(110)와 온칩(On-chip)으로 구현되는 PIM 아키텍처에 따라 설계되므로, 낮은 레이턴시(low latency)의 빠른 메모리(110) 액세스가 가능하다. 기억 장치는 다양한 종류의 메모리(110)로 구현될 수 있으며, 예를 들면 기억 장치는 SRAM 이거나, 레지스터(register)일 수 있다.
호스트 프로세서(200)로부터 PIM 메모리 디바이스(100)의 메모리(110)로 데이터가 전달될 때, 정보 수집 유닛(120)은 경로(L1)와 연결되는 소정의 경로(L2)를 통해 해당 데이터를 수신할 수 있다.
호스트 프로세서(200)는 MMIO 방식에 따라 정보 수집 유닛(120)에 할당된 주소를 사용함으로써, 정보 수집 유닛(120)에 접근하고, 정보 수집 유닛(120) 내 데이터를 기록하거나 정보를 판독할 수 있다.
정보 수집 유닛(120)의 프로세서는 수신한 데이터를 처리하여 소정의 정보를 생성하고, 레지스터에 생성한 소정의 정보를 저장할 수 있다. 데이터로부터 생성된 정보는 데이터 자체보다 크기가 작아 정보 수집 유닛(120)의 레지스터에 임시적으로 저장될 수 있다.
정보 수집 유닛(120)이 수신하는 데이터 및 데이터로부터 생성된 정보는 다양할 수 있다. 일 실시예에 따르면, 정보 수집 유닛(120)이 수신하는 데이터는 음성 인식 데이터, 영상 데이터, 생체 정보와 관련된 데이터 등을 포함할 수 있다.
일 실시예에 따르면, 정보 수집 유닛(120)은 데이터로부터 소정의 통계 정보들을 생성할 수 있다. 정보 수집 유닛(120)이 생성한 통계 정보들은, 호스트 프로세서(200)에서 뉴럴 네트워크 관련 기능을 수행하는 데 활용될 수 있다. 이에 대해서는 도 2를 통해 더 자세히 설명한다.
호스트 프로세서(200)가 소정의 정보를 생성하기 위해 메모리(110)에 저장된 데이터 전체를 메모리(110) 디바이스로부터 판독하는 것은 비효율적이다. 따라서, 호스트 프로세서(200)가 메모리(110)에 데이터를 기입하기 위해 메모리(110)에 데이터를 전달할 때, 정보 수집 유닛(120)도 함께 데이터를 수신하고, 데이터를 처리하여 소정의 정보를 생성할 수 있다.
이후 정보 수집 유닛(120)은 호스트 프로세서(200)의 요청에 따라 정보를 제공할 수 있다. 호스트 프로세서(200)는 PIM 메모리 디바이스(100)로, 메모리(110)의 어드레스를 전달함으로써 메모리(110)의 어드레스에 기록된 데이터를 판독할 수 있고, 정보 수집 유닛(120)의 어드레스를 전달함으로써 정보 수집 유닛(120)의 어드레스에 기록된 소정의 정보를 판독할 수 있다.
이로써, PIM 메모리 디바이스(100)는 정보 수집 유닛(120)을 이용하여 1회의 데이터 처리 과정을 통해 소정의 정보를 생성하고, 이후 호스트 프로세서(200)로부터 반복된 정보 판독 요청에 응답하여, 추가적인 연산 없이 정보 수집 유닛(120)에 저장된 소정의 정보를 제공함으로써 데이터 처리 및 정보 생성에 필요한 수행 시간 및 에너지를 감소시킬 수 있다.
정보 수집 유닛(120)은 호스트 프로세서(200)의 요청에 따라, 소정의 경로(L4)를 통해 호스트 프로세서(200)로 생성된 정보를 반환할 수 있다. 경로(L4)는 메모리(110)가 데이터를 반환하는 경로(L3)와 연결될 수 있다.
일 실시예에 따르면, 정보 수집 유닛(120)이 데이터를 수신하는 경로(L2)와, 소정의 정보를 반환하는 경로(L4)는 동일한 경로일 수 있다. 다른 일 실시예에 따르면 정보 수집 유닛(120)이 데이터를 수신하는 경로(L2)와, 소정의 정보를 반환하는 경로(L4)는 데이터 처리를 위해 경유해야 하는 전자 구성요소들 및 교차하는 다른 경로 등을 고려하여 상이하게 설계될 수도 있다.
일 실시예에 따르면, 메모리(110)는 다수의 메모리 뱅크들로 구성될 수 있고, 다수의 정보 수집 유닛(120)들은 각각 메모리 뱅크에 독립적으로 연결될 수 있다. 이에 따라, 정보 수집 유닛(120)들 각각은 연결된 메모리 뱅크로부터 수신하는 데이터를 처리하여 정보 생성할 수 있다. 이로써, 다수의 정보 수집 유닛(120)들 각각이 메모리 뱅크에 독립적으로 연결될 경우 메모리 뱅크 단위로 정보 생성이 가능하므로, 메모리(110) 전체 단위로 정보를 생성하는 것보다 해상도(resolution)가 향상될 수 있다.
PIM 메모리 디바이스(100)는 메모리 버퍼를 더 포함할 수 있다. PIM 메모리 디바이스(100) 내 각 구성요소들 및 호스트 프로세서(200) 사이에서 발생할 수 있는 전송 속도의 차이를 해결하기 위해, 메모리 버퍼는 호스트 프로세서(200)와 PIM 메모리 디바이스(100) 사이에서 전송되는 데이터 및 정보를 임시로 저장할 수 있다.
구체적으로, 메모리 버퍼는 호스트 프로세서(200)로부터 메모리(110)로 전달되는 데이터, 호스트 프로세서(200)로부터 정보 수집 유닛(120)으로 전달되는 데이터, 메모리(110)로부터 호스트 프로세서로 전달되는 데이터 및 정보 수집 유닛(120)으로부터 호스트 프로세서(200)로 전달되는 정보 등을 임시로 저장할 수 있다.
메모리 버퍼는 경로(L1, L2, L3, L4) 상에 위치하거나, 경로(L1, L2, L3, L4)와 연결될 수 있다. 메모리 버퍼는 경로(L1)를 통해 데이터를 메모리(110)로 전달하고, 경로(L2)를 통해 데이터를 정보 수집 유닛(120)으로 전달하고, 경로(L3)를 통해 메모리(110)로부터 호스트 프로세서(200)로 데이터를 전달하고, 경로(L4)를 통해 정보 수집 유닛(120)으로부터 호스트 프로세서(200)로 정보를 전달할 수 있다.
도 2는 일부 실시예에 따른 PIM 메모리 디바이스 내 정보 수집 유닛의 구성을 나타내는 블록도이다.
도 2를 참조하면, 프로세서(122) 및 복수의 레지스터들을 포함할 수 있다.
정보 수집 유닛(120)은 고속 기억 장치인 레지스터에 정보를 기록함으로써, 레지스터와 연계된 프로세서(122)의 데이터 처리 속도를 향상시킬 수 있다. 레지스터는 프로세서(122)의 데이터 처리 중 중간 및 최종 결과들을 저장할 수 있다.
호스트 프로세서(200)는 레지스터들을 통해 정보 수집 유닛(120)의 동작 및 소정의 정보에 관한 설정 사항들을 제어할 수 있다. 정보 수집 유닛(120)의 동작 및 소정의 정보에 관한 설정 사항들에 따라, 레지스터의 개수 및 종류가 상이할 수 있다. 호스트 프로세서(200)는 설정 사항들을 사용자로부터 입력 받고, 각 레지스터들로 전달할 수 있다. 각 레지스터들은 전달받은 설정 사항들을 저장할 수 있다. 각 레지스터들은 고유의 어드레스를 가지며, 호스트 프로세서(200)는 정보 수집 유닛(120)의 설정 사항들과, 설정 사항들이 저장될 레지스터의 어드레스를 PIM 메모리 디바이스(100)에 전달할 수 있다.
일 실시예에 따르면, 정보 수집 유닛(120)은 활성화 레지스터(Enabling Register, 123), 마스크 레지스터(Mask Register, 124), 범위 레지스터(Range Register, 125), 정보 레지스터 파일(Information Register file, 126) 중 적어도 어느 하나를 포함할 수 있다.
활성화 레지스터(123)는 데이터로부터 정보 수집을 수행할지 여부에 관한 설정 사항들을 저장할 수 있다. 호스트 프로세서(200)는 활성화 레지스터(123)를 통해 정보 수집 유닛(120)의 활성화를 제어할 수 있다.
마스크 레지스터(124)는 데이터로부터 생성할 정보의 종류에 관한 설정 사항들을 저장할 수 있다. 호스트 프로세서(200)는 마스크 레지스터(124)를 통해 정보 수집 유닛(120)으로부터 생성할 정보의 종류를 제어할 수 있다. 예를 들어, 정보 수집 유닛(120)이 데이터로부터 통계 정보들을 생성할 때, 마스크 레지스터(124)는 데이터의 최소값 및 최대값, 데이터의 합, 데이터의 제곱의 합, 데이터 내 영(zero)의 개수 등 생성할 통계 정보의 종류를 설정할 수 있다. 데이터의 최소값 및 최대값은, 양자화(Quantization)에 활용될 수 있고, 데이터의 합, 데이터의 제곱의 합은 정규화(Normalization)에 활용될 수 있고, 데이터 내 영(zero)의 개수는 프로세서의 로드 분배(load balancing)에 활용될 수 있다.
범위 레지스터(125)는 정보를 생성할 데이터의 범위에 관한 설정 사항들을 저장할 수 있다. 호스트 프로세서(200)는 범위 레지스터(125)를 통해 정보를 생성할 데이터의 주소의 범위를 제어할 수 있다. 예를 들어, 정보 수집 유닛(120)이 이미지 데이터로부터 통계 정보들을 생성할 때, 범위 레지스터(125)는 통계 정보를 생성할 이미지 데이터의 픽셀 영역을 설정할 수 있다.
정보 레지스터 파일(126)은 복수의 레지스터의 집단으로서, 데이터로부터 생성된 정보를 저장할 수 있다. 정보 레지스터 파일(126)은 호스트 프로세서(200)의 요청에 따라 저장한 정보를 반환할 수 있다.
도 3은 일부 실시예에 따른 PIM 메모리 디바이스의 동작 방법에 관한 순서도이다.
도 3을 참조하면, PIM 메모리 디바이스(100)는 외부의 호스트 프로세서(200)로부터 수신한 데이터를 제1 경로를 통해 메모리(110)에 전달할 수 있다(S1100). 제1 경로는 호스트 프로세서(200)와 메모리(110)를 연결하는 경로(L1)이다.
PIM 메모리 디바이스(100)는 호스트 프로세서(200)와 메모리(110)를 연결하는 경로(L1)를 통해 데이터 및 어드레스를 수신하고, 어드레스에 따라 지정된 메모리(110)에 데이터를 기록할 수 있다. PIM 메모리 디바이스(100)는 데이터를 처리하지 않고, 수신된 그대로 데이터를 메모리(110)에 저장한다. 이후 PIM 메모리 디바이스(100)는 호스트 프로세서(200)의 요청에 따라 메모리(110)로부터 데이터의 적어도 일부를 반환할 수 있다.
PIM 메모리 디바이스(100)는 제1 경로를 통해 데이터가 메모리(110)에 전달될 때, 정보 수집 유닛(120)으로 제2 경로를 통해 데이터를 전달할 수 있다(S1200). 제2 경로는 경로(L1)과 정보 수집 유닛(120)을 연결하는 경로(L2)이다.
PIM 메모리 디바이스(100)는 정보 수집 유닛(120)을 통해 데이터를 처리하여 소정의 정보를 생성하고 저장할 수 있다(S1300). 호스트 프로세서(200)는 사용자로부터 데이터로부터 정보를 생성할지 여부, 생성할 정보의 범위, 종류 등을 입력받을 수 있다. 호스트 프로세서(200)는 사용자로부터 입력 받은 사항들을 PIM 메모리 디바이스(100)로 전달할 수 있다. PIM 메모리 디바이스(100)는 사용자로부터 입력 받은 사항들을 정보 수집 유닛(120)의 레지스터에 저장하고, 사용자로부터 입력 받은 사항들에 따라 데이터로부터 소정의 정보를 생성할 수 있다.
PIM 메모리 디바이스(100)는 호스트 프로세서(200)의 요청에 따라, 정보 수집 유닛(120)으로부터 소정의 정보를 반환할 수 있다(S1400). 이로써, PIM 메모리 디바이스(100)는 정보 수집 유닛(120)을 통해 1회의 데이터 처리에 의해 정보를 미리 생성하고, 이후 호스트 프로세서(200)의 다수의 정보 판독 요청에 대해 추가적인 연산 없이 정보를 제공할 수 있다.
종래의 컴퓨팅 시스템은 메모리(110) 디바이스에 기입한 데이터로부터 정보를 생성하기 위해, 호스트 프로세서를 통해 메모리(110) 디바이스로부터 데이터를 판독한 이후, 호스트 프로세서에서 데이터를 처리하여 정보를 생성하는 단계들을 수행해야 한다.
반면, 본 개시에 따른 PIM 메모리 디바이스(100)를 포함하는 컴퓨팅 시스템(1000)에 따르면, 메모리(110)에 대한 추가적인 접근 없이 데이터로부터 정보를 생성할 수 있어, 수행 시간 및 에너지를 감소시킬 수 있다.
또, 정보 수집 유닛(120)은 종래의 메모리(110) 디바이스의 인터페이스를 변형하지 않고 메모리(110) 디바이스에 적용될 수 있어, 도입하기에 유리하다.
도 4는 일부 실시예에 따른 DRAM을 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 4를 참조하면, PIM 메모리 디바이스는 DRAM(300)이다. DRAM은 SDRAM, RDRAM, DDR SDRAM, LRDIMM 및 HBM 등 다양한 종류를 포함할 수 있으며, 도 4에서는 일반적인 DRAM의 기록 및 판독 경로에 정보 수집 유닛(320)을 적용한 것에 관해 설명한다.
도 1 내지 도 3을 통해 설명한 사항들은 도 4의 DRAM(300) 및 DRAM(300)을 포함하는 컴퓨팅 시스템(1100)에 적용될 수 있으며, 기 설명한 사항들과 동일한 내용은 생략될 수 있다.데이터-인 버퍼(340) 및 데이터-아웃 버퍼(350)는 메모리 버퍼의 일 종류이다. 데이터-인 버퍼는(340) 호스트 프로세서(200)로부터 뱅크 메모리 어레이(310)에 전달되는 데이터를 임시적으로 저장할 수 있다. 데이터 아웃 버퍼(350)는 뱅크 메모리 어레이(310)로부터 호스트 프로세서(200)로 전달되는 데이터를 임시적으로 저장할 수 있다.
DRAM(300)은 데이터-인 버퍼(340)와 연결된 경로(L1)를 통해 호스트 프로세서(200)로부터 데이터를 수신하고, 뱅크 메모리 어레이(310)에 기록할 수 있다. DRAM(300)은 데이터-아웃 버퍼(350)와 연결된 경로(L3)를 통해 뱅크 메모리 어레이(310)로부터 호스트 프로세서(200)로 데이터를 반환할 수 있다. 이 때, I/O 게이트(I/O Gating; 330)는 버퍼의 일종으로서, 판독 및 기록할 데이터를 임시로 보관한다.
DRAM(300)은 데이터-인 버퍼(340)와 연결된 경로(L2)를 통해 정보 수집 유닛(320)으로 데이터를 수신할 수 있다. DRAM(300)은 데이터-아웃 버퍼(350)와 연결된 경로(L4)를 통해 데이터로부터 생성된 소정의 정보를 정보 수집 유닛(320)으로부터 호스트 프로세서(200)로 반환할 수 있다.
도 5는 일부 실시예에 따른 LRDIMM를 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 5를 참조하면, PIM 메모리 디바이스는 LRDIMM(400)이다. LRDIMM(400)는 메모리 버퍼(450)를 포함한다. LRDIMM(400)는 랭크(Rank)에 의존하지 않고, 부하를 순차적으로 메모리 버퍼(450)에 나열함으로써 부하를 분산할 수 있다.
LRDIMM(400)은 DRAM의 일 종류인데, 도 5에서는 LRDIMM(400)의 메모리 버퍼(450)에 정보 수집 유닛(420)이 적용되는 것을 설명한다. 도 1 내지 도 3을 통해 설명한 사항들은 도 5의 LRDIMM(400) 및 LRDIMM(400)을 포함하는 컴퓨팅 시스템(1100)에 적용될 수 있으며, 기 설명한 사항들과 동일한 내용은 생략될 수 있다.
LRDIMM(400)은 경로(L1)를 통해 호스트 프로세서(200)로부터 메모리 칩(411, 412, 413, 414)에 데이터를 기록하거나, 메모리(110) 칩으로부터 데이터를 판독할 수 있다. LRDIMM(400)은 경로(L2)를 통해 정보 수집 유닛(420)에 데이터를 기록하거나, 정보 수집 유닛(420)으로부터 데이터를 처리하여 생성된 소정의 정보를 판독할 수 있다.
메모리 버퍼(450)는 호스트 프로세서(200)로부터 메모리 칩(411, 412, 413, 414)으로 전달되는 데이터를 임시로 저장할 수 있다. 정보 수집 유닛(420)은 메모리 버퍼(450)를 거쳐서 메모리 칩(411, 412, 413, 414)에 데이터가 전달될 때, 메모리 버퍼(450)로부터 데이터를 수신할 수 있다. 또, 정보 수집 유닛(420)은 데이터를 처리하여 생성한 정보를 메모리 버퍼(450)를 통해 호스트 프로세서(200)로 반환할 수 있다.
도 6은 일부 실시예에 따른 HBM을 포함하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 6을 참조하면, PIM 메모리 디바이스는 HBM(500)이다. HBM(500)은 DRAM의 일 종류인데, 도 6에서는 HBM(500)의 버퍼 다이(530)에 정보 수집 유닛(520)이 적용되는 것을 설명한다. 도 1 내지 도 3을 통해 설명한 사항들은 도 6의 HBM(500) 및 HBM(500)을 포함하는 컴퓨팅 시스템(1300)에 적용될 수 있으며, 기 설명한 사항들과 동일한 내용은 생략 될 수 있다.
HBM(500)은 메모리(510)를 포함하는 복수의 코어 다이(540)들을 적층하고, 코어 다이(540)의 실리콘을 관통하는 통로(Through Silicon Via; TSV)를 통해 메모리(110)와 호스트 프로세서(200) 간 통신을 수행할 수 있다. HBM(500)은 코어 다이(540)와 호스트 프로세서(200) 간 인터페이싱 역할을 수행하는 버퍼 다이(530)를 포함할 수 있다.
HBM(500)은 버퍼 다이(530) 내부의 경로(L1)를 통해 호스트 프로세서(200)로부터 데이터를 수신하고, 데이터를 코어 다이(540)로 전달할 수 있다. HBM(500)은 물리 계층(PHY; 532) 내 데이터를 병렬 형태로 변환하는 디시리얼라이저(DES; deserializer) 및 얼라인먼트(ALIGN)를 통해 호스트 프로세서(200)로부터 데이터를 수신할 수 있다
HBM(500)은 버퍼 다이(530) 내부의 경로(L3)를 통해 코어 다이(540)로부터 호스트 프로세서(200)로 데이터를 반환할 수 있다. HBM(500)은 물리 계층(PHY)의 FIFO 버퍼 및 데이터를 직렬 형태로 변환하는 시리얼라이저(SER; serializer)를 통해 코어 다이(540)로부터 호스트 프로세서(200)로 데이터를 전달할 수 있다
HBM(500)의 정보 수집 유닛(520)은 버퍼 다이(530)에 배치될 수 있다. HBM(500)은 경로(L1)와 연결되는 버퍼 다이(530) 내부의 경로(L2)를 통해 호스트 프로세서(200)로부터 수신한 데이터를 정보 수집 유닛(520)으로 전달할 수 있다. 경로(L2)는 데이터 흐름 방향을 기준으로 할 때 물리 계층 이후에 위치하는 경로(L1)의 일 지점에 연결될 수 있다.
HBM(500)은 경로(L3)과 연결되는 버퍼 다이(530) 내부의 경로(L4)를 통해 정보 수집 유닛(520)에서 데이터로부터 생성된 소정의 정보를 호스트 프로세서(200)로 전달할 수 있다. 경로(L4)는 데이터 흐름 방향을 기준으로 할 때 물리 계층 이전에 위치하는 경로(L3)의 일 지점에 연결될 수 있다.
한편, 전술한 PIM 메모리 디바이스(100)의 동작 방법은 그 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 기록될 수 있다. 컴퓨터로 읽을 수 있는 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (12)

  1. 외부의 호스트 프로세서로부터 제1 경로를 통해 데이터를 수신하는 메모리; 및
    상기 제1 경로를 통해 상기 데이터가 상기 메모리에 전달될 때, 상기 제1 경로와 연결된 제2 경로를 통해 상기 데이터를 수신하는 정보 수집 유닛(information gathering unit); 을 포함하고,
    상기 정보 수집 유닛은, 상기 제2 경로를 통해 수신한 상기 데이터를 처리하여 소정의 정보를 생성하는 것인,
    PIM(Processing In Memory) 메모리 디바이스.
  2. 제1 항에 있어서,
    상기 호스트 프로세서의 요청에 따라, 상기 메모리는 상기 데이터를 반환하고, 상기 정보 수집 유닛은 상기 소정의 정보를 반환하는 것인,
    PIM(Processing In Memory) 메모리 디바이스.
  3. 제2 항에 있어서,
    상기 호스트 프로세서의 요청에 따라, 상기 메모리는 상기 제1 경로를 통해 상기 데이터를 상기 호스트 프로세서로 반환하고,
    상기 정보 수집 유닛은 상기 제2 경로를 통해 상기 소정의 정보를 상기 호스트 프로세서로 반환하는 것인,
    PIM(Processing In Memory) 메모리 디바이스.
  4. 제2 항에 있어서,
    상기 호스트 프로세서의 요청에 따라, 상기 메모리는 제3 경로를 통해 상기 데이터를 상기 호스트 프로세서로 반환하고
    상기 정보 수집 유닛은 상기 제3 경로와 상기 정보 수집 유닛을 연결하는 제4 경로를 통해 상기 소정의 정보를 상기 호스트 프로세서로 반환하는
    PIM(Processing In Memory) 메모리 디바이스.
  5. 제1 항에 있어서,
    상기 PIM 메모리 디바이스는 상기 호스트 프로세서로부터 전달되는 상기 데이터를 일시적으로 저장하는 메모리 버퍼를 더 포함하고,
    상기 메모리 버퍼는 상기 제1 경로를 통해 상기 데이터를 상기 메모리로 전달하고, 상기 제2 경로를 통해 상기 데이터를 상기 정보 수집 유닛으로 전달하는
    PIM(Processing In Memory) 메모리 디바이스.
  6. 제1 항에 있어서,
    상기 정보 수집 유닛은
    상기 데이터를 처리하여 상기 소정의 정보를 생성하는 프로세서 및 상기 호스트 프로세서로부터 상기 소정의 정보에 관한 설정 사항들을 저장하는 적어도 하나의 레지스터를 포함하는
    PIM(Processing In Memory) 메모리 디바이스.
  7. 제6 항에 있어서,
    상기 정보 수집 유닛은,
    상기 설정 사항들에 따라, 상기 데이터로부터 상기 소정의 정보의 수집 여부를 저장하는 활성화 레지스터(Enabling register), 상기 소정의 정보를 수집하는 범위를 저장하는 범위 레지스터(Range register), 상기 소정의 정보의 종류를 저장하는 마스크 레지스터(Mask register) 및 생성된 상기 소정의 정보를 저장하는 정보 레지스터 파일(Information register file) 중 적어도 어느 하나를 포함하는
    PIM(Processing In Memory) 메모리 디바이스.
  8. 제1 항에 있어서,
    상기 PIM(Processing In Memory) 메모리 디바이스는 디램(DRAM), 고대역 메모리(HBM) 및 LRDIMM 중 어느 하나인,
    PIM(Processing In Memory) 메모리 디바이스.
  9. 호스트 프로세서; 및
    상기 호스트 프로세서로부터 데이터를 수신하는 메모리 및 상기 데이터를 수신하고, 상기 데이터를 처리하여 소정의 정보를 생성하는 정보 수집 유닛(information gathering unit)을 포함하는 PIM(Processing In Memory) 메모리 디바이스를 포함하고,
    상기 PIM 메모리 디바이스는 제1 경로를 통해 상기 메모리로 상기 데이터를 전달하고, 상기 제1 경로와 연결된 제2 경로를 통해 상기 정보 수집 유닛으로 상기 소정의 정보를 전달하고,
    상기 호스트 프로세서는 상기 PIM 메모리 디바이스에 상기 데이터 및 상기 소정의 정보 중 적어도 하나를 요청할 수 있고,
    상기 PIM 메모리 디바이스는 상기 데이터에 대한 요청에 응답하여 상기 메모리로부터 상기 데이터를 반환하고, 상기 소정의 정보에 대한 요청에 응답하여 상기 정보 수집 유닛으로부터 상기 소정의 정보를 반환하는
    컴퓨팅 시스템.
  10. 외부의 호스트 프로세서로부터 수신한 데이터를 제1 경로를 통해 메모리에 전달하는 단계;
    상기 제1 경로를 통해 상기 데이터가 상기 메모리에 전달될 때, 상기 제1 경로와 연결되는 제2 경로를 통해 정보 수집 유닛에 상기 데이터를 전달하는 단계; 및
    상기 정보 수집 유닛을 통해 상기 데이터를 처리하여 소정의 정보를 생성하는 단계를 포함하는
    PIM(Processing In Memory) 메모리 디바이스의 동작 방법.
  11. 제10 항에 있어서,
    상기 호스트 프로세서의 요청에 따라, 상기 메모리로부터 상기 데이터를 반환하거나, 상기 정보 수집 유닛으로부터 상기 소정의 정보를 반환하는 단계를 더 포함하는
    PIM(Processing In Memory) 메모리 디바이스의 동작 방법.
  12. 제10 항의 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020190178165A 2019-12-30 2019-12-30 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법 KR20210085284A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190178165A KR20210085284A (ko) 2019-12-30 2019-12-30 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법
US16/869,853 US11403239B2 (en) 2019-12-30 2020-05-08 PIM device, computing system including the PIM device, and operating method of the PIM device
US17/845,441 US11880317B2 (en) 2019-12-30 2022-06-21 PIM device, computing system including the PIM device, and operating method of the PIM device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190178165A KR20210085284A (ko) 2019-12-30 2019-12-30 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210085284A true KR20210085284A (ko) 2021-07-08

Family

ID=76547221

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190178165A KR20210085284A (ko) 2019-12-30 2019-12-30 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법

Country Status (2)

Country Link
US (2) US11403239B2 (ko)
KR (1) KR20210085284A (ko)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6909744B2 (en) * 1999-12-09 2005-06-21 Redrock Semiconductor, Inc. Processor architecture for compression and decompression of video and images
US7647376B1 (en) * 2001-07-26 2010-01-12 Mcafee, Inc. SPAM report generation system and method
US20050013181A1 (en) 2003-07-17 2005-01-20 Adelmann Todd C. Assisted memory device with integrated cache
US20050050269A1 (en) * 2003-08-27 2005-03-03 Horn Robert L. Method of collecting and tallying operational data using an integrated I/O controller in real time
JP4587756B2 (ja) * 2004-09-21 2010-11-24 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US20060217116A1 (en) * 2005-03-18 2006-09-28 Cassett Tia M Apparatus and methods for providing performance statistics on a wireless communication device
TWI360126B (en) 2006-09-28 2012-03-11 Sandisk Corp Nonvolatile memory with adaptive operations and me
US7805663B2 (en) 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US8375227B2 (en) * 2009-02-02 2013-02-12 Microsoft Corporation Abstracting programmatic representation of data storage systems
KR101606718B1 (ko) 2010-10-27 2016-03-28 엘에스아이 코포레이션 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들
TWI493341B (zh) * 2012-07-09 2015-07-21 Phison Electronics Corp 記憶體儲存裝置及其修復方法
US10185499B1 (en) * 2014-01-07 2019-01-22 Rambus Inc. Near-memory compute module
US9639275B2 (en) * 2014-08-06 2017-05-02 Seagate Technology Llc Managing data within a storage device based on file system metadata
WO2016205212A1 (en) * 2015-06-15 2016-12-22 The Regents Of The University Of California Subject assessment using localization, activity recognition and a smart questionnaire
US9842021B2 (en) * 2015-08-28 2017-12-12 Intel Corporation Memory device check bit read mode
US9997232B2 (en) * 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
KR20180122146A (ko) * 2017-05-02 2018-11-12 에스케이하이닉스 주식회사 열화를 보상하는 반도체 장치 및 이를 이용하는 반도체 시스템
US10949321B1 (en) * 2018-11-26 2021-03-16 Amazon Technologies, Inc. Operational management of a device
US11301167B2 (en) * 2019-05-16 2022-04-12 Intel Corporation Technologies for providing multiple tier memory media management
US20190294567A1 (en) * 2019-06-10 2019-09-26 Intel Corporation Technologies for adding computational ability to memory devices without changing media layers
KR20210034999A (ko) * 2019-09-23 2021-03-31 에스케이하이닉스 주식회사 Aim 장치 및 aim 장치에서의 곱셈-누산 연산 방법

Also Published As

Publication number Publication date
US20220318165A1 (en) 2022-10-06
US11403239B2 (en) 2022-08-02
US11880317B2 (en) 2024-01-23
US20210200696A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US11921638B2 (en) Flash-integrated high bandwidth memory appliance
US10545860B2 (en) Intelligent high bandwidth memory appliance
US10824341B2 (en) Flash-based accelerator and computing device including the same
JP6373559B2 (ja) メモリ装置及びメモリ装置の動作方法
US20230119291A1 (en) Isa extension for high-bandwidth memory
US10572389B2 (en) Cache control aware memory controller
US20140181427A1 (en) Compound Memory Operations in a Logic Layer of a Stacked Memory
US20090079748A1 (en) Apparatus, System, and Method For Graphics Memory Hub
US9792978B2 (en) Semiconductor memory device and memory system including the same
US20180115496A1 (en) Mechanisms to improve data locality for distributed gpus
US20130159812A1 (en) Memory architecture for read-modify-write operations
US10020036B2 (en) Address bit remapping scheme to reduce access granularity of DRAM accesses
KR20220127601A (ko) 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법
JP2018152112A (ja) メモリ装置及びメモリ装置の動作方法
US20240103755A1 (en) Data processing system and method for accessing heterogeneous memory system including processing unit
US11281397B2 (en) Stacked memory device performing function-in-memory (FIM) operation and method of operating the same
US11567690B2 (en) Semiconductor memory device and electronic system the same
US9792207B2 (en) Data storage in a mobile device with embedded mass storage device
KR20210085284A (ko) Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법
Khalifa et al. Memory controller architectures: A comparative study
US8856459B1 (en) Matrix for numerical comparison
Sudarshan et al. A critical assessment of dram-pim architectures-trends, challenges and solutions
KR102430982B1 (ko) 프로세싱부를 포함하는 이종 메모리 시스템을 억세스하는 데이터 처리 시스템 및 방법
US20170031633A1 (en) Method of operating object-oriented data storage device and method of operating system including the same
US11620120B1 (en) Configuration of secondary processors