Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2023 mgr Jerzy Wałaszek |
SPIS TREŚCI |
Podrozdziały |
![]() |
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:
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ęć 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:
Procesor umieszcza na magistrali danych dane do zapisu (w postaci liczby binarnej, każdy bit jest reprezentowany przez jedną linię sygnału).
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.
Na magistrali sterującej procesor umieszcza polecenie zapisu danych.
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.
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:
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.
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
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
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.
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:
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:
Elementy składowe komputera połączone są ze sobą za pomocą trzech magistral:
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2023 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.