CPUūüĎĺ

Binary flip-flop register

Transistor Transistor Logic
Computer science

Our society and its economy, security, politics and science, is mainly driven by the computer technology.

The usage has now become exponentiallyūüöÄ larger and more useful, by inventing ūü§Ė AI.
What is this binary all about‚Ěď

Binary is a different number system - used by computers, following the power of 2 like the Cell division, where one Byte is one whole number, and consist of 8 bits with fixed numerical values 1, 2, 4, 8, 16, 32, 64, 128, but the result is the sum of all Bits, that are set to 1, thus the bit is only an information of 0 or 1, in order to add its associated numerical value to the sum of the Byte.

CPUūüĎĺ

Binäres Flip-Flop-Register

Transistor-Transistor-Logik
Computertechnik

Unsere Gesellschaft mit ihrer Wirtschaft, Sicherheit, Politik und Wissenschaft wird hauptsächlich von der Computertechnik bestimmt.

Der Nutzen ist nun exponentiellūüöÄ gr√∂√üer und n√ľtzlicher geworden, indem die ūü§Ė KI erfunden wurde.
Was hat es mit diesem Binary auf sich‚Ěď

Bin√§r ist ein anderes Zahlensystem - das von Computern verwendet wird, die der Potenz von 2 folgen, wie die Zellteilung, um den Zahlenwert innerhalb eines Bytes zu verdoppeln, f√ľr jedes Bit, 1, 2, 4, 8, aber der numerische Wert jedes Bits im Byte ist nur ein Zustand, wobei der tats√§chliche Zahlenwert das Ergebnis der Addition der zugeh√∂rigen Bitwerte ist.

Note: Any shorter article seemed impossible, because one need to wrap the head around this complex subject, where transistors, have a size, maesured in nanometers.

Note: The examples may differ from the real world technology.

Anmerkung: Ein k√ľrzerer Artikel schien unm√∂glich, denn man muss sich mit diesem komplexen Thema auseinandersetzen, wo Transistoren eine Gr√∂√üe haben, die in Nanometern gemessen wird.

Hinweis: Die Beispiele können von der realen Technik abweichen.

Pictogram, Harmonics visualisation space

Introduction

Econony system

Inside any computer, there is the CPU, a small blackbox, providing extra ordinary processing power, but how does it work?

Our society and its economy, politics and science, is mainly driven by the computer technology.Every car, smart device, laptop, TV, fridge, washing machine, elevator, traffic light, train and airplane, is using a computer to control its functions.

The computer is the brain inside devices, making them versatile, functional, and very useful. But every food, household item, and tool we buy is distributed, by using computers too. It goes on with comunication satellites, health system, hospitals and technology, science and its education, elections, shoping moles, govermental services, online services, packet distribution, traffic system.

Also all nuclear plants, hydro plants, gas plants, oil plants and carbon power plants, with their power delivery and monitoring system.
All Military institutions with weapon systems, intelligence agencies, troop distribution, offence and defence systems.
Every govermental and global population control agencies, like United Nations and World Health Organisation, standarts organisation, Reuters, AP, Tass news agencies, weather and earthquake monitoring, and all other global services, are using computers.

Computer technology was emerging so fast, that our education systems lack of including the science behind, into the basic school knowledge.

We learned to write, calculate numbers, speak foreign languages, solve moderate tasks with ease, but have you ever ask yourself, "What is binary?".

With the current AI development, the gap became even bigger, so let's have a look on how a computer works, and why using the binary system.

Einf√ľhrung

Rechnersystem

Im Inneren eines jeden Computers befindet sich die CPU, eine kleine Blackbox, die außergewöhnliche Rechenleistung erbringt, aber wie funktioniert sie?

Unsere Gesellschaft und ihre Wirtschaft, Politik und Wissenschaft werden haupts√§chlich von der Computertechnologie angetrieben.Jedes Auto, jedes intelligente Ger√§t, jeder Laptop, Fernseher, K√ľhlschrank, jede Waschmaschine, jeder Aufzug, jede Ampel, jeder Zug und jedes Flugzeug wird von einem Computer gesteuert.

Der Computer ist das Gehirn in den Ger√§ten und macht sie vielseitig, funktionell und sehr n√ľtzlich. Aber auch jedes Lebensmittel, jeder Haushaltsgegenstand und jedes Werkzeug, das wir kaufen, wird mit Hilfe von Computern verteilt. Es geht weiter mit Kommunikationssatelliten, Gesundheitssystem, Krankenh√§usern und Technologie, Wissenschaft und Bildung, Wahlen, Einkaufsm√§rkten, Beh√∂rdendiensten, Online-Diensten, Paketverteilung, Verkehrssystemen.

Au√üerdem alle Kernkraftwerke, Wasserkraftwerke, Gaswerke, √Ėlkraftwerke und Kohlekraftwerke mit ihrem Stromversorgungs- und √úberwachungssystem.
Alle militärischen Einrichtungen mit Waffensystemen, Geheimdiensten, Truppenverteilung, Angriffs- und Verteidigungssystemen.
Alle staatlichen und globalen Bev√∂lkerungskontrollbeh√∂rden, wie die Vereinten Nationen und die Weltgesundheitsorganisation, Standardorganisationen, Reuters, AP, Tass Nachrichtenagenturen, Wetter- und Erdbeben√ľberwachung und alle anderen globalen Dienste benutzen Computer.

Die Computertechnologie hat sich so schnell entwickelt, dass unsere Bildungssysteme es versäumt haben, die dahinter stehende Wissenschaft in das Grundschulwissen aufzunehmen.

Wir haben gelernt, zu schreiben, mit Zahlen zu rechnen, Fremdsprachen zu sprechen, mäßige Aufgaben mit Leichtigkeit zu lösen, aber hast du dich jemals gefragt, "Was ist binär?".

Mit der aktuellen Entwicklung der k√ľnstlichen Intelligenz ist die L√ľcke noch gr√∂√üer geworden, also lass uns einen Blick darauf werfen, wie ein Computer funktioniert und warum er das bin√§re System verwendet.

Pictogram, Harmonics visualisation space

Data types

Text, Images, Videos

The computer can read and store data, like our texts, images, videos, but in reality it never stores the whole image or video, even if it appears, as one file for us, on the display. Data like images are stored and processed in tiny junks, that's just how computer works behind the display.

When we save an image, the computer uses a strict system, based on what we call: Table. These tables consist of rows and columns, thus are a two dimensional data base.
To access any data, the computer only needs the row, and column number, to always find the right spot in the table.

I like to emphasize the importance of this table technology, because in the end it is only about data, which the computer will process, while also software apps are data, that can produce additional data.

Below the operating system level, the same technology is used to allocate the data, which is rows and columns, but its called registers, in assembler and other languages.
Basicly, on the lowest level, the CPU can only process these fixed sized data Bytes one by one, which led into using this fixed data size to build any computer system upon, since the CPU (Central Processing Unit), was always the main component of the computers.
The principle has derived out of how the CPU is processing data in conjunction with the memory, its memory controller, and all other periferal devices. Just keep in mind, that there is never text, images nor videos sitting in the Ram, nor on the SSD or HDD.

All the data is consisting only out of Bytes filled with bits, because of the CPU, its Ram and the whole system architecture.

Datentypen

Text, Bilder, Videos

Der Computer kann Daten wie unsere Texte, Bilder und Videos lesen und speichern, aber in Wirklichkeit speichert er nie das ganze Bild oder Video, auch wenn es f√ľr uns als eine Datei auf dem Bildschirm erscheint. Daten wie Bilder werden in winzigen Dschunken gespeichert und verarbeitet, so funktioniert der Computer hinter dem Display.

Wenn wir ein Bild speichern, verwendet der Computer ein strenges System, das auf einer so genannten: Tabelle. Diese Tabellen bestehen aus Zeilen und Spalten, sind also eine zweidimensionale Datenbasis.
Um auf Daten zuzugreifen, braucht der Computer nur die Zeilen- und Spaltennummer, um immer die richtige Stelle in der Tabelle zu finden.

Ich möchte die Bedeutung dieser Tabellentechnologie hervorheben, weil es sich letztlich nur um Daten handelt, die der Computer verarbeitet, während auch Softwareanwendungen Daten sind, die weitere Daten erzeugen können.

Unterhalb der Betriebssystemebene wird die gleiche Technologie verwendet, um die Daten, also Zeilen und Spalten, zuzuordnen, aber sie wird in Assembler und anderen Sprachen als Register bezeichnet.
Grunds√§tzlich kann die CPU auf der untersten Ebene nur diese Daten in fester Gr√∂√üe Bytes f√ľr Bytes verarbeiten, was dazu f√ľhrte, dass diese feste Datengr√∂√üe zum Aufbau jedes Computersystems verwendet wurde, da die CPU (Central Processing Unit) immer die Hauptkomponente der Computer war.
Das Prinzip leitet sich aus der Art und Weise ab, wie die CPU Daten in Verbindung mit dem Speicher, seinem Speicher-Controller und allen anderen Peripheriegeräten verarbeitet. Denk daran, dass niemals Text, Bilder oder Videos im Ram oder auf der SSD oder HDD gespeichert werden.

Alle Daten bestehen nur aus Bytes, die mit Bits gef√ľllt sind, dank der CPU, dem Ram und der gesamten Systemarchitektur.

img 2

Binary

Bits and Bytes

The binary system is another way to define and use our decimal numbers. But instead of assigning a unique symbol to each number, the computer uses only the power-of-two numbers, that when added up, the sum has the value of any numerical number.
The Byte follows the same number algorithm as our cell division, which is: 1, 2, 4, 8, 16, 32, 64, 128
One Byte has 8 bits, or places inside to store its fixed number, and each place represents a unique number compared to the other 7 places in the Byte.

This Byte is in reality a data table with one row, and 8 columns, thus we have: First, second, third, and so on.
The identification number is very important for the computer, where we name them as: bit-0, up to bit-7, which are 8 in total.

If the computer is asked to display the number 47, then it would use the associated fixed numbers, to create a composite that add up in any desired number.
Decimal: 47 = 32 + 8 + 4 + 2 + 1,
Decimal: 14 = 8 + 4 + 2 .
The binary code looks like this:
binary: 00000001 = decimal: 1,
binary: 00000010 = decimal: 2,
binary: 00000100 = decimal: 4,
binary: 00001000 = decimal: 8,
binary: 00010000 = decimal: 16,
binary: 00100000 = decimal: 32,
binary: 01000000 = decimal: 64,
binary: 10000000 = decimal: 128

The benefit becomes obvious, if a number to describe is bigger than 20, because a Byte can represent any number between 0 and 255, by only using its 8 bits.
Bytes contain these 8 bits, which are not the actual number, but only an information, if the number is used for the result, or not, which is 0 and 1 for the computer. When encode the calculations from above, it may become more obvious.
Binary: 00101111 = decimal: 47,
binary: 00001110 = decimal: 14

You may ask where is the 0, and why is the largest number in a Byte 256, but the max added up composite has only a value of 255, right?
It's because the computer uses Zero logic, instead of beginning by 1, the Byte begins at 0 and ends at 255, thus we have 256 states, or numbers inbetween.
Binary: 00000000 = decimal: 0,
binary: 11111111 = decimal: 255

Binär

Bits und Bytes

Das Binärsystem ist eine weitere Möglichkeit, unsere Dezimalzahlen zu definieren und zu verwenden. Aber anstatt jeder Zahl ein eigenes Symbol zuzuordnen, verwendet der Computer nur die Zweierpotenzen, die bei der Addition den Wert einer beliebigen Zahl ergeben.
Das Byte folgt dem gleichen Zahlenalgorithmus wie unsere Zellteilung, nämlich: 1, 2, 4, 8, 16, 32, 64, 128
Ein Byte hat 8 Bits oder Stellen im Inneren, um seine feste Zahl zu speichern, und jede Stelle stellt eine einzigartige Zahl im Vergleich zu den anderen 7 Stellen im Byte dar.

Dieses Byte ist in Wirklichkeit eine Datentabelle mit einer Zeile und 8 Spalten, also haben wir: Erste, zweite, dritte und so weiter.
Die Identifikationsnummer ist sehr wichtig f√ľr den Computer, wo wir sie benennen als: bit-0, bis bit-7, was insgesamt 8 sind.

Wenn der Computer die Zahl 47 anzeigen soll, dann w√ľrde er die zugeh√∂rigen festen Zahlen verwenden, um ein Kompositum zu bilden, das sich zu einer beliebigen Zahl summiert.
Dezimal: 47 = 32 + 8 + 4 + 2 + 1,
Dezimal: 14 = 8 + 4 + 2 .
Der Binärcode sieht wie folgt aus:
Binär: 00000001 = dezimal: 1,
Binär: 00000010 = dezimal: 2,
Binär: 00000100 = dezimal: 4,
Binär: 00001000 = dezimal: 8,
Binär: 00010000 = dezimal: 16,
Binär: 00100000 = dezimal: 32,
Binär: 01000000 = dezimal: 64,
Binär: 10000000 = dezimal: 128

Der Vorteil wird deutlich, wenn eine zu beschreibende Zahl größer als 20 ist, denn ein Byte kann jede Zahl zwischen 0 und 255 darstellen, indem es nur seine 8 Bits verwendet.
Bytes enthalten diese 8 Bits, die nicht die eigentliche Zahl sind, sondern nur eine Information, ob die Zahl f√ľr das Ergebnis verwendet wird oder nicht, was f√ľr den Computer 0 und 1 ist. Wenn man die Berechnungen von oben verschl√ľsselt, wird es vielleicht deutlicher.
Binär: 00101111 = dezimal: 47,
Binär: 00001110 = dezimal: 14

Du fragst dich vielleicht, wo die 0 ist und warum die größte Zahl in einem Byte 256 ist, aber die maximale Summe nur einen Wert von 255 hat, oder?
Das liegt daran, dass der Computer die Nulllogik verwendet, anstatt mit 1 zu beginnen, beginnt das Byte bei 0 und endet bei 255, daher haben wir 256 Zustände oder Zahlen dazwischen.
Binär: 00000000 = dezimal: 0,
Binär: 11111111 = dezimal: 255

img 2

Architecture

8 bit computer

Let's look at a simple 8 Bit computer, but for demonstration purpose, we use a Micro controller which is the same as a CPU, but with additional peripheral devices built in. Our micro controller containing a CPU, program memory, Ram, and a Clock, to synchronize the CPU in itself and with the Ram and any other peripheral device like USB.
The CPU in any 8 Bit computer, can process data as 8 bit size. The Ram, the program memory and any other data device comunicating with the CPU, must therefore follow the same architecture of 8 bits.

I hear you asking, if an 8-bit computer can only process numbers with a maximum value of 256, then how could this be useful, right?
Answer: To solve this issue, the computer will chain multiple Bytes, to create a larger number.
Therefore, the cell division algorithm is simply extended, by adding a Bytes following after the first Byte that we know, with 256 numbers. We use two Bytes, for our composite, means that our 8 bit number, has now become a 16 bit number size, which is called a digital 16-bit-word, consisting of two Bytes.
The second consecutive byte, has the values of:
512, 1024, 2048, 4096, 8192, 16384, 32768, 65536,
and as you already know now, to derive the largest number, we add up the bit values of the second Byte, then the total sum of the second Byte is 131072, and can be added to 256 by using this 16 bit word composite Byte, results in any number between:
0 and 131071

The Byte is the row, while any computer will only have 8 columns in any Byte, corresponding to the 8 bits in any Byte. If the computer is switched on, then the CPU will start to read the first Byte, but now there is nothing defined yet.
This means the CPU itself, has functionality, to set the hardware pins to either: 'input or output' and enabling a pull-up or pull-down voltage, to provide a degree of freedom to the developing of the mother board.

To define these hardware pins, all settings are on fixed locations, stored in the registers.
To set 8 pins to be either an input or output, the bit is set accordingly to 1 or 0 for each bit in the pins Byte. These definition Bytes are set for any hardware, inside the CPU, otherwise the default state from the factory is used, to not crash all the time, at startup.
The CPU will load our code from the program memory inside the micro controller with our input-output definition Byte, but don't know what to do with it.

An address is therefore required to find the location in the programme runtime memory and to place the definition byte there in order to activate the desired state of the pins. As I stated, in assembler it's called register for the Byte row, but all types of memory, contains these stacks of 8 bit rows, say: A, B, C.
A CPU core execution stack has cache memory next to it, which can be accessed directly by the CPU, to shift the data into or out of. The pointer to point to any register is the 'mov' command, and can be seen as a movable storage Byte, where the data is shifted into the register, or out of.

Now the power supply is switched on, and the CPU can execute our pins initialization code. Let's simplify the process with an example to initialize the hardware pins:
A clock cycle advances, and the CPU reads the first line of our code, which is the memory allocation column.
Next clock cycle: Read the register, which is the row.
Next clock cycle: Set the memory data bus, to column A.
Next clock cycle: Move the pointer, to the column A.
Next clock cycle: Move the pointer, to the appropriate register.
Next 8 clock cycles: Write the register allocated, by shifting the definition Byte, into the register.
Next clock cycle: Move the pointer, back to the CPU.
Next clock cycle: read the next code instruction, perhaps for the other pins of the Micro controller, the B-side pins.

Our hardware pins code example shows, that a Byte can represent anything it is assigned to.
In reality each step in the execution stack will use a divided clock, so it takes a couple of clock cycles to execute the code. The CPU itself works exactly the same, where it uses the surrounding cache memory, to shift the bits into or out of, with more than one clock cycle. Because, on the CPU level, it works even more abstract.

Architektur

8-Bit-Computer

Lass uns einen einfachen 8-Bit-Computer betrachten, aber zu Demonstrationszwecken verwenden wir einen Mikrocontroller, der dasselbe wie eine CPU ist, aber mit zusätzlichen Peripheriegeräten ausgestattet ist. Unser Mikrocontroller enthält eine CPU, Programmspeicher, Ram und eine Uhr, um die CPU selbst und mit dem Ram und anderen Peripheriegeräten wie USB zu synchronisieren.
Die CPU in jedem 8-Bit-Computer kann Daten in 8-Bit-Größe verarbeiten. Der Ram, der Programmspeicher und jedes andere Datengerät, das mit der CPU kommuniziert, muss daher der gleichen Architektur von 8 Bit folgen.

Ich höre dich fragen, wenn ein 8-Bit-Computer nur Zahlen mit einem Maximalwert von 256 verarbeiten kann, wie kann das dann sinnvoll sein, richtig?
Antwort: Um dieses Problem zu lösen, wird der Computer mehrere Bytes aneinanderreihen, um eine größere Zahl zu erzeugen.
Daher wird der Zellteilungsalgorithmus einfach erweitert, indem nach dem ersten Byte, das wir kennen, noch ein Byte mit 256 Zahlen folgt. Wir verwenden zwei Bytes f√ľr unseren Verbund, das bedeutet, dass aus unserer 8-Bit-Zahl nun eine 16-Bit-Zahlengr√∂√üe geworden ist, die als digitales 16-Bit-Wort bezeichnet wird und aus zwei Bytes besteht.
Das zweite aufeinanderfolgende Byte, hat die Werte von:
512, 1024, 2048, 4096, 8192, 16384, 32768, 65536,
Um die größte Zahl zu ermitteln, addieren wir die Bit-Werte des zweiten Bytes, dann ist die Gesamtsumme des zweiten Bytes 131072 und kann zu 256 addiert werden, indem wir dieses 16-Bit-Wort zusammengesetzte Byte verwenden, was eine beliebige Zahl zwischen ergibt:
0 und 131071

Das Byte ist die Zeile, während jeder Computer nur 8 Spalten in jedem Byte hat, die den 8 Bits in jedem Byte entsprechen. Wenn der Computer eingeschaltet wird, dann beginnt die CPU das erste Byte zu lesen, aber es ist noch nichts definiert.
Das bedeutet, dass die CPU selbst die Funktionalität hat, die Hardware-Pins entweder auf 'Eingang oder Ausgang' zu setzen und eine Pull-Up- oder Pull-Down-Spannung zu aktivieren, um der Entwicklung der Hauptplatine einen gewissen Spielraum zu geben.

Um diese Hardware-Pins zu definieren, sind alle Einstellungen auf festen Plätzen, die in den Registern gespeichert sind.
Um 8 Pins entweder als Eingang oder Ausgang zu definieren, wird das Bit in jedem Byte der Pins entsprechend auf 1 oder 0 gesetzt. Diese Definitionsbytes werden f√ľr jede Hardware innerhalb der CPU gesetzt, ansonsten wird der Standardzustand aus der Fabrik verwendet, um nicht st√§ndig beim Start abzust√ľrzen.
Die CPU lädt unseren Code aus dem Programmspeicher im Mikrocontroller mit unserem Input-Output-Definitionsbyte, weiß aber nicht, was sie damit anfangen soll.

Eine Adresse wird also ben√∂tigt, um die Stelle im Programmspeicher zu finden und das Definitionsbyte dort zu platzieren, um den gew√ľnschten Zustand der Pins zu aktivieren. Wie gesagt, in Assembler hei√üt das Register f√ľr die Byte-Zeile, aber alle Arten von Speicher enthalten diese Stapel von 8-Bit-Zeilen, z.B.: A, B, C.
Ein CPU-Core-Ausf√ľhrungsstapel hat daneben einen Cache-Speicher, auf den die CPU direkt zugreifen kann, um die Daten hinein- oder herauszuschieben. Der Zeiger, der auf ein beliebiges Register zeigt, ist der 'mov'-Befehl und kann als bewegliches Speicherbyte angesehen werden, in das die Daten in das Register hinein oder aus dem sie heraus geschoben werden.

Nun ist die Stromversorgung eingeschaltet, und die CPU kann unseren Initialisierungscode f√ľr die Pins ausf√ľhren. Vereinfachen wir den Prozess mit einem Beispiel zur Initialisierung der Hardware-Pins:
Ein Taktzyklus r√ľckt vor, und die CPU liest die erste Zeile unseres Codes, n√§mlich die Speicherzuordnungsspalte.
Nächster Taktzyklus: Lese das Register, das die Zeile ist.
Nächster Taktzyklus: Setze den Speicherdatenbus auf Spalte A.
Nächster Taktzyklus: Bewege den Zeiger auf die Spalte A.
Nächster Taktzyklus: Bewege den Zeiger in das entsprechende Register.
Nächste 8 Taktzyklen: Schreibe das zugewiesene Register, indem du das Definitionsbyte in das Register schiebst.
N√§chster Taktzyklus: Bewege den Zeiger zur√ľck zur CPU.
N√§chster Taktzyklus: Lesen des n√§chsten Code-Befehls, vielleicht f√ľr die anderen Pins des Micro-Controllers, die B-seitigen Pins.

Unser Code-Beispiel f√ľr Hardware-Pins zeigt, dass ein Byte alles repr√§sentieren kann, was ihm zugewiesen ist.
In der Realit√§t wird jeder Schritt im Ausf√ľhrungsstapel einen geteilten Takt verwenden, so dass die Ausf√ľhrung des Codes ein paar Taktzyklen dauert. Die CPU selbst arbeitet genau so, wobei sie den umgebenden Cache-Speicher verwendet, um die Bits in oder aus dem Cache zu verschieben, und zwar mit mehr als einem Taktzyklus. Denn auf der CPU-Ebene arbeitet sie noch abstrakter.

img 2

AND

Logic gate adder

We would think that the CPU can calculate two numbers like 1 + 1 = 2, but in reality the CPU, uses logic gates to make any sort of calculation, data processing included, which is only a larger level of lots of smaller calculations.
These calculator functions are the ALUs (Arithmetic Logic Units) and are a cluster of logic gates, to be available as instructions. The logic gates are hardware implementations, simply by using FET (Feld Effekt Transistor) based transistors in different configurations, to provide the logic functions needed.
There are AND, OR, NOT, NAND, NOR, XOR, XNOR and many other larger groups of these basic logic gates, which are combined in the CPU. The parallel connection to all logic units is the reason why a CPU can provide such computing power.
Back to our example calculation, the input to the CPU is 1 + 1, and as the name already suggests, we use the AND-gate to calculate the result.

Note: The example calculations may not be one-by-one how a real world arithmetic calculation is performed by the CPU and GPU.

The AND gate has two inputs, each can process one bit, corresponding to the same bit in the other input. In our case of 1 + 1, we use the 0-bit, of our input Bytes, which is looking like this: 00000001, 00000001, while for adding the whole bytes, the computer combines 8 of these AND gates, to form the one byte adder function. We apply one number on one input of the AND-gate and the other number at the other input. The AND gate evaluates the inputs, and instead of a numerical result, it sets the output to 'true', which for our 0-bit AND represents the result of numerical 1 But the output of any gate is only one part of the result, where the second part is the first input of the AND, and is being forwarded to the result shift register. In our case the output is 'true' but the result register already contains a numerical 1 in the bit-0, so the binary 1 is moved from bit-0 into the carry bit, to store the overflowing numerical 1,. Since the bit-1 in the result register is set to 0, containing no value, the overflow carry bit is stored in the bit-1, which has a numerical value of 2

The total adder would process any bit of the input Bytes in sequence, starting at bit-0, and then sum each individual output into the results Byte, before the binary calculation is finish, and the result is binary: 00000010 = Decimal: 2

The rest becomes obvious now, where the pointer is allocating the result register, to shift the result Byte into the mov register.
Then returns the result, and shift it into the CPU's cache memory, on the input side of the CPU execution stack. That is how minimalistic it really works, but because the CPU can only process Zero's and one's, mean that there is lots of these logic gate clusters all over the die, because that is the CPU in the end.

Now the last mind bending fact is how could one possibly process all calculations with logic gates that can only process bit wise?
There is other ALUs providing instruction functionality like multiplication and division, and any other necessary operator

AND

Logikgatter-Addierer

Wir w√ľrden denken, dass die CPU zwei Zahlen wie 1 + 1 = 2 berechnen kann, aber in Wirklichkeit verwendet die CPU Logikgatter, um jede Art von Berechnung durchzuf√ľhren, einschlie√ülich der Datenverarbeitung, die nur eine gr√∂√üere Ebene von vielen kleineren Berechnungen ist.
Diese Rechenfunktionen sind die ALUs (Arithmetic Logic Units) und sind eine Ansammlung von Logikgattern, die als Befehle zur Verf√ľgung stehen. Die Logikgatter sind Hardware-Implementierungen, indem einfach FET (Field Effect Transistor) basierte Transistoren in verschiedenen Konfigurationen verwendet werden, um die ben√∂tigten Logikfunktionen bereitzustellen.
Es gibt UND, ODER, NICHT, NAND, NOR, XOR, XNOR und viele andere größere Gruppen dieser grundlegenden Logikgatter, die in der CPU kombiniert werden. Die Parallelschaltung aller Logikeinheiten ist der Grund, warum eine CPU eine solche Rechenleistung erbringen kann.
Zur√ľck zu unserer Beispielrechnung: Die Eingabe in die CPU ist 1 + 1, und wie der Name schon sagt, verwenden wir das UND-Gatter, um das Ergebnis zu berechnen.

Hinweis: Die Beispielrechnungen entsprechen nicht unbedingt eins zu eins der Art und Weise, wie eine echte arithmetische Berechnung von CPU und GPU durchgef√ľhrt wird.

Das UND-Gatter hat zwei Eing√§nge, die jeweils ein Bit verarbeiten k√∂nnen, das dem gleichen Bit im anderen Eingang entspricht. In unserem Fall von 1 + 1 verwenden wir das 0-Bit unseres Eingangsbytes, das wie folgt aussieht: 00000001, 00000001. Um die ganzen Bytes zu addieren, kombiniert der Computer 8 dieser UND-Gatter, um die Funktion eines Byte-Addierers zu bilden. Wir legen eine Zahl an den einen Eingang des UND-Gatters an und die andere Zahl an den anderen Eingang. Das UND-Gatter wertet die Eing√§nge aus und setzt anstelle eines numerischen Ergebnisses den Ausgang auf "wahr", was f√ľr unser 0-Bit UND das Ergebnis der numerischen 1 Der Ausgang eines jeden Gatters ist jedoch nur ein Teil des Ergebnisses, wobei der zweite Teil der erste Eingang des UNDs ist und an das Ergebnisschieberegister weitergeleitet wird. In unserem Fall ist der Ausgang "wahr", aber das Ergebnisregister enth√§lt bereits eine numerische 1 im Bit-0, also wird die bin√§re 1 von Bit-0 in das √úbertragsbit verschoben, um die √ľberlaufende numerische 1 zu speichern. Da das Bit-1 im Ergebnisregister auf 0 gesetzt ist und keinen Wert enth√§lt, wird das √úberlauf-Carry-Bit im Bit-1 gespeichert, das einen numerischen Wert von 2 hat

Der Totaladdierer w√ľrde jedes Bit des Eingangsbytes der Reihe nach verarbeiten, beginnend bei Bit-0, und dann jeden einzelnen Ausgang zum Ergebnisbyte summieren, bevor die bin√§re Berechnung beendet ist, und das Ergebnis lautet bin√§r: 00000010 = dezimal: 2

Der Rest wird jetzt klar, wobei der Zeiger das Ergebnisregister zuweist, um das Ergebnisbyte in das mov-Register zu schieben.
Dann wird das Ergebnis zur√ľckgegeben und in den Cache-Speicher der CPU auf der Eingangsseite des CPU-Ausf√ľhrungsstapels geschoben. So minimalistisch funktioniert es wirklich, aber da die CPU nur Nullen und Einsen verarbeiten kann, gibt es viele dieser Logikgatter-Cluster √ľberall auf dem Chip, denn das ist schlie√ülich die CPU.

Nun noch eine letzte verbl√ľffende Tatsache: Wie kann man mit Logikgattern, die nur bitweise verarbeiten k√∂nnen, √ľberhaupt alle Berechnungen durchf√ľhren?
Es gibt andere ALU's, die Befehlsfunktionen wie Multiplikation und Division und alle anderen notwendigen Operatoren bereitstellen

img 2

NOT

Logic gate subtractor

For the next example we subtract 2 - 1 = 1, for simplicity.
Again, we have a cluster of logic gates to subtract numbers between 0 - 255. The subtractor contains 8 individual subtraction units as well as the result register in which the result is processed and temporarily stored.
In computer transistor logic, it appears to be one of the simplest logic gates that can be built with transistors, as it does not use a subtraction operation.
Instead, it uses an inverter.

Like any other logic gates, an inverter is made from FET transistors, but it is a special circuit. The count of transistors is lower, and it uses only one input to perform the NOT operation.
More important is the fact, that the internal output bias currents, for the FET transistors are optimal in comparison to the direction, the output will switch to, which makes it the best gate possible.

The input Bytes binary values look like 00000010 and 00000001, which are passed to the subtractor unit.
The second Byte is applied to the input, of the NOT-gate, and the first Byte is shifted into the output register, corresponding to the second subtractor bit.
The first bit of the input Byte is inverted, means the input of binary 1, switches the output to 0
But the first bit in the output register, has no stored value of 1 to subtract the result from, thus the carry bit is set. Now the carry bit is shifted one up, containing our result of 0, and is stored in the second bit which is set to 0, but this creates a numerical overflow of 1 moved into the carry bit, and stored in the lower bit-0.

Note: The example calculations may not be one-by-one how a real world arithmetic calculation is performed by the CPU and GPU.

In the end of the operation, the result is shifted into the mov register and returned to the CPU cache, then shifted into the CPU cache and so on.

NICHT

Logisches Gatter Subtrahierer

F√ľr das n√§chste Beispiel subtrahieren wir der Einfachheit halber 2 - 1 = 1
Auch hier haben wir eine Gruppe von Logikgattern, um Zahlen zwischen 0 - 255 zu subtrahieren. Der Subtrahierer enthält 8 einzelne Subtraktionseinheiten sowie das Ergebnisregister, in dem das Ergebnis verarbeitet und zwischengespeichert wird.
In der Computer-Transistorlogik scheint es eines der einfachsten logischen Gatter zu sein, die mit Transistoren gebaut werden können, da es keine Subtraktionsoperation verwendet.
Es verwendet stattdessen einen Inverter.

Wie alle anderen Logikgatter besteht auch ein Inverter aus FET-Transistoren, aber es handelt sich um eine besondere Schaltung. Die Anzahl der Transistoren ist geringer, und er verwendet nur einen Eingang, um die NICHT-Operation durchzuf√ľhren.
Wichtiger noch ist die Tatsache, dass die internen Ausgangsvorspannungen f√ľr die FET-Transistoren im Vergleich zur Richtung, in die der Ausgang schaltet, optimal sind, was ihn zum bestm√∂glichen Gatter macht.

Die binären Eingangswerte der Bytes sehen aus wie 00000010 und 00000001, die an die Subtraktionseinheit weitergegeben werden.
Das zweite Byte wird an den Eingang des NICHT-Gatters angelegt, und das erste Byte wird in das Ausgangsregister geschoben, das dem zweiten Subtraktionsbit entspricht.
Das erste Bit des Eingangsbytes wird invertiert, d.h. die Eingabe einer binären 1, schaltet den Ausgang auf 0
Das erste Bit im Ausgaberegister hat aber keinen gespeicherten Wert von 1, von dem das Ergebnis subtrahiert werden kann, also ist das Carry-Bit gesetzt. Nun wird das Carry-Bit um eins nach oben verschoben, enthält unser Ergebnis von 0 und wird im zweiten Bit gespeichert, das auf 0 gesetzt wird, aber dies erzeugt einen numerischen Überlauf von 1, der in das Carry-Bit verschoben und im unteren Bit bit-0 gespeichert wird.

Hinweis: Die Beispielrechnungen entsprechen m√∂glicherweise nicht eins zu eins der Art und Weise, wie eine reale arithmetische Berechnung von CPU und GPU durchgef√ľhrt wird.

Am Ende der Operation wird das Ergebnis in das mov-Register verschoben und an den CPU-Cache zur√ľckgegeben, dann in den CPU-Cache verschoben und so weiter.

img 2

NOT AND

Logic gates combinations

The transistor count, for an AND-gate, might be around 15 transistors, while for the invertor NOT-gate, it might take less because it already has only one input.
Also as stated, the time it takes for the output to rise and fall is not zero, and an additional internal signal propagation delay is caused by the input transistor switching time.
Because of these physical performance differences, the NOT gate is far superior and the preferred choice over all other logic gates.

NOT-gates can be used to form other logic functions like addition.

We again calculate 1 + 1, but this time we use NOT-gates to form our ultra fast adder. We combine two NOT-gates in series, where a double inversion would result in the same state on the output. This time they use two of these double invertor strings in parallel to form the inputs, where on the connected output the result is the same numerical 2, as for the AND-gate, but much faster.

Note: The example calculations may not be one-by-one how a real world arithmetic calculation is performed by the CPU and GPU.

The division is another topic which is not working with the binary system. Not sure they may use inversed multiplication, to solve the division.

For the multiplication, the opposite is the case, where the binary system is the best possible solution, because the binary Byte follows the exponential algorithm, and not the linear one of our decimal system, and the multiplication of two whole numbers always results in a whole number, which is the same as the binary system.

Any computer can not use floating point numbers, because of the integer nature of the binary system. To solve the floating point numbers, a special logic unit is added to the instructions with the name FPU (Floating Point Unit).
The FPU is a complex calculator, to process floating point number and complex calculations direcltly. It provides trigonometric, logarithmic, and basic floating-point arithmetic functions. It contains a multiplier and two arithmetic units, one is used for exponent value calculations, and the other for mantissa value calculations.

The separate and parallel processing of the FPU makes the CPU much faster, and can be a seperate chip on the motherboard, for high performance systems or GPUs perhaps.

You may ask: "But how is the ALU able to compute floats, if the whole binary system is integer?"
If the numbers to add are 2.35 and 38.65, then the computer does first multiply each input by 100, to loose the floating points, thus the inputs become 235 and 3865 to add up, where the addition sum is 4100. To retreive the true numerical value, the computer must divide by 100, thus the numerical value is 41.00, but in the Byte it is stored as binary value with the information of the floating point, so to speak.

NICHT UND

Kombinationen logischer Gatter

Die Anzahl der Transistoren f√ľr ein UND-Gatter k√∂nnte etwa 15 Transistoren betragen, w√§hrend f√ľr das invertierende NICHT-Gatter weniger ben√∂tigt wird, da es bereits nur einen Eingang hat.
Außerdem ist die Zeit, die der Ausgang braucht, um anzusteigen und abzufallen, nicht Null, und eine zusätzliche interne Signallaufzeit wird durch die Schaltzeit der Eingangstransistoren verursacht.
Aufgrund dieser physikalischen Leistungsunterschiede ist das NICHT-Gatter allen anderen Logikgattern weit √ľberlegen und vorzuziehen.

NICHT-Gatter können zur Bildung anderer logischer Funktionen wie Addition verwendet werden.

Wir berechnen wieder 1 + 1, aber dieses Mal verwenden wir NICHT-Gatter, um unseren ultraschnellen Addierer zu bilden. Wir kombinieren zwei NICHT-Gatter in Reihe, bei denen eine doppelte Inversion den gleichen Zustand am Ausgang ergeben w√ľrde. Diesmal werden zwei dieser doppelten Invertierungsketten parallel verwendet, um die Eing√§nge zu bilden, wobei das Ergebnis am angeschlossenen Ausgang die gleiche Zahl 2 ist, wie beim UND-Gatter, aber viel schneller.

Hinweis: Die Beispielrechnungen sind nicht unbedingt eins zu eins so, wie eine reale arithmetische Berechnung von CPU und GPU durchgef√ľhrt wird.

Die Division ist ein weiteres Thema, das nicht mit dem Binärsystem funktioniert. Ich bin mir nicht sicher, ob sie die umgekehrte Multiplikation verwenden, um die Division zu lösen.

F√ľr die Multiplikation ist das Gegenteil der Fall, wo das Bin√§rsystem die bestm√∂gliche L√∂sung ist, weil das bin√§re Byte dem exponentiellen Algorithmus folgt und nicht dem linearen unseres Dezimalsystems, und die Multiplikation von zwei ganzen Zahlen immer eine ganze Zahl ergibt, was dem Bin√§rsystem entspricht.

Ein Computer kann keine Flie√ükommazahlen verwenden, da das Bin√§rsystem ganzzahlig ist. Um die Flie√ükommazahlen zu l√∂sen, wird den Instruktionen eine spezielle Logikeinheit mit dem Namen FPU (Floating Point Unit) hinzugef√ľgt.
Die FPU ist ein komplexer Rechner, um Flie√ükommazahlen und komplexe Berechnungen direkt zu verarbeiten. Sie bietet trigonometrische, logarithmische und grundlegende arithmetische Flie√ükommafunktionen. Er enth√§lt einen Multiplizierer und zwei Recheneinheiten, von denen eine f√ľr die Berechnung des Exponentenwertes und die andere f√ľr die Berechnung des Mantissenwertes verwendet wird.

Die separate und parallele Verarbeitung der FPU macht die CPU viel schneller und kann ein separater Chip auf der Hauptplatine sein, etwa f√ľr Hochleistungssysteme oder GPUs.

Du wirst vielleicht fragen: "Aber wie kann die ALU Gleitkommazahlen berechnen, wenn das gesamte Binärsystem ganzzahlig ist?"
Wenn die zu addierenden Zahlen 2,35 und 38,65 sind, dann multipliziert der Computer zunächst jede Eingabe mit 100, um die Fließkommazahlen zu verlieren, so dass die Eingaben 235 und 3865 werden, die zu addieren sind, wobei die Additionssumme 4100 beträgt. Um den wahren Zahlenwert zu erhalten, muss der Computer durch 100 dividieren, also ist der Zahlenwert 41,00, aber im Byte wird er sozusagen als Binärwert mit der Information der Fließkommazahl gespeichert.

img 2

Instructions

The logic macro cluster

But I hear you screaming, where is the bios, and the set of instructions? There must be some storage Ram or Rom inside the CPU!

The discussed logic gate units, forming clusters to compute certain operations, are macro functions, called instructions.
This set of instructions, is the most important part to use the CPU, since the CPU does nothing else than defined by the instructions. While these instruction functions, are again only logic gates in the end.

The bios contains system drivers, and a user interface, to administrate the hardware, present on the motherboard, or connected to it.
This data to load the bios and the drivers, is not stored in the CPU. It is stored on some additional chip EEPROM, or similar, which is an Electrically-Erasable-Programmable-Read-Only-Memory. The bios belongs to the motherboard, and is independent from the operating system, and the operating system itself is stored on the disk drive, or SSD.
But the motherboard bios, contains also drivers for all compatible versions of CPUs.

Every instruction is a macro function of our logic cluster units, with its single bit operations. In case of a micro controller, there is no such things as operating system, as the one you write to it.

Therefore micro controllers, can be programmed, in the assembly language, to use the instruction set directly, in conjunction of using the mov command to allocate the memory registers, as stated before.
This may sound silly, since one can use a C compiler to write the same code, but for high volume production, the program memory optimization and massive speed advantage of the assembly language suits best, which keeps even chip costs lower because of the memory and performance optimization gain, that allow a smaller slower chip, to achieve the same performance.

Instruktionen

Der logische Makro-Cluster

Aber ich höre dich schreien, wo ist das Bios und der Satz von Instruktionen? Es muss doch einen Ram oder Rom in der CPU geben!

Die besprochenen Logikgattereinheiten, die sich zu Clustern zusammenschließen, um bestimmte Operationen zu berechnen, sind Makrofunktionen, die Instruktionen genannt werden.
Dieser Satz von Befehlen ist der wichtigste Teil, um die CPU zu benutzen, da die CPU nichts anderes tut, als durch die Befehle definiert. Während diese Befehlsfunktionen im Endeffekt wieder nur Logikgatter sind.

Das Bios enthält Systemtreiber und eine Benutzeroberfläche, um die auf der Hauptplatine vorhandene oder mit ihr verbundene Hardware zu verwalten.
Diese Daten zum Laden des Bios und der Treiber sind nicht in der CPU gespeichert. Sie werden auf einem zusätzlichen Chip EEPROM oder ähnlichem gespeichert, der ein elektrisch abschaltbarer, programmierbarer Nur-Lese-Speicher ist. Das Bios gehört zur Hauptplatine und ist unabhängig vom Betriebssystem, und das Betriebssystem selbst ist auf dem Laufwerk oder der SSD gespeichert.
Aber das Motherboard-Bios enth√§lt auch Treiber f√ľr alle kompatiblen Versionen von CPUs.

Jeder Befehl ist eine Makrofunktion unserer Logik-Cluster-Einheiten mit ihren Einzelbit-Operationen. Bei einem Mikrocontroller gibt es so etwas wie ein Betriebssystem nicht, sondern nur das, was man auf ihn schreibt.

Daher können Mikrocontroller in der Assemblersprache programmiert werden, um den Befehlssatz direkt zu verwenden, in Verbindung mit der Verwendung des mov-Befehls, um die Speicherregister zuzuweisen, wie zuvor erwähnt.
Das mag albern klingen, da man einen C-Compiler verwenden kann, um den gleichen Code zu schreiben, aber f√ľr die Gro√üserienproduktion eignet sich die Programmspeicheroptimierung und der massive Geschwindigkeitsvorteil der Assemblersprache am besten, die sogar die Chipkosten niedriger h√§lt, weil der Speicher- und Leistungsoptimierungsgewinn es erlaubt, einen kleineren, langsameren Chip zu verwenden, um die gleiche Leistung zu erzielen.

img 2

Parasitic properties

Electronics 1O1

Computer technology is nothing else, than the macro cluster of electronic circuits, which are combined to form the CPU.
Thus the same physical problems apply to the integrated circuits, even thought they could mitigate the problems.

There is parasitic capacitance, inductance, and resistance, which limits the speed of data transfer at the transmission line level.

The problem is the signals will degrade in a way where the rising and falling edge of the digital signals will become shallower, thus if fed into the CPU, the worse thing is happening that could happen, as described already about the transistors switching.
It is the transition time, in a FET based transistor, that is using real power, while in the on-resistance is very small on the new GAN transistors, while the off-state even negligible.
A signal that would accidently stay at half of the core voltage could possibly even damage the tiny core transistor, while in usual switching conditions, it would live one, two or more decades of years.

In short words, transistor switching transition time, was optimized by using signal inverters on the receiving end, to shape a sharp edge out of degraded, slow rising and falling edges or even noisy signals.
Coincidentlyūüß© they use NOT-inverters, because of the superior output propagation speed, that re shapes the signal into steep rise and fall times.

Parasitäre Eigenschaften

Elektronik 1O1

Computertechnik ist nichts anderes, als der Makro-Cluster elektronischer Schaltungen, die zur CPU zusammengefasst werden.
Die gleichen physikalischen Probleme gelten also auch f√ľr die integrierten Schaltkreise, auch wenn sie die Probleme abmildern k√∂nnten.

Es gibt parasit√§re Kapazit√§ten, Induktivit√§ten und Widerst√§nde, die die Geschwindigkeit der Daten√ľbertragung auf der √úbertragungsleitungsebene begrenzen.

Das Problem ist, dass sich die Signale in einer Weise verschlechtern, dass die ansteigende und abfallende Flanke der digitalen Signale flacher wird, so dass, wenn sie in die CPU eingespeist werden, das Schlimmste passiert, was passieren kann, wie bereits √ľber das Schalten der Transistoren beschrieben.
Es ist die Übergangszeit in einem FET-basierten Transistor, die wirklich Strom verbraucht, während der Einschaltwiderstand bei den neuen GAN-Transistoren sehr gering ist, während der Aus-Zustand sogar vernachlässigbar ist.
Ein Signal, das versehentlich auf der H√§lfte der Kernspannung verharrt, k√∂nnte m√∂glicherweise sogar den winzigen Kerntransistor besch√§digen, w√§hrend er unter normalen Schaltbedingungen ein, zwei oder mehr Jahrzehnte leben w√ľrde.

Kurz gesagt, wurde die √úbergangszeit f√ľr das Schalten von Transistoren durch den Einsatz von Signalinvertern auf der Empfangsseite optimiert, um aus degradierten, langsamen steigenden und fallenden Flanken oder sogar verrauschten Signalen eine scharfe Kante zu formen.
Zuf√§lligerweiseūüß© verwenden sie NICHT-Inverter, da diese eine h√∂here Ausgangsgeschwindigkeit haben, die das Signal in steile Anstiegs- und Abfallzeiten umformt.

img 2

Impedance

Highspeed signal path

The forth fundamental problem of electronics is well know too. It is the input and output Impedance of each device in a circuit.
As analogy, say, I build a small analog electronic audio oscillator circuit, to generate a triangle wave signal, audible by feeding the output signal into a small usb powered active speaker. While the circuit is switched on, I got it to work somehow, and could hear the signal, but when switched on the next time and next day, the oscillator would not start to self oscillate.
Now I debug the running circuit by using the oscilloscope and as soon as I touch the timing capacitor branch, to analyse the signal, the oscillator starts to oscillate.
Magic! Or not?

This well known start up problem, is also the same issue in computer hardware, and software design.
The problem arises the moment a system starts up, the voltage of the positive power rail is 0 volts, and because of the start time of the PSU and its filter capacitors, the voltage will rise slowly to the nominal voltage, in comparison to the switching time of the transistors, which is in the nanosecond range.
In this period, where the positive power rail voltage is rising, transistors could switch on and off, randomly, and would be the worst case scenario.

The analog oscillator example represents the impedance problem, which is the exact same problem as for the CPU, Ram PCI bus and USB or LAN.
Impedance can be seen as the input and output current, drawn from the signal line. Means that any transmitting device on a circuit, is not delivering the signal for free, but it will draw a current from the signal line.
On the input of any electronic circuit device it is exactly the same, it draws a current from the signal line too. You may say, but that's not logic, because on the input side, it should not draw any current at all, hence the name amplifier, right? And therefore need no current to do so?

The device is only the macro view, while on the low level, it again is only transistors in different configurations, to provide the desired functions. Means that a input consists of multiple transistors, but to turn them on, a current is necessary on the input its base, to fill the carrier holes in the active region, thus the transistor on the input side, becomes only active, after drawing a current from the signal line.
This is why not one electronic device, has a zero amount output and input impedance which is the current drawn.

Low impedance means high current draw and high impedance means low current draw.

The solution for the analog oscillator circuit was to add a resistor and connect the other end to the ground. This now draws a pre defined current to the ground, so more current can flow from the power supply, into the timing circuit, to charge the timing capacitor, and finally switch the transistor on, to start oscillating.

For the digital circuits, the same rule applies, but the solution is to use pull-up and pull-down resistors, to keep the signal strong and referenced to the ground, so it does not switch, even if the supply voltage is rising slowly. The second important purpose is to match the input impedance to the output impedance of the previous device, to transmit the signal with the best possible signal integrity. All these pull down resistors, are actually built with transistors. But wait a minute, how could this be good, if there is always a current drawn from the signal outputs, and inputs? This could not be efficient, power consumption wise.
Well they simply can switch these pull down resistors on for the signal transmission period, and switch them off afterwords.Since everything is synchronized by the clock, the CPU can switch the pull down resistors on and off, very quickly.

In the analog oscillator circuit analogy, I forgot to account for the impedance, so the oscillator did not started.
It is because the oscillator timing current from the power supply, was so small, and had such a high impedance, that its signal current was not able to switch the transistor, to restart the oscillator cycle.
Its because the transistor gate current impedance would require a higher current, to switch it on.

The solution was to add a resistor and connect the other end to the ground. This now draws a pre defined current to the ground, so that more current can flow from the power supply into the timing circuit, to charge the timing capacitor and finally switch the transistor on.

Same issue with CPU's and microcontrollers, Ram and anything else connected with the CPU.
The solution for high speed signal lines, is to use a resistor to pull down the signal right after the output of a device. Now the output will deliver a stronger current to the signal line, which is low impedance means strong. At the receiving side just before the input, the same, a resistor is applied from signal to ground, to ensure that the output amplifier, delivers the current until the input.

This is called impedance matching, because an output stage will never have the same impedance as the input stage, thus we do match the impedance, and calculate the pull-down resistor, to create the same impedance as the input stage. The resistors are chosen so to have the exact same impedance at the signal line, to ensure signal integrity between devices.
Now the signal is literally pulled out of the output, and helps the output switching off, to generate the best possible edge.

You may say, but when the signal is switched on, and the impedance resistors are pulling to the ground, then the switch-on time would be terrible.
Yes but the switch-on is for a FET based transistor, lots of times easier, in comparison to the switch-off.
This is because the carrier holes in the gate, are charged quickly, but when switched off, the gate voltage must remove the carrier electrons from the active region, which is a charge in Coulombe, and represents a tiny parasitic gate capacitance.

The pull-down resistor, helps the signal output to switch off, as fast as possible, to maintain the best most signal integrity.
That may be the purpose, that the Master clock synchronization, is not following both, the positive and negative edge of the Master clock, but only the negative edge.

The computer uses in most cases preferably only the negative edge of the clock for all the processing, and peripheral devices. The clock is divided anyway, and if the data needs to be more dense, then they use a less divided clock signal instead, that provides twice the clock speed, and then they use two negative edges.
This approach is used for all devices in the periphery, and even all external devices.

Note: Born in Switzerland, I feel very bad and guilty about the past, but I still use the term Master, because the word itself is never guilty, it was only what we made out of it.
For example, the apprentice sais: "Thank you Master!"

Impedanz

Hochgeschwindigkeits-Signalweg

Das vierte Grundproblem der Elektronik ist ebenfalls gut bekannt. Es ist die Eingangs- und Ausgangsimpedanz jedes Bauteils in einer Schaltung.
Sagen wir, ich baue eine kleine analoge elektronische Audio-Oszillatorschaltung, um ein Dreieckssignal zu erzeugen, das durch Einspeisung des Ausgangssignals in einen kleinen usb-betriebenen Aktivlautsprecher hörbar wird. Wenn ich die Schaltung einschalte, funktioniert sie irgendwie und ich kann das Signal hören, aber wenn ich sie das nächste Mal einschalte und am nächsten Tag, fängt der Oszillator nicht an, selbst zu schwingen.
Nun teste ich die laufende Schaltung mit dem Oszilloskop und sobald ich den Zeitkondensator-Zweig ber√ľhre, um das Signal zu analysieren, beginnt der Oszillator zu schwingen.
Magie! Oder nicht?

Dieses wohlbekannte Startproblem tritt auch bei der Entwicklung von Computerhardware und -software auf.
Das Problem entsteht in dem Moment, in dem ein System hochfährt, die Spannung der positiven Stromschiene 0 Volt beträgt und aufgrund der Anlaufzeit des Netzteils und seiner Filterkondensatoren langsam auf die Nennspannung ansteigt, im Vergleich zur Schaltzeit der Transistoren, die im Nanosekundenbereich liegt.
In dieser Zeit, in der die positive Stromschienenspannung ansteigt, k√∂nnten die Transistoren wahllos ein- und ausschalten, was den schlimmsten Fall darstellen w√ľrde.

Das Beispiel des analogen Oszillators stellt das Impedanzproblem dar, das genau dasselbe Problem ist wie bei der CPU, dem Ram-PCI-Bus und USB oder LAN.
Die Impedanz kann als der Eingangs- und Ausgangsstrom betrachtet werden, der der Signalleitung entnommen wird. Das bedeutet, dass jedes sendende Gerät in einem Stromkreis das Signal nicht umsonst abgibt, sondern einen Strom aus der Signalleitung zieht.
Am Eingang eines jeden elektronischen Schaltkreises ist es genau dasselbe, auch er zieht einen Strom aus der Signalleitung. Du wirst vielleicht sagen, das ist aber nicht logisch, denn auf der Eingangsseite sollte er √ľberhaupt keinen Strom ziehen, daher der Name Verst√§rker, richtig? Und deshalb braucht er auch keinen Strom daf√ľr?

Das Ger√§t ist nur die Makroansicht, w√§hrend es auf der unteren Ebene wiederum nur aus Transistoren in verschiedenen Konfigurationen besteht, um die gew√ľnschten Funktionen bereitzustellen. Das bedeutet, dass ein Eingang aus mehreren Transistoren besteht, aber um sie einzuschalten, ist ein Strom an der Basis des Eingangs erforderlich, um die Tr√§gerl√∂cher im aktiven Bereich zu f√ľllen, so dass der Transistor auf der Eingangsseite erst aktiv wird, nachdem er einen Strom aus der Signalleitung gezogen hat.
Deshalb hat kein einziges elektronisches Gerät eine Ausgangs- und Eingangsimpedanz von Null, die dem gezogenen Strom entspricht.

Niedrige Impedanz bedeutet hohe Stromaufnahme und hohe Impedanz bedeutet niedrige Stromaufnahme.

Die L√∂sung f√ľr die analoge Oszillatorschaltung bestand darin, einen Widerstand hinzuzuf√ľgen und das andere Ende mit der Masse zu verbinden. Dadurch wird nun ein vordefinierter Strom zur Masse gezogen, so dass mehr Strom von der Stromversorgung in die Zeitschaltung flie√üen kann, um den Zeitkondensator aufzuladen und schlie√ülich den Transistor einzuschalten, damit er zu schwingen beginnt.

F√ľr die digitalen Schaltungen gilt die gleiche Regel, aber die L√∂sung besteht darin, Pull-up- und Pull-down-Widerst√§nde zu verwenden, um das Signal stark und auf Masse bezogen zu halten, damit es nicht umschaltet, auch wenn die Versorgungsspannung langsam ansteigt. Der zweite wichtige Zweck ist die Anpassung der Eingangsimpedanz an die Ausgangsimpedanz des vorherigen Ger√§ts, um das Signal mit der bestm√∂glichen Signalintegrit√§t zu √ľbertragen. Alle diese Pull-Down-Widerst√§nde sind eigentlich mit Transistoren aufgebaut. Aber Moment mal, wie kann das gut sein, wenn immer ein Strom von den Signalausg√§ngen und -eing√§ngen gezogen wird? Das kann doch nicht effizient sein, was den Stromverbrauch angeht. Da alles durch den Taktgeber synchronisiert wird, kann die CPU die Pull-Down-Widerst√§nde sehr schnell ein- und ausschalten. Die CPU kann die Pull-Down-Widerst√§nde f√ľr die Dauer der Signal√ľbertragung ein- und ausschalten.

In der Analogie der Oszillatorschaltung habe ich vergessen, die Impedanz zu ber√ľcksichtigen, so dass der Oszillator nicht ansprang.
Das liegt daran, dass der Oszillator-Taktstrom von der Stromversorgung so klein war und eine so hohe Impedanz hatte, dass sein Signalstrom nicht in der Lage war, den Transistor zu schalten, um den Oszillatorzyklus neu zu starten.
Das liegt daran, dass die Impedanz des Transistor-Gate-Stroms einen h√∂heren Strom erfordern w√ľrde, um ihn einzuschalten.

Die L√∂sung bestand darin, einen Widerstand hinzuzuf√ľgen und das andere Ende mit der Masse zu verbinden. Dadurch wird nun ein vordefinierter Strom zur Masse gezogen, so dass mehr Strom von der Stromversorgung in den Zeitschaltkreis flie√üen kann, um den Zeitkondensator aufzuladen und schlie√ülich den Transistor einzuschalten.

Gleiches Problem bei CPUs und Mikrocontrollern, Ram und allem anderen, was mit der CPU verbunden ist.
Die L√∂sung f√ľr Hochgeschwindigkeits-Signalleitungen ist die Verwendung eines Widerstands, um das Signal direkt nach dem Ausgang eines Ger√§ts herunterzuziehen. Jetzt liefert der Ausgang einen st√§rkeren Strom an die Signalleitung, die niederohmig und damit stark ist. Auf der Empfangsseite wird kurz vor dem Eingang ebenfalls ein Widerstand von Signal zu Masse gelegt, um sicherzustellen, dass der Ausgangsverst√§rker den Strom bis zum Eingang liefert.

Dies wird als Impedanzanpassung bezeichnet, da eine Ausgangsstufe nie die gleiche Impedanz wie die Eingangsstufe haben wird, daher passen wir die Impedanz an und berechnen den Pull-down-Widerstand, um die gleiche Impedanz wie die Eingangsstufe zu erreichen. Die Widerstände werden so gewählt, dass sie genau die gleiche Impedanz an der Signalleitung haben, um die Signalintegrität zwischen den Geräten zu gewährleisten.
Nun wird das Signal buchstäblich aus dem Ausgang herausgezogen und hilft dem Ausgang beim Abschalten, um die bestmögliche Flanke zu erzeugen.

Du magst sagen, aber wenn das Signal eingeschaltet wird und die Impedanzwiderstände gegen Masse ziehen, dann wäre die Einschaltzeit schrecklich.
Ja, aber das Einschalten ist bei einem Transistor auf FET-Basis um ein Vielfaches einfacher, als das Ausschalten.
Das liegt daran, dass die Ladungsträgerlöcher im Gate schnell geladen werden, aber beim Ausschalten muss die Gatespannung die Ladungsträgerelektronen aus dem aktiven Bereich entfernen, was eine Ladung in Coulombe ist und eine winzige parasitäre Gatekapazität darstellt.

Der Pull-Down-Widerstand hilft, den Signalausgang so schnell wie möglich abzuschalten, um die bestmögliche Signalintegrität zu erhalten.
Das kann der Grund daf√ľr sein, dass die Masterclock-Synchronisation nicht sowohl der positiven als auch der negativen Flanke der Masterclock folgt, sondern nur der negativen Flanke.

Der Computer verwendet in den meisten F√§llen vorzugsweise nur die negative Flanke des Taktes f√ľr alle Verarbeitungs- und Peripherieger√§te. Der Takt wird ohnehin geteilt, und wenn die Daten dichter sein m√ľssen, dann wird stattdessen ein weniger geteiltes Taktsignal verwendet, das die doppelte Taktgeschwindigkeit bietet, und dann werden zwei negative Flanken verwendet.
Dieser Ansatz wird f√ľr alle Ger√§te in der Peripherie und sogar f√ľr alle externen Ger√§te verwendet.

Anmerkung: Als geb√ľrtiger Schweizer f√ľhle ich mich sehr schlecht und schuldig wegen der Vergangenheit, aber ich benutze immer noch den Begriff Meister, denn das Wort selbst ist nie schuldig, es war nur das, was wir daraus gemacht haben.
Zum Beispiel, der Lehrling sagt: "Danke, Meister!"

img 2

System design

The startup problem

The initialization state is the forth fundamental problem of electronic circuits and is well known too.
As analogy, say, I build a small analog electronic audio oscillator circuit, to generate a triangle wave signal, audible by feeding it into a small usb powered active speaker. While the circuit is switched on, I got it to work somehow, and could hear the signal, but when switched on the next time and next day, the oscillator would not start to self oscillate.
Now I debug the running circuit by using the oscilloscope and as soon as I touch the timing capacitor branch, to analyse the signal, the oscillator starts to oscillate.
Magic! Or not?

This well known start up problem, is also the same issue in computer hardware, and software design. It is the problem that at the moment a system starts, the voltage of the positive power rail is 0 volts, and because of the start time of the PSU and its filter capacitors, the voltage will rise slowly to the nominal voltage, in comparison to the switching time of the transistors, which is in the nanosecond range.
In this period, where the positive power rail voltage is rising, transistors could switch on and off, randomly, and would be the worst case scenario.
All these pull down resistors, are actually also built with transistors, as described in this article.

But wait a minute, how could this be good, if there is always a current drawn from the signal outputs, and inputs? This could not be efficient, power consumption wise.
Well they simply can switch these pull down resistors on for the signal transmission period, and switch them off afterwords.Since everything is synchronized by the clock, the CPU can switch the pull down resistors on and off, very quickly.

But who tells the cpu, to load information from the program or bios memory, in order to begin initializing the periferals like usb, and not hung up at system start?
Where could it know the instructions for the memory controller to load all the data in sequence, and in the end the operating system?
It is also possible to store certain information directly in the CPU. One think that this is true, but only until the supply power is removed, because of the volatile nature of the cpu and its cache.
This is true for Ram but not for Rom, read-only-memory.

If you use a transistor, and permanently connect the gate to the supply rail or the ground, then you can build Rom, out of transistors.
This is it, and shows the ingenious invention of the transistor, and its versatile use.

The CPU cache and any other data register units, are all based on this configuration, its called flip-flop.
The flip-flop is a transistor based memory cell for ram and cache, which can store a bit, but the new ram technology has moved into using a cpacitor based memory cell for each bit to enhance performance.

The code wise startup problem, is solved by using Rom based registers, which afterwards can be set to the required state. After this default initialisation, and the bios driver connection, the CPU execution stack will read the first program line, but for a usual smart device or computer this is the bootloader, which is the first program to load the operating system.

Systemaufbau

Das Startup-Problem

Das Initialisierungsproblem ist das vierte fundamentale Problem elektronischer Schaltungen und ist auch gut bekannt.
Zum Vergleich: Ich baue eine kleine analoge elektronische Audio-Oszillatorschaltung, um ein Dreieckssignal zu erzeugen, das ich in einen kleinen usb-betriebenen Aktivlautsprecher einspeise. Wenn ich die Schaltung einschalte, funktioniert sie irgendwie, und ich kann das Signal hören, aber wenn ich sie das nächste Mal einschalte und am nächsten Tag, fängt der Oszillator nicht an zu schwingen.
Nun teste ich die laufende Schaltung mit dem Oszilloskop und sobald ich den Zeitkondensator-Zweig ber√ľhre, um das Signal zu analysieren, beginnt der Oszillator zu schwingen.
Magie! Oder nicht?

Dieses wohlbekannte Startproblem tritt auch bei der Entwicklung von Computerhardware und -software auf. Es ist das Problem, dass in dem Moment, in dem ein System startet, die Spannung der positiven Stromschiene 0 Volt beträgt, und aufgrund der Anlaufzeit des Netzteils und seiner Filterkondensatoren steigt die Spannung langsam auf die Nennspannung an, im Vergleich zur Schaltzeit der Transistoren, die im Nanosekundenbereich liegt.
In dieser Zeit, in der die positive Stromschienenspannung ansteigt, k√∂nnten die Transistoren wahllos ein- und ausschalten, was den schlimmsten Fall darstellen w√ľrde.
Alle diese Pull-Down-Widerstände sind eigentlich auch mit Transistoren aufgebaut, wie in diesem Artikel beschrieben.

Aber Moment mal, wie kann das gut sein, wenn von den Signalausg√§ngen und -eing√§ngen immer ein Strom abgezogen wird? Das kann doch nicht effizient sein, was den Stromverbrauch angeht. Da alles durch den Taktgeber synchronisiert wird, kann die CPU die Pull-Down-Widerst√§nde sehr schnell ein- und ausschalten. Die CPU kann die Pull-Down-Widerst√§nde einfach f√ľr die Dauer der Signal√ľbertragung ein- und ausschalten.

Aber wer sagt der CPU, dass sie Informationen aus dem Programm- oder Biospeicher laden soll, um die Initialisierung der Peripheriegeräte wie z.B. usb zu beginnen, und sich nicht beim Systemstart aufzuhängen?
Woher k√∂nnte er die Instruktionen f√ľr den Speichercontroller kennen, um alle Daten nacheinander zu laden, und am Ende das Betriebssystem?
Es ist auch m√∂glich, bestimmte Informationen direkt in der CPU zu speichern. Man meint, dass das stimmt, aber nur solange, bis die Stromversorgung unterbrochen wird, wegen der fl√ľchtigen Natur der CPU und ihres Caches.
Das gilt f√ľr Ram, aber nicht f√ľr Rom, read-only-memory.

Wenn man einen Transistor verwendet und das Gate dauerhaft mit der Versorgungsschiene oder der Masse verbindet, dann kann man Rom aus Transistoren bauen.
Das ist es, und zeigt die geniale Erfindung des Transistors, und seine vielseitige Verwendung.

Der CPU-Cache und alle anderen Datenregistereinheiten basieren alle auf dieser Konfiguration, die Flip-Flop genannt wird.
Das Flip-Flop ist eine auf Transistoren basierende Speicherzelle f√ľr Ram und Cache, die ein Bit speichern kann, aber die neue Ram-Technologie ist dazu √ľbergegangen, f√ľr jedes Bit eine auf einem Kondensator basierende Speicherzelle zu verwenden, um die Leistung zu verbessern.

Das codebedingte Startproblem wird durch die Verwendung von Rom-basierten Registern gel√∂st, die anschlie√üend auf den gew√ľnschten Zustand eingestellt werden k√∂nnen. Nach dieser Standardinitialisierung und dem Anschluss des Bios-Treibers liest der CPU-Ausf√ľhrungsstapel die erste Programmzeile, aber bei einem gew√∂hnlichen Smart Device oder Computer ist dies der Bootloader, der das erste Programm zum Laden des Betriebssystems ist.

img 2

Silicon semiconductor

Manufacturing process

The manufacturing prcocess is simple to understand. As base substrate, the silicon is used, and the transistors are etched into the silicon. But this sounds unreal, how could this work?
Simplified lets look at one NPN transistor.
They begin with to deposit a thin layer of N-type metal on the silicon, to create a conductive layer, by using metal vapor deposition.
Then they use a photo resist, to cover the die, and expose only a tiny area, which is called isle, for the drain.
Then they use acid to etch away the metal deposit, which is not exposed.
Now the photo resist isle for the gate is smaller, so to leave space for the final connection.
Next the P-type material, for the gate is deposited, but for make the gate conductive in the on-state, they dope the material with a chemical, to create, and engage the carrier holes.
Now the photo resist isle for the source is again smaller than the other two, for the connections.
After the deposition of the conductive N-type layer, for the source, the photo resist is removed, and the die is cleaned.
To use the transistor on a printed circuit board, the physical legs of the component are connected to the die by tack welding a thin gold wire to the corresponding metal layer, which represents the source, gate and drain isles.

But there is much more to it, because this was only a single transistor example.
In reality, things may be different, so even for a single discrete transistor, on the silicon die level, they use transistors in parallel, to increase the current, reusability, and therefore production and product costs.

That is why all signal lines must be on the CPU too, and also the power supply and ground planes.
To achieve such an amazing density, non conductive layers are used to isolate the conductive layers, like growing a crystal surface.

Many layers might be applied, to achieve the desired density, and now the physical constraints become more obvious.
On one hand the signal lines are using vertical space, and must be stacked in several layers. On one layer, the tracks are designed only in the X-axis, while on the second layer, the tracks are designed in the Y-axis, because the signal lines, can not cross each other, inside the same layer. Then these two signal layers, must be connected, with the via technology, which is a tiny hole, with metal deposited, to connect the two signal layer lines.
This is done, to all other power supply core voltages, and ground layers.

To get around this problem, they invented serial processing of all data, using multiplexers for data transmission to reach every possible destination in the CPU and everywhere else. The multiplexer is usually a bank of 8 switches, when if overlap multiple of these, it create a matrix, to switch the data to the desired destination. There is nothing else ever in the CPU to compute, than the data. The shift registers, the data transfer, and all moving Bytes, are processed in serial manner.
It is called the shift registers, but now we understood, that it is only a row of flip-flops, that shifts bits in one direction of the row. I think, that there is mostly only these flip-flops, because if you think about the data transfer, inside the CPU, then the data is never moving directly, but only the state is transferred, out of, and back into, the core.
The Ram memory, is nothing else then the other half of the CPU, populated with flip-flops, for storage.
Its because of the small cache inside the CPU, that can not hold lots of data, that's why the core using it only as cache, to shift the data in and out of the Ram. From there, the data can be shifted to the GPU's vRam or the peripheral devices, like usb, lan, or audio in and out.

Silizium-Halbleiter

Herstellungsprozess

Der Herstellungsprozess ist einfach zu verstehen. Als Basissubstrat wird Silizium verwendet, und die Transistoren werden in das Silizium geätzt. Aber das klingt unwirklich, wie soll das funktionieren?
Vereinfacht betrachten wir einen NPN-Transistor.
Zun√§chst wird eine d√ľnne Schicht N-leitenden Metalls auf das Silizium aufgebracht, um eine leitende Schicht zu erzeugen, und zwar durch Metallbedampfung.
Dann wird ein Fotoresist verwendet, um den Chip zu bedecken und nur einen winzigen Bereich, die sogenannte Insel, f√ľr den Drain freizulegen.
Dann ätzt man mit Säure die Metallschicht weg, die nicht freigelegt ist.
Nun ist die Fotoresistinsel f√ľr das Gate kleiner, um Platz f√ľr die endg√ľltige Verbindung zu lassen.
Als N√§chstes wird das P-Typ-Material f√ľr das Gate abgeschieden, aber um das Gate im Durchlasszustand leitf√§hig zu machen, wird das Material mit einer Chemikalie dotiert, um die Tr√§gerl√∂cher zu erzeugen und zu aktivieren.
Nun ist die Fotolackinsel f√ľr die Quelle wieder kleiner als die anderen beiden, f√ľr die Anschl√ľsse.
Nach der Abscheidung der leitenden N-Schicht f√ľr die Source wird der Fotoresist entfernt und der Chip gereinigt.
Um den Transistor auf einer Leiterplatte zu verwenden, werden die physischen Beine des Bauelements mit dem Die verbunden, indem ein d√ľnner Golddraht an die entsprechende Metallschicht geheftet wird, die die Source-, Gate- und Drain-Inseln darstellt.

Aber es gibt noch viel mehr, denn dies war nur ein Beispiel f√ľr einen einzelnen Transistor.
In der Realit√§t k√∂nnen die Dinge anders liegen, so dass selbst f√ľr einen einzelnen diskreten Transistor auf der Silizium-Die-Ebene Transistoren parallel geschaltet werden, um den Strom, die Wiederverwendbarkeit und damit die Produktions- und Produktkosten zu erh√∂hen.

Deshalb m√ľssen auch alle Signalleitungen auf der CPU liegen, ebenso wie die Stromversorgungs- und Massefl√§chen.
Um eine solch erstaunliche Dichte zu erreichen, werden nicht leitende Schichten verwendet, um die leitenden Schichten zu isolieren, wie bei der Z√ľchtung einer Kristalloberfl√§che.

Um die gew√ľnschte Dichte zu erreichen, k√∂nnen viele Schichten aufgebracht werden, und nun werden die physikalischen Zw√§nge deutlicher.
Einerseits beanspruchen die Signalleitungen vertikalen Raum und m√ľssen in mehreren Schichten gestapelt werden. Auf einer Schicht werden die Leiterbahnen nur in der X-Achse verlegt, w√§hrend auf der zweiten Schicht die Leiterbahnen in der Y-Achse verlegt werden, da sich die Signalleitungen innerhalb der gleichen Schicht nicht kreuzen k√∂nnen. Dann m√ľssen diese beiden Signalschichten mit der Via-Technologie verbunden werden, d.h. mit einem winzigen Loch, in das Metall eingebracht wird, um die beiden Signalschichtleitungen zu verbinden.
Dies geschieht mit allen anderen Stromversorgungs-Kernspannungen und Masseschichten.

Um dieses Problem zu umgehen, erfand man die serielle Verarbeitung aller Daten und verwendete Multiplexer f√ľr die Daten√ľbertragung, um alle m√∂glichen Ziele in der CPU und √ľberall sonst zu erreichen. Der Multiplexer ist in der Regel eine Bank mit 8 Schaltern, die, wenn sie mehrere √ľberlappen, eine Matrix bilden, um die Daten an das gew√ľnschte Ziel zu leiten. Es gibt in der CPU nichts anderes zu berechnen, als die Daten. Die Schieberegister, der Datentransfer und alle sich bewegenden Bytes werden seriell verarbeitet.
Es hei√üt zwar Schieberegister, aber wir haben jetzt verstanden, dass es nur eine Reihe von Flip-Flops ist, die Bits in eine Richtung der Reihe verschieben. Ich denke, dass es meistens nur diese Flipflops gibt, denn wenn man an den Datentransfer innerhalb der CPU denkt, dann werden die Daten nie direkt bewegt, sondern nur der Zustand wird aus dem Kern heraus und wieder hinein √ľbertragen.
Der Ram-Speicher ist nichts anderes als die andere Hälfte der CPU, bevölkert mit Flip-Flops, zur Speicherung.
Da der kleine Cache in der CPU nicht viele Daten aufnehmen kann, benutzt der Kern ihn nur als Cache, um die Daten in und aus dem Ram zu verschieben. Von dort aus können die Daten in den vRam der GPU oder in die Peripheriegeräte wie USB, LAN oder Audio ein- und ausgelagert werden.

img 2

Core execution stack

Shift register matrix

The execution stack uses rows, forming columns of rows, of shift registers, that are connected in both directions, to shift the data into, and out of, the signal lines.
The data is shifted sideways, but as soon as the Byte is ready, the whole Byte advances in the Y-axis, to move the data to the next row in one clock cycle, and therefore, advance foreward, inside the execution stack.

You might think, but what is this good for?
The CPU core can not process an instruction in a single cycle, but need multiple cycles, to process the data. But on this flip-flop bit level, as described, things are very very minimalistic.
To come back to our 1 + 1 example, the CPU would first preserve two Bytes, with the numbers in it, store them in the cache, just to establish the connection to the logic adder unit, then shift into the adder unit, and move the result back, into a cache shift register of the CPU execution stack.

The shift register and multiplexers are the main component to make it work.
It is nothing else, than a row of 8 flip-flops, with one input for each bit. In the execution stack, it works the same, where the CPU has these shift register rows connected in both axis, and the data can advance in both directions.

You may say, this sounds like a chess game but I still thought the core of my CPU is different, than these flip-flops, forming the shift registers. I have a CPU with cores and not a shift register.

Well, back to the problem of the connectivity, of all the subsequent logic units, which in the end, consisting out of single transistors.
How could you make millions of different connections, to all the possible destinations inside the CPU, if all is fixed and heavily constrained by the physical limitations, compared to the ammount of transistor sub circuits?
It is the only possible way to solve this problem, imagine, the subsequent logic units might be connected as directly as possible to the execution stack. But there is a couple of them to connect to, that is why many of these data shift registers and the corresponding multiplexers are used.
That's way the data can be shifted in three directions, to reach all possible other data shift registers, connected to the execution stack. A Byte can advance inside the execution stack to the next row, and then shifted in serial manner into, and out of, the core execution stack.

It is called pipelines, where the execution stack direction is the direction of the pipeline. When the execution stack advances, our two numbers advance on the same line, each number byte in its own pipeline, and when the line of the output multiplexer is reached, both number bytes are shifted into the adder simultaneously, and the result back into the execution stack.
The transistors propagation time, is much smaller than one clock execution cycles which in reality is a division of the Master clock frequency.

The clock speed eliminates the physical switching difference error of the transistors, their temperature dependance error, and the parasitic capacitance, inductance, and resistance, of the signal lines. Beyond this optimization, errors are further excluded by tossing the LSB

This noise imunity is the main advantage behind digital circuits

Kernausf√ľhrungsstapel

Schieberegistermatrix

Der Ausf√ľhrungsstapel verwendet Reihen, die Spalten von Reihen bilden, von Schieberegistern, die in beide Richtungen verbunden sind, um die Daten in die Signalleitungen hinein und aus ihnen heraus zu schieben.
Die Daten werden seitlich verschoben, aber sobald das Byte fertig ist, schiebt sich das gesamte Byte in der Y-Achse vor, um die Daten in einem Taktzyklus in die n√§chste Zeile zu verschieben und somit innerhalb des Ausf√ľhrungsstapels vorw√§rts zu kommen.

Du wirst vielleicht denken, aber wozu ist das gut?
Der CPU-Kern kann einen Befehl nicht in einem einzigen Zyklus verarbeiten, sondern braucht mehrere Zyklen, um die Daten zu verarbeiten. Aber auf dieser Flipflop-Bit-Ebene, wie beschrieben, sind die Dinge sehr, sehr minimalistisch.
Um auf unser 1 + 1 Beispiel zur√ľckzukommen, w√ľrde die CPU zun√§chst zwei Bytes, mit den Zahlen darin, im Cache speichern, nur um die Verbindung zur logischen Addiereinheit herzustellen, dann in die Addiereinheit schieben und das Ergebnis zur√ľck in ein Cache-Schieberegister des CPU-Ausf√ľhrungsstapels verschieben.

Das Schieberegister und die Multiplexer sind die Hauptkomponenten, damit es funktioniert.
Es ist nichts anderes als eine Reihe von 8 Flip-Flops, mit einem Eingang f√ľr jedes Bit. Im Ausf√ľhrungsstapel funktioniert es genauso, wobei die CPU diese Schieberegisterreihen in beiden Achsen verbunden hat und die Daten in beide Richtungen vorr√ľcken k√∂nnen.

Du wirst vielleicht sagen, das klingt wie ein Schachspiel, aber ich dachte immer noch, dass der Kern meiner CPU anders ist als diese Flipflops, die die Schieberegister bilden. Ich habe eine CPU mit Kernen und nicht mit einem Schieberegister.

Nun, zur√ľck zum Problem der Verschaltung all der nachfolgenden Logikeinheiten, die ja letztlich aus einzelnen Transistoren bestehen.
Wie könnte man Millionen von verschiedenen Verbindungen zu allen möglichen Zielen innerhalb der CPU herstellen, wenn alles feststeht und durch die physikalischen Beschränkungen im Vergleich zur Anzahl der Transistor-Unterschaltungen stark eingeschränkt ist?
Die einzige M√∂glichkeit, dieses Problem zu l√∂sen, ist, sich vorzustellen, dass die nachfolgenden Logikeinheiten so direkt wie m√∂glich mit dem Ausf√ľhrungsstapel verbunden werden k√∂nnen. Davon gibt es aber einige, deshalb werden viele dieser Datenschieberegister und die entsprechenden Multiplexer verwendet.
Auf diese Weise k√∂nnen die Daten in drei Richtungen verschoben werden, um alle m√∂glichen anderen Datenschieberegister zu erreichen, die mit dem Ausf√ľhrungsstapel verbunden sind. Ein Byte kann innerhalb des Ausf√ľhrungsstapels in die n√§chste Zeile vorr√ľcken und dann seriell in den Kernausf√ľhrungsstapel hinein und aus ihm heraus geschoben werden.

Das nennt man Pipelines, wobei die Richtung des Ausf√ľhrungsstapels die Richtung der Pipeline ist. Wenn sich der Ausf√ľhrungsstapel vorw√§rts bewegt, bewegen sich unsere beiden Zahlen auf der gleichen Zeile, jedes Zahlenbyte in seiner eigenen Pipeline, und wenn die Zeile des Ausgangsmultiplexers erreicht ist, werden beide Zahlenbytes gleichzeitig in den Addierer und das Ergebnis zur√ľck in den Ausf√ľhrungsstapel geschoben.
Die Durchlaufzeit der Transistoren ist viel kleiner als ein Taktausf√ľhrungszyklus, der in Wirklichkeit eine Division der Haupttaktfrequenz ist.

Die Taktgeschwindigkeit eliminiert den physikalischen Schaltdifferenzfehler der Transistoren, ihren temperaturabhängigen Fehler und die parasitäre Kapazität, Induktivität und den Widerstand der Signalleitungen. Über diese Optimierung hinaus werden Fehler weiter ausgeschlossen, indem das LSB geworfen wird

Diese Rauscharmut ist der Hauptvorteil digitaler Schaltungen

img 2

Distortion LSB

The Last Significant Bit

We think of switches, and flip-flops, shift registers, but in reality these are all transistors forming each bit, but in several configurations, to provide the function needed.

Just think about the shift register, to store a value, with set and reset, as they call it.
A flip-flop, is to store data, and to do so, the clock signal must be present, and the enable input must be activated, to store the data, which is the bit state, and then the data can be shifted sideways.

Is this all working without errors?

They found that the inaccuracy seems to affect only the first bit in any systems word length, including 64 bit.
Also the last bit, the most-significant-bit (MSB), is used and preserved as the carry over bit, to tell the receiving end, that the data is bigger than the current byte.
As I explained, they would use multiple Bytes to store one large number, and so they toss the LSB bit, and use the MSB bit as the carry over bit.
This was necessary, to ensure precision, on any calculations, where the result can not just be another, than the correct one.
Otherwise the computer would be useless, for serious calculations.
Today the security standard, in the internet and banking systems for example, are pretty secure, and the computers, or smart devices seem to never make a misstake.
That is how the LSB bit was tossed.

Verzerrung LSB

Das letzte signifikante Bit

Wir denken an Schalter, Flip-Flops und Schieberegister, aber in Wirklichkeit sind das alles Transistoren, die jedes Bit bilden, aber in verschiedenen Konfigurationen, um die ben√∂tigte Funktion zu erf√ľllen.

Man denke nur an das Schieberegister, um einen Wert zu speichern, mit Set und Reset, wie man es nennt.
Ein Flip-Flop dient dazu, Daten zu speichern, und dazu muss das Taktsignal vorhanden sein, und der Freigabeeingang muss aktiviert sein, um die Daten, d.h. den Bitzustand, zu speichern, und dann können die Daten seitwärts verschoben werden.

Funktioniert das alles ohne Fehler?

Sie haben herausgefunden, dass die Ungenauigkeit nur das erste Bit in allen Systemwortlängen, einschließlich 64 Bit, zu betreffen scheint.
Auch das letzte Bit, das most-significant-bit (MSB), wird als Übertragsbit verwendet und beibehalten, um dem Empfänger mitzuteilen, dass die Daten größer sind als das aktuelle Byte.
Wie ich erkl√§rt habe, w√ľrden sie mehrere Bytes verwenden, um eine gro√üe Zahl zu speichern, und deshalb werfen sie das LSB-Bit weg und verwenden das MSB-Bit als √úbertragsbit.
Dies war notwendig, um die Genauigkeit bei allen Berechnungen zu gewährleisten, bei denen das Ergebnis nicht einfach ein anderes sein kann als das richtige.
Andernfalls w√§re der Computer f√ľr ernsthafte Berechnungen unbrauchbar.
Heute sind die Sicherheitsstandards, z.B. im Internet und in Bankensystemen, ziemlich sicher, und die Computer oder intelligenten Geräte scheinen nie einen Fehler zu machen.
So wurde das LSB-Bit weggeworfen.

img 2

SOC logic

System On Chip

The gates provide the CPU compute, and there seems nothing else inside except that, while each logic gate itself, consists out of single transistors, working together.

In fact it was completely the other way around, where at first they invented all these possible logic circuits by using discrete transistors, and passive resistors and capacitors. The first affordable computers had a CPU but to use it with the periferals, lots of logic unit devices, where necessary on the motherboard too. As example, the Ram device would have only 4k of memory, thus they used 16 of these to get 64k of Ram memory.
These additional logic IC's are made in two voltage standarts, the CMOS series and the TTL logic IC series, where the CMOS Complementary metal-oxide-semiconductor series, have a variable supply voltage, and the TTL Transistor-transistor-logic series, are fixed at 5 volt supply voltage. To connect and translate 12 volt, and other voltage signals from the printer parallel port and other ports, perhaps the display port, CMOS logic IC's were used, while for the CPU, Ram memory and other logic IC's on the motherboard, TTL logic standard would connect directly to the core voltage of 5 volts.
Inside a computer there was just a bunch of these logic IC's, where one was noticable bigger, which was the CPU without a heat sink necessary.

But it did not stopped there. At first the microcontroller (MCU) was invented by the Microchip company, around the year 2000, which included a small cpu with a clock and some program and runtime memory, to simplify the development of small devices.
It was, and is, not only a pain, to design a mother board layout, with no error, but it takes less space to use only a single chip, while the price for one device was also reduced by a lot, besides the lower power consumption, which allowed to design reasonable battery powered devices, to fuel the start of the smart devices area.
The later ingenious step was to create an IC with a 'System On Chip' (SOC), which has a multi core CPU, program memory, peripheral devices, like LAN, USB controller, sensors, AD-DA analog convertor for audio and sensors, and some may have Ram, GPU, vRAM, to suit all application cases, with the smallest possible hardware footprint, device count and product cost.

These SOC's are now powering any smart device, and as we found out, SOCs became as performant as a computer but with a much smaller form factor.
The surface mount devices (SMD), and its surface mount technology (SMT), also needed to evolve by design and produce smaller devices, like chip transistors, chip Resistors, chip capacitors and all other passive and active components.
This evolution reduced also the price for the SMD devices, as the beneficial bi-product.

For the production lines, new more accurate pick-and-place machines were developped, for the PCB assembly lines.
New chemical production technologies were invented to produce SMD chip capacitors with enough capacitance value, while keep the save isolation voltage.
Display LED technology was evolving too with lots and lots of LED's on it (OLED), where instead of soldering these on a PCB (not sure), the may etch only the power supply and signal paths for each pixel on a substrate, and then grow the LED on top of it, instead of using single die LED's.

SOC-Logik

System auf Chip

Die Gatter stellen die CPU-Rechenleistung zur Verf√ľgung, und es scheint nichts anderes im Inneren zu geben als das, w√§hrend jedes logische Gatter selbst aus einzelnen Transistoren besteht, die zusammenarbeiten.

In Wirklichkeit war es genau andersherum: Zuerst erfand man all diese möglichen logischen Schaltungen, indem man diskrete Transistoren und passive Widerstände und Kondensatoren verwendete. Die ersten erschwinglichen Computer hatten eine CPU, aber um diese mit den Peripheriegeräten zu nutzen, waren viele Logikeinheiten auf der Hauptplatine erforderlich. Zum Beispiel hatte der Ram-Baustein nur 4k Speicherplatz, so dass man 16 dieser Bausteine verwendete, um 64k Ram-Speicher zu erhalten.
Diese zus√§tzlichen Logik-ICs werden in zwei Spannungsarten hergestellt, der CMOS-Serie und der TTL-Logik-IC-Serie, wobei die CMOS-Serie (komplement√§re Metalloxid-Halbleiter) eine variable Versorgungsspannung hat und die TTL-Serie (Transistor-Transistor-Logik) auf eine Versorgungsspannung von 5 Volt festgelegt ist. F√ľr den Anschluss und die Umwandlung von 12-Volt- und anderen Spannungssignalen von der parallelen Schnittstelle des Druckers und anderen Anschl√ľssen, z. B. dem Display-Anschluss, wurden CMOS-Logik-ICs verwendet, w√§hrend f√ľr die CPU, den Ram-Speicher und andere Logik-ICs auf der Hauptplatine der TTL-Logikstandard direkt an die Kernspannung von 5 Volt angeschlossen wurde.
Im Inneren eines Computers gab es nur einen Haufen dieser Logik-ICs, wobei einer deutlich gr√∂√üer war, n√§mlich die CPU, ohne dass ein K√ľhlk√∂rper notwendig war.

Aber das war noch nicht alles. Zunächst wurde um das Jahr 2000 von der Firma Microchip der Mikrocontroller (MCU) erfunden, der eine kleine CPU mit Taktgeber und etwas Programm- und Laufzeitspeicher enthielt, um die Entwicklung von kleinen Geräten zu vereinfachen.
Es war und ist nicht nur m√ľhsam, ein fehlerfreies Motherboard-Layout zu entwerfen, sondern es braucht auch weniger Platz, um nur einen einzigen Chip zu verwenden, w√§hrend der Preis f√ľr ein Ger√§t auch um einiges reduziert wurde, abgesehen vom geringeren Stromverbrauch, der es erlaubte, vern√ľnftige batteriebetriebene Ger√§te zu entwickeln, um den Start des Bereichs der intelligenten Ger√§te voranzutreiben.
Der sp√§tere geniale Schritt bestand darin, einen IC mit einem 'System On Chip' (SOC) zu entwickeln, der √ľber eine Multi-Core-CPU, Programmspeicher, Peripherieger√§te wie LAN, USB-Controller, Sensoren, AD-DA-Analogwandler f√ľr Audio und Sensoren und eventuell Ram, GPU, vRAM verf√ľgt, um allen Anwendungsf√§llen gerecht zu werden, und zwar mit dem kleinstm√∂glichen Hardware-Footprint, der geringsten Ger√§teanzahl und den geringsten Produktkosten.

Diese SOCs treiben jetzt jedes intelligente Gerät an, und wie wir herausgefunden haben, sind SOCs so leistungsfähig wie ein Computer, haben aber einen viel kleineren Formfaktor.
Die oberflächenmontierten Bauelemente (SMD) und ihre Oberflächenmontagetechnologie (SMT) mussten sich ebenfalls weiterentwickeln und kleinere Bauelemente wie Chip-Transistoren, Chip-Widerstände, Chip-Kondensatoren und alle anderen passiven und aktiven Komponenten herstellen.
Diese Entwicklung senkte auch den Preis f√ľr die SMD-Bauteile, was ein n√ľtzliches Nebenprodukt war.

F√ľr die Produktionslinien wurden neue, pr√§zisere Best√ľckungsautomaten f√ľr die Leiterplattenbest√ľckungslinien entwickelt.
Neue chemische Produktionstechnologien wurden erfunden, um SMD-Chipkondensatoren mit ausreichendem Kapazitätswert zu produzieren, während die sichere Isolationsspannung erhalten bleibt.
Die LED-Technologie f√ľr Displays entwickelte sich ebenfalls weiter, mit vielen, vielen LEDs (OLED), die nicht mehr auf eine Leiterplatte gel√∂tet werden m√ľssen (ich bin mir nicht sicher), sondern bei denen nur die Stromversorgungs- und Signalpfade f√ľr jedes Pixel auf ein Substrat ge√§tzt werden und dann die LED darauf wachsen, anstatt einzelne LED-Die zu verwenden.

img 2

Trans-Resistor

Passives on silicon die?

You may ask but this can not be true, since a transistor circuit, to build logic gates, needs resistors and capacitors to work.
I build a BJT amp, which requires 1 bipolar junction transistor, 3 to 5 resistors, and 1 to 2 AC coupling capacitors.

With the silicon semiconductor technology, you can easily make a resistive and a capacitive element, only downside, to do so the semiconductor is not the choice, perhaps because of the thin deposition layer can not provide enough thickness, neither for the capacitor, which in comparison to a resistor, even needs multiple plates, with an isolation layer in between, to provide enough capacitance.
The size of these silicon etched resistors and capacitors is so large in comparison to the total features size of a transistor.
Instead what they did, is using the transistor itself, at its best.

Smart engineers, came up with all sorts of possible circuits, but using only transistors, to be able, to use only a silicon die, with the whole circuit on it.
The main circuit used in a semiconductor is the current source, and the voltage source, then combined to a symmetry configuration, to make it inherently stable, which is described in the next chapter.

Trans-Resistor

Passive auf Silizium-Die?

Das kann nicht stimmen, denn eine Transistorschaltung, um logische Gatter zu bauen, braucht Widerstände und Kondensatoren, um zu funktionieren.
Ich baue einen BJT-Verstärker, der 1 Bipolartransistor, 3 bis 5 Widerstände und 1 bis 2 AC-Kopplungskondensatoren benötigt.

Mit der Silizium-Halbleitertechnologie kann man leicht ein ohmsches und ein kapazitives Element herstellen, der einzige Nachteil ist, dass der Halbleiter daf√ľr nicht die richtige Wahl ist, vielleicht weil die d√ľnne Abscheidungsschicht nicht genug Dicke bieten kann, auch nicht f√ľr den Kondensator, der im Vergleich zu einem Widerstand sogar mehrere Platten mit einer Isolierschicht dazwischen braucht, um gen√ľgend Kapazit√§t zu bieten.
Die Größe dieser aus Silizium geätzten Widerstände und Kondensatoren ist so groß im Vergleich zu den Gesamtmerkmalen eines Transistors.
Stattdessen haben sie den Transistor selbst in seiner besten Form verwendet.

Schlaue Ingenieure haben sich alle möglichen Schaltungen ausgedacht, aber nur Transistoren verwendet, um nur einen Siliziumchip mit der gesamten Schaltung darauf zu verwenden.
Die Hauptschaltung in einem Halbleiter ist die Stromquelle und die Spannungsquelle, die dann zu einer Symmetriekonfiguration kombiniert werden, um sie inhärent stabil zu machen, was im nächsten Kapitel beschrieben wird.

img 2

Voltage & Current source

Diode voltage drop

Lets rebuild your simple audio amplifier that does the same operation, as the one you know.
The amp requires a collector resistance, and a biasing for the base input current, so the transistor operates inside its linear region.
We begin with the collector resistance, so that we can limit the maximum current, flowing through the NPN transistor, to set the amplification factor.
A transistor base is the input, and has a certain voltage level until the transistor begins to conduct current between its collector and emiter.

The forward voltage drop of 0.5 volts is necessary to move the bjt transistor into the active region.

This is because the base, is nothing else than a diode, but in a very special configuration, the Bi-Junction.
We can use this voltage drop to limit the current, as a resistor would do, and use the simple emitter follower configuration, by only connecting the base to the collector. No other component or connection is necessary.
If the base is connected to the collector, and the emitter to a lower voltage, then the transistor will turn on, but needs its 0.5 volts to turn on.
That way, our trans-resistor, will only work above 0.5 volts, because of the active nature of the semi conductor technology.

We need an emitter resistance, to elevate the virtual signal ground, on the output. Otherwise only the positive half would be amplified, and the negative half would be clipped.

The supply voltage is 3 volts, by using 2 batteries in series.

The biasing of the base creates the virtual signal ground for the input, which we set to 1.5 volts.
Therefore we use two of these emitter followers in series, to form a voltage divider, and connect the center to the base of the amp.
This creates the virtual ground, and the biasing for the base.
In the realworld, we would need to add more pairs of transistors to the voltage divider, for limiting the current, because the transistors will turn on hard. The voltage divider, should create a pretty steady signal ground, to omit an Ac coppling capacitor, on the input, since we try to omit any passives, like capacitors and resistors, as described above, and use only our same-type transistors.
For biasing the output signal ground, we can elevate the signal output ground, by using the same topology, and add transistors in series, until satisfied.

This is only a theoretical example, but this would work, and perhaps not even bad.
The only problem is the temperature, which is a property of all diode based semi conductors.
Our highend class A audio amplifier, does work fine if the temperature is drifting, but as soon as we build an oscillator, with transistors, then the oscillator will drift in frequency, and compared to a frequency stable oscillator, we could hear and measure the frequency drift.

In the 80's when the integrated circuits took over, the engineers came up with the best combinations and designs of circuits, and then build an IC out of it. Its exactly the same as with the CPU's, and all IC's related on the motherboard, like clocks, Ram, Rom, EPROM, and all the other IC's.

We could think that inside a CPU, everything is stable, because of the bit voltage levels, which have nothing to do with analog signal handling,
But here is the interesting point, the data signals like USB, LAN, and the connection to the Ram and GPU, are infact highspeed signals, and need certain signal integrity, to work properly, without errors.

They went ahead, and begun to use the follower topology as current sources and sinks, but used a symetrical topology, to compensate the temperature drift. Also symetrical compensation is used to stabilize voltage sources on a specific level.
The temperature dependance is further used as temperature sensor.
The possible circuits list goes on and on, as I said before, they could solve anything, with transistors.
Otherwise the computer would not work, as it is today.

Thanks to Bob Pease‚úĚ, Jim Williams‚úĚ, Bob Widler‚úĚ, Bob Moog‚úĚ, and many many more.

Amazing how interesting these computers really are, but until now the year 2024, it is the transistor and its versatility, providing the myriad of configurations necessary, to form the Central Processing Unit, where the general term for the compute power of a CPU and GPU system is called the 'FLOPS', which stands for Floating Point Operations Per Second. FLOPS are typically expressed in terms of billions (GFLOPS), trillions (TFLOPS) even PFLOPS (petaFLOPS) to describe the performance of a server system.

Spannungs- und Stromquelle

Dioden-Spannungsabfall

Lass uns einen einfachen Audioverstärker nachbauen, der die gleiche Funktion hat, wie der, den wir kennen.
Der Verst√§rker ben√∂tigt einen Kollektorwiderstand und eine Vorspannung f√ľr den Basis-Eingangsstrom, damit der Transistor innerhalb seines linearen Bereichs arbeitet.
Wir beginnen mit dem Kollektorwiderstand, damit wir den maximalen Strom, der durch den NPN-Transistor fließt, begrenzen können, um den Verstärkungsfaktor einzustellen.
Die Basis eines Transistors ist der Eingang und hat einen bestimmten Spannungspegel, bis der Transistor beginnt, Strom zwischen seinem Kollektor und seinem Emitter zu leiten.

Der Vorwärtsspannungsabfall von 0,5 Volt ist notwendig, um den bjt-Transistor in den aktiven Bereich zu bringen.

Das liegt daran, dass die Basis nichts anderes als eine Diode ist, allerdings in einer ganz besonderen Konfiguration, dem Bi-Junction.
Wir k√∂nnen diesen Spannungsabfall nutzen, um den Strom zu begrenzen, wie es ein Widerstand tun w√ľrde, und die einfache Emitterfolger-Konfiguration verwenden, indem wir nur die Basis mit dem Kollektor verbinden. Es ist kein weiteres Bauteil oder eine andere Verbindung erforderlich.
Wenn die Basis mit dem Kollektor verbunden ist und der Emitter mit einer niedrigeren Spannung, dann schaltet sich der Transistor ein, braucht aber seine 0,5 Volt zum Einschalten.
Auf diese Weise funktioniert unser Transistor nur oberhalb von 0,5 Volt, wegen der aktiven Natur der Halbleitertechnologie.

Wir brauchen einen Emitterwiderstand, um die virtuelle Signalmasse am Ausgang anzuheben. Andernfalls w√ľrde nur die positive H√§lfte verst√§rkt und die negative H√§lfte √ľbersteuert werden.

Die Versorgungsspannung beträgt 3 Volt, indem 2 Batterien in Reihe geschaltet werden.

Die Vorspannung der Basis erzeugt die virtuelle Signalmasse f√ľr den Eingang, die wir auf 1,5 Volt einstellen.
Deshalb verwenden wir zwei dieser Emitterfolger in Reihe, um einen Spannungsteiler zu bilden, und verbinden die Mitte mit der Basis des Verstärkers.
Das schafft die virtuelle Masse und die Vorspannung f√ľr die Basis.
In der realen Welt m√ľssten wir mehr Transistorpaare zum Spannungsteiler hinzuf√ľgen, um den Strom zu begrenzen, da die Transistoren stark einschalten. Der Spannungsteiler sollte eine ziemlich gleichm√§√üige Signalmasse erzeugen, so dass wir auf einen Kondensator am Eingang verzichten k√∂nnen, da wir, wie oben beschrieben, versuchen, alle passiven Elemente wie Kondensatoren und Widerst√§nde wegzulassen und nur unsere gleichartigen Transistoren zu verwenden.
Um die Masse des Ausgangssignals vorzuspannen, können wir die Masse des Signalausgangs anheben, indem wir die gleiche Topologie verwenden und Transistoren in Reihe schalten, bis wir zufrieden sind.

Das ist nur ein theoretisches Beispiel, aber es w√ľrde funktionieren, und vielleicht nicht einmal schlecht.
Das einzige Problem ist die Temperatur, die eine Eigenschaft aller Halbleiter auf Diodenbasis ist.
Unser High-End-Audioverstärker der Klasse A funktioniert gut, wenn die Temperatur driftet, aber sobald wir einen Oszillator mit Transistoren bauen, wird der Oszillator in der Frequenz driften, und im Vergleich zu einem frequenzstabilen Oszillator könnten wir die Frequenzdrift hören und messen.

In den 80er Jahren, als die integrierten Schaltkreise die Oberhand gewannen, entwickelten die Ingenieure die besten Kombinationen und Designs von Schaltkreisen und bauten dann einen IC daraus. Das ist genau dasselbe wie bei den CPUs und allen ICs auf der Hauptplatine, wie Taktgeber, Ram, Rom, EPROM und alle anderen ICs.

Man könnte meinen, dass in einer CPU alles stabil ist, wegen der Bit-Spannungspegel, die nichts mit der analogen Signalverarbeitung zu tun haben,
Aber hier ist der interessante Punkt, die Datensignale wie USB, LAN, und die Verbindung zum Ram und der GPU, sind in der Tat Hochgeschwindigkeitssignale, und brauchen eine gewisse Signalintegrität, um richtig, ohne Fehler zu funktionieren.

Sie gingen voran und begannen, die Follower-Topologie als Stromquellen und -senken zu nutzen, verwendeten aber eine symetrische Topologie, um die Temperaturdrift zu kompensieren. Auch die symetrische Kompensation wird verwendet, um Spannungsquellen auf einem bestimmten Niveau zu stabilisieren.
Die Temperaturabhängigkeit wird weiterhin als Temperatursensor verwendet.
Die Liste der möglichen Schaltungen lässt sich beliebig fortsetzen, wie schon gesagt, mit Transistoren lässt sich alles lösen.
Ansonsten w√ľrde der Computer nicht funktionieren, so wie er heute ist.

Dank an Bob Pease, Jim Williams, Bob Widler, Bob Moog, und viele viele mehr.

Erstaunlich, wie interessant diese Computer wirklich sind, aber bis jetzt, im Jahr 2024, ist es der Transistor und seine Vielseitigkeit, der die unz√§hligen Konfigurationen erm√∂glicht, die notwendig sind, um die Central Processing Unit zu bilden, Der allgemeine Begriff f√ľr die Rechenleistung eines CPU- und GPU-Systems lautet "FLOPS", was f√ľr Floating Point Operations Per Second steht. FLOPS werden √ľblicherweise in Milliarden (GFLOPS), Billionen (TFLOPS) oder sogar PFLOPS (petaFLOPS) ausgedr√ľckt, um die Leistung eines Serversystems zu beschreiben.

img 2