Índice:

Visão geral do computador de 8 bits em uma placa de ensaio: 3 etapas
Visão geral do computador de 8 bits em uma placa de ensaio: 3 etapas

Vídeo: Visão geral do computador de 8 bits em uma placa de ensaio: 3 etapas

Vídeo: Visão geral do computador de 8 bits em uma placa de ensaio: 3 etapas
Vídeo: SET DJ Leo LG - MC Rodrigo CN, MC Saci, MC Morena e MC Fahah (Funk Explode) 2024, Novembro
Anonim
Visão geral do computador de 8 bits em uma placa de ensaio
Visão geral do computador de 8 bits em uma placa de ensaio

Meu objetivo para este projeto era construir uma melhor compreensão da arquitetura de computador, design de hardware e linguagens de nível de montagem. Sendo um Junior na universidade estudando engenharia da computação, recentemente concluí cursos de eletrônica, laboratórios que me apresentavam a linguagem de montagem e arquitetura de hardware. Ao receber uma introdução a esses tópicos, eu queria aumentar minha compreensão dos detalhes mais sutis em todos os três cursos, e que melhor maneira de aprender do que trabalhando em um projeto?

Minha intenção original era montar totalmente este computador de 8 bits usando os vídeos de palestras fornecidos no canal do youtube de Ben Eater, que fazem um trabalho fantástico de quebrar o processo de design em uma mistura sólida de material que eu cobri e aspectos que ainda estava por fazer aprender. Como eu já tinha um conhecimento básico de projeto combinatório e lógica de eletrônica básica, queria me desafiar tentando projetar e construir partes do computador após as visões gerais do projeto, mas sem observar as instruções de construção. Ao longo do projeto, meu objetivo era aprender e melhorar minha compreensão mais do que apenas construir algo novo, então, ao longo de cada etapa do projeto, li um pouco de artigos online e fóruns sobre a arquitetura de componentes e as convenções básicas usadas para cada deles.

Etapa 1: Pesquisa ao longo do caminho

Pesquisa ao longo do caminho
Pesquisa ao longo do caminho
Pesquisa ao longo do caminho
Pesquisa ao longo do caminho

Este projeto realmente me fez ler muito mais do que eu esperava. Uma das minhas principais abordagens para cada componente era ler uma visão geral de um fórum ou artigo online, assistir às palestras dos vídeos de Eater e tentar projetar minha própria parte antes de construir, testar e, na maioria das vezes, precisar descartá-la por um abordagem mais guiada do canal de Eater. Um exemplo disso foi quando eu estava construindo o componente ALU do PC. Enquanto assistia aos vídeos de design, li artigos sobre componentes de chip que eram de maior funcionalidade e acionavam entradas que permitiriam alternar os tipos de instrução e inverter entradas em complemento de 2 internamente. No entanto, antes de comprar esses chips facilitadores, analisei a abordagem de design que Ben Eater falou em seus vídeos, com a combinação de somadores e portas lógicas XOR para aumentar a funcionalidade no módulo ALU sem a necessidade de chips de custo mais alto. Isso me fez apreciar o uso de lógica discreta e sua aplicabilidade ao projeto de computador, e aprender sobre diferentes abordagens para construir componentes. Ao combinar chips de nível inferior na placa de ensaio, também aprendi alguns traços arquitetônicos importantes usados dentro da ALU, o que aumentou meu entendimento sobre esse componente de execução no PC.

Outro componente importante que aprendi foi o uso de transceptores, também conhecidos como buffers. Antes de me aprofundar no projeto, pensei que simplesmente ativaria e desativaria diferentes componentes usando sinais de controle, mas rapidamente descobri em todos os artigos que buffers precisavam ser usados para funcionar corretamente esta arquitetura estilo Von-Neuman. Como o computador usa um barramento compartilhado para que os dados viajem entre os diferentes módulos do PC, a sincronização dos ciclos era ditada pelo relógio. No entanto, permitindo que o armazenamento e as cargas ocorram sem interferir com os dados disponíveis no barramento, descobri que os transceptores eram vitais para atuar como portas, exigindo um sinal de habilitação para permitir que os dados fluíssem para o barramento em tempo hábil. A capacidade de leitura não era tão difícil de entender, já que os fios sempre manteriam os valores no barramento, mas usar o valor correto significava habilitar os registradores para manter o novo valor.

Uma conclusão final da pesquisa ao longo deste projeto foi entender as diferenças de especificação entre chips semelhantes. Muitas vezes encontrei chips com os mesmos valores de ID, mas com letras descritoras diferentes, como LS e HC. O que descobri foi que não se tratava simplesmente de fabricar etiquetas, mas também de especificações de tempo e energia dos chips. Felizmente, como meu computador usava componentes de nível bastante baixo e alta tolerância, não precisei me preocupar em combinar muitas especificações, mas no design de nível superior, aprendi que coisas como velocidade do clock e consumo de energia são essenciais para o sucesso ou falha da eletrônica Projeto

Etapa 2: Dificuldades encontradas

Com bastante rapidez no projeto, fui capaz de projetar componentes simples, como o cronômetro para sincronizar processos e arquitetura de memória básica, mas a necessidade de solicitar peças ao longo de um semestre de curso pesado tornou difícil alocar tempo externo para o projeto, o que me fez voltar cronograma para conclusão. Depois do meu primeiro grande contratempo de precisar esperar uma semana para as peças chegarem, acabei evitando mais atrasos ao encomendar todas as peças que achei que precisariam para concluir este projeto, o que acabou sendo útil, pois não enfrentei mais atrasos até publicar este. Depois de aprender algumas abordagens básicas para depuração também, comecei a ignorar algumas montagens, o que significava precisar voltar e assistir novamente aos vídeos para detectar meus erros, o que geralmente levava a desmontar a maior parte da placa. Isso não tinha atalho. Aprendi o valor de verificar seu progresso na construção de qualquer dispositivo eletrônico. Ao depurar cada placa ao longo do caminho, fui capaz de combiná-las com mais confiança e, em seguida, depurar as placas combinadas tornou-se muito mais fácil.

Etapa 3: realizações e reflexão

No geral, concluí atualmente o relógio, o código de operação e o contador do programa, a unidade ALU, os registradores rs rt e rd e a RAM. Além de precisar completar o barramento e periféricos para concluir este projeto, aprendi muito sobre arquitetura de computadores, que espero continuar nas minhas disciplinas eletivas do último ano, fazendo o curso de arquitetura de computadores.

A M5 forneceu todas as ferramentas necessárias para que eu trabalhasse no meu projeto, e os componentes eram muito bem dispostos ao longo das paredes das peças, então eu sabia desde muito cedo quais peças precisavam ser encomendadas e o que era dispensável. Se outro aluno assumisse este projeto, eu definitivamente notaria que ele leva muito tempo se você estiver tentando entender tudo o que está acontecendo no computador. NÃO É DIFÍCIL, mas requer cuidados se você quiser que funcione com sucesso. Eu recomendo fortemente que você percorra a lista de reprodução de vídeo no canal do youtube de Ben Eater para obter uma compreensão de todas as partes que você precisa usar para não atrasar o tempo se não planeja projetar sua própria abordagem. Como comprei a maioria das peças, pretendo levar isso comigo para concluir em meu próprio tempo, mas seria legal entregar isso para permitir que outro aluno concluísse, o que significaria exposição à luz para o design das peças restantes, mas um grande foco na linguagem assembly, que felizmente consegui trabalhar durante outras aulas

Recomendado: