1 / 62

Sistemas Multiprocessados

Sistemas Multiprocessados. Curso Sistemas Multiprocessados Prof. Helano de Sousa Castro Departamento de Teleinformática/DETI helano@lesc.ufc.br. Programa da disciplina. 1. Evolução das arquiteturas de computadores: aspectos históricos, computador pessoal, bases numéricas

trinh
Download Presentation

Sistemas Multiprocessados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Multiprocessados Curso Sistemas Multiprocessados Prof. Helano de Sousa Castro Departamento de Teleinformática/DETI helano@lesc.ufc.br

  2. Programa da disciplina • 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.

  5. Pipelining

  6. Organização de memória 1

  7. Organização de memória 2

  8. Organização de memória 3

  9. Registros

  10. Registro de flags

  11. Registro de Flags

  12. 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.

  13. 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. • Usado para armazenar o offset de um ponteiro de dados.

  14. Registros de uso geral • EBP: Base Pointer: • 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.

  15. 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.

  16. EFlags • C (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.

  17. Flags (cont) • Z (Zero): • 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.

  18. Flags (cont) • I (Interrupt): • 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

  19. 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 8086-80286 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.

  20. 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: 80386 e acima. • Permitem definir outros segmentos de memória

  21. Mapeamento de endereços

  22. Segmentação

  23. Pinagem do 8086

  24. Característica elétrica do 8086

  25. 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

  26. 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

  27. 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.

  28. 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.

  29. 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.

  30. 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.

  31. 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.

  32. 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. Pinos do 8086 no modo mínimo

  33. 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.

  34. 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.

  35. 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. • HLDA • Hold Acknowledge. Sinal de saída, indica que o 8086 entrou em um estado de HOLD.

  36. 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. Pinos no modo máximo

  37. Configuração no modo máximo

  38. S2 S1 S2 Função 0 0 0 INT ACK 0 0 1 I/O Read 0 1 0 I/O Write 0 1 1 Halt 1 0 0 Opcode Fetch 1 0 1 Memory Read 1 1 0 MemoryWrite 1 1 1 Passivo Funções do barramento de controle geradas pelo barramento de controle (8288) usando S2, S1 e S0

  39. 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

  40. QS1 QS2 Função 0 0 Fila está inativa 0 1 Primeiro byte de um opcode 1 0 Fila vazia 1 1 Byte subsequente de um opcode Status da Fila interna de instruções

  41. Diagrama de bloco do 8284

  42. 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 Gerador de Clock 8284A

  43. 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 8086. 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 8484. Sua frequência deve ser 3 vezes maior que o valor desejado para CLK.

  44. F/C • Entrada frequency/crystal select seleciona a fonte de clock do 8284. 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.

  45. 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 8284. Este pino é normalmente conectado a uma rede RC que fornece power-on reset. • 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.

More Related