Architektura komputera
Architektura komputera - atrybuty systemu, które są widzialne dla programisty. Mają one wpływ na logiczne wykonywanie programów. Przykład atrybutów arch.:
lista rozkazów.
rozmiar reprezentacji różnych typów danych liczb lub znaków alfanumerycznych
mechanizmy we/wy lub metody adresowania pamięci`.
Co to jest organizacja :
Organizacja komputera dotyczy tych jednostek operacyjnych systemu i ich połączeń, które dotyczą specyfikacji typu architektury.
Przykłady atrybutów organizacji:
rozwiązania sprzętowe widoczne dla programisty, np.: sygnały sterujące, interfejsy między komputerami a urządzeniami zewnętrznymi lub wykorzystanie technologii pamięci.
Zagadnienia projekt. arch.
czy występuje rozkaz mnożenia
czy występuje rozkaz organizacji
czy jest wykorzyst. w symulatorze lub układzie mnożącym
Definicja struktury:
Struktura komputera jest to sposób wzajemnego powiązania składników.
Funkcje komputera:
przetwarzanie danych
przechowywanie danych
przenoszenie danych ze źródeł albo do odbiorców
sterowanie
Powiązanie między tymi funkcjami można przedstawić w następujący sposób:
Struktura komputera:
Jednostka centralna (CPU)[procesor] steruje działaniem komputera i realizuje przetwarzanie danych. Bywa kilka CPU albo jeden.
Komputer - przetwarzanie danych
We/wy - przesyłanie danych
Połączenia systemu zapewnia mechanizm łączności między we/wy.
Jednostka sterująca
Model architektury von Neumana
CPU PAMIĘĆ
Pamięć jest organizowana następująco:
Informacja jest przechowywana w jednakowej komórce o jednakowym rozmiarze.
W każdej komórce zawarte jest jednakowe słowo informacji. Znaczenie słów nie jest przypisane ich formie.
Sposób przechowywania danych i instrukcji jest identyczny. Kod słowa nie pozwala odróżnić instrukcji oddanych.
Interpretacja słowa zależy tylko od stanu maszyny w chwili pobierania słowa z pamięci.
Słowo |0|1|0|1| może być odczytane jako :
rozkaz
dana
Komórki tworzą zbiór uporządkowany, a każdemu słowu można jednoznacznie przypisać unikalny wskaźnik (akcji?) czyli adres określający pozycję sekw. słow. Zawartość pamięci może zmienić tylko procesor dokonując w wyniku przesłania rozkazu przesłanie nowego słowa do pamięci. W modelu von Neumania zadaniem procesowa jest przetwarzanie danych których jedynym źródłem jest pamięć główna. Wykonywanie rozkazu inicjuje pobrane z pamięci słowo interpretowane jako instrukcja. Rozkaz zaczyna wykonywany proces. Jeżeli kolejne rozkazy umieszczono w kolejnych lokacjach - adres. Możliwe jest implikowanie. Gdy układ wytwarza adres kolejny rozkaz podczas wykonywania rozkazu poprzedniego nazywa się licznikiem rozkazu.
Wykład 10.10.03
Dane i rozkazy są umieszczone w tej samej pamięci.
Architektura Harwardzka - pamięć jest podzielona na część dla rozkazu i część dla danych.
Jak jest zorganizowane sterowanie?
Jeżeli zachodzi potrzeba zmiany instrukcji poprzez alternatywną realizację rozkazu lub cofnięcie się w programie musi być wywołane rozkazem rozgałęzienia lub skoku.
Branch, jump powodują one nową kolejność instrukcji. Jedną z funkcji procesora jest kontroler poprawności wykonywanych operacji oraz możliwość reagowania w dowolnym czasie na wydarzenia wewnętrzne (tryb przerwań asynchronicznych).
Modyfikacja koncepcji von Neumania - architektura Harwardzka.
Twórca architektury - Aiken.
Polega ona na rozdzieleniu pamięci głównej na niezależnie dostępne pamięci danych i rozkazów. Ta zmiana umożliwia jednoczesne pobrania rozkazu i danych.
Rozmieszczenie modelu klasycznego.
Wprowadza się stos programu.
Stos programu - części pamięci o dostępie sekwencyjnym (szeregowym).Działa jako bufor LIFO. Takie rozwiązanie upraszcza wywołanie procedur i umożliwia realizację rekursji a więc wywołanie procedury przez nią samą. Wprowadza się różne typy adresowania w celu umożliwienia elastycznego i dynamicznego adresowania. Opracowano pamięć wirtualną jako metodę adresowania symbolicznego.
Możliwości zwiększania efektywności przetwarzania:
poprawienie sterowania
ulepszenie procesu wymiany danych
nowe zasady przetwarzania informacji np.: przetwarzanie ewolucyjne w sieciach neuronowych
przetwarzanie danych rozmytych (logika rozmyta, algorytmy genetyczne)
Cykl - czas, pomiędzy kolejnymi stanami komputera.
Proces - stan początkowy komputera i sekwencja rozkazów
Rozkaz - każdy rozkaz jest wykonywany w kolejnych cyklach procesora.
KOLEJNOŚCI WYKONYWANIA ROZKAZÓW
1.F fetch - pobranie rozkazu z pamięci
2.D decode - dekodowanie w dekoderze w celu wytworzenia sygnałów sterujących
3.R read - odczyt algorytmu z pamięci (odczyt danych)
4.E execute - wytworzenie wyniku lub wykonanie w jednostce algorytmu logicznego.
5.W write - zapamiętanie wyników w pamięci
| Fi |Di |Ri|Ei |Wi |Fi+1| Di+1| Ri+1 |Ei+1| Wi+1| i - ty rozkaz i-ty +1 rozkaz
OGRANICZENIA PRZETWARZANIA KOMPUTERA
Ograniczenia są następujące:
sposób organizacji komputera
szybkość procesora (zegar procesora)
częstość komunikacji procesora z pamięcią
Czas dostępu do danych zależy od szybkości transmisji oraz szybkości selekcji. Ostatnia szybkość jest propozycją do algorytmu liczb danych. Gdyby zwiększyć liczbę rejestrów to częstość komunikacji procesora z pamięcią spada. Jednak rozbudowa pliku rejestrowego utrudnia adresowanie rejestrów oraz dekodowanie rozkazów co w efekcie wydłuży czas dostępu do danych.
Umieszczenie programu w rejestrze procesora jest niemożliwe ponieważ nie są one dostatecznie długie. Jednocześnie oczywiste jest że przy wykonywaniu aktualnego fragmentu programu potrzebne są te dane i rozkazy z których komputer korzysta. Ten efekt lokalności stał się przesłanką utworzenia bufora pamięci głównej nazywanego pamięcią podręczną (cache memory). Wprowadzona jest do niego kopia części programu aktualnie wykonywanego przez komputer. Pamięć jest na tyle szybka że jest porównywalna z czasem dostępu do rejestru.
Jeżeli pamięć ma strukturę blokową, to możliwe jest współbieżne wykonywanie cykli pamięci i skrócenie czasu wyboru co skraca czas dostępu.
Środkami zmniejszania bariery przepustowości są:
implementacja rejestrów,
stosowanie pamięci wewnętrznej (cache memory)
stosowanie pamięci blokowych (przeplot pamięci)
ROZSZERZONA KLASYCZNA STRUKTURA VO NEUMANIA
Wykład III 17.10.03
Jeżeli czas dostępu jest zminimalizowany to ograniczenia przepustowości jest wydajność procesora.
Wydajność - jest określona nie przez średni czas wykonywania rozkazu lecz przez średnią liczbę rozkazów w jednostce czasu. Ta średnia zależy nie tylko od częstotliwości zegara ale również od sposobu wykonania instrukcji.
Jeżeli dysponujemy pojemnym plikiem rejestrowym, który umożliwia przechowywanie większości potrzebnych danych, a więc zmniejszenie liczby transferów do/od pamięci to oddzielimy cykl pobrania operandy jest zbędny, zaś niezbędne mogą być wykonane w cyklu specjalnego rozkazu.
| Fi |Di |Ri|Ei |Wi |Fi+1| Di+1| Ri+1 |Ei+1| Wi+1|
Jeżeli układy wykonujące poszczególne etapy realizacji rozkazu są odseparowane (każdy etap przez inny układ)) to możliwe jest współbieżne wykonywanie kilku rozkazów w trybie potokowym.
RYSUNEK
Dalsze skrócenie czasu wykonania isntr. Polega na podziale każdego etapu na podetapy.
RYSUNEK
Liczba podetapów nie może być dowolnie duża gdyż zwiększa się liczba niezbędnych buforów separujących co zwiększa narzut czasu na cele organizacyjne.
Dalszy wzrost wydajności przetwarzania polega na zwielokrotnieniu jednostki wykonawczej i współbieżne wykonywanie rozkazów w nich. Jest to przetwarzanie superskalarne lub skalowane.
Kiedy przetwarzanie jest niemożliwe
Jeżeli między rozkazami nie występuje konflikt danych, zasobów albo konflikt sterowania. Konflikty te zmniejszają wydajność potoku użycia tej samej danej.
Konflikt zasobu jest to jednoczesne żądanie dostępu do zasobu w pamięci.
Aby wyeliminować konflikt jednoczesnego dostępu do pamięci wewnętrznej pamięć podręczna rozdziela się na osobne pamięci danych i pamięci kodów.
Pamięć podręczna jest buforem pamięci głównej, zawiera tylko kopię danych pamięci głównej.
Nie zawsze jest konieczne aby kolejność rozkazów była wykonywana. Zmiana kolejności może wyeliminować przestoje związane z konfliktem danych i dostępu.
Poziomy maszynowe komputera
Różnią się charakterystyką warstwy komputera.
L0 - przetwarzanie sygnałów (najwyższy)
L1 - struktura logiczna (firmware)
L2 - system operacyjny
L3 - język assemblera (assembly language)
L4 - język algorytmiczny (hihg-level)
L5 - Język makropoleceń (application program).
Wykład 24.X.03
RYSUNEK
Interpretacja mikroprogramu - jest ogólnym rodzajem konwencji wykonującą operacje elementarne z poziomu architektonicznej listy rozkazów a polecenia atomowe (mikrorozkazy), które są bezpośrednio zamieniane na sygnały sterujące w przetworniku rozkazów. Poziom implementacji maszyny jest to struktura logiczna składająca się z bloków funkcjonalnych maszyny i mikroprogramu.
Kod maszynowy - jest to najważniejszy poziom programu identyfikacji architektonicznej maszyny rzeczywistej. Rzadko jest zapisywany w postaci dwójkowej lub szestnastkowej, najczęściej przy pomocy mnemoników.
MNEMONIK[argument I][argument II][argument III]
Mnemonik wraz z argumentem jednoznacznym określa pojedynczy rozkaz procesora.
System operacyjny jest to poziom hybrydowy, ponieważ oprócz listy rozkazów użytkownik dysponuje standardowymi usługami sytemu, np. zarządzanie plikami lub komunikacja wej/wyj (urz. peryferyjne).
Język algorytmiczny- (Pascal, Fortran, C++) w tym języku architektonicznym maszyny wirtualnej jest opisana w postaci listy poleceń języka. Jego składnik dostępnych typów danych i biblioteki podstawowych f-cji.
ASSEMBLER- jest najniższym poziomem języka symbolicznego w którym są dostępne elementarne operacje, f-cje systemu operacyjnego i operacje ułatwiające użycie pamięci.
Makroassembler- jest to assembler umożliwiający definiowanie nowych struktur danych i instrukcji. Konwersja może się odbywać jako kompilacja. Jest to tłumaczenie algorytmu programu na sekwencje rozkazów danych algorytmów pamięci. Kompilacja pozwala uniknąć wielokrotnych konwersji powtarzalnych części programu i umożliwia wytworzenie kodu wynikowego, wymaga jednak dużo pamięci.
Pseudokompilacja - polega na generowaniu przez interpreter kodu pośredniego, który jest następnie niezwłocznie wykonywany.
Metody konwersji między poziomami komputera
RYSUNEK
Konwersja międzypoziomowa powoduje tzw. Szczeliny znaczeniowej (semantic gap), która uniemożliwia jednoznaczną konwersję odwrotną z poziomu niższego na wyższy.
NIE MOŻNA WIĘC DOKONYWAĆKONWERSJI PROGRAMÓW NA POZIOMIE KODU MASZYNOWEGO.
Jest to tzw. problem przenośności programu (software portability)
Architektura listy rozkazów - lista rozkazów jest to najniższa warstwa abstrakcyjnego opisu komputerów (instrukction set architecture, ISA)
Specyfikacja rozkazów na poziomie maszynowym
Sposób adresowania danych (identyfikacji)
Obejmuje definicję, funkcjonalny opis działania składnię w rotacji mnemonicznej, dozwolone cechy operandów, kody warunków wytwarzanych podczas wykonywania rozkazów, wykaz wyjątków wykonywania oraz sposób reakcji na ich pojawienie się i wreszcie format kodu maszynowego.
Wykład 21.XI.03
cd. zmienno-przecinkowość liczb
1)
x=sig|x|*2w
1.011010*22=0,1011010*23 - postać znormalizowana liczby zmiennoprzecinkowej.
11011010 | 00000011
8 bitów | 8 bitów
Reprezentacja podwójnej precyzji
10 bitów
16 bitów | 8 bitów
Wykonywanie dodawania dwóch liczb zmiennoprzecinkowych
2) ustawienie przecinków obu liczb w tym samym miejscu poprzez arytmetyczne przesuwanie mniejszej liczby tak długo aż oba wykładniki będą takie same.
3) Dodawanie mantys i normalizacja wyniku
Procesory RISC - reduction instruction set computer , Procesory CISC - complex instruction set computer.
Brak precyzyjnej definicji tego procesora lecz większość ma następujące cechy.
CISC
Duża liczba rozkazów 100-250
Istnieją rozkazy realizujące specjalizowanie zadania obok rozkazów obsługujących operacje z pamięci i do pamięci.
Duża liczba trybów adresowania 5-20
Duży zakres rozkazów o różnych długościach i czasach wykonania
Mikroprogramowalna jednostka sterująca RISC.
RISC
Stosunkowo mało rozkazów wykonywanych w pojedynczym cyklu
Stosunkowo niewiele trybów adresowania.
Formaty rozkazów mają stałą długość i są łatwe do zdekodowania.
Dostęp do pamięci ograniczony do rozkazów store i load
Stosunkowo dużo inwersalnych rejestrów
Argumenty rozkazów są zapisywane raczej w rejestrach niż pamięci operacyjnej
Jednostka sterująca jest zrealizowana układowo
Intensywne wykorzystanie przetwarzania potokowego w tym potokowego wykonywania rozkazów
Kompilatory wykorzystują arch. Potokową
Skomplikowane f-cje są zaimplementowane częściej programowo niż sprzętowo.
Wykład 28.11.03
Pamięci wewnętrzne
Generalia-podstawowa wartość pamięci
Położenie: w procesorze, pamięć wewn./zewn. Komputera
Pojemność: liczba słów pamiętanych, rozmiar słowa (liczba bitów w komputerze)
ROM
210 ( liczba słów) x 4 (ilość bitów w słowie)
jednostka transferu
sposób dostępu (sekwencyjny, bezpośredni, swobodny, skojarzeniowy(asocjacyjne)).
wydajność pamięci
czas cyklu
szybkość transferu
fizyczny rodzaj pamięci (półprzewodnikowe, laserowe, optyczne)
Własności fizyczne
ulotne (dynamiczne - potrzebują odświeżania), nieulotne (statyczne)
pamięci mogą być wymazywalne, niewymazywalne.
Sposób dostarczania do komórki pamięci
Dostęp sekwencyjny
Do jednostek danych (rekordów) dostęp jest możliwy w określonej sekwencji liniowej). Do wydzielenia jednostki danych wykorzystywane są informacje adresowe, np. pamięć taśmowa. Czas dostępu sekwencji dla różnych adresów może być bardzo różny.
Dostęp bezpośredni
Zapis i odczyt wykonywane są wg tego samego mechanizmu jednak poszczególne bloki lub rekordy mają unikatowy adres oparty na lokacji fizycznej. Dostęp jest osiągany najpierw prze bezpośredni dostęp do najbliższego otoczenia komórki po którym następuje sekwencyjne przeszukiwanie i liczenie lub oczekiwanie w celu osiągnięcia lokacji fizycznej np. pamięć dyskowa. Czas dostępu jest zmienny.
Pamięć swobodna
Każda adresowana lokacja w pamięci ma unikatowy, fizycznie wbudowany mechanizm „wbudowania”??? Czas dostępu jest stały. Dowolna lokacja jest wybierana bezpośrednio np. pamięć główna.
dostęp skojarzeniowy
Polega na porównywaniu zgodności wybranych bitów słowa adresowego dla wszystkich słów jednocześnie. Słowo stanowiące zawartość komórki jest wyprowadzane z pamięci raczej na podstawie części swojej zawartości np. pamięci podręczne typu asecjocyjnego.
Najważniejsze dla użytkowników po pojemność i wydajność pamięci. Miarą wydajności są3 parametry:
czas dostępu dla pamięci o dostępie swobodnym. Jest to czas niezbędny do zrealizowania operacji odczytu lub zapisu.
Czas cyklu pamięci. Składa się z czasu dostępu oraz dodatkowego czasu, który musi upłynąć zanim może być zrealizowany kolejny dostęp.
Szybkość przesyłania danych (transferu). Jest to szybkość z jaką dane mogą być wprowadzane lub wyprowadzane z pamięci.
Hierarchia pamięci pod względem szybkości i pojemności.
Rejestr
Pamięć podręczna
Pamięć główna
Dyskowa pamięć podręczna
Pamięć dyskowa
Pamięć taśmowa
Dysk optyczny
Wykład 5.12.03
Pamięć podręczna zawiera kopię danych z pamięci głównej. Przy pobieraniu słowa z pamięci najpierw następuje sprawdzenie czy znajduje się ono w pamięci podręcznej.
Ponieważ wierszy w pamięci podręcznej jest mniej niż bloków, w pamięci głównej potrzebny jest algorytm odwzorowania bloków pamięci głównej w wierszach pamięci podręcznej.
Po osiągnięciu dostatecznie dużego stopnia integracji i układów stało się możliwe umieszczenie pamięci podręcznej w tej samej kostce co procesor, co skróciło czas osiągnięcia danej i zwolniło dostęp do magistrali. Obecnie pamięć podręczna jest dzielona na II części. I cz. dla rozkazów a II cz. dla danych zwłaszcza w procesorach potokowych.
Natomiast pamięć niedzielona ma tę zaletę że tylko jedna może być zaprojektowana i wydrożona.
Półprzewodnikowa pamięć główna.
Rodzaj pamięci |
Kategoria |
Wymazywanie |
Zapis |
|
||
RAM |
zapis/odczyt |
Elektryczne na poziomie bajtu |
Elektrycznt |
TAK |
||
ROM |
Odczyt |
Niemożliwe |
Maski |
NIE |
||
PROM |
Odczyt |
Niemożliwe |
Elektryczny |
NIE |
||
PROM(EPROM) |
Głównie odczyty niekiedy zapis |
Światło ultrafioletowe. |
Elektryczny |
NIE
|
||
PROM(EEPROM) |
Gł. odczyt |
Elektrycznie przy pomocy prądu na poziomie bajtu |
Elektryczny |
NIE |
Jeśli zasilanie RAZ zanika, zanikają dane. Ramy mogą być statyczne lub dynamiczne. Dynamiczne są zbudowane z matryc kondensatorów i muszą być okresowo odświeżane. Statyczne są zbudowane z przerzutników. Komórki dynamiczne są mniejsze o prostsze dlatego są gęściej napakowane i tańsze. W przypadku dużych pojemności (w sensie ilości pamięci). Koszty układów odświeżania danych maleją i nie odgrywają roli. Stąd duże pamięci są zwykle zbudowane z ram-ów dynamicznych, natomiast ramy statyczne są nieco szybsze od dynamicznych.
Wykład 12.12.03
Pamięci ROM są stosowane do mikroprogramowania do podprogramów bibliotecznych
Przemieszczenie
Sterowanie
Pamięć
Sterowanie
KOMPUTER
JEDN.CENTR.
PROCESOR
POŁĄCZENIE SYSTEMOWE
PAMIĘĆ GŁÓWNA
URZĄDZENIA WE/WY
URZĄDZENIA PERYFERYJNE
MAGISTRALA
PAMIĘĆ
WE/WY
CPU
JEDNOSTKA STERUJĄCA
POŁĄCZENIA WEWNĘTRZNE
JEDNOSTKA ARYTMETYCZNIE LOGICZNA (ALU)
REJESTRY
(RODZAJ PAMIĘCI) (SZYBKIE ALBO KRÓTKIE)
ALU
MAGISTRALA
WEWNĘTRZNA CPU
REJESTRY
JEDNOSTKA STERUJĄCA
UKŁADY LOGICZNE SZEREGOWANIA
REJESTRY DEKODERY JEDNOSTKI
STERUJĄCEJ
PAMIĘĆ STERUJĄCA
J.STERUJĄCA
J.WYKONAWCZA
ADRES
SŁOWO
SŁOWO
SŁOWO
SŁOWO
DANYCH
STEROWANIE
WE
WY
STYEROWANIE
WYK.
WYK.
REJESTRY
CACHE
MMV
CACHE
STOS
PAMIĘĆ
KOPROCESOR