# data[].attributes.headline
Todos essas vulnerabilidades são baseadas na mesma falha encontrada pela Intel e que a empresa batizou de Microarchitectural Data Sampling (MDS).

# data[].attributes.subject
Todos essas vulnerabilidades são baseadas na mesma falha encontrada pela Intel e que a empresa batizou de Microarchitectural Data Sampling (MDS).

# data[].attributes.body
A falha MDS funciona de maneira bem similar, mas ao invés de vazar informações do cache, o vazamento acontece de diversos buffers existentes dentro do processador.

O problema é que essas tentativas de “adivinhar” o valor a ser executado podem ser usados por hackers para conseguir informações sobre a máquina. Por exemplo, ao modificar os valores existentes em cache, é possível causar uma sutil diferença no tempo de execução dos processos (já que é mais rápido ler valores que já existem em cache do que os que não estão lá), diferença essa que pode ser medida por um hacker para, a partir dessa medição, conseguir informações que podem ajudá-lo a invadir uma máquina.

# data[].attributes.body
O novo chip, batizado de Morpheus, bloqueia possíveis ataques de hackers criptografando e reorganizando aleatoriamente bits chave de seu próprio código e de seus dados 20 vezes por segundo. ... Com o Morpheus, mesmo que um hacker encontre um bug, a informação necessária para explorá-lo desaparece 50 milissegundos depois.

# data[].attributes.body
RISC

No caso de um chip estritamente RISC, o programador já teria um pouco mais de trabalho, pois como disporia apenas de instruções simples, teria sempre que combinar várias instruções sempre que precisasse executar alguma tarefa mais complexa.

Os processadores baseados na computação de conjunto de instruções reduzido não têm micro-programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade.

A ideia foi inspirada pela descoberta de que muitas das características incluídas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relação à memória que ele acessava era crescente. Isto resultou num número de técnicas para otimização do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o número total de acessos à memória.

RISC é também a arquitetura adotada para os processadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente à execução do jogo, tornando-o muito mais rápido em relação a micro computadores com mais recursos, embora com processador x86.

Pode-se concluir que os projetistas de arquiteturas CISC consideram três aspectos básicos: – uso de microcódigo; – construção de conjuntos com instruções completas e eficientes (completeza no conjunto); – criação de instruções de máquina de “alto nível”, ou seja, com complexidade semelhante à dos comandos de alto nível.

Colocados juntos, esses elementos do projeto nortearam a filosofia de construção de processadores CISC por longo tempo, como a família Intel x86, os processadores AMD K e, anteriormente, os sistemas IBM e VAX. Assim é que existem naqueles conjuntos instruções poderosas, do tipo:

CAS – compare and swap operands (comparar valores e trocas operandos)

RTR – return and restore codes (retornar e restaurar código)

SWAP – swap register words (trocar palavras dos registradores)

Menor quantidade de instruções: talvez a característica mais marcante das arquiteturas RISC, seja a de possuir um conjunto de instruções menor(todas também com largura fixa), que as máquinas que possuíam a arquitetura CISC, porém com a mesma capacidade. Vem daí o nome dado a arquitetura RISC (computadores com um conjunto reduzido de instruções). A SPARC, da Sun, possuía um conjunto de cerca de 50 instruções, a VAX-11/780 tinha até 300 instruções, o Intel 80486 foi apresentado com 200 instruções e os Pentium possuem mais de 200 instruções.

Com o conjunto de instruções reduzido e cada uma delas tendo suas funções otimizadas, os sistemas possuíam um resultado melhor em questão de desempenho. Em virtude do conjunto reduzido das instruções, acarretavam em programas um pouco mais longos.

Execução otimizada de chamadas de função: outra evolução da arquitetura RISC para a arquitetura CISC tem relação com a chamada de retinas e passagem de parâmetros. Estudos indicam que as chamadas de funções consomem um tempo significativo de processador. Elas requerem poucos dados, mas demoram muito tempo nos acessos a memória.

Em virtude disso, na arquitetura RISC foram utilizados mais registradores. As chamadas de função que na arquitetura CISC ocorriam com acessos a memória, mas na RISC isso era feito dentro do processador mesmo, utilizando os registradores que foram colocados a mais.

Modo de execução com Pipelining: uma das características mais relevantes da arquitetura RISC é o uso de pipelining, mesmo sabendo que ela tem um funcionamento mais efetivo quando as instruções são todas bastante parecidas.

Imaginando estágios de uma linha de montagem, não é interessantes que um estágio termine antes do outro, pois nesse caso perde-se a vantagem da linha de montagem. O objetivo de cada instrução, é completar um estágio de pipeline em um ciclo de clock, mas esse objetivo nem sempre é alcançado.

O processamento de uma instrução é composto pelo menos por cinco fases:

Instruction fetch;

Instruction decode;

Operand fetch;

Execution;

Write back.

Hoje em dia o pipeline não se limita a apenas 5 estágios, mas pode chegar a 20 ou 30 estágios (Intel Pentium 4). No entanto, para que todo o processo funcione é necessário que determinadas restrições se verifiquem. A prioridade é que todas as instruções permaneçam em cada estágio o mesmo tempo, para que:

O sinal de relógio seja usado como cadência de processamento;

Não sejam necessários “buffers”;

Execução de cada instrução em um ciclo de clock: se o uso do pipelining se considera uma característica importante da arquitetura RISC, a execução de uma instrução por ciclo de clock é mais importante, segundo os que estabeleceram suas bases. Um dos pontos mais negativos das arquiteturas RISC é o longo tempo de execução de cada instrução. Com o surgimento dessa nova arquitetura, cada instrução passou a ser executada a cada ciclo de clock.

Vantagens

Velocidade

Devido a tecnologia pipelined os processadores RISC alcançam duas a quatro vezes a performance dos processadores CISC usando tecnologia de semicondutor equivalente e os mesmos valores de clock.

Desvantagens

A transição da arquitetura CISC para arquitetura RISC pode apresentar alguns problemas devido ao fato que os engenheiros de software podem ter problemas para fazer a transição do código de memória de maneira correta.

# data[].attributes.body
CISC

Examinando de um ponto de vista um pouco mais prático, a vantagem de uma arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores, que já dispõe de praticamente todas as instruções que serão usadas em seus programas. Os processadores CISC têm a vantagem de reduzir o tamanho do código executável por já possuirem muito do código comum em vários programas, em forma de uma única instrução.

Os processadores baseados na computação de conjunto de instruções complexas contêm uma microprogramação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua microprogramação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade.

A CISC é implementada e guardada em micro-código no processador, sendo difícil modificar a lógica de tratamento de instruções. Esta arquitetura suporta operações do tipo “a=a+b” descrita por “add a,b”, ou seja podem simplesmente utilizar dois operandos para uma única instrução, sendo um deles fonte e destino (acumulador) e permite um ou mais operadores em memória para a realização das instruções. Com isto se comprova a necessidade de abranger um elevado leque de modelos de endereçamento, com acesso direto à memória e com apontadores para as variáveis em memória, armazenados eles próprios (ponteiros) em células de memória.

Porém, do ponto de vista da performance, os CISC’s têm algumas desvantagens em relação aos RISC’s, entre elas a impossibilidade de se alterar alguma instrução compostapara se melhorar a performance. O código equivalente às instruções compostas do CISC pode ser escrito nos RISC’s da forma desejada, usando um conjunto de instruções simples, da maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho do código X desempenho.

Os processadores CISC têm a vantagem de reduzir o tamanho do código executável por já possuirem muito do código comum em vários programas

Desvantagens da arquitetura CISC é a impossibilidade de alterar alguma instrução composta para melhorar a performance.