PODSTAWY INFORMATYKI dr inż. Krzysztof Małecki Magistrala Procesor Pamięć Układy I/O PAMIĘĆ 10011101 10000001......... ADRES 125 126 127 128 129 130 289 290 291 292 293 294 295 296 297 298 299 300 Pamięci półprzewodnikowe Cyfrowe układy scalone przeznaczone do przechowywania dużej ilości informacji w postaci binarnej. 1
Podstawowe parametry Pojemność Maksymalna ilość informacji jaką możemy przechować w danej pamięci podawana w bitach(b) lub bajtach(b). najbardziej znaczący bit najmniej znaczący bit 8 bitów = 1 bajt 2 10 bajtów = 1 kb 1024 bajty = 1 kb 2 20 bajtów = 1 MB 1 048 576 bajty = 1 MB 2 30 bajtów = 1 GB 1 073 741 824 bajty = 1 GB Czas dostępu Czas jaki musi upłynąć od momentu podania adresu słowa w pamięci do czasu ustalenia się poprawnej wartości tego słowa na wyjściu pamięci (odczyt), lub czas jaki upłynie do momentu zapisania wartości pochodzącej z wejścia. Rodzaj dostępu Sekwencyjne Pamięci taśmowe głowica Dostęp swobodny Czas dostępu nie zależy od adresu słowa w pamięci, czyli od miejsca, w którym jest przechowywana informacja. 2
RAM (Random Access Memory) Pamięć operacyjna Pamięć program dane półprzewodnikowa o dostępie swobodnym przeznaczona do zapisu i odczytu. Pamięć ulotna (brak zasilania powoduje utratę przechowywanych informacji). W pamięci RAM przechowywane są aktualnie wykonywane programy lub dane początkowe dla tych programów oraz wyniki ich pracy. RAM jest stosowany między innymi jako pamięć operacyjna komputera (montowany do gniazd na płycie głównej), jako pamięć niektórych komponentów komputera (np. kart graficznych, dźwiękowych, itp.) oraz w wielu innych zastosowaniach - np. w programatorze pralki automatycznej. ROM (Read Only Memory) Pamięć półprzewodnikowa o dostępie swobodnym przeznaczona tylko do odczytu. Pamięć nieulotna. Zawiera stałe dane potrzebne w pracy urządzenia - np. procedury startowe komputera (inicjujące pracę komputera). W normalnym cyklu pracy urządzenia pamięć ta może być tylko odczytywana, zapis do pamięci dokonywany jest w zależności od rodzaju pamięci. 3
ROM (Read Only Memory) MROM (Mascable ROM) Zawartość ustalona w procesie produkcji przez nanoszenie odpowiednich masek. Najtańszy rodzaj ROM (BIOS klawiatury). PROM (Programmable ROM) Pamięć jednokrotnie programowana przez użytkownika. Nieodwracalna zmiana, zawartość ustalona w procesie programowania (nie jest już używana). EPROM (Elecrically Programmable ROM) Pamięć wielokrotnie programowalna. Kasowanie promieniami UV. Programowanie w specjalnych programatorach. ROM (Read Only Memory) EEPROM (Erasable Electrically Programmable ROM) Pamięć wielokrotnie programowalna. Kasowanie i programowanie na drodze czysto elektrycznej. Zapis do takiej pamięci (programowanie) nieporównywalnie dłuższy niż do RAM. Zastosowana w oprogramowaniu BIOS-u, które może być uaktualniane (Flash-BIOS). Flash EEPROM pozwala na zapisywanie lub kasowanie wielu komórek pamięci podczas jednej operacji programowania. NVRAM (Non Volatile RAM) Krzyżówka EEPROM z pamięciami statycznymi (parametry konfiguracyjne urządzeń). 4
Flash EEPROM Produkowana w dwóch wersjach: NOR i NAND. 1988r. pierwsze opracowanie pamięci NOR w firmie Intel. długie czasy zapisu i kasowania. 10 000 do 100 000 cykli kasowania. w pierwszych wersjach kart pamięci CF, później zaczęto w nich stosować tańsze pamięci NAND. Flash EEPROM 1989r. Samsung i Toshiba: pamięci NAND. krótszy czas zapisu i kasowania, większa gęstość upakowania danych, lepszy współczynnik koszt/pojemność oraz 10-krotnie większa wytrzymałość. wada: sekwencyjny dostęp do danych, co czyni ją użyteczną jako pamięć masowa, lecz bezużyteczną jako pamięć komputera. pierwszą kartą pamięci używającą pamięci NAND była karta SmartMedia, później zaczęto ich używać w innych typach, jak: Secure Digital, Memory Stick i xd- Picture Cards, dyski USB. 5
Wprowadzanie i wyprowadzanie informacji do i z pamięci Organizacja pamięci Szyna danych DB Szyna adresowa AB n m PAMIĘĆ Dokonywanie wyboru na którym słowie dokonujemy operacji Adres Rodzaj operacji R - czytanie W - zapis R/W# Niepowtarzalna liczba (numer) przypisana danemu miejscu (słowu) w pamięci w celu jego identyfikacji. Słowo Zestaw pojedynczych komórek pamięci, do którego odwołujemy się pojedynczym adresem CS# Uaktywnienie układu pamięci 16 bitów 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 Długość słowa Ilość bitów w pojedynczym słowie 16 Długość słowa = ilość wyprowadzeń szyny danych m PAMIĘĆ N - liczba słów przechowywanych w pamięci m - liczba linii szyny adresowej N = 2 m Aby zaadresować N słów potrzeba m = log 2 N linii szyny adresowej M - pojemność pamięci n - długość słowa M = n. N = n. 2 m 6
Różne organizacje pamięci D 0 A 4 A 3 A 2 A 1 A 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 A 1 A 0 Organizacja bitowa 32 x 1b Organizacja bajtowa 4 x 1B Łączenie układów pamięci Zwiększanie długości słowa przy niezmienionej ilości słów Zwiększenie ilości słów przy niezmienionej długości słowa Zwiększanie długości słowa przy niezmienionej ilości słów Dwa układy 1M x 4b = 4Mb 1M x 8b D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 20 CS# R/W# ADRES CS# R/W# D 0 D 1 D 2 D 3 CS# R/W# D 0 D 1 D 2 D 3 7
Zwiększenie ilości słów przy niezmienionej długości słowa Cztery układy 256k x 4b = 1Mb 1M x 4b = 4Mb 4 D 3 - D 0 256k x 4b CS# R/W# 256k x 4b CS# R/W# 256k x 4b CS# R/W# 256k x 4b CS# R/W# Dekoder 18 R/W# A 19 A 18 A 17 - A 0 Technologia wykonania Statyczna SRAM droga szybka gorsza do scalenia Static RAM Asynchronous SRAM Synchronous SRAM Burst SRAM Pipelined burst SRAM 8.5 ns - 12 ns 4.5 ns - 8 ns Dynamiczna DRAM prostota budowy duże pojemności Wolniejsza wymaga odświeżania tańsza Dynamic RAM każdy bit danych jest przechowywany w zmiennej lokalizacji w oddzielnym kondensatorze w obwodzie zintegrowanym Na jeden bit danych potrzebny jest tylko jeden tranzystor i kondensator. 8
Pamięć dynamiczna DRAM Budowa pojedynczej komórki pamięci kolumna wiersz Płat pamięciowy RZĄD (Row) Pojedynczy płat (organizacja) X x Y x 1bit KOLUMNA (Column) Adres Liczba płatów = szerokość szyny danych RAS # CAS# WE# OE# CE# DRAM Dane RAS Row Adress Select CAS Column Adress Select WE Write Enable OE Output Enable CE Chip Enable Sposób adresowania słowa w pamięci DRAM Wejście adresowe RAS# Rejestr zatrzaskowy adresu wiersza Dekoder wierszy Dekoder kolumn CAS# Rejestr zatrzaskowy adresu kolumny 9
Odczyt z pamięci DRAM t a - czas dostępu t c - czas między cyklami PM -Page Mode t D RAS-CAS RAS CAS Wejście adresowe pamięci Adres wiersza Adres kolumny Adres wiersza S OE Wyjścia danych Dane FPM - Fast Page Mode Adres wiersza przekazywany do pamięci tylko 1 raz na 4 cykle dostępu. Pozostałe cykle mają ten sam adres wiersza a zmienia się adres kolumny X-X-X-X Pozostałe cykle RAS CAS ADR Czas trwania pierwszego cyklu Row-1 Col -1 Col -2 Col -3 Col -4 Wymiana danych w porcjach po kilka bajtów równocześnie odczyt WE DATA D.Out R1-C1 D.Out R1-C2 D.Out R1-C3 D.Out R1-C4 zapis 10
EDO - Extended Data Out Cykl dostępu do pamięci może się rozpocząć przed zakończeniem cyklu poprzedniego. Dane na wyjściu utrzymywane dłużej niż w PM i FPM. RAS CAS 5-2-2-2 ADR Row-1 Col -1 Col -2 Col -3 Col -4 Row-2 WE DATA D.Out R1-C1 D.Out R1-C2 D.Out R1-C3 D.Out R1-C4 BEDO - Burst EDO 5-1-1-1 uproszczony sposób adresowania. adres przekazywany raz na poczwórny cykl i odnosi się do początku obszaru. pozostałe adresy są generowane we wnętrzu układu. Ta sama matryca komórek Inny sposób sterowania Inna technika dostępu SDRAM (Synchroniczne DRAM) Głównie dostęp sekwencyjny Układy odświeżania zamknięte wewnątrz pamięci Dostęp podobnie jak w BEDO 5-1-1-1 Różnica uwidacznia się przy wzroście częst. PC-100, PC133 DDR-SDRAM Double Data Rate W każdym takcie zegara przekazywane dwa słowa danych Standard propagowany jako otwarty brak opłat licencyjnych Konstrukcja wewnętrznych chipów zbliżona do budowy pamięci SDRAM DDR2 SDRAM RDRAM VC-SDRAM HSDRAM 11
Dostęp do pamięci Od modelu 8088 do 80186 magistrala adresowa 20-bitowa 80286 magistrala adresowa 24-bitowa, pokrycie przestrzeni 16 MB (2 24 ) 80386DX magistrala adresowa 32-bitowa, pokrycie 4 GB (2 32 ) Pentium Pro, Pentium III magistrala adresowa 36-bitowa Obecnie magistrala adresowa 40-bitowa, adresowanie 1 TB (2 40 ) 2 20 = 1048576 kombinacji (adresów) 1048576 bajtów = 1MB Dwa 16-bitowe rejestry segment 1000110011101001 offset 1000110011101001 1000110011101001 segment + 0000 0000111011111011 offset Adres fizyczny Adres fizyczny = 16 * segment +offset Adres logiczny: para rejestrów Segment i Offset segment 1000110011101001 offset 1000110011101001 liczba Początek segmentu x 16 odległość Adres fizyczny Maksymalnie 65536 bajtów czyli 64 kb Offset - adres efektywny 12
Procesor zaopatrzony jest w rejestry segmentowe: CS - rejestr segmentowy programu DS - rejestr segmentowy danych SS - rejestr segmentowy stosu pamięć CS DS SS procesor kod programu dane 64 kb 64 kb CS = 1001001011101001 DS = 1101001011101101 SS = 1000000010001100 Program 1 CS = 1011001111111111 DS = 0001001011101101 SS = 1111000010001100 Program 2 stos 64 kb CS = 1111001011101001 DS = 0001001011101101 SS = 1001111010001100 Program 3 Tryb rzeczywisty pracy procesora (Real Mode) Wady : - program o rozmiarze max 64 kb - dwa różne adresy logiczne mogą wskazywać na ten sam adres fizyczny - segmenty mogą na siebie zachodzić a nawet się pokrywać - brak mechanizmów ochrony (utrudniona wielozadaniowość) Tryb chroniony pracy procesora (Protected Mode) - Ochrona poszczególnych zadań pracujących pod kontrolą wielozadaniowego systemu operacyjnego - Czteropoziomowy system uprawnień Microsoft Office Flash MX Adobe Photoshop Media Player 13
Wielozadaniowość (multitasking) Microsoft Office Flash MX Adobe Photoshop Media Player procesor Każdemu (procesowi) przyporządkowany jest kwant czasu. Im jest on dłuższy tym więcej czasu poświęca procesor na wykonywanie tego procesu (posiada on wyższy priorytet). W wielu systemach można zmieniać ten priorytet przydzielając procesom różną moc obliczeniową procesora. PAMIĘĆ WIRTUALNA Pamięć wirtualna mechanizm zarządzania pamięcią komputera zapewniający procesowi wrażenie pracy w jednym dużym, ciągłym obszarze pamięci operacyjnej podczas gdy fizycznie może być ona pofragmentowana, nieciągła i częściowo przechowywana na urządzeniach pamięci masowej. Systemy korzystające z tej techniki ułatwiają tworzenie rozbudowanych aplikacji oraz poprawiają wykorzystanie fizycznej pamięci RAM w systemach wielozadaniowych. 14
SEGMENTACJA Jedna z metod ochrony pamięci, używana przy wielozadaniowości. Każdy proces otrzymuje swój własny obszar pamięci, realizowany poprzez rejestry segmentowe. Segmentacja pamięci polega na podzieleniu przez procesor pamięci fizycznej na fragmenty o określonym początku, rozmiarze, atrybutach i identyfikatorze. System tworzy takie segmenty na żądanie aplikacji, przekazując jej jedynie identyfikatory niepozwalające na odczytanie parametrów segmentów. Programy odwołują się zatem do kolejnych komórek pamięci w ramach należących do nich segmentów, nie wiedząc nic o tym, w jakie miejsca pamięci fizycznej trafiają odwołania do nich. Procesy nie mają też prawa widzieć segmentów należących do innych programów w czasie przekazywania kontroli procesowi system musi zablokować definicje segmentów należących do pozostałych procesów, przy każdym przełączeniu blokując segmenty wyłączanego programu i na nowo uaktywniając segmenty programu aktywowanego. SEGMENTACJA Okazuje się jednak, że wady segmentacji przeważyły nad zaletami. Pierwsze implementacje segmentowanej pamięci wirtualnej narzucały dość poważne ograniczenia na rozmiary segmentów, zmuszając programistów do dzielenia kodu programów oraz bloków danych w sposób nienaturalny i utrudniając tworzenie naprawdę dużych struktur danych. W mikroprocesorach 80386 i późniejszych nie można wyłączyć mechanizmu segmentacji. Aby segmentację uczynić niewidoczną, Linux wykorzystuje jeden segment o adresie bazowym 0x0 i rozmiarze 4GB. W celu ochrony pamięci, zamiast segmentacji stosuje się mechanizm stronicowania, który jest niezależny od segmentacji. 15
SEGMENTACJA REJESTR SEGMENTOWY 16-bitowy REJESTR OFFSETOWY 32-bitowy 13 bitów Wskaźnik do tablicy Segment Descriptor 8 BAJTÓW... 2 14 = 16384 Deskryptor segmentu zawiera inf. na temat lokalizacji i rozmiaru segmentu 2 bity - prawa dostępu do segmentu (4 poz.) 1 bit - rodzaj tablicy (lokalna globalna) = 64 bity 20 bitów rozmiar segmentu 32 bity adres bazowy segmentu 12 bitów granulacja i reszta 2 20 = 1 MB 1 B 2 20. 2 12 = 2 32 = 4GB 4 kb + ADRES LINIOWY 32-bitowy < BŁĄD 2 14. 2 32 = 64TB Nie jest możliwe wykonanie tak wielkiej pamięci operacyjnej > koszty > sterowanie > zasilanie RAM pamięć operacyjna Nośnik magnetyczny (pamięć masowa) Winamp PAMIĘĆ Winamp Winamp Corel program Draw Corel Draw dane MS Word > za duże segmenty > za dużo do przerzucania między pam. operacyjną a masową > niewykorzystane fragmenty pamięci (fragmentacja zewnętrzna) 16
Tryb wirtualny pracy procesora (Virtual Mode) 10 bitów 10 bitów 2 3 KATALOG STRON 12 bitów RAMKA NR 6 STRONICOWANIE 0 1 2 3 4 24 1 123 6 7 4 kb 4 kb...... 8 4 kb TABLICA STRON 0 1 2 9 4 kb 0 1 2 3... 221 24 45 65... 0 1 2 3... 8 24 12 7... 0 1 2 3... 221 24 45 65...... 10 Pamięć fizyczna 4 kb ADRES WIRTUALNY PAMIĘĆ OPERACYJNA PRZESTRZEŃ ADRESÓW WIRTUALNYCH STRONA OFFSET RAMKA 0 A W NIEJ STRONA 1 STRONA 0 RAMKA 1 PUSTA STRONA 1 Nr ramki RAMKA 2 A W NIEJ STRONA 0 RAMKA 3 A W NIEJ STRONA 5 STRONA 2 STRONA 3 RAMKA 4 PUSTA STRONA 4 RAMKA 5 PUSTA STRONA 5 Adres fizyczny = Nr ramki * 4kB + Offset STRONA 6... 17
Tworzenie adresu fizycznego Adres logiczny SEGMENTACJA Adres liniowy Adres fizyczny STRONICOWANIE Adres fizyczny Coraz wyższe prędkości pracy procesorów wymagają zwiększenia prędkości działania układów pamięciowych. Procesor musi czekać coraz dłużej na kolejną porcję danych PAMIĘĆ PODRĘCZNA (CACHE) Ograniczenia: > cena > technologia Pamięć operacyjna Duża, tania, wolna: dziesiątki ns CACHE Mała szybka i nie tak bardzo droga kilka ns PROCESOR PROCESOR L1 CACHE L1 L2 L3 Badania dowiodły, iż większość odwołań do pamięci mieści się w bloku 16 kb. 18
Różne topologie Look-Aside CPU RAM CACHE X86 do Pentium MMX L1 w procesorze (taktowana tym samym zegarem) L2 dołączona równolegle do magistrali Częstotliwość Cache i RAM taka sama Krótszy czas dostępu Look-Through (Inline Cache) CPU CACHE RAM Dwie magistrale Inna częstotliwość dla Cache i RAM Różne topologie cd. Backside CPU BSB - Back Side Bus CACHE RAM FSB - Front Side Bus Najnowsze architektury BSB niezależna magistrala Kompromis między szybkością a pojemnością L2 19
Organizacja pamięci podręcznej Cache zorganizowana w Cache Lines o rozmiarach 16 lub 32 bajty (najmniejsza porcja informacji wymieniana z RAM). Dla Cache RAM jest zbiorem linijek pogrupowanych w zespoły zwane stronami TAG-RAM - katalog pamięci podręcznej, które linijki z RAM są w Cache u Linijka (Cache Lines) 16 lub 32 bajty Strona Mapowanie bezpośrednie (Direct Mapped) Strona 0 Strona 1 Strona 2 Strona 3 Pamięć główna Strona 3 Pamięć podręczna Rozmiar bloku pamięci podręcznej równy jest rozmiarowi strony Prosta konstrukcja i duża szybkość odszukiwania informacji Brak elastyczności przy skokach poza granice stron 20
Pełna asocjacja (Fully Associative) 1 2 3 4 5 Pamięć główna 3 4 9 7 8 9 1 2 Pamięć podręczna Operuje się wyłącznie linijkami (brak symbolicznego podziału na strony) Odszukanie informacji w Cache u wymaga przeszukania całej tablicy TRAM Rozwiązanie dla Cache u mniejszego od 4KB Asocjacja zespołowa (Set Associative) Strona 0 Strona 1 Strona 2 Strona 3 Pamięć główna Kanał 0 Kanał 1 Pamięć podręczna Podział pamięci podręcznej na równe porcje (2, 4 lub 8 kanałów) Rozmiar strony w RAM jest równy rozmiarowi kanału w Cache Układ 8-kanałowy w procesorach Pentium 4 Cache Hit - trafienie - obecność danych w pamięci podręcznej Cache Miss - brak trafienia - uruchamiana jest magistrala pamięciowa i sprowadzana jest nowa linijka 21
Dziękuję za uwagę 22