Milap Neupane Blog

procesor, znany również jako mikroprocesor, jest sercem i / lub mózgiem komputera. Pozwala głęboko zanurzyć się w rdzeniu komputera i zrozumieć, jak działa procesor, który pomoże nam efektywnie pisać programy komputerowe.

narzędzie jest zwykle prostsze niż maszyna; zwykle jest używane z ręką, podczas gdy maszyna jest często poruszana siłą zwierząt lub pary.

– Charles Babbage

komputer jest maszyną zasilaną głównie energią elektryczną, ale jego elastyczność i programowalność pomogły osiągnąć prostotę narzędzia.

procesor to serce i/lub mózg komputera. Wykonuje instrukcje, które są im dostarczane. Jego głównym zadaniem jest wykonywanie operacji arytmetycznych i logicznych oraz koordynowanie instrukcji razem. Zanim przejdziemy do głównych części, zacznijmy od tego, jakie są główne komponenty procesora i jakie są ich role:

dwa główne komponenty procesora (procesora)

  • Jednostka Sterująca — CU
  • Jednostka arytmetyczno — logiczna — ALU

Jednostka Sterująca-cu

jednostka sterująca CU jest częścią procesora, która pomaga koordynować wykonywanie instrukcji. Mówi, co robić. Zgodnie z instrukcją pomaga aktywować przewody łączące procesor z różnymi innymi częściami komputera, w tym ALU. Jednostka sterująca jest pierwszym komponentem PROCESORA, który otrzymuje instrukcję do przetwarzania.

istnieją dwa typy jednostek sterujących:

  • jednostki sterujące.
  • mikroprogramowalne jednostki sterujące.

jednostki sterujące są sprzętem i wymagają zmiany sprzętu, aby dodać modyfikację, podczas gdy mikro-programowalna jednostka sterująca może być zaprogramowana, aby zmienić swoje zachowanie. Hardwired CU jest szybszy w instrukcji przetwarzania, podczas gdy mikro-programowalny jako bardziej elastyczny.

Jednostka arytmetyczno — logiczna-ALU

Jednostka arytmetyczno-logiczna Alu jak sama nazwa wskazuje wykonuje wszystkie obliczenia arytmetyczne i logiczne. Alu wykonuje operacje takie jak dodawanie, odejmowanie. ALU składa się z układów logicznych lub bramek logicznych, które wykonują te operacje.

Większość bramek logicznych przyjmuje dwa wejścia i produkuje jedno wyjście

Poniżej znajduje się przykład układu póładresowego, który przyjmuje dwa wejścia i wyprowadza wynik. Tutaj a i B są wejściem, S jest wyjściem, A C nośnikiem.

Half adder
Half source:https://en.wikipedia.org/wiki/Adder_(electronics)#/media/plik:Half_Adder.svg

Storage — rejestry i pamięć

głównym zadaniem procesora jest wykonanie dostarczonych mu instrukcji. Aby przetworzyć te instrukcje przez większość czasu, potrzebuje danych. Niektóre dane są danymi pośrednimi, niektóre z nich są danymi wejściowymi, a inne są danymi wyjściowymi. Dane te wraz z instrukcją są przechowywane w następującej pamięci:

rejestry

rejestr jest małym zbiorem miejsc, w których dane mogą być przechowywane. Rejestr jest kombinacją zatrzasków. Zatrzaski znane również jako klapki to kombinacje bramek logicznych, które przechowują 1 bit informacji.

zatrzask ma dwa przewody wejściowe, drut zapisu i wejścia oraz jeden przewód wyjściowy. Możemy włączyć przewód zapisu, aby wprowadzić zmiany w przechowywanych danych. Gdy przewód zapisu jest wyłączony, wyjście pozostaje zawsze takie samo.

zatrzask SR, zbudowany z pary sprzężonych krzyżowo bramek NOR

procesor ma rejestry do przechowywania danych wyjściowych. Wysyłanie do pamięci głównej (RAM) byłoby powolne, ponieważ są to dane pośrednie. Dane te są przesyłane do innych rejestrów połączonych magistralą. Rejestr może przechowywać instrukcje, Dane wyjściowe, adres przechowywania lub wszelkiego rodzaju dane.

pamięć(RAM)

Ram jest zbiorem rejestrów ułożonych i zwartych razem w zoptymalizowany sposób, dzięki czemu może przechowywać większą liczbę danych. PAMIĘĆ RAM (Random Access Memory) jest niestabilna, a jej dane zostają utracone po wyłączeniu zasilania. Ponieważ RAM jest zbiorem rejestrów do odczytu / zapisu danych, RAM pobiera dane o adresie 8Bit, dane wejściowe dla rzeczywistych danych, które mają być przechowywane, a na koniec włącznik do odczytu i zapisu, który działa tak, jak w przypadku zatrzasków.

Co to są instrukcje

Instrukcja to obliczenia poziomu ziarnistego, które komputer może wykonać. Istnieją różne rodzaje instrukcji, które procesor może przetwarzać.

instrukcja zawiera:

  • arytmetyczne, takie jak dodawanie i odejmowanie
  • instrukcje logiczne, takie jak and, or, and not
  • instrukcje dotyczące danych, takie jak move, input, output, load, and store
  • instrukcje przepływu sterowania, takie jak goto, if … goto, call and return
  • powiadom procesor, że program zakończył instrukcje Halt

są dostarczane do komputera za pomocą języka assembly lub są generowane przez kompilator lub są interpretowane w niektórych-języki na poziomie.

te instrukcje są podłączone na stałe do procesora. Alu zawiera arytmetyczne i logiczne, podczas gdy przepływ sterowania jest zarządzany przez CU.

w jednym cyklu zegara komputery mogą wykonać jedną instrukcję, ale nowoczesne komputery mogą wykonać więcej niż jedną.

Grupa instrukcji, które komputer może wykonać, nazywa się zestawem instrukcji.

zegar procesora

cykl zegara

szybkość komputera jest określana przez jego cykl zegara. Jest to liczba okresów zegara na sekundę, na których pracuje komputer. Pojedyncze cykle zegara są bardzo małe jak wokół 250 * 10 *-12 sek. wyższy cykl zegara szybszy procesor.

cykl zegara procesora mierzony jest w GHz(Gigahercach). 1gHz jest równe 10 ⁹ Hz(hertz). Hertz oznacza sekundę. Tak więc 1gigaherc oznacza 10 ⁹ cykli na sekundę.

im szybszy cykl zegara, tym więcej instrukcji procesor może wykonać. Clock cycle = 1 / clock rate CPU Time = number of clock cycle/clock rate

oznacza to, że aby poprawić czas procesora możemy zwiększyć częstotliwość taktowania lub zmniejszyć liczbę cykli zegara, optymalizując instrukcje, które dostarczamy CPU. Niektóre procesory zapewniają możliwość zwiększenia cyklu zegara, ale ponieważ jest to fizyczne zmiany, może dojść do przegrzania, a nawet palenia/pożarów.

Jak wykonuje się instrukcję

instrukcje są przechowywane w pamięci RAM w kolejności sekwencyjnej. Dla hipotetycznego procesora Instrukcja składa się z kodu OP (kodu operacyjnego) i adresu pamięci lub rejestru.

wewnątrz rejestru instrukcji Jednostki Sterującej(ir) znajdują się dwa rejestry, które ładują kod OP instrukcji oraz rejestr adresów instrukcji, który ładuje adres aktualnie wykonywanej instrukcji. Istnieją inne rejestry wewnątrz procesora, które przechowują wartość zapisaną w adresie ostatnich 4 bitów instrukcji.

weźmy przykład zestawu instrukcji, który dodaje dwie liczby. Poniżej znajdują się instrukcje wraz z ich opisem. Procesor działa wykonując następujące instrukcje:

Krok 1 — LOAD_A 8:

instrukcja jest początkowo zapisywana w pamięci RAM jako powiedzmy <>. Pierwszy 4 bit to kod op. To określa instrukcję. Ta instrukcja jest pobierana do IR jednostki sterującej. Instrukcja jest dekodowana jako load_A, co oznacza, że musi załadować dane w adresie 1000, który jest ostatnim 4 bitem instrukcji do rejestracji A.

Krok 2 — LOAD_B 2

podobne do powyższego wczytuje dane w adresie pamięci 2 (0010) do rejestru procesora B.

Krok 3 — Dodaj B a

teraz następną instrukcją jest dodanie tych dwóch liczb. Tutaj CU każe ALU wykonać operację add i zapisać wynik z powrotem do rejestru A.

KROK 4 — STORE_A 23

jest to bardzo prosty zestaw instrukcji, który pomaga dodać dwie liczby.

pomyślnie dodaliśmy dwa numery!

magistrala

wszystkie dane pomiędzy procesorem, rejestrem, pamięcią i urządzeniami IO są przesyłane przez magistralę. Aby załadować dane do pamięci, którą właśnie dodała, procesor umieszcza adres pamięci na magistrali adresowej, a wynik sumy na magistrali danych i włącza odpowiedni sygnał w magistrali sterującej. W ten sposób dane są ładowane do pamięci za pomocą magistrali.

szyna procesora
zdjęcie src:https://en.wikipedia.org/wiki/Bus_(computing)#/media/plik:Computer_system_bus.svg

Cache

CPU ma również mechanizm do wstępnego Dopasowania Instrukcji do jej buforowanej. Jak wiemy, procesor może wykonać miliony instrukcji w ciągu sekundy. Oznacza to, że będzie więcej czasu na pobranie instrukcji z pamięci RAM niż wykonanie jej. Tak więc pamięć podręczna procesora wstępnie paruje niektóre instrukcje, a także dane, aby wykonanie było szybkie.

Jeśli dane w pamięci podręcznej i pamięci operacyjnej są inne, dane są oznaczone jako brudny bit.

Instrukcja pipelining

nowoczesny procesor używa instrukcji pipelining do równoległości w wykonywaniu instrukcji. Pobierz, Odkoduj, Wykonaj. Gdy jedna instrukcja jest w fazie dekodowania, procesor może przetworzyć inną instrukcję dla fazy pobierania.

cykl zegara procesora
Źródło zdjęcia:https://en.wikipedia.org/wiki/Instruction_pipelining#/media/File:Pipeline,_4_stage.svg

To ma jeden problem, gdy jedna instrukcja jest zależna od drugiej. Tak więc procesory wykonują instrukcję, która nie jest zależna i w innej kolejności.

komputer wielordzeniowy

jest to zasadniczo inny procesor, ale ma pewne wspólne zasoby, takie jak pamięć podręczna.

wydajność

wydajność procesora zależy od czasu jego wykonania. Performance = 1 / execution time

powiedzmy, że wykonanie programu zajmuje 20ms. Wydajność procesora wynosi 1/20 = 0.05msRelative performance = execution time 1 / execution time 2

czynnikiem, który jest brany pod uwagę dla wydajności procesora jest czas wykonania instrukcji i szybkość zegara procesora. Aby więc zwiększyć wydajność programu, musimy albo zwiększyć taktowanie zegara, albo zmniejszyć liczbę instrukcji w programie. Szybkość procesora jest ograniczona, a nowoczesne komputery z rdzeniem wielordzeniowym mogą obsługiwać miliony instrukcji na sekundę. Ale jeśli program, który napisaliśmy, ma wiele instrukcji, zmniejszy to ogólną wydajność.

notacja Big O określa na podstawie danych wejściowych sposób wpływu na wydajność.

w procesorze jest wiele optymalizacji, aby uczynić go szybszym i wykonywać jak najwięcej. Pisząc dowolny program musimy wziąć pod uwagę, jak zmniejszenie liczby instrukcji, które dostarczamy do procesora, zwiększy wydajność programu komputerowego.

interesuje Cię optymalizacja baz danych? Dowiedz się o tym tutaj: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/

Related Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *