Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl
Podstawowa architektura komputera w aspekcie jego budowy Projektant komputera wybiera architekturę maszyny w oparciu o koszt i korzyści płynące z możliwej zoptymalizowanej organizacji przy wykorzystaniu dostępnych elementów sprzętu (hardware) i oprogramowania (software). Każdy element może być wdrożony w różnych postaciach zależnie od postawionych wymagań i dostępnej (lub wybranej) technologii W SZCZEGÓLNOŚCI BUDOWA KOMPUTERA MUSI ODZWIERCIEDLIĆ WSZYSTKIE MINIMALNE WYMAGANIA POSTAWIONE PRZEZ ASPEKT ORGANIZACJI PRACY (poprzedni wykład)
Parametry podstawowe dla konstrukcji komputera Wybrany zestaw instrukcji Długość słowa Ustalone formaty instrukcji i danych Sposób zaprojektowania (i technologia) rejestrów i pamięci Ścieżka przepływu danych i instrukcji Projekt jednostki arytmetycznej i logicznej Mechanizm I/O Generowanie sygnałów sterujących Projekt jednostki sterującej
Wykonanie programu Po załadowaniu kodu obiektu do pamięci, można rozpocząć jego wykonywanie poprzez ustawienie licznika programu na adres startu i aktywację (przycisku, rozkazu, ) START Instrukcje są wtedy pobierane z pamięci i kolejno wykonywane, aż pojawi się instrukcja HLT, albo wcześniej wystąpi błąd (i wtedy: co dalej? ) Wykonywanie instrukcji składa się z dwóch etapów: - pobieranie instrukcji - wykonanie instrukcji
Pobieranie instrukcji Słowo z instrukcją musi zostać pobrane z pamięci do rejestru instrukcji (IR) W tym celu zawartość licznika programu (PC) przeniesiona zostaje do MAR i wykonana zostaje operacja odczytu pamięci słowo zostaje przeniesione do MBR Następnie instrukcja zostaje przeniesiona do IR, a wewnętrzna logika sterowania musi dodać 1 do zawartości PC, aby wskazywał instrukcję następną Taka sekwencja pobierania instrukcji jest niezmienna obowiązuje dla wszystkich instrukcji
Wykonywanie instrukcji Po zdekodowaniu kodu instrukcji (opcode) następuje faza wykonywania, unikalna dla każdej instrukcji Najczęściej jest to sekwencja operacji, jeżeli potrzeba, z wczytywaniem danych, obliczaniem adresu, itp. Po fazie wykonywania maszyna wraca do fazy pobierania Jeżeli instrukcja używa trybu pośredniego adresowania, potrzebna jest faza dodatkowa do obliczenia efektywnego adresu tzw. Faza opóźniająca (defer phase) POBIERANIE, WYKONYWANIE ORAZ OPÓŹNIENIE (ewentualnie) SKŁADAJĄ SIĘ NA CYKL INSTRUKCJI
Ścieżki przepływu pomiędzy rejestrami Faza pobierania i obliczania adresu (A) adres; (I) instrukcja; 1 zwiększenie o 1
Struktura magistrali Połączenia rejestrów mogłyby być realizowane jako każdy indywidualnie ze wszystkimi potrzebnymi NIEREALNE! Lub przy pomocy MAGISTRALI (bus), która łączy wszystkie rejestry Single bus magistrala pojedyncza wszystkie dane i adresy płyną przez jedną magistralę Multibus wiele magistral każda przeznaczona do wyznaczonych transferów, np. oddzielna dla danych a inna dla adresów MULTIBUS pozwala na równoległy przepływ operacje wykonywane równolegle
Przykładowa struktura magistrali w ASC [S.G.Shiva; Computer Organization, Design and Architecture] Przy wykonywaniu np dodawania BUS1 i BUS2 podadzą składniki a wynik zostanie podany na BUS3
Czas przesyłu Dane wchodzą do rejestru przy dodatnim (rosnącym) zboczu zegara Sygnał zegarowy jest generowany przez jednostkę sterującą (oraz inne sygnały sterujące do wyboru źródła i przeznaczenia) Zegar musi mieć podłączenie do wszystkich rejestrów Czas potrzebny na przeniesienie jednostki danych ze źródła do przeznaczenia poprzez ALU jest czasem TRANSFERU REJESTRU Częstotliwość zegara musi być maksymalnie taka, aby podczas okresu zegara zakończył się najwolniejszy transfer CZAS TRANSFERU REJESTRU DECYDUJE O PRĘDKOŚCI PRZETWARZANIA
Praca przy pojedynczej magistrali W takiej strukturze konieczne są rejestry buforowe. Przy dodawaniu, albo jeden ze składników, albo wynik, musi być zapisany w buforze, zanim można go przesłać do rejestru przeznaczenia Przy pojedynczej magistrali konieczne są więc dodatkowe transfery NIEKTÓRE OPERACJE BĘDĄ WYMAGAŁY WIĘCEJ CZASU Praca komputera z pojedynczą magistralą jest WOLNIEJSZA niż z multibus
ALU jednostka arytmetyczna i logiczna ALU jest strukturą, która wykonuje wszystkie działania arytmetyczne i logiczne W PROSTYM KOMPUTERZE zestaw instrukcji musi obejmować przynajmniej: - dodawanie dwóch liczb - obliczanie uzupełnienia dwójkowego do liczby - przesuwanie zawartości akumulatora o jeden bit w prawo, lub w lewo - bezpośredni transfer dowolnego ze swoich wejść na wyjście, aby umożliwić operacje przesyłu danych, typu IR MBR oraz MAR IR
Minimalny zestaw instrukcji: Założenie 1: Jednostka sterująca maszyny dostarczy odpowiednie sygnały sterujące do ALU, aby wykonać operacje (identyfikowane jako nazwy instrukcji) Założenie 2: Mamy 3 magistrale BUS1 i BUS2 na wejścia, BUS3 wyjście ALU; pozycje bitów numerowane są od lewej (15) do prawej (0) ADD: BUS3 BUS1 + BUS2 COMP: BUS3 BUS SHR: BUS3 BUS1 15 BUS1 15-1 SHL: BUS3 BUS 14-0 0 TRA1: BUS3 BUS1 TRA2: BUS3 BUS2
ADD Obwód dodawania musi się składać z 15 sumatorów pełnych i jednego pół-sumatora dla najmniej znaczącego bitu (0) Wyjście sumy każdego bitu jest bramkowane w bramce AND z sygnałem sterującym ADD Wyjście przeniesienia z każdego bitu jest wejściem na wejście bitu przeniesienia kolejnego bardziej znaczącego bitu. (Pół-sumator nie posiada wejścia na bit przeniesienia, a najbardziej znaczący sumator (15) bit przeniesienia podaje jako znacznik błędu do rejestru stanu PSR) Zawartość bitów akumulatora na magistrali BUS1 dodawana jest do zawartości MBR na BUS2 i zawartość zapisana zostaje w akumulatorze
Obwód dla pojedynczego bitu Bit 0 dla SHR nie jest podłączony do bitu mniej znaczącego BUS3, więc sygnał jest tracony
COMP Logiczny obwód to 16 bramek NOT, po jednej dla każdego bitu BUS1 Otrzymujemy w ten sposób uzupełnienie jedynkowe do liczby. Wyjście z każdej bramki NOT jest bramkowane na bramce AND z sygnałem COMP Wynik pośredni jest zawartością akumulatora i wynik zostaje zapisany w akumulatorze Dwójkowe uzupełnienie to uzupełnienie jedynkowe i dodanie 1 do wyniku (TCA uzupełnienie dwójkowe z zapisem w akumulatorze)
SHR Przesuwanie w prawo odbywa się poprzez połączenie każdego bitu BUS1 do sąsiadującego mniej znaczącego bitu BUS3 Transfer jest bramkowany przez sygnał sterujący SHR Najmniej znaczący bit z BUS1 (BUS1 0 ) jest tracony w procesie przesuwania Najbardziej znaczący bit BUS3 15 jest wypełniony bitem znaku
SHL Przesuwanie w lewo odbywa się poprzez połączenie każdego bitu BUS1 do sąsiadującego bardziej znaczącego bitu BUS3 Transfer jest bramkowany przez sygnał sterujący SHL Najbardziej znaczący bit z BUS1 (BUS1 15 ) jest tracony w procesie przesuwania Najmniej znaczący bit z BUS3 (BUS3 0 ) zostaje wypełniony zerem
TRA1 i TRA2 TRA1 każdy bit z BUS1 zostaje przeniesiony na odpowiadający mu bit BUS3, zawsze z bramkowaniem sygnałem TRA1 TRA2 każdy bit z BUS2 zostaje przeniesiony na odpowiadający mu bit BUS3, zawsze z bramkowaniem sygnałem TRA2
Schemat logiczny ALU dla typowego bitu
Rejestr stanu - PSR Bity PSR są uaktualniane równocześnie z aktualizacją akumulatora C N Z O I Zapisywane są następujące bity: - C bit przeniesienia (C out ) przy dodawaniu bit przeniesienia z najbardziej znaczącej pozycji - 15 - N znak ujemny (bit BUS3 15 ) - Z bit zera (gdy wszystkie bity BUS3 są zerami) - O bit przepełnienia (gdy podczas dodawania suma przekracza (2 15 1), czyli gdy oba bity znaku składników są jedynkami, a wyniku zerem lub odwrotnie), (lub przy SHL, gdy zmienia się bit znaku) - I przerwanie bit podawany z układu sterującego
CPU Central Processing Unit Jest to połączenie ALU i jednostki sterującej Jego funkcją jest GENEROWANIE SYGNAŁÓW STERUJĄCYCH potrzebnych przez inne bloki urządzenia, WE WCZEŚNIEJ OKREŚLONEJ KOLEJNOŚCI, tak, aby spowodować sekwencję działań wywoływanych przez każdą instrukcję Schemat blokowy Uwaga: CLOCK jest podłączony do wszystkich rejestrów
CPU DATA przerzutnik ułatwiający handshake (nawiązanie kontaktu) między CPU a urządzeniami I/O RUN przerzutnik ustawiany sygnałem START (np. z zewnętrznego panelu sterującego) aby uaktywnić dowolną mikrooperację STATE dwubitowy rejestr stanu umożliwiający rozróżnienie trzech faz (pobierz, opóźnij, wykonaj)
SYGNAŁY CPU Wejścia zewnętrzne: z rejestrów (PSR, IR, indeksowych), urządzeń I/O Wejścia wewnętrzne: zawartości (bity przerzutników) danych, rejestru stanu (STATE), rejestru RUN, zegar (CLOCK) Sygnały generowane na potrzeby wewnętrzne: sygnały zmiany stanu (pobierz, opóźnij, wykonaj, reset dla DATA, reset dla RUN) WYJŚCIA: - do pamięci (READ, WRITE) - do ALU (TRA1, TRA2, ADD, COMP, SHR, SHL) - do I/O (INPUT, OUTPUT) - do magistrali
Sygnały CPU do struktury magistrali ACC do BUS1 MAR do BUS1 IR 7-0 do BUS1 PC do BUS1 1 do BUS1-1 do BUS1 INDEX do BUS2 MBR do BUS2 1 do BUS2 SWITCHBANK do BUS2 BUS3 do ACC BUS3 do INDEX BUS3 do MAR BUS3 do MBR BUS3 do PC BUS3 do MONITOR BUS3 do IR DIL do ACC ACC do DOL
WEJŚCIE / WYJŚCIE Nawet najprostszy komputer musi posiadać przynajmniej jedno urządzenie wejściowe (np. klawiatura) i jedno wyjściowe (np. wyświetlacz, lub drukarka) Najprostszym jest programowane urządzenie I/O RWD podczas wykonywania tej instrukcji CPU wydaje komendę urządzeniu wejściowemu do przesłania słowa danych i czeka Kiedy urządzenie wejściowe ma gotowe słowo w buforze danych, informuje o tym CPU CPU bramkuje wtedy przepływ danych do ACC poprzez DIL (data input line)
WEJŚCIE / WYJŚCIE WWD CPU bramkuje wyjściowe słowo danych z ACC do DOL (data output line), wydaje komendę urządzeniu wyjściowemu do przyjęcia danych i czeka Gdy urządzenie wyjściowe poprzez swoje bramki umieści słowo danych w swoim buforze informuje CPU o akceptacji danych. CPU może przystąpić do wykonywania następnej instrukcji Wymieniane sygnały informacyjne handshaking W obu operacjach największy czas zabiera czekanie urządzenia I/O są zawsze znacznie wolniejsze od CPU WNIOSEK: Programowane urządzenia I/O są co prawda bardzo proste, ale bardzo wolne. W takim schemacie CPU nie może podczas czekania robić nic innego (nie otrzymało sygnału o zakończeniu instrukcji)
Rodzaje jednostek sterujących Każdy cykl instrukcji składa się z trzech faz, a każda z faz składa się z sekwencji mikrooperacji Mikrooperacja może oznaczać jedno z następujących działań: - pojedynczy transfer rejestru (zawartość jednego rejestru przeniesiona do innego rejestru) -złożony transfer rejestru, zatrudniający ALU (np. suma z dwóch rejestrów przeniesiona do trzeciego rejestru przeznaczenia) - operacja zapisu do pamięci lub odczytu z pamięci Jednostki sterujące mogą być: - wykonaną strukturą bramek, przerzutników i połączeń, która generuje sygnały sterujące (HCU hardwared control unit) - programowalną jednostką, gdzie mikrooperacje dla każdej instrukcji są zapisane w pamięci (MCU microprogrammed control unit) sygnały sterujące są generowane poprzez dekodowanie mikroinstrukcji
HCU może być: SYNCHRONICZNE każda operacja jest sterowana zegarem; stan jednostki sterującej można określić znając stan zegara Częstotliwość zegara musi być taka, że odległość między kolejnymi pulsami musi pozwolić na wykonanie najwolniejszej mikrooperacji. ASYNCHRONICZNE zakończenie jednej operacji wyzwala początek następnej; nie istnieje sygnał zegarowy Konstrukcja jest nieco bardziej skomplikowana, ale ograniczone funkcjonalnie asynchroniczne HCU mogą być znacznie szybsze od ich synchronicznych odpowiedników
Pamięć a prędkość procesora Czas dostępu pamięci równy jest dwóm czasom transferu rejestru Podczas odczytu, jeżeli adres jest bramkowany do MAR razem z instrukcją READ, dane będą dostępne w MBR na koniec następnego czasu transferu rejestru Podczas zapisywania, jeżeli dane i adres są odpowiednio dostarczone do MAR i MBR, z sygnałem sterującym WRITE, pamięć kończy zapisywanie danych z końcem drugiego czasu transferu rejestru Zawartość MAR nie może zostac zmieniona aż do zakończenia instrukcji READ lub WRITE
Charakterystyki czasowe pamięci
Cykl maszynowy W synchronicznych układach sterujących czas pomiędzy kolejnymi impulsami zegara takt - (czas transferu rejestru) jest określony przez operację transferu najwolniejszego rejestru. W przypadku ASC jest to sumator w ALU. Takt, inaczej czas transferu rejestru, nazywany jest czasem cyklu procesora, lub małym cyklem Przejście pomiędzy stanami pobierz, opóźnij, wykonaj konstrukcyjnie uważa się za dodatkowy mały cykl (CP 4 ) Główny cykl procesora składa się z kilku cykli małych Cykl instrukcji składa się z jednego lub więcej głównych cyklów procesora
MCU Mikroprogramy odpowiadające każdej instrukcji przechowywane są w pamięci ROM (Read Only Memory) Nazwa CROM oznacza pamięć sterującą Control ROM; µcu microcontrol unit µcu jest zwykle prostym HCU, którego funkcją jest wykonywanie mikroprogramów zawartych w CROM W CROM mikroprogram zapisywany jest w postaci binarnej Czas wymagany do wykonania instrukcji jest funkcją ilości mikroinstrukcji w danej sekwencji (każda mikroinstrukcja pobierana jest w dwóch taktach (czas transferu najwolniejszego rejestru + czas dostępu CROM) EMULACJA dowolnego procesora w złożonych systemach komputerowych polega na wpisaniu do pamięci mikroprogramów i tym samym utworzenie namiastki CROM
Schemat blokowy MCU
KONIEC CZĘŚCI PIĄTEJ Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl