Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych Wykład I Podstawowe pojęcia Pamięci półprzewodnikowe 1
Część 1 Podstawowe pojęcia 2
I. Pojęcie komputera Cyfrowe dane 3 Wewnątrz komputera informacja ma postać fizycznych sygnałów dwuwartościowych (np. dwa poziomy napięcia, dwa kierunki namagnesowania, dwie fazy przebiegu okresowego), którym można przypisać np. symbole 0 i 1. Każdy komunikat musi być przedstawiony jako łańcuch zerojedynkowy określonej długości (słowo).
I. Pojęcie komputera Cyfrowe dane 4
I. Pojęcie komputera Układy cyfrowe 5
I. Pojęcie komputera Układy cyfrowe Układy cyfrowe służą do przetwarzania informacji. Do układu podajemy dane. Układ wykonuje na danych określone operacje. Układ zwraca wyniki. Układ cyfrowy to nie to samo co procesor czy nawet ALU. Pojęcie Układu cyfrowego obejmuje każde urządzenie elektroniki i automatyki spełniające powyższe funkcje. 6
I. Pojęcie komputera KOMPUTER PROGRAM Każdy komputer porównać można do czarnej skrzynki. W tym modelu widać, że zarówno surowcem", jak i produktem" komputera jest informacja, przy czym - ze względu na olbrzymią różnorodność jej postaci - musi być ona przekształcana: na wejściu do postaci wymaganej przez maszynę, a na wyjściu do postaci czytelnej dla użytkownika 7
I. Pojęcie komputera KOMPUTER Specjalizowany układ cyfrowy Komputer PROGRAM 8
I. Pojęcie komputera Jak opisujemy komputer? Przy opisie komputera przyjmuje się zwykle trzy poziomy abstrakcji : architektura, implementacja; realizacja. Te same poziomy występują przy projektowaniu; wprawdzie są one wzajemnie zależne, lecz realizowane przez osobne zespoły i wymagające od twórców innej wiedzy, stosujące inne narzędzia i inaczej dokumentowane 9
I. Pojęcie komputera Opis komputera poziomy abstrakcji Poglądowo można powiedzieć, że: realizacja określa z czego maszyna jest zbudowana, implementacja - jaka jest jej struktura i jak działa, architektura opisuje zachowanie się z punktu widzenia użytkownika. 10
I. Pojęcie komputera Opis komputera poziomy abstrakcji Aplikacje Języki wysokiego poziomu Asemblery BIOS Sprzęt 11
I. Pojęcie komputera Opis komputera poziomy abstrakcji Z punktu widzenia użytkownika, komputer jest postrzegany poprzez język, w jakim się z nim komunikuje - jako pewna maszyna wirtualna. Może być nieistotne, jaka ta maszyna jest naprawdę" - jaki jest procesor, jaki jest system operacyjny, jakie jest inne oprogramowanie. 12
I. Pojęcie komputera Model von Neumana Strukturę blokową większości komputerów, przeszłych i obecnych, przedstawia tzw. model von Neumanna, zaproponowany w roku 1945, zanim zbudowano jakikolwiek komputer w obecnym tego słowa znaczeniu. 13
I. Pojęcie komputera Model von Neumana Model ten jest implementacją czysto matematycznej konstrukcji zwanej maszyną Turinga. 14
I. Pojęcie komputera Model von Neumana Model von Neumanna wyróżnia pięć bloków funkcjonalnych: pamięć (M), blok operacyjny nazywany jednostką arytmetyczno-logiczną (ALU), centralne sterowanie (CC) wejście (input) i wyjście (output). Zespół przetwarzający złożony z bloku operacyjnego i centralnego sterowania stanowi procesor centralny (CPU) 15
I. Pojęcie komputera Model von Neumana Model von Neumanna wyróżnia pięć bloków funkcjonalnych: pamięć (M), blok operacyjny nazywany jednostką arytmetyczno-logiczną (ALU), centralne sterowanie (CC) wejście (input) i wyjście (output). Zespół przetwarzający złożony z bloku operacyjnego i centralnego sterowania stanowi procesor centralny (CPU) 16
I. Pojęcie komputera Model von Neumana Pamięć Dane i rozkazy CPU Pamięć danych Pamięć Rozkazów CPU Podstawowym założeniem, stanowiącym cześć definicji komputera, jest przechowywanie zarówno danych (argumentów operacji i ich wyników), jak i rozkazów (informacji sterującej przetwarzaniem) we wspólnej pamięci. 17
I. Pojęcie komputera Model von Neumana Pamięć Dane i rozkazy CPU Pamięć danych Pamięć Rozkazów CPU Jednolitość postaci informacji przetwarzanej i kodu sterującego umożliwia modyfikacje programu w czasie jego wykonywania. Ta właśnie cecha decyduje o niebywałej uniwersalności komputerów 18
I. Pojęcie komputera NAJPROSTRSZY MODEL KOMPUTERA CPU (mikroprocesor zegar i sterownik magistrali) PAMIĘĆ ROM RAM I/O 19
I. Pojęcie komputera NAJPROSTRSZY MODEL KOMPUTERA CPU (mikroprocesor zegar i sterownik magistrali) PAMIĘĆ I/O 20
I. Pojęcie komputera NAJPROSTRSZY MODEL KOMPUTERA CPU (mikroprocesor zegar i sterownik magistrali) W skład CPU wchodzą: mikroprocesor, zegar oraz opcjonalnie sterownik magistrali oraz koprocesor matematyczny. Zegar systemowy tworzy przebiegi czasowe synchronizujące pracę wszystkich elementów systemu. Sterownik magistrali jest specjalizowanym układem który na podstawie informacji otrzymanych z mikroprocesora sygnały sterujące pracą pamięci układów we/wy i innych. 21
I. Pojęcie komputera NAJPROSTRSZY MODEL KOMPUTERA CPU (mikroprocesor zegar i sterownik magistrali) Zadaniem CPU oprócz przetwarzania informacji jest także sterowanie pracą pozostałych układów systemu. Wszystkie działania i operacje w systemie są sterowane lub zainicjowane przez procesor. Działanie jest skutkiem ciągu instrukcji dostarczonych do mikroprocesora czyli programu. 22
I. Pojęcie komputera NAJPROSTRSZY MODEL KOMPUTERA PAMIĘĆ ROM RAM Program musi być przechowywany w pamięci o krótkim czasie dostępu (pamięć półprzewodnikowa ROM). Pamięci masowa nie nadają się - mają zbyt długi czas dostępu. W każdym systemie komputerowym musi istnieć pomięć stała (RAM), która przechowuje instrukcję (niewielki fragment kodu), od której procesor startuje (wykonuje ja po załączeniu zasilania). 23
I. Pojęcie komputera Magistrala Magistralą nazywamy zestaw linii oraz układów przełączających, łączących dwa lub więcej układów mogących być nadajnikami lub odbiornikami informacji. Przesyłanie informacji zachodzi zawsze pomiędzy dokładnie jednym układem będącym nadajnikiem a dokładnie jednym układem będącym odbiornikiem, przy pozostałych układach odseparowanych od linii przesyłających. 24
Część 2 Pamięci półprzewodnikowe 25
Pamięci półprzewodnikowe Pamięciami półprzewodnikowymi nazywamy cyfrowe układy scalone przeznaczone do przechowywania większych ilości informacji w postaci binarnej. Pojemnością pamięci nazywamy maksymalną ilość informacji, jaką możemy przechować w danej pamięci. 26
Pamięci półprzewodnikowe Pamięcią o dostępie swobodnym nazywamy pamięć, dla której czas dostępu praktycznie nie zależy od adresu słowa w pamięci, czyli od miejsca, w którym jest przechowywana informacja, UWAGA: Pamięci ROM są pamięciami o dostępie swobodnym w przeciwieństwie do pamięci o dostępie sekwencyjnym (kolejki danych, pamięci taśmowe), czy pamięci o dostępie blokowym (pamięci masowe). 27
Pamięci półprzewodnikowe Pamięcią RAM nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczaną do zapisu i odczytu. Pamięć RAM jest pamięcią ulotną, co ozna cza, że po wyłączeniu jej zasilania informacja w niej przechowywana jest tracona. Pamięcią ROM nazywamy pamięć półprzewodnikową o dostępie swobodnym, której zapis następuje na innej drodze niż odczyt (dawniej pamięć tylko do odczytu). Pamięć ROM jest pamięcią nieulotną. 28
Pamięci półprzewodnikowe Ze względu na technologię wykonania, pamięci RAM dzielimy na dwie podstawowe grupy: pamięci dynamiczne DRAM pamięci statyczne - SRAM. Pamięci dynamiczne są pamięciami wolniejszymi ale tańsze od pamięci statycznych. Pamięci dynamiczne znacznie łatwiej podlegają scalaniu, co oznacza, że dla porównywalnej wielkości układu uzyskujemy w nich znacznie większe pojemności. Wadą pamięci dynamicznych jest fakt, że dla poprawnego ich funkcjonowania konieczny jest tak zwany proces odświeżania. Polega on na cyklicznym, ponownym zapisie przechowywanej informacji do komórek tej pamięci. 29
Pamięci półprzewodnikowe Informacje przechowywane są w pamięci DRAM pod postacią ładunku zgromadzonego przez kondensator. Kondensator naładowany 1 Kondensator rozładowany 0 http://www.bryk.pl/teksty/liceum/pozosta%c5%82 e/informatyka/ Komórka (bit) pamięci dynamicznej to zaledwie 2 jeden tranzystor i 2 kondensatory. 30
Pamięci półprzewodnikowe Gdy linia słowa jest w stanie "1", tranzystory są włączone. Gdy linia słowa jest w stanie "0", tranzystory są wyłączone. Przerzutnik statyczny w komórce pamięci trwa w stanie, jaki został ostatnio zapisany. http://vlsi.imio.pw.edu.pl/pmk/pmk_w7_3.html Każda komórka (bit) pamięci statycznej składa się z kilku bramek logicznych i tranzystorów. 31
Pamięci półprzewodnikowe Pamięci dynamiczne stosowane są do budowy głównej pamięci operacyjnej komputera (RAM). Szybkie pamięci statyczne stosowane są do budowy pamięci podręcznej (cache) 32
Kości pamięci DB - Szyna wejścia/wyjścia danych służy do wprowadzania i wyprowadzania informacji do i z pamięci. AB - Wejście adresowe służy do dokonania wyboru, na którym z wielu słów w pamięci zastanie wykonana operacja (zapisu bądź odczytu). R/W# - Wejście sterujące informuje układ pamięci, jakiego rodzaju operacja będzie wykonywana: odczyt czy zapis. CS# - służy do uaktywnienia układu pamięci. Wejście to jest używane przy budowie zespołów pamięci metodą łączenia dwóch lub więcej układów scalonych pamięci. 33
Organizacja pamięci Adresem nazywamy niepowtarzalną liczbę (numer) przypisaną danemu miejscu (słowu) w pamięci celem jego identyfikacji Słowem w pamięci nazywamy zestaw pojedynczych komórek pamięci, do którego odwołujemy się pojedynczym adresem. Organizacją pamięci nazywamy sposób podziału obszaru pamięci na słowa. 34
Organizacja pamięci Z warunku niepowtarzalności adresu wynika minimalna ilość linii szyny adresowej: Przy m-bitowej szynie danych mamy do dyspozycji 2 m rożnych adresów. N =2 m M = n * 2 m gdzie: m szerokość magistrali N ilość słów n długość słowa M Pojemność pamięci 35
Organizacja pamięci Pamięci na obu rysunkach mają tą samą pojemność (32b). Różnią się natomiast organizacją. Pamięć z rysunku a) ma organizację bitową. Możemy o niej powiedzieć, że jest to pamięć 32 x 1b. Pamięć z rysunku b) ma organizacje bajtową, czyli jest to pamięć 4 x 8b (lub inaczej 4 x 1B). 36
Łączenie układów pamięci Budowa bloków (banków) pamięci polega na łączeniu układów scalonych pamięci o określonej pojemności i organizacji w ten sposób, aby uzyskać zespoły pamięci o większej pojemności i/lub o zmienionej długości słowa. Stąd problem rozbudowy pamięci możemy podzielić na dwa podstawowe przypadki: zwiększanie (rozszerzanie) długości słowa przy niezmienionej ilości słów zwiększanie ilości słów przy niezmienionej długości słowa. Oczywiście obydwa przypadki mogą występować (i w praktyce często występują) jednocześnie. 37
Łączenie układów pamięci Zwiększanie długości słowa 38
Łączenie układów pamięci W celu zwiększenia długości słowa pamięci szerszą magistralę danych budujemy z bitów linii danych kolejnych układów scalonych pamięci, natomiast magistralę adresową i sygnały sterujące łączymy równolegle. We wszystkich połączonych układach, wybieramy słowa położone w takim samym miejscu. Wszystkie układy dostają te same sygnały sterujące. Wszystkie układy są równocześnie uaktywnione (sygnałcs#). Na wszystkich słowach składowych wykonujemy tę samą operację, zapis lub odczyt, (ten sam sygnał R/W#) 39
Łączenie układów pamięci Zwiększenie liczby słów w pamięci (zwiększenie pojemności pamięci) Bity A19 i A18 adresu, podawane na dekoder, uaktywniają dokładnie jedno z jego czterech wyjść. Powoduje to uaktywnienie dokładnie jednego układu scalonego pamięci. W ramach tego układu przy pomocy pozostałych bitów adresu wybieramy słowo, na którym zostanie wykonana operacja zapisu bądź odczytu. 40
Łączenie układów pamięci Zwiększenie ilości słów pamięci oznacza zwiększenie ilości potrzebnych adresów, a co za tym idzie - rozbudowę szyny adresowej o dodatkowe bity potrzebne do uzyskania tych adresów. Przy niezmienionej długości słowa szyna danych pozostaje bez zmian. Dodatkowe bity adresu służą, przy wykorzystaniu dekodera, do wyboru jednego z łączonych układów pamięci, z którego odczytamy lub do którego zapiszemy informacje. Wyboru dokonujemy przy użyciu wejścia CS# uaktywniającego układy scalone pamięci. Magistrale adresowe, danych i sygnały sterujące układów, z których budujemy nowy blok pamięci, łączymy równolegle. 41
Obsługa pamięci DRAM Sposób adresowania słowa w pamięci DRAM Wyprowadzenia pamięci DRAM 42
Obsługa pamięci DRAM Adres słowa, na którym chcemy wykonać operacje, podawany jest w dwóch równych częściach zwanych adresem wiersza i adresem kolumny. Zmniejsza to ilość potrzebnych wyprowadzeń szyny adresowej i upraszcza konstrukcję dekoderów adresu. 43
Operacja odczytu dla pamięci DRAM 44
Odświeżanie pamięci DRAM Czas, jaki upływa od momentu podania prawidłowego adresu przez zarządcę magistral do momentu pojawienia się poprawnych danych na magistrali adresowej, nazywamy czasem dostępu (t a ). Po odczycie zawartości słowa musi upłynąć kolejny odcinek czasu potrzebny do doładowania komórek pamięci odczytywanego słowa (ang. precharge delay). Dopiero wówczas może się rozpocząć kolejny cykl dostępu do pamięci. Odświeżanie komórek pamięci DRAM polega na cyklicznym doładowywaniu pojemności pamiętających przechowujących wartość 1. 45
Dostęp w trybie stronicowanym Dostęp do pamięci w trybie stronicowania jest sposobem na przyspieszenie współpracy z pamięcią DRAM. Wykorzystuje się tu dwa fakty. 1. Większość odczytów dokonywana jest spod kolejnych, położonych koło siebie adresów. Oznacza to, że starsza część adresu, adres wiersza, nie zmienia się, a zmienia się jedynie adres kolumny. 2. Czas przesłania adresu wiersza stanowi około 50% czasu dostępu. Jeżeli przy odczytach kolejnych słów nie będziemy zmieniać adresu wiersza, a jedynie adres kolumny, to czas dostępu do pamięci ulegnie skróceniu. 46
Dostęp w trybie stronicowanym Realizacja efektywnego trybu ze stronicowaniem wymaga od procesora możliwości adresowania potokowego, czyli możliwości podania adresu następnego słowa jeszcze w czasie realizacji dostępu do słowa poprzedniego. 47
Dostęp w trybie seryjnym (bust) Dostęp w trybie seryjnym (ang. bursf) stosowany jest przy współpracy pamięci głównej z pamięcią cache. Pamięć ta odczytuje bądź zapisuje informacje liniami, których długość zależy od rozwiązania pamięci cache. Przykładowo dla systemów z procesorem 80486 wynosi 16 bajtów. Ponieważ procesor ten ma magistrale danych 32-bitową (4 bajty), do wypełnienia linii potrzeba 4 dostępów do pamięci. Operacje te dotyczą jednak kolejnych, leżących obok siebie słów. Oznacza to, że adres wiersza nie będzie się zmieniał, zaś adres kolumny przy każdym kolejnym dostępie będzie większy o jeden. 48
Dostęp w trybie seryjnym (bust) Dostęp w trybie seryjnym (ang. bursf) stosowany jest przy współpracy pamięci głównej z pamięcią cache. Pamięć ta odczytuje bądź zapisuje informacje liniami, których długość zależy od rozwiązania pamięci cache. Przykładowo dla systemów z procesorem 80486 wynosi 16 bajtów. Ponieważ procesor ten ma magistrale danych 32-bitową (4 bajty), do wypełnienia linii potrzeba 4 dostępów do pamięci. Operacje te dotyczą jednak kolejnych, leżących obok siebie słów. Oznacza to, że adres wiersza nie będzie się zmieniał, zaś adres kolumny przy każdym kolejnym dostępie będzie większy o jeden. 49
Synchroniczna pamięć RAM SRAM (S = Synchroniczne) Wszystkie sygnały sterujące pamięci SDRAM synchronizowane są przez jeden przebieg zegarowy. Ułatwia to współpracę pamięci z magistralami. Sygnał taktujący pozwala na dokładne zsynchronizowanie ze sobą operacji wykonywanych przez pamięć i jej kontroler umożliwia to skrócenie czasu przeznaczonego na te operacje, a więc przyspieszenie działania pamięci. Obsługa odświeżania pamięci przeniesiona została do wnętrza kości. Każdy chip wyposażony jest we własny generator pobudzający w odpowiednim rytmie wszystkie komórki pamięci. Powoduje to odciążenie kontrolera pamięci i umożliwia dalsze przyspieszenie jej pracy. 50
Synchroniczna pamięć RAM SRAM (S = Synchroniczne) Wszystkie sygnały sterujące pamięci SDRAM synchronizowane są przez jeden przebieg zegarowy. Ułatwia to współpracę pamięci z magistralami. Sygnał taktujący pozwala na dokładne zsynchronizowanie ze sobą operacji wykonywanych przez pamięć i jej kontroler umożliwia to skrócenie czasu przeznaczonego na te operacje, a więc przyspieszenie działania pamięci. Obsługa odświeżania pamięci przeniesiona została do wnętrza kości. Każdy chip wyposażony jest we własny generator pobudzający w odpowiednim rytmie wszystkie komórki pamięci. Powoduje to odciążenie kontrolera pamięci i umożliwia dalsze przyspieszenie jej pracy. 51
Synchroniczna pamięć RAM Pamięć SDRAM podzielona jest na niezależne moduły zwane bankami. Przed przystąpieniem do zapisu bank należy aktywować, to znaczy przygotować elektronikę kości do rozpoczęcia operacji wymiany danych. 52
Pamięć ROM Komórka pamięci FLASHROM (jedno z dwu obecnie stosowanych rozwiązań) 53
Pamięć ROM Pamięć ROM (ang. read only memory) jest pamięcią nieulotną, gdzie zapis następuje na innej drodze niż odczyt. Nieulotność oznacza, że po wyłączeniu napięcia zasilania tej pamięci, informacja w niej przechowywana nie jest tracona (zapominana). Do pamięci tej nie możemy zapisywać danych w trakcie jej normalnej pracy w systemie (cyklu rozkaowego). Pamięci ROM są pamięciami o dostępie swobodnym. Określenie, że jest to pamięć tylko do odczytu, nie jest równoznaczne z tym, że zawartości tej pamięci w określonych warunkach nie można zmieniać. Dla niektórych typów technologicznych pamięci ROM jest to możliwe. 54
Rodzaje pamięci ROM 1. MROM (ang. mascable ROM) - pamięci, których zawartość jest ustalana w procesie produkcji (przez wykonanie odpowiednich masek - stąd nazwa) i nie może być zmieniana. Przy założeniu realizacji długich serii produkcyjnych jest to najtańszy rodzaj pamięci ROM. W technice komputerowej dobrym przykładem zastosowania tego typu pamięci jest BIOS obsługujący klawiaturę. 2. PROM (ang. programmable ROM) - pamięć jednokrotnie programowalna. Oznacza to, że użytkownik może sam wprowadzić zawartość tej pamięci, jednakże potem nie można jej już zmieniać. Cecha ta wynika z faktu, że programowanie tej pamięci polega na nieodwracalnym niszczeniu niektórych połączeń wewnątrz niej. Obecnie ten typ pamięci nie jest już używany. 55
Rodzaje pamięci ROM 3. EPROM - pamięć wielokrotnie programowalna, przy czym kasowanie poprzedniej zawartości tej pamięci odbywa się drogą naświetlania promieniami UV. Programowanie i kasowanie zawartości tej pamięci odbywa się poza systemem w urządzeniach zwanych odpowiednio kasownikami i programatorami pamięci. Pamięć ta wychodzi już z użycia. 4. EEPROM - pamięć kasowana i programowana na drodze czysto elektrycznej. Istnieje możliwość wprowadzenia zawartości tego typu pamięci bez wymontowywania jej z systemu (jeżeli oczywiście jego projektant przewidział taką opcje) choć czas zapisu informacji jest nieporównywalnie dłuższy niż czas zapisu do pamięci RAM. Wykonywana w różnych postaciach (np. jako FLASH), różniących się sposobem organizacji kasowania i zapisu. 56
Literatura: Metzger Piotr - Anatomia PC, wydanie XI, Helion 2007 Wojtuszkiewicz Krzysztof - Urządzenia techniki komputerowej, część I: Jak działa komputer, MIKOM, Warszawa 2000 Wojtuszkiewicz Krzysztof - Urządzenia techniki komputerowej, część II: Urządzenia peryferyjne i interfejsy, MIKOM, Warszawa 2000 Komorowski Witold - Krótki kurs architektury i organizacji komputerów, MIKOM Warszawa 2004 Gook Michael - Interfejsy sprzętowe komputerów PC, Helion, 2005 57