Buscar

2009 AC-Aula01

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
PUCC
Organização e Arquitetura de Computadores
*
PUCC
Agenda - Aula 01
 Computador
 Programas
 Elementos básicos da máquina
 Máquina multinível
 Evolução dos computadores
*
PUCC
Computador Digital
 Máquina capaz de resolver problemas através da execução de instruções que lhe são passadas.
 Os circuitos eletrônicos do computador executam um conjunto limitado de instruções simples: adição, subtração, deslocamento, OR, AND.
*
PUCC
Computador Digital
*
PUCC
Computador Digital
*
PUCC
Programa
 Seqüência de instruções que mostra como executar uma determinada tarefa. Pode ser escrita em uma linguagem específica. Por exemplo:
- Some dois números.
- Imprima “positivo” se o resultado for > 0.
- Imprima “negativo” se o resultado for < 0.
*
PUCC
Programa
Qual a linguagem que o computador entende?
*
PUCC
Programa
 Cada instrução deve ser executada pela máquina na qual o programa está instalado.
 Apenas algumas linguagens contém instruções que podem ser diretamente executadas.
 Computador executa um conjunto limitado de instruções simples: adição, subtração, deslocamento, OR, AND. Os programas são convertidos nestas instruções antes de serem executados. 
*
PUCC
Programa
 Os programas cujas instruções não podem ser diretamente executadas devem ser compilados ou interpretados para a linguagem que permita a execução direta de suas instruções.
Tradução e Execução
*
PUCC
Programa
*
PUCC
Programa
 O processo de compilação traduz todo o programa fonte para um programa objeto.
 A interpretação traduz comando a comando do programa fonte, que são executados à medida que são traduzidos.
*
PUCC
Programa
O processo de execução de um programa envolve:
 Executar cada instrução do programa objeto.
 Obter os dados necessários para a computação.
 Produzir as saídas resultantes da computação.
*
PUCC
Elementos Básicos da Máquina
 Memória
 Unidade aritmética e lógica
 Unidade de controle
 Barramento
 Dispositivos de entrada e saída
*
PUCC
Elementos Básicos da Máquina
O sistema no qual o programa será executado deve ser capaz de:
 Armazenar o programa e os dados utilizados na computação.
 Localizar cada instrução e identificar a ação que deve ser realizada.
 Executar a ação, possivelmente obtendo, transformando e armazenando dados.
 Comunicar-se com outros dispositivos (entrada e saída).
*
PUCC
Elementos Básicos da Máquina
Memória
Aritmética e Lógica
Dispositivos
Controle
Canais de Comunicação
O sistema no qual o programa será executado deve ser capaz de:
 Armazenar o programa e os dados utilizados na computação.
 Localizar cada instrução e identificar a ação que deve ser realizada.
 Executar a ação, possivelmente obtendo, transformando e armazenando dados.
 Comunicar-se com outros dispositivos (entrada e saída).
*
PUCC
Máquina Multinível
Swap (int v[], int k)
{int temp:
 temp = v[k];
 v[k] = v[k+1];
 v[k+1] = temp;
}
Linguagem C
swap:
 muli $2, $5, 4
 add $2, $4, $2
 lw $15, 0($2)
 lw $16, 4($2)
 sw $16, 0($2)
 sw $15, 4($2)
 jr $31
Linguagem Assembly
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
Código Executável
*
PUCC
Máquina Multinível
 Uma máquina pode ser vista como tendo vários níveis, cada um capaz de executar um conjunto de instruções específicas. Isto é, cada nível possui linguagens apropriadas para descrever as instruções que nele podem ser executadas.
MÁQUINA VIRTUAL
 A maioria dos computadores possui dois ou mais níveis. Descreveremos a organização de uma máquina de seis níveis. 
*
PUCC
Máquina Multinível
Executados Diretos pelo Hardware
Interpretação (Microprograma)
Tradução (Compilador)
Tradução (Montador)
Interpretação Parcial (SO)
*
PUCC
Máquina Multinível
 Formado pelos transistores individuais
 Tensão, corrente, circuitos, etc.
*
PUCC
Máquina Multinível
 Portas lógicas e CI.
 Implementam a manipulação de sinais executando funções lógicas básicas: AND, OR, NOT, deslocamento de bits, etc. 
*
PUCC
Máquina Multinível
 Microinstruções constituem de microprogramas que controlam a entrada e saída de sinais para os vários dispositivos e controlam as várias portas lógicas. 
 Instruções binárias. 
*
PUCC
Máquina Multinível
 Comandos para executar funções específicas da máquina: formato de instruções endereçamento, interrupções, dependente da arquitetura utilizada.
	MOV 0 ACC;
	ADD 03FC;
*
PUCC
Máquina Multinível
Comandos para executar funções específicas da máquina:
 Gerenciamento de tarefas,
 Sistema de arquivos,
 Memória virtual e paginação.
*
PUCC
Máquina Multinível
Assembler
 MOV 0 ACC;
 MOV 0 R1;
 ...
 GTO A R1
Cada comando corresponde exatamente a uma instrução a ser executada.
Utiliza-se mnemônicos e endereços simbólicos. 
*
PUCC
Máquina Multinível
C, C++, Pascal, Cobol
Aux:= 0;
do 
 print(Aux); 
 Aux:= Aux + 1;
while Aux <= 10;
*
PUCC
Evolução dos Computadores
 GERAÇÃO ZERO - 1836 - Anos 30
Máquinas mecânicas ou baseadas em relés
dificuldade de construção
pouca exatidão
1 nível:
nível de lógica digital
Exemplos:
1936 - Zuze - Z1
Primeira máquina calculadora a relés
1943 - Governo Britânico - Colossus
Primeiro computador eletromecânico
*
PUCC
Evolução dos Computadores
PRIMEIRA GERAÇÃO - Anos 40
Válvulas com processadores
Caras, lentas, queimavam com facilidade
ENIAC, UNIVAC
2 níveis:
nível convencional
nível de lógica digital
Exemplos:
1946 - Eckert/Mauchkley - Eniac 1
A História do computador moderno começa aqui!
*
PUCC
Evolução dos Computadores
SEGUNDA GERAÇÃO - Anos 50
Transistores
menores, mais baratos, rápidos, duráveis
3 níveis:
nível de montadores (assembly)
nível de máquina convencional
nível de lógica digital
Exemplo:
1952 - Von Neumann - IAS		
Modelo da maioria das máquinas atuais.
*
PUCC
Evolução dos Computadores
TERCEIRA GERAÇÃO - Anos 60
Circuitos Integrados (CI`s)
4 níveis:
nível de montadores/compiladores
nível de sistema operacional
nível de máquina convencional
nível de lógica digital
Exemplos:
1960 - DEC - PDP 11
Primeiro minicomputador (50 unidades vendidas)
1964 - IBM - 360
Primeira linha de produtos projetada como uma família.
*
PUCC
Evolução dos Computadores
QUARTA GERAÇÃO - Anos 70
Microprocessadores/ Mem. semicondutora
VLSI Very Large Scale Integration
5 níveis:
nível de montadores/compiladores
nível de sistema operacional
nível de máquina convencional
nível de microprogramação
nível de lógica digital
Exemplos:
1974 - Intel - 8080 
Primeira CPU de uso geral em um chip.
*
PUCC
Evolução dos Computadores
QUINTA GERAÇÃO - Anos 80
Máquinas RISCs
Crise do Software
Linguagem C
4 níveis:
nível de montadores/compiladores 
nível de sistema operacional
nível de máquina convencional
nível de lógica digital
Exemplos: RISC, MIPS, Sparc.
*
PUCC
Evolução dos Computadores
Crise do Software
Diminuição do preço de hardware 
Aumento do preço relativo do software
Dificuldades em achar programadores
Aumento do preço absoluto do software
Aumento da complexidade dos sistemas
Impulsionou linguagens de alto nível
Gap semântico
Melhoria da tecnologia dos compiladores
*
PUCC
Evolução dos Computadores
... Anos 90
Arquiteturas Superescalares
Arquiteturas VLIW ou EPIC (Explicit Parallel Instruction Coding, ex: Merced IA64 da Intel)
Arquiteturas Superpipeline
3 níveis
nível de sistema operacional
nível de máquina convencional
nível de lógica digital
Exemplos:
Pentium, Alpha, Power.
*
PUCC

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais