Please enable JavaScript.
Coggle requires JavaScript to display documents.
Abstrações e Tecnologias Computacionais (Fabricando Processadores (Através…
Abstrações e Tecnologias Computacionais
Classes de Computadores
Dekstops
Computador projetado para uso de uma única pessoa, normalmente incorporado um monitor gráfico, um teclado e um mouse.
Enfatizam o bom desempenho a um único usuário por um baixo custo
Capazes de executar softwares independentes. (Software shrink-warp)
Servidores
Um computador usado para executar grandes programas para múltiplos usuários simultaneamente, acessado por meio de rede.
Projetados para suportarem grandes cargas de trabalho
São feitos usando basicamente a mesma tecnologia que os desktops, porém com uma maior capacidade de processamento de entrada e saída
Possuem grande enfase na estabilidade
Variam muito em tamanho em custo, indo servidores de baixa capacidade a supercomputadores
Computadores Embutidos
Um computador dentro de outro dispositivo, usado para executar uma aplicação predeterminada ou um coleção de softwares
São a maior classe e abrangem a faixa mais ampla de aplicações e desempenho
Estão em quase todo lugar!
Possuem menor tolerância a falhas
Variam muito em tamanho e custo, podem ter o tamanho do seu celular (Sim! Seu celular também é um computador embutido! :D) a computadores que recebem a mesma atenção de servidores!
Entendendo o desempenho dos programas
O desempenho de um programa é determinado por um conjunto de etapas, vamos a elas:
Algoritmo
Determina o número de instruções do código fonte e o número de operações de E/S realizadas.
Linguagem de programação, compilador e arquiterura
Determina o número de instruções de máquina para cada instrução no código fonte
Processador, sistema e memória
Determina a velocidade em que as instruções podem ser executadas
Sistema de E/S (hardware e sistema operacional)
Determina a velocidade em que as operações de E/S podem ser executadas
Por baixo do seu programa
O computador em si é somente capaz de executar instruções de baixo nível extremamente simples
Para que uma aplicação complexa conseguia ser executada, existem várias camadas de software que interpretam e traduzem as operações complexas para operações mais simples
Essa camadas seguem uma hierarquia, onde a aplicação fica no nível mais alto, os software de sistema no meio, e o hardware em baixo.
Entre esses softwares de sistema, os principais são o sistema operacional e o compilador
O sistema operacional gerencia e supervisiona os recursos do computador para o benefício dos programas executados na máquina
Entre suas principais funções, está:
Manipular as operações básicas de entrada e saída,
Alocar armazenamento e memória
Possibilitar e controlar o compartilhamento do computador entre diversas aplicações que o utilizam simultaneamente
Os compiladores traduzem o programa escrito em uma linguagem de alto nível para instruções que o hardware possa executar.
De uma linguagem de alto nível para a linguagem de hardware
Como falado anteriormente, o computador só consegue executar instruções binárias (00011010100101), escrever nessa linguagem era muito maçante para nós, humanos
Dai surgiu o montador, que atua como um tradutor para uma linguagem menos complicada (o Assembler) para o código binário para o computador executar
Mesmo assim, ainda era maçante escrever em Assembler, pois você tinha que escrever uma instrução em Assembler exatamente como essa instrução viraria código binário, para resolver isso, surgiram as linguagens de alto nível
As linguagens de alto nível permitem nós humanos, escrever programas para os computadores em uma linguagem próxima a nossa própria.
Para converter isso parra assembler, e depois código binário, surgiu o compilador! :D
Sob as Tampas
O hardware de um computador, executa basicamente as funções básicas:
Inserir, processar e armazenar dados
Gerar saída dos dados
Os cinco componentes de um computador são:
Entrada
Como exemplo temos o mouse
Os primeiros mouses eram eletromecânicos, usavam uma grande esfera que quando rolada sobre uma superfície, faziam com que um contador x e y fossem incrementados a partir daí o computador sabia o quanto mouse foi movido.
Depois surgiram os mouses óticos, que tinha seu funcionamento em que uma câmera que tirava várias fotos da superfície e mandava para um processador, a partir da diferença das imagens o processador descobria o quanto o mouse foi movido
Saída
Como exemplos temos os monitores
Os monitores de antigamente era feitos da mesma tecnologia que a TV, ou seja, era um monitor de tubo de raios catódicos, que varria uma imagem linha a linha várias vezes por segundo, nessa velocidade, a gente não percebia oscilação na tela
Depois surgiram os monitores de cristal líquido, onde basicamente em vez do pixel ser a fonte da luz, ele controlava a transmissão dela, embaixo dela, há uma matriz que emite a luz.
Memória
Caminho de Dados
Controle
Por dentro do gabinete
Unidade de DVD
Placa Mãe
Uma placa de plastico contendo pacotes de circuitos integrados e chips, incluindo o processador, cache , memória e conectores para dispositivos de E/S, rede e discos
Circuito integrado, também chamado de chip, é uma junção de dezenas a bilhões de transistores
O processador
De longe a parte mais ativa da placa, segue e executa as instruções de um programa, ela soma e testa números, sinaliza o dispositivos de E/S e assim por diante
Pode ser subdivido em caminho de dados e controle
No caminho de dados é realizada as operações aritméticas
Já o controle diz para cada parte do processador e da máquina em si, o que fazer de acordo com as instruções do programa.
Memória
É onde os programas em execução são armazenados, ela também armazena os dados que o programa precisa.
Normalmente são Memórias DRAM, que são basicamente memórias que permitem o acesso em qualquer parte dela com a mesma velocidade de acesso.
Tem também outras memórias, como a cache, que ficam mais perto do processador e age como um armazenamento menor e mais rápido que a DRAM.
Disco-Rígido
Abstrações
Para podermos estudar os sistemas computacionais sem explodir o cérebro, se faz necessário o uso de abstrações, que é um modelo que revela detalhes de nível inferior dos sistemas computacionais temporariamente invisíveis, a fim de facilitar o projeto de sistemas sofisticados.
Uma das abstrações mais importantes para nós é a interface entre hardware e software de nível mais baixo, ela recebe o nome de
arquitetura do conjunto de instruções
(ou só arquitetura, para os íntimos)
Essa abstração inclui tudo que os programadores precisam saber para fazer um programa em uma linguagem de máquina binária funcionar corretamente.
Essa abstração possibilita que os projetistas falarem sobre funções independentemente do hardware que as realiza.
Eles chamam de
implementação
o hardware que obedece a arquitetura
Interface binária de aplicação
é junção das instruções básicas e a interface que o sistema operacional oferece aos programadores
Vamos falar mais sobre a memória
Não precisamos falar de novo qual sua função né? Então vamos lá: as memórias podem ser divididas em volátil e não volátil
As memórias voláteis se esquecem dos dados quando perdem energia
Nas não voláteis, isso não acontece
Como os computadores tem muitas memórias em si, para podermos distingui-las as funções de cada uma, existem os termos memória principal e memória secundária
Na memória principal, fica os programas em execução no computador, por causa disso elas tem que ser rápidas, por isso normalmente se usam memórias voláteis nesse tipo de memórias, hoje em dia a gente usa memórias DRAMS para isso.
A memória secundária é responsável por guardar os dados permanentes, que precisam ficar na máquina se a energia acabar, para isso logicamente usamos memórias não voláteis, antigamente a principal memória não volátil usada era o HD, mas ultimamente estamos usando os SSDs, que são bem mais rápido que os HDs.
A memória principal é muito mais rápida que a memória secundária, só pra lembrar XD
Só um adendo...
Tando o software quanto o hardware são constituídos por camadas hierárquicas, sendo que a camada inferior esconde detalhes do nível acima e assim sucessivamente, a arquitetura é uma dessas camadas :D, que permite que muitas implementações executem software idêntico.
Comunicação com outros computadores
A gente já falou de quase tudo, menos da possibilidade de um computador se conectar com outros em uma rede, então vamos lá:
Quando um computador é conectado a outros através de uma rede, aparece várias vantagens:
Comunicação: as informações são trocadas entre computadores em alta velocidade.
Compartilhamento de recursos: em vez de cada máquina ter seus próprios dispositivos de E/S, os dispositivos podem ser compartilhados pelos computadores que compõem a rede.
Acesso Remoto: conectando computadores por meio de longas distâncias, os usuários não precisam estar perto do computador que estão usando
As redes variam de tamanho e desempenho e podem ser classificadas seguindo isto
Redes LAN são restritas geograficamente, em geral, a um prédio
Já as Redes WAN. não possuem essa restrição, podendo englobar continentes :O
Normalmente a gente usa os cabo Ethernet ou através de uma rede sem fio (Wi-Fi) para se conectar a uma rede.
Tecnologias usadas para construir processadores e memória
Transistores
De modo básico, é uma chave de liga e desliga controlada eletronicamente
Um Circuito integrado é um junção de milhares a trilhões de transistores
Nos últimos anos, o números de transistores em um circuito integrado tem aumentando constantemente!
Fabricando Processadores
A fabricação de um chip começa com a matéria prima: o Silício
Uma substância encontrada na areia que não conduz bem a eletricidade, por isso é chamado de semicondutor
Através da inclusão de componentes químicos, é criado certas minúsculas áreas no silício:
Áreas excelentes em condução de eletricidade
Áreas excelentes como isolantes de eletricidade
Áreas que podem assumir os dois estados anteriores
Os transistores ficam aqui :D
Depois desse processo, temos o lingote de cristal de silício
Depois, esse cristal é fatiado em wafers, que são fatias dos lingotes, prontas para a fabricação dos chips
A partir daqui, os wafers passam por várias etapas de processamento que criam padrões de elementos químicos, é nessa etapa que é são criados as áreas condutoras, isoladoras e os transistores :D
Normalmente os circuitos integrados de hoje possuem uma lâmina de transistores, com várias lâminas de condutores com lâminas de isolantes entre elas
Uma única imperfeição nessa parte pode causar a uma área defeituosa no wafer
Para tentarem amenizar isso, as fabricantes tentam colocar componentes independentes nos wafers
Depois disso os wafers são cortados em dies, mas chamados de de chips :D
Cortar os wafers permite separar os dies defeituosos e aproveitar os bons!
Esse conceito é quantificado pelo aproveitamento de um processo, que é a porcentagem de dies bons do número total de dies em um wafer
Quanto maior um die, mair será o custo e menor o aproveitamento, isso é resolvido geração a geração, com transistores e fios menores,
Depois disso os dies são conectados em pinos de entrada e saída de um encapsulamento num processo chamado soldagem, depois são testados de novo, e por fim, entregue aos clientes :D :D
Uma preocupação recente para os projetistas é o consumo de energia.
Ele é um problema pois a corrente precisa ser trazida para o chip e distribuída por toda sua área, os processadores modernos usam muitos pinos apenas pra alimentação e aterramento
E também porque a energia é dissipada como calor e precisa ser removida! Para isso tem os dissipadores de calor que normalmente ficam em cima do chip, dissipando e resfriando o mesmo.
Como se mede a potência dos Circuitos Integrados?
Ignorando os fatores de tecnologia do circuito, a potência é proporcional ao número de transistores e pela frequência que elas são chaveados
Porém, quanto mais aumento o numero de transistores e o clock, maior o consumo!
Armadilhas e Falácias
Falácia: Os Computadores tem sido construídos da mesma maneira a muito tempo, e esse modelo antiquado de computação está perdendo força.
Armadilha: ignorar o inevitável progresso do hardware ao planejar uma nova máquina.