Зачем процессорам Ryzen (или любому другому процессору) нужен драйвер?

Я читал сегодня о том, что новые процессоры AMD Ryzen не поддерживаются в Windows 7 драйверами и так далее.

Почему процессору нужен драйвер для запуска, или он может решить, какую ОС запускать или нет?

Хотя процессоры спроектированы так, чтобы соответствовать стандарту инструкций (скажем, x86), и что любая ОС, скомпилированная с этой инструкцией, может работать поверх нее.

Почему теперь процессор будет выбирать, что запускать, а что нет? И есть ли подобные случаи с дистрибутивами Linux? Как процессор, который может работать Ubunut, но не Fedora? Это кажется мне безумным.

2 ответа

Решение

Хотя процессоры спроектированы так, чтобы соответствовать стандарту инструкций (скажем, x86), и что любая ОС, скомпилированная с этой инструкцией, может работать поверх нее.

Существует определенная категория аппаратных средств / функций, которые подпадают под зонтик "чипсетных" устройств.

В 80-х годах ЦП был одним из компонентов множества дискретных микросхем на материнской плате, и было много других компонентов (отдельных микросхем), которые, хотя технически не требовались для функционирования самого ЦП, тем не менее формировали "базовое оборудование" системы. - примерами устройств являются программируемый контроллер прерываний, программируемый интервальный таймер и контроллер DMA. Эти устройства являются частью "физической инфраструктуры" системы и позволяют процессору намного проще взаимодействовать с внешним миром - и если это оборудование стандартизировано, у вас есть платформа.

Технически, аппаратные средства этого типа являются "периферийными устройствами", поскольку они не встроены в процессор, но у вас нет возможности их удалить. Их можно всегда считать существующими - и, таким образом, они стали частью "стандартной платформы ПК" по соглашению. В конечном итоге они были объединены в один чип различными поставщиками, но все еще назывались "чипсетами" - и из других традиционно дискретных аппаратных средств, таких как контроллеры IDE, начнут включаться и контроллеры VGA.

Сейчас, в современную эпоху, большинство аппаратных средств типа "набор микросхем" теперь представляют собой усовершенствованные версии устаревшего аппаратного обеспечения для платформы ПК (APIC, HPET, контроллер шины PCI-E, контроллер памяти, контроллеры USB и SATA и т. Д.), А также новые вещи, такие как управление питанием, управление питанием, интеграция с платформой типа "Механизм управления". Большая часть этого теперь встроена в процессор; возможно, мы скоро достигнем точки, когда на типичной материнской плате будет гнездо для процессора, слоты PCI-E и многое другое (сейчас существуют настоящие системы, подобные этой). Поскольку Intel и AMD интегрируют графику в свои процессоры, графика, вероятно, сейчас, вероятно, составляет большую часть чипсета.

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

Таким образом, драйверы по-прежнему необходимы, как это было бы необходимо для любого внешнего устройства. AMD решает не делать / выпускать драйверы для Windows 7.

Windows по-прежнему будет загружаться на нем, просто различные устройства, являющиеся устройствами с чипсетом, могут отображаться как отсутствующие устройства в диспетчере устройств. К ним могут относиться такие элементы, как термодатчики, устройства PCI, которые взаимодействуют с графическим оборудованием, и т. Д. Драйверы чипсетов Intel часто переопределяют и реализуют лучшее управление питанием / температурой, чем BIOS (как я слышал), а драйверы чипсетов AMD могут делать то же самое.


Некоторые в комментариях ссылаются на такие вещи, как 3d-Now, MMX, SSE, SSE2 и т. Д. Это расширения набора команд x86, и не все процессоры имеют все расширения. Драйверы не нужны для доступа к ним. Программа, желающая использовать их, должна проверить, поддерживает ли их процессор, и это легко сделать с помощью CPUID инструкция.

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

Например, в случае с Райзеном процессор построен из различного числа модулей ccx с до 4 ядрами / 8 потоков и 8 МБ кэш-памяти L3 каждый, и каждое ядро ​​имеет свой собственный выделенный кэш L1 и L2. Связь между ядрами в каждом ccx относительно быстрая, в то время как связь между ядрами в разных ccx является медленной. Отсюда видно, что оптимально планировать процессы / потоки таким образом, чтобы свести к минимуму связь между ccxes и сначала использовать 1 поток на ядро. Это дает гораздо лучшую производительность, чем перераспределение потоков от одного ccx к другому или размещение двух ресурсоемких потоков в одном ядре.

Другие вопросы по тегам