Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykładowca: Dr hab. Marek J. Greniewski

Podobne prezentacje


Prezentacja na temat: "Wykładowca: Dr hab. Marek J. Greniewski"— Zapis prezentacji:

1 Wykładowca: Dr hab. Marek J. Greniewski
Architektura systemów komputerowych Kierunek: Informatyka – Studia inżynierskie Typ przedmiotu: obowiązkowy Wykładowca: Dr hab. Marek J. Greniewski

2 Metody nauczania Nauczanie odbywa się dwutorowo:
(1) poprzez wykład, mający za cel pokazanie jak wygląda współczesna architektura systemów komputerowych; (2) poprzez ćwiczenia prowadzone w salach komputerowych, dla nauczenia studentów podstaw posługiwania się pakietem programów Assemblera MASM (lista podstawowych rozkazów assemblera MASM, Linker, Debager) oraz zastosowania algebry Boole’a do projektowania układów sekwencyjnych i do projektowanie układów sekwencyjnych.

3 Wymagania wstępne Przyjmuję, że student posiada wprawdzie pewną praktyczną wiedzę w zakresie informatyki, a w szczególności rozumie podstawowe zasady działania komputera osobistego. W takiej sytuacji wymagania wstępne są trudne do sformułowania.

4 Cele przedmiotu Celem przedmiotu jest przekazanie podstawowej wiedzy w zakresie architektury i organizacji systemów komputerowych, a w szczególności: Organizacji komputera von Neumana, organizacji komputera z systemem przerwań, organizacji komputera z wielodostępem, organizacji komputera wieloprocesorowego. Projektowanie prostych układów kombinacyjnych i sekwencyjnych. Obliczeń na różnych reprezentacjach liczb: całkowitych i rzeczywistych. Zasady działania i posługiwania się assemblerem (na przykładzie assemblera i80-86) i pisania prostych programów w assemblerze. Rozumienie mechanizmów potoku wykorzystywanych we współczesnych procesorach.

5 Treści merytoryczne wykładu przedmiotu

6 Techniki cyfrowe i systemy cyfrowe
Maszyna stanowa – zasady działania i komputer jako maszyna stanowa. Koncepcja komputera von Neumana, na przykładzie logiki komputera IAS (Organizacja komputera, Rejestry komputera). Lista rozkazów i przykłady programowania komputera IAS. Generacje technologiczne komputerów.

7 Cyfrowe układy logiczne
Układy kombinacyjne – czyli układy działające w ciągu pojedynczego impulsu zegarowego komputera i układy sekwencyjne działające w toku wykonywania serii impulsów zegarowych komputera. Algebra Boole’a i jej zastosowanie do opisu funkcjonowania układów kombinacyjnych. Układy kombinacyjne (Bramki w tym bramki typu NAND i NOR, Definiowanie funkcji układu, Multiplekser, Dekoder, Pamięć stała ROM, Sumatory). Układy sekwencyjne (Przerzutniki, Rejestr równoległy, Rejestr przesuwny, Liczniki).

8 Maszynowa reprezentacja danych i realizacja operacji arytmetycznych
Zapis liczb i systemy liczbowe (Dziesiętny pozycyjny system liczbowy, Podstawa systemu liczbowego, Binarny system liczbowy i szesnastkowy system liczbowy, Liczby ze znakiem i bez znaku, Zapis dziesiętny kodowany binarnie BCD, Zapis stałopozycyjny, Zapis zmiennopozycyjny). Maszynowa reprezentacja tekstu (Konwersja pomiędzy liczbą i tekstem). Arytmetyka binarna i działania na bitach (Arytmetyka liczb całkowitych, Arytmetyka liczb zmiennoprzecinkowych – pojedyncza i podwójna precyzja, Arytmetyka dziesiętna na liczbach BCD). Dane znakowe (Zestaw znaków ASCII, Zestawy znaków UNICODE, Łańcuchy znakowe i operacje na łańcuchach znakowych).

9 Organizacja komputera na poziomie assemblera
Architektura procesów rodziny widziana przez programującego (Rejestry procesora 8086, Rejestr FLAGS, Znaczniki stanu w rejestrze FLAGS, Segmentowa organizacja pamięci operacyjnej, adresowanie argumentów). Assembler MASM (lista podstawowych rozkazów assemblera MASM). Program konsolidujący Linker. Program uruchomieniowy Debager. Tryby pracy znakowy i graficzny

10 Interfejsy i komunikacja oraz organizacja i architektura systemów pamięci
Magistrale systemowe (Linie sterowania, adresowe i danych, Koordynacja czasowa, Funkcjonalność magistrali, Przykład magistrala PCI, ISA i AGP, Szerokość od 8 i 16 bitów – przez 32 bitowe, do 64 bitowych magistrali). Podstawowe własności komputerowych systemów pamięci (Położenie, Pojemność, Jednostka transferu, Sposób dostępu, Wydajność, Rodzaj fizyczny, Własności fizyczne, Organizacja). Korekcja błędów. Pamięci wewnętrzne (Przegląd organizacji pamięci RAM i FLASH). Pamięci zewnętrzne (Pamięć dyskowa, Pamięć optyczna, Pamięć RAID). Urządzenia wejścia – wyjścia (Moduł wejścia-wyjścia, Sterowanie i taktowanie, komunikacja z procesorem, Komunikacja z urządzeniem, Buforowanie danych, Wykrywanie błędów, Programowanie wejścia-wyjścia). System przerwań (Przetwarzanie przerwań, Sterownik przerwań Intel 8259A). Układ DMA. Interfejsy SCSI, IDE/ATA i USB. Wykorzystanie mechanizmu stosu do obsługi przerwań i wieloprogramowości.

11 Organizacja jednostki centralnej (rozwój architektury od 8086 przez 80486, do Intel Core i7)
Magistrale wewnętrzne procesora z interfejsem magistrali systemowych. Rejestry i pamięci asocjacyjne (Odwzorowania: bezpośrednie, skojarzeniowe i sekwencyjno-skojarzeniowe, Algorytmy zapisu, Rozmiary bloku, Pamięci podręczne jedno i dwu-poziomowe). Jednostka arytmetyczno-logiczna Koprocesor zmiennego przecinka (3 formaty: 32 bity, 64 bity i 80 bitów). Mikroprogramowana jednostka sterująca (Mikrooperacje, Cykl sterowania)

12 Wieloprocesorowość i architektury alternatywne
SISD – Single Instruction and Single Data, SIMD – Single Instruction and Multi Data, MIMD – Multi Instruction and Multi Data, Protokół MESI obsługi pamięci podręcznych w wieloprocesorowym komputerze (modified, exclusive, shared, invalid), który wykorzystuje 2 bitowy wskaźnik wierszy pamięci podręcznej. Systemy wektorowe.

13 Omówienie pytań egzaminacyjnych
Wyjaśnić pojęcie maszyny stanowej i podać przykłady maszyn stanowych. Przedstawić architekturę komputera Johna von Neumana na przykładzie komputera IAS. Omówić funkcjonalność realizowaną przez listę rozkazów komputera IAS. Wyliczyć i scharakteryzować poszczególne generacje technologiczne komputerów. Wyjaśnić pojęcie logicznych układów kombinacyjnych i podać przykłady takich układów i ich zastosowania w komputerach.

14 Omówienie pytań egzaminacyjnych
Wymienić i omówić funkcjonalność podstawowych bramek logicznych. Przedstawić funkcjonalność bramek NOR i NAND i wyjaśnić ich znaczenie we współczesnych technologiach układów scalonych VLSI. Przedstawić logikę układu kombinacyjnego 7-segmentowego wyświetlacza na diodach świecących (LED) i pokazać tabliczkę zero jedynkową wartości segmentów dla cyfr dziesiętnych. Przedstawić dwie realizacje bramkowe funkcji Boole’a trzech zmiennych . Przedstawić schemat realizacji bramkowej sumatora równoległego 8 – bitowego.

15 Omówienie pytań egzaminacyjnych
Wyjaśnić pojęcie logicznych układów sekwencyjnych i podać przykłady takich układów i ich zastosowania w komputerach. Wymienić i omówić funkcjonalność podstawowych rodzajów przerzutników. Omówić funkcjonalność rejestru równoległego i narysować schemat bramkowo – przerzutnikowy rejestru równoległego. Omówić funkcjonalność rejestru szeregowego i narysować schemat bramkowo – przerzutnikowy rejestru szeregowego. Wyjaśnić zasady konwersji pomiędzy zapisem dziesiętnym a binarnym liczb.

16 Omówienie pytań egzaminacyjnych
Wyjaśnić zasady arytmetyki uzupełnieniowej versus arytmetyki liczb z bitem znaku. Wyjaśnić zasady zapisu dziesiętnego kodowanego binarnie BCD. Wyjaśnić co rozumiemy przez skalowane formaty liczbowe. Omówić zestawy znaków: ASCII, UNICODE i ich przeznaczenie. Wyjaśnić pojęcie łańcucha znaków i stosowane formaty.

17 Omówienie pytań egzaminacyjnych
Omówić zasadę tworzenia formatów zmiennoprzecinkowych oraz formaty: pojedynczej długości, podwójnej długości i 80 bitowy. Omówić algorytmy mnożenia i dzielenia liczb w formacie zmiennoprzecinkowym. Wyjaśnić znaczenie liczby zmiennoprzecinkowej NaN i przyczyn jej wprowadzenia. Wyjaśnić zasady współpracy procesora z urządzeniami zewnętrznymi z wykorzystaniem układu DMA. Przedstawić podstawową architekturę procesora i80-86.

18 Omówienie pytań egzaminacyjnych
Omówić funkcjonalność modułu arytmetyczno-logicznego procesora. Omówić funkcjonalność modułu koprocesora. Omówić funkcjonalność modułu rejestrów i pamięci asocjacyjnej procesora. Omówić funkcjonalność modułu sterowania i wewnętrznej magistrali procesora. Omówić zasady działania mikroprogramowanej jednostki sterującej.

19 Omówienie pytań egzaminacyjnych
Omówić zasadę wykonywania instrukcji w potoku, wraz z uwzględnieniem przypadku pojawienia się przerwy. Wyjaśnić miejsce języka assembler w hierarchii języków programowania. Wymienić grupy funkcjonalne instrukcji assemblera MASM. Omówić zasady organizacji i tryby adresacji pamięci operacyjnej RAM. Omówić cykl pobierania danych i rozkazów z pamięci RAM.

20 Omówienie pytań egzaminacyjnych
Omówić funkcjonalność interfejsu SCSI. Omówić funkcjonalność interfejsu IDE/ATA. Omówić funkcjonalność interfejsu USB. System wieloprocesorowy i zasady funkcjonalności protokółu MESI. Porównać zasady architektoniczne SISD oraz MIMD.

21 Literatura podstawowa
1. William Stallings Organizacja i architektura systemów komputerowych (wyd. II lub późniejsze), Wydawnictwa Naukowo-Techniczne, Warszawa 2003. 2. Randall Hyde Profesjonalne programowanie (części 1 i 2), Wydawnictwo Helion, Gliwice 2005. 3. Eugeniusz Wróbel Praktyczny kurs assemblera (wydanie II), Wydawnictwo Helion, Gliwice 2011. 4. Krzysztof Wojtuszkiewicz Jak działa komputer? (części 1 i 2), Wydawnictwo Naukowe PWN, Warszawa 2009.

22 Układy względnie odosobnione
Cybernetyka jest nauką o sterowaniu w organizmach żywych, maszynach oraz społeczeństwach. Za twórcę cybernetyki uważa się amerykańskiego matematyka Norbeta Wiener’a, który w latach 1943 – 1944, zorganizował wielodziedzinowy zespół badawczy, który prowadził prace do 1947 roku. Jednym z działów cybernetyki jest teoria układów względnie odosobnionych, sformułowana przez Henryka Greniewskiego (Logique et cybernètique) - w połowie lat pięćdziesiątych XX wieku i przedstawiona na Pierwszym Kongresie Cybernetyki w Namur (Belgia) w 1956 roku. Teoria układów względnie odosobnionych odegrała znaczącą rolę przy tworzeniu podstaw modelowania procesów zachodzących zarówno w organizmach żywych, jak organizacjach, społeczeństwach i maszynach. Copyright by Marek J. Greniewski & Piotr Greniewski

23 Układ względnie odosobniony
Układ względnie odosobniony kontaktuje się ze swoim otoczeniem jedynie za pośrednictwem swoich wejść i wyjść. Układ względnie odosobniony działa w czasie, według określonego kalendarza. Każde z wejść i wyjść układu względnie odosobnionego, przebiega określony zbiór wartości, czyli ma określony repertuar stanów wyróżnionych. Relacje pomiędzy stanami wejść i wyjść mogą być rozpatrywane: prospektywnie (czyli jakim kombinacjom stanów wejść odpowiadają jakie kombinacje stanów wyjść) albo retrospektywnie (czyli jakim kombinacjom stanów wyjść odpowiadają jakie kombinacje stanów wejść). Wejścia (1) (2) (n) (1) (2) (m) Wyjścia Układ względnie odosobniony Copyright by Marek J. Greniewski & Piotr Greniewski

24 Sprzężenie wewnętrzne układu
Układ względnie odosobniony może posiadać tak zwaną pamięć. Pamięć układu względnie odosobnionego można opisywana jako sprzężenie wewnętrzne wyjścia układu z wejściem . Dla układów wchodzących w skład systemów zarządzania, „pamięć” może być traktowana dwojako: Jako rejestr (zbiór) danych Jako wiedza – doświadczenie układu. Układ względnie odosobniony Pamięć

25 Maszyna stanowa Układ względnie odosobniony z pamięcią nazywamy również maszyną stanową albo automatem skończonym. O stanie wyjść maszyny stanowej decydują dwa czynniki: aktualny stan wejść i stan wewnętrzny (czyli stan pamiętany). Maszyna stanowa składa się więc z kilku części: Maszyna ma zbiór stanów oraz zasady regulacji przechodzenia z jednego stanu do drugiego w zależności od stanów wejścia. Maszyna ma zbiór stanów wejścia , z którego pochodzą pojawiające się na wejściu sygnały (symbole). Maszyna ma swój stan początkowy i zbiór stanów akceptujących (zwanych również stanami końcowymi). W języku matematyki maszynę stanową definiujemy jako uporządkowaną piątkę: (1) zbiór stanów, (2) zbiór sygnałów wejściowych, (3) funkcje przejścia, (4) stan początkowy, (5) zbiór stanów końcowych.

26 Maszyna stanowa Przykładem maszyny stanowej jest zamek mechaniczny. W zamku mechanicznym tylko jeden stan wejścia, który może spowodować zmianę stanu wewnętrznego i stanu wyjścia. Temu stanowi wejścia odpowiada użycie właściwego klucza. Bardziej złożonym przykładem maszyn stanowej jest zamek elektroniczny, który z reguły posiada wiele kluczy, z których każdy na przykład jest przypisany innemu użytkownikowi zamka. Najprostszą maszyną stanowa jest przerzutnik SR. Maszynami stanowymi przykładowo są: Maszyny szyfrujące Współczesne komputery.

27 Krótki zarys historii Prekursorzy podstaw techniki obliczeniowej i informatyki. Pionierzy komputerów (John von Neuman i Alan Turing) i podstaw programowania, w tym programowania symbolicznego oraz pierwszych aplikacji. Druga generacja technicznych komputerów i kompilatorów języków wyższego rzędu (FORTRAN, COBOL) oraz metod zarządzania przedsięwzięciami (PERT, CPM). Trzecia generacja komputerów, systemów operacyjnych i systemów zarządzania bazami danych oraz powstania zaawansowanych programów aplikacyjnych. Superkomputery – czyli komputery wektorowe. Komputery czwartej generacji technicznej, systemu operacyjnego UNIX, jeżyka programowania C i zalążków sieci komputerowych w tym protokółów TCP/IP. Komputery osobiste, edytorów tekstów, arkuszy kalkulacyjnych i lokalne sieci komputerowe. Okres rewolucji Internet, powstania technologii Data Warehousing, technologii CRM oraz e-Business’u.

28 Koncepcja Johna von Neumanna
W 1945 roku po raz pierwszy została opublikowana idea komputera, który w pamięci wewnętrznej przechowuje program – według którego działa komputer, jest ona przypisywana jednemu z konsultantów projektu ENIAC – amerykańskiemu matematykowi węgierskiego pochodzenia John'owi von Neumanowi. Idea ta, znana jako koncepcja przechowywania programu, jest podstawą działania współczesnych komputerów. Należy wspomnieć, że niemal w tym samym czasie podobna koncepcja została opracowana również przez brytyjskiego matematyki Alana Turinga. Według tej idei opracowany został projekt nowego komputera von Neumana – nazwanego EDVAC (Electronic Discrete Variable Computer).

29 Architektura von Neumanna
Wspólna pamięć do przechowywania zarówno rozkazów jak i danych. Pamięć jednowymiarowa, złożona z kolejno ponumerowanych komórek o jednakowej wielkości. Brak jawnego rozróżniania rozkazów i danych. Brak jawnej specyfikacji typów danych. Praca sekwencyjna - przed rozpoczęciem wykonywania kolejnego rozkazu musi zostać zakończone wykonywanie rozkazu chronologicznie poprzedniego. Każdy rozkaz określa jednoznacznie adres następnego.

30 A. Pięć zasad komputera wg von Neumanna
Po pierwsze, ponieważ urządzenie to jest przede wszystkim komputerem, najczęściej będzie wykonywało elementarne operacje matematyczne - dodawanie, odejmowanie, mnożenie, dzielenie. Jest więc rozsądne, że powinno posiadać wyspecjalizowane "organy" do wykonywania tych operacji. Należy jednak zauważyć, że chociaż powyższa zasada jako taka brzmi rozsądnie, to szczegółowy sposób jej realizacji wymaga głębokiego zastanowienia[...]. W każdym przypadku centralna, arytmetyczna część urządzenia będzie prawdopodobnie musiała istnieć, co oznacza występowanie pierwszej specyficznej części komputera: CA.

31 B. Pięć zasad komputera wg von Neumanna
Po drugie, logiczne sterowanie urządzeniem, to znaczy odpowiednie szeregowanie jego operacji może być najefektywniej realizowane przez centralny organ sterujący. Jeżeli urządzenie ma być elastyczne, to znaczy możliwie uniwersalne, należy rozróżniać specyficzne rozkazy związane z określonym problemem i ogólne "organy" sterujące, dbające o wykonanie tych rozkazów - czymkolwiek by one nie były. Te pierwsze muszą być w jakiś sposób przechowywane; te drugie - reprezentowane przez określone działające części urządzenia. Przez sterowanie centralne rozumiemy tylko tę ostatnią funkcję, a "organy", które ją realizują, tworzą drugą specyficzną część urządzenia: CC.

32 C. Pięć zasad komputera wg von Neumanna
Po trzecie, jakiekolwiek urządzenie, które ma wykonywać długie i skomplikowane sekwencje działań (w szczególności obliczeń), musi mieć odpowiednio dużą pamięć[...]. Rozkazów kierujących rozwiązywaniem skomplikowanego problemu może być bardzo dużo, zwłaszcza wtedy, gdy kod jest przypadkowy (a tak jest w większości przypadków). Muszą one być pamiętane [...]

33 D. Pięć zasad komputera wg von Neumanna
Trzy specyficzne części CA, CC (razem C) oraz M odpowiadają neuronom skojarzeniowym w systemie nerwowym człowieka. Pozostają do przedyskutowania równoważniki neuronów sensorycznych (doprowadzających) i motorycznych (odprowadzających). Są to "organy„ wejścia i wyjścia naszego urządzenia. Urządzenie musi mieć możliwość utrzymania kontaktu z wejściem i wyjściem za pomocą specjalistycznego narzędzia. Narzędzie to będzie nazwane zewnętrznym narzędziem rejestrującym urządzenia: R [...]

34 E. Pięć zasad komputera wg von Neumanna
Po czwarte urządzenie musi być wyposażone w organy przenoszące [...] informację z R do swoich specyficznych części C i M. "Organy" te stanowią jego wejście, a więc czwartą, specyficzną część: I. Zobaczymy, że najlepiej jest dokonywać wszystkich przeniesień z R (poprzez I) do M, a nigdy bezpośrednio do C [...]

35 F. Pięć zasad komputera wg von Neumanna
Po piąte, urządzenie musi mieć "organy" służące do przenoszenia [...] ze swoich specyficznych części C i M do R. Organy te tworzą jego wyjście, a więc piątą specyficzną część: O. Zobaczymy, że znowu najlepiej jest dokonywać wszystkich transferów z M (poprzez O) do R, nigdy zaś bezpośrednio z C [...]

36 Struktura komputera von Neumanna

37 Pierwsza działająca realizacja
Pierwszym w pełni działającym komputerem wg idei von Neumanna był zbudowany w Wielkiej Brytanii komputer EDSAC zbudowany przez zespół kierowany przez M. Wilkesa. Komputera EDSAC został uruchomiony w 1951 roku. Komputera EDSAC był pełną realizacją projektu EDVAC.

38 Komputer IAS W roku 1946 von Neumann w Princeton Institute for Advanced Studies rozpoczął projektowanie komputera, który wykorzystywał program przechowywany w pamięci. Komputer ten nazwano IAS od nazwy Institute for Advanced Studies i był on prototypem wszystkich współczesnych komputerów o ogólnym przeznaczeniu. Komputer IAS został w pełni uruchomiony w 1952 roku.

39 Części składowe komputera IAS
Pamięć główna (Memory) - w pamięci przechowywane są dane oraz rozkazy. Jednostka arytmetyczno-logiczna (Arithmetical & Logical Unit) - wykonuje działania arytmetyczne i logiczne na danych binarnych. Jednostka sterująca (Control Unit) - interpretuje i wykonuje rozkazy pobierane z pamięci. Urządzenia wejścia/wyjścia (Input / Output Unit) - ich pracą kieruje jednostka sterująca.

40 Charakterystyka komputera IAS
Pamięć komputera IAS składała się z 1000 miejsc przechowywania, zwanych słowami, z których każde zawierało 40 cyfr binarnych (bitów). W pamięci komputera IAS przechowywane były zarówno liczby (dane), jak i rozkazy. Liczby były prezentowane w formie binarnej, podobnie każdy rozkaz był zapisywany w formie binarnej. Każda liczba była reprezentowana przez bit znaku i 39-bitową wartość bezwzględną (mantysę). Słowo mogło zawierać dwa 20-bitowe rozkazy, przy czym każdy rozkaz składał się 8-bitowego kodu operacji (określającego operację), oraz 12-bitowego adresu określającego jedno ze słów pamięci (ponumerowanych od 0 do 999).

41 Formaty pamięci komputera IAS
Rozkaz lewy Rozkaz prawy Kod Adres Kod Adres operacji operacji Bit znaku (a) Słowo danych (liczba) (b) Słowo rozkazów

42 Schemat blokowy komputera IAS
Urządzenia wejścia - wyjścia I/O Pamięć główna M Jednostka centralna -procesor Jednostka arytmetyczno-logiczna ALU Jednostka sterująca CU MBR Układy ArytmLog AC MQ IBR IR MAR PC Układy sterujące Sygnały sterujące Rozkazy i dane

43 Rejestry komputera IAS
MBR – rejestr buforowy pamięci (Memory Buffer Register) MAR – rejestr adresowy pamięci (Memory Address Register) IR – rejestr rozkazów (Instruction Register) IBR – rejestr buforowy rozkazów (Instruction Buffer Register) PC – licznik programu (Program Counter) AC – akumulator - rejestr wyników operacji arytmetycznych oraz logicznych (Accumulator Counter) MQ – rejestr mnożenia dzielenia (Multiplier-Quotier Register) Uwaga: np. wynikiem mnożenia dwóch liczb 40-bitowych, jest liczba 80-bitowa. 40 bardziej znaczących bitów jest w rejestrze AC, natomiast 40 mniej znaczących bitów znajduje się w rejestrze MQ.

44 Rozkazy komputera IAS Komputer IAS miał łącznie 21 różnych rozkazów.
Rozkazy komputera IAS podzielono na 5 grup: Przenoszenie danych. Należą tu rozkazy przesyłania danych pomiędzy pamięcią a rejestrami ALU lub pomiędzy dwoma rejestrami ALU. Rozgałęzienia bezwarunkowe. Zwykle jednostka sterująca wykonuje szeregowo rozkazy pochodzące z kolejnych miejsc pamięci. Sekwencja rozkazów może być zmieniona przez rozkaz skoku. Umożliwia to wykonywanie sekwencji powtarzalnych rozkazów. Rozgałęzienia warunkowe. Skoki mogą być wykonywane zależnie od spełnienia pewnego warunku, co oznacza występowanie punktów decyzyjnych programu. Arytmetyka. Operacje wykonywane przez ALU. Modyfikowanie adresu. Należą tu rozkazy, które po obliczanie adresów w ALU, umożliwiają wstawienie tych adresów do rozkazów przechowywanych w pamięci.

45 Rozkazy przenoszenia danych
Kod operacji Symbol Opis Load MQ Przenieś zawartość MQ do AC Load MQ,M(X) Przenieś słowo X pamięci do MQ Stor M(X) Zapamiętaj AC w słowie X pamięci Load M(X) Przenieś słowo X pamięci do AC Load – M(X) Przenieś – (słowo X) pamięci do AC Load |M(X)| Przenieś |słowo X| pamięci do AC Load - |M(X)| Przenieś - |słowo X| pamięci do AC

46 Rozkazy rozgałęzień bezwarunkowych
Kod operacji Symbol Opis Jump M(X,0:19) Pobierz następny rozkaz z lewej połowy słowa M(X) pamięci Jump M(X,20:39) Pobierz następny rozkaz z prawej połowy słowa M(X) pamięci

47 Rozkazy rozgałęzień warunkowych
Kod operacji Symbol Opis Jump +M(X,0:19) Jeśli zawartość AC > 0 pobierz następny rozkaz z lewej połowy słowa M(X) pamięci Jump +M(X,20:39) Jeśli zawartość AC > 0 pobierz następny rozkaz z prawej połowy słowa M(X) pamięci

48 Rozkazy arytmetyki Kod operacji Symbol Opis 00000101 Add M(X)
Dodaj M(X) do AC, wynik w AC Add |M(X)| Dodaj |M(X)| do AC, wynik w AC Sub M(X) Odejmij M(X) od AC, wynik w AC Sub |M(X)| Odejmij |M(X)| od AC, wynik w AC Mul M(X) Pomnóż M(X) przez MQ, wynik w AC pierwszych 40 bitów, pozostałe 40 bitów umieść w MQ Div M(X) Podziel zawartość AC przez M(X), wynik w MQ, reszta w AC LSH Pomnóż AC przez 2 RSH Podziel AC przez 2

49 Rozkazy modyfikowania adresu
Kod operacji Symbol Opis Store M(X,8:19) Zamień pole adresowe lewego rozkazu słowa M(X) pamięci na zawartość części AC Store M(X,28:39) Zamień pole adresowe prawego rozkazu słowa M(X) pamięci na zawartość części AC

50 Architektura komputera
Pojęcie architektury komputera odnosi się do tych atrybutów systemu, które są widziane przez programistę. Innymi słowy, atrybuty te mają bezpośredni wpływ na logikę wykonywanego programu. Przykładami atrybutów architektury są: Lista rozkazów Liczba bitów wykorzystywanych do prezentacji różnych typów danych (np. liczb czy znaków) Mechanizmy układów wejścia-wyjścia Metody adresowania pamięci.

51 Organizacja komputera
Pojęcie organizacji komputera odnosi się do jednostek operacyjnych i ich połączeń, które stanowią realizację specyfikacji typu architektury. Przykładami atrybutów organizacji są: Rozwiązania sprzętowe niewidoczne dla programisty, takie jak sygnały sterujące Interfejsy pomiędzy procesorem, a urządzeniami wejścia-wyjścia Wykorzystywane technologie pamięci.

52 Typowa szybkość (operacji / sekundę)
Generacje komputerów Generacja Lata Technologia Typowa szybkość (operacji / sekundę) 1 Lampy próżniowe 40.000 2 tranzystory 3 Małą i średnia skala integracji 4 Wielka skala integracji 5 1978-???? Bardzo wielka skala integracji

53 Języki programowania

54 Sekwencje czynności procesora w czasie wykonywania instrukcji

55 Przykład

56 Krok 1

57 Krok 2

58 Krok 3

59 Krok 4

60 Krok 5

61 Krok 6

62 Podsumowanie Powyższy fragment programu dodaje zawartość słowa pamięci o adresie 940H do zawartości słowa zapisanego pod adresem 941H oraz zapisuje wynik pod adres 941H. Wykonywane są 3 rozkazy, które zostały opisane jako 3 cykle rozkazowe. W każdym cyklu pokazano fazę pobrania oraz wykonania rozkazu.

63 Parametry komputerów - Moc obliczeniowa, np. mierzona w
* MIPS (Million Operations Per Second) * MFLOPS (Million Floppy Operations Per Second) Szybkość transmisji danych do/z różnych urządzeń Niezawodność, np. mierzona w * MTBF (Mean Time Between Faults) Koszt, np. mierzony w * TCO (Total Cost of Ownership) - ....

64 Szybkość mikroprocesorów
W przypadku mikroprocesorów dodawanie nowych układów oraz zwiększanie szybkości wynikające ze zmniejszenia odległości między nimi poprawiało wydajność 4-krotnie w ciągu każdych 3 lat (prawo Moore’a). Aby wykorzystać potencjalne możliwości mikroprocesora, należy zapewnić jego „zasilanie” ciągłym strumieniem zadań (rozkazów). Dlatego projektanci procesorów wykorzystują coraz bardziej wymyślne rozwiązania jak: - przewidywanie rozgałęzienia (ang. branch prediction), - analiza przepływu danych, - spekulatywne wykonywanie rozkazów.

65 Równowaga wydajności Podczas gdy moc procesorów rosła z zawrotną szybkością, rozwój innych krytycznych zespołów komputera był zbyt wolny. Powstała potrzeba znalezienia tzw. - równowagi wydajności : dostosowanie organizacji i architektury w celu skompensowania niezgodności między możliwościami różnych zespołów komputera. Problem krytyczny: interfejs między procesorem a pamięcią główną.

66 Sposoby uzyskiwania równowagi
Zwiększanie liczby bitów, które są jednocześnie wprowadzane (projektowanie „szerokich” układów DRAM), Stosowanie bardziej efektywnych interfejsów pamięci DRAM przez umieszczanie układów buforowanych w strukturach DRAM, Redukowanie częstości odwołań do pamięci głównej przez wprowadzanie efektywnych struktur pamięci podręcznych (cache) pomiędzy procesorem a pamięcią główną.

67 Współczesne komputery osobiste

68 Podział na części architektoniczną i układową współczesnego komputera
Układy we-wy Procesor Kompilator System operacyjny (Windows 7) Aplikacje (np. Przeglądarka) Układy cyfrowe Obwody scalone Lista rozkazów określająca architekturę Ścieżki danych i sterowanie Bramki i elementy pamięci Pamięć Hardware Software Assembler Magistrala

69

70 Procesor Procesor jest centralną częścią systemu komputerowego.
Procesor wykonuje następujące czynności: Pobiera rozkazy z pamięci. Interpretuje i wykonuje poszczególne rozkazy Pobiera dane - z pamięci lub modułu wejścia-wyjścia. Przetwarza dane – czyli wykonuje na danych pewne operacje arytmetyczne lub logiczne. Zapisuje dane - w pamięci lub module wejścia-wyjścia. Cztery główne części składowe procesora: Jednostkę arytmetyczno-logiczną (ALU) - ta część procesora jest odpowiedzialna za wykonanie obliczeń i przetwarzanie danych. Jednostkę sterującą (CU) - kieruje ona ruchem danych i rozkazów do/z procesora i steruje pracą ALU. Rejestry i pamięć podręczna- część pamięci wewnętrznej uprzywilejowanej wykorzystywanej przez procesor do adresowania, odczytu danych, itp. Układ powiązań pomiędzy trzema wyżej wymienionymi częściami procesora oraz pozostałymi modułami komputera. W komputerach skalarnych ma postać tzw.magistrali systemowej.

71 Struktura wewnętrzna CPU (procesora)

72 Magistrala zewnętrzna procesora

73 Części składowe ALU Układy realizujące operacje arytmetyczne i logiczne na danych. Układ przesuwania: Arytmetycznego danych, w lewo albo prawo Logicznego (cyklicznego) danych, w lewo albo prawo. Układ zmiany znaku, tzw. układ dopełniania. Generator tzw. znaczników stanu (flag) wyników operacji arytmetycznych, logicznych i przesuwań.

74 Magistrala systemowa System komputerowy zawiera pewną liczbę magistrali. Najważniejsza z nich to magistrala systemowa (niektóre systemy wykorzystują kilka magistrali systemowych) łącząca najważniejsze podzespoły komputera tj. procesor, pamięć, układy wejścia-wyjścia. Magistrala systemowa składa się z wielu oddzielnych linii o określonym znaczeniu lub funkcji. Linie zawarte w magistrali można podzielić na trzy grupy: linie sterowania linie adresów linie danych.

75

76 Własności pamięci komputera
Dla zrozumienia istoty pamięci oraz sposobu ich wykorzystywania przez system komputerowy należy je uszeregować ze względu na dalej wymienione własności. Położenie pamięci: pamięć wewnętrzna - składają się na nią: pamięć główna, pamięć procesora (rejestry, pamięć podręczna) pamięć masowa - urządzenia dostępne przez sterownik wejścia/wyjścia (np. dyski twarde). Pojemność pamięci: zwykle wyrażana w bajtach (1 bajt=8 bitów). Jednostka transferu ilość danych transmitowanych w jednostce czasu, np. bajt/s. Sposób dostępu: sekwencyjny - pamięć masowa zorganizowana jest za pomocą jednostek danych zwanych rekordami, a dostęp (zapis i odczyt) do wymaganej komórki pamięci wg kolejności rekordów; bezpośredni – pamięć masowa z dostępem do poszczególnych rekordów; swobodny – typowy dla pamięci głównych zwanych również operacyjnymi; dostęp skojarzeniowy – typowy dla pamięci podręcznych. Wydajność określają: czas dostępu, czas cyklu pamięci i szybkość transferu. Własności fizyczne: ulotna / nie ulotna i wymazywalna / nie wymazywalna.

77 Pamięć główna Pamięć o dostępie swobodnym RAM (Random Access Memory) pozwala w stosunkowo łatwy sposób na odczytywanie/zapisywanie danych z/do pamięci. Zapis oraz odczyt odbywają się za pomocą sygnałów elektrycznych. Ważną cechą pamięci RAM jest jej ulotność, pamięć RAM potrzebuje źródła zasilania, a w przypadku jego braku dane ulegają skasowaniu. Pamięć RAM można podzielić na statyczną i dynamiczną. Uzupełnieniem pamięci RAM, jest pamięć ROM (Read Only Memory) jak sama nazwa wskazuje jest pamięcią tylko do odczytu, informacja zapisana jest na trwałe, a nowe dane nie mogą być zapisywane. Zaletą pamięci ROM jest to, że program znajduje się cały czas w pamięci głównej i nigdy nie wymaga ładowania z innych urządzeń.

78 Pamięci masowe Wyróżniamy dwie podstawowe klasy pamięci masowych, ze względu na sposób dostępu: sekwencyjny - pamięć masowa zorganizowana jest za pomocą jednostek danych zwanych rekordami, a dostęp (zapis i odczyt) do wymaganej komórki pamięci wg kolejności rekordów; bezpośredni – pamięć masowa z dostępem do poszczególnych rekordów; Do klasy pamięci masowych o dostępie sekwencyjnym zaliczamy: Pamięci na wielościeżkowej taśmie magnetycznej, działających na podobnych zasadach jak magnetofon; Pamięci z wirującą głowicą magnetyczną, działające na podobnej zasadach jak magnetowid. Do klasy pamięci masowych o dostępie bezpośrednim zaliczamy: Pamięci dyskowe; Pamięci optyczne, np. klasy urządzeń CD-ROM.

79 Pamięć dyskowa Dysk magnetyczny ma kształt okrągłej płyty i pokryty jest materiałem magnetycznym. Dane są na nim zapisywane i odczytywane za pomocą głowicy, którą stanowi cewka elektryczna. W czasie operacji odczytu/zapisu wiruje dysk, zaś głowica pozostaje nieruchoma. Organizacja danych na płycie magnetycznej ma postać koncentrycznego zespołu pierścieni, nazywanych ścieżkami, z których każda ma taką samą szerokość jak głowica. Sąsiednie ścieżki są od siebie oddzielone, dzięki czemu błędy wynikające z niewłaściwego ustawienia głowicy lub interferencji pola magnetycznego zostają zminimalizowane. Aby uprościć układy elektroniczne współpracujące z głowicą, na każdej ścieżce przechowywana jest taka sama liczba bitów, a wielkość tę nazywa się gęstością i wyraża w bitach na cal. Na rozkaz zapisu, do głowicy wysyłane są impulsy, które powodują zapisanie określonych wzorów magnetycznych na powierzchni płyty, znajdującej się nad głowicą (zależnie od polaryzacji głowicy wzory te są różne). Odczyt polega na wykorzystaniu zjawiska przepływu prądu elektrycznego pod wpływem pola magnetycznego wirującego, względem głowicy dysku.

80 Organizacja dysku magnetycznego

81 Dysk twardy firmy Quantum

82 Pamięć optyczna Dyski CD i CD-ROM są dziś najpowszechniej wykorzystywanym nośnikiem informacji. Płyty CD I CD-ROM są wykonane w ten sam sposób: dysk składa się z czterech warstw: warstwy nośnej z poliwęglanu (plastik), warstwy barwnika (topi się podczas zapisu), warstwy dobrze odbijającej światło (np. aluminium) i lakierowej warstwy ochronnej. Płyta CD posiada spiralny rowek prowadzący (groove), który naprowadza laser, wskazuje mu drogę. Informacja zarejestrowana cyfrowo nanoszona jest, w postaci małych zagłębień (pit), na powierzchnię odbijającą. Po raz pierwszy wykonuje się to za pomocą dobrze zogniskowanego światła lasera o dużej mocy (podczas zapisu barwnik wytapia się, odsłaniając odbijającą światło powierzchnię) - tak powstaje dysk wzorcowy, który służy jako matryca do tłoczenia kopii. Powierzchnia z naniesioną informacją jest zabezpieczona bezbarwnym lakierem.

83 Zasada działania napędu CD-ROM

84 Urządzenia wejścia-wyjścia
Urządzeniem wejścia-wyjścia, dotychczas nie omawianym, jest sterownik interfejsu sieciowego - umożliwiający łącznie z odpowiednim modemem, zapewnienie wymiany informacji z siecią komputerową, w szczególności z siecią Internet. Do urządzeń wejścia-wyjścia obok pamięci masowych zaliczamy szereg urządzeń umożliwiających kontakt użytkownika z komputerem. Najczęściej spotykane urządzenia wejścia, czyli urządzenia umożliwiające wprowadzanie danych do komputera to: klawiatura, mysz i skaner. Najczęściej spotykane urządzenia wyjścia, czyli urządzenia umożliwiające wyprowadzanie informacji z komputera to: monitor ekranowy lub ciekłokrystaliczny z adapterem (np. kartą SVGA), drukarka atramentowa i drukarka laserowa.

85 Schemat obsługi klawiatury

86 Mysz firmy Microsoft

87 Skaner płaski

88 Karty SVGA (Super VGA)

89 Monitor ekranowy

90 Drukarka atramentowa firmy HP

91 Zasada działania drukarki laserowej

92 Przerwania Przerwania są ważnym elementem funkcjonowania systemu komputerowego. Nazwa odnosi się do tego, że przerwania mają w zwyczaju przerywać normalną pracę programów. Np. jeśli urządzenie zewnętrzne jest gotowe do obsługi (czyli np. przyjmowania danych od procesora). Wtedy moduł we-wy tego urządzenia wysyła sygnał żądania przerwania do procesora. W odpowiedzi procesor zawiesza działanie bieżącego programu i wykonuje skok do programu obsługującego to urządzenie, czyli programu obsługi przerwania (interrupt handler). Po obsłużeniu urządzenia następuje powrót do programu, który został przerwany. Zawieszenie programu użytkownika, a następnie powrót do miejsca, gdzie nastąpiło przerwanie jego działania, realizuje procesor i system operacyjny.

93 Cykl rozkazu z przerwaniami

94 Płyta główna współczesnego PC

95 Podstawowe zespoły funkcjonalne procesora

96 Budowa mikroprocesora dwuszynowego

97 Budowa mikroprocesora trójszynowego

98 Generacja adresu fizycznego

99 Graf stanów cyklu instrukcji
iac iod os of if oac do aoc Następna instrukcja Łańcuch lub wektor Wiele argume- ntów wyni- ków if – pobranie instrukcji; iod – dekodowanie części operacyjnej; oac – obliczanie adresu argumentu; of – pobranie argumentu; do – operacja na danych.

100 Przerwania i cykl rozkazowy

101 Cykl rozkazu z przerwaniami

102 Graf stanów cyklu instrukcji z przerwaniami
iac iod os of if oac do aoc ic in Następna instrukcja Łańcuch lub wektor Brak przerwań Wiele argume- ntów wyni- ków if – pobranie instrukcji; iod – dekodowanie części operacyjnej; oac – obliczanie adresu argumentu; of – pobranie argumentu; do – operacja na danych; os – zapisanie argumentu; ic – sprawdzanie czy jest przerwanie; in – obsługa przerwania.

103 Przerwania wielokrotne
W przypadku obsługi wielu urządzeń możliwe jest, że przerwanie wywołane przez jedno z urządzeń nastąpi w czasie, w którym jest przetwarzane przerwanie spowodowane przez inne urządzenie. Sposoby postępowania z przerwaniami wielokrotnymi: blokowanie przerwań – procesor będzie ignorował sygnał żądania przerwania w czasie obsługi danego przerwania; określenie priorytetów przerwań – przerwanie o wyższym priorytecie powoduje przerwanie programu obsługi przerwania o niższym priorytecie.

104 Struktury połączeń komputera

105 Struktura połączeń umożliwia przesyłanie danych pomiędzy
Z pamięci do procesora. Procesor odczytuje z pamięci rozkazy lub jednostki danych. Z procesora do pamięci. Procesor zapisuje jednostki danych w pamięci. Z urządzeń wejścia - wyjścia do procesora. Procesor odczytuje dane z urządzenia wejścia-wyjścia za pośrednictwem modułu wejścia – wyjścia. Z procesora do urządzeń wejścia – wyjścia. Procesor wysyła dane do urządzenia wejścia – wyjścia. Z urządzeń wejścia – wyjścia do pamięci lub na odwrót. W tych przypadkach zezwala się modułowi wejścia – wyjścia na bezpośrednią wymianę danych z pamięcią, bez pośrednictwa procesora, przy wykorzystaniu bezpośredniego dostępu do pamięci (DMA).

106 Parametry i elementy funkcjonalne magistrali
Rodzaj specjalistyczna multipleksowana Metoda arbitrażu zcentralizowana rozproszona Koordynacja czasowa synchroniczna asynchroniczna Szerokość magistrali adres dane Rodzaj transferu danych odczyt zapis odczyt-modyfikacja-zapis odczyt po zapisie blokowy

107 Rodzaje magistrali Specjalizacji funkcjonalnej (dedicated), np. wyrażająca się zastosowaniem linii adresów oraz danych. Specjalizacji fizycznej (phisical dedication), przy której mamy wiele magistral, z których każda łączy tylko określoną grupę modułów. Multipleksowane, a w szczególności tzw. multipleksowanie czasowe (time multiplexing), którego podstawową zaletą jest stosowanie mniejszej liczby linii, gdzie w różnych odcinkach czasu te same linie pełnią inne funkcje: przesyłania adresu, a następnie przesyłania danych.

108 Metody arbitrażu Metoda arbitrażu zcentralizowana. W układzie scentralizowanym istnieje jedno urządzenie zwane sterownikiem magistrali lub arbitrem. Urządzenie to może być oddzielnym modułem lub częścią procesora. Metoda arbitrażu rozproszona. W układzie rozproszonym każdy moduł zawiera układy logiczne sterujące dostępem, a moduły współpracując korzystają ze wspólnej magistrali.

109 Koordynacja czasowa Koordynacja czasowa (timing) odnosi się do sposobu w jaki koordynowane są zdarzenia na magistrali. Magistrala zawiera linię zegarową Koordynacja czasowa synchroniczna - jest taktowana zegarem magistrali, a wszystkie urządzenia dołączone do magistrali, są zależne od ustalonej szybkości tego zegara. Koordynacja czasowa asynchroniczna, przy której występowanie zdarzeń na magistrali jest zależne od zdarzenia poprzedzającego, z wykorzystaniem sygnałów synchronizacji nadrzędnej (master sync) oraz synchronizacji podrzędnej (slave sync).

110 Struktura magistrali

111 Linie danych magistrali
Linie danych są ścieżkami służącymi do przenoszenia danych między modułami systemu. Wszystkie te linie łącznie określa się jako szyna danych. Szyna składa się typowo z 8, 16, 32, 64 oddzielnych linii danych, liczba linii określa szerokość tej szyny i jest kluczowym czynnikiem określającym wydajność.

112 Linie adresowe magistrali
Linie adresowe są wykorzystywane do określania źródła lub miejsca przeznaczenia danych przesyłanych przez magistralę (adres słowa pamięci, adres portu we-wy). Najczęściej najbardziej znaczące bity służą do wybrania określonego modułu na magistrali, natomiast najmniej znaczące bity określają lokację w pamięci lub port wejścia – wyjścia wewnątrz modułu.

113 Linie sterowania magistrali
Linie sterowania przeznaczone są do sterowania dostępem do linii danych i linii adresowych, a także do sterowania ich wykorzystaniem w procesie udostępniania magistrali parze modułów, zwanych master i slave. Sygnały sterujące przekazywane między modułami systemu zawierają zarówno rozkazy, jak i informacje regulujące czas (sygnały taktujące).

114 Przykład zestawu linii sterujących
Linia: Zapisu w pamięci; Linia: Odczytu z pamięci; Linia: Zapis do wejścia – wyjścia; Linia: Odczyt z wejścia – wyjścia; Linia: Potwierdzenie przesyłania (transfer ACK); Linia: Zapotrzebowania na magistralę (bus request); Linia: Rezygnacji z magistrali (bus grant); Linia: Żądania przerwania (interrupt request); Linia: Potwierdzenia przerwania (interrupt ACK); Linia: Impulsów zegarowych; Linia: Przywrócenia stanu początkowego (reset).

115 Magistrala typu wspólna szyna

116 Magistrala typu wspólna szyna
Wszystkie urządzenia dołączone są do wspólnej szyny poprzez adaptery - jednostki sterujące. W tego typu systemach, każde urządzenie (a właściwie jego adapter) ma wydzieloną grupę adresów występujących na liniach adresowych magistrali. Pod tymi adresami dostępne są programowe rejestry urządzeń.

117 Magistrala VME

118 Magistrala VME Ponieważ szyna VMEbus jest „najważniejszą” w systemie szyn VME i jest w pełni zdefiniowana, jej nazwa obejmuje również szyny VMSbus i VMXbus i w takim znaczeniu jest używana. Szyna VMEbus jest szyną asynchroniczną, wieloprocesorową, wykorzystywaną w systemach opartych na procesorach rodziny MC6800. Układ arbitra szyny znajduje się na pakiecie jednego z procesorów głównych (MASTER), udostępniając szynę również pozostałym procesorom.

119 Tradycyjna architektura magistrali

120 Architektura magistrali o zwiększonej wydajności

121 Koordynacja czasowa synchroniczna

122 Koordynacja czasowa asynchroniczna

123 Magistrala PCI (Peripheral Component Interconnect)
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, które połączone są z PCI. Przeznaczone jest dla szerokiego zakresu konfiguracji wykorzystujących mikroprocesory, łącznie z systemami jedno- i wielo-procesorowymi. PCI wykorzystuje koordynację synchroniczną i arbitraż scentralizowany. Do szyny PCI można podłączać karty graficzne, kontrolery SCSI czy też karty sieciowe o ile są zgodne ze standardem PCI. Zasadniczą zaletą tego standardu jest możliwość automatycznej konfiguracji nowo podłączanych elementów, czyli wykorzystanie techniki plug-and-play - podłącz i działaj.

124 Magistrala PCI

125 Magistrala PCI - grupy funkcjonalne linii
Wyprowadzenia systemowe (zegar, reset); Wyprowadzenia adresu i danych (32 linie multipleksowane); Wyprowadzenia sterowania interfejsu; Wyprowadzenia arbitrażowe (nie są liniami wspólnymi, każda jednostka nadrzędna ma własną parę linii arbitrażowych, które łączą ja bezpośrednio z arbitrem magistrali PCI). Wyprowadzenia przerwania; Wyprowadzenia obsługi pamięci podręcznej; Wyprowadzenia rozszerzenia magistrali 64-bitowej (należą do nich 32 linie multipleksowane, w połączeniu z obowiązującymi liniami adresowymi i danych tworzą 64-bitową magistralę adresowa i danych); Wyprowadzenia magistrali diagnostycznej JTAG (norma IEEE ).

126 Magistrala PCI - parametry
Dane po szynie są przesyłane z częstotliwością 33MHz, niezależnie od częstotliwości pracy mikroprocesora. Wynika to z faktu zastosowania układu kontrolera, który steruje przepływem danych do urządzeń podłączonych do szyny PCI. Wszystkie przesłania są przesłaniami blokowymi (burst). Takie rozwiązanie pozwala teoretycznie przesłać dane w każdym cyklu zegara. Uwzględniając fakt, że szyna PCI może współpracować zarówno w systemie 32-bitowym, jak również 64-bitowym daje to teoretyczną szybkość transmisji dla pierwszego przypadku 132 MB/s i 264 MB/s dla drugiego przypadku. Magistrala PCI posiada wprawdzie pojemność, która teoretycznie pozwala na transmisję danych video, ale musi ona obsługiwać także inne urządzenia systemowe, jak karty we/wy, modemowe oraz sieciowe. W pewnych sytuacjach magistrala ta może być więc tak obciążona, że nie będzie w stanie przesłać napływających danych, i obraz video nie będzie odtwarzany w sposób płynny. Zaczęto więc tworzyć rozwiązania, które polepszą jakość wyświetlania obrazu video.

127 Rozkazy magistrali PCI
Działanie magistrali odbywa się w formie transakcji między inicjatorem – master (modułem nadrzędnym) a celem – slave (modułem podrzędnym). Gdy inicjator żąda dostępu do magistrali, określa typ transakcji, którą chce przeprowadzić. Do sygnalizowania typu transakcji używane są linie C/BE. Wykorzystywane są następujące rozkazy: potwierdzenie przerwania, 7. zwielokrotniony odczyt pamięci, cykl specjalny, 8. zapis w pamięci, odczyt wejścia-wyjścia, 9. zapis w pamięci i unieważnienie, zapis wejścia-wyjścia, 10. odczyt konfiguracji, odczyt pamięci, zapis konfiguracji, linia odczytu pamięci, cykl podwójnego adresu.

128 Magistrala PCI - przesyłanie danych

129 Struktura systemu mikroprocesorowego wykorzystującego standard PCI

130 Sterowniki systemu mikroprocesorowego wykorzystującego standard PCI
PSC - sterownik systemu PCI łączy w sobie: sterownik DRAM; sterownik CACHE; interfejs lokalnej szyny IDE; zarządza poborem energii. IB - sterownik systemu ISA łączy w sobie: sterownik 7-mio kanałowy DMA; układ 8254 licznika/zegara; 2 układy 82C59 sterowników przerwań;

131 USB - Universal Serial Bus

132 Standard AGP (Accelerated Graphics Port)
Standard ten został oparty na standardzie PCI wersji 2.1. Rozszerzono go o trzy podstawowe elementy: potokowe operacje zapisu i odczytu pamięci; de-multipleksowane magistrale danych i adresowa; możliwość przesyłania danych z częstotliwością 133 MHz. Szyna standardowo przesyła dane z częstotliwością 66 MHz, co daje jej teoretyczną przepustowość przy 32-bitach 266 MB/s i wówczas szyna pracuje w tzw. trybie „x1”. Przy pracy w trybie „x2” teoretyczna przepustowość szyny dla 32-bitów wzrasta do 532 MB/s. Uzyskuje się to przez wykorzystanie obydwu zboczy sygnały zegara taktującego, czyli 2 * 66MHz = 133 MHz. Standard ten jest obecnie stosowany w najnowszych płytach głównych dla Pentium.

133 Standard AGP (Accelerated Graphics Port)

134 Chipset – architektura

135 Chipset firmy INTEL

136 Procesor K7 Athlon

137 Zespół modułów wejścia-wyjścia

138 Trzeci kluczowy typ modułu
Obok procesora i pamięci trzecim kluczowym elementem systemu komputerowego jest zespół modułów wejścia-wyjścia. Każdy moduł jest dołączony do magistrali systemowej sterując jednym lub wieloma urządzeniami peryferyjnymi. Moduł wejścia-wyjścia nie jest po prostu złączem mechanicznym służącym do połączenia urządzenia z magistralą systemową. Zawiera on pewną „inteligencje”, to znaczy układy logiczne umożliwiają komunikację pomiędzy urządzeniami peryferyjnymi a magistralą.

139 Wejście - wyście Istnieje znaczna różnorodność urządzeń peryferyjnych oraz pamięci zewnętrznych, różniących się sposobem pracy. Byłoby niepraktycznym wbudowanie niezbędnych układów logicznych do procesora w celu umożliwienia sterowania tak szerokim zakresem urządzeń. Szybkość transferu danych do/z urządzeń peryferyjnych jest o wiele mniejsza niż transferów pomiędzy procesorami i modułami pamięci operacyjnych. Jest więc niepraktycznym podłączanie bezpośrednio urządzeń peryferyjnych do szybkiej magistrali. Urządzenia peryferyjne wykorzystują często inne formaty danych oraz długości słowa niż komputery, do których są podłączone. Potrzebny jest więc moduł wejścia-wyjścia.

140 Ogólny model modułu wejścia-wyjścia
Linie adresowe Linie danych Linie sterowania Moduł wejścia-wyjścia Połączenia do urządzeń peryferyjnych

141 Moduł wejścia - wyjścia
Moduł wejścia-wyjścia odgrywa podstawową role jako interfejs pomiędzy urządzeniami peryferyjnymi oraz pamięciami zewnętrznymi, a procesorem i pamięciami połączonymi do modułu wejścia-wyjścia za pośrednictwem (systemu) magistrali. Do modułu wejścia-wyjścia podłączone są urządzenia peryferyjne, które możemy sklasyfikować jako: Przeznaczone do odczytywania lub wprowadzania danych przez człowieka (np. klawiatura, monitor, drukarka) Przeznaczone do odczytu przez komputer (np. pamięci zewnętrzne) Komunikacyjne, czyli przeznaczone do komunikowania się z oddalonymi urządzeniami lub komputerami (np. adapter sieciowy, modem).

142 Schemat ideowy urządzenia peryferyjnego
Sygnały sterowania z modułu wejścia-wyjścia Sygnały stanu do modułu wejścia-wyjścia Dane do/z modułu wejścia-wyjścia Układy logiczne sterowania Bufor Przetwornik Dane (specyficzne dla urządzenia) kierowane do/z otoczenia

143 Przykłady urządzeń peryferyjnych
Klawiatura/Monitor Najpowszechniejszym środkiem komputer – użytkownik jest para urządzeń peryferyjnych klawiatura/monitor. Użytkownik wprowadza dane za pomocą klawiatury. Dane te są następnie transmitowane do procesora i mogą być zobrazowane na monitorze. Monitor pokazuje również dane dostarczone przez komputer. Napęd dysku Napęd dysku zawiera układy elektroniczne służące do wymiany danych oraz sygnałów sterowania i stanu z modułem wejścia-wyjścia, a także układy elektroniczne sterowane mechanizmem zapis-odczyt. Napęd dysku realizuje dwie funkcje: Konwersja pomiędzy zapisem sygnałów magnetycznych powierzchni dysku, a bitami w buforze modułu. Sterowanie radialnym przesuwaniem ramienia głowicy na powierzchni dysku.

144 Działanie modułu wejścia-wyjścia
Moduł wejścia-wyjścia steruje jednym lub wieloma urządzeniami peryferyjnymi oraz wymianą danych pomiędzy tymi urządzeniami a pamięcią operacyjną lub/i rejestrami procesora. Główne funkcje modułu wejścia-wyjścia to: Sterowanie i taktowanie urządzeniem peryferyjnym Komunikacja z procesorem Komunikacja z urządzeniami Buforowanie danych Wykrywanie błędów. W dowolnym przedziale czasu procesor może komunikować się z jednym lub wieloma urządzeniami peryferyjnymi, w zależności od potrzeb programu aplikacyjnego w odniesienia do wejścia lub wyjścia.

145 Schemat blokowy modułu wejścia-wyjścia
Interfejs z magistralą systemową Interfejs z urządzeniami peryferyjnymi Rejestry danych Rejestr stanu/sterowania Układy logiczne we-wy Układy logiczne interfejsu z urządzeniami Dane Stan Sterowanie Linie danych Linie adresowe Dane Stan Sterowanie Linie sterowania

146 Transfer danych urządzenie-procesor
Procesor żąda od modułu wejścia-wyjścia sprawdzenie stanu dołączonego urządzenia. Moduł wejścia-wyjścia udziela odpowiedzi o stanie urządzenia. Jeśli urządzenie działa i jest gotowe do transmisji, procesor zgłasza zapotrzebowanie na przesłanie danych, posługując się rozkazem dla modułu wejścia-wyjścia. Moduł wejścia-wyjścia otrzymuje jednostkę danych (np. 8 lub 16 bitów) z urządzenia peryferyjnego do rejestru danych. Dane są przenoszone za pośrednictwem magistrali z rejestru danych modułu wejścia-wyjścia do procesora.

147 Komunikacja z procesorem
Dekodowanie rozkazu. Moduł wejścia-wyjścia otrzymuje rozkazy od procesora, mające postać sygnałów na magistrali systemowej. Np. moduł dysku otrzymuje następujące rozkazy: Czytaj sektor Zapisz sektor Znajdź ścieżkę o danym numerze Skanuj rekord ID. Przesyłanie danych. Dane są wymieniane między modułem a procesorem przez magistralę (szyna danych). Przesyłanie informacji o stanie. Np. sygnału gotowości lub zajętości oraz sygnały o wystąpieniu błędów. Rozpoznawanie adresu. Każde urządzenie peryferyjne ma swój adres. Moduł musi więc rozpoznawać adresy urządzeń.

148 Transfer dla różnych urządzeń
Urządzenie Rodzaj Partner Transfer rate KB/s Klawiatura wejściowe człowiek 0,01 Myszka 0,02 Wejście głosem Skaner 200 Drukarka wierszowa wyjściowe 1 Drukarka laserowa 100 Monitor graficzny 30.000 Sieć LAN wejściowo/wyjściowe komputer Dysk optyczny pamięć 500 Taśma magnetyczna 2000 Dysk magnetyczny

149 Rozkazy wejścia-wyjścia
Rozkazy testowania stanu urządzenia peryferyjnego celem zbadania stanu urządzenia (np. urządzenie gotowe, zajęte, sprawne). Rozkazy sterowania urządzeniem peryferyjnym jest stosowany celem aktywizacji (uruchomienia działania) urządzenia. Rozkazy te są dostosowane do określonego typu urządzenia peryferyjnego. Rozkaz odczytu danych z urządzenia peryferyjnego oraz umieszczenia odczytanych danych w rejestrze danych modułu. Rozkaz zapisu danych w urządzeniu peryferyjnym zapamiętanych w rejestrze danych modułu.

150 Instrukcje wejścia-wyjścia
Jeśli procesor, pamięć operacyjna oraz moduły wejścia-wyjścia używają wspólnej magistrali, możliwe są dwa tryby adresowania: Odwzorowany w pamięci Izolowany. Wejście-wyjście odwzorowane w pamięci, wówczas ta sama przestrzeń adresowa jest przeznaczona dla komórek pamięci oraz urządzeń peryferyjnych. Procesor rejestry stanu i rejestry danych modułów wejścia-wyjścia jako komórki pamięci oraz wykorzystuje te same instrukcje maszynowe w celu uzyskania dostępu do pamięci, jak i urządzeń peryferyjnych. W tym przypadku w magistrali potrzebna jest tylko jedna linia odczytu i jedna linia zapisu. Wejście wyjście izolowane, wówczas alternatywnie magistrala obok linii zapisu-odczytu musi być wyposażona dodatkowo w linie rozkazów wejścia-wyjścia.

151 Oba warianty instrukcji
Rejestr danych wejściowych klawiatury Rejestr stanu i sterowania klawiatury Wejście-wyjście odwzorowane w pamięci (10 linii – 1024 komórki pamięci) Etykieta Rozkaz Argument Komentarz Load AC „1” StoreAC Inicjuj odczyt klawiatury LoadAC Uzyskaj bajt stanu Branch if Sign= Wykonaj pętle aż do osiągnięcia gotowości LoadAC Ładuj bajt danych Wejście-wyjście izolowane Etykieta Rozkaz Argument Komentarz StartI/O Inicjuj odczyt klawiatury TestI/O Sprawdź zakończenie operacji Branch not ready Wykonaj pętle aż do zakończenia operacji In Ładuj bajt danych

152 Moduł wejścia-wyjścia sterowany przerwaniami
Urządzenie wysyła do procesora sygnał przerwania Procesor kończy wykonywanie bieżącego rozkazu programu aplikacji Procesor chowa stan programu aplikacji (zawartość rejestrów procesora) w stosie systemowym Procesor stwierdza przerwanie i wysyła sygnał potwierdzenia do urządzenia Procesor ładuje do rejestru PC adres pierwszego rozkaz programu obsługi przerwań Procesor wykonuje program obsługi przerwań, dla adresu urządzenia peryferyjnego dla którego zgłoszone zostało przerwanie Po zakończeniu programu obsługi przerwań, procesor ładuje ze stosu stan aplikacji rozpoczynając wykonywanie aplikacji od rozkazu, który następował bezpośrednio za rozkazem w toku wykonywania którego otrzymał sygnał przerwania

153 Sterownik przerwań Intel 8259A
Procesor Intel 8086 współpracuje z jedną linią żądania przerwania (INTR) i jedną linię potwierdzenia otrzymania (INTA). Procesor jest skonfigurowany ze sterownikiem przerwań Intel 8259A, który na ogół tworzy kaskadę np. 9 układów tego typu. Urządzenia peryferyjne są połączone, każde z jednym wejściem sterownika przerwań Intel 8259A. Odbiera on żądania przerwania od dołączonych modułów, określa przerwanie o najwyższym priorytecie i wysyła sygnał do procesora wzbudzając linię INTR. Procesor wysyła potwierdzenie przystąpienia do obsługi przerwania linia INTA. Sygnał potwierdzenia procesora powoduje umieszczenie przez układ Intel 8259A do umieszczenia odpowiedniego wektora informacji na liniach danych magistrali. Procesor przechodzi wówczas do obsługi przerwania i bezpośredniej komunikacji z modułem wejścia wyjścia, w celu odczytu albo zapisu danych.

154 Zastosowanie sterownika przerwań
IR0 IR INT IR2 IR3 IR4 IR5 IR6 IR7 Procesor 8086 INTR Nadrzędny sterownik przerwań 8259A Urządzenie zewnętrzne 00 Urządzenie zewnętrzne 01 Urządzenie zewnętrzne 07 Urządzenie zewnętrzne 08 Urządzenie zewnętrzne 09 Urządzenie zewnętrzne 15 Urządzenie zewnętrzne 56 Urządzenie zewnętrzne 57 Urządzenie zewnętrzne 63

155 Programowanie sterownika przerwań
Układ Intel 8259A jest programowany, a procesor Intel 8086 określa układ priorytetów. Możliwe są następujące tryby przerwań: W pełni zagnieżdżony. Zapotrzebowania na przerwania są porządkowane według priorytetu od 0 (IR0) do 7 (IR7). Rotacyjny. Jeśli urządzenia przerywające mają ten sam priorytet. Urządzenie które ostatnio zgłosiło przerwanie, w następnej kolejce obsługi przerwań otrzymuje najniższy priorytet. Ze specjalną maską. Pozwala procesorowi na selektywne wybieranie przerwań od niektórych urządzeń.

156 Interfejs urządzeń peryferyjnych
Układ Intel 8255A jest przykładem części modułu wejścia-wyjścia (poza funkcjonalnością obsługi przerwań – układ Intel8259A). Jest to układ jedno-strukturalny ogólnego przeznaczenia, zaprojektowanym do współpracy z procesorem Intel 8086. Układ posiada 24 linie wejścia-wyjścia programowane przez procesor Intel 8086, za pomocą rejestru sterowania. Procesor Intel 8086 może ustalić wartość rejestru sterowania celem określenia różnych trybów działania i konfiguracji. Ponieważ układ 8255A jest programowany za pośrednictwem rejestru sterowania, układ ten może być używany do sterowania różnymi prostymi urządzeniami peryferyjnymi, jak np. klawiatura oraz monitor.

157 Schemat blokowy Intel 8255A
Bufor danych Szyna danych procesora 8086 8-bitowa magistrala wewnętrzna A Port Zasilanie +5 Masa CA Sygnalizacja 2*4 bity Gotowość, potwierdzenie itp. Linie adresowe A0 A7 CB Układ logiczny sterowania Odczyt Zapis Kasowanie Wybór B Port Rejestr sterowania Bufory danych

158 Bezpośredni dostęp do pamięci
Bezpośredni dostęp do pamięci wymaga dodatkowego modułu DMA (Direct Memory Access) na magistrali systemowej. Moduł DMA może „udawać” procesor i w rzeczywistości przejmuje od procesora sterowanie systemem. Działanie modułu DMA wygląda następująco - gdy procesor życzy sobie odczytanie lub zapisanie bloku danych procesor wydaje rozkaz modułowi DMA, który określa: Rodzaj rozkazu (odczyt czy też zapis) Adres urządzenia peryferyjnego Adres początkowy bloku (adres komórki pamięci), gdzie ma być zapisany odczytany blok danych, albo z którego ma się rozpocząć odczytywanie danych zapisywanych na urządzeniu peryferyjnym Liczbę słów, które mają być odczytane lub zapisane. W czasie wykonywania rozkazu przez DMA procesor kontynuuje inną pracę.

159 Schemat blokowy modułu DMA
Licznik danych Rejestr danych Rejestr adresu Układy logiczne sterowania Linie danych Linie adresowe DMA REQ DMA ACK INTR Odczyt Zapis

160 Współpraca procesor - DMA
Procesor zleca wykonanie operacji wejścia-wyjścia modułowi DMA i moduł ten jest odpowiedzialny za jej realizację. Moduł DMA przenosi cały blok danych, słowo po słowie, bezpośrednio z/do pamięci. Gdy transfer jest zakończony, moduł DMA wysyła sygnał przerwania do procesora. Dzięki powyższemu, procesor jest zaangażowany tylko na początku i końcu transferu. Moduł DMA przejmuje sterowanie magistralą – wymuszając czasowe zawieszenie pracy procesora (tzw. wykradanie cyklu). Procesor jest zawieszany tuż przed zgłoszeniem zapotrzebowania na magistralę, wówczas moduł DMA przesyła jedno słowo poczym zwraca sterowanie magistralą procesorowi. Nie jest to przerwanie pracy procesora, a jedynie wstrzymanie procesora na czas przesłania jednego słowa po magistrali przez moduł DMA.

161 Punkty kontrolne przerwania
Cykl rozkazu Cykl procesora Cykl procesora Cykl procesora Cykl procesora Cykl procesora Cykl procesora Pobieranie rozkazu Dekod. rozkazu Pobieranie argument. Wykon. rozkazu Zapis wyniku Przerwanie procesu Punkty kontrolne DMA Punkt kontrolny przerwania

162 Konfigurowanie modułu DMA
Moduł DMA może być konfigurowany na wiele sposobów. Trzy najczęściej stosowane konfiguracje pokazane są na następnym slajdzie. W pierwszym przypadku wszystkie moduły używają tej samej magistrali systemowej. Moduł DMA działa jak namiastka procesora, używając programowanego wejścia-wyjścia do wymiany danych pomiędzy RAM a modułem wejścia-wyjścia. Konfiguracja taka jest nieefektywna. Każdy transfer słowa pochłania dwa cykle magistrali systemowej. Liczba wymaganych cykli magistrali systemowej może być istotnie ograniczona przez zintegrowanie modułów wejścia-wyjścia z modułem DMA. Trzecia konfiguracja jest rozwinięciem drugiej.

163 Możliwe konfiguracje DMA
Magistrala systemowa Procesor DMA Moduł we-wy Moduł we-wy RAM Magistrala systemowa Procesor DMA RAM Moduł we-wy Moduł we-wy Magistrala systemowa Procesor DMA RAM Magistrala wejścia-wyjścia Moduł we-wy Moduł we-wy Moduł we-wy


Pobierz ppt "Wykładowca: Dr hab. Marek J. Greniewski"

Podobne prezentacje


Reklamy Google