Anda di halaman 1dari 68

Wyklad 1 Pojcie architektury komputerw, modele architekturalne i obliczeniowe

Rozdziay wykadu: 1. Pojcia wstpne dotyczce rodowiska systemu komputerowego 2. Poziomy abstrakcji opisu urzdze cyfrowych 3. Pojcie architektura komputerw 4. Modele architekturalne systemw 5. Modele obliczeniowe

rodowisko systemu komputerowego


Sprzt komputera zesp ukladw wykonujcych programy wprowadzone do pamici komputera, (ang. hardware) Oprogramowanie komputera zesp programw przeznaczonych do wykonania w komputerze, (ang. software); oprogramowanie komputera skada si z systemu operacyjnego i programw u ytkownikw lub aplikacyjnych.

Program aplikacyjny program przystosowany do rozwizywania okrelonej klasy (grupy) problemw (aplikacji, zastosowa), zwykle dostarczany przez firm softwareow, (ang. application program). System operacyjny program zarzdzajcy zasobami sprztowymi komputera, poredniczcy midzy programami u ytkowymi i aplikacyjnymi a sprztem komputera, ( ang. operating system, supervisor). Rozkazy (instrukcje) programu elementy skadowe programu (operacje obliczeniowe) wyra one w danym jzyku programowania (ang. instructions). Jzyk programowania umowny system umo liwiajcy zakodowanie rozkazw (instrukcji) programu (ang. programming language). Kod programu zapis programu w jakim jzyku programowania (ang. program code).

Skadnia jzyka programowania reguy budowy poprawnych wyra e (instrukcji) tego jzyka (ang. syntax). Semantyka jzyka programowania znaczenie poprawnych wyra e (instrukcji) tego jzyka (ang. semantics). Sterowanie w programie zapis kolejnoci wykonywania wyra e lub instrukcji programu (ang. control). Przekazanie sterowania w programie przejcie do wykonania okrelonej instrukcji lub wyra enia (ang. transfer of control, control transfer).

Poziomy jzykw programowania


Jzyk makropolece (jzyk programu aplikacyjnego) - jzyk dla zapisu polece dla programu aplikacyjnego (ang. application language). Jzyk algorytmiczny (wysokiego poziomu lub wysokiego rzdu) jest to niezale ny od instrukcji komputera jzyk dla zapisu algorytmu (ang. algorithmic language, high level language). Jzyk asemblerowy (symboliczny) jzyk dla zapisu programu przy pomocy symbolicznie alfanumerycznie zakodowanych rozkazw komputera (ang. assembler language). Jzyk wewntrzny (jzyk maszynowy) jzyk dla zapisu programu przy pomocy rozkazw wewntrznych komputera, (ang. internal language, machine language). Kod maszynowy program napisany w jzyku wewntrznym (maszynowym) komputera (ang. machine code, internal code).

Schemat blokowy programu (algorytmu)


Schemat blokowy programu lub algorytmu jest to rysunek skadajcy si ze zbioru figur geometrycznych z napisami w rodku (prostoktw, kwadratw, k, rombw itp.) tzw. blokw, poczonych liniami lub strzakami (ang. program block diagram, agorithm block diagram). Figury symbolizuj operacje lub instrukcje a linie czce (strzaki) przedstawiaj kolejno wykonania tych operacji (instrukcji). Wrd blokw wyr niamy bloki obliczeniowe (ang. computational blocks) i bloki decyzyjne (ang. decision blocks). Bloki obliczeniowe reprezentuj obliczenia. Bloki decyzyjne reprezentuj zbadanie warunku (test) i wybranie jednego z wielu wyj z bloku (przewa nie jednego z dwu: dla spenienia warunku i nie spenienia) odpowiadajcych wynikom testu. Schemat blokowy programu (algorytmu) jest inaczej nazywany diagramem przej lub sieci dziaa (ang. flow diagram).

Tak Tak Nie Nie Tak

Nie

Nie Nie Tak Nie Tak

Tak

Nie Tak

Tak

a, b, , j bloki obliczeniowe x1, x2, ..., x8 bloki decyzyjne

Schemat blokowy programu (diagram przej)

Transformacje programu przed wykonaniem przez komputer


Translacja tumaczenie programu (kodu) zrdowego (ang. source program (code))z jednego jzyka programowania na program (kod) wynikowy (ang. object program (code)) w innym jzyku programowania, (ang. translation, translator). Kompilacja tumaczenie programu (kodu) zrdowego z jzyka algorytmicznego albo asemblerowego na program (kod) wynikowy w jzyku wewntrznym komputera , program tumaczacy wykonywany na tym samym komputerze na ktrym ma si wykona program wynikowy kompilator (ang. compilation, compiler). Asembler translator z jzyka asemblerowego na jzyk wewntrzny (ang. assembler).

Interpretacja wykonanie pojedyczych rozkazw jzyka wysokiego poziomu poprzez wykonanie odpowiadajcych im sekwencji rozkazw wewntrznych, program realizujcy wykonanie rozkazw interpreter. (ang. interpretation, interpreter). Pseudokompilacja- tumaczenie pojedyczych rozkazw jzyka wysokiego poziomu na sekwencje rozkazw jzyka poredniego z natychmiastowym wykonaniem przez interpretacj, program tumaczcy pseudokompilator (ang. pseudo-compilation, pseudo-compiler). Kroskompilator program tumaczcy program zrdowy na program wynikowy dla innego komputera ni ten, na ktrym odbywa si tumaczenie, (ang. cross-compiler) Konsolidator program zamieniajcy zbir programw wynikowych kompilacji oraz innych moduw programowych (np. programw bibliotecznych) na program wykonywalny, (ang. linker, library programs, executable program).

Program adujcy program uruchamiajcy wykonanie programu wykonywalnego w komputerze po sprowadzeniu go do pamici operacyjnej (ang. loader). Przenono programw mo liwo wykonania programu napisanego dla jednego typu komputera na komputerze innego typu, osigana poprzez skompilowanie programu w jzyku wysokiego poziomu na innym komputerze ( ang. portability). Zgodno programowa (binarna) komputerw mo liwo wykonywania programw skompilowanych dla jednego komputera na innym komputerze (ang. computer compatibility, binary compatibility). Komputer wirtualny(maszyna wirtualna) model komputera widziany poprzez instrukcje jzyka algorytmicznego (ang. virtual computer (machine)).

Sprzt komputera
Sygnay danych - sygnay reprezentujce dane w trakcie przemieszczania si midzy skadowymi elementami sprztowymi komputera (ang. data signals). Sygnay sterujce sygnay przesyane w komputerze w celu wywoywania w nim wykonania operacji niezbdnych dla wykonania programw (ang. control signals). Bramka logiczna - podzesp (urzdzenie) komputera realizujcy funkcj (operacj) logiczn na sygnaach wejciowych; mo e wypenia funkcj sterujc - kontroluje (otwiera/zamyka) drog dla sygnau sterujcego lub sygnau danych, albo funkcj przeksztacania (przetwarzania) danych wytwarza now warto danej na podstawie danych wejciowych (argumentw operacji, ktr realizuje) (ang. logical gate).

Przerzutnik - podzesp (urzdzenie) komputera, umo liwiajce zapamitanie jednego bitu informacji (ang. flip-flop). Rejestr podzesp (urzdzenie) komputera, umo liwiajce zapamitanie cigu bitw (ang. register). Rejestr stanowi cig przerzutnikw. Rejestr rozkazw komputera rejestr, do ktrego nale y wprowadzi rozkaz komputera, aby zosta wykonany (ang. instruction register). Rejestr buforowy rejestr poredniczcy na drodze przesyania informacji w komputerze (ang. buffer register). Rejestr adresowy rejestr, ktry przechowuje cig binarny wykorzystywany jako adres komrki pamici komputera (ang. address register).

Rejestr danych rejestr, ktry przechowuje cig binarny wykorzystywany jako dane dla oblicze (ang. data register). Licznik - podzesp (urzdzenie) komputera, przyjmujcy okrelon sekwencj stanw pod wpywem impulsw podawanych na jego wejcie (ang. counter). Licznik zawiera cig przerzutnikw, ktrych stany w danej chwili okrelaj stan licznika (ang. counter status). Licznik rozkazw specjalny licznik w komputerze, ktry wyznacza adres nastpnego rozkazu do wykonania (ang. program counter). Blok funkcjonalny (wykonawczy), ukad wykonawczy (funkcjonalny), jednostka wykonawcza (funkcjonalna) fragment sprztu komputera (podzesp) wypeniajcy wydzielony zbir operacji (funkcji) o podobnym charakterze (ang. functional unit). Blok arytmetyczno-logiczny inaczej jednostka arytmetyczno-logiczna blok funkcjonalny wykonujcy arytmetyczne i logiczne operacje na danych.

Pami komputera - podzesp (urzdzenie) komputera, umo liwiajce przechowywanie informacji (ang. memory, store). Szyna (magistrala) - podzesp (urzdzenie) komputera, umo liwiajce przysyanie informacji midzy r nymi urzdzeniami (blokami) komputera (ang. bus). Procesor inaczej centralny procesor, jednostka centralna- gwny podzesp komputera, wykonujcy instrukcje wewntrzne komputera (ang. processor, central procesor, central processing unit - CPU). Ukad sterowania komputera inaczej ukad sterujcy podzesp procesora zajmujcy si pobieraniem rozkazw i wytwarzaniem sygnaw sterujcych prac elementw skadowych komputera (ang. control unit).

Urzdzenia zewntrzne (peryferyjne) komputera r ne urzdzenia wsppracujce z komputerem (ang. peripheral devices). Urzdzenia wejcia/ wyjcia - podzespoy komputera przeznaczone do wprowadzania, wyprowadzania, przechowywania i przedstawiania informacji u ywanych przez komputer, bezporednio wsppracuj z urzdzeniami zewntrznymi komputera (ang. input/output devices).

Poziomy abstrakcji opisu urzdze cyfrowych


Systemy cyfrowe i ich dziaanie mog by opisywane na r nych poziomach szczegowoci, ktre nazywane s poziomami abstrakcji (ang. abstraction levels).

Mo na wyr ni 6 gwnych poziomw abstrakcji opisu systemw cyfrowych. Podane s one w tabeli poni ej. W pierwszej kolumnie podano nazw poziomu abstrakcji. W drugiej kolumnie podano elementy skadowe, ktre s rozwa ane przy opisywaniu systemu na danym poziomie abstrakcji. W trzeciej kolumnie okrelono oglnie elementy (rodzaj) jzyka, przy pomocy ktrego wyra ony jest opis elementw rozwa anych na danym poziomie abstrakcji.

6 poziomw abstrakcji opisu systemw cyfrowych

Poziom abstrakcji Poziom systemu operacyjnego Poziom oglnego systemu

Rozwa ane elementy Moduy systemu operacyjnego Elementy systemu komputerowego

Opis poprzez Dyrektywy systemu operacyjnego Typy i oglne cechy instrukcji komputera

Operacje procesora, Podstawowe Poziom procesorw pamici, zespoy instrukcje procesora rejestrw, itp Poziom blokw funkcjonalnych Poziom logiczny Poziom elektroniczny Bloki arytmetyczne, bloki logiczne, ukad Podstawowe operacje sterowania Bramki, przerzutniki Rwnania logiczne Tranzystory, diody itp Rwnania napi, prdw

Najwy szym poziomem abstrakcji opisu typowego systemu komputerowego jest poziom systemu operacyjnego. System operacyjny jest spoiwem, ktry wi e w systemie komputerowym elementy sprztowe i programowe systemu z programami u ytkowymi. W skrcie, mo na powiedzie, e system operacyjny wykonuje szereg funkcji zwizanych z utrzymywaniem systemu w stanie gotowoci do pracy, wykonywaniem programw u ytkowych, zabezpieczaniem poprawnoci dziaania systemu oraz ochron programw, danych i urzdze sprztowych przed dziaaniami zagra ajcymi ich bezpiecznemu istnieniu w systemie. Spenianiem tych funkcji zajmuj si r ne moduy programowe nale ce do systemu operacyjnego. Mo na wic spojrze na system bardzo makroskopowo, poprzez wypeniane przez niego funkcje i odpowiadajce im moduy. Funkcje te i moduy mo emy najkrcej opisa poprzez dyrektywy, przy pomocy ktrych te funkcje i moduy s wywoywane.

Ni szym poziomem abstrakcji jest tzw. poziom oglnego systemu. Widzimy tam system komputerowy jako aglomeracj poczonych ze sob du ych podzespow, takich jak procesory, pamici, urzdzenia zewntrzne i ich urzdzenia sterujce, zainstalowane w komputerze. Podane wy ej elementy bd rozwa ane przy opisie dziaania systemu. Opis systemu na tym poziomie wyrazimy poprzez opis wspdziaania rozwa anych elementw systemu. Najprociej bdzie to zrobi przez podanie typw i generalnego opisu instrukcji jzyka wewntrznego komputera.

Kolejny ni szy poziom abstrakcji opisu systemu jest nazwany poziomem procesorw. Na tym poziomie system widzimy poprzez wasnoci procesorw, ktrych znajomo jest konieczna dla napisania poprawnych programw u ytkowych dla tych procesorw. Najprociej te wasnoci wyrazi poprzez list instrukcji (rozkazw jzyka wewntrznego) procesorw realizujcych operacje komputera.

Nastpny ni szy poziom abstrakcji nazywamy poziomem blokw funkcjonalnych. Je eli chcemy przedstawi funkcjonalno procesorw bardziej szczegowo, to mo emy przej na ni szy poziom abstrakcji i wyr ni operacje, z ktrych wykonania skada si wykonanie rozkazw procesorw. Z tymi operacjami zwizane s pewne bloki wykonawcze (inaczej funkcjonalne) we wntrzu procesora, ktre te operacje realizuj. Na tym poziomie system widzimy jako zbiorowisko poczonych blokw funkcjonalnych nale cych do komputera. Bloki funkcjonalne najprociej opisa na tym poziomie poprzez opis wykonywanych przez nie operacji.

Ni szy poziom abstrakcji opisu systemu jest poziomem ukadw logicznych. Na tym poziomie widzimy logiczne moduy skadowe u yte do realizacji operacji blokw funkcjonalnych. Rozwa anymi elementami opisu systemu komputerowego s na tym poziomie elementarne ukady u yte do budowy blokw funkcjonalnych i drg przesyania informacji midzy tymi blokami, takie jak bramki logiczne, przerzutniki, itp. Te elementarne ukady s opisywane za pomoc tzw. rwna logicznych, wyra ajcych zale noci midzy sygnaami logicznymi obecnymi na ich wejciach i wyjciach.

Je eli, opisujc system cyfrowy, chcemy wnikn w szczegy budowy fizycznej bramek, przerzutnikw i innych elementw sprztowy musimy zej na poziom elektroniczny opisu systemu. Ten poziom rozwa a jak bramki i przerzutniki s zbudowane z podstawowych u ywanych dzisiaj elementw elektronicznych takich jak tranzystory, diody, opornoci, kondensatory itp. Dla opisu dziaania tych elementw i ich wspdziaania u yjemy rwna opisujcych zale noci midzy napiciami na ich kocwkach, rozpyw prdw, itp.

Nale y tu powiedzie, e zwykle, na ni szych poziomach abstrakcji opisu systemw cyfrowych, stosujemy hierarchiczn metod opisu. Polega to na tym, e przechodzimy na poziom niskiej abstrakcji jedynie dla niewielkiej liczby skadnikw opisu widocznych na wy szym poziomie abstrakcji. Uatwia to odbir opisw przez osoby lub systemy z nich korzystajce.

Dla opisu systemu na danym poziomie abstrakcji czsto stosujemy tzw. schematy blokowe, w ktrych przedstawione s elementy systemu rozwa ane na danym poziomie abstrakcji oraz ich wzajemne powizania. Schemat blokowy urzdzenia (komputera) (ang. block diagram) jest to rysunek skadajcy si ze zbioru figur geometrycznych z nazwami (prostoktw, kwadratw, k itp.) poczonych liniami. Figury symbolizuj podzespoy urzdzenia.

Linie czce przedstawiaj mo liwe powizania (wspdziaanie) midzy podzespoami, np. przesyanie danych, przesylanie adresw, przesyanie sygnaw sterujcych itp. Dobr podzespow przedstawionych w schemacie blokowym zale y od poziomu szczegowoci z jak rozpatrywane jest dziaanie urzdzenia a wic poziomu abstrakcji.

Pojcie architektura komputerw


Definicj pojcia architektury poda w 1964 G. Amdahl, projektant synnej serii komputerw IBM System/360, u ywanych w latach 60-tych.

Architektura komputera (ang. computer architecture) jest to charakterystyka komputera, ktr musi zna programista, aby napisa poprawny program w jzyku wewntrznym dla tego komputera. Niemal taka sama znajomo cech komputera jest potrzebna dla pisania programw w jzyku asemblera, definicj te wic mo na zmodyfikowa wprowadzajc w jzyku wewntrznym lub asemblerze.

Zgodnie z definicj Amdahla na architektur komputera skadaj si:

schemat blokowy komputera, opis rejestrw, struktura i opis pamici, opis blokw funkcjonalnych opis listy rozkazw opis podstawowych mechanizmw sterujcych, takich jak ukad przerwa, ukady synchronizacji, itp.

Architektura komputera wyznacza poziom abstrakcji wiedzy o komputerze potrzebny do napisania programu w jzyku wewntrznym komputera lub jzyku asemblera. Ten poziom abstrakcji wyznacza niezbdn struktur komputera i odpowiadajcy jej schemat blokowy.

Organizacja logiczna komputera jest to realizacja architektury komputera na poziomie ukadw logicznych, rejestrw, pamici i blokw funkcjonalnych. Poziom abstrakcji rozpatrywany w organizacji logicznej komputera jest znacznie ni szy ni przy rozpatrywaniu architektury komputera, gdy uwzgldnia ukady logiczne, ktre w architekturze komputera nie s uwzgldniane.

Mo liwe s dwa sposoby rozpatrywania architektury:

Exo-architektura (architektura zewntrzna )- opisywane urzdzenie traktuje si caociowo jako blok (element skadowy wikszego systemu) i podaje si jego opis funkcjonalny.

Endo-architektura (architektura wewntrzna) - opis urzdzenia na poziomie abstrakcji ni szym (bardziej szczegowym) ni poziom exoarchitektury, podaje si schemat blokowy oraz wasnoci i wspdziaanie elementw tego schematu.

Bardziej oglna definicja architektury urzdze, przeznaczona nie tylko dla rozpatrywania komputerw, zostaa podana w 1981 przez S. Dasgupt:

"Architektura jest to opis urzdzenia (komputera lub jego elementu) na danym poziomie abstrakcji" albo "definicja sprzgu (interfejsu) midzy r nymi poziomami abstrakcji opisu urzdzenia (komputera lub jego elementu), potrzebnego do zrozumienia dziaania urzdzenia (komputera, elementu) na tym ni szym poziomie".

Na rysunku poni ej pokazano kolejne poziomy abstrakcji opisu architektury systemu komputerowego i jego elementw. Najwy szy poziom abstrakcji jest to poziom globalnych wasnoci systemu, na ktrym podajemy jego exo-architektur. Zawiera ona cechy systemu istotne z punktu widzenia wykorzystania systemu jako elementu skadowego wikszych struktur np. struktur multi-systemowych. Endo-architektura systemu to jego struktura w rozo eniu na mniejsze bloki np. procesory, bloki pamici i elementy czce oraz ich cechy oglne wraz z oglnym sposobem wsppracy. Elementy systemu widzianego na tym poziomie mo emy opisywa podajc ich exo-architektur , u yteczn dla budowy z nich caego systemu lub tez mo emy wej w ich endo-architektur czyli ich struktur i opis funkcjonalny w rozbiciu na mniejsze elementy skadowe. Aby zrozumie dziaanie systemu na kolejnych, malejcych poziomach abstrakcji, musimy, zgodnie ze definicj Dasgupty, zna endo-architektur systemu odpowiadajc dekompozycji na elementy skadowe o zadanym ni szym poziomie szczegowoci.

Architektura globalna (exo-architektura) systemu komputerowego

Architektura szczegowa (endo-architektura) systemu komputerowego

P1

P2 Sie czca

Pk

Procesory

M1

M2

Mi

Bloki pamici

Architektura globalna (exo-architektura) procesora

Architektura szczegowa (endo-architektura) procesora

Zesp Rejestrw

Ukad Sterowania

Magistrala systemowa

Blok Funkcjonalny 1

Blok Funkcjonalny n

Architektura oglna (exo-architektura) bloku funkcjonalnego

Blok Funkcjonalny

Architektura szczegowa (endo-architektura) bloku funkcjonalnego

Pojcie "modelu architekturalnego" komputera


Model architekturalny komputera okrela w jaki sposb bd wykonywane obliczenia w tym komputerze.

Na model architekturalny komputera skada si 5 podstawowych elementw:

1. Podstawowe operacje obliczeniowe czyli podstawowe operacje komputera i typy danych okrelone przez list instrukcji wewntrznych. 2. Definicja przestrzeni adresowych dostpnych dla oblicze oraz mechanizmw dostpu do danych i instrukcji. 3. Sterowanie operacjami obliczeniowymi ( zasady odwzorowania oblicze na podstawowe operacje obliczeniowe i okrelania kolejnoci ich wykonania mechanizm sterowania w programach). 4. Zasady komunikacji midzy komputerami pracujcymi rwnolegle. 5. Zasady synchronizacji wymiany informacji.

Model architekturalny von Neumanna (ang. Von Neumann architectural model)

1. Procesor wykonuje obliczenia zgodnie z programem, skadajcym si z instrukcji wewntrznych, zapamitanych w pamici operacyjnej. 2. Instrukcje wykonuj operacje na danych ulokowanych w pamici i rejestrach. 3. Pami instrukcji wewntrznych i danych jest wsplna. 4. Procesor ma ukad sterowania, ktry pobiera z pamici operacyjnej kolejne instrukcje wewntrzne szeregowo z dostpem do danych i steruje wykonaniem tych instrukcji w komputerze.

Model architekturalny von Neumanna pochodzi z projektu elektronicznej maszyny EDVAC opublikowanego w 1946 na Uniwersytecie Princeton w USA przez prof. Johna von Neumanna. Koncepcje podobne do von Neumanna okazay si by wczeniej zaproponowane i czciowo zrealizowane w Iowa State College w USA w 1939 r w maszynie ABC (Atanasov-Berry Computer). Koncepcje te zostay pniej zrealizowane w maszynie ENIAC na Uniwersytecie Pensylvania, ktra bya pierwsz elektroniczn (lampow) maszyn cyfrow.

Blok arytmetyczno - logiczny ALU Pami Ukad sterowania Ukady We / Wy

Oglny schemat blokowy komputera o architekturze von Neumanna

Harvardzki model architekturalny (ang. Harvard architectural model):

1. Procesor wykonuje obliczenia zgodnie z programem, skadajcym si z instrukcji wewntrznych, zapamitanych w pamici operacyjnej. 2. Instrukcje wewntrzne wykonuj operacje na danych ulokowanych w pamici operacyjnej i rejestrach. 3. Pami instrukcji wewntrznych i danych jest rozdzielna. 4. Ukad sterowania pobiera kolejne instrukcje z pamici operacyjnej rwnolegle z dostpem do danych dla innych rozkazw i steruje wykonaniem tych instrukcji w komputerze.

Model architekturalny harwardzki pochodzi z maszyny Mark I (przekanikowa pami danych, pami instrukcji na tamie papierowej), zbudowanej w 1944 na Uniwersytecie Harvard w USA.

Pami danych

Blok arytmetyczno - logiczny ALU Ukady We / Wy Ukad sterowania

Pami instrukcji

Oglny schemat blokowy komputera o architekturze harvardzkiej

Pojcie modelu obliczeniowego


Model obliczeniowy (ang. computational model) okrela w jaki sposb bd programowane i wykonywane obliczenia w programie w systemie komputerowym.

Na model obliczeniowy skada si: model architekturalny systemu jzyk programowania.

Podstawowe modele obliczeniowe wykorzystywane w informatyce.


Model obliczeniowy Model von Neumana (sterowany przepywem sterowania w programie) Model sterowany przepywem danych w programie (ang. data flow driven) Model sterowany daniami oblicze (aplikacyjny, redukcyjny) Model programowania obiektowego Model programowania logicznego Model Turinga Model architekturalny Maszyna von Neumana Jzyk programowania Imperatywny

Komputer sterowany przepywem danych (ang. data flow computer)

Graf przepywu danych w programie lub jzyk pojedyczych przypisa

Komputer redukujcy Funkcjonalny czyli zapisy instrukcji do danych aplikacyjny Komputer zorientowany obiektowo Obiektowy lub zorientowany obiektowo

Komputer zorientowany na Logiczny programowanie logiczne Maszyna Turinga Dane na tamie wraz z tablic przej stanw

Model obliczeniowy von Neumana (klasyczny)


Instrukcje obliczeniowe wykonuj operacje na danych zapisanych w pamici i rejestrach komputera. Kolejno wykonywania instrukcji w programie jest ustalona przez programist poprzez kolejno ich zapisu w programie oraz instrukcje zmiany sterowania: skok, wywoanie podprogramu, powrt z podprogramu, itp.

W modelu architekturalnym von Neumana kolejno wykonywania instrukcji zapisanych w pamici wyznacza licznik rozkazw (ang. program counter), ktry zawiera zawsze adres nastpnej instrukcji w pamici. O ile aktualny rozkaz nie jest rozkazem zmiany sterowania, to jako nastpny wykonany jest rozkaz o adresie wzitym z licznika rozkazw komputera. O ile aktualnym rozkazem jest rozkaz zmiany sterowania w programie, to ustawia on now zawarto licznika rozkazw tj. nowy adres nastpnej instrukcji do wykonania.

Jzyk programowania stanowi w tym modelu jzyk w jakim zapisano program przed wykonaniem a wic jzyk maszynowy. W jzyku maszynowym programista lub kompilator okrela bezporednio (explicite) i dokadnie jakie instrukcje (obliczenia) maja si wykona i dokadnie w jakiej kolejnoci. Takie jzyki programowania nazywane s jzykami imperatywnymi.

Przykad
Obliczenie: y = (a+c)*(b+5)+a*c) drukuj y dla a=1, b=2, c=3.

Budowa instrukcji komputera u ytych poni ej w programie realizujcym obliczenie y.:

operacja

adres/warto adres/warto argumentu 1 argumentu 2

adres wyniku

Program jest zapisany w pamici komputera w komrkach odpowiadajcych kolejnym adresom poczwszy od a1. Wykonanie programu rozpoczyna si od instrukcji zapisanej pod adresem a1. Po wykonaniu ka dej instrukcji, komputer wykonuje instrukcj zapisan pod nastpnym adresem pamici. Steruje tym zwikszajc si o jeden zawarto licznika rozkazw.

Ilustracja modelu obliczeniowego von Neumana

Instrukcje programu Licznik rozkazw a1

Dane/wyniki 1 2 3 :a :b :c

a1:

k1 :k1

a1+1: + a1+2: *

k2 :k2

k3 :k3

a1+3: * k1 k2 k4 :k4 a1+4: + k3 k4 k5 :k5 a1+5: drukuj k5 -

Model obliczeniowy sterowany przepywem danych


W modelu obliczeniowym sterowanym przepywem danych kolejno wykonania instrukcji programu nie jest wyznaczana przez programist, lecz przez gotowo wszystkich danych wejciowych instrukcji. Wszystkie instrukcje gotowe do wykonania, w sensie dostpnoci ich danych wejciowych, powinny wykona si rwnolegle. Po wykonaniu tych instrukcji, wytworzone przez nich wyniki czciowe s rozprowadzane do wszystkich instrukcji programu, ktre z nich korzystaj. W ten sposb przepyw obliczonych wynikw (danych dla innych instrukcji) zapewnia gotowo instrukcji i wyznacza kolejno ich wykonania w programie.

Model architekturalny komputera sterowanego przepywem danych zakada, e dla ka dej instrukcji gotowej do wykonania bdzie dostpny odrbny procesor. Model ten zapewnia rwnolegy przepyw danych midzy tymi procesorami. W praktyce takie zao enia mog by spenione tylko dla ograniczonej liczby instrukcji w programie. W zwizku z tym, w praktyce, model architekturalny sterowany przepywem danych jest realizowany w oparciu o ograniczon liczb procesorw typu von Neumana. W systemie takim istnieje blok przegldania instrukcji programu pod wzgldem ich gotowoci do wykonania. Spord instrukcji gotowych, kieruje si do rwnolegego wykonania tylko liczb odpowiadajc faktycznej liczbie dostpnych procesorw. Po ich wykonaniu, rozsya si wyniki midzy instrukcjami. Nastpnie, wyznacza si instrukcje gotowe do wykonania i znw kieruje si do wykonania ich liczb ograniczon faktyczn dostpnoci procesorw wykonawczych. Przykady komputerw sterowanych przepywem danych: MIT Data Flow Computer, Manchester Data Flow Computer.

Jzykiem programowania w modelu obliczeniowym sterowanym przepywem danych jest graf instrukcji programu poczonych krawdziami, ktre s okrelone przez wskaniki rozpywu wynikw oblicze midzy instrukcjami. Inn form jzyka programowania w tym modelu s tzw. jzyki pojedyczych przypisa (ang. single assignment languages), gdzie wykorzystuje si zmienne, reprezentujce dane i wyniki oblicze, ktrym nadaje si wartoci tylko raz w trakcie wykonywania programu, przykad: jezyk SISAL. Obydwie formy jzyka programowania okrelaj jakie obliczenia maj by wykonane, nie okrelajc dokadnie ich kolejnoci. Takie jzyki programowania nazywamy jzykami deklaratywnymi.

Przykad

Obliczenie: y := (a+c)*(b+5)+a*c drukuj y dla a=1, b=2, c=3.

Budowa instrukcji komputera:

operacja

pole pole adres przesania argumentu 1 argumentu 2 wyniku

Ilustracja modelu obliczeniowego sterowanego przepywem danych

Dane wejciowe: a: Instrukcje: i1: + P P i4(1) i2: + P 5 i4(2) i3: * P P i5(2) 1 b: 2 c: 3

i4:

i5(1) i6(1)

i5:

i6: drukuj

W powy szym przykadzie, a, b, c, symbolizuj adresy komrek pamici komputera, w ktrych przechowuje si wartoci danych wejciowych dla zmiennych a, b, c, u ytych w formule obliczania wartoci y. i1,...,i6 s to adresy pod ktrymi zapisano w pamici komputera instrukcje programu. Wewntrz instrukcji znajduj si pola do wpisania danych pocztkowych dla programu lub wynikw wykonania innych instrukcji. S one oznaczone liter P. Polom tym s przypisane identyfikatory1 i 2. Na pocztku nastpuje wpisanie danych wejciowych do wszystkich instrukcji, ktre z nich korzystaj. Wykonuj si rwnolegle wszystkie instrukcje , ktre maj gotowe (wpisane) wszystkie dane wejciowe. Po wykonaniu ka dej instrukcji, jej wynik jest rozsyany do wszystkich instrukcji wskazanych w prawym skrajnym polu instrukcji podany jest adres instrukcji w pamici oraz numer pola (w nawiasie). Obliczenie zostaje zakoczone po wykonaniu instrukcji spod adresu i6.

Model obliczeniowy sterowany daniami oblicze


Jest to model obliczeniowy, w ktrym kolejno wykonywania oblicze w programie nie jest okrelona przez programist i nie zale y od ich porzdku w programie. W modelu tym instrukcja (pakiet obliczeniowy) jest aktywowana do wykonania, o ile jej wyniki s potrzebne dla wykonania innej instrukcji. Instrukcja zostaje wykonana o ile ma dostarczone wszystkie potrzebne argumenty w postaci liczbowej. Wykonanie instrukcji zamienia j na warto wytworzonego przez ni wyniku (redukuje do wyniku), ktry staje si wtedy dostpny dla innych instrukcji. Std taki model obliczeniowy nazywamy rwnie modelem redukcyjnym (ang. graph reduction model).

Inna odmiana modelu sterowanego daniami oblicze, powoduje przepisywanie potrzebnych formu obliczeniowych z aktywowanych pakietw instrukcji do pakietw instrukcji aktywujcych, dotd a w rozszerzonym aktywujcym pakiecie zawarte bd wszystkie niezbdne formuy do obliczenia danej wartoci. Przepisywanie formu jest rwnowa ne przykadaniu (ang. application) formu (funkcji) z pakietw aktywujcych do formu (funkcji) z pakietw aktywowanych. Dlatego taki model obliczeniowy nazywamy rwnie modelem aplikacyjnym (ang. applicative model) lub modelem funkcyjnym (ang. functional model). Do zapisu programu u ywamy w tym przypadku deklaratywnych jzykw programowania nazywanych jzykami funkcyjnymi lub funkcjonalnymi (ang. functional languages), przykady - jzyki ML, LISP, Haskell.

Przykad
Obliczenie: y := (a+c)*(b+5)+a*c drukuj y dla a=1, b=2, c=3.

Budowa pakietu instrukcji komputera:

operacja

adres pakietu adres pakietu dostarczajcego dostarczajcego argument 1 argument 2

pole wyniku

Ilustracja modelu obliczeniowego sterowanego przepywem da oblicze

Dane wejciowe: a: Instrukcje: i1: + i4: * 1 b: 2 c: 3

i2:

i3:

i5:

i6: drukuj

W powy szym przykadzie, a, b, c, symbolizuj adresy komrek pamici komputera, w ktrych przechowuje si wartoci danych wejciowych dla zmiennych a, b, c, u ytych w formule obliczania wartoci y. i1,...,i6 s to adresy pod ktrymi zapisano w pamici komputera pakiety instrukcji programu. Wewntrz ka dej instrukcji znajduj si pola wskazujce instrukcje, ktre maj wytworzy argumenty dla tej instrukcji. Istnieje te pole do wpisania wyniku wykonania tej instrukcji, oznaczone liter P. Na pocztku nastpuje prba wykonania aktywacja instrukcji spod adresu i6. Instrukcja, ktra jest aktywowana mo e si wykona, jeli s gotowe wszystkie potrzebne jej dane wejciowe. O ile dane te nie s gotowe, nastpuje aktywacja wyliczajcych je instrukcji. Instrukcja spod adresu i6 aktywuje instrukcj spod i5 . Ta z kolei aktywuje instrukcje spod i3, i4., itd. Instrukcje spod i1, i2, i3 pobieraj dane wejciowe i wykonuj si jako pierwsze, zapeniajc swoje pola P. Ich wyniki w polach P s dostarczone do instrukcji, ktre ich potrzebuj. Obliczenie zostaje zakoczone po wykonaniu instrukcji spod adresu i6.

Model obliczeniowy Turinga.

Ten model obliczeniowy zosta zaproponowany w 1937 r przez A. Turinga z Uniwersytetu Cambridge w Anglii jako pierwszy uniwersalny model obliczeniowy. Su y dla porwnywania wasnoci r nych algorytmw i programw pochodzcych z r nych komputerw, metod przedstawienia ich w tym modelu obliczeniowym. Jest u ywany do dzisiaj w tym celu przez teoretykw informatyki. Model Turinga obejmuje model architekturalny maszyn Turinga oraz odpowiedni dla tego modelu specjalny jzyk programowania.

Nastpujce elementy skadaj si na model obliczeniowy Turinga:

1. Skoczony alfabet symboli: a, b, c, , m. 2. Skoczony zbir stanw: stan pocztkowy S0, stan S1, stan S2, , stan kocowy Sk. 3. Nieskoczona tama z polami na zapis symboli z alfabetu. 4. Gowica czytajco/piszca na tamie, ktra mo e przesuwa si o jedno pole w zadanym kierunku, 5. Diagram przej midzy stanami tablica przej, okrelajca nastpny stan, zapis symbolu pod gowic i kierunek nastpnego ruchu.

6. Dziaanie mechanizmu sterowania maszyna w stanie i czyta znak z pod gowic, dla stanu i oraz znaku z maszyna okrela z tabeli przej: stan, do ktrego ma przej, znak, ktry ma by wpisany w polu pod gowic, kierunek ruchu gowicy o 1 miejsce,

gowica wpisuje nowy znak i przesuwa si w zadanym kierunku. 7. Instrukcje to znak, stan, kierunek. Jzyk programowania w tym modelu obliczeniowym stanowi alfabet symboli i tablica przej stanw maszyny.

Schemat maszyny Turinga

Przykad Dodawanie liczb cakowitych (model obliczeniowy takiego dodawania) w maszynie Turinga: Notacja zapisu skadnikw i wyniku: jednorodne cigi znakw 1 w liczbie rwnej wartoci skadnika lub wyniku, zapisane w polach odseparowanych znakami X. Na tamie zapisane s dane szecio-pozycyjne: 4 oraz 5 XX001111X111110XX Program startuje z lewego X przesuwa gowic w prawo a do pierwszego X po cigu zer i jedynek, zastpuje to X przez 1, nastpnie przesuwa si w prawo do ostatniej jedynki, zastpuje t jedynk przez O. Tama po wykonaniu operacji zawiera kod liczby 9: XX0011111111100XX .

Anda mungkin juga menyukai