INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

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

X Y Z A B C D

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Prof. Adilson Gonzaga

Primeiro Trabalho de POO Emulador para o Processador Winter

Arquitetura de Um Processador I

Organização e Arquitetura de Computadores INTRODUÇÃO

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

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

Arquitetura e Organização de Computadores

ção de Computadores II

Organização de Sistemas de Computadores

Arquitetura e Organização de Computadores

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

Introdução aos processos de operação aritmética - Subtração

ARQUITECTURA DE COMPUTADORES

Linguagem de Montagem do NeanderX

NEANDERWIN. Algumas características do processador Neander são:

SSC510 Arquitetura de Computadores 1ª AULA

Símbolos e abreviaturas utilizadas na descrição das instruções

Conjunto de Instruções

Aula 06 - Máquina Multinível e Von Neumann

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

Processador: Conceitos Básicos e Componentes

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Algoritmos Computacionais

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

MICROPROCESSADORES 2º TESTE - A

25/8/2010. Praticamente todas as arquiteturas de computadores fornecem mais de um modo de

Processador. Processador

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

18/10/2010. Unidade de Controle Controle. UC Microprogramada

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

ORGANIZAÇÃO DE COMPUTADORES

Arquitectura de Computadores

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Curso Profissional de Técnico de Gestão de Equipamentos Informáticos 10º ANO

Arquitectura de Computadores RECUPERAÇÃO DO 1º TESTE

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

Instruções Assembly x Código de máquina Microprocessador Didático

Arquitetura e Organização de Computadores

SISTEMAS DIGITAIS II Enunciados de Laboratório

Noções de Algoritmos

CALCULADORA SIMPLES COM ULA

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

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Arquitectura de Computadores

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Arquitetura e Organização de Computadores

INSTITUTO SUPERIOR TÉCNICO

Unidade Central de Processamento UCP (CPU)

Organização de Computadores

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

4. As condições de igualdade menor que e maior que são verificadas por a. Operações lógicas b. Subtração c. Localizações d. Operações aritméticas

Introdução à Arquitetura de Computadores

Sistemas Operacionais. Visão Geral

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Introdução aos Computadores e Programação

Arquitectura de Computadores

Organização de Computadores (revisão) André Tavares da Silva

Arquitectura e Organização de Computadores

Unidade Central de Processamento 2. Registradores

Arquitectura de Computadores LEEC/MEEC (2006/07 2º Sem.)

Divisão de Engenharia Eletrônica Laboratório de ELE-20

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

Programador/a de Informática

Organização e Arquitetura de Computadores I

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

ção de Computadores I

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

SISTEMAS DIGITAIS MEEC / LEIC-A de Novembro de 2012, 19:30

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

INSTRUMENTAÇÃO E MEDIDAS

Representação da Informação no Computador

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Disciplina: Arquitetura de Computadores

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Arquitectura e Organização de Computadores

Linguagem de Descrição de algoritmos

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Aula 2. Dispositivos de entrada. Dispositivos controladores. Memórias. Processador

Algoritmo e Programação Matemática

Introdução à Computação: Máquinas Multiníveis

Computador Acadêmico Básico Reconfigurável Por: Sílvio Fernandes e Leonardo Casillo. Processador Simples

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

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

Organização de computadores. Prof. Moisés Souto

Funcionamento Área Desempenho (velocidade) Potência Aula 1. Circuitos Digitais. Circuitos Digitais

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

Memória de dados interna

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Introdução aos Sistemas de Computação (ISC) Curso de Administração de Negócios Eletrônicos Professor :

Arquitetura e Organização de Computadores. Sistemas Numéricos

Arquitetura de Computadores

Transcrição:

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA Engenharia de Eletrónica e Telecomunicações e de Computadores e Engenharia Informática e de Computadores INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA 1.º Trabalho Prático de Arquitetura de Computadores Estudo de um processador 3 de outubro de 2016

1 Objetivos Este trabalho prático tem como principal objetivo o estudo do funcionamento de um processador. Neste contexto, são abordadas as problemáticas de uma codificação eficiente de um ISA, o projeto do correspondente descodificador de instruções para a unidade de controlo do processador e a codificação de programas usando a linguagem máquina. 2 Descrição da arquitetura O processador considerado neste trabalho, que é de ciclo único, implementa uma arquitetura de Harvard a 8 bits, em que as instruções são codificadas com 12 bits e a memórias de dados e de código contêm, respetivamente, 256 e 1024 posições. A arquitetura disponibiliza ao programador quatro registos de uso geral (r0, r1, r2 e r3) e uma Unidade Lógica e Aritmética (ALU) com capacidade para realizar duas operações aritméticas (soma e subtração) e duas operações lógicas (AND e XOR), conforme é ilustrado na Figura 1 do Anexo A. A arquitetura inclui ainda um registo de estado do processador (PSW) que disponibiliza os indicadores zero (Z) e transporte (C). A Tabela 1 apresenta o conjunto de instruções suportado pela arquitetura, em que: rx, ry e rz representam um dos quatro registos de uso geral do processador (r0, r1, r2, r3); const4 simboliza o valor de uma constante, codificada com 4 bits sem sinal; direct6 e direct8 simbolizam os valores de constantes, codificadas sem sinal com 6 bits e 8 bits, respetivamente, que são usadas como parte de menor peso na síntese de endereços de memória (os bits de maior peso dos endereços são colocados a zero); offset8 simboliza o valor de uma constante, codificada com 8 bits com sinal, que é usada como parte de menor peso na síntese do endereço relativo de memória (os bits de maior peso são estendidos com o bit de sinal). Instrução Descrição ldi rx, #const6 Carrega o valor da constante const6 no registo rx. rx const6 ld rx, [ry, #const4] st rx, direct6 Transfere para rx o conteúdo da posição de memória cujo endereço é definido pela soma do conteúdo de ry com a constante const4. Transfere o conteúdo de rx para a posição de memória com endereço direct6. rx mem[ry + const4] mem[direct6] rx add rx, ry, rz Adiciona ry e rz e coloca o resultado em rx. rx ry + rz sub rx, ry, #const4 Subtrai const4 a ry e coloca o resultado em rx. rx ry - const4 anl rx, ry, rz xrl rx, ry, rz Realiza a operação lógica AND entre ry e rz e coloca o resultado em rx. Realiza a operação lógica XOR entre ry e rz e coloca o resultado em rx. rx ry AND rz rx ry XOR rz jnc offset8 jz offset8 Quando a flag C apresenta o valor 0, muda a execução para o endereço resultante da adição ao PC do deslocamento representado por offset8. Quando a flag Z apresenta o valor 1, muda a execução para o endereço resultante da adição ao PC do deslocamento representado por offset8. PC PC + offset8 se C == 0 PC PC + offset8 se Z == 1 jmp direct8 Muda a execução para o endereço representado por direct8. PC direct8 Tabela 1 Conjunto de instruções do processador. 1.º Trabalho Prático Projeto de um Processador 2

Na Tabela 2 apresenta-se a codificação de algumas instruções do ISA. Instrução b11 b8 b7 b6 b5 b4 b3 b2 b1 b0 ldi rx, #const6 1100 rx const6 ld rx, [ry, #const4] 0000 rx ry const4 add rx, ry, rz 0100 rx ry rz -- anl rx, ry, rz 0110 rx ry rz -- jnc offset8 1001 offset8 jz offset8 1010 offset8 jmp direct8 1011 direct8 opcode Tabela 2 Codificação das instruções. 3 Trabalho a realizar Respeitando o ISA e a microarquitetura apresentados, pretende-se completar o projeto do processador proposto e validar o seu correto funcionamento. Para tal, devem ser realizadas quatro tarefas. 3.1 Codificação das instruções do ISA Codifique as instruções st, sub e xrl apresentadas na Tabela 1, procurando minimizar a complexidade do circuito descodificador de instruções do processador. 3.2 Projeto do descodificador de instruções Projete o descodificador de instruções do processador, apresentando, numa tabela, o valor lógico das saídas deste circuito para cada uma das instruções descritas na Tabela 1. Os sinais obtidos diretamente da instrução, devem ser explicitados nessa tabela. 3.3 Realização do descodificador de instruções Usando o Logisim, implemente o subcircuito Instruction Decode descrito no ficheiro cpu.circ 1 concretizando as definições dos pontos anteriores e utilizando apenas uma ROM. 3.4 Teste da arquitetura Considere a seguinte sequência de instruções, que deverá utilizar para testar o funcionamento do processador utilizando a aplicação Logisim. ldi r0, #9 xrl r1, r1, r1 ld r2, [r0, #0] add r1, r1, r2 sub r0, r0, #1 jnc -3 st r1, 100 jmp 7 a) Usando uma linguagem de alto nível (e.g. Java ou C), escreva a função realizada por esta sequência de instruções. 1 O ficheiro cpu.circ está disponível na plataforma Thoth em anexo ao enunciado. 1.º Trabalho Prático Projeto de um Processador 3

b) Codifique as instruções apresentadas e carregue-as na memória de código do processador no Logisim. Carregue também as primeiras 10 posições da memória de dados com os números de aluno de dois elementos do grupo (um dígito por posição de memória). c) Execute o troço código no Logisim, registando os sinais à saída do descodificador de instruções para cada uma das suas instruções. Compare o resultado da execução do troço de código com o resultado esperado. 4 Avaliação O trabalho deve ser realizado em grupo e conta para a avaliação da unidade curricular. A apresentação da solução proposta por cada grupo decorre em sessão de laboratório, em data a combinar com o docente responsável pela lecionação das aulas da respetiva turma. Após esta apresentação, cada grupo deverá entregar o relatório do trabalho ao docente, no qual deve constar: Uma descrição sucinta da solução proposta, que deve ser acompanhada dos esquemas de todos os circuitos e subcircuitos desenvolvidos; As respostas às perguntas formuladas no enunciado; As conclusões. 1.º Trabalho Prático Projeto de um Processador 4

Anexo A. Diagramas de blocos Figura 1 Diagramas de blocos do processador. 1.º Trabalho Prático Projeto de um Processador 5

Figura 2 Diagrama de blocos do banco de registos. Figura 3 Diagrama de blocos da ALU. 1.º Trabalho Prático Projeto de um Processador 6