-
Hintergrund
der Erfindung Gebiet der Erfindung
-
Diese
Erfindung bezieht sich allgemein auf Netzwerksysteme und insbesondere
auf ein Verfahren und eine Vorrichtung zum Aufrüsten oder zur Aktualisierung
von Software-Teilsystemen, die auf einem Netzwerksystem gespeichert
sind.
-
Beschreibung
des verwandten Standes der Technik
-
Eine
private Nebenstellenanlage (PBX) ist eine Telefonvermittlung, die
dazu verwendet wird, einen Telefondienst für Anrufe bereitzustellen, die
in einer privaten Gruppe oder Firma durchgeführt werden. Typischerweise
verwendet die PBX privat gemietete Leitungen oder eine interne drahtgebundene oder
drahtlose Infrastruktur zur Übertragung
von Anrufen zwischen einer zentralen Vermittlungseinrichtung und
den verschiedenen Benutzern. Die PBX spart Nutzungsgebühren für Anrufe,
die vollständig innerhalb
der Firma durchgeführt
werden, indem die Verwendung von öffentlichen Telefonnetzwerken
vermieden wird. Die Verwendung einer PBX bietet weiterhin eine Vielzahl
von Merkmalen und Diensten, die für eine Organisation erhebliche
Geschäftsvorteile bieten
können.
-
Die
Merkmale, die von PBX-Systemen geboten werden, sind erheblich angewachsen,
seitdem diese Telefonvermittlungen stärker mit Computern integriert
wurden. Um ankommende Anrufe abzuwickeln, setzt eine automatische
Anrufverteilung (ACD) einen ankommenden Anruf auf den oder die richtigen Teilnehmer
einer Organisation um. Die ACD verwendet komplizierte Algorithmen
auf der Grundlage von Nutzung, Benutzeraktivität, Geschäftsregeln und anderen Faktoren,
um den ankommenden Anruf in richtiger Weise zu lenken. Auf der Anruferleitungs-Identifikation
(CLID) beruhende Dienste ermöglichen
es einer Telefonvermittlung, die Telefonnummer eines eingehenden
Anrufes zu identifizieren, entsprechende Information in einer Datenbank
nachzuschlagen, und den Anruf entsprechend zu lenken. Beispielsweise kann
die Ortskennziffer eines ankommenden Anrufes dazu verwendet werden,
eine eingehende Kaufanforderung an den richtigen Verkaufsvertreter
für dieses Gebiet
oder den Bereich zu lenken. PBX-Systeme entwickeln weiterhin Sprachverarbeitungs-
und Spracherkennungssysteme, um einen Menschen als Agenten zu ersetzen,
der einen Zugriff auf Information über ein Computer-Endgerät für einen
bestimmten Kunden ausführt.
-
Viele
Firmen haben große
Anrufzentralen entwickelt, die diese PBX-Systeme nutzen, um Kundendienst
und Kundeninformationen zu liefern. In einem starken Wettbewerb
ausgesetzten Märkten
sind viele Firmen in der Lage, ihre Produkte und Dienste dadurch
hervorzuheben, dass sie hochentwickelte PBX-Systeme verwenden. In
vielen Fällen
müssen diese über 24 Stunden
am Tag und 7 Tage in der Woche arbeiten.
-
Ein
konventionelles PBX-System, wie z. B. das Merdian Evolution-System
von der Firma Nortel, Inc., schließt einen zentralen Anrufprozessor-
(CP-) Baugruppenträger,
eine Knotensteuerungs- (NC-) Einheit, eine Zugangskontroll- (AC-)
Einheit und vielfältige
periphere Ausrüstungs-
(PE-) Geräte
ein, die mit Handapparaten, Telefax-Modulen oder Sprachprozessor-Modulen
gekoppelt sind. Der CP-Baugruppenträger ergibt zentralisierte Vermittlungskapazitäten zwischen
Fernleitungen von Benutzern, die mit dem System über mehrfache NC-Geräte verbunden
sind. Die NC-Einheiten wirken als große Vermittlungseinrichtungen
beim Lenken von Anrufen und bei der Kommunikation mit den AC-Einheiten.
Der CP steuert Software-Aufrüstungen
oder -Aktualisierungen durch Herunterladen von ladbaren Softwareprogrammen
auf bestimmte Ziel-Baueinheiten, wie z. B. die NC-Einheit, die AC-Einheiten
und manchmal selbst zu den PE-Geräten. Es wird jedoch zunehmend
schwierig, diese verschiedenen Steuereinheiten ohne die Unterbrechung
des Dienstes oder die Gefahr einer umfangreichen Ausfallzeit aufzurüsten.
-
Bei
konventionellen Systemen beinhalten Aufrüstungen oder Aktualisierungen
das Herunterladen der ladbaren Software auf spezifische Ziel-Baueinheiten
und das Umprogrammieren der Ziel-Baueinheit mit einer neuen Funktionalität, die von
der neuen ladbaren Software bereitgestellt wird. Die NC- und PE-Geräte sind
zwei Arten von Geräten,
auf die als Ziel-Baueinheiten herangezogen werden, und das Herunterladen
eines ladbaren Software-Moduls wird als Aufrüstung einer Baueinheit betrachtet. Übliche Systeme
aktualisieren Baueinheiten unter Verwendung einer „kalten
Herunterlade"-Technik,
die die Baueinheit während
des Aufrüst-
oder Aktualisierungsprozesses in einem Abschaltzustand bleiben lässt. Das
kalte Herunterladen kann eine NC in einen nicht betriebsfähigen Zustand
bringen und weiterhin dazu führen,
dass Anrufe, die gerade ablaufen, abgeworfen werden. Ein neues Lademodul
kann das System weiterhin in einen unbrauchbaren Zustand bringen,
wenn der heruntergeladene Teil der Software mit den Datenstrukturen,
den Kommunikationsprotokollen oder irgendwelchen anderen Teilen
der Vermittlung nicht kompatibel ist. Wenn Baueinheiten auf einer
PBX unter Verwendung eines „heißen Herunterladens" aufgerüstet oder
aktualisiert würden,
so könnte
das PBX-System ohne wesentliche Unterbrechung des Dienstes für vorhandene
oder neue Anrufe aufgerüstet
oder aktualisiert werden.
-
Eine
fehlerhaft installierte Aktualisierung kann auf einer konventionellen
PBX nur sehr schwierig zu deinstallieren sein. Viele Gesichtspunkte
der Installation auf einer konventionellen PBX können nicht ohne erheblichen
menschlichen Eingriff rückgängig gemacht
werden. Wenn Software fehlerhaft in einen Flash-Speicher gebrannt
wird, kann das Flash-basierte Hardwaregerät nicht mehr betriebsfähig sein
und einen Ersatz erfordern. Alternativ kann es erforderlich sein,
dass Software von Hand und nicht automatisch durch das System aktualisiert
werden muss. Bei jeder Alternative bleibt das PBX-System für eine längere Zeitperiode
abgeschaltet wodurch Dienste unterbrochen und die Durchführung von
Anrufen verhindert werden kann.
-
Im
Hinblick auf die vorstehende Diskussion ist es wünschenswert, ein verbessertes
System zur Lieferung von Software-Aufrüstungen oder -Aktualisierungen
für eine
private Nebenstellenanlage (PBX) in einem Telefonvermittlungssystem
zu entwickeln.
-
Das
US-Patent 5 754 785 beschreibt ein Kommunikationsnetzwerk, bei dem
bestimmte Knoten Speicherkarten haben, die die derzeitigen Versionen
von Software speichern, die auf jeder eine Anzahl von anderen Karten
abläuft,
die in Schnittstellenverbindung mit der gleichen Rückwandebene
stehen. Eine der Karten speichert eine ankommende aktualisierte
Version der Software. Der Empfang der Aktualisierung erfolgt während eines
Zusatzdatenteils des Signalrahmens über eine Zeitperiode. Auf Befehl
von der Netzwerksteuerung wird die auf einer Karte gespeicherte
aktualisierte Version an alle die anderen Karten geliefert, die
mit dieser Rückwandebene
verbunden sind.
-
Die
EP 0 701 106 beschreibt
ein Fahrzeug-Navigationssystem, das ein Datenbank-Medium (beispielsweise
eine austauschbare Festplatten-Karte) einschließt, die eine aktualisierte
Version der auf dem Navigationssystem ablaufenden Software trägt. Die
derzeitige Version wird auf einem in das System eingebauten Hauptspeicher
gespeichert. Wenn das System hochläuft, so überprüft es das Datenbank-Medium,
um festzustellen, ob dieses eine neuere Version der Software trägt. Wenn
dies der Fall ist, so aktualisiert das System automatisch oder auf
einen Benutzerbefehl nach entsprechender Anfrage bei dem Benutzer
die alte Version.
-
Zusammenfassung
der Erfindung
-
Gemäß der vorliegenden
Erfindung, wie sie hier verwirklicht und allgemein beschrieben wird,
wird ein Verfahren und eine Vorrichtung zur Aktualisierung oder
Aufrüstung
und zum Laden eines Software-Teilsystems geschaffen, das von einem
Netzwerksystem-Gerät
verwendet wird. Das Verfahren kann so angepasst werden, dass es
mit mehrfachen Software-Teilsystemen arbeitet, die in entsprechenden
Bänken
einer mehrfache Bänke
aufweisende Speichereinheit gespeichert sind. Die Vorrichtung und
das Verfahren können
weiterhin mit einer Speichereinheit arbeiten, die lediglich zwei
verschiedene Speicherbänke
hat.
-
Gemäß einem
Gesichtspunkt der Erfindung wird ein Verfahren zur Aktualisierung
eines von einem Netzwerksystem verwendelen Software-Teilsystems
während
der Bereitstellung von Diensten durch das Software-Teilsystem geschaffen,
das die folgenden Schritte umfasst: Verarbeiten von Befehlen von einem
primären
Software-Teilsystem, das an einer ersten Basisadresse geladen ist,
die einer mit dem Netzwerksystem gekoppelten primären Speichereinheit
zugeordnet ist, und Herunterladen eines sekundären Software-Teilsystems an
einer zweiten Basisadresse, die einer mit dem Netzverksystem gekoppelten
sekundären Speichereinheit
zugeordnet ist. Das Verfahren ist dadurch gekennzeichnet, dass das
sekundäre
Software-Teilsystem durch selektives Vertauschen der ersten der
primären
Speichereinheit zugeordneten Adresse mit der zweiten Basisadresse aktiviert
wird, die der sekundären
Speichereinheit zugeordnet ist, wodurch das Software-Teilsystem
aktualisiert wird, während
Dienste von dem Software-Teilsystem
bereitgestellt werden.
-
Gemäß einem
zweiten Gesichtspunkt der Erfindung wird eine Vorrichtung geschaffen,
die dazu bestimmt ist, ein Software-Teilsystem zu aktualisieren
oder aufzurüsten,
das von einem mit einem Server-Computer über ein Netzwerk gekoppelten
Netzwerksystem verwendet wird, während
Dienste von dem Software-Teilsystem
bereitgestellt werden, mit einem Verarbeitungs-Modul, das zur Verarbeitung von
Befehlen von einem primären
Software-Teilsystem konfiguriert ist, das an einer ersten Basisadresse geladen
ist, die einer primären
mit dem Netzwerksystem gekoppelten Speichereinheit zugeordnet ist,
und mit einem Herunterlade-Modul,
das zum Herunterladen eines sekundären Software-Teilsystems auf
eine zweiten Basisadresse konfiguriert ist, die einer sekundären, mit
dem Netzwerksystem gekoppelten Speichereinheit zugeordnet ist. Die
Vorrichtung ist durch ein Vertauschungs-Modul gekennzeichnet, das so
konfiguriert ist, dass es selektiv die erste der primären Speichereinheit
zugeordnete Basisadresse mit der zweiten Basisadresse vertauscht,
die der sekundären
Speichereinheit zugeordnet ist, indem das sekundäre Software-Teilsystem aktiviert
wird, wodurch das Software-Teilsystem
aktualisiert wird, während
Dienste von dem Software-Teilsystem bereitgestellt werden.
-
In
einem dritten Gesichtspunkt ergibt die Erfindung weiterhin ein Computerprogramm-Produkt, das
in der Lage ist, einen Datenprozessor so zu konfigurieren, dass
er ein Software-Teilsystem aufrüstet oder
aktualisiert, das von einem Netzwerksystem verwendet wird, das mit
einem Server-Computer über
ein Netzwerk gekoppelt ist, während
Dienste von dem Software-Teilsystem bereitgestellt werden, wobei
das Computerprogramm-Produkt Software-Code umfasst, der bewirkt,
dass der Datenprozessor die Schritte des vorstehend angegebenen
Verfahrens ausführt.
-
Kurze Beschreibung
der Zeichnungen
-
Die
beigefügten
Zeichnungen, die eingefügt sind
und einen Teil dieser Beschreibung bilden, zeigen eine Ausführungsform
der Erfindung und dienen zusammen mit der Beschreibung zur Erläuterung
der Vorteile und Prinzipien der Erfindung.
-
In
den Zeichnungen zeigen:
-
1 ein
Netzwerk, das zur Verwendung mit den Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet ist;
-
2 eine
hierarchische Telekommunikations-Vermittlung, die zur Verwendung
mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet ist;
-
3 ein
Blockschaltbild eines Anrufprozessors (CP) und einer Knotensteuerung
(NC), die zur Verwendung mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet sind;
-
4 ein
Blockschaltbild einer Doppelbank-Speichereinheit, die zur Verwendung
mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet ist;
-
5 ein
Ablaufdiagramm, das die Schritte zur Aktualisierung eines Software-Teilsystems
zur Verwendung mit Verfahren und Systemen gemäß der vorliegenden Erfindung
anzeigt;
-
6 ein
Ablaufdiagramm, das die Schritte zum Laden eines Software-Teilsystems zeigt,
das zur Verwendung mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet ist;
-
7 ein
Ablaufdiagramm, das Schritte gemäß der vorliegenden
Erfindung zeigt, um einzugeben, welches Software-Teilsystem aus
einer Doppelbank-Speichereinheit ausgewählt werden sollte; und
-
8 ein
Ablaufdiagramm, das die Schritte zur Ausführung einer Bank-Umschaltung gemäß Verfahren
und Systemen gemäß der vorliegenden
Erfindung zeigt.
-
Ausführliche
Beschreibung der Erfindung Einführung
-
Es
wird nunmehr ausführlich
auf eine gerätemäßige Ausgestaltung
der vorliegenden Erfindung Bezug genommen, wie sie in den beigefügten Zeichnungen
gezeigt ist. So weit wie möglich
werden die gleichen Bezugsziffern in allen Zeichnungen und der folgenden
Beschreibung verwendet, die sich auf die gleichen oder ähnliche
Teile beziehen.
-
Systeme
gemäß der vorliegenden
Erfindung befassen sich mit Beschränkungen des Standes der Technik
und ergeben ein neuartiges System und eine neuartige Vorrichtung
zum Aufrüsten
oder Aktualisieren eines Software-Teilsystems auf einem Netzwerksystem-
(NS-) Gerät.
NS-Geräte
finden sich in fast jedem Prozessor-basierten System, bei dem die
Verarbeitung zwischen einem Master- und Slave- oder einem Klienten- und
Server-Paar verteilt ist. Als Beispiel zeigt 1 ein Beispiel
eines Netzwerkes unter Verwendung von NS-Geräten, wobei die Klienten und
die NS-Server zur Verwendung mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet sind. Das Computernetzwerk 100 in 1 schließt ein lokales
Netzwerk 101, ein Weitbereichsnetzwerk (WAN) 109 und
ein weiteres lokales Netzwerk (LAN) 120 ein. Das lokale
Netzwerk 101 schließt
NS-Geräte 102, 104 und 106 und
NS-Server 108 und 110 ein. Das lokale Netzwerk 120 schließt NS-Server 112, 114, 116 und 118 ein.
Dieses Beispiel einer Konfiguration von NS-Geräten und NS-Servern deckt eine
Klasse von Klienten-Server-Systemen ab, die zur Verwendung mit einer
oder mehreren Ausführungsformen
der vorliegenden Erfindung geeignet sind. Entsprechend sind diese
Ausführungsformen der
vorliegenden Erfindung nicht nur auf die nachfolgend beschriebenen
Telefonvermittlungssysteme beschränkt. Statt dessen können die
hier beschriebenen Verfahren und Systeme auf einen weiten Bereich von
Klienten-Server-Systemen
angewandt werden, wie sie beispielsweise in 1 gezeigt
sind.
-
Bei
Anwendung auf ein Telefonvermittlungssystem dient eine Steuerprozessor- (CP-) Einheit als eine
Master-Einheit oder als NS-Server, während eine Knotensteuerungs-
(NC-) Einheit und eine Zugangskontroll- (AC-) Einheit als Slave-Einheiten oder NS-Geräte wirken,
die Befehle von der CP-Einheit annehmen. Jede Slave-Einheit schließt eine
neuartige Mehrfachbank-Speichereinheit ein, die mit einem am Anwendungsort
programmierbaren Festwertspeicher (FPROM) realisiert ist, der üblicherweise
als Flash-Speicher bezeichnet wird.
-
Bei
Verfahren und Systemen gemäß der vorliegenden
Erfindung werden zumindest zwei unterschiedliche Software-Teilsysteme
in einen Mehrfachbank-Flash-Speicher geladen. Als Minimum schließen die
Software-Teilsysteme ein primäres
Software-Teilsystem
und ein sekundäres
Software-Teilsystem ein. Zusätzliche
Software-Teilsysteme
und Speicherbänke
können
durch Vergrößerung der
Anzahl der Software-Teilsysteme und der entsprechenden Anzahl von
Bänken
in einem Flash-Speichergerät verwendet
werden.
-
Jedes
Software-Teilsystem ist in der Lage, ähnliche Dienste für die NC-Einheit
oder die CP-Einheit auszuführen,
die von Anwendungen höherer Ebene
bis zu Betriebssystem-Funktionen niedriger Ebene reichen. Auf einem
Speichergerät,
das lediglich zwei Speicherbänke
hat, ist ein primäres
Software-Teilsystem, das in eine primäre Speichereinheit geladen
wurde, aktiv, um Befehle auszuführen,
während
das sekundäre
Software-Teilsystem, das in eine sekundäre Speichereinheit des Dual-Bank-Flash-Speichers
geladen ist, im Leerlauf arbeitet. Typischerweise enthält das sekundäre Software-Teilsystem
eine ältere
Version des primären Software-Teilsystems, bevor
es aktualisiert wird. Die logische Trennung zwischen den primären und
sekundären
Speichereinheiten in dem Flash-Speicher ermöglicht es, dass aktualisierte
Software-Systeme in das Flash-Speichergerät von der Master-Einheit heruntergeladen
werden, während
die Slave-Einheit weiter Befehle ausführt.
-
Eine
geschickte Technik wird dazu verwendet, das aktive Software-Teilsystem
in der primären Bank
mit dem aktualisierten und im Leerlauf befindlichen Software-Teilsystem in der
sekundären
Bank zu vertauschen. Diese Technik wählt sorgfältig ein Software-Teilsystem
aus, das aktualisiert ist und nicht fehlerbehaftet ist. Entsprechend
wählt,
wenn das aktualisierte Software-System fehlerbehaftet ist, die Technik
dann die „Hintertür"-Option, und es wird
statt dessen das ursprüngliche
aktive Software-Teilsystem ausgeführt. Die Hintertür wird dazu
verwendet, auf die Systemkonfiguration vor der Durchführung von Änderungen
oder Modifikationen zurückzukehren.
-
Der
Verarbeitungs-Zusatzaufwand, der mit der Umlagerung des aktualisierten
Software-Teilsystems in den Flash-Speicheradressenraum verbunden
ist, wird dadurch umgangen, dass Basis-Registerwerte jeder Bank
in dem Flash-Speicher vertauscht werden. Dies beseitigt die Buchführung, die mit üblichen
Systemen verbunden ist, die die Adressierung auf ein aktualisiertes
Modul, das auf einen anderen Bereich in dem Flash-Speicher umgelagert wurde,
umsetzen müssen.
Statt dessen installieren Systeme und Verfahren gemäß der vorliegenden
Erfindung die aktualisierten Software-Teilsysteme in genauer Weise.
-
Die
Umlagerung des aktualisierten Software-Teilsystems erleichtert ein „heißes Herunterladen" des Software-Teilsystems
anstelle des „kalten
Herunterladens",
das sich bei üblichen
Systemen findet. Das heißt,
dass Software-Aktualisierungen auf Systeme angewandt werden können, während dies
arbeiten (ein „heißes Herunterladen"), ohne dass es erforderlich
ist, dass das System abgeschaltet wird (ein „kaltes Herunterladen"), damit die Aktualisierung ausgeführt werden
kann. Bei einer Telefonvermittlung ermöglicht dies, dass vorhandene
Gespräche fortgesetzt
werden, ohne dass sie abgebrochen werden. Weiterhin kann höchstens
ein kurzer Zeitbereich auftreten, während dessen neue Anrufe an
der Telefonvermittlung nicht durchgeführt werden können. Dies
ist extrem vorteilhaft bei Telefonvermittlungssystemen und Computergeräten mit
hoher Verfügbarkeit,
die ein minimales Ausmaß an
Ausfallzeit aufweisen müssen,
selbst wenn die verschiedenen Software-Teilsysteme aktualisiert
werden.
-
Telekommunikations-Vermittlungsnetzwerk
-
2 zeigt
eine hierarchische Telekommunikations-Vermittlung, die zur Verwendung
mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet ist. Entsprechend schließt die hierarchische Telekommunikations-Vermittlung 200,
die auch als Vermittlung 200 bekannt ist, einen Anrufprozessor- (CP-) Baugruppenträger 202,
eine Knotensteuerung (NC) 204 und NC 214, und
eine Reihe von Peripherie-Ausrüstungs-
(PE-) Baugruppenträgern 206P, 208B, 210B und 212B ein,
die mit entsprechenden Zugangskontroll- (AC-) Einheiten 206A, 208A, 210A,
und 212A gekoppelt sind. Diese AC-Einheiten 206A, 208A, 210A,
und 212A sind mit einer großen Anzahl von Handapparate-Geräten 216 gekoppelt,
die zum Senden und Manipulieren von Sprache und Dateninformation
verwendet werden.
-
Am
Kopf der Vermittlungshierarchie wird die Systemverwaltung auf eine
Vielzahl von Hardware-Karten und (nicht gezeigten) Softwaresystemen
delegiert, die sich in einem CP-Baugruppenträger 202 befinden.
Hardware und Software in dem CP-Baugruppenträger 202 wirkt
als das Master- oder Haupt-Verarbeitungsgerät in der Vermittlung 200.
In einem typischen Szenarium übertragen
Hardware- und Software-Teilsysteme netzabwärts von dem CP-Baugruppenträger 202,
wie z. B. NC 204 und die AC-Einheit 206A, den
Status über
vorhandene Anrufe und anhängige
Anrufe an eine Hardware in dem CP-Baugruppenträger 202, wobei Objekte
und andere Konstrukte verwendet werden, die in einer objektorientierten
Sprache verfügbar
sind. Entscheidungen werden durch Hardware und Software in dem CP-Baugruppenträger 202 getroffen
und an das anfordernde netzabwärts
gelegene Teilsystem für
deren Ausführung übertragen.
-
Die
NC 204 wirkt im Wesentlichen als ein Konzentrator und Vermittlungsgerät für Anrufe,
die zwischen dem CP-Baugruppenträger 202 und
den Handapparate-Einheiten 216 übertragen
werden. Das zwischen NC 204 und dem CP-Baugruppenträger 202 verwendete
Protokoll ist vorzugsweise TCP/IP oder irgendein anderes in weitem
Umfang verwendetes Netzwerkprotokoll, das über eine Hochgeschwindigkeits-Kommunikations-Verbindungsstrecke übertragen
wird, wie z. B. über
eine asynchrone Übertragungsbetriebsart
(ATM) oder Ethernet. Die NC 204 ist mit dem CP-Baugruppenträger 202 und mehreren
AC's 206A, 208A, 210A,
und 212A gekoppelt. Was wichtiger ist, ist dass die NC 204 einen (nicht
gezeigten) Mehrfachbank-Flash-Speicher einschließt, der zum Empfang von Software-Teilsystem-Aktualisierungen
gemäß den Verfahren
und Systemen der vorliegenden Erfindung geeignet ist. Die Techniken,
die zur Anwendung von Software-Teilsystem-Aktualisierungen
in der NC 204 verwendet werden, können auch zur Aktualisierung
von Software-Teilsystemen in den AC-Einheiten 206A, 208A, 210A,
und 212A angewandt werden.
-
Die
AC-Einheiten 206A, 208A, 210A, und 212A ergeben
einen Zugang an die verschiedenen PE-Baugruppenträger 206B, 208, 210B und 212B. Mitteilungen
und Daten werden an verschiedene Karten auf jedem PE-Baugruppenträger in Abhängigkeit von
den speziellen Funktionen der Karten übertragen. Die Karten auf den
PE-Baugruppenträgern 206B, 208, 210B und 212B schließen Funktionen, wie
z. B. Anruf-Weiterleitung, Konferenzgespräche und Wählton-Dienste ein. Ebenso wie
die NC-Einheiten 204 und 214 schließen auch
die AC-Einheiten 206A, 208A, 210A, und 212A einen
(nicht gezeigten) Doppelbank-Flash-Speicher ein, der zum Empfang von
Software-Teilsystem-Aktualisierungen gemäß den Verfahren und Systemen
der vorliegenden Erfindung geeignet ist.
-
3 ist
ein Blockschaltbild einer Anrufprozessor- (CP-) Einheit und einer
Knotensteuerungs- (NC-) Einheit 204, die zur Verwendung
mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet sind. Die CP-Einheit 202 schließt einen
Anrufprozessor 302, eine Eingangs-/Ausgangs-Einheit 304,
einen Flash-Speicher 306, eine Festplatte 308, auf
der ladbare Dateien 309 gespeichert sind, und eine Kommunikationssteuerung 310 ein.
Der Anrufprozessor 302 wird zur Ausführung einer zentralisierten
systemweiten Logik verwendet, die der Vermittlung 200 zugeordnet
ist. Speziell verwenden Verfahren und Systeme der vorliegenden Erfindung
einen Anrufprozessor 302 zur Verarbeitung von Befehlen, die
mit der Aktualisierung oder Aufrüstung
von Software-Teilsystemen verbunden sind, die in der NC-Einheit 204 und
der AC-Einheit 206A verwendet werden.
-
Ein
Peripheriesystem-Herunterlademodul (PSDL) 314, das in dem
Flash-Speicher 306 enthalten ist, steuert das Löschen und
Brennen von Flash-Speicher auf den Ziel-Baueinheiten, wie z. B. der
NC-Einheit 204. Ein Betriebssystem (OS) 312 ist ebenfalls
in dem Flash-Speicher 306 enthalten und wird zur Verwaltung örtlicher
Ressourcen auf der CP-Einheit 202 verwendet. Im Allgemeinen
steuert und koordiniert das PSDL-Modul 314 Software-Teilsystem-Aktualisierungen,
wie sie in Geräten,
wie z. B. der MC-Einheit 204 und der AC-Einheit 206A verwendet
werden. Einzelheiten der in dem PSDL-Modul 314 verwendeten
Verfahren werden weiter unten ausführlicher erläutert.
-
Die
Festplatte 308 auf der CP-Einheit 202 schließt ladbare
Dateien 309 ein, die Software-Teilsystem-Aktualisierungen
enthalten, die in der Vermittlung 200 verwendet werden.
Die speziellen Inhalte jeder ladbaren Datei 309 ändern sich
und hängen von
den Softwarekomponenten ab, die in einer bestimmten Hardware-Komponente in der
Vermittlung 200 verwendet werden. Beispielsweise kann eine Gruppe
von ladbaren Dateien 309 Software-Teilsystem-Aktualisierungen
für Merkmale
auf der NC-Einheit 204 einschließen, während eine andere Art von ladbaren
Dateien 309 Software-Teilsystem-Aktualisierungen einschließt, die
speziell für
Merkmale auf der AC-Einheit 206A sind. Merkmale auf der
AC-Einheit 206A können
die Unterstützung
von Merkmalen, wie z. B. Konferenz-Dienste und Wählton-Dienste, interne Takte zur Synchronisation
und die Anrufweiterleitung einschließen. Im Allgemeinen werden
Systeme und Verfahren gemäß der vorliegenden
Erfindung dazu verwendet, eine Vielzahl von Software-Teilsystemen
zu aktualisieren, und sie sind nicht nur auf die Aktualisierung
von Software-Teilsystemen beschränkt,
die sich auf der NC-Einheit 204 oder der AC-Einheit 206A befinden.
-
Die
Kommunikationssteuerung 310 erleichtert die Kommunikation
von Daten- und Steuersignalen zwischen der CP-Einheit 202,
der NC-Einheit 204 und der AC-Einheit 206A. Typischerweise
ist die Kommunikationssteuerung 310 ein Gerät auf der Grundlage
der asynchronen Übertragungsbetriebsart (ATM),
das in der Lage ist, IP- oder TCP/IP-Verkehr zu übertragen. Alternative Steuerungsgeräte können auch
unter Verwendung der Ethernet-Technologie in Kombination mit TCP/IP-
oder UDP/IP-Protokollen realisiert werden. Die Verwendung eines üblichen Kommunikationsprotokolls,
wie z. B. TCP/IP, verringert Entwicklungskosten und ergibt eine
gemeinsame Vernetzungsplattform zur Integration von unterschiedlichen
Geräten
in die Vermittlung 200.
-
Die
NC-Einheit 204 schließt
einen NC-Prozessor 307, eine Zugangskontroll- (AC-) Schnittstelle 309,
ein Flash-Speichergerät 311,
ein DRAM-Speichergerät 313 und
eine Kommunikationssteuerung 315 ein, die mit ähnlichen
Teilsystemen auf der CP-Einheit 202 kompatibel
ist. Der NC-Prozessor 307 verarbeitet ankommende und abgehende
Anrufe und wirkt als ein Vermittlungsgerät für Anrufe, die an unterschiedlichen
Ebenen in der Vermittlung 200 ausgeführt werden. Die AC-Schnittstelle 305 ergibt eine
Kommunikations-Verbindungsstrecke zwischen der NC-Einheit 204 und
peripheren Geräten
netzabwärts
von der NC-Einheit 204. Wie dies weiter oben erwähnt wurde,
verwendet die Kommunikationssteuerung 315 ein übliches
Kommunikationsprotokoll, wie z. B. TCP/IP, um Daten- und Steuerinformationen zwischen
der CP-Einheit 202 und der NC-Einheit 204 zu übertragen,
während
die Vermittlung 200 eine ladbare Datei 309 herunterlädt oder
Anrufe verarbeitet.
-
Der
Flash-Speicher 311 ist vorzugsweise in Form von mehrfachen
Bänken
von Flash-Speicher gerätemäßig ausgebildet.
Die Aufteilung des Flash-Speichers 311 in mehrfache Bänke ermöglicht es,
in einer Bank befindlichen Code auszuführen, während Information in eine zweite
Bank in den Flash-Speicher 311 geschrieben oder „gebrannt" wird. Dies ist wichtig,
wenn Software-Teilsystem-Aktualisierungen im Betrieb heruntergeladen
werden sollen, während
die Vermittlung 200 weiter Anruf verarbeitet und ausführt. In
alternativen Ausführungsformen
kann der Flash-Speicher 311 durch
andere Arten von computerlesbaren Medien ersetzt werden, wie z.
B. sekundäre
Speichergeräte,
wie Festplatten, Floppy-Disks, CD-Rom oder andere Formen von RAM
oder ROM. Datenübertragungsmedien,
wie z. B. eine Trägerschwingung
auf dem Internet, stellen eine Art von computerlesbaren Medien dar,
die genauso die Funktion erfüllen
können,
die von dem Flash-Speicher 311 bereitgestellt wird. Im
Gegensatz zum Flash-Speicher 311 wird der DRAM-Speicher 313 zur
vorübergehenden
Speicherung von Daten- und Steuerinformationen verwendet, während die NC-Einheit 204 im
Betrieb ist und Anrufe auf der Vermittlung 200 verarbeitet.
-
4 ist
ein Blockschaltbild einer Mehrfachbank-Speichereinheit, die zur
Verwendung mit Verfahren und Systemen gemäß der vorliegenden Erfindung
geeignet ist. Jede NC-Einheit 204, AC-Einheit 206A und
jedes andere NS-Gerät,
das gemäß der vorliegenden
Erfindung ausgelegt ist, schließt
ein Mehrfachbank-Speichergerät ein. Im
Einzelnen schließt
der Mehrfachbank-Flash-Speicher 311 zumindest eine Flash-Bank
A 402 und eine Flash-Bank B 404 ein, die jeweils
mit einem herunterladbaren Abbild 414 und einem nicht-herunterladbaren
Abbild 416 geladen werden. Das herunterladbare Abbild 414 enthält die Software-Teilsysteme,
die heruntergeladen und aktualisiert werden können, während die Vermittlung 200 arbeitet.
Das nicht herunterladbare Abbild 416 wird im Werk installiert
und wird vorzugsweise nicht am Kundenstandort oder am Anwendungsort
aktualisiert.
-
Auf
der Flash-Bank A 402 schließt das herunterladbare Abbild 414 ein
Betriebssystem 408 und Anwendungen 406 ein. Das
Betriebssystem 408 schließt weiterhin das Peripheriesystem-Herunterlade-
(PSDL-) Modul ein, das das tatsächliche
Löschen und
Brennen von Ziel-Baueinheiten im Flash-Speicher steuert. In ähnlicher
Weise hat die Flash-Bank B 404 ein herunterladbares Abbild 414,
das das Betriebssystem 412 mit einem (nicht gezeigten)
PSDL-Modul und Anwendungen 410 einschließt. Entsprechende
nicht-herunterladbare Abbilder 416 auf der Flash-Bank A 402 schließen ein
Bootcode-Abbild 409 ein, das eine Ladeauswahl-Logik 411 zur
Auswahl eines gültigen
Software-Teilsystems einschließt.
Die Flash-Bank B 404 schließt weiterhin nicht-herunterladbare
Abbilder 416 ein, die ein Bootcode-Abbild 413 mit
einer Ladeauswahl-Logik 415 einschließen.
-
Die
Ladeauswahl-Logik 411 und 415 wählt ein
gültiges
Software-Teilsystem entsprechend aus der Flash-Bank A 402 oder
der Flash-Bank B 404 aus. Das herunterladbare Abbild 416 wird
zur Ausführung
wesentlicher Operationen verwendet, wie z. B. zur Durchführung von
Dateiübertragungen
unter Verwendung eines Dateiübertragungsprotokolls,
wie fdp oder tftp, und für
das Rundsenden von Netzwerk-Information über eine Netzwerk-Verbindung, die
ein Netzwerk-Protokoll, wie z. B. UDP/IP verwendet.
-
Die
Verwendung von dualen Bänken
ermöglicht
es, dass ein Software-Teilsystem in der aktiven Bank ausgeführt wird,
während
aktualisierte Software-Teilsysteme in die im Leerlauf befindliche
Bank heruntergeladen werden. In 4 entspricht
die Basis-Adresse A 418 der aktiven Bank, während die
Basis-Adresse B 420 der im Leerlauf befindlichen Bank entspricht.
Diese Anordnung unterstützt
das Merkmal eines „heißen Herunterladens", was die Anwendung von
Software-Teilsystem-Aktualisierungen
ermöglicht,
während
die NC-Einheit 204 oder die AC-Einheit 206A in
Betrieb sind und laufen.
-
Auf üblichen
Systemen sind Flash-Abbilder statisch gelinkt und daher nicht in
einen unterschiedlichen Adressenraum verschiebbar. Die vorliegende Erfindung
vermeidet jedoch diese mit einem nicht verschiebbaren oder nicht
umlagerbaren Code verbundenen Probleme mit einer programmierbaren Chip-Auswahl,
die Basis-Adressen
der zwei Flash-Bänke
vertauscht. Dies vermeidet die Notwendigkeit einer Schaffung und
Verwaltung getrennter ladbarer Software-Abbilder für jede Bank
und jeden Adressenraum. Der programmierbare Chip vertauscht Basis-Adressen
und macht die aktualisierte Flash-Bank aktiv.
-
Die
Lade-Eingabelogik 411 in der Flash-Bank A 402 setzt
die Basis-Adresse der zwei Flash-Bänke in Abhängigkeit davon um, welche Flash-Bank
ein gültiges
und aktualisiertes Software-Teilsystem enthält. Nachdem ein Software-Teilsystem
aktualisiert wurde, vertauschen die Flash-Bank A und die Flash-Bank
B im Wesentlichen die Basis-Adressen-Umsetzungswerte und werden
daher aktiv oder inaktiv. Dies vermeidet komplizierte Code-Umlagerungsprobleme,
weil eine einzige ladbare Software-Datei 309 in mehreren
Bänken
des Flash-Speichers 311 verwendet werden kann anstatt dass
unterschiedliche ladbare Software-Dateien 309 kompiliert
und für
den Adressenbereich jeder Bank gelinkt werden müssen.
-
Dieses
neuartige Mehrfach-Bank-Konstruktionsmerkmal unterstützt außerdem eine „Hintertür", die es einer Steuerung,
wie z. B. der NC-Einheit 204, ermöglicht, ein vorhergehendes
Software-Teilsystem zu laden, wenn ein Versuch zur Aktualisierung
des Software-Teilsystems fehlschlägt. Die Hintertür ist eine
Technik, um eine fehlgeschlagene Installation oder eine Aktualisierung
eines Software-Teilsystems auf
einem NS-Gerät
zu verlassen. Entsprechend stellt vor dem Vertauschen der Basis-Adressen
die Ladeauswahl-Logik 411 in der Flash-Bank A 402 sicher,
dass die aktualisierten Software-Teilsysteme, wie z. B. das Betriebssystem 412 und
die Anwendungen 410 richtig in die Flash-Bank B 404 geladen
wurden. Wenn das Herunterladen nicht richtig erfolgte, so aktiviert
die Ladeauswahl-Logik 411 die Bank mit dem nicht aktualisierten
und nicht mit Fehler behafteten Code. In diesem Fall die Flash-Bank
A. Alternativ werden, wenn das Herunterladen richtig erfolgt ist, dann
die Basis-Adressen vertauscht, und die aktive Bank wird die Flash-Bank
B anstelle der Flash-Bank A.
-
Betriebsweise
des Vermittlungsnetzwerkes
-
5 ist
ein Ablaufdiagramm eines Verfahrens zur Aktualisierung eines Software-Teilsystems, das
zur Verwendung mit der vorliegenden Erfindung geeignet ist. Dieses
Verfahren kann zur Aktualisierung eines Software-Teilsystems verwendet
werden, das auf irgendeinem Netzwerksystem gespeichert ist, das
mehrfache Speicherbänke
hat und in der Lage ist, mehrfache Software-Teilsysteme aufzunehmen.
Vorzugsweise werden Dienste von einem Software-Teilsystem bereitgestellt,
das in einer primären Bank
des Speichers ausgeführt
wird, während
das aktualisierte Software-Teilsystem in eine sekundäre Bank
des Speichers auf dem Netzwerksystem heruntergeladen wird. Die Basis-Adressen
werden vertauscht, sobald das aktualisierte Software-Teilsystem heruntergeladen
wurde, und die Programmausführung
beginnt, das aktualisierte Software-Teilsystem zu verwenden.
-
Auf
der Vermittlung 200 betreiben verschiedene Software-Teilsysteme
Netzwerksysteme, wie z. B. die NC-Einheit 204 und die AC-Einheit 206A.
Software-Teilsysteme
auf diesen Netzwerksystemen können
unter Verwendung von Verfahren und Systemen gemäß der vorliegenden Erfindung
aktualisiert werden. Entsprechend sind die Verfahren und Systeme,
die auf die NC-Einheit 204 und die AC-Einheit 206A angewandt
werden, lediglich als Beispiel angegeben.
-
Im
Betrieb verarbeitet die NC-Einheit 204 Befehle von einem
primären
Software-Teilsystem,
das an einer ersten Basis-Adresse geladen ist, die der primären Bank
des Speichers zugeordnet ist, wie z. B. der Flash-Bank A 402 in
dem Flash-Speicher 311. Als
Vorgabe verarbeitet die NC-Einheit 204 Befehle unter Verwendung
des Software-Teilsystems, das sich in den Flash-Speicher 311 an
der Basis-Adresse 418 befindet. Die PDSL in der aktiven
Bank A 402 führt
ein Verfahren gemäß der vorliegenden
Erfindung aus und lädt
ein sekundäres
Software-Teilsystem, das eine aktualisierte Version des primären Software-Teilsystemsist, in
eine sekundäre
Speicher-Bank herunter, wie z. B. die Flash-Bank B 404 an
der Basis-Adresse B 420 (Schritt 502). In der
Praxis leitet der CP-Baugruppenträger 202 den
Herunterlade-Prozess ein, wobei die Inhalte der Ziel-Baueinheit gelöscht und
mit dem aktualisierten Software-Teilsystem auf der Flash-Bank B 404 als
eine Hintergrund-Aufgabe gebrannt werden, während das primäre Software-Teilsystem,
das in der Flash-Bank A 402 in dem Flash-Speicher gespeichert
ist, aktiv Anrufverarbeitungsanwendungen im Vordergrund ausführt.
-
Das
Verfahren stellt fest, ob das aktualisierte Software-Teilsystem
erfolgreich in die im Leerlauf befindliche Flash-Bank B 404 heruntergeladen
wurde, indem Kopffeld-Werte
und Prüfsummen-Werte
geprüft
werden, die dem aktualisierten Software-Teilsystem zugeordnet sind (Schritt 504).
Wenn das Herunterladen nicht erfolgreich ist, wird die Verarbeitung auf
dem primären
Software-Teilsystem fortgesetzt, das in diesem Beispiel in der Flash-Bank
A 402, der aktiven Bank, gespeichert ist. Alternativ aktualisiert nach
einem erfolgreichen Herunterladen das Verfahren einen Versions-Zähler, der
der Flash-Bank B 404 zugeordnet ist, was anzeigt, dass
eine neue Version des Software-Teilsystems geladen wurde (Schritt 506).
Der Versionszähler
wird später
von der Lade-Eingabelogik 411 verwendet, wenn ein erneutes Booten
oder Rücksetzen
erfolgt, um festzustellen, welche Flash-Bank das letzte Software-Teilsystem enthält.
-
Sobald
die Versions-Information aktualisiert ist, schaltet das Verfahren
die aktive Speichereinheit, beispielsweise die Flash-Bank A 402,
auf die im Leerlauf befindliche Speichereinheit, wie z. B. die Flash-Bank
B 404 (Schritt 508) um. Vorzugsweise schaltet
das Verfahren die Bänke
durch Vertauschen der Basis-Adresse
A 418, die der Flash-Bank A 402 zugeordnet ist,
mit der Basis-Adresse B 420 um, die der Flash-Bank B 404 zugeordnet
ist. Dies führt
dazu, dass die NC-Einheit 204 damit
beginnt, Befehle von dem aktualisierten Software-Teilsystem zu verarbeiten,
das an der Basis-Adresse B 420 in der Flash-Bank B 404 (Schritt 510)
geladen wurde. Dies schließt
den Software-Teilsystem-Aktualisierungsprozess ab.
-
6 ist
ein Ablaufdiagramm eines Verfahrens zur Auswahl des richtigen Software-Teilsystems,
das zur Verwendung mit Verfahren und Systemen gemäß der vorliegenden
Erfindung geeignet ist. Diese Schritte werden verwendet, wenn ein
Netzwerksystem, wie z. B. die NC-Einheit 204 mit einem Dual-Bank-Flash-Speicher 311 neu
gebootet oder zurückgesetzt
wird. Das Verfahren bestimmt, welches Software-Teilsystem, das in
dem Dual-Bank-Flash-Speicher 311 gespeichert ist, ausgeführt werden
sollte. Das Verfahren überprüft die Integrität und die
Version jedes Software-Teilsystems, um festzustellen, welches Software-Teilsystem ausgeführt werden
sollte. Speziell wird hierbei vorausgesetzt, dass die NC-Einheit 204 ein
primäres
Software-Teilsystem, das in dem Flash-Speicher 311 an einer
ersten Basis-Adresse, wie z. B. der Basis-Adresse A 418 gespeichert
ist, und ein sekundäres,
in dem Flash-Speicher 311 gespeichertes Software-Teilsystem
hat, das an einer zweiten Basis-Adresse, wie z. B. der Basis-Adresse
B 420 geladen ist. Bei einer bevorzugten Ausführungsform
zeigt jedoch die NC-Einheit 204 nicht explizit an, welches
Software-Teilsystem geladen werden sollte.
-
Die
Ladeauswahl-Logik 411 wählt
aus, welches Software-Teilsystem ausgeführt werden sollte (Schritt 602).
Die Basis-Adressen, die die Ladeauswahl-Logik 411 vertauscht,
hängen
davon ab, welches Software-Teilsystem ausgewählt ist (Schritt 604).
Wenn das ausgewählte
Software-Teilsystem in dem Flash-Speicher 311 an der Basis-Adresse
A 418 geladen ist, so ist kein Basis-Adressen-Umschalten erforderlich.
Wenn sich jedoch das ausgewählte
Software-Teilsystem in dem Flash-Speicher 311 an
der Basis-Adresse B 420 befindet, so ist eine Basis-Adressen-Umschaltung erforderlich
(Schritt 606). Einzelheiten der Vertauschung der Basis-Adressen-Werte werden
weiter unten in Verbindung mit 8 erläutert. Die
Ladeauswahl-Logik 411 ruft das richtige Software-Teilsystem
auf, sobald die Basis-Adresse
richtig eingestellt wurde (Schritt 608).
-
7 ist
ein Ablaufdiagramm eines Verfahrens gemäß der vorliegenden Erfindung
zur Auswahl, welches Software-Teilsystem im Schritt 602 ausgeführt werden
sollte. Zu Anfang bestimmt die Ladeauswahl-Logik 411, ob
das primäre
Software-Teilsystem geändert oder
verfälscht
wurde, seitdem es erzeugt wurde (Schritt 702). Dies beinhaltet
typischerweise das Prüfen
der Kopffeld-Information in dem primären Software-Teilsystem und
die Überprüfung des
Prüfsummen-Wertes
für das
Software-Teilsystem. In ähnlicher
Weise führt
die Ladeauswahl-Logik 411 eine Analyse der Kopffeld-Information
und der Prüfsummen-Information
des sekundären
Software-Teilsystems aus (Schritt 704). In diesem Beispiel
ist das primäre
Software-Teilsystem in der Flash-Bank A 402 gespeichert,
und das sekundäre
Teilsystem ist in der Flash-Bank B 404 des Flash-Speichers 311 gespeichert.
-
Der
Zweck der Ladeauswahl-Loogik 411 besteht darin, die letzte
Software-Teilsystem-Version auszuwählen, die
richtig heruntergeladen und nicht verfälscht oder geändert wurde.
Entsprechend wird, wenn die Ladeauswahl-Logik 411 feststellt,
dass das sekundäre
Software-Teilsystem geändert
wurde (Schritt 706), das primäre Software-Teilsystem ausgewählt (Schritt 708).
Wenn jedoch das primäre
Software-Teilsystem geändert
wurde oder verfälscht
ist, so wird das sekundäre
Teilsystem ausgewählt (Schritt 712).
Es sei bemerkt, dass wenn beide Software-Teilsysteme verfälscht zu
sein scheinen, die Ladeauswahl-Logik 411 vorzugsweise das
primäre Software-Teilsystem
(Schritt 708) auswählt.
Unter diesen Umständen
ist es möglich,
dass die Ausführung
des primären
Software-Teilsystems nicht einwandfrei verläuft. Wenn sowohl das primäre als auch das
sekundäre
Teilsystem unverändert
sind, so wählt die
Ladeauswahl-Logik 411 die neueste Software-Teilsystem-Version
aus (Schritt 714). Eine Versionszählung, die jeder Flash-Bank
in dem Flash-Speicher 311 zugeordnet ist, wird jedesmal
dann weitergeschaltet, wenn eine neue Version von dem CP-Baugruppenträger 202 heruntergeladen
wird. Eine höhere
Versionszählung
zeigt an, welche Bank in dem Flash-Speicher 311 die letzte
Version enthält.
-
8 ist
ein Ablaufdiagramm eines Verfahrens zur Durchführung einer Bank-Umschaltung gemäß der vorliegenden
Erfindung. Der Bank-Umschaltbefehl wird im Schritt 508 nach
der Aktualisierung der Software empfangen, während die NC 104 läuft, oder
vom Schritt 606, wenn die NC-204 bootet oder zurückgesetzt
wird (Schritt 802). Die Bank-Umschaltung nutzt das programmierbare
Chip-Ausfallmerkmal
aus, das sich typischerweise bei vielen Mikrocontroller-Einheiten
findet, wie z. B. bei dem Motorola QUICC Mikrocontroller. Dieses
Merkmal wird dazu verwendet, die Basis-Adresse jeder Bank in dem
Flash-Speicher 311 umzusetzen.
-
Im
Betrieb wird die Bank-Umschaltroutine unter Verwendung der Chip-Auswahl
von dem Flash-Speicher 311 zu dem DRAM 312 (Schritt 804) kopiert.
Der Programmzähler
wird auf eine Adresse in dem DRAM 312 gesetzt, und die
Bank-Umschaltungsroutine
wird ausgeführt.
Die Bank-Schaltroutine liest Basis-Registerwerte CS0 und CS1 von
jeder Bank in den Flash-Speicher 311 (Schritt 808).
Der Basis-Registerwert CS1 wird als temporärer Basis-Registerwert TCS1
gespeichert, und der Basis-Registerwert CS0 wird in dem temporären Basis-Registerwert
TCS0 gespeichert (Schritt 810). Die Basis-Register werden
dann dadurch vertauscht, dass der temporäre Basis-Registerwert TCS0
als Basis-Registerwert CS1 und der temporäre Basis-Registerwert TCS1
als CS0 gespeichert wird (Schritt 812). Sobald die Basis-Registerwerte
vertauscht wurden, wird die Verarbeitung bei der nächsten Adresse
in der zweiten Bank in dem Flash-Speicher 311 fortgesetzt.
-
Obwohl
hier spezielle Ausführungsformen zur
Erläuterung
beschrieben wurden, können
vielfältige
Modifikationen durchgeführt
werden, ohne vom Schutzumfang der Erfindung abzuweichen. Entsprechend
ist die Erfindung nicht auf die vorstehend beschriebenen Ausführungsbeispiele
beschränkt,
sondern statt dessen durch die beigefügten Ansprüche im Hinblick auf ihren vollen
Schutzumfang von Äquivalenten
definiert.