Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Architektura Systemów Komputerowych (ASK)

Podobne prezentacje


Prezentacja na temat: "Architektura Systemów Komputerowych (ASK)"— Zapis prezentacji:

1 Architektura Systemów Komputerowych (ASK)
Wykład nr.1 Wprowadzenie do przedmiotu; Janusz Łukowski

2 Materiały informacyjne firm, np.: Intel, IBM, AMD
Literatura Piotr Metzger, Anatomia PC, Architektura komputerów zgodnych z IBM PC, Helion, 2003 Andrew S. Tanenbaum, Struktura organizacyjna systemów komputerowych, Helion, 2006 William Stallings, Organizacja i architektura systemu komputerowego, Projektowanie systemu a jego wydajność, WNT, 2006 Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, Helion, 2004 Materiały informacyjne firm, np.: Intel, IBM, AMD Inne materiały tematyczne dostępne na stronach internetowych.

3 KOMPUTER Komputerem nazwiemy urządzenie składające się z: ● procesora do obliczeń, interpretacji i wykonania programu ● pamięci przechowującej dane i programy ● mechanizmu transferującego dane do i z komputera Hardware –fizyczne urządzenie (komputer, elementy sieci komputerowej, elementy komputera itd.).  Software – oprogramowanie (systemy operacyjne, programy użytkowe, gry itp.). Algorytm – w matematyce oraz informatyce skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań. Słowo "algorytm" pochodzi od starego angielskiego słowa algorism, oznaczającego wykonywanie działań przy pomocy liczb arabskich

4 Od pradziejów do komputera
abakus Starożytny Egipt Grecy i Rzymianie W 876 r. n.e. zarejestrowano w Indiach pierwsze użycie symbolu "0". W 1642 r. Francuz Blaise Pascal skonstruował arytmometr - mechaniczną maszynę, która potrafiła dodawać liczby W 1666 r. Anglik W W 1694 r. Gotffried Leibniz wynalazł pierwszą maszynę liczącą używającą zerojedynkowego zapisu liczb. W 1854 r. George Boole przedstawił uwagi na temat symboli logicznych. Sto lat później stały się one podstawą działania komputerów. W 1857 r. Sir Charles Wheatstone wprowadził taśmę papierową w rolkach, która mogła służyć do zapisu i odczytu danych. W 1893 r. Został opracowany pierwszy czterodziałaniowy kalkulator. W 1941 r. Anglik Konrad Zuse wykonał Z3, pierwszy w pełni programowy kalkulator. 14 lutego 1946 r. w USA po prawie trzech latach badań powstaje pierwszy na świecie elektroniczny komputer ogólnego przeznaczenia ENIAC (Elektroniczny, Numeryczny, Integrator, Analizator i Komputer).

5 Generacje komputerów Zerowa generacja: komputery na przekaźnikach Pierwsza generacja: komputery na lampach radiowych,                                         Druga generacja: komputery na tranzystorach, obwód scalony: Jack Kilby, Texas Instruments, Robert Noyce, Fairchild Semiconductors. Trzecia generacja: układy scalone, , seria IBM pierwszy minikomputer (DEC PDP) powstał Intel, obecnie największy producent mikroprocesorów pamięci półprzewodnikowe Czwarta generacja: układy scalone VLSI, od 1971 mikroprocesor wynaleziony przez Teda Hoffa z firmy Intel firma Apple i pierwsze udane mikrokomputery era komputerów osobistych: pierwszy IBM PC Piąta generacja: sztuczna inteligencja Szósta generacja: nowe architektury, neurokomputery, biokomputery, obliczenia przy pomocy DNA, komputery kwantowe.

6 Komputery pierwszej generacji 1945 –1953 r.
ENIAC Atanasoff Berry Computer (ABC) –rozwiązywanie układów równań liniowych W jego niezwykle prądożernym wnętrzu kryło się ok lamp elektronowych, 1500 przekaźników, oporników i kondensatorów. Pobierał on 174 kW. energii. W jednej sekundzie mógł wykonać 5000 operacji dodawania. Ważył ok. 30 ton. Liczby były przedstawione w kodzie dziesiętnym. Był to komputer pierwszej generacji.

7 Komputery drugiej generacji 1954 –1965 r.
W laboratoriach MIT ukończony zostaje pierwszy komputer tranzystorowy. Jest to TX-O (Transistorized Experimental Computer). Komputery oparte na tranzystorach rozpoczynają drugą generację Stephen (Slag) Russel, Martin (Shag) Graetz i Alan Kotok - napisali pierwszą grę komputerową - Spacewar. Jest ona uruchamiana na komputerze DEC PDP-1. Spacewar jest przeznaczony dla dwóch graczy, przy czym jeden musi zniszczyć drugiego. Gra jest oparta tylko i wyłącznie na trybie tekstowym.

8 Komputery trzeciej generacji – obwody zintegrowane 1965 –1980 r.
Jack Kilby z Texas Instruments projetuje pierwszy obwód zintegrowany. W 1976 roku powstał pierwszy superkomputer Cray - 1 W 1978 r. Intel przedstawia swój pierwszy procesor 16-bitowy. Jest to 8086, o częstotliwości zegara 4,77 MHz. Układ ten używa rejestrów 16-bitowych oraz 16-bitowej szyny danych. Zbudowany jest z tranzystorów w technologii 3 mikronów. Potrafi zaadresować 1MB pamięci.

9 Komputery czwartej generacji od 1980 r
Od 1980 roku zaczęto “pakować” wszystkie elementy do jednego chipu o różnej skali integracji. ● SSI (small scale integration) – 10 do 100 komponentów na chip ● MSI (medium scale integration) – od 100 do komponentów ● LSI (large scale integration) – do komponentów ● VLSI (very large scale integration) – powyżej komponentów IBM PC-XT

10 Warstwy systemu komputerowego
System komputerowy– układ współdziałania sprzętu komputerowego oraz oprogramowania Struktura systemu komputerowego składa się z pięciu zasadniczych warstw tj. : warstwa sprzętowa, system operacyjny, programy narzędziowe, programy użytkowe i użytkownicy. Warstwa Sprzętowa – zapewnia podstawowe możliwości obliczeniowe (procesor, pamięć, urządzenia wejścia/wyjścia) – podstawowe zasoby systemu komputerowego. System operacyjny – kontroluje i koordynuje użycie zasobów sprzętowych poprzez różne programy użytkowe dla różnych użytkowników. Programy narzędziowe – wspomagają zarządzanie zasobami sprzętowymi poprzez dogodne interfejsy użytkowe oraz usprawniają, modyfikują oprogramowanie systemowe, zazwyczaj pisane przez niezależnych programistów którzy mają na celu usprawnienia wykonywania programów w bardziej wygodny i wydajny sposób, a przy tym często eliminują błędy czy też niedociągnięcia oprogramowania systemowego. Programy użytkowe – określają sposoby, w jakie zostają użyte zasoby systemowe do rozwiązywania problemów obliczeniowych zadanych przez użytkownika (kompilatory, systemy baz danych, gry, oprogramowanie biurowe), tworzone przez programistów. Użytkownicy – ludzie, maszyny, inne komputery, mają bezpośredni kontakt z oprogramowaniem użytkowym

11 Procesor (ang. processor) lub CPU (ang
Procesor (ang. processor) lub CPU (ang. Central Processing Unit) – centralne (główne) urządzenie sekwencyjne cyfrowe potrafiące pobierać dane z pamięci, interpretować je i wykonywać jako rozkazy. Procesor wykonuje ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora. Pamięć komputerowa to różnego rodzaju urządzenia i bloki funkcjonalne komputera, służące do przechowywania danych i programów (systemu operacyjnego oraz aplikacji). Urządzenie wejścia-wyjścia, urządzenie we/wy, urządzenie I/O (ang. input/output device) służy do komunikacji komputera z użytkownikiem, komputerem lub innym urządzeniem. urządzenia wejścia to np.: klawiatura, mysz komputerowa, skaner, oraz czytniki nośników danych urządzenia wyjścia to np.: monitor, drukarka, głośniki, słuchawki urządzenia wejścia i wyjścia to np.: karta sieciowa, modem, ekran dotykowy, dysk twardy, Bluetooth, USB oraz wszelkie inne nagrywalne stacje nośników danych

12 Architektura Komputera
Architektura komputera – sposób organizacji elementów tworzących komputer - organizacja połączeń pomiędzy pamięcią, procesorem i urządzeniami wejścia-wyjścia. Ze względu na rodzaj połączeń procesor-pamięć i sposób ich wykorzystania dzielimy architektury na: SISD (Single Instruction Single Data) – skalarne - architektura klasycznego komputera sekwencyjnego, zawierającego jeden procesor i jeden blok pamięci operacyjnej SIMD (Single Instruction Multiple Data) – wektorowe (macierzowe) - do obliczeń naukowo-technicznych, w domowych komputerach procesorach opartych o architekturę x86 MISD (Multiple Instruction Single Data) – strumieniowe MIMD (Multiple Instruction Multiple Data) – równoległe – komputery wielordzeniowe Ze względu na sposób podziału pracy i dostęp procesora do pamięci możemy podzielić architektury na: SMP (Symmetric Multiprocessing) – symetryczne -architektura, która pozwala na znaczne zwiększenie mocy obliczeniowej systemu komputerowego poprzez wykorzystanie 2 lub więcej procesorów do jednoczesnego wykonywania zadań ASMP (Asymmetric Multiprocessing) – asymetryczne - Intel współpracujący z koprocesorem numerycznym 80287 NUMA (Non-Uniform Memory Access) – asymetryczne AMP (Asynchronous Multiprocessing) – asynchroniczne MPP (Massively Parallel Processors) Ze względu na sposób organizacji pamięci i wykonywania programu: architektura von Neumanna Architektura harwardzka architektura mieszana

13 Architektura komputera według von Neumann’a
System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien: mieć skończoną i funkcjonalnie pełną listę rozkazów 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 dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora; informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze. sterowanie adres słowo danych Słowo 0 Słowo 1 Słowo N wejście wyjście jednostka sterująca wejście wyjście jednostka wykonawcza CPU PROCESOR MAGISTRALA PAMIĘĆ Koncepcja komputera z programem zintegrowanym

14 Architektura komputera według von Neumann’a
CPU – Centralna Jednostka Przetwarzająca MEM – pamięć PAO – pamięć operacyjna ROM – pamięć do odczytu (EEPROM- przechowuje oprogramowanie obsługujące urządzenia wejścia-wyjścia dołączone do mikrokomputera, tzw. BIOS) I/O - Układy wejścia-wyjścia DB – (Data Bus) magistrala danych AB – (Address Bus) magistrala adresowa CB – (Control Bus) magistrala sterująca Zadania: Procesor - przetwarzanie danych, których źródłem jest pamięć Pamięć - informacja przechowywana w komórkach o jednakowym rozmiarze , każda komórka zawiera jednostkę informacji zwaną słowem, sposób przechowywania danych jak i tez instrukcji jest identyczny, struktura (kod) słowa nie pozwala na odróżnienie instrukcji od danych, komórki tworzą zbiór uporządkowany (unikatowy wskaźnik lokacji), zawartość komórki może zmienić procesor

15 Architektura komputera według von Neumann’a
Pamięć (główna, operacyjna, pierwotna) jest adresowana podczas wykonywania pojedynczego rozkazu i jest pamięcią o dostępie swobodnym (random access) Program jest sekwencją rozkazów. Układ wytwarzający adres kolejnego rozkazu podczas wykonywania poprzedniego rozkazu nosi nazwę Licznika Rozkazów (Program Counter) Alternatywna koncepcja komputera z programem zintegrowanym (Harwardzka ) Jednostka sterująca Jednostka wykonawcza PROCESOR sterowanie rozkazy adres dane PAMIĘĆ ROZKAZÓW PAMIĘĆ DANYCH wejście wyjście Podstawowa architektura komputerów zerowej generacji i początkowa komputerów pierwszej generacji.

16 Architektura Systemów Komputerowych (ASK)
Wykład nr.2 Dane

17 Reprezentacja danych Informacja analogowa i dyskretna (cyfrowe)
Przetwarzane informacje można podzielić na analogowe i dyskretne. W przypadku informacji analogowych (ciągłych), w danym przedziale wartości możemy spodziewać się przyjścia nieskończonej ilości wartości (rys.1) . Rys. 1. Informacja analogowa W przypadku informacji dyskretnej (ziarnistej), w danym przedziale wartości możemy spodziewać się przyjścia skończonej ilości różnych porcji informacji (rys..2). Rys. 2. Informacja dyskretna Informacje dyskretne są zazwyczaj kodowane są za pomocą liczb (informacje cyfrowe) w różnych systemach zapisu. Stąd potrzeba zasygnalizowania znaczenia niektórych określeń

18 Rys. Maszyny cyfrowe i analogowe
Maszyny analogowe i cyfrowe Do przetwarzania informacji analogowych służą maszyny matematyczne analogowe (analog computers). Zbudowane są on głównie ze zbioru elektronicznych wzmacniaczy operacyjnych. Umożliwiają one zbudowanie modelu analogowego układu fizycznego i elektroniczną symulację takiego fizycznego układu. Informacje przetwarzane mają wewnątrz maszyny analogowej postać analogową. Znacznie większe zastosowanie znalazły maszyny matematyczne cyfrowe (digital computers), przetwarzające informacje dyskretne. Informacje wejściowe, wyjściowe i wewnętrzne są w przypadku maszyn cyfrowych charakteru dyskretnego.                                                                                                                                                                                  Rys. Maszyny cyfrowe i analogowe Maszyna cyfrowa może przetwarzać informację analogową,ale musi ona być przed wprowadzeniem do maszyny zamieniona na informację dyskretną (za pomocą przetworników analogowo-cyfrowych). Maszyny hybrydowe (hibryd computers) łączą w sobie cechy maszyn analogowych i cyfrowych. Niejednokrotnie nazwa komputer utożsamiana jest z maszyn cyfrową i w dalszej części nazwy te będą stosowane zamiennie.

19 Proces przekształcania informacji jednego rodzaju postaci na inną postać nazywamy kodowaniem

20 wartości logiczne – prawda (1) – fałsz (0) znaki pisarskie liczby
DANE Współczesne komputery są używane do przetwarzania danych różnych typów – liczbowych, logicznych, tekstowych, a także obrazów i dźwięków. Dane: wartości logiczne – prawda (1) – fałsz (0) znaki pisarskie liczby całkowite: nieujemne ; ze znakiem niecałkowite: stałopozycyjne; zmiennopozycyjne dźwięki i inne sygnały jednowymiarowe obrazy rastrowe (pikselowe)

21 Z uwagi na budowę wewnętrzną (układy elektroniczne) komputery działają w systemie binarnym.
Dane, na których operuje komputer, są zapisane wyłącznie w postaci ciągów cyfr binarnych – bitów (Binary Digit), interpretowanych najczęściej jako liczby binarne. Wszelkie dane o charakterze nieliczbowym muszą być zapisane (zakodowane) w postaci liczb lub grup liczb. Dane alfanumeryczne (alfabet + liczby) są reprezentowane przez liczby, których wartość określa tablica kodowa Najczęściej używane kody: ASCII – 128 pozycji zawierający małe i wielkie litery alfabetu łacińskiego; - rozszerzne kody 256 – pozycyjne oparte na ASCII - kody EBCDIC (IBM) - UNICODE (od 216 do 232 możliwych pozycji – reprezentacja wszystkich znaków używanych na świecie

22 KOD ASCII (American Standard Code for Information Interchange)
7-bitowy kod przyporządkowujący liczby z zakresu literom (alfabetu angielskiego), cyfrom, znakom przystankowym i innym symbolom oraz poleceniom sterującym 128 pozycji, w tym 95 znaków widocznych i 33 niewidoczne kody sterujące – pozycje od 0 do 31 CR – powrót na początek wiersza – kod 13 LF – przejście do następnego wiersza – kod 10 Spacja – kod 32 DEL – kod 127 Cyfry – kody od 48 do 57 (0x30..0x39) Litery małe kod (0x61..0x7A) ; litery wielkie kod (0x41..0x5A)

23 Oznaczenie symboliczne
Reprezentacja danych Informacje dyskretne są zazwyczaj kodowane są za pomocą liczb (informacje cyfrowe) w różnych systemach zapisu. Stąd potrzeba zasygnalizowania znaczenia niektórych określeń. Słowem cyfrowym (binarnym) nazywamy dowolny ciąg znaków składający się z symboli 0 i/lub 1. Informacją cyfrową nazywamy informację przedstawioną (zakodowaną) w postaci słów cyfrowych.  Długość słowa Oznaczenie symboliczne  Nazwa a0 bit 4 a a0 tetrada, kęs 8 a a0  bajt 16  a a0 słowo 16-bitowe, słowo 32 a a0 podwójne słowo, dwusłowo 64 a a0  słowo 64-bitowe, czterosłowo Nazwy słów cyfrowych W słowach informacji cyfrowej warto też wyróżnić najstarszą i najmłodszą pozycję. Nazywa się je odpowiednio najbardziej znaczącym bitem lub najstarszym bitem (MSB - most significant bit) oraz najmniej znaczącym bitem lub najmłodszym bitem (LSB - least significant bit). Pozycje obydwu bitów w symbolicznym słowie cyfrowym można przedstawić następująco: MSB___an a0 ___ LSB Analogicznie w słowie możemy mówić o starszym bajcie lub o młodszym bajcie, czy też w bajcie o starszej lub młodszej tetradzie.

24 KONKRETNA REPREZENTACJA INFORMACJI
INFORMACJA Typy danych Dane typu logicznego: „tak” lub „nie” Dane alfanumeryczne (alfabet+liczby) Dane numeryczne Dane graficzne Dane alfanumeryczne o ustalonej strukturze (rekordy), Dane muzyczne DANE KONKRETNA REPREZENTACJA INFORMACJI

25 Jednostki informacji bit (binary digit) – skrót b - najmniejsza jednostka informacji – przyjmuje warości 0 i 1 bajt (byte) – skrót Bajt – najmniejsza jednostka informacji adresowana przez procesor słowo (word) – jednostka informacji, na której operuje CPU (Central Processing Unit) słowo procesora – jednostka informacji o długości adekwatnej długości rejestrom procesora słowo pamięci – jednostka informacji transmitowana w jednym cyklu transmisji z lub do pamięci

26 Wielokrotności bajtów
Przedrostki dziesiętne (SI) Przedrostki binarne (IEC ) Nazwa Symbol Mnożnik Nazwa Symbol Mnożnik kilobajt kB/KB 103=10001 kikibajt KiB 210=10241 megabajt MB 106=10002 mebibajt MiB 220=10242 gigabajt GB 109=10003 gigibajt GiB 230=10243 terabajt TB 1012=10004 tebibajt TiB 240=10244 petabajt PB 1015=10005 pebibajt PiB 250=10245 eksabajt EB 1018=10006 eksbibajt EiB 260=10246 zettabajt ZB 1021=10007 zebibajt ZiB 270=10247 jottabajt YB 1024=10008 jobibajt YiB 280=10248 Bajt – najmniejsza adresowalna jednostka informacji pamięci komputerowej, składająca się z bitów –najmniejsza adresowalna jednostka pamięci Przyjmuje się, że jeden bajt to 8 bitów, jednostka składająca się z ośmiu bitów zwana jest również oktetem.

27 Big endian - najbardziej znaczący bajt umieszczony jest jako pierwszy.
W sytuacjach, kiedy jakiekolwiek dane zapisywane są przy użyciu wielu (przynajmniej dwóch) bajtów, nie istnieje jeden unikalny sposób uporządkowania tych bajtów w pamięci lub w czasie transmisji przez dowolne medium i musi być użyta jedna z wielu konwencji ustalająca kolejność bajtów Forma zapisu danych Big endian - najbardziej znaczący bajt umieszczony jest jako pierwszy. Procesory, które używają formy big endian, to między innymi SPARC, Motorola 68000, PowerPC 970, IBM System/360, Siemens SIMATIC S7. Jest ona analogiczna do używanego na co dzień sposobu zapisu liczb. Little endian - mniej znaczący bajt (zwany też dolnym bajtem, z ang. low-order byte) umieszczony jest jako pierwszy. Procesory, które używają formy little endian, to między innymi wszystkie z rodziny x86, DEC VAX. Jest ona odwrotna do używanego na co dzień sposobu zapisu liczb. Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 4A3B2C1D pod adresem 100, umieszcza dane, zajmując adresy od 100 do 103 w następującej kolejności: 100 101 102 103 4A 3B 2C 1D adres bajty 100 101 102 103 1D 2C 3B 4A adres bajty

28 Kody binarne - zastosowania
Grafika Cztery kolory: biały; żółty; czerwony; niebieski 00 – biały 01 – żółty 10 – czerwony 11 – niebieski Kodowanie obrazu zapisanego na dwóch bitach

29 Kody binarne - zastosowania
n bitów tworzy 2n różnych symboli binarnych. do utworzenia n symboli binarnych, gdzie n > 1, potrzebne jest co najmniej [log2(n - 1) + 1] bitów Kodowanie znaków Kodowanie znaków : ABCDEFGHIJKLMNOPRSTUWXYZ znaki Do zakodowania 24 znaków w kodzie binarnym potrzeba 5 bitów znak kod A 00000 M 01100 B 00001 N 01101 C 00010 O 01110 D 00011 P 01111 E 00100 R 10000 F 00101 S 10001 G 00110 T 10010 H 00111 U 10011 I 01000 W 10100 J 01001 X 10101 K 01010 Y 10110 L 01011 Z 10111 ZAKODOWANIE INFORMACJI INFORMATYKA I N F O R M A T Y K A

30 Kodowanie liczb – systemy pozycyjne
System pozycyjny to metoda zapisywania liczb w taki sposób, że w zależności od pozycji danej cyfry, C w ciągu, cyfra ta oznacza wielokrotność potęgi liczby uznawanej za bazę danego systemu, P. Każda pozycja zapisu cyfr posiada swoją wartość, którą nazywamy wagą pozycji. Wagi pozycji są kolejnymi potęgami podstawy systemu Ogólna postać zapisu pozycyjnego liczb w dowolnym systemie: gdzie reprezentacja zapisu systemu pozycyjnego o podstawie P konstrukcja zapisu pozycyjnego System dziesiętny C – {0,1,2,3,4,5,6,7,8,9}; p = 10 1*102+2*101+3*100 = 123(10) 1*26+1*25+1*24+1*23+0*22+1*21+1*20 = (2) = 123(10) System binarny C – {0,1}; p = 2 System ósemkowy C – {0,1,2,3,4,5,6,7}; p = 8 1*82+7*81+3*80 = 173(8) = 123(10) System szesnastkowy C – {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; p = 16 7*161+B*160= 7B(16) = 123(10)

31 Kodowanie liczb – systemy pozycyjne
Zbiór podstawowych cech dowolnego systemu pozycyjnego o podstawie P: 1. System pozycyjny charakteryzuje liczba zwana podstawą systemu pozycyjnego. 2. Do zapisu liczby służą cyfry. 3. Cyfr jest zawsze tyle, ile wynosi podstawa systemu: 0, 1, 2, ..., (P-1) 4. Cyfry ustawiamy na kolejnych pozycjach. 5. Pozycje numerujemy od 0 poczynając od strony prawej zapisu. 6. Każda pozycja posiada swoją wagę. 7. Waga jest równa podstawie systemu podniesionej do potęgi o wartości numeru pozycji. 8. Cyfry określają ile razy waga danej pozycji uczestniczy w wartości liczby 9. Wartość liczby obliczamy sumując iloczyny cyfr przez wagi ich pozycji.

32 Konwersja systemu dziesiętnego na inny system pozycyjny
Kodowanie liczb – systemy pozycyjne Konwersja systemu dziesiętnego na inny system pozycyjny 1. Obliczamy resztę z dzielenia liczby n przez liczbę P, resztę tę oznaczamy symbolem r Obliczamy resztę z dzielenia otrzymanego ilorazu przez liczbę P, oznaczamy tę resztę symbolem r Wykonujemy krok 2 tak długo, aż otrzymamy iloraz równy 0 i resztę rk Otrzymane reszty zapisujemy w postaci ciągu symboli rkrk-1...r2r1. Otrzymujemy rozwinięcie liczby n przy podstawie P, co zapisujemy (rkrk-1... r2r1)p Konwersja dowolnego systemu pozycyjnego na system dziesiętny Algorytm Hornera w0 = 0 w1 = w0P+ C6 w2 = w1P + C5 w3 = w2P + C4 w4 = w3P + C3 w5 = w4P + C2 w6 = w5P + C1 w7 = w6P + C0 - koniec, w7 jest wartością liczby.

33 Kodowanie liczb – systemy pozycyjne
Konwersje dwójkowo-ósemkowe i dwójkowo-szesnastkowe 010 2 111 7 011 3 101 5 010 2 111 7 011 3 101 5 Zamiana liczby dwójkowej na ósemkową Zamiana liczby dwójkowej na szesnastkową Mamy liczbę dwójkową (2). Celem zamiany liczby binarnej na postać ósemkową bity dzielimy na grupy trzybitowe poczynając od końca. Jeśli w ostatniej grupie nie będzie trzech bitów, to dopisujemy na początku odpowiednią liczbę zer: Liczbę dwójkową dzielimy na grupy czterobitowe poczynając od prawej strony. Jeśli w ostatniej grupie wypadnie mniej bitów, to dopełniamy je zerami. Następnie każdą grupę zastępujemy odpowiednią cyfrą szesnastkową E D 5 (2) = 27325(8) (2) = 2ED5(16)

34 Kodowanie liczb – systemy pozycyjne
Naturalny kod binarny (NKB), (NBC-Natural Binary Code) bn-1bn-2...b1b0 = bn-12n-1 + bn-22n b121 + b020 b n-1 b n-2 b 2 b 1 b 0 Zakres naturalnych liczb dwójkowych (binarnych) Dla n bitów możemy utworzyć w naturalnym kodzie binarnym liczby z zakresu: <0, 2n - 1> W naturalnym kodzie binarnym numer bitu jest równy wykładnikowi jego wagi binarnej.

35 Kodowanie liczb – systemy pozycyjne
Kod BCD bn-1...b1b0 = bn-1 × 10[(n-1)/4] × 2(n-1) mod b1 × 100 × 21 + b0 × 100 × 20 W systemie BCD każdą cyfrę dziesiętną liczby kodujemy za pomocą 4 bitów tworzących wartość tej cyfry w systemie dwójkowym. 1 0001 7 0111 2 0010 8 1000 1728(10) = (BCD) = 1 x x x x 100 Zakres n-bitowych liczb w kodzie BCD wynosi Z(BCD) = [n : 4] × 2n mod 4 - 1 Zapis BCD polega na oddzielnym zakodowaniu w postaci binarnej (w kodzie NKB) każdej cyfry zapisu dziesiętnego, w postaci czterech bitów (tetrady). Kod BCD jest obecnie stosowany głównie w urządzeniach elektronicznych z wyświetlaczem cyfrowym (np. w kalkulatorach, miernikach cyfrowych) i w zastosowaniach finansowych informatyki

36 Kodowanie liczb – systemy pozycyjne
Kod Gray’a Kod Gray’a, zwany również kodem refleksyjnym, jest dwójkowym kodem , w którym dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. Jest również kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu także spełniają w/w zasadę. Używa się go w przetwornikach analogowo-cyfrowych i w systemach gdzie występują po sobie kolejne wartości np. czujniki położenia/obrotu. Lp. Kod binarny Kod Gray’a  0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000

37 bn-1bn-2...b2b1b0 = (-1)bit znaku × moduł liczby
Kodowanie liczb ze znakiem – systemy pozycyjne Kod znak-moduł (ZM) Znak kodowany jest stanem najstarszego bitu: Bit znaku = 0 - liczba dodatnia Bit znaku = 1 - liczba ujemna Reszta bitów przechowuje moduł, czyli wartość bezwzględną liczby zakodowaną w naturalnym kodzie binarnym bn-1bn-2...b2b1b0 = (-1)bit znaku × moduł liczby Zakres liczb w kodzie Z-M Zmin = (-1) x (2n-1 - 1) = - 2n-1 + 1 W potędze liczby dwa jest wykładnik n -1, ponieważ moduł liczby (ilość bitów) ma długość pomniejszoną o bit znaku. Zmax = 2n-1 - 1 <Zmin, Zmax> = <- 2n-1 + 1, 2n-1 - 1>

38 Kodowanie liczb ze znakiem– systemy pozycyjne
Kod uzupełnień U1 bn-1bn-2bn-3...b2b1b0 (U1) = bn-1(-2n-1+1) + bn-22n-2 + bn-32n b222 + b121 + b020 Dla n bitowej liczby U1 możemy zapisać wzór: WU1 = bn-1. (- 2n-1+1) + wartość reszty liczby w kodzie NBC Zakres liczb w kodzie U1 Z(U1) = (-2n-1 + 1, 2n-1 - 1) Kod uzupełnień U2 bn-1bn-2bn-3...b2b1b0 (U2) = bn-1(-2n-1) + bn-22n-2 + bn-32n b222 + b121 + b020 Dla n bitowej liczby U2 możemy zapisać wzór: WU2 = bn-1. (- 2n-1) + wartość reszty liczby w kodzie NBC Zakres liczb w kodzie U2 Z(U2) = (-2n-1, 2n-1 - 1)

39 Kodowanie liczb Kod uzupełnień U-2
Obliczanie wartości przeciwnej w kodzie U2 Zamiana bitów liczby na bity przeciwne Do uzyskanej liczby dodaj 1 Począwszy od najmłodszego bitu liczby przepisuj wszystkie zera, aż do napotkania jedynki włącznie. Pozostałe bity liczby zapisz jako przeciwne lub Przykład liczby zapisanej w kodzie U-2 Znaleźć zapis liczby 100 w 8 bitowym kodzie U2. Liczba jest dodatnia, więc znajdujemy jej zapis binarny: Znaleźć zapis liczby w 8 bitowym kodzie U2. Gdy liczba jest ujemna, to c najpierw obliczamy jej dopełnienie do podstawy: U = 2n - W = = = 156 100 : 2 = 50 reszta co = 0 50 : 2 = 25 reszta c1 = 0 25 : 2 = 12 reszta c2 = 1 12 : 2 = 6 reszta c3 = 0 6 : 2 = 3 reszta c4 = 0 3 : 2 = 1 reszta c5 = 1 1 : 2 = 0 reszta c6 = 1 156 : 2 = 78 reszta co = 0 78 : 2 = 39 reszta c1 = 0 39 : 2 = 19 reszta c2 = 1 19 : 2 = 9 reszta c3 = 1 9 : 2 = 4 reszta c4 = 1 4 : 2 = 2 reszta c5 = 0 2 : 2 = 1 reszta c6 = 0 1 : 2 = 0 reszta c7 = 1 -100(10) = (U2) 100(10) = (U2)

40 Z(BIAS) = -bias ... 2n - 1 - bias
Kodowanie liczb ze znakiem– systemy pozycyjne Kod z nadmiarem - BIAS bn-1bn-2...b2b1b0 (BIAS) = bn-12n-1 + bn-22n b222 + b121 + b020 - bias Gdzie: b - bit, cyfra dwójkowa 0 lub 1 n - liczba bitów w zapisie liczby bias - nadmiar, odchyłka w stosunku do naturalnych wartości słów kodowych Zakres liczb w kodzie z nadmiarem (BIAS) Z(BIAS) = -bias ... 2n bias Wartości słów kodowych w systemach z nadmiarem KOD binarny Wartości nadmiaru - bias 4 3 2 1 -1 -2 -3 -4 w zależności od nadmiaru (BIAS) możemy otrzymywać różne zakresy kodowanych liczb 00 -4 -3 -2 -1 1 2 3 4 Nadmiar można tak dobrać, aby zakres w całości zawierał się po stronie liczb ujemnych lub dodatnich 01 -3 -2 -1 1 2 3 4 5 10 -2 -1 1 2 3 4 5 6 11 -1 1 2 3 4 5 6 7

41 ZESTAWIENIE BINARNYCH KODÓW POZYCYJNYCH 0000 0 0 0 0 -3
ZESTAWIENIE BINARNYCH KODÓW POZYCYJNYCH Kod NKB ZM U1 U2 bias=3 0000 0   0   0   0   -3  Kod Reprezentacja Konstrukcja kodu 0001 1   1   1   1   -2 NKB bn-1...b1b0 bn-12n b121+b020 0010 2   2   2   2   -1   ZM bzbn-2...b1b0 (-1)bz x kod NKB 0011 3   3   3   3   U1 bn-1bn-2...b1b0 bn-1(-2n-1-1) + kod NKB U2 bn-1bn-2...b1b0 bn-1(-2n-1) + kod NKB 0100 4   4   4   4   1 bias bn-1...b1b0 kod NKB (bn-1...b0) - bias 0101 5   5   5   5   1 0110 6   6   6   6   3 0111 7   7   7   7   4   1000 8   0   -7   -8   5   1001 9   -1   -6   -7   6   Kod Reprezentacja zakres 1010 10   -2   -5   -6   NKB bn-1...b1b0 n-1 1011 11   -3   -4   -5   8 ZM bzbn-2...b1b0 -2n n-1-1 1100 12   -4   -3   -4   U1 bn-1bn-2...b1b0 -2n n-1-1 1101 13   -5   -2   -3   10  U2 bn-1bn-2...b1b0 -2n n-1-1 bias bn-1...b1b0 -bias ... 2n-1-bias 1110 14   -6   -1   -2   11   1111 15   -7   0   -1   12

42 Architektura Systemów Komputerowych (ASK)
Wykład nr.3 Kody binarne – operacje arytmetyczne i logiczne

43 Binarne liczby stałoprzecinkowe
Zapis stałopozycyjny Binarne liczby stałoprzecinkowe System stałopozycyjny zapisu liczb jest rozszerzeniem zapisu liczb naturalnych w stronę wartości ułamkowych. W systemie dziesiętnym za cyfrą jednostek umieszcza się przecinek, a kolejne wagi pozycji są teraz ujemnymi potęgami podstawy: bn – liczby całkowite; cm – liczby ułamkowe W dowolnym systemie pozycyjnym o podstawie p wartość liczby stałoprzecinkowej obliczamy wg wzoru: cn-1...c0,c-1c-2...c-m = cn-1pn c0p0 + c-1p-1 + c-2p c-mp-m gdzie n - liczba cyfr przed przecinkiem, m - liczba cyfr po przecinku W systemie pozycyjnym binarnym (o podstawie p = 2) wartość liczby stałoprzecinkowej obliczamy wg wzoru: cn-1...c0,c-1c-2...c-m = cn-12n c020 + c c c-m2-m Zakres dwójkowych liczb stałoprzecinkowych <0, 2n   2m - 1 > 2m

44 1111011,0001(B) Algorytm wyznaczania cyfr zapisu stałopozycyjnego
Liczba całkowita,Liczba ułamkowa Lc , Lu Konwersja systemu dziesiętnego na inny system pozycyjny – wyliczanie części całkowitej liczby Lc 1. Obliczamy resztę z dzielenia liczby Lc przez liczbę P – podstawę systemu , resztę tę oznaczamy symbolem r Obliczamy resztę z dzielenia otrzymanego ilorazu przez liczbę P, oznaczamy tę resztę symbolem r Wykonujemy krok 2 tak długo, aż otrzymamy iloraz równy 0 i resztę rk Otrzymane reszty zapisujemy w postaci ciągu symboli rkrk-1...r2r1. Otrzymujemy rozwinięcie liczby Lc przy podstawie P, co zapisujemy (rkrk-1... r2r1)p Lu × p = (C-1 p-1 + C-2 p-2 + C-3 p C-m+1 p-m+1 + C-m p-m) p Lu × p = C-1 p-1p + C-2 p-2p + C-3 p-3p C-m+1 p-m+1p + C-m p-mp Lu × p = C-1 p0 + C-2 p-1 + C-3 p C-m+1 p-m+2 + C-m p-m+1 Przykład: Zapisać liczbę 123,123(D) w systemie binarnym z 4 miejscami po przecinku część całkowita Lc 123 div 2 = r1=1 61 div 2 = r2 =1 30 div 2 = r3 =0 15 div 2 = r4=1 7 div = r5=1 3 div = r6=1 1 div = r7=1 część ułamkowa Lu 0,123 *2 = 0, r1 = 0 0,249 *2 = 0, r2 = 0 0,492 *2 = 0, r3 = 0 0,984 *2 = 1, r4 = 1 123(10)= (B) 0,123(10) = (B) ,0001(B)

45 Format binarnej liczby zmiennoprzecinkowej
Zapis zmiennopozycyjny Liczby zmiennoprzecinkowe WFP = m x pw m - mantysa zapisana w systemie o podstawie p p - podstawa danego systemu pozycyjnego w - wykładnik zapisany w systemie o podstawie p W postaci znormalizowanej liczby zmiennoprzecinkowej mantysa m spełnia nierówność: 1 £ |m| < p Dwójkowy zapis zmiennoprzecinkowy WFP2 = m x 2w m - mantysa, liczba stałoprzecinkowa ze znakiem w - wykładnik, liczba całkowita Format binarnej liczby zmiennoprzecinkowej wykładnik - kod U2 mantysa - kod Z-M b7 b6 b5 b4 b3 b2 b1 b0 x(-8) x4 x2 x1 znak x 1 x 1/2 x 1/4

46 Algorytm wyznaczania cyfr zapisu zmiennopozycyjnego WFP = m x pw
1. Obliczyć mantysę przy cesze równej 0 (tzn w=0). 2. Przeliczyć daną liczbę dziesiętną, na liczbę w systemie docelowym. 3. Znormalizować mantysę przez modyfikację cechy liczby Algorytm wyznaczania cyfr zapisu zmiennopozycyjnego m – mantysa p – podstawa w - cecha WFP = m x pw Algorytm przeliczania liczby dziesiętnej na liczbę zmiennoprzecinkową w innym systemie pozycyjnym Przykład: Zapisać liczbę 123,123(D) w systemie binarnym z 4 miejscami po przecinku i znormalizować mantysę część całkowita Lc 123 div 2 = r1=1 61 div 2 = r2 =1 30 div 2 = r3 =0 15 div 2 = r4=1 7 div = r5=1 3 div = r6=1 1 div = r7=1 część ułamkowa Lu 0,123 *2 = 0, r1 = 0 0,249 *2 = 0, r2 = 0 0,492 *2 = 0, r3 = 0 0,984 *2 = 1, r4 = 1 123(10)= (B) 0,123(10) = (B) ,0001(B) 1, x10^110

47 Zapis zmiennopozycyjny
Powszechnie przyjęty standard przechowywania liczb zmiennoprzecinkowych to IEEE-754. Definiuje on dwie klasy liczb: pojedynczej precyzji (ang. single) podwójnej precyzji (ang. double) Format Znak [bity] Wykładnik [bity] Mantysa [bity] Szerokość słowa [bity] Typy w językach programowania IEEE-754 single 1 8 23 32 float (C), single (Pascal) IEEE-754 double 11 52 64 double (C) koprocesor x87 15 80 long double (C99) Kompilator Pascala 39 48 real (Pascal) Kod U1 oraz kod BIAS są szeroko stosowane w systemach zmiennoprzecinkowych. Kod U2 jest powszechnie stosowany we wszystkich językach programowania do kodowania liczb całkowitych ze znakiem.

48 Zapis zmiennopozycyjny
Format zapisu zmiennoprzecinkowego IEEE 754 32 bity - pojedyńcza precyzja (1 bit)   b31 (8 bitów)   b b23 (BIAS=127) (23 bity)   ,b b0 (U1) 64 bity - podwójna precyzja (1 bit)   b63 (11 bitów)   b b52 (BIAS=1023) (52 bity)   ,b b0 (U1) bit znaku bity kodu cechy w kodzie z nadmiarem bity ułamkowe mantysy w kodzie U1 Wartość liczby zapisanej w kodzie IEEE 754 obliczamy następująco: z kodu wydzielamy : pole znaku z; pole cechy c i mantysy m. Mantysa zawiera tylko bity ułamkowe, więc dodajemy na początku 01 i przecinek - w rezultacie otrzymujemy dodatnią liczbę stałoprzecinkową w kodzie U1. obliczamy wartość cechy i mantysy, natomiast wartość liczby wyliczamy następująco: Przykład: Obliczyć wartość dziesiętną liczby: (IEEE 754). z c m z = 1 - liczba jest ujemna c = (BIAS=127) = = 14 m = 01, (U1) = 13/8 L(IEEE 754) = (-1)zm2c = (-1)1 × 13/8 × 214 = -11/8 × 214= -11 × 211 = -11 × 2048= (10) L(IEEE 754) = (-1)zm2c

49 Operacje arytmetyczne
Dodawanie binarne 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 i 1 następny bit Odejmowanie binarne 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1 i pożyczka 1 z następnego bitu Mnożenie binarne 0 x 0 = 0 1 x 0 = 0 0 x 1 = 0 1 x 1 = 1 0011 x   0101    3 x  5      001111 15  =  5 + 4 1001 9  =  12 - 3 1001 9

50 Operacje arytmetyczne
Dzielenie binarne Dzielenie binarne w oparciu o jeden z wielu możliwych sposobów opiera się na cyklicznym odejmowaniu odpowiednio przesuniętego dzielnika od dzielnej. (2) : 101(2) 222(10) : 5(10) wynik dzielenia :        - da się odjąć, nad kreską  101      - nie da się odjąć, nad kreską   101     - da się odjąć, nad kreską 1      101    - da się odjąć, nad kreską 1        101   - nie da się odjąć, nad kreską 0    00010      101  - nie da się odjąć, nad kreską 0      reszta z dzielenia (2) : 101(2) = (2) + reszta 10(2) 222(10) : 5(10) = 44(10) + reszta 2(10)

51 Operacje arytmetyczne

52 Operacje logiczne Operacje logiczne w odróżnieniu do operacji arytmetycznych operują na pojedynczych bitach Logika cyfrowa opiera się na algebrze Boole’a Funkcje dwóch zmiennych - suma, iloczyn, negacja (funkcja jednej zmiennej) nie wyczerpują listy wszystkich możliwych funkcji dwóch zmiennych. Zakładając, że mamy zmienne x0 i x1 funkcje te można zapisać: Symbol Algebry Boole'a Symbol bitowy PRAWDA 1 FAŁSZ gdzie kolejne funkcje: f0- funkcja stała, f1- funkcja NOR, f2- funkcja implikacji (zakazu), f3- negacja x0, f4- funkcja implikacji (zakazu), f5- negacja x1, f6- funkcja sumy wyłączającej, sumy modulo 2 lub funkcja EXOR, f7- funkcja NAND, f8- funkcja iloczynu, f9- funkcja równoważności, f10- funkcja tożsama ze zmienną, f11- funkcja implikacji, f12- funkcja tożsama ze zmienną, f13- funkcja implikacji, f14- funkcja sumy, f15- funkcja stała. Prawa Algebry Boole’a 1. przemienność  A*B = B*A, A+B = B+A, 2. łączność   (A*B)*C = A*(B*C), (A+B)+ C = A+(B+C), 3. rozdzielczość  A*(B+C) = A*B+A*C, (A+B)*(A+C) = A+B*C, 4. tożsamość  A*0 = 0, A+0 = A,                       A*1 = A , A+1 = A,                       A*A = A, A+A = A, 5. komplementarność  ,   , oraz dwa tzw. prawa de Morgana:

53 Operacje logiczne Funkcje logiczne z – stan wyjściowy
x, y – wartość bitu Suma logiczna, funkcja OR Zaprzeczenie logiczne, funkcja NOT z = x OR y x y z 1 z = NOT x x z 1 NOT OR funktor logiczny realizujący funkcję logiczną

54 x XOR y = ((NOT x) AND y) OR (x AND (NOT y))
Operacje logiczne Funkcje logiczne Suma symetryczna, suma modulo dwa, funkcja XOR Iloczyn logiczny, funkcja AND x XOR y = ((NOT x) AND y) OR (x AND (NOT y)) z = x AND y x y z 1 z = x XOR y x y z 1 XOR AND

55 Operacje logiczne Operacje na bitach
Przy operacjach na bitach stosuje się specjalne słowo bitowe nazywane maską. Maska posiada odpowiednio ustawione lub wyzerowane bity na odpowiednich miejscach. z = x AND y x y z 1 z = x OR y x y z 1 z = x XOR y x y z 1 Zerowanie bitu AND maska Ustawianie bitu Zmiana stanu bitu na przeciwny OR XOR maska maska

56 Operacje logiczne Prawa De Morgana

57 Architektura procesora 8086

58 PROCESOR 8086 mikroprocesor 8086 zawiera:
20 linii adresowych adresujących 8-bitowe komórki pamięci, 16 linii adresowych dla portów WE/WY, dwa niezależne układy operacyjne: dla realizacji bieżącego kodu rozkazu (EU) - układ wykonawczy, dla równoległego pobierania następnego kodu rozkazu (BIU) - układ sprzęgający magistrali Układ wykonawczy EU zawiera: 16-bitową jednostkę arytmetyczno-logiczną, układ sterowania z rejestrem rozkazów, cztery 16-bitowe rejestry użytkownika cztery 16-bitowe rejestry adresacji 16-bitowy rejestr wskaźników (rejestr flagowy) Zadaniem układu wykonawczego jest dekodowanie i wykonywanie rozkazów gromadzonych w kolejce. W trakcie wykonywania rozkazów w układzie wykonawczym układ sprzęgający magistrali zewnętrznej otrzymuje zezwolenie na pobranie rozkazu następnego z pamięci programu. Układ sprzęgający magistrali BIU zawiera: układ generacji adresu fizycznego, układ kolejkowania rozkazów, 16-bitowe rejestry adresacji (segmentowe i IP) bufor WE/WY Układ sprzęgający przesyła dane między procesorem a pamięcią operacyjną lub układami WE/WY pod nadzorem układu wykonawczego. W czasie gdy układ wykonawczy realizuje kolejny rozkaz, BIU pobiera nowy rozkaz z pamięci operacyjnej i przekazuje go do kolejki. Drugim istotnym zadaniem układu sprzęgającego BIU jest wyznaczania adresu fizycznego (m.in. na podstawie danych przekazywanych z EU)

59 Zadaniem jednostki wykonawczej jest wykonywanie operacji arytmetycznych i logicznych w zależności od wewnętrznych sygnałów sterujących rejestry części wykonawczej JEDNOSTKA WYKONAWCZA ALU DANE WYNIKI wewnętrzne sygnały sterujące zewnętrzne sygnały sterujące PROGRAM rejestr rozkazów dekoder rozkazów układ sterowania Jednostka sterująca z programu dekoduje rozkaz i na jego podstawie generowane są wewnętrzne i zewnętrzne sygnały sterujące JEDNOSTKA STERUJĄCA

60 BIU EU SCHEMAT BLOKOWY PROCESORA 8086 blok sprzęgający magistral (BIU)
Pamięć operacyjna BIU Szyna adresowa Szyna danych Szyna sterująca UKŁĄD STEROWANIA MAGISTRAL 20 bitowy adres; 16 bitowe dane blok sprzęgający magistral (BIU) MAGISTRALA ADRES/DANE SUMATOR ADRESU 1 2 3 ES CS SS DS IP KOLEJKA ROZKAZÓW 4 REJESTRY ADRESACJI 5 6 JEDNOSTKA STERUJĄCA MAGISTRALA ALU blok wykonawczy (EU) REJESTRY PRZEJŚCIOWE AH BH CH DH SP BP SI DI AL BL CL DL REJESTRY UŻYTKOWNIKA I ADRESACJI ALU EU REJSTR FLAGOWY

61

62 niedostępne programowo (na przykładzie procesora 8086/8088)
REJESTRY REJESTRY dostępne programowo niedostępne programowo (na przykładzie procesora 8086/8088) 15 FLAGS Rejestr znaczników (flagowy OF DF IF TF SF ZF AF PF CF 15 7 AX AX AH AL Akumulator Znaczniki stanu BX BH BL Rejestry ogólnego stosowania OF - flaga nadmiaru (przepełnienia) Rejestr bazowy SF - flaga znaku ZF - flaga zera CX CH CL Rejestr zliczający CF - flaga przeniesienia PF - flaga parzystości DX DH DL Rejestr danych AF - flaga przeniesienia pomocniczego Rejestr indeksowy źródła SI Znaczniki kontrolne IF - flaga zezwolenia na przerwanie Rejestr indeksowy przeznaczenia DI TF - flaga pracy krokowej Rejestry wskaźnikowe i indeksowe DF - flaga kierunku BP Wskaźnik bazy SP Wskaźnik stosu IP Wskaźnik rozkazów CS Rejestr kodu DS Rejestr danych Rejestry segmentowe ES Rejestr dodatkowy SS Rejestr stosu

63 REJESTRY OGÓLNEGO STOSOWANIA
Układy pamięciowe przeznaczone do przechowywania informacji oraz spełniające spełniające funkcje specjalne. Rejestry 16-to bitowe podzielone na dwie 8-bitowe części: dolną (L) i górną (H). AX - (akumulator) rejestr przeznaczony do przechowywania jednego z z argumentów wykonywanej operacji oraz miejsce wyniku operacji BX - rejestr bazowy wykorzystywany do operacji związanych z pamięcią operacyjną lub do adresowania pamięci. Domyślnie rejestr BX, wraz z rejestrem segmentowym DS, jest używany jako wskaźnik pamięci CX - rejestr wykorzystywany głównie jako licznik odliczający powtarzające się fragmenty programów bądź pojedynczych rozkazów DX - rejestr najczęściej wykorzystywany głównie jako wskaźnik adresów w rozkazach IN i OUT AX AX AH AL Akumulator BX BH BL Rejestr bazowy CX CH CL Rejestr zliczający DX DH DL Rejestr danych

64 REJESTRY SEGMENTOWE Rejestr CS wskazuje początek 64KB (216 ) bloku pamięci zawierającej kod rozkazu lub na segment kodu, w którym rezyduje następny do wykonania rozkaz. (CS:IP) Rejestr DS wskazuje początek 64KB bloku pamięci zawierający dane (argumenty) (DS:DI);(DS:SI),(DS,BX) Rejestr ES wskazuje początek 64KB bloku pamięci zwanego dodatkowym. Jest on używany jest w operacjach łańcuchowych (wykorzystując pary rejestrów ES:DI) lub w operacjach na blokach np. kopiowanie, porównywanie, przeszukiwanie, czyszczenie. Rejestr SS wskazuje początek 64KB bloku pamięci zwanego segmentem stosu. blok pamięci CS Rejestr kodu DS Rejestr danych CS:IP ES Rejestr dodatkowy SS Rejestr stosu

65 REJESTRY INDEKSOWE I WSKAŹNIKOWE
SI - rejestr indeksowy źródła danych wykorzystywany jest głównie jako wskaźnik przesunięcia w bloku pamięci operacyjnej DI - rejestr indeksowy miejsca przeznaczenia danych wykorzystywany jest głównie jako wskaźnik przesunięcia w bloku pamięci operacyjnej rejestr SI adresuje przesunięcie źródła (wyniku) danych w połączeniu z rejestrem segmentowym DS. rejestr DI adresuje przesunięcie przeznaczenia danych w połączeniu z rejestrem segmentowym ES BP (wskaźnik bazy) - rejestr ten dotyczy obszaru segmentu stosu. Używany jest jako wskaźnik przesunięcia pamięci wspólnie z rejestrem segmentowym SS (SS:BP) SP (wskaźnik stosu) - rejestr ten podaje bieżące położenie wierzchołka stosu.

66 STOS Pamięć operacyjna Stos jest liniową strukturą danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). Elementy stosu poniżej wierzchołka stosu można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi. Stos jest używany są przez procesor: do chwilowego zapamiętywania stanu rejestrów procesora, do przechowywania zmiennych lokalnych, a także w programowaniu wysokopoziomowym. SP BP Adresacja stosu SS – rejestr segmentowy, wskazujący na początek stosu, czyli krańcową wartość, jaką może przyjąć ESP (SS:BP) ESP (SP dla procesorów 16-bitowych) – rejestr wskazujący na element znajdujący się na szczycie stosu. Operacje na stosie push umieszczenie wartości na szczycie stosu. Odpowiada on przesunięciu rejestru ESP o o ilość bajtów zależną od rozmiaru rejestru, którego wartość przenosimy na stos pop zdjęcie wartości ze stosu. Odpowiada on zapisaniu ilości bajtów zależnej od rozmiaru rejestru, do którego przenosimy wartość

67 O D I T S Z A P C Rejestr IP i rejestr Flagowy
IP (wskaźnik rozkazów)- rejestr ten zawiera zawsze offset (przesunięcie) w bloku pamięci, w którym zawarty jest następny rozkaz do wykonania. Bazowy adres segmentu kodu zawarty jest w rejestrze CS. Adres logiczny wykonywanego rozkazu wskazywany jest parą rejestrów CS:IP Adres fizyczny CS*16+IP FLAGS (rejestr znaczników, rejestr flagowy)- rejestr ten jest zbiorem poszczególnych bitów kontrolnych (znaczników), które wskazują wystąpienie określonego stanu procesora. O D I T S Z A P C O – znacznik nadmiaru, ustawiany przy wystąpieniu nadmiaru w operacjach arytmetycznych ze znakiem (tylko do odczytu) D – znacznik kierunku (operacje na łańcuchach), kolejność adresu rosnące(0), malejące (1) – ustawiany programowo I – znacznik zezwolenia na przerwanie sprzętowe (1), zignorowane (0) –ustawiany programowo T – znacznik pracy krokowej, określa czy po każdej instrukcji procesora wywoływane jest przerwanie pracy krokowej – ustawiany programowo S – znacznik znaku – znak wyniku ostatnio wykonanej operacji arytmetycznej (tylko do odczytu) Z – znacznik zera – ustawiany, jeśli wynik ostatniej operacji jest zerem (tylko do odczytu) A – znacznik przeniesienia połówkowego, sygnalizuje przeniesienie lub pożyczkę pomiędzy bitami 4 i 3 (tylko do odczytu) P – znacznik parzystości bitów operacji ustawionych na 1 (tylko do odczytu) C – znacznik przeniesienia, ustawiany gdy operacja dodawania spowodowała przeniesienie, a operacja odejmowania pożyczkę (tylko do odczytu)

68 JEDNOSTKA ARYTMETYCZNO – LOGICZNA
Jednostka Arytmetyczno-Logiczna (ALU) - UNIWERSALNY zespół układów kombinacyjnych, realizujący operacje matematyczne i logiczne Rozkazy wykonywane przez ALU: Operacje dwuargumentowe: operacje arytmetyczne (dodawanie i odejmowanie); operacje logiczne (sumowanie mnożenie, sumowanie mod 2, itd.) operacje jednoargumentowe (negowanie bitów, przesuwanie zawartości rejestrów, itd.) Lp S0 - S M= M=1 ALU - układ SN74181 ALU A0 - A3 F0 - F3 B0 - B3 S0 - S3 M M(0,1) – wybór rodzaju operacji; S0 – S3 –czterobitowy kod sterujący F0 – F3 – wynik operacji

69

70 Hierarchia pamięci Idealny komputer powinien mieć jak największą i jak najszybszą pamięć. Pojemność pamięci wpływa na jej fizyczne rozmiary, a te – na czas dostępu. Nie można więc zbudować dowolnie dużej i jednocześnie szybkiej pamięci. Hierarchia pamięci - wyodrębnienie wielu warstw o zróżnicowanej pojemności i szybkości. Kolejne warstwy w miarę oddalania się od procesora mają coraz większe pojemności i coraz dłuższe czasy dostępu.                                        

71 O umieszczeniu danych w rejestrach decyduje programista piszący program w języku asemblerowym lub kompilator języka wysokiego poziomu. Styk warstwy kieszeni i pamięci operacyjnej jest sterowany na poziomie sprzętu. Stykiem pamięci operacyjnej i wirtualnej steruje system operacyjny przy użyciu jednostki zarządzania pamięcią. O umieszczeniu danych w pamięci wirtualnej decyduje użytkownik – otwierając plik danych lub uruchamiając program. Przemieszczaniem danych pomiędzy lokalnym systemem plików i nośnikami wymiennymi lub zasobami sieciowymi steruje użytkownik.

72

73 ` Procesor Schemat blokowy procesora BU – blok komunikacyjny
AU – jednostka adresowania IU – blok dekodera EU – układ wykonawczy ALU – jednostka arytmetyczno-logiczna CU – jednostka sterująca FPU – jednostka zmiennoprzecinkowa MMU- jednostka zarządzania pamięcią

74 Procesor Rejestry procesora Rejestry podstawowe Rejestry segmentów
(16 bitowe) AX - accumulator register - rejestr akumulatora – wykorzystywany do operacji arytmetycznych i logicznych BX - base register - rejestr bazowy – głównie wykorzystywany przy adresowaniu pamięci CX - counter register - rejestr licznika, wykorzystywany w wielu instrukcjach jako licznik DX - data register - rejestr danych – operacje mnożenia i dzielenie oraz wysyłanie i odbieranie danych z portów CS - Code Segment - segment kodu - określa segment pamięci, w którym znajduje się wykonywany program (aktualnie pobierane kolejne rozkazy do wykonania). DS - data segment - segment danych - określa segment pamięci, w którym znajdują się dane aktualnie wykonywanego programu (segment w którym są zapamiętywane zmienne używane w programie). SS -stack segment - segment stosu – wskazuje segment pamięci, w którym jest zdefiniowany stos ES - extra segment - wskazuje dodatkowy segment danych, używany do operacji na łańcuchach pamięci. Rejestry indeksowe Rejestry wskaźników SI - source index - index źródłowy indeksujący pamięć oraz wskazujący obszar, z którego przesyła się dane DI - destination index - index docelowy, indeksujący pamięć oraz wskazujący obszar, do którego przesyłane są dane (segment danych) IP - instruction pointer – licznik instrukcji łacznie z CS adresuje kolejne rozkazy przeznaczone do wykonania SP - stack pointer - wskaźnik dna stosu - ściślej - jego przesunięcia w segmencie SS – operacje zapisu i odczytu ze stosu BP - base pointer - wskaźnik bazowy – operacje niestandardowe np.. Pobieranie parametrów przekazywanych przez stos Rejestr flagowy

75 O D I T S Z A P C Procesor Rejestr flagowy 15 0
O D I T S Z A P C O – znacznik nadmiaru, ustawiany przy wystąpieniu nadmiaru w operacjach arytmetycznych ze znakiem (tylko do odczytu) D – znacznik kierunku (operacje na łańcuchach), kolejność adresu rosnące(0), malejące (1) – ustawiany programowo I – znacznik zezwolenia na przerwanie sprzętowe (1), zignorowane (0) –ustawiany programowo T – znacznik pracy krokowej, określa czy po każdej instrukcji procesora wywoływane jest przerwanie pracy krokowej – ustawiany programowo S – znacznik znaku – znak wyniku ostatnio wykonanej operacji arytmetycznej (tylko do odczytu) Z – znacznik zera – ustawiany, jeśli wynik ostatniej operacji jest zerem (tylko do odczytu) A – znacznik przeniesienia połówkowego, sygnalizuje przeniesienie lub pożyczkę pomiędzy bitami 4 i 3 (tylko do odczytu) P – znacznik parzystości bitów operacji ustawionych na 1 (tylko do odczytu) C – znacznik przeniesienia, ustawiany gdy operacja dodawania spowodowała przeniesienie, a operacja odejmowania pożyczkę (tylko do odczytu)

76 Rozkazy procesora 8086 (wybrane)
Wymiana danych Łańcuchowe MOV – przesyła bajt lub słowo PUSH – przesłanie słowa na szczyt stosu POP - pobranie słowa ze szczytu stosu IN – wprowadzenie bajtu lub słowa z układu wejściowego SCAS – porównanie bajtu lub słowa łańcucha z zawartością akumulatora LODS – załadowanie bajtu lub słowa łąńcucha, tablicy, bloku do akumulatora STOS – załądowanie z akumulatora bajtu lub słowa łańcucha (tablicy, bloku) Arytmetyczne SUB – odejmowanie słowa lub bajtu bez pożyczki ADD – dodanie bez przeniesienia MUL – mnożenie bajtów lub słów bez znaku DIV – dzielenie argumentów bez znaku Sterujące Przekazanie sterowania JMP –skok bezwarunkowy CALL – wywołanie procedury Logiczne SHL – przesunięcie logiczne bajtu lub słowa w lewo NOT – negacja logiczna bajtu lub słowa AND – mnożenie logiczne OR – dodanie logiczne bajtu lub słowa XOR – nierównoważność bajtów lub słów Skoki warunkowe JB/JNAE – skok gdy mniejszy / skok gdy większy JE/JZ – skok, gdy równy Inne LOCK – zablokowanie dostępu do magistrali INT – skok do podprogramu obsługi przerwania LOOP – powtórzenie sekwencji rozkazów

77 Procesor Wybrane instrukcje assemblera Mov cel,źródło
Składnia opis przykład Mov służy do kopiowania wartości między pamięcią a rejestrami, lub między rejestrami wyłącznie mov ax,bx Mov cel,źródło mov bx,0100h mov ax,[bx] ds:bx mov ax,2811h ds:0100h Push REJ 16 Push WAR 16 Pop REJ 16 Push służy do ‘wrzucenia’ na wydzielony obszar pamięci, zwanej stosem wartości rejestru lub wartości 16-bitowej Pop służy do ‘pobrania’ ze stosu do np.. rejestru zawartej tam informacji mov ax,1234h push 4321h push ax pop bx INT numer_przerwania INT jest instrukcją uruchamiającą przerwanie programowe. Numer_przerwania to liczba z zakresu 0-255, musi być podana konkretna wartość; nie można używać rejestrów Przerwanie 21H funkcja 2CH - pobierz czas mov ah,2ch int 21h OFFSET (napis) Wydruk napisu na ekran przez BIOS - przerwanie 21H funkcja 09H mov ah,09h mov dx,offset napis ;dx=Przesuniecie napisu w segmencie cs int 21h napis db 'Napis, który zostanie wypisany ',13,10,'$' ADD A, B Wykonanie powyższych instrukcji powoduje dodanie wartości A i B i wrzucenie wyniku do A ax =5 ADD ax, 08h

78 Adresowanie pamięci operacyjnej
Procesory 16-bitowe Do zaadresowania 1 MB pamięci operacyjnej wymagane jest 20 bitów - 220 Rejestr segmentowy wskazuje na ciągły obszar pamięci o wielkości 64 kB Przyrost wartości o 1 w rejestrze segmentowym zwiększa o 16 adres fizyczny

79 Adresowanie pamięci operacyjnej
Procesory 16-bitowe 0002H +0003H 00023H 3H 3H

80 Adresowanie pamięci operacyjnej
Procesory 16-bitowe Code Segment CS:IP DS:SI ES:DI SS:BP Data Segment Extra Segment Stack Segment

81 Organizacja pamięci operacyjnej
Procesory 16-bitowe Procesory 16-bitowe (8086, 8080, ) miały 20 końcówek adresowych - przestrzeń adresowa A19 A0 Pamięć dzielona na segmenty o wielkości 64 kB = 216

82 Organizacja pamięci operacyjnej
Procesory 16-bitowe BHE A0 Aktywacja banku „0” Blokada banku „1” Linie: A0 oraz BHE Linie danych D 0-7 D 8-15 są dołączone do banków

83 Organizacja pamięci operacyjnej
Struktura pamięci RAM Wielkość pamięci RAM, którą można zainstalować w komputerach IBM PC jest uzależniona od szerokości magistrali adresowej. W zależności od typu procesora pamięci główne mogą przyjmować następujące wielkości: dla procesora MB, MB, 80386/ GB. Pierwsze komputery IBM PC z procesorem 8086/88 (popularne XT) narzuciły pewien podział pamięci, kontynuowany w następnych generacjach komputerów. Całkowity obszar 1MB RAM dostępny dla procesora 8086 został podzielony, przez konstruktorów IBM, na dwa obszary. Pierwszy obszar obejmujący zakres 0 - 9FFFF ( KB) nazwany został pamięcią konwencjonalną. Natomiast obszar o adresach A0000 do FFFFF ( MB) to pamięć górna. Pamięć górna (Upper Memory) zajmuje obszar do adresu A0000 do FFFFF (640 KB - 1 MB) niedostępny do oprogramowania użytkownika. Obszar ten (384 KB) podzielony jest na kilka części o ściele ustalonym przeznaczeniu: Obszar A BFFFF (128 KB) przeznaczony jest dla pamięci ekranu. Końcowa część obszaru Upper Memory przeznaczona jest na ROM BIOS. W zależności od typu monitora i karty graficznej oraz wielkości obszaru zarezerwowanego na BIOS pozostaje nie wykorzystany obszar tej pamięci ok KB.

84 Organizacja pamięci operacyjnej
Pamięć dodatkowa - Expanded Memory: Ograniczenia adresowe procesora 8086 limitujące wielkość pamięci RAM do 1 MB zmusiły konstruktorów do poszukiwania sposobów zwiększenia dostępnej pamięci użytkowej. Technicznie uzyskano to poprzez zastosowanie dodatkowej karty pamięci z układami RAM - zwanej Expanded Memory. Fizycznie adresowanie tej dodatkowej pamięci rozszerzonej realizował standard LIM 3.2: w wolnym nie wykorzystanym dotąd obszarze Upper Memory wydzielono specjalne okno - page frame - za pomocą którego można się odwoływać do dowolnego segmentu zainstalowanej pamięci dodatkowej Expanded Memory. Umożliwia to ściąganie w porcjach po 64 KB zawartości tej pamięci poprzez okno page frame do pamięci konwencjonalnej i użytkowanie zawartych w nich danych przez oprogramowanie aktywne z pamięci konwencjonalnej.

85 Adresowanie pamięci operacyjnej
Adresowanie 2D Najprostszym sposobem jest zorganizowanie pamięci liniowo - jest to tak zwane adresowanie 2D. Do każdej komórki podłączone jest wejście, sygnał wybierania pochodzący z dekodera oraz wyjście. Adresowanie 3 D Innym sposobem jest adresowanie przy użyciu tzw. matrycy 3D. Pamięć organizuje się tutaj dzieląc dostępne elementy na wiersze i kolumny. Dostęp do pojedynczego elementu pamiętającego można uzyskać po zaadresowaniu odpowiedniego wiersza i kolumny. Dlatego też komórka RAM obok wejścia i wyjścia musi dysponować jeszcze dwoma sygnałami wybierania, odpowiednio z dekodera kolumn i wierszy.

86 Adresowanie pamięci operacyjnej
Adresowanie 3 D Adresowanie wybranej komórki pamięci następuje w dwóch fazach: - w fazie pierwszej, wraz z opadającym sygnałem RAS (Row Address Strob), na szynie adresowej wystawiany jest adres wiersza, - w fazie drugiej – przy opadającym zboczu sygnału CAS (Column Address Strobe) – adres kolumny. W ten sposób za pomocą 10 linii adresowych A[0:9] oraz linii RAS i CAS uzyskuje się 20 bitowy adres zdolny zaadresować obszar 1 MEG komórek (1 MEG = 1024 x 1024)

87 Adresowanie pamięci operacyjnej
Typy adresacji Typ adresacji jest to sposób określenia miejsca przechowywania argumentów rozkazu Kod rozkazu zawiera: rodzaj wykonywanego rozkazu czyli tzw. kod operacji (w pierwszym bajcie rozkazu) opcjonalnie operandy i/lub adresy operandów wykonywanych operacji Adresowanie natychmiastowe argument rozkazu zawarty jest w kodzie rozkazu Adresowanie bezpośrednie kod rozkazu zawiera adres komórki pamięci,w której przechowywany jest argument

88 Adresowanie pamięci operacyjnej
Typy adresacji Adresowanie rejestrowe w kodzie rozkazu określony jest rejestr, w którym przechowywany jest argument Adresowanie pośrednie (lub rejestrowe pośrednie) Umożliwia modyfikację położenia argumentu w pamięci w trakcie wykonywania Programu, lub inaczej adres argumentu może zostać wyliczony przez program Adresowanie indeksowe z przemieszczeniem adres argumentu w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie i wartości umieszczonej w kodzie rozkazu zwanej przemieszczeniem

89 Pojęcia podstawowe Stan komputera: superpozycja stanu procesora i pamięci Stan procesora: informacja zawarta w rejestrach (pamięć wewnętrzna) Zmiana stanu komputera: wykonanie rozkazu przez CPU Rozkaz: jest funkcją, która przeprowadza stan wejściowy w stan wyjściowy Pamięć: jest dziedziną i zbiorem wartości każdego rozkazu Architektura komputera: zbiór rozkazów i pamięć Maszyna właściwa lub mikromaszyna (host machine): interpreter kodów rozkazów (procesor) Maszyna wirtualna: przetwarzanie sekwencji poleceń (instrukcji) na bezpośrednio wykonywane rozkazy zakodowane w pamięci (komputer z oprogramowaniem) Proces: stan wejściowy + sekwencja rozkazów (w chwili wykonania rozkazu jest znany adres lub sposób wyznaczenia adresu kolejnego rozkazu) Cykl procesora: czas potrzebny na zmianę stanu procesora Cykl pamięci (cykl rozkazowy): czas potrzebny na zmianę stanu pamięci

90 Cykle wykonania rozkazu
cykle procesora Mi F D (R) E W Mj cykl pamięci F pobranie kodu D dekodowanie R odczyt argumentu E wytworzenie wyniku W zapamiętanie wyniku Mi,j - stan komputera Pobranie kodu z pamięci F, Dekodowanie D, - wytworzenie sygnałów sterujących, wytworzenie adresu argumentu, Odczyt argumentów z pamięci, R Wytworzenie wyniku, E, Zapamiętanie wyniku w pamięci lub rejestrze procesora, W W każdym etapie wykonania rozkazu występują: identyfikacja (adresowanie danych) wybór (adresowanie) jednostek wykonawczych

91 Szybkość przetwarzania Schemat przetwarzania
czas wykonania programu bez przerwań czas cyklu procesora liczba wykonań instrukcji i-tego typu średnia liczba cykli potrzebnych na wykonanie instrukcji Schemat przetwarzania przetwarzanie sekwencyjne przetwarzanie potokowe

92 Poziomy maszynowe i ich powiązania
Poziom maszynowy: opis działania komputera poprzez realizacje rozkazów na umownych poziomach abstrakcji translator języka makropoleceń L5 L4 L3 L2 L1 L0 język makropoleceń język algorytmiczny język asemblerowy system operacyjny struktura logiczna przetwornik sygnałów translator języka algorytmicznego translator języka asemblerowego Maszyna wirtualna Maszyna rzeczywista funkcje systemu operacyjnego interpreter kodu maszynowego interpreter mikroprogramu Warstwy poziomu maszynowego: L0 – przetwornik sygnałów (hardware) L1 – struktura logiczna z generatorem mikrorozkazów (firmware) L2 – system operacyjny (operating system) L3 – język asemblerowy (assembly language) L4 – język algorytmiczny (high-level language) L5 – język makropoleceń (application program)

93 Pojęcia podstawowe – poziom maszynowy
Kod maszynowy – język rozumiany przez procesor, notowany w postaci dwójkowej, obecnie opisywany symbolicznie za pomocą mnemoników, identyfikuje maszynę rzeczywistą System operacyjny – poziom hybrydowy, udostępnienie listy rozkazów procesora, standardowe usługi systemu Asembler – język programowania niskiego poziomu, wykorzystujący instrukcje procesora. Program napisany w asemblerze jest tłumaczony na (binarny) kod maszynowy, najniższy poziom języka symbolicznego – udostępnienie elementarnych działań procesora, operacje na pamięci oraz systemu operacyjnego Język algorytmiczny – język wysokiego poziomu (C++, Fortran, Pascal) Kompilacja – tłumaczenie algorytmu na sekwencję rozkazów procesora i wytworzenie obrazu struktur danych algorytmu w pamięci Interpretacja – osobne tłumaczenie każdego polecenia na sekwencje rozkazów procesora w chwili użycia Maszyna wirtualna - oprogramowanie rozbudowujące system komputerowy o nowe właściwości funkcjonalne, nieudostępniane przez sam sprzęt Program źródłowy - tekst programu wyrażonego w język programowania, nadający się do czytania przez człowieka i przeznaczony do tłumaczenia przez translator. Program wynikowy - efekt pracy kompilatora, półprodukt tłumaczenia w postaci nadającej się do dalszego tłumaczenia przez asembler lub do konsolidacji. Program wykonywalny - plik utworzony z plików wynikowych (przetłumaczonych przez kompilator) i modułów bibliotecznych wskutek połączenia ich przez program łączący. Plik wykonywalny zawiera globalnie ujednolicone adresy i jest zdatny do ładowania i wykonania przez procesor .txt obj exe program źródłowy kompilator program wynikowy konsolidator program wykonywalny kod maszynowy procesor inne moduły procesor procesor


Pobierz ppt "Architektura Systemów Komputerowych (ASK)"

Podobne prezentacje


Reklamy Google