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
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 1890 USA Konkurs na urządzenia do zautomatyzowania prac przy spisie ludności wygrywa Herman Hollerith - twórca elektrycznego czytnika-sortera kart perforowanych. Zastosowanie maszyn Hollerith a trzykrotnie skróciło czas obróbki danych ze spisu. Herman HOLLERITH dzięki osiągniętemu sukcesowi założył bardzo dobrze prosperujące przedsiębiorstwo Tabulating Machine Company (1896), które przekształciło się w potentata na rynku sprzętu informatycznego International Buissines Machines (IBM). 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 (1936) W kierunku komputera 1847 - Analiza matematyczna logiki George a Boole a, prace Augustusa de Morgana Alan Turing i maszyna Turinga (1936) MT = < Q, Σ, δ, Γ, q 0, B, F > Q skończony zbiór stanów q 0 stan początkowy, q 0 Q F zbiór stanów końcowych Γ skończony zbiór dopuszczalnych symboli B symbol pusty, B Γ Σ zbiór symboli wejściowych podzbiór zbioru Γ, do którego nie należy B δ funkcja opisana następująco: : Q Q { L, P, } - Funkcja odwzorowująca stan maszyny oraz symbol wejściowy w symbol, jaki ma się pojawić na taśmie, kolejny stan maszyny oraz przesunięcie głowicy maszyny (lewo, prawo lub bez przesunięcia). 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 (1936) 1936 - komputer elektromechaniczny Zusego Maszyna zawierała pamięć programu 1940 Komputer Zuse Z3 architektura komputerów w 1 5
1940 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) architektura komputerów w 1 6
1942 Collosus I 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 7
ENIAC Programmed:plug board and switches Speed:5,000 operations per second Input/output:cards, lights, switches, plugs Floor space:1,000 square feet 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. architektura komputerów w 1 8
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 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 architektura komputerów w 1 9
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 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 architektura komputerów w 1 10
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. 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 architektura komputerów w 1 11
Warianty architektury von Neumanna 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 architektura komputerów w 1 12
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 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 architektura komputerów w 1 13
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 W kierunku komputera Computer Pioneers Część 1 Część 2 architektura komputerów w 1 14
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 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. architektura komputerów w 1 15
Generacje I generacja - 1951-1960. Technika lampowa. 1953 MIT, Jay Forrester Generacje I generacja - 1951-1960. Technika lampowa. architektura komputerów w 1 16
Generacje II generacja 1960-1964. Technika tranzystorowa, zastosowanie pamięci rdzeniowych. 1947 William Shockley, Walter Brattain, and John Bardeen 1954 TI Generacje II generacja 1960-1964. Technika tranzystorowa, zastosowanie pamięci rdzeniowych. architektura komputerów w 1 17
Generacje II generacja 1960-1964. Technika tranzystorowa, zastosowanie pamięci rdzeniowych. 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. architektura komputerów w 1 18
Maszyny I i II generacji. Struktura. U_we/wy U_we/wy U_we/wy procesor Pamięć operacyj na U_we/wy U_we/wy U_we/wy U_we/wy procesor Pamięć operacyj na U_we/wy U_we/wy architektura komputerów w 1 19
Maszyny I i II generacji. Struktura. procesor Pamięć operacyj na Urządzenie we/wy Urządzenie we/wy Urządzenie we/wy Urządzenie we/wy Urządzenie we/wy IBM 360/40. architektura komputerów w 1 20
Struktura maszyny mainframe CDC Cyber 70 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 21
Generacje III generacja 1964-1975. Technika układów scalonych TTL. IBM system 360, PDP 8. Generacje IBM System 360 IBM System 370 architektura komputerów w 1 22
Architektura szynowa Elementem centralnym struktury jest magistrala Architektura modułowa Wprowadzona w minikomputerach (lata 70) Wygodna, prosta jednolita struktura Zestandaryzowany sposób włączania i komunikacji z modułami Możliwy jednolity sposób komunikacji i adresowania elementów podłączonych do szyny zarówno komórek pamięci jak i rejestrów j.s. procesor Magistrala (bus) js we/wy U_we/wy Pamięć operacyj na js we/wy U_we/wy Pamięć operacyj na js we/wy U_we/wy Architektura szynowa - problemy Rozmiary (długość) magistrali powodują, że trzeba uwzględnić zjawiska falowe Dysproporcja wydajności procesora i pamięci jest dodatkowo powiększana przez wolny transfer na szynie szybkość dostępu procesora do pamięci ma zasadnicze znaczenie Szybkość transferu po magistrali pogarsza wydajność pamięci Zestandaryzowane ale skomplikowane układy współpracy z szyną procesor Magistrala (bus) js we/wy U_we/wy Pamięć operacyj na js we/wy U_we/wy Pamięć operacyj na js we/wy U_we/wy architektura komputerów w 1 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
Język programowania Język niskiego poziomu (low-level language) rozkazy maszynowe - bezpośrednio interpretowane przez układy logiczne lub mikroprogramy programowanie wymaga znajomości architektury komputera rejestrów rozkazów lista rozkazów sposobów adresacji pamięci trybów adresacji assemblery i makroassemblery oprogramowanie systemowe Poziomy opisu programu L0 przetwornik sygnałów (układ elektroniczny) L1 struktura logiczna (wraz z generatorem mikrorozkazów) L2 system operacyjny L3 Język asemblera L4 język algorytmiczny L5 Język makropoleceń Translator języka makropoleceń Język makropoleceń L5 L4 L3 L2 L1 L0 Język algorytmiczny Translator języka algorytmicznego assembler Język assemblera Funkcje systemu operacyjnego System operacyjny Interpreter kodu maszynowego Struktura logiczna Interpreter mikroprogramu Przetwornik sygnałów architektura komputerów w 1 32
Poziomy opisu struktury Bloki funkcjonalne rejestry Układy logiczne Układy elektroniczne architektura komputerów w 1 33