Prévia do material em texto
Unidade curricular: (Nome da disciplina) Organização e Arquitetura de Computadores I Turma: 140-0146SEGNT Professor: João Luís Tavares da Silva Ano/semestre: 2017/2 02/10/2017 COMPUTADOR HIPOTÉTICO NEANDER Introdução O NEANDER é um computador hipotético muito simples, desenvolvido apenas para fins didáticos, contendo os principais componentes de uma UCP, realizando operações básicas e movimentos de memória. Sua arquitetura é ilustrada pelo diagrama a seguir: Características da Arquitetura Largura de dados e endereços de 8 bits Dados representados em complemento de 2 (C’2) 1 acumulador de 8 bits (AC) 1 apontador de programa (PC) de 8 bits 1 registrador de estado com 2 códigos de condição: o negativo (N) o zero (Z) João Luís Tavares Silvaᄉ João Luís Tavares Silva瑰 Organização e Arquitetura de Computadores I� Conjunto de Instruções Código Instrução Operação 0000 NOP Nenhuma operação 0001 STA end Armazena acumulador no endereço “end” da memória 0010 LDA end Carrega o acumulador com o conteúdo do endereço “end” da memória 0011 ADD end Soma o conteúdo do endereço “end” da memória ao acumulador 0100 OR end Efetua operação lógica “OU” do conteúdo do endereço “end” da memória ao acumulador 0101 AND end Efetua operação lógica “E” do conteúdo do endereço “end” da memória ao acumulador 0110 NOT Inverte todos os bits do acumulador 1000 JMP end Desvio incondicional para o endereço “end” da memória 1001 JN end Desvio condicional, se “N=1”, para o endereço “end” da memória 1010 JZ end Desvio condicional, se “Z=1”, para o endereço “end” da memória 1010 JNZ end Desvio condicional, se “Z=0”, para o endereço “end” da memória 1111 HLT Para o ciclo de busca-decodificação-execução Códigos de Condição O NEANDER possui um Registrador de Flags com 2 bits: Bit N: Negativo – Sinal do resultado do acumulador o 0 – resultado é positivo ou zero o 1 – resultado é negativo Bit Z: Zero – Indica resultado igual a zero o 0 – resultado é diferente de zero o 1 – resultado é igual a zero As instruções lógicas e aritméticas (ADD, NOT, AND, OR) e a instrução de transferência LDA afetam os códigos de condição N e Z. As demais instruções (STA, JMP, JN, JZ, JNZ, IN, OUT, LDI, NOP e HLT) não alteram os códigos de condição. Formato da Instrução O NEANDER só possui um modo de endereçamento: o modo direto (muitas vezes também chamado de absoluto). No modo de endereçamento direto, a palavra que segue o código da instrução contém, nas instruções de manipulação de dados, o endereço de memória do operando. Nas instruções de desvio, esse endereço corresponde à posição de memória onde está a próxima instrução a ser executada. O formato da instrução pode ser composto por um ou dois endereços de memória: Para as instruções que não acessam memória, é usado um endereço para armazenar a instrução. Para as demais instruções, são usados dois endereços de memória como segue: Execução das Instruções Ciclo de busca da instrução: RI ← MEM(PC) PC ← PC + 1 Sequência de operações para execução da instrução: Instrução: Ciclo operações NOP Busca RI ← MEM(PC) PC ← PC + 1 Execução nenhuma STA Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← PC + 1 MEM(ender) ← AC LDA Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← PC + 1 AC ← MEM(ender) ADD Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← PC + 1 AC ← AC + MEM(ender) Endereço n+1 Endereço n 0347 DON´T CAREOPCODE ENDEREÇO DIRETO OR Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← PC + 1 AC ← AC or MEM(ender) AND Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← PC + 1 AC ← AC and MEM(ender) NOT Busca RI ← MEM(PC) PC ← PC + 1 Execução AC ← not AC JMP Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← ender JN caso N=1 Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← ender JN caso N=0 Busca RI ← MEM(PC) PC ← PC + 1 Execução ender ← MEM(PC) PC ← PC + 1 Referências WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Bookman, 2012. 424 p. (Série Livros Didáticos Informática UFRGS, v. 8). Acesso ao código do simulador: - http://www.inf.ufrgs.br/arq/wiki/doku.php?id=neander Simulador online: - http://inf.ufrgs.br/~vbuaraujo/sw/neander/ - http://inf.ufrgs.br/~vbuaraujo/sw/neander/ahmes.html http://www.inf.ufrgs.br/arq/wiki/doku.php?id=neander http://inf.ufrgs.br/~vbuaraujo/sw/neander/ahmes.html http://inf.ufrgs.br/~vbuaraujo/sw/neander/