Informacja jest miarą niepewności pewnego zdarzenia C. Shannon i(a)=logb(1/P(A)) = -logb(P(a))
Komputer - urządzenie, które oblicza, zazwyczaj realizowane jako programowalna maszyna elektroniczna.
FUNKCJE KOMPUTERA
- przenoszenie danych
- przetwarzanie danych zewnętrznych
- przechowywanie danych
- przetwarzanie danych wewnętrznych
- przenoszenie danych
- przechowywanie danych
ARCHITEKTURA KOMPUTERA - odnosi się do tych atrybutów systemu, które są widzialne dla programisty. Atrybuty te mają istotny wpływ na wykonanie programu.
ORGANIZACJA KOMPUTERA - odnosi się do jednostek "operacyjnych" i ich połączeń, które stanowią realizacje specyfiki typu architektury.
ARCHITEKTURA VON NEUMANNA - Pamięć(dane + program) <-> Jednostka arytmetyczna (<-> I/O) <-> Jednostka sterująca <-> Pamięć
ARCHITEKTURA HARWARDZKA - program <- Pamięć -> dane
Tryby adresowania
- implikowane (operand jak i miejsce przeznaczenia są określone przez dany rozkaz)
- natychmiastowe (argument pobierany bezpośrednio z rozkazu mov ax, 20)
- bezpośrednie (adres operandu znajduje się bezpośrednio w rozkazie mov ax, [40])
- względne (adresowania pamięci względem adresu aktualnie wykonywanej instrukcji w pamięci programu)
- pośrednie (odwołujemy się do jednego z rejestrów roboczych procesora lub do komórki pamięci mov ax, [cx])
- rejestrowe (operandy znajdują się w rejestrach mov ax, bx)
Rejestry PIC16F84A
- status(rejestr statusu, flag procesora)
- porta/b(reprezentacja stanów linii portu)
- trisa/b(konfiguracja wejść, wyjść na porcie)
- pcl(młodsze 8 bitów licznika programu)
- pclath(starsza część licznika programu)
- tmr0(rejestr Timera0)
CYKLE
- dekodowanie instrukcji(Program Counter->szyna, PC++)
- pobieranie argumentów(odczyt FLASH)
- wykonywanie(wypełnianie Instruction Reg(szyna danych - pobieranie komendy))
- zapis wyników(zmiany Instruction Reg i Program Counter zależnie od danych(skok))
SPARC(okna rejestrow - efektywna metoda przekazywania paramertow do procedur)
MIPS(Potok - więcej niż jedna instrukcja, wiele jednostek funkcjonalnych)
POWERPC(podział funkcji - kontrola, liczby zmiennoprzecinkowe, staloprzecinkowe - pracują niezaleznie)
RISC
- rozbudowana hierarchia pamięci
- duza czesc zadan pozostawiona kompilatorowi do zaplanowania
- mikroprogram praktycznie nie stosowany
- głęboki potok w ukladzie sterujacym
- wiekszosc instrukcji operuje na rejestrach
- proste instrukcje i niewiele trybów adresowania
TRYBY PRACY x86
- rzeczywisty - zgodny z najstarszym 8086
- chroniony - tryb przeznaczony do pracy wielozadaniowej pod kontrola Systemu Operacyjnego
- wirtualny - wersja trybu chronionego do wykonywania programów w trybie rzeczywistym
- SMM - tryb zarządzania sprzętem przez system operacyjny.
Typy zależności poziomu instrukcji(ograniczenie poziomu równoległości)
- true dependency(RAW B = A, C = B)
- anti-dependency(WAR A = B, B = 7)
- output dependency(WAW A = 9, A = 8)
KOD HORYZONTALNY
długa szyna sterująca kodowana długimi instrukcjami
KOD WERTYKALNY
krotka szyna sterująca z użyciem multipleksera
VLIW - długie słowo instrukcji(dzielone na jednostki funkcjonalne), równoległości wyszukiwane przez kompilator
superskalarna(dekodowanie, wykonywanie, zapisywanie rożnych instrukcji jednocześnie)
EPIC(słowo składające się z instrukcji i zależności miedzy nimi)
Prawo Amdahla - przyspieszenie forma ciężka(S = 1/(suma(Pk/Sk)), forma oryginalna(S = N/(a+(N-1)a))
RAID
0 - dane rozwalone po dyskach
1 - te same dane zapisane na kilku dyskach
2 - małe paski danych (1 bajt) + kod Hamminga na kilku dyskach
3 - ^ ale jeden dysk na kod Hamminga
4 - duże paski, dyski niezależne, kod H na osobnym dysku
5 - ^ ale wszystko pomieszane
Taksonomia Flynna(SISD, SIMD, MISD, MIMD)
Single Instruction Single Data
Multiple Instruction Multiple Data
Cechy systemu symetrycznego wieloprocesorowego(SMP)
- szybkosc(jesli czesc algorytmu moze byc wykonana rownolegle)
- dostepnosc(wszystkie procesory wykonuja te same funkcje uszkodzenie nie zatrzymuje systemu)
- skalownosc(uzytkownik moze zwiekszyc wydajnosc dodajac kolejne procesory, firmy moga oferowac cala game rozwiazan)
- wspolna szyna(szybkosc ograniczona przez czas cyklu szyny, kazdy procesor powinien posiadac wlasny cache, wspolny cache prowadzi do problemow ze spojnoscia danych)