IP Library Granted Patent US 8,838,873
Granted Patent B2
US 8,838,873 · App. 13/532,319 · Granted Sep 16, 2014

Methods and apparatus for data access by a reprogrammable circuit module

Inventors: John J. Giganti (Damascus, MD); Andrew Huo (Rockville, MD); Richard A. Baum (Rockville, MD); John M. Cavallo (Beltsville, MD); Timothy P. Bresnan (Finksburg, MD); Charles A. Moses (West Friendship, MD); Madhu Siddalingaiah (Clarksburg, MD)
Assignee: Data Design Corporation
G06F13/1668G06F12/0607
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,838,873
App. No.
13/532,319
Granted
Sep 16, 2014
Kind
B2
Abstract

In some embodiments, an apparatus includes a set of memory modules configured to store data and a reprogrammable circuit module operatively coupled to the set of memory modules. The reprogrammable circuit module is configured to receive, from a host device, information associated with a search request. The reprogrammable circuit module is configured to change from a first configuration to a second configuration in response to receiving the information. The reprogrammable circuit module is configured to retrieve at least a portion of the data stored at the set of memory modules associated with the second configuration. The reprogrammable circuit module is configured to generate a search result based on the portion of the data, and transmit the search result to the host device.

Claims (36)

1. An apparatus, comprising:

a plurality of memory modules, each memory module from the plurality of memory modules configured to store data to be retrieved in a data match computation;

a reprogrammable circuit module configured to execute the data match computation, the reprogrammable circuit module configured to receive data to be computationally and actively matched;

a plurality of data channels, each data channel from the plurality of data channels operably coupling the reprogrammable circuit module to at least one memory module from the plurality of memory modules, the reprogrammable circuit module configured to retrieve (1) a first set of data stored at a first memory module from the plurality of memory modules via a first data channel from the plurality of data channels, and in parallel (2) a second set of data stored at a second memory module from the plurality of memory modules via a second data channel from the plurality of data channels, to produce retrieved data including the first set of data and the second set of data, the reprogrammable circuit module configured to store the retrieved data for a time period, the reprogrammable circuit module configured to computationally and actively compare, during the time period and entirely at the reprogrammable circuit module, the retrieved data with a representation of the data to be matched to produce matched data, the reprogrammable circuit module configured to send a result signal representing the matched data; and

a driver module operatively coupled to the reprogrammable circuit module, the reprogrammable circuit module configured to be modified by the driver module, the driver module configured to modify the reprogrammable circuit module, at a first time, to retrieve data based at least in part on a first keyword, the driver module configured to modify the reprogrammable circuit module, at a second time after the first time, to retrieve data based at least in part on a second keyword different from the first keyword.

2. The apparatus of claim 1 , wherein each memory module from the plurality of memory modules is included in a dual in-line memory module (DIMM).

3. The apparatus of claim 1 , wherein the reprogrammable circuit module is configured to retrieve data from the first memory module at substantially a same time as from the second memory module.

4. The apparatus of claim 1 , wherein the reprogrammable circuit module is a Field Programmable Gate Array (FPGA).

5. The apparatus of claim 1 , wherein each memory module from the plurality of memory modules is a flash memory module.

6. The apparatus of claim 1 , wherein the plurality of memory modules are removably coupled to a Peripheral Component Interconnect Express (PCIe) card including the reprogrammable circuit module.

7. The apparatus of claim 1 , wherein the reprogrammable circuit module is configured to generate a data match result based at least in part on the matched data, the data match result being different from the matched data.

8. The apparatus of claim 1 , wherein each memory module from the plurality of memory modules is associated with an address translation table configured to store a plurality of address pairs, the address translation table being located at the first memory module.

9. The apparatus of claim 1 , wherein each memory module from the plurality of memory modules is configured to store data having a plurality of addresses, the data to be computationally and actively matched does not include an address from the plurality of addresses.

10. The apparatus of claim 1 , wherein the reprogrammable circuit module is configured to computationally and actively compare the retrieved data without using a processor separate from the reprogrammable circuit module.

11. A method, comprising:

receiving a query associated with a data match computation;

retrieving a set of data, based at least in part on the query and during a first time period, from a first memory module from a plurality of memory modules via a first data channel, to produce first retrieved data including the set of data from the first memory module;

retrieving a set of data, based at least in part on the query, in parallel to the retrieving from the first memory module via the first data channel, and during a second time period overlapping the first time period, from a second memory module from the plurality of memory modules via a second data channel, to produce second retrieved data including the set of data from the second memory module;

storing, at a reprogrammable circuit module, the first retrieved data and the second retrieved data for a time period;

producing, during the time period, matched data by computationally and actively comparing, entirely at the reprogrammable circuit module, the first retrieved data and the second retrieved data to a representation of the query;

sending, to a compute device, a result signal representing the matched data;

retrieving data, at a first time, based at least in part on a first keyword and a communication from a driver module; and

retrieving data, at a second time after the first time, based at least in part on a second keyword different from the first keyword and a communication from the driver module.

12. The method of claim 11 , wherein the first memory module is included within a common dual in-line memory module (DIMM) as the second memory module.

13. The method of claim 11 , wherein the first memory module is a flash memory module.

14. The method of claim 11 , further comprising:

generating a data match result based at least in part on the matched data, the data match result being different from the matched data.

15. The method of claim 11 , wherein the first memory module and the second memory module are configured to store data having a plurality of addresses, the query associated with the data match computation does not include an address from the plurality of addresses.

16. An apparatus, comprising:

a plurality of memory modules, each memory module from the plurality of memory modules configured to store data to be retrieved;

a reprogrammable circuit module configured to receive data to be computationally and actively matched, the reprogrammable circuit module configured to retrieve a first set of data from a first memory module from the plurality of memory modules, and in parallel a second set of data from a second memory module from the plurality of memory modules to produce retrieved data, the retrieved data including the first set of data and the second set of data, the reprogrammable circuit module configured to store the retrieved data for a time period, the reprogrammable circuit module configured to computationally and actively compare, during the time period and entirely at the reprogrammable circuit module, the retrieved data with a representation of the data to be matched to produce matched data, the reprogrammable circuit module configured to send a result signal representing the matched data; and

a driver module operatively coupled to the reprogrammable circuit module, the reprogrammable circuit module configured to be modified by the driver module, the driver module configured to modify the reprogrammable circuit module, at a first time, to retrieve data based at least in part on a first keyword, the driver module configured to modify the reprogrammable circuit module, at a second time after the first time, to retrieve data based at least in part on a second keyword different from the first keyword.

17. The apparatus of claim 16 , wherein the second memory module is different than the first memory module.

18. The apparatus of claim 16 , wherein the driver module is configured to modify the reprogrammable circuit module, at a first time, to perform a first task, the driver module configured to modify the reprogrammable circuit module, at a second time after the first time, to perform a second task.

19. The apparatus of claim 16 , wherein the reprogrammable circuit module is configured to generate a data match result based on the matched data, the data match result being different from the matched data.

20. The apparatus of claim 16 , wherein each memory module from the plurality of memory modules is associated with an address translation table configured to store a plurality of address pairs, the address translation table being collocated with at least a portion of the data to be retrieved.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Nov 22, 2021
From: MULTIPLIER CAPITAL II
To: BLACKLYNX, INC.; KNACK WORKS INC.
Reel/Frame 058184/0151 →
SECURITY INTEREST Recorded Jun 23, 2020
From: BLACKLYNX, INC.
To: MULTIPLIER CAPITAL II, LP
Reel/Frame 053013/0115 →
RELEASE OF SECURITY INTEREST Recorded Nov 22, 2019
From: COMERICA BANK
To: BLACKLYNX, INC. (F/K/A RYFT SYSTEMS, INC.)
Reel/Frame 051084/0208 →
SECURITY INTEREST Recorded Sep 29, 2015
From: RYFT SYSTEMS, INC.
To: COMERICA BANK
Reel/Frame 036680/0131 →
CHANGE OF NAME Recorded Oct 30, 2014
From: DATA DESIGN CORPORATION
To: RYFT SYSTEMS, INC
Reel/Frame 034113/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2012
From: GIGANTI, JOHN J.; HUO, ANDREW; BAUM, RICHARD A.; CAVALLO, JOHN M.; BRESNAN, TIMOTHY P.; MOSES, CHARLES A.; SIDDALINGAIAH, MADHU
To: DATA DESIGN CORPORATION
Reel/Frame 028492/0880 →
Continuity (3)
Continuation PCTUS2012042143 · Jun 13, 2012
Continuation In Part 13161141 · Jun 15, 2011
Related Publication 20120324149A1 · Dec 20, 2012