Processador MAC-1 Arquitectura.

Slides:



Advertisements
Apresentações semelhantes
Organização e Arquitetura de Computadores I Microarquitetura
Advertisements

Sistemas Operacionais
Parte 1: Organização de Computadores
Parte 1: Organização de Computadores
Capitulo 6: Entrada e Saída
Arquitetura de Computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Arquitetura de Computadores
A Arquitetura: conjunto de instruções
Aula 5 – Sumário Revisão da aula anterior Endereçamento indirecto
O Conjunto de Instruções
Assembly MAC-1 Implementação de ciclos Ciclo ‘while’ // Em Java : ...
1 O Conjunto de Instruções ISA – Instruction Set Architecture.
Programação MAC-1 Exemplo: copiar vector
Aula 4 – Sumário Linguagem assembly do MAC-1 A pilha
Software Básico Silvio Fernandes
Exemplo de arquitetura registrador-registrador- MIPS
MIPS MULTICICLO Fluxo de Dados e Controle
Sistemas Operacionais
Organização e Arquitetura de Computadores I Parte de Controle
Professor: Erivelto Tschoeke – UDESC/CEPLAN
O MICROPROCESSADOR INTEL 8080
Implementação da CPU Análise de um computador simplificado Implementação da Unidade de Controle para o computador simplificado.
Programação em Assembly Variáveis estruturadas
Revisão da Linguagem C.
Introdução à Programação
Unidade Central de Processamento
Unidade Central de Processamento
Unidade Central de Processamento
Funcionamento básico de um computador
Arquitetura Cleópatra Bloco de Controle (Instruções e Microinstruções)
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Computador Cleópatra Arquitetura e Programação.
Sistemas Operacionais I
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Processamento de dados na UCP e memória UCP
Unidade Central De Processamento: Processador
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Capítulo VIII Ambientes de Execução
PIC Peripheral Interface Controller
Capítulo 4 Nível da Microarquitetura
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Arquitetura Cleópatra Bloco de Controle.
A Linguagem de Máquina – Funções e recursividade Prof. André Luis M. Silva orgearq wordpress.com.
Microprocesadores x Microcontroladores
8088 Assembly Software Básico Mitsuo Takaki.
Arquitetura de Computadores 2009 Infra-estrutura Hardware
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Parte 3 Seção de Dados e Unidade de Controle
Processador 2014/2015 Comunicação de Dados Ricardo Bento 12ºL.
1 Aula 6 – Sumário  Revisão da aula anterior  Endereçamento indirecto  Recursividade  Conceito  Exemplos.
Aula 4 – Sumário Linguagem assembly do MAC-1: Funções e procedimentos
Estrutura do Processador
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Introdução à Computação Componentes Básicos dos Computadores
Sistemas Operacionais
Afonso Ferreira Miguel
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Transcrição da apresentação:

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 Não existe implementação comercial em hardware Existem simuladores (máquinas virtuais) que permitem executar programas para este processador

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 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-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 ALU 2 variáveis de controlo – F1 e F0 2 flags (ou bits de estado) N – indica se o resultado é negativo Z – indica se o resultado é zero Deslocamento 2 variáveis de controlo – H1 e H0 Permite deslocar para esquerda ou para a direita Operação F1 F0 A + B A & B 1 A ~A Operação H1 H0 A A >> 1 1 A << 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 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ção dessa instrução

Fetch e execução de instruções 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

Processador MAC-1 Linguagem assembly

Assembly MAC-1 Endereçamento imediato Carregamento de constantes que são dadas pela própria instrução Mnemónica Descrição Significado loco c AC ← c Load constant c é um valor inteiro entre 0 e 4095 (12 bits) Formato da instrução

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) Mnemónica Descrição Significado lodd p AC ← M[p] Load direct stod p M[p] ← AC Store direct addd p AC ← AC + M[p] Add direct subd p AC ← AC – M[p] Subtract direct p é a posição de memória que se pretende aceder. Pode ser um valor inteiro entre 0 e 4095 (12 bits).

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-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 PC 3 1 5 4 7 6 jump 3 AC 25 10 x: y: main: 1 10 25 2 15 3 lodd 1 4 addd 2 5 stod 1 6 halt 7 ...

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

Jump if positive or zero Assembly MAC-1 Instruções de salto Implementação de condições if…else Envolvidas em ciclos (for, while) Mnemónica Descrição Significado jump p PC ← p Unconditional jump jpos p if (AC ≥ 0) PC ← p Jump if positive or zero jneg p if (AC < 0) PC ← p Jump if negative jzer p if (AC == 0) PC ← p Jump if zero jnze p if (AC != 0) PC ← p Jump if nonzero 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-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 cont: ...

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

Assembly MAC-1 Ciclo for // Em Java: ... for (i=0; i!=c; i++) { # 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 }