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
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).
Nie
Tak
Nie Tak
Tak
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).
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.
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.
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.
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.
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.
P1
P2 Sie czca
Pk
Procesory
M1
M2
Mi
Bloki pamici
Zesp Rejestrw
Ukad Sterowania
Magistrala systemowa
Blok Funkcjonalny 1
Blok Funkcjonalny n
Blok Funkcjonalny
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.
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.
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
Pami instrukcji
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
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.
operacja
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.
Dane/wyniki 1 2 3 :a :b :c
a1:
k1 :k1
a1+1: + a1+2: *
k2 :k2
k3 :k3
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
operacja
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.
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.
operacja
pole wyniku
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.
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.
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.
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 .