Milap Neupane Blog

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.

uma ferramenta é normalmente mais simples do que uma máquina; é geralmente usada com a mão, enquanto uma máquina é frequentemente movida por energia animal ou vapor.

– Charles Babbage

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 — 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.

semi-somador
Meia fonte: https://en.wikipedia.org/wiki/Adder_(electronics)#/media/File:Half_Adder.svg

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.

Um SR trava, construído a partir de um par de acoplamento cruzado NEM portas

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.

CPU barramento
Foto src: https://en.wikipedia.org/wiki/Bus_(computing)#/media/File:Computer_system_bus.svg

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.

CPU ciclo de clock
foto fonte: https://en.wikipedia.org/wiki/Instruction_pipelining#/media/File:Pipeline,_4_stage.svg

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/

Related Posts

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *