2. Semesterarbeit 2012
Transcrição
2. Semesterarbeit 2012
2. Semesterarbeit Moderne Website-Erstellung Heisinger Maximilian Atzwanger Simone Prozessorarchitekturen Gaisberger Andreas Kuri Nikolaus Inhaltsangabe 1 Moderne Website-Erstellung.............................................................................................................4 1.1 Geschichte..................................................................................................................................4 1.2 Neue Technologien, neue Herausforderungen...........................................................................4 1.3 Erstellung einer Website............................................................................................................5 1.3.1 HTML & CSS Grundgerüst...............................................................................................5 1.3.2 CSS Klassen.......................................................................................................................6 1.3.3 Vererbung von Eigenschaften............................................................................................7 1.3.4 Identifier versus Klassen....................................................................................................8 1.3.5 Das CSS Box-Model & Positionierung.............................................................................9 1.3.6 Benützung eines CSS-Frameworks..................................................................................10 1.3.6.1 960 Grid System.......................................................................................................10 1.3.6.2 Blueprint...................................................................................................................10 1.3.6.3 Twitter Bootstrap......................................................................................................11 1.3.7 CSS Erweiterungen..........................................................................................................11 1.3.7.1 LESS.........................................................................................................................12 1.3.7.2 SASS........................................................................................................................12 1.3.8 JavaScript.........................................................................................................................13 1.3.9 Serverseitige Programmierung.........................................................................................13 2 Prozessorarchitekturen....................................................................................................................15 2.1 Grundbegriff............................................................................................................................15 2.2 Prozessorarchitekturen nach Wortbreite..................................................................................15 2.2.1 1-Bit Architekturen..........................................................................................................15 2.2.2 4-Bit-Architekturen..........................................................................................................16 2.2.3 8-Bit Architekturen..........................................................................................................16 2.2.4 16-Bit Architekturen........................................................................................................16 2.2.5 32-Bit-Architektur............................................................................................................17 2.2.6 64-Bit-Architektur............................................................................................................17 2.3 Prozessorarchitekturen nach Befehlssatzaufbau......................................................................19 2.3.1 CISC.................................................................................................................................19 2.3.2 EPIC.................................................................................................................................20 2.3.3 NISC.................................................................................................................................21 2.3.4 RISC.................................................................................................................................21 Seite 2 2.3.5 VLIW...............................................................................................................................22 2.3.6 Mikroarchitektur .............................................................................................................23 2.4 Geschichte................................................................................................................................23 2.4.1 Auflistung der Prozessoren bis 1999................................................................................24 2.4.2 Intel 4004.........................................................................................................................26 2.5 Prozessorarchitekturen mit Optimierung für Einsatzzwecke...................................................27 2.5.1 Grafikprozessor................................................................................................................27 2.5.2 Soundprozessor................................................................................................................27 3 Literaturverzeichnis.........................................................................................................................28 4 Bilderverzeichnis.............................................................................................................................28 Seite 3 1 Moderne Website-Erstellung Der Stil und die Technik von Websites hat sich in den letzten Jahren massiv gewandelt. Früher verwendete man zum Beispiel ausschließlich Tabellen zum Anordnen des Inhalts und der Navigation und ging dann über Frames als Zwischenschritt bis zur heute aktuellen Kombination aus HTML für den Inhalt und CSS für das Aussehen. 1.1 Geschichte Tim Bernes-Lee hat das World Wide Web 1989 erfunden. Das WWW ist allerdings nicht das Internet an sich, es ist lediglich ein großer Service der über das Internet gesendet wird. Es ist allerdings neben E-Mail der größte Anwendungsbereich des Netzes. Tim erfand damals alle Grundlagen des modernen Webs, nämlich HTML (HyperText Markup Language), den URI (Uniform Ressource Identifier) und HTTP (HyperText Transfer Protocol). 1994 gründete er das W3C (World Wide Web Consortium) und setzte damit die Standards des Webs mittels klar definierten Regeln fest. Seitdem sind die Technologien keineswegs stillgestanden. HTML ist heute in der neuesten Version 5 in Gebrauch, HTTP hat seit 1999 die Version 1.1 und neben HTML haben sich andere Sprachen wie JavaScript und CSS hinzugesellt, die weitere Möglichkeiten eröffneten und mit den immer schneller werdenden Browsern heute auch immer mehr Möglichkeiten bieten. [Wikipedia: Geschichte des Internets] 1.2 Neue Technologien, neue Herausforderungen Durch diesen ständigen Fortschritt im Gebiet der Website-Gestaltung und -Programmierung haben früher aktuelle und allgemein angewendete Methoden schnell ausgedient. 2000 war es noch in, wenn man möglichst viele Effekte und blinkende Lichter in die Dokumente einbauen konnte, heute hat sich der Fokus auf Klarheit und extreme Einfachheit gewandelt. Man kann an den alljährlichen Designänderungen der großen, marktbestimmenden Websites wie Google, YouTube und Facebook schnell aktuelle Trends ablesen. Das Problem hinter diesem ständigen Voranschreiten ist jetzt, das ältere Programmierer noch andere Vorgangsweisen oder Sprachen gewohnt waren. Im aktuellen Lehrplan an Schulen werden auch nicht die neuesten Technologien wie Javascript und CSS 3 gelehrt, sondern die Schüler werden mit statischen Layouts konfrontiert die mit verschachtelten Frame-Konstrukten realisiert wurden und deshalb oft nur in einer Vergrößerung gut aussehen, bei Seite 4 etwas größerem Zoom aber vollkommen an Lesbarkeit und Benutzerfreundlichkeit verlieren. Man darf aber kein alter Fortschrittsverweigerer sein, denn Fortschritt ist im Web keinesfalls etwas schlechtes. Er revolutionierte unsere Lebensweise schon einige Male, zuerst mit Wikipedia, dann mit Videoportalen und Sozialen Netzwerken. Früher war das Web statisch und Websites konnten nur von ihren Eigentümern editiert werden. Heute allerdings kann man Artikel Kommentieren oder Direkt und praktisch ohne Verzögerung mit Leuten auf der ganzen Welt chatten. 1.3 Erstellung einer Website 1.3.1 HTML & CSS Grundgerüst HTML ist eine Auszeichnungssprache. Das heißt: Sie beschreibt den Inhalt eines Dokuments. Allein durch diese Spezifikation wird schon ausgedrückt, dass man keine Programme oder Abläufe in HTML beschreiben kann. Die Sprache dient ausschließlich zur Beschreibung eines Dokuments mitsamt seiner Struktur und seinem Inhalt. Das Aussehen dieser Struktur wird heutzutage nicht mehr direkt in HTML beschrieben, sondern in CSS (Cascading Style Sheets). HTML ist in seinen Grundzügen wie folgend aufgebaut: <!-- Dies ist ein HTML-Kommentar. Dieser text hat keinen Einfluss auf die spätere Formatierung.--> <!DOCTYPE html> <html> <head> <!-- Titel des Dokuments --> <title>Ein HTML5 Dokument</title> <!-- Kodierung des Dokuments (korrekte Zeichenausgabe bei z.B. Umlauten)--> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <p> Hier steht der Seiteninhalt. Er steht in einem „p“ Tag → es ist ein Text-Paragraph. </p> </body> </html> Dieses Grundgerüst lässt sich dann immer weiter ausbauen. Jeder einzige Unterpunkt wird als HTML-Tag bezeichnet. Ein <p> Tag wird standardmäßig nicht gerade schön dargestellt, deshalb kann man als weiteren Schritt innerhalb des <head> Bereichs eine CSS-Datei einbinden. Dies lässt sich durch folgenden hinzugefügten Tag realisieren: <link rel="stylesheet" type="text/css" href="style.css"> Jetzt wird in der HTML-Datei eine zusätzliche CSS Datei eingebunden. Diese kann vom Browser Seite 5 voreingestellte Formate ändern und so das Aussehen der Website an die Wünsche des Erstellers anpassen. Standardmäßig baut sich eine CSS Datei wie folgt auf: /* Das ist ein CSS-Kommentar. Dieser Text hat keinen Einfluss auf die spätere Fromatierung. */ p { font-family: Arial; /* Setzt die Schriftart auf das weit verbreitete Arial /* font-size: 0.8em; /* Setzt die Größe des Textes auf die 0,8 Fache Standardgröße*/ } In dieser CSS-Datei werden nun in allen HTML-Dokumenten die sie eingebunden haben, alle <p> Elemente mit den festgelegten Eigenschaften ausgestattet: In diesem Fall mit der Schriftart Arial und der Text-Größe 0,8em. Die Einheit em ist zuerst nicht gerade leicht zu verstehen, da sie keine direkte Größe darstellt. Sie bezieht sich auf die eingestellte Größe im Browser des Benutzers. Wenn der Benutzer jetzt also schlechter sieht, oder sich eine Website genauer ansehen will, skalieren alle Texte der Website mit der neuen Einstellung des Benutzers nach oben oder nach unten. Man kann mithilfe dieser Einheit auch die Höhe der eingestellten Schriftart herausfinden und so die Zeilenabstand auf die eigenen Wünsche anpassen. Will man zum Beispiel einen Zeilenabstand von 1,5 mal der Höhe der Schriftart haben, fügt man einfach folgenden Code in das gewollte CSSElement ein: line-height: 1,5em; Hiermit kann man schon Eigenschaften zu allen möglichen HTML Elementen zuweisen. Eine gute, deutsche Auflistung von CSS-Eigenschaften1 findet man auf SelfHTML, wo man auch gleich eine Auflistung von allen HTML-Elementen2 bekommt. 1.3.2 CSS Klassen Jetzt hat man schon sein HTML-Dokument vor sich und kann es via auch schon CSS recht gut gestalten. Will man jetzt aber die selben Eigenschaften auf mehrere Elemente zuweisen, zum Beispiel ein roter Hintergrund, müsste man den nötigen CSS-Code 2 mal schreiben. Natürlich gibt es eine Alternative zu diesem nicht gerade dynamischen Vorgang, was auch der Vorteil der Gestaltung von HTML via Style Sheets gegenüber der Gestaltung über das Dokument an sich ausmacht: Klassen. 1 http://de.selfhtml.org/css/eigenschaften/index.htm 2 http://de.selfhtml.org/html/referenz/elemente.htm Seite 6 HTML-TEXT <p class=“red_background“> Lustiger Text der einen roten Hintergrund haben soll. </p> <table class=“red_background“> <tr> <th>Lustige Tabelle</th> <th>die einen roten Hintergrund</th> <th>haben soll</th> </tr> </table> CSS-TEXT .red_background { /* Der . kennzeichnet den Namen einer Klasse */ background-color: red; /* Der Hintergrund wird auf Rot gesetzt. /* } Alle HTML-Tags die mit dem Attribut class=“red_background“ ausgezeichnet werden, erhalten die in der CSS-Datei unter dem Punkt „red_background“ definierten Eigenschaften. Man kann diese Klasse auch direkt in den Body-Tag schreiben, dann wird die ganze Website mit einem roten Hintergrund dargestellt. Der Punkt vor dem Namen de Klasse in der CSS-Datei muss nur bei Klassennamen gemacht werden. Wenn man ein normales HTML-Element verändern will, muss man es ohne jedes Vorzeichen ins CSS reinschreiben. Die Klassen in CSS haben sehr viele Anwendungsmöglichkeiten, man kann mit ihnen nicht nur solche roten Hintergründe zusammenbasteln, sondern auch Elementen eine besondere, immer gleichbleibende Auszeichnung verpassen, wie zum Beispiel ein größerer Abstand vom umschließenden Text, eine andere Größe und ein eine andere Farbe (diese Klasse könnte dann zum Beispiel .important heißen). 1.3.3 Vererbung von Eigenschaften Alle HTML-Elemente vererben ihre Style-Eigenschaften von der Ebene über ihnen. Die oberste Instanz ist immer der Browser, er legt alles schon vorher fest. Wenn man jetzt zum Beispiel folgenden Code schreibt: <p class=“red_background“> Text mit etwas <b>fettem</b>. </p> Hier werden auf den fett geschriebenen Text die Eigenschaften des p Elements (roter Hintergrund & Schriftart) mit übertragen. Wenn man diesen <b> Tag an einer anderen Stelle einfügt, wird er die Eigenschaften von dort vererben. Man kann schnell in die Situation kommen, das ein Fetter Text in einem normalen Absatz anders Seite 7 aussehen soll als in einer Tabelle. Jetzt könnte man eine eigene Klasse schreiben die man immer in den gewünschten Bereichen einsetzt. Obwohl das in manchen Situationen die beste Methode ist, gibt das allerdings wieder recht viel Fummelarbeit und wieder schenkt uns CSS eine kluge Alternative: p b { color: red; } .important b { color: blue; } Da die .important Klasse einen roten Hintergrund hat, wäre unser roter, fett geschriebener Text dort überhaupt nicht lesbar. Deshalb definieren wir den fetten Text mit einer roten Schriftfarbe wenn er in einem Paragraphen steht, und mit einem blauen Text wenn er innerhalb der .important Klasse steht. Dieses Muster lässt sich natürlich auch auf Klassen in Elementen anwenden. 1.3.4 Identifier versus Klassen Ein Identifier (ID) darf nur einmal an ein Element vergeben werden. Dies klingt zuerst sinnlos, da man ja immer Eigenschaften auf mehrere Elemente legen können möchte. Wenn man aber genauer drüber nachdenkt und sich JavaScript ansieht, dann kann man die Vorteile von IDs erkennen. Identifier sind exklusiv nur einem einzelnen Element vergeben, man kann also in JavaScript per Document.getElementById(„Id-Name“) auf das gewollte Element zugreifen und zum Beispiel den enthaltenen Text oder die zugewiesenen Klassen ändern. IDs haben aber noch einen weiteren Vorteil gegenüber Klassen, nämlich eine andere Strukturelle Sicht. Man weißt dem Seitenkopf (normalerweise Header genannt) normalerweise die ID #header zu, da man ja nur einen Seitenkopf hat. Man kann im Allgemeinen aber sagen, das Klassen für die Meisten Anwendungen um einiges besser geeignet sind als IDs, da man sie im ganzen Dokument wiederverwenden kann und im Falle des Falles nicht den halben Code umschreiben muss weil man ein Element mit einer ID statt einer Klasse definiert hat. Wenn man einen neuen Abschnitt in seinem Dokument beginnen will, sollte man ihn meistens über eine Klasse definieren, und dann sollte man noch überlegen, ob nicht doch alle Abschnitte gleich sind und nur ein paar kleine Unterschiede haben, die sich dann wieder über Klassen, IDs und Vererbung definieren lassen. Anders als bei Klassen definiert man IDs im CSS-Code nicht über Punkte, sondern über ein HashZeichen (#). Das sieht dann so aus: Seite 8 #header { background-color: grey; text-align: right;/* Rechtsgestellter Text (Um den header vom Inhalt abzuheben) */ } 1.3.5 Das CSS Box-Model & Positionierung Das CSS Box-Model ist der wohl schwierigste Teil von CSS, da man hier einige Faktoren berücksichtigen muss und schnell den Überblick verlieren kann. Wenn man beispielsweise bereits einen Rahmen in einem Übergeordneten element gesetzt hat und dann im darunterliegenden Element eine größere Weite zuweist als das obere Element aufgrund des Rahmens überhaupt bieten kann, kommt man schnell zu seltsamen Verschiebungen im gesamten Layout. Deshalb gibt es auch zahlreiche CSS-Frameworks 3 die einem die Arbeit mit dem Layout um einiges erleichtern. Die grundlegende Funktionsweise kann man schnell beschreiben: Das Element selbst wird durch die Weite und Höhe bestimmt. Dazu addiert wird dann der Innenabstand (padding). Dieser ist der Abstand zwischen dem Element und dem Rahmen darum. Danach kommt der Rahmen (border) der natürlich auch wieder einen eigenen Hintergrund und Dicke haben kann. Am Ende kommt der Außenabstand (margin), der den Abstand zu den anderen Abbildung 1: CSS Box Model Elementen angibt, jedoch selber nicht mehr zum Element an sich gehört (zum Beispiel sichtbar wenn man einen Hintergrund zugewiesen hat). Zusätzlich zum Box Model gibt es dann die verschiedenen Positions Modi die ein Element haben kann: position: psotiion: position: position: static fixed relative absolute /* /* /* /* Normales Element – Normaler textfluss */ Bleibt immer an einem Punkt – Scrollt nicht mit */ Verschiebt das Element relativ zur eigentlichen Position */ Positionierung relativ zum nächsten Element das nicht static ist */ Außerdem gibt es noch einige weitere Möglichkeiten wie man das Verhalten von Elementen, zum Beispiel wenn der Inhalt größer wird als das Element selbst, beeinflussen kann. Eine sehr genaue Erklärung zu allen möglichen Optionen gibt es wieder auf SelfHTML 4. Ich kann hier nicht weiter 3 z.B. http://960.gs/, http://www.blueprintcss.org & http://twitter.github.io/bootstrap/ 4 http://de.selfhtml.org/css/eigenschaften/positionierung.htm Seite 9 ins Detail zu diesem Thema gehen, da es mehrere Seiten verschlingen würde und mehr einer Dokumentation gleich wäre. [SelfHTML] 1.3.6 Benützung eines CSS-Frameworks Ein Framework bietet einige Vorteile gegenüber reinem CSS, vor allem aber einen Zeitlichen. Wenn man Erfahrung mit einem Framework hat lässt sich eine Website mit einem komplexen Layout recht schnell realisieren ohne das man sich sehr lange mit den verschiedenen Eigenheiten der Style Sheets wie zum Beispiel Floats und Overflows aufhält. Bekannte Frameworks sind das 960 Grid System, Blueprint & Bootstrap von Twitter. Bootstrap gleicht an Umfang schon eher einem CSS Toolkit, enthält aber ein sehr gutes Grid-Framework, weshalb ich auch darauf eingehen will. Ein Grid-System beschreibt sich eigentlich selbst, es bietet eine leicht zu verwendende GitterStruktur zum schnellen erstellen eines Layouts. Man muss sich keine Pixel merken und keine dreckigen Hacks anwenden um die Navigation einer Website gleich breit zu bekommen wie die 2. Sidebar auf der anderen Seite, sondern muss sich einfach nur merken das die beiden jeweils 2 Grid Slots einnehmen, weshalb bei einem 12er Grid dann noch 8 für den Textkörper bleiben. Man kann so sehr leicht die Übersicht bewahren und verfällt in keine Depression wenn es mal nicht so läuft wie es soll, weil man den Fehler schnell finden kann. Die Frameworks sind in ihrer Anwendung zwar sehr ähnlich, haben aber dennoch ein paar Unterschiede. 1.3.6.1 960 Grid System Dieses Framework ist schon etwas angestaubt, bleibt aber ein sehr gutes Gitter zur Gestaltung von Websites. Der Name kommt von der Standardmäßigen Breite von 960 Pixeln, was als ideale Breite wegen der guten Teilbarkeit angesehen wurde. Heute sind relative (frei relativ zur Fensterbreite) Systeme beliebter, da sie einen nicht so stark begrenzen und große Bildschirme ihre Vorteile besser ausspielen können. Man definiert zuerst ob man ein 12er (60px pro Spalte) oder ein 16er (40px pro Spalte) Layout haben will und stattet dann einfach seine Elemente mit der Klasse grid_XX aus. Am Ende sieht die Seite dann sehr gut strukturiert und harmonisch aus. [960 Grid System] 1.3.6.2 Blueprint Blueprint hat normalerweise ein 24 Spalten Layout 5 und bietet einiges an zusätzlichen Funktionen verglichen mit dem 960gs. Man kann beispielsweise Elemente in Spalten hinein und hinaus ziehen 5 http://blueprintcss.org/tests/parts/grid.html Seite 10 und hat einiges an Typographischen Funktionen 6 die nicht nur Überschriften, sondern auch Tabellen und Auflistungen betreffen. Außerdem bietet Blueprint mehrere CSS-Generatoren7, die einem den benötigten Code (fixe Breite, dynamisch, ...) schnell generieren kann. [Blueprint Homepage] 1.3.6.3 Twitter Bootstrap Dieses Framework ist das umfangreichste von den dreien, es beinhaltet auch einiges an JavaScript Funktionen, genial aussehende Button Styles und sogar eigene jQuery Addons. Die Qualität und Vielseitigkeit dieses Frameworks hat allerdings auch ein neues Problem mitgebracht: Die Monotonität. Früher musste jeder Entwickler das komplette Design übernehmen, außer er hatte einen zusätzlichen Gestalter zur Seite. Heute ist es bei einem Großteil der Websites der Fall, das sie einfach Bootstrap hernehmen, die genialen Features benutzen und so eine eigentlich wunderschöne, aber nicht von tausenden anderen Seiten unterscheidbare Website erstellen. Da man häufig nicht mal mehr die voreingestellten Standard-Farben verändert sondern einfach das blaue Bootstrap so wie es ist her nimmt, wird das Internet wirklich etwas monotoner. Diese Monotonie wird aber bereits diskutiert und es erheben sich einige Stimmen (z.B. auf Reddit 8) gegen den Bootstrap Wahn, oder wenigstens für mehr Veränderungen zu den eigenen Bedürfnissen. Das System ist deshalb allerdings keinesfalls schlecht, es ist einfach zu komfortabel zum schnellen Website-Erstellen, dass Entwickler von Internet-Anwendungen nicht wieder extra ein neues Layout aus dem Boden stampfen wollen, sondern eben einfach das praktische Bootstrap verwenden. In Bootstrap gibt es neben dem normalen Grid auch noch Kopfzeilen, Typographische Styles die einem Traum gleichkommen und Buttons für die man sonst 4 Stunden bräuchte. [Bootstrap Homepage] 1.3.7 CSS Erweiterungen Vielen Leuten reicht CSS allein nicht, da die Sprache keine Variablen bietet und recht statisch ist. Deshalb haben einige Leute Erweiterungen zu CSS erstellt, die sich beim speichern in normales CSS umwandeln lassen. Man verwendet zum Beispiel in der Erweiterung Variablen, die dann beim Umwandeln durch die gesetzten Werte ersetzt werden. Bekannte Erweiterungen sind zum Beispiel LESS und SASS. 6 http://blueprintcss.org/tests/parts/elements.html 7 https://github.com/joshuaclayton/blueprint-css/wiki/Tools-and-Resources 8 http://www.reddit.com/r/webdev/comments/1bbpx3/bootstrap_overdose/ Seite 11 1.3.7.1 LESS LESS9 wird von Bootstrap verwendet und ist deshalb relativ weit verbreitet. Man kann Variablen einsetzen und mathematische Berechnungen durchführen, um Größenverhältnisse und farben auszurechnen. @base: #f938ab; .box-shadow(@style, @c) when (iscolor(@c)) { box-shadow: @style @c; -webkit-box-shadow: @style @c; -moz-box-shadow: @style @c; } .box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) { .box-shadow(@style, rgba(0, 0, 0, @alpha)); } .box { color: saturate(@base, 5%); border-color: lighten(@base, 30%); div { .box-shadow(0 0 5px, 30%) } } Es gibt eine Vielzahl an bereitgestellten Funktionen, mit denen man einiges an dynamischen CSS ohne viel Schreibarbeit erstellen kann, und man kann auch „Klassen Funktionen“ erstellen, die sogar Argumente haben können und dadurch ohne viel Tippen einen variablen Style einem Element zuweisen können. Außerdem kann man Vererbung direkt in den geschwungenen Klammern ({}) betreiben und muss nicht jedes Element einzeln anschreiben. [LESS CSS Homepage] 1.3.7.2 SASS SASS10 ist ebenfalls eine Erweiterung von CSS3 und bietet ähnliche Features wie LESS. Die Syntax ist etwas anders als bei LESS, allerdings auch größtenteils gleich. @mixin table-base th text-align: center font-weight: bold td, th padding: 2px @mixin left($dist) float: left margin-left: $dist #data @include left(10px) @include table-base 9 http://lesscss.org/ 10 http://sass-lang.com/ Seite 12 Ein großer Vorteil von SASS ist allerdings, dass man die geschwungenen Klammern weglassen kann und wie in Python nur mit Einrückungen arbeiten kann, was einem wiederum recht viele Zeilen erspart. [Sass Homepage] 1.3.8 JavaScript function myFunction(a,b) { return a*b; } document.getElementById("demo").innerHTML=myFunction(4,3); Javascript ist ein sehr vielschichtiges Thema und bietet sehr viele Möglichkeiten für WebProgrammierer. Man kann dynamische Anwendungen erstellen, die den Benutzer durch die Website begleiten, ansprechende Dropdown-Menüs für Navigationsleisten oder gar ganze Spiele im Browserfenster. Es läuft lokal im Browser und kommuniziert, wenn man es darauf programmiert, mit dem Server per HTTP Anfragen. Es gibt auch noch einen speziellen Webserver, der JavaScript auch serverseitig ausführt und so recht praktisch ist wenn man recht viel Code hat den man gerne wiederverwenden würde, ohne ihn zuerst auf eine serverseitige Sprache wie PHP zu übersetzen. Es gibt auch noch viele Pakete die sich auf die Fahne schreiben, das sie einen leichteren Umgang mit JavaScript ermöglichen und dies auch meistens tun. Das wohl bekannteste unter ihnen ist jQuery11, das von einigen großen Web-Präsenzen verwendet wird und auch zum Beispiel in Bootstrap seinen Platz findet. JavaScript hat allerdings auch seine Tücken, man kann damit zum Beispiel die Größe des Browserfensters ändern, den Benutzer mit Popups zumüllen oder penetrante Werbung einblenden lassen. Das Script ist allerdings nicht mehr aus dem Web wegzudenken, da es den Anwendungen trotzdem sehr viele Möglichkeiten eröffnet die man nicht missen will (zum Beispiel das direkte Suchen von Begriffen auf Google während man tippt, oder die Suchvorschläge). [SelfHTML] 1.3.9 Serverseitige Programmierung Man beschränkt sich bei modernen Websites nicht nur auf die Ausgabe im Browser des Benutzers, sondern verarbeitet auch eingegebene Informationen und speichert diese in einer Datenbank ab. Meistens wird dafür PHP verwendet (78,9 %12 der Websites), es gibt jedoch auch andere Sprachen 11 http://jquery.com/ 12 http://w3techs.com/technologies/details/pl-php/all/all Seite 13 wie zum Beispiel Ruby on Rails13 oder Perl14 die den Entwicklungsprozess vereinfachen sollen und eigentlich auch tun. Die meisten Webserver stellen allerdings nur PHP zur Verfügung, außerdem ist PHP die am weitesten verbreitete Sprache bei größeren Projekten (zum Beispiel MediaWiki, PhpBB, MantisBT, ...) und wird auch von vielen kommerziellen Websites verwendet (zum Beispiel Facebook). Es wurde sogar von Facebook ein PHP zu C++ Compiler entwickelt, der den vergleichsweise nicht sehr effektiven PHP Code in sehr effektiven C++ Code umwandelt (HipHop15). 13 http://rubyonrails.org/ 14 http://www.perl.org/ 15 https://github.com/facebook/hiphop-php Seite 14 2 Prozessorarchitekturen 2.1 Grundbegriff Prozessorarchitektur ist die Art des Prozessoraufbaus. Ein Prozessor ist eine elektronische Schaltung, welche bestimmte Bedingungen erfüllen muss. Diese wären: eine Arithmetisch-logische Einheit (ALU), ein Steuerwerk zur Programmsteuerung, ein Speicherwerk und ein BusSystem(=System zur Datenübertragung mit mehreren Teilnehmern) zur Kommunikation. Bei modernen PCs und Servern werden heutzutage als Hauptprozessoren nur noch Prozessoren mit 32-, oder 64-Bit verwendet. Die Prozessorarchitekturen weisen Unterschiede in diesen Aufbau und Umfang dieser Einheiten auf. Die Prozessorarchitekturen können nach verschiedenen Gesichtspunkten unterteilt sein, wie nach Wortbreite (= Grundverarbeitungsdatengröße bei einem Computer), Befehlsaufbau, und Einsatzzwecke. Innerhalb dieser Architekturen kann es auch viele verschieden Prozessoren geben. 2.2 Prozessorarchitekturen nach Wortbreite Die Einteilung verschiedener Architekturen nach ihrem Grunddatenvermögen 2.2.1 1-Bit Architekturen Die 1-Bit Architekturen sind EDV Systeme, die nur 1 Bit in ihrem Arbeitstakt verarbeiten. Eine echte 1-Bit-Architektur, welche wirklich auch als CPU (=Hauptprozessor) vermarktet wurde, ist die MC14500 Industrial Control Unit von Motorola. Häufige Vertreter der 1-Bit-Architektur sind speicherprogrammierbaren Steuerungen (SPS) (= Gerät zur Steuerung einer Maschine/Anlage, welches auf digitaler Basis programmiert wurde). Die Bezeichnung sagt nichts über die Prozessorplattform aus. Die sogenannte Anweisungsliste kann durch Optimierung, Parallelisierung und Wandlung in der Hardware stark Abweichend zur Lösung der SPS-Arbeitsaufgabe von 1-Bit sein. Zum Beispiel kann ein Programm mit 1-Bit-Logik mit einem Compiler für einen 32-BitProzessor übersetzt werden. Ein Programm für eine 1-Bit-Architekturkann so aufgebaut sein: • lade digitalen Eingang 1 in das 1-Bit-Register • (oder-)verknüpfe den Wert im 1-Bit-Register mit Eingang 2, das Resultat bleibt im Register Seite 15 • schreibe den Wert im 1-Bit-Register auf Ausgang 1 2.2.2 4-Bit-Architekturen Unter 4-Bit-Architektur versteht man eine der 3 Prozessor-Architekturen: • Intel; Modell 4004 • NEC; die Prozessorfamilie uPD75X • Texas Instruments; die Serie TMS1000 Es gibt zwar auch noch andere, welche aber äußerst selten sind. Bei dieser Architektur können 4 Bit (=1/2 Byte, =1Nibble) gleichzeitig verarbeitet werden. Das sind z.B. Ausführung des Registersatzes, Recheneinheiten und interne und externe Gestaltung von Adressbussen. 4-BitArchitekturen werden oft in Taschenrechnern, Waschmaschinen, Fernsehern und Videorekordern verwendet. Heute haben billige Prozessoren aus der Prozessorfamilie uPD75X von NEC die früher verwendeten 4-Bit Prozessoren 4004 von Intel abgelöst. 2.2.3 8-Bit Architekturen In der 8-Bit-Architektur gibt es schon viel mehr bekannte Versionen von Prozessor bzw. Mikrocontroller-Architekturen, als bei der 4-Bit Reihe. Einige von ihnen sind z.B. von Intel die 8008- und 8080-Modelle, von MOS die 6502-Serie und von NEC die 78K0-Serie. Bei den 8-Bit-Architekturen ist das Design so ausgelegt, dass 8 Bit (=1Byte) gleichzeitig ausgeführt werden können. Der Speicherbereich kann durch Memory-Mapping noch erweitert werden, weil Adressbus und Register oft 16 Bit breit sind. 8-Bit-Prozessoren sind die bis heute am häufigsten eingesetzten Prozessoren. Nicht als CPU, sondern als Mikrocontroller. Großteile von Computer und dessen Zubehör, wie Maus, Tastatur und Motherboard im Monitor sind mit 8-Bit-Prozessoren ausgestattet. Außerdem werden sie auch noch bei USB-Geräten verwendet. 2.2.4 16-Bit Architekturen In der 16-Bit-Architektur können jeweils 2 Byte gleichzeitig ausgeführt werden. Wichtig bei diesen Architekturen ist auch die Programmiersprache C. In dieser schlägt sich die Anzahl der Bits nieder. Zu der Zeit als die Programmiersprache C entstand, gab es auch schon 32-Bit-Prozessoren, darum verwendete man statt dem Int-Typ auf 16 Bit den Long-Typ, welcher 32-Bit hat und nannte ihn Seite 16 IP16. Zuerst arbeiteten die Betriebssysteme, wie DOS mit IP16 (small-Model), doch dann wechselte man auf 32-Bit-Architektur, da diese effektiver ist. 2.2.5 32-Bit-Architektur Durch das ALU-Design (ALU ist die Abkürzung für arithmetische logische Einheit und ist ein elektronisches Rechenwerk. Sie wird vor allem in Prozessoren angewendet) können gleichzeitig 4 Byte verarbeitet werden, und bietet dadurch eine höhere Leistung. 32 Bit sind ein Binärcode aus 32 Ziffern. (Nur 0 und 1) Hochbittige Prozessoren haben den Vorteil, dass man zum Beispiel große Integer-Werte leicht berechnen kann, und dies somit Vorteile bei Verschlüsselungsalgorithmen und graphischen Berechnungen schafft. Dass ein Vorteilhafter Wechsel von 16- auf 32-Bit-Prozessoren vorhanden ist, braucht man allerdings ein speziell angepasstes Betriebssystem. Außerdem braucht man für einen 32-Bit breiten Datenpfad auch einen 32-Bit breiten Adresspfad, welcher aber nicht immer vorhanden ist. In manchen Systemen kann es auch vorkommen, dass der Adresspfad schmaler oder größer als 32-Bit ist. Für diese Architektur und auch bei der 16-Bit-Architektur wurde speziell eine eigene Programmiersprache entwickelt. Die Programmiersprache C (Eine Programmierstelle, welche in den 1970er Jahren vom Informatiker Dennis Ritchie für Unix entwickelt wurde). 2.2.6 64-Bit-Architektur Bei dieser Architektur beträgt die Wortbreite 64-Bit (= 8 Byte) Viele der Computer, welche 64-Bit-Prozessoren besaßen, wurden Supercomputer genannt. Einige Beispiele dafür sind: IBM 7030 Stretch mit 64-Bit Wortbreite und 32- oder 64-Bit Befehlsbreite (1961), CDC STAR-100 Vektorrechner, Nachfolger der 60-Bit-Rechner der Control Data Corporation (1974), Cray-1, der erste 64-Bit-Vektorrechner, Vorläufer der Cray Supercomputerlinie (1976), Elxsi 6400 sogenannter „Minisupercomputer“ mit 64-Bit-Datenpfaden, aber 32-Bit- Seite 17 Adressraum (1983). Aber auch moderne Universalcomputer sind auf 64-Bit ausgerichtet, wie zum Beispiel von Sun Microsystems die UltraSPARC-Serie (32 und 64 Bit) (ab 1995), von IBM die System z-Serie (vormals S/390) (ab 2000), von Intel die IA-64-Familie (ab 2001) und von ARM Limited die ARMv8-Architektur (für 2014 angekündigt). Eine 64-Bit-Architektur war von Power PC (ein Konsortium aus Apple, IBM und Motorola, welches heute Freescale heißt, auch kurz AIM genannt) – im Gegensatz zu x86- von Anfang an Vorgesehen. Diese CPUs stammten nämlich Ursprünglich aus den Großrechnern, welche eine IBM Power-Architektur besitzen. Eine 64-Bit Erweiterung war auch für MIPS.Architektur vorgesehen. Beidess wurde dann auch umgesetzt, was aber erst einige Jahre darauf folgte. Die Vorteile dieser Architektur liegen darin, dass man, wie schon bei der 32-Bit-Architektur, einfacher große Integer-Werte berechnen kann, und somit auch leichteren Zugang zu Verschlüsselungsalgorithmen bekommt. Außerdem können bei den 64-Bit-CPUs 4Gigabyte Arbeitsspeicher direkt adressiert werden. Wirklich wichtig werden die 64-Bit-Prozessoren erst beim sogenannten intelligenten Management, welches vor allem von der Befehlssatzarchitektur Very Long Instruction Word (VLIW) gehandhabt wird und man hierbei sogar auf 128- oder 256- BitProzessoren setzen konnte. Nachteile der 64-Bit-Architektur sind, dass es vor allem bei kleinen Programmen zu schwindender Schnelligkeit und Effizienz führt. Außerdem sind alle Adresswerte dieser Architektur doppelt so breit wie die der 32-Bit-Architektur, und verbrauchen dadurch im RAM natürlich mehr Speicherplatz. Eine Schwierigkeit dieser Architektur ist die Anpassung, da man dies ganz speziell machen muss, und auch extra dafür ausgelegte Betriebssysteme benötigt. Genauso enthält nicht jedes System, welches 64-Bit-Datenpfade hat, auch 64-Bit-Adresspfade. In manchen Fällen können diese auch 32Bit bleiben. Unter der Programmiersprache C schlägt sich die Anzahl der Bits sowohl bei der Größe der ZeigerTypen (z. B. void *) als auch Integer-Typen (insbesondere int und long) nieder. Beim Übergang von einer 32-Bit-Architektur verbreitert man in der Regel Zeiger und long auf 64 bit, während der int auf 32 bit verbleibt. Dieses nennt man dann abgekürzt LP64. Heute drücken alle, auf UNIX Seite 18 basierenden Betriebssysteme ihre 64-Bit-Architektur in einem LP64-Typenmodell aus. Windows verwendet das LLP64-Modell. Es wurde das ILP64-Datenmodell eingeführt, da Quellcode von alter Software häufig unter der unzulässigen Annahme entwickelt wurde, dass ein int einen Zeiger halten kann 64-bit Datenmodelle[6] Datenmodell 2.3 short (integer) int long (integer) long long pointer LLP64 16 32 32 64 64 LP64 16 32 64 64 64 ILP64 16 64 64 64 64 SILP64 64 64 64 64 64 Prozessorarchitekturen nach Befehlssatzaufbau Es gibt sechs verschiedene Versionen in der Einteilung nach Befehlsaufbau: CISC, EPIC, NISC, RISC, VLIW, Mikroarchitektur 2.3.1 CISC CISC heißt Complex Computerprozessoren. Instruction Set Computer Der bekanntesten Vertretern ist dieses eine Designphilosophie Konzepts ist die für Intel-x86- Prozessorfamilie (bis einschließlich 80386). Die Befehlssätze für Prozessoren sollten Anfangs immer umfangreicher und leistungsfähiger werden. Dadurch wurde aber auch eine Weiterentwicklung immer schwieriger. Viele Hersteller setzten dann auf Mikroprogrammierung der Rechenwerke, da dadurch Fehler leichter zu beheben waren. Seite 19 Die Bezeichnung CISC geht auf IBM aus dem Jahre 1970 zurück. Früher waren fast alle CISC CPUs mikroprogrammiert. Solche findet man aber heutzutage kaum noch. 2.3.2 EPIC EPIC heißt Explicitly Parallel Instruction Computing, und ist eine Eigenschaft einer Befehlsarchitektur und der Verarbeitungsstruktur von Mikroprozessoren. Man entwickelte EPIC, um Logikgatter (ein elektronisches Bauelement für die Realisierung einer Booleschen Funktion) zu reduzieren, und so freien Platz für funktionale Einheiten zu schaffen, um diese in die CPU zu integrieren. EPIC funktioniert dadurch, dass dem Prozessor beim Programmieren signalisiert wird, welche Instruktionen (=Handlungsanweisung) man parallel ausführen kann. Diese parallelisierbaren Instruktionen werden in sogenannten instruction groups zusammengefasst. Das Optimierungsziel von EPIC ist, die nötigen instruction groups in ihrer Anzahl so zu minimieren, weil dadurch die durchschnittliche Anzahl der Instruktionen pro instruction group erhöht werden. Durch Anwendung von EPIC werden nötige Mittel gespart, welche bei nicht-EPIC Prozessoren dazu dienen, die Instruktion während einer Ausführung auf die parallel arbeitenden Einheiten des Prozessors aufzuteilen. Berechnungen, welche für die Parallelisierung notwendig sind, können mehr Rechenzeit für diese in Anspruch nehmen, weil sie unabhängig von der Ausführung erfolgen. Ein Verfahren Befehle abhängig von einer Bedingung auszuführen, ohne Sprungbefehle zu benutzen, nennt man in EPIC Predication. Außerdem gibt es noch Speculation, das wurde entwickelt, weil es bei größeren, und schnelleren Prozessoren einen Verlust der Daten im Speicheraufbau gibt. Das Ziel von Speculation ist also, Befehle im Programmaufbau früher auszuführen, damit die benötigten Daten gleich von vornherein vorhanden sind. Seite 20 2.3.3 NISC NISC ist der Name für No Instruction Set Computing, und ist eine Computer Architektur für Hardware –Beschleuniger und eine Entwicklung hocheffizienter benutzerdefinierte Prozessoren. Es ist eine statisch-geplante (Prozessorausführung und Fehlerkontrolle liegen in der Hand des Compilers) horizontale nano-codierende (es wird kein vordefinierten Befehlssatz oder Mikrocode benutzt) Architektur (SSHNA). Einige Vorteile von NISC sind: es gibt einen sogenanntenSimple Kontroller, bei welchem keine Hardware-Scheduler, und keine Instruktionsdecoder verwendet werden; eine bessere Performance, die flexiblere Architekturen und bessere Ressourcenauslastung bietet; und ein einfacheres Design, bei dem es keine Notwendigkeit gibt, Befehlssätze zu entwerfen. Das Konzept im Kern von NISC ist, leistungsfähige FPGAs (integrierter Schaltkreis der Digitaltechnik) durch intelligente Compiler dazu zu bringen, Programme die z. B. in Hochsprachen wie der Programmiersprache C geschrieben wurden, in Echtzeit in FPGA verständliche Hardwarebeschreibungssprachen zu übersetzen. 2.3.4 RISC Der Name ist die Abkürzung von Reduced Instruction Set Computer (Rechner mit reduziertem Befehlssatz). Diese Technologie wird für Computerprozessoren, welche einfache Maschinenbefehle bevorzugen verwendet. Der Begriff RISC wurde 1980 von David A. Patterson und Carlo H. Séquin geprägt, welche das Berkeley-RISC-Projekt starteten, was zum Ursprung von RISC führte. Wie der Name schon sagt, wird bei RISC auf komplexe Befehle, vor allem auf solche, die Speicherzugriffe (langsam) mit arithmetischen Operationen (schnell) kombinieren, verzichtet. RISC wurde Anfang der 60er und 70er Jahre zuerst entwickelt, und erlebte durch David A: Patterson und Carlos H. Séquin in den 1980ern ihre Blütezeit. RISC Prozessoren sind das richtige Gegenstück zu CISC Prozessoren. Doch heute können RISC Prozessoren auch die Grenzen der engen Definition und komplexere Befehle überschreiten. Die wahrscheinlich wichtigste, und am öftesten vorhandene RISC Architektur, ist ARM. Sie Seite 21 kommt vor allem bei Systemen mit hoher Leistung und geringen Kosten vor(typisch: 100–500 MHz 2008). Die ARM Ltd, welche diese Systeme konstruiert, baut allerdings selbst keine Prozessoren, sondern verkauft lediglich Lizenzen für das Design an ihre Kunden. Zur Zeit sollen 10 Milliarden ARM-CPUs im Umlauf sein, welche in Tablets, Digitalkameras, grafikfähigen Taschenrechnern, NAS, Routern, Spielkonsolen, PDAs, Smartphones und verschiedenen Mobiltelefonen vorkommen. Für die Zukunft sind auch energiesparende Server angestrebt, deshalb hat ARM erste Pläne für eine 64-Bit-Architektur vorgestellt. 2.3.5 VLIW VLIW heißt eigentlich Very Long Instruction Word, und ist die Eigenschaft einer Befehlsarchitektur in einer Familie von Mikroprozessoren. Als Ziel wurde die schnellere Abarbeitung sequentieller Programme gesetzt. Während der Übersetzungszeit überprüft der Compiler eines Programms, welche Instruktionen parallel ausgeführt werden können. Alle Instruktionen eines Befehls, werden durch die Ausführungseinheiten zur Laufzeit des Programms parallel verarbeitet. Bei VLIW gibt es ein sehr breites Befehlsformat, in welchem mehrere Instruktionen enthalten sind. Die Parallelität auf der Befehlsebene kann aber nicht immer vollständig genutzt werden. Das kann sein, wenn zum Beispiel in einem Takt nur ein Befehl ausgeführt werden kann. Eine Lösung für dieses Problem fand Texas Instruments, welche die VelociTI-Technikentwickelten. Dies ist eine Technologie, bei welcher mehrere Befehle in aufeinander folgenden Takten in ein Befehlswort gepackt werden können. Intel in seiner IA-64-Architektur verwendet ein ziel ich ähnliches System. Die Vorteile von VLIW sind, dass es mehr Platz für die Funktionseinheitengibt, es ist ein Einfacher Kontrollpfad vorhanden und es besteht eine gute Ausnutzung durch Compiler-Techniken wie Software-Pipelining. Ein Nachteil von VLIW ist, dass sich der Code nicht unbedingt ohne größere Änderung auf andere Prozessoren portieren lässt. Seite 22 2.3.6 Mikroarchitektur Die Mikroarchitektur ist ein Rechenwerk, das die konkrete, prozessorinterne Realisierung einer CPU mit vorgegebener Befehlssatzarchitektur bezeichnet. Begriffe wie VLIW und EPIC sind nur verschiedene Paradigmen bei Entwurf- und Befehlsarchitektur. Die implementierte Befehlssatzarchitektur eines Prozessors lässt nicht unbedingt Rückschlüsse auf die verwendete Mikroarchitektur zu. Meistens werden Mikroarchitekturen mit Blick auf eine vorgegebene Befehlssatzarchitektur entworfen, da man somit die Kompatibilität der Vorgänger CPU wahren kann. Dabei können die Unterschiede zur Mikroarchitektur des Vorgängermodells erheblich sein. Ein Beispiel sind die x86-CPUs Pentium und Pentium Pro genannt, deren Befehlssätze sich kaum unterscheiden, aber ihre Mikroarchitekturen sind von Grund auf verschieden. Bei der Weiterentwicklung der Mikroarchitektur können sehr viele vielfältige Ziele gesetzt werden. Normalerweise spielt der spätere Einsatzzweck der CPU eine Rolle, doch manchmal hängt dies auch vom Marketing ab. Die möglichst schnelle Ausführung eines Programms, steht in den meisten Fällen im Vordergrund. Ein anderes Entwurfsziel können auch Kostengünstige Fertigung, Energieverbrauch, Skalierbarkeit, Erweiterbarkeit und Wartbarkeit sein. 2.4 Geschichte Die ersten Prozessoren gab es bereits 1971, Intel begann mit der Entwicklung von Prozessoren sogar schon 1969. Damals wurde ein solcher Prozessor von der japanischen Firma Busicom in Auftrag gegeben, um Chips für eine Rechenmaschine für einen Supermarkt zu erhalten. Heraus kam Intel 4004, der erste Mikroprozessor mit dem die ganze Abbildung 2: Intel 4004 Prozessor Prozessorszenerie begann. Schnell erkannte man die unbegrenzten Möglichkeiten und die zahlreichen Anwendungsgebiete des Mikroprozessors. Heutzutage sind Computer nicht mehr aus dem Alltag wegzudenken und der Prozessormarkt scheint unerschöpflich zu sein. Immer aufwendigere Aufgaben und komplexere Anwendungen erfordern immer schnellere Prozessoren, was die Entwicklung der Prozessoren stark Seite 23 antreibt. 2.4.1 Auflistung der Prozessoren bis 1999 Jahr Hersteller Model Transistoren Takt Bemerkung 197 Intel 4004 2.300 108 Dieser Prozessor war der Urvater aller Prozessoren und somit der erste kHz Mikroprozessor. Die 4-Bit Datenbreite reichte für den Einsatz in 1 Taschenrechnern und zur Steuerung von elktronischen Geräten. 197 Intel 8008 3.500 3 197 Motorola 6800 4.100 200 Der Intel 8008 unterstützte nun die 8-Bit Datenbreite und konnte erstmals kHz programmiert werden. 1,0 Konkurrenz-Produkt zum Intel-Prozessor mit eigenem Befehlssatz, der 4 nicht mit dem Intel-Prozessor kompatibel war. Dieser Prozessor galt erste vollwertige CPU. 197 Intel 8080 6.000 2,0 5 mit 8-Bit-Datenbreite, aber weiterhin ohne Co-Prozessor. 197 MOS 5 Technology 197 Zilog 6502 Z 80 4.000 8.500 6 197 Motorola 6809 7 197 1,0- Diese CPU kam im Apple II zum Einsatz und war schneller als der Intel 2,0 8080. Ebenfalls mit 8-Bit Datenbreite. 2,5- 8-Bit-Prozessor, der einen effizienteren und besseren Befehlssatz als der 8,0 Intel 8080 besaß und somit leitungsmäßig überlegen war. 5,0- 8- Bit Mikroprozessor aus dem Hause Motorola. Sehr leistungsstark. 8,0 Intel 8086 29.000 8 198 Erste vollprogrammierbare CPU aus dem Hause Intel. Wie der Vorgänger Intel 8088 29.000 0 4,0- Erste CPU mit 16-Bit-Technologie, auf der viele Prozessoren basierten. 8,0 Selbst moderne Prozessoren basieren auf dieser Architektur. 4,0- Günstige Alternative zum Intel 8086. Hatte nur einen externen 8-Bit- 8,0 Datenbus und konnte somit billiger produziert, was sich aber letztendlich negativ auf die Performance auswirkte. 198 Zilog Z 8000 17.500 Konkurrenzprodukt zum Intel 8086, welche ebenfalls ein 16-Bit-Datenbus 0 198 hatte. Motorola 68000 68.000 20 16-Bit-CPU von Motorola. Schneller als der Intel-Prozessor. 198 MOS 6510 11.500 1,0 Erweiterte 6502-CPU, welche im Commodore C 64 zum Einsatz kommt. 1 Technology 198 Intel 80286 124.000 6,0-20 Nachfolger des Intel 8086. Der Intel 80286 (in der Regel einfach nur 286er 0 2 198 genannt) basierte weiterhin auf der 16-Bit-Technologie. Motorola 68010 190.000 4 198 5 Intel 80386 275.000 8,0-30 Erste CPU, welche die 32-Bit-Technologie unterstützte. Kam in den Mhz Rechnern Apple-LISA und Macintosh zum Einsatz. 12-30 Mit dem 386er zog Intel Motorola nach und veröffentlichte den ersten Mhz hauseigenen 32-Bit-Prozessor. Dieser war erstmals auch Multitasking fähig, konnte also mehrere Programme gleichzeitig ausführen. Seite 24 198 Zilog Z 80000 198 MOS 65816 5 Technology 198 Motorola 91.000 32-Bit-CPU von Zilog. Letzter Prozessor aus dieser Prozessorschmiede. 5 68030 Weitere 32-Bit-CPU der 65x-Baureihe. 273.000 10-50 7 198 CPU aus dem Hause Motorola mit 32-Bit-Technologie. Besitzt eine externe Fließ-Komma-Einheit , was dem Prozessor deutlich beschleunigt. Intel 80486 1.180.000 9 16- Mit dem Intel 486er und Windows 95 begann der Aufschwung der Privat- 100 PC's. Der 486er hatte erstmals einen integrierten Co-Prozessor und war deutlich schneller als der Vorgänger. Die Taktraten betrugen bis zu 100 Mhz. 198 Motorola 68040 1.200.000 10-50 9 199 dem Chip integriert. Dadurch deutlich schneller. IBM Power 1 492.000 Erste eigenständige IBM-CPU, aber deutlich langsamer als die Prozessoren 0 199 Nachfolger der 68030-CPU . Dieses mal war die Fließ-Komma-Einheit in von Intel und Motorola. AMD 386 DX 200.000 16-40 1 AMD entwickelt den ersten Klon-Prozessor. Dieser ist technisch gesehen dem Intel 386er unterlegen, aber die höheren Taktraten machten diesen Prozessor trotzdem interessant, da er auch günstiger war. 199 IBM 386 SLC 815.000 16-25 1 199 blieb. Cyrix 486 SLC 600.000 2 199 IBM 486 SLC 1.400.000 2 199 20- Cyrix steigt in den Prozessormarkt ein und veröffentlicht den 486 SLC. 100 Dies ist ein Klon des 386, aber ohne mathematischen Co-Prozessor. 20- IBM-Variante zur 80486-Intel-CPU. 100 Motorola 68060 1.500.000 2 199 Versuch von IBM, den 386er bzw. 486er zu imitieren. Was aber ohne Erfolg 50- Letzter Prozessor aus dem Hause Motorola. 100 Intel Pentium 3.100.000 3 60- Der Pentium löst den 486er und kann trotz geringerer Taktraten den 486er 166 schlagen. Anfangs auch unter 80586 bürgerte sich der Name Pentium schnell ein. 199 Cyrix 486 DX 1.100.000 3 199 Cyrix-Klon zum Intel 486, der zudem auch Pin-kompatibel war. 100 AMD 486 930.000 3 199 33- Intel 5 Pentium 5.500.000 Pro 33- AMD-Klon des Intel 486. Dieses Mal mit offizieller Lizenzierung, dass 100 AMD denselben Sockel benutzen darf. 150- Server-Prozessor, der deutlich größer war als der herkömmliche Pentium. 200 Mit insgesamt 256 KB integriertem L2-Cache war der Pentium Pro ein teurer und schneller Rechenknecht. 199 Cyrix 6x86 3.300.000 5 199 5 AMD K5 4.300.000 100- Billiger Konkurrent zum Pentium Pro, der in Zusammenarbeit mit IBM 200 hergestellt wurde. Ist teilweise sogar schneller als der Pentium Pro. 100- Die K5-Prozessoren traten den Kampf gegen die Pentium-Prozessoren an. 120 Dabei legte AMD eher Wert auf günstige Preise als auf Leistung. Trotzdem waren die K5-Prozessoren ziemlich flott. Pin-Kompatibel zu den Pentium- Seite 25 Prozessoren. 199 Nexgen Nx6x86 5.100.000 5 199 IBM PowerPC 5.100.000 604e Intel Pentium II 7.500.000 7 199 Letzte CPU von Nexgen. 133 6 199 75- AMD K6 5.500.000 7 166- Weiterentwickelte CPU der 6. Generation. Vergleichbar mit dem Pentium 250 Pro. Wird von IBM jedoch nicht in den eigenen PC's eingesetzt. 233- Der Nachfolger des Pentium-Prozessors wurde erstmals in einer Prozessor- 350 Box gefertigt, also der Prozessor an sich befand ich auf einer Cartridge. 166- Der AMD K6 wurde weiterhin in der Sockel 7 Bauweise produziert und 300 stand in Konkurrenz zum Pentium MMX und Pentium 2, gegen die er sich nie richtig durchsetzen konnte und als günstige Alternative galt. 199 AMD K6-2 9.300.000 8 199 Intel Celeron 8 450- Verbesserter K6-Prozessor, dem nun auch der Befehlssatz 3DNow! 533 implementiert wurde, um Multimedia-Anwendungen zu beschleunigen. 266- Intel führt erstmals den Celeron-Prozessor ein, um eine günstige Alternative 533 zu den teuren Pentium-Prozessoren anbieten zu können. Dieser wird in der Regel etwas abgespeckt und verliert dadurch etwas an Leistung, ist dafür aber günstiger. 199 PowerPC 8 199 6.350.000 750 Intel 9 199 PowerPC Pentium 9.500.000 III AMD K7 Athlon 22.000.000 9 200- Motorola / IBM-CPU der 7. Generation. Kommt in den Apple-iMacs zum 500 Einsatz. 450- Der Nachfolger des Pentium 2 kommt mit höheren Taktraten, einer 650 verbesserten Architektur und neuen Befehlssätzen (SSE) daher. 500- AMD führt den Athlon Prozessor für den Slot A ein, der dem Pentium III in 1000 allen Belangen überlegen ist. Mit dem Athlon-Prozessor gewinnt die Firma AMD deutlich an Prestige! 199 Intel Celeron 2 21.000.000 9 2.4.2 500- Der Celeron bekommt einen neuen Prozessorkern. Der Coppermine-Kern 1000 wird ebenfalls im Pentium 3 verbaut. So sind höhere Taktraten möglich. Intel 4004 Intel 4004 ist ein 4-Bit-Mikroprozessor der 1971 vom Hersteller Intel auf den Markt kam und heute zu den begehrtesten Objekten für Chipsammler zählt. Er ist zwar der erste Ein-ChipMikroprozessor, der in Serie produziert wurde, allerdings nicht der allererste Mikroprozessor überhaupt denn Texas Instruments gab bereits 1968 einen Mikroprozessor in Auftrag, der allerdings nie in Serie ging. Seite 26 2.5 Prozessorarchitekturen mit Optimierung für Einsatzzwecke 2.5.1 Grafikprozessor Der Grafikprozessor (GPU) sorgt dafür, dass die Zahlen und Daten aus der Computerwelt als Bilder und Texte auf dem Bildschirm zu sehen sind. Der Grafikprozessor sitzt auf der Hauptplatine oder einer eingebauten Grafikkarte. Viele Grafikprozessoren stammen heute von AMD, Intel oder Nvidia. 2.5.2 Soundprozessor Der Soundprozessor (SPU) sorgt dann dafür, dass man auch einen Ton beim Computer hat. Heute wird er zusehends von Soundkarten ersetzt, sie sind oft schon Bestandteil der Hauptplatine. Soundkarten sind aber nicht nur für Computer, es gibt sie auch bei Spielkonsolen oder in Autos. [Wikipedia: Prozessorarchitekturen] Seite 27 3 Literaturverzeichnis Wikipedia: Geschichte des Internets: http://de.wikipedia.org/wiki/Geschichte_des_Internets - 2013 Wikipedia: Prozessorarchitekturen (Alle Unterkapitel): http://de.wikipedia.org/wiki/Prozessorarchitektur - 2013 Sass Homepage: http://sass-lang.com/ - 2013 LESS CSS Homepage: http://lesscss.org/ - 2013 Twitter Bootstrap: http://twitter.github.io/bootstrap/index.html - 2013 Blueprint CSS: http://www.blueprintcss.org/ - 2013 960.gs: http://960.gs/ - 2013 SelfHTML Homepage: http://de.selfhtml.org/ - 2013 4 Bilderverzeichnis Abbildung 1: CSS Box Model.............................................................................................................9 Abbildung 2: Intel 4004 Prozessor.....................................................................................................23 Seite 28