Por que os processadores Ryzen (ou qualquer outro processador) precisam de um driver?

2

Eu tenho lendo hoje sobre os novos processadores AMD Ryzen que não são suportados pelo Windows 7 pelos drivers e assim por diante.

Por que um processador precisa de um driver para ser executado ou pode decidir qual sistema operacional executar ou não?

Eu acho que os processadores são projetados para estar em conformidade com um padrão de instruções (digamos x86), e que qualquer sistema operacional compilado para essa instrução pode ser executado sobre ele.

Por que agora o processador escolherá o que executar e o que não? E há casos semelhantes com distribuições Linux? Como um processador que pode rodar o Ubunut, mas não o Fedora? Parece insano para mim.

    
por Ghasan 09.02.2017 / 16:33

2 respostas

2

I though processors are designed to conform to a standard of instructions (say x86), and that any OS that is compiled to that instruction can run on top of it.

Há uma certa categoria de hardware / recursos que se enquadram nos dispositivos "chipset".

Nos anos 80, o CPU era um componente de muitos chips discretos em uma placa-mãe, e havia muitos outros componentes (chips separados) que, apesar de não serem tecnicamente necessários para a própria CPU funcionar, formaram o "hardware base" de um sistema - exemplos de dispositivos são o controlador de interrupção programável, o temporizador de intervalo programável e o controlador DMA. Esses dispositivos fazem parte da "infraestrutura física" do sistema e permitem que a CPU interaja com o mundo externo de maneira muito mais fácil - e se esse hardware for padronizado, você tem uma plataforma.

Tecnicamente, hardware desse tipo são "periféricos", pois não são incorporados à CPU, mas você não tem a opção de removê-los. Eles podem ser sempre supostamente existentes - e assim eles se tornaram parte da "plataforma PC padrão" por convenção. Estes acabaram se consolidando em um chip por vários fornecedores, mas ainda era chamado de "chipset" - e outros hardwares tradicionalmente discretos, como controladores IDE, controladores VGA também começariam a ser incluídos.

Agora, na era moderna, a maioria dos hardwares do tipo "chipset" são versões avançadas de hardware da plataforma PC legada (APIC, HPET, controlador de barramento PCI-E, controlador de memória, controladores USB e SATA, etc.), mais coisas novas como gerenciamento de energia, controle de energia, integração com uma plataforma do tipo "Management Engine". A maior parte é incorporada na CPU agora; em breve, chegaremos ao ponto em que uma placa-mãe típica terá um soquete de CPU, slots PCI-E e pouco mais (existem sistemas reais como este agora). Com a Intel e a AMD integrando gráficos em suas CPUs, os gráficos são obviamente uma grande parte do chipset agora.

Mas o hardware do chipset, na medida em que é configurável / programável, ainda aparece para a CPU no exterior como dispositivos externos tradicionais ou através de um mecanismo de endereço chamado "Model Specific Registers", embora fisicamente o hardware esteja agora parte da CPU.

Portanto, os drivers ainda são necessários, como se fosse necessário com qualquer dispositivo externo. A AMD está optando por não fazer / liberar drivers para o Windows 7.

O Windows ainda inicializará, é que várias coisas que são dispositivos de chipset podem aparecer como dispositivos ausentes no Gerenciador de Dispositivos. Isso pode incluir coisas como sensores térmicos, dispositivos PCI que conversam com o hardware gráfico, etc. Os drivers de chipset Intel frequentemente substituem e implementam melhor gerenciamento de energia / térmica do que o BIOS (eu ouvi) e os drivers de chipset da AMD podem fazer o mesmo.

Alguns nos comentários estão referenciando coisas como 3d-Now, MMX, SSE, SSE2, etc. Estas são extensões para o conjunto de instruções x86, e nem todas as CPUs têm todas as extensões. Drivers não são necessários para acessá-los. O programa que deseja usá-los precisa verificar se a CPU pode suportá-los e isso é feito facilmente com uma instrução CPUID .

    
por 09.02.2017 / 17:03
0

Além da resposta anterior, gostaria de acrescentar que, embora um driver talvez não seja necessário para o sistema operacional funcionar, é certamente benéfico se o sistema operacional estiver ciente de como a CPU foi projetada para funcionar de maneira ideal. / p>

Por exemplo, no caso de Ryzen, a cpu é construída a partir de um número variável de módulos ccx com até 4 núcleos / 8 threads e 8 MB de cache L3 cada e cada núcleo tem seu próprio cache L1 e L2 dedicado. A comunicação entre os núcleos em cada ccx é relativamente rápida, enquanto a comunicação entre núcleos em diferentes ccxes é lenta. A partir disso, podemos ver que é ideal programar processos / threads de uma maneira que minimize a comunicação entre os ccxes e primeiro utilizando 1 thread por núcleo. Isso oferece um desempenho muito melhor do que enviar segmentos de um ccx para outro ou colocar dois threads com muitos recursos no mesmo núcleo.

    
por 30.04.2017 / 13:58