Wydajność systemu komputerowego
Czas odpowiedzi:
-ile czasu potrzeba do wykonania zadania
-po jakim czasie uzyska się odpowiedź na zapytanie
-jak długo trzeba czekać aby skorzysta z zasobów systemu
Przepustowość:
-liczba zadań wykonana przez system jednocześnie
-średni czas wykonania zadania
-liczba zadań wykonanych w jednostce czasu
Miary wydajności:
CPI jest miarą wskazującą jakoś architektury systemu, efektywność listy instrukcji, jakość zastosowanych algorytmów i oprogramowania.
CPI = liczba taktów procesora/liczba instrukcji
MIPS Miliony instrukcji procesora na sekundę
MIPS = częstotliwość zegara/CPI*10 do 6
MFLOPS miliony instrukcji zmiennoprzecinkowych procesora na sekundę
Benchmark to zestaw operacji wykonywalnych przez maszynę dla określenia wydajności przetwarzania.
Pozwalają ocenić:
-wydajność systemów opartych na różnej architekturze
-wpływ zmiany konfiguracji sprzętu na prędkość działania
-wpływ na rozwój metod zwiększania wydajności komputera
Rodzaje:
-szkolne dla wykrywania zatorów i wyznaczenia szczytowych wydajności
-syntetyczne modelują rzeczywiste sytuacje przetwarzania Whestone
-jądra wydzielone z rzeczywistych programów krytyczne czasowo procedury przetwarzania
-rzeczywiste programy najczęściej do modelowania zjawisk fizycznych
SPEC ( System Performance Evaluation Cooperative)
Przygotowanie dla różnych klas aplikacji, uaktualniana jest wraz z postępem technologii komputerowych. Pozwala oceniać wydajność maszyn i jakość kompilatorów.
Równanie Amdahl'a:
Określa stopień zwiększania wydajności systemu komputerowego wynikający ze zmiany czasów wykonania operacji skł. programu użytkownika.
Przyspieszenie = czas wykonania / poprawiony czas wykonania
nowy czas= poprawiony czas / przyspieszenie + czas wykonania reszty
Pwypadkowe=1/1-U+U/P
Czas wykonania operacji A stanowiący ułamek U zadania został przyspieszony P razy korzystając z równania AMDAHL'A uzyskuje się wypadkowe przyspieszenie.
|
Lista instr. |
CPI |
Często. zegara |
Alg. |
* |
|
|
Kompil. |
* |
* |
|
List. Instr. |
* |
* |
* |
Org. Sys. |
|
* |
* |
Tech. |
|
|
* |
Czynniki wpływające na wydajność:
-optymalizacja programu
-zmniejszenie CPI
-zwiększenie prędkości zegara
Cechy konfiguracji sprzętu wpływające na wydajność
-prędkość wykonywania programów
-prędkość wymiany danych
Własności oprogramowania wpływające na wydajność systemu
-złożoność algorytmu
-sposób zarządzania zasobami systemu komputerowego
Architektura systemu komputerowego
Historia komputerów:
-abaki : - , +
-suwaki logarytmiczne: * , /
-maszyna różnicowa: analityczne
-maszyna turinga: 1937
-elektroniczny komputer: Konrad Zausze - 1941
-ABC: prototyp częściowo elektronicznego kalkulatora ( system 2) - 1939
-Colosuss I i II: całkowicie elektroniczny deszyfrator enigmy - 1943
-ENIAC: pierwszy nagielski komputer do obliczania trajektorii lotów pocisków - 1943
-EDVAC: komputer z listą instrukcji - 1949
Rodziny komputerów:
IBM 300 - 197x
SUN Sparc - 1987
DEC Alpha - 1992
SGI MIPS - 1986
Intel x86 - 1978
Architektura systemów komputerowych:
-1950 - 60: arytmetyka komputerów
-1970 - 80: projektowanie listy instrukcji dla komputera wyższego poziomu
-1990 - ? : projektowanie procesorów, rozwiązań wieloprocesorowych, doskonalenie układów WE/WY i
systemów pamięci.
Generacje komputerów:
I Generacja (1951-1960) - lampowe, pierwszy IBM seria 700
II Generacja (1956-1964) - tranzystorowe z pamięciami ferrytowymi z klawiaturą i monitorem PDP 1
III Generacja (1964-1975) - układy scalone w technologii TTL, pierwszy minikomputer PDD-8 firmy DEC, opracowanie IBM
system 1360
IV Generacja (1975-+...) - technologia MOS układy VLSI, pierwsze mikroprocesory
Prawo Moor'a: prędkość taktowania procesorów podwaja się co 18 miesięcy.
Tempo rozwoju technologii VLSI
liczba tranzystorów w układzie scalonym
pojemności pamięci
częstotliwości zegara
wydatek energetyczny na przełączanie
wymiar charakterystyczny
szybkość mikroprocesora
szybkość super komputera
Architektura: własności i funkcje systemu komputerowego widziane przez programistę - sztuka planowania.
Model komputera Von Neumana:
-Jeśli komputer ma przede wszystkim liczyć, to musi mieć wydzieloną jednostkę arytmetyczną, i musi to być jego centralna część, jednostka centralna
-jeśli komputer ma być uniwersalny, to musi zawierać urządzenie w prosty sposób szeregujące operacje do wykonania kolejno i rozróżniające specyficzne rozkazy - sterowanie
-jeśli urządzenie ma pozwalać na wykonywanie długich obliczeń, to rozkazów do wykonania musi przyjąć wiele i muszą one być pamiętane - pamięć,
-przyjmując analogię do systemu nerwowego człowieka jednostka centralna i sterowanie odpowiadają neuronom skojarzeniowym, należy więc dodać urządzenia odpowiadające neuronom sensorycznym i motorycznym - wejście i wyjście,
-informacja z we / wy nie powinna zaprzątać bezpośrednio jednostki centralnej, lecz trafiać najpierw do pamięci - sterowanie urządzeń i buforowanie we / wy
Architektura Harvardzka:
Opracowania przez Aikensa w 1948 rozdzielane rozkazy od danych (2 obszary adresowania.)
Pamięć:
-informacje przechowywane są w komórce o jednakowym rozmiarze
-znaczenie słów nie jest przypisane ich treści , dane i instrukcje są nierozróżnialne
-interpretacja słowa zależ od stanu maszyny w chwili pobierania słowa za pamięci
-komórki tworzą uporządkowany zbiór i posiadają jednoznacznie przypisany wskażnik położenia - adres
-zawartość komórki może zmienić tylko procesor.
Program jest sekwencją rozkazów.
Licznik rozkazów generuje adres kolejnego rozkazu, adres może nie być kolejnym w sekwencji gdy wykonano skok lub rozgałęzienie.
Nowe cechy komputera:
-stos programowy część pameci o dostępie typu LIFO
-tryb adresowania metoda określania adresu ułatwiają wymianę danych
-pamięć wirtualna metoda adresowania i organizacji pamięci umożliwiająca ominięcie ograniczeń fizycznego rozmiaru pamięci
-nowe typy danych liczby zmiennoprzecinkowe, łańcuchy znaków
-przetwarzanie potokowe
-wieloprocesorowe architektury
Przetwarzanie potokowe
-kompilacja sprzętu
-wprowadzenie „długich” rejestrów pośrednich przekazujących wszystkie informacje dotyczące wykonywanej instrukcji do
następnej fazy
-instrukcje wykorzystujące po kolei wszystkie zasoby procesora
-wzrost wydajności odbywa się za cenę uproszczenia zestawu instrukcji
-konsekwencją uproszczenia instrukcji jest łatwiejsza realizacja sterowania
[ L ] [ D] [ P ] [ M ]
[ L ] [ D] [ P ] [ M ]
[ L ] [ D] [ P ] [ M ]
Komputer jako automat:
-Można potraktować komputer jako automat skończony FSM (finite state machine)
-Stan komputera jest superpozycja stanu procesora i stanu pamięci.
-Zmiana stanu jest skutkiem wykonania rozkazu przez CPU
-Czas pomiędzy kolejnymi zmianami stanu - cykl.-
-Cykl pamięci lub rozkazowy - zmiana stanu pamięci
Wieloprocesowość jest to cecha systemu operacyjnego (a dokładniej jądra, inaczej kernela) mówiąca czy może on wykonywać "jednocześnie" kilka procesów. Wieloprocesowość otrzymuje się poprzez tzw. scheduler czyli algorytm kolejkujący i porządkujący procesy, które mają być wykonane. W tym systemie każdy proces jest wykonywany jakiś kwant czasu, a później czeka "w uśpieniu" (oczywiście z uwzględnieniem różnych priorytetów).
Systemami wielozadaniowymi są:
-systemy UNIX
-32-bitowe systemy z rodziny Microsoft Windows (np. Microsoft Windows 95)
-MacOS
-BeOS
Nie są:
-DOS (może być więcej niż jeden proces, ale tylko jeden będzie wykonywany)
Pamięć
Klasyfikacja:
Pamięć statyczna (Static RAM), budowana z dwustabilnych przerzutników (zawierających po dwa tranzystory), wygodniejsza w użyciu od pamięci dynamicznej, lecz o mniejszej pojemności. Cechuje ją bardzo krótki czas dostępu do poszczególnej komórki i nieulotność. Niestety, pamięci SRAM są drogie, dlatego też wykorzystuje się je głównie jako pamięci cache.
Pamięci dynamiczne
DRAM (Dynamic RAM) pamięć dynamiczna wykonana w oparciu o tranzystory MOS. Pamięć ta jest wolniejsza niż pamięć SRAM a w dodatku jest ona ulotna. Aby pamięć ta nie utraciła danych trzeba ją odświeżać z częstotliwością co najmniej kilkaset Hz. Odświeżanie polega na zwykłym odczycie zawartości komórki.
Okres odświeżania do kilkunastu ms w czasie odświeżania pamięć niedostępna.
SDRAM (Synchronous Dynamic RAM) pamięć dynamiczna, synchroniczna. Pamięć ta jest podobna do pamięci DRAM, z tym że dostęp do komórek pamięci jest zsynchronizowany z zewnętrznym zegarem taktującym procesor.taktowanie 100MHz ,150MHZ,...długość słowa = 8 bajtów SDRAM DIMM oznaczane są PC 100 , PC 150
DDR (Double Data Rate) SDRAM Taktowanie 100 MHz , 150 MHz , 200MHz, przepustowosć 2x zegar x 8B = 1600, 2400,3200 MB/s
- DDR ,SDRAM DIMM oznaczenia wskazują na przepustowość PC1600, PC 2400 ,PC 3200.
Dostęp do pamięci DRAM
- pobieranie danych z wiersza pamięci - w trybie „burst”
- skrócenie średniego czasu dostępu do danych
- czas odświerzania przypada na odczyt wiersza danych
Organizacja pamięci, podstawowe parametry: podstawowym elementem jest komórka pamięci wszytskie komórki mają wspólne cechy
-mają 2 stabilne (lub półstabilne ) stany , które mogą być użyte do reprezentowania 1 i 0
-umożliwiają zapis (przynajmniej jednokrotny )
-umożliwiają odczyt..
Wydajność pamięci:
-czas dostępu - -czas który upływa od podania adresu : sygnał odczytu 10 pojawienie się odczytanych danych na magistrali danych
pamięci
-czas cyklu pamięci - czas dostępu + dodatkowy czas 10 następnego dostępu
-prędkość transferu - szybkość z jaką dane mogą być wprowadzane do jednostki pamięci z niej wyprowadzane.
Tablicowanie - służy do zidentyfikowania miejsc wzajemnie równoważnych
Pamięć wirtualna odwzorowuje używane zasoby dyskowe w pamięci operacyjnej.
Mechanizm pamięci wirtualnej działa jak „cache” do dysku . Tłumaczenie adresów pamięci wirtualnej zamienia adresy wirtualne nieistniejące fizycznie
Zalety pamięci wirtualnej
-pozwala wielu programom dzielić tę samą pamięć fizyczną
-programiści mogą pisać kod korzystając z bardzo dużej przestrzeni adresowej
-mechanizm Pam. Wirtu. dba o właściwą wymianę stron lub segmentów danych na dysk.
-blok pamięci cache => strona lub segmenty
-chybienie cache => brak strony w pamięci operacyjnej lub błąd adresowania
Segmentacja pamięci pozwala wielu użytkownikom korzystać z kodu ,np. procesora tekstów mając własne części pamięci wykorzystywane do przechowywania swoich tekstów i konfiguracji programów.
Fragmentacja:
• Fragmentacja zewnętrzna (external fragmentation): suma wolnych obszarów w pamięci wystarcza na spełnienie zamówienia, ale nie tworzą one spójnego obszaru.
Reguła 50 procent - w strategii pierwszego dopasowania z powodu fragmentacji straty wynoszą na ogół ok. 50% tego co zostało przydzielone.
• Fragmentacja wewnętrzna (internal fragmentation): Przydzielona pamięć może być nieco większa niż zamawiana (nie opłaca się trzymać informacji o bardzo małych dziurach) - ten nadodatek znajduje się wewnątrz przydzielonego obszaru, ale jest niewykorzystywany.
Pamięci o dostępie sekwencyjnym (masowe) (pamieci dyskowe , dyskietki ) pamięć zorganizowana za pomocą rekordów , dostęp jest możliwy w określonej sekwencji liniowej . Do oddzielania rekordów i do pomocy przy odczycie są wykorzystywane do przechowywania informacji adresowych , w rezultacie czas dostępu do różnych rekordów może się bardzo różnić.
Pamięci skojarzeniowe - rodzaj dostępu swobodnego , słowo jest wyprowadzane raczej na podstawie części swojej zawartości niż na podstawie adresu . Każda lokacja ma własny mechanizm adresowania, a czas dostępu jest stały i nie zależny od poprzednich operacji dostępu <pamięci podręczne>
Pamięć podręczna
Zasada lokalności:
-czasowa: w zadanym niewielkim odcinku czasu zakres używanych adresów pamięci przez program jest zwarty i niewielki
-przestrzenna: treść i dane programu zajmują zwartą przestrzeń adresową. Programy wykonywane są sekwencyjnie z kolejnych komórek pamięci.
Zarządzanie pamięcią, pobranie, przydział i wymiana danych:
Wybór strategii zarządzania pamięcią podręczną ma znaczny wpływ na współczynnik trafień. Zasady kopiowania informacji z pamięci masowej do pamięci operacyjnej. Obejmuje ona:
-strategie wypełnienia pamięci podręcznej obejmujące zasady odwzorowania linii pamięci głównej w pamięci podręcznej
-strategie pobrania linii z pamci głównej obejmujące reguły podejmowania decyzji o wypełnieniu linii
-strategie aktualizacji i wymiany kopii w pamięci podręcznej.
Strategie pobrania:
-żądanie pobierania danych brak danych w pamięci operacyjnej
-realizacja uprzedzającego pobrania implementując zasade lokalności pobierania się na zapas sąsiednie do uprzednio pobranych, dane z pamięci podręcznej
Strategie przydziału:
-BF (best fit) blok umieszczony w pierwszej "dziurze" o wystarczającym rozmiarze, lista dziur o rosnącym rozmiarze, adresy nieuporządkowane
-FF (first fit) blok umieszczony w pierwszej "dziurze" o wystarczającym rozmiarze,dresy uporządkowane rosnąco(kumuluje male dziury)
-WF (worst fit) blok umieszczony w pierwszej "dziurze" o wystarczającym rozmiarze, lista dziur o malejącym rozmiarze, adresy nieuporządkowane(pozostałe dziury są duże)
-BB (binary buddy) blok umieszczony w pierwszej "dziurze" o wystarczającym rozmiarze, dziury uporządkowane wymiarami, adresy uporządkowane kolejno.
Co pewien czas dokonuje się defragmentacja stąd istotną cechą strategii przydziału jest łatwość realizacji tego zadania . Obraz pamięci po BF i WF trudny do defragmentacji.
Strategie wymiany:
Pamięć z blokami o stałym rozmiarze:
-FIFO - nie uwzględnia intensywności użytkowania
-losowa - przydatna dla programów bazo - danowych
-FINUFO (firstin, notused, firstout) - uwzględnia znaczki używalności
-LRU (last recently used)- wymienia blok najdawniej używany
Pamięć z blokami o zmiennym rozmiarze:
-WS wymiana całego zbioru roboczego
-PFF wymiana nie używanych stron po przekroczeniu progu występowania błędu braku strony.
Trafienie obecność poprzedniej kopii danych w pamięci podręcznej
-współczynnik trafienia h prawdopodobieństwo znalezienia poprzedniej kopii danych
-czas trafienia Tca czas dostępu do danej + czas określenia czy dana jest w pamięci
Chybienie -współczynnik chybień m=1-n
-strata czasu Tmp czas wymiany bloku danych w pamięci podręcznej
Średni czas dostępu Ta=(1-m)Tac+m(Tpao+Tmp)
Organizacja pamięci:
-linia blok danych w pamięci podręcznej
dane + wskaźniki towarzyszące
Typowa linia od 4 do 8 słów, liczba linii w pamięci podręcznej 64-4096. PAo
podzielona na bloki po k słów, pamięć podręczna zawiera C linii po k słów, zawiera 2 do n słow.
Operacje na pamięci:
-unieważnienie linii
-wypełnienie pobranie danych bloku z PAO
-odczyt danej :*"hit on read" dana odczytywana i przekazywana do procesora
*"miss on read" brak danej przejście do wypełnienia linii
-zapis danej : *zapis jednoczesny z uaktualnieniem wszystkich kopii na wyższych poziomach pamięci
*zapis lokalny zapis tylko w pamięci podręcznej
*zapis bezpośredni zapis wprost do PAO i unieważnienie linii.
Reguły odwzorowania PAO w pamięci podręcznej:
-całkowicie skojarzeniowa, dowolna linia PAO może być skopiowana do pamięci podręcznej
- z odwzorowaniem bezpośrednim, rozłączne linie w PAO odwzorowane przez linie pamięci podręcznej
-wielodrożna, rozłączne zbiory linii w PAO odwzorowane prze rozłączne zbiory linii(bloki) w pamięci podręcznej
Lista rozkazów
Cechy dobrej listy rozkazów
-łatwo rozszerzalna , przenośna
-uniwersalna
-pozwala na sprawną implementację narzędzi do programowania na „niskim poziomie”
-dogodnie może być wykorzystywana przez oprogramowanie wyższego poziomu
Rozkaz, mnemonik, argumenty:
Każdy rozkaz reprezentowany jest za pomocą ciągu bitów, rozkaz dzielony jest na pola odpowiadające elementom składowym rozkazu ten obraz rozkazu nazywa się formatem rozkazu dla programistów rozkazy są reprezentowane za pomocą symbolicznej reprezentacji rozkazów maszynowych kody operacji są zapisywane za pomocą skrótów zwanych mnemonikami. Argumenty zostają zapisywane lub odczytywane z pamięci głównej lub wirtualnej, rejestrach procesora bądź z urządzenia wejścia-wyjścia.
Specyfikacja rozkazów:
-składnia (syntax)
-funkcja (operation)
-cechy (atributes)
-opis funkconalny (decscription)
-sposób modyfikacji wskaź. w procesorze (condition codes)
-format kodu (code structure)
Rodzaje rozkazów:
-rozkaz arytmetyczno-logiczny (przetwarzanie danych)
-rozkazy pamięciowe (przechowywanie danych)
-rozkazy WE/WY (ruch danych)
-rozkazy testowania i rozgałęziania (sterowanie)
Stos Stos jest zbiorem lokacji funkcjonującym za zasadzie ostatnie na wejściu- pierwszy na wyjściu . Stos znajduje się w znanym położeniu i często przynajmniej jego 2 szczytowe dane znajdują się w rejestrach procesora.
Wskaźnik stosu -(stach pointer) - rejestr procesora, adresuje pamięć o organizacji typu stos, wskazując tzw. wierzchołek stosu, czyli adres ostatnio zapisanych danych
Wykorzystanie STOSU
-do tymczasowego zapisu danych
-przechowywanych w rejestrach
-w fazie wykonywania rozkazu przez mikrokomp.
-przechowywania danych ... za pomocą notacji przyrostkowej
-zapis zawartości licznika rozkazów PL
Wyrównanie danych: big Indian i littre Indian:
Słowo dwubajtowe można zapisać w pamięci na dwa sposoby: w kolejności big-endian, czyli z bardziej znaczącym bajtem jako pierwszym, lub w kolejności little-endian, w której pierwszeństwo ma bajt mniej znaczący. Wypada tu także powiedzieć, co rozumiemy jako „pierwszeństwo'' - pierwszym jest ten bajt, który przechowywany jest w komórce pamięci o niższym adresie.
Liczba 1234H w kolejności: big endian little endian
Sposoby adresowania:
a) natychmiastowe gdy w formacie rozkazu po słowie operacji następuje bezpośrednio argument, czyli nia ma potrzeby pobierać go
ani z pamięci, ani z żadnego rejestru procesora.
b) rejestrowe - Żądany rejestr roboczy zazwyczaj jest wybierany przez wydzielone pole w słowie operacji.
c) wskaźnikowe - Jeśli w rejestrze roboczym jest umieszczony nie argument, lecz jego adres zwany wskaźnikiem argumentu, to
otrzymuje się adresownie wskażnikowe, określane również jako rejestrowe pośrednie
d)bezpośrednie - adres argumentu jest umieszczony wprost w części adresowej rozkazu
e)indeksowe - Nazwa ta pochodzi od typowego zastosowania, związanego z operacjami na tablicach. Wówczas adrse początku
tablicy umieszcza się w części adresowej rozkazu, a pozycję (indeks) elementu tablicy określa zawartość rejestru indeksowego,
którą można łatwo modyfikować (np. cyklicznie zwiększać lub zmniejszać o 1)
f) względne (bazowe) - rejestr bazowy zawiera adres początku struktury (np. rekordu), natomiast część adresowa rozkazu zawiera
odpowiednie przesunięcie tego adresu.
Projektowanie listy:
-częstość użycia rozkazów
-częstość użycia trybów adresowania
-koncepcja architektury
-struktura kodu rozkazu
Komputery CISC i RISC
Mikroprogram, realizacja sterowania w postaci sterowania o n bitowych słowach zwanych mikroinstrukcjami które reprezentują wartość lini sterujących mikroprocesor i która jest adresowana przez licznik mikroinstrukcji.
-W kolejnych cyklach zegara mikroinstrukcje są podawane na wyjscie pamięci zapewniając prawidłową realizację każdej instrukcji.
-Sekwencje mikroinstrukcji realizujące wszystkie instrukcje procesora nazywa się mikroprogramem.
-Niektóre mikroinstrukcje mogą być wspólne dla instrukcji mikroprocesora co ogranicza pamięć mikroprogramu a liczba wszystkich mikroinstrukcji może być równa liczbie stanów maszyny stanowej.
-Mikroprogram musi mieć możliwość zarówno wykorzystywania sekwencyjnego jak i wykonywania skoków bezwarunkowych bezwarunkowych warunkowych wewn.
Klasyfikacja Flynn'a:
Opiera się na rozmiarach strumieni danych instrukcji
-SISD pojedyncza instrukcja i dana
-SIMD jeden procesor wiele danych
-MIMD wiele instrukcji i danych
-MISD wiele instrukcji i jeden strumień danych
Klasyfikacja Trealeaven'a:
Klasyfikacja oparta na mechanizmach sterowania oraz wymiany danych w jednostkach obliczeniowych
Wyróżnia się mechanizmy sterowania
-przekazywanie sterowania
-przekazywanie danych jednostki obliczeniowe oczekują na dane i uaktywnianie są gdy dane dostają
-przekazywanie żądań jednostki obliczeniowe żądają danych
-poszukiwanie skojarzeń po spełnieniu warunku lub wskutek skojarzenia następuje wykonanie danych.
Topografie systemów komputerowych:
-przełącznica -magistrala -pierścień -siatka -gwiazda -drzewo -mieszany -hipersześcian
Przetwarzanie potokowe:
Dekompozycja rozkazu przetwarzania:
-pobranie rozkazu
-dekodowanie rozkazu
-obliczanie efektywnych adresów argumentów
-pobieranie argumentów
-wykonanie rozkazu (z reguły zajmuje najwięcej czasu !)
-zapisanie argumentu
Problem rozgałęzień:
-zwielokrotnienie strumienia
-pobieranie rozkazu docelowego z wyprzedzeniem
-bufor pętli
-przewidywane rozgałęzienia
-opóźnione rozgałęzienie
Cechy architektury potokowej
-instrukcje wykonywane na zakładkę
-każdy blok architektury jest wykorzystywany w każdym cyklu zegara
-czas wyszukiwania informacji musi być identyczny
-wzrost wydajności jest proporcjonalny do liczby faz instrukcji
-łatwiejsza realizacja danych
-instrukcje wykorzystują po kolei wszystkie zasoby procesora
-komplikacja sprzętu,
-każdy blok arch. proc. jest wykorzystywany w każdym cyklu zegarowym, przetwarzając inne fazy różnych instrukcji
-czas wykonywania wszystkich instrukcji musi być identyczny
-czas wykonywania pojedynczych instrukcji w przetwarzaniu potokowym nie zmniejsza się
Potoki i superpotoki:
Potoki i superpotoki - hazardy
*Hazardy strukturalne - procesor nie ma dość zasobów, aby obsłużyć w trybie potokowym dana kombinację instrukcji
*Hazardy sterowania - związane są z instrukcjami rozgałęzień w programie. Jeżeli instrukcja skoku nakazuje skok do instrukcji nieobecnej w pamięci podręcznej poziomu 1, wówczas konieczne jest pobranie instrukcji z pamięci głównej co powoduje zawieszenie wykonania potokowego.
*Hazardy danych
-próba czytania danych przed zapisem,
-próba zapisu przed zakończeniem czytania,
-próba zapisu przed zakończeniem zapisu.
Magistrale
Obsługa programowa przerwania:
DMA:
Wymiana danych pomiędzy elementami systemu komputerowego:
Specyfikacja magistrali:
Magistrala zestaw linii połączeń między elementami systemu komputerowego. Wadą jest ograniczoność, tylko żadna ilość urządzeń, opóźnienie przez sprzęt . Prędkość magistrali (czas obsługi wymiany danych, czas dostępu). Magistrala jest drogą zapewniającą komunikację między urządzeniami. Główną charakterystyczną cechą magistrali jest to, że jest ona wspólnym nośnikiem transmisji. Do magistrali dołącza się wiele urządzeń, a sygnały wysyłane przez którekolwiek z nich mogą być odbierane przez wszystkie pozostałe urządzenia. Jeśli dwa urządzenia nadawałyby w tym samym czasie, ich sygnały nakładałyby się i ulegały zakłócaniu. W określonym czasie może więc nadawać tylko jedno urządzenie. Często magistrala składa się z wielu dróg (linii) komunikacyjnych. Każdą linią mogą być przesyłane sygnały reprezentujące binarne 0 i 1. W ciągu pewnego czasu przez pojedynczą linię może być przekazana sekwencja cyfr binarnych. Wiele linii zawartych w magistrali można wykorzystywać razem do jednoczesnego (równoległego) transmitowania cyfr binarnych. Na przykład 8-bitowa jednostka danych może być przesyłana przez 8 linii magistrali. System komputerowy zawiera pewną liczbę różnych magistrali, które łączą zespoły komputera na różnych poziomach hierarchii. Magistrala łącząca główne zespoły komputera (procesor, pamięć, wejście-wyjście) nazywana jest magistralą systemową. Najczęściej spotykane struktury połączeń komputera wykorzystują jedną lub więcej magistrali systemowych.
Transakcja, protokół:
Hand shake:
Arbitraż, błędy działania:
Magistrala szeregowa USB:
Magistrala równoległa PCI:
System połączeń urządzeń peryferyjnych PCI (skrót od ang. Peripheral Component Interconnect) jest współczesną, szerokopasmową magistralą niezależną od procesora. W porównaniu z innymi, powszechnie spotykanymi magistralami PCI umożliwia uzyskanie większej wydajności systemu, jeśli są wykorzystywane szybkie podsystemy wejścia-wyjścia (np. sterowniki interfejsów sieciowych, sterowniki dysków i inne). Magistrala PCI pracująca w trybie 33 MHz pozwala na osiągnięcie teoretycznej maksymalnej przepustowości 132 MB/s. Jej 64 bitowe rozszerzenie (pracujące z częstotliwością 66 MHz) umożliwia transfer z maksymalną prędkością 264 MB/s. Magistrala PCI została zaprojektowana jako ekonomiczne rozwiązanie spełniające wymagania wejścia-wyjścia w nowoczesnych systemach. Wymaga niewielu mikroukładów i wspomaga działanie innych magistrali, związanych z magistralą PCI. Do magistrali PCI mogą być podłączone dwa rodzaje urządzeń: inicjatory (initiator) mogące przejmować kontrolę nad magistralą oraz jednostki podporządkowane (slave) zdolne tylko do transmisji danych. Transmisja może przebiegać między dwoma inicjatorami lub inicjatorem i jednostką podporządkowaną.
1
WE / WY
Jednostka sterujaca
CPU
Pamięć główna
Pamięć programu
CPU
Jednostka sterujaca
WE / WY
Pamięć danych
Taśmowe
Skojarzeniowe
O dostępie sekwencyjnym
O dostępie swobodnym
Pamięci
dyskowe
RAM
ROM
SRAM
DRAM