Muito bom o conteúdo. 👏👏👏
Só queria fazer uma pequena correção:
Mas o que exatamente é a ISA? É o conjunto de instruções que um processador de computador entende. É a única coisa que o hardware é capaz de processar. Talvez o ápice da engenharia humana. Ela literalmente nos dá o poder de ensinar uma pedra a pensar.
Na verdade o conjunto de instruções se chama instruction set. A Instruction Set Architecture (ISA) é uma especificação de arquitetura de computador abstrata, que determina a arquitetura do ponto de vista de execução do software (diferentemente de microarquitetura que determina como o hardware é implementado).
Engloba também, obviamente, a definição do conjunto de instruções mas não apenas isto. Registradores, flags, configurações, modos de operação, proteções de memória, níveis de acesso, paginação, interrupções, exceções, gerenciamento de tarefas, gerenciamento de múltiplos cores, processadores lógicos, cache de memória etc., etc., etc. tudo isso faz parte da especificação da ISA.
Ou seja, tudo o que o manual da arquitetura especifica faz parte da ISA e não somente o conjunto de instruções.
Aproveitando o assunto eu deixo três recomendações para a galera:
- Se quiserem saber como processadores modernos são feitos hoje em dia, pesquisem sobre linguagens de descrição de hardware. Hoje os processadores são complexos demais para serem feitos manualmente "porta lógica por porta lógica", é humanamente impossível. Por isso se utiliza linguagens de descrição de hardware para esta finalidade. E quem quiser uma solução barata para fazer seu próprio processador caseiro usando uma linguagem de descrição de hardware, pesquisem sobre FPGA. Vejam o Tang Nano, vocês encontram no AliExpress por menos de 100 reais.
- O jogo Turing Complete na Steam é ótimo para estudar esse tipo de coisa. Nele você vai criar um processador do zero, incluindo as próprias portas lógicas que você também precisará criar (o jogo só te dá a porta NAND, o resto você tem que fazer). Esse jogo é muito massa
- Eu fiz uma apresentação no YouTube há uns meses atrás falando sobre introdução ao baixo nível. Explico, inclusive, como o processadores multicore funcionam e como o código de máquina funciona. Focado na arquitetura x86-64 mas os conceitos se aplicam a qualquer arquitetura. Quem tiver interesse em assistir: https://www.youtube.com/live/E7TEz60UA90?si=RjOxTBmLuZCxOm_U