4. Sprzęt Dzisiejsze komputery składają się z trzech podstawowych układów funkcjonalnych: procesora, pamięci, urządzeń wejścia wyjścia. PoniŜej opisano cechy charakterystyczne elementów funkcjonalnych komputera. 4.1. Procesor Cel: Rozumienie podstawowych funkcji procesora i terminów z nim związanych: obliczenia, kontrola logiczna, pamięć podręczna procesora. Jednostki stosowane do określania szybkości pracy procesora: MHz, GHz. 4.1.1. Charakterystyka podstawowych funkcji procesora Procesor stanowi najistotniejszy blok komputera, a jego parametry w sposób krytyczny decydują o parametrach pracy całego systemu komputerowego. Szybkość przetwarzania informacji w komputerze i jego moc obliczeniowa najsilniej zaleŝą od mocy obliczeniowej procesora. Procesor słuŝy do wykonywania rozkazów załadowanych do pamięci komputera. Operacje realizowane przez procesor są wykonywane w następującej sekwencji: pobranie rozkazu, dekodowanie rozkazu, pobranie z pamięci argumentów dla operacji, wykonanie rozkazu, przesłanie wyniku do pamięci. Liczebność zbioru rozkazów realizowanych przez procesor waha się od kilkudziesięciu do kilkuset. Są tą w większości elementarne operacje arytmetyczne, logiczne i sterujące. Współczesne procesory wykonują miliardy operacji na sekundę. NiezaleŜnie od wykonywanych programów zadanych przez operatora, procesor wykonuje programy sterujące koordynacją pracy procesora z innymi blokami (wyznacza kolejność działania urządzeń zewnętrznych, jest odpowiedzialny za postać informacji zapisywanej do pamięci dyskowej, monitora, obsługuje błędy systemu, itp.). Procesor składa się z trzech podstawowych bloków: blok rejestrów, blok arytmetyczno-logiczny, układ sterujący przebiegiem pracy. Rys. 4.1. Podstawowe elementy funkcjonalne procesora 1 1 Null L., Lobur, Struktura funkcjonalna i architektura komputerów, wyd. Helion. 20
Przesyłanie informacji miedzy blokami procesora odbywa się za pomocą magistrali. W magistrali wyróŝnia się trzy grupy linii: linie danych tworzące tzw. szynę danych, linie adresowe tworzące tzw. szynę adresową, linie sterujące tworzące tzw. szynę sterującą, Fot. 4.1. Procesor dwurdzeniowy P4 firmy Intel oraz jego budowa wewnętrzna (źródło: http://www.pcworld.pl/news/75379/co.dwa.rdzenie.to.nie.jeden.html) 4.1.2. Obliczenia wykonywane przez procesor Obliczenia wykonywane przez procesor opierają się na binarnym (dwójkowym) systemie liczbowym. Binarny (dwójkowy) system liczbowy to system pozycyjny, w którym podstawą pozycji są kolejne potęgi liczby 2. Do zapisu liczb potrzebne są więc tylko dwa znaki: 0 i 1. Procesor wykonuje obliczenia arytmetyczne (np. dodawanie i mnoŝenie) i logiczne (np. porównanie, iloczyn logiczny AND, suma logiczna OR, itp.), które oparte są na fundamentach algebry Bool a 2. Obliczenia arytmetyczne to zbiór elementarnych operacji wykonywanych przez jednostkę atytmetyczno-logiczną, obejmujący działania: +, -, *, /. Rozkazy oraz argumenty są pobierane przez procesor z pamięci operacyjnej, a wyniki obliczeń zapisywane w wewnętrznych rejestrach i dalej przesyłane do pamięci RAM. Szybkość wykonywania obliczeń jest bezpośrednio związana z liczbą wykonywanych rozkazów w przyjętej jednostce czasu. Współczesne procesory dla komputerów klasy PC potrafią wykonywać nawet kilka miliardów operacji na sekundę. 4.1.3. Kontrola logiczna Procesor wykonuję równieŝ operacje logiczne, wykorzystując elementarne elektroniczne układy. Zbiór operacji logicznych wykonywanych przez procesor obejmuje m.in. działania: koniunkcja (AND), alternatywa (OR), negacja (NOT). Wartościom logicznym prawda/fałsz odpowiadają stany 0 lub 1, które przybiera pojedynczy bit danych. Wartość logiczna moŝe być wyraŝona wartością całego słowa danych. Procesor kontroluje warunki logiczne zapisane w wykonywanych programach i na podstawie ich wartości realizuje określoną sekwencję działań. 2 Gorge Boole Ŝył w Angli w XVIII wieku. Będąc matematykiem i logikiem rozwinął sposoby wyraŝania procesów logicznych za pomocą symboli algebraicznych. Algebra Bool a jest stosowana w obliczeniach komputerowych. 21
4.1.4. Pamięć podręczna procesora Pamięć podręczna procesora, charakteryzująca się krótkim czasem dostępu 3, jest uŝywana do tymczasowego przechowywania danych wykorzystywanych do wykonywania rozkazów przez procesor. We współczesnych komputerach instalowane są trzy poziomy pamięci cache 4. Poziom L1 to pamięć zintegrowana z procesorem, pamięć L2 w starszych modelach znajdowała się na płycie głównej, obecnie jest równieŝ zintegrowana z procesorem (jej wielkość we współczesnych procesorach dochodzi do 2MB). Pamięć L3 moŝna znaleźć na płycie głównej, jednakŝe najnowsze modele procesorów zawierają zintegrowany moduł pamięci L3. Rodzaj procesora Intel Core i7 870 Intel Core 2 Q9650 AMD Phenom IIX4 965 Rodzaj pamięci cache L1(KB) 4x32 4x32 4x64 L2(KB) 1024 12288 2048 L3(KB) 8192 12288 6144 Tabela 4.1. Wielkości pamięci cache w wybranych modelach współczesnych procesorów (źródło: www.pcworld.pl/ranking) 4.1.5. Jednostki stosowane do określania szybkości pracy procesora Większość współczesnych mikroprocesorów zawiera specjalizowaną jednostkę, która jest odpowiedzialna za wykonywanie obliczeń zmiennoprzecinkowych. Dla określenia szybkości pracy tej jednostki uŝywana jest wielkość o nazwie FLOPS (ang. FLoating Point Operations Per Second), czyli liczba operacji zmiennoprzecinkowych na sekundę. PoniewaŜ współczesne komputery osiągają wyniki liczone w miliardach FLOPS-ów, zwykle stosuje się odpowiednie przedrostki układu SI - przykładowo: 1 MFLOPS = 1 milion FLOPS-ów 1 GFLOPS = 1 miliard FLOPS-ów 1 TFLOPS = 1 bilion FLOPS-ów 1 PFLOPS = 1 biliard FLOPS-ów Najszybsze współczesne superkomputery osiągają wydajność liczoną w TFLOPS-ach - najszybszy komputer świata rankingu TOP 500 5, to Roadrunner osiągający powyŝej 1000 TFLOPS-ów. Dla porównania, w miarę typowy nowoczesny komputer osobisty (np. z procesorem Pentium 4, czy Athlon 64 i częstotliwości zegara około 2 GHz) ma wydajność rzędu kilku GFLOPS-ów. Kieszonkowe kalkulatory są przeciwieństwem superkomputerów. Na kalkulatorach są najczęściej wykonywane tylko pojedyncze operacje (dodawanie, odejmowanie, mnoŝenie, dzielenie), więc nie ma potrzeby instalowania w nich szybkich procesorów. KaŜdy czas obliczeń mniejszy niŝ 0,1 sekundy jest uznawany przez człowieka za natychmiastowy, stąd procesory instalowane w kalkulatorach mają najczęściej moc obliczeniową około 10 FLOPSów. Ludzie wydają się być jeszcze gorszymi procesorami zmiennoprzecinkowymi. Podzielenie dwóch liczb 10 cyfrowych zajmuje człowiekowi średnio kwadrans, stąd moŝna by wnioskować, Ŝe szybkość ludzkiego mózgu naleŝałoby mierzyć w miliflops-ach. Jednak 3 Średni czas potrzebny komputerowi do odnalezienia informacji zapisanych w pamięci. 4 Techniczna nazwa pamięci podręcznej. 5 dane z 2008 roku 22
operacje na takich liczbach prawdopodobnie nie są "naturalne" dla ludzkiego mózgu, a dodatkowo umysł ludzki jest najczęściej zajęty przetwarzaniem wraŝeń zmysłowych i innymi operacjami, które trudno nawet określić. Szacuje się, Ŝe mózg jest w stanie wykonywać około 10 biliardów operacji na sekundę, jest to jednak bardzo grube oszacowanie 6. Nie jest to jedyny parametr, jakim moŝna opisać wydajność komputera. Przykładowo, w przypadku typowych nienaukowych zastosowań komputerów bardziej miarodajne jest określenie tzw. MIPS (milionów operacji całkowitych na sekundę). 4.2. Pamięć Cel: Wiedza na temat rodzajów pamięci komputera: RAM (random-access memory), ROM (readonly memory) i róŝnice pomiędzy nimi. Jednostki stosowane do określenia wielkości pamięci komputera: bit, byte, KB, MB, GB, TB. Powiązanie jednostek wielkości pamięci komputera z pojęciami znak, plik, katalog (folder). Pamięć wewnętrzna komputera składa się z układów RAM i ROM. Pamięć ROM jest to pamięć montowana na płycie głównej komputera, charakteryzuje się dostępem swobodnym i słuŝy wyłącznie do odczytu zapisanych w niej danych (program BIOS). Pamięć RAM jest ulotną pamięcią o dostępie swobodnym, w której przechowywane są kody programów oraz dane wczytane lub zapisane przez uŝytkownika. 4.2.3. RAM (random-access memory) Pamięć RAM jest pamięcią przeznaczoną do zapisu i odczytu. Ze względu na technologię wykonania, dzielimy ją na dwie podstawowe grupy: pamięci dynamiczne DRAM, pamięci statyczne SRAM. RAM to pamięć o dostępie swobodnym (Random Access Memory), tzn, Ŝe czas dostępu do pojedynczej komórki pamięci nie zaleŝy od wartości adresu (inaczej rzecz się ma, np. przy adresowaniu klastrów na dyskach twardych lub przy zapisie danych na taśmie strimera). Pamięci DRAM są budowane z układów dynamicznych (Dynamic RAM DRAM), składających się z rozległych i skomplikowanych matrycowych struktur tranzystorów i kondensatorów. Najmniejsza jednostka informacji bit przechowywana jest w układzie złoŝonym z jednego tranzystora i kondensatora. KaŜdy bit moŝe znaleźć się w jednym z dwóch stanów, zwanych umownie logicznym zerem lub jedynką. Z fizycznego punktu widzenia wartości te są reprezentowane przez obecność ładunku na kondensatorze lub jego brak. Z uŝytkowego punktu widzenia w pamięci RAM zapisywane są: pliki systemu operacyjnego, sterowniki urządzeń we/wy, pliki programów uŝytkowych, pliki z danymi. Zawartość pamięci RAM jest podtrzymywana przez system zasilania, konsekwencją tego jest fakt, Ŝe po wyłączeniu zasilania, nawet na krótką chwilę, zawartość tej pamięci jest tracona bezpowrotnie. Dlatego trzeba pamiętać o zapisie wprowadzanych danych na nośnikach zewnętrznych, np.: dyski twarde, dyskietki, pamięci flash, itp.. Wszystkie układy pamięci DRAM musza być co pewien czas odświeŝane, w związku ze 6 www.wikipedia.pl 23
zjawiskiem upływności kondensatorów, z których są zbudowane. W czasie odświeŝania pamięci procesor nie ma dostępu do odświeŝanych komórek, co znacznie spowalnia pracę całego układu. Wielość pamięci DRAM w komputerze zaleŝy od wielu czynników: konfiguracji płyty głównej, wielkości przestrzeni adresowej procesora (procesory Pentium, Pentium II, Pentium III, Pentium IV oraz ich odpowiedniki mają 32-bitową przestrzeń adresową, zatem mogą potencjalnie obsługiwać do 4GB pamięci RAM), potrzeb i moŝliwości finansowych uŝytkownika. We współczesnych komputerach klasy PC typowa pamięć RAM ma pojemność od 512 MB do 1GB. Rys. 4.2. Moduł pamięci DDR SDRAM 7 Rys. 4.3. Moduł pamięci DDR2 SDRAM 8 Rys. 4.4. Moduły pamięci DDR3 DIMM 9 7 DDR SDRAM (ang. Double Data Rate Synchronous Dynamic Random Access Memory) rodzaj pamięci typu RAM stosowana w komputerach jako pamięć operacyjna. SDRAM (ang. Synchronous Dynamic Random Access Memory) pamięć synchroniczna o dostępie swobodnym. 8 DDR2 SDRAM (ang. Double Data Rate 2 Synchronous Dynamic Random Access Memory) jest to następny po DDR standard pamięci RAM, który znajduje zastosowanie w komputerach jako pamięć operacyjna. 9 DDR3 pamięć firmy Kingston, pojemność kości 2 GB, częstotliwość taktowania 1333 MHz, transmisja danych 10600 MB/s 24
Pamięci SRAM to układy pamięci statycznej (Static RAM). W pamięciach tego typu została wyeliminowana konieczność odświeŝania ich zawartości, a dostęp do komórki pamięci moŝe odbywać się w dowolnym momencie. W praktyce szybkie układy pamięci SRAM są obecnie wykorzystywane jako pamięć podręczna cache, słuŝąca do buforowania wolniejszych pamięci DRAM, czyli pośredniczenia w wymianie danych pomiędzy nimi a procesorem. 4.2.4. ROM (read-only memory) i róŝnice pomiędzy nimi. ROM (Read Only Memory)- jest pamięcią półprzewodnikową o dostępie swobodnym przeznaczoną tylko do odczytu, po wyłączeniu zasilania zawartość nie jest tracona. Najczęściej uŝywanymi pamięciami ROM są układy PROM (programmable ROM). Zawartość tej pamięci jest jednokrotnie zapisywana przez producenta i wielokrotnie odczytywana (tylko odczyt). W pamięci ROM na płycie głównej komputera jest zapisany BIOS (Basic Input Output System). Podstawowe zadania BIOS-u to: przeprowadzenie po restarcie komputera procedury testów POST (Power-On Self Test), inicjalizacja pracy systemu, zapewnienie obsługi podstawowych urządzeń systemu. BIOS Setup to część programowalna BIOS-u, przy pomocy której uŝytkownik moŝe zapisać podstawowe ustawienia dotyczące parametrów pracy komputera. Rys. 4.5. Pamięć ROM z zapisanym systemem BIOS 4.2.5. Jednostki stosowane do określenia wielkości pamięci komputera W systemach komputerowych informacja jest kodowana w postaci słów cyfrowych. Słowem cyfrowym (binarnym) nazywamy dowolny ciąg znaków składający się z symboli 0 i/lub 1. Ilość informacji mierzona jest ilością zajmowanego przez nią miejsca w pamięci maszyny cyfrowej (komputera). Najmniejszą ilością informacji, reprezentowaną przez stan 0 lub 1 jest BIT. Podstawową jednostką słuŝącą do określenia pojemności pamięci to 1Bajt 10, czyli osiem BIT-ów. W praktyce stosuje się większe jednostki, będące wielokrotnością jednego bajta, zgodnie z zasadami stosowania przedrostków układu jednostek fizycznych SI. PoniŜej przedstawiono najczęściej stosowane jednostki stosowane do określenia wielkości pamięci komputerowej lub wielkości zbioru zapisanej informacji. 1 KB (kilobajt) = 2 10 (bajtów) = 1024 10 3 bajtów, 1 MB (megabajt) = 2 20 (bajtów) = 1 048 576 10 6 bajtów, 1GB (gigabajt) = 2 30 (bajtów) = 1 073 741 824 10 9 bajtów, 1 TB (terabajt) = 2 40 (bajtów) = 1 099 511 627 776 10 12 bajtów. 10 W 1964 roku inŝynierowie firmy IBM pracujący nad komputerem System/360 przyjęli zasadę, Ŝe pamięć komputera, do której moŝna się odwoływać, zostanie pogrupowana w jednostki składające się z 8 bitów, nazwano je bajtami. 25
4.2.6. Powiązanie jednostek wielkości pamięci komputera z pojęciami znak, plik, katalog (folder) Informacje zapisywane w systemie komputerowym są kodowane w postaci unikatowego ciągu bitów pogrupowanych w większe jednostki zwane bajtami. Ze względu na róŝne rodzaje zapisywanej w pamięci informacji (znaki, liczby, grafika, dźwięki, filmy) istnieją róŝnice w sposobie ich kodowania. Jednym z podstawowych rodzajów informacji kodowanych w systemie komputerowym są znaki. W standardzie ASCII 11 dla jednego znaku jest przyporządkowany kod o długości jednego bajta (8 bitów). Dla przykładu wpisując ciąg znaków E C D L do pamięci komputera dokonywany jest zapis w następującej postaci: znak alfabetu kod binarny ACII E 01000101 C 01000011 D 01000100 L 01001100 JeŜeli przyjmiemy załoŝenie, Ŝe 1 bajt to 1 znak (kodowanie ASCII) oraz, Ŝe na stronie formatu A4 mieści się ok. 2000 znaków to moŝna przeliczyć, Ŝe: 1 KB to ½ A4 1 MB to 500 A4 (ryza papieru) 1 GB to 500 000 A4 (1000 ryz) 1 TB to 500 mln A4 (1 mln ryz) Współczesne systemy operacyjne maja wbudowany system 16-bitowego kodowania znaków, zgodnie ze standardem UNICODE. Daje to moŝliwość zapisania 2 16 =65536 znaków, co pozwala swobodnie lokalizować systemy operacyjne dla potrzeb narodowych, m.in. w Polsce. Ciąg znaków zapisanych w pamięci komputera tworzy pewien zbiór zwany plikiem. Plik moŝe zostać zapisany w pamięci masowej komputera (np. na dysku twardym), co pociąga za sobą konieczność zarezerwowania odpowiedniej liczby bajtów, wynikającej ze sposobu kodowania zapisywanej informacji. Zakodowany zgodnie ze standardem ASCII ciąg znaków ECDL zapisany na dysku twardym komputera przy pomocy aplikacji notatnik zarezerwuje w pamięci 4 bajty. Rys. 4.6. Przykład zapisu ciągu znaków w pamięci komputera w powiązaniu z zajmowanym przez niego rozmiarem pamięci mierzonym w bajtach 11 ASCII American Standard Code for Information Interchange (amerykański standard kodowania informacji) 26
Na rysunku nr 4.5 przedstawiony przykładowy ciąg 4 znaków, który został zapisany w standardzie ASCII, w wyniku czego został mu przydzielony obszar pamięci o pojemności 4 bajtów. W rzeczywistości wielkość obszaru pamięci zajmowanej przez ten plik (ECDL.txt) moŝe być znacznie większy, co jest spowodowane rodzajem programu przy pomocy którego zapisano znaki lub sposobem organizacji pamięci, w której zapisano plik. Przykładowy plik (ECDL.txt) zajął na dysku twardym 4 kb (4096 bajtów), co przedstawia poniŝszy rysunek. Rys. 4.7. Porównanie teoretycznego rozmiaru pliku tekstowego z rzeczywistym, zajmowanym na dysku twardym komputera Jeszcze większy obszar pamięci zostanie zajęty prze ten sam plik zapisany w programie MSWORD (edytor tekstów). Rys. 4.8. Wielkość pamięci (dysk twardy) zajmowanej przez ciąg znakó ECDL zapisany przy pomocy aplikacji MSWORD W celu uporządkowania przechowywanych plików w pamięciach masowych komputera wprowadzono katalogi (foldery), w których moŝna tematycznie umieszczać grupy plików. KaŜdy katalog (folder) ma w systemie komputerowym swoją nazwę, zajmuje miejsce w pamięci i zawiera zbiór plików lob podkatalogów. Na poniŝszym rysunku przedstawiono wielkość pamięci zarezerwowanej na dysku twardym komputera przez przykładowy katalog o nazwie ECDL. Rys. 4.9. Katalog ECDL z zapisanym plikiem ECDL.doc Na wielkość zajmowanej pamięci przez folder bezpośredni wpływ ma wielkość plików w nim zapisanych (rys. 4.9). 27