Kritisches Problem
Dreifach-Speed-Ethernet-Designs mit SGMII PCS und 1000BASE-X Das Protokoll erhält die falsche Anzahl von Präambelbytes.
Für das Protokoll 1000BASE-X ist die Kodierung von Leerlaufzeiten /I2/ aufgebaut aus 2 Code-Gruppen: /K28.5/Zeichen an gerader Position und /D16.2/ an ungerader Position. Wenn gmii_tx_en der GMII-Vorfälle auftreten an ungerader Position kann die Übertragungszustandsmaschine nicht sofort Fügen Sie eine Start-Of-Packet-Codegruppe /S/ ein, da das Zeichen Idle (Leer) abgeschlossen werden. Daher wird das /S/Zeichen danach eingefügt die /I2/ abgeschlossen ist. In diesem Szenario wird /D16.2/ von /I2/ eingefügt an der Stelle des ersten Byte des Präambelfelds und /S/ am zweites Byte des Präambelfelds. Während des Empfangs dieses Frame, die Empfangsstatus-Maschine ersetzt /S/ durch ein Präambel-Byte. Jedoch das erste Präambelbyte des ursprünglichen Übertragungs-GMII-Frame wird nicht ersetzt mit Präambelbyte (es wurde durch /D16.2/ Zeichen ersetzt, um es abzuschließen die Leerlaufsequenz während des Übertragungsvorgangs). Dieses Szenario führt zu ein einzelnes Byte an Präambelverlust im gesamten System. Ieee 802.3-2008 Spezifikation erklärt dieses Problem in Abschnitt 65.1.3.2.1:HINWEIS 1 - Die 1000BASE-X PCS-Übertragungsfunktion ersetzt das erste Oktoberet von Präambel mit der /S/Code-Gruppe oder sie verwirft das erste Oktett und ersetzt das zweite Oktett der Präambel durch die /S/Code-Gruppe. Diese Entscheidung basiert auf der geraden oder ungeraden Ausrichtung des PCS Übertragungszustandsdiagramm (siehe Abbildung 36–5). Die 1000BASE-X-PCs erhalten Function ersetzt die /S/Code-Gruppe durch ein Oktett aus Präambel. Das dritte Oktett der Präambel ist das erste Oktoberet, das durch die 1000BASE-X weitergegeben wird PHY ohne Veränderung.