Adres pamięci

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Adres pamięci w informatyce to unikatowy identyfikator dla części jednostkowej pamięci komputera, w której procesor (ang. CPU, central processing unit) może zachować pewną ilość danych do późniejszego wykorzystania. W nowoczesnych komputerach każdy adres identyfikuje pojedynczy bajt pamięci; dane za duże do przechowania w jednym bajcie mogą być zachowane w kilku bajtach o następujących po sobie adresach. Niektóre mikroprocesory zostały zaprojektowane aby być adresowalne dwubajtowo, czyli typowa jednostka przechowywania jest większa od bajta. Wśród przykładów znajdują się Texas Instruments TMS9900 i National Semiconductor IMP-16, wykorzystujące ten typ adresowania.

Pamięć fizyczna odnosi się do sprzętu. Jej przeciwieństwem jest pamięć logiczna i wirtualna, reprezentująca koncepty oprogramowania. Na przykład, pamięć fizyczna może się odnosić do właściwej przestrzeni RAM-u, na przykład 128 MB. Pamięć wirtualna na procesorach 32-bitowych może mieć nawet 4 GB. Fizyczna struktura danych odnosi się do organizacji tych danych na nośniku, a struktura logiczna odnosi się do tego, jak dane są prezentowane użytkownikowi czy programom. Na przykład, plik z danymi to ciąg bajtów. Ale fizycznie, jeden plik może być rozrzucony w kilku miejscach na dysku.

Bardzo często odnosząc się do słowa maszynowego nowoczesnego komputera odnosi się także do wirtualnych adresów pamięci. Na przykład komputer, o którym mówi się „32-bitowy” traktuje pamięć jako zestaw wartości 32-bitowych; Komputer adresujący bajtowo mogąc na jeden adres przeznaczyć 32-bity może mieć przestrzeń adresową wielkości 2^{32} = 4 294 967 296 bajtów, czyli 4 gigabajtów. Starsze komputery często obsługiwały adresy większe od ich słowa maszynowego, w przeciwnym razie ich pamięć byłaby nierozsądnie mała. Na przykład 8-bitowy mikroprocesor MOS Technology 6502 obsługuje adresy 16-bitowe. Gdyby były one 8-bitowe, pamięć miałaby rozmiar 256 bajtów. Podobnie, 16-bitowy Intel 8086 obsługuje adresy 20-bitowe mogąc zaadresować 1 megabajt, a nie 64 kilobajtów. Komputer o architekturze 64-bitowej może zaadresować 2^{64} bajtów (16 eksabajtów), ilość pamięci uważaną za praktycznie nieskończoną.

Zależnie od architektury, sprawność komputera może być obniżana przez „niewyrównany” dostęp do pamięci. Przykładowo, komputer 16-bitowy z 16-bitową szyną danych, taki jak Intel 8086 pracuje efektywniej jeśli dane są tak „wyrównane”, że zaczynają się od adresu parzystego, więc załadowane 16 bitów danych zajmuje jeden cykl. Jeśli adres jest nieparzysty, procesor może wykonać dwa cykle, jeden dla niższego adresu (połowę opuszczając) i potem dla wyższego adresu (ponownie pomijając połowę danych do odczytu).

Zobacz też[edytuj | edytuj kod]