pcie device remapping что это
Как поставить операционную систему на NVME SSD с устаревшей материнской платой. Часть вторая: модификация BIOS
Содержание
Содержание
В первой части нашего материала мы узнали, как использовать в качестве загрузочного накопители NVME на старых материнских платах, не поддерживающих нативную загрузку с NVME. Теперь же рассмотрим еще один, более «элегантный и правильный» способ — модификацию биоса.
За и против
Суть модификации в том, что мы добавляем в родной биос материнской платы EFI-модуль, или Option ROM, для поддержки NVME-накопителей.
Почему этот способ более правильный, чем использование менеджеров загрузки? Вы избегаете использования дополнительной программной прослойки: никакого увеличения времени загрузки, ковыряния в конфигурационных файлах, использования флешек или других носителей для размещения загрузчика. С точки зрения пользователя, процесс загрузки операционной системы (ОС) никак не меняется.
Но ничего идеального не бывает, так и здесь есть свои минусы. В первую очередь, это уровень подготовки пользователя. В зависимости от ситуации, могут потребоваться определенные знания и умения. Во-вторых, необходимость прошивки биоса, а это и наличие программатора в идеале, и риск превратить матплату в кирпич. Последнее, впрочем, дело поправимое, если есть программатор и резервный образ биоса с платы.
Тестовый стенд
Тестовый стенд с Legacy BIOS был взят из первой части:
Для работы с AMI UEFI тестовый стенд выглядел таким образом:
Award BIOS
На тестовой плате от Gigabyte установлено программное обеспечение от Award. Это обычный (non-EFI) BIOS, и его редактирование для добавления необходимого нам модуля — задача не самая простая.
Для нашей задачи нам потребуется:
Биос платы качаем на официальном сайте (пример, как это сделать есть, тут), OpROM и утилиту для корректировки его контрольной суммы скачиваем тут (спасибо vlo), CBROM берем тут. Разархивируем все архивы, складываем файлы в отдельную папку, в нашем случае это будет award в корне диска C.
Неприятный нюанс в модификации не UEFI биос состоит в том, что потребуется конфигурировать его под определенный диск, устанавливаемы вами. В нашем случае это Smartbuy E13T, и нам потребуется узнать его идентификаторы vid и did.
Самый простой вариант — загрузиться с подключенным диском в операционную систему (Win 10, Win 8.1) с поддержкой NVME SSD. Вы можете работать не только с уже установленной ОС, но и использовать Live usb.
Открываем диспетчер устройств: правой кнопкой мыши (ПКМ) на значке меню «Пуск» — диспетчер устройств. Или пишем «диспетчер устройств» в строке поиска Windows 10.
Идем в пункт «Контроллеры запоминающих устройств», ищем «Стандартный драйвер NVM Express». Жмем ПКМ — свойства.
Переходим на вкладку «Сведения», из списка «Свойство» выбираем «ИД оборудования».
Ниже в поле «Значение» появятся строки. Первые четыре знака, после «VEN_» — это vid, после «DEV_» — это did. Сохраняем (ПКМ на строке — Копировать) или переписываем эти значения, как на примере.
Следующим этапом будет внедрение полученных vid/did в OpROM. Открываем шестнадцатеричный редактор, мы будем использовать WinHex. Идем в меню File — Open и выбираем файл ss-950.bin из папки award.
В центральной части окна программы мы видим шестнадцатеричные (hex) значения.
Нам нужно заменить четыре (выделены) первых байта (одна пара — один байт) в третьей строке (offset 00000020).
Здесь прописаны vid и did, и их нужно заменить на данные нашего диска. Но тут есть один нюанс — нужно поменять байты местами, то есть vid тестового диска 1987 нужно записать как 87 19, а did — вместо 5013, записывается как 13 50. Данные уже идут в hex-формате, поэтому записываются как есть. Вот так получилось после замены.
Сохраняем под нужным именем (в примере ss950-2.bin): File – Save as.
Открываем командную строку от имени Администратора. В Windows 10 просто пишем в строке поиска cmd, нажимаем ПКМ — Запуск от имени Администратора.
В открывшемся окне переходим в подготовленную папку (в нашем случае c:\award) командой cd c:\award.
Сейчас нужно исправить контрольную сумму OpROM после нашего вмешательства утилитой cs_fix. Вводим команду cs_fix.exe ss950-2.bin, если все прошло успешно, получаем сообщение как на скрине.
Теперь наш OpROM готов для добавления в файл биоса, но сначала посмотрим содержимое биоса. Вводим CBROM195.EXE h67md2b3.f7 /D, где h67d2hb3.f7 — название файла биоса. Вывод команды — это список всех модулей (ROM), содержащихся в файле.
Добавляем ss950-2.bin в файл: CBROM195.EXE h67md2b3.f7 /pci ss950-2.bin. На проценты не обращаем внимание.
Проверяем, что все прошло успешно: CBROM195.EXE h67md2b3.f7 /D
Сравнив две выдачи, можно увидеть, что добавилась новая запись с номером 23. В крайнем правом столбце видно, что там находится наш файл ss950-2.bin.
Прошивка BIOS
Полученный файл переносим на флешку, отформатированную в файловую систему FAT32. Заходим в биос по клавише DEL.
Сбрасываем настройки, по умолчанию выбрав «Load Fail-Safe defaults». После перезагрузки заходим еще раз в биос, нажимаем F8 для запуска утилиты-прошивальщика Q-Flash.
Делаем резервную копию установленного экземпляра биоса. Для этого выбираем пункт Save BIOS to Drive.
Утилита должна распознать установленную флешку, выбираем ее, вводим имя для сохраняемого файла.
После окончания процесса сохранения выбираем Update BIOS from Drive, выбираем файл h67md2b3.f7.
Подтверждаем, что мы хотим прошить данный файл, и ждем окончания процесса.
Нажимаем Esc для выхода, подтверждаем.
Еще раз заходим в биос. Если все было сделано верно, то в меню «Advanced BIOS Features — Hard Disk Boot Priority» появится новое загрузочное устройство — нужный нам NVME SSD.
Выбираем его как основное загрузочное устройство и устанавливаем операционную систему.
AMI UEFI
В качестве носителя UEFI от AMI была выбрана материнская плата от Asus.
Как и для модификации Award, нам потребуется определенный набор инструментов:
В качестве утилиты для работы с UEFI будем использовать UEFITool от CodeRush. А непосредственно интегрируемый модуль — NvmExpressDxe_4.ffs. Для плат, где свободного места не хватает для внедрения указанного модуля, можно использовать его «облегченную» версию — NvmExpressDxe_Small.ffs. Из пакета AFU (в нашем случае потребовалась версия AFUWIN64_v3.05.04 с поддержкой ключа /GAN) нам нужен исполняемый файл под Windows — AFUWINx64.EXE, а также amifldrv64.sys для его работы.
Для упрощения процесса производим все манипуляции из Windows, развернутой на подопытной плате. Размещаем все файлы в одной папке для удобства.
Делаем резервную копию установленного биоса. Для этого запускаем командную строку (CMD) от имени Администратора и переходим в папку с файлами командой: cd c:\ami, где c:\ami — путь к папке с нашими файлами.
Далее делаем саму резервную копию: afuwinx64 backup.rom /O, где backup.rom — имя файла резервной копии (можете назвать на свой вкус), /O — ключ для создания бэкапа. «Reading flash … done» оповестит об окончании процесса.
Теперь можно отложить окно командной строки, можно даже не закрывать — скоро потребуется. Открываем UEFITool. Идем в меню File — Open image file.
Выбираем файл бэкапа, полученный ранее (backup.rom). Откроется окно программы, нажав на UEFI image, можно увидеть структуру выбранного файла.
Теперь нужно определить, куда вставить файл модуля. Из-за сложной структуры и специфических особенностей производителей плат, вручную найти DXE том, где хранятся модули, бывает проблематично. Поэтому проще всего воспользоваться поиском.
Открываем меню File — Search или воспользуемся сочетанием клавиш Ctrl+F. В открывшемся окне выбираем вкладку Text, вводим в поле DXE, проверяем, что активирован чек-бокс Unicode и жмем «OK».
В нижней части окна, именуемой «Messages», будет выведен список совпадений.
Сделайте двойной клик левой кнопкой мыши на любой из записей и попадете в раздел, где было найдено совпадение. Ориентируемся по полю «Subtype»: если видите там «DXE driver», то вы в верной секции.
Можно также ориентироваться на модуль «CSMCORE».
Нас же интересует самая нижняя запись, после которой идет «Volume free space». В данном случае это запись с подтипом «Freeform», но это может быть и DXE driver.
Встаем на нее, жмем правой клавишей мыши и выбираем пункт Insert after.
И выбираем нужный для интеграции модуль.
Обратите внимание, что модуль должен оказаться в самом конце списка, прямо перед Volume free space. Определить его можно по имени модуля в столбце «Text».
Сохраняем полученный файл, вводим нужное имя модифицированного файла биоса (в примере mod.rom).
После того, как вы нажмете кнопку «Сохранить», вас спросят о том, хотите ли вы открыть измененный файл. Соглашаемся.
Откроется заново структура файла. Идем в раздел, куда мы вставляли модуль, и проверяем, что он там сохранился. Раскроем его запись и удостоверимся, что там есть обе (image и interface) секции.
Если все в порядке, то биос готов для прошивки.
Прошивка UEFI
Как и чем прошить биос зависит от материнской платы.
Мы же будем прошивать биос с помощью уже использованного AFUWIN. Переходим обратно в командную строку. Сначала прошиваем оригинальный файл биоса с сайта (той же версии, что и установленный на плате) командой afuwinx64 6701.cap, где 6701.cap — имя файла оригинального биоса (переименован для простоты ввода).
Когда все этапы успешно выполнятся, сразу прошиваем модифицированный биос командой afuwinx64 mod.rom /GAN, где mod.rom — файл биоса с интегрированным модулем поддержки NVME, а /GAN — ключ для прошивки. Без данного ключа на этой плате биос прошиваться категорически отказывался.
После окончания прошивки выключаем ПК, вставляем наш SSD и проверяем, доступен ли он в списке загрузочных устройств биос.
Если бы наша тестовая плата поддерживала USB Flashback, то можно было бы просто модифицировать файл, скачанный с сайта, переименовать его в соответствии с требованиями USB Flashback (для этого можно воспользоваться утилитой BIOS Renamer for USB BIOS Flashback), закинуть файл на флешку и прошиться по инструкции к плате. Это считается самым удобным и правильным вариантом для плат Asus.
Мы рассмотрели два варианта добавления поддержки загрузки с NVME дисков: для Award (Legacy) BIOS и AMI UEFI. Постарались осветить нюансы и проблемы, с которыми встретились в процессе модификации. Но поскольку производителей много, и каждый может иметь свои специфичные особенности биоса, невозможно охватить все нюансы по данной теме.
Чем отличается дорогой SSD M.2 от дешевого
Содержание
Содержание
Выбирая SSD-накопитель формата М.2 для персонального компьютера порой задаешься вопросом: «А нужно ли переплачивать за более дорогую модель или взять дешевую такого же объема?». В поиске ответа на этот вопрос мы рассмотрим потребительские SSD с интерфейсом подключения по PCI-E.
Данный интерфейс имеет несколько поколений (версий), которые отличаются между собой пропускной способностью.
Интерфейс
Интерфейс PCI-E 3.0 x2
Его пропускная способность менее 2 Гб/с — это связано с тем, что одна линия третьего поколения PCI-E способна пропустить данные со скоростью до 1 Гб/с (985 Мб/с). Данный интерфейс уже не часто встретишь на рынке SSD-накопителей, в основном он используется в недорогих моделях.
Интерфейс PCI-E 3.0 x4
Он имеет 4 линии передачи данных. Максимальная скорость передачи составляет чуть меньше 4 Гб/с. В настоящее время это один из самых популярных интерфейсов у PCI-E SSD-накопителей.
Интерфейс PCI-E 4.0 x4
На сегодняшний день это один из самых быстрых интерфейсов для передачи данных. Одна линия четвертого поколения PCI-E способна передать данные с максимальной скоростью до 2 Гб/с, а 4 линии — до 8 Гб/с (7,88 Гб/с). Данный интерфейс используется на одних из самых дорогих SSD-накопителей.
Скорость передачи данных у SSD-накопителей может ограничиваться интерфейсом подключения на материнских платах. На материнских платах есть специальное гнездо для накопителей формата M.2, который использует PCI-E линии с процессора и управляются чипсетом материнской платы.
Например, SSD-накопитель с логическим интерфейсом PCI-E 4.0 x4 и объемом на 500Гб на PCI-E 4.0 x4 показывает максимальную скорость чтения — 6900 Мбайт/сек, а записи — 5000 Мбайт/сек. На PCI-E 3.0 x4 его максимальная скорость чтения и записи будет приблизительно 3940 Мбайт/сек. Поэтому если вы не планируете в ближайшее время менять материнскую плату с большим числом линий, а также с более новыми поколениями совместимых интерфейсов, то брать SSD с более быстрым PCI-E нет смысла.
С помощью программы CrystalDiskInfo можно узнать текущей режим подключения в строке «Режим передачи».
Контроллеры
Помимо PCI-E интерфейса SSD-накопители отличаются между собой контроллером — он обеспечивает обмен данными с шиной PCI-E, а так же управляет операциями по чтению и записи в ячейках памяти. От того насколько эффективно контроллер осуществляет эти команды и зависит быстродействие всего SSD-накопителя.
В контроллере важно количество ядер и каналов. Чем больше ядер и каналов, тем лучше производительность и скорость SSD-накопителя при чтении и записи информации, следовательно, цена на данный накопитель будет выше, чем у более слабого контролера.
Модель контролера
PS5007-E7
PS5008-E8
PS50012-E12
Шина
PCIe Gen3x4
PCIe Gen3x2
PCIe Gen3x4
Поддерживаемая память
MLC/TLC
MLC/TLC
QLC/TLC
Кол-во ядер CPU
Потоков
Макс. скорость чтения, ГБ/с
Макс. скорость записи, ГБ/с
Чтобы узнать какой контролер именно в вашем SSD-накопителе достаточно заглянуть в описание характеристик, так же можно посмотреть на самом SSD-накопителе маркировку контролера.
Фирм, выпускающих контролеры, довольно много. Но самые известные можно перечислить по пальцам: Silicon Motion, Phison, Realtek, Samsung.
Тип памяти
Немаловажным аспектом при выборе SSD-накопителя является тип памяти. На сегодняшний день существует четыре типа памяти:
SLC «Single Level Cell» — на один блок помещается 1 бит информации. Данный тип памяти используется на дорогих SSD-накопителях и выдерживает около 100 тыс. перезаписей.
MLC «Multi Level Cell — на один блок помещается 2 бита информации. Данная память используется на высокоскоростных SSD-накопителях, которые выдерживают около 10 тыс. перезаписей, такие SSD существенно дешевле, чем память на SLC.
TLC «Triple Level Cell» — в нем на один блок записывается 3 бита информации. TLC память используется в подавляющем количестве накопителей. Его ресурс приблизительно 3–5 тыс. перезаписей.
QLC «Quad Level Cell» — новый тип памяти из четырех представленных. На один блок записывается 4 бита информации. Память QLC является самой дешевой на сегодняшний день и ее ресурс около 1 тыс. перезаписей.
Бренд
Если мы сравниваем именитые бренды, которые зарекомендовали себя на рынке, с неизвестными брендами с «поднебесной», то можно сказать многое. У именитого производителя SSD работают по передаче данных на заявленной скорости, имеют гарантию, их техническое описание соответствует реальности. Неизвестные бренды не всегда могут похвастаться этим: их скорость передачи данных может не соответствовать заявленной, а компонентная база SSD-накопителя собирается на неизвестных моделях.
Одним из самых популярных брендов SSD-накопителей является Samsung. Связано это с тем, что компания сама производит компонентную базу для своих накопителей, а так же обеспечивает максимальную скорость передачи данных и надежность на своих SSD-накопителях, но не стоит забывать и о других брендах. Например, Western Digital, его SSD- накопителем WD Black SN850 может с легкостью потягаться с Samsung 980 PRO по скорости передачи данных на чтении и записи, а другие производители SSD-накопителей могут не показывать столь выдающихся результатов, но при этом быть столь же надежными и стоить намного дешевле.