Architektura komputerów
Transkrypt
Architektura komputerów
Architektura komputerów wer. 3 Wojciech Myszka, Maciej Panek listopad 2014 r. Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytaªa dwie liczby z karty, mnozyªa je przez siebie i wynik dziurkowaªa na tej samej karcie. Potra ªa równiez dodawa¢ i odejmowa¢. Wªa±ciciel (uzytkownik) maszyny Eckert poª¡czyª j¡ z innymi maszynami (Tabulator, Duplikator) za pomoc¡ wªasnor¦cznie skonstruowanego ª¡cznika tworz¡c pierwszy kombajn do zªozonych oblicze« naukowych. http://www.columbia.edu/cu/computinghistory/601.html Idea oblicze« A + A B + B × C + C + (A + B) × (C + D) D D I A, B, C, D dane: strumie« (plik) kart perforowanych I A + B, C + D I (A + B)(C + D) wyniki cz¦±ciowe: plik kart perforowanych wynik, równiez plik kart perforowanych Pierwsze elektromechaniczne komputery. . . . . . realizowaªy podobne idee John von Neumann 1. Jednym z najwazniejszych i najwi¦kszych projektów obliczeniowych lat czterdziestych byªy obliczenia na potrzeby bomby atomowej. 2. Braª w ich udziaª John von Neumann, genialny matematyk i zyk (który zajmowaª si¦ równiez mechanik¡ kwantow¡, teori¡ gier, informatyk¡, analiz¡ funkcjonaln¡. . . ) Architektura von Neumanna Architektura von Neumanna rodzaj architektury komputera, przedstawionej po raz pierwszy w 1945 roku przez von Neumanna stworzonej wspólnie z Johnem W. Mauchly'ym i Johnem Presperem Eckertem Polega na podziale komputera na trzy podstawowe cz¦±ci: I procesor (w ramach którego wydzielona bywa cz¦±¢ steruj¡ca oraz cz¦±¢ arytmetyczno-logiczna) I pami¦¢ komputera (zawieraj¡ca dane i sam program) I urz¡dzenia wej±cia/wyj±cia Architektura von Neumanna Architektura von Neumanna System komputerowy zbudowany w oparciu o architektur¦ von Neumanna powinien: I mie¢ sko«czon¡ i funkcjonalnie peªn¡ list¦ rozkazów I mie¢ mozliwo±¢ wprowadzenia programu do systemu komputerowego poprzez urz¡dzenia zewn¦trzne i jego przechowywanie w pami¦ci w sposób identyczny jak danych I dane i instrukcje w takim systemie powinny by¢ jednakowo dost¦pne dla procesora I informacja jest tam przetwarzana dzi¦ki sekwencyjnemu odczytywaniu instrukcji z pami¦ci komputera i wykonywaniu tych instrukcji w procesorze. Architektura von Neumanna Podane warunki pozwalaj¡ przeª¡cza¢ system komputerowy z wykonania jednego zadania (programu) na inne bez zycznej ingerencji w struktur¦ systemu, a tym samym gwarantuj¡ jego uniwersalno±¢. System komputerowy von Neumanna nie posiada oddzielnych pami¦ci do przechowywania danych i instrukcji. Instrukcje jak i dane s¡ zakodowane w postaci liczb. Bez analizy programu trudno jest okre±li¢ czy dany obszar pami¦ci zawiera dane czy instrukcje. Wykonywany program moze si¦ sam mody kowa¢ traktuj¡c obszar instrukcji jako dane, a po przetworzeniu tych instrukcji danych zacz¡¢ je wykonywa¢. Architektura harwardzka Stanowi mody kacj¦ koncepcji von Neumanna w której pami¦¢ danych programu jest oddzielona od pami¦ci rozkazów. Procesor pobiera kolejne instrukcje z pami¦ci programu, operuj¡c na danych zawartych w pami¦ci danych. Umozliwia to jednoczesne pobierani instrukcji i danych oraz wykonywanie instrukcji podczas zapisu danych do pami¦ci. Schemat komputera Schemat komputera Procesor Schemat komputera Procesor Pami¦¢ Schemat komputera Procesor Pami¦¢ Ukªady we/wy Schemat komputera Pami¦¢ - Procesor - 6 ? Ukªady we/wy Szyna Schemat komputera Pami¦¢ Procesor - - Sterowanie - 6 ? Ukªady we/wy Szyna Schemat komputera I W modelu tym wyrózniamy: I Procesor. I Pami¦¢ (i pod tym poj¦ciem rozumiemy wszystkie rodzaje pami¦ci: Cache, RAM, ROM, dyski, dyskietki, dyski wymienne zapisywalne i nie). I Urz¡dzenie wej±cia/wyj±cia (wszystkie urz¡dzenia pozwalaj¡ce na kontakt ze ±wiatem zewn¦trznym : klawiatura, mysz, karta gra czna, drukarka, czytniki róznego rodzaju). Schemat komputera II I Sterowanie (wszystkie ukªady elektroniczne zapewniaj¡ce wªa±ciw¡ komunikacj¦ wszystkich wymienionych wyzej urz¡dze« ze sob¡ i zapewniaj¡cy uporz¡dkowany przepªyw informacji po szynie/szynach). I Magistrala (szyna) to wszystkie drogi ª¡cz¡ce wymienione wyzej urz¡dzenia. Pami¦¢ Hierarchia pami¦ci (warstwy): I rejestry procesora; I pami¦¢ podr¦czna, do trzech poziomów; I pami¦¢ operacyjna, pami¦¢ gªówna; I pami¦¢ wirtualna, zrealizowana w oparciu o zewn¦trzn¡ pami¦¢ masow¡; I system plików, zewn¦trzna pami¦¢ masowa; I no±niki wymienne, zasoby sieciowe. Kalkulator Wy±wietlacz Akumulator 1 2 3 + 4 5 6 − 7 8 9 ∗ 0 C = ÷ Pami¦¢ Kalkulator Wy±wietlacz Akumulator 1 2 3 + 4 5 6 − 7 8 9 ∗ 0 C = ÷ Pami¦¢ Operacje Kalkulator 1 4 7 0 2 5 8 C 123 123 3 + 6 − 9 ∗ = ÷ Pami¦¢ Operacje 123 Kalkulator 1 4 7 0 2 5 8 C 3 6 9 = 123 123 + − ∗ ÷ 123 Operacje 123 + Kalkulator 1 4 7 0 2 5 8 C 3 6 9 = 55 55 + − ∗ ÷ 123 Operacje 123 + 55 Kalkulator 1 4 7 0 2 5 8 C 3 6 9 = 178 178 + − ∗ ÷ 123 Operacje 123 + 55 + Kalkulator 1 4 7 0 2 5 8 C 3 6 9 = 22 22 + − ∗ ÷ 178 Operacje 123 + 55 + 22 Kalkulator 1 4 7 0 2 5 8 C 3 6 9 = 200 200 + − ∗ ÷ 178 Operacje 123 + 55 + 22 = Procesor Podstawowe operacje Instrukcje arytmetyczne I I I I Ładuj <adres pami¦ci> przepisuje zawarto±¢ pami¦ci o wskazanym adresie do rejestru. Zapisz <adres pami¦ci> przepisuje zawarto±¢ akumulatora do pami¦ci Ładuj <liczba> zapisuje liczb¦ do rejestru Dodaj <adres pami¦ci> do zawarto±ci akumulatora dodaje zawarto±¢ komórki o wskazanym adresie (mozemy tez zaªozy¢, ze w podobny sposób potra policzy¢ róznic¦, iloczyn i iloraz, cho¢, w rzeczywisto±ci, nie musi to by¢ prawd¡). Wykonanie kazdej operacji zmieniaj¡cej zawarto±¢ rejestru powoduje ustawienie wska¹ników (zero, przepeªnienie, ujemne). Podstawowe operacje Instrukcje na bitach I Neguj zmienia znak liczby w akumulatorze I And <adres pami¦ci> iloczyn logiczny (bit po bicie dwu sªów) I Or <adres pami¦ci> I Xor <adres pami¦ci> I Przesun_w_lewo I Przesun_w_prawo I Przesun_cyklicznie_w_lewo I Przesun_cyklicznie_w_prawo róznica symetryczna Podstawowe operacje Instrukcje steruj¡ce I Skocz <adres pami¦ci> bezwarunkowe przekazanie sterowanie do adresu I Skocz_jezeli_zero <adres pami¦ci> I Skocz_jezeli_ujemne <adres pami¦ci> I Skocz_jesli_nadmiar <adres pami¦ci> I Skocz_do_podprogramu <adres pami¦ci> bardzo podobne do instrukcji zwykªego skoku, ale dodatkowo zapisuje aktualny stan procesora w specjalnie do tego przeznaczonej pami¦ci Asembler Bardzo proste dziaªanie: A=B+C Asembler Bardzo proste dziaªanie: A=B+C W komórce o adresie A ma by¢ umieszczony wynik dodawania zawarto±ci komórek o adresie B i C. Asembler Bardzo proste dziaªanie: A=B+C W komórce o adresie A ma by¢ umieszczony wynik dodawania zawarto±ci komórek o adresie B i C. Realizacja komputerowa: Ładuj B Dodaj C Zapisz A Asembler Bardziej skomplikowany przykªad Z= [(A + B)(C + D)] W Asembler Bardziej skomplikowany przykªad Z= [(A + B)(C + D)] W T1 = A + B Asembler Bardziej skomplikowany przykªad Z= [(A + B)(C + D)] W T1 = A + B T2 = C + D Asembler Bardziej skomplikowany przykªad Z= [(A + B)(C + D)] W T1 = A + B T2 = C + D T3 = T1 ∗ T2 Asembler Bardziej skomplikowany przykªad Z= [(A + B)(C + D)] W T1 = A + B T2 = C + D T3 = T1 ∗ T2 Z = T3/W MARIE MARIE I I I I I I I I I I I I I A Machine Architecture that is Really Intuitive and Easy notacja dwójkowa, zapis w kodzie dopeªnieniowym przechowywanie programu, staªa dªugo±¢ sªowa adresowanie sªowne 4K pami¦ci gªównej (12 bitów na kazdy adres) 16-bitowe dane (16-bitowe sªowa) 16-bitowe rozkazy (4-bitowy kod operacji + 12-bitowy adres) 16-bitowy akumulator (AC) 16-bitowy rejestr rozkazów (IR) 16-bitowy rejestr bufora pami¦ci (MBR) 12-bitowy licznik rozkazów (PC) 12-bitowy rejestr adresów pami¦ci (MAR) 8-o bitowy rejestr wej±ciowy (InREG) 8-o bitowy rejestr wyj±ciowy (OutREG) Symulator MARIE Zadanie domowe Prosty program dla komputera MARIE (na przykªad mnozenie dwu liczb). . . Literatura dodatkowa: Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, Helion, Warszawa, 2004, ISBN: 83-7361-430-3 Odwrotna Notacja Polska Popatrzmy na dziaªanie: 3+7×5 Ile wynosi wynik? Odwrotna Notacja Polska Popatrzmy na dziaªanie: 3+7×5 Ile wynosi wynik? 50 czy 38? Odwrotna Notacja Polska Popatrzmy na dziaªanie: 3+7×5 Ile wynosi wynik? 50 czy 38? A który jest poprawny? Odwrotna Notacja Polska Popatrzmy na dziaªanie: 3+7×5 Ile wynosi wynik? 50 czy 38? A który jest poprawny? Czemu tak ªatwo znale¹¢ kalkulator który liczy ¹le ? Wazno±¢ dziaªa« arytmetycznych 1. pot¦gowanie 2. mnozenie i dzielenie 3. dodawanie i odejmowanie Nawiasy mog¡ j¡ zmienia¢! Wazno±¢ dziaªa« arytmetycznych 1. pot¦gowanie 2. mnozenie i dzielenie 3. dodawanie i odejmowanie Nawiasy mog¡ j¡ zmienia¢! A gdzie jest zmiana znaku? Czy jest mozliwy zapis jednoznaczny? Polski logik, Šukasiewicz, wprowadziª notacj¦ przedrostkow¡ . Zamiast z = x + y zaproponowaª zapis: +xy Czy jest mozliwy zapis jednoznaczny? Polski logik, Šukasiewicz, wprowadziª notacj¦ przedrostkow¡ . Zamiast z = x + y zaproponowaª zapis: +xy Zwracam uwag¦ ze jest on bardzo podobny do zapisu funkcji dwu zmiennych: z = f(x, y) Funkcja suma jest tez dwuargumentowa: z = +(x, y) Zapis polski Dziaªanie 3 + 7 × 5 oznaczaj¡ce 3 + (7 × 5) zapisujemy: + ×7 | {z 5} 3 | {z } odwrotny zapis polski Utarªo si¦ uzywanie innego zapisu: najpierw podaje si¦ argumenty dziaªania, pó¹niej samo dziaªanie: xy+ St¡d nazwa: Odwrotna notacja polska . Nasze dziaªanie zapisujemy tak: 7 5 × 3+ a to bardziej skomplikowane tak: A B + C D + ×W / Odwrotna Notacja Polska stos Praktyczna realizacja dziaªania A B + C D + ×W / wymaga stosu. I dodatkowych operacji w j¦zyku wewn¦trznym: I Zapisz_na_stos przepisuje zawarto±¢ akumulatora na stos. I Pobierz_ze_stosu pobiera ze stosu warto±¢ i przepisuje j¡ do akumulatora Odwrotna Notacja Polska stos Praktyczna realizacja dziaªania A B + C D + ×W / wymaga stosu. I dodatkowych operacji w j¦zyku wewn¦trznym: I Zapisz_na_stos przepisuje zawarto±¢ akumulatora na stos. I Pobierz_ze_stosu pobiera ze stosu warto±¢ i przepisuje j¡ do akumulatora Stos czasami jest nazywany pami¦ci¡ LIFO (Last In First Out). . . Odwrotna Notacja Polska stos Praktyczna realizacja dziaªania A B + C D + ×W / wymaga stosu. I dodatkowych operacji w j¦zyku wewn¦trznym: I Zapisz_na_stos przepisuje zawarto±¢ akumulatora na stos. I Pobierz_ze_stosu pobiera ze stosu warto±¢ i przepisuje j¡ do akumulatora Stos czasami jest nazywany pami¦ci¡ LIFO (Last In First Out). . . Kolejka jest nazywana pami¦ci¡ FIFO (First In First Out). Idea stosu