architektura komputerów w. 1 Dr inż. Janusz Dudziak literatura B. S. Chalk Organizacja i architektura komputerów WNT 1998 W. Stallings Organizacja i architektura systemu komputerowego WNT 2003 Janusz Biernat Architektura komputerów Politechnika Wrocławska 2001 Witold Komorowski Architektura komputerów Politechnika Wrocławska 1986 Witold Komorowski Krótki kurs architektury i organizacji komputerów Wydawnictwo Mikom 2004 Krzysztof Wojtuszkiewicz Urządzenia techniki komputerowej część 1. PWN 2007 Yaohan Chu Organizacja i mikroprogramowanie maszyn cyfrowych WNT 1979 Andrzej Skorupski Podstawy budowy i działania komputerów WKŁ 2000 architektura komputerów w 1 1
Plan wykładu Struktura komputera Reprezentacja danych i arytmetyka Realizacja układowa Funkcjonowanie komputera Pamięć Wejście-wyjście Typy architektury Some Basic Terms Computer Architecture: Art of describing and building computer systems which can execute computer programs; alternatively: structure & behavior of computer as seen by assembly level programmer Computer Organization: Description of major logical & physical components of a computer and how they interact Computer Implementation: Description of electrical components used to build a computer Computer Execution Model: Description of how programs execute within a computer architecture Instruction Set Architecture (ISA): Description of the instructions which can make up a computer program, and the semantics of what each does when executed architektura komputerów w 1 2
1940 Komputer Zuse Z3 1940 architektura komputerów w 1 3
W kierunku komputera 1847 - Analiza matematyczna logiki George a Boole a, prace Augustusa de Morgana Alan Turing i maszyna Turinga (1937) 1936 - komputer elektromechaniczny Zusego Maszyna zawierała pamięć programu 1943 - Collossus I, Collossus II (2500 lamp). Maszyna stosowała arytmetykę dwójkową. 1946 - Universytet Pensylvania - ENIAC - szybki kalkulator elektroniczny (18000 lamp, 5000 dodawań/s) ENIAC Start of project:1943 Completed:1946 Programmed:plug board and switches Speed:5,000 operations per second Input/output:cards, lights, switches, plugs Floor space:1,000 square feet architektura komputerów w 1 4
W kierunku komputera 1847 - Analiza matematyczna logiki George a Boole a, prace Augustusa de Morgana Alan Turing i maszyna Turinga (1937) 1936 - komputer elektromechaniczny Zusego Maszyna zawierała pamięć programu 1943 - Collossus I, Collossus II (2500 lamp). Maszyna stosowała arytmetykę dwójkową. 1946 - Universytet Pensylvania - ENIAC - szybki kalkulator elektroniczny (18000 lamp, 5000 dodawań/s) 1946 - koncepcja maszyny z programem zintegrowanym. Burks, Goldstine i von Neumann 1946 - projekt EDVAC przerwany rok później 1949 - Uniwersytet Manchester. Mark I pierwszy komputer z programem zintegrowanym. Model komputera John von Neumann (1903-1957) 1946 - projekt EDVAC CPU ALU Jednostka sterująca wejście wyjście Pamięć 4 podstawowe funkcje: przetwarzanie, przechowywanie, przekazywanie informacji oraz automatyczne sterowanie swego działania architektura komputerów w 1 5
Pamięć Pamięć główna (operacyjna) służy do przechowywania danych i programu Pamięć jest tablicą zawierająca ponumerowane pozycje - komórki pamięci komórka identyfikowana jest przez jej pozycję w tablicy czyli przez adres Program wykonywany jest przez wykonywanie operacji zakodowanych w kolejnych komórkach pamięci Program wykonywany jest (zwykle) sekwencyjnie Hierarchia pamięci Czas dostępu do pamięci rośnie wraz z pojemnością Buduje się pamięci o strukturze hierarchiczno-warstwowej Rejestry Cache Pamięć operacyjna Pamięć wirtualna Lokalny system plików Zasoby zdalne Rejestry Cache (1-kilku poziomów) Pamięć operacyjna Pamięć wirtualna Lokalny system plików Zasoby na nośnikach wymiennych i sieciowy system plików architektura komputerów w 1 6
Hierarchia pamięci Warstwa Pojemność Czas dostępu rejestry <1kB <1ns Cache L-1 <128kB Ok.. 1 ns Cache L-2 128kB-4MB 1-2 ns Cache L-3 <144MB 2-5ns Pamięć operacyjna 512MB-16GB 10-50ns System plików >100GB <10ms Pamięć zewnętrzna Bez ograniczeń różnie CPU Składa się z dwóch jednostek - jednostki arytmetyczno-logicznej (ALU) oraz jednostki sterującej wykonywana najczęściej jako całość konstrukcyjna ALU - służy do wykonywania operacji, zwłaszcza arytmetyczno-logicznych. Zawiera rejestry do przechowywania argumentów operacji i układy arytmetyki. Większość operacji arytmetycznych wykonywanych jest poprzez wielokrotne dodanie. Podstawowym składnikiem jest sumator. Jednostka sterująca zapewnia współdziałanie wszystkich elementów komputera dla wykonania programu umieszczonego w pamięci. Zadaniem jej jest pobranie rozkazu, jego interpretacja, przygotowanie argumentów operacji i zainicjowanie pracy elementów wykonawczych. Układ sterowania określa wewnętrzną skalę czasu komputera i generuje odpowiednie ciągi impulsów synchronizujących. Sekwencja czynności konieczna dla zrealizowania rozkazu - cykl rozkazowy. architektura komputerów w 1 7
Wejście/wyjście Układy komunikacji z otoczeniem służące do wprowadzania programów i wyprowadzania wyników oraz do komunikacji z operatorem interface Warianty architektury von Neumanna architektura komputerów w 1 8
Warianty architektury von Neumanna Architektura Princeton IP DP Architektura zgodna z postulatem von Neumanna - Wspólna pamięć programu i danych Co wyklucza jednoczesne pobieranie instrukcji i wykonywanie operacji na danych I umożliwia automodyfikację (niekoniecznie zamierzoną) programu memory Warianty architektury von Neumanna Architektura Harvard IP IM DP DM Rozdzielona pamięć programu i danych Umożliwia jednoczesne pobieranie instrukcji i wykonywanie operacji na danych Uważana za architekturę nievonneumanowską W czystej postaci występuje w sterownikach architektura komputerów w 1 9
Warianty architektury von Neumanna Architektura Harvard-Princeton IP DP Rozdzielona pamięć programu i danych na poziomie cache Niższy poziom wspólny Wysoka wydajność związana z umożliwieniem jednoczesnego pobierania instrukcji i wykonywania operacji na danych Stosowana w wiekszości współczesnych procesorów IM memory DM W kierunku komputera 1847 - Analiza matematyczna logiki George a Boole a, prace Augustusa de Morgana Alan Turing i maszyna Turinga (1937) 1936 - komputer elektromechaniczny Zusego Maszyna zawierała pamięć programu 1943 - Collossus I, Collossus II (2500 lamp). Maszyna stosowała arytmetykę dwójkową. 1946 - Universytet Pensylvania - ENIAC - szybki kalkulator elektroniczny (18000 lamp, 5000 dodawań/s) 1946 - koncepcja maszyny z programem zintegrowanym. Burks, Goldstine i von Neumann 1946 - projekt EDVAC przerwany rok później 1949 - Uniwersytet Manchester. Mark I pierwszy komputer z programem zintegrowanym. 1951 - firma Remington Rand opracowuje komputer UNIVAC 1952 - pierwszy komputer IBM architektura komputerów w 1 10
W kierunku komputera Computer Pioneers Część 1 Część 2 UNIVAC Speed:1,905 operations per second Input/output:magnetic tape, unityper, printer Memory size:1,000 12- digit words in delay lines Memory type:delay lines, magnetic tape Technology:serial vacuum tubes, delay lines, magnetic tape Floor space:943 cubic feet Cost:F.O.B. factory $750,000 plus $185,000 for a high speed printer architektura komputerów w 1 11
IBM 701 Electrostatic storage capacity: 20,480 digits. Magnetic drum capacity:81,920 digits. Magnetic tape capacity:more than 8 million digits without changing tape. Addition and subtraction:more than 16,000 operations per second. Multiplication and division:more than 2,000 operations per second. Tape reading and writing speed:12,500 digits per second. Drum reading and writing speed:8,000 digits per second. Printed output:180 letters or numbers per second. Punched card input:600 digits per second. Punched card output:400 digits per second. Generacje I generacja - 1951-1960. Technika lampowa. 1953 MIT, Jay Forrester architektura komputerów w 1 12
Generacje I generacja - 1951-1960. Technika lampowa. Generacje II generacja 1960-1964. Technika tranzystorowa, zastosowanie pamięci rdzeniowych. 1947 William Shockley, Walter Brattain, and John Bardeen 1954 TI architektura komputerów w 1 13
Generacje II generacja 1960-1964. Technika tranzystorowa, zastosowanie pamięci rdzeniowych. Generacje II generacja 1960-1964. Technika tranzystorowa, zastosowanie pamięci rdzeniowych. architektura komputerów w 1 14
Generacje Ramka pamięci Odry 1305 (III generacja). 1024 (32*32) rdzeni w płacie,16 płatów, każdy po 2 warstwy= 32768 bitów pamięci. W bloku było 12 ramek dwuwarstwowych i 1 jednowarstwowa, = 16K słów 25 bitowych. Generacje III generacja 1964-1975. Technika układów scalonych TTL. IBM system 360, PDP 8. 1961. Fairchild RTL flip-flop architektura komputerów w 1 15
III generacja 1964-1975. Generacje III generacja 1964-1975. Technika układów scalonych TTL. IBM system 360, PDP 8. architektura komputerów w 1 16
Generacje Scalona 4-bitowa ALU 74181 Generacje IBM System 360 IBM System 370 architektura komputerów w 1 17
Generacje IV generacja 1975-2000 Układy VLSI, pamięci półprzewodnikowe. 1972 Intel 8008 Generacje 1993 Intel Pentium V generacja - elementem konstrukcyjnym jest scalony mikrokomputer architektura komputerów w 1 18
Technologie VLSI stan 1980 stan 2000 prognoza 2010 liczba tranzystorów 4,75*10 4 3*10 7 75*10 7 pojemność pamięci 256 Kb 1Gb 25Gb częstotliwość zegara 5MHz 1GHz 15GHz szybkość przetwarzania 4MIPS 500MIPS 6000MIPS V generacja BlueGene/L architektura komputerów w 1 19
V generacja Ilość węzłów 65,536 Ilość procesorów/węzeł 2 Ilość procesorów 131,072 Prędkość CPU (MHz) 667 Szczytowa moc obliczeniowa (TFlop/s) 360 Pamięc/węzeł Pamięć wewnętrzna Typ pamięci Pamięć dyskowa System operacyjny przednich węzłów 512 MB 32 TB DDR DRAM 900 TB SuSE SLES 9 Superkomputer BlueGene/L z zewnątrz (1) Ostatecznie superkomputer BlueGene/L będzie składał się z 2 16 =65.536 węzłów, Każdy węzeł składa się z 2 procesorów PowerPC 440, 9 chipów double-data-rate (DDR) pamięci SDRAM (512 MB) i niezbędnego zestawu narzędzi do komunikacji sieciowej, a jego szczytowa wydajność wynosi 5.6 GFLOPS, Na karcie obliczeniowej (compute card) umieszczone są 2 węzły. architektura komputerów w 1 20
Superkomputer BlueGene/L z zewnątrz (2) Karty obliczeniowe grupowane są po 16 i umieszczane na karcie węzłów (node card). Superkomputer BlueGene/L z zewnątrz (3) Karty węzłów grupowane są po 16 i umieszczane na 2-stronnej płycie (midplane), następnie w każdej szafie umieszczane są 2 takie płyty. architektura komputerów w 1 21
Rozwój i ograniczenia Procesory Intel. tranzystorów w strukturze (tys.) zegar (MHz) typ rok 4004 1971 3,3 0,108 8008 1972 3,5 0,2 8080 1974 6 2 8086 1978 29 5-10 80286 1982 130 6-12 386 1986 275 12-16 486 1989 1185 44 pentium 1993 3100 60-200 pentium 4 2000 42000 >1400 pentium d 2005 230 000 >2800 corei7 2011 2270 mln do 3900 Rozwój i ograniczenia architektura komputerów w 1 22
Rozwój i ograniczenia. Prawo Moore a V(t)=V 0 2 t/a gdzie jest współczynnikiem o różnej wartości dla różnych charakterystyk, Realizacja techniczna - bramki i układy logiczne Gęstość atomów krzemu: 5 x 1022/cm3. średnia odległość atomów wynosi 0.27 nm, w technologii 2.7 μm liczba atomów wzdłuż boku bramki wynosi 10 000, w technologii 0.27 μm tylko 1000, podczas W technologii 27nm zaledwie 100 atomów. Wytrzymałość dielektryczna dwutlenku krzemu wynosi 5-10 MV/cm. Czyli napięcie 5V przy grubości warstwy izolacyjnej 10nm (ok. 30 atomów) jest na granicy wytrzymałości! Warstwa 1 atomowa wytrzymuje napięcie ok. 0.17 V. architektura komputerów w 1 23
Rozwój i ograniczenia zasada Landauera graniczny wydatek energetyczny na 1 działanie logiczne = ktln2 = ok. 10-9 pj gdzie k jest stałą Bolzmana a T temperaturą działania układu. The Standard Performance Evaluation Corporation (SPEC) Rozwój i ograniczenia tranzystorów w strukturze (tys.) zegar (MHz) typ rok 4004 1971 3,3 0,108 8008 1972 3,5 0,2 8080 1974 6 2 8086 1978 29 5-10 80286 1982 130 6-12 386 1986 275 12-16 486 1989 1185 44 pentium 1993 3100 60-200 pentium 4 2000 42000 >1400 pentium d 2005 230 000 >2800 architektura komputerów w 1 24
Taksonomie Służą do klasyfikacji architektur komputerowych Taksonomia Flynna (1968) Klasyfikacja opiera się na liczbie strumieni rozkazów i strumieni danych dane SISD Instrukcje MISD LM - Local Memory; GM - General Memory SIMD MIMD LM GM LM GM SISD - Single Instruction Stream- Single Data Steram SIMD - Single Instruction Stream- Multiple Data Steram MISD - Multiple Instruction Stream- Single Data Steram MIMD - Multiple Instruction Stream- Multiple Data Steram Taksonomia Flynna SISD - Single Instruction Stream- Single Data Steram Powszechnie stosowany typ architektury Przykład- architektura von Neumanna SIMD - Single Instruction Stream- Multiple Data Steram Jedna instrukcja oznacza wykonanie tej samej operacji na wielu danych jednocześnie Przykład procesory wektorowe MISD - Multiple Instruction Stream- Single Data Steram MIMD - Multiple Instruction Stream- Multiple Data Steram Przykład system wieloprocesorowy architektura komputerów w 1 25