Como vocês sabem, publicamos recentemente um episódio em 2 partes falando do Motorola 68000, o terceiro da Santíssima Trindade de Processadores Retrocomputacional. Se você ainda não ouviu, vai lá e ouça:
Episódio 25 – Parte A – Dossiê Motorola 68000
Episódio 25 – Parte B – Dossiê Motorola 68000
E, então, recebemos dois e-mails muito detalhados de nada mais, nada menos que Jecel Mattos de Assumpção Jr., um dos unsung heroes da microinformática nacional. Não lemos o e-mail do Jecel (como vocês ouviram no episódio 26c), mas preferimos publicar o texto integral, para deleite de vocês, como complemento (aliás, tudo o que o Jecel falou tudo renderia mais um episódio!).
E segue o e-mail!
Parabéns pelo RetroRio 2012! Este foi evento que fiquei mais triste de
não poder participar este ano, mas eu tinha outro compromisso. Espero
que tenham mais edições.
O episódio sobre o 68000 ficou muito bom e vocês conseguiram trazer um
monte de informações interessantes sobre este chip tão importante. Como
eu trabalhei muito com este processador, tenho alguns comentários sobre
as partes A e B e também algumas curiosidades:
- As empresas MOS Tech (comprada pela Commodore) e a Mostek eram totalmente diferentes.
- “Encapsulamento” normalmente é usado para a camada em volta do chip pelado. Pode ser de cerâmica ou de plástico, tipo DIP ou PLCC, de 68 ou 40 pinos e assim por diante. O termo que usamos para indicar se um chip é HMOS ou CMOS é “tecnologia de fabricação” ou “processo de fabricação”.
- A Philips fez o 68070, que era um 68000 com controladores de DMA e de interrupção. Mais ou menos o que o 186 era para o 8086. Este chip foi lançado mais ou menos na mesma época que o 68020. Se eu não me engano, o 68070 rodando o OS-9 foi a base para o CDI (CD Interactive) que foi uma espécie de console que a Philips lançou.
- 40 mil é uma boa estimativa do número de transistores deste processador, mas quase todos os artigos da época falavam em 68 mil transistores. É possível que isso tenha sido uma jogada de marketing, já que o nome veio de 10 * 6800. Em uma ROM de 1KB, por exemplo, além dos transistores dos buffers, decodificadores de endereços e coisas do tipo você pode ter até 8192 transistores para implementar os bits. No caso de uma ROM com tudo zero você não teria nenhum destes transistores e numa ROM só com uns teria os 8192. Com um conteúdo mais realista, o número poderia ser 3945, por exemplo. Da mesma forma, nas PLAs do processador 68000 existe lugar para um certo número de transistores mais nem todos estão implementados. Se forem contados apenas os que realmente existem o total é mais próximo de 40 mil, mas se forem contados todos os transistores potenciais então o número 68 mil não estaria completamente errado.
- O 68020 implementou certas instruções para dar suporte à programação modular. As linguagens Modula-2 e Ada estavam na moda e tanto o 32016 da National quanto o 286 da Intel faziam muita propaganda deste recurso.
- Com a popularização do C, a Motorola resolveu que tinha feito uma grande burrada. Por isso eliminou estas instruções do 68030 que ficou apenas 90% compatível com seu antecessor. E ninguém sentiu falta destas instruções.
- É possível sim saber quem fez o 68000. Vou simplesmente copiar o trecho relevante de http://www.cs.clemson.edu/~mark/architects.html
68000, 1979 – Skip Stritter (lead architect), John Zolnowsky, and Tom Gunter (design manager)
Skip Stritter and David Leitch began the instruction set definition, and John Zolnowsky did most of the detailed work. The instruction set design was based heavily on Len Shustek’s PhD thesis. Len, Skip, and John had worked together on their PhDs at Stanford (all under Forest Baskett?).
logic design and microcode – Nick Tredennick
bus controller – Tom Gunter
bus protocol and TTL breadboard – Les Crudele
circuit design – Doyle McAlister and Richard Crisp
circuit simulation – Mike Spak
software performance evaluation – Paul Lee
see E. Stritter and T. Gunter, “A Microprocessor Architecture for a Changing World: The Motorola 68000,” IEEE Computer, Feb. 1979, pp. 43-52.
Nick Tredennick has written about the design effort in “Experiences in Commercial VLSI Microprocessor Design,” Microprocessors and Microsystems, October 1988, pp. 419-432.
68881/2 (FPU) – Joel Boney, Van Shahan, Ashok Someshwar (sp?), and Clay Huntsman
68010, 1983 – John Zolnowsky (inst. set extensions) and Doug MacGregor (microcode)
68020, 1985 – Bill Moyer, Dave Mothersole, John Zolnowsky, and Doug MacGregor (microcode)
68030, 1987 – Joel Boney (architecture design manager), Doug MacGregor, Bill Moyer, and Sharon Lamb (who got things started)
microcode by Raju Vegesna, microcode assembler by Ed Rupp
68040, 1991 – Van Shahan was the main architect
68060, 1994 – Joe Circello
Joe Circello, 68060 video (Hot Chips VI), August 1994
- O TripOS foi escrito em BCPL (Basic CPL, que como o nome indica é uma simplificação do CPL – Combined Programming Language) que serviu de inspiração para o B e o C. Pelo que eu sei, nenhum programa sério foi escrito em B. O BCPL também foi muito usado pela Xerox PARC antes deles criarem a linguagem MESA para substituí-lo.
- Além dos muitos micros com 68000 que vocês mencionaram, teve uma onda de computadores profissionais logo no início: Corvus Concept, Sage (mais tarde o nome mudou para Stride), Fortune 32:16, Wicat, TRS-80 Model 16, etc.
- Eu tenho um livro da Motorola de 1983 chamado “Motorola Microprocessor Software Catalog” que lista os seguintes sistemas operacionais estilo Unix: Regulus, Unos, Idris, Coherent, RTU, Uni-Dol, Spectrix, Uniflex, Unix e Uniplus. Também tem estes sistemas não Unix: DSSDOS, CP/M, Forth, 68000/PDOS, Adax, PDOS, MSP/68000, VTRX/68000, MTOS-68K, C Executive, OS-9, RMS68K, VERSAdos, BOS, OASYS, RM/COS, UCSD P-System, PSOS-68K, SDOS, Humbus, Star-DOS.
- O 68010 não apenas acrescentou o recurso de memória virtual ao 68000, mas também a funcionalidade de máquina virtual como nos IBM 370. Os processadores x86 só implementaram este recurso na última década.
- A interface com a memória do 68000 era normalmente totalmente diferente do 6800, mas se tornava compatível se certo sinal fosse acionado.
- O 68000 tinha 24 bits de endereço: do A23 ao A0. Enquanto o A23 ao A1 iam direto para os pinos, o A0 era usado para controlar dois pinos: UDS (upper data strobe) e LDS (lower data strobe).
- Os processadores 68020 em diante podiam usar memórias e periféricos de 32 bits, de 16 bits e de 8 bits. Assim, daria para construir uma máquina 68020 de 8 bits sem que fosse necessário uma versão especial do processador como o 68008.
- A Motorola desenvolveu seu próprio processador RISC, o 88000, em paralelo com o 68040 e depois 68060. As duas linhas acabaram sendo substituídas pelo PowerPC.
E você acha que a aula sobre 68000 acabou? Não. Amanhã tem mais!
Mais uma pequena correção: a empresa que o Steve Jobs comprou e que já tinha um produto foi a Pixar (que vendia um supercomputador gráfico). A NeXT ele criou do zero principalmente com pessoas que ele contratou da Apple (a Apple processou ele por isso, mas eles acabaram se acertando).