Arquitetura: características gerais

Documentos relacionados
O Computador Neander Neander - Computador Hipotético Didático

A Arquitetura: conjunto de instruções

ção de Computadores I

Disciplina de Organização de Computadores I

Disciplina de. Organização de Computadores Digitais

ção de Computadores I

Disciplina de Arquitetura de Computadores

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

Disciplina de. Organização de Computadores Digitais

Disciplina de. Organização de Computadores Digitais

Disciplina de Arquitetura de Computadores

Neander - características

Esta pseudomáquina foi criada em homenagem ao homem de Neandertal, o antecessor do homo sapiens.

Disciplina de Organização de Computadores I

Instruções de Máquina

Linguagem de Montagem do NeanderX

ORGANIZAÇÃO DE COMPUTADORES

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

2. A influência do tamanho da palavra

Primeiro Trabalho de POO Emulador para o Processador Winter

Unidade de Controle. UC - Introdução

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

2. A influência do tamanho da palavra

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

Processador. Processador

SSC510 Arquitetura de Computadores 1ª AULA

Aula 14 Funcionamento de Processadores (Visão específica)

Organização de Computadores

Computador Cleópatra

Conjunto de Instruções

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Organização e Projeto de Computadores

Organização de Computadores 1

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Unidade Central de Processamento UCP (CPU)

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

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

NEANDERWIN - Resumo operacional

SSC0112 Organização de Computadores Digitais I

Conceitos Básicos Processador

Tiago Alves de Oliviera

Solução Lista de Exercícios Processadores

RELOGIO MEMÓRIA USO DA NUMERAÇÃO BINÁRIA. 02. Explique a função do barramento de endereços no Modelo Barramento de Sistemas.

Cesar - características CESAR. Registradores. Modos de endereçamento. Endereçamento de memória. Modo Registrador. (As bases da civilização atual)

Instruções. Maicon A. Sartin

Estrutura da CPU Organização de registradores Ciclo de instrução

PSI3441 Arquitetura de Sistemas Embarcados

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

Organização de Computadores

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

III.2 - Princípios de Arquitetura

Arquitetura de Computadores Aula 10 - Processadores

LISTA DE EXERCÍCIOS - Nro. 01

Disciplina: Arquitetura de Computadores

Infra-estrutura de Hardware

SSC0114 Arquitetura de Computadores

Arquiteturas de Computadores

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

SimuS. Gabriel P. Silva. José Antonio Borges. Um Simulador Didático para o Ensino de Arquitetura de Computadores DCC-IM/UFRJ NCE/UFRJ

UCP: Construindo um Caminho de Dados (Parte I)

ção de Computadores II

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

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

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

William Stallings Computer Organization and Architecture

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

PSI3441 Arquitetura de Sistemas Embarcados

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

UNIDADE DE CONTROLE (IMPLEMENTAÇÃO POR HARDWARE) Adão de Melo Neto

Estrutura Básica de um Computador

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

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

Computador Cleópatra

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

Relembrando desempenho...

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

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

CONJUNTO DE INSTRUÇÕES

Relembrando desempenho...

Célula, Palavra, Ciclo de Instruções e Lógica Temporizada

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

lw, sw add, sub, and, or, slt beq, j

UNIDADE CENTRAL DE PROCESSAMENTO

William Stallings Arquitetura e Organização de Computadores 8 a Edição

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

a) Obtenha a tabela verdade das operações com 01 bit

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

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

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

Sistemas Digitais Transferências entre Registradores

Nível da Microarquitetura

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

Infra-estrutura de Hardware

UCP: Caminho de Dados (Parte II)

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

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Transcrição:

Neander - Computador Hipotético Didático [Weber 2001] Fundamentos de Arquitetura de Computadores. Raul Weber - Ed. Sagra. Site - ftp://ftp.inf.ufrgs.br/pub/inf107/ Arquitetura: características gerais Largura de dados e ereços de 8 bits Dados representados em complemento de 2 1 acumulador de 8 bits (AC) 1 apontador de programa de 8 bits () 1 registrador de estado com 2 códigos de condição: negativo (N) e zero (Z) 1 modo de ereçamento:. direto a memória * Esta pseudo-máquina foi criada em homenagem ao homem de Neanderthal, o antecessor do Homo Sapiens. :-) * Computadores e Simuladores didáticos criados a partir da série iniciada pelo Neander: Neander, Ahmes, Ramses e Cesar Simuladores Neander, Ahmes, Daedalus (Multi-Assembler Ahmes, Ramses e Cesar) 1

Organização: alguns elementos necessários Um registrador de 8 bits para servir de acumulador Um registrador de 8 bits para o (registradorcontador) Dois flip-flops: um para o código de condição N e outro para Z Uma memória de 256 posições (ereços) x 8 bits Neander - Instruction Set Arquitetura: conjunto de instruções código instrução comentário 0000 NOP Nenhuma operação 0001 STA MEM() AC 0010 LDA AC MEM() 0011 ADD AC MEM() + AC 0100 OR AC MEM() OR AC 0101 AND AC MEM() AND AC 0110 NOT AC NOT AC 1000 JMP 1001 JN IF N=1 THEN 1010 JZ IF Z=1 THEN 1111 HLT pára processamento 2

Arquitetura: formato das instruções As instruções do Neander possuem um ou dois bytes (ocupam uma ou duas posições de memória) Instruções com um byte: NOP, NOT código da oper. don t care Instruções com dois bytes: STA, LDA, ADD, OR, AND, JMP, JN, JZ código da oper. don t care ereço direto Arquitetura: conjunto de instruções código instrução comentário 0000 NOP Nenhuma operação 0001 STA MEM() AC 0010 LDA AC MEM() 0011 ADD AC MEM() + AC 0100 OR AC MEM() OR AC 0101 AND AC MEM() AND AC 0110 NOT AC NOT AC 1000 JMP 1001 JN IF N=1 THEN 1010 JZ IF Z=1 THEN 1111 HLT pára processamento Instruções com um byte: NOP, NOT código da oper. don t care Instruções com dois bytes: STA, LDA, ADD, OR, AND, JMP, JN, JZ código da oper. ereço direto don t care 3

Arquitetura: o ciclo de busca (fetch) Busca instrução Decodifica instrução Executa/ Busca operandos Arquitetura: o ciclo de execução A fase de busca: é igual para todas as instruções RI MEM() Novo elemento é necessário: o registrador de instrução (RI) MEM() corresponde a um acesso à memória, usando o conteúdo do como fonte do ereço 4

Instrução NOP (nenhuma operação) Simbólico: NOP RT: - NOP Don t care RI MEM() nenhuma operação As transferências indicam quais caminhos de dados devem existir, mas não indicam os caminhos físicos reais entre os elementos (registradores e ULA) Flags: N e Z não são afetados Código Binário: 0000 Ciclos de Clock:... Instrução STA (armazena acumulador) Simbólico: STA RT: MEM() AC STA Don t care RI MEM() MEM() MEM() AC 5

Instrução LDA (carrega acumulador) Simbólico: LDA RT: AC MEM() LDA Don t care RI MEM() MEM() AC MEM(); atualiza N e Z Instrução ADD (soma) Simbólico: ADD RT: AC MEM() + AC ADD Don t care RI MEM() MEM() AC AC + MEM(); atualiza N e Z 6

Instrução OR ( ou lógico, bit a bit) Simbólico: OR RT: AC MEM() OR AC OR Don t care RI MEM() MEM() AC AC OR MEM(); atualiza N e Z Instrução AND ( e lógico, bit a bit) Simbólico: AND RT: AC MEM() AND AC AND Don t care RI MEM() MEM() AC AC AND MEM(); atualiza N e Z 7

Instrução NOT (complementa acumulador) Simbólico: NOT RT: AC NOT AC NOT Don t care RI MEM() AC NOT(AC); atualiza N e Z Instrução JMP (desvio incondicional - jump) Simbólico: JMP RT: JMP Don t care RI MEM() MEM() 8

Instrução JN (desvio condicional - jump on negative) Simbólico: JN RT: IF N = 1 THEN JN Don t care Se N=1 (desvio ocorre) Se N=0 (desvio não ocorre) RI MEM() MEM() RI MEM() MEM() a rigor, desnecessário Instrução JZ (desvio condicional - jump on zero) Simbólico: JZ RT: IF Z = 1 THEN JZ Don t care Se Z=1 (desvio ocorre) Se Z=0 (desvio não ocorre) RI MEM() MEM() RI MEM() MEM() a rigor, desnecessário 9

Instrução HLT (término de execução - halt) Simbólico: HLT RT: -- HLT Don t care RI MEM() parar o processamento Organização do Sistema de Memória R E M MEM read write RDM 10

Arquitetura/Organização Operações com a memória x MEM(y) descreve uma leitura da memória, que é realizada pelos seguintes passos: 1. REM y copia y (que é um ereço) para o REM 2. Read ativação de uma operação de leitura da memória 3. x RDM copia o conteúdo de RDM para x REM é o registrador de ereços da memória RDM é o registrador de dados da memória Arquitetura/Organização Operações com a memória MEM(y) x descreve uma escrita da memória, que é realizada pelos seguintes passos: 1. REM y copia y (que é um ereço) para o REM 2. RDM x copia x (que é um dado) para o RDM 3. write ativação de uma operação de escrita na memória 11

Arquitetura/Organização Operações com a memória Observações (1) Após a leitura do, seu conteúdo deve ser do, para apontar para a próxima posição O incremento do pode ser feito a qualquer instante após a transferência do para o REM O incremento do pode ser feito em paralelo com outras operações Arquitetura/Organização Operações com a memória Observações (2) Um desvio condicional que não se realiza não necessita ler o valor do ereço de desvio Ou seja, basta r o 12

Arquitetura/Organização Então, detalhando mais as transferências entre registradores Instrução NOP (nenhuma operação) Simbólico: NOP RT: - NOP Don t care Read; nenhuma operação 13

Instrução STA (armazena acumulador) Simbólico: STA RT: MEM() AC Read; Read; REM RDM RDM AC Write STA Don t care Instrução LDA (carrega acumulador) Simbólico: LDA RT: AC MEM() Read; Read; REM RDM Read AC RDM; atualiza N e Z LDA Don t care 14

Instrução ADD (soma) Simbólico: ADD RT: AC MEM() + AC ADD Don t care Read; Read; REM RDM Read AC AC + RDM; atualiza N e Z Instrução OR ( ou lógico, bit a bit) Simbólico: OR RT: AC MEM() OR AC OR Don t care Read; Read; REM RDM Read AC AC OR RDM; atualiza N e Z 15

Instrução AND ( e lógico, bit a bit) Simbólico: AND RT: AC MEM() AND AC AND Don t care Read; Read; REM RDM Read AC AC AND RDM; atualiza N e Z Instrução NOT (complementa acumulador) Simbólico: NOT RT: AC NOT AC NOT Don t care Read; AC NOT(AC); atualiza N e Z 16

Instrução JMP (desvio incondicional - jump) Simbólico: JMP RT: JMP Don t care Read; Read RDM Instrução JN (desvio condicional - jump on negative) Simbólico: JN RT: IF N = 1 THEN JN Don t care Se N=1 (desvio ocorre) Read; Read RDM Se N=0 (desvio não ocorre) Read; 17

Instrução JZ (desvio condicional - jump on zero) Simbólico: JZ RT: IF Z = 1 THEN JZ Don t care Se Z=1 (desvio ocorre) Read; Read RDM Se Z=0 (desvio não ocorre) Read; Instrução HLT (término de execução - halt) Simbólico: HLT RT: -- HLT Don t care Read; parar o processamento 18

Neander - Parte II: Arquitetura Interna Arquitetura: conjunto de instruções código instrução comentário 0000 NOP Nenhuma operação 0001 STA MEM() AC 0010 LDA AC MEM() 0011 ADD AC MEM() + AC 0100 OR AC MEM() OR AC 0101 AND AC MEM() AND AC 0110 NOT AC NOT AC 1000 JMP 1001 JN IF N=1 THEN 1010 JZ IF Z=1 THEN 1111 HLT pára processamento Organização: transferências necessárias Analisando todas as descrições RT, a agrupando pelo registrador destino, tem-se: RDM AC Write Read AC RDM; atualiza N e Z AC AC + RDM; atualiza N e Z AC AC OR RDM; atualiza N e Z AC AC AND RDM; atualiza N e Z AC NOT(AC); atualiza N e Z RDM REM RDM 19

Organização: registradores AC: um registrador de 8 bits : um registrador de 8 bits (registrador-contador) RI: um registrador de 4 bits (ou 8) RDM: um registrador de 8 bits (largura do dado) REM: um registrador de 8 bits (largura do ereço) N: um flip-flop para o código de condição N Z: um flip-flop para o código de condição Z Uma memória de 256 posições (ereços) x 8 bits Organização do Sistema de Memória R E M MEM read write Associados à Memória: - RDM (dados) - REM (ereços) - sinal de escrita (write) - sinal de leitura (read) cargarem RDM cargardm Cada registrador é controlado por um sinal de carga 20

Organização da Unid. Aritmética e Lógica Associados à UAL: - 4 operações (ADD, AND, OR, NOT) - sinal de controle (seleção) - sinais de condição (N,Z) selual X UAL Y carganz N Z Flip-Flops devem ter sinal de carga Organização do Registrador de Instrução Associados ao Reg. de Instruções (4 ou 8 bits??): - Decodificador (4 bits para 16 instruções) - sinais de condição (N,Z) (para JN e JZ) - registrador deve ter sinal de carga opcode don t care cargari carganz N Z DECOD. Unidade de Controle sinais de controle 21

Operações na UAL R E M MEM read write cargarem RDM cargardm cargaac AC selual X UAL Y carganz N Z AC AC + RDM; atualiza N e Z AC AC OR RDM; atualiza N e Z AC AC AND RDM; atualiza N e Z AC NOT(AC); atualiza N e Z Dúvida: AC RDM; atualiza N e Z (via UAL) Situação até aqui R E M MEM read write cargarem RDM cargardm cargaac selual AC X UAL Y carganz N Z opcode don t care DECOD. Unidade de Controle cargari Sinais de Controle RDM AC Write Read AC RDM; atualiza N e Z AC AC + RDM; atualiza N e Z AC AC OR RDM; at. N e Z AC AC AND RDM; at. N e Z sinais de controle AC NOT(AC); atualiza N e Z RDM REM RDM 22

Acrescentado Escrita do AC R E M MEM read write cargarem RDM cargardm cargaac selual AC X UAL Y carganz N Z opcode don t care DECOD. Unidade de Controle cargari Sinais de Controle RDM AC Write Read AC RDM; atualiza N e Z AC AC + RDM; atualiza N e Z AC AC OR RDM; at. N e Z AC AC AND RDM; at. N e Z sinais de controle AC NOT(AC); atualiza N e Z RDM REM RDM Acrescentado Program Counter () O incremento do pode ser feito: Por meio de um somador dedicado Usando a ULA Por meio de um registradorcontador 23

Acrescentado Program Counter () R E M MEM read write carga cargarem RDM cargardm cargaac selual AC X UAL Y carganz N Z opcode don t care DECOD. Unidade de Controle cargari Sinais de Controle RDM AC Write Read AC RDM; atualiza N e Z AC AC + RDM; atualiza N e Z AC AC OR RDM; at. N e Z AC AC AND RDM; at. N e Z sinais de controle AC NOT(AC); atualiza N e Z RDM REM RDM Valores para o REM Existem duas transferências para o REM REM RDM O único registrador que recebe dados de duas fontes é o REM Para solucionar este conflito usa-se um multiplexador 24

Organização final sel M U X R E M MEM read write carga cargarem RDM cargardm cargaac AC selual X UAL Y carganz N Z opcode don t care DECOD. cargari Unidade de Controle sinais de controle A Organização: sinais de controle para cada transferência REM RDM RDM AC Transferência AC RDM; atualiza N e Z AC AC + RDM; atualiza N e Z AC AC AND RDM; atualiza N e Z AC AC OR RDM; atualiza N e Z AC NOT(AC); atualiza N e Z RDM sel=0, cargarem cargari sel=1, cargarem cargardm Sinais de controle selual(y), cargaac, carganz selual(add), cargaac, carganz selual(and), cargaac, carganz selual(or), cargaac, carganz selual(not), cargaac, carganz carga 25

Temporização dos sinais de controle (parte 1) tempo STA LDA ADD OR AND NOT t0 sel=0, sel=0, sel=0, sel=0, sel=0, sel=0, t1 t2 carga RI carga RI carga RI carga RI carga RI carga RI t3 sel=0, sel=0, sel=0, sel=0, sel=0, t4 t5 sel=1, sel=1, sel=1, sel=1, sel=1, t6 carga RDM Read Read Read Read t7 Write, goto t0 UAL(Y), carga AC, carga NZ, goto t0 UAL(ADD), carga AC, carga NZ, goto t0 UAL(OR), carga AC, carga NZ, goto t0 UAL(AND, carga AC, carga NZ, goto t0 UAL(NOT), carga AC, carga NZ, goto t0 Temporização dos sinais de controle (parte 2) tempo JMP JN, N=1 JN, N=0 JZ, Z=1 JZ, Z=0 NOP HLT t0 sel=0, sel=0, sel=0, sel=0, sel=0, sel=0, sel=0, t1 t2 carga RI carga RI carga RI carga RI carga RI carga RI carga RI t3 sel=0, sel=0,, goto t0 t4 Read Read Read sel=0,, goto t0 goto t0 Halt t5 carga, goto t0 t6 t7 carga, goto t0 carga, goto t0 26

Gerador dos sinais de temporização Clock HLT goto t 0 contador t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 Expressões booleanas dos sinais de controle = t0 + t3.(sta+lda+add+or+and+jmp+jn.n+jz.z + t5.(sta+lda+add+or+and) = t1 + t4.(sta+lda+add+or+and) + t3.(jn.n + JZ.Z ) carga RI = t2 sel = t5.(sta+lda+add+or+and) carga RDM = t6.sta Read = t1 + t4.(sta+lda+add+or+and+jmp+jn.n+jz.z) + t6.(lda+add+or+and) Write = t7.sta UAL(Y) = t7.lda UAL(ADD) = t7.add UAL(OR) = t7.or UAL(AND) = t7.and UAL(NOT) = t3.not carga AC = t7.(lda+add+or+and) + t3.not carga NZ = t7.(lda+add+or+and) + t3.not = carga AC carga = t5.(jmp+jn.n+jz.z) goto t0 = t7.(sta+lda+add+or+and) + t3.(nop+not+jn.n +JZ.Z ) + t5.(jmp+jn.n+jz.z) 27

Próximos passos... Implementação de um Simulador Programação em Códigos Neander Simulação E por que não... Implementação do Neander em Hardware! > Hardware Reconfigurável FPGA :-) Material baseado nos slides originais sobre o Neander disponíveis no site - ftp://ftp.inf.ufrgs.br/pub/inf107/ 28