Architektura komputera: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Wycofano ostatnią zmianę treści (wprowadzoną przez 83.11.152.179) i przywrócono wersję 60968853 autorstwa Kra77 Znacznik: Ręczne wycofanie zmian |
m drobne redakcyjne |
||
Linia 1: | Linia 1: | ||
[[Plik:ABasicComputer.gif|alt=|thumb|481x481px|Schemat blokowy |
[[Plik:ABasicComputer.gif|alt=|thumb|481x481px|Schemat blokowy prostego komputera. Czarne linie oznaczają [[przepływ danych]], a czerwone linie [[przepływ sterowania]].]] |
||
'''Architektura komputera''' oznacza w [[Informatyka|informatyce]] zbiór zasad i metod opisujących funkcjonalność, organizację i implementację [[System komputerowy|komputerów]]. Niektóre definicje architektury komputerów definiują ją jako opis możliwości i [[Model programowy procesora|model programowy]] komputera, ale nie konkretną implementację<ref>{{Cytuj |autor = Clements, Alan. |tytuł = Principles of Computer Hardware}}</ref>. W innych definicjach architektura komputera obejmuje projekt architektury zestawu instrukcji, projekt [[Mikroarchitektura procesora|mikroarchitektury]], [[Synteza logiczna|syntezę logiczną]] i [[Implementacja (informatyka)|implementację]]<ref>{{Cytuj |autor = Hennessy, John; Patterson, David |tytuł = Computer Architecture: A Quantitative Approach}}</ref>. |
'''Architektura komputera''' oznacza w [[Informatyka techniczna|informatyce technicznej]] zbiór zasad i metod opisujących funkcjonalność, organizację i implementację [[System komputerowy|komputerów]]. Niektóre definicje architektury komputerów definiują ją jako opis możliwości i [[Model programowy procesora|model programowy]] komputera, ale nie konkretną implementację<ref>{{Cytuj |autor = Clements, Alan. |tytuł = Principles of Computer Hardware}}</ref>. W innych definicjach architektura komputera obejmuje projekt architektury zestawu instrukcji, projekt [[Mikroarchitektura procesora|mikroarchitektury]], [[Synteza logiczna|syntezę logiczną]] i [[Implementacja (informatyka)|implementację]]<ref>{{Cytuj |autor = Hennessy, John; Patterson, David |tytuł = Computer Architecture: A Quantitative Approach}}</ref>. |
||
== Wprowadzenie == |
== Wprowadzenie == |
||
Linia 21: | Linia 21: | ||
* Działanie jednostki sterującej |
* Działanie jednostki sterującej |
||
* [[Sterowanie mikroprogramowe]] |
* [[Sterowanie mikroprogramowe]] |
||
== Historia == |
|||
Pierwszą udokumentowaną architekturę komputera można znaleźć w korespondencji pomiędzy [[Charles Babbage|Charlesem Babbage]] i [[Ada Lovelace|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''.<ref>Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000</ref> |
|||
== Klasyfikacje == |
== Klasyfikacje == |
Wersja z 17:58, 10 sty 2021
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:
- architektura von Neumanna – zarówno dane, jak i kod programu przechowywany jest w tym samym obszarze pamięci;
- architektura harwardzka – rozkazy i dane przechowywane są w odseparowanych obszarach pamięci;
- architektura mieszana – połączenie dwóch powyższych typów: obszary pamięci dla rozkazów i danych są odseparowane, jednak wykorzystują wspólne magistrale.