Arquitetura de Computadores Moderna - PDF Free Download
Download "Arquitetura de Computadores Moderna"
Eliza Botelho Batista
1 Arquitetura de Computadores Moderna Eduardo Barrére DCC/UFJF Baseado no material do prof. Marcelo Lobosco
2 Agenda Visão Geral Objetivos do Curso Ementa Bibliografia Avaliações Datas Importantes Histórico e Evolução Abstrações e Tecnologias Computacionais Linguagem de Máquina
3 Visão Geral Estudo da organização e projeto de computadores (hardware e software) com a finalidade de entender/buscar o desempenho
4 Objetivos do Curso Permitir ao aluno: Avaliar arquiteturas e SOs em busca de obter desempenho para finalidades específicas. Estudar e pensar o hardware como elemento facilitador/limitador do desempenho da aplicação Estudar e pensar o SO como elemento facilitador/limitador do desempenho da aplicação
5 Ementa da parte de Hardware Revisão de: Abstrações e Tecnologias Computacionais; Instruções: a Linguagem de Máquina; Aritmética Computacional; Avaliando e Compreendendo o Desempenho; O Processador: Caminho de Dados e Controle; Pipelining; Hierarquia de Memória Armazenamento, redes e outros periféricos
6 Bibliografia Básica PATERSON, David A. e HENESSY, John L. Organização e Projeto de Computadores: a Interface Hardware/Software. 3ª. Edição. Ed. Campus, PATERSON, David A. and HENESSY, John L. Arquitetura de Computadores: Uma Abordagem Quantitativa, Ed. Campus, 2003 (3ª ed.)
7 Bibliografia Complementar TANEMBAUM, Andrew S., Organização estruturada de computadores. 5ª. Edição. LTC, Outras bibliografias no plano da disciplina.
8 Avaliações da 1a parte Uma prova, provavelmente no dia 11/abril, valendo 30 pontos Seminário, provavelmente no dia 15/abril, valendo 20 pontos sobre desempenho de hardware.
9 von Neummann 1952: John von Neumann ( ) projeta a máquina IAS Projeto lógico ainda é a base dos computadores digitais Memória UC ULA acumulador von Neumann E S
10 Transistores 1948: Bell Labs desenvolve o transistor Menor, mais rápido e duradouro que as válvulas MIT desenvolve TX-0 Primeiro computador transistorizado PDP-1 (US$120,000) Primeiro video-game PDP-8 (US$16,000) Único barramento
11 Circuitos Integrados Década de 1960 Chip (vários transistores em uma única pastinha de silício) IBM System/360 Multiprogramação Emulação 16 MB de memória
12 VLSI, ULSI e Computadores Pessoais Década de 1980: Very Large Scale Integration Dezenas/centenas de milhares de transistores em um único chip Década de 1990: Ultra Large Scale Integration Milhões de transistores em um único chip
13 Classes de computadores Desktop Uso individual Ênfase em bom desempenho por um baixo custo Acesso via teclado/mouse Servidor: Múltiplos usuários Projetados para suportar grandes cargas de trabalho (única aplicação complexa/múltiplas tarefas pequenas) Acesso via rede Abrangem faixa mais ampla em termos de custo e capacidade
14 Classes de computadores Computadores embarcados/embutidos: Maior classe de computadores Microprocessadores encontrados em micro-ondas, celular, automóveis, máquinas de lavar, aviões... Projetados para executar aplicações / conjunto de aplicações relacionadas com um único sistema Necessidades específicas: desempenho mínimo com limitações rígidas em relação ao custo ou potência Possuem maior tolerância a falhas Obtida por simplicidade e/ou redundância
15 Por Baixo do Seu Programa Aplicações típicas podem consistir de milhares de linhas de código e se basear em bibliotecas de software que implementam funções complexas Hardware só pode executar instruções extremamente simples Camadas de software interpretam instruções de alto nível nas instruções simples que o hardware compreende Organizadas de modo hierárquico Muitos tipos de software de sistema SO e compilador fundamentais
16 Por Baixo do Seu Programa Compiladores Realizam outra função fundamental: tradução de programas escritos em linguagem de alto nível em instruções que o hardware possa executar Processo complexo devido à sofisticação das linguagens modernas e às instruções simples executadas pelo hardware Disciplina específica para estudar Compiladores
17 Por Baixo do Seu Programa
18 Por Baixo do Seu Programa Linguagens de Alto Nível oferecem vários benefícios Permitem que o programador pense em uma linguagem mais natural Uso de palavras em inglês e notação algébrica Permitem que linguagem seja projetada de acordo com uso pretendido Fortan, Cobol, Lisp... Maior produtividade do programador Linguagens independentes do computador onde serão executadas
19 Falácias e Armadilhas Armadilha: Ignorar o inevitável progresso do hardware ao planejar uma nova máquina Você planeja introduzir um computador revolucionário, 3 vezes mais rápido do que os atuais Prazo para entrar no mercado: 3 anos Você terá sucesso? Provavelmente não Taxa de crescimento anual de desempenho: 50%
20 Falácias e Armadilhas Máquina com desempenho x hoje Em três anos, 1,5 3 x = 3,4x Nova máquina não teria qualquer vantagem de desempenho
21 Falácias e Armadilhas
22 Linguagem de Máquina Instruções: Palavras da linguagem de um computador Conjunto de instruções: vocabulário dos comandos entendidos por uma determinada arquitetura Veremos conjunto de instruções de um computador real: MIPS Linguagens de computador são muito semelhantes Aprendendo uma, fácil entender as outras
23 Operações do Hardware do Computador Todo computador precisa ser capaz de realizar aritmética Todas as instruções aritméticas MIPS possuem três operandos A ordem do operando é fixa (destino primeiro) Notação assembly do MIPS para soma add a, b, c #a = b + c
24 Operações do Hardware do Computador Por que não quatro parâmetros? Princípio de projeto 1: a simplicidade favorece a regularidade Hardware com número variável de operandos é mais complexo do que hardware para número fixo Como operar com mais parâmetros? add a, b, c add a, a, d # a = b + c + d;
25 Operações do Hardware do Computador Notação assembly do MIPS para subtração sub d, a, e # d = a e Compilando atribuição C complexa no MIPS f = (g+h)-(i+j); Uso de variável temporária add t0, g, h add t1, i, j sub f, t0, t1
26 Operandos do Hardware do Computador Ao contrário dos programas nas linguagens de alto nível, operandos das instruções aritméticas são restritos Registradores Tamanho do registrador MIPS: 32 bits Palavra (word) Quantidade limitada MIPS: 32 registradores Princípio de projeto 2: menor significa mais rápido
27 Operandos do Hardware do Computador Convenção MIPS para representar registradores Sinal de cifrão($) seguido por dois caracteres Veremos o porque dos nomes ao longo do curso Por enquanto: $s0, $s1,... para registradores que correspondem às variáveis dos programas $t0, $t1,... para registradores temporários
28 Operações do Hardware do Computador Tarefa do compilador associar variáveis do programa aos registradores Considere exemplo anterior f = (g+h)-(i+j); f, g, h, i e j associados a $s0, $s1, $s2, $s3 e $s4 add $t0, $s1, $s2 # $t0 contém g + h add $t1, $s3, $s4 # $t1 contém i + j sub $s0, $t0, $t1 # f recebe $t0 - $t1
29 Operações do Hardware do Computador E quanto aos programas com muitas variáveis? E estruturas de dados complexas? Processador só pode conter pequena quantidade de dados nos registradores Compilador tenta manter variáveis mais utilizadas nos registradores (acesso mais rápido) Demais dados mantidos em memória (acesso mais lento) Processo chamado de spilling registers Em MIPS, operações aritméticas só ocorrem com registradores Necessária instruções de transferência de dados entre memória e registradores
30 Operações do Hardware do Computador Load: instrução que copia dados da memória para registrador (lw: load word) Três parâmetros: Registrador destino: local onde os dados serão copiados Deslocamento (ou offset): distância, a partir do endereço inicial da memória, onde dado se encontra Registrador base: endereço inicial da memória Ex: g = h + A[8] g em $s1, h em $s2 e endereço inicial de A em $s3 lw $t0, 8($s3) add $s1, $s2, $t0
31 Operações do Hardware do Computador No MIPS, uma word tem 32 bits (4 bytes) 1 byte = 8 bits Endereços reais diferentes dos endereços fictícios Endereço em bytes da 3 a. palavra é bits de dados 32 bits de dados 32 bits de dados 32 bits de dados
32 Operações do Hardware do Computador Words em MIPS precisam começar em endereços que sejam múltiplos de 4 Requisito denominado restrição de alinhamento Deslocamento apropriado no exemplo anterior (A[8]): 4 x 8 = 32 Little endian x Big endian Endereço da word definida como o endereço do byte mais à esquerda (big) ou mais à direita (little) MIPS: big endian
33 Operações do Hardware do Computador Store: copia dados de um registrador para a memória (sw: store word) Formato semelhante ao load Registrador a ser armazenado Deslocamento Registrador base Ex: A[12] = h + A[8] lw $t0, 32 ($s3) # $t0 = Memória [$s3+32] add $t0, $s2, $t0 # $t0 = $t0 + $s2 sw $t0, 48($s3) # Memória [$s3+48] = $t0
Introdução aos Computadores Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição Breve
Linguagem de Montagem Uma introdução à Programação Assembly do PC Slides baseados em material associado ao livro Introduction to Assembly Language Programming, Sivarama Dandamudi 1 A Visão do Usuário sobre
Introdução ao Paradigma Orientado a Objetos. Principais conceitos
Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura
Memória primária Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h
Memória primária Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Bits Endereços de memória Ordenação de bytes Códigos de correção de erro Memória cachê Empacotamento e tipos de memória
Sistemas Operacionais Aula 2 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE 1/38 O que
CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES
CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES 2.1 Organização de um Computador Típico : Armazena dados e programas. Processador (CPU - Central Processing Unit): Executa programas armazenados na memória, interpretando
Arquitetura de Computadores. Linguagem de Máquina
Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP
SSC510 Arquitetura de Computadores. 2ª aula
SSC510 Arquitetura de Computadores 2ª aula PROFA. SARITA MAZZINI BRUSCHI CISC E RISC ARQUITETURA MIPS PIPELINE Arquitetura CISC CISC Complex Instruction Set Computer Computadores complexos devido a: Instruções
Arquitetura de computadores - Endianness
Arquitetura de computadores - Endianness Há diversos sistemas computacionais existentes no mercado. É de extrema importância destacar um ponto de diferenciação entre eles, que são as plataformas e arquiteturas.