PODSTAWY INFORMATYKI dr inż. Krzysztof Małecki Magistrala Procesor Pamięć Układy I/O PAMIĆ ... ... ... 300 ADRES 125 126 127 128 129 130 289 290 291 292 293 294 295 296 297 298 299 Pamięci półprzewodnikowe Cyfrowe układy scalone przeznaczone do przechowywania dużej ilości informacji w postaci binarnej. 1 10011101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10101101 10000001 Podstawowe parametry Pojemność Maksymalna ilość informacji jaką możemy przechować w danej pamięci podawana w bitach(b) lub bajtach(B). najbardziej najmniej znaczący bit 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 Dostęp swobodny Czas dostępu nie zależy od Pamięci taśmowe adresu słowa w pamięci, czyli głowica 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, dzwię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ózniej 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ózniej zaczęto ich używać w innych typach, jak: Secure Digital, Memory Stick i xD- Picture Cards, dyski USB. 5 Organizacja pamięci n Wprowadzanie i wyprowadzanie Szyna danych DB informacji do i z pamięci m Szyna adresowa AB PAMIĆ R/W# Dokonywanie wyboru CS# na którym słowie dokonujemy operacji Rodzaj operacji R - czytanie W - zapis Uaktywnienie układu pamięci Adres 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 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 słowie 16 PAMIĆ m Długość słowa = ilość wyprowadzeń szyny danych N - liczba słów przechowywanych w pamięci m - liczba linii szyny adresowej N = 2 m Aby zaadresować N słów potrzeba linii szyny adresowej m = log2 N M - pojemność pamięci n - długość słowa . 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 A1 A0 Organizacja bitowa Organizacja bajtowa 32 x 1b 4 x 1B Aą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 D0 D1 CS# CS# D2 R/W# R/W# D3 D0 D1 CS# D2 R/W# 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 256k x 4b 256k x 4b 256k x 4b CS# R/W# CS# R/W# CS# R/W# CS# R/W# Dekoder 18 R/W# A19 A18 A17 - A0 Technologia wykonania Statyczna SRAM Dynamiczna DRAM prostota budowy droga duże pojemności szybka Wolniejsza gorsza do scalenia wymaga odświeżania tańsza Static RAM Dynamic RAM Asynchronous SRAM każdy bit danych jest przechowywany w zmiennej Synchronous SRAM lokalizacji w oddzielnym kondensatorze w obwodzie 8.5 ns - 12 ns Burst SRAM zintegrowanym 4.5 ns - 8 ns Pipelined burst SRAM 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 RZD (Row) wiersz Pojedynczy płat (organizacja) kolumna X x Y x 1bit KOLUMNA (Column) Liczba płatów = szerokość szyny danych Adres Dane RAS Row Adress Select RAS # CAS Column Adress Select DRAM CAS# WE Write Enable WE# OE Output Enable OE# CE Chip Enable CE# Sposób adresowania słowa w pamięci DRAM Rejestr Wejście zatrzaskowy Dekoder adresowe adresu wierszy wiersza RAS# Dekoder kolumn Rejestr zatrzaskowy adresu kolumny CAS# 9 Odczyt z pamięci DRAM PM -Page Mode tc - czas między cyklami ta - czas dostępu tD RAS-CAS RAS CAS Wejście Adres wiersza Adres kolumny Adres wiersza adresowe pamięci S OE Wyjścia Dane danych 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 RAS porcjach po kilka CAS bajtów równocześnie ADR Row-1 Col -1 Col -2 Col -3 Col -4 odczyt WE zapis D.Out D.Out D.Out D.Out DATA R1-C1 R1-C2 R1-C3 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 D.Out D.Out D.Out R1-C1 R1-C2 R1-C3 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 Głównie dostęp sekwencyjny Inny sposób sterowania Układy odświeżania zamknięte wewnątrz pamięci Inna technika dostępu 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 VC-SDRAM RDRAM 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 offset 1000110011101001 1000110011101001 Dwa 16-bitowe rejestry Adres fizyczny = 16 * segment +offset segment 1000110011101001 0000 Adres logiczny: para rejestrów Segment i Offset offset 0000111011111011 + Adres fizyczny segment offset 1000110011101001 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: pamięć 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 Program 1 SS = 1000000010001100 CS = 1011001111111111 stos DS = 0001001011101101 Program 2 64 kB SS = 1111000010001100 CS = 1111001011101001 DS = 0001001011101101 Program 3 SS = 1001111010001100 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ózniejszych 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 2 bity - prawa dostępu do segmentu (4 poz.) 13 bitów Wskaznik do tablicy 1 bit - rodzaj tablicy (lokalna globalna) Segment Descriptor < 8 BAJTÓW = 64 bity 20 bitów 32 bity adres 12 bitów rozmiar segmentu bazowy segmentu granulacja i reszta BAD 220 = 1 MB 1 B 220 . 212 = 232 = 4GB 4 kB + 214 = 16384 Deskryptor segmentu zawiera inf. na temat ADRES LINIOWY 32-bitowy lokalizacji i rozmiaru segmentu 214 . 232 = 64TB Nie jest możliwe wykonanie tak wielkiej pamięci operacyjnej > koszty > sterowanie Nośnik magnetyczny RAM (pamięć masowa) pamięć operacyjna > zasilanie Winamp Winamp Winamp PAMIĆ Corel Draw Corel Draw MS Word program 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 6 4 kB 4 0 24 1 2 1 7 4 kB 3 123 8 4 kB 0 1 2 TABLICA STRON 9 4 kB 221 8 221 0 0 0 24 24 24 1 1 1 10 4 kB ... 2 2 2 45 12 45 3 3 3 65 7 65 Pamięć fizyczna PRZESTRZEC ADRESÓW WIRTUALNYCH PAMIĆ OPERACYJNA ADRES WIRTUALNY RAMKA 0 STRONA OFFSET A W NIEJ STRONA 0 STRONA 1 RAMKA 1 STRONA 1 PUSTA RAMKA 2 Nr ramki A W NIEJ STRONA 2 STRONA 0 RAMKA 3 A W NIEJ STRONA 3 STRONA 5 RAMKA 4 STRONA 4 PUSTA RAMKA 5 STRONA 5 PUSTA STRONA 6 Adres fizyczny = Nr ramki * 4kB + Offset 17 ... ... ... ... ... ... ... ... ... Tworzenie adresu fizycznego Adres logiczny logiczny SEGMENTACJA Adres liniowy Adres fizyczny liniowy Adres STRONICOWANIE Adres fizyczny fizyczny Coraz wyższe prędkości pracy procesorów wymagają zwiększenia prędkości działania układów pamięciowych. Ograniczenia: Procesor musi czekać coraz dłużej na kolejną porcję danych > cena > technologia PAMIĆ PODRCZNA (CACHE) Pamięć CACHE PROCESOR operacyjna Duża, tania, Mała szybka wolna: i nie tak bardzo droga dziesiątki ns kilka ns 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 CACHE FSB - Front Side Bus Najnowsze architektury BSB niezależna magistrala RAM 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