- Poprawa architektury
- Pochodzenie
- Model
- - Centralna jednostka przetwarzania (CPU)
- Logiczna jednostka arytmetyczna
- Jednostka sterująca
- Dokumentacja
- - Pamięć
- - Wejście wyjście
- - Autobus
- Jak działa architektura von Neumanna?
- Szukaj
- Rozszyfrować
- Biegać
- Na stanie
- Wąskie gardło
- Korzyść
- Rozwój systemów operacyjnych
- Niedogodności
- Bibliografia
Architektura von Neumanna jest projektem teoretycznym, dzięki czemu komputer może mieć program przechowywany wewnętrznie, stanowiący podstawę dla prawie wszystkich obecnie produkowanych komputerów.
Maszyna von Neumanna składa się z jednostki centralnej, która zawiera jednostkę logiki arytmetycznej i jednostkę sterującą, a także pamięć główną, pamięć dodatkową i urządzenia wejścia / wyjścia.

Źródło: David strigoi - Praca własna, domena publiczna, commons.wikimedia.org
Ta architektura zakłada, że każde obliczenie wyodrębnia dane z pamięci, przetwarza je, a następnie wysyła z powrotem do pamięci.
W architekturze von Neumanna ta sama pamięć i ta sama magistrala są używane do przechowywania zarówno danych, jak i instrukcji, które wykonują program.
Poprawa architektury
Ponieważ nie można jednocześnie uzyskać dostępu do danych i pamięci programu, architektura von Neumanna jest podatna na wąskie gardła i osłabienie wydajności komputera. Jest to tzw. Wąskie gardło von Neumanna, które wpływa na moc, wydajność i koszty.
Jedna z wprowadzonych zmian polegała na ponownym przemyśleniu, ile danych faktycznie należy przesłać do pamięci, a ile można przechowywać lokalnie.
W ten sposób, zamiast wysyłać wszystko do pamięci, wiele pamięci podręcznych i pamięci podręcznych proxy może zmniejszyć przepływ danych z układów procesora do różnych urządzeń.
Pochodzenie
W 1945 roku, po drugiej wojnie światowej, dwóch naukowców niezależnie od siebie podniosło, jak zbudować bardziej plastyczny komputer. Jednym z nich był matematyk Alan Turing, a drugim równie utalentowany naukowiec John Von Neumann.
Brytyjski Alan Turing był zaangażowany w złamanie kodu Enigmy w Bletchley Park przy użyciu komputera „Colossus”. Z drugiej strony Amerykanin John Von Neumann pracował nad Manhattan Project, aby zbudować pierwszą bombę atomową, co wymagało wielu ręcznych obliczeń.
Do tego czasu komputery z czasów wojny były mniej więcej „programowane” przez ponowne podłączenie całej maszyny w celu wykonania innego zadania. Na przykład pierwszy komputer o nazwie ENIAC potrzebował trzech tygodni, aby ponownie połączyć się i wykonać inne obliczenia.
Nowa koncepcja polegała na tym, że w pamięci musiały być przechowywane nie tylko dane, ale także program przetwarzający te dane powinien znajdować się w tej samej pamięci.
Ta wewnętrznie przechowywana architektura programu jest powszechnie znana jako architektura „Von Neumanna”.
Ten nowatorski pomysł oznaczał, że komputer o takiej architekturze będzie znacznie łatwiejszy do przeprogramowania. Rzeczywiście, sam program byłby traktowany tak samo jak dane.
Model
Głównym fundamentem modelu Von Neumanna jest myśl, że program jest przechowywany wewnętrznie w maszynie. Jednostka pamięci zawiera dane, a także kod programu. Projekt architektury składa się z:

Źródło: From UserJaimeGallego - ten plik pochodzi z biblioteki Von Neumann Architecture.svg, CC BY-SA 3.0, commons.wikimedia.org
- Centralna jednostka przetwarzania (CPU)
To obwód cyfrowy jest odpowiedzialny za wykonywanie instrukcji programu. Jest również nazywany procesorem. CPU zawiera jednostkę ALU, jednostkę sterującą i zestaw rejestrów.
Logiczna jednostka arytmetyczna
Ta część architektury zajmuje się tylko wykonywaniem operacji arytmetycznych i logicznych na danych.
Dostępne będą zwykłe obliczenia dodawania, mnożenia, dzielenia i odejmowania, ale dostępne będą również porównania danych, takie jak „większe niż”, „mniejsze niż”, „równe”.
Jednostka sterująca
Steruje działaniem ALU komputera, pamięci i urządzeń wejścia / wyjścia, instruując je, jak postępować zgodnie z instrukcjami w programie, który właśnie odczytałeś z pamięci.
Jednostka sterująca będzie zarządzać procesem przenoszenia danych i programów do iz pamięci. Zadba również o wykonanie instrukcji programu, pojedynczo lub sekwencyjnie. Obejmuje to pomysł rejestru do przechowywania wartości pośrednich.
Dokumentacja
Są to szybkie obszary pamięci procesora. Wszystkie dane muszą być przechowywane w rejestrze, zanim będą mogły być przetwarzane.
Rejestr adresów pamięci zawiera lokalizację danych, do których można uzyskać dostęp. Rejestr danych pamięci zawiera dane, które są przesyłane do pamięci.
- Pamięć
Komputer będzie miał pamięć, która może przechowywać dane, a także program przetwarzający te dane. We współczesnych komputerach ta pamięć jest pamięcią RAM lub pamięcią główną. Ta pamięć jest szybka i dostępna bezpośrednio przez procesor.
RAM jest podzielony na komórki. Każda komórka składa się z adresu i jego zawartości. Adres jednoznacznie identyfikuje każdą lokalizację w pamięci.
- Wejście wyjście
Taka architektura pozwala uchwycić ideę, że człowiek musi wchodzić w interakcję z maszyną za pośrednictwem urządzeń wejścia-wyjścia.
- Autobus
Informacje muszą przepływać między różnymi częściami komputera. W komputerze o architekturze von Neumanna informacje są przesyłane z jednego urządzenia do drugiego za pośrednictwem magistrali, łącząc wszystkie jednostki CPU z pamięcią główną.
Magistrala adresowa przenosi adresy danych, ale nie danych, między procesorem a pamięcią.
Magistrala danych przenosi dane między procesorem, pamięcią i urządzeniami wejścia-wyjścia.
Jak działa architektura von Neumanna?
Istotną zasadą architektury von Neumanna jest to, że zarówno dane, jak i instrukcje są przechowywane w pamięci i traktowane tak samo, co oznacza, że instrukcje i dane są kierunkowe.
Działa w czterech prostych krokach: znajdź, zdekoduj, wykonaj, zapisz, zwany „cyklem maszyny”.
Instrukcje są pobierane przez procesor z pamięci. Następnie CPU dekoduje i wykonuje te instrukcje. Wynik jest przechowywany z powrotem w pamięci po zakończeniu cyklu wykonywania instrukcji.
Szukaj
Na tym etapie instrukcje są pobierane z pamięci RAM i zapisywane w pamięci podręcznej w celu uzyskania dostępu do jednostki sterującej.
Rozszyfrować
Jednostka sterująca dekoduje instrukcje w taki sposób, aby logiczna jednostka arytmetyczna mogła je zrozumieć, a następnie wysyła je do logicznej jednostki arytmetycznej.
Biegać
Arytmetyczna jednostka logiczna wykonuje instrukcje i odsyła wynik z powrotem do pamięci podręcznej.
Na stanie
Gdy licznik programu wskaże zatrzymanie, wynik końcowy jest ładowany do pamięci głównej.
Wąskie gardło
Jeśli maszyna von Neumanna chce wykonać operację z danymi w pamięci, musi zostać przesłana magistralą do CPU. Po wykonaniu obliczeń wynik należy przenieść do pamięci tą samą magistralą.
Wąskie gardło von Neumanna występuje, gdy dane wprowadzane do pamięci lub usuwane z niej muszą pozostać w czasie, gdy bieżąca operacja pamięci zostanie zakończona.
Oznacza to, że jeśli procesor właśnie zakończył obliczenie i jest gotowy do wykonania następnego, musi zapisać w pamięci gotowe obliczenia, które zajmują magistralę, zanim będzie mógł pobrać nowe dane z pamięci, która również korzysta z tej samej magistrali.
To wąskie gardło z czasem pogarszało się, ponieważ mikroprocesory zwiększyły swoją prędkość, az drugiej strony pamięć nie rozwijała się tak szybko.
Korzyść
- Centrala w ten sam sposób pobiera dane i instrukcje z pamięci. Dlatego konstrukcja i rozwój jednostki sterującej są uproszczone, tańsze i szybsze.
- Dane z urządzeń wejścia / wyjścia i pamięci głównej są pobierane w ten sam sposób.
- Organizacja pamięci jest prowadzona przez programistów, co pozwala na wykorzystanie całej pojemności pamięci.
- Zarządzanie pojedynczym blokiem pamięci jest prostsze i łatwiejsze do osiągnięcia.
- Konstrukcja układu mikrokontrolera jest znacznie prostsza, ponieważ będzie dostępny tylko do jednej pamięci. Najważniejszą rzeczą w mikrokontrolerze jest dostęp do pamięci RAM, aw architekturze von Neumanna można to wykorzystać zarówno do przechowywania danych, jak i do przechowywania instrukcji programu.
Rozwój systemów operacyjnych
Główną zaletą posiadania tej samej pamięci dla programów i danych jest to, że programy mogą być przetwarzane tak, jakby były danymi. Innymi słowy, możesz pisać programy, których dane są innymi programami.
Program, którego dane to inny program, to nic innego jak system operacyjny. W rzeczywistości, gdyby programy i dane nie były dozwolone w tej samej przestrzeni pamięci, jak ma to miejsce w przypadku architektury von Neumanna, systemy operacyjne nigdy nie zostałyby opracowane.
Niedogodności
Chociaż zalety znacznie przewyższają wady, problem polega na tym, że jest tylko jedna magistrala łącząca pamięć z procesorem, więc w danym momencie można pobrać tylko jedną instrukcję lub element danych.
Oznacza to, że procesor może musieć czekać dłużej na nadejście danych lub instrukcji. Jest to znane jako wąskie gardło von Neumanna. Ponieważ procesor jest znacznie szybszy niż magistrala danych, oznacza to, że często jest bezczynny.
- Ze względu na sekwencyjne przetwarzanie instrukcji równoległa realizacja programu jest niedozwolona.
- Dzieląc pamięć istnieje ryzyko, że jedna instrukcja zostanie nadpisana na innej z powodu błędu w programie, powodując awarię systemu.
- Niektóre wadliwe programy nie mogą zwolnić pamięci po zakończeniu pracy, co może spowodować zawieszenie komputera z powodu niewystarczającej ilości pamięci.
- Dane i instrukcje współdzielą tę samą magistralę danych, chociaż prędkość, z jaką trzeba je pobierać, jest zwykle bardzo różna.
Bibliografia
- Inżynieria półprzewodników (2019). Architektura von Neumanna. Zaczerpnięte z: semiengineering.com
- Scott Thornton (2018). Jaka jest różnica między architekturą Von-Neumanna i Harvardu? Wskazówki dotyczące mikrokontrolera. Zaczerpnięte z: microcontrollertips.com.
- Teach ICT (2019). Maszyna von Neumanna. Zaczerpnięte z: Teach-ict.com.
- Informatyka (2019). Architektura von Neumanna. Zaczerpnięte z: computerscience.gcse.guru.
- Naucz się IT z Mr C (2019). Maszyna von Neumanna. Zaczerpnięte z: learnitwithmrc.co.uk.
- Solid State Media (2017). Jak działają komputery? Architektura von Neumanna. Zaczerpnięte z: solidstateblog.com.
