Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 7 (06.06.2012) dr inż. Jarosław Forenc
Rok akademicki 2011/2012, Wykład nr 7 2/73 Plan wykładu nr 7 Budowa komputera: interfejsy wewnętrzne (Serial ATA, PCI Express) interfejsy zewnętrzne (RS-232, PS/2, USB, esata, FireWire, Ethernet, Thunderbolt, Centronics, PCMCIA) Architektura i organizacja systemu komputerowego Struktura i funkcjonowanie komputera procesor, rozkazy, przerwania struktura połączeń, magistrala, DMA systemy pamięci komputerowych hierarchia pamięci, pamięć podręczna Algorytmy komputerowe
Rok akademicki 2011/2012, Wykład nr 7 3/73 Interfejsy sprzętowe komputera Interfejsy wewnętrzne równoległe szeregowe ISA PCI-X SATA EISA AGP PCI Express MCA IDE VESA LB EIDE PCI SCSI Mini-PCI
Rok akademicki 2011/2012, Wykład nr 7 4/73 Serial ATA (wewnętrzny, szeregowy) Serial ATA - Serial Advanced Technology Attachment, SATA szeregowa magistrala służąca do komunikacji Host Bus Adaptera z urządzeniami pamięci masowej (dyski twarde, napędy optyczne) zastąpiła równoległą magistralę ATA węższe i dłuższe (do 1 m) przewody niż w ATA 7-pinowa wtyczka sygnałowa 15-pinowa wtyczka zasilania możliwość hot plug Generacja SATA I SATA II SATA III Przepustowość 1,5 Gbit/s (ok. 180 MB/s) 3,0 Gbit/s (ok. 375 MB/s) 6,0 Gbit/s (ok. 750 MB/s)
Rok akademicki 2011/2012, Wykład nr 7 5/73 PCI Express (wewnętrzny, szeregowy) PCI Express - Peripheral Component Interconnect Express, PCIe połączenie typu punkt-punkt przeznaczone do instalacji kart rozszerzeń na płycie głównej (graficzne, muzyczne, sieciowe, kontrolery IDE, SATA, USB) każde urządzenie jest połączone bezpośrednio z kontrolerem PCI Express zastąpił magistrale PCI i AGP jeśli podłączona karta wymaga więcej energii to jest zasilana przez dodatkowy przewód Wersja v1.0 Wersja x1 x2 x4 x8 x16 Przepustowość 250 MB/s 500 MB/s 1000 MB/s 2000 MB/s 4000 MB/s Max. moc Rok 75 W 2004 v2.0 x16 8000 MB/s 150 W 2007 v3.0 x16 16000 MB/s 300 W 2011
Rok akademicki 2011/2012, Wykład nr 7 6/73 PCI Express (wewnętrzny, szeregowy) PCIe x4 PCIe x16 PCIe x1 PCIe x16 PCI PCIe x1 PCIe x16 PCIe x4
Rok akademicki 2011/2012, Wykład nr 7 7/73 Interfejsy sprzętowe komputera Interfejsy zewnętrzne szeregowe równoległe analogowe bezprzewodowe RS-232 Centronics Jack Bluetooth PS/2 PCMCIA D-Sub IrDA USB S-Video Wi-Fi esata Fax/Modem Wi-MAX FireWire ExpressCard DisplayPort Ethernet Thunderbolt DVI
Rok akademicki 2011/2012, Wykład nr 7 8/73 RS-232 (zewnętrzny, szeregowy) RS-232 (Recommended Standard 232) 1962 rok magistrala przeznaczona do szeregowej transmisji danych najbardziej popularna wersja standardu: RS-232C przepustowość: do 115,2 kbit/s długość magistrali: do ok. 15 m w architekturze PC przewidziano obecność do 4 portów COM (COM1-COM4) zastosowania: mysz komputerowa, modemy, telefony komórkowe, łączenie dwóch komputerów kablem, starsze drukarki, tunery satelitarne, programowanie układów logicznych obecnie zastąpiona przez USB
Rok akademicki 2011/2012, Wykład nr 7 9/73 RS-232 (zewnętrzny, szeregowy) DE-9 (gniazdo męskie) DB-25 (gniazdo żeńskie) DE-9 (wtyk żeński) DB-25 (wtyk męski)
Rok akademicki 2011/2012, Wykład nr 7 10/73 PS/2 (zewnętrzny, szeregowy) złącze używane do podłączenia klawiatury i myszy komputerowej IBM, 1987 rok zastąpiło złącze szeregowe myszy DE-9 i złącze klawiatury DIN przepustowość: 40 kb/s długość: 1,8 m zastąpione przez USB, ale jeszcze występujące (czasem tylko jedno) klawiatura - kolor fioletowy mysz - kolor zielony 6-pin Mini-DIN connector
Rok akademicki 2011/2012, Wykład nr 7 11/73 USB (zewnętrzny, szeregowy) USB (Universal Serial Bus) port komunikacyjny zastępujący stare porty szeregowe i równoległe opracowanie: Microsoft, Intel, Compaq, IBM, DEC zastosowanie: kamery i aparaty cyfrowe, telefony komórkowy, dyski, modemy, skanery, myszki, klawiatury, pen-drive y, długość przewodu: 3 lub 5 m w systemie Windows obsługa USB od Windows 95 OSR2 USB 1.1 Wersja Przepustowość 1,5 Mbit/s (Low Speed) 12 Mbit/s (Full Speed) Rok Zasilanie 1998 5 V, 500 ma USB 2.0 (Hi-Speed) 480 Mbit/s 2000 5 V, 500 ma USB 3.0 (SuperSpeed) 4,8 Gbit/s 2008 5 V, 900 ma
Rok akademicki 2011/2012, Wykład nr 7 12/73 USB (zewnętrzny, szeregowy) Type A Type B Typy wtyczek USB Mini-A Mini-B Micro-A Micro-B
Rok akademicki 2011/2012, Wykład nr 7 13/73 esata (zewnętrzny, szeregowy) esata (external SATA) - 2004 rok zewnętrzny port SATA 3 Gbit/s przeznaczony do podłączania pamięci masowych zewnętrznych maksymalne przepustowości: 150 MB/s, 300 MB/s maksymalna długość kabla: 2 m esata nie musi zapewniać zasilania podłączanych urządzeń
Rok akademicki 2011/2012, Wykład nr 7 14/73 FireWire (zewnętrzny, szeregowy) standard złącza szeregowego umożliwiający szybką komunikację i synchroniczne usługi w czasie rzeczywistym 1995 rok, dokument IEEE 1394 przepustowość: 400/800/1600/3200 Mbit/s długość kabla: do 4,5 m złącze: IEEE-1394 (4, 6 lub 9 pinów) zastosowania: kamery i aparaty cyfrowe, skanery, drukarki 9-pin, 6-pin connectors 6-pin IEEE-1394 ports 4-pin connectors
Rok akademicki 2011/2012, Wykład nr 7 15/73 Ethernet (zewnętrzny, szeregowy) BNC (Bayonet Neill-Concelman) - złącze stosowane do łączenia sieci komputerowych zbudowanych z kabli koncentrycznych występuje w wersji 50 i 75-omowej Złącze BNC Trójnik Terminator Karta sieciowa ze złączem BNC
Rok akademicki 2011/2012, Wykład nr 7 16/73 Ethernet (zewnętrzny, szeregowy) 8P8C (8 Position 8 Contact) - ośmiostykowe złącze wykorzystywane w sprzęcie komputerowym i telekomunikacyjnym błędnie nazywane RJ-45 (typ złącza stosowanego w sieci telefonicznej do podłączania modemów) Złącze 8P8C na płycie głównej Karta sieciowa ze złączem 8P8C
Rok akademicki 2011/2012, Wykład nr 7 17/73 Thunderbolt (zewnętrzny, szeregowy) interfejs do podłączania urządzeń zewnętrznych w założeniu ma zastąpić USB, FireWire, HDMI opracowanie - 2009 rok, pierwsze urządzenia - 2011 rok Intel, Apple Inc. przepustowość: 10 Gbit/s (miedź), 100 Gbit/s (światłowód, jeszcze nie dostępny) Złącze Thunderbolt w laptopie Wtyczka Thunderbolt
Rok akademicki 2011/2012, Wykład nr 7 18/73 IEEE 1284 (zewnętrzny, równoległy) port równoległy wykorzystywany do podłączenia urządzeń peryferyjnych (drukarki, skanery, plotery) nazywany portem równoległym lub LPT (Line Print Terminal) standard IEEE 1284 został opracowany w 1994 roku zapewnia kompatybilność z używanym w latach 70-tych jednokierunkowym portem Centronics LPT1, I/O Port 0x378, IRQ7 + LPT2, I/O Port 0x278, IRQ5 protokoły transmisji danych (wybrane): SPP (Standard Parallel Port) - tryb kompatybilności z Centronics, możliwość transmisji dwukierunkowej, transfer do 150 kb/s, obsługa za pomocą przerwań EPP (Enhanced Parallel Port) - sprzętowo ustalane parametry transmisji (automatycznie), brak kanału DMA ECP (Extended Capability Port) - używa DMA, transfer do 2 Mb/s
Rok akademicki 2011/2012, Wykład nr 7 19/73 IEEE 1284 (zewnętrzny, równoległy) Port równoległy w laptopie DB-25 Port równoległy na płycie głównej
Rok akademicki 2011/2012, Wykład nr 7 20/73 PCMCIA (zewnętrzny, równoległy) Personal Computer Memory Card International Association 1991 - standard interfejsu wejścia-wyjścia dla kart pamięci w kolejnych latach przekształcony w karty rozszerzeń, pełniące funkcje modemu, faksmodemu, karty sieciowej, Wi-Fi ustandaryzowane wymiary: 85,6 54 mm podział ze względu na wielkość: typ I - grubość 3,3 mm; karty pamięci SRAM lub Flash typ II - grubość 5,0 mm; karty rozszerzeń (modem, karta sieciowa) typ III - grubość 10,5 mm; karty rozszerzeń (dysk twardy) podział ze względu na interfejs: PC Card 16 - interfejs magistrali ISA 16bit, zasilanie 5 V CardBus - interfejs magistrali PCI 32bit, zasilanie 3-3,3 V
Rok akademicki 2011/2012, Wykład nr 7 21/73 PCMCIA (zewnętrzny, równoległy) USB card Type II Wi-Fi card Type II gniazda PCMCIA
Rok akademicki 2011/2012, Wykład nr 7 22/73 Architektura komputera Atrybuty systemu widzialne dla programisty i mające bezpośredni wpływ na logiczne wykonywanie programu Do architektury komputera należy m.in.: lista rozkazów liczba bitów wykorzystywanych do prezentacji różnych typów danych mechanizmy wejścia-wyjścia metody adresowania pamięci
Rok akademicki 2011/2012, Wykład nr 7 23/73 Organizacja komputera Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury Rozwiązania sprzętowe niewidzialne dla programisty, np. sygnały sterujące interfejsy między komputerem a urządzeniami peryferyjnymi wykorzystywana technologia pamięci
Rok akademicki 2011/2012, Wykład nr 7 24/73 Funkcjonowanie komputera Funkcje realizowane przez komputer: przetwarzanie danych przechowywanie danych (krótkotrwałe lub długotrwałe) przenoszenie danych (pomiędzy komputerem a światem zewnętrznym) urządzenia peryferyjne (proces wejścia-wyjścia) duża odległość (transmisja danych) sterowanie (powyższymi funkcjami)
Rok akademicki 2011/2012, Wykład nr 7 25/73 Struktura komputera Komputer tworzą cztery główne składniki: procesor (jednostka centralna, CPU) - steruje działaniem komputera i realizuje przetwarzanie danych pamięć główna - przechowuje dane wejście-wyjście - przenosi dane między komputerem a jego otoczeniem zewnętrznym połączenia systemu - mechanizmy zapewniające komunikację między składnikami systemu Wszystkie powyższe składniki mogą występować w komputerze pojedynczo lub w większej liczbie
Rok akademicki 2011/2012, Wykład nr 7 26/73 Struktura procesora Główne składniki strukturalne procesora to: jednostka sterująca - steruje działaniem procesora i pośrednio całego komputera jednostka arytmetyczno-logiczna (ALU) - realizuje przetwarzanie danych przez komputer rejestry - realizują wewnętrzne przechowywanie danych w procesorze połączenia procesora - wszystkie mechanizmy zapewniające komunikację między jednostką sterującą, ALU i rejestrami
Rok akademicki 2011/2012, Wykład nr 7 27/73 Struktura procesora EU - Execution Unit CU - Control Unit źródło: K. Wojtuszkiewicz, Urządzenia techniki komputerowej. PWN, Warszawa, 2007.
Rok akademicki 2011/2012, Wykład nr 7 28/73 Działanie komputera Podstawowe zadanie komputera to wykonywanie programu Program składa się z rozkazów przechowywanych w pamięci Rozkazy są przetwarzane w dwu krokach: Cykl pobierania (ang. fetch): odczytanie rozkazu z pamięci licznik rozkazów (PC) lub wskaźnik instrukcji (IP) określa, który rozkaz ma być pobrany jeśli procesor nie otrzyma innego polecenia, to inkrementuje licznik PC po każdym pobraniu rozkazu
Rok akademicki 2011/2012, Wykład nr 7 29/73 Działanie komputera Podstawowe zadanie komputera to wykonywanie programu Program składa się z rozkazów przechowywanych w pamięci Rozkazy są przetwarzane w dwu krokach: Cykl wykonywania (ang. execution): może zawierać kilka operacji, jest zależny od typu rozkazu pobrany rozkaz jest umieszczany w rejestrze rozkazu (IR) rozkaz ma formę kodu binarnego określającego działania, które ma podjąć procesor procesor interpretuje rozkaz i przeprowadza wymagane operacje
Rok akademicki 2011/2012, Wykład nr 7 30/73 Działanie komputera W celu przyspieszenia pracy systemu stosuje się tzw. wstępne pobranie instrukcji (ang. prefetching) CP1 CW1 CP2 CW2 CP3 CW3 CP1 CW1 CP2 CW2 CP3 CW3 prefeching czas CP - cykl pobierania CW - cykl wykonywania Działania procesora można podzielić na cztery grupy: przesłanie danych z procesora do pamięci lub odwrotnie przesłanie danych z procesora do modułu we-wy lub odwrotnie operacje arytmetyczne lub logiczne na danych sterowanie (np. zmiana sekwencji wykonywania programu) Wykonywanie rozkazów może zawierać kombinacje powyższych działań
Rok akademicki 2011/2012, Wykład nr 7 31/73 Działanie komputera Graf stanów cyklu wykonania rozkazu ma następującą postać: (3) - analiza rozkazu w celu określenia rodzaju operacji, która ma być wykonana oraz w celu określenia argumentu (jednego lub kilku) (8) - zapisanie wyniku w pamięci lub skierowanie go do we-wy Nie wszystkie stany z powyższego schematu muszą występować
Rok akademicki 2011/2012, Wykład nr 7 32/73 Działanie komputera Graf stanów cyklu wykonania rozkazu ma następującą postać: Mogą wystąpić sytuacje, w których jeden rozkaz może określać operacje na wektorze liczb lub na szeregu znaków, co wymaga powtarzania operacji pobrania i/lub przechowywania
Rok akademicki 2011/2012, Wykład nr 7 33/73 Działanie komputera Każdy rozkaz przechowywany jest w postaci binarnej, ma określony format i używa określonego trybu adresowania Format - sposób rozmieszczenia informacji w kodzie rozkazu Rozkaz zawiera kod operacji (rodzaj wykonywanej operacji) i argumenty (lub adresy argumentów) wykonywanych operacji Tryb adresowania jest to sposób określania miejsca przechowywania argumentów rozkazu (operandów), np.: natychmiastowe - argument znajduje się w kodzie rozkazu bezpośrednie - adres argumentu znajduje się w kodzie rozkazu rejestrowe - argument znajduje się w rejestrze pośrednie - adres argumentu znajduje się w rejestrze
Rok akademicki 2011/2012, Wykład nr 7 34/73 Działanie komputera - przerwania Wykonywanie kolejnych rozkazów przez procesor może być przerwane poprzez wystąpienie tzw. przerwania (interrupt) Można wyróżnić kilka klas przerwań: programowe - generowane po wystąpieniu błędu podczas wykonania rozkazu (np. dzielenie przez zero) zegarowe - generowane przez wewnętrzny zegar procesora we-wy - generowane przez sterownik we-wy w celu zasygnalizowania normalnego zakończenia operacji lub błędu uszkodzenie sprzętu - generowane przez uszkodzenie, np. defekt zasilania, błąd parzystości pamięci Przerwania zostały zaimplementowane w celu poprawienia efektywności przetwarzania - procesor może wykonywać inne rozkazy, gdy jest realizowana operacja we-wy
Rok akademicki 2011/2012, Wykład nr 7 35/73 Działanie komputera - przerwania Aby dostosować się do przerwań do cyklu rozkazu jest dodawany cykl przerwania: Po sygnale przerwania procesor: zawiesza wykonanie bieżącego programu i zachowuje jego kontekst ustawia licznik programu na początkowy adres programu obsługi przerwania wykonuje program obsługi przerwania wznawia wykonywanie programu użytkowego
Rok akademicki 2011/2012, Wykład nr 7 36/73 Działanie komputera - przerwania Jak działa przerwanie?
Rok akademicki 2011/2012, Wykład nr 7 37/73 Działanie komputera - przerwania wielokrotne Podczas obsługi jednego przerwania może pojawić się sygnał kolejnego przerwania Problem przerwań wielokrotnych rozwiązywany jest na dwa sposoby: uniemożliwienie innych przerwań, jeśli jakiekolwiek inne przerwanie jest przetwarzane określenie priorytetów przerwań - przerwanie o wyższym priorytecie powoduje przerwanie programu obsługi przerwania o niższym priorytecie
Rok akademicki 2011/2012, Wykład nr 7 38/73 Działanie komputera - struktura połączeń Struktura połączeń jest to zbiór ścieżek łączących podstawowe moduły komputera, tj. procesor, pamięć i urządzenia we-wy Pamięć: pamięć składa się z określonej liczby słów o jednakowej długości słowa umieszczone są pod konkretnymi adresami słowo może być odczytane z pamięci lub do niej zapisane typ operacji określają sygnały sterujące odczyt i zapis
Rok akademicki 2011/2012, Wykład nr 7 39/73 Działanie komputera - struktura połączeń Struktura połączeń jest to zbiór ścieżek łączących podstawowe moduły komputera, tj. procesor, pamięć i urządzenia we-wy Procesor: odczytuje rozkazy i dane wysyła dane po przetworzeniu steruje pracą całego systemu poprzez sygnały sterujące Rozkazy Dane Sygnały przerw. Procesor Sygnały ster. Dane otrzymuje sygnały przerwań
Rok akademicki 2011/2012, Wykład nr 7 40/73 Działanie komputera - struktura połączeń Struktura połączeń jest to zbiór ścieżek łączących podstawowe moduły komputera, tj. procesor, pamięć i urządzenia we-wy Moduł wejścia-wyjścia: istnieją dwie operacje: zapis i odczyt każdy z interfejsów z urządzeniem zewnętrznym określany jest portem i ma jednoznaczny adres Odczyt Zapis Adres Dane wew. Dane zew. Moduł we/wy Dane wew. Dane zew. Sygnał przerw. moduł może wysyłać sygnały przerwań do procesora
Rok akademicki 2011/2012, Wykład nr 7 41/73 Działanie komputera - struktura połączeń Struktura połączeń musi umożliwiać przesyłanie następujących danych: DMA - bezpośredni dostęp do pamięci: Dane Dane najczęściej procesor bezpośrednio odczytuje dane z pamięci i zapisuje oraz komunikuje się z urządzeniami we-wy w pewnych przypadkach pożądane jest umożliwienie bezpośredniej wymiany danych między we-wy a pamięcią podczas takiego przesyłania moduł we-wy odczytuje lub zapisuje rozkazy w pamięci, uwalniając procesor od odpowiedzialności za tę wymianę powyższe operacje nazywane są bezpośrednim dostępem do pamięci (ang. DMA - Direct Memory Access)
Rok akademicki 2011/2012, Wykład nr 7 42/73 Działanie komputera - magistrala Najczęściej stosowana struktura połączeń to magistrala Magistrala jest wspólnym nośnikiem transmisji, do którego dołączonych jest wiele urządzeń, a sygnały wysyłane przez jedno z nich mogą być odbierane przez pozostałe urządzenia Magistrala składa się z wielu linii komunikacyjnych, którym przypisane jest określone znaczenie i określona funkcja Fizycznie magistrala jest zbiorem równoległych połączeń elektrycznych System komputerowy zawiera pewną liczbę różnych magistrali Magistrala łącząca główne zasoby komputera (procesor, pamięć, wejście-wyjście) nazywana jest magistralą systemową
Rok akademicki 2011/2012, Wykład nr 7 43/73 Działanie komputera - magistrala Linie dzielą się na trzy grupy: linie danych, adresów i sterowania Linie danych: przenoszą dane między modułami systemu wszystkie linie danych nazywane są szyną danych liczba linii określa szerokość szyny danych (8, 16, 32, 64 bity)
Rok akademicki 2011/2012, Wykład nr 7 44/73 Działanie komputera - magistrala Linie dzielą się na trzy grupy: linie danych, adresów i sterowania Linie adresowe: służą do określania źródła i miejsca przeznaczenia danych przesyłanych magistralą liczba linii adresowych (szerokość szyny adresowej) określa maksymalną możliwą pojemność pamięci systemu
Rok akademicki 2011/2012, Wykład nr 7 45/73 Działanie komputera - magistrala Linie dzielą się na trzy grupy: linie danych, adresów i sterowania Linie sterowania: służą do sterowania dostępem do linii danych i linii adresowych
Rok akademicki 2011/2012, Wykład nr 7 46/73 Działanie komputera - struktury wielomagistralowe W przypadku większej liczby urządzeń podłączonych do magistrali znacząco spada jej wydajność Rozwiązaniem tego problemu są struktury wielomagistralowe o określonej hierarchii
Rok akademicki 2011/2012, Wykład nr 7 47/73 Systemy pamięci komputerowych Ze względu na położenie pamięci w stosunku do komputera wyróżniamy pamięć: procesora (rejestry) wewnętrzną (pamięć główna) zewnętrzną (pamięć pomocnicza - pamięci dyskowe i taśmowe) Parametry charakteryzujące pamięć: pojemność - maksymalna liczba informacji jaką można przechowywać w danej pamięci czas dostępu - czas niezbędny do zrealizowania operacji odczytu lub zapisu czas cyklu pamięci - czas dostępu plus dodatkowy czas, który musi upłynąć zanim będzie mógł nastąpić kolejny dostęp szybkość przesyłania (transferu) - maksymalna liczba danych jakie można odczytać z pamięci lub zapisać do pamięci w jednostce czasu
Rok akademicki 2011/2012, Wykład nr 7 48/73 Systemy pamięci komputerowych Ze względu na sposób dostępu do danych wyróżniamy: dostęp sekwencyjny (pamięci taśmowe) dostęp bezpośredni (pamięci dyskowe) dostęp swobodny (pamięć główna) dostęp skojarzeniowy (pamięć podręczna) Dostęp sekwencyjny: jednostka danych to rekord dostęp do rekordów jest możliwy w określonej sekwencji liniowej przejście z jednego rekordu do następnego następuje poprzez przepuszczenie i odrzucenie rekordów pośrednich czas dostępu do różnych rekordów może bardzo różnić się
Rok akademicki 2011/2012, Wykład nr 7 49/73 Systemy pamięci komputerowych Dostęp bezpośredni: odczyt i zapis realizowany jest za pomocą tego samego mechanizmu poszczególne bloki (rekordy) mają unikatowy adres oparty na fizycznej lokacji dostęp jest realizowany przez bezpośredni dostęp do najbliższego otoczenia, po którym następuje sekwencyjne poszukiwanie, liczenie lub oczekiwanie w celu osiągnięcia lokacji finalnej Dostęp swobodny: każda adresowalna lokacja w pamięci ma unikatowy fizycznie wbudowany mechanizm adresowania czas dostępu jest stały i niezależny od poprzednich operacji dostępu
Rok akademicki 2011/2012, Wykład nr 7 50/73 Systemy pamięci komputerowych Dostęp skojarzeniowy: każda lokacja ma własny mechanizm adresowania czas dostępu jest stały i niezależny od poprzednich operacji dostępu słowa są wprowadzane na podstawie części swojej zawartości, a nie na podstawie całego adresu
Rok akademicki 2011/2012, Wykład nr 7 51/73 Hierarchia pamięci Istnieją wzajemne zależności pomiędzy parametrami pamięci: kosztem, pojemnością i czasem dostępu: mniejszy czas dostępu - większy koszt na bit większa pojemność - mniejszy koszt na bit większa pojemność - dłuższy czas dostępu W systemach komputerowych nie stosuje się jednego typu pamięci, ale hierarchię pamięci Rozpatrując hierarchię od góry do dołu obserwujemy zjawiska: malejący koszt na bit rosnącą pojemność rosnący czas dostępu malejącą częstotliwość dostępu do pamięci przez procesor
Rok akademicki 2011/2012, Wykład nr 7 52/73 Półprzewodnikowa pamięć główna RAM (Random Access Memory) - pamięć o dostępie swobodnym odczyt i zapis następuje za pomocą sygnałów elektrycznych pamięć ulotna - po odłączeniu zasilania dane są tracone DRAM: przechowuje dane podobnie jak kondensator ładunek elektryczny wymaga operacji odświeżania jest mniejsza, gęściej upakowana i tańsza niż pamięć statyczna stosowana jest do budowy głównej pamięci operacyjnej komputera SRAM: przechowuje dane za pomocą przerzutnikowych konfiguracji bramek logicznych nie wymaga operacji odświeżania jest szybsza i droższa od pamięci dynamicznej stosowana jest do budowy pamięci podręcznej
Rok akademicki 2011/2012, Wykład nr 7 53/73 Półprzewodnikowa pamięć główna ROM (ang. Read-Only Memory) - pamięć stała pamięć o dostępie swobodnym przeznaczona tylko do odczytu dane są zapisywane podczas procesu wytwarzania pamięć nieulotna PROM (ang. Programmable ROM) - programowalna pamięć ROM pamięć nieulotna, może być zapisywana tylko jeden raz zapis jest realizowany elektrycznie po wyprodukowaniu
Rok akademicki 2011/2012, Wykład nr 7 54/73 Półprzewodnikowa pamięć główna Inne typy pamięci: EPROM - pamięć wielokrotnie programowalna, kasowanie następuje przez naświetlanie promieniami UV EEPROM - pamięć kasowana i programowana na drodze czysto elektrycznej Flash - rozwinięcie koncepcji pamięci EEPROM, możliwe kasowanie i programowanie bez wymontowywania pamięci z urządzenia, występuje w dwóch odmianach: NOR (Flash BIOS) NAND (pen drive, karty pamięci)
Rok akademicki 2011/2012, Wykład nr 7 55/73 Pamięć podręczna Zastosowanie pamięci podręcznej ma na celu przyspieszenie dostępu procesora do pamięci głównej CPU CPU Cache Cache RAM RAM Zarządca magistrali Zarządca magistrali Look-through Look-aside
Rok akademicki 2011/2012, Wykład nr 7 56/73 Pamięć podręczna Do pamięci podręcznej jest przesyłany cały blok, gdyż ze względu na tzw. zjawisko lokalności odniesień, istnieje duże prawdopodobieństwo, że przyszłe odniesienia będą dotyczyły innych słów w tym samym bloku
Rok akademicki 2011/2012, Wykład nr 7 57/73 Algorytm - definicje Definicja 1 Skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania Definicja 2 Metoda rozwiązania zadania Definicja 3 Ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych zwraca żądane dane wyjściowe zwane wynikiem działania algorytmu
Rok akademicki 2011/2012, Wykład nr 7 58/73 Algorytmy Słowo algorytm pochodzi od nazwiska Muhammada ibn-musy al-chuwarizmiego (po łacinie pisanego jako Algorismus), matematyka perskiego z IX wieku Badaniem algorytmów zajmuje się algorytmika Algorytm może zostać zaimplementowany w postaci programu komputerowego Przetłumaczenie algorytmu na wybrany język programowania nazywane jest też kodowaniem algorytmu Ten sam algorytm może być zaimplementowany (zakodowany) w różny sposób przy użyciu różnych języków programowania
Rok akademicki 2011/2012, Wykład nr 7 59/73 Podstawowe cechy algorytmu Algorytm powinien: Posiadać dane wejściowe (w ilości większej lub równej zeru) pochodzące z dobrze zdefiniowanego zbioru Zwracać pewien wynik Być precyzyjnie zdefiniowany (każdy krok algorytmu musi być jednoznacznie określony) Być zawsze poprawny (dla każdego z założonego dopuszczalnego zestawu danych wejściowych) Zawsze kończyć się po skończonej liczbie kroków (powinna istnieć poprawnie działająca reguła stopu algorytmu) Być efektywny (jak najkrótszy czas wykonania i jak najmniejsze zapotrzebowanie na pamięć)
Rok akademicki 2011/2012, Wykład nr 7 60/73 Sposoby opisu algorytmów 1. Opis słowny algorytmu (w języku naturalnym) 2. Opis w punktach (lista kroków) 3. Opis w postaci schematu blokowego 4. Z zastosowaniem pseudokodu, czyli niezbyt formalnej odmiany języka programowania 5. W wybranym języku programowania
Rok akademicki 2011/2012, Wykład nr 7 61/73 Opis słowny algorytmu Polega na podaniu kolejnych czynności, które należy wykonać, aby otrzymać oczekiwany efekt końcowy Przypomina przepis kulinarny z książki kucharskiej lub instrukcję obsługi urządzenia, np. Algorytm: Tortilla ( Podróże kulinarne R. Makłowicza) Dane wejściowe: 0,5 kg ziemniaków, 100 g kiełbasy Chorizo, 8 jajek Dane wyjściowe: gotowa Tortilla Opis algorytmu: Ziemniaki obrać i pokroić w plasterki. Kiełbasę pokroić w plasterki. Ziemniaki wrzucić na gorącą oliwę na patelni i przyrumienić z obu stron. Kiełbasę wrzucić na gorącą oliwę na patelni i przyrumienić z obu stron. Ubić jajka i dodać do połączonych ziemniaków i kiełbasy. Dodać sól i pieprz. Usmażyć z obu stron wielki omlet nadziewany chipsami ziemniaczanymi z kiełbaską.
Rok akademicki 2011/2012, Wykład nr 7 62/73 Lista kroków Lista kroków jest to uporządkowany opis wszystkich czynności, jakie należy wykonać podczas realizacji algorytmu Krok jest to pojedyncza czynność realizowana w algorytmie Kroki w algorytmie są numerowane, operacje wykonywane są zgodnie z rosnącą numeracją kroków Jedynym odstępstwem od powyższej reguły są operacje skoku (warunkowe lub bezwarunkowe), w których jawnie określa się numer kolejnego kroku Przykład (instrukcja otwierania wózka-specerówki): Krok 1: Krok 2: Krok 3: Zwolnij element blokujący wózek Rozkładaj wózek w kierunku kółek Naciskając nogą dolny element blokujący aż do zatrzaśnięcia, rozłóż wózek do pozycji przewozowej
Rok akademicki 2011/2012, Wykład nr 7 63/73 Schematy blokowe Schemat blokowy zawiera plan algorytmu przedstawiony w postaci graficznej struktury elementów zwanych blokami Każdy blok zawiera informację o operacji, która ma być w nim wykonana Pomiędzy blokami umieszczone są linie przepływu (strzałki) określające kolejność wykonywania bloków algorytmu Zależnie od typu wykonywanej operacji stosowane są różne kształty bloków Podstawowe symbole stosowane na schematach blokowych: linia przepływu (połączenie) występuje w postaci linii zakończonej strzałką określa kierunek przemieszczania się po schemacie
Rok akademicki 2011/2012, Wykład nr 7 64/73 Schematy blokowe Podstawowe symbole stosowane na schematach blokowych: blok startowy, początek algorytmu wskazuje miejsce rozpoczęcia algorytmu może występować tylko jeden raz STOP blok końcowy, koniec algorytmu wskazuje miejsce zakończenia algorytmu musi występować przynajmniej jeden raz blok wykonawczy, blok funkcyjny zawiera polecenie (elementarną instrukcję) instrukcją może być podstawienie, operacja arytmetyczna, wprowadzenie danych lub wyprowadzenie wyników
Rok akademicki 2011/2012, Wykład nr 7 65/73 Schematy blokowe Podstawowe symbole stosowane na schematach blokowych: blok warunkowy (decyzyjny, porównujący) sprawdza umieszczony w nim warunek i dokonuje wyboru tylko jednej drogi wyjściowej połączenia wychodzące z bloku: - T lub TAK - gdy warunek jest prawdziwy - N lub NIE - gdy warunek nie jest prawdziwy Czasami wprowadzanie i wyprowadzanie danych oznacza się dodatkowym blokiem wejścia-wyjścia blok wejścia-wyjścia poprzez ten blok wprowadzane są dane i wyprowadzane wyniki
Rok akademicki 2011/2012, Wykład nr 7 66/73 Pseudokod Pseudokod (pseudojęzyk) - jest to uproszczona wersja języka programowania Symbole geometryczne występujące na schematach blokowych zastępowane są zdaniami w języku ojczystym Często pojawiają się w nim zwroty pochodzące z języków programowania Zapis w pseudokodzie może być łatwo przetłumaczony na wybrany język programowania
Rok akademicki 2011/2012, Wykład nr 7 67/73 Opis w języku programowania Zapis programu w konkretnym języku programowania Najczęściej stosowane języki to Pascal i C
Rok akademicki 2011/2012, Wykład nr 7 68/73 Przykłady opisu algorytmów Algorytm Euklidesa - największy wspólny dzielnik dwóch liczb Lista kroków: Dane wejściowe: niezerowe liczby naturalne a i b Dane wyjściowe: NWD(a,b) Kolejne kroki: 1. Czytaj liczby a i b 2. Dopóki a i b są większe od zera, powtarzaj krok 3, a następnie przejdź do kroku 4 3. Jeśli a jest większe od b, to weź za a resztę z dzielenia a przez b, w przeciwnym razie weź za b resztę z dzielenia b przez a 4. Przyjmij jako największy wspólny dzielnik tę z liczb a i b, która pozostała większa od zera 5. Drukuj NWD(a,b)
Rok akademicki 2011/2012, Wykład nr 7 69/73 Przykłady opisu algorytmów Algorytm Euklidesa - największy wspólny dzielnik dwóch liczb Przykład: NWD(1675,3752) =? a b Dzielenie większej liczby przez mniejszą Zamiana 1675 3752 b/a = 3752/1675 = 2 reszta 402 b = 402 1675 402 a/b = 1675/402 = 4 reszta 67 a = 67 67 402 b/a = 402/67 = 6 reszta 0 b = 0 67 0 KONIEC NWD(1675,3752) = 67
Rok akademicki 2011/2012, Wykład nr 7 70/73 Przykłady opisu algorytmów Algorytm Euklidesa - największy wspólny dzielnik dwóch liczb Schemat blokowy:
Rok akademicki 2011/2012, Wykład nr 7 71/73 Przykłady opisu algorytmów Algorytm Euklidesa - największy wspólny dzielnik dwóch liczb Pseudokod: NWD(a,b) while a>0 i b>0 do if a>b then a a mod b else b b mod a if a>0 then return a else return b
Rok akademicki 2011/2012, Wykład nr 7 72/73 Przykłady opisu algorytmów Algorytm Euklidesa - największy wspólny dzielnik dwóch liczb Język C: int NWD(int a, int b) { while (a>0 && b>0) if (a>b) a = a % b; else b = b % a; if (a>0) return a; else return b; }
Rok akademicki 2011/2012, Wykład nr 7 73/73 Koniec wykładu nr 7 Dziękuję za uwagę!