В вычислительной технике физический адрес (также реальный адрес или двоичный адрес ) — это адрес памяти , представленный в виде двоичного числа в схеме адресной шины , чтобы обеспечить шине данных доступ к определенной ячейке памяти основной памяти или регистру устройства ввода-вывода, отображенного в память .
В компьютере, поддерживающем виртуальную память , термин физический адрес используется в основном для отличия от виртуального адреса . В частности, в компьютерах, использующих блок управления памятью (MMU) для трансляции адресов памяти, виртуальные и физические адреса относятся к адресу до и после трансляции, выполненной MMU, соответственно. [1]
В зависимости от базовой архитектуры компьютера , производительность компьютера может быть затруднена невыровненным доступом к памяти. Например, 16-разрядный компьютер с 16-разрядной шиной данных памяти, такой как Intel 8086 , обычно имеет меньше накладных расходов , если доступ выровнен по четному адресу. В этом случае выборка одного 16-разрядного значения требует одной операции чтения памяти, одной передачи по шине данных. [2] [3]
Если 16-битное значение данных начинается с нечетного адреса, процессору может потребоваться выполнить два цикла чтения памяти, чтобы загрузить в него значение, то есть один для нижнего адреса (отбрасывая половину), а затем второй цикл чтения для загрузки верхнего адреса (снова отбрасывая половину извлеченных данных). На некоторых процессорах , таких как процессоры Motorola 68000 и Motorola 68010 , а также процессорах SPARC , невыровненный доступ к памяти приведет к возникновению исключения (обычно это приводит к возникновению программного исключения, такого как SIGBUS POSIX ) . [2]
Функция прямого доступа к памяти (DMA) позволяет другим устройствам на материнской плате, помимо ЦП, обращаться к основной памяти. Поэтому таким устройствам также необходимо знать физические адреса.