Konfiguracja sprzętu i oprogramowania

Jak to działa: mikroprocesor

Obecnie do czytania tego wątku używasz komputera lub urządzenia mobilnego. Komputer lub urządzenie mobilne wykorzystuje mikroprocesor do wykonywania tych czynności. Mikroprocesor to serce każdego urządzenia, serwera czy laptopa. Istnieje wiele marek mikroprocesorów od wielu różnych producentów, ale wszystkie robią prawie to samo iw bardzo podobny sposób.
Mikroprocesor- znany również jako procesor lub jednostka centralna, to silnik obliczeniowy, który jest wytwarzany na jednym chipie. Pierwszym mikroprocesorem był Intel 4004, który pojawił się w 1971 roku i nie był tak potężny. Mógł dodawać i odejmować, a to tylko 4 bity na raz. Procesor był niesamowity, ponieważ został wykonany na jednym chipie. Zapytasz dlaczego? A ja odpowiem: inżynierowie w tamtym czasie produkowali procesory albo z kilku chipów, albo z elementów dyskretnych (tranzystory były używane w osobnych opakowaniach).

Jeśli kiedykolwiek zastanawiałeś się, co robi mikroprocesor w komputerze, jak wygląda lub jakie są jego różnice w porównaniu z innymi typami mikroprocesorów, to przejdź pod kotem- tam wszystkie najciekawsze, i szczegóły.

Postęp mikroprocesora: Intel

Pierwszym mikroprocesorem, który później stał się sercem prostego komputera domowego, był Intel 8080, kompletny 8-bitowy komputer na jednym chipie, który pojawił się w 1974 roku. Pierwszy mikroprocesor spowodował prawdziwy wzrost na rynku. Później w 1979 roku został wydany nowy model - Intel 8088. Jeśli znasz rynek komputerów PC i jego historię, to wiesz, że rynek komputerów PC przeniósł się z Intel 8088 na Intel 80286, a następnie na Intel 80386 i Intel 80486 oraz następnie do Pentium, Pentium II, Pentium III i Pentium 4. Wszystkie te mikroprocesory są wykonane przez Intela i wszystkie są ulepszeniami podstawowej konstrukcji Intel 8088. Pentium 4 może wykonać dowolny kod, ale robi to 5000 razy szybciej.

W 2004 roku Intel wprowadził mikroprocesory z wieloma rdzeniami i milionem tranzystorów, ale nawet te mikroprocesory przestrzegały tych samych ogólnych zasad, co wcześniej produkowane chipy. Dodatkowe informacje w tabeli:

  • Data: to rok, w którym po raz pierwszy wprowadzono procesor. Wiele procesorów zostało ponownie wydanych z wyższymi częstotliwościami zegara i trwało to wiele lat po pierwotnej dacie premiery.
  • tranzystory: to liczba tranzystorów na chipie. Widać, że na przestrzeni lat liczba tranzystorów w jednym chipie stale rosła.
  • Mikron: szerokość w mikronach najmniejszego drutu na chipie. Dla porównania mogę podać ludzki włos, który ma grubość około 100 mikronów. W miarę jak rozmiary stawały się coraz mniejsze, rosła liczba tranzystorów.
  • Częstotliwość zegara: Maksymalna prędkość, jaką może osiągnąć chip. O częstotliwości taktowania opowiem nieco później.
  • Dane szerokości (magistrali): to szerokość ALU (jednostki arytmetyczno-logicznej). 8-bitowa jednostka ALU może dodawać, odejmować, mnożyć itd. W wielu przypadkach szyna danych ma taką samą szerokość jak jednostka ALU, ale nie zawsze. Intel 8088 był 16-bitowy i miał 8-bitową magistralę, podczas gdy obecne modele Pentium są 64-bitowe.
  • MIPS: ta kolumna w tabeli oznacza wyświetlanie liczby operacji na sekundę. Jest to jednostka miary dla mikroprocesorów. Współczesne procesory potrafią tak wiele rzeczy, że dzisiejsze oceny przedstawione w tabeli stracą wszelki sens. Ale możesz poczuć względną moc mikroprocesorów tamtych czasów
Ta tabela pokazuje, że ogólnie istnieje związek między szybkością zegara a MIPS (operacje na sekundę). Maksymalna częstotliwość zegara jest funkcją procesora produkcyjnego. Istnieje również zależność między liczbą tranzystorów a liczbą operacji na sekundę. Na przykład Intel 8088 taktowany zegarem 5 MHz (obecnie 2,5-3 GHz) wykonuje tylko 0,33 MIPS (około jedna instrukcja na każde 15 cykli zegara). Nowoczesne procesory często mogą wykonywać dwie instrukcje na zegar. Ten wzrost jest bezpośrednio związany z liczbą tranzystorów w chipie, o czym opowiem później.

Co to jest chip?

Układ nazywany jest również układem scalonym. Jest to zwykle mały, cienki kawałek krzemu, na którym wygrawerowano tranzystory tworzące mikroprocesor. Chip może być tak mały, jak jeden cal, ale nadal zawierać dziesiątki milionów tranzystorów. Prostsze procesory mogą składać się z kilku tysięcy tranzystorów wytrawionych w chipie o powierzchni zaledwie kilku milimetrów kwadratowych.

Jak to działa


Intel Pentium 4


Aby zrozumieć, jak działa mikroprocesor, warto zajrzeć do środka i poznać jego wnętrze. W trakcie tego procesu możesz także nauczyć się o języku asemblera, języku ojczystym mikroprocesora i wielu rzeczach, które inżynierowie mogą zrobić, aby zwiększyć szybkość procesora.

Mikroprocesor wykonuje zbiór instrukcji maszynowych, które informują procesor, co ma robić. Na podstawie instrukcji mikroprocesor robi trzy główne rzeczy:

  • Wykorzystując swój ALU (jednostka arytmetyczno-logiczna), mikroprocesor może wykonywać operacje matematyczne. Na przykład dodawanie, odejmowanie, mnożenie i dzielenie. Nowoczesne mikroprocesory są w stanie wykonywać niezwykle złożone operacje.
  • Mikroprocesor może przenosić dane z jednej lokalizacji pamięci do drugiej
  • Mikroprocesor może podejmować decyzje i przeskakiwać do nowego zestawu instrukcji na podstawie tych decyzji.

Mówiąc wprost, mikroprocesor robi złożone rzeczy, ale powyżej opisałem trzy główne czynności. Poniższy diagram pokazuje bardzo prosty mikroprocesor, który potrafi wykonać te trzy rzeczy. Ten mikroprocesor posiada:

  • Magistrala adresowa (8, 16 lub 32 bity), która wysyła dostęp do pamięci
  • Szyna danych (8, 16 lub 32 bity), która wysyła dane do lub odbiera dane z pamięci
  • RD (odczyt, odczyt) i WR (zapis, zapis) informują pamięć, czy chcą ustawić lub uzyskać adresowaną lokalizację
  • Linia zegara, która umożliwia przeglądanie sekwencji zegara procesora
  • Linia resetu, która zeruje licznik programu i ponownie uruchamia wykonanie

pamięć mikroprocesorowa

Wcześniej rozmawialiśmy o magistralach adresowych i danych, a także o liniach odczytu i zapisu. Wszystko to jest podłączone do pamięci RAM (pamięć o dostępie swobodnym) lub ROM (pamięć tylko do odczytu lub pamięć tylko do odczytu, ROM) - zwykle oba. W naszym przykładzie mikroprocesor mamy szeroką szynę adresową 8 bitów i tę samą szeroką szynę danych - również 8 bitów. Oznacza to, że mikroprocesor ma dostęp do 2^8 do 256 bajtów pamięci i może odczytywać i zapisywać jednocześnie 8 bitów pamięci. Załóżmy, że ten prosty mikroprocesor ma 128 bajtów pamięci wewnętrznej, zaczynając od adresu 0 i 128 bajtów RAM, zaczynając od adresu 128.

RAM oznacza pamięć tylko do odczytu. Stały chip pamięci jest zaprogramowany na stałe wstępnie ustawione bajty. Adres magistrali mówi chipowi RAM, który bajt ma dotrzeć i zmieścić na magistrali danych. Gdy odczytana linia zmienia stan, układ ROM prezentuje wybrany bajt na szynie danych.

RAM oznacza RAM, lol. Pamięć RAM zawiera bajt informacji, a mikroprocesor może odczytywać lub zapisywać do tych bajtów w zależności od tego, czy linia odczytu lub zapisu jest sygnalizowana. Jednym z problemów, które można znaleźć w dzisiejszych chipach, jest to, że zapominają o wszystkim, gdy tylko energia się kończy. Dlatego komputer musi mieć pamięć RAM.


Układ RAM lub układ pamięci tylko do odczytu (ROM);


Nawiasem mówiąc, prawie wszystkie komputery zawierają pewną ilość pamięci RAM. W komputerze osobistym pamięć tylko do odczytu nosi nazwę BIOS (Basic Input/Output System). Podczas uruchamiania mikroprocesor rozpoczyna wykonywanie instrukcji znalezionych w systemie BIOS. Nawiasem mówiąc, instrukcje BIOS-u również spełniają swoją rolę: wykonują test sprzętu, a następnie wszystkie informacje trafiają na dysk twardy, aby utworzyć sektor rozruchowy. Sektor rozruchowy to jeden mały program, a BIOS przechowuje go w pamięci po odczytaniu z dysku. Mikroprocesor rozpoczyna następnie wykonywanie instrukcji sektora rozruchowego z pamięci RAM. Program sektora rozruchowego poinformuje mikroprocesor, co jeszcze ma zabrać z dysku twardego do pamięci RAM, a następnie robi to wszystko i tak dalej. W ten sposób mikroprocesor ładuje i wykonuje cały system operacyjny.

instrukcje mikroprocesora

Nawet niewiarygodnie prosty mikroprocesor, który właśnie opisałem, będzie miał dość duży zestaw instrukcji, które może wykonać. Zbiór instrukcji jest zaimplementowany jako wzorce bitowe, z których każdy ma inne znaczenie po załadowaniu do sektora instrukcji. Ludzie niezbyt dobrze pamiętają wzorce bitowe, ponieważ jest to zbiór krótkich słów. Nawiasem mówiąc, ten zestaw krótkich słów nazywa się językiem asemblera procesora. Asembler może bardzo łatwo przetłumaczyć słowa na wzór bitowy, a następnie wysiłek asemblera zostanie umieszczony w pamięci, aby mikroprocesor mógł je wykonać.

Oto zestaw instrukcji języka asemblera:

  • LOADA mem- załaduj do rejestru z adresem pamięci
  • Pamięć LOADB- załaduj do rejestru B z adresu pamięci
  • Pamięć CONB- załaduj stałą wartość do rejestru B
  • ZAPISZ pamięć- zapisz rejestr B pod adres pamięci
  • ZAPISZ pamięć- zapisz rejestr C na adres pamięci
  • DODAJ- dodaj A i B i zapisz wynik w C
  • POD- odejmij A i B i zapisz wynik w C
  • MUL- pomnóż A i B i zapisz wynik w C
  • DIV- podziel A i B i zapisz wynik w C
  • COM- porównaj A i B i zapisz wynik w teście
  • SKOK ADRES- przejdź do adresu
  • Adres JEQ- skocz, jeśli równa się rozwiązaniu
  • Adres JNEQ- skocz, jeśli nie równa się rozwiązaniu
  • Adres JG- skacz jeśli więcej, do rozwiązania
  • Adres JGE- skocz, jeśli jest większe lub równe, aby rozwiązać
  • Adres JL- skacz, jeśli mniej do rozwiązania
  • Adres JLE- skocz, jeśli jest mniejszy lub równy, aby rozwiązać
  • ZATRZYMAĆ- zatrzymaj egzekucję
język programowania
Kompilator C tłumaczy ten kod C na język asemblera. Zakładając, że pamięć główna zaczyna się pod adresem 128 w tym procesorze, a pamięć tylko do odczytu (zawierająca program w języku asemblera) zaczyna się pod adresem 0, to dla naszego prostego mikroprocesora asembler może wyglądać tak:

// Załóżmy, że a jest pod adresem 128 // Załóżmy, że F jest pod adresem 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // jeśli a > 5 skocz do 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // powrót do if17 STOP

Pamięć tylko do odczytu (ROM)
Więc teraz pytanie brzmi: „Jak wszystkie te instrukcje integrują się z ROMem?”. Wyjaśnię oczywiście: każda z tych instrukcji asemblera musi być reprezentowana jako liczba binarna. Dla uproszczenia załóżmy, że każda instrukcja asemblera przypisuje sobie unikalny numer. Na przykład będzie to wyglądać tak:

  • LOADA - 1
  • LOADB - 2
  • CONB - 3
  • ZAPISZ - 4
  • ZAPISZ pamięć - 5
  • DODAJ - 6
  • POD - 7
  • MUL - 8
  • DIV - 9
  • COM - 10
  • SKOK ADRES - 11
  • Adres JEQ - 12
  • Adres JNEQ - 13
  • Adres JG - 14
  • Adres JGE - 15
  • Adres JL - 16
  • Adres JLE - 17
  • ZATRZYMAĆ - 18
Numery te będą znane jako kody operacji. W ROM-ie nasz mały program będzie wyglądał tak:

// Załóżmy, że a jest pod adresem 128 // Załóżmy, że F jest pod adresem 129Addr opcode/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 // DODAJ27 5 // ZAPISZ 12828 12829 11 // SKOK 430 831 18 // ZATRZYMAJ

Widzisz, że 7 linijek kodu w C zmieniło się w 18 linijek asemblera, a wszystkie w pamięci ROM stały się 32 bajtami.

Rozszyfrowanie
Instrukcja dekodowania musi przekształcić każdy z opkodów w zestaw sygnałów, które będą sterować różnymi komponentami w mikroprocesorze. Weźmy jako przykład instrukcje ADD i zobaczmy, co ma zrobić. Więc:

  • 1. W pierwszym cyklu konieczne jest załadowanie samej instrukcji, więc dekoder musi: aktywować bufor licznika programu z trzema stanami, aktywować linię odczytu (RD), aktywować dane w trzech stanach bufor w rejestrze instrukcji
  • 2. W drugim cyklu dekodowana jest instrukcja ADD. Tutaj musisz zrobić bardzo niewiele: ustaw działanie jednostki arytmetyczno-logicznej (ALU) na rejestr C
  • 3. Podczas trzeciego cyklu licznik programu jest zwiększany (teoretycznie może się to pokrywać w drugim cyklu)
Każdą instrukcję można podzielić na zestaw sekwencyjnych operacji, tak jak właśnie omówiliśmy. Manipulują elementami mikroprocesora we właściwej kolejności. Niektóre instrukcje, takie jak instrukcja ADD, mogą zająć dwa lub trzy cykle. Inni mogą wziąć pięć lub sześć taktów.

Dojdźmy do końca

Liczba tranzystorów ma ogromny wpływ na wydajność procesora. Jak widać powyżej, typowy mikroprocesor Intel 8088 może wykonać 15 cykli. Im więcej tranzystorów, tym wyższa wydajność - to proste. Duża liczba tranzystorów umożliwia również technologię, taką jak potokowanie.

Architektura potoku składa się z wykonywania poleceń. Wykonanie jednej instrukcji może zająć pięć cykli, ale nie może być pięciu instrukcji na różnych etapach wykonywania w tym samym czasie. Wygląda więc na to, że jedna instrukcja kończy każdy cykl zegara.

Wszystkie te trendy pozwalają na wzrost liczby tranzystorów, czego wynikiem są obecnie dostępne tranzystory o wartości wielu milionów dolarów. Takie procesory mogą wykonywać około miliarda operacji na sekundę – wyobraź sobie. Nawiasem mówiąc, teraz wielu producentów zainteresowało się wydaniem 64-bitowych procesorów mobilnych i oczywiście nadchodzi kolejna fala, tylko tym razem królem mody jest architektura 64-bitowa. Może w niedalekiej przyszłości przejdę do tego tematu i opowiem jak to właściwie działa. Na tym chyba wszystko na dziś. Mam nadzieję, że Ci się podobało i dużo się nauczyłeś.

Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!