X86 Address Space Controller?

3

Eu entendo que em x86, certos intervalos de endereços de memória física são mapeados para o BIOS, outros para RAM e outros para dispositivos de E / S.

Gostaria de saber qual componente de hardware é responsável por esse mapeamento / tradução.

Meu palpite é o chipset ou a MMU, ou talvez algum tipo de lógica de seleção de chip na própria CPU.

    
por artificer 18.06.2017 / 16:26

1 resposta

6

Está tudo dentro da CPU atualmente, desde que os processadores começaram a integrar o controlador de memória on-die. O "agente do sistema" embutido na hierarquia de memória da CPU mapeia endereços físicos para o controlador de memória ou para PCIe. (Ou para dispositivos MMIO internos da CPU, como a GPU integrada).

Dentro da CPU, basta descobrir se uma carga ou loja deve ir para a memória ou fora do chip e, em caso afirmativo, qual pista PCIe deve ser usada. Algumas das pistas PCIe vão diretamente da CPU para a GPU externa (se houver), mas outras são usadas como um link com o , não conectado diretamente a outras placas PCIe adicionais. O southbridge então seleciona qual dispositivo ele vai, incluindo coisas como a BIOS ROM.

Eu peguei essa imagem de um interessante artigo da ArsTechnica sobre o Skylake , mas originalmente da Intel. Os sistemas sem um cache do lado da memória eDRAM são os mesmos, exceto que o lado direito do agente do sistema se conecta diretamente ao MC (Controlador de Memória).

A Intel chamou essa parte da CPU de "agente do sistema" desde pelo menos a Sandybridge. Como AnandTech aponta , esse é um nome chique para o que costumava ser chamou o northbridge ou host bridge do chipset. ( Em sistemas mais antigos com controladores de memória externos, foi a northbridge que enviou cargas / lojas para DRAM ou PCI / PCIe conforme apropriado . Os chips atualmente têm apenas um chip principal, o southbridge.)

A AMD usou um controlador de memória integrado desde o K8 (o primeiro AMD64). A Intel utilizou um IMC desde o Nehalem, uma mudança em relação ao com / show / 2045/5 "> Core 2 . O link Nehalem possui diagramas dos componentes do sistema que se conectam entre si.

Observe também que "A MMU" também não é um componente de hardware separado; cada núcleo tem um hardware TLB e page-walking.

    
por 03.07.2017 / 19:09