Baixe o app para aproveitar ainda mais
Prévia do material em texto
O Dados: Processamento e Transmissão Processamento dos dados Já vimos de onde vem os dados, como eles são armazenados e como eles são exibidos. Mas e quanto ao seu processamento, quem executa? Nesta aula responderemos a esta pergunta e mais algumas outras que provavelmente já devem estar passando pela sua cabeça! Em um computador os dados são processados, o que equivale a dizer manipulados ou modificados pelo processador, em particular pela Unidade Central de Processamento (UCP) também pela sua sigla em inglês CPU (Central Unit Processor) presente em seu interior. Atualmente a maioria dos computadores contam com a ajuda de GPUs para o auxiliar no processamento de dados, especialmente se os dados a serem processados envolverem a execução de algoritmos de IA (Inteligência Artificial) ou então processamento gráfico, isto é, de imagens estáticas ou em movimento (filmes). Antes de serem processados digamos, pela CPU, os dados que podem vir de diversas fontes como por exemplo, dos dispositivos de armazenamento em massa ou de interfaces de comunicação como, por exemplo, uma interface WiFi, precisam ser colocados na Memória Principal, também conhecida como memória RAM (Random Acess Memory – Memória de Acesso Randômico). Esta memória permitirá um acesso mais rápido aos mesmos e dará agilidade à manipulação. Vamos então tratar de cada um destes elementos separadamente. Memória RAM - Características Gerais Trata-se de uma memória de acesso mais rápida que a dos dispositivos de armazenamento em massa. Ela é do tipo volátil, ou seja, perde seu conteúdo quando o computador é desligado. Sua função é armazenar os dados e os programas que estão sendo executados pelo computador naquele instante ou que foram usados a pouco tempo e, tenha certeza, são muitos! Atualmente um bom computador pessoal possui pelo menos 16 GB deste tipo de memória, já não é raro máquinas de uso pessoal com 32 GB embora ainda sejam comercializadas, para esta finalidade, máquinas com apenas 4 GB, fuja correndo de uma máquina destas! Ainda com relação a quantidade de memória RAM é importante observar que a capacidade máxima de um computador depende da quantidade de slots (locais de instalação dos pentes) disponíveis na máquina e do sistema operacional utilizado. Sobre os sistemas operacionais, para efeito de comparação e focando apenas em máquinas de 64 bits, a Tabela 1 apresenta alguns exemplos. Memória RAM – Tipos e parâmetros Atualmente as memórias RAMs estão disponíveis aos consumidores em dois tipos, a saber, as DDR3 e as DDR4. Muito em breve devem chegar ao mercado as do tipo DDR5, talvez no momento em que você estiver lendo este material elas já estejam disponíveis! Neste texto não trataremos das memórias do tipo DDR3, pois, muito em breve elas serão completamente abandonadas, assim, convém entender um pouco das memórias DDR4 e compará-las com as especificações já conhecidas das do tipo DDR5. Consideremos separadamente cada parâmetro que as diferem: (a) Clock – Trata-se de um sinal de controle que oscila entre dois níveis lógicos, o 0 e o 1, que que marca o momento para a troca de dados entre a memória e os dispositivos que têm acesso à ela. Sua unidade é o Hz e seus múltiplos, por exemplo, GHz. Uma memória que opera em 1.000 MHz é capaz de permitir a troca de dados 2 x 1.000.000.000 vezes em um segundo, a multiplicação pelo fator 2 deve-se ao fato de a memória ser capaz de trocar dados duas vezes durante uma oscilação completa. Obviamente memórias com clocks maiores são melhores. Quanto ao Tabela 1 – Memória RAM suportada por alguns Sistemas Operacionais clock as memórias DDR4 podem chegar a 4.266 MHz já as DDR5, a especificação inicial assume que deverão atingir 6.400 MHz, porém, fabricantes já apostam em 8.400 MHZ. (b) Capacidade – As memórias RAMs possuem sua capacidade limitada pela capacidade dos chips que são usados na construção dos módulos (pentes). No caso das DDR4 os chips atingem no máximo a capacidade de 8 GB (1 GB). Ainda com relação aos computadores pessoais é possível comprar pentes com até 32 GB de memória, porém, são muito caros e provavelmente será mais interessante comprar mais de um pente com menor capacidade. Já as memórias DDR5, segundo a especificação, possuem chips que podem atingir a capacidade de 64 GB (8 GB) e, com isso, os pentes com 32 GB deixaram de ser apenas um sonho para a maioria! Ainda com relação à capacidade deve-se observar que para o segmento de computadores corporativos de alto desempenho como, por exemplo, servidores pentes de maior capacidade estão disponíveis. Um exemplo disso é o recente lançamento de um ente de memória RAM da SAMSUNG com a incrível capacidade de 512 GB de memória DDR5, um único pente! (c) Consumo – A memória RAM é um componente de um computador tão intensamente acessado e utilizado quando a CPU, por isso, sempre que ela sofre uma melhoria em termos de consumo verifica-se que o impacto é claramente perceptível. As memórias DDR4 já tiveram um grande avanço neste sentido com relação às memórias DDR3, a redução no consumo foi principalmente devido à redução na tensão de alimentação que passou de 1,5 V para 1,2 V. Já nas DDR5 segundo a especificação inicial a tensão de alimentação deverá ficar em 1,1 V e novamente teremos uma redução no consumo de eletricidade. (d) Outros parâmetros: Diversos outros parâmetros diferem as memórias umas das outras, dentre eles os tempos de latência e o tamanho do Burst Length, todos eles impactam no desempenho da memória, porém, para finalizarmos o assunto é conveniente falar um pouco das memórias registradas. Tais memórias são conhecidas como memórias ECC (Error Correction Check – Checagem para correção de erros) e são usadas em sistemas críticos e de alto desempenho como, por exemplo, servidores. Nestas memórias todo valor armazenado possui bits de validação que são transmitidos juntamente com o próprio dado e permite a validação da informação transmitida, além disso, os bits adicionais permitem em muitas situações a recuperação da informação caso ela seja corrompida por algum problema. Processador - Características Gerais A processador é tido como o principal componente de um computador, isto é realmente verdade, porém o computador simplesmente não funcionaria sem outros de seus componentes, ou então mesmo tendo um bom processador pode ter um baixo desempenho caso os outros componentes não tenham sido bem dimensionados ou escolhidos, ou seja, para um computador adequado não basta um bom processador! Dito isso, um processador é um circuito integrado dentro do qual existem muitos elementos, atualmente até mesmo GPUs! Dentre estes componentes destacam-se a CPU e a memória cache. Vamos conhecer um pouco a CPU, trata-se do dispositivo destinado ao processamento dos dados e, para isso, deve contar com a ajuda de um programa. Como mostrado na Figura 1, um programa inicialmente é um código fonte escrito em uma linguagem qualquer, após a compilação ou a interpretação dá origem às instruções, que são códigos numéricos reconhecidos pela CPU e que dizem o que ela deve fazer naquele momento. A figura também mostra o fluxo de dados para a execução de um programa, onde, tanto o programa (em linguagem de máquina – códigos) quanto os dados (arquivo sobre o qual o programa está trabalhando) são primeiramente enviados para a memória RAM, em seguida para a memória cache e finalmente tratados pela CPU. A figura simplifica um processo muito complexo ela omite a participação do S.O. controlando o acesso à CPU dentre muitas outras coisas, ou seja, ela representa apenas superficialmente tudo o que acontece durante a execução de um programa e o consequente processamento de dados. CPUs – Componentes básicos Internamente uma CPU possui alguns elementos básicos para auxiliar em seu funcionamento, dentre estes elementos podemos destacar: (a) Decodificador de instruções (DI): Já vimos que a instrução é um código, este código precisa ser decodificado (traduzido) para ser executado, o responsável por esta ação é odecodificador de instruções, um circuito eletrônico que após a execução de seu trabalho ajusta os parâmetros de entrada da Unidade de Controle que cuidará de efetivamente executar a instrução. (b) Unidade de Controle (UC): De posse de sinais vindo do decodificador de instruções ela direciona os sinais de clock e aplica parâmetros de controle em diversos outros dispositivos internos à CPU (circuitos) para eles na ordem e no momento certo executem suas funções. (c) Unidade lógica e aritmética (ULA): Quando a instrução necessita da execução de uma operação matemática (aritmética) ou lógica esta unidade, sob o comando da UC realiza a operação. CPUs – Tipos e parâmetros (a) Clock – Novamente trata-se de um sinal de controle que oscila entre dois níveis lógicos, o 0 e o 1, e que no caso de um processador sincroniza as operações internas do mesmo, pode inclusive marcar o momento para a troca de dados entre a memória cache e a CPU e entre a memória cache e a memória RAM. Sua unidade é o Hz e seus múltiplos, por exemplo, GHz. Para CPUs com mesma arquitetura quanto maior a Figura 1 – Processo de execução frequência do clock maior o desempenho da mesma. O aumento da frequência de clock já foi uma das principais estratégias dos desenvolvedores de CPUs para aumentar seu desempenho, porém, quando a frequência atingiu algo em torno de 2 ou 3 GHz novos aumentos passaram ser difíceis de serem conseguidos e, isto exigiu uma nova abordagem para aumentar o desempenho dos processadores. (b) Núcleos e threads – Uma das abordagens adotada pelos desenvolvedores para aumentar o desempenho de um processador foi incluir em seu projeto mais de uma CPU, o que corresponde aos núcleos e ainda, dividir cada CPU em threads o que confere a cada CPUs funcionar virtualmente como mais de uma CPU. Para que tudo isto funcione o sistema operacional deve estar preparado para usar estes recursos, além disso, os programas devem ser desenvolvidos de modo a permitir a sua execução por mais de um thread. É importante observar que quando um programa é executado ele é executado em um único núcleo e pode ou não usar mais de um thread, os threads de um mesmo núcleo nunca executam programas diferentes, assim, um processador com dois núcleos pode em um dado instante executar mais de um programa e isto é muito importante na computação atual, pois, a todo instante em uma máquina dezenas de programas estão sendo executados. Quanto maior a quantidade de núcleos e threads muito provavelmente maior será a eficiência de um processador. (c) Memória cache – Trata-se de uma memória volátil e de altíssima velocidade localizada dentro do processador e dividida em dois módulos, a chache de programa apara onde vão as instruções de um programa que será executado pela CPU e a cache de dados para onde vão os dados que serão tratados pelo programa. Na memória cache ficam os dados e programas que serão imediatamente tratados pela CPU, após este tratamento eles são enviados para a memória RAM e ficam até o momento de serem novamente tratados. A memória cache, tanto de dados como de programa é dividida em bancos assim, temos os bancos L1, L2 etc. Quanto menos o índice do nome do banco (1 no caso de L1 e 2 no caso de L2) mais rápida é a memória. O uso desta memória de altíssima velocidade garante que não faltarão informações para a CPU trabalhar, o que certamente aconteceria caso estas informações viessem diretamente da memória RAM. Quanto maior a quantidade de memória cache melhor será o desempenho de um processador. (d) Conjunto de instruções – Como já vimos as instruções são códigos que dizem à CPU o que ela deve fazer, o qual não vimos ainda é que por trás de cada instrução existe um circuito digital responsável por sua execução. Frequentemente quando um novo processador é lançado ele traz dentre suas melhorias a capacidade de executar novas instruções que, de uma única vez, faz o trabalho que antes exigia a execução de muitas instruções, obviamente isto traz ganho de desempenho, porém, isto só é realmente atingido se o compilador que transformou o programa em código de máquina estiver preparado para usar essas novas instruções, ou então se a máquina virtual, responsável pela interpretação do programa estiver preparada para também usar estas novas instruções. Normalmente novas instruções surgem quando os projetistas de processadores percebem que um tipo de operação(ões) está sendo muito demandada pelos programas, este é o caso, por exemplo, de operações envolvendo a execução de algoritmos de IA (Inteligência Artificial), devido a crescente aplicação destes algoritmos os projetistas de processadores já começam a pensar em criar instruções voltadas para otimizar a execução destes algoritmos. (e) Gerações: Os processadores evoluem ao longo do tempo. Nestas evoluções muitos elementos da estrutura interna dos processadores mudam um destes elementos pode ser a capacidade de executar novas instruções. Para pôr ordem a estas evoluções anualmente os desenvolvedores apresentam novas gerações. De uma geração para outra a maneira como ele executa as instruções pode mudar, mesmo que novas instruções não sejam acrescentadas, dizemos que ele possui uma nova microarquitetura. Dentro de uma mesma geração podem existir processadores com mais de uma microarquitetura. Além da microarquitetura, gerações diferentes podem oferecer recursos diferentes, normalmente evoluções de recursos anteriores como é o caso de suporte a barramentos de comunicação PCIe 5.0 que estão começando a aparecer nos processadores. (f) GPUs integradas – Com o aprimoramento das técnicas de fabricação dos CIs (Circuitos Integrados) a quantidade de transistores que podem ser colocados dentro dos mesmos aumenta a cada ano, muito devido à diminuição do tamanho deste componente que serve como “tijolo” para a construção dos circuitos lógicos dentro do processador. Aproveitando-se da possibilidade de se colocar mais transistores dentro do processador, os desenvolvedores resolveram ali colocar além da CPU, da memória cache e demais alguns outros módulos como, por exemplo, controlador de acesso à memória, GPUs. Atualmente muitos processadores possuem em seu interior o componente principal de uma placa gráfica, a GPU. Tipicamente as GPUs presentes nos processadores são de baixo desempenho e compartilham a memória RAM da máquina, porém, como muitos consumidores, talvez a maioria, não precisam de GPUs de alto desempenho esta solução acaba sendo uma vantagem para ambos, os fabricantes de processadores que vendem o processador e a GPU e o consumidor que paga menos no produto integrado do que pagaria caso resolvesse comprar cada um deles separadamente! (g) Segurança: Os desenvolvedores de processadores procuram acrescentar aos seus produtos capacidades das mais variadas, uma delas é a inclusão de GPUs aos mesmos, outras referem-se à segurança de dados. Plataformas Intel hoje dispõem do hardware-enabled Intel® que aumenta a proteção e permite que o ecossistema (sistema computacional) aprimore a defesa contra as ameaças modernas e em desenvolvimento. Segundo a Intel “O modelo herdado de software que protege software não é capaz de acompanhar a evolução das ameaças contra a segurança, a proteção e a privacidade digitais”. A solução proposta pela Intel está presente diretamente dentro do processador e visa proteger todas as camadas da pilha de computação (hardware, firmware, sistemas operacionais, aplicações, redes e a cloud). (h) Monitoramento: Monitorar o desempenho e a carga de trabalho dos sistemas computacionais é de fundamental importância para gestores de sistemas críticos, pois, caso a carga de trabalho atinja o limite ou, por algum motivo, o desempenho seja prejudicado os serviços podem ser comprometidos, já imaginou se os servidores da VISA entrarem em uma sobrecarga inesperada! Atentos a este problema e percebendo uma oportunidade a Intel dotou seus processadores de recursos coletivamente chamados de monitoramento de desempenho de hardware (porexemplo, PMU, PEBS, LBR). Esses recursos são usados pelo software de ajuste de desempenho, como o Intel VTune Amplificador, para analisar o desempenho do software e permitem ao administrador do sistema atuar em um problema antes que ele ocorra. BIOS - Características Gerais Quando seu computador é inicializado o primeiro programa a ser executado não é o S.O, mas sim, a BIOS (Basic Input Output System – Sistema básico de entrada e saída). Trata-se de um programa residente em uma memória flash localizada em sua placa mãe e é responsável pelas seguintes funções: (a) Executar o POST – O POST (Power-On Self-Test – Autoteste de inicialização) é um teste de hardware executado para verificar se os principais componentes do computador estão funcionando corretamente. Quando algum erro em algum componente é verificado, bips são emitidos pelo alto-falante. É possível identificar o erro pelo tipo de bip. (b) Na BIOS é possível ligar ou desligar hardwares onboard presentes no sistema, diferentemente do desligamento feito por software pelo S.O. quando desligado na BIOS o hardware onboard deixa de consumir energia. (c) Na BIOS é possível configurar o funcionamento de muitos recursos com computador, dentre eles a frequência do clock da placa de vídeo e do processador, habilitar ou não mais de um núcleo de processadores multicores. (d) Aspectos de segurança básicos e avançados também podem ser configurados na BIOS. A BIOS possui uma interface de usuário que pode ser acessada na inicialização do computador pressionando determinadas teclas do teclado, as mais comumente utilizadas são <DEL>, <F2> e <F12>. Durante a execução da BIOS na inicialização do computador é comum aparecer uma orientação escrita na tela do computador dizendo qual tecla deve ser pressionada para entrar na sua interface de usuário, esta orientação não é comum em notebooks. O programa da BIOS pode ser atualizado caso haja uma versão nova, a atualização pode corrigir erros da versão anterior, lembre-se que ela é um programa, ou adicionar compatibilidade com dispositivos que não haviam sido criados no momento de seu desenvolvimento. A atualização da BIOS deve ser evitada quando os erros que serão corrigidos não afetam o funcionamento do sistema, às vezes esses erros aparecem apenas quando um determinado dispositivos é acrescentado ao sistema, ou mesmo quando a compatibilidade com os novos dispositivos não lhe interessa, pois, você não pretende colocá-los em seu computador. A atualização da BIOS é um processo crítico e se algo der errado durante o procedimento existe a possibilidade de o computador precisar de assistência técnica. A Figura 2 apresenta o momento de entrada na interface de usuário da BIOS e as opções disponíveis, com destaque para a o ajuste de performance com a possibilidade de desabilitar suporte a processadores multicores. Atividade Extra Figura 2 - BIOS Que tal vermos uma aplicação para processadores voltados para aplicação de Inteligência Artificial? Assista ao vídeo disponível no link (https://www.youtube.com/watch?v=w4z2Ov2_0F8) o vídeo oferece a opção de legenda com tradução, aproveite! Referência Bibliográfica STALLINGS, W. Arquitetura e Organização de Computadores. 10. ed. São Paulo: Editora Pearson Universidades, 2017. https://www.youtube.com/watch?v=w4z2Ov2_0F8
Compartilhar