Aula 9 – Componentes do Computador e modelo de Von Neumann
Transcrição
Aula 9 – Componentes do Computador e modelo de Von Neumann
Aula 9 – Componentes do Computador e modelo de Von Neumann Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Anderson Moreira Arquitetura de Computadores 1 O que fazer com essa apresentação Anderson Moreira Arquitetura de Computadores 2 Breve Histórico (Revisão) Grande incidência de melhorias nos modelos computacionais ao longo dos anos: Data Inventor: máquina Capacidade Inovações Tecnológicas 1642 Pascal: Calculadora Adição e subtração Transferência automática de vai um; representação em complemento 1671 Leibnitz: Calculadora Adição, subtração, multiplicação e divisão Mecanismo para multiplicação e divisão 1827 Babbage: Máquina diferencial Avaliação polinomial por diferenças finitas Operação automática com diversos passos 1834 Babbage: Máquina analítica Computador de propósito geral Mecanismo automático de controle de seqüência (programa) 1941 Zuse: Z3 Computador de propósito geral Primeiros computadores de propósitos gerais operacionais 1944 Aiken: Harward Mark I Computador de propósito geral Primeiros computadores de propósito geral de multiprogramações Anderson Moreira Arquitetura de Computadores Breve Histórico (Revisão) Uma das principais investidas: Charles Babbage: Máquina diferencial (apenas adição) e Máquina Analítica (operações matemáticas básicas); Uso de cartões perfurados; Problema: Tecnologia da época. John Atanasoff: Máquina de válvulas para resolução de equações lineares Anderson Moreira Arquitetura de Computadores Breve Histórico (Revisão) Primeiro computador de propósito geral: ENIAC (Electronic Numerical Integrator and Calculator); Universidade da Pensilvânia; Base nas idéias de Babbage; Interesse militar (tabelas balísticas); Pesava 30 toneladas e 18000 válvulas. Impressoras e cartões perfurados Leitora de cartões multiplicador Divisor e Raiz quadrada Tabelas de funções Unidade mestre De programação Anderson Moreira Arquitetura de Computadores Acumuladores (registradores) Breve Histórico (Revisão) Modificações dos computadores: Gerações de computadores Geração Tecnologias Características de hardware Característica de software Exemplo 1ª (1946-1954) Válvulas, memórias de tubos catódicos Aritmética de ponto fixo Linguagem de máquina, linguagem assembler IAS, UNIVAC 2ª (1955-1964) Transistores, núcleos de ferrite, discos magnéticos Ponto flutuante, registrador indíce, processador E/S Linguagens de alto nível, bibliotecas e rotinas, processamento em lote IBM7094 e CDC 1604 3ª (1965-1974) Circuitos integrados Micro programação, pipeline e memória cache Multiprogramação, multiprocessamento, sistema operacional e memória virtual IBM S/360 e DEC PDP8 4ª (1975-?) Circuitos LSI, memórias semicondutoras Amdahl 470 e Intel 8748 Esta tabela poderia ter uma 5ª geração envolvendo máquinas paralelas, os circuitos VLSI e maquinas data-flow, porém Não surgiu nenhum grande marco computacional de lá para cá Anderson Moreira Arquitetura de Computadores Definições Máquina de níveis Aplicativos Utilitários Sistema Operacional Linguagem de Máquina Microprogramação Circuitos Eletrônicos Anderson Moreira Arquitetura de Computadores Princípios Básico Cada computador tem um conjunto de operações e convenções únicas para determinar as posições de dados com os quais a operação será realizada: OPERAÇÃO OPERANDOS Isso é denominada de instruções: OPERAÇÃO → especifica a função que será desempenhada; OPERANDOS → fornece a maneira de calcular a posição atual dos dados com os quais a OPERAÇÃO será realizada. • Um programa é constituído de uma sequencia prédeterminada de instruções, que deve ser seguida para que seja atingido uma tarefa computacional. Anderson Moreira Arquitetura de Computadores Princípios Básicos A memória de um sistema computacional tem a função de armazenar dados e instruções. Organizada em posições; Podem ser visualizadas como elementos de uma matriz; Cada elemento tem um endereço. Então uma memória que tenha x posições: Cada posição pode ser referenciada diretamente de acordo com a sua colocação na seqüência; Se uma memória tem 4096 posições existem posições de 0, ..., 4095; Instruções são executadas em uma seqüência determinada pela sua posição de memória Anderson Moreira Arquitetura de Computadores Princípios Básicos O endereço representa uma posição particular na memória e pode ser formado de várias maneiras; A representação trivial está na parte chamada campo de endereço; A Unidade Lógica e Aritmética (ULA) é responsável por realizar ações indicadas nas instruções, executando operações numéricas (aritméticas) e não numéricas (lógica); Preparação de informações de desvios do programa; O controle do programa e a ULA formam a unidade central de processamento, ou simplesmente processador. Anderson Moreira Arquitetura de Computadores Computadores não pensam!! • • • O programador do computador fornece um programa composto por instruções e dados que especificam cada detalhe do que executar, do que fazer com os dados, e quando fazê-los. O computador é, simplesmente, uma máquina de alta velocidade que pode manipular dados, resolver problemas e tomar decisões, tudo sob o controle do programa. Se o programador cometer um erro no programa ou fornecer dados errados, o computador invariavelmente fornecerá saídas erradas, como na máxima Anderson Moreira “lixo entra, lixo sai” Arquitetura de Computadores 11 • • • Como um computador consegue executar um conjunto de instruções? Talvez uma melhor questão a ser feita neste ponto seja: Tipicamente, respondemos a esta questão mostrando o diagrama da arquitetura de um computador (arranjo de seus vários elementos) e, então, repassando o processo, passo a passo, que o computador segue na execução do programa. Ao invés disso, primeiro iremos observar uma analogia um pouco distante, que contém muitos dos conceitos envolvidos na operação de um computador. Anderson Moreira Arquitetura de Computadores 12 Agente do GOE • O Agente da GOE está tentando descobrir quantos dias faltam para um certo líder ser assassinado. O seu contato lhe diz que esta informação está localizada em uma série de caixas postais. Para assegurar que ninguém mais tenha acesso à informação, ela está espalhada em 10 caixas. O seu contato lhe dá as 10 chaves, acompanhadas das seguintes instruções: • • • 1. A informação em cada caixa está escrita em código 2. Abra a caixa 1, primeiro, e execute a instrução lá localizada. 3. Continue pelo restante das caixas, em seqüência, salvo instrução em contrário. 4. Uma das caixas está preparada para ser explodida ao ser aberta. • • O Agente pega as 10 chaves e vai para a agência do correio, com o livro de códigos em mãos. Anderson Moreira Arquitetura de Computadores 13 Tabela Anderson Moreira Arquitetura de Computadores 14 Conclusões (computacionais) • • • • • Três classes diferentes de instruções estão presentes nas caixas de 1 a 6. As caixas 1, 2, 3 e 5 são instruções que “chamam” operações aritméticas. A caixa 4 contém uma instrução de decisão, chamada de desvio condicional. Esta instrução diz ao agente (ou computador) para decidir se pula para o endereço 7 ou continua para o endereço 5, dependendo do resultado da operação aritmética anterior. A caixa 6 contém uma simples instrução de controle que não precisa de dados, nem faz referência a outro endereço (número de caixa). Essa instrução, pare, diz ao agente que o problema está terminado (o programa está completado) e que não deve continuar adiante. Anderson Moreira Arquitetura de Computadores 15 Busca – Decodificação - Execução Um elemento no processador denominado contador de instruções (PC), contém a posição da próxima instrução a ser executada; Quando uma sequencia de execução de instrução tem início, a instrução cujo endereço está no PC é trazida da memória para uma área de armazenamento chamada registrador de instrução (IR). Chamado de busca A instrução é interpretada por circuitos de decodificação que fazem com que os sinais eletrônicos sejam gerados no processador Chamado de decodificação Anderson Moreira Arquitetura de Computadores Busca – Decodificação - Execução Esses sinais resultam na execução. Execução é a aplicação da função do operador nos operandos; Quando uma execução de uma instrução é terminada, o contador de instruções é atualizada para o endereço de memória para próxima instrução; Esta instrução é então trazida da memória para o IR e executada, repetindo assim o ciclo de buscadecodificação-execução; Anderson Moreira Arquitetura de Computadores Esquema Básico Busca Processa Armazena Fetch-instr. Decode Store res. Fetch ops. Execute Anderson Moreira Arquitetura de Computadores 18 Esquema Básico Dois passos: Buscar Executar Anderson Moreira Arquitetura de Computadores 19 Elementos funcionais básicos Computador: Composto por blocos: Memória Unidades operacionais Unidades de controle Dispositivos de entrada e saída Memória Controle Unidade Operacional Entrada/ Saída Anderson Moreira Arquitetura de Computadores 20 Elementos funcionais básicos Unidade Operacional e Unidade de Controle tem funções específicas; Reunidas recebe o nome de UCP – Unidade Central de Processamento; Registradores são elementos digitais com capacidade de armazenar dados. Tem associados sinais de cargas que determinam quando serão armazenados novos conteúdos neles; Ao ser acionado o sinal de carga, o registrador copia para si o dado que está em suas linhas de entrada. Anderson Moreira Arquitetura de Computadores 21 Elementos funcionais básicos Contadores, multiplexadores, seletores, codificadores, somadores e portas lógicas são elementos com capacidade de operar sobre dados: Alterando-os ou fornecendo um novo dado como resultado Elementos digitais Necessitam ser ativados ou habilitados para realizar uma determinada operação; Sinais responsáveis pela ativação ou habilitação de componentes digitais são conhecidos como sinais de controle. Barramentos (bus): Transferem dados entre os elementos do computador; Só podem receber dados de uma fonte de cada vez; A largura em bits diz respeito ao tamanho dos elementos que trafegam nele. Anderson Moreira Arquitetura de Computadores 22 Elementos funcionais básico - memória Memória é formada por elementos armazenadores de informações; É dividida em palavras; Cada palavra é identificada unicamente por um endereço; Conteúdo armazenado nas palavras da memória tanto pode representar dados como instruções; R E M read memória write RDM Anderson Moreira Arquitetura de Computadores 23 Elementos funcionais básico - memória REM: registrador de endereços da memória Contém o endereço do dado a ser lido ou escrito na memória RDM: registrador de dados da memória Contém o dado a ser escrito na memória (write) ou lido da memória (read) Sinais de controle: Read: leitura da memória – o conteúdo da posição de memória endereçada por REM é copiado em RDM; Write: escrita na memória – a posição de memória endereçada por REM recebe o conteúdo de RDM; Anderson Moreira Arquitetura de Computadores 24 Arquiteturas de Memória Princeton Menos fios Harvard Acesso simultâneo à dado e instruções Processor Program memory Data memory Harvard Anderson Moreira Arquitetura de Computadores Processor Memory (program and data) Princeton maio de 11 Slide: 25 Elementos funcionais básico – Unidade Operacional Unidade Operacional: Também conhecida como bloco operacional (datapath); Executa as transformações sobre dados, especificadas pelas instruções do computador; Componentes: ULA, registradores de uso geral e específico e barramentos O número; tamanho e uso dos registradores e a quantidade; e tipo de operações que a ULA realiza são alguns dos fatores que influenciam no poder de processamento de um computador. Vamos ver a ULA e o Acumulador Anderson Moreira Arquitetura de Computadores 26 Elementos funcionais básico – Unidade Operacional Unidade Lógica e Aritmética (ULA) Realiza operações lógicas e aritméticas; Exemplo: Soma de dois operandos; Negação de um operando; Inversão de um operando; Lógica de operando; Rotação de um operando para a direita ou esquerda. As operações da ULA geralmente são bem simples; Funções complexas são realizadas pela ativação sequencial das várias operações básicas; Anderson Moreira Arquitetura de Computadores 27 Elementos funcionais básico – Unidade Operacional A ULA fornece o resultado das operações e também algumas indicações sobre a operação realizada; Essas indicações são chamadas de códigos de condição; Exemplos: Overflow Sinal Carry Zero Anderson Moreira Arquitetura de Computadores 28 Modelo estrutural ULA Operandos Controle Códigos de condição Resultado Anderson Moreira Arquitetura de Computadores 29 Elementos funcionais básico – Unidade Operacional Acumulador É um registrador e tem por função armazenar um operando e/ou um resultado fornecido pela ULA; Computadores simples só são encontrados um acumulador; É ativado de acordo com o sinal de carga (load); Cada novo sinal faz perder o valor antigo Anderson Moreira Arquitetura de Computadores 30 Elementos funcionais básico – Unidade de Controle Serve para fornecer sinais de controle: Gerenciar o fluxo interno de dados e o instante preciso em que ocorrem as transferências entre uma unidade e outra Cada unidade de controle comanda uma micro operação Responsável pela realização de uma carga em um registrador; Seleção de dados para entrada; Ativação de memória; Seleção de uma operação da ULA. Anderson Moreira Arquitetura de Computadores 31 Elementos funcionais básico – Unidade de Controle • São máquinas de Estado Finita (FSM) – Lógica sequencial: os sinais de saída são função dos sinais de entrada e do estado anterior. – Lógica combinacional: os sinais de saída são função exclusiva dos sinais de entrada. • Existem várias formas de implementar a lógica sequencial. Porém duas são usuais: – Organização convencional – Organização microprogramada Anderson Moreira Arquitetura de Computadores 32 Elementos funcionais básico – Registradores especiais • Existem no computador alguns registradores com funções especiais: – Depende da arquitetura e organização de cada máquina; – A posição também influencia. • Tipos: – Apontador de instruções (PC) – Registrador de instruções (IR) – Registrador de estado (RST) Anderson Moreira Arquitetura de Computadores 33 Elementos funcionais básico – Registradores especiais Apontador de Instruções (PC) Tem como função manter atualizado o endereço de memória da próxima instrução; Registrador de instrução (IR) Armazena a instrução que está sendo executada; De acordo com o conteúdo, a UC determina quais sinais deve mser gerados; Registrador de estado (RST) Armazena códigos de condição gerados pela unidade lógica e aritmética; Anderson Moreira Arquitetura de Computadores 34 Conjunto de instruções e modos de endereçamento • • É um conjunto de bits devidamente codificados que indica ao computador que sequencia de micro operações este deve seguir: São classificadas por semelhanças de propósito e formato: – Instruções de transferência de dados; – Instruções aritméticas e lógicas; – Instruções de testes e desvios. • Logo conjunto de instruções são todas as instruções que um determinado computador reconhece; • A sequencia dessas instruções forma um programa. Anderson Moreira Arquitetura de Computadores 35 Instruções do Microprocessador • • • Esta coleção de palavras é conhecida como a linguagem assembly do processador. Um assembler (montador) pode traduzir as palavras para o seu padrão binário e a informação de saída do assembler é alocada na memória para ser executada pelo microprocessador. Para facilitar as tarefas de programação e depuração: – Mnemônicos associados aos códigos das instruções – Nomes operandos – Rótulos posições ocupadas pelo programa Anderson Moreira Arquitetura de Computadores 36 Exercícios • Faça uma análise do computador EDVAC, mostrando: – Principais vantagens; – Principais desvantagens; – Como funciona; – Arquitetura. • Deve ser em grupo de no máximo 4 pessoas e um grupo será selecionado para apresentar os resultados Anderson Moreira Arquitetura de Computadores 37 Modelo de Von Neumann Computador IAS Anderson Moreira Arquitetura de Computadores Histórico • • • Projeto começou em 1946 pela equipe de von Neumann; Elaborado no IEAP (Instituto de estudos avançados de princeton; Tinha como memória principal: – Tubo de raios catódicos de acesso aleatório; – Permitia o acesso a uma palavra inteira em uma única operação; – Cada instrução tinha um único endereço de memória e tinha o formato: OP Anderson Moreira A Arquitetura de Computadores 39 O computador IAS • Os blocos básicos do IAS: – Uma unidade de processamento central, para execução de operações lógicas e aritméticas; – Uma unidade de controle de programa para determinar o sequenciamento das instruções a serem executadas e gerar os sinais d controle para as outras unidades; – Uma unidade de memória principal com capacidade de 4096 palavras; – Uma unidade de E/S. Anderson Moreira Arquitetura de Computadores 40 O computador IAS - Ligações Unidade Central de Processamento AC MQ Circuitos lógicosaritiméticos Equipamento de E/S DR Instruções e dados IBR PC IR AR Memória Principal endereços Unidade de controle de programa Circuitos de controle Anderson Moreira Sinais de controle Arquitetura de Computadores 41 O computador IAS - Ligações Na UCP existe um novo elemento de armazenamento de dados, que é o acumulador (AC). Esse elemento atua como memória rápida que guarda de forma imediata o resultado das operações realizadas na unidade de cálculos. Exemplo de Programa do IAS Instrução Comentários AC M(100) Transfere conteúdo da memória do endereço 100 para o acumulador AC AC + M(101) Soma o conteúdo da posição de memória 101 ao conteúdo acumulador e coloca o resultado no acumulador M(102) AC Armazena o conteúdo do acumulador no endereço 102 da memória Anderson Moreira Arquitetura de Computadores 42 O computador IAS – Organização da Memória • • • Memória composta por 212 = 4096 palavras; Cada palavras = 40 bits; 40 bits eram a quantidade de informação que podiam ser transferidas, em cada momento: Memória UCP (cada passo) • Na memória: – Instruções de 20 em 20 bits; – Dados de 40 bits. Anderson Moreira Arquitetura de Computadores 43 Formato dos dados e instruções Os dados eram números binários representados em ponto fixo e codificados em complemento de dois; 0 1 39 Bit de sinal 0 8 Cód. operação 19 20 endereço Instrução posicionada à esquerda Anderson Moreira 28 Cód. operação 39 endereço Instrução posicionada à direita Arquitetura de Computadores 44 Conjunto de Instruções Tipo de Instrução Transferência de dados Anderson Moreira Operação Descrição AC MQ Transfere conteúdo do reg. MQ para o acumulador AC MQ M(X) Transfere conteúdo da posição X de memória para MQ M(X) AC Transfere conteúdo de AC para posição de memória X AC M(X) Transfere o conteúdo da posição de memória X para AC AC -M(X) Transfere –M(X) para AC AC |M(X)| Transfere o valor absoluto de M(X) para AC AC -|M(X)| Transfere -|M(X)| para AC Arquitetura de Computadores 45 Conjunto de Instruções Tipo de Instrução Operação Desvio incondicionalVai para M(X, 0:19) Vai para M(X, 20:39) Desvio condicional Se AC >= 0 então desvia para M(X,0:19) Modificação de endereço Anderson Moreira Descrição Busca a próxima instrução da metade esquerda de M(X) Busca a próxima instrução da metade direita de M(X) Se o número de AC não for negativo busca a próxima instrução na metade esquerda de M(X) Se AC >= 0 então desvia para M(X,20:39) Se o número de AC não for negativo busca a próxima instrução na metade direita de M(X) M(X,8:19) AC(28:39) Substitui o campo de endereço à esquerda de M(X) pelos 12 bits mais a direita de AC M(X,28:39) AC(8:19) Substitui o campo de endereço à direita de M(X) pelos 12 bits mais a direita de AC AC -|M(X)| Transfere -|M(X)| para AC Arquitetura de Computadores 46 Conjunto de Instruções Tipo de Instrução Aritmética Anderson Moreira Operação Descrição ACAC+M(X) Soma M(X) a AC; resultado em AC ACAC+|M(X)| Soma |M(X)| a AC; resultado em AC ACAC-M(X) Subtrai M(X) de AC; resultado em AC ACAC-|M(X)| Subtrai |M(X)| de AC; resultado em AC AC,MQMQ*M(X) Multiplica M(X) por MQ; colocando os bits mais significativos do resultado em AC e os menos significativos em MQ MQ,ACAC%M(X) Divide AC por M(X); colocando o quociente em MQ e o resto em AC ACACx2 Multiplica AC por 2; ou desloca AC um bit a esquerda ACAC/2 Divide AC por 2; ou desloca AC um bit a direita Arquitetura de Computadores 47 Instruções Assembly LOAD B mem - carrega o registrador B do endereçamento de memória CON B con - carrega um valor constante no registrador B SAVE B mem - armazena o registrador B no endereçamento de memória ADD B A - soma A com B e armazena o resultado em mem SUB B A - subtrai A de B e armazena o resultado em mem MUL B A - multiplica A por B e armazena o resulado em mem DIV A B - divide A por B e armazena o resultado em mem COM A B - compara A com B e armazena o resultado no registrador teste JUMP addr - desvia para um endereçamento JEQ addr - desvia, se igual, para o endereçamento JNEQ addr - desvia, se não igual, para o endereçamento JG addr - desvia, se maior que, para o endereçamento JGE addr - desvia, se maior que ou igual, para o endereçamento JL addr - desvia, se menor que, para o endereçamento JLE addr - desvia, se menor que ou igual, para o endereçamento STOP - pára a execução Anderson Moreira Arquitetura de Computadores 48 Exemplo de como funciona o Assembly a=1; f=1; n=<entrada do usuário> while (a <= n) { f = f * a; a = a + 1; } Se n fosse igual a cinco, f do programa seria quanto? Anderson Moreira Arquitetura de Computadores 49 Linguagem Assembly Um compilador C traduz o código em C para a linguagem assembly. Se considerarmos que a RAM começa no endereço 128 deste processador e a ROM (que contém o programa em linguagem assembly) começa no endereçamento 0. Anderson Moreira Arquitetura de Computadores 50 Como funciona em Assembly // Suponha que a está no ender. 128 // Suponha que f está no ender. 129 0 CON B 1 // a=1; 1 SAVE B 128 2 CON B 1 // f=1; 3 SAVE B 129 4 LOAD A 128 // if a > 5 desvia para 17 5 CON B 5 6 COM A B 7 JG 17 8 LOAD A 129 // f=f*a; Anderson Moreira 9 LOAD B 128 10 MUL A B 11 SAVE mem 129 12 LOAD A 128 // a=a+1; 13 CON B 1 14 ADD A B 15 SAVE mem 128 16 JUMP 4 // volta para o if 17 STOP Arquitetura de Computadores 51 Pergunta "Como essas instruções vão ser exibidas na ROM?" Cada uma dessas instruções de linguagem assembly tem de ser representadas por um número binário. Para simplificar as coisas, vamos supor que cada instrução de linguagem assembly equivale a um único número. Anderson Moreira Arquitetura de Computadores 52 Associação LOAD A - 1 LOAD B - 2 CON B - 3 SAVE B - 4 SAVE C mem - 5 ADD B A - 6 SUB B A - 7 MUL A B - 8 DIV A B - 9 COM - 10 JUMP addr - 11 JEQ addr - 12 JNEQ addr - 13 JG addr - 14 JGE addr - 15 JL addr - 16 JLE addr - 17 STOP - 18 Esses números são conhecidos como opcodes (códigos de operação já visto na aula passada). Como estaria o programa na ROM??? Anderson Moreira Arquitetura de Computadores 53 Programa na ROM // Suponha que a está no endereçamento 128 // Suponha que f está no endereçamento 129 Addr opcode/value 0 3 // CONB 1 11 2 4 // SAVEB 128 3 128 4 3 // CONB 1 51 6 4 // SAVEB 129 7 129 8 1 // LOADA 128 9 128 10 3 // CONB 5 11 5 12 10 // COM 13 14 // JG 17 Anderson Moreira 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 31 1 // LOADA 129 129 2 // LOADB 128 128 8 // MUL 5 // SAVEC 129 129 1 // LOADA 128 128 3 // CONB 1 1 6 // ADD 5 // SAVEC 128 128 11 // JUMP 4 8 18 // STOP Arquitetura de Computadores 54 Conclusão sobre o programa assembly Sete linhas de código em C = 18 linhas de linguagem assembly = 32 bytes na ROM. Anderson Moreira Arquitetura de Computadores 55 Otimizando o programa original program 0: int x, y; 1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x != y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; } replace the subtraction operation(s) with modulo operation in order to speed up program optimized program 0: int x, y, r; 1: while (1) { 2: while (!go_i); // x must be the larger number 3: if (x_i >= y_i) { 4: x=x_i; 5: y=y_i; } 6: else { 7: x=y_i; 8: y=x_i; } 9: while (y != 0) { 10: r = x % y; 11: x = y; 12: y = r; } 13: d_o = x; } GCD(42, 8) - 9 iterations to complete the loop GCD(42,8) - 3 iterations to complete the loop x and y values evaluated as follows : (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2). x and y values evaluated as follows: (42, 8), (8,2), (2,0) Anderson Moreira Arquitetura de Computadores Arquitetura Básica Unidade de Controle e de Processamento; Processor Control unit Diferenças Datapath ULA Unidade de Processamento é genérica Unidade de controle não armazena algoritmo (memória) Controller Control /Status Registers PC IR E/S Memory Anderson Moreira Arquitetura de Computadores 57 Operações de Processamento Load Cópia de memória em registrador Processor Control unit Datapath ULA Controller • Operação na ULA • Valores em Registradores são processados pela ULA e armazenados em registrador • Armazena +1 Control /Status Registers 10 PC • Cópia de registrador em memória 11 IR E/S Memory ... 10 11 ... Anderson Moreira Arquitetura de Computadores 58 Unidade de Controle Unidade de Controle: configura operações do datapath Seqüência de operações (instruções) desejadas armazenadas na memória (programa) Processor Control unit Datapath Ciclo de Instrução – várias sub-operações (cada uma em um ciclo de relógio) ULA Busca: armazena instrução em IR, atualiza PC Controller Decodificação: determina o que a instrução significa Busca de Operandos: cópia de dados da memória para registradores na unid. Processamento Execução: Processa dados na ULA Armazena resultados: escreve resultados de registrador na memória Control /Status Registers PC IR R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 59 Sub-operações da Unidade de Controle Busca Cópia da instrução em IR PC: Contador de programa aponta para próxima instrução IR: armazena instrução que foi buscada Processor Control unit Datapath ULA Controller Control /Status Registers PC 100 IR load R0, M[500] R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 60 Sub-operações da Unidade de Controle Decodificação Determina significado da instrução Processor Control unit Datapath ULA Controller Control /Status Registers PC 100 IR load R0, M[500] R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 61 Sub-operações da Unidade de Controle Busca de Operandos Cópia de dados da memória para registradores no Processor Control unit Datapath ULA datapath Controller Control /Status Registers 10 PC 100 IR load R0, M[500] R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 62 Sub-operações da Unidade de Controle Execução Processa dados na ULA (Para esta instrução em particular nada acontece durante esta sub-operação) Processor Control unit Datapath ULA Controller Control /Status Registers 10 PC 100 IR load R0, M[500] R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 63 Sub-operações da Unidade de Controle Armazena resultados Escreve dado de registrador em memória (Para esta instrução em particular nada acontece durante esta sub-operação) Processor Control unit Datapath ULA Controller Control /Status Registers 10 PC 100 IR load R0, M[500] R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 64 Ciclos de uma Instrução PC=100 Fetch Decode Fetch Exec. ops Processor Store results Control unit Datapath ULA clk Controller Control /Status Registers 10 PC 100 IR load R0, M[500] R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory R1 ... 500 501 10 ... 65 Ciclos de uma Instrução PC=100 Fetch Decode Fetch Exec. ops Processor Store results Control unit Datapath ULA clk Controller PC=101 Fetch Decode Fetch Exec. ops +1 Control /Status Registers Store results clk 10 PC 101 IR inc R1, R0 R0 E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 Anderson Moreira Arquitetura de Computadores Memory 11 R1 ... 500 501 10 ... 66 Ciclos de uma Instrução PC=100 Fetch Decode Fetch Exec. ops Processor Store results Control unit Datapath ULA clk Controller PC=101 Fetch Decode Fetch Exec. ops Control /Status Registers Store results clk 10 PC 102 PC=102 Fetch Decode Fetch Exec. ops IR store M[501], R1 Store results E/S 100 load R0, M[500] 101 inc R1, R0 102 store M[501], R1 clk Anderson Moreira R0 Arquitetura de Computadores Memory 11 R1 ... 500 10 501 11 ... 67 Considerações da Arquitetura Processador de N-bits ULA, registradores, barramento, interface de memória N-bits Comum em aplic. emb: 8-bit, 16-bit, 32-bit Comum em Desktop/servidores : 32 ou 64 bit Processor Control unit ULA Controller Control /Status Registers PC Tamanho do PC determina espaço de endereçamento Anderson Moreira Datapath Arquitetura de Computadores IR E/S Memory 68 Considerações da Arquitetura Freqüência do Clock Deve ser maior que o maior retardo de carregamento de registrador Acesso à memória possui o maior retardo Processor Control unit Datapath ULA Controller Control /Status Registers PC IR E/S Memory Anderson Moreira Arquitetura de Computadores 69 Dúvidas Anderson Moreira Arquitetura de Computadores 70