Architektura systemów komputerowych MOJE

Architektura systemów komputerowych

Systemy komputerowe

Architektura komputerowa - cechy systemu widoczne dla programisty, które mają bezpośredni wpływ na realizację programu.

Organizacja komputera- struktura fizyczna- rozwiązanie układowe, sprzętowe, technologiczne, organizacja połączeń sygnałów sterujących, budowy i współpracy podzespołów, które są niewidoczne dla programisty i tworzą architekturę komputera. W skrócie jest to sposób realizacji architektury.

Architektura jest czymś trwalszym niż organizacja. Ta sama architektura może być oferowana w różnych modelach komputerów, różniących sie organizacja, która z kolei determinuje np. wydajność i cenę. Niezmienna architektura może być oferowana przez producenta przez wiele lat, umożliwiając łatwe przenoszenie istniejącego juz oprogramowania. Natomiast kolejne modele komputerów mogą mięć zupełnie inna organizacje, która może zmieniać sie dowolnie często wraz z rozwojem technologii.

Struktura to sposób wzajemnego powiązania składników.

Funkcje określają działanie poszczególnych składników, jako części struktury.

System komputerowy. Główne zespoły to procesor, pamięć i urządzenia wejścia-wyjścia.

Procesor. Główne zespoły to jednostka sterująca, rejestry, jednostka arytmetyczno-logiczna i jednostka wykonująca rozkazy.

Jednostka sterująca. Główne zespoły to pamięć sterowania, zespół szeregowania

mikrorozkazów i rejestry.

Składniki systemów komputerowych:

-sprzęt

-system

-programy użytkowe

-użytkownicy

Struktura systemu komputerowego składa się z pięciu zasadniczych warstw tj. warstwa sprzętowa, system operacyjny, programy narzędziowe, programy użytkowe i użytkownicy. Sprzęt, czyli procesor – zwany też jednostką centralną, pamięć i urządzenia wejścia i wyjścia, to podstawowe zasoby systemu komputerowego. Programy użytkowe (aplikacje) – kompilatory, systemy baz danych, gry komputerowe lub programy handlowe – określają sposoby użycia tych zasobów do rozwiązania zadań stawianych przez użytkowników. Zazwyczaj istnieje wielu różnych użytkowników (ludzie, maszyny, inne komputery) zmagających się z rozwiązywaniem różnych zadań. Odpowiednio do rozmaitych potrzeb może istnieć wiele różnych programów użytkowych. System operacyjny nadzoruje i koordynuje posługiwanie się sprzętem przez różne programy użytkowe, które pracują na zlecenie różnych użytkowników.

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 użycie zasobów sprzętowych poprzez różne programy użytkowe dla różnych użytkowników. Warstwa tworzona poprzez twórców systemu operacyjnego – są to zazwyczaj wysoko wyspecjalizowani specjaliści

Oprogramowanie narzędziowe – wspomaga zarządzanie zasobami sprzętowymi poprzez dogodne interfejsy użytkowe oraz usprawnia, modyfikuje 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, w jakie zostają użyte zasoby systemowe 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.

Cechy systemów komputerowych

-różnorodność pod wieloma względami: złożoność, cena, obszar zastosowań, wydajność, konstrukcja

-ścisła zależność dwóch sfer: sprzętu i oprogramowania

-hierarchiczność- system hierarchiczny jest układem wzajemnie powiązanych podsystemów, z których każdy również ma strukturę hierarchiczną, aż do osiągnięcia najniższego poziomu podsystemu elementarnego.

-olbrzymie tempo zmian

Przyporządkowanie organizacji wybranej architekturze ma efekty ekonomiczne i technologiczne:

-otwartość pozwala na ciągły rozwój konstrukcji bez zmiany architektury

-architektura może być realizowana przez różne organizacje o różnej cenie, oraz umożliwia istnienie dużego rynku producentów

-utrzymanie niezmiennej architektury pozwala na modernizację sprzętu przy jednoczesnym stosowaniu tego samego oprogramowania (koszty i utrzymanie klientów)

Podstawowe funkcje realizowane przez komputer

-przetwarzanie danych

-przechowywanie danych

-przenoszenie danych

-sterowanie

Każdy z wymienionych składników może występować w komputerze pojedynczo lub w większej liczbie.

Elementy struktury komputera

-jednostka centralna CPU – procesor realizuje funkcje przetwarzania danych i sterujące (elementy składowe: jednostka arytmetyczno-logiczna(ALU), rejestry (krótkie przechowywanie danych), jednostka sterująca, magistrala zewnętrzna i wewnętrzna)

-pamięć – przechowywanie danych

-układy wejścia- wyjścia i transmisji danych- przenoszenie danych

-przenoszenie systemowe- pozwalają na wymianę danych i sterowań między CPU, pamięcią oraz układami we/wy i transmisji

Składniki współczesnego komputera:

• (mikro) procesor, zawierajacy co najmniej jedna jednostke arytmetyczno-logiczna, jednostke sterujaca i rejestry;

• pamięć operacyjna;

• urządzenia wejścia - wyjścia (klawiatura, mysz, karta graficzna, pamięci dyskowe itp.);

• układ bezpośredniego dostępu do pamięci (ang. DMA – direct memory access);

• układ przerwań.

Warstwy opisu

-L0 -układ elektroniczny

-L1 - struktura logiczna i rozkazowa

-L2 -system operacyjny

-L3 -asembler (poziom kodu maszynowego +makra)

-L4 -język wysokiego poziomu

L0+L1 maszyna rzeczywista

L3+ maszyna wirtualna

Poziomy systemu komputerowego

0 – Logika cyfrowa – bramki, obwody

1 – Kontrola – mikroprocesor

2 – Maszyna – lista instrukcji

3 – Oprogramowanie systemowe – system operacyjny, biblioteki

4 – Asemblacja – przetwarzanie instrukcji

5 – Programowanie – języki programowania

6 – Użytkownik – aplikacje (jedyny widoczny poziom dla Użytkownika)

Architektura komputera – to te atrybuty systemu, które są widzialne dla programisty –

Mają bezpośredni wpływ na wykonywanie programu; np. Lista rozkazów, rozmiar

reprezentacji typów danych, mechanizmy wejścia/wyjścia, metody odwzorowywania pamięci.

Ze względu na sposób organizacji pamięci i wykonywania programu można wyróżnić:

1. Architekturę von Neumanna

2. Architekturę Harvardzką

v.N.:

• Przedstawiona po raz pierwszy w 1945

• Skończona i funkcjonalnie pełna lista rozkazów w systemie

• Dane i instrukcje jednakowo dostępne dla procesora

• Jedynym źródłem danych dla procesora jest pamięć główna

• Wykonanie rozkazu jest inicjowane przez pobranie z pamięci słowa interpretowanego jako

Instrukcja

• Nie pozwala Na jednoczesne pobieranie danych i sygnałów

• Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania

(programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym

Gwarantują jego uniwersalność

H.:

• Zwiększona wydajność przetwarzania

• Podział pamięci Na pamięć rozkazów i pamięć danych

Maszyna von Neumanna

John von Neumann opublikował w 1945 propozycje opracowania nowego komputera. Zasadnicza nowością była koncepcja przechowywania programu w pamięci. Komputer miał składać sie z czterech bloków funkcjonalnych:

• pamięć przechowująca program do wykonania i dane dla niego;

• jednostka arytmetyczno-logiczna zawierająca rejestry AC (accumulator), MQ (multiplier-quotier), MBR

(memory buffer register);

• jednostka sterująca zawierająca licznik programu PC (program counter), rejestr adresowy MAR (memory address register) i pomocnicze rejestry IBR (instruction buffer register), IR (instruction register);

• urządzenia wejścia - wyjścia.

Architektura ta polega na ścisłym podziale komputera na trzy podstawowe części:

System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien:

Architektura typu Harward polega na rozdzieleniu pamięci programu od pamięci danych. Stosowana

jest dla zwiększenia wydajności w pamięciach podręcznych oraz w systemach wbudowanych (np. sterownikach urządzeń AGD, gdzie kod programu nie zmienia sie przez całe życie urządzenia lub zmienia sie rzadko).

Architektura von Neumanna – według tej koncepcji komputer składa się z 3 podstawowych części:

· procesor – z wydzieloną częścią sterującą oraz częścią arytmetyczno-logiczną (ALU)

· pamięć – dane i instrukcje są przechowywane we wspólnej pamięci w postaci binarnej

· urządzenia IO (wejścia/wyjścia)

ALU - jednostka arytmetyczno - logiczna układ cyfrowy będący jedną z głównych części procesora, prowadząca proste operacje arytmetyczne (dodawanie, odejmowanie) oraz operacje logiczne (AND, OR, NOT, XOR). Zazwyczaj ALU ma dwa wejścia dla pary argumentów i jedno wyjście dla wyniku.

CPU - (Central Processing Unit) - urządzenie cyfrowe sekwencyjne potrafiące pobierać dane z pamięci, interpretować je i wykonywać jako rozkazy. Maszyna von Neumanna (ang. von Neumann machine) — pomysł konstrukcji komputera opracowany i wdroŜony przez Johna von Neumanna w roku 1945. Jego istotą było utrzymywanie w pamięci komputera zarówno programu, jak i danych, które są przechowywane w kodzie dwójkowym, a ich przetwarzanie odbywa się w arytmometrze. Wynalazek von Neumanna jest kontynuacją maszyny Turinga. Praktycznie wszystkie komputery są budowane według pomysłu von Neumanna. Do najważniejszych ograniczeń architektury von Neumanna należą:

· brak podział pomiędzy pamięcią zawierającą instrukcje programu i dane - istnieje możliwość błędu

W wyniku, którego, zamiast instrukcji mogą zostać wykonane dane, (co prowadzi do zupełnie

błędnych wyników). We współczesnych procesorach eliminuję się takie działanie poprzez

wprowadzenie mechanizmów ochrony pamięci (przy próbie pobrania instrukcji z bloku

zawierającego dane nastąpi odmowa jej wykonania)

· przesyłanie stosunkowo dużej ilości danych między pomiędzy CPU a pamięcią przy wykonywaniu

prostych operacji – powoduje to blokowanie dostępu do tej pamięci, ponadto przesyłanie danych

do pamięci jest operacją dość wolną w porównaniu z szybkością przetwarzania danych przez

współczesne procesory. Zjawisko to łatwo zobrazować na przykładzie dodawania dwóch liczb: aby

dodać do siebie dwie liczby procesor musi pobrać z pamięci instrukcję dodawania, następnie pobrać

pierwszą liczbą, drugą, wykonać dodawanie i zapisać wynik w pamięci – mamy tu aż 4 odwołania

do pamięci i tylko jedną operację przetwarzania. Jako rozwiązanie dla tego problemu (spadek

prędkości pracy całego komputera), stosuję się tzw. bufor (Cache), który przechowuje ostatnio

wykorzystywane dane z pamięci – w efekcie procesor otrzymuje te dane znacznie szybciej niż ze zwykłej pamięci.

Architektura harwardzka – modyfikacja

koncepcji von Neumanna, pamięć danych

programu jest oddzielona od pamięci rozkazów.

CPU pobiera kolejne instrukcje z pamięci

programu, operując na danych zawartych

w pamięci danych. Takie rozwiązanie umożliwia jednoczesne pobieranie instrukcji i danych, a także wykonywanie kolejnych instrukcji podczas zapisu wyników do pamięci danych. Tego typu rozwiązanie wymaga istnienia osobnych pamięci danych i programu i nie znalazło szerokiego zastosowania w komputerach osobistych. Architektura ta daje możliwość tworzenia specjalistycznych urządzeń o bardzo wysokiej wydajności przy prostej budowie – znalazła zastosowanie przy budowie procesorów sygnałowych DSP stosowanych do budowy układów elektroniki przemysłowej (np. przy budowie sprzętów AGD).

Reprezentacja danych

Procesory

Ze względu na rodzaj połączeń procesor-pamięć i sposób ich wykorzystania dzielimy architektury zgodnie z taksonomią Flynna:

Procesor. Jak jest zbudowany ?

Procesor przetwarza informacje wykonując na niej elementarne operacje nazywane instrukcjami lub rozkazami. Ciąg instrukcji realizujący konkretne zadanie nazywany jest programem. Procesor jest skomplikowanym automatem, który może wykonywać kilkaset dosyć prostych czynności - tzn. rozkazów maszynowych. Każdy rozkaz ma własny kod, liczbę zapisaną w jednym lub kilku bajtach. Procesor pobiera z pamięci kolejne bajty traktując je jako rozkazy lub dane i wykonuje zaprogramowane operacje. Procesor dzieli się na dwie podstawowe jednostki : wykonawczą i sterującą. Zadaniem jednostki wykonawczej jest przetwarzanie informacji czyli wykonywanie operacji artmetycznych i logicznych. Rodzaj wykonywanych operacji zależy od sygnałów sterujących przesyłanych przez jednostkę sterującą. W skład jednostki wykonawczej wchodzi : jednostka artmetyczno-logiczna, oraz zestaw rejestrów, które z nią współpracują. Informacją wejściową do jednostki wykonawczej są dane a informacją wyjściową wyniki w postaci liczb tekstu sygnałów sterujących pracą innych urządzeń. W skład jednostki sterującej wchodzi : rejestr rozkazów, dekoder rozkazów oraz układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu (instrukcji). W czasie wykonywania programu procesor odczytuje kolejne rozkazy, które następnie musi rozpoznać (dekodować). Istnieje wiele rodzajów mikroprocesorów. Większość z nich różni się częstotliwością zegara, wyrażaną w magahercach. Im wyższa częstotliwość zegara tym szybszy procesor. Wszystkie mikroprocesory więc zawierają podobne elementy:

1. układ sterowania i synchronizacji, który kontroluje pracę procesora i wytwarza sygnały potrzebne do sterowania niektórymi elementami komputera.

2. arytmometr, czyli układ, który wykonuje operacje arytmetyczne i logiczne (niektóre procesory mają kilka arytmometrów).

3. rejestry, tj. układy pamięci.

4. wbudowana pamięć podręczna cache, która działa podobnie do zewnętrznej pamięci RAM. Zapewnia ona, że procesor nie jest zmuszony czekać na dane potrzebne mu do pracy.

5. koprocesor matematyczny, który jest zestawem instrukcji przeznaczonych do obsługi skomplikowanych operacji matematycznych.

6. wewnętrzne szyny łączące elementy procesora.

Podstawowymi rejestrami, które znajdują się w każdym mikroprocesorze, są: 

1. licznik rozkazów - zawiera on adres następnego rozkazu do wykonania.

2. rejestr rozkazów - zawiera kod aktualnie wykonywanego rozkazu.

3. akumulator, jest używany w czasie wykonywania rozkazów arytmetycznych, logicznych, I/O i in. niektóre procesory mają kilka takich rejestrów.

4. rejestr znaczników - zawiera dodatkowe informacje o wyniku operacji arytmetyczno-logicznych, np. "wynik równy zeru".

ALU - układ ten jest często nazywany układem wykonawczym procesora, ponieważ wykonuje on większość rozkazów zlecanych procesorowi. Blok ALU jest układem, który realizuje różne funkcje w zależności od zaprogramowanej operacji, tj. rozkazu umieszczonego w programie. Argumentami tych rozkazów są słowa binarne. Rozkazy te mogą dotyczyć operacji artmetycznych (dodawanie i odejmowanie) lub logicznych (sumowanie, mnożenie itp.).

Rejestry

Zarówno jednostka artmetyczno-logiczna jak i układ sterowania musi współpracować z określonym zestawem rejestru. Zawartość pewnej części rejestru może być zmieniona w wyniku wykonania przez procesor określonej instrukcji. Rejestry takie nazywamy rejestrami dostępnymi programowo. W grupie tych rejestrów występują takie typy rejestrów, których odpowiedniki znajdują się praktycznie w każdym mikroprocesorze. Ich pojemność lub ilość może się zmieniać jednak zastosowanie i wykonywane zadania pozostają takie same.

Procesor

– nazywany często CPU (Central Processing Unit)

- pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy

- wykonany jako układ scalony

- ściśle związany z płytą głowną i pamięcią komputera

- serce procesora zbudowane jest z monokryształu krzemu

- procesor jest sercem komputera

- waŜnymi parametrami procesora jest długość słowa na którym przetwarzan są dane oraz szybkość z

jaka wykonuje program

- waŜny jest rozmiar elementów budujących strukturę procesora – im są mniejsze tym są bardziej

wydajne, jest ich przez to więcej i zuŜywają mniejszą ilość energii, procesor dzięki temu posiada

większą częstotliwość pracy.

- Nadzoruje on i synchronizuje prace wszystkich urządzeń w komputerze

Pamieci

Hierachia pamieci:

• rejestry procesora;

• pamiec podreczna, do trzech poziomów;

• pamiec operacyjna, pamiec główna;

• pamiec wirtualna, zrealizowana w oparciu o zewnetrzna pamiec masowa;

• system plików, zewnetrzna pamiec masowa;

• nosniki wymienne, zasoby sieciowe.

W góre tej hierarchii rosnie szybkosc, a w dół rosnie pojemnosc.

Pamieci półprzewodnikowe

Pamieci półprzewodnikowe mozna podzielic z uwzglednieniem wielu kryteriów:

• trwałosc przechowywanej informacji

ulotne

nieulotne

• spsób adresowania

adresowanie poszczególnych bajtów lub słów

bezadresowe (np. pamieci FIFO)

adresowanie zawartoscia, asocjacyjne

• liczba magistral

jednobramowe, jednodostepne

wielobramowe, wielodostepne

• sposób wprowadzania i wyprowadzania informacji

równoległe

szeregowe

szeregowo-równoległe

• rodzaj synchronizacji

asynchroniczne

synchroniczne

• organizacja wewnetrzna

liczba matryc

rozmiar matrycy

liczba bitów pamietana w pojedynczej komórce

Parametry uzytkowe pamieci:

• pojemnosc

• szybkosc dostarczania danych

• koszt na jeden bit

• ziarnistosc – minimalna wielkosc pamieci, o która mozna zwiekszyc pamiec systemu

• organizacja (zewnetrzna) – liczba bitów w kosci razy liczba kosci w module razy liczba adresów w kosci

razy liczba modułów

• czas dostepu – najmniejszy przedział czasu potrzebny do odczytania lub zapisania pojedynczej porcji (słowa) informacji

• czas cyklu – najmniejszy przedział czasu miedzy poczatkiem dwóch kolejnych operacji dostepu do pamieci

Pamieci podreczne

Sposób odwzorowania adresów pamieci wyzszego poziomu na adresy pamieci podrecznej:

• bezposredni, 1-skojarzeniowy;

• sekcyjno-skojarzeniowy, n-skojarzeniowy (n > 1);

• skojarzeniowy, w pełni skojarzeniowy, asocjacyjny.

Zjawisko migotania pamieci podrecznej.

Przy odwzorowaniu innym niz bezposrednie stosuje sie nastepujace algorytmy zastepowania:

• LRU (least recently used, najdawniej ostatnio uzywany) – zastepowany jest ten blok, który pozostawał w pamieci podrecznej najdłuzej bez odwoływania sie do niego;

• FIFO (first in first out, pierwszy wchodzi pierwszy wychodzi) – zastepowany jest ten blok, który pozostawał w pamieci podrecznej najdłuzej;

• LFU (least frequently used, najrzadziej uzywany) – zastepowany jest ten blok, do którego było najmniej odwołan;

• zastepowany jest losowo wybrany blok.

Sposób uzgadniania zawartosci pamieci wyzszego poziomu z pamiecia podreczna podczas zapisu:

• zapis jednoczesny (ang. write through);

• zapis opózniony (ang. copy/write back);

• zapis inclusive;

• zapis exclusive.

Hierarchia pamięci


Wyszukiwarka

Podobne podstrony:
Sprawozdanie 2, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych,
tranzystory mosfet(1), Architektura systemów komputerowych, Sentenza, Sentenza
sciaga-skrocona, Informatyka Stosowana, Architektura systemów komputerowych, ASK
ukl 74xx, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Archit
Architektura systemów komputerowych przeliczanie systemów, Notatki
T 3 Architektura systemow komputerowych wytyczne
ASK, Informatyka Stosowana, Architektura systemów komputerowych, ASK
R5 Budowa mikroprocesora, Architektura Systemów Komputerowych
Laboratorium z Architektury systemów komputerowych, Nieliniowe, Skład grupy laboratoryjnej:
Laboratorium z Architektury systemów komputerowych, Nieliniowe, Skład grupy laboratoryjnej:
Wyt T 3 Architektura systemow komputerowych
wyk.9, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembler
wyk.7.1, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Assembl
zagadnienia-arch-zaoczne, Architektura systemów komputerowych, Sentenza, Sentenza
pytania na wejściówki - 97-2003, Architektura Systemów Komputerowych
Zegar sciaga, Studia Informatyka 2011, Semestr 1, Architektura systemów komputerowych, Ściągi
sumator i polsumator, Architektura systemów komputerowych, Sentenza, Sentenza
20030829125435, Architektura systemów komputerowych
AK, Architektura systemów komputerowych

więcej podobnych podstron