Hardware-assisted virtualization for implementing secure video output path

US9785576B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9785576-B2
Application numberUS-201414227178-A
CountryUS
Kind codeB2
Filing dateMar 27, 2014
Priority dateMar 27, 2014
Publication dateOct 10, 2017
Grant dateOct 10, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods for employing hardware-assisted virtualization for implementing a secure video output path. An example processing system comprises: a memory; a shared interconnect; and a processing core communicatively coupled to the memory via the shared interconnect, the processing core to: initialize a first virtual machine and a second virtual machine; responsive to receiving a memory access transaction initiated by the first virtual machine to access a memory buffer, tag the memory access transaction with an identifier of the first virtual machine; and responsive to receiving a digital content decoder access transaction initiated by the second virtual machine, tag the digital decoder access transaction with an identifier of the second virtual machine.

First claim

Opening claim text (preview).

The invention claimed is: 1. A processing system, comprising: a memory comprising a secure memory buffer; a communication bus implementing a memory firewall to allow a memory access transaction tagged with a virtual machine identifier that is associated, by on one of a plurality of mappings of memory address ranges to virtual machine identifiers, with a requested memory range; and a processing core communicatively coupled to the memory via the communication bus, the processing core to: associate each transaction to access the memory with a tag comprising an identifier of a virtual machine that has initiated the respective transaction; configure the memory firewall with a mapping of an identifier of the second virtual machine to an address range of the secure memory buffer; receive, by a first virtual machine, an encrypted digital content item; and store, by the first virtual machine, the encrypted digital content item a shared memory buffer accessible by the second virtual machine; decrypt, by the second virtual machine, a portion of the encrypted digital content item to produce a decrypted content portion; store, by the second virtual machine, the decrypted content portion in the secure memory buffer; and cause, by the second virtual machine, the digital content decoder to produce a decoded content portion by reading the decrypted content portion from the secure memory buffer and decoding the decrypted content portion. 2. The processing system of claim 1 , wherein the processing core is further to: storing the identifier of the first virtual machine in a first internal register. 3. The processing system of claim 1 , wherein the processing core is further to: transmit the decoded content portion to a display controller. 4. The processing system of claim 3 , wherein the processing core is further to transmit the decoded content portion to the display controller via a dedicated stream port which is protected from redirecting the decoded content portion to an agent other than the display controller. 5. The processing system of claim 1 , wherein the digital content item comprises a video content item. 6. The processing system of claim 1 , wherein the communication bus is to further implement a peripheral firewall for enforcing peripheral firewall rules comprising a plurality of mappings of peripheral device identifiers to virtual machine identifiers. 7. The processing system of claim 6 , wherein the processing core is further to configure the peripheral firewall with a mapping of an identifier of the second virtual machine to an identifier of the digital content decoder. 8. The processing system of claim 6 , wherein the peripheral firewall is to abort a transaction initiated by a virtual machine to access a peripheral device which is not associated with the virtual machine by one of the peripheral firewall rules. 9. The processing system of claim 1 , wherein the memory firewall is to abort a transaction initiated by a virtual machine to access a memory address which is not associated with the virtual machine by one of the memory firewall rules. 10. A system-on-a-chip (SoC), comprising: a processing core to execute a first virtual machine and a second virtual machine, the processing core further to associate, each memory access transaction with a tag comprising an identifier of a virtual machine that has initiated the respective transaction; and a communication bus coupled to the processing core, the communication bus implementing a memory firewall to allow a memory access transaction tagged with a virtual machine identifier that is associated, by on one of a plurality of mappings of memory address ranges to virtual machine identifiers, with a requested memory range; and wherein the processing core is further to: configure the memory firewall with a mapping of an identifier of the second virtual machine to an address range of a secure memory buffer; receive, by the first virtual machine, an encrypted digital content item; and store, by the first virtual machine, the encrypted digital content item a shared memory buffer accessible by the second virtual machine; decrypt, by the second virtual machine, the portion of the encrypted digital content item to produce a decrypted content portion; store, by the second virtual machine, the decrypted content portion in the secure memory buffer; and cause, by the second virtual machine, the digital content decoder to produce a decoded content portion by reading the decrypted content portion from the secure memory buffer and decoding the decrypted content portion. 11. The SoC of claim 10 , wherein the processing core is further to: tag a first transaction with the identifier of the first virtual machine. 12. The SoC of claim 10 , wherein the processing core is further to: tag a second transaction with the identifier of the second virtual machine. 13. The SoC of claim 10 , wherein the processing core is further to: transmit, by the first virtual machine, the decoded content portion to an input/output (I/O) controller. 14. The SoC of claim 10 , wherein the communication bus is to further implement a peripheral firewall for enforcing peripheral firewall rules comprising a plurality of mappings of peripheral device identifiers to virtual machine identifiers. 15. The SoC of claim 14 , wherein the processing core is further to configure the peripheral firewall with a mapping of an identifier of the second virtual machine to an identifier of the digital content decoder. 16. A method, comprising: initializing, by a processing core, a first virtual machine and a second virtual machine; implementing a memory firewall to allow a memory access transaction tagged with a virtual machine identifier that is associated, by on one of a plurality of mappings of memory address ranges to virtual machine identifiers, with a requested memory range; associating each memory access transaction with a tag comprising an identifier of a virtual machine that has initiated the respective transaction; configuring a memory firewall with a mapping of an identifier of the second virtual machine to an address range of a secure memory buffer; receiving, by the first virtual machine, a portion of an encrypted digital content item; storing, by the first virtual machine, the encrypted digital content item a shared memory buffer accessible by the second virtual machine; decrypting, by the second virtual machine, the portion of the encrypted digital content item to produce a decrypted content portion; storing, by the second virtual machine, the decrypted content portion in the secure memory buffer; and causing, by the second virtual machine, the digital content decoder to produce a decoded content portion by reading the decrypted content portion from the secure memory buffer and decoding the decrypted content portion. 17. The method of claim 16 , wherein initializing the first virtual machine comprises storing identifier of the first virtual machine in a dedicated internal register. 18. The method of claim 16 , further comprising: transmitting, by the first virtual machine, a signal to notify the second virtual machine of the encrypted digital content item. 19. The method of claim 16 , further comprising: transmitting, by the second virtual machine, the decoded content portion to an input/output (I/O) controller. 20. The method of claim 16 , further comprising: implementing a peripheral firewall for enforcing peripheral firewall rules comprising a plurality of mappings of

Assignees

Inventors

Classifications

  • Protect output to user by software means · CPC title

  • Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]} · CPC title

  • in a hierarchical protection system, e.g. privilege levels, memory rings · CPC title

  • Cross-Sectional Technologies · mapped topic

  • Secure boot · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9785576B2 cover?
Systems and methods for employing hardware-assisted virtualization for implementing a secure video output path. An example processing system comprises: a memory; a shared interconnect; and a processing core communicatively coupled to the memory via the shared interconnect, the processing core to: initialize a first virtual machine and a second virtual machine; responsive to receiving a memory a…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/1408. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 10 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).