Baixe o app para aproveitar ainda mais
Prévia do material em texto
111 Introdução Professora: Priscila Doria , M.Sc. pdoria@area1.edu.br 22 Roteiro • Marcos da arquitetura de computadores • Zoológico dos computadores • Exemplos de famílias de computadores • Unidades métricas • Organização estruturada de computadores 33 2700 A.C.: Ábaco • Sumérios inventaram o ábaco na mesopotâmia (babilônia) • Conhecido no mundo ocidental como tábua de cálculos •http://www.britannica.com/EBchecked/topic/340/abacus 44 1638: Régua de Cálculo • Padre inglês William Oughtred criou uma tabela para multiplicações muito grandes, a partir das pesquisas sobre logaritmos do escocês John Napier •http://www.britannica.com/EBchecked/topic/340/abacus 555 1642–1945 Geração Zero Computadores Mecânicos Início da Fase Mecânica 66 1642: Máquina de Pascal • Blaise Pascal construiu a 1ª máquina de calcular • Projetada para ajudar o pai (coletor de impostos) • Funcionava com uma manivela operada a mão • Efetuava as operações de adição e subtração 77 1672: Máquina mecânica de Leibniz • Máquina mecânica que podia somar, subtrair, multiplicar e dividir 88 1820: Máquina diferencial de Charles Babbage • Projetou e construiu a máquina diferencial • Capaz de somar e subtrair • Era usada para calcular tabelas de números úteis para navegação naval • Executava um único algoritmo • Método de saída: perfurava resultados sobre chapa de gravação de cobre (prenúncio de CD-Roms) 99 1834: Máquina Analítica de Charles Babbage • Capaz de executar vários algoritmos – Possuía 4 componentes: • Armazenagem (memória) • Moinho (unidade de cálculo) • Entrada (leitora de cartões perfurados) • Saída (cartões perfurados e impressora) – A armazenagem consistia em 1000 palavras de 50 algarismos decimais – Faltou tecnologia à época e a máquina nunca foi construída 1010 • A matemática Ada Byron King criou sequências para a máquina analítica executar • Considerada a primeira programadora 1843: Sequências para a Máquina Analítica de Babbage 1111 1930: Calculadora automática Konrad Zuse • Construiu uma série de máquinas calculadoras automática usando relés eletromagnéticos • Não conhecia o trabalho de Babbage • Em 1944, as máquinas de Zuse foram destruídas pelo bombardeio aliado de Berlim • O trabalho de Zuse não teve nenhuma influência sobre as máquinas subsequentes Replica do Z1 1212 John Atanasoff • Projetou uma máquina super avançada para época • Usava aritmética binária • Memória tinha capacitores recarregados periodicamente para impedir fuga de carga – Os chips modernos de memória dinâmica (DRAM) funcionam desse modo • Infelizmente, a máquina nunca se tornou realmente operacional 1313 Howard Aiken • Revisitou trabalho de Babbage e decidiu construir com relés um computador de uso geral • Em 1944, Aiken construiu o Mark I – Tinha 72 palavras de 23 algarismos decimais cada – Tempo de instrução de 6 s • Aiken, construiu o Mark II • Quando terminou, os computadores de relés estavam obsoletos Mark I Mark II 141414 1945 – 1955 Primeira Geração Válvulas Fim da Fase Mecânica Início da Fase Eletrônica •http://piano.dsi.uminho.pt/museuv/1946mtm3.html • Programação em fios ou cartões perfurados • Um programa por vez • Consumiam muita energia • Imensos e pesados 1515 1943: COLOSSUS • Alan Turing ajudou a projetar o COLOSSUS • Desenvolvido para decodificar mensagens nazistas • Projeto do Governo Britânico • Primeiro computador eletrônico (válvulas) programável • Segredo militar durante 30 anos 1616 1946: ENIAC • John Mauchley e J. Presper Eckert criaram o primeiro computador digital eletrônico de grande escala • Tinha 18.000 válvulas • Começou a ser desenvolvido na 2ª Guerra mundial – Necessidade de calcular trajetória de bombas e de decifrar mensagens secretas 1717 1952: Máquina de Von Neumann • Conhecida como máquina IAS • John projetou uma máquina que carregava programas na memória em vez de lê- los de cartões perfurados • Possuía 5 partes: – Memória – Unidade Lógica e Aritmética – Unidade de controle – Equipamento de Entrada/Saída • Base de todos os computadores digitais 1818 1952: Máquina de Von Neumann • A unidade de lógica e aritmética e a unidade de controle formavam o “cérebro” do computador • Nos computadores modernos elas são combinadas em um único chip chamado de CPU • A máquina não tinha aritmética de ponto flutuante porque Von Neumann achava que qualquer matemático competente conseguiria acompanhar o ponto decimal de cabeça 1919 • Primeiro computador para empresas (13 ton.) • 1000 cálculos por minuto! 1953: UNIVAC-1 •http://internetlooks.com/oncomputers.html 2020 • Primeiro computador de vendas bem sucedidas da IBM • Programas já eram carregados em memória eletrostática 1953: IBM 701 •http://www.columbia.edu/cu/comptinghistory/701.html 212121 1960 – 1965 Segunda Geração Consolidação dos Transistores Fase Eletrônica •http://www.tecmundo.com.br/o-que-e/3596-o-que-e-um-transistor-e-porque-ele-e-importante-para-o-computador-.htm • 1947: Criação do Transistor – Substituem as válvulas – Consomem menos energia – Mais leves – Menores – Mais baratos 2222 Segunda Geração (1955-1965) • Em 1948, a Bell Labs inventou o transistor • Revolucionou os computadores e tornou obsoleto os computadores de válvulas • TX-0 e TX-2 primeiros computadores transistorizados • PDP-1 surgiu em 1961 e podia executar 200.000 instruções por segundo Console do TX-0 PDP-1 2323 1965: PDP-8 • Computador fabricado pela DEC (Digital) • Inovação: – Barramento único (Omnibus) • Barramento é um conjunto de fios paralelos usados para conectar os componentes de um computador • Foi adotada para todos os outros computadores de pequeno porte 242424 1954: IBM 1401 •http://piano.dsi.uminho.pt/museuv/1946ibm1401.html 252525 1965 – 1971 Terceira Geração Circuitos Integrados Fase Eletrônica • Milhares de transistores em um único chip • Mais rápidos • Mais barato • Menor consumo de energia 262626 • Primeiro computador a admitir comandos através de digitação em uma máquina de escrever acoplada • Introduziu os conceitos de multiprogramação • Compatibilidade com programas legados dos computadores anteriores 7094 e 1401 1965: IBM 360 272727 1971 – Hoje Quarta Geração Microprocessadores Computadores Domésticos Fase Eletrônica • Circuitos integrados altamente miniaturizados, empacotados em um único chip • Grande capacidade de processamento • Baixo custo e popularização • Computadores menores e mais rápido 282828 • Primeiro microprocessador • Arquitetura em 4 bits • 2.300 transistores empacotados em silício • Para comparar, um Intel Core tem cerca de 560 milhões de transistores 1971: Intel 4004 •http://www.intel.com/content/www/us/en/history/historic-timeline.html 292929 • 1975: – Surge o Altair, primeiro computador pessoal, com um Intel 8080 (de 8 bits) e custava US$439,00 – Bill Gates e Paul Allen fundam Microsoft para fornecer BASIC para o Altair Micro Computadores •http://www.intel.com/content/www/us/en/history/historic-timeline.html 303030 • 1976: Steve Jobs e Steve Wozniak lançaram o Apple I por US$666,66 Micro Computadores •http://www.intel.com/content/www/us/en/history/historic-timeline.html 3131 • O modelo IBM 5150 (IBM PC) foi uma reação ao Apple II • Sucesso do MS-DOS, que a Microsoft vendia para a IBM • Interface texto 1981: IBM PC •http://www.intel.com/content/www/us/en/history/historic-timeline.html3232 1985: Windows •http://www.intel.com/content/www/us/en/history/historic-timeline.html 333333 Quinta Geração Computadores Invisíveis 3434 Quinta Geração – Computadores invisíveis • A Internet está presente em todo lugar • Processadores estão cada vez menores • Podem ser embutidos em quase tudo – Exemplo: • PDAs, celulares, eletroeletrônicos, automóveis, relógios Chip RFID embutido na mão 3535 Marcos da Arquitetura de Computadores 3636 Marcos da Arquitetura de Computadores 3737 Roteiro • Marcos da arquitetura de computadores • Zoológico dos computadores • Exemplos de famílias de computadores • Unidades métricas • Organização estruturada de computadores 3838 A gama dos computadores Tipos de computador disponíveis atualmente. Os preços devem ser vistos com certa ponderação. 3939 Computador Pessoal Organização Estruturada de Computadores 4040 Roteiro • Marcos da arquitetura de computadores • Zoológico dos computadores • Exemplos de famílias de computadores • Unidades métricas • Organização estruturada de computadores 4141 Pentium 4 • O processador Pentium 4 evoluiu por muitas gerações • O 80386 foi a primeira máquina de 32 bits • Todas as máquinas subsequentes têm, em essência, a mesma arquitetura de 32 bits do 80386 • Alteração importante na arquitetura desde o 80386 foi a introdução das instruções: – MMX, SSE e SSE2 – As instruções MMX, SSE, SSE2 foram projetadas para melhorar o desempenho em aplicações multimídia 4242 Pentium 4 4343 UltraSPARC III • Década de 1970 – Unix era popular em universidades, mas nenhum computador pessoal o executava • Em 1981 – Estudante alemão Andy Benchtolshei construiu uma estação de trabalho Unix, SUN-1 • Em 1982, Andy e Vinod Khosla fundaram a Sun Microsystems • Em 1987, a SUN decidiu projetar sua própria CPU chamada de SPARC – Apenas definiu a arquitetura, diversos fabricantes fizeram suas implementações 4444 8051 • É usado em sistemas embutidos • É um computador inteiro (CPU, memória e E/S) em um único chip • Fabricado pela Intel • Razões para o sucesso do 8051: – Preço – Concorrência – Liberdade de fornecedor – Quantidade de software – Quantidade de programadores e engenheiros de hardware 4545 Roteiro • Marcos da arquitetura de computadores • Zoológico dos computadores • Exemplos de famílias de computadores • Unidades métricas • Organização estruturada de computadores 4646 Unidades Métricas 47 Estudo Independente • Leitura: – Capítulo 1 (Tanenbaum) • Seções: 1.2, 1.3, 1.4 e 1.5 • Atividade: – Lista de Exercícios Nº 1 • Questões: 8, 9, 10, 11 e 12 4848 Roteiro • Marcos da arquitetura de computadores • Zoológico dos computadores • Exemplos de famílias de computadores • Unidades métricas • Organização estruturada de computadores 4949 Organização estruturada de computadores • Um computador digital é uma máquina que pode resolver problemas para as pessoas – Executando instruções que lhe são dadas • Uma sequência de instruções que descreve como fazer uma tarefa é chamada de Programa 5050 Organização estruturada de computadores • Os circuitos eletrônicos de cada computador podem reconhecer e executar diretamente um conjunto limitado de instruções simples – Some dois números – Verifique se um número é zero – Copie dados de uma parte para outra da memória do computador 5151 Organização estruturada de computadores • As instruções primitivas formam uma linguagem com as quais as pessoas podem se comunicar com o computador – Essa linguagem é chamada de Linguagem de máquina – Conjunto de instruções fundamentais que a máquina executa – Expressa como um padrão de 0s e 1s 5252 Organização estruturada de computadores • Preocupações dos projetistas de um novo computador: – Decidir quais instruções devem ser incluídas em sua linguagem de máquina – Tentar fazer com que as instruções primitivas sejam as mais simples possíveis – Tentar ser coerentes com os requisitos de utilização e desempenho idealizados para o computador • Objetivo: reduzir a complexidade e o custo da eletrônica necessária 5353 Linguagens, Níveis e Máquinas Reais • A maioria das linguagens de máquina é bem simples, mas as pessoas acham difícil e entediante • A idéia é projetar um conjunto de instruções que sejam mais convenientes para as pessoas usarem do que as instruções que já vem embutidas na máquina – Linguagem de programação de alto nível (L1) – Linguagem de máquina (L0) – A máquina só pode executar os programas escritos em sua linguagem de máquina (L0) 5454 Linguagens, Níveis e Máquinas Reais • Tradução – Um programa escrito em L1 é traduzido instrução após instrução para uma sequência equivalente em L0 – O computador então executa o programa L0 em vez do antigo em L1 • Interpretação – Um programa escrito em L0 considera um programa escrito em L1 como entrada de dados, examinando cada instrução por vez e executando diretamente a sequência equivalente de instruções em L0 – Essa técnica não requer uma geração prévia de um novo programa em L0 – O programa que a executa é chamado de interpretador 5555 Linguagens, Níveis e Máquinas Reais • Tradução x Interpretação – Semelhanças: • Em ambos os métodos, o computador executa instruções em L1 que realizam sequências equivalentes de instruções em L0 – Diferenças: • Tradução: Todo o programa L1 é convertido para L0. O programa L1 é descartado e então o novo programa L0 é carregado na memória do computador e executado. Durante a execução é o programa L0 recém-gerado que está rodando no computador • Interpretação: Após a decodificação de cada instrução, a instrução é executada imediatamente. Nenhum programa traduzido é gerado. O interpretador está no controle do computador. O programa L1 é apenas uma coleção de dados 5656 Máquinas multiníveis contemporâneas • Os computadores atualmente são extremamente complexo para ser estudado de uma vez • A solução é organizar a máquina em níveis, onde cada nível é definido em função do nível anterior • A linguagem que fica mais embaixo é a mais simples e a que fica mais em cima é a mais sofisticada 5757 Máquinas Multiníveis Contemporâneas Computador de seis níveis. O método de suporte para cada nível está indicado abaixo dele (junto com o nome do programa de suporte). Dirigidos à execução dos interpretadores e tradutores que dão suporte aos níveis mais altos Desenvolvidos pelos programadores de sistemas Voltados aos programadores de aplicação Utilizam interpretadores e tradutores Geralmente utilizam interpretadores Níveis 1,2 e 3 utilizam linguagem numérica Níveis 4 e 5 utilizam palavras na linguagem 5858 Máquinas Multiníveis Contemporâneas • Nível de Dispositivo ( Abaixo do nível 0) – Domínio da engenharia da eletricidade – Projetista vê transistores individuais – Elementos de nível mais baixo para os projetistas de computadores 5959 Máquinas Multiníveis Contemporâneas • Nível Lógico Digital – É o verdadeiro hardware da máquina – Seus circuitos executam os programas em linguagem de máquina de nível 1 – Objetos de interesse são as portas • Cada porta possui uma ou mais entradas digitais ( 0 ou 1) e computa como saída alguma função simples a partir das entradas – Exemplo: E (AND) ou OU (OR) – Um pequeno número de portas combinadas forma uma memória de 1 bit ( 0 ou 1) – As memórias de 1 bit podem ser combinadas em grupos de 16, 32 ou 64 bits e formar os registradores – Portas também podemser combinadas para formar o próprio mecanismo principal de computação 6060 Máquinas Multiníveis Contemporâneas • Nível de Microarquitetura – Formado por um conjunto de 8 a 32 registradores que formam uma memória local e um circuito ULA – ULA (Unidade Lógica e Aritmética) é capaz de executar operações aritméticas simples – Os registradores se conectam à ULA para formar um caminho de dados – Operação básica do caminho de dados consiste em: • Selecionar um ou dois registradores, fazendo com que a ULA – efetue algo com eles (e.g., somar) – Armazene o resultado em algum registrador 6161 Máquinas Multiníveis Contemporâneas • Nível de Microarquitetura (Cont.) – Em algumas máquinas a operação do caminho de dados é controlada por um programa denominado microprograma, em outras é controlada diretamente por hardware – Em máquinas controladas por software, o microprograma é um interpretador para as funções de nível 2 • Exemplo: instrução ADD (SOME) – A instrução ADD é localizada – Seus operando são lidos para dentro do registrador – A soma é calculada na ULA – O resultado é enviado ao local adequado 6262 Máquinas Multiníveis Contemporâneas • Nível Arquitetura do Conjunto de Instruções (ISA) – Conjunto de instruções que são executas por interpretação pelo microprograma ou diretamente pelos circuitos do hardware – Todo fabricante de computadores publica uma manual para cada um dos computadores que vende, intitulado “Manual de Referência de Linguagem de Máquina” – Esses manuais tratam do nível ISA 6363 Máquinas Multiníveis Contemporâneas • Nível de Máquina do Sistema Operacional – Híbrido • Há um conjunto de novas instruções – Exemplo: » Organização diferente de memória » Capacidade de executar dois ou mais programas ao mesmo tempo • Grande parte das instruções do nível ISA 6464 Máquinas Multiníveis Contemporâneas • Nível da Linguagem de Montagem (Assembly) – Forma simbólica para uma das linguagens do nível 5 – Fornece um método para as pessoas escreverem programas para os níveis 1, 2 e 3 em uma forma não seja tão desagradável quanto a linguagem de máquina em si – Os programas em linguagem de montagem são primeiro traduzidos para a linguagem de nível 1, 2 ou 3, e em seguida interpretados pela máquina – Assembler é o programa que realiza essa tradução 6565 Máquinas Multiníveis Contemporâneas • Nível de Linguagem Orientada a Problemas – Consiste em linguagens projetadas para serem usadas pelos programadores de aplicação – Denominadas linguagens de alto nível • Exemplo: C, C++, JAVA, LISP, PROLOG – Programas escritos nessas linguagens: • Podem ser traduzidos para os níveis 3 ou 4 por tradutores conhecidos como compiladores • Podem ser interpretados ao invés de traduzidos (e.g., PHP e ASP) – Programas em JAVA costumam ser primeiro traduzidos para uma linguagem semelhante à ISA, denominada bytecode JAVA, para em seguida ser interpretada pela JVM 6666 Máquinas Multiníveis Contemporâneas • Os computadores são projetados como uma série de níveis • Cada nível é construído sobre seus antecessores • Cada nível representa uma abstração distinta na qual estão presentes diferentes objetos e operações • Arquitetura de Computadores é o estudo sobre como projetar as partes de um sistema de computador que sejam visíveis aos programadores 6767 Evolução das máquinas multiníveis • Hardware: – Objetos tangíveis – Exemplos: • Placas de circuito impresso, cabos, fontes de energia • Software: – Idéias abstratas – Exemplos: • Programas 6868 Evolução das máquinas multiníveis • Hardware e software são logicamente equivalentes • Qualquer operação executada por software também pode ser realizada por hardware • “Hardware é software petrificado”, Karen Panetta Lentz • Qualquer instrução executada em hardware também pode ser realizada em software Um chip de computador 6969 Evolução das máquinas multiníveis • Invenção da microprogramação –Década de 40: • Primeiros computadores digitais tinham apenas dois níveis: – Nível ISA, no qual era feita toda a programação – Nível Lógico Digital, executava os programas • Os circuitos do nível lógico digital eram complicados, difíceis de entender e de montar, e não eram confiáveis 7070 Evolução das máquinas multiníveis • Invenção da microprogramação – 1951: • Maurice Wilkes, pesquisador de Cambridge, sugeriu projetar um computador de três níveis – Objetivo: simplificar drasticamente o hardware • Essa máquina deveria ter: – o nível ISA – o nível de microprograma – o nível lógico digital • Simplificação do hardware reduzindo o número de válvulas e aumentando a confiabilidade • Microprogramação atingiu seu apogeu na década de 1970 7171 Evolução das máquinas multiníveis • Invenção do Sistema Operacional (S.O) – No início da informática, grande parte dos computadores era ‘acessível a todos’ – O programador tinha de operar a máquina pessoalmente – Os programas eram armazenados em cartões perfurados 7272 Evolução das máquinas multiníveis • Invenção do Sistema Operacional (Cont.) – Etapas para um programador executar um programa em FORTRAN • Pegava os cartões do compilador FORTRAN em um armário de programas e colocava-o na leitora de cartões • Colocava os cartões perfurados do programador • Esperava o compilador traduzir o programa em FORTRAN para linguagem de máquina • Esperava o compilador perfurar os cartões com o programa traduzido para a linguagem de máquina • Colocava os cartões com o programa em linguagem de máquina na leitora de cartões 7373 Evolução das máquinas multiníveis • Invenção do Sistema Operacional (S.O) – Perto de 1960: Foi criado o Sistema Operacional • Automatizar o trabalho do operador • Minimizar o desperdício de tempo – O programador produzia certos cartões de controle junto com o programa, para serem lidos e executados pelo sistema operacional – O S.O. era mantido o tempo todo no computador 7474 Evolução das máquinas multiníveis • Invenção do Sistema Operacional – Nos anos que se seguiram a 1960, os S.Os tornaram- se cada vez mais sofisticados – Novas instruções, características e funções foram adicionadas ao nível ISA, até ele parecer um novo nível (o Nível de S.O) – Nível do Sistema Operacional de máquina • Instruções idênticas às do nível ISA • Novas instruções (e.g., instruções de Entrada/Saída) 7575 Evolução das máquinas multiníveis • Migração de Funcionalidade para Microcódigo – Novas instruções acrescentadas, apenas ampliando o microprograma • Podia-se acrescentar “hardware” (novas instruções de máquina) por programação – Exemplo: instrução INC (mais rápida) vs. instrução ADD – Instruções mais frequentes adicionadas ao microprograma • Multiplicação e divisão de inteiros • Aritmética para ponto flutuante • Chamar e sair de procedimentos • Acelerar loops (laços) • Manipular cadeias de caracteres 7676 Evolução das máquinas multiníveis • Migração de Funcionalidade para Microcódigo – Pela facilidade de acrescentar novas instruções, outras características foram adicionadas ao microprograma • Aceleração de cálculos que envolvessem vetores • Movimentação de programas na memória após o início da execução (facilidade de relocação) • Sistemas de interrupção que avisavam o computador tão logo uma operação de E/S estivesse concluída • Comutação de processo – capacidade de interromper um programa e iniciar outro com um pequeno número de instruções • Instruções especiais para processar arquivos de áudio, imagem e multimídia 7777 Evolução das máquinas multiníveis • Eliminação da Microprogramação– Os microprogramas engordaram durante as décadas de 1960 e 1970 • Tendiam a ficar cada vez mais lentos à medida que se tornavam mais volumosos – Alguns pesquisadores perceberam que: • Eliminando o microprograma • Promovendo uma drástica redução no número de instruções • Fazendo com que as instruções restantes fossem executadas diretamente – As máquinas ficariam mais rápidas – O projeto de computadores fechou um círculo, voltando ao ponto antes da invenção da microprogramação por Wilkes 7878 Exercícios 1. Qual é a diferença entre interpretação e tradução? 2. Desenhe e descreva os seis níveis das máquinas multiníveis. 79 Estudo Independente • Leitura: – Capítulo 1 (Tanenbaum) • Seção: 1.1 • Atividade: – Lista de Exercícios Nº 1 • Questões: 1, 2, 3, 4, 5, 6 e 7
Compartilhar