1 RISC – nasze założenia Podstawowe cechy: Wszystkie operacje są realizowane na rejestrach, Tylko operacje typu load i store wymagają dostępu do pamięci,

Slides:



Advertisements
Podobne prezentacje
Połączenia oporników a. Połączenie szeregowe: R1 R2 Rn i U1 U2 Un U.
Advertisements

Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Wykład 1: Technika DSP Wstęp
Język VERILOG w praktyce.
Programowanie w języku Visual Basic
Wykonał : Marcin Sparniuk
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Wykład 3: Jak działa typowy mikroprocesor?
Języki programowania C++
Łączenie rezystorów Rezystory połączone szeregowo R1 R2 R3 RN
CPU.
Zamiana GWIAZDA-TRÓJKĄT
Twierdzenie Thevenina-Nortona
1 1 Przykład 1/3 main() { int i,j,k,m; /* i-m : $s0-$s3 */... i = mult(j,k);... m = mult(i,i);... } int mult (int mcand, int mlier){ int product; product.
Zrównoleglanie programu sekwencyjnego
Stanisław KOZIEJ BADANIA NAUKOWE 2007 r
Przykład - Debugger Język pewnego procesora zawiera następujące instrukcje: MOV l, r l:=r ADD l, r l := l + r SUB l, r l := l - r JMP instr skok.
Procesor DSP Sharc ADSP21161 firmy Analog Devices
Wykład 5: Mikroprocesory sygnałowe -wstęp: zastosowania i rodziny
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
Podstawowe składniki funkcjonalne procesora i ich rola.
Mikrokontrolery - - podstawowe architektury
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Podstawy informatyki Wirtotechnologia Grupa: 1A Wydział Inżynierii Metali i Informatyki Przemysłowej Wydział Odlewnictwa Akademia Górniczo – Hutnicza im.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG
Komputer, procesor, rozkaz.
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Procesory RISC.
4. TEORETYCZNE MODELE PROCESÓW WSPÓŁBIEŻNYCH Teoretyczne modele uwzględniają wybrane cechy rzeczywistych procesów, stanowiąc kompromis pomiędzy łatwością
Mikroprocesory i mikrokontrolery
Elektronika cyfrowa i mikroprocesory
Programowanie parametryczne CNC SINUMERIK-810T
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
MCS51 - wykład 2.
Architektura komputerów
Architektura komputerów
Architektura komputerów
(Instruction Unit)dekoder
Programowanie w języku Matlab
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Zasada działania komputera
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Wnioskowanie w systemach sztucznych
Architektura komputerów
Rezystancja zastępcza, połączenie trójkąt-gwiazda
Architektura systemów komputerowych (jesień 2013)
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Przyczyny stresu w miejscach pracy
Wykład 7 Synchronizacja procesów i wątków
PL/SQL – dalsza wędrówka
Urszula Boryczka Testy De Jonga Urszula Boryczka
Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski
Obwody elektryczne - podstawowe prawa
567.Jakie prądy płyną przez poszczególne opory na schemacie poniżej, jeśli R 1 =3 , R 2 =7 , R 3 =20 , U=20V, a galwanometr wskazuje i G =0? B R1R1.
Procesor, pamięć, przerwania, WE/WY, …
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
Instrukcje wyboru.
Architektury procesorów rdzeniowych mikrokontrolerów.
Architektura systemów komputerowych (jesień 2015) Wykład 5 Budowa i działanie komputera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki.
Tryby adresowania i formaty rozkazów mikroprocesora
Optymalizacja programów Open-Source
Mikrokontrolery System przerwań
Format rozkazu Tryby adresowania.
Zapis prezentacji:

1 RISC – nasze założenia Podstawowe cechy: Wszystkie operacje są realizowane na rejestrach, Tylko operacje typu load i store wymagają dostępu do pamięci, Praktycznie jeden format instrukcji (wszystkie instrukcje maja taki sam rozmiar) Skoki realizowane są na podstawie warunków porównujących dane zawarte w rejestrach.

2 Cykl rozkazowy Każda instrukcja jest wykonywana w pięciu cyklach zegarowych 1. Pobranie instrukcji (IF) 2. Dekodowanie instrukcji (ID) 3. Wykonanie instrukcji/obliczenie adresu efektywnego (EX) 4. Zapis/odczyt do/z pamięci (MEM) 5. Akumulacja wyniku (WB)

3 Pięcio-krokowy pipeline Każdy cykl zegara staje się jednym krokiem pipeline Kroki mogą być wykonywane równolegle Mimo, że wykonanie instrukcji zabiera 5 cykli zegara, liczba CPI zmienia się z 5 na 1 Czy to jest takie proste ?

4 Realizacja Pipeline REG IM DM REG ALU REG IM DM REG ALU REG IM DM REG ALU REG IM DM REG ALU REG IM DM REG ALU Czas CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 Instrukcje

5 Konflikty w przetwarzaniu pipeline Konflikt zasobów – występuje jeśli kilka instrukcji żąda tego samego zasobu Konflikt danych – występuje jeśli argument instrukcji jest wyliczany przez instrukcję bezpośrednio poprzedzającą Konflikt sterowania – występuje podczas wykonania instrukcji sterujących, np.: skoku warunkowego

6 Przykład konfliktu zasobów im regaludmreg im regaludmreg im regaludmreg im regaludmreg im regaludmreg Load Instr.1 Instr.2 Instr.3 Instr.4 mem Mem. access

7 Konflikt zasobów rozwiązanie InstrukcjaNumer cyklu zegarowego Load IFIDEX MEM WB Instr. 1 IFIDEX MEM WB Instr. 2 IFIDEX MEM WB Instr. 3 stallIFIDEX MEM WB Instr. 4 IFIDEX MEM WB Instr. 5 IFIDEX MEM

8 Przykład konfliktu danych im regaludmreg im regaludmreg im regaludmreg im regaludmreg im regaludmreg DADD R1,R2,R3 AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11 DSUB R4,R1,R5 DADD R1,R2,R3 DSUB R4,R1,R5 AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11

9 Konflikt danych rozwiązanie im regaludmreg im regaludmreg im regaludmreg im regaludmreg im regaludmreg AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11 DADD R1,R2,R3 DSUB R4,R1,R5 Problem rozwiązuje się poprzez zastosowanie dodatkowych połączeń (bypass)

10 Przykład przetwarzania pipeline Rozważmy problem mnożenia wektora przez skalar for (i = 1000; i > 0; i = i –1) x[i] = x[i] + s; Powyższy program może mieć następującą postać w języku asemblera Loop L.D F0,0(R1) ADD.D F4,F0,F2 S.D F4,0(R1) DADDUI R1,R1,#-8 BNE R1,R2,Loop

11 Wykonanie pętli Bez optymalizacji Z optymalizacją Loop L.D F0,0(R1) stall DADDUI R1,R1,#-8 ADD.D F4,F0,F2 ADD.D F4,F0,F2 stall stall stall BNE R1,R2,Loop S.D F4,0(R1) S.D F4,8(R1) DADDUI R1,R1,#-8 stall BNE R1,R2,Loop stall Przyjmijmy następujące czasy opóźnień: FP ALU op i inny FP ALU op – 3, FP ALU op i store double – 2, load double i FP ALU op – 1, load double i store double - 0

12 Rozwinięcie pętli i jej wykonanie Loop L.D F0,0(R1) loop L.D F0,0(R1) ADD.D F4,F0,F2 L.D F6,-8(R1) S.D F4,0(R1) L.D F10,-16(R1) L.D F6,-8(R1) L.D F14,-24(R1) ADD.D F8,F6,F2 ADD.D F4,F0,F2 S.D F8,-8(R1) ADD.D F8,F6,F2 L.D F10,-16(R1) ADD.D F12,F10,F2 ADD.D F12,F10,F2 ADD.D F16,F14,F2 S.D F12,-16(R1) S.D F4,0(R1) L.D F14,-24(R1) S.D F8,-8(R1) ADD.D F16,F14,F2 DADDUI R1,R1,#-32 S.D F16,-24(R1) S.D F12,16(R1) DADDUI R1,R1,#-32 BNE R1,R2,Loop BNE R1,R2,Loop S.D F16,8(R1) Czas wykonania wynosi teraz 14 cykli zegarowych

13 Optymalizacja wykonania pętli Loop L.D F0,0(R1) ADD.D F4,F0,F2 S.D F4,0(R1) DADDUI R1,R1,#-8; Usunięte BNE L.D F0,0(R1) ADD.D F4,F0,F2 S.D F4,0(R1) DADDUI R1,R1,#-8; Usunięte BNE L.D F0,0(R1) ADD.D F4,F0,F2 S.D F4,0(R1) DADDUI R1,R1,#-8 BNE R1,R2,Loop Zależność danych Może zostać usunięta poprzez wyliczenie pośrednich wartości R1, zmianę ofsetu w instrukcjach L.D oraz zmiejszeniu wartości R1 o 24

14 Optymalizacja wykonania pętli Loop L.D F0,0(R1) ADD.D F4,F0,F2 S.D F4,0(R1); Usunięte DADDUI & BNE L.D F0,-8(R1) ADD.D F4,F0,F2 S.D F4,-8(R1); Usunięte DADDUI & BNE L.D F0,-16(R1) ADD.D F4,F0,F2 S.D F4,-16(R1) DADDUI R1,R1,#-24 BNE R1,R2,Loop Zależność danych Zależność nazw Jeśli zmienimy nazwy rejestrów Pozostanie tylko zależność danych

15 Optymalizacja wykonania pętli Loop L.D F0,0(R1) ADD.D F4,F0,F2 S.D F4,0(R1); Usunięte DADDUI & BNE L.D F6,-8(R1) ADD.D F8,F6,F2 S.D F8,-8(R1); Usunięte DADDUI & BNE L.D F10,-16(R1) ADD.D F12,F10,F2 S.D F12,-16(R1) DADDUI R1,R1,#-24 BNE R1,R2,Loop