Como é que uma CPU funciona?
Uma CPU funciona executando instruções que foram lidas da memória - estas instruções dizem à CPU que operações têm de ser realizadas em determinados itens de dados armazenados na memória ou nos registos. Quando uma instrução é obtida da memória, é enviada através da unidade de controlo, onde é descodificada, e quaisquer endereços/itens de dados necessários são determinados; esta informação é então passada para a ALU, onde as operações são efetivamente realizadas de acordo com o que foi especificado na instrução. Após a conclusão das operações, quaisquer valores resultantes são armazenados na memória, se necessário, antes de se ir buscar outra instrução e repetir este processo até que todas as instruções do programa tenham sido executadas.
O que é uma CPU?
Uma Unidade Central de Processamento (CPU) é o cérebro de um sistema informático - é essencialmente o que diz ao computador o que fazer e como o fazer. Uma CPU é composta por circuitos, que consistem em três componentes principais: uma unidade de controlo, uma unidade aritmética/lógica (ALU) e um conjunto de registos. A unidade de controlo vai buscar as instruções à memória, descodifica-as, determina o endereço dos dados armazenados na memória (se necessário) e, em seguida, transmite os dados e as informações das instruções à UAL para processamento. A UAL executa o cálculo ou a lógica exigida por cada instrução, armazena os resultados intermédios em registos, se necessário, e envia o resultado de volta para a memória, onde pode ser acedido por outros programas ou gravado no disco. Os registos são utilizados para guardar dados de curto prazo enquanto estes estão a ser processados pela CPU.
O que são núcleos?
Um núcleo é uma instância de uma unidade de execução num processador multicore. Cada núcleo tem a sua própria cache privada, o que lhe permite executar tarefas de forma independente sem ter de aceder à memória principal com tanta frequência; no entanto, vários núcleos podem partilhar recursos como a cache L2. Os núcleos múltiplos permitem um maior paralelismo na execução das instruções, o que significa que podem ser executadas mais instruções em simultâneo e, por conseguinte, pode ser realizado mais trabalho em menos tempo do que com um processador de núcleo único. Isto torna os processadores multicore ideais para tarefas de computação intensiva, como edição de vídeo ou renderização 3D.
O que são threads?
Os threads são sequências de execução que podem ser executadas em simultâneo num único processo ou aplicação num único núcleo de processador. Os threads permitem que as aplicações/programas pareçam estar a ser executados mais rapidamente do que na realidade estão, porque são capazes de utilizar vários núcleos ao mesmo tempo - com vários threads a serem executados ao mesmo tempo em núcleos diferentes, é possível fazer mais trabalho sem ter de esperar que um thread termine a execução antes que outro thread possa recomeçar a execução noutro núcleo. Isto torna as aplicações multithread muito mais eficientes do que as aplicações single-threaded, uma vez que não há necessidade de alternar o contexto entre threads quando se executam vários processos ao mesmo tempo em núcleos separados, por oposição a apenas um núcleo com muitos threads em fila de espera para processamento sequencial, como aconteceria com uma aplicação single-threaded.
O que é o hyper-threading?
Hyper-Threading (HT) é a tecnologia proprietária da Intel que permite múltiplos processadores lógicos dentro de cada núcleo físico do processador - essencialmente permitindo dois fluxos simultâneos de instruções por núcleo físico (isto aparece como quatro processadores "virtuais" em vez de dois). A introdução da HT nas CPUs permitiu às CPUs Intel um melhor desempenho multitarefa devido ao aumento das suas capacidades de processamento por ciclo de relógio - o que lhes permite lidar com grandes cargas de trabalho mais rapidamente do que as gerações anteriores, que estavam limitadas apenas pelas velocidades de relógio (que só tinham aumentos limitados). Além disso, a HT também ajuda a aumentar o rendimento em alguns casos, bem como os ganhos de IPC, graças a uma melhor eficiência de agendamento ao lidar com contagens de threads maiores em comparação com a HT desactivada nesses mesmos cenários.
O que é a arquitetura RISC vs CISC?
RISC significa Reduced Instruction Set Computer (Computador de Conjunto Reduzido de Instruções) - refere-se normalmente a arquitecturas que utilizam significativamente menos tipos de instruções complexas do que as arquitecturas CISC (Complex Instruction Set Computers). As arquitecturas CISC consistem normalmente em conjuntos de instruções muito variados, que vão desde operações aritméticas simples a operações complexas que envolvem várias etapas, como a manipulação de cadeias de caracteres, etc., enquanto as RISC tendem para instruções mais simples mas mais rápidas (que ocupam menos área por chip devido à diminuição da complexidade), pelo que tendem a apresentar características de desempenho mais elevadas, dadas as velocidades de relógio semelhantes em ambas as arquitecturas.
O que são pipelines?
Os pipelines nos CPUs referem-se especificamente a arquitecturas que dividem as várias fases envolvidas na execução de uma instrução em partes discretas, de modo a que os resultados das fases anteriores fiquem disponíveis mais rapidamente nas fases posteriores, permitindo assim outras optimizações, como o envio e a execução fora de ordem - isto permite que algumas partes sejam executadas mais rapidamente ou mais lentamente, dependendo das suas necessidades individuais, em vez de cada fase ter de esperar uma pela outra, o que conduz a ganhos de desempenho significativos em relação a concepções sem pipelines, tornando assim possíveis os processadores modernos de alta velocidade e multithread.
O que são caches?
As caches são pequenos blocos de RAM relativamente rápidos localizados perto da unidade central de processamento ou diretamente no seu interior, que têm duas funções: em primeiro lugar, aliviar a pressão das leituras e gravações na memória principal, uma vez que as caches funcionam com uma latência mais baixa, e, em segundo lugar, acelerar.
O que é uma linha de cache?
Uma linha de cache é o bloco mais pequeno de dados que pode ser transferido da memória principal para a cache da CPU. Normalmente, uma linha de cache consiste em 64 bytes num processador com instruções de 4 bytes e 128 bytes para instruções de 8 bytes. Sempre que a CPU solicita dados da memória, ela busca a linha inteira em vez de apenas um dado ou instrução; isso ajuda a reduzir a latência, garantindo que quaisquer dados relacionados também estejam no cache da CPU, caso sejam necessários em operações futuras.
O que é multiprocessamento?
O multiprocessamento é um termo genérico utilizado para descrever várias CPUs a trabalhar em conjunto, quer como parte de um único sistema informático, quer distribuídas por vários sistemas/dispositivos. Na maioria dos computadores/servidores/redes modernos, o multiprocessamento pode assumir várias formas, incluindo o multiprocessamento simétrico (SMP), em que duas ou mais CPUs partilham o acesso à RAM e a outros recursos; o multiprocessamento assimétrico (AMP), em que um ou mais processadores actuam como mestres e delegam tarefas a processadores subordinados; e o processamento massivamente paralelo (MPP), em que vários processadores cooperam para executar rapidamente tarefas computacionais complexas sobre grandes quantidades de dados.
O que é a arquitetura superescalar?
A arquitetura superescalar refere-se a CPUs de elevado desempenho capazes de executar mais do que uma instrução ao mesmo tempo, o que lhes permite aumentar o desempenho ao permitir que várias instruções sejam executadas em simultâneo e não sequencialmente, como acontecia nas gerações anteriores, reduzindo assim a latência e aumentando o débito ao utilizar unidades de execução inactivas quando necessário. Ao fazê-lo, as arquitecturas superescalares utilizam de forma mais eficiente os recursos disponíveis do processador, o que resulta em velocidades de processamento mais rápidas, mesmo em comparação com os seus antecessores com um clock mais elevado.
O que são microprocessadores?
Um microprocessador é essencialmente uma versão reduzida de um processador de tamanho normal concebido para dispositivos mais pequenos, como sistemas incorporados, PDAs, telemóveis, etc., em que o consumo de energia e o tamanho físico são dois factores importantes. Os microprocessadores utilizam normalmente arquitecturas mais simples do que os seus homólogos de maiores dimensões, de modo a reduzir o custo e a complexidade, oferecendo simultaneamente um desempenho comparável para o fim a que se destinam.
Como é que a virtualização funciona?
A tecnologia de virtualização permite que os recursos de hardware de um sistema informático (tais como núcleos de CPU, memória, etc.) sejam divididos em diferentes máquinas "virtuais", cada uma das quais executa o seu próprio sistema operativo independentemente de outras VMs - isto torna possível que vários utilizadores/aplicações dentro de uma organização ou agregado familiar utilizem os recursos de uma máquina física sem se afectarem mutuamente, uma vez que cada VM funciona completamente separada de todas as outras VMs que correm na mesma máquina, com o seu próprio subconjunto dedicado de recursos de hardware disponíveis. Isto torna a virtualização muito útil para poupar espaço e energia, permitindo também uma utilização mais eficiente do hardware existente devido à redução da duplicação entre máquinas/dispositivos