KR20200046270A - 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 - Google Patents

상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 Download PDF

Info

Publication number
KR20200046270A
KR20200046270A KR1020180127171A KR20180127171A KR20200046270A KR 20200046270 A KR20200046270 A KR 20200046270A KR 1020180127171 A KR1020180127171 A KR 1020180127171A KR 20180127171 A KR20180127171 A KR 20180127171A KR 20200046270 A KR20200046270 A KR 20200046270A
Authority
KR
South Korea
Prior art keywords
memory
pim
processing
data
signal
Prior art date
Application number
KR1020180127171A
Other languages
English (en)
Other versions
KR102144185B1 (ko
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 KR1020180127171A priority Critical patent/KR102144185B1/ko
Priority to PCT/KR2019/001204 priority patent/WO2020085583A1/ko
Publication of KR20200046270A publication Critical patent/KR20200046270A/ko
Application granted granted Critical
Publication of KR102144185B1 publication Critical patent/KR102144185B1/ko

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

기존의 상용 메모리 버스를 변형 없이 이용하여 PIM을 운용 할 수 있는 방법 및 이 방법이 적용된 PIM 장치가 제공된다. 본 발명의 실시예에 따른 PIM(processing in memory) 장치는 데이터가 저장되는 메모리; 메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치; 주소, 데이터 및 명령을 수신하는 입출력 장치; 데이터에 대해 명령을 수행하는 연산 장치;를 포함하고, 입출력 장치는, address 신호를 통해, 목적 주소를 수신하고, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신할 수 있다.
이에 의해, 기존 컴퓨터 시스템의 하드웨어 및 소프트웨어의 수정 없이도, PIM을 구현할 수 있으며, 특히 PSRAM을 사용하는 모든 상용 마더보드(motherboard)에서 PIM을 사용할 수 있게 된다.

Description

상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치{Processing In Memory Device using a Conventional Memory Bus}
본 발명은 전통적인 컴퓨터 시스템과 호환 가능한 PIM(processing in memory; 프로세싱 인 메모리) 장치에 관한 것으로, 더욱 상세하게는 상용화된 메모리 버스를 이용한 PIM의 프로토콜, 패킷 구조, 운용 방법, 그리고 PIM 장치의 하드웨어 구조에 관한 것이다.
PIM에 대한 연구와 개발이 지속적으로 이루어짐에도 불구하고 PIM이 쉽게 상용화되지 못하는 이유는 기존 컴퓨터 시스템과의 호환성 문제를 가장 큰 원인으로 꼽을 수 있다. 기존 시스템과의 호환성 문제는 크게 하드웨어와 소프트웨어 측면으로 구분할 수 있으며 이를 극복하기 위해서는 하드웨어와 소프트웨어의 복합적인 접근 방법이 불가피한데, 이러한 접근 방법은 기존 시장을 설득하고 협력을 구해야만 실현 가능하다.
PIM과 기존 시스템과의 하드웨어적 호환성 문제는 기존 컴퓨터 시스템의 수직적 메모리 계층 구조(memory hierarchy)에서 야기된다. 오늘날 컴퓨터 시스템은 소형 임베디드(embedded) 시스템의 AP(application processor) 조차도 여러 계층의 캐시(cache)를 사용할 정도로 메모리 병목현상을 캐시에 의존하여 해결하기 때문에 앞으로도 프로세서가 캐시를 포기하는 일은 기대하기 힘들다. 하지만 캐시는 반복 접근하는 메모리 주소에 대해 이전에 접근했던 데이터를 참조하여 제공하는 방식인데, PIM은 동일한 주소에 접근하더라도 수행하는 operation에 따라서 쓰거나 읽는 데이터가 달라질 수 있다. 그러므로 PIM과 캐시를 함께 사용할 경우 자칫하면 cache consistency 문제, cache coherence 문제가 각각 혹은 동시에 발생하는 상황에 처해진다.
PIM을 사용하기에는 기존 메모리 버스 역시 걸림돌이 된다. 오늘날 대부분 시스템이 사용하는 메인 메모리 버스는 JEDEC 표준을 따르고 있다. 이러한 표준 메모리 버스는 read와 write의 응답시간이 일정한 fixed-latency 방식인데, 이에 반해 PIM은 read/write 동작 외에도 연산 명령을 처리하기 때문에 variable-latency 방식의 메모리 버스가 필요하다. 또한 기존 메모리 채널의 read/write, address, data 뿐만 아니라 PIM operation을 위한 정보를 훼손 없이 PIM에 전달할 수 있는 채널 역시 하드웨어적으로 마련되어야 한다.
PIM과 기존 시스템과의 소프트웨어적 호환성 문제는 운영체제의 메모리 관리에서 비롯된다. 오늘날 대부분의 운영체제는 가상 메모리를 사용하며 가상 메모리를 위한 virtual address는 프로세서의 MMU(memory management unit)를 통해 physical address로 사상(mapping) 되어 실제 물리 메모리에 접근된다(MMU를 가지고 있지 않은 프로세서를 사용하는 일부 시스템에서는 OS에서 MMU 기능을 수행함). 하지만, PIM의 연산 기능을 사용하기 위해서는 연산에 필요한 피연산자(operand)의 physical address를 명확하게 지시해야 하는데 소프트웨어에서 사용하는 virtual address는 non-contiguous하게 할당되는 페이지(page) 단위로 관리되기 때문에 이를 통해 모든 physical address를 정확하게 예측하는 것은 매우 어렵다.
지금까지 설명한 문제점들을 극복하기 위한 가장 좋은 방법은 PIM만을 위한 인터페이스를 개발하고 PIM을 사용하고자 하는 프로세서와 마더보드(motherboard), 주변 장치, 운영체제 등이 PIM을 사용할 수 있게 기술적 지원을 하는 것이다. 하지만 이러한 일은 앞서 언급했듯이 기존 시장을 설득하고 협력을 구해야 한다. HMC(hybrid memory cube)의 경우는 여러 제조사들과 연구그룹에 의해 기술적으로는 상용화 수준에 이르렀지만 인터페이스의 특수성으로 기존 시스템과 호환이 되지 않으며 이로 인해 HMC의 보편화에 대한 전망은 쉽게 내리기 어렵다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 기존의 상용 메모리 버스를 변형 없이 이용하여 PIM을 운용 할 수 있는 방법 및 이 방법이 적용된 PIM 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, PIM(processing in memory) 장치는 데이터가 저장되는 메모리; 메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치; 주소, 데이터 및 명령을 수신하는 입출력 장치; 데이터에 대해 명령을 수행하는 연산 장치;를 포함하고, 입출력 장치는, address 신호를 통해, 목적 주소를 수신하고, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신할 수 있다.
패킷의 길이는. 메모리 크기, 명령의 개수 및 데이터 워드의 크기에 의해 결정되는 것일 수 있다.
패킷은, 메모리의 write burst 프로토콜을 통해 데이터 write 동작과 동일하게 입출력 장치에 전달되는 것일 수 있다.
입출력 장치는, 수신한 패킷을 연산 장치가 처리 할 수 있는 제어 정보로 변경하여 연산 장치에 전달하는 것일 수 있다.
메모리 제어장치는, 연산 장치의 연산 결과를 메모리의 목적 주소에 저장하고, 저장된 연산 결과는, 읽기 프로토콜을 통해 시스템이 접근할 수 있는 것일 수 있다.
입출력 장치는, 연산 장치가 이전에 받은 명령을 처리중인 경우, 특정 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리는 것일 수 있다.
입출력 장치는, 연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것일 수 있다.
입출력 장치는, 대기 중인 다음 패킷이 있음을 알리기 위한 처리 대기 신호를 활성화시키는 것일 수 있다.
입출력 장치는, 대기 중인 다음 패킷을 수신하거나 특정 신호를 유효한 상태로 변경하면, 처리 대기 신호를 비활성화시키는 것일 수 있다.
한편, 본 발명의 다른 실시예에 따른, PIM(processing in memory) 방법은 입출력 장치가, address 신호를 통해, 목적 주소를 수신하는 단계; 입출력 장치가, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신하는 단계; 연산 장치가, 명령을 수행하는 단계; 메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함한다.
한편, 본 발명의 또다른 실시예에 따른, 컴퓨팅 시스템은 PIM(processing in memory) 장치; 및 PIM 장치에 데이터를 저장하는 시스템;를 포함하고, PIM 장치는, 데이터가 저장되는 메모리; 메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치; 주소, 데이터 및 명령을 수신하는 입출력 장치; 데이터에 대해 명령을 수행하는 연산 장치;를 포함하고, 입출력 장치는, address 신호를 통해, 목적 주소를 수신하고, DQ 신호를 통해, 연산 장치가 수행할 명령이 수록된 패킷을 수신할 수 있다.
한편, 본 발명의 또다른 실시예에 따른, PIM(processing in memory) 방법은 시스템이, address 신호를 통해, PIM(processing in memory) 장치의 입출력 장치에 목적 주소를 전송하는 단계; 시스템이, DQ 신호를 통해, PIM 장치의 입출력 장치에, PIM 장치의 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 전송하는 단계; PIM 장치의 연산 장치가, 명령을 수행하는 단계; PIM 장치의 메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 기존 컴퓨터 시스템의 하드웨어 및 소프트웨어의 수정 없이도, PIM을 구현할 수 있으며, 특히 PSRAM을 사용하는 모든 상용 마더보드(motherboard)에서 PIM을 사용할 수 있게 된다.
도 1은 PSRAM 4-word burst read operation,
도 2는 PSRAM 4-word burst write operation,
도 3은 PIM 장치의 하드웨어 구조에 대한 블록다이어그램,
도 4는 PIM 패킷 구조,
도 5는 PIM 패킷 전송 방법,
도 6은 처리 대기 중인 패킷의 목적 주소와 읽기/쓰기 명령어 보존을 위한 논리 회로,
도 7은 처리 대기 신호를 생성을 위한 논리 회로,
도 8은 본 발명의 실시예에 따른 PIM 장치의 프로토타입, 그리고,
도 9는 PIM과 CPU가 처리한 영상처리 결과를 비교한 표이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
본 발명의 실시예에서는, 상용 메모리 버스를 이용하는 PIM 장치를 제시한다. 구체적으로, 전통적인 컴퓨터 시스템과 호환 가능하도록 상용화된 메모리 버스를 이용한 PIM의 프로토콜, 패킷 구조, 운용 방법, 그리고 PIM 장치의 하드웨어 구조를 제안한다.
이를 위해, 본 발명의 실시예에서는, 기존의 상용 메모리인 PSRAM(pseudostatic random-access memory)의 프로토콜을 변형 없이 이용하여 PIM 인터페이스를 구현하고, PSRAM 버스를 그대로 이용할 수 있는 PIM 패킷(packet) 구조를 제안하며, PSRAM 버스를 이용하는 PIM 장치의 하드웨어 구조를 제시한다.
본 발명의 실시예에서는 JEDEC PSRAM(pseudostatic SRAM) 버스를 이용하는 PIM(processing in memory) 장치와 패킷 구조, 운용 방법을 제시한다. 본 발명의 실시예에 대한 이해를 돕기 위해, PSRAM과 PSRAM 버스의 특징을 우선 설명한다.
PSRAM은 refresh 회로와 address-decoder를 내장하고 있는 DRAM으로서 DRAM의 높은 집적도와 SRAM의 접근 용이성을 합친 메모리이다.
PSRAM은 read 혹은 write 동작 중 내부에서 refresh와 충돌이 발생할 수 있으며, 이러한 경우를 위해서 PSRAM 버스는 다른 DRAM 기반 메모리 버스가 고정 응답 지연(fixed latency) 버스 프로토콜을 사용하는 것과 달리 가변 응답 지연 방식(variable latency)의 버스 프로토콜을 사용한다.
가변 응답 지연 방식에 따른 read와 write의 정확한 타이밍을 제공하기 위하여 PSRAM 메모리 버스는 WAIT 신호를 사용하고 있으며, PSRAM 컨트롤러는 WAIT 신호의 상태에 따라 읽기 데이터를 읽거나 쓰기 데이터를 입력할 수 있다.
그 외에, burst length는 선택가능하며 WAIT 신호가 assert 된 후 DQ 신호가 유효한 데이터를 출력하기까지 지연시간도 선택가능하다. PSRAM 버스의 프로토콜은 도 1 및 2와 같다.
도 1과 2에서, ADV # 신호는 address가 유효한 구간을 알리며, CE #은 chip select 신호로 사용되고 WE #은 write enable 신호로 사용된다. DQ는 데이터 신호인데 양방향 버스(bi-directional bus) 이므로 OE # 신호를 통해 현재 DQ의 입·출력 방향을 결정한다.
WAIT신호는 PSRAM이 시스템으로 보내는 신호로써, 읽기 모드에서는 PSRAM이 요청받은 주소의 데이터를 출력하기 전에 WAIT 신호를 assert하여 DQ에서 출력되는 데이터가 유효함을 알린다. 쓰기 모드에서는 쓰기 데이터를 수신 할 준비가 되었을 때 PSRAM이 WAIT 신호를 assert하며 memory controller는 약속된 burst length와 타이밍에 맞게 쓰기 데이터를 전송한다.
본 발명의 실시예에 따른 PIM은 메모리의 기본적인 기능 측면에서는 PSRAM과 동일하다. DRAM을 core-memory로 사용하고 있고 address-decoder와 refresh 회로를 내장하고 있다. 여기에 추가로 몇 가지 연산기능을 제공한다. PIM 장치의 하드웨어 구조는 도 3과 같다.
본 발명의 일 실시예에 따른 PIM 장치는, 도 3에 도시된 바와 같이, 입출력 장치(110), 연산 장치(120), 메모리 제어장치(130) 및 DRAM(140)을 포함하여 구성된다.
DRAM(140)은 PIM의 내부 메모리로 사용되며 address decoding, refresh 등의 주요 DRAM 동작은 메모리 제어장치(130)에 의해 제어된다.
연산 장치(120)는 PIM의 입출력 장치(110)에서 받은 명령 코드를 수행하는데 메모리의 기본적인 동작과 연산 기능 등을 수행한다.
입출력 장치(110)는 PSRAM 버스 프로토콜에 의해 PIM 접근 패킷(packet)을 분해하여 연산 장치(120)가 처리할 수 있게 전달하고 그 결과를 응답해 준다.
본 발명의 실시예에서 제안하는 PIM은 상용 메모리 버스를 사용하기 때문에 몇 가지의 제어신호와 주소, 데이터 등의 신호만을 사용한다. 따라서 PIM에게 연산에 대한 명령을 전달하기 위해서는 기존 메모리 버스를 다른 방식으로 운용해야만 한다.
본 발명의 실시예에서 제안하는 PIM 패킷의 구조는 도 4와 같고, 이러한 PIM 패킷을 PSRAM 버스를 이용하여 전송하는 방법은 도 5와 같다.
PIM은 기본적인 메모리 기능과 연산 기능을 수행하며, 이러한 기능은 패킷의 명령 코드를 통해 특정 기능을 사용할 수 있다. 도 4에서, 목적 주소는 쓰기와 읽기 명령, 그리고 연산 명령의 결과를 적용할 주소로 사용된다. 명령 코드는 PIM 장치가 수행해야할 명령을 나타낸다.
PIM이 수행하는 연산 명령은 크게 R-type과 I-type으로 구분되는데, R-type의 명령을 수행할 시에는 피연산자 주소를 통해 연산에 필요한 데이터를 불러오며(recall), I-type 명령어는 패킷에 포함된 데이터 필드의 값을 피연산자로 사용한다.
명령 코드의 모든 기능은 목적 주소를 반드시 필요로 하며, 그 외의 연산 기능을 수행하기 위해서는 명령어의 종류에 따라 피연산자 주소와 데이터가 요구된다.
목적 주소는 모든 PIM 접근에 필요하므로 도 5와 같이 PSRAM 버스의 address 신호를 목적 주소로 그대로 사용한다. PIM 장치에 패킷을 전달하기 위해서는 DQ 신호를 사용하기 때문에, PIM의 읽기 명령을 제외한 모든 패킷은 PSRAM 버스의 쓰기 프로토콜을 사용한다.
PIM 패킷의 길이는 PIM 내부의 접근 가능한 메모리 크기, 명령어의 개수, 그리고 시스템의 데이터 워드(word) 크기에 의해 결정된다. 가령 64 MB 크기의 PIM, 64 개의 연산, 32-bit 워드를 가진 시스템이라면 PIM 패킷의 길이는 64 비트가 된다.
이러한 패킷은 PSRAM write burst 프로토콜을 통해 데이터 쓰기 동작과 동일하게 PIM에 전달된다. PIM 장치는 수신한 패킷을 도 3의 입출력 장치(110)에서 분석하여 연산 장치(120)가 처리 할 수 있는 제어 정보로 변경하여 전달한다.
모든 연산 명령은 PSRAM 버스의 쓰기 프로토콜에 의해 전달되기 때문에 연산 결과 역시 목적 주소에 적용되며, 이 값은 별도의 읽기 명령을 통해서 접근할 수 있다.
따라서 본 발명의 실시예에서 제안하는 PIM 읽기 명령은 PIM 패킷을 사용하지 않고 PSRAM 버스의 읽기 프로토콜을 그대로 사용한다. PIM 패킷을 처리하는 시간은 처리하는 명령어의 종류에 따라 달라지며, 특히 패킷 처리 중에 DRAM(140)의 reflash 동작과 중첩될 경우 처리 시간은 더욱 길어진다.
PSRAM 버스 프로토콜은 현재 PIM의 패킷 처리 과정에 대한 정보를 전혀 알 수 없기 때문에, 시스템이 PIM에게 연속적인 명령을 전달할 경우 일부 명령어가 제대로 수행되지 않을 수 있다.
본 발명의 실시예에서는 이러한 문제를 해결하고 명령어 전송의 신뢰성을 보장하기 위해 PSRAM 버스의 WAIT 신호를 이용한다. PIM은 이전에 받은 명령을 처리중일 때 WAIT 신호를 무효한 상태로 두고 다음 패킷을 처리할 준비가 되지 않았음을 알린다. 시스템이 읽기 요청을 할지라도 PIM은 WAIT 신호를 통해 시스템을 대기시킨다.
다만 목적 주소로 사용되는 Address 신호와 WE # 신호는 WAIT 신호와 상관없이 시스템에서 PIM으로 보내지므로 대기 중인 Address 신호와 WE # 신호는 보존해야 한다. 대기 중인 Address 신호와 WE # 신호를 보존하는 것은 도 3의 입출력 장치(110)에서 처리되며, 이를 위한 논리 회로는 도 6과 같다. 도 6은 처리 대기 중인 패킷의 목적 주소와 읽기/쓰기 명령어 보존을 위한 논리 회로이다.
뿐만 아니라 PIM이 하나의 패킷을 처리한 후에는 이미 대기 중인 다음 패킷이 있는지 여부를 알려야 한다. 이를 위해 입출력 장치(110)는 내부적으로 처리 대기 신호(pending flag)를 만들어 사용하며 처리 대기 신호를 만드는 논리 회로는 도 7과 같다. 도 7은 처리 대기 신호를 생성을 위한 논리 회로이다.
처리 대기 신호는 대기 중인 목적 주소와 읽기 및 쓰기 명령어가 있으면 active-high 상태를 유지하고, PIM이 대기 중인 패킷의 나머지를 수신하거나 읽기 요청의 응답을 위해 WAIT 신호를 유효한 상태로 만들면 처리 대기 신호를 active-low로 만들어 처리 대기 중인 패킷이 없음을 알린다.
본 발명의 실시예를 통해 개발한 PIM을 통해 512x512 크기의 24-bit 컬러사진을 median-filter 처리를 한 후 CPU가 처리한 결과와 비교를 해보았다. PIM이 사용되는 시스템은 external memory bus를 지원하는 임베디드 시스템을 사용하였는데, external memory bus가 PSRAM 버스를 지원한다. 사용하는 시스템의 프로세서는 ARM coretex-A9 기반의 AP를 사용하였으며 OS는 32-bit Linux 4.1.15를 사용하였다. External memory bus 역시 리눅스에서 가상 메모리로 관리 되는데, 시스템이 허용하는 최대 페이지 크기를 이용하여 PIM 주소 영역 전체를 한 번에 사상하고 주소의 offset 값을 통해 PIM의 물리 주소를 정확하게 예측하고 접근하였다.
처리 결과는 도 9와 같다. 도 9의 결과와 같이 동일한 알고리즘을 수행하였을 때 연산 결과는 CPU와 PIM이 동일하지만 처리 시간은 PIM을 이용하는 방식이 CPU의 처리 시간보다 20배 이상 향상된 것을 알 수 있다.
지금까지, 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치에 대해 바람직한 실시예를 들어 상세히 설명하였다.
본 발명의 실시예에서는, 기존 상용 메모리 버스를 이용할 수 있는 PIM 장치, PIM 패킷 구조 및 PIM 운용 방법을 제시하여, PIM을 사용하기 위해 기존 컴퓨터 시스템의 하드웨어 및 소프트웨어의 수정을 요구하지 않고, PSRAM을 사용하는 모든 상용 마더보드(motherboard)에서 PIM을 사용할 수 있도록 하였다.
한편, 본 명세서에서, address와 DQ 버스는 개념적인 이해를 위해 두 버스를 구분하여 표현하였다. 하지만 실제 DQ 버스의 운용은 (PSRAM 표준에 근거하여) 별도의 DQ 버스를 두지 않고, 양방향 버스(bi-directional bus)로 설정된 address 버스를 DQ와 호환하여 사용가능하며, 이때 주소와 데이터는 시차에 의한 MUX를 통해 구분함에 유념하여야 한다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 져서는 안될 것이다.
110 : 입출력 장치
120 : 연산 장치
130 : 메모리 제어장치
140 : DRAM

Claims (12)

  1. 데이터가 저장되는 메모리;
    메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치;
    주소, 데이터 및 명령을 수신하는 입출력 장치;
    데이터에 대해 명령을 수행하는 연산 장치;를 포함하고,
    입출력 장치는,
    address 신호를 통해, 목적 주소를 수신하고,
    DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신하는 것을 특징으로 하는 PIM(processing in memory) 장치.
  2. 청구항 1에 있어서,
    패킷의 길이는.
    메모리 크기, 명령의 개수 및 데이터 워드의 크기에 의해 결정되는 것을 특징으로 하는 PIM(processing in memory) 장치.
  3. 청구항 1에 있어서,
    패킷은,
    메모리의 write burst 프로토콜을 통해 데이터 write 동작과 동일하게 입출력 장치에 전달되는 것을 특징으로 하는 PIM(processing in memory) 장치.
  4. 청구항 3에 있어서,
    입출력 장치는,
    수신한 패킷을 연산 장치가 처리 할 수 있는 제어 정보로 변경하여 연산 장치에 전달하는 것을 특징으로 하는 PIM(processing in memory) 장치.
  5. 청구항 4에 있어서,
    메모리 제어장치는,
    연산 장치의 연산 결과를 메모리의 목적 주소에 저장하고,
    저장된 연산 결과는,
    읽기 프로토콜을 통해 시스템이 접근할 수 있는 것을 특징으로 하는 PIM(processing in memory) 장치.
  6. 청구항 1에 있어서,
    입출력 장치는,
    연산 장치가 이전에 받은 명령을 처리중인 경우, 특정 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리는 것을 특징으로 하는 PIM(processing in memory) 장치.
  7. 청구항 1에 있어서,
    입출력 장치는,
    연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것을 특징으로 하는 PIM(processing in memory) 장치.
  8. 청구항 7에 있어서,
    입출력 장치는,
    대기 중인 다음 패킷이 있음을 알리기 위한 처리 대기 신호를 활성화시키는 것을 특징으로 하는 PIM(processing in memory) 장치.
  9. 청구항 8에 있어서,
    입출력 장치는,
    대기 중인 다음 패킷을 수신하거나 특정 신호를 유효한 상태로 변경하면, 처리 대기 신호를 비활성화시키는 것을 특징으로 하는 PIM(processing in memory) 장치.
  10. 입출력 장치가, address 신호를 통해, 목적 주소를 수신하는 단계;
    입출력 장치가, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신하는 단계;
    연산 장치가, 명령을 수행하는 단계;
    메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함하는 것을 특징으로 하는 PIM(processing in memory) 방법.
  11. PIM(processing in memory) 장치; 및
    PIM 장치에 데이터를 저장하는 시스템;를 포함하고,
    PIM 장치는,
    데이터가 저장되는 메모리;
    메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치;
    주소, 데이터 및 명령을 수신하는 입출력 장치;
    데이터에 대해 명령을 수행하는 연산 장치;를 포함하고,
    입출력 장치는,
    address 신호를 통해, 목적 주소를 수신하고,
    DQ 신호를 통해, 연산 장치가 수행할 명령이 수록된 패킷을 수신하는 것을 특징으로 하는 컴퓨팅 시스템.
  12. 시스템이, address 신호를 통해, PIM(processing in memory) 장치의 입출력 장치에 목적 주소를 전송하는 단계;
    시스템이, DQ 신호를 통해, PIM 장치의 입출력 장치에, PIM 장치의 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 전송하는 단계;
    PIM 장치의 연산 장치가, 명령을 수행하는 단계;
    PIM 장치의 메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함하는 것을 특징으로 하는 PIM(processing in memory) 방법.
KR1020180127171A 2018-10-24 2018-10-24 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 KR102144185B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180127171A KR102144185B1 (ko) 2018-10-24 2018-10-24 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치
PCT/KR2019/001204 WO2020085583A1 (ko) 2018-10-24 2019-01-29 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180127171A KR102144185B1 (ko) 2018-10-24 2018-10-24 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치

Publications (2)

Publication Number Publication Date
KR20200046270A true KR20200046270A (ko) 2020-05-07
KR102144185B1 KR102144185B1 (ko) 2020-08-12

Family

ID=70331199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180127171A KR102144185B1 (ko) 2018-10-24 2018-10-24 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치

Country Status (2)

Country Link
KR (1) KR102144185B1 (ko)
WO (1) WO2020085583A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022010016A1 (ko) * 2020-07-10 2022-01-13 전자부품연구원 프로세싱인메모리의 읽고-쓰기-연산 명령어 처리 방법 및 장치
WO2022010015A1 (ko) * 2020-07-10 2022-01-13 전자부품연구원 프로세싱인메모리의 메모리 관리 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180042111A (ko) * 2016-10-14 2018-04-25 삼성전자주식회사 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼
KR101867219B1 (ko) * 2017-02-22 2018-06-12 연세대학교 산학협력단 동적 메모리 인터페이스에 기반하여 서로 다른 메모리 연산들을 처리하기 위한 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017065379A1 (ko) * 2015-10-16 2017-04-20 삼성전자 주식회사 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
US10162554B2 (en) * 2016-08-03 2018-12-25 Samsung Electronics Co., Ltd. System and method for controlling a programmable deduplication ratio for a memory system
KR101858597B1 (ko) * 2016-12-30 2018-05-17 한양대학교 산학협력단 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180042111A (ko) * 2016-10-14 2018-04-25 삼성전자주식회사 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼
KR101867219B1 (ko) * 2017-02-22 2018-06-12 연세대학교 산학협력단 동적 메모리 인터페이스에 기반하여 서로 다른 메모리 연산들을 처리하기 위한 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022010016A1 (ko) * 2020-07-10 2022-01-13 전자부품연구원 프로세싱인메모리의 읽고-쓰기-연산 명령어 처리 방법 및 장치
WO2022010015A1 (ko) * 2020-07-10 2022-01-13 전자부품연구원 프로세싱인메모리의 메모리 관리 방법 및 장치

Also Published As

Publication number Publication date
KR102144185B1 (ko) 2020-08-12
WO2020085583A1 (ko) 2020-04-30

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
JP6796304B2 (ja) 最終レベルキャッシュシステム及び対応する方法
TWI752620B (zh) 與記憶體類型相關的頁表
US9384132B2 (en) Emulated message signaled interrupts in a virtualization environment
EP2994837B1 (en) Multi-core page table sets of attribute fields
TWI752619B (zh) 存取儲存的元資料以識別儲存資料的記憶體裝置
JP7384806B2 (ja) 連動メモリデバイスに対するメモリ要求のスケジューリング
US9135177B2 (en) Scheme to escalate requests with address conflicts
US20130054896A1 (en) System memory controller having a cache
JP6710219B2 (ja) 統合プロセッサを備えたdram回路
US20210064535A1 (en) Memory system including heterogeneous memories, computer system including the memory system, and data management method thereof
JP2022548886A (ja) メモリ名前空間へデータをバインドするためのメモリシステム
US10866755B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
US20190138453A1 (en) Computer memory content movement
KR102144185B1 (ko) 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치
US8850159B2 (en) Method and system for latency optimized ATS usage
US20170153994A1 (en) Mass storage region with ram-disk access and dma access
US20240143508A1 (en) Ats pri support with implicit cache
WO2015153693A1 (en) Interface, interface methods, and systems for operating memory bus attached computing elements

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant