arquitetura da CPU

Amanhã continuaremos a trabalhar na cache, e nas seguintes, 

O seguinte é o diagrama do quadro da cpu

comece a explicar a CPU

1. Controlador

O controlador também é chamado de Unidade de Controle (CU para abreviar), o seguinte é a composição do controlador

1. Registrador de instrução IR: É usado para armazenar uma instrução que está sendo executada no momento. Quando uma instrução precisa ser executada, uma instrução é buscada do cache para o registrador de instrução IR de acordo com o endereço de instrução indicado pelo contador de programa PC.

O código da operação é o mov, add, jmp e outros códigos de símbolos em linguagem assembly; o endereço do operando indica o endereço do operando requerido pela instrução no cache de dados. 

2. ID do decodificador de instrução: A instrução no registrador de instrução é decodificada para determinar qual operação a instrução deve executar (isto é, o código de operação na instrução) e onde está o operando (o endereço do operando).

3. Gerador de temporização TG: Semelhante ao "cronograma", fornece as marcas de tempo necessárias para o trabalho de cada parte do computador e geralmente é realizado usando a sequência de pulsos de temporização e diferentes intervalos de pulso.

4. Controlador de operação CU: De acordo com as operações e sinais necessários para serem concluídos pelas instruções, várias sequências de comandos de microoperação são emitidas para controlar todos os objetos controlados e concluir a execução das instruções.

5. Contador de programa PC: Serve para armazenar o endereço da próxima instrução a ser executada, existindo um caminho direto entre ela e a memória (memória). Ao executar uma instrução, primeiro é necessário buscar a instrução da memória para o registrador de instrução IR de acordo com o endereço de instrução armazenado no contador de programa PC para concluir a operação de "buscar instrução". O próprio PC contador de programa tem a função de adicionar automaticamente 1, que pode fornecer automaticamente o endereço da próxima instrução, para que cada instrução seja executada em um loop.

2. Calculadora

A unidade aritmética geralmente inclui pelo menos 3 registradores e 1 unidade lógica aritmética (ALU).Os computadores modernos geralmente possuem grupos de registradores de propósito geral.

Register, uma unidade de armazenamento de alta velocidade com capacidade de armazenamento limitada, pode ser usada para armazenar temporariamente instruções, dados e endereços. Existem muitos tipos de registradores. Geralmente, existem 3 tipos relacionados às quatro operações aritméticas. ACC (Acumulador) é um acumulador, MQ (Multiplier-Quotient Register) é um registrador multiplicador e X é um registrador de operando. Quando os três tipos de registradores completam diferentes operações. Os tipos de operandos armazenados também variam.

calculadora

 Em relação ao conceito de dígito alto do produto e dígito baixo do produto, tomando como exemplo o sistema decimal, o dígito das centenas é o dígito alto do dígito das dezenas e o dígito das dezenas é o dígito baixo do dígito das centenas . Quando dois números de 16 bits são multiplicados, o resultado pode ser 32 bits. Os 16 bits na metade esquerda são os bits altos do produto, que são armazenados no ACC, e os 16 bits na metade direita são os bits baixos de do produto, que são armazenados no MQ.
A Unidade Lógica e Aritmética (ALU, Unidade Lógica e Aritmética) é um componente das operações aritméticas e lógicas. As operações aritméticas incluem operações inteiras como adição, subtração e multiplicação.As operações lógicas são operações lógicas como AND, OR, NOT e XOR, bem como operações como deslocamento, comparação e transferência.
As operações de deslocamento, deslocamento de um caractere para a esquerda ou direita ou flutuação de um bit específico, incluindo extensão com sinal e extensão sem sinal, são amplamente usadas em programas.

3. Registre-se

Deve haver pelo menos seis tipos de registradores na CPU: registrador de instrução (IR), contador de programa (PC), registrador de endereço (AR), registrador de dados (DR), registrador de acumulação (AC) e registrador de palavra de status de programa (PSW). ).

Esses registradores são usados ​​para armazenar pequenas quantidades de dados para uso rápido pela CPU.

  1. Registro de Dados
    O Registro de Dados (Data Register, DR) também é chamado de registro de buffer de dados. Sua principal função é servir como uma estação de transferência para transmissão de informações entre a UCP, memória principal e periféricos para compensar o aumento da velocidade de operação entre a UCP , memória principal e periféricos.diferença.
    O registrador de dados é usado para armazenar temporariamente uma instrução ou uma palavra de dados lida da memória principal; inversamente, quando uma instrução ou uma palavra de dados é armazenada na memória principal, elas também são armazenadas temporariamente no registrador de dados.
    O papel do registrador de dados é:
    (1) Como uma estação de transferência para transmissão de informações entre a CPU, memória principal e dispositivos periféricos;
    (2) Compensar a diferença na velocidade de operação entre a CPU, memória principal e periféricos dispositivos;
    (3) Em uma única unidade aritmética com estrutura acumuladora, o registrador de dados também pode servir como registrador de operandos.

  2. Registro de instrução
    O registro de instrução (Registro de instrução, IR) é usado para salvar uma instrução que está sendo executada no momento.
    Quando uma instrução é executada, ela é lida primeiro da memória principal para o registrador de dados e então transferida para o registrador de instruções.
    As instruções incluem dois campos: opcode e address code. Para executar a instrução, o opcode deve ser testado para identificar a operação necessária. O decodificador da instrução (Instruction Decoder, ID) completa este trabalho. O decodificador de instrução decodifica a parte do código de operação do registro de instrução para gerar o potencial de controle da operação exigida pela instrução e o envia para o circuito de controle de microoperação e gera o controle de operação específico sob a ação do sinal de temporização do componente sequencial Sinal.
    A saída do campo opcode no registrador de instrução é a entrada para o decodificador de instrução. Uma vez que o código de operação é decodificado, um sinal específico para operação específica pode ser enviado ao controlador de operação.

  3. Contador de Programa
    O Contador de Programa (Program Counter, PC) é usado para apontar o endereço da próxima instrução na memória principal.
    Antes da execução do programa, o primeiro endereço do programa, ou seja, o endereço da unidade de memória principal onde se encontra a primeira instrução do programa, deve ser enviado ao PC, de modo que o conteúdo do PC seja o endereço do a primeira instrução buscada na memória principal.
    Ao executar uma instrução, a CPU pode incrementar automaticamente o conteúdo do PC para que sempre salve o endereço da memória principal da próxima instrução a ser executada, pronta para buscar a próxima instrução. Se for uma instrução de palavra única, então (PC)+1àPC, se for uma instrução de palavra dupla, então (PC)+2àPC, e assim por diante.
    No entanto, quando uma instrução de desvio é encontrada, o endereço da próxima instrução será especificado pelo campo de código de endereço da instrução de desvio, em vez de ser obtido pelo incremento sequencial do conteúdo do PC como de costume.
    Portanto, a estrutura do contador de programa deve ser uma estrutura com duas funções de registro de informações e contagem.

  4. Registrador de Endereço O
    Registrador de Endereço (Address Register, AR) é usado para salvar o endereço da unidade de memória principal atualmente acessada pela CPU.
    Como existe uma diferença na velocidade de operação entre a memória principal e a UCP, os registradores de endereço devem ser usados ​​para salvar temporariamente as informações de endereço da memória principal até que a operação de acesso à memória principal seja concluída.
    Quando a CPU e a memória principal trocam informações, ou seja, quando a CPU armazena dados/instruções na memória principal ou lê dados/instruções da memória principal, o registrador de endereço e o registrador de dados são utilizados.
    Se endereçarmos uniformemente o dispositivo periférico e a unidade de memória principal, quando a CPU e o dispositivo periférico trocarem informações, também precisaremos usar o registrador de endereço e o registrador de dados.

  5. Registrador de acumulação
    O registrador de acumulação é normalmente referido simplesmente como o acumulador (Accumulator, AC), que é um registrador de uso geral.
    A função do acumulador é: quando a unidade lógica aritmética ALU da unidade aritmética realiza operações aritméticas ou lógicas, fornece uma área de trabalho para a ALU e pode salvar temporariamente um operando ou resultado de operação para a ALU.
    Obviamente, deve haver pelo menos um registro de acumulação na unidade aritmética.

  6. Registro da palavra de status do programa
    A palavra de status do programa (Palavra de status do programa, PSW) é usada para representar o status da operação atual e o modo de trabalho do programa.
    O registro de palavra de status do programa é usado para salvar vários conteúdos de código de condição estabelecidos pela operação ou resultados de teste de instruções aritméticas/lógicas, como o sinalizador carry/emprestar do resultado da operação (C), o sinalizador de estouro do resultado da operação (O) e o o resultado da operação é o sinalizador Zero (Z), o resultado da operação é o sinalizador negativo (N), o sinalizador do sinal do resultado da operação (S), etc. Esses bits de sinalizador geralmente são salvos pelo flip-flop de 1 bit.
    Além disso, o registro da palavra de status do programa também é usado para salvar informações como interrupções e status de funcionamento do sistema, para que a CPU e o sistema possam acompanhar o status de execução da máquina e o status de execução do programa.
    Portanto, o registrador de palavra de status do programa é um registrador que contém vários sinalizadores de condição de status.

O seguinte é o diagrama do frame da CPU e da memória principal

4.MMU

pertence ao processador

 O papel do mmu é converter entre endereços virtuais e endereços físicos.

A relação entre o endereço virtual e o endereço físico é registrada na tabela de páginas e a tabela de páginas é armazenada na memória.

O TLB é um cache para armazenar em cache os resultados das traduções da tabela de páginas, reduzindo assim o tempo para pesquisas na tabela de páginas.

Se não houver ocorrência no TLB, use o TWU para percorrer a tabela de páginas na memória, obter o endereço físico ou endereço virtual e registrá-lo no TLB.

 5.cache

pertence ao processador

Em primeiro lugar, o cache é chamado de cache de alta velocidade, por que existe cache, porque embora os dados de acesso à memória sejam rápidos, ainda é muito lento em comparação com a CPU, o cache é centenas de vezes mais rápido que a memória e o acesso a velocidade é equivalente à da CPU, portanto, primeiro carregue os dados na memória no cache com antecedência e faça um cache para a CPU usar.

O cache é dividido em cache L3 / cache L2 / cache L1, o cache L1 é dividido em cache de instruções e cache de dados

Os caches L1 e L2 estão na mesma CPU e o cache L3 geralmente é compartilhado entre várias CPUs

 A figura abaixo mostra os tipos de todos os dados armazenados no computador

1. Armazenamento 2. Cache 3. Memória 4. Disco rígido

Dois. Processo de execução da CPU

processo de execução da CPU

1. Buscar instruções

A CPU lê uma instrução no cache de instrução apontada pelo contador de programa e lê a instrução no registrador de instrução IR.

2. Analisar e emitir instruções

O ID do decodificador de instrução analisa a instrução

O controlador de operação CU e o gerador de tempo TG emitem comandos de controle para os componentes relevantes de acordo com a função do comando e executam a operação do comando de controle

3. Execute as instruções

A execução de instruções é dividida em duas etapas: busca de operandos e execução de operações.

Buscando operandos: A CPU lê operandos do cache de dados para registradores por meio de operações de endereçamento e os salva temporariamente

Executar operações: a unidade de operação opera no número no registro por meio do opcode na instrução

4. Contagem de instruções

Modifique o contador de programa PC para apontar para o endereço da próxima instrução. Continue repetindo os passos acima até que não haja nenhuma instrução.

O tamanho do cache L3 da CPU

O cache de primeiro nível tem a menor capacidade e a unidade é KB.Não há diferença no cache de primeiro nível entre CPUs diferentes.

O cache de segundo nível é basicamente um MB de um dígito, exceto que algumas CPUs de servidor terão mais de 10 MB,

Cache L3, o cache L3 da CPU comum é de apenas cerca de 10 MB (agora a série X do AMD EPYC atingiu o cache L3 de 768 MB).

A relação entre cpu e io

O hardware do computador usa o DMA para acessar o disco e outros IO, ou seja, após o envio da solicitação, a CPU não irá mais gerenciá-lo até que o processador DMA conclua a tarefa e, em seguida, avise a CPU por meio de uma interrupção. Portanto, um único tempo de IO ocupa muito pouco CPU, e se for bloqueado, não ocupará a CPU, pois o programa não continua rodando, e o tempo de CPU é dado a outras threads e processos. Embora IO não ocupe muito tempo de CPU, IO muito frequente ainda desperdiçará tempo de CPU. Portanto, diante de um grande número de tarefas de IO, às vezes são necessários algoritmos para mesclar IO ou usar cache para aliviar a pressão de IO.



 

Acho que você gosta

Origin blog.csdn.net/weixin_70280523/article/details/132157339
Recomendado
Clasificación