Você está na página 1de 74

Arquitetura de

Computadores
Prof. Msc. Sidnei Baron
sidnei.baron@unifebe.edu.br
Conteúdo
- Introdução
- Componentes de um computador
- Classificação dos computadores
- Geração dos computadores
- Arquitetura vs Organização de Computadores
Introdução
Introdução
● Sistema
○ Conjunto de componentes que trabalham de maneira coordenada
para realizar alguma atividade

● Sistema de informação
○ Realiza algum tipo de processamento de informações de entrada
para gerar algum tipo de saída
○ O processamento é especificado através de um conjunto de
instruções (um programa) que definem o quê, quando e como
deve ser feito.
Introdução
● Software de Sistema (aplicativo)
○ Software que fornece serviços que normalmente são úteis

● Sistema Operacional
○ Programa de supervisão que gerencia os recursos de um computador para o benefício dos programas executados nessa máquina

● Compilador
○ Um programa que traduz as instruções de linguagem de alto nível para instruções de linguagem assembly

● Montador (assembler)
○ Um programa que traduz uma versão simbólica de instruções para a versão binária

● Dígito binário (bit)


○ Um dos números da base 2 (0 ou 1) que são os componentes da informação

● Linguagem assembly
○ Uma representação simbólica das instruções de máquina

● Linguagem de programação em alto nível


○ Linguagens como C, Fortran ou Java. São compostas de palavras e notações algébricas,
que pode ser traduzida por um compilador para a linguagem assembly
Introdução
● Hardware
○ Equipamento associado ao sistema

● Software
○ Instruções que dizem o que o computador deve fazer

● Pessoas (Peopleware)
○ Programador de computador:
■ Desenvolve softwares
○ Usuário (ou usuário final):
■ Adquire e usa software
Introdução
● Princípio de equivalência de Hardware e Software:

● “Qualquer coisa que possa ser feita com software pode ser feita
com hardware, e qualquer coisa que possa ser feita com hardware
também pode ser feita com software.*”

* Não se trata de velocidade, implementações em hardware são sempre mais


rápidas.
Introdução
● Os sistemas são extremamente complexos se forem
estudados em todos seus detalhes
○ Solução: diferentes níveis de abstração

● Uma abstração omite detalhes desnecessários, ajudando


a reduzir a complexidade

● Removendo camadas temos mais informação


Introdução
Introdução X

Cálculo da média final Programa


Informe a média 1: 8
Informe a média 2: 9
Calcular
Introdução X

Cálculo da média final Programa


Informe a média 1: 8
Informe a média 2: 9
int media(int m1, int m2)
Calcular
{
int mf;
Código mf = (m1 + m2) / 2;
fonte return mf;
}
Introdução X

Cálculo da média final Programa


Informe a média 1: 8
Informe a média 2: 9
int media(int m1, int m2)
Calcular
{
int mf;
Código mf = (m1 + m2) / 2; Compilador
fonte return mf;
}
Media:
Lw $15, 0($2)
Lw $16, 4($2)
Add $14, $15, $16
Div $13, $14, 2
Sw $13, 8($2)
Introdução X

Cálculo da média final Programa


Informe a média 1: 8
Informe a média 2: 9
int media(int m1, int m2)
Calcular
{
int mf;
Código mf = (m1 + m2) / 2; Compilador
fonte return mf;
}
Media:
Lw $15, 0($2)
Lw $16, 4($2)
Add $14, $15, $16
Div $13, $14, 2
Sw $13, 8($2) 00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
Assembler 10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
Introdução X

Cálculo da média final Programa


Informe a média 1: 8
Informe a média 2: 9
int media(int m1, int m2)
Calcular
{
int mf;
Código mf = (m1 + m2) / 2; Compilador
fonte return mf;
}
Media: Hardware
Lw $15, 0($2)
Lw $16, 4($2)
Add $14, $15,
$16
Div $13, $14, 2
00000000101000010000000000011000
Sw $13, 8($2)
00000000100011100001100000100001
10001100011000100000000000000000
Assembler 10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
Componentes de um
Computador
Componentes de um Computador
● Dispositivos de Entrada/Saída
● Memória
● Processador
● Barramento (placa-mãe)
● Redes de computadores
Componentes de um Computador

Memória

Entrada de Saída de
Processador
dados dados
Componentes de um Computador

UCP = Unidade Central de Processamento


Componentes de um Computador
● Dispositivos de Entrada/Saída
Componentes de um Computador
● Memória
○ Memórias Caches
○ Memória Principal (RAM)
○ Memória Secundária (Disco)
Componentes de um Computador
RAM (Random Access Memory)
SRAM (Static RAM)
DRAM (Dynamic RAM)

ROM (Read-Only Memory)


PROM (Programmable ROM)
EPROM (Erasable PROM)
EEPROM (Electrically-Erasable PROM)
FLASH (Igual a EEPROM mas não precisa
apagar toda a memória antes de gravar)
Componentes de um Computador
Componentes de um Computador
● Processador (CPU)
○ Unidade Aritmética e lógica (ULA)
○ Unidade de Controle (UC)
○ Caminho de dados

UC

CPU

ULA
Componentes de um Computador
● Barramento (placa-mãe)
Componentes de um Computador
● Redes de Computadores
○ Sistema que usa equipamentos de comunicação para conectar
computadores e seus recursos.
Classificação dos
Computadores
Classificação dos Computadores
● Computadores Desktop
● Servidores
● Supercomputadores
● Computadores embutidos
Classificação dos Computadores
● Computadores Desktop
○ Computador pessoal
○ Bom desempenho a um único usuário
○ Várias aplicações e um só usuário
Classificação dos Computadores
● Servidores
○ Suporta grande carga de trabalho
○ Vários usuários e uma única aplicação
■ Ex: Servidor Web, Banco de dados, etc

Rack Blade
Torre
Classificação dos Computadores
● Rack
○ Vários tipos e tamanhos
○ Capacidade (quantidade de Us)
Classificação dos Computadores
● Datacenters

Corredor de ar quente e frio


Classificação dos Computadores
Flops (flops/s - Floating-point Operations per Second)
● Operações de ponto flutuante por segundo
● Supercomputadores ● Medida usada determinar o desempenho de um
computador
○ Centenas ou milhares de processadores
○ Construído para executar aplicações específicas
○ Alto custo

Frontier
● Maior supercomputador da atualidade (Nov/2022)
● Estados Unidos - HPE
● 8.730.112 cores
● 1.1 exaflops (quase 3x mais rápido que o segundo lugar)

https://www.top500.org/
Classificação dos Computadores
● Computadores embutidos
○ Tablets, Smartphones, Celulares, Vídeo games, TVs, Carros
○ Mobilidade
○ Baixo consumo de energia

Arduino Raspberry Pi
Geração dos Computadores
Geração dos Computadores
● Geração zero
○ 1642-1945
○ Ábaco/Soroban
○ Calculadora mecânica (Pascal)
○ Máquina diferencial (Baggage - “pai da computação)
○ Programação em Cartão Perfurado
■ Cartão Perfurado → Hollerith → IBM
Geração dos Computadores
● Geração zero
○ Ábaco/Soroban

https://www.efuturo.com.br/jogosseducoficial/soroban/
Geração dos Computadores
● Geração zero
○ Cartão Perfurado
Geração dos Computadores
● Primeira geração
○ 1945-1953
○ Computadores com válvulas
○ Z1 , ABC
○ ENIAC - John Mauchly e J. Presper Eckert Válvula

■ 17.468 válvulas
■ 1800 metros quadrados de chão
■ 30 toneladas
■ 174 kilowatts de energia
■ Memória de 1000 bits de informação
● Cerca de 20 números de 10 dígitos decimais
■ Cartão perfurado para armazenamento
Geração dos Computadores
● Primeira geração

ENIAC
Geração dos Computadores
● Segunda geração
○ 1954-1965
○ Computadores transistorizados
○ DEC - IBM
○ UNIVAC - Unisys Transistor

○ CDC 6600
■ 10 milhões de dólar
■ 10 milhões de instruções por segundo
■ Palavras de 60 bits
■ Memória de 128 k palavras
Geração dos Computadores
● Segunda geração

UNIVAC
Geração dos Computadores
● Terceira geração
○ 1965-1980
○ Computadores com circuitos integrados (microchip)
○ Mais rápidos, menores e mais baratos
○ Tempo compartilhado e multiprogramação
○ Cray-1 (Seymour Cray)
■ 8 milhões de dólares
Microchip
■ 160 milhões de instruções por segundo
■ 8 megabytes de memória
Geração dos Computadores
● Terceira geração

Cray-1
Geração dos Computadores
● Quarta geração
○ 1980-???
○ Computadores VLSI (very large scale integration)
■ 10.000 componentes por chip
■ Primeiro microprocessador – 4004 da Intel
■ Altair 8800, Apple I, Apple II, PET, Vic 20, PC
Microprocessador
■ PC – IBM
● Arquitetura “aberta” se tornou padrão
Geração dos Computadores
● Quarta geração

Apple

PC
Geração dos Computadores
● Comparativo entre as 4 gerações

1ª geração - Válvula

3ª geração - Circuito
integrado (microchip) 2ª geração - Transistor

4ª geração -
Microprocessador
Geração dos Computadores
● Quinta geração (??)
14 nanômetros
○ Multiprocessadores
○ Inteligência artificial
○ Nanotecnologia
○ Computação quântica
Histórico e Evolução
Histórico e Evolução
● Antes de 1940
○ 1642: Máquina de somar (Blaise Pascal)
○ 1673: Máquina de somar e multiplicar (Gottfried Leibniz)
■ Acumulador

○ 1820: Máquina com as quatro operações (Charles Colmar)


○ 1833: Máquina Analítica (Charles Babbage)
■ Qualquer tipo de operação
■ ULA, Memória, UC e dispositivos entrada/saída
■ Primeiro programador

○ 1854: Lógica booleana (George Boole)


■ Modelo de computação digital (lógica binária)

○ 1890: Cartão Perfurado (Herman Hollerith)


○ 1930: Primeiro computador eletrônico da história
■ ABC (Atanasoff-Berry Computer)

○ 1937: Máquina de Turing (Alan Turing)


■ Modelo teórico
Histórico e Evolução

Quem foi o Primeiro Programador ?


Histórico e Evolução
● Primeiro Programador
○ Augusta Ada King (1815-1852)
■ Condessa de Lovelace (Casou-se com um Conde)


● Ajudou Charles Baggage no desenvolvimento
da primeira máquina de cálculo
○ Criou algoritmo para realizar cálculo de funções
matemáticas
Histórico e Evolução
● Década de 1940
○ Segunda Guerra Mundial
○ 1943: Colossus – Inglaterra (Alan Turing)
■ Decifrou o código das mensagens alemãs (Dia D)
● Dica: Filme O Jogo da Imitação
− 1944: Mark I - EUA (Howard Aiken- Harvard e IBM)
Primeiro computador eletromecânico
Cálculos matemáticos da marinha
1955: ENIAC (Universidade de Pensilvânia)
Primeiro computador digital e eletrônico
Utilizado no projeto da bomba de hidrogênio
John von Neumann idealizou o conceito de “programa armazenado”
Base para computação atual
Não possuía interface com usuário (teclado e monitor)
Utilizavam Válvulas
Histórico e Evolução
● Década de 1950
○ Uso de transistores e memória magnética
○ 1951: UNIVAC I
■ Primeiro bem-sucedido fabricado para fins comerciais
○ Processamento batch
■ Programas ou jobs gravados em fita de entrada
■ Executados uma programa por vez
■ Gravando o resultado em uma fita de saída
○ 1953: Primeiro Sistema Operacional
■ Rodavam em computadores da IBM (701 e posterior 704)
■ Automatiza as tarefas manuais
○ Primeiras linguagens de programação: FORTRAN, ALGOL e COBOL
○ Incorporaram conjunto de rotinas para operações de entrada/saída
■ Independência de dispositivos
Histórico e Evolução

Histórico e Evolução
● Década de 1960
○ Circuito integrado
○ Utilização dos computadores nas empresas
○ Novidades:
■ Multiprogramação
● Mais de um programa rodando ao mesmo tempo
■ Substituição de fitas por discos
○ 1963: MCP (Master Control Program)
■ Primeiro S.O. desenvolvido em linguagem de alto nível
○ 1963: Supercomputador CDC 6600 (Seymor Cray)
○ 1964: IBM System/360 e o S.O. OS/360
■ Vários modelos
■ S.O. com compatibilidade entre os modelos
■ Interação com teclado e vídeo (sistema on-line)
Histórico e Evolução
● Década de 1960 (continuação)
○ CTSS (Compatible Time-Sharing System)
■ Primeiro S.O. de tempo compartilhado
○ 1962: MULTICS (Multiplexed Information and Computer Service)
■ Baseado no CTSS
■ Suporte:
● Memória virtual e paginação
● Multiprogramação
● Múltiplos processadores
● Múltiplos usuários
■ Linguagem PL/I
● Linguagem de alto nível independente de plataforma

○ 1965: Primeiros computadores de pequeno porte (PDP-8)


○ 1969: Ken Thompson criou o UNIX
■ Trabalhava no projeto MULTICS
Histórico e Evolução
● Década de 1970
○ VLSI (Very Large Scale Integration)
○ 1970: Minicomputadores PDP-11 e VAX/VMS
○ 1971: Microprocessador Intel 4004
○ 1974: Microprocessador Intel 8080
■ Primeiro microcomputador – Altair
○ 1976: Apple II de 8 bit (SteveJovs e Steve Wozniak)
■ Neste mesmo ano foi fundada a Microsoft e a Apple
○ CP/M (Control Program Monitor) – Digital Reseach
■ Primeiro Sistema Operacional dominante no mercado
○ 1976: Lançado o Cray-1
Histórico e Evolução
● Década de 1970 (continuação)
○ Acessos entre sistemas de computação por redes distribuídas (WAN)
○ Protocolos desenvolvidos:
■ DECnet, SNA, NCP (predecessor do TCP/IP) e X.25
○ Surgimento das redes locais (LAN)
○ S.O. passaram a estar relacionados com softwares de rede
○ 1971: Linguagem Pascal (Niklaus Wirth)
○ 1975: Linguagem C (Dennis Ritchie)
■ Unix foi portado para o C no PDP-11
Histórico e Evolução
● Década de 1980
○ IBM PC – Computadores Pessoais
■ Processador Intel 8088 de 16bits
■ Sistema Operacional DOS (Disk Operating System)
○ Vários sistemas compatíveis com o Unix
■ Universidade de Berkeley desenvolveu sua própria versão do Unix, implantando o protocolo TCP/IP
○ Workstation
■ Monousuário e Multitarefa
○ 1982: Fundada a Sun Microsystem
■ Estações RISC com S.O. SunOS (posterio Sun Solaris)
○ Primeiros S.O. com interface gráfica:
■ Windows e OS/2
○ Primeiros S.O. de rede:
■ Novell Netware e Microsoft LAN Manager
Histórico e Evolução
● Década de 1990
○ ULSI (Ultra Large Scale Integration)
○ Necessidade maior de capacidade de armazenamento e processamento
○ Sistemas especializados em:
■ Multimídia, banco de dados, inteligência artificial e redes neurais
○ TCP/IP padrão da internet
○ Arquitetura Cliente/Servidor
■ Servidor web, e-mail, banco de dados...etc
○ 1991: Desenvolvimento do Linux (Linus Torvalds)
○ 1993: Lançado o Windows NT
○ Popularização dos software abertos
○ S.O. predominantes:
■ MS-Windows NT, Unix (HP-UX), IBM AIX e Sun Solares)
Histórico e Evolução
● Década de 2000
○ Utilização do S.O. em dispositivos móveis
○ Notebook, tablets e celulares
○ Internet e redes sociais
○ S.O. mais intuitivo e proativos
■ Recuperação de erros e atualização automática
○ Processadores de 64 bits
○ Processamento distribuído
○ Virtualização
Histórico e Evolução
● Década de 2010
○ Modelo computacional em nuvem (cloud computing)
○ Popularização de celulares e tablets
○ S.O. focado para smartphones
■ Android
■ iOS
Histórico e Evolução
● A Evolução da Mesa de Trabalho

https://www.youtube.com/watch?v=DJDBzxBE3Fg
Histórico e Evolução
● Década de 2020
○ Como será ??
Lei de Moore
Lei de Moore
○ Gordon E. Moore
■ Cofundador da Intel
○ Projeção:
■ A cada 18 meses
■ Dobra o poder de processamento dos computadores
● Aumento de 100%
■ Com o mesmo custo
Lei de Moore
Lei de Moore
○ Arquivo:
■ Lei-de-moore-50-anos.pdf
Organização vs Arquitetura
de Computadores
Organização e Arquitetura
● Arquitetura
○ Refere-se a atributos que têm impactos diretos sobre a execução
lógica de um programa.
○ Esses atributos são:
■ conjunto de instruções,
■ número de bits que representa um determinado dado,
■ mecanismos de entrada e saída,
■ entre outros.
○ Lida com o funcionamento do Sistema Computacional.
Organização e Arquitetura
● Arquitetura
○ Analogia do apartamento:
■ Medidas, quantidade de quartos..etc
Organização e Arquitetura
● Organização
○ Refere-se às unidades operacionais e suas interconexões.
○ Os atributos que representam a organização de um computador são:
■ detalhes de hardware, tais como:
● sinais de controle,
● interfaces entre computadores e periféricos,
■ tecnologias de memórias utilizadas.
Organização e Arquitetura
● Organização
○ Analogia do apartamento:
■ Como é organizado os cômodos
Arquitetura de Computadores
Prof. Msc. Sidnei Baron
sidnei.baron@unifebe.edu.br

Você também pode gostar