programação de computadores 5912010
TRANSCRIPT
1Organização de Computadores Digitais – IBM1096
1. Introdução
Prof. Luiz Otavio Murta Jr
Local: Depto. de Computação e Matemática
(FFCLRP/USP)
Organização de Computadores
Digitais - 5954008
2Organização de Computadores Digitais – IBM1096
Principais Tópicos
1. Introdução
1.1. Organização
1.2. Breve História da Computação
1.3. Informação Digital
3Organização de Computadores Digitais – IBM1096
1.1.1. Introdução
• 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 descrevendo como
realizar determinada tarefa é chamada de programa.
• Os circuitos eletrônicos de cada computador podem
reconhecer e executar diretamente um conjunto
limitado de instruções simples, para o qual todos os
programas devem ser convertidos antes que possam
ser executados.
4Organização de Computadores Digitais – IBM1096
1.1.2. Introdução
• Essas instruções básicas raramente são muito mais
complicadas do que
▪ Some dois números.
▪ verifique se um número é zero.
▪ Copie dados de uma parte da memória do
computador para outra.
5Organização de Computadores Digitais – IBM1096
1.1.3. Visão Funcional
• As funções de um computador são:
▪ Processamento de dados
▪ Armazenamento de dados
▪ Movimentação de dados
▪ Controle
Sist. de
movim. de
dados
Mecanismo
de controle
Sistema
de armaz.
de dados
Sistema
de proc.
de dados
6Organização de Computadores Digitais – IBM1096
• Estrutura
1.1.4. Visão Estrutural
Computador
Memória
Principal
Entrada
Saída
Sistemas de
Interconexão
Periféricos
Linhas de
Comunicação
Unidade
Central de
Processamento
Computador
CPU
7Organização de Computadores Digitais – IBM1096
ComputadorUnidade
Lógica e
Aritmética
Unidade
de
Controle
Interconexão
Interna da CPU
Registradores
CPU
E/S
Memória
Barra-
mento
CPU
1.1.2. Visão Estrutural
8Organização de Computadores Digitais – IBM1096
• Programa em linguagem de alto nível
• Programa em linguagem assembly
• Sistema Operacional
• Conjunto de Instruções
• Microinstruções
• Blocos Básicos – ULA, MUX, DEMUX...
• Organização dos Blocos Básicos
• Circuitos Combinatórios
• Portas Lógicas
• Circuitos Eletrônicos
1.1.5. Níveis de Execução
9Organização de Computadores Digitais – IBM1096
• Arquitetura
▪ São os atributos visíveis para o programador
➢Conjunto de instruções
➢Número de bits utilizado para a representação de dados
➢Mecanismos de E/S
➢Técnicas de endereçamento
▪ Exemplos
➢Existe uma instrução de multiplicação?
➢Quais as formas de endereçamento existentes?
1.1.5. Arquitetura x Organização
10Organização de Computadores Digitais – IBM1096
• Organização
▪ É como as características da arquitetura são
implementadas
➢Sinais de controle disponíveis
➢ Interfaces
➢Tecnologia de memória
➢Como o conjunto de instruções é executado
▪ Exemplos
➢Existe uma unidade para multiplicação de dados ou são
feitas somas sucessivas?
1.1.5. Arquitetura x Organização
11Organização de Computadores Digitais – IBM1096
• Ter a mesma arquitetura garante a
compatibilidade do código
▪ Exemplo: Computadores Intel X86
➢Todos possuem a mesma arquitetura básica
– Portanto, os códigos escritos para um computador,
geralmente podem ser executados em outro
➢No entanto, a organização é diferente de uma máquina
para outra
1.1.5. Arquitetura x Organização
12Organização de Computadores Digitais – IBM1096
1.1.6. Tipos de Computador
Fonte: [TANENBAUN, 2013]:
Tipo Preço aproximado (US$) Exemplo de Aplicação
Computador descartável 0,5 Cartões de felicitação
Microcontrolador 5 Relógios, carros,
eletrodomésticos
Computador de jogos 50 Videogames domésticos
Computador Pessoal 500 Computador de mesa ou
notebook
Servidor 5 mil Servidor de rede
Conjunto de estações de
trabalho
50 mil - 500 mil Mini-supercomputador
departamental
Mainframe 5 milhões Processamento de dados
em bloco em um banco
13Organização de Computadores Digitais – IBM1096
1.1.7. Computador com sei níveis
14Organização de Computadores Digitais – IBM1096
1.1.8. Microcódigos
• Assim que a microprogramação se tornou comum (por
volta de 1970), os projetistas perceberam que podiam
acrescentar novas instruções simplesmente
ampliando o microprograma.
• Em outras palavras, eles podiam acrescentar
“hardware” (novas instruções de máquina) por
programação.
• Essa revelação levou a uma explosão virtual de
conjuntos de instruções de máquina, pois os
projetistas competiam uns com os outros para
produzir conjuntos de instruções maiores e melhores.
15Organização de Computadores Digitais – IBM1096
1.1.8. Microcódigos
• Muitas delas não eram essenciais considerando que
seu efeito podia ser conseguido com facilidade pelas
instruções existentes, embora às vezes fossem um
pouco mais velozes do que uma sequência já
existente.
• Por exemplo, muitas máquinas tinham uma instrução
INC (INCrement) que somava 1 a um número. Como
essas máquinas também tinham uma instrução geral
ADD, não era necessário ter uma instrução especial
para adicionar 1 (ou 720, se fosse o caso).
• Contudo, INC normalmente era um pouco mais rápida
que ADD, e por isso foi inserida
16Organização de Computadores Digitais – IBM1096
1.1.8. Microcódigos
• Por essa razão, muitas outras instruções foram
adicionadas ao microprograma. Entre elas, as mais
frequentes eram:
1. Instruções para multiplicação e divisão de inteiros.
2. Instruções aritméticas para ponto flutuante.
3. Instruções para chamar e sair de procedimentos.
4. Instruções para acelerar laços (looping).
5. Instruções para manipular cadeias de caracteres.
17Organização de Computadores Digitais – IBM1096
1.1.8. Microcódigos
• Além do mais, assim que os projetistas de máquinas
perceberam como era fácil acrescentar novas
instruções, começaram a procurar outras
características para adicionar aos seus
microprogramas. Alguns exemplos desses
acréscimos são:
1. Características para acelerar cálculos que envolvessem vetores
(indexação e endereçamento indireto).
2. Características para permitir que os programas fossem movidos
na memória após o início da execução (facilidades de
relocação).
3. Sistemas de interrupção que avisavam o computador tão logo
uma operação de entrada ou saída estivesse concluída.
18Organização de Computadores Digitais – IBM1096
1.1.9. Eliminação da microprogramação
• Os microprogramas engordaram durante os
anos dourados da microprogramação (décadas
de 1960 e 1970)
▪ Também tendiam a ficar cada vez mais lentos à
medida que se tornavam mais volumosos.
• Por fim, alguns pesquisadores perceberam que,
eliminando o microprograma
▪ Promovendo uma drástica redução no conjunto de
instruções e fazendo com que as restantes fossem
executadas diretamente (isto é, controle do caminho
de dados por hardware), as máquinas podiam ficar
mais rápidas.
19Organização de Computadores Digitais – IBM1096
1.1.9. Eliminação da microprogramação
• Em certo sentido, o projeto de computadores
fechou um círculo completo, voltando ao modo
como era antes que Wilkes inventasse a
microprogramação.
• Processadores modernos ainda contam com a
microprogramação para traduzir instruções
complexas em microcódigo interno, que pode
ser executado diretamente no hardware
preparado para isso.
20Organização de Computadores Digitais – IBM1096
21Organização de Computadores Digitais – IBM1096
placa Intel DQ67SW.