Decoupling Host and Device Address Maps for a Peripheral Component Interconnect Express Controller
US-2015134855-A1 · May 14, 2015 · US
US10594483B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10594483-B2 |
| Application number | US-201514667256-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 24, 2015 |
| Priority date | Mar 27, 2014 |
| Publication date | Mar 17, 2020 |
| Grant date | Mar 17, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Data processing circuitry has a virtual data buffer, with contiguous virtual addresses of the virtual buffer being associated with discontiguous addresses of a physical memory. Cyphering circuitry coupled between the data processing circuitry and the physical memory responds to a command received from the data processing circuitry by determining a key associated with the command based on virtual buffer address information associated with the virtual buffer.
Opening claim text (preview).
The invention claimed is: 1. A method, comprising: receiving a command associated with a virtual buffer, the virtual buffer being configured to store data packets of a data stream, contiguous virtual addresses of the virtual buffer being associated with discontiguous addresses of a physical memory; determining whether a virtual address associated with the command is within an address range; and in response to determining the virtual address associated with the command is within the address range, determining a key based on virtual buffer address information associated with the virtual buffer, wherein the key is generated based on an address-based seed associated with a window defined in the virtual address space; and executing the command using the determined key. 2. The method of claim 1 wherein the command is a write request and the method comprises: receiving first data from a functional block having the virtual buffer, the first data having a first virtual address in the virtual buffer, the virtual buffer having second data, the second data having a second virtual address contiguous with the first virtual address; encrypting the first data using at least one key which is dependent on virtual address information associated with the virtual buffer; and causing the encrypted first data to be written to a location of the physical memory which is non-contiguous to a second location of the second data in the physical memory. 3. The method of claim 2 wherein the received first data is unencrypted data. 4. The method of claim 1 , comprising: receiving a read request for first data from a functional block having the virtual buffer, the first data having a virtual address in the virtual buffer, the virtual buffer having second data, the second data having a second virtual address contiguous with the first virtual address; reading first data in an encrypted form from a location of the physical memory which is non-contiguous to a second location of the second data in the physical memory; and decrypting the encrypted first data using at least one key which is dependent on virtual address information associated with the virtual buffer. 5. The method of claim 4 , comprising providing the first data in unencrypted form to the functional block. 6. The method of claim 1 wherein the virtual address information comprises a first address range. 7. The method of claim 6 , comprising determining if a virtual address associated with the command is within the first address range. 8. The method of claim 7 wherein the command is a request to read encrypted first data associated with the virtual address, comprising only decrypting the encrypted first data if the virtual address is within the first address range. 9. The method of claim 7 wherein the command is a request to write data associated with a first virtual address, comprising only encrypting and writing the first data if the first virtual address is within the first address range. 10. The method of claim 1 , comprising receiving a virtual address associated with the command. 11. The method of claim 1 , comprising receiving identification information from a functional block associated with the virtual buffer. 12. The method of claim 11 wherein the identification information identifies a type of transaction associated with at least one of data and the functional block. 13. The method of claim 11 wherein the command is a write command and executing the command comprises determining if data is to be encrypted or blocked based on the received identification information. 14. The method of claim 11 wherein the command is a read command and executing the command comprises determining whether to decrypt data based on the received identification information. 15. The method of claim 6 , comprising defining a second address range for the virtual buffer and defining at least one key in dependence on address information associated with the second address range. 16. An apparatus, comprising: interface circuitry configured to receive a command associated with an address of a virtual buffer, the virtual buffer being configured to store data packets of a video data stream, contiguous virtual addresses of the virtual buffer being associated with discontiguous addresses of a physical memory; and cyphering circuitry coupled to the interface and configured to determine whether the address associated with the virtual buffer is within an address range, and, in response to determining the address associated with the virtual buffer is within the address range, determine a key associated with the command based on virtual buffer address information associated with the virtual buffer, wherein the key is generated based on an address-based seed associated with a window defined in the virtual address space; and initiate execution of the command. 17. The apparatus of claim 16 wherein the cyphering circuitry is configured to respond to a received write command by, encrypting data associated with the command using the key; and initiating writing of the encrypted data to a location of the physical memory associated with the address of the virtual buffer. 18. The apparatus of claim 16 wherein the cyphering circuitry is configured to respond to a received read command by, initiating retrieval of encrypted data from a location in the physical memory associated with the address of the virtual buffer; and decrypting the retrieved data using the determined key. 19. The apparatus of claim 16 wherein the interface circuitry is configured to couple to a functional block associated with the virtual buffer. 20. The apparatus of claim 16 wherein the cyphering circuitry comprises a windowed cyphering block. 21. The apparatus of claim 16 , comprising a memory interface configured to couple to the physical memory. 22. The apparatus of claim 16 wherein the virtual address information comprises a first address range. 23. The apparatus of claim 22 wherein the cyphering circuitry is configured to determine whether the virtual address associated with the command is within the first address range. 24. The apparatus of claim 23 wherein the cyphering circuitry is configured to initiate execution of the command based on the determination of whether the virtual address is within the first address range. 25. The apparatus of claim 16 wherein the interface circuitry is configured to receive identification information from a functional block associated with the virtual buffer. 26. The apparatus of claim 25 wherein the cyphering circuitry is configured to initiate execution of the command based on received identification information. 27. A system, comprising: data processing circuitry having a virtual data buffer, the virtual data buffer being configured to store data packets of a data stream and contiguous virtual addresses of the virtual buffer being associated with discontiguous addresses of a physical memory; and cyphering circuitry coupled to the data processing circuitry and configured to respond to a command received from the data processing circuitry by determining whether an address associated with the command is within an address range, and, in response to a determination the address associated with the command is within the address range, determine a key associated with the command based on virtual buffer address information associated with the virtual
involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics · CPC title
Encoding or coding, e.g. Huffman coding or error correction · CPC title
based on error correction codes, e.g. McEliece · CPC title
to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00) · CPC title
by using cryptography (for digital transmission H04L9/00) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.