Uhuul
Define-se então que um conjunto de instruções é aquele conjunto de operações que um determinado processador é capaz de entender/interpretar, por consequência, executar.
O número de instruções que cada processador é capaz de executar é finito: quando o processador é projetado, os engenheiros que o concebem determinam quais as operações que irão fazer parte de seu conjunto de instruções. Em princípio, todo processador é capaz de executar qualquer operação de qualquer algoritmo; o que muda é a maneira como ela é executada: se uma determinada operação pertence ao conjunto de instruções do processador, então, se diz que o processador a executa nativamente ou diretamente, ou seja, ele é capaz de decodificá-la diretamente
A Instrução MMX, da Intel
Em 1997, a Intel definiu em seu novo processador algumas instruções de propósito específico para operações comuns como codificação/decodificação de áudio e vídeo e, para isso, percebendo que há muitas operações parecidas (como uma soma entre vetores) desenvolveu alguns conjuntos de instruções tal que o intuito seria paralelizar essas operações. Para tanto, utiliza dados de 64 bits em sua arquitetura de 32 bits.
A priori podemos pensar que essa manipulação diferenciada apenas levaria a carregar um registrador maior para a operação, sendo ainda uma instrução que gera um dado apenas, vulgo SISD (Single Instruction Data), mas não é. O intuito é a paralelização entre diversas operações de uma vez só.
Para ilustrar, podemos imaginar que esses registradores de 64 bits comportam 8 bytes separados, e a soma entre eles, que é diferente entre uma soma de 64 bits pois teremos overflows separados e tratamentos independentes para cada byte, gerará 8 dados desejados em apenas uma instrução. É essa a idéia para que essas instruções retornem mais de um dado, sendo SIMD (Single Instruction, Multiple Data).
Os registradores não podem só ser tratados como 8 bytes, podem ser