Arquitetura de Computadores ECO015
description
Transcript of Arquitetura de Computadores ECO015
Arquitetura de ComputadoresECO015
Engenharia de Computação
Aula 3 – Interconexão do Computador 2
INTERCONEXÃO DO COMPUTADORAula 3
Aula 3 – Interconexão do Computador 3
Interconexão do computador Todas as unidades devem ser conectadas Diferentes tipos de conexão para diferentes tipos de
unidades Memória Entrada/Saída CPU
Aula 3 – Interconexão do Computador 4
Módulos do computador
Aula 3 – Interconexão do Computador 5
Conexão da Memória Recebe e envia dados Recebe endereços (de localizações de memória) Recebe sinais de controle
Leitura (Read) Escrita (Write) Sincronia (Timing)
Aula 3 – Interconexão do Computador 6
Conexão de Entrada/Saída (1) Similar ao de memória do ponto de vista do
computador Saída
Recebe dados do computador Envia dado ao periférico
Entrada Recebe dados do periféricos Envia dados ao computador
Aula 3 – Interconexão do Computador 7
Conexão de Entrada/Saída (2) Recebe sinais de controle do computador Envia sinais de controle para periféricos
e.x. spin disk Recebe endereços do computador
e.x. número de porta para identificar um periférico Envia sinais de interrupção (controle)
Aula 3 – Interconexão do Computador 8
Conexão da CPU Leitura de dados e instruções Envia dados para escrita (após processamento) Envia sinais de controle para outras unidades Recebe (& atua sobre) interrupções
Aula 3 - Visão de alto nível da função 9
Tipos de transferência (1) Memória para processador
Processador lê uma instrução ou dado na unidade de memória
Processador para memória Processador escreve dados na memória
E/S para processador Processador lê dados de um dispositivo por meio de um
módulo de E/S
Aula 3 - Visão de alto nível da função 10
Tipos de transferência (2) Processador para E/S
Processador envia dados para dispositivo de E/S E/S de ou para a memória
Módulo possui permissão para trocar dados diretamente com a memória, sem passar pelo processador
DMA – Direct Memory Access
Por onde ocorrem as transferências de dados?
Aula 3 – Interconexão do Computador 11
Barramentos Existem uma grande combinação de interconexões
no sistema Estruturas de barramento Único e Múltiplos são os
mais comuns e.x. Barramento de Controle/Endereços/Dados (PC) e.x. Unibus (DEC-PDP)
Aula 3 – Interconexão do Computador 12
O que é um barramento? Um caminho de comunicação conectando dois ou
mais dispositivos Usualmente opera em broadcast (todos os
dispositivos recebem o sinal) Frequentemente agrupados
Vários canais em um barramento e.x. barramento de 32 bits de dados é separado em 32
canais únicos Existem ainda: barramentos de alimentação
Não será abordado nesse curso
Aula 3 – Interconexão do Computador 13
Esquema de Interconexão por barramentos
Aula 3 – Interconexão do Computador 14
Barramento de dados Transporta dados
Neste nível, não existe uma diferenção entre “dados” e “instruções”
Largura é o fator determinando de desempenho 8, 16, 32, 64 bits
Aula 3 – Interconexão do Computador 15
Barramento de Endereços Identifica a origem ou o destino dos dados e.x. CPU precisa ler uma instrução (dados) de uma
dada localização de memória Largura do barramento determina a capacidade
máxima de memória do sistema e.x. 8080 possui barramento de 16 bits de endereço
fornecendo 64k de espaço endereçável
Aula 3 – Interconexão do Computador 16
Barramento de Controle Informações de Controle e Sincronia
Sinais de leitura/escrita para a memória ACK de transferência Requisição de interrupção (interrupt request) Solicitação de barramento (bus request) Concessão de barramento (bus grant) ACK de interrupção Sinais de clock
Aula 3 - Visão de alto nível da função 17
Como acontece a transferência? Como deve ser a operação
Dois passos Enviar dados
Receber dados
1. Obter uso do barramento
2 . Transferir dados pelo barramento
1. Obter uso do barramento
2. Transmitir uma requisição ao módulo
de entrada e saídaAguardar....
Aula 3 – Interconexão do Computador 18
Grandes e amarelos? Como identificar um barramento?
Linhas paralelas nas placas de circuito Slots de conexão em placas mãe
e.x. PCI Conjunto de fios
Aula 3 – Interconexão do Computador 19
Problemas de barramento único Grande quantidade de dispositivos compartilhando
um barramento levam a: Atrasos de propagação
Caminhos longos de dados implica que a coordenação do acesso afeta negativamente o desempenho
Maior parte do sistema utiliza múltiplos barramentos para superar tais problemas
Aula 3 – Interconexão do Computador 20
Sistema de barramento tradicional (ISA)(com cache)
Cache evita o acesso direto do processador à memória
Permite que outros dispositivos acessem o barramento
Eficaz, porém: Dispositivos começam ficar muito
rápidos e.x. rede, vídeo, etc.Buffer
Aula 3 – Interconexão do Computador 21
Barramentos de alto desempenho Cache/Ponte (buffer) Barramento de alta velocidade
Dispositivos de alta velocidade mais perto do processador
Alterações de processador não afetam o funcionamento dos outros barramentos
Buffer
Buffer
Aula 3 – Interconexão do Computador 22
Tipos de barramentos Dedicados
Separação entre linhas de dados & endereços Multiplexados
Compartilhamento das linhas Linha de controle indica quando são dados ou quando
são endereços Vantagem – menos linhas Desvantagens
Controles mais complexos Degradação do desempenho
Aula 3 – Interconexão do Computador 23
Temporização Coordenação dos eventos em um barramento Síncrono
Eventos determinados por sinais de clock Barramento de controle possui uma linha de clock Um ciclo de barramento 1-0 Todos os dispositivos recebem a linha de clock Usualmente a sincronia acontece no edge de descida Usualmente um ciclo de clock por evento
Aula 3 – Interconexão do Computador 24
Diagrama de temporização síncronaCiclo de Leitura
Sinal de clock controla a operação do barramento
Ex. 1º Ciclo: processador coloca sinais
nas linhas de endereço e emite sinal de ativação do endereço
2º Ciclo: Leitura: memória localiza a
posição 3º Ciclo:
Leitura: Memória coloca os dados no barramento e processador efetua leitura
Aula 3 – Interconexão do Computador 25
Diagrama de temporização síncronaCiclo de Escrita
Sinal de clock controla a operação do barramento
Ex. 1º Ciclo: processador coloca sinais
nas linhas de endereço e emite sinal de ativação do endereço
2º Ciclo: Escrita: Processador coloca os
dados nas linhas de memória 3º Ciclo:
Escrita: Copia a informação das linhas de dados para posição de memória
Aula 3 – Interconexão do Computador 26
Temporização Assíncrona – Diagrama de leitura
Processador coloca todos os sinais no barramento Pulso na linha de leitura faz com que memória localizar o
endereço desejado e coloque os dados no barramento Quando o dados for válido a memória ativa a linha de
confirmação e o processador efetua a leitura
Aula 3 – Interconexão do Computador 27
Temporização Assíncrona – Diagrama de escrita
Processador coloca todos os sinais no barramento Pulso na linha de escrita faz com que memória armazene
os dados na posição desejada Memória coloca um sinal de confirmação no barramento
Aula 3 - Visão de alto nível da função 28
Tipos de transferências de dados Perspectiva do processador
Endereço(1ºciclo)
Dados(2ºciclo)
Tempo de acessoEndereço Dados
EndereçoLeitura
de dados
Escrita de
dados
EndereçoEscrita
de dados
Leitura de
dados
DadosEndereço Dados Dados
Endereço
Dados
Endereço
Dados
Tempo Tempo
Tempo
Operação de escrita (multiplexada)
Operação de leitura (multiplexada)
Operação de leitura-modificação-escrita
Operação de leitura-após-escrita
Transferência de dados em bloco
Operação de escrita ( não multiplexada)
Operação de escrita (não multiplexada)
*Multiplexado – mesmo barramento para endereço e dados
AUla 12 - Estrutura e função do processador 29
ESTRUTURA E FUNÇÃO DO PROCESSADOR
Aula 12
AUla 12 - Estrutura e função do processador 30
Organização da CPU O projeto de uma CPU deve atender os seguintes
requisitos: Busca de instruções (fetch)
Ler uma instrução da memória (registrador, cache, principal) Interpretação de instruções
Decodificar a instrução e determinar a ação requerida Busca de dados
Ler os dados da memória ou de algum módulo de E/S Processamento de dados
Efetuar uma operação aritmética ou lógica com os dados Escrita de dados
Gravar os resultados na memória ou módulo de E/S
AUla 12 - Estrutura e função do processador 31
Estrutura de barramento e organização interna
CPU com barramento de sistema Estrutura Interna da CPU
AUla 12 - Estrutura e função do processador 32
REGISTRADORES
AUla 12 - Estrutura e função do processador 33
Organização dos Registradores A CPU deve possuir espaço para manipulação de dados
(armazenamento temporário) Número e funções dos registradores variam de acordo com
o design do processador Maior decisão de design (quantos e qual função?) Nível mais alto da hierarquia de memória Dois tipos:
Registradores visíveis aos usuário Registradores de controle e estado
AUla 12 - Estrutura e função do processador 34
Registradores visíveis ao usuário São os registradores que podem ser referenciados
pelos recursos da linguagem de máquina que o processador executa. Propósito geral Dados Endereços Códigos de condição
AUla 12 - Estrutura e função do processador 35
Registradores de propósito geral (1) Pode possuir qualquer função atribuída pelo programador.
Isto é, pode conter um operando para qualquer opcode. Porém podem existir restrições para seu uso (ponto
flutuante, operação de pilha, etc) Podem ser usados para dados e endereçamento
Dados Acumulador podem ser empregados para cálculos de endereçamentos
Endereçamento Indireto por registrador, deslocamento Uso geral ou endereçamento em particular
AUla 12 - Estrutura e função do processador 36
Registradores de propósito geral(2) Caso eles sejam de uso geral
Aumenta a flexibilidade e as opções do programador Aumento o tamanho & complexidade das instruções
Caso eles sejam especializados Instruções menores e mais rápidas Menor flexibilidade
AUla 12 - Estrutura e função do processador 37
Quantos registradores de propósito geral? Entre 8 – 32 (Não muito bem definido)i Quanto menos registradores mais referências são
feitas na memória Porém, mais registradores não reduz as referências
na memória
AUla 12 - Estrutura e função do processador 38
Qual o tamanho de um registrador? Grande o suficiente para armazenar um endereço
completo Grande suficiente para armazenar uma palavra
completa Deve ser possível combinar dois registradores de
dados: Programação em C: long int a;
AUla 12 - Estrutura e função do processador 39
Registradores de controle & status Controlam a operação do processador e na maior parte dos
sistemas não é visível ao usuário. Diferentes máquinas possuem diferentes organizações.
Porém os quatro essenciais são: Contador de programas (PC) Registrador da instrução (IR) Registrador de endereço de memória (MAR) Registrador buffer de memória (MBR)
AUla 12 - Estrutura e função do processador 40
Registradores de código de condição Conjunto de bits individuais
e.x. resultado da última operação foi zero Pode ser lido (implicitamente) pelos programas
e.x. Jump se zero Não pode (usualmente) ser configurado por programas
AUla 12 - Estrutura e função do processador 41
Palavra de status de um programa Muitos modelos possuem palavra de estado do
programa (PSW). Bits comuns encontrados em um PSW incluem as seguintes informações: Sinal da última operação aritmética Zero Carry Equal Overflow Interrupção Habilitada/desabilitada
AUla 12 - Estrutura e função do processador 42
Códigos condicionais
AUla 12 - Estrutura e função do processador 43
Exemplos de organização de registradores
Aula 3 - Visão de alto nível da função 44
VISÃO DE ALTO NÍVEL DA FUNÇÃOAula 3
Aula 3 - Visão de alto nível da função 45
Visão de alto nível Possível descrever um sistema de computação de
acordo com: O comportamento externo de cada componente
Dados e sinais de controle que ele troca com os outros componentes
Estrutura de interconexão e controles exigidos para gerenciar a estrutura de interconexão
Aula 3 - Visão de alto nível da função 46
Conceito de programa armazenado Três conceitos principais de Von Neumann
Dados e instruções em uma única memória escrita Memória é endereçável por local, sem considerar o tipo
de dados contido Execução ocorre de forma sequencial de uma instrução
para a próxima
Aula 3 - Visão de alto nível da função 47
Conceito de programa armazenado (2) Sistemas hardwired são inflexíveis Hardware de propósito geral?
Hardware de propósito geral podem realizar diferentes tarefas – dado os corretos sinais de controle
Ao invés de re-cabear o hardware, deve-se apenas utilizar um novo conjunto de sinais de controle
Aula 3 - Visão de alto nível da função 48
Hardwired vs. HW + SW Hardwired
Aceita dados e produz resultados
e.x.
Hardware + Software Aceita dados e sinais de
controle e produz resultado e.x.
Aula 3 - Visão de alto nível da função 49
HW + SW O que é um programa armazenado?
Sinais de controle Determina uma sequência de passos
Para cada passo, uma operação lógica ou aritmética é realizada
Para cada operação, um conjunto diferente de sinais de controle é necessário. Conjunto de sinais de controle → Instrução Conjunto de instruções → Software
Aula 3 - Visão de alto nível da função 50
Função da unidade de controle Para cada operação que pode ser realizada um
único código (opcode) é utilizado e.x. ADD, MOVE
Um segmento do hardware recebe o código e fornece os sinais de controle
Dessa forma: Temos um computador!!
Aula 3 - Visão de alto nível da função 51
Componentes do computador:Visão de alto nível
Unidade central de processsamento Unidade de Controle
(CU) Unidade lógica
aritmética (ALU)
Aula 3 - Visão de alto nível da função 52
Componentes do computador:Visão de alto nível
Dados e instruções devem entrar no sistema e o resultado produzido deve sair Entrada/saída -
Input/output (módulo I/O)
Aula 3 - Visão de alto nível da função 53
Componentes do computador:Visão de alto nível
Armazenamento temporário do código e dos resultados é necessário Memória RAM
Aula 3 - Visão de alto nível da função 54
Interação entre componentes CPU → Memória
MAR – próximo endereço para leitura ou escrita na memória
MBR – dados que foram lidos ou serão escritos na memória
Aula 3 - Visão de alto nível da função 55
Função do computador Executar um programa, sendo assim
CPU deve executar conjunto de instruções que está na memória
Como isso funciona? Executa os ciclos de cada instrução
Aula 3 - Visão de alto nível da função 56
Ciclo de instrução (1) Dois passos:
Busca (Fetch) Execução
Aula 3 - Visão de alto nível da função 57
Ciclo de Busca (Fetch Cycle) (2) Contador de Programa (PC)
armazena o endereço da próxima instrução a ser buscada
Aula 3 - Visão de alto nível da função 58
Ciclo de Busca (Fetch Cycle) (3) Processador busca de uma
localização na memória apontada pelo contador de instrução
Aula 3 - Visão de alto nível da função 59
Ciclo de Busca (Fetch Cycle) (4) O conteúdo do contador de
programa é incrementado Ao menos que o comando
altere seu conteúdo
+1
Aula 3 - Visão de alto nível da função 60
Ciclo de Busca (Fetch Cycle) (5) Instrução é armazenada no
Registrador de Instrução (IR)
+1
Aula 3 - Visão de alto nível da função 61
Ciclo de Busca (Fetch Cycle) - Resumo Contador de Programa (PC) armazena o endereço
da próxima instrução a ser buscada Processador busca de uma localização na memória
apontada pelo contador de instrução O conteúdo do contador de programa é
incrementado Ao menos que o comando altere seu conteúdo
Instrução é armazenada no Registrador de Instrução (IR)
Aula 3 - Visão de alto nível da função 62
Ciclo de execução (Execute Cycle) (1) Processador interpreta a
instrução e executa as ações solicitadas, como: Processador - memória
Transferir dados entre a CPU e a memória principal
Aula 3 - Visão de alto nível da função 63
Ciclo de execução (Execute Cycle) (2) Processador interpreta a
instrução e executa as ações solicitadas, como: Processador – Entrada e Saída
(E/S) Transferir dados entre CPU e
módulo de E/S
Aula 3 - Visão de alto nível da função 64
Ciclo de execução (Execute Cycle) (3) Processador interpreta a
instrução e executa as ações solicitadas, como: Processamento de dados
Operações lógicas ou aritméticas sobre os dados
Aula 3 - Visão de alto nível da função 65
Ciclo de execução (Execute Cycle) (4) Processador interpreta a
instrução e executa as ações solicitadas, como: Controle
Alteração da sequência de operações
e.x. jump (desvio) Ou ainda, combinações das
funções acima
Aula 3 - Visão de alto nível da função 66
Ciclo de execução (Execute Cycle) - Resumo Processador interpreta a instrução e executa as ações
solicitadas, como: Processador - memória
Transferir dados entre a CPU e a memória principal Processador – Entrada e Saída (E/S)
Transferir dados entre CPU e módulo de E/S Processamento de dados
Operações lógicas ou aritméticas sobre os dados Controle
Alteração da sequência de operações e.x. jump (desvio)
Ou ainda, combinações das funções acima
Aula 3 - Visão de alto nível da função 67
Máquina Hipotética
Opcode Endereço
Magnitude
0 3 4 15
150 1
Contador de programa (PC) = Endereço da InstruçãoRegistrador de instrução (IR) = Instrução sendo executadaAcumulador (AC) = Armazenamento temporário
0001 = Carrega AC da memória (0x1)0010 = Armazena AC na memória (0x2)0101 = Adiciona da memória ao AC (0x5)
(a) Formato da instrução
(b) Formato de inteiro
(c) Registradores internos da CPU
(d) Lista parcial de opcodes
Aula 3 - Visão de alto nível da função 68
Exemplo de execução de um programa (1) Somar o conteúdo das posições de memória
940 e 941 e armazenar na memória
LOAD M(940)ADD M(941)STOR M(941)
Contador de programa = 300
Contador de programa (PC) = Endereço da InstruçãoRegistrador de instrução (IR) = Instrução sendo executadaAcumulador (AC) = Armazenamento temporário
0001 = Carrega AC da memória0010 = Armazena AC na memória0101 = Adiciona da memória ao AC
(c) Registradores internos da CPU
(d) Lista parcial de opcodes
Opcode Endereço0 3 4 15
(a) Formato da instrução
Aula 3 - Visão de alto nível da função 69
Exemplo de execução de um programa (2)LOAD M(940)ADD M(941)STOR M(941)
Contador de programa (PC) = Endereço da InstruçãoRegistrador de instrução (IR) = Instrução sendo executadaAcumulador (AC) = Armazenamento temporário
0001 = Carrega AC da memória0010 = Armazena AC na memória0101 = Adiciona da memória ao AC
(c) Registradores internos da CPU
(d) Lista parcial de opcodes Opcode Endereço
0 3 4 15
(a) Formato da instrução
(a) Busca (b) Execução
Aula 3 - Visão de alto nível da função 70
Exemplo de execução de um programa (3)LOAD M(940)ADD M(941)STOR M(941)
Contador de programa (PC) = Endereço da InstruçãoRegistrador de instrução (IR) = Instrução sendo executadaAcumulador (AC) = Armazenamento temporário
0001 = Carrega AC da memória0010 = Armazena AC na memória0101 = Adiciona da memória ao AC
(c) Registradores internos da CPU
(d) Lista parcial de opcodes Opcode Endereço
0 3 4 15
(a) Formato da instrução
(a) Busca (b) Execução
Aula 3 - Visão de alto nível da função 71
Exemplo de execução de um programa (4)LOAD M(940)ADD M(941)STOR M(941)
Contador de programa (PC) = Endereço da InstruçãoRegistrador de instrução (IR) = Instrução sendo executadaAcumulador (AC) = Armazenamento temporário
0001 = Carrega AC da memória0010 = Armazena AC na memória0101 = Adiciona da memória ao AC
(c) Registradores internos da CPU
(d) Lista parcial de opcodes Opcode Endereço
0 3 4 15
(a) Formato da instrução
(a) Busca (b) Execução
Aula 3 - Visão de alto nível da função 72
Ciclo de Instrução – Diagrama de Estados
Operações na CPU
CPU-Memória