Sistemas Multiprocessados - ppt carregar
Apresentação em tema: "Sistemas Multiprocessados"— Transcrição da apresentação:
1 Sistemas Multiprocessados
Curso Sistemas Multiprocessados Prof. Helano de Sousa Castro Departamento de Teleinformática/DETI
1. Evolução das arquiteturas de computadores: aspectos históricos, computador pessoal, bases numéricas 2. Arquitetura de microprocessador: arquitetura interna, modo de endereçamento de memória real e protegido, paginação 3. Modos de endereçamento 4. Programação assembly 5. Arquitetura do processador 8086: especificações técnicas, pinagem, geração de clock (8284), demultiplexação e buferização de barramentos, temporização dos barramentos, estados de espera (WAIT), modo máximo e mínimo 6. Interface de memória: dispositivos de memória, endereçamento, interface de memória do 8086. 7. Interface básica de Entrada/Saída: introdução a interface E/S, decodificação de endereços de portas, Interface Programável de Periféricos (8255), Interface Programável de Teclado/Vídeo (8279), Temporizador Programável (8254), Interface Programável de Comunicação, Conversor analógico-digital e digital-analógico. 8. Interrupções: atendimento de interrupções, interrupção de hardware, expandindo a estrutura de interrupção, Controlador Programável de Interrupção (8259A) 9. Acesso Direto à Memória (DMA): operação do DMA, Controlador de DMA 8237
3 Avaliação Três avaliações escritas (50%)
Projeto de final de disciplina (50%)
4 Projeto Hardware: placa com processador 8086; memória RAM de (no mínimo) 16KB ememória EPROM de mesmo tamanho; interface serial (8251); interface paralela (8255); contador/temporizador programável (8253); controlador de interrupções (8259A); Diferencial: controlador de teclado/video (8275); controlador de DMA (8257); Software: drivers para dispositivos acima; aplicação demonstrado operacionalidade do hardware.
6 Organização de memória 1
8 Organização de memória 2
10 Organização de memória 3
14 Registro de flags
15 Registro de Flags
16 Registros de uso geral EAX: Acumulador : Referenciado como EAX, AX, AL ou AH. Usado em instruções mult, div, etc. Usado para armazenar um offset. EBX: Base Index : Usado para armazenar o offset do ponteiro de dados.
17 Registros de uso geral (cont)
ECX: Count : Usado para armazenar contagem em algumas instruções, REP e LOOP. Usado para armazenar o offset de um ponteiro de dados. EDX: Data : Usado para armazenar uma parte do resultado de mult, e de operando para div.
18 Registros de uso geral EBP: Base Pointer : EDI: Destination Index :
Armazena o ponteiro base para transferências de dados em memória EDI: Destination Index : Armazena o ponteiro base do destino para instruções string. ESI: Source Index : Armazena o ponteiro destino da origem para instruções string.
19 Registros de propósito especial
EIP: Instruction Pointer : Aponta para a próxima instrução no segmento de código. 16-bits (IP) no modo real e 32-bits no modo protegido. ESP: Stack Pointer : Usado em operações na pilha e intruções call and ret.
20 EFlags C (Carry) : P (Parity) : A (Auxiliary Carry) :
Armazena o "vai 1" após operações de adição ou "empresta 1" após operações de Também indica condições de erro. P (Parity) : 0 para números ímpares e 1 para pares. Característica obsoleta do 80x86. A (Auxiliary Carry) : Flag altamente especializado usado em instruções DAA e DAS após instruções de adição e subtração em BCD.
21 Flags (cont) Z (Zero) : S (Sign) : T (Trap) :
1 se o resultado de uma instrução lógica ou aritmética for 0. S (Sign) : 1se o sinal do resultado de uma instrução aritmética ou lógica for negativo. T (Trap) : Habilita Trap. O microprocessador interrompe o fluxo de instruções de acordo com condições indicada pelos registros de controle e debug.
22 Flags (cont) I (Interrupt) : D (Direction) : O (Overflow) :
Controla a operação do pino de interrupção INTR (Interrupt request). Se1, interrupções são habilitadas. Modificado pelas instruções STI e CLI. D (Direction) : Seleciona o modo de incremento ou decremento para o registro DI e/ou SI durante instruções string. Se1, os registros são automaticamente decrementados. Modificado pelas instruções STD e CLD. O (Overflow) : Modificado (set) para instruções de adição e subtração
23 Registros de Segmento CS (Code Segment) :
No modo real, especifica o inicio de um segmento de memória de 64KB. No modo protegido, seleciona um descritor de segmento. O segmento de código é limitado a 64KB no e 4 GB a partir do 386. DS (Data Segment) : Similar ao CS exceto que esse segmento armazena dados. ES (Extra Segment) : Data segmento de dados usado por algumas instruções string para armazenar dados.
24 Registros de segmento (cont)
SS (Stack Segment) : Similar a CS exceto que armazena a pilha. ESP e EBP armazenam os offsets nesse segmento. FS and GS : e acima. Permitem definir outros segmentos de memória
25 Mapeamento de endereços
27 Segmentação
28 Pinagem do 8086
29 Característica elétrica do 8086
30 Sinais do 8086 AD7-AD0 Barramento de sinais multiplexados de dados e endereços (byte menos significativo). O sinal ALE indica presença de endereços no barramento. Os pinos ficam em estado de alta impedância durante um hold acknowledge AD15-AD8 Barramento de sinais multiplexados de dados e endereços (byte mais significativo). O sinal ALE indica presença de endereços no barramento. Os pinos ficam em estado de alta impedância durante um hold acknowledge
31 AD19/S6-A16/S3 Barramento de sinais multiplexados de endereços (4 bits mais significativos) e status. O bit indicativo de status S6 sempre permanece em zero; o bit S5 indica a condição dos bits de flag IF. S3 e S4 podem ser usados para endereçar 4 bancos de memória separados de 1MB, decodificando-os como A20 e A21. Os pinos ficam em estado de alta impedância durante um hold acknowledge S4	S3	Função 0	0	segmento extra 0	1	segmento de pilha 0	segmento de código ou nenhum segmento 1	1	segmento de dados
32 RD Sinal de saída. Sempre que for zero, indica que o 8086 está pronto para efetuar uma leitura de memória ou E/S . O pino fica em estado de alta impedância durante um hold acknowledge. READY Sinal de entrada. Usado para introduzir estados de espera (WAIT) na temporização do processador. Se for colocado em nível 0, o 8086 entra em estados de espera e permanece ocioso (idle). Se colocado em nível 1, não tem nenhum efeito na operação do processador.
33 INTR Sinal de entrada que indica um pedido de interrupção (Interrupt request). Quando mantido em 1, se IF=1, o 8086 entra em um ciclo de reconhecimento de interrupção (Interrupt acknowledge, INTA torna-se ativo) após a instrução atual ser concluída. Conhecida por interrupção mascarável por poder ser não reconhecida através da colocação de IF em 0. TEST Sinal de entrada que é testado pela instrução WAIT. Se TEST = 0, a instrução WAIT funciona como um NOP; sefor 1, a instrução WAIT espera que TEST torne-se 0.
34 NMI Sinal de entrada para indicar um pedido de interrupção não mascarável (non-maskable interrupt). Similar a INTR exceto que o status do flag IF não é testado. Se NMI é ativado, a interrupção usa o vetor 2. RESET Sinal de entrada usado para resetar o 8086 por um mínimo de 4 períodos de clock. O processador começa a executar a partir da posição de memória FFFF0H e interrupções mascaráveis são desabilitadas através da colocação de IF em 0.
35 CLK Sinal de entrada, fornece o sinal de temporização básico para o microprocessador. O sinal de clock deve ter um duty cycle de 33% de forma a garantir temporizações internas necessárias. Vcc Sinal de entrada, fornece a tensão de +5V +/-10%, para o processador. GND Conexão de terra para retorno da fonte de potência. O 8086 tem 2 pinos de terra e AMBOS devem ser aterrados.
36 MN/MX Sinal de entrada, seleciona o modo de operação mínimo ou máximo do processador. Se o mínimo é requerido, o pino deve ser conectado a +5V. BHE/S7 Sinal de entrada, fornece a tensão de +5V +/-10%, para o processador.
37 Pinos do 8086 no modo mínimo M/IO
Sinal de saída usado para indica que o processador irá efetuar acesso à memoria ou à dispositivos de entrada/saída.Quando 1, indica que o barramento de endereços contém um endereço válido de memória. O pino fica em estado de alta impedância durante um hold acknowledge. WR Sinal de saída, é usado como strobe que indica que o 8086 está enviando dados para memória ou Entrada/Saída. Durante o tempo que WR está em lógica 0, o barramento de dados contém dados válidos para memória ou E/S. O pino fica em estado de alta impedância durante um hold acknowledge.
38 INTA Interrup Acknowledge. Sinal de saída, indica que o 8086 irá responder a um pedido de interrupção feito no pino INTR. ALE Address Latch Enable. Sinal de saída, indica que o barramento multiplexado endereços/dados contém informação de endereços. O endereços pode se referir a memória ou número da porta de E/S. Usado normalmente junto com um Latch para demultiplexar o barramento enderços/dados. Este pino não flutua com HOLDA.
39 DT/R Sinal de saída, indica que o processador está transmitindo ou recebendo no/do barramento de dados. Esse sinal é usado para habilitar buffers externos de dados. DEN Data bus enable. Sinal de saída, usado para ativar buffer externos de dados. HOLD Sinal de entrada, usada para solicitar DMA (Direct Memory Access), Acesso Direto à Memória. Se HOLD=1, o processador para de executar o programa e coloca seus barramentos em alta impedância. Se HOLD=0 o processador executa normalmente.
40 HLDA Hold Acknowledge. Sinal de saída, indica que o 8086 entrou em um estado de HOLD. SS0 Linha de status (saída), é equivalente ao pino S0 no modo operação máximo. Este sinal, combinado com M/IO e DT/R , é usado para decodificar a função do ciclo de barramento atual.
41 Pinos no modo máximo S2, S1, S0
Bits de status (saída) indicam a função corrente do ciclo de barramento. Estes sinais são, normalmente, decodificados usando-se o controlador de barramento 8288. R1/GT1 e RO/GT0 Request/Grant. Usados para pedidos de DMA no modo de operação máximo. Essas linhas são bi-direcionais, e são usadas tanto para pedido como para concessão de operação de DMA.
42 Configuração no modo máximo
43 S2 S1 S2 Função 0 0 0 INT ACK 0 0 1 I/O Read 0 1 0 I/O Write
Halt Opcode Fetch Memory Read MemoryWrite Passivo Funções do barramento de controle geradas pelo barramento de controle (8288) usando S2, S1 e S0
44 LOCK Sinal de saída, é usado para "travar" periféricos. Este pino é ativado usando o prefixo LOCK: em qualquer instrução.Hold Acknowledge. QS1 e QS2 Sinais de status (saída), mostram o status da fila interna de instruções. Esses pinos são fornecidos para acesso ao coprocessador numérico
45 0 1 Primeiro byte de um opcode 1 0 Fila vazia
QS1	QS2	Função Fila está inativa Primeiro byte de um opcode Fila vazia Byte subsequente de um opcode Status da Fila interna de instruções
46 Diagrama de bloco do 8284
47 Gerador de Clock 8284A AEN1 e AEN2
Pinos Address Enable (entradas) são fornecidos para habilitar os sinais de Ready, RDY1 e RDY2, respectivamente, usados para causar ciclos de WAIT. RDY1 e RDY2 (entradas) Pinos de entrada usados em conjunção com AEN1 e AEN2 para causar ciclos de WAIT no
48 ASYNC A entrada de seleção de sincronização de ready seleciona um ou dois estágios de sincronização para as entradas RDY1 e RDY2. Possui resistor de pull-up interno. READY Sinal de saída para ser conectado no pino READY do Este sinal está sincronizado com RDY1 e RDY2. X1 e X2 Pinos para conexão do oscilador de cristal externo, usado como fonte de temporização para todos os tempos no Sua frequência deve ser 3 vezes maior que o valor desejado para CLK.
49 F/C Entrada frequency/crystal select seleciona a fonte de clock do Se o pino é mantido em 1, um clock externo é fornecido pela entrada EFI; se mantido em 0, o oscilador de cristal interno fornece o sinal de temporização. EFI A entrada External frequency input é usada quando o pino F/C é colocado em 1, caso em que ele fornece a temporização. Sua frequência deve ser 3 vezes maior que o valor desejado para CLK. CLK Pino de saída do clock para o 8086 e outros componentes do sistema. Sua freqüência é 1/3 da freqüência do cristal ou de EFI, e tem um ciclo de trabalho de 33%, requerido pelo processador.
50 PCLK A saída peripheral clock tem 1/6 da freqüência do cristal ou de EFI, e tem ciclo de trabalho de 50%. PCLK fornece sinal de clock para equipamento periférico do sistema. OSC A saída oscilator tem um nível de sinal TTL que é da mesma freqüência que o cristal ou EFI. OSC fornece uma entrada EFI para outros geradores de clock 8284 em sistemas multiprocessadores. Contanto que se tenha um cristal conectado a X1 e X2, sempre esta saída fornecerá um clock, mesmo se, mesmo se F/C estiver em alto. RES Reset é uma entrada ativo baixo para o Este pino é normalmente conectado a uma rede RC que fornece power-on reset.
51 RESET Saída conectado ao pino de RESET do 8086. CSYNC A entrada clock synchronization é usada sempre que a entrada EFI fornecer a sincronização em sistemas multiprocessadores. Se o oscilador de cristal interno for usado, essa entrada deve ser aterrada. GND Pino de terra. Vcc Deve ser ligado a uma fonte de +5V, +/- 10%.
52 Clock do processador
53 Circuito de reset e clock
54 Latching
55 8288
56 Temporização no 8086 8086 usa memória e E/S em períodos chamados de ciclos de barra (ou barramento) Cada ciclo corresponde a 4 períodos de clock (estados T) Se f = 5 MHz, T = 200ns e ciclo = 800ns Velocidade de Leitura ou escrita máxima
57 Ciclo de barra T1 – ALE, DT/R, M/IO, Endereços T2 – RD ou RD, DEN
Se ciclo de escrita -> DATA OUT Se ciclo de leitura -> barramento A/D em tri-state Ready – amostrado no final de T2 T3 – Fornecido para dar tempo para memória acessar dado Se o ciclo for de leitura (READ) o dado é amostrado no fim de T3 T4 – Sinais desativados. Preparação para o próximo ciclo Subida de WR
60 Cálculo para tempo de acesso da memória
Considerando processador a 5MHz -> T = 200 ns Ciclo de leitura = 3 X T = 3 X 200 ns ns (Access Time) Deve-se considera o retardo introduzido por: ALE (TCLAV) = 110 ns Access Time = 600 ns – 110 ns = 490 ns Data Setup (TDVCL) = 30 ns Access Time = 490 ns – 30 ns = 460 ns OBS: Incluir retardo de 40 ns (propagação portas) Access Time = 420 ns