Entradas/Saídas (I/O) Dispositivos de entrada/saída (periféricos) Barramento (Bus) Endereçamento de dispositivos entrada/saída

Documentos relacionados
Arquitectura de Computadores (ACom)

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Organização de Computadores

Arquitetura de Microprocessadores

BARRAMENTOS. Adão de Melo Neto

Arquitetura de Microprocessadores

MICROPROCESSADORES. Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico

Fundamentos de Sistemas Operacionais

Introdução a Tecnologia da Informação

Arquitetura de Microprocessadores

Aula 09. Módulos de Entrada e Saída

Entrada e Saída e Dispositivos

Arquitectura de Computadores

Organização de Computadores

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Organização e Arquitetura de Computadores I

SSC0611 Arquitetura de Computadores

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Barramento. Entrada. Saída

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Qual o primeiro nome do computador à base de transístores?

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Sistemas Operativos I/O. Rui Maranhão

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

Arquitectura de Computadores

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

Gerência de Entrada e Saída

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

7º ano Ano letivo 2015/2016. Artur Ramísio

BARRAMENTOS. Adão de Melo Neto

Barramentos. Alberto Felipe Friderichs Barros

Barramentos. Alguns sistemas reutilizam linhas de barramento para múltiplas funções; Dados Endereços Controle

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída


Dispositivos de Entrada e Saída

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA E BARRAMENTOS DE SISTEMA. Prof. Dr. Daniel Caetano

PLACA MÃE. Hardware de Computadores

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA E BARRAMENTOS DE SISTEMA. Prof. Dr. Daniel Caetano

Barramento. Prof. Leonardo Barreto Campos 1

Arquitetura de Computadores. Aula 6

Dispositivos de Entrada e Saída

Lic. Engenharia de Sistemas e Informática

Arquitetura de Um Computador

BARRAMENTOS. Adão de Melo Neto

4.3 - DMA & Chipset. CEFET-RS Curso de Eletrônica. Profs. Roberta Nobre & Sandro Silva. e

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 19

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Organização de Computadores I

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Barramento

Escola Secundária de Emídio Navarro

Sistemas de Entrada e Saída

Estrutura Básica de um Computador

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Organização de Computadores Sistema de Interconexão. Professor: Francisco Ary

BARRAMENTO. Caminho de Dados

Entrada e Saída (E/S)

Arquitetura de Computadores Unidade 2 Organização Funcional dos Sistemas de Computação tópico 2.3 Subsistemas de E/S

Organização de Computadores II

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

Instalação e Manutenção de Computadores Sandra Silva

Arquitetura de Microprocessadores

Escola Secundária de Emídio Navarro

Infra-Estrutura de Software

BARRAMENTO DO SISTEMA. Adão de Melo Neto

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres

Capítulo 7 - Interfaces de Entrada e Saída. Conceito

Programador/a de Informática

Tecnologias da Informação e da Comunicação

Trabalho Prático Nº3 Porta Paralela

Organização e Arquitetura de Computadores I

Escola Secundária de Emídio Navarro

Arquitetura de Computadores

Problemas com Entrada e Saída

Escola Secundária de Emídio Navarro

Barramentos internos/externos

Componentes constituintes de uma motherboard

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Dispositivos de Entrada e Saída

FUNDAMENTOS DA PROGRAMAÇÃO DE COMPUTADORES O SISTEMA DE COMPUTAÇÃO

Chips Processadores (2) Nível da Lógica Digital (Aula 9) Barramentos. Chips Processadores (3)

Nível da Lógica Digital. Barramentos. (Aula 9) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2

Organização de um computador. O que é um computador Organização de um computador Arquitectura de von Neumann

Organização de Computadores Processadores, Placa Mãe e Memória RAM. Professor: Francisco Ary Alves de Souza

PLACA MÃE COMPONENTES BÁSICOS BIOS

ENTRADA E SAÍDA (I/O)

Sistemas de Entrada e Saídas

2. A influência do tamanho da palavra

HARDWARE IMC Prof. Amaral PLACA MÃE BARRAMENTOS DE EXPANSÃO

Arquitetura e Organização de Computadores I

Aula 10 Microcontrolador Intel 8051 Parte 1

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Arquitetura de computadores

Trabalho Pesquisa I Arquitectura do PC Perspectiva CHIPSET

Transcrição:

Entradas/Saídas (I/O) Dispositivos de entrada/saída (periféricos) Barramento (Bus) Endereçamento de dispositivos entrada/saída

Dispositivos de entrada/saída Componentes da arquitectura de Von Neumann Grande variedade de tipos: Teclados Ratos Monitores Discos Impressoras... Arquitectura de Computadores (2008/2009): Entradas/Saídas 605

Exemplo: Teclado orientado ao byte De cada vez, o teclado, disponibiliza um byte com o carácter premido Podemos obter cada um desses bytes individualmente Podemos "ver" o teclado como um periférico de leitura que providencia uma sequência (stream) de bytes Arquitectura de Computadores (2008/2009): Entradas/Saídas 606

Exemplo: Discos orientados ao bloco A unidade de transferência é o sector (2KB, 4KB, etc.) Arquitectura de Computadores (2008/2009): Entradas/Saídas 607

Bus (barramento) Um Bus é um mecanismo de comunicação digital que permite a duas ou mais unidades funcionais transferir dados e sinais de controle Um computador pode conter vários buses que estão optimizados para um determinado objectivo Bus de sistema (FSB Front Side Bus): liga o CPU aos restantes componentes Na realidade algumas arquitecturas têm um segundo bus que liga o CPU a memórias cache, melhorando a performance Bus de memória: liga o FSB ao subsistema de memória Bus de entrada/saída (I/O bus) interliga um conjunto de dispositivos de entrada/saída Arquitectura de Computadores (2008/2009): Entradas/Saídas 608

Exemplos de bus ponto a ponto Ligação via bus Exemplos de bus multiponto Arquitectura de Computadores (2008/2009): Entradas/Saídas 609

Requisitos de um bus Cada bus tem de suportar a taxa de transferência dos compontes que interliga Consideremos uma motherboard com relógio de 200MHz O CPU parte esse relógio para definir o seu relógio interno. Se partir em 10 vezes terá um relógio de 2GHz Uma motherboard actual permite 4 transferências de informação de/para CPU por ciclo de relógio O FSB terá um relógio de 800MHZ (4x200MHz) Componentes com maiores requisitos de velocidade Memória e placa gráfica Ficam ligados na Northbridge Os restantes ficam ligados à Southbridge Arquitectura de Computadores (2008/2009): Entradas/Saídas 610

Organização dos buses CPU Front Side Bus Placa gráfica AGP ou PCI express Northbridge Bus memória Memória Bus interno Ligações PCI: placas onboard slots de expansão Southbridge Ligação ethernet Ligação USB Ligação Firewire Ligação aos discos Arquitectura de Computadores (2008/2009): Entradas/Saídas Arquitectura de Computadores (2008/2009): Entradas/Saídas 611

Transferência em série vs. paralelo Interface paralelo Num dado instante de tempo, transferem-se vários bits em simultâneo; Largura da interface é o nº de bits transferidos em paralelo (8 bits, 16,...) Por exemplo, pode ser composta por vários fios para transferir os dados, em que cada fio transporta um bit Arquitectura de Computadores (2008/2009): Entradas/Saídas 612

Transferência em série vs. paralelo Interface série 1 bit enviado de cada vez (para enviar um byte tem de ser enviada uma série de bits) Só um fio para dados Mais lento que a interface paralela mas usa menos fios e os controladores são mais simples Arquitectura de Computadores (2008/2009): Entradas/Saídas 613

Sentido das transferências De um modo geral as transferências são bidireccionais. Por exemplo, num disco pode-se ler e escrever. A bidireccionalidade pode ser conseguida de duas formas: Interacção full-duplex: são permitidas transferências nos dois sentidos em simultâneo; conseguido através da duplicação das ligações Interacção half-duplex: em cada momento pode-se transferir apenas num sentido; as entidades nas extremidades têm de negociar a inversão do sentido Arquitectura de Computadores (2008/2009): Entradas/Saídas 614

Sincronização entre os intervenientes Um bus pode ser síncrono ou assíncrono consoante exista, ou não, um relógio único para os intervenientes Os buses CPU-periférico não podem ser síncronos Não há a garantia que o periférico esteja pronto para processar o pedido É preciso acomodar diferentes ritmos de transmissão Duas formas possíveis O sinal é codificado de forma a que se conseguem identificar as fronteiras entre bits Há linhas de controlo extras que transportam um sinal de relógio ou marcam a existência de novos dados Arquitectura de Computadores (2008/2009): Entradas/Saídas 615

Latência e débito de uma interface Latência (latency): é o tempo que demora a transferir uma dada unidade de informação (neste cado um só bit) Tempo entre a emissão de 1 bit e a sua recepção medida em unidades de tempo (por exemplo ns) Débito (throughput): quantidade de informação (neste caso bits) que se conseguem transmitir por unidade de tempo Medido por exemplo em Mbit/s (Mbps) ou Mbytes/s (MBps) Arquitectura de Computadores (2008/2009): Entradas/Saídas 616

Multiplexagem Para aumentar o débito dever-se-iam usar interfaces paralelas com um grande número de linhas e fullduplex Há muitas considerações contra esta solução: o número de contactos nos circuitos integrados, o custo das ligações e dos controladores, etc. Uma solução é a multiplexagem: permite transferir uma quantidade arbitrária de dados sobre uma ligação com um número limitado de linhas. Os dados são divididos em blocos que são transmitidos de forma independente: 1 sector de 512 bytes pode ser transferido byte a byte Arquitectura de Computadores (2008/2009): Entradas/Saídas 617

Um bus pode ser Proprietário Tipos de bus Coberto por uma patente e não acessível a outros fabricantes Normalizado Obedece a uma especificação publicada; Permite a inter-operação de equipamentos de diferentes fabricantes, ou seja, permite que no bus existam dispositivos de diferentes fabricantes A norma define: As especificações eléctricas exactas As temporizações dos sinais A forma como os dados são codificados Arquitectura de Computadores (2008/2009): Entradas/Saídas 618

Suporte físico do bus Conjunto de ligações, usualmente sob forma de um circuito impresso Fichas (sockets) permitem inserir e remover dispositivos facilmente Arquitectura de Computadores (2008/2009): Entradas/Saídas 619

Interface com o bus As normas usadas nos buses são relativamente complicadas e exigem bastante lógica para as suportar A norma inclui também especificações mecânicas que permitem ligar facilmente circuitos impressos ao socket do bus (fichas/contactos) Arquitectura de Computadores (2008/2009): Entradas/Saídas 620

Partilha do bus Buses são partilhados por múltiplas entidades CPUs e periféricos, múltiplos CPUs,... A norma do bus tem de incluir um protocolo de acesso: Determina qual a entidade que pode usar o Bus num dado momento Todos os dispositivos ligados ao Bus têm de obedecer a este protocolo Arquitectura de Computadores (2008/2009): Entradas/Saídas 621

Características do bus Transferência de dados em paralelo Pode transferir múltiplos bits em simultâneo Largura típica: 32 ou 64 bits O bus é normalmente passivo Não contém muita lógica própria; pode ser visto como um mero conjunto de fios (linhas) São os dispositivos a ele ligados que suportam a comunicação Pode conter um árbitro: suporta a partilha, decidindo quem é tem acesso Arquitectura de Computadores (2008/2009): Entradas/Saídas 622

Entradas/saídas: ponto de vista do CPU O CPU não acede directamente aos periféricos Usa uma interface programável para passar pedidos ao controlador de interface e para receber as repostas a esses pedidos O controlador de interface converte esses pedidos em sinais eléctricos Esses sinais são interpretados pelo controlador do lado do periférico Este é que interage directamente com o dispositivo físico. Arquitectura de Computadores (2008/2009): Entradas/Saídas 623

Transferências nas Entradas/Saídas CPU Ligação externa (BUS de sistema) controlador do periférico periférico out in Várias transferências de dados envolvidas Os programas executam no CPU (só podem controlar directamente I/O com o bus de sistema) outro periférico Arquitectura de Computadores (2008/2009): Entradas/Saídas 624

Organização do Bus Bus está separado funcionalmente em 3 partes Controlo Especificação do endereço (origem/destino dos dados) Dados a transferir Linhas de controlo Linhas de endereço Linhas de dados Arquitectura de Computadores (2008/2009): Entradas/Saídas 625

Acesso ao Bus O Bus só suporta duas operações Leitura Escrita Todas as operações de I/O são efectuadas efectuando leituras e escritas no Bus Estas traduzem-se na transferência dos dados de/para as interfaces dos periféricos, como se fossem leituras e escritas em registos internos ao controlador do periférico Arquitectura de Computadores (2008/2009): Entradas/Saídas 626

Acesso em leitura 1. Usa as linhas de controlo para obter acesso ao Bus 2. Coloca um endereço nas linhas de endereço 3. Usa as linhas de controlo para requerer uma operação de leitura 4. Testa as linhas de controlo para verificar se a transferência já se concluiu 5. Lê um valor das linhas de dados 6. Posiciona as linhas de controlo para deixar outra entidade fazer acesso ao Bus Arquitectura de Computadores (2008/2009): Entradas/Saídas 627

Acesso em escrita 1. Usa as linhas de controlo para obter acesso ao Bus 2. Coloca um endereço nas linhas de endereço 3. Coloca um valor nas linhas de dados 4. Usa as linhas de controlo para indicar uma operação de escrita 5. Testa as linhas de controlo para verificar se a transferência já se concluiu 6. Posiciona as linhas de controlo para deixar outra entidade fazer acesso ao Bus Arquitectura de Computadores (2008/2009): Entradas/Saídas 628

Controlador de dispositivo periférico Dispositivo Interacção interna ao periférico CPU Controlador (interface do dispositivo) Endereços Dados Controlo Endereços Dados Controlo Bus de sistema Arquitectura de Computadores (2008/2009): Entradas/Saídas 629

Bus: ponto de vista do CPU A interface do bus fornece uma interface de programação, que tem apenas duas operações: Ler e escrever Quando há uma referência à memória ou a periféricos o CPU deixa tudo a cargo da interface do bus: Leitura o CPU pede à interface para efectuar a leitura Escrita idem Para o programador, a interface de bus é invisível: ela define um espaço de endereçamento, em que cada periférico possui um controlador com uma faixa de endereços distinta Arquitectura de Computadores (2008/2009): Entradas/Saídas 630

Endereçamento no bus A interface de bus de cada controlador ou da memória implementa o protocolo do Bus e trata de todas as transferências Usa as linhas de controlo para acesso ao bus Lê as linhas de endereços e lê/altera as linhas de dados Cada entidade no Bus tem um conjunto de endereços atribuídos Embora "veja" todos os pedidos que passam no Bus, a interface só atende os que contêm os endereços para os quais a interface foi configurada Arquitectura de Computadores (2008/2009): Entradas/Saídas 631

Ponto de vista da interface do dispositivo Seja R o conjunto de endereços associado à interface while (1) { monitorar o bus até aparecer um pedido if (pedido refere um endereço pertencente a R) aceitar e processar o pedido else ignorar o pedido } Podem ocorrer dois tipos de erros (bus errors): Conflito de endereços: mais que um responde Endereços não atribuído: nenhum responde (timeout) Arquitectura de Computadores (2008/2009): Entradas/Saídas 632

Espaço de endereços único: memory-mapped I/O Uma faixa de endereços corresponde à memória Cada controlador é configurado para responder a uma faixa de endereços fora do espaço da memória e a que nenhum outro controlador responde As faixas de endereços da memória e dos controladores são disjuntos Entidade Memória Periférico 1 Periférico 2 Memória Faixa de endereços 0x000000-0x0FFFFF 0x100000-0x10000B 0x10000C-0x100017 0x100000 Periférico 2 Periférico 1 0x000000 Arquitectura de Computadores (2008/2009): Entradas/Saídas 633

Espaço único Espaço de endereços único Não há instruções máquina especiais para acesso aos controladores. São usadas LOAD/STORE (MOV) para endereços que pertencem à faixa de endereços de entrada/saída Exemplo: Envio de 1 byte OUT para o periférico 2: mov byte [0x10000C], 5 Arquitectura de Computadores (2008/2009): Entradas/Saídas 634

Espaço de endereços separado Dois espaços de endereçamento separados Um para a memória Um para os controladores dos dispositivos, os portos ou portas (ports) Cada controlador é configurado para responder a uma faixa de endereços diferente A faixa de endereços da memória é sempre disjunta da dos periféricos O CPU necessita de instruções diferentes para separar os acessos a memória dos acessos aos periféricos Entidade Memória Periférico 1 Periférico 2 Faixa de endereços 0x000000-0xFFFFFF 0x000000-0x00000B 0x00000C-0x000017 Memória Periférico 1 0x000000 Periférico 2 Arquitectura de Computadores (2008/2009): Entradas/Saídas 635

Espaço de endereços separado Espaço separado Há instruções máquina dedicadas ao acesso do espaço de endereços de entrada/saída (ports) Exemplo da família Intel 80x86/Pentium IN rega, port (leitura para o registo EAX/AX/AL) OUT port, rega (escrita a partir do conteúdo do EAX/ ) Se port > 255 então usa-se um registo: IN rega, DX e OUT DX, rega O mesmo exemplo do acetato anterior: mov al, 1 out 0x0C,al Arquitectura de Computadores (2008/2009): Entradas/Saídas 636

Ler/escrever Entrada/Saída Como é que operações de leitura e escrita manipulam periféricos? O bus apenas fornece um meio de passar bits de uma entidade para outra Os bits que passam no bus podem ser: Dados que estão a ser transferidos Representar operações de controlo sobre o periférico; cada configuração de bits é interpretada pelo controlador do periférico CPU Interface Bus I/O Bits com dados Bits com comandos Controlador periférico Interface Bus I/O Periférico Arquitectura de Computadores (2008/2009): Entradas/Saídas 637

Interface genérica de periférico Cada registo da interface tem um propósito Cada um tem um endereço de I/O atribuído Endereços Dispositivo registo comando descodificação dos endereços Controlo Bus de sistema registo estado registo dados leitura/escrita de dados Dados Contro olador Arquitectura de Computadores (2008/2009): Entradas/Saídas 638

Controlador genérico Em geral, as interfaces têm três tipos de registos (portos ou portas): Porta de dados: para guardar os dados enviados pelo CPU ou recebidos do exterior pelo dispositivo periférico Porta de estado: indica informação sobre o estado corrente do periférico Existência de dados para ler Disponível para receber dados Erros e outras informações Porta de controlo: para receber comandos vindos do CPU (inicializar interface, posicionar a interface em estados para receber ou enviar, e outros comandos que desencadeiam a operação do periférico) Arquitectura de Computadores (2008/2009): Entradas/Saídas 639

Programação dos controladores de I/O Cada controlador oferece uma interface de operação: Uma linguagem específica desse hardware Controladores podem ser mais ou menos autónomos em relação ao CPU Controladores com pouca inteligência precisam de grande interacção com o CPU Controladores com grande inteligência oferecem funcionalidades mais potentes. Exemplo: só necessitam de atenção do CPU no início e fim da transferência Sincronização entre o CPU e os controladores Periféricos são muito mais lentos do que o CPU O CPU tem de interactuar com o periférico para saber se este já está disponível para receber novo comando, ou se já tem o dado pretendido Arquitectura de Computadores (2007/2008): Entradas/Saídas 640

Programação dos controladores de I/O Existem vários métodos para programar um controlador de I/O: Espera activa (programmed I/O ou polled I/O) Por interrupções (interrupt-driven I/O) DMA (Direct Memory Access) Canais (Channel I/O) Arquitectura de Computadores (2007/2008): Entradas/Saídas 641