Serce minikomputera – jak działa procesor?

0

Najważniejszym podzespołem w konstrukcji każdego minikomputera, jest jego procesor – mały i wszechstronny układ scalony, który zamienia kod programu na fizycznie realizowane instrukcje.

Procesor – serce minikomputera

Niniejszy artykuł opisuje budowę i zasadę działania typowego procesora, który stanowi element budowy minikomputerów jednopłytkowych.

Procesory wokół nas

Choć na pierwszy rzut oka tego nie widać, coraz większa liczba maszyn i urządzeń wokół nas zawiera w swojej budowie przynajmniej jeden układ mikroprocesorowy. Do takich urządzeń należą m.in. komputery osobiste, przenośne odtwarzacze multimedialne, telefony komórkowe, zmywarki, piekarniki, lodówki, elektryczne szczoteczki do zębów, zestawy kina domowego, zabawki, a także pojazdy mechaniczne, roboty przemysłowe i wiele, wiele innych. Mikroprocesor to także serca minikomputera – takiego jak np. słynny Raspberry Pi, który na dobrą sprawę możemy zaprogramować tak, aby mógł sterować wcześniej wymienionymi aplikacjami. Pytanie, w jaki sposób pojedynczy układ scalony zarządza pracą tak silnie zróżnicowanych względem siebie urządzeń? Zapraszamy w podróż do wnętrza typowego mikroprocesora!

Tranzystor – podstawowa komórka budująca procesor

Podobnie jak w przypadku prawie wszystkich układów scalonych, struktura fizyczna procesora jest zbudowana z tranzystorów. Tranzystory są jednymi z najbardziej podstawowych elementów elektronicznych. Najbardziej popularnymi tranzystorami są tranzystory bipolarne oraz tranzystory unipolarne, choć budowa wewnętrzna procesorów zwykle bazuje na tranzystorach unipolarnych (FET), które w odróżnieniu od sterowanych prądowo tranzystorów bipolarnych, są sterowane napięciowo. W najprostszym ujęciu, tranzystor jest przełącznikiem, który steruje przepływem sygnałów elektrycznych za pomocą swojej struktury półprzewodnikowej, a nie za pomocą ruchomych styków. Kiedy na bramkę (elektrodę sterującą) tranzystora unipolarnego podamy napięcie o odpowiedniej wartości progowej, wówczas tranzystor zaczyna przewodzić. Natomiast kiedy odłączymy napięcie sterujące, tranzystor przestaje przewodzić. Przełączanie za pomocą tranzystorów znalazło zastosowanie m.in. w cyfrowych układach logicznych TTL (tranzystory bipolarne) oraz CMOS (tranzystory unipolarne). Łącząc w odpowiedni sposób ze sobą wiele tranzystorów, możemy uzyskać strukturę stanowiącą elektroniczną realizację rozmaitych operacji logicznych, takich jak np. koniunkcja (bramka AND), alternatywa (bramka OR) czy też negacja (bramka NOT). Inne ważne układy logiczne wykonane w technologiach TTL i CMOS to liczniki, przerzutniki, konwertery kodów, rejestry, a także multipleksery. Co warto podkreślić, pierwszy komercyjny procesor przeznaczony do użytku cywilnego, jakim był Intel 4004, był wykonany w procesie litograficznym 10μm, a jego struktura zawierała 2250 tranzystorów. Współcześnie, procesory ARM stosowane w minikomputerach, są wykonywane w procesie litograficznym 28nm (np. Broadcom BCM2711), a ich struktura zawiera nawet powyżej jednego miliarda tranzystorów.

Procesor – wszechstronna sieć tranzystorów

Wspomniane tranzystory i przykładowe układy logiczne na nich oparte, poprzez odpowiednio zaprojektowaną topologię, można połączyć w bardziej zaawansowane układy, które mogą wykonywać specjalizowane funkcje – mogą to być np. sterowniki wyświetlaczy 7-segmentowych LED, generatory przebiegów czasowych czy też przetworniki pomiarowe. Jednak znacznie większe możliwości możemy uzyskać, kiedy nasz układ elektroniczny będzie się dało zaprogramować bez konieczności wprowadzania zmian w jego fizycznej budowie. W ten oto sposób powstaje procesor – serce minikomputera. Wykorzystując ten sam układ procesora, możemy go tak zaprogramować tak, aby mógł pełnić silnie zróżnicowane funkcje – zarówno jako kalkulator, system przetwarzania danych telekomunikacyjnych, a także jako sterownik elektrowni wiatrowej. Wszystko zależy od możliwości sprzętowych procesora oraz inwencji konstruktora.

Jak działa procesor – taktowanie, wielkość słowa bitowego

Procesor jest układem sekwencyjnym i synchronicznym – oznacza to, że wszystkie operacje wykonywane przez procesor odbywają się w ściśle określonej kolejności, w takt impulsów sterujących, które są generowane przez źródło sygnału zegarowego, najczęściej w formie oscylatora kwarcowego, a następnie multiplikowane przez układ mnożnika. Przykładowo, jeśli oscylator kwarcowy generuje sygnał prostokątny o częstotliwości 100MHz, a mnożnik będzie ustawiony na wartość 25, to wówczas częstotliwość taktowania procesora będzie wynosiła 2,5GHz. Przy takiej częstotliwości, procesor może wykonywać łącznie 2,5 miliarda operacji w ciągu sekundy. Procesor operuje na słowach bitowych – przykładowo, jeśli mówimy, że procesor jest 32-bitowy, oznacza to, że w pojedynczym cyklu maszynowym do obliczeń może przyjmować liczby z przedziału od zera do maksymalnie 4294967296 (czyli 232 – 1). Co warto podkreślić, do wykonywania wszystkich operacji, procesor wykorzystuje system binarny, na który składają się tylko dwie liczby – zero i jeden. Liczby te, stanowią o stanach logicznych – odpowiednio niskim i wysokim. Fizyczną postać tych stanów logicznych, stanowią impulsy elektryczne o odpowiednim poziomie napięć. Typowo dla procesorów zasilanych napięciem 3,3V, stan niski (logiczne zero) odpowiada napięciu z zakresu od 0,0V do 0,8V. Natomiast stan wysoki (logiczne jeden) odpowiada napięciu z zakresu od 2,0V do 3,3V. Pomiędzy wartością 0,8V a 2,0V występuje stan zabroniony, w którym nie dochodzi do wykonywania przełączeń stanu logicznego.

Typowa budowa procesora

Struktura półprzewodnikowa procesora, tworzy jego bloki układowe, które pełnią specjalnie zawężony zakres funkcji i odpowiednio współpracują ze sobą. Większość minikomputerów jednopłytkowych, bazuje na procesorach ARM wykonanych w architekturze RISC, która charakteryzuje się liczbą rozkazów zmniejszoną do niezbędnego minimum. W typowej architekturze RISC możemy wyróżnić kilka podstawowych bloków układowych. Należą do nich: arytmometr, koprocesor, rejestry, dekoder, układy sterowania, układy pamięci, magistrale, a także układy wejścia/wyjścia.

Jak działa i za co odpowiada procesor?

Poszczególne bloki tworzące pojedynczy rdzeń procesora, wykonują ściśle określony zakres funkcji. Arytmometr, znany także jako jednostka arytmetyczno-logiczna (ang. ALU – Arithmetic-Logic Unit), jest odpowiedzialny za wykonywanie operacji matematyczno-logicznych. Zachodzą w nim takie procesy jak działania arytmetyczne na liczbach, tj. dodawanie, odejmowanie, porównywanie i zmiana znaku, a także operacje logiczne, tj. iloczyn logiczny, suma logiczna, negacja, alternatywa rozłączna, przesunięcie bitowe i skok instrukcji. Natomiast koprocesor to element współpracujący z arytmometrem i odpowiada za wykonywanie obliczeń zmiennoprzecinkowych, stąd określany jest jako FPU (ang. Floating Point Unit). Dane wejściowe wprowadzane są do rejestrów, które zawierają komórki pamięci. Pamięć operacyjna procesora musi być tak wykonana, aby zapewnić jak najkrótszy czas transmisji danych pomiędzy źródłem danych a arytmometrem. Pomiędzy rejestrami a arytmometrem, jest prowadzona dwukierunkowa wymiana danych. Jednak zanim arytmometr wykona niezbędne obliczenia, konieczne jest podanie sygnału zezwalającego z układu sterowania. Układ sterowania wysyła sygnały zezwalające na podstawie instrukcji zawartych w maszynowym kodzie programu. Po każdej pojedynczej operacji obliczeniowej, z arytmometru jest wysyłany sygnał zwrotny do układu sterowania. Poszczególne instrukcje są wprowadzane do rejestru rozkazów, następnie są dekodowane przez dekoder rozkazów, a następnie są wprowadzane do układu sterowania. Sygnały z układu sterowania mogą być także wyprowadzone na zewnątrz procesora, do współpracujących z nim układów peryferyjnych. Rejestry obejmują także wskaźnik stosu, licznik rozkazów, który adresuje pobrane z pamięci programu instrukcje, a także system przerwań. Pomiędzy poszczególnymi blokami procesora, pośredniczą magistrale, którymi są przesyłane sygnały elektryczne sterujące, a także dane z pamięci. Zazwyczaj, aby procesor mógł pracować szybciej, zaraz po pobraniu jednego rozkazu z pamięci programu, jest wysyłany kolejny rozkaz. Mogłoby się wydawać, że praca procesora jest monotonna, ale kiedy zaistnieją odpowiednio zdefiniowane warunki uwzględnione w kodzie programu, konieczne będzie wyzwolenie przerwania – wówczas procesor przerywa wykonywanie normalnego obiegu instrukcji i wykonuje inny zakres instrukcji objęty przerwaniem, zarówno na poziomie sprzętu jak i oprogramowania. Po ukończeniu instrukcji objętych przerwaniem, praca procesora jest normalnie kontynuowana w tej części instrukcji, w której nastąpiło wyzwolenie przerwania.

Co jeszcze warto wiedzieć o budowie i działaniu procesora?

Przedstawiony w niniejszym artykule opis budowy i zasady działania procesora, obrazuje ten element od strony jego schematu blokowego. W rzeczywistości, każdy blok procesora jest zbudowany z licznych ścieżek przewodzących i tranzystorów, które odpowiednio ze sobą połączone, realizują ściśle określone funkcje. Procesory bardzo często posiadają dodatkowe elementy, takie jak np. watchdog timer, który czuwa nad prawidłowym działaniem procesora poprzez okresowe zliczanie i zerowanie impulsów kontrolnych. Obserwowana tendencja w minionych latach, obrazuje wzrost gęstości procesu litograficznego procesorów, a także wzrost ich mocy obliczeniowej. Nowe konstrukcje minikomputerów jednopłytkowych charakteryzują się jeszcze bardziej wydajnymi procesorami, co zbliża je parametrami coraz bardziej do współczesnych, pełnowymiarowych komputerów klasy PC przeznaczonych dla najbardziej wymagających użytkowników.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 5 / 5. Liczba głosów: 7

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Zobacz również