2

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

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

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

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

2 ответа2

2

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

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

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

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

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

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

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

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


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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .