Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização e Arquitetura de Computadores Aula 05 Prof. Harlei Miguel de Arruda Leite Sumário • Memória Secundária • Entrada/Saída • Homework • Referências Memória Secundária • Introdução – Seja qual for o tamanho da memória principal, ela sempre será muito pequena. A solução tradicional para armazenar grandes quantidades de dados é uma hierarquia de memória. Memória Secundária • Hierarquia de memória Registradores Cache Memória Principal Disco Magnético Tempo de Acesso Baixo Alto Capacidade de Armazenagem Baixa Alta Fita Disco Ótico Entrada/Saída • Introdução – Um sistema de computador tem três componentes principais: a CPU, as memórias (primária e secundária) e os equipamentos de E/S (entrada/saída), como impressoras, scanners e modems. – A estrutura de um computador pessoal simples pode ser vista a seguir. Entrada/Saída • Barramento – Barramento é um caminho elétrico comum que liga e permite a comunicação entre dois ou mais dispositivos (processador, memória, controladores, periféricos, etc). – Conjuntos de fios que transportam sinais de dados, endereço e controle responsáveis pela interconexão dos componentes. – Formado por múltiplos caminhos de comunicação (linhas). • As linhas podem ser classificadas em linhas de dados, endereço e controle. Entrada/Saída • Barramento Entrada/Saída • Linhas de dados – Oferecem um caminho para movimentação de dados entre os módulos do sistema. – Um conjunto de linhas de dados é chamado de barramento de dados. • 32,64, 128 ou mais linhas separadas. • Número de linhas = largura do barramento. – Determina o desempenho geral do sistema. Ex: barramento de 32 bits de largura e instruções de 64 bits de extensão. Entrada/Saída • Linhas de Endereço – Usadas para designar a origem ou destino dos dados no barramento de dados. – Exemplo: • Processador deseja ler uma palavra de dados da memória. • Coloca o endereço da palavra desejada nas linhas de endereço. – Determina a capacidade de memória máxima possível do sistema • Por exemplo, o 8080 tinha um barramento de endereço de 16 bits, gerando espaço de endereços de 64 Kb. Entrada/Saída • Linhas de Controle – Usadas para controlar o acesso e uso das linhas de dados e endereço. • Leitura e escrita de memória • Leitura e escrita de E/S • Solicitação e concessão de barramento • Requisição de interrupção • Etc. Entrada/Saída • Barramento – Esse computador tem um único barramento para conectar a CPU, a memória e os equipamentos de E/S. A maioria dos equipamentos tem dois ou mais barramentos. – Cada dispositivo de E/S consiste em duas partes: uma que contém grande parte da eletrônica, denominado controlador, outra que contém o dispositivo de E/S em si, tal como um drive de disco. – A função de um controlador é controlar seu dispositivo de E/S e manipular para ele o acesso ao barramento. Quando um programa quer dados do disco, por exemplo, ele envia um comando ao controlador de disco, que então emite um comando de busca. Entrada/Saída • Barramento – O que acontece se a CPU e um controlador de E/S quiserem usar barramento ao mesmo tempo? Um chip denominado árbitro de barramento, decide o que acontece em seguida. Em geral, é dada a preferência aos dispositivos de E/S sobre a CPU, porque discos e outros dispositivos que estão em movimento não podem ser interrompidos, e obrigá-los a esperar resultaria em perda de dados. – Esse projeto funcionou bem para os primeiros computadores pessoais, já que dificilmente você levava um equipamento de E/S de um modelo antigo para um modelo novo. Mas com o tempo, as pessoas passaram a levar seus equipamentos antigos ao trocar de CPU. Entrada/Saída • Barramento – No passado, uma ampla gama de dispositivos de E/S foram criados para o barramento do IBM PC. Quando a IBM lançou a linha PS/2, um barramento novo e mais rápido foi desenvolvido. No entanto, os fabricantes continuaram a desenvolver dispositivos para o barramento ISA (Industry Standard Architecture), o que forçou a IBM a dar suporte ao barramento ISA. Entrada/Saída • Barramento – Slot ISA 8 bits Entrada/Saída • Barramentos PCI – Com o tempo, as empresas passaram a desenvolver máquinas com múltiplos barramentos, um dos quais era o antigo ISA. Agora, o mais popular deles é o barramento PCI (Peripheral Component Interconnect – Interconexão de Componentes Periféricos). Esse barramento foi projetado pela Intel. – Uma configuração típica do barramento PCI consiste na comunicação da CPU com um controlador de memória por meio de uma conexão dedicada, de alta velocidade. O controlador se comunica diretamente com a memória e com o barramento PCI, de modo que o tráfego CPU-memória não passa pelo barramento PCI. – Outros periféricos podem ser conectados diretamente ao barramento PCI. Entrada/Saída • Barramentos PCI CPU Cache Ponte para PCI Memória principal Scanner SCSI Disco SCSI Controlador SCSI Controlador de vídeo Controlador de rede Barramento PCI Barramento de memória Barramento SCSI Entrada/Saída • Barramento PCIe – Com o tempo, o PCI foi substituído pelo PCI Express, abreviado como PCIe. A maioria dos computadores modernos tem suporte para ele, de modo que os usuários podem conectar dispositivos novos e velozes ao barramento PCIe e os mais antigos e mais lentos ao barramento PCI. Entrada/Saída • Problemas do barramento único – Muitos dispositivos em um barramento: • Demoras na propagação • Caminhos de dados longos significam que a coordenação do uso do barramento pode afetar o desempenho adversamente. – A maioria dos sistemas usam barramentos múltiplos para superar esses problemas. Entrada/Saída • Múltiplos Barramentos - Exemplo Entrada/Saída • Placa mãe ASUS H110M-CS/BR (R$ 380,00 – R$400,00) – PCI Express, PCI, DDR4 , Suporta 32 GB de RAM Entrada/Saída • ASUS 970 Pro Gaming/Aura (R$ 600,00 – R$680,00) – PCI-Express, PCI, DDR3, suporta 32 GB de RAM Entrada/Saída • Módulos de E/S – As principais funções ou requisitos para um módulo de E/S encontram-se nas seguintes categorias: • Controle e temporização • Comunicação com o processador • Comunicação com o dispositivo • Armazenamento temporário (buffering) de dados • Detecção de erro Entrada/Saída • Módulos de E/S – Modelo genérico de um módulo de E/S Entrada/Saída • Diagrama de blocos de um dispositivo externo Entrada/Saída • Módulos de E/S – Durante qualquer período, A CPU pode se comunicar com um ou mais dispositivos externos em padrões imprevisíveis, dependendo da necessidade de E/S do programa. – Os recursos internos, como a memória principal e o barramento do sistema, precisam ser compartilhados entre uma série de atividades, incluindo E/S de dados. – Assim, a função de E/S inclui um requisito de controle e temporização, para coordenar o fluxo de tráfego entre os recursos internos e dispositivos externos. Entrada/Saída • Módulos de E/S – Exemplo: O controle da transferência de dados de um dispositivo externo à CPU poderia envolver a seguinte sequência de etapas: 1. A CPU interroga o módulo de E/S para verificar o estado do dispositivo conectado. 2. O módulo de E/S retorna o estado do dispositivo.3. Se o dispositivo estiver operacional e pronto para transmitir, o processador solicita a transferência de dados por meio de um comando ao módulo de E/S. 4. O módulo de E/S obtém uma unidade de dados (por exemplo, 8 ou 16 bits) do dispositivo externo. 5. Os dados são transferidos do módulo de E/S ao processador. Entrada/Saída • Módulos de E/S – Finalmente, um módulo de E/S normalmente é responsável pela detecção de erro e, subsequentemente, por relatar erros à CPU. Uma classe de erros incluí defeitos mecânicos e elétricos relatados ao dispositivo (por exemplo, papel emperrado, trilha de disco com defeito, etc). – Outra classe consiste em mudanças não intencionais no padrão de bits quando são transmitidos do dispositivo ao módulo de E/S. Alguma forma de código de detecção de erro é normalmente usada para detectar erros de transmissão. Entrada/Saída • Diagrama de blocos de um módulo de E/S Entrada/Saída • Módulos de E/S – Um módulo de E/S funciona para permitir que a CPU veja uma grande variedade de dispositivos de uma maneira simples. – O módulo de E/S pode ocultar os detalhes de temporização, formatos e eletromecânica de um dispositivo externo, de modo que o processador pode funcionar em termos de comandos simples de leitura e escrita, e possivelmente comandos para abrir e fechar arquivos. – Em sua forma mais simples, o módulo de E/S ainda pode ter grande parte do trabalho de controle de um dispositivo (por exemplo, rebobinar uma fita) visível ao processador. Entrada/Saída • Técnicas de E/S – Três técnicas são possíveis para operação de E/S: • E/S programada • E/S controlada por interrupção • Acesso direto à memória Entrada/Saída • E/S programada – Os dados são trocados entre o processador e o módulo de E/S. O processador executa um programa que lhe oferece controle direto da operação de E/S, incluindo percepção do estado de dispositivo, envio de um comando de leitura ou escrita e transferência dos dados. – Quando o processador emite um comando ao módulo de E/S, ele precisa esperar até que a operação de E/S termine. Se o processador for mais rápido que o módulo de E/S, isso desperdiça o tempo do processador. Entrada/Saída • E/S programada Emite comando de leitura ao módulo de E/S Lê registrador de estado do módulo E/S Verifica o estado Lê palavra do módulo de E/S Grava palavra na memória Terminou? CPU -> E/S E/S -> CPU Condição de erro E/S -> CPU CPU -> Memória Sim Próxima Instrução Não Não pronto Entrada/Saída • E/S controlada por interrupção – O processador emite um comando de E/S, continua a executar outras instruções e é interrompido pelo módulo de E/S quando o último tiver completado seu trabalho. Entrada/Saída • E/S controlada por interrupção Emite comando de leitura ao módulo de E/S Lê registrador de estado do módulo E/S Verifica o estado Lê palavra do módulo de E/S Grava palavra na memória Terminou? CPU -> E/S E/S -> CPU Condição de erro E/S -> CPU CPU -> Memória Sim Próxima Instrução Não Faz algo mais Interrupção Entrada/Saída • Acesso direto à memória – Com A E/S programada e por interrupção, o processador é responsável por obter dados da memória principal para saída, e por armazenar dados na memória principal para entrada. – A alternativa é conhecida como acesso direto à memória (DMA). Nesse modo, o módulo de E/S e a memória principal trocam dados diretamente, sem envolvimento do processador. Entrada/Saída • Acesso direto à memória – Quando o processador deseja ler ou escrever um bloco de dados, ele envia um comando ao módulo DMA com as seguintes informações: • Indicação de uma operação de leitura ou escrita usando a linha de controle de leitura ou escrita entre o processador e o módulo de DMA. • O endereço do dispositivo de E/S envolvido, comunicado nas linhas de dados. • O local inicial na memória para ler ou escrever, comunicado nas linhas de dados e armazenado pelo módulo de DMA em seu registrador de endereço. • O número de palavras a serem lidas ou gravadas, novamente comunicado por meio das linhas de dados e armazenado no registrador contador de dados. – O processador, então, continua com outro trabalho. O módulo DMA transfere o bloco de dados inteiro, uma palavra de cada vez, diretamente de ou para a memória, sem passar pelo processador. Quando finaliza, envia um sinal de interrupção para o processador. Entrada/Saída • Acesso direto à memória – DMA envolve um módulo adicional no barramento do sistema. O módulo de DMA é capaz de imitar o processador e, na realidade, assumir o controle do sistema do processador. Ele precisa fazer isso para transferir dados de e para a memória pelo barramento do sistema. – Para essa finalidade, o módulo de DMA precisa usar o barramento apenas quando o processador não precisa dele, ou então precisa forçar o processador a suspender a operação temporariamente. Essa última técnica é conhecida como roubo de ciclo (cycle stealing), pois o módulo de DMA efetivamente rouba um ciclo do barramento. Entrada/Saída • Acesso direto à memória Emite comando de leitura ao módulo de E/S CPU -> DMA Faz algo mais Lê registrador estado do Módulo DMA DMA -> CPU Interrupção Próxima Instrução Homework • Ler capítulo 7 do Stallings • Ler capítulo 2 (2.3 e 2.4) do Tanenbaum Referências • Tanenbaum, A. S.; Austin, T. Organização Estruturada de Computadores. 6ª Edição, Editora Pearson, 2013. • Stallings, W. Arquitetura e Organização de Computadores. 8ª Edição, Editora Pearson, 2010.
Compartilhar