EP3204863A1 - Side channel communication hardware driver - Google Patents
Side channel communication hardware driverInfo
- Publication number
- EP3204863A1 EP3204863A1 EP14903767.3A EP14903767A EP3204863A1 EP 3204863 A1 EP3204863 A1 EP 3204863A1 EP 14903767 A EP14903767 A EP 14903767A EP 3204863 A1 EP3204863 A1 EP 3204863A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- software
- data
- memory
- hardware driver
- driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43632—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
- H04N21/43635—HDMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4367—Establishing a secure communication between the client and a peripheral device or smart card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6334—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
Definitions
- FIG. 1 illustrates a prior art message exchange for authentication over I2C.
- FIG. 2 illustrates an example of the use of a hardware driver for the sideband communication channel when a master writes to a slave.
- FIG. 3 illustrates an example of the use of a hardware driver for the sideband communication channel when a master reads from a slave.
- the HW driver 207 When data 223 is received by the HW driver 207, the HW driver 207 stores it into memory 209, and notifies the slave SW 225 that the data is available. At an appropriate time, the slave SW reads the data 226 from the memory 209. The timing of the slave SW reading from memory does not gate the following acknowledgement process, therefore does not add any delay in the writing process.
- the HW driver 207 acknowledges 230 the receipt of the data via the I2C RX 105, the acknowledgement is transmitted to the I2C TX 103 on the master side, which makes it available to the master HW driver 205. The acknowledgement is passed on to the master TX SW for processing.
- FIG. 3 depicts an example where the master reads information from the slave.
- the slave SW 21 1 allocates a region of memory 320 and provides the pointer to the memory allocation 322 the slave HW driver 207.
- the master SW 201 needs data from the slave SW 21 1, it sends a request 310 to the master HW driver 205, which in turn, sends the request 312 to the I2C TX 103.
- the request 314 is transmitted, over the network 150, to the I2C RX 105 of the slave device.
- the I2C RX 105 makes the request 316 available to the slave HW driver 207 which in turn reads the requested data 317 from the memory 209.
- the slave SW 21 1 may optionally be notified that the read has occurred 318.
- the HW driver 207 makes the requested data 317 available to the slave I2C 105 for transmission 326 to the master I2C 103 via the network 150.
- the master I2C 103 provides the data 328 to the HW driver 205, which in turn writes it into memory 203.
- the master SW is notified 332 that the requested data has been put in memory.
- the master SW 201 reads the data 332 at an appropriate time, without impacting other data transfers between the master and the slave.
- Multiple memory regions may be allocated, each intended for different variables that are used in the higher-level protocol (e.g. HDCP authentication). Once this is done, the HW driver slave 207 responds to transfer requests via the I2C TX side channel 105 in a timely fashion without SW involvement.
- higher-level protocol e.g. HDCP authentication
- the SW may optionally store a map of these allocations in memory and point HW to the location of this map. Instead of providing the HW driver with a single pointer, SW may provide multiple pointers, each intended for a different variable.
- the SW creates a lookup table to maintain the memory pointer for a variable and a lookup key that the HW uses to search the table. The use of a lookup table allows the SW to manage the allocations dynamically.
- variable means any values (including constant values) transferred by a master to a slave (or vice versa) over a side channel.
- the HW driver may collect statistics on successful and unsuccessful transfers.
- the SW may consult these statistics to decide whether to abort an outstanding command, or perhaps to diagnose interoperability problems.
- Any algorithm, software, or method disclosed herein can be embodied in software stored on a non-transitory tangible medium such as, for example, a flash memory, a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), or other memory devices, but persons of ordinary skill in the art will readily appreciate that the entire algorithm and/or parts thereof could alternatively be executed by a device other than a controller and/or embodied in firmware or dedicated hardware in a well known manner (e.g., it may be implemented by an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, etc.).
- ASIC application specific integrated circuit
- PLD programmable logic device
- FPLD field programmable logic device
- machine-readable instructions represented in any flowchart depicted herein can be implemented manually as opposed to automatically by a controller, processor, or similar computing device or machine.
- specific algorithms are described with reference to flowcharts depicted herein, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example machine readable instructions may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2014/002048 WO2016055823A1 (en) | 2014-10-07 | 2014-10-07 | Side channel communication hardware driver |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP3204863A1 true EP3204863A1 (en) | 2017-08-16 |
| EP3204863A4 EP3204863A4 (en) | 2018-07-11 |
Family
ID=55652633
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP14903767.3A Withdrawn EP3204863A4 (en) | 2014-10-07 | 2014-10-07 | Side channel communication hardware driver |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP3204863A4 (en) |
| WO (1) | WO2016055823A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160098376A1 (en) * | 2014-10-07 | 2016-04-07 | Elliptic Technologies Inc. | Side channel communication hardware driver |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0903670A1 (en) * | 1997-09-19 | 1999-03-24 | Hewlett-Packard Company | Improved peripheral device control in data processing systems |
| US20040039927A1 (en) * | 2000-10-30 | 2004-02-26 | Katsuki Hazama | Semiconductor intergrated circuit, receiver apparatus using the same, receiver apparatus manufacturing method and repairing method, and video providing method |
| US7904878B2 (en) * | 2006-12-26 | 2011-03-08 | Vayavya Technologies Private Limited | Simplifying generation of device drivers for different user systems to facilitate communication with a hardware device |
| US8381204B2 (en) * | 2008-04-30 | 2013-02-19 | International Business Machines Corporation | Compiler driven mechanism for registration and deregistration of memory pages |
| US8103803B2 (en) * | 2008-11-21 | 2012-01-24 | Nvidia Corporation | Communication between a processor and a controller |
| US8848910B2 (en) * | 2009-04-10 | 2014-09-30 | Hewlett-Packard Development Company, L.P. | HDCP video over USB |
| US8732381B2 (en) * | 2011-11-09 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | SAS expander for communication between drivers |
| KR101355697B1 (en) * | 2011-12-01 | 2014-01-27 | 인텔 코포레이션 | Secure provision of a digital content protection scheme |
| US8910307B2 (en) * | 2012-05-10 | 2014-12-09 | Qualcomm Incorporated | Hardware enforced output security settings |
-
2014
- 2014-10-07 WO PCT/IB2014/002048 patent/WO2016055823A1/en not_active Ceased
- 2014-10-07 EP EP14903767.3A patent/EP3204863A4/en not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160098376A1 (en) * | 2014-10-07 | 2016-04-07 | Elliptic Technologies Inc. | Side channel communication hardware driver |
| US10133611B2 (en) | 2014-10-07 | 2018-11-20 | Synopsys, Inc. | Side channel communication hardware driver |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3204863A4 (en) | 2018-07-11 |
| WO2016055823A1 (en) | 2016-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9274845B2 (en) | Job scheduling apparatus and job scheduling method thereof to assign jobs to a core | |
| US20210011785A1 (en) | Methods and apparatus for correcting out-of-order data transactions between processors | |
| EP2631901A2 (en) | Apparatus and method for displaying an image on a sink device | |
| US11201836B2 (en) | Method and device for managing stateful application on server | |
| US20170286149A1 (en) | Method for Managing Memory of Virtual Machine, Physical Host, PCIE Device and Configuration Method Thereof, and Migration Management Device | |
| US20240220309A1 (en) | Flexible source assignment to physical and virtual functions in a virtualized processing system | |
| US9419972B2 (en) | Two dimensional direct memory access scheme for enhanced network protocol processing performance | |
| CN109787759B (en) | A data transmission method, system, device and computer-readable storage medium | |
| KR20160054494A (en) | Ascertaining command completion in flash memories | |
| CN105518611A (en) | A remote direct data access method, device and system | |
| US10540301B2 (en) | Virtual host controller for a data processing system | |
| CN114662136A (en) | A high-speed encryption and decryption system and method of multi-algorithm IP core based on PCIE channel | |
| US8959266B1 (en) | Dynamic priority control based on latency tolerance | |
| US8250252B1 (en) | System and methods for using a DMA module for a plurality of virtual machines | |
| EP3204863A1 (en) | Side channel communication hardware driver | |
| US10133611B2 (en) | Side channel communication hardware driver | |
| CN104424141B (en) | Topology and bandwidth management for IO and inbound AV | |
| EP2929444B1 (en) | Apparatus and circuit for processing data | |
| US9182941B2 (en) | Flow control with buffer reclamation | |
| JP2022127418A (en) | Controller, method, program, and vehicle | |
| TWI784359B (en) | Memory request timeouts using a common counter | |
| EP2675105A1 (en) | Apparatus and method for providing security service | |
| EP2141606B1 (en) | Apparatus and method for processing high speed data using hybrid DMA | |
| CN104731524B (en) | The method that capacity register is set | |
| US8296481B2 (en) | Device and method for improving transfer efficiency of odd number of data blocks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20170412 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAX | Request for extension of the european patent (deleted) | ||
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 12/02 20060101ALI20180529BHEP Ipc: G06F 9/54 20060101ALI20180529BHEP Ipc: H04N 21/4363 20110101ALI20180529BHEP Ipc: H04N 21/4367 20110101ALI20180529BHEP Ipc: G06F 13/38 20060101AFI20180529BHEP Ipc: H04N 21/835 20110101ALI20180529BHEP Ipc: H04N 21/6334 20110101ALI20180529BHEP Ipc: G06F 13/12 20060101ALI20180529BHEP |
|
| A4 | Supplementary search report drawn up and despatched |
Effective date: 20180607 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20200325 |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230528 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20250527 |