cortex m0+ pipeline for data processing and branch instructions - ptbr
DESCRIPTION
Cortex M0+ PIPELINE for data processing and branch instructions detailed. Compares with CORTEX M0, M3 and ARM7 PIPELINE.TRANSCRIPT
Acesso a memória
Decodificação Execução
Fluxo normal do programa
…
Acesso a memória
Decodificação Execução
Acesso a memória
Decodificação ExecuçãoCiclo de Clock
Pipeline do ARM Cortex M3 e Cortex M0Instruções de Processamento de dados
Acesso a memória: Busca a instrução na memória e a coloca no barramento de dados, disponível para começar sua decodificação na central de decodificação e controle ( chamada de “instruction pipeline” )
Decodificação: Decifra o que a instrução solicita e prepara os sinais para a execução
Execução: A Unidade aritmética lógica ( ALU ) é utilizada para computar a solicitação contida na instrução. Nesta fase são utilizados os registradores para operações, caso necessário.
EmbeddedReference
Fluxo normal do programa
…
Ciclo de Clock
Acesso a Deco memória
dificação Execução
Acesso a Deco memória
dificação Execução
Acesso a Deco memória
dificação Execução
Pipeline do ARM Cortex M0+Instruções de Processamento de dados
Acesso a memória e começo da decodificação: Busca a instrução na memória, a coloca no barramento de dados,começa sua decodificação na central de decodificação e controle ( chamada de “instruction pipeline” ).
Fim da Decodificação e Execução: Prepara os sinais para a execução, acessa os registradores e utiliza a Unidadearitmética lógica ( ALU ) para computar a solicitação contida na instrução.
EmbeddedReference
Minemônico Operandos Descrição Flags que são afetadas
ADCS {Rd,} Rn, Rm Add with Carry N,Z,C,V
ADD{S} {Rd,} Rn,<Rm|#imm> Add N,Z,C,V
ANDS {Rd,} Rn, Rm Bitwise AND N,Z
ASRS {Rd,} Rm,<Rs|#imm> Arithmetic Shift Right N,Z,C
BICS {Rd,} Rn, Rm Bit Clear N,Z
CMN Rn, Rm Compare Negative N,Z,C,V
CMP Rn, <Rm|#imm> Compare N,Z,C,V
EORS {Rd,} Rn, Rm Exclusive OR N,Z
LSLS {Rd,} Rn,<Rs|#imm> Logical Shift Left N,Z,C
LSRS {Rd,} Rn,<Rs|#imm> Logical Shift Right N,Z,C
MOV{S} Rd, Rm Move N,Z
MULS Rd, Rn, Rm Multiply, 32-bit result N,Z
MVNS Rd, Rm Bitwise NOT N,Z
ORRS {Rd,} Rn, Rm Logical OR N,Z
ARM Cortex M0+: Instruções de Processamento de dados
EmbeddedReference
Minemônico Operandos Descrição Flags que são afetadas
REV Rd, Rm Byte-Reverse word -
REV16 Rd, Rm Byte-Reverse packed halfwords -
REVSH Rd, Rm Byte-Reverse signed halfword -
RORS {Rd,} Rn, Rs Rotate Right N,Z,C
RSBS {Rd,} Rn, #0 Reverse Subtract N,Z,C,V
SBCS {Rd,} Rn, Rm Subtract with Carry N,Z,C,V
SUB{S} {Rd,} Rn,<Rm|#imm> Subtract N,Z,C,V
SXTB Rd, Rm Sign extend byte -
SXTH Rd, Rm Sign extend halfword -
TST Rn, Rm Logical AND based test N,Z
UXTB Rd, Rm Zero extend a byte -
UXTH Rd, Rm Zero extend a halfword -
ARM Cortex M0+: Instruções de Processamento de dados
EmbeddedReference
Acesso a memória
Fluxo normal do programa
Ciclo de Clock
Pipeline do ARM Cortex M3 e Cortex M0Instruções de Branch (saltos condicionais)
Decodificação Execução
Acesso a memória
DecodificaçãoCálculo do
Endereço de Branch
Acesso a memória
Acesso a memória
Acesso a memória
Decodificação Execução
Acesso a memória
Decodificação Execução
Instruções descartadas
I1
Resultado do cálculo: Instrução I1
Em amarelo, instrução de BranchEm vermelho, instruções que serão descartadas
EmbeddedReference
Fluxo normal do programa
Ciclo de Clock
Instrução descartada
I1
Resultado do cáculo: Instrução I1
Pipeline do ARM Cortex M0+Instruções de Branch (saltos condicionais)
…
Acesso a Deco memória
dificação Execução
Acesso a Deco memória
Cálculo dificação do end.
de branch
Acesso a Deco memória
Acesso a Deco memória
dificação Execução
Acesso a Deco memória
dificação ExecuçãoEm amarelo, instrução de BranchEm vermelho, instrução que será descartada
EmbeddedReference
Fluxo normal do programa
Loop1:
Decisão
Cada Instrução é executadaem um ciclo de clock nesseexemplo
1 ciclo de espera
…
Ciclo de Clock
ARM Cortex M3 e M0: Tempo ocioso devido a um branch
ADD CMP BLE Loop1 ADD
EmbeddedReference
Fluxo normal do programa
Loop1:
Decisão
Cada Instrução é executadaem um ciclo de clock nesseexemplo
1 ciclo de espera
…
Ciclo de Clock
ARM Cortex M0+: Tempo ocioso devido a um branch
ADD CMP BLE Loop1 ADD
EmbeddedReference
Minemônico Descrição
B{cc} Branch {conditionally}
BL Branch with Link
BLX Branch indirect with Link
BX Branch indirect
ARM Cortex M0+: Instruções de Branch
EmbeddedReference
ARM Cortex M0+: Instruções de Branch
EmbeddedReference
Minemônico Descrição
B{cc} Branch {conditionally}
BL Branch with Link
BLX Branch indirect with Link
BX Branch indirect