Upload
apinheiro
View
48
Download
0
Embed Size (px)
DESCRIPTION
SDAC-Arquitetura de Microprocessadores
Citation preview
15/01/13
1
12ºC – Técnico de Gestão de Equipamentos Informáticos
Arquitetura de Microprocessadores
15/01/13
2
� - Principais componentes de um microprocessador.
� - Evolução das arquiteturas de microprocessadores.
� - Arquitetura de um sistema tipo. � - Tipos de dados. � - Organização de memória. � - Tipos de endereçamento. � - Ligação com o exterior.
15/01/13
3
� os processadores têm dois ou mais núcleos, o que é equivalente a dizer que têm vários processadores que realizam tarefas em simultâneo.
15/01/13
4
� Unidade lógica e aritmética (ULA): • responsável por executar as instruções dos
programas, como instruções lógicas, matemáticas, desvios, etc.
� Unidade de controlo (UC): • responsável pela tarefa de controlo das ações a
serem realizadas pelo computador, comandando todos os outros componentes.
� Registos internos: • são pequenas memórias velozes que armazenam
comandos ou valores que são utilizados no controlo e processamento de cada instrução.
� Os registos mais importantes são: • Contador de Programa (PC) – aponta para a
próxima instrução a ser executada; • Registo de Instrução (IR) – Regista instrução;
15/01/13
5
� Para entendermos como funciona um microprocessador, vamos ver como é ele por dentro e tentar perceber a lógica usada para a sua criação.
� O microprocessador executa toda uma série de instruções que lhe dizem o que deve fazer.
� Baseado nas instruções que lhe são dadas, ele executa três coisas básicas através da sua Unidade Aritmética e lógica (ALU – Arithmetic Logic Unit):
15/01/13
6
� operações matemáticas. Os microprocessadores mais recentes, no entanto, têm internamente um coprocessador aritmético, cuja função é auxiliar na execução de operações complexas com vírgula flutuante.
� move dados de uma localização de memória para outra;
� tomar decisões e saltar para um conjunto de instruções baseado nessas decisões.
15/01/13
7
� Um barramento de endereços, • que pode ter um tamanho de 8, 16 ou 32 bits e está
encarregado de enviar endereços para a memória; � Um barramento de dados,
• que pode ter 8, 16 ou 32 bits, e pode receber e enviar dados de e para a memória;
� Uma linha RD (Read) e uma WR (Write), que diz à memória quando quer escrever ou ler determinado endereço de memória;
� Uma linha de Clock, que é um relógio que controla o processador;
� Uma linha de Reset, que coloca a zero o contador de programa e recomeça a execução.
15/01/13
8
� Os barramentos e linhas ligam à memória, seja ela RAM ou ROM.
� Se tivermos um barramento de endereços de 8 bits e um barramento de dados de 8 bits, significa que ele pode endereçar 256 bytes de memória, isto é 28=256, e pode ler ou escrever 8 bits de memória simultaneamente.
� Na ROM está armazenado um conjunto de instruções e microcódigo que será executado pelo processador. O barramento de endereços diz à ROM que bytes deve colocar no barramento de dados e isso é feito quando a linha RD muda de estado.
15/01/13
9
� A RAM contém bytes de informação e o processador pode ler essa informação, ou escrever, dependendo do estado lógico das linhas RD ou WR.
� O problema da RAM é perder toda a informação armazenada quando se desliga a alimentação, daí a necessidade da ROM.
� O processador necessita de uma enorme quantidade de instruções para realizar a mais simples operação.
� Essas instruções estão armazenadas na ROM como conjuntos de bits.
� Esses bits são impercetíveis para nós , sendo “traduzidos”por um assemblador para linguagem assembly e novamente transformados em conjuntos de bits e colocados na memória para serem executados pelo processador.
15/01/13
10
// a está colocado no endereço 128 // f está colocado no endereço 129 CONB 1 // a = 1; SAVES 128 CONB 1 // f = 1, SAVEB 129 LOADA 128 // if a > 5 then jump to 17; CONB 5 COM JG 17 LOADA 129 // f = f * a ; LOADB 128 MUL SAVEC 129 LOADA 128 // a = a + 1 ; CONB 1 ADD SAVEC 128 JUMP 4 STOP // Loop back to if;
15/01/13
11
� O CPU recebe continuamente instruções para serem executadas. Cada instrução é uma ordem de processamento de dados e o trabalho do CPU consiste principalmente em cálculos e transporte de dados.
15/01/13
12
� O CPU recebe pelo menos dois tipos de dados: • Instruções acerca do que fazer com outros
dados; • Dados que serão processados de acordo com as
instruções. � Chamamos instruções ao código de
programação, que inclui mensagens enviadas ao computador, ordens de impressão, entre outras.
� Os dados são normalmente dados do utilizador, sejam eles informações numa base de dados, uma folha de cálculo, um desenho, etc.
� A maior carga de trabalho do CPU consiste na descodificação de instruções e localização de dados, e os cálculos em si não são o tipo de trabalho muito pesado para um microprocessador
15/01/13
13
� A descodificação é, no fundo, a perceção de instruções que o utilizador envia para o CPU.
� Todos os CPU dos PC são compatíveis com o 8086. Isto quer dizer que os programas comunicam com o CPU através de uma família específica de instruções.
15/01/13
14
� Dado que existe a necessidade de os CPU das gerações subsequentes poderem utilizar as mesmas instruções do 8088, foi necessário criar um conjunto de instruções compatíveis.
� Os CPU mais recente têm de perceber as mesmas instruções. Esta compatibilidade é um standard da indústria desde então. Todos os processadores novos, independentemente da sua geração têm de ser capazes de perceber e manipular o formato de instruções 8088.
15/01/13
15
� Para entendermos o funcionamento do microprocessador, vamos ver, passo a passo, o modo como ele executa uma operação simples, do tipo 2+2.
� Quando se prime a tecla 2, é enviado um sinal ao processador e pede-se à unidade de prefetch para pesquisar na memória principal do computador uma instrução específica sobre os dados novos, dado que não há nada acerca disso na cache de instruções.
15/01/13
16
� As instruções chegam ao microprocessador através da unidade de barramentos, vindas da memória principal, e são armazenadas na cache de instruções como “2=X”.
� A unidade de prefetch solicita então à cache de instruções uma cópia do código “2=X” e envia-o à unidade de descodificação para processamento.
15/01/13
17
� Seguidamente, na unidade de descodificação “2=X”, o código é descodificado numa string de código binário, que é enviado para a unidade de controlo e para a cache de dados.
� Agora a unidade de controlo executa a instrução para “2=X”. Isso faz com que o número 2 seja enviado para um endereço X na cache de dados, onde aguarda por outras instruções
15/01/13
18
� Quando se prime a tecla 2, novamente a unidade de prefetch, pergunta à memória principal do computador e à cache de instruções quais são as instruções específicas para esses dados novos. Como não encontra nenhuma informação na cache de instruções, as ordens vêm da memória principal.
� Similarmente ao que aconteceu com o “2=X”, os novos dados vêm da memória principal e são armazenados na cache de instruções como“2=Y”.
15/01/13
19
� A unidade de prefetch vai à cache de instruções buscar uma cópia do código“2=Y” e envia-a para a unidade de descodificação onde será processada.
� Na unidade de descodificação, a instrução “2=Y” é descodificada e transformada numa string de código binário, que será enviada para a unidade de controlo e para a cache de dados, e que lhes dirá o que fazer com a instrução.
15/01/13
20
� Dado que a unidade de controlo sabe que o número 2 será armazenado para uso futuro na cache de dados, executa a instrução para“2=Y”. Isto faz com que o número 2 seja enviado para um endereço na cache de dados chamado Y, onde, tal como o outro 2, aguardará futuras ordens
� Quando premimos a tecla “+”, a unidades de prefetch pergunta à memória principal do computador e à cache de instruções o que há-de fazer com os novos dados recebidos, que devem ser “pescados” da memória principal.
15/01/13
21
� Dado que é uma instrução nova, “+” vem para o microprocessador, da memória principal, e é armazenado num endereço da cache de instruções como “X+Y=Z”, indicando que os dois valores vão ser adicionados um ao outro
� Então a unidade de prefetch pede à cache de instruções uma cópia do código “X+Y=Z” e envia-a para a unidade de controlo para posterior processamento.
15/01/13
22
� Na unidade de descodificação, “X+Y=Z” é traduzido e descodificado, sendo em seguida enviado para a cache de dados, dando indicação do que hão-de fazer com a instrução. Além disso, também a unidade aritmética e lógica é informada de que uma operação ADD vai ser executada
� A unidade de controlo envia um comando ADD para a unidade aritmética e lógica, onde X e Y são adicionados, após serem chamados da cache de dados. Após realizar a operação, a unidade aritmética e lógica envia o resultado para ser armazenado num dos endereços dos registos
15/01/13
23
� Quando de prime a tecla “=”, novamente aunidade de prefetch verifica a cache de instruções para solicitar instruções sobre os novos dados, mas não vai encontrar lá nada.
� A instrução sobre “=” vem da memória principal para o microprocessador através da unidade de barramentos e fica armazenada num endereço da cache de instruções como código “PRINT Z”
15/01/13
24
� A unidade de prefetch pede à cache de instruções uma cópia do código “PRINT Z” e envia-a para a unidade de descodificação para posterior processamento.
� Na unidade de descodificação, “PRINT Z” é traduzido e descodificado numa string de código binário, que é enviada para a unidade de controlo para lhe dizer o que fazer com a instrução
15/01/13
25
� Agora que o valor de “Z” foi calculado e está armazenado nos registos, o comando print só tem de ir buscar o conteúdo do registo e apresenta-lo no ecrã do computador.
15/01/13
26
15/01/13
27
15/01/13
28
15/01/13
29