IP Library Granted Patent US 8,626,964
Granted Patent B2
US 8,626,964 · App. 13/333,181 · Granted Jan 7, 2014

Method of transferring data, a method of processing data, an accelerator, a computer system and a computer program

Inventor: Robert Gwilym Dimond (London, GB)
Assignee: Maxeler Technologies, Ltd.
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 8,626,964
App. No.
13/333,181
Granted
Jan 7, 2014
Kind
B2
Abstract

The invention provides a method of transferring data from a data array within a main memory of a computer to an accelerator for processing, the embodiment of the method comprising: at the accelerator, requesting data from the main memory and generating a data stream between the main memory and the accelerator, the generated data stream including data from the data array; and, using an offset to determine the scheduling of array elements within the generated data stream.

Claims (12)

1. A method of processing data using an accelerator arranged to receive data from a main memory and execute an operation on the data to process it, comprising;

requesting a DMA data transfer from a virtual address in the main memory to the accelerator;

upon receipt of the DMA data transfer request at the accelerator generating in the accelerator a list of the physical memory locations within the main memo of requested data corresponding to the virtual address;

copying the list to a stored list; and

upon subsequent DMA data transfer request accessing the stored list and, if the corresponding virtual address is already present, using the list of physical memory locations calculated for a previous DMA data transfer and commencing the DMA transfer without generating a new list of physical memory locations, wherein the stored list is a cached version of a DMA scatter/gather pointer list generated in respect of the DMA request.

2. The method according to claim 1 , in which the stored list is stored in cache memory provided locally on the accelerator.

3. The method according to claim 1 , in which stored list is provided as cache in main memory and re-sent to the accelerator when required.

4. An accelerator for connection to a main computer having a central processing unit and main computer memory including at least one data array, the accelerator including logic to execute a computation process and being arranged to generate a data stream including data from the data array within the main memory, the accelerator comprising:

a logic device arranged to be programmed to execute a desired computation process; and

a device driver arranged to control the request of data from a virtual address in main memory of a computer to which, in use, the accelerator is connected, the driver being arranged to,

upon receipt of the DMA data transfer request at the accelerator, generate in the accelerator a list of the physical memory locations of requested data corresponding to the virtual address; copy the list to a stored list; and upon subsequent DMA data transfer request access the stored list and, if the corresponding virtual address is already present, use the list of physical memory locations calculated for a previous DMA data transfer and commence the DMA transfer without generating a new list of memory locations, wherein the stored list is a cached version of a DMA scatter/gather pointer list generated in respect of the DMA request.

5. A computer program stored on a non-transitory computer readable medium, which when run on a programmable logic device provided on an accelerator causes the accelerator to execute the method of claim 1 .

Assignments (1)
CHANGE OF NAME Recorded Jul 8, 2025
From: MAXELER TECHNOLOGIES LIMITED
To: GROQ UK LIMITED
Reel/Frame 071625/0906 →
Continuity (2)
Continuation 12636906 · Dec 14, 2009
Related Publication 20120159013A1 · Jun 21, 2012