Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação Organização Básica do Computador Gabriel P. Silva Arquitetura de Computadores I Ementa Unidade 2: Organização Lógica e Funcional de uma UCP 2.1 Modelo Von-Neumann 2.2 Modelo de Barramento de Sistema 2.3 Processador 2.3.1 Unidade Artimética e Lógica 2.3.2 Registradores 2.3.3 Apontador de Instruções 2.3.4 Registrador de Instrução 2.4 Unidade de Controle 2.4.1 Unidade de Controle Microprogramada 2.4.2 Unidade de Controle Direto por Hardware 2.5 Ciclo de Busca de Instruções 2.6 Tipos de Arquitetura 2.7 Operandos 2.7.1 Inteiros 2.7.2 Ponto Flutuante 2.7.3 Alinhamento na Memória 2.7.4 Ordenação Big Endian e Little Endian 2.8 Modos de Endereçamento 2.9 Sinal de Relógio (Clock) ● Introduziu o conceito do computador controlado por programa armazenado. ● Todo computador é formado por 5 partes básicas: a memória principal, a unidade lógica e aritmética, a unidade de controle e os dispositivos de entrada e saída. ● As operações a serem realizadas pelo computador são definidas pelos dados e instruções do programa carregado na memória. ● Maiores detalhes em http://goo.gl/AAPlKP Modelo de Von Neumann http://goo.gl/AAPlKP Modelo de Von Neumann MEMÓRIA ENTRADA SAÍDA ARITMÉTICA LÓGICA UNIDADE DE CONTROLE Modelo de Von Neumann ● A unidade aritmética e lógica é a parte do computador onde são feitas as operações aritméticas e lógicas com os dados. ● O tipo de operação a ser executado é determinado por sinais vindos da unidade de controle. ● A memória é onde ficam armazenados os dados e instruções que vão ser utilizados pela UAL e pela unidade de controle. ● Os dados a serem operados são lidos dos dispositivos de entrada para a memória. ● Os resultados obtidos são enviados para a memória e daí para os dispositivos de saída de dados. Modelo de Barramento de Sistema ● É um refinamento do modelo de Von Neumann e possui o processador (que integra ULA, registradores e unidade de controle), memória e unidade de entrada/saída. ● Os registradores são elementos de memória colocados junto da ULA para armazenamento de valores temporários. ● A comunicação entre as diversas unidades é feita através do barramento de sistema, que é composto pelos barramentos de endereço, dados e controle. ● Em algumas arquiteturas pode haver também barramentos adicionais conectados à unidade de entrada/saída, chamados de barramentos de entrada/saída. Modelo de Barramento de Sistema PROCESSADOR MEMÓRIA Controle Barramento de Endereço Barramento de Dados ENTRADA E SAÍDA Barramento de Sistema Diagrama da Placa de Computador Exemplo de Placa de Computador Digrama de Placa de Computador Digrama de Placa de Computador Memória Principal ● A unidade de memória primária é formada pela memória volátil e pela memória não volátil. ● As informações armazenadas na memória volátil podem ser alteradas durante a execução de um programa. São também usadas para armazenar os resultados intermediários e finais das operações realizadas pelo processador. ● A memória não volátil é usada para armazenar informações que não necessitam ser alteradas no decorrer do processamento. É utilizada para iniciar o funcionamento do computador, realizando os testes iniciais e cópia do sistema operacional para a memória. ● A memória volátil recebe o nome de memória principal e a memória não volátil é conhecida como BIOS nos computadores baseados no IBM/PC. Entrada/Saída ● A unidade de entrada e saída contém os circuitos de interface necessários para prover a comunicação entre os dispositivos de ENTRADA e SAÍDA com as demais partes do computador. ● Toda a informação é convertida de/para o formato binário pela unidade de entrada/saída. ● Exemplos de dispositivos de entrada/saída são o disco rígido, teclado, terminal de vídeo, mouse, impressora, entre outros. Memória Secundária ● A memória secundária é onde os programas e dados, incluindo aqueles do sistema operacional, são armazenados de uma forma persistente no computador. ● Hoje em dia é constituída, principalmente, pelo conjunto de discos magnéticos do computador e também, cada vez mais, pelos discos de estado sólido. ● A principal característica da memória secundária é o armazenamento da informação de uma forma permanente, mesmo quando o computador é desligado. ● Há vários outros tipos de dispositivos, removíveis ou não, que podem ser considerados parte da memória secundária, tais como fitas magnéticas, discos óticos, entre outros. ● Uma das características da memória secundária é o alto volume de dados e o baixo custo de armazenamento por byte quando comparado com a memória principal. Processador ● É o conjunto da unidade lógica e aritmética, registradores e da unidade de controle. ● Sua função é executar os programas armazenados na memória principal, buscando suas instruções, examinando as, e então executando uma após a outra. ● O processador é responsável pela realização de uma série de funções: Busca de instruções e dados na memória. Programa a transferência de dados entre a memória e os dispositivos de entrada/saída. Decodifica as instruções. Realiza as operações lógica e aritméticas. Responde a sinais enviados por dispositivos de entrada/saída como RESET ou interrupções. Processador Arquitetura Interna do Processador Unidade Aritmética e Lógica ● A Unidade Aritmética e Lógica pode realizar diversas operações. ● A seguir citamos algumas delas: ● Adição ● Subtração ● Operações lógicas: E, OU, XOR, INVERSÃO, etc. ● Deslocamento (à esquerda e à direita) ● Comparação ● Desvios ● Multiplicação ● Divisão Unidade Aritmética e Lógica ● A largura da arquitetura de um processador (8, 16, 32 ou 64 bits) é definida pela largura em bits do maior operando inteiro que pode ser utilizado em uma única operação pela UAL. Unidade Aritmética e Lógica ● A largura de uma arquitetura NÃO é definida: – Pelo tamanho em bits da instrução; – Pela largura do barramento de dados interno ou externo; – Pela largura em bits dos operandos da unidade de ponto flutuante; – Pela largura em bits do apontador de instruções (PC) ou do barramento de endereços. ● Como consequência direta, a largura em bits do maior operando admitido pela UAL irá determinar, normalmente, a largura em bits do acumulador e dos registradores de uso geral do processador. Não há sentido para que sejam maiores ou menores do que isso. Registradores ● O processador contém elementos de memória, de pequena capacidade mas de alta velocidade, usados para armazenar resultados temporários, chamados de registradores. ● O conjunto desses registradores é denominado banco de registradores. ● Os registradores são referenciados explicitamente pelas instruções lógicas, aritméticas e de transferência de dados. ● Existe um registrador invisível ao programador, chamado de registrador de instrução (RI), que armazena a instrução que está sendo executada. ● Existe um registrador especial denominado apontador de instruções (PC), que contém o endereço da próxima instrução que vai ser executada. U.A.L. e Banco de Registradores Unidade de Controle ● A unidade de controle é responsável pela coordenação da atividade de todos os componentes do processador. ● Ela busca a instrução na memória e coloca no registrador de instruções (RI). ● A unidade de controle faz a decodificação da instrução que está no RI: Determina qual o tipo de operação vai ser realizada pela U.A.L. Determina quantos e quais são os operandos de leitura, e qual o registrador de destino, se houver. Lê os operandos necessários para a execução da instrução e os coloca na entrada da U.A.L. ● A unidade de controle lê o resultado da saída da U.A.L. e envia para o destino correto. Unidade de Controle ● Há duasformas de se implementar a unidade de controle: Através de microprogramação Controle direto pelo hardware (PLA, ROM) ● As unidades de controle microprogramadas são características das arquiteturas do tipo CISC. ● O controle diretamente pelo hardware é encontrado normalmente nas arquiteturas do tipo RISC. Unidade de Controle Microprogramada RelógioRelógio Memória de Microprograma (ROM) Memória de Microprograma (ROM) Palavra de ControlePalavra de Controle Gerador de Endereço Inicial e de Desvios Gerador de Endereço Inicial e de Desvios Apontador de Micro Instruções (µPC) Apontador de Micro Instruções (µPC) Códigos de Condição Códigos de Condição R egistrad or de In stru ções R egistrad or d e In stru ções Decodificador de Instruções Decodificador de Instruções Unidade de Controle Direto pelo Hardware RelógioRelógio Palavra de ControlePalavra de Controle R egistrad or d e In stru ções R egistrador d e In stru ções Decodificador de Instruções Decodificador de Instruções Lógica de Controle (PLA) Lógica de Controle (PLA) Códigos de Condição Códigos de Condição Ciclo de Busca de Instruções ● O processador executa uma instrução em uma série de etapas: 1) Busca a próxima instrução que está localizada na memória para o registrador de instrução; 2) Atualiza o apontador de instruções (PC) para que ele aponte para a próxima instrução a ser executada. 3) Determina o tipo de instrução e o número de operandos; 4) Busca os operandos, se houver, para os registradores do processador; 5) Executa a instrução; 6) Armazena os resultados; 7) Volta ao passo 1 para executar a próxima instrução. Tipos de Arquitetura ● Arquitetura de Acumulador – Um operando (em registrador ou memória), o acumulador é usado como operando ímplicito a maioria das vezes ● Arquitetura de Pilha – Nenhum operando: todos operandos são implícitos no topo da pilha ● Arquitetura de Registrador (load / store) – Três operandos, todos nos registradores – loads e stores são as únicas instruções que fazem acesso à memória ● Arquitetura Registrador-Memória – Dois operandos, um em memória ● Arquitetura Memória-Memória – Três operandos, podem todos estar na memória Tipos de Arquitetura C:=A+B: Arquitetura de Pilha Arquitetura Acumulador Registrador- Memória Memória- Memória Registrador (load-store) Push A Load A Load r1,A Add C,B,A Load r1,A Push B Add B Add r1,B Load r2,B Add Store C Store C,r1 Add r3,r1,r2 Pop C Store C,r3 Arquitetura de Acumulador Acumulador ALU MemóriaEndereço latch latch Example code: c = b+a; load a; // acumulador é operando implícito add b; store c; Arquitetura de Pilha Exemplo: c = b+a; push a; push b; add; pop c; a a b a+b push a push b add pop c stack: ALU Memoria Pilha Ap. pilha latch latch latch a+b Operandos Inteiros Operandos em Ponto Flutuante Alinhamento 01234567 4 1 Palavra alinhada (endereço múltiplo de 4). Palavra não alinhada (endereço múltiplo de 1). 2 Palava não alinhada (endereço múltiplo de 2). Aumento dos Endereços Ordenação 01234567 Aumento dos Endereços 0 (LSB)123 (MSB) Ordenação Little-endian (byte com endereço menor é colocado no byte menos significativo da palavra) 3 (MSB)210 (LSB) Ordenação Big-endian (byte com endereço menor é colocado no byte mais significativo da palavra) 4 Ordenação Ordenação Modos de Endereçamento ● Na sintaxe na coluna em linguagem de montagem os parenteses ( ) indicam acesso à memória. ● Na sintaxe RTL à direita, [ ] denota acesso a um elemento de um vetor, com a Memória. Modo Exemplo Significado (RTL) Imediato add r4, r4, #3 R4 R4+3 Registrador add r4, r4, r3 R4 R4+R3 Direto ou Absoluto add r1, (1001) R1 R1+M[1001] Indireto Reg. add r4, (r1) R4 R4+M[R1] Deslocamento ld r4, 100(r1) R4 MEM[100+R1] Indexado add r3, (r1+r2) R3 R3+M[R1+R2] Indireto Mem. add r1, @(r3) R1 R1+M[M[R3]] Pilha pop r1 R1 M[SP] Modos de Endereçamento imedImediato Registrador reg Campo da InstruçãoModo Banco de Registradores Memória Indireto reg Direto (Absoluto) ender Deslocamento reg imed + endereço “base” deslocamento Modos de Endereçamento Campo da InstruçãoModo Banco de Registradores Memória Indexado reg1 reg2 + deslocamento Indireto Via Memória reg endereço “base” Pilha reg Ponteiro da Pilha Modos de Endereçamento ● Existem ainda modos especiais de endereçamento que utilizam o apontador de instruções (PC). ● O mais comum deles é o endereçamento relativo ao PC, onde o endereço do operando é um endereço relativo à localização da própria instrução. ● O apontador de instruções é utilizado como um registrador de base e o deslocamento, isto é, a distância entre o operando e o PC é utilizado no código da instrução. ● Esse modo é utilizado, por exemplo, no processador ARM e em instruções de desvio do processador MIPS. Sinal de Relógio (Clock) ● O processador tem seu funcionamento sincronizado por um sinal elétrico periódico denominado relógio. ● O relógio cadencia a execução das instruções em suas diversas fases. ● Quanto mais rápido (maior a frequência) for o sinal de relógio, mais rápido as instruções, e por consequência os programas, serão executados. ● Os componentes básicos do processador (portas lógicas, flip-flops, etc.) limitam a frequência máxima que o relógio pode ter. Sinal de Relógio (Clock) ● A frequência e o tempo do ciclo do relógio estão relacionados pela seguinte equação: ● O uso de técnicas como o pipeline permitem aumentar consideravelmente a frequência do relógio. ● Quanto maior a frequência de relógio maior é o consumo de energia e dissipação de calor do processador. ● Isso também impõe limites práticos sobre a maior frequência que um processador pode ter. T c= 1 f Sinal de Relógio (Clock) Banco de Registradores (R0 R31) U.A.L. RD RS1 RS2 32 32 RDM RI #RS1 #RS2 #RD UNIDADE DE CONTROLE IN S T R U Ç Ã O D A D O S 6 5 5 5 PC E N D E R E Ç O 16 4 Endereço de Desvio RD = RS1 oper R2 oper 32 32 + Barramento de Dados Barramento de Endereço REM E N D E R E Ç O 32 32 Organização de Computadores II Slide 2 Slide 3 Modelo de Von Neumann Slide 5 Slide 6 Modelo de Barramento de Sistema Diagrama da Placa de Computador Slide 9 Slide 10 Slide 11 Memória Entrada/Saída Slide 14 Processador Slide 16 Arquitetura Interna do Processador Unidade Aritmética e Lógica Slide 19 Slide 20 Registradores U.A.L. e Banco de Registradores Unidade de Controle Slide 24 Slide 25 Slide 26 Ciclo de Busca de Instruções Slide 28 Slide 29 Accumulator architecture Stack architecture Operandos Inteiros Operandos em Ponto Flutuante Alinhamento Ordenação Slide 36 Slide 37 Modos de Endereçamento Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46
Compartilhar