Procesor Flashcards

1
Q

Z czego składa się współczesny system komputerowy?

A

System komputerowy będzie się składał z między innymi;
◆ minimum jednej (a najczęściej większej ilości) jednostki centralnej łączącej w sobie elementy zgodne z architekturą Von Neumanna
◆ sterowników sprzętowych
◆ wspólnej magistrali danych, łączącej powyższe elementy, umozliwiającą komunikację z pamięcią
◆ wspólną pamięć
◆ urządzeń wejścia-wyjścia

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Czym jest jednostka centralna?

A

Procesor jest komponentem, który odpowiada za interpretację programu i przetwarzanie danych zgodnie z instrukcjami tegoż.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Na czym polegają działania wykonywane przez procesor?

A

Przekształca on liczby binarne - czyli wykonywać na nich podstawowe działania matematyczne, w sposób zdefiniowany przez program, który to również składa się z liczb binarnych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Co jest podstawową funkcją procesora?

A

Jest to wykonywanie programów, czyli instrukcji przechowywanych w pamięci. Wykonanie każdej instrukcji jest rozbijane na kroki.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Jakie są etapy wykonywania przez procesor poszczególnej instrukcji?

A

◆ pobieranie rozkazów
◆ interpretacja rozkazów
◆ wykonywanie rozkazów
◆ zapis wyników

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jak przebiega pobieranie rozkazów?

A

Rozpoczyna go odczyt poleceń z pamięci. Każde polecenie jest liczbą (możecie je traktować jako numer rozkazu). Ile poleceń “rozumie” nasz procesor - to już kwestia konstrukcji, ale zawsze jest to skończona liczba. Położenie instrukcji w pamięci jest zdefiniowane przez specjalny blok, nazywany licznikiem rozkazów lub słowem stanu programu (program counter, PC), który przechowuje adres aktualnie wykonywanej instrukcji w pamięci operacyjnej. Po pobraniu następuje zwiększenie PC o długość pobranego rozkazu (w jednostkach pamięci, czyli najczęściej w bajtach). Natomiast w przypadku konieczności wykonania skoku - zawartość PC może być zmieniana przez odpowiednią instrukcję procesora.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jak przebiega interpretacja rozkazów?

A

Po odczytaniu polecenia z pamięci, w pierwszym etapie przetwarzania, procesor interpretuje polecenie. W trakcie tego kroku instrukcja jest rozbijana na części, które mają znaczenie dla poszczególnych bloków procesora. Sposób w jaki procesor interpretuje instrukcje, jest zależny od jego architektury i zestawu instrukcji (instruction set architecture, ISA). Przykładowo, w jednej długiej liczbie będącej instrukcją, początkowa część bitów (nazywana opcode) jest znacznikiem operacji do wykonania. Pozostała część bitów zazwyczaj zawiera informacje wymagane przez instrukcję, taką jak adresy składników dla operacji dodawania.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak wygląda wykonywanie rozkazów?

A

Po pobraniu i zdekodowaniu przychodzi pora na rzeczywiste wykonanie polecenia. Podczas tego kroku różne moduły CPU współpracują ze sobą w celu wykonania polecenia. Rozpatrzmy jako przykład dodawanie dwóch liczb: jednostka arytmetyczno-logiczna (ALU) zawiera układ elektroniczny, który jest w stanie wykonać proste operacje arytmetyczno - logiczne (jak dodawanie, czy operacje logiczne na bitach) dla danych wejściowych znajdujących się w rejestrach. Układ ten jest więc uruchamiany, a następnie wynik dodawania jest umieszczany w rejestrze wyjściowym. Jeśli w wyniku dodawania powstanie zbyt duża liczba (taka, której nie można zapamiętać), znacznik przepełnienia w rejestrze zawierającym wynik może również być ustawiony.
Zwróćcie uwagę na fakt, iż wykonanie instrukcji odbywa się na danych znajdujących się w rejestrach. Z punktu widzenia procesora pobranie danych z pamięci operacyjnej do rejestru, lub też odesłanie wyników do pamięci operacyjnej, jest niezależną instrukcją.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jak przeprowadzany jest zapis wyników?

A

Efekty pracy procesora są zapamiętywane w rejestrze wyjściowym, skąd mogą zostać odesłane do pamięci operacyjnej, lub też mogą być wykorzystane w kolejnym kroku obliczeń (przy wykonywaniu kolejnej instrukcji). Część instruckji zmienia zawartość licznika instrukcji (PC) w celu wykonania skoku w programie (dzięki tej funkcji możliwe jest tworzenie pętli i instrukcji warunkowych). Inne natomiast zmieniają ustawienie znaczników w specjalnym rejestrze (zwanym znacznikowym). Mogą być one później wykorzystywane do podejmowania decyzji o skoku, itp … ale w tym wypadku zaczynamy się już zbliżać do poziomu programowania w asemblerze, co nie jest tematyką podręcznika. Wystarczy pamiętać, że wykonanie kolejnych instrukcji kończy się zapisaniem wyników, lecz wynik niekoniecznie musi być zapisywany w pamięci operacyjnej.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Co jest niezbędne dla procesora do wykonywania otrzymywanych poleceń?

A

Aby procesor miał możliwość wykonywania powyższych zadań musi dysponować małą pamięcią wewnętrzną, która wymagana jest do czasowego przechowywania danych i rozkazów (procesor musi np. pamiętać lokalizację poprzedniego rozkazu po to, by “odnaleźć” rozkaz następny). Większość (choć nie wszystkie) nowoczesnych systemów komputerowych opiera się na założeniu, że procesor nie operuje na danych bezpośrednio umieszczonych w pamięci operacyjnej, lecz za każdym razem następuje przekazanie zarówno danych, jak i wyników obliczeń, z/do pamięci za pośrednictwem rejestrów.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Czym są rejestry?

A

Rejestrami procesora nazywa się wydzielone, bardzo szybkie komórki pamięci, umieszczone w samym procesorze. Umożliwiają one szybki dostęp do potrzebnych danych lub rozkazów.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jak działają rejestry?

A

Procesor pobiera dane z pamięci operacyjnej do rejestru (rejestr to „prywatna” jednostka pamięci należąca do procesora), a następnie
wykonuje operacje arytmetyczne na danych w rejestrach. Póżniej przesyła dane z rejestru do pamięci operacyjnej.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wymień elementy budowy wewnętrznej procesora.

A

◆ Jednostka arytmetyczno-logiczna (ALU)
◆ Wewnętrzna magistrala procesora
◆ Rejestry
◆ Jednostka sterująca.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wymień elementy jednostki arytmetyczno-logicznej.

A

◆ Znaczniki stanu
◆ Przesuwnik
◆ Układ dopełniania
◆ Układy logiczne i arytmetyczne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Z czego składa się magistrala systemowa?

A
Z następujących elementów;
◆ szyny sterowania
◆ szyny danych
◆ szyny adresowej,
które mogą, ale nie muszą być od siebie odseparowane.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Za co odpowiada wewnętrzna magistrala procesora?

A

Zajmuje się ona przesyłaniem danych pomiędzy różnymi rejestrami a ALU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Czym zajmuje się jednostka sterująca?

A

Zarządza procesami wewnątrz procesora - koordynuje wykonanie operacji w jego wnętrzu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Czym jest model programowy procesora?

A

Jest to zestaw instrukcji procesora oraz innych jego cech, istotnych z punktu widzenia programisty, jak np. numeracja adresów, sposób adresowania pamięci, które są niezależne od ich wewnętrznej realizacji w procesorze.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Czym jest mikroarchitektura procesora?

A

To szczegółowa implementacja danego modelu programowego, która związana jest z rzeczywistym wykonywaniem operacji przez procesor. Operacje te mogą być realizowane w zupełnie odmienny sposób niż wynikałoby to z modelu programowego. Przykładem może być tutaj wykonywanie kilku instrukcji poza kolejnością lub przewidywanie skoków warunkowych, czego nie znajdziemy w modelu programowym. W mikroarchitekturze nie określa się natomiast faktycznej, fizycznej implementacji obwodów logicznych w krzemowej strukturze układu, a więc składających się na nie bramek i wchodzących w ich skład tranzystorów.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Jak przedstawia się mikroarchitekturę procesora?

A

Jest to zbiór diagramów obrazujących poszczególne jego elementy, jak bloki funkcjonalne czy jednostki wykonawcze, jak i występujące pomiędzy nimi połączenia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Czym jest słowo maszynowe procesora?

A

Jest to liczba bitów przetwarzana w jednym cyklu procesora przez jego ALU. Jest to inaczej szerokość szyny danych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Co oznacza, gdy procesor jest x-bitowy?

A

Chodzi tu o długość rejestrów danych, a co za tym idzie - długość słowa przetwarzanego przez ALU procesora w jednej instrukcji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Z jakimi liczbami może pracować procesor 8-bitowy?

A

Od 0 do 255 (256 liczb - 2⁸ - bo ośmiobitowy procesor).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

W kontekście procesora - czym jest pamięć?

A

Jest to przestrzeń adresowa.

25
Q

Czym jest stronicowanie?

A

Jest to jedna z metod wirtualnego powiększania pamięci, która pozwala zwiększyć przestrzeń adresową bez poszerzania narzutu. Warto pamiętać, że stosowanie takich metod zwiększa narzut.

26
Q

Dlaczego w systemach osadonych stosuje się 4- lub 8-bitowe mikrokontrolery, mimo dostępności tych 16- czy nawet 128-bitowych układów?

A

Wynika to z faktu, że dłuższe słowo maszynowe czy szersza szyna adresowa wymagają większej ilości tranzystorów i zbudowanych z nich bramek logicznych do obsługi, co pociąga za sobą większy koszt, stopień skomplikowania czy też zużycie energii. W komputerach osobistych i serwerach jednak zysk ze wzrostu szybkości czy też dostępnej pamięci dla procesorów o większym słowie maszynowym, zdecydowanie przewyższa zwiększony koszt czy zużycie energii przez taki procesor.

27
Q

W przypadku zakupu komputera osobistego, dlaczego warto kupować taki z najdłuższym dostępnym słowem maszynowym?

A

Ponieważ mimo faktu, że ciągle większość oprogramowania (jeszcze) nie potrafi wykorzystać tej cechy, to jednak procesor dłużej pozostanie nowoczesny i wydajny.

28
Q

Co to znaczy, że procesor (czy też inny układ elektroniczny) jest synchroniczny?

A

To oznacza, że aby mogły wykonywać swoje zadania muszą mieć podany sygnał synchronizujący. Sygnał ten pojawia się i znika nawet i miliony razy w ciągu sekundy - napięcie jest lub nie. Taki sygnał, nazywany zegarowym, najczęściej przyjmuje formę prostokątnej fali w danym czasie.

29
Q

Co oznacza częstotliwość?

A

Jest miarą tego, ile razy sygnał zmienia się w ciągu sekundy.

30
Q

Co oznacza, że procesor jest urządzeniem synchronicznym?

A

Oznacza to, że kolejne polecenie (kolejny krok wykonania instrukcji) jest inicjowane zmianą sygnału zegarowego.

31
Q

Dlaczego częstotliwość (ilość zmian sygnału zegarowego) jest ważna w przypadku sygnału komputerowego?

A

Większa częstotliwość oznacza możliwość szybszego liczenia.

32
Q

Jak oblicza się częstotliwość graniczną?

A

Obliczając maksymalny czas propagacji sygnału elektrycznego przez obwody procesora (zmiany napięcia poruszają się z prędkością światła). W praktyce, maksymalna możliwa częstotliwość jest zawsze niższa od granicznej.

33
Q

Czym spowodowana jest niższa niż graniczna maksymalna możliwa częstotliwość zegara?

A

Przez m.in. niedokładności wykonania procesora, zbyt dużą ilość wydzielanego ciepła, problemy z utrzymaniem całego układu w synchronicznej pracy, etc. Dlatego producenci wyznaczają doświadczalnie maksymalną dopuszczalną częstotliwość zegara dla każdego egzemplarza procesora.

34
Q

Czy procesor taktowany wyższą częstotliwością zegara zawsze będzie działał szybciej? Uzasadnij.

A

Nie. Taki związek nie zachodzi między innymi dla procesorów o różnej długości słowa maszynowego - 32 bitowy procesor taktowany zegarem 1 GHz będzie prawdopodobnie wolniejszy niż 64 bitowy taktowany 800 MHz w typowych zastosowaniach. Wydajność procesora jest w dużym stopniu uwarunkowana również jego budową wewnętrzną, dlatego też procesory AMD zazwyczaj przy wolniejszym zegarze osiągają taką samą wydajność jak procesory firmy Intel, a PowerPC o zegarze 500 MHz jest szybszy niż Pentium IV 2 GHz.

35
Q

Czym są dla procesora listy instrukcji?

A

Są to rozkazy, które procesor „rozumie” i umie wykonać. Zazwyczaj procesory jednej rodziny mają taką samą listę instrukcji (np. x86 to wspólna nazwa dla zestawu instrukcji rozumianych przez wszystkie procesory Intela od I386 do współczesnych rozwiązań oraz procesory AMD, ale totalnie nieznana procesorom serii UltraSPARC czy ARM).

36
Q

Jakie wyróżniamy metody doboru zestawów poleceń?

A

◆ CISC (Complex Instruction Set Computers)
◆ RISC (Rationalized Instruction Set Computers, wcześniej skrót od Reduced Instruction Set Computers)
oraz mniej popularne;
◆ VLIW (Very Long Instruction Word)
◆ MISC (Minimal Instruction Set Computer)
◆ ZISC (Zero Instruction Set Computer

37
Q

Jakie są cechy podejścia CISC?

A

Tworzona jest lista rozkazów o następujących cechach:

◆ duża liczba instrukcji;
mała optymalizacja – niektóre rozkazy potrzebują dużej liczby cykli procesora do wykonania;
◆ występowanie złożonych, specjalistycznych rozkazów;
◆ duża liczba trybów adresowania;
◆ do pamięci może się odwoływać bezpośrednio duża liczba rozkazów;
◆ mniejsza od RISC-ów częstotliwość taktowania procesora;
◆ powolne działanie dekodera rozkazów.

38
Q

Opisz cechy CISC.

A

Jest to architektura zestawu instrukcji dla mikroprocesora, w którym każda instrukcja może wykonać kilka operacji niskiego poziomu, jak na przykład pobranie z pamięci, operację arytmetyczną, albo zapisanie do pamięci, a to wszystko w jednej instrukcji. Przed powstaniem procesorów RISC, wielu komputerowych architektów próbowało zmostkować lukę semantyczną, aby zaprojektować zestawy instrukcji, które wspierałyby języki programowania wysokiego poziomu przez dostarczenie instrukcji wysokiego poziomu (np. call i return, instrukcje pętli i kompleksowe tryby adresowania. Wszystko to miało na celu połączenie struktur danych i szeregów dostępu do nich w jedną instrukcję procesora. Rezultatem tego były programy o mniejszym rozmiarze i z mniejszą ilością odwołań do pamięci, co w tamtym czasie bardzo ograniczyło koszty pojedynczego komputera.

39
Q

Podaj przykłady urządzeń wykorzystujących architekturę CISC.

A
◆ System/360;
◆ VAX;
◆ PDP-11;
◆ AMD;
◆ x86;
◆ M68000.
40
Q

Czym charakteryzuje się architektura RISC?

A

◆ zredukowana liczba rozkazów do niezbędnego minimum. Ich liczba wynosi kilkadziesiąt, podczas gdy w procesorach CISC sięga setek. Upraszcza to znacznie dekoder rozkazów;
◆ redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, co dodatkowo upraszcza wspomniany wcześniej dekoder rozkazów. Ponadto wprowadzono tryb adresowania, który ogranicza ilość przesłań - większość operacji wykonuje się według schematu: rejestr_C = rejestr_A \ operacja \ rejestr_B ;
◆ ograniczenie komunikacji pomiędzy pamięcią, a procesorem. Do przesyłania danych pomiędzy pamięcią a rejestrami służą przede wszystkim dedykowane instrukcje, które zwykle nazywają się load (załaduj z pamięci), oraz store (zapisz do pamięci); pozostałe instrukcje mogą operować wyłącznie na rejestrach. Schemat działania na liczbach znajdujących się w pamięci jest następujący: załaduj daną z pamięci do rejestru, na zawartości rejestru wykonaj działanie, przepisz wynik z rejestru do pamięci (ten schemat działania przedstawiliśmy w animacji wprowadzającej w tematykę procesorów);
◆ zwiększenie liczby rejestrów (przykładowo: 32, 192, 256, podczas gdy np. w architekturze x86 jest zaledwie 8 rejestrów), co również ma wpływ na zmniejszenie liczby odwołań do pamięci;
◆ dzięki przetwarzaniu potokowemu (ang. pipelining) wszystkie rozkazy wykonują się w jednym cyklu maszynowym, co pozwala na znaczne uproszczenie bloku wykonawczego, a zastosowanie superskalarności także na zrównoleglenie wykonywania rozkazów. Dodatkowo czas reakcji na przerwania jest krótszy.

41
Q

Opisz architeturę RISC.

A

Jest to architektura mikroprocesorów, która została przedstawiona pod koniec lat 70 w teoretycznych pracach na uniwersytecie Berkeley oraz w wynikach badań Johna Cocke z Thomas J. Watson Research Center.

Ówczesne procesory (budowane w architekturze CISC) charakteryzowały się bardzo rozbudowaną listą rozkazów, ale jak wykazały badania, tylko nieliczna ich część była wykorzystywana w statystycznym programie. Okazało się na przykład, że ponad 50% rozkazów w kodzie to zwykłe przypisania (zapis zawartości rejestru do pamięci i odwrotnie).

Ponadto badania wykazały, że podczas działania programu ok. 26-45% wykonywanych instrukcji to instrukcje wywołania podprocedur lub instrukcje obsługujące pętle, ok. 13-15% to wspomniane przypisania, 7-21% to instrukcje warunkowe (jeśli warunek to …), natomiast reszta stanowi tylko 1-3%.
W związku z powyższym zaprezentowano architekturę mikroprocesorów, w której uwzględniono wyniki badań. Pierwszym procesorem zaprojektowanym w oparciu o architekturę RISC był RCA1802 wyprodukowany przez firmę RCA. Obecnie popularne procesory Intela z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane na mikrorozkazy (ang. microops), które są następnie wykonywane przez RISC-owy blok wykonawczy.

42
Q

Opisz architekturę VLVW.

A

Jest oparta na bardzo długiej instrukcji wykonywanej przez procesor, która w zasadzie składa się z wielu prostych instrukcji. Różnica VLIW w stosunku do CISC czy RISC oparta jest głównie na założeniu, że to nie procesor decyduje które z poleceń mogą być wykonane równolegle. Podczas kompilacji instrukcje, które mogą być wykonywane równolegle, są łączone w jedną długą instrukcję i jako taka są przekazywane do wykonania równoległego na procesorze. Dzięki temu upraszcza się architektura procesora.

43
Q

Opisz architekturę MISC.

A

Jest to architektura procesora z bardzo małą liczbą podstawowych operacji, które są zgodne z opcode. Takie zestawy instrukcji są częściej oparte na stosie, niż na rejestrach, mając na celu zmniejszenie rozmiaru określników operacji (opcode). Architektura maszyny stosowej jest właściwie prostsza od kiedy wszystkie instrukcje operują na szczycie większości zapisów w stosie. Rezultatem tego jest mniejszy zestaw instrukcji, mniejsza i szybsza jednostka do dekodowania instrukcji i szybsze wykonanie pojedynczych instrukcji. Wadą takiego podejścia jest to, że trudniej jest wykonywać wiele instrukcji równolegle (częściej daną wejściową do kolejnej instrukcji jest wynik wykonania poprzedniej).

44
Q

Opisz architekturę ZISC.

A

Jest to technologia oparta na pomysłach wziętych ze sztucznej sieci neuronowej. Pomysł został wynaleziony przez Guy’a Paillet’a oraz został przez niego rozwinięty przy współpracy z dr Pascal-em Tannhof-em z IBM. Pierwsza generacja chipu ZISC zawierała 36 niezależnych komórek, które mogą być uważane za neurony lub równoległe procesory. Każda z nich może porównać wektor wejściowy, którego rozmiar może osiągnąć do 64 bajtów, z podobnym wektorem przechowywanym w komórkach pamięci. Jeśli wektor wejściowy odpowiada wektorowi w komórce pamięci to komórka przechodzi w stan aktywacji. Sygnał wyjściowy jest ważoną sumą stanów aktywacji komórek wejściowych. Równoległość jest kluczem do szybkości systemów ZISC, które eliminują krok seryjnego ładowania i porównywania wzorca rozkazu dla kolejnych instrukcji. Kolejnym kluczowym czynnikiem ZISC jest skalowalność. Sieć ZISC może być rozszerzona przez dodanie większej ilości urządzeń ZISC bez obniżenia szybkości rozpoznawania (komputery ZISC są wykorzystywane głównie do rozpoznawania wzorców) – sieć z ilością 10 000 lub więcej komórek nie jest niczym nadzwyczajnym. Dzisiejsze chipy ZISC zawierają 78 neuronów na chip i mogą znaleźć dopasowanie wśród 1 000 000 wzorców zaledwie w jedną sekundę operując z prędkością przynajmniej 50Mhz. Następna generacja może zawierać nawet 1 000 neuronów lub więcej w jednym chipie. Praktyczne użytkowanie technologii ZISC jest skupione na rozpoznawaniu wzorców, ochronie, wyszukiwaniu informacji (data mining) i innych podobnych zadaniach.

45
Q

Wymień dodatkowe elementy i cechy procesora.

A
◆ Koprocesor
◆ Cache
◆ Potokowość
◆ Wielowątkowość
◆ Wielordzeniowość
46
Q

Czym jest koprocesor?

A

To inaczej jednostka zmiennoprzecinkowa, (FPU, ang. Floating-Point Unit), czyli układ scalony wspomagający procesor w obliczeniach głównie zmiennoprzecinkowych (liczby rzeczywiste w notacji naukowej), ale również na liczbach całkowitych. W większości współczesnych konstrukcji koprocesor arytmetyczny, a także jednostki obsługujące bardziej skomplikowane obliczenia (np. instrukcje wektorowe), zintegrowany jest z procesorem w jednym układzie scalonym.

47
Q

Dlaczego, oprócz procesora, potrzebne jest instalowanie koprocesora?

A

Ponieważ normalny (czyt. przestarzały) procesor komputera wykonywał obliczenia jedynie na liczbach całkowitych - jakiekolwiek operacje na liczbach zmiennoprzecinkowych wymagały wykonywania wielu instrukcji prostych na liczbach całkowitych. Innymi słowy - dodanie 0.1 do 0.1 zajmowało kilkanaście razy więcej czasu niż dodanie 1+1.

48
Q

Czym jest cache?

A

Jest to pamięć podręczna procesora. Jest to mechanizm, w którym ostatnio pobierane dane z pamięci operacyjnej są przechowywane w pamięci o zdecydowanie lepszych parametrach szybkościowych. Cache jest elementem właściwie wszystkich podsystemów - nie tylko procesor, ale również np. dostęp do dysku jest buforowany w pamięci RAM.

49
Q

W jaki sposób pamięć cache wspiera działanie procesora?

A

We współczesnych procesorach są 2 lub 3 poziomy pamięci cache: L1 (zintegrowana z procesorem), a także L2 i L3 (umieszczone w jednym chipie razem z procesorem, lub na płycie głównej). Każdy kolejny poziom cache jest wolniejszą pamięcią, ale za to o większej pojemności. Cache to mechanizm, w którym ostatnio pobierane dane z pamięci operacyjnej są przechowywane w pamięci o zdecydowanie lepszych parametrach szybkościowych.

50
Q

Po co procesorowi pamięć cache?

A

Normalne pamięci operacyjne (a więc to, co znane jest pod pojęciem RAM) są zdecydowanie wolniejsze od samego procesora. Stosowanie w komputerach osobistych pamięci RAM będących w stanie pracować równie szybko jak procesor byłoby bardzo drogie - zamiast tego stosuje się pamięci podręczne.

51
Q

Co oznacza potokowość procesora?

A

Potokowość (ang. pipelining) jest techniką budowy procesorów polegającą na podziale logiki procesora odpowiedzialnej za proces wykonywania programu (instrukcji procesora) na specjalizowane grupy w taki sposób, aby każda z grup wykonywała część pracy związanej z wykonaniem rozkazu. Grupy te są połączone sekwencyjnie i wykonują pracę równocześnie, pobierając dane od poprzedniego elementu w sekwencji. W każdej z tych grup rozkaz jest na innym stadium wykonania. Można to porównać do taśmy produkcyjnej.

52
Q

Dlaczego potokowość jest pożądaną cechą procesora?

A

Przykładowo - w 5-stopniowym potoku, przejście przez wszystkie stopnie potoku (wykonywanie po jednej instrukcji na raz) zabiera co najmniej 5 cykli zegarowych. Jednak ze względu na jednoczesną pracę wszystkich stopni potoku, jednocześnie wykonywanych jest 5 rozkazów procesora, każdy w innym stadium wykonania. Oznacza to, że taki procesor w każdym cyklu zegara rozpoczyna i kończy wykonanie jednej instrukcji i statystycznie wykonuje rozkaz w jednym cyklu zegara. Każdy ze stopni potoku wykonuje mniej pracy w porównaniu do pojedynczej logiki, dzięki czemu może wykonać ją szybciej - z większą częstotliwością - tak więc dodatkowe zwiększenie liczby stopni umożliwia osiągnięcie coraz wyższych częstotliwości pracy.

53
Q

Dlaczego tzw. skok jest wrogiem potokowości?

A

Powoduje on w najgorszym wypadku potrzebę przeczyszczenia całego potoku i wycofania rozkazów, które następowały zaraz po instrukcji skoku, a następnie rozpoczęcie zapełniania potoku od początku od adresu, do którego następował skok. Taki rozkaz skoku może powodować ogromne opóźnienia w wykonywaniu programu - tym większe, im większa jest długość potoku. Dodatkowo szacuje się, że dla modelu programowego x86 taki skok występuje co kilkanaście rozkazów. Z tego powodu niektóre architektury programowe (np. SPARC) zakładały zawsze wykonanie jednego lub większej ilości rozkazów następujących po rozkazie skoku, tzw. skok opóźniony. Stosuje się także skomplikowane metody predykcji skoku lub metody programowania bez użycia skoków.

54
Q

Czym jest wielowątkowość?

A

Wielowątkowość (ang. Hyperthreading) to możliwość uruchomienie wielu toków wykonania (wątków) w jednym programie. Różne wątki jednego programu mają tą samą przestrzeń adresową, co znacznie upraszcza budowę procesora, który mógłby wykonywać je równolegle. Taką technologię nazywa się MT (multithreading). Przykładem procesorów z zaimplementowaną tą technologią są procesory Intel Pentium IV HT.”

Excerpt From: Paweł Wnuk. “OKNO - Architektura systemów komputerowych.” iBooks.

55
Q

Czym jest przetwarzanie współbieżne?

A

Jest to technika wykorzystywana do wykonywania wielu instrukcji niezależnie obok siebie. W początkowym wydaniu wykorzystywane było tylko tak zwane symetryczne przetwarzanie współbieżne (SMP), czyli niewielka liczba zupełnie niezależnych procesorów miała dostęp do wspólnej pamięci operacyjnej. Przy takim podejściu, każdy z procesorów musiał być wyposażony w dodatkowe układy sprzętowe zapewniające utrzymywanie spójnej i aktualnej zawartości pamięci (a dokładniej - jej kopii w pamięci cache). Takie podejście sprawdza się w praktyce do systemów o maksymalnie 8 procesorach. W przypadku systemów o większej liczbie procesorów, utrzymywanie spójnej pamięci staje się bardzo trudne i czasochłonne. Dlatego też opracowano architekturę niejednorodnego dostępu do pamięci (ang. non-uniform memory access, NUMA) co pozwala na stosowanie tysięcy procesorów w jednym komputerze. NUMA jest architekturą wykorzystywaną jedynie przez superkomputery. Natomiast SMP pojawia się w komputerach osobistych lub małych i średnich serwerach.

56
Q

Czym jest wielordzeniowość?

A

Jest to pojedyncza specjalna płyta z zainstalowanymi wieloma procesorami. Niektóre procesory, jak Itanium czy Athlon MP, można montować po 2 lub 4 na specjalnych płytach. Co więcej - teraz pojawiły się na rynku rozwiązania jeszcze bardziej zaawansowane, gdzie dwa procesory umieszczone są w jednej kości (chipie) - są to tzw. procesory dwurdzeniowe jak np. Intel Core 2 Duo. Dwa rdzenie - oznacza dwa procesory, każdy z wielopotokowym jądrem i własną pamięcią cache poziomu L1.

57
Q

Jak można zwiększyć szybkość obliczeń wykonywanych przez procesor?

A

Zwiększanie wydajności i szybkości obliczeń (co daje w rezultacie szybszy system komputerowy) jest możliwe nie tylko poprzez dodawanie (samodzielnych) jednostek wykonawczych (ALU) czy też całych procesorów pracujących równolegle. W rzeczywistości do wielu zadań (przetwarzanie grafiki, obliczenia macierzowe, sztuczna inteligencja, statystyka) wykonujemy dokładnie taką samą instrukcję (ciąg instrukcji) na olbrzymiej ilości zmieniających się danych. Jeśli przyjrzymy się budowie procesora oraz przeanalizujemy sposób w jaki działa, szybko możemy dość do wniosku, iż w przypadku takich operacji wystarczy zwielokrotnić (w ramach tego samego procesora) stosunkowo mało skomplikowany blok ALU, pozostałe elementy procesora pozostawiając bez zmian, a otrzymamy po jednym pobraniu i zdekodowaniu rozkazu możliwość jego wykonania dla wielu danych, częściowo równolegle, a jeśli nawet szeregowo - to dużo szybciej niż w przypadku pracy w zwykłym trybie.

58
Q

Czym jest SIMD?

A

Tryb pracy umożliwiający częściowo równoległe lub szeregowe przetwarzanie danych. Procesy umożliwiające ten tryb pracy zwane są wektorowymi.

59
Q

Czym jest blok funkcjonalny dla procesora?

A

Dołożony do zwykłego procesora dodatkowy blok funkcjonalny jest uproszczonym procesorem wektorowym. Uproszczonym - bo umożliwia wykonanie stosunkowo niewielkiej liczby operacji, zazwyczaj dobieranych tak, by maksymalnie przyspieszyć obsługę multimediów.
“Handlowa nazwa takich układów to MMX (umożliwia wykonywanie operacji jedynie na liczbach całkowitych) czy SSE (operacje wykonywane są na liczbach całkowitych i zmiennoprzecinkowych) u Intela (każdy procesor z tymi oznaczeniami zawiera blok SIMD), 3DNow dla procesorów AMD czy AltiVec dla PowerPC.