IP Library Granted Patent US 10,713,392
Granted Patent B2
US 10,713,392 · App. 16/147,164 · Granted Jul 14, 2020

Network interface device and method

Inventors: Steven L. Pope (Cambridge, GB); David J. Riddoch (Huntingdon, GB); Paul Fox (Cambridge, GB)
Assignee: XILINX, INC.
G06F21/72G06F21/57G06F21/602H04L9/0643H04L9/0819
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 10,713,392
App. No.
16/147,164
Granted
Jul 14, 2020
Kind
B2
Abstract

A network interface device comprises an integrated circuit device comprises at least one processor. A network interface device comprises a memory. The integrated device is configured to execute a function with respect to at least a part of stored data in said memory.

Claims (54)

1. A network interface device comprising:

an integrated circuit device comprising at least one processor; and

at least one memory comprising:

a first memory area for storing computer code instructions comprising operations performable by the at least one processor;

a second memory area for storing dynamic state comprising run time variables updated in response to execution of the computer code instructions in the first memory area, wherein the first memory area is partitioned from the second memory area,

wherein said integrated circuit device is configured to execute a hash function over at least some of the computer code instructions in the first memory area; and

wherein said integrated circuit device comprises a resistant part configured to store code associated said hash function.

2. A network interface device as claimed in claim 1 , wherein said at least one memory comprises at least one of a first memory in said integrated circuit and a second memory external to said integrated circuit device.

3. A network interface device as claimed in claim 1 , wherein an output of said hash function is such that said hash function is calculated by said processor using the computer code instructions.

4. A network interface device as claimed in claim 1 , wherein an output of said hash function is such that a size of said output of said hash function together with a size of said stored computer code instructions is greater than a size of available memory for storing data.

5. A network interface device as claimed in claim 1 , wherein an output of said hash function has a size greater than a size of available memory for storing data.

6. A network interface device as claimed in claim 1 , wherein an output of said hash function is dependent on content of said at least a part of said computer code instructions.

7. A network interface device as claimed in claim 1 , wherein said integrated circuit device is configured to receive information identifying at least part of the first memory area and use said information to execute said hash function with respect to stored data in said at least part of the first memory area.

8. A network interface device as claimed in claim 7 , wherein said information identifying a location comprises index information.

9. A network interface device as claimed in claim 1 , wherein said integrated circuit device is configured to output a result of said hash function.

10. A network interface device as claimed in claim 2 , comprising in said integrated circuit device a data store configured to store a first encryption key, said at least one processor is configured to encrypt data to be stored in said second memory using said first encryption key.

11. A network interface device as claimed in claim 10 , wherein said data store is provided by said first memory.

12. A network interface device as claimed in claim 10 , wherein said data store is a fuse data store.

13. A network interface device as claimed in claim 10 , wherein said integrated circuit device is such that debug access is unavailable.

14. A network interface device as claimed in claim 10 , wherein integrated circuit device is such that at least some computer code executing on said at least one processor is unable to directly read said first encryption key.

15. A network interface device as claimed in claim 1 , wherein said integrated circuit device comprises at least one of an ASIC, an FPGA, an integrated circuit and an integrated circuit die.

16. A network interface device as claimed in claim 10 , wherein a second key is provided in said network interface device, said second key being a private key associated with said network interface device.

17. A network interface device as claimed in claim 16 , wherein said second key is stored in one of said data store, the first memory and the second memory.

18. A network interface device as claimed in claim 16 , wherein said network interface device is configured to receive a nonce, the integrated circuit device is configured to encrypt the nonce with said second key and output said encrypted nonce.

19. A method of storing code in a memory of an integrated circuit device, by at least one processor, the method comprising:

storing in a first memory area of the memory, computer code instructions comprising operations performable by the at least one processor;

storing in a second memory area of the memory, a dynamic state comprising run time variables updated in response to execution of the computer code instructions in the first memory area, wherein the first memory area is partitioned from the second memory area;

executing by the at least one processor, a hash function over at least some of the computer code instructions in the first memory area; and

storing code associated with said hash function in a resistant part of said integrated circuit device.

20. A method as claimed in claim 19 , wherein an output of said hash function is such that a size of said output of said hash function together with a size of said computer code instructions as stored is greater than a size of available memory for storing data.

21. A method as claimed in claim 19 , wherein an output of said hash function has a size greater than a size of available memory for storing data.

22. A method as claimed in claim 19 , wherein an output of said hash function is dependent on content of said at least a part of said computer code instructions.

23. A method as claimed in claim 19 , comprising receiving information identifying at least part of the first memory area and using said information when executing said hash function with respect to stored data in said at least part of the first memory area.

24. A method as claimed in claim 23 , wherein said information identifying a location comprises index information.

25. A method as claimed in claim 19 , comprising outputting a result of said function.

26. A device comprising:

a network interface device, said network interface device comprising:

an integrated circuit device comprising at least one processor; and

at least one memory comprising:

a first memory that is part of the integrated circuit device; and

a second memory external to said integrated circuit device,

wherein the at least one memory comprises:

a first memory area for storing computer code instructions comprising operations performable by the at least one processor;

a second memory area for storing dynamic state comprising run time variables updated in response to execution of the computer code instructions in the first memory area, wherein the first memory area is partitioned from the second memory area;

wherein said integrated circuit device is configured to execute a hash function over at least some of the computer code instructions in the first memory area; and

wherein said integrated circuit device comprises a resistant part, said resistant part being configured to store code associated with said hash function.

27. A device as claimed in claim 26 , wherein said function comprises a hash function.

28. A device as claimed in claim 26 , wherein an output of said hash function is such that a size of said output of said function together with a size of said stored computer code instructions is greater than a size of available memory for storing data.

29. A device as claimed in claim 26 , wherein an output of said hash function has a size greater than a size of available memory for storing data.

30. A device as claimed in claim 26 , wherein an output of said hash function is dependent on content of said at least a part of said computer code instructions.

31. A device as claimed in claim 26 , wherein said integrated circuit device is configured to receive information identifying at least part of the first memory area and use said information to execute said hash function with respect to stored data in said at least part of the first memory area.

32. A device as claimed in claim 31 , wherein said information identifying a location comprises index information.

33. A device as claimed in claim 32 , wherein said integrated circuit device is configured to output a result of said hash function and said device is configured to compare said received result with an expected result.

34. A network interface device as claimed in claim 1 , wherein the resistant part comprises a tamper proof module function, said tamper proof module function being configured to store boot code for said function.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: POPE, STEVEN L.; RIDDOCH, DAVID J.; FOX, PAUL
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 047221/0268 →
Continuity (2)
Continuation In Part 15721619 · Sep 29, 2017
Related Publication 20190102576A1 · Apr 4, 2019