Prévia do material em texto
Arquitetura: atributos visíveis de um sistema ao programador. Organização: Unidades operacionais e interconexões. Implementa a arquitetura. Funções básicas do computador: 1. Processamento de dados; 2. Armazenamento de dados; 3. Movimentação de dados; 4. Controle. Componentes estruturais 1. Unidade central de processamento (CPU): controla as operações do computador e funções do processamento de dados; 2. Memória principal: armazena dados; 3. E/S: move dados entre o computador e o ambiente externo 4. Interconexão do sistema: barramento Principais componentes da CPU 1. Unidade de controle: controla as operações da CPU; 2. Unidade aritmética e lógica: processamento de dados; 3. Registradores: armazenamento interno à CPU; 4. Interconexões da CPU: mecanismo que oferece comunicação entre todos esses componentes. Arquitetura de Von Neumann 1. Uma memória principal para armazenar dados e instruções; 2. Uma unidade lógica e aritmética capaz de operar sobre dados binários; 3. Uma unidade de controle que interpreta as instruções na memória e faz com que sejam executadas; 4. Equipamento de E/S operado pela UC (unidade de controle). Uma característica principal da arquitetura de Von Neumann é o compartilhamento da memória entre dados dos usuários e instruções executadas. ** Palavra: um dado a ser armazenado ou uma instrução. ** Carregar palavras com 2 instruções é melhor Processador O processador precisa ser alimentado com um fluxo constante de instruções (para não ficar ocioso). A velocidade da memória não acompanha a do processador, então algumas soluções são: - Reduzir a frequência de acesso a memória utilizando caches entre a memória principal e o processador; - Usar barramento de alta velocidade; Para aumentar a velocidade do processador: - Aumentar a velocidade de hardware do processador diminuindo o tamanho das portas lógicas, deixando-as mais próximas entre si, aumentando a taxa de clock; - Com o aumento de velocidade do clock, vem o problema da potência e fica difícil para dissipar o calor gerado em chips. RISC x CISC RISC: processador com um número pequeno de instruções simples. CISC: capaz de executar várias instruções complexas. (alguns computadores usam soluções híbridas) Desempenho do processador Quanto maior o acesso à memória, o desempenho do processo é pior. A velocidade do processador é ditada pela frequência do clock. Benchmarks Um conjunto de programas usados para medir desempenho. É escrito em linguagem de alto nível, pode ser medido com facilidade, tem ampla distribuição e representa um estilo de programação. Para obter uma comparação confiável, é preferível usar uma série de programas de benchmarks. Funções básicas do computador Função básica do computador: - execução de programas; - duas etapas: busca e execução de dados. Busca e execução: - Processador memória: dados podem ser transferidos entre eles; - Processador E/S: dados pode ser transferidos de ou para periféricos; - Processamento de dados: processador realiza alguma operação lógica ou aritmética sobre os dados; - Controle: uma instrução pode especificar que a sequência de execução seja alterada. Interrupções Um mecanismo para que outros módulos possam interromper o processamento normal do processador. Serve para melhorar a eficiência do processamento. Classe de interrupções: - Programa: divisão por zero, execução de instrução ilegal, etc; - Timer: sleep em threads; - E/S: conclusão ou falha de operação; - Falha de hardware: erro de memória, etc. Ciclo de interrupção: o processador verifica se houve alguma interrupção e se não tiver, segue o ciclo de busca. Se tiver, ele suspende a execução atual, salva o contexto e trata a interrupção. Interrupções múltiplas: dá para proceder com duas maneiras: 1. Tratar sequencialmente. Se uma interrupção estiver sendo processada e outra acontecer durante esse tempo, ela ficará pendente até terminar a que estiver sendo processada. Desvantagem: não leva em consideração a prioridade ou necessidade de tempo crítico; 2. Definir prioridades. Permite que uma interrupção de maior prioridade faça com que o tratamento de uma de menor prioridade seja interrompido para ser tratada. Função de E/S Um módulo de E/S pode trocar dados diretamente com o processador e o processador pode ler/escrever em um módulo de E/S. O processador pode conceder ao módulo de E/S autoridade para de ler/escrever na memória. Interconexão Conecta os principais componentes do computador (processador, memória e E/S). Estrutura: deve permitir as transferências: - memória processador; - E/S processador; - E/S memória (DMA). Barramento: um caminho de comunicação que conecta dois ou mais dispositivos. Um sinal transmitido por qualquer dispositivo está disponível a todos conectados no barramento. Só um dispositivo por vez pode transmitir com sucesso pois, se mais transmitirem ao mesmo tempo, os sinais são sobrepostos e distorcidos. O barramento consiste em linhas e transmite sinais representando binários 1 e 0. Barramento do sistema: conecta os principais componentes do computador. Estrutura do barramento: - Linha de dados: caminho para a movimentação de dados. Pode consistir em 32, 64, 128 ou mais linhas. O número de linhas é a largura do barramento e pode determinar o desempenho geral do sistema. - Linha de endereço: designar origem ou destino dos dados da linha de dados. A largura determina a capacidade de memória máxima possível do sistema. Também usado para endereçar portas de E/S. - Linha de controle: usada para controlar o acesso e uso das linhas. Sinais de comando: - Escrita/Leitura de memória e E/S; - ACK de transferência: indica que dados foram escritos ou colocados no barramento; - Solicitação para concessão do barramento; - Requisição de interrupção: indica interrupção pendente; - ACK de interrupção: interrupção pendente reconhecida; - Clock: usado para operações de sincronização; - Reset: inicializa todos os módulos. Hierarquia de barramento múltiplo: Muitos dispositivos conectados ao barramento prejudicam o desempenho pois o barramento precisa ser maior e, quanto maior o barramento, maior o atraso de propagação. Solução: múltiplos barramentos dispostos em hierarquia. Elementos do projeto de barramento: Tipo (linha): - dedicado: - multiplexado: Método de atribuição: mais de um módulo pode precisar ter o controle do barramento mas só uma unidade pode transmitir de cada vez - centralizado: controlador de barramento; - distribuído: cada módulo do sistema contém uma lógica de controle de acesso. Sincronização: - Síncrona: determinada por um relógio; - Assíncrona: depende de um evento. Memória cache É uma memória interna e a capacidade é expressa em palavras ou bytes (1 byte = 8 bits). Uma distinção entres os tipos de memória são os métodos de acesso: - Sequencial: o acesso é feito em sequência linear. Ex: fitas magnéticas; - Direto: blocos ou registros possuem endereço exclusivo mas necessita acesso sequencial até o local final. Ex: unidade de disco; - Aleatório: cada unidade possui mecanismo de endereçamento exclusivo. Ex: memória principal; - Associativo: memória de acesso aleatório que possibilita comparar simultaneamente bits de uma palavra com todas as outras da memória. A palavra é buscada pelo conteúdo e não pelo endereço. Ex: memória cache. Desempenho: - Tempo de acesso (latência): tempo gasto para posicionar o mecanismo ou realizar uma operação de leitura/escrita; - Tempo de ciclo da memória: tempo de acesso antes que outro acesso possa ser realizado. Da memória de acesso aleatório; - Taxa de transferência: taxa em que os dados podem ser transferidos para dentro ou fora de uma unidade de memória. Volátil e não volátil: - Volátil: as informações são perdidas na ausência de energia elétrica. - Não volátil: a informação permanece gravada, não sendo necessário energia elétrica. Hierarquia: No topo da pirâmide estão as memórias mais rápidas, caras e com menor capacidade. O uso de dois níveis de memória pode reduzir o tempo médio de acesso.Princípios da memória cache: Baratear o sistema e manter a velocidade de execução rápida. Visa obter velocidade de memória próxima das mais rápidas e disponibilizar grande capacidade ao preço de memórias baratas. Contém algumas partes da memória principal na cache, assim quando o processador tentar ler uma palavra na memória primeiro é feito a verificação na cache. Elementos do projeto de cache Memória virtual: permite que os programas enderecem a memória a partir de um ponto de vista lógico sem considerar a quantidade de memória principal disponível (usa uma parte do disco rígido como se fosse RAM, aumentando a capacidade de memória) Os endereços das instruções possuem endereços virtuais - Realocação: cada processo tenha seu próprio espaço de endereçamento; - Proteção: impede que um processo utilize um endereço que não seja dele; - Paginação: possibilita um processo utilizar mais memória do que a física existente; - MMU: unidade de gerenciamento de memória: traduz cada endereço virtual para físico na memória principal. Endereços de cache: - Lógica (virtual): armazena dados usando endereços virtuais; - Física: armazena dados usando endereços físicos. A vantagem da lógica é que a velocidade de acesso é maior, pode responder antes do trabalho do MMU. Tamanho da cache: Caches grandes tendem a ser mais lentas que as pequenas. O desempenho da cache depende da carga de trabalho, é impossível chegar em um único tamanho ideal. Funções de mapeamento