Aula 9 Componentes do Computador e modelo de Von Neumann

Documentos relacionados
III.2 - Princípios de Arquitetura

Unidade de Controle. UC - Introdução

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

SSC510 Arquitetura de Computadores 1ª AULA

Sistemas Operacionais. Conceitos de Hardware

Organização e Arquitetura de Computadores INTRODUÇÃO

Evolução dos computadores

Universidade de Brasília Histórico e Introdução

Histórico e Introdução

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Solução Lista de Exercícios Processadores

Prof. Leonardo Augusto Casillo

UNIDADE CENTRAL DE PROCESSAMENTO

Unidade Central de Processamento UCP (CPU)

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

ARQUITETURA DE COMPUTADORES

2. A influência do tamanho da palavra

Introdução à Computação: Arquitetura von Neumann

Organização e Arquitetura de Computadores I

2. A influência do tamanho da palavra

Processador. Processador

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Disciplina: Arquitetura de Computadores

Componentes do Computador e. aula 3. Profa. Débora Matos

SSC0112 Organização de Computadores Digitais I

Elementos Físicos do SC e a Classificação de Arquiteturas

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Disciplina de. Organização de Computadores Digitais

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Disciplina de. Organização de Computadores Digitais

Máquinas Multiníveis Aula 04. Prof. Jadir Eduardo Souza Lucas Universidade Federal do Espírito Santo Departamento de Informática

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Introdução a Arquitetura e Organização de Computadores. Stallings: Cap.1 e 2, Monteiro: Cap. 1, Tanenbaum: Cap. 1. Prof. Alexandre Beletti Ferreira

COMPUTADOR. Adão de Melo Neto

Projetos Digitais e Microprocessadores 1 o Semestre de 2005 Prof. Luis Allan Künzle Prova Final 05/07/2005 Prova sem consulta.

Sistemas Operacionais

Prof. Sandro Wambier

Organização de Sistemas de Computadores

18/10/2010. Unidade de Controle Controle. UC Microprogramada

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Aula 17: Organização de Computadores

Algoritmos Computacionais

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

CONJUNTO DE INSTRUÇÕES

14/3/2016. Prof. Evandro L. L. Rodrigues

Arquitetura de Computadores. Ciclo de Busca e Execução

Arquitetura e Organização de Computadores

Sistemas Operacionais. Visão Geral

sumário 1 bases numéricas 1 2 sistemas de numeração em computação introdução representação de números... 3

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Projeto de Processadores Programáveis

PSI3441 Arquitetura de Sistemas Embarcados

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Sistemas Operacionais

4. Modelo de Programação do DLX Introdução

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

INTRODUÇÃO A ARQUITETURA DE COMPUTADORES FELIPE G. TORRES

Prof. Gustavo Oliveira Cavalcanti

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

2. Conceitos Básicos. Introdução à Ciência da Computação.

SSC304 Introdução à Programação Para Engenharias

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

Processador: Conceitos Básicos e Componentes

Introdução Computador Hardware Histórico e Evolução Linguagem de Programação Princípios Básicos

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Organização de Computadores 1

Infraestrutura de Hardware. Funcionamento de um Computador

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

COMPUTADOR 2. Professor Adão de Melo Neto

Componentes do Computador

Unidade I. Organização de Computadores. Prof. Renato Lellis

ENIAC Primeiro computador de Propósito Geral. William Stallings Computer Organization and Architecture 6 th Edition (2003)

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Organização de computadores. Aula 05

Arquitetura de Um Computador

Unidade I ORGANIZAÇÃO DE. Prof. Antônio Palmeira

Introdução ao Fortran 90

Conjunto de Instruções e Modelos de Arquiteturas

Unidade Central de Processamento (CPU) Processador. Bernardo Gonçalves Introdução ao Computador 2008/01

Introdução à Informática

Organização de Sistemas Computacionais Processadores: Organização da CPU

Instruções de Máquina

Primeiro Trabalho de POO Emulador para o Processador Winter

Estrutura Básica de um Computador

Grupo I Resumo Histórico

Organização de Computadores (revisão) André Tavares da Silva

Componentes de um Computador Típico

ção de Computadores I

Organização de Computadores

Sistemas Operacionais Aula 2

PSI3441 Arquitetura de Sistemas Embarcados

NEANDERWIN. Algumas características do processador Neander são:

Transcrição:

Aula 9 Componentes do Computador e modelo de Von Neumann Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br 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 1642 Pascal: Calculadora 1671 Leibnitz: Calculadora 1827 Babbage: Máquina diferencial 1834 Babbage: Máquina analítica Capacidade Adição e subtração Adição, subtração, multiplicação e divisão Avaliação polinomial por diferenças finitas Computador de propósito geral 1941 Zuse: Z3 Computador de propósito geral 1944 Aiken: Harward Mark I Computador de propósito geral Inovações Tecnológicas Transferência automática de vai - um; representação em complemento Mecanismo para multiplicação e divisão Operação automática com diversos passos Mecanismo automático de controle de seqüência (programa) Primeiros computadores de propósitos gerais operacionais 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. Leitora de cartões Impressoras e cartões perfurados multiplicador Divisor e Raiz quadrada Tabelas de funções Acumuladores (registradores) Unidade mestre De programação Anderson Moreira Arquitetura de Computadores

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 PDP- 8 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 lixo entra, lixo sai Anderson Moreira Arquitetura de Computadores 11

Talvez uma melhor questão a ser feita neste ponto seja: Como um computador consegue executar um conjunto de instruções? 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 Fetch ops. Execute Store res. 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 memória read 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 Processor Processor Harvard Acesso simultâneo à dado e instruções Program memory Data memory Memory (program and data) Harvard Princeton Anderson Moreira Arquitetura de Computadores 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 A Anderson Moreira 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 Memória Principal IR Circuitos de controle AR Unidade de controle de programa Sinais de controle endereços Anderson Moreira 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 AC M(100) Comentários 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 2 12 = 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 19 20 28 39 Cód. operação endereço Cód. operação endereço Instrução posicionada à esquerda Instrução posicionada à direita Anderson Moreira Arquitetura de Computadores 44

Conjunto de Instruções Tipo de Instrução Operação Descrição Transferência de dados AC MQ MQ M(X) M(X) AC AC M(X) AC -M(X) AC M(X) AC - M(X) Transfere conteúdo do reg. MQ para o acumulador AC Transfere conteúdo da posição X de memória para MQ Transfere conteúdo de AC para posição de memória X Transfere o conteúdo da posição de memória X para AC Transfere M(X) para AC Transfere o valor absoluto de M(X) para AC Transfere - M(X) para AC Anderson Moreira Arquitetura de Computadores 45

Conjunto de Instruções Tipo de Instrução Operação Descrição Desvio incondicionalvai para M(X, 0:19) Busca a próxima instrução da metade esquerda de M(X) Vai para M(X, 20:39) Busca a próxima instrução da metade direita de M(X) Desvio condicional Modificação de endereço Se AC >= 0 então desvia para M(X,0:19) Se AC >= 0 então desvia para M(X,20:39) M(X,8:19) AC(28:39) M(X,28:39) AC(8:19) Se o número de AC não for negativo busca a próxima instrução na metade esquerda de M(X) Se o número de AC não for negativo busca a próxima instrução na metade direita de M(X) Substitui o campo de endereço à esquerda de M(X) pelos 12 bits mais a direita de AC 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 Anderson Moreira Arquitetura de Computadores 46

Conjunto de Instruções Tipo de Instrução Operação Descrição Aritmética AC AC+M(X) Soma M(X) a AC; resultado em AC AC AC+ M(X) Soma M(X) a AC; resultado em AC AC AC-M(X) Subtrai M(X) de AC; resultado em AC AC AC- M(X) Subtrai M(X) de AC; resultado em AC AC,MQ MQ*M(X) MQ,AC AC%M(X) AC ACx2 AC AC/2 Multiplica M(X) por MQ; colocando os bits mais significativos do resultado em AC e os menos significativos em MQ Divide AC por M(X); colocando o quociente em MQ e o resto em AC Multiplica AC por 2; ou desloca AC um bit a esquerda Divide AC por 2; ou desloca AC um bit a direita Anderson Moreira 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; 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 Anderson Moreira 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 1 1 2 4 // SAVEB 128 3 128 4 3 // CONB 1 5 1 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 14 31 15 1 // LOADA 129 16 129 17 2 // LOADB 128 18 128 19 8 // MUL 20 5 // SAVEC 129 21 129 22 1 // LOADA 128 23 128 24 3 // CONB 1 25 1 26 6 // ADD 27 5 // SAVEC 128 28 128 29 11 // JUMP 4 30 8 31 18 // STOP Anderson Moreira 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; } GCD(42, 8) - 9 iterations to complete the loop replace the subtraction operation(s) with modulo operation in order to speed up program 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). 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) - 3 iterations to complete the loop 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; Control unit Processor Datapath Diferenças Unidade de Processamento é genérica Unidade de controle não armazena algoritmo (memória) Controller Control /Status ULA Registers PC IR E/S Memory Anderson Moreira Arquitetura de Computadores 57

Operações de Processamento Load Cópia de memória em registrador Control unit Processor Datapath Operação na ULA Valores em Registradores são processados pela ULA e armazenados em registrador Armazena PC Controller IR Control /Status ULA +1 Registers 10 11 Cópia de registrador em memória Memory E/S... 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) Ciclo de Instrução várias sub-operações (cada uma em um ciclo de relógio) Busca: armazena instrução em IR, atualiza PC Decodificação: determina o que a instrução significa Busca de Operandos: cópia de dados da memória para registradores na unid. Processamento Control unit Controller Processor Control /Status Datapath ULA Registers Execução: Processa dados na ULA Armazena resultados: escreve resultados de registrador na memória PC IR R0 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 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 PC Control unit 100 Controller Processor IR load R0, M[500] Control /Status R0 Datapath ULA Registers R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 60

Sub-operações da Unidade de Controle Decodificação Determina significado da instrução Control unit Controller Processor Control /Status Datapath ULA Registers PC 100 IR load R0, M[500] R0 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 61

Sub-operações da Unidade de Controle Busca de Operandos Cópia de dados da memória para registradores no datapath Control unit Controller Processor Control /Status Datapath ULA Registers PC 100 IR load R0, M[500] 10 R0 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 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) Control unit Controller Processor Control /Status Datapath ULA Registers PC 100 IR load R0, M[500] 10 R0 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 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) PC Processor Control unit Controller 100 IR load R0, M[500] Control /Status Datapath ULA Registers 10 R0 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 64

Ciclos de uma Instrução PC=100 Fetch clk Decode Fetch ops Exec. Store results Control unit Controller Processor Control /Status Datapath ULA Registers PC 100 IR load R0, M[500] 10 R0 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 65

Ciclos de uma Instrução PC=100 Fetch clk Decode Fetch ops Exec. Store results Control unit Controller Processor Control /Status Datapath ULA +1 PC=101 Fetch Decode Fetch ops Exec. Store results Registers clk PC 101 IR inc R1, R0 10 R0 11 R1 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 Memory E/S 500 501... 10... Anderson Moreira Arquitetura de Computadores 66

Ciclos de uma Instrução PC=100 Fetch clk Decode Fetch ops Exec. Store results Control unit Controller Processor Control /Status Datapath ULA PC=101 Fetch Decode Fetch ops Exec. Store results Registers clk PC 102 IR store M[501], R1 10 R0 11 R1 PC=102 Fetch clk Decode Fetch ops Exec. Store results 100 101 102 load R0, M[500] inc R1, R0 store M[501], R1 E/S Memory 500 501... 10 11... Anderson Moreira Arquitetura de Computadores 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 Tamanho do PC determina espaço de endereçamento PC Control unit Controller IR Processor Memory Control /Status E/S Datapath ULA Registers Anderson Moreira Arquitetura de Computadores 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 Control unit Controller Processor Control /Status Datapath ULA Registers PC IR E/S Memory Anderson Moreira Arquitetura de Computadores 69

Dúvidas Anderson Moreira Arquitetura de Computadores 70