Если регистр имеет емкость 4 байта, то емкость процессора равна
Обновлено: 21.11.2024
Память (RAM) состоит из битов, групп по 8, которые образуют байты, каждый из которых может быть адресован, и, следовательно, память с байтовой адресацией.
Адресная шина хранит расположение байта памяти.
Если адресная шина имеет размер 32 бита, это означает, что она может содержать до 2 32 чисел и, следовательно, может ссылаться на до 2 32 байтов памяти = 4 ГБ памяти, и любая память, превышающая эту, бесполезна.
Шина данных используется для отправки значения для записи/считывания из памяти. Если у меня есть шина данных размером 32 бита, это означает, что за один раз в память может быть записано/считано максимум 4 байта. Я не нахожу связи между этим размером и максимально возможным объемом памяти.
Но я прочитал здесь, что:
Это говорит о том, что размер шины данных дает ОС имя, 8-битное, 16-битное и так далее. Что не так с моим пониманием?
"Что не так с моим пониманием?" - Вы пытаетесь сделать так, чтобы одно определение соответствовало разным вещам. Дескриптор битового размера использовался в разное время для разных целей.
Означает то, что говорит производитель. Как правило, это будет что-то похожее на размер регистра, но есть много способов подделать его.
4 ответа 4
В простой схеме размер шины данных равен размеру регистров процессора. Как правило, это верно для первого поколения большинства конструкций, поэтому первые 16-разрядные ЦП имели 16-разрядные шины, 32-разрядные ЦП имели 32-разрядные шины данных и т. д.
Однако именно размер целочисленных регистров процессора определяет тип ОС (64 против 32), а не шина данных. Шина данных может отличаться от целочисленных регистров, но автор вашей цитаты связывает их вместе, потому что исторически они часто были одинаковыми.
Некоторые примеры из реальной жизни, где ширина шины данных и целочисленного регистра различаются:
Исходный процессор Pentium 1992 года имеет 64-разрядную шину данных, но имеет 32-разрядную конструкцию. Большая шина данных позволяет ЦП передавать больше данных в и из кэшей, но по-прежнему имеет доступ только к 32-разрядным внутренним данным с помощью своих регистров ЦП.
Как правило, размер указателя также соответствует размеру регистра, но ширина шины физического адреса может быть больше или меньше размера регистра. Некоторые примеры:
Самое лучшее понять, что разрядность ЦП полностью определяется архитектурой и в основном только с точки зрения программного обеспечения. Это больше не имеет ничего общего с физическим дизайном.
Проблема 2
- Сколько страниц находится в виртуальном адресном пространстве?
- Каков максимальный размер адресуемой физической памяти в этой системе?
- Если средний размер процесса составляет 8 ГБ, вы бы использовали одноуровневую, двухуровневую или трехуровневую таблицу страниц? Почему?
- Вычислите средний размер таблицы страниц в ответе на вопрос 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 |
Проблема 3
- Каков размер страницы в такой системе? Объясните свой ответ (число без обоснования не будет засчитано).
-
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.
Необходимое условие — основные компьютерные инструкции, форматы инструкций
Формат инструкции определяет другой компонент инструкции. Основными компонентами инструкции являются код операции (какая инструкция должна быть выполнена) и операнды (данные о том, какая инструкция должна быть выполнена). Вот различные термины, относящиеся к формату инструкции:
- Размер набора инструкций. Указывает общее количество инструкций, определенных в процессоре.
- Размер кода операции — это количество битов, занимаемых кодом операции, которое рассчитывается путем получения логарифма размера набора инструкций.
- Размер операнда — количество битов, занимаемых операндом.
- Размер инструкции — рассчитывается как сумма битов, занятых кодом операции и операндами.
В этой статье мы обсудим различные типы проблем в зависимости от формата инструкций, которые задаются в GATE. Подробнее о различных типах форматов инструкций см.: Форматы инструкций
Тип 1: Зная размер набора инструкций, размер операндов и их количество, найдите размер инструкции.
В этом типе вопросов вам будет дан размер набора инструкций, количество операндов и их размер, вы должны узнать размер инструкции.
Очередь-1. Рассмотрим процессор с 64 регистрами и набором команд размером двенадцать. Каждая инструкция имеет пять отдельных полей, а именно код операции, два идентификатора исходного регистра, один идентификатор регистра назначения и двенадцатибитное непосредственное значение. Каждая инструкция должна храниться в памяти с выравниванием по байтам. Если в программе 100 инструкций, объем памяти (в байтах), занимаемый текстом программы, равен ____________. (GATE 2016)
(A) 100
(B) 200
(C) 400
(D) 500
- Инструкция состоит из кода операции и операндов. Учитывая размер набора инструкций 12, для кода операции требуется 4 бита (2 ^ 4 = 16).
- Поскольку всего имеется 64 регистра, для идентификации регистра требуется 6 бит.
- Поскольку инструкция содержит 3 регистра (2 источника + 1 обозначение), для идентификаторов регистров требуется 3 * 6 = 18 бит.
- Для непосредственного значения требуется 12 бит.
- Всего битов для инструкции = 4 + 18 + 12 = 34 бита
- Инструкции должны храниться с выравниванием по байтам. Ближайшая граница байта после 34 бит составляет 40 бит (5 байт).
- Следовательно, для 100 инструкций требуется память 5 * 100 = 500 байт, и правильный вариант — (D).
Тип 2: Учитывая размер инструкции, размер кода операции и размер некоторых операндов, найдите размер и максимальное значение оставшихся операндов.
В этом типе вопросов вам будет дан размер инструкции, размер кода операции, количество операндов и размер некоторых операндов, вы должны узнать размер или максимальное значение оставшихся операндов.
Очередь-2. Процессор имеет 40 различных инструкций и 24 регистра общего назначения. 32-битное командное слово имеет код операции, два операнда-регистра и непосредственный операнд. Количество битов, доступных для поля непосредственного операнда, равно_______. (ВОРОТ CS 2016)
- Поскольку у процессора 40 инструкций, число бит кода операции = 6 (2^6 = 64)
- Поскольку процессор имеет 24 регистра, число битов в одном регистре = 5 (2^5 = 32)
- Всего бит, занятых 2 регистрами и кодом операции = 6 + 5 + 5 = 16.
- Поскольку указанный размер инструкции составляет 32 бита, оставшиеся биты, оставшиеся для операнда = 32-16 = 16 бит.
Очередь-3. Машина имеет 32-битную архитектуру с инструкциями длиной в 1 слово. Он имеет 64 регистра, каждый из которых имеет длину 32 бита. Он должен поддерживать 45 инструкций, которые имеют непосредственный операнд в дополнение к двум регистровым операндам. Предполагая, что непосредственный операнд является целым числом без знака, максимальное значение непосредственного операнда равно ___________. (ВОРОТ CS 2014)
- Поскольку машина имеет 32-битную архитектуру, 1 слово = 32 бита = размер инструкции
- Поскольку процессор имеет 64 регистра, число битов в одном регистре = 6 (2^6 = 64)
- Поскольку у процессора 45 инструкций, число бит кода операции = 6 (2^6 = 64)
- Всего бит, занятых 2 регистрами и кодом операции = 6 + 6 + 6 = 18.
- Поскольку указанный размер инструкции составляет 32 бита, оставшийся бит остается для непосредственного операнда = 32-18 = 14 бит.
- Максимальное значение без знака с использованием 14 бит = 2^14 – 1 = 16383, что является ответом.
Тип 3: Формат инструкций с различными категориями инструкций.
В этом типе вопросов вам будут даны инструкции разных категорий. Вам нужно найти максимально возможное количество инструкций данного типа.
Очередь-4. Процессор имеет 16 целочисленных регистров (R0, R1, …, R15) и 64 регистра с плавающей запятой (F0, F1, …, F63). Он использует 2-байтовый формат инструкции. Существует четыре категории инструкций: тип 1, тип 2, тип 3 и тип 4. Категория типа 1 состоит из четырех инструкций, каждая из которых имеет 3 целочисленных регистровых операнда (3R). Категория типа 2 состоит из восьми инструкций, каждая из которых имеет 2 операнда регистра с плавающей запятой (2F). Категория типа 3 состоит из четырнадцати инструкций, каждая из которых имеет один операнд целочисленного регистра и один операнд регистра с плавающей запятой (1R+1F). Категория типа 4 состоит из N инструкций, каждая из которых имеет регистровый операнд с плавающей запятой (1F).
Воспоминания содержат один или несколько битов информации:
Содержимое памяти остается неизменным до тех пор, пока не будет перезаписано новым битовым шаблоном. Для некоторых воспоминаний содержимое «теряется» при отключении питания памяти.
Компьютеры используют множество различных типов памяти (полупроводниковая память, магнитные диски и ленты, компакт-диски и т. д.) для хранения данных и программ. Каждый тип памяти имеет свои особенности и области применения.
Зарегистрировать память
Регистры — это память, расположенная в центральном процессоре (ЦП). Их мало (редко бывает больше 64 регистров), а также небольшой размер, обычно регистр имеет размер менее 64 бит.
Однако содержимое регистра можно «прочитать» или «записать» очень быстро, часто на порядок быстрее, чем в основной памяти, и на несколько порядков быстрее, чем в дисковой памяти.
Различные типы регистров встречаются в ЦП. Регистры общего назначения доступны для общего использования программистом. Если из контекста не следует иное, мы будем использовать термин «Регистр» для обозначения регистра общего назначения внутри ЦП. Большинство современных процессоров имеют от 16 до 64 регистров общего назначения. Регистры специального назначения имеют особое назначение и либо не программируются, либо являются внутренними для ЦП, либо доступ к ним осуществляется программистом с помощью специальных инструкций.
Примеры таких регистров включают:
Хотя размер регистра (размер битовой группы регистров) имеет тенденцию варьироваться в зависимости от типа регистра, размер слова архитектуры часто (но не всегда!) определяется размером регистров общего назначения. р>
В отличие от основной памяти и дисковой памяти, регистры «адресуются» напрямую с помощью специальных инструкций или путем кодирования номера регистра в компьютерной инструкции. На уровне языка программирования (ассемблера) ЦП регистры обычно обозначаются специальными идентификаторами (например, R0, R1, R7, SP, PC)
И последнее: содержимое регистра теряется при отключении питания ЦП, поэтому регистры не подходят для хранения долговременной информации или информации, необходимой для хранения после отключения питания или сбоя. Однако регистры являются самой быстрой памятью, и их использование может привести к тому, что программы будут выполняться очень быстро.
Основная память (ОЗУ)
Если бы мы суммировали все биты всех регистров ЦП, общий объем памяти, вероятно, не превышал бы 5000 бит. Большинство вычислительных задач, выполняемых компьютером, требуют гораздо больше памяти. Основная память — это следующая по скорости память в компьютере, и она намного больше по размеру.
Персональный компьютер | 256 МБ | Файловый сервер | 4 ГБ |
Мейнфрейм базы данных | 32 ГБ тд> |