Conceitos de Hardware e Software
Arquitetura de Computadores e Sistemas Operacionais
Felipe Rotermel
Tópicos
Hardware Software
Processador Tradutor
Memória Principal Interpretador
Memória Cache Linker
Memória Secundária Loader
Dispositivos de entrada e
saída
Barramento
Pipelining
Arquiteturas RISC e CISC
Hardware
Conceitos relativos a arquitetura de Computadores
Arquitetura de von Neuman
se caracteriza pela possibilidade de uma
máquina digital armazenar seus programas no
mesmo espaço de memória que os dados,
podendo assim manipular tais programas.
Hardware
Conjunto de circuitos eletrônicos integrados
Processadores, memórias, registradores, barramentos, monitores de vídeo, impressoras,
mouse, discos...
Unidades Funcionais
Processador / UCP
Memória Principal
Dispositivos de Entrada e Saída
Processador
A função de um computador é executar tarefas com a finalidade de
resolver problemas.
Uma tarefa pode ser executada por meio de uma sequência
ordenada de instruções de máquina.
O processador é o componente responsável pelo processamento de
instruções e de dados.
Processador
O processador é constituído por centenas, milhares, milhões e ou bilhões de
transistores.
As portas lógicas são implementadas fisicamente por meio de transistores.
Diferentes encapsulamento de transistores.
Processador
Unidade Central de Processamento
Gerencia sistema computacional
Operações, instruções
UC - Unidade de Controle
ULA - Unidade Lógica Aritmética
Registradores
Sinal de Clock
Sincronizar tarefa realizadas
UC - Unidade de Controle
Gerenciar componentes
Decodifica a instrução e gera os sinais de controle para as unidades funcionais.
Ex: Gravação de dados, busca de instruções na memória.
Processador
ULA - Unidade Lógica Aritmética
Testes e comparações (boolean)
Somas e subtrações
Registradores
Pequenas memórias dentro do processador.
Armazenam dados que estão sendo executados no momento.
De uso geral
Contador de Instrução (PC - Program Counter)
Apontador de Pilha (SP - Stack Pointer)
Registrador de Instrução (RI)
Registrador de Status (PSW - Program Status Word)
CPU
Ciclo de instrução:
Busca instrução (PC) +1;
Decodifica a instrução (RI);
Busca operandos;
Executa a instrução;
Escreve os resultados (PSW);
Retorna ao primeiro passo.
Sinal de Clock
Clock é um circuito oscilador que tem a função de sincronizar e ditar a medida
de velocidade de transferência e processamento de dados no computador, por
exemplo, entre o processador e a memória principal. Esta frequência é medida
em ciclos por segundo, ou Hertz.
Sincronizar tarefa realizadas
Clock Interno e externo
Ex: Intel Core i9-13900K, 13ª Geração, 5.8GHz
Ex: CORSAIR MemóriaDDR5 DDR5 5600MHZ (PC5-44800)
Evolução dos processadores
Microprocessador Intel 4004 com 2300 transistores (1971)
Microprocessador Intel 8080 com 6000 transistores (1974)
Pentium IV com 55.000.000 transistores (2001).
Soquetes (Socket)
▪ Intel ▪ AMD
▪ LGA 1700 ▪ Socket AM5
▪ Processadores da 13ª Geração ▪ Série AMD Ryzen 7000
Barramento
Conjunto de condutores por meio dos quais as informações trafegam de uma
parte do computador para outra
Barramento (Bus)
Comunicação entre as unidades
funcionais
Linhas de controles e linhas de dados
Tipos
Barramento processador-memória (Ponte
Norte)
PCI e PCI-E
AGP
SCSI
Barramento E/S (Ponte Sul)
IDE / SATA
PS2 / USB
Memória Principal
Memória principal de 64Kbytes
Armazenamento de instruções e dados
0 Instrução ou Dado
Conjunto de Células (n bits = 0 ou 1) 1
Acesso através de Endereços 2
Endereços
Registrador de endereço de memória .
(MAR - Memory Adress Register) .
.
Registrador de dados da memória (MBR -
216 - 1
Memory Buffer Register)
Célula 8bits
Volátil
Memória Cache
Tempo de acesso menor que Mem. Principal
Volátil
Alta Velocidade
Pequena capacidade
Alto custo
Cache hit / Cache miss
L1 (Rapidez)
e L2 (Espaço)
Memória Cache
Memória Secundária
Permanente, não volátil
Armazenamento de
programas e dados
Lenta, baixo custo e grande
capacidade de
armazenamento
Discos magnéticos, discos
ópticos, memórias flash.
Dispositivos de Entrada e Saída
(E/S) ou (I/O)
Comunicação entre sistema
computacional com mundo
externo
Categorias
Memórias secundárias
Interface usuário máquina
Pipelining
Múltiplas instruções
Linha de montagem
Tarefa -> Subtarefas
Arquitetur
a pipeline
com 5
estágios
Pipeline é natural
Exemplo de Lavanderia
Tem-se os volumes A, B, C e D de roupas A B C D
para lavar, secar e passar
A lavadora leva 30 minutos
A secadora leva 40 minutos
A passadeira leva 20 minutos
Lavanderia Sequencial
6 7 8 9 10 11 Meia noite
Tempo
30 40 20 30 40 20 30 40 20 30 40 20
T
a A
s
k
B
O
r
d C
e
r
D
• A lavanderia sequencial leva 6 horas para 4 volumes
Lavanderia em Pipeline
6 7 8 9 10 11 Meia noite
Tempo
30 40 40 40 40 20
o
r A
d
e
m B
D
• Lavanderia em Pipeline leva 3.5 horas
Arquitetura RISC e CISC
Reduced Instruction Set Complex Instruction Set
Computer Computer
Poucas Instruções Muitas instruções
Instruções executadas pelo Instruções executadas por
Hardware microcódigos
Instruções com formato fixo Instruções com diversos
Utilizam poucos ciclos de máquina formatos
Poucos modos de endereçamento Utilizam múltiplos ciclos
Muitos registradores Diversos modos de
endereçamento
Arquitetura Pipelining
Poucos registradores
Pouco uso de pipelining
⊳ Vídeo sobre essas duas arquiteturas
Arquitetura RISC e CISC
RISC CISC
Software
Conceitos
Software
Da utilidade ao Hardware
Interface entre as necessidades dos
usuários e a capacidade do hardware
Trabalhos mais simples e eficiente para
o usuário
Utilitários (serviços)
Aplicações ----------------------------------->
Tradutor
Conversão da representação simbólica de instruções
em para código de máquina
Linguagem de montagem (assembly)
Montador (Assembler) –> programa-objeto
Linguagem de alto nível
Pascal, Fortran, Cobol
Compilador
Módulo-objeto
programa-fonte Tradutor programa-objeto
Linguagem de montagem Montador Módulo-objeto
Linguagem de alto nível Compilador Módulo-objeto
*programas escritos com montador são específicos para um arquitetura
Compilador
▪ É o utilitário que tem a função de gerar (dado um programa escrito em linguagem de alto nível)
um programa em linguagem de máquina, não executável.
▪ Como exemplos de linguagens de alto nível estão: C, Pascal, Cobol, Delphi, Java, entre outros.
Primeiro Compilador foi
criado em 1954 para a
linguagem Fortran pela IBM
Interpretador
Tradutor que não gera módulo-objeto
Traduz cada instrução na hora da execução
Desvantagem: tempo gasto
Vantagem: dinâmico
Ex: Basic, Perl
Linker
Editor de ligação
Gera programa executável a partir de um Módulo-objeto
Reservar memória para execução
Linkar Módulo-objeto com bibliotecas de linguagens e SO
Run time
Módulo-objeto .Net
DirectX
Módulo-objeto Módulo-objeto
Linker Programa
executável
Loader
▪ Carregador
▪ Carregar na memória principal os programas a serem executados.
▪ Absoluto
o Endereço inicial e tamanho.
▪ Realocável
o Qualquer posição da Memória.
Depurador
Debugger
Estágio do desenvolvimento
Acompanhar execução para detecção de erros
Breakpoint
Watchpoint
Visualizar variáveis
Correção dos programas
Exercícios
1. Quais são as unidades funcionais de um sistema computacional?
2. Como a memória principal de um computador é organizada?
3. O que são memórias voláteis e não voláteis?
4. Conceitue memória cache e apresente as principais vantagens no seu uso.
5. Quais as diferenças entre a memória principal e a memória secundária?
6. Caracterize os barramentos processador-memória, e E/S.
7. Como a técnica de pipelining melhora o desempenho dos sistemas computacionais?
8. Por que o módulo-objeto gerado pelo tradutor ainda não pode ser executado?
9. Quais as funções do linker?
10. Qual a principal função do loader?
11. Quais as facilidades oferecidas pelo depurador?
Bibliografia
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de sistemas operacionais.
5. ed. Rio de Janeiro (RJ): LTC, 2013. p.23-35
Rua São Paulo, 1147 Bloco Faculdade - Victor Konder, Blumenau - SC
3210 4567