Architektura komputerów

Architektura komputerów

  1. Struktura i organizacja typowego systemu komputerowego.

System komputerowy – układ współdziałania dwóch składowych: sprzętu komputerowego oraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.

Struktura systemu komputerowego składa się z pięciu zasadniczych warstw:

Sprzęt – zapewnia podstawowe możliwości obliczeniowe (procesor, pamięć, urządzenia wejścia/wyjścia) – podstawowe zasoby systemu komputerowego.

Oprogramowanie systemowe – kontroluje i koordynuje działanie zasobów sprzętowych przez zastosowanie różnych programów użytkowych dla różnych użytkowników. Warstwa tworzona przez twórców systemu operacyjnego – są to zazwyczaj wysoko wyspecjalizowani specjaliści.

Oprogramowanie narzędziowe – dogodne interfejsy użytkowe wspomagające zarządzanie zasobami sprzętowymi oraz usprawniające, modyfikujące oprogramowanie systemowe, zazwyczaj pisane przez niezależnych programistów, którzy mają na celu usprawnienia wykonywania programów w bardziej wygodny i wydajny sposób, a przy tym często eliminują błędy czy też niedociągnięcia oprogramowania systemowego.

Oprogramowanie użytkowe – określają sposoby użycia zasobów systemowych do rozwiązywania problemów obliczeniowych zadanych przez użytkownika (kompilatory, systemy baz danych, gry, oprogramowanie biurowe), tworzone przez programistów.

Użytkownicy – ludzie, maszyny, inne komputery, mają bezpośredni kontakt z oprogramowaniem użytkowym.

Organizacja systemu komputerowego to opis zależności sprzętowych, przedstawienie poszczególnych podzespołów komputera, który funkcjonuje według pewnych reguł i zasad, współpracuje ze sobą – by osiągnąć określony cel. Organizacja systemu komputerowego określa zasady, reguły, cele oraz sposób wspomagania działań poszczególnych podzespołów.

  1. Budowa i działanie typowego procesora ogólnego przeznaczenia.

Procesor (ang. processor) - urządzenie cyfrowe sekwencyjne potrafiące pobierać dane z 

pamięci, interpretować je i wykonywać jako rozkazy. Wykonuje on bardzo szybko ciąg 

prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych 

zazwyczaj przez producenta procesora jako lista rozkazów procesora.

Procesor wykonywany jest zwykle jako układ scalony (struktura VLSI) zamknięty w 

hermetycznej obudowie posiadającej złocone wyprowadzenia. Złoto jest konieczne, aby 

zmniejszyć pojemności pasożytnicze połączeń oraz rezystancji połączeń. Jego sercem 

jest monokryształ krzemu, na który naniesiono techniką fotolitografii szereg warstw 

półprzewodnikowych. Tworzą one sieć od kilku do kilkudziesięciu milionów tranzystorów. 

Połączenia wykonane są z metalu (aluminium, miedź). Ważnym parametrem procesora 

jest rozmiar elementów tworzących jego strukturę. Im są one mniejsze tym niższe jest 

zużycie energii, napięcie pracy oraz wyższa częstotliwość pracy.

Najważniejsze elementy budowy obecnie produkowanych procesorów to :

Jednostka arytmetyczno-logiczna (ALU) - układ cyfrowy przeprowadzający operację na liczbach całkowitych

Koprocesor, jednostka zmiennoprzecinkowa (FLU) – układ cyfrowy przeprowadzający 

operację na liczbach zmiennoprzecinkowych

Rejestry procesora - komórki pamięci o niewielkich rozmiarach (najczęściej 4/8/16/32/64/128

bitów) umieszczone wewnątrz procesora i służące do przechowywania tymczasowych wyników

obliczeń, adresów lokacji w pamięci operacyjnej itd. Większość procesorów przeprowadza działania

wyłącznie korzystając z wewnętrznych rejestrów, kopiując do nich dane z pamięci i po zakończeniu

obliczeń odsyłając wynik do pamięci

Pamięć cache (pamięć podręczna) - Pamięć cache przyspiesza dostęp do relatywnie wolnej pamięci

RAM. Charakteryzuje się bardzo krótkim czasem dostępu. Jest używana do przechowywania danych,

które będą w niedługim czasie przetwarzane. Na współczesnych procesorach są 2 lub 3 poziomy

pamięci cache: L1, L2 i L3

Kontroler pamięci – nowoczesne procesory mają wbudowane kontrolery pamięci operacyjnej RAM,

dzięki czemu odciążony zostaje chipset płyty głównej, zwiększona zaś zostaje wydajność całego

systemu.

Zegar procesora – układ cyfrowy generujący sygnał determinujący szybkość przetwarzania

informacji w procesorze

  1. Wykonywanie rozkazów przez procesor(y), przerwania, wyjątki.

Program składa się z zestawu rozkazów przechowywanych w pamięci. Procesor realizuje 

proces wykonywania programu w dwóch etapach.

1. procesor odczytuje rozkaz z pamięci

2. procesor realizuje rozkaz

Wykonanie  pojedynczego rozkazu jest nazywane cyklem rozkazu i dzieli się na 

cykl pobierania i wykonania. Wykonywanie programu może być przerwane tylko w 

określonych sytuacjach.

Na początku cyklu rozkazu procesor pobiera rozkaz z pamięci, o tym który to ma być 

rozkaz decyduje licznik programu (PC). Po uruchomienia komputera licznik PC zaczyna 

kolejno podawać adresy komórek pamięci zawierających rozkazy.

Pobrany rozkaz jest wprowadzony do rejestru rozkazu (RR). Rozkaz ten posiada formę 

kodu binarnego określającego działanie, które ma podjąć komputer. Po interpretacji 

rozkazu następuje jego wykonanie.

 

Przerwanie jest to sytuacja szczególna, w której procesor przerywa wykonywanie 

aktualnego programu, (specjalny program zwany procedurą obsługi przerwania) a 

następnie powraca do poprzednio wykonywanego programu. 

Procedura wykonania przerwania może mięć związek z wykonaniem programu lub nie. 

Większość przerwań ma charakter losowy. Programy obsługi przerwania są krótkimi 

programami. 

 

Ze względu na źródło sytuacji szczególnej przerwania dzielimy:

wstawieniu do kodu  programu odpowiedniego polecenia (INT n - gdzie n to 

numer przerwania)

Wyjątek (ang. exception) jest mechanizmem przepływu sterowania używanym w mikroprocesorach oraz współczesnych językach programowania do obsługi zdarzeń wyjątkowych, a w szczególności błędów, których wystąpienie zmienia prawidłowy przebieg wykonywania programu. W momencie zajścia niespodziewanego zdarzenia generowany jest wyjątek, który musi zostać obsłużony poprzez zapamiętanie bieżącego stanu programu i przejście do procedury jego obsługi. W niektórych sytuacjach po obsłużeniu wyjątku można powrócić do wykonywania przerwanego kodu, korzystając z zapamiętanych informacji stanu. Przykładowo obsługa błędu braku strony pamięci polega najczęściej na pobraniu brakującej strony z pliku wymiany, co umożliwia kontynuowanie pracy programu, natomiast błąd dzielenia przez zero powoduje, że wykonywanie dalszych obliczeń nie ma sensu i musi zostać przerwane na trwałe.

  1. Dane i ich przetwarzanie w systemie komputerowym.

Współczesne komputery działają w systemie binarnym. Wszystkie dane, na których 

operuje komputer, są zapisane w postaci ciągów cyfr binarnych – bitów (BInary Digit), 

interpretowanych najczęściej jako liczby binarne o długości 8x2^n bitów (np. 8, 16, 32, 

64). Dane o charakterze nie liczbowym muszą być zapisane (zakodowane) w postaci liczb 

lub grup liczb.

Każdy znak jest reprezentowany przez liczbę stanowiącą jego kod w tablicy kodowej.

Najczęściej używane kody:

łacińskiego, cyfry, znaki interpunkcyjne, podstawowe symbole matematyczne) 

i 33 niewidoczne (odstępy (spacja – kod 32 ), inne znaki formatujące)

wszystkich znaków używanych na świecie (obecnie jest zdefiniowanych 

kilkadziesiąt tysięcy znaków)

Dane na których może operować komputer można podzielić na:

zmienno przecinkowe)

przedstawieniu płaskiej figury geometrycznej na urządzeniu rastrowym, dysponującym skończoną rozdzielczością.)

Jednostki informacji:

● bit(b) – najmniejsza jednostka informacji (0-1, TAK-NIE, TRUE-FALSE)

● bajt(B) – najmniejsza jednostka informacji adresowana przez procesor (8 bitów)

● słowo – jednostka informacji na której operuje komputer (1, 2, 4, 8, 16 bajtów)

● słowo procesora – jednostka informacji o długości naturalnej dla danego 

procesora (długość odpowiada długości rejestrów – obecnie 32 lub 64 bity)

● słowo pamięci – jednostka informacji możliwa do przetransmitowania w jednym 

cyklu transmisji do lub z pamięci. Czym większa długość tym szybsza transmisja 

danych (obecnie 64 – 128 bitów)

 

Organizacja pamięci.

W komputerach uniwersalnych jednostką adresowania jest bajt. Dane wielobajtowe 

zajmują odpowiednią liczbę komórek pamięci (i adresów). Słowo pamięci ma długość nie 

mniejsza niż słowo procesora (zwykle 64 lub 128 bitów).

Istnieją dwie konwencje zapisu danych wielobajtowych (konwencje adresowania danych):

odzwierciedla wagę bajtu w liczbie. Istotna cecha tego zapisu to , że jeżeli 

zapiszemy w pamieci daną całkowitoliczbową w długim formacie (np. 64bity), to 

przy dostępach do jej mniej znaczącej części o mniejszej długości (np. jednego, 

dwóch lub czterech bajtów) adres danej będzie taki sam w każdym przypadku. 

Jest to wygodne przy częstym rzutowaniu typów całkowitoliczbowych.

danej całkowitoliczbowej w pamięci wymaga zmiany wartości adresu w zależności 

od długości danej. Jeżeli liczba 32-bitowa zostanie zapisana pod adresem A to 

jej wartość w postaci jednobitowej ma adres A+3. Zaletą tej konwencji jest 

możliwość szybkiego porównywania łańcuchów tekstowych przy użyciu instrukcji 

operujących na liczbach całkowitych o dł. 32 lub 64 bity. Wektor znaków (bajtów) 

interpretowany jako liczba ma w najbardziej znaczącym bajcie pierwszy bajt 

łańcucha. Zamiast więc prowadzić operację porównywania łańcuchów znak po 

znaku, można ją wykonać posługując się grupami znaków o długości słowa 

procesora.

  1. Koncepcja „konwencjonalnej maszyny”, język maszynowy, asembler.

Język maszynowy (kod maszynowy) – język programowania, w którym zapis programu 

wymaga instrukcji bezpośrednio jako liczb, które są rozkazami i danymi bezpośrednio 

pobieranymi przez procesor wykonujący ten program.

Kod maszynowy może być generowany w procesie kompilacji (w przypadku języków 

wysokiego poziomu) lub asemblacji (w przypadku asemblera). W trakcie procesu 

tworzenia kodu maszynowego tworzony jest często kod pośredni, który może być 

zapisywany w pliku o odpowiednim formacie. Kod pośredni poddawany jest linkowaniu, 

które wygeneruje ostateczny obraz programu w taki sposób, że system operacyjny 

będzie mógł go wczytać, z ewentualnym dostosowaniem argumentów będących adresami 

do adresów odpowiednich bloków programu w pamięci, i wykonać zawarte w nim 

instrukcje.

Ponieważ każdy typ procesora ma swój własny język maszynowy, jest to najmniej przenośny język programowania.

Asembler - język programowania niskiego poziomu powstały na bazie języków 

maszynowych danego procesora poprzez zastąpienie kodów operacji ich mnemonikami 

(składający się z kilku liter kod-słowo, które oznacza konkretną czynność procesora). 

Dzięki stosowaniu kilkuliterowych skrótów poleceń zrozumiałych dla człowieka pozwala 

to z jednej strony na tworzenie oprogramowania, z drugiej strony bezpośrednia 

odpowiedniość mnemoników oraz kodu maszynowego umożliwia zachowanie wysokiego 

stopnia kontroli programisty nad działaniem procesora. Składnia języka może być różna 

w zależności od stosowanego procesora. 

Przykładowe polecenia (mnemoniki) w języku Asembler x86:

mov ax, 0D625h 

mov es, ax ; wprowadź do rejestru segmentowego ES wartość z AX wynoszącą

D625 szesnastkowo (54821 dziesiętnie) 

mov al, 24 

mov ah, 0  ; załaduj do rejestru AX wartość 24 (wyzeruj AH – starszą

połówkę rejestru AX i zapisz wartość 24 w młodszej AL) 

int 21h    ; wywołaj przerwanie nr 33 (21 szesnastkowo)

Pierwszym asemblerem był skonstruowany przez Konrada Zuse w 1945 r.  

Pierwszym polskim asemblerem był SAS komputera XYZ z okolo 1958 r.

  1. Połączenia wewnątrz i zewnątrz systemowe, urządzenia wejścia/wyjścia.

Urządzenie wejścia-wyjścia, urządzenie we/wy, urządzenie I/O (ang. input/output device) służy do komunikacji systemu przetwarzania danych (np. komputera) ze światem zewnętrznym – użytkownikiem, urządzeniem lub innym systemem przetwarzania danych. Urządzenie wejścia-wyjścia służy często do zamiany wielkości fizycznych na dane przetwarzane przez system lub odwrotnie. Np. mysz komputerowa przetwarza ruch ręki, odbiornik GPS aktualne położenie geograficzne, a Monitor komputera przetwarza dane komputerowe na obraz.

Dane wejściowe to te, które są przekazywane do systemu. Dane wyjściowe to te, które z systemu są wysyłane. Niektóre z urządzeń są typowymi urządzeniami wejścia, inne wyjścia, pozostałe natomiast jednocześnie wejścia i wyjścia.

typowe urządzenia wejścia to np.: klawiatura, mysz komputerowa, skaner, dżojstik, mikrofon. Mniej typowe to: odbiornik GPS, czytnik linii papilarnych, kamera internetowa.

typowe urządzenia wyjścia to np.: monitor, drukarka, głośniki, słuchawki. Mniej typowe: kontrolki stanu urządzenia, brzęczyk.

typowe urządzenia wejścia i wyjścia to np.: karta sieciowa, modem, ekran dotykowy, moduł Bluetooth, moduł IrDA, złącze USB oraz wszelkie inne nośniki danych z możliwością zapisu i odczytu.

  1. Realizacja przetwarzania równoległego w systemach komputerowych.

Przetwarzanie równoległe jest to forma wykonywania obliczeń, w której 

wiele instrukcji jest wykonywanych jednocześnie. 

Ze względu na poziom, na którym sprzęt wspomaga operacje równoległe można wyróżnić komputery:

komputerów)systemy MPP (przetwarzanie współbieżne na wielu procesorach), 

czy gridy (sieci komputerów).

Do prowadzenia obliczeń równoległych, oprócz sprzętu, konieczne są również odpowiednie algorytmy nazywane równoległymi. Są one trudniejsze w implementacji niż sekwencyjne[3], ponieważ współbieżność wprowadza dodatkowe możliwości popełnienia błędu. Powstają również dodatkowe problemy w uzyskaniu wysokiej wydajności z powodu dodatkowych nakładów na komunikację i konieczność synchronizacji obliczeń.

Poziomy równoległości:

podziałowi czasu  i wieloprocesorowości (problem: projektowanie algorytmów 

równoległych)

program (problem: podział programu na równolegle-szeregowe segmenty)

procedury (problem: analiza zależności między danymi)

składających się na jeden rozkaz (problem: rozbicie rozkazów na operacje i 

konstrukcja sprzętu)

  1. Optymalizacja wydajności procesora(ów) i systemu komputerowego.

Procesor:

- zwiększanie częstotliwości zegara taktującego

- zwiększanie wielkości rejestrów i pamięci podręcznych a także szybkości ich działania

- wielordzeniowość (skutek widoczny jedynie w aplikacjach wykorzystujących wielowątkowość)

- integrowanie kontrolerów: pamięci i we/wy

- zmiana procesu technologicznego – im niższy stopień procesu technologicznego, tym więcej

tranzystorów można umieścić na jednej strukturze krzemowej, mniejsze są odległości między nimi,

zmniejszane jest zapotrzebowanie na energię elektryczną oraz ilość wydzielanego ciepła

System komputerowy:

- wąskie gardła - wąskie gardła to potoczna nazwa elementów komputera spowalniający wymianę

informacji między najważniejszymi podzespołami takimi jak procesor, chipset, karta graficzna,

pamięć operacyjna. Wąskimi gardłami w typowym systemie komputerowym jest szyna danych

(mechanizm i fizyczne rozwiązania przesyłu danych), dysk twardy (w momencie konieczności

wczytania danych do pamięci operacyjnej), chipset płyty głównej wraz z kontrolerami I/O (problem

w komunikacji procesora z pamięcią operacyjną i/lub urządzeniami nie będącymi elementami płyty

głównej – np. karty graficznej) oraz sama pamięć operacyjna.

Sposoby usuwania:

- zwiększanie wydajności dysków twardych (zwiększenie szybkości obrotowej talerzy, ulepszenie

interfejsów we/wy (SATA, SAS, SCSI, FibreChannel), rezygnacja z mechanicznych elementów

dysków twardych – dyski w technologii SSD), tworzenie fizycznych macierzy dyskowych

wykorzystujących mechanizm zapisu równoległego (dane są dzielone na części, a następnie

zapisywane równolegle na kilku dyskach twardych)

- udoskonalenie szyn pamięci – zwiększenie ich przepustowości, najczęściej poprzez zwiększenie

częstotliwości przesyłu informacji

- wielokanałowość pamięci operacyjnej – obecnie stosowane technologie dual- i triple-channel,

dzięki którym, podobnie jak w przypadku macierzy dyskowych, dane są rozdzielane między banki

pamięci i wykorzystywane równolegle

- umieszczenie kontrolerów pamięci oraz kontrolerów we/wy w samym procesorze – dzięki temu

zabiegowi eliminowane jest pośrednictwo chipsetu płyty głównej w przesyle danych. Bliskość

kontrolerów do właściwego procesora zapewnia małe opóźnienia w przesyle


Wyszukiwarka

Podobne podstrony:
ARCHITEKTURA KOMPUTEROW1A
architektury komputerow v1 1
Architektura Komputera, Informatyka, Płyta Główna
Architektury Komputerów zagadnienia
Architektura komputerów I 16 12 2008
gulczas 2001 opracowanie, Politechnika Wrocławska - Materiały, architektura komputerow 2, egzamin, o
Architektura komputerów I 09 12 2008
Architektura komputerów i systemy operacyjne
Architektura Komputerów wiedza ogólna
ak projekt, Studia, PWR, 4 semestr, Architektura komputerów 2, projekt
Tematy cwiczen, Architektóra komputerów
ako pytania zadania cz2 2010, Studia - informatyka, materialy, Architektura komputerów
Architektura komputerów I 25 11 2008
Architektura Komputerow lista 3
AK test, stud, IV semestr, Architektura Komputerow
Podstawy architektury komputera, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr II
lista3 rozwiązania, Politechnika Wrocławska - Materiały, architektura komputerow 1, Rozwiazania lis
Sciaga 3 - Architektura, szkola, architektura komputerow

więcej podobnych podstron