Arquitetura de computadores Arquitetura de Microprocessadores Curso Profissional de Técnico de Gestão e Programação de Sistemas
Construção A base de um microprocessador é o silício. É um material semicondutor. Pode comportar-se como um condutor ou isolador de corrente elétrica. Apresenta as mesmas funções que um interruptor (aberto ou fechado ). O silício pode ser encontrado na areia.
Construção Como transformar areia num microprocessador? A areia é purificada e derretida a altas temperaturas. O formato líquido enche um molde cilíndrico. Numa próxima fase são cortadas fatias deste cilindro. O resultado final tem o nome de Wafer.
Construção Extração do microprocessador do Wafer e posterior colocação no socket.
Construção Como transformar areia num microprocessador? FORMAÇÃO DO LINGOTE DE SILÍCIO P.S. Um lingote costuma pesar em média 100 kg
Construção Um Wafer irá alojar centenas de microprocessadores, cada um com centenas de milhões de transístores. Os transístores vão ser implantados nos microprocessadores através da utilização de técnicas muito sofisticadas.
Construção No processo final os transístores vão ser interligados por pistas de cobre muito finas que os tornam num circuito integrado. Os transístores são os responsáveis pela manipulação e armazenamento de informação.
Construção O microprocessador vai ter de ser capaz de executar as mais diversas operações. No final do processo o microprocessador é cortado do Wafer e implantado num CHIP. Desta forma vai ficar com a apresentação que hoje em dia se conhece.
Construção Transístores, pequenos componentes presentes em aparelhos eletrónicos. Os transístores são os únicos componentes inteligentes na eletrónica (considerando apenas os de funções básicas). A diferença entre eles e as resistências, condensadores e indutores, está na tarefa executada. Enquanto estes últimos manipulam a energia elétrica de forma simples, os transístores aproveitam-na para funcionar como interruptores e amplificadores.
Construção Transístores Quando em conjunto, muitos transístores podem realizar tarefas complexas (execução de aplicações e jogos avançados). Essa é uma razão para que existam em abundância nos processadores. Os primeiros processadores já contavam com milhares de transístores, os mais evoluídos passaram para os milhões e os atuais chegam a bilhões.
Construção Transístores A diminuição de tamanho é tão grande que nem sequer podemos ver a olho nu um transístor. Alcançam a casa das dezenas de nanómetro, ou seja, muito mais fino que um fio de cabelo. No entanto, não é só pelo tamanho que adquirem importância mas principalmente pela função realizada. Assim como os átomos são fundamentais para quaisquer seres vivos, os transístores são essenciais para o funcionamento dos processadores.
Construção Transístores Outro aspeto importante, está relacionado com o formato. Enquanto um transístor comum, em geral, tem formato quadrado e três pernas, os transístores construídos com nanotecnologia perdem esta característica, parecendo-se muito mais com partículas.
Construção Diagrama dos circuitos Antes de iniciar o processo de fabrico dos processadores, os projetistas e engenheiros criam o diagrama de circuitos. Este diagrama é uma espécie de desenho que vai determinar que peça ficará em determinada posição dentro de um processador.
Construção Diagrama dos circuitos O desenvolvimento do diagrama dos circuitos é efetuado em diversos locais de maneira colaborativa. Nesta primeira etapa surge a arquitetura dos processadores. Através de muita análise, os engenheiros decidem a quantidade de memória cache, os níveis de memória, a frequência e detalhes específicos quanto ao modo de utilização da memória cache.
Fonte: http://www.intel.com/content/www/us/en/intelligent-systems/oak-trail/atom-z6xx-ibd.html MICROPROCESSADORES Construção Diagrama dos circuitos Intel Atom Processor Z6xx SM35 Express Chipset: Block Diagram
Hardware O CPU define, sem dúvida o desempenho do computador
Fonte: INTEL
Um processador é, tipicamente, caracterizado da seguinte forma: fabricante, modelo e frequência de relógio. AMD FX Phenom e Phenom II Athlon 64 Sempron Turion 64 Opteron Core 2 Duo Core Duo Atom Modelos Core i7 Core i5 Core i3 Pentium 4 Pentium D e Pentium EE Pentium M Celeron Xeon Fonte: http://forum.clubedohardware.com.br/topic/386345-todos-os-modelos-de-processadores-atuais/
Hardware CPU (Central Processing Unit: Unidade de Processamento Central) Características importantes associadas a um CPU: Velocidade de relógio corresponde à velocidade de processamento no interior do CPU. Largura dos canais de comunicação corresponde à forma como os diversos componentes do interior e exterior do CPU estão interligados.
CPU (Do Inglês- Central Processing Unit: Unidade de Processamento central)
As partes comuns são: Secção de aquisição e descodificação de instruções: recebe instruções de outros componentes para serem descodificadas de modo a que o CPU possa determinar quais as operações a realizar. Na prática, indica qual o tipo de instrução à unidade de controlo numa linguagem que possa entender. Secção de execução: onde são processados os dados e instruções recebidas. Unidade de Controlo (UC): controla ou determina as operações a executar a cada instante, enviando os sinais apropriados aos outros componentes Unidade de Aritmética Lógica (ALU): secção que efetua as operações aritméticas (soma, subtrações, etc.) e lógicas (operações de comparação). Registos: componentes (memórias) que armazenam temporariamente CPU ou Processador os dados com que a ALU efetua as operações que lhe são indicadas. Aquisição Descodificação Registos Controlo ALU
Outros elementos da estrutura interna são: Unidade de memória cache interna: nos computadores atuais a memória cache possui uma importância fundamental. É uma memória rápida que armazena os dados mais requisitados pelo processador. Unidade de Segmentação e Unidade de Paginação: esta unidade tem como objetivo a conversão dos endereços lógicos, contidos nos programas, em endereços físicos, consoante o tipo de gestão de memória utilizada. 19/11/2016 Curso Profissional de Técnico de Eletrónica, Automação e Computadores
Outros elementos da estrutura interna são: Bus externo de dados (Data Bus): é o canal físico ( pistas ) de comunicação de dados entre o interior e o exterior do CPU. O número de pistas do bus externo de dados determina a quantidade de informação que o CPU pode receber e enviar de cada vez. Muito conhecido como FSB Front Side Bus Barramento que interliga o CPU e a memória RAM ( North Bridge ). Corresponde às pistas de comunicação de dados entre o interior e exterior do CPU. Quanto maior o número de pistas mais quantidade de informação o CPU pode mover de cada vez para a memória.
! PROCESSAMENTO Front Side Bus Corresponde ao barramento que faz a ligação da Unidade Central de Processamento à Northbridge da placa-mãe. De uma forma menos técnica, representa a velocidade externa do processador.
! Nota: A velocidade do processador pode ser de 2Ghz no entanto pode não ser possível acompanhar com o barramento. EX: Um automóvel pode ter um motor com 200Cv, no entanto com os limites de velocidade das Estradas, nunca se tira rendimento do motor.
FSB
NORTHBRIDGE e SOUTHBRIDGE O chipset é um chip responsável por controlar uma série de elementos da placa-mãe, como acesso à memória, barramentos e outros. Northbridge: geralmente requer um dissipador de calor, tendo em atenção que é muito requisitado. As tarefas são: controlar o FSB (front side bus, operações com a memória, barramento AGP, etc. Southbridge: tem como funções controlar dispositivos de entrada e saída, como interfaces IDE ou SATA. Curso Profissional Curso Profissional de Técnico de de Técnico Gestão de e Eletrónica, Programação Automação de Sistemas e Computadores
Outros elementos da estrutura interna são: Unidade de Pré-escolha: requisita à memória cache uma lista de instruções a executar, armazenando-as internamente num dispositivo próprio de memória, pronta a passá-las à unidade de descodificação. Unidade de ligação com bus: permite ao processador comunicar com os componentes exteriores através dos barramentos ( ligação física entre os múltiplos componentes existentes numa placa de computador).
Outros elementos da estrutura interna são: Bus externo de endereços (Adress Bus): são as linhas ou pistas de comunicação externas através das quais o CPU referencia e acede a endereços de memória, ou dispositivos de Entrada/Saída ( E/S ). O número de linhas deste barramento determina o número de células de memória a que o processador pode aceder. Só o CPU pesquisa por endereços de memória ou dispositivos de E/S. Por essa razão é unidirecional. EX: leitura e escrita na memória ou portas de E/S.
Outros elementos da estrutura interna são: Bus de controlo : responsável por sincronizar o fluxo de informação no sistema. BARRAMENTO DE DADOS CPU BARRAMENTO DE ENDEREÇOS BARRAMENTO DE CONTROLO CPU
BARRAMENTO ( BUS ) INTERNO Os registos internos do CPU são o tipo de memória mais rápida acessível ao processador. Recorre a estes registos para não ter de guardar na memória RAM e desta forma, durante um cálculo possa aceder mais rapidamente a um valor.
BARRAMENTO ( BUS ) INTERNO EX: Para obter o resultado de 6 * ( 4 + 5 ) o processador realiza primeiro a soma e guarda o resultado nos registos. O BUS interno interliga os diversos componentes existente no interior de um CPU. Tem a particularidade de funcionar à velocidade interna do CPU.
VELOCIDADE DE PROCESSAMENTO O número de transístores contidos no CHIP confere ao processador a sua velocidade. No entanto, como vamos ver mais à frente, a velocidade a que os dados são processados no exterior é assegurada pelo FSB, que como vamos ver é menor. Existem pois duas velocidades distintas num computador.
VELOCIDADE DE PROCESSAMENTO A velocidade do barramento de dados é fundamental para que o processador possa movimentar mais rapidamente a informação. Tendo em atenção que os 64 bits vieram trazer algumas mudanças e neste momento já são utilizadas técnicas que em vez de enviar dados em paralelo ( FSB ), os dados são enviados em série por barramentos dedicados que interligam os componentes ponto a ponto. Desta forma não vão depender do barramento externo.
VELOCIDADE DE PROCESSAMENTO As técnicas a que nos referimos são: Hypertransport Quickpath Interconnect FAZ UMA PESQUISA SOBRE ESTAS TÉCNICAS PARA SEREM DISCUTIDOS NA AULA.
EXECUÇÃO DE UM PROGRAMA NA MEMÓRIA O CPU sabe que a primeira leitura que fará da memória contém o código da instrução ( operação aritmética ). Na posição seguinte contém os procedimentos para a operação indicada na posição anterior. Quando termina a execução, saberá que na próxima posição da memória se encontra a próxima instrução a executar.
EXECUÇÃO DE UM PROGRAMA NA MEMÓRIA MEMÓRIA RAM Fonte: Arquitetura de computadores, Areal Editores COMO DADOS E INSTRUÇÕES SÃO ENCAMINHADOS EM SÉRIE ESTA SOLUÇÃO TROUXE ALGUNS PROBLEMAS A NÍVEL DE VELOCIDADE. A arquitetura de HARVARD tendo por base os barramentos de dados, endereços distintos, memória de programa e dados independentes, contribuiu de uma forma muito positiva para aperfeiçoar a arquitetura de von Neumann.
EXECUÇÃO DE UM PROGRAMA ETAPAS DE EXECUÇÃO Fonte: Arquitetura de computadores, Areal Editores Ciclo fetch-decode-execute
EXECUÇÃO DE UM PROGRAMA ETAPAS DE EXECUÇÃO FETCH ( PROCURA ) Procura na unidade de memória da próxima instrução a ser executada. DESCODIFICAÇÃO da instrução a executar. Identificação da operação a realizar. OBTENÇÃO dos valores para a operação e carregamento nos registos internos.
EXECUÇÃO DE UM PROGRAMA ETAPAS DE EXECUÇÃO EXECUÇÃO DA TAREFA ARMAZENAMENTO do resultado na memória ou em registos internos do CPU.
EXECUÇÃO DE UM PROGRAMA Estas etapas vão repetir-se para a próxima instrução. É importante referir que nem todos os programas precisam de percorrer todos estes passos. Este é um processo que engloba as ações realizadas por um processador.
COMPLEMENTO DE ARQUITETURA PADRÃO DE UM MICROPROCESSADOR Barramento Controlo Barramento de dados IR SP PC R0 Rn Unidade de Descodificação Barramento Endereços UC Fonte: Arquitetura de computadores, Areal Editores
ARQUITETURA PADRÃO DO MICROPROCESSADOR PC Program Counter ( Registo de Programa ) guarda o endereço da próxima instrução a ser lida na memória. Funciona como apontador de posições da memória. IR Instruction Register ( Registo de Instruções ) guarda uma cópia da instrução que vai ser executada. SP Stack Pointer ( Apontador de pilha ) guarda a informação de retorno à rotina que estava a ser executada antes de uma interrupção. R0 Rn Registers ( Unidade de registos ) memórias internas que guardam temporariamente dados e resultados com que o CPU trabalha.
COMPLEMENTO DE ARQUITETURA PADRÃO DE UM MICROPROCESSADOR Barramento de dados Acumulador ALU F L A G S REGISTO TEMPORÁRIO Fonte: Arquitetura de computadores, Areal Editores
ARQUITETURA PADRÃO DO MICROPROCESSADOR Acumulador Enquanto a ALU não tem outro valor carregado, o Acumulador serve de buffer ( área de memória temporária ) Flags ( Registos de estado ) guardam o estado de cada resultado da ALU. Acontece em caso de overflow ( quando por exemplo numa operação em que se excede o limite previsto da ALU ( ex: 8 bits entre 0-255 ). Registo Temporário Armazena o resultado de uma operação da ALU na altura em que o barramento de dados está ocupado.
Acesso à Memória ( Ciclo fetch-decode-execute ) EXEMPLO Leitura de um conteúdo de memória Fonte: Arquitetura de computadores, Areal Editores
Acesso à Memória ( fetch ) O Program Counter (PC) contém o endereço K da memória onde se encontra a instrução "mover o valor (conteúdo) do endereço L com conteúdo 23 da memória para o registo Ra" O endereço a verde significa que está preenchido com endereço de memória K. No endereço seguinte L está o valor de 23. Fonte: Arquitetura de computadores, Areal Editores No final da execução este valor deve ser copiado para o registo interno Ra.
Acesso à Memória ( fetch ) A UC coloca no barramento de endereços o conteúdo do PC ( K ). Através do barramento de controlo envia um comando de leitura do conteúdo da posição ( endereço ) K da memória. Fonte: Arquitetura de computadores, Areal Editores
Acesso à Memória ( fetch ) A memória responde com o conteúdo da posição de memória ( uma instrução ) e coloca-o no barramento de dados. De seguida vai para o processador. A instrução é copiada para o IR. O IR passa a conter a instrução a ser executada no momento. Fonte: Arquitetura de computadores, Areal Editores O PC é incrementado de um valor e passa a apontar para o endereço L, que irá de seguida apontar para a próxima posição de memória. Esta nova posição contém o que vai ser retirado da memória. A fase FETCH ( PROCURA ) fica concluída.
Acesso à Memória (decode) A unidade de descodificação recebe a instrução do IR. Descodifica-a e entrega à UC numa linguagem que compreenda. A UC verifica qual a operação que é necessário realizar e passa à fase de execução ( EXECUTE ) Fonte: Arquitetura de computadores, Areal Editores
Acesso à Memória (execute) A UC verifica qual a operação que é necessário realizar e passa à fase de execução ( EXECUTE ) A UC verifica que é necessário mover o conteúdo da posição L da memória para o registo Ra. Fonte: Arquitetura de computadores, Areal Editores A UC vai voltar a usar o barramento de controlo para indicar que vai ler da memória. A memória responde com o valor presente na posição da memória com o endereço L, colocando-o no barramento de dados que o levará até ao registo Ra. O PC é de novo incrementado para apontar para a próxima instrução ( M ).
Operações com a ALU Aproveitando o registo RA com valor 23 Para o exemplo temos em consideração o valor 7 do registo Rb. Fonte: Arquitetura de computadores, Areal Editores Tendo por base uma instrução com uma soma Ra= Rb + Ra. Supondo que o registo IR contém a instrução a executar e os registos Ra e Rb já estão carregados com valores 23 e 7, o próximo passo será colocar o valor do registo Ra no acumulador à entrada da ALU.
Operações com a ALU Fonte: Arquitetura de computadores, Areal Editores Este registo vai ser necessário para realizar a função de buffer. Vai guardar o valor 23 até que o valor do registo Rb seja colocado na outra entrada da ALU.
Operações com a ALU Fonte: Arquitetura de computadores, Areal Editores Quando as entradas da ALU tiverem carregado os valores, vai efetuar a soma e coloca num registo temporário. A operação origina umaa variável de estado chamada FLAGS. Esta variável vai ser diferente tendo em atenção o valor devolvido pela ALU.
Operações com a ALU Importante referir que o registo temporário serve de buffer. Uma vez que o barramento de dados ainda está ocupado com o valor de Rb, caso não houvesse o buffer o resultado iria de novo para a ALU. Fonte: Arquitetura de computadores, Areal Editores Neste caso o resultado ficaria alterado. Quando o barramento ficar livre o resultado vai ser escrito no registo Ra.
INTERRUPÇÕES Fonte: Arquitetura de computadores, Areal Editores O CPU possui linhas de interrupção próprias que disponibiliza para atender interrupções provenientes de dispositivos exteriores. ( operação com teclado) O Stack Pointer (SP ) é o responsável por guardar informação relativa às interrupções numa zona especial da memória denominada por Stack (pilha) A sua função passa por guardar a informação de retorno à rotina que estava a ser executada antes da interrupção ter lugar, ou seja, o valor do PC (e por vezes também valores dos registos internos).
INTERRUPÇÕES Podemos ver com esta fase que o PC fica livre para poder ser carregado com o endereço da rotina que gerou a interrupção. Fonte: Arquitetura de computadores, Areal Editores EX: Vamos imaginar, como analogia, que precisa de chegar a um lugar muito alto. Para isso vai precisar de uma escada. Se precisar de fazer um furo, vai ser difícil carregar as ferramentas e ao mesmo tempo subir a escada em segurança. Se fizermos a relação com o nosso esquema, a rotina principal é realizar o furo a interrupção é lembrar que vai ter de subir a escada, com as ferramentas ao mesmo tempo
INTERRUPÇÕES Continuando com a nossa analogia, para resolver o problema vamos ter de pedir que segurem as ferramentas ( STACK ), para podermos subir a escada (interrupção) em segurança. Quando já estivermos no topo da escada, vamos pedir as ferramentas. ( Aceder ao STACK, onde está guardada a informação da rotina anterior) e vamos começar a fazer o furo na parede ( Program Counter rotina anterior ) Fonte: Arquitetura de computadores, Areal Editores
ENUMERAR PASSOS INTERRUPÇÕES 1. Conteúdo do registo PC ( endereço de memória ) é guardado no STACK 2. Guardar valores dos registos internos a serem utilizados na altura da interrupção ( no STACK ) 3. O SP é incrementado para apontar para a próxima posição da pilha. Fonte: Arquitetura de computadores, Areal Editores
ENUMERAR PASSOS INTERRUPÇÕES 4. Atender a interrupção. O PC aponta para a zona de memória onde a execução acontece durante a interrupção. 5. Termina a interrupção. São recuperados os valores que os registos internos tinham antes da interrupção. O valor do PC e o apontador SP é decrementado. Fonte: Arquitetura de computadores, Areal Editores 6. É retomada a execução do programa interrompido.
RESUMO O CPU necessita de armazenar em memória: Instruções; Dados; Informação para retomar a execução de um programa que foi interrompido.