Prévia do material em texto
Prof. Antônio Palmeira UNIDADE II Organização de Computadores Conteúdo da Unidade II Entender a organização do computador; Conhecer com mais detalhes e clareza a função do processador; Conhecer as instruções de máquina de um processador; Abordar questões voltadas ao paralelismo. Organização do Computador Processador (formado pela Unidade Lógica e Aritmética, Unidade de Controle e Registradores); Entrada/Saída; Memória. Memória Unidade de controle Entrada Saída Acumulador Unidade lógica e aritmética Fonte: Livro-texto Processador É o cérebro do computador; Também conhecido como CPU (Central Processing Unit); Utiliza a linguagem de máquina (binário 0 e 1); É responsável por executar programas que ficam carregados na memória principal. Funções do Processador Busca de instrução na memória: O processador lê uma instrução da memória (registrador, cache, memória principal). Interpretação da instrução: A instrução é decodificada para determinar qual ação é requerida. Busca de dados: A execução de uma instrução pode requerer a leitura de dados da memória ou módulo de E/S. Processamento de dados: A execução de uma instrução pode requerer efetuar alguma operação aritmética ou lógica com os dados. Escrita de dados: Os resultados de uma execução podem requerer gravar dados para memória ou um módulo de E/S. Funções do Processador Componentes do Processador Unidade de Controle: Busca informações na memória principal. Unidade Lógica e Aritmética: Realiza os cálculos e a comparação entre os valores. Registradores: Compõem uma memória de alta velocidade (interna à CPU), utilizada para armazenar resultados temporários e para o controle do fluxo de informações. Hierarquia das Memórias e os Registradores Registrador é o elemento superior no nível de hierarquia de memória. Fonte: Livro-texto Organização dos Registradores Os registradores no processador desempenham dois papéis: Registradores visíveis ao usuário: Possibilitam que o programador de linguagem de máquina minimize as referências à memória. Registradores de controle e estado: Usados pela unidade de controle para controlar a operação do processador. Contador de Programa: Indica a próxima instrução a ser executada. Registrador de Instrução: Contém a instrução que está sendo executada. Registrador de Dados: É utilizado para armazenar dados. Registrador de Endereço: Recebe o endereço de um determinado objeto. Tipos de Registradores Registradores de Entrada e Saída da ULA A+B A B A B ULA A+B Registradores Registrador de entrada da ULA Barramentos de entrada da ULA Registrador de saída da ULA Fonte: Livro-texto (adaptado) Interatividade O registrador que indica a próxima instrução a ser executada é conhecido como: a) Contador de Programa. b) Registrador de Instrução. c) Registrador de Dados. d) Registrador de Endereço. e) Registrador de Barramento. Resposta O registrador que indica a próxima instrução a ser executada é conhecido como: a) Contador de Programa. b) Registrador de Instrução. c) Registrador de Dados. d) Registrador de Endereço. e) Registrador de Barramento. Instruções de Máquina São os pontos centrais na arquitetura de um processador; São conjuntos de instruções que determinam a operação do processador; Influenciam as operações realizadas pela unidade lógica e aritmética e pelos registradores. Tipos Gerais de Instrução Instruções aritméticas e lógicas: Realizam operações aritméticas sobre números inteiros (adição e subtração) e operações lógicas bit-a-bit (AND, OR). Instruções de movimentação de dados: Transferem dados entre registradores ou entre registradores e a memória principal. Instruções de transferência de controle: Transferem a execução para uma determinada instrução dentro do código do programa. Instruções para Operações Especializadas Várias arquiteturas de processadores oferecem outras categorias de instrução, voltadas para operações especializadas: Instruções de ponto flutuante; Instruções decimais; Instrução de manipulação de bits; Instrução de manipulação de strings. Código da Operação (Opcode): Especifica a operação a ser realizada. Referência ao operando fonte: Operandos que são entradas para a operação. Referência ao operando destino: Operandos que expressam o resultado. Referência à próxima instrução: Informa onde se deve buscar a nova instrução. Elementos de uma Instrução Memória principal ou virtual: Descoberta a partir do endereço de memória designado na instrução. Registrador do processador: Descoberto a partir da referência ao registrador designado na instrução. Imediato: O valor do operando está descrito no campo da instrução. Dispositivo de E/S: Instrução que especifica o módulo e o dispositivo de E/S. Localização dos Operandos (Endereçamento) Formato de uma Instrução A instrução é representada por uma sequência de bits (números binários 0 e 1); A instrução é dividida em campos, correspondentes aos elementos constituintes da instrução; É prática comum a utilização de representações simbólicas das instruções. Tipos de Formatos de Instruções OPCODE OPCODE OPCODE OPCODE OPERANDO 1 OPERANDO 1 OPERANDO 1 OPERANDO 2 OPERANDO 2 OPERANDO 3 Opcode São representados por abreviações, chamadas de mnemônicos, que indicam a operação. ADD: adiciona; SUB: subtrai; MUL: multiplica; DIV: divide; LOAD: carrega dados da memória; STOR: armazena dados na memória. Exemplo de uma Instrução Exemplo: ADD R, X Opcode: ADD Endereços dos Operandos: R e X Esta instrução pode significar somar o valor contido no local de dados X com o conteúdo do registrador R. Nesta instrução, a operação é executada sobre o conteúdo de um local e não sobre o endereço. Arquitetura das Instruções Arquitetura memória-memória: Usa três operandos e todos podem estar na memória. Arquitetura registrador-memória: Usa dois operandos, sendo que apenas um deles pode residir na memória. Arquitetura registrador-registrador: Usa três operandos, todos em registradores. Interatividade Qual dos itens abaixo se trata de um tipo geral de instrução aplicado a qualquer processador? a) Instruções de ponto flutuante. b) Instruções de movimentação de dados. c) Instruções decimais. d) Instrução de manipulação de bits. e) Instrução de manipulação de strings. Resposta Qual dos itens abaixo se trata de um tipo geral de instrução aplicado a qualquer processador? a) Instruções de ponto flutuante. b) Instruções de movimentação de dados. c) Instruções decimais. d) Instrução de manipulação de bits. e) Instrução de manipulação de strings. Tipos de Operandos Os principais tipos de operandos são: Endereços; Números; Caracteres; Dados Lógicos. Tipos de Operações (Opcodes) Os tipos mais gerais de opcodes são: Transferência de dados; Aritmética; Lógica; Conversão; E/S; Transferência de controle. Para que essa instrução aconteça, é necessário: Local dos operandos de origem e destino; Extensão dos dados a serem transferidos; Modo de endereçamento para cada operando. Exemplos: MOVE – transfere a palavra da origem para o destino; SET – transfere 1s para o destino. Operação de Transferência de Dados Envolvem operações aritméticas da CPU como adição, subtração, multiplicação e divisão. Outros exemplos: ABSOLUTE – apanha o valor absoluto do operando; NEGATE – inverte o sinal do operando; INCREMENT – soma 1 ao operando; DECREMENT – subtrai 1 do operando. Operações Aritméticas Operações Lógicas Operações utilizadas na manipulação de bits (números binários 0 e 1). Exemplos: OR – operação “OU”; AND – operação “E”; XOR – operação “OU” exclusivo; NOT – inversão de bit. Outras Operações Operações de Conversão: Ex: Conversão Decimal/Binário. OperaçõesE/S: Ex: Input (Leitura) e Output (Escrita). Operações de Transferência de Controle: Ex: Jump (Desvio) e Halt (Término). Ações do Processador para Diversos Tipos de Operação Transferência de dados: Transferência de dados de um local para outro; Determinação do endereço da memória; Verificação de cache; Início da leitura e escrita. Aritmética: Pode envolver transferência de dados; Realiza funções na ULA; Define códigos de condição. Conversão: Semelhante à aritmética e lógica, podendo envolver lógica especial para as conversões. Transferência de Controle: Atualização de contador de programa; Para chamada e retorno de sub-rotina. E/S: Determina E/S mapeada na memória. Lógica: O mesmo que aritmética. Ações do Processador para Diversos Tipos de Operação Trazer a próxima instrução da memória até o registrador; Alterar o contador de programa para indicar a próxima instrução; Determinar o tipo da instrução; Se a instrução necessitar de uma palavra da memória, determinar onde essa palavra está; Ciclo da Instrução Trazer a palavra para dentro de um registrador da CPU, se necessário; Executar a instrução; Se as interrupções estão habilitadas e ocorrer alguma, salva-se o estado do processo, atende-se a interrupção e depois retorna-se ao passo final; Voltar à etapa 1 para iniciar a execução da instrução seguinte. Ciclo da Instrução Interatividade Qual dentre as operações relacionadas emite comandos para um módulo de entrada e não requer uma ação da unidade lógica? a) Transferência de dados. b) Aritmética. c) Lógica. d) Conversão. e) E/S. Resposta Qual dentre as operações relacionadas emite comandos para um módulo de entrada e não requer uma ação da unidade lógica? a) Transferência de dados. b) Aritmética. c) Lógica. d) Conversão. e) E/S. Também conhecido como clock do processador; São sinais elétricos através de um cristal de quartzo que realiza a sincronização entre as instruções a serem processadas; As oscilações são mensuradas em hertz (Hz), unidade padrão de medidas de frequência, que indica o número de ciclos que ocorre em certo tempo, no caso, segundos. Ex: processador de 500 MHz lida com 500 milhões de operações por ciclo de clock. Clock Interno RISC versus CISC No final da década de 1970, existia uma deficiência entre o que as máquinas podiam fazer e o que as linguagens de alto nível exigiam. RISC (Reduced Instruction Set Computer) X CISC (Complex Instruction Set Computer) Conjunto de instruções reduzidas e menos complexas; Execução da instrução em um ciclo de clock; Alto uso de pipeline; Poucas instruções e modos de endereçamento; Instruções executadas pelo hardware; Processador precisa de um grande número de registradores. RISC CISC Conjunto de instruções complexas; Qualquer instrução pode referenciar a memória; Facilidade de programar processador; Instruções com vários formatos; Instruções de tamanho variável de acordo com o modo de endereçamento; Instruções que requerem muitos ciclos de clock. Paralelismo no Nível de Instrução Maximização da performance do computador: Aumento da taxa de execuções de instruções por segundo; Fazer com que o processador realize atividades em paralelo (paralelismo). Paralelismo ou Pipeline é a técnica de dividir a execução da instrução em várias partes, e cada uma será manipulada por uma parte específica do processador. Modelo de Pipeline Unidade de busca de instrução Unidade de decodificação de instrução Unidade de busca de operando Unidade de execução de instrução Unidade de gravação (a) (b) S1 S2 S3 S4 S5 Tempo 1 2 3 4 5 6 7 8 9 S1: S2: S3: S4: S5: 1 1 2 2 1 4 5 6 7 8 93 3 2 1 4 3 2 1 5 4 3 2 6 5 4 3 7 8 6 7 5 4 6 5 Fonte: Livro-texto (adaptado) Arquiteturas Superescalares Manter na unidade de execução mais de uma ULA, uma unidade para LOAD, uma para STORE. S1 S2 S3 S5 S4 ALU ALU LOAD STORE Ponto flutuante Unidade de busca de instrução Unidade de decodificação de instrução Unidade de busca de operando Unidade de gravação Fonte: Livro-texto (adaptado) Paralelismo no Nível do Processador Paralelismo no nível de instrução é insuficiente, devido à dependência das instruções; No paralelismo no nível de instrução, a dissipação de calor é cada vez maior em relação às execuções; Consiste em projetar computadores com várias CPUs. Multiprocessadores Multiprocessadores: composto de vários processadores independentes compartilhando a mesma memória. Fonte: Livro-texto (adaptado) CPU CPU CPU CPU Memória Compartilhada Barramento Multicomputadores Multicomputadores: cada CPU tem a sua memória local que só é acessada por aquele processador, no entanto, pode haver uma quantidade de memória compartilhada entre as CPUs. Memórias locais CPU CPU CPU CPU Memória Compartilhada Barramento Fonte: Livro-texto (adaptado) Resumo da Unidade Compreendemos a organização do computador; Conhecemos com mais detalhes e clareza a função do processador; Conhecemos as instruções de máquina de um processador; Abordamos questões voltadas ao paralelismo. Interatividade Qual dos itens abaixo não diz respeito ao Conjunto de Instruções Complexas (CISC)? a) Qualquer instrução pode referenciar a memória. b) Facilidade de programar processador. c) As instruções possuem formato único. d) Instruções de tamanho variável de acordo com o modo de endereçamento. e) Instruções que requerem muitos ciclos de clock. Resposta Qual dos itens abaixo não diz respeito ao Conjunto de Instruções Complexas (CISC)? a) Qualquer instrução pode referenciar a memória. b) Facilidade de programar processador. c) As instruções possuem formato único. d) Instruções de tamanho variável de acordo com o modo de endereçamento. e) Instruções que requerem muitos ciclos de clock. ATÉ A PRÓXIMA!