890 likes | 1.13k Views
dr inż. Jacek FLOREK Instytut Informatyki. PODSTAWY ARCHITEKTURY KOMPUTERA. Specjalizowany układ cyfrowy a maszyna cyfrowa Struktura systemu mikroprocesorowego Bloki funkcjonalne - organizacja i architektura. 7. PRZETWARZANIE INFORMACJI.
E N D
dr inż. Jacek FLOREK Instytut Informatyki PODSTAWY ARCHITEKTURY KOMPUTERA • Specjalizowany układ cyfrowy a maszyna cyfrowa • Struktura systemu mikroprocesorowego • Bloki funkcjonalne - organizacja i architektura 7
PRZETWARZANIE INFORMACJI Przetwarzanie informacji można zrealizować dwoma sposobami: • Specjalizowany układ cyfrowy: SPECJALIZOWANYUKŁAD CYFROWY WYNIKI DANE • System mikroprocesorowy (maszyna cyfrowa): MASZYNA CYFROWA PROGRAM WYNIKI DANE Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według ustalonego algorytmu PROCES PRZETWARZANIA DANE POCZĄTKOWE WYNIKI KOŃCOWE ALGORYTM
MASZYNA CYFROWA PAMIĘĆ ZEWNĘTRZNA WYNIKI PAMIĘĆ OPERACYJNA PROGRAM BLOK PRZETWA-RZANIA UKŁADY WY URZĄDZENIA ZEWNĘTRZNE UKŁADY WE URZĄDZENIA ZEWNĘTRZNE STEROWANIE DANE PROCESOR JEDNOSTKA CENTRALNA ARCHITEKTURA MASZYNY CYFROWEJ
SYSTEM MIKROPROCESOROWY Liczba linii wyznacza możliwości adresowania np. liczba linii 20 to można zaadresować 220 komórek SZYNA ADRESOWA Liczba linii określa długość słowa procesora (8, 16, 32, .... (+biyt detekcji i korekcji błędów) SZYNA DANYCH SZYNA STEROWANIA Kilkanaście (kilkadziesiąt) linii UKŁADYWE/WY PROCESOR PAMIĘC ZEGAR DANEPROGRAMYWYNIKI ... Centralna jednostka przetwarzająca (CPU) URZ. ZEWN. MONITORY, DRUKARKI, CZYTNIKI,... Uniwersalny układ przetwarzający informację i sterujący pracą pozostałych elementów systemu UŻYTKOWNIK
ORGANIZACJA SYSTEMU • Każde działanie wykonywane przez system jest wynikiem realizacji określonego programu bądź jego fragmentu • Architektura klasycznego komputera (wg von Neumana) opiera się na założeniach: • program wykonywany przez procesor wraz z danymi jest umieszczony w pamięci; • kolejność wykonywanych rozkazów zależy od ich umieszczenia w programie (w kolejnych komórkach pamięci), a zmiana tej zasady może być wykonana tylko: • przez program (rozkaz skoku); • przez system operacyjny np. wykrycie błędu; • przez operatora np. reset • procesor odczytuje kolejne rozkazy z pamięci wysyłając odpowiednie adresy
PRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYM Adres PROCESOR PAMIĘĆ Odczyt Dane 1 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 Adres PROCESOR PAMIĘĆ Z PROCESORA DO PAMIĘCI Z PAMIĘCI DO PROCESORA Zapis Dane Adres Adres Z WEJŚCIA DO PROCESORA UKŁADWY-WE PROCESOR UKŁADWY-WE PROCESOR Z PROCESORA NA WYJŚCIE Odczyt Dane Zapis Dane
dr inż. Jacek FLOREK Instytut Informatyki ARCHITEKTURA PROCESORA • Schemat blokowy procesora • Rejestry • Blok arytmetyczno-logiczny (ALU) • Układ sterowania 8
SCHEMAT BLOKOWY PROCESORA JEDNOSTKA WYKONAWCZA Zadaniem jednostki wykonawczej jest wykonywanie operacji arytmetycznych i logicznych w zależności od wewnętrznych sygnałów sterujących rejestry części wykonawczej ALU DANE WYNIKI wewnętrzne sygnały sterujące zewnętrzne sygnały sterujące PROGRAM rejestrrozkazów dekoderrozkazó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
REJESTRY dostępne programowo niedostępne programowo (na przykładzie 8 bitowego procesora 8086/8088) 15 0 Rejestr znaczników (flagowy FLAGS ZF OF DF SF AF PF CF IF TF 15 7 0 AX AX AH AL Akumulator Znaczniki stanu Rejestry powszechnego stosowania OF - flaga nadmiaru (przepełnienia) BH BL BX Rejestr bazowy SF - flaga znaku ZF - flaga zera CH CL CX Rejestr zliczający CF - flaga przeniesienia PF - flaga parzystości DH DL Rejestr danych DX AF - flaga przeniesienia pomocniczego Rejestr indeksowy źródła Znaczniki kontrolne SI IF - flaga zezwolenia na przerwanie Rejestr indeksowy przeznaczenia TF - flaga pracy krokowej DI Rejestry wskaźnikowe i indeksowe DF - flaga kierunku Wskaźnik bazy BP Wskaźnik stosu SP Wskaźnik rozkazów IP Rejestr programu CS DS Rejestry segmentowe Rejestr danych ES Rejestr dodatkowy SS Rejestr stosu
REJESTRY • Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości, ...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa sposoby: • ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu • testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania (przetwarzania danych) • Znaczniki stanu: • CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie) • PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o wartości jedynki • ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zero • PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady wyniku • SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze znakiem - kod U2) • OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji arytmetycznych (operacje liczb ze znakiem - kod U2) • Znaczniki kontrolne: • TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po wykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługi • IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie systemu przerwań w procesorze (0 - procesor ignoruje przerwania) • DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu słów) przy rosnących adresach (1) lub malejących adresach (0)
REJESTRY Rejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni akumulator Akumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów) wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być umieszczany w innym rejestrze) • Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentów • CS rejestr segmentowy programu wskazuje segment programu, z którego aktualnie są pobierane kolejne rozkazy do wykonania, • DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane są zmienne używane w programie, • ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych, • SS rejestr segmentowy stosu wskazuje segment pamięci, w którym zdefiniowany jest stos. Rejestry wskaźnikowe i indeksowe - posiadają dwa rejestry wskaźnikowe i dwa rejestry indeksowe. Rejestry wskaźnikowe (SP, BP) są stosowane do adresowania danych w obrębie wydzielonego obszaru pamięci (stosu). Rejestry indeksowe (SI, DI) służą do adresowania danych w obszarze pamięci zwanym segmentem danych. Wszystkie rejestry mogą być wykorzystywane jako argumenty większości rozkazów arytmetycznych i logicznych. Wskaźnik rozkazów (wskaźnik instrukcji) - łącznie z rejestrem segmentowym CS adresuje kolejne rozkazy przeznaczone do wykonania. Wskazuje adres względem początku segmentu programu
REJESTRY • Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu) • Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł: • informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąć • odczytujemy informacje w kolejności odwrotnej do ich zapisu • informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do pierwszej wolnej • Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi stos lub stos Program główny Adres Wywołanie podprogramu I 101 Instrukcja (adres 104 na stos) 102 Instrukcja 103 Call Wywołanie podprogramu II 1002 Instrukcja (adres 1005 na stos) 1003 Instrukcja 1004 Call 2001 Instrukcja 2002 Instrukcja 2003 Return 1005 Instrukcja 1006 Instrukcja Powrót z podprogramu II (do adresu 1005 1007 Return odczytanego ze stosu) 104 Instrukcja 105 Instrukcja Powrót z podprogramu I (do adresu 104 106 Instrukcja odczytanego ze stosu) 107 Instrukcja
rejestr zliczający akumulator rejestr bazowy rejestr danych rejestr indeksowy źródła wskaźnik stosu rejestr indeksowy przeznaczenia wskaźnik bazy rejestr flagowy (znaczników) rejestr danych rejestr stosu rejestr programu wskaźnik rozkazów rejestr dodatkowy
flaga nadmiaru flaga zezwolenia na przerwanie flaga kierunku flaga znaku flaga zera flaga przeniesienia pomocniczego flaga parzystości flaga przeniesienia
BLOK ARYTMETYCZNO-LOGICZNY • Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w programie. • Rozkazy mogą dotyczyć • operacji dwuargumentowych: • operacji arytmetycznych (dodawanie i odejmowanie) • operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.) • operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów) • Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU. Przykład 4 bitowego ALU SN74181 Lp. S0 - S3 M=0 M=1 A0 - A3 F0 - F3 B0 - B3 S0 - S3 M Sygnały sterujące do wyboru mikrooperacji logicznej (M=0) lub arytmetycznej (M=1)
UKŁAD STEROWANIA Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np. dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i przesunięć). W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi słów podawanych na wejścia sterujące układu ALU - układ sterowania. • Cechy takiego automatu to: • konieczność posiadania bardzo dużej liczby stanów dostosowanych do wymaganej liczby wykonywanych rozkazów; • konieczność zapewnienia synchronizacji pracy układu sterowania i wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji). • W praktyce realizowane są jako: • generatory sekwencyjne • układy mikroprogramowalne
dr inż. Jacek FLOREK Instytut Informatyki ROZKAZY I TRYB ADRESOWANIA • Cykl rozkazowy • Lista i format rozkazu • Tryb adresowania • Sposób prezentowania rozkazu 9
CYKL ROZKAZOWY PROCESORA Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się cyklem rozkazowym (instrukcyjnym) Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania argumentu) i wykonania rozkazu. cykl pobrania argumentu I cykl pobrania argumentu II cykl pobrania rozkazu cykl zapisu wyniku Pamięć POBRANIE ROZKAZU POBRANIE ARGUMENTU II POBRANIE ARGUMENTU I ZAPIS WYNIKU CPU OBLICZANIEADRESU ARGUMENTUII OBLICZENIE ADRESU PRZEZNACZE-NIA DEKODOWANIE ROZKAZU OBLICZANIEADRESU ARGUMENTUI WYSŁANIE ADRESU ROZKAZU WYKONANIE ROZKAZU
CYKL ROZKAZOWY PROCESORA pamięć procesor 1 kod rozkazu szyna danych szyna adresowa kod rozkazu 4 2 kod rozkazu PC(AD) 3 kod rozkazu RR kod rozkazu • Faza pobrania: • 1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru adresującego pamięć AD) na magistralę adresową • 2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (RR) • 3. zwiększenie zawartości licznika rozkazów • Faza wykonania: • 4. zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących realizujących dany rozkaz Cykl von Neumana w przypadku rozkazów wielobajtowych • Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju procesora i rodzaju rozkazu (argumentu). • Np. • Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy to faza pobrania rozkazu składa się z trzech cykli odczytu pamięci: • odczyt kodu - pobranie rozkazu • odczyt jednego bajtu adresu • odczyt drugiego bajtu adresu • Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazu Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2 komórkach pamięci)
Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300): • odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru A • odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B • dodanie obu argumentów • przesłanie wyniku do komórki pamięci o adresie 915 16
LISTA ROZKAZÓW Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesora Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w postaci kodów binarnych rozkazy w postaci kodów binarnych instrukcje maszynowe instrukcje w FORTRANie Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesor • rozkazy przesłań • rozkazy arytmetyczne i logiczne • rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.) • inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie chronionym)
FORMAT ROZKAZÓW I TRYB ADRESOWANIA Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazu • Kod rozkazu: • musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w pierwszym bajcie (bajtach) kodu rozkazu • może zawierać operandy i/lub adresy operandów wykonywanych operacji Def.2. Trybem adresowania nazywamy sposób określenia miejsca przechowywania argumentów rozkazu • Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w: • rejestrach • pamięci • kodzie rozkazu • Rozróżniamy następujące tryby adresowania • adresowanie natychmiastowe • adresowanie bezpośrednie • adresowanie rejestrowe • adresowanie pośrednie • adresowanie indeksowe z przemieszczeniem
TRYB ADRESOWANIA Def.Przy adresowaniu natychmiastowym argument rozkazu zawarty jest w kodzie rozkazu Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie. Argument jest umieszczany w kodzie rozkazu, więc musi być on znany w momencie pisania programu. Kod operacji Kod rozkazu Argument Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki pamięci, w której przechowywany jest argument rozkazu W momencie pisania programu musimy zarezerwować adres przechowywania argumentu. Kod operacji Kod rozkazu PAMIĘĆ Adres Argument
TRYB ADRESOWANIA Def.Przy adresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr, w którym przechowywany jest argument Zaletą tego trybu jest krótki kod i szybkie wykonanie REJESTR Kod rozkazu Określenie rejestru Kod operacji Argument Def.W trybie adresowania pośredniego (rejestrowego pośredniego) kod rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej argument REJESTR Kod rozkazu Określenie rejestru Kod operacji Adres PAMIĘĆ Argument
TRYB ADRESOWANIA Def.W trybie adresowania indeksowego z przemieszczeniem adres argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, zwanej przemieszczeniem Kod rozkazu REJESTR Określenie rejestru wartość Kod operacji Przemieszczenie PAMIĘĆ Argument
SPOSÓB PREZENTOWANIA ROZKAZU 1. Oznaczenie symboliczne rozkazu Jest stosowane dla prezentacji programu człowiekowi lub przy pisaniu programów w asemblerze Składa się ono z mnemonika (skrótu, który powinien sugerować rodzaj operacji) i pola argumentów kod operacji argument JMP SHORT NEXT EB 03h mnemonik argument Kod rozkazu w kodzie heksadecymalnym Kod rozkazu binarnie (w pamięci)
SPOSÓB PREZENTOWANIA ROZKAZU 2. Opis działania rozkazu Jest możliwy w formie słownej lub symbolicznej Opis słowny: „Wykonaj skok i pobierz kod rozkazu z komórki pamięci o adresie równym etykieta”(u nas NEXT=100) Argumentem jest jednak nie adres komórki lecz długość skoku (interpretowana w kodzie U2). SHORT oznacza w tym przypadku skok bliski (w zakresie od 127 bajtów w górę do 128 bajtów w dół) Opis symboliczny: (PC) (PC) + przesunięcie czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek) ................................
SPOSÓB PREZENTOWANIA ROZKAZU 3. Format rozkazu Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on następujący: kod operacji 11101011 Kod rozkazu argument przemieszczenie 4. Ustawienie flagi Istotną informacją jest określenie czy są ustawiane flagi (i które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są ustawiane. 5. Szybkość wykonywania rozkazu Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych do wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz w 7 taktach.
PRZYKŁADOWE ROZKAZY Rozkazy przesłań: MOV - move - przesłanie słowa między dwoma rejestrami STR - store - przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięci LD - load - przesłanie słowa z pamięci do wskazanego rejestru XCH - exchange - wymiana zawartości rejestrów Rozkazy arytmetyczno-logiczne: ADD - addition - dodawanie SUB - subtraction - odejmowanie MUL - multiplication - mnożenie DIV - division - dzielenie NEG - negate - negacja DEC - decrement - zmniejszanie wartości o jeden INC - increment - awiększanie wartości o jeden AND - conjuction - iloczyn OR - disjunction - suma EXOR - exclusive-OR -suma mod 2 NOT - complement - negacja Rozkazy sterujące pracą programu: JMP - jump - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięci CALL - jump to subroutine - wywołanie podprogramu RET - return - skok powrotny z podprogramu SKIP - skip - przeskok przez jeden rozkaz Rozkazy sterujące pracą procesora : HALT - stop - zatrzymanie wykonania programu NOP - no operation - rozkaz pusty
dr inż. Jacek FLOREK Instytut Informatyki PAMIĘCI • Podstawowe cechy i klasyfikacja • Pamięci RAM • Pamięci dynamiczne RAM • Pamięci ROM 10
PARAMETRY PAMIĘCI • Pamięć jako układ przeznaczony do przechowywania informacji binarnej można scharakteryzować następującymi parametrami: • pojemność • szybkość • koszt • pobór mocy Pojemność pamięci określa ilość informacji jaką można w niej przechować wyrażoną w bitach, bajtach lub słowach. Pamięć dzielona jest na fragmenty (w zależności od typu pamięci) umożliwiające adresowanie. W pamięci operacyjnej są to fragmenty określane długością słowa (8, 16, 32, 64 bity). Pojemność określa się podając liczbę słów i długość słowa, np. 512Kx64 - 219 słów 64-bitowychW pamięciach masowych fragmentami są sektory (setki lub tysiące słów).
PARAMETRY PAMIĘCI • Szybkość pamięci określa jak często procesor (lub inne urządzenie) może z niej korzystać. • czas dostępu - czas od momentu żądania informacji z pamięci do momentu, w którym ta informacja ukaże się na wyjściu pamięci • czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma żądaniami dostępu do pamięci • szybkość transmisji - określa ile bajtów (bitów) można przesłać pomiędzy pamięcią a innym urządzeniem w jednostce czasu. Koszt pamięci określa cenę jaką należy ponieść za uzyskanie wysokich parametrów pamięci szybciej - drożej !!! wolniej - taniej !!! Pobór mocy określa jakie jest zapotrzebowanie energetyczne na realizację funkcji pamięci zwłaszcza przy dążeniu do wzrostu jej pojemności !
PAMIĘCI ROM Z dostępem swobodnym (bezpośrednim) Rejestrowa RAM Kieszeniowa Z dostępem cyklicznym Hierarchia pamięci Dostęp do informacji Operacyjna DRAM(dynamiczne) Z dostępemsekwencyjnym Masowa SRAM(statyczne) Z dostępemasocjacyjnym Zewnętrzna
PAMIĘCI RAM Def. Pamięcią RAM (Random Access Memory) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu zasilania dane są tracone. Pamięć2n x m n adres m E zapis/odczyt • Łączenie układów pamięci dla zwiększenia pojemności: • zwiększanie długości słowa • zwiększanie ilości słów
PAMIĘCI RAM zwiększanie długości słowa (rozbudowa szyny danych) Pamięć 4Mb z bitem parzystości Pamięć 8Mb z bitem parzystości D0 D1 D2 D3 D4 D5 D6 D7 D8 D0 Pamięć1M x 4b D0 D1 Pamięć1M x 4b D1 20 D2 20 D2 adres D3 adres D3 E E z/o z/o D0 Pamięć1M x 1b D0 Pamięć1M x 4b D1 D2 D3 D0 Pamięć1M x 1b Sposób stosowany w budowie modułów SIMM (Single In Line Module)
PAMIĘCI RAM zwiększanie liczby słów (rozbudowa szyny adresowej) Pamięć 256k x 4b Pamięć 1M x 4b D3 D2 D1 D0 D0 D0 Pamięć256k x 4b Pamięć256k x 4b D1 D1 18 D2 D2 adres D3 D3 E E z/o z/o D0 Pamięć256k x 4b D1 D2 D3 E DEKODER A18 A19 D0 Pamięć256k x 4b D1 D2 D3 E A0-A17 18 D0 Pamięć256k x 4b D1 D2 D3 E
PAMIĘCI RAM dynamiczne i statyczne CECHY PAMIĘCI DRAM SRAM szybkość mała duża koszt niski wysoki pojemność duża mała pobór mocy mały duży łatwość scalania duża mała konieczność odświeżania tak nie główne zastosowanie główna pamięć pamięć operacyjna kieszeniowa (cache)
PAMIĘĆ DYNAMICZNA RAM (DRAM) adres dane adres RAS# CAS# RAS# WE# REJESTR ADRESU WIERSZA OE# DEKODER WIERSZY CAS# CE# OE# - zezwolenie na odczyt WE# - zezwolenie na zapis CE# - uaktywnianie (strob) RAS# - syg.wprowadzania adresu do pamięci CAS# - -‘’- -‘’- -‘’- -‘’- DEKODER KOLUMN adres wiersz n WE0 REJESTR ADRESU KOLUMNY n do wejścia adresowego DRAM n 2n WE1 S adres kolumny 0 dla aktywnego sygnału RAS# 1 dla aktywnego sygnału CAS#
PAMIĘĆ DYNAMICZNA RAM (DRAM) operacje odczytu tc - minimalny czas pomiędzy dwoma cyklami ta - czas dostępu tD RAS-CAS - opóźnienie sygnału CAS# względem RAS# RAS# CAS# Wejścia adresowe pamięci Adres wiersza Adres kolumny Adres wiersza S OE# Wyjście danych Ważne dane
PAMIĘĆ DYNAMICZNA RAM (DRAM)stany oczekiwania uśpienie uśpienie uśpienie uśpienie odczyt(0 oczekiwania) odczyt(1 oczekiwania) zapis(1 oczekiwania) T2 T2 T1 T2 Ti T2 Ti T1 T1 Ti T2 Ti BCLK A23 - A0 VA VA VA W/R# READY D15 - D0 DI DI DO DO dane zapisywane DI dane odczytywane VA ważny adres stan nieistotny
PAMIĘĆ DYNAMICZNA RAM (DRAM)odświeżanie • Odświeżanie komórek pamięci dynamicznych polega na cyklicznym doładowaniu pojemności pamiętających przechowujących wartość logiczną „1”. • Operacja odświeżania realizowana jest przez specjalistyczne układy logiczne, będące elementem płyty głównej komputera. • Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych RAM: • sygnałem RAS (tryb wierszowy) • sygnałem CAS przed RAS (tryb statyczny) • odświeżanie ukryte • autoodświeżanie
PAMIĘĆ KIESZENIOWA (STATYCZNA) RAM Zjawisko lokalności - procesor odwołuje się najczęściej do pamięci (trafienie) w pewnym niewielkim obszarze (w okolicach danego programu) - bardzo rzadko do obszarów odległych. Stąd stosowanie szybkich pamięci kieszeniowych (cache) zawierających właśnie taki lokalny obszar pamięci. 0 log2k q słów 1 ... 1 blok 0 1 q-1 2 Nr bloku 2 blok k-1 blok m-2 m-1 k-2 blok pamięć kieszeniowa zawiera tylko m spośród k bloków (k>>m) pamięć operacyjna Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (chybienie) to następuje wymiana zawartości jednej komórki pamięci kieszeniowej.
PAMIĘĆ KIESZENIOWA (STATYCZNA) RAM Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) tj. 8192*8 = 65536B = 64KB oraz pojemność pamięci kieszeniowej m=128 linii to długość linii pamięci kieszeniowej wyniesie s=8*q + log2k = 8*8 + log28193 = 64+13=77bitów H - współczynnik trafienia 0,9 q = 64 q = 16 q = 8 0,6 0,3 pojemność pamięci kieszeniowej 5 kB 10 kB 15 kB 20 kB
PAMIĘCI ROM Def. Pamięcią ROM (Read Only Memory) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio zapisanych danych. Oznacza to, że nie można do niej zapisywać danych w trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu zasilania dane nie są tracone. • MROM (mascable ROM) zawartość pamięci ustalana jest w procesie produkcji (za pomocą odpowiednich masek) - BIOS do obsługi klawiatury • PROM (programmable ROM) pamięć jednokrotnie programowalna przez użytkownika - obecnie nieużywana • EPROM pamięć wielokrotnie programowalna w ultrafioletowych programatorach - obecnie wychodzi z użycia • EEPROM pamięć kasowana i programowana na drodze elektrycznej (podobnie jak RAM ale czas zapisu jest nieporównywalnie długi) - flash-BIOS (uaktualniany BIOS)
dr inż. Jacek FLOREK Instytut Informatyki UKŁADY I OPERACJE WEJŚCIA/WYJŚCIA • Układy wejścia/wyjścia • Operacje wejścia/wyjścia 11
UKŁDY WEJŚCIA/WYJŚCIA Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z drugiej.Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących.
UKŁDY WEJŚCIA/WYJŚCIA • Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądź przechowywania informacji lub być układami wykonawczymi. • Dlaczego konieczne jest pośredniczenie? • różnice w szybkości działania (konieczne jest więc sterowanie przepływem informacji) • różnice w parametrach elektrycznych (konieczna więc translacja poziomu sygnałów) • wymagają podania informacji o określonym formacie wraz z pewnymi sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją) Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące.