Arquitetura de Computadores



Documentos relacionados
Arquitetura de Computadores

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Aplicação. Programa Linguagem de Alto Nível. Programa em Linguagem Assembly. Programa em Linguagem Máquina

ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Introdução. (Aula 2) Organização Estruturada de Computadores

Algoritmos Computacionais

Arquitetura de Computadores

Arquitectura e Organização de Computadores

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

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

Conjunto de Instruções e Modelos de Arquiteturas

PROGRAMAÇÃO I. Introdução

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Desenvolvimento de Aplicações Desktop

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

Organização de Sistemas de Computadores

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Arquiteturas RISC e CISC. Adão de Melo Neto

Arquitetura de Computadores Aula 11 - Multiprocessamento

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Infraestrutura de Hardware. Funcionamento de um Computador

Arquitectura de Computadores

SSC0611 Arquitetura de Computadores

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Linguagens de Programação

Introdução à plataforma Java

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

Conjunto de Instruções e Modelos de Arquiteturas

Linguagens de Programação Classificação

Linguagens de máquina, linguagens simbólicas e linguagens de alto nível

Sistema Computacional

Organização e Arquitetura de Computadores I

Introdução à Computação

Algoritmos e Programação

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Aula Introdutória. Arquitetura e Organização de Computadores

Arquitetura de Computadores. Conjunto de Instruções

Aula 2 - Programação de Computadores - CI208 1/21

MC-102 Aula 01. Instituto de Computação Unicamp

Métodos de implementação de linguagens. Kellen Pinagé

Arquitetura de Computadores

Classificação das linguagens de programação

Infraestrutura de Hardware. Instruindo um Computador

SSC0902 Organização e Arquitetura de Computadores

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

Mestrado em Engenharia Física Tecnológica

Introdução ao Assembly usando o Simulador SPIM

Arquitetura e Organização de computadores

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

O Funcionamento do Processador

Conjunto de Instruções e Arquitectura p.1

Função Fundamental do SO

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

O Funcionamento do Processador

LISTA DE EXERCÍCIOS 01 INTRODUÇÃO À INFORMÁTICA

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

Transcrição:

Arquitetura de Computadores

Apresentação Teóricas Prof. Helder Daniel Gab: 2.66 hdaniel@ualg.pt Práticas Prof. Amine Berquia Gab: 2.?? hdaniel@ualg.pt AA2011/2012 ArqC - DEEI - UAlg 2 /

Programa Práticas (resumido) Introdução Representação de dados Arquitetura MIPS Registos Memória Instruções MIPS Saltos Condições / Ciclos Funções Stack Recursividade Exceções Diretivas Aritmética Lógica / Shift Acesso/escrita de memória I/O AA2011/2012 ArqC - DEEI - UAlg 3 /

Disclaimer As apresentações mostradas nas aulas Praticas não abrangem toda a matéria apresentada. Desta forma os alunos deverão assistir a todas as aulas. Estas apresentações encontram-se na versão beta 0.1, pelo que poderão apresentar algumas incorreções. Agradece-se que esses erros sejam comunicados para que sejam corrigidos. Aceitam-se sugestões para a melhoria das apresentações. AA2011/2012 ArqC - DEEI - UAlg 4 /

Arquitetura de Computadores Definições... a estrutura de um computador que um programador de código máquina tem de entender para escrever corretamente um programa para essa máquina (P&H) Por outras palavras: a parte do conjunto de instruções visível ao programador Descrição lógica dos componentes básicos + operações básicas (do computador) Através de uma Linguagem chamada Assembly AA2011/2012 ArqC - DEEI - UAlg 5 /

Arquitetura de Computadores (2) Todos os processadores têm a mesma arquitetura? Não! As arquiteturas dividem-se em famílias MIPS, PIC, SPARC, Alpha, Motorola, Intel, etc... Cada família têm a sua própria arquitetura Consequentemente, cada arquitetura tem a sua linguagem Assembly ( idioma ) A mesma arquitetura implica o mesmo hardware? Não! AMD e Intel utilizam mesma arquitetura (e.g. x86) ter mesma arquitetura correr mesmos programas AA2011/2012 ArqC - DEEI - UAlg 6 /

Idioma do Computador Para compreender a arquitetura de um computador Aprender o idioma do computador Idioma conjunto de palavras Palavras da linguagem do computador Instruções Idioma do computador Conjunto de instruções Instruction Set Arquitecture (ISA) Parte da arquitetura relacionada com a programação AA2011/2012 ArqC - DEEI - UAlg 7 /

Código Máquina O computador fala binário Instruções em código máquina: 000000 01001 01010 01000 00000 100000 É difícil para os humanos ler código máquina Preferimos representar as instruções num formato simbólico chamado: Assembly: add $t0, $t1, $t2 Muito mais simples de ler! AA2011/2012 ArqC - DEEI - UAlg 8 /

Do código fonte ao código máquina Compilar Assemblar Linkar Compilador: tradutor para assembly de cada arquitetura p.ex. com gcc pode-se pedir compilar apenas: gcc -S programa.c Assemblador: produz código máquina (ficheiros objeto.o) Tradução de assembly para código máquina: ASSEMBLAGEM p.ex. com gcc pode-se pedir compilar e assemblar apenas: gcc -c programa.c Não tem ligação às bibliotecas, por isso, não pode ser executado Linkador: Liga os vários ficheiros objeto (com as bibliotecas) e produz o executável Nesta cadeira, vamos trabalhar com compiladores para MIPS32 AA2011/2012 ArqC - DEEI - UAlg 9 /

Camadas do Computador AA2011/2012 ArqC - DEEI - UAlg 10 /

Linguagem Assembly É a visualização da arquitetura de um computador em termos de programação Estudá-la é o mesmo que estudar a arquitetura do processador para o qual se programa Objetivo: conhecer melhor o funcionamento dos computadores AA2011/2012 ArqC - DEEI - UAlg 11 /

Linguagem Assembly (2) Linguagem de baixo nível (mais baixo só binário) Uma instrução Assembly corresponde a uma instrução máquina (Assembly puro) Exemplo de programa em Assembly MIPS (não puro):.data msg_ola:.asciiz "Ola mundo!\n";.text main: la $4, msg_ola li $2, 4 syscall li $2, 10 syscall AA2011/2012 ArqC - DEEI - UAlg 12 /

Linguagem Assembly (3) Não é frequente programar-se em Assembly Os programas são, normalmente, feitos numa linguagem de alto nível (e.g. Java, C) Programas feitos em: Linguagens de alto nível são independentes (supostamente) da máquina onde correm Java são totalmente independentes do processador onde correm Assembly são escritos completamente em função do processador AA2011/2012 ArqC - DEEI - UAlg 13 /

Assembly, para quê? Além dos motivos pedagógicos (arquitetura) A linguagem assembly é ideal para problemas onde a arquitetura do processador precise ser visível Sistemas operativos, compiladores, drivers, gráficos de baixo nível Sistemas Embebidos (principalmente), onde o processador é parte de uma máquina criada para um problema específico AA2011/2012 ArqC - DEEI - UAlg 14 /

MIPS32 Porquê? MIPS: Microprocessor without Interlocked Pipeline Stages É uma arquitetura RISC De todas as ISAs, a MIPS32 é das mais simples Simples = Eficiente Simples = Mais fácil de aprender mais simples que IA32 (A ISA para a arquitetura x86) Abrange os conceitos básicos de qualquer arquitetura mais evoluída AA2011/2012 ArqC - DEEI - UAlg 15 /

Utilizadores de MIPS Routers Cisco, Linksys Sony Playstation 2, e PSP Dispositivos WinCE Telemóveis Tablets etc... AA2011/2012 ArqC - DEEI - UAlg 16 /

Emulação Outra vez: Arquitetura de um processador? Descrição lógica dos componentes e operações básicas Pode ser implementada em hardware ou em software! Em hardware: processador (em silício) Em software: emulador (em execução num computador) Emuladores da arquitetura MIPS: PCSPIM, xspim, MARS, AA2011/2012 ArqC - DEEI - UAlg 17 /

MARS (1) Vamos utilizar o emulador da arquitetura MIPS32, MARS MARS: MIPS Assembler and Runtime Simulator Funciona sobre a JVM (JRE) Pode ser descarregado em: http://courses.missouristate.edu/kenvollmar/mars/ ou na tutoria eletrónica AA2011/2012 ArqC - DEEI - UAlg 18 /

MARS (2) AA2011/2012 ArqC - DEEI - UAlg 19 /

MARS (3) AA2011/2012 ArqC - DEEI - UAlg 20 /

Série de Fibonacci

Exercícios Explique em que consiste a Arquitetura de um Computador Diga se computadores com arquiteturas diferentes podem correr programas compilados em arquiteturas diferentes. Explique porquê. Relacione os termos Arquitetura de Computador e Instruction Set Arquitecture Explique o que é a Linguagem Assembly, e como é que esta é, normalmente, produzida? Explique o que é a Emulação, no contexto da cadeira. Descreva o processo pelo qual, um programa escrito numa linguagem de alto nível, tem de passar até poder ser executado num computador. Diga qual a arquitetura que vamos utilizar na cadeira. O que é o MARS? AA2011/2012 ArqC - DEEI - UAlg 22 /