Mmioh size bios что
В данной статье я собрал информацию о некоторых настройках BIOS материнской платы M3A32-MVP Deluxe. А точнее о тех из них, которые интересны при разгоне. Все, что сказано ниже не является абсолютной истиной и было собрано из различных источников, в большинстве своем англоязычных. Поэтому выношу этот материал на обсуждение. Тем более, что сам хотел бы узнать побольше о некоторых опциях. Личное мнение от использования тех или иных настроек я записывал под знаком *. Вот подходящая ветка на оверах, где можно и нужно обсудить данный материал. Осталось добавить, что на данной МП я разгонял Athlon 64 x2 4400+ Brisbane, поэтому, возможно список опций неполный по сравнению с использованием Phenom-ов.
Jumper Free Configuration
AI Overclocking [Manual]
Установка значения Manual открывает Вашему взору следующие опции:
FSB Frequency [200-600 MHz]
Значение, которое наряду с множителем задает устанавливает частоту процессора. Например, 200 FSB x 11 = 2.2 Ггц.
PCIE Frequency [100-150 MHz]
Рекомендуется устанавливать не более 115-118 МГц, при этом можно добиться небольшого увеличения производительности в 3D-приложениях. Установка значений превышающие данные может вызвать проблемы в работе южного и северного мостов и, как следствие, проблемы в работе периферии и жестких дисков, но кого этим испугаешь ;)
Processor Frequency Multiplier [x4 — x11,5]
В режиме AI Overclocking Auto BIOS устанавливает заданную по умолчанию частоту CPU. В режиме Manual можно задать множитель из приведенного интервала.
CPU-NB HT Link Speed [200-1000MHz]
Частота HT для Phenom-ов от 200 до 2200МНz
CPU VDDA Voltage [2,5-2,8v]
* Толкового объяснения в русскоязычном интернете не нашел. По поиску нашел на одном из англоязычных форумов объяснение, что этот параметр устанавливает схему регулирования центрального процессора и манипуляциями с ним можно добиться стабильности при разгоне. Проверил, действительно, на комп на пределе разгона (проц Athlon 64 x2 Brisbane 4400+ @ 3300Гц 1,6v) при значении данной опции 2,5v грузился через раз, а при установке ее в 2,8v он у меня прошел SuperPi32M, правда, ОССТ не выдержал. При этом, помогло именно значение 2,8v, с 2,6 и 2,7 была та же картина, что и с 2,5.
NorthBridge Voltage [Manual]
Данная установка открывает следующие опции:
Hyper Transport Voltage [1,2-1,5v]
Выставляет напряжение на шине Hyper Transport.
* При разгоне ставил 1,3v.
Southbridge Voltage [1,2-1,4v]
* При разгоне выставил 1,3v.
Auto Xpress [Auto, Enabled, Disabled]
Про эту опцию можно сказать следующее:
Уже в случае с AMD 790X, впрочем, перечень характеристик пополняется за счет Auto Xpress (автоматическое увеличение рабочей частоты шины PCI Express при установке видеокарт AMD на платы с чипсетом AMD; использование специальных режимов работы с DDR2 памятью), GPU-Plex, Quad PCIE Blocks и CrossFireX. Последняя технология особо интересна тем, что отныне в режиме CrossFire могут быть объединены три или даже четыре графических адаптера AMD. Перечень CrossFireX-совместимых видеокарт на данный момент состоит из решений AMD поколения Radeon HD 3800. При производстве новых чипсетов компании был использован 65 нм техпроцесс. Энергопотребление данных наборов системной логики составляет 10-12 Вт (TDP).
Будучи объединенными вместе, все вышеперечисленные компоненты (процессоры Phenom, чипсеты AMD 7, адаптеры Radeon HD 3800 и технология CrossFireX) составляют новую платформу для "энтузиастов" под названием AMD "Spider".
CPU Tweak [Enabled, Disabled]
В BIOS от Asus так называется TLB-патч для процессоров Phenom.
Memory Configuration
Bank Interleaving [Auto, Disabled]
Включение этого режима позволяет работать с банками по очереди, то есть получать данные из одного в то время, когда другие заняты. Причем выбор значения 2-Way позволяет чередовать пару банков, а 4-Way – четыре банка (они есть у большинства микросхем DIMM-модулей), а это, конечно, выгоднее.
* В тесте памяти Everest с данной опцией Disabled результат снижается на
2,5% по сравнению с Auto.
Channel Interleaving
* У меня эта опция была в BIOS версии 0801, с которой она и продавалась. После прошивки до последней версии 1102 я ее не обнаружил.
DCT Unganged Mode [Enabled, Disabled]
При установке Disabled чипсет должен работать с памятью частотой до 800МГц. Enabled позволяет включить делитель для памяти 1066МГц. Это можно сделать при установке процессоров Phenom.
Read Delay [0,5-4 memory CLKs]
Это поле определяет задержку от включения DQS ресивера до начала чтения первых данных с клавиатуры, получаемых FIFO.
000b = 0.5 Memory Clocks
001b = 1 Memory Clock
010b = 1.5 Memory Clocks
011b = 2 Memory Clocks
100b = 2.5 Memory Clocks
101b = 3 Memory Clock
110b = 3.5 Memory Clocks
111b = 4 Memory Clocks
Прямая корреляция w/memory's время ожидания. Чем ниже установка, тем ниже время ожидания.
* Со значением 0,5 комп не стартовал, сброс CMOS. С 1 стартует, но пишет что-то вроде ошибки при проверке DRAM. Нормальный запуск при 1,5. В бенчмарке памяти и кэша Everest прирост по сравнению с настройками по умолчанию: по Read — 1,9%; по Copy — 0,5%; по Latency — уменьшение времени доступа на 2,8 ns. По Write изменений нет.
Memory Clock Tristate C3/ALTVID [Enabled, Disabled]
Позволяет частоте памяти DDR быть в трех состояниях (tristated), когда включен дополнительный режим VID. Этот бит не имеет никакого эффекта если установлен бит DisNbClkRamp (Function 3, Offset 88h).
Power Down Enable [Enabled, Disabled]
Если данный режим активирован, то после ввода включения режима Sleep Mode, главному внутреннему тактовому генератору запрещено передавать сигнал на чип устройства. При этом большая часть связанной схемы может отключена от питания для сохранения энергии.
DCQ Bypass Maximu [0x-14x]
Управляющий контроллер обычно позволяет производить за проход другие операции по порядку, чтобы оптимизировать пропускную способность DRAM. Это поле определяет максимальное количество раз, которое самый старый запрос доступа к памяти в очереди контроллера DRAM может быть отложен перед выполнением, и самый старый запрос доступа к памяти будет выполнен вместо другого.
0000b = Никогда не откладывается; самый старый запрос никогда не откладывается.
0001b = самый старый запрос может быть отложен не больше, чем 1 раз.
1111b = самый старый запрос может быть отложен не больше, чем 15 раз.
* оптимальное значение для быстродействия 4. При этом в тесте памяти Everest наибольшая скорость копирования. На чтение, запись и латентность это значение почти не влияет.
DRAM Timing Configuration
Memory Clock Mode [Auto, Limit, Manual]
Установка в Manual открывает следующую опцию:
Memory Clock Value [400, 533, 667, 800]
Позволяет установить делитель для памяти.
2T Mode (Slow Access Mode) [Auto, Enabled, Disabled]
Медленный доступ к памяти. Этот бит управляет использованием режима таймингов 2Т. 2T режим может быть необходим, чтобы выполнить электрические требования некоторых скоростных DIMM и загрузочных конфигураций.
0 (2Т отключен) - DRAM адрес и контрольные сигналы передаются за один цикла MEMCLK.
1 (2Т включен) - один дополнительный MEMCLK обеспечивается для всех адресов DRAM и контрольных сигналов кроме CS, CKE и ODT; то есть, эти сигналы передаются за два цикла MEMCLK, а не за один.
* 1Т — преимущество в скорости работы памяти (чтение, копирование, уменьшение latency). Включить 1Т можно установкой данной опции в Disabled или через Memset из виндовс.
DRAM Timing Mode [Auto, DCT0]
При установке DCT0 позволяет вручную задавать тайминги. Некоторые пункты:
TCWL [5 CLK] опция добавлена с версии BIOS 1002 (время ожидания записи - чем ниже значение, тем быстрее запись).
TRAS [18 CLK] для этой установки начиная с версии BIOS 1002 удалена следующая зависимость: Если tRTP установлен в Auto, тогда значение 2 и зависит от того, каково значение. Любая другая установка tRTP, то TRAS - 18 независимо от того, каково значение.
TRC [26 CLK] с версии BIOS 1002 отменена эта установка, если tRTP не находится в Auto. Если tRTP не находится на Auto, то TRC - 26.
tWTR [3 CLK] с BIOS версии 1002 эта установка отменена, если tRTP не находится в Auto; иначе окончательное значение будет уменьшено на 1.
tRTP [2-4 CLK] В в BIOS версии 0801 при установке чего-нибудь все равно Auto; для TRC и TRAS отменены в версии 0902 значения 2-4 CLK и функционирование TRAS, как установлена.
tRWTTO [4 CLK] Для моей памяти это Auto или то же самое, что и tWR или не будет загружаться.
tWRRD [0 CLK] эти последние три параметра нужны для таймингов от модуля к модулю (Для бенчмарков рекомендуется устанавливать их соответственно на 0,1 и 2)
PLL1 Spread Spectrum [Enabled, Disabled]
PLL2 Spread Spectrum [Enabled, Disabled]
Опция Spread Spectrum позволяет сгладить пики и уменьшить интерференцию, а также уменьшить взаимное электромагнитное влияние различных компонентов системной платы друг на друга за счет изменения их частоты в некоторых пределах. Рекомендуется отключить для стабильности системы.
PCI Express Configuration
GFX Dual Slot Configuration [Enabled]
GFX2 Dual Slot Configuration [Disabled]
Peer-to-Peer among GFX/GFX2 [Disabled]
Данные опции определяют сколько и в каком режиме будет работать видеоадаптеров, размещенных в слотах. С такими значениями — будут задействованы платы, подсоединенные к верхним синему и черному слотам в равном состоянии для получения запросов и команд.
GPP Slots Power Limit, W [25]
Ограничение мощности слотов GPP
Link ASPM [L0s & L1]
ASPM обозначает Active State Power Mangement. Кроме соответствия традиционным требованиям энергосбережения, стандарт PCI Express обладает и эксклюзивными механизмами управления питания — это ASPM, Active State Power Management. ASPM обладает завидной автономностью и способен переводить устройство в оптимальный режим работы без инструкций свыше (со стороны ПО). Это не означает, что устройство, давно не подававшее признаков активности, будет полностью отключено, но переведено в режим пониженного потребления L0s - наверняка. Стандарт PCI Express считает устройство неактивным, если за время, равное 7 мкс, с ним не было никакого обмена данными. Как только возникает потребность в обмене, устройство возвращается в рабочее состояние. У различных устройств может быть абсолютно разное время «засыпания» и «пробуждения», поэтому эти параметры сообщаются Active State Power Management на этапе конфигурирования.
Link Width [Auto, x1Mode, x2, x4, x8, x16]
режим работы слота.
Slot Power Limit, W [175]
максимальная потребляемая мощность, которая может быть подана через слот (0-250).
NB-SB Port Features
NB-SB Link ASPM [Disabled, L1]
NP NB-SB VC1 Traffic Support [Disabled, Enabled]
виртуальный канал 1) помогает с асинхронным режимом управлять потоком данных и голоса по IP.
Hyper Transport Configuration
Isochronous Flow-Control Mode [Disabled, Enabled]
Часть спецификации HTT со времен AGP 8X.В случае если разработчик решает обеспечивать поддержку управления изохронного потока данных, в дополнение к стандартным трем виртуальным каналам, каждый интерфейс ресивера, который поддерживает изохронный поток, получит еще шесть ресиверов управления потоком, буферы и счетчики, и дополнительно установленный трансмиттер управления потоком счетчиков. Попутно ресивер определяет, какой буфер управления потоком данных (изохронный или стандартный) пакет должен использовать, это определяется посредством бита в пакете запроса (Isoc бит). Если Isoc бит задан в запросе, то он будет также определен в ответе, когда он возвратится - снова идентификация буфера, установленного для использования.
Принимающие устройства, которые видят пакеты запроса с установленным Isoc бит, но которые не находятся в изохронном режиме управления потока, не используют выделенные изохронные буферы управления потоком данных для их обработки. В этом случае, используются стандартные шесть буферов управления потоком данных и NOP буфер возвращает модифицированные пакеты на передатчик, все применяются к стандартным счетчикам потока передатчика. Такие устройства сохраняют Isoc бит и в пакете запроса и в его ответе, поскольку они отправляют его следующему устройству; По пути, если есть устройство, которое действительно поддерживает изохронный трафик, оно может использовано.
* Сказал много, а толку нет Проще говоря, лучше эту опцию держать Enabled.
HT Link Tristate [Disabled, CAD/CTL, CAD/CTL/CLK]
Включите вариант с тремя состояниями, чтобы уменьшить потребляемую мощность. По умолчанию нет линий в трех состояниях. Также CAD/CTL или CAD/CTL/CLK линии могут быть в трех состояниях.
UnitID Clumping [Disabled, UnitID 2/3, UnitID B/C, UnitID 2/3&B/C]
Включите для поддержки UnitID clumping, чтобы увеличить число отдельных запросов, поддерживаемых одиночным устройством. Это возможно включит для PCI-Express GFX линии в некоторых конфигурациях. Clumping можно включить, только когда используется более низкий мост номера в пределах каждого ядра PCI-Express GFX.
* Точных указаний нет. Вроде как работает вместе с Isochronous Flow-Control Mode и нужно ставить значение UnitID 2/3&B/C.
2X LCLK Mode
Ничего (опция будет удалена в следующей версии).
Назначение параметра: Количество выделяемой памяти для MMIO (Memory-mapped Input/Output) ( >>> ), определяемой в количестве сегментов, размер каждого из которых задается параметром MMIO High Granularity Size.
Возможные варианты значений:
Количество сегментов, размер которых устанавливается MMIO High Granularity Size.
Если параметр будет установлен в 56T, то нельзя будет установить параметр MMIO High Granularity Size, равным 1024G, поскольку адресация выйдет за пределы диапазона.
КОММЕНТАРИИ к "MMIO High Base"
Чтобы оставить комментарий, вам необходимо зарегистрироваться на сайте.ДРУГИЕ МАТЕРИАЛЫ ПО ТЕМЕ
Проявления неисправностей, связанных с данным параметром (0)
IT-WIKI (2)
Ввод-вывод с отображением портов часто использует специальный класс инструкций процессора, специально разработанный для обеспечения ввода-вывода данных. Различные формы этих двух инструкций могут копировать один, два или четыре байта (outb, outw и outl, соответственно) между регистром EAX(или одним из его субрегистров) и указанным портом ввода-вывода, ассоциированным с устройством. Устройства ввода-вывода имеют отдельное адресное пространство от общей памяти, которое обеспечивается либо дополнительным физическим.
Это способ обмена данными (ввода/вывода данных) между центральным процессором и периферийными устройствами, заключающийся в использовании выделенных процессоров ввода-вывода (они же каналы на мэйнфреймах), которые выполняют свои собственные инструкции.
Ввод-вывод с отображением памяти использует одно и то же адресное пространство для адресации как памяти, так и устройств ввода-вывода. Память и регистры устройств ввода-вывода отображаются (ассоциированы) адресными значениями. То есть, когда ЦП обращается к.
Параметры BIOS (28)
Особенности значений параметров и их влияние на работу компьютераПараметр включает/отключает поддержку USB-мыши.
Описание значений параметров:
Disabled - USB-мышь не будет работать.
Enabled - USB-мышь будет работать.
Параметр включает/отключает поддержку USB-клавиатуры.
Описание значений параметров:
Disabled - USB-клавиатура не будет работать.
Enabled - USB-клавиатура будет работать.
Описание значений параметров:
Number of CPU - количество процессоров в системе
Number of IIO - количество интегрированных модулей ввода/вывода (Integrated I/O module)
UPI LInk Speed - скорость работы UPI
Current UPI Link Frequency - частота работы UPI (Гигатранзакций/сек)
UPI Global MMIO Low Base / Limit - показывает начальное значение адреса в памяти и его предел для MMIO (Memory-mapped Input/Ouput) - ввода/вывода, с отображением в памяти.
UPI Global MMIO High Base / Limit - показывает конечное значение адреса в памяти и его предел для MMIO (Memory-mapped Input/Ouput) - ввода/вывода, с отображением в памяти.
UPI PCIe Configuration Base / Size - адрес и размер блока памяти для UPI PCIe
Описание значений параметров:
Auto - Значение выбирается системой из SPD-микросхемы на модуле памяти.
0-31 - Значение выбирается пользователем из предлагаемого диапазона. Чем больше значение, тем выше стабильность работы оперативной памяти и меньше вероятность ошибок.
Описание значений параметров:
Auto - Значение выбирается системой из SPD-микросхемы на модуле памяти.
0-31 - Значение выбирается пользователем из предлагаемого диапазона. Чем больше значение, тем выше стабильность работы оперативной памяти и меньше вероятность ошибок.
Описание значений параметров:
Auto - Значение выбирается системой из SPD-микросхемы на модуле памяти.
X - Значение выбирается пользователем из предлагаемого диапазона. Чем больше значение, тем выше стабильность работы оперативной памяти и меньше вероятность ошибок.
Описание значений параметров:
Advanced - Расширенный режим работы, позволяющий использовать жесты (сочетания касаний и движений) на тачпаде.
Basic - Базовый режим. Тачпад будет функционировать подобно манипулятору-мыши.
Особенности:
Данная настройка встречается на ноутбуках.
Параметр связан каталогами внутри оперативной памяти (in-memory directories), являющимися частью системы кэширования данных в многопроцессорных системах и устанавливает их поведение, заключающееся в смене их состояний.
Существует три состояния каталога: l - Invalid, А - Snoop All, S - Shared.
Состояние I (Invalid). Данные чистые и не существуют в кэше других процессоров. В данном состоянии необходимо отслеживать другие процессоры системы, поскольку в их памяти могут содержаться измененные данные. В этом случае анализатор вернет измененные данные.
Состояние A (snoop All). Данные могут существовать в другом сокете в исключительном или измененном состоянии.
Состояние S (Shared). Данные чистые и могут совместно использоваться одним или несколькими кэшами процессоров.
Описание значений параметров:
Disabled - Переход состояний отключен. Рекомендуется отключить, если включен параметр Snoopy Mode for 2LM.
Enabled - При включенном Stale AtoS в ситуации, когда линия в состоянии A возвращает только промахи отслеживания, линия переходит в состояние S. Это приведет к тому, что при последующих чтениях этой строки каталога она будет встречаться в состоянии S и не будет необходимости отслеживать, что сэкономит время ожидания и пропускную способность отслеживания данных.
Auto - Включение перехода состояний выполняется автоматически.
Особенности:
Данный параметр характерен для серверных систем.
Настройки скремблера оперативной памяти.
Скремблирование - это обратимое видоизменение цифрового сигнала, результат которого повышает надёжность синхронизации частоты оперативной памяти с частотой системной шины, обеспечивая надёжное выделение тактовой частоты непосредственно из принимаемого сигнала, уменьшает уровень помех, излучаемых на соседние элементы системы и защищает данные от несанкционированного доступа (атака типа "impact of excessive di/dt").
Как правило, скремблирование представляет собой процесс применения логической операции "Исключающее ИЛИ" с последовательностью данных и псевдослучайной последовательностью в скремблере передатчика. Структура данных в итоге становится хаотичной. Приемник принимая скремблированные данные проделывает с ними и с той же псевдослучайной последовательностью "Исключающее ИЛИ", восстанавливая исходные данные.
Все данные, которые передаются в или из микросхем оперативной памяти, сначала проходят через схему скремблера в концентраторе контроллера памяти, где они скремблируется при записи в память и прозрачно дескремблируется при чтении из нее.
Описание значений параметров:
Optimized (ASUS) - Алгоритм скреблирования модифицирован компанией ASUS.
Default (MRC) - Используется стандартный алгоритм скремблирования MRC (Memory Reference Code).
Варианты данного параметра могут меняться в зависимости от производителя материнской платы.
Ввод- вывод с отображением памяти ( MMIO ) и ввод-вывод с отображением портов ( PMIO ) - это два дополнительных метода выполнения ввода-вывода (I / O) между центральным процессором (CPU) и периферийными устройствами в компьютере . Альтернативный подход - использование выделенных процессоров ввода-вывода, обычно называемых каналами на мэйнфреймах , которые выполняют свои собственные инструкции .
Ввод-вывод с отображением памяти использует одно и то же адресное пространство для адресации как памяти, так и устройств ввода-вывода . Память и регистры устройств ввода-вывода отображаются (связаны с) адресными значениями. Таким образом, адрес памяти может относиться либо к части физического ОЗУ , либо к памяти устройства ввода-вывода. Таким образом, инструкции ЦП, используемые для доступа к памяти, также могут использоваться для доступа к устройствам. Каждое устройство ввода-вывода контролирует адресную шину ЦП и реагирует на любой доступ ЦП по адресу, назначенному этому устройству, соединяя шину данных с аппаратным регистром желаемого устройства . Для размещения устройств ввода-вывода области адресов, используемых ЦП, должны быть зарезервированы для ввода-вывода и не должны быть доступны для нормальной физической памяти. Резервирование может быть постоянным или временным (при смене банка ). Пример последнего можно найти в Commodore 64 , который использует форму отображения памяти, чтобы заставить RAM или оборудование ввода / вывода появляться в 0xD000-0xDFFF диапазоне.
Порт-карта I / O часто используется специальный класс команд процессора , разработанные специально для выполнения ввода / вывода, такие , как in и out инструкции найденной на микропроцессорах , основанных на x86 и x86-64 архитектур. Различные формы этих двух инструкций могут копировать один, два или четыре байта ( outb , outw и outl , соответственно) между регистром EAX или одним из подразделений этого регистра на ЦП и указанным портом ввода-вывода, который назначен устройству ввода-вывода. Устройства ввода-вывода имеют отдельное адресное пространство от общей памяти, которое обеспечивается либо дополнительным выводом «ввода-вывода» на физическом интерфейсе ЦП, либо всей шиной, выделенной для ввода-вывода. Поскольку адресное пространство для ввода-вывода изолировано от адресного пространства для основной памяти, это иногда называют изолированным вводом-выводом.
СОДЕРЖАНИЕ
Обзор
Различные методы связи ЦП с устройством, такие как отображение памяти, не влияют на прямой доступ к памяти (DMA) для устройства, потому что, по определению, DMA - это метод связи между памятью и устройством, который обходит ЦП.
Аппаратные прерывания - это еще один способ связи между ЦП и периферийными устройствами, однако по ряду причин прерывания всегда обрабатываются отдельно. Прерывание инициируется устройством, в отличие от методов, упомянутых выше, которые инициируются процессором. Он также является однонаправленным, поскольку информация передается только от устройства к процессору. Наконец, каждая линия прерывания несет только один бит информации с фиксированным значением, а именно «событие, требующее внимания, произошло в устройстве на этой линии прерывания».
Операции ввода-вывода могут замедлить доступ к памяти, если шина адреса и данных используются совместно. Это связано с тем, что периферийное устройство обычно намного медленнее, чем основная память. В некоторых архитектурах ввод-вывод с отображением портов работает через выделенную шину ввода-вывода, что устраняет проблему.
Одним из достоинств ввода-вывода с отображением памяти является то, что, отбрасывая дополнительную сложность, которую приносит ввод-вывод порта, ЦП требует меньше внутренней логики и, следовательно, дешевле, быстрее, проще в сборке, потребляет меньше энергии и может быть физически меньше; это соответствует основным принципам вычислений с сокращенным набором команд , а также является преимуществом во встроенных системах . Другое преимущество состоит в том, что, поскольку для адресации устройств используются обычные инструкции памяти, все режимы адресации ЦП доступны для ввода-вывода, а также для памяти, и инструкции, которые выполняют операцию ALU непосредственно с операндом памяти (загрузка операнд из ячейки памяти, сохранение результата в ячейке памяти или и то, и другое) также можно использовать с регистрами устройства ввода-вывода. Напротив, инструкции ввода-вывода с отображением портов часто очень ограничены, часто обеспечивая только простые операции загрузки и сохранения между регистрами ЦП и портами ввода-вывода, чтобы, например, добавить константу к отображаемым портам Регистру устройства потребуются три инструкции: считывание порта в регистр ЦП, добавление константы в регистр ЦП и запись результата обратно в порт.
Поскольку 16-разрядные процессоры устарели и были заменены 32-разрядными и 64-разрядными в общем случае, резервирование диапазонов адресного пространства памяти для ввода-вывода представляет меньшую проблему, поскольку адресное пространство памяти процессора обычно намного больше. чем необходимое пространство для всей памяти и устройств ввода-вывода в системе. Поэтому стало более практичным пользоваться преимуществами ввода-вывода с отображением в память. Однако, даже если адресное пространство больше не является серьезной проблемой, ни один из методов отображения ввода-вывода универсально не превосходит другой, и будут случаи, когда использование ввода-вывода с отображением портов все еще предпочтительнее.
Ввод-вывод с отображением памяти предпочтительнее в архитектурах на базе x86, поскольку инструкции, выполняющие ввод-вывод на основе порта, ограничены одним регистром: EAX, AX и AL - единственные регистры, в которые можно перемещать данные или из них, и либо непосредственное значение размера байта в инструкции, либо значение в регистре DX определяет, какой порт является портом источника или порта назначения передачи. Поскольку любой регистр общего назначения может отправлять или получать данные в или из памяти и устройств ввода-вывода с отображением в память, ввод-вывод с отображением в память использует меньше инструкций и может работать быстрее, чем ввод-вывод порта. AMD не расширила инструкции ввода-вывода порта при определении архитектуры x86-64 для поддержки 64-битных портов, поэтому 64-битные передачи не могут выполняться с использованием ввода-вывода порта.
Барьеры памяти
Поскольку кеши опосредуют доступ к адресам памяти, данные, записанные на разные адреса, могут достигать памяти периферийных устройств или регистров вне программного порядка, т. Е. Если программное обеспечение записывает данные по адресу, а затем записывает данные по другому адресу, буфер записи кеша не работает. гарантия того, что данные достигнут периферийных устройств в этом порядке. Любая программа, которая не включает инструкции по очистке кеша после каждой записи в последовательности, может увидеть непреднамеренные эффекты ввода-вывода, если кэш-система оптимизирует порядок записи. Записи в память часто можно переупорядочить, чтобы уменьшить избыточность или лучше использовать циклы доступа к памяти без изменения конечного состояния того, что было сохранено; тогда как те же оптимизации могут полностью изменить смысл и эффект записи в отображенные в память области ввода-вывода.
Недостаточная дальновидность в выборе областей ввода-вывода с отображением в память привела ко многим барьерам, связанным с объемом оперативной памяти, в старых поколениях компьютеров. Разработчики редко ожидали, что машины вырастут, чтобы полностью использовать теоретическую емкость ОЗУ архитектуры, и поэтому часто использовали некоторые старшие биты адресного пространства в качестве селекторов для функций ввода-вывода с отображением памяти. Например, барьер в 640 КБ в IBM PC и его производных связан с резервированием области от 640 до 1024 КБ (64 КБ сегментов с 10 по 16) для верхней области памяти . Этот выбор изначально имел небольшое влияние, но в конечном итоге ограничил общий объем оперативной памяти, доступный в 20-битном доступном адресном пространстве. 3 ГБ барьер и PCI отверстие подобные проявления этого с 32-битовых адресных пространств, обостренных деталей X86 процесса загрузки и MMU дизайна. 64-битные архитектуры часто технически имеют аналогичные проблемы, но они редко имеют практические последствия.
Примеры
Диапазон адресов ( шестнадцатеричный ) | Размер | Устройство |
---|---|---|
0000–7FFF | 32 КБ | баран |
8000–80FF | 256 байт | Ввод / вывод общего назначения |
9000–90FF | 256 байт | Звуковой контроллер |
A000 – A7FF | 2 КБ | ОЗУ видеоконтроллера / текстового дисплея |
C000 – FFFF | 16 КБ | ПЗУ |
Аппаратное обеспечение системы устроено так, что устройства на адресной шине будут отвечать только на определенные адреса, которые предназначены для них, в то время как все остальные адреса игнорируются. Это работа схемы декодирования адреса , которая устанавливает карту памяти системы. В результате карта памяти системы может выглядеть так, как в таблице справа. Эта карта памяти содержит пробелы, что также довольно часто встречается в реальных системных архитектурах.
Предполагая, что четвертый регистр видеоконтроллера устанавливает цвет фона экрана, ЦП может установить этот цвет, записав значение в ячейку памяти A003, используя свою стандартную инструкцию записи в память. Используя тот же метод, графики можно отображать на экране, записывая значения символов в специальную область ОЗУ видеоконтроллера. До появления дешевой оперативной памяти, которая позволяла использовать растровые дисплеи , этот метод символьных ячеек был популярным методом для компьютерных видеодисплеев (см. Текстовый пользовательский интерфейс ).
Основные типы декодирования адресов
Типы декодирования адресов, при которых устройство может полностью или не полностью декодировать адреса, включают следующее:
Полное (исчерпывающее) декодирование Отображение 1: 1 уникальных адресов в один аппаратный регистр (место в физической памяти). Включает проверку каждой строки адресной шины . Неполное (частичное) декодирование n: 1 отображение n уникальных адресов на один аппаратный регистр. Частичное декодирование позволяет ячейке памяти иметь более одного адреса, что позволяет программисту ссылаться на ячейку памяти, используя n разных адресов. Это также может быть сделано для упрощения аппаратного обеспечения декодирования за счет использования более простой и часто более дешевой логики, которая проверяет только некоторые адресные строки, когда требуется не все адресное пространство ЦП. Обычно само декодирование является программируемым, поэтому система может при необходимости переконфигурировать свою собственную карту памяти, хотя это более новая разработка и, как правило, противоречит цели удешевления. Синонимы: сворачивание, многократное отображение, частичное отображение, псевдоним адреса . Линейное декодирование Адресные строки используются напрямую, без какой-либо логики декодирования. Это делается с помощью таких устройств, как RAM и ROM, которые имеют последовательность адресных входов, и периферийных микросхем, которые имеют аналогичную последовательность входов для адресации банка регистров. Линейная адресация редко используется сама по себе (только когда на шине мало устройств, поскольку использование чисто линейной адресации для более чем одного устройства обычно приводит к потере большого количества адресного пространства), но вместо этого она сочетается с одним из других методов для выбора устройства или группа устройств, в которой линейная адресация выбирает один регистр или ячейку памяти.
Ввод-вывод порта через драйверы устройств
Linux предоставляет утилиту pcimem для чтения и записи адресов MMIO. Ядро Linux также позволяет отслеживать доступ к MMIO из модулей (драйверов) ядра с помощью средства отладки ядра mmiotrace . Чтобы включить это, ядро Linux должно быть скомпилировано с включенной соответствующей опцией. mmiotrace используется для отладки драйверов устройств с закрытым исходным кодом.
Читайте также: