Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

10
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ção Ciclo de Clock Pipeline do ARM Cortex M3 e Cortex M0 Instruções de Processamento de dados so a memória: Busca a instrução na memória e a coloca no barramento de dados, disponível começar sua decodificação na central de decodificação e controle ( chamada de “instruction pipeline” dificação: Decifra o que a instrução solicita e prepara os sinais para a execução ução: A Unidade aritmética lógica ( ALU ) é utilizada para computar a solicitação contida na instruçã a fase são utilizados os registradores para operações, caso necessário. EmbeddedReference

description

Cortex M0+ PIPELINE for data processing and branch instructions detailed. Compares with CORTEX M0, M3 and ARM7 PIPELINE.

Transcript of Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

Page 1: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 2: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 3: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 4: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 5: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 6: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 7: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 8: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 9: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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

Page 10: Cortex M0+ PIPELINE for data processing and branch instructions - ptbr

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