do 1. války byli spíš kalkulátory (mechanické/elektronické) vstup - děrné štítky, výstup - výpočty
Harvard Mark I - první počítač v dnešním slova smyslu 1944-1959 Howard Hathaway Aiken - tvůrce +-*/, logaritmy, trigonometrické funkce pomalý plně automatický neměl podmíněný skok balistické tabulky (mnoho počítačů bylo používáno armádou) byl programovatelný,automatický
Grace Murray Hopper - starala se ze strany armády o počítače stara se z úřednice... první překladač vznikl za její popory - jazyk A0 -> Gobol anglické slovo bug vzniklo z toho, že chyba u tohoto počítače vznikla zapečením můry do relé
ENIAC v pensylvánii r. 1946 jednotlivé programové moduly byly jednotlivé krabice připojené kabely, postupně se přešlo na přepínače rozlišoval různé druhy paměti 17500 elektronek počítání balistických drah 20h(člověk s kalkulačkou)->15min->30sec(ENIAC) Atanasov - měl základní patenty na počítač (jeho počítač-ABC, vypaloval dírky do pásky)
46-47 - letní školy o ENIACů -> mnoho dalších počítačů
EDVAC - pořádně programovatelný - je uložen v paměti - na vnitřních rtuťových zpožďovacích linkách 1949 magnetická páska návrh ovlivnil další stroje
John Louis von Neumann 1
1. teoretický informatik zakladatel teorie her 1947 - koncepce počítače - von Neumannova zobecnění návrhu struktura počítače je nezávislá na vykonávané úloze data a program jsou uloženy ve stejné paměti program je uložen v paměti adresace paměti počítač je definován programem, který změní stav stroje program se při změně dat nemění instrukce se provádí v pořadí, ve kterém jsou uloženy v paměti (kromě skoku) pro reprezentaci instrukcí i dat se používá dvojková soustava (byli i počítače v trojkové soustavě- hlavně v rusku) dodne se používá
počítač EDSAC - podle von Neumanovy koncepce - ukázal se, jak je dobrá byl mnohem jednodušší
von Neumanova se zlepšovala: Indexregistry - speciální paměť jednotka operace v plovoucí řádové čárce - byl tam i paralelismus Přeručení, univerzální registry, asynchronní činnost obvodů IO Nepřímé adresování virtuální paměť
vývoj vede k odstranění komplikací von Neumannovy koncepce von Neumannova koncepce se používá dodnes v překladačích
firma IBM -
Manchester Mark I
Ferranti Mark I optimalizace na čtení dat programován děrnou páskou z dálnopisu
2
IBM 360 postaven na integrovaných obvodech (všude stejná teplota) stavebnicová konstrukce jednotný způsob připojování periferií tato koncepce se dlouho udržela
Prof. Antonín Svoboda pracoval na vojenských zaměřovačích účastnil se vývoje počítačů SAPO a EPOS
SAPO - umožňoval opravu chyb (ztrojená výpočetní jednotka) pětiadresové instrukce 5 operací za sekundu 57-58 reléový
EPOS elektronkový -> rychlejší 20 000 operací /sec vnější a vnitřní sdílení času samoopravné kódy
Generace počítačů
Velké počítače (mainfraim)(sálové) počítače nezmizeli - 60% dat je na mainframy
ARCHITEKTURA POČÍTAČŮ 1.Datové struktury, reprezentace dat dnes - dvojková soustava mapovací fce mezi reálným světem, a uložením
2. Adresové konvence legment-offset/linární adresace velikost paměti, její šířka 3
povolená místa v paměti (oddíly paměti pro různé uplatnění)
3. Instrukčí soubor přechodová fce mezi stavy počítače formát instrukce způsob zápisu způsob adresace operandů
4. registrový model podle určení r. explicitní/implicitní registry podle fce reg. řídící r./r. operandů
4. řízení spolupráce procesoru a ostatních jednotek interakce s okolím přerušení vnitřní vnější
5. vstupy a výstupy metody a způsob přenosu dat
Co je třeba definovat 1. Datové cesty konverze dat řídící signály
2. sdílení jednotek na úrovni obvodů na úrovni jednotek
3. specializované jednotky na různých úrovních 4. paralelismus 4
-programy -části programů -podprogramy -cykly, iterace -instrukce lze pouze u nezávislých dějů
5. organizace paměti a IO hierarchie paměti způsob vyhledávání a předávání dat
6. predikce schopnost připravit se na očekávaný děj explicitní predikce statistika heuristika
Víceúrovňová organizace
051102 při vývoji počítače je nutné udržet návrh s vytvářeným strojem Moorův zákon ”Ke změně základních technologických parametrů dochází v průběhu 18měsíců zhruba v poměru 1:2” opravdu to tak (většinou) platí
Reprezentace dat články (ve slidech) Typy dat •
Literály ◦
logické hodnoty true,false dají se reprezentovat jedním bitem - ale nedá se to adresovat takže se reprezentují jedním bytem
◦
znaky −
EBCDIC 5
používáno na mainfraimech jsou nadefinovány závazné znaky, ale je tam plno místa pro ostatní (uživatelsky definované) znaky znaky nejsou souvisle rozmístěny řídící znaky (z dálnopisu) −
ASCII původně sedmibitové dnes osmibitové malá a velká písmena se liší v jednom bitu při osmi bitech je ještě jedna tabulka pro národní abecedy - pro českou abecedu je jich mnoho typů
−
UNICODE součást normy znak reprezentován vícebytovou sekvencí několik implementací - pozor špatně se zjišťuje délka řetězce možnosti uživatelských symbolů mnoho jazyků
◦
grafické symboly reprezentace spolu se znaky jazyky pro popis grafických symbolů
◦ •
nečíselná data
Čísla soustavy - polyadycké, nepolyadické(římské číslice, zbytkové třídy(používá se pro speciální věci při optimalizaci)) !převod mezi soustavami! hornerovo schéma převod čísla se zlomkovou částí - převedeme celou část, pak tu zlomkovou (musíme násobi, a sepisovat celou část) - může vznikat periodicita reprezentace přirozená - reprezentace buď binárním převodem, BCD - sice binární, ale zaznamenávají se desítkové řády (problémy - při počítání - speciální instrukce, neúsporný záznam) celá čísla - se znaménkem (problém s 2mi nulami, a problém při např. přičítání), s posunutím - přičítám reprezentaci nuly, dvojkový doplňek - kladná normálně, ale záporná jako dvojkový doplňek ( − |A| + M ) (v dvojkové soustavě stačí negovat a přičíst 1), někdy ještě prostá negace koverze délek - při reprezentaci dvojkovým doplňkem doplním o číslo na první pozici racionální čísla - zlomky 6
vícebytové sekvence - problém - jak ukládat? Jak přenášet? - littleendian(VAX,MOS6502,Intel x86), big-endian(IBM 360/370,PDP-10, Motorola 6800, různé risc), Midle-endian (perverzní způsoby ukládání) - liší se z jaké strany se čísla ukládají NUXI problé - při přenosu dat dochází k problémům Byte-sexual/bi-endian - liší se podle nastavení (můžou fungovat oběmi způsoby) tyto problémy se projevují i v reálném světě (data) Ještě horší problémy - 8/16 bit reálná čísla - s pevnou řádovou čárkou (většinou se emuluje), plovoucí řádová čárka (základ a exponent, nemusí být jednoznačný - normalizovaný a nenormalizovaný zápis), floutink slash, něco z logaritmama zobrazení floating pointů - mantisa většinou bývá se znaménkovým bitem - skrytý bit - je tam vždy 1 norma IEEE 754 - definuje některé formáty, IEEE 854; některé speciální hodnoty se různě reprezentují (0,maximum, minimum, + / − ∞,Not a Number, signální NaN(je nastaven programátorem) (pozor na chování konkrétního procesoru a kompilátoru)) Operace s floating-point čísly - je po každé operaci nutné znovu normalizovat
•
Instrukce
051109 DÚ - vznik a přenos chyb (2 slidy) počítače nejsou úplně univerzální literatura W. Stallings: Computer Organization & Architecture A. Tanenbaum: Structured Computer Organization
J. Bayr et al.: Počítače pro řízení
Instrukční soubor -nejnižší úroveň kterou programátor musí znát Istrukční sada musí být: -funkčně úplná (pro danou úlohu) -účinná (typické postupy na malý počet instrukcí)
Pokud možno i: -ortogonální (jednotlivé části instrukce jsou na sobě nezávislé) (intelovské procesory nejsou ort.) -kompatibilní 7
Obsah instrukce: 1. operační kód 2. odkaz a určení zdrojových operandů 3. umístění a určení výsledku 4. odkaz na další instrukci (pokud je to např. následující není to nutné)
Modalita instrukcí: •
modalita operačního kódu
•
Modalita operandů
•
Modalita ochrany přístupová práva k operandům - ochrana paměti právo vykonání instrukce - ochrana OS, procesu (oprávnění)
Instrukční (Operační) kód -jasná definice, co má instrukce provést Dělení instrukcí I Podle počtu operandů
Bezadresové instrukce - pouze řídí stroj, pro práci se zásobníkem Jednoadresové instrukce Dvouadresové instrukce Tříadresové instrukce -
Zápis výrazů - infixová notace, postfixová notace, prefixová notace (polská notace) je to šikovné - dá se to snadno implementovat
Druhy instrukcí aritmetické instrukce logické instrukce - and,or,not,xor, porovnávání a test, posuny a rotace přesuny dat vstup a výstup řídící instrukce - skoky, řízení 8
Určení argumentů - implicitně, explicitně
Způsoby adresace •
Immediate Mode Von Neumann to zavrhnul Data přímo v operandu
•
Direct Mode určena adresa, kde jsou data
•
Indirect Mode adresa, kde je adresa, kde jsou data když je ta adresa moc dlouhá
•
Indexed Mode, Base Mode adresa ze dvou částí - základ a posunutí
•
Relative Mode adresování vůči vykonávané (nebo příští) adrese instrukce (použití v cyklech/skocích) velikost argumentu určuje jen krátkou vzdálenost
•
Adresace s použitím registrů
Automatické změny argumentů
Syntaxe instrukčního kódu Pamětový systém www.tomshardware.com www.play-hookey.com/digital
parametry paměti -kapacita -velikost slova -přenosová jednotka -přenosová rychlost (špičková, zaručená) -vybavovací doba -cyklus paměti - doba mezi dvěma požadavky 9
-přístupová metoda
dělení paměti •
funkce ROM, RWM WORM ◦
(speciální IRAM - jsou schopny s daty pracovat, CRAM - kriptovací),
ROM Maskovací - Mask ROM, programovací - PROM, elektronicky programovací EPROM (často se dají mazat uv zářením), EEPROM - dá se mazat elektronicky, FLASH - dá se mazat po různých úsecích
◦
RWM dinamické - DRAM statické - SDRAM
◦
RAM můžeme libovolně vybrat adresu přístupu
◦
SAM adresa dána vzdáleností od začátku paměti vybavovací doba je většinou velká
◦
DAM -např. pevný disk
◦
AAM, CAM přístup k datům podle obsahu - např. telefonní seznam
•
způsob přístupu
•
technologie Pre-elektronické (relé, papír, zpožďovací linky, ferritová pole), elektronické, magnetické, opticke, (chemické, biologické) ◦
Elektronické paměti Dynamické - pro udržení je nutné obnovovat (časem se vybijí, čtení je destruktivní) −
kondenzátorem -
Statické −
klopný obvod - není definováno, stav při zapnutí, když na oba vstupy zavedu jedničku 10
•
umístění v systému
•
vnitřní organizace adresová (řádková a sloupcová část) a datová brána
•
detekce/opravy chyb
• odbočka - číslicová logika booleovská algebra !pravdivostní tabulky! pomocí hradla NOT, AND jde udělat všechno ostatní
051116 Zvyyšování výkonu dram Paggee mode access - přístup k jednomu celému řádku
synchronní paměti:
Hierarchie pamětí nikdy nejsou malé, levné a rychlé zároveň Vyrovnávací paměti data jsou uložena jako adresa-data - aby se mohla uložit přidělování paměti spojité - program má blok paměti, a může si s ním dělat co chce nespojité - když chce proces pamět, tak se mu kousek přidělí ochrana relokace Virtuální paměť procesy nevědí, kolik je paměti, ale jen jakésy nároky, které si může brát procesy adresují pomocí virtuální adresy proces může běžet i na systému s moc velkou pamětí je nutná spolupráce OS a HW
11
metody vyhazování stránek hodinový algoritmus - používán na Unixech
051123 segmentace překlady adres - rozdíl oproti stránkování příznaky - můžou se tam zapisovat práva pro segment (proces si je tam píše sám)
nevýhody stránkování se odstraňují kombinací se segmentací každý segment stránkován zvlášť - MULTICS
segmentace stránky - rozdělení stránky na víc částí
Mikreprocesory 8mi bitové procesory po prvním procesoru pro kalkulátory začal boom procesorů. 8080 uměl adresovat až 64k paměti -> omezení pro msdos Motorola 6800 čistší a jednodušší než intel 8080 Faggin (vývojář od intelu) sám uznal, že je lepší Zilog Z80 Vývojář procesoru 8080 odešel od intelu a založil Zilog levnější, ale kompatibilní s 8080 ZX spectrum
Edvard Roberts - MITS - výrobce kalkulaček - aby nezanikla jeho firma musel udělat průlom udělal stavebnici Altair 8800 - programovalo se to přepínáním pinů - obrovský úspěch
16ti bitové procesory
Řadič funguje podobně jako semafor 12
hard-wired +rychlost, výkon -neuniverzalita Mikroprogramování má paměť, která definuje, jak řadič může fungovat některé procesory měli výměnnou instrukční sadu +obecnější +dá se snadno implementovat -pomalejší -potencionální zdroj problémů Nanoprogramování Kombinace obou přístupů
051130 Mikroprogramování load mem. T0: PC_out, MAR_in T1: read, pcincr T2: MDR_out,IR_in konec načítání T3: decode vykonání load T4: IR_out,MAR_in T5: read T6: MDR_out, ACC_in reset T0
Zvyšování výkonu procesoru paralelní zpracování - pipeline poblémy rychlost záleží na nejpomalejším prvku jde to vůbec udělat? dochází k paralelismu, ale procesor se musí tvářit sekvenčně 13
při přístupu k datům se mi to zpomalí - řeší se to nastartováním předem datová závislost - nemůžu použít data, která ještě nemám - bubliny - řeší se to vhodným programováním - dám tam mezi to instrukci, která dělá něco nezávislého závislost skoků skoky - při skoku musím zahodit, to co se mi počítalo - řešení - víc různých pipeline, paměť skoku - u cyklů se většinou skáče hodněkrát na stejné místo, zpoždění skoku - jsou zatím vykonávány neškodné instrukce, predikce skoku - statická/dinamická - krátké skoky zpátky znamenají ciklus->skočí to zpátky
vývoj pipeline superpipelining - čím víc, tím líp superscalar - víc částí - úspora dinamic pipeline - procesor si rozhodne, co se bude dělat simultánní multithreading predikce hodnoty
optimalizace nejčastěji používaných věcí
dříve se implementovali instrukce, které měli být co nejlepší pro programátora; -> optimalizace na to, co se používá často (zrychlí se to) a co se používá málo - vyhodí se => co nezákladnější instrukce; taky se začali víc používat kompilátory; taky začali být levnější paměti
MIPS přizpůsobení kompilátoru hw; a ne opačně
CISC vs RISC RISC - zjednodušení instrukční sady
051207 Přerušení watchdog - jakmile nějaký čítač dospěje do nějakého stavu, tak se to restartuje - při zacyklení
instrukce pro přerušení - i pro ladění 14
výjimky - při nepovolených / neexistujících instrukcích
051212 Sběrnicové systémy datové linky, adresové linky, řídící linky (nemusí být fyzicky oddělené) kolizní - když je kolize, tak se vysílá až za náhodný čas token bus - zběrnice je řízena pomocí tokenu (peška), který se předává prioritní linka toto uspořádání je pouze logické
DMA - přenosu se neúčastní procesor Northbridge - RAM, AGP (nejvíc topí) Southbridge - ostatní (PCI, ...)
PCI 1.0 - 5V 2.1 - 3V i 5V 3.0 - jen 3V - změnil se konektor
AGP - odvozeno od PCI
PCIe paketový protokol QoS - možnosti řizení spotřeby
USB 4 režimy přenosu Control - řízení Bulk - velký přenost dat Interrupt - zařízení vysílá jen občas Isochronní přenosy - videa
FireWire - mnoho jmen zaměřeno na přenos videa ve finálním efektu může být rychlejší než USB 15
plánované využití - jak pro video, tak pro interrupty
Sériová komunikace hybná síla - telekomunikace RS-232C když ta zařízení budou moc daleko od sebe, tak to nemusí fungovat kvůli tomu, že signály vyhodnocují vůči svému zemnícímu kabelu
RS-422 simetrizace - vyhodnocuje se společně - vyřešen problém vzdálenosti jedev vysílač víc přijímačů
RS-485 plně zběrnicový provoz uvnitř počítače (větších) se používá pro vnitřní konfiguraci
CAN
I 2C dala by se ladit pomocí osciloskopu řízeno tikáním hodin - když slave nestíhá, přitáhne hodiny k zemi, a tím je zastaví
Bezdrátová komunikace: IrDA do 1 metru, 30˚ kužel
Bluetooth bylo plánováno masivní nasazení, nevyšlo.
WiFi ve standardu je i komunikace v IR FHSS - skáče se mezi jednotlivými frekvencemi - pomalejší komunikace, spolehlivější přenos,
WiMAX - o něco delší spojení než wifi (až 50KM), nové - až letos jsou dostupná koncová zařízení, není nutná přímá viditelnost,
16
051221 Paralelní systémy SISD - von Neumannovské stroje SIMD - nehodí se pro běžné programování, můžou to používat maticové procesory, MISD - většinou na vyšší úrovni MIMD - i například internet
SIMD vs MIMD centrální řízení vs distribuované řízení
SIMD VLIW - jedna instrukce ovládá víc částí v procesoru Zálohované systémy - systémy s vysokou redundancí
MIMD sdílená paměť - je nutné zajistit koherenci dat
fixed - připojení nového zařízení nemá vliv na ostatní linear - připojení nového zařízení zvýší počet připojení lineárně scalable - připojení nového zvýší počet připojení nějak jinak
SISD Maticové stroje každý procesor má vlastní paměť, je tam propojovací síť
Systémy řízené tokem událostí - dají se odemulovat na běžném počítači
amdalův zákon fs - sekvenční část f p - paralelní část n - počet jednotek t - čas který to má trvat sekvenčně
paralelismus má cenu zavádět až tak od 90%
17
Propojovací sítě počátky v telekomunikacích
statické sítě Lineární síť - problémy se zahlcením Hvězdicová síť - v případě selhání středu se to rozpadne Kruhová síť úplný graf - dost nešikovné
hyperkrychle - jde rozšiřovat hodně protože přidání rozměru zvýší počet uzlů na dvojnásobek, ale stupně každého vrcholu o 1
dynamické sítě nastavovací čas - za jak dlouho se vytvoří datová cesta síť s dokonalým promýcháním/oddělením - pouze se binárně posune adresa blokující sítě - v některých případech mohou zablokovat vytvoření cesty přestavitelné sítě - v případě konfliktu se přestaví spojení neblokující síť - neblokuje spojení
060104 spolehlivost hraje roli i lidský faktor
fault (chyba) - prvotní příčina dalších problémů error (závada) - projev faultu failure (selhání) - uživatelsky zdetekovatelný error
chyby (všechny tři kategorie) se nemusejí projevit
MTBM - střední doba mezi opravami MDT - střední doba, po kterou zařízení neběží CM - údržba PM - preventivní údržba DT - doba po kterou se nic neřeší MTTF - střední doba do vzniku poruchy 18
MTTR - střední doba do opravení MAMT - doba, po kterou je zařízení opravováno
MTBF = MTTF + MTTR - střední doba mezi poruchami NON - počet devítek za čárkou u dostupnosti
FIT - chyb za čas - za 109 hodin
FER - samoopravné kódy BER - nejjednodušší je, vrátit se na začátek
060111 termíny jsou vypsány všechny
Kódování
menchester coding - detekují se změny, je potřeba dvojnásobná šířka pásma, když to sklouzne o polovičku hodin - je problém - ale je to proti pravidlům mc - takže se to detekuje NRZI - používá se na CD, fyzická vrstva USB, 100Mb ethernet FM MFM - nikdy dvě jedničky za sebou, nikdy 3 nuly za sebou, první pevné disky, floppy disky Bit stuffing - přidávání bitů kvůli protokolu; dodržení vlastností přenosu
Parita příčná/podélná - po řádcích a sloupcích Hammingův kód - detekce i oprava doplnění na správnou paritu říká přímo na které pizici je chyba
červený luminifor je nejdražší prodlevy, kdy se nic nezobrazuje se používají pro teletext
19