sistemas operacionais - amazon simple storage service · pipeline 7. risc e cisc. 1. introdução o...

37
Sistemas Operacionais Conceitos de Hardware

Upload: vonga

Post on 09-Nov-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas

Operacionais Conceitos de Hardware

Sumário

1. Introdução

2. Processador

1. Operações de Processamento

2. Unidade de Controle

3. Ciclos de uma Instrução

3. Memória

1. Memória Principal

2. Memória Secundária

3. Memória Cache

4. Dispositivos de Entrada e Saída

5. Barramento

6. Pipeline

7. RISC e CISC

1. Introdução

O hardware de um sistema computacional é um conjunto de circuitos eletrônicos interligados.

MemóriaPrincipal

Dispositivosde E/ S

Processador / UCP

Unidade Lógicae Aritmética

Registradores

Unidade deControle

A principal função do processador é controlar e executar instruções presentes na memória principal.

Componentes do processador:

1) A UC é responsável por gerenciar as atividades

de todos os componentes do computador.

2) A ULA realiza operações lógicas e aritméticas.

3) Os registradores armazenam dados temporariamente.

2. Processador

2.1. Processador Operações de Processamento

Carga (Load)

Cópia de memória em registrador.

Operação na ULA

Valores em registradores são processados pela ULA e armazenados em registrador.

Armazenamento (Store)

Cópia de registrador em memória.

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

10

+1

11

11

Ciclos de uma instrução – várias sub-operações (cada uma em um ciclo de relógio). Busca instrução: armazena

instrução em IR, atualiza PC.

Decodificação: determina o que a instrução significa.

Busca de operandos: cópia de dados da memória para registradores na unidade de processamento.

Execução: Processa dados na ULA.

Armazena resultados: escreve resultados de registrador na memória.

2.2. Processador Unidade de Controle

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1

2.2. Processador Unidade de Controle

Busca de instrução

Cópia da instrução em IR.

PC: contador de programa aponta para próxima instrução.

IR: armazena instrução que foi buscada.

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1 100 load R0, M[500]

2.2. Processador Unidade de Controle

Decodificação

Determina significado da instrução.

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1 100 load R0, M[500]

2.2. Processador Unidade de Controle

Busca de operandos

Cópia de dados da memória para registradores no datapath.

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1 100 load R0, M[500]

10

2.2. Processador Unidade de Controle

Execução

Processa dados na ULA.

Para esta instrução em particular nada acontece durante esta sub-operação.

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1 100 load R0, M[500]

10

2.2. Processador Unidade de Controle

Armazena resultados

Escreve dado de registrador em memória

Para esta instrução em particular nada acontece durante esta sub-operação.

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1 100 load R0, M[500]

10

2.3. Processador Ciclos de uma Instrução

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1

PC=100

10

Fetch

ops Exec. Store

results

clk

Fetch

load R0, M[500]

Decode

100 10

2.3. Processador Ciclos de uma Instrução

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1

10

PC=100

Fetch Decode Fetch

ops Exec. Store

results

clk

PC=101

inc R1, R0

Fetch Fetch

ops

+1

11

Exec. Store

results

clk

101

Decode

2.3. Processador Ciclos de uma Instrução

Processador

Unidade de Controle Datapath

ULA

Registradores

IR PC

Controlador

Memória

I/O

Control

/Status

10 ...

...

load R0, M[500] 500

501

100

inc R1, R0 101

store M[501], R1 102

R0 R1

11 10

PC=100

Fetch Decode Fetch

ops Exec. Store

results

clk

PC=101

Fetch Decode Fetch

ops Exec. Store

results

clk

PC=102

store M[501], R1

Fetch Fetch

ops Exec.

11

Store

results

clk

Decode

102

3. Memória

maiorcapacidade de

armazenamento

maior custo evelocidadede acesso

Memória Secundária

Memória Cache

Memória Principal

Registradores

3.1. Memória Memória Principal

Nesta memória são armazenados instruções e dados.

Composta por unidades de acesso chamadas células.

Cada célula é composta por um determinado número de bits.

célula = 8 bits

en

dere

ços

0

2 -116

2

1

instrução ou dado

3.1. Memória Memória Principal

O número de células endereçadas na memória principal é limitado pelo tamanho do registrador PC.

No caso do registrador possuir n bits – 2n

A memória principal pode ser classificada em função de sua volatilidade:

RAM (Random Access Memória): voláteis.

ROM (Read-Only Memória): não voláteis.

EPROM (Erasable Programmable ROM): não voláteis.

ROM - PROM D23128C numa placa de ZX Spectrum

EPROM - BIOS chip

RAM - 2GB DDR2 667MHz

3. Memória

maiorcapacidade de

armazenamento

maior custo evelocidadede acesso

Memória Secundária

Memória Cache

Memória Principal

Registradores

3.2. Memória Memória cache

O propósito do uso da memória cache é:

Minimizar a dissiparidade entre a velocidade de execução de instruções pelo processador e a velocidade de leitura e gravação de dados na memória principal.

A capacidade de armazenamento das memórias cache é limitada em função do seu alto custo.

A memória cache é uma memória volátil de alta velocidade. Pequena capacidade de armazenamento. Tempo de acesso é muito menor que na

memória principal.

3.2. Memória Memória cache

A memória cache armazena uma pequena parte do conteúdo da memória principal.

Toda vez que o processador faz referência a um dado armazenado em memória, é verificado, primeiramente se o mesmo encontra-se na memória cache.

Cache hit: Caso o processador encontre o dado, não há necessidade de acesso à memória principal, diminuindo assim o tempo de acesso.

Cache miss: Se a informação desejada não estiver na cache, o acesso a memória principal é obrigatório. Neste caso, o processador, a partir do dado referenciado, transfere um bloco de dados da memória principal para a cache.

3.2. Memória Memória cache

Existe um tempo adicional para a transferência de dados entre memórias quando ocorre o cache miss.

Contudo, existe um alto percentual de referências a endereços que são resolvidos posteriormente na cache devido ao princípio da localidade.

Princípio da localidade: tendência do processador referenciar instruções e dados na memoria principal localizados em endereços próximos.

Justificada pela alta incidêndia de sub rotinas (estruturas de repetição) e estruturas de dados (como arrays).

Após a transferência de um novo bloco da memória principal para a memória cache, haverá uma alta probabilidade de cache hits em futuras referências, otimizando, assim, o tempo de acesso ao dado.

3.2. Memória Memória cache

A maioria dos processadores apresenta uma arquitetura de memória cache com múltiplos níveis.

O funcionamento desta arquitetura tem como base o princípio de que quanto menor é a capacidade de armazenamento da memória cache, mais rápido é o acesso ao dado;

Contudo, a probabilidade da ocorrência de cache hits é menor.

A hierarquização da cache em múltiplos níveis é uma solução para aumentar o desempenho no funcionamento das memórias caches.

Hierarquia em dois níveis: • O nível mais alto é chamado L1 (Level 1), com

baixa capacidade e com altíssima velocidade de acesso.

• O segundo nível, L2 (Level 2), possui maior capacidade de armazenamento, porém com velocidade de acesso inferior ao L1.

• Quando a UCP necessita acessar um dado armazenado na memória principal, primeiramente é verificado se o dado encontra-se na cache L1. Caso não seja encontrado, a busca prossegue para L2. E assim por diante.

3. Memória

maiorcapacidade de

armazenamento

maior custo evelocidadede acesso

Memória Secundária

Memória Cache

Memória Principal

Registradores

3.3. Memória Memória Secundária

A memória secundária é um meio não volátil de armazenamento de programas e dados.

O acesso à memória secundária é lento, se comparado com o acesso à memória principal.

• O acesso à memória secundária é da ordem de milissegundos, já o acesso à memória principal é de nanossegundos.

Entretanto, o seu custo é baixo e sua capacidade de armazenamento é bem superior.

Exemplos de memória secundárias:

• Fita magnética, disco magnético e o disco óptico.

4. Dispositivos de E/S

MemóriaPrincipal

Dispositivosde E/ S

Processador / UCP

Unidade Lógicae Aritmética

Registradores

Unidade deControle

4. Dispositivos de E/S

Os dispositivos de entrada e saída (E/S) permitem a comunicação com o mundo externo e podem ser divididos em duas categorias:

1. Os que são utilizados como memória secundária; e

2. Os que servem para a interface usuário-máquina.

1) Os dispositivos utilizados como memória secundária podem ser:

Discos magnéticos, fitas magnéticas, discos óticos etc.

2) Os dispositivos que servem para a interface usuário-máquina têm como objetivo principal facilitar o uso do computador e podem ser:

Scanner, caneta ótica, plotter, mouse, impressora são alguns exemplos desses dispositivos.

5. Barramento

O barramento ou bus é um meio de comunicação compartilhado que permite a comunicação entre as unidades funcionais:

• Processador, memória principal e dispositivos de entrada e saída.

Um barramento possui três tipos de linhas de tráfego de informação.

• Linhas de controle: trafegam informações de sinalização como, por exemplo, o tipo de operação que está sendo realizada.

• Linhas de dados: trafegam informações como instruções e operandos.

• Linhas de endereços: trafegam endereços.

5. Barramento

Barramento processador-memória

Barr

am

ento

de E

/S

Barr

am

ento

de E

/S

Adaptador Adaptador

MemóriaPrincipal

UCP

Adaptador

Barr

am

ento

de b

ack

pla

ne

Na conexão dos barramentos existe um adaptador (bus adapter) que permite compatibilizar as diferentes velocidades dos barramentos.

O barramento de backplane integra os outros dois tipos de barramento.

6. Pipelining

Sem pipelining

Com pipelining

6. Pipelining

Pipelining é a técnica de paralelismo mais utilizada. Ela permite ao processador executar múltiplas instruções paralelamente em estágios diferentes.

A execução completa de uma instrução pode ser dividida em duas fases:

• Busca da instrução + Execução da instrução.

Assim, o processador (ou processadores), por meio de suas várias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instrução se encontra em fase de execução, uma outra instrução possa simultaneamente estar na fase de busca.

6. Pipelining

Quanto maior a quantidade de estágios (subtarefas), mais superposição e aumento de velocidade.

É importante, contudo, ressaltar que o tempo de duração de cada estágio deve ser o mais semelhante possível, de modo que um estágio não espere o término do outro para iniciar a execução seguinte, evitando gargalos indesejáveis.

6. Pipelining

Arquitetura Pipeline com Quatro Estágios

(decodificação) (busca) (busca operandos) (execução)

7. RISC e CISC

A linguagem de máquina é a linguagem que é realmente entendida pelo processador.

Cada fabricante define um conjunto de instruções de máquina suportadas pelo processador.

Um programa em linguagem de máquina pode ser diretamente executado pelo processador.

Não requer tradução ou relocação.

Um computador que possui uma arquitetura (incluindo conjunto de instruções) não pode executar um programa escrito em linguagem de máquina diferente da sua arquitetura.

7. RISC e CISC

Um processador de arquitetura RISC (Reduced Instruction Set Computer) se caracteriza por poucas instruções de máquina, em geral bastante simples, que são executadas diretamente pelo hardware.

Na sua maioria, essas instruções não acessam à memória principal, trabalhando principalmente com registradores.

UltraSPARC – Exemplo de processador RISC

Neste tipo de arquitetura, a implementação do pipelining é fácil.

Exemplos: UltraSPARC (Scalable Processador Architecture)

da Sun RS-6000 (RISC System) da IBM.

7. RISC e CISC

Os processadores com arquitetura CISC (Complex Instruction Set Computer) já possuem instruções complexas que são interpretadas por microprogramas.

O código executável de um processador CISC é interpretado por microprogramas (em memória ROM) durante sua execução, gerando microinstruções, que, finalmente, são executadas pelo hardware.

O número de registradores é pequeno, e qualquer instrução pode referenciar a memória principal.

Neste tipo de arquitetura, a implementação do pipelining é difícil.

Exemplos: VAX (DEC) e Pentium (Intel).

7. RISC e CISC

Utiltários

Circuitos Eletrônicos

Microprogramação

Linguagem de Máquina

Arq

uitetu

raRIS

C

Sistema Operacional

Aplicativos

[Fim] Conceitos de Hardware

“Tudo está fluindo. O homem está em permanente reconstrução, por isso é livre. Liberdade é o direito de transformar-se”

Lauro de Oliveira Lima

Próximo Módulo: Concorrência