2 Formalidades referentes ao trabalho



Documentos relacionados
BARRAMENTO DO SISTEMA

28/9/2010. Unidade de Controle Funcionamento e Implementação

Estrutura de um Computador

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Organização e Arquitetura de Computadores I

Componentes do Computador e. aula 3. Profa. Débora Matos

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

ULA Sinais de Controle enviados pela UC

Arquitetura de Computadores. Tipos de Instruções

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Organização e Arquitetura de Computadores I

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Organização Básica do Computador

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

3. Arquitetura Básica do Computador

ARQUITETURA DE COMPUTADORES

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Organização de Computadores Hardware

Dispositivos de Entrada e Saída

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

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

Capítulo 3 Processadores de Propósito Geral: Software

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Aula 14: Instruções e Seus Tipos

Computador = Hardware + Dados

Arquitetura de Computadores I

Organização de Computadores 1

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

Introdução à Arquitetura de Computadores

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Componentes de um Computador: Modelo Von Neumann

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Arquitetura de Computadores - Revisão -

Organização e Arquitetura de Computadores I

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Visão Geral de Sistemas Operacionais

Sistemas Computacionais II Professor Frederico Sauer

Programando o computador IAS

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Programação Básica usando o Computador Visível. Jorge Fernandes Maio de 2004

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação

O Hardware Dentro da Unidade do Sistema

Informática I. Aula 5. Aula 5-13/05/2006 1

Informática I. Aula 4. Aula 4-11/09/2006 1

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

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

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Unidade Central de Processamento

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I

Aula 2 Modelo Simplificado de Computador

Circuitos Digitais Cap. 5

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

Microprocessadores. Prof. Leonardo Barreto Campos 1

Nível da Arquitetura do Conjunto das Instruções

Sistemas Operacionais

Aritmética Binária e. Bernardo Nunes Gonçalves

Arquitetura de Von Neumann. Computador ISA

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES

CAPÍTULO 6 ARITMÉTICA DIGITAL

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Sistemas Operacionais. Prof. André Y. Kusumoto

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

Sistemas Operacionais

Computadores XXI: Busca e execução Final

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

Componentes de um computador típico

Edeyson Andrade Gomes

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Registradores de uma CPU. Registradores de uma CPU - Acumulador

Disciplina: Introdução à Informática Profª Érica Barcelos

Exemplo de Subtração Binária

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

SIS17 - Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES

Figura 1 - O computador

Computadores de Programação (MAB353)

2. A influência do tamanho da palavra

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

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

Arquitetura e Organização de Computadores I

Arquitetura de Computadores. Ivan Saraiva Silva

Sistema de Computação

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de / 25

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

Funcionamento básico de um computador

ISL - Introdução. Sistema. Binário. Introdução. Tipos de Computador. Sub title text goes here. Unused Section Space 2. Unused Section Space 1

CP C U P U - Un U i n da d d a e d e Ce C n e t n ral a de d e Pr P oc o es e sam a e m n e t n o o Pr P oc o es e sad a o d r o Aula 03

Transcrição:

Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este texto descreve um trabalho de laboratório que vale 40% da nota da disciplina e que é um trabalho muito extenso. Reserve tempo suficiente, com antecedência à data de entrega, para a sua execução, em especial para a integração e teste dos blocos. 1 Releases - Histórico r0 07 / 03 / 2006 primeira versão r1 29 / 03 / 2006 bug fixes: correção set de instruçoes detalhes sobre Etapa 1 r2 30 / 05 / 2006 mudanças em datas e horários de entrega dos trabalhos r3 13 / 06 / 2006 correção set instruções:pop e SkipCond 2 Formalidades referentes ao trabalho 2.1 Desenvolvimento do trabalho O trabalho deve ser realizado individualmente ou em duplas. O processador deverá ser implementado com a ferramenta TkGate (http://www. tkgate.org). 2.2 Datas de entrega e de apresentação A entrega do trabalho compreende três etapas. Na primeira deverão ser entregues a Unidade Lógica e Aritmética e os Registradores. A data limite para esta etapa é 27 de abril de 2006, 23:59H. A segunda etapa compreende o Sistema de Memória e de Entrada e Saída. A data limite para esta segunda etapa é 01 de junho de 2006, 23:59H. O trabalho completo e integrado com os módulos entregues nas etapas anteriores deverá ser entregue em 19 de junho de 2006, até as 22:00H horas impreterivelmente. Na primeira etapa, a Unidade Lógica e Aritmética deve implementar as operações: soma, subtração, multiplicação (8 bits x 8 bits =16 bits), incremento de 1, decremento de 1, and, or, xor, nand, nor, nxor, not, shift-l, shift-r. Além disso, devem ser produzidos sinais indicando a ocorrência de: resultado negativo, resultado zero, overflow e carry. Não serão aceitos trabalhos fora do prazo. As entregas serão feitas por submissão eletrônica, via e-mail ou ftp, cujas regras serão divulgadas posteriormente.

Cabe aos alunos verificarem periodicamente, na home-page da disciplina as atualizações neste documento. Cada trabalho entregue deverá corresponder a um arquivo com a seguinte denominação: MICO-v12-fulano beltrano-etapa.tar.gz, em que fulano e beltrano são os login name dos participantes no DINF. O conteúdo do arquivo, empacotado com tar e comprimido com gzip, deve conter um diretório com o mesmo nome do arquivo acima, sem a extensão.tar.gz. Ele deve conter, obrigatoriamente: todos os arquivos que sejam necessários para simular os circuitos projetados; vetores de teste usados para a verificação e correção de cada bloco componente do processador; um relatório contendo o projeto de cada módulo e de cada bloco funcional (gerados pelo TkGate); um arquivo contendo o nome dos componentes do grupo. A apresentação dos trabalhos será efetuada nos dias 20 e 22 de junho de 2006. 3 Organização do MICO-v12 A arquitetura do MICO-v12 compreende uma CPU (uma ALU e registradores) e memória (para armazenar programas e dados), com as seguintes características: números binários em complemento de dois; programa armazenado, com palavras de comprimento fixo; 4K palavras de 16 bits de memória principal; instruções com 16 bits, 4 para o opcode e 12 para o endereçamento; um acumulador (AC) de 16 bits; um registrador de instrução (IR) de 16 bits; um registrador de leitura e escrita a memória (MBR) de 16 bits; um contador de programa (PC) de 12 bits; um registrador de pilha (SP) de 12 bits; um registrador de endereçamento de memória (MAR) de 12 bits; um registrador de entrada (InREG) de 8 bits; um registrador de saída (OutREG) de 8 bits. 2

A arquitetura do MICO-v12 está apresentada na Figura 1. A ALU (unidade lógica e aritmética) é a parte da CPU que realiza todas as operações de processamento (aritméticas, decisões lógicas, entre outras). Os registradores são usados para propósitos muito específicos durante a execução de programas. Eles mantêm valores para armazenamento temporário, dados que estão sendo manipulados ou resultados de cálculo. Muitas vezes eles estão implicitamente referenciados em uma instrução, como será visto na seção correspondente ao conjunto de instruções. No MICO-v12 temos oito registradores, descritos a seguir: AC: Acumulador. Um registrador de propósito geral que armazena dados que a CPU precisa para processamento. MAR: Registrador de Endereçamento de Memória. Mantém o endereço de memória dos dados sendo referenciados. MBR: Registrador de Acesso de Memória. Mantém os dados que foram lidos ou que serão escritos na memória. PC: Contador de Programa. Mantém o endereço da próxima instrução a ser executada. IR: Registrador de Instrução. Mantém a próxima instrução a ser executada. SP: Registrador de Pilha. Mantém o endereço da topo da pilha. InREG: Registrador de Entrada. Mantém os dados lidos do dispositivo de entrada. OutREG: Registrador de Saída. Mantém os dados que serão escritos no dispositivo de saída. Os registradores MAR, MBR, PC e IR guardam informações muito específicas e não podem ser usados para nada além dos propósitos estabelecidos. Além deles, há um registrador de status, que mantém informações indicando várias condições, como por exemplo a ocorrência de overflow na ALU. No MICO-v12 não é possível transferir dados ou intruções de e para os registradores sem uso do barramento de dados, que é comum a todos os dispositivos. O caminho de dados no MICO-v12 pode ser visto na figura 2. A implementação deve contemplar todos os mecanismos apresentados no caminho de dados, que permitem acelerar operações importantes da CPU: um acesso direto entre o MAR e a memória, um caminho independente entre o MBR e o AC, um caminho especial entre o MBR e a ALU para permitir que a palavra armazenada no MBR seja usada em operações aritméticas, além de um acesso direto entre o AC e a ALU, independente do barramento. Estes mecanismos permitirão que vários eventos ocorram de forma concorrente na execução do processamento. 3

Endereco Memoria0 ALU STAT AC SP MBR OutREG MAR InREG Memoria Principal PC IR Unidade de Controle CPU Endereco Memoria 4k 1 Figura 1: Arquitetura do MICO-v12 4

Memoria MAR SP PC MBR ALU AC InREG OutREG IR Barramento 16 bits Figura 2: Caminho de Dados no MICO-v12 5

4 Conjunto de Instruções Cada instrução do MICO-v12 consiste de 16 bits. Os quatro bits mais significativos, bits 12 15, correspondem ao opcode que especifica a instrução a ser executada (o que implica o máximo de 16 instruções). Os 12 bits menos significativos, 0 11, formam um endereço, que por sua vez implica um tamanho de memória limitado a 2 12 1. O conjunto de instruções do MICO-v12 pode ser visto na tabela abaixo. Código Instrução Significado 0000 JnS X Armazena em PC o endereço X e salta para X+1. 0001 Load X Lê o conteúdo do endereço X em AC. 0010 Store X Armazena o conteúdo de AC no endereço X. 0011 Add X Adiciona o conteúdo do endereço X em AC e armazena o resultado em AC. 0100 Subt X Subtrai o conteúdo do endereço X de AC e armazena o resultado em AC. 0101 Input Lê um valor do teclado em AC. 0110 Output Envia o valor de AC para o display. 0111 Halt Termina o programa. 1000 SkipCond Se condição, salta a próxima instrução. 1001 Jump X Carrega o endereço X em PC. 1010 Clear Zera o conteúdo de AC. 1011 SetSP Carrega o conteúdo de AC no registrador SP. 1100 JumpI X Salto indireto: usa o valor em X como endereço do lugar para onde saltar. 1101 Push X Carrega o conteúdo do endereço X no topo da pilha. 1110 Pop X Retira o topo da pilha e coloca no endereço X. 1111 Mult X Multiplica o conteúdo de AC (8 bits menos significativos) pelo conteúdo do endereço X (8 bits menos significativos). Armazena o resultado (16 bits) em AC. A instrução Load permite mover palavras da memória para a CPU (via MBR e AC). Todos os dados (o que inclui tudo que não é uma instrução) que saem da memória são movidos inicialmente para o MBR e então para o AC ou para a ALU; não deve haver outras opções nesta arquitetura. Note que a instrução Load não nomina AC como destino final: este registrador está implícito. Outras instruções se referem ao AC de forma semelhante. A instrução Store permite mover dados da CPU para a memória. As instruções Add e Sub adicionam e subtraem, respectivamente, os dados presentes no endereço X, ao ou do valor em AC. O dado localizado no endereço X é copiado para o MBR onde ele é mantido até que a operação aritmética seja executada. As instruções Input e Output permitem ao MICO-v12 se comunicar com o mundo exterior. O comando Halt termina a execução atual do programa. A instrução SkipCond permite realizar salto condicional. Quando esta instrução é executada, o valor armazenado no AC pode ser inspecionado. Dois dos bits de endereçamento (os bits 10 e 6

11) especificam a condição a ser testada. Se o valor desses bits for 00, o significado da instrução é saltar se o valor de AC é negativo. Se o valor for 01, significa saltar se o valor de AC é igual a zero. Finalmente, se o valor for 10, significa saltar se o valor de AC é maior que zero. Saltar corresponde a pular para a próxima instrução, o que corresponde a incrementar o PC por 1, essencialmente ignorando a próxima instrução, que nem mesmo é buscada. A instrução Jump, um salto incondicional, também afeta o PC, que será substituído pelo valor de X, que por sua vez endereça a próxima instrução a ser buscada. A instrução JnS (salte e armazene) permite primeiramente armazenar um ponteiro para uma instrução de retorno e depois carregar o PC com uma outra instrução. Isto possibilita construir chamadas de procedimentos e outras sub-rotinas e retornar ao ponto de chamada no código principal após o término da sub-rotina. A instrução Clear move zero para todos os bits do acumulador. A instruçãoaddi usa um modo de endereçamento indireto. Ao invés de usar o valor encontrado em X com endereço atual, esse valor será o ponteiro para uma nova posição de memória que contém os dados que serão usados na instrução. As instruções SetSP, Push X e Pop X permitem manipular a pilha, cuja localização na memória é definida dinamicamente pelo programa do usuário. A tabela a seguir apresenta o conjunto completo de instruções do MICO-v12 em RTN. 7

Opcode Instruction RTN 0000 JnS X MBR PC MAR X Mem[MAR] MBR MBR X AC 1 AC AC + MBR PC AC 0001 Load X MAR X, AC MBR 0010 Store X MAR X, MBR AC Mem[MAR] MBR 0011 Add X MAR X AC AC + MBR 0100 Subt X MAR X AC AC - MBR 0101 Input AC InREG 0110 Output OutREG AC 0111 Halt 1000 SkipCond If IR[11-10] = 00 then If AC < 0 then PC PC + 1 Else If IR[11-10] = 01 then If AC = 0 then PC PC + 1 Else If IR[11-10] = 10 then If AC > 0 then PC PC + 1 1001 Jump X PC IR[11-0] 1010 Clear AC 0 1011 SetSP SP AC 1100 JumpI X MAR X PC MBR 1101 Push X MAR X SP SP - 1 MAR SP Mem[MAR] MBR 1110 Pop X MAR SP SP SP + 1 MAR X Mem[MAR] MBR 1111 Mult X MAR X 8 AC AC[0-7] * MBR[0-7]