1 / 21

Processador MAC-1

Processador MAC-1. Arquitectura. Processador MAC-1. Desenvolvido por Andrew Tanenbaum para fins didácticos Arquitectura simples, útil para perceber uma série de conceitos que também são válidos em processadores mais complexos Processador virtual

avani
Download Presentation

Processador MAC-1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Processador MAC-1 Arquitectura

  2. Processador MAC-1 • Desenvolvido por Andrew Tanenbaum para fins didácticos • Arquitectura simples, útil para perceber uma série de conceitos que também são válidos em processadores mais complexos • Processador virtual • Não existe implementação comercial em hardware • Existem simuladores (máquinas virtuais) que permitem executar programas para este processador

  3. Processador MAC-1 • Principais características: • Possui 12 linhas para endereçar a memória • Espaço de endereçamento = 212 = 4K endereços • Palavras de 16 bits • Um datapath de 16 bits • 16 registos para uso interno • 2 registos para comunicação com o exterior (memória) • Uma ALU e um bloco de deslocamento • Instruções de 16 bits • Unidade de controlo multi-ciclo microprogramada

  4. Arquitectura MAC-1

  5. Arquitectura MAC-1 • Principais registos • AC (Acumulador)Guarda o resultado das operações • PC (Program Counter)Guarda o endereço da próxima instrução a ser executada • IR (Instruction Register)Guarda a instrução que vai ser executada • SP (Stack Pointer)Guarda o endereço do topo da pilha

  6. Arquitectura MAC-1 • Registos de comunicação com o exterior • MDR (Memory Data Register)Guarda os dados recebidos / a enviar • LDR – Controlo de carregamento do BUS C • RD / WR – Carregamento / Output enable para o exterior (também são ligados à memória) • MAR (Memory Adress Register)Guarda endereços • LAR – Controlo de carregamento do BUS B

  7. Unidade funcional MAC-1 • ALU • 2 variáveis de controlo – F1e F0 • 2 flags (ou bits deestado) • N – indica se o resultado é negativo • Z – indica se o resultado é zero • Deslocamento • 2 variáveis de controlo – H1 e H0 • Permite deslocar para esquerdaou para a direita

  8. Organização da memória no MAC-1 • 12 bits para endereçamento • ou seja, 4K=4096 endereços • Dividido em: • Programa • Instruções (código-máquina) • Variáveis globais, constantes • Pilha (ou Stack) • Dados temporários • Variáveis locais • I/O • Escrita de caracteres no écran • Leitura de caracteres do teclado Memória

  9. Fetch e execução de instruções • O programa encontra-se carregado em memória • O processador acede à memória para ler cada instrução • O endereço da instrução a aceder encontra-se num registo especial – o Program Counter(PC) • A leitura da instrução designa-se fetch(busca) • Durante a fase de fetch, enquanto se acede à memória o PC é incrementado, ou seja, PC←PC+1 • Isto para PC ficar “preparado” para a próxima instrução • Depois de realizar o fetch, o processador passa à execuçãodessa instrução

  10. Fetch e execução de instruções EXECUÇÃO Palavra de controlo Palavra de controlo Palavra de controlo Estado Estado Estado Endereço de instrução (PC) FETCH Instrução

  11. Palavras de controlo no MAC-1

  12. Processador MAC-1 Linguagem assembly

  13. Assembly MAC-1 • Endereçamento imediato • Carregamento de constantes que são dadas pela própria instrução c é um valor inteiro entre 0 e 4095 (12 bits) Formato da instrução

  14. Assembly MAC-1 • Endereçamento directo • Usado para aceder a variáveis globais ou a valores constantes guardados na memória • Operações I/O (leitura e escrita de caracteres) p é a posição de memória que se pretende aceder. Pode ser um valor inteiro entre 0 e 4095 (12 bits).

  15. Assembly MAC-1 Exemplo – endereçamento directo // Código em java public class exemplo { // Má programação, serve apenas para explicar o // endereçamento directo... public static int x = 10; public static int y = 15; public static void main(String[] args) { x = x + y; } }

  16. x: y: main: Assembly MAC-1 Exemplo – endereçamento directo Registos Memória # Código MAC-1 jump main x: 10 y: 15 main: lodd x addd y stod x halt 7 6 4 3 5 0 jump 3 PC 1 0 10 25 0 10 25 AC 1 15 2 lodd 1 3 addd 2 4 stod 1 5 halt 6 ... 7

  17. Assembly MAC-1 • Instruções de salto • Diz-se que ocorre um salto quando a próxima instrução a executar não é a que se encontra na posição de memória seguinte • Ou seja, não é a instrução que se encontra na posição PC+1 • Fazendo uma analogia com a programação: ... if (x >= 0) x = 1; y = x ... Se x for maior ou igual a 0, não “salta” Se x for menor que 0, “salta” para aqui

  18. Assembly MAC-1 • Instruções de salto • Implementação de condições if…else • Envolvidas em ciclos (for, while) p é o endereço para o qual o programa salta em caso de salto Pode ser qualquer valor inteiro entre 0 e 4095 (12 bits)

  19. Assembly MAC-1 • Implementação de condições if…else // Em Java: ... if (x >= 0) y = x; else y = 0; ... # Em MAC-1: ... lodd x if:jneg else stod y jump cont else: loco 0 stod y cont: ...

  20. Assembly MAC-1 • Implementação de ciclos • Ciclo while # Em MAC-1: ... ciclo: lodd i subd c jpos sai ... # xpto jump ciclo sai:... // Em Java: ... while (i < c) { ... // xpto } ...

  21. Assembly MAC-1 • Ciclo for # Em MAC-1: ... loco 0 # stod i # i = 0 ciclo: lodd i subd c jzer sai ... # xpto loco 1 # addd i # stod i# i=1+i jump ciclo sai:... // Em Java: ... for (i=0; i!=c; i++) { ... // xpto } ...

More Related