-
Gebiet der
Erfindung
-
Die vorliegende Erfindung bezieht
sich auf das Gebiet der Netzwerkkommunikation und insbesondere auf
das Prüfen
eines externen Systemspeichers von einer Netzwerk-Interface-Steuerung.
-
Hintergrund
der Erfindung
-
Nahbereichsnetzwerke verwenden ein
Netzwerkkabel oder ein anderes Medium, um Teilnehmer in dem Netzwerk
miteinander zu verbinden. Jede Architektur von Nahbereichsnetzwerken
verwendet eine Medienzugriffssteuerung (MAC), welche es Netzwerk-Interface-Karten
an jedem Teilnehmer ermöglicht,
den Zugriff auf das Medium zu teilen.
-
Gewöhnliche Architekturen von Nahbereichsnetzwerken
verwenden Medienzugriffssteuerungen, die in Übereinstimmung mit dem Halbduplex
oder Vollduplex Ethernet (ANSI/IEEE 802.3) Protokoll unter Verwendung
eines beschriebenen Netzwerkmediums, wie 10 BASE-T, arbeiten. Neuere
Betriebssysteme erfordern, dass ein Netzwerkteilnehmer fähig ist,
das Vorhandensein des Netzwerks zu detektieren. In einer Ethernet
10 BASE-T Umgebung wird das Netzwerk detektiert durch die Übermittlung
eines Verbindungspulses durch den Transceiver der physikalischen
Schicht (PHY). Der periodische Verbindungspuls auf dem 10 BASE-T
Medium wird von einem PHY Empfänger
detektiert, der auf der Basis der Detektierung der periodischen
Verbindungspulse das Vorhandensein eines weiteren auf dem Netzwerkmedium übertragenden
Netzwerkteilnehmers feststellt. Daher ist ein PHY Transceiver bei
dem Teilnehmer A fähig,
das Vorhandensein eines Teilnehmers B ohne die Übermittlung oder den Empfang
von Datenpaketen zu detektieren, durch den Empfang von Verbindungspulsen
auf dem 10 BASE-T Medium von dem PHY Transmitter bei dem Teilnehmer
B.
-
Es sind Architekturen entwickelt
worden, die es Computer ermöglichen,
unter Verwendung von konventionellen Telefonleitungen mit verdrillten
Paaren miteinander verbunden zu werden anstatt eines Nahbereichsnetzwerksmediums,
wie 10 BASE-T. Eine derartige Anordnung, hier als eine Heimnetzwerk
Umgebung bezeichnet, hat den Vorteil, dass vorhandene Telefonleitungen
in einem Haus zur Einrichtung einer Heimnetzwerk Umgebung verwendet
werden können.
Jedoch sind Telefonleitungen immer wegen des Störrauschens rauschbehaftet,
das von elektrischen Geräten
in dem Haus, zum Beispiel Dimmerschalter, Transformatoren von Haushaltsgeräten usw.
verursacht wird. Des weiteren leiden die Telefonleitungen mit verdrillten
Paaren unter Einschalttransienten aufgrund des Abhebens und Auflegens
und unter Rauschpulsen von den Standard POTS Telefonen und elektrischen
Systemen wie der Heizung und Klimaanlagen usw.
-
Es ist daher wichtig für eine MAC, über die
Bedingungen informiert zu sein, die zu jeder Zeit in einem Netzwerk
existieren. Die Information über
den Zustand wird von der Netzwerksteuerung normalerweise in einem
externen Speicher gespeichert. Zusätzlich zu der Statusinformation
speichert der externe Speicher auch Seitendaten und Steuerinformationen.
Der externe Speicher weist, zusammen mit den Leiterbahnen und Anschlüssen einer
PC Platine und auch Teilen der Logik innerhalb der Netzwerksteuerung,
ein Speichersubsystem auf. Fehler in dem Speichersubsystem können hervor
gerufen werden von einem elektrischen oder mechanischen Fehler von
jedem der Elemente des Systems und/oder Fehlern in dem Entwurf der
PC Platine, wie eine übermäßige Länge des
Ladens oder der Leiterbahnen.
-
In vielen Netzwerk- und anderen Produkten
werden eingebaute Selbsttest (MBIST) Schaltungen für den eingebetteten
Speicher verwendet, um im Betrieb interne statische wahlfreie Zugriffsspeicher
(SRAMs) zu testen. Der MBIST ist normalerweise eine einfache Schaltung,
die während
jedes Zugriffs eine Speicherstelle liest oder schreibt. In letzter
Zeit wird externes RAM verwendet, um den großen Betrag an Daten zu speichern, der
in modernen in Netzwerken arbeitenden Anwendungen erforderlich ist.
Eine An zahl von verschiedenen Typen von externen Speichern, die
eine Fähigkeit
für den
Burstmodus erlauben, werden verwendet. Diese umfassen Pipeline Burst
SRAM, keine Bus Latenz (NoBL) SRAM und Null Busdurchlauf (ZBT) SRAM.
-
Um die Hardware zu minimieren, kann
der gleiche MBIST, der zum Testen eines internen SRAMs verwendet
wird, auch zum Prüfen
des externen SRAMs verwendet werden. Jedoch tritt ein Problem auf,
wenn verschiedene Typen von SRAMs geprüft werden. Dies ist wegen der
Tatsache, dass immer wenn ein Versagen beim Prüfen auftritt, die Abtastungsausgangs-Adressstelle nicht
immer dieselbe sein wird. Der Grund dafür ist, dass der MBIST Adresszähler unterschiedlich
hoch zählt,
wenn unterschiedliche Typen von SRAM geprüft werden. Zum Beispiel wird,
wegen der für
Pipeline Burst SRAM erforderlichen Latenz bei einer Durchführung einer
direkt aufeinander folgenden Lesezugriffsoperation, der MBIST Zähler nicht
immer hoch zählen.
Dies ist jedoch nicht der Fall für
ZBT SRAM, das keine derartige Latenzbeschränkung hat. Als ein Ergebnis
ist es sehr schwer, den genauen Ort der fehlerhaften Speicherstelle
für verschiedene
Typen von externem SRAM sicher zu stellen.
-
Zusammenfassung
der Erfindung
-
Es existiert ein Bedarf nach einer
Anordnung einer Netzwerk-Interface-Steuerung, welche die Durchführung eines
Standard MBIST auf externem Speicher von verschiedenen Typen erlaubt,
der an die Steuerung angeschlossen ist, was ein Anzeigen des exakten
Orts einer fehlerhaften Speicherstelle erlaubt.
-
Diese und andere Bedürfnisse
werden von der vorliegenden Erfindung angesprochen, die eine Netzwerk-Interface-Steuerung,
wie in dem begleitenden Anspruch 1 definiert, und ein Verfahren
zum Prüfen
eines externen, an eine Netzwerk-Interface-Steuerung angeschlossenen
Speichers, wie in dem begleitenden Anspruch 12 definiert, zur Verfügung stellt.
-
Entsprechend stellen Ausführungsbeispiele
der vorliegenden Erfindung eine Netzwerk-Interface-Steuerung bereit,
die ein Interface für
einen externen Speicher aufweist, das konfiguriert ist, um an verschiedene Typen
von externen Speichern angeschlossen zu werden. Ein Speichertyp-Register
ist konfiguriert, um den Typ von einem externen Speicher, der an
das Interface für
einen externen Speicher angeschlossen ist, zu speichern. Die Steuerung
weist auch eine eingebaute Selbsttest (MEIST) Logik für den Speicher
auf, die konfiguriert ist für
eine Durchführung
einer eingebauten Selbstprüfung
für einen
externen Speicher, der an das Interface für einen externen Speicher angeschlossen
ist. Die MBIST Logik umfasst eine adaptive Logik, die konfiguriert
ist, um Ergebnisse der eingebauten Selbstprüfung in Übereinstimmung mit dem Typ
des externen Speichers, der in dem Speichertyp-Register gespeichert ist, unterschiedlich
zu interpretieren.
-
Die in der vorliegenden Endung verwendete
adaptive Logik trägt
den unterschiedlichen Typen von externen Speichern Rechnung, die
an das Interface für
einen externen Speicher von der Netzwerk-Interface-Steuerung angeschlossen
werden können.
Insbesondere kann der gleiche MBIST verwendet werden, um verschiedene
Typen von externen Speichern zu prüfen, wobei die fehlerhafte
Adresse genau bestimmt wird, da die Latenz des bestimmten an das
Netzwerkinterface angeschlossenen externen Speichers berücksichtigt wird.
-
Ein weiteres Ausführungsbeispiel der vorliegenden
Erfindung stellt ein Verfahren zum Prüfen eines mit einer Netzwerk-Interface-Steuerung
verbundenen externen Speichers zur Verfügung, mit den Schritten des
Ermittelns des Typs des externen Speichers, der mit der Netzwerk-Interface-Steuerung
verbunden ist, und des Durchführens
eines MBIST an dem externen Speicherinterface durch ein Interface
für den
externen Speicher auf der Netzwerk-Interface-Steuerung. Der gleiche
MBIST wird unabhängig
von dem Typ des externen Speichers durchgeführt. Die Ergebnisse des MBIST
werden in Übereinstimmung
mit dem ermittelten Typ des externen Speichers unterschiedlich interpretiert.
-
Die obigen und weitere Merkmale,
Aspekte und Vorteile der vorliegenden Erfindung werden offensichtlicher
aus der folgenden detaillierten Beschreibung der vorliegenden Erfindung,
wenn sie in Verbindung mit den begleitenden Zeichnungen genommen
wird.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm einer in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung konstruierten Netzwerk-Interface-Steuerung,
wobei eine Netzwerk-Intertace-Steuerung
mit einer CPU und einem externen Speicher verbunden ist.
-
2 ist
ein Blockdiagramm, das in Form eines Blockdiagramms gewisse Elemente
der Netzwerk-Interface-Steuerung und den externen Speicher darstellt,
um gewisse Merkmale der Erfindung zu veranschaulichen.
-
3 ist
eine schematische Darstellung eines MBIST Registers in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
4 ist
ein Ablaufdiagramm eines beispielhaften Verfahrens zum Durchführen eines
MBIST in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
5 ist
ein beispielhaftes Zeitablaufdiagramm eines direkt aufeinander folgenden
Burst Lesezugriffs auf ein Pipeline Burst RAM während eines MBIST in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
6 ist
ein beispielhaftes Zeitablaufdiagramm eines direkt aufeinander folgenden
Burst Lesezugriffs auf ein Null Byte Durchlauf RAM wäh rend eines
MBIST in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung.
-
7 ist
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung ein beispielhaftes Zeitablaufdiagramm
eines Zugriffs auf eine einzelne Speicherstelle von einem Speicher,
der intern in der Netzwerk-Interface-Steuerung ist, während die
Adresse ansteigt.
-
8 ist
in Übereinstimmung
mit Ausführungsbeispielen
der vorliegenden Erfindung ein beispielhaftes Zeitablaufdiagramm
eines Zugriffs auf eine einzelne Speicherstelle von einem Speicher,
der intern in der Netzwerk-Interface-Steuerung ist, während die
Adresse absteigt.
-
Detaillierte
Beschreibung der Erfindung
-
Die vorliegende Erfindung adressiert
das Problem des Überprüfens des
korrekten Betriebs von einem externen Speicher, der mit einer Netzwerk-Interface-Steuerung
verbunden ist, wobei der externe Speicher einer von verschiedenen
Typen von Speichern sein kann. Die vorliegende Erfindung geht dieses
Problem an durch, in bestimmten Ausführungsbeispielen, Verwenden
des gleichen MBIST für
alle verschiedenen Typen von Speichern, aber Benutzung einer adaptiven
Logik in der Netzwerk-Interface-Steuerung, um die Ergebnisse des
MBIST in Übereinstimmung
mit dem Typ des an die Netzwerk-Interface-Steuerung angeschlossenen
externen Speichers unterschiedlich zu interpretieren. Dies trägt Unterschieden
in der Latenz, zum Beispiel bei dem Betrieb der verschiedenen Typen
von externem Speicher Rechnung, die für die Benutzung mit einer Netzwerk-Interface-Steuerung
geeignet sind.
-
1 ist
ein Blockdiagramm eines beispielhaften Ausführungsbeispiels einer Netzwerk-Interface-Steuerung,
die in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung konstruiert ist. Die Netzwerk- Interface-Steuerung
wird in dem Kontext eines IEEE 802.3 fähigen Netzwerkinterfaces beschrieben,
das konfiguriert ist zum Senden und Empfangen von Datenpaketen zwischen
einem Systemspeicher und einem Netzwerkmedium unter Verwendung von
etablierten Medienzugriffssteuerungs (MAC) und physikalischen Schicht
(PHY) Protokollen.
-
Das Netzwerkinterface 10 enthält eine
PCI Bus Interfaceeinheit 16 und Speichersteuereinheit 18,
einen Netzwerkinterfacebereich 20, eine Beschreibungsverwaltungseinheit 22 und
eine Registersteuer- und Statuseinheit 24. Der Netzwerkinterfacebereich 20 enthält einen
IEEE 802.3 konformen und Vollduplex fähigen Medienzugriffssteuerungs
(MAC) Kern 26, einen Anschluss 28 eines von Medien
unabhängigen
Interfaces (MII) zum Anschließen
von externen 10 Megabit pro Sekunde, 100 Megabit pro Sekunde oder
1000 Megabit pro Sekunde Transceivern, einen Anschluss 30 eines
externe Adresse Detektierungsinterfaces (EADI) und eine Netzwerkanschlussverwaltungseinheit 32.
Das Netzwerkinterface 10 enthält auch ein EEPROM Interface 34 zum
Lesen von einem und zum Schreiben auf ein externes EEPROM, eine
LED Steuerung 36 und ein IEEE 1149.1 konformes JTAG Grenzabtastungstest-Zugriffsanschluss-Interface 38,
eine Takterzeugungseinheit 40 und einen Erweiterungsbus 42.
Die Erweiterungsbus-Interfaceeinheit 42 bildet eine Schnittstelle
zu einem externen Datenspeicher 60 zum Speichern von Seitendaten,
zum Speichern von Steuerdaten und zum Speichern von Statusdaten.
Die Erweiterungs-Interfaceeinheit 42 bildet auch eine Schnittstelle
für nicht
flüchtigen (zum
Beispiel EEPROM oder Flashspeicher) Speicher für ein während des Hochfahrens verwendetes
Boot ROM.
-
Die PCI Bus Interfaceeinheit 16,
konform mit der PCI Lokalbus Spezifikation (Revision 2.2), empfängt Datenseiten
von einem Host Computer über
einen PCI Bus 12. Die PCI Bus Interfaceeinheit 16,
unter der Steuerung der Beschreibungsverwaltungseinheit 22,
empfängt Übermittlungen
von dem Host Computer über
den PCI Bus 12. Zum Beispiel werden von der PCI Bus Interfaceeinheit 16 empfangene
Sendedaten an die Speichersteuereinheit 18 weiter geleitet,
welche diese in dem Datenspeicher speichert. Nachfolgend holt die
Speichersteuereinheit 18 die Sendedaten aus dem Datenspeicher und
gibt sie an die MAC 26 weiter, um sie schließlich an
das Netzwerk zu übermitteln.
Auf ähnliche
Weise werden von dem Netzwerk 50 empfangene Daten von der
MAC 26 verarbeitet und zum Speichern in dem Datenspeicher 60 an
die Speichersteuereinheit 18 weiter gegeben. Nachfolgend
empfängt
die Speichersteuereinheit 18 die Daten von dem Datenspeicher 16 und
leitet sie an die PCI Bus Interfaceeinheit 16 für einen
Transfer an den Host Computer 62 über den PCI Bus 12 weiter.
-
Die Beschreibungsverwaltungseinheit 22 verwaltet
den Transfer von Daten an und von dem Host Computer 62 über die
PCI Bus Interfaceeinheit 16. In dem Speicher des Host Computers 62 enthaltene
Datenstruktur gibt die Größe und Stelle
des Datenpuffers zusammen mit verschiedenen Steuer in Statusinformationen
an. Die Beschreibungsverwaltungseinheit 22 bildet eine
Schnittstelle mit der Speichersteuereinheit 18, um Steuerinformationen
in den übermittelten
Datenstrom zu integrieren und um Statusinformation aus dem empfangenen
Datenstrom heraus zu holen. Der Netzwerkinterfacebereich 20 umfasst
die Netzwerkanschlussverwaltung 32, die automatische Verhandlungsfunktionen
ausführt,
die über
das Medium 50 mit einer entsprechenden automatisches Verhandlungseinheit
in dem Verbindungspartner (zum Beispiel einem zentralisiertem Hub,
Repeater, Workstation oder Switch) kommunizieren können.
-
Das Netzwerkinterface 10 enthält auch
eine Energieverwaltungseinheit 44, welche eine fern gesteuerte
Aktivierung (das heißt
Einschalten) des Host Computers 62 über das Netzwerkmedium 50 ermöglicht, durch
die Detektierung eines vorbestimmten Musters auf dem Medium 50 in Übereinstimmung
mit den Microsoft On Now und ACPI Spezifikationen, einschließlich der
Konformität
mit der Magic Packet Technologie und Protokollen nach der PCI Bus
Energieverwaltungsinterface Spezifikation.
-
Das Netzwerkinterface 10 enthält auch
eine MIB Zählereinheit 46,
welche Informationen von der MAC 26 hinsichtlich der Übertragung
und des Empfangs von Seiten akzeptiert und die für die Verwaltung des Netzwerks
erfor derlichen Statistiken beibehält. Auf die Statistiken wird
von dem Host Computer 62 über die PCI Bus Interfaceeinheit 16 zugegriffen.
-
2 stellt
die Netzwerk-Interface-Steuerung und den externen Speicher 60 dar.
Nur gewisse Elemente der Netzwerk-Interface-Steuerung 10 sind
für die
Zwecke der folgenden Beschreibung dargestellt.
-
Die Netzwerk-Interface-Steuerung 10 verwendet
den externen Speicher 60 zum Empfangen und Übermitteln
des Status. Die Größe des Speichers
kann bis zu 4 Megabyte betragen, in bevorzugten Ausführungsbeispielen
als 1M × 32
Bits organisiert. In weiteren Ausführungsbeispielen der Erfindung
ist die Speichergröße größer. Die
Größe des Speichers 60 wird
von den Inhalten eines Größeregisters 66 für den externen Speicher
angezeigt. Die Größe des externen
Speichers wird von einem EEPROM Interface 34 in das eines Größeregister 66 für den externen
Speicher geladen.
-
Der externe Speicher 60 wird
in Einheiten von 512 Byte Seiten programmiert. Um anzugeben, wie
viel von dem externen Speicher 60 für das Senden zugewiesen wird
und wie viel für
den Empfang zugewiesen wird, sollte ein Benutzer ein Grenzregister
(nicht gezeigt) programmieren, wobei die Seitengrenze dort ist,
wo der Empfangspuffer anfängt.
Das Grenzregister wird ebenso in Einheiten von 512 Byte Seiten programmiert. Der
Platz des Sendepuffers fängt
an der ersten Adresse in dem Grenzregister an. Es ist dem Benutzer
oder einem Softwaretreiber überlassen,
den Speicher für
ein Senden oder Empfangen aufzuteilen, und es gibt keinen Vorgabewert
in bevorzugten Ausführungsbeispielen.
Die in bevorzugten Ausführungsbeispielen
erforderliche minimale Speichergröße beträgt vier 512 Byte Seiten für jede Sende-
und Empfangswarteschlange, was die Größe des Speichers darauf begrenzt,
mindestens 4 KBytes zu sein.
-
Die Netzwerk-Interface-Steuerung 10 erlaubt
keinen Diagnosezugriff per Software auf den externen Speicher 60.
Jedoch stellt die Netzwerk-Interface-Steuerung 10 einen
Softwarezugriff auf eine interne eingebauter Selbsttest (MBIST)
Steuerung (das heißt
Steuerlogik) 68 für
den Speicher zur Verfügung,
die während des
Betriebs intensive Tests an dem externen Speicher 60, der
internen Zugriffslogik 18 für den Speicher 60 und
den Anschlüssen
der PC Platine vornimmt.
-
Das Erweiterungsbusinterface 42 (externes
Speicherinterface) enthält
externe Speicheradressanschlüsse
[19:0], welche Adressen sowohl für
den externen Speicher 60 als auch für ein externes Boot ROM Gerät zur Verfügung stellen.
Alle von diesen Ausgängen
[19:0] werden auf einen konstanten Pegel gezwungen, um Energie zu
sparen, während
kein Zugriff auf den externen Speicherbus durchgeführt wird.
Die ERD [31:0] Anschlüsse
stellen Datenbits [31:0] für
Zugriffe auf den externen Speicher 60 zur Verfügung. Diese
Signale werden auf einen konstanten Pegel gezwungen, um Energie
zu sparen, während
kein Zugriff auf den externen Speicherbus durchgeführt wird.
Für Zugriffe
auf das Boot ROM stellen die ERD [7:0] Anschlüsse die Datenbits [7:0] für Zugriffe
auf das Boot ROM zur Verfügung.
-
ERCE dient
als das Chip Freigabesignal für
den externen Speicher 60. Dies wird niedrig ausgegeben, wenn
die externe Speicheradresse an den ERA [19:0] Anschlüssen gültig ist.
-
FLCS dient
als das Chip Freigabesignal für
das Boot Gerät.
Dies wird niedrig ausgegeben, wenn die Boot ROM Adresse an den ERA
[19:0] gültig
ist.
-
EROS ist
das Ausgang Freigabesignal für
den externen Speicher, das während
Geräteleseoperationen
für den
externen Speicher aktiv niedrig ausgegeben wird, um es dem externen
Speicher 60 zu erlauben, den ERD [31:0] Datenbus zu treiben.
Es ist zu allen anderen Zeiten nicht angelegt.
-
ERWE ist
die Byte Freigabe für
den externen Speicher, welche die Schreibfreigabe für Schreibzugriffe auf
den externen Speicher 60 in dem Flash (Boot ROM) Gerät zur Verfügung stellt.
-
ERADSP ist
das Adress-Strobe Signal für
den externen Speicher, welches das Adress-Strobe Signal zum Laden
der Adresse in den externen Speicher 60 zur Verfügung stellt.
-
ERADV verwendet
den Fortschritt der Adresse des externen Speichers, der das Adressfortschrittssignal
dem externen Speicher 60 zur Verfügung stellt. Dieses Signal
wird während
eines Burst Zugriffs niedrig ausgegeben, um den Adresszähler in
dem externen Speicher 60 zu erhöhen.
-
ERCLK ist der Referenztakt für alle synchronen
Zugriffe auf den Speicher.
-
Es wird nun auf 2 Bezug genommen, wo die Netzwerk-Interface-Steuerung 10 der
vorliegenden Erfindung eine Steuerlogik 68 verwendet, welche
den MEIST Vorgang steuert, um die Größe des externen Speichers 60 zu
bestimmen und seinen korrekten Betrieb zu überprüfen. Bevor die adaptiven Merkmale
der vorliegenden Erfindung zur Anpassung an verschiedene externen
Speicher beschrieben werden, wird der MBIST selbst in Übereinstimmung
mit Ausführungsbeispielen
der Erfindung beschrieben. Die Steuerlogik 68 kann Teil
der Speichersteuerung 18 oder von dieser Steuerung logisch
getrennt sein. Die Steuerlogik 68 verwendet das MEIST Verfahren,
um das Speichersubsystem zu bewegen. Das Speichersubsystem enthält den externen
Speicher 60, die Eingangs/Ausgangslogik (das Erweiterungsbus
Interface 42) und die Leiterbahnen der Platine in dem externen
Speicher 60. Dieser Test kann mit der normalen Betriebsgeschwindigkeit
des Speichers laufen und überprüft normale
und/oder Worst Case Zugriffsmuster.
-
Der MBIST ist ein Mustererzeugungstest,
der das Schreiben von Daten in den externen Speicher 60 und
das Lesen von Daten aus dem externen Speicher 60 und das
Vergleichen davon mit den erwarteten Daten umfasst. Typischerweise
wird ein derartiger MBIST in einer eng gekoppelten MBIST Logik gefunden,
die auf Herstellungsfehler überprüft. Der
Ausdruck "eng gekoppelt" ist dahingehend
zu verstehen, dass die Logik physikalisch in dem RAM Block angeordnet
ist und Zugriff auf interne RAM Signale hat, auf wel che üblicherweise nicht über Anschlüsse an den
Kanten eines RAM Chips zugegriffen werden kann. Im Gegensatz dazu
stellt die vorliegenden Erfindung eine MBIST Logik auf der Netzwerk-Interface-Steuerung 10 zur
Verfügung,
welche mit einem externen Speicher 60 verbunden ist und
daher nicht eng gekoppelt ist. Dies erlaubt, dass externe Speicher 60 mit
unterschiedlichen Größen in Übereinstimmung
mit den Erfordernissen des Benutzers verwendet werden können.
-
Die Steuerlogik 68 verwendet
das MBIST Register 64 und ein SRAM Größe Register 66, um
die Bestimmung der Größe durchzuführen und
um den Betrieb des externen Speichers 60 zu überprüfen. Diese
Register können
Teil der Registersteuer- und Statuseinheit 24 bilden. Eine
schematische Darstellung des MBIST Registers 64 ist in 3 gegeben. Das MBIST Register 64 ist
in bevorzugten Ausführungsbeispielen
ein 64 Bit Register. Eine Beschreibung der Bit Felder in dem Register
folgt nun.
-
Das Bit 63 ist das DM_DONE
Bit, welches anzeigt, ob der MBIST durchgeführt wurde. Dieses Bit wird auf
1 gesetzt, wenn der automatische Speichertest gestoppt hat, entweder
weil der Test abgeschlossen wurde oder weil ein Fehler detektiert
wurde. Es wird auf 0 zurück
gesetzt, wenn entweder ein DM_START oder DM_RESUME gesetzt wird.
Das DM_DONE Bit ist nur zum Lesen.
-
Das Bit 62 ist das DM_ERROR
Bit, welches als der MBIST Fehlerindikator agiert. Dieses Bit wird
auf 1 gesetzt, wenn die Speichertestlogik einen Speicherfehler detektiert
hat. Es wird auf 0 zurück
gesetzt, wenn entweder DM_START oder DM_RESUME gesetzt wird. Dieses
Bit ist ebenfalls nur zum Lesen.
-
DM_START ist das MBIST Start Bit.
Das Setzen dieses Bits auf 1 setzt die MBIST Logik zurück, einschließlich der
DM_ERROR und DM_TEST_FAIL Bits, und startet den Vorgang des Testens
des Speichers. DM_START sollte nicht zu der gleichen Zeit gesetzt
sein, zu der das DM_RESUME Bit gesetzt ist.
-
Das DM_START Bit wird automatisch
gelöscht,
wenn der Speichertest stoppt. Dieses Bit kann gelesen und geschrieben
werden.
-
Das DM_RESUME Bit ist das Bit 60 und
agiert, um den MBIST fortzusetzen. Das Setzen dieses Bits auf 1
startet die Sequenz des Speichertests erneut an dem Punkt, wo sie
zuletzt gestoppt wurde. Das Setzen dieses Bits löscht das DM_ERROR Bit, aber
es löscht
nicht das DM_TEST_FAIL Bit. Dieses Bit sollte nicht zu der gleichen
Zeit gesetzt sein, zu der das DM_START Bit gesetzt ist. Das DM_RESUME
Bit wird automatisch gelöscht,
wenn der Speichertest stoppt. Dieses Bit kann gelesen und geschrieben
werden.
-
Das DM_FAIL_STOP Bit ist das Bit 59 und
führt die
Steuerung für
das Anhalten des MBIST bei einem Fehler durch. Wenn dieses Bit auf
1 gesetzt ist, wird der Speichertest jedes Mal anhalten, wenn ein
Fehler detektiert wird. Wenn dieses Bit auf 0 zurück gesetzt
wird, wird der Speichertest bis zum Ende laufen, unabhängig von
der Anzahl der Fehler, die detektiert wurden. Dieses Bit kann gelesen
und geschrieben werden.
-
Das Bit mit der Nummer 58 ist
das DM_TEST_FAIL Bit, das als Indikator für ein Versagen des MBIST Tests
agiert. Dieses Bit wird gesetzt, wenn ein Fehler bei dem Speichertest
detektiert wird. Es wird zurück
gesetzt, wenn DM_START auf 1 gesetzt wird. Es wird nicht gelöscht, wenn
DM_RESUME auf 1 gesetzt ist. Dieses Bit kann nur gelesen werden.
-
Das Bit mit der Nummer 57 ist
reserviert und als 0 geschrieben und als undefiniert gelesen.
-
Das DM_DIR Bit (Bit 56)
ist die Richtung des MBIST Tests. Dieses Bit wird auf 1 gesetzt,
wenn der MBIST Speicherzeiger runter gezählt wurde, als der Test anhielt.
Es wird auf 0 gelöscht,
wenn der MBIST Speicherzeiger hoch gezählt wurde, als der Test anhielt.
Dieses Bit kann nur gelesen werden.
-
Das Bit 55 – 54 stellt
die DM_FAIL_STATE Bits dar und agiert als der Indikator für den MBIST
Fehlerversatz. Dieses Feld zeigt den Versatz der Stelle des letzten
Fehlers des Speichertests im Hinblick auf den Wert in dem DM_ADDR
Feld an. Die Interpretation von diesem Feld hängt von dem Wert des DM_DIR
Felds ab, welches anzeigt, ob der Adresszeiger hoch oder runter
gezählt
wurde als der Fehler detektiert wurde. Dieses Feld kann nur gelesen
werden. Eine beispielhafte Zuweisung der Stelle des Fehlers als
eine Funktion des DM_DIR Bits und der DM_FAIL_STATE Bits ist unten
gegeben.
-
-
Die DM_BACKG Bits 53 – 52 bilden
die MBIST Hintergrundbits. Dieses Feld enthält das Hintergrundmuster, welches
die Speichertestlogik verwendete als der Test anhielt. Dieses Feld
kann nur gelesen werden.
-
Die Bits 51 – 32 sind
die DM_ADDR Bits und bilden die MBIST Adresse. Dieses Feld enthält die Inhalte der
MBIST Adresszeiger zu dem Zeitpunkt als der Test anhielt. Wegen
der pipelineartigen Ausbildung des externen Speichers 60 muss
dieser Wert nicht die Stelle des Speicherfehlers sein. Die tatsächliche
Stelle des Fehlers wird erhalten, indem die Inhalte des wie oben
beschriebenen DM_FAIL_STATE Felds addiert oder subtrahiert werden.
Dieses Feld kann nur gelesen werden.
-
Die DM_DATEN Bits sind die Bits 31 – 0.
Dieses Feld enthält
die letzten Daten, welche die Speichertestlogik von dem externen
Speicher 60 gelesen hat. Falls die DM_ERR und DM_FAIL_STOP
Bits beide auf 1 gesetzt sind, enthalten die Inhalte von diesem
Feld einen Fehler. Dieses Feld kann nur gelesen werden.
-
Obwohl die bestimmten Zuweisungsbits
in dem MBIST Register in 3 und
in der obigen Beschreibung zur Verfügung gestellt sind, ist diese
Zuweisung lediglich beispielhaft, da das MBIST Register 64 anders konfiguriert,
aber ansonsten übereinstimmend
mit der Beschreibung der vorliegenden Erfindung sein kann. Die Inhalte
der Register werden auf 0 gelöscht,
wenn der Reset Anschluss angelegt wird.
-
4 ist
ein Ablaufdiagramm von einem beispielhaften Ausführungsbeispiel des Verfahrens
zum Überprüfen des
Betriebs des externen Speichers 60 und seiner Größe unter
Verwendung der Steuerlogik 68 in Übereinstimmung mit Ausführungsbeispielen
der vorliegenden Erfindung. Nachdem die Netzwerk-Interface-Steuerung 10 gestartet
ist, wird die Größe des externen
Speichers (SRAM) in das SRAM_SIZE Register 66 auf einen
minimalen erlaubten Wert von 4 programmiert. Nachdem dieser Schritt
abgeschlossen ist, geht das Verfahren zu Schritt 72 über, bei
dem die DM_START und DM_FAIL_STOP Bits in dem MBIST Register 64 geschrieben
werden. Zum Beispiel werden die Bits 63:56 mit
0 × 28
geschrieben. Der Rest des MBIST Registers 64 ignoriert
Schreibvorgänge,
so dass es mit willkürlichen
Daten beschrieben oder überhaupt
nicht beschrieben werden könnte.
Dieser Vorgang startet automatisch den Vorgang des Speichertestens
durch die Steuerlogik 68.
-
Die Steuerschaltung 78 liest
das DM_DONE Bit (Bit 63) und das DM_ERROR Bit (Bit 62)
bis das DM_DONE Bit 63 auf 1 gesetzt ist. Dies ist in 4 bei den Schritten 74 und 76 dargestellt.
Sobald das DM_DONE Bit gesetzt ist, wie im Schritt 76 festgestellt,
wird dann im Schritt 78 festgestellt, ob das DM_ERROR Bit
gesetzt ist. Falls das DM_ERROR Bit gesetzt ist, wird der externe
Speicher 60 als fehlerhaft angesehen, der Fehler wird in
dem Schritt 80 gemeldet und aus dem Vorgang des Speichertestens
wird ausgestiegen.
-
Wenn das DM_DONE Bit gesetzt ist,
wie in dem Schritt 76 festgestellt wird, aber das DM_ERROR
Bit nicht gesetzt ist, wie in dem Schritt 78 festgestellt
wird, dann wird das SRAM_SIZE Register 66 auf den maximalen
Wert 0 × 800,
wie in dem Schritt 82 dargestellt, zurück programmiert. Die Schritte
74 und 76 werden dann
als Schritte 84 und 86 erneut ausgeführt. Anders
ausgedrückt
werden die DM_START und DM_FAIL_STOP Bits von der Steuerlogik 68 in
das MBIST Register 64 geschrieben. Der Speichertest wird dann
wiederum ausgeführt,
bis das DM_DONE Bit gesetzt ist, wobei die Steuerlogik 68 die
DM_DONE und DM_ERROR Bits liest. Der Prozess schleift zurück zu Schritt 84,
falls das DM_DONE Bit, wie in dem Schritt 86 festgestellt
wird, nicht gesetzt ist.
-
Wenn der Test des Speichers abgeschlossen
ist, was durch das Setzen von DM_DONE angezeigt wird, das in Schritt 86 bestimmt
wird, wird erneut bestimmt, ob das DM_ERROR Bit gesetzt ist. Falls
das DM_ERROR 0 ist wird der aktuelle Wert in dem SRAM_SIZE Register 66 als
die Größe des externen
Speichers an die CPU 62 raus gemeldet (Schritt 92).
Der Prozess wird dann beendet. Falls das DM_ERROR Bit nicht gesetzt
ist (das heißt
nicht gleich 0), wird das SRAM SIZE Register 66 auf 1/2
des Maximums (0 × 400) programmiert
und die Schritte 84 – 86 werden
wiederholt. Dieser Prozess des erneuten Programmierens der SRAM
SIZE und das Durchführen
des Speichertests bis das DM_ERROR Bit 0 ist wird wiederholt
unter Verwendung des binären
Suchalgorithmus bis die Größe des externen
Speichers 60 bestimmt ist.
-
Der oben beschriebene von der MBIST
Steuerung 68 zur Verfügung
gestellte MBIST wird angewendet unabhängig von dem Typ des externen
Speichers 60, der an das Interface für den externen Speicher 42 angeschlossen
ist. Die vorliegende Erfindung verwendet die adaptive Logik 69 in
der MBIST Steuerung 68, um die tatsächliche fehlerbehaftete Adresse
eines MBIST unabhängig
von dem Typ des externen Speichers zu bestimmen.
-
Die Sorge hinsichtlich der verschiedenen
Typen von externen Speichern in Zusammenhang mit dem Testen dieser
Speicher mit einem einzelnen MBIST wird erleichtert durch die Bereitstellung
eines Fehlschlag-Status-Indikators, der von der adaptiven Logik 69 verwendet
wird, um die Speicherstelle eines MBIST Fehlschlags genau zu bestimmen. 5 stellt einen direkt aufeinander
folgenden Burst Lesezugriff auf einen externen Speicher von einem Pipeline
BURST SRAM dar und 6 stellt
einen direkt aufeinander folgenden Burst Lesezugriff auf ein Null
Byte Durchlauf SRAM dar.
-
Ein Vergleich der beispielhaften
Zeitablaufdiagramme der 5 und 6 offenbart die Sorge hinsichtlich der
Verwendung eines einzelnen MBIST mit verschiedenen Typen von externen
Speichern. Wegen der erforderlichen Latenz bei der Ausführung einer
direkt aufeinander folgenden Operation in einem Pipeline Burst SRAM,
zählt der
MBIST Zähler
zum Beispiel (5) nicht
bei dem Takt 6 hoch. Im Vergleich dazu hat das Null Byte
Durchlauf SRAM keine derartige Beschränkung bei der Latenz (6). Entsprechend würde die
MBIST Steuerung 68, wenn sie den gleichen MBIST für die verschiedenen
Typen von Speichern ausführt,
Schwierigkeiten haben, die exakte Stelle der fehlerhaften Speicherstelle
genau zu bezeichnen.
-
Wie in 5 zu
sehen ist, wird eine Operation eines direkt aufeinander folgenden
Burst Lesezugriffs durchgeführt.
In dem Pipeline Burst SRAM wird angenommen, dass die Speicherstelle 0002 die
zu testende Stelle ist. Die Daten werden nur bei dem Takt 5 verfügbar sein.
Falls die zu lesenden Daten falsch sind, zeigt die MBIST Steuerung 68 einen
Fehler im Takt 6 an. Der Adresszähler des MBIST im Takt 6,
wie in 5 zu sehen ist,
wird mit der Adresse 0004 registriert. Jedoch ist diese
Adresse (0004) nicht die tatsächliche Speicherstelle des
Fehlschlags. Die Tatsächliche
Speicherstelle ist 0002, oder zwei Stellen weniger als die, die
mit dem MBIST Adresszähler
verzeichnet ist.
-
Als ein weiteres Beispiel, bei Verwendung
der gleichen 5, falls
die, Speicherstelle des Fehlschlags 0001 ist, würde der
Fehler in dem Takt 5 angezeigt. Der MBIST Adresszähler würde ebenfalls
mit der Speicherstelle 0004 im Takt 5 registriert,
so wie es der Fall in dem vorherigen Beispiel im Takt 6 war.
In diesem Fall ist die tatsächliche
Speicherstelle des Fehlschlags 0001, was 3 Stellen weniger
ist als die, die mit dem MBIST Adresszähler verzeichnet ist.
-
Diese Beispiele verdeutlichen, dass
die Latenz von einem Takt des Pipeline Burst SRAMs bei der Durchführung einer
direkt aufeinander folgenden Operation die Schwierigkeiten der MEIST
Steuerung 68 bei der Bestimmung der tatsächlichen
fehlerhaften Stelle verursacht, da sie nicht beständig von
der Stelle versetzt ist, die bei dem MBIST Adresszähler registriert
ist, wenn der Fehlschlag angezeigt wird. Wenn ein anderer Typ von
SRAM verwendet wird, wie ein Null Busdurchlauf SRAM, können die
Beziehungen der Latenz anders sein. Zum Beispiel ist in 6 kein Problem mit der Latenz
bei direkt aufeinander folgenden Operationen. Daher wird ein Fehler
bei der Stelle 0002 im Takt 6 berichtet, registriert
bei der Speicherstelle 5. Der Versatz der gemeldeten Speicherstelle
und die tatsächliche
fehlerhafte Speicherstelle verbleibt bei 3 (0005 – 0002),
während des
gesamten direkt aufeinander folgenden Burst Lesezugriffs. Die MBIST
Steuerung 68 muss sich daher des Typs des externen Speichers 60,
der an das Interface für
den externen Speicher 42 der Netzwerk-Interface-Steuerung 10 angeschlossen
ist, bewusst sein. Sobald sie korrekt über den Typ des externen Speichers informiert
ist, kann die MBIST Steuerung 68 den gleichen MBIST für jeden
Typ des externen Speichers benutzen, aber die unterschiedlichen
Latenzen der verschiedenen Typen berücksichtigen, um die tatsächliche
fehlerhafte Speicherstelle genau zu bestimmen.
-
Die vorliegende Erfindung verwendet
einen Fehlschlag-Status-Indikator, der den Zustand der Zustandsmaschine
der MBIST Steuerung anzeigt, wenn ein Fehlschlag auftritt, um die
tatsächliche
fehlerhafte Speicherstelle zu bestimmen. Der Fehlschlag-Status-Hinweis
(DM_FAIL_STATE) wird wie zuvor beschrieben in dem MEIST 64 gespeichert.
In dem MEIST Register 64 ist ebenso die Adressrichtung
(DM_DIR), die Adressstelle zu dem Zeitpunkt an dem der MBIST angehalten
wurde (DM_ADDR) und die letzten Daten (DM_DATA), die die MBIST Steuerung 68 von
dem externen Speicher 60 las, gespeichert. Die erwarteten
Daten werden aus dem Datenhintergrund (DM_BACKG) gebildet. Dies
sind zwei Bits (00, 01, 10, 11), die in bevorzugten Ausführungsbeispielen
dupliziert werden, um während
des MBIST den Eingang für
den externen Speicher zu bilden. Zum Beispiel können, bei einem 8 Bit Datenbus,
die erwarteten Daten gebildet werden unter Benutzung der beiden
Datenhintergrundbits durch viermaliges Nachbilden der Bits. Dies
erzeugt erwartete Daten von 00000000, 0101010101, 10101010 oder
11111111. Dieses Schema der Nachbildung der Datenhintergrundbits verringert
die Anzahl der für
den MBIST benötigten
Register.
-
In bevorzugten Ausführungsbeispielen
der Erfindung werden die Richtung der Adresse und der Fehlschlag-Status-Indikator
von der MBIST Steuerung 68 verwendet, um die tatsächliche
fehlerhafte Speicherstelle zu berechnen. Die MBIST Steuerung 68 wird
dann diese tatsächliche
fehlerhafte Speicherstelle dem Benutzer mitteilen. Während des
MBIST wird der Wert von DM_FAIL_STATE in dem MBIST Register 64 von
der Zustandsmaschine der MBIST Steuerung in Übereinstimmung mit dem Typ
des externen Speichers 60 und dem derzeitigen Status der
Speicheroperation geändert.
Zum Beispiel ist sich die MBIST Steuerung 68 durch Untersuchen
des SRAM_TYPE Feldes in einem Konfigurationsregister bewusst, dass
der externe Speicher ein Pipeline Burst SRAM ist (unter der Annahme,
dass ein derartiger Speicher an das Interface für den externen Speicher 42 angeschlossen
ist). Während
der Latenz von einen Takt zwischen zwei Bursts (Takte 5 und 6 in 5), ändert die Zustandsmaschine
der MBIST Steuerung den Wert von DM_FAIL_STATE in dem MBIST Register 64 von '11' zu '10'. Dies zeigt an,
wie in 5 gezeigt, dass
der Versatz zur Bestimmung der tatsächlichen fehlerhaften Speicherstelle
von der Adresse des gelesenen Speichers, wenn der Fehler angezeigt
wird, sich von 3 auf 2 geändert
hat. Daher wird in dem Beispiel von 5 ein
Fehler an der Stelle 0002 im Takt 6 angezeigt,
registriert mit der Adresse 0004. Der Wert von DM_ADDR
ist daher gleich mit 0004. Die Richtung der Adresse (DM_DIR)
wird auf '0' gesetzt, was anzeigt,
dass die Zustandsmaschine der MBIST Steuerung hoch zählt. Der
Wert von DM_FAIL_STATE wird zu diesem Zeitpunkt auf '10' gesetzt, was einen
Versatz von –2
anzeigt, da DM_DIR einen Wert von '0' hat.
(Falls DM_DIR auf '1' gesetzt war, würde der
Versatz +2 sein).
-
Die MBIST Steuerung untersucht das
MBIST Register 64, wenn der MBIST anhält und ein Fehler detektiert
wird, wie zuvor im Hinblick auf das beispielhafte Verfahren von 4 diskutiert wurde. Der
Versatz wird von den DM_FAIL_STATE und DM_DIR Werten erhalten und
die tatsächliche
fehlerhafte Speicherstelle wird dann von der MBIST Steuerung 68 durch
Versetzen des Werts von DM_ADDR um den bestimmten Versatzwert berechnet.
-
In dem Beispiel mit einem unterschiedlichen
Typ von externem Speicher, wie einem Null Busdurchlauf SRAM, darf
der Wert von DM_FAIL_STATE während
des MBIST nicht geändert
werden, da die Beziehungen der Latenz nicht die gleichen sind wie
bei dem Pipeline Burst SRAM. Die vorliegende Erfindung jedoch stellt eine
Flexibilität
zur Verfügung,
die es erlaubt, den gleichen MBIST mit verschiedenen Typen von externen Speichern
zu verwenden, dadurch dass den unterschiedlichen Latenzen von diesen
verschiedenen Typen von externen Speichern Rechnung getragen wird.
Die Erfindung ist daher nicht auf die beiden verschiedenen Typen
von externem Speicher beschränkt,
die zuvor als beispielhafte externe Speicher zum Anschluss an die Netzwerk-Interface-Steuerung
beschrieben wurden, sondern kann vielmehr mit anderen Typen von
externen Speichern verwendet werden. Von der Zustandsmaschine der
MBIST Steuerung würde
dann gefordert werden, dass sie den Wert des Fehlschlag-Status-Indikators
korrekt setzt.
-
Die Implementierung des 2 Bit Fehlschlag-Status-Indikators
der vorliegenden Erfindung kann einfach in existierende Zustandsmaschinen
der MBIST Steuerung eingearbeitet werden. Dies wird in einem folgenden partiellen
Verilog HDL Code gezeigt, der den Burst Zugriffsmodus der Implementierung
zeigt. Die Zustände BR1,
BR2, BR3 und BR4 stellen den Burst Lesevorgang der ersten, zweiten,
dritten beziehungsweise vierten Speicherstelle dar. Da die Daten
zwei Takte später
zum Lesen zur Verfügung
stehen, wird das Fehlschlagzustandssignal zwei Mal verriegelt (zum
Beispiel mit D Flip-Flops),
bevor die Abtastungsausgangsinformation in dem MBIST Register 64 aktualisiert
wird.
-
-
-
Die 7 und 8 sind beispielhafte Zeitablaufdiagramme
eines Zugriffs auf eine einzelne Speicheradresse eines internen
SRAMs in der Netzwerk-Interface-Steuerung 10.
Dieses interne SRAM kann Teil der Speichersteuereinheit 18 oder
logisch davon getrennt sein. In 7 ist
die Adresse absteigend während
des Zugriffs auf eine einzelne Speicheradresse, während die
Adresse in 8 aufsteigend
ist. In dem Beispiel von 7,
mit der absteigenden Adresse (DM_DIR = '0'),
wird die tatsächliche
fehlerhafte Speicherstelle als 0001 –1 = 0 berechnet, wobei 0001
der Wert von DM_ADDR ist und '0' die tatsächliche
fehlerhafte Speicherstelle ist. Der Versatz von '–1' wird bestimmt von
dem Wert von DM_FAIL_STATE ('01'), der einen Versatz
von 1 anzeigt, und DM_DIR ('0'), der anzeigt, dass
der Versatz von dem Wert von DM_ADDR subtrahiert werden sollte.
-
In 8 ist
die Adresse absteigend, so dass DM_DIR einen Wert von '1' haben wird. Der Wert von DM_ADDR für den Fehler
in 8 ist FFFE. Weil
die Adressen absteigend sind (siehe ADD in 8), wird der Adressversatz von 1 (DM_FAIL_STATE
= '01') zu dem Wert von
DM_ADDR hinzu addiert, um die tatsächliche fehlerhafte Speicherstelle
zu erzeugen. In diesem Beispiel ist dann die tatsächliche
fehlerhafte Speicherstelle FFFE + 1 = FFFF. Dieser Wert wird dann
von der MBIST Steuerung 68 an den Benutzer heraus gegeben.
-
Die vorliegende Erfindung kann daher
verwendet werden, um die tatsächliche
fehlerhafte Speicherstelle im Hinblick auf interne Speicher und
auch verschiedene Typen von externen Speichern zu bestimmen. Dies
erlaubt die Verwendung einer einzelnen MBIST, wodurch die Anforderungen
auf dem Chip reduziert werden.
-
Obwohl die vorliegende Erfindung
detailliert beschrieben und dargestellt worden ist, sollte klar
verstanden werden, dass dies lediglich im Wege der Darstellung und
beispielhaft ist und nicht als Beschränkung angesehen werden sollte,
der Umfang der vorliegenden Erfindung wird nur durch die Ausdrücke der
angefügten Ansprüche begrenzt.