KR102144185B1 - Processing In Memory Device using a Conventional Memory Bus - Google Patents

Processing In Memory Device using a Conventional Memory Bus Download PDF

Info

Publication number
KR102144185B1
KR102144185B1 KR1020180127171A KR20180127171A KR102144185B1 KR 102144185 B1 KR102144185 B1 KR 102144185B1 KR 1020180127171 A KR1020180127171 A KR 1020180127171A KR 20180127171 A KR20180127171 A KR 20180127171A KR 102144185 B1 KR102144185 B1 KR 102144185B1
Authority
KR
South Korea
Prior art keywords
memory
pim
processing
signal
address
Prior art date
Application number
KR1020180127171A
Other languages
Korean (ko)
Other versions
KR20200046270A (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 KR1020180127171A priority Critical patent/KR102144185B1/en
Priority to PCT/KR2019/001204 priority patent/WO2020085583A1/en
Publication of KR20200046270A publication Critical patent/KR20200046270A/en
Application granted granted Critical
Publication of KR102144185B1 publication Critical patent/KR102144185B1/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output 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
    • 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

Abstract

기존의 상용 메모리 버스를 변형 없이 이용하여 PIM을 운용 할 수 있는 방법 및 이 방법이 적용된 PIM 장치가 제공된다. 본 발명의 실시예에 따른 PIM(processing in memory) 장치는 데이터가 저장되는 메모리; 메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치; 주소, 데이터 및 명령을 수신하는 입출력 장치; 데이터에 대해 명령을 수행하는 연산 장치;를 포함하고, 입출력 장치는, address 신호를 통해, 목적 주소를 수신하고, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신할 수 있다.
이에 의해, 기존 컴퓨터 시스템의 하드웨어 및 소프트웨어의 수정 없이도, PIM을 구현할 수 있으며, 특히 PSRAM을 사용하는 모든 상용 마더보드(motherboard)에서 PIM을 사용할 수 있게 된다.
A method of operating a PIM using an existing commercial memory bus without modification and a PIM device to which this method is applied are provided. A processing in memory (PIM) device according to an embodiment of the present invention includes a memory for storing data; A memory control device that reads and writes data from a corresponding address in the memory; An input/output device for receiving an address, data, and command; Including, the input/output device receives a destination address through an address signal, and receives a packet including a command to be executed by the computing device, an operand address, and data through the DQ signal. can do.
Accordingly, PIM can be implemented without modification of hardware and software of the existing computer system, and in particular, PIM can be used in all commercial motherboards using PSRAM.

Description

상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치{Processing In Memory Device using a Conventional Memory Bus}Processing In Memory Device using a Conventional Memory Bus}

본 발명은 전통적인 컴퓨터 시스템과 호환 가능한 PIM(processing in memory; 프로세싱 인 메모리) 장치에 관한 것으로, 더욱 상세하게는 상용화된 메모리 버스를 이용한 PIM의 프로토콜, 패킷 구조, 운용 방법, 그리고 PIM 장치의 하드웨어 구조에 관한 것이다.The present invention relates to a PIM (processing in memory) device compatible with a traditional computer system, and more particularly, a PIM protocol using a commercially available memory bus, a packet structure, an operation method, and a hardware structure of the PIM device. About.

PIM에 대한 연구와 개발이 지속적으로 이루어짐에도 불구하고 PIM이 쉽게 상용화되지 못하는 이유는 기존 컴퓨터 시스템과의 호환성 문제를 가장 큰 원인으로 꼽을 수 있다. 기존 시스템과의 호환성 문제는 크게 하드웨어와 소프트웨어 측면으로 구분할 수 있으며 이를 극복하기 위해서는 하드웨어와 소프트웨어의 복합적인 접근 방법이 불가피한데, 이러한 접근 방법은 기존 시장을 설득하고 협력을 구해야만 실현 가능하다.The reason why PIM is not easily commercialized despite the continuous research and development of PIM is the problem of compatibility with existing computer systems as the biggest cause. The compatibility problem with the existing system can be largely divided into hardware and software aspects. To overcome this, a complex approach of hardware and software is inevitable, and this approach can only be realized by persuading the existing market and seeking cooperation.

PIM과 기존 시스템과의 하드웨어적 호환성 문제는 기존 컴퓨터 시스템의 수직적 메모리 계층 구조(memory hierarchy)에서 야기된다. 오늘날 컴퓨터 시스템은 소형 임베디드(embedded) 시스템의 AP(application processor) 조차도 여러 계층의 캐시(cache)를 사용할 정도로 메모리 병목현상을 캐시에 의존하여 해결하기 때문에 앞으로도 프로세서가 캐시를 포기하는 일은 기대하기 힘들다. 하지만 캐시는 반복 접근하는 메모리 주소에 대해 이전에 접근했던 데이터를 참조하여 제공하는 방식인데, PIM은 동일한 주소에 접근하더라도 수행하는 operation에 따라서 쓰거나 읽는 데이터가 달라질 수 있다. 그러므로 PIM과 캐시를 함께 사용할 경우 자칫하면 cache consistency 문제, cache coherence 문제가 각각 혹은 동시에 발생하는 상황에 처해진다.The hardware compatibility problem between PIM and existing systems is caused by the vertical memory hierarchy of the existing computer system. Today's computer systems rely on caches to solve memory bottlenecks so that even small embedded system application processors (APs) use multiple layers of cache, so it is hard to expect that processors will give up cache in the future. However, the cache is a method of providing a memory address that is repeatedly accessed by referring to previously accessed data. In PIM, even if the same address is accessed, the data to be written or read may vary depending on the operation being performed. Therefore, when PIM and cache are used together, a cache consistency problem and cache coherence problem occur individually or simultaneously.

PIM을 사용하기에는 기존 메모리 버스 역시 걸림돌이 된다. 오늘날 대부분 시스템이 사용하는 메인 메모리 버스는 JEDEC 표준을 따르고 있다. 이러한 표준 메모리 버스는 read와 write의 응답시간이 일정한 fixed-latency 방식인데, 이에 반해 PIM은 read/write 동작 외에도 연산 명령을 처리하기 때문에 variable-latency 방식의 메모리 버스가 필요하다. 또한 기존 메모리 채널의 read/write, address, data 뿐만 아니라 PIM operation을 위한 정보를 훼손 없이 PIM에 전달할 수 있는 채널 역시 하드웨어적으로 마련되어야 한다.Existing memory buses are also an obstacle to using PIM. The main memory bus used by most systems today follows the JEDEC standard. This standard memory bus is a fixed-latency method with a constant response time for read and write. On the other hand, a variable-latency memory bus is required because PIM processes operation instructions in addition to read/write operations. In addition, a channel capable of transmitting not only read/write, address, and data of the existing memory channel, but also information for PIM operation to the PIM without damage, must be prepared in hardware.

PIM과 기존 시스템과의 소프트웨어적 호환성 문제는 운영체제의 메모리 관리에서 비롯된다. 오늘날 대부분의 운영체제는 가상 메모리를 사용하며 가상 메모리를 위한 virtual address는 프로세서의 MMU(memory management unit)를 통해 physical address로 사상(mapping) 되어 실제 물리 메모리에 접근된다(MMU를 가지고 있지 않은 프로세서를 사용하는 일부 시스템에서는 OS에서 MMU 기능을 수행함). 하지만, PIM의 연산 기능을 사용하기 위해서는 연산에 필요한 피연산자(operand)의 physical address를 명확하게 지시해야 하는데 소프트웨어에서 사용하는 virtual address는 non-contiguous하게 할당되는 페이지(page) 단위로 관리되기 때문에 이를 통해 모든 physical address를 정확하게 예측하는 것은 매우 어렵다. The problem of software compatibility between PIM and existing systems stems from the memory management of the operating system. Most operating systems today use virtual memory, and a virtual address for virtual memory is mapped to a physical address through the processor's memory management unit (MMU) to access the real physical memory (a processor that does not have an MMU is used. In some systems, the OS performs the MMU function). However, in order to use the operation function of PIM, the physical address of the operand required for the operation must be clearly indicated, but the virtual address used in the software is managed in a non-contiguous allocated page unit. It is very difficult to accurately predict all physical addresses.

지금까지 설명한 문제점들을 극복하기 위한 가장 좋은 방법은 PIM만을 위한 인터페이스를 개발하고 PIM을 사용하고자 하는 프로세서와 마더보드(motherboard), 주변 장치, 운영체제 등이 PIM을 사용할 수 있게 기술적 지원을 하는 것이다. 하지만 이러한 일은 앞서 언급했듯이 기존 시장을 설득하고 협력을 구해야 한다. HMC(hybrid memory cube)의 경우는 여러 제조사들과 연구그룹에 의해 기술적으로는 상용화 수준에 이르렀지만 인터페이스의 특수성으로 기존 시스템과 호환이 되지 않으며 이로 인해 HMC의 보편화에 대한 전망은 쉽게 내리기 어렵다.The best way to overcome the problems described so far is to develop an interface only for PIM, and provide technical support so that the processor, motherboard, peripheral device, operating system, etc. that intend to use PIM can use PIM. However, this requires persuading the existing market and seeking cooperation, as mentioned earlier. In the case of HMC (hybrid memory cube), it has reached the level of technical commercialization by various manufacturers and research groups, but due to the peculiarity of the interface, it is not compatible with the existing system.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 기존의 상용 메모리 버스를 변형 없이 이용하여 PIM을 운용 할 수 있는 방법 및 이 방법이 적용된 PIM 장치를 제공함에 있다.The present invention has been conceived to solve the above problems, and an object of the present invention is to provide a method for operating a PIM using an existing commercial memory bus without modification, and a PIM device to which the method is applied.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, PIM(processing in memory) 장치는 데이터가 저장되는 메모리; 메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치; 주소, 데이터 및 명령을 수신하는 입출력 장치; 데이터에 대해 명령을 수행하는 연산 장치;를 포함하고, 입출력 장치는, address 신호를 통해, 목적 주소를 수신하고, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신할 수 있다.According to an embodiment of the present invention for achieving the above object, a PIM (processing in memory) device includes a memory in which data is stored; A memory control device that reads and writes data from a corresponding address in the memory; An input/output device for receiving an address, data, and command; Including, the input/output device receives a destination address through an address signal, and receives a packet including a command to be executed by the computing device, an operand address, and data through the DQ signal. can do.

패킷의 길이는. 메모리 크기, 명령의 개수 및 데이터 워드의 크기에 의해 결정되는 것일 수 있다. The length of the packet is. It may be determined by the memory size, the number of instructions, and the size of data words.

패킷은, 메모리의 write burst 프로토콜을 통해 데이터 write 동작과 동일하게 입출력 장치에 전달되는 것일 수 있다.The packet may be transmitted to the input/output device in the same manner as a data write operation through a write burst protocol of a memory.

입출력 장치는, 수신한 패킷을 연산 장치가 처리 할 수 있는 제어 정보로 변경하여 연산 장치에 전달하는 것일 수 있다.The input/output device may change the received packet into control information that can be processed by the computing device and transmit it to the computing device.

메모리 제어장치는, 연산 장치의 연산 결과를 메모리의 목적 주소에 저장하고, 저장된 연산 결과는, 읽기 프로토콜을 통해 시스템이 접근할 수 있는 것일 수 있다.The memory control device may store an operation result of the operation device in a destination address of a memory, and the stored operation result may be accessible to the system through a read protocol.

입출력 장치는, 연산 장치가 이전에 받은 명령을 처리중인 경우, 특정 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리는 것일 수 있다.The input/output device may indicate that the processing device is not ready to process the next packet by leaving a specific signal in an invalid state when the processing device is processing a previously received command.

입출력 장치는, 연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것일 수 있다.The input/output device may store and wait for an address signal and a WE signal received when the processing device is processing a command previously received.

입출력 장치는, 대기 중인 다음 패킷이 있음을 알리기 위한 처리 대기 신호를 활성화시키는 것일 수 있다.The input/output device may activate a processing waiting signal for notifying that there is a next packet waiting.

입출력 장치는, 대기 중인 다음 패킷을 수신하거나 특정 신호를 유효한 상태로 변경하면, 처리 대기 신호를 비활성화시키는 것일 수 있다.The input/output device may deactivate the processing waiting signal when receiving the next packet waiting or changing a specific signal to a valid state.

한편, 본 발명의 다른 실시예에 따른, PIM(processing in memory) 방법은 입출력 장치가, address 신호를 통해, 목적 주소를 수신하는 단계; 입출력 장치가, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신하는 단계; 연산 장치가, 명령을 수행하는 단계; 메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함한다. On the other hand, according to another embodiment of the present invention, a PIM (processing in memory) method includes: receiving, by an input/output device, a destination address through an address signal; Receiving, by the input/output device, a packet including a command to be executed by the computing device, an operand address, and data through the DQ signal; Performing, by the computing device, an instruction; And storing, by the memory control device, a result of executing the command in a memory.

한편, 본 발명의 또다른 실시예에 따른, 컴퓨팅 시스템은 PIM(processing in memory) 장치; 및 PIM 장치에 데이터를 저장하는 시스템;를 포함하고, PIM 장치는, 데이터가 저장되는 메모리; 메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치; 주소, 데이터 및 명령을 수신하는 입출력 장치; 데이터에 대해 명령을 수행하는 연산 장치;를 포함하고, 입출력 장치는, address 신호를 통해, 목적 주소를 수신하고, DQ 신호를 통해, 연산 장치가 수행할 명령이 수록된 패킷을 수신할 수 있다. Meanwhile, according to another embodiment of the present invention, a computing system includes a processing in memory (PIM) device; And a system for storing data in the PIM device, wherein the PIM device includes: a memory for storing data; A memory control device that reads and writes data from a corresponding address in the memory; An input/output device for receiving an address, data, and command; Including, the input/output device may receive a destination address through an address signal and a packet including an instruction to be executed by the computing device through a DQ signal.

한편, 본 발명의 또다른 실시예에 따른, PIM(processing in memory) 방법은 시스템이, address 신호를 통해, PIM(processing in memory) 장치의 입출력 장치에 목적 주소를 전송하는 단계; 시스템이, DQ 신호를 통해, PIM 장치의 입출력 장치에, PIM 장치의 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 전송하는 단계; PIM 장치의 연산 장치가, 명령을 수행하는 단계; PIM 장치의 메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함한다.On the other hand, according to another embodiment of the present invention, a PIM (processing in memory) method includes: transmitting, by a system, a destination address to an input/output device of a PIM (processing in memory) device; Transmitting, by the system, to an input/output device of the PIM device through a DQ signal, a packet including a command to be executed by the computing device of the PIM device, an operand address, and data; The operation device of the PIM device, performing an instruction; And storing, by the memory control device of the PIM device, a result of executing the command in the memory.

이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 기존 컴퓨터 시스템의 하드웨어 및 소프트웨어의 수정 없이도, PIM을 구현할 수 있으며, 특히 PSRAM을 사용하는 모든 상용 마더보드(motherboard)에서 PIM을 사용할 수 있게 된다.As described above, according to embodiments of the present invention, PIM can be implemented without modification of hardware and software of an existing computer system, and in particular, PIM can be used in all commercial motherboards using PSRAM. .

도 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가 처리한 영상처리 결과를 비교한 표이다.
1 is a PSRAM 4-word burst read operation,
2 is a PSRAM 4-word burst write operation,
3 is a block diagram of a hardware structure of a PIM device;
4 is a PIM packet structure,
5 is a PIM packet transmission method,
6 is a logic circuit for preserving a destination address and a read/write command of a packet waiting to be processed;
7 is a logic circuit for generating a signal to be processed,
8 is a prototype of a PIM device according to an embodiment of the present invention, and,
9 is a table comparing image processing results processed by PIM and CPU.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, the present invention will be described in more detail with reference to the drawings.

본 발명의 실시예에서는, 상용 메모리 버스를 이용하는 PIM 장치를 제시한다. 구체적으로, 전통적인 컴퓨터 시스템과 호환 가능하도록 상용화된 메모리 버스를 이용한 PIM의 프로토콜, 패킷 구조, 운용 방법, 그리고 PIM 장치의 하드웨어 구조를 제안한다.In an embodiment of the present invention, a PIM device using a commercial memory bus is presented. Specifically, we propose a PIM protocol, a packet structure, an operation method, and a hardware structure of a PIM device using a commercially available memory bus to be compatible with a traditional computer system.

이를 위해, 본 발명의 실시예에서는, 기존의 상용 메모리인 PSRAM(pseudostatic random-access memory)의 프로토콜을 변형 없이 이용하여 PIM 인터페이스를 구현하고, PSRAM 버스를 그대로 이용할 수 있는 PIM 패킷(packet) 구조를 제안하며, PSRAM 버스를 이용하는 PIM 장치의 하드웨어 구조를 제시한다.To this end, in an embodiment of the present invention, a PIM interface is implemented using a protocol of a conventional pseudostatic random-access memory (PSRAM), which is a conventional memory, without modification, and a PIM packet structure capable of using the PSRAM bus as it is. It proposes a hardware structure of a PIM device using a PSRAM bus.

본 발명의 실시예에서는 JEDEC PSRAM(pseudostatic SRAM) 버스를 이용하는 PIM(processing in memory) 장치와 패킷 구조, 운용 방법을 제시한다. 본 발명의 실시예에 대한 이해를 돕기 위해, PSRAM과 PSRAM 버스의 특징을 우선 설명한다.In an embodiment of the present invention, a PIM (processing in memory) device using a JEDEC pseudostatic SRAM (PSRAM) bus, a packet structure, and an operation method are provided. To aid in understanding the embodiments of the present invention, features of the PSRAM and the PSRAM bus will be first described.

PSRAM은 refresh 회로와 address-decoder를 내장하고 있는 DRAM으로서 DRAM의 높은 집적도와 SRAM의 접근 용이성을 합친 메모리이다.PSRAM is a DRAM that incorporates a refresh circuit and an address-decoder, and is a memory that combines the high integration of DRAM and the ease of access of SRAM.

PSRAM은 read 혹은 write 동작 중 내부에서 refresh와 충돌이 발생할 수 있으며, 이러한 경우를 위해서 PSRAM 버스는 다른 DRAM 기반 메모리 버스가 고정 응답 지연(fixed latency) 버스 프로토콜을 사용하는 것과 달리 가변 응답 지연 방식(variable latency)의 버스 프로토콜을 사용한다.During read or write operation of PSRAM, refreshes and collisions may occur internally. For this case, PSRAM bus is a variable response delay method, unlike other DRAM-based memory buses that use a fixed latency bus protocol. latency) of the bus protocol.

가변 응답 지연 방식에 따른 read와 write의 정확한 타이밍을 제공하기 위하여 PSRAM 메모리 버스는 WAIT 신호를 사용하고 있으며, PSRAM 컨트롤러는 WAIT 신호의 상태에 따라 읽기 데이터를 읽거나 쓰기 데이터를 입력할 수 있다.In order to provide accurate timing of read and write according to the variable response delay method, the PSRAM memory bus uses WAIT signals, and the PSRAM controller can read read data or input write data according to the state of the WAIT signal.

그 외에, burst length는 선택가능하며 WAIT 신호가 assert 된 후 DQ 신호가 유효한 데이터를 출력하기까지 지연시간도 선택가능하다. PSRAM 버스의 프로토콜은 도 1 및 2와 같다.In addition, the burst length is selectable, and the delay time between the DQ signal outputting valid data after the WAIT signal is asserted is also selectable. The protocol of the PSRAM bus is shown in Figs. 1 and 2.

도 1과 2에서, ADV # 신호는 address가 유효한 구간을 알리며, CE #은 chip select 신호로 사용되고 WE #은 write enable 신호로 사용된다. DQ는 데이터 신호인데 양방향 버스(bi-directional bus) 이므로 OE # 신호를 통해 현재 DQ의 입·출력 방향을 결정한다.In Figures 1 and 2, the ADV # signal indicates a valid address period, and CE # is used as a chip select signal and WE # is used as a write enable signal. DQ is a data signal, but since it is a bi-directional bus, the input/output direction of the current DQ is determined through the OE # signal.

WAIT신호는 PSRAM이 시스템으로 보내는 신호로써, 읽기 모드에서는 PSRAM이 요청받은 주소의 데이터를 출력하기 전에 WAIT 신호를 assert하여 DQ에서 출력되는 데이터가 유효함을 알린다. 쓰기 모드에서는 쓰기 데이터를 수신 할 준비가 되었을 때 PSRAM이 WAIT 신호를 assert하며 memory controller는 약속된 burst length와 타이밍에 맞게 쓰기 데이터를 전송한다.The WAIT signal is a signal sent from the PSRAM to the system. In the read mode, the WAIT signal is asserted before the PSRAM outputs the requested address data, indicating that the data output from the DQ is valid. In write mode, the PSRAM asserts a WAIT signal when it is ready to receive write data, and the memory controller transmits the write data according to the promised burst length and timing.

본 발명의 실시예에 따른 PIM은 메모리의 기본적인 기능 측면에서는 PSRAM과 동일하다. DRAM을 core-memory로 사용하고 있고 address-decoder와 refresh 회로를 내장하고 있다. 여기에 추가로 몇 가지 연산기능을 제공한다. PIM 장치의 하드웨어 구조는 도 3과 같다.The PIM according to an embodiment of the present invention is the same as the PSRAM in terms of basic functions of a memory. DRAM is used as a core-memory and has built-in address-decoder and refresh circuit. In addition, it provides some computational functions. The hardware structure of the PIM device is shown in FIG. 3.

본 발명의 일 실시예에 따른 PIM 장치는, 도 3에 도시된 바와 같이, 입출력 장치(110), 연산 장치(120), 메모리 제어장치(130) 및 DRAM(140)을 포함하여 구성된다.A PIM device according to an embodiment of the present invention, as shown in FIG. 3, includes an input/output device 110, an operation device 120, a memory control device 130, and a DRAM 140.

DRAM(140)은 PIM의 내부 메모리로 사용되며 address decoding, refresh 등의 주요 DRAM 동작은 메모리 제어장치(130)에 의해 제어된다.The DRAM 140 is used as an internal memory of the PIM, and major DRAM operations such as address decoding and refresh are controlled by the memory control device 130.

연산 장치(120)는 PIM의 입출력 장치(110)에서 받은 명령 코드를 수행하는데 메모리의 기본적인 동작과 연산 기능 등을 수행한다.The computing device 120 executes a command code received from the input/output device 110 of the PIM, and performs basic operations and calculation functions of the memory.

입출력 장치(110)는 PSRAM 버스 프로토콜에 의해 PIM 접근 패킷(packet)을 분해하여 연산 장치(120)가 처리할 수 있게 전달하고 그 결과를 응답해 준다.The input/output device 110 decomposes the PIM access packet according to the PSRAM bus protocol, transmits it so that the computing device 120 can process it, and responds with the result.

본 발명의 실시예에서 제안하는 PIM은 상용 메모리 버스를 사용하기 때문에 몇 가지의 제어신호와 주소, 데이터 등의 신호만을 사용한다. 따라서 PIM에게 연산에 대한 명령을 전달하기 위해서는 기존 메모리 버스를 다른 방식으로 운용해야만 한다.Since the PIM proposed in the embodiment of the present invention uses a commercial memory bus, only some control signals and signals such as addresses and data are used. Therefore, in order to transmit an operation instruction to the PIM, the existing memory bus must be operated in a different way.

본 발명의 실시예에서 제안하는 PIM 패킷의 구조는 도 4와 같고, 이러한 PIM 패킷을 PSRAM 버스를 이용하여 전송하는 방법은 도 5와 같다. The structure of a PIM packet proposed in an embodiment of the present invention is shown in FIG. 4, and a method of transmitting the PIM packet using a PSRAM bus is shown in FIG.

PIM은 기본적인 메모리 기능과 연산 기능을 수행하며, 이러한 기능은 패킷의 명령 코드를 통해 특정 기능을 사용할 수 있다. 도 4에서, 목적 주소는 쓰기와 읽기 명령, 그리고 연산 명령의 결과를 적용할 주소로 사용된다. 명령 코드는 PIM 장치가 수행해야할 명령을 나타낸다. PIM performs basic memory functions and operation functions, and these functions can be used for specific functions through instruction codes of packets. In FIG. 4, the destination address is used as an address to which the result of a write and read command and an operation command is applied. The command code represents the command to be executed by the PIM device.

PIM이 수행하는 연산 명령은 크게 R-type과 I-type으로 구분되는데, R-type의 명령을 수행할 시에는 피연산자 주소를 통해 연산에 필요한 데이터를 불러오며(recall), I-type 명령어는 패킷에 포함된 데이터 필드의 값을 피연산자로 사용한다.The operation instructions executed by PIM are largely divided into R-type and I-type. When executing R-type instructions, data necessary for operation is retrieved through the operand address (recall), and the I-type instruction is a packet The value of the data field included in is used as an operand.

명령 코드의 모든 기능은 목적 주소를 반드시 필요로 하며, 그 외의 연산 기능을 수행하기 위해서는 명령어의 종류에 따라 피연산자 주소와 데이터가 요구된다.All functions of the instruction code require a destination address, and operand addresses and data are required according to the type of instruction to perform other operation functions.

목적 주소는 모든 PIM 접근에 필요하므로 도 5와 같이 PSRAM 버스의 address 신호를 목적 주소로 그대로 사용한다. PIM 장치에 패킷을 전달하기 위해서는 DQ 신호를 사용하기 때문에, PIM의 읽기 명령을 제외한 모든 패킷은 PSRAM 버스의 쓰기 프로토콜을 사용한다.Since the destination address is required for all PIM access, the address signal of the PSRAM bus is used as the destination address as shown in FIG. 5. Since the DQ signal is used to transmit the packet to the PIM device, all packets except the read command of the PIM use the write protocol of the PSRAM bus.

PIM 패킷의 길이는 PIM 내부의 접근 가능한 메모리 크기, 명령어의 개수, 그리고 시스템의 데이터 워드(word) 크기에 의해 결정된다. 가령 64 MB 크기의 PIM, 64 개의 연산, 32-bit 워드를 가진 시스템이라면 PIM 패킷의 길이는 64 비트가 된다.The length of the PIM packet is determined by the size of the accessible memory inside the PIM, the number of instructions, and the size of the system's data words. For example, in a system with 64 MB of PIM, 64 operations, and 32-bit words, the length of the PIM packet is 64 bits.

이러한 패킷은 PSRAM write burst 프로토콜을 통해 데이터 쓰기 동작과 동일하게 PIM에 전달된다. PIM 장치는 수신한 패킷을 도 3의 입출력 장치(110)에서 분석하여 연산 장치(120)가 처리 할 수 있는 제어 정보로 변경하여 전달한다.These packets are delivered to the PIM in the same way as data write operations through the PSRAM write burst protocol. The PIM device analyzes the received packet by the input/output device 110 of FIG. 3, converts the received packet into control information that can be processed by the computing device 120, and transmits it.

모든 연산 명령은 PSRAM 버스의 쓰기 프로토콜에 의해 전달되기 때문에 연산 결과 역시 목적 주소에 적용되며, 이 값은 별도의 읽기 명령을 통해서 접근할 수 있다.Since all operation commands are transmitted by the write protocol of the PSRAM bus, the operation result is also applied to the destination address, and this value can be accessed through a separate read command.

따라서 본 발명의 실시예에서 제안하는 PIM 읽기 명령은 PIM 패킷을 사용하지 않고 PSRAM 버스의 읽기 프로토콜을 그대로 사용한다. PIM 패킷을 처리하는 시간은 처리하는 명령어의 종류에 따라 달라지며, 특히 패킷 처리 중에 DRAM(140)의 reflash 동작과 중첩될 경우 처리 시간은 더욱 길어진다. Therefore, the PIM read command proposed in the embodiment of the present invention does not use the PIM packet but uses the read protocol of the PSRAM bus as it is. The processing time of the PIM packet varies depending on the type of the command to be processed. In particular, the processing time becomes longer when overlapping with the reflash operation of the DRAM 140 during packet processing.

PSRAM 버스 프로토콜은 현재 PIM의 패킷 처리 과정에 대한 정보를 전혀 알 수 없기 때문에, 시스템이 PIM에게 연속적인 명령을 전달할 경우 일부 명령어가 제대로 수행되지 않을 수 있다.Since the PSRAM bus protocol does not know at all information on the packet processing process of the current PIM, some commands may not be properly executed when the system transmits consecutive commands to the PIM.

본 발명의 실시예에서는 이러한 문제를 해결하고 명령어 전송의 신뢰성을 보장하기 위해 PSRAM 버스의 WAIT 신호를 이용한다. PIM은 이전에 받은 명령을 처리중일 때 WAIT 신호를 무효한 상태로 두고 다음 패킷을 처리할 준비가 되지 않았음을 알린다. 시스템이 읽기 요청을 할지라도 PIM은 WAIT 신호를 통해 시스템을 대기시킨다.In an embodiment of the present invention, the WAIT signal of the PSRAM bus is used to solve this problem and ensure the reliability of command transmission. When the PIM is processing a previously received command, it leaves the WAIT signal in an invalid state and indicates that it is not ready to process the next packet. Even if the system makes a read request, the PIM makes the system wait through the WAIT signal.

다만 목적 주소로 사용되는 Address 신호와 WE # 신호는 WAIT 신호와 상관없이 시스템에서 PIM으로 보내지므로 대기 중인 Address 신호와 WE # 신호는 보존해야 한다. 대기 중인 Address 신호와 WE # 신호를 보존하는 것은 도 3의 입출력 장치(110)에서 처리되며, 이를 위한 논리 회로는 도 6과 같다. 도 6은 처리 대기 중인 패킷의 목적 주소와 읽기/쓰기 명령어 보존을 위한 논리 회로이다.However, since the address signal and WE # signal used as the destination address are sent from the system to the PIM regardless of the WAIT signal, the waiting address signal and WE # signal must be preserved. Preserving the waiting address signal and WE # signal is processed by the input/output device 110 of FIG. 3, and a logic circuit for this is as shown in FIG. 6. 6 is a logic circuit for preserving a destination address of a packet waiting to be processed and a read/write command.

뿐만 아니라 PIM이 하나의 패킷을 처리한 후에는 이미 대기 중인 다음 패킷이 있는지 여부를 알려야 한다. 이를 위해 입출력 장치(110)는 내부적으로 처리 대기 신호(pending flag)를 만들어 사용하며 처리 대기 신호를 만드는 논리 회로는 도 7과 같다. 도 7은 처리 대기 신호를 생성을 위한 논리 회로이다.In addition, after PIM processes one packet, it must inform whether there is a next packet already waiting. To this end, the input/output device 110 internally creates and uses a pending flag, and a logic circuit for creating a processing pending signal is shown in FIG. 7. 7 is a logic circuit for generating a signal to be processed.

처리 대기 신호는 대기 중인 목적 주소와 읽기 및 쓰기 명령어가 있으면 active-high 상태를 유지하고, PIM이 대기 중인 패킷의 나머지를 수신하거나 읽기 요청의 응답을 위해 WAIT 신호를 유효한 상태로 만들면 처리 대기 신호를 active-low로 만들어 처리 대기 중인 패킷이 없음을 알린다.The processing waiting signal remains active-high if there is a pending destination address and read and write commands, and when the PIM receives the rest of the pending packets or makes the WAIT signal valid to respond to a read request, the processing wait signal is generated. By making it active-low, it informs that there is no packet waiting to be processed.

본 발명의 실시예를 통해 개발한 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의 물리 주소를 정확하게 예측하고 접근하였다.After median-filter processing a 24-bit color photo of 512x512 size through the PIM developed through the embodiment of the present invention, the results of the CPU processing were compared. The system using PIM used an embedded system that supports an external memory bus, and the external memory bus supports the PSRAM bus. The processor of the system used is an ARM coretex-A9 based AP, and the OS is 32-bit Linux 4.1.15. The external memory bus is also managed as virtual memory in Linux. The entire PIM address area is mapped at once using the maximum page size allowed by the system, and the physical address of the PIM is accurately predicted and accessed through the offset value of the address.

처리 결과는 도 9와 같다. 도 9의 결과와 같이 동일한 알고리즘을 수행하였을 때 연산 결과는 CPU와 PIM이 동일하지만 처리 시간은 PIM을 이용하는 방식이 CPU의 처리 시간보다 20배 이상 향상된 것을 알 수 있다.The processing result is shown in FIG. 9. When the same algorithm is performed as shown in FIG. 9, the calculation result is the same as the CPU and PIM, but the processing time is improved by 20 times or more than the processing time of the CPU.

지금까지, 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치에 대해 바람직한 실시예를 들어 상세히 설명하였다.Up to now, a preferred embodiment has been described in detail for a processing in-memory device using a commercial memory bus.

본 발명의 실시예에서는, 기존 상용 메모리 버스를 이용할 수 있는 PIM 장치, PIM 패킷 구조 및 PIM 운용 방법을 제시하여, PIM을 사용하기 위해 기존 컴퓨터 시스템의 하드웨어 및 소프트웨어의 수정을 요구하지 않고, PSRAM을 사용하는 모든 상용 마더보드(motherboard)에서 PIM을 사용할 수 있도록 하였다.In an embodiment of the present invention, a PIM device capable of using an existing commercial memory bus, a PIM packet structure, and a PIM operation method are presented, so that the PSRAM is not required to modify the hardware and software of the existing computer system in order to use PIM. PIM can be used on all commercial motherboards used.

한편, 본 명세서에서, address와 DQ 버스는 개념적인 이해를 위해 두 버스를 구분하여 표현하였다. 하지만 실제 DQ 버스의 운용은 (PSRAM 표준에 근거하여) 별도의 DQ 버스를 두지 않고, 양방향 버스(bi-directional bus)로 설정된 address 버스를 DQ와 호환하여 사용가능하며, 이때 주소와 데이터는 시차에 의한 MUX를 통해 구분함에 유념하여야 한다. Meanwhile, in the present specification, the address and the DQ bus are expressed as two buses for conceptual understanding. However, the actual operation of the DQ bus does not have a separate DQ bus (based on the PSRAM standard), and the address bus set as a bi-directional bus can be used interchangeably with DQ. At this time, the address and data are It should be noted that the classification is made through MUX.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 져서는 안될 것이다.In addition, although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims. In addition, various modifications are possible by those of ordinary skill in the art, and these modifications should not be individually understood from the technical idea or perspective of the present invention.

110 : 입출력 장치
120 : 연산 장치
130 : 메모리 제어장치
140 : DRAM
110: input/output device
120: computing device
130: memory control device
140: DRAM

Claims (12)

데이터가 저장되는 메모리;
메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치;
주소, 데이터 및 명령을 수신하는 입출력 장치;
데이터에 대해 명령을 수행하는 연산 장치;를 포함하고,
입출력 장치는,
address 신호를 통해, 목적 주소를 수신하고,
DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신하며,
연산 장치가 이전에 받은 명령을 처리중인 경우, WAIT 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리고,
연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것을 특징으로 하는 PIM(processing in memory) 장치.
A memory in which data is stored;
A memory control device that reads and writes data from a corresponding address in the memory;
An input/output device for receiving an address, data, and command;
Including; a computing device that performs an instruction on the data,
The input/output device is:
Through the address signal, receive the destination address,
Through the DQ signal, a packet containing an instruction to be executed, an operand address, and data is received, and
If the processing unit is processing a previously received command, it leaves the WAIT signal in an invalid state, indicating that it is not ready to process the next packet,
A PIM (processing in memory) device, characterized in that when the processing unit is processing a previously received command, the received Address signal and WE signal are preserved and waited.
청구항 1에 있어서,
패킷의 길이는.
메모리 크기, 명령의 개수 및 데이터 워드의 크기에 의해 결정되는 것을 특징으로 하는 PIM(processing in memory) 장치.
The method according to claim 1,
The length of the packet is.
A PIM (processing in memory) device, characterized in that it is determined by a memory size, a number of instructions, and a size of a data word.
청구항 1에 있어서,
패킷은,
메모리의 write burst 프로토콜을 통해 데이터 write 동작과 동일하게 입출력 장치에 전달되는 것을 특징으로 하는 PIM(processing in memory) 장치.
The method according to claim 1,
Packet,
A PIM (processing in memory) device, characterized in that it is transmitted to an input/output device in the same manner as a data write operation through a write burst protocol of memory.
청구항 3에 있어서,
입출력 장치는,
수신한 패킷을 연산 장치가 처리 할 수 있는 제어 정보로 변경하여 연산 장치에 전달하는 것을 특징으로 하는 PIM(processing in memory) 장치.
The method of claim 3,
The input/output device is:
A PIM (processing in memory) device, characterized in that the received packet is changed into control information that can be processed by the computing device and transmitted to the computing device.
청구항 4에 있어서,
메모리 제어장치는,
연산 장치의 연산 결과를 메모리의 목적 주소에 저장하고,
저장된 연산 결과는,
읽기 프로토콜을 통해 시스템이 접근할 수 있는 것을 특징으로 하는 PIM(processing in memory) 장치.
The method of claim 4,
The memory control device,
Saves the operation result of the operation device to the destination address of the memory,
The saved calculation result is,
A PIM (processing in memory) device, characterized in that the system can access it through a read protocol.
삭제delete 삭제delete 청구항 1에 있어서,
입출력 장치는,
대기 중인 다음 패킷이 있음을 알리기 위한 처리 대기 신호를 활성화시키는 것을 특징으로 하는 PIM(processing in memory) 장치.
The method according to claim 1,
The input/output device is:
PIM (processing in memory) device, characterized in that for activating a processing waiting signal for notifying that there is a next packet waiting.
청구항 8에 있어서,
입출력 장치는,
대기 중인 다음 패킷을 수신하거나 특정 신호를 유효한 상태로 변경하면, 처리 대기 신호를 비활성화시키는 것을 특징으로 하는 PIM(processing in memory) 장치.
The method of claim 8,
The input/output device is:
A PIM (processing in memory) device, characterized in that, upon receiving a next packet waiting or changing a specific signal to a valid state, inactivating a processing waiting signal.
입출력 장치가, address 신호를 통해, 목적 주소를 수신하는 단계;
입출력 장치가, DQ 신호를 통해, 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 수신하는 단계;
연산 장치가, 명령을 수행하는 단계;
메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함하며,
입출력 장치는,
연산 장치가 이전에 받은 명령을 처리중인 경우, WAIT 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리고,
연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것을 특징으로 하는 PIM(processing in memory) 방법.
Receiving, by an input/output device, a destination address through an address signal;
Receiving, by the input/output device, a packet including a command to be executed by the computing device, an operand address, and data through the DQ signal;
Performing, by the computing device, an instruction;
And storing, by the memory control device, a result of executing the command in a memory,
The input/output device is:
If the processing unit is processing a previously received command, it leaves the WAIT signal in an invalid state, indicating that it is not ready to process the next packet,
When the processing unit is processing a previously received command, the PIM (processing in memory) method, characterized in that for waiting by preserving the received Address signal and WE signal.
PIM(processing in memory) 장치; 및
PIM 장치에 데이터를 저장하는 시스템;를 포함하고,
PIM 장치는,
데이터가 저장되는 메모리;
메모리의 해당 주소에서 데이터를 read 하고 write 하는 메모리 제어장치;
주소, 데이터 및 명령을 수신하는 입출력 장치;
데이터에 대해 명령을 수행하는 연산 장치;를 포함하고,
입출력 장치는,
address 신호를 통해, 목적 주소를 수신하고,
DQ 신호를 통해, 연산 장치가 수행할 명령이 수록된 패킷을 수신하며,
입출력 장치는,
연산 장치가 이전에 받은 명령을 처리중인 경우, WAIT 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리고,
연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것을 특징으로 하는 컴퓨팅 시스템.
Processing in memory (PIM) devices; And
Including; a system for storing data in the PIM device,
The PIM device,
A memory in which data is stored;
A memory control device that reads and writes data from a corresponding address in the memory;
An input/output device for receiving an address, data, and command;
Including; a computing device that performs an instruction on the data,
The input/output device is:
Through the address signal, receive the destination address,
Through the DQ signal, a packet containing an instruction to be executed by the computing device is received,
The input/output device is:
If the processing unit is processing a previously received command, it leaves the WAIT signal in an invalid state, indicating that it is not ready to process the next packet,
When the computing device is processing a command previously received, the computing system is characterized in that the received Address signal and WE signal are stored and waited.
시스템이, address 신호를 통해, PIM(processing in memory) 장치의 입출력 장치에 목적 주소를 전송하는 단계;
시스템이, DQ 신호를 통해, PIM 장치의 입출력 장치에, PIM 장치의 연산 장치가 수행할 명령, 피연산자 주소 및 데이터가 수록된 패킷을 전송하는 단계;
PIM 장치의 연산 장치가, 명령을 수행하는 단계;
PIM 장치의 메모리 제어장치가, 명령 수행 결과를 메모리에 저장하는 단계;를 포함하며,
PIM 장치의 입출력 장치는,
연산 장치가 이전에 받은 명령을 처리중인 경우, WAIT 신호를 무효한 상태로 두어, 다음 패킷을 처리할 준비가 되지 않았음을 알리고,
연산 장치가 이전에 받은 명령을 처리중인 경우, 수신되는 Address 신호와 WE 신호를 보존하여 대기시키는 것을 특징으로 하는 PIM(processing in memory) 방법.
Transmitting, by the system, a destination address to an input/output device of a processing in memory (PIM) device through an address signal;
Transmitting, by the system, to an input/output device of the PIM device through a DQ signal, a packet including a command to be executed by the computing device of the PIM device, an operand address, and data;
The operation device of the PIM device, performing an instruction;
Including, by the memory control device of the PIM device, storing the command execution result in a memory,
The input/output device of the PIM device is:
If the processing unit is processing a previously received command, it leaves the WAIT signal in an invalid state, indicating that it is not ready to process the next packet,
When the processing unit is processing a previously received command, the PIM (processing in memory) method, characterized in that for waiting by preserving the received Address signal and WE signal.
KR1020180127171A 2018-10-24 2018-10-24 Processing In Memory Device using a Conventional Memory Bus KR102144185B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180127171A KR102144185B1 (en) 2018-10-24 2018-10-24 Processing In Memory Device using a Conventional Memory Bus
PCT/KR2019/001204 WO2020085583A1 (en) 2018-10-24 2019-01-29 Processing in memory device using commercial memory bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180127171A KR102144185B1 (en) 2018-10-24 2018-10-24 Processing In Memory Device using a Conventional Memory Bus

Publications (2)

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

Family

ID=70331199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180127171A KR102144185B1 (en) 2018-10-24 2018-10-24 Processing In Memory Device using a Conventional Memory Bus

Country Status (2)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220007404A (en) * 2020-07-10 2022-01-18 한국전자기술연구원 Method and apparatus for processing READ-WRITE-OPERATION instuction in processing in memory
KR20220007403A (en) * 2020-07-10 2022-01-18 한국전자기술연구원 Memory management method and apparatus in processing-in-memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101867219B1 (en) * 2017-02-22 2018-06-12 연세대학교 산학협력단 Apparatus and method for processing differential memory operations based on dynamic memory interface

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017065379A1 (en) * 2015-10-16 2017-04-20 삼성전자 주식회사 Method and apparatus for processing instructions using processing-in-memory
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
US10416896B2 (en) * 2016-10-14 2019-09-17 Samsung Electronics Co., Ltd. Memory module, memory device, and processing device having a processor mode, and memory system
KR101858597B1 (en) * 2016-12-30 2018-05-17 한양대학교 산학협력단 Processing in memory system and method for transmitting job, operand data, and calculation results of processing in memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101867219B1 (en) * 2017-02-22 2018-06-12 연세대학교 산학협력단 Apparatus and method for processing differential memory operations based on dynamic memory interface

Also Published As

Publication number Publication date
KR20200046270A (en) 2020-05-07
WO2020085583A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
JP6796304B2 (en) Final level cache system and corresponding methods
TW202018495A (en) System and method for managing software-defined persistent memory
US5802576A (en) Speculative cache snoop during DMA line update
US20080010420A1 (en) Method for Accessing Control Registers via a Memory Device
CN106326140B (en) Data copying method, direct memory access controller and computer system
US9317312B2 (en) Computer and memory management method
JP2007183962A (en) Integrated memory and controller
JP7384806B2 (en) Scheduling memory requests for ganged memory devices
JP6710219B2 (en) DRAM circuit with integrated processor
US10769074B2 (en) Computer memory content movement
US20130054896A1 (en) System memory controller having a cache
US10866755B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
KR102144185B1 (en) Processing In Memory Device using a Conventional Memory Bus
KR20210025344A (en) Main memory device having heterogeneous memories, computer system including the same and data management method thereof
US20080007569A1 (en) Control protocol and signaling in a new memory architecture
US20180107619A1 (en) Method for shared distributed memory management in multi-core solid state drive
US8850159B2 (en) Method and system for latency optimized ATS usage
US7406571B2 (en) Memory system and method for controlling the same, and method for maintaining data coherency
JP3817327B2 (en) Method and apparatus for accessing a chip selectable device in a data processing system
US10261700B1 (en) Method and apparatus for streaming buffering to accelerate reads
US20240143508A1 (en) Ats pri support with implicit cache
WO2015153693A1 (en) Interface, interface methods, and systems for operating memory bus attached computing elements
JP2000047930A (en) Data processor
JP2009059155A (en) Usb host controller device

Legal Events

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