Hauptfrage: Was ist der genaue Begriff für den kleinsten adressierbaren Speicherblock?
Ich werde eine weitere Antwort hinzufügen, um dies auf andere Weise anzugehen. In der elektronischen Hardware nennen wir es die bit-binäre Ziffer. Dies ist eine Entität, die zwei beliebige Werte darstellen kann. Wir denken normalerweise in 0 und 1, aber es können 3 oder 4, 365 oder 266, -3 oder -4 sein, sogar 25 oder 37.
Jedes Signalisierungssystem kann verwendet werden, um diese Werte darzustellen - Flag hoch, Flag runter, Augen offen, Augen geschlossen, + 5 V, -5 V. Das ist nicht wichtig.
Wichtig ist, dass wir philosophisch die kleinste unterscheidende Informationsmenge darstellen. Dies kann ein, aus oder wahr, falsch oder hoch, runter oder 0, 1 sein - alles, was zwei getrennte Zustände unterscheidet. Wir können diese Werte auf jedes der oben genannten Signalisierungssysteme und viele andere abbilden.
Die Frage ist nun, wie wir eine so kleine Menge an Informationen einzeln testen und einstellen können. Wie ich in der vorherigen Antwort sagte, hat sich der B1700 dafür entschieden, diese kleinste Menge an Informationen direkt anzusprechen.
Die meisten Maschinen entschieden sich jedoch dafür, nur größere Informationsmengen zu adressieren. Betrachten wir eine Gruppe von vier Bits mit einer einzelnen Adresse. Wenn wir also an unserem Standort den Wert 1011 erhalten, wie testen wir das zweite Bit von links? Wir verwenden eine Maske: 1011 und 0100 testen nur das zweite Bit. Wie setzen wir das zweite Bit auf 1? Eine kleine CPU-Arithmetik besagt, dass der Wert 15 oder 1111 sein wird, so dass ganze vier Bits in den Speicher zurückgeschrieben werden, obwohl wir wirklich nur ein Bit gesetzt haben.
Dies ist für die meisten Anwendungen nicht sinnvoll. Die meisten Anwendungen repräsentieren Daten oder Informationen, nach oben, unten, wahr, falsch, offen, geschlossen.
Wir wollen Dinge sagen wie:
wenn offen dann ... sonst ... ende
oder eher auf ein größeres Unternehmen anwenden:
Wenn die Tür offen ist, dann - höchstwahrscheinlich 'door.open' ... sonst ... ende
'Tür ist offen' veranschaulicht die hierarchische Adressierung. Die Hauptsystemadressierung gibt der Entitätstür, und die Tür hat eine eigene Adressierung, die den Zugriff auf open (und möglicherweise andere Attribute) ermöglicht.
Die meisten Mengen haben auch mehr als zwei mögliche Werte (eine Menge mit einem Wert ändert sich nie und benötigt daher nicht einmal eine Darstellung, also null Bits). Für diese haben wir Sätze aufgezählt, wie (gelb, grün, blau, lila Dunst, rot). Diese definieren Mengen und Typen und die genaue Anzahl der erforderlichen Bits ergibt sich aus der Anzahl der Werte (log2 (Anzahl der Werte)).
Die optimale Adressierung hängt also wirklich von der in der Anwendung verwendeten Entitätsgröße ab - möglicherweise sogar von Entitäten mit variabler Größe. In der meisten Hardware müssen solche Adressen jedoch in die von der Hardware definierte feste Größe übersetzt werden. Dies könnte natürlich zeitaufwändig sein. Es sollte auch etwas sein, was ein automatischer Übersetzer (Compiler oder Interpreter) tut, nicht ein Programmierer, so wie ein solches System Code zum Testen und Setzen von Bits wie oben generieren würde (wenn Bits nicht direkt adressierbar sind).
Ein wichtiger Punkt dabei ist, nicht in Bezug auf Elektronik zu denken - Elektronik ist nur eine wirklich gute und schnelle Art, Berechnungen zu verarbeiten. Es gibt nichts Magisches an elektronischen Berechnungen, das es ermöglicht, Berechnungen durchzuführen, die Sie sonst nicht durchführen könnten. Die Magie liegt nur in der Geschwindigkeit. Aus diesem Grund sind Abstraktionen auf niedriger Ebene wie Bit-, Byte-, Wort- oder Hardware-Adressierungsmechanismen (Zeiger) wirklich nicht so nützlich.