Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga."

Transkrypt

1 ARCHITEKTURA I DZIAŁANIE KOMPUTERA Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga. Maszyna Turinga Maszyna ta jest najpotężniejszym komputerem mimo że fizycznie nie istnieje. Jak mamy do wykonania jakieś działanie typu wypełnić formularz itp., to teoretycznie czytamy to co mamy na kartce w sposób sekwencyjny, czyli po kolei, nikt nie czyta najpierw z lewego górnego rogu, potem z prawego dolnego itp. Podobnie jest jeśli chodzi o rozwiązywanie zadań, najpierw rozwiązujemy te, na które natrafimy, po kolei. Analogicznie mamy w maszynie Turinga. Zauważmy, ze wszystkie elementy maszyny jej stany, akcje (np. drukowanie, kasowanie, przesuwanie taśmy) są skończone, dyskretne i jednoznacznie rozróżnialne. Poza tym dysponujemy teoretycznie nieskończoną ilością taśmy (pamięci). Idea maszyny Turinga bazuje na sekwencyjności elementarnych operacji polegających na zmianie według precyzyjnie i dobrze określonych reguł zawartości nieskończonej taśmy papieru komórka po komórce. Opis postępowania jest bardzo prosty i sprowadza się do formuł postaci Jeśli jesteś w stanie X i odczytanym symbolem jest Y to zapisz symbol Z, przesuń się o jedna komórkę w prawo i przejdź do stanu (przyjmij, ze jesteś w stanie) A." sekwencyjność operacji intuicja prowadząca do maszyny. Bo chodzi o to, że jak mamy jedno pod drugim przykłady jakiś równań to wykonujemy je po kolei, więc w sumie moglibyśmy je zapisać w jednej linii, jako jeden ciąg znaków. Ale nadal mamy analizę działania i rozbijania problemu na mniejsze działania. Dlatego Tubing wymyślił, że zobrazujemy wszystkie operacje na taśmie i robimy to tak, że jeden znak zajmuje jedną komórkę na tej taśmie. Czyli oprócz taśmy mamy też głowicę czytającą i w danym momencie możemy przeczytać tylko dokładnie jeden znak, który się aktualnie znajduje nad głowicą i w zależności od tego, co przeczyta, to wykona dane działanie. Głowica czytająca jest w różnych stanach i to od nich też zależy c o będzie dalej. Trzecią rzeczą która składa się na budowę maszyny Turinga to te stany właśnie. - Abstrakcyjny model nieskończonej długości taśmy, czytającej głowicy, stanów w których znajduje się głowica, zbiór stanów to jakby wyniki operacji wykonywanych przez głowicę - Formalna de finicja M ( Q,,, s) gdzie Q kończony niepusty zbiór stanów Sigma skończony niepusty zbiór dopuszczalnych symboli taśmowych, zwany również alfabetem. Zbiór ten musi zawierać co najmniej dwa specjalne symbole - _ (symbol pusty) i taki trójkącik w formie strzałeczki i jest to symbol końcowy. Delta funkcja następnego ruchu (nazywana także diagramem lub tablicą przejść), która jest odwzorowaniem ze zbioru delta: Q x sigma w zbiór (Q w sumie {k,t,n} x sigma) x (<-, ->, -), gdzie k jest stanem końcowym, t jest stanem akceptującym, n jest stanem odrzucającym, zaś <-, ->, _ oznaczają ruch głowicy odpowiednio w lewo, w prawo oraz pozostanie w miejscu; symbole te nie należą do zbioru Q. Ta funkcja jest największym problemem. Musimy wiedzieć pod wpływem jakiego symbolu będąc w jakim stanie, do jakiego stanu przechodzimy to nam mówi delta. Zbiór wartości tej funkcji to nie tylko stan do którego przechodzę, ale też symbol, który zapiszę w tym miejscu oraz dokąd przejdę teraz,. Możemy nic do komórki nie zapisywać. Funkcja ta może nie być określona dla wszystkich argumentów. S to stan początkowy (wyróżniony stan należący do zbioru Q) czyli to stan od którego analizowanie maszyny się zaczyna, to teraz zaczyna się odczytywanie symboli z taśmy. Maszynę Turinga można opisać w sposób formalny przedstawiony powyżej i jest wiele różnych takich sposobów definiowana tych zbiorów i ich elementów. Maszynę tą można też podać w sposób graficzny, którego tu nie przestawię. Wtedy stany rys owane są w kółeczkach i stan s początkowy jest wyróżniony w ten sposób, że dochodzi do niego

2 strzałeczka znikąd i mamy strzałeczki od jednego stanu do drugiego a nad strzałeczkami piszemy pod wpływem jakiego symbolu przechodzimy do tego stanu, obok piszem y co zapiszemy w komórce do której pójdziemy i w którą stronę się porusza, to w sumie opis tej funkcji delta. Powiedzmy teraz, że mamy określoną maszynę s: a c b a a b a c a c c to oczywiście tylko kawałek taśmy, możemy przyjąć, że dalej są symbole pusty, Głowica u nas to to co jest pogrubione. I mając ten fajny rysunek którego nikt nie przerysował możemy obie analizować co dostaniemy. W informatyce dowodzi się równoważności wielu różnych wariantów maszyny Turinga, np. dość łatwo jest pokazać, że maszyna Turinga z wieloma taśmami nie różni się istotnie od klasycznej maszyny jednotaśmowej. Również niedeterministyczne maszyny Turinga są równoważne deterministycznym. Te różnice są tylko po to by nam ułatwić, ale nadal one są w sobie funkcjonalnie równoważne, przy użyciu dowolnej maszyny Turinga otrzymamy ten sam wynik. Hipoteza Churcha Turinga Każdy problem, dla którego przy nieograniczonej pamięci oraz zasobach istnieje efektywny algorytm jego rozwiązywania, da się rozwiązać na maszynie Turinga, Nie potrafimy tego udowodnić, bo nie potrafimy precyzyjnie zdefiniować czym jest algorytm, czym jest program komputerowy itp. Czyli teoretycznie maszyna Turinga to uniwersalny model komputera, każdy komputer teoretycznie da się do maszyny Turinga sprowadzić. Jest to tylko hipoteza bo nie można jej sprawdzić na drodze matematycznych rozważań właśnie dlatego, że łączy w sobie zarówno ścisłe jak i nieprecyzyjne sformułowania, których interpretacja może zależeć od konkretnej osoby. Wnioski - Hipoteza pozwala dokładniej sformułować pojęcie samego algorytmu mówiąc jednocześnie, że komputery są w stanie go wykonać, bo trudno jest precyzyjnie zdefiniować czym jest algorytm - wszystkie komputery mają jednakowe możliwości, jeśli chodzi o zdolność do wykonywania algorytmów, a nie dostępne zasoby tj pamięć operacyjna, procesor itp. I pomijając to czy wynik otrzymam jutro czy za milion lat to nadal otrzymam go na każdym komputerze, czyli w pewnym sensie wszystkie komputery są tym samym - Nie jest możliwe zbudowanie komputera o zdolności do rozwiązywania wię kszej liczby problemów, niż najprostsza maszyna Turinga - Dowolny problem, mający rozwiązanie na znanych nam obecnie popularnych komputerach, można rozwiązać, konstruując odpowiadającą mu maszynę Turinga - Wszystko jedno jak by konstrukcja maszyny Turinga nie była złożona (złożona w sensie ilości stanów i definicji funkcji przejścia, bo sama maszyna jest bardzo prosta) a ona sama realizowała nie wiadomo jak skomplikowane zadania, to cały problem można sprowadzić do bardzo elementarnych działań manipulowania symbolami z pewnego ograniczonego alfabetu według ściśle określonych reguł. - Dowolny problem, mający rozwiązanie na znanych nam obecnie popularnych komputerach, można rozwiązać, konstruując odpowiadającą mu maszynę Turinga. - Twierdzenie przeciwne nie jest prawdziwe: Nie jest prawda, ze jeśli pewien algorytm może wykonać maszyna Turinga to może go tez wykonać komputer. Żaden komputer nie jest tak potężny jak maszyna Turinga, gdyż nie maja nieskończenie dużo pamięci oraz operują na zmiennych o ograniczonej wielkości. - Wszystko jedno jak by konstrukcja maszyny Turinga nie była złożona (w sensie ilości stanów i definicji funkcji przejścia, bo sama maszyna jest bardzo prosta), a ona sama realizowała nie wiadomo jak skomplikowane zadania, to cały problem można sprowadzić do bardzo elementarnych działań manipulowania symbolami z pewnego ograniczonego alfabetu według ściśle określonych reguł.

3 Bramka To one tworzą współczesne komputery. Bramka jest układem elektronicznym, którego sygnał wyjściowy jest wynikiem operacji Boole a na sygnałach wejściowych. W bramkach wyróżniamy: - symbole - analiza działania Powoli zbliżamy się do opowiedzenia o budowie komputera, o jego strukturze logicznej, dlatego najpierw powiemy sobie o elementach składowych komputera, najbardziej elementarnych jednostkach z których budujemy komputer jako taki. Wiadomo, że składa się z procesora, pamięci itp., ale o tym za tydzień. Jak wiemy, komputer wykonuje operacje zdefiniowane za pomocą algebry Boole a i do tego są potrzebne bramki. W algebrze Boole a była dwuelementowa 0 i 1 i to nie ma znaczenia co 0 i 1 oznaczają, chodzi o to bu były dwa te elementy. Musimy mieć układy realizujące elementarne operacje i na ich podstawie możemy zbudować już wszystko inne. x y AND(x,y) OR(x,y) NOT(x) Układy, które realizują powyższe operacje to właśnie bramki te które sobie rysowałam w zeszycie. Z jednej strony mamy operacje wejścia, a z drugiej wyjścia na wyjściu jest wynik operacji boolowskiej. Istnieją też bramki pomocnicze XOR to różnica symetryczna, NAND to zaprzeczenie end itp. x y AND(x,y) OR(x,y) NOT(x) NAND(x,y) NOR(x,y) XOR(x,y) Zbiór pierwszych trzech bramek nazywa się zbiorem funkcjonalnie pełnym, ale co ciekawe mając tylko OR i NOT też da się uzyskać AND. Zbiór funkcjonalnie pełny to też NAND! Te dodatkowe bramki są po to, bo jak mamy zbudować układ w którym potrzebujemy trzech bramek to mamy nie fajnie, a łatwiej jest używać mniej tym bardziej ze układ zbudowany tylko z takich samych bramek patrz NAND jest to znacznie prostsze. XOR jest często wykonywany chociażby w szyfrowaniu, ale my teraz nie będziemy o nim dłużej mówić. Jak połączymy ze sobą dwie bramki NAND i potem to z trzecią bramką NAND i dostaniemy to co niżej. W wyglądzie bramka NAND wygląda tak jak AND tylko z kółeczkiem po prawo. Dostaliśmy dokładnie kolumnę OR! x y Maszyna analityczna (1833) Charles Babbage Maszyna ta jak na swoje lata jest bardzo rewolucyjna na zaawansowana, dwieście lat później czyli dziś my właśnie bazujemy na tych ideach, to taki jakby pierwszy prakomputer. Do 1833 roku tworzono wiele różnych maszyn liczących coś, tworzono tylko maszyny liczące, bo tylko to było potrzebne, różne geograficzne maszyny itp. Owe maszyny zawsze rozwiązywały tylko jedną konkretną rzecz, nie były wszechstronne, a owe maszyny bądźmy szczerzy konstruowano przy pomocy młotka, co nie było wcale

4 fajne no i przeszkadzało to ludziom, bo jak potrzebowali nagle policzyć coś innego, to trzeba było znów projektować kolejną maszynę, budować ją, co było czasochłonne, pracochłonne i kosztowne. Dlatego starano się stworzyć maszynę w miarę uniwersalną, czyli ta maszyna miała liczyć to, co będziemy jej kazać. Maszyna ta miała składać się z: - magazynu (dzisiejszy odpowiednik pamięci), - młyna (jednostka licząca), - mechanizmu sterującego (jednostka sterująca). Pamięć miała służyć do przechowywania danych oraz wyników z przeprowadzanych na nich operacji. Młyn, odpowiednik dzisiejszej jednostki arytmetyczno-logicznej, miał wykonywać proste działania arytmetyczne. Mechanizm sterujący miał kierować działaniem całego urządzenia i w założeniach, miał być programowany. Maszyna analityczna nie doczekała się realizacji praktycznej i uwagi na proponowana technologie realizacji (napędzanie silnikiem lokomotywy parowej, czysto mechaniczna, wysokiej złożoności konstrukcja) istnieje wątpliwość, czy konstrukcja tego typu byłaby zdolna do sprawnej, bezawaryjnej pracy. Jednakże jej konstrukcja posłużyła późniejszym twórcom (głównie Johnowi von Neumannowi) do opracowania dzisiejszych komputerów. Czyli istotny jest sam pomysł związany z uniwersalnością owej m aszyny, by służyła do rozwiązywania różnych wielu zadań oraz chodziło też o możliwość programowania owej maszyny bez zmian fizycznych, tylko przy użyciu nowego kodu. Te dwie rzeczy nigdy wcześniej nie występowały. Oczywiście podczas budowania tej maszyny n ikt nie rozumiał po co komuś coś takiego ;) To właśnie tu pojawia się też tematyka programowania tego typu urządzeń i ktoś musiał te programy napisać, zatem przy okazji tej maszyny po raz pierwszy pojawia się programista i była to co ciekawe kobieta ;) Ona stworzyła pierwsze programy na tą maszynę mimo że maszyna sama w sobie nie istniała. Programy te rzeczywiście działały, co sprawdzono jakoś w latach powojennych. Tym programistą była Ada Lovelace. To do jej imienia pochodzi nazwa języka programowania Ada. Siłą napędową owej maszyny był silnik parowy. Maszyna miała mieć około 30 metrów długości i 10 metrów szerokości. Dane wejściowe (program oraz dane) wprowadzane miały być za pomocą kart dziurkowanych, powszechnie wykorzystywanych w tamtym czasie przez krosna mechaniczne. Do sygnalizowania i udostępniania danych wejściowe maszyna posiadała a printer a curie plotter and a Bell. Dodatkowo wyniki mogły być przedstawione na kartkach dziurkowanych w cely dalszego wykorzystania. Maszyna wykorzystywała stałoprzecinkową arytmetykę oraz system dziesiętny. Magazyn mógł pomieścić 1000 liczb 50-cio cyfrowych. Młyn mógł wykonać wszystkie cztery operacje arytmetyczne, porównanie, oraz obliczyć pierwiastek arytmetyczny. Architektura von Neumanna (1945) Każdy obecny komputer czy laptop jest przedstawicielem właśnie tej architektury von neumannowskiej. Po maszynie analitycznej konstruowano dalej maszyny konkretne jakby nigdy nie było owej maszyny analitycznej. Pierwsze zautomatyzowane maszyny liczące posiadały sztywno zakodowany program. W celu jego zmiany należało zmienić sieć połączeń elektrycznych, strukturę maszyny, czyli ją przebudować. Mimo idei zapoczątkowanej przez Babbage a pierwsze zautomatyzowane maszyny liczące posiadały sztywno zakodowany program. W celu jego zmiany należało zmienić siec połączeń elektrycznych, strukturę maszyny lub nawet przeprojektować ja. W istocie pierwsze komputery były nie tyle programowalne co przebudowywane (nie były zaprogramowane ale zaprojektowane ). Programowanie, jeśli w ogóle możliwe, było bardzo fizycznym procesem, rozpoczynającym się od wstępnego szkicowania diagramów

5 przepływu danych i wielu notatek, przez projektowanie inżynierskie na żmudnym procesie przebudowywania maszyny kończąc. Wspomniane problemy z programowalnośc ią doprowadziły zapewne do narodzenia się idei programu przechowywanego w komputerze ( w strukt urach jakie dostarczał). Dlatego też powrócono w pewnym sensie do maszyny analitycznej tylko zmieniono nazwy elementów. Architekture von Neumanna (John von Neumann, John W. Mauchly, John Presper Eckert) przedstawiono po raz pierwszy w 1945 roku. Wyróżniamy w niej trzy podstawowe części: - procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna) - pamięć komputera (zawierająca dane i sam program) - urządzenia wejścia/wyjścia (w maszynie analitycznej był zamiast tego dzwoneczek i drukarka kart) System komputerowy zbudowany w oparciu o architekturze von Neumanna powinien: - mieć skończoną i funkcjonalnie pełna listę rozkazów. Operując owymi rozkazami wprowadzamy je do komputera i każdemu mu robić to i to. Dawniej to nie było wcale takie naturalne. Wreszcie nie jest to jeden konkretny tylko program, możemy go zawsze przeprogramować bez konieczności przebudowania go; - mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych, a skoro jest przechowywany w pamięci, to łatwo jest go pobrać ; - dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora, skoro jedno i drugie jest liczbą i przechowywane w pamięci, to nie jest rozróżnialne co jest daną a co jest rozkazem, zatem nie wyróżniamy ani szczególnej części pamięci na jedno ani na drugie, komputer może w każdej chwili odczytać rozkaz jak i daną; - informacja jest przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji przez procesor. - Podane warunki pozwalają przestawić system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej 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 sa zakodowane w postaci liczb. - Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. - Wykonywany program może sie sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji danych zacząć je wykonywać. - Model komputera wykorzystującego architekturę von Neumanna jest często nazywany przykładowa maszyna cyfrowa. Termin architektura von Neumanna pochodzi od nazwiska matematyka John von Neumann s autora raportu First Draft of a Report on the EDVACa. Datowany na 30 czerwca 1945 roku, był wczesna pisemna notatka dotycząca komputera ogólnego przeznaczenia przechowującego program w pamięci (ang. a general purpose storedprogram computing machine) jaka miał byc EDVAC. Jakkolwiek prace von Neumanna należy zaliczyć do pionierskich to juz sam termin architektura von Neumannowska

6 wydaje sie krzywdzić zarówno osoby współpracujące z von Neumannem jak i te na których wynikach oparł swoje doświadczenia. Idea opisana prze von Neumanna pojawiła sie juz w 1936 w opatentowanym rozwiązaniu Konrada Zuseego. Pomysł na stworzenie komputera przechowującego program w pamięci pojawiła sie w The Moore School of Electrical Engineering at the University of Pennsylvania zanim jeszcze von Neumann usłyszał cokolwiek o ENIAC. Nie jest znany autor tej idei. John William Mauchly oraz J. Presper Eckert pisali o idei przechowywania programu w pamięci w grudniu 1943 podczas ich prac nad ENIAC. Ponadto Grist Brainerd, dyrektor (?) (ang. Project administrator) projektu ENIAC, w grud niu 1943 w raporcie z postępów prac nad ENIAC nie wprost proponował takie rozwianie (jednocześnie odrzucając je jako możliwe do zastosowania w ENIAC (?)) stwierdzając, ze w celu uproszczenia projektu i niekomplikowania spraw ENIAC zostanie skonstruowany bez żadnych automatycznych regulacji (?). 19 lutego 1946 Alan Turing przedstawił dokument zawierający kompletny projekt komputera przechowującego kod w pamięci (ang. stored-program computer), Pilot ACE (jednego z pierwszych komputerów zbudowanych w Wielkiej Brytanii w The National Physical Laboratory (NPL) we wczesnych latach 50-tych). Elementy współczesnego modelu Procesor (CPU central processing unit) pamięć wejście/wyjście (input/output) łącznik w postaci magistral (on łączy powyższe trzy elementy ze sobą) Układy wejścia i wyjścia Teoretyczne komputer może bez nich działać, bo przecież teoretycznie komputer bez myszki czy klawiatury działa, ale te urządzenia są po to, by móc się z tymj komputerem komunikować, bo po co nam komputer bez myszki i klawiatury, któremu nie możemy kazać niczego zrobić? Pamięć We współczesnych komputerach nie ma jednego rodzaju pamięci, co wynika z prostego rachunku ekonomicznego, bo wiadomo, że im szybsza pamięć tym droższa. Dlatego we współczesnych komputerach mamy cały zespół różnych rodzajów pamięci i w zależności od danego zapotrzebowania dane są przechowywane w różnych rodzajach pamięci. Tu była narysowana piramidka z książki. Szerokość piramidy oznacza pojemność danego rodzaju pamięci a wysokość to szybkość, czyli na górze są najszybsze, ale też najmniej pojemne i najdroższe, a na dole najbardziej pojemne, ale najwolniejsze, lecz też najtańsze. Na samym dole są dyski twarde czyli HDD. Nad nimi są CD i DVD, jeszcze wyżej jest pamięć operacyjna, a na szczycie piramidy mamy rodzaj pamięci o nazwie rejestr. W obecnych komputerach używamy całej klasy pamięci, by w pewien sposób było nas stać na to. Wiadomo, że dane, które potrzebujemy tylko od czasu do czasu mogą być na dysku twardym, czyli na urządzeniu wolnym, bo wiadomo, że nie oglądamy na raz i ciągle wszystkich filmów jakie mamy. Procesor z kolei wiadomo, że ma pamięć bardzo szybką. Gdzieś pomiędzy potrzebami procesora a naszymi potrzebami na składowanie danych jest środek naszej piramidy, czyli pamięci operacyjne typu RAM. Magistrala Mamy różne rodzaje magistrali co też jest ładnie opisane w książce, bo nie dało się tego zdążyć zapisać, gdy to mówił. Jest magistrala sterująca, adresowa i danych. Procesor Procesor (ang. processor) nazywany często CPU (ang. Central Pr ocessing Unit) urządzenie cyfrowe sekwencyjne potrafiące pobierać dane z pamięci, interpretować je i wykonywać jako rozkazy. Wykonuje on bardzo szybko ciąg prostych operacji (rozkazów)

7 wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora. W funkcjonalnej strukturze procesora można wyróżnić takie elementy, jak: - zespół rejestrów do przechowywania danych i wyników (rejestry mogą być ogólnego przeznaczenia lub maja specjalne przeznaczenie), - jednostkę arytmetyczno-logiczną (arytmometr, ALU) do wykonywania operacji obliczeniowych na danych, - jednostkę obsługi pamięci - jednostkę obsługi instrukcji (pobieranie i dekodowanie) (to było na pierwszej wersji slajdów na drugiej już nie - układ sterujący przebiegiem wykonywania programu.) W funkcjonalnej strukturze procesora można wyróżnić takie elementy, jak: zespół rejestrów do przechowywania danych i wyników (rejestry mogą być ogólnego przeznaczenia lub maja specjalne przeznaczenie), jednostkę arytmetyczna (arytmometr, ALU) do wykonywania operacji obliczeniowych na danych, jednostkę obsługi pamięci, jednostkę obsługi instrukcji (pobieranie i dekodowanie). Zestaw instrukcji Zestaw instrukcji (rozkazów) jest listą wszystkich instrukcji (we wszystk ich przewidzianych przez architekturę dopuszczalnych wariantach) akie procesor jest zdolny wykonać. W skład instrukcji wchodzą: - instrukcje arytmetyczne np. add czy subtract - instrukcje logiczne np. not, or - instrukcje operujące na danych w sensie trakt owania ich jako sekwencji zer i jedynek bez wnikania w ich znaczenie np. move, input, store - instrukcje sterujące przepływem danych, np. goto, return Cykl pracy W funkcjonalnej strukturze procesora można wyróżnić takie elementy cyklicznie powtarzające się operacje, jak: pobranie, (fetch) dekodowanie (decode) czyli komputer musi odczytać, zrozumieć to, co pobrał. wykonanie, (execute) Najpierw rozkłada rozkaz na zera i jedynki, ów ciąg zerojedynkowy na początku zawiera KOD, czyli rozkaz który np. mówi nie mów nic i jeśli tak jest to wtedy nie potrzeba żadnych argumentów, może być rozkaz, który mówi dodaj, wtedy będzie Kod dodaj, dalej będą składniki które trzeba dodać i na końcu miejsce do wpisania wyniku. Nie wszystkie wyniki muszą być zapisane. zapis wyników. (writeback) Rejestry Rejestry stanowią bardzo mała pamięć (bo są bardzo drogie), do której procesor ma zdecydowanie najkrótszy czas dostępu, by procesor mógł najszybciej pracować. Większość współczesnych architektur przenoszeniu danych z pamięci operacyjnej do rejestrów wykonaniu na nich operacji i przeniesieniu wyników do pamięci. Wielkość rejestrów wyrażana jest w bitach, jakie mogą one pomieścić, np. rejestr 8-bitowy czy rejestr 32-bitowy. Rodzaje rejestrów Zazwyczaj procesor zawiera kilka rodzajów rejestrów, które można klasyfikować zależnie od ich zawartości lub rodzaju operacji jakie można na nich wykonać: - Rejestry dostępne dla użytkownika, np. rejestry danych rejestry adresowe.

8 - Rejestry danych służą do operowania na danych, np. wartościach liczbowych będących liczba całkowita. Specjalny rejestr tego typu nazywany akumulatorem często wykorzystywany jest jako domyślny rejestr pewnych instrukcji. - Rejestr adresowy służy do przechowywania adresów i jest wykorzystywany przez instrukcje posługujące sie adresowaniem pośrednim. - Rejestr flagowy - rodzaj rejestru warunkowego informującego o wykonaniu lub nie pewnej operacji lub o konieczności lub braku konieczności wykonania operacji. - Rejestry ogólnego przeznaczenia sa połączeniem rejestrów danych i adresowych. - Rejestry zmiennoprzecinkowe przeznaczone do operowania na liczbach zmiennoprzecinkowych. - Rejestry specjalnego przeznaczenia zazwyczaj opisują stan wykonania programu. Zazwyczaj są to: wskaźnik instrukcji (ang. program counter, instruction pointer), wskaźnik stosu, rejestr flagowy (ang. status register, processor status word). - Rejestr instrukcji przechowuje obecnie wykonywana i mające być niebawem wykonane instrukcje. By procesor nie czekał, jak tylko skończy procesor wykonywanie rozkazu, to z rejestru dostanie od razu komunikat o kolejnym rozkazie do wykonania. - Rejestry indeksowe modyfikujące adres operandów (argumentów) instrukcji. Adresowanie każdy procesor ma kilka sposobów (historia o numerze telefonu) - natychmiastowe (opcode, argument) to odpowiednik tego, jak mamy numer telefoniczny w głowie, jeśli komputer uzna, że dana operacja jest operacją dodawania przy adresowaniu natychmiastowym, to znaczy, że argumenty są w rozkazie, to najszybszy sposób adresowania, nic więcej nie trzeba robić, nie trzeba danych pobierać. - bezpośrednie (opcode, adres) np. kod rozkazu powiedzmy dodawania jest inny niż wyżej, to znaczy, że za rozkazem nie jest od razu argument tylko indeks gdzie ten argument się znajduje - pośrednie (opcode, pamięć/rejestr z adresem) - znów wczytujemy najpierw ciąg zer i jedynek, odczytujemy kod, a za kodem mamy informację do której komórki mamy pójść i w tej komórce dopiero jest wskazywany adres skąd wziąć nasz docelowy argument. - pośrednie z użyciem rejestru bazowego i offsetu (opcode, offset) (przy ustalonej bazie)- znów zaczynamy od tego, ze odczytujemy informację o tym, że mamy dodać dwia argumenty, Skoro mamy użyć rejestru, to mam jakieś rejestru i w tym rejestr bazowy, który przechowuje pewną liczbę. Argumenty, które mamy użyć w tym rozkazie uzyskujemy w ten sposób, ze do tego co jest po rozkazie ADD dodajemy to co jest w rejestrze bazowym i tak robie dla obu liczb występujących za kodem, dostaniemy w ten sposób chyba adres komórek w których są już do kładne liczby, które chcemy dodać. Offset to przesuniecie, czyli potrzebujemy jakby komórkę pamięci przesuniętą względem bazy o wartość w komórce za ADD czyli jak za ADD mamy 5 a w bazie mamy 2 to offset jest równy 5, bo do 2 dodaję 5 i otrzymuję 7 czyli adres mojej liczby. - pośrednie z użyciem rejestru bazowego i indeksowego (opcode) (przy ustalonej bazie rejestrze bazowym i automatycznie zwiększanym rejestrze indeksowym) tutaj mamy nasz rejestr bazowy, mamy rejestr indeksowy. Sumujemy wartości z tyc h dwóch rejestrów i czasami dodajemy też do tego to, co występuje za ADD ADD 1 5 I rejestr indeksowy chcemy by się sam zwiększał o 1 po każdym pobraniu z komórki.

9 My jako zwykli użytkownicy nie mamy wpływu na to, jaki rodzaj adresowania jest używany. Asembler Pierwsze komputery zaczęto programować czysto w kodzie zero jedynkowym, gdzie operacja dodawania ma swój kod, każda liczba ma swój kod itp. Dlatego też ktoś wpadł na pomysł, by zamiast kodu dodawania napisać ADD i te liczby w systemie 10 i użyć programu, który nasze skróty ADD przetłumaczy na kod zero jedynkowy. To jest idea asemblera, to jest pisanie niemalże w kodzie maszynowym, jedna instrukcja kodu asemblerowego to jedna instrukcja kodu maszynowego tylko asembler to ładnie przetłumaczy. Dla przykładu procesor architektury x86/ia-32 może wykonać następujący rozkaz zapisany w języku maszyny (ciąg zer i jedynek): 1 Binary: (Hexadecimal: 0xb061) Odpowiednik tego rozkazu wyrazony w instrukcji asemblera jest znacznie łatwiejszy do zapamiętania (mnemoniczna) 1 mov al, #061h Instrukcja ta oznacza: 1 Przenieś szesnastkowa wartość 61 (97 dziesiętnie) do rejestru procesora oznaczonego jako al. Mnemonik mov odpowiada kodowi operacji (ang. opcode) 1011, który powoduje przeniesienie wartości będącej drugim operandem do rejestru określonego przez pierwszy operand. Mnemonik wybrany został przez projektanta listy rozkazów jako skrót od przenieś (ang. move) co znacznie łatwiej zapamiętać. Lista argumentów rozdzielonych przecinkiem następuje za kodem instrukcji; jest to typowy zapis asemblera. Przykład kodu asemblera mov ax, 0D625h ;wprowadź do rejestru AX liczbę ;szesnastkowa D625 (54821 dziesiętnie) mov es, ax ;załaduj rejestr segmentowy ES wartością ;znajdującą sie w AX (D625) mov al, 24 ;załaduj dolna (młodsza) połówkę rejestru ;AX (AL) liczba dziesiętna 24 mov ah, 0 ;wyzeruj górna (starsza) połówkę rejestru ;AX (AH) int 21h ;wywołaj przerwanie 21H

Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga.

Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga. ARCHITEKTURA I DZIAŁANIE KOMPUTERA Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga. Maszyna Turinga

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1 i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936) Wstęp doinformatyki Architektura co to jest? Architektura Model komputera Dr inż Ignacy Pardyka Slajd 1 Slajd 2 Od układów logicznych do CPU Automat skończony Slajd 3 Slajd 4 Ile jest automatów skończonych?

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

Architektura komputerów wer. 7

Architektura komputerów wer. 7 Architektura komputerów wer. 7 Wojciech Myszka 2013-10-29 19:47:07 +0100 Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie i wynik

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

Architektura komputerów wer. 3

Architektura komputerów wer. 3 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, mnożyła je przez siebie

Bardziej szczegółowo

MODELOWANIE RZECZYWISTOŚCI

MODELOWANIE RZECZYWISTOŚCI MODELOWANIE RZECZYWISTOŚCI Daniel Wójcik Instytut Biologii Doświadczalnej PAN d.wojcik@nencki.gov.pl tel. 022 5892 424 http://www.neuroinf.pl/members/danek/swps/ Podręcznik Iwo Białynicki-Birula Iwona

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

organizacja procesora 8086

organizacja procesora 8086 Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala

Bardziej szczegółowo

Wstęp do informatyki

Wstęp do informatyki Wstęp do informatyki Architektura i działanie komputera Piotr Fulmański Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska 4 stycznia 2008 Spis treści 1 Abstrakcyjny model maszyny przetwarzającej

Bardziej szczegółowo

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia Informacja w perspektywie obliczeniowej Informacje, liczby i obliczenia Cztery punkty odniesienia (dla pojęcia informacji) ŚWIAT ontologia fizyka UMYSŁ psychologia epistemologia JĘZYK lingwistyka nauki

Bardziej szczegółowo

LEKCJA TEMAT: Współczesne procesory.

LEKCJA TEMAT: Współczesne procesory. LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

Algebra Boole a i jej zastosowania

Algebra Boole a i jej zastosowania lgebra oole a i jej zastosowania Wprowadzenie Niech dany będzie zbiór dwuelementowy, którego elementy oznaczymy symbolami 0 oraz 1, tj. {0, 1}. W zbiorze tym określamy działania sumy :, iloczynu : _ oraz

Bardziej szczegółowo

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz

Bardziej szczegółowo

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach Marcin Stępniak Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach 1. Informacje Matematyk o nazwisku Bool wymyślił gałąź matematyki do przetwarzania wartości prawda

Bardziej szczegółowo

Budowa Mikrokomputera

Budowa Mikrokomputera Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,

Bardziej szczegółowo

Alan M. TURING. Matematyk u progu współczesnej informatyki

Alan M. TURING. Matematyk u progu współczesnej informatyki Alan M. TURING n=0 1 n! Matematyk u progu współczesnej informatyki Wykład 5. Alan Turing u progu współczesnej informatyki O co pytał Alan TURING? Czym jest algorytm? Czy wszystkie problemy da się rozwiązać

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka

Bardziej szczegółowo

Architektura komputerów Wykład 2

Architektura komputerów Wykład 2 Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana

Bardziej szczegółowo

LOGIKA I TEORIA ZBIORÓW

LOGIKA I TEORIA ZBIORÓW LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

Krótka wycieczka do wnętrza komputera

Krótka wycieczka do wnętrza komputera Krótka wycieczka do wnętrza komputera Podstawy Technik Informatycznych Wykład drugi Roman Simiński romansiminski@usedupl wwwsiminskionlinepl Komputer w drugiej dekadzie XXI wieku Podstawy Technik Informatycznych

Bardziej szczegółowo

O ALGORYTMACH I MASZYNACH TURINGA

O ALGORYTMACH I MASZYNACH TURINGA O ALGORYTMACH I MASZYNACH TURINGA ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające współcześnie precyzyjny schemat mechanicznej lub maszynowej realizacji zadań określonego

Bardziej szczegółowo

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy 1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć

Bardziej szczegółowo

Tranzystor JFET i MOSFET zas. działania

Tranzystor JFET i MOSFET zas. działania Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej

Bardziej szczegółowo

Elementy Teorii Obliczeń

Elementy Teorii Obliczeń Wykład 2 Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 stycznia 2009 Maszyna Turinga uwagi wstępne Maszyna Turinga (1936 r.) to jedno z najpiękniejszych i najbardziej intrygujacych

Bardziej szczegółowo

Wstęp do Informatyki. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Wstęp do Informatyki. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Wstęp do Informatyki dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Literatura 1. Brookshear, J. G. (2003). Informatyka w ogólnym zarysie. WNT, Warszawa. 3. Małecki, R. Arendt D. Bryszewski A. Krasiukianis

Bardziej szczegółowo

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Bramki logiczne Podstawowe składniki wszystkich układów logicznych Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości

Bardziej szczegółowo

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

Bardziej szczegółowo

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin Podstawy techniki cyfrowej Mikroprocesory Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin 1 Mikroprocesor to układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji zdolny do wykonywania

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga

Bardziej szczegółowo

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa i zasada działania komputera. dr Artur Bartoszewski Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu

Bardziej szczegółowo

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU ang: Arythmetic Logic Unit Argument A Argument B A B Ci Bit przeniesienia

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

Bardziej szczegółowo

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Maszyna Turinga (Algorytmy Część III)

Maszyna Turinga (Algorytmy Część III) Maszyna Turinga (Algorytmy Część III) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-12-18 08:22:34 +0100 Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych

Bardziej szczegółowo

Struktura danych. Sposób uporządkowania informacji w komputerze.

Struktura danych. Sposób uporządkowania informacji w komputerze. Struktura danych Sposób uporządkowania informacji w komputerze. Algorytm Skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Al-Khwarizmi perski matematyk

Bardziej szczegółowo

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Hierarchia Chomsky ego Maszyna Turinga

Hierarchia Chomsky ego Maszyna Turinga Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór

Bardziej szczegółowo

Maszyna Turinga języki

Maszyna Turinga języki Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,

Bardziej szczegółowo

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego

Bardziej szczegółowo

M T E O T D O ZI Z E E A LG L O G R O Y R TM

M T E O T D O ZI Z E E A LG L O G R O Y R TM O ALGORYTMACH I METODZIE ALGORYTMICZNEJ Czym jest algorytm? Czym jest algorytm? przepis schemat zestaw reguł [ ] program ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające

Bardziej szczegółowo

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2 WSTĘP O liczbie elementów użytych do budowy jakiegoś urządzenia elektronicznego, a więc i o możliwości obniżenia jego ceny, decyduje dzisiaj liczba zastosowanych w nim układów scalonych. Najstarszą rodziną

Bardziej szczegółowo

Podstawy Programowania Algorytmy i programowanie

Podstawy Programowania Algorytmy i programowanie Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 9

Języki formalne i automaty Ćwiczenia 9 Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Turing i jego maszyny

Turing i jego maszyny Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

PROBLEMY NIEROZSTRZYGALNE

PROBLEMY NIEROZSTRZYGALNE PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

Bardziej szczegółowo

Laboratorium 10: Maszyna stanów

Laboratorium 10: Maszyna stanów Wojciech Myszka Laboratorium 10: Maszyna stanów 2016-05-07 09:05:39 +0200 1. Wprowadzenie Laboratorium poświęcone jest operacjom na napisach (ciągach znaków). Przypominam, że: a to stała typu char o wartości

Bardziej szczegółowo

Język programowania: Lista instrukcji (IL Instruction List)

Język programowania: Lista instrukcji (IL Instruction List) Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne

Bardziej szczegółowo

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą Obliczenia inspirowane Naturą Wykład 01 Od maszyn Turinga do automatów komórkowych Jarosław Miszczak IITiS PAN Gliwice 03/03/2016 1 / 16 1 2 3 Krótka historia Znaczenie 2 / 16 Czego dowiedzieliśmy się

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

Informatyka. Michał Rad

Informatyka. Michał Rad Informatyka Michał Rad 13.10.2016 Co i po co będziemy robić Plan wykładów: Wstęp, historia Systemy liczbowe Co to jest system operacyjny i po co to jest Sprawy związane z tworzeniem i własnością oprogramowania

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów Studia Podyplomowe INFORMATYKA Architektura komputerów Wykład I Podstawowe pojęcia 1, Cyfrowe dane 2 Wewnątrz komputera informacja ma postać fizycznych sygnałów dwuwartościowych (np. dwa poziomy napięcia,

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 1. Wstęp do Wstępu Bartek Wilczyński bartek@mimuw.edu.pl Po pierwsze - Formalności 2 kolokwia (po 15 pkt) początek XI i koniec XII Dwa programy zaliczeniowe:

Bardziej szczegółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

Bardziej szczegółowo

Podstawy Informatyki Maszyna Turinga

Podstawy Informatyki Maszyna Turinga Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga 2 3 4 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga,

Bardziej szczegółowo

Budowa komputera. Lubię to! - podręcznik

Budowa komputera. Lubię to! - podręcznik Budowa komputera Lubię to! - podręcznik Plan na dziś Przypomnienie podstawowych wiadomości z poprzedniej lekcji Założenia teoretyczne komputera Praktyczna realizacja idei Podział elementów: W zależności

Bardziej szczegółowo

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci PAMIĘĆ RAM Pamięć służy do przechowania bitów. Do pamięci musi istnieć możliwość wpisania i odczytania danych. Bity, które są przechowywane pamięci pogrupowane są na komórki, z których każda przechowuje

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Algebra Boole a

Wstęp do Techniki Cyfrowej... Algebra Boole a Wstęp do Techniki Cyfrowej... Algebra Boole a Po co AB? Świetne narzędzie do analitycznego opisu układów logicznych. 1854r. George Boole opisuje swój system dedukcyjny. Ukoronowanie zapoczątkowanych w

Bardziej szczegółowo

Operacje arytmetyczne

Operacje arytmetyczne PODSTAWY TEORII UKŁADÓW CYFROWYCH Operacje arytmetyczne Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ Dodawanie dwójkowe Opracował: Andrzej Nowak Ostatni wynik

Bardziej szczegółowo

Kodowanie informacji. Przygotował: Ryszard Kijanka

Kodowanie informacji. Przygotował: Ryszard Kijanka Kodowanie informacji Przygotował: Ryszard Kijanka Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby, ale także inne obiekty, takie jak litery, wartości logiczne, obrazy

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41 Wykład 2 Informatyka Stosowana 8 października 2018, M. A-B Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41 Elementy logiki matematycznej Informatyka Stosowana Wykład 2 8 października

Bardziej szczegółowo

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

Bardziej szczegółowo