Buscar

Cap03 - Visão de alto nível da função e interconexão

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes