A evolução da plataforma IBM no computador pessoal

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket
Plataforma IBM

Agora eu sei: que depois de uma certa idade toda pessoa começa a se dar conta de um monte de eventos que pontuam a evolução de um determinado sistema ou projeto que envolve noções de tecnologia. Mas, para se chegar a tal consciência sempre foi preciso um mínimo de participação na aquisição do conhecimento.

Esta aquisição é a chave da evolução do próprio ser humano também, mas nem todo mundo, eu diria a maioria, não participa dela, por qualquer motivo.

Uma vez, aconteceu comigo de estar dentro da sala de aula, tentando motivar alunos de um curso de extensão que eu estava ministrando, que era de uma complexidade difícil para os não iniciados.

E eu contei para os alunos uma cena singular do filme “Jurassic Park”, não por coincidência escrita por um biólogo. Na cena, os cientistas Grant e Ellie, junto com as crianças Tim e Lex, estão sendo acossados por um Veloceraptor, com risco de morrer. Mas, Lex, obcecada por computadores, identifica no monitor um sistema Unix, se não me engano, e diz “eu conheço isso” e corre atrás da solução que permitiria aumentar a segurança do lugar onde eles estavam.

Eu disse aos alunos o óbvio: de que o significado desta cena era provar que quando a gente está diante de uma situação desastrosa, é o conhecimento adquirido de alguma coisa que nos salva!

Ao longo de muitos anos, a informática no Brasil fez parte de um grupo pequeno e fechado. E esta situação ficou agravada com a medida protecionista que levou o nome de “Lei da reserva de informática”, que proibiu a importação de computadores para o país.

Durante anos a fio, as pessoas olhavam computadores como “coisa para gênios”, e a explicação é muito simples: as primeiras plataformas construídas exigiam o aprendizado formal de aspectos diversos da ciência da computação.

No nosso antigo ambiente de trabalho, eu e alguns colegas do Núcleo de Pesquisas de Produtos Naturais (atualmente um Instituto) começamos a imaginar como seria útil ter um computador capaz de executar tarefas inglórias com precisão e eficiência.

Desta forma não se usariam mais calculadoras de bolso ou papel milimetrado, o trabalho seria simplificado e relatórios seriam impressos, garantindo reprodutibilidade e fidedignidade de resultados.

Mas, infelizmente, o acesso à formação de pessoal não ligado às áreas onde o ensino de informática era ministrado dentro da universidade nos impediu de ir adiante.

Eu já estava na fase de preparação da minha suada tese de mestrado, quando resolvi encarar o problema do meu jeito, longe do ideal, mas fazer o quê? As primeiras noções que eu aprendi vieram de catálogos da Hewlett-Packard, verdadeiras bíblias, leitura indigesta, porém suficientemente didáticas para um leigo do meu nível, que era o mais baixo possível.

Todo o trabalho estatístico da minha tese foi então feito com a ajuda de programas rudimentares, gravados em cartão magnético, que rodavam em uma calculadora avantajada HP-9810A, dotadas de cartuchos com funções pré-programadas.

A evolução das plataformas IBM

Na década segunte, o Núcleo de Computação Eletrônica (NCE) da UFRJ começou a oferecer um curso básico de formação para os professores. Um colega do Instituto de Matemática, o Luciano, gente finíssima, dirigiu-se à turma de uns cinquenta professores, e anunciou que seriam exigidos três trabalhos e seria aplicada uma prova. Na semana seguinte, dos cinquenta docentes sobraram uns vinte!

Para se ver como a coisa era inóspita. Não bastava aprender apenas como programar, antes de mais nada seria preciso conhecer como um computador funciona, e isso era muito penoso, principalmente porque dentro do NCE haviam sido construídos computadores pessoais de 8 bits, dotados de drives gigantescos para discos flexíveis de 8 polegadas, e que rodavam CP/M.

Aqueles que resistiram à ideia de desistir do curso e queriam ir até o fim exigiram do Luciano pelo menos uma reserva de duas (!) horas dentro do laboratório, na frente daquelas máquinas que nenhum de nós conhecia. O próprio Luciano escrevia no quadro uma rotina qualquer e dizia brincando “testem porque eu não sei se funciona…

Esse primitivismo e a improvisação na sala de aula, ambos envolvidos no processo de aprendizagem nos trouxeram apenas um benefício: a consciência de que se a gente quisesse avançar ia ter que se virar de alguma forma. E foi exatamente o que eu fiz.

No final da década da década de 1970, o único recurso de computação de dados do qual o nosso departamento dispunha era aquela máquina HP de mesa. Na central analítica do NPPN um computador que mais parecia um armário dava suporte aos ensaios de ressonância nuclear magnética e espectrometria de massa. Anos depois, este “armário” foi substituído por um daqueles micros TK qualquer coisa, e um colega do então NPPN ria às bandeiras despregadas, quando me contou a façanha…

Pois é, caros leitores, a microinformática acabou com os grandes computadores usados nos mainframes e em outras aplicações administrativas ou científicas. Antes disso, somente os iniciados tinham acesso a programas que se faziam necessários.

Eu sozinho passei por 8 bits, 16 bits, etc., processadores Zilog Z80A (8 bits), Intel 8086, 80286, 80386, 80486, Pentium de vários batimentos, e anos mais tarde AMD Phenom, FX e agora Ryzen. Meu primeiro micro montado em casa foi um Pentium de segunda geração. Não me lembro mais exatamente o clock, mas devia girar em torno de um trezentos e lá vai fumaça mega-hertz.

O que mudou através dos anos

Na minha ótica, a primeira grande mudança nos computadores pessoais usados para trabalho foi a introdução de um coprocessador aritmético a preços abordáveis!

Pouca gente que eu conhecia na época se deu conta da mudança do ambiente operacional pela introdução de um coprocessador deste tipo, culpa em parte da Microsoft, que ao copiar a interface gráfica da Apple, não o fez inicialmente de forma correta.

Foi somente depois do Windows 3.1 que tudo clareou. Anteriormente, um programa processador de texto utilizava uma tabela de caracteres armazenada na ROM das impressoras. O usuário digitava um texto, e na impressão os códigos dos caracteres eram traduzidos por um driver e enviados para a impressora.

Este tipo de arquitetura obrigava a instalação de um driver específico para a impressora usada. Com a mudança de ambiente, passou-se a adotar o que se chamava de métrica da fonte, que é usada até hoje. Com ela, o usuário escolhia um tamanho e formato da fonte, e o computador calculava os pontos finais que iriam dar a imagem da fonte na tela e no papel. Isso também obrigou os fabricantes de impressora a oferecer modelos que pudessem trabalhar em modo gráfico. Mas, com a abolição dos códigos das tabelas de caracteres acabou aquele drama de imprimir texto com caracteres trocados.

O coprocessador aritmético fazia um processador de texto rodar muito mais rápido, porque o cálculo do tamanho da fonte era também usado para mostrar a fonte na tela do monitor (execução em tempo real), e se o usuário abrisse uma planilha com cálculos complexos o benefício do coprocessador era imediato! O áudio digital foi outro tipo de aplicação que se beneficiou enormemente da capacidade de cálculo no sistema.

A instalação de um coprocessador aritmético, peça que inicialmente custava uma grana sentida, foi subsequentemente substituída pela sua incorporação na arquitetura da unidade central de processamento (CPU). A esta altura a maioria dos programas da plataforma IBM-PC rodava em ambiente Windows.

O ambiente gráfico, primeiro desenhado para os computadores Apple Macintosh e depois copiado para as plataformas do IBM-PC, mudou a forma como os usuários interagem com a máquina. A mudança não foi imediata. As primeiras versões de Windows todas elas contemplaram a prioridade de execução de programas ainda rodando em ambiente DOS. Inicialmente, o Windows era lançado no ar através do prompt do DOS inclusive. Durante algum tempo o meu computador de trabalho ao dar partida rodava um arquivo autoexec.bat com as instruções para rodar o Windows do momento. Em tempo hábil, a Microsoft viu que isso era totalmente desnecessário e o instalador do Windows mudou, de maneira a rodar o sistema diretamente na partida a frio da máquina.

A interface gráfica do sistema operacional trouxe o imenso benefício de aumentar o escopo de usuários que anteriormente se intimidavam com o uso do computador. Esta experiência eu tive diversas vezes dentro do laboratório, até bem recentemente, porque durante muitos anos os alunos que vinham fazer pesquisas não usavam computadores em casa com softwares avançados. Deste modo, o treinamento para o uso de programas ficou facilitado pelo uso de ícones acionados com o mouse. Por incrível que pareça, eu cheguei a ensinar como usar um mouse para vários colegas e alunos, acreditem se quiser.

Por outro lado, a interface gráfica aboliu quase que por completo a compreensão do funcionamento mais básico de um computador. Salvar um arquivo, por exemplo, que é uma noção super básica, também precisou ser aprendida por quem estagiou conosco. Os estágios de trabalho, coisas como criar e salvar, eram, na minha opinião, muito mais intuitivos na era pré-ambiente operacional gráfico. Sem falar em cópias (backup) e outros quesitos.

Evolução para os multiprocessadores

Não há dúvida no meu espírito que o grande salto das plataformas operacionais se deu quando os fabricantes de processadores passaram a adotar uma microarquitetura nas CPUs semelhante àquela de um super computador. E com isso, abriu-se uma possibilidade de criar o que se convencionou chamar de “Computação de Alta Performance” (do inglês “High Performance Computing” ou HPC), habilitável em vários tipos de firmware.

O modo HPC não teria sido possível se as CPUs não fossem dotadas de múltiplos núcleos, que são, para fins práticos, CPUs independentes dentro de uma única CPU, ou seja, uma CPU com 4 núcleos pode ser transformada em 4 CPUs lógicas.

Cada um desses núcleos, por seu turno, pode executar uma ou mais rotinas de programas, de uma forma ordenada. Criam-se as chamadas linhas (ou fileiras) de execução (“threads”, do termo original em inglês) em cada núcleo. Quanto mais linhas de execução mais rápido e mais eficiente um programa é rodado. A única limitação irá existir quando o programa que está rodando foi escrito para ignorar este tipo de benefício na execução dos códigos.

Programadores que se dispuseram a implementar rotinas em execução múltipla puderam então oferecer recursos para este tipo de computador, às vezes até com opções de preferência dentro do próprio programa, coisas classificadas como “aceleradores de hardware”, por exemplo.

A eficiência de uma CPU não está somente no número de núcleos ou linhas de execução, mas também na forma como a memória disponível é usada. Em tempos remotos, analistas desprezaram o aumento de memória RAM, dizendo muitas vezes ser desnecessário. Com os computadores de hoje, tal afirmação é temerária. Não só o aumento mas a velocidade dos módulos de memória tem peso significativo na hora que se roda certos aplicativos.

Eu certamente não sou a pessoa indicada para falar de algo que não é da minha área de conhecimento, mas posso me dar ao luxo de dizer com segurança que nos computadores atuais quem quiser ter um mínimo de performance decente deve instalar pelo menos 8 GB de RAM, sendo 16 GB o suficiente para a grande maioria das aplicações.

A combinação CPU-GPU (placa gráfica)-RAM é aquela que, em última análise, distingue um computador de qualidade de um computador mediano a medíocre, a não ser que o usuário final não use nada demandante ou não se importe de ver tudo rodar lento.

A interface UEFI

Toda placa mãe quando é ligada roda o sistema a partir de um programa (“firmware”) instalado em uma ROM apagável (EPROM), de modo a permitir que ele seja atualizável. Quando o computador é ligado este programa começa a rodar, inspeciona o hardware na forma de um auto teste, e a seguir procura o sistema operacional para dar partida final ao sistema.

Este programa é conhecido como BIOS (do inglês “Basic Input Output System), e se refere a todos os processos que interligam os componentes de hardware que permitem as operações de entrada e saída.

O BIOS foi criado em 1975, para plataformas IBM em 16 bits, de modo a rodar o CP/M, antecessor do MS-DOS, escrito na época pela Digital Research. E de lá para cá sofreu poucas mudanças. O firmware original foi escrito em Assembly, linguagem próxima à linguagem de máquina (0s e 1s), popular na época do 8 bits, para os iniciados.

A interface UEFI (“Unified Extensible Firmware Interface”), escrita em C, linguagem mais moderna e versátil, foi criada para contornar limitações crônicas do BIOS, como por exemplo:

– permitir a expansão das rotinas de controle do firmware da máquina.

– permitir a ampliação do uso de drivers diversos.

– permitir a formatação de mídia em tamanhos superiores a 2 TB, com até 128 partições por mídia.

– criação de uma formatação moderna da mídia, trocando o antiquado MBR (Master Boot Record), usado pelo BIOS, pelo GPT (Globally Unique Identifier Partition Table), este último instalado em uma partição separada, que permite mais de um inicializador de sistema operacional, se necessário.

– permitir o uso pleno de processadores de 32 e 64 bits e acesso ilimitado à memória instalada.

– permitir o acesso do sistema operacional ao hardware em modo UEFI de operação.

Neste último recurso foi preciso que o sistema operacional fosse também mudado no seu modo de operação, se quisesse tirar vantagem dos plenos recursos do UEFI. No caso do Windows, o modo UEFI já poderia ser usado a partir o Windows Vista, versão de 64 bits, embora sistemas anteriores, como o XP, pudessem ser adaptados.

Qualquer versão do Windows pode rodar em modo “Legacy”, ou seja não UEFI. Eu até hoje acredito que foi a preguiça da Microsoft não ter alertado usuários sobre o modo de operação UEFI, e isto já poderia ter sido feito a partir do Windows 8, pelo menos.

Para instalar o Windows em modo UEFI é radicalmente necessário formatar o disco de sistema com partição GPT. E um caminho seguro para se fazer isso quando se instala um disco novinho é dar partida no instalador em modo UEFI. Se o disco instalado já estiver formatado em MBR o usuário tem que converte-lo para GPT antes da instalação do sistema.

O céu é o limite

A evolução das plataformas operacionais, uma vez realizadas em hardware moderno, permitiu que o usuário doméstico interessado em aumentar a capacidade de computação do sistema, pudesse fazer uso da total capacidade de todos os processadores e periféricos, sem praticamente quase nenhum ajuste no firmware da placa mãe e sem a necessidade de aumentar o clock dos componentes.

Este ano a AMD deu uma rasteira na Intel, ao lançar a CPU Ryzen, com microarquitetura Zen, com preço a balcão pela metade de uma CPU high end do concorrente, com TDP mais baixo, podendo usar sistemas de arrefecimento de calor convencionais.

A CPU Ryzen do topo da linha trabalha com 8 núcleos independentes, cada um com 2 linhas de execução igualmente independentes, perfazendo um total de 16 linhas de execução simultâneas. O resultado impressiona qualquer um, porque pela primeira vez não é preciso aumentar o batimento (clock) do processador para conseguir aumento de performance.

Só para fins de comparação, uma CPU anterior à Ryzen poderia rodar em mais de 4 GHz de batimento, com desempenho 1/3 daquele conseguido por ela em apenas 3.6 GHz, o que é uma façanha e tanto.

Mais importante ainda é que a controladora interna das Ryzen se beneficia do aumento de velocidade da memória instalada, usando inclusive inteligência artificial para controlar o sistema. Para tal a AMD se beneficiou do firmware UEFI para introduzir um microcódigo de nome AGESA, capaz de ser atualizado quando necessário. Aliás, somente agora este código de controle está chegando ao ponto de não frustrar usuários que instalaram módulos de memória DDR4 acima do default de 2133 MHz, o que é uma pena.

Pessoalmente, eu acho que foi deixado um furo indesculpável, mas faz parte. A versão AGESA 1.0.0.6, que espera-se corrija esta limitação de controle, ainda está em fase de atualização em muitos firmwares de fabricantes.

Se atingido o ponto ideal, o processador Ryzen tende a deixar de queixo caído o usuário que precisa da máquina para processamentos demorados.

E como o caminho da evolução implica em aumentar o número de núcleos e filas de processamento, ambos Intel e AMD vieram a público há pouco anunciar CPUs com 16 núcleos e 32 filas de execução, em processadores que um dia podem até chegar ao usuário doméstico.

Por aí se vê que a adoção da computação de alta performance (HPC) semeou e colheu frutos que mudaram o cenário dos computadores pessoais, domésticos ou não. Nas últimas versões de firmware que eu vi a opção HPC ficou implícita, não precisando ser habilitada manualmente.

Eu entendo que ainda há muito a se fazer com os componentes e firmwares atuais. Se a adoção deles pelos usuários vai ser tornar maior, só o tempo dirá. O que eu noto é o desinteresse cada vez maior do usuário doméstico de se envolver com montagens de novos sistemas de maior porte.

O uso disseminado de celulares e tablets, junto com o uso dos drives nas nuvens, tornou mais popular o acesso à Internet e aos meios de comunicação fora das linhas telefônicas. Só isso exclui sobremaneira a computação tradicional como ferramenta útil para se conseguir realizar tarefas. Mas, tudo isso faz parte do mesmo processo evolutivo. [Webinsider]

. . . . .

http://br74.teste.website/~webins22/2017/03/07/o-computador-como-ferramenta-de-trabalho-ainda-nao-morreu/

http://br74.teste.website/~webins22/2016/11/08/hdr-no-computador-de-mesa/

http://br74.teste.website/~webins22/2017/04/16/trabalhando-com-conforto-no-windows-10-creator-update/

Leia também:

http://br74.teste.website/~webins22/2016/11/01/alternativas-inovadoras-para-a-iluminacao-de-telas-lcd/

Avatar de Paulo Roberto Elias

Paulo Roberto Elias é professor e pesquisador em ciências da saúde, Mestre em Ciência (M.Sc.) pelo Departamento de Bioquímica, do Instituto de Química da UFRJ, e Ph.D. em Bioquímica, pela Cardiff University, no Reino Unido.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *