Escolar Documentos
Profissional Documentos
Cultura Documentos
II.
III. IV. V.
Introduo Processadores I. Ciclo de Instruo II. Pipeline Memrias Barramentos Dispositivos de E/S
Introduo
Fundamentos
Referncias AOC - William Stallings cap 1, 2 e 3 OEC - Tanenbaum - cap 1 e 2 SOM - Tanenbaum - cap 1 e 5 ASO F. M. Machado - cap 1 e 2
Sistema Computacional
Arquitetura e Organizao
Arquitetura: ATRIBUTOS VISVEIS AO PROGRAMADOR: Conjunto de instrues Modos e tcnicas de endereamento Nmero de bits (dados e endereos) Mecanismos de E/S Organizao: UNIDADES FUNCIONAIS E SUAS INTERCONEXES que implementam as especificaes de uma arquitetura Envolvem detalhes de hardware (transparentes ao programador), tais como: barramentos, sinais de controle, interfaces entre o computador e os perifricos, tecnologias de memria, etc.
5 Arquitetura e Organizao de Computadores
IAS (Institute for Advanced Study de Princenton 1952) Computador de programa armazenado (base da maioria das mquinas atuais). Unidades bsicas: memria principal (MP), unidade de lgica e aritmtica (ULA), unidade de controle (UC) e os dispositivos de entrada e sada (E/S).
Componentes de Hardware
10
Executa as instrues contidas na memria. composta de : Unidade de Controle (UC) Unidade Lgica e Aritmtica (ULA) Registradores UNIDADE DE CONTROLE (UC) Busca cada instruo na memria principal, determina seu tipo e a executa. Para realizar estas tarefas so emitidos vrios sinais de controle (ex: leitura, escrita, etc.).
11
12
Realiza as operaes necessrias execuo das instrues : aritmticas (adio, subtrao, etc.) e lgicas (booleanas: e(and), ou(or), negao (not), etc.) REGISTRADORES So memrias internas da CPU que armazenam operandos, resultados temporrios e certas informaes de controle. Um dos registradores mais importante contador de programa (Program Counter - PC), que aponta para a prxima instruo a ser executada
13
Componentes do Hardware
14
Estrutura de IAS
15
MDR/MBR(Memory Data/Buffer Register) Registrador de dados da memria (RDM) MAR (Memory Address Register) Registrador de endereos de memria (REM) IR (Instruction Register ) Registrador de Instrues PC (Program Counter PC) Contador do programa AC (Accumulator) Acumulador
16
Memoria Principal
A Memria o espao de armazenamento temporrio. Instrues e dados so armazenados na memria durante o processamento.
17
Bits e Bytes
Um Bit a menor unidade de informao e corresponde a 0 ou 1. Um Byte composto de 8 Bits. Nos circuitos do computador 0 e 1 correspondem a estados desativados e ativados dos componentes dos computadores. A memria formada por milhares de componentes (capacitores ou transistores) capazes de representar e guardar (ou armazenar) estes estados
18
19
20
Quantificao de Memria
O KibiByte (smbolo KiB, contrao de kilo binary byte) uma unidade medida de armazenamento eletrnico de informao, estabelecida em 2000 pela Comisso Eletrotcnica Internacional (IEC) como: 1 kibibyte = 1.024 bytes Foi criada com o objetivo de substituir o "quilobyte" em cincia da computao, que se refere a 1024 bytes, e que entra em conflito com a definio do prefixo "quilo" do Sistema Internacional de Unidades (SI)
21
IEC x SI
IEC (International Electrotechnical Commission,1906, Genebra, Sua.): organizao internacional de padronizao de tecnologias eltricas, eletrnicas e relacionadas. Alguns dos seus padres so desenvolvidos juntamente com a Organizao Internacional para Padronizao (ISO). SI (Sistema Internacional de Unidades - International System of Units - Systme international d'units): conjunto sistematizado e padronizado de definies para unidades de medida, utilizado em quase todo o mundo moderno, que visa a uniformizar e facilitar as medies e as relaes internacionais da decorrentes. Sua adoo progressiva e cada vez mais abrangente uma contingncia no s tcnico-cientfica, mas de ordem poltica, econmica e social
22 Arquitetura e Organizao de Computadores
Mltiplos do Byte
23
24
Interface homem-mquina (IHM) Permitem introduzir dados (entrada), instrues e comandos no computador e ver/receber os resultados/ respostas (sada). Dispositivos de Entrada: teclado, mouse, scanner, cmera de vdeo, microfone, joystick, etc. Dispositivos de Sada: monitor, impressora, plotter, caixa de som, etc.
25
memria secundria ou n-ria Discos magnticos: Discos Rgidos (HD, Winchester) Disquetes Zip Disk Discos ticos: Compact Disk (CD-ROM, CD-R e CD-RW) Digital Versatile Disk(DVD-ROM, DVD-R e DVD-RW) Fitas Magnticas Memrias Flash
26
Barramentos
Barramento um caminho eltrico comum que liga e permite a comunicao entre dois ou mais dispositivos (processador, memrias, controladores, perifricos, etc). Grupos funcionais: Barramento (linhas) de dados Barramento (linhas) de endereos Barramento (linhas) de controle
27
Barramento de Dados
Transportam dados A largura uma caracterstica determinante do processador: 8085: 8 bits 8088: 8 bits (externo) e 16 bits (interno) 8086/80286: 16 bits (externo e interno) 80386/80486: 32 bits (externo e interno) Pentium: 64 bits (externo) e 32 bits (interno)
28
Barramento de Endereos
Identifica a fonte ou o destino do dado. A largura deste barramento determina a capacidade mxima da memria do sistema 8085 - 16 bits 64 kiB 8086/8 - 20 bits 1 MiB 80286 - 24 bits 16MiB 80386/486/Pentium - 32 bits 4GiB Pentium II/III/IV 36 bits 64 GiB)
29
Barramento de Controle
Informao de controle e temporizao Sinal leitura/escrita (R/W) da memria ou E/S (I/O) Requisio de interrupo (INT) Requisio de uso do barramento ao rbitro (REQ) Sinal de relgio (CLK: clock)
30
Muitos dispositivos em um barramento leva: Demoras na propagao Caminhos de dados longos significam que coordenao do uso do barramento pode afetar desempenho adversamente Se for transferido dados em grupo pode-se aproximar na capacidade do barramento A maioria dos sistemas usam barramentos mltiplos para superar esses problemas
31
Barramento( construo)
Linhas paralelas nos circuitos impressos Cabos fitas Conectores nas placas mes Exemplos: PCI, ISA, AGP, etc. Conjuntos de fios
32
Mltiplos Barramentos
33
Barramentos - Exemplos
34
35
Representao de Dados
36
Software
Programas que permitem o uso efetivo do Computador Tipos: Software bsico Sistema Operacional, Programas de Sistema, etc. Software Aplicativo Aplicaes Sistema Operacional: Conjunto de programas que oferece um ambiente amigvel para o usurio interagir com o computador
37 Arquitetura e Organizao de Computadores
Linguagens de Programao
Envolve um conjunto de instrues , estruturas e formas de programao com o objetivo de desenvolver programas. Linguagens de baixo nvel (mquina, assembly). Linguagens de alto nvel C/C++, Java, Visual Basic, Pascal, Delphi, Lisp, Prolog, Cobol, Fortran ...
38
Tradutores e Interpretadores
Os Programas so traduzidos atravs de outros programas especiais: Tradutor l o programa inteiro e o converte para um cdigo-objeto (Turbo C++, C++ Builder, GNU gcc/g++, Pascal, Delphi, etc.). Interpretador l e executa um linha ou comando de cada vez, no gerando cdigo-objeto (Unix/Linux Shell, Lisp, Prolog, etc.).
39
40
II.
III. IV. V.
Introduo Processadores I. Ciclo de Instruo II. Pipeline Memrias Barramentos Dispositivos de E/S
41
42
Ciclo de Busca
O Contador de Programa (PC) guarda o endereo da prxima instruo a ser buscada O Processador busca a instruo da posio de memria apontada pelo PC Incrementa o PC (exceto se a prxima instruo for de desvio) A instruo carregada no Registrador de Instruo (IR) O Processador interpreta (decodifica) a instruo e executa as aes requeridas
43
Control
Instruction [25 21] PC Read address Instruction [31 0] Instruction memory Instruction [15 11] Instruction [20 16] 0 M u x 1
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
44
Implementao Simples
Inclui as unidades funcionais que necessitamos para as instrues
Instruction address PC Instruction Instruction memory Add Sum
MemWrite
Address
16
a. Instruction memory
5 Register numbers 5 5 Read register 1 Read register 2 Registers Write register Write data
b. Program counter
c. Adder
3 ALU control
Write data
b. Sign
Data
45
Banco de Registradores
Read register number 1 Register 0 Register 1 Register n 1 Register n Read register number 2 M u x Read data 1
Read register number 1 Read register number 2 Write register Write data
M u x
Register file
Read data 1
Read data 2
46
Multiplexador
Seleciona uma das entradas para a sada, baseado numa entrada de controle
S A B
0 1
S 2
A B C D
47
S
A B C D
01 10 10 11
0
1 2 3
mux de 4 entradas
Banco de Registradores
Nota: ainda usamos o clock real para determinar quando escrever
Write 0 1 Register number n-to-1 decoder n 1 n C Register 0 D C Register 1 D
48
ALU de 32 Bits
Bnegate Operation
Seleo
a0 b0 CarryIn ALU0 Less CarryOut Result0
a
32
ALU
result
32
a1 b1 0 CarryIn ALU1 Less CarryOut Result1 Zero
b
32
Linhas de controle:
000 001 010 110 111 = = = = = and or add subtract slt
a2 b2 0
Result2
a31 b31 0
49
ULA F0 F1 Sada
0
0 1 1
0
1 0 1
A and B
A Or B B A mais B
50
Memrias de Instrues
instruo de 32 bits
51
Memrias de Dados
Para leitura: deve fornecer o endereo (Address) e acionar o controle de leitura MemRead=1) Para escrita deve fornecer o endereo (Address), o dado a ser escrito no (Writedata) e acionar o controle de escrita (MemWrite=1)
52
Contador de Programa
Quando sequencial o endereo da instruo corrente adicionado de 4 (memria de instrues constituda de bytes)
53
Implementao em 1 ciclo
Calcular o tempo de ciclo assumindo atrasos desprezveis exceto: Memria (2ns), ALU e somadores (2ns), acesso aos registradores (1ns)
Data
54
Tcnica Multiciclo
Estaremos usando as mesmas unidades funcionais ALU usada para computar o endereo e para incrementar PC. A memria usada para instrues e dados Os sinais de controle no so determinados somente pelas instrues Quebrar as instrues em passos, cada passo leva um ciclo Balancear a quantidade de trabalhos a realizar Restringir cada ciclo para usar somente uma unidade funcional No fim de um ciclo Armazenar valores para serem usados nos ciclos posteriores Introduzir registradores internos adicionais
55 Arquitetura e Organizao de Computadores
ii.
iii. iv. v.
Busca de prxima instruo: IR <- memria Atualiza o contador de programa : PC <- PC + 4. Decodifica (Determina o tipo da instruo). Se a instruo usa dados da memria, determina localizao. Busca dados, se necessrio, para registradores internos da CPU. Executa a instruo. Acesso memria Gravao do resultado
56
II.
III. IV. V.
Introduo Processadores I. Ciclo de Instruo II. Pipeline Memrias Barramentos Dispositivos de E/S
57
Paralelismo
Paralelismo no nvel de instruo Pipelines de Instrues Arquiteturas superescalares Paralelismo no nvel de processador Processadores vetoriais e matriciais Multiprocessadores Multicomputadores
58
Paralelismo
O que pipeline? uma srie de estgios (operando possivelmente em paralelo) onde uma parte do trabalho (instruo) feito em cada estgio. O trabalho (instruo) no est concludo at que tenha passado por todos os estgios
59
60
Na fase de busca a MP acessada Na fase de execuo a MP usualmente no acessada. A prxima instruo pode ser buscada durante a execuo da instruo corrente (busca antecipada instruction prefetch).
61
Arquitetura Superescalar
Instrues comuns (aritmticas, load/store, desvio condicional) podem ser iniciadas e executadas independemente Utilizar mltiplas unidades funcionais (busca, decodificao, execuo, etc.) para se obter um melhor desempenho global
62
Pipeline e Superescalar
63
Arquiteturas Superescalares
64
Arquiteturas Superescalares
65
66
67
Processadores vetoriais e matriciais Multiprocessadores: todos os processadores compartilham uma mesma memria fsica. Multicomputadores: cada processador tem sua prpria memria, acessvel somente pelo processador proprietrio
68
Processadores Matriciais
69
70
Multiprocessadores
71
Multiprocessadores
So arquiteturas so caracterizadas por vrios processadores compartilhando uma nica memria, ou um conjunto de memrias Todos os processadores compartilham uma mesma memria fsica, caracterizando uma memria global. fortemente acoplada porque os processadores e memria esto fortemente interligados atravs de seu sistema local de interconexo.
72
Multiprocessadores
73
74
Multicomputadores
75
Multiprocessadores
So ambientes fracamente acoplados. Cada processador tem sua prpria memria local, acessvel somente pelo processador proprietrio. Apresentam configuraes compostas de centenas (ou at milhares) de computadores.
76
Multicomputadores
77
II.
III. IV. V.
Introduo Processadores I. Ciclo de Instruo II. Pipeline Memrias Barramentos Dispositivos de E/S
78
Memrias
Hierarquia de Memrias
79
Memrias
Hierarquia de Memrias
80
Memrias
Hierarquia de Memrias medida que descemos na pirmide: o custo por bit cai a capacidade umenta o tempo de acesso aumenta a frequncia de acesso cai
81
Memrias
Tempo de acesso memria o tempo decorrido entre a apresentao do endereo (no barramento de endereos) e a obteno do dado vlido (no barramento de dados). Quanto menor for tempo de acesso, a memria ser mais rpida (maior velocidade).
82
Memrias
Picos de tenso podem acarretar alteraes na memria Cdigos de erro: bits adicionais para verificar a correo e, possivelmente, corrigir os dados
Ex: 10001001 e 10110001: distncia 3 Trs erros de bit transformariam uma palavra na outra.
83
Memrias
Bit de paridade: bit adicionado de modo que a quantidade de bits 1 seja sempre par (ou sempre mpar) Ex: palavra 1100 e regies A-B-C
84
Memrias
Cdigos de Hamming
Acrescentar r bits de paridade a m bits de dados Bits numerados a partir de 1, pela esquerda Todos os bits em posio 2i so de paridade Ex: posies 1, 2, 4, 8, 16, 32... Cada bit de paridade verifica um conjunto de bits de dados
85
Memrias
Bit b verificado pelos bits que formam seu valor em binrio Ex: bit 5 1 + 4; bit 19 1 + 2 + 16; bit 10 2 + 8
Arquitetura e Organizao de Computadores
86
Memrias
87
Memrias
pos bit
Bit 1: verifica 1,3,5,7,9,11,13,15,17,19,21 erro (cinco bits 1) Bit 2: verifica 2,3,6,7,10,11,14,15,18,19 ok (seis bits 1) Bit 4: verifica 4,5,6,7,12,13,14,15,20,14 erro (cinco bits 1) Bit 8: verifica 8,9,10,11,12,13,15,15 ok (dois bits 1) Bit 16: verifica 16,17,18,19,20,21 ok (quatro bits 1)
Arquitetura e Organizao de Computadores
88
Memrias
Onde est o erro? Soma das posies de paridade: 1 + 4 = 5 Pode-se corrigir facilmente Funciona apenas para UM erro
89
Memrias
Semicondutores Grupo de chips montado em uma placa de circuito impresso SIMM Single Inline Memory Module DIMM Dual Inline Memory Module Ex: pente de 256MB
90
Memrias
Memria voltil: chips de circuitos de acesso aleatrio (RAM) Static RAM SRAM Flip-flop bsico Estado conservado enquanto houver energia Muito rpidas Dynamic RAM DRAM Arranjo de capacitores e transistores Capacitores so carregados representao de 0 ou 1 Recarregar memria desempenho Menos transistores maior densidade (e capacidade)
91
Memrias
DDR Double Data Rate: sada na borda ascendente e na borda descendente do relgio
Ex:
DDR 8 bits, 200Mhz 8 x 200 milhes x 2 3,2 Gbits/seg 400 MB/seg de sada
Arquitetura e Organizao de Computadores
92
Aplicaes em que o fornecimento de energia no contnuo brinquedos, eletrodomsticos, etc ROM (Read Only Memory): nem os dados nem o programa so alterados Baratos para a produo de muitos chips: mscara de bits PROM (Programmable ROM): programada em campo, mas s uma vez Compra de chips virgens e programao personalizada
Arquitetura e Organizao de Computadores
93
Memrias
Dispositivos para programao Mudanas durante o projeto Programvel no local Cerca de 1/64 a 1/32 da capacidade da EPROM At 10x mais lentas e em geral mais caras que SDRAMs Memria flash Futuro (presente?) como substituto de HD's
Arquitetura e Organizao de Computadores
94
Memrias
Comparao de Memrias
Tipo SRAM Categoria R/W Apagamento Eltrico Voltil Sim Utilizao Cache L2
DRAM
SDRAM
R/W
R/W
Eltrico
Eltrico
Sim
Sim
MP (antiga)
MP
ROM
PROM EPROM
R
R R>W
No
No Luz UV
No
No No
EEPROM
Flash
R>W
R/W
Eltrico
Eltrico
No
No
Prototipagem
Pen drives
95
Memrias
Memria Cache
96
Memrias
Memria Cache Quantidade pequena de memria rpida Situa-se entre memria principal e a CPU dividida em linhas (bloco de palavras)
97
Memrias
98
Memrias
Operao da Cache viso geral i. ii. iii. iv. CPU requisita contedo do local de memria. Verifica se os dados esto em cache. Se estiverem, apanha da cache (rpido). Se no, l bloco solicitado da memria principal para a cache. v. Depois, entrega da cache CPU. vi. Cache inclui tags para identificar qual bloco da memria principal est em cada slot da cache.
99
Memrias
Nveis de Cache (exemplo) L1 (nvel 1): dentro do processador L2 (nvel 2): no encapsulamento do processador L3 (nvel 3): na placa-me Tipos de Cache Unificada (U): para dados e instrues (juntos) No-unificada (NU) ou dividida : dados e instrues so colocadas em caches separadas
100
Memrias
Linhas de Cache So blocos de clulas de cache que so transferidas da MP no caso de falha no acesso cache de tamanho de 4 a 128 bytes (32 a 1024 bits). Exemplos: 80386 (1985) : cache na placa me (fora do processador) 80486 (1989) : L1 8K unificada linha de 128 bits Pentium: L1 NU (8k dados/8k instr) linha 256 bits Pentium II/III (1997/1999): L1 NU (16k dados/16k instr) e L2 512k unificada linhas de 256 bits
101 Arquitetura e Organizao de Computadores
Memrias
tm =
tm: c m h
c + (1-h)*m,
tempo mdio de acesso mdio : tempo de acesso a cache : tempo de acesso a memria : taxa de acerto ("hit ratio")
102
Memrias
103
Memrias
Custo e Velociadade
Custo: Mais cache caro. Velocidade: Mais cache mais rpido (at certo ponto). Verificar dados na cache leva tempo.
104
Memrias
Elementos de projeto de memria Cache Tamanho da memria Cache Funo de Mapeamento Algoritmo de Substituio Poltica de Escrita Tamanho da Linha Nmero de memrias cache
105
Memrias
106
Memrias
107
Memrias
Cache de 64 kBytes com linha da cache de 4 bytes, ou seja, a cache composta 16k (214) linhas de 4 bytes. MP (memria principal) de 16 MBytes com 24 bits de endereo (224=16M) composta de 4M 222 blocos (linhas).
108
Memrias
Estrutura dos endereos no mapeamento direto Endereo de 24 bits 2 bits identificador da palavra/byte (w) (bloco de 4 bytes) Identificador do bloco (22 bits) (s) Rotulo 8 bits (22-14) (s-r) Linha de 14 bits (r) No existe dois blocos na mesma linha com o rotulo igual Verifica o contedo da cache encontrando a linha e verificando o rtulo
109
Memrias
110
Memrias
Prs e contras do mapeamento direto Simples. Barato. Local fixo para determinado bloco. Se um programa acessa 2 blocos que mapeiam para a mesma linha repetidamente, perdas de cache so muito altas.
111
Memrias
Mapeamento Associativo Um bloco de memria principal pode ser carregado em qualquer linha de cache. Endereo de memria interpretado como tag e palavra. Tag identifica exclusivamente o bloco de memria. Tag de cada linha examinada em busca de combinao. Pesquisa da cache dispendiosa.
112
Memrias
113
Memrias
Estrutura dos endereos no mapeamento associativo Rtulo de 22 bits armazenados com cada bloco de dados de 32 bits Compare o campo TAG com o campo TAG da cache para verificar o acerto Os 2 bits menos significativos do endereo identificam qual palavra de 16 bits requerida do bloco de dados de 32 bits
114
Memrias
000000 / 4 = 000000 16339C / 4 = 058CE7 FFFFF4 / 4 = 3FFFFD FFFFF8 / 4 = 3FFFFE FFFFFC / 4 = 3FFFFF
*Valores em hexadecimal
115
Memrias
mapeamento associativo por conjunto Combina as vantagens do mapeamento direto e do mapeamento associativo. A cache dividida em v conjuntos, cada com k linhas m=vxk i = j modulo v onde i nmero de conjuntos na memria cache j nmero do bloco da memria principal m = nmero de linhas da memria cache
116
Memrias
117
Memrias
Use o campo SET para determinar o conjunto da cach Compare o campo TAG para ver se h um acerto
118
Memrias
0000 / 4 = 0000 0004 / 4 = 0001 339C / 4 = 0CE7 7FFC / 4 = 1FFF 7FF8 / 4 = 1FFE *Valores em hexadecimal
119
Memrias
Algoritmos de substituio Mapeamento direto Sem escolha. Cada bloco mapeado apenas a uma linha. Substitui essa linha.
120
Memrias
Algoritmos de substituio Associativa e associativa em Conjunto
Algoritmo implementado no hardware (velocidade). Least Recently Used (LRU). P.e., na associativa em conjunto com 2 linhas. Qual dos 2 blocos LRU? First In First Out (FIFO). Substitui bloco que est na cache h mais tempo. Least Frequently Used (LFU). Substitui bloco que teve menos acertos. Aleatrio.
121 Arquitetura e Organizao de Computadores
Memrias
122
Memrias
Memrias
Tamanho de Linha
Recupere no apenas a palavra desejada, mas tambm uma srie de palavras adjacentes. Tamanho de bloco aumentado aumentar razo de acerto a princpio. O princpio da localidade. Razo de acerto diminuir medida que o bloco se tornar ainda maior. Probabilidade de uso de informaes recm- buscadas torna-se menor que probabilidade de reutilizar informaes substitudas.
124
Memrias
Caches multinveis Alta densidade lgica permite caches no chip. Mais rpido que acesso ao barramento. Libera barramento para outras transferncias. Comum usar cache dentro e fora do chip. L1 no chip, L2 fora do chip na RAM esttica. Acesso L2 muito mais rpido que DRAM ou ROM. L2 normalmente usa caminho de dados separado. L2 pode agora estar no chip. Resultando em cache L3. Acesso ao barramento agora no chip
125
Memrias
Uma cache para dados e instrues ou duas, uma para dados e uma para instrues. Vantagens da cache unificada: Maior taxa de acerto. Equilibra carga entre buscas de instruo e dados. Apenas uma cache para projetar e implementar. Vantagens da cache separada: Elimina disputa pela cache entre a unidade de busca/decodificao de instruo e a unidade de execuo. Importante no pipeline de instrues.
126 Arquitetura e Organizao de Computadores
Memrias
Uma cache para dados e instrues ou duas, uma para dados e uma para instrues. Vantagens da cache unificada: Maior taxa de acerto. Equilibra carga entre buscas de instruo e dados. Apenas uma cache para projetar e implementar. Vantagens da cache separada: Elimina disputa pela cache entre a unidade de busca/decodificao de instruo e a unidade de execuo. Importante no pipeline de instrues.
127 Arquitetura e Organizao de Computadores
II.
III. IV. V.
Introduo Processadores I. Ciclo de Instruo II. Pipeline Memrias Barramentos Dispositivos de E/S
128
Dispositivos de E/S
129
Dispositivos de E/S
130
Dispositivos de E/S
131
Dispositivos de E/S
Dispositivos Perifricos
Qualquer dispositivo de hardware no requerido por um computador para executar instrues de software. Os dispositivos internos so referidos como dispositivos perifricos integrados. Placas de interface de rede, modems, placas de som. Unidades de disco rgido, CD e DVD. Dispositivos de caracteres: transferem dados: um caractere por vez. Teclados e mouses Podem ser conectados a um computador por meio de portas e outros barramentos. Portas seriais, portas paralelas, USB, portas IEEE 1394 e SCSI
132 Arquitetura e Organizao de Computadores
Dispositivos de E/S
Controladores de Dispositivos
Componentes de dispositivos de E/S mecnico eletrnico O componente eletrnico o controlador do dispositivo pode ser capaz de tratar mltiplos dispositivos Tarefas do controlador converter fluxo serial de bits em bloco de bytes executar toda correo de erro necessria tornar o bloco disponvel para ser copiado para a memria principal
133
Dispositivos de E/S
134
Dispositivos de E/S
135
Dispositivos de E/S
136
Dispositivos de E/S
E/S Mapeada na memria a) Arquitetura com barramento nico b) Arquitetura com barramento dual
137
Dispositivos de E/S
MTODOS DE E/S CONTROLADA PROGRAMADA (POLLING) POR INTERRUPO POR DMA (ACESSO DIRETO MEMRIA)
138
Dispositivos de E/S
E/S PROGRAMADA (polling) ESPERA: IN AL, REG_ESTADO_CNTRL # LER ESTADO CMP AL, 0 # 0 (LIVRE) e 1 (OCUPADO) JNE ESPERA # DESVIA SE ESTIVER OCUPADO IN AL, REG_DADO_CNTRL # LER DADO # COMENTARIO: # PROBLEMA: ESPERA OCUPADA OU ATIVA (BUSY WAITING)
139
Dispositivos de E/S
140
Dispositivos de E/S
Interrupes e excesses So desvios do fluxo de execuo de um programa So diferentes de branches e jumps (que tambm mudam o fluxo normal de execuo de instrues). As interrupes, podem ser de hardware e de software.
141
Dispositivos de E/S
Interrupes e excesses
142
Dispositivos de E/S
Excesses Desvios forados do fluxo de execuo de um programa causado por um evento interno sncrono, ou seja, tem origem dentro do processador e ocorrem devido a prpria execuo das instrues do programa.
So geralmente geradas em resposta a erros ou condies de exceo. Exemplos: diviso por zero, overflow aritmtico, falta de pgina, erro de segmentao, instruo invlida, etc.
143
Dispositivos de E/S
Interrupo de Hardware Desvio forado do fluxo de execuo de um programa causado por um evento assncrono externo (relgio, teclado, disco, impressora, etc), ou seja, ocasionada por um evento inesperado que tem origem fora do processador. Exemplos: digitar de um caractere no teclado, movimentar o mouse, chegar uma mensagem pela rede, etc. Quando ocorre um evento, a maioria dos dispositivos de E/S envia ao processador um sinal denominado interrupo. O sistema operacional pode responder a uma interrupo notificando os programas que esto espera desses eventos
144
Dispositivos de E/S
145
Dispositivos de E/S
Pinagem lgica do Pentium 4 Sinais individuais: letras maisculas Grupos de sinais relacionados ou descries de sinais: letras maisculas e minsculas
146
Dispositivos de E/S
Controlador de interrupo
147
Dispositivos de E/S
Interrupes de Hardware
148
Dispositivos de E/S
Ciclo de Interrupo
Adicionando ao ciclo de instruo Processador verifica se existe interrupo Indicado pelo sinal de interrupo Se no existe interrupo, buscar a prxima instruo Caso existam interrupes pendentes: Suspenda a execuo do programa corrente Salvar o contexto Colocar no PC o endereo de incio da rotina de tratamento da interrupo (RTI). Processar a interrupo Restaurar o contexto e continuar o programa interrompido
149 Arquitetura e Organizao de Computadores
Dispositivos de E/S
150
Tratadores de Interrupo Passos que devem ser executados em software depois da interrupo ter sido concluda 2. salva registradores que ainda no foram salvos pelo hardware de interrupo 3. estabelece contexto para rotina de tratamento de interrupo 4. estabelece uma pilha para a rotina de tratamento de interrupo 5. sinaliza o controlador de interrupo, reabilita as interrupes 6. copia os registradores de onde eles foram salvos 7. executa rotina de tratamento de interrupo 8. escolhe o prximo processo a executar 9. estabelece o contexto para o prximo processo a executar 10. carrega os registradores do novo processo 11. comea a executar o novo processo
Arquitetura e Organizao de Computadores
Dispositivos de E/S
Vetores de interrupo
O Vetor de interrupo um mecanismo usado para indicar o dispositivo est solicitando operao de E/S. Eles servem para indicar uma entrada na tabela de vetores de interrupo. A Tabela de vetores de interrupo armazena os endereos das rotinas de tratamento de interrupo (RTI) de cada dispositivo de E/S, de excees e das interrupes de software.
151
Dispositivos de E/S
O processador ignorar as interrupes enquanto processa uma interrupo As interrupes permanecero pendentes e sero verificadas aps a primeira interrupo ter sido processada. Manipulao das interrupes na sequncias que elas ocorrem Interrupes de baixa prioridade podem ser interrompidas por interrupes de maior prioridade Quando a interrupo de maior prioridade foi processada, o processador retorna para a interrupo prvia
Definir prioridades
152
Dispositivos de E/S
Temporizadores e Relgios Temporizadores O temporizador de intervalo gera periodicamente uma interrupo. Os sistemas operacionais usam temporizadores de intervalo para impedir que processos monopolizem o processador. Relgios Oferecem uma medida de continuidade. Um relgio de 24 horas habilita o sistema operacional a determinar a hora e a data atuais
153
Dispositivos de E/S
Temporizadores de Software Um segundo relgio programvel para interrupes de Temporizao ajustado para causar interrupes em qualquer taxa que um programa precisar sem problemas se a frequncia de interrupo baixa Temporizadores de software evitam interrupes ncleo checa se o temporizador de software expirou antes de retornar para o modo usurio quo bem isso funciona depende da taxa de entradas no ncleo
154
Dispositivos de E/S
155
Interrupes de Software Na arquitetura x86 (ou IA-32 da Intel) usa o termo interrupo de software para designar instrues especiais que fazem parte do conjunto de instrues de um processador, mas que tem um tratamento semelhante s interrupes de hardware. Os servios do Sistema Operacional (SO) so geralmente obtidos atravs deste mecanismo (chamadas ou traps ao SO). Exemplos: INT 0x80 (Linux) INT 0x21 (DOS)
Arquitetura e Organizao de Computadores
Dispositivos de E/S
Chamadas ao SO
156
Dispositivos de E/S
Interrupo de Software
157
Dispositivos de E/S
158
Dispositivos de E/S
1) salvar o endereo da instruo ofendida (instruo atual) num registrador especial EPC (Exception Program Counter). 2) transferir o controle (atualizar o contedo de PC) para um endereo especfico, que possibilite ao computador executar a rotina de tratamento de exceo.
ROTINA DE TRATAMENTO DE EXCEO: depende do tipo de exceo, por exemplo, reportar ao usurio que ocorreu um erro de overflow. Aes a serem tomadas aps a execuo do tratamento de exceo:
Depende do tipo de exceo: por ex. pode encerrar, ou continuar executanto, o programa que estava executando antes da exceo. O EPC usado para determinar o endereo de reincio da execuo
159
Dispositivos de E/S
Como saber a causa da exceo (MIPS) Para o computador manipular uma exceo, ele deve conhecer a razo da exceo. A razo pode ser obtida de duas formas: 1) usar o registrador de status (cause register) que indica a razo 2) usar interrupo vetorizada, caso em que o endereo de desvio para executar a exceo determinado pela causa da exceo
160
Dispositivos de E/S
Implementao de exceo no MIPS Implementao de duas excees: 1) overflow aritmtico 2) instruo indefinida A causa determinada pelo valor do registrador CAUSE de 32 bits: CAUSE = 00 00 00 00 (em hexa), overflow aritmtico CAUSE = 00 00 00 01 (em hexa), instruo indefinida O endereo da instruo ofendida guardada em EPC O endereo de desvio para o incio da execuo da rotina de tratamento de exceo dado por C0 00 00 00 (em hexa).
161
Dispositivos de E/S
162
Dispositivos de E/S
Dispositivos de E/S
164
Dispositivos de E/S
165
Dispositivos de E/S