Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Documentos relacionados
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

SSC510 Arquitetura de Computadores 1ª AULA

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

ção de Computadores I

Arquitetura de Computadores Aula 10 - Processadores

Processador. Processador

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

2. A influência do tamanho da palavra

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Arquitetura e Organização de Processadores. Aula 4. Pipelines

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

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

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

ção de Computadores I

Infra-estrutura de Hardware

Sistemas Processadores e Periféricos Aula 2 - Revisão

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

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

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

Prof. Leonardo Augusto Casillo

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

Unidade Central de Processamento UCP (CPU)

Infraestrutura de Hardware. Instruindo um Computador

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

SSC0611 Arquitetura de Computadores

2. A influência do tamanho da palavra

Exercícios resolvidos (aula de 4 de Maio) Resolução:

PSI3441 Arquitetura de Sistemas Embarcados

Organização e Arquitetura de Computadores I

Infra-estrutura de Hardware

Neander - características

Arquitetura de Computadores. Prof. João Bosco Jr.

ção de Computadores II

Conjunto de Instruções e Modelos de Arquiteturas

Arquitetura de Computadores. Conjunto de Instruções

Introdução à Organização de Computadores. Aula 8

Organização de Computadores

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

ORGANIZAÇÃO DE COMPUTADORES

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

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Arquiteturas de Computadores

Unidade Central de Processamento 2. Registradores

PSI3441 Arquitetura de Sistemas Embarcados

SSC0114 Arquitetura de Computadores

A Arquitetura: conjunto de instruções

Organização e Arquitetura de Computadores I

lw, sw add, sub, and, or, slt beq, j

Solução Lista de Exercícios Processadores

Instruções. Maicon A. Sartin

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

William Stallings Computer Organization and Architecture

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

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

PSI3441 Arquitetura de Sistemas Embarcados

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Relembrando desempenho...

Prof. Gustavo Oliveira Cavalcanti

CONJUNTO DE INSTRUÇÕES

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Relembrando desempenho...

UCP: Construindo um Caminho de Dados (Parte I)

UCP: Construindo um Caminho de Dados (Parte III)

Arquitetura de Computadores. Ciclo de Busca e Execução

DataPath II Tomando o controle!

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

Esta pseudomáquina foi criada em homenagem ao homem de Neandertal, o antecessor do homo sapiens.

SSC0112 Organização de Computadores Digitais I

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

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

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

Conceitos Básicos Processador

III.2 - Princípios de Arquitetura

Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas:

O Processador: Via de Dados e Controle

Organização e Projeto de Computadores

Arquiteturas de Computadores

Disciplina: Arquitetura de Computadores

Instruções de Máquina

O Computador Neander Neander - Computador Hipotético Didático

Organização de Sistemas de Computadores

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

Explorando o paralelismo entre instruções

Primeiro Trabalho de POO Emulador para o Processador Winter

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

Organização de Computadores

Arquitetura e Organização de Computadores

Tiago Alves de Oliviera

Computador Cleópatra

Estrutura Básica de um Computador

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

Transcrição:

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Material a ser utilizado: Kits de desenvolvimento de sistemas microprocessados para aplicações em DSP Texas DSK-TMS320C67xx. Apresentação dos trabalhos: Final de junho (para o primeiro semestre do ano), final de novembro (para o segundo semestre). Apresentação: Na data de apresentação, deverá ser entregue uma cópia em disquete e uma listagem em papel do código fonte, descrito em linguagem C. Nesta mesma data, deverá ser feita uma apresentação dos trabalhos em laboratório, utilizando o canhão multimídia, de modo que todos os ouvintes possam acompanhar a apresentação do trabalho. Descrição dos trabalhos: I. Implementar em linguagem C a descrição funcional de um Microprocessador Pipeline e seu Compilador Assembler: a) De arquitetura baseada em 16 bits de dados, 16 bits de endereços, e 21 bits para palavras de instruções. b) Pipeline de 5 estágios. Cada estágio é executado em 1 único ciclo de relógio. Implementar os 4 Registradores do Pipeline (RP): IF/ID, ID/EX, EX/ME, ME/WB. c) Arquitetura Harvard: memórias de dados e de instruções (2 cachês, cada uma com capacidade para armazenar 100 dados e 100 instruções, respectivamente), e seus controladores são independentes. d) Registradores de Uso Geral do processador (16 bits): R1, R2,..., R8. Registrador Temporário: Rt. e) Registradores de Controle do processador (16 bits): Flags: Zero, Números Positivos, Números Negativos, Overflow. Program Counter: PC. Instruction Register: IR. f) Unidade de Predição de Desvio. Existe uma Tabela de Desvios - TD (100 posições acessadas por PC contendo um flag que indica se desvio V ou F e endereço de desvio). Esta tabela é atualizada dinamicamente pelo processador durante a execução do código. g) O processador possui HW para verificação em tempo real da ocorrência das seguintes exceções no código: a) Divisão por zero; b) Decodificação do código de uma instrução inexistente; c) Acesso a um endereço de memória (de dados ou instruções) inexistente ou protegido. h) O compilador executa a análise do código visando a reordenação de suas instruções. O objetivo é minimizar/eliminar os problemas de dependência de instruções em máquinas pipeline. A janela considerada pelo compilador para reordenar uma dada instrução i em processamento é de 3 instruções anteriores e de 3 instruções posteriores à ela, isto é: [i 3, i, i+ 3]. No caso de não conseguir eliminar completamente a dependência de instruções no código, o compilador insere instruções de Nop. i) O compilador decodifica as instruções Assembler do usuário Mul e Div e as converte em uma seqüência de outras instruções, também em Assembler, que executam os Algoritmos de Booth e o de Divisão, respectivamente. Após esta conversão, o compilador passa a gerar o código objeto para o processador. j) O compilador decodifica as instruções Assembler do usuário Adm, Adr, Sum, e Sur e as converte em uma seqüência de outras instruções, também em Assembler, que executam as operações de soma e subtração entre um dado contido em memória e outro armazenado no banco de registradores do processador, respectivamente. Após esta conversão, o compilador passa a gerar o código objeto para o processador.

k) São 3 os possíveis formatos das instruções do processador: De Registrador para Registrador (Tipo R), 00 : Primeiro Operando Segundo Operando Destino Shifts Tipo de instrução 20 19 18 16 15 13 12 10 9 6 5 0 De Acesso à Memória (Tipo M), 01 : Registrador Origem/Destino Base do endereço do dado na memória Tipo de instrução 20 19 18 16 15 6 5 0 De Desvios Condicionais (Tipo D), 10 : Primeiro Operando Segundo Operando Base do Endereço de Desvio Tipo de instrução 20 19 18 16 15 13 12 6 5 0 De Desvios Incondicionais (Tipo J), 11 : Base para o Endereço de Desvio 20 19 0

l) Linguagem Assembler do processador: Instrução Código Comentários 1 Add Reg1, Reg2, RegDst 000000 R Atualiza todos os flags. 2 Sub Reg1, Reg2, RegDst 000001 R Atualiza todos os flags. 3 Sll Reg.Orig, shifts 000010 R Shift left logic (acrescenta 0 s) 4 Srl Reg.Orig, #shifts 000011 R Shift right logic (acrescenta 0 s) 5 Sla Reg.Orig, shifts 000100 R Shift left arithmetic (mantém lsb) 6 Sra Reg.Orig, shifts 000101 R Shift right arithmetic (mantém msb) 7 And Reg1, Reg2, RegDst 000110 R Não atualiza flags. 8 Or Reg1, Reg2, RegDst 000111 R Não atualiza flags. 9 Xor Reg1, Reg2, RegDst 001000 R Não atualiza flags. 10 Not Reg.Orig. 001001 R Inverte o conteúdo de Reg.Orig. 11 Inv Reg.Orig 001010 R Complementa de dois o conteúdo de Reg.Org 12 Nop 001011 R No Operation. 13 Cmp Reg1, Reg2, RegDst 001100 R Compara os conteúdos de Reg1 e Reg2. Atualiza flags: Zero, Nos. Positivos, Nos. Negativos 14 Ldw Reg.Dest., Mem[end] 001101 M Load Word. Reg.Dst.! Mem [PC + Base] 15 Stw Reg.Orig., Mem[end] 001110 M Store Word. Mem [PC + Base]! Reg.Orig. 16 Beq Reg1, Reg2, EndBase 001111 D Branch Equal. PC! PC + EndBase se Reg1 = Reg2. Atualiza flags: Zero. 17 Bnq Reg1, Reg2, EndBase 010000 D Branch Not Equal. PC! PC + EndBase se Reg1!= Reg2. Atualiza flags: Zero. 18 Bla Reg1, Reg2, EndBase 010001 D Branch Larger. PC! PC + EndBase se Reg1 > Reg2. Atualiza flags: Nos. Positivos. 19 Blo Reg1, Reg2, EndBase 010010 D Branch Lower. PC! PC + EndBase se Reg1 < Reg2. Atualiza flags: Nos. Negativos. 20 Jmp EndBase 010011 J PC! PC + EndBase, incondicionalmente. 21 Mul Reg1, Reg2, RegDst --- --- Instrução especial. Utilizada pelo programador Assembler e manipulada pelo compilador, que a traduz, segundo o Algoritmo de Booth, em uma seqüência de outras instruções Assembler.. 22 Div Reg1, Reg2, RegDst --- --- Instrução especial. Utilizada pelo programador Assembler e manipulada pelo compilador, que a traduz, segundo o Algoritmo de Divisão, em uma seqüência de outras instruções Assembler. 23 Adm Reg, Mem[end] --- --- Instrução especial. Utilizada pelo programador Assembler para somar dois operandos, sendo que um reside na memória e desta operação volta para o mesmo endereço de memória (Mem[end]! Reg. + Mem[end]). 24 Adr Reg, Mem[end] --- --- Instrução especial. Utilizada pelo programador Assembler para somar dois operandos, sendo que um reside na memória e desta operação permanece no mesmo registrador de origem (Reg! Reg + Mem[end]). 25 Sum Reg, Mem[end] --- --- Instrução especial. Utilizada pelo programador Assembler para subtrair dois operandos, sendo que um reside na memória e desta operação volta para o mesmo endereço de memória (Mem[end]! Reg. - Mem[end]). 26 Sur Reg, Mem[end] --- --- Instrução especial. Utilizada pelo programador Assembler para subtrair dois operandos, sendo que um reside na memória e desta operação permanece no mesmo registrador de origem (Reg! Reg - Mem[end]).

II. Implementar em linguagem C a descrição funcional de um Microprocessador Convencional e seu Compilador Assembler: a) De arquitetura baseada em 16 bits de dados, 16 bits de endereços, e 21 bits para palavras de instruções. b) Arquitetura Von Neumann: uma única memória (cache) para armazenar dados e de instruções (com capacidade para armazenar 100 dados e 100 instruções). c) Todas as instruções do processador são completamente executadas (isto é, busca, decodificação, operação da ULA, acesso à memória de dados, e escrita no banco de registradores) em 5 ciclos de relógio, exceto: Adm, Adr, Sum, Sur, que necessitam cada uma de 15 ciclos e Mul, Div, que necessitam cada uma de 150 ciclos de relógio. d) 8 Registradores de Uso Geral (16 bits): R1, R2,..., R8, e 1 Registrador Temporário (16 bits): Rt. e) Registradores de Controle do processador (16 bits): 4 Flags: Zero, Números Positivos, Números Negativos, Overflow. Program Counter: PC. Instruction Register: IR. f) O processador possui HW para verificação em tempo real da ocorrência das seguintes exceções no código: a) Divisão por zero; b) Decodificação do código de uma instrução inexistente; c) Acesso a um endereço de memória (de dados ou instruções) inexistente ou protegido. g) São 3 os possíveis formatos das instruções do processador: De Registrador para Registrador (Tipo R), 00 : Primeiro Operando Segundo Operando Destino Shifts Tipo de instrução 20 19 18 16 15 13 12 10 9 6 5 0 Obs: nas instruções Adm, Adr, Sum, Sur o Segundo Operando contém o endereço do registrador que contém o endereço do segundo operando na memória. De Acesso à Memória (Tipo M), 01 : Registrador Origem/Destino Base do endereço do dado na memória Tipo de instrução 20 19 18 16 15 6 5 0 De Desvios Condicionais (Tipo D), 10 : Primeiro Operando Segundo Operando Base do Endereço de Desvio Tipo de instrução 20 19 18 16 15 13 12 6 5 0 De Desvios Incondicionais (Tipo J), 11 : Base para o Endereço de Desvio 20 19 0

h) Linguagem Assembler do processador: Instrução Código Comentários 1 Add Reg1, Reg2, RegDst 000000 R Atualiza todos os flags. 2 Sub Reg1, Reg2, RegDst 000001 R Atualiza todos os flags. 3 Adm Reg, Mem[end] 000010 R Mem[end]! Reg. + Mem[end] 4 Adr Reg, Mem[end] 000011 R Reg! Reg + Mem[end] 5 Sum Reg, Mem[end] 000100 R Mem[end]! Reg. - Mem[end] 6 Sur Reg, Mem[end] 000101 R Reg! Reg - Mem[end] 7 Mul Reg1, Reg2, RegDst 000110 R Atualiza todos os flags. 8 Div Reg1, Reg2, RegDst 000111 R Atualiza todos os flags. 9 Sll Reg.Orig, shifts 001000 R Shift left logic (acrescenta 0 s) 10 Srl Reg.Orig, shifts 001001 R Shift right logic (acrescenta 0 s) 11 Sla Reg.Orig, shifts 001010 R Shift left arithmetic (mantém lsb) 12 Sra Reg.Orig, shifts 001011 R Shift right arithmetic (mantém msb) 13 And Reg1, Reg2, RegDst 001100 R Não atualiza flags. 14 Or Reg1, Reg2, RegDst 001101 R Não atualiza flags. 15 Xor Reg1, Reg2, RegDst 001110 R Não atualiza flags. 16 Not Reg.Orig. 001111 R Inverte o conteúdo de Reg.Orig. 17 Inv Reg.Orig 010000 R Complementa de dois o conteúdo de Reg.Org 18 Nop 010001 R No Operation. 19 Cmp Reg1, Reg2, RegDst 010010 R Compara os conteúdos de Reg1 e Reg2. Atualiza flags: Zero, Nos. Positivos, Nos. Negativos 20 Ldw Reg.Dest., Mem[end] 010011 M Load Word. Reg.Dst.! Mem [PC + Base] 21 Stw Reg.Orig., Mem[end] 010100 M Store Word. Mem [PC + Base]! Reg.Orig. 22 Beq Reg1, Reg2, EndBase 010101 D Branch Equal. PC! PC + EndBase se Reg1 = Reg2. Atualiza flags: Zero. 23 Bnq Reg1, Reg2, EndBase 010110 D Branch Not Equal. PC! PC + EndBase se Reg1!= Reg2. Atualiza flags: Zero. 24 Bla Reg1, Reg2, EndBase 010111 D Branch Larger. PC! PC + EndBase se Reg1 > Reg2. Atualiza flags: Nos. Positivos. 25 Blo Reg1, Reg2, EndBase 011000 D Branch Lower. PC! PC + EndBase se Reg1 < Reg2. Atualiza flags: Nos. Negativos. 26 Jmp EndBase 011001 J PC! PC + EndBase, incondicionalmente.