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]

Podobne dokumenty