OGÓLNY OBRAZ DZIAŁANIA KOMPUTERA I JEGO URZĄDZEŃ WEWNĘTRZNYCH
Zespoły komputera
Architektura von Neumanna:
Architektura von Neumanna:
- dane i rozkazy w tej samej pamięci, umożliwiającej zapis i odczyt
- zawartość pamięci adresowana przez wskazanie miejsca bez względu na to co tam się mieści (dane, rozkazy)
- jeżeli nie zdefiniowane inaczej, to rozkazy są wykonywane jeden po drugim (sekwencyjnie)
Programowanie:
Programowanie, rozwiązanie sprzętowe (hardwired programming):
- połączenie jednostek sprzętowych tak, żeby realizowały jakieś operacje (AL)
- dla każdego nowego zadania, musimy tworzyć nowy system połączeń jednostek sprzętowych
- dostarczamy dane do (wyspecjalizowanego) urządzenia, a to po obliczeniu zwraca wynik
Programowanie, rozwiązanie programowe (software programming):
- budujemy zestaw funkcji o ogólnym przeznaczeniu, tak żeby dla konkretnego zadania nie budować nowego zestawu funkcji,
ale tylko dostarczyć oprócz danych też inne sygnały sterujące, wskazujące na to, co ma z tymi danym zrobić
- z każdym rozkazem dostarczamy również sygnały sterujące (zakodowane w postaci kodu)
- sekwencja tych kodów lub rozkazów jest nazywana ‘oprogramowaniem’
- dostarczamy kody rozkazów, interpreter rozkazów je analizuje i wysyła sygnały sterujące do funkcji, do funkcji dostarczamy
też dane i na podstawie danych i sygnałów sterujących wykonywane są obliczenia odpowiednie
System komputerowy (organizacja na najwyższym poziomie):
a) Jednostka centralna, składa się z:
- moduł interpretujący kody sygnałów sterujących
- moduł realizujący funkcje arytmetyczne i logiczne
b) Moduły wejścia/wyjścia:
- przyjmowanie rozkazów w pewnej formie i zamiana na formę zrozumiałą przez komputer (we)
- wyprowadzanie wyników pracy na formę zrozumiałą dla człowieka (wy)
- przenosi dane pomiędzy urządzeniami we/wy a procesorem i pamięcią (w obie strony)
c) Moduł pamięci głównej:
- służy do przechowywania danych jak i rozkazów tymczasowo
- składa się z zestawu komórek ponumerowanych sekwencyjnie, każde z tych miejsc zawiera liczbę binarną, interpretowaną
jako dane albo jako rozkaz
d) Procesor:
- komunikuje się z pamięcią główną i pobiera z niej dane, które zapisuje w swoich rejestrach
CPU zawiera:
Rejestry procesora:
- rejestr adresowy pamięci (MAR) – określa adres w pamięci następnego zapisu lub odczytu
- rejestr buforowy pamięci (MBR) – zawiera dane, które mają być zapisane lub odczytane z pamięci
Rejestry wejścia/wyjścia:
- rejestr adresowy we/wy (I/OAR) – określa konkretne urządzenie we/wy
- rejestr buforowy we/wy (I/OBR) – wykorzystywany do wymiany danych miedzy urządzeniami we/wy a jednostką centralną
Inne rejestry:
IR – rejestr rozkazu (zawiera ładowane rozkazy)
PC – licznik programu
AC – służy do tymczasowego przechowywania danych (akumulator)
Działanie komputera
Cykl rozkazów:
Podstawowy cykl rozkazu:
- procesor pobiera rozkaz z pamięci (cykl pobierania)
- procesor wykonuje ten rozkaz (cykl wykonania)
Akumulator (AC) – służy do przechowywania danych przez procesor tymczasowo
Licznik programu (PC) – służy do śledzenia, który rozkaz ma być w danej chwili pobrany przez procesor (zawiera adres rozkazu)
Jeżeli procesor nie otrzyma innego polecenia to inkrementuje licznik i pobiera kolejny rozkaz w kolejności.
Dokładniejszy cykl rozkazu:
- pobranie rozkazu z pamięci (zgodnie z licznikiem PC)
- załadowanie rozkazu do rejestru rozkazu IR
- interpretacja rozkazu i wykonywanie konkretnych obliczeń
Rodzaje czynności wykonywanych przez procesor wynikających z rozkazów:
- procesor-pamięć – przenoszenie danych między procesorem i pamięcią
- procesor-we/wy – przenoszenie danych między procesorem i urządzeniami we/wy
- przetwarzanie danych – operacje arytmetyczno logiczne
- sterowanie – np. zmiana sekwencji wykonywania rozkazów
Stany rozkazu:
a) obliczenie następnego rozkazu (iac)
b) pobranie rozkazu (if)
c) dekodowanie operacji rozkazu (iod) – analiza kodu, by zobaczyć o co chodzi w rozkazie
d) obliczanie adresu argumentu (oac) – jeżeli znajdują się na we/wy albo w pamięci
e) pobieranie argumentu (of)
f) operacje na danych (do)
g) zapisanie argumentu (os)
Przerwania:
Przerwania – są to przerwania normalnego wykonywania rozkazów przez urządzenia np. we/wy
Klasy przerwań:
a) programowe – generowane przez warunki będące efektem wykonania programu (np. dzielenie przez zero itd.)
b) zegarowe – generowane przez zegar wewnętrzny
c) we/wy – generowane przez urządzenia we/wy
d) uszkodzenia sprzętu – generowane przez uszkodzenie, np. wyłączenie zasilania
Na przykład w poleceniach we/wy, gdy są realizowane (zajmują dużo czasu) procesor może zająć się czym innym. Rozkazy we/wy i inne działanie procesora są realizowane współbieżnie. Urządzenia we/wy same pobierają dane z pamięci itd.
Cykl pracy procesora z przerwaniami:
- procesor napotyka na rozkaz związany z we/wy
- przechodzi do niego i przekazuje mu informacje
- moduł we/wy sam przygotowuje wszystko podczas, gdy procesor robi swoje
- gdy moduł we/wy jest gotowy wysyła przerwania i procesor zawiesza swoją pracę i idzie do niego, zapisują kontekst
aktualnego rozkazu i ustawia licznik programu na pierwszy rozkaz z programu obsługi przerwań
- pobiera ten rozkaz i wykonuje go
- po obsłużeniu urządzenia następuje powrót do programu głównego i pozostałych rozkazów procesora
Przerwania wielokrotne (dwie koncepcje):
uniemożliwienie przerwań wielokrotnych – jeżeli sterowanie przechodzi do programu obsługi przerwań, to nie możliwe jest wywołanie innego przerwania, jeżeli wystąpi to czeka w kolejce, aż tamto się skończy
priorytety przerwań – tylko przerwania o wyższych priorytetach mogą przerywać inne przerwania o niższych
Moduły wejścia/wyjścia:
Działanie obsługi wejścia/wyjścia:
- procesor może sam odnosić się bezpośrednio do adresów pamięci na urządzeniach we/wy, np. dysku
- procesor może przekazać sterowanie we/wy modułom we/wy, wtedy one same, bez żadnego angażowania procesora
pobierają i zapisują dane na nośnikach we/wy (DMA – direct memory access)
Struktura połączeń wewnętrznych
Trzy najważniejsze moduły w komputerze (procesor, pamięć, we/wy) komunikują się między sobą za pomocą sieci połączeń wewnętrznych.
Struktura połączeń pomiędzy modułami:
a) pamięć:
- składa się ze słów o określonej długości
- słowo może być odczytane i zapisane do pamięci
b) moduł we/wy:
- może sterować więcej niż jednym urządzeniem zewnętrznym
- port - to każdy z interfejsów obsługujących urządzenie zewnętrzne
- może komunikować się z pamięcią w celu odczytu i zapisu danych
- może wysyłać przerwania do procesora
c) procesor:
- wczytuje rozkazy i dane
- wysyła dane po przetworzeniu
- steruje całą pracą systemu przez sygnały sterujące
- otrzymuje sygnały przerwania
Struktura połączeń musi umożliwić przesyłanie informacji pomiędzy:
a) procesorem i pamięcią
b) procesorem i modułami we/wy
c) modułami we/wy i pamięcią (DMA)
Połączenia magistralowe
Magistrala:
- jest drogą połączenia pomiędzy urządzeniami
- jest wspólną drogą transmisji dla wszystkich urządzeń (shared transmission medium)
- sygnał nadany przez urządzenie może być odczytany przez wszystkie inne
- w jednym czasie nadawać może tylko jedno urządzenie jednocześnie
- czasem składa się z wielu dróg (linii komunikacyjnych)
Magistrala systemowa – łączy podstawowe urządzenia (procesor, pamięć, we/wy), zawiera od 50 do setek oddzielnych linii
Podział linii magistrali:
linie danych – przenoszenie danych pomiędzy adresami, wszystkie razem tworzą „szynę danych”, szerokość „szyny” to liczba linii w niej zawartych, jedna linia może przenosić jednocześnie tylko jeden bit, więc liczba linii określa ilość bitów przesyłanych jednocześnie
linie adresowe – określanie źródła przeznaczenia danych przesyłanych magistralą, wszystkie razem tworzą „szynę adresową”, szerokość szyny adresowej musi być równa maksymalnej pojemności systemu pamięci, używa się ich również do adresowania we/wy, często pierwszy bit oznacza jaki moduł używamy, np. 1 oznacza pamięć a 0 oznacza we/wy
linie sterowania – sterowanie dostępem do linii danych i linii adresowych i sterowania ich używaniem, typowe linie sterowania to: zapis w pamięci lub we/wy (zapisuje dane z szyny danych w określonej w szynie adresowej pamięci), odczyt z pamięci lub we/wy, żądanie przerwania, zawieszenie przerwania, przywrócenie (ustawia moduły w stanie początkowym), zegar (do obsługi czasowej)
Jeżeli moduł chce się skomunikować z inny modułem musi:
- uzyskać dostęp do magistrali
- wysłać sygnał sterujący określającym czego potrzebuje
- czekać na odzew innego urządzenia
Jak to wygląda fizycznie:
- dzisiaj najczęściej wszystkie jednostki komputera są na jednej płycie (głównej), a magistrala jest wbudowana w płytę i łączy je
- inne jednostki można podłączać do magistrali za pomocą gniazd (płytki drukowane)
- służy to np. ułatwieniu wymieniania modułów (pamięci, procesora)
Hierarchiczne struktury wielomagistralowe
Im więcej urządzeń tym wolniej działa magistrala, bo spada przepustowość. Dobrym rozwiązaniem jest zastosowanie kilku magistrali. Na przykład do magistrali głównej dołączamy interfejs szyny rozszerzenia (expansion bus). W ten sposób do magistrali głównej podłączamy tylko szynę rozszerzenia, a do tej szyny wszystkie urządzenia we/wy. Dzięki temu możemy odizolować ruch urządzeń we/wy od innych. Do takiej szyny można podłączyć np: urządzenia LAN, porty drukarki itd., porty obsługi dysków (SCSI).
Architektura międzypiętrowa – budowanie szybkich magistrali połączonych bezpośrednio z systemową magistralą
Rodzaje magistrali:
- specjalistyczne – trwale przypisana do określonej funkcji lub urządzenia
- multipleksowane – ta sama magistrala używana do różnych funkcji, urządzeń, każda funkcja ma określony czas na korzystanie
z magistrali, po czym inna funkcja jest realizowana
Rodzaje specjalizacji:
- fizyczna – używanie magistrali dla konkretnych urządzeń tylko, np. magistrala adresowa
- multipleksowana czasowa – używanie tej samej magistrali do różnych funkcji, np. magistrala we/wy
Metoda arbitrażu:
Wiele urządzeń może chcieć korzystać z magistrali, czyli przejąć nad nią sterowanie. Ale w danym czasie tylko jeden moduł może transmitować dane przez magistralę.
Rodzaje metod arbitrażu:
scentralizowane – jedno urządzenie (sterownik magistrali, arbiter) zarządza czasem używania magistrali, może być oddzielnym modułem albo częścią procesora
rozproszone – każdy moduł zawiera układy logiczne sterujące dostępem, a te moduły współpracują ze sobą przez inną magistralę
Urządzenie nadrzędne – to urządzenie, które samo inicjuje w magistrali transfer danych z innymi urządzeniami.
Urządzenie podrzędne – musi czekać aż nadrzędne go o coś poprosi
Koordynacja czasowa:
Koordynacja czasowa – to sposób w jaki są koordynowane zdarzenia na magistrali.
Rodzaje koordynacji czasowych:
synchroniczna – występowanie zdarzeń jest kontrolowane przez zegar, magistrala zawiera dodatkowo linię zegarową, którą zegar steruje wszystkim, wysyła w jednakowych odstępach sekwencje zer i jedynek po sobie, cykl zegara to transmisja pojedyncza 1-0, każde zadanie musi zaczynać się z początkiem takiego cyklu
asynchroniczna – występowanie zdarzenia jest zależne od zdarzenia poprzedniego, następuje po nim, lub na jego życzenie
Szerokość magistrali:
- szyny danych – ma wpływ na wydajność systemu, im większa szerokość, tym większa ilość przesyłanych bitów jednocześnie
- szyny adresowej – ma wpływ na pojemność systemu, im większa szerokość, tym większa ilość alokacji możliwych do
określenia w pamięci
Rodzaj transferu na magistrali:
- zapis – transfer z modułu nadrzędnego do podrzędnego
- odczyt – transfer w kierunku odwrotnym
Magistrala PCI
PCI – system połączeń urządzeń peryferyjnych
Magistrala PCI – to magistrala nienależąca do procesora, międzypiętrowa albo peryferyjna
Cechy magistrali PCI (Peripheral Component Interconnect):
- obsługa szybkich urządzeń we/wy wydajnie
- obsługuje działanie innych magistrali
- jest ekonomiczna i wydajna
- nie jest skomplikowana sprzętowo
- wykorzystuje koordynację synchroniczną i arbitraż scentralizowany
- realizuje funkcje o ogólnym przeznaczeniu, jest bardzo kompatybilna z wieloma urządzeniami
Bufor między magistralami – służy do tego, by mogła być różna prędkość przesyłania danych na magistrali systemowej i na magistrali PCI, w celu uniezależnienia prędkości magistrali PCI od prędkości procesora
Struktura magistrali PCI:
Może być konfigurowana jako magistrala 32 lub 64 bitowa.
Rozkazy PCI:
- działanie magistrali odbywa się na zasadzie transakcji pomiędzy inicjatorem (moduł nadrzędny) a celem (moduł podrzędny)
- inicjator chcąc sterować magistralą, określa rodzaj transakcji, jaką chce przeprowadzić
Przesyłanie danych:
- każde przesłanie danych to jedna transakcja, składająca się z fazy adresowej i kilku faz danych
Arbitraż ukryty – arbitraż odbywa się w tym samym czasie co inny cykl magistrali
Terminy angielskie:
magistrala – bus
PCI – peripheral component interconnect
magistrala systemowa – system bus
przerwanie – interrupt
MAR – memory address register
MBR – memory buffer register