Prosty procesor dla framgentu listy rozkazów MIPSa

Podobne dokumenty
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.02 Rok akad. 2011/ / 35

Architektura typu multi cycle

Przetwarzanie potokowe

Architektura typu Single-Cycle

Przetwarzanie potokowe pipelining

Architektura systemów komputerowych. Porównanie architektury jednycyklowej i wielocyklowej Zmiany w ścieŝce danych Cykle

Lista Rozkazów: Język komputera

Architektura Systemów Komputerowych

organizacja procesora 8086

Architektura potokowa RISC

Organizacja typowego mikroprocesora

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

LEKCJA TEMAT: Współczesne procesory.

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Programowalne układy logiczne

Struktura i działanie jednostki centralnej

Logiczny model komputera i działanie procesora. Część 1.

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Projekt prostego procesora

Budowa i zasada działania komputera. dr Artur Bartoszewski

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Programowanie Mikrokontrolerów

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

architektura komputerów w. 4 Realizacja sterowania

Podstawy Techniki Mikroprocesorowej

Projektowanie. Projektowanie mikroprocesorów

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura komputerów

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Budowa komputera Komputer computer computare

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

LEKCJA TEMAT: Zasada działania komputera.

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Magistrala systemowa (System Bus)

Metody optymalizacji soft-procesorów NIOS

Architektura komputerów

Architektura Systemów Komputerowych

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Podstawy Informatyki Układ sterujący

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Architektura komputerów

Architektura komputerów

Jerzy Nawrocki, Wprowadzenie do informatyki

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Algorytm mnożenia sekwencyjnego (wariant 1)

Architektura systemów komputerowych. Przetwarzanie potokowe I

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

UKŁADY MIKROPROGRAMOWALNE

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

Programowanie w asemblerze MIPSa

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Procedury. int mult (int mcand, int mlier){ int product = 0; while (mlier > 0) { product = product + mcand; mlier = mlier -1; } return product; }

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Przykładowe pytania DSP 1

Architektura komputerów Wykład 2

Programowanie Niskopoziomowe

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Architektura komputerów

Architektura komputerów

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Rozszerzalne kody operacji (przykład)

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

mgr inż. Tadeusz Andrzejewski JTAG Joint Test Action Group

1 Zarys architektury MIPS

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Układy kombinacyjne - przypomnienie

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

1 Ogolnie o asemblerach. 2 Zarys architektury MIPS

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Architektura systemów komputerowych

Wprowadzenie do informatyki ćwiczenia

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputerów, Informatyka, sem.iii. Sumatory

Architektura systemów komputerowych. dr Artur Bartoszewski

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

Architektura systemów komputerowych. Moduł kontrolera

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

drklaus 1 Model funkcjonalny komputera struktura, funkcje, komputer dr inż. Rafał KLAUS STRUKTURA I DZIAŁANIE KOMPUTERA

Przetwarzanie instrukcji w mikroprocesorach

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Mikrooperacje. Mikrooperacje arytmetyczne

Programowanie mikrokontrolerów. 8 listopada 2007

Procesory rodziny x86. Dariusz Chaberski

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

SYSTEM MIKROPROCESOROWY

Transkrypt:

p. /33 Prosty procesor dla framgent listy rozkazów IPSa (rysnki pochodza z ksiażki Hennessy ego i Pattersona)

p. 2/33 Wstęp Naszym celem będzie zaprojektowanie prostego procesora realizjacego fragment listy rozkazów IPS: rozkazy komnikacji z pamięcia: lw, sw rozkazy arytmetyczno-logiczne: add, sb, and, or, slt skoki beq, j Obejrzymy trzy rozwiazania: Implementacja jednocyklowa Implementacja wielocyklowa Przetwarzanie potokowe

p. 3/33 Implementacja jednocyklowa wstęp Wykonanie każdego z naszych rozkazów zaczyna się tak samo: Wysłanie licznika rozkazów (PC) do jednostki pamięci i odczytanie stamtad odpowiedniego rozkaz. Odczytanie wartości jednego lb dwóch rejestrów (specyfikowanych przez pięciobitowe pola rozkaz) Dalsze czynności zależa od rozkaz, chociaż sa one podobne, szczególnie dla rozkazów z jednej grpy. Każdy rozkaz (oprócz j) żyje np.. W naszej pierwszej implementacji wykonanie każdego rozkaz będzie zajmowało jeden cykl zegarowy. Zapis (do pamięci lb do rejestrów) następje raz w całym cykl (na zbocz opadajacym). Odczyt jest możliwy w każdym momencie.

p. 4/33 Ogólny schemat połączeń 4 PC ress Instrction Instrction Register # Registers ress Register # Register #

p. 5/33 Pobranie rozkaz Zakładamy, że mamy dwie jednostki pamięci: osobna dla rozkazów (instrction ) oraz dla danych ( ). 4 PC address Instrction Instrction

p. 6/33 Rejestry i Register nmbers 5 5 5 register register 2 register Registers 2 4 operation Zero reslt Reg a. Registers b.

p. 7/33 Pamięć danych i rozszerzanie danych em ress 6 Sign 32 etend em a. nit b. Sign-etension nit

p. 8/33 Skok warnkowy Wykonanie rozkaz skok warnkowego polega na: Odczytani dwóch rejestrów Porównani ich przez (operacja odejmowania) Przekształceni stałej: rozszerzenie stałej 6-bitowej do 32-bitowej i przesnięcie o dwa bity w lewo Dodani stałej do PC+4

p. 9/33 Skok warnkowy PC+4 from instrction path Shift left 2 Sm Branch target Instrction register register 2 register Registers 2 4 operation Zero To branch control logic Reg 6 Sign 32 etend

p. /33 Uwaga o opóźnionych skokach IPS realizje tzw. opóźnione skoki (delayed branches) rozkaz znajdjacy się w pamięci bezpośrednio za rozkazem skok wykonje się niezależnie od tego, czy skok następje, czy nie. Nie implementjemy tego rozwiazania. Podobnie zreszta jak SPI (chociaż tam można je wymsić, rchamiajac program z odpowiednim parametrem).

p. /33 Układ dla rozkazów arytm.-log. oraz lw, sw Instrction register register 2 Registers register Reg 2 Src 4 operation Zero reslt ress em emtoreg 6 Sign 32 etend em

p. 2/33 PCSrc 4 reslt Shift left 2 PC address Instrction Instrction register register 2 Registers register Reg 2 Src 4 operation Zero reslt ress em emtoreg 6 Sign 32 etend em

Formaty rozkazów przypomnienie Typ R: 6 bitów kod operacji (bity 3:26) 5 bitów nmer rejestr źródłowego, rs (bity 25:2) 5 bitów nmer rejestr źródłowego 2, rt (bity 2:6) 5 bitów nmer rejestr wynikowego, rd (bity 5:) 5 bitów shamt (my je ignorjemy) 6 bitów rodzaj operacji, fnkcja (bity 5:) Typ I, lw, sw: 6 bitów kod operacji (bity 3:26) 5 bitów nmer rejestr bazowego adres (bity 25:2) 5 bitów nmer rejestr (źródłowego dla sw, wynikowego dla lw (bity 2:6) 6 bitów stała (bity 5:) Typ I, beq: jak wyżej, oba nmery rejestów to rejestry źródłowe do porównania. p. 3/33

p. 4/33 PCSrc 4 reslt Reg Shift left 2 PC address Instrction [25:2] register Instrction [2:6] Src register 2 Zero Instrction [3:] 2 reslt Instrction Instrction [5:] register Registers RegDst em ress emtoreg Instrction [5:] 6 Sign 32 etend control em Instrction [5:] Op

p. 5/33 Sterowanie Na podstawie bitów 3:26 (kod operacji) generowane sa odpowiednie sygnały sterjace (prosty kład kombinacyjny) Sygnał Op jest dwbitowy: lw lb sw (dodawaj), - beq (odejmj), - typ R Rodzaj operacji dla przy kodzie dospecyfikowywany przez bity fnkcyjne 5:

p. 6/33 Pełny kład (ale jeszcze bez skok j) 4 reslt Instrction [3 26] Control RegDst Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [25 2] register Instrction [2 6] register 2 Zero Instrction [3 ] 2 reslt Instrction Instrction [5 ] register Registers ress Instrction [5 ] 6 Sign 32 etend control Instrction [5 ]

p. 7/33 add $t, $t, $t2 4 reslt Instrction [3 26] Control RegDst Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [25 2] register Instrction [2 6] register 2 Zero Instrction [3 ] 2 reslt Instrction Instrction [5 ] register Registers ress Instrction [5 ] 6 Sign 32 etend control Instrction [5 ]

p. 8/33 lw $t, 8($t2) 4 reslt Instrction [3 26] Control RegDst Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [25 2] register Instrction [2 6] register 2 Zero Instrction [3 ] 2 reslt Instrction Instrction [5 ] register Registers ress Instrction [5 ] 6 Sign 32 etend control Instrction [5 ]

p. 9/33 beq $t, $t, 8 4 reslt Instrction [3 26] Control RegDst Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [3 ] Instrction Instrction [25 2] Instrction [2 6] Instrction [5 ] register register 2 register 2 Registers Zero reslt ress Instrction [5 ] 6 Sign 32 etend control Instrction [5 ]

p. 2/33 Dodajemy skok bezwarnkowy 4 Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 PC + 4 [3 28] reslt Instrction [3 26] Control RegDst Jmp Branch em emtoreg Op em Src Reg Shift left 2 PC address Instrction [3 ] Instrction Instrction [25 2] Instrction [2 6] Instrction [5 ] register register 2 register 2 Registers Zero reslt ress Instrction [5 ] 6 Sign 32 etend control Instrction [5 ]

p. 2/33 Wady i zalety implementacji jednocyklowej Przedstawiona implementacja nie jest żywana w praktyce Konieczność dplikacji sprzęt dodatkowe smatory Cykl zegarowy dopasowany do najwolniejszego rozkaz (operacje na pamięci) Zaleta: prostota Inne rozwiazania: zmienna dłgość cykl skomplikowane technicznie, implementacja wielocyklowa o tym za chwilę, przetwarzanie potokowe o tym za tydzień,...

Wady i zalety implementacji jednocyklowej Przykładowe czasy działania naszych podkładów i wykonywania rozkazów: Iem 2 ps, Reg, 2, Dem 2, Reg Rozkaz typ R: 2 + + 2 + + = 6 lw: 2 + + 2 + 2 + = 8 sw: 2 + + 2 + 2 + = 7 Skok warnkowy: 2 + + 2 + + = 5 Skok bezwarnkowy: 2 + + + + = 3 Potrzebjemy zatem cykl dłgości 8 ps. Rozważmy następjacy zestaw rozkazów: 25% odczytów pamięci, % zapisów, 45% rozkazów typ R, 5% skoków warnkowych, 5% skoków bezwarnkowych Średni czas wykonania instrkcji:, 25 8 +, 7 +, 45 6 +, 5 5 +, 5 3 = 63 ps. p. 22/33

p. 23/33 Implementacja wielocyklowa Krótszy cykl zegarowy rozkazy dzielone na fazy (kroki), każda faza jeden cykl. Rozkazy moga mieć różne liczby faz. Jedna (bez żadnych dodatkowych smatorów). Wspólna pamięć program i danych. Kilka dodatkowych rejestrów przechowjacych dane potrzebne w kolejnych fazach PC ress Instrction register A Instrction or emory emory register Register # Registers Register # Register # B Ot

p. 24/33 Implementacja wielocyklowa cd. Każdy z rejestrów DR, A, B, Ot przechowje dane z fazy k dla fazy k + Rejestr IR przechowje rozkaz przez wszystkie fazy jego wykonania. Dlatego tylko IR potrzebje sygnał zezwolenia na zapis. Niektóre kłady będa żywane więcej niż raz na rozkaz, dlatego msimy dodać kilka mltiplekserów (i rozszerzyć wcześniejsze) np.: mamy teraz dwa źródła adresów dla pamięci wylicza adresy skoków

p. 25/33 Implementacja wielocyklowa (bez skoków j) PC ress emory em Instrction [25 2] Instrction [2 6] Instrction [5 ] Instrction register Instrction [5 ] Instrction [5 ] register register 2 Registers register 2 A B 4 2 3 Zero reslt Ot emory register 6 Sign 32 etend Shift left 2

p. 26/33 Pełna implementacja wielocyklowa PCCond PCSorce PC ress emory em Instrction [25-] Instrction [3 26] Instrction [25 2] Instrction [2 6] Instrction [5 ] Instrction register Instrction [5 ] emory register PC IorD em em emtoreg IR Otpts Control Op [5 ] Instrction [5 ] Op SrcB SrcA Reg RegDst register register 2 Registers register 6 Sign 32 etend 2 A B Shift left 2 4 26 Shift 28 left 2 2 3 PC [3 28] Zero reslt control Jmp address [3 ] Ot 2 Instrction [5 ]

p. 27/33 F - Pobranie rozkaz IR <= emory[pc] PC <= PC + 4 Powyższe operacje moga wykonywać się równolegle. Sygnały sterjace: em - IR - IorD - SrcA - (PC) SrcB - (stała 4) Op (dodawanie) PCSorce PC

p. 28/33 F2 - Dekodowanie oraz odczyt rejestrów A <= Reg[IR[25:2]] B <= Reg[IR[2:6]] Ot <= PC + (sign-etend (IR[5-] «2) Powyższe operacje wykonjemy przy każdej instrkcji - niezależnie od kod operacji. Zaważmy, że nawet jeśli konkretna instrkcja tego nie wymaga, to wykonane operacje w niczym nie zaszkodza. Sygnały sterjace: SrcA - (PC) SrcB - (przesnięta i rozszerzona stała z rozkaz) Op - (dodawanie)

p. 29/33 F3 - Wykonanie, obliczenie adres lb skok Pierwszy cykl, który zależy od kod operacji. wykonje jedna z czterech możliwych akcji (na danych przygotowanych w poprzednich cyklach): Obliczenie adres: Ot <= A + sign-etend (IR[5:]) SrcA -, SrcB -, Op - (dodawanie) Operacja arytmetyczno-logiczna (typ R): Ot <= A op B SrcA -, SrcB -, Op - (decydje pole fnk.) Skok warnkowy: if (A==B) PC <=Ot SrcA -, SrcB -, Op - (odejmowanie), PCCond -, PCSorce - Skok: PC <= konkatenacja(pc[3:28], IR[25:], ) PC -, PCSorce -

p. 3/33 F4 - Dostęp do pamięci lb dokończenie R- rozkaz Dostęp do pamięci: DR <= emory [Ot] lb emory [Ot] <= B em lb em -, IorD - Dokończenie rozkaz arytmetyczno-logicznego: Reg[IR[5-]] <= ot RegDst -, Reg -, emtoreg -,

p. 3/33 F5 - Dokończenie odczyt pamięci Reg[IR[2-6]] <= DR RegDst -, Reg -, emtoreg -,

p. 32/33 Jednosta sterjąca Tym razem jednostaka sterjaca będzie kładem sekwencyjnym, dokładniej atomatem oore a. Wejście kod operacji, stany to fazy, wyjścia sygnały sterjace. Start Instrction fetch em SrcA = IorD = IR SrcB = Op = PC PCSorce = Instrction decode/ Register fetch SrcA = SrcB = Op = (Op = 'LW') or (Op = 'SW') (Op = R-type) (Op = 'BEQ') (Op = 'J') emory-reference FS (Figre 5.33) R-type FS (Figre 5.34) Branch FS (Figre 5.35) Jmp FS (Figre 5.36)

p. 33/33 Start Instrction fetch em SrcA = IorD = IR SrcB = Op = PC PCSorce = Instrction decode/ register fetch SrcA = SrcB = Op = (Op = 'LW') or (Op = 'SW') (Op = R-type) (Op = 'BEQ') (Op = 'J') 2 emory address comptation SrcA = SrcB = Op = 6 Eection SrcA = SrcB = Op = 8 Branch completion SrcA = SrcB = Op = PCCond PCSorce = 9 Jmp completion PC PCSorce = 3 (Op = 'LW') emory access (Op = 'SW') emory access 5 7 R-type completion em IorD = em IorD = RegDst = Reg emtoreg = 4 emory read completon step RegDst = Reg emtoreg =