1. Field of the Invention
The invention relates to copy protection, and in particular, to one-time programming.
2. Description of the Related Art
An exemplary embodiment of a system for storage of one-time programmable information comprises an interface translator and a one-time programmable device. The interface translator receives and translates a command code to program code comprising a sequence of write instructions and a designated data block. The one-time programmable device is coupled to the interface translator, programmed by the write instructions to store the designated data block. The one-time programmable device renders the designated data block unalterable and non-deletable.
Command codes conform to a first standard, and program codes conform to a second standard interpretable by the one-time programmable device. If the first standard is identical to the second standard, the interface translator comprises an I/O interface directly passing the command codes to the one-time programmable device as the program code. Conversely, if the first standard is different from the second standard, the interface translator further comprises a command interpreter coupled to the I/O interface for interpreting the command codes to generate the program code. The I/O interface may be a microprocessor interface, an IDE interface or a SATA interface. The one-time programmable device may be an electrical fuse or a one-time programmable (OTP) silicon intellectual property.
The one-time programmable device may comprise a protection circuit and a plug-in device. The protection circuit receives the program code and executes the write instructions to perform a programming procedure. The plug-in device is coupled to the protection circuit, comprising a memory device storing the designated data block when the protection circuit performs the programming procedure. The memory device may be a flash ROM or an Electrically Erasable Programmable Read-Only Memory (EEPROM). When the designated data block is stored in the memory device, the protection circuit is disabled, rendering the designated data block unalterable and non-deletable.
A programming method is further provided. The memory device may comprise rewritable and non-rewritable entries. The protection circuit may provide a management mechanism to handle access to the entries. The interface translator receives a command code and generates program code to the one-time programmable device. When the program code is input, the protection circuit determines the entry to which the write instruction will be applied. If the entry is rewritable, the protection circuit allows the designated data block to be stored therein. Conversely, if the entry is non-rewritable, the protection circuit determines whether the entry has already been programmed. If so, further access to the entry is denied. Otherwise, the protection circuit allows the designated data block to be written in the entry. A detailed description is given in the following embodiments with reference to the accompanying drawings.
The invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein:
a and 3b show embodiments of the interface translator 210 according to
a and 4b show embodiments of the one-time programmable device 220 according to
The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
a and 3b show embodiments of the interface translator 210 according to
In
a and 4b show embodiments of the one-time programmable device 220 according to
b shows another embodiment of the one-time programmable device 220. In this embodiment, the architecture is simplified, comprising only a protection circuit 410 and a memory device 402. Similarly, the protection circuit 410 ensures the memory device 402 is only programmed once. For the first programming procedure, the protection circuit 410 receives the program code #DATA to execute the write instructions therein, and stores the designated data block into the memory device 402. When the designated data block is stored in the memory device 402, the protection circuit 410 is disabled, such that the one-time programmable device 220 is inaccessible to the interface translator 210, and the designated data block in the memory device 402 is fully protected.
While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. To the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.
This application claims the benefit of U.S. Provisional Application No. 60/743,126, filed Dec.1, 2006.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4879688 | Turner et al. | Nov 1989 | A |
| 5650734 | Chu et al. | Jul 1997 | A |
| 5680061 | Veenstra et al. | Oct 1997 | A |
| 5734868 | Curd et al. | Mar 1998 | A |
| 5812662 | Hsu et al. | Sep 1998 | A |
| 5869980 | Chu et al. | Feb 1999 | A |
| 5949987 | Curd et al. | Sep 1999 | A |
| 6170043 | Hu | Jan 2001 | B1 |
| 6373771 | Fifield et al. | Apr 2002 | B1 |
| 6507881 | Chen | Jan 2003 | B1 |
| 6691143 | Blaker | Feb 2004 | B2 |
| 6732246 | Okaue | May 2004 | B2 |
| 6820105 | Blaker | Nov 2004 | B2 |
| 6963644 | Matsuzaki et al. | Nov 2005 | B1 |
| 7046570 | Hubbard | May 2006 | B1 |
| 20050105331 | Lee et al. | May 2005 | A1 |
| 20060202232 | Takami | Sep 2006 | A1 |
| 20070153609 | Wu et al. | Jul 2007 | A1 |
| Number | Date | Country |
|---|---|---|
| 1166650 | Dec 1997 | CN |
| 2501159 | Jul 2002 | CN |
| 1700637 | Nov 2005 | CN |
| Number | Date | Country | |
|---|---|---|---|
| 20070180165 A1 | Aug 2007 | US |
| Number | Date | Country | |
|---|---|---|---|
| 60743126 | Jan 2006 | US |