DE112013007770B3 - DEVICES, METHOD AND SYSTEM FOR TRANSMITTING AND RECEIVING VIA AN INTERFACE - Google Patents
DEVICES, METHOD AND SYSTEM FOR TRANSMITTING AND RECEIVING VIA AN INTERFACE Download PDFInfo
- Publication number
- DE112013007770B3 DE112013007770B3 DE112013007770.1T DE112013007770T DE112013007770B3 DE 112013007770 B3 DE112013007770 B3 DE 112013007770B3 DE 112013007770 T DE112013007770 T DE 112013007770T DE 112013007770 B3 DE112013007770 B3 DE 112013007770B3
- Authority
- DE
- Germany
- Prior art keywords
- data
- link
- valid signal
- logic
- valid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 38
- 230000007704 transition Effects 0.000 claims abstract description 52
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 230000000694 effects Effects 0.000 claims abstract description 7
- 230000015654 memory Effects 0.000 claims description 75
- 238000012545 processing Methods 0.000 claims description 40
- 238000003860 storage Methods 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 10
- RXSSENVGBNPHJJ-LBPRGKRZSA-N (2s)-2-(morpholine-4-carbonyloxy)-3-phenylpropanoic acid Chemical compound C([C@@H](C(=O)O)OC(=O)N1CCOCC1)C1=CC=CC=C1 RXSSENVGBNPHJJ-LBPRGKRZSA-N 0.000 description 93
- 238000004891 communication Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 230000011664 signaling Effects 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000001105 regulatory effect Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000007958 sleep Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- SGTNSNPWRIOYBX-UHFFFAOYSA-N 2-(3,4-dimethoxyphenyl)-5-{[2-(3,4-dimethoxyphenyl)ethyl](methyl)amino}-2-(propan-2-yl)pentanenitrile Chemical compound C1=C(OC)C(OC)=CC=C1CCN(C)CCCC(C#N)(C(C)C)C1=CC=C(OC)C(OC)=C1 SGTNSNPWRIOYBX-UHFFFAOYSA-N 0.000 description 1
- 101100439902 Arabidopsis thaliana CLE19 gene Proteins 0.000 description 1
- 101100020745 Arabidopsis thaliana LLP gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- -1 DATA Chemical compound 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000004622 sleep time Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
Vorrichtung, die Folgendes umfasst:eine Bitübertragungsschicht-Schnittstelle, die Folgendes umfasst:eine Taktleitung, die dazu eingerichtet ist, eine Taktsignal zu unterstützen;eine Steuerschnittstelle, die dazu eingerichtet ist, ein oder mehrere Steuersignale zu unterstützen, wobei das eine oder die mehreren Steuersignale Steuersignale umfassen, um Übergänge in Verbindungszuständen gemäß einer Zustandsmaschine zu bewirken;mehrere Datenleitungen, die dazu eingerichtet sind, Daten zu übertragen; undeine Gültig-Signal-Leitung, die dazu eingerichtet ist, eine Übertragung eines Gültig-Signals zu unterstützen,wobei die Übertragung von Daten auf den Datenleitungen mit einer Übertragung des Gültig-Signals auf der Gültig-Signal-Leitung abgestimmt werden soll, undwobei die Taktleitung und die Gültig-Signal-Leitung unterschiedliche Leitungen sind.An apparatus comprising:a physical layer interface comprising:a clock line configured to support a clock signal;a control interface configured to support one or more control signals, the one or more control signals control signals to effect transitions in connection states according to a state machine;a plurality of data lines arranged to transmit data; anda valid signal line configured to support transmission of a valid signal,wherein transmission of data on the data lines is to be coordinated with transmission of the valid signal on the valid signal line,andwherein the clock line and the valid signal line are different lines.
Description
GEBIETAREA
Diese Offenbarung betrifft ein Rechensystem und insbesondere (aber nicht ausschließlich) Punkt-zu-Punkt-Zwischenverbindungen. Im Besonderen betrifft die Offenbarung Vorrichtungen, Verfahren und ein System zum Senden und Empfangen von Signalen und Daten über eine Schnittstelle.This disclosure relates to a computing system and particularly (but not exclusively) to point-to-point interconnects. In particular, the disclosure relates to devices, methods and a system for sending and receiving signals and data via an interface.
HINTERGRUNDBACKGROUND
Fortschritte bei der Halbleiterverarbeitung und im Logikdesign haben eine Steigerung der Logikmenge ermöglicht, die auf integrierten Schaltungsvorrichtungen vorhanden sein können. Folglich haben sich Rechensystemkonfigurationen von Systemen mit einer oder mehreren integrierten Schaltungen zu solchen mit mehreren Kernen, mehreren Hardware-Threads und mehreren Logikprozessoren auf einzelnen integrierten Schaltungen sowie mit anderen Schnittstellen, die in solchen Prozessoren integriert sind, entwickelt. Ein Prozessor oder eine integrierte Schaltung umfasst typischerweise einen einzelnen physikalischen Prozessor-Nacktchip, wobei der Prozessor-Nacktchip eine Reihe von Kernen, Hardware-Threads, Logikprozessoren, Schnittstellen, Speichern, Steuerungs-Hub usw. umfassen kann.Advances in semiconductor processing and logic design have enabled an increase in the amount of logic that can reside on integrated circuit devices. As a result, computing system configurations have evolved from systems with one or more integrated circuits to those with multiple cores, multiple hardware threads, and multiple logical processors on individual integrated circuits, as well as other interfaces built into such processors. A processor or integrated circuit typically includes a single physical processor die, where the processor die may include a number of cores, hardware threads, logical processors, interfaces, memories, control hub, and so on.
Als Folge der gesteigerten Möglichkeit, mehr Verarbeitungsleistung in kleineren Gehäusen unterzubringen, haben kleinere Rechenvorrichtungen an Popularität gewonnen. Smartphones, Tablets, ultradünne Notebooks und andere Endgeräte haben exponentiell zugenommen. Diese kleineren Vorrichtungen hängen jedoch sowohl zur Datenspeicherung als auch für komplexe Verarbeitungsvorgänge, die den Formfaktor übersteigen, von Servern ab. Folglich ist auch die Nachfrage nach auf dem Hochleistungsrechenmarkt (d.h. Serverplatz) gestiegen. In modernen Servern gibt es beispielsweise üblicherweise nicht nur einen einzelnen Prozessor mit mehreren Kernen, sondern mehrere physikalische Prozessoren (auch als mehrere Sockets bezeichnet), um die Rechenleistung zu erhöhen. Wenn die Verarbeitungsleistung jedoch gemeinsam mit der Anzahl an Vorrichtungen in deinem Rechensystem steigt, wird die Kommunikation zwischen Sockets und anderen Vorrichtungen entscheidender.As a result of the increased ability to pack more processing power into smaller packages, smaller computing devices have grown in popularity. Smartphones, tablets, ultra-thin notebooks and other end devices have grown exponentially. However, these smaller devices depend on servers for both data storage and complex processing operations that exceed the form factor. Consequently, the demand for in the high-performance computing market (i.e. server space) has also increased. For example, in modern servers, there is typically not just a single processor with multiple cores, but multiple physical processors (also known as multiple sockets) to increase processing power. However, as processing power increases along with the number of devices in your computing system, communication between sockets and other devices becomes more critical.
Tatsächlich haben sich Zwischenverbindungen von traditionelleren Mehrpunktbussen, die vorwiegend elektrische Kommunikation verwalteten, zu ausgereiften Zwischenverbindungsarchitekturen, die rasche Kommunikation ermöglichen, entwickelt. Unglücklicherweise wird mit der steigenden Nachfrage nach zukünftigen Prozessoren, die mit noch höheren Geschwindigkeiten konsumieren, entsprechend die Nachfrage nach Kapazitäten in vorhandenen Zwischenverbindungsarchitekturen zunehmen.In fact, interconnects have evolved from more traditional multipoint buses that primarily managed electrical communications to mature interconnect architectures that enable high-speed communications. Unfortunately, as the demand for future processors consuming at even higher speeds increases, so will the demand for capacity in existing interconnect architectures.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Es kann daher als eine Aufgabe der vorliegenden Erfindung angesehen werden, einer Empfangseinrichtung zu ermöglichen, sich auf den Empfang von Daten vorzubereiten und eine Synchronisation auch bei relativ langen physischen Verbindungswegen aufrechtzuerhalten.It can therefore be seen as an object of the present invention to enable a receiving device to prepare for the reception of data and to maintain synchronization even with relatively long physical connection paths.
Die vorstehende Aufgabe wird erfindungsgemäß mit der Vorrichtung gemäß dem unabhängigen Anspruch 1, der Vorrichtung gemäß dem unabhängigen Anspruch 10, dem Verfahren gemäß dem unabhängigen Anspruch 18 und dem System gemäß dem unabhängigen Anspruch 21 gelöst. Die abhängigen Ansprüche definieren Weiterbildungen der erfindungsgemäßen Vorrichtungen, dem erfindungsgemäßen Verfahren bzw. des erfindungsgemäßen Systems.The above object is achieved according to the invention with the device according to
Figurenlistecharacter list
-
1 zeigt eine Ausführungsform eines Rechensystems, das eine Zwischenverbindungsarchitektur umfasst.1 Figure 1 shows an embodiment of a computing system that includes an interconnect architecture. -
2 zeigt eine Ausführungsform einer Zwischenverbindungsarchitektur, die einen Schichtstapel umfasst.2 Figure 12 shows an embodiment of an interconnect architecture comprising a layer stack. -
3 zeigt eine Ausführungsform einer Anfrage oder eines Pakets, die in einer Zwischenverbindungsarchitektur erzeugt oder empfangen werden sollen.3 Figure 1 shows one embodiment of a request or packet to be generated or received in an interconnect architecture. -
4 zeigt eine Ausführungsform eines Sender-und-Empfänger-Paars für eine Zwischenverbindungsarchitektur.4 Figure 1 shows one embodiment of a transmitter and receiver pair for an interconnect architecture. -
5 zeigt eine Ausführungsform eines Mehrchipgehäuses.5 Figure 1 shows an embodiment of a multi-chip package. -
6 ist ein vereinfachtes Blockdiagramm einer Mehrchipgehäuseverbindung (MCPL).6 Figure 12 is a simplified block diagram of a multi-chip package interconnect (MCPL). -
7 ist eine Darstellung einer beispielhaften Signalübertragung auf einer beispielhaften MCPL.7 Figure 12 is an illustration of an example signaling on an example MCPL. -
8 ist ein vereinfachtes Blockdiagramm, das eine Datenbahn in einer beispielhaften MCPL zeigt.8th Figure 12 is a simplified block diagram showing a data lane in an example MCPL. -
9 ist ein vereinfachtes Blockdiagramm, das beispielhafte Übersprechunterdrückungstechniken in einer Ausführungsform einer MCPL.9 12 is a simplified block diagram showing example crosstalk cancellation techniques in one embodiment of an MCPL. -
10 ist ein vereinfachtes Schaltbild, das beispielhafte Übersprechunterdrückungkomponenten in einer Ausführungsform einer MCPL zeigt.10 12 is a simplified circuit diagram showing example crosstalk cancellation components in one embodiment of an MCPL. -
11 ist ein vereinfachtes Blockdiagramm einer MCPL.11 is a simplified block diagram of an MCPL. -
12 ist ein vereinfachtes Blockdiagramm einer MCPL, die eine Schnittstelle mit einer Oberschichtlogik von mehreren Protokollen unter Verwendung einer logischen PHY-Schnittstelle (LPIF) aufweist.12 Figure 12 is a simplified block diagram of an MCPL interfacing with upper layer logic of multiple protocols using a logical PHY interface (LPIF). -
13 ist eine Darstellung einer beispielhaften Signalübertragung auf einer beispielhaften MCPL in Verbindung mit einer Wiederherstellung einer Verbindung.13 Figure 12 is an illustration of an example signaling on an example MCPL in connection with a connection reestablishment. -
14A-14C sind beispielhaft Bit-Kartierungen von Daten auf Bahnen einer beispielhaften MCPL.14A-14C are exemplary bit maps of data onto lanes of an exemplary MCPL. -
15 ist eine Darstellung eines Teils einer beispielhaften Verbindungszustandsmaschine.15 Figure 12 is an illustration of a portion of an example connection state machine. -
16 ist eine Darstellung eines Ablaufs in Verbindung mit einer beispielhaften Zentrierung einer Verbindung.16 Figure 12 is an illustration of a process associated with an example centering of a connection. -
17 ist eine Darstellung einer beispielhaften Verbindungszustandsmaschine.17 Figure 12 is an illustration of an example connection state machine. -
18 ist eine Darstellung einer Signalübertragung zum Eintritt in einen Niedrigenergiezustand.18 Figure 12 is an illustration of signaling for entering a low power state. -
19 zeigt eine Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Mehrkernprozessor umfasst.19 Figure 12 shows one embodiment of a block diagram for a computing system that includes a multi-core processor. -
20 zeigt eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Mehrkernprozessor umfasst.20 Figure 12 shows another embodiment of a block diagram for a computing system that includes a multi-core processor. -
21 zeigt eine Ausführungsform eines Blockdiagramms für einen Prozessor.21 Figure 12 shows one embodiment of a block diagram for a processor. -
22 zeigt eine weitere Ausführungsform eines Blockdiagramms für ein a Rechensystem, das einen Prozessor umfasst.22 Figure 12 shows another embodiment of a block diagram for a computing system that includes a processor. -
23 zeigt eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessoren umfasst.23 Figure 1 shows an embodiment of a block for a computing system comprising multiple processors. -
24 zeigt ein beispielhaftes System, das als Ein-Chip-System (SoC) implementiert ist.24 FIG. 1 shows an example system implemented as a system on chip (SoC).
Ähnliche Bezugszahlen und Bezeichnungen in den verschiedenen Zeichnungen bezeichnen ähnliche Elemente.Similar reference numbers and designations in the different drawings indicate similar elements.
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, wie etwa Beispiele für spezifische Arten von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische Architektur- und Mikroarchitekturdetails, spezifische Registerkonfigurationen, spezifische Anweisungsarten, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessorpipelinestufen und -operationen usw., um ein umfassendes Verständnis der vorliegenden Erfindung bereitzustellen. Für Fachleute auf dem Gebiet der Erfindung wird jedoch offensichtlich sein, dass diese spezifischen Details nicht eingesetzt werden müssen, um die vorliegende Erfindung umzusetzen. In anderen Fällen wurden allgemein bekannte Komponenten oder Verfahren, wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Codes für beschriebene Algorithmen, spezifische Firmwarecodes, spezifische Verbindungsoperationen, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compilerimplementierungen, spezifische Darstellungen von Algorithmen in Codes, spezifische Abschalt- und Gatingtechniken/-logiken und andere spezifische Operationsdetails eines Rechensystems nicht im Detail beschrieben, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.In the following description, numerous specific details are set forth such as examples of specific types of processors and system configurations, specific hardware structures, specific architectural and microarchitectural details, specific register configurations, specific instruction types, specific system components, specific dimensions/heights, specific processor pipeline stages and operations, etc . to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that these specific details need not be employed in order to practice the present invention. In other instances, well-known components or processes, such as specific and alternative processor architectures, specific logic circuits/codes for described algorithms, specific firmware codes, specific interconnect operations, specific logic configurations, specific manufacturing techniques and materials, specific compiler implementations, specific representations of algorithms in code, specific shutdown and gating techniques/logics, and other specific operational details of a computing system have not been described in detail to avoid unnecessarily obscuring the present invention.
Die folgenden Ausführungsformen können zwar in Bezug auf Energiesparen und Energieeffizienz in spezifischen integrierten Schaltungen, wie etwa Rechenplattformen oder Mikroprozessoren, beschrieben sein, bei anderen Arten von integrierten Schaltungen und Logikvorrichtungen können aber auch andere Ausführungsform eingesetzt werden. Ähnliche Verfahren und Lehren von Ausführungsformen, die hierin beschrieben sind, können auch für andere Arten von Schaltungen oder Halbleitervorrichtungen verwendet werden, die ebenfalls von besserer Energieeffizienz und Energiesparen profitieren können. Beispielsweise sind die vorliegenden Ausführungsformen nicht auf Desktop-Rechnersysteme oder Ultrabooks™ eingeschränkt. Sie können auch in anderen Vorrichtungen verwendet werden, wie etwa in Handgeräten, Tablets, anderen dünnen Notebooks, Systemen auf einem Chip (SOC-Vorrichtungen) und eingebetteten Anwendungen. Einige Beispiele für Handvorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und Hand-PCs. Eingebettete Anwendungen umfassen üblicherweise eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), ein Ein-Chip-System, Netzwerkrechner (NetPC), Beistellgeräte, NetzwerkHub, Weitverkehrsnetz- (WAN-) Schalter oder ein beliebiges anderes System, das die nachstehende gelehrten Funktionen und Operationen ausführen kann. Darüber hinaus sind die hierin beschriebenen Geräte, Verfahren und Systeme nicht auf physikalische Rechenvorrichtungen eingeschränkt, sondern können sich auch auf Softwareoptimierungen für Energiesparen und -effizienz beziehen. Wie aus der nachfolgenden Beschreibung hervorgeht sind die Ausführungsformen der Verfahren, Geräte und Systeme, die hierin beschrieben sind (egal ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) entscheidend für eine Zukunft mit ausgeglichener Berücksichtigung von ,grüner Technologie' und Leistung.While the following embodiments may be described in terms of power conservation and energy efficiency in specific integrated circuits, such as computing platforms or microprocessors, other embodiments may be employed with other types of integrated circuits and logic devices. Similar methods and teachings of embodiments described herein can also be used for other types of circuits or semiconductor devices that can also benefit from better energy efficiency and energy saving. For example, the present embodiments are not limited to desktop computing systems or Ultrabooks™. They can also be used in other devices such as handhelds, tablets, other thin notebooks, systems on a chip (SOC) devices, and embedded applications. Some examples of handheld devices include cell phones, internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Embedded applications typically include a microcontroller, digital signal processor (DSP), system on chip, network computer (NetPC), set-top box, network hub, wide area network (WAN) switch, or any other system that performs the functions and operations taught below can. Additionally, the devices, methods, and systems described herein are not limited to physical computing devices, but may also relate to software optimizations for power conservation and efficiency. As will be apparent from the description below, the embodiments of the methods, devices, and systems described herein (whether in terms of hardware, firmware, software, or a combination thereof) are critical to a future that balances green technology and performance .
Mit der Weiterentwicklung von Rechensystemen werden die darin enthaltenen Komponenten immer komplexer. Als Folge nimmt auch die Komplexität der Zwischenverbindungsarchitektur zum Koppeln der und Kommunikation zwischen den Komponenten zu, um sicherzustellen, dass Bandbreitenaforderungen für einen optimalen Betrieb der Komponenten erfüllt werden. Außerdem fordern verschiedene Marktsegmente unterschiedliche die Bereitstellung unterschiedlicher Aspekte von Zwischenverbindungsarchitekturen zur Erfüllung ihrer Bedürfnisse. Beispielsweise erfordern Server höhere Leistung, während das mobile Ökosystem manchmal bei der Gesamtleistung verzichten kann, um Energie zu sparen. Trotzdem ist das Ziel der meisten Strukturen, die höchstmögliche Leistung bei maximalem Energiesparen bereitzustellen. Nachstehend werden ein paar Verbindungen erläutert, die möglicherweise von Aspekten der hierin beschriebenen Erfindung profitieren würden.With the further development of computing systems, the components they contain are becoming increasingly complex. As a result, the complexity of the interconnect architecture for coupling and communicating between the components to ensure that bandwidth requirements for optimal operation of the components are met is also increased. Also, different market segments have different requirements for providing different aspects of interconnect architectures to meet their needs. For example, servers require higher performance, while the mobile ecosystem can sometimes sacrifice overall performance to save energy. Despite this, the goal of most structures is to provide the highest possible performance with maximum energy savings. Below are a few compounds that would potentially benefit from aspects of the invention described herein.
Eine Zwischenverbindungsstrukturarchitektur umfasst die Peripherkomponentenverbindungs- (PCI-) Express- (PCIe-) Architektur. Ein Hauptziel von PCIe besteht darin, es Komponenten und Vorrichtungen von unterschiedlichen Lieferfirmen zu ermöglichen, in einer offenen Architektur miteinander zu operieren, um mehrere Marktsegmenten zu überspannen; Clients (Desktop- und Mobilgerät), Servers (Standard und Unternehmen) und eingebettete und Kommunikationsvorrichtungen. PCI Express ist eine Mehrzweck-Hochleistungs-I/O-Zwischenverbindung, die für verschiedenste zukünftige Rechen- und Kommunikationsplattformen definiert ist. Manche PCI-Merkmale, wie z.B. sein Nutzungsmodell, seine Lade-Speicher-Architektur und Software-Schnittstellen, wurde bei Überarbeitungen beibehalten, während vorherige parallele Busimplementierungen durch eine stark skalierbare, vollkommen serielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI Express nutzen die Vorteile der Fortschritte bei Punkt-zu-Punkt-Verbindungen, schalterbasierter Technologie und paketierten Protozollen zur Bereitstellung neuer Leistungsniveaus und Funktionen. Energiemanagement, Dienstgüte (QoS), Hot-Plug/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehebung sind einige der fortgeschrittenen Funktionen, die von PCI Express unterstützt werden.An interconnect fabric architecture includes the Peripheral Component Interconnect (PCI) Express (PCIe) architecture. A key goal of PCIe is to allow components and devices from different vendors to interoperate in an open architecture to span multiple market segments; Clients (desktop and mobile), servers (standard and enterprise) and embedded and communication devices. PCI Express is a general-purpose, high-performance I/O interconnect defined for a variety of future computing and communications platforms. Some PCI characteristics, such as its usage model, load-memory architecture, and software interfaces, have been retained through revisions, while previous parallel bus implementations have been replaced with a highly scalable, fully serial interface. Newer versions of PCI Express take advantage of advances in point-to-point connections, switch-based technology, and packetized protocols to deliver new levels of performance and functionality. Power management, quality of service (QoS), hot-plug/hot-swap support, data integrity, and error recovery are some of the advanced features supported by PCI Express.
Unter Bezugnahme auf
Systemspeicher 110 umfasst eine beliebige Speichervorrichtung, wie z.B. einen Direktzugriffsspeicher (RAM), einen nichtflüchtigen (NV) Speicher oder einen anderen Speicher, auf den Vorrichtungen im System 100 zugreifen können. Systemspeicher 110 ist mit Steuerungs-Hub 115 durch Speicherschnittstelle 116 gekoppelt. Beispiele für eine Speicherschnittstelle umfassen eine Doppeldatenraten- (DDR-) Speicherschnittstelle, eine Doppelkanal-DDR-Speicherschnittstelle und eine dynamische RAM- (DRAM-) Speicherschnittstelle.
In einer Ausführungsform ist Steuerungs-Hub 115 ein Root-Hub, ein Root-Komplex oder eine Root-Steuerung in einer Peripherkomponentenverbindung-Express- (PCIe- oder PCIE-) Verbindungshierarchie. Beispiele für Steuerungs-Hub 115 umfassen einen Chipsatz, einen Speichersteuerungs-Hub (MCH), ein Northbridge, einen Verbindungssteuerungs-Hub (ICH), ein Southbridge und eine(n) Root-Steuerung/Hub. Häufig bezieht sich die Bezeichnung Chipsatz auf zwei physikalische getrennte Steuerungs-Hub, d.h. einen Speichersteuerungs-Hub (MCH), der mit einem Verbindungssteuerungs-Hub (ICH) gekoppelt ist. Es gilt anzumerken, dass aktuelle Systeme den MCH häufig im Prozessor 105 integriert aufweisen, wobei Steuerung 115 zur Kommunikation mit I/O-Vorrichtungen dient, auf ähnliche Weise wie nachstehend beschrieben ist. In manchen Ausführungsformen wird Peer-zu-Peer-Routing gegebenenfalls von einem Root-Komplex 115 unterstützt.In one embodiment,
Hier ist Steuerungs-Hub 115 mit Schalter/Brücke 120 durch serielle Verbindung 119 gekoppelt. Eingabe-/Ausgabemodule 117 und 121, die auch als Schnittstellen/Anschlüsse 117 und 121 bezeichnet werden können, umfassen/implementieren eine geschichteten Protokollstapel zur Bereitstellung von Kommunikation zwischen Steuerungs-Hub 115 und Schalter 120. In einer Ausführungsform können mehrere Vorrichtungen mit Schalter 120 gekoppelt werden.Here
Schalter/Brücke 120 leitet Pakete/Nachrichten von Vorrichtung 125 stromaufwärts, d.h. eine Hierarchie nach oben zu einem Root-Komplex, zu Steuerungs-Hub 115 und stromabwärts, d.h. eine Hierarchie nach unten weg von einer Root-Steuerung, von Prozessor 105 oder Systemspeicher 110 zu Vorrichtung 125. Schalter 120 wird in einer Ausführungsform als logische Gruppe aus mehreren virtuellen PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Vorrichtung 125 umfasst einen beliebige interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, beispielsweise mit einer I/O Vorrichtung, einer Netzwerkschnittstellensteuerung (NIC), einer Steckkarte, einem Audioprozessor, einem Netzwerkprozessor, einer Festplatte, einer Speichervorrichtung, einer CD/DVD ROM, einem Monitor, einem Drucker, einer Maus, einer Tastatur, einem Router, einer tragbaren Speichervorrichtung, einer Firewire-Vorrichtung, einer universellen seriellen Bus- (USB-) Vorrichtung, einem Scanner und anderen Eingabe-/Ausgabevorrichtungen. In der PCIe-Fachsprache wird solch eine Vorrichtung häufig als Endgerät bezeichnet. Es ist zwar nicht spezifisch dargestellt, aber Vorrichtung 125 kann eine PCIe zur PCI/PCI-X-Brücke umfassen, um Legacy- oder andere Versionen von PCI-Vorrichtungen zu unterstützen. Endgerätevorrichtungen bei PCIe werden oft als Endgeräte mit integriertem Legacy, PCIe oder Root-Komplex bezeichnet.Switch/
Grafikbeschleuniger 130 ist ebenfalls mit Steuerungs-Hub 115 durch eine serielle Verbindung 132 gekoppelt. In einer Ausführungsform ist Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Schalter 120, und demgemäß I/O-Vorrichtung 125, ist dann mit dem ICH gekoppelt. I/O-Module 131 und 118 dienen ebenfalls zur Implementierung eines geschichteten Protokollstapels zur Kommunikation zwischen Grafikbeschleuniger 130 und Steuerungs-Hub 115. Ähnlich wie bei der Erläuterung des MCH oben kann eine Grafiksteuerung oder der Grafikbeschleuniger 130 selbst im Prozessor 105 integriert sein.
Unter Bezugnahme auf
PCI Express nutzt Pakete zur Übertragung von Informationen zwischen Komponenten. Pakete werden in der Transaktionsschicht 205 Datenverbindungsschicht 210 gebildet, um die Informationen von der Sendekomponente zur Empfangskomponente zu übertragen. Wenn die übertragenen Pakete durch die äußeren Schichten wandern, werden sie mit zusätzlichen Informationen versehen, die notwendig sind, um Pakete in diesen Schichten zu verwalten. Auf der Empfangsseite findet der umgekehrte Prozess statt und Pakete werden von ihrer Darstellung in der physikalischen Schicht 220 zur Darstellung in der Datenverbindungsschicht 210 und schließlich (für Transaktionsschichtpakete) in die Form, die von der Transaktionsschicht 205 der Empfangsvorrichtung verarbeitet werden kann, umgewandelt.PCI Express uses packets to transfer information between components. Packets are formed in the
Transaktionsschichttransaction layer
In einer Ausführungsform dient die Transaktionsschicht 205 zur Bereitstellung einer Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur, z.B. einer Datenverbindungsschicht 210 und einer physikalischen Schicht 220. In diesem Zusammenhang besteht die Hauptaufgabe der Transaktionsschicht 205 darin, Pakete (d.h. Transaktionsschichtpakete oder TLPs) zusammenzustellen und auseinanderzunehmen. Die Transaktionsschicht 205 verwaltet üblicherweise Credit-basierte Flusskontrolle für TLPs. PCIe implementiert geteilte Transkationen, d.h. Transaktionen, bei denen Anfrage und Antwort zeitlich getrennt sind, was es einer Verbindung erlaubt, anderen Verkehr auszuführen, während die Zielvorrichtung Daten für die Antwort sammelt.In one embodiment, the
Außerdem nutzt PCIe Credit-basierte Flusskontrolle. Bei diesem Schema gibt eine Vorrichtung eine Anfangsmenge an Credit für jeden der Empfangspuffer in Transaktionsschicht 205 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie z.B. Steuerungs-Hub 115 in
In einer Ausführungsform umfassen vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Eingabe/Ausgabe-Adressraum und einen Nachrichtenadressraum. Speicherplatztransaktionen umfassen eine oder mehrere aus Leseanforderungen und Schreibanforderungen zur Übertragung von Daten von/zu einer im Speicher abgebildeten Position. In einer Ausführungsform sind Speicherplatztransaktionen in der Lage, zwei unterschiedliche Adressformate zu verwenden, z.B. ein kurzes Adressenformat, wie z.B. eine 32-Bit-Adresse, oder ein langes Adressenformat, wie z.B. eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Transaktionen am Konfigurationsraum umfassen Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) sind so definiert, dass sie bandinterne Kommunikation zwischen PCIe-Agenten unterstützen.In one embodiment, four transaction address spaces include a configuration address space, a memory address space, an input/output address space, and a message address space. Memory space transactions comprise one or more of read requests and write requests to transfer data from/to a location mapped in memory. In one embodiment, memory space transactions are capable of using two different address formats, e.g., a short address format, such as a 32-bit address, or a long address format, such as a 64-bit address. Configuration space transactions are used to access configuration space of PCIe devices. Transactions on configuration space include read requests and write requests. Message space transactions (or simply messages) are defined to support in-band communication between PCIe agents.
Daher assembliert in einer Ausführungsform Transaktionsschicht 205 Paketkopf/Nutzlast 206. Das Format für aktuelle Paketköpfe/Nutzlasten findet sich in den PCIe-Spezifikationen und auf der PCIe-Spezifikationswebseite.Therefore, in one embodiment,
Unter Bezugnahme auf
Transaktionsdeskriptor 300 umfasst ein globales Identifikatorfeld 302, ein Attributfeld 304 und ein Kanalidentifikatorfeld 306. Im veranschaulichten Beispiel ist das globale Identifikatorfeld 302 so dargestellt, dass es ein lokales Transaktionsidentifikatorfeld 308 und ein Quellidentifikatorfeld 310 umfasst. In einer Ausführungsform ist der globale Transaktionsidentifikator 302 einzigartig für alle ausstehenden Anforderungen.
Gemäß einer Ausführungsform ist das lokale Transaktionsidentifikatorfeld 308 ein Feld, das von einem Anforderungsagent erzeugt wird, und es ist einzigartig für alle ausstehenden Anforderungen, die eine Komplettierung für diesen Anforderungsagent erfordern. Außerdem identifiziert in diesem Beispiel der Quellidentifikator 310 auf einzigartige Weise den Anforderungsagent innerhalb einer PCIe-Hierarchie. Demgemäß stellt der lokale Transaktionsidentifikator 308 zusammen mit der Quell-ID 310 globale Identifikation einer Transaktion innerhalb einer hierarchischen Domäne bereit.According to one embodiment, the local
Attributfeld 304 spezifiziert Eigenschaften und Beziehungen der Transaktion. In diesem Zusammenhang wird Attributfeld 304 möglicherweise verwendet, um zusätzliche Informationen bereitzustellen, die eine Modifikation der Standardverwaltung von Transaktionen ermöglichen. In einer Ausführungsform umfasst Attributfeld 304 Prioritätsfeld 312, reserviertes Feld 314, Reihenfolgenfeld 316 und abhörfreies Feld 318. Hier kann das Prioritätsunterfeld 312 durch einen Initiator modifiziert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 314 wird für die Zukunft oder vom Lieferanten definierte Verwendung reserviert. Mögliche Verwendungsmodelle unter Einsatz von Prioritäts- oder Sicherheitsattributen können unter Verwendung des reservierten Attributfelds implementiert werden.
In diesem Beispiel wird das Reihenfolgenattributfeld 316 verwendet, um optionale Informationen bereitzustellen, welche die Art von Reihenfolge angeben, welche die Standardreihenfolgenregeln verändern können. Gemäß einer beispielhaften Implementierung bezeichnet ein Reihenfolgenattribut „0“, dass Standardreihenfolgenregeln anzuwenden sind, während ein Reihenfolgenattribut „1“ eine entspannte Reihenfolge bezeichnet, wobei Schreibvorgänge Schreiben in die gleiche Richtung weitergeben können und Lesekomplettierungen Schreiben in die gleiche Richtung weitergeben können. Das Abhörattributfeld 318 wird verwendet, um zu bestimmen, ob Transaktionen abgehört werden. Wie dargestellt identifiziert Kanal-ID-Field 306 einen Kanal, dem eine Transaktion zugeordnet ist.In this example, the ordering
Verbindungsschichtconnection layer
Verbindungsschicht 210, auch als Datenverbindungsschicht 210 bezeichnet, dient als Zwischenstufe zwischen Transaktionsschicht 205 und der physikalischen Schicht 220. In einer Ausführungsform ist es eine Aufgabe der Datenverbindungsschicht 210, einen verlässlichen Mechanismus zum Austausch von Transaktionsschichtpaketen (TLPs) zwischen zwei Komponenten einer Verbindung bereitzustellen. Eine Seite der Datenverbindungsschicht 210 akzeptiert TLPs, die von der Transaktionsschicht 205 assembliert werden, wendet Paketsequenzidentifikator 211 an, d.h. eine Identikationsnummer oder Paketnummer, berechnet einen Fehlererkennungscode und wendet ihn an, d.h. CRC 212, und weist die modifizierten TLPs der physikalischen Schicht 220 zu, damit sie über eine physikalische zu einer externen Vorrichtung gesendet werden.
Physikalische Schichtphysical layer
In einer Ausführungsform umfasst die physikalische Schicht 220 einen logischen Subblock 221 und einen elektrischen Subblock 222, um ein Paket physikalisch zu einer externen Vorrichtung zu senden. Hier ist ein logischer Subblock 221 verantwortlich für die „digitalen“ Funktionen der physikalischen Schicht 221. In diesem Zusammenhang umfasst der logische Subblock einen Sendeabschnitt zur Bereitstellung von ausgehenden Informationen zum Senden durch einen physikalischen Subblock 222 und einen Empfängerabschnitt zur Identifikation und Vorbereitung von empfangenen Informationen, bevor sie in die Verbindungsschicht 210 weitergeleitet werden.In one embodiment, the
Der physikalische Block 222 umfasst einen Sender und einen Empfänger. Der Sender wird durch einen logischen Subblock 221 mit Symbolen versorgt, die der Sender serialisiert und zu einer externen Vorrichtung überträgt. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird deserialisiert und zum logischen Subblock 221 geleitet. In einer Ausführungsform wird ein 8b/10b-Sendecode eingesetzt, wobei Zehn-Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole eingesetzt, um ein Paket mit Rahmen 223 einzurahmen. Außerdem stellt der Empfänger in einem Beispiel auch einen Symboltaktgeber bereit, der aus dem ankommenden Serienstrom gewonnen wird.The
Wie oben angeführt werden zwar Transaktionsschicht 205, Verbindungsschicht 210 und physikalische Schicht 220 in Bezug auf eine spezifische Ausführungsform eines PCIe-Protokollstapels erläutert, ein geschichteter Protokollstapel ist aber nicht darauf eingeschränkt. In der Tat kann jedes beliebige geschichtete Protokoll enthalten/implementiert sein. Als Beispiel umfasst ein Anschluss/eine Schnittstelle, der/die als geschichtetes Protokoll dargestellt ist: (1) eine erste Schicht zur Assemblierung von Paketen, d.h. eine Transaktionsschicht; eine zweite Schicht zur Sequenzierung von Paketen, d.h. eine Verbindungsschicht; und eine dritte Schicht zum Senden der Pakete, d.h. eine physikalische Schicht. Als spezifisches Beispiel wird ein geschichtetes Protokoll einer herkömmlichen Standardschnittstelle (CSI) verwendet.As noted above, while
Unter Bezugnahme auf
Ein Sendepfad bezieht sich auf jeden beliebigen Pfad zum Senden von Daten, wie z.B. eine Sendeleitung, eine Kupferleitung, eine optische Leitung, einen Drahtloskommunikationskanal, eine Infrarotkommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verbindung zwischen zwei Vorrichtungen, z.B. Vorrichtung 405 und Vorrichtung 410, wird als Verbindung bezeichnet, z.B. Verbindung 415. Eine Verbindung kann eine Bahn unterstützen - jede Bahn stellt einen Satz von Differenzsignalpaaren dar (ein Paar zum Senden, ein Paar zum Empfangen). Um die Bandbreite zu skalieren kann eine Verbindung mehreren Bahnen aggregieren, die durch xN bezeichnet sind, wobei N jede beliebige unterstützte Verbindungsbreite ist, wie z.B. 1, 2, 4, 8, 12, 16, 32, 64 oder mehr.A transmit path refers to any path for sending data, such as a transmit line, a copper line, an optical line, a wireless communication channel, an infrared communication link, or any other communication path. A link between two devices, e.g.,
Ein Differenzpaar bezieht sich auf zwei Sendepfade, wie z.B. Bahnen 416 und 417, zum Senden von Differenzsignalen. Wenn beispielsweise Leitung 416 von einem niedrigen Spannungswert zu einem hohen Spannungswert umschaltet, d.h. eine ansteigende Flanke, steuert Leitung 417 von einem hohen Logikpegel zu einem niedrigen Logikpegel, d.h. eine abfallende Flanke. Differenzsignale können eventuell bessere elektrische Eigenschaften aufwiesen, beispielsweise bessere Signalintegrität, d.h. Kreuzkopplung, Spannungsüberschreitung/-unterschreitung, Einschwingen usw. Dies ermöglicht ein besseres Zeitfenster, das raschere Sendefrequenzen ermöglicht.A differential pair refers to two transmit paths, such as
Im Allgemeinen kann ein Mehrchipgehäuse (z.B. 505) ein Elektronikgehäuse sein, in dem mehrere integrierte Schaltungen (ICs), Halbleiternacktchips oder andere einzelne Komponenten (z.B. 510, 515) auf einem vereinenden Substrat (z.B. Silicium oder ein anderes Halbleitersubstrat) gepackt sind, was die Verwendung der kombinierten Komponenten als einzelne Komponente ermöglicht (z.B. als ob es sich um eine größere IC handeln würde). In manchen Fällen können die größeren Komponenten (z.B. Nacktchips 510, 515) selbst IC-Systeme sein, wie z.B. Systeme auf einem Chip (SoC), Mehrprozessorchips oder anderen Komponenten, die mehrere Komponenten (z.B. 525-530 und 540-545) auf der Vorrichtung umfassen, beispielsweise auf einem einzelnen Nacktchip (z.B. 510, 515). Mehrchipgehäuse 505 können Flexibilität beim Bau von komplexen und unterschiedlichen Systemen aus möglicherweise mehreren separaten Komponenten und Systemen breitstellen. Beispielsweise kann jeder der Nacktchips 510, 515 aus zwei unterschiedlichen Einheiten hergestellt oder auf andere Weise bereitgestellt werden, wobei das Siliciumsubstrat des Gehäuses 505 durch eine dritte Einheit bereitgestellt wird, um eines von vielen Beispielen zu nennen. Außerdem können Nacktchips und andere Komponenten innerhalb eines Mehrchipgehäuses 505 selbst Verbindungs- oder andere Kommunikationsstrukturen enthalten (z.B. 535, 550), welche die Infrastruktur für eine Kommunikation zwischen Komponenten (z.B. 525-530 und 540-545) innerhalb der Vorrichtung bereitstellen (z.B. 510 bzw. 515). Die verschiedenen Komponenten und Zwischenverbindungen (z.B. 535, 550) können möglicherweise mehrere verschiedene Protokolle unterstützen oder nutzen. Ferner kann Kommunikation zwischen Nacktchips (z.B. 510, 515) möglicherweise Transaktionen zwischen den verschiedenen Komponenten auf den Nacktchips über mehrere verschieden Protokolle umfassen. Der Entwurf von Mechanismen zur Bereitstellung von Kommunikation zwischen Chips (oder Nacktchips) auf einem Mehrchipgehäuse kann eine Herausforderung darstellen, da herkömmliche Lösungen hochspezialisierte, teure und gehäusespezifische Lösungen nutzen, die auf spezifischen Kombinationen von Komponenten (und gewünschten Transaktionen) basieren, die verbunden werden sollen.In general, a multi-chip package (e.g., 505) can be an electronics package in which multiple integrated circuits (ICs), semiconductor dies, or other individual components (e.g., 510, 515) are packaged on a unifying substrate (e.g., silicon or other semiconductor substrate), representing the Allows the combined components to be used as a single component (e.g. as if it were a larger IC). In some cases, the larger components (e.g., 510, 515 dies) may be IC systems themselves, such as systems on a chip (SoC), multiprocessor chips, or other components that combine multiple components (e.g., 525-530 and 540-545) on the device, for example on a single die (e.g. 510, 515).
Die Beispiele, Systeme, Algorithmen, Geräte, Logiken und Merkmale, die in dieser Patentschrift beschrieben sind, können zumindest einige der oben identifizierten Probleme ansprechen, einschließlich möglicherweise vieler anderer, die hierin nicht erwähnt sind. Beispielsweise kann in manchen Implementierungen eine Schnittstelle mit hoher Bandbreite, geringer Energie und geringer Latenz bereitgestellt werden, um eine Host-Vorrichtung (z.B. eine CPU) oder andere Vorrichtung mit einem entsprechenden Chip verbinden, der im selben Gehäuse wie der Host enthalten ist. Solch eine Mehrchipgehäuseverbindung (MCPL) kann mehrere Gehäuseoptionen, mehrere I/O-Protokolle sowie Merkmale bezüglich Verlässlichkeit, Verfügbarkeit und Wartbarkeit (RAS) unterstützen. Ferner kann die physikalische Schicht (PHY) eine Elektrikschicht und eine Logikschicht umfassen und kann längere Kanallängen unterstützen, einschließlich Kanallängen von bis zu, und in manchen Fällen mehr als, etwa 45 mm. In manchen Implementierungen kann eine beispielhafte MCPL bei hohen Datenraten laufen, einschließlich Datenraten über 8-10 Gb/s.The examples, systems, algorithms, devices, logic, and features described in this specification may address at least some of the issues identified above, including possibly many others not mentioned herein. For example, in some implementations, a high-bandwidth, low-power, and low-latency interface may be provided to connect a host device (eg, a CPU) or other device to a corresponding chip contained in the same package as the host. Such a multichip package interconnect (MCPL) can support multiple package options, multiple I/O protocols, and reliability, availability and serviceability (RAS) features. Furthermore, the physical layer (PHY) may include an electrical layer and a logic layer, and may support longer channel lengths, including channel lengths of up to, and in some cases greater than, about 45 mm. In some implementations, an example MCPL can run at high data rates, including data rates in excess of 8-10 Gb/s.
In einer beispielhaften Implementierung einer MCPL kann eine PHY-Elektrikschicht eine Verbesserung gegenüber herkömmlichen Mehrkanalverbindungslösungen bereitstellen (z.B. Mehrkanal-DRAM-I/O), wodurch die Datenrate und die Kanalkonfiguration erweitert werden, beispielsweise um eine Reihe von Merkmalen, die beispielsweise regulierte Mittelschienentermination, aktive Niedrigenergie-Übersprechunterdrückung, Schaltungsredundanz, Pro-Bit-Arbeitszykluskorrektur und Entfernung von Laufzeitunterschieden, Zeilenkodierung und Senderausgleich, um einige von vielen Beispielen zu nennen.In an exemplary implementation of an MCPL, a PHY electrical layer may provide an improvement over traditional multi-channel interconnect solutions (e.g., multi-channel DRAM I/O), thereby expanding the data rate and channel configuration, such as by adding a number of features, such as regulated mid-rail termination, active Low-power crosstalk suppression, circuit redundancy, per-bit duty cycle correction and skew removal, line encoding, and transmitter equalization, to name a few of many examples.
In einer beispielhaften Implementierung einer MCPL kann eine PHY-Logikschicht implementiert sein, die zusätzlich die Erweiterung der Datenrate und Kanalkonfiguration unterstützen kann (z.B. Elektrikschichtmerkmale), während sie auch die Verbindung zum Routen von mehreren Protokollen durch die Elektrikschicht ermöglichen kann. Solche Implementierungen können eine modulare gemeinsame physikalische Schicht bereitstellen und definieren, die unabhängig vom Protokoll ist und eine Architektur aufweist, um mit möglicherweise jedem beliebigen existierenden oder zukünftigen Verbindungsprotokoll zu arbeiten.In an exemplary implementation of an MCPL, a PHY logic layer may be implemented, which may additionally support data rate extension and channel configuration (e.g., electrical layer features), while also allowing the connection to route multiple protocols through the electrical layer. Such implementations may provide and define a modular common physical layer that is protocol independent and has an architecture to work with potentially any existing or future link protocol.
Auf
In einer beispielhaften Implementierung kann eine MCPL eine physikalische Schicht (PHY) bereitstellen, welche die elektrische MCPL PHY 625a,b (oder gemeinsam 625) und die eine ausführbare Logik implementierbare MCPL-Logik-PHY 630a,b (oder gemeinsam 630) umfasst. Die elektrische oder physikalische PHY 625 kann die physikalische Verbindung bereitstellen, über die Daten zwischen Vorrichtungen 605, 610 übertragen werden. Signalkonditionierungskomponenten und Logik können in Verbindung mit der physikalischen PHY 625 implementiert sein, um eine hohen Datenrate und Kanalkonfigurationsfähigkeiten der Verbindung bereitzustellen, die in manchen Anwendungen dichte gebündelte physikalische Verbindungen mit Längen von etwa 45mm oder mehr umfassen können. Die logische PHY 630 kann eine Logik zur Vereinfachung von Taktgebung, Verbindungszustandsverwaltung (z.B. für Verbindungsschichten 635a, 635b) und Protokollmultiplexen zwischen möglicherweise mehreren, unterschiedlichen Protokollen, die für Kommunikationen über die MCPL verwendet werden, umfassen.In an example implementation, an MCPL may provide a physical layer (PHY) that includes the
In einer beispielhaften Implementierung kann die physikalische PHY 625 für jeden Kanal (z.B. 615, 620) einen Satz von Datenbahnen umfassen, über die bandinterne Daten gesendet werden können. In diesem speziellen Beispiel sind 50 Datenbahnen in jedem aus dem stromauf und stromab gelegenen Kanal 615, 620 bereitgestellt, obwohl jede beliebige andere Anzahl von Bahnen verwendet werden kann, wenn dies aufgrund der Auslegungs- und Energieeinschränkungen, gewünschten Anwendungen, Vorrichtungseinschränkungen usw. erlaubt ist. Jeder Kanal kann ferner eine oder mehrere dedizierte Bahnen für ein Abtast-, oder Takt-, Signal für den Kanal, eine oder mehrere dedizierte Bahnen für ein gültiges Signal für den Kanal, eine oder mehrere dedizierte Bahnen für ein Stromsignal und eine oder mehrere dedizierte Bahnen für ein Verbindungszustandsmaschinenverwaltungs- oder Seitenbandsignal umfassen. Die physikalische PHY kann ferner eine Seitenbandverbindung 640 umfassen, die in einigen Beispielen eine bidirektionale Niedrigfrequenzsteuersignalverbindung sein kann, die zur Koordination von Zustandsübergängen und anderen Attributen der MCPL verwendet wird, welche die Vorrichtungen 605, 610 verbinden, um eines von mehreren Beispielen zu nennen.In an example implementation, the physical PHY 625 for each channel (eg, 615, 620) may include a set of data lanes over which in-band data may be sent. In this particular example, 50 data lanes are provided in each of the upstream and downstream channels 615, 620, although any other number of lanes may be used if design and power constraints, desired applications, device limitations, etc. allow. Each channel can also have one or more dedicated lanes for a scan, or clock, signal for the channel, one or more dedicated lanes for a valid signal for the channel, one or more dedicated lanes for a power signal, and one or more dedicated lanes for a link state machine management or sideband signal. The physical PHY may further include a
Wie oben angemerkt können unter Verwendung einer Implementierung der MCPL mehrere Protokolle unterstützt werden. In der Tat können mehrere unabhängige Transaktionsschichten 650a, 650b bei jeder Vorrichtung 605, 610 bereitgestellt werden. Beispielsweise kann jede Vorrichtung 605, 610 zwei oder mehr Protokolle unterstützen und verwenden, wie z.B. unter anderem PCI, PCIe, QPI, Intel In-Die Interconnect (IDI). IDI ist ein kohärentes Protokoll, das auf dem Nacktchip verwendet wird, um zwischen Kernen, Caches der letzten Ebene (LLCs), Speichern, Grafiken und IO-Steuerungen zu kommunizieren. Andere Protokolle können ebenfalls unterstützt werden, einschließlich Ethernet-Protokoll, Infiniband-Protokolle und andere auf PCIe-Strukturen basierende Protokolle. Die Kombination aus der Logik-PHY und der physikalischen PHY kann auch als Verbindung zwischen Nacktchip und Nacktchip verwendet werden, um eine SerDes-PHY (PCIe, Ethernet, Infiniband oder andere Hochgeschwindigkeits-SerDes) auf einem Nacktchip mit den oberen Schichten zu verbinden, die auf dem anderen Nacktchip implementiert sind, um eines von mehreren Beispielen zu nennen.As noted above, multiple protocols can be supported using an implementation of the MCPL. Indeed, multiple
Logik-PHY 630 kann Multiplexen zwischen diesen mehreren Protokollen auf einer MCPL unterstützen. Beispielsweise kann die dedizierte Datenstrombahn verwendet werden, um ein kodiertes Datenstromsignal zuzusichern, das identifiziert, welches Protokoll auf Daten angewandt werden soll, die im Wesentlichen gleichzeitig auf den Datenbahnen des Kanals gesendet werden. Ferner kann Logik-PHY 630 verwendet werden, um die verschiedenen Arten von Verbindungszustandsübergängen automatisch einzustellen, welche die verschiedenen Protokolle unterstützen oder erfordern. In manchen Fällen können LSM_SB-Signale, die über die dedizierte LSM_SB-Bahn des Kanals gesendet werden, zusammen mit der Seitenbandverbindung 640 verwendet werden, um Verbindungszustandsübergänge zwischen den Vorrichtungen 605, 610 zu kommunizieren und automatisch einzustellen. Ferner können Verbindungstraining, Fehlererkennung, Laufzeitunterschiedsfeststellung, Entfernung von Laufzeitunterschieden und andere Funktionalitäten von herkömmlichen Verbindungen unter Verwendung von Logik-PHY 630 teilweise ersetzt oder gesteuert werden. Beispielsweise können gültige Signale, die über eine oder mehrere dedizierte gültige Signalbahnen in jedem Kanal gesendet werden, zur Signalisierung von Verbindungsaktivität, Feststellung von Laufzeitverschiebungen, Verbindungsfehler, und Umsetzung anderer Merkmale, um einige Beispiele zu nennen, verwendet werden. Im speziellen Beispiel aus
Wie oben angemerkt kann Logik-PHY 630 verwendet werden, um Verbindungssteuerungssignale, die zwischen durch die MCPL verbundenen Vorrichtungen gesendet werden, automatisch einzustellen und zu verwalten. In einigen Implementierungen kann Logik-PHY 630 eine Verbindungsschichtpaket- (LLP) Erzeugungslogik 660 umfassen, die verwendet werden kann, um Verbindungsschichtsteuernachrichten über die MCPL (d.h. bandintern) zu senden. Solche Nachrichten können über Datenbahnen des Kanals gesendet werden, wobei die Datenstrombahn identifiziert, dass die Daten Verbindungsschicht-zu-Verbindungsschicht-Nachrichtenübertragung darstellen, wie z.B. Verbindungsschichtsteuerdaten, um ein Beispiel zu nennen. Verbindungsschichtnachrichten, die unter Verwendung eines LLP-Moduls 660 aktiviert sind, können die automatische Einstellung und Leistung von Verbindungsschichtzustandsübergängen, Energieverwaltung, Schleifenbetrieb, Deaktivierung, Neuzentrierung, Verwürflung, unter anderen Verbindungsschichtmerkmalen, zwischen den Verbindungsschichten 635a, 635b von Vorrichtung 605 bzw. 610 unterstützen.As noted above, logic PHY 630 may be used to automatically adjust and manage link control signals sent between devices connected through the MCPL. In some implementations, logic PHY 630 may include link layer packet (LLP)
Auf
In einigen Implementierungen kann ein gültiges Signal, das auf einem oder mehreren dedizierten gültigen Signalkanälen (z.B. VALID0, VALID1) gesendet wird, als führender Indikator für die Empfangsvorrichtung dienen, um, wenn zugesichert (hoch), für die Empfangsvorrichtung oder Senke, zu identifizieren, dass Daten von der Sendevorrichtung, oder Quelle, auf Datenbahnen (z.B. DATA[0-49]) während der folgenden Zeitperiode, z.B. eine Byte-Zeitdauer 710, gesendet werden. Alternativ dazu gibt, wenn das gültige Signal niedrig ist, die Quelle der Senke an, dass die Senke während der folgenden Zeitdauer keine Daten auf den Datenbahnen senden wird. Demgemäß kann, wenn die Senken-Logik-PHY feststellt, dass das gültige Signal nicht zugesichert ist (z.B. auf Bahne VALID0 und VALID1), die Senke jegliche Daten, die auf den Datenbahnen (z.B. DATA[0-49]) während der folgenden Zeitdauer festgestellt werden, ignorieren. Beispielsweise können Übersprechgeräusche oder andere Bits auf einer oder mehreren der Datenbahnen auftreten, wenn die Quelle in Wahrheit keine Daten sendet. Aufgrund eines niedrigen, oder nicht zugesicherten, gültigen Signals während der vorherigen Zeitdauer (z.B. der vorherigen Byte-Zeitdauer), kann die Senke bestimmen, dass die Datenbahnen während der folgenden Zeitdauer zu ignorieren sind.In some implementations, a valid signal transmitted on one or more dedicated valid signal channels (e.g., VALID0, VALID1) may serve as a leading indicator for the receiving device to identify, if committed (high), for the receiving device or sink that data is sent from the sending device, or source, on data lanes (e.g., DATA[0-49]) during the following time period, e.g., one byte period 710. Alternatively, if the valid signal is low, the source indicates to the sink that the sink will not send data on the data lanes for the following period of time. Accordingly, if the sink logic PHY determines that the valid signal is not asserted (e.g., on lanes VALID0 and VALID1), the sink can retrieve any data that is on the data lanes (e.g., DATA[0-49]) during the following period be detected, ignore. For example, crosstalk or other bits may appear on one or more of the data lanes when the source is not actually sending data. Based on a low, or unasserted, valid signal during the previous period (e.g., the previous byte period), the sink may determine to ignore the data lanes during the following period.
Auf einer der Bahnen der MCPL gesendete Daten können streng mit dem Abtastsignal abgeglichen sein. Eine Zeitdauer kann basierend auf der Abtastung definiert sein, wie z.B. eine Byte-Zeitdauer, und jede dieser Dauern kann einem definierten Fenster entsprechen, in dem Signale auf den Datenbahnen (z.B. DATA[0-49]), den gültigen Bahnen (z.B. VALID1, VALID2) und der Datenstrombahn (z.B. STREAM) zu senden sind. Demgemäß kann Abgleichen dieser Signale eine Identifikation ermöglichen, dass ein gültiges Signal in einem vorherigen Zeitraumfester für Daten im nachfolgenden Zeitraumfenster gilt, und dass ein Datenstromsignal für Daten im gleichen Zeitdauerfenster gilt. Das Datenstromsignal kann ein kodiertes Signal sein (z.B. 1 Byte von Daten für ein Byte-Zeitdauerfenster), das kodier ist, um das Protokoll zu identifizieren, das für Daten gilt, die während desselben Zeitdauerfensters gesendet werden.Data sent on either lane of the MCPL may be strictly aligned with the strobe signal. A time period may be defined based on the sample, such as a byte time period, and each of these durations may correspond to a defined window in which signals on the data lanes (e.g., DATA[0-49]), the valid lanes (e.g., VALID1, VALID2) and the data flow path (e.g. STREAM) are to be sent. Accordingly, matching these signals may allow identification that a valid signal in a previous time period window applies to data in the subsequent time period window and that a data stream signal applies to data in the same time period window. The data stream signal may be an encoded signal (e.g. 1 byte of data for one byte time window) encoded to identify the protocol applicable to data sent during the same time window.
Zur Veranschaulichung ist im speziellen Beispiel aus
Wie oben angemerkt können mehrere gültige Bahnen und Abtastbahnen pro Kanal aufrechterhalten werden. Dies kann, unter anderen Vorteilen, dazu beitragen, die Einfachheit der Schaltung und Synchronisation zwischen den Bündeln von relativ langen physikalischen Bahnen, welche die zwei Vorrichtungen verbinden, zu erhalten. In einigen Implementierungen kann ein Satz von Datenbahnen in Bündeln von Datenbahnen unterteilt werden. Im Beispiel aus
Wie oben eingeführt können Daten auf Datenstrombahn STREAM verwendet werden, um der Empfangslogik-PHY anzuzeigen, welches Protokoll für entsprechende Daten anzuwenden ist, die auf Datenbahnen DATA[0-49] gesendet werden. Im Beispiel aus
In einigen Implementierungen kann ein Niedrigenergie- oder Ruhezustand für die MCPL definiert sen. Wenn beispielsweise keine Vorrichtung auf der MCPL Daten sendet, kann die physikalische Schicht (elektrisch und logisch) von MCPL in einen Ruhe- oder Niedrigenergiezustand übergehen. Im Beispiel aus
Die MCPL kann wieder in einen Niedrigenergie- oder Ruhezustand (z.B. einen L1-Zustand) übergehen, nachdem Ruhezustände auf den gültigen Bahnen, Datenbahnen und/oder anderen Bahnen des MCPL-Kanals erfasst wurden. Beispielsweise kann eine Signalübertragung erfasst werden, die bei Zeitdauerfenster n+3 (730) beginnt und weiterläuft. Logik auf entweder der Quelle oder der Senkenvorrichtung kann initiierten, dass zurück in einen Niedrigenergiezustand gegangen wird, was wiederum (z.B. Zeitdauerfenster n+5 (755)) dazu führt, dass die Abtastung in einen Energiesparmodus übergeht, um ein Beispiel und Prinzipien zu nennen (einschließlich der später hierin erläuterten).The MCPL may transition back to a low power or idle state (e.g., an L1 state) after idle states are detected on the valid lanes, data lanes, and/or other lanes of the MCPL channel. For example, a signaling transmission beginning and continuing at duration window n+3 (730) can be detected. Logic on either the source or sink device can initiate going back to a low power state, which in turn (e.g. duration window n+5 (755)) causes the sampling to go into a power saving mode, for example and principles ( including those discussed later herein).
Elektrische Eigenschaften der physikalischen PHY können eine oder mehrere aus einseitiger Signalübertragung, weitergeleiteter Halbratentaktgebung, Abstimmung von Verbindungskanal sowie On-Chip-Transportverzögerung von Sender (Quelle) und Empfänger (Senke), optimiertem elektrostatischem Endladungs- (ESD-) Schutz, Kontaktstellenkapazität, und anderen Merkmalen, umfassen. Außerdem kann eine MCPL implementiert werden, um höhere Datenraten (z.B. nahe 16 Gb/s) und bessere Energieeffizienzeigenschaften als bei herkömmlichen Gehäuse-I/O-Lösungen zu erreichen.Electrical properties of the physical PHY can include one or more of unidirectional signaling, forwarded half-rate clocking, link channel tuning, as well as on-chip transport delay of transmitter (source) and receiver (sink), optimized electrostatic discharge (ESD) protection, pad capacitance, and others characteristics include. Additionally, an MCPL can be implemented to achieve higher data rates (e.g., close to 16 Gb/s) and better power efficiency characteristics than traditional packaged I/O solutions.
Mit dem Beispiel aus
In einigen Implementierungen kann auch eine Übersprechunterdrückungsschaltung für eine beispielhafte MCPL bereitgestellt sein. In einigen Fällen kann die kompakte Art der langen MCPL-Drähte Übersprechstörungen zwischen Bahnen einbringen. Übersprechunterdrückungslogik kann implementiert sein, um diese und andere Probleme anzusprechen. Beispielsweise kann in einem Beispiel, das in
Ähnliche Implementierungen wie im Beispiel aus
Weitere Merkmale können auf der physikalischen PHY-Ebene einer beispielhaften MCPL implementiert sein. Beispielsweise kann eine Empfängerabweichung einen signifikanten Fehler einführen und I/O-Spannungsgrenzen in manchen Fällen begrenzen. Schaltungsredundanz kann verwendet werden, um Empfängerempfindlichkeit zu verbessern. In einigen Implementierungen kann Schaltungsredundanz optimiert werden, um die Standardabweichung von Datensamplern anzusprechen, die in der MCPL verwendet werden. Beispielsweise kann ein beispielhafter Datensampler bereitgestellt sein, der mit einer drei (3) Snandardabweichungsspezifikation ausgelegt ist. In den Beispielen aus
In weiteren Beispielen kann bei sehr hohen Datenraten pro Bit-Arbeitszykluskorrektur (DCC) und Entfernung der Laufzeitverschiebung verwendet werden, um die Basislinie pro Bündel-DCC zu erhöhen und Entfernung der Laufzeitverschiebung, um den Verbindungsabstand zu verbessern. Anstatt in allen Fällen zu korrigieren, wie bei herkömmlichen Lösungen, kann in einigen Implementierungen eine Niedrigenergie-Digitalimplementierung eingesetzt werden, welche die Ausreißer abfühlt und korrigiert, wo die I/O-Bahn versagen würde. Beispielsweise kann ein globales Abstimmen der Bahnen durchgeführt werden, um Problembahnen innerhalb der Bündel zu identifizieren. Auf diese Problembahnen kann dann für Pro-Bahn-Abstimmung abgezielt werden, um die hohen Datenraten zu erreichen, die von der MCPL unterstützt werden.In other examples, at very high data rates, per bit duty cycle correction (DCC) and skew removal can be used to increase baseline per burst DCC and skew removal to improve link spacing. Instead of correcting in all cases, as in conventional solutions, in some implementations a low-power Digital implementation can be used that senses and corrects the outliers where the I/O trace would fail. For example, global lane matching can be performed to identify problem lanes within clusters. These problem lanes can then be targeted for per-lane tuning to achieve the high data rates supported by the MCPL.
Weitere Merkmale können ebenfalls gegebenenfalls in einigen Beispielen einer MCPL implementiert werden, um die Leistungsmerkmale der physikalischen Verbindung zu verbessern. Beispielsweise kann Zeilenkodierung bereitgestellt werden. Während Mittelbahnterminationen, wie oben beschrieben, das Auslassen einer DC-Datenbusinversion (DBI) ermöglichen können, kann AC-DBI immer noch verwendet werden, um die dynamische Leistung zu reduzieren. Kompliziertere Kodierung kann auch verwendet werden, um den ungünstigsten Fall einer Abweichung von 1's und 0's zu eliminieren, um beispielsweise die Ansteuerungsanforderung eines Mittelbahnreglers zu reduzieren sowie I/O-Schaltgeräusche zu begrenzen, um einige vorteilhafte Beispiele zu nennen. Ferner kann Senderausgleich auch gegebenenfalls implementiert werden. Beispielsweise kann bei sehr hohen Datenraten ein Einfügungsverlust bei einem Kanal innerhalb des Gehäuses signifikant sein. Unter anderem kann ein Zweiabgriffsgewichtungssenderausgleich (z.B. während einer anfänglichen Einschaltsequenz) kann in manchen Fällen ausreichen, um einige dieser Problem zu lindern.Other features may also be optionally implemented in some instances of an MCPL to enhance physical link performance. For example, row encoding can be provided. While center lane terminations, as described above, may allow DC data bus inversion (DBI) to be skipped, AC-DBI can still be used to reduce dynamic power. More complicated coding can also be used to eliminate the worst-case mismatch of 1's and 0's, for example to reduce the drive requirement of a center lane regulator, as well as to limit I/O switching noise, to name a few beneficial examples. Furthermore, sender equalization can also be implemented if necessary. For example, at very high data rates, insertion loss in a channel within the package can be significant. Among other things, two-tap weight transmitter equalization (e.g., during an initial power-up sequence) may be sufficient in some cases to alleviate some of these problems.
Auf
Logik-PHY 1110 kann eine Verbindungszustandsmaschinenverwaltungslogik 1125 zur automatischen Einstellung von Verbindungszustandsübergängen in Verbindung mit Anfrage einer übergenordneten Logik des Nacktchips (z.B. über PCIe oder IDI empfangen) zu umfassen. Logik-PHY 1110 kann ferner eine Verbindungstest- und Fehlerbehebungslogik (z.B. 1130) in einigen Implementierungen umfassen. Wie oben angemerkt kann eine beispielhafte MCPL Steuersignale unterstützen, die zwischen Nacktchips über die MCPL gesendet werden, um protokollunabhängige Hochleistungs- und Energieeffizienzfunktionen (unter andere beispielhaften Funktionen) der MCPL bereitzustellen. Beispielsweise kann Logik-PHY 1110 Erzeugen und Senden sowie Empfangen und Verarbeitung von gültigen Signalen, Datenstromsignalen und LSM-Seitenbandsignalen in Verbindung mit dem Senden und Empfangen von Daten über dedizierte Datenbahnen unterstützen, wie in den obigen Beispielen beschrieben ist.
In einigen Implementierungen kann eine Multiplexier- (z.B. 1135) und Demultiplexier- (z.B. 1140) logik in Logik-PHY 1110 enthalten sein oder auf andere Weise für diese zugänglich sein. Beispielsweise kann eine Multiplexierlogik (z.B. 1135) verwendet werden, um Daten (z.B. als Pakete, Nachrichten usw. ausgeführt) zu identifizieren, auf die MCPL hinaus gesendet werden sollen. Die Multiplexierlogik 1135 kann das Protokoll identifizieren, das die Daten verwaltet, und ein Datenstromsignal erzeugen, das kodiert ist, um das Protokoll zu identifizieren. Beispielsweise kann in einer beispielhaften Implementierung das Datenstromsignal als Byte aus zwei Hexadezimalsymbolen kodiert sein (z.B. IDI: FFh; PCIe: F0h; LLP: AAh; Seitenband: 55h; usw.) und kann während desselben Fensters (z.B. ein Byte-Zeitdauerfenster) der Daten gesendet werden, die vom identifizierte Protokoll verwaltet werden. Auf ähnliche Weise kann Demultiplexierlogik 1140 eingesetzt werden, um ankommende Datenstromsignale zu interpretieren, um das Datenstromsignal zu dekodieren und das Protokoll zu identifizieren, das auf die Daten anzuwenden ist, die gleichzeitig mit dem Datenstromsignal auf den Datenbahnen empfangen werden. Die Demultiplexierlogik 1140 kann dann protokollspezifische Verbindungsschichtabwicklung anwenden (oder sicherstellen) und dazu führen, dass die Daten von der entsprechenden Protokolllogik abgewickelt werden (z.B. PCIe-Logik 1115 oder IDI-Logik 1120).In some implementations, multiplexing (e.g., 1135) and demultiplexing (e.g., 1140) logic may be included in or otherwise accessible to
Logik-PHY 1110 kann ferner Verbindungsschichtpaketlogik 1150 umfassen, die verwendet werden kann, um verschiedene Verbindungssteuerfunktionen handzuhaben, einschließlich Leistungsverwaltungsaufgaben, Schleifenbetrieb, Deaktivierung, Neuzentrierung, Verwürflung usw. LLP-Logik 1150 kann, neben anderen Funktionen, Verbindungsschicht-zu-Verbindungsschicht-Nachrichten über MCLP ermöglichen. Daten, die der LLP-Signalübertragung entsprechen, können auch durch ein Datenstromsignal identifiziert werden, das auf einer dedizierten Datenstromsignalbahn gesendet wird und das kodiert ist, um die Datenbahn-LLP-Daten zu identifizieren. Multiplexier- und Demultiplexierlogik (z.B. 1135, 1140) kann auch verwendet werden, um die Datenstromsignale zu erzeugen und zu interpretieren, die LLP-Verkehr entsprechen, sowie um dazu zu führen, dass solcher Verkehr von der entsprechenden Nacktchiplogik (z.B. LLP-Logik 1150) abgewickelt wird. Auf ähnliche Weise kann bei einigen Implementierungen eine MCLP ein dediziertes Seitenband (z.B. Seitenband 1155 und unterstützende Logik) umfassen, z.B. einen asynchronen und/oder Niederfrequenz-Seitenbandkanal, um ein Beispiel zu nennen.
Logische PHY-Logik 1110 kann ferner Verbindungszustandsmaschinenverwaltungslogik umfassen, die Verbindungszustandsverwaltungsnachrichtenübertragung über eine dedizierte LSM-Seitenbandbahn erzeugen (und verwenden) kann. Beispielsweise kann eine LSM-Seitenbandbahn verwendet werden, um eine Abstimmung durchzuführen und den Verbindungsübungszustand zu beschleunigen, aus den Leistungsverwaltungszuständen (z.B. einem L1-Zustand) auszutreten, um einige von möglichen Beispielen zu nennen. Das LSM-Seitenbandsignal kann ein asynchrones Signal sein, in dem Sinne, dass es nicht mit den Daten, gültigen und Datenstromsignalen der Verbindung abgeglichen ist, sondern stattdessen Signalübertragungszustandsübergängen entspricht und die Verbindungszustandsmaschine zwischen zwei Nacktchips oder Chips, die durch die Verbindung verbunden sind, abgleicht, um ein Beispiel zu nennen. Bereitstellen einer dedizierten LSM-Seitenbandbahn kann in manchen Fällen ermöglichen, dass eine vorübergehende Rauschsperre und empfangene Feststellungsschaltungen eines analogen Front-Ends (AFE) eliminiert werden, um einige vorteilhafte Beispiele zu nennen.
Auf
Die LPIF kann die PHY (logisch und elektrisch/analog) von den oberen Schichten (z.B. 1210, 1215, 1220, 1225) abstrahieren, sodass eine komplett andere PHY unter LPIF implementiert werden kann, für die oberen Schichten transparent ist. Dies kann die Förderung von Modularität und Wiederverwendung in Design unterstützen, da die oberen Schichten intakt bleiben können, wenn darunterliegende Signalübertragungstechnologie-PHY aktualisiert wird, um ein Beispiel zu nennen. Ferner kann die LPIF eine Reihe von Signalen definieren, die Multiplexieren/Demultiplexieren, LSM-Verwaltung, Fehlererkennung und -behebung und andere Funktionalitäten der Logik-PHY ermöglichen. Beispielsweise ist in Table 1 zumindest ein Teil von Signalen zusammengefasst, die für eine beispielhafte LPIF definiert werden können: TABELLE 1:
Wie in Tabelle 1 zu sehen kann in einigen Implementierungen ein Abgleichungsmechanismus durch einen AlignReq/AlignAck-Handshake bereitgestellt werden. Wenn beispielsweise die physikalische Schicht in Rücksetzung eintritt, können einige Protokolle die Paketrahmensynchronisation verlieren. Abgleichen der Pakete kann korrigiert werden, beispielsweise um korrekte Rahmensynchronisationsidentifikation durch die Verbindungsschicht sicherzustellen. Außerdem kann, wie in
Verschiedene Fehlertoleranzen können für Signale auf der MCPL definiert werden. Beispielsweise können Fehlertoleranzen für gültige, Datenstrom-, LSM-Seitenband-, Niedrigfrequenzweitenband-, Verbindungsschichtpakete- und andere Arten von Signale definiert werden. Fehlertoleranzen für Pakete, Nachrichten und andere Daten, die über die dedizierten Datenbahnen der MCPL gesendet werden, können auf dem jeweiligen Protokoll basieren, das die Daten verwaltet. In einigen Implementierungen können Fehlererkennungs- und -beseitigungsmechanismen bereitgestellt werden, wie z.B. zyklische Redundanzprüfung (CRC), Wiederholungspuffer, um einige mögliche Beispiele zu nennen. Als Beispiele kann für PCIe-Pakete, die über die MCPL gesendet werden, 32-Bit-CRC für PCIe-Transaktionsschichtpakete (TLPs) verwendet werden (mit garantierter Zustellung (z.B. durch einen Rückspielmechanismus)) und 16-Bit-CRC kann für PCIe-Verbindungsschichtpakete verwendet werden (deren Architektur verlustbehaftet ist (z.B. wo kein Rückspielen eingesetzt wird)). Ferner kann für PCIe Rahmensynchronisationtoken ein bestimmter Hamming-Abstand (z.B. Hamming-Abstand vier (4)) für den Tokenidentifikator definiert werden; Parität und 4-Bit-CRC können ebenfalls verwendet werden, um ein Beispiel zu nennen. Bei IDI-Paketen andererseits kann 16-Bit-CRC verwendet werden.Various error tolerances can be defined for signals on the MCPL. For example, error tolerances can be defined for valid, stream, LSM sideband, low frequency wideband, link layer packet, and other types of signals. Fault tolerance for packets, messages, and other data sent over the MCPL's dedicated data lanes may be based on the particular protocol managing the data. In some implementations, error detection and recovery mechanisms may be provided, such as cyclic redundancy check (CRC), retry buffers, to name a few possible examples. As examples, 32-bit CRC can be used for PCIe transaction layer packets (TLPs) for PCIe packets sent over the MCPL (with guaranteed delivery (e.g. through a replay mechanism)) and 16-bit CRC can be used for PCIe Link layer packets are used (whose architecture is lossy (e.g. where no playback is employed)). Furthermore, for PCIe frame synchronization tokens, a specific hamming distance (e.g., hamming distance four (4)) can be defined for the token identifier; Parity and 4-bit CRC can also be used, to give an example. On the other hand, IDI packets can use 16-bit CRC.
In einigen Implementierungen können Fehlertoleranzen für Verbindungsschichtpakete (LLPs) definiert werden, die Anfordern eines gültigen Signals zum Übergang von niedrig zu hoch (d.h. 0 zu 1) umfassen (z.B. um Bit- und Symbolsperrung zu unterstützen) umfassen. Ferner kann in einem Beispiel eine bestimmte Anzahl an aufeinanderfolgenden, identischen LLPs definiert werden, die gesendet werden sollen, und Antworten auf jede Anfrage können erwartet werden, mit Neuversuchen durch den Anfrager nachdem die Antwortzeit abgelaufen ist, einschließlich anderer definierter Eigenschaften, die als Basis zur Bestimmung von Fehlern in LLP-Daten auf der MCPL verwendet werden können. In weiteren Beispielen kann eine Fehlertoleranz für ein gültiges Signal bereitgestellt werden, beispielsweise durch Erweitern des gültigen Signals über ein ganzes Zeitdauerfenster oder Symbol (z.B. durch Hochhalten des gültigen Signals länger als für acht UIs). Darüber hinaus können Fehler oder Störungen in Datenstromsignalen verhindert werden, indem ein Hamming-Abstand für Kodierwerte des Datenstromsignals eingehalten wird, um ein Beispiel zu nennen.In some implementations, fault tolerances may be defined for link layer packets (LLPs) that include requesting a valid signal to transition from low to high (ie, 0 to 1). (eg to support bit and symbol locking). Further, in one example, a specified number of consecutive, identical LLPs can be defined to be sent, and responses to each request can be expected, with retries by the requestor after the response time has expired, including other defined properties that serve as a basis for Determination of errors in LLP data on the MCPL can be used. In other examples, error tolerance may be provided for a valid signal, for example, by extending the valid signal across an entire time duration window or symbol (eg, by holding the valid signal high for more than eight UIs). Furthermore, errors or glitches in data stream signals can be prevented by maintaining a Hamming distance for encoding values of the data stream signal, for example.
Implementierungen einer Logik-PHY können Fehlerbestimmungs-, Fehlerberichterstattungs- und Fehlerbeseitigungslogik umfassen. In einigen Implementierungen kann eine Logik-PHY einer beispielhaften MCPL Logik zur Bestimmung von PHY-Schicht-Rahmensynchronisationsbeseitigungsfehlern (z.B. auf der gültigen und Datenstrombahn), Seitenbandfehler (z.B. in Bezug auf LSM-Zustandsübergänge), Fehler in LLPs (die z.B. entscheidend für LSM-Zustandsübergänge sind) umfassen, um einige Beispiele zu nennen. Manche Fehlerbestimmungen/-lösungen können zu einer Logik einer höheren Schicht delegiert werden, wie z.B. PCIe-Logik, die angepasst ist, um PCIe-spezifische Fehler zu bestimmen, um ein Beispiel zu nennen.Logic PHY implementations may include error determination, error reporting, and error recovery logic. In some implementations, logic PHY of an example MCPL may include logic to determine PHY layer frame synchronization failures (e.g., on the valid and data flow path), sideband failures (e.g., related to LSM state transitions), failures in LLPs (e.g., those critical to LSM state transitions are) to name a few examples. Some error determination/resolution may be delegated to higher layer logic, such as PCIe logic that is adapted to determine PCIe specific errors, for example.
Im Falle von Rahmensynchronisationsbeseitigungsfehlern können in einigen Implementierungen ein oder mehrere Mechanismen bereitgestellt werden, die durch Fehlerbeseitigungslogik bereitgestellt werden können. Rahmensynchronisationsbeseitigungsfehler können basierend auf den beteiligten Protokollen beseitigt werden. Beispielsweise können in einigen Implementierungen Verbindungsschichten über den Fehler informiert werden, um einen Neuversuch auszulösen. Rahmensynchronisationsbeseitigung kann auch eine Neuabgleichung der Logik-PHY-Rahmensynchronisationsbeseitigung auslösen. Ferner kann eine Neuzentrierung der Logik-PHY durchgeführt werden, und Symbol/Fenster-Sperrung kann erneut erworben werden, neben anderen Techniken. Zentrieren kann in einigen Beispielen umfassen, dass die PHY die Empfängertaktphase zum optimalen Punkt bewegt, um die ankommenden Daten festzustellen. „Optimal“ kann in diesem Zusammenhang bedeuten, wo sie den größten Raum für Rauschen und Taktjitter hat. Neuzentrierung kann vereinfachte Zentrierfunktionen umfassen, die beispielsweise durchgeführt werden, wenn die PHY von einem Niedrigenergiezustand aufwacht, um ein Beispiel zu nennen.In the case of frame synchronization debugging errors, one or more mechanisms that can be provided by debugging logic may be provided in some implementations. Frame synchronization elimination errors can be eliminated based on the protocols involved. For example, in some implementations, link layers may be informed of the failure to trigger a retry. Frame sync elimination may also trigger a logic PHY frame sync elimination realignment. Furthermore, logic PHY re-centering can be performed and symbol/window locking can be re-acquired, among other techniques. Centering may, in some examples, involve the PHY moving the receiver clock phase to the sweet spot to determine the incoming data. "Optimal" in this context can mean where it has the greatest room for noise and clock jitter. Re-centering may include simplified centering functions performed when the PHY wakes up from a low power state, for example.
Andere Arten von Fehlern können andere Fehlerbeseitigungstechniken umfassen. Beispielsweise können Fehler, die in einem Seitenband festgestellt werden, durch einen Zeitbegrenzungsemechanismus eines entsprechenden Zustands (z.B. einer LSM) abgefangen werden. Der Fehler kann geloggt werden, und die Verbindungszustandsmaschine kann dann in Rückstellung übergehen. Die LSM kann in Rückstellung bleiben, bis ein Neustartbefehl von einer Software empfangen wird. In einem weiteren Beispiel können LLP-Fehler, wie z.B. ein Verbindungssteuerungspaketfehler, mit einem Zeitbegrenzungsmechanismus abgewickelt werden, die die LLP-Sequenz neu starten kann, wenn keine Bestätigung der LLP-Sequenz erhalten wird.Other types of errors may involve other error recovery techniques. For example, errors detected in a sideband can be trapped by a timeout mechanism of an appropriate state (e.g. an LSM). The error can be logged and the connection state machine can then transition to reset. The LSM can remain in default until a restart command is received from software. In another example, LLP errors, such as a link control packet error, can be handled with a timeout mechanism that can restart the LLP sequence if no acknowledgment of the LLP sequence is received.
In einem weiteren Beispiel zeigt
In einem weiteren Beispiel, das in
Auf
In einigen Implementierungen kann, wie im Beispiel aus
Kurz auf die Erläuterung von
Wie oben angemerkt kann in einigen Implementierungen eine MCPL Kommunikation zwischen zwei Vorrichtungen vereinfachen, die möglicherweise mehrere unterschiedliche Protokolle unterstützen, und die MCPL kann Kommunikationen gemäß möglicherweise einem der mehreren Protokolle über die Bahnen der MCPL ermöglichen. Ermöglichen mehrerer Protokolle kann jedoch den Eintritt und Wiedereintritt in zumindest einige Verbindungszustände erschweren. Während manche herkömmliche Verbindungen beispielsweise ein einziges Oberschichtprotokoll aufweisen, das den Master der Zustandsübergänge darstellt, umfasst eine Implementierung von MCPL mit mehreren unterschiedlichen Protokollen effektiv mehrere Master. Wie in
In manchen Fällen kann Eintritt in L1 (oder einen anderen Zustand) nur von einer der mehreren unterstützten Protokolle angefordert werden, die für die Implementierung einer MCPL unterstützt werden. Es mag zwar Wahrscheinlich sein, dass die anderen Protokolle ebenfalls einen Eintritt in den gleichen Zustand anfordern werden (z.B. basierend auf einer Identifikation ähnlicher Bedingungen (z.B. wenig oder kein Verkehr) auf der MCPL), die Logik-PHY kann aber warten, bis eine Erlaubnis oder Anweisungen von jedem Oberschichtprotokoll empfangen wurde, bevor der Zustandsübergang tatsächlich ermöglicht. Die Logik-PHY kann verfolgen, welche Oberschichtprotokolle die Zustandsänderung angefordert haben (z.B. einen entsprechenden Handshake durchgeführt hat) und den Zustandsübergang auslösen, wenn identifiziert wird, dass jedes der Protokolle die jeweiligen Zustandsänderung angefordert hat, wie z.B. einen Übergang von L0 zu L1 oder einen anderen Übergang, der sich auf die Kommunikationen der anderen Protokolle auswirken oder diese stören würde. In einigen Implementierungen können Protokolle blind in Bezug auf ihre zumindest teilweise Abhängigkeit von anderen Protokollen im System sein. Ferner kann in manchen Fällen ein Protokoll eine Antwort (z.B. von der PHY) auf eine Anfrage, in einen bestimmten Zustand überzugehen, erwarten, beispielsweise eine Bestätigung oder Ablehnung des angeforderten Zustandsübergangs. Demgemäß kann in solchen Fällen, während auf eine Erlaubnis von einem anderen unterstützten Protokolle für einen Eintritt in einen Ruheverbindungszustand gewartet wird, die Logik-PHY synthetische Antworten auf eine Anfrage, erzeugen, um in den Ruhezustand einzutreten und das anfragende Oberschichtprotokoll „auszutricksen“, sodass dieses annimmt, das in einen bestimmten Zustand übergegangen wurde (währen in Wahrheit die Bahnen immer noch aktive sind, zumindest bis die anderen Protokolle ebenfalls einen Eintritt in den Ruhezustand anfordern). Unter anderen möglichen Vorteilen kann dies den Eintritt in den Niedrigenergiezustand zwischen mehreren Protokollen durch Koordination vereinfachen, um ein Beispiel zu nennen.In some cases, entry into L1 (or other state) can only be requested by one of the several supported protocols supported for implementation of an MCPL. While it may be likely that the other protocols will also request entry into the same state (eg, based on an identification of similar conditions (eg, little or no traffic) on the MCPL), the logic PHY can wait for permission or instructions have been received from any upper layer protocol before the state transition is actually enabled. The logic PHY can track which upper-layer protocols requested the state change (e.g., performed a corresponding handshake) and trigger the state transition when identifying that each of the protocols requested the respective state change, such as an L0 to L1 transition or a other transition that would affect or disrupt the communications of the other protocols. In some implementations, protocols may be blind to their at least partial dependency on other protocols in the system. Further, in some cases, a protocol may expect a response (eg, from the PHY) to a request to transition to a particular state, e.g wise an acknowledgment or rejection of the requested state transition. Accordingly, in such cases, while waiting for permission from another supported protocol to enter an idle connection state, the logic PHY can generate synthetic responses to a request to enter the idle state and "trick" the requesting upper-layer protocol to do so assumes that it has entered a certain state (while in fact the lanes are still active, at least until the other protocols also request entry into the idle state). Among other potential benefits, this may simplify entry into the low power state between multiple protocols through coordination, for example.
Es gilt anzumerken, dass die oben beschriebenen Geräte, Verfahren und Systeme in jeder/m beliebigen elektrischen Vorrichtung oder System implementiert werden können, wie oben erwähnt ist. Als spezifische Veranschaulichungen stellen die nachfolgenden Figuren beispielhafte Systeme zur Verwendung der Erfindung wie hierin beschrieben bereit. Wenn die Systeme nachstehend genauer beschrieben werden, wird eine Reihe von unterschiedlichen Verbindungen offenbart, beschrieben und aus der obigen Erläuterung wiederaufgenommen. Und wie leicht erkennbar sein wird, können die oben beschriebenen Vorteile bei beliebigen dieser Verbindungen, Strukturen oder Architekturen angewandt werden.It should be noted that the devices, methods, and systems described above may be implemented in any electrical device or system as mentioned above. As specific illustrations, the following figures provide example systems for using the invention as described herein. When the systems are described in more detail below, a number of different connections are disclosed, described, and resumed from the discussion above. And as will be readily apparent, the advantages described above can be applied to any of these connections, structures or architectures.
Unter Bezugnahme auf
In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente umfassen: eine Threadeinheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardware-Thread, einen Kern, und/oder ein beliebiges anderes Element, das in der Lage ist, einen Zustand eines Prozessors zu halten, z.B. einen Ausführungszustand oder einen Architekturzustand. Mit anderen Worten kann sich ein Verarbeitungselement in einer Ausführungsform auf eine beliebige Hardware beziehen, die unabhängig einem Code zugeordnet sein kann, z.B. einem Software-Thread, einem Betriebssystem, einer Anwendung oder einem anderen Code. Ein physikalischer Prozessor (oder Prozessorsocket) bezieht sich üblicherweise auf eine integrierte Schaltung, die möglicherweise eine beliebige Anzahl von anderen Verarbeitungselementen umfasst, wie z.B. Kerne oder Hardware-Threads.In one embodiment, a processing element refers to hardware or logic supporting a software thread. Examples of hardware processing elements include: a thread unit, a thread slot, a thread, a process unit, a context, a context unit, a logical processor, a hardware thread, a core, and/or any other element capable of is to hold a state of a processor, e.g., an execution state or an architectural state. In other words, a processing element in one embodiment can refer to any hardware that can be independently associated with code, such as a software thread, an operating system, an application, or other code. A physical processor (or processor socket) commonly refers to an integrated circuit that may include any number of other processing elements, such as cores or hardware threads.
Ein Kern bezieht sich häufig auf eine Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand zumindest einigen dedizierten Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread üblicherweise auf eine beliebige Logik, die sich auf einer integrierten Schaltung befindet und in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen Architekturzustände einen gemeinsamen Zugang zu Ausführungsressourcen haben. Wie zu sehen ist überlappt, wenn bestimmte Ressourcen geteilt werden und andere für einen Architekturzustand reserviert sind, die Grenze zwischen der Terminologie für einen Hardware-Thread und für einen Kern. Häufig werden ein Kern und ein Hardware-Thread jedoch von einem Betriebssystem als einzelne Logikprozessoren betrachtet, wobei das Betriebssystem in der Lage ist, Operationen auf jedem Logikprozessor separat zu planen.A core often refers to logic residing on an integrated circuit capable of maintaining an independent architectural state, with each independently maintained architectural state being associated with at least some dedicated execution resources. In contrast to cores, a hardware thread commonly refers to any logic residing on an integrated circuit capable of maintaining an independent architectural state, where the independently maintained architectural states have common access to execution resources. As can be seen, when certain resources are shared and others are reserved for an architectural state, the boundary between the terminology for a hardware thread and for a core overlaps. Often, however, a core and a hardware thread are viewed by an operating system as individual logical processors, with the operating system being able to schedule operations on each logical processor separately.
Physikalischer Prozessor 1900, wie in
Wie dargestellt umfasst Kern 1901 zwei Hardware-Threads 1901a und 1901b, die auch als Hardware-Thread-Slots 1901a und 1901b bezeichnet werden können. Daher sehen Software-Einheiten, wie z.B. ein Betriebssystem, in einer Ausführungsform Prozessor 1900 möglicherweise als vier separate Prozessoren, d.h. vier Logikprozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig auszuführen. Wie oben angemerkt ist ein erster Thread Architekturzustandsregistern 1901a zugeordnet, ein zweiter Thread ist Architekturzustandsregistern 1901b zugeordnet, ein dritter Thread kann Architekturzustandsregistern 1902a zugeordnet sein und ein vierter Thread kann Architekturzustandsregistern 1902b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (1901a, 1901b, 1902a, und 1902b) als Verarbeitungselement, Thread-Slot oder Thread-Einheit bezeichnet werden, wie oben beschrieben ist. Wie dargestellt werden Architekturzustandsregister 1901a in Architekturzustandsregistern 1901b repliziert, sodass einzelne Architekturzustände/-kontexte in für Logikprozessor 1901a und Logikprozessor 1901b gespeichert werden können. In Kern 1901 können auch andere kleine Ressourcen, wie z.B. Anweisungszeiger und Umbenennungslogik im Zuordner- und Umbenennerblock 1930 für Threads 1901a und 1901b repliziert werden. Manche Ressourcen, wie z.B. Neuordnunsgpuffer in Neuordnungs-/Rückordnungseinheit 1935, ILTB 1920, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, wie z.B. interne Allzweckregister, (ein) auf Seiten-Tabellen basierende(s) Register, Datencaches der unteren Ebene und Daten-TLB 1915, (eine) Ausführungseinheit(en) 1940 sowie Teile von die Reihenfolge nicht einhaltender Einheit 1935, werden möglicherweise vollständig geteilt.As shown,
Prozessor 1900 umfasst häufig andere Ressourcen, die vollständig geteilt werden können, durch Partitionierung gemeinsam genutzt werden können oder von/für Verarbeitungselemente dediziert werden können. In
Kern 1901 umfasst ferner ein Dekodiermodul 1925, das mit Abrufeinheit 1920 gekoppelt ist, um abgerufene Elemente zu dekodieren. Eine Abruflogik umfasst in einer Ausführungsform einzelne Sequenzierer, die Thread-Slots 1901a bzw. 1901b zugeordnet sind. Üblicherweise ist Kern 1901 einer ersten ISA zugeordnet, die Anweisungen definiert/spezifiziert, die auf Prozessor 1900 ausführbar sind. Häufig umfassen Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Teil der Anweisung (als Opcode bezeichnet), die (auf) eine Anweisung oder eine Operation verweist/spezifiziert, die ausgeführt werden soll. Dekodierlogik 1925 umfasst eine Schaltung, die diese Anweisungen aus ihren Opcodes erkennt und die dekodierten Anweisungen in die Pipeline zur Verarbeitung weiterleitet, wie sie durch die erste ISA definiert ist. Wie nachstehend genauer erläutert können Dekodierer 1925 beispielsweise in einer Ausführungsform eine Logik umfassen, die ausgelegt oder angepasst ist, um spezifische Anweisungen zu erkennen, wie z.B. eine Transaktionsanweisung. Als Ergebnis der Erkennung durch Dekodierer 1925 setzt die Architektur oder der Kern 1901 bestimmte vordefinierte Aktionen zur Ausführung von Aufgaben, die der geeigneten Anweisung zugeordnet sind. Es ist wichtig, anzumerken, dass beliebige der Aufgaben, Blöcke, Operationen und Verfahren, die hierin beschrieben sind, als Antwort auf eine einzelne oder auf mehrere Anweisungen ausgeführt werden können; manche davon können neue oder alte Anweisungen sein. Es gilt anzumerken, dass Dekodierer 1926 in einer Ausführungsform die gleiche ISA (oder einen Subsatz davon) erkennen. Alternativ dazu erkennen Dekodierer 1926 in einer heterogenen Kernumgebung eine zweite ISA (entweder einen Subsatz einer ersten ISA oder einer anderen ISA).
In einem Beispiel umfasst der Zuordner- und Umbenennerblock 1930 einen Zuordner zur Reservierung von Ressourcen, wie z.B. Registerdateien zur Speicherung von Anweisungsverarbeitungsergebnissen. Threads 1901a und 1901b sind jedoch möglicherweise zur nicht die Reihenfolge nicht einhaltenden Ausführung in der Lage, wobei Zuordner- und Umbenennerblock 1930 auch andere Ressourcen reserviert, wie z.B. Neuordnungspuffers zum Nachverfolgen von Anweisungsergebnissen. Einheit 1930 kann auch einen Registerumbenenner zum Umbenennen von Programm-/Anweisungsreferenzregistern zu anderen internen Registern von Prozessor 1900 umfassen. Neuordnungs-/Rückordnungseinheit 1935 umfasst Komponenten, wie z.B. die oben genannten Neuordnungspuffer, Ladepuffers und Speicherpuffers, um die die Reihenfolge nicht einhaltende Ausführung und später und die die Reihenfolge einhaltenden Rückordnung von Anweisungen zu unterstützen, die nicht der Reihenfolge nach ausgeführt wurden.In one example, the allocator and
Planer- und Ausführungseinheit(en)-Block 1940 umfasst in einer Ausführungsform eine Planereinheit zum Planen von Anweisungen/Operationen auf Ausführungseinheiten. Beispielsweise wird ein Gleitkommabefehl an einem Anschluss einer Ausführungseinheit geplant, der eine verfügbare Gleitkommaausführungseinheit aufweist. Registerdateien, die den Ausführungseinheiten zugeordnet sind, sind ebenfalls enthalten, um Informationen über Anweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Lastausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.Scheduler and Execution Unit(s) Block 1940, in one embodiment, includes a scheduler unit for scheduling instructions/operations onto execution units. For example, a floating point instruction is scheduled on an execution unit port that has an available floating point execution unit. Register files associated with execution units are also included to store information about instruction processing results. Example execution units include a floating point execution unit, an integer execution unit, a branch execution unit, a load execution unit, a memory execution unit, and other known execution units.
Ein Datencache der unteren Ebene und ein Datenübersetzungspuffer (D-TLB) 1950 werden mit Ausführungseinheit(en) 1940 gekoppelt. Der Datencache dient zur Speicherung von kürzlich verwendeter/bearbeiteter Elemente, wie z.B. Datenoperanden, di möglicherweise in Speicherkohärenzzuständen gehalten werden. Der D-TLB dient zur Speicherung kürzlicher virtuell/linear-zu-physikalischer Adressübersetzungen. Als spezifisches Beispiel kann ein Prozessor eine Seiten-Tabellen-Struktur umfassen, um einen physikalischen Speicher in eine Vielzahl von virtuellen Seiten aufzubrechen.A low level data cache and a data translation buffer (D-TLB) 1950 are coupled to execution unit(s) 1940 . The data cache is used to store recently used/edited items, such as data operands, that may be held in memory coherency states. The D-TLB is used to store recent virtual/linear-to-physical address translations. As a specific example, a processor may include a page table structure to break up physical memory into a plurality of virtual pages.
Hier teilen Kerne 1901 und 1902 Zugang zu einem Cache auf höherer Ebene oder weiter außerhalb, wie z.B. einem Cache auf zweiter Ebene, der einer On-Chip-Schnittstelle 1910 zugeordnet ist. Es gilt anzumerken, dass sich höhere Ebene oder weiter außerhalb auf Cacheebenen bezieht, die von der/den Ausführungseinheit(en) weg aufsteigen oder weiter weg liegen. In einer Ausführungsform ist ein Cache höherer Ebene ein Datencache der letzten Ebene - der letzte Cache in der Speicherhierarchie auf Prozessor 1900 - wie z.B. ein Cache der zweiten oder dritten Ebene. Ein Cache einer höheren Ebene ist jedoch nicht darauf eingeschränkt, da er einem Anweisungscache zugeordnet sein kann oder einen solchen umfassen kann. Ein Verfolgungscache - eine Art von Anweisungscache - kann stattdessen nach dem Dekodierer 1925 gekoppelt werden, um kürzlich dekodierte Abläufe zu speichern. Hier bezieht sich eine Anweisung möglicherweise auf eine Makroanweisung (d.h. eine allgemeine Anweisung, die von den Dekodierern erkannt wird), die in eine Reihe von Mikroanweisungen (Mikrooperationen) dekodiert werden kann.Here,
In der dargestellten Konfiguration umfasst Prozessor 1900 auch ein On-Chip-Schnittstellenmodul 1910. Früher war eine Speichersteuerung, die nachstehend genauer beschrieben ist, in einem Rechensystem enthalten, das außerhalb des Prozessors 1900 liegt. In diesem Szenario dient die On-Chip-Schnittstelle 1910 zur Kommunikation mit Vorrichtungen, die außerhalb des Prozessors 1900 liegen, z.B. einem Systemspeicher 1975, einem Chipsatz (häufig einen Speichersteuerungs-Hub umfassend, um Speicher 1975 und einen I/O-Steuerungs-Hub zu verbinden, um periphere Vorrichtungen zu verbinden), einem Speichersteuerungs-Hub, einer Northbridge oder anderen integrierten Schaltungen. Und in diesem Szenario kann Bus 1905 eine beliebige bekannte Verbindung umfassen, wie z.B. einen Mehrpunktbus, eine Punkt-zu-Punkt-Verbindung, eine Serielle Verbindung, einen parallelen Bus, einen kohärenten (z.B. cachekohärenten) Bus, eine Protokollschichtarchitektur, einen differentiellen Bus und einen GTL-Bus.In the configuration shown,
Speicher 1975 kann für Prozessor 1900 dediziert sein oder mit anderen Vorrichtungen in einem System geteilt werden. Herkömmliche Beispiele für Arten von Speicher 1975 umfassen DRAM, SRAM, nichtflüchtige Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es gilt anzumerken, dass Vorrichtung 1980 einen Grafikbeschleuniger, einen Prozessor oder eine Karte mit einem Speichersteuerungs-Hub gekoppelt, einen Datenspeicher mit einem I/O Steuerungs-Hub gekoppelt, einen Drahtlossendeempfänger, eine Flashvorrichtung, eine Audiosteuerung, eine Netzwerksteuerung oder eine andere bekannte Vorrichtung umfassen kann.
Seit Kurzem kann jedoch, da mehr Logik und Vorrichtungen auf einem einzelnen Nacktchip, wie z.B. SOC, untergebracht werden, jede dieser Vorrichtungen auf Prozessor 1900 inkorporiert sein. In einer Ausführungsform befindet sich beispielsweise ein Speichersteuerungs-Hub auf demselben Paket und/oder Nacktchip wie Prozessor 1900. Hier umfasst ein Teil des Kerns (ein On-Core-Teil) 1910 eine oder mehrere Steuerung(en) zur Bereitstellung einer Schnittstelle mit anderen Vorrichtungen, wie z.B. Speicher 1975 oder einer Grafikvorrichtung 1980. Die Konfiguration, die eine Verbindung und Steuerungen zur Bereitstellung einer Schnittstelle mit solchen Vorrichtungen umfasst, wird oft als On-Core bezeichnet (oder Un-Core-Konfiguration). Beispielsweise umfasst eine On-Chip-Schnittstelle 1910 eine Ringverbindung für On-Chip-Kommunikation und eine serielle Punkt-zu-Punkt-Hochgeschwindigkeitsverbindung 1905 für Off-Chip-Kommunikation. Nichtsdestotrotz könne in der SOC-Umgebung noch weitere Vorrichtungen, wie z.B. die Netzwerk-Schnittstelle, Coprozessoren, Speicher 1975, Grafikprozessor 1980 und beliebige andre bekannte Rechenvorrichtungen/Schnittstellen auf einem einzelnen Nacktchip oder einer integrierten Schaltung vorhanden sein, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.More recently, however, as more logic and devices are packaged on a single die, such as an SOC, each of these devices may be incorporated on
In einer Ausführungsform ist Prozessor 1900 in der Lage, einen Kompilierungs-, Optimierungs- und/oder Übersetzercode 1977 zum Kompilieren, Übersetzen und/oder Optimieren von Anwendungscode 1976 auszuführen, um das Gerät und die Verfahren, die hierin beschrieben sind, zu unterstützen oder eine Schnittstelle damit bereitzustellen. Ein Compiler umfasst oft ein Programm oder einen Satz von Programmen zur Übersetzung von Quelltest/-code in Zieltext/-code. Üblicherweise erfolgt eine Kompilierung von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen und Durchläufen, um einen Programmiersprachencode höherer Ebene in einen Maschinen- oder Assemblersprachencode einer niedrigeren Ebene umzuwandeln. Nichtsdestotrotz können für einfache Kompilation auch Compiler mit einem Durchlauf eingesetzt werden. Ein Compiler kann beliebige bekannte Kompilationstechniken nutzen und beliebige bekannte Compileroperationen ausführen, wie z.B. eine lexikalische Analyse, Vorverarbeitung, Syntaxanalyse, semantische Analyse, Codeerzeugung, Codetransformation und Codeoptimierung.In one embodiment,
Größere Compiler umfassen oft mehrere Phasen, aber meistens sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) Front-End, d.h. wo im Allgemeinen syntaktische Verarbeitung, semantische Verarbeitung und etwas Transformation/Optimierung stattfinden können, und (2) ein Back-End, d.h. wo im Allgemeinen Analysen, Transformationen, Optimierungen und Codeerzeugung stattfinden. Manche Compiler beziehen sich auf eine Mitte, was das Verschwimmen von Grenzen wischen einem Front-End und einem Back-End eines Compilers widerspiegelt. Als Folge kann ein Verweis auf eine Insertion, Zuordnung, Erzeugung oder andere Operation eines Compilers in jeder/m beliebigen der vorgenannten Phasen oder Durchgänge erfolgen sowie auch in beliebigen anderen bekannten Phasen oder Durchgängen eines Compilers. Als veranschaulichendes Beispiel insertiert ein Compiler möglicherweise Operationen, Aufrufe, Funktionen usw. in einer oder mehreren Kompilationsphasen, wie z.B. Insertion von Aufrufen/Operationen in einer Front-Ende-Phase der Kompilation und dann Transformation der Aufrufe/Operationen in einen Code einer niedrigeren Ebene während einer Transformationsphase. Es gilt anzumerken, dass während einer dynamischen Kompilation ein Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe insertieren kann, sowie auch den Code zur Ausführung während der Laufzeit optimieren kann. Als spezifisches veranschaulichendes Beispiel kann ein Binärcode (schon kompilierter Code) dynamisch während der Laufzeit optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon umfassen.Larger compilers often include multiple phases, but most often these phases are contained within two general phases: (1) a front-end, i.e. where generally syntactic processing, semantic processing, and some transformation/optimization can take place, and (2) a back-end , i.e. where analysis, transformation, optimization and code generation generally take place. Some compilers refer to a middle, reflecting the blurring of boundaries between a compiler's front end and back end. As a result, a reference to an insertion, allocation, generation, or other operation of a compiler may occur in any of the foregoing phases or passes, as well as any other known phases or passes of a compiler. As an illustrative example, a compiler may insert operations, calls, functions, etc. at one or more compilation phases, such as inserting calls/operations at a front-end phase of compilation and then transforming the calls/operations to lower-level code during a transformation phase. It should be noted that during dynamic compilation, compiler code or dynamic optimization code may insert such operations/calls, as well as optimize the code for execution at runtime. As a specific illustrative example, binary code (already compiled code) may be dynamically optimized at runtime. Here, the program code may include dynamic optimization code, binary code, or a combination thereof.
Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie z.B. ein Binärübersetzer, eine Code entweder statisch oder dynamisch, um den Code zu optimieren und/oder zu übersetzen. Daher kann ein Verweis auf eine Ausführung eines Codes, eines Anwendungscodes, eines Programmcodes oder einer anderen Software-Umgebung auf folgendes verweisen: (1) auf eine Ausführung eines oder mehrerer Compilerprogramme, eines Optimierungscodeoptimierers oder eines Übersetzers entweder dynamisch oder statisch, um einen Programmcode zu kompilieren, Software-Strukturen zu erhalten, um andere Operationen durchzuführen, einen Code zu optimieren oder einen Code zu übersetzen; (2) auf eine Ausführung eines Hauptprogrammcodes, einschließlich Operationen/Aufrufen, wie z.B. eines Anwendungscodes, der optimiert/kompiliert wurde; (3) auf eine Ausführungsform eines anderen Programmcodes, wie z.B. Bibliotheken, die dem Hauptprogrammcode zugeordnet sind, um Software-Strukturen zu erhalten, um andere Software-bezogene Operationen auszuführen, oder um einen Code zu optimieren; oder (4) auf eine Kombination davon.Similar to a compiler, a translator, such as a binary translator, translates code either statically or dynamically to optimize and/or translate the code. Therefore, a reference to execution of code, application code, program code, or other software environment may refer to: (1) execution of one or more compiler programs, optimizing code optimizer, or translator, either dynamically or statically, to create program code compile, obtain software structures to perform other operations, optimize code, or translate code; (2) to execution of main program code, including operations/calls, such as application code that has been optimized/compiled; (3) to an embodiment of other program code, such as libraries associated with the main program code, to maintain software structures, to perform other software-related operations, or to optimize code; or (4) a combination thereof.
Auf
In verschiedenen Ausführungsformen wickelt Systemagentdomäne 2010 Leistungssteuerungsvorgänge und Leistungsverwaltung ab, sodass einzelne Einheiten von Domänen 2030 und 2060 (z.B. Kerne und/oder Grafikmaschinen) unabhängig steuerbar sind, um ein(en) geeigneten/s Leistungsmodus/ebene dynamisch zu betreiben (z.B. Aktiv-, Turbo-, Schlaf-, Ruhe-, Tiefschlaf- oder andere ähnliche Zustände wie bei fortgeschnittenen Leistungsschnittstellenkonfigurationen), im Hinblick auf die Aktivität (oder Inaktivität) in der jeweiligen Einheit. Jede der Domänen 2030 und 2060 kann mit unterschiedlicher Spannung und/oder Leistung laufen, und außerdem können die einzelnen Einheiten innerhalb der Domänen jeweils möglicherweise mit unabhängiger Frequenz und Spannung laufen. Es gilt anzumerken, dass zwar nur drei Domänen dargestellt sind, der Schutzumfang der vorliegenden Erfindung aber nicht auf den Zusammenhang von Nacktchips eingeschränkt ist und in anderen Ausführungsformen weitere Domänen vorhanden sein können.In various embodiments,
Wie dargestellt umfasst jeder Kern 2030 ferner Caches einer niedrigen Ebene zusätzlich zu verschiedenen Ausführungseinheiten und weiteren Verarbeitungselements. Hier sind die verschiedenen Kerne miteinander und mit einem geteilten Cachespeicher gekoppelt, der aus einer Vielzahl von Einheiten oder Scheiben aus zumindest einem Cache der letzten Ebene (LLC) 2040A-2040N gebildet ist; diese LLCs umfassen oft Speicher- und Cachesteuerungsfunktionalität und werden von den Kernen geteilt, sowie auch möglicherweise von den Grafikmaschinen.As shown, each core 2030 also includes low-level caches in addition to various execution units and other processing elements. Here, the various cores are coupled to each other and to a shared cache made up of a plurality of units or slices of at least one last level cache (LLC) 2040A-2040N; these LLCs often include memory and cache control functionality and are shared between the cores and possibly the graphics engines as well.
Wie zu sehen ist, koppelt eine Ringverbindung 2050 die Kerne aneinander und stelle eine Verbindung zwischen der Kerndomäne 2030, der Grafikdomäne 2060 und der Systemagentschaltung 2010 über eine Vielzahl von Ringstopps 2052A-2052N bereit, jeder bei einer Kopplung zwischen einem Kern und einer LLC-Scheibe. Wie in
Wie ferner dargestellt umfasst Systemagentdomäne 2010 eine Anzeigemaschine 2012, die zur Bereitstellung einer Steuerung von und einer Schnittstelle mit einer zugeordnete Anzeige dient. Systemagentdomäne 2010 kann weitere Einheiten umfassen, wie etwa: eine integrierte Speichersteuerung 2020, die eine Schnittstelle mit einem Systemspeicher (z.B. einem DRAM, implementiert mit mehreren DIMMs) bereitstellt; eine Kohärenzlogik 2022 zur Ausführung von Speicherkohärenzoperationen. Mehrere Schnittstellen können vorhanden sein, um eine Verbindung zwischen dem Prozessor einer anderen Schaltung bereitzustellen. In einer Ausführungsform wird beispielsweise zumindest eine direkte Medienschnittstelle (DMI) 2016 breitgestellt, sowie eine oder mehreren PCIe™-Schnittstellen 2014. Die Anzeigemaschine und diese Schnittstellen sind typischerweise über eine PCIe™-Brücke 2018 mit einem Speicher gekoppelt. Ferner können zur Bereitstellung von Kommunikation zwischen anderen Agenten, wie z.B. zusätzlichen Prozessoren oder anderer Schaltung, eine oder mehrere andere Schnittstellen bereitgestellt werden.As further illustrated,
Auf
Genauer gesagt umfasst in der Ausführungsform aus
Noch unter Bezugnahme auf
Auf
Ausführungsformen sind nicht auf Rechensysteme eingeschränkt. Alternative Ausführungsformen der vorliegenden Erfindung können in anderen Vorrichtungen, wie etwa Handvorrichtungen und eingebetteten Anwendungen, verwendet werden. Einige Beispiele für Handvorrichtungen umfassen Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und Hand-PCs. Eingebettete Anwendungen können eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), ein Ein-chip-System, NetzwerkRechner (NetPC), Beistellgeräte, NetzwerkHub, Weitverkehrsnetz- (WAN-) Schalter oder ein beliebiges anderes System, das eine oder mehrere Anweisungen gemäß zumindest einer Ausführungsform ausführen kann, umfassen.Embodiments are not limited to computing systems. Alternative embodiments of the present invention may be used in other devices, such as handheld devices and embedded applications. Some examples of handheld devices include cell phones, internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Embedded applications may be a microcontroller, digital signal processor (DSP), system on chip, network computer (NetPC), set-top box, network hub, wide area network (WAN) switch, or any other system that implements one or more instructions according to at least one embodiment can perform include.
In dieser veranschaulichten Ausführungsform umfasst der Prozessor 2202 eine oder mehrere Ausführungseinheiten 2208 zur Implementierung eines Algorithmus, der zur Ausführung zumindest einer Anweisung dient. Eine Ausführungsform kann im Zusammenhang mit einem einzelnem Prozessortischgerät oder Serversystem beschrieben sein, aber alternative Ausführungsformen können in einem Mehrprozessorsystem enthalten sein. System 2200 ist ein Beispiel für eine „Hub“-Systemarchitektur. Das Rechensystem 2200 umfasst einen Prozessor 2202 zur Verarbeitung von Datensignalen. Der Prozessor 2202 kann in einem veranschaulichenden Beispiel etwa einen Mikroprozessor eines Rechners mit komplexem Anweisungssatz (CISC), einen Mikroprozessor eines Rechners mit reduziertem Anweisungssatz (RISC), einen Mikroprozessor für sehr lange Anweisungswörter (VLIW), einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder eine beliebige andere Prozessorvorrichtung, wie z.B. einen Digitalsignalprozessor umfassen. Der Prozessor 2202 ist mit einem Prozessorbus 2210 gekoppelt, der Datensignale zwischen dem Prozessor 2202 und anderen Komponenten im System 2200 überträgt. Die Elemente von System 2200 (z.B. Grafikbeschleuniger 2212, Speichersteuerungs-Hub 2216, Speicher 2220, I/O-Steuerungs-Hub 2224, Drahtlossendeempfänger 2226, Flash-BIOS 2228, Netzwerk-Steuerung 2234, Audio-Steuerung 2236, serieller Erweiterungsanschluss 2238, I/O-Steuerung 2240 usw.) führen ihre herkömmlichen Funktionen aus, die Fachleuten auf dem Gebiet der Erfindung wohlbekannt sind.In this illustrated embodiment, the
In einer Ausführungsform umfasst der Prozessor 2202 einen internen Level-1-(L1-) Cache-Speicher 2204. Je nach Architektur kann der Prozessor 2202 einen einzelnen internen Cache oder mehrere Ebenen von internen Caches aufweisen. Andere Ausführungsformen umfassen eine Kombination aus sowohl internen als auch externen Caches, je nach jeweiliger Implementierung und Anforderungen. Registerdatei 2206 dient zum Speichern von unterschiedlichen Arten von Daten in verschiedenen Registern, einschließlich Ganzzahlregistern, Gleitkommaregistern, Vektorregistern, Bank-Register, Schattenregister, Checkpoint-Register, Statusregister und Anweisungszeigerregister.In one embodiment, the
Ausführungseinheit 2208, einschließlich Logik zur Ausführung von Ganzzahl- und Gleitkommaoperationen, liegt ebenfalls im Prozessor 2202. Der Prozessor 2202 umfasst in einer Ausführungsform einen Mikrocode- (ucode-) ROM zum Speichern eines Mikrocodes, der bei Ausführung dazu dient, Algorithmen für bestimmte Makroanweisungen auszuführen oder komplexe Szenarien handzuhaben. Hier ist ein Mikrocode möglicherweise aktualisierbar, um Logikfehler/korrekturen für Prozessor 2202 handzuhaben. Bei einer Ausführungsform umfasst Ausführungseinheit 2208 Logik zur Abwicklung eines gepackten Anweisungssatzes 2209. Durch Aufnahme des gepackten Anweisungssatzes 2209 in den Anweisungssatz eines Allzweckprozessors 2202, gemeinsam mit einer zugeordneten Schaltung zur Ausführung der Anweisungen, können die von vielen Multimediaanwendungen verwendeten Operationen unter Verwendung von gepackten Daten in einem Allzweckprozessor 2202 ausgeführt werden. Somit werden viele Multimediaanwendungen beschleunigt und effizienter ausgeführt, indem die gesamte Breite eines Prozessordatenbusses zur Ausführung von Operationen an gepackten Daten verwendet wird. Dies hebt möglicherweise die Notwendigkeit auf, kleinere Dateneinheiten über den Prozessordatenbus zu übertragen, um eine oder mehrere Operationen, ein Element nach dem anderen auszuführen.Execution unit 2208, including logic for performing integer and floating point operations, also resides within
Alternative Ausführungsformen einer Ausführungseinheit 2208 können auch in Mikrosteuerungen, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen eingesetzt werden. System 2200 umfasst einen Speicher 2220. Speicher 2220 umfasst eine dynamische Direktzugriffsspeicher- (DRAM-) Vorrichtung, eine statische Direktzugriffsspeicher- (SRAM-) Vorrichtung, Eine Flashspeichervorrichtung oder eine andere Speichervorrichtung. Speicher 2220 speichert Anweisungen und/oder Daten, die von Datensignalen dargestellt werden, die vom Prozessor 2202 auszuführen sind.Alternative embodiments of an execution unit 2208 may also be used in microcontrollers, embedded processors, graphics devices, DSPs, and other types of logic circuits.
Es gilt anzumerken, dass beliebige der oben genannten Merkmale oder Aspekte der Erfindung an einer oder mehreren der in
Auf
Währen nur zwei Prozessoren 2370, 2380 dargestellt sind, versteht sich, dass der Schutzumfang der vorliegenden Erfindung nicht darauf eingeschränkt ist. In anderen Ausführungsformen können ein oder mehrere weitere Prozessoren in einem gegebenen Prozessor enthalten sein.While only two
Prozessoren 2370 und 2380 sind mit integrierten Speichersteuerungseinheiten 2372 bzw. 2382 dargestellt. Prozessor 2370 umfass tauch als Teil seiner Bussteuerungseinheiten Punkt-zu-Punkt- (P-P-) Schnittstellen 2376 und 2378; auf ähnliche Weise umfasst der zweite Prozessor 2380 P-P-Schnittstellen 2386 und 2388. Prozessoren 2370, 2380 können Informationen über eine Punkt-zu-Punkt- (P-P-) Schnittstelle 2350 unter Verwendung von P-P-Schnittstellenschaltungen 2378, 2388 austauschen. Wie in
Prozessoren 2370, 2380 tauschen jeweils Informationen mit einem Chipsatz 2390 über einzelne P-P-Schnittstellen 2352, 2354 aus, unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 2376, 2394, 2386, 2398. Chipsatz 2390 tauscht ebenfalls Informationen mit einer Hochleistungsgrafikschaltung 2338 über eine Schnittstellenschaltung 2392 über eine Hochleistungsgrafikverbindung 2339 aus.
Ein geteilter Cache (nicht dargestellt) kann in einem Prozessor oder außerhalb beider Prozessoren enthalten sein; ebenfalls mit den Prozessoren über eine P-P-Verbindung verbunden, sodass lokale Cacheinformationen von einem der oder von beiden Prozessoren im geteilten Cache gespeichert werden können, wenn ein Prozessor in einen Niedrigenergiemodus gesetzt wird.A shared cache (not shown) may reside on one processor or external to both processors; also connected to the processors via a PP link so that local cache information from either or both processors can be stored in the shared cache when a processor is placed in a low power mode.
Chipsatz 2390 kann mit einem ersten Bus 2316 über eine Schnittstelle 2396 gekoppelt sein. In einer Ausführungsform kann der erste Bus 2316 ein Peripherkomponentenverbindungs- (PCI) Bus oder ein Bus wie ein PCI-Express-Bus oder ein anderer I/O-Verbindungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Erfindung nicht darauf eingeschränkt ist.
Wie in
Als nächstes wird auf
Hier umfasst SOC 2400 2 Kerne - 2406 und 2407. Ähnlich wie oben erläutert können Kerne 2406 und 2407 mit einer Anweisungssatzarchitektur konform sein, wie z.B. einem Prozessor auf Basis eines Intel® Architektur Core™, einem Prozessor von Advanced Micro Devices, Inc. (AMD), einem Prozessor auf MIPS-Basis, einem Prozessor auf ARM-Basis oder einem Kunden sowie von Lizenznehmern oder Adoptern davon. Kerne 2406 und 2407 sind mit Cachesteuerung 2408 gekoppelt, die Bus-Schnittstelleneinheit 2409 und L2-Cache 2411 zugeordnet ist, um mit anderen teilen von System 2400 zu kommunizieren. Verbindung 2410 umfasst eine On-Chip-Verbindung, wie z.B. IOSF, AMBA, oder eine andere oben erläuterte Verbindung, die möglicherweise einen oder mehrere der hierin beschriebenen Aspekte implementiert.Here,
Schnittstelle 2410 stellt Kommunikationskanäle für die anderen Komponenten bereit, wie z.B. ein Teilnehmeridentitätsmodul (SIM) 2430, um eine Schnittstelle mit einer SIM-Karte bereitzustellen, ein Boot-Rom 2435 zum Halten eines Boot-Codes zur Ausführung durch Kerne 2406 und 2407 zur Initialisierung und zum Booten von SOC 2400, eine SDRAM-Steuerung 2440 um eine Schnittstelle mit einem externen Speicher (e.g. DRAM 2460) bereitzustellen, eine Flashsteuerung 2445, um eine Schnittstelle mit einem nichtflüchtigen Speicher (z.B. Flash 2465) bereitzustellen, eine periphere Steuerung 2450 (z.B. serielle periphere Schnittstelle), um eine Schnittstelle mit Periphergeräten bereitzustellen. Videocodecs 2420 und Videoschnittstelle 2425, um Eingaben anzuzeigen und zu empfangen (e.g. Berührungseingabe), GPU 2415, um grafikbezogene Berechnungen auszuführen usw. Jede dieser Schnittstellen kann hierin beschriebene Aspekte der Erfindung inkorporieren.
Darüber hinaus zeigt das System Periphergeräte zur Kommunikation, wie z.B. ein Bluetooth-Modul 2470, 3G-Modem 2475, GPS 2485 und WiFi 2485. Wie oben angemerkt gilt, dass ein UE Funk zur Kommunikation umfasst. Daher sind nicht alle dies peripheren Kommunikationsmodule erforderlich. In einem UE muss jedoch irgendeine Form von Funk zur externen Kommunikation enthalten sein.In addition, the system shows peripherals for communication, such as a
Die vorliegende Erfindung wurde zwar in Bezug auf eine begrenzte Zahl von Ausführungsformen beschrieben, Fachleute auf dem Gebiet der Erfindung werden jedoch zahlreiche Modifikationen und Variationen davon kennen. Es ist vorgesehen, dass die beiliegenden Ansprüche alle solche Modifikationen und Variationen einschließen, die innerhalb des wahren Geists und Schutzumfangs der vorliegenden Erfindung liegen.While the present invention has been described in terms of a limited number of embodiments, those skilled in the art will recognize numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of the present invention.
Ein Design kann verschiedene Stufen durchlaufen, von der Schaffung über die Simulation bis hin zur Produktion. Daten, die ein Design darstellen, können das Design auf unterschiedliche Arten darstellen. Erstens kann, wie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionellen Beschreibungssprache dargelegt werden. Außerdem kann ein Schaltungsebenenmodell mit Logik- und/oder Transistor-Gates in manchen Stufen des Designvorgangs erzeugt werden. Darüber hinaus erreichen die meisten Designs in einer Stufe eine Datenebene, welche die physische Platzierung von verschiedenen Vorrichtungen im Hardware-Modell darstellen. Wenn herkömmliche Halbleiterherstellungsverfahren eingesetzt werden, können die Daten, die das Hardware-Modell darstellen, die Daten sein, welche die Gegenwart oder Abwesenheit verschiedener Merkmale auf unterschiedlichen Masken schichten für Masken spezifizieren, die zur Herstellung der integrierten Schaltung eingesetzt werden. In jeder Darstellung des Designs könne die Daten in jeder beliebigen Form eines maschinenlesbaren Mediums gespeichert werden. Ein Internspeicher oder ein magnetischer oder optischer Speicher, wie z.B. eine Diskette, können das maschinenlesbare Medium zur Speicherung von Informationen sein, die ober optische oder elektrischen Wellen überragen werden, die moduliert oder auf anderen Weise zur Übertragung solcher Informationen erzeugt werden. Wenn eine elektrische Trägerwelle, die den Code oder das Design angibt oder trägt, übertragen wird, sodass Kopieren, Puffern oder eine Neuübertragung des elektrischen Signals durchgeführt wird, wird eine neue Kopie erstellt. Somit kann ein Kommunikationsprovider oder ein Netzwerkprovider auf einem flüchtigen, maschinenlesbaren Medium zumindest temporär einen Artikel, wie z.B. Informationen, die in einer Trägerwelle kodiert sind und die Techniken von Ausführungsformen der vorliegenden Erfindung darstellen, speichern.A design can go through different stages, from creation to simulation to production. Data representing a theme can represent the theme in different ways. First, as is useful in simulations, the hardware can be represented using a hardware description language or another functional description language. Additionally, a circuit level model with logic and/or transistor gates may be generated at some stages of the design process. In addition, most designs at some stage reach a data plane that represents the physical placement of various devices in the hardware model. When conventional semiconductor fabrication techniques are employed, the data representing the hardware model may be the data specifying the presence or absence of various features on different mask layers for masks used to fabricate the integrated circuit. In each representation of the design, the data can be stored in any form of machine-readable medium. Internal storage, or magnetic or optical storage such as a floppy disk, may be the machine-readable medium for storing information transmitted via optical or electrical waves that are modulated or otherwise generated to transmit such information. When an electrical carrier wave that indicates or carries the code or design is transmitted, so that copying, buffering, or retransmission of the electrical signal is performed, a new copy is made. Thus, a communications provider or a network provider may store on a transient, machine-readable medium, at least temporarily, an item, such as information, encoded in a carrier wave embodying techniques of embodiments of the present invention.
Ein Modul, wie hierin verwendet, steht für jede beliebige Kombination aus Hardware, Software und/oder Firmware. Beispielsweise umfasst ein Modul Hardware, wie z.B. eine Mikrosteuerung, die einem nichtflüchtigen Medium zugeordnet ist, um einen Code zu speichern, der angepasst ist, um von der Mikrosteuerung ausgeführt zu werden. Daher bezieht sich ein Verweis auf ein Modul in einer Ausführungsform auf die Hardware, die spezifisch konfiguriert ist, um den Code, der in einem nichtflüchtigen Medium gehalten wird, zu erkennen und/oder auszuführen. Ferner bezieht sich in einer weiteren Ausführungsform die Verwendung eines Moduls darauf, dass das nichtflüchtige Medium den Code enthält, der spezifisch angepasst ist, um von der Mikrosteuerung ausgeführt zu werden, um vorbestimmte Operationen auszuführen. Und wie abgeleitet werden kann sich in einer weiteren Ausführungsform die Bezeichnung Modul (in diesem Beispiel) auf die Kombination der Mikrosteuerung und des nichtflüchtigen Mediums beziehen. Herkömmlicherweise variieren Modulgrenzen, die als separat dargestellt sind, und überlappen sich möglicherweise. Beispielsweise können sich ein erstes und zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während möglicherweise manche Hardware, Software oder Firmware einbehalten wird. In einer Ausführungsform umfasst die Verwendung der Bezeichnung Logik Hardware, wie z.B. Transistoren, Register oder andere Hardware, wie z.B. programmierbare Logikvorrichtungen.A module, as used herein, means any combination of hardware, software, and/or firmware. For example, a module includes hardware, such as a microcontroller, associated with a non-transitory medium for storing code adapted to be executed by the microcontroller. Therefore, in one embodiment, a reference to a module refers to hardware that is specifically configured to recognize and/or execute code held in a non-transitory medium. Furthermore, in another embodiment, the use of a module refers to the non-transitory medium containing the code that is specifically adapted to be executed by the microcontroller to perform predetermined operations. And as can be deduced, in another embodiment, the term module (in this example) may refer to the combination of the microcontroller and the non-transitory medium. Conventionally, module boundaries presented as separate vary and may overlap. For example, a first and second module may share hardware, software, firmware, or a combination thereof, while possibly retaining some hardware, software, or firmware. In one embodiment, use of the term logic includes hardware such as transistors, registers, or other hardware such as programmable logic devices.
Die Verwendung der Phrase „konfiguriert, um“ bezieht sich in einer Ausführungsform auf die Anordnung, den Zusammenbau, die Herstellung, das Anbieten zum Verkauf, das Importieren und/oder das Entwerfen eines Geräts, einer Hardware, einer Logik oder eines Elements zur Ausführung einer bezeichneten oder bestimmten Aufgabe. In diesem Beispiel ist ein Gerät oder Element davon, das nicht läuft, trotzdem „konfiguriert, um“ eine bezeichnete Aufgabe auszuführen, wenn es entworfen, gekoppelt und/oder verbunden ist, um die bezeichnete Aufgabe auszuführen. Als rein veranschaulichendes Beispiel kann ein Logik-Gate eine 0 oder eine 1 während eines Betriebs bereitstellen. Aber ein Logikgatter, das „konfiguriert“ ist, um ein Einschaltsignal an einen Taktgeber bereitzustellen, umfasst nicht jedes mögliche Logikgatter, das eine 1 oder 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das so Weise gekoppelt ist, dass während des Betriebs die 1 oder 0 ausgegeben wird, um den Taktgeber einzuschalten. Es sei erneut darauf hingewiesen, dass die Verwendung der Bezeichnung „konfiguriert, um“ keinen Betrieb erfordert, sondern sich stattdessen auf den latenten Zustand eines Geräts, einer Hardware und/oder eines Elements konzentriert, wobei das Gerät, die Hardware und/oder das Element so entworfen ist, dass es im eine bestimmte Aufgabe ausführt, wenn das Gerät, die Hardware und/oder das Element in Betrieb ist.The use of the phrase "configured to," in one embodiment, refers to arranging, assembling, manufacturing, offering for sale, importing, and/or designing a device, hardware, logic, or element to perform a designated or specific task. In this example, a device or element thereof that is not running is nevertheless "configured to" perform a designated task if it is designed, paired, and/or connected to perform the designated task. As a purely illustrative example, a logic gate may provide a 0 or a 1 during operation. But a logic gate that is “configured” to provide an enable signal to a clock does not include every possible logic gate that can provide a 1 or 0. Instead, the logic gate is one that is coupled in such a way that, during operation, the 1 or 0 is output to turn on the clock. Again, the use of the term "configured to" does not imply an operation, but instead focuses on the latent state of a device, hardware, and/or item, where the device, hardware, and/or item is designed to perform a specific task when the device, hardware and/or item is in operation.
Ferner bezieht sich die Verwendung der Phrasen „um zu“, „in der Lage zu“ oder „betreibbar, um“ in einer Ausführungsform auf ein Gerät, eine Logik, eine Hardware und/oder ein Element, das entworfen ist, um die Verwendung des Geräts, der Logik, der Hardware und/oder des Elements auf eine bestimmte Weise zu ermöglichen. Wie oben sei darauf hingewiesen, dass die Verwendung von um zu, in der Lage zu, betreibbar, um, sich in einer Ausführungsform auf den latenten Zustand eines Geräts, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei das Gerät, die Logik, die Hardware und/oder das Element nicht in Betrieb ist, aber so entworfen ist, dass es die Verwendung eines Geräts auf eine bestimmte Weise ermöglicht.Further, in one embodiment, use of the phrases "to," "capable of," or "operable to" refers to a device, logic, hardware, and/or element designed to enable use of the enable the device, logic, hardware and/or element in a specific way. As above, it should be noted that the use of to, able to, operable to, in one embodiment refers to the latent state of a device, logic, hardware, and/or element, where the device, the Logic, the hardware and/or element is not operational but is designed to allow a device to be used in a specific way.
Ein Wert wie hierin beschrieben umfasst jede beliebige bekannte Darstellung einer Zahl, eines Zustands, einer Logik oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikebenen, Logikwerten oder logischen Werten auch als 1en und 0en bezeichnet, was einfach binäre logische Zustände darstellt. Beispielsweise steht eine 1 für einen hohen logischen Zustand und 0 für einen niedrigen logischen Zustand. In einer Ausführungsform kann eine Speicherzelle, wie z.B. eine Transistor- oder Flashzelle, in der Lage sein, einen einzigen logischen Wert oder mehrere logische Werte zu halten. Andere Darstellungen von Werten in Rechnersystemen wurden jedoch ebenfalls verwendet. Beispielsweise kann auch die Dezimalzahl zehn als binärer Wert von 1010 und als hexadezimaler Buchstabe A dargestellt sein. Daher umfasst ein Wert jede Darstellung von Informationen, die in einem Rechnersystem aufgenommen werden können.A value, as described herein, includes any known representation of a number, state, logic, or binary logic state. Often the use of logic levels, logic values, or logical values is also referred to as 1's and 0's, which simply represent binary logic states. For example, a 1 represents a high logic state and a 0 represents a low logic state. In one embodiment, a memory cell, such as a transistor or flash cell, may be capable of holding a single logical value or multiple logical values. However, other representations of values in computer systems have also been used. For example, the decimal number ten can also be represented as a binary value of 1010 and the letter A in hexadecimal. Thus, a value includes any representation of information that can be held in a computer system.
Darüber hinaus können Zustände durch Werte oder Teile von Werten repräsentiert werden. Als ein Beispiel kann ein erster Wert wie zum Beispiel ein logischer Wert einen Standard- oder Anfangszustand repräsentieren, während ein zweiter Wert, wie zum Beispiel logisch null, einen Nicht-Standardzustand repräsentieren kann. Zusätzlich dazu betreffen die Begriffe Rückstellung und Festsetzen in einer Ausführungsform einen Standardbeziehungsweise einen aktualisierten Wert oder Zustand. Zum Beispiel umfasst ein Standardwert potentiell einen hohen logischen Wert, d. h. eine Rückstellung, während ein aktualisierter Wert potentiell einen niedrigen logischen Wert umfasst, d.h. eine Festsetzung. Es ist zu beachten, dass eine beliebige Kombination von Werten genutzt werden kann, um eine beliebige Anzahl von Zuständen zu repräsentieren.In addition, states can be represented by values or parts of values. As an example, a first value, such as a logical value, may represent a default or initial state, while a second value, such as logical zero, may represent a non-default state. Additionally, in one embodiment, the terms reset and set refer to a default and updated value or state, respectively. For example, a default value potentially includes a high logical value, i. H. a reset, while an updated value potentially includes a low logic value, i.e., a fix. Note that any combination of values can be used to represent any number of states.
Die oben erläuterten Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Code können über Anweisungen oder Code implementiert werden, die/der auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind/ist, die/der von einem Verarbeitungselement ausgeführt werden können/kann. Ein nichtflüchtiges, maschinenzugängliches/-lesbares Medium umfasst jeglichen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die von einer Maschine wie z. B. einem Computer oder elektronischen System lesbar ist. Zum Beispiel umfasst ein nichtflüchtiges, maschinenzugängliches Medium Direktzugriffspeicher (RAM) wie zum Beispiel statische RAM (SRAM) oder dynamische RAM (DRAM); ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; andere Formen von Speichervorrichtungen, um Informationen festzuhalten, die von vorübergehenden (sich ausbreitenden) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen wurden; etc., die von den nichtflüchtigen Medien zu unterscheiden sind, die Informationen von diesen empfangen können.The method, hardware, software, firmware, or code embodiments discussed above may be implemented via instructions or code stored on a machine-accessible, machine-readable, computer-accessible, or computer-readable medium, executable by a processing element can. A non-transitory machine-accessible/readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine, such as a computer. B. a computer or electronic system is readable. For example, a non-volatile, machine-accessible medium includes random access memory (RAM), such as static RAM (SRAM) or dynamic RAM (DRAM); ROME; a magnetic or optical storage medium; flash memory devices; electrical storage devices; optical storage devices; acoustic storage devices; other forms of storage devices to retain information received from transient (propagating) signals (e.g., carrier waves, infrared signals, digital signals); etc., to be distinguished from the non-volatile media capable of receiving information from them.
Anweisungen, die verwendet werden, um Logik zu programmieren, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Speichers in dem System wie z. B. einem DRAM, Cache, Flash-Speicher oder anderen Speicher gespeichert sein. Darüber hinaus können die Anweisungen über ein Netzwerk oder mittels anderer computerlesbarer Medien gesendet werden. Daher kann ein maschinenlesbares Medium einen beliebigen Mechanismus umfassen, um Informationen in einer Form zu speichern oder zu übertragen, die von einer Maschine (z. B. einem Computer) lesbar ist, ist aber nicht beschränkt auf Disketten, optische Datenträger, Compact-Disc-Festwertspeicher (CD-ROMs), und magneto-optische Datenträger, Festwertspeicher (ROMs), Direktzugriffspeicher (RAM), löschbare programmierbare Festwertspeicher (EPROM), elektrisch löschbare programmierbare Festwertspeicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder einen physischen, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet mittels elektrischen, optischen, akustischen oder anderen Formen von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen usw.) verwendet wird. Dementsprechend umfasst ein computerlesbares Medium jegliche Art maschinenlesbares Medium, das dazu geeignet ist, elektronische Anweisungen oder Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form zu speichern oder zu übertragen.Instructions used to program logic to perform embodiments of the invention may reside within memory in the system, such as a memory. B. a DRAM, cache, flash memory or other memory can be stored. Additionally, the instructions may be sent over a network or other computer-readable media. Therefore, a machine-readable medium may include any mechanism to store or transmit information in a form that is readable by a machine (e.g., a computer), but is not limited to floppy disks, optical disks, compact disc Read-only memories (CD-ROMs), and magneto-optical data carriers, read-only memories (ROMs), random access memories (RAM), erasable programmable read-only memories (EPROM), electrically erasable programmable read-only memories (EEPROM), magnetic or optical cards, flash memory or a physical, machine-readable storage used in the transmission of information over the Internet using electrical, optical, acoustic or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). Accordingly, a computer-readable medium includes any type of machine-readable medium capable of storing or transmitting electronic instructions or information in a machine (e.g., computer) readable form.
Die folgenden Beispiele betreffen Ausführungsformen, die mit dieser Beschreibung in Einklang sind. Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren umfassen, um Daten auf einer oder mehreren Datenbahnen einer physikalischen Verbindung zu empfangen, ein gültiges Signal auf einer weiteren der Bahnen der physikalischen Verbindung zu empfangen, welches identifiziert, dass gültige Daten der Zusicherung des gültigen Signals auf der einen oder mehreren Datenbahnen nachfolgen sollen, und um ein Datenstromsignal auf einer weiteren der Bahnen der physikalischen Verbindung zu empfangen, welches eine Art der Daten auf der einen oder mehreren Datenbahnen identifiziert.The following examples relate to embodiments consistent with this description. One or more embodiments may include an apparatus, system, machine-readable memory, machine-readable medium, hardware and/or software-based logic, and method for receiving data on one or more data lanes of one physical connection, a valid signal on another of the lanes of the physical link identifying that valid data is to follow the assertion of the valid signal on the one or more data lanes, and to receive a data stream signal on another of the lanes of the physical link identifying a type of the data on the identified one or more lanes.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein Verbindungszustandsmaschinen-Verwaltungssignal über eine weitere der Bahnen der physikalischen Verbindung senden.In at least one example, the physical layer logic is also to send a link state machine management signal over another of the lanes of the physical link.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein Seitenbandsignal über eine Seitenbandverbindung senden.In at least one example, the physical layer logic is further to transmit a sideband signal over a sideband link.
In zumindest einem Beispiel umfasst die Art ein Protokoll, das den Daten zugeordnet ist, wobei das Protokoll eines aus einer Vielzahl von Protokollen ist, welche die physikalische Verbindung nutzen.In at least one example, the type includes a protocol associated with the data, where the protocol is one of a variety of protocols that utilize the physical connection.
In zumindest einem Beispiel umfasst die Art Verbindungsschichtpaketdaten.In at least one example, the type includes link layer packet data.
In zumindest einem Beispiel sollen die Daten Verbindungszustandsübergänge für die physikalische Verbindung ermöglichen.In at least one example, the data is intended to enable link state transitions for the physical link.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner das Datenstromsignal dekodieren, um zu identifizieren, welches einer Vielzahl unterschiedlicher Protokolle auf die Daten zutrifft.In at least one example, the physical layer logic is further to decode the data stream signal to identify which of a plurality of different protocols the data applies to.
In zumindest einem Beispiel soll die physikalische Schicht die Daten ferner an Oberschichtprotokolllogik weiterleiten, die einem bestimmten einen der in dem Datenstromsignal identifizierten Vielzahl von Protokollen entspricht.In at least one example, the physical layer is to further forward the data to upper layer protocol logic conforming to a particular one of the plurality of protocols identified in the data stream signal.
In zumindest einem Beispiel umfasst die Vorrichtung zusätzlich zu der physikalischen Schichtlogik Verbindungsschichtlogik und andere Oberschichtlogik jedes der Vielzahl von Protokollen.In at least one example, the device includes, in addition to the physical layer logic, link layer logic and other upper layer logic of each of the plurality of protocols.
In zumindest einem Beispiel umfasst die Vielzahl von Protokollen zumindest zwei aus einer Peripherkomponentenverbindung (PCI), PCI-Expressverbindung (PCIe), Intel-In-Die-Verbindung (IDI), und Quick-Path-Verbindung (QPI).In at least one example, the plurality of protocols includes at least two of Peripheral Component Interconnect (PCI), PCI Express Interconnect (PCIe), Intel In-Die Interconnect (IDI), and Quick Path Interconnect (QPI).
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Fehler in jedem der Vielzahl von Protokollen bestimmen.In at least one example, the physical layer logic is to further determine errors in each of the plurality of protocols.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Fehler in einem oder mehreren aus dem gültigen Signal und dem Datenstromsignal bestimmen.In at least one example, the physical layer logic is to further determine errors in one or more of the valid signal and the data stream signal.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein Datenfenster für auf den Datenbahnen zu sendende Daten definieren, und das Datenfenster entspricht dem gültigen Signal.In at least one example, the physical layer logic shall further define a data window for data to be sent on the data lanes, and the data window corresponds to the valid signal.
In zumindest einem Beispiel entspricht das Datenfenster einem Datensymbol, und das gültige Datensignal soll in einem Fenster zugesichert werden, das dem Fenster, in dem die Daten gesendet werden sollen, direkt vorausgeht.In at least one example, the data window corresponds to a data symbol, and the valid data signal is to be asserted in a window immediately preceding the window in which the data is to be sent.
In zumindest einem Beispiel sollen Daten auf Datenbahnen in einem Fenster, das einem vorausgehenden Fenster direkt nachfolgt, in dem das gültige Signal nicht zugesichert ist, ignoriert werden.In at least one example, data on data lanes in a window immediately following a preceding window in which the valid signal is not asserted should be ignored.
In zumindest einem Beispiel entspricht das Fenster einer Byte-Zeitdauer.In at least one example, the window corresponds to a byte period.
In zumindest einem Beispiel wird jedes aus dem gültigen Datensignal, Daten und dem Datenstromsignal gemäß für die physikalische Verbindung definierten Datenfenstern abgeglichen.In at least one example, each of the valid data signal, data, and the data stream signal is matched according to data windows defined for the physical link.
In zumindest einem Beispiel soll das Datenstromsignal während desselben Fensters wie die Daten gesendet werden.In at least one example, the data stream signal is intended to be sent during the same window as the data.
In zumindest einem Beispiel verbindet die physikalische Verbindung zwei Vorrichtungen in einem Mehrchipgehäuse.In at least one example, the physical connection connects two devices in a multi-chip package.
In zumindest einem Beispiel soll die physikalische Schicht ferner Signale auf den Bahnen der physikalischen Verbindung neu zentrieren.In at least one example, the physical layer is also intended to re-center signals on the lanes of the physical link.
In zumindest einem Beispiel sollen die Bahnen basierend auf dem gültigen Signal neu zentriert werden.In at least one example, the lanes are to be re-centered based on the valid signal.
In zumindest einem Beispiel wird ein Datenstromsignal auf einer dedizierten Datenstromsignalbahn der Datenverbindung während eines zweiten Fensters empfangen, das Datenstromsignal wird dekodiert und ein Protokoll, das den Daten zugeordnet ist, wird aus dem Dekodieren des Datenstromsignals bestimmt.In at least one example, a data stream signal is received on a dedicated data stream signal path of the data connection during a second window, the data stream signal is decoded, and a protocol associated with the data is determined from the decoding of the data stream signal.
In zumindest einem Beispiel ist die Datenverbindung geeignet, um Daten einer Vielzahl unterschiedlicher Protokolle zu übertragen.In at least one example, the data link is capable of transmitting data of a variety of different protocols.
In zumindest einem Beispiel werden Daten identifiziert, die auf der Datenverbindung gesendet werden sollen, ein gültiges Signal wird während eines bestimmten Zeitfensters, welches den zu sendenden Daten entspricht, auf einer ausgehenden gültigen Signalbahn der Datenverbindung gesendet, und die Daten werden während eines weiteren Fensters, das dem bestimmten Fenster direkt nachfolgt, auf dedizierten ausgehenden Datenbahnen gesendet.In at least one example, data is identified to be sent on the data link, a valid signal is sent on an outgoing valid signal lane of the data link during a particular time window corresponding to the data to be sent, and the data is sent during another window, immediately succeeding the particular window is sent on dedicated outbound lanes.
In zumindest einem Beispiel umfasst die Vielzahl von Datenbahnen ferner eine dedizierte Verbindungszustandsmaschinen-Seitenbandbahn.In at least one example, the plurality of data lanes further includes a dedicated connection state machine sideband lane.
In zumindest einem Beispiel umfasst die erste Vorrichtung einen ersten Nacktchip in einem Gehäuse, und die zweite Vorrichtung umfasst einen zweiten Nacktchip in dem Gehäuse.In at least one example, the first device includes a first die in a package and the second device includes a second die in the package.
In zumindest einem Beispiel umfasst die erste Vorrichtung eine Vorrichtung auf dem Gehäuse, und die zweite Vorrichtung umfasst eine Vorrichtung, die nicht auf dem Gehäuse ist.In at least one example, the first device comprises a device on the housing and the second device comprises a device that is not on the housing.
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um Daten zu identifizieren, die auf dedizierten Datenbahnen einer Datenverbindung gesendet werden sollen, um während eines bestimmten Fensters, welches auf der Datenverbindung zu sendenden Daten entspricht, ein gültiges Signal auf einer dedizierten gültigen Signalbahn der Datenverbindung zu senden, um die Daten während eines weiteren Fensters, das dem bestimmten Fenster direkt nachfolgt, auf dedizierten Datenbahnen der Datenverbindung zu senden, und um ein Datenstromsignal auf einer Datenstromsignalverbindung zu senden, die kodiert ist, um eine Art der Daten zu identifizieren.One or more embodiments may provide an apparatus, system, machine-readable memory, machine-readable medium, hardware and/or software-based logic, and method for identifying data to be sent on dedicated data lanes of a data connection in order to during a particular window corresponding to data to be sent on the data link, to send a valid signal on a dedicated valid signal lane of the data link, to send the data on dedicated lanes of the data link during a further window immediately following the particular window, and to send a To send a data stream signal on a data stream signal link that is encoded to identify a type of data.
In zumindest einem Beispiel soll das gültige Signal angeben, dass Daten auf den Datenbahnen während des anderen Fensters gültige Daten sind.In at least one example, the valid signal is intended to indicate that data on the data lanes is valid data during the other window.
In zumindest einem Beispiel umfasst die Datenstromsignalverbindung eine dedizierte Datenstromsignalverbindung.In at least one example, the data streaming signal connection comprises a dedicated data streaming signal connection.
In zumindest einem Beispiel ist das Datenstromsignal geeignet, um zu identifizieren, ob den Daten ein bestimmtes Protokoll zugeordnet ist.In at least one example, the data stream signal is operable to identify whether a particular protocol is associated with the data.
In zumindest einem Beispiel ist die Logik der physikalischen Schicht in einer gemeinsamen physikalischen Schicht umfasst, und eine Vielzahl von Protokollen nutzt die gemeinsame physikalische Schicht, und das bestimmte Protokoll ist in der Vielzahl von Protokollen umfasst.In at least one example, the physical layer logic is included in a common physical layer, and a plurality of protocols share the common physical layer, and the particular protocol is included in the plurality of protocols.
In zumindest einem Beispiel umfasst die Vielzahl von Protokollen zwei oder mehr aus PCI, PCIe, IDI und QPI.In at least one example, the plurality of protocols includes two or more of PCI, PCIe, IDI, and QPI.
In zumindest einem Beispiel ist das Datenstromsignal ferner geeignet, um zu identifizieren, ob die Daten Verbindungsschichtpakete umfassen.In at least one example, the data stream signal is further adapted to identify whether the data comprises link layer packets.
In zumindest einem Beispiel ist das Datenstromsignal ferner geeignet, um zu identifizieren, ob die Seitenbanddaten.In at least one example, the data stream signal is further adapted to identify whether the sideband data.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner den Datenart bestimmen und das Datenstromsignal kodieren, um die bestimmte Art zu identifizieren.In at least one example, the physical layer logic is to further determine the data type and encode the data stream signal to identify the particular type.
In zumindest einem Beispiel soll die physikalische Schicht ferner Verbindungszustandsmaschine-Seitenband- (LSM_SB-) Signale auf einer dedizierten LSM_SB-Bahn der Datenverbindung senden.In at least one example, the physical layer shall also send link state machine sideband (LSM_SB) signals on a dedicated LSM_SB lane of the data link.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Seitenbandsignale auf einer von der Datenverbindung getrennten Seitenbandverbindung senden.In at least one example, the physical layer logic is also to transmit sideband signals on a separate sideband link from the data link.
In zumindest einem Beispiel soll die physikalische Schicht ferner Verbindungsschichtdaten auf den Datenbahnen senden, wobei die Verbindungsschichtdaten verwendet werden, um die Datenverbindung von einem ersten Verbindungszustand in einen zweiten Verbindungszustand überzuführen.In at least one example, the physical layer is also to transmit link layer data on the data lanes, the link layer data being used to transition the data link from a first connection state to a second connection state.
In zumindest einem Beispiel umfasst der erste Verbindungszustand einen aktiven Verbindungszustand, und der zweite Verbindungszustand umfasst einen Niedrigenergieverbindungszustand.In at least one example, the first connection state comprises an active connection state and the second connection state comprises a low power connection state.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner ein erstes Datenfenster identifizieren, das dem gültigen Signal entspricht, und die Daten auf den Datenbahnen innerhalb eines zweiten Datenfensters senden, das dem ersten Datenfenster direkt nachfolgt.In at least one example, the physical layer logic is further to identify a first data window that corresponds to the valid signal and transmit the data on the data lanes within a second data window that immediately follows the first data window.
In zumindest einem Beispiel gibt das Nichtzusichern des gültigen Signals an, dass Daten auf den Datenbahnen in einem direkt nachfolgenden Fenster als ungültig ignoriert werden sollen.In at least one example, failing to assert the valid signal indicates that data on the data lanes should be ignored as invalid in an immediately subsequent window.
In zumindest einem Beispiel ist jedes aus dem ersten und dem zweiten Datenfenster definiert, um einer Byte-Zeitdauer zu entsprechen.In at least one example, each of the first and second data windows is defined to correspond to a byte period.
In zumindest einem Beispiel werden jedes aus dem gültigen Signal, Daten und dem Datenstromsignal gemäß den für die physikalische Verbindung definierten Datenfenstern abgeglichen.In at least one example, each of the valid signal, data, and data stream signal are matched according to the data windows defined for the physical connection.
In zumindest einem Beispiel soll das Datenstromsignal während desselben Fensters wie die Daten gesendet werden.In at least one example, the data stream signal is intended to be sent during the same window as the data.
In zumindest einem Beispiel soll die physikalische Schicht ferner jedes des gültigen und des Datenstromsignals erzeugen.In at least one example, the physical layer is further to generate each of the valid and stream signals.
In zumindest einem Beispiel verbindet die Datenverbindung zwei Vorrichtungen in einem Mehrchipgehäuse.In at least one example, the data link connects two devices in a multi-chip package.
In zumindest einem Beispiel soll die Datenverbindung Datengeschwindigkeiten über 8 Gb/s unterstützen.In at least one example, the data link is intended to support data speeds in excess of 8 Gb/s.
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um eine einseitige Signalübertragung auf einer Datenverbindung bereitzustellen, die eine Vielzahl von Bahnen umfasst, welche eine Vielzahl von Datenbahnen, eine oder mehrere gültige Signalbahnen, eine oder mehrere Datenstrombahnen umfassen, und um ein Taktsignal zur Verwendung durch die Vielzahl von Bahnen zu senden, wobei Signale, die auf jeder der Vielzahl von Bahnen gesendet werden, mit dem Taktsignal abgeglichen sein sollen.One or more embodiments may provide an apparatus, system, machine-readable memory, machine-readable medium, hardware and/or software-based logic, and method for providing unidirectional signaling on a data link that includes a plurality of lanes that include a plurality of data lanes, one or more valid signal lanes, one or more data stream lanes, and to transmit a clock signal for use by the plurality of lanes, wherein signals transmitted on each of the plurality of lanes are to be aligned with the clock signal.
In zumindest einem Beispiel wird jede der Datenbahnen in der Mitte der Bahn auf eine regulierte Spannung terminiert.In at least one example, each of the data lanes is terminated to a regulated voltage at the center of the lane.
In zumindest einem Beispiel wird die regulierte Spannung für jede der Vielzahl von Datenbahnen von einem einzigen Spannungsregler bereitgestellt.In at least one example, the regulated voltage for each of the plurality of data lanes is provided by a single voltage regulator.
In zumindest einem Beispiel ist die regulierte Spannung im Wesentlichen gleich Vcc/2, wobei Vcc eine Versorgungsspannung umfasst.In at least one example, the regulated voltage is substantially equal to Vcc/2, where Vcc includes a supply voltage.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht versuchen, eine Übersprechunterdrückung zwischen zwei oder mehr der Vielzahl von Datenbahnen bereitzustellen.In at least one example, the physical layer logic shall attempt to provide crosstalk rejection between two or more of the plurality of data lanes.
In zumindest einem Beispiel wird eine Übersprechunterdrückung bereitgestellt, indem ein gewichtetes hochpassgefiltertes Aggressorsignal auf einer ersten der zwei oder mehr Datenbahnen zu dem Signal einer zweiten der zwei oder mehr Datenbahnen hinzugefügt wird.In at least one example, crosstalk cancellation is provided by adding a weighted high-pass filtered aggressor signal on a first of the two or more data lanes to the signal on a second of the two or more data lanes.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht das gewichtete hochpassgefilterte Aggressorsignal zumindest teilweise unter Verwendung eines Widerstand-Kondensator- (RC-) Tiefpassfilters erzeugen.In at least one example, the physical layer logic is to generate the weighted high-pass filtered aggressor signal using at least part of a resistor-capacitor (RC) low-pass filter.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht eine Pro-Bit-Arbeitszykluskorrektur bereitstellen.In at least one example, the physical layer logic is to provide per-bit duty cycle correction.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht Laufzeitverschiebungen auf zumindest einer bestimmten der Datenbahnen detektieren und die Laufzeitverschiebungen auf der bestimmten Datenbahn entfernen.In at least one example, the physical layer logic is to detect skews on at least a particular one of the data lanes and remove the skews on the particular data lane.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner eine AC-Datenbusinversion (DBI) auf zumindest eine der Datenbahnen anwenden.In at least one example, the physical layer logic shall further apply AC data bus inversion (DBI) to at least one of the data lanes.
In zumindest einem Beispiel umfasst das Taktsignal ein Halbraten-Vorwärtstaktsignal.In at least one example, the clock signal comprises a half-rate forward clock signal.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner elektrostatischen Entladungsschutz bereitstellen.In at least one example, the physical layer logic is to further provide ESD protection.
In zumindest einem Beispiel ist die Logik der physikalischen Schicht zumindest teilweise durch Hardwareschaltungen implementiert.In at least one example, the physical layer logic is implemented at least in part by hardware circuitry.
In zumindest einem Beispiel sollen gültige Signale auf den gültigen Signalbahnen übertragen werden, und jedes gültige Signal identifiziert, dass gültige Daten der Zusicherung des gültigen Signals auf der Vielzahl von Datenbahnen nachfolgen sollen, und Datenstromsignale sollen auf den Datenstromsignalbahnen übertragen werden, und jedes Datenstromsignal identifiziert eine Art der Daten auf den einen oder mehreren Datenbahnen.In at least one example, valid signals are to be carried on the valid signal lanes, and each valid signal identifies that valid data is to follow the assertion of the valid signal on the plurality of data lanes, and data stream signals are to be carried on the data stream signal lanes, and each data stream signal identifies one Type of data on the one or more data lanes.
In zumindest einem Beispiel, soll die Datenverbindung Datengeschwindigkeiten über 8 Gb/s unterstützen.In at least one example, the data connection shall support data speeds in excess of 8 Gb/s.
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um eine einseitige Signalübertragung auf einer Datenverbindung bereitzustellen, die eine Vielzahl von Bahnen umfasst, welche eine Vielzahl von Datenbahnen, eine oder mehrere gültige Signalbahnen, eine oder mehrere Datenstrombahnen und ein oder mehrere Verbindungszustandsmaschinen-Seitenbandbahnen umfassen, um ein Taktsignal zur Verwendung durch die Vielzahl von Bahnen zu senden, wobei Signale, die auf jeder der Vielzahl von Bahnen gesendet werden, mit dem Taktsignal abgeglichen sein sollen, um eine Übersprechunterdrückung zwischen zwei oder mehr aus der Vielzahl von Datenbahnen bereitzustellen, und um eine Pro-Bit-Arbeitszykluskorrektur für die Datenverbindung bereitzustellen, wobei jede der Datenbahnen in der Mitte der Bahn auf eine regulierte Spannung terminiert wird.One or more embodiments may provide an apparatus, system, machine-readable memory, machine-readable medium, hardware and/or software-based logic, and method for providing unidirectional signaling on a data link that includes a plurality of lanes that include a plurality of data lanes, one or more valid signal lanes, one or more data stream lanes, and one or more connection state machine sideband lanes to transmit a clock signal for use by the plurality of lanes, wherein signals transmitted on each of the plurality of lanes are associated with the clock signals are to be balanced to provide crosstalk rejection between two or more of the plurality of data lanes and to provide per-bit duty cycle correction for the data link, with each of the data lanes being terminated to a regulated voltage midway through the lane.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner Laufzeitverschiebungen auf zumindest einer bestimmten der Datenbahnen detektieren und die Laufzeitverschiebung der bestimmten Datenbahn entfernen.In at least one example, the physical layer logic is further to detect skews on at least a particular one of the data lanes and remove the skew of the particular data lane.
Eine oder mehrere Ausführungsformen können eine Vorrichtung, ein System, einen maschinenlesbaren Speicher, ein maschinenlesbares Medium, hardware- und/oder softwarebasierte Logik sowie ein Verfahren bereitstellen, um zu identifizieren, dass jeweilige obere Schichten jedes einer Vielzahl von geschichteten Protokollen einen Übergang einer Datenverbindung von einem aktiven Verbindungszustand in einen Niedrigenergieverbindungszustand anfordern, wobei jedes der Vielzahl von geschichteten Protokollen die Datenverbindung als physikalische Schicht nutzen soll, und um die Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand basierend auf einer Identifikation überzuführen, dass die oberen Schichten jedes der Vielzahl von geschichteten Protokollen einen Übergang zu dem Niedrigenergieverbindungszustand anfordert.One or more embodiments may provide an apparatus, system, machine-readable memory, machine-readable medium, hardware and/or software-based logic, and method to identify that respective upper layers of each of a plurality of layered protocols transition a data connection from request an active link state to a low power link state, wherein each of the plurality of layered protocols is to use the data link as a physical layer, and to transition the data link from the active link state to the low power link state based on an identification that the upper layers of each of the plurality of layered protocols requests a transition to the low power connection state.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner an einem Handshake mit anderen Vorrichtungen teilnehmen, um zu bewirken, dass die Datenverbindung in den Niedrigenergieverbindungszustand übergeht.In at least one example, the physical layer logic shall further participate in a handshake with other devices to cause the data link to transition to the low power link state.
In zumindest einem Beispiel umfasst der Handshake einen Verbindungsschicht-Handshake.In at least one example, the handshake comprises a link layer handshake.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht Verbindungsschichtdaten in dem Verbindungsschicht-Handshake senden, während die Datenverbindung in dem aktiven Verbindungszustand ist.In at least one example, the physical layer logic is to send link layer data in the link layer handshake while the data link is in the link active state.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ein Datenstromsignal im Wesentlichen gleichzeitig mit den Verbindungsschichtdaten senden, um zu identifizieren, dass Daten, die auf Datenschichten der Datenverbindung gesendet wurden, Verbindungsschichtpakete umfassen.In at least one example, the physical layer logic shall send a data stream signal substantially concurrently with the link layer data to identify that data sent on data layers of the data link comprises link layer packets.
In zumindest einem Beispiel wird das Datenstromsignal auf einer dedizierten Datenstromsignalbahn der Datenverbindung während eines bestimmten Fensters gesendet, wobei die Verbindungsschichtdaten ebenfalls während des bestimmten Fensters gesendet werden.In at least one example, the data stream signal is sent on a dedicated data stream signal path of the data link during a particular window, and the link layer data is also sent during the particular window.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ein gültiges Signal auf einer dedizierten gültigen Signalbahn der Datenverbindung senden, wobei das gültige Signal in einem anderen Fenster gesendet wird, das dem bestimmten Fenster direkt vorausgeht, um anzugeben, dass die in dem bestimmten Fenster gesendeten Daten gültig sind.In at least one example, the physical layer logic shall send a valid signal on a dedicated valid signal lane of the data link, with the valid signal being sent in another window immediately preceding the particular window to indicate that those being sent in the particular window data are valid.
In zumindest einem Beispiel umfasst der Handshake eine Handshake-Kommunikation über eine Seitenbandverbindung.In at least one example, the handshake includes handshake communication over a sideband connection.
In zumindest einem Beispiel umfasst der Handshake einen Verbindungsschicht-Handshake und die Handshake-Kommunikation über die Seitenbandverbindung.In at least one example, the handshake includes a link layer handshake and the handshake communication over the sideband link.
In zumindest einem Beispiel bestätigt die Handshake-Kommunikation über die Seitenbandverbindung den Verbindungsschicht-Handshake.In at least one example, the handshake communication over the sideband link acknowledges the link layer handshake.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner eine Anfrage von einer oberen Schicht eines ersten der Vielzahl von geschichteten Protokollen identifizieren, die Datenverbindung von dem aktiven Verbindungszustand in einen Niedrigenergieverbindungszustand überzuführen.In at least one example, the physical layer logic is further to identify a request from an upper layer of a first of the plurality of layered protocols to transition the data connection from the active connection state to a low power connection state.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner warten, um die Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand überzuführen, bis Anfragen von jedem der anderen Protokolle der Vielzahl geschichteter Protokolle empfangen werden.In at least one example, the physical layer logic shall further wait to transition the data link from the active link state to the low power link state until requests from each of the other protocols of the plurality of layered protocols are received.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht für jedes der Vielzahl geschichteter Protokolle verfolgen, ob das Protokoll angefragt hat, die Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand überzuführen.In at least one example, for each of the plurality of layered protocols, the physical layer logic is to track whether the protocol has requested to transition the data link from the active link state to the low power link state.
In zumindest einem Beispiel soll die Logik der physikalischen Schicht ferner vor dem tatsächlichen Übergang der Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand eine Antwort auf die Anfrage erzeugen, den Übergang der Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand zu bestätigen.In at least one example, the physical layer logic shall further generate a response to the request to acknowledge the transition of the data link from the active link state to the low power link state prior to the actual transition of the data link from the active link state to the low power link state.
In zumindest einem Beispiel wird die Antwort gesendet, während die Genehmigung des Überganges der Datenverbindung von dem aktiven Verbindungszustand in den Niedrigenergieverbindungszustand von einem oder mehreren der anderen Protokolle in der Vielzahl geschichteter Protokolle ausstehend ist.In at least one example, the response is sent while the data link's transition from the active link state to the low power link state is pending approval of one or more of the other protocols in the plurality of layered protocols.
In zumindest einem Beispiel umfasst der Niedrigenergieverbindungszustand einen Ruheverbindungszustand.In at least one example, the low power connection state includes an idle connection state.
In zumindest einem Beispiel umfasst die Vielzahl der geschichteten Protokolle eines oder mehrere aus PCI, PCIe, IDI und QPI.In at least one example, the plurality of layered protocols includes one or more of PCI, PCIe, IDI, and QPI.
Es kann ein System bereitgestellt werden, um eine Datenverbindung zu umfassen, welche eine Vielzahl von Bahnen, eine erste Vorrichtung und eine zweite Vorrichtung umfasst, die unter Verwendung der Datenverbindung mit der ersten Vorrichtung kommunikativ verbunden ist, wobei die zweite Vorrichtung Oberschichtlogik eines ersten Protokolls, Oberschichtlogik eines zweiten Protokolls, wobei jeder der Vielzahl von Protokollstapeln eine gemeinsame physikalische Schicht nutzt, und Logik der physikalischen Schicht für die gemeinsame physikalische Schicht umfasst, worin die Logik der physikalischen Schicht feststellen soll, dass jedes der Protokolle einschließlich des ersten und des zweiten Protokolls, welche die Datenverbindung nutzen, das Überführen der Datenverbindung von einem aktiven Verbindungszustand in einen Niedrigenergieverbindungszustand genehmigt, bevor die Datenverbindung in den Niedrigenergieverbindungszustand übergeführt wird.A system may be provided to include a data link comprising a plurality of lanes, a first device, and a second device communicatively coupled to the first device using the data link, the second device having upper layer logic of a first protocol, Upper layer logic of a second protocol, each of the plurality of protocol stacks sharing a common physical layer, and physical layer logic for the common physical layer, wherein the physical layer logic is to determine that each of the protocols, including the first and second protocols, using the data link allow the data link to transition from an active link state to a low power link state before the data link is in the low power link state is transferred.
In zumindest einem Beispiel umfasst die Vielzahl von Bahnen eine Vielzahl von Datenbahnen, eine oder mehrere gültige Signalbahnen, eine oder mehrere Datenstrombahnen.In at least one example, the plurality of lanes includes a plurality of data lanes, one or more valid signal lanes, one or more data stream lanes.
In zumindest einem Beispiel sollen gültige Signale auf den gültigen Signalbahnen übertragen werden, und jedes gültige Signal identifiziert, dass gültige Daten der Zusicherung des gültigen Signals auf der Vielzahl von Datenbahnen nachfolgen sollen, und Datenstromsignale sollen auf den Datenstromsignalbahnen übertragen werden, und jedes Datenstromsignal identifiziert eine Art der Daten auf den einen oder mehreren Datenbahnen.In at least one example, valid signals are to be carried on the valid signal lanes, and each valid signal identifies that valid data is to follow the assertion of the valid signal on the plurality of data lanes, and data stream signals are to be carried on the data stream signal lanes, and each data stream signal identifies one Type of data on the one or more data lanes.
In zumindest einem Beispiel umfasst das Überführen der Datenverbindung in den Niedrigenergieverbindungszustand einen Handshake zwischen der ersten und der zweiten Vorrichtung.In at least one example, transitioning the data connection to the low power connection state includes a handshake between the first and second devices.
In zumindest einem Beispiel umfasst der Handshake einen Verbindungsschicht-Handshake und einen Seitenband-Handshake.In at least one example, the handshake includes a link layer handshake and a sideband handshake.
In zumindest einem Beispiel umfasst die erste Vorrichtung einen ersten Nacktchip in einem Gehäuse, und die zweite Vorrichtung umfasst einen zweiten Nacktchip in dem Gehäuse.In at least one example, the first device includes a first die in a package and the second device includes a second die in the package.
In zumindest einem Beispiel umfasst die erste Vorrichtung eine Vorrichtung auf dem Gehäuse, und die zweite Vorrichtung umfasste eine Vorrichtung, die nicht auf dem Gehäuse ist.In at least one example, the first device comprises a device on the housing and the second device comprises a device that is not on the housing.
Claims (26)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE112013007770 | 2013-12-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112013007770B3 true DE112013007770B3 (en) | 2023-04-06 |
Family
ID=85573761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112013007770.1T Active DE112013007770B3 (en) | 2013-12-26 | 2013-12-26 | DEVICES, METHOD AND SYSTEM FOR TRANSMITTING AND RECEIVING VIA AN INTERFACE |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE112013007770B3 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007483A1 (en) | 2011-07-01 | 2013-01-03 | Diefenbaugh Paul S | Method and apparatus to reduce idle link power in a platform |
-
2013
- 2013-12-26 DE DE112013007770.1T patent/DE112013007770B3/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007483A1 (en) | 2011-07-01 | 2013-01-03 | Diefenbaugh Paul S | Method and apparatus to reduce idle link power in a platform |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112013007734B4 (en) | DEVICES, METHODS AND SYSTEMS FOR IDENTIFYING A PROTOCOL THAT USES A PHYSICAL CONNECTION | |
DE112013007751B3 (en) | High Performance Interconnect Physical Layer | |
DE112013007724B4 (en) | SYSTEM, APPARATUS AND METHOD FOR SHARING MEMORY AND I/O SERVICES BETWEEN NODES | |
DE112013007732B4 (en) | System and device for determining and reporting a fault on a web | |
CN107430569B (en) | Multi-chip package link | |
DE102020120102A1 (en) | Global permanent memory flush | |
DE112016003233T5 (en) | Redriver CONNECTION TESTING | |
DE112017005002T5 (en) | CONNECTING PHYSICAL LAYER INTERFACE ADAPTER | |
DE112017001430T5 (en) | IN-BAND RETIMER REGISTER IN TOUCH | |
DE112013007726T5 (en) | Improvements to an interconnect retimer | |
DE102018005753A1 (en) | SERDES LINK TRAINING | |
DE112018001088T5 (en) | APPLYING FRAMING RULES FOR A HIGH-SPEED DATA CONNECTION | |
DE112016003222T5 (en) | HIGH PERFORMANCE REPEATER | |
DE112017004963T5 (en) | TENSION-MODULATED CONTROL LANE | |
DE102020101958A1 (en) | DYNAMIC LANE ACCESS SWITCHING BETWEEN PCIE ROOTS | |
DE102021121490A1 (en) | APPROXIMATE DATA BUS INVERSION TECHNOLOGY FOR LATENT-SENSITIVE APPLICATIONS | |
JP2018085129A (en) | Multichip package link | |
DE112013007770B3 (en) | DEVICES, METHOD AND SYSTEM FOR TRANSMITTING AND RECEIVING VIA AN INTERFACE | |
DE112013007842B3 (en) | SYSTEM, DEVICE AND METHOD FOR GENERATION AND TRANSMISSION FLITS OF DIFFERENT PROTOCOLS IN DIFFERENT MODES | |
DE112013007841B3 (en) | SYSTEM, APPARATUS AND METHOD FOR RECEIVING A SYNC HEADER AND LOG IDENTIFICATION DATA | |
DE112013007769B3 (en) | System, apparatus and method for generating and sending SKP ordered sets | |
DE102020134763A1 (en) | CLOSED CHASSIS DEBUGGING THROUGH TUNNELING |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R129 | Divisional application from |
Ref document number: 112013007734 Country of ref document: DE |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |