Сколько битов в логическом адресе? - PullRequest
0 голосов
/ 19 апреля 2011

Хорошо, поэтому я немного искал в Stack и не могу найти ответ на этот вопрос. Это то, что было упомянуто в классе, но профессор не сказал, как конкретно это выяснить.

Если мы предположим, что система 64-битная и имеет физическую память 128 ГБ, но мы хотим, чтобы процессы выполнялись как 256 ГБ, как я могу вычислить бит, необходимый для логического адреса?

Все исследования, которые я до сих пор проводил, касаются физической памяти объемом 2-4 ГБ, и я не могу понять, как это вычислить. Мне нужно знать это, чтобы понять смещение и записи страниц ...

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Может быть, это поможет.Имея 32-битное значение, мы имеем: от 2 до 32-й степени = 4 294 967 296 => 4 ГБ Максимальное адресное пространство, доступное для 32-битной длины слова.

Для 64-битной системы имеем: 2до 64-й степени = 18 446 744 073 709 551 616 => 16EB (EB = exbibytes) Максимальное адресное пространство, доступное длиной 64-битного слова, которое практически не ограничено, но мы ограничены аппаратным обеспечением (например, моя материнская плата поддерживает только 24 ГБmax).

Надеюсь, это поможет!

0 голосов
/ 19 апреля 2011

Количество необходимых битов зависит не только от размера процесса, но также от количества байтов, на которые указывает каждый адрес.

Общая формула:

num_of_bits = ceiling(log_2(size_of_process_in_bytes / bytes_pointed_by_an_address))
...