Architektura systemów komputerowych
Plan wykładu. Implementacja kontrolera. 2. Projekt P kontroler. 3. Projekt P synteza kontrolera. Cele Znajomość architektury oraz technik projektowania mikroprocesorów. Poznanie zasad projektowania kontrolera.
Implementacja kontrolera
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa mikroprogramowanie Układ kontrolera steruje przepływem sterowania wewnątrz procesora, koordynując pracę poszczególnych modułów CPU. Pojęcia: funkcje kontrolera sygnały sterujące synteza kontrolera
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa mikroprogramowanie Układ kontrolera steruje przepływem sterowania wewnątrz procesora, koordynując pracę poszczególnych modułów CPU. Pojęcia: funkcje kontrolera sygnały sterujące synteza kontrolera W ogólności kontroler implementuje model rozkazów CPU, realizując zadania: szeregowania zadań dla modułów CPU, synchronizacji operacji: pobrania rozkazu, dekodowania i wykonania rozkazu, zapisania wyników wykonania operacji. Pewne typu procesorów posiadają kontroler rozproszony, realizujący złożone funkcje np. wykonanie rozkazów poza kolejnością, przetwarzanie potokowe.
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa mikroprogramowanie Układ kontrolera steruje przepływem sterowania wewnątrz procesora, koordynując pracę poszczególnych modułów CPU. Pojęcia: funkcje kontrolera sygnały sterujące synteza kontrolera W ogólności kontroler implementuje model rozkazów CPU, realizując zadania: szeregowania zadań dla modułów CPU, synchronizacji operacji: pobrania rozkazu, dekodowania i wykonania rozkazu, zapisania wyników wykonania operacji. Pewne typu procesorów posiadają kontroler rozproszony, realizujący złożone funkcje np. wykonanie rozkazów poza kolejnością, przetwarzanie potokowe. Układ kontrolera generuje sygnały sterujące dla modułów CPU. W ogólności są to: sygnały sterujące rejestrami: włączanie, wyłączanie, zatrzaskiwanie danych, sygnały sterujące magistralami: blokowanie dostępu do magistrali, przekierowania, sygnały faz rozkazu, sygnały sterujące pamięcią. Sygnały sterujące można łączyć z sygnałami faz w równania rozkazów (funkcje logiczne).
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa mikroprogramowanie Układ kontrolera steruje przepływem sterowania wewnątrz procesora, koordynując pracę poszczególnych modułów CPU. Pojęcia: funkcje kontrolera sygnały sterujące synteza kontrolera Układu kontrolera może zrealizować stosując: logikę układową (ang. hard-wired, hardware): - stosuje się dowolne elementy logiczne, układu PLA, FPGA, pamięć ROM/RAM itp. - uzyskuje się szybkie urządzenie, ale dedykowane. programowanie sprzętowe (ang. firmware): - stosując mikroprogramowanie, - kontroler przypomina komputer posiada mikroinstrukcje oraz mikroprogram, - moduł ma elastyczną konstrukcję: możliwe są zmiany w sposobie wykonania rozkazów lub kompletna zmiana całego zbioru instrukcji, cena - układ ma mniejszą szybkość działania niż w logice układowej, głównie wynikającą z szybkości działania pamięci mikrokomputera. złożoność układu W ogólności kontroler implementuje model rozkazów CPU, realizując zadania: szeregowania zadań dla modułów CPU, synchronizacji operacji: pobrania rozkazu, dekodowania i wykonania rozkazu, zapisania wyników wykonania operacji. Pewne typu procesorów posiadają kontroler rozproszony, realizujący złożone funkcje np. wykonanie rozkazów poza kolejnością, przetwarzanie potokowe. Układ kontrolera generuje sygnały sterujące dla modułów CPU. W ogólności są to: sygnały sterujące rejestrami: włączanie, wyłączanie, zatrzaskiwanie danych, sygnały sterujące magistralami: blokowanie dostępu do magistrali, przekierowania, sygnały faz rozkazu, sygnały sterujące pamięcią. Sygnały sterujące można łączyć z sygnałami faz w równania rozkazów (funkcje logiczne).
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa mikroprogramowanie Ścieżka danych. wy A LA we B m LB C m2 S m3 LC m A, B, C rejestry typu latch.
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora LA we B m LB S m3 LC m A, B, C rejestry typu latch. ścieżka danych we A C kod rozkazu wy S B m m m2 m3 Układ może realizować operacje: ładowanie liczby do rejestru (ld_reg), iloczyn logiczny rejestrów prosty (and_reg) i zanegowany (nand_reg), sumę logiczną rejestrów prostą (or_reg) i zanegowaną (nor_reg), sumę arytmetyczną rejestrów (sum_reg), ładowanie rejestru A zawartością B (ld_ab). Kontroler musi generować sygnały: m wybór źródła danych dla rejestrów, m wybór trybu pracy sumatora, m 2 wybór funkcji logicznej, m 3 wybór źródła wyniku, L X sygnał zapisu danej do rejestru, gdzie X = A, B lub C. C m2 kontroler LC mikroprogramowanie wy A LB logika układowa Ścieżka danych. LA wstęp
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa mikroprogramowanie Ścieżka danych. wy A LA we B m LB S m3 LC m Układ może realizować operacje: ładowanie liczby do rejestru (ld_reg), iloczyn logiczny rejestrów prosty (and_reg) i zanegowany (nand_reg), sumę logiczną rejestrów prostą (or_reg) i zanegowaną (nor_reg), sumę arytmetyczną rejestrów (sum_reg), ładowanie rejestru A zawartością B (ld_ab). Kontroler musi generować sygnały: m wybór źródła danych dla rejestrów, m wybór trybu pracy sumatora, m 2 wybór funkcji logicznej, m 3 wybór źródła wyniku, L X sygnał zapisu danej do rejestru, gdzie X = A, B lub C. C m2 A, B, C rejestry typu latch. Ładowanie danej do rejestru z wejścia: kod rozkazu m m m2 m3 LA LB A=we - B=we - LC A=we (kod rozkazu), B=we Iloczyn dwóch rejestrów: kod rozkazu m m m2 m3 LA A=A and B B=A and B A=A and B, B=A and B LB LC
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa Ścieżka danych. mikroprogramowanie wy A LA we B LB m C m2 S m3 LC m A, B, C rejestry typu latch. Tabela logiczna kontrolera: kod rozkazu m m m2 m3 LA nop A=we B=we A=A and B B=A and B A=A nand B B=A nand B A=A or B B=A or B A=A nor B B=A nor B A=A+B B=A+B A=B LB LC m = c + c + c3 c3 c c m m = c2c3 + c + cc3 c2 c3 c c c3 m
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa Ścieżka danych. mikroprogramowanie wy A LA we B LB m C m2 S m3 LC m A, B, C rejestry typu latch. Tabela logiczna kontrolera: kod rozkazu m m m2 m3 LA nop A=we B=we A=A and B B=A and B A=A nand B B=A nand B A=A or B B=A or B A=A nor B B=A nor B A=A+B B=A+B A=B LB LC m2 = cc + c2c3 m3 = cc + cc2c3 m3 = c2c3 + cc2c3 LA = cc2c3 + cc2c3 + ccc3 + ccc2c3 + ccc2c3 + ccc2c3 + ccc2c3 LB = cc2c3 + ccc3 + ccc2c3 + ccc2c3 + ccc2c3 + ccc2c3 LC = c + c + c 2 c 3
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp Ścieżka danych. logika układowa LA we mikroprogramowanie wy A B m LB C m2 S m3 LC m A, B, C rejestry typu D. Założenia budowy kontrolera mikroprogramowanego jak i jego prototyp opracował prof. Maurice V. Wilkes, twórca komputera EDSAC pierwszego komputera wewnętrznym programem, laureat nagrody Turinga z 967r, współautor książki The Preparation of Programs for an Electronic Digital Computer z 95, w której zawarto koncepcję bibliotek programistycznych. Maurice V. Wilkes (93-2)
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp Ścieżka danych. logika układowa LA we mikroprogramowanie wy A B m LB S Format mikrooperacji jest związany z sygnałami jakie ma generować kontroler. W tym przypadku może to być: m m m2 m3 LA LB LC adr_ctrl m3 LC m Założenia dla kontrolera: sygnały -bitowe: m, m, m, 2 sygnał 2-bitowy: m, 3 sygnał ładowania rejestru L, L, L, A B C rozpoznawanie 3-tu rozkazów, wykonanie najdłuższego rozkazu zajmuje dwa cykle zegara. C m2 A, B, C rejestry typu D. Ładowanie danej do rejestru z wejścia: A/B=we: t: m =, LA/B= / Iloczyn dwóch rejestrów: A/B=A and B: t: m2 =, m3 =, LC= / t: m =, LA/B= / Suma dwóch rejestrów: A/B=A+B: t: m =, m3 =, LC= / t: m =, LA/B= /
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp Ścieżka danych. logika układowa wy A LA we B mikroprogramowanie LB m S Tabela logiczna kontrolera: kod rozkazu m m m2 m3 LA LB LC f r - - - B=A and B... A=A+B... A=B m3 LC m nop A=we B=we A=A and B C m2 A, B, C rejestry typu D. Algorytm działania kontrolera:. oczekiwanie na wyzwolenie narastającym zboczem zegara, 2. jeśli odczytany bit r= to opadające zbocze zegara spowoduje wpisanie do rejestry stanu bitu f i wybranie funkcji nop, 3. jeśli odczytany bit r= to do rejestru stanu wpisanie wartości bitu f. W ogólności układ sekwencyjny kontrolera może pracować w większej liczbie stanów niż 2.
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa Ścieżka danych. wy A LA we B mikroprogramowanie m LB C m2 S LC m3 m A, B, C rejestry typu D. Schemat blokowy kontrolera: adr [n..] US RAM/ROM SEQ kod rozkazu m adr [] (długość słowa danych b) m m2 m3 LA LB LC
Implementacja kontrolera metody projektowania i implementacji kontrolera procesora wstęp logika układowa Ścieżka danych. wy A LA we B mikroprogramowanie m LB C m2 S LC m3 m A, B, C rejestry typu D. Schemat blokowy kontrolera: kod rozkazu m adr [n..] US układ sekwencyjny asynchroniczny SEQ RAM/ROM adr [] (długość słowa danych b) m m2 m3 LA LB LC
Projekt P kontroler
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 PC + moduł kontrolera SEXT 2 SHL 4 sygnały, 2, 3 2 Ścieżka danych CPU. + moduły ścieżki D Smem 3 8 IR 2 4,5 2,3 6,7 SEG 2 6 2,3 4,5, 2,3 Sadr S 6 H Dwe Z/O L ALU RFILE 2 NAT Amem MBR RAM MAR IR SEXT 2 8 Aadr Badr Dwe Z/O A B 8 8 A W B STAN RSTAN 8 R
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 PC + moduł kontrolera SEXT 2 SHL 4 sygnały, 2, 3 2 Moduły ścieżki danych CPU. + moduły ścieżki D Smem 3 8 IR 2 4,5 2,3 6,7 SEG 2 6 2,3 4,5, 2,3 Sadr S 6 H Dwe Z/O L ALU RFILE 2 NAT Amem MBR RAM MAR IR SEXT 2 8 Aadr Badr Dwe Z/O A B 8 8 A W B STAN RSTAN 8 R
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 PC_src IR_size ADR_mod SEXT + ADRMAN IR_set SL_sel SL_lh IR SEG kontroler SL_fun IR MBR 8 ALU_fun A_sel IR_set NAT MAR MAR_set RAM 2 SEXT moduł kontrolera 2 2 PC SHL 4 sygnały, 2, 3 + moduły ścieżki ALU RFILE B_sel R_set NAT_set ALU_src RSTAN REG_fun RSTAN_set MEM_fun MBR_set WB_src R REG_src
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 PC_src IR_size ADR_mod SEXT + ADRMAN IR_set SL_sel SL_lh IR SEG kontroler SL_fun IR MBR 8 ALU_fun A_sel IR_set NAT MAR MAR_set RAM 2 SEXT moduł kontrolera 2 2 PC SHL 4 sygnały, 2, 3 + moduły ścieżki ALU RFILE B_sel R_set NAT_set ALU_src RSTAN REG_fun RSTAN_set MEM_fun MBR_set WB_src R REG_src
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 moduły ścieżki sygnały moduł kontrolera W projektowanym CPU moduł kontrolera będzie mikroprogramowanym układem cyfrowym synchroniczno-asynchronicznym. Pojęcia: cykl rozkazowy podmoduły kontrolera źródła sygnałów
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 moduły ścieżki sygnały moduł kontrolera W projektowanym CPU moduł kontrolera będzie mikroprogramowanym układem cyfrowym synchroniczno-asynchronicznym. Pojęcia: cykl rozkazowy podmoduły kontrolera źródła sygnałów Cykl rozkazowy CPU będzie składał się z: pobrania rozkazu, dekodowania instrukcji, pobrania argumentów, wykonania rozkazu, zapisania wyników, przerwania. W projekcie przewidziano możliwość obsługi jednego przerwania. Adres procedury obsługi tego przerwania będzie znajdował się w 4tej komórce RAM gdzie powinna znajdować się instrukcja dalekiego skoku.
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 moduły ścieżki sygnały moduł kontrolera W projektowanym CPU moduł kontrolera będzie mikroprogramowanym układem cyfrowym synchroniczno-asynchronicznym. Pojęcia: cykl rozkazowy podmoduły kontrolera źródła sygnałów Cykl rozkazowy CPU będzie składał się z: pobrania rozkazu, dekodowania instrukcji, pobrania argumentów, wykonania rozkazu, zapisania wyników, przerwania. W projekcie przewidziano możliwość obsługi jednego przerwania. Adres procedury obsługi tego przerwania będzie znajdował się w 4tej komórce RAM gdzie powinna znajdować się instrukcja dalekiego skoku. Zadania w obrębie etapów cyklu rozkazowego będzie zakodowana przy pomocy mikrorozkazów. Kontroler będzie zbudowany z modułów, w szczególności będzie zawierał: pamięć mikroinstrukcji, układ sekwensera (układ asynchroniczny), logikę towarzyszącą. Synteza modułów kontrolera wymaga opracowania diagramu pracy.
Projekt P kontroler kontroler CPU dla założeń z wykładu nr 4 moduły ścieżki W projektowanym CPU moduł kontrolera będzie mikroprogramowanym układem cyfrowym synchroniczno-asynchronicznym. sygnały moduł kontrolera Pojęcia: cykl rozkazowy podmoduły kontrolera źródła sygnałów IR 2,3 6,7 IR Ścieżkę danych kontrolują dwa rodzaje sygnałów: sygnały pochodzące z kodu instrukcji: 4,5 SEL 2,3 4,5, 2,3 2 RFILE 2 2 Sadr Aadr Badr sygnały generowane przez kontroler: - wymuszające zapis danych do rejestrów (np. IR_set), - sterujące przepływem danych (np. A_sel), - wyboru funkcji bloków funkcjonalnych (np. ALU_fun), - sterujące zapisem/odczytem RAM tylko, gdy CPU nie posiada dedykowanego kontrolera pamięci. Cykl rozkazowy CPU będzie składał się z: pobrania rozkazu, dekodowania instrukcji, pobrania argumentów, wykonania rozkazu, zapisania wyników, przerwania. W projekcie przewidziano możliwość obsługi jednego przerwania. Adres procedury obsługi tego przerwania będzie znajdował się w 4tej komórce RAM gdzie powinna znajdować się instrukcja dalekiego skoku. Zadania w obrębie etapów cyklu rozkazowego będzie zakodowana przy pomocy mikrorozkazów. Kontroler będzie zbudowany z modułów, w szczególności będzie zawierał: pamięć mikroinstrukcji, układ sekwensera (układ asynchroniczny), logikę towarzyszącą. Synteza modułów kontrolera wymaga opracowania diagramu pracy.
Projekt P synteza kontrolera
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Kontroler projektowanego CPU musi spełniać pewne założenia konstrukcyjne, wynikające w dużej mierze z architektury procesora. Pojęcia: stany pracy diagram pracy mikroinstrukcja
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Kontroler projektowanego CPU musi spełniać pewne założenia konstrukcyjne, wynikające w dużej mierze z architektury procesora. Pojęcia: stany pracy diagram pracy mikroinstrukcja CPU będzie posiadał następujące stabilne stany pracy: RST ustawianie CPU w stan początkowy, IF pobranie rozkazu ID zdekodowanie rozkazu, OF pobranie operandów, EX wykonanie rozkazu AC obliczenie adresu w pamięci, MEM wykonanie operacji na pamięci, WB zapisanie wyników. W każdym ze stanów znajdują się podstany, przeznaczone dla automatu asynchronicznego, zdefiniowane w mikroinstrukcjach.
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Kontroler projektowanego CPU musi spełniać pewne założenia konstrukcyjne, wynikające w dużej mierze z architektury procesora. Pojęcia: stany pracy diagram pracy mikroinstrukcja CPU będzie posiadał następujące stabilne stany pracy: RST, IF, ID, OF, EX, AC, MEM, oraz WB. IF INT ID MEM WB OF RST AC MEM EX AC
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Kontroler projektowanego CPU musi spełniać pewne założenia konstrukcyjne, wynikające w dużej mierze z architektury procesora. Pojęcia: stany pracy diagram pracy mikroinstrukcja CPU będzie posiadał następujące stabilne stany pracy: RST, IF, ID, OF, EX, AC, MEM, oraz WB. MEM_fun MBR_set MAR_set WB_src PC_src IR_size ADR_mod IR_set IR_set NAT_set SL_sel SL_fun SL_lh A_sel B_sel REG_src REG_fun ALU_src ALU_fun R_set RSTAN_set Format mikroinstrukcji będzie następujący: Sygnał: MEM_fun bit ( odczyt, / zapis), IR_size 2 bity liczba bajtów rozkazu, ADR_mod 2 bity rodzaj trybu adresowania, SL_sel 2 bity źródło selektora segmentu, REG_src 2 bity źródło zapisu dla rejestrów, ALU_fun 4 bity funkcja ALU. Długość słowa operacyjnego pamięci mikroinstrukcji wynosi 3 bitów. Ponadto należy uwzględnić pola dodatkowe. IF INT ID MEM WB OF RST AC MEM EX AC
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Procesory są układami złożonymi konstrukcyjnie, z tego powodu w syntezie takich układów trudno jest zastosować metody klasyczne. Pojęcia: technologie metody
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Procesory są układami złożonymi konstrukcyjnie, z tego powodu w syntezie takich układów trudno jest zastosować metody klasyczne. Pojęcia: technologie metody W konstrukcjach prototypowych (poza przemysłowych) w syntezie modułów CPU, w tym kontrolera stosuje się układy programowalne PLD: PAL, PLE, PLA, GAL, FPGA (Field Programmable Gate Array). Układy FPGA mogą posiadać w swojej strukturze programowalną pamięć RAM(ROM), którą można wykorzystać jako pamięć mikroinstrukcji. Proces projektowy odbywa się przy pomocy dedykowanych płyt prototypowych, zawierających, poza układem FPGA, urządzenia towarzyszące.
Projekt P synteza kontrolera synteza fragmentu kontrolera CPU dla założeń z wykładu nr 4 założenia synteza Procesory są układami złożonymi konstrukcyjnie, z tego powodu w syntezie takich układów trudno jest zastosować metody klasyczne. Pojęcia: technologie metody Moduły CPU, po podziale na mniejsze części, można syntezować metodami klasycznymi takie podejście utrudnia jednak procesy optymalizacji zmniejszając jakość układu. W konstrukcjach prototypowych (poza przemysłowych) w syntezie modułów CPU, w tym kontrolera stosuje się układy programowalne PLD: PAL, PLE, PLA, GAL, FPGA (Field Programmable Gate Array). Zazwyczaj na etapie prototypowania stosuje się języki opisu sprzętu HDL. Na przykład w języku VHDL każdy moduł zawierający blok process po syntezie będzie układem sekwencyjnym, czyli taki opis pozwoli na uzyskanie funkcjonalności modułu kontrolera. Należy pamiętać, że praca z językami HDL wymaga uwzględnienia następujących zasad: projektuje się rzeczywiste urządzenie, którego opis ma charakter sekwencyjny, wynik syntezy generuje pewną liczbę równolegle działających bloków, które nie zawsze są wprost definiowane w języku HDL. Układy FPGA mogą posiadać w swojej strukturze programowalną pamięć RAM(ROM), którą można wykorzystać jako pamięć mikroinstrukcji. Proces projektowy odbywa się przy pomocy dedykowanych płyt prototypowych, zawierających, poza układem FPGA, urządzenia towarzyszące.
Koniec wykładu