Architektura potokowa RISC

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

Architektura typu Single-Cycle

Przetwarzanie potokowe pipelining

Architektura mikroprocesorów TEO 2009/2010

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura Systemów Komputerowych

Architektura komputerów

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

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

Architektura typu multi cycle

Architektura Systemów Komputerowych

Projektowanie. Projektowanie mikroprocesorów

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

Organizacja typowego mikroprocesora

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

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

Architektura Systemów Komputerowych. Architektura potokowa Klasyfikacja architektur równoległych

Architektura komputerów

Wydajność obliczeń a architektura procesorów

Struktura i działanie jednostki centralnej

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

Architektura systemów komputerowych. Przetwarzanie potokowe I

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Programowalne układy logiczne

Adam Korzeniewski p Katedra Systemów Multimedialnych

Budowa komputera Komputer computer computare

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Architektura komputerów

Architektura komputerów

Budowa i zasada działania komputera. dr Artur Bartoszewski

Podstawy Techniki Mikroprocesorowej

Architektura mikroprocesorów z rdzeniem ColdFire

architektura komputerów w. 4 Realizacja sterowania

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura systemów komputerowych

Architektura Systemów Komputerowych

Architektura komputerów

Architektura komputerów

Zrównoleglenie i przetwarzanie potokowe

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Programowanie współbieżne Wykład 2. Iwona Kochańska

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

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

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

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

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

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Analiza i Synteza Układów Cyfrowych

Magistrala systemowa (System Bus)

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

Przykładowe pytania DSP 1

LEKCJA TEMAT: Współczesne procesory.

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

Metody optymalizacji soft-procesorów NIOS

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Energooszczędne programowanie

ARCHITEKTURA PROCESORA,

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Prosty procesor dla framgentu listy rozkazów MIPSa

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie do architektury komputerów. Budowa jednostki wykonawczej procesora Potokowa jednostka wykonawcza Przetwarzanie wielopotokowe

Architektura systemów komputerowych. dr Artur Bartoszewski

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Architektura komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Architektura komputerów

Mikroprocesor Operacje wejścia / wyjścia

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura komputerów Wykład 2

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Budowa Mikrokomputera

Mikroprocesory rodziny INTEL 80x86

LEKCJA TEMAT: Zasada działania komputera.

Lista Rozkazów: Język komputera

Architektura komputerów

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Architektura komputerów. Asembler procesorów rodziny x86

Podstawy Informatyki JA-L i Pamięci

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Architektura komputerów

Stronicowanie w systemie pamięci wirtualnej

Architektura komputerów

Podstawy Informatyki Systemy sterowane przepływem argumentów

Architektura systemów komputerowych. dr Artur Bartoszewski

organizacja procesora 8086

Projekt prostego procesora

2. Architektura mikrokontrolerów PIC16F8x... 13

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

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

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Transkrypt:

Architektura potokowa RISC

Podział zadania na odrębne części i niezależny sprzęt szeregowe Brak nawrotów" podczas pracy potokowe Przetwarzanie szeregowe i potokowe

Podział instrukcji na fazy wykonania Każda instrukcja musi mieć te same fazy wykonania: Pobranie instrukcji Dekodowanie MEM Wykonanie Dostęp do pamięci Zapis wyniku Jeśli dana instrukcja nie wykorzystuje wszystkich faz, procesor wykonuje puste cykle zegara dla tej instrukcji Instrukcje operujące na rejestrach Instrukcje zapisu rejestru do pamięci MEM Instrukcje odczytu pamięci do rejestru MEM Instrukcje skoku

Wykorzystanie zasobów sprzętowych MEM MEM MEM czas (cykle zegara) Każda faza instrukcji wykorzystuje inne zasoby procesora zapis do rejestru IR i zwiększanie PC, spekulatywne odczytywanie rejestrów potrzebnych do operacji wykorzystanie ALU i zapis wyniku do rejestru buforowego MEM odczyt lub zapis do pamięci (do lub z rejestrów buforowych) zapis wyniku z rejestru buforowego do rejestru procesora Wszystkie zasoby procesora mogą być wykorzystane równocześnie przez różne instrukcje W danym cyklu, procesor wykonuje jednocześnie kilka instrukcji, ale każda znajduje się w innym stopniu zaawansowania.

Wydajność przetwarzania potokowego instr_1 instr_2 instr_3 MEM MEM MEM czas (cykle zegara) koniec instr_1 koniec instr_2 koniec instr_3 Co 1 cykl zegara procesor kończy wykonywanie instrukcji, choć każda instrukcja nadal wykonuje się kilka cykli. Przyspieszenie w stosunku do architektury tradycyjnej jest proporcjonalne do liczby faz instrukcji (np. na rysunku powyżej 5 x szybciej)

Konflikt zasobów (Structural Hazard) instr_1 instr_2 MEM MEM MEM instr_3 instr_4 instr_1 instr_2 instr_3 instr_4 MEM MEM MEM Konflikt zasobów występuje gdy, dwie instrukcje wymagają dostępu do tych samych zasobów procesora (np. dostęp do pamięci: faza odczyt instrukcji, faza MEM odczyt lub zapis danych)

Konflikt zasobów instr_1 instr_2 instr_3 MEM instr_4 MEM MEM wstrzymanie kolejki na 1 cykl 2 cykle koniec instr_3 Rozwiązanie konfliktu zasobów polega na: podwojeniu zasobów (np. oddzielna pamięć programu (faza ) i danych (faza MEM) wstrzymaniu kolejki (rozwiązanie najprostsze, ale powoduje spadek szybkość przetwarzania) koniec instr_4

Konflikt danych (Data Hazard) Jeśli dwie kolejne instrukcja wykonuję operacje na tych samych rejestrach, może zaistnieć sytuacja gdy jedna instrukcja potrzebuje wartości rejestru, który jest wynikiem obliczeń poprzedniej instrukcji i nie jest jeszcze dostępny. ADD D1, D2, D3 D3 SUB D4, D3, D5 MUL D4, D3, D1 czas D3 Wstrzymywanie kolejki jest złym rozwiązaniem, gdyż konflikty danych zdarzają się bardzo często

Konflikt danych - Forwarding ADD D1, D2, D3 D3 SUB D4, D3, D5 MUL D4, D3, D1 Forwarding polega na przesyłaniu wyników działania z faz późniejszych do wcześniejszych, bez czekania na ich ostateczny zapis Forwarding realizowany jest poprzez sprzętowe porównywanie numerów rejestrów biorących udział w poszczególnych fazach instrukcji.

Optymalizacja kodu Konflikty danych mogą być eliminowane przez optymalizację kodu (optimising compilers) Procedura zamieniająca sąsiadujące elementy w tablicy: X[k] i X[k+1] Rejestr R3 zawiera adres elementu X[k]. Przed optymalizacją: lw lw sw sw R1,0(R3) R2,4(R3) R2,0(R3) R1,4(R3) * * * * R1 = R2 = X[k] = X[k+1]= Po optymalizacji: X[k] X[k+1] R2 R1 lw lw sw sw R1,0(R3) R2,4(R3) R1,4(R3) R2,0(R3) * * * * R1 = R2 = X[k+1]= X[k] = X[k] X[k+1] R1 R2

Konflikt sterowania (Control Hazard) jump next instr_1 instr_2 instrukcje wykonywane warunkowo instr_next MEM 0 Każdy skok w programie powoduje zakłócenie kolejki instrukcji, występujących kolejno w pamięci. Przy skokach warunkowych, poznanie następnej instrukcji do wykonania jest możliwe dopiero po pewnej licznie cykli zegara w tym czasie procesor może rozpocząć wykonywanie kolejnych instrukcji i unieważnić je (lub nie) w zależności od tego czy skok rzeczywiście się wykona czy nie. next jump next instr_1 instr_2 instr_3 instr_4 instr_5 instr_next instr_... pamięć operacyjna n

Opóźnienie skoku (Delayed Branch) jump next instr_1 opóźnienie skoku instr_2 instrukcje wykonywane bezwarunkowo instr_next MEM MEM MEM Opóźniony skok (delayed branch) instrukcje bezpośrednio po skoku (opóźnienie) są zawsze wykonywane, niezależnie czy skok się wykona czy nie. Program powinien być tak skonstruowany, aby były to instrukcje niezależne od skoku, albo w najgorszym przypadku instrukcje puste NOP (no operation)

Tablica skoków (Branch History Table) Tablica skoków (BHT) jump next instr_next MEM Tablica skoków (BHT) zapamiętywane są ostatnio wykonywane instrukcje skoków i adresy, do których skoki zostały wykonane. Podczas pobieranie instrukcji skoku, adres następnej instrukcji jest odczytywany z tablicy skoków (o ile wcześniej już wystąpił). Metoda pozwala zredukować nietrafione instrukcje. do przypadków zakończenia lub rozpoczęcia pętli w programach, czyli sytuacji stosunkowo rzadkich.

Cechy przetwarzania potokowego Idea: wykonywanie 1 instrukcji w 1 cyklu zegara (CPI = 1) Czas wykonywania pojedynczej instrukcji w przetwarzaniu potokowym nie zmniejsza się i jest kilkakrotnie dłuższy od cyklu zegara, ale procesor efektywnie kończy jedną instrukcję w każdym cyklu Konflikty zasobów, danych i sterowania powodują, że rzeczywista wydajność jest mniejsza niż 1instr/1cykl Podczas przetwarzania potokowego procesor wykonuje kilka instrukcji jednocześnie, ale w różnych fazach wykonania. Podczas przetwarzania potokowego w każdym cyklu zegara wykorzystywane są wszystkie zasoby procesora. Szczególne znaczenia ma optymalizacja kodu programu, w celu minimalizacji konfliktów.

Przepływ danych w arch. Single-Cycle Podział na odrębne fazy i odrębny sprzęt

Architektura potokowa Rejestry pośrednie do synchronizacji przepływu danych

Cechy architektury potokowej Komplikacja sprzętu powielanie sumatorów i bloków pamięci w celu uniknięcia konfliktów zasobów. Wprowadzenie,,długich'' rejestrów pośrednich przekazujących wszystkie informacje dotyczące wykonywanej instrukcji do następnej fazy. Instrukcje wykorzystują po kolei wszystkie zasoby procesora, ale nie mogą korzystać z zasobów spoza aktualnej fazy wykonania. Nie jest np. możliwe wielokrotne wykorzystanie ALU do realizacji bardziej złożonego trybu adresowania. Wzrost wydajności odbywa się za cenę uproszczenia zestawu instrukcji. Konsekwencją uproszczenia instrukcji jest łatwiejsza realizacja sterowania.

Load Word (LW) demonstration (1)

LW (2)

LW (3)

LW (4)

LW (5)

Korekcja zapisu do rejestru (LW, R-type) Instrukcja niesie przez potok numer rejestru do modyfikacji w ostatniej fazie

LW wykorzystanie zasobów Wykorzystanie zasobów jest rozłożone w czasie

SW (3)

SW (4)

SW (5) pusty cykl

Dwie instrukcje demonstracja

LW / SUB (1)

LW / SUB (2)

LW / SUB (3)

LW / SUB (4)

LW / SUB (5)

LW / SUB (6)

Sygnały sterujące w arch. potokowej

Sterowanie w architekturze potokowej Sterowanie jest proste, gdyż instrukcje mogą korzystać z zasobów tylko jeden raz (brak nawrotów) Sygnały sterujące można opisać tabelą prawdy, a jednostka sterująca jest układem kombinacyjnym Do sterowania wykonaniem instrukcji wystarczy jeden zestaw sygnałów (jak w Single-Cycle), ale rozłożony na kilka cykle zegara (jak w Multi-Cycle) Instrukcja musi nieść ze sobą przez potok sygnały sterujące przeznaczone dla późniejszych faz wykonania Tylko proste instrukcji (jak w arch. Single-Cycle)

Dystrybucja sygnałów sterujących

Najprostsza architektura potokowa

Potok instrukcji demonstracja Założenia brak konfliktów zasobów, danych i sterowania lw sub and or add R10,20(R1) R2,R3,R11 R4,R5,R12 R6,R7,R13 R8,R9,R14

Potok (1)

Potok (2)

Potok (3)

Potok (4)

Potok (5)

Potok (6)

Potok (7)

Potok (8)

Potok (9)