IP Library › Granted Patent US 7,856,545
Granted Patent B2
US 7,856,545 · App. 11/829,801 · Granted Dec 21, 2010

FPGA co-processor for accelerated computation

Assignee: DRC Computer Corporation
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 7,856,545
App. No.
11/829,801
Granted
Dec 21, 2010
Kind
B2
Abstract

A co-processor module for accelerating computational performance includes a Field Programmable Gate Array (“FPGA”) and a Programmable Logic Device (“PLD”) coupled to the FPGA and configured to control start-up configuration of the FPGA. A non-volatile memory is coupled to the PLD and configured to store a start-up bitstream for the start-up configuration of the FPGA. A mechanical and electrical interface is for being plugged into a microprocessor socket of a motherboard for direct communication with at least one microprocessor capable of being coupled to the motherboard. After completion of a start-up cycle, the FPGA is configured for direct communication with the at least one microprocessor via a microprocessor bus to which the microprocessor socket is coupled.

Claims (23)

1. A method for co-processing, comprising:

coupling an accelerator module to a microprocessor bus, the accelerator module including a Field Programmable Gate Array (“FPGA”);

loading a microprocessor bus interface bitstream into the FPGA to program programmable logic thereof;

transferring data to first memory of the accelerator module via a microprocessor bus using a microprocessor bus interface instantiated in the FPGA responsive to the microprocessor bus interface bitstream;

instantiating a default configuration bitstream stored in the first memory in the FPGA to configure the FPGA to have the microprocessor bus interface with sufficient functionality to be recognized by a microprocessor coupled to the microprocessor bus; and

communicating under control of the microprocessor a configuration pattern to second memory of the accelerator module using a first memory interface instantiated in the FPGA responsive to the instantiating of the default configuration bitstream.

2. The method according to claim 1 , wherein the loading is via a JTAG interface of the FPGA.

3. The method according to claim 2 , wherein the loading and the transferring are under control of a Programmable Logic Device (“PLD”), the PLD being included as part of the accelerator module.

4. The method according to claim 1 , further comprising sending control information from the microprocessor to the FPGA to indicate location of the configuration pattern in the second memory for instantiation in user programmable logic of the FPGA.

5. The method according to claim 4 , wherein the control information is for partial reconfiguration of the user programmable logic of the FPGA.

6. The method according to claim 5 , wherein the first memory is flash memory; and wherein the second memory is either Static Random Access Memory (“SRAM”) or Dynamic Random Access Memory (“DRAM”).

7. The method according to claim 1 , wherein the microprocessor bus interface bitstream and the default configuration bitstream are instantiated in the FPGA with pre-assigned fixed placement.

8. A method for co-processing, comprising:

coupling an accelerator module to a microprocessor bus, the accelerator module including a Field Programmable Gate Array (“FPGA”) and first memory, the first memory having a default configuration bitstream stored therein;

loading the default configuration bitstream into the FPGA to program programmable logic thereof, the default configuration bitstream including a microprocessor bus interface; and

configuring the FPGA with the default configuration bitstream with sufficient functionality to be recognized by a microprocessor coupled to the microprocessor bus; and

communicating under control of the microprocessor a configuration pattern to second memory using a first memory interface instantiated in the FPGA responsive to the configuring of the FPGA with the default configuration bitstream.

9. The method according to claim 8 , wherein the loading is via a JTAG interface of the FPGA.

10. The method according to claim 9 , wherein the loading is under control of a Programmable Logic Device (“PLD”) included as part of the accelerator module.

11. The method according to claim 8 , further comprising sending control information from the microprocessor to the FPGA to indicate location of the configuration pattern in the second memory for instantiation in user programmable logic of the FPGA.

12. The method according to claim 11 , wherein the control information is for partial reconfiguration of the user programmable logic of the FPGA.

13. The method according to claim 12 , wherein the first memory is flash memory; and wherein the second memory is either Static Random Access Memory (“SRAM”) or Dynamic Random Access Memory (“DRAM”).

14. The method according to claim 8 , wherein the default configuration bitstream is instantiated in the FPGA with pre-assigned fixed placement.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRESPONDENCE DATA ON THE COVER SHEET FOR THE ASSIGNMENT PREVIOUSLY RECORDED ON REEL 019650 FRAME 0346. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT EXECUTED ON 07/27/2007.. Recorded Dec 8, 2009
From: CASSELMAN, STEVEN
To: DRC COMPUTER CORPORATION
Reel/Frame 023622/0831 →
SECURITY AGREEMENT Recorded Jun 19, 2008
From: DRC COMPUTER CORPORATION
To: BRIDGE BANK, N.A.
Reel/Frame 021128/0766 →
SECURITY AGREEMENT Recorded Jan 17, 2008
From: DRC COMPUTER CORPORATION
To: TOPSPIN FUND, L.P.; TOPSPIN MINIFUND, L.P.; FRED & BARBARA HANEY REVOCABLE TRUST D. 9/4/96; BECHLER FAMILY TRUST, THE; WOLKEN, PETER; BERNACCHI REVOCABLE TRUST, THE; KHOSLA, DEEPAK; MURFITT, GERARD
Reel/Frame 020550/0717 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2007
From: CASSELMAN, STEVEN
To: DRC COMPUTER CORPORATION
Reel/Frame 019650/0346 →
Continuity (2)
Provisional Application 6082073000 · Jul 28, 2006
Related Publication 20080028186A1 · Jan 31, 2008