Вычислите количество адресуемых ячеек памяти, если ширина адресной шины равна 20 n

Обновлено: 01.07.2024

Он также определяет максимальный размер оперативной памяти. Таким образом, если у вас ширина адресной шины 10, вы можете получить доступ к 2 ^ 10 = 1024 адресам, что эквивалентно 1 КБ оперативной памяти. Если у вас есть адресная шина шириной 32, вы можете получить доступ к 2 ^ 32 = 4294967296 адресов, что составляет около 4 ГБ оперативной памяти.

Что такое ширина данных ОЗУ?

Ширина памяти определяет разрядность данных интерфейса модуля памяти в битах. Например, 64 будет означать 64-битную ширину данных, которая используется в модулях DIMM без ECC, распространенных в семействах оперативной памяти SDR и DDR1–4. Глубина памяти — это общий объем памяти в битах, разделенный на ширину памяти без контроля четности.

Каким будет размер адресной шины, если размер памяти равен 512?

13.6 Размер адресации памяти

Размер адресной шины Адресируемая память (байт)
9 512
10 1K*
11 2K
12 4K

Можно ли синтезировать clog2?

2 ответа. $clog2 не поддерживается Verilog. Это системная задача SystemVerilog. Более того, системные задачи нельзя синтезировать.

Как узнать объем памяти адреса?

Шаг 1: вычислить длину адреса в битах (n бит) Шаг 2: вычислить количество ячеек памяти 2^n(бит) Шаг 3: взять количество ячеек памяти и умножить его на размер байта ячейки памяти.

Что такое ширина шины?

Разрядность шины – это количество битов, которые могут быть отправлены в ЦП одновременно, а скорость – количество битов, которое может быть отправлено в каждую секунду. Цикл шины происходит каждый раз, когда данные перемещаются из памяти в ЦП. Под задержкой понимается количество тактовых циклов, необходимых для чтения бита информации.

Как проверить пропускную способность ОЗУ?

Теоретическая максимальная пропускная способность памяти для процессоров Intel Core серии X может быть рассчитана путем умножения частоты памяти (половина, поскольку удвоенная скорость передачи данных x 2), умножения на количество байтов ширины и умножение на количество каналы, поддерживаемые процессором.

Что такое ширина DRAM?

Каждый чип DRAM имеет «разрядность», которая относится к числу битов, которые могут быть переданы в/из чипа DRAM за каждый цикл (подробнее об этом позже), или к количеству выводов данных на чипе ( также называемые выводами DQ во многих случаях). Например, x4 (4-битный интерфейс) или чипы x8 DDR3.

Каков размер памяти для 24-битного адреса?

Размер адресной шины Размер адресной шины определяет объем памяти, который ЦП может адресовать напрямую. Например, 20-битная адресная шина может иметь доступ к одному мегабайту (1 МБ); 24 бита достигают 16 МБ, а 32 бита могут обрабатывать четыре гигабайта (ГБ).

Можно ли синтезировать случаи?

И casex, и casez можно синтезировать. Casex генерирует безразличное пространство для неуказанных точек состояния. Casez использует «логическое значение Z» для представления безразличных битов.

Что означает синтезируемый?

Фильтры. (химия) Возможность (легко) синтезироваться. прилагательное.

Как рассчитать размер адреса?

Как измеряется ширина и глубина оперативной памяти?

Оперативная память обычно измеряется как глубина x ширина. Ширина — это количество бит в слове, а глубина — это количество слов в ОЗУ. Итак, в вашем случае вы хотите хранить 128 × 128 слов, каждое из которых составляет 32 бита. Это будет ОЗУ 16 384 x 32.

Какова ширина адреса 32-битной памяти?

Большинство практичных систем, использующих 16- или 32-битную память, позволяют адресовать байты в слове индивидуально. Таким образом, ширина адреса для системы 1024 x 16 увеличится до 11 бит, а для системы 16K*32 – до 16 бит.

Какое значение глубины и ширины DIMM?

В случае DIMM1 выше, каковы значения глубины и ширины DIMM? Глубина = 16 (Глубина памяти — это общий объем памяти в битах, деленный на ширину памяти без контроля четности, т. е. 1024/64) Ширина = 64 (Ширина памяти определяет разрядность данных интерфейса модуля памяти в битах.) Что такое Глубина/ширина DIMM?

Как определить ширину и глубину порта памяти?

Как настроить ширину и глубину порта памяти для IP-адреса BMG, используемого в режиме контроллера BRAM, в потоке IP Integrator? При использовании режима контроллера BRAM в BMG IP ширина/глубина порта-A/B зависит от диапазона адресов, назначенного для контроллера AXI BRAM, и значения ширины данных, выбранного в контроллере AXI BRAM.

Проблема 2

  1. Сколько страниц находится в виртуальном адресном пространстве?
  2. Каков максимальный размер адресуемой физической памяти в этой системе?
  3. Если средний размер процесса составляет 8 ГБ, вы бы использовали одноуровневую, двухуровневую или трехуровневую таблицу страниц? Почему?
  4. Вычислите средний размер таблицы страниц в ответе на вопрос 3 выше.

    36-битный адрес может адресовать 2 ^ 36 байтов в машине с байтовой адресацией. Поскольку размер страницы составляет 8 КБ (2^13), количество адресуемых страниц равно 2^36 / >2^13 = 2^23

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

Пейджинг 1 уровня
Поскольку у нас есть 2^23 страницы в каждом виртуальном адресном пространстве, и мы используем 4 байта на запись в таблице страниц, размер таблицы страниц будет 2^23 * 2^2 = 2 ^ 25. Это 1/256 собственного пространства памяти процесса, так что это довольно дорого. (32 МБ)

Пейджинг 2 уровня
Адрес будет разделен на 12 | 11 | 13, так как мы хотим, чтобы страницы таблицы страниц умещались на одной странице, и мы также хотим разделить биты примерно поровну.

Поскольку размер процесса составляет 8 ГБ = 2^33 Б, я предполагаю, что это означает, что общий размер всех отдельных страниц, к которым обращается процесс, составляет 2^33 Б. Следовательно, этот процесс обращается к 2^33 / 2^13 = 2^20 страниц. Нижний уровень таблицы страниц содержит 2^20 ссылок. Мы знаем, что размер каждого фрагмента нижнего уровня таблицы страниц составляет 2 ^ 11 записей. Таким образом, нам нужно 2^20 / 2^11 = 2^9 фрагментов нижнего уровня.

Тогда общий размер таблицы страниц равен:

//размер внешней таблицы страниц //общий размер внутренних страниц< /td>
1 * 2^12 * 4 + 2^9 * 2^11 * 4 = 2^20 * ( 2^-6 + 4) ~4 МБ

3 уровня пейджинга
Для 3 уровня пейджинга мы можем разделить адрес следующим образом:
8 | 8 | 7 | 13

Опять же, используя те же рассуждения, что и выше, нам нужно 2 ^ 20/2 ^ 7 = 2 ^ 13 фрагментов таблицы страниц уровня 3. Каждый фрагмент таблицы страниц уровня 2 ссылается на 2^8 фрагментов таблицы страниц уровня 3. Итак, нам нужно 2^13/2^8 = 2^5 таблиц уровня 2. И, конечно же, одна таблица уровня 1.

Общий размер таблицы страниц равен:

//размер внешней таблицы страниц //общий размер таблиц уровня 2 //общий размер самых внутренних таблиц
1 * 2^8 * 4 2^5 * 2^8 *4 2^13 * 2^7 * 4 ~4MB
Как легко заметить, двухуровневая и трехуровневая подкачка требуют гораздо меньше места, чем подкачка уровня 1. схема. А поскольку наше адресное пространство недостаточно велико, 3-уровневая подкачка работает не лучше, чем 2-уровневая. Из-за стоимости доступа к памяти гораздо логичнее выбрать двухуровневую схему подкачки для этого процесса.

Проблема 3

  1. Каков размер страницы в такой системе? Объясните свой ответ (число без обоснования не будет засчитано).

    4К. Последние 12 бит виртуального адреса представляют собой смещение на странице, которое варьируется от 0 до 4095. Таким образом, размер страницы равен 4096, то есть 4 КБ.

Поскольку физические адреса имеют длину 44 бита, а размер страницы — 4 КБ, номер кадра страницы занимает 32 бита. Принимая во внимание 4 защитных бита, каждая запись таблицы страниц уровня 3 занимает (32+4) = 36 бит. Округление для выравнивания записей по байтам (словам) приведет к тому, что каждая запись будет потреблять 40 (64) бит или 5 (8) байтов. Для таблицы из 256 записей нам потребуется 1280 (2048) байт.

Таблица страниц верхнего уровня не должна предполагать, что таблицы страниц 2-го уровня выровнены по страницам. Итак, мы храним там полные физические адреса. К счастью, нам не нужны управляющие биты. Таким образом, каждая запись занимает не менее 44 бит (6 байтов для выравнивания по байтам, 8 байтов для выравнивания по словам). Таким образом, каждая таблица страниц верхнего уровня имеет размер 256*6 = 1536 байт (256 * 8 = 2048 байт).

Попытка воспользоваться выравниванием по 256 элементам для уменьшения размера элемента, вероятно, не стоит усилий. Сделать это было бы сложно; вам нужно будет написать новый распределитель памяти, который гарантирует такое выравнивание. Кроме того, мы не можем полностью уместить таблицу в выровненную область размером 1024 байта (44-10 = 34 бита на адрес, что потребовало бы более 4 байтов на запись), и округление размера до следующей степени двойки не спасло бы использовать любой размер, а не просто хранить указатели и использовать обычный распределитель.

Аналогично каждая запись в таблице страниц 2-го уровня представляет собой 44-битный физический указатель, 6 байтов (8 байтов) при выравнивании по байтам (словам). Таким образом, таблица с 16 элементами занимает 96 (128) байт. Таким образом, требуемое пространство составляет 1536 (2048) байт для таблицы страниц верхнего уровня + 96 (128) байт для одной таблицы страниц второго уровня + 1280 (2048) байт для одной таблицы страниц третьего уровня = 2912 (4224) байт. Поскольку процесс может уместиться ровно на 16 страницах, внутренняя фрагментация не тратит память впустую.

Таким образом, требуемое пространство составляет 1536 (2048) байт для таблицы страниц верхнего уровня + 3 * 96 (3 * 128) байт для 3 таблиц страниц второго уровня + 3 * 1280 (3 * 2048) для 3 таблиц страниц третьего уровня. таблица страниц = 5664 (8576) байт.

Проблема 4

В соответствии с философией проектирования процессоров RISC, заключающейся в перемещении аппаратной функциональности в программное обеспечение, вы видите предложение о том, чтобы разработчики процессоров удаляли MMU (блок управления памятью) из аппаратного обеспечения. Чтобы заменить MMU, компиляторы генерируют так называемый позиционно-независимый код (PIC).PIC может быть загружен и запущен по любому адресу без выполнения какого-либо перемещения. Если предположить, что код PIC работает так же быстро, как код без PIC, в чем будет недостаток этой схемы по сравнению со страничным MMU, используемым в современных микропроцессорах?

Решение:
Нужно решение.

Проблема 5

Опишите преимущества использования MMU, включающего сегментацию и пейджинг, по сравнению с теми, которые используют только пейджинг или только сегментацию. Представьте свой ответ в виде отдельных списков преимуществ перед каждой из чистых схем.

Решение:
Нужно решение.

Проблема 6

Рассмотрите следующий фрагмент кода, который умножает две матрицы. Предположим, что двоичный файл для выполнения этой функции умещается на одной странице, и стек также умещается на одной странице. Предположим далее, что для хранения целого числа требуется 4 байта. Вычислите количество промахов TLB, если размер страницы равен 4096, а TLB имеет 8 записей с замещающей политикой, состоящей из LRU.

Решение:
1024*(2+1024*1024) = 1073743872
Двоичный файл и стек умещаются на одной странице, поэтому каждый занимает одну запись в TLB. Пока функция работает, она постоянно обращается к двоичной странице и странице стека. Таким образом, две записи TLB для этих двух страниц будут все время находиться в TLB, а данные могут занимать только оставшиеся 6 записей TLB.

Мы предполагаем, что две записи уже находятся в TLB, когда функция начинает выполняться. Затем нам нужно рассмотреть только эти страницы данных.

Поскольку для хранения целого числа требуется 4 байта, а размер страницы составляет 4096 байт, для каждого массива требуется 1024 страницы. Предположим, что каждая строка массива хранится на одной странице. Тогда эти страницы можно представить в виде a[0..1023], b[0..1023], c[0..1023]: Страница a[0] содержит элементы a[0][0..1023], страница a[1] содержит элементы a[1][0..1023] и т. д.

Для фиксированного значения i, скажем, 0, функция выполняет цикл по j и k, у нас есть следующая ссылочная строка:

Для ссылочной строки (всего 1024 строки) a[0], c[0] приведут к двум промахам TLB. Поскольку доступ к a[0] и b[0] будет осуществляться через каждые четыре обращения к памяти, эти две страницы не будут заменены алгоритмом LRU. Для каждой страницы в b[0..1023] каждый раз при доступе к ней будет происходить один промах TLB. Таким образом, количество промахов TLB для второго внутреннего цикла равно
2+1024*1024 = 1048578.

Сколько битов адреса требуется (например, для счетчика программ) в компьютере с байтовой адресацией и 512 Мбайт ОЗУ?

Как выглядит формула?

Как это связано с тем, что 32 бита могут адресовать не более 4 ГБ оперативной памяти?


Помните, что на практике бывает меньше, а иногда и больше! Могут быть биты адреса, которые зарезервированы для какой-то другой цели, поэтому у вас есть диапазон памяти, который никогда не будет доступен. Вы также можете получить доступ к большему количеству памяти с помощью инструкции, которая гласит: «Адрес теперь относится к этому другому блоку 512 МБ, пока мы не поменяемся местами»

@Caleb - вот почему я написал это как комментарий, а не как ответ. И на такие вопросы, как "почему я вижу только 2 ГБ на моей 32-битной машине в Windows, но 64 ГБ в Linux"

5 ответов 5

Для адресации n байтов требуется log2(n) бит. Например, вы можете хранить 256 различных значений в 8-битном числе, поэтому 8 битов могут адресовать 256 байтов. 2 · 10 = 1024, поэтому вам нужно 10 бит для адресации каждого байта в килобайте. Точно так же вам нужно 20 бит для адресации каждого байта в мегабайте и 30 бит для адресации каждого байта в гигабайте. 2 32 = 4294967296 — количество байтов в 4 гигабайтах, поэтому вам нужен 32-битный адрес для 4 ГБ памяти.


Логарифм обратен возведению в степень. log2(2^X) == X . Следовательно, log2(512) == log2(2^9) == 9. Кроме того, большинство калькуляторов предоставляют log10, но вы можете преобразовать log10 в log2, разделив на log10(2). Например, Google Calculator: log(512*1024*1024) / log(2)

Существующие ответы объясняют, что формула для адресации оперативной памяти: 2^BITS = адресуемая оперативная память, но не объясняют, почему.

Рассмотрите систему с 2 битами. Он может адресовать 4 байта оперативной памяти следующим образом:

Байт 0: 00
Байт 1: 01
Байт 2: 10
Байт 3: 11

Для каждого дополнительного бита мы можем адресовать в два раза больше памяти. Например, добавьте 0 бит к каждому для байтов 0-3, затем добавьте 1 бит для байтов 4-7. Мы обращаемся к байту X, используя расположение битов, соответствующее X в двоичном формате.

Вам нужен журнал (по основанию 2) из ​​N байтов, чтобы напрямую обращаться к N байтам ОЗУ.

Таким образом, 32-битный адрес позволяет напрямую ссылаться на 2^32 байта (4 ГБ). 64-битный адрес позволяет напрямую ссылаться на 2^64 байта (16 эксабайт).

Сколько битов адреса требуется (например, для счетчика программ) в компьютере с байтовой адресацией и 512 Мбайт ОЗУ?

Ответа нет.

Для современных систем программное обеспечение использует виртуальную память, а виртуальная память не имеет ничего общего с физической памятью. Например, у вас может быть 512 МиБ ОЗУ, 1,5 ГиБ пространства подкачки и 2 ГиБ файлов с отображением памяти.

Для большинства систем с объемом оперативной памяти около 512 МБ; обычно вам нужны/ожидаются 32-битные адреса и 32-битный указатель инструкций (и иметь 4 ГБ виртуального адресного пространства на процесс, включая пространство, зарезервированное ядром).

Обратите внимание, что "объем оперативной памяти" также не имеет ничего общего с фактическим размером физического адреса или минимальным размером физического адреса. Компьютеру с 512 МБ ОЗУ, 4 МБ ПЗУ и 512 МБ подключенных к памяти устройств (видеокарты и т. д.) может потребоваться как минимум 2 ГБ физического адресного пространства (и на самом деле может быть 4 ГБ физического адресного пространства).

Читайте также: