Re: jak działa komputer? - pytanie totalnego laika - przydlugie nieco...

Autor: netx <user72wytnij_at_go2.pl>
Data: Sat 23 Jul 2005 - 17:52:01 MET DST
Message-ID: <42e264c9$0$1406$f69f905@mamut2.aster.pl>

> Zbyt duży poziom abstrakcji. Co to znaczy "kod operacji jest ładowany do
> rejestru rozkazu"? W jaki sposób jest ładowany? Chciałabym sobie to
> wyobrazić tak fizycznie... Nie mam niestety wykształcenia technicznego.
Może warto zapoznać się definicjami magistrali (szyny) danych, szyny
adresowej i szyny sterującej i jak one współdziałają z procesorem i
pamięcią. To one m.in. właśnie odpowiadają za proces "ładowania" danych do
rejestrów procesora z pamięcie operacyjnej RAM.
Procesor ustawia na magistrali adresowej adres komórki pamięci z której chce
pobrać dane do rejestru. Jednocześnie na magistrali sterującej wysyła
(ustawia za pomocą napięć "zero jedynkowych") sygnał że chce pobrać dane z
RAM (a nie np. zapisać do RAM). W odpowiedzi w następnym cyklu zegara pamięć
ustawia na magistrali danych odczytane dane. A procesor je sobie w kolejnym
cyklu zegara ładuje do rejestru. Z tym że te operacje mogą zająć często
więcej niż jeden pojedynczy cykl, oraz mogą jeszcze występować dodatkowe
stany magistralii.
Można jeszcze przesyłać dane pomiędzy rejestrami procesora itd., wtedy szyny
danych nie uczestniczą.

Z tego typu książek zostało mi tylko:
"Mikroprocesor w pytaniach i odpowiedziach" Krzysztof Sacha, Andrzej
Rydzewski.
"Układy scalone TTL" - nie polecam o ile nie chcesz konstruować układów
cyfrowych.

PS.
Już trochę czasu upłynęło odkąd mnie uczyli podstaw układów cyfrowych ale
napiszę jak zapamiętałem działanie komputera:
W zasadzie w warstwie sprzętowej komputera (prawie) wszystko opiera się na
układach mogących mieć dwa stany logiczne 0 i 1.
0 odpowiada zazwyczaj mniejszemu napięciu a 1 większemu. Najprostszym
układem mającym dwa stany jest przerzutnik bistabilny składający się z dwóch
tranzystorów. Ten przerzutnik może mieć właśnie dwa stany i może
przechowywać jeden bit danych o wartości 0 i 1. Z kolej jeden bajt to 8
bitów. Z tym że zaznaczam że nowsze układy elektroniczne mogą wykorzystywać
inne (szybsze) układy niż wspomniany "przerzutnik".
Teraz jeśli chodzi o rejestr procesora to składa się on z wielu bitów. Jeden
bajt to 8 bitów. Bajtr może mieć 256 możliwych stanów (2 do potęgi 8) i
wartości z zakresu 0..255.
W komputerze mogą występować rejestry nie hardware'owe np. rejestr Windows.
Oczywiście każda informacja "logiczna" znajduje się w jakimś fizycznym
"hardware'owym" urządzeniu, ale z regóły nie ma najmniejszego sensu
zastanawiać się np. pod jakim adresem pamięci i w jakim układzie fizycznym
komputer zapamiętuje słowo "Ala".
Ważne natomiast jest że jeden bajt (czyli liczba w zakresie 0-255) może
przechowywać w zasadzie jedną literę (w alfabecie jest mniej niż 256
znaków).
Chociaż czasami koduje się litery na dwóch bajtach aby zapamiętać dodatkowo
kodowanie (bo jest wiele języków).
Na tej podstawie najprostszy plik "tekstowy" (z końcówką .txt) o długości
1000 bajtów - to 1000 liter. Z tym że dla komputera spacja to też litera.
Pamięć RAM komputera 1GB=(1024 do potęgi 3) bajtów czyli ponad miliard
bajtów. Oznacza to że w RAM 1GB można przechować miliard liter. Zmieści się
kilka wielotomowych encykopedii. Może sobie policzyć ile encyklopedii
zmieści się na HDD.

Pozdrawiam,
Marek
Received on Sat Jul 23 17:55:17 2005

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Sat 23 Jul 2005 - 18:51:15 MET DST