Talvez eu não esteja pensando sobre isso corretamente, mas quando você dá à CPU um comando como Multiply Registers (MR) R2,R4, como ela decide quais portas lógicas usará, são apenas as primeiras portas disponíveis ou há algo Não estou ciente do que está acontecendo nos bastidores. Eu entendo que uma CPU tem milhões de portas lógicas, então como ela gerencia seu uso corretamente?
Responder1
Sua pergunta é realmente mais da área de engenharia elétrica do que de ciência da computação, então está um pouco fora do assunto, mas vou ver o que posso fazer.
Sua instrução de multiplicação seria enfileirada em umUnidade de Processamento Aritméticoem uma de suas conexões de entrada/saída.
A ULA usaLógica Combinacionalem seu layout, de forma que a eletricidade flua por todo o circuito e sua saída varie de acordo com a entrada recebida. Ele não seleciona um conjunto de portas para usar, todas as portas estão recebendo sinal, mas o layout do circuito cria uma transformação reproduzível do sinal de entrada que transporta o resultado. Observe que, neste nível, você está trabalhando tanto com sinais analógicos quanto com bits digitais, de modo que a eletricidade flui como água através de uma rede de canos e o circuito permite mais ou menos água por diferentes caminhos.
A unidade de execução que aciona a instrução envia a ALU para processamento e, no próximo tick do clock, espera que o resultado esteja disponível em um dos registradores de saída da ALU. veja mais detalhes aqui:https://en.wikipedia.org/wiki/Arithmetic_logic_unit#Circuit_operation
Responder2
Simplificando, é o comando que você está executando que determina os estados do transistor e, portanto, as portas lógicas em uso. Ele verá uma série de bytes e essas séries estão efetivamente configurando o estado inicial do processador. É muito mais complicado em processadores modernos com múltiplas unidades de execução, mas esta é a essência.
Quando o processador for inicializado, ele estará no endereço 0 e colocará esse endereço no barramento de endereços. Ele estará então aguardando que os bytes no endereço 0 apareçam em suas entradas de dados. Isso informará ao processador o estado inicial em que ele precisa estar, para que ele possa colocar o próximo local de endereço no barramento de endereços e aguardar o próximo byte e assim por diante.
Em breve ele terá um comando completo e os bytes necessários para se multiplicar. Todos esses bytes irão efetivamente “configurar” o núcleo do processador para a tarefa que precisa ser executada.
Depois de inserir o comando completo junto com os bytes de dados necessários colocados no registro, ele poderá continuar com o comando necessário e, após percorrer a série de transições lógicas necessárias, produzirá o resultado.