Wykład drugi - Programowanie
Transkrypt
Wykład drugi - Programowanie
Krótka wycieczka do wnętrza komputera Podstawy Technik Informatycznych Wykład drugi Roman Simiński [email protected] www.siminskionline.pl Komputer w drugiej dekadzie XXI wieku Podstawy Technik Informatycznych | 2 Komputer w drugiej dekadzie XXI wieku Podstawy Technik Informatycznych | 3 Komputer w drugiej dekadzie XXI wieku Podstawy Technik Informatycznych | 4 Komputer za chwilę? Różne wizje komputerów ;) A nieco poważniej... ● Jak działa komputer? Podstawy Technik Informatycznych | 7 Komputer — co to jest? Są dziesiątki definicji — głupich, mądrych, prostych i złożonych. Na potrzeby tych zajęć przyjmijmy, że: Komputer — to system wzajemnie powiązanych elementów elektronicznych o dedykowanym przeznaczeniu, stanowiący platformę sprzętową pozwalającą na wykonywanie programów. Wśród owych dedykowany elementów elektronicznych najważniejsze są: procesory, pamięci, układy sprzęgające, układy wejścia/wyjścia, pamięci masowe (zewnętrzne). Podstawy Technik Informatycznych | 8 Komputer — dlaczego takie elementy składowe? Dwie podstawowe architektury organizacji systemów komputerowych: architektura van Neumana architektura Harwardzka. W roku 1945 John von Neumann, J. Prespera Eckert i John Mauchly, podczas realizacji projektu komputera ENIAC, tworzą koncepcję programu zintegrowanego, składowanego w pamięci oraz maszyny wykonującej ten program. Koncepcja jest rozpowszechniana w formie notatki służbowej a kierownik projektu H. Goldstine sygnuje ją tylko nazwiskiem von Neumanna pomijając dwóch pozostałych autorów. Prawdopodobnie w związku z takim przebiegiem zdarzeń dziś używamy terminu architektura von Neumana. Podstawy Technik Informatycznych | 9 Architektura von Neumann Architektura van Neumanna są aktualnie podstawowymi sposobami organizacji systemów komputerowych. Zrozumienie ogólnej istoty działania tych architektur pozwala na zrozumienie działania każdego współczesnego komputera. Podstawy Technik Informatycznych | 10 John von Neumann ● John von Neumann (urodzony w 1903 w Budapeszcie), był wybitnie zdolnym uczniem i błyszczał swymi matematycznymi osiągnięciami, swój pierwszy artykuł matematyczny opublikował w wieku 17 lat. Studiował na kilku europejskich uniwersytetach (ETH Zürich, Uniwersytety: Budapeszt, Getynga, Hamburg, Berlin). Od 1929 w Uniwersytecie Princeton. Od 1933 profesor matematyki Institute for Advanced Study. Od 1943 uczestniczył w projekcie Manhattan (reaktor atomowy i bomba atomowa). Zajmuje się rozwojem architektury komputerowej — przypisywana mu propozycja zwana architekturą Von Neumanna, jest podstawą organizacji komputerów do dziś. Została opisana w 1945 w książce "First Draft of a Report on the EDVAC" Podstawy Technik Informatycznych | 11 Architektura von Neumanna, elementy ● Pamięć operacyjna Procesor Urządzenia zewnętrzne Magistrala danych Magistrala adresowa Magistrala sterująca Podstawy Technik Informatycznych | 12 Przypomnienie: pamięć = hurtownia rejestrów Pamięć to ciąg kolejno ułożonych rejestrów, każdy rejestr zwany jest komórką pamięci. Każda komórka ma swój numer, zwany adresem. Układ pamięci pozwala na zapisywanie i odczytywanie informacji do/z komórki o określonym adresie. 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . Zapis Zapis N Odczyt Odczyt Podstawy Technik Informatycznych | 13 Pamięć operacyjna Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Informacja przechowywana jest w komórkach o jednakowym rozmiarze, każda komórka zawiera jednostkę informacji zwaną słowem, zazwyczaj ma ono rozmiar jednego bajta. Komórki tworzą zbiór uporządkowany, a każdej komórce można przypisać unikatowy identyfikator, tzw. adres. Zawartość komórki pamięci może być zmieniona tylko przez procesor jako przesłanie słowa do pamięci w wyniku wykonania rozkazu (współcześnie niekoniecznie tak jest, np. DMA). Sposób przechowywania danych i instrukcji jest taki sam — są kodowane binarnie we wspólnej pamięci. Podstawy Technik Informatycznych | 14 Procesor — ogólny schemat i istota działania Istotą procesora jest wykonywanie rozkazów maszynowych zapisanych w pamięci operacyjnej. Inne specyficzne działania procesora wykonywane są po to, aby powyższy proces odbywała się maksymalnie sprawnie. Kod maszynowy to ciąg rozkazów zrozumiałych dla procesora. Procesor pobiera, identyfikuje i wykonuje te rozkazy. Rozkazy pobierane są z komórek pamięci operacyjnej, gdzie są zapisane w postaci binarnej. Rozkazy te operują na informacjach zapisanych w pamięci operacyjnej w postaci danych. Kody rozkazów oraz dane są przekazywane pomiędzy procesorem a pamięcią poprzez magistrale. Podstawy Technik Informatycznych | 15 Urządzenia zewnętrzne Zadaniem urządzeń zewnętrznych jest dostarczanie, wizualizacja, wymiana i magazynowanie informacji dla procesora. Dostarczanie informacji — urządzenia wejściowe: klawiatura, myszka, tablety, panele dotykowe, ekrany dotykowe. Wizualizacja informacji — urządzenia wyjściowe: monitory, wyświetlacze, drukarki, projektory. Wymiana informacji — karty sieciowe (przewodowe i bezprzewodowe), łączność w paśmie podczerwieni, komunikacja typu bluetooth. Magazynowanie informacji — dyski, dyskietki, karty pamięci, płyty CD, DVD, systemy archiwizacyjne. Podstawy Technik Informatycznych | 16 Pamięć operacyjna a pamięci zewnętrzne Pamięć operacyjna jest zazwyczaj realizowana jako pamięć RAM — pamięć o dostępie swobodnym, można z niej dane odczytywać i zapisywać. Czasem część pamięci operacyjnej realizowana jest jako pamięć ROM — pamięć tylko do odczytu (PROM, EPROM, aktualnie Flash). Tylko pamięć ROM przechowuje swoją zawartość bez zasilania, dane przechowywane w trakcie pracy komputera w pamięci RAM giną — konieczne jest składowanie ich w pamięciach zewnętrznych. Najpopularniejszym rodzajem pamięci zewnętrznych o dostepie swobodnym (szybki zpis i odczyt) są dyski mechaniczne oraz pamięci Flash. Podstawy Technik Informatycznych | 17 Bez procesora ani rusz, ale co to są te rozkazy maszynowe? Wszystko można ponumerować — rozkazy wydawane komuś też. Wszystko co można ponumerować, da się zapisać binarnie. Wszystko co można zapisać binarnie, można zapamiętywać i przesyłać z wykorzystaniem techniki cyfrowej. Podstawy Technik Informatycznych | 18 Rozkazy też można ponumerować Wszystko można ponumerować — rozkazy wydawane komuś też. Wszystko co można ponumerować, da się zapisać binarnie. Wszystko co można zapisać binarnie, można zapamiętywać i przesyłać z wykorzystaniem techniki cyfrowej. Zatem rozkazy również można przechowywać i przesyłać cyfrowo. Padnij, Padnij, powstań, powstań, padnij padnij powstań powstań 01010 11010 01010 11010 Podstawy Technik Informatycznych | 19 Od architektury von Neumanna do typowego komputera Cykl rozkazowy procesora: Pobranie rozkazu zapisanego pod określonym adresem. Zdekodowanie rozkazu. Procesor Wykonanie rozkazu. Licznik rozkazów Ustalenie adresu następnego rozkazu. Układ sterujący Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Dekoder rozkazów Rejestr rozkazów Klawiatura Mysz Monitor Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Pamięci zewnętrzne Urządzenia zewnętrzne Krótko: Pobierz, dekoduj, wykonaj Podstawy Technik Informatycznych | 20 Ustalenie adresu rozkazu — licznik rozkazów Procesor Licznik Licznik rozkazów rozkazów zawiera zawiera adres adres rozkazu rozkazu do do pobrania. pobrania. 3 Licznik rozkazów Układ sterujący Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Dekoder rozkazów Rejestr rozkazów Klawiatura Mysz Monitor Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Pamięci zewnętrzne Urządzenia zewnętrzne Krótko: Pobierz, dekoduj, wykonaj Podstawy Technik Informatycznych | 21 Pobranie rozkazu z pamięci operacyjnej — rejestr rozkazów Rozkaz Rozkaz pobrany pobrany zz pamięci pamięci ładowany ładowany jest jest do do rejestru rejestru rozkazów rozkazów procesora. procesora. Procesor Licznik rozkazów Układ sterujący Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Dekoder rozkazów Rejestr rozkazów Klawiatura Mysz Monitor Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Pamięci zewnętrzne Urządzenia zewnętrzne Krótko: Pobierz, dekoduj, wykonaj Podstawy Technik Informatycznych | 22 Dekodowanie rozkazu z pamięci operacyjnej Dekoder Dekoder rozkazów rozkazów zna zna każdy każdy rozkaz rozkaz i potrafi i potrafi go go rozpoznać. rozpoznać. Procesor Licznik rozkazów Układ sterujący Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Dekoder rozkazów Rejestr rozkazów Klawiatura Mysz Monitor Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Pamięci zewnętrzne Urządzenia zewnętrzne Krótko: Pobierz, dekoduj, wykonaj Podstawy Technik Informatycznych | 23 Wykonanie rozkazu wg wskazówek układu sterującego procesora Procesor Układ Układ sterujący sterujący wie wie jak jak wykonać wykonać każdy każdy rozkaz. rozkaz. Licznik rozkazów Układ sterujący Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Dekoder rozkazów Rejestr rozkazów Klawiatura Mysz Monitor Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Pamięci zewnętrzne Urządzenia zewnętrzne Krótko: Pobierz, dekoduj, wykonaj Podstawy Technik Informatycznych | 24 Rozkaz maszynowy jako ciąg mikrooperacji Każdy rozkaz składa się z szeregu drobnych akcji zwanych mikrooperacjami. Realizacja każdego rozkazu polega na wykonaniu szeregu mikrooperacji w określonej kolejności. Mikrooperacje są elementarnymi operacjami wykonywanymi przez procesor. Wykonanie rozkazu procesor dzieli na cykle, zwykle każdy cykl składa się z kilku taktów. Zwykle w każdym takcie wykonywana jest jedna mikrooperacja lub kilka mikrooperacji niezależnych od siebie. Podstawy Technik Informatycznych | 25 Wykonaniem mikrooperacji kierują sygnały sterujące Sygnały Sygnały sterujące sterujące są są zwykle zwykle doprowadzane doprowadzane bezpośrednio bezpośrednio do do odpowiednich odpowiednich układów układów scalonych scalonych Procesor Licznik rozkazów Układ sterujący Dekoder rozkazów Pamięć operacyjna Rejestr rozkazów Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Urządzenia zewnętrzne Magistrala danych Magistrala adresowa Magistrala sterująca Podstawy Technik Informatycznych | 26 Wykresy czasowe sygnałów mikrosterujących — Z80 Podstawy Technik Informatycznych | 27 Wykresy czasowe sygnałów mikrosterujących — Z80, kontakt z PaO Podstawy Technik Informatycznych | 28 Ustalenie adresu następnego rozkazu do wykonania Zrobione, Zrobione, trzeba trzeba ustalić ustalić skąd skąd pobrać pobrać następny następny rozkaz. rozkaz. Procesor Licznik rozkazów Układ sterujący Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N Dekoder rozkazów Rejestr rozkazów Klawiatura Mysz Monitor Rejestry R1 R2 ... Jednostka arytmetyczno logiczna Pamięci zewnętrzne Urządzenia zewnętrzne Krótko: Pobierz, dekoduj, wykonaj Podstawy Technik Informatycznych | 29 Co się dzieje po włączeniu komputera? Tuż po włączeniu komputera pamięć operacyjna zrealizowana w technologi RAM jest pusta. Procesor potrzebuje rozkazów maszynowych do swojego działania, może je odczytywać tylko z pamięci operacyjnej, a ta jest pusta... . Co teraz? Podstawy Technik Informatycznych | 30 Co się dzieje po włączeniu komputera? Tuż po włączeniu komputera pamięć operacyjna zrealizowana w technologi RAM jest pusta. Procesor potrzebuje rozkazów maszynowych do swojego działania, może je odczytywać tylko z pamięci operacyjnej, a ta jest pusta... . Co teraz? Pamięć operacyjna Adres 0001 0 0 0 0 1 0 0 1 0002 0 0 0 1 1 1 0 0 0003 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 . . . N RAM ROM Podstawy Technik Informatycznych | 31 Co się dzieje po włączeniu komputera? Procesor po włączeniu zasilania rozpoczyna wykonywanie programu począwszy od pewnej, ściśle określonej komórki pamięci (ściśle określony adres). Komórka ta powinna być pobrana z pamięci stałej, o zawartości ustalonej np. przez producenta komputera. Podstawy Technik Informatycznych | 32 Co się dzieje po włączeniu komputera? Po zakończeniu programu z pamięci stałej, procesor rozpoczyna przeszukiwanie pamięci zewnętrznych. Poszukiwany jest główny program ładujący, którego zadaniem będzie wybór i załadowanie odpowiedniego systemu operacyjnego z pamięci zewnętrznej. Podstawy Technik Informatycznych | 33 Procesor a programowanie Procesor a programowanie Procesor a programowanie Procesor a programowanie Procesor a programowanie Język symboliczny (język asemblera) umożliwia pisanie programów z wykorzystaniem symboli (mnemoników) przypisanych poszczególnym rozkazom procesora. Program w języku symbolicznym jest zrozumiały dla programisty, lecz nie jest zrozumiały dla procesora. Mnemoniki to symboliczne oznaczenia rozkazów i innych elementów, np. rejestrów Znaczenie rozkazu Kod binarny Mnemoniki Przesłanie bajtu pamięc—rejestr 10001100 MOV Wyprowadzenie bajtu do układu wyjściowego 11101110 OUT Mnożenie logiczne 10000001 AND ... ... ... Asembler to program dokonujący tłumaczenia kodu źródłowego programu w języku symbolicznym na kod wynikowy (kod maszynowy). Asembler Tablica symboli MOV OUT AND Procesor a programowanie Język wysokiego poziomu — niezależny od platformy sprzętowej i systemowej język programowania, pozwalający programiście skoncentrować się na logice rozwiązywanego problem. Notacja typowych języków wysokiego poziomu to połączenie elementów języka angielskiego z notacją wywodzącą się z matematyki. Program w języku symbolicznym Program w języku wysokiego poziomu Dziękuję za uwagę Roman Simiński [email protected]