IP Library Granted Patent US 10,209,890
Granted Patent B2
US 10,209,890 · App. 15/471,372 · Granted Feb 19, 2019

Near memory accelerator

Inventors: Angelo Haller (Brandenburg, DE); Harald Huels (Horb am Neckar, DE); Jan Van Lunteren (Gattikon, CH); Joerg-Stephan Vogt (Holzgerlingen, DE)
Assignee: International Business Machines Corporation
G06F3/0607G06F3/068G06F3/0631G06F3/0659G06F12/023G06F2212/1044
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,209,890
App. No.
15/471,372
Granted
Feb 19, 2019
Kind
B2
Abstract

A computing system includes a host processor, an access processor having a command port, a near memory accelerator, and a memory unit. The system is adapted to run a software program on the host processor and to offload an acceleration task of the software program to the near memory accelerator. The system is further adapted to provide, via the command port, a first communication path for direct communication between the software program and the near memory accelerator, and to provide, via the command port and the access processor, a second communication path for indirect communication between the software program and the near memory accelerator. A related computer implemented method and a related computer program product are also disclosed.

Claims (41)

1. A computing system comprising:

a host processor;

an access processor having a command port;

a near memory accelerator; and

a memory unit;

wherein:

the computing system is adapted to:

run a software program on the host processor;

offload an acceleration task of the software program to the near memory accelerator;

provide, via the command port, a first communication path for direct communication between the software program and the near memory accelerator; and

provide, via the command port and the access processor, a second communication path for indirect communication between the software program and the near memory accelerator, wherein the host processor is configured to write, by the software program, operand data and/or control data of the acceleration task into the command port and read, by the software program, result data of the acceleration task from the command port.

2. The computing system according to claim 1 , wherein the system is configured to:

read, by the near memory accelerator, data of the acceleration task directly from the command port; and

write, by the near memory accelerator, data of the acceleration task directly to the command port.

3. The computing system according to claim 1 , wherein the command port comprises:

a first area allocated to comprise data for communication of the software program with the access processor; and

a second area allocated to comprise data for direct communication of the software program with the near memory accelerator.

4. The computing system according to claim 3 , further comprising one or more additional near memory accelerators, wherein the second area comprises a plurality of thread areas, wherein each of the thread areas is allocated to a thread of one of the near memory accelerators.

5. The computing system according to claim 1 , wherein the command port is implemented as memory mapped register file that is mapped on a predefined address range of an address space of the host processor.

6. The computing system according to claim 1 , wherein the access processor is configured to:

perform address generation, address mapping and access scheduling for memory accesses of the host processor and the near memory accelerator.

7. The computing system according to claim 1 , wherein the access processor is configured to

read the operand data of the acceleration task from the command port;

provide the operand data of the acceleration task to the near memory accelerator;

receive the result data of the acceleration task; and

write the result data of the acceleration task to the command port.

8. The computing system according to claim 1 , wherein the access processor is configured to write as result data processing results, performance data and/or completion data to the command port.

9. The computing system according to claim 1 , wherein the access processor is configured to:

provide configuration data to the near memory accelerator for configuring the near memory accelerator for the acceleration task.

10. The computing system according to claim 1 , wherein the operand data comprises an operand data identifier, the operand data identifier indicating the acceleration task to be performed on the operand data.

11. The computing system according to claim 1 , wherein the access processor comprises a state machine and wherein the access processor is configured to:

run a control program on the state machine;

provide operand data of the command port to the state machine; and

select, in dependence on the operand data, an execution path of the control program for interaction with the near memory accelerator.

12. The computing system according to claim 1 , comprising one or more additional near memory accelerators.

13. The computing system according to claim 1 , wherein the access processor is a field programmable gate array (FPGA).

14. The computing system according to claim 1 , wherein the near memory accelerator is a field programmable gate array (FPGA).

15. A computer program product for operating a computing system, the computing system comprising a host processor, an access processor having a command port, a near memory accelerator, and a memory unit; the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by the computing system to cause the computing system to perform a method comprising:

running a software program on the host processor;

offloading an acceleration task of the software program to the near memory accelerator; and

providing, via the command port of the access processor, a first communication path for direct communication between the software program and the near memory accelerator and a second communication path for indirect communication between the software program and the near memory accelerator via the access processor, wherein the host processor is configured to write, by the software program, operand data and/or control data of the acceleration task into the command port and read, by the software program, result data of the acceleration task from the command port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2017
From: HALLER, ANGELO; HUELS, HARALD; VAN LUNTEREN, JAN; VOGT, JOERG-STEPHAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043899/0392 →
Continuity (1)
Related Publication 20180284992A1 · Oct 4, 2018
Cited By (2)
US 12,236,099 US 12,717,489