CPU, também conhecido como microprocessador é o coração e/ou cérebro de um computador. Vamos mergulhar profundamente no núcleo do computador e entender como o CPU funciona, o que nos ajudará a escrever programas de computador de forma eficiente.
Um computador é uma máquina alimentada principalmente por eletricidade, mas a sua flexibilidade e a capacidade de programação ajudaram a alcançar, a simplicidade de uma ferramenta.
CPU é o coração e / ou o cérebro de um computador. Executa as instruções que lhes são fornecidas. Sua principal tarefa é executar operações aritméticas e lógicas e orquestrar as instruções em conjunto. Antes de mergulhar nas partes principais vamos começar por olhar para quais são os principais componentes de uma CPU e quais os seus papéis são:
- Dois principais componentes de uma CPU (processador)
- Unidade de Controle — UC
- aritmética e unidade lógica — ALU
- Storage-Registers and Memory
- registos
- memória(RAM)
- What are Instructions
- relógio de CPU
- como é que uma instrução é executada
- Passo 1-LOAD_A 8:
- PASSO 2 — LOAD_B 2
- ETAPA 3 — ADICIONAR B A
- BUS
- Cache
- pipelining de instrução
- computador Multicore
- desempenho
Dois principais componentes de uma CPU (processador)
- unidade de Controle — UC
- Aritmética e unidade lógica — JANTES
Unidade de Controle — UC
a unidade de Controlo CU é a parte da CPU que ajuda a orquestrar a execução de instruções. Diz o que fazer. De acordo com a instrução, ele ajuda a ativar os fios conectando a CPU a diferentes Outras partes do computador, incluindo a ALU. A unidade de controle é o primeiro componente da CPU a receber a instrução de processamento.
existem dois tipos de unidades de controlo:
- unidades de controlo a fios.unidades de controlo micro programáveis (microprogramadas).
As unidades de controlo a fios são o hardware e precisam da mudança de hardware para adicionar modificar o seu funcionamento, enquanto a unidade de controlo micro-programável pode ser programada para mudar o seu comportamento. A CU hardwire é mais rápida na instrução de processamento, enquanto que a micro-programável é mais flexível.
aritmética e unidade lógica — ALU
aritmética e unidade lógica ALU como o nome sugere faz todas as computações aritméticas e lógicas. ALU realiza operações como adição, subtração. ALU consiste em circuitos lógicos ou portas lógicas que realizam essas operações.
A maioria das portas lógicas tomam em duas entradas e produzem uma saída
abaixo é um exemplo de um meio circuito de adder que leva em duas entradas e Saídas o resultado. Aqui A E B são a entrada, S é a saída e C é a carga.
Storage-Registers and Memory
a principal tarefa da CPU é executar as instruções fornecidas a ela. Para processar estas instruções na maioria das vezes, precisa de dados. Alguns dados são dados intermediários, alguns deles são Entradas e outros são saídas. Estes dados, juntamente com as instruções são armazenados no seguinte armazenamento:
registos
um registo é um pequeno conjunto de locais onde os dados podem ser armazenados. Um registro é uma combinação de fechos. Fechos também conhecidos como flip-flops são combinações de portas lógicas que armazenam 1 bit de informação.
um trinco tem dois fios de entrada, um fio de entrada e outro de saída. Podemos permitir que o write wire faça alterações aos dados armazenados. Quando o fio de escrita é desativado, a saída permanece sempre a mesma.
CPU tem registradores para armazenar os dados de saída. Enviar para a memória principal(RAM) seria lento como são os dados intermediários. Estes dados são enviados para outros registros que são conectados por um ônibus. Um registro pode armazenar instruções, dados de saída, endereço de armazenamento ou qualquer tipo de dados.
memória(RAM)
Ram é uma coleção de registros dispostos e compactos juntos de uma forma otimizada para que ele possa armazenar um maior número de dados. A RAM (memória de acesso aleatório) é volátil e os seus dados perdem-se quando desligamos a energia. Como a RAM é uma coleção de registros para ler/escrever dados, uma RAM recebe entrada de endereço 8bit, entrada de dados para os dados reais a serem armazenados e finalmente ler e escrever facilitador que funciona como é para os fechos.
What are Instructions
Instruction is the granular level computation a computation can perform. Existem vários tipos de instrução que uma CPU pode processar.as instruções incluem::
- Aritméticas como somar e subtrair
- instruções de Lógica e, ou, e não
- de Dados instruções de como mover-se, de entrada, de saída, a carga e a loja
- Controle de Fluxo de instruções de como o goto, se … goto, chamada e retornar
- Notificar a CPU que o programa terminou Parar
são fornecidas Instruções para um computador usando a linguagem assembly, ou são gerados por um compilador ou são interpretados em algumas linguagens de alto nível.
estas instruções são programadas no interior da CPU. ALU contém aritmética e lógica, enquanto que o fluxo de controle é gerenciado pela CU.
em um ciclo de clock computadores podem executar uma instrução, mas computadores modernos podem executar mais de uma.um grupo de instruções que um computador pode executar é chamado de conjunto de instruções.
relógio de CPU
ciclo de relógio
A velocidade de um computador é determinada pelo seu ciclo de relógio. É o número de períodos de relógio por segundo em que um computador trabalha. Ciclos de relógio simples são muito pequenos como em torno de 250 * 10 *-12 sec. Higher the clock cycle faster the processor is.
um ciclo de clock da CPU é medido em GHz(Gigahertz). 1gHz é igual a 10 ⁹ Hz (hertz). Um hertz significa um segundo. Então 1Gigahertz significa 10 cycles ciclos por segundo.
Quanto mais rápido o ciclo de relógio, mais instruções a CPU pode executar. Clock cycle = 1 / clock rate CPU Time = number of clock cycle / clock rate
This means to improve CPU time we can increase clock rate or decrease the number of clock cycles by optimizing the instruction we provide to CPU. Alguns processadores provê a capacidade de aumentar o ciclo de relógio, mas uma vez que é mudanças físicas, pode haver superaquecimento e até mesmo fumos/incêndios.
como é que uma instrução é executada
as instruções são armazenadas na RAM em ordem sequencial. Para uma CPU hipotética, instrução consiste de código OP (código operacional) e endereço de memória ou registro.
Existem dois registos dentro de um registo de instruções da unidade de controlo(IR) que carrega o código OP do registo de instruções e endereços de instruções que carrega o endereço da instrução em execução. Existem outros registros dentro de uma CPU que armazena o valor armazenado no endereço dos últimos 4 bits de uma instrução.
tomemos um exemplo de um conjunto de instruções que adiciona dois números. A seguir estão as instruções, juntamente com a sua descrição. A CPU funciona executando as seguintes instruções:
Passo 1-LOAD_A 8:
a instrução é gravada em RAM inicialmente como digamos <>. O primeiro 4 bits é o código Operacional. Isto determina a instrução. Esta instrução é obtida na IR da unidade de controle. A instrução é decodificada para ser load_A que significa que é necessário para carregar os dados no endereço 1000, que é o último de 4 bits de instrução para registrar A.
PASSO 2 — LOAD_B 2
Semelhante ao acima, este carrega os dados no endereço de memória de 2 (0010) para registro de CPU B.
ETAPA 3 — ADICIONAR B A
Agora, a próxima instrução é para adicionar esses dois números. Aqui A CU diz à ALU para efectuar a operação de adição e gravar o resultado de volta para o registo A.este é um conjunto muito simples de instruções que ajuda a adicionar dois números.
nós adicionamos com sucesso dois números!
BUS
todos os dados entre CPU, register, memory e io devise são transferidos através de bus. Para carregar os dados para a memória que acabou de adicionar, a CPU coloca o endereço de memória para o barramento de endereços e o resultado da Soma para o barramento de dados e permite o sinal certo no barramento de controle. Desta forma, os dados são carregados para a memória com a ajuda do ônibus.
Cache
CPU também tem um mecanismo para pré-vetar a instrução para seu cache. Como sabemos, há milhões de instruções que um processador pode completar num segundo. Isto significa que haverá mais tempo gasto em obter a instrução de RAM do que executá-los. Então o cache CPU pré-mapeia algumas das instruções e também os dados para que a execução seja rápida.
Se os dados no cache e memória operacional são diferentes, os dados são marcados como um bit Sujo.
pipelining de instrução
CPU moderna usa pipelining de instrução para parallelização na execução de instrução. Busca, Descodificação, Execução. Quando uma instrução está na fase de descodificação, a CPU pode processar outra instrução para a fase de obtenção.
isto tem um problema quando uma instrução é dependente de outra. Então os processadores executam a instrução que não é dependente e em uma ordem diferente.
computador Multicore
é basicamente a CPU diferente, mas tem alguns recursos compartilhados como o cache.
desempenho
o desempenho da CPU é determinado pelo seu tempo de execução. Performance = 1 / tempo de execução
digamos que leva 20ms para um programa executar. O desempenho da CPU é 1/20 = 0.05msRelative performance = execution time 1 / execution time 2
The factor that comes under consideration for a CPU performance is the instruction execution time and the CPU clock speed. Assim, para aumentar o desempenho de um programa, ou precisamos aumentar a velocidade do relógio ou diminuir o número de instruções em um programa. A velocidade do processador é limitada e computadores modernos com multi-núcleo podem suportar milhões de instruções por segundo. Mas se o programa que temos escrito tem um monte de instruções isso vai diminuir o desempenho geral.
a notação Big O determina com a entrada dada sobre como o desempenho será afetado.
Há um monte de otimizações feitas na CPU para torná-lo mais rápido e executar tanto quanto possível. Ao escrever qualquer programa que precisamos considerar como a redução do número de instruções que fornecemos para CPU irá aumentar o desempenho do programa de computador.interessado em otimizar bases de dados? Aprenda sobre isso aqui: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/