Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Visão de alto nível da função e interconexão do computador Dennis Sávio Martins da Silva dennissavio@hotmail.com Introdução No nível superior, um computador consiste em CPU, memória e componentes de E/S, com um ou mais módulos de cada tipo. Esses componentes são interconectados de alguma forma para realizar a função básica do computador, que é executar programas. Introdução Podemos descrever um sistema de computação: Descrevendo o comportamento externo de cada componente (dados e sinais de controle que ele troca com outros componentes) Descrevendo a estrutura de interconexão e os controles exigidos para gerenciar a estrutura de interconexão. Introdução Importância da visão de alto nível da estrutura: Poder explicativo na compreensão da natureza de um computador Melhor entendimento de questões complexas relativas ao desempenho (gargalos, caminhos alternativos, falhas, incrementos de desempenho, etc.) Às vezes, é necessária uma mudança de projeto para melhoria de desempenho, ao invés de apenas aumento nas capacidades individuais de um dispositivo. Componentes do computador Conceitos da arquitetura de Von Neumann: Dados e instruções armazenados em uma única memória de leitura e escrita O conteúdo dessa memória é endereçável por local, sem considerar o tipo de dados neles contido A execução ocorre em um padrão sequencial (a menos que modificado explicitamente) de uma instrução para a seguinte. Sequências de funções aritméticas e lógicas Interpretador de Instrução Funções aritméticas e lógicas de uso geral Dados Dados Códigos de Instrução Sinais de Controle Resultados Resultados (a) Programação no Hardware (a) Programação no Software PC MAR IR MBR I/O AR I/O BR Unidade de execução . 0 . 1 . 2 Instrução . Instrução . Instrução . . . . Dados Dados Dados Dados . . . CPU Módulo de E/S Memória Principal . . . Buffers PC = Contador de Programa IR = Registrador de Instrução MAR = Registrador de Endereço de Memória MBR = Registrador de buffer de memória I/O AR = Registrador de endereço de Entrada/Saída I/O BR = Registrador de buffer de Entrada/Saída Função do computador Processamento consiste de duas etapas: O processador lê instruções da memória, uma de cada vez (ciclo de busca) O processador executa a instrução (ciclo de execução) A essas etapas, que são executadas repetidas vezes, chamamos ciclos de instrução Ciclo de instrução Início Buscar próxima instrução Executar Instrução Fim Busca e execução de instruções No início de um ciclo de instrução, o processador busca uma instrução da memória Um registrador chamado contador de programa (PC) mantém o endereço da instrução a ser executada em seguida. Após cada busca de instrução, PC é incrementado com o valor do endereço da instrução localizada no próximo endereço de memória mais alto Essa sequência pode ser alterada Busca e execução de instruções A instrução lida é carregada em um registrador no processador (IR, ou registrador de instrução) A instrução contém bits que especificam a ação que o processador deve tomar Busca e execução de instruções O processador interpreta a instrução e realiza a ação solicitada. Em geral, essas ações estão em uma dessas quatro categorias: Processador – Memória: Os dados podem ser transferidos do processador para a memória, ou da memória para o processador Processador – E/S: Os dados podem ser transferidos de ou para um dispositivo periférico, transferindo entre o processador e um módulo de E/S Processamento de dados: O processador pode realizar alguma operação aritmética ou lógica sobre os dados Controle: Uma instrução pode especificar que a sequência de execução seja alterada (por meio da indicação do novo endereço não-sequencial na memória) Uma máquina Hipotética O processador possui um único registrador de dados, chamado acumulador (AC) Instruções e dados possuem 16 bits de extensão Opcode Endereço Magnitude Formato de instrução Formato de inteiro 0 3 4 15 0 1 15 Uma máquina Hipotética Registradores internos da CPU Contador de programa (PC) = endereço da Instrução Registrador de instrução (IR) = instrução sendo executada Acumulador (AC) = armazenamento temporário Lista Parcial de opcodes 0001 (1) – Carrega AC da memória 0010 (2) – Armazena AC na memória 0101 (5) – Adiciona da memória ao AC 1940 5941 2941 0003 0002 300 1940 300 301 302 940 941 PC AC IR Etapa 1 1940 5941 2941 0003 0002 301 0003 1940 300 301 302 940 941 PC AC IR Etapa 2 1940 5941 2941 0003 0002 302 0005 5941 300 301 302 940 941 PC AC IR Etapa 4 1940 5941 2941 0003 0002 301 0003 5941 300 301 302 940 941 PC AC IR Etapa 3 1940 5941 2941 0003 0002 302 0005 2941 300 301 302 940 941 PC AC IR Etapa 5 1940 5941 2941 0003 0005 303 0005 2941 300 301 302 940 941 PC AC IR Etapa 6 3 + 2 = 5 Considerações sobre o exemplo Foram utilizados três ciclos de instrução Com um conjunto de instruções mais complexo, menos ciclos seriam necessários O ciclo de execução de uma instrução pode envolver mais de uma referência à memória Além de referências à memória, uma instrução pode especificar uma operação de E/S Estados possíveis em um ciclo de instrução IAC (instruction address calculation, ou cálculo de endereço de instrução) – determina o endereço da próxima instrução a ser executada. Normalmente, isso envolve acrescentar um número fixo ao endereço da instrução anterior. IF – (instruction fetch, ou busca da instrução) – lê a instrução do seu local de memória para o processador IOD – (instruction operation decoding, ou Decodificação da operação da instrução) – analisa a instrução para determinar o tipo de operação a ser realizada e o operando ou operandos a serem utilizados OAC – (operation address calculation, ou cálculo do endereço do operando) – Se a operação envolve referência a um operando na memória, ou disponível via E/S, então determina o endereço do operando Estados possíveis em um ciclo de instrução OF (Operation fetch, ou busca do operando) – busca o operando na memória ou o lê da E/S DO (data operation, ou operação dos dados) – Realiza a operação indicada na instrução OS (operation store, ou armazenamento do operando) – escreve o resultado na memória ou envia para a E/S. Diagrama de estado do ciclo de instrução IF IAC IOD OAC DO OAC OF OS Instrução completa, busca próxima instrução Retorna para dados de string ou vetor Interrupções Mecanismo por meio do qual outros módulos (E/S, memória) podem interromper o funcionamento sequencial normal do processador. Criadas como uma maneira de melhorar a eficiência do processamento Interrupções Classes de interrupções: Programa – Gerada por alguma condição que ocorre como resultado da execução de uma instrução, como o overflow aritmético, divisão por zero, tentativa de executar uma instrução de máquina ilegal ou referência fora do espaço de memória permitido para o usuário Timer – Gerada por um timer dentro do processo. Isso permite que o sistema operacional realiza certas funções regularmente E/S – Gerada por um contador de E/S para sinalizar o término normal de uma operação ou para sinalizar uma série de condições de erro Falha de hardware – Gerada por alguma falha como falta de energia ou erro de paridade de memória Interrupções e o ciclo de instrução Com as interrupções, o processador pode estar engajado na execução de outras instruções enquanto uma operação de E/S está em andamento. Quando a operação de E/S é concluída, o módulo de E/S correspondente envia ao processador uma requisição de interrupção. O processador suspende a execução do programa atual, desvia para um programa que atenda ao dispositivo, e retorna à execução original quando o dispositivo é atendido As interrupções são responsabilidade do processador e do sistema operacional. Não há necessidade de códigos específicos para interrupções nos programas de usuário. O overhead causado pelas instruções extras de controle de interrupção tende a ser compensado pela diminuição do tempo de espera nas operações de E/S WRITE WRITE Programa de E/S Comando de E/S END WRITE 1 2 3 4 5 1,2 e 3 - Sequências de instruções que não envolvem E/S 4 – Preparação do dispositivo para execução da E/S 5 – Conclusão da E/S Programa sem Interrupções WRITE WRITE Programa de E/S Comando de E/S Tratador de Interrupção END WRITE 1 2 3 4 5 Programa com Interrupções Interrupções Ciclo de interrupção O processador verifica a ocorrência de alguma interrupção (indicada pela presença de um sinal de interrupção) Se não houver interrupção, o processamento segue na sequência normal Caso haja interrupção, o processador: Suspende a execução do programa e salva seu contexto (endereço da próxima instrução, e dados relevantes) Armazena no Contador do Programa o endereço inicial de uma rotina de tratamento de interrupção O processador executa as instruções da rotina de interrupção Concluida a interrupção, o processador retoma o processamento normal, de onde havia parado, utilizando as informações de contexto Interrupções Múltiplas Técnicas usadas para lidar com interrupções múltiplas: Desativar as interrupções enquanto uma interrupção estiver sendo processada Demais interrupções que ocorrerem no período ficam pendentes Com o termino da execução da interrupção, as interrupções são novamente habilitadas, e o processador verifica se houve interrupções adicionais. Desvantagem da técnica: não leva em conta a prioridade relativa ou necessidades de tempo crítico Interrupções Múltiplas Técnicas usadas para lidar com interrupções múltiplas (cont.): Definir prioridades para interrupções, e permitir que uma interrupção com maior prioridade faça com que o processamento de uma de menor prioridade seja interrompido Estruturas de Interconexão Coleção de caminhos conectando os diversos módulos (processador, memória, E/S) Devem admitir os seguintes tipos de transferências: Memória -> processador Processador -> memória E/S -> processador Processador -> E/S E/S -> memória (DMA – Direct Memory Access, ou Acesso Direto à Memória; Os dispositivos acessam diretamente a memória, diminuindo a carga sobre o processador) Interconexão de barramento Barramento Caminho de comunicação que conecta dois ou mais dispositivos É um meio de transmissão compartilhado (múltiplos dispositivos conectados a um barramento) Apenas um dispositivo pode transmitir por vez Interconexão de barramento Barramento Consistem em múltiplos caminhos de comunicação (linhas), capazes de transmitir sinais binários. Quando unidas, várias linhas podem transmitir em paralelo. Ex: uma unidade de 8 bits pode ser transmitida por 8 linhas de barramento Fisicamente, o barramento do sistema é, na verdade, uma série de condutores elétricos paralelos Interconexão de barramento Existem diversos tipos de barramento, que oferecem caminhos entre os componentes em diversos níveis da hierarquia do sistema de computação Um barramento que conecta os principais componentes do computador (processador, memória, E/S) é chamado de barramento do sistema Interconexão de barramento Estrutura de barramento Um barramento possui, normalmente, em cerca de 50 a centenas de linhas separadas As linhas podem ser classificadas em três grupos funcionais: Linhas de dados Linhas de endereço Linhas de controle Interconexão de barramento Linhas de dados Oferecem um caminho para a movimentação de dados entre os módulos do sistema Pode consistir em 32, 64, 128 ou ainda mais linhas separadas O número de linhas é chamado largura do barramento. Como cada linha só pode transportar 1 bit de cada vez, o número de linhas determina quantos bits podem ser transportados por vez. A largura é fator chave no desempenho geral do sistema. Ex: Se um barramento tem 32 bits de largura e cada instrução possui 64 bits, são necessários 2 acessos à memória por ciclo de instrução Interconexão de barramento Linhas de endereço Designam a origem ou o destino dos dados do barramento de dados. Podem ser também usadas para endereçar portas de E/S Interconexão de barramento Linhas de controle Controlam o acesso e o uso das linhas de dados e endereço, um vez que essas são compartilhadas por todos os componentes Transmitem informações de comando e sincronização entre os módulos do sistema Sincronização – indicam a validade da informação de dados e endereço Comando – especificam operações a serem realizadas Interconexão de barramento As linhas de controle típicas incluem: Escrita de memória – faz com que os dados no barramento sejam escritos no local endereçado Leitura de memória – Faz com que os dados no local endereçado sejam colocados no barramento Escrita de E/S – Faz com que os dados no barramento sejam enviados para a porta de E/S endereçada Leitura de E/S – Faz com que os dados na porta de E/S endereçada sejam colocados no barramento ACK de transferência – Indica que os dados foram aceitos no barramento ou colocados nele Interconexão de barramento As linhas de controle típicas incluem (cont): Solicitação de barramento (Bus request) – Indica que um módulo precisa obter controle do barramento Concessão de barramento (Bus grant) – indica que um módulo solicitante recebeu controle do barramento Requisição de interrupção (Interrupt request) – indica que a interrupção está pendente ACK de interrupção – Indica que a interrupção pendente foi reconhecida Clock é usado para operações de sincronização Reset – Inicializa todos os módulos Interconexão de barramento CPU MEMÓRIA MEMÓRIA E/S E/S Linha de controle Linha de endereço Linha de dados Estrutura de barramento Se um módulo deseja enviar dados para outro, ele precisa: Obter o uso do barramento Transferir dados por meio do barramento Se um módulo quiser requisitar dados de outro, ele precisa: Obter o uso do barramento Transferir uma requisição ao outro módulo pelas linhas de controle e endereço apropriadas Esperar que o outro módulo envie os dados memória Realização física de uma arquitetura de barramento CPU E/S . . . Barramentos Facilidade de Expansão Facilidade de Substituição Hierarquia de barramento múltiplo Muitos dispositivos conectados a um barramento implicam queda de desempenho Quanto maior a quantidade de dispositivos, maior o tamanho do barramento Maior atraso de propagação Maior dificuldade em coordenar o uso do barramento entre os dispositivos Ocorrência de Gargalos, à medida em que a demanda de transferência de dados agregada se aproxima da capacidade do barramento Pode ser combatida por aumento na largura do barramento e da taxa de dados Entretanto, as taxas de dados geradas pelos dispositivos conectados está crescendo rapidamente Hierarquia de barramento múltiplo Geralmente, sistemas de computação adotam um sistema de múltiplos barramentos. Dispositivos passam a ser agrupados hierárquicamente em barramentos correspondentes à sua demanda por velocidade Arquitetura de barramento tradicional Processador Cache Controlador de E/S local Barramento do Sistema Memória Principal Barramento de expansão Interface do barramento de expansão SCSI Rede Modem Serial Arquitetura de alto desempenho Processador Cache/Ponte Barramento de alta velocidade Memória Principal Barramento de expansão Interface do barramento de expansão SCSI FAX Modem Serial Barramento do Sistema FireWire Gráfico Vídeo LAN Elementos de projeto de barramento Tipos de barramento (Dedicado ou multiplexado) Método de arbitração (centralizado ou distribuído) Temporização (síncrona ou assíncrona) Largura do barramento Tipo de transferência de dados Tipo de barramento Dedicado – atribuído permanentemente a uma função ou subconjunto físico de componentes de computador Dedicação Funcional – Ex: uso de linhas e dados dedicadas separadas Dedicação física – Ex: Uso de um barramento de E/S para interligar todos os módulos de E/S Multiplexado – uso de uma mesma linha para várias finalidades Utiliza menos linhas, ocupando menos espaço e diminuindo custos Necessita de circuitos mais complexos Redução de desempenho e vazão devido aos eventos que compartilham a mesma linha não poderem ocorrer em paralelo Método de arbitração Centralizado – um único dispositivo de hardware, chamado controlador ou árbitro de barramento, é responsável por alocar tempo no barramento Distribuído – Cada módulo contém lógica de acesso, e juntos os módulos atuam para compartilhar o barramento Temporização Síncrona – A ocorrência de eventos em um barramento é determinada por um clock O barramento possui uma linha de clock, que transmite pulsos em um intervalo regular Todos os dispositivos leem a linha de clock, e todos os eventos iniciam no início de um ciclo de clock Mais fácil de implementar Pouco flexível no equilíbrio entre dispositivos rápidos/lentos Assíncrona A ocorrência de um evento no barramento depende da ocorrência de um evento anterior Pode tirar proveito dos avanços no desempenho dos dispositivos Largura do barramento Quanto mais largo o barramento de dados, maior o número de bits transferidos por vez Quanto mais largo o barramento de endereço, maior o intervalo de locais que podem ser referenciados Atividade Colete informações a respeito dos principais modelos de barramentos presentes nos computadores atuais, detalhando suas configurações, suas aplicações e se o barramento ainda possui uso comercial.
Compartilhar