DE102019105078A1 - Verfahren und einrichtung zum verlagern von medienströmen in hostvorrichtungen - Google Patents

Verfahren und einrichtung zum verlagern von medienströmen in hostvorrichtungen Download PDF

Info

Publication number
DE102019105078A1
DE102019105078A1 DE102019105078.2A DE102019105078A DE102019105078A1 DE 102019105078 A1 DE102019105078 A1 DE 102019105078A1 DE 102019105078 A DE102019105078 A DE 102019105078A DE 102019105078 A1 DE102019105078 A1 DE 102019105078A1
Authority
DE
Germany
Prior art keywords
media
host controller
peripheral interface
processor
interface host
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.)
Pending
Application number
DE102019105078.2A
Other languages
English (en)
Inventor
Darren Abramson
David Hines
Alberto Martinez
Adeel Aslam
John Howard
Shanthanand R. Kutuva
Karthi R. Vadivelu
Kar Leong Wong
Satheesh Chellappan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tahoe Research Ltd
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102019105078A1 publication Critical patent/DE102019105078A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

Eine beispielhafte Einrichtung weist auf: einen Detektor für Hostcontroller-Verlagerungsfähigkeiten zum Bestimmen, dass eine Medienstromverlagerungsfähigkeit im Peripherieschnittstellen-Hostcontroller verfügbar ist; einen Medienstromverlagerungsarbiter zum Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und einen Endpunktzuordner zum Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um einen Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.

Description

  • GEBIET DER ERFINDUNG
  • Diese Offenbarung betrifft allgemein Medienverarbeitungssysteme und insbesondere Verfahren und Einrichtungen zum Verlagern von Medienströmen in Hostvorrichtungen.
  • HINTERGRUND
  • Medienvorrichtungen und elektronische Vorrichtungen mit Medienwiedergabe- und/oder Medienaufnahmefähigkeiten verwenden Medienschnittstellen, um Medien auszustrahlen, zu präsentieren und/oder aufzuzeichnen. Audio-Schnittstellen umfassen Kopfhörerschnittstellen, Lautsprecherschnittstellen, Audio-Line-out/Line-in-Schnittstellen und Mikrofonschnittstellen für Audio-Datenströme, die von Medienvorrichtungen verarbeitet werden. Medienschnittstellen für andere Arten von Medien wie etwa Videos, Bilder etc. arbeiten in ähnlicher Weise. Medienschnittstellen können mit Anwendungsprozessoren, digitalen Signalprozessoren und/oder Mediencodecs verschaltet werden, die Medien verarbeiten, welche über Medienausgabeschnittstellen ausgestrahlt, präsentiert oder übertragen werden sollen.
  • Figurenliste
    • 1 zeigt eine beispielhafte Hostvorrichtung zum Durchführen einer Medienstromverlagerung zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller gemäß den Lehren der vorliegenden Offenbarung.
    • 2 veranschaulicht die beispielhafte Hostvorrichtung von 1 während einer Medienverlagerungsfähigkeits-Entdeckungsphase.
    • 3 veranschaulicht die beispielhafte Hostvorrichtung von 1 und 2 während einer Vorrichtungsnummerierungs- und Einrichtungsphase.
    • 4 veranschaulicht eine beispielhafte Zuordnungstabelle mit Eingabe/Ausgabe (E/A)-Controller-Kennungen (IDs) für das Zuordnen von E/A-Schnittstellen eines Peripherieschnittstellen-Hostcontrollers zu E/A-Schnittstellen eines Medienprozessors.
    • 5 veranschaulicht die beispielhafte Hostvorrichtung von 1-3 während einer Transferphase der Medienstromverlagerung.
    • 6 veranschaulicht eine beispielhafte Endpunkt-Zuordnungstabelle der Peripherieschnittstellen-Hostcontroller von 1-3 und 5.
    • 7 veranschaulicht den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager von 1-3 und 5.
    • 8 veranschaulicht den beispielhaften Medienprozessor-Manager von 1-3 und 5.
    • 9 zeigt ein Flussdiagramm, das beispielhafte computerlesbare Anweisungen repräsentiert, die ausgeführt werden können, um den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager von 1-3, 5 und 7 und/oder den beispielhaften Medienprozessor-Manager von 1-3, 5 und 8 zu implementieren, um einen Medienstromverlagerungstransfer durchzuführen.
    • 10 ist ein Blockschaltbild einer beispielhaften Verarbeitungsplattform, die dafür ausgelegt ist, die Anweisungen von 9 auszuführen, um den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager von 1-3, 5 und 7 und/oder den beispielhaften Medienprozessor-Manager von 1-3, 5 und 8 zu implementieren, um einen Medienstromverlagerungstransfer durchzuführen.
  • Soweit möglich werden in den Abbildungen und der beigefügten Beschreibung dieselben Bezugszeichen verwendet, um dieselben oder gleichartige Teile zu bezeichnen. Verbindungslinien oder Verbinder, die in den verschiedenen vorgestellten Figuren gezeigt werden, sollen beispielhafte Funktionsbeziehungen und/oder physische oder logische Kopplungen zwischen den verschiedenen Elementen repräsentieren.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die hier offenbarten Beispiele ermöglichen es Hostvorrichtungen, Medienströme entsprechend den Peripherievorrichtungen effizienter zu handhaben als bisherige Verfahren, indem Medienströme zwischen Peripherieschnittstellen-Hostcontrollern und Medienprozessoren geleitet werden statt die Medienströme unter Verwendung von Anwendungsprozessoren zu verarbeiten. Hier offenbarte Beispiele können mit unterschiedlichen Arten von Medienströmen verwendet werden, was Audio-Datenströme und/oder Video-Datenströme einschließt. Beispielhafte Hostvorrichtungen, in denen hier offenbarte Beispiele implementiert sein können, umfassen mobile Kommunikations-/Medienvorrichtungen (z. B. mobile Smartphones, mobile Medienvorrichtungen, Tablet-Computervorrichtungen, tragbare Computervorrichtungen (z. B. Smartwatches) etc.), Desktop-Computer, Laptop/Notebook-Computer, Internetgeräte, Heimunterhaltungsvorrichtungen, Automobile und andere Arten von Hostvorrichtungen.
  • Gemäß Verwendung hier ist eine „Peripherievorrichtung“ eine Zusatzvorrichtung, die in eine Hostvorrichtung eingesteckt oder mit dieser verbunden ist. In einigen Beispielen kommuniziert die Peripherievorrichtung mit der Hostvorrichtung unter Verwendung von digitalen Informationen, die durch analoge Signale über eine Verbindungsschnittstelle (z. B. ein physisches Schnittstellenkabel, physische Verbinder, eine drahtlose Verbindung etc.) übertragen werden. Die Peripherievorrichtung und die Hostvorrichtung können die analogen Signale abtasten, um die digitalen Informationen zu extrahieren, und können die digitalen Informationen verarbeiten, um einen Medienstrom zu codieren, zu decodieren, wiederzugeben oder zu speichern (z. B. aufzuzeichnen). In einigen Beispielen weisen die digitalen Informationen Steuerdaten zum Steuern der Medienstromhandhabung an der Hostvorrichtung und/oder der Peripherievorrichtung auf. Beispielhafte Arten von Peripherievorrichtungsschnittstellen umfassen USB (Universal Serial Bus)-Schnittstellen, Thunderbolt™-Schnittstellen etc. Peripherievorrichtungen können Ausgabevorrichtungen sein, die Medienströme von Hostvorrichtungen empfangen. In einigen Beispielen sind solche Ausgabe-Peripherievorrichtungen dafür vorgesehen, die Medienströme an Benutzer auszugeben, und sie können unter Verwendung von Lautsprechern, Kopfsprechgarnituren, Kopfhörern, Anzeigen, Hochfrequenz (HF)-Sendern (z. B. drahtlosen Bluetooth®-Sendern) etc. implementiert sein. Peripherievorrichtungen können auch Eingabevorrichtungen sein, die Medienströme für Hostvorrichtungen wie etwa Mikrofone, Kameras, HF-Empfänger (z. B. drahtlose Blue-tooth@-Empfänger) etc. bereitstellen.
  • Um ein Zusammenwirken mit Peripherievorrichtungen zu ermöglichen, werden Hostvorrichtungen, in denen hier offenbarte Beispiele implementiert sein können, mit Hostcontrollern bereitgestellt. Ein Hostcontroller verwaltet die Erkennung von verbundenen Peripherievorrichtungen. Hier offenbarte Beispiele können mit unterschiedlichen Arten von Peripherieschnittstellen-Controllern verwendet werden, einschließlich USB-Hostcontrollern, Thunderbolt™-Schnittstellencontrollern etc.
  • Hostvorrichtungen, in denen hier offenbarte Beispiele implementiert sein können, weisen einen Anwendungsprozessor (z. B. eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU)) und einen Medienprozessor auf. In solchen Hostvorrichtungen kann der Anwendungsprozessor unter Verwendung eines Intel®-Prozessors, eines ARM®-Prozessors und/oder irgendeines anderen Prozessortyps implementiert sein. Anwendungsprozessoren in Hostvorrichtungen sind typischerweise dafür konfiguriert, ein Betriebssystem (Operating System, OS), Anwendungen, Systemsteuerungsprozesse etc. auszuführen und können auch eine Medienverarbeitung durchführen. Wird allerdings eine Medienverarbeitung durchgeführt, sind viele Anwendungsprozessoren weniger effizient als dedizierte Medienprozessoren, da Anwendungsprozessoren nicht über die medienspezifischen Schaltungen und/oder Merkmale zum Decodieren, Codieren und/oder sonstigen Verarbeiten von Medien in einer zeiteffizienten und energieeffizienten Weise verfügen. In hier offenbarten Beispielen wird die Medienverarbeitung in einer Hostvorrichtung an einen Medienprozessor verlagert, statt eine solche Verarbeitung in einem Anwendungsprozessor durchzuführen. Beispielhafte Arten von Medienprozessoren umfassen Hardwarebeschleuniger, die Ausführung von Anweisungen betreffende Beschleuniger und/oder eine beliebige andere Art von Medienverarbeitungsbeschleunigern (z. B. digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen (Application-Specific Integrated Circuits, ASICs), Multimedia-Coprozessoren, Audio-Prozessoren, Video-Prozessoren, Audio-Codecs, Video-Codecs etc.).
  • In bisherigen Audio-Designs wurden Audio-Datenströme primär durch analoge 3,5-mm-Audiobuchsen geleitet, und diese Audio-Datenströme wurden in einem Audio-DSP auf Plattformen verlagert und verarbeitet, die mit einer solchen dedizierten Audio-Verarbeitungskomponente konfiguriert waren. Dies ermöglichte es dem Anwendungsprozessor, für längere Zeiträume in tiefere Schlafzustände zu wechseln, während Audio-Datenströme wie die stromsparende Musikwiedergabe auf dem Audio-DSP aktiv waren.
  • Bisherige Audio-Designs haben sich weiterentwickelt und nutzen DSPbasierte Audio-Controller zur Hardwarebeschleunigung nur für Medien, die durch traditionelle Audio-Schnittstellen (z. B. analoge 3,5-mm-Audiobuchsen) geleitet werden, und nicht durch USB oder andere Peripherieschnittstellen-Hostcontroller, über die digitale Daten ausgetauscht werden. Allerdings wenden sich viele Hersteller zunehmend dem USB-Schnittstellenstandard für Peripherievorrichtungen als Peripherieschnittstellentechnologie zur Handhabung von Medienstromtransfers zwischen Hostvorrichtungen und Peripherievorrichtungen zu. Beispielsweise bietet der USB-Typ-C-Port einen wesentlichen Vorteil gegenüber der analogen 3,5-mm-Audiobuchse, insofern als dass der USB-Typ-C-Port einen einzelnen Verbindungsport für die Handhabung von Anzeige-Peripherievorrichtungen, Audio-Peripherievorrichtungen, Humanschnittstellenvorrichtungen (Human Interface Devices, HIDs), Datenspeicher-Peripherievorrichtungen und Stromversorgungen ermöglicht. Somit hat der branchenweite Einsatz des USB-Typ-C-Ports für Kopfsprechgarnituren, Lautsprecher und Mikrofone in Erstausrüster (Original Equipment Manufacturer, OEM)-Plattformen zugenommen. Ferner haben das geringere Platzangebot in Vorrichtungen mit kleinerem Formfaktor und die höheren Verarbeitungsanforderungen in solchen Vorrichtungen dazu geführt, dass frühere analoge 3,5-mm-Audiobuchsen in neuen Vorrichtungen seltener oder gar nicht mehr verwendet werden. Dies wiederum macht den USB-Bus derzeit zum primären Transportmodus für Audio-Datenströme. Bisherige Technologien verarbeiten USB-basierte Audio-Datenströme im Anwendungsprozessor, was eine deutlich höhere Leistungsaufnahme bei der Verarbeitung von Audio-Datenströmen zur Folge hat, die früher von einem Audio-DSP gehandhabt und an eine analoge 3,5-mm-Audiobuchse geleitet wurde.
  • Der USB-Standard ist in mobilen Kommunikations-/Medienvorrichtungen, Desktop-Computern, Laptop/Notebook-Computern, Tablet-Computervorrichtungen, Internetgeräten, Heimunterhaltungsvorrichtungen, Automobilen und anderen Arten von Hostvorrichtungen implementiert worden, um Medienströme an und von USB-Peripherievorrichtungen zu übertragen. Im Kontext von Audio-Datenströmen leiten bisherige USB-Hostvorrichtungen USB-basierte Audio-Datenströme an einen USB-Hostcontroller, der dann DMA (Direct Memory Access, Direktspeicherzugriff)-Transfers der Audio-Datenströme zwischen einem Anwendungsprozessor und dem Systemspeicher (z. B. einem dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM)) einleitet. Die Verarbeitung der Audio-Datenströme wird dann von Audio-Software durchgeführt, die auf einem OS auf dem Anwendungsprozessor ausgeführt wird. Diese hat eine erhebliche Leistungsaufnahme zur Folge, beispielsweise während der Medienwiedergabe oder bei Sprachverbindungen.
  • Die deutlich höhere Leistungsaufnahme von bisherigen USB-basierten Verfahren zur Handhabung von Audio-Datenströmen ergibt sich durch die häufige Aktivierung des Datenübertragungspfades zwischen dem Speicher und dem Anwendungsprozessor (z. B. jede 1 Millisekunde (ms), was dem typischen USB-Dienstintervall für Audio-Transportdatenraten entspricht) und das häufige Aufwecken des Anwendungsprozessors, welches eine zusätzliche Leistungsaufnahme bewirkt (z. B. typischerweise alle 10 ms für die Verarbeitung von Audio-Datenströmen), um mehrere andere Subsysteme aktiv zu halten (z. B. Caches, Busse, Kerne etc.), wenn Audio-Datenströme verarbeitet werden. Somit trägt der Overhead beim Aufwecken der CPU alle 10 ms zusätzlich zur Erhöhung der Systemleistungsaufnahme während der Audio-Verarbeitung bei.
  • Hier veröffentliche Beispiele ermöglichen das Verlagern der Medienstromverarbeitung an einen Medienprozessor einer Hostvorrichtung, anstatt dass eine solche Verarbeitung vom Anwendungsprozessor der Hostvorrichtung durchgeführt wird. Da Medienprozessoren speziell für Medienverarbeitungsfunktionen ausgelegt sind, sind Medienprozessoren bei der Verarbeitung von Medien energieeffizienter als Anwendungsprozessoren, die dafür ausgelegt sind, eine breitere Vielfalt von Funktionen zu handhaben, was das Ausführen von Betriebssystemen, Anwendungen, Benutzerschnittstellen und Systemsteuerungsaktivitäten einschließt. Somit verbrauchen, durch Verlagern der Medienstromverarbeitung an einen Medienprozessor, hier offenbarte Beispiele relativ weniger Strom bei der Handhabung von Medienströmen (z. B. Medienströme, die von/an USB-verbundene(n) Peripherievorrichtungen kommen/gehen) als bisherige Verfahren, die Medienströme unter Verwendung eines Anwendungsprozessors einer Hostvorrichtung verarbeiten.
  • Bisherige Verfahren verarbeiten einen Medienstrom entsprechend einer Peripherievorrichtung, indem eine Hostvorrichtung dafür konfiguriert wird, einen einzelnen Steuer- und Datenpfad für den Medienstrom zu erzeugen, wenn die Peripherievorrichtung mit der Hostvorrichtung verbunden ist. Um eine Medienstromverlagerung gemäß den Lehren dieser Offenbarung zu implementieren, verbessern die hier offenbarten Beispiele den Datenpfad für das Übertragen des Medienstroms, indem der einzelne Steuer- und Datenpfad des Medienstroms in zwei separate Pfade getrennt wird, die einen Steuerpfad und den separaten Datenpfad aufweisen. In hier offenbarten Beispielen wird der Datenpfad für den Medienstromtransfer verbessert, um die Leistungsaufnahme einer Hostvorrichtung in Relation zu bisherigen Medienverarbeitungsverfahren zu reduzieren, indem der Datenpfad mit Tiefenpufferfähigkeiten bereitgestellt wird, so dass das Übertragen des Medienstroms in der Hostvorrichtung ein weniger häufiges Aufwecken oder Aktivieren eines Pfades zum Speicher bewirkt als bei bisherigen Verfahren (z. B. bei bisherigen Verfahren, bei denen das USB-Dienstintervall ein Aufwecken alle 1 Millisekunden vorsieht).
  • Die Leistungsaufnahme einer Hostvorrichtung wird ebenfalls in Relation zu bisherigen Verfahren gesenkt, indem der Datenpfad des Medienstroms zum Verarbeiten des Medienstroms an einen stromsparenden Medienprozessor geleitet wird. Da die Medienstromverarbeitung von einem stromsparenden Medienprozessor durchgeführt wird und der stromsparende Medienprozessor in Relation weniger Strom verbraucht als ein Anwendungsprozessor der Hostvorrichtung, ermöglichen hier offenbarte Beispiele ein weiteres Reduzieren der Leistungsaufnahme der Hostvorrichtung, indem die Häufigkeit, mit der der Anwendungsprozessor geweckt werden muss, während der stromsparende Medienprozessor den Medienstrom verarbeitet, verringert wird. Das heißt, auch wenn der Anwendungsprozessor nach wie vor geweckt werden kann, um Steuerdaten (z. B. während der Medienstromeinrichtung, der Medienstrombeendigung und der ereignisgesteuerten Medienstromverwaltung) entsprechend dem Medienstrom zu handhaben, sind solche Aktivitäten weniger häufig als bei 10-ms-Aufweckzyklen für die Verarbeitung des Medienstroms, wie sie erforderlich sind, wenn der Anwendungsprozessor im Datenpfad zum Verarbeiten des Medienstroms enthalten ist.
  • 1 zeigt eine beispielhafte Hostvorrichtung 100 zum Durchführen einer Medienstromverlagerung zwischen beispielhaften Peripherieschnittstellen-Hostcontrollern 102a, 102b und einem beispielhaften Medienprozessor 104. In dem dargestellten Beispiel können die Medienströme Ausgabe-Medienströme sein, die die Hostcontroller 102a,b an jeweilige verbundene Peripherievorrichtungen 106a, 106b senden, und/oder Medienströme können Eingabe-Medienströme sein, die durch die Hostcontroller 102a,b von den Peripherievorrichtungen 106a,b empfangen werden. Anders als bei bisherigen Verfahren, die einen Anwendungsprozessor von Hostvorrichtungen verwenden, um Medienströme zu verarbeiten (z. B. Decodieren von Mediendaten, Codieren von Mediendaten, Komprimieren von Mediendaten, Dekomprimieren von Mediendaten, Verschlüsseln von Mediendaten, Entschlüsseln von Mediendaten, Speichern von Mediendaten etc.), werden in hier offenbarten Beispielen Medienströme an die und/oder von den Peripherievorrichtungen 106a,b durch die Peripherieschnittstellen-Hostcontroller 102a,b und zwischen den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104 geleitet, so dass der Medienprozessor 104 rechenintensive Verarbeitungen des Medienstroms (z. B. Decodieren, Codieren, Komprimieren, Dekomprimieren, Verschlüsseln, Entschlüsseln, Speichern etc.) handhaben kann. Durch Verlagern der Medienverarbeitung an den Medienprozessor 104 anstelle der Handhabung von Medienströmen durch einen Anwendungsprozessor der Hostvorrichtung 100 (z. B. den Prozessor 1012 der Prozessorplattform 1000 von 10) ist die Medienverarbeitung wesentlich effizienter als bei bisherigen Verfahren, die Anwendungsprozessoren für eine solche Medienverarbeitung verwenden. Darüber hinaus führt, da ein Anwendungsprozessor für die Handhabung von OS-Prozessen, Anwendungsprozessen, Systemsteuerungsprozessen etc. einer Hostvorrichtung verantwortlich ist, das Hinzufügen von Medienverarbeitungsfähigkeiten zum Anwendungsprozessor zu Latenzen für die anderen Prozesse, die vom Anwendungsprozessor gehandhabt werden. Um die Medienverarbeitungslast auf dem Anwendungsprozessor zu eliminieren oder wesentlich zu reduzieren, verlagern hier offenbarte Beispiele die Medienverarbeitung an den Medienprozessor 104 des dargestellten Beispiels, so dass eine solche Medienverarbeitung die Leistung des Anwendungsprozessors bei der Handhabung anderer Prozessorzuständigkeiten nicht vermindert. Das heißt, der Medienprozessor 104 arbeitet als Hardwarebeschleuniger, der dafür ausgelegt ist, rechenintensive Algorithmen oder Prozesse für Mediendaten in einer schnellen und effizienten Weise durchzuführen, die ansonsten mehr Zeit erfordern und weniger effizient durchgeführt werden, wenn sie von einem Anwendungsprozessor abgewickelt werden. Durch Erzielen solch höherer Recheneffizienzen und kürzerer Medienverarbeitungszeiten unter Verwendung des Medienprozessors 104 können hier offenbarte Beispiele verwendet werden, um die Leistungsaufnahme von Hostvorrichtungen zu senken und bessere Medienverarbeitungsfähigkeiten zu ermöglichen, da der Medienprozessor 104 Medienverarbeitungsalgorithmen in einer energieeffizienteren Weise (z. B. geringere Leistungsaufnahme pro Medienverarbeitungsanweisung als ein Anwendungsprozessor) und in einer zeiteffizienteren Weise (z. B. können mehr Mediendaten in kürzerer Zeit verarbeitet werden als bei einem Anwendungsprozessor) implementiert als ein Anwendungsprozessor.
  • In dem dargestellten Beispiel von 1 können die Peripherieschnittstellen-Hostcontroller 102a,b USB-Hostcontroller und/oder eine beliebige andere Art von Hostcontrollern sein, mit denen Peripherievorrichtungen verbunden sein können, um Medienströme von der Hostvorrichtung 100 zu empfangen und/oder Medienströme für die Hostvorrichtung 100 bereitzustellen. Auch wenn zwei Peripherieschnittstellen-Hostcontroller 102a,b gezeigt werden, können hier offenbarte Beispiele unter Verwendung von weniger oder mehr Peripherieschnittstellen-Hostcontrollern 102a,b in einer Hostvorrichtung implementiert sein. Darüber hinaus gilt: Auch wenn einige der hier offenbarten Beispiele basierend auf beiden Peripherieschnittstellen-Hostcontrollern 102a,b und den entsprechenden damit verbundenen Peripherievorrichtungen 106a,b beschrieben werden, können solche Beispiele in ähnlicher Weise mit einer einzelnen der Peripherieschnittstellen-Hostcontroller 102a,b und einer entsprechenden damit verbundenen Peripherievorrichtung 106a,b implementiert sein. Darüber hinaus können hier offenbarte Beispiele mit mehr Peripherieschnittstellen-Hostcontrollern und mehr Peripherievorrichtungen durchgeführt werden. Ferner können hier offenbarte Beispiele in Verbindung mit mehreren Peripherievorrichtungen implementiert sein, die mit einem einzelnen Peripherieschnittstellen-Hostcontroller 102a,b verbunden sind.
  • Der beispielhafte Medienprozessor 104 kann unter Verwendung eines DSP, eines Mediencodecs, einer ASIC und/oder einer anderen Art von Medienprozessor/Hardwarebeschleuniger zum Verarbeiten von Medienströmen implementiert sein. Auch wenn ein einzelner Medienprozessor 104 gezeigt wird, können hier offenbarte Beispiele mit mehreren Medienprozessoren implementiert sein. Darüber hinaus gilt: Auch wenn der Medienprozessor 104 in 1 als mit beiden Peripherieschnittstellen-Hostcontrollern 102a,b verschaltet gezeigt wird, kann in anderen Beispielen, in denen mehrere Medienprozessoren bereitgestellt sind, jeder der Peripherieschnittstellen-Hostcontroller 102a,b mit einem jeweiligen der Medienprozessoren verschaltet sein.
  • In dem dargestellten Beispiel sind die Peripherieschnittstellen-Hostcontroller 102a,b mit einem beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108 verschaltet. Außerdem ist in dem dargestellten Beispiel der Medienprozessor 104 mit einem beispielhaften Medienprozessor-Manager 110 verschaltet. In dem dargestellten Beispiel sind der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 unter Verwendung von Software implementiert, die von einem Anwendungsprozessor (z. B. dem beispielhaften Prozessor 1012, der in der beispielhaften, nachstehend in Verbindung mit 10 beschriebenen Prozessorplattform gezeigt wird) ausgeführt wird. Beispielsweise kann der Peripherieschnittstellen-Hostcontroller-Manager 108 als ein Peripherieschnittstellen-Medien-Software-/Firmwarestapel (z. B. ein USB-Audio-Software-/Firmwarestapel) implementiert sein, und der Medienprozessor-Manager 110 kann als Medien-Software-/Firmwarestapel (z. B. ein Medien-Software-/Firmwarestapel für Audio/Video-Systeme) implementiert sein. Außerdem sind in dem dargestellten Beispiel die Peripherieschnittstellen-Hostcontroller 102a,b und der Medienprozessor 104 unter Verwendung von Hardware implementiert. Allerdings können sowohl die Peripherieschnittstellen-Hostcontroller 102a,b als auch der Medienprozessor 104 mit jeweiliger Software und/oder Firmware bereitgestellt sein, die ausführbar ist, um Funktionalitäten mit unterschiedlicher Perspektive zu implementieren. Beispielsweise kann der Medienprozessor 104 Firmware ausführen, um unterschiedliche Medienverarbeitungsalgorithmen zu implementieren und/oder um unterschiedliche Medienstromsteuerungen zu implementieren. Darüber hinaus können die Peripherieschnittstellen-Hostcontroller 102a,b Firmware ausführen, um eine Medienstromsteuerungsverwaltung zu implementieren und/oder eine Schnittstellenverbindung mit Peripherievorrichtungen herzustellen.
  • In dem dargestellten Beispiel werden die Peripherieschnittstellen-Hostcontroller 102a,b mit entsprechenden Hostcontroller-Fähigkeitsregistern 112a, 112b bereitgestellt, und der Medienprozessor 104 wird mit einem Medienprozessor-Fähigkeitsregister 114 bereitgestellt. Die beispielhaften Hostcontroller-Fähigkeitsregister 112a,b speichern Informationen zur Medienstromverlagerungsfähigkeit, die angeben, ob die jeweiligen Peripherieschnittstellen-Hostcontroller 102a,b in der Lage sind, eine Medienstromverlagerung gemäß den Lehren dieser Offenbarung zu unterstützen. Das beispielhafte Medienprozessor-Fähigkeitsregister 114 speichert Informationen zur Medienstromverlagerungsfähigkeit, die angeben, ob der Medienprozessor 104 in der Lage ist, eine Medienstromverlagerung zu unterstützen. Sowohl die beispielhaften Hostcontroller-Fähigkeitsregister 112a,b als auch das beispielhafte Medienprozessor-Fähigkeitsregister 114 speichern die Informationen zur Verlagerungsfähigkeit in einem Feld mit einem oder mehreren Bits, in dem ein Wert der ein oder mehreren Bits angibt, dass keine Medienstromverlagerungsfähigkeit gegeben ist (z. B. Verlagerungsfähigkeitswert = 0), und ein anderer Wert der ein oder mehreren Bits angibt, dass eine Medienstromverlagerungsfähigkeit gegeben ist (z. B. Verlagerungsfähigkeitswert = 1). In hier offenbarten Beispielen unterstützen die Peripherieschnittstellen-Hostcontroller 102a,b und der Medienprozessor 104 Medienstromverlagerungsfähigkeiten, wenn es physische Datenpfadverbindungen zwischen den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104 gibt, um Medienstromdaten dazwischen zu übertragen.
  • In dem dargestellten Beispiel wird die Hostvorrichtung 100 mit einem beispielhaften Speicher 118 bereitgestellt, um digitale Medien (z. B. Audio, Video, Bilder, Text etc.) zu speichern. Der beispielhafte Speicher 118 ist mit dem Medienprozessor 104 verschaltet, um Medienströme zwischen dem Speicher 118 und dem Medienprozessor 104 zu übertragen. Der beispielhafte Speicher 118 kann unter Verwendung eines beliebigen geeigneten flüchtigen oder nichtflüchtigen Speichers implementiert sein; dies schließt DRAM, statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM), eine Festkörperplatte (Solid State Drive, SSD), ein magnetisches Festplattenlaufwerk (Hard Disk Drive, HDD), einen optischen Datenträger (z. B. eine Compact-Disk (CD), eine Digital Versatile Disk (DVD)), 3D-Flash-Speicher, 3D-Crosspoint-Speicher, NAND-Flash-Speicher in Single-Threshold- oder Multi-Threshold-Level-Ausführung etc. ein. In dem dargestellten Beispiel konfiguriert der Medienprozessor-Manager 110 DMA (Direct Memory Access, Direktspeicherzugriff)-Transfers von Mediendaten zwischen dem Speicher 118 und dem Medienprozessor 104. Um Medienstromdaten aus dem Speicher 118 zu speichern oder zu puffern, wird der Medienprozessor 104 mit einem beispielhaften Datenpuffer 124 (z. B. einem SRAM und/oder einem beliebigen anderen Speicher, der in den Medienprozessor 104 eingebettet ist, einem FIFO (First-in, First-out)-Puffer etc.) bereitgestellt. In dem dargestellten Beispiel ist der Datenpuffer 124 ausreichend groß, um (z. B. in Relation zu bisherigen Verfahren für den Transfer von Medienströmen) die Häufigkeit, mit der der Medienprozessor 104 Zugriffsanforderungen an den Speicher 118 senden muss, um zusätzliche Medienstromdaten an den und/oder von dem Speicher 118 zu übertragen, zu verringern.
  • In dem Beispiel von 1 sind die Peripherieschnittstellen-Hostcontroller 102a,b über entsprechende E/A-Controller, die nachstehend in 2, 3 und 5 gezeigt werden, mit dem Medienprozessor 104 verschaltet. In dem dargestellten Beispiel implementieren die E/A-Controller der Peripherieschnittstellen-Hostcontroller 102a,b und des Medienprozessors 104 beispielhafte Medienstrom-Transportmedien 126a, 126b, die einen Datenpfad zum Übertragen von Medienstrompaketen zwischen dem Medienprozessor 104 und den Peripherieschnittstellen-Hostcontrollern 102a,b bilden. Handelt es sich beispielsweise bei den Peripherievorrichtungen 106a,b, die mit den Peripherieschnittstellen-Hostcontrollern 102a,b verbunden sind, um Ausgabevorrichtungen (z. B. Lautsprecher, Kopfsprechgarnituren, Kopfhörer, Anzeigen, HF-Sender etc.), können die Medienstrom-Transportmedien 126a,b verwendet werden, um Ausgabe-Medienströme zu übertragen, die Mediendaten aufweisen, die vom Medienprozessor 104 für das Präsentieren durch die Peripherievorrichtungen 106a,b verarbeitet werden. Wenn es sich bei den Peripherievorrichtungen 106a,b um Eingabevorrichtungen handelt (z. B. um Mikrofone, Kameras, HF-Empfänger etc.), können die Medienstrom-Transportmedien 126a,b verwendet werden, um Eingabe-Medienströme (z. B. Rohdaten, uncodierte Daten, codierte Daten etc.) von den Peripherieschnittstellen-Hostcontrollern 102a,b an den Medienprozessor 104 zu übertragen. In solchen Beispielen werden die Eingabe-Medienströme von den Peripherievorrichtungen 106a,b für die Peripherieschnittstellen-Hostcontroller 102a,b bereitgestellt. Wenn die Peripherievorrichtungen 106a,b Steuerinformationen an die Peripherieschnittstellen-Hostcontroller 102a,b senden, trennen die Peripherieschnittstellen-Hostcontroller 102a,b die Steuerinformationen von den Medienstromdaten, so dass die Steuerinformationen vom Peripherieschnittstellen-Hostcontroller-Manager 108 gehandhabt werden können und die Medienstromdaten über die Medienstrom-Transportmedien 126a,b übertragen werden können. In dem dargestellten Beispiel können die Medienstromtransfers über die Medienstrom-Transportmedien 126a,b von den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104 unter Verwendung von synchronen Transfers, isochronen Transfers, Massentransfers und/oder asynchronen Transfers gehandhabt werden.
  • Die beispielhaften Medienstrom-Transportmedien 126a,b implementieren Hardwarebrücken, die die Medienströme zwischen den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104 übertragen. Solche Hardwarebrücken reduzieren die Leistungsaufnahme der Medienstromverarbeitung und ermöglichen ein stromsparendes Medienstreaming. Die Verwendung der Hardwarebrücken wird vom beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108 und dem beispielhaften Medienprozessor-Manager 110 verwaltet. Beispielsweise implementieren, wie in 1 gezeigt, der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 eine Peripherie-Medienverlagerungs-DDI (Driver-to-Driver Interface, Treiber-zu-Treiber-Schnittstelle) 132, die einen Steuerpfad bildet, um die Übermittlung von Steuerinformationen zwischen dem Peripherieschnittstellen-Hostcontroller-Manager 108 und dem Medienprozessor-Manager 110 zu ermöglichen. In dem dargestellten Beispiel wird die Peripherie-Medienverlagerungs-DDI 132 verwendet, um das Medienstrom-Routing zwischen dem Peripherieschnittstellen-Hostcontroller 102a,b und dem Medienprozessor 104 zu entdecken, einzurichten und/oder zu beenden. In einigen Beispielen, bei Einsatz zum Implementieren einer USB-Audio-Verlagerungskonfiguration, handelt es sich bei der Peripherie-Medienverlagerungs-DDI 132 um eine USB-Audio-Verlagerungs-DDI. In einigen Beispielen, bei Einsatz zum Implementieren einer USB-Video-Verlagerungskonfiguration, handelt es sich bei der Peripherie-Medienverlagerungs-DDI 132 um eine USB-Video-Verlagerungs-DDI. Nachdem der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 die Peripherie-Medienverlagerungs-DDI 132 dazwischen eingerichtet haben, fließt der Medienstromtransfer über die Medienstrom-Transportmedien 126a,b direkt zwischen den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104, ohne dass in signifikantem Umfang eine Beteiligung eines Anwendungsprozessors und/oder ohne dass in signifikantem Umfang Zugriffe auf den Hauptspeicher (z. B. den Speicher 118) erforderlich sind, wie dies bei bisherigen Verfahren für den Transfer von Medienströmen der Fall ist. Dies macht es möglich, den Medienstrom im Medienprozessor 104 zu verarbeiten, was wiederum eine stromsparendere Medienverarbeitung von Medienströmen entsprechend den Peripherievorrichtungen 106a,b ermöglicht.
  • Eine beispielhafte Übermittlung von Steuernachrichten, die über die Peripherie-Medienverlagerungs-DDI 132 ausgetauscht werden, kann die Wiedergabe und/oder Aufzeichnung eines Medienstroms betreffen (z. B. Starten, Beenden, Pausieren, Zurückspulen, schneller Vorlauf, Zurückspringen, Vorwärtsspringen etc.), das Ändern von Eigenschaften eines Medienstroms (z. B. Lautstärke, Stummschalten, Ton, Balance, Audio-Equalizer-Effekte, Farbsättigungen etc.), das Beenden von Medienströmen und/oder beliebige andere Steuerungen, die an den Medienprozessor 104 übermittelt werden sollen, so dass der Medienprozessor 104 entsprechend reagieren kann. Das Ändern von Eigenschaften eines Medienstroms kann auf Basis von Eigenschaftsänderungsanforderungen erfolgen (z. B. von einem OS und/oder einer auf dem OS ausgeführten Medienanwendung empfangene Anforderungen), die Medieneigenschaften in den Peripherievorrichtungen 106a,b ändern sollen (z. B. in Hardware und/oder Software der Peripherievorrichtungen 106a,b) oder Medieneigenschaften in der Hostvorrichtung 100 ändern sollen (z. B. in Hardware und/oder Software der Hostvorrichtung 100). Medieneigenschaften sind durch das Ändern von Werten in jeweiligen Steuerknoten (z. B. einem Lautstärke-Steuerknoten, einem Stummschaltungs-Steuerknoten, einem Ton-Steuerknoten, einem Balance-Steuerknoten, einem Audio-Equalizer-Steuerknoten, einem Farbsättigungs-Steuerknoten etc.) steuerbar. In den Peripherievorrichtungen 106a,b implementierte Medieneigenschaftsänderungen weisen zugehörige Steuerknoten auf, welche Eigenschaften entsprechen, die in den Peripherievorrichtungen 106a,b implementiert sein sollen, so dass die Peripherievorrichtungen 106a,b Medieneigenschaften von Medienströmen ändern können, die an den Peripherievorrichtungen 106a,b empfangen werden. In der Hostvorrichtung 100 implementierte Medieneigenschaften weisen zugehörige Steuerknoten auf, welche Eigenschaften entsprechen, die im Medienprozessor 104 implementiert sein sollen, so dass der Medienprozessor 104 Medieneigenschaften von Medienströmen ändern kann, die vom Medienprozessor 104 ausgegeben werden.
  • Hier offenbarte Beispiele können implementiert werden, um Eigenschaftsänderungsanforderungen auf verschiedene Art und Weise zu handhaben, abhängig davon, ob die Medieneigenschaftsänderung in den Peripherievorrichtungen 106a,b (z. B. in Hardware und/oder Software der Peripherievorrichtungen 106a,b) oder in der Hostvorrichtung 100 (z. B. in Hardware und/oder Software der Hostvorrichtung 100) implementiert sein soll. Für Hostvorrichtung-basierte Steuerknoten (nicht in den Peripherievorrichtungen 106a,b implementiert), die von Mediensoftware/-firmware für auf der Hostvorrichtung 100 ausgeführte Hostsoftware (z. B. ein OS, eine Anwendung etc.) verfügbar gemacht werden, wird eine Steuerungsänderungsanfrage wie etwa eine von der Hostsoftware erzeugte Lautstärke-Änderungsanfrage vom Peripherieschnittstellen-Hostcontroller-Manager 108 und/oder dem Medienprozessor-Manager 110 gehandhabt, um den Medienprozessor 104 zu veranlassen, die Lautstärkeänderung für einen entsprechenden Medienstrom zu implementieren, während der Medienstromverlagerungstransfer zwischen dem Medienprozessor 104 und dem Peripherieschnittstellen-Hostcontroller 102a,b ausgeführt wird. Wenn beispielsweise eine Eigenschaftsänderungsanforderung durch den Peripherieschnittstellen-Hostcontroller-Manager 108 von der Hostsoftware empfangen wird, sendet der Peripherieschnittstellen-Hostcontroller-Manager 108 über die Peripherie-Medienverlagerungs-DDI 132 eine entsprechende Steuernachricht an den Medienprozessor-Manager 110, um die angeforderte Eigenschaftsänderung für einen Medienstrom, der gerade vom Medienprozessor 104 verarbeitet wird, zu implementieren. Für Peripherievorrichtung-basierte Steuerknoten (für Eigenschaften, die in den Peripherievorrichtungen 106a,b implementiert sind), die von Mediensoftware/-firmware für die auf der Hostvorrichtung 100 ausgeführte Hostsoftware (z. B. ein OS, eine Anwendung etc.) verfügbar gemacht werden, kann die Eigenschaftsänderungsanforderung entweder von der Hostvorrichtung 100 oder von der entsprechenden Peripherievorrichtung 106a,b ausgehen. Beispielsweise können Eigenschaftsänderungsanforderungen, die von Peripherievorrichtungen gehandhabt werden (z. B. Peripherievorrichtung-basierte Steuerknoten), von der Hostvorrichtung 100 ausgehen, basierend auf Benutzereingaben, die über eine Medienanwendung und/oder Hardwaresteuerungen (z. B. Tasten) auf der Hostvorrichtung 100 empfangen werden. In solchen Beispielen empfängt der Medienprozessor-Manager 110 die Eigenschaftsänderungsanforderungen von der Hostsoftware und sendet entsprechende Steuernachrichten über die Peripherie-Medienverlagerungs-DDI 132 an den Peripherieschnittstellen-Hostcontroller-Manager 108, so dass der Peripherieschnittstellen-Hostcontroller-Manager 108 die Steuernachrichten an die Peripherievorrichtungen 106a,b senden kann, um die Eigenschaftsänderungen für entsprechende Medienströme zu implementieren. Zusätzlich oder alternativ gehen einige Eigenschaftsänderungsanforderungen, die von Peripherievorrichtungen gehandhabt werden, von der Peripherievorrichtung 106a,b aus, basierend auf Benutzereingaben, die über die Peripherievorrichtung 106a,b bereitgestellt werden, und die Peripherievorrichtung 106a,b sendet die entsprechenden Eigenschaftsänderungsanforderungen an die Hostvorrichtung 100. In solchen Beispielen implementieren die Peripherievorrichtungen 106a,b die Eigenschaftsänderungen für entsprechende Medienströme (z. B. über Verstärker und/oder andere Hardware und/oder Software der Peripherievorrichtungen 106a,b) und senden Steuernachrichten entsprechend den Eigenschaftsänderungsanforderungen an den Peripherieschnittstellen-Hostcontroller 102a,b. Der Peripherieschnittstellen-Hostcontroller-Manager 108 wiederum sendet die Steuernachrichten über die Peripherie-Medienverlagerungs-DDI 132 an den Medienprozessor-Manager 110, so dass der Medienprozessor-Manager 110 die Steuernachricht an die Hostsoftware weiterleiten kann. In solchen Beispielen verwendet die Hostsoftware die Steuernachrichten entsprechend den Eigenschaftsänderungsanforderungen, die von den Peripherievorrichtungen 106a,b gehandhabt werden, um aktuelle Einstellungen der Medieneigenschaften der Medienströme zu verfolgen (z. B. zum Zwecke der Anzeige von Lautstärkepegeln, Stummschaltungsstatus, Videoauflösung, Video-Farbsättigung etc.) zu verfolgen.
  • Hier offenbarte Beispiele zum Implementieren einer Medienstromverlagerung beinhalten eine beispielhafte Fähigkeitsentdeckungsphase, eine beispielhafte Vorrichtungsnummerierungs- und Einrichtungsphase, eine beispielhafte Transferphase der Medienstromverlagerung und eine beispielhafte Verlagerungsbeendigungsphase. Diese unterschiedlichen Phasen sind unter Verwendung des Peripherieschnittstellen-Hostcontroller-Managers 108 und des Medienprozessor-Managers 110 implementiert, die durch die Peripherie-Medienverlagerungs-DDI 132 kommunizieren. Die beispielhafte Fähigkeitsentdeckungsphase wird nachfolgend in Verbindung mit 2 beschrieben und beinhaltet das Bestimmen, ob die Peripherieschnittstellen-Hostcontroller 102a,b und der Medienprozessor 104 eine Medienstromverlagerung unterstützen. Die beispielhafte Vorrichtungsnummerierungs- und Einrichtungsphase wird nachstehend in Verbindung mit 3 beschrieben und beinhaltet das Konfigurieren von Ressourcen, etwa das Zuteilen von Endpunkten (z. B. adressierbare E/A-Puffer) und das Einrichten von E/A-Schnittstellen (z. B. E/A-Stifte) im Peripherieschnittstellen-Hostcontroller 102a,b und dem Medienprozessor 104 zum Übertragen eines verlagerten Medienstroms. Die beispielhafte Transferphase der Medienstromverlagerung wird nachstehend in Verbindung mit 5 beschrieben und beinhaltet das direkte Übertragen des Medienstroms zwischen den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104 unter Verwendung der Endpunkte und E/A-Schnittstellen. Die beispielhafte Verlagerungsbeendigungsphase wird ebenfalls nachstehend in Verbindung mit 5 beschrieben und beinhaltet das Freigeben von Ressourcen entsprechend dem beendeten Medienstrom.
  • 2 veranschaulicht die beispielhafte Hostvorrichtung 100 von 100 während einer beispielhaften Medienverlagerungsfähigkeits-Entdeckungsphase. In der Medienverlagerungsfähigkeits-Entdeckungsphase prüfen der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 die Verfügbarkeit von Medienverlagerungsfähigkeiten in den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104, indem Informationen zur Medienverlagerungsfähigkeit in den jeweiligen Hostcontroller-Fähigkeitsregistern 112a,b und dem Medienprozessor-Fähigkeitsregister 114 geprüft werden. In einigen Beispielen kann die Entdeckung von Medienverlagerungsfähigkeiten der Peripherieschnittstellen-Hostcontroller 102a,b und des Medienprozessors 104 in Reaktion auf einen Systemstart oder einen Neustart der Hostvorrichtung 100 erfolgen. Zusätzlich oder alternativ kann die Entdeckung von Medienverlagerungsfähigkeiten der Peripherieschnittstellen-Hostcontroller 102a,b und des Medienprozessors 104 in Reaktion darauf erfolgen, dass erkannt wird, dass eine Peripherievorrichtung 106a,b mit einem Peripherieschnittstellen-Hostcontroller 102a,b verbunden worden ist. In einigen solchen Beispielen erfolgt die Entdeckung der Medienverlagerungsfähigkeiten, wenn die Peripherievorrichtung 106a,b einer Art von Vorrichtungsklasse entspricht, für die ein Medienstrom erstellt werden soll. Beispielhafte Arten von Vorrichtungsklassen, für die Medienströme erstellt werden, umfassen eine Audio-Vorrichtungsklasse (z. B. ein Lautsprecher, ein Mikrofon, eine Soundkarte, eine MIDI (Musical Instrument Digital Interface)-Vorrichtung etc.), eine Bild-Vorrichtungsklasse (z. B. eine Webcam, ein Scanner etc.), eine Video-Vorrichtungsklasse (z. B. eine Webcam, eine Überwachungskamera etc.) und eine Audio/Video-Vorrichtungsklasse (z. B. eine Webcam, ein Fernsehgerät, ein Radio etc.).
  • In Beispielen, in denen die Entdeckung von Medienverlagerungsfähigkeiten der Peripherieschnittstellen-Hostcontroller 102a,b und des Medienprozessors 104 in Reaktion auf einen Systemstart oder einen Neustart der Hostvorrichtung 100 erfolgt, fragt der Peripherieschnittstellen-Hostcontroller-Manager 108 die Hostcontroller-Fähigkeitsregister 112a,b ab, und der Medienprozessor-Manager 110 fragt das Medienprozessor-Fähigkeitsregister 114 ab, um die Verfügbarkeit von Medienverlagerungsfähigkeiten in den Peripherieschnittstellen-Hostcontrollern 102a,b und im Medienprozessor 104 zu bestimmen.
  • Um die Medienverlagerungsfähigkeiten der Peripherieschnittstellen-Hostcontroller 102a,b zu bestimmen, wenn eine Peripherievorrichtung 106a,b mit einem der Peripherieschnittstellen-Hostcontroller 102a,b verbunden ist, sendet der betreffende Peripherieschnittstellen-Hostcontroller 102a,b ein Interrupt oder eine Benachrichtigung der Peripherievorrichtungsverbindung an den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108. Basierend auf dem Interrupt oder der Benachrichtigung erkennt der Peripherieschnittstellen-Hostcontroller-Manager 108 die Peripherievorrichtungsverbindung und fragt, in Reaktion darauf, das Hostcontroller-Fähigkeitsregister 112a,b des Peripherieschnittstellen-Hostcontrollers 102a,b, mit der die Peripherievorrichtung 106a,b verbunden ist, ab, um die Verfügbarkeit einer Medienverlagerungsfähigkeit des betreffenden Peripherieschnittstellen-Hostcontrollers 102a,b zu bestimmen. Ebenfalls in Reaktion auf das Erkennen der Peripherieschnittstellenverbindung sendet der beispielhafte Peripherieschnittstellen-Hostcontroller-Manager 108 ein Interrupt oder eine Benachrichtigung an den beispielhaften Medienprozessor-Manager 110. In Reaktion auf das Interrupt oder die Benachrichtigung fragt der beispielhafte Medienprozessor-Manager 110 das Medienprozessor-Fähigkeitsregister 114 ab, um die Verfügbarkeit einer Medienverlagerungsfähigkeit des Medienprozessors 104 zu bestimmen. Darüber hinaus kann der beispielhafte Medienprozessor-Manager 110 die Anzahl von E/A-Controllern 202a-c bestimmen, die auf dem Medienprozessor-Manager 110 verfügbar sind, und die Ressourcen (z. B. E/A-Stifte, maximale FIFO-Puffergröße) bestimmen, die für jeden E/A-Controller 202a-c verfügbar/erforderlich sind. Die beispielhaften E/A-Controller 202a-c des Medienprozessors 104 können unter Verwendung einer beliebigen geeigneten Art von E/A-Schnittstelle implementiert sein, was skalierbare E/A (Scalable I/O, SIO)-Schnittstellen einschließt, für die SlO-Controller Puffer mit veränderlicher Größe aufweisen. Andere beispielhafte E/A-Schnittstellen, die verwendet werden können, um die E/A-Controller 202a-c zu implementieren, umfassen eine serielle Peripherieschnittstelle (Serial Peripheral Interface, SPI), ein universelle asynchrone Empfänger/Sender (Universal Asynchronous Receiver Transmitter, UART)-Schnittstelle, einen Inter-IC Sound (I2S)-Bus, virtuelle E/A-Schnittstellen (z. B. IOSF (Intel On-chip System Fabric)-Schnittstellen) etc.
  • In dem dargestellten Beispiel richten, nachdem der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 die Medienverlagerungsfähigkeiten des jeweiligen Peripherieschnittstellen-Hostcontrollers 102a,b und des Medienprozessors 104 entdeckt haben, der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 die Peripherie-Medienverlagerungs-DDI 132 als Steuerpfad dazwischen ein. Auf diese Weise können der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 einander Steuernachrichten über die Peripherie-Medienverlagerungs-DDI 132 senden, um die Medienstromverarbeitung durch den Medienprozessor 104 zu steuern und um den Medienstromtransfer zwischen dem Medienprozessor 104 und dem/den Peripherieschnittstellen-Hostcontroller(n) 102a,b zu steuern.
  • 3 veranschaulicht die beispielhafte Hostvorrichtung 100 von 1 während einer Vorrichtungsnummerierungs- und Einrichtungsphase. In dem dargestellten Beispiel von 3 können, nachdem der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 die Peripherie-Medienverlagerungs-DDI 132 eingerichtet haben, der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 Steuerinformationen über die Peripherie-Medienverlagerungs-DDI 132 austauschen, wenn Peripherievorrichtungen 106a,b mit der Hostvorrichtung 100 verbunden sind, um Medienstrom-Transportmedien 126a,b einzurichten. Wenn beispielsweise eine Peripherievorrichtung 106a,b an einem physischen Port von einer der Peripherieschnittstellen-Hostcontroller 102a,b angeschlossen ist, nummeriert der Peripherieschnittstellen-Hostcontroller-Manager 108 die verbundene Peripherievorrichtung 106a,b und versucht, einen Medienstrom entsprechend der Peripherievorrichtung 106a,b zu verlagern, indem eine Medienstromverlagerungsanforderung über die Peripherie-Medienverlagerungs-DDI 132 an den Medienprozessor-Manager 110 gesendet wird. In dem dargestellten Beispiel nimmt der Peripherieschnittstellen-Hostcontroller-Manager 108 in die Anforderung eine Peripherieschnittstellen-Hostcontroller-Kennung des Peripherieschnittstellen-Hostcontrollers 102a,b auf, mit dem die Peripherievorrichtung 106a,b verbunden ist. Der beispielhafte Medienprozessor-Manager 110 verwendet die Peripherieschnittstellen-Hostcontroller-Kennung, um einen E/A-Controller 302a-c des Medienprozessors 104 zu identifizieren, der mit dem Peripherieschnittstellen-Hostcontroller 102a,b verschaltet ist, mit dem die Peripherievorrichtung 106a,b verbunden wurde. Beispielsweise wird der Medienprozessor-Manager 110 mit einer beispielhaften Zuordnungstabelle mit E/A-Controller-Kennungen 304 bereitgestellt, die, wie in 4 gezeigt, Zuordnungen zwischen den E/A-Controllern 302a,b der Peripherieschnittstellen-Hostcontroller 102a,b und entsprechenden E/A-Controllern 202a-c des Medienprozessors 104, die physisch miteinander verbunden sind, speichert. Der Medienprozessor-Manager 110 verwendet die beispielhafte Zuordnungstabelle mit E/A-Controller-Kennungen 304, um die Medienstrom-Transportmedien 126a,b zwischen den E/A-Controllern 202a,c des Medienprozessors 104 und entsprechenden E/A-Controllern 302a,b der Peripherieschnittstellen-Hostcontroller 102a,b zu aktivieren oder zu ermöglichen, um Medienströme dazwischen zu übertragen. Ein solches Aktivieren oder Ermöglichen der Medienstrom-Transportmedien 126a,b kann erzielt werden, indem Hochimpedanz-Zustände von Stiften, die für die Medienstromtransfers verwendet werden sollen, deaktiviert werden. Die beispielhaften E/A-Controller 302a,b der Peripherieschnittstellen-Hostcontroller 102a,b werden unter Verwendung derselben Art von E/A-Schnittstelle implementiert, die verwendet wird, um die E/A-Controller 202a-c des Medienprozessors 104 zu implementieren.
  • In der beispielhaften Zuordnungstabelle mit E/A-Controller-Kennungen 304 von 4 sind die Stifte des E/A-Controllers 302a des Peripherieschnittstellen-Hostcontrollers 102a (z. B. Peripherieschnittstellen-Hostcontroller-Kennung 1) mit entsprechenden Stiften des E/A-Controllers 202a (z. B. Medienprozessor-E/A-Controller-Kennung 1) des Medienprozessors 104 verschaltet, und die Stifte des E/A-Controllers 302b des Peripherieschnittstellen-Hostcontrollers 102b (z. B. Peripherieschnittstellen-Hostcontroller-Kennung 2) sind mit entsprechenden Stiften des E/A-Controllers 202c (z. B. Medienprozessor-E/A-Controller-Kennung 3) des Medienprozessors 104 verschaltet. In einigen Beispielen erfolgen die Zuordnungen zwischen solchen E/A-Controllern während der Ausgestaltung der Hostvorrichtung 100. Die Zuordnungen zwischen bestimmten E/A-Controllern basieren auf verschiedenen Entwurfsfaktoren wie etwa Routing-Beschränkungen, E/A-Controller-Fähigkeiten etc. von bestimmten Systementwürfen. So sind die in der beispielhaften Zuordnungstabelle mit E/A-Controller-Kennungen 304 gezeigten Zuordnungen lediglich beispielhafte Zuordnungen.
  • In Reaktion auf das Empfangen der Medienstromverlagerungsanforderung vom Peripherieschnittstellen-Hostcontroller-Manager 108 fragt der Medienprozessor-Manager 110 die beispielhafte Zuordnungstabelle mit E/A-Controller-Kennungen 304 basierend auf der Peripherieschnittstellen-Hostcontroller-Kennung ab, um einen der E/A-Controller 202a-c des Medienprozessors 104 auszuwählen, der, entsprechend der Peripherieschnittstellen-Hostcontroller-Kennung, als mit dem Peripherieschnittstellen-Hostcontroller 102a,b verschaltet identifiziert ist. Der Medienprozessor-Manager 110 nummeriert Endpunkte zur Verwendung mit dem identifizierten E/A-Controller 202a-c und den Fähigkeiten der Endpunkte, beispielsweise unterstützte Medienstromformate (z. B. PCM (Pulse Code Modulation), AAC (Advanced Audio Coding), WAV etc.), Lautstärkefähigkeiten, Stummschaltungsfähigkeiten, Mithörtonfähigkeiten, Video-Auflösungsfähigkeiten, Video-Farbtiefe-Fähigkeiten etc.. In Beispielen, in denen es sich bei den Peripherieschnittstellen-Hostcontrollern 102a,b um USB-Hostcontroller handelt, konfiguriert der Medienprozessor-Manager 110 die Endpunkte im E/A-Controller 202a-c als USB-Endpunkte mit entsprechenden Fähigkeiten, die für USB-Verbindungen eingesetzt werden können.
  • Der Medienprozessor-Manager 110 erstellt außerdem Filter (z. B. eine Filtertopologie, bei der es sich um eine logische Darstellung einer internen Struktur von Hardware handelt, die einen Filter implementiert, spezifiziert die Datenflusspfade durch den Filter und definiert die logischen Ziele (Stifte und Knoten) für Eigenschaftsanfragen) und Knoten (z. B. einen Lautstärke-Steuerknoten, einen Stummschaltungs-Steuerknoten, einen Mithörton-Steuerknoten etc.) basierend auf den nummerierten Fähigkeiten der Endpunkte. Der beispielhafte Medienprozessor-Manager 110 macht/stellt dann solche Ressourcen für die Host-OS-Software (z. B. ein OS und/oder ein oder mehrere Anwendungen, die auf der Hostvorrichtung 100 ausgeführt werden) verfügbar/bereit. Ebenfalls als Teil des Nummerierungsprozesses teilt der Medienprozessor-Manager 110 Ressourcen des E/A-Controllers 202a-c wie etwa ein oder mehrere E/A-Stifte, E/A-Transferpuffer etc. zu. Falls alle Ressourcenzuteilungen erfolgreich sind, verwendet der Medienprozessor-Manager 110 die Peripherie-Medienverlagerungs-DDI 132, um eine Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager 108 zu senden, in der der Medienprozessor-Manager 110 die Medienstromverlagerungsanforderung akzeptiert. Darüber hinaus sendet der Medienprozessor-Manager 110 Ressourceninformationen zu den zugeteilten Ressourcen über die Peripherie-Medienverlagerungs-DDI 132 an den Peripherieschnittstellen-Hostcontroller-Manager 108. In einigen Beispielen sendet der Medienprozessor-Manager 110 die Ressourceninformationen in der Medienstromverlagerungsantwort. Alternativ verwendet, falls die Ressourcenzuteilungen nicht erfolgreich sind, der Medienprozessor-Manager 110 die Peripherie-Medienverlagerungs-DDI 132, um eine Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager 108 zu senden, in der der Medienprozessor-Manager 110 die Medienstromverlagerungsanforderung zurückweist. In solchen Beispielen wird der Medienstrom von einem Anwendungsprozessor unter Verwendung bisheriger Verfahren verarbeitet, ohne den Medienstrom an den Medienprozessor 104 zu verlagern.
  • In dem dargestellten Beispiel von 3 verwendet der Peripherieschnittstellen-Hostcontroller-Manager 108 die Ressourceninformationen, um die Stifte des E/A-Controllers 302a des Peripherieschnittstellen-Hostcontrollers 102a dafür zu konfigurieren, mit den Stiften des E/A-Controllers 202a des Medienprozessors 104 zu kommunizieren, um das Medienstrom-Transportmedium 126a von 1 einzurichten. Auf diese Weise wird das Medienstrom-Transportmedium 126a verwendet, um einen Medienstrom entsprechend der Peripherievorrichtung 106a, die mit dem Peripherieschnittstellen-Hostcontroller 102a verbunden ist, zu übertragen. Außerdem verwendet in dem dargestellten Beispiel der Peripherieschnittstellen-Hostcontroller-Manager 108 die Ressourceninformationen, um die Stifte des E/A-Controllers 302b des Peripherieschnittstellen-Hostcontrollers 102b dafür zu konfigurieren, mit den Stiften des E/A-Controllers 202c des Medienprozessors 104 zu kommunizieren, um das Medienstrom-Transportmedium 126b von 1 einzurichten. Auf diese Weise wird das Medienstrom-Transportmedium 126b verwendet, um einen Medienstrom entsprechend der Peripherievorrichtung 106b, die mit dem Peripherieschnittstellen-Hostcontroller 102b verbunden ist, zu übertragen.
  • In einigen Beispielen kann die Ressourcenzuteilung während eines Nummerierungsprozesses durchgeführt werden, während ein Medienstrom bereits auf einem verlagerten Medienstrom-Endpunkt geöffnet ist, um eine dynamischere Ressourcenverwaltung zu ermöglichen. Beispielsweise kann der Medienprozessor-Manager 110 die Medienstromverlagerungsanforderung akzeptieren und einen Medienstromtransfer starten, während verbleibende Ressourcen weiterhin zugeteilt werden und/oder andere Ressourcen für den Medienstrom neu zugeteilt werden. Dies kann verwendet werden, um Ressourcen dynamisch an die Bedürfnisse und/oder Anforderungen eines sich ändernden Medienstroms anzupassen.
  • 5 veranschaulicht die beispielhafte Hostvorrichtung 100 von 1-3 während einer Transferphase der Medienstromverlagerung. Um die Peripherieschnittstellen-Hostcontroller 102a,b für Medienstromtransfers zu konfigurieren, werden die Peripherieschnittstellen-Hostcontroller 102a,b mit entsprechenden beispielhaften Endpunkt-Zuordnungstabellen 502a,b bereitgestellt. Die beispielhaften Endpunkt-Zuordnungstabellen 502a,b sind in 6 detailliert dargestellt. Endpunkttabelleneinträge der Endpunkt-Zuordnungstabellen 502a,b stellen Zuordnungen zwischen Stiftnummern von (einem) Eingangsstift(en), (einem) Ausgangsstift(en) und/oder (einem) bidirektionalen Stift(en) der Peripherieschnittstellen-Hostcontroller 102a,b (z. B. E/A-Stiftnummer-Felder 602), E/A-Pufferadressen (z. B. Peripherieschnittstellen-Endpunkt-Adressfelder 604) der Peripherieschnittstellen-Hostcontroller 102a,b und Portnummern (z. B. Vorrichtungsschlitznummer-Felder 606) der Peripherieschnittstellen-Hostcontroller 102a,b, mit denen Peripherievorrichtungen 106a,b verbunden sind, bereit. Die Endpunkttabelleneinträge der Endpunkt-Zuordnungstabellen 502a,b weisen außerdem geteilte Endpunktfelder 608 auf, um entsprechende Endpunkte zu identifizieren, bei denen es sich um geteilte Endpunkte zur Verwendung mit geteilten Transaktionen handelt, in denen lange Transaktionen aufgeteilt und in mehreren kleineren Transaktionen übertragen werden. Die Peripherieschnittstellen-Hostcontroller 102a,b verwenden die Zuordnungsinformationen in der Endpunkt-Zuordnungstabelle 502a,b, um Medienströme zwischen Ports, Endpunkten und E/A-Stiften der Peripherieschnittstellen-Hostcontroller 102a,b zum Übertragen an/von entsprechende(n) E/A-Controller(n) 202a-c des Medienprozessors 104 zu leiten. Beispielsweise sendet, wenn ein Medienstrom in den Verlagerungsendpunkten des Medienprozessors 104 geöffnet ist, in Reaktion auf eine Medienstromverlagerungsanforderung vom Peripherieschnittstellen-Hostcontroller-Manager 108, der Medienprozessor-Manager 110 eine Medienstromverlagerungsantwort zum Akzeptieren der Medienstromverlagerungsanforderung über die Peripherie-Medienverlagerungs-DDI 132 an den Peripherieschnittstellen-Hostcontroller-Manager 108. In Reaktion darauf programmiert der Peripherieschnittstellen-Hostcontroller-Manager 108 Endpunkttabelleneinträge der Endpunkt-Zuordnungstabelle 502a,b, um E/A-Controller-Stiftnummern des Peripherieschnittstellen-Hostcontrollers 102a,b Endpunkten, die in einem entsprechenden Peripherieschnittstellen-Hostcontroller 102a,b für das Speichern von Medienstromdaten, die vom Medienprozessor 104 empfangen wurden, und/oder für das Speichern von Medienstromdaten zum Senden an den Medienprozessor 104 zugeteilt sind, zuzuordnen. In dem dargestellten Beispiel von 6 weist die Endpunkt-Zuordnungstabelle 502a,b außerdem Gültigkeitsfelder 610 zur Verwendung durch den Peripherieschnittstellen-Hostcontroller-Manager 108 auf, um zu identifizieren, welche Endpunkttabelleneinträge gültig sind. Gültige Endpunkttabelleneinträge entsprechen Medienstromtransfers, die aktiv sind. Ungültige Endpunkttabelleneinträge entsprechen Medienstromtransfers, die nicht aktiv sind, beendet wurden etc. In einigen Beispielen identifiziert ein Einschaltstandardwert eines inaktiven Endpunkts den Endpunkt in einem entsprechenden Gültigkeitsfeld als ungültig.
  • Ebenfalls während der Transferphase der Medienstromverlagerung des dargestellten Beispiels konfiguriert der Medienprozessor-Manager 110 den Medienprozessor 104 (z. B. DMA-Planung, E/A-Controller-Einstellungen etc.) basierend auf einem ausgewählten Medienstromformat und versetzt den Medienstrom in einen Ausführungsstatus. Der Peripherieschnittstellen-Hostcontroller 102a,b verwendet die zugehörige Endpunkt-Zuordnungstabelle 502a,b, um den Medienstromtransfer zwischen einem entsprechenden E/A-Controller 302a,b und einer entsprechenden der Peripherievorrichtungen 106a,b, die mit dem Peripherieschnittstellen-Hostcontroller 102a,b verbunden ist, zu leiten.
  • In dem dargestellten Beispiel von 5, wenn ein Medienstrom vom Medienprozessor 104 ausgegeben wird, greift der Medienprozessor 104 auf Mediendaten zu, die aus dem Speicher 118 (1) in den Datenpuffer 124 geladen wurden, verarbeitet die Mediendaten, um den Medienstrom zu erzeugen, und lädt den Medienstrom in einen Ausgangspuffer eines entsprechenden E/A-Controllers 202a-c, um ihn über einen entsprechenden Peripherieschnittstellen-Hostcontroller 102a,b an eine verbundene der Peripherievorrichtungen 106a,b zu übertragen. Darüber hinaus wird, wenn ein (z. B. von einer der Peripherievorrichtungen 106a,b empfangener) Medienstrom in den Medienprozessor 104 eingegeben wird, der Medienstrom an einem Eingangspuffer eines E/A-Controllers 202a-c von einem der Peripherieschnittstellen-Hostcontroller 102a,b empfangen, vom Medienprozessor 104 verarbeitet und zum nachfolgenden Speichern im Speicher 118 in den Datenpuffer 124 geschrieben. In hier offenbarten Beispielen konfiguriert/konfigurieren der Medienprozessor-Manager 110 und/oder der Medienprozessor 104 die Größe(n) der Eingangs- und Ausgangspuffer der E/A-Controller 202a-c während der Medienverlagerungsfähigkeits-Entdeckungsphase von 2. Darüber hinaus konfiguriert/konfigurieren der Peripherieschnittstellen-Hostcontroller-Manager 108 und/oder die Peripherieschnittstellen-Hostcontroller 102a,b die Größe(n) der Eingangs- und Ausgangspuffer der E/A-Controller 302a,b. Ein solches Auswählen von E/A-Puffergrößen wird verwendet, um unterschiedliche Ergebnisse hinsichtlich der Medientransfer- und/oder Energieeffizienzleistung zu erzielen (z. B. durch Reduzieren der Anzahl von Malen, die Medienstrom-Transportmedien 126a,b während eines Medienstroms aktiviert werden müssen, um Medienstromdaten zu übertragen). Beispielsweise können größere E/A-Puffergrößen, die mehr Daten fassen, verwendet werden, um die Anzahl von Datentransfer-Transaktionen über die Medienstrom-Transportmedien 126a,b zu reduzieren. Somit können die Medienstrom-Transportmedien 126a,b für längere Zeiträume in einem stromsparenden inaktiven Zustand gehalten werden. Dies spart Energie, indem entsprechende Leitungen des E/A-Controllers in einen Hochimpedanzzustand versetzt werden, der im Wesentlichen den Fluss von elektrischem Strom reduziert oder eliminiert, um die Leistungsaufnahme zu verringern.
  • Um den Medienstromverlagerungstransfer zu beenden, koordinieren der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 die Beendigung über die Peripherie-Medienverlagerungs-DDI 132. Beispielsweise sendet, wenn ein auf einem verlagerten Endpunkt geöffneter und ausgeführter Medienstrom angehalten wird (z. B. wenn ein Benutzer eine Medienwiedergabe oder - aufnahme beendet oder das Ende einer Mediendatei erreicht wird), der Medienprozessor-Manager 110 eine Beendigungsanforderung über die Peripherie-Medienverlagerungs-DDI 132 an den Peripherieschnittstellen-Hostcontroller-Manager 108. Darüber hinaus meldet, wenn ein Peripherieschnittstellen-Hostcontroller 102a,b Ereignisse erkennt, die sich auf die Anbindung einer Peripherievorrichtung 106a,b beziehen (z. B. ein Abzieh-Ereignis, das sich auf eine Peripherievorrichtung 106a,b bezieht, die von einem Peripherieschnittstellen-Hostcontroller 102a,b getrennt wird, ein Stromausfall-Ereignis, das sich auf eine Peripherievorrichtung 106a,b bezieht, deren Stromversorgung ausfällt, etc.), der Peripherieschnittstellen-Hostcontroller 102a,b das Ereignis an den Peripherieschnittstellen-Hostcontroller-Manager 108, und der Peripherieschnittstellen-Hostcontroller-Manager 108 benachrichtigt den Medienprozessor-Manager 110. Während der Beendigung eines Medienstromverlagerungstransfers programmiert der Peripherieschnittstellen-Hostcontroller-Manager 108 entsprechende Einträge der Endpunkt-Zuordnungstabelle 502a,b als ungültig. In Reaktion auf die Beendigungsanforderung vom Peripherieschnittstellen-Hostcontroller-Manager 108 wählt der Medienprozessor-Manager 110 entsprechende Ressourcen aus (z. B. E/A-Puffer, E/A-Controller-Stifte etc.), die zuvor dem zu beendenden Medienstrom zugeteilt waren, und gibt diese Ressourcen frei. Auf diese Weise, indem zu verwendende Ressourcen nur zugeteilt oder freigegeben werden, wenn Medienstromtransfers aktiv sind, wird eine dynamische Ressourcenverwaltung verwendet, um Ressourcen der Hostvorrichtung 100 effizienter zu verwenden. Eine solche dynamische Ressourcenzuteilung sorgt für eine bessere Verfügbarkeit von Ressourcen, wenn diese für andere Medienstromtransfers benötigt werden, und reduziert die Leistungsaufnahme der Hostvorrichtung, wenn keine Medienstromtransfers aktiv sind.
  • 7 veranschaulicht den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108 von 1, 2, 3 und 5. Der Peripherieschnittstellen-Hostcontroller-Manager 108 des dargestellten Beispiels weist einen beispielhaften Detektor für Hostcontroller-Verlagerungsfähigkeiten 702, eine beispielhafte Hostcontroller-Manager-DDI (Driver to Driver Interface, Treiber-zu-Treiber-Schnittstelle) 704 (z. B. eine Hostcontroller-Manager-Kommunikationsschnittstelle), einen beispielhaften Peripherievorrichtungsdetektor 706, einen beispielhaften Medienstromverlagerungsarbiter 708 und einen beispielhaften Endpunktzuordner 710 auf. Der Peripherieschnittstellen-Hostcontroller-Manager 108 wird mit dem beispielhaften Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 bereitgestellt, um zu bestimmen, ob die Peripherieschnittstellen-Hostcontroller 102a,b eine Medienstromverlagerungsfähigkeit aufweisen. Beispielsweise fragt der Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 das Hostcontroller-Fähigkeitsregister 112a (1 und 2) ab, um zu bestimmen, ob der Peripherieschnittstellen-Hostcontroller 102a eine Medienstromverlagerungsfähigkeit aufweist, und/oder fragt das Hostcontroller-Fähigkeitsregister 112b (1 und 2) ab, um zu bestimmen, ob der Peripherieschnittstellen-Hostcontroller 102b eine Medienstromverlagerungsfähigkeit aufweist.
  • Der Peripherieschnittstellen-Hostcontroller-Manager 108 wird mit der beispielhaften Hostcontroller-Manager-DDI 704 bereitgestellt, um die Peripherie-Medienverlagerungs-DDI 132 zwischen dem Peripherieschnittstellen-Hostcontroller-Manager 108 und dem Medienprozessor-Manager 110 zu implementieren. Die beispielhafte Hostcontroller-Manager-DDI 704 verhandelt mit dem Medienprozessor-Manager 110, um, basierend darauf, ob der Medienprozessor 104 eine Medienstromverlagerung unterstützt, und basierend darauf, dass der Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 bestimmt, dass eine Medienstromverlagerung vom Peripherieschnittstellen-Hostcontroller 102a und/oder dem Peripherieschnittstellen-Hostcontroller 102b unterstützt wird, die Peripherie-Medienverlagerungs-DDI 132 einzurichten. Wenn eine Medienstromverlagerung vom Medienprozessor 104 und vom Peripherieschnittstellen-Hostcontroller 102a und/oder dem Peripherieschnittstellen-Hostcontroller 102b unterstützt wird, stellt die Hostcontroller-Manager-DDI 704 den Zugriff auf die Peripherie-Medienverlagerungs-DDI 132 aus der Perspektive des Peripherieschnittstellen-Hostcontroller-Managers 108 her. Beispielsweise teilt die Hostcontroller-Manager-DDI 704 E/A-Nachrichtenpuffer in einem Speicher (z. B. dem lokalen Speicher 1013 und/oder dem flüchtigen Speicher 1014 von 10) zu. Auf diese Weise verwendet, durch Implementieren der Peripherie-Medienverlagerungs-DDI 132, die Hostcontroller-Manager-DDI 704 des dargestellten Beispiels die E/A-Nachrichtenpuffer, um Nachrichten über die Peripherie-Medienverlagerungs-DDI 132 an den Medienprozessor-Manager 110 zu senden und um Nachrichten über die Peripherie-Medienverlagerungs-DDI 132 von dem Medienprozessor-Manager 110 zu empfangen.
  • Der Peripherieschnittstellen-Hostcontroller-Manager 108 wird mit dem beispielhaften Peripherievorrichtungsdetektor 706 bereitgestellt, um zu erkennen, wann eine Peripherievorrichtung 106a,b mit einem der Peripherieschnittstellen-Hostcontroller 102a,b verbunden ist. Beispielsweise kann der Peripherievorrichtungsdetektor 706 ein Interrupt oder eine Benachrichtigung von einem Peripherieschnittstellen-Hostcontroller 102a,b empfangen, wenn eine Peripherievorrichtung 106a,b damit verbunden ist.
  • Der Peripherieschnittstellen-Hostcontroller-Manager 108 wird mit dem beispielhaften Medienstromverlagerungsarbiter 708 bereitgestellt, um eine Medienstromverlagerung anzufordern und das Verlagern von Medienströmen an den Medienprozessor 104 zu verwalten. In hier offenbarten Beispielen trennt der Medienstromverlagerungsarbiter 708 außerdem Steuerinformationen von Medienströmen, die von einer Peripherievorrichtung 106a,b empfangen werden. Der beispielhafte Medienstromverlagerungsarbiter 708 kommuniziert mit der Hostcontroller-Manager-DDI 704, um Steuernachrichten mit dem Medienprozessor-Manager 110 über die Peripherie-Medienverlagerungs-DDI 132 auszutauschen. Beispielsweise sendet der Medienstromverlagerungsarbiter 708, in Reaktion darauf, dass der Medienstromverlagerungsarbiter 708 die Anforderung (z. B. von Hostsoftware) empfängt, einen Medienstrom für eine Peripherievorrichtung 106a,b zu öffnen (z. B. entsprechend einer Medienstrom-Wiedergabe oder einer Medienstrom-Aufzeichnung), eine Medienstromverlagerungsanforderung an den Medienprozessor-Manager 110, um das Verlagern eines Medienstroms an den Medienprozessor 104 anzufordern. Darüber hinaus empfängt der beispielhafte Medienstromverlagerungsarbiter 708 Medienstromverlagerungsantworten von dem Medienprozessor-Manager 110, die eine Verlagerung von Medienströmen an den Medienprozessor 104 zurückweisen oder akzeptieren. Der beispielhafte Medienstromverlagerungsarbiter 708 verwendet die Medienstromverlagerungsantworten, um zu verwalten, wann eine Medienstromverlagerung an den Medienprozessor 104 durchgeführt werden kann. In einigen Fällen sendet der Medienstromverlagerungsarbiter 708 Steuerinformationen an den Medienprozessor-Manager 110, um Eigenschaftsänderungen (z. B. Lautstärkeänderungen, Stummschaltungsänderungen, Wiedergabesteuerung (Wiedergeben, Pausieren, Überspringen etc.), Videoauflösungsänderungen etc.) des Medienstroms zu steuern und/oder andere Verwaltungsaktionen entsprechend dem Medienstrom (z. B. Einrichtung von Medienstromtransfers, Beendigung von Medienstromtransfers etc.) zu steuern. Zusätzlich oder alternativ handhabt der Medienstromverlagerungsarbiter 708 die Steuerinformationen, um Aspekte des Medienstroms zu verwalten.
  • Der Peripherieschnittstellen-Hostcontroller-Manager 108 wird mit dem beispielhaften Endpunktzuordner 710 bereitgestellt, um Endpunkttabelleneinträge in der Endpunkt-Zuordnungstabelle 502a,b (5 und 6) entsprechend den Medienstromverbindungen zwischen den E/A-Controllern 202a,b des Medienprozessors 104 und den E/A-Controllern 302a,b der Peripherieschnittstellen-Hostcontroller 102a,b zu erzeugen. Beispielsweise programmiert der Endpunktzuordner 710 Endpunkttabelleneinträge in der Endpunkt-Zuordnungstabelle 502a,b, um (einen) Eingangsstift(e), (einen) Ausgangsstift(e) und/oder (einen) bidirektionale(n) Stift(e) eines E/A-Controllers 202a,b (einem) Endpunkt(en) (z. B. (einem) Puffer(n)) des Peripherieschnittstellen-Controllers 102a,b und (einer) Portnummer(n) (z. B. Vorrichtungsschlitznummer(n)) des Peripherieschnittstellen-Hostcontrollers 102a,b, mit dem (eine) Peripherievorrichtung(en) 106a,b verbunden ist/sind, zuzuordnen.
  • In hier offenbarten Beispielen können Mittel zum Erkennen einer Medienstromverlagerungsfähigkeit des Peripherieschnittstellen-Hostcontrollers 102a,b durch den Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 implementiert sein. In hier offenbarten Beispielen können Mittel zum Kommunizieren mit dem Medienprozessor-Manager 110 über die Peripherie-Medienverlagerungs-DDI 132 durch die Hostcontroller-Manager-DDI 704 implementiert sein. In hier offenbarten Beispielen können Mittel zum Erkennen, dass eine Peripherievorrichtung 106a,b mit einem Peripherieschnittstellen-Hostcontroller 102a,b verbunden ist, durch den Peripherievorrichtungsdetektor 706 implementiert sein. In hier offenbarten Beispielen können Mittel zum Senden einer Medienstromverlagerungsanforderung an den Medienprozessor-Manager 110 und/oder Mittel zum Empfangen einer Medienstromverlagerungsantwort vom Medienprozessor-Manager 110 durch den Medienstromverlagerungsarbiter 708 implementiert sein. In hier offenbarten Beispielen können Mittel zum Erzeugen eines Endpunkttabelleneintrags durch den Endpunktzuordner 710 implementiert sein. In hier offenbarten Beispielen können Mittel zum Programmieren eines Endpunkttabelleneintrags durch den Endpunktzuordner 710 implementiert sein.
  • 8 veranschaulicht den beispielhaften Medienprozessor-Manager 110 von 1, 2, 3 und 5. Der Medienprozessor-Manager 110 des dargestellten Beispiels weist einen beispielhaften Detektor für Medienprozessor-Verlagerungsfähigkeiten 802, eine beispielhafte Medienprozessor-Manager-DDI (Driver-to-Driver Interface, Treiber-zu-Treiber-Schnittstelle 804 (z. B. eine Medienprozessor-Manager-Kommunikationsschnittstelle), eine beispielhafte Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 und einen beispielhaften Medienprozessor-Konfigurator 808 auf. Der Medienprozessor-Manager 110 wird mit dem beispielhaften Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 bereitgestellt, um zu bestimmen, ob der Medienprozessor 104 eine Medienstromverlagerungsfähigkeit aufweist. Beispielsweise fragt der Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 das Medienprozessor-Fähigkeitsregister 114 (1 und 2) ab, um zu bestimmen, ob der Medienprozessor 104 eine Medienstromverlagerungsfähigkeit aufweist.
  • Der Medienprozessor-Manager 110 wird mit der beispielhaften Medienprozessor-Manager-DDI 804 bereitgestellt, um die Peripherie-Medienverlagerungs-DDI 132 zwischen dem Medienprozessor-Manager 110 und dem Peripherieschnittstellen-Hostcontroller-Manager 108 zu implementieren. Die beispielhafte Medienprozessor-Manager-DDI 804 verhandelt mit dem Peripherieschnittstellen-Hostcontroller-Manager 108, um die Peripherie-Medienverlagerungs-DDI 132 einzurichten, basierend darauf, ob der Peripherieschnittstellen-Hostcontroller 102a und/oder der Peripherieschnittstellen-Hostcontroller 102b eine Medienstromverlagerung unterstützen/unterstützt, und basierend darauf, dass der Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 bestimmt, dass eine Medienstromverlagerung vom Medienprozessor 104 unterstützt wird. Wenn die Medienstromverlagerung vom Medienprozessor 104 und vom Peripherieschnittstellen-Hostcontroller 102a und/oder dem Peripherieschnittstellen-Hostcontroller 102b unterstützt wird, stellt die Medienprozessor-Manager-DDI 804 den Zugriff auf die Peripherie-Medienverlagerungs-DDI 132 aus der Perspektive des Medienprozessor-Managers 110 her. Beispielsweise teilt die Medienprozessor-Manager-DDI 804 E/A-Nachrichtenpuffer zu. Auf diese Weise verwendet, durch Implementieren der Peripherie-Medienverlagerungs-DDI 132, die Medienprozessor-Manager-DDI 804 des dargestellten Beispiels die E/A-Nachrichtenpuffer, um Nachrichten über die Peripherie-Medienverlagerungs-DDI 132 an den Peripherieschnittstellen-Hostcontroller-Manager 108 zu senden und um Nachrichten über die Peripherie-Medienverlagerungs-DDI 132 vom Peripherieschnittstellen-Hostcontroller-Manager 108 zu empfangen.
  • Der Medienprozessor-Manager 110 wird mit der beispielhaften Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 bereitgestellt, um Medienstromverlagerungsanforderungen vom Peripherieschnittstellen-Hostcontroller-Manager 108 zu verarbeiten, indem bestimmt wird, ob Ressourcen zur Handhabung einer Medienstromverlagerung im Medienprozessor 104 verfügbar sind, und indem Medienstromverlagerungsantworten an den Peripherieschnittstellen-Hostcontroller-Manager 108 gesendet werden, um Medienstromverlagerungsanforderungen zu akzeptieren, wenn solche Ressourcen verfügbar sind, oder um Medienstromverlagerungsanforderungen zurückzuweisen, wenn solche Ressourcen nicht verfügbar sind.
  • Der Medienprozessor-Manager 110 wird mit dem beispielhaften Medienprozessor-Konfigurator 808 bereitgestellt, um Ressourcen (z. B. E/A-Puffer, E/A-Stifte etc.) im Medienprozessor 104 zuzuteilen und/oder zu konfigurieren, um verlagerte Medienströme zu verarbeiten. Der beispielhafte Medienprozessor-Konfigurator 808 stellt Ressourceninformationen zu den zugeteilten/konfigurierten Ressourcen für die Medienprozessor-Manager-DDI 804 bereit, damit diese an den Peripherieschnittstellen-Hostcontroller-Manager 108 gesendet werden, so dass der Peripherieschnittstellen-Hostcontroller-Manager 108 die Ressourceninformationen verwenden kann, um die Peripherieschnittstellen-Hostcontroller 102a,b zu konfigurieren, so dass Medienströme zwischen den Peripherieschnittstellen-Hostcontrollern 102a,b und dem Medienprozessor 104 übertragen werden können.
  • In hier offenbarten Beispielen empfangen die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 und der Medienprozessor-Konfigurator 808 außerdem Medienstromsteuerungsanforderungen von dem Peripherieschnittstellen-Hostcontroller-Manager 108 und verwalten Medienströme basierend auf solchen Medienstromsteuerungsanforderungen. Beispielhafte Medienstromsteuerungsanforderungen basieren auf Steuerinformationen, die die Peripherieschnittstellen-Hostcontroller 102a,b von Medienströmen trennen, die von Peripherievorrichtungen 106a,b empfangen werden. Solche Steuerinformationen können von der Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 und/oder vom Medienprozessor-Konfigurator 808 verarbeitet werden, um Eigenschaftsänderungen (z. B. Lautstärkeänderungen, Stummschaltungsänderungen, Wiedergabesteuerung (Wiedergeben, Pausieren, Überspringen etc.), Videoauflösungsänderungen etc.) von Medienströmen zu steuern und/oder andere Verwaltungsaktionen entsprechend den Medienströmen (z. B. Einrichtung von Medienstromtransfers, Beendigung von Medienstromtransfers etc.) zu steuern.
  • In hier offenbarten Beispielen können Mittel zum Erkennen einer Medienstromverlagerungsfähigkeit des Medienprozessors 104 durch den Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 implementiert sein. In hier offenbarten Beispielen können Mittel zum Kommunizieren mit dem Peripherieschnittstellen-Hostcontroller-Manager 108 über die Peripherie-Medienverlagerungs-DDI 132 durch die Medienprozessor-Manager-DDI 804 implementiert sein. In hier offenbarten Beispielen können Mittel zum Empfangen von Medienstromverlagerungsanforderungen und/oder Mittel zum Senden von Medienstromverlagerungsantworten durch die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 implementiert sein. In hier offenbarten Beispielen können Mittel zum Zuteilen einer Kommunikationsschnittstelle (z. B. ein E/A-Controller 202a-c) des Medienprozessors 104, Mittel zum Zuteilen von Ressourcen des Medienprozessors 104 und/oder Mittel zum Abfragen der beispielhaften Zuordnungstabelle mit E/A-Controller-Kennungen 304 durch den Medienprozessor-Konfigurator 808 implementiert sein.
  • Auch wenn eine beispielhafte Art und Weise der Implementierung des Peripherieschnittstellen-Hostcontroller-Managers 108 von 1-3 und 5 in 7 dargestellt ist und eine beispielhafte Art und Weise der Implementierung des Medienprozessor-Managers 110 von 1-3 und 5 in 8 dargestellt ist, können ein oder mehrere der in 7 und 8 dargestellten Elemente, Prozesse und/oder Vorrichtungen kombiniert, unterteilt, neu angeordnet, ausgelassen, beseitigt werden und/oder auf eine beliebige andere Art und Weise implementiert sein. Ferner können der beispielhafte Detektor für Hostcontroller-Verlagerungsfähigkeiten 702, die beispielhafte Hostcontroller-Manager-DDI 704, der beispielhafte Peripherievorrichtungsdetektor 706, der beispielhafte Medienstromverlagerungsarbiter 708, der beispielhafte Endpunktzuordner 710, der beispielhafte Detektor für Medienprozessor-Verlagerungsfähigkeiten 802, die beispielhafte Medienprozessor-Manager-DDI 804, die beispielhafte Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 und der beispielhafte Medienprozessor-Konfigurator 808 und/oder, allgemeiner, der beispielhafte Peripherieschnittstellen-Hostcontroller-Manager 108 von 1-3, 5 und 7 und/oder der beispielhafte Medienprozessor-Manager 110 von 1-3, 5 und 8 durch Hardware, Software, Firmware und/oder eine beliebige Kombination aus Hardware, Software und/oder Firmware implementiert sein. Somit könnte beispielsweise jeder/jede von dem beispielhaften Detektor für Hostcontroller-Verlagerungsfähigkeiten 702, der beispielhaften Hostcontroller-Manager-DDI 704, dem beispielhaften Peripherievorrichtungsdetektor 706, dem beispielhaften Medienstromverlagerungsarbiter 708, dem beispielhaften Endpunktzuordner 710, dem beispielhaften Detektor für Medienprozessor-Verlagerungsfähigkeiten 802, der beispielhaften Medienprozessor-Manager-DDI 804, der beispielhaften Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 und dem beispielhaften Medienprozessor-Konfigurator 808 und/oder, allgemeiner, dem beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108 und/oder dem beispielhaften Medienprozessor-Manager 110 durch ein oder mehrere analoge oder digitale Schaltungen, logische Schaltungen, (einen) programmierbare(n) Prozessor(en), (einen) programmierbare(n) Controller, (eine) grafische Verarbeitungseinheit(en) (Graphics Processing Unit(s), GPU(s)), (einen) digitale(n) Signalprozessor(en) (DSP(s)), (eine) anwendungsspezifische integrierte Schaltung(en) (Application-Specific Integrated Circuit(s), ASIC(s)), (einen) programmierbare(n) Logikbausteine(e) (Programmable Logic Device(s), PLD(s)) und/oder (einen) feldprogrammierbare(n) Logikbaustein(e) (Field Programmable Logic Device(s), FPLD(s)) implementiert sein. Wenn beliebige der Einrichtungs- oder Systemansprüche der vorliegenden Patentanmeldung im Hinblick auf eine reine Software- und/oder Firmware-Implementierung gelesen werden, wird hiermit ausdrücklich definiert, dass wenigstens entweder der beispielhafte Detektor für Hostcontroller-Verlagerungsfähigkeiten 702, die beispielhafte Hostcontroller-Manager-DDI 704, der beispielhafte Peripherievorrichtungsdetektor 706, der beispielhafte Medienstromverlagerungsarbiter 708, der beispielhafte Endpunktzuordner 710, der beispielhafte Detektor für Medienprozessor-Verlagerungsfähigkeiten 802, die beispielhafte Medienprozessor-Manager-DDI 804, die beispielhafte Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 und/oder der beispielhafte Medienprozessor-Konfigurator 808 eine nichttransitorische, computerlesbare Speichervorrichtung oder Speicherplatte wie etwa einen Speicher, eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray Disk etc. aufweist, welche die Software und/oder die Firmware beinhaltet. Noch ferner können der beispielhafte Peripherieschnittstellen-Hostcontroller-Manager 108 und/oder der beispielhafte Medienprozessor-Manager 110 ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle der in 7 und oder 8 dargestellten beinhalten und/oder können mehr als ein beliebiges der oder alle dargestellten Elemente, Prozesse und Vorrichtungen aufweisen. Gemäß Verwendung hier umfasst die Formulierung „in Kommunikationsverbindung“, einschließlich deren Varianten, eine direkte Kommunikation und/oder eine indirekte Kommunikation durch eine oder mehrere Zwischenkomponenten und erfordert keine direkte physische (z. B. drahtgebundene) Kommunikation und/oder konstante Kommunikation, sondern umfasst zusätzlich eine selektive Kommunikation in periodischen Intervallen, geplanten Intervallen, nichtperiodischen Intervallen und/oder bei einmaligen Ereignissen.
  • Ein Flussdiagramm, das beispielhafte Hardwarelogik oder maschinenlesbare Anweisungen zum Implementieren des Peripherieschnittstellen-Hostcontroller-Managers 108 und des Medienprozessor-Managers 110 darstellt, ist in 9 gezeigt. Bei den maschinenlesbaren Anweisungen kann es sich um ein oder mehrere Programme oder (einen) Teil(e) von einem oder mehreren Programmen handeln, die von einem Prozessor wie etwa dem Prozessor 1012, der in der beispielhaften Prozessorplattform 1000 gezeigt wird, welche weiter unten im Zusammenhang mit 10 erörtert wird, ausgeführt werden. Das bzw. die Programme kann/können in Software ausgeführt sein, die auf einem nichttransitorischen, computerlesbaren Speichermedium gespeichert ist, etwa einer CD-ROM, einer Diskette, einer Festplatte, einer DVD, einer Blu-Ray-Disk oder einem Speicher, der dem Prozessor 1012 zugeordnet ist, jedoch könnte das gesamte Programm und/oder Teile davon alternativ auch von einer anderen Vorrichtung anstelle des Prozessors 1012 ausgeführt werden und/oder in Firmware oder dedizierter Hardware implementiert sein. Ferner können, auch wenn das beispielhafte Programm unter Bezugnahme auf das in 9 dargestellte Flussdiagramm beschrieben wird, alternativ auch zahlreiche andere Verfahren zur Implementierung des beispielhaften Peripherieschnittstellen-Hostcontroller-Managers 108 und des beispielhaften Medienprozessor-Managers 110 verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden und/oder können einige der beschriebenen Blöcke verändert, ausgelassen oder kombiniert werden. Zusätzlich oder alternativ können beliebige oder alle dieser Blöcke mithilfe einer oder mehrerer Hardwareschaltungen implementiert werden (z. B. diskrete und/oder integrierte analoge und/oder digitale Schaltungen, eine FPGA, eine ASIC, ein Komparator, ein Operationsverstärker (Op-Amp), eine Logikschaltung etc.), die so aufgebaut sind, dass sie die entsprechende Operation durchführen können, ohne dass Software oder Firmware ausgeführt wird.
  • Wie vorstehend erwähnt, können die beispielhaften Prozesse von 9 mithilfe von ausführbaren Anweisungen (z. B. computer- und/oder maschinenlesbaren Anweisungen) implementiert werden, die auf/in einem nichttransitorischen computer- und/oder maschinenlesbaren Medium, etwa einem Festplattenlaufwerk, einem Flash-Speicher, einem Festwertspeicher, einer Compact Disk, einer Digital Versatile Disk, einem Cache, einem Direktzugriffsspeicher und/oder einer beliebigen sonstigen Speichervorrichtung oder Speicherplatte gespeichert sind, in/auf der Informationen für beliebige Zeit (z. B. über längere Zeiträume, dauerhaft, kurzzeitig, zur zeitweisen Pufferung und/oder zur Zwischenspeicherung der Informationen) gespeichert sind. Gemäß Verwendung hier ist der Begriff „nichttransitorisches computerlesbares Medium“ ausdrücklich dahingehend definiert, dass er jede beliebige Art von computerlesbarer Speichervorrichtung und/oder Speicherplatte einschließt und eine Signalausbreitung sowie Übertragungsmedien ausschließt.
  • Die Ausdrücke „aufweisen/einschließen/beinhalten“ und „umfassen“ (sowie jegliche Abwandlungen und Zeitformen davon) werden hier als offene Ausdrücke verwendet. Somit ist überall dort, wo in den Patentansprüchen eine Form von „aufweisen/einschließen/beinhalten“ oder „umfassen“ (z. B. umfasst, beinhaltet, umfassend, beinhaltend, aufweisend etc.) als ein Oberbegriff oder in einer beliebig gearteten Erwähnung eines Patentanspruchs zu finden ist, diese dahingehend zu verstehen ist, dass zusätzliche Elemente, Begriffe etc. vorhanden sein können, ohne den Schutzbereich des betreffenden Anspruchs oder der betreffenden Erwähnung zu verlassen. Gemäß Verwendung hier ist der Ausdruck „wenigstens“, soweit er als überleitender Ausdruck beispielsweise im Oberbegriff eines Anspruchs steht, ein offener Ausdruck ähnlich wie die ebenfalls offenen Ausdrücke „umfassend“ und „beinhaltend“. Der Begriff „und/oder“ bezieht sich, wenn er beispielsweise in einer Form wie etwa A, B und/oder C verwendet wird, auf eine beliebige Kombination oder Untermenge von A, B, C wie etwa (1) nur A, nur (2) B, nur (3) C, (4) A mit B, (5) A mit C und (6) B mit C.
  • 9 zeigt ein Flussdiagramm, das beispielhafte computerlesbare Anweisungen darstellt, die ausgeführt werden können, um den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108 von 1-3, 5 und 7 und/oder den beispielhaften Medienprozessor-Manager 110 von 1-3, 5 und 8 zu implementieren, um einen Medienstromverlagerungstransfer zwischen dem Medienprozessor 104 und dem Peripherieschnittstellen-Hostcontroller 102a und/oder dem Peripherieschnittstellen-Hostcontroller 102b von 1-3 und 5 durchzuführen. Das Flussdiagramm des dargestellten Beispiels beinhaltet zwei Prozesse, die als ein beispielhafter Peripherieschnittstellen-Hostcontroller-Manager-Prozess 902 und ein beispielhafter Medienprozessor-Manager-Prozess 904 gezeigt werden. Der beispielhafte Peripherieschnittstellen-Hostcontroller-Manager-Prozess 902 repräsentiert Operationen, die durchgeführt werden, um den Peripherieschnittstellen-Hostcontroller-Manager 108 zu implementieren. Der beispielhafte Medienprozessor-Manager-Prozess 904 repräsentiert Operationen, die durchgeführt werden, um den Medienprozessor-Manager 110 zu implementieren.
  • Die beispielhaften Programme von 9 beginnen bei Block 912 des Peripherieschnittstellen-Hostcontroller-Manager-Prozesses 902 und Block 914 des Medienprozessor-Manager-Prozesses 904. Beispielsweise können der Peripherieschnittstellen-Hostcontroller-Manager-Prozess 902 und der Medienprozessor-Manager-Prozess 904 in Reaktion auf einen Systemstart oder einen Neustart der Hostvorrichtung 100 von 1-3 und 5 starten. Bei Block 912 bestimmt der beispielhafte Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 (7), ob eine Medienstromverlagerungsfähigkeit in dem (den) Peripherieschnittstellen-Hostcontroller(n) 102a,b verfügbar ist. Beispielsweise fragt der Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 das Hostcontroller-Fähigkeitsregister 112a (1 und 2) ab, um zu bestimmen, ob der Peripherieschnittstellen-Hostcontroller 102a eine Medienstromverlagerungsfähigkeit aufweist, und/oder fragt das Hostcontroller-Fähigkeitsregister 112b (1 und 2) ab, um zu bestimmen, ob der Peripherieschnittstellen-Hostcontroller 102b eine Medienstromverlagerungsfähigkeit aufweist. Bei Block 914 bestimmt der beispielhafte Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 (8), ob eine Medienstromverlagerungsfähigkeit im Medienprozessor 104 verfügbar ist. Beispielsweise fragt der Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 das Medienprozessor-Fähigkeitsregister 114 (1 und 2) ab, um zu bestimmen, ob der Medienprozessor 104 eine Medienstromverlagerungsfähigkeit aufweist.
  • Falls der beispielhafte Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 bei Block 912 bestimmt, dass keine Medienstromverlagerungsfähigkeit in dem (den) Peripherieschnittstellen-Hostcontroller(n) 102a,b verfügbar ist, oder falls der beispielhafte Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 bei Block 914 bestimmt, dass keine Medienstromverlagerungsfähigkeit im Medienprozessor 104 verfügbar ist, enden die beispielhaften Prozesse von 9, da ein Verlagern von Medienströmen entsprechend den Peripherievorrichtungen 106a,b (1, 2, 3 und 5) in der Hostvorrichtung 100 nicht unterstützt wird. In solchen Fällen kann der Medienstromtransfer unter Verwendung bisheriger Verfahren realisiert werden, indem ein Anwendungsprozessor verwendet wird, um den Medienstromtransfer durchzuführen.
  • Falls der beispielhafte Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 bei Block 912 bestimmt, dass eine Medienstromverlagerungsfähigkeit in dem (den) Peripherieschnittstellen-Hostcontroller(n) 102a,b verfügbar ist, und falls der beispielhafte Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 bei Block 914 bestimmt, dass eine Medienstromverlagerungsfähigkeit im Medienprozessor 104 verfügbar ist, richtet die beispielhafte Hostcontroller-Manager-DDI 704 (7) die Peripherie-Medienverlagerungs-DDI 132 mit dem Medienprozessor-Manager 110 ein (Block 916), und die beispielhafte Medienprozessor-Manager-DDI 804 (8) richtet die Peripherie-Medienverlagerungs-DDI 132 mit dem Peripherieschnittstellen-Hostcontroller-Manager 108 ein (Block 918). Beispielsweise teilt die Hostcontroller-Manager-DDI 704 E/A-Nachrichtenpuffer entsprechend dem Peripherieschnittstellen-Hostcontroller-Manager 108 für die Nachrichtenübermittlung mit der Medienprozessor-Manager-DDI 804 über die Peripherie-Medienverlagerungs-DDI 132 zu. Darüber hinaus teilt die Medienprozessor-Manager-DDI 804 E/A-Nachrichtenpuffer entsprechend dem Medienprozessor-Manager 110 für die Nachrichtenübermittlung mit der Hostcontroller-Manager-DDI 704 über die Peripherie-Medienverlagerungs-DDI 132 zu.
  • Bei Block 920 des Peripherieschnittstellen-Hostcontroller-Manager-Prozesses 902 bestimmt der beispielhafte Peripherievorrichtungsdetektor 706 (7), ob eine Peripherievorrichtung 106a,b angeschlossen worden ist. Beispielsweise kann der Peripherievorrichtungsdetektor 706 ein Interrupt oder eine Benachrichtigung von einem Peripherieschnittstellen-Hostcontroller 102a,b empfangen, wenn eine Peripherievorrichtung 106a,b damit verbunden ist. In einigen Beispielen bestätigt der Peripherievorrichtungsdetektor 706, dass die verbundene Peripherievorrichtung 106a,b einer Art von Vorrichtungsklasse entspricht, für die ein Medienstrom erstellt werden soll, so dass Peripherievorrichtungen anderer Arten von Vorrichtungsklassen (z. B. Arten von Vorrichtungsklassen, für die keine Medienströme erstellt werden sollen) ignoriert werden. Wenn der Peripherievorrichtungsdetektor 706 bei Block 920 bestimmt, dass eine Peripherievorrichtung 106a,b angeschlossen worden ist, sendet der beispielhafte Medienstromverlagerungsarbiter 708 (7) eine Medienstromverlagerungsanforderung an den Medienprozessor-Manager 110 (Block 922). Beispielsweise sendet der Medienstromverlagerungsarbiter 708 die Medienstromverlagerungsanforderung an den Medienprozessor-Manager 110 basierend auf der Medienstromverlagerungsfähigkeit des Peripherieschnittstellen-Hostcontrollers 102a,b und basierend darauf, dass die Peripherievorrichtung 106a,b mit dem Peripherieschnittstellen-Hostcontroller 102a,b verbunden ist. In dem dargestellten Beispiel sendet der Medienstromverlagerungsarbiter 708 in der Medienstromverlagerungsanforderung eine Peripherieschnittstellen-Hostcontroller-Kennung entsprechend dem Peripherieschnittstellen-Hostcontroller 102a (z. B. Peripherieschnittstellen-Hostcontroller-Kennung 1) oder dem Peripherieschnittstellen-Hostcontroller 102b (z. B., Peripherieschnittstellen-Hostcontroller-Kennung 2), an die die erkannte Peripherievorrichtung 106a,b angeschlossen ist. Um die Medienstromverlagerungsanforderung zu senden, kommuniziert der Medienstromverlagerungsarbiter 708 mit der Hostcontroller-Manager-DDI 704, um die Medienstromverlagerungsanforderung über die Peripherie-Medienverlagerungs-DDI 132 zu senden.
  • Bei Block 924 des Medienprozessor-Manager-Prozesses 904 bestimmt die beispielhafte Medienprozessor-Manager-DDI 804 (8), wann die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller-Manager 108 empfangen wird. Wenn die beispielhafte Medienprozessor-Manager-DDI 804 bei Block 924 bestimmt, dass die Medienstromverlagerungsanforderung empfangen worden ist, teilt der beispielhafte Medienprozessor-Konfigurator 808 (8) E/A-Ressourcen zu (Block 926), um einen Medienstrom zwischen dem Medienprozessor 104 und dem Peripherieschnittstellen-Hostcontroller 102a,b zu verlagern. Beispielsweise teilt der Medienprozessor-Konfigurator 808 E/A-Ressourcen basierend auf der Medienstromverlagerungsfähigkeit des Medienprozessors 104 und in Reaktion auf das Empfangen der Medienstromverlagerungsanforderung zu. In dem dargestellten Beispiel von Block 926 teilt der Medienprozessor-Konfigurator 808 eine Kommunikationsschnittstelle (z. B. einen E/A-Controller 202a-c) des Medienprozessors 104 zu, um einen Medienstrom zwischen dem Medienprozessor 104 und dem Peripherieschnittstellen-Hostcontroller 102a,b zu übertragen, ohne den Medienstrom an einen Anwendungsprozessor (z. B. den Prozessor 1012 von 10) zu übertragen, der mit dem Medienprozessor 104 verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller 102a,b verschaltet ist. Beispielsweise fragt der Medienprozessor-Konfigurator 808 die beispielhafte Zuordnungstabelle mit E/A-Controller-Kennungen 304 (3 und 4) basierend auf der Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung ab, um einen der E/A-Controller 202a-c des Medienprozessors 104 auszuwählen, der, entsprechend der Peripherieschnittstellen-Hostcontroller-Kennung, als mit dem Peripherieschnittstellen-Hostcontroller 102a,b verschaltet identifiziert ist. Bei Block 926 nummeriert der Medienprozessor-Konfigurator 808 außerdem Endpunkte (z. B. E/A-Puffer) und teilt E/A-Stifte des identifizierten E/A-Controllers 202a-c als Ressourcen für den Medienstromtransfer zu.
  • Bei Block 928 des Medienprozessor-Manager-Prozesses 904 bestimmt die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 (8), ob die Ressourcenzuteilung erfolgreich war. Falls die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 bei Block 928 bestimmt, dass die Ressourcenzuteilung nicht erfolgreich war, sendet die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 eine Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager 108, mit der die Medienstromverlagerungsanforderung zurückgewiesen wird (Block 930). Andernfalls, wenn die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 bei Block 928 bestimmt, dass die Ressourcenzuteilung erfolgreich war, reagiert die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 auf die Medienstromverlagerungsanforderung, indem Folgendes an den Peripherieschnittstellen-Hostcontroller-Manager 108 gesendet wird: (1) eine Medienstromverlagerungsantwort, mit der die Medienstromverlagerungsanforderung akzeptiert wird (Block 932), und (2) die Ressourceninformationen zu den zugeteilten Ressourcen (Block 934). In einigen Beispielen sendet die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 die Ressourceninformationen in der Medienstromverlagerungsantwort. In dem dargestellten Beispiel sendet die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 die Medienstromverlagerungsantwort und/oder die Ressourceninformationen über die Peripherie-Medienverlagerungs-DDI 132 unter Verwendung der Medienprozessor-Manager-DDI 804.
  • Bei Block 936 des Peripherieschnittstellen-Hostcontroller-Manager-Prozesses 902 bestimmt die beispielhafte Hostcontroller-Manager-DDI 704, wann die Medienstromverlagerungsantwort am Peripherieschnittstellen-Hostcontroller-Manager 108 empfangen wird. Wenn die Medienstromverlagerungsantwort empfangen wird, bestimmt der beispielhafte Medienstromverlagerungsarbiter 708, ob die Medienstromverlagerungsanforderung vom Medienprozessor-Manager 110 akzeptiert wurde (Block 938). Wenn die Medienstromverlagerungsantwort angibt, dass die Anforderung zurückgewiesen wurde, endet der beispielhafte Prozess aus 9, und die Medienstromverlagerung wird für die bei Block 920 erkannte Peripherievorrichtung 106a,b nicht implementiert. Wenn die Medienstromverlagerungsantwort angibt, dass die Anforderung akzeptiert wurde, erzeugt der beispielhafte Endpunktzuordner 710 (7) einen Endpunkttabelleneintrag entsprechend der Peripherievorrichtung 106a,b in einer entsprechenden Endpunkt-Zuordnungstabelle 502a,b (FIG.. 5 und 6) (Block 940). In dem dargestellten Beispiel ist der Endpunkttabelleneintrag wie vorstehend in Verbindung mit 5 und 6 beschrieben programmiert, um eine Kommunikationsschnittstelle (z. B. eine entsprechende der E/A-Controller 302a,b) des Peripherieschnittstellen-Hostcontrollers 102a,b zuzuweisen, um einen Medienstrom entsprechend der Peripherievorrichtung 106a,b zwischen dem Medienprozessor 104 und dem Peripherieschnittstellen-Hostcontroller 102a,b zu übertragen, ohne dass der Medienstrom an einen Anwendungsprozessor (z. B. den Prozessor 1012 aus 10) geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller 102a,b verschaltet ist und mit dem Medienprozessor 104 verschaltet ist.
  • Der Peripherieschnittstellen-Hostcontroller-Manager 108 und der Medienprozessor-Manager 110 beginnen mit dem Medienstromverlagerungstransfer. Beispielsweise sendet, bei Block 942 des Peripherieschnittstellen-Hostcontroller-Manager-Prozesses 902, der Medienstromverlagerungsarbiter 708 eine Nachricht an den Peripherieschnittstellen-Hostcontroller 102a,b, um den Medienstromtransfer mit dem Medienprozessor 104 basierend auf Ressourceninformationen in einem Endpunkttabelleneintrag einer entsprechenden Endpunkt-Zuordnungstabelle 502a,b zu beginnen. Darüber hinaus sendet, bei Block 944 des Medienprozessor-Manager-Prozesses 904, die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806, eine Nachricht an den Medienprozessor 104, um den Medienstromtransfer mit dem Peripherieschnittstellen-Hostcontroller 102a,b basierend auf den bei Block 926 zugeteilten Ressourcen zu beginnen. Die beispielhaften Prozesse 902 und 904 von 9 enden dann. Der Medienstrom kann auch nachfolgend modifiziert und beendet werden. Beispielsweise kann, durch Einrichten der Peripherie-Medienverlagerungs-DDI 132, der Medienstromverlagerungstransfer zwischen dem Peripherieschnittstellen-Hostcontroller 102a,b und dem Medienprozessor 104 vom Peripherieschnittstellen-Hostcontroller-Manager 108 und dem Medienprozessor-Manager 110 über die Peripherie-Medienverlagerungs-DDI 132 verwaltet werden, was das Ändern von Eigenschaften des Medienstroms und das Beenden des Medienstroms einschließt.
  • 10 ist ein Blockschaltbild einer beispielhaften Prozessorplattform, die dafür ausgelegt ist, die Anweisungen von 9 auszuführen, um den beispielhaften Peripherieschnittstellen-Hostcontroller-Manager 108 von 1-3, 5 und 7 und den beispielhaften Medienprozessor-Manager von 1-3, 5 und 8 zu implementieren. Bei der Prozessorplattform 1000 kann es sich beispielsweise um einen Server, einen Personalcomputer, eine Arbeitsstation, eine selbstlernende Maschine (z. B. ein neuronales Netz), eine mobile Vorrichtung (z. B. ein Mobiltelefon, ein Smartphone, eine Tablet-Vorrichtung wie etwa eine iPad™ Tablet-Vorrichtung), einen persönlichen digitalen Assistenten (PDA), ein Internetgerät, ein DVD (Digital Versatile Disk)-Abspielgerät, ein CD (Compact Disk)-Abspielgerät, einen digitalen Videorekorder, ein Blu-ray-Abspielgerät, eine Spielekonsole, einen persönlichen Videorekorder, ein Beistellgerät (Set-Top-Box), eine Kopfsprechgarnitur oder eine andere tragbare Vorrichtung oder irgendeine andere Art von Computervorrichtung handeln.
  • Die Prozessorplattform 1000 des dargestellten Beispiels weist einen Prozessor 1012 auf. Der Prozessor 1012 des dargestellten Beispiels ist Hardware. Beispielsweise kann der Prozessor 1012 durch eine(n) oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren, Grafikverarbeitungseinheiten (Graphics Processing Units, GPUs), DSPs oder Controller einer beliebigen gewünschten Familie bzw. eines beliebigen gewünschten Herstellers implementiert sein. Der Hardware-Prozessor 1012 kann eine halbleiterbasierte (z. B. siliziumbasierte) Vorrichtung sein. In dem dargestellten Beispiel implementiert der Prozessor 1012 einen Anwendungsprozessor, der mit den Peripherieschnittstellen-Hostcontrollern 102a,b verschaltet ist und mit dem Medienprozessor 104 von 1-3 und 5 verschaltet ist. In diesem Beispiel implementiert der Prozessor 1012 den beispielhaften Detektor für Hostcontroller-Verlagerungsfähigkeiten 702 (7), die beispielhafte Hostcontroller-Manager-DDI 704 (7), den beispielhaften Peripherievorrichtungsdetektor 706 (7), den beispielhaften Medienstromverlagerungsarbiter 708 (7), den beispielhaften Endpunktzuordner 710 (7), den beispielhaften Detektor für Medienprozessor-Verlagerungsfähigkeiten 802 (8), die beispielhafte Medienprozessor-Manager-DDI 804 (8), die beispielhafte Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen 806 (8) und den beispielhaften Medienprozessor-Konfigurator 808 (8).
  • Der Prozessor 1012 des dargestellten Beispiels weist einen lokalen Speicher 1013 auf (z. B. einen Cache, einen statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM) etc.). Der Prozessor 1012 des dargestellten Beispiels steht über einen Bus 1018 in Kommunikationsverbindung mit einem Hauptspeicher, der einen flüchtigen Speicher 1014 und einen nichtflüchtigen Speicher 1016 aufweist. In hier offenbarten Beispielen können der flüchtige Speicher 1014 und/oder der nichtflüchtige Speicher 1016 verwendet werden, um den Speicher 118 von 1 zu implementieren. Der flüchtige Speicher 1014 kann mittels SDRAM (Synchronous Dynamic Random Access Memory, synchroner dynamischer Direktzugriffsspeicher), DRAM (Dynamic Random Access Memory, dynamischer Direktzugriffsspeicher), RDRAM® (RAMBUS® Dynamic Random Access Memory, dynamischer Direktzugriffsspeicher von RAMBUS) SRAM und/oder eines anderen Typs von Direktzugriffsspeichervorrichtung implementiert werden. Der nichtflüchtige Speicher 1016 kann mittels Flash-Speicher und/oder einer beliebigen anderen gewünschten Art von Speichervorrichtung implementiert werden. Der Zugriff auf den Hauptspeicher 1014, 1016 wird durch einen Speichercontroller gesteuert.
  • Die Prozessorplattform 1000 des dargestellten Beispiels weist auch eine oder mehrere beispielhafte Schnittstellenschaltungen 1020 auf. Die Schnittstellenschaltungen 1020 können durch eine beliebige Art von Schnittstellenstandard implementiert sein, beispielsweise als eine Ethernet-Schnittstelle, eine USB-Schnittstelle, eine Blue-tooth®-Schnittstelle, eine Nahfeldkommunikationsschnittstelle (Near Field Communication, NFC) und/oder eine PCI-Express-Schnittstelle.
  • In dem dargestellten Beispiel sind eine oder mehrere Eingabevorrichtungen 1022 mit der (den) Schnittstellenschaltung(en) 1020 verbunden. Die Eingabevorrichtung(en) 1022 erlaubt/erlauben es einem Benutzer, Daten und/oder Befehle in den Prozessor 1012 einzugeben. Die Eingabevorrichtung(en) kann/können beispielsweise durch einen Audio-Sensor, ein Mikrofon, eine Kamera (Standbild oder Video), eine Tastatur, eine Taste, eine Maus, einen Berührungsschirm, ein Trackpad, einen Trackball, einen Isopoint und/oder ein Spracherkennungssystem implementiert sein.
  • Eine oder mehrere Ausgabevorrichtungen 1024 sind ebenfalls mit der (den) Schnittstellenschaltung(en) 1020 des dargestellten Beispiels verbunden. Die Ausgabevorrichtungen 1024 können beispielsweise durch Lautsprecher, Kopfhörer, Kopfsprechgarnituren, Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED), eine organischen Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhren (Cathod Ray Tube, CRT)-Anzeige, eine IPS (In-Place Switching)-Anzeige, einen Berührungsschirm etc.), eine taktile Ausgabevorrichtung und/oder einen Drucker implementiert sein. Für Video-/Bilddaten implementiert (implementieren) die Schnittstellenschaltung(en) 1020 des dargestellten Beispiels eine Grafiktreiberkarte, einen Grafiktreiberchip und/oder einen Grafiktreiberprozessor. In hier offenbarten Beispielen implementiert (implementieren) die Schnittstellenschaltung(en) 1020 den Peripherieschnittstellen-Hostcontroller 102a,b von 1-3 und 5. Darüber hinaus implementieren die Eingabevorrichtung(en) 1022 und/oder die Ausgabevorrichtung(en) 1024 die Peripherievorrichtungen 106a,b von 1-3 und 5.
  • Die Schnittstellenschaltung(en) 1020 des dargestellten Beispiels weist (weisen) außerdem eine Kommunikationsvorrichtung wie etwa einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem, ein Heim-Gateway, einen drahtlosen Zugangspunkt und/oder eine Netzschnittstelle auf, um den Austausch von Daten mit externen Maschinen (z. B. Computervorrichtungen beliebiger Art) über ein Netz 1026 zu ermöglichen. Die Kommunikation kann beispielsweise über eine Ethernet-Verbindung, eine DSL (Digital Subscriber Line, digitaler Teilnehmeranschluss)-Verbindung, eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein drahtloses Sichtverbindungssystem, ein Mobiltelefonsystem etc. erfolgen.
  • Die Prozessorplattform 1000 des dargestellten Beispiels weist außerdem eine oder mehrere Massenspeichervorrichtungen 1028 zum Speichern von Software und/oder Daten auf. Beispiele derartiger Massenspeichervorrichtungen 1028 beinhalten Diskettenlaufwerke, Festplattenlaufwerke, Compact-Disk-Laufwerke, Blu-ray-Disk-Laufwerke, RAID-Systeme (Redundant Array of Independent Disks, redundante Anordnung unabhängiger Platten) und DVD-Laufwerke.
  • Maschinenausführbare Anweisungen 1032 zum Implementieren der beispielhaften Prozesse von 9 können in der Massenspeichervorrichtung 1028, im flüchtigen Speicher 1014, im nichtflüchtigen Speicher 1016 und/oder auf einem wechselbaren nicht-transitorischen, computerlesbaren Datenspeichermedium wie einer CD oder DVD gespeichert sein.
  • Aus dem Vorangehenden versteht es sich, dass beispielhafte Verfahren, Einrichtungen und Erzeugnisse offenbart wurden, die ein Verlagern von Medienstromtransfers von einem Anwendungsprozessor einer Hostvorrichtung auf einen Medienprozessor der Hostvorrichtung ermöglichen, so dass solche Transfers von Medienströmen von Medienprozessoren gehandhabt werden können, die Medienverarbeitungen effizienter durchführen können als Anwendungsprozessoren. Angesichts der zunehmenden Nutzung von digitalen Medienströmen über USB-Typ-C-Ports für Kopfsprechgarnituren, Lautsprecher und Mikrofone in tragbaren Computervorrichtungen und der zunehmenden Tendenz zur geringeren Nutzung oder der Nichtnutzung von früheren analogen 3,5-mm-Audiobuchsen durch OEMs in aktuellen und zukünftigen Plattformen werden sich Vorrichtungen in Zukunft mehr auf eine digitale Verarbeitung von Medienströmen stützen. Solche tragbaren Computervorrichtungen (z. B. mobile Smartphones, mobile Medienvorrichtungen, Tablet-Computervorrichtungen, tragbare Computervorrichtungen (z. B. Smartwatches) etc.) sind batteriebetrieben und profitieren somit von einem stromsparenden Betrieb. Hier offenbarte Beispiele sind besonders nützlich für das Reduzieren der Leistungsaufnahme von solchen tragbaren Computervorrichtungen durch Verlagern von Medienströmen basierend auf dem Bereitstellen einer Tiefenpufferung für den Datenpfad, um die Häufigkeit, mit der der Anwendungsprozessor, der Speicher und/oder eine beliebige andere Ein-Chip-System (System on Chip, SoC)-Infrastruktur für das Übertragen der Medienströme an einen/von einem Speicher verwendet werden müssen, zu verringern. Darüber hinaus reduzieren hier offenbarte Beispiele ferner die Leistungsaufnahme von Vorrichtungen, indem die Verarbeitung solcher Medienströme von Anwendungsprozessoren von Hostvorrichtungen an stromsparendere Medienprozessoren verlagert wird. Da Medienprozessoren speziell für Medienverarbeitungsfunktionen ausgelegt sind, sind Medienprozessoren bei der Verarbeitung von Medien energieeffizienter und zeiteffizienter als Anwendungsprozessoren, die dafür ausgelegt sind, eine breitere Vielfalt von Funktionen abzuwickeln, was das Ausführen von Betriebssystemen, Anwendungen, Benutzerschnittstellen und Systemsteuerungsaktivitäten einschließt. Somit verbrauchen, durch Verlagern der Medienstromverarbeitung an einen Medienprozessor, hier offenbarte Beispiele relativ weniger Strom bei der Handhabung von Medienströmen wie etwa USB-basierten Audio-Datenströmen als bisherige Verfahren, die Medienströme unter Verwendung eines Anwendungsprozessors einer Hostvorrichtung verarbeiten.
  • Darüber hinaus ermöglicht das Verwenden von Medienprozessoren eine konsistente Medienprozessor-basierte Vorverarbeitung und/oder Nachverarbeitung von Medienströmen entsprechend den Peripherievorrichtungen, was es Herstellern gestattet, auf Hardwarebeschleunigung basierende Audio-Verarbeitungsalgorithmen für Mediencodierungs-/-decodierungslösungen (z. B. HD-A-Codecs) für Peripherievorrichtungbasierte Audio-Datenströme zu nutzen. Darüber hinaus können hier offenbarte Beispiele mit bestehenden Peripherie-Medienvorrichtungen verwendet werden, ohne Änderungen an solchen Peripherievorrichtungen vornehmen zu müssen, um die offenbarten Verfahren einzusetzen.
  • Die folgenden beziehen sich auf weitere hier offenbarte Beispiele.
  • Beispiel 1 ist eine Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller. Die Einrichtung von Beispiel 1 weist auf: einen Detektor für Hostcontroller-Verlagerungsfähigkeiten zum Bestimmen, dass eine Medienstromverlagerungsfähigkeit im Peripherieschnittstellen-Hostcontroller verfügbar ist; einen Medienstromverlagerungsarbiter zum Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und einen Endpunktzuordner zum Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um den Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 2 kann der Erfindungsgegenstand von Beispiel 1 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 3 kann der Erfindungsgegenstand von einem der Beispiele 1-2 optional beinhalten, dass eine Hostcontroller-Manager-DDI über eine Peripherie-Medienverlagerungs-DDI (Driver-to-Driver Interface) Steuerinformationen mit dem Medienprozessor-Manager austauscht, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  • In Beispiel 4 kann der Erfindungsgegenstand von einem der Beispiele 1-3 optional beinhalten, dass der Endpunktzuordner ferner den Endpunkttabelleneintrag programmieren soll, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  • In Beispiel 5 kann der Erfindungsgegenstand von einem der Beispiele 1-4 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 6 kann der Erfindungsgegenstand von einem der Beispiele 1-5 optional beinhalten, dass ein Peripherievorrichtungsdetektor erkennen soll, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, wobei der Medienstromverlagerungsarbiter in Reaktion auf das Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, die Medienstromverlagerungsanforderung senden soll.
  • In Beispiel 7 kann der Erfindungsgegenstand von einem der Beispiele 1-6 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 8 ist eine Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller. Die Einrichtung aus Beispiel 8 weist auf: Mittel zum Erkennen einer Medienstromverlagerungsfähigkeit des Peripherieschnittstellen-Hostcontrollers; Mittel zum Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und Mittel zum Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um den Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 9 kann der Erfindungsgegenstand von Beispiel 8 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 10 kann der Erfindungsgegenstand von einem der Beispiele 8-9 optional Mittel zum Austauschen von Steuerinformationen mit dem Medienprozessor-Manager über eine Peripherie-Medienverlagerungs-DDI aufweisen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  • In Beispiel 11 kann der Erfindungsgegenstand von einem der Beispiele 8-10 optional beinhalten, dass das Mittel zum Erzeugen des Endpunkttabelleneintrags den Endpunkttabelleneintrag programmieren soll, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  • In Beispiel 12 kann der Erfindungsgegenstand von einem der Beispiele 8-11 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 13 kann der Erfindungsgegenstand von einem der Beispiele 8-12 optional Mittel zum Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, beinhalten, wobei das Mittel zum Senden der Medienstromverlagerungsanforderung die Medienverlagerungsanforderung in Reaktion auf das Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, senden soll.
  • In Beispiel 14 kann der Erfindungsgegenstand von einem der Beispiele 8-13 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 15 ist ein nicht-transitorisches computerlesbares Datenspeichermedium mit Anweisungen, die, wenn sie ausgeführt werden, wenigstens einen Prozessor wenigstens veranlassen: eine Medienstromverlagerungsfähigkeit eines Peripherieschnittstellen-Hostcontrollers zu erkennen; eine Medienstromverlagerungsanforderung basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, an einen Medienprozessor-Manager zu senden; und einen Endpunkttabelleneintrag entsprechend der Peripherievorrichtung zu erzeugen, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um einen Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 16 kann der Erfindungsgegenstand von Beispiel 15 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 17 kann der Erfindungsgegenstand von einem der Beispiele 15-16 optional beinhalten, dass die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, über eine Peripherie-Medienverlagerungs-DDI Steuerinformationen mit dem Medienprozessor-Manager auszutauschen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  • In Beispiel 18 kann der Erfindungsgegenstand von einem der Beispiele 15-17 optional beinhalten, dass die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, den Endpunkttabelleneintrag zu programmieren, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  • In Beispiel 19 kann der Erfindungsgegenstand von einem der Beispiele 15-18 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 20 kann der Erfindungsgegenstand von einem der Beispiele 15-19 optional beinhalten, dass die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen zu erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, wobei die Anweisungen den wenigstens einen Prozessor veranlassen sollen, die Medienstromverlagerungsanforderung in Reaktion darauf, dass der wenigstens eine Prozessor erkennt, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, zu senden.
  • In Beispiel 21 kann der Erfindungsgegenstand von einem der Beispiele 15-20 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 22 ist ein Verfahren zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller. Das Verfahren aus Beispiel 22 beinhaltet: Erkennen einer Medienstromverlagerungsfähigkeit des Peripherieschnittstellen-Hostcontrollers; Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um den Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 23 kann der Erfindungsgegenstand von Beispiel 22 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 24 kann der Erfindungsgegenstand von einem der Beispiele 22-23 optional das Austauschen von Steuerinformationen mit dem Medienprozessor-Manager über eine Peripherie-Medienverlagerungs-DDI beinhalten, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  • In Beispiel 25 kann der Erfindungsgegenstand von einem der Beispiele 22-24 optional das Programmieren des Endpunkttabelleneintrags beinhalten, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  • In Beispiel 26 kann der Erfindungsgegenstand von einem der Beispiele 22-25 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  • In Beispiel 27 kann der Erfindungsgegenstand von einem der Beispiele 22-26 optional das Erkennen beinhalten, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, wobei das Senden der Medienstromverlagerungsanforderung in Reaktion auf das Erkennen erfolgt, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  • In Beispiel 28 kann der Erfindungsgegenstand von einem der Beispiele 22-27 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 29 ist eine Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller. Die Einrichtung von Beispiel 29 weist auf: einen Detektor für Medienprozessor-Verlagerungsfähigkeiten zum Bestimmen, dass eine Medienstromverlagerungsfähigkeit im Medienprozessor verfügbar ist; einen Medienprozessor-Konfigurator zum Zuteilen, basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, einer Kommunikationsschnittstelle des Medienprozessors, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen; und eine Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen, um Ressourceninformationen entsprechend der Kommunikationsschnittstelle in Reaktion auf die Medienstromverlagerungsanforderung an den Peripherieschnittstellen-Hostcontroller-Manager zu senden.
  • In Beispiel 30 kann der Erfindungsgegenstand von Beispiel 29 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 31 kann der Erfindungsgegenstand von einem der Beispiele 29-30 optional beinhalten, dass eine Medienprozessor-Manager-DDI über eine Peripherie-Medienverlagerungs-DDI Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager austauschen soll, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 32 kann der Erfindungsgegenstand von einem der Beispiele 29-31 optional beinhalten, dass die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller empfangen soll, wenn eine Peripherie-Medienvorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  • In Beispiel 33 kann der Erfindungsgegenstand von einem der Beispiele 29-32 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 34 kann der Erfindungsgegenstand von einem der Beispiele 29-33 optional beinhalten, dass der Medienprozessor-Konfigurator eine Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung abfragen soll, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  • In Beispiel 35 kann der Erfindungsgegenstand von einem der Beispiele 29-34 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 36 ist eine Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller. Die Einrichtung von Beispiel 36 weist auf: Mittel zum Erkennen einer Medienstromverlagerungsfähigkeit des Medienprozessors; Mittel zum Zuteilen einer Kommunikationsschnittstelle des Medienprozessors basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, wobei die Kommunikationsschnittstelle des Medienprozessors den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll; und Mittel zum Senden einer Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager in Reaktion auf die Medienstromverlagerungsanforderung, wobei die Medienstromverlagerungsantwort Ressourceninformationen entsprechend der Kommunikationsschnittstelle aufweisen soll.
  • In Beispiel 37 kann der Erfindungsgegenstand von Beispiel 36 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 38 kann der Erfindungsgegenstand von einem der Beispiele 36-37 optional Mittel zum Austauschen von Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI aufweisen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 39 kann der Erfindungsgegenstand von einem der Beispiele 36-38 optional beinhalten, dass das Mittel zum Senden der Medienstromverlagerungsantwort die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller empfangen soll, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  • In Beispiel 40 kann der Erfindungsgegenstand von einem der Beispiele 36-39 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 41 kann der Erfindungsgegenstand von einem der Beispiele 36-40 optional beinhalten, dass das Mittel zum Zuteilen der Kommunikationsschnittstelle des Medienprozessors eine Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung abfragen soll, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  • In Beispiel 42 kann der Erfindungsgegenstand von einem der Beispiele 36-41 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 43 ist ein nicht-transitorisches computerlesbares Datenspeichermedium mit Anweisungen, die, wenn sie ausgeführt werden, wenigstens einen Prozessor wenigstens anweisen: eine Medienstromverlagerungsfähigkeit eines Medienprozessors zu erkennen; eine Kommunikationsschnittstelle des Medienprozessors basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, zuzuteilen, wobei die Kommunikationsschnittstelle des Medienprozessors den Medienstrom zwischen dem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller übertragen soll; und in Reaktion auf die Medienstromverlagerungsanforderung eine Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager zu senden, wobei die Medienstromverlagerungsantwort Ressourceninformationen entsprechend der Kommunikationsschnittstelle aufweisen soll.
  • In Beispiel 44 kann der Erfindungsgegenstand von Beispiel 43 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 45 kann der Erfindungsgegenstand von einem der Beispiele 43-44 optional beinhalten, dass die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI auszutauschen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 46 kann der Erfindungsgegenstand von einem der Beispiele 43-45 optional beinhalten, dass die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller zu empfangen, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  • In Beispiel 47 kann der Erfindungsgegenstand von einem der Beispiele 43-46 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 48 kann der Erfindungsgegenstand von einem der Beispiele 43-47 optional beinhalten, dass die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, eine Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung abzufragen, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  • In Beispiel 49 kann der Erfindungsgegenstand von einem der Beispiele 43-48 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Beispiel 50 ist ein Verfahren zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller. Das Verfahren von Beispiel 50 beinhaltet: Erkennen einer Medienstromverlagerungsfähigkeit des Medienprozessors; Zuteilen einer Kommunikationsschnittstelle des Medienprozessors basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, wobei die Kommunikationsschnittstelle des Medienprozessors den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll; und Senden einer Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager in Reaktion auf die Medienstromverlagerungsanforderung, wobei die Medienstromverlagerungsantwort Ressourceninformationen entsprechend der Kommunikationsschnittstelle aufweisen soll.
  • In Beispiel 51 kann der Erfindungsgegenstand von Beispiel 50 optional beinhalten, dass der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 52 kann der Erfindungsgegenstand von einem der Beispiele 50-51 optional das Austauschen von Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI beinhalten, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  • In Beispiel 53 kann der Erfindungsgegenstand von einem der Beispiele 50-52 optional das Empfangen der Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller beinhalten, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  • In Beispiel 54 kann der Erfindungsgegenstand von einem der Beispiele 50-53 optional beinhalten, dass die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  • In Beispiel 55 kann der Erfindungsgegenstand von einem der Beispiele 50-54 optional das Abfragen einer Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung beinhalten, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  • In Beispiel 56 kann der Erfindungsgegenstand von einem der Beispiele 50-55 optional beinhalten, dass es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  • Auch wenn hier bestimmte beispielhafte Verfahren, Einrichtungen und Erzeugnisse offenbart worden sind, ist der Schutzbereich dieser Patentanmeldung nicht darauf beschränkt. Vielmehr erstreckt sich diese Patentanmeldung auf sämtliche Verfahren, Einrichtungen und Erzeugnisse, die billigerweise in den Schutzbereich der Patentansprüche fallen.

Claims (56)

  1. Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller, wobei die Einrichtung umfasst: einen Detektor für Hostcontroller-Verlagerungsfähigkeiten zum Bestimmen, dass eine Medienstromverlagerungsfähigkeit im Peripherieschnittstellen-Hostcontroller verfügbar ist; einen Medienstromverlagerungsarbiter zum Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und einen Endpunktzuordner zum Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um den Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  2. Einrichtung wie in Anspruch 1 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  3. Einrichtung wie in Anspruch 1 definiert, ferner aufweisend eine Hostcontroller-Manager-DDI (Driver-to-Driver Interface, Treiber-zu-Treiber-Schnittstelle), um Steuerinformationen mit dem Medienprozessor-Manager über eine Peripherie-Medienverlagerungs-DDI auszutauschen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  4. Einrichtung wie in Anspruch 1 definiert, wobei der Endpunktzuordner ferner den Endpunkttabelleneintrag programmieren soll, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  5. Einrichtung wie in Anspruch 1 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  6. Einrichtung wie in Anspruch 1 definiert, ferner aufweisend einen Peripherievorrichtungsdetektor zum Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, wobei der Medienstromverlagerungsarbiter in Reaktion auf das Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, die Medienstromverlagerungsanforderung senden soll.
  7. Einrichtung wie in Anspruch 1 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  8. Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller, wobei die Einrichtung umfasst: Mittel zum Erkennen einer Medienstromverlagerungsfähigkeit des Peripherieschnittstellen-Hostcontroll ers; Mittel zum Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und Mittel zum Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um den Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  9. Einrichtung wie in Anspruch 8 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  10. Einrichtung wie in Anspruch 8 definiert, ferner aufweisend Mittel zum Austauschen von Steuerinformationen mit dem Medienprozessor-Manager über eine Peripherie-Medienverlagerungs-DDI, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  11. Einrichtung wie in Anspruch 8 definiert, wobei das Mittel zum Erzeugen des Endpunkttabelleneintrags den Endpunkttabelleneintrag programmieren soll, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  12. Einrichtung wie in Anspruch 8 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  13. Einrichtung wie in Anspruch 8 definiert, ferner aufweisend Mittel zum Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, wobei das Mittel zum Senden der Medienstromverlagerungsanforderung die Medienverlagerungsanforderung in Reaktion auf das Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, senden soll.
  14. Einrichtung wie in Anspruch 8 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  15. Nicht-transitorisches computerlesbares Datenspeichermedium, umfassend Anweisungen, die, wenn sie ausgeführt werden, wenigstens einen Prozessor wenigstens veranlassen: eine Medienstromverlagerungsfähigkeit eines Peripherieschnittstellen-Hostcontrollers zu erkennen; eine Medienstromverlagerungsanforderung an einen Medienprozessor-Manager zu senden, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und einen Endpunkttabelleneintrag entsprechend der Peripherievorrichtung zu erzeugen, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um einen Medienstrom entsprechend der Peripherievorrichtung zwischen einem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  16. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 15 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  17. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 15 definiert, wobei die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, Steuerinformationen mit dem Medienprozessor-Manager über eine Peripherie-Medienverlagerungs-DDI auszutauschen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  18. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 15 definiert, wobei die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, den Endpunkttabelleneintrag zu programmieren, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  19. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 15 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  20. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 15 definiert, wobei die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen zu erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, und die Anweisungen den wenigstens einen Prozessor veranlassen sollen, die Medienstromverlagerungsanforderung in Reaktion darauf, dass der wenigstens eine Prozessor erkennt, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, zu senden.
  21. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 15 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  22. Verfahren zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller, wobei das Verfahren umfasst: Erkennen einer Medienstromverlagerungsfähigkeit des Peripherieschnittstellen-Hostcontrollers; Senden einer Medienstromverlagerungsanforderung an einen Medienprozessor-Manager, basierend auf der Medienstromverlagerungsfähigkeit und basierend darauf, dass eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist; und Erzeugen eines Endpunkttabelleneintrags entsprechend der Peripherievorrichtung, wobei der Endpunkttabelleneintrag eine erste Kommunikationsschnittstelle des Peripherieschnittstellen-Hostcontrollers zuweisen soll, um den Medienstrom entsprechend der Peripherievorrichtung zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  23. Verfahren wie in Anspruch 22 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor geleitet wird, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  24. Verfahren wie in Anspruch 22 definiert, ferner beinhaltend das Austauschen von Steuerinformationen mit dem Medienprozessor-Manager über eine Peripherie-Medienverlagerungs-DDI, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, wobei der Datenpfad den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll.
  25. Verfahren wie in Anspruch 22 definiert, ferner beinhaltend das Programmieren des Endpunkttabelleneintrags, um wenigstens eines von einem Eingangsstift, einem Ausgangsstift oder einem bidirektionalen Stift der ersten Kommunikationsschnittstelle einem Puffer des Peripherieschnittstellen-Hostcontrollers zuzuordnen.
  26. Verfahren wie in Anspruch 22 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Peripherieschnittstellen-Hostcontrollers hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist und mit dem Medienprozessor verschaltet ist.
  27. Verfahren wie in Anspruch 22 definiert, ferner beinhaltend das Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, wobei das Senden der Medienstromverlagerungsanforderung in Reaktion auf das Erkennen, dass die Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist, erfolgt.
  28. Verfahren wie in Anspruch 22 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  29. Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller, wobei die Einrichtung umfasst: einen Detektor für Medienprozessor-Verlagerungsfähigkeiten zum Bestimmen, dass eine Medienstromverlagerungsfähigkeit im Medienprozessor verfügbar ist; einen Medienprozessor-Konfigurator, der, basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, eine Kommunikationsschnittstelle des Medienprozessors zuteilen soll, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen; und eine Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen, um Ressourceninformationen entsprechend der Kommunikationsschnittstelle in Reaktion auf die Medienstromverlagerungsanforderung an den Peripherieschnittstellen-Hostcontroller-Manager zu senden.
  30. Einrichtung wie in Anspruch 29 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  31. Einrichtung wie in Anspruch 29 definiert, ferner aufweisend eine Medienprozessor-Manager-DDI, die Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI austauschen soll, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  32. Einrichtung wie in Anspruch 29 definiert, wobei die Handhabungsvorrichtung (Handler) für Medienstromverlagerungsanforderungen die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller empfangen soll, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  33. Einrichtung wie in Anspruch 29 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  34. Einrichtung wie in Anspruch 29 definiert, wobei der Medienprozessor-Konfigurator eine Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung abfragen soll, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  35. Einrichtung wie in Anspruch 29 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  36. Einrichtung zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller, wobei die Einrichtung umfasst: Mittel zum Erkennen einer Medienstromverlagerungsfähigkeit des Medienprozessors; Mittel zum Zuteilen einer Kommunikationsschnittstelle des Medienprozessors, basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, wobei die Kommunikationsschnittstelle des Medienprozessors den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll; und Mittel zum Senden einer Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager in Reaktion auf die Medienstromverlagerungsanforderung, wobei die Medienstromverlagerungsantwort Ressourceninformationen entsprechend der Kommunikationsschnittstelle aufweisen soll.
  37. Einrichtung wie in Anspruch 36 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  38. Einrichtung wie in Anspruch 36 definiert, ferner aufweisend Mittel zum Austauschen von Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  39. Einrichtung wie in Anspruch 36 definiert, wobei das Mittel zum Senden der Medienstromverlagerungsantwort die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller empfangen soll, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  40. Einrichtung wie in Anspruch 36 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  41. Einrichtung wie in Anspruch 36 definiert, wobei das Mittel zum Zuteilen der Kommunikationsschnittstelle des Medienprozessors eine Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung abfragen soll, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  42. Einrichtung wie in Anspruch 36 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  43. Nicht-transitorisches computerlesbares Datenspeichermedium, umfassend Anweisungen, die, wenn sie ausgeführt werden, wenigstens einen Prozessor wenigstens veranlassen: eine Medienstromverlagerungsfähigkeit eines Medienprozessors zu erkennen; eine Kommunikationsschnittstelle des Medienprozessors basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, zuzuteilen, wobei die Kommunikationsschnittstelle des Medienprozessors den Medienstrom zwischen dem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller übertragen soll; und in Reaktion auf die Medienstromverlagerungsanforderung eine Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager zu senden, wobei die Medienstromverlagerungsantwort Ressourceninformationen entsprechend der Kommunikationsschnittstelle aufweisen soll.
  44. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 43 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  45. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 43 definiert, wobei die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI auszutauschen, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  46. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 43 definiert, wobei die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, die Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller zu empfangen, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  47. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 43 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  48. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 43 definiert, wobei die Anweisungen ferner den wenigstens einen Prozessor veranlassen sollen, eine Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung abzufragen, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  49. Nicht-transitorisches computerlesbares Datenspeichermedium wie in Anspruch 43 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
  50. Verfahren zum Leiten eines Medienstroms zwischen einem Medienprozessor und einem Peripherieschnittstellen-Hostcontroller, wobei das Verfahren umfasst: Erkennen einer Medienstromverlagerungsfähigkeit des Medienprozessors; Zuteilen einer Kommunikationsschnittstelle des Medienprozessors, basierend auf der Medienstromverlagerungsfähigkeit und in Reaktion auf eine Medienstromverlagerungsanforderung, die von einem Peripherieschnittstellen-Hostcontroller-Manager empfangen wird, wobei die Kommunikationsschnittstelle des Medienprozessors den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller übertragen soll; und Senden einer Medienstromverlagerungsantwort an den Peripherieschnittstellen-Hostcontroller-Manager in Reaktion auf die Medienstromverlagerungsanforderung, wobei die Medienstromverlagerungsantwort Ressourceninformationen entsprechend der Kommunikationsschnittstelle aufweisen soll.
  51. Verfahren wie in Anspruch 50 definiert, wobei der Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller erfolgt, ohne dass der Medienstrom an einen Anwendungsprozessor gesendet wird, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  52. Verfahren wie in Anspruch 50 definiert, ferner beinhaltend das Austauschen von Steuerinformationen mit dem Peripherieschnittstellen-Hostcontroller-Manager über eine Peripherie-Medienverlagerungs-DDI, wobei die Peripherie-Medienverlagerungs-DDI einen Steuerpfad getrennt von einem Datenpfad bilden soll, der verwendet wird, um den Medienstrom zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu übertragen.
  53. Verfahren wie in Anspruch 50 definiert, ferner beinhaltend das Empfangen der Medienstromverlagerungsanforderung von dem Peripherieschnittstellen-Hostcontroller, wenn eine Peripherievorrichtung mit dem Peripherieschnittstellen-Hostcontroller verbunden ist.
  54. Verfahren wie in Anspruch 50 definiert, wobei die Medienstromverlagerungsfähigkeit auf eine Fähigkeit des Medienprozessors hinweist, Medienströme zwischen dem Peripherieschnittstellen-Hostcontroller und dem Medienprozessor zu übertragen und hierbei einen Anwendungsprozessor zu umgehen, der mit dem Medienprozessor verschaltet ist und mit dem Peripherieschnittstellen-Hostcontroller verschaltet ist.
  55. Verfahren wie in Anspruch 50 definiert, ferner beinhaltend das Abfragen einer Zuordnungstabelle mit Eingabe/Ausgabe-Controller-Kennungen basierend auf einer Peripherieschnittstellen-Hostcontroller-Kennung in der Medienstromverlagerungsanforderung, um die zuzuteilende Kommunikationsschnittstelle des Medienprozessors für den Transfer des Medienstroms zwischen dem Medienprozessor und dem Peripherieschnittstellen-Hostcontroller zu bestimmen.
  56. Verfahren wie in Anspruch 50 definiert, wobei es sich bei dem Peripherieschnittstellen-Hostcontroller um einen USB (Universal Serial Bus)-Hostcontroller handelt.
DE102019105078.2A 2018-03-30 2019-02-28 Verfahren und einrichtung zum verlagern von medienströmen in hostvorrichtungen Pending DE102019105078A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/941,273 2018-03-30
US15/941,273 US10366017B2 (en) 2018-03-30 2018-03-30 Methods and apparatus to offload media streams in host devices

Publications (1)

Publication Number Publication Date
DE102019105078A1 true DE102019105078A1 (de) 2019-10-02

Family

ID=65231007

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019105078.2A Pending DE102019105078A1 (de) 2018-03-30 2019-02-28 Verfahren und einrichtung zum verlagern von medienströmen in hostvorrichtungen

Country Status (2)

Country Link
US (1) US10366017B2 (de)
DE (1) DE102019105078A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176238A1 (en) 2017-03-28 2018-10-04 Intel Corporation Technologies for hybrid field-programmable gate array-application-specific integrated circuit code acceleration
US11320995B2 (en) 2018-10-31 2022-05-03 Western Digital Technologies, Inc. Transferring computational operations to controllers of data storage devices
US10783093B2 (en) * 2019-01-18 2020-09-22 Hewlett Packard Enterprise Development Lp Driver-to-driver communication
US11410264B2 (en) 2019-09-27 2022-08-09 Intel Corporation Switchable image source in a hybrid graphics systems
US20200177660A1 (en) * 2020-02-03 2020-06-04 Intel Corporation Offload of streaming protocol packet formation
US11356601B2 (en) 2020-06-19 2022-06-07 Micron Technology, Inc. Intelligent digital camera having deep learning accelerator and random access memory
US11490135B2 (en) * 2020-06-19 2022-11-01 Micron Technology, Inc. Surveillance camera upgrade via removable media having deep learning accelerator and random access memory
CN116615906A (zh) * 2021-12-15 2023-08-18 京东方科技集团股份有限公司 一种流媒体处理方法、系统及设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408605A (en) 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
US7631119B2 (en) 2004-06-25 2009-12-08 Apple Inc. Techniques for providing audio for synchronized playback by multiple devices
EP1771998B1 (de) 2004-07-23 2015-04-15 Citrix Systems, Inc. Systeme und verfahren zur kommunikationsoptimierung zwischen netzwerkknoten
US8610310B2 (en) * 2008-02-25 2013-12-17 Tivo Inc. Wireless ethernet system
US8161212B1 (en) 2010-09-22 2012-04-17 Xilinx, Inc. Data operations across parallel non-volatile input/output devices
US9552206B2 (en) 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US8972667B2 (en) 2011-06-28 2015-03-03 International Business Machines Corporation Exchanging data between memory controllers
US8996840B2 (en) 2011-12-23 2015-03-31 International Business Machines Corporation I/O controller and method for operating an I/O controller
EP3087472B1 (de) 2013-12-27 2019-05-08 Intel Corporation Skalierbares ein-/ausgabesystem und verfahren
US20150248595A1 (en) * 2014-02-28 2015-09-03 Streaming Networks Inc. Apparatus and method for automatic license plate recognition and traffic surveillance
US10678494B2 (en) * 2016-06-27 2020-06-09 Qualcomm Incorporated Controlling data streams in universal serial bus (USB) systems

Also Published As

Publication number Publication date
US10366017B2 (en) 2019-07-30
US20190042483A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102019105078A1 (de) Verfahren und einrichtung zum verlagern von medienströmen in hostvorrichtungen
TWI430102B (zh) 網路卡資源配置方法、儲存媒體、及電腦
EP3529706B1 (de) Gpu-fernkommunikation mit ausgelösten operationen
US8762544B2 (en) Selectively communicating data of a peripheral device to plural sending computers
DE112018000226T5 (de) Mobiles Cloud-Computing-Endgerät und Betriebsverfahren dafür
US10678494B2 (en) Controlling data streams in universal serial bus (USB) systems
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
US20130155179A1 (en) Performing DMA Transfer of Audio and Video Data Received over a Serial Bus
JP2016505915A (ja) 表示インターフェースを介するシリアルバスサポートの柔軟な実装
US20170371681A1 (en) Systems and methods for using distributed universal serial bus (usb) host drivers
WO2014193435A1 (en) Multiple concurrent audio modes
TW201527947A (zh) 使用動態記憶體i/o調整大小來節約記憶體功率的系統和方法
WO2014180244A1 (zh) 外部设备控制方法及装置
CN112764817A (zh) 设备功能唤醒方法及装置
US20230152978A1 (en) Data Access Method and Related Device
DE102022119625A1 (de) Audiostapel-leistungssteuerung basierend auf latenz
WO2015196827A1 (zh) 显示设备及其共享控制方法
DE102018128244A1 (de) Applikationsprozessor für niedrigleistungsbetrieb und eine elektronische einrichtung, die diesen umfasst
US9372819B2 (en) I/O device N—port ID virtualization
JP4992568B2 (ja) クライアント装置、データ処理方法およびそのプログラム
US10176133B2 (en) Smart device with no AP
DE112009004319T5 (de) Kommunizieren von Datenzugängen zwischen einem ersten und einem zweiten Computer, die über ein Netzwerk verbunden sind
DE112017002433T5 (de) Technologien zum abladen von eingabeberechnung über eine drahtlose verbindung
US9762704B2 (en) Service based media player
DE112009004064T5 (de) Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE

R081 Change of applicant/patentee

Owner name: TAHOE RESEARCH, LTD., IE

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE