Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Architektura Systemów Komputerowych (ASK) Wykład nr.1 Wprowadzenie do przedmiotu; Janusz Łukowski"— Zapis prezentacji:

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

2 Literatura 1.Piotr Metzger, Anatomia PC, Architektura komputerów zgodnych z IBM PC, Helion, Andrew S. Tanenbaum, Struktura organizacyjna systemów komputerowych, Helion, William Stallings, Organizacja i architektura systemu komputerowego, Projektowanie systemu a jego wydajność, WNT, Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, Helion, Materiały informacyjne firm, np.: Intel, IBM, AMD 6.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 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. Atanasoff Berry Computer (ABC) – rozwiązywanie układów równań liniowych ENIAC 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. 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 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 Neumanna von Neumanna 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. jednostka sterująca jednostka wykonawcza CPU Słowo 0 Słowo Słowo N sterowanie adres słowo danych wejście wyjście wejście wyjście PROCESOR MAGISTRALA PAMIĘĆ Koncepcja komputera z programem zintegrowanym

14 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 Architektura komputera według von Neumanna 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 Alternatywna koncepcja komputera z programem zintegrowanym (Harwardzka ) Architektura komputera według von Neumanna 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) sterowanie rozkazy adres dane Jednostka sterująca Jednostka wykonawcza PROCESOR 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 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 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 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 2 16 do 2 32 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 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ń. Reprezentacja danych 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. Nazwy słów cyfrowych Długość słowa Oznaczenie symboliczne Nazwa 1 a0a0 bit 4a a 0 tetrada, kęs 8a a 0 bajt 16 a a 0 słowo 16-bitowe, słowo 32a a 0 podwójne słowo, dwusłowo 64a a 0 słowo 64-bitowe, czterosłowo 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 a n a 0 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 INFORMACJA DANE KONKRETNA REPREZENTACJA INFORMACJI Typy danych Dane typu logicznego: tak lub nie Dane alfanumeryczne (alfabet+liczby) Dane numeryczne Dane graficzne Dane alfanumeryczne o ustalonej strukturze (rekordy), Dane muzyczne

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 NazwaSymbolMnożnikNazwaSymbolMnożnik kB/KB10 3 = KiB 2 10 = MB10 6 = MiB2 20 = GB10 9 = GiB2 30 = TB10 12 = TiB2 40 = PB10 15 = PiB2 50 = EB10 18 = EiB 2 60 = ZB10 21 = ZiB2 70 = YB10 24 = YiB2 80 = Wielokrotności bajtów kilobajtkikibajtmegabajtmebibajtgigabajtgigibajtterabajttebibajtpetabajtpebibajteksabajteksbibajtzettabajtzebibajtjottabajtjobibajt 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. Przedrostki dziesiętne (SI) Przedrostki binarne (IEC )

27 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: A3B2C1D adres bajty D2C3B4A adres bajty

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

29 Kody binarne - zastosowania Kodowanie znaków Kodowanie znaków : ABCDEFGHIJKLMNOPRSTUWXYZ - 24 znaki n bitów tworzy 2 n różnych symboli binarnych. do utworzenia n symboli binarnych, gdzie n > 1, potrzebne jest co najmniej [log 2 (n - 1) + 1] bitów Do zakodowania 24 znaków w kodzie binarnym potrzeba 5 bitów znakkodznakkod A00000M01100 B00001N01101 C00010O01110 D00011P01111 E00100R10000 F00101S10001 G00110T10010 H00111U10011 I01000W10100 J01001X10101 K01010Y10110 L01011Z10111 ZAKODOWANIE INFORMACJI INFORMATYKA I N F O R M A T Y K A

30 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 Kodowanie liczb – systemy pozycyjne System dziesiętny System binarny System ósemkowy System szesnastkowy C – {0,1,2,3,4,5,6,7,8,9}; p = 10 C – {0,1}; p = 2 C – {0,1,2,3,4,5,6,7}; p = 8 C – {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; p = 16 1* * *10 0 = 123 (10) 1*2 6 +1*2 5 +1*2 4 +1*2 3 +0*2 2 +1*2 1 +1*2 0 = (2) = 123 (10) 1*8 2 +7*8 1 +3*8 0 = 173 (8) = 123 (10) 7*16 1 +B*16 0 = 7B (16) = 123 (10)

31 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. Kodowanie liczb – systemy pozycyjne

32 Konwersja systemu dziesiętnego na inny system pozycyjny 1. Obliczamy resztę z dzielenia liczby n przez liczbę P, resztę tę oznaczamy symbolem r 1 2. Obliczamy resztę z dzielenia otrzymanego ilorazu przez liczbę P, oznaczamy tę resztę symbolem r 2 3. Wykonujemy krok 2 tak długo, aż otrzymamy iloraz równy 0 i resztę r k 4. Otrzymane reszty zapisujemy w postaci ciągu symboli r k r k-1...r 2 r 1. Otrzymujemy rozwinięcie liczby n przy podstawie P, co zapisujemy (r k r k-1... r 2 r 1 ) 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. Kodowanie liczb – systemy pozycyjne

33 Zamiana liczby dwójkowej na ósemkową 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: (2) = (8) Zamiana liczby dwójkowej na szesnastkową 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 (2) = 2ED5 (16) Kodowanie liczb – systemy pozycyjne Konwersje dwójkowo-ósemkowe i dwójkowo-szesnastkowe

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

35 Kod BCD W systemie BCD każdą cyfrę dziesiętną liczby kodujemy za pomocą 4 bitów tworzących wartość tej cyfry w systemie dwójkowym (10) = (BCD ) = 1 x x x x 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 Kodowanie liczb – systemy pozycyjne Zakres n-bitowych liczb w kodzie BCD wynosi Z (BCD) = [n : 4] × 2 n mod b n-1...b 1 b 0 = b n-1 × 10 [(n-1)/4] × 2 (n-1) mod b 1 × 10 0 × b 0 × 10 0 × 2 0

36 Kod Graya, 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. Kod Graya Lp Kodowanie liczb – systemy pozycyjne Kod binarny Kod Graya

37 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 Zakres liczb w kodzie Z-M Zmin = (-1) x (2 n-1 - 1) = - 2 n W potędze liczby dwa jest wykładnik n -1, ponieważ moduł liczby (ilość bitów) ma długość pomniejszoną o bit znaku. Zmax = 2 n Kodowanie liczb ze znakiem – systemy pozycyjne b n-1 b n-2...b 2 b 1 b 0 = (-1) bit znaku × moduł liczby =

38 Kod uzupełnień U2 b n-1 b n-2 b n-3...b 2 b 1 b 0 (U2) = b n-1 (-2 n-1 ) + b n-2 2 n-2 + b n-3 2 n b b b Dla n bitowej liczby U2 możemy zapisać wzór: W U2 = b n-1. (- 2 n-1 ) + wartość reszty liczby w kodzie NBC Zakres liczb w kodzie U2 Z (U2) = (-2 n-1, 2 n-1 - 1) Kodowanie liczb ze znakiem– systemy pozycyjne Kod uzupełnień U1 Dla n bitowej liczby U1 możemy zapisać wzór: W U1 = b n-1. (- 2 n-1 +1) + wartość reszty liczby w kodzie NBC Zakres liczb w kodzie U1 Z (U1) = (-2 n-1 + 1, 2 n-1 - 1) b n-1 b n-2 b n-3...b 2 b 1 b 0 (U1) = b n-1 (-2 n-1 +1) + b n-2 2 n-2 + b n-3 2 n b b b 0 2 0

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

40 b n-1 b n-2...b 2 b 1 b 0 (BIAS) = b n-1 2 n-1 + b n-2 2 n b b b bias Kod z nadmiarem - BIAS Zakres liczb w kodzie z nadmiarem (BIAS) Z (BIAS) = -bias... 2 n bias Kodowanie liczb ze znakiem– systemy pozycyjne 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 w zależności od nadmiaru (BIAS) możemy otrzymywać różne zakresy kodowanych liczb KOD binarny Wartości nadmiaru - bias Wartości słów kodowych w systemach z nadmiarem Nadmiar można tak dobrać, aby zakres w całości zawierał się po stronie liczb ujemnych lub dodatnich

41 0 KodNKBZMU1U2bias= NKBb n-1...b 1 b n -1 ZMb z b n-2...b 1 b 0 -2 n n-1 -1 U1b n-1 b n-2...b 1 b 0 -2 n n-1 -1 U2b n-1 b n-2...b 1 b 0 -2 n n-1 -1 biasb n-1...b 1 b 0 -bias... 2 n -1-bias Kod Reprezentacja zakres NKBb n-1...b 1 b 0 b n-1 2 n b b ZMb z b n-2...b 1 b 0 (-1) bz x kod NKB U1b n-1 b n-2...b 1 b 0 b n-1 (-2 n-1 -1) + kod NKB U2b n-1 b n-2...b 1 b 0 biasb n-1...b 1 b 0 kod NKB (b n-1...b 0 ) - bias b n-1 (-2 n-1 ) + kod NKB Kod Reprezentacja Konstrukcja kodu ZESTAWIENIE BINARNYCH KODÓW POZYCYJNYCH

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

43 Zapis stałopozycyjny Zakres dwójkowych liczb stałoprzecinkowych <0, 2 n m - 12m - 1 > 2m2m 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: W dowolnym systemie pozycyjnym o podstawie p wartość liczby stałoprzecinkowej obliczamy wg wzoru: c n-1...c 0,c -1 c -2...c -m = c n-1 p n c 0 p 0 + c -1 p -1 + c -2 p c -m p -m gdzie n - liczba cyfr przed przecinkiem, m - liczba cyfr po przecinku c n-1...c 0,c -1 c -2...c -m = c n-1 2 n c c c c -m 2 -m W systemie pozycyjnym binarnym (o podstawie p = 2) wartość liczby stałoprzecinkowej obliczamy wg wzoru: b n – liczby całkowite; c m – liczby ułamkowe

44 Algorytm wyznaczania cyfr zapisu stałopozycyjnego L u × p = (C -1 p -1 + C -2 p -2 + C -3 p C -m+1 p -m+1 + C -m p -m ) p L u × p = C -1 p -1 p + C -2 p -2 p + C -3 p -3 p C -m+1 p -m+1 p + C -m p -m p L u × p = C -1 p 0 + C -2 p -1 + C -3 p C -m+1 p -m+2 + C -m p -m+1 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 1 2. Obliczamy resztę z dzielenia otrzymanego ilorazu przez liczbę P, oznaczamy tę resztę symbolem r 2 3. Wykonujemy krok 2 tak długo, aż otrzymamy iloraz równy 0 i resztę r k 4. Otrzymane reszty zapisujemy w postaci ciągu symboli r k r k-1...r 2 r 1. Otrzymujemy rozwinięcie liczby Lc przy podstawie P, co zapisujemy (r k r k-1... r 2 r 1 ) p Przykład: Zapisać liczbę 123,123 (D) w systemie binarnym z 4 miejscami po przecinku część całkowita Lc 123 div 2 = 61 r1=1 61 div 2 = 30 r2 =1 30 div 2 = 15 r3 =0 15 div 2 = 7 r4=1 7 div 2 = 3 r5=1 3 div 2 = 1 r6=1 1 div 2 =0 r7=1 123 (10) = (B) część ułamkowa Lu 0,123 *2 = 0,249 r1 = 0 0,249 *2 = 0,492 r2 = 0 0,492 *2 = 0,984 r3 = 0 0,984 *2 = 1,968 r4 = 1 0,123 (10) = (B) ,0001 (B)

45 Liczby zmiennoprzecinkowe W FP = m x p w m - mantysa zapisana w systemie o podstawie p p - podstawa danego systemu pozycyjnego w - wykładnik zapisany w systemie o podstawie p Zapis zmiennopozycyjny W postaci znormalizowanej liczby zmiennoprzecinkowej mantysa m spełnia nierówność: 1 |m| < p Dwójkowy zapis zmiennoprzecinkowy W FP2 = m x 2 w m - mantysa, liczba stałoprzecinkowa ze znakiem w - wykładnik, liczba całkowita Format binarnej liczby zmiennoprzecinkowej wykładnik - kod U2mantysa - kod Z-M b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b0b0 x(-8)x4x2x1znakx 1x 1 / 2 x 1 / 4

46 Algorytm wyznaczania cyfr zapisu zmiennopozycyjnego Algorytm przeliczania liczby dziesiętnej na liczbę zmiennoprzecinkową w innym systemie pozycyjnym 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 W FP = m x p w 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 = 61 r1=1 61 div 2 = 30 r2 =1 30 div 2 = 15 r3 =0 15 div 2 = 7 r4=1 7 div 2 = 3 r5=1 3 div 2 = 1 r6=1 1 div 2 =0 r7=1 123 (10) = (B) część ułamkowa Lu 0,123 *2 = 0,249 r1 = 0 0,249 *2 = 0,492 r2 = 0 0,492 *2 = 0,984 r3 = 0 0,984 *2 = 1,968 r4 = 1 0,123 (10) = (B) ,0001 (B) 1, x10^110 m – mantysa p – podstawa w - cecha

47 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 single182332float (C), single (Pascal) IEEE-754 double double (C) koprocesor x long double (C99) Kompilator Pascala 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. Zapis zmiennopozycyjny

48 Format zapisu zmiennoprzecinkowego IEEE bity - pojedyńcza precyzja (1 bit) b 31 (8 bitów) b b 23 (BIAS=127) (23 bity),b b 0 (U1) 64 bity - podwójna precyzja (1 bit) b 63 (11 bitów) b b 52 (BIAS=1023) (52 bity),b b 0 (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: L (IEEE 754) = (-1) z m2 c Przykład: Obliczyć wartość dziesiętną liczby: (IEEE 754) z c m z = 1 - liczba jest ujemna c = (BIAS=127) = = 14 m = 01, (U1) = 1 3 / 8 L (IEEE 754) = (-1) z m2 c = (-1) 1 × 1 3 / 8 × 2 14 = - 11 / 8 × 2 14 = -11 × 2 11 = -11 × 2048= (10)

49 Operacje arytmetyczne Dodawanie binarne = = = = 0 i 1 następny bit Odejmowanie binarne = = = = 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 = = = x x

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

51 Operacje arytmetyczne

52 Operacje logiczne algebrze Boolea Operacje logiczne w odróżnieniu do operacji arytmetycznych operują na pojedynczych bitach. Logika cyfrowa opiera się na algebrze Boolea Symbol Algebry Boole'a Symbol bitowy PRAWDA1 FAŁSZ0 gdzie kolejne funkcje: f 0 - funkcja stała, f 1 - funkcja NOR, f 2 - funkcja implikacji (zakazu), f 3 - negacja x 0, f 4 - funkcja implikacji (zakazu), f 5 - negacja x1, f 6 - funkcja sumy wyłączającej, sumy modulo 2 lub funkcja EXOR, f 7 - funkcja NAND, f 8 - funkcja iloczynu, f 9 - funkcja równoważności, f 10 - funkcja tożsama ze zmienną, f 11 - funkcja implikacji, f 12 - funkcja tożsama ze zmienną, f 13 - funkcja implikacji, f 14 - funkcja sumy, f 15 - funkcja stała. Prawa Algebry Boolea 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: 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 x 0 i x 1 funkcje te można zapisać:

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

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

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

56 Operacje logiczne Prawa De Morgana

57 Architektura procesora 8086

58 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) 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 PROCESOR 8086

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

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

61

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

63 Rejestry ogólnego stosowania Układy pamięciowe przeznaczone do przechowywania informacji oraz spełniające spełniające funkcje specjalne.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).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 REJESTRY OGÓLNEGO STOSOWANIA AXAX BX CX DX AHAL BHBL CHCL DHDL Rejestr danych Rejestr zliczający Rejestr bazowy Akumulator

64 Rejestr CS wskazuje początek 64KB (2bloku pamięci zawierającej kod rozkazu lub na segment kodu, w którym rezyduje następny do wykonania rozkaz. (CS:IP)Rejestr CS wskazuje początek 64KB (2 16 ) 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 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 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.Rejestr SS wskazuje początek 64KB bloku pamięci zwanego segmentem stosu. REJESTRY SEGMENTOWE CS DS ES SS Rejestr kodu Rejestr danych Rejestr dodatkowy Rejestr stosu blok pamięci CS:IP

65 SI - rejestr indeksowy źródła danych wykorzystywany jest głównie jako wskaźnik przesunięcia w bloku pamięci operacyjnejSI - 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 operacyjnejDI - 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 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 - 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)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.SP (wskaźnik stosu) - rejestr ten podaje bieżące położenie wierzchołka stosu. REJESTRY INDEKSOWE I WSKAŹNIKOWE

66 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 SP BP Pamięć operacyjna 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. 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 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.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:IPAdres logiczny wykonywanego rozkazu wskazywany jest parą rejestrów CS:IP Adres fizyczny CS*16+IPAdres 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.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. Rejestr IP i rejestr Flagowy ODITSZAPC 15 0 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 A 0 - A 3 B 0 - B 3 S 0 - S 3 M F 0 - F 3 ALU - układ SN74181 JEDNOSTKA ARYTMETYCZNO – LOGICZNA Jednostka Arytmetyczno-Logiczna (ALU) - UNIWERSALNY zespół układów kombinacyjnych, realizujący operacje matematyczne i logiczneJednostka Arytmetyczno-Logiczna (ALU) - UNIWERSALNY zespół układów kombinacyjnych, realizujący operacje matematyczne i logiczne Rozkazy wykonywane przez ALU:Rozkazy wykonywane przez ALU: –Operacje dwuargumentowe: operacje arytmetyczne (dodawanie i odejmowanie); operacje arytmetyczne (dodawanie i odejmowanie); operacje logiczne (sumowanie mnożenie, sumowanie mod 2, itd.) operacje logiczne (sumowanie mnożenie, sumowanie mod 2, itd.) –operacje jednoargumentowe (negowanie bitów, przesuwanie zawartości rejestrów, itd.) Lp. S 0 - S 3 M=0 M=1 M(0,1) – wybór rodzaju operacji; S 0 – S 3 –czterobitowy kod sterujący F 0 – F 3 – wynik operacji ALU

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 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ą Procesor `

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

75 Rejestr flagowy ODITSZAPC 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) 15 0

76 Procesor Rozkazy procesora 8086 (wybrane) Wymiana danych 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 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 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 Łańcuchowe 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) Sterujące JMP –skok bezwarunkowy CALL – wywołanie procedury Przekazanie sterowania 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 Mov służy do kopiowania wartości między pamięcią a rejestrami, lub między rejestrami wyłącznie mov ax,bx Składnia opisprzykład mov ax,2811h mov bx,0100h mov ax,[bx] ds:bx ds:0100 h 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 ax push 4321h 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 Przyrost wartości o 1 w rejestrze segmentowym zwiększa o 16 adres fizyczny Do zaadresowania 1 MB pamięci operacyjnej wymagane jest 20 bitów Rejestr segmentowy wskazuje na ciągły obszar pamięci o wielkości 64 kB Procesory 16-bitowe

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

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

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

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

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 sposób określenia miejsca przechowywania argumentów rozkazu 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 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 Adresowanie pamięci operacyjnej Typy adresacji

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 M i F D (R) E W M j cykle procesora cykl pamięci F - pobranie kodu D - dekodowanie R - odczyt argumentu E - wytworzenie wyniku W - zapamiętanie wyniku M i, 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 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 translator języka makropoleceń translator języka algorytmicznego translator języka asemblerowego funkcje systemu operacyjnego interpreter kodu maszynowego interpreter mikroprogramu język makropoleceń język algorytmiczny język asemblerowy system operacyjny struktura logiczna przetwornik sygnałów L5 L4 L3 L2 L1 L0 Maszyna wirtualna Maszyna rzeczywista 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) Warstwy poziomu maszynowego: Poziom maszynowy: opis działania komputera poprzez realizacje rozkazów na umownych poziomach abstrakcji

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 program źródłowy kompilator program wynikowy konsolidator program wykonywalny kod maszynowy procesor inne moduły procesor procesor.txt.obj.exe


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

Podobne prezentacje


Reklamy Google