# Perfiferní zařízení a řadiče ### Časovací obvody - čítací registr - 8bitový registr nebo 16/32bitový čítač - lze jej nastavit a číst programově nebo z pomocného registru - počítá od nastavené hodnoty (`0000` -> `FFFF`) - při přetečení (`FFFF` -> `0000`) může generovat přerušení - předdělička - snižuje frekvenci systémových hodin dělením zvolenou konstantou **Použití** - měření časových interrvalů - generování přerušení po určitém čase - periodické generování přerušení **Hodiny reálného času** (RTC) - obsahují kaskádu čítačů pro sekundy, minuty, hodiny, ... - registry lze programově číst - někdy na čipu se SRAM, ve společném pouzdru s krystalem a baterií ### Diskové paměti **Konstrukční principy** - hlavy jsou na otočeném nosiči - nastavením polohy hlav vybrán cylindr - výběrem hlavy zvolena stopa - záznam v jednotlivých stopách rozdělen na sektory - klasické adresování sektorů: **CHS** (Cylinder, Head, Sector) - novější způsob: **LBA** (Linear Block Address) - všechny sektory jsou průběžně očíslovány jednorozměrnou adresou - sektor (běžně 0.5 kB) = nejmenší objem dat, který lze číst/zapsat - při požadavku na změnu 1 bytu - přečte se celý sektor do paměti, změní se byte, sektor se zovu zapíše **Kombinovaná zápisová/čtecí hlava** - zápis indukční hlavou - záznam bitů modulací proudu v hlavě, kódování RLL - čtení magnetorezistivní hlavou - MR senzor - změna el. odporu v magnetickém poli **Zonální záznam** (ZBR, Zone Bit Recording) - bez ZBR - ve všech stopách stejný počet sektorů (povrch disku není dobře využit) - se ZBR - v jednotlivých zónách je různý počet sektorů ve stopě **Rychlost disku** - rychlost vystavení hlav - podle konstrukce vystavovacího mechanismu - cca 0.5-1.0 ms na sousední stopu - pro libovolné stopy cca 3-10 ms - rychlost nalezení sektoru - podle rychlosti otáčení - 1/2 otáčky = 4.2 ms při 7200 ot/min - rychlost přenosu - podle rychlosti otáčení a kódování - přenos z povrchu disku cca. 500-2000 Mbit/s ### Solid State Devices (SSD) **Architektura Flash NAND** - stránka (page) = 2048 + 64 bytů (4 sektory) - blok = běžně 64 stránek - při kapacitě 4 Gb 4000 bloků - AND nemá dělení na bloky - paměťová matice se čte/zapisuje po stránkách - ECC slouží k opravě chybně přečtených dat - mazání - AND - po stránkách - NAND - po blocích **FTL** (Flash Translation Layer) - převádí logickou lineární adresu sektoru (LBA) na fyzickou adresu čipu / adresu stránky na čipu - paralelní činnost banků pro zvýšení rychlosti - rovnoměrné využívání stránek (Wear Leveling) pro vyšší životnost - mazání volných stránek pro další zápis (Garbage Collection) - správa vadných bloků **Rozhraní NVMHCI** (Non Volatile Memory Host Controller Interface) - protokol pro připojení nevolatilních pamětí na PCIe ### Rozhraní ATA, ATAPI a SATA **Rozhraní ATA** - specifikace definuje - fyzickou vrstvu - odvozena od sběrnice ISA - registry řadiče - **Command** - příkazový registr - zápis povelu pro zařízení - **Sector Count** - počet přenášených sektorů - **LBA Low, Mid, High** - LBA adresa dat - **Device** - výběr zařízení (č. 0/1), číslo hlavy při adresování CHS - **Status** - stavový registr - **Alternate status** - stavový registr - **Features** - pro zápis různých parametrů (volba Ultra DMA, řízení úsporných režimů, ...) - **Error** - indikace typu chyby **Rozhraní ATAPI** (ATA Packet Interface) - pro připojení CD/DVD - do příkazového registru se zapisuje příkaz Packet Command (`0xA0`) - příkazy pro CD/DVD se předávají v příkazovém bloku (12 bytů) který se zapisuje do **datového registru** - příkazový packet - do příkaz. registru se zapíše příkaz Packet Command - do datového registru se zapíše příkazový packet - z/do datového registru se čtou nebo zapisují data **Rozhraní SATA** (Serial ATA) - z hlediska aplikačního SW transparentní (používá stejné registry jako u ATA) - fyzická vrstva - každá disková jednotka propojena dvojicí jednosměrných signálů - používá se diferenciální signál - přenos. frekvence 1.5/3 GHz, rychlost tedy 150/300 MB/s **SATA II** - oproti SATA obsahuje rozšíření - použití NCQ (Native Command Queuing) - příkazy zadávány před dokončením předchozího - vykonány v optimálním pořadí (určuje disk) - rozvětvení portů (Port Multiplier) - musí jej podporovat HBA (Host Bus Adapter) - z jednoho HBA až na 15 portů - port 15 (0xF) je Control Port - podpora SES (SCSI Enclosure Services) - komunikace s napájecími zdroji, ovládacím panelem, ... - kompatibilita rozhraní se SAS (Serial Attached SCSI)