70
Anderson Moreira Arquitetura de Computadores 1 Aula 9 – Componentes do Computador e modelo de Von Neumann Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm

Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Embed Size (px)

Citation preview

Page 1: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 1

Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson L. S. [email protected]

http://dase.ifpe.edu.br/~alsm

Page 2: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 2

O que fazer com essa apresentação

Page 3: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores

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

Page 4: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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

Page 5: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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 ecartões perfurados

multiplicador Divisor eRaiz quadrada Tabelas de funções Acumuladores

(registradores)

Unidade mestreDe programação

Page 6: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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á

Page 7: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores

Definições

Máquina de níveis

Utilitários

Circuitos Eletrônicos

Microprogramação

Linguagem de Máquina

Sistema Operacional

Aplicativos

Page 8: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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 OPERANDOSIsso é 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.

Page 9: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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

Page 10: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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.

Page 11: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 11

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”

Page 12: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 12

• 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.

Page 13: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 13

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.

Page 14: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 14

Tabela

Page 15: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 15

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.

Page 16: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores

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 buscaA instrução é interpretada por circuitos de decodificação que fazem com que os sinais eletrônicos sejam gerados no processador

Chamado de decodificação

Page 17: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

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 busca-decodificação-execução;

Page 18: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 18

Busca Processa Armazena

Fetch-instr. Decode

Fetch ops.

Execute

Store res.

Esquema Básico

Page 19: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 19

Dois passos:BuscarExecutar

Esquema Básico

Page 20: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 20

Elementos funcionais básicos

Computador:Composto por blocos:

MemóriaUnidades operacionaisUnidades de controleDispositivos de entrada e saída

Controle

Memória

UnidadeOperacional

Entrada/Saída

Page 21: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 21

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.

Page 22: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 22

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 resultadoElementos 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.

Page 23: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 23

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;

REM

memória

RDM

read

write

Page 24: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 24

Elementos funcionais básico - memória

REM: registrador de endereços da memóriaContém o endereço do dado a ser lido ou escrito na memória

RDM: registrador de dados da memóriaConté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;

Page 25: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores maio de 11 Slide: 25

Arquiteturas de Memória

Processor

Program memory

Data memory

Processor

Memory(program and data)

Harvard Princeton

PrincetonMenos fios

HarvardAcesso simultâneo

à dado e instruções

Page 26: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 26

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

Page 27: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 27

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;

Page 28: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 28

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:

OverflowSinalCarryZero

Page 29: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 29

Modelo estrutural ULA

Controle

Operandos

Códigos de condição

Resultado

Page 30: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 30

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

Page 31: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 31

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çãoResponsá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.

Page 32: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 32

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

Page 33: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 33

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)

Page 34: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 34

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;

Page 35: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 35

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.

Page 36: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 36

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

Page 37: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 37

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

Page 38: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores

Modelo de Von Neumann

Computador IAS

Page 39: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 39

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

Page 40: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 40

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.

Page 41: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 41

O computador IAS - Ligações

AC MQ

Circuitos lógicos-

aritiméticos

DR

IBR PC

IR AR

Circuitos de controle

Sinais de controle

Memória Principal

Equipamento de E/S

Unidade Central de Processamento

Unidade de controle de programa

Instruções e dados

endereços

Page 42: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 42

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

Page 43: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 43

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.

Page 44: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 44

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

Cód. operação

endereço Cód. operação

endereço

Instrução posicionada à esquerda Instrução posicionada à direita

0 8 19 20 28 39

Page 45: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 45

Conjunto de Instruções

Tipo de Instrução Operação Descrição

Transferência de dados

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

Page 46: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 46

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 Se AC >= 0 então desvia para M(X,0:19)

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)

Modificação de endereço

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

Page 47: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 47

Conjunto de Instruções

Tipo de Instrução Operação Descrição

Aritmética 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

Page 48: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 48

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

Page 49: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 49

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?

Page 50: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 50

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.

Page 51: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 51

Como funciona em Assembly

// Suponha que a está no ender. 128// Suponha que f está no ender. 1290 CON B 1 // a=1;1 SAVE B 1282 CON B 1 // f=1;3 SAVE B 1294 LOAD A 128 // if a > 5 desvia para 175 CON B 56 COM A B7 JG 178 LOAD A 129 // f=f*a;

9 LOAD B 12810 MUL A B11 SAVE mem 12912 LOAD A 128 // a=a+1;13 CON B 114 ADD A B15 SAVE mem 12816 JUMP 4 // volta para o if17 STOP

Page 52: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 52

Pergunta

"Como essas instruções vão ser exibidas na ROM?"

Cada uma dessas instruções de linguagem assemblytem 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.

Page 53: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 53

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???

Page 54: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 54

Programa na ROM

// Suponha que a está no endereçamento 128// Suponha que f está no endereçamento 129Addr opcode/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 17

14 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Page 55: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 55

Conclusão sobre o programa assembly

Sete linhas de código em C = 18 linhas de linguagem assembly = 32 bytes na ROM.

Page 56: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores

Otimizando o programa

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;

}

0: int x, y, r;1: while (1) {2: while (!go_i);

// x must be the larger number3: 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;

}

original program optimized program

replace the subtraction operation(s) with modulo

operation in order to speed up program

GCD(42, 8) - 9 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).

GCD(42,8) - 3 iterations to complete the loop

x and y values evaluated as follows: (42, 8), (8,2), (2,0)

Page 57: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 57

Arquitetura Básica

Unidade de Controle e de Processamento;

DiferençasUnidade de

Processamento é genérica

Unidade de controle não armazena algoritmo (memória)

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

Page 58: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 58

Operações de Processamento

LoadCópia de memória em

registrador

• Operação na ULA • Valores em

Registradores são processados pela ULA e armazenados em registrador

• Armazena• Cópia de

registrador em memória

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...

10

+1

11

11

Page 59: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 59

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

Execução: Processa dados na ULAArmazena resultados: escreve resultados

de registrador na memória

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1

Page 60: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 60

Sub-operações da Unidade de Controle

BuscaCópia da instrução

em IRPC: Contador de

programa aponta para próxima instrução

IR: armazena instrução que foi buscada

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1100 load R0, M[500]

Page 61: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 61

Sub-operações da Unidade de Controle

DecodificaçãoDetermina significado

da instrução

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1100 load R0, M[500]

Page 62: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 62

Sub-operações da Unidade de Controle

Busca de OperandosCópia de dados da

memória para registradores no datapath

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1100 load R0, M[500]

10

Page 63: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 63

Sub-operações da Unidade de Controle

ExecuçãoProcessa dados na ULA(Para esta instrução em

particular nada acontece durante esta sub-operação)

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1100 load R0, M[500]

10

Page 64: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 64

Sub-operações da Unidade de Controle

Armazena resultadosEscreve dado de

registrador em memória

(Para esta instrução em particular nada acontece durante esta sub-operação)

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1100 load R0, M[500]

10

Page 65: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 65

Ciclos de uma Instrução

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R1

PC=100

10

Fetch ops

Exec. Store results

clk

Fetch

load R0, M[500]

Decode

100

Page 66: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 66

Ciclos de uma Instrução

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R110

PC=100Fetch Decode Fetch

opsExec. Store

results

clk

PC=101

inc R1, R0

Fetch Fetch ops

+1

11

Exec. Store results

clk

101

Decode

Page 67: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 67

Ciclos de uma Instrução

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

10...

...load R0, M[500] 500

501

100inc R1, R0101

store M[501], R1102

R0 R11110

PC=100Fetch Decode Fetch

opsExec. Store

results

clk

PC=101Fetch Decode Fetch

opsExec. Store

results

clk

PC=102store M[501], R1

Fetch Fetch ops

Exec.

11

Store results

clk

Decode

102

Page 68: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 68

Considerações da Arquitetura

Processador de N-bitsULA, 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

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

Page 69: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 69

Considerações da Arquitetura

Freqüência do ClockDeve ser maior que o

maior retardo de carregamento de registrador

Acesso à memória possui o maior retardo

Processor

Control unit Datapath

ULA

Registers

IRPC

Controller

Memory

E/S

Control/Status

Page 70: Aula 9 – Componentes do Computador e modelo de Von …siep.ifpe.edu.br/anderson/arquivos/arqt_aula9_modelo_von... · Aula 9 – Componentes do Computador e modelo de Von Neumann

Anderson Moreira Arquitetura de Computadores 70

Dúvidas