Jednostki centralne (CPU) to mózgi naszych komputerów. Przetwarzają wszystko, co robimy na co dzień, od otwarcia aplikacji po obejrzenie filmu. Ale czym właściwie jest procesor? Jak to działa? A jaka jest różnica między procesorami a coraz bardziej popularnymi procesorami wirtualnymi?
Zrozumienie mózgów komputerów
Pierwsze komputery elektroniczne powstały na początku XIX wieku, zgodnie z kompletnym przewodnikiem po historii opublikowane przez G2. Jednak te komputery były duże i drogie, i mogły być używane tylko przez przeszkolonych matematyków i naukowców.
Charlesowi Babbage przypisuje się wynalezienie pierwszej maszyny obliczeniowej, mechanizmu różnicowego, który można zaprogramować do wykonywania wszelkich obliczeń, które można wykonać ręcznie. Jednak projekt Difference Engine nigdy nie został ukończony z powodu braku funduszy, według Muzeum Historii Komputerów.
W 1937 Babbage po raz pierwszy wspomniał o silniku analitycznym, który stał się pierwszym na świecie komputerem mechanicznym ogólnego przeznaczenia. „Maszyna analityczna zawierała wszystkie elementy współczesnego komputera: jednostkę arytmetyczno-logiczną, przepływ sterowania w postaci warunkowych rozgałęzień i pętli oraz zintegrowaną pamięć” (
Uwagi dotyczące elektroniki).Kluczowym elementem współczesnego komputera jest procesor lub jednostka centralna. Procesor jest odpowiedzialny za wykonywanie instrukcji wydawanych mu przez oprogramowanie, takie jak system operacyjny lub aplikacja. Mówiąc potocznie, możesz myśleć o procesorze jako o mózgu twojego komputera. Procesor składa się z dwóch głównych części: jednostki sterującej i jednostki arytmetyczno-logicznej (ALU). Jeśli te skróty Cię dezorientują, zobacz nasze omówienie różnic między APU, CPU i GPU.
Jednostka sterująca jest odpowiedzialna za pobieranie instrukcji z pamięci, dekodowanie ich, a następnie wysyłanie ich do jednostki arytmetyczno-logicznej w celu wykonania. Jednostka ALU wykonuje operacje arytmetyczne i logiczne na danych przechowywanych w rejestrach, które są wewnętrznymi jednostkami pamięci wewnątrz CPU.
Nowoczesny Procesory zawierają również pamięć podręczną, czyli niewielka ilość szybkiej pamięci, która przechowuje często używane instrukcje i dane. Skrytki są podzielone na poziomy; Pamięć podręczna poziomu 1 (L1) jest wbudowana w samą kość procesora, pamięć podręczna poziomu 2 (L2) znajduje się na osobnym procesor, a pamięć podręczna poziomu 3 (L3) znajduje się dalej od procesora na własnym chipie lub nawet na własnym obwodzie tablica.
Procesor kontra vCPU
Wraz z rozwojem usług w chmurze pojawiła się wirtualna jednostka centralna, w skrócie vCPU. TechTarget definiuje vCPU jako „fizyczna jednostka centralna (CPU) przypisana do maszyny wirtualnej (VM).”
Maszyny wirtualne są w zasadzie samodzielnymi systemami operacyjnymi, które działają w innym systemie operacyjnym tak, jakby były aplikacjami. Maszyny wirtualne są wykorzystywane do różnych celów, takich jak testowanie nowego oprogramowania w bezpiecznym środowisku, uruchamianie wielu systemów operacyjnych (np. Windows i Linux) na tym samym komputerze lub konsolidację wielu serwerów fizycznych w jeden serwer w celu zaoszczędzenia miejsca i ograniczenia koszty.
Tak więc vCPU to programowa implementacja procesora; nie istnieje fizycznie w twoim komputerze, tak jak robi to prawdziwy procesor. Hypervisor, czyli oprogramowanie, które tworzy i zarządza maszynami wirtualnymi, przypisuje procesory wirtualne do maszyny wirtualnej. Każdy vCPU jest postrzegany przez system operacyjny wewnątrz maszyny wirtualnej jako prawdziwy rdzeń procesora. Zobacz nasze wyjaśnienie hipernadzorców uczyć się więcej.
Jednak ponieważ procesory wirtualne są oparte na oprogramowaniu, nie są tak wydajne, jak prawdziwe procesory. Dlatego ważne jest, aby określić, ile rdzenie twojego procesora kiedy kupujesz komputer (np. „czterordzeniowy” oznacza cztery rdzenie). Ta sama zasada obowiązuje przy wyborze planu hostingu wirtualnego serwera prywatnego (VPS) lub serwera dedykowanego.
Główną różnicą między procesorami a procesorami wirtualnymi jest to, że procesory są oparte na sprzęcie, podczas gdy procesory wirtualne są oparte na oprogramowaniu. Oznacza to, że procesory fizycznie istnieją wewnątrz komputera, podczas gdy procesory wirtualne nie; zamiast tego są tworzone przez hipernadzorców w razie potrzeby. Ze względu na tę różnicę w implementacji procesory są znacznie bardziej wydajne niż procesory wirtualne; nie obciążają ich pracą w oprogramowaniu.
Od początku XXI wieku procesory wirtualne stają się coraz bardziej popularne, ponieważ są tańsze i łatwiejsze do przypisania niż procesory fizyczne; jeśli jednak zależy Ci na wydajności, najlepiej użyć komputera z wieloma rdzeniami procesora, ponieważ każdy rdzeń może przetwarzać instrukcje niezależnie.
Rdzenie kontra Wątki
Procesor może mieć jeden lub więcej rdzeni, które są jednostką przetwarzającą, która wykonuje zadania w określonym czasie. Rdzeń będzie utrzymywać kolejność wykonywania zadań, rejestry i pamięć podręczną (jeśli dotyczy) oraz wykonywać operacje za pośrednictwem ALU. Procesor kontroluje rdzenie, ale rdzeń wykonuje każdy proces programowy lub wątek zaplanowany przez system operacyjny. Wątek to niezależna sekwencja instrukcji, które mogą być przetwarzane przez procesor.
W tym samym procesie może istnieć wiele wątków i współdzielić tę samą przestrzeń pamięci. Dzięki temu mogą komunikować się ze sobą łatwiej, niż gdyby działały w ramach oddzielnych procesów. Wątki są często używane do poprawy wydajności aplikacji wielowątkowych, umożliwiając jednoczesne działanie różnych części programu na różnych rdzeniach lub procesorach.
Termin „wątek” jest używany w terminologii komputerowej od wielu lat; jednak dopiero na początku XXI wieku w procesorach wprowadzono obsługę wątków na poziomie sprzętowym. Pozwoliło to na jednoczesne wykonywanie wielu wątków na osobnych rdzeniach. Wcześniej tylko jeden wątek mógł być jednocześnie wykonywany na jednym rdzeniu, niezależnie od tego, ile rdzeni było obecnych w procesorze. Procesory wielordzeniowe są obecnie powszechne, a większość systemów operacyjnych zapewnia pewien poziom wsparcia dla uruchamiania programów jako wielu wątków.
Podsumowanie podstawowych problemów
Podsumowując, procesory to sprzętowe mózgi naszych komputerów, podczas gdy ich wirtualne odpowiedniki, vCPU, są oparte na oprogramowaniu i tworzone przez hipernadzorców do działania w maszynach wirtualnych. Rdzenie to sprzętowe jednostki przetwarzające w procesorze, podczas gdy wątki to instrukcje programowe, które mogą być przetwarzane przez procesor.
Wątki mogą być wykonywane jednocześnie na osobnych rdzeniach, co pozwala na jednoczesne działanie różnych części programu. Może to poprawić wydajność sprzętu, ponieważ wiele zadań może być przetwarzanych jednocześnie zamiast sekwencyjnie.
Teraz, gdy rozumiesz różnicę między procesorami, procesorami wirtualnymi, rdzeniami i wątkami, możesz podjąć świadomą decyzję przy wyborze komputera lub serwera. Jeśli zależy Ci na wydajności, najlepiej wybrać komputer z wieloma rdzeniami procesora, ponieważ każdy rdzeń może przetwarzać instrukcje niezależnie. Jeśli jednak szukasz opłacalnego rozwiązania, najlepszym rozwiązaniem mogą być wirtualne procesory.