Por que o WDC 65816 não está ' disponível em “ externamente ” versões de 16 bits?

Na verdade, a menos que haja notas de design reais do WDC disponíveis, a questão é realmente muito longa para o campo de título: “Quais, precisamente, são as desvantagens de ter uma versão do WDC 65816 com um barramento de dados de 16 bits e / ou barramento de endereço não multiplexado em comparação com as vantagens que isso daria? “

Todas as versões (não soft¹) do WDC 65816 que estou ciente de ter uma interface externa com um barramento de dados de 8 bits e os 8 bits principais do barramento de endereço multiplexados nos pinos do barramento de dados. Assim, dois ciclos são necessários para acessos de dados de 16 bits (por exemplo, LDA com o m conjunto de bits) e a lógica externa é necessária para travar os 8 bits principais das linhas de endereço, que também podem introduzir restrições de tempo adicionais .

Isso permite que o chip se encaixe em um pacote de 40 pinos, o que parece uma opção razoável de se disponibilizar, mas isso não impede também ter uma versão em um pacote maior. Quatro anos antes, o Motorola 68000 foi disponibilizado pela primeira vez em um pacote DIP de 64 pinos com endereços separados de 24 bits e barramentos de dados de 16 bits, portanto, a tecnologia para fazer isso a um custo razoável já estava disponível há muito tempo. E desde então, é claro, muitas outras embalagens de alta contagem de pinos tornaram-se comuns, mas mesmo agora WDC não oferece nada maior do que pacotes de 44 pinos (PLCC e QFP).

Nem um pacote de 40 pinos impede ter um barramento de dados externo de 16 bits completo, como o Intel 8086 fez, com seu barramento de dados externo de 16 bits multiplexado no barramento de endereço externo de 20 bits. Isso não precisa nem mesmo significar que versões separadas de barramento de dados de 8 e 16 bits precisam ser fabricadas: em 1990, a Motorola substituiu o MC68008 (um 68000 com um barramento de dados externo de 8 bits) pelo MC68HC001, que permitia a seleção de barramento de dados externo largura na redefinição.

Então, por que a falta, até hoje, de interfaces externas “completas de 16 bits”, como oferecidas por outros fornecedores de CPU de 16 bits? Quais são as desvantagens das várias formas das interfaces externas completas de 16 bits que estou perdendo?


Ou seja, chips que você pode comprar no mercado, ao contrário dos núcleos FPGA ou ASIC que você pode integre-se a qualquer pacote que desejar.

Comentários

Resposta

O 65816 fisicamente tem uma ALU de 8 bits, embora muitos dos registradores internos tenham agora 16 bits de largura. Portanto, é necessário um ciclo extra para executar cada operação da ALU no modo de 16 bits, e isso fornece o tempo necessário para obter os dados extras pelo barramento de dados (que permanece muito simples de interface).

Lá não faz parte do núcleo onde um barramento de dados de 16 bits está disponível para ser exposto, mesmo nas versões semipersonalizadas do núcleo 65816 que o WDC ainda oferece para desenvolvedores de sistemas incorporados.

Seria, claro ser possível projetar um novo núcleo com uma ALU mais ampla e barramento de dados externo e, portanto, com maior desempenho em operações de 16 bits. Seria até possível introduzir pipelining e cache para melhorar ainda mais o desempenho. Mas o resultado seria apenas 65816 compatível com ISA; não seria um 65816. Também seria maior, mais faminto de energia, mais caro (principalmente devido ao pacote mais complexo necessário para expor o ônibus mais amplo) e muito menos amigável para o hobby.

Comentários

  • De acordo com sua folha de dados ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), o W65C816 tem um ALU de 16 bits completo.
  • @StarCat Ponto interessante. Olhando para os tempos de instrução, eu me pergunto por que eles se importariam, no entanto: parece que eles realmente poderiam se dar bem com uma ALU de 8 bits. (Mesmo instruções como INX ainda são dois ciclos.) Talvez eles estejam afirmando que a visão do programador ‘ é como um 16- bit ALU (ou seja, existem instruções de adição de 16 bits, etc.), da mesma forma que um programador encontra o Z80 ‘ s 4 -bit ALU indistinguível do 8085 ‘ s ALU de 8 bits?
  • O 65816 tem um ALU de 16 bits. Isso é mais visível ao comparar ramificações, que funcionam da mesma forma no modo nativo e no modo de emulação (deslocamento de 8 bits), mas não obtêm penalidade por cruzamento de página no modo nativo, enquanto isso ainda ocorre na emulação (e no 65C02). Também é visível com todas as operações diretas de página, controlando o cruzamento de páginas também sem penalidades.DP no modo de emulação mostra ainda que aqui a ALU simplesmente obtém ‘ rebaixada ‘ para 8 bits, como DH não ‘ t precisa ser definido como zero, btu é ignorado.
  • @StarCat A citação completa é: ” ULA completa de 16 bits, Acumulador, Ponteiro de Pilha e Registradores de Índice ” – que podem ser escritos de maneira desajeitada, mas parece implicar que apenas registradores têm 16 bits de largura. No entanto, as características de desempenho de uma ALU de 16 bits não são facilmente observadas nesta CPU, porque a maioria dos operandos (incluindo endereços de memória) deve ser carregada da memória de 8 bits por vez. Mesmo que toda a largura da ALU seja usada para cálculos de modo de endereçamento, observo que se o DPR não estiver alinhado com a página, os acessos de modo direto têm uma penalidade de 1 ciclo, o que é consistente com uma ALU de 8 bits.
  • @Raffzahn Com índices de 16 bits, uma adição completa de 16 bits deve ser realizada entre o endereço base e o deslocamento do índice. Parece que isso não pode ser iniciado até que o endereço base tenha sido completamente carregado, possivelmente devido à falta de registros internos. Que leva dois ciclos para uma adição de 16 + 16, mas apenas um ciclo para uma adição de 16 + 8, mostra que há um somador de 8 bits com propagação de transporte de byte superior sendo usado para este propósito.

Resposta

O 65816 pretende ser um caminho de atualização para os clientes 6502 existentes. Manter em 8 bits foi uma decisão sensata do ponto de vista do usuário, pois oferece

  • Fácil atualização de designs existentes
  • Totalmente compatível com o software existente
  • Padrão O pacote de 40 pinos precisa de menos orifícios passantes e oferece manuseio mais barato
  • Apenas uma única trava é necessária para usar o intervalo de endereço estendido
  • Somente componentes externos padrão de 8 bits são necessários

Especialmente os últimos são importantes para consideração de custo. Para a fabricação, cada furo conta, pois diminui com o tempo e, portanto, o custo. Em 1983, os componentes de 16 bits (RAM / ROM) eram bastante raros e caros. Com um design de 8 bits, um número de chips de ROM e RAM padrão (EP) foi definido apenas pelo tamanho necessário, enquanto um barramento de dados de 16 bits sempre requer pelo menos dois de cada. Afinal, o projeto anterior ao estado do protótipo não é sensível ao custo. A série 65xx sempre foi direcionada a aplicativos de baixo custo / embarcados. Na verdade, seu mercado-alvo era muito parecido com o que a Intel imaginou para o 8086 como um caminho de atualização para o 8080 / 85 usuários.

Ao contrário da Intel, que projetou uma CPU de 16 bits e tornou os 8 bits compatíveis (* 1), o WDC permaneceu em 8 bits, o que fazia sentido para o design da CPU, pois simplificava o desenvolvimento devido

  • A estrutura interna básica pode ser mantida em 65C02
  • Nenhuma mudança na geração de endereço básico
  • nenhuma necessidade de adicionar um protocolo de barramento de 8/16 bits para acessar bytes em uma palavra
  • não há necessidade de gerenciamento de fila de instruções

Seguindo esse caminho, todo o projeto foi mantido pequeno o suficiente para ser administrado por recursos que uma pequena empresa como a WDC poderia fornecer – sem colocar seu futuro em risco.

Além de ser comparativamente fácil de criar, o barramento de 16 bits não ganha tanto quanto se pode supor a princípio. Afinal, o desempenho tem muito a ver com largura de banda de memória, não é? O 8088 vs. 8086 é um ótimo benchmark aqui, já que ambos usam exatamente o mesmo EU (Unidade de Execução; * 1), mas diferem apenas na largura do barramento do BIU ( Bus Interface Unit) usa para acessar a memória. Embora em teoria o 8086 deva oferecer cerca de duas vezes o desempenho devido ao dobro da largura de banda na mesma taxa de clock, o ganho de desempenho no mundo real é de apenas cerca de 30-40%. Isso é ainda mais notável como o BIU o design funciona muito bem ao utilizar o barramento próximo a 100% (* 2)

Assim, embora dobrar a largura do barramento sempre proporcione menos do que o dobro da velocidade, simplesmente dobrar a frequência do clock de um design fará isso sem qualquer incerteza. Em 1983, a memória havia chegado a um ponto em que um design de estilo 4 MHz 6500 era fácil de conseguir, quadruplicando o thruput sem qualquer instabilidade.

Resumindo: ficar com 8 bits ofereceu muitas vantagens no design e para os usuários, evitando esforço e custo desnecessários.

Por último, mas não menos importante, como efeito colateral, o 65802 poderia ser criado adicionalmente, oferecendo uma redução no uso de recursos de 16 bits nos designs 65C02 existentes.


* 1 – Na maioria das partes, a UE pode ser vista como o núcleo da CPU “real” do 8086

* 2 – Muito disso vem devido ao acesso de byte único, mas também por palavras de memória não alinhadas e alvos de salto, o que reduzirá a velocidade de uma operação de barramento de 16 bits para 8 bits. E embora o novo software possa levar isso em consideração, o existente não o fará. O pior exemplo de caso aqui pode ser o Applesoft BASIC, onde quase todos os ponteiros na Página Zero estavam em endereços ímpares. Para 8 bits ninguém se importou, com 16 bits é mortal.

Resposta

A vantagem do barramento de dados externo de 8 bits e a multiplexação dos 8 bits principais do barramento de endereço no primeiro lançamento do 65816 parece claro. Na verdade, havia duas versões do chip: o W65C816S conforme descrito na pergunta e o W65C802. De acordo com a Wikipedia ,

[O] 65C802 … era idêntico por dentro a o 65C816. Ambos foram produzidos nas mesmas linhas de fabricação e divergiram apenas durante os últimos estágios de metalização, quando o chip estava sendo conectado aos pinos externos. No 65C802, esses pinos tinham o mesmo layout do 6502 original, o que permitia que ele fosse usado como um substituto drop-in enquanto ainda permitia que o processamento de 16 bits da CPU fosse usado. No entanto, como usava a pinagem original, tinha apenas 16 pinos de endereçamento e, portanto, podia acessar apenas 64 kB de memória externa. Normalmente, quando os fabricantes de hardware projetam um projeto do zero, eles usam o 65C816 em vez do 65C802, resultando na retirada deste último da produção.

Mas isso não explica por que todas as versões do 65816 continuaram usando a interface externa de 8 bits mesmo após o 65802 ter sido descontinuado.

Resposta

Acho que a resposta é simples: não há necessidade de tal versão do 65C816 hoje em dia. O Western Design Center (WDC), fabricante do 65C816, concentra-se em IPs e coisas de IoT. Acho que a produção do “novo 65C816” é uma espécie de nostalgia para eles. A revisão do chip e do pacote não tem um caso de negócios claro, IMHO.

Outra pergunta é “por que não havia versão de barramento de dados de 16 bits nos anos 80?” foi uma sequência de eventos externos. O mercado provavelmente se moveu mais rápido do que o WDC esperava. Na primeira metade dos anos 80, quando o 65C816 foi introduzido, o barramento de dados de 8 bits foi instalado. etter aos sistemas já projetados para o chip 6502 e o mercado não exige um barramento de dados de 16 bits. Mais tarde, quando os periféricos de 16 bits se tornaram disponíveis, o fabricante 65C816 não ofereceu a CPU de “próxima geração” a tempo, então os maiores clientes, como Apple (// GS) ou Nintendo (SNES), mudaram para o melhor, mais rápido, etc. processadores (Motorola, NEC MIPS, …) quando projetado uma nova geração de seu hardware. Essa mudança tornou o “barramento de dados de 16 bits 65C816” obsoleto antes de sua própria criação.

Comentários

  • Parece-me que a Apple nunca ” mudou para processadores melhores e mais rápidos “; o IIgs foi o fim da linha para o Apple II e ele continuou a usar o ‘ 816 até 1992. (A Apple usou o 68000 no Mac, mas essa decisão foi tomada em final de 1980, muito antes do ‘ 816 iniciar o desenvolvimento.) E a Nintendo não ‘ t começou o desenvolvimento do SNES até 1988, no mínimo, cinco anos após o lançamento do ‘ 816.
  • Verdadeiro, Mac vs. II são desenvolvimentos diferentes. Além disso, apesar do sucesso do Apple IIgs, com apenas 1,25 M unidades, a Apple estava longe de ser seu maior cliente. Os números SNES estão em torno de 50 milhões, sem contar os clones. E existem alguns outros aplicativos incorporados nessa região. Em geral, os computadores desktop talvez tenham sido o uso mais visível do 6502 para nós, mas no total estão entre os menos importantes. Mesmo adicionando todos os Commodore, Apple, BBC e assim por diante, acabará usando menos de 1% de todos os 65xxx núcleos já construídos.

Resposta

O W65C265S , um microcontrolador baseado em 65816, tem todo o barramento de endereço 24b exposto, com um barramento de dados 8b separado.

E, para ficar claro, o “265S” não é “um 65816. É muito, muito parecido. Mas, não obstante os periféricos integrados e a lógica de decodificação, ele tem alguns vetores de interrupção diferentes que podem tornar o “código 265S incompatível com um estoque de caixa 65816. Para todos os efeitos práticos, eles” são idênticos aos do software, mas existem algumas pequenas diferenças.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *