Organização de Computadores Aula 19 Barramentos: Estruturas de Interconexão Rodrigo Hausen 14 de outubro de 2011 http://cuco.pro.br/ach2034 Rodrigo Hausen - OCD 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” Rodrigo Hausen - OCD 2/40 Arquitetura Exemplo Memória Principal R1 ... Rn Barramento do Sistema ULA Módulo de E/S Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 4/40 Módulos de um Computador Rodrigo Hausen - OCD 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) ● Rodrigo Hausen - OCD 6/40 Subsistema de Entrada/Saída ● Similar à memória, do ponto de vista da CPU Interface 0 dados controle ... endereço Módulo de E/S Interface 1 Interface n-1 ● Dispositivo externo n-1 Cada interface (porta) é identificada por um endereço Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 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) ● Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 11/40 Tipos de Transferência (1) ● Memória principal para processador Memória Principal R1 ... Rn Barramento do Sistema ULA Módulo de E/S Rodrigo Hausen - OCD 12/40 Tipos de Transferência (2) ● Processador para memória principal Memória Principal R1 ... Rn Barramento do Sistema ULA Módulo de E/S Rodrigo Hausen - OCD 13/40 Tipos de Transferência (3) ● Subsistema de E/S para processador Memória Principal R1 ... Rn Barramento do Sistema ULA Módulo de E/S Rodrigo Hausen - OCD 14/40 Tipos de Transferência (4) ● Processador para subsistema de E/S Memória Principal R1 ... Rn Barramento do Sistema ULA Módulo de E/S Rodrigo Hausen - OCD 15/40 Tipos de Transferência (5) ● (Opcional) Entre memória e subsistema de E/S (DMA) Memória Principal R1 ... Rn Barramento do Sistema ULA Módulo de E/S Rodrigo Hausen - OCD 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. ● Rodrigo Hausen - OCD 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. ● Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 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) ● Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 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: 216 = 65536 posições de memória ● Rodrigo Hausen - OCD 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: 216 = 65536 posições de memória (de 8 bits, cada) ● Rodrigo Hausen - OCD 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. Rodrigo Hausen - OCD 24/40 Aspecto de um Barramento ● Linhas paralelas em placas de circuito impresso Rodrigo Hausen - OCD 25/40 Aspecto de um Barramento ● ● Linhas paralelas em placas de circuito impresso Cabos paralelos (ribbon cable) Rodrigo Hausen - OCD 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) Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 28/40 Realização Física de um Barramento Único de Sistema ● Estrutura em “backplane” Rodrigo Hausen - OCD 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 ● Rodrigo Hausen - OCD 30/40 Arquitetura em Mezanino Memória Principal CPU Barramento do Sistema Interface de rede Interface de disco Interface de expansão do barramento Interface de modem Interface serial Barramento de Expansão Rodrigo Hausen - OCD 31/40 Arquitetura de Alto Desempenho Memória Principal CPU Barramento do Sistema Interface de disco Ponte de Barramento Interface de vídeo Interface de rede Barramento de Alta Velocidade Interface de fax Interface de expansão do barramento Interface de modem Interface serial Barramento de Expansão Rodrigo Hausen - OCD 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) ● Rodrigo Hausen - OCD 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. Rodrigo Hausen - OCD 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 Rodrigo Hausen - OCD 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 ● Rodrigo Hausen - OCD 36/40 Diagrama: Temporização Síncrona (do barramento) (fornecido pelo mestre) (fornecido pelo mestre) (fornecidas pelo mestre) (retornadas pelo escravo) (retornada pelo escravo) Rodrigo Hausen - OCD 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 ● Rodrigo Hausen - OCD 38/40 Diagrama: Temporização Assíncrona (fornecido pelo mestre) (retornado pelo escravo) (fornecido pelo mestre) (fornecidas pelo mestre) (retornadas pelo escravo) Rodrigo Hausen - OCD 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/ Rodrigo Hausen - OCD 40/40