Der Compiler ist schuld – oder auch nicht

Ein Compiler hat die Aufgabe eine höhere Programmiersprache in Maschinensprache zu übersetzen. Bei Großrechnern haben kompilierte Programme schon in den Sechzigern die Maschinensprache sukzessive verdrängt. Im PC Bereich war wegen der anfangs langsamen Prozessoren und dem geringen Speicher Assembler noch in den ersten Jahren wichtig, aber heute sicher nicht mehr.

Machen wir einen geschichtlichen Rückblick. Früher hat man auch evaluiert, wie effizient Compiler sind. Die Ergebnisse sind natürlich stark vom Quelltext abhängig. Die NASA hat für die Flugsoftware der Shuttle evaluiert wie schnell HAL als höhere Programmiersprache verglichen mit Assembler war. Und das Ergebnis war damals: 10-20% langsamer. Das Betriebssystem, das zeitkritisch war, wurde daraufhin in Assembler geschrieben, die „Anwendungen“ dann in HAL. Ein ähnliches Ergebnis gab es bei Tests der ersten Versionen von Turbo Pascal. Das ist erfreulich, denn das Programmieren ist doch erheblich leichter in einer Hochsprache. Continue reading „Der Compiler ist schuld – oder auch nicht“

Funktionelle Einheiten, Vektorinstruktionen und Mehrkernprozessoren

Da wir alle drei Konzepte heute in den Intelprozessoren und auch einigen AMD-Typen finden, mal eine historische Betrachtung was die Unterschiede sind und was wo nützt. Das älteste sind mehrere funktionelle Einheiten. Dazu hole ich erst mal aus und erkläre wie eine CPU allgemein aufgebaut ist. Man kann sie selbst bei einfachen Exemplaren, also z.B. einem 8-Bit Mikroprozessor in mehrere Untereinheiten zerlegen die jeweils eine Aufgabe haben. Da ist zum einen der Befehlsdekoder. Er stellt fest welcher Befehl hinter dem Bitmuster steckt, das gerade geladen wird und welche Register er nutzt. Die Daten selbst bekommt er von einer Einheit die mit dem Speicher kommuniziert, je nach Architektur Load/Store Einheit, Bus-Interface etc. genannt. Dann gibt es noch mindestens eine Ausführungseinheit welche die Befehle auch durchführt, bei einfachen Prozessoren meistens als Arithmetisch-logische Einheit (ALU) bezeichnet. Das ist nur die Grundmenge. Es können durchaus mehrere dieser Einheiten sein.

Schon bald kam man drauf diese Einheiten zumindest zeitweise parallel arbeiten zu lassen. Ein Befehl wird z.B. erst von der Load/Store Einheit aus dem Speicher geholt, durchläuft dann den Befehlsdekoder und dann die Ausführungseinheit. Schon bei der 8086 CPU war die Bus-Interface Unit schon fähig während Decoder und ALU arbeiteten die nächsten Bytes vorrausschauend aus dem Speicher zu laden, das nennt man übrigens Prefetch. Der rapide Geschwindigkeitseinbruch der 8088 CPU kam dadurch zustande, dass neben den Befehlen auch noch Daten von dieser Einheit geholt und geschrieben wurden und durch die halbierte Busbreite kam sie kaum noch dazu den Prefetch durchzuführen, da jeder Transfer nun doppelt so lange dauerte. Auch bei der IBM 7030 Stretch gab es schon Parallelität von Laden/Speichern und ausführen/Dekodieren. Continue reading „Funktionelle Einheiten, Vektorinstruktionen und Mehrkernprozessoren“

Das Ende eines Grundsatzes

Auch so könnte man ein Fazit aus den Benchmarks ziehen, welche die ct in ihren aktuellen Heft veröffentlicht. Sie hat Prozessoren von AMD und Intel unterschiedliche Benchmarks laufen lassen und auch die Prozessoren waren bunt gemischt – vom 35 Euro Exemplar bis zum neuen 950 Euro iCore i7 Haswell-EP Flagschiff.

Ich hatte jahrelang als Grundsatz beim Rechnerkauf bei allem auf die Mitte zu achten. Also bei Arbeitsspeicher, Prozessor, Festplattengröße. Damit bin ich immer gut gefahren. Man kann das auch gut begründen. Bei Festplatten ist es so, dass wenn man mehr Geld ausgibt, die Kapazität zuerst überproportional ansteigt, um dann stark abzuflachen. Bei Arbeitsspeicher bedeuten zu wenig, dass der Rechne rstark ausgebremst wird, weil viel auf die Festplatte ausgelagert ist, ist er zu groß wird er eventuell gar niemals vollständig genutzt. Bei Prozessoren gab es lange Zeit auch die Beziehung dass die Leistung jenseits der billigsten Exemplare zuerst stark anstieg und man bei den teuren Exemplaren extrem viel drauf zahlt für wenig Mehrleistung.

Wenn man das richtige Benchmark nimmt, findet man das auch noch in der ct bestätigt, so erreicht ein Celeron J1900 (35 Euro) 5% der Leistung eines ICore i7 5960X (950 Euro) – zumindest im Linpack Benchmark. Man kann aber auch mal sehen, wie schnell der Prozessor bei Benchmarks mit real existierenden Anwendungsprogrammen ist so der Office PC Mark 8 oder Sysmark 2014. Da kommt er Celeron schon auf 50-60% der Leistung des genannten iCore Prozessors. Der in etwa gleich teure Celeron G1840 erreicht sogar 80%. Wie diese enorme Diskrepanz? Continue reading „Das Ende eines Grundsatzes“

Projekt TreasureSat

Bisher war die Erderkundung eine Domäne von Regierungen und Regierungsorganisationen. Auch wenn es seit 20 Jahren durch Firmen gebaute und gestartete Satelliten gibt – wie die von Digiglobe betriebene Flotte, Aber auch sie ist nicht möglich wenn nicht die NRO die meisten Aufnahmen abkaufen würde. Dasselbe gilt für die französischen Plejades Satelliten und die TerraSAR / Tandem-X Konstellation. Bei der kennt man wenigstens den Industrieteil: Ein Drittel der Projektkosten.

Nun machen sich gleich mehrere Unternehmen auf, Satelliten zu starten ohne auf institutionelle Anleger als festen Kundenstamm zu setzen. Ein Ansatz ist der von Planet Labs die 3U Cubesats in großer Zahl starten. Jeder Satellit ist preiswert, auch der Start als Sekundärnutzlast ist kostengünstig. Aber er hat nur eine begrenzte Auflösung, Sendeleistung und auch Lebensdauer, da die meisten von ihnen bisher als Sekundärnutzelasten bei ISS Missionen gestartet wurden – da treten sie innerhalb von zwei Jahren wieder in die Erdatmosphäre ein. Continue reading „Projekt TreasureSat“

Ich verstehe es nicht

… und zwar die ESA-Kalkulation bei der Ariane 6. Zur Erinnerung: Die „neue“ Ariane 6 ist ist nichts anderes als eine Rakete mit einer kryogenen Zentralstufe (mit Vulcain 2), einer kryogenen Oberstufe (mit Vinci) und zwei oder vier P135 Booster (halbe Treibstoffmenge und Länge wie die EPS Booster der Ariane 5.

  • Also wir haben ein Gegenstück zur ESC-B Oberstufe, wir haben eine Zentralstufe, die einen etwas geringeren Durchmesser als die Ariane 5 und einer etwas geringeren Treibstoffzuladung, etwa auf dem Niveau der Ariane 5G. Auch das Triebwerk ist das gleiche.
  • Der Unterschied liegt nur in den Boostern. Sei sind halb so groß und haben ein FW-Gehäuse.

Gebaut wird sie ja um Geld zu sparen. Ein Ariane 5 Start kostet 165 Millionen Euro. Die Ariane 6 war in der alten Konzeption auf 70 Millionen Euro Startkosten bei 7 t Nutzlast ausgelegt. Bei der neuen Konzeption ist nach einer Drucksache des Bundestags die Nutzlast 5,8 bzw.. 10,6 t bei 80 bzw. 90 Millionen Euro. Continue reading „Ich verstehe es nicht“