Patent ID: 8161227

Claim:
A storage subsystem, comprising: a connector that enables the storage subsystem to be connected to an external connector of a target computer system having one or more field-programmable gate arrays (FPGAs), said one or more FPGAs implementing a download interface for receiving configuration information via a set of signal lines; non-volatile storage having stored therein a FPGA configuration file for configuring the one or more FPGAs, the configuration file including configuration data for specifying logical circuitry to be implemented by the one or more FPGAs; and a controller coupled to the connector and to the non-volatile storage, said controller configured to use configuration data in the FPGA configuration file stored in the non-volatile storage to program the one or more FPGAs when the storage subsystem is connected to the target computer system via said connector, said controller further configured to process storage access commands received via said connector; wherein the storage subsystem is configured to program the one or more FPGAs by communicating directly with the one or more FPGAs in accordance with said download interface, to thereby cause the one or more FPGAs to be programmed to implement the logic circuitry, and the storage subsystem is configured to behave as a storage drive to the target computer system once programming of the one or more FPGAs is complete.