CPUs para o projeto da escola de computadores retro

9

Sou estudante de uma escola de TI e estamos tentando pensar em um projeto que poderíamos usar para mostrar aos alunos do primeiro ano como as coisas funcionam nos bastidores e, eventualmente, pensamos em criar um computador retro.

Eu li muitas coisas sobre o processador Z80, mas acho que precisamos de algo mais poderoso, ainda estamos nos perguntando sobre a arquitetura, embora o ARM possa ser uma boa opção, considerando que encontraríamos muita documentação, temos também estabeleceu algumas necessidades especiais:

  • Um barramento de endereço externo, se precisarmos de mais RAM
  • > 50Mhz
  • 16 ou 32 bits
  • Nenhum pacote BGA / QFN
  • Nenhuma placa FPGA
  • Uma interface serial (?)
  • Não é muito caro, pois temos um orçamento limitado

O P8X32A-D40 parece uma boa CPU, mas não possui a quantidade de RAM necessária (32k), eu estava pensando em algo como> 1MB. Talvez o eZ80 valha a pena considerar. Gostaríamos de respostas de pessoas experimentadas como você.

Obrigado.

Edit: Mesmo que eu tenha aceitado uma resposta, pois ela preenche nossas necessidades, a pergunta ainda está aberta a outras sugestões, pois teremos que discutir sobre as escolhas com a equipe de alunos dispostos a participar do projeto.

Anthony Teisseire
fonte
4
Primeiro, você discute a criação de um computador retrô e, em seguida, coloca especificações (50 MHz,> 1 MB de RAM) para microprocessadores muito mais recentes. O Z80 tinha uma taxa de clock máxima de 2 MHz e podia suportar 64K de memória. O chip Propeller (P8X32A-D40) é um dos meus favoritos devido à sua arquitetura exclusiva, mas é definitivamente não computação retro. O Z80 não é uma má escolha, pois há uma quantidade razoável de informações sobre a montagem de um sistema construído em casa, por exemplo, veja isso .
Tcrosley
Eu sei que essas especificações fariam dias velhos computadores ciumento, mas eu acho que algum tipo de retro ++ seria o ideal (Os outros alunos consideraria qualquer coisa abaixo de 1 GHz como "retro" de qualquer maneira ...)
Anthony Teisseire
4
Em uma classe de microcontroladores que eu peguei, usamos o Motorola 6800 ... é complexo o suficiente com todos os modos de endereçamento diferentes para que os Atmels e PICs de 8 bits pareçam um brinquedo. Mas não é tão complexo que você pode construir um modelo mental da coisa sem perder a cabeça. Depende apenas de como você quer ficar "sob o capô".
Daniel
Eu estava indo para construir algo parecido com isto. Dê uma olhada no WDC 65C816 - é o derivado CMOS de 16 bits do venerável 6502 e vem em um pacote DIP40.
Peter
7
Discordo totalmente da razão para encerrar esta questão. O OP está procurando uma arquitetura de computador apropriada para uso dos alunos, considerando um conjunto de critérios. Respondi primeiro com uma recomendação sobre uma arquitetura apropriada, provavelmente uma que ele não conhecia, e sim, e depois recomendei um chip específico porque estava disponível em um pacote DIP para estudantes. Mas acho que minha resposta bastante abrangente, listando os motivos de minhas recomendações, seria útil no futuro para qualquer outra pessoa que tentasse tomar a mesma decisão. Recomende que isso seja reaberto.
Tcrosley

Respostas:

6

Embora as versões atualmente disponíveis não possuam um barramento de endereço externo verdadeiro (está chegando), você pode considerar o Microchip PIC32 . Sua arquitetura é baseada no MIPS , datado de 1988, e é um dos dois principais conjuntos de instruções RISC (o outro é o ARM). Portanto, nesse sentido, pode ser considerado retro. (Um pouco de trivialidades: o Sony Playstation usava um processador MIPS.)

Um dos recursos interessantes do PIC32 (e incomum para um microcontrolador de 32 bits) é que você pode obter diversas variedades em um pacote DIP, no entanto, a memória máxima disponível será limitada em comparação às versões de montagem em superfície. Um dos PICs com a maior memória em um pacote DIP de 28 pinos é o PIC32MX250F128 com 128KB de memória Flash (programa) e 32KB de RAM. Está disponível na Digi-Key nos EUA e na Farnell no Reino Unido .

Embora a RAM possa parecer limitada, observe que os PICs são a arquitetura de Harvard , o que significa que os espaços do programa e do endereço de dados são separados e os programas são executados sem flash, portanto, você não precisa de muita RAM. (Para os puristas, os PIC32s são na verdade arquitetura modificada de Harvard, porque é possível executar programas a partir da RAM.) A outra alternativa é Von Neumannarquitetura (usada, por exemplo, nos PCs), onde existe um espaço de endereço para tudo e os programas geralmente ficam sem RAM, uma exceção, pois eles normalmente precisam ter pelo menos algum Flash ou ROM (chamado BIOS em um PC) em o espaço de endereço do processador para executar uma rotina de inicialização para carregar o SO de um dispositivo ou rede de armazenamento em massa na RAM. O Z80 (e a maioria dos microprocessadores de seu tempo) também usava a arquitetura Von Neumann. Portanto, era necessário ajustar o programa e os dados em 64 KB. Alguns micros com arquitetura Von Neumann também mapearam seus periféricos no mesmo espaço de endereço de 64K; outros usavam endereçamento de porta separado.

No barramento externo, os PIC32 atuais (mas apenas em pacotes de montagem em superfície, devido ao número de pinos) têm uma "Parallel Master Port" (PMP) de 8 ou 16 bits de largura que, juntamente com o DMA, pode transferir dados para frente e para trás automaticamente entre a RAM do PIC e a RAM externa ou um periférico. No entanto, isso não permite acessar diretamente a memória externa (no espaço de endereço do processador) ou executar o código lá. A mais recente família PIC32MZ , listada mas ainda não em estoque na Digi-Key, terá um verdadeiro barramento de endereço externo, até 2 MB de Flash, 1/2 MB de RAM e rodará a 200 MHz.

O PIC32MX250F128 é executado em 50 MHz, existem outros que são executados em 80 MHz. Possui duas portas seriais UART; você precisará de um conversor de nível para converter isso em sinais RS232.

Como é empacotado como um DIP e pode ser executado sem um oscilador externo, para começar tudo o que você precisa é de uma fonte de alimentação 3.3.v, algumas capas de dissociação de 0.1 µF e uma placa de ensaio. Você pode obter um compilador C e um IDE gratuitos no Microchip.

Depois de colocar o processador em funcionamento, você pode adicionar periféricos como uma tela LCD, botões (até mesmo um teclado) etc.

Você pode obter outros PIC32MXs com até 512KB de Flash e 128KB de RAM, mas apenas em pacotes de montagem em superfície como TQFP e VQFN que exigiriam o layout de uma PCB (você também teria esse mesmo problema com qualquer processador ARM).

tcrosley
fonte
Muito obrigado, isso é muito informativo e esse PIC realmente atenderia às nossas necessidades. Adaptaremos nosso design, caso sentimos a necessidade de mudar para o pacote VQFN ou a família PIC32MZ.
Anthony Teisseire
Eu não diria que é um requisito de CPUs que usam uma arquitetura von Neumann para executar seus programas a partir da RAM. Certamente é possível ter flash e RAM no mesmo mapa de memória, permitindo executar o código de qualquer um. As CPUs von Neumann simplesmente têm um espaço de barramento e endereço para instruções e dados.
Jason R
@JasonR Eu não quis dizer que os programas em uma arquitetura Von Neumann precisavam ficar sem RAM, na verdade eles precisam ter pelo menos algum Flash ou ROM (chamado BIOS em um PC) para executar uma rotina de inicialização para carregar o SO desligar um dispositivo de armazenamento em massa ou rede na RAM. (É claro que os computadores realmente antigos, incluindo os primeiros PCs como o Altair 8800 , nem sequer possuíam uma ROM de inicialização e você teve que alternar manualmente um gerenciador de inicialização usando os interruptores do painel frontal). Eu atualizei minha resposta.
Tcrosley 25/05
3

Embora eu concorde amplamente com o @tcrosley, sinto-me obrigado a salientar que se você realmente quiser mostrar a outros alunos como as coisas funcionam "por trás do palco", você deve obter uma placa FPGA (basta comprar uma, não tente fazê-la ) e aprenda a construir CPUs do zero usando a lógica. Dê uma olhada nisso para um bom ponto de partida.

Markt
fonte
1

Você já considerou a série MC68000?

É uma CPU de 16/32 bits, exceto o 68008, a linha de dados tem 16 bits, alguns deles podem rodar facilmente a 50 MHz e o espaço de endereço é de 16 MB.

  • Um barramento de endereço externo, se precisarmos de mais RAM - sim e apenas
  • > 50 MHz - pode ser
  • 16 ou 32 bits - ambos
  • Não pacote BGA / QFN - sim
  • Sem placa FPGA - não
  • Uma interface serial (?) Não , você tem que fazer a sua, mas muito fácil
  • Não é muito caro, pois temos um orçamento limitado - sim

Aqui está a documentação completa: https://www.nxp.com/docs/en/reference-manual/MC68000UM.pdf

Jeremy Talus
fonte