Adresowanie pamięci

Adres pamięci jest w elektroniczny i komputer , jaki jest dostęp do danych w przechowywanej pamięci . Adres pamięci jest naturalny liczba (rzadko jakiś inny rodzaj identyfikatora ), który określa konkretny obszar pamięci, czy tylko początek obszaru. Najczęściej dane można odczytać lub zapisać. Pamięć może być tymczasowa ( pamięć o dostępie swobodnym ) do pracy lub przeciwnie, trwała ( pamięć nieulotna ) do przechowywania.

posługiwać się

Zdecydowana większość programów komputerowych podczas pracy wykorzystuje pamięć. Tymczasowe przechowywanie danych ( zmienna ) implikuje dostęp do pamięci RAM: w tym przypadku to procesor zapisuje dane na magistrali . Podczas uzyskiwania dostępu do komponentu DMA (na przykład dysku twardego) to kontroler DMA działa tym razem bezpośrednio na magistrali systemowej.

Adres fizyczny i adres wirtualny

Komputery wystarczająco wydajne, aby uruchamiać wiele programów jednocześnie, zwykle mają jednostkę zarządzania pamięcią (MMU) zdolną do translacji adresów pamięci wysyłanych z procesora do pamięci w locie . Dzieje się tak zwłaszcza w przypadku komputerów osobistych od lat 90 . Kiedy taka jednostka działa, adresy wysyłane przez procesor są wówczas adresami wirtualnymi, a przetłumaczone adresy, które docierają do pamięci, są adresami fizycznymi.

W szczególności system operacyjny może zaprogramować jednostkę zarządzającą pamięcią, aby:

Adresy komponentów peryferyjnych z bezpośrednim dostępem do pamięci mogą być również tłumaczone przez dedykowaną jednostkę zarządzania pamięcią (IOMMU).

Adresowanie bezpośrednie

Użyty interfejs to w większości przypadków magistrala , czyli zestaw przewodów przeznaczonych do określonego zastosowania (tutaj dostęp do pamięci).

Od n przewodów 2 N wartości mogą być kodowane . W ten sposób, określając szerokość magistrali adresowej w liczbie bitów (lub dzieci), wskazywana jest maksymalna pojemność pamięci dostępna dla procesora (rozmiar jego przestrzeni adresowej).

Oprócz przewodów kodujących adres, pamięć o dostępie swobodnym wymaga co najmniej jednego dodatkowego przewodu wskazującego operację, która zostanie wykonana na pamięci: odczyt lub zapis.

Możliwe jest multipleksowanie magistrali adresowej z magistralą danych, łącząc określoną liczbę przewodów, wiedząc, że należy wygenerować dodatkowy sygnał, aby wiedzieć, jak interpretować wartości binarne krążące na tych przewodach (adres lub dane). Przykład procesorów z magistralą multipleksowaną: 8086 lub 8088 firmy Intel .

Magistrala adresowa, która jest zbyt mała, a co za tym idzie, ograniczone adresowanie pamięci, była jednym z czynników decydujących o zniknięciu niektórych linii komputerów. Na przykład PDP-10 , 36-bitowa maszyna z tylko 18-bitową przestrzenią adresową (256 kibibajtów ), nigdy nie miała następcy. Zakres PDP-11 minikomputery z DEC został zastąpiony przez VAX , co jest skrótem od wirtualnego adresu Extension .

Adresowanie pośrednie

O adresowaniu pośrednim mówimy, gdy aby uzyskać dostęp do danych, pobieramy ich adres w zmiennej (lub segmencie pamięci). Jest to zatem adresowanie poprzez odniesienie do zawartości tej innej zmiennej. Adresowanie pośrednie jest najbardziej praktyczną metodą sekwencyjnego dostępu do regularnie przechowywanych danych za pomocą mechanizmu pętli  : możliwe jest zatem skanowanie całego obszaru danych (elementów wektora , tablicy , drzewa itp.) Poprzez zmianę indeksu która określa pozycję.

Uwagi

  1. Patrz np. R. Zaks , Programming of 6502 , SYBEX editions,1980( przedruk  wydanie drugie), 372  str. ( ISBN  2902414242 ) , „Techniki adresowania”, str.  181

Powiązane artykuły