-
Die
Erfindung betrifft das technische Gebiet des Software-Engineering, insbesondere
im Bereich der Unterhaltungselektronik.
-
Hintergrund
der Erfindung
-
Moderne
elektronische Geräte
werden mit immer mehr Software ausgestattet. Dies gilt auch für Unterhaltungselektronikgeräte. Dennoch
sind zur Zeit solche Geräte
nur in Ausnahmefällen
mit einer kompletten Rechnerarchitektur auf PC-Basis ausgestattet.
Aus Kostengründen
sind diese Geräte
mit nur geringen Systemressourcen ausgestattet. Unter solchen Systemressourcen
werden Komponenten verstanden wie Speicher, Interrupt-Kanäle, Direktspeicher-Zugriffskanäle (DMA-Kanäle), Prozessorleistung
aber auch Ausstattungsmerkmale, die nicht unbedingt mit der Rechenleistung
zusammenhängen, wie
ein Kartenlesegerät,
eine Einheit zur Verschlüsselung
bzw. Entschlüsselung
von Daten, spezielle Enkodier- bzw. Dekodiereinheiten usw. Ebenfalls
aus Kostengründen
werden die Unterhaltungselektronikgeräte ohne eigenes Betriebssystem
ausgelegt. Solche Geräte
werden im englischen Sprachgebrauch auch als „Embedded devices" bezeichnet. Die
erwähnten,
nicht trivialen Softwarestapel betreffen z. B. die sogenannte Treiber-Software
einer digitalen Kommunikationsschnittstelle wie z. B. der IEEE1394-Bus-Schnittstelle.
-
Erfindung
-
Die
Erfindung beschäftigt
sich mit dem Problem der optimalen Ausnutzung der Systemressourcen
in Geräten
mit begrenzten Systemressourcen, wie z. B. Unterhaltungselektronikgeräten.
-
Zusätzliches
Kriterium ist, daß diese
Geräte auch
ohne eigenes Betriebssystem ausgelegt sind. Werden solche Geräte mit Betriebssystem
ausgeliefert, so werden die Systemressourcen in der Regel durch
das Betriebssystem optimal verwaltet.
-
Erfindungsgemäß wird vorgeschlagen,
in dem geräteeigenen
Software-Stapel selbst Mittel zur Verwaltung von Systemressourcen
vorzusehen. Wird der Softwarestapel im Gerät nur zeitweise genutzt, so werden
die nötigen
Systemressourcen nur für
den Zeitraum der Nutzung des Software-Stapels für andere Anwendungen blockiert.
Wird der Software-Stapel zwischenzeitlich von keiner Anwendung benutzt, so
werden alle zuvor belegten Systemressourcen wieder freigegeben und
stehen den anderen Anwendungen zur Verfügung. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen,
werden vorteilhafte Weiterbildungen und Verbesserungen des erfindungsgemäßen Verfahrens
ermöglicht.
Eine flexible und sparsame Nutzung der Systemressourcen wird dadurch
erreicht, daß der
Software-Stapel
konfigurierbar ausgelegt ist, d. h, daß die den Software-Stapel nutzenden
Anwendungen entsprechend ihres Bedarfs nur so viele Systemressourcen
zur Belegung anfordern, wie zum Startzeitpunkt vorgegeben. Von verschiedenen
Anwendungen können
also unterschiedliche Mengen an Systemressourcen zur Reservierung
seitens des Software-Stapels angefordert werden. Durch die Konfigurierbarkeit
werden auch Änderungen
am bestehenden Quellcode des Software-Stapels für Anpassungen an unterschiedliche
Anwendungen minimiert, was die Stabilität des Software-Stapels erhöht.
-
Eine
vorteilhafte Maßnahme
besteht darin, daß die
Verwaltungsmittel für
Systemressourcen innerhalb des Software-Stapels bei Anforderung
der Nutzung des Stapels seitens einer anderen Anwendung überprüfen, welche
belegten Ressourcen in dem Software-Stapel bereits registriert sind und
die Nutzung des Software-Stapels durch die weitere Anwendung nur
dann gestatten, wenn der Ressourcen-Bedarf der weiteren Anwendung
höchstens
dem Systembedarf entspricht, der im Software-Stapel bereits registriert
ist. Diese Maßnahme
hält den
Verwaltungsaufwand für
die Systemressourcen gering.
-
Es
muß nicht
immer im laufenden Betrieb überprüft werden,
welche Ressourcen von welchen Software-Modulen belegt sind, bevor
eine Anwendung den Software-Stapel nutzen kann.
-
Für eine Vorrichtung
zur Durchführung
des erfindungsgemäßen Verfahrens
sind vorteilhafte Maßnahmen
in den Ansprüchen
4–6 in
entsprechender Weise aufgelistet.
-
Zeichnungen
-
Ausführungsbeispiele
der Erfindung werden im Nachfolgenden anhand von Zeichnungen näher erläutert. Darin
zeigen:
-
1 die
Systemarchitektur einer erfindungsgemäßen Vorrichtung;
-
2 zwei
Beispiele für
Funktionsaufrufe zur Registrierung von Systemressourcen sowie die entsprechenden
Beispiele für
die Systemaufrufe zur Beendigung der Ressourcenbelegung;
-
3 ein
Beispiel eines Ablaufdiagramms, welches im Software-Stapel zur Belegung
von Systemressourcen abgearbeitet wird und
-
4 ein
Beispiel eines Ablaufdiagramms, welches zur Beendigung der Belegung
von Systemressourcen abgearbeitet wird.
-
Ausführungsbeispiele
der Erfindung
-
In
der 1 ist die Systemarchitektur einer Set-Top-Box
dargestellt. Die gestrichelte Linie teilt die Hardware-Komponenten von den
Software-Komponenten ab. Oberhalb der gestrichelten Linie sind die
Software-Komponenten dargestellt, unterhalb die Hardware-Komponenten
dieser Set-Top-Box.
Die gezeigte Set-Top-Box hat als Besonderheit eine Festplatte zur
Aufzeichnung von Video-Inhalten bzw. ebenfalls auch Audio-Inhalten.
Die gezeigten Hardware-Komponenten
betreffen einen Mikro-Controller 10, eine Festkörper-Speicheranordnung 11,
einen DMA-Baustein 12, ein IEEE1394 Link Layer IC 13,
einen IEEE1394 Physical Layer IC 14, eine Ethernet-Schnittstelle 15,
ein Empfangsteil 16 sowie die erwähnte Festplatte 17.
Unter den dargestellten Software-Komponenten befinden sich zwei
sogenannte Software-Stapel.
Das ist zum einen ein IEEE1394-Software-Stapel 18 und zum
anderen ein IP Software-Stapel 19. Für den IEEE1394 Software-Stapel 18 ist
der Aufbau dieses Stapels näher
gezeigt. Die Bezugszahl 20 bezeichnet die Anwendungsprogramm-Schnittstelle
für diesen
Software-Stapel. Diese Schnittstelle wird im englischen Sprachgebrauch
auch als Application Program Interface (API) bezeichnet. Die weiteren
Komponenten, nämlich
die Einheit 21 zur Bus-Verwaltung
sowie die Implementierung der Transaktionsschicht 22 sind aus
dem IEEE1394-Standard bekannt, so daß im Folgenden auf diese Komponenten
nicht näher
eingegangen wird.
-
Mit
der Bezugszahl 23 ist noch ein IEEE1394-Hardware-Gerätetreiber
bezeichnet. Diese Komponente überträgt die genormten
Botschaften/Befehle in das von dem IEEE1394-Link-Layer IC 13 gewünschte Format.
-
Innerhalb
der IEEE1394-Software-Stapel-Anwendungsprogramm-Schnittstelle 20 ist noch eine
Komponente 24 besonders hervorgehoben. Diese Bezugszahl 24 bezeichnet
die erfindungsgemäßen System-Ressourcen-Verwaltungsmittel,
auf die im Nachfolgenden noch genauer eingegangen wird. Oberhalb
der Software-Stapel 18 und 19 sind Anwendungsprogramme 25 bis 27 gezeigt.
Das Anwendungsprogramm 25 betrifft alle Funktionen des
Empfangsteils der Set-Top-Box, auch als Tuner-Funktionalität bezeichnet.
Die Bezugszahl 26 bezeichnet ein Anwendungsprogramm, mit
dem die Videorecorder-Funktionalität realisiert wird. Die Bezugszahl 27 schließlich bezeichnet
ein Anwendungsprogramm, mit dem die Internet-Anbindung ermöglicht wird.
Im besonderen kann dies ein Internet-Browser sein.
-
Anwendungsprogramme
werden in einer Laufzeitumgebung ausgeführt. Unter einer Laufzeitumgebung
(im englischen Sprachgebrauch „Run Time
Environment") versteht
man diejenigen Bausteine von Computer-Programmen, die ganz speziell
für eine
Wiederverwendung erstellt wurden und die oft zu einem Betriebssystem
oder einer Programmiersprache gehören. Eine solche Laufzeitumgebung
ist meist sehr umfangreich und umfaßt möglichst viele Grundfunktionen.
Diese Funktionen sind meist sehr allgemein gehalten und sollen zur
Lösung
unterschiedlichster (Hilfs-)Aufgaben einsetzbar sein. Solche können sein:
Lesen und Schreiben von Dateien, Daten über Netzwerke transportieren,
Ein- und Ausgabegeräte
steuern, Daten verwalten, sortieren oder suchen und vieles mehr.
Wie beschrieben ist im betrachteten Fall kein Betriebssystem in
die Laufzeitumgebung eingebettet.
-
Die
Einzelheiten des IP-Software-Stapels 19 sind aus dem Stand
der Technik bekannt und werden deshalb hier nicht genauer erläutert. Für die Anbindung
an das Internet können
im Prinzip beide Schnittstellen IEEE1394 und Ethernet Verwendung
finden. Im Nachfolgenden wird davon ausgegangen, daß für die Übertragung
von IP-Paketen die Ethernet-Schnittstelle 15 eingesetzt
wird.
-
Die
von den Software-Stapeln 18 und 19 belegbaren
System-Ressourcen
entsprechen den Interrupt-Kanälen
des Mikro-Controllers 10,
den DMA-Kanälen 12 sowie
dem Speicher 11. Erfindungsgemäß ist vorgesehen, daß der Software-Stapel 18 Verwaltungsmittel 24 zur
System-Ressourcen-Belegung aufweist. Deren Funktionsweise wird im
Nachfolgenden näher
erläutert.
-
In
der 2 sind zwei Initialisierungsfunktionen aufgelistet.
Diese Funktionen können
von den gezeigten Anwendungsprogrammen 25 und 26 aufgerufen
werden. Im oberen Teil der 2 ist ein
möglicher
Funktionsaufruf seitens der Tuner-Anwendung 25 gezeigt.
Nach dem Identifizierungsteil INIT (Tuner) folgen die einzelnen
Parameter für
die System-Ressourcen-Belegung wie von der Anwendung 25 gewünscht. Im
gezeigten Beispiel soll 1 Megabyte Speicherkapazität für den Empfangspuffer
der IEEE1394-Schnittstelle im Systemspeicher 11 reserviert
werden. Ebenfalls sollen 2 Megabyte Speicherkapazität für den Sendepuffer
im dem Systemspeicher 11 reserviert werden. Die weiteren
Ressourcenbelegungen betreffen einen Interrupt-Eingang mit der Nummer 6 sowie einen
DMA-Kanal mit der Nummer 0. Sind bisher noch keine System-Ressourcen-Belegungen von dem
IEEE1394-Software-Stapel 18 erfolgt, so wird der Software-Stapel
diese Ressourcen-Belegung im System durchführen. Da das System wie erwähnt ohne
Betriebssystem auskommt, wird die Ressourcen-Belegung in entsprechenden Systemtabellen
abgelegt. Zusätzlich
wird aber die Ressourcen-Belegung erfindungsgemäß eben auch in dem Software-Stapel 18 eingetragen.
In der 2 ist an zweiter Stelle auch ein Beispiel eines
Aufrufs der Initialisierungsfunktion von Seiten des Anwendungsprogramms
für die
Funktionalität
des digitalen Videorecorders. Im gezeigten Fall stimmen die Parameter
mit den Parametern der darüber
stehenden Initialisierungsfunktion überein. Es könnten aber
auch andere Parameterwerte Verwendung finden.
-
Bei
Beendigung der Nutzung des Software-Stapels seitens eines Anwendungsprogramms werden
besondere Funktionsaufrufe in dem Software-Stapel 18 gemacht.
Diese sind in der 2 im unteren Teil dargestellt.
Sie betreffen die Terminate-Funktion
für die
Tuner-Anwendung 25 und die Terminate-Funktion für die Videorecorder-Anwendung 26.
-
Bei
Aufruf der Initialisierungsfunktion wird seitens des Software-Stapels 18 ein
Programm abgearbeitet, dessen Struktur in der 3 gezeigt
ist. Den Aufruf des Programms bewirkt der Aufruf der Initialisierungsfunktion
seitens des entsprechenden Anwendungsprogramms. Der Start des Programms ist
mit der Bezugszahl 30 bezeichnet. Bezugszahl 31 bezeichnet
einen Programmschritt, in dem eine Registrierungstabelle für System-Ressourcen
gelesen wird. Danach erfolgt in Abfrage 32 die Abfrage,
ob die mit der Initialisierungsfunktion angeforderten System-Ressourcen
im Umfang der bereits registrierten System-Ressourcen für den Software-Stapel
liegen. Ist das der Fall, so erfolgt im nachfolgenden Programmschritt 33 die
Eintragung der angeforderten System-Ressourcen für das Anwendungsprogramm in
der Registrierungstabelle. Anschließend wird die erfolgte Registrierung
im Programmschritt 34 dem Anwendungsprogramm bestätigt. Wenn
die zur Eintragung angeforderten System-Ressourcen nicht mehr im Rahmen der
bereits eingetragenen System-Ressourcen für den Software-Stapel 18 liegen, dann
erfolgt im Programmschritt 36 eine ablehnende Rückmeldung
an das Anwendungsprogramm, woraus dieses erkennen kann, daß keine
Belegung der gewünschten
System-Ressourcen erfolgte. Das Programm endet in dem Programmschritt 35.
-
Die 4 zeigt
jetzt ein Programm, welches abgearbeitet wird, wenn der Funktionsaufruf
zur Beendigung der System-Ressourcen-Belegung
von Seiten eines Anwendungsprogramms 25 oder 26 zu dem
Software-Stapel 18 erfolgt. Die Bezugszahl 40 bezeichnet
wieder den Programmstart. In Programmschritt 41 werden
die angeforderten Ressourcen aus der Registrierungstabelle entfernt.
Dann wird in Abfrage 42 überprüft, ob die Registrierungstabelle
damit vollständig
geleert ist. Wenn das der Fall ist, werden die angeforderten System-Ressourcen
dem System wieder freigegeben. Somit werden die System-Ressourcen-Eintrage
in den System-Ressourcen-Tabellen
neu gesetzt. War die Registrierungstabelle noch nicht vollständig geleert,
dann bleiben die für
das Stapelprogramm 18 belegten System-Ressourcen belegt. Das Programm endet
im Programmschritt 44.
-
Die
vorgestellten Verwaltungsmittel in dem Software-Stapel 18 können in
gleicher Weise auch für
den Software-Stapel 19 in der erfindungsgemäßen Vorrichtung
vorgesehen sein.
-
Für kostenoptimierte
Geräte,
die deshalb mit geringen System-Ressourcen ausgestattet sind, kann
mehr Funktionalität
implementiert werden, die zwar nicht gleichzeitig nutzbar ist, aber
die Anwendungsvielfalt erhöht.
-
Wie
gezeigt, kann zum Beispiel das Gerät für IP-Ethernet-Netzwerke und IEEE1394-Netzwerke entwickelt
werden, das aber jeweils nur an einem der Netzwerke betrieben wird,
so daß System-Ressourcen
nur für
eine der Betriebsarten vorhanden sein müssen (Obermenge). Je nach Anwendungsfall
wird der entsprechende Software-Stapel gestartet und der jeweils
andere deaktiviert.