Aufbau und Funktionsweise eines Computers

Ähnliche Dokumente
Aufbau und Funktionsweise eines Computers

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Aufbau und Funktionsweise eines Computers

Aufbau von modernen Computersystemen

Abschnitt 2: Daten und Algorithmen

Grundlagen der Rechnerarchitektur. Einführung

Zahlensysteme und Kodes. Prof. Metzler

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

Allgemeines zu Programmieren I

1. Grundlegende Konzepte der Informatik

Binäre Darstellung ganzer Zahlen

Aufbau und Funktionsweise eines Computers

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Einführung in die Programmierung

Rückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Daten und Algorithmen

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Elementare Konzepte von

I) Grundlagen der Programmierung. II) Erweiterte Grundlagen der Programmierung

I) Grundlagen der Programmierung. II) Erweiterte Grundlagen der Programmierung

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

3. Datentypen, Ausdrücke und Operatoren

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

alphanumerische Zeichen

Kapitel 5: Daten und Operationen

N Bit Binärzahlen. Stelle: Binär-Digit:

1.5 Einführung und Zahlensysteme/Darstellung gebrochener Zahlen

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Beschaffung vom Informationssystemen Datenorganisation Kommunikation

Rechnerorganisation. IHS 2018/2019 H.-D. Wuttke, K. Henke

Rechnerorganisation. IHS 2015/2016 H.-D. Wuttke, K. Henke

Grundlagen der Informatik 0

(7) AB 20: Bits und Bytes

2.1 Fundamentale Typen

Datendarstellung Teil 2

Abschnitt 4: Daten und Algorithmen

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

Aufbau und Funktionsweise eines Computers

Rechnergrundlagen SS Vorlesung

Informatik Vorkurs - Vorlesung 2

1. Stellenwerte im Dualsystem

Einführung in die Informatik I

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Einführung in die Programmiertechnik

Kapitel 2. Zahlensysteme

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

Wissenschaftliches Rechnen I

Rechnergrundlagen SS Vorlesung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Grundlagen der Rechnerarchitektur. Einführung

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Zahlendarstellungen und Rechnerarithmetik*

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung

Grundlagen der Informatik

Algorithmen und Datenstrukturen

Grundlagen der Rechnerarchitektur

Mikroprozessortechnik Grundlagen 1

Chapter 1 Einführung. CCNA 1 version 3.0 Wolfgang Riggert, FH Flensburg auf der Grundlage von

1. Grundlagen der Informatik Zahlensysteme und interne Zahlendarstellung

Datendarstellung Teil 2

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

(eindimensionaler) Paritätscode: Codes (8a)

Algorithmen und Datenstrukturen (für ET/IT)

Motivation und Überblick

Modul InfB-RS: Rechnerstrukturen

Kodierung. Bytes. Zahlensysteme. Darstellung: Zahlen

D A T E N... 1 Daten Micheuz Peter

Information und ihre Darstellung

5 Zahlenformate und deren Grenzen

Der von Neumann Computer

Algorithmen und Datenstrukturen (für ET/IT)

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Was sind primitive Datentypen? Primitive Datentypen

Vorlesung 1 Medizininformatik. Sommersemester 2017

Rechnerorganisation 12. Vorlesung

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Rechnerorganisation 12. Vorlesung

Technische Informatik (RO)

2 ARITHM. UND LOG. AUSDRÜCKE ZAHLEN

FAKULTÄT FÜR INFORMATIK

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Basisinformationstechnologie I

Abschlussklausur Informatik, SS 2012

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

Transkript:

Aufbau und Funktionsweise eines Computers Ein Überblick Vorlesung am 20.10.05 Folien von A.Weber und W. Küchlin, überarbeitet von D. Huson

Computer und Algorithmen Computer sind Geräte zur Verarbeitung von Daten Beispiel Texterfassung und erkennung: Algorithmus

Computer und Algorithmen Die Datenverarbeitung erfolgt mittels Algorithmen, das sind genau spezifizierte Rechenverfahren, die in endlicher Laufzeit zu einem Ergebnis kommen Z.B. ein Sortieralgorithmus wird benutzt, um eine Liste von Wörtern alphabetisch aufzulisten Neuronale Netze oder SVMs werden benutzt, um Texte zu erkennen, oder SPAM zu filtern Algorithmen werden in mathematischer Sprache verfasst und mittels einer Programmiersprache wie etwa C, C++, Scheme oder Java implementiert

Abstrakte Maschinenmodelle Ein wichtiges Ergebnis der Theoretischen Informatik, Turing s Theorem, impliziert: alle Computer und alle Programmiersprachen sind theoretisch gleichmächtig. Es gibt also theoeretisch nichts, was z.b. mit Java auf einem heutigen Computer berechnet werden kann, was nicht schon mit Basic auf einem Sinclair ZX80 machbar wäre Aber: praktische Unterschiede sind sehr gross bezüglich Berechnungsgeschwindigkeit und Speicherplatz Alan Turing

Abstrakte Maschinenmodelle Hauptspeicher = = 1941 Konrad Zuse s Z4, Relais Rechner, Deutsches Museum, München 1980 ZX80, 3,25 MHz 1k RAM 1999 Supercluster zum assemblieren des menschlichen Genomes 1000 Prozessoren, insgesamt 1 TeraByte RAM

Abstrakte Maschinenmodelle Deshalb können: alle theoretische Fragen an Hand eines einfachen Modells, die sogenannte Turingmachine, untersucht werden Algorithmen weitgehend ohne ein konkretes Maschinenmodell entwickelt werden Programme, in einer modernen Programmiersprache geschrieben sind, auf unterschiedenen Computersystemen laufen

Abstrakte Maschinenmodelle Trotzdem fließen Eigenschaften realer Computer auch in das Design von Programmiersprachen ein Z.B. Caching Dieses Kapitel gibt nur einen kurzen Übersicht über Aufbau und Funktionsweise eines Computers Thema von Informatik II Vertieft in Vorlesungen über Rechner-Architektur Literatur z.b.: Oberschelp/Vossen oder Tanenbaum

Hard- und Software Computersysteme bestehen aus Hardware und Software Hardware: die physikalischen Bestandteile eines Computers, fest gegeben, kann angefasst werden und unveränderlich (bis auf den Austausch von Komponenten) Software:besteht aus den gespeicherten Programmen, die durch die Hardware ausgeführt werden Sie ist unsichtbar Sehr leicht zu ändern / zu speichern / auszuführen, da sich dies nur in der Änderung von magnetischen (bei Festplatten) oder elektrischen (bei Speichern und Prozessoren) Zuständen der Hardware auswirkt, nicht aber in der Änderung fester Bestandteile

Organisation der Hardware Architektur eines einfachen Computersystems: Daten fliessen zwischen den Komponenten über den Bus

System-Architektur der Hardware Architektur eines Intel P2 PC Systems mit mehreren Bussen an Brücken

System-Architektur der Hardware Architektur eines Intel P4 PC Systems mit mehreren Bussen an Hubs Intel Pentium 4 CPU 3.2 GB/s PC133 1,06 GB/s DDR 200 1,6 GB/s DDR 266 2,1 GB/s AGP 4X Graphik >1GB/s MCH SDRAM/DDR Hauptspeicher 266 MB/s ATA 100 MB/s 133 MB/s PCI Bus 2 IDE Kanäle ICH 6 Kanal Audio Local Area Network Schnittstelle 4 USB Anschlüsse 2 Controller total 24 Mb/s Firmware Hub

CPU

System-Architektur der Software: Schichtenaufbau eines Rechnersystems

System-Architektur der Software: Schichtenaufbau eines Rechnersystems Anwenderprogramme Programmierung Assemblersprache

System-Architektur der Software: Schichtenaufbau eines Rechnersystems Assemblersprache Systemsoftware Prozessor

Anwendersoftware und Systemsoftware Programme der Anwendersoftware dienen zur Lösung von Problemen der externen Welt der Anwender z. B. Textverarbeitung, Tabellenkalkulation, Bildbearbeitung, Buchhaltung, Produktionsplanung, Gehaltsabrechnung, Spiele, Programme der Systemsoftware halten den Rechner am laufen und unterstützen bei der Konstruktion der Anwendersoftware Systemsoftware umfasst neben Datenbanksystemen und Übersetzern (compiler), vor allem das Betriebssystem.

Betriebssystem Das Betriebssystem (operating system) verwaltet die Ressourcen der Hardware (wie Geräte, Speicher und Rechenzeit) Es stellt der Anwendersoftware eine abstrakte Schnittstelle ( Systemaufrufschnittstelle ) zur Verfügung und vereinfacht so die Nutzung der Ressourcen und schützt vor Fehlbedienungen Anwender -Software Systemsoftware Betriebs- System Das Betriebssystem isoliert die Anwendersoftware von der Hardware: das Betriebssystem läuft auf der Hardware und die Anwendersoftware auf dem Betriebssystem Hardware

Arten von Rechnersystemen Es gibt heute eine große Vielzahl von Rechnersystemen Übliche Computer kann man grob einteilen in PCs (personal computer), Arbeitsplatzrechner (workstation), betriebliche Großrechner (business mainframe) wissenschaftliche Großrechner (supercomputer) Eingebettete Systeme (embedded system) verbergen sich in allerlei Geräten, wie z. B. Haushaltsgeräten oder Handys In Autos ist die Elektronik schon für ca. 25% des Wertes verantwortlich (wird bis ca. 40% steigen) Aus Sicht der Informatik rollende Rechnernetze

Der Kern des Rechners: von Neumann Architektur Grundsätzlicher Aufbau verschiedener Rechnersysteme im Grundprinzip gleich Von Neumann Architektur Wahlfreier (beliebiger) Zugriff (random access)

Kleinste Speichereinheit 1 Bit hat 2 Zustände Strom aus/an, Kondensator geladen/ungeladen, Zustände werden i.a. mit 0 und 1 bezeichnet Paket aus n Bits hat 2 n Zustände Mit 2 Speichereinheiten 2 2 =4 Zustände Mit 8 Bits 2 8 =256 Zustände darstellbar 1 Byte := 8 Bit Heutzutage sind Bytes die kleinsten adressierbaren Speichereinheiten Kleinere Einheiten müssen aus einem Byte extrahiert werden Speicher

Kilo-, Mega, Gigabytes In der Informatik wird mit kilo meist 1024=2 10 gemeint 1 kbyte = 1024 Byte Mit Mega 1024 1024=2 20 1 MByte = 1024 kbyte Mit Giga 1024 1024 1024=2 30 1 GByte = 1024 MByte Entsprechend kbit, MBit Manchmal auch kb für kbyte und kb für kbit (entsprechend MB, Mb, GB, Gb); manchmal auch KB, Kb, großes K = 1024. Widerspricht eigentlich dem normierten Sprachgebrauch, in dem k immer 1000, und M immer 1000000 bezeichnen muss

Wort, Halbwort, Doppelwort Weitere wichtige Einheiten Wort (word) = 4 Byte = 32 Bit Halbwort (short) = 2 Byte = 16 Bit Doppelwort (long, double) = 8 Byte = 64 Bit Heutige Rechner können meist 32Bit oder 64Bit auf einmal verarbeiten PCs mit Intel Pentium noch 32 Bit Itanium 2 Prozessor schon mit 64 Bit Bei RISC Workstations meist schon Übergang zu 64Bit vollzogen

Adressen Mit Speicheradressen von 32Bit Länge können 2 32 Byte=4 2 30 Byte=4GByte=4096 MByte adressiert werden Mit 64Bit können 2 64 Byte=2 34 GByte 10 11 GByte adressiert werden Beispiel: mit 4 Bit können wir 16 Byte addressieren: Speicher 10100101 10100101 10100101 10100101 10100101 10100101 10100101 10100101 10100101 10100101... Addresse 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001...

Adressen Wenn ein Wort aus den Bytes mit den Adressen n, n+1, n+2, n+3 besteht, dann ist n die Adresse des Worts In einem Speichermodul sind die Werte von n, die durch 4 teilbar sind, die natürlichen Grenzen für Worte An solchen Stellen beginnende Worte sind an den Wortgrenzen (word boundary) ausgerichtet (aligned) peicher 10100101 10100101 10100101 10100101 10100101 10100101 10100101 10100101 10100101 10100101... ddresse 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Wort 1 Wort 2 Wort 3...

Binärcode In (heutigen) Computern können Daten nur in der Form von Bitmustern gespeichert werden Eine Abbildung von gewöhnlichem Klartext in ein Bitmuster (bit pattern) nennt man einen Binärcode (binary code) Je nach dem Typ der Daten (Zahlen, Schriftzeichen, Befehle) benutzt man einen anderen Binärcode Bei Kenntnis des Typs kann man ein Bitmuster dekodieren und seinen Sinn erschließen Verwechselt man den Typ, bekommt das Bitmuster eine ganz andere Bedeutung

Variablen und der Typ von Variablen Da wir Menschen Dinge gerne mit Namen benennen statt mit numerischen Adressen, kennt jede Programmiersprache das Konzept einer Variable (variable) als abstraktes Analogon zu einer Speicherstelle Eine Variable hat einen symbolischen Namen (name), hinter dem eine Adresse verborgen ist, und der Wert (value) der Variable ist der Wert des dort gespeicherten Bitmusters Um diesen erschließen zu können, hat die Variable einen Typ (type), der bei ihrer Vereinbarung angegeben werden muss

Variablen und der Typ von Variablen In jeder Programmiersprache gibt es einige fest eingebaute elementare (Daten)Typen, wie etwa char (Schriftzeichen, character), int (endlich große ganze Zahlen, integer) oder float (endlich große Gleitkommazahlen, floating point numbers) Jedem fundamentalen Typ entspricht ein Code, der jedem möglichen Wert des Typs ein Bitmuster einer festen Länge (z.b. 1 word für 1 int) zuordnet char ASCII oder UNICODE; int Dualzahlen im Zweierkomplement float IEEE 754 Dazu später mehr

ASCII Table

Binärcodierung elementarer Datentypen Wir unterscheiden zwischen Zahl-Wert und Zahl-Bezeichner Zu ein- und demselben Zahl-Wert kann es verschiedene Bezeichner geben z.b. Fünf, 5, V, 101 Da es unendlich viele Zahl-Werte gibt, ist es sinnvoll, eine Systematik zur Erzeugung von eindeutigen Bezeichnern zu schaffen Die auch das Rechnen mit Zahlen unterstützt z.b. Die Verwendung von Römischen Zahlen bietet keine gute Unterstützung

Binärcodierung elementarer Datentypen Ein Zahlsystem (number system) besteht aus endlich vielen Ziffern (digits) und einer Vorschrift, wie Zeichenreihen, die aus diesen Ziffern gebildet wurden, als Zahl-Werte zu interpretieren sind Arabische Zahlsysteme zur Basis β Der Zahlen-Wert einer natürlichen Zahl z=z n-1...z 0 zur Basis β: Dabei

Binärcodierung elementarer Datentypen Basis β der Darstellung wird Radix genannt Namen einiger wichtiger Zahlsysteme Radix 10: Dezimaldarstellung Radix2: Binärdarstellung Radix8: Oktaldarstellung Radix 16: Hexadezimaldarstellung Zur Kennzeichnung der Basis wird diese oftmals als Subscript angegeben, z.b.: 7 10 =7 8 =111 2 9 10 =11 8 =1001 2 15 10 =17 8 =1111 2

Binärcodierung elementarer Datentypen Verschiedene Darstellungen von Ziffern möglich: Mit eigenen Symbolen Üblich für Dezimalzahlen Als Binärzahlen BCD Kodierung (Binary Coded Decimal)

Binärcodierung elementarer Datentypen BCD benutzt 4 Bit zur Darstellung von 10 Ziffern, wird im kaufmännischen EDV-Bereich benutzt, da Vermeidung von Konversionsfehler Darstellung als Dualzahl effizienter Statt Dualzahl kann auch Zweierpotenz als Basis genommen werden, etwa Oktal=2 3, Hexadezimal=2 4,etc Bei Oktal und Hexadezimal werden zur Notation der Ziffern von 0 bis 9 auch die arabischen Ziffern genommen Bei Hexadezimal werden zusätzlich die Buchstaben A, B, C, D, E, F als Bezeichner für die Ziffern, die die Zahlwerte 10, 11, 12, 13, 14, 15 bezeichnen, genommen

Binärcodierung elementarer Datentypen Arithmetik im Dualsystem, Oktal, Hexadezimal, 2 32 -, 2 64 - System,... analog zum Dezimalsystem (Überträge dann bei 2, 8, 16, 32, 64) Beispiel: 01 2 +01 2 =10 2 Die Hardware eines Rechners realisiert nur Arithmetik für feste Zahllänge n Etwa n=32 oder n=64 Mathematisch gesehen wird Arithmetik modulo 2 n realisiert: Überträge in die n+1 te Stelle fallen weg. nur 2 n Dualzahlen 0.. 2 n -1

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen Statt (positive) Zahlen von 0 bis 2 n -1 mit Bitmuster der Länge n darzustellen und arithmetische Operationen darauf auszuführen, werden oftmals auch negative Zahlen benötigt Elegante Möglichkeit: Zweierkomplement-Darstellung Addition zweier positiver Dualzahlen und solcher in Zweierkomplementdarstellung ergibt das gleiche Bitmuster

Binärcodierung elementarer Datentypen: Zweierkomplement Sei k ln, x {0,..., k}. Dann ist das Komplement x der Zahl x zur Zahl k definiert durch: x := k x Idee: Darstellung negativer Zahlen durch Komplementbildung: c (-x) = x Subtraktion durch Addition des Komplements: y x = y x + k k = y + (k x) k = y + x k, wobei Komplementbildung (x x ) und Reduktion nach k (x x - k) "leicht" realisierbar seien.