Processador mac 1
This presentation is the property of its rightful owner.
Sponsored Links
1 / 21

Processador MAC-1 PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Processador mac 1

Processador MAC-1

Arquitectura


Processador mac 11

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


Processador mac 12

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


Arquitectura mac 1

Arquitectura MAC-1


Arquitectura mac 11

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


Arquitectura mac 12

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


Unidade funcional mac 1

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


Organiza o da mem ria no mac 1

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


Fetch e execu o de instru es

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


Fetch e execu o de instru es1

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


Palavras de controlo no mac 1

Palavras de controlo no MAC-1


Processador mac 13

Processador MAC-1

Linguagem assembly


Assembly mac 1

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


Assembly mac 11

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


Assembly mac 12

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;

}

}


Assembly mac 13

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


Assembly mac 14

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


Assembly mac 15

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)


Assembly mac 16

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


Assembly mac 17

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

}

...


Assembly mac 18

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

}

...


  • Login