Organizacja pamięci
Transkrypt
Organizacja pamięci
PODSTAWY INFORMATYKI dr inż. Krzysztof Małecki Magistrala Procesor Pamięć Układy I/O ADRES 125 126 127 128 129 130 289 290 291 292 293 294 295 296 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 ... 10101101 10101101 10101101 10000001 10101101 10011101 ... 10101101 PAMIĘĆ ... 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 210 bajtów = 1 kB 1024 bajty = 1 kB 220 bajtów = 1 MB 1 048 576 bajty = 1 MB 230 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 program dane • Pamięć 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. promieniami UV. Programowanie w programatorach. Kasowanie specjalnych 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 xDPicture Cards, dyski USB. 5 Organizacja pamięci Wprowadzanie i wyprowadzanie informacji do i z pamięci n Szyna danych DB m Szyna adresowa Dokonywanie wyboru na którym słowie dokonujemy operacji AB PAMIĘĆ R/W# CS# Rodzaj operacji R - czytanie W - zapis Adres Uaktywnienie układu pamięci 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 16 bitów Długość słowa Ilość bitów w pojedynczym słowie 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 16 m PAMIĘĆ Długość słowa = ilość wyprowadzeń szyny danych N - liczba słów przechowywanych w pamięci m - liczba linii szyny adresowej Aby zaadresować N słów potrzeba M - pojemność pamięci n - długość słowa N=2m m = log2 N linii szyny adresowej M = n . N = n .2m 6 Różne organizacje pamięci D0 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 Organizacja bitowa 32 x 1b A1 A0 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 D7 D6 D5 D4 D3 D2 D1 D0 20 ADRES CS# R/W# CS# R/W# D0 D1 D2 D3 CS# R/W# D0 D1 D2 D3 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 D3 - D0 256k x 4b CS# 256k x 4b R/W# CS# 256k x 4b R/W# CS# 256k x 4b R/W# CS# R/W# Dekoder 18 R/W# A19 A18 A17 - A0 Technologia wykonania Statyczna SRAM Dynamiczna DRAM prostota budowy duże pojemności Wolniejsza wymaga odświeżania tańsza droga szybka gorsza do scalenia Static RAM Dynamic RAM Asynchronous SRAM Synchronous SRAM Burst SRAM 8.5 ns - 12 ns Pipelined burst SRAM 4.5 ns - 8 ns 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 Płat pamięciowy Budowa pojedynczej komórki pamięci RZĄD (Row) wiersz Pojedynczy płat (organizacja) kolumna X x Y x 1bit KOLUMNA (Column) Liczba płatów = szerokość szyny danych Adres Dane RAS # CAS# DRAM WE# OE# RAS – Row Adress Select CAS – Column Adress Select WE – Write Enable OE – Output Enable CE – Chip Enable CE# 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 PM -Page Mode Odczyt z pamięci DRAM tc - czas między cyklami ta - czas dostępu tD 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 Czas trwania pierwszego cyklu Wymiana danych w porcjach po kilka bajtów równocześnie RAS CAS ADR Row-1 Col -1 Col -2 Col -3 Col -4 odczyt WE DATA zapis D.Out R1-C1 D.Out R1-C2 D.Out R1-C3 D.Out R1-C4 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 5-2-2-2 CAS 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. SDRAM (Synchroniczne DRAM) Ta sama matryca komórek Inny sposób sterowania Inna technika dostępu 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 (224) • 80386DX magistrala adresowa 32-bitowa, pokrycie 4 GB (232) • Pentium Pro, Pentium III magistrala adresowa 36-bitowa • Obecnie magistrala adresowa 40-bitowa, adresowanie 1 TB (240) 220 = 1048576 kombinacji (adresów) 1048576 bajtów = 1MB segment Dwa 16-bitowe rejestry offset 1000110011101001 1000110011101001 Adres fizyczny = 16 * segment +offset + 1000110011101001 segment 0000 0000111011111011 offset Adres logiczny: para rejestrów Segment i Offset Adres fizyczny 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 pamięć Procesor zaopatrzony jest w rejestry segmentowe: CS - rejestr segmentowy programu DS - rejestr segmentowy danych SS - rejestr segmentowy stosu 64 kB procesor kod programu CS DS SS 64 kB dane CS = 1001001011101001 DS = 1101001011101101 SS = 1000000010001100 Program 1 CS = 1011001111111111 DS = 0001001011101101 SS = 1111000010001100 Program 2 CS = 1111001011101001 DS = 0001001011101101 SS = 1001111010001100 Program 3 stos 64 kB 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 wykorzystanie fizycznej aplikacji pamięci oraz RAM w poprawiają 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 2 bity - prawa dostępu do segmentu (4 poz.) 1 bit - rodzaj tablicy (lokalna globalna) 13 bitów Wskaźnik do tablicy Segment Descriptor 8 BAJTÓW REJESTR OFFSETOWY 32-bitowy < = 64 bity 20 bitów rozmiar segmentu ... 220 . 212 32 bity adres bazowy segmentu 12 bitów granulacja i reszta 220 = 1 MB = 232 = 4GB 1B 4 kB 214 = 16384 + Deskryptor segmentu zawiera inf. na temat lokalizacji i rozmiaru segmentu ADRES LINIOWY 32-bitowy Nie jest możliwe wykonanie tak wielkiej pamięci operacyjnej > koszty > sterowanie > zasilanie BŁĄD 214 . 232 = 64TB Nośnik magnetyczny (pamięć masowa) RAM pamięć operacyjna Winamp Winamp Winamp PAMIĘĆ 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 12 bitów STRONICOWANIE 2 3 RAMKA NR 6 KATALOG STRON 0 1 2 3 4 24 1 123 ... ... TABLICA STRON 0 1 2 3 0 1 221 24 45 65 0 1 2 3 Nr ramki 3 PAMIĘĆ OPERACYJNA 221 24 45 65 ... OFFSET 0 1 2 ... STRONA 8 24 12 7 ... ... ... ... ADRES WIRTUALNY 2 ... 6 4 kB 7 4 kB 8 4 kB 9 4 kB 10 4 kB Pamięć fizyczna PRZESTRZEŃ ADRESÓW WIRTUALNYCH RAMKA 0 A W NIEJ STRONA 1 STRONA 0 RAMKA 1 PUSTA STRONA 1 RAMKA 2 A W NIEJ STRONA 0 STRONA 2 RAMKA 3 A W NIEJ STRONA 5 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) Pamięć operacyjna CACHE Duża, tania, wolna: dziesiątki ns Mała szybka i nie tak bardzo droga kilka ns Ograniczenia: > cena > technologia PROCESOR CACHE PROCESOR L1 L2 L3 L1 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 X86 do Pentium MMX L1 w procesorze (taktowana tym samym zegarem) CACHE L2 dołączona równolegle do magistrali Częstotliwość Cache i RAM taka sama RAM 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 BSB - Back Side Bus CPU FSB - Front Side Bus RAM CACHE 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 Strona 3 Pamięć główna 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 Kanał 0 Kanał 1 Strona 3 Pamięć główna 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