Articles

HTG wyjaśnia: jak właściwie działa procesor?

  • Anthony Heddings

    @anthonyheddings

  • Zaktualizowano luty 28, 2020, 16:58 EDT
procesor
Rost/

większość rzeczy w komputerze jest stosunkowo prosta do zrozumienia: pamięć RAM, pamięć masowa, urządzenia peryferyjne i oprogramowanie współpracują ze sobą, aby stworzyć funkcję komputera. Ale serce Twojego systemu, PROCESOR, wydaje się magiczne nawet dla wielu ludzi technicznych. Zrobimy, co w naszej mocy, żeby to rozbić.

większość badań do tego artykułu pochodzi z „ale skąd to wiedzieć?”autorstwa J. Clarka Scotta. To fantastyczna lektura, wchodzi w znacznie głębszą głębię niż ten artykuł i jest warta kilku dolców na Amazon.

jedna uwaga zanim zaczniemy: nowoczesne procesory są o rząd wielkości bardziej złożone niż to, co tutaj przedstawiamy. To prawie niemożliwe, aby jedna osoba zrozumiała każdy niuans układu z ponad miliardem tranzystorów. Jednak podstawowe zasady tego, jak to wszystko pasuje do siebie, pozostają takie same, a Zrozumienie podstaw pozwoli Ci lepiej zrozumieć nowoczesne systemy.

uruchamianie małych

komputery działają w trybie binarnym. Rozumieją tylko dwa stany: włączony i wyłączony. Do wykonywania obliczeń w trybie binarnym używają tzw. tranzystora. Tranzystor pozwala prądowi źródłowemu przepłynąć przez niego do odpływu tylko wtedy, gdy przez bramę przepływa prąd. Zasadniczo tworzy to przełącznik binarny, który odcina przewód w zależności od drugiego sygnału wejściowego.

RELATED: co to jest binarny i dlaczego Komputery go używają?

Reklama

nowoczesne komputery używają miliardów tranzystorów do wykonywania obliczeń, ale na najniższych poziomach wystarczy tylko garść, aby utworzyć najbardziej podstawowe komponenty, znane jako bramki.

bramki logiczne

układają kilka tranzystorów poprawnie, i masz tak zwaną bramkę logiczną. Bramki logiczne pobierają dwa wejścia binarne, wykonują na nich operację i zwracają wyjście. Bramka OR, na przykład, zwraca true, jeśli jedno z wejść jest prawdziwe. Bramka AND sprawdza, czy oba wejścia są prawdziwe, XOR sprawdza, czy tylko jedno z wejść jest prawdziwe, a n-warianty (NOR, NAND i XNOR) są odwróconymi wersjami ich bazowych bramek.

doing Math With Gates

przy użyciu zaledwie dwóch bramek można wykonać podstawowe dodawanie binarne. Powyższy diagram pokazuje half Addera, stworzonego przy użyciu Logicly, darmowego internetowego placu zabaw dla bramek logicznych. Brama XOR włączy się, jeśli tylko jedno z wejść jest włączone, ale nie oba. Brama AND włączy się, jeśli oba wejścia są włączone, ale pozostanie wyłączona, jeśli nie ma wejścia. Więc jeśli oba są włączone, XOR pozostaje wyłączony, a bramka AND włącza się, dochodząc do poprawnej odpowiedzi dwóch:

Reklama

daje nam to prostą konfigurację z trzema różnymi wyjściami: zero, jeden i dwa. Ale jeden bit nie może przechowywać niczego wyższego niż 1, A Ta maszyna nie jest zbyt użyteczna, ponieważ rozwiązuje tylko jeden z najprostszych problemów matematycznych. Ale jest to tylko połowa dodawarki, a jeśli połączysz dwa z nich z innym wejściem, otrzymasz pełną dodawarkę:

pełny adder ma trzy wejścia—dwie liczby do dodania I „carry.”Przenoszenie jest używane, gdy ostateczna liczba przekracza to, co można zapisać w jednym bitie. Pełne żmije będą połączone łańcuchem, a przenoszenie jest przekazywane z jednego żmija do drugiego. Carry jest dodawany do wyniku bramki XOR w pierwszej połowie adder, i jest dodatkowy lub brama do obsługi obu przypadkach, gdy tak, że musiałby być włączony.

gdy oba wejścia są włączone, carry włącza się i wysyła je do następnego pełnego Addera w łańcuchu:

i to jest tak złożone jak dodawanie. Przejście do większej liczby bitów oznacza po prostu więcej pełnych dodawarek w dłuższym łańcuchu.

Reklama

większość innych operacji matematycznych można wykonać za pomocą dodawania; mnożenie jest po prostu powtarzanym dodawaniem, odejmowanie można wykonać za pomocą fantazyjnej inwersji bitowej, a dzielenie jest po prostu powtarzanym odejmowaniem. I chociaż wszystkie nowoczesne komputery mają rozwiązania sprzętowe, które przyspieszają bardziej skomplikowane operacje, technicznie można to zrobić za pomocą pełnego programu adder.

Magistrala i pamięć

w tej chwili nasz komputer to nic innego jak zły Kalkulator. Dzieje się tak dlatego, że nic nie pamięta i nic nie robi ze swoimi wyjściami. Powyżej pokazano komórkę pamięci, która może to wszystko zrobić. Pod maską wykorzystuje wiele bramek NAND, a w prawdziwym życiu może być zupełnie inny w zależności od techniki przechowywania, ale jego funkcja jest taka sama. Dajesz mu kilka wejść, włączasz bit 'write’, a on przechowuje wejścia wewnątrz komórki. To nie jest tylko komórka pamięci, ponieważ potrzebujemy również sposobu na odczytanie z niej informacji. Odbywa się to za pomocą enablera, który jest zbiorem bramek AND dla każdego bitu w pamięci, wszystkie powiązane z innym wejściem, bitem „odczytu”. Bity zapisu i odczytu są często nazywane ” set „I” enable”.

cały ten pakiet jest zapakowany w tzw. rejestr. Rejestry te są podłączone do magistrali, która jest wiązką przewodów biegnących wokół całego systemu, podłączonych do każdego komponentu. Nawet nowoczesne komputery mają magistralę, choć mogą mieć wiele magistral, aby poprawić wydajność wielozadaniowości.

każdy rejestr nadal ma bit zapisu i odczytu, ale w tej konfiguracji wejście i wyjście są tym samym. To jest naprawdę dobre. Na przykład. Jeśli chcesz skopiować zawartość R1 do R2, włączysz bit odczytu dla R1, który wypchnie zawartość R1 na magistralę. Gdy bit odczytu jest włączony, włączysz bit zapisu dla R2, który skopiuje zawartość magistrali do R2.

Reklama

rejestry są również używane do tworzenia pamięci RAM. RAM jest często układany w siatkę, z przewodami biegnącymi w dwóch kierunkach:

Dekodery pobierają wejście binarne i włączają odpowiedni numerowany przewód. Na przykład, ” 11 ” to 3 w binarnym, najwyższa 2-bitowa liczba, więc dekoder włączyłby najwyższy przewód. Na każdym skrzyżowaniu jest rejestr. Wszystkie są podłączone do Centralnej Magistrali oraz do centralnego wejścia zapisu i odczytu. Zarówno Wejście odczytu, jak i zapisu włącza się tylko wtedy, gdy dwa przewody przecinające rejestr są również włączone, co skutecznie pozwala wybrać rejestr, z którego ma być zapisany i odczytany. Ponownie, nowoczesna PAMIĘĆ RAM jest znacznie bardziej skomplikowana, ale ta konfiguracja nadal działa.

rejestry zegara, steppera i dekodera

są używane wszędzie i są podstawowym narzędziem do przenoszenia danych i przechowywania informacji w procesorze. Więc co mówi im, żeby się przemieszczali?

zegar jest pierwszym komponentem w rdzeniu procesora i wyłączy się i włączy w ustawionym interwale, mierzonym w hercach lub cyklach na sekundę. Jest to prędkość, którą widzisz reklamowane obok procesorów; układ 5 GHz może wykonywać 5 miliardów cykli na sekundę. Prędkość zegara jest często bardzo dobrym wskaźnikiem szybkości procesora.

Reklama

zegar ma trzy różne stany: zegar bazowy, zegar włączający i zegar ustawiony. Zegar bazowy będzie włączony przez pół cyklu, a wyłączony przez drugą połowę. Włącz Zegar służy do włączania rejestrów i musi być włączony dłużej, aby upewnić się, że dane są włączone. Ustawiony zegar musi być zawsze włączony w tym samym czasie co włącz zegar, w przeciwnym razie mogą zostać zapisane nieprawidłowe dane.

zegar jest podłączony do steppera, który będzie liczył od jednego do maksymalnego kroku, a po zakończeniu zresetuje się z powrotem do jednego. Zegar jest również podłączony do bramek AND dla każdego rejestru, do którego procesor może zapisać:

te bramki AND są również podłączone do wyjścia innego komponentu, dekodera instrukcji. Dekoder instrukcji pobiera instrukcję typu „Ustaw R2 na R1” i dekoduje ją na coś, co CPU może zrozumieć. Posiada własny rejestr wewnętrzny, zwany „rejestrem instrukcji”, w którym przechowywana jest bieżąca operacja. Jak dokładnie to robi, sprowadza się to do systemu, na którym działasz, ale po jego dekodowaniu włączy poprawny zestaw i włączy bity dla poprawnych rejestrów, które odpalą zgodnie z zegarem.

instrukcje programu są przechowywane w pamięci RAM (lub pamięci podręcznej L1 W nowoczesnych systemach, bliżej procesora). Ponieważ dane programu są przechowywane w rejestrach, tak jak każda inna zmienna, można nimi manipulować w locie, aby skakać po programie. W ten sposób programy uzyskują swoją strukturę, z pętlami i instrukcjami if. Instrukcja skoku ustawia bieżącą lokalizację w pamięci, z której czyta dekoder instrukcji, w inne miejsce.

Jak to wszystko się łączy

teraz nasze rażące uproszczenie sposobu działania procesora jest zakończone. Magistrala główna obejmuje cały system i łączy się ze wszystkimi rejestrami. Pełne dodawarki, wraz z wieloma innymi operacjami, są pakowane do jednostki arytmetycznej logiki lub ALU. Ten ALU będzie miał połączenia z magistralą, a także będzie miał własne rejestry do przechowywania drugiego numeru, na którym działa.

Reklama

aby wykonać obliczenia, dane programu są ładowane z pamięci RAM systemu do sekcji sterowania. Sekcja sterująca odczytuje dwie liczby z pamięci RAM, ładuje pierwszą do rejestru instrukcji ALU, a następnie ładuje drugą na magistralę. Tymczasem wysyła Alu Kod instrukcji mówiący mu, co ma robić. ALU następnie wykonuje wszystkie obliczenia i zapisuje wynik w innym Rejestrze, z którego CPU może odczytać, a następnie kontynuować proces.

źródło obrazu: Rost9/

Anthony Heddings
Anthony Heddings jest inżynierem chmury w LifeSavvy Media, pisarzem technicznym, programistą i ekspertem w platformie AWS Amazon. Napisał setki artykułów dla Geeka How-To I CloudSavvy IT, które zostały przeczytane miliony razy.Przeczytaj cały Biogram ”