Budowa PMC II


Podrozdziały

 

Podstawowe składniki

prof. John von Neumann

Wszystkie współczesne komputery osobiste są zbudowane wg koncepcji zaproponowanej w latach 40-tych ubiegłego wieku przez profesora Johna von Neumanna z Uniwersytetu w Princeton. Jego model zakładał, iż komputer wyposażony będzie w trzy podstawowe składniki:
 

  • pamięć: do przechowywania przetwarzanej informacji, wyników oraz samego programu dla komputera

  • urządzenia wejścia/wyjścia: umożliwiające komunikację komputera z otoczeniem

  • procesor: przetwarzający informację umieszczoną w pamięci i komunikującego się z otoczeniem poprzez urządzenia wejścia/wyjścia.

Brak któregokolwiek z wymienionych składników uniemożliwia korzystanie z maszyny cyfrowej. Bez pamięci komputer nie może gromadzić danych oraz wyników obliczeń. Bez układów wejścia/wyjścia nie można się z nim skomunikować, staje się zatem kosztownym przyciskiem do papieru. Bez procesora nie może być wykonywany program i przetwarzane dane.

PMC jest również zbudowana logicznie wg architektury Johna von Neumanna.
 

Pamięć PMC II

Pamięć komputerowa jest urządzeniem, które służy do przechowywania przetwarzanej informacji, wyników tego przetwarzania oraz programu dla procesora. Zewnętrznie wygląda tak jak po prawej stronie. Czarna, płaska kostka plastikowa z wystającymi metalowymi końcówkami, którymi podawane są odpowiednie sygnały elektryczne sterujące pracą pamięci.

Wewnątrz pamięć komputerowa zawiera tysiące (a nawet miliony) komórek. W każdej komórce można zapisać informację w postaci ciągu bitów (zwykle 8 bitów, zwanych bajtem). Cała sztuka polega na zakodowaniu informacji w odpowiedni ciąg zer i jedynek. Proces ten dokładnie opisujemy w artykule o Binarnym Kodowaniu Liczb oraz w PMC I. Gorąco polecam zapoznanie się z podanymi tam informacjami, których tutaj już nie będziemy powtarzać.

Komórki pamięci komputerowej są ponumerowane. Numer komórki nazywamy adresem. Dzięki adresowi procesor może bez problemów uzyskać dostęp do wybranej komórki i odczytać zawartą tam informację lub zapisać nową.

Wyprowadzenia pamięci komputerowej tworzą trzy grupy sygnałów, które nazywamy magistralami (ang. buses). Pierwsza magistrala umożliwia odczyt danych oraz ich wpis do pamięci, jest to magistrala danych (ang. data bus). Druga magistrala przekazuje pamięci adres wybranej komórki, jest to magistrala adresowa (ang. address bus). Trzecia magistrala zawiera różne sygnały sterujące, nazywa się magistralą sterującą (ang. control bus).

Zapis danych odbywa się następująco:

  1. Procesor umieszcza na magistrali danych dane do zapisu (w postaci liczby binarnej, każdy bit jest reprezentowany przez jedną linię sygnału).

  2. Na magistrali adresowej procesor umieszcza adres komórki pamięci (również w postaci binarnej), w której należy zapisać dane znajdujące się na magistrali danych.

  3. Na magistrali sterującej procesor umieszcza polecenie zapisu danych.

  4. Układ sterujący pamięci odczytuje informację z magistrali sterującej. Stwierdza, że chodzi o zapis danych. Adres z magistrali sterującej służy do wyszukania odpowiedniej komórki pamięci, następnie dane z magistrali danych zostają przeniesione i zapisane do wybranej komórki pamięci.

  5. Po wykonaniu operacji układ sterujący pamięci umieszcza na magistrali sterującej potwierdzenie zapisu - wtedy procesor wie, iż polecenie zapisu danych zostało wykonane i może przystąpić do realizacji innych zadań.


 

Odczyt danych odbywa się następująco:

  1. Procesor umieszcza na magistrali adresowej adres komórki pamięci, z której chce odczytać informację.
  2. Na magistralę sterującą procesor przesyła polecenie odczytu danych z pamięci.
  3. Układ sterujący pamięcią odczytuje stan magistrali sterującej i stwierdza, że chodzi o odczyt zawartości komórki pamięci. Wykorzystuje zatem adres z magistrali adresowej do wyszukania wybranej komórki, a następnie zawartą w niej informację umieszcza na magistrali danych.
  4. Na magistrali sterującej układ sterujący pamięcią umieszcza potwierdzenie odczytu danych. Wtedy procesor wie, iż dane są gotowe do odczytu z magistrali danych. Pobiera je zatem i odpowiednio przetwarza.

Pamięć PMC II zbudowana jest z 63 komórek 16-bitowych. Komórki mają adresy od 1 do 63. Może stwierdzisz, że nie jest to zbyt wiele - masz rację. Jednakże przypominam - PMC jest przeznaczona TYLKO do ćwiczeń, a nie do poważnych zadań. Zapewniam cię, iż 63 komórki to ilość zupełnie wystarczająca do naszych celów, czyli do nauki programowania maszyny cyfrowej na poziomie jej języka asemblerowego.

Ostatnim terminem wartym zapamiętania jest przestrzeń adresowa (ang. address space). Jest to zbiór adresów, które może wykorzystywać procesor do komunikacji z pamięcią. Im większa przestrzeń adresowa, tym więcej danych można umieszczać w pamięci oraz przetwarzać. W przypadku PMC przestrzeń adresowa obejmuje 64 adresy (od 0 do 63). Adres 0 jest zarezerwowany do specjalnych zadań. Pozostałe adresy można dowolnie wykorzystywać. Jeśli spojrzymy na liczby 0...63 od strony binarnej, to zauważymy, iż wszystkie adresy można zapisać przy pomocy 6 bitów w naturalnym kodzie dwójkowym:

 

000000(2) = 0(10)
111111(2) = 63(10).

 

Wynika z tego, iż nasza PMC ma 6-bitową magistralę adresową oraz 16-bitową magistralę danych. To spostrzeżenie znacznie się nam przyda, gdy będziemy opisywali budowę rozkazów dla PMC w następnym rozdziale.

 

Urządzenia wejścia/wyjścia w PMC II

Kolejnym elementem w architekturze komputera są urządzenia wejścia/wyjścia lub krótko wejście/wyjście (ang. Input/Output – I/O). Zewnętrznie są to klawiatury, monitory, drukarki, wszelkiego typu urządzenia zapisująco-odtwarzające, itp. Z punktu widzenia mikroprocesora, który nic nie musi wiedzieć o prawdziwej budowie tych urządzeń, stanowią one pewne szczególne pozycje w przestrzeni adresowej, do których można przesłać informację lub z których odczytuje się informację.

Na przykład wyobraźmy sobie, iż wyposażyliśmy nasz komputer w klawiaturę. Każde naciśnięcie klawisza powoduje przesłanie do komputera kodu binarnego tego klawisza. Kod klawisza jest dostępny w specjalnym rejestrze wejścia/wyjścia, który może się nazywać na przykład rejestrem odczytu klawiatury. Dostęp do tego rejestru może być wykonywany w identyczny sposób jak dostęp do komórki pamięci. Po prostu w przestrzeni adresowej procesora nie wszystkie adresy odnoszą się do komórek pamięci. Niektóre oznaczają właśnie takie specjalne rejestry przechowujące informacje pochodzące ze współpracujących z komputerem urządzeń. Jeśli na magistralę adresową procesor wyśle adres takiego rejestru, to logika sterująca komputerem (płyta główna – ang. mother board) nie odwoła się do układów pamięciowych, tylko do wskazanego rejestru.

Oczywiście z punktu widzenia procesora rejestr I/O nie różni się od zwykłej komórki pamięci. Odczyt czy zapis danych odbywa się wg identycznego schematu (co znacznie upraszcza budowę samego procesora).

Co więcej, ten sam adres może wskazywać dwa różne rejestry w zależności od tego, czy operacja dotyczy zapisu, czy odczytu. Tak właśnie jest w PMC II. Adres 0 (zero) nie oznacza komórki pamięci, lecz wejście danych (przy odczycie) lub wyjście danych (przy zapisie). Adres ten nosi nazwę INOUT, która w PMC II jest zarezerwowana właśnie dla adresu 0.

Zapis informacji do rejestru INOUT powoduje przesłanie znaku do wyświetlacza. Znak ten pojawi się na ekranie. Zatem zapis informacji pod adres 0 oznacza przesłanie danych do urządzenia wyjścia, jakim jest wiersz wyświetlacza. Wyświetlacz w PMC II ma postać wiersza o maksymalnej pojemności 64 znaków. Wyświetlacz ten możesz potraktować jak taśmę. Każdy przesłany znak zostaje dopisany do końca taśmy. Jeśli znaki nie mieszczą się w wierszu, to zostają przewinięte w lewo. Znaki drukowalne mają kody od 32 (spacja) do 126. Dodatkowo są rozpoznawane dwa kody:

KOD 0  – wyświetlacz jest czyszczony, znika z niego cała treść.
KOD  127  – ostatni znak zostaje skasowany.

Pozostałe kody (od 1 do 31 i powyżej 127) nie są drukowane.

Z kolei odczyt danych z adresu 0 powoduje próbę pobrania danych z bufora wejściowego. W buforze tym użytkownik PMC II może w trakcie działania programu umieszczać znaki z klawiatury. Każdy odczyt powoduje pobranie jednego znaku i zwrócenie jego kodu ASCII. Jeśli bufor zostanie opróżniony, to odczyt zwróci wartość 0 - w ten sposób można prosto sprawdzić, czy w buforze skończyły się znaki. Kod znaku ma zawsze 8 bitów, zatem wejście PMC II jest 8-bitowe.

Adres 0 (INOUT) to jedyny rejestr wejścia/wyjścia w PMC II. Wszystkie inne adresy w przestrzeni adresowej odnoszą się do zwykłych komórek pamięci.

 

Procesor PMC II

Motorola 68020-processor

Bez wątpienia procesor jest najbardziej skomplikowanym elementem każdego komputera. Musi tak być, ponieważ to właśnie on odpowiada za działanie całego systemu i przetwarzanie danych.

Procesor przetwarza informację pobierając ją z pamięci do wewnętrznych rejestrów, na których wykonuje różne operacje. Wynik jest z powrotem umieszczany w pamięci.

Rejestr (ang. register) jest jakby wewnętrzną mikropamięcią procesora. W rejestrze można umieszczać dane kilkubitowe (zależy to od typu procesora). Następnie procesor może przetwarzać w różny sposób informację w rejestrach (np. dodawać je, mnożyć, dzielić, wykonywać nad nimi operacje logiczne itp.) Takie rozwiązanie wybrano ze względu na szybkość - działania na rejestrach są bardzo szybkie, natomiast pamięć jest stosunkowo wolna, ponieważ procesor musi adresować wybrane komórki i czekać, aż zawartość będzie dla niego dostępna. Dlatego właśnie procesor wyposaża się w wewnętrzne rejestry (komórki pamięci wewnętrznej), w których umieszcza on sobie najczęściej potrzebne mu dane.

Procesor PMC II posiada tylko jeden rejestr dla danych zwany akumulatorem - nie, nie chodzi tutaj o baterię, tylko o pewne cechy tego rejestru, które zrozumiemy, gdy przejdziemy do omawiania instrukcji procesora. Do akumulatora można pobrać zawartość dowolnej komórki pamięci. Przy operacjach arytmetycznych i logicznych zawsze jeden z argumentów znajduje się w akumulatorze. Również wynik operacji trafia do akumulatora (akumuluje się). Rejestr akumulatora w PMC II mieści 16 bitów. Zwróć uwagę, iż odpowiada to dokładnie rozmiarowi pojedynczej komórki pamięci.

Program dla procesora zbudowany jest z pojedynczych rozkazów, poleceń, które dokładnie instruują go, co ma w danej chwili robić. Rozkazy te mają postać kodów binarnych, liczb, które umieszcza się w pamięci komputera. Procesor odczytuje kolejne kody instrukcji, rozpoznaje zawarte w nich polecenia i wykonuje je.

Ponieważ instrukcje zapisane są w kolejnych komórkach pamięci, to procesor w trakcie wykonywania programu musi pobierać dane z tych komórek. Do tego celu posiada specjalny rejestr zwany licznikiem rozkazów (ang. program counter). Licznik rozkazów przechowuje adres wykonywanej instrukcji.

Faza pobrania i wykonania rozkazu jest następująca:
 

  1. Procesor umieszcza na magistrali adresowej zawartość licznika rozkazów.
  2. Na magistrali sterującej procesor umieszcza polecenie odczytu pamięci.
  3. Procesor czeka, aż układ sterowania pamięcią zgłosi mu gotowość danych do odczytu z magistrali danych. Czas ten jest niezbędny do wyszukania wybranej komórki w strukturze pamięci i przesłania jej zawartości na magistralę danych.
  4. Po odczycie kodu rozkazu trafia on do specjalnego rejestru wewnętrznego procesora zwanego rejestrem instrukcji (ang. instruction register).
  5. Układy logiczne procesora badają odczytany kod rozkazu w celu rozpoznania rodzaju polecenia. Gdy to zostanie zrobione, procesor wykonuje odczytany rozkaz.
  6. Po wykonaniu rozkazu licznik rozkazów jest zwiększany o 1. W ten sposób wskazuje kolejną instrukcję w pamięci. Cały cykl powtarza się z kolejnym rozkazem.
     

Architektura PMC II

Gdy znamy już wszystkie elementy składowe naszej maszyny cyfrowej, złóżmy je w całość. Otrzymamy następujący system:

 

 

Po lewej stronie mamy układ pamięci złożony z 63 komórek 16-bitowych.

W środku są dwa rejestry wejścia/wyjścia. Rejestr WEJŚCIE umożliwia odczyt danych wejściowych zgromadzonych w buforze wejścia. Jeśli bufor jest pusty, odczyt zwraca wartość zero. Rejestr WYJŚCIE umożliwia wyprowadzenie przesłanego doń znaku na wyświetlacz wierszowy. Oba rejestry zajmują ten sam adres w przestrzeni adresowej procesora - adres 0 (zero). Jeśli procesor zapisuje dane pod ten adres, to trafią one do rejestru WYJŚCIA. Jeśli procesor odczytuje dane z tego adresu, to otrzyma on zawartość rejestru WEJŚCIE.

Po prawej stronie widzimy procesor PMC II. Posiada on trzy rejestry:
 

- akumulator służy do przetwarzania danych
- licznik rozkazów służy do adresowania kolejnych instrukcji w pamięci programu
- rejestr instrukcji służy do dekodowania pobranego kodu rozkazu.
 

Elementy składowe komputera połączone są ze sobą za pomocą trzech magistral:
 

- magistrala danych służy do transportowania danych pomiędzy procesorem a pozostałymi składnikami systemu
- magistrala adresowa umożliwia wybór komórki pamięci lub rejestrów wejścia/wyjścia, z którymi procesor chce wymienić dane poprzez magistralę danych
- magistrala sterująca przekazuje polecenia odczytu/zapisu od procesora oraz potwierdzenia wykonania tych operacji przez pozostałe składniki.
 

Zadania

  1. Na czym polegała koncepcja maszyny Johna von Neumana?
  2. Omów funkcje podstawowych składników komputera.
  3. Jak zbudowana jest pamięć?
  4. Co to jest przestrzeń adresowa procesora?
  5. Do czego służy magistrala?
  6. W jaki sposób pamięć zapisuje dane?
  7. W jaki sposób pamięć odczytuje dane?
  8. Czym różnią się z punktu widzenia procesora urządzenia wejścia/wyjścia od pamięci?
  9. Czym jest instrukcja dla procesora?
  10. Jak przebiega w procesorze wykonanie instrukcji?
  11. Do czego służą procesorowi rejestry?
  12. Jak wygląda schemat przetwarzania danych przez procesor?
  13. Co to jest dekoder adresowy?
  14. Do czego służy rejestr instrukcji?
  15. W jaki sposób procesor adresuje wykonywane przez siebie instrukcje?
     


List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2017 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.