Composição e design de computadores, aprendizado de interface de hardware e software 1

operações aritméticas de computador

PDF paralelo de subpalavras (navegação aproximada) com cerca de 170 páginas

A adição de ponto flutuante não é associativa:

A estratégia de execução paralela que se aplica a tipos de dados inteiros não se aplica a tipos de dados de ponto flutuante pelos motivos mencionados acima↑

processador

linha de montagem

Pipelining é uma tecnologia de implementação que permite a execução sobreposta de múltiplas instruções.

O pipeline melhora o desempenho aumentando o rendimento das instruções em vez de reduzir o tempo de execução de instruções individuais

avançar ou ignorar

 Paralelismo entre instruções

A tecnologia de pipeline explora o paralelismo potencial entre instruções, que é chamado de paralelismo em nível de instrução.

Existem duas maneiras principais de melhorar o paralelismo no nível de instrução:

Aumentar o número de estágios no pipeline  

Aumentar o número de componentes funcionais dentro do pipeline para que múltiplas instruções possam ser emitidas por ciclo é uma técnica chamada multi-issue.

Existem duas maneiras principais de implementar um processador multi-problema:

O julgamento sobre se a instrução foi emitida ou não é concluído em tempo de compilação, o que é chamado de multi-problema estático.

Se o julgamento sobre a emissão de uma instrução for concluído pelo hardware durante a execução dinâmica, isso é chamado de multi-emissão dinâmica.

Renomeação de registros O objetivo da renomeação de registros é eliminar outros dados e dependências entre instruções, além das dependências de dados. Por exemplo, ld x30,0(x20), adicione x31, x31,x21, sd x31, 8(x20), exceto que todos usam x31, essas instruções são, na verdade, independentes umas das outras. Esta situação é chamada de anticorrelação, ou correlação de nome

Anticorrelação: também conhecida como correlação de nomes, a ordenação causada pela reutilização forçada de nomes. Esta não é uma verdadeira correlação de dados entre instruções

Processador dinâmico de vários problemas

Emissores múltiplos dinâmicos, também conhecidos como processadores superescalares

Pipeline de agendamento dinâmico: o hardware seleciona instruções para execução subsequente e reorganiza as instruções para evitar paralisações do pipeline. Nesse processador, o pipeline é dividido em três partes principais: busca de instrução, unidade de emissão, unidade multifuncional e unidade de confirmação.

Aceleração: paralelismo em nível de instrução e multiplicação de matrizes

armazenamento hierárquico

Localidade temporal  Se um item de dados for acessado, é provável que seja acessado novamente em um futuro próximo

Localidade espacial:  Se um item de dados for acessado, os itens de dados adjacentes ao seu endereço também poderão ser acessados ​​em breve.

Os dados na camada mais próxima do processador são um subconjunto dos dados na camada mais distante. Todos os dados são armazenados na camada mais distante.

A menor unidade de troca de informações entre duas camadas adjacentes é chamada de bloco  ou  linha

Lidar com operações de gravação

Escreva ou escreva: uma estratégia de escrita. As operações de gravação sempre atualizam o cache e o armazenamento de nível seguinte ao mesmo tempo para garantir a consistência dos dados entre os dois.

Retornos de gravação: uma estratégia de gravação. Ao processar uma operação de gravação, apenas o valor do bloco de dados correspondente no cache é atualizado. Quando o bloco de dados é substituído, o bloco de dados atualizado é gravado no próximo nível de armazenamento.

Avaliação de desempenho e melhoria de cache

Mapeamento direto: um bloco de dados possui apenas um local correspondente no cache

Totalmente associativo: os blocos de dados podem ser armazenados em qualquer lugar do cache. Para encontrar um determinado bloco de dados no cache totalmente associativo, todas as entradas devem ser comparadas.

Cache associativo definido: O número de locais onde cada bloco de dados é armazenado no cache tem um valor fixo (pelo menos 2).Um cache associativo definido com n locais para cada bloco de dados é chamado de cache associativo definido de n vias. Em um cache associativo de conjunto de n vias, existem vários grupos, cada grupo contendo n blocos de dados.

Encontre o bloco de dados no cache

Hierarquia de memória confiável

A melhor maneira de aumentar a confiabilidade é a redundância

Definição de falha:

Três maneiras de melhorar o MTTF:

Corrija o erro de 1 bit e detecte o erro de 2 bits na codificação de Hamming

máquina virtual

O software que suporta máquinas virtuais é chamado de monitor de máquina virtual ou hipervisor . A plataforma de hardware subjacente é chamada de host e seus recursos são compartilhados pelas máquinas virtuais clientes .

Um hipervisor fornece uma interface de software para o software cliente, isola o estado de cada cliente e deve se proteger do software cliente, incluindo o sistema operacional cliente.

Necessidades qualitativas:

  • Exceto comportamento relacionado ao desempenho ou limitações de recursos fixos devido ao compartilhamento entre múltiplas VMs, o software cliente deve ser executado na máquina virtual como se estivesse em hardware local.
  • O software cliente não pode alterar diretamente a alocação de recursos reais do sistema

Para “virtualizar” o processador, o VMM deve anular quase tudo: acesso privilegiado, I/O, exceções e interrupções

armazenamento virtual

A memória principal pode atuar como cache para armazenamento auxiliar geralmente implementado por discos. Essa tecnologia é chamada de armazenamento virtual.

No armazenamento virtual, os endereços são divididos em números de páginas virtuais e deslocamentos intrapáginas

Como não podemos saber antecipadamente quando uma página na memória será substituída, o sistema operacional geralmente cria espaço na memória flash ou no disco para todas as páginas ao criar um processo. Essa área de espaço é chamada de área de swap (espaço em disco reservado para todo o espaço de endereço virtual do processo), nesse momento também cria uma estrutura de dados para registrar onde cada página virtual está armazenada no disco.

Acelere a tradução de endereços: TLB

Tabela de blocos (TLB, cache usado para registrar informações de mapeamento de endereços usados ​​recentemente, evitando assim ter que acessar sempre a tabela de páginas)

Proteção no armazenamento virtual

A função mais importante do armazenamento virtual é permitir que vários processos compartilhem uma memória principal, ao mesmo tempo que fornece proteção de memória para esses processos e para o sistema operacional. O mecanismo de proteção deve ser claro: vários processos compartilham a mesma memória principal, mas, intencionalmente ou não, um processo malicioso não pode gravar no espaço de endereço de outro processo de usuário ou no sistema operacional.

Troca de contexto: para permitir que um processo diferente use o processador, altere o estado dentro do processador e salve o estado necessário quando o processo atual retornar

Lidando com falhas de TLB e falhas de página

Uma falha de TLB indica uma de duas possibilidades:

  • A página está na memória, apenas a entrada TLB ausente precisa ser criada
  • A página não está na memória e o controle precisa ser transferido para o sistema operacional para lidar com falhas de página.

O tratamento de falhas de TLB ou de página requer o uso de um mecanismo de exceção para encerrar o processo ativo, transferir o controle para o sistema operacional e então retomar a execução do processo interrompido.

Depois que o sistema operacional souber o endereço virtual que causou a falha de página, ele deverá concluir as três etapas a seguir:

Resumir

O armazenamento virtual é uma hierarquia de armazenamento de primeiro nível para gerenciamento de cache de dados entre a memória principal e o armazenamento secundário. O armazenamento virtual permite que um único programa estenda seu espaço de endereço além dos limites da memória principal. O armazenamento virtual suporta o compartilhamento de memória entre vários processos ativos simultaneamente de maneira protegida

Uma estrutura geral para hierarquias de armazenamento

onde os blocos podem ser colocados

Como encontrar blocos

Em uma hierarquia de armazenamento, a escolha entre mapeamento direto, mapeamento associativo de conjunto ou mapeamento totalmente associativo depende da compensação entre o custo da falha e o custo de alcançar a associatividade, incluindo tempo e sobrecarga adicional de hardware.

Qual bloco substituir quando ocorrer falha no cache

  • Aleatório: seleciona aleatoriamente blocos candidatos, possivelmente usando alguma implementação assistida por hardware
  • Menos usado recentemente (LRU): O bloco que está sendo substituído é o bloco que não foi usado por mais tempo

Como implementar a operação de gravação:

  • Write-through: as informações são gravadas em blocos no cache e em blocos inferiores na hierarquia de armazenamento (memória principal do cache)
  • Retorno de gravação: as informações são gravadas apenas no bloco do cache. Um bloco modificado é gravado em níveis inferiores da hierarquia somente se for substituído

Vantagens de escrever devoluções:

  • O processador pode escrever palavras individuais a uma taxa que o cache, e não a memória, possa receber.
  • Múltiplas gravações em um bloco requerem apenas uma gravação em um nível inferior na hierarquia de armazenamento
  • Ao escrever de volta um bloco, o sistema pode utilizar efetivamente a transmissão de alta largura de banda gravando um bloco inteiro.

Vantagens da gravação:

3C: Um modelo intuitivo para compreender as hierarquias de armazenamento

Controle um cache simples usando autômatos de estados finitos

Autômato de estado finito: uma função lógica sequencial que contém um conjunto de entradas/saídas, uma função de transição de estado (mapeamento do estado atual e das entradas para um novo estado) e uma função de saída (mapeamento do estado atual e das entradas para uma saída predicada)

Função de próximo estado: Uma função combinatória que, dada uma entrada e o estado atual, pode derivar o próximo estado de um autômato de estado finito

Paralelismo e hierarquias de armazenamento: consistência de cache

Abordagem básica para alcançar consistência

Acho que você gosta

Origin blog.csdn.net/zaizai1007/article/details/132775168
Recomendado
Clasificación