80 likes | 223 Views
Współczesne komputery. wielopoziomowe. Poziom 0 – złożony z bramek logicznych, z których można zbudować jednobitowe pamięci. Łącząc je w zestawy po 8, 16, 32 lub 64 buduje się rejestry. Z bramek budowane są także jednostki wykonawcze procesora.
E N D
Współczesne komputery wielopoziomowe
Poziom 0 – złożony z bramek logicznych, z których można zbudować jednobitowe pamięci. Łącząc je w zestawy po 8, 16, 32 lub 64 buduje się rejestry. Z bramek budowane są także jednostki wykonawcze procesora. Poziom 1 – zbiór rejestrów (zw. 8-32) połączonych z arytmometrem (jedn. arytm.-logiczną [ALU]) – tworzą tzw. „ścieżkę danych”. Pracą ścieżki zarządzał zwykle „mikroprogram”, obecnie przeważają konstrukcje gdzie tę funkcje pełni sprzęt. Poziom 2 – poziom architektury listy rozkazów (ISA – Instruction Set Architecture), rozkazy są albo interpretowane przez mikroprogram, albo przez obwody wykonawcze. Poziom 3 – zwykle hybrydowy, wiekszość rozkazów pochodzi z poziomu ISA, ale są również inne, Jak np. inna organizacja pamięci, możliwości uruchamiania wielu programów itp. Funkcje tego poziomu są wykonywane przez interpreter pracujący na poziomie 2 (system operacyjny). Jeżeli rozkaz pochodzi z poziomu 2 wykonywany jest bezpośrednio przez mikroprogram (lub obwody wykonawcze), inne są Interpretowane – stąd „hybrydowy charakter” Poziom 4 – poziom aplikacji, tutaj zwykle mamy do czynienia z translatorami. Poziom assemblera to symboliczna reprezentacja jednego z języków z niższej warstwy program zawiera słowa i symbole, nie składa się wyłacznie z liczb, jak to ma miejsce na poziomach niższych. Poziom 5 – języki wysokiego poziomu (C, C++, Fortran, Java, LISP itd..)
Dwa ważne rejestry: „Licznik” programuPC (Program Counter) Rejestr rozkazów IR (instruction register) Cykl rozkazowy (instruction cycle), lub cykl pobierania-dekodowania-wykonania (fetch-decode-execute cycle) 1. Pobierz kolejny rozkaz z pamięci do IR 2. Zmień wartośc IC, żeby wskazywał na następny rozkaz 3. Określ typ pobranej instrukcji 4. Jeżeli instrukcja korzysta ze słowa w pamięci, określ położenie tego słowa 5. Jeżeli to potrzebne, pobierz słowo do rejestru jednostki centralnej 6. Wykonaj instrukcję 7. Przejdź do kroku 1
Dwie drogi: • Rozbudowa listy rozkazów, głównie interpretowanych – do kilkuset • CISC – Complex Instruction Set Computer • 2. w 1980 nowa wizja procesora: • ograniczona lista rozkazów, • sterowanie sprzętowe • architektura RISC (Reduced Instruction Set Computer) • Współczesne reguły projektowania: • Wszystkie instrukcje wykonywane bezpośrednio w warstwie sprzętowej • (jedynie te rzadziej używane moą być wykonywane jako sekwencje • mikroinstrukcji) • Maksymalizowanie szybkości inicjowania rozkazów • Dokodowanie instrukcji powinno być łatwe, proste rozkazy, najlepiej • o stałej długości i z małą liczbą pól (parametrów) • Tylko rozkazy ładowania i zapisywania danych odwołują się do pamieci • Duża liczba rejestrów (co najmniej 32)
Równoległość na poziomie rozkazów, Potoki wykonawcze: W maszynie IBM Stretch (1959) wprowadzono po raz pierwszy tzw. bufor wstępnego pobierania rozkazów (prefetch buffer) – jeszcze w trakcie wykonywania poprzedniego rozkazu do tego bufora kopiowano następny rozkaz z pamięci. Rozwinięciem tej idei jest tzw. potok (pipeline):
Załóżmy, że czas trwania jednego cyklu to 2 ns, Przejście pojedynczego rozkazu przez cały potok trwa 10 ns Szybkość komputera to 100 MIPS (megainstructions per second)??? Jeżeli długość cyklu to T ns, a potok ma n stopni to opóźnienie wynosi nT ns, Ale jeżeli w każdym cyklu zegara wykonywany jest jeden rozkaz, To w 1 sekundzie wykonuje się 109/T cykli czyli 109/T rozkazów Jeżeli T = 2 ns to maszyna z przykładu osiąga 500 MIPS
Architektury superskalarne Dwa równoległe potoki z wspólną jednostką pobierania rozkazów, Synchronizacja? Pentium – dwa potoki: główny mógł wykonywać dowolny rozkaz, drugi tylko proste rozkazy stałoprzecinkowe. Dziś wrócono do konstrukcji z równoległymi potokami.
Komputery macierzowe: ILLIAC IV - SIMD – Single Instruction Stream Multiple Data Stream Komputery wektorowe Wydajne operacje na parach elementów danych, wszystkie operacje dodawania Trafiają do jednego, wydajnego sumatora (np.. Cray) Systemy wieloprocesorowe (wielokomputerowe)