ak2 docx id 53612 Nieznany (2)

background image

1.       Struktura i organizacja typowego systemu komputerowego.
 
Komputer to urządzenie do przetwarzania danych, wyposażone w możliwość 
wprowadzania, przechowywania i wyprowadzania danych.
 
Taksonomia Flynna (1968) – zakłada, że komputer jest urządzeniem przetwarzającym 
strumienie danych na podstawie strumieni instrukcji. Klasyfikuje komputery wg liczby 
strumieni instrukcji i  danych (od 1 do n)
 



Taksonomia Skillicorna (1988) – opisuje komputer jako strukturę złożoną ze składników.
 
Każdy budowany obecnie komputer jest realizacją maszyny John von Neumanna, stąd 
komputery te charakteryzują następujące cechy:
  Instrukcje tworzące program są przechowywane w pamięci w taki sam sposób, jak 
dane
  Pamięć składa się z pewnej liczby ponumerowanych komórek. Dostęp do pamięci 
następuje poprzez podanie przez procesor numeru komórki zwanej adresem
  Zazwyczaj komputer będzie pobierał (poza określonymi szczególnymi przypadkami) 
kolejne instrukcje programu z kolejnych komórek pamięci. Komórki te będą wybierane 
przez zwiększający się adres, który powinien być przechowywany i inkrementowany 
w procesorze. Adres ten jest przechowywany w specjalnym rejestrze – tzw. liczniku 
instrukcji (Program Counter – PC)
 
 

2.       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 

background image

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



3.       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:

● przerwania sprzętowe - są generowane przez urządzenia fizyczne
● przerwania programowe - są zaplanowane przez programistę - polegają na 

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

● przerwania awaryjne - procesor sam podejmuje decyzje o przerwaniu programu. 

background image

 

Wyjątki (ang. exception) w mikroprocesorach można podzielić na kilka podstawowych 
rodzajów:

● niepowodzenia (ang. fault) w czasie wykonywania pewnego rozkazy występuje 

błąd. Wykonanie programu jest przerywane. Wykonywana jest procedura obsługi 
tego wyjątku/błędu. Po zakończeniu procedury wracamy do wykonania programu 
począwszy od wykonania tego rozkazu (wyjątku). Przykład: Brak strony procesów 
pamięci fizycznej.

● błędy nienaprawialne (ang. abort) w czasie wykonana rozkazu(programu) 

występuje błąd i realizowana jest P.O.W. a po zakończeniu program jest 
wyłączany.

● pułapki (ang. trap) rozkaz zostaje wykonany, program zostaje przerwany, 

wykonywana jest procedura wyjątku a po jej zakończeniu kontynuowane jest 
wykonywanie programu.



4.       Dane i ich przetwarzanie w systemie komputerowym.

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

● Wartości logiczne (true/false)
● Tekstowe
● Liczbowe – całkowite (ujemne, nieujemne), niecałkowite (stałoprzecinkowe, 

zmienno przecinkowe)

● Dźwięki i inne sygnały jednowymiarowe
● Obrazy rastrowe (

Rasteryzacja

 

– w

 

grafice komputerowej

 

działanie polegające na jak najwierniejszym 

przedstawieniu płaskiej

 

figury geometrycznej

 

na

 

urządzeniu

 

rastrowym, dysponującym skończoną rozdzielczością.)

 
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:

● ASCII – 128 pozycji. Zawiera 95 znaków widocznych (małe i wielkie litery alfabetu 

łacińskiego, cyfry, znaki interpunkcyjne, podstawowe symbole matematyczne) 
i 33 niewidoczne (odstępy (spacja – kod 32 ), inne znaki formatujące)

● Rozszerzone kody 265-pozycyjne oparte na bazie ASCII – 128 pozycji to 

alfabet łaciński, kolejne 128 znaków to znaki narodowe (np. alfabet słowiański, 
cyrylica) lub inne symbole (problem: różne kody dla różnych części świata)

● Kody rodziny EBCDIC (

Extended Binary Coded Decimal Interchange Code, czyli

 

rozszerzony dziesiętny 

zakodowany dwójkowo kod wymiany

) – używany przez IBM

● UNICODE – pierwotnie 2

16

 obecnie 2

32

 możliwych pozycji; reprezentacja 

wszystkich znaków używanych na świecie (obecnie jest zdefiniowanych 
kilkadziesiąt tysięcy znaków)

 
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)

 

background image



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):

● Little Endian – najmniej znaczący bajt pod najmniejszym adresem. Adres bajtu 

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.

● Big Endian – najbardziej znaczący bajt pod najmniejszym adresem. Dostęp do 

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.

(Nazwy konwencji pochodzą z powieści „Podróże Guliwera”, w której odnosiły się one do dwóch społeczności, różniących się 

zasadami jedzenia gotowanych jaj.

 <= Lol :P 

)

 
Rodzaje transmisji danych:

● równoległa kady z transmitowanych bitów jest przesyłany oddzielnym przewodem 

w takt sygnału synchronizujacego (w kadym takcie przysyłany jest kompletny 
zestaw bitów np. 1B). Dzieki temu transmisja jest szybka ale linia połaczeniowa 
musi zawierac przynajmniej tyle przewodów ile bitów zawiera pojedyncza 
porcja informacji oraz dodatkowe połaczenia dla sygnałów kontrolnych np. przy 
transmisji bajtów jest to min. 8 przewodów.

● szeregowa wszystkie transmitowane bity przesyłane sa jednym wspólnym 

przewodem, jeden za drugim w takt sygnału synchronizujacego. Transmisja 
trwa tyle cykli synchronizacji ile bitów zawiera pojedyncza porcja informacji, z 
tego powodu trudno jest osiagnac dua predkosc transmisji ale linia połaczeniowa 
zawiera mało przewodów.

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

Konwencjonalna maszyna??

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 procesorwykonują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 

background image

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.

6.       Połączenia wewnątrz- i zewnątrz systemowe, urządzenia wejścia/
wyjścia.
 
Połączenia zewnętrzne odbywają się poprzez porty wejściowe i wyjściowe. Są one 
widziane tak samo lub podobnie jak lokacja pamięci. W większości architektur porty są 
odwzorowane w przestrzeni adresowej pamięci. W niektórych architekturach, np. w x86, 
porty urządzeń zewnętrznych są dostępne w oddzielnej przestrzeni adresowej, na której 
operują specjalne instrukcje procesora – tzw. instrukcje wejścia-wyjścia.
 
7.       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: jednoprocesorowe 
wielordzeniowe (zawierające jeden procesor wielordzeniowy), symetryczne 
wieloprocesorowe (zawierające kilka identycznych, równorzędnych procesorów) 
oraz systemy składające się z wielu maszyn: klastry (grupa połączonych ze sobą 
komputerów), systemy MPP (przetwarzanie współbieżne na wielu procesorach), 
czy gridy (sieci komputerów).
Poziomy równoległości:

● Poziom programów – wiele programów wykonywanych równolegle dzięki 

podziałowi czasu  i wieloprocesorowości (problem: projektowanie algorytmów 
równoległych)

● Poziom procedur – równolegle wykonywanie procedur składających się na jeden 

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

● Poziom międzyrozkazowy – równoczesna realizacja różnych instrukcji tej samej 

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

● Poziom wewnątrzrozkazowy – równoczesność realizacji operacji (mikrokodów) 

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





background image

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

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 y 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

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


Wyszukiwarka

Podobne podstrony:
poprawachyba2013 docx(1) id 375 Nieznany
GOS charakterystyka docx id 193 Nieznany
Filozofia zycia docx) id 170494 Nieznany
maszyny docx id 281860 Nieznany
poprawachyba2013 docx(1) id 375 Nieznany
AK2 id 53614 Nieznany
BIOCHEMIA 2011 termin 2 docx id Nieznany (2)
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany

więcej podobnych podstron