Motorola 68000
# Motorola 68000

O Motorola 68000, é um microprocessador CISC (complex instruction set computer) de 16/32 bits, lançado em 1979 pelo Motorola Semiconductor Products Sector.
O projeto implementa um conjunto de instruções de 32 bits, com registradores de 32 bits e um barramento de dados interno de 16 bits.O barramento de endereços é de 24 bits e não usa segmentação de memória, o que facilitou a programação. Internamente, ele usa uma unidade lógica aritmética de dados (ALU) de 16 bits e mais duas ALUs de 16 bits usadas principalmente para endereços, e tem um barramento de dados externo de 16 bits. Por esse motivo, a Motorola o chamou de processador de 16/32 bits.
Como um dos primeiros processadores amplamente disponíveis com um conjunto de instruções de 32 bits, grande espaço de endereço não segmentado e velocidade relativamente alta para a época, o 68000 foi um projeto popular durante a década de 1980. Foi amplamente utilizado em uma nova geração de computadores pessoais com interfaces gráficas de usuário, incluindo o Macintosh 128K, Commodore Amiga, Atari ST e Sharp X68000. O console Sega Genesis/Mega Drive de 1988 é alimentado por um 68000.
Os processadores posteriores da série Motorola 68000, começando com o Motorola 68020, usam ULAs de 32 bits e têm barramentos de dados e endereços de 32 bits, acelerando as operações de 32 bits e permitindo o endereçamento completo de 32 bits em vez do endereçamento de 24 bits do 68000 e do Motorola 68010 ou do endereçamento de 31 bits do Motorola 68012. O 68000 original é geralmente compatível com o restante da linha, apesar de estar limitado a um barramento externo de 16 bits de largura.
Mesmo após 45 anos de produção, a arquitetura 68000 ainda está em uso.

## Desenvolvimento
### 6800

O primeiro microprocessador da Motorola produzido em larga escala foi o 6800, lançado no início de 1974 e disponível em quantidade no final daquele ano. A empresa estabeleceu a meta de vender 25.000 unidades até setembro de 1976, meta que foi atingida. Embora fosse um projeto capaz, foi eclipsado por projetos mais potentes, como o Zilog Z80, e por projetos mais baratos, como o MOS Technology 6502. No final de 1976, a carteira de vendas estava estagnada e a divisão só foi salva por um projeto para a General Motors que se transformou em uma enorme linha de produtos para controle de motores e outras tarefas.

### Mudança para 16 bits

Na época em que o 6800 foi lançado, um pequeno número de projetos de 16 bits havia chegado ao mercado. Em geral, eles eram modelados em plataformas de minicomputadores, como o Data General Nova ou o PDP-8. Com base nos processos de fabricação de semicondutores da época, muitas vezes eram soluções com vários chips, como o National Semiconductor IMP-16, ou o PACE de chip único, que tinha problemas com a velocidade.
Com as perspectivas de vendas do 6800 diminuindo, mas ainda com o caixa cheio com as vendas de controle de motores, no final de 1976, Colin Crook, gerente de operações, começou a pensar em como obter sucesso em vendas futuras. Eles sabiam que a Intel estava trabalhando em uma extensão de 16 bits da série 8080, que surgiria como Intel 8086, e tinham ouvido rumores de um Zilog Z80 de 16 bits, que se tornou o Z8000. Eles usariam novas técnicas de design que eliminariam os problemas observados nos sistemas de 16 bits anteriores.
A Motorola sabia que, se lançasse um produto semelhante ao 8086, com 10% de suas capacidades, a Intel a mataria no mercado. Para competir, eles estabeleceram a meta de serem duas vezes mais potentes pelo mesmo custo, ou metade do custo com o mesmo desempenho. Crook decidiu que atacaria o mercado de ponta com o processador mais potente do mercado. Outro 16 bits não seria suficiente, seu projeto teria que ser maior, e isso significava ter alguns recursos de 32 bits. Crook havia decidido essa abordagem no final de 1976.

### MACSS

Crook formou o projeto Motorola Advanced Computer System on Silicon (MACSS) para criar o design e contratou Tom Gunter para ser seu arquiteto principal. Gunter começou a formar sua equipe em janeiro de 1977. A meta de desempenho foi definida em 1 milhão de instruções por segundo (MIPS). Eles queriam que o projeto não apenas reconquistasse os fornecedores de microcomputadores, como a Apple Computer e a Tandy, mas também as empresas de minicomputadores, como a NCR e a AT&T.
A equipe decidiu abandonar a tentativa de retrocompatibilidade com o 6800, pois achava que os designs de 8 bits eram muito limitados para servir de base para novos designs. O novo sistema foi influenciado pelo PDP-11, o projeto de minicomputador mais popular da época. Naquela época, um conceito importante nos minis era o conceito de um conjunto de instruções ortogonais, no qual cada operação podia trabalhar com qualquer tipo de dados. Para alimentar as unidades internas com os dados corretos, o MACSS fez uso extensivo de microcódigo, essencialmente pequenos programas em uma memória somente de leitura que reunia os dados necessários, executava as operações e escrevia os resultados. O MACSS foi um dos primeiros a usar essa técnica em um microprocessador.
Havia uma grande quantidade de hardware de suporte para o 6800 que continuaria sendo útil, como UARTs e sistemas de interface semelhantes. Por esse motivo, o novo design manteve um modo de compatibilidade de protocolo de barramento para os dispositivos periféricos 6800 existentes.
Um chip com 32 pinos de dados e 32 pinos de endereçamento precisaria de 64 pinos, além de mais pinos para alimentação e outros recursos. Na época, os DIPs (dual inline package) de 64 pinos eram sistemas "grandes, de custo elevado" e "simplesmente terríveis", o que fez com que esse fosse o maior sistema que eles poderiam considerar. Para que ele coubesse, Crook escolheu um projeto híbrido, com uma arquitetura de conjunto de instruções (ISA) de 32 bits, mas com componentes de 16 bits que a implementavam, como a unidade lógica aritmética (ALU). A interface externa foi reduzida para 16 pinos de dados e 24 para endereços, permitindo que tudo coubesse em um pacote de 64 pinos. Isso ficou conhecido como "Texas Cockroach" (barata do Texas).
Em meados da década de 1970, as técnicas de projeto de MOS da Motorola haviam se tornado menos avançadas do que as da concorrência, e suas linhas de fabricação às vezes enfrentavam dificuldades com baixos rendimentos. No final da década de 1970, a empresa havia entrado em um programa de intercâmbio de tecnologia com a Hitachi, melhorando drasticamente suas capacidades de produção. Como parte disso, uma nova fábrica, a MOS-8, foi construída usando os mais recentes tamanhos de wafer de 5 polegadas e o processo HMOS da Intel com um tamanho de recurso de 3,5 µm. Esse foi um investimento que visava a vencer a concorrência: até mesmo empresas de semicondutores iniciantes, como a Zilog e a MOS Technology, introduziram CPUs fabricadas com lógica NMOS em modo de depleção antes da Motorola. Na verdade, a Motorola pode ter se atrasado substancialmente em relação aos seus contemporâneos na eliminação do modo de aprimoramento e da porta metálica, com o diretor de produtos da série 68k, Tom Gunter, lembrando que o próprio 68000 teve que ser bem-sucedido, apesar de ter adotado inicialmente um design de porta metálica. Embora o ponto sobre o atraso seja claro, esse pode não ter sido um resumo totalmente preciso, porque as folhas de dados da Motorola de 1976, anteriores ao início do projeto MACCS, indicam a maioria de sua família 6800 em porta de silício. De fato, o próprio artigo de Gunter de 1979 que apresentava o 68000 o destacava como um projeto HMOS de modo de depleção de porta de silício. Independentemente do grau de déficit de processo e fabricação da Motorola nos primeiros dias, a equipe não se intimidou e não fez concessões em sua busca por um microprocessador com desempenho líder do setor.

### Amostragem e produção

Apresentado formalmente em setembro de 1979, as amostras iniciais foram lançadas em fevereiro de 1980, com os chips de produção disponíveis no balcão em novembro. Os graus de velocidade iniciais são 4, 6 e 8 MHz. Os chips de 10 MHz ficaram disponíveis em 1981, e os de 12,5 MHz em junho de 1982. A versão "12F" de 16,67 MHz do MC68000, a versão mais rápida do chip HMOS original, não foi produzida até o final da década de 1980.
No início de 1981, o 68k estava ganhando vários designs de ponta, e Gunter começou a se aproximar da Apple para conquistar seus negócios. Naquela época, o 68000 era vendido por cerca de US$ 125 em quantidade. Em reuniões com Steve Jobs, Jobs falou sobre o uso do 68000 no Apple Lisa, mas afirmou que "o verdadeiro futuro está neste produto que estou desenvolvendo pessoalmente. Se você quer esse negócio, precisa se comprometer a vendê-lo por US$ 15." A Motorola contra-atacou oferecendo-se para vendê-lo inicialmente a US$ 55, depois a US$ 35 e assim por diante. Jobs concordou, e o Macintosh passou do 6809 para o 68000. O preço médio acabou chegando a US$ 14,76.

## Variações

Em 1982, o 68000 recebeu uma pequena atualização em sua arquitetura de conjunto de instruções (ISA) para dar suporte à memória virtual e estar em conformidade com os requisitos de virtualização de Popek e Goldberg. O chip atualizado é chamado de 68010. Ele também adiciona um novo "modo de loop" que acelera pequenos loops e aumenta o desempenho geral em cerca de 10% com as mesmas velocidades de clock. Uma versão estendida adicional, que expõe 31 bits do barramento de endereços, também foi produzida em pequenas quantidades como o 68012.
Para suportar sistemas de baixo custo e aplicativos de controle com tamanhos de memória menores, a Motorola lançou o MC68008 compatível com 8 bits, também em 1982. Esse é um 68000 com um barramento de dados de 8 bits e um barramento de endereços menor (20 bits). Depois de 1982, a Motorola dedicou mais atenção aos projetos 68020 e 88000.

### Segunda fonte

Várias outras empresas foram fabricantes de segunda fonte do HMOS 68000. Entre elas, a Hitachi (HD68000), que reduziu o tamanho do recurso para 2,7 µm em sua versão de 12,5 MHz, a Mostek (MK68000), a Rockwell (R68000), a Signetics (SCN68000), a Thomson/SGS-Thomson (originalmente EF68000 e posteriormente TS68000) e a Toshiba (TMP68000). A Toshiba também foi um fabricante de segunda fonte do CMOS 68HC000 (TMP68HC000).
As variantes criptografadas do 68000, como o Hitachi FD1089 e o FD1094, armazenam chaves de descriptografia para opcodes e dados de opcode na memória com bateria e foram usadas em determinados sistemas de fliperama da Sega, incluindo o System 16, para evitar a pirataria e os jogos ilegais de contrabando.

### Versões CMOS

O 68HC000, a primeira versão CMOS do 68000, foi projetado pela Hitachi e apresentado em conjunto em 1985. A versão da Motorola é chamada de MC68HC000, enquanto a da Hitachi é a HD68HC000. O 68HC000 oferece velocidades de 8 a 20 MHz. Exceto pelo fato de usar circuitos CMOS, ele se comportava de forma idêntica ao MC68000 HMOS, mas a mudança para CMOS reduziu muito seu consumo de energia. O MC68000 HMOS original consumia cerca de 1,35 watts a uma temperatura ambiente de 25 °C, independentemente da velocidade do clock, enquanto o MC68HC000 consumia apenas 0,13 watts a 8 MHz e 0,38 watts a 20 MHz. (Ao contrário dos circuitos CMOS, o HMOS ainda consome energia quando ocioso, portanto o consumo de energia varia pouco com a clock rate). A Apple escolheu o 68HC000 para uso no Macintosh Portable.
A Motorola substituiu o MC68008 pelo MC68HC001 em 1990. Esse chip se assemelha ao 68HC000 na maioria dos aspectos, mas seu barramento de dados pode operar no modo de 16 ou 8 bits, dependendo do valor de um pino de entrada na reinicialização. Assim, como o 68008, ele pode ser usado em sistemas com memórias de 8 bits mais baratas.
A evolução posterior do 68000 concentrou-se em aplicativos de controle incorporados mais modernos e periféricos no chip. O chip 68EC000 e o núcleo SCM68000 removem o barramento periférico M6800 e excluem a instrução MOVE from SR dos programas do modo de usuário, tornando o 68EC000 e o 68SEC000 as únicas CPUs 68000 que não são 100% compatíveis com o código de objeto das CPUs 68000 anteriores quando executadas no modo de usuário. Quando executados no modo supervisor, não há diferença. Em 1996, a Motorola atualizou o núcleo autônomo com circuitos totalmente estáticos, consumindo apenas 2 µW no modo de baixo consumo de energia, chamando-o de MC68SEC000.
A Motorola interrompeu a produção do HMOS MC68000, bem como do MC68008, MC68010, MC68330 e MC68340 em 1º de junho de 1996, mas sua empresa derivada, a Freescale Semiconductor, ainda produzia o MC68HC000, MC68HC001, MC68EC000 e MC68SEC000, bem como os microcontroladores MC68302 e MC68306 e versões posteriores da família DragonBall. Os descendentes arquitetônicos do 68000, as famílias 680x0, CPU32 e Coldfire, também ainda estavam em produção. Mais recentemente, com o fechamento da fábrica de Sendai, todas as peças 68HC000, 68020, 68030 e 68882 foram descontinuadas, deixando apenas o 68SEC000 em produção.

### Como núcleo de um microcontrolador

Desde que foi sucedido por microprocessadores "verdadeiros" de 32 bits, o 68000 é usado como o núcleo de muitos microcontroladores. Em 1989, a Motorola lançou o processador de comunicações MC68302.

## Aplicações

A IBM considerou o 68000 para o IBM PC, mas escolheu o Intel 8088; entretanto, a IBM Instruments vendeu brevemente os sistemas de computador de laboratório IBM System 9000 baseados no 68000. O conjunto de instruções 68000 é particularmente adequado para implementar o Unix, e o 68000 e seus sucessores se tornaram as CPUs dominantes para estações de trabalho baseadas em Unix, incluindo as estações de trabalho Sun e as estações de trabalho Apollo/Domain.
Em 1981, a Motorola lançou a placa do Motorola 68000 Educational Computer Board, um computador de placa única para fins educacionais e de treinamento que, além do próprio 68000, continha memória, dispositivos de E/S, temporizador programável e área de fio para circuitos personalizados. A placa permaneceu em uso nas faculdades dos EUA como uma ferramenta para o aprendizado de programação em assembly até o início da década de 1990.
Em seu lançamento, o 68000 foi usado pela primeira vez em sistemas de alto custo, incluindo microcomputadores multiusuários como o WICAT 150, os primeiros computadores Alpha Microsystems, Sage II / IV, Tandy 6000 / TRS-80 Model 16 e Fortune 32: 16; estações de trabalho de usuário único, como os sistemas HP 9000 Series 200 da Hewlett-Packard, os primeiros sistemas Apollo/Domain, Sun-1 da Sun Microsystems e o Corvus Concept; e terminais gráficos como o VAXstation 100 da Digital Equipment Corporation e o IRIS 1000 e 1200 da Silicon Graphics. Os sistemas Unix passaram rapidamente para as gerações posteriores mais capazes da linha 68000, que permaneceu popular nesse mercado durante toda a década de 1980.
Em meados da década de 1980, a queda no custo de produção tornou o 68000 viável para uso em computadores pessoais, começando com o Apple Lisa e o Macintosh, seguidos pelo Amiga, Atari ST e X68000.
O microcomputador Sinclair QL, juntamente com seus derivados, como o terminal de negócios ICL One Per Desk, foi a utilização mais importante do 68008 em termos comerciais. A Helix Systems (em Missouri, Estados Unidos) projetou uma extensão para o barramento SWTPC SS-50, o SS-64, e produziu sistemas baseados no processador 68008.
Embora a adoção do RISC e do x86 tenha deslocado a série 68000 como CPU de desktop/estação de trabalho, o processador foi bastante utilizado em aplicativos incorporados. No início da década de 1990, quantidades de CPUs 68000 podiam ser compradas por menos de US$ 30 por peça $^[$.
O 68000 também obteve grande sucesso como controlador incorporado. Já em 1981, as impressoras a laser, como a Imagen Imprint-10, eram controladas por placas externas equipadas com o 68000. A primeira HP LaserJet, lançada em 1984, vinha com um 68000 de 8 MHz integrado. Outros fabricantes de impressoras adotaram o 68000, inclusive a Apple, com o lançamento da LaserWriter em 1985, a primeira impressora a laser PostScript. O 68000 continuou a ser amplamente usado em impressoras durante o restante da década de 1980, persistindo até a década de 1990 em impressoras de baixo custo.
O 68000 foi bem-sucedido no campo dos sistemas de controle industrial. Entre os sistemas que se beneficiaram de ter um 68000 ou um derivado como microprocessador estavam as famílias de controladores lógicos programáveis (PLCs) fabricados pela Allen-Bradley, Texas Instruments e, posteriormente, após a aquisição dessa divisão da TI, pela Siemens. Os usuários desses sistemas não aceitam a obsolescência dos produtos na mesma proporção que os usuários domésticos, e é muito provável que, apesar de terem sido instalados há mais de 20 anos, muitos controladores baseados no 68000 continuarão em serviço confiável até o século XXI.
Em vários osciloscópios digitais dos anos 80, o 68000 foi usado como um processador de exibição de forma de onda; alguns modelos, incluindo o LeCroy 9400/9400A, também usam o 68000 como um processador matemático de forma de onda (incluindo adição, subtração, multiplicação e divisão de duas formas de onda/referências/memórias de forma de onda) e alguns osciloscópios digitais que usam o 68000 (incluindo o 9400/9400A) também podem executar funções de transformada rápida de Fourier em uma forma de onda.
Os microcontroladores 683XX, baseados na arquitetura 68000, são usados em equipamentos de rede e telecomunicações, decodificadores de televisão, instrumentos médicos e de laboratório e até mesmo em calculadoras portáteis. O MC68302 e seus derivados foram usados em muitos produtos de telecomunicações da Cisco, 3com, Ascend, Marconi, Cyclades e outros. Os modelos anteriores dos PDAs Palm e do Handspring Visor usavam o DragonBall, um derivado do 68000. A AlphaSmart usou a família DragonBall em versões posteriores de seus processadores de texto portáteis. A Texas Instruments usou o 68000 em suas calculadoras gráficas de ponta, as séries TI-89 e TI-92 e o Voyage 200.
Uma versão modificada do 68000 formou a base do emulador de hardware IBM XT/370 do processador System 370.

### Jogos eletrônicos

Os fabricantes de jogos eletrônicos usaram o 68000 como a fundação de muitos jogos de arcade e consoles de jogos domésticos: O Food Fight da Atari, de 1982, foi um dos primeiros jogos de arcade baseados no 68000. Outros incluíram o System 16 da Sega, o CP System e o CPS-2 da Capcom e o Neo Geo da SNK. No final da década de 1980, o 68000 era barato o suficiente para alimentar consoles de jogos domésticos, como o console Sega Genesis da Sega e também o acessório Sega CD para ele (um sistema Sega CD tem três CPUs, duas delas 68000). O console multiprocessador Atari Jaguar de 1993 usava um 68000 como chip de suporte, embora alguns desenvolvedores o usassem como processador principal devido à familiaridade. O console Sega Saturn usou o 68000 como coprocessador de som. Em outubro de 1995, o 68000 foi incluído em um console de jogos portátil, o Genesis Nomad da Sega, como sua CPU.
Alguns jogos de fliperama (como Steel Gunner e outros baseados no Namco System 2) usam uma configuração de CPU 68000 dupla, e também existem sistemas com uma configuração de CPU 68000 tripla (como Galaxy Force e outros baseados na placa Sega Y), além de uma configuração de CPU 68000 quádrupla, que foi usada pela Jaleco (um 68000 para som tem uma taxa de clock mais baixa em comparação com as outras CPUs 68000) para jogos como Big Run e Cisco Heat; outra, a quinta 68000 (com uma taxa de clock diferente das outras CPUs 68000) foi usada no jogo de fliperama Wild Pilot da Jaleco para processamento de entrada/saída (E/S).