Porque é que o ARM não contém instruções de divisão?
*alguns* cpus ARM (vários antigos) realmente não continham uma instrução de divisão de números inteiros. A razão para isso é simples: o hardware necessário para implementar operações de divisão (e modulo) é caro, comparado com outras instruções (como a multiplicação). Em núcleos simples (como o ARM7TDMI), a implementação da divisão abrangeria cerca de metade da área do chip. Estatisticamente, a instrução de divisão de números inteiros não é muito utilizada, por isso eles a retiraram. Claro, a cpu pode realizar operações de divisão, mas as divisões são emuladas em software (que é uma operação lenta).
Se a operação de divisão não é usada com muita frequência (o que é o caso de muitas aplicações embutidas), por que gastariam metade da área do chip (e conseqüentemente muito consumo de energia e custo do chip) nesse caso?
alguns benchmarks da cpu não avaliam o desempenho da instrução de divisão de número inteiro. Um exemplo é o benchmark da Coremark, que se concentra na avaliação da memória (primeiro nível de cache) e do desempenho da cpu inteira.
Artigos semelhantes
- Quais são as vantagens e desvantagens das instruções do polegar em relação às instruções de 32 bits do ARM?
- Porque é que você precisa de uma licença do ARM para projetar uma CPU ARM? Como são protegidos os conjuntos de instruções?
- Que unidade da divisão americana de qualquer filial tem melhor desempenho do que a 82ª Divisão Aérea?
- Por que foi criado o conjunto de instruções do ARM Thumb?