Historycznie istniały 2 rodzaje komputerów:
- Komputery o stałym programie – Ich funkcja jest bardzo specyficzna i nie mogły być programowane, np. kalkulatory.
- Stored Program Computers – Mogą one być zaprogramowane do wykonywania wielu różnych zadań, aplikacje są na nich przechowywane, stąd nazwa.
Współczesne komputery są oparte na koncepcji stored-program wprowadzonej przez Johna Von Neumanna. W tej koncepcji stored-program, programy i dane są przechowywane w oddzielnych jednostkach pamięci zwanych pamięciami i są traktowane tak samo. Ten nowatorski pomysł oznaczał, że komputer zbudowany w tej architekturze będzie znacznie łatwiejszy do przeprogramowania.
Podstawowa struktura jest taka,
Jest on również znany jako komputer IAS i posiada trzy podstawowe jednostki:
- Centralna jednostka przetwarzająca (CPU)
- Główna jednostka pamięci
- Urządzenie wejścia/wyjścia
Rozważmy je szczegółowo.
- Jednostka sterująca –
Jednostka sterująca (CU) obsługuje wszystkie sygnały sterujące procesora. Kieruje przepływem wszystkich danych wejściowych i wyjściowych, pobiera kod dla instrukcji i kontroluje sposób poruszania się danych w systemie.
- Jednostka arytmetyczno-logiczna (ALU) –
Jednostka arytmetyczno-logiczna jest tą częścią procesora, która wykonuje wszystkie obliczenia, jakich może potrzebować procesor, np. dodawanie, odejmowanie, porównywanie. Wykonuje Operacje Logiczne, Operacje Przesunięcia Bitów, oraz Operacje Arytmetyczne.
Rysunek – Podstawowa struktura procesora, ilustrująca ALU - Jednostka Pamięci Głównej (Rejestry) –
- Akumulator: Przechowuje wyniki obliczeń wykonanych przez ALU.
- Licznik programu (PC): Śledzi położenie w pamięci następnej instrukcji, którą należy się zająć. PC przekazuje następnie ten następny adres do Rejestru Adresu Pamięci (MAR).
- Rejestr Adresu Pamięci (MAR): Przechowuje lokalizacje pamięciowe instrukcji, które muszą być pobrane z pamięci lub zapisane do pamięci.
- Memory Data Register (MDR): Przechowuje instrukcje pobierane z pamięci lub wszelkie dane, które mają być przeniesione do pamięci i w niej przechowywane.
- Rejestr bieżących instrukcji (CIR): Przechowuje ostatnio pobraną instrukcję w czasie oczekiwania na jej zakodowanie i wykonanie.
- Rejestr bufora instrukcji (IBR): Instrukcja, która nie ma być wykonana natychmiast, jest umieszczana w rejestrze bufora instrukcji IBR.
- Urządzenia wejścia/wyjścia – Program lub dane są odczytywane do pamięci głównej z urządzenia wejściowego lub pamięci wtórnej pod kontrolą instrukcji wejścia procesora. Urządzenia wyjściowe są używane do wyprowadzania informacji z komputera. Jeśli niektóre wyniki są oceniane przez komputer i jest przechowywany w komputerze, to z pomocą urządzeń wyjściowych, możemy przedstawić go do użytkownika.
- Busy – Dane są przekazywane z jednej części komputera do drugiej, łącząc wszystkie główne elementy wewnętrzne do procesora i pamięci, za pomocą Busów. Rodzaje:
- Magistrala danych: przenosi dane między jednostką pamięci, urządzeniami wejścia/wyjścia i procesorem.
- Magistrala adresowa: przenosi adres danych (a nie rzeczywiste dane) między pamięcią a procesorem.
- Magistrala sterująca: przenosi polecenia sterujące z procesora (i sygnały stanu z innych urządzeń) w celu kontrolowania i koordynowania wszystkich działań wewnątrz komputera.
Wąskie gardło Von Neumanna –
Cokolwiek zrobimy, aby zwiększyć wydajność, nie możemy uciec od faktu, że instrukcje mogą być wykonywane tylko pojedynczo i mogą być wykonywane tylko sekwencyjnie. Oba te czynniki hamują kompetencje procesora. Jest to powszechnie określane jako „wąskie gardło Von Neumanna”. Możemy zapewnić procesor Von Neumann z więcej pamięci podręcznej, więcej pamięci RAM, lub szybsze komponenty, ale jeśli oryginalne zyski mają być wykonane w wydajności procesora następnie wpływ inspekcji musi mieć miejsce konfiguracji CPU.
Ta architektura jest bardzo ważne i jest używany w naszych komputerach PC, a nawet w Super Computers.