Arquitetura do Conjunto de Instruções (ISA)
Last updated
Last updated
Possui conjunto de instruções simples com 56 instruções. De modo geral, é um subconjunto Thumb (do inglês, Thumb Instruction Set Architecture) que inclui a tecnologia [3]. A maioria das instruções são de 16 bits, as demais possuem 32 bits. Embora possua instruções com tamanhos diferentes, ainda é classificado como RISC (do inglês, Reduced Instruction Set Computing) [2].
De fato, a operações load-store podem aumentar a quantidade de instruções utilizadas para realizar um determinado procedimento. No entanto, o tamanho das instruções e as operações realizadas ainda garantem alta densidade de código [2,3].
Embora simples, o conjunto de instruções aumenta aproximadamente 30% a densidade de código. Isso, é claro, afeta o desempenho, sendo 20% menor que um código composto somente por instruções ARM [2].
A seguir são destacadas as instruções de 16 bits do subconjunto Thumb. É importante destacar que o conjunto de instruções Thumb é subconjunto de instruções ARM (32 bits). Para conferir todas operações realizadas na execução das instruções, consulte esta referência: .
Load-Store: LDM LDR LDRH LDRSH LDRB LDRSB STR STRH STRB STM;
Movimentação de dados entre registradores: MOV;
Adição, Subtração e Multiplicação: ADC ADD ADR SUB RSB SBC MUL;
Lógica: AND, EOR, ORR, BIC, TST, MVN;
Deslocamento e Rotação: ASR LSL LSR ROR;
Operações de pilha: POP PUSH;
Desvio: B BX BLX;
Comparação: CMN CMP;
Extensão de bits: SXTB SXTH UXTB UXTH;
Swap: REV REV16 REVSH;
Hint: SEV WFE WFI YIELD NOP BKPT;
Alteração de estado: CPS SVC.
Instruções de 32 bits
Barriers: DSB DMB ISB;
Desvio: BL;
Alteração de estado: MRS;
Hint: MSR.
O ciclo de instrução é executado por um pipeline de dois estágios. Tal característica implica na redução de elementos de memória e consequentemente no consumo de energia [1].
O pipeline contribui para o desempenho do sistema, pois reduz em um ciclo de clock a penalidade de instruções de desvio. Isto é, se uma instrução de desvio é executada, somente a instrução subsequente é ignorada (2 estágios).