Architektura komputera

Schemat blokowy prostego komputera. Czarne linie oznaczają przepływ danych, a czerwone linie przepływ sterowania.

Architektura komputera oznacza w informatyce technicznej zbiór zasad i metod opisujących funkcjonalność, organizację i implementację komputerów. Niektóre definicje architektury komputerów definiują ją jako opis możliwości i model programowy komputera, ale nie konkretną implementację[1]. W innych definicjach architektura komputera obejmuje projekt architektury zestawu instrukcji, projekt mikroarchitektury, syntezę logiczną i implementację[2].

Wprowadzenie

Komputer jest systemem złożonym o strukturze hierarchicznej - układem wzajemnie powiązanych podsystemów, z których każdy również ma strukturę hierarchiczną, aż do osiągnięcia najniższego poziomu - podsystemu elementarnego. Na każdym poziomie projektant zajmuje się strukturą (sposobem wzajemnego powiązania) i funkcjami (działaniem) poszczególnych składników.[3]

Komputer składa się z jednostki centralnej (CPU), magistrali systemowej, pamięci oraz urządzeń wejścia-wyjścia. Jednostka centralna składa się z rejestrów, jednostki arytmetyczno-logicznej (ALU), jednostki sterującej i połączeń wewnętrznych. Jednostka sterująca składa się z układów logicznego szeregowania, rejestrów i dekoderów jednostki sterującej oraz jej pamięci[3].

Podstawowe zagadnienia

  • Struktura i działanie procesora
  • Pamięć podręczna
  • Pamięć wewnętrzna
  • Pamięć zewnętrzna
  • Wejście wyjście
  • Wspieranie systemu operacyjnego
  • Arytmetyka komputera
  • Własności i funkcje listy rozkazów
  • Tryby adresowania i formaty rozkazów
  • Paralelizm na poziomie rozkazu i procesory superskalarne
  • Działanie jednostki sterującej
  • Sterowanie mikroprogramowe

Historia

Pierwszą udokumentowaną architekturę komputera można znaleźć w korespondencji pomiędzy Charlesem Babbage i Adą Lovelace, opisującą tzw. silnik analityczny. Podczas budowy komputera Z1 w 1936, Konrad Zuse opisał po raz pierwszy komputer którego instrukcje są przechowywane w pamięci, tzw. stored-program computer.[4]

Klasyfikacje

Ze względu na rodzaj połączeń procesor-pamięć i sposób ich wykorzystania dzielimy architektury zgodnie z taksonomią Flynna:

  • SISD (ang. Single Instruction Single Data) – skalarne,
  • SIMD (ang. Single Instruction Multiple Data) – wektorowe (macierzowe),
  • MISD (ang. Multiple Instruction Single Data) – strumieniowe,
  • MIMD (ang. Multiple Instruction Multiple Data) – równoległe.

Ze względu na sposób podziału pracy i dostęp procesora do pamięci możemy podzielić architektury na:

  • SMP (ang. Symmetric Multiprocessing) – symetryczne,
  • ASMP (ang. Asymmetric Multiprocessing) – asymetryczne,
  • NUMA (ang. Non-Uniform Memory Access) – asymetryczne (rozróżniające pamięć lokalną i zdalną),
  • AMP (ang. Asynchronous Multiprocessing) – asynchroniczne,
  • MPP (ang. Massively Parallel Processors) – równoległe.

Ze względu na sposób organizacji pamięci i wykonywania programu:

Zobacz też

Przypisy

  1. Alan.A. Clements Alan.A., Principles of Computer Hardware .
  2. JohnJ. Hennessy JohnJ., DavidD. Patterson DavidD., Computer Architecture: A Quantitative Approach .
  3. a b WilliamW. Stallings WilliamW., Organizacja i Architektura Systemu Komputerowego .
  4. Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000
Kontrola autorytatywna (pojęcie):
  • LCCN: sh85029479
  • GND: 4048717-9
  • BnF: 119347905
  • BNCF: 3310
  • NKC: ph124502
  • J9U: 987007545778705171
Encyklopedia internetowa:
  • PWN: 3870806
  • Britannica: technology/computer-architecture