Organização de Computadores Aula 19 Barramentos: Estruturas de Interconexão Rodrigo Hausen 14 de outubro de 2011 http://cuco.pro.br/ach2034 1/40
Apresentação 1. Bases Teóricas 2. Organização de computadores 2.1. Introdução 2.2. Execução de instruções 2.3. Estruturas de Interconexão 3. Histórico, evolução e performance Aula de hoje: Stallings (5a. edição), 3.3. Estruturas de Interconexão e 3.4. Interconexão de Barramentos 2/40
Arquitetura Exemplo R1... Rn Memória Principal Barramento do Sistema ULA Módulo de E/S 3/40
Conexões Todas as unidades de um sistema computacional precisam estar conectadas Tipo diferente de conexão para tipo diferente de módulo: Memória Módulo de Entrada/Saída CPU 4/40
Módulos de um Computador 5/40
Conexão da Memória Principal Tipicamente, a memória principal é composta de N palavras de mesmo tamanho. Recebe e envia palavras Recebe endereços (de posições) Recebe sinais de controle: Leitura Escrita Temporização (para sincronizar operação com CPU) 6/40
... Subsistema de Entrada/Saída Similar à memória, do ponto de vista da CPU Interface 0 dados endereço Módulo de E/S Interface 1 controle Interface n-1 Dispositivo externo n-1 Cada interface (porta) é identificada por um endereço 7/40
Conexão de Entrada/Saída Operação de Saída Recebe dados do computador Envia dados para a interface de um dispositivo externo 8/40
Conexão de Entrada/Saída Operação de Entrada Recebe dados da interface de um dispositivo externo Envia dados para o computador 9/40
Conexão de Entrada/Saída Recebe signais de controle do computador Envia sinais de controle para os dispositivos externos (também chamados periféricos) p. ex. ligar motor do disco rígido (HD) Recebe endereços do computador p. ex. número da porta para identificar periférico Envia sinais de interrupção (controle) 10/40
Conexão da CPU Lê instruções e dados Escreve dados (após processamento) Envia sinais de endereçamento para outras unidades Envia sinais de controle para outras unidades Recebe (e processa) as interrupções 11/40
Tipos de Transferência (1) Memória principal para processador R1... Rn Memória Principal Barramento do Sistema ULA Módulo de E/S 12/40
Tipos de Transferência (2) Processador para memória principal R1... Rn Memória Principal Barramento do Sistema ULA Módulo de E/S 13/40
Tipos de Transferência (3) Subsistema de E/S para processador R1... Rn Memória Principal Barramento do Sistema ULA Módulo de E/S 14/40
Tipos de Transferência (4) Processador para subsistema de E/S R1... Rn Memória Principal Barramento do Sistema ULA Módulo de E/S 15/40
Tipos de Transferência (5) (Opcional) Entre memória e subsistema de E/S (DMA) R1... Rn Memória Principal Barramento do Sistema ULA Módulo de E/S 16/40
Barramento (Bus) Há diversas maneiras de se projetar um sistema de interconexão Mais comuns: Barramento separado em linhas de dados, endereço e controle: Master System (proc. Z-80), PCs atuais Barramento compartilhado (multiplexado) para vários tipos de informação: PC-XT, baseado no processador Intel 8086/8088, tinha barramento multiplexado para dados e endereço. 17/40
Que é um Barramento? Meio de comunicação entre dois ou mais dispositivos Geralmente, sinais colocados em um barramento são recebidos por todos os dispositivos (broadcast) Apenas um módulo pode escrever em um barramento em um dado instante! Geralmente é agrupado: Vários canais de comunicação em um só barramento (barramento paralelo) p. ex. Barramento de dados de 32 bits é um conjunto de 32 canais de um só bit. Geralmente, não se representam as conexões para a bateria/fonte de tensão. 18/40
Diagrama de Interconexão No diagrama acima o barramento está dividido em: Barramento de dados: transmite dados Barramento de endereço: identifica a fonte/destino dos dados Barramento de controle: transmite informações de controle e temporização 19/40
Barramento de dados Transmite dados Observe que não há distinção entre dado e instrução neste nível (estamos fora da CPU) Largura do barramento é um fator determinante no desempenho (via de regra, quanto mais largo, melhor) Larguras de barramento de dados comuns: 8 bits (Z-80, Intel 8088) 16 bits (Intel 8086) 32 bits (Intel Pentium) 64 bits (Intel Xeon) 20/40
Barramento de Endereço Usado para identificar a fonte e o destino dos dados que trafegam no barramento de dados. p. ex. CPU precisa ler uma instrução (dado) de uma determinada posição na memória Largura do barramento de endereço determina a capacidade de memória máxima do sistema 21/40
Barramento de Endereço Usado para identificar a fonte e o destino dos dados que trafegam no barramento de dados. p. ex. CPU precisa ler uma instrução (dado) de uma determinada posição na memória Largura do barramento de endereço determina a capacidade de memória máxima do sistema p. ex. Z-80 tem um barramento de endereço de 16 bits. Memória máxima: 2 16 = 65536 posições de memória 22/40
Barramento de Endereço Usado para identificar a fonte e o destino dos dados que trafegam no barramento de dados. p. ex. CPU precisa ler uma instrução (dado) de uma determinada posição na memótia Largura do barramento de endereço determina a capacidade de memória máxima do sistema p. ex. Z-80 tem um barramento de endereço de 16 bits. Memória máxima: 2 16 = 65536 posições de memória (de 8 bits, cada) 23/40
Barramento de Controle Controle e temporização da informação Sinais de leitura e escrita para a memória principal ou para dispositivos de E/S Requisições de interrupção Sinais de clock Sinais de controle gerais, tais como: requisição de uso do barramento por um módulo, término de uso do barramento, inicialização (reset) de dispositivos, etc. 24/40
Aspecto de um Barramento Linhas paralelas em placas de circuito impresso 25/40
Aspecto de um Barramento Linhas paralelas em placas de circuito impresso Cabos paralelos (ribbon cable) 26/40
Aspecto de um Barramento Linhas paralelas em placas de circuito impresso Cabos paralelos (ribbon cable) Conectores de borda de placa de expansão (p. ex. PCI) 27/40
Aspecto de um Barramento Linhas paralelas em placas de circuito impresso Cabos paralelos (ribbon cable) Conectores de borda de placa de expansão (p. ex. PCI) Conjuntos de fios unidos 28/40
Realização Física de um Barramento Único de Sistema Estrutura em backplane 29/40
Barramento Único Apesar de ser mais simples de implementar, há desvantagens de se usar um único barramento de sistema. Condutores longos: tempo maior de propagação Muitos dispositivos ligados no mesmo meio de transmissão significa que a coordenação do uso do barramento pode afetar o desempenho geral do sistema Se houver dispositivos com diferentes velocidades de transmissão ligados ao barramento? Taxa de transferência total de dados é limitada à taxa de transferência no barramento do sistema Solução: usar múltiplos barramentos 30/40
Arquitetura em Mezanino Memória Principal CPU Barramento do Sistema Interface de Interface Interface expansão do Interface Interface de rede de disco barramento de modem serial Barramento de Expansão 31/40
Arquitetura de Alto Desempenho Memória Principal CPU Barramento do Sistema Interface Ponte de Interface Interface de disco Barramento de vídeo de rede Barramento de Alta Velocidade Interface de fax Interface de expansão do barramento Interface de modem Interface serial Barramento de Expansão 32/40
Classificação de Barramentos Dedicado Linhas separadas para dados e endereços Multiplexado Linhas compartilhadas Necessita de mais uma linha de controle, para indicar se há dados ou endereços trafegando no barramento naquele instante Vantagem: necessita de menos condutores Desvantagens Controle mais complexo Pode diminuir o desempenho (pois compartilha um só canal para endereços e dados) 33/40
Arbitragem do Barramento Confome já dissemos, apenas um módulo pode controlar o barramento por vez (apesar de mais de um módulo poder ler o que está sendo transmitido). O que acontecer se mais de um módulo solicitar o controle do barramento? Claramente, precisamos estabelecer regras para ceder o controle do barramento: arbitragem do barramento. As regras definem mestre (que controla) e escravo(s) (que é/são controlado/os) A arbitragem pode ser centralizada ou distribuída. 34/40
Tipos de Arbitragem Centralizada Somente um módulo controla o acesso ao barramento Controlador de barramento ou árbitro decide quem poderá controlar o barramento Pode ser parte da CPU, ou um dispositivo dedicado a essa tarefa Distribuída Cada módulo pode decidir controlar o barramento Necessária logica de controle em todos os módulos 35/40
Temporização Coordenação de eventos no barramento Síncrona Eventos determinados por um sinal de controle Barramento de controle inclui uma linha de clock Uma transmissão de 1 seguido de 0 define um ciclo do barramento Todos os dispositivos têm acesso à linha de clock Geralmente, sincronismo é dado pela borda de subida do clock (sync on leading edge) Geralmente, apenas um ciclo por evento 36/40
Diagrama: Temporização Síncrona (do barramento) (fornecido pelo mestre) (fornecido pelo mestre) (fornecidas pelo mestre) (retornadas pelo escravo) (retornada pelo escravo) 37/40
Temporização Assíncrona Mais complexo, porém mais flexível Permite que dispositivos mais lentos e mais rápidos compartilhem o mesmo barramento, sem degradação de desempenho aos mais rápidos (permite melhor a mistura de tecnologias mais novas com mais antigas) Evento no barramento depende de evento ocorrido anteriormente MSYN: sincronismo mestre, de quem controla o barramento SSYN: sincronismo escravo, de quem está sendo controlado 38/40
Diagrama: Temporização Assíncrona (fornecido pelo mestre) (retornado pelo escravo) (fornecido pelo mestre) (fornecidas pelo mestre) (retornadas pelo escravo) 39/40
Para Casa Ler seções 3.3 e 3.4 e o apêndice do capítulo Ler seção 3.5, sobre o barramento PCI, para ver como a teoria se aplica na prática Fazer exercícios do capítulo Cultura geral: http://www.pcguide.com/ref/mbsys/buses/ 40/40