Omów schemat blokowy komputera
1.ALU - Arithmetic Logic Unit
Jest to jednostka arytmetyczno logiczna komputera. Realizuje ona podstawowe operacje arytmetyczne - to jest binarne dodawanie i odejmowanie oraz operacje logiczne- AND, OR, XOR.
2.Sterowanie (CU) - Control Unit
Jest układem zwanym jednostką sterującą, który steruje realizacją mikroprogramów za pośrednictwem ALU i układów współpracujących
3.Procesor - Centralna Jednostka Procesorowa (CPU -Central Processing Unit).
Jest układem zawierającym ALU oraz jednostkę sterującą. Jest to centralny układ przetwarzający komputera. Procesor wykonuje program zapisany w formie wektorów
(wielobitowych słów) binarnych. Jest to zapisane w pamięci operacyjnej lub jest czytany bezpośrednio z urządzeń zewnętrznych za pomocą układów sprzęgających i magistrali danych. Wektory binarne są wprowadzane do procesora za pośrednictwem magistral : (do ALU i jednostki sterującej) lub pomocniczych rejestrów wewnętrznych procesora.
4.Układy sprzęgające - są to układy wejściowo- wyjściowe. Oznaczone są skrótami WE/WY lub IN/OUT , INTERFACE.
Pośredniczą one w operacjach transmisji danych do centralnego układu przetwarzającego z urządzeń wejściowych lub odwrotnie z CPU do urządzenia wyjściowego. Efektywna praca procesora w dużej mierze zależy od stopnia złożoności układów odpowiedzialnych za transmisje danych w jego otoczeniu. Układy WE/WY zwalniają procesor z realizacji wielu czasochłonnych funkcji polegających głownie na dopasowaniu szybkości i formatu transmitowanych danych pomiędzy procesorem a pamięciami lub urządzeniami do wprowadzania i wyprowadzania danych. Te i inne względy sprawiły, że współczesne procesory zostały „obudowane” różnymi układami wspomagającymi ich pracę w formie dodatkowych układów lub układów zintegrowanych z centralnym układem przetwarzającym.
5.Cykl pracy procesora
Oznacza on powtarzające się cyklicznie działania procesora związane z przetwarzaniem zapisanego w pamięci programu. Praca procesora rozpoczyna się od fazy pobrania (fetch) kodu rozkazu( operacji)który zostaje zamieniony na ciąg mikrooperacji procesora, tworzący fazę wykonawczą rozkazu (execute).
W trakcie realizacji programu procesor korzysta z półprzewodnikowych pamięci zewnętrznych ROM i RAM oraz z podręcznej pamięci wewnętrznej (CACHE) składającej się z bloku rejestrów ogólnego przeznaczenia.
6.Pamięć ROM (Read Only Memory) - pamięć tylko do odczytu
7.RAM - (Random Access Memory) z tej pamięci korzystamy.
8.Mikroprocesor - jest procesorem wykonawczym w technikach wysokiej skali integracji (ULSI, USI)
Historycznie pierwszym powszechnie stosowanym układem mikroprocesorowym był element ośmiobitowy firmy INTER 8080/85. Dalszy rozwój tego procesora dla opracowania 16, 64, 32 bitowe stanowiące podstawy mikrokomputerów
osobistych firmy IBM.
Schemat blokowy procesora
1.BU-Bus Unit- za współpracę z pamięcią odpowiada wyizolowany blok komunikacyjny BU. Połączenie realizowane jest zwykle w formie dwóch odseparowanych od siebie magistral i oddzielnie dla danych (w tym kodu i adresów) zarządzanie ruchem na magistralą gwarantującą dodatkowe sygnały sterujące.
2.PREFETCH - konieczność zapewnienia płynnego funkcjonowania procesora wymaga by dane do wykonania(kod programowy) pobierane były w większych porcjach i gromadzone w kolejce, gdzie oczekują na wykonanie. Każdy ze spoczywających tu bajtów(8 bitów) stanowi pewną zakodowaną informację o koniecznych do wykonania operacjach.
1 bajt = 8 bitów
3.IU- (Instruction Unit)
Odtwarzanie tej informacji odbywa się w bloku dekodera IU
4.ROM (Read Only Memory). Praca układu IU wspomagana jest często przez obszerną pamięć stałą ROM, w której zawarty jest słownik tłumaczący przyjmowane kody rozkazowe na sekwencje ukrywających się pod nimi operacji.
5. EU ( Execution Unit) jednostka wykonawcza. Rozkodowane instrukcje przekazywane są do właściwego układu wykonawczego EU, gdzie realizowana jest operacja określona danym kodem rozkazowym.
6.ALU (Arithmetic Logic Unit) Znaczna część powszechnie używanego kodu pracuje na liczbach stałoprzecinkowych (całkowitych - tj. liczb i operacji logicznych - AND, OR, XOR) typu INTEGER i podlega obróbce w module ALU.
7.CU (Control Unit) jednostka sterująca (kontrolna) Steruje blokiem ALU
8.FPU ( Floating Point Unit) Jeśli jednak rozkaz dotyczył obiektów zmiennoprzecinkowych typu REAL to jego realizacja stałoprzecinkowa układach logicznych zajęła by zbyt wiele czasu. W takim przypadku przekazuje się go do wyspecjalizowanej jednostki zmiennoprzecinkowej FPU.
9.AU (Addressing Unit - jednostka adresowana). Rozkazy posługują się zwykle pewnymi argumentami (parametry funkcji, składniki przy dodawaniu), który również trzeba pobrać z pamięci operacyjnej. Często wymaga się, by wynik operacji przesłać pod określony adres. Obsługę tego rodzaju życzeń bierze na siebie jednostka adresowania - AU.
10.MMU- (Memory Management Unit) jednostka zarządzania pamięcią. Względy natury technicznej(sterowanie i segmentacja) powodują, iż dostęp do pamięci operacyjnej wymaga pewnych dodatkowych nakładów, których realizacji poświęca się jednostkę zarządzania pamięcią MMU.
Przetwarzanie typu RISC, CISC , PIPELINE
1. RISC- (Reduced Instruction Set Computer - przetwarzanie o zredukowanej liście instrukcji komputera). RISC powstał w toku prac nad projektem procesora „801”firmy IBM. Pojęcie RISC oznaczało tendencję do ograniczania listy rozkazów procesora do niewielu błyskawicznie wykonywanych instrukcji. Ta idea podchwycona została przez wielu innych projektantów i utrwalona m.in. w procesorach AMD 29000, HP PA-RISC, INTEL 860 i 960, RS/6000. Realizacja każdej instrukcji była wynikiem odwołania się do wyspecjalizowanego obwodu elektronicznego, który nie traci czasu na tłumacznienie rozkazu. Rozpisanie algorytmu wykonywanego programu, który składał się z operacji dużo bardziej skomplikowanych niż przepisanie z rejestru do rejestru, należało do obowiązków kompilatora. Prędkość przetwarzania jest bardzo duża i taka też musi być przepustowość magistrali. Problem ten rozwiązuje się współcześnie przez zastosowanie szybkich pamięci podręcznych L1 i L2. Spore uproszczenie konstrukcji typu RISC zawdzięcza się stałej długości wszystkich mikrorozkazów.
2.CISC (Complex Instruction Set Computer)
Odmienny punkt widzenia reprezentuje filozofia CISC. Dominująca rodzina procesorów X86 INTEL, 680XXMOTOROLA. Procesory budowane według tej zasady biorą na siebie coraz to większe zadania. Pobierany z pamięci pojedynczy rozkaz wywołuje szereg kompleksowych działań. Czas przetwarzania takiego polecenia może dochodzić nawet do kilkudziesięciu cykli zegarowych. Kod programów jest bardzo zwarty a proces jego transportu do procesora jest znacznie mniej krytyczny. Jakkolwiek oba te pojęcia definiowały początkowo kategorie przeciwstawne to obecnie coraz trudniej jednoznacznie przypisać dany procesor do jednej z nich. Ostry podział na RISC, CISC ma coraz mniejszy sens. Można co najwyżej mówić o pewnych cechach architektury, a i to wyłącznie w odniesieniu do fragmentów określonej konstrukcji.
3.PIPELINE (Potokowe przetwarzanie rozkazów)
Charakterystyczny jest podział czasu pracy nad pojedynczym rozkazem na wyraźnie zarysowane fazy. Symboliczna „faza produkcyjna” nazywana jest tutaj potokiem przetwarzającym PIPELINE (PIPE), a jej poszczególne stopnie nazywane są PIPELINE STAGES. Potok pracuje jednocześnie nad kilkoma rozkazami, a każdy z nich znajduje się w innej fazie wykonania. Stopień rozdrobnienia potoku
(ilość stopni) nazywane jest głębokością potoku. Wielkość ta ma fundamentalne znaczenie dla kluczowych parametrów procesowych. Rozbicie procesu obliczeniowego na bardzo wiele małych operacji pozwala na ich przyspieszenie. W przeniesieniu na grunt architektury procesora, oznacza to możliwość zwiększenia częstotliwości taktującej i ogólnej wydajności. Dla zanalizowania powyższej zależności przeprowadzone zostały różnorodne badania symulacyjne. Wyniki testów wykazują, że istnieje wartość optymalna głębokości potoku wynosząca około 8. Taki tez mają wymiar potoki przetwarzające większości procesorów.
Liczba stopni w potokach procesorów:
Procesor CPU |
P 54 C |
P 55 C |
Pro |
P- II |
M1, M2 |
K 6 |
Liczba stopni w potoku |
5
|
6/ 8* |
12 |
12/ 14* |
7 |
6 |
*MMX
Procesory wyposażone w potok pracują nad kolejnymi rozkazami według ściśle określonego schematu. Przetwarzana instrukcja przesuwa się wzdłuż „linii produkcyjnej” zaliczając kolejne etapy. Niezależnie od różnic w architekturze należą do nich zawsze 4 podstawowe czynności:
- pobieranie
- dekodowanie
- wykonanie
- zakończenie
Cykl pracy procesora i rejestry procesora
Cykl rozkazu procesora składa się z operacji pobrania FETCH i operacji wykonania rozkazu EXE CUTE
Każdy cykl rozkazowy składa się z kilku cykli maszynowych. W rozkazach np. mikroprocesora 8080 można wyróżnić 10 różnych cykli maszynowych:
1. Pobranie M1 - Fetch
2. Czytaj pamięć - Memory Read
3. Zapisz do pamięci - Memory
Write
4. Czytaj stos - Stack Read
5. Zapisz do stosu - Stack Write
6. Wprowadź - Input
7. Wyprowadź - Output
8. Przerwij - Interrupt
9. Zatrzymaj - Halt
10. Zatrzymaj i przerwij -
Halt and Interrupt
Zestaw rejestrów procesora :
b15....b8 b7....bo
Akumulator (AX) AH AL
Rejestr bazowy (BX ) BH BL
Rejestr licznika (CX) CH CL
Rejestr danych (DX) DH DL
Wskaźnik stosu SP
Wskaźnik bazowy BP
Indeksowanie źródła SI
Indeksowanie celu DI
b15....b8 b7....bo
Segment danych DS
Segment kodu CS
Segment stosu SS
Segment dodatkowy ES
Zestaw znaczników FLAGS
Wskaźnik instrukcji IP