1 pontos por GN⁺ 2024-09-21 | 2 comentários | Compartilhar no WhatsApp

Início

  • Em 2012, ao executar Linux em um microcontrolador de 8 bits (AVR), foi estabelecido um recorde mundial de rodar Linux na máquina com as menores especificações
  • Em 2023, surgiu um projeto que inicializa o Linux no MOS 6510, com especificações ainda mais baixas que as do AVR
  • O Intel 4004 foi o primeiro microprocessador comercial do mundo, e este projeto começou para estabelecer um novo patamar mínimo de especificações com esse chip de 4 bits

4004

  • O 4004 opera em unidades de 4 bits e foi desenvolvido principalmente para calculadoras
  • Não possui operações lógicas; existem basicamente apenas instruções ADD e SUB
  • Método de operação único usando a flag de carry
  • Possui 16 registradores de 4 bits, contador de programa de 12 bits e uma pilha de hardware de 4 níveis
  • Exige uma velocidade mínima de clock e não tem suporte a interrupções
  • Existem algumas instruções capazes de realizar operações de memória diretamente

Fluxo de controle

  • Chamada e retorno de sub-rotinas usando a pilha de hardware
  • Existem instruções de salto condicional, e eventos externos podem ser detectados pelo pino TEST
  • Usa o conceito de páginas de código para gerenciar um espaço de código de 4096 bytes

Memória e I/O

  • O 4004 não processa instruções de memória diretamente; os chips de memória fazem isso
  • Suporta até 8 bancos de RAM, e cada banco é composto por 4 chips 4002
  • O 4001 inclui 256 bytes de ROM e uma porta de I/O de 4 bits
  • O 4265 é um dispositivo de I/O genérico com 4 portas de I/O de 4 bits

4008, 4009, 4289

  • O 4008 e o 4009 foram projetados para permitir interface com chips de memória comuns
  • O 4289 é um chip que combina o 4008 e o 4009, capaz de se comunicar com níveis de sinal de 5V

Uso de memória e nibble de estado

  • O comando DCL é usado para selecionar o banco de memória
  • Cada banco de RAM é composto por 4 chips 4002, e cada chip tem 16 nibbles endereçáveis e 4 nibbles de estado

Resumo do GN⁺

  • Este projeto ajuda bastante a entender como funcionavam microprocessadores iniciais como o Intel 4004
  • Mostra como superar o design único e os recursos limitados do 4004
  • Oferece a oportunidade de vivenciar as limitações dos primeiros microprocessadores em comparação com microcontroladores modernos
  • Um projeto semelhante em funcionalidade é o de inicializar Linux no MOS 6510

2 comentários

 
y15un 2024-09-21

Então o autor original é aquele sujeito que desta vez foi retirado do palco na DEF CON por causa do badge. Não vou tomar partido, mas a habilidade dele é realmente impressionante.

 
GN⁺ 2024-09-21
Comentários do Hacker News
  • Eu achava que o NetBSD era lento em um m68030 de 15 MHz, mas este projeto é realmente impressionante

    • No fim dos anos 80 e início dos 90, os computadores começaram a ter armazenamento persistente, espaço de endereçamento aberto e MMU, chegando à computação moderna
    • Um Amiga 3000 ou um computador com i80486 também pode executar as mesmas funções de um computador moderno
    • Dmitry mostra o quanto dá para flexibilizar a definição de "funcional"
  • Quero ampliar meu conhecimento a ponto de conseguir entender este projeto

    • Entendi completamente a parte "Section 14.b & 14.c - Getting the data..."
    • Processei arquivos de 400K por 4 anos (cerca de 275 fotos por dia)
    • Apesar de haver muito poder de processamento, armazenamento e rede, apps de sincronização de mídia travam ou sofrem com sincronização lenta
    • O AirDrop falha e falta uma função de UI de "Select-All"
  • Gosto de exemplos com AVR, e agora surgiu um novo exemplo

    • Considerando a frequência e o consumo de energia, fico curioso sobre quanta RF isso emite
    • A palavra "soubroutine" provavelmente é um erro de digitação
  • Este projeto não saiu barato, obrigado aos colecionadores do Ebay

    • Eu teria escolhido VFD em vez de LCD; em compilações longas, o VFD pode se deteriorar
  • Projeto incrível

    • Dá para ver o que está rodando no momento nos bits altos do PC
    • P.S.: carrega o kernel mais rápido do que o IPMI de um servidor pela internet
  • Levaram 9 dias para gravar o vídeo, 4 horas por segundo emulado

    • Fico me perguntando por que usar Windows 95
  • Este tipo de projeto merece um Nobel

  • Leitura muito interessante

    • Eu sabia um pouco sobre o 4004, mas aquele nível de obscuridade foi surpreendente
    • Fiquei me perguntando se daria para fazer uma CPU com a mesma quantidade de transistores
    • 8 bits tornam a programação muito mais fácil
    • Obrigado por documentar tão bem o trabalho
  • Máquinas virtuais (Z-machine ou JVM) funcionavam nos primeiros microcomputadores

  • Na seção "Why MIPS?":

    • Algumas têm modos de endereçamento lentos (RISCV)
    • Fico me perguntando qual é o problema com os modos de endereçamento do RISC-V