сказано, что 32-битный линейный адрес транслирует в 40-битный физический, 8 битов, которого не используются без экстеншенов. Я же правильно понимаю, что эти фичи в процах с экстеншенами подразумевают, что в процах добавили 40-битные регистры? Иначе я не совсем понимаю, как можно адресовать пространство с адресом больше, чем регистр может вместить
Это не совсем регистры и вероятно я не прав, но скорее это больше смещения
просто шину адреса сделали больше
и то только для mmu коду напрямую это не доступно
Ну это же регистр по-сути, нет? mdr/mar?
может быть, но этот регистр напрямую никак недоступен
Но разве не все регистры должны быть 40-битными в этом случае?
Ну вот если у меня вот такой код: mov eax, 3 mov edi, 0xFFFFFFFFFF mov [edi], eax Как он будет работать, если у меня 32-битный gp-регистр?
А, кажется я понял, 40-битный адрес будет только в момент трансляции, так что там уже и нет никаких gp-регистров, все, что нужно это mbr/mar и аккумулятивные регистры
да, твой код по прежнему видить 32ух битные адреса, просто mmu их транслирует в более широкие, ну и соответственно доступа ко всей памяти сразу у тебя не будет в таком раскладе
А через сегменты?
сегменты работают до mmu с 32бит адресами
Обсуждают сегодня