Zum Inhalt springen

Adressierung (Rechnerarchitektur) und Jagdschloss Fasanerie (Hermannsfeld): Unterschied zwischen den Seiten

aus Wikipedia, der freien Enzyklopädie
(Unterschied zwischen Seiten)
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
 
Literatur ergänzt
 
Zeile 1: Zeile 1:
[[Datei:Fasanerie2W.jpg|mini|300px|Die Fasanerie]]
{{Belege fehlen}}
Das '''Jagdschloss Fasanerie''' befindet sich beim Ortsteil [[Hermannsfeld (Rhönblick)|Hermannsfeld]] der Gemeinde [[Rhönblick]] im [[Landkreis Schmalkalden-Meiningen]] in [[Thüringen]].
* '''Adressierung''' ist in der [[Programmierung]] das Festlegen, auf welche [[Ausdruck (Programmierung)|Operanden]] (z. B. [[Datenfeld]]er) sich ein [[Maschinenbefehl]] bezieht. Die Operanden können auf unterschiedliche Art und Weise adressiert werden ('''Adressierungsart''' oder '''Adressierungsmodus'''), zum Beispiel durch direkte Angabe im Befehl oder durch einen Verweis auf eine [[Speicheradresse]]. Bestimmend für die anzuwendende Adressierungsart sind der [[Opcode|Operationscode]] und die im Maschinenbefehl nur in codierter Form enthaltenen [[Befehlssatz#Befehlsformate|Angaben]] über die Operanden. Bei der [[Assemblersprache|Assemblerprogrammierung]] legt der Programmierer durch die Wahl bestimmter [[Opcode|Operationscodes]] (und der dazugehörenden Parameter) die Adressierungsart selbst fest. Bei Nutzung höherer Programmiersprachen werden die Maschinenbefehle von [[Compiler]]n automatisch erzeugt (und damit auch deren Adressierungsarten festgelegt), meist ohne direkten Einfluss des Programmierers. Der [[Prozessor]] dekodiert die Maschinenbefehle bei der Ausführung und führt die entsprechenden Adressrechnungen sowie das Laden der im Befehl zu verwendenden Daten durch. Die verschiedenen Adressierungsarten sind ein Aspekt des Prozessordesigns. Sie sind innerhalb einer gegebenen [[Befehlssatzarchitektur]] definiert und bestimmen, wie für jede Instruktion der [[Maschinensprache]] die tatsächliche (physische) Speicheradresse ihrer Operanden ermittelt/errechnet wird, zum Beispiel mithilfe der Informationen, die in Registern gespeichert sind und/oder Konstanten innerhalb des Maschinenbefehls. Bezieht sich ein Befehl auf mehrere Operanden (Quell- und/oder Zielfelder), so sind die zur Adressierung erforderlichen Angaben für jeden Operanden getrennt erforderlich/vorhanden. Weitere im Maschinenbefehl enthaltene Parameter (wie Angaben zur Länge von Operanden, Sprungindikatoren aus logischen Befehlen wie gleich oder größer) werden zur Adressierung im engeren Sinn nicht verwendet.


== Lage ==
== Unterschiede mit Bezug zu Adressierungsarten ==
Das [[Schloss (Architektur)|Schloss]] liegt am Rand eines Wäldchen östlich von Hermannsfeld an der Grenze zu [[Bayern]] rund zehn Kilometer südlich der Kreisstadt [[Meiningen]]. Unweit verlaufen die Landesstraßen L 3019 (ehemals [[Bundesstraße 19]]) und L 2625, von letzterer geht eine Zufahrtsstraße zum Schloss ab. Der Radfernweg [[Main-Werra-Radweg|Main-Werra]] (Würzburg–Meiningen) führt unmittelbar am Schloss vorbei. Vom Schloss bietet sich ein weiter Blick auf die südliche [[Rhön]].


== Geschichte ==
=== Unterschiedliche Bezeichnungen ===
Das zum Schloss gehörende Waldstück wurde bereits im 16. Jahrhundert als Tiergarten genutzt und diente ab 1680 den Herzögen von [[Herzogtum Sachsen-Meiningen|Sachsen-Meiningen]] als Jagdgrund. [[Georg I. (Sachsen-Meiningen)|Herzog Georg I.]] ließ dann den schlichten [[Klassizismus|klassizistischen]] Bau mit zwei Eckpavillons um 1790 erbauen. Während der [[Napoleon Bonaparte|napoleonischen Zeit]] gab es finanzielle und besatzungsmäßige Schwierigkeiten. Russische [[Kosaken]] plünderten 1813 durch das [[Werra]]tal. Erst ab 1821 erlebte das Gelände unter [[Bernhard II. (Sachsen-Meiningen)|Herzog Bernhard II.]] eine neue Blüte als herzogliches Jagd- und Ausflugsziel. Das Wäldchen wurde zum Naturpark, wo man in Gehegen Fasane, Rot- und Damwild hielt. Nach der Revolution von 1848 war der Naturpark allen Bürgern zugänglich. Unter Herzog [[Georg II. (Sachsen-Meiningen)|Georg II.]] erlebten Schloss und Park ihre Blütezeit, als man neue Zuchtanlagen und Teiche anlegte. Nach der Abdankung von Herzog [[Bernhard III. (Sachsen-Meiningen)|Bernhard III.]] im November 1918 kam das Anwesen zum Freistaat Sachsen-Meiningen und ab 1920 zum [[Land Thüringen (1920–1952)|Land Thüringen]].
Man beachte, dass keine allgemeingültige Namensgebung für die unterschiedlichen Adressierungsarten/-modi existiert. Insbesondere verwenden teilweise verschiedene Autoren oder auch Hardwarehersteller unterschiedliche Bezeichnungen für den gleichen Adressenmodus, oder auch den gleichen Namen für unterschiedliche Modi.


=== Nach dem Zweiten Weltkrieg ===
Folgende Unterscheidungen in der Namensgebung von Adressierungsarten sind weit verbreitet. Eine grundlegende Unterscheidung ist die zwischen
Nach dem [[Zweiter Weltkrieg|Zweiten Weltkrieg]] fanden Flüchtlinge und Vertriebene sowie elternlose Kinder hier eine Heimstatt. Wegen der neuen innerdeutschen Grenze nutzten dann Einheiten der [[Rote Armee|Roten Armee]] und später der [[Grenzschutz|Grenzpolizei]] das Schloss als Unterkunft. Ab den 1960er Jahren wurde das Schloss unter anderem von der [[Henneberg (Meiningen)|Henneberger]] Schule genutzt. Nach 1977 stand es weitgehend leer. Auf Initiative der Bevölkerung konnte dem Verfall des Schlosses etwas Einhalt geboten werden.
* logischen bzw. programmseitigen Adressen einerseits (Ebene Programmierung). Logische Adressen werden in absolute, relative, indirekte und symbolische Adressen unterteilt, wobei man allerdings verschiedene genaue Charakterisierungen, Abgrenzungen und Überschneidungen findet.
* Maschinenadressen bzw. physischen Adressen andererseits (Ebene Maschinenbefehl). Maschinenadressen werden auch oft reale Adressen genannt.
Neben der unterschiedlichen Bezeichnung kann ein Adressierungsmodus, der in der einen Architektur als ein einzelner Modus behandelt wird, für eine Funktionalität stehen, die in einer anderen Architektur von zwei oder mehr Modi abgedeckt wird.


=== Im Detail unterschiedliche Bedeutung ===
=== Nach der deutschen Wiedervereinigung ===
Die Fasanerie wurde von der Gemeinde Hermannsfeld und ab 1997 von der neuen Gemeinde Rhönblick übernommen und mit [[Europäische Union|EU]]-Unterstützung saniert. Auch das [[Biosphärenreservat Rhön]] war mit beteiligt. Im Wäldchen legte man einen Natur- und Bienenlehrpfad an. Kurzzeitige Pächter des gesamten Anwesens war später der gemeinnützige Verein Bundesverband „Projekt 50“, der hier ein Kommunikationscenter errichten wollte.<ref>{{Webarchiv |url=http://www.kj-f.de/Wir-ueber-uns |text=Kommunikationscenter Jagdschloss Fasanerie |wayback=20161017213848}}</ref> Nach Unstimmigkeiten wurde ihm 2015 gekündigt. Seit 2013 betreiben neue Pächter das Restaurant „Jägerstube“ und das Schloss wird für verschiedene Feste der Gemeinde genutzt.<ref>Meininger Tageblatt: Artikel „Pfingsten 2016“, erschienen am 13. Mai 2016.</ref>
Mit ‚Adressierung‘ kann im Detail Unterschiedliches verstanden werden:
* Die ''Tätigkeit'' beim Programmieren in maschinennahen Sprachen: Wahl der Befehle, dabei Codieren der Operatoren
* Die auf die Operatoren in Codeform verweisenden ''Angaben'' im Maschinenbefehl
* Die ''Funktionalität'' des Prozessors, mit der er die tatsächlichen Adressen ermittelt
In einer höheren Programmiersprache die Operatoren zu benennen (MOVE A TO B), im weiteren Sinn auch eine Art von Adressierung, zählt nicht zu dem ''hier im Artikel'' behandelten Bedeutungfeld ‚Adressierung, Adressierungsmodus‘.


== Literatur ==
=== Unterschiede zwischen Befehlssätzen ===
* Fasanerie, in: Bau- und Kunstdenkmäler Thüringens. Stadt Meiningen und die Landorte, Jena 1909, Seite 375 ff.
Die Befehlssätze einzelner Prozessortypen unterscheiden sich nicht nur im Leistungsumfang, sondern auch die Adressierung betreffend. Nachfolgend werden signifikante Beispiele aufgeführt:
* In bestimmten Befehlssätzen <!--konkrete Aussage erwünscht-->enthält der Opcode die Registernummer – während in anderen Fällen die Registernummer in einem eigenen Parameterfeld enthalten ist. Dementsprechend enthält ein solcher Befehlssatz sehr viel mehr Operationscodes.
* In der Prozessorfamilie [[System/390]] können nur 1-stellige Direktwerte ('immediate') im Maschinenbefehl enthalten sein. Zur ‚indizierten Adressierung‘ wird der Offset-Wert für eine Adressangabe zusammen mit der Registernummer in einem 'Halbwort' (4 Bits Registernummer, 12 Bits Offset/ganzzahlig) gespeichert.
<!-- weitere bedeutendee Unterschiede bitte ergänzen -->


== Weblinks ==
== Typische Adressierungsarten eines Prozessors ==
* [http://www.gemeinde-rhoenblick.de/verzeichnis/objekt.php?mandat=75462 Gemeinde Hermannsfeld]
[[Datei:Adressierung Maschinenbefehle.png|mini|Schema für alternative Adressierungsarten bei Maschinenbefehlen]]
Im einfachsten Fall sind die einzelnen Speicherplätze des Speichers von 0 an durchnummeriert ([[linearer Adressraum]]). Eine ''Adresse'' stellt dann die Nummer eines bestimmten Speicherplatzes dar. Die Register eines Prozessors werden im Regelfall ebenfalls durchnummeriert.


== Einzelnachweise ==
Aufgrund der unterschiedlichen Adressierungsarten weisen Maschinenbefehle unterschiedliche Strukturen auf, zum Beispiel gehört zu einem Operationscode ein Operand, zu anderen mehrere Operanden als Quelle oder Ziel des Befehls. Befehlsbeispiele siehe einzelne Adressierungsart.
<references />


{{Coordinate|NS=50.505450|EW=10.330539|type=landmark|region=DE-TH}}
Da in einem Prozessor meist nur wenige Register, aber viele Speicherplätze existieren, sind Registeradressen kürzer als Hauptspeicheradressen. Beispiel: Bei einem System mit einem Prozessor mit 16&nbsp;Registern sowie 4&nbsp;GiB Speicher benötigt eine Registeradresse 4&nbsp;Bit, während eine Hauptspeicheradresse 32&nbsp;Bit benötigt. In der [[Maschinensprache]] werden Registeradressen oft zusammen mit dem Befehlscode in einem Speicherwort gespeichert –&nbsp;stehen mithin dem Prozessor ohne weitere Speicherzugriffe zur Verfügung, während der Prozessor für die Übermittlung jeder Hauptspeicheradresse weitere Speicherzugriffe –&nbsp;und damit Ausführungszeit&nbsp;– benötigt.<!-- wobei zu berücksichtigen ist, dass bei Reg-Adressierung der Reg-Wert in einem vorherigen Befehl geladen werden musste-->

Bei einem rein [[Befehlssatz#Eigenschaften|orthogonalen Befehlssatz]] ist jeder Befehl in jeder Adressierungsart verwendbar. Bei den verbreiteten Prozessorfamilien bestehen jedoch vielerlei Einschränkungen, so dass der (Assembler-)Programmierer sich über das „Programmiermodell“ des Prozessors informieren muss, welche Adressierungsarten bei welchen Befehlen tatsächlich verfügbar sind.

Adressierungsarten, die vom Hauptspeicher in den Hauptspeicher arbeiten, werden heute nur noch in [[Integrierter Schaltkreis|Integrierten Schaltkreisen]] und [[Eingebettetes System|eingebetteten Systemen]] mit wenig Speicherplatz angewandt. Hohe Ausführungsgeschwindigkeiten sind nur mit Befehlen zu erreichen, die in den Registern arbeiten – daher besitzen auf Leistung optimierte Prozessoren heute meist eine [[Load/Store-Architektur]].
<!-- Aber auch diese Adressierungsarten sind für heutige Rechner nicht mehr ausreichend. // dann bitte fehlende hier ausführen! -->

=== Registeradressierung ===

Bei der Registeradressierung (in Englisch „register direct“) bezieht sich der Befehl auf den Inhalt eines Prozessorregisters. Bei 'lesenden' Befehlen steht der Operand bereits im Register bereit und muss nicht mehr aus dem Speicher geladen werden. Bei impliziter Registeradressierung wird das implizit für den Opcode festgelegte Register verwendet (Beispiel: der Opcode bezieht sich implizit auf den Akkumulator). Bei expliziter Registeradressierung ist die Nummer des Registers in einem Registerfeld des Maschinenbefehls eingetragen oder Teil des Befehlscodes.
# Addiere den Inhalt von Register 1 mit dem Inhalt des Registers 2, speichere Ergebnis in Register 3
add_rrr R2, R1, R3
# Also drei Adressierungen:
# Quelle_1 .. Register,
# Quelle_2 .. Register,
# Ziel_1 .. Register

=== Unmittelbare Adressierung ===
Der oder die Operanden (nicht ihre Adresse) sind Bestandteil des Befehls, gespeichert im Befehlscode selbst oder in den Speicherwörtern, die im Speicher dem Befehlscode ''unmittelbar'' folgen. Der Befehl enthält in der Regel einen weiteren Operanden.
# Lade das Akkumulatorregister mit dem Wert 22 (10110<sub>[[Dualsystem|2]]</sub>) (nicht mit dem Inhalt von Speicherplatz 22)
load_direct acc, 10110
# Also zwei Adressierungen:
# Ziel_1 .. Register
# Quelle_1 .. unmittelbar angegebener Wert

=== Absolute oder direkte Adressierung ===
Bei dieser Adressierungsart wird nicht der Operand selbst, sondern seine ''Speicheradresse'' (wo die eigentlichen Daten zu finden sind) direkt und vollständig im Befehl angegeben (Referenzstufe&nbsp;1).
# Addiere den Inhalt von Adresse 22 (= 10110<sub>[[Dualsystem|2]]</sub>) und Adresse 6 (= 00110<sub>[[Dualsystem|2]]</sub>)
und speichere das Ergebnis in Adresse 1 (= 00001<sub>[[Dualsystem|2]]</sub>)
add_AdrAdrAdr 10110, 00110, 00001

=== Indizierte und relative Adressierung ===
Beide Adressierungsarten verwenden ein [[Register (Computer)|Register]] zur Adressierung von Speicherzellen im Hauptspeicher.
Bei der '''indizierten''' Adressierung wird der Inhalt eines sogenannten Indexregisters zu einer aus anderen Adressangaben gebildeten Adresse addiert. Beispiel: Es gibt ein ''Basis-Adress''-Register (z.&nbsp;B. das Spezialregister „index“), zu dem der mitgegebene Parameter als ''Offset'' addiert wird. Oft sind auch negative Offsets möglich. Das Ergebnis der Adressierung ist die Adresse des Operanden, d.&nbsp;h. diese zeigt auf den Operanden (Referenzstufe&nbsp;1)

# Addiere den Inhalt der Adressen (Index+00<sub>[[Dualsystem|2]]</sub> =22) und (Index+01<sub>[[Dualsystem|2]]</sub> =23)
und speichere das Ergebnis in Adresse (Index+10<sub>[[Dualsystem|2]]</sub> =24)
load_direct index, 10110 # lade (Basis-)Adresse 22 ins Indexregister
add_iii 00, 01, 10
Oft haben diese relativen Adressen weniger Stellen (beispielsweise 8&nbsp;Bit, also 8&nbsp;Binärstellen; bei 8-Bit-Opcode hat der Gesamtbefehl dann 8+3*8=32 Bit Länge), was einerseits Platz spart und den Gesamtbefehl inklusive Adressierungsdaten evtl. "auf einmal ladbar" macht; andererseits schränkt dies den Adressraum ein (im Beispiel ist so nur index+00000000<sub>[[Dualsystem|2]]</sub> .. index+11111111<sub>[[Dualsystem|2]]</sub> möglich).

Diese Zugriffsart wird vor allem verwendet für Zugriffe auf Arrays oder zusammengesetzte Datentypen.

Da ein Rechner im Allgemeinen mehr als ein Register hat, muss der Befehl die Angabe enthalten, welches Register als Basisregister zu benutzen ist. Im Beispiel ist angenommen, dass hierfür das Register „index“ fest vorgegeben ist.

Die '''relative''' Adressierung verläuft ähnlich, allerdings wird statt des Indexregisters der [[Befehlszähler]] (''program counter'', PC) benutzt. Die Adressierung erfolgt also nicht relativ zu einer im Indexregister angegebenen Adresse, sondern relativ zum Befehlszähler, d.&nbsp;h. der Speicherstelle, die den Befehl selbst enthält.

Mitunter kann der Offset auch in einem Register gegeben sein, insbesondere bei der sogenannten ''[[Speicheradresse#Segmentierte Adressen|segmentierten Adressierung]]''. Das Basis-Adress-Register wird dann oft „Segmentregister“ genannt.

=== Indirekte Adressierung ===
Der Befehl weist auf ein Register oder eine Speicheradresse im Hauptspeicher (beim [[MOS Technology 6502|6502]] in dessen [[Zeropage]]). Die effektive Adresse der Operation ergibt sich aus dem Inhalt des entsprechenden Registers bzw. der entsprechenden Speicherzelle(n) (Referenzstufe&nbsp;2). Ggf. wird auf die so ermittelte Adresse noch der Inhalt eines weiteren Registers (Indexregisters) addiert (indirekt-indizierte Adressierung).

Die indirekte Adressierung wurde 1953 von [[Heinz Schecher]] patentiert.

== Virtuelle Adressierung ==
Hier werden Werkzeuge zur Adressierung beschrieben, die das Betriebssystem zur Verfügung stellt.

[[Betriebssystem]]e verwenden die Virtuelle Adressierung, um Programme ausführen zu können, die mehr Speicherplatz benötigen, als an physischem Arbeitsspeicher im [[Random-Access Memory|RAM]] überhaupt zur Verfügung steht. Der gesamte zur Verfügung stehende Speicherplatz wird als [[Virtueller Adressraum]] bezeichnet und der Zugriff auf die darin enthaltenen Adressen ist die virtuelle Adressierung. Das jeweilige Betriebssystem verwendet eine [[Virtuelle Speicherverwaltung]], die sich einer [[Memory Management Unit]] bedient, um Teile des Programms auf die Festplatte auszulagern und ggf. in den Arbeitsspeicher zu laden, falls sich eine gewählte Adresse außerhalb des im [[Random-Access Memory|RAM]] befindlichen Adressraums befindet.
Die Angabe der Adressen erfolgt dabei entweder direkt, relativ, indiziert oder auch symbolisch.

== Literatur ==
* Hans Liebig: ''Rechnerorganisation: Die Prinzipien''. Springer-Verlag, 3. Aufl., 2003, ISBN 978-3-540-00027-3
* Hrsg. Thomas Beierlein, Olaf Hagenbruch: ''Taschenbuch Mikroprozessortechnik''. Carl Hanser Verlag, 4. Aufl., 2010, ISBN 978-3-446-42331-2


[[Kategorie:Betriebssystemtheorie]]
[[Kategorie:Jagdschloss in Thüringen|Hermannsfeld]]
[[Kategorie:Rechnerarchitektur]]
[[Kategorie:Schloss im Landkreis Schmalkalden-Meiningen]]
[[Kategorie:Bauwerk in Rhönblick]]
[[Kategorie:Kulturdenkmal im Landkreis Schmalkalden-Meiningen]]
[[Kategorie:Schloss in Europa|Fasanerie, Hermannsfeld]]

Version vom 10. Mai 2023, 17:32 Uhr

Die Fasanerie

Das Jagdschloss Fasanerie befindet sich beim Ortsteil Hermannsfeld der Gemeinde Rhönblick im Landkreis Schmalkalden-Meiningen in Thüringen.

Lage

Das Schloss liegt am Rand eines Wäldchen östlich von Hermannsfeld an der Grenze zu Bayern rund zehn Kilometer südlich der Kreisstadt Meiningen. Unweit verlaufen die Landesstraßen L 3019 (ehemals Bundesstraße 19) und L 2625, von letzterer geht eine Zufahrtsstraße zum Schloss ab. Der Radfernweg Main-Werra (Würzburg–Meiningen) führt unmittelbar am Schloss vorbei. Vom Schloss bietet sich ein weiter Blick auf die südliche Rhön.

Geschichte

Das zum Schloss gehörende Waldstück wurde bereits im 16. Jahrhundert als Tiergarten genutzt und diente ab 1680 den Herzögen von Sachsen-Meiningen als Jagdgrund. Herzog Georg I. ließ dann den schlichten klassizistischen Bau mit zwei Eckpavillons um 1790 erbauen. Während der napoleonischen Zeit gab es finanzielle und besatzungsmäßige Schwierigkeiten. Russische Kosaken plünderten 1813 durch das Werratal. Erst ab 1821 erlebte das Gelände unter Herzog Bernhard II. eine neue Blüte als herzogliches Jagd- und Ausflugsziel. Das Wäldchen wurde zum Naturpark, wo man in Gehegen Fasane, Rot- und Damwild hielt. Nach der Revolution von 1848 war der Naturpark allen Bürgern zugänglich. Unter Herzog Georg II. erlebten Schloss und Park ihre Blütezeit, als man neue Zuchtanlagen und Teiche anlegte. Nach der Abdankung von Herzog Bernhard III. im November 1918 kam das Anwesen zum Freistaat Sachsen-Meiningen und ab 1920 zum Land Thüringen.

Nach dem Zweiten Weltkrieg

Nach dem Zweiten Weltkrieg fanden Flüchtlinge und Vertriebene sowie elternlose Kinder hier eine Heimstatt. Wegen der neuen innerdeutschen Grenze nutzten dann Einheiten der Roten Armee und später der Grenzpolizei das Schloss als Unterkunft. Ab den 1960er Jahren wurde das Schloss unter anderem von der Henneberger Schule genutzt. Nach 1977 stand es weitgehend leer. Auf Initiative der Bevölkerung konnte dem Verfall des Schlosses etwas Einhalt geboten werden.

Nach der deutschen Wiedervereinigung

Die Fasanerie wurde von der Gemeinde Hermannsfeld und ab 1997 von der neuen Gemeinde Rhönblick übernommen und mit EU-Unterstützung saniert. Auch das Biosphärenreservat Rhön war mit beteiligt. Im Wäldchen legte man einen Natur- und Bienenlehrpfad an. Kurzzeitige Pächter des gesamten Anwesens war später der gemeinnützige Verein Bundesverband „Projekt 50“, der hier ein Kommunikationscenter errichten wollte.[1] Nach Unstimmigkeiten wurde ihm 2015 gekündigt. Seit 2013 betreiben neue Pächter das Restaurant „Jägerstube“ und das Schloss wird für verschiedene Feste der Gemeinde genutzt.[2]

Literatur

  • Fasanerie, in: Bau- und Kunstdenkmäler Thüringens. Stadt Meiningen und die Landorte, Jena 1909, Seite 375 ff.

Einzelnachweise

  1. Kommunikationscenter Jagdschloss Fasanerie (Memento vom 17. Oktober 2016 im Internet Archive)
  2. Meininger Tageblatt: Artikel „Pfingsten 2016“, erschienen am 13. Mai 2016.

Koordinaten: 50° 30′ 19,6″ N, 10° 19′ 49,9″ O