Arquitetura de Computadores ECO015 Engenharia de Computação Aula 3 INTERCONEXÃO DO COMPUTADOR Aula 3 – Interconexão do Computador 2 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 3 Módulos do computador Aula 3 – Interconexão do Computador 4 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 5 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 6 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 7 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 – Interconexão do Computador 8 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 9 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 - Visão de alto nível da função 10 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 11 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 12 Esquema de Interconexão por barramentos Aula 3 – Interconexão do Computador 13 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 14 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 15 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 – Interconexão do Computador 16 Como acontece a transferência?  Como deve ser a operação  Dois passos  Enviar dados 1. Obter uso do barramento 2 . Transferir dados pelo barramento  Receber dados 1. Obter uso do barramento Aula 3 - Visão de alto nível da função 2. Transmitir uma requisição ao módulo de entrada e saída Aguardar.... 17 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 18 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 19 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: Buffer Aula 3 – Interconexão do Computador  Dispositivos começam ficar muito rápidos e.x. rede, vídeo, etc. 20 Barramentos de alto desempenho  Cache/Ponte (buffer)  Barramento de alta velocidade  Alterações de processador não afetam o funcionamento dos outros barramentos  Dispositivos de alta velocidade mais perto do processador Buffer Buffer Aula 3 – Interconexão do Computador 21 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 22 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 23 Diagrama de temporização síncrona Ciclo 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 24 Diagrama de temporização síncrona Ciclo 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 25 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 26 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 – Interconexão do Computador 27 Tipos de transferências de dados  Perspectiva do processador Tempo Endereço (1ºciclo) Tempo Dados (2ºciclo) Endereço Operação de escrita (multiplexada) Endereço Tempo de acesso Dados Dados Operação de escrita ( não multiplexada) Operação de leitura (multiplexada) Leitura de dados Endereço Escrita de dados Tempo Endereço Operação de leitura-modificação-escrita Endereço Escrita de dados Leitura de dados Dados Operação de escrita (não multiplexada) Operação de leitura-após-escrita Endereço Dados Dados Transferência de dados em bloco Aula 3 - Visão de alto nível da função Dados *Multiplexado – mesmo barramento para endereço e dados 28 Aula 12 ESTRUTURA E FUNÇÃO DO PROCESSADOR AUla 12 - Estrutura e função do processador 29 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 30 Estrutura de barramento e organização interna CPU com barramento de sistema AUla 12 - Estrutura e função do processador Estrutura Interna da CPU 31 REGISTRADORES AUla 12 - Estrutura e função do processador 32 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 33 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 34 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 35 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 36 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 37 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 38 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 39 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 40 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 41 Códigos condicionais AUla 12 - Estrutura e função do processador 42 Exemplos de organização de registradores AUla 12 - Estrutura e função do processador 43 Aula 3 VISÃO DE ALTO NÍVEL DA FUNÇÃO Aula 3 - Visão de alto nível da função 44 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 45 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 46 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 47 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 48 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 49 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 50 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 51 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 52 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 53 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 54 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 55 Ciclo de instrução (1)  Dois passos:  Busca (Fetch)  Execução Aula 3 - Visão de alto nível da função 56 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 57 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 58 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 59 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 60 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 61 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 62 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 63 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 64 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 65 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 66 Máquina Hipotética 0 3 4 Opcode 15 Endereço (a) Formato da instrução 0 1 15 Magnitude (b) Formato de inteiro Contador de programa (PC) = Endereço da Instrução Registrador de instrução (IR) = Instrução sendo executada Acumulador (AC) = Armazenamento temporário (c) Registradores internos da CPU 0001 = Carrega AC da memória (0x1) 0010 = Armazena AC na memória (0x2) 0101 = Adiciona da memória ao AC (0x5) (d) Lista parcial de opcodes Aula 3 - Visão de alto nível da função 67 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 (PC) = Endereço da Instrução Registrador de instrução (IR) = Instrução sendo executada Acumulador (AC) = Armazenamento temporário (c) Registradores internos da CPU  Contador de programa = 300 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101 = Adiciona da memória ao AC (d) Lista parcial de opcodes 0 3 Opcode 4 15 Endereço (a) Formato da instrução Aula 3 - Visão de alto nível da função 68 Exemplo de execução de um programa (2) LOAD M(940) ADD M(941) STOR M(941) 0 3 Opcode Contador de programa (PC) = Endereço da Instrução Registrador de instrução (IR) = Instrução sendo executada Acumulador (AC) = Armazenamento temporário (c) Registradores internos da CPU 4 15 Endereço (a) Formato da instrução (a) Busca Aula 3 - Visão de alto nível da função 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101 = Adiciona da memória ao AC (d) Lista parcial de opcodes (b) Execução 69 Exemplo de execução de um programa (3) LOAD M(940) ADD M(941) STOR M(941) 0 3 Opcode Contador de programa (PC) = Endereço da Instrução Registrador de instrução (IR) = Instrução sendo executada Acumulador (AC) = Armazenamento temporário (c) Registradores internos da CPU 4 15 Endereço (a) Formato da instrução (a) Busca Aula 3 - Visão de alto nível da função 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101 = Adiciona da memória ao AC (d) Lista parcial de opcodes (b) Execução 70 Exemplo de execução de um programa (4) LOAD M(940) ADD M(941) STOR M(941) 0 3 Opcode Contador de programa (PC) = Endereço da Instrução Registrador de instrução (IR) = Instrução sendo executada Acumulador (AC) = Armazenamento temporário (c) Registradores internos da CPU 4 15 Endereço (a) Formato da instrução (a) Busca Aula 3 - Visão de alto nível da função 0001 = Carrega AC da memória 0010 = Armazena AC na memória 0101 = Adiciona da memória ao AC (d) Lista parcial de opcodes (b) Execução 71 Ciclo de Instrução – Diagrama de Estados CPU-Memória Operações na CPU Aula 3 - Visão de alto nível da função 72