32 битная шина адреса позволяет процессору непосредственно адресовать

Сколько адресов памяти мы можем получить с 32-разрядным процессором и оперативной памятью 1 ГБ?

Сколько адресов памяти мы можем получить с 32-разрядным процессором и оперативной памятью 1 ГБ и сколько с 64-разрядным процессором?

Я думаю, что это что-то вроде этого:

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

Но я не уверен. Вот почему я спрашиваю.

Я прочитал в википедии, что 1 адрес памяти имеет ширину 32 бита или 4 октета (1 октет = 8 бит) по сравнению с 64-битным процессором, где 1 адрес памяти или 1 целое число имеют ширину 64 бита или 8 октетов. Но не знаю, правильно ли я это понял.

Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать

03. Основы устройства компьютера. Память и шина. [Универсальный программист]

6 ответов 6

Краткий ответ: Количество доступных адресов равно меньшему из них:

  • Объем памяти в байтах
  • Наибольшее целое число без знака, которое можно сохранить в машинном слове процессора

Длинный ответ и объяснение вышесказанного:

Память состоит из байтов (B). Каждый байт состоит из 8 бит (б).

1 ГБ ОЗУ на самом деле составляет 1 ГБ (гибибайт, а не гигабайт). Разница в том, что:

Каждый байт памяти имеет свой собственный адрес, независимо от того, насколько велико машинное слово процессора. Например. Процессор Intel 8086 был 16-разрядным, и он обращался к памяти байтами, как и современные 32-разрядные и 64-разрядные процессоры. Это является причиной первого ограничения — вы не можете иметь больше адресов, чем байтов памяти.

Адрес памяти — это просто число байтов, которое ЦП должен пропустить с начала памяти, чтобы получить тот, который он ищет.

  • Для доступа к первому байту необходимо пропустить 0 байтов, поэтому адрес первого байта равен 0.
  • Для доступа ко второму байту необходимо пропустить 1 байт, поэтому его адрес равен 1.
  • (и так далее. )
  • Для доступа к последнему байту процессор пропускает 1073741823 байта, поэтому его адрес равен 1073741823.

Теперь вы должны знать, что на самом деле означает 32-разрядный. Как я уже говорил, это размер машинного слова.

Машинное слово — это объем памяти, используемый ЦП для хранения чисел (в ОЗУ, в кеше или во внутренних регистрах). 32-битный процессор использует 32 бита (4 байта) для хранения чисел. Адреса памяти тоже являются числами, поэтому на 32-битном процессоре адрес памяти состоит из 32 бит.

Теперь подумайте об этом: если у вас есть один бит, вы можете сохранить на нем два значения: 0 или 1. Добавьте еще один бит, и вы получите четыре значения: 0, 1, 2, 3. На трех битах вы можете сохранить восемь значений: 0, 1, 2 . 6, 7. На самом деле это двоичная система, и она работает так:

Он работает точно так же, как обычное сложение, но максимальная цифра — 1, а не 9. Десятичное число 0 равно 0000 , затем вы добавляете 1 и получаете 0001 , добавляете еще раз, и у вас есть 0010 . То, что здесь происходит, похоже на десятичную 09 и добавление единицы: вы меняете 9 на 0 и увеличиваете следующую цифру.

Из приведенного выше примера вы можете видеть, что всегда есть максимальное значение, которое вы можете хранить в числе с постоянным количеством битов — потому что, когда все биты равны 1, и вы пытаетесь увеличить значение на 1, все биты станут равными 0, таким образом разбивая число. Это называется целочисленным переполнением и вызывает много неприятных проблем, как для пользователей, так и для разработчиков.

  • Для 1 бита наибольшее значение равно 1,
  • 2 бита — 3,
  • 3 бита — 7,
  • 4 бита — 15

Читайте также: Шины с датчиком давления opel

Максимально возможное число всегда равно 2 ^ N-1, где N — количество битов. Как я уже говорил, адрес памяти — это число, которое также имеет максимальное значение. Вот почему размер машинного слова также является ограничением для количества доступных адресов памяти — иногда ваш процессор просто не может обработать числа, достаточно большие, чтобы адресовать больше памяти.

Таким образом, в 32 битах вы можете хранить числа от 0 до 2 ^ 32-1, а это 4 294 967 295. Это больше, чем самый большой адрес в 1 ГБ ОЗУ, поэтому в вашем конкретном случае объем ОЗУ будет ограничивающим фактором.

Предел оперативной памяти для 32-разрядного ЦП теоретически составляет 4 ГБ (2 ^ 32), а для 64-разрядного ЦП — 16 ЭБ (эксабайт, 1 ЭБ = 2 ^ 30 ГБ). Другими словами, 64-битный процессор может адресовать весь Интернет . 200 раз;) (по оценкам WolframAlpha).

Однако в реальных операционных системах 32-разрядные процессоры могут обрабатывать около 3 ГБ ОЗУ. Это из-за внутренней архитектуры операционной системы — некоторые адреса зарезервированы для других целей. Вы можете прочитать больше об этом так называемом барьере 3 ГБ в Википедии. Вы можете снять этот предел с помощью расширения физического адреса.

Говоря об адресации памяти, я должен упомянуть несколько вещей: виртуальную память, сегментацию и разбиение на страницы.

Видео:Внутри процессора ARM1Скачать

Внутри процессора ARM1

Виртуальная память

Как отметил @Daniel R Hicks в другом ответе, операционные системы используют виртуальную память. Это означает, что приложения на самом деле работают не с реальными адресами памяти, а с ОС.

Этот метод позволяет операционной системе перемещать некоторые данные из ОЗУ в так называемый Pagefile (Windows) или Swap (* NIX). Жесткий диск на несколько порядков медленнее, чем ОЗУ, но это не является серьезной проблемой для редко используемых данных и позволяет ОС предоставлять приложениям больше оперативной памяти, чем вы фактически установили.

Видео:Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!Скачать

Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!

Paging

То, о чем мы говорили до сих пор, называется плоской схемой адресации.

Пейджинг — это альтернативная схема адресации, которая позволяет адресовать больше памяти, чем обычно, одним машинным словом в плоской модели.

Представьте себе книгу, заполненную 4-буквенными словами. Допустим, на каждой странице 1024 номера. Чтобы обратиться к номеру, нужно знать две вещи:

  • Номер страницы, на которой напечатано это слово.
  • Какое слово на этой странице является тем, которое вы ищете.

Теперь именно так современные процессоры x86 обрабатывают память. Он разделен на 4 страницы по КиБ (1024 машинных слова каждая), и эти страницы имеют номера. (на самом деле страницы также могут иметь размер 4 МБ или 2 МБ с PAE). Если вы хотите обратиться к ячейке памяти, вам нужен номер страницы и адрес на этой странице. Обратите внимание, что на каждую ячейку памяти ссылается ровно одна пара чисел, это не относится к сегментации.

Видео:КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМСкачать

КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМ

сегментация

Ну, этот очень похож на пейджинг. Он был использован в Intel 8086, просто чтобы назвать один пример. Группы адресов теперь называются сегментами памяти, а не страницами. Разница в том, что сегменты могут перекрываться, и они сильно перекрываются. Например, на 8086 большинство ячеек памяти были доступны из 4096 различных сегментов.

Допустим, у нас есть 8 байтов памяти, все держат нули, кроме 4-го байта, который равен 255.

Иллюстрация для плоской модели памяти:

Иллюстрация для страничной памяти с 4-байтовыми страницами:

Иллюстрация для сегментированной памяти с 4-байтовыми сегментами, сдвинутыми на 1:

Читайте также: Дошиповка зимних шин в ижевске

Как видите, 4-й байт может быть адресован четырьмя способами: (адресация от 0)

  • Сегмент 0, смещение 3
  • Сегмент 1, смещение 2
  • Сегмент 2, смещение 1
  • Сегмент 3, смещение 0

Это всегда одна и та же ячейка памяти.

В реальных реализациях сегменты смещены более чем на 1 байт (для 8086 это было 16 байт).

Что плохо в сегментации, так это то, что она сложная (но я думаю, вы уже это знаете;) Что хорошо, вы можете использовать некоторые умные методы для создания модульных программ.

Например, вы можете загрузить какой-либо модуль в сегмент, а затем сделать вид, что сегмент меньше, чем он есть на самом деле (достаточно мал, чтобы вместить модуль), затем выбрать первый сегмент, который не перекрывается с этим псевдо-меньшим, и загрузить следующий модуль. , и так далее. По сути, вы получаете страницы переменного размера.

Видео:Просто о битах, байтах и о том, как хранится информация #2Скачать

Просто  о битах, байтах и о том, как хранится информация #2

Адресация и многозадачность: Правила формирования линейного и физического адреса

Линейный адрес — адрес, формируемый механизмом адресации процессора из логического адреса. Линейный адрес предназначен для обращения к линейному (непрерывному и несегментированному) адресному пространству объемом 2 32 байт (Intel386 …). При отключенном страничном механизме линейный адрес полностью совпадает с физическим адресом. Способ формирования линейного адреса из логического зависит от текущего режима работы процессора (реальный, защищенный, 32 или 16-битная адресация).

Физический адрес — адрес, передаваемый на внешнюю шину для обращения к ячейкам памяти. Типовые 32-разрядные процессоры (Pentium …) позволяют адресовать до 2 32 байт (4 Гб) физической памяти в обычном режиме и до 2 36 байт (64 Гб) в случае поддержки механизма расширения физического адреса (управляется CR4.PAE). Физический адрес образуется из линейного либо напрямую (полное совпадение), либо через механизм страничного преобразования.

Реальный режим

В реальном режиме работа всех современных процессоров происходит аналогично тому, как это делает процессор 8086. Некоторые отличия состоят лишь в поддержке большего количества команд и во много раз более высокой скорости работы. То есть программы, написанные для 8086, в большинстве случаев нормально работают на всех процессорах более поздних модификаций (включая Pentium IV и более поздние). Механизм формирования линейного адреса в реальном режиме работы (см. рис. 2.2.) предельно упрощен и позволяет адресовать адресное пространство объмом 2 20 байт (1 Мб).

Рис. 2.2. Формирование линейного адреса в реальном режиме работы процессора

Полученный таким образом линейный адрес является фактически и физическим адресом. Существует, однако, одна особенность, которая проявляется в процессорах начиная с Intel286, где разрядность физического адреса превышает 20 бит. В случае задания селектора сегмента равным, например, FFFFh сумма базы сегмента и смещения может превысить FFFFFh (может достигать 10FFEFh). В процессоре 8086 в этом случае старший бит теряется и производится обращение к ячейке с адресом 0FFEFh, в более современных процессорах (Intel286 …) старший бит не отбрасывается и весь 21-битный линейный адрес преобразуется в физический и подается на адресную шину. Таким образом, появляется возможность в реальном режиме работы процессора обращаться к дополнительным 64 Кб адресного пространства. Поскольку такой режим работы может вызвать некорректное функционирование программ, написанных для процессора 8086, в процессорах начиная с Intel486 введена возможность маскирования 20-го разряда адресной шины внешним сигналом.

Еще одной особенностью процессоров начиная с Intel386 является возможность использования префикса изменения рамера адреса по умолчанию в реальном режиме работы. Поскольку в реальном режиме по умолчанию используется 16-битная адресация (размер смещения — 16 бит), то ввод данного префикса позволяет переключиться на использование 32-битного смещения. Однако величина этого смещения не должна превышать FFFFh (максимальный размер сегмента в реальном режиме). Для сохранения полной совместимости с процессором Intel286 попытка использования 32-битного смещения, превышающего 0000FFFFh приводит к генерации прерывания 12 (превышение стекового сегмента) или 13 (превышение прочих сегментов).

Читайте также: Летних шин continental contact 4×4 215 65 r16

Защищенный режим

Работа механизма формирования линейного адреса в защищенном режиме работы процессора основана на двух специальных таблицах, размещаемых в памяти. Это глобальная таблица дескрипторов (GDT) и локальная таблица дескрипторов (LDT) (есть еще таблица дескрипторов прерываний, но она используется только при генерации прерываний и особых ситуаций ситуаций). Эти таблицы создаются и заполняются до переключения в защищенный режим, они содержат описания используемых программой сегментов памяти (базовый адрес, размер, тип, привилегии доступа и т.п.). Селектор сегмента, являющийся частью сформированного логического адреса в защищенном режиме содержит не базу физического адреса сегмента, а указатель на описание сегмента (дескриптор сегмента) в какой-либо таблице дескрипторов (LDT или GDT). Из выбранного таким образом дескриптора и смещения (вторая часть логического адреса) процессор автоматически вычисляет требуемый линейный адрес (рис. 2.3.).

Рис. 2.3. Процесс формирования линейного адреса в защищенном режиме работы процессора

Положение таблиц дескрипторов в памяти задается следующим образом: для таблицы GDT — 32-разрядным значением ее линейного адреса в регистре GDTR, для таблицы LDT — специальным дескриптором в таблице GDT, ссылка на который (селектор) помещается в регистр LDTR.

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

В защищенном режиме в процессорах Intel386, Intel486 … может использоваться как 32-х, так и 16-битная модель адресации. Режим «по умолчанию» задается в дескрипторе соответствующего сегмента кода. При применении 16-битной адресации разрядность смещения уменьшается до 16 бит. При этом форматы селекторов и дескрипторов остаются такими же, как и при 32-битной адресации.

Режим V86

Режим V86 (виртуальный-8086) введен в процессорах начиная с Intel386 и является специальным подмножеством защищенного режима. Этот режим предназначен для выполнения программ, предназначенных для процессора 8086 или для реального режима работы более поздих процессоров архитектуры x86, в более гибком, поддерживающем многозадачность защищенном режиме.

Механизм формирования линейного адреса в режиме V86 работает аналогично тому, как это происходит в реальном режиме. Т.е. 16-битный селектор и 16-битное смещение формируют 20-битный логический адрес, который затем расширяется нулями для получения полного 32-битного линейного адреса. Возможно и применение префиксов изменения рамера адреса (смещение в этом случае не должно превышать FFFFFh).

В режиме V86 (также как и в реальном режиме работы процессоров Intel286 …) возможна адресация памяти старше 1Мб (10000h:1FFFEFh), при встрече такого адреса перехода на младшие адреса не происходит. Для эмуляции такого перехода может быть использован страничный механизм (адреса 100000h:110000h отображаются на адреса 00000h:10000h).

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

  • Свежие записи
    • Нужно ли менять пружины при замене амортизаторов
    • Скрипят амортизаторы на машине что делать
    • Из чего состоит стойка амортизатора передняя
    • Чем стянуть пружину амортизатора без стяжек
    • Для чего нужны амортизаторы в автомобиле

    📸 Видео

    Шина компьютера, оперативная память, процессор и мостыСкачать

    Шина компьютера, оперативная память, процессор и мосты

    РЕШЕНИЕ.системные прерывания, процессор 100, майнер вирус.Скачать

    РЕШЕНИЕ.системные прерывания, процессор 100, майнер вирус.

    Как из 32 разрядной системы сделать 64 разрядную?Скачать

    Как из 32 разрядной системы сделать 64 разрядную?

    Регистры общего назначенияСкачать

    Регистры общего назначения

    КАК РАБОТАЕТ ПРОЦЕССОР | ОСНОВЫ ПРОГРАММИРОВАНИЯСкачать

    КАК РАБОТАЕТ ПРОЦЕССОР | ОСНОВЫ ПРОГРАММИРОВАНИЯ

    Как работает процессорСкачать

    Как работает процессор

    04. Основы устройства компьютера. Архитектура процессора. [Универсальный программист]Скачать

    04. Основы устройства компьютера. Архитектура процессора. [Универсальный программист]

    15 Режимы работы процессораСкачать

    15 Режимы работы процессора

    Доступна не вся Оперативная Память на Windows, которая Установлена | Решение Есть!Скачать

    Доступна не вся Оперативная Память на Windows, которая Установлена | Решение Есть!

    Лекция 325. Atmega 8: Адресуемая памятьСкачать

    Лекция 325. Atmega 8: Адресуемая память

    Архитектура ЭВМ. Лекция 3: Кодирование и тип инструкций процессора.Скачать

    Архитектура ЭВМ. Лекция 3: Кодирование и тип инструкций процессора.

    Архитектура x86. Уверены, что знаете свой домашний компьютер?Скачать

    Архитектура x86. Уверены, что знаете свой домашний компьютер?

    Влияние шин PCI-e и внутренней шины видеокарты на производительностьСкачать

    Влияние шин PCI-e и внутренней шины видеокарты на производительность

    Архитектура ЭВМ. Лекция 4: Однотактный процессор: тракт данных, ветвлениеСкачать

    Архитектура ЭВМ. Лекция 4: Однотактный процессор: тракт данных, ветвление

    02. Регистры и модель памяти. Виды адресацииСкачать

    02. Регистры и модель памяти. Виды адресации
Поделиться или сохранить к себе:
Технарь знаток