• Nenhum resultado encontrado

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

N/A
N/A
Protected

Academic year: 2021

Share "PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca"

Copied!
40
0
0

Texto

(1)

PCS-2529

Introdução aos Processadores

(2)
(3)

1. INTRODUÇÃO

 Computador Digital: “É uma máquina capaz de solucionar problemas através da execução de instruções que lhe são fornecidas”.

 Programa: “É uma sequência de instruções que descrevem como executar uma determinada tarefa”.

 Instruções de Máquina: “Instruções que o computador é capaz de reconhecer e executar, para as quais todos os programas devem ser convertidos antes que eles possam ser executados”.

 Em geral não são muito complicadas.  Exemplos:

 “Somar dois números”

 “Verificar se um número é zero”

(4)

1. INTRODUÇÃO

 Linguagem de Máquina: “Linguagem que torna possível as pessoas se comunicarem com o computador, composta pelas instruções primitivas de máquina”.

 Quanto mais complexa a linguagem e, portanto, as instruções, mais

complicados são os circuitos eletrônicos para implementá-las.

(5)

1. INTRODUÇÃO

 Como tornar a linguagem de máquina (L0) mais simples de ser utilizada ?

 Projetar um novo conjunto de instruções, formando uma linguagem L1, mais

fácil de programar.

 1aAlternativa: Tradução

 Método que consiste na substituição de cada instrução do programa escrito na linguagem L1 por uma sequência de instruções equivalente na linguagem L0.

 O computador executa o programa em L0.

 2aAlternativa: Interpretação

 Método em que um programa escrito na linguagem L0 recebe os

programas escritos em L1, e cada instrução em L1 é executada por uma sequência equivalente em L0.

 O computador executa o programa em L0.

 Comparação entre Tradução e Interpretação:  Similares.

 Ambas executam sequências equivalentes em L0 de cada instrução em L1.

(6)

1. INTRODUÇÃO

 Máquina Virtual: “É um computador hipotético de linguagem de máquina de um nível mais elevado do que a linguagem inerente do computador”.

 Pode-se ter, também, máquinas virtuais baseadas em outras máquinas

virtuais.

 Máquina Multinível: “É um computador que possui máquinas virtuais

dispostas em camadas, ou níveis, umas sobre as outras. Cada linguagem utiliza a sua predecessora como base”.

(7)

1. INTRODUÇÃO

Nível n

Máquina Virtual Mn, com linguagem de

máquina Ln

Os programas em Ln, ou são interpretados por um interpretador em execução em uma linguagem de máquina de nível inferior, ou são traduzidos para a linguagem de máquina de uma máquina de nível inferior.

... Nível 3 Máquina Virtual M3, com linguagem de máquina L3 Nível 2 Máquina Virtual M2, com linguagem de máquina L2

Os programas em L2, ou são interpretados por interpretadores em execução em M1 ou M0, ou são traduzidos para L1 ou L0.

Nível 1

Máquina Virtual M1, com linguagem de

máquina L1

Os programas em L1, ou são interpretados por interpretadores em execução em M0, ou são traduzidos para L0.

Nível 0

Computador Real M0, com linguagem de

Os programas em L0 podem ser executados diretamente pelos circuitos eletrônicos.

(8)

1.1. Considerações Sobre Máquinas Virtuais

 Se uma máquina de linguagem L1 pudesse ser construída a um custo baixo, a

máquina de linguagem L0 não existiria.

 As linguagens L0 e L1 não devem ser muito diferentes, para facilitar o

processo de tradução/interpretação.

 Cada máquina virtual ou real tem a sua linguagem de máquina (instruções que

a máquina é capaz de executar).

 Uma máquina real com linguagem de máquina como o C ou C++ ou Java seria

muito complicada para os padrões atuais.

 O programador de um determinado nível não precisa conhecer os níveis

inferiores.

 O termo “Organização Estrutural de Computadores” vem desta forma de se

(9)

1.2. Máquinas Multinível Contemporâneas

 Em geral, os computadores modernos são máquinas de seis níveis:

Nível 5 Nível de linguagem orientada para problemas

Tradução (compilador)

Nível 4 Nível de linguagem de montagem

Tradução (montador)

Nível 3 Nível de sistema operacional

Interpretação parcial (sistema operacional)

Nível 2 Nível de máquina convencional

Interpretação (microprograma) ou execução direta

Nível 1 Nível de microprogramação

Os microprogramas são executados diretamente pelo hardware

(10)

1.2. Máquinas Multinível Contemporâneas

 Nível 0 - Nível de Lógica Digital  Nível de portas lógicas.

 Entrada: 0 ou 1

 Saída: função simples sobre as entradas (AND, OR, XOR, NOT, etc.).  Nível 1 - Nível de Microprogramação

 É o nível real de linguagem de máquina.

 Cada computador tem seu nível de microprogramação.

 Em geral, o número de instruções (micro-instruções) não ultrapassa 20.  Maior parte: movimentação de dados.

 Possui microprogramas executados neste nível:  Define uma linguagem de nível 2.

 Interpreta as instruções de nível 2.  Nível 2 - Nível de Máquina Convencional

 Existe muita semelhança entre os fabricantes neste nível.

 Cada fabricante tem o seu “Manual de Referência de Linguagem de

(11)

1.2. Máquinas Multinível Contemporâneas

 Nível 3 - Nível de Sistema Operacional  É um nível híbrido.

 Uma parte das instruções deste nível é idêntica às instruções do nível

2, que são interpretadas pelos microprogramas.

 Outra parte é interpretada pelo sistema operacional.  Nível 4 - Nível de Linguagem de Montagem (“Assembly”)

 Provê um método para as pessoas escreverem programas para os níveis 1, 2 e

3 (linguagem simbólica).

 Os programas escritos em linguagem de montagem são traduzidos para as

linguagens de nível 1, 2 ou 3 e interpretados pela máquina virtual ou real.

 Quem faz a tradução é o programa montador (“assembler”).  Nível 5 - Nível de Linguagem de Alto Nível

 Exemplos: C, C++, Java, Perl, Python e PHP.

 Compilador: traduz os programas em linguagem de alto nível para os níveis 3

(12)

1.2. Máquinas Multinível Contemporâneas

 Nível 6 e superiores - ?  Depende da aplicação.

 Pode ser criado para atender a necessidades específicas.

 Arquitetura de Computadores ou Organização de Computadores: “É o estudo de como projetar as partes de um computador que são visíveis aos

(13)

1.3. Evolução das Máquinas Multinível

 1940’s:

 2 níveis: lógica digital (Nível 0) e máquina convencional (Nível 2).  Difícil de entender e de construir.

 Não confiáveis.  1951:

 3 níveis: lógica digital (Nível 0), microprogramação (Nível 1) e máquina

convencional (Nível 2).

 Interpretador embutido e imutável.

 Simplificação do hardware: passa a ter que executar microprogramas.  Maior confiabilidade (menos válvulas).

 1950’s:

(14)

1.3. Evolução das Máquinas Multinível

 1960’s:

 Surgimento do nível de sistema operacional.  Sistemas batchs (em lote).

 Sistemas time-sharing (tempo compartilhado).  1970’s:

(15)

1.4. Hardware, Software e Máquinas Multinível

 Hardware do computador: “É o conjunto de três elementos:

 Circuitos eletrônicos  Memória

 Dispositivos de Entrada e Saída (E/S)”.

 Software: “É o conjunto de instruções que constituem os programas, armazenados em algum meio físico”.

 Firmware: “É o software embutido no dispositivo eletrônico durante a sua fabricação”.

 Exemplos:

 Software “imutável”: brinquedos, instrumentos, BIOS.  Hardware e Software são logicamente equivalentes!

 Uma determinada operação pode ser implementada diretamente por

hardware ou simulada por software.

 ADD - soma de dois operandos.

(16)

1.4. Hardware, Software e Máquinas Multinível

 Atualmente, muitas das operações antigamente programadas no nível de

máquina convencional (Nível 2) passaram a ser executadas pelo hardware ou microprogramas.

1. Instruções para multiplicação e divisão de inteiros. 2. Instruções aritméticas de ponto-flutuante.

3. Instruções aritméticas de dupla precisão (aritmética de números com duas vezes o número de algarismos significativos).

4. Instruções para chamar e retornar de procedimentos. 5. Instruções para acelerar laços (loops).

6. Instruções de contagem (somar 1 a uma variável). 7. Instruções para manipular cadeias de caracteres.

8. Aspectos de aceleração de computações envolvendo matrizes (indexação e endereçamento indireto).

9. Características para permitir que os programas fossem movidos na memória (facilidades de relocação).

10. Relógios para temporizar programas.

11. Sistemas de interrupção que avisam o computador tão logo uma operação de entrada ou saída esteja completada.

(17)

1.4. Hardware, Software e Máquinas Multinível

 A fronteira entre o hardware e o software é variável!

 É transparente se uma determinada instrução é realmente executada por

hardware ou por software.

 A funcionalidade é a mesma.  Muda a velocidade.

(18)

1.5. Evolução dos Computadores

A Geração Zero - Computadores Mecânicos (1642-1945)

 1642 - Primeiro computador - Blaise Pascal

 Computador mecânico com engrenagens e manivelas.  Soma, subtração.

 1672 - Computador mecânico - Leibniz

 Equivalente a uma calculadora de bolso: soma, subtração, multiplicação e

divisão.

 1830’s - Máquina de diferenças - Charles Babbage

 Cálculo de tabelas para a navegação naval através de somas e subtrações

sucessivas (método das diferenças finitas).

(19)

1.5. Evolução dos Computadores

 1834 - Máquina analítica - Charles Babbage

 Foi a primeira tentativa de se construir um computador digital.  Possuía 4 componentes:

 Armazenamento (memória).  Engenho (unidade de cálculo).

 Seção de entrada (leitora de cartões perfurados).  Seção de saída (saída perfurada e impressa).  Programação: Ada Byron.

 1936 - Z1 - Zuse

 Primeira máquina calculadora a relés a funcionar.  1940 - Calculadora - Stibbitz

 Aritmética binária.

 Memória dinâmica a capacitores (necessitavam de refrescamento).  1944 - Mark I - Aiken

 72 palavras de 23 dígitos decimais.  Ciclo de instrução de 6 segundos.

(20)

1.5. Evolução dos Computadores

A Primeira Geração - Válvulas (1945-1955)

 1943 - COLOSSUS - Governo Britânico

 Primeiro computador eletrônico digital do mundo.  Segredo militar.

 1946 - ENIAC I - Eckert/Mauchley

 Início da história do computador moderno.

 Computador e Integrador Numérico Eletrônico.  18.000 válvulas e 1.500 relés.

 30 toneladas e consumo de 140 kW.  20 registradores de 10 dígitos decimais.  Programação: 6.000 chaves e soquetes.  1949 - EDSAC - Wikes

 Primeiro computador de programa armazenado.  1951 - Whirlwind I - M.I.T.

(21)

1.5. Evolução dos Computadores

 1952 - IAS - von Neumann

 Programação por chaves e cabos era lenta.

 O programa era armazenado na forma digital na memória junto com os dados.  Substituição da representação decimal (10 válvulas por dígito) na memória

pela representação digital.

 Projeto básico é atual: máquina de von Neumann.

Memória

Entrada

Unidade

Unidade

Lógica e

de

Aritmética

Saída

Controle

(22)

1.5. Evolução dos Computadores

 Memória: 4096 palavras de 40 bits.  Palavra: 40 bits.

 2 instruções de 20 bits.

 1 no inteiro 39 bits com sinal.  Instrução: 20 bits.

 8 bits - tipo de instrução.

 12 bits - endereço de 1 palavra na memória.  Instruções típicas envolvendo o Acumulador (Ac):

 Ac

Ac + Conteúdo de uma palavra na memória.

 Memória

Ac.

 1953 - 701 - IBM

 2K palavras de 36 bits de núcleo de ferrite.  2 instruções por palavra.

 1956 - 704 - IBM

 4K palavras de 36 bits.

(23)

1.5. Evolução dos Computadores

A Segunda Geração - Transistores (1955-1965)

 1960 - PDP-1 - DEC

 Primeiro minicomputador (50 vendidos).  4K palavras de 18 bits.

 Ciclo de instrução de 5

µ

µ

µ

µ

seg.

 Custava cerca de US$ 120.000.

 Display visual (CRT), com 512x512 pontos.  1961 - 1401 - IBM

 Máquina comercial de pequeno porte, muito popular.  1962 - 7094 - IBM

 Dominou a computação científica no início dos anos 60.  1963 - B5000 - Burroughs

 Primeira máquina projetada para uma linguagem de alto nível (Algol 60).  1964 - IBM 360 - IBM

 Primeira linha de produtos projetados como uma “família” (início).  1964 - 6600 - CDC

(24)

1.5. Evolução dos Computadores

A Terceira Geração - Circuitos Integrados (1965-1980)

 1964... - 360 - IBM

 Primeira linha de produtos projetados como uma família (continuação).  Toda a família com a mesma linguagem de montagem.

 Multiprogramação: vários programas simultaneamente na memória.

 Endereçamento de 224 (16 Mbytes).  Sucessores: 370, 4300, 3080, 3090.

 Linha baseadas em circuitos integrados.  Linha IBM 360: Modelo

Propriedade

30

40

50

65

Desempenho Relativo 1 3,5 10 21 Tempo de Ciclo (ns) 1000 625 500 250 Memória Máxima (K) 64 256 256 512

(25)

1.5. Evolução dos Computadores

 1965 - PDP-8 - DEC

 Primeiro minicomputador de venda em massa (50.000 unidades vendidas).

 Barramento: conjunto de fios paralelos para conectar componentes de um

computador.

 Omnibus:

(*) CPU: Unidade Central de Processamento.

 1970 - PDP-11 - DEC

 Minicomputadores que dominaram os anos 70.

 1974 - 8080 - Intel

 Primeira CPU de uso geral em uma única pastilha.

 1974 - CRAY-1 - Cray

 Primeiro supercomputador.

CPU(*) Memória Terminal Console E/S de fita de papel Outras E/S Omnibus

(26)

1.5. Evolução dos Computadores

A Quarta Geração - Computadores Pessoais e VLSI (1980-?)

 Com a evolução da microeletrônica, tornou-se possível a construção de

circuitos integrados com milhões de transistores por chip.

 Computadores menores, mais rápidos e mais baratos.

 Diminuem-se as necessidades dos centros de computação muito sofisticados.  Passou a ser possível a construção de computadores de uso pessoal

(microcomputadores).

 Processadores de textos, planilhas, divertimento, internet.  Divisão, na época, dos computadores:

(*) MIPs: Milhões de Instruções por Segundo.

 Fronteira entre essas categorias de computadores é dinâmica e muda

rapidamente. “O mainframe de hoje é o microcomputador de amanhã”.

Tipo MIPs(*) típicos (relativo) Mbytes típicos (relativo) Máquina

exemplo Exemplo de uso

Computador pessoal 1x 1x IBM PS/2 / PC Processamento de textos, etc. Minicomputador 2x 4x PDP-11/84 Controle de tempo real. Supermini 10x 32x SUN-4 Servidor de arquivos (rede). Mainframe 30x 128x IBM-3090/300 Bancos.

(27)

1.5. Evolução dos Computadores

A Quinta Geração - Computadores de Baixa Potência e Invisíveis

 1989: primeiro tablet

 1993: PDA (Personal Digital Assistants)  1990’s: Smartphone

 Quinta Geração: mudança de paradigma, não de arquitetura!  Computação Ubíqua, Computação Pervasiva

Tipo

Preço (US$)

Exemplo de aplicação

Computador descartável 0,5 Cartões de natal/aniversário

Microcontrolador 5 Relógios, carros, eletrodomésticos Computador móvel e de jogos 50 Videogames domésticos e smartphones Computador pessoal 500 Computador (desktop ou notebook) Servidor 5K Servidor de rede

(28)

1.5. Evolução dos Computadores

(29)

1.5. Evolução dos Computadores

(30)

1.5. Evolução dos Computadores

A Família Intel

 1971 - 4004

 Primeiro microprocessador (CPU em uma única pastilha).

 O objetivo era servir de base para a construção de calculadoras.  4 bits, 45 instruções, 4 Kbytes de endereçamento.

 1972 - 8008

 Processador de 8 bits construído para controlar terminais.  8 bits, 48 instruções, 16 Kbytes de endereçamento.

 1973 - 8080

 Características: 64 Kbytes de endereçamento, clock 10 vezes mais rápido que

o do 8008, compatível com a família TTL.

 1976 - 8085

 Nova versão do 8080, mais rápida.

(31)

1.5. Evolução dos Computadores

 1978 - 8086

 Características: 16 bits, 1 Mbytes de endereçamento.  Utilizado para a construção de microcomputadores.  Deu origem a família 80x86.

 1979 - 8088

 Versão simplificada do 8086, com via de dados de 8 bits.  Permitiu a construção de microcomputadores mais baratos

 Escolhido pela IBM como o microprocessador do IBM PC original.  1982 - 80186

 Versão do 8086 que incorpora o gerador de clock, controlador de

interrupção, temporizador e unidade de acesso direto a memória. Foi pouco usado.

 1982 - 80188

(32)

1.5. Evolução dos Computadores

 1983 - 80286

 Versão do 8086 com 16 Mbytes de endereçamento.

 1 Gbytes de espaço de endereçamento de memória virtual.  Unidade de gerenciamento de memória.

 CPU do microcomputador PC-AT e de algumas versões do PS/2.  1985 - 80386

 Versão do 8086 de 32 bits.  Suporte a multitarefa.

 4 Gbytes de endereçamento.

 64 Tbytes de espaço de endereçamento de memória virtual.  80386DX: via de dados externa de 32 bits.

 80386SX: via de dados externa de 16 bits. Permitiu a migração do hardware

(33)

1.5. Evolução dos Computadores

 1989 - 80486

 Versão melhorada do 80386.

 8 Kbytes de memória cache interna.  Características de máquinas RISC.

 80486DX: versão com o co-processador numérico 80387.  80486SX: versão sem o co-processador numérico.

 1992 - Pentium

 Versão melhorada do 80486, com via de dados externa de 64 bits,

trabalhando internamente com 2 processadores.

 Cache interno de 16 Kbytes (8 para dados e 8 para instruções).  1995 - Pentium Pro

 Versão do Pentium com cache de nível 2 embutido na pastilha do

(34)

1.5. Evolução dos Computadores

(35)

1.5. Evolução dos Computadores

A Família Motorola

 1974 - 6800

 Primeiro microprocessador da Motorola de 8 bits.  1978 - 6809

 Evolução do 6800 com registradores adicionais, novas instruções de

manipulação de dados de 16 bits e mais modos de endereçamento.

 1975 - 6502

 Microprocessador popular da Motorola, utilizado nas máquinas Apple,

compatível com o 6800.

 1979 - 68000

 Microprocessador de 16/32 bits, possuindo vias de dados internas de 32 bits e

externas de 16 bits, e registradores de 32 bits. Nem todas as instruções trabalham com 32 bits.

 Não é compatível com os anteriores (projeto novo).  Utilizado nos microcomputadores Macintosh.

(36)

1.5. Evolução dos Computadores

 1980 - 68008

 Versão do 68000 com via de dados externa de 8 bits e vias de endereços de 20

bits (1 Mbytes de endereçamento), que não foi muito utilizado.

 1983 - 60010

 Evolução do 68000 com controle de memória virtual.  16 Mbytes de endereçamento.

 1983 - 60012

 Versão do 60010 com 2 Gbytes de endereçamento.  1984 - 68020

 Microprocessador de 32 bits, com memória cache interna de 256 bytes. Todas

as instruções trabalham com 32 bits.

 Utilizado pelas estações de trabalho Sun, Apollo e HP.  1987 - 68030

 Versão melhorada do 68020 e com uma unidade de gerenciamento de

memória dentro da pastilha.

(37)

1.5. Evolução dos Computadores

 1990 - 68040

 Versão com co-processador numérico 68881.

 Memória cache interna de 4 Kbytes, para dados e instruções, independentes.  Equivalente ao 80486.

 1994 - 68060

(38)

1.5. Evolução dos Computadores

A Família Zilog

 A Zilog foi fundada em 1974, como uma dissidência da Intel, e projetou o

famoso microprocessador Z80.

 1974 - Z80

 Processador de 40 pinos, sendo uma versão melhorada do 8080, de 8 bits.  1979 - Z8000

 Microprocessador de 16 bits capaz de endereçar até 8 Mbytes de memória.  Possui memória cache para dados e instruções de 256 bytes e unidade de

(39)

1.5. Evolução dos Computadores

A Arquitetura ARM

 Surgiu nas décadas de 1980 e 1990.

 Exemplo de aplicação: tablet Samsung Galaxy Tab.

 Sucesso nos mercados de dispositivos de baixa potência, móveis e embutidos.  Até 2011, vendeu cerca de 15 bilhões de dispositivos.

(40)

1. INTRODUÇÃO

Referências

Documentos relacionados

(2013 B) avaliaram a microbiota bucal de oito pacientes submetidos à radioterapia na região de cabeça e pescoço através de pirosequenciamento e observaram alterações na

São considerados custos e despesas ambientais, o valor dos insumos, mão- de-obra, amortização de equipamentos e instalações necessários ao processo de preservação, proteção

O Governo do Estado de Alagoas, através da Secretaria de Estado da Cultura e da Imprensa Oficial Graciliano Ramos, lançam o Edital de Incentivo a Produção Literária,

As possibilidades de escolha de não ser mãe são relativamente recentes, e está intimamente ligada a liberdade da mulher em selecionar de forma mais criteriosa seus

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Esse sistema permite a obtenção de um composto orgânico com qualidades físicas, químicas e biológicas comprovadas, sendo o produto certificado pelo

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

LUIS ANTONIO FIORANI, Prefeito Municipal de Vista Alegre do Alto, Estado de São Paulo, no uso de suas atribuições legais, em especial o Inciso II, Alínea “a”, do Artigo 65 da