IP Library Granted Patent US 7,795,899
Granted Patent B1
US 7,795,899 · App. 12/420,056 · Granted Sep 14, 2010

Enabling on-chip features via efuses

Assignee: Oracle America, Inc.
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,795,899
App. No.
12/420,056
Granted
Sep 14, 2010
Kind
B1
Abstract

Systems and methods for enabling on-chip features via efuses. A system comprises an electronic fuse (Efuse) array (EFA) coupled to each features capability register (FCR) within an instantiated computational block. The EFA comprises a plurality of rows wherein programming an row comprises blowing one or more Efuses of the row. A valid row comprises programmed Efuses corresponding to one or more on-chip enabled features. The EFA is further configured to prevent enabling of disabled on-chip features from occurring subsequent to a predetermined point in time, such as the time of shipping the chip to the field for use by end-users, by establishing a particular default state for electronic fuses and rendering unusable any unprogrammed entries of the EFA. In one embodiment, some features correspond to on-chip hardware cryptographic acceleration. By preventing the ability to re-enable these features after shipping, it is possible to send semiconductor chips to foreign countries with only predetermined features enabled and no threat of disabled features being later enabled.

Claims (29)

1. A system comprising:

an electronic fuse (Efuse) array (EFA) that includes a plurality of programmable entries, wherein for a given valid programmed entry corresponding to a particular set of one or more features, a subsequent valid programmed entry corresponding to the particular set of one or more features overrides the given valid programmed entry;

circuitry configured to interpret features of the one or more features without a valid programmed entry in the EFA as being disabled; and

wherein the EFA includes one or more entries with desired programming, and one or more entries following said entries with the desired programming are rendered unusable.

2. The system as recited in claim 1 , wherein an unblown Efuse of a programmed entry indicates a feature which corresponds to the unblown Efuse is disabled.

3. The system as recited in claim 2 , wherein both the given valid programmed entry and the subsequent valid programmed entry comprise a same identifier (ID), the ID serving to identify the particular set of one or more features.

4. The system as recited in claim 3 , wherein each programmed entry of the EFA comprises one or more Efuses, wherein a blown Efuse indicates a corresponding feature is enabled, and wherein an unblown fuse indicates a corresponding feature is disabled.

5. The system as recited in claim 4 , wherein said system is configured to convey information from the EFA such that it may not be altered or bypassed via an alternate interface.

6. The system as recited in claim 1 , wherein an unusable entry of the EFA comprises at least one of the following: (i) an invalid identification (ID) value programmed into an ID field of the unusable entry; and (ii) an incorrect parity value programmed in a parity field of the unusable entry.

7. The system as recited in claim 4 , wherein said one or more features include at least one of the following: hardware acceleration of a particular cryptographic cipher operation, a user-level instruction configured to accelerate a particular cipher function, a manufacturing serial number, and repair information of a non-chip static random access memory (SRAM).

8. The system as recited in claim 4 , further comprising circuitry configured to generate an exception responsive to execution of an instruction attempting to utilize a feature which said EFA indicates is disabled.

9. A method for securing programming of a device, the method comprising:

programming one or more entries of an electronic fuse (Efuse) array (EFA) that includes a plurality of programmable entries, wherein for a given valid programmed entry corresponding to a particular set of one or more features, a subsequent valid programmed entry corresponding to the particular set of one or more features overrides the given valid programmed entry;

interpreting features of the one or more features without a valid programmed entry in the EFA as being disabled; and

rendering unusable one or more non-programmed entries of the programmable entries, subsequent to completing a desired programming of the EFA.

10. The method as recited in claim 9 , wherein an unblown Efuse of a programmed entry indicates a feature which corresponds to the unblown Efuse is disabled.

11. The method as recited in claim 10 , wherein both the given valid programmed entry and the subsequent valid programmed entry comprise a same identifier (ID), the ID serving to identify the particular set of one or more features.

12. The method as recited in claim 11 , wherein each programmed entry of the EFA comprises one or more Efuses, wherein a blown Efuse indicates a corresponding feature is enabled, and wherein an unblown fuse indicates a corresponding feature is disabled.

13. The method as recited in claim 12 , wherein said system is configured to convey information from the EFA such that it may not be altered or bypassed via an alternate interface.

14. The method as recited in claim 9 , wherein an unusable entry of the EFA comprises at least one of the following: (i) an invalid identification (ID) value programmed into an ID field of the unusable entry; and (ii) an incorrect parity value programmed in a parity field of the unusable entry.

15. The method as recited in claim 12 , wherein said one or more features include at least one of the following: hardware acceleration of a particular cryptographic cipher operation, a user-level instruction configured to accelerate a particular cipher function, a manufacturing serial number, and repair information of a non-chip static random access memory (SRAM).

16. The method as recited in claim 12 further comprising generating an exception responsive to execution of an instruction attempting to utilize a feature which said EFA indicates is disabled.

17. A computer readable storage medium storing program instructions operable for securing programming of a device, wherein the program instructions are executable to:

program one or more entries of an electronic fuse (Efuse) array (EFA) that includes a plurality of programmable entries, wherein for a given valid programmed entry corresponding to a particular set of one or more features, a subsequent valid programmed entry corresponding to the particular set of one or more features overrides the given valid programmed entry;

interpret features of the one or more features without a valid programmed entry in the EFA as being disabled; and

render unusable any non-programmed entries of the programmable entries, subsequent to completing a desired programming of the EFA.

18. The storage medium as recited in claim 17 , wherein an unblown Efuse of a programmed entry indicates a feature which corresponds to the unblown Efuse is disabled.

19. The storage medium as recited in claim 18 , wherein both the given valid programmed entry and the subsequent valid programmed entry comprise a same identifier (ID), the ID serving to identify the particular set of one or more features.

20. The storage medium as recited in claim 19 , wherein each programmed entry of the EFA comprises one or more Efuses, wherein a blown Efuse indicates a corresponding feature is enabled, and wherein an unblown fuse indicates a corresponding feature is disabled.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2009
From: GROHOSKI, GREGORY F.; OLSON, CHRISTOPHER H.; ZIAJA, THOMAS ALAN; SPRACKLEN, LAWRENCE A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 022519/0191 →