Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWiesława Neuman Został zmieniony 11 lat temu
1
Wykład 4: Architektury mikroprocesorów: von Neumanna, Harvard
VLIW i EPIC, ARM, MIPS
2
typowego mikroprocesora
Architektura typowego mikroprocesora
3
Etapy wykonywania instrukcji
add EAX, 1234h
4
Cykl rozkazowy procesora
o pięciu fazach potoku add EAX, 1234h = HIPERPOTOK PROCESORA Intel Pentium 4
5
Cykl rozkazowy procesora
add EAX, 1234h = W wykonaniu każdej instrukcji przez procesor można wyróżnić kilka faz. Typowo wyróżnia się następujące fazy: FETCH - pobranie instrukcji DECODE - dekodowanie obrazu binarnego instrukcji READ - odczyt argumentów instrukcji z rejestrów procesora lub z pamięci EXECUTE - wykonanie operacji arytmetycznej lub logicznej WRITE - zapis wyniku do rejestru lub pamięci Należy zauważyć, że dla wielu instrukcji niektóre z wymienionych faz są zbędne, np. instrukcja przesłania międzyrejestrowego nie wymaga użycia jednostki arytmetyczno-logicznej.
6
Praca potokowa Potok o „głębokości” 5:
Wykonywanie każdej instrukcji trwa 5 cykli, ale efektywnie tylko jeden.
7
Praca potokowa synchronizacja potoku - "odczyt po zapisie„
Podstawowe problemy: oczekiwanie na wyniki synchronizacja potoku - "odczyt po zapisie„ (RAW - Read After Write) -SCOREBOARDING - flagi wskazujące na ważność zawartości rejestrów procesora -BYPASSES (obejścia) - dodatkowe szyny wewnątrz procesora
8
Praca potokowa Podstawowe problemy: rozgałęzienia programu
9
sposoby minimalizacji wad
Praca potokowa - sposoby minimalizacji wad - Przewidywanie skoków Współczesne procesory potrafią przewidywać skoki z 90% skutecznością - Wykonywanie jednoczesne obu rozgałezień programu (architektura hiperskalarna) do czasu sprawdzenia warunku rozgałęzienia - Opóźnienie skoków w potoku: Skok opóźniony (delayed branch): wykonaj następną instrukcję za bieżącą, a potem skocz
10
Magistrala - „wąskie gardło”
add [1234h],ebx = 01 1D Różna długość instrukcji Podwójne pobranie z pamięci Efekt ten NIE WYSTĘPUJE w procesorach o architekturze RISC (LES)
11
Magistrala dostępu do pamięci – „wąskie gardło”
-konieczność pobierania równocześnie instrukcji (kodu) oraz argumentów instrukcji (danych) z tej samej pamięci
12
Architektury dostępu do pamięci
von Neumanna i Harvard
13
Architektura von Neumanna i Harvard
14
Architektura von Neumanna i Harvard
15
VLIW - Very Long Instruction Word
Architektura VLIW - Very Long Instruction Word ADD DI,BX MOV CX,10 MOV SI,DX MUL BX FDIV ST(1) ALU1 ALU2 ALU3 MOV FPU Wada: brak skalowalności
16
Architektura EPIC (Intel Itanium)
Explicitly Parallel Instruction Computing - przetwarzanie jawnie równoległe Grupowanie instrukcji i oznaczaniu ich wzajemnych relacji już na etapie kompilacji programu. Instrukcje są zamknięte w tzw. paczkach (po trzy instrukcje), które są ładowane do procesora równocześnie. Każda paczka zawiera przedrostek - grupę bitów informujących procesor o tym, do których jednostek ma skierować poszczególne rozkazy. W przedrostku znajdują się też informacje o tzw. barierach wykonań służących do koordynacji wykonywania poszczególnych instrukcji. Jeśli pomiędzy dwoma ciągami rozkazów znajdują się bariery wykonania, to drugi ciąg zostanie wykonany dopiero wtedy gdy znane będą wyniki działania rozkazów z pierwszego ciągu. Skalowalność: Kod nie jest on dostosowany ściśle do budowy procesora (jak w układach VLIW) - zamiast równoległych instrukcji i odwołań zawiera tylko informacje, które instrukcje mogą się wykonać równolegle przedrostek INSTR 1 INSTR 2 INSTR 3
17
Rozwój architektur CPU
18
-”najelegantszy” procesor
Procesor ARM -”najelegantszy” procesor Najprostszy procesor 32-bitowy o architekturze RISC występujący w wielu odmianach (wersje jądra 1..6) – zawiera tylko ok. 35 tys. tranzystorów. Skonstruowany całkowicie od podstaw w 1983 roku na zlecenie brytyjskiej firmy Acorn przez grupę inżynierów kierowaną przez Rogera Wilsona i Steve'a Furbera. Skonstruowany poprzez udoskonalenie procesora 65xx (np. Atari (6502), Commodore (6510), Apple II). Krótka lista rozkazów (nieco ponad 50 instrukcji). 16 uniwersalnych rejestrów, kilka trybów pracy (użytkownika, systemu, przerwań, itp. …) Jądro może być łączone z różnymi dedykowanymi do konkretnych zastosowań modułami rozszerzeń (tzw. mikrokontrolery oparte na ARM). Nazwa to skrót: Acorn RISC Machine, „przechrzczony” po kupieniu Acorna przez Olivetti na Advanced RISC Machine Prosta konstrukcja przekładająca się na bardzo mały pobór mocy: Np. procesor Strong ARM, pracuje z zegarami w zakresie MHz przy poborze mocy rzędu zaledwie 1 W !!!
19
Procesor ARM Wersje: 1987: ARM2 , 1989: ARM3 , 1991: ARM6 , 1993: ARM7(v.4) , 1995: ARM8 , 1998: ARM10 (v.7) Producenci: IBM, Infineon, Intel, Freescale (dawniej Motorola), NEC, Philips, Samsung, Texas Instruments, Toshiba, NetSilicon, Atmel, … Zastosowany min. w komputerach BBC (moduł z procesorem rozszerzającym możliwości komputera 8-bitowego) oraz w komputerze Apple Newton (pierwowzór dzisiejszych kieszonkowych PDA - Personal Digital Asistants), telefonach komórkowych, .. i w bardzo wielu innych urządzeniach. Każda z instrukcji zawiera 4-bitowy kod, określający warunki jej wykonania, a także bit wskazujący na to, czy dana instrukcja może zmienić zawartość rejestru stanu procesora. IF warunek INSTRUKCJA Konstrukcja taka pozwala na eliminację wielu rozgałęzień programu, upraszcza znacznie logikę procesora, a równocześnie przyspiesza wykonanie programu dzięki zmniejszeniu objętości kodu.
20
Procesor MIPS Microprocessor without Interlocked Pipeline Stages
(Kalifornijski Uniwersytet Stanford) Pomiedzy poszczególnymi fazami potoku nie występują relacje wymagające sprzętowego uzależnienia. Obowiązek odpowiedniego ułożenia kodu programu spada na kompilatory - Idea w praktyce bardzo trudna do spełnienia. Najnowsze z procesorów MIPS - R10000 i R12000 (64 bitowe)- wyposażone są w zwielokrotnione jednostki zmiennoprzecinkowe, oraz w superskalarne jednostki wykonawcze (do 5 instrukcji równocześnie). Układy MIPS stanowią serce graficznych stacji roboczych Silicon Graphics. (Filmy „Toy Story", „Jurassic Park", „Dawno temu w trawie".)
21
Rodziny procesorów • Pierwsze mikrokomputery „domowe”:
– 8-bitowy Z80: Sinclair ZX-81, ZX-Spectrum 48; 6502, 6510: ATARI 800XL, Commodore 64, • Intel x86 (komputery PC): – 16 bitowe: 8086/88, 80286 – 32 bitowe: i386, i486, Pentium, Pentium Pro, Pentium II, Celeron, Pentium III, Celeron II, Pentium IV (CISC/RISC) – 64 bitowe: Itanium (architektura EPIC) • AMD (zgodna z x86): – 32 bitowe: AMD486, 5x86, K5, K6, Athlon, Duron • Motorola 68k (komputery Apple): – 68000, (16-bit), 68030, 68040, (32-bit) • architektury RISC (32, 64- bitowe – systemy UNIX): – Alpha (DEC/Compaq), MIPS (SGI), SPARC (Sun), PA (HP), Power (IBM), PowerPC (IBM/Motorola) • Procesory sygnałowe (Harvard + praca potokowa + zwielokrotnione jednostki ALU/FPU)
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.