Współczesne komputery

8

Click here to load reader

Transcript of Współczesne komputery

Page 1: Współczesne komputery

Współczesne komputery

wielopoziomowe

Page 2: Współczesne komputery

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 wykonawczeprocesora. 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 pochodziz 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 assemblerato 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..)

Page 3: Współczesne komputery

Dwa ważne rejestry:„Licznik” programu PC (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 IR2. Zmień wartośc IC, żeby wskazywał na następny rozkaz3. Określ typ pobranej instrukcji4. Jeżeli instrukcja korzysta ze słowa w pamięci, określ położenie tego słowa5. Jeżeli to potrzebne, pobierz słowo do rejestru jednostki centralnej6. Wykonaj instrukcję7. Przejdź do kroku 1

Page 4: Współczesne komputery

Dwie drogi:1. Rozbudowa listy rozkazów, głównie interpretowanych – do kilkuset CISC – Complex Instruction Set Computer2. w 1980 nowa wizja procesora: ograniczona lista rozkazów, sterowanie sprzętowe architektura RISC (Reduced Instruction Set Computer)

Współczesne reguły projektowania:a. Wszystkie instrukcje wykonywane bezpośrednio w warstwie sprzętowej (jedynie te rzadziej używane moą być wykonywane jako sekwencje mikroinstrukcji)b. Maksymalizowanie szybkości inicjowania rozkazówc. Dokodowanie instrukcji powinno być łatwe, proste rozkazy, najlepiej o stałej długości i z małą liczbą pól (parametrów)d. Tylko rozkazy ładowania i zapisywania danych odwołują się do pamiecie. Duża liczba rejestrów (co najmniej 32)

Page 5: Współczesne komputery

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):

Page 6: Współczesne komputery

Załóżmy, że czas trwania jednego cyklu to 2 ns,Przejście pojedynczego rozkazu przez cały potok trwa 10 nsSzybkość 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

Page 7: Współczesne komputery

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.

Page 8: Współczesne komputery

Komputery macierzowe:ILLIAC IV - SIMD – Single Instruction Stream Multiple Data Stream

Komputery wektoroweWydajne operacje na parach elementów danych, wszystkie operacje dodawania Trafiają do jednego, wydajnego sumatora (np.. Cray)

Systemy wieloprocesorowe (wielokomputerowe)