# PDP-8

Na informática, o PDP-8 foi um minicomputador de 12 bits, produzido pela Digital Equipment Corporation (DEC) na década de 1960, mas introduzido em 22 de março de 1965. Considerado o primeiro sucesso comercial deste tamanho, com mais de 50 mil sistemas vendidos, mais do que qualquer computador até essa data. Foi o primeiro computador amplamente vendido das séries de computadores da DEC (o PDP-5 não foi originalmente destinado a ser um computador de uso geral).
O modelo mais antigo do PDP-8 (conhecido informalmente como "Straight-8"), usava diodos "Diode-transistor logic", embalados em placas Flip Chip, e era do tamanho de um frigobar.
Este foi seguido pelo PDP-8/S, um modelo desktop. Usando uma implementação de uma ALU serial de um bit, o PDP-8/S foi menor, menos caro, mas bem mais lento do que o original PDP-8.
Sistemas posteriores (o PDP-8/I e /L, o PDP-8/E, F, e /M, e PDP-8/A) retornaram a uma mais rápida, totalmente paralela, implementação mas usavam a mais barata lógica TTL e circuitos integrados MSI. A maioria dos PDP-8 sobreviventes são desta época. O PDP-8/E é comum e bem-visto porque muitos tipos de dispositivos de I/O estavam disponíveis para ele. Muitas vezes era configurado como um computador de uso geral.
Em 1975, os primeiros computadores pessoais de baixo custo baseados em microprocessadores, como o MITS Altair e depois o Apple II, começaram a dominar o mercado dos pequenos computadores de uso geral.
Os últimos modelos comerciais do PDP-8, em 1979, foram chamados de "CMOS-8" e usavam microprocessadores CMOS personalizados. Eles não estavam com preços competitivos, e a oferta não conseguiu demanda. O IBM PC, em 1981, cimentou a condenação do CMOS-8s, fazendo um legítimo e bem suportado computador com pequenos microprocessadores.
A intersil vendeu os circuitos integrados comercialmente até 1982, como a família Intersil 6100. Em virtude da tecnologia CMOS que tinha baixo consumo de energia e foram utilizadas em alguns sistemas militares embarcados.

## Importância para a arquitetura de computadores

O PDP-8 combinava baixo custo, simplicidade, capacidade de expansão e engenharia cuidadosa pelo valor pago. A maior importância histórica é que o baixo custo e alto volume de vendas do PDP-8 fizeram ele um computador disponível para muitos usos novos e pessoas. Seu significado contínuo é um exemplo histórico do valor da engenharia em um projeto de computador.
A baixa complexidade trouxe outros custos. Ela fez a programação pesada e alguns projetos de programação ambiciosos não cabiam na memória ou desenvolviam defeitos de projeto que não podiam ser resolvidos.
À medida que o avanço dos projetos reduziu os custos de lógica e memória, o tempo do programador se tornou mais importante. Projetos de computadores posteriores enfatizaram a facilidade de programação, normalmente usando um conjunto de instruções maior e mais intuitivo.

## Descrição

O PDP-8 usou ideias de vários antecessores de 12 bits, principalmente o LINC, desenhado por WA Clark e C.E. Molnar que foram inspirados pelo minicomputador CDC 160 de Seymour Cray.
A arquitetura tinha uma via de E/S programada simples, além de um canal de DMA. A via de E/S programada normalmente executava periféricos de baixa a média velocidade, tais como impressoras, teletipos, perfuradoras e leitoras de fitas de papel, enquanto a DMA era usada por vídeos com tubos de raios catódicos com uma caneta óptica, conversores analógico-digitais, conversores digital-analógicos, unidades de fita e acionadores de disco. O tamanho da palavra, 12 bits, era grande o suficiente para lidar com números inteiros sem sinal de 0 a 4095 - grande o suficiente para controlar máquinas simples. Para economizar dinheiro, o projeto utilizava memória principal barata para muitos fins, servidos pelos registradores flip-flops, mais caros, em outros computadores.
A configuração básica do PDP-8 tinha uma memória principal de 4096 palavras de 12 bits. Uma unidade de expansão de memória opcional podia mudar bancos destas memórias, utilizando as instruções IOT. Na sua concepção, a visão do programador do PDP-8 consistia de apenas oito instruções e dois registradores, (um acumulador de 12-bits, AC, e um carry bit chamado registro "link", L). A máquina utilizava memória de ferrite, com um ciclo de clock de 1,5 microssegundos, de modo que um típico ciclo de Busca e Execução (Fetch, Execute) de instruções de memória de referência ocorria a uma velocidade de 0.333 MIPS. O Cartão de referência bolso de 1974 estimava um tempo de instrução básica de 1,2 microsegundos, ou 2,6 microsegundos para instruções que referenciavam a memória. Máquinas posteriores acrescentaram um segundo registrador (o Multiplier/Quotient Register, MQ). Uma opção para aritmética elementar estendida adicionou instruções reais de multiplicação e divisão.
O PDP-8 foi optimizado visando simplicidade de projeto. A CPU do modelo de série, o PDP-8/S, tinha apenas cerca de 519 portas lógicas, enquanto microcontroladores pequenos (como os de 2008) geralmente têm 15 mil ou mais. Em comparação com máquinas mais complexas, os recursos desnecessários foram retirados, e a lógica era compartilhada quando possível. Instruções usavam autoincrementos, autoclear e acesso indireto para aumentar a velocidade do software, reduzir o uso de memória e substituir memória barata por registradores caros. Uma CPU básica do PDP-8 CPU tinha somente quatro registradores de 12 bits, um acumulador, um contador de programa, um registrador de buffer de memória e um registrador de endereço de memória. Para economizar dinheiro, esses eram utilizados para várias finalidades em diferentes pontos do ciclo operacional. Por exemplo, o buffer de memória de registo fornecia operandos aritméticos, era parte do registrador de instrução, e armazenava os dados para reescrever a memória principal. (Isso restaura os dados do núcleo destruído pela leitura.)
Apesar da sua simplicidade básica, o uso de módulos muito pequenos a tornou uma máquina cara, com uma grande parte do custo afundado em módulos pequenos, milhares de conectores banhados a ouro, e de complexo painéis com fios-encapados. Na versão 8/S duas voltagens lógicas diferentes foram utilizadas, uma maneira barata de aumentar o fan-out da barata lógica de diodo-transistor.

## Versões do PDP-8

O total das vendas para a família PDP-8 foi estimado em mais de 300 mil máquinas. Os seguintes modelos foram fabricados:
* PDP-8
* PDP-8/S
* PDP-8/I
* PDP-8/L
* PDP-12
* PDP-8/E
* PDP-8/F
* PDP-8/M
* PDP-8/A

### Implementações dos últimos dias

Entusiastas criaram sistemas PDP-8 completos usando simples dispositivos FPGA. (Isso é possível porque um PDP-8 completo, o seu sistema de memória principal, e os seus equipamentos de I/O são colectivamente muito menos complexos do que até mesmo a memória cache utilizada na maioria dos microprocessadores modernos.)
Várias simulações de software de um PDP-8 estão disponíveis na internet. A melhor delas executa corretamente o software de diagnóstico da DEC, e executa sistemas operacionais históricos e software. As simulações de software, muitas vezes simula os últimos "grandes" sistemas PDP-8 com todos os periféricos possíveis. Mesmo estes usam apenas uma pequena fração da capacidade de um moderno computador pessoal.

## Entrada/Saída

Os sistemas E/S foram submetidos a grandes mudanças durante a era do PDP-8. Modelos iniciais do PDP-8 usavam uma interface com painel frontal, uma leitora de fita de papel e uma impressora de teletipo com um perfurador de fita de papel opcional. Com o tempo, sistemas de E/S como fita magnética, RS-232 e terminais, leitoras de cartão perfurado, e discos de cabeça-fixa foram adicionados. Por volta do fim da era PDP-8, drives de disquetes e discos de cartucho com cabeça móvel eram unidades de E/S populares. Os adeptos modernos criaram adaptadores de disco rígido IDE nos estilos do padrão PC para computadores PDP-8 reais e simulados.
E/S era suportada por vários métodos diferentes:
* Slots dedicados In-backplane por controladores de E/S
* Uma via de E/S "negativa" (usando sinalização de voltagem negativa)
* Uma via de E/S "positiva" (a mesma arquitetura com sinalização TTL)
* O Omnibus (um plano de fundo de slots não dedicados)
Uma forma simplificada, de baixo custo de DMA chamada "quebra de dados de três ciclos" foi apoiada, o que exigiu a intervenção do processador. O método da "quebra de dados" mudou alguma lógica comum necessária para implementar DMA de E/S de cada dispositivo de E/S em uma cópia comum da lógica dentro do processador. A "quebra de dados" colocou o processador responsável por manter o endereço de DMA e registros de contagem de palavras. Em três ciclos sucessivos de memória, o processador atualizava a contagem de palavras, atualizava o endereço, a transferência e o armazenamento ou recuperação das palavras de dados de E/S.
Uma quebra de dados de três ciclos efetivamente triplicou a taxa de transferência DMA, pois apenas os dados de destino precisam ser transferidos de e para a memória principal. No entanto, os dispositivos de E/S necessitaram mais lógica eletrônica para gerir a sua própria contagem de palavras e registrar o endereço de transferência. Na época em que o PDP-8/E foi introduzido, a lógica eletrônica tornou-se menos cara e a "quebra de dados de um ciclo" se tornou mais popular.

## Facilidades de programação

Os primeiros sistemas PDP-8 não tinham um sistema operacional, apenas um painel frontal e interruptores para rodar programas e parar. Sistemas de desenvolvimento de software para a série PDP-8 começaram com as entradas mais básicas no painel frontal para código de máquina em binário.
Na era mediana, vários "sistemas operacionais" de fita de papel, foram desenvolvidos. Muitos programas utilitários se tornaram disponíveis em fita de papel. O código fonte da linguagem assembly do PAL-8 era armazenado em uma fita de papel, lido na memória, e convertido pra binário então salvo em uma uma nova fita de papel que podia ser executada no computador. Como o sistema binário não é inteligível para humanos, foram desenvolvidos interpretadores que convertiam para binário, incluindo o interpretador FOCAL da DEC, um compilador e um executável FORTRAN de 4k.
No final da era do PDP-8, sistemas operacionais como o OS/8 e o COS-310 já permitiam um editor tradicional de linha de comando e compiladores de sistema de desenvolvimento de linha de comando usando linguagens como a linguagem de montagem PAL-III, FORTRAN, BASIC, e DIBOL.