Você está na página 1de 44

Detalhamento básico

sobre CPU
Gabriel Leite
Guilherme Brechot
Bora iniciar o sofrimento e desespero!
OBJETIVO
Explicar de forma simples alguns dos componentes mais importantes dentro de um
processador.
Referências aque?
Basicamente é um resumo dos listados abaixo:

● ARQUITETURA DE COMPUTADORES
● PROJETO LÓGICO DE COMPUTADORES
● SIST OPERACIONAIS ABERTOS

Se vocês tiveram, ótimo, se não tiveram, bem… boa sorte.


Outros componentes que serão um pouco
abordados
CPU é o responsável pelo processamento, porém existem outros componentes
igualmente importantes, esse são:

● Barramentos -> Meio de comunicação dentro do computador;


● Memórias -> Locais para armazenar dados de forma fixa ou temporária;
● GPU -> Processamento gráfico;
● CPU -> Processador principal;
● Chipset -> Multiplexador/Controlador da placa mãe;
● SoC -> Tudo em um;
Como é feita a comunicação? Barramentos
Como o CPU se comunica com o resto dos componentes internos, …., simples, os
barramentos, esse são divididos em três vias, endereços, dados e controle, sendo que o
único que não faz via de mão dupla é o endereços.
Barramento de forma simples

Existem somente dois grupos, internos


e externo, internos são dentro do CPU,
externos, são todos os outros da placa mãe.

Existem 5 tipos de barramentos:

● Processador = Envio de sinais a outros componentes;


● Cache = Comunicação direta do CPU com o Cache;
● Memória = Dedicado a comunicação entre a RAM e o CPU;
● Local =Comunicação entre o CPU e o Chipset;
● I/O = Comunicação entre o Chipset Sul e os demais barramentos mais lentos(Sata, USB, Periféricos,
entre mais);
Chipset Cadê o infeliz na imagem?

Slide acima mostra as pontes norte e


sul, a função do chipset é controlar a placa
mãe e aliviar o trabalho do CPU, porém esse
é um equipamento sem inteligência por si
mesmo, o que ele faz é tudo baseado no que
o CPU ordenou.

O Chipset é dividido em duas áreas,


norte que cuida de equipamentos
rápidos(quentes) e sul que cuida de
equipamentos que não são tão rápidos e que
são “frio”.
GPU
“Imagine uma carroça sendo puxada por mil frangos” -> Isso é uma GPU.

GPU é um hardware dedicado a processamento de ponto flutuantes e trabalha de


forma diferente de um CPU, dessa forma não é possível equiparar ambos os
componentes, já que CPU é um MIMD e GPU é um SIMD.(Vocês vão entender isso mais
para frente).
Introdução ao CPU

CPU(Central Processing Unit ou unidade central de processamento) é o componente


dedicado ao processamento, de forma simples, ele é um interpretador de programas.
Diferença básica de CPU para GPU

Processadores são MIMD e GPUs são SIMD, trabalham de forma diferente e em áreas
diferentes, um processador trabalha de forma sequencial, enquanto o GPU trabalha em
“conforme processa, entrega o resultado”.

#Para maiores detalhes, procure sobre arquitetura de Flynn.


Introdução a alguns componentes importantes
● Unidade de Controle (UC): busca instruções nas memórias e determina o tipo de
cada instrução.

● Unidade Lógica e Aritmética (ULA): realiza um conjunto de operações necessárias à


execução das instruções.

● Conjunto (Banco) de Registradores: pequena memória de alta velocidade, usada


para armazenar resultados temporários e certas informações de controle.
Esquema de um CPU Antigo de forma
simplificada
Indo para a realidade de
uma CPU
Essa é a estrutura um pouco mais
detalhada um núcleo intel, não do
processador em si e sim somente um
núcleo.
Essa é a estrutura de um
processador AMD.

Mesmo que ambos tenham o


intuito de processamento, empresas
empregam diferentes arquiteturas
para suprir determinada demanda.
Aliviando um pouco(Mentira….)
Bus Externo de Dados: é o canal de comunicação de
dados do interior para o exterior. O número de pistas
determina a quantidade de informação que o CPU pode
receber e enviar de cada vez.

Bus Externo de Endereços: é o canal (pistas) de


comunicação externo através do qual a CPU referência e
acede a endereços de memória. O número de pistas o
número de células de memória a que o CPU pode
aceder.

Slide abaixo está o complemento….


Unidade Aritmética e Lógica (ALU): onde são efetuados os cálculos de operações aritméticas e lógicas.

Unidade de Controlo (UC): controla, direta ou indiretamente, todo o computador.

Unidade de Descodificação: decodificar instruções e informações vindas da Cache para que a CPU as processe.

Unidade de Registros: memórias internas, onde são armazenados, temporariamente, dados e resultados.

Unidade de Vírgula Flutuante (FPU): é o coprocessador matemático, que auxilia nas operações matemáticas mais complexas.

Unidade de Memória Cache Interna: é uma memória rápida, que armazena os dados mais requisitados pelo processador.

Unidade de Segmentação e Unidade de Paginação: convertem endereços lógicos (contidos nos programas) em endereços físicos
(consoante a gestão de memória usada).

Unidade de Pré-escolha (Prefetch): requisita à memória cache uma lista de instruções a executar, armazena essas instruções, de
modo a prepará-las para serem enviadas à Unidade de Descodificação.

Unidade de Ligação com o Bus: permite que a CPU comunique com os componentes exteriores através dos Barramentos ou Bus.
CPU <-> Memória
A famosa controladora de memória, essa é a parte ordenada pelo UC para fazer buscas de
load/write/update/delete nas memórias.

REM - Registrador de Endereço da Memória: Armazena o endereço da célula onde deve


ser feita a próxima operação de leitura ou escrita na memória;

RDM - Registrador de Dados da Memória: Armazena os dados que estão sendo


transferidos de/para a memória;
Um pouco de história
Os próximos slides implicam a evolução dos processadores após o ápice do silício,
isso é, o silício teórico suporta até 5GHZ antes de literalmente derreter, isso é um
limitante e tanto no mercado.

Com esse limite, as empresas começaram a trabalhar em outras formas de aumentar


o desempenho de um CPU e não só mais sendo um aumento de clock e diminuindo a
litografia.
Avanços
Formas de aumentar o desempenho dos processadores de forma inteligente foram:

● Sair do 32bits para os 64bits;


● Aumentar a quantidade de registradores e especificá-los;
● O paralelismo falso ou multicore;
● Alterar a forma de trabalho dentro do processador;

Fora do CPU, foi modificada a forma de trabalho também como:

● Saída de linguagens imperativas para linguagens mais dinâmicas, softwares mais


otimizados para o multicore, incremento dos chipset dos fabricantes e etc...
Pipeline

O processamento em pipeline divide a execução de instruções em várias partes, cada


uma das quais tratada por um hardware dedicado exclusivamente a ela.
Sem pipeline

● BI - Busca de Instrução
● DI - Decodificação de Instrução
● BO - Busca dos Operandos
● EI - Execução da Instrução
● AR - Armazenamento do Resultado
Existem outras implementações como o super-escalar, entre mais...
Multicore(Olha o paralelismo)
Multicore real é caro e complicado tanto em arquitetura quanto implementação de
software, o multicore que temos é simulado, isso é um único processador com núcleos
internos.
Registradores
Os registradores presente na CPU ou qualquer outro tipo de processador são
memórias pequenas e de alta velocidade para armazenar resultados temporários e
controle de informações, que são divididos em 2 tipos, o de uso geral ou específico.

● Geral:
○ Estes são utilizados pelo S.O para as aplicações e para o desenvolvimento.
○ Este é chamado nível de acesso do usuário.

● Específico:
○ Este é utilizado para o funcionamento interno e estrutural do CPU, é possível
programá-lo, porém é de um nível mais baixo que o geral.
O uso dos registradores
Registradores são memórias de acesso instantâneo que levam a informação aos
componentes internos do CPU, sua existência tem o propósito de evitar um gargalo de
velocidade.

Quando o registrador trabalha?

Se algo não está em um registrador, ele não é processado, significa que antes de
processar, os valores são quebrados e passados pelo registrador e daí são processados,
isso também não significa que todo o programa estará no registradores e sim uma key de
memória para acioná-los caso precisar.

O key pode estar referenciando valores em memória cache ou RAM.


Diferença de cache para registrador
A quantidade de registradores dentro do CPU é
limitada a sua arquitetura, os mesmo trabalham a
velocidade do clock, o cache é um Buffer que fica
entre o processamento e os registradores.

O conceito das memória é que maior a


quantidade, mais lenta é, o cache mesmo sendo
extremamente rápida, é mais lenta que os
registradores.
Formas de registrar
Instruções Registrador-Memória: Permitem que o conteúdo de palavras de memória
seja armazenado nos registradores (load) ou conteúdos de registradores armazenados na
memória (store) Referências a uma palavra deve ser feita através de Endereços.

Instruções Registrador-Registrador: Típico: busca dois operandos em registradores,


coloca-os nas entradas da ULA, realiza alguma operação sobre eles, e armazena o
resultado em um dos registradores Determina uma caminho de dados
Registradores do UC
Registradores específicos para o processador.

● Program Counter (PC): Contador de Programas


● Instruction Register (IR): Registrador de Instrução
● Memory Address Register (MAR): Registrador de Endereço
● Memory Buffer Register (MBR): Registrador de Dados
● Program Status Word (PSW): Registrador de status
● Stack Pointer (SI): Ponteiro de pilha
● Page Table Base Register (PTBR): Registro da base da tabela de páginas
● Page Table Base Limit (PTBL): Limite da base da tabela de páginas
UC -> Control unit ou Unidade de controle:
A unidade de controle é responsável por controlar todos os componentes internos e
externos do CPU, porém, atualmente grande carga do externo é aliviado pelo Chipset.

Trabalho pré-programado do UC:

● busca (fetch) -> Procura na memória a partir a hierarquia.


● decodificação -> Realiza a quebra do valor de busca para ser repassado.
● execução -> Envia à unidade ULA para realizar as operações.
UC aos afazeres

UC controla todos os componentes por pulsos de controle.

● Inicia e termina a leitura de dados;


● Controla o armazenamento de palavras na memória;
● Execução de instrução;
● Envia a operação para a unidade de aritmética.
UC -> Busca
Responsável por buscar as instruções
na memória e determinar o seu tipo e
pode ser pensada como uma máquina de
estados finitos.

Controla não só a transferência de


dados e instruções para dentro e para
fora da CPU, como também a operação da
ULA.
UC -> Decodificação
Para os resultados da busca, cada linha de instrução encontrada será atribuído um
"tipo instrução", "operadores" e "estado interno do processador".

Estes valores irão passar pelo opcode, isso é, uma minificação da linhas de instrução
trazidas pela busca, gerando minificações válidas e inválidas, esta operação gera a
economia do tamanho da instrução e do tamanho dos bits.

Cada opcode irá passar por 3 estados, escrita no registrador, escrita na MP e leitura
na MP
UC -> Tipo:
● 2 tipos de Unidade de controle:
○ Fixa:
■ Integrada fisicamente na arquitetura do hardware;
■ extremamente rápida;
■ mais difícil de programar modificar;
■ Inclui a ULA encapsulada na unidade;

○ programável:
■ Implementado logicamente;
■ simulação dentro do CPU;
■ realiza a mesmas funções do fixo;
■ Velocidade operação menor que a fixa pela limitação da velocidade do
relógio do processador;
ULA:
Unidade de lógica aritmética, de forma resumida, essa é a
parte responsável pelo processamento dentro do CPU.
ULA - Calculadora

Unidade de Lógica e Aritmética (ULA) Operações realizadas:


é um banco de circuitos para executar
operações lógicas e aritméticas. ● Somas;
● Subtrações;
Possui também pelo menos um ● Determinação de sinal;
registrador encarregado de armazenar ● Comparações algébricas de
números a serem operados pela ULA ou números;
resultados de operações. Esse registrador ● verificar se um número é maior
é chamado de Acumulador (ACC). ou menor que zero;
● etc….
ULA -> Como funciona:

UC é o cara que manda a tarefa para a ULA, com isso, ele envia dois valores para o
ULA fazer o cálculo necessário, os valores podem estar tanto em registradores quanto na
memória principal, mas se estiverem na MP, eles primeiros serão registrados no
acumulativo e depois serão operados pela ULA.

#Entrando um pouco de S.O aqui

A ULA irá processar uma instrução, que é a menor parte de um processo que é uma
abstração de um programa em execução, para entenderem bem essa parte, vocês vão ter
que saber sobre escalonador de processos.
Circuitos ULA

Exemplos de circuitos que a unidade ULA é composta:


Busca ULA nos registradores

Para algumas operações, a ULA procura entre os


registros os valores, o fato é que é bem mais rápida a
busca do que um re-processamento.

Esse é um tipo e busca registrador-registrador,


onde os valores a serem processados já existem e
estão armazenados.

A ULA tem o registrador acumulatico o ACC.


ULA -> Saídas

A ULA recebe duas entradas para serem processadas e retornar uma saída, as quais são
gravadas em um registrador, essas saídas podem conter flags:

● Flag é um estado de erro na saída de uma equação, como a ULA trabalha em


paralelismo, isto é realiza várias operações por vez, a operações que geram resultados
inválidos.
● Estados da flag -> 0, valores negativos ou overflow.
Links:
https://www.diegomacedo.com.br/fundamentos-de-arquitetura-e-organizacao-de-computadores/

http://www.di.ufpb.br/raimundo/ArqDI/Arq2.htm

http://gabimazzini.blogspot.com/2010/09/lsi-vlsi-e-ulsi.html

https://pt.wikipedia.org/wiki/Aritm%C3%A9tica

http://producao.virtual.ufpb.br/books/edusantana/introducao-a-arquitetura-de-computadores-livro/li
vro/livro.chunked/ch02s02.html

https://www.diegomacedo.com.br/fundamentos-de-arquitetura-e-organizacao-de-computadores/
https://en.wikichip.org/wiki/amd/microarchitectures/zen

https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client)

http://infocila.blogspot.com/p/componentes-de-um-computador_24.html

http://prof.valiante.info/disciplinas/hardware/pipeline
Cabou, finalmente… cabou!

Boa noite pessoal!


E boa sorte nas provas…., com certeza vão
precisar!

Você também pode gostar