Úvod

Transkript

Úvod
Architektura počítačů
Úvod
http://d3s.mff.cuni.cz
http://d3s.mff.cuni.cz/teaching/computer_architecture/
Lubomír Bulej
[email protected]
CHARLES UNIVERSITY IN PRAGUE
faculty
faculty of
of mathematics
mathematics and
and physics
physics
Proč jsou počítače zajímavé?
Velmi dynamický obor
První digitální elektronické počítače kolem roku 1940
O 60 let později počítače zcela běžné, dnes všudypřítomné
Nové technologie jsou nahrazovány dříve, než stačí
zestárnout
Neuvěřitelný vliv na každodenní život
Internet, vestavěné počítače, lidský genom, výpočetní
chemie, ...
Každé řádové snížení ceny, zvýšení výkonu, zmenšení
velikosti přináší nové možnosti
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
2/49
Co je vlastně počítač?
V dnešní době velmi široký pojem
Řada společných technologií, ale různé uspořádání podle požadavků a
využit
Hlavní třídy
Osobní počítače
Optimální poměr cena/výkon (tlak na vývoj)
Servery, mainframy, superpočítače
Vyšší propustnost, spolehlivost, výpočetní výkon
Vědecké výpočty, velké množství požadavků
Vestavěné (embedded) počítače
Dnes nejrychleji rostoucí trh (nejen mobilní zařízení)
Omezené zdroje (paměť, výkon, energie, cena), speciální nároky (fyzická odolnost)
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
3/49
Sálový počítač (1964)
IBM System 360
Použit integrovaných
obvodů
Revoluční prvky
Stavebnicová konstrukce
Jednotná struktura dat a
instrukcí
Jednotný způsob připojování
periferií
Ochrana dat v paměti
Prvky architektury zachovány
v mainframech až dodnes
[1]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
5/49
Sálový počítač (2005)
IBM System Z9-109
model S54
60 konfigurovatelných
LPARS
Special-purpose processors
Paměť 512 GB
1 740 kg, 2,49 m2, příkon
18,3 kW
Dostupnost, propustnost,
bezpečnost
[2]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
6/49
Méně běžný osobní počítač
[3]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
7/49
Běžný osobní počítač
[4]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
8/49
Co je v krabici běžného počítače?
Základní deska
Procesor
Paměť (RAM, ROM)
Čipová sada
Základní I/O periferie
[4]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
9/49
Co je v krabici běžného počítače?
Základní deska
Procesor
Paměť (RAM, ROM)
Čipová sada
Základní I/O periferie
Optická mechanika
Pevný disk
[4]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
10/49
Co je v krabici běžného počítače?
Základní deska
Procesor
Paměť (RAM, ROM)
Čipová sada
Základní I/O periferie
Optická mechanika
Pevný disk
Rozšiřující karty
Grafická karta
[4]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
11/49
Co je v krabici běžného počítače?
Základní deska
Procesor
Paměť (RAM, ROM)
Čipová sada
Základní I/O periferie
Optická mechanika
Pevný disk
Rozšiřující karty
Grafická karta
Zdroj
[4]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
12/49
Základní deska
[5]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
13/49
Základní deska (2)
CPU
High-Speed Peripherals
High-Speed
Bus
Clock
Generator
RAM
Front-side
Bus
North Bridge
(memory controller)
Memory Bus
Internal
Bus
Peripherals
Peripheral
Bus
South Bridge
(I/O controller)
SATA
USB
Ethernet
Audio
CMOS memory
Legacy Bus
Flash
ROM
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
Super I/O
Serial
Parallel
Floppy
Keyboard
Mouse
14/49
Procesor
Součásti
Datová cesta
(operace s daty)
Řízení
(řadič datové cesty)
Paměťové prvky
(soubor registrů a cache)
Intel Core i7-980X
6 jader, 12 MB L3 cache,
taktovací frekvence 3,33 GHz
32 nm výrobní proces,
248 mm2, 1,2 mld. tranzistorů
Source: intel.com
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
15/49
Operační paměť
Dočasná paměť
Běžící programy a data, přímá adresace
procesorem
Dynamic Random-Access Memory (DRAM)
Konstantní doba přístupu (v řádu desítek ns)
Bity uloženy jako náboje v integrovaných
kondenzátorech (spolu s tranzistorem)
Nutnost periodicky občerstvovat obsah (refresh)
Typická frekvence 16 Hz
Typická kapacita jednotky až desítky GB
Source: slashgear.com
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
16/49
Operační paměť (2)
Dočasná paměť
Static Random-Access Memory (SRAM)
Realizovaná pomocí dvoustavových klopných obvodů
(obvykle 4 až 6 tranzistorů na bit)
Není potřeba periodické občerstvování
Výrazně vyšší rychlost (jednotky ns), ale výrazně nižší hustota
záznamu a vyšší cena
Při plné rychlosti výrazně vyšší spotřeba
Cache procesoru
Soubor registrů procesoru
Interní paměť procesoru
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
17/49
Technologie procesorů a pamět
Polovodičový tranzistor
Základní stavební prvek
Typicky použit jako diskrétní elektronický prvek (signálem řízený
spínač), ne analogový prvek (zesilovač)
Integrovaný obvod
Kombinace více tranzistorů na jednom polovodičovém čipu
Včetně doplňkových elektronických součástek (kondenzátorů,
rezistorů apod.)
Lepší výrobní technologie → menší rozměry → vyšší stupeň
integrace → vyšší rychlost procesorů a vyšší kapacita pamět
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
18/49
Technologie procesorů a pamět (2)
Source: P&H
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
19/49
Technologie procesorů a pamět (3)
[6]
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
[7]
20/49
Sekundární paměť
Permanentní paměť
Data uchovávána i po odpojení napájení
Datové soubory a spustitelné programy
Není přímo adresovatelná procesorem 
(jedná se o vstupně/výstupní periferii,
vyžaduje programové řízení)
Pevné disky
Magnetické rotační médium
Adresace po sektorech (512 B, 4 KB),
přístupová doba v řádu jednotek až desítek
ms (není konstantní)
Solid-State Drive (SSD), Flash paměť
Nepohyblivá, tranzistorová permanentní
paměť (floating-gate MOSFET)
Čtení po bitech, zápis po blocích
(asymetrické operace čtení a zápisu),
konstantní přístupová doba v řádech desítek
až stovek µs
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
21/49
Základní organizace počítače
Počítač
vstup
výstup
paměť
procesor
datová cesta
řízení
Nezávisí na technologii
pasuje na současné i
minulé počítače
Zdroj: P&H
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
22/49
Interakce s okolím
Vstupní zařízení
klávesnice, myš, tablet, snímač otisků, joystick
Výstupní zařízení
CRT monitor, LCD panel, grafická karta, tiskárna
Vstupně/výstupní zařízení
síťová karta, pevný disk, zvuková karta, kamera,
volant + pedály se zpětnou vazbou (forcefeedback), ...
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
23/49
Grafický výstup na obrazovku
Paměť na grafické kartě (framebuffer)
každé místo v paměti (nebo shluk několika míst)
odpovídá jednomu obrazovému bodu
obsah místa v paměti reprezentuje barvu
velikost místa určuje barevné rozlišení
Zdroj: P&H
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
24/49
Základní koncept architektury počítačů
Aneb ...
Co nevidíte na
svém (oblíbeném)
programu?
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
25/49
Od zapnut počítače k běžící aplikaci
Firmware
BIOS (Basic Input/Output System)
Zavaděč operačního systému
Boot sector
Boot loader
Operační systém
Uživatelské rozhraní
Aplikace
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
26/49
Stovky tisíc řádků kódu
Aplikační software
Např. textový editor
Knihovny pro uživatelské rozhraní
Systémový software
Operační systém
Vstupně/výstupní operace
Alokace paměti a úložného prostoru
Sdílení prostředků
Hardware
Firmware
Hardware
Procesor, paměť, periferie
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
27/49
Od uživatele k algoritmu
Smaž odstavec
Nastav písmo
....
Uživatel
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
28/49
Od uživatele k algoritmu
Smaž odstavec
Nastav písmo
....
document.par[i].value = ...;
document.set_font(...);
...
Algoritmus
Uživatel
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
29/49
Od uživatele k algoritmu
Smaž odstavec
Nastav písmo
....
document.par[i].value = ...;
document.set_font(...);
...
Sémantická
mezera
Algoritmus
Uživatel
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
30/49
Od algoritmu k programu
document.par[i].value = ...;
document.set_font(...);
...
Algoritmus
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
31/49
Od algoritmu k programu
MULI $2, $5, 4
ADD $2, $4, $2
LW $16, 0($2)
...
document.par[i].value = ...;
document.set_font(...);
...
Algoritmus
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
Sémantická
mezera
Program
32/49
Od programu ke strojovému kódu
MULI $2, $5, 4
ADD $2, $4, $2
LW $16, 0($2)
...
Program
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
33/49
Od programu ke strojovému kódu
MULI $2, $5, 4
ADD $2, $4, $2
LW $16, 0($2)
...
Program
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
0101001010010
0110101001101
0111010110101
...
Sémantická
mezera
Procesor
34/49
Základní koncept architektury počítačů
Abstrakce
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
35/49
Abstrakce
Překonávání sémantických mezer
Postup od konkrétního (technického) jazyka
k abstraktnímu (obecnému) jazyku
Ideálně se zachováním přesnosti, ale využit šířeji
definovaných pojmů a „zapouzdření“ vnitřních
detailů
Stručnější a kompaktnější vyjádření
„An abstraction is one thing that represents
several real things equally well.“ (Edsger Dijkstra)
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
36/49
Abstrakce (2)
Vhodný jazyk pro danou úroveň abstrakce
Řídící logika procesoru
Pomocí jednotky ALU sečti hodnotu z registru A a hodnotu z
registru B, výsledek ulož do registru C
Strojový kód: instrukce (slova) nad abecedou {0, 1}
1000110010100000
Assembler: symbolický zápis instrukcí programu
add R2, R3, R1
Vyšší programovací jazyk: symbolický zápis algoritmu
fruits := apples + oranges
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
37/49
Abstrakce (3)
Vhodný jazyk pro danou úroveň abstrakce
Překlad mezi jazyky = překonávání sémantické mezery
Jazyk vyšší úrovně = vyšší produktivita člověka
Doménově-specifické jazyky
Jazyk nižší úrovně = vyšší produktivita stroje
Strojový kód
Překladač
Překlad z vyššího programovacího jazyka do jazyka nižší úrovně (často až do
symbolického zápisu instrukcí konkrétního procesoru)
Assembler
Překlad ze symbolického zápisu instrukcí do binárního kódu vykonatelného
konkrétním procesorem
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
38/49
Příklad: Záměna k. a (k+1). prvku pole
Vyšší programovací jazyk
void swap(unsigned int array[], unsigned int k) {
unsigned int old = array[k];
array[k] = array[k + 1];
array[k + 1] = old;
}
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
39/49
Příklad: Záměna k. a (k+1). prvku pole (2)
Symbolický zápis instrukcí pro MIPS
swap:
sll
addu
lw
lw
sw
sw
jr
$a1,
$a1,
$v0,
$v1,
$v1,
$v0,
$ra
$a1, 2
$a1, $a0
0($a1)
4($a1)
0($a1)
4($a1)
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
40/49
Příklad: Záměna k. a (k+1). prvku pole (2)
Symbolický zápis instrukcí pro SuperH
swap:
shll2
mov
add
mov.l
add
add
mov.l
mov.l
rts
mov.l
r5
r4,r1
r5,r1
@r1,r2
#4,r5
r5,r4
@r4,r3
r3,@r1
r2,@r4
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
41/49
Příklad: Záměna k. a (k+1). prvku pole (3)
Symbolický zápis instrukcí pro x86-64
swap:
movslq
leaq
leaq
movl
movl
movl
movl
retq
%esi, %rsi
(%rdi, %rsi, 4), %rdx
4(%rdi, %rsi, 4), %rax
(%rdx), %ecx
(%rax), %esi
%esi, (%rdx)
%ecx, (%rax)
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
42/49
Příklad: Záměna k. a (k+1). prvku pole (4)
Zápis ve strojovém kódu pro MIPS
00000000000001010010100010000000
00000000101001000010100000100001
10001100101000100000000000000000
10001100101000110000000000000100
10101100101000100000000000000100
10101100101000110000000000000000
00000011111000000000000000001000
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
43/49
Příklad: Záměna k. a (k+1). prvku pole (4)
Zápis ve strojovém kódu pro SuperH
0000100001000101
0100001101100001
0101110000110001
0001001001100010
0000010001110101
0101110000110100
0100001001100011
0011001000100001
0000101100000000
0010001000100100
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
44/49
Příklad: Záměna k. a (k+1). prvku pole (5)
Zápis ve strojovém kódu pro x86-64
010010000110011111110110
01001000100011010001010010110111
0100100010001101010001001011011100000100
1000101100001010
1000101101110000
1000100101110010
1000100100001000
11000111
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
45/49
Implementace
Opačný směr než abstrakce
Konkretizace
Od architektury počítače ke konkrétnímu fyzickému počítači
Vysokoúrovňový jazyk
Blokové schéma, logický popis obvodů
Nízkoúrovňový jazyk
Schéma zapojení elektronických součástek, schéma
polovodičových prvků na integrovaném obvodu
„Strojový kód“
Samotná fyzická realizace počítače
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
46/49
Aplikace
Sofware
Uživatelské rozhraní
Výkonné jádro aplikace
Aplikační knihovny
Operační systém
Rozhraní HW/SW
Instrukční architektura (ISA)
Hardware
Úroveň abstrakce
Vrstvy abstrakce počítače
Datová cesta, řízení
Logické obvody
Tranzistory
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
47/49
Pozor: abstrakce je jen nástroj!
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
48/49
Reference
[1]
[2]
[3]
[4]
[5]
[6]
[7]
http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/DM_IBM_S360.jpg/800px-DM_IBM_S360.jpg
http://upload.wikimedia.org/wikipedia/commons/2/21/Front_Z9_2094.jpg
http://upload.wikimedia.org/wikipedia/commons/3/31/Raspberry_Pi_2_Model_B_v1.1_top_new_%28bg_cut_out%29.jpg
http://upload.wikimedia.org/wikipedia/commons/a/ac/Computer_from_inside_018.jpg
http://upload.wikimedia.org/wikipedia/commons/d/dd/MicroATX_Motherboard_with_AMD_Athlon_Processor_2_Digon3.jpg
http://upload.wikimedia.org/wikipedia/commons/2/23/Monokristalines_Silizium_f%C3%BCr_die_Waferherstellung.jpg
http://upload.wikimedia.org/wikipedia/commons/d/d7/Wafer_2_Zoll_bis_8_Zoll_2.jpg
Architektura počítačů, Úvod, LS 2015/2016, 23. 2. 2016
49/49

Podobné dokumenty

915_VY_32_INOVACE_CAJS_1+3_24_OBRATLOVCI I_kruhoústí

915_VY_32_INOVACE_CAJS_1+3_24_OBRATLOVCI I_kruhoústí http://cs.wikipedia.org/wiki/Soubor:Iciligorgia_schrammi.jpg http://www.i60.cz/obrazky/velke/ferda-mravenec1_201301011249429.jpg http://cs.wikipedia.org/wiki/Soubor:Lamprey_mouth.jpg http://cs.wiki...

Více

Zpravodaj 2/2016

Zpravodaj 2/2016 zasláno celkem patnáct návrhů, vypsal Český aeroholding ve spolupráci s Institutem plánování a rozvoje hl. m. Prahy (IPR) v červenci loňského roku. Výstava představí cestujícím i široké veřejnosti ...

Více

915_VY_32_INOVACE_CAJS_1+3_25_OBRATLOVCI II_plazi,ptáci

915_VY_32_INOVACE_CAJS_1+3_25_OBRATLOVCI II_plazi,ptáci Tento výukový materiál vznikl v rámci operačního programu Vzdělávání pro konkurenceschopnost.

Více

Dům umění města Brna The Brno House of Arts Malinovského nám

Dům umění města Brna The Brno House of Arts Malinovského nám The Brno House of Arts will present this summer for the third time the biennal for art in public space Brno Art Open. To this occasion a public stage and info platform is going to be built in coope...

Více

Znaky - Bělá nad Radbuzou

Znaky - Bělá nad Radbuzou Obr. 31 ŽELVA ŽLUTOHN DÁ - 25 cm, J. Evropa

Více

GNU Tool Chain

GNU Tool Chain o = port GCC pro Win32 (včetně free Win32 API)

Více