Eu gostaria de construir o computador mais simples possível. Eu não me importo com velocidade ou armazenamento, na verdade, ter velocidade lenta e armazenamento baixo é uma enorme vantagem, pois quero construí-lo a partir de transistores (idealmente, relés!) E quero um LED para cada estado. Ele será programado através de um Raspberry Pi que hospedará uma câmera para que você possa ver cada ciclo de clock em execução (sim, ele será executado em Hz e não em GHz). Será um design aberto com a intenção de que as escolas possam comprar as peças, entender e melhorar o design. Portanto, o orçamento total deve estar bem abaixo de 400 libras, de preferência cerca de 100 libras.
Eu pesquisei isso por muitos anos e tenho boas idéias para a CPU (registros mínimos, microcódigo em switches DIP e operações lógicas / aritméticas seriais de bits para reduzir a contagem de transistores). O que não consigo descobrir é como obter a memória, gostaria de 1024 a 8096 bits.
O melhor que posso apresentar são dois decodificadores de um bit de 6 bits que dão acesso a uma grade de capacitores de 64 x 64. Ou eles têm uma carga neles ou não, e a leitura reforçaria esse estado. Não haveria LEDs nos capacitores, pois a atualização dessa 'DRAM' seria da ordem de minutos (o que é uma pena, pois essa seria a única parte a não mostrar o estado).
Outras idéias incluem alguma forma de unidade de fita (mecanismo compacto de cassete: ótimo armazenamento, muito complexo, sem busca), memória de tambor (a fita em torno de um feijão pode: difícil demais para o funcionamento da mecânica), memória mecânica (roda da bicicleta e rolamentos de esferas: erros de bits demais), memória do núcleo (núcleos grandes de ferrite duro: ainda é muito complicado acertar na escala necessária), fita / cartão (ainda podemos comprar os leitores de fita), disco rotativo com orifícios perfurados em ordem binária e alguns magnéticos memória para armazenamento (muito complexa para construir).
Por fim, o objetivo é publicar um design que possa ser construído em um ano letivo em que todas as partes de uma CPU e memória sejam 'visíveis', para que você possa ver a instrução buscar, decodificar em microcódigo e endereçar todos os recursos de decodificação / registro / lógica / endereço. acontecendo ao longo de minutos.
Se alguém tiver idéias para uma memória realmente barata (<< 100 libras), onde fica claro exatamente como funciona, informe-me.
Tony
O estado atual do jogo está em http://www.blinkingcomputer.org/
fonte
Respostas:
Muitas pessoas construíram computadores com transistores, CIs, relés e até tubos de vácuo discretos. Eles variam de máquinas de 4 bits até 32 bits. Os 4-bitters, é claro, serão os mais simples que você pode criar e fazer qualquer coisa. O primeiro microprocessador foi o 4004 de 4 bits da Intel .
Começaria pesquisando no Google por " computadores domésticos de 4 bits " (sem as aspas).
Aqui está uma placa de um computador transistorizado de 4 bits:
No que diz respeito à memória, alguns desses projetos que, de outra forma, usam transistores discretos, "enganam" e usam chips SRAM. Eles são incrivelmente baratos para quantidades moderadas de memória, 32KB custa US $ 3,28 e não requerem relógios nem atualizações.
Mesmo que o resto do seu computador use relés, usá-los para a memória será proibitivamente caro.
Se você consegue sobreviver com 1K bits, pode construir um com flip-flops transistorizados; 2048 2N3904 custará 3 ¢ cada (US $ 60 no total, mais os outros componentes que serão ainda mais baratos - resistem por 1/2 centavo etc.). Você pode comprar PCBs por US $ 10 cada e, em seguida, contratar uma criança para enchê-los.
Retransmitir computadores data todo o caminho de volta para o final dos anos 1930, e um dos primeiros foi o Harvard Mark I . É onde o nome daí que vem arquitetura Harvard (espaço e dados separados do programa, em comparação com a arquitetura von Neumann que combina os dois).
O computador de revezamento de fabricação caseira mais famoso é o de Harry Porter.
Confira os vídeos do computador em execução. Lembra-me de uma antiga central telefônica eletromecânica.
Aqui está uma parte de outro computador de retransmissão caseiro chamado Zusie :
Muitas luzes piscando.
E finalmente, aqui está um link para um vídeo de um somador de 4 bits, composto por 24 relés. Adicionadores como este são o coração da ALU (unidade lógica aritmética) em um computador.
fonte
Se você quer uma memória simples , não procure mais do que um flip-flop . Com dois transistores e quatro resistores, você pode ter um pouco de memória. Você também pode fazer um flip-flop com dois portões NOR com acoplamento cruzado ou apenas comprar um IC com um monte de flip-flops nele.
De fato, o cache muito rápido da CPU é basicamente um monte de chinelos, integrados à CPU.
fonte
Concordo que seria muito legal ter um sistema de computador completo com um LED para cada estado, visível ao olho humano.
O computador de retransmissão TIM 8 usa 8 capacitores, 2 diodos e um relé SPDT por byte em seus 12 bytes de memória principal RAM (memória de dados). (O TIM 8 possui 16 bytes de memória variável se você incluir registradores).
O computador de retransmissão TIM 8 usa fita perfurada para a memória do programa.
É possível substituir esses diodos por LEDs, para que haja um breve pulso mostrando os dados entrando ou saindo de um byte de RAM? Talvez se o DRAM do sistema atualizar com rapidez suficiente, varrendo todos os bytes de RAM, todos os bits de estado parecerão visíveis nesses LEDs (embora tecnicamente apenas um byte de LEDs seja ativado a qualquer momento). (Esses teriam que ser LEDs de alta corrente se quisermos CARREGAR e ARMAZENAR dados desses capacitores para registros baseados em relé).
É possível colocar um resistor e um LED em cada capacitor de armazenamento de bits, mostrando simultaneamente todos os bits de estado? (Esses teriam que ser LEDs de baixa corrente e capacitores fisicamente grandes, se quisermos que o capacitor retenha os dados por tempo suficiente para uma taxa de atualização razoável. Alguns LEDs podem ser facilmente vistos com apenas 1 mA de corrente. Com uma atualização de 1 segundo capacitores de ciclo e (adivinhação) carregados inicialmente a 12 V, embora (adivinhação) uma carga de 7 V no capacitor seja suficiente para carregar o hardware a jusante, então o capacitor precisa de uma classificação de C ~ = i * t / V = 1 mA * 1 s / (12 V - 7 V) = 200 uF.).
Obviamente, isso será muito maior e levará mais trabalho humano para montar do que praticamente qualquer memória principal baseada em circuito integrado.
fonte
Por que você não usa apenas uma CPU simples de 8 bits (por exemplo, 6502) e uma quantidade muito pequena de memória (registradores de CPU, RAM de IC e uma quantidade muito pequena de armazenamento externo (por exemplo: FD, HD ou disco flash, etc.) .) e, em seguida, basta explicar com os slides o seguinte:
Se você deseja manter o dispositivo o mais simples e barato possível, use um sistema de desenvolvimento de microcontroladores como seu sistema básico ou até mesmo um Arduino é simples e barato o suficiente. Nenhum dos alunos vai construir um relé simples ou um computador com tubo de vácuo - nem alguém realmente quer que eles façam isso. Eles devem começar com um bom livro e um Arduino para o entendimento básico da programação. Depois, se eles quiserem ler / controlar dispositivos externos, poderão se aprofundar em programação específica ou em engenharia.
Aqui está um bom projeto para você considerar para obter idéias:
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS
fonte
Eu concordo que seria muito legal ter um sistema de computador completo com um LED para cada estado, visível ao olho humano, em vez de escondido dentro de uma misteriosa caixa preta.
Você pode considerar o uso de um barramento de memória paralelo de bits mais ou menos padrão - talvez algo como o STEbus (barramento IEEE-1000) .
Você pode considerar o uso de vários ICs como 74HC273 ou 74LS373 ou 74HC564 para armazenar os dados, para que o estado atual dos dados dentro do chip esteja sempre visível nos LEDs conectados aos pinos de saída paralela. Em seguida, use buffers octais de três estados (como o 74HC241 ou 74LS245) ou muxes, também conectados a esses pinos de saída paralelos, para canalizar os dados para o barramento. Você acaba com alguns chips decodificadores um de N e 2 chips por 8 bits de armazenamento. "Isso permite que você ... veja quais dados são realmente armazenados em cada byte de RAM." - SAP-1 do Pong Guy, computador o mais simples possível, com RAM de componente discreto . O mesmo arranjo é usado para os registros na CPU Fourbit de Jaromir ou para os registros na CPU espaguete de 8 bits de Kyle .
Os preços atuais (2016) da Mouser.com são de cerca de US $ 0,11 / bit no qty 10 para esse arranjo (uma trava de armazenamento octal mais um buffer octal de 3 estados por 8 bits) e US $ 0,05 / bit para novos LEDs no qty 500. 2 ^ 9 bytes = 512 bytes = 2 ^ 12 bits = 4096 bits, isto é (aproximadamente)
Talvez você possa construir (aproximadamente) 64 bytes de memória de dados (a mesma quantidade de memória de dados que um Atmel ATTINY13 ou um Microchip PIC16F570) por aproximadamente US $ 90 (que pode caber no seu orçamento de US $ 150 ~ = £ 100).
Você pode ver por que é tentador substituir todos esses chips de armazenamento e buffer e a maioria dos chips decodificadores por um chip SRAM paralelo de 32Kx8 pronto para uso, oferecendo muito mais armazenamento por menos de US $ 10. (Aliança AS6C1008-55PCN, Cypress CY7C199CN-15PXC, etc.)
Pode ser por isso que a maioria das CPUs caseiras, desde as pequenas CPU Nibbler 4 Bit até o impressionante computador de retransmissão RC-3 http://www.computerculture.org/2012/09/rc-3-relay-computer/ http: / /www.computerculture.org/projects/rc3/ , estão conectados a um chip SRAM de caixa preta para memória principal.
Com algo como um barramento de memória padrão, talvez você possa ter várias placas de memória diferentes conectadas à CPU ao mesmo tempo:
fonte
Aqui está outra sugestão para um projeto semelhante que pode valer a pena: construir uma máquina de Turing . É a máquina de computação mais simples possível
fonte