# US 2018/0321880 A1 · Resistance switching memory-based accelerator

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0321880 A1
- Document ID: US20180321880A1
- Status: Published application
- Kind: A1
- Application number: 16/032,675
- Filed: 2018-07-11
- Published: 2018-11-08
- Earliest claimed: 2016-07-26
- Assignees: MemRay Corporation; Yonsei University, University—Industry Foundation (Uif)
- Applicants: MemRay Corporation; Yonsei University, University - Industry Foundation (Uif)
- Inventors: Myoungsoo JUNG; Gyuyoung PARK; Jie ZHANG
- Web page: https://patentgrep.com/patent/US20180321880A1

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 9/30043: {LOAD or STORE instructions; Clear instruction}
- G06F 13/1668: {Details of memory controller}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A resistance switching memory-based accelerator configured to be connected to a host including a CPU and a system memory is provided. A resistance switching memory module includes a memory cell array including a plurality of resistance switching memory cells, and stores a kernel offloaded from the host. An accelerator core includes a plurality of processing elements, and the kernel is executed by a target processing element among the plurality of processing elements. An MCU manages a memory request generated in accordance with execution of the kernel by the target processing element. A memory controller is connected to the resistance switching memory module, and allows data according to the memory request to move between the resistance switching memory module and the target processing element, in accordance with the memory request transferred from the MCU. A network integrates the accelerator core, the plurality of processing elements, and the memory controller.

## Claims

### Claim 1

A resistance switching memory-based accelerator configured to be connected to a host including a central processing unit (CPU) and a system memory, the resistance switching memory-based accelerator comprising:
a resistance switching memory module that includes a memory cell array including a plurality of resistance switching memory cells, and stores a kernel offloaded from the host;
an accelerator core including a plurality of processing elements, the kernel being executed by a target processing element among the plurality of processing elements;
a memory controller unit (MCU) that manages a memory request generated in accordance with execution of the kernel by the target processing element;
a memory controller that is connected to the resistance switching memory module, and allows data according to the memory request to move between the resistance switching memory module and the target processing element, in accordance with the memory request transferred from the MCU; and
a network that integrates the accelerator core, the plurality of processing elements, and the memory controller.

### Claim 2 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the data according to the memory request move between the resistance switching memory module and the target processing element without assistance of an operating system (OS) of the host.

### Claim 3 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the target processing element accesses the resistance switching memory module through the memory request without a modification of an existing load/store instruction.

### Claim 4 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the MCU is included in a processing element other than the plurality of processing elements.

### Claim 5 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the MCU is included in the target processing element.

### Claim 6 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the resistance switching memory module further includes a plurality of row data buffers including a first row data buffer and a second row data buffer,
wherein the plurality of resistance switching memory cells are divided into a plurality of partitions including a first partition and a second partition,
wherein the memory controller processes a first operation according to a first memory request and a second operation according to a second memory request in parallel, the first operation of bringing first data from the first partition to the first row data buffer, and the second operation of moving second data, which have been transferred from the second partition to the second row data buffer, to the target processing element corresponding to the second memory request.

### Claim 7 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the resistance switching memory module further includes:
a plurality of row address buffers; and
a plurality of row data buffers,
wherein the plurality of resistance switching memory cells are divided into a plurality of partitions;
wherein the memory controller performs three-phase addressing, and
wherein the three-phase addressing comprises:
a preactive phase for storing an upper address of a row address, which is divided into at least the upper address and a lower address, for accessing the resistance switching memory module in accordance with the memory request, to a target row address buffer among the plurality of row address buffers;
an active phase for bringing read data from the memory cell array to a target row data buffer among the plurality of row data buffers based on a row address composed by merging the lower address with the upper address stored to the target row address buffer, in a case of a read; and
a read/write phase for transferring the read data from the target row data buffer to the target processing element.

### Claim 8 (depends on 7)

The resistance switching memory-based accelerator of claim 7, wherein the resistance switching memory module further includes an overlay window including a set of control registers and a program buffer, and
wherein in a case of a write, write data are stored to the program buffer at the active phase when the row address is within an address range of the overlay window, and the write data stored to the program buffer are programmed to the memory cell array at the read/write phase.

### Claim 9 (depends on 8)

The resistance switching memory-based accelerator of claim 8, wherein the plurality of partitions include a first partition and a second partition, and
wherein the memory controller performs the read/write phase for the first partition in accordance with a first memory request while performing the preactive phase and the active phase for the second partition in accordance with a second memory request.

### Claim 10 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the memory controller performs selectional erasing for setting a resistance switching memory cells corresponding to addresses to be overwritten by the execution of the kernel to a reset status.

### Claim 11 (depends on 10)

The resistance switching memory-based accelerator of claim 10, wherein the memory controller performs the selectional erasing before the execution of the kernel.

### Claim 12 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the MCU stores a memory address of the kernel stored to the resistance switching memory module to a cache of the target processing element as a boot address, for execution of the kernel.

### Claim 13 (depends on 12)

The resistance switching memory-based accelerator of claim 12, further comprising a power sleep controller that controls a sleep mode of the target processing element, and
wherein the MCU puts the target processing element in the sleep mode using the power sleep controller before storing the memory address of the kernel to the target processing element, and revokes the target processing element using the power sleep controller after storing the memory address of the kernel to the target processing element.

### Claim 14 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the target processing element comprises:
an L2 cache;
a first on-chip memory controller that is connected to the MCU, generates the memory request, and transfers the memory request to the MCU; and
a second on-chip memory controller that is connected to the L2 cache, and moves the data between the L2 cache and the resistance switching memory module.

### Claim 15 (depends on 1)

The resistance switching memory-based accelerator of claim 1, wherein the resistance switching memory module includes a phase-change memory module, a resistive memory module, or a magnetoresistive memory module.

### Claim 16

A resistance switching memory-based accelerator configured to be connected to a host including a central processing unit (CPU) and a system memory, the resistance switching memory-based accelerator comprising:
a resistance switching memory module that stores kernels offloaded from the host, and includes a plurality of resistance switching memory cells divided into a plurality of partitions including a first partition and a second partition, and a plurality of row data buffers including a first row data buffer and a second row data buffer;
an accelerator core including a plurality of processing elements, each kernel being executed by a corresponding target processing element among the plurality of processing elements;
a memory controller unit (MCU) that manages memory requests generated in accordance with execution of each kernel by the target processing element;
a memory controller that is connected to the resistance switching memory module, and processes a first operation in accordance with a first memory request and a second operation in accordance with a second memory request in parallel, the first operation of bringing first data from the first partition to the first row data buffer, and the second operation of moving second data from the second row data buffer to the target processing element corresponding to the second memory request; and
a network that integrates the resistance switching memory module, the accelerator core, and the memory controller.

### Claim 17 (depends on 16)

The resistance switching memory-based accelerator of claim 16, wherein the second data have been transferred from the second partition to the second row data buffer before the memory controller brings the first data from the first partition to the first row data buffer.

### Claim 18 (depends on 16)

The resistance switching memory-based accelerator of claim 16, wherein the memory controller performs three-phase addressing including a preactive phase, an active phase, and a read/write phase, and
wherein the read/write phase for the second data is performed while the preactive phase and the active phase for the first data are performed.

### Claim 19

A resistance switching memory-based accelerator configured to be connected to a host including a central processing unit (CPU) and a system memory, the resistance switching memory-based accelerator comprising:
a resistance switching memory module that stores a kernel offloaded from the host and includes a memory cell array including a plurality of resistance switching memory cells;
an accelerator core including a plurality of processing elements, the kernel being executed by a target processing element among the plurality of processing elements;
a memory controller unit (MCU) that manages memory requests generated in accordance with execution of the kernel by the target processing element;
a memory controller that is connected to the resistance switching memory module, allows data according to the memory request to move between the resistance switching memory module and the target processing element in accordance with the memory request transferred from the MCU, and programs predetermined data for addresses of the memory cell array to be overwritten by the execution of the kernel.
a network that integrates the accelerator core, the plurality of processing elements, and the memory controller.

### Claim 20 (depends on 19)

The resistance switching memory-based accelerator of claim 19, wherein the predetermined data are data for setting resistance switching memory cells corresponding to the addresses to a reset status.
