Arquitetura de Computadores II. Arm 9. Rodrigo Padilha Thaiane Lopes

Documentos relacionados
ArchC. Wesley Nunes Gonçalves

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

Universidade de São Paulo

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

2 Trabalhos Relacionados

PSI3441 Arquitetura de Sistemas Embarcados

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

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados

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

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

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

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos

SSC0611 Arquitetura de Computadores

III.2 - Princípios de Arquitetura

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

SISTEMAS EMBARCADOS. Conjunto de Instruções Thumb2. Prof. André Schneider de Oliveira

PSI3441 Arquitetura de Sistemas Embarcados

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

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

SSC0114 Arquitetura de Computadores

Prof. Gustavo Oliveira Cavalcanti

Infra-estrutura de Hardware

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

UCP: Construindo um Caminho de Dados (Parte I)

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Sistemas de Computação. Instruções de Linguagem de Máquina

Organização e Arquitetura de Computadores I

DataPath II Tomando o controle!

Infraestrutura de Hardware. Instruindo um Computador

Organização de Unidades de Processamento

Cortex-M3/M4. Conjunto de Instruções Thumb-2 (Assembly Cortex-M3/M4) Unified Assembler Language (UAL) Estrutura de Código em Assembly 06/09/2018

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

Arquiteturas RISC e CISC. Adão de Melo Neto

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

Arquitetura de Computadores Aula 10 - Processadores

Unidade de Controle. UC - Introdução

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

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

Instruções Assembly. César Yutaka Ofuchi (Adaptado do Prof. Hugo Vieira Neto) César Ofuchi

O Funcionamento do Processador

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

Arquitetura de Computadores Aula 11 - Multiprocessamento

Conjunto de Instruções

ção de Computadores II

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Arquitetura e Organização de Computadores

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

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

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE

Aula 8. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura ARM

7/4/2010. Aula 8. Engenharia de Sistemas Embarcados. Repertório de Instruções. Prof. Abel Guilhermino Tópico: Arquitetura ARM

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

Instruções. Maicon A. Sartin

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

Departamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

Organização de Computadores

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

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

Prof. Leonardo Augusto Casillo

Departamento de Sistemas de Computação - SSC. SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica digital I.

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

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

Compiladores. Introdução à Compiladores

Introdução. Registos. ARM flags

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

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

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

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

Arquitetura de Computadores. Prof. Alexandro Baldassin. 1o semestre/2018

Nível Máquina Formatos de Instruções

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

Arquitetura de Computadores. Conjunto de Instruções

Organização de Computadores

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

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Compiladores. Geração de Código Objeto

ção de Computadores I

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

Arquiteturas de Computadores

Arquitectura de Computadores

Primeiro Trabalho de POO Emulador para o Processador Winter

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

Organização Básica de computadores e linguagem de montagem

Arquitetura de Computadores II

Conjunto de Instruções (ISA) I

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Organização e Arquitetura de Computadores I

Unidade Central de Processamento UCP (CPU)

Relembrando desempenho...

SSC0902 Organização e Arquitetura de Computadores

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

Infra-estrutura de Hardware

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

Relembrando desempenho...

Transcrição:

Arquitetura de Computadores II Arm 9 Rodrigo Padilha Thaiane Lopes 26 de Novembro de 2007

Introdução Este trabalho pretende apresentar instruções de máquinas, utilizando a arquitetura Arm9. São apresentadas algumas instruções da linguagem de montagem do processador e algumas representações binárias. O Arm9 é uma arquitetura RISC, assim as instruções de cada tipo possuem um formato relativamente homogêneo, facilitando a apresentação de sua codificação binária.

Foi realizado um estudo da arquitetura ARM9, visto que tínhamos uma pequena base de ARCHC. A arquitetura ARCHC, propõe uma linguagem para a descrição de arquiteturas de processadores baseadas na linguagem SystemC. A partir do arquivo r3000, foi identificando os passos para o desenvolvimento deste trabalho. Somente assim identificamos no Arm9, os tipos de formatos, nomes das instruções, tamanho, bem como a descrição de cada instrução e a informação requerida para decodificá la. Para realizar a descrição deste trabalho, começaremos pelo arquivo arm9_isa.ac, que foi desenvolvido através da semelhança com o r3000_isa.ac. ARM9_ISA.AC Definiu se os formatos das instruções, sendo elas: aritméticas, instruções de desvio condicional, loop e instruções para chamadas a procedimentos. Para o tipo DATA PROCESSING (Type_DPI), que inclui todas as instruções aritméticas, como add e sub, foi utilizado o formato abaixo: ac_format Type_DPI = "%cond:4 %nus1:2 %if:1 %op:4 %sf:1 %rs:4 %rd:4 [ %shift_op:4 %imm:8 %rt:4 ]" ; Este formato é designado às instruções add, sub, and, orr e eor que foram implementadas neste trabalho. A seguir segue os formatos das demais instruções: BRANCH INSTRUCTIONS Type_BI ac_format Type_BI = "%cond:4 %nus1:3 %lr:1 %offs1:24"; SINGLE DATA TRANSFER Type_SDTI ac_format Type SDTI = "%cond:4 %nus1:2 %if:1 %ppi:1 %udf:1 %bwf:1 %wbf:1 %lsf:1 %rn:4 %rd:4 %offs1:12"; NORMAL MULTIPLY Type_NMI ac_format Type_NMI = "%cond:4 %nus1:7 %af:1 %sf:1 %rd:4 %rs:4 %nus2:4 %rm:4"; LONG MULTIPLY Type_LMI

ac_format Type_LMI = "%cond:4 %nus1:5 %uf:1 %af:1 %sf:1 %rdhi:4 %rdlo:4 %rs:4 %nus2:4 %rm:4"; As instruções foram relacionadas aos seus tipos de formatos. Cada uma atendendo as requisições que são relatadas como vimos anteriormente na especificação dos formatos. Abaixo seguem as instruções relacionadas aos seus tipos: DATA PROCESSING ac_instr<type_dpi> AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN; BRANCH INSTRUCTIONS ac_instr<type_bi> B, BLX, BX; SINGLE DATA TRANSFER ac_instr<type_sdti> LDR, STR; NORMAL MULTIPLY ac_instr<type_nmi> MUL, MLA; LONG MULTIPLY ac_instr<type_lmi> SMLAL, SMULL, UMLAL, UMLL; Após relacionarmos as instruções aos seus tipos de formatos, foi designada a declaração das instruções. DATA PROCESSING INSTRUCTIONS ac_format Type_DPI = "%cond:4 %nus1:2 %if:1 %op:4 %sf:1 %rn:4 %rd:4 %shif_op:12"; BRANCH INSTRUCTIONS ac_format Type_BI = "%cond:4 %nus1:3 %lr:1 %offs1:24"; SINGLE DATA TRANSFER (LOAD AND STORE) INSTRUCTIONS ac_format Type_SDTI = "%cond:4 %nus1:2 %if:1 %ppi:1 %udf:1 %bwf:1 %wbf:1 %lsf:1 %rn:4 %rd:4 %offs1:12";

NORMAL MULTIPLY INSTRUCTIONS ac_format Type_NMI = "%cond:4 %nus1:7 %af:1 %sf:1 %rd:4 %rs:4 %nus2:4 %rm:4"; LONG MULTIPLY INSTRUCTIONS ac_format Type_LMI = "%cond:4 %nus1:5 %uf:1 %af:1 %sf:1 %rdhi:4 %rdlo:4 %rs:4 %nus2:4 %rm:4"; Em seguida, realizou se as declarações das instruções com os formatos identificados anteriormente. Visto que neste trabalho, implementou se somente as Instruções DATA PROCESSING, Type_DPI. As outras instruções foram declaradas, mas não sendo implementadas no outro arquivo, arm9_isa.cpp. Na seqüência, especificou se a descrição de cada instrução e a informação requerida para a decodificação. Nas instruções ADD, SUB, AND, ORR, BIC e EOR, foram calculados os opcodes, determinando e identificando cada instrução. Exemplo: Instrução ADD ADD.set_asm("add %cond %rd %rs %rt"); ADD.set_decoder(opcode=0x04, func=0x00); ARM9.AC Neste arquivo, implementaram se os formatos dos tipos de registradores. Realizou se uma pesquisa/estudo, para identificar os formatos corretos para cada registrador de pipeline. Declarados os tipos de formatos, pôde se definir valores aos registradores, afim de obter um endereçamento correto, para a ação do PC. ac_format F_ID_EX = "%npc:32 %data1:32 %data2:32 %imm:32:s %rs:4 %rd:4 %rt: 4 %regwrite:1 %memread:1 %memwrite:1"; As instruções de acesso à memória no ARM são primordialmente a carga de um registrador em uma posição de memória e o armazenamento do conteúdo do registrador em uma posição da memória, conforme dita a filosofia RISC.

AMR9_ISA.CPP Por fim, este arquivo destina se a implementação das instruções. Todas as instruções possuem códigos destinados a executar um procedimento quando são chamadas. Para cada registrador, existe um caso a ser seguido, ou seja uma execução será tomada dependo do tipo de registrador. void ac_behavior( ORR ){... case EX: printf("%d"ex_mem.alures); if(ex_mem.alures ==0) EX_MEM.alures = ex_value1 ex_value2; EX_MEM.alures = ex_value1 + imm; No código acima, é chamada a instrução, verificando os estágios que possui, delimitando qual regra será adotada, levando em consideração a instrução escolhida. No caso, ORR, será executada a instrução através do algoritmo, a fim de realizar tarefas do tipo DPI.

Dificuldades Ocorreram dificuldades na implementação deste trabalho. O fator de maior impacto foi a inexperiência com a linguagem, desde seus conceitos básicos, que deveriam ser adquiridos em Arquitetura de Computadores I. Houve também a incompatibilidade dos horários disponíveis entre os integrantes do grupo, ressaltando entre eles, os horários para tirar dúvidas com o professor. Neste caso, resolve se realizar testes domésticos, o que ocasionou em nenhum resultado, devido a falta de conhecimento para a instalação da ferramenta que nos auxiliaria. Dentre tantas dificuldades, optou se por realizar grande parte das implementações, em horários de aula de outras disciplinas, tentando ter um resultado mínimo para cada checkpoint realizado.

Conclusão Com o foco na simulação de cada instrução, permitiu se a obtenção de uma visão holística da arquitetura dos computadores. Preocupou se com cada valor agregado aos componentes (registradores, memórias, opcodes, instruções, tipos e formatos) que auxiliam na execução de cada instrução. A Arquitetura ARM (ARM9) pode ser implementada em vários processadores de 32 bits, devido à sua versatilidade de uso em diversas aplicações práticas, sendo pela boa performance apresentada ou pela constante atualização, originando novas versões.

Referências Bibliográficas ARM Architecture Reference Manual http://www.gpec.ucdb.br/ricrs/ http://dqsoft.blogspot.com/search/label/arm