Notatki – Architektura Systemów Komputerowych
System komputerowy
Układ współdziałania sprzętu, oprogramowania oraz (coraz częściej) sieci
3 warstwy: sprzęt ➔ system operacyjny ➔ aplikacje
Kryteria i klasyfikacje architektur
Ile/jakich procesorów? Ile/jakich pamięci? Sposób połączenia (statyczne/dynamiczne)
Klasyfikacje:
• wg Flynna:
• wg liczby/rodzaju CPU: skalarne, wektorowe, kwantowe, chemiczne
• ziarnistość przetwarzania: coarse / fine
• gospodarka pamięcią: wspólna/rozproszona
• synchroniczność: synchronous vs asynchronous
• komunikacja: loosely- vs tightly-coupled, multiprocessor vs multicomputerSMP, ASMP, NUMA, AMP, MPP
Model pamięci: von Neumanna, harwardzki, mieszany
Ewolucja technologii
Lampy ➔ tranzystory (1948) ➔ układy scalone (1959) ➔ VLSI (koniec 70.)
Wzrost mocy:
Prawo Moore’a: liczba tranzystorów podwaja się co ~24 miesiące
Stopnie scalenia: SSI < MSI < LSI < VLSI < ULSI
Algebra Boole’a
Zbiór , operacje: suma (), iloczyn (), negacja ()
Aksjomaty: przemienność, łączność, rozdzielność, De Morgana itd.
Układy logiczne
Kombinacyjne: wyjście zależy tylko od wejść
Sekwencyjne: zależność od wejść + stanu wewn.
• Struktura Mealy:
• Struktura Moore:Synchroniczne (zegara) vs asynchroniczne (brak zegara)
Podstawowe bramki
BUF, NOT, AND, OR, NAND, NOR, XOR, XNOR
Systemy funkcjonalnie pełne: {AND,OR,NOT}, {NOR}, {NAND} …
Układy kombinacyjne przykład
Multiplekser (MUX): wybór adresowanym
Demultiplekser: odwrotność MUX
Układy sekwencyjne przykład
Przerzutnik D (zbocze/przebieg, sync/async)
Liczniki: up, down, rewersyjne, modulo
Pamięci półprzewodnikowe
RAM: SRAM (szybka, odświeżania, cache) vs DRAM (tańsza, wymaga refresh, RAM główna)
ROM: ROM, PROM, EPROM, EEPROM, FLASH
Hierarchia: rejestry ➔ cache ➔ RAM ➔ dysk/SSD/opt.
Parametry: czas dostępu, cyklu, przepustowość, pobór mocy
Kodowanie błędów: parzystość, suma kontrolna, Hamming
CPU
Def. jednostka wykonująca rozkazy; długość słowa (np. 64-bit)
Cykl rozkazowy: fetch ➔ decode ➔ opcjonalne fetch argumentu ➔ execute ➔ writeback
Rejestry x86: ogólne (AX,BX,CX,DX), wskaźnikowe (RBP,RSP,RIP), segmentowe (CS,DS,SS,ES)
Dekodowanie instrukcji (opcody, adresy źródło/cel)
Pamięć i magistrale
Szyny: adresowa, danych, sterująca
Endianness (mało/dużo-porządkowy zapis w pamięci)
Interleaving dla konfliktów dostępu w pamięci wspólnej
Asembler (MASM/NASM/FASM/GAS/…)
Asemblacja: mnemoniki ➔ kod maszynowy
Zalety: szybki, mały kod, pełna kontrola; wady: nieprzenośny, trudniejsze utrzymanie
Dyrektywy (.model .data .code .stack)
Instrukcje: MOV, ADD, SUB, CMP, INC/DEC, AND/OR/XOR/NOT, JMP, CALL, RET, PUSH/POP
Przerwania DOS: (funkcje 01h–4Ch itd.)
Makra, procedury, stos (LIFO, PUSH/POP)
Rozszerzenia SIMD: MMX, SSE (operacje packed, saturacja)
Przerwania
Źródła: sprzętowe, programowe, wyjątkowe, zegarowe, uszkodzenia
Obsługa: zachowaj stan ➔ procedura ISR ➔ przywróć ➔ kontynuacja
Priorytety, wektor przerwań
Systemy wbudowane (Embedded)
Układ mikroprocesorowy dedykowany urządzeniu, wysoka niezawodność
Mikrokontroler = CPU + RAM/ROM + I/O + układy analogowe (ADC/DAC, PWM, UART, SPI, I²C, USB …)
Kryteria: koszt, zużycie energii, real-time
Systemy czasu rzeczywistego
RTS: spełnia warunki logiczne i czasowe
Hard vs Soft real-time
Wymagania RTOS: priorytety, wywłaszczanie, determinizm, dziedziczenie priorytetów, dokumentacja
Przykłady RTOS: VxWorks, QNX, RT-Linux, FreeRTOS, Windows CE …
Mikrokontroler 8051 i DSM-51
Architektura: 4 KB ROM, 128 B RAM, 4 porty I/O, timery, UART, wektor przerwań
DSM-51: płytka uruchomieniowa, monitor, RS-232, klawiatura, LCD, buzzer, izolowane I/O, ADC/DAC
Przykłady kodu: miganie diody, wyświetlanie na LCD, kalkulator mnożenia
PLC (Programmable Logic Controller)
Mikroprocesorowy sterownik przemysłowy, cykliczny obieg pamięci programu (scan cycle)
Programowanie wg IEC 61131-3:
• LD – Ladder Diagram (drabinka)
• FBD, ST, IL, SFCElementy LD: styki (NO/NC), cewki, timery (TON), liczniki (CTU/CTD)
Cykl PLC: read inputs ➔ execute logic ➔ diagnostics/comms ➔ write outputs
Przykłady: sterowanie napełnianiem zbiornika (histereza HH-LL), START/STOP silnika
Sieci przemysłowe: Modbus, Profibus, CAN, AS-i, Industrial Ethernet
Asemblery porównanie
MASM (Intel, Windows), TASM (objektowy), NASM/YASM (BSD, multiplatform), FASM (self-hosting, MenuetOS), GAS (AT&T, Linux)
Różnice: składnia (Intel vs AT&T), makra, struktury, preprocesor, obsługa 64-bit, licencjonowanie
Koprocesor x87 (FPU)
8 rejestrów tworzących stos, rejestry: status, control, tag
Format liczb: 32-, 64-, 80-bit float; 16-, 32-, 64-bit integer
Instrukcje: FLD/FST, FADD/FSUB/FMUL/FDIV, FSQRT, FABS, trigonometry, FPREM; konwersje FILD/FIST
Przykład: obliczenie iloczynu skalarnego przy użyciu FSQRT/FPREM
Egzamin
Forma: pisemna, ~10 pytań, 60 min
Skala: 10 pkt/pytanie, zaliczenie
Dokument opracowany na podstawie materiałów dr inż. Leszka Puzio, wykłady „Architektura systemów komputerowych i wbudowanych”.