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

Documentos relacionados
Arquitetura: características gerais

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 Arquitetura de Computadores

Disciplina de. Organização de Computadores Digitais

Disciplina de. Organização de Computadores Digitais

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

Linguagem de Montagem do NeanderX

Instruções de Máquina

ORGANIZAÇÃO DE COMPUTADORES

2. A influência do tamanho da palavra

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

Unidade de Controle. UC - Introdução

Primeiro Trabalho de POO Emulador para o Processador Winter

Tiago Alves de Oliviera

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:

Organização de Computadores

Processador. Processador

SSC510 Arquitetura de Computadores 1ª AULA

Conjunto de Instruções

Computador Cleópatra

SSC0112 Organização de Computadores Digitais I

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

Organização de Computadores

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

Organização e Projeto de Computadores

LISTA DE EXERCÍCIOS - Nro. 01

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

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

SSC0114 Arquitetura de Computadores

NEANDERWIN - Resumo operacional

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

Conceitos Básicos Processador

Unidade Central de Processamento UCP (CPU)

Arquitetura de Computadores Aula 10 - Processadores

PSI3441 Arquitetura de Sistemas Embarcados

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

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

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

Solução Lista de Exercícios Processadores

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

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

Infra-estrutura de Hardware

III.2 - Princípios de Arquitetura

Instruções. Maicon A. Sartin

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

Disciplina: Arquitetura de Computadores

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

Organização de Computadores 1

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander

Implementação da UCP. Construção do caminho de dados Controle Implementação monociclo. Organização de Computadores

Computador Cleópatra

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

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

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

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

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

Arquiteturas de Computadores

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

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

PSI3441 Arquitetura de Sistemas Embarcados

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

TRABALHO PRÁTICO Nro. 01 Definição de 22/08/2010 (versão 0.1)

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

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

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Estrutura Básica de um Computador

UCP: Construindo um Caminho de Dados (Parte I)

ção de Computadores II

William Stallings Computer Organization and Architecture

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

CONJUNTO DE INSTRUÇÕES

Infra-estrutura de Hardware

UCP: Caminho de Dados (Parte II)

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

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

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

Relembrando desempenho...

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

Organização de Computadores

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

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

Prof. Leonardo Augusto Casillo

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

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

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

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

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

Nível da Microarquitetura

Prof. Adilson Gonzaga

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 endereços de 8 bits Dados representados em complemento de 2 1 acumulador de 8 bits (AC) 1 apontador de programa de 8 bits (PC) 1 registrador de estado com 2 códigos de condição: negativo (N) e zero (Z) 1 modo de endereçamento: end. 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)

Organização: alguns elementos necessários Um registrador de 8 bits para servir de acumulador Um registrador de 8 bits para o PC (registradorcontador) Dois flip-flops: um para o código de condição N e outro para Z Uma memória de 256 posições (endereç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 end MEM(end) AC 0010 LDA end AC MEM(end) 0011 ADD end AC MEM(end) + AC 0100 OR end AC MEM(end) OR AC 0101 AND end AC MEM(end) AND AC 0110 NOT AC NOT AC 1000 JMP end PC end 1001 JN end IF N=1 THEN PC end 1010 JZ end IF Z=1 THEN PC end 1111 HLT pára processamento

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 7 4 3 0 código da oper. don t care Instruções com dois bytes: STA, LDA, ADD, OR, AND, JMP, JN, JZ 7 4 3 0 código da oper. don t care endereço direto

Arquitetura: conjunto de instruções código instrução comentário 0000 NOP Nenhuma operação 0001 STA end MEM(end) AC 0010 LDA end AC MEM(end) 0011 ADD end AC MEM(end) + AC 0100 OR end AC MEM(end) OR AC 0101 AND end AC MEM(end) AND AC 0110 NOT AC NOT AC 1000 JMP end PC end 1001 JN end IF N=1 THEN PC end 1010 JZ end IF Z=1 THEN PC end 1111 HLT pára processamento Instruções com um byte: NOP, NOT 7 4 3 0 código da oper. don t care Instruções com dois bytes: STA, LDA, ADD, OR, AND, JMP, JN, JZ 7 4 3 0 código da oper. endereço direto don t care

Arquitetura: o ciclo de busca (fetch) Busca instrução Decodifica instrução Executa/ Busca operandos Arquitetura: o ciclo de execução

Arquitetura/Organização: transferências entre regs. A fase de busca: é igual para todas as instruções RI MEM(PC) PC PC + 1 Novo elemento é necessário: o registrador de instrução (RI) MEM(PC) corresponde a um acesso à memória, usando o conteúdo do PC como fonte do endereço

Arquitetura/Organização: transferências entre regs. Instrução NOP (nenhuma operação) Simbólico: NOP RT: - Passos no nível RT: 7 4 3 0 NOP Don t care Busca: Execução: RI MEM(PC) PC PC + 1 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:...

Arquitetura/Organização: transferências entre regs. Instrução STA (armazena acumulador) Simbólico: STA end RT: MEM(end) AC Passos no nível RT: 7 4 3 0 STA Don t care end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 MEM(end) AC

Arquitetura/Organização: transferências entre regs. Instrução LDA (carrega acumulador) Simbólico: LDA end RT: AC MEM(end) Passos no nível RT: 7 4 3 0 LDA Don t care end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 AC MEM(end); atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução ADD (soma) Simbólico: ADD end RT: Passos no nível RT: AC MEM(end) + AC 7 4 3 0 ADD Don t care end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 AC AC + MEM(end); atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução OR ( ou lógico, bit a bit) Simbólico: OR end RT: Passos no nível RT: AC MEM(end) OR AC 7 4 3 0 OR Don t care end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 AC AC OR MEM(end); atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução AND ( e lógico, bit a bit) Simbólico: AND end RT: Passos no nível RT: AC MEM(end) AND AC 7 4 3 0 AND Don t care end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 AC AC AND MEM(end); atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução NOT (complementa acumulador) Simbólico: NOT RT: Passos no nível RT: 7 4 3 0 AC NOT AC NOT Don t care Busca: Execução: RI MEM(PC) PC PC + 1 AC NOT(AC); atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução JMP (desvio incondicional - jump) Simbólico: JMP end RT: PC end Passos no nível RT: 7 4 3 0 JMP Don t care end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC end

Arquitetura/Organização: transferências entre regs. Instrução JN (desvio condicional - jump on negative) Simbólico: JN end RT: Passos no nível RT: IF N = 1 THEN PC end 7 4 3 0 JN Don t care end Se N=1 (desvio ocorre) Se N=0 (desvio não ocorre) Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 a rigor, desnecessário

Arquitetura/Organização: transferências entre regs. Instrução JZ (desvio condicional - jump on zero) Simbólico: JZ end RT: Passos no nível RT: IF Z = 1 THEN PC end 7 4 3 0 JZ Don t care end Se Z=1 (desvio ocorre) Se Z=0 (desvio não ocorre) Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC end Busca: Execução: RI MEM(PC) PC PC + 1 end MEM(PC) PC PC + 1 a rigor, desnecessário

Arquitetura/Organização: transferências entre regs. Instrução HLT (término de execução - halt) Simbólico: HLT RT: -- Passos no nível RT: 7 4 3 0 HLT Don t care Busca: Execução: RI MEM(PC) PC PC + 1 parar o processamento

Organização do Sistema de Memória R E M MEM read write RDM

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 endereç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 endereç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 endereç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

Arquitetura/Organização Operações com a memória Observações (1) Após a leitura do PC, seu conteúdo deve ser incrementado, para apontar para a próxima posição O incremento do PC pode ser feito a qualquer instante após a transferência do PC para o REM O incremento do PC 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 endereço de desvio Ou seja, basta incrementar o PC

Arquitetura/Organização Então, detalhando mais as transferências entre registradores

Arquitetura/Organização: transferências entre regs. Instrução NOP (nenhuma operação) Simbólico: NOP RT: - Passos no nível RT: 7 4 3 0 NOP Don t care Busca: Execução: REM PC Read; PC PC + 1 RI RDM nenhuma operação

Arquitetura/Organização: transferências entre regs. Instrução STA (armazena acumulador) Simbólico: STA end RT: MEM(end) AC Passos no nível RT: Busca: Execução: REM PC Read; PC PC + 1 RI RDM REM PC Read; PC PC + 1 REM RDM RDM AC Write 7 4 3 0 STA Don t care end

Arquitetura/Organização: transferências entre regs. Instrução LDA (carrega acumulador) Simbólico: LDA end RT: AC MEM(end) Passos no nível RT: 7 4 3 0 LDA Don t care end Busca: Execução: REM PC Read; PC PC + 1 RI RDM REM PC Read; PC PC + 1 REM RDM Read AC RDM; atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução ADD (soma) Simbólico: ADD end RT: Passos no nível RT: AC MEM(end) + AC Busca: Execução: REM PC Read; PC PC + 1 RI RDM REM PC Read; PC PC + 1 REM RDM Read ADD AC AC + RDM; atualiza N e Z 7 4 3 0 Don t care end

Arquitetura/Organização: transferências entre regs. Instrução OR ( ou lógico, bit a bit) Simbólico: OR end RT: Passos no nível RT: AC MEM(end) OR AC Busca: Execução: REM PC Read; PC PC + 1 RI RDM REM PC Read; PC PC + 1 REM RDM Read 7 4 3 0 OR AC AC OR RDM; atualiza N e Z Don t care end

Arquitetura/Organização: transferências entre regs. Instrução AND ( e lógico, bit a bit) Simbólico: AND end RT: Passos no nível RT: AC MEM(end) AND AC Busca: Execução: REM PC Read; PC PC + 1 RI RDM REM PC Read; PC PC + 1 REM RDM Read 7 4 3 0 AND AC AC AND RDM; atualiza N e Z Don t care end

Arquitetura/Organização: transferências entre regs. Instrução NOT (complementa acumulador) Simbólico: NOT RT: Passos no nível RT: 7 4 3 0 AC NOT AC NOT Don t care Busca: Execução: REM PC Read; PC PC + 1 RI RDM AC NOT(AC); atualiza N e Z

Arquitetura/Organização: transferências entre regs. Instrução JMP (desvio incondicional - jump) Simbólico: JMP end RT: PC end Passos no nível RT: 7 4 3 0 JMP Don t care end Busca: Execução: REM PC Read; PC PC + 1 RI RDM REM PC Read PC RDM

Arquitetura/Organização: transferências entre regs. Instrução JN (desvio condicional - jump on negative) Simbólico: JN end RT: Passos no nível RT: IF N = 1 THEN PC end 7 4 3 0 JN Don t care end Busca: Execução: Se N=1 (desvio ocorre) REM PC Read; PC PC + 1 RI RDM REM PC Read PC RDM Se N=0 (desvio não ocorre) Busca: REM PC Read; PC PC + 1 RI RDM Execução: PC PC + 1

Arquitetura/Organização: transferências entre regs. Instrução JZ (desvio condicional - jump on zero) Simbólico: JZ end RT: Passos no nível RT: IF Z = 1 THEN PC end 7 4 3 0 JZ Don t care end Busca: Execução: Se Z=1 (desvio ocorre) REM PC Read; PC PC + 1 RI RDM REM PC Read PC RDM Se Z=0 (desvio não ocorre) Busca: REM PC Read; PC PC + 1 RI RDM Execução: PC PC + 1

Arquitetura/Organização: transferências entre regs. Instrução HLT (término de execução - halt) Simbólico: HLT RT: -- Passos no nível RT: 7 4 3 0 HLT Don t care Busca: Execução: REM PC Read; PC PC + 1 RI RDM parar o processamento

Neander - Parte II: Arquitetura Interna Arquitetura: conjunto de instruções código instrução comentário 0000 NOP Nenhuma operação 0001 STA end MEM(end) AC 0010 LDA end AC MEM(end) 0011 ADD end AC MEM(end) + AC 0100 OR end AC MEM(end) OR AC 0101 AND end AC MEM(end) AND AC 0110 NOT AC NOT AC 1000 JMP end PC end 1001 JN end IF N=1 THEN PC end 1010 JZ end IF Z=1 THEN PC end 1111 HLT pára processamento

Organização: transferências necessárias Analisando todas as descrições RT, a agrupando pelo registrador destino, tem-se: RI RDM 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 PC RDM PC PC + 1 REM PC REM RDM

Organização: registradores AC: um registrador de 8 bits PC: 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 endereç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 (endereços) x 8 bits

Organização do Sistema de Memória R E M MEM read write Associados à Memória: - RDM (dados) - REM (endereços) - sinal de escrita (write) - sinal de leitura (read) cargarem RDM cargardm Cada registrador é controlado por um sinal de carga

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

Operações na UAL O Computador Neander 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 O Computador Neander R E M MEM read write cargarem RDM cargardm cargaac selual AC X UAL Y carganz opcode don t care N Z DECOD. Unidade de Controle cargari sinais de controle Sinais de Controle RI RDM 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 AC NOT(AC); atualiza N e Z PC RDM PC PC + 1 REM PC REM RDM

Acrescentado Escrita do AC R E M MEM read write cargarem RDM cargardm cargaac selual AC X UAL Y carganz opcode don t care N Z DECOD. Unidade de Controle cargari sinais de controle Sinais de Controle RI RDM 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 AC NOT(AC); atualiza N e Z PC RDM PC PC + 1 REM PC REM RDM

Acrescentado Program Counter (PC) O incremento do PC pode ser feito: Por meio de um somador dedicado Usando a ULA Por meio de um registradorcontador

Acrescentado Program Counter (PC) PC R E M MEM read write cargapc incrementapc cargarem RDM cargardm cargaac selual AC X UAL Y carganz opcode don t care N Z DECOD. Unidade de Controle cargari sinais de controle Sinais de Controle RI RDM 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 AC NOT(AC); atualiza N e Z PC RDM PC PC + 1 REM PC REM RDM

Valores para o REM O Computador Neander Existem duas transferências para o REM REM PC REM RDM O único registrador que recebe dados de duas fontes é o REM Para solucionar este conflito usa-se um multiplexador

Organização final sel PC M U X R E M MEM read write cargapc incrementapc 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 PC PC PC + 1 RI RDM 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 PC RDM sel=0, cargarem incrementapc 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 cargapc

Temporização dos sinais de controle (parte 1) tempo STA LDA ADD OR AND NOT t0 sel=0, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM t1 Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC t2 carga RI carga RI carga RI carga RI carga RI carga RI t3 sel=0, sel=0, sel=0, sel=0, sel=0, carga REM carga REM carga REM carga REM carga REM t4 t5 Read, incrementa PC sel=1, carga REM Read, incrementa PC sel=1, carga REM Read, incrementa PC sel=1, carga REM Read, incrementa PC sel=1, carga REM Read, incrementa PC sel=1, carga REM 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, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM sel=0, carga REM t1 Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC Read, incrementa PC t2 carga RI carga RI carga RI carga RI carga RI carga RI carga RI t3 sel=0, sel=0, incrementa sel=0, goto t0 Halt carga REM carga REM PC, carga REM goto t0 t4 Read Read Read incrementa PC, goto t0 t5 carga PC, goto t0 t6 t7 carga PC, goto t0 carga PC, goto t0

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 carga REM = t0 + t3.(sta+lda+add+or+and+jmp+jn.n+jz.z + t5.(sta+lda+add+or+and) incrementa PC = 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 PC = 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)

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/