IP Library › Granted Patent US 9,032,154
Granted Patent B2
US 9,032,154 · App. 11/956,042 · Granted May 12, 2015

Integration of secure data transfer applications for generic IO devices

Inventors: Xian Jun Liu (San Jose, CA); Robert C. Chang (Danville, CA); Po Yuan (Milpitas, CA); Junzhi Wang (San Jose, CA); Ron Barzilai (Kfar-Vradim, IL); Bahman Qawami (San Jose, CA); Farshid Sabet-Sharghi (Los Altos Hills, CA)
Assignee: SanDisk Technologies Inc.
G06F12/0886G06F12/0804G06F12/0871G06F12/0891G06F2212/1004G06F2212/1032G06F2212/2146G06F2212/462
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 9,032,154
App. No.
11/956,042
Granted
May 12, 2015
Kind
B2
Abstract

Techniques are presented for sending an application instruction from a hosting digital appliance to a portable medium, where the instruction is structured as one or more units whose size is a first size, or number of bytes. After flushing the contents of a cache, the instruction is written to the cache, where the cache is structured as logical blocks having a size that is a second size that is larger (in terms of number of bytes) than the first size. In writing the instruction (having a command part and, possibly, a data part), the start of the instruction is aligned with one of the logical block boundaries in the cache and the instruction is padded out with dummy data so that it fills an integral number of the cache blocks. When a response from a portable device to an instruction is received at a hosting digital appliance, the cache is similarly flushed prior to receiving the response. The response is then stored to align with a logical block boundary of the cache.

Claims (37)

1. A method of sending an application instruction from a hosting digital appliance to a detachable non-volatile memory system connected thereto, the non-volatile memory system including one or more non-volatile memory circuits and a controller circuit by which the application instruction is to be executed, wherein the application instruction is structured as one or more units whose size is a first number of bytes, the method comprising:

flushing the contents of a cache on the hosting digital appliance;

subsequently writing the application instruction to the cache on the hosting digital appliance, where the cache on the hosting digital appliance is structured as a plurality of logical blocks whose size is a second number of bytes, the second number being greater than the first number, the writing including:

aligning the start of the application instruction with a boundary of the logical blocks; and

padding the application instruction with dummy data to have a size which is an integer multiple of the second number of bytes; and

subsequently sending the application instruction from the cache on the hosting digital appliance to the non-volatile memory system.

2. The method of claim 1 , wherein the second number is an integer multiple of the first number.

3. The method of claim 1 , wherein the size of said units is a sector.

4. The method of claim 1 , wherein the application instruction includes a command portion and data portion.

5. The method of claim 4 , wherein the command is a write command for storing the data portion in the non-volatile memory system.

6. The method of claim 4 , wherein the command portion is one of said units in size and the data portion is one or more of said units in size.

7. The method of claim 1 , wherein the application instruction does not include a data portion.

8. The method of claim 7 , wherein the application instruction comprises a read data command.

9. The method of claim 8 , further comprising:

in response to the application instruction, returning data from the non-volatile memory system to the hosting digital appliance.

10. The method of claim 9 , further comprising:

storing the returned data in the cache on the hosting digital appliance, including aligning the start of the data with a boundary of the logical blocks.

11. The method of claim 7 , further comprising:

storing a response to the application instruction in the cache on the hosting digital appliance, wherein the response to the application instruction is structured as one or more units whose size is the first number of bytes and the storing includes aligning the start of the response with a boundary of the logical blocks.

12. The method of claim 1 , wherein flushing the contents of the cache on the hosting digital appliance comprises:

closing by the hosting digital appliance of the non-volatile memory system; and

subsequently opening by the hosting digital appliance of the non-volatile memory system.

13. A method of receiving at a hosting digital appliance a response to an application instruction issued by the digital appliance from a controller circuit of a detachable non-volatile memory system connected thereto, Where the non-volatile memory system includes one or more non-volatile memory circuits and the controller circuit and wherein the response is structured as one or more units whose size is a first number of bytes, the method comprising:

issuing the application instruction from the hosting digital appliance to the non-volatile memory system;

flushing the contents of a cache on the hosting digital appliance, where the cache on the hosting appliance is structured as a plurality of logical blocks whose size is a second number of bytes, the second number being greater than the first number;

subsequently receiving the response from the controller circuit to the application instruction on the hosting digital appliance; and

storing the response from the controller circuit in the cache on the hosting digital appliance, the storing including:

aligning the start of the response with a boundary of the logical blocks.

14. The method of claim 13 , wherein the second number is an integer multiple of the first number.

15. The method of claim 13 , wherein the storing further includes:

padding the response with dummy data to have a size Which is an integer multiple of the second number of bytes.

16. The method of claim 13 , wherein the application instruction includes a read command and the response includes data.

17. The method of claim 13 , wherein the response is a status.

18. The method of claim 13 , wherein flushing the contents of the cache on the hosting digital appliance comprises:

closing by the hosting digital appliance of the non-volatile memory system; and

subsequently opening by the hosting digital appliance of the non-volatile memory system.

19. The method of claim 13 , wherein the size of said units is a sector.

Assignments (3)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026276/0703 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2008
From: LIU, XIAN JUN; CHANG, ROBERT C.; YUAN, PO; WANG, JUNZHI; BARZILAI, RON; QAWAMI, BAHMAN; SABET-SHARGI, FARSHID
To: SANDISK CORPORATION
Reel/Frame 020341/0433 →
Continuity (1)
Related Publication 20090157971A1 · Jun 18, 2009