Sistemas Digitais Prof. Gustavo Oliveira Cavalcanti gustavooc@poli.br https://sites.google.com/a/poli.br/professorgustavooc/
Conteúdo Programático (Organização e Arquitetura) Arquitetura e história dos microprocessadores; Representações binário, octal, Hexadecimal, ASCII; Arquitetura de Von Neumann e Harvard; Modos de endereçamento direto, indireto, imediato.. Tipos de instrução; Pilhas, subrotinas e interrupções; Dispositivos de entrada e saída; Arquiteturas RISC e CISC; Pipeline, Superpipeline e Superescalar; Barramento USB: HID, CDC; Timers; Principais Arquiteturas de Microcontroladores.
Bibliografia STALLINGS, WILLIAM, Arquitetura e Organização de Computadores. Prentice-Hall, 5. ed., 2007.
Introdução Principais Componentes CPU; Memória Principal; Dispositivos de E/S; Interconexões. A CPU possui Unidade de Controle; ULA; Registradores; Interconexão.
Arquitetura Atributos de um sistema que são visíveis ao programador. Organização Refere-se às unidades operacionais e suas interconexões que implementam as especificações da sua arquitetura.
Funções básicas: Processamento de Dados; Armazenamento de Dados; Transferência de Dados; Controle.
Tipos de Operações: Transferência de Dados (a); Armazenamento de Dados (b); Processamento de Dados (c) e (d);
Arquitetura von Neumann Conceitos: Dados e Instruções armazenados em uma mesma memória leitura/escrita; Memória endereçada pela posição independente do tipo de dados; A execução das instruções ocorre de modo sequencial (exceto quando a sequência é quebrada de forma proposital).
Arquitetura von Neumann
Arquitetura von Neumann Troca de Dados
Arquitetura von Neumann Ciclo de Instrução; Busca: Instrução carregada no IR; Incrementa o PC. Execução(Ações): Tranferência de dados (Processador Memoria ou Processador Disp. E/S) Processamento (Função logica); Controle (desvio).
Arquitetura von Neumann A execução encerra quando: Máquina for desligada; Erro irrecuperável; Execução de Instrução que para a operação. Exemplo: ADD B,A Instrução é buscada; Busca A; Busca B; Soma os conteúdos; Salva o resultado em A.
Arquitetura von Neumann
Arquitetura von Neumann Diagrama de estados de um ciclo de instrução.
Arquitetura von Neumann Interrupções: Quando componentes distintos do processador (E/S, memória) interrompem a sequência normal de execução. Classes de Interrupções: Software: Overflow, A/0, Ref. End. Inexistente... Relógio: Permite ao SO realizar certas funções; E/S: Controlador de E/S; Falha de Hardware: queda de energia, erro de paridade na memória
Arquitetura von Neumann Transferência de controle via interrupção.
Arquitetura von Neumann Ciclo de Instrução com Interrupção.
Arquitetura von Neumann Diagrama de Transição de Estados de um Ciclo de Instrução com Interrupções.
Arquitetura von Neumann Múltiplas Interrupções: Desabilitar as demais interrupções
Arquitetura von Neumann Múltiplas Instruções: Definindo Prioridades nas Interrupções
Funcionamento da E/S; O módulo de E/S pode trocar dados diretamente com o processador; Assim, o processador pode ler e escreve diretamente na E/S; Temos Instruções de E/S sendo executadas; A transferência da E/S pode ser feita diretamente para a memória; Assim o módulo de E/S envia comandos de leitura ou escrita diretamente para a memória(dma).
Estruturas de Interconexão (Processador Memória E/S);
Barramentos: Meio físico compartilhado, colisão tem que ser evitada; Linhas de Controle, Dados e Endereço; Ainda podem existir linhas de energia.
Principais linhas de Controle: Escrita na Memória; Leitura na Memória; Escrita em porta de E/S; Leitura de porta de E/S; Confirmação de Transferência (ACK); Requisição de Barramento; Concessão de Barramento; Requisição de Interrupção; Confirmação de Interrupção (ACK); Relógio (temporização das operações); Inicialização (reset).
Desempenho do Barramento: Quanto mais dispositivos maior o comprimento e maior o atraso (tempo para obter o barramento); O barramento pode se tornar um gargalo quando a demanda de transferência de dados se aproxima da capacidade máxima; Aumento da largura do barramento; Porém como as taxas de transferências crescem rapidamente um único barramento não resolverá. Pode ser dedicado ou multiplexado.
Múltiplos Barramentos (Tradicional)
Múltiplos Barramentos (Alto Desempenho)
Arbitragem de Barramento: Centralizada: Controlador do barramento/ árbitro pode ou não ser o processador; Distribuida: Não existe árbitro cada dispositivo contem uma lógica de acesso ao barramento
Sistema Operacional Controla a execução de programas; Gerenciar recursos; Escalonamento de processos; Quais processos devem ser executados; Hardware interrompe a execução (time slot) Gerenciamento de memória; Dados podem exceder a capacidade da memória principal; O SO dispõe de suporte de hardware; Gerenciamento de memória virtual; Gerenciamento de processos;
Elementos de uma instrução de máquina: Código de operação; Referência a operando origem e destino; Endereço da próxima instrução: implicito.
Mnemônicos: Mnemônico ADD SUB MPY DIV LOAD STOR Operação Adição Subtração Multiplicação Divisão Carrega dados da memória Armazena dados na memória ADD R,Y Adiciona o valor contido na posição Y com o conteúdo do registrador R.
O conjunto de instruções de máquina deve ser suficiente para expressar qualquer comando de uma linguagem de alto nível. Processamento de dados (instruções aritméticas e lógicas); Armazenamento de dados (instruções de memória); Movimentação de dados (instruções de E/S); Controle (instruções de teste e de desvio).
Número de Endereços na instrução Códigos para executar: Y = (A-B) / (C+D x E)
Utilização de endereços nas instruções (exceto desvio)
Projeto do conjunto de Instruções Questões importantes: Repertório de Operações (quantas, quais e quão complexas); Tipos de Dados (quais os tipos de dados estarão disponíveis); Formatos de Instrução (tamanho em bits, número de endereço, tamanho dos campos); Registradores (número de registradores, qual o propósito de cada um); Endereçamento (de que modo ou modos o endereço de um operando é especificado).
Projeto do conjunto de Instruções Tipos de dados: Endereços (números inteiros sem sinal); Números (Inteiro ou ponto fixo, ponto flutuante, decimal-bcd); Caracteres (Texto / Seq.Caracteres ASCII-American Standard Code for Information Interchange); Dados Lógicos ( 1 bit Dado Booleano verdadeiro ou falso Manipulação de bits de um dado ).
Projeto do conjunto de Instruções Tipos de Operações: Transferência de Dados; Aritméticas; Lógicas; De Conversão; De E/S; Controle de Sistema; Transferência de Controle.
Projeto do conjunto de Instruções Controle de Sistema: Modificar conteúdo de registrador de controle; Modificar chave de proteção da memória; Usadas pelo S.O. Transferência de Controle; Desvio condicional (BRANCH); Salto (JUMP); Chamada de Procedimento(CALL/RETURN).
Projeto do conjunto de Instruções Deslocamento: Lógico; Não preserva sinal; Aritmético; Preserva sinal; Rotação; Sem perda de bits; Útil em testes.
Projeto do conjunto de Instruções Código de condição: Bits de registradores especiais; Usados em desvios condicionais.
Projeto do conjunto de Instruções Linguagem de Montagem N = I + J + K
Projeto do conjunto de Instruções Modos de Endereçamento
Projeto do conjunto de Instruções Pipeline
Projeto do conjunto de Instruções Penalidade do desvio
Projeto do conjunto de Instruções MIPS (Microprocessor without Interlocked Pipeline Stages = Microprocessador sem Estágios Interligados de Pipeline)
Projeto do conjunto de Instruções Tipos de Instruções do MIPS Registrador Registrador (R-Type); Envolvendo Valor Imediato (I-Type); Instruções de Desvio (J-Type). Simplicidade; Regularidade.
Projeto do conjunto de Instruções Instrução Tipo R op: opcode = Código de operação; rs: primeiro operando (registrador); rt: segundo operando (registrador); rd: registrador de destino shamt: quantidades de bits a ser deslocado; funct: função específica a ser executada.
Projeto do conjunto de Instruções Instrução Tipo I op: opcode = Código de operação; rs: registrador base a ser operado com o valor imediato ou operando; rt: registrador de destino ou operando; imediato: valor constante a ser operado.
Projeto do conjunto de Instruções Instrução Tipo J op: opcode = Código de operação; endereço: endereço da instrução para a qual o fluxo deve ser desviado.
Projeto do conjunto de Instruções Exemplos de Instruções
Projeto do conjunto de Instruções Exemplos de Instruções
Projeto do conjunto de Instruções Execução de Instruções no MIPS