Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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”.
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.
● 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.
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.
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
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.
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
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:
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!