São Carlos - 2018
Universidade de São Paulo
Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação
SSC304
Introdução à Programação Para Engenharias
Prof.Dr. Danilo Spatti
Estrutura de um Computador
GE4 Bio
SSC304
Programação
2 Evolução Tecnológica do Computador
▪ É uma invenção
sem
inventor.
▪ Aperfeiçoamento
constante
de ideias
anteriores.
▪ O termo
computador
era associado a
um profissional capaz de fazer contas
mais complexas e com
extrema
velocidade
.
▪
Filme “Estrelas Além do Tempo”
SSC304
Programação
3 Evolução Tecnológica do Computador
▪ Primeiros dispositivos eram mecânicos.
▪ 1642/1647: primeira calculadora mecânica (Pascal) ▪ 1671/1673: calculadora mecânica com +, -, *, /
(Leibniz)
▪ 1750: Início da Revolução Industrial
SSC304
Programação
4 Evolução Tecnológica do Computador
▪ Época dos dispositivos valvulados.
▪ ENIAC: desenvolvido para fins militares.
➢ 18mil válvulas, 1500 relés, 30 toneladas, 140 kW. ➢ 20 registradores de 10 dígitos decimais cada.
➢ Programação por hardware (chaves e soquetes).
SSC304
Programação
5 Evolução Tecnológica do Computador
▪ Máquina de John von Neumann.
▪ Modelo que persiste até os dias atuais quando do projeto de dispositivos computacionais.
Primeira Geração (1945-1955) Memória Unidade Lógica Aritmética Unidade de Controle Entrada Saída Acumulador
SSC304
Programação
6 Evolução Tecnológica do Computador
▪ Época dos transistores.
▪ PDP1: universidades e centros de pesquisa.
➢ US$ 120.000, 4K palavras de 18 bits, Clock de 200 kHz e vídeo.
SSC304
Programação
7 Evolução Tecnológica do Computador
▪ Era dos circuitos integrados.
▪ Múltiplos transistores encapsulados em uma única pastilha, conceito de LSI.
▪ LSI (Large Scale Integration) – mil transistores por
chip.
▪ Custo reduziu significativamente.
SSC304
Programação
8 Evolução Tecnológica do Computador
▪ Integração em
larga escala
.
▪ Popularização dos PCs e da Lei de
Moore
.
▪ VLSI (Very Large Scale Integration).
▪ 100 mil transistores por chip.
SSC304
Programação
9 Evolução Tecnológica do Computador
▪ Integração em ultra
larga escala.
▪ ULSI (Ultra Large Scale Integration).
▪ Bilhões de transistores por chip.
SSC304
Programação
10 Evolução Tecnológica do Computador
▪ Intel
➢ 4004, 8008, 8080, 8085, 8086, 8088, 80186, 80188, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium MMX,
Pentium II, Pentium III, Pentium IV, Pentium M, Pentium D, Pentium Dual Core, Core 2 Duo, Core 2 Quad, i3, i5, i7, i9...
▪ AMD
➢ x86, K6, Athlon, Duron, Turion, Sempron, Ryzen...
▪ Motorola ➢ 68000. ▪ Zilog ➢ Z80, Z8000. ▪ Texas Instruments ➢ TMS9900. Processadores Comerciais
SSC304
Programação
11 Evolução Tecnológica do Computador
SSC304
Programação
12 Evolução Tecnológica do Computador
▪ Custo: geralmente avaliado em termos de quantidade de pinos ou área de chip.
▪ Clock: velocidade efetiva do processador
numérico.
▪ Cache: tamanho de registradores encapsulados
ao processador.
▪ Instruções e operações
▪ IPS – Instruções com números inteiros / segundo.
▪ FLOPS – Operações de ponto flutuante / segundo.
▪ T/S – Transferências efetivas / segundo.
SSC304
Programação
13 Comparativo
▪ Microprocessador:
➢ Implementado em um único componente, mas com memória, entradas e saídas externas.
➢ Comportamento no tempo é determinado por um programa externo colocado em memória.
➢ Grande desempenho.
▪ Microcontrolador
➢ CPU, memória, entradas e saídas integradas em um único componente.
➢ Programa e dados são alocados em memória interna
ao microcontrolador.
➢ Desempenho inferior ao microprocessador.
SSC304
Programação
14 Comparativo
SSC304
Programação
15 Comparativo
▪ CISC (Complex Instruction Set Computing):
➢ Grande conjunto de instruções (centenas) .
➢ Armazenadas em memória não-volátil interna ao processador.
➢ Quanto mais complexa a operação, mais
microinstruções ela possuirá e mais tempo levará para ser executada.
▪ RISC (Reduced Instruction Set Computing)
➢ Conjunto pequeno de instruções (dezenas) implementadas diretamente em hardware. ➢ Realização mais rápida das instruções.
➢ Instruções são muito simples e para a realização de certas tarefas são necessárias mais instruções que no modelo CISC.
SSC304
Programação
16 Estrutura de um Computador
Composição (I)
Memória
Unidade Central de Processamento
Unidade de Entrada Unidade de Saída Arquitetura Interna
SSC304 Programação 17 Estrutura de um Computador Composição (II) Memória Unid. Lógica e de Aritmética
Unidade Central de Processamento
Unidade de Entrada
Unidade de Saída
SSC304 Programação 18 Estrutura de um Computador Composição (III) Memória Unidade de Entrada Unidade de Saída Unid. Lógica e de Aritmética Unidade Central de Processamento
SSC304 Programação 19 Estrutura de um Computador Composição (IV) Memória Unidade de Entrada Unidade de Saída Unid. Lógica e de Aritmética
SSC304
Programação
20 Linguagens de Programação
▪ As instruções são fornecidas a partir de um conjunto de cadeias ou dígitos binários.
▪ Parte da instrução representa a operação e o restante é o endereço do dado onde será
realizada a operação. ▪ 1001101012
Linguagem de Máquina (I)
SSC304
Programação
21 Linguagens de Programação
Linguagem de Máquina (II)
▪ Um dígito binário é
chamado de bit (BInary digiT).
▪ O bit mais significativo é chamado de MSB (most significant bit) e o menos significativo de LSB
(least significant bit). ▪ Nibble – 4 dígitos
binários
▪ Byte – 8 dígitos binários
Decimal Pesos 22 21 20 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 MSB LSB
SSC304
Programação
22 Linguagens de Programação
▪ As instruções são fornecidas a partir de um conjunto de cadeias ou dígitos binários.
▪ Grande dificuldade de compreensão e
desenvolvimento de programas para a maioria.
Linguagem de Máquina (III)
Código de
Operação Significado
00100000 Carregue: copie no acumulador o conteúdo da palavra endereçada
01001100 Armazene: copie na palavra endereçada o valor do acumulador
SSC304
Programação
23 Linguagens de Programação
▪ Um código especial é definido para cada uma das operações da máquina
▪ Instrução alfanumérica
▪ Linguagem mais próxima do nível do hardware ▪ Assembly
Linguagem de Montagem (I)
Código de Operação Significado
MOV(destino, fonte) Copia o conteúdo do operando fonte para o operando destino
ADD (destino, fonte) Executa a adição direta entre dois operandos, o fonte e o destino
SSC304
Programação
24 Linguagens de Programação
▪ Montador: Traduz as instruções
simbólicas
.
▪ Para cada processador há uma relação
direta
entre a linguagem de
montagem
e a
linguagem
de máquina.
▪ Código não é
portável
.
SSC304
Programação
25 Linguagens de Programação
▪ Em meados de
1950
apareceram as
primeiras linguagens de programação de
alto nível
.
▪ Alto nível: nível mais
distante
das
características do
hardware
.
▪
Exemplos: FORTRAN (“FORmula
TRANSlation
system”) e Matlab (Matrix
LABoratory).
SSC304
Programação
26 Linguagens de Programação
▪ Podem ser compiladas ou interpretadas:
▪ Compiladas
não necessitam
do
compilador
após o processo de criação
do software.
▪ Interpretadas
necessitam
do
compilador
(interpretador) após a criação do
software.
▪ Linguagens de alto nível requerem uma
forma mais
sofisticada
de
tradução
.
SSC304
Programação
27 Linguagens de Programação
▪ Tempo necessário para realizar a
conversão
do programa
fonte
em programa
objeto
.
Linguagem de Alto Nível (III)
Programa Fonte Compilação Programa Objeto Execução Saída do Programa
SSC304
Programação
28 Linguagens de Programação
SSC304
Programação
29 Considerações
▪ Para um
iniciante
, mesmo a linguagem de
alto nível pode ser
complexa
.
▪ A linguagem é dirigida a orientar uma
máquina
e não
pessoas
.
▪ Não escolhe
alternativas
.
▪ Não pode
corrigir
comandos
mal redigidos
.
▪ Não consegue tomar
decisões
baseadas no
SSC304
Programação
30 Fim
spatti@icmc.usp.br