microprocessadores ii arquitetura
TRANSCRIPT
Microprocessadores IIMicroprocessadores IIProfessor: Mauro Jansen
Histórico, conceitos, características e Arquitetura
05/05/2015
Conteúdo programático
� Histórico de microprocessadores� Conceitos básicos� Caracterização� Arquitetura
Prof. MauroMicroprocessadores II
Arquitetura 2
� Arquitetura� Pinagem e soquetes
Prof. MauroMicroprocessadores II
Arquitetura 3
Início: “computadores” mecânicos
� Século 13 AC: invenção do Ábaco pelos babilônios
•Primeiro instrumento a permitir executar todas as operações aritméticas•Foi muito usado para cálculos no
Prof. MauroMicroprocessadores II
Arquitetura 4
•Foi muito usado para cálculos no séculoXVII e ainda é usado até hoje.
•SOROBAN:•O Soroban é uma versão do ábacus Chinês, com uma quantidade menor decontas.
Início: “computadores” mecânicos
� Octograma Chinês Yin Yang:� Criado pelo imperador chinês Fou-Hi, é a
primeira representação conhecida de números binários de 0 a 7.
� 1642: Máquina de calcular de Blaise
Prof. MauroMicroprocessadores II
Arquitetura 5
� 1642: Máquina de calcular de Blaise Pascal (cientista francês)� Rodas e engrenagens� Operações: adição e subtração� Algarismos de 0 a 9 – cada roda
representava uma coluna decimal� Primeira máquina de calcular a ser
comercializada
Início: “computadores” mecânicos� 1801: Máquina de tear / Cartão
perfurado� Joseph Marie Jacquard (tecelão francês)� Memorizava desenhos em cartões
perfurados e os reproduzia� Operações: adição e subtração� Primeiro registro de programação
Prof. MauroMicroprocessadores II
Arquitetura 6
� Primeiro registro de programação semelhante à do computador moderno
� 1833: Máquina analítica� Charles Babbage (inglês) – pai do
computador moderno� Primeiro projeto de um computador de
propósito geral (não construído)� Adição, mutiplicação, instruções
condicionais e de desvio
Computadores eletromecânicos� 1936: Z1 – baseado em relé (Konrad Zuse -
alemão)� Z3: 1º computador de propósito geral controlado por
programa� Z4: usado em projeto de mísseis1943: Colosso (Alan Turing). 2000 válvulas e
Prof. MauroMicroprocessadores II
Arquitetura 7
� 1943: Colosso (Alan Turing). 2000 válvulas e máquina de leitura de fita perfurada.� Decodificação de mensagens dos Alemãos
� 1944: Mark I – (Howard Aiken) (EUA)� Válvulas, fios e interruptores� Usado pela marinha americana em cálculo de balística
Curiosidades
� Primeira programadora da história: Augusta Ada Byron (condessa de Lovelace), filha do poeta Lorde Byron� Formada em matemática, trabalhou com Charles
Babbage
Prof. MauroMicroprocessadores II
Arquitetura 8
Babbage� 1979: Linguagem ADA criada em sua homenagem
� Bug (besouro): sinônimo de tudo que prejudique o bom funcionamento de um programa� Em 1945 um besouro ficou preso nas engrenagens do
Mark I, fazendo a máquina parar
Computadores a válvula
� 1946: Eniac� 18.000 válvulas, 30 tonelada� Projeto da bomba “H”
� 1950: UNIVAC (Universal Automatic Computer)1º computador de aplicações científicas e comerciais
Prof. MauroMicroprocessadores II
Arquitetura 9
� 1º computador de aplicações científicas e comerciais� UNIVAC II e UNIVAC 1100 series
� 1953: IBM 701� Aplicações científicas
Depois da válvula
� 1960: computadores transistorizados (apesar do transistor ter sido inventado desde 1947)� IBM 7090, 7094. Linguagens Fortran, Cobol, Basic
� 1958: circuito integrado (Jack Kilby, Texas Instruments)
Prof. MauroMicroprocessadores II
Arquitetura 10
Instruments)� Resistores e capacitores num mesmo pedaço de
material semicondutor� 1964: IBM 360 – 1ª família de computadores
planejada� DEC PDP 8: minicomputador, estrutura de barramento
Microprocessadores� 1971: 4004 (Intel)
� 1º microprocessador criado; 4 bits; BCD� Aplicação voltada para calculadoras� 45 instruções; 605B; 108KHz; 2.300 transistores
� 1972: 8008 (Intel)
Prof. MauroMicroprocessadores II
Arquitetura 11
� 1972: 8008 (Intel)� 1º microprocessador de 8 bits� Aplicação voltada para terminais; ASCII� 48 instruções; 16KB; 200KHz; 3.500 transistores
� 1974: 8080 (Intel)� 8 bits; propósito geral� 72 instruções; 64KB; 2MHz; 6.000 transistores
Microprocessadores
� 1975-1977� Z80 (Zilog)� 6502 (MOS Technology)
� Computador Apple 1 (Steve Wozniac e Steve Jobs)
Prof. MauroMicroprocessadores II
Arquitetura 12
� Criação da Microsoft
Micro CP300 (Z80) Micro Apple II (6502)(1977) US$ 1.195
Micro Apple I (6502)
Microprocessadores� 1976: 8085 (Intel)
� 8 bits; propósito geral� 74 instruções; 5MHz; 6.500 transistores
� 1978: 8086 (Intel)� 16 bits (interno e externo); 5, 8 e 10MHz; 29.000 transistores
� 1979: 8088 (Intel)16 bits (interno; 8 bits externo); usado no 1º PC (PC/XT)
Prof. MauroMicroprocessadores II
Arquitetura 13
� 16 bits (interno; 8 bits externo); usado no 1º PC (PC/XT)� 133 instr.; 29.000 transistores
� 1980: co-processador matemático 8087� Microcontrolador 8051 (Intel)
� 1982: 80186/188; 80286; PC/AT� 1985: 80386. 32 bits; 16,20,25 e 33MHz; 275.000
transistores
Tabela resumo da evolução
Prof. MauroMicroprocessadores II
Arquitetura 14
Tabela resumo da evolução
Prof. MauroMicroprocessadores II
Arquitetura 15
Prof. MauroMicroprocessadores II
Arquitetura 16
Memória
� Local de armazenamento de informações binárias
� Podem ser circuitos semicondutores, mídias magnéticas, óticas, etc.Cada posição de memória é identificada
Prof. MauroMicroprocessadores II
Arquitetura 17
� Cada posição de memória é identificada por um ENDEREÇO
� Endereçamento é o ato de acessar um dado em uma posição de memória (para isso precisamos especificar o endereço)
Memória
Endereço Conteúdo
0000h 00
0001h EB
Exemplo de bloco de memória com 64K posições (64KB)
Prof. MauroMicroprocessadores II
Arquitetura 18
0001h EB
0002h 29
...
FFFFh 00O conteúdo de cada posição de memória pode ser um dado(numérico ou caractere) ou uma instrução
Palavra (word)� Unidade de informação natural usada por um
computador particular� Grupo de N bits de tamanho fixo que é
processado em conjunto pela CPU� A quantidade de bits da palavra depende da
arquitetura do computador
Prof. MauroMicroprocessadores II
Arquitetura 19
arquitetura do computador� O barramentos de dados normalmente é do tamanho
de uma palavra ou meia palavra� Um endereço de memória normalmente referencia
uma palavra� Exemplos: palavra de 8 bits, 16 bits, 64 bits, 128
bits
Registradores
� Memórias internas do microprocessador que registram apenas uma informação binária por vez� Podem ser de 8 bits (1 byte), 16 bits (2 bytes),
Prof. MauroMicroprocessadores II
Arquitetura 20
Podem ser de 8 bits (1 byte), 16 bits (2 bytes), 32 bits (4 bytes), 64 bits (8 bytes) ou 128 bits (16 bytes)
� São memórias voláteis (perdem o conteúdo quando desenergizadas)
� Exemplos: acumulador, registrador X, Y, etc.
Barramentos� São linhas ou canais de comunicação de dados
entre os dispositivos (microprocessador, chipsets, memória e outros periféricos)
� Também chamados de “bus”� Em comparação com o transporte terrestre
seriam as ruas, estradas e rodovias que
Prof. MauroMicroprocessadores II
Arquitetura 21
seriam as ruas, estradas e rodovias que interligam as localidades
� Os barramentos têm algumas características importantes para sabermos sua performance e compatibilidade com dispositivos:� Tamanho ou largura (medida em bits)� Velocidade (medida em Hz - MHz)
Barramentos� Barramentos do sistema
� Barramentos do processador (de dados, endereços e controle)
� Barramento de memória� Barramento de cache
Barramento frontal (FSB) – liga CPU à ponte norte
Prof. MauroMicroprocessadores II
Arquitetura 22
� Barramento frontal (FSB) – liga CPU à ponte norte� Barramentos de E/S (entrada / saída)
� Estão associados a alguma INTERFACE ou PORTA (interna ou externa) que permite ligar uma unidade de entrada e/ou saída
� Cada porta está vinculada a um endereço ou faixa única de endereços
Pilha
� É uma área de memória usada para guardar dados temporariamente, normalmente oriundos de registradores, sem nos preocuparmos com endereços de memória
� De forma similar a uma pilha de livros, o último
Prof. MauroMicroprocessadores II
Arquitetura 23
� De forma similar a uma pilha de livros, o último dado a ser colocado na pilha será o primeiro a sair
103 Dado 4
102 Dado 3
101 Dado 2
100 Dado 1
Endereços da pilha
Interrupções
� São eventos que fazem o processador parar a execução do programa corrente e desviar a execução para um bloco de código chamado rotina de interrupção
Prof. MauroMicroprocessadores II
Arquitetura 24
� Podem ser ocasionadas por:� Pedido interno (interrupções de software)� Pedido externo (interrupções de hardware)
Instruções
� Instrução é um comando a ser executado pelo microprocessador
� Cada microprocessador tem um conjunto de instruções (comandos da linguagem de máquina) particular
Prof. MauroMicroprocessadores II
Arquitetura 25
máquina) particular� As instruções normalmente são Mnemônicos (siglas que lembram uma ação, em inglês)� Ex: LDA (LoaD Acumulator), MOV (MOVe), ADC (Add with Carry), etc.
Prof. MauroMicroprocessadores II
Arquitetura 26
Microprocessador x Microcontrolador
� Microprocessador� É a CPU de um computador ou dispositivo microprocessado,
construída num único circuito integrado� Contém Unidade de Controle, Unidade Lógica e Aritmética e
registradores� Precisa de periféricos externos tais como memória e unidades de
Prof. MauroMicroprocessadores II
Arquitetura 27
� Precisa de periféricos externos tais como memória e unidades de entrada e saída para compor um sistema funcional mínimo
Microprocessador x Microcontrolador
� Microcontrolador� Computador completo construído num único Circuito Integrado.� Custo mais baixo; menor desempenho; voltado para aplicações
específicas (dimensões reduzidas, baixo custo e consumo)� Contém portas seriais, portas de entrada e saída, paralelas,
timers, controles de interrupção, memória RAM e ROM
Prof. MauroMicroprocessadores II
Arquitetura 28
timers, controles de interrupção, memória RAM e ROM
Funções do microprocessador
� Busca e execução de instruções existentes na memória
� Leitura (de instruções e dados) da memória
Prof. MauroMicroprocessadores II
Arquitetura 29
memória� Gravação de dados na memória� Comunicação com o mundo exterior (entrada e saída – E/S)
Número de bits
� Número de bits internos:� É definido pela quantidade máxima de bits dos registradores internos do microprocessador
� Daí vem a terminologia microprocessador de 8, 16, 32, 64 bits
Prof. MauroMicroprocessadores II
Arquitetura 30
16, 32, 64 bits� Número de bits externos:
� É definido pela largura do barramento de dados
� Geralmente é igual ao número de bits internos, mas nem sempre isso ocorre
Capacidade de endereçamento
� É tamanho máximo tamanho que pode ter a memória, ou, seja, o número máximo de células de memória que um microprocessador consegue acessar
Prof. MauroMicroprocessadores II
Arquitetura 31
� Depende do tamanho do barramento de endereços
� Capacidade = 2N
� (N: número de bits no barramento de endereços)
Clock
� Define a frequência de operação do microprocessador� Medida em Hz (Hertz)
� Está relacionado com o número de
Prof. MauroMicroprocessadores II
Arquitetura 32
� Está relacionado com o número de instruções que podem ser executadas a cada segundo
� Cada instrução é executada em N ciclos do clock
Memória cache
� Pequena quantidade de memória usada para acelerar a leitura de dados da memória RAM
� Memória de alta velocidade e alto custo
Prof. MauroMicroprocessadores II
Arquitetura 33
� Memória de alta velocidade e alto custo� Tipos:
� Cache interno ou L1 (nível 1) ou primário� Cache externo ou L2 (nível 2) ou secundário
Memória cache
� Um circuito especial (controlador de cache) efetua a leitura da memória RAM e coloca-os na memória cache
� O microprocessador obtém os dados
Prof. MauroMicroprocessadores II
Arquitetura 34
� O microprocessador obtém os dados diretamente do cache e, enquanto isso, o controlador de cache já está lendo outros dados da RAM
Índice de desempenho� O desempenho (velocidade de processamento) de um
microprocessador depende de:� Velocidade do clock� Número interno de bits� Número externo de bits
Número de ciclos necessários para executar cada instrução
Prof. MauroMicroprocessadores II
Arquitetura 35
� Número de ciclos necessários para executar cada instrução� Capacidade e velocidade da memória cache� Execução de instruções em paralelo
� Unidades de medida:� MIPS: Milhões de instruções por segundo� FLOPS: Instruções em ponto flutuante por segundo
Conjunto de instruções de máquina� É o conjunto de valores binários que foram
codificados para representar todas as operações que a CPU executa
� Cada instrução ocupa um ou mais bytes e tem duas partes principais:� Código da operação: identifica a operação a ser
Prof. MauroMicroprocessadores II
Arquitetura 36
� Código da operação: identifica a operação a ser realizada
� Operandos ou endereços: contém valores ou endereços dos dados que serão usados nas operações
� São comandos simples como operações lógicas e aritméticas, de leitura, gravação comparação e movimentação de dados
Exemplos de aplicações� Os microprocessadores e microcontroladores
podem ser aplicados em:� Microcomputadores� Calculadoras� Relógios digitais� Controle de fornos microondas
Prof. MauroMicroprocessadores II
Arquitetura 37
� Controle de fornos microondas� Lavadora de roupas� Vídeo game e outros brinquedos� Controle de motores� Controle de tráfego� Alarmes e sistemas de segurança� Telefone celular
Prof. MauroMicroprocessadores II
Arquitetura 38
Diagrama de um sistema microprocessado
Prof. MauroMicroprocessadores II
Arquitetura 39
Registradores
Arquitetura interna
Prof. MauroMicroprocessadores II
Arquitetura 40
Arquitetura interna - elementos� Unidade Aritmético-Lógica (ULA)� Contador de Instruções (CI) ou Program Counter
(PC) � Registradores de uso geral
� De dados: Acumulador (AC) e outros registradores de
Prof. MauroMicroprocessadores II
Arquitetura 41
� De dados: Acumulador (AC) e outros registradores de dados (A,B,etc)
� De índices (X,Y,etc.)� Ponteiro de Pilha ou Stack Pointer (SP)� Registrador de status (Status Flags), ou
sinalizadores� Decodificador de instruções
Elementos internos� Unidade Lógica e Aritmética (ULA): executa
as operações aritméticas e lógicas, em conjunto com o AC e outros registros� A multiplicação ou divisão geralmente é efetuada por
circuitos (hardware) ou rotinas (software) adicionaisContador de instrução (CI) ou Program
Prof. MauroMicroprocessadores II
Arquitetura 42
� Contador de instrução (CI) ou Program Counter (PC): registrador que contém o endereço de memória da próxima instrução de máquina que será executada� Não deve ser alterado pelo usuário; a própria CPU
muda o endereço automaticamente após executar cada instrução
Elementos internos
� Acumulador (AC): principal registrador de dados; é muito usado para receber dados da memória que serão tratados por instruções de adição, subtração, deslocamento, movimentação
� Registradores de dados: Registradores que
Prof. MauroMicroprocessadores II
Arquitetura 43
� Registradores de dados: Registradores que servem para auxiliar a manipulação de dados pelo acumulador ou como contadores. Em geral não são usados em operações lógicas ou aritméticas� Exemplos: X, Y, A, B
Elementos internos
� Registradores de índices: são usados na formação do endereço de memória final (endereçamento indexado), contendo parte do endereço (índice). Também são usados em operações de movimentação ou
Prof. MauroMicroprocessadores II
Arquitetura 44
em operações de movimentação ou contagem
Elementos internos
� Ponteiro de pilha ou Stack Pointer (SP): registrador que aponta para o dado atual na pilha
� Decodificador: parte do
Prof. MauroMicroprocessadores II
Arquitetura 45
� Decodificador: parte do microprocessador que recebe os bits de código de operação da instrução, identifica a instrução a ser executada e aciona a execução dessa instrução
Elementos internos� Registrador de status (Status flags): registrador
onde cada um dos seus bits (chamados de FLAGS) indica o estado ou condição de um fenômeno ocorrido na última instrução executada. Os mais comuns são:� Carry (C): indica se ocorreu ou não um “vai um”� Overflow (O): indica se ocorreu ou não o transbordo na última
operação
Prof. MauroMicroprocessadores II
Arquitetura 46
operação� Zero (Z): indica se o valor obtido é zero� Parity (P) ou Paridade: indica se o valor obtido é par (Even)
ou ímpar (Odd)� Decimal (D): indica se o modo decimal (em que as operações
são executadas em BCD) está ativo� Signal (S) ou Negative (N): indica se o resultado obtido é
negativo (bit 7 = 1) ou positivo (bit 7 = 0)
Arquitetura interna (visão prática)
Registradores
De dados AC/A,B,C,etc
De índice X,Y,etc
Registro de Status
SP 0100
Memória RAM
Endereço Conteúdo
0000h 00
0001h EB
0002h 29
...
0100h 00
Microprocessador
Prof. MauroMicroprocessadores II
Arquitetura 47
PC 0300
Registro de Status
C O Z P S . . .
0100h 00
0101h 00
...
0300h
0301h
...
Área da pilha
Área doprograma
Arquitetura externa
� Memória� Pilha� Cache externo
� BarramentosDe dados
Prof. MauroMicroprocessadores II
Arquitetura 48
� De dados� De endereços� De controle
� Clock� Dispositivos de entrada e saída (E/S)
Memória
� A memória é usada para armazenar DADOS e PROGRAMAS
� Alguns endereços de memória podem dar acesso a dispositivos de E/S (ex: vídeo, impressora, etc)A memória pode ser dividida em páginas ou
Prof. MauroMicroprocessadores II
Arquitetura 49
� A memória pode ser dividida em páginas ou segmentos
� Pilha ou stack: porção variável da memória cujo endereço está acessível através do registro Ponteiro de pilha ou Stack Pointer (SP). Usada para guardar valores temporariamente
Barramentos
(Unidirecional)
Prof. MauroMicroprocessadores II
Arquitetura 50
R=Read W=Write
M=Memória
IO=Entrada/Saída
(Bidirecional)
Barramento de controle
Barramentos
� Barramento de dados: barramento através do qual trafegam os dados que são enviados ou recebidos pelo microprocessador� É bidirecional� Cada bit equivale a um pino do microprocessador
Prof. MauroMicroprocessadores II
Arquitetura 51
� Cada bit equivale a um pino do microprocessador� A quantidade de pinos define a quantidade de bits
externa do microprocessador (8, 16, 32, 64,...) ou quantos bits podem ser transferidos de uma só vez
Barramentos
� Barramento de endereços: serve para o microprocessador especificar qual a posição de memória a ser acessada ou qual dispositivo de E/S a ser ativado� O tamanho do barramento define a quantidade
Prof. MauroMicroprocessadores II
Arquitetura 52
� O tamanho do barramento define a quantidade máxima de memória endereçável diretamente:
Qtd.bits no Barram.endereços
Capacidade de endereçamento
8 256 bytes
16 64 KB
24 16 MB
32 4 GB
Barramentos� Barramento de controle: usado para controlar o
acesso e a utilização das linhas de dados e de endereços, visto que elas são compartilhadas por todos os componentes.
� Exemplos de sinais de controle:� Escrita/leitura na memória (RW): habilita a leitura ou escrita na
memória
Prof. MauroMicroprocessadores II
Arquitetura 53
memória� Requisição de porta E/S (IO)� Confirmação de transferência (ACK)� Requisição / concessão de barramento� Requisição de interrupção (INT)� Confirmação de interrupção (INT ACK)� Relógio (CLOCK): utilizado p/ temporização de operações� Inicialização (RESET): inicializa todos os módulos do sistema
Clock
� Gerador de pulsos que sincroniza a execução de operações do microprocessador
� Unidade: Hz (MHz, GHz)
Prof. MauroMicroprocessadores II
Arquitetura 54
� Unidade: Hz (MHz, GHz)� Ex.: Os microprocessadores 8086/8088 operavam com clock de 5 a 10 MHz� 5 MHz = 5 milhões de pulsos por segundo e não 5 milhões de instruções por segundo
Clock
Prof. MauroMicroprocessadores II
Arquitetura 55
Cristal e CI gerador de frequêncianuma placa mãe
Execução de instruções
Prof. MauroMicroprocessadores II
Arquitetura 56
Prof. MauroMicroprocessadores II
Arquitetura 57
Considerações iniciais
� Na maioria dos microprocessadores, os pinos de dados são multiplexados com os de endereços� Eles nunca são necessários simultaneamente� Quantidade de pinos afeta o grau de dificuldade de
encapsulamento (e o custo)
Prof. MauroMicroprocessadores II
Arquitetura 58
encapsulamento (e o custo)
� Apesar de existir pinos com mais de uma função, a quantidade de pinos ainda é grande� Com o passar do tempo foram criados vários tipos de
encapsulamento
� A maior parte dos pinos são pinos de endereço
Fabricação e mercado
� O encapsulamento é encontrado em dois materiais:� Plástico� Cerâmica
Prof. MauroMicroprocessadores II
Arquitetura 59
Cerâmica
� A pinagem é de metal. Em alguns modelos os pinos eram banhados a outro
� No mercado, a pinagem é relacionada ao socket (soquete)� A placa mãe e CPU devem ter mesmo socket
Encapsulamento DIP
� DIP: Dual In-line Package (Duas linhas de pinos laterais)
� Ex.: Intel 8088
Prof. MauroMicroprocessadores II
Arquitetura 60
Encapsulamento PLCC
� PLCC: Plastic Leaded Chip Carrier� Encapsulamento plástico com terminais dos
quatro lados do chip, normalmente dobrados p/ baixo, para uso em soqueteMais comum em ROM BIOS e microcontroladores
Prof. MauroMicroprocessadores II
Arquitetura 61
� Mais comum em ROM BIOS e microcontroladores
Encapsulamento QFP ou SMD
� QFD: Quad Flat Package (encapsulamento quadrado)
� Similar ao PLCC, só que para soldagem SMD (Surface Mountage Devices)
Prof. MauroMicroprocessadores II
Arquitetura 62
SMD (Surface Mountage Devices)
Encapsulamentos PGA e BGA
� PGA: Pin Grid Array (matriz de pinos)� BGA: Ball Grid Array (matriz de bolas)� Pinos (ou bolas) saem por baixo do chip� Numeração de pinos por linhas e colunas
Prof. MauroMicroprocessadores II
Arquitetura 63
� Numeração de pinos por linhas e colunas
Soquetes
� Padrões de conexão do microprocessador à placa-mãe� Slot 1 (obsoleto)
� P/ Pentium II, P3
Prof. MauroMicroprocessadores II
Arquitetura 64
� Soquete 1 (obsoleto)� P/ 486DX, 486SX
� Socket 423 (Intel)� Pentium 4� Substituído pelo soket 478
Soquetes
� Socket 754 (AMD)� Athlon, Sempron, Turion
� Socket 939 (AMD)
Prof. MauroMicroprocessadores II
Arquitetura 65
� Socket 939 (AMD)� Athlon 64/64FX/64X2, Opteron
Soquetes atuais
� Socket AM3 (AMD)
Prof. MauroMicroprocessadores II
Arquitetura 66
� Socket T (Intel)� Core I7, Xeon,
Soquetes atuais
� Socket LGA775� Core 2 Duo/Quad
Prof. MauroMicroprocessadores II
Arquitetura 67