Arquitetura de Computadores



Documentos relacionados
Arquitetura de Computadores

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

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

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

Organização e Arquitetura de Computadores I

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

Aula teórica 7. Preparado por eng.tatiana Kovalenko

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

Puca Huachi Vaz Penna

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

Arquitectura de Computadores

SSC0611 Arquitetura de Computadores

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Apresentação. Informação geral + Conceitos iniciais

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

Arquitectura e Organização de Computadores

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

Aula Fev-07 Arquitectura de Computadores 2006/07

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

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

4 O conceito de variável

Organização e Arquitetura de Computadores I

Linguagens de Programação

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

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

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

Introdução à Programação de Computadores Fabricação Mecânica

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining

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

SSC304 Introdução à Programação Para Engenharias

Arquitetura e Organização de computadores

Organização de um computador. O que é um computador Organização de um computador Arquitectura de von Neumann

Arquitetura de Computadores. Conjunto de Instruções

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

Sistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores

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

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

AJProença, Sistemas de Computação, UMinho, 2017/18 1

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Introdução à Computação Parte 2

Arquitetura de Computadores

Classificação das linguagens de programação

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INFORMÁTICA Ano Lectivo 2017/2018

Infra- Estrutura de Hardware

Infraestrutura de Hardware. Instruindo um Computador

1.1 Linguagens de Programação

SSC0902 Organização e Arquitetura de Computadores

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

Mestrado em Engenharia Física Tecnológica

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Introdução ao Assembly usando o Simulador SPIM

Arquitetura e Organização de computadores

16. Compilação no Linux

Microcontroladores e Interfaces

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

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Sistemas Operacionais I

O Funcionamento do Processador

Linguagem Técnica I. Prof. Jonatas Bastos

ORGANIZAÇÃO DE COMPUTADORES

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

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

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 /