Translate

Mostrar mensagens com a etiqueta ponto flutuante. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta ponto flutuante. Mostrar todas as mensagens

quarta-feira, 6 de abril de 2016

Mainframe History : Parte IV — Z3: O Computador que Desafiou a História

 

Bellacosa Mainframe e o outro computador z parte iv

☕ Um Café no Bellacosa Mainframe

Muito Antes do IBM Z Existia Outro "Z"

Parte IV — Z3: O Computador que Desafiou a História

"Algumas máquinas são importantes porque venderam milhões de unidades. Outras porque inauguraram uma nova era. O Z3 pertence à segunda categoria."

Em nossa última viagem conhecemos o Z1, uma obra-prima da engenharia mecânica. Também vimos que Konrad Zuse rapidamente percebeu uma verdade que todo arquiteto de hardware aprende cedo ou tarde: uma ideia brilhante nem sempre resulta em uma máquina confiável.

As delicadas barras metálicas do Z1 representavam bits com elegância, mas também traziam um problema quase insolúvel para a tecnologia da época: precisão mecânica.

Bastava um pequeno desalinhamento.

Uma mola ligeiramente desgastada.

Uma barra que não deslizasse exatamente como deveria.

E toda a sequência lógica era comprometida.

Foi então que Zuse encontrou um velho conhecido da indústria telefônica.

O relé.

Essa decisão mudaria completamente o rumo do projeto.

O resultado apareceu em 1941.

Seu nome era Z3.

Hoje, muitos historiadores o consideram o primeiro computador programável, automático e funcional do mundo.


A Guerra Contra o Tempo

É impossível falar do Z3 sem lembrar do contexto histórico.

A Europa já estava mergulhada na Segunda Guerra Mundial.

Recursos eram escassos.

Materiais estratégicos eram destinados ao esforço militar.

Muitos cientistas foram direcionados para projetos ligados ao governo.

Mesmo assim, Konrad Zuse continuava perseguindo um sonho muito diferente.

Enquanto vários laboratórios buscavam construir máquinas específicas para resolver problemas militares, Zuse insistia em criar uma máquina de propósito geral.

Ele não queria apenas uma calculadora mais rápida.

Queria um computador.

Essa diferença parece pequena.

Na prática, mudava tudo.


O Que Tornava o Z3 Especial?

À primeira vista, o Z3 parecia um enorme armário metálico.

Quem esperasse uma máquina cheia de luzes piscando ficaria decepcionado.

Não havia telas.

Não havia monitores.

Não havia teclado.

Muito menos mouse.

O interior era ocupado por aproximadamente 2.600 relés eletromecânicos.

Cada relé funcionava como um interruptor controlado eletricamente.

Quando energizado, fechava um contato.

Quando desligado, abria esse contato.

Zero.

Um.

Ligado.

Desligado.

Mais uma vez, a essência da computação permanecia incrivelmente simples.


🔧 Oficina do Engenheiro

Um relé pode ser entendido como um ancestral direto do transistor.

A diferença é a escala.

Enquanto um transistor mede poucos nanômetros e muda de estado bilhões de vezes por segundo, um relé mede centímetros, produz um clique audível e leva alguns milissegundos para completar o movimento.

A lógica, entretanto, continua exatamente a mesma.


Os Bits Agora Faziam Barulho

Quem já trabalhou com antigas centrais telefônicas conhece aquele som característico.

"Clique."

"Clique."

"Clique."

Era exatamente isso que acontecia dentro do Z3.

Cada operação matemática produzia centenas ou milhares de pequenos estalos.

Era possível literalmente ouvir a computação acontecendo.

Hoje um IBM z17 executa bilhões de instruções em absoluto silêncio.

No Z3, cada cálculo possuía uma trilha sonora própria.

Imagine um programa COBOL executando um SORT.

Agora imagine ouvir cada comparação de chaves.

Era quase isso.


☕ Café com Naftalina

Se um Sysprog pudesse viajar no tempo e entrar na sala onde o Z3 funcionava, provavelmente estranharia a ausência de consoles, telas e LEDs.

Mas reconheceria imediatamente outra coisa.

A disciplina.

A organização.

Os procedimentos.

A preocupação constante com confiabilidade.

A engenharia de sistemas já existia muito antes do termo "TI" ser criado.


Finalmente, um Computador Confiável

O grande mérito do Z3 não foi apenas ser mais rápido.

Foi ser muito mais confiável.

Os relés eliminavam boa parte dos problemas mecânicos do Z1.

Embora ainda fossem componentes móveis, possuíam repetibilidade muito maior.

A máquina conseguia executar programas completos.

Realizar sequências complexas de operações.

Produzir resultados consistentes.

Esse era o verdadeiro salto tecnológico.

Pela primeira vez, um computador deixava de ser apenas um experimento de laboratório para se tornar uma ferramenta realmente utilizável.


A Arquitetura Continua Familiar

Se desmontássemos conceitualmente um Z3, encontraríamos elementos que qualquer profissional IBM Z reconheceria.

Uma unidade de controle.

Uma unidade aritmética.

Memória.

Dispositivos de entrada.

Dispositivos de saída.

Fluxo de instruções.

Sincronização.

Hoje chamamos isso de arquitetura de computadores.

Naquela época, era simplesmente o projeto de Zuse.


Memória e Precisão

O Z3 manteve o uso de números em ponto flutuante.

Essa decisão revela o quanto Zuse pensava como engenheiro.

Ele não queria apenas resolver problemas acadêmicos.

Queria calcular estruturas.

Pontes.

Edifícios.

Componentes aeronáuticos.

Problemas reais exigiam precisão.

Essa preocupação permanece viva até hoje.

Quando um banco executa cálculos financeiros em um IBM Z, espera exatamente o mesmo comportamento: resultados previsíveis, repetíveis e corretos.


📦 Baú do Sysprog

Uma das características mais admiradas dos mainframes IBM é sua capacidade de produzir exatamente o mesmo resultado milhões de vezes, sem desvios.

Esse conceito de previsibilidade já era uma obsessão de Konrad Zuse.

Mesmo trabalhando com relés, ele buscava eliminar qualquer comportamento imprevisível da máquina.


Programando o Z3

O programa continuava sendo armazenado externamente.

Nada de SSD.

Nada de DASD.

Nada de FICON.

Nada de NVMe.

As instruções eram fornecidas por meio de filme perfurado.

Cada furo representava uma operação.

Hoje carregamos programas em memória utilizando LOAD, Binder e Program Objects.

Na época, bastava posicionar corretamente uma longa fita perfurada.

A tecnologia mudou.

A ideia permaneceu.

Separar o programa da máquina.


O Que Faltava?

Curiosamente, o Z3 já possuía quase todos os ingredientes da computação moderna.

Mas ainda havia limitações importantes.

Os programas não eram armazenados na própria memória.

A velocidade dos relés ainda era modesta.

A capacidade de memória era pequena.

Mesmo assim, a fundação estava pronta.

Tudo o que viria depois — válvulas, transistores, circuitos integrados, microprocessadores e processadores Telum — apenas refinaria uma arquitetura cujo esqueleto já existia.


Enquanto Isso, no Outro Lado do Mundo...

Durante muitos anos, o ENIAC foi apresentado como "o primeiro computador".

Hoje sabemos que essa afirmação precisa de contexto.

O ENIAC foi extraordinário.

Assim como o Colossus.

Assim como o Harvard Mark I.

Cada um resolveu problemas diferentes utilizando tecnologias diferentes.

O Z3, entretanto, possuía características que o colocam em posição única.

Era automático.

Programável.

Digital.

Baseado em sistema binário.

Capaz de executar diferentes sequências de instruções.

Por isso, muitos historiadores defendem que ele merece o título de primeiro computador programável plenamente funcional.

Mais importante do que decidir quem "chegou primeiro" é compreender que a computação moderna nasceu de várias mentes brilhantes trabalhando, muitas vezes sem conhecer os projetos umas das outras.


O Que um Sysprog Aprende com o Z3?

A história do Z3 ensina uma lição que continua extremamente atual.

Não basta inovar.

É preciso construir sistemas confiáveis.

Qualquer profissional IBM Mainframe sabe que disponibilidade é uma característica de projeto, não um acidente.

Um sistema precisa continuar funcionando quando submetido à carga.

Precisa produzir resultados corretos.

Precisa ser previsível.

Essa cultura, tão presente no universo IBM Z, encontra um de seus ancestrais no trabalho de Konrad Zuse.

Ele percebeu que um computador não seria revolucionário apenas porque realizava cálculos.

Seria revolucionário quando pudesse fazê-los repetidamente, corretamente e com confiança.

Essa filosofia atravessou décadas.

Chegou ao System/360.

Ao ESA/390.

Ao zSeries.

Ao IBM Z.

E continua viva em cada IPL bem-sucedido, em cada transação CICS concluída e em cada lote encerrado com RC=0000.


No Próximo Café...

A guerra termina.

Berlim está em ruínas.

Muitos acreditavam que o trabalho de Konrad Zuse também havia acabado.

Estavam enganados.

Na próxima parte conheceremos o Z4, o computador que sobreviveu à guerra, cruzou montanhas, encontrou abrigo na Suíça e se tornou um dos primeiros computadores comerciais da Europa.

É uma história de engenharia, coragem e persistência.

Porque algumas máquinas não apenas processam dados.

Elas sobrevivem à própria História.

☕ Um Café no Bellacosa Mainframe

Histórias com Cheiro de Naftalina

O Guia do Viajante do Tempo

Muito Antes do IBM Z Existia Outro “Z”

Viaje pelas origens da computação, conhecendo Konrad Zuse, Herman Hollerith, Tommy Flowers, John von Neumann, o Colossus, o EDVAC, o IBM System/360 e os pioneiros que construíram o caminho até o IBM Z.

ARTIGO SELECIONADO

O Guia do Viajante do Tempo

Abrir em nova guia ↗
Preparando a máquina do tempo...

Caso o navegador impeça a exibição incorporada, utilize o botão Abrir em nova guia.

☕ Quem não conhece o passado não entende o código do futuro.

Bellacosa Mainframe — tecnologia, história, COBOL, IBM Z e memória.

sexta-feira, 12 de fevereiro de 2016

Mainframe History : Parte II — Abrindo a Tampa do Z1: Quando os Bits Eram Feitos de Aço

Bellacosa Mainframe apresenta o outro computador z parte ii

☕ Um Café no Bellacosa Mainframe

Muito Antes do IBM Z Existia Outro "Z"

Parte II — Abrindo a Tampa do Z1: Quando os Bits Eram Feitos de Aço

"Existem computadores que impressionam pela velocidade. Outros, pela capacidade de armazenamento. O Z1 impressiona por um motivo diferente: ele simplesmente não deveria funcionar. E, ainda assim, funcionou."

Na primeira parte da nossa série, conhecemos um jovem engenheiro chamado Konrad Zuse, que decidiu transformar a sala de estar dos pais em um laboratório de pesquisa e, sem saber, iniciou uma revolução que mudaria para sempre a história da computação.

Hoje faremos algo que qualquer Sysprog adoraria.

Vamos abrir a tampa do computador.

Não de um IBM z17.

Nem de um IBM 4381.

Nem de um System/360.

Vamos abrir um computador construído entre 1936 e 1938.

Prepare-se para uma experiência curiosa.

Ao retirar sua tampa, você não encontrará placas eletrônicas.

Não verá chips.

Nem memórias DRAM.

Muito menos processadores multicore.

O que aparecerá diante de seus olhos será algo muito mais surpreendente.

Milhares de pequenas peças metálicas.

Barras.

Pinos.

Molas.

Alavancas.

Guias deslizantes.

Pequenos componentes cuidadosamente alinhados para representar aquilo que hoje chamamos simplesmente de bit.

Era uma CPU construída como um relógio suíço.

Só que infinitamente mais complicada.


O Computador Parecia uma Máquina Industrial

Imagine entrar em um datacenter moderno.

Agora esqueça tudo.

O Z1 não lembrava um computador.

Ele parecia uma mistura de máquina de costura industrial, relógio mecânico gigante e equipamento de laboratório.

Sua estrutura era composta por chapas metálicas montadas em diversos níveis.

As peças deslizavam horizontalmente.

Outras moviam-se verticalmente.

Algumas giravam.

Outras apenas empurravam pequenos mecanismos.

Cada movimento representava informação.

Hoje utilizamos bilhões de transistores.

Konrad Zuse utilizava movimentos físicos.

O computador literalmente "pensava" movendo metal.


O Menor Habitante do Z1

Todo Sysprog sabe que um IBM Z trabalha internamente com bits.

Mas o que exatamente é um bit?

Hoje a resposta é simples.

Um transistor conduz corrente.

Ou não conduz.

Existe tensão.

Ou não existe.

No Z1, entretanto, um bit era algo completamente diferente.

Imagine uma pequena chapa metálica que pode deslizar alguns milímetros.

Quando está para a esquerda:

Quando está para a direita:

Pronto.

Acabamos de criar um bit.

Cada pequena barra metálica possuía apenas duas posições estáveis.

Da mesma maneira que um transistor moderno possui dois estados elétricos, aquela pequena peça possuía dois estados mecânicos.

É difícil imaginar algo mais simples.

E, ao mesmo tempo, mais genial.


🔧 Oficina do Engenheiro

Em engenharia digital, pouco importa como representamos um bit.

Pode ser:

  • tensão elétrica;

  • magnetização;

  • luz;

  • carga elétrica;

  • posição mecânica.

O importante é que existam dois estados claramente distinguíveis.

Esse conceito permanece absolutamente inalterado até hoje.

O IBM z17 continua trabalhando exatamente com a mesma lógica binária.

Mudou apenas a tecnologia utilizada para representar esses estados.


A CPU Não Executava Instruções Elétricas

Esse talvez seja o aspecto mais fascinante do Z1.

Não havia eletricidade realizando operações lógicas.

As operações aconteciam por meio do movimento sincronizado de milhares de pequenas peças.

Quando uma barra era deslocada, empurrava outra.

Que deslocava uma terceira.

Que liberava uma quarta.

Era quase um gigantesco efeito dominó cuidadosamente projetado.

Imagine um enorme mecanismo de relógio.

Agora substitua ponteiros por operações matemáticas.

Era exatamente isso.


O Somador Mecânico

Vamos imaginar uma soma extremamente simples.

1 + 1

Hoje um processador resolve isso em uma fração de nanossegundo.

No Z1, essa operação era quase uma coreografia.

Cada bit percorria um caminho físico.

Alavancas verificavam combinações.

Outras geravam transporte (carry).

Outras propagavam o resultado.

Era um circuito lógico.

Só que construído em aço.

Em vez de portas AND e OR feitas de transistores, havia mecanismos cuidadosamente desenhados para produzir exatamente o mesmo comportamento lógico.

Isso é talvez o maior ensinamento de Zuse.

A lógica independe da tecnologia.

Ela pode ser implementada com válvulas.

Relés.

Transistores.

Circuitos integrados.

Ou pequenas chapas metálicas.


Registradores... Antes dos Registradores

Um Sysprog acostumado a analisar dumps conhece bem registradores como:

R0
R1
R15

PSW

CRs

ARs

No Z1 ainda não existia essa nomenclatura.

Mas existia o conceito.

A CPU precisava manter temporariamente valores durante um cálculo.

Onde armazená-los?

Em pequenos conjuntos de mecanismos mecânicos.

Cada conjunto mantinha uma palavra binária.

Era, na prática, um registrador.

A nomenclatura ainda não existia.

A necessidade já existia.


A Unidade Lógica e Aritmética

Hoje chamamos essa área de ALU.

Arithmetic Logic Unit.

Ela executa:

  • soma;

  • subtração;

  • multiplicação;

  • divisão;

  • comparação.

No Z1 acontecia exatamente o mesmo.

A diferença estava na velocidade.

Cada operação exigia dezenas ou centenas de pequenos movimentos físicos.

Mesmo assim, a arquitetura era surpreendentemente elegante.

Zuse separou claramente:

  • armazenamento;

  • controle;

  • cálculo.

Se isso parece familiar...

É porque continua sendo exatamente assim dentro de um IBM Z.


☕ Café com Naftalina

Enquanto você lê este artigo, um processador IBM z17 executa bilhões de instruções por segundo.

O Z1 precisava de aproximadamente um segundo para concluir uma simples soma.

Mesmo assim, ambos obedecem ao mesmo princípio:

Receber dados.

Executar instruções.

Produzir resultados.

A essência da computação continua incrivelmente parecida.


A Memória

Chegamos ao coração do computador.

A memória do Z1.

Hoje medimos memória em:

Gigabytes.

Terabytes.

Petabytes.

O Z1 possuía aproximadamente:

64 palavras de 22 bits.

Isso representa cerca de:

1.408 bits.

Ou aproximadamente:

176 bytes.

Isso mesmo.

Toda a memória do computador caberia facilmente dentro de uma única linha de um arquivo SYSIN moderno.

Um emoji ocupa mais espaço.

Uma variável COBOL COMP-3 relativamente pequena pode consumir uma parcela significativa dessa capacidade.

É quase inacreditável.


Como Funcionava a Memória?

Cada palavra era formada por mecanismos mecânicos independentes.

Cada bit correspondia à posição de uma pequena placa deslizante.

Quando uma operação solicitava leitura, mecanismos específicos consultavam essas posições.

Quando era necessário gravar um novo valor, as barras eram reposicionadas.

Era uma memória de acesso mecânico relativamente rápido para a época.

Mas extremamente delicada.

Bastava um pequeno desalinhamento para que toda a operação falhasse.


Um Sysprog Reconheceria o Problema

Quem administra IBM Z conhece bem uma palavra.

Confiabilidade.

Ela é praticamente uma obsessão.

ECC.

RAIM.

Redundância.

Detecção de erros.

Retry.

Recover.

Hardware Spare.

Dynamic Repair.

No Z1 praticamente nada disso existia.

Se uma barra metálica não se movesse exatamente como deveria...

O cálculo inteiro poderia ser perdido.

A mecânica impunha um limite que Zuse logo perceberia.

Era preciso abandonar parte das peças móveis.

Essa percepção levaria diretamente ao desenvolvimento do Z2.

Mas essa será outra história.


O Ponto Flutuante

Talvez a característica mais impressionante do Z1 seja justamente aquela que muitos leitores menos esperam.

Ele trabalhava com números em ponto flutuante.

Estamos falando de 1938.

Décadas antes da padronização IEEE-754.

Enquanto muitas calculadoras realizavam apenas operações inteiras, Zuse já compreendia que engenheiros precisavam trabalhar com grandezas muito diferentes.

Distâncias.

Pesos.

Velocidades.

Forças.

Pressões.

Tudo isso exigia números fracionários.

Seu formato utilizava:

  • sinal;

  • expoente;

  • mantissa.

Parece familiar?

Deveria parecer.

O conceito permanece vivo até hoje.


📦 Baú do Sysprog

Quando um programa COBOL executa cálculos utilizando COMP-1 ou COMP-2, existe uma longa história por trás dessa representação.

Décadas antes da padronização dos formatos modernos, Konrad Zuse já compreendia que a engenharia precisava de uma forma eficiente de representar números muito pequenos e muito grandes.


Quem Dava o Clock?

Hoje um IBM z17 trabalha com frequências de vários gigahertz.

Bilhões de pulsos por segundo.

No Z1...

O clock era produzido por uma manivela.

Isso mesmo.

O operador girava uma manivela.

Cada movimento sincronizava milhares de componentes.

Mais tarde motores elétricos passaram a auxiliar esse processo.

Mas a ideia permanecia a mesma.

Todo computador precisa de sincronização.

Todo computador precisa de um ritmo.

Todo computador precisa de um "coração".


O Que Impressiona Não É a Velocidade

Quando observamos um IBM Z moderno, nossa atenção naturalmente se volta para desempenho.

No Z1 acontece exatamente o contrário.

O que impressiona não é sua velocidade.

É o fato de que alguém conseguiu imaginar toda essa arquitetura antes mesmo da existência da eletrônica digital.

Essa é a verdadeira genialidade de Konrad Zuse.

Ele não inventou apenas uma máquina.

Inventou uma forma completamente nova de pensar sobre máquinas.


O Olhar de um Sysprog

Quando administramos um ambiente IBM Z, frequentemente enxergamos apenas a camada mais visível da tecnologia.

Um IPL.

Um dump.

Uma LPAR.

Um JES2.

Um RMF.

Um WLM.

Mas, por trás de tudo isso, continuam existindo conceitos extremamente antigos.

Bits.

Registradores.

Memória.

Clock.

Execução sequencial.

Sincronização.

Estado.

Controle.

Esses fundamentos atravessaram gerações de hardware praticamente intactos.

Mudaram os materiais.

Mudaram as dimensões.

Mudou a velocidade.

Mudou a escala.

A lógica permaneceu.

E talvez essa seja a maior lição do Z1.


No Próximo Café...

Na próxima parte da nossa série, ouviremos um novo som ecoar pela oficina de Konrad Zuse.

O barulho seco de centenas de relés telefônicos substituindo parte das delicadas engrenagens mecânicas.

Nascia o Z2.

O computador começava a trocar músculos de aço por impulsos elétricos.

Era o primeiro passo rumo aos computadores eletromecânicos e, mais tarde, aos gigantes eletrônicos que culminariam nos System/360 e, décadas depois, no IBM Z.

Porque toda grande jornada da computação começou com um simples clique.

Antes dos transistores.

Antes das válvulas.

Antes mesmo do primeiro byte armazenado em memória eletrônica.

☕ Um Café no Bellacosa Mainframe

Histórias com Cheiro de Naftalina

O Guia do Viajante do Tempo

Muito Antes do IBM Z Existia Outro “Z”

Viaje pelas origens da computação, conhecendo Konrad Zuse, Herman Hollerith, Tommy Flowers, John von Neumann, o Colossus, o EDVAC, o IBM System/360 e os pioneiros que construíram o caminho até o IBM Z.

ARTIGO SELECIONADO

O Guia do Viajante do Tempo

Abrir em nova guia ↗
Preparando a máquina do tempo...

Caso o navegador impeça a exibição incorporada, utilize o botão Abrir em nova guia.

☕ Quem não conhece o passado não entende o código do futuro.

Bellacosa Mainframe — tecnologia, história, COBOL, IBM Z e memória.