Aula 8 - Texto (pdf 121Kb)

Propaganda
SISTEMAS DE MÉDIO E GRANDE PORTE
Características importantes
• Sistemas microprocessados maiores normalmente possuem
duas características importantes:
o Uso de transferências por DMA
o Organização de memórias através de mapeamento
virtual e cache
DMA (“Direct Memory Access”)
• Normalmente nas transferências entre periférico e memória, a
CPU age como intermediário
• O DMA permite uma transferência direta, sem a necessidade
de a CPU buscar as instruções na memória de programa
o Aumenta muito a velocidade de transferência
• Figura 8.11: Hardrware para suporte a DMA
o O DMAC (Controlador DMA) é um CI de controle (um
tipo de coprocessador) e pode tomar controle do
barramento
o Conexão básica: barramentos de endereços, dados e
controle
1
o Conexões extras:
Ao periférico: Busy e Done
À CPU: DMA Grant, DMA request e IRQ*
o A CPU acessa o DMAC como qualquer outro periférico,
lendo dos e escrevendo nos registradores internos do CI
• Conjunto mínimo de registradores do DMAC:
o Reg. de Endereço: Aponta para o endereço fonte /
destino dos dados
o Reg. de Contagem: Contém o número de bytes ainda a
serem transferidos
o Regs. de Controle e de Status
• Sequência de operação:
o A CPU programa o DMAC (escreve os parâmetros da
transferência nos registradores)
o O DMAC requisita o acesso ao barramento
Na fig. 8.11, desliga switch 1 e liga switch 2 e 3
o O DMAC coloca o endereço em Axx e gera os sinais de
controle, emulando a CPU para mover os dados entre
peridérico e memória
Usa os sinais Busy e Done para o handshake com o
2
periférico
o Após cada transferência o DMAC incrementa o reg. de
endereço e decrementa o reg. de contagem
o Quando o reg. de contagem chega a zero, o DMAC
retorna o controle de barramento à CPU (modo burst),
podendo usar interrupção para isto
• Os detalhes de operação variam para cada DMAC
o O DMAC deve sempre emular a CPU
o Modo burst: só retorna o controle à CPU quando acaba
de transferir tudo
o Modo interleave: alterna controle entre DMAC e CPU.
A CPU cede o controle ao DMAC durante suas
operações internas.
O DMAC 68430
• Existe o 68450, bastante complexo e caro. Uma alternativa é
o 68430.
• Estrutura: fig. 8.12
o Linhas padrão do barramento de controle e de endereços
são bidirecionais
Entradas durante a programação do DMAC
3
Saídas quando o DMAC controla o barramento
o Para manter um limite de 48 pinos, os barramentos de
dados e de endereços (A08 – A23) são multiplexados
Linhas OWN* e DBEN* controlam a
multiplexação
• Hardware adicional: fig. 8.13
o Saída OWN* (coletor aberto) ativa quando o DMA toma
o controle
o Saída DBEN* (coletor aberto) ativa quando o DMA é
acessado pela CPU (via CS* ou IACK* com interrupção
pendente no DMAC)
• Comunicação com o periférico: 5 linhas de controle
o REQ* (Request): Periférico requisita serviço (faz o
DMAC requisitar controle)
o ACK* (Acknowledge): DMAC sinaliza dizendo que tem
o controle (ativa no início do ciclo e inativa no final do
ciclo)
o RDY* (Ready): Periférico indica que um dado válido foi
armazenado ou colocado no barramento. Se permanecer
inativo, o DMAC pode executar wait states.
4
o DTC* (Device Transfer Complete): O DMAC indica
que a transferência daquele dado se completou
Se for escrita, indica que a memória já armazenou o
dado
Se for leitura, indica que o dado está no barramento
para ser lido pelo periférico
o DONE*: Como saída (coletor aberto) indica que a
operação toda foi concluída. Como entrada, força o
DMAC a abortar o ciclo
Operação do DMAC:
• Inicialmente, a CPU programa os registradores do DMAC:
o Quantidade de dados a transferir
o Endereço inicial na memória
o Direção da transferência
o Tipo de transferência
• Depois, o periférico requisita o serviço:
o P ativa REQ* → DMAC ativa BR* → DMAC espera
BG* → DMAC ativa BGACK*
• O DMAC gera todos os sinais para a transferência
o Modo burst: vários operandos são transferidos em ciclos
5
consecutivos
o Modo cycle-stealing ou interleave: O barramento pode
ser liberado entre transferências sucessivas
• Registradores do 68430:
o Com 7 bits de endereço, poderíamos ter 128
registradores, mas o 68430 só usa 12
Compatibilidade com o 68450, que possui 4 canais
DMA independentes
o Tabela 8.1: os registradores usam endereços não
sequenciais (subset do 68450)
o MAC: Registrador de endereço (24 bits), incrementa de
1, 2 ou 4 a cada transferência
o MTC: Registrador de contagem (16 bits), decrementa de
1 a cada transferência
o IVR: Vetor de interrupção
O bit zero indica se houve sucesso (0) ou erro (1)
o Modo de operação definido por DCR (device), OCR
(operation) e CCR (channel).
o CSR: Status do DMAC
o CER: Indica erros de operação
6
• Operação geral: fig. 8.14
Arbitragem de barramento
• Pode-se implementar sistemas com múltiplos bus masters.
Exemplo: uso de DMA, múltiplas CPUs.
• Normalmente o 68000 controla o barramento, mas pode
ceder o controle através dos sinais BR*, BG* e BGACK*
• Fig. 7.3: Ligações
• Fig. 7.2: Protocolo.
o O 68000 responde obrigatoriamente a BR*. Se for
desejada máscara ou priorização, será necessário lógica
externa.
o CPU ativa BG* para avisar que o barramento será
cedido ao final do presente ciclo de barramento.
Se o AS* ainda não foi ativado, a CPU atrasa o
BG* até que AS* seja ativado
o Periférico aguarda desativação de AS* (CPU não está
acessando) e DTACK* (memória não está acessando).
Verifica se BGACK* está desativado (outro bus master
pode estar requisitando) e ativa o próprio BGACK*.
o Periférico pode negar o BR* após BGACK*
7
o CPU nega BG* e não mais acessa barramento enquanto
BGACK* estiver ativo
Neste tempo outro bus master pode requisitar
usando BR*
• Fig. 7.4: Diagrama de tempo.
Gerenciamento de memória
• Sistemas grandes usam dois espaços de endereçamento:
o Lógico (LAS, Logic Address Space), gerado pela CPU
o Físico (PAS, Physical Address Space), acessado pela
memória / periférico
• Por que se utilizam estes dois espaços, e não um único?
1. Implementação de sistemas com espaço físico maior
que o espaço de endereçamento disponível na CPU.
Figs. 7.41 e 7.42
2. Implementação de sistemas com espaço físico menor
que o espaço de endereçamento disponível na CPU
(memória virtual). Fig. 7.43
3. Proteção de áreas de memória
4. Garantia de uso eficiente da memória
5. Liberar o programador de considerações de localização
8
de áreas físicas de memória
Mapeamento de memória por chaveamento de bancos:
• Figs. 7.44 e 7.45
• CPU pode escrever um número em um latch, que determina
através do decodificador qual dos bancos de memória será
utilizado.
• Problema: Instruções JUMP de um banco para outro
necessitam um chaveamento prévio.
Mapeamento indexado
• Mais eficiente. Permite JUMP entre bancos sem instruções
adicionais
o A identificação do banco faz parte do endereço lógico
o Fig. 7.46: Tabela de 2p posições (campo de p bits)
Cada posição da tabela possui q bits (q > p)
Campo de deslocamento com d bits, mapeia
diretamente
• Exemplo: Espaço lógico com apenas 16 bits (64kB)
o Se p = 4, teremos 16 (24) páginas de 4kB (endereçáveis
com 16 – 4 = 12 bits)
o Se q = 8, o tamanho fídico da memória poderá ser de
9
28 x 4kB = 256 x 4kB = 1MB
o Observe que temos 256 páginas físicas, mas apenas 16
delas podem ser acessadas em um dado momento.
Para acessarmos outras páginas, é preciso
modificar a tabela, o que é feito pelo SO.
o Espaço de memória: fig. 7.47
Memória Virtual
• Tem-se o espaço lógico maior que o físico
• Exemplo de ambiente multitarefa: fig. 7.48
o Os dados são compartilhados pelas tarefas A e B, mas os
endereços lógicos são distintos em cada tarefa
• Mapeamento por MMU (Memory Mapping Unit): o SO
programa as tabelas de mapeamento, modificando-as de
acordo com a necessidade
• Permissões: podem ser dos tipos Read-only, Write-only,
exclusivo do SO, ou para algumas tarefas específicas
• Translação de endereços: fig. 7.49
• CPU de 24 bits de endereçamento, usando deslocamento de
16 bits (página com 64kB e endereço de página de 8 bits (256
valores possíveis)
10
• Endereço físico de 19 bits (512kB), com os 16 de
deslocamento e mais 3 vindos da tabela
• Campos da tabela:
o Endereço da página (8 bits)
o Bits do enderço físico (3): page frame
o Bit R (Resident): ativo se a frame está na memória física
naquele momento
o Bit M (Modified): ativo se houve escrita na área de
memória da frame
• O SO deve buscar o bloco em memória auxiliar (ex. HD),
colocar em uma página e atualizar a tabela
• Se houve escrita na memória (Bit M setado), o SO deve
gravar a página no HD antes de liberar o espaço
A MMU MC68451
• Projetada para o 68000
• Possui 32 registradores, permitindo 32 blocos lógicos
• Cada bloco possui tamanho definível (potência de 2) de 256B
a 16MB; os blocos podem ter tamanhos diferentes
• Pode-se usar até 8 MMUs em um sistema (256 blocos)
11
• Estrutura geral: fig. 7.50
• Exemplo de gerenciamento de memória segmentada: fig.
7.51
• A MMU possui uma tabela de 32 descritores, com 72 bits
cada, divididos em 6 campos:
o LBA, LAM, PBA de 16 bits cada
o ASN, SSR e ASM de 8 bits cada
• Os bits A08 a A23 são passados aos 32 registradores
simultaneamente (16 bits para mapeamento)
o Qualquer descritor que apresentar coincidência participa
da translação
o Se nenhum descritor coincidir, é gerada uma page fault
• Bits A01 a A07 são passados direto para o endereço físico (256
Bytes mínimos por página)
• Fig. 7.52: Relações entre LBA, PBA, LAM e translação de
endereços
• LBA (Logical Base Address): Bits mais significativos do
endereço lógico. Determina o início do segmento lógico.
o 16 bits determinam um segmento lógico de 256 Bytes
o Para segmentos maiores, deve-se mascarar alguns bits
12
do LBA, reduzindo o número de bits usados de 16 para
1-15
• LAM (Logical Address Mask): define os bits do LBA a serem
usados
o Se um bit é 1, o bit correspondente no LBA é usado; se
for zero, o bit no LBA não participa do endereço do
segmento lógico
o Exemplo: Um segmento lógico inicia em $04 0000,
portanto o LBA contém $0400
O LAM contém $FFF0
Usamos apenas os 12 bits mais significativos do
LBA, correspondendo a A12 – A23. Segmento
endereçado possui 4kB (12 bits de endereçamento
interno), ocupando o espaço $04 0000 a $04 0FFF
• PBA (Physical Base Address): Determina o primeiro
endereço do segmento físico
o As linhas A01 – A07, mais as mascaradas em 0 pelo
LAM, passam direto para o endereço físico
o O restante é suprido pelo PBA do descritor
o No exemplo anterior, com PBA = $1830 (em binário
13
temos 0001 1000 0011 0000):
A CPU gera o endereço $04 0123, que cai dentro
da faixa do descritor visto anteriormente
Como os 12 bits mais significativos do LAM estão
ativos, os 12 bits mais significativos do PBA (0001
1000 0011) passam como A12 – A23 do endereço
físico
Como os 4 bits menos significativos do LAM estão
inativos, os 4 bits menos significativos do LBA
(0001) passam como A08 – A11 do endereço físico
Os bits originais A01 – A07 passam direto (0010
0011)
Endereço final: (0001 1000 0011 0001 0010 0011)2
= $18 3123
• Proteção de segmentos: Usa-se FC0 – FC3, com 16
possibilidades
o FC0 – FC2 vêm direto da CPU; FC3 é gerado a partir do
BGACK*
8 possibilidades para a CPU, 8 para outros masters
o Os FCs acessam a AST (Address Space Table), com 16
posições, de 8 bits cada (CASN – Cycle Address Space
14
Number)
CASN especifica o número da tarefa em um
ambiente multitarefa
o ASN (Address Space Number): Associa o segmento do
descritor com um número de tarefa
o ASM (Address Space Mask): Determina quais bits do
ASN devem ser levados em conta
Similar ao LAM – LBA
Permite um segmento ser partilhado por mais de
uma tarefa
o Estrutura: fig. 7.53
o Exemplo: FC3 – FC0 = 0110 (CPU acessando memória
de programa, modo supervisor)
CASN(0110) = 0001 1010 (tarefa número $1A)
ASN = 1100 1010
ASM = 0000 1111
Libera-se o acesso para qualquer tarefa com um
número binário XXXX 1010 ($XA)
Houve space match, acesso é liberado
Memória “cache”
15
• Memória “escondida” para o programador
• Usa-se SRAM: cara, pequena, de alta velocidade (tempo de
acesso 15-45ns)
• O segredo é fazer com que a maior parte dos acessos à
memória pela CPU ocorra na área da cache
• Estrutura geral: fig. 7.73
• Os dados na cache também estão na memória principal
• Princípio da localidade de referência: o próximo item
normalmente está nas proximidades do item corrente
• Controlador de cache: verifica se o dado sendo acessado tem
cópia na cache (Hit) ou se está apenas na memória principal
(Miss)
16
Download