IP Library Granted Patent US 7,634,699
Granted Patent B2
US 7,634,699 · App. 12/356,368 · Granted Dec 15, 2009

System and method for testing a data storage device without revealing memory content

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,634,699
App. No.
12/356,368
Granted
Dec 15, 2009
Kind
B2
Abstract

A system and method for testing a data storage device without revealing memory content. To control the individual bits of the memory during testing each value is written into the memory according to the equation NEW_DATA=CURRENT_DATA XOR DATA_SEED such that individual bits of NEW_DATA are equal to CURRENT_DATA with selected bits inverted when the corresponding positions in DATA_SEED are high. NEW_DATA is written into the memory, read out and verified, so that all bit positions can be controlled and tested in both logic states, while NEW_DATA and CURRENT_DATA are not ascertainable by the testing software.

Claims (32)

1. A testing method for a memory device, comprising:

writing a first value to a first memory location, the first value comprising a plurality of bits of data previously read from the first memory location wherein at least one of the plurality of bits of data is inverted;

writing the first value to a second memory location;

retrieving content stored at each of the first memory location and the second memory location; and

writing the result of a comparison of the content retrieved from each of the first memory location and second memory location.

2. The testing method of claim 1 , further comprising accessing the result of the comparison through a debugging interface.

3. The testing method of claim 2 , wherein the debugging interface is a JTAG interface.

4. The method of claim 2 , wherein writing the first value to the first memory location is initiated upon receipt of a command, the method further comprising receiving the command through the debugging interface.

5. The method of claim 4 , wherein:

the plurality of bits of data previously read from the first memory location comprises a first encryption key;

the command comprises a command to generate an encryption key from a predetermined password, the first encryption key, and a seed value; and

the first value is equivalent to the first encryption key XOR the seed value.

6. The method of claim 1 wherein the first memory location is in an EEPROM and the second memory location is a register.

7. The method of claim 1 , wherein writing the first value to the first memory location and writing the first value to the second memory location are executed simultaneously.

8. The method of claim 1 , wherein the first value comprises the plurality of bits of data previously read from the first memory location XOR a seed value.

9. A device, comprising:

a module for reading a plurality of bits of data from a first memory location in a memory component, generating a first value comprising the plurality of bits of data wherein at least one of the plurality of bits is inverted, writing the first value to the first memory location, writing the first value to a second memory location, and comparing content retrieved from the first memory location with content retrieved from the second memory location and writing the result of the comparison to a register.

10. The device of claim 9 , further comprising an interface in communication with the register for accessing the result of the comparison.

11. The device of claim 10 , wherein the interface is a debugging interface.

12. The device of claim 11 , wherein the interface is a JTAG interface.

13. The device of claim 9 , wherein the memory component is an EEPROM.

14. The device of claim 9 , wherein the second memory location is a memory register.

15. The device of claim 9 , wherein the module writes the first value into the first memory location and into the second memory location simultaneously.

16. The device of claim 9 , wherein the first value comprises the plurality of bits of data XOR a seed value.

17. The device of claim 9 , wherein the module comprises a control register for receiving a command to initiate reading the plurality of bits of data from the first memory location.

18. The device of claim 9 , wherein the device is a data processor.

19. The device of claim 9 , wherein the device is a mobile communication device.

20. A computer program product comprising a computer usable medium having computer readable program code means embodied in said medium for causing a processor to:

write a first value to a first memory location, the first value comprising a plurality of bits of data previously read from the first memory location wherein at least one of the plurality of bits of data is inverted;

write the first value to a second memory location;

retrieve content stored at each of the first memory location and the second memory location; and

write the result of a comparison of the content retrieved from each of the first memory location and second memory location.

Assignments (3)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 4, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034161/0056 →