Adres pamięci
![]() | Ten artykuł od 2018-02 wymaga zweryfikowania podanych informacji. Należy podać wiarygodne źródła w formie przypisów bibliograficznych. Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte. Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary) Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu. |
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 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ć 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).