A system and method for efficiently processing instructions in a pipeline
architecture for a microcontroller and maintaining a fixed instruction
execution per clock cycle rate is disclosed. The pipeline comprises four
stages: an instruction fetch stage, an operand fetch stage, an execution
stage, and a write back stage. In a first embodiment, an entire clock
cycle is dedicated to the instruction fetch stage to the instruction fetch
stage to retrieve instruction data from non-volatile memory in a single
clock cycle. In a second embodiment, the operand fetch stage preliminarily
decodes the instruction data to determine tasks to be performed to allow
the execution stage to perform its time-intensive calculations in a single
clock cycle. Additionally, the operand fetch stage initiates the
performance of tasks determined from the decoding of the instructions to
minimize the time required to perform those tasks by the execution stage.
In one embodiment, a read address is generated responsive to determining
that a read operation is to be performed by the execution stage. In a
third embodiment, a dual port data memory is employed to allow the
execution stage and the write back stage to perform read and write
operations concurrently, in a single clock cycle. Additional embodiments
are disclosed for addressing circumstances in which one stage modifies the
data address pointer required by another stage or one stage writes to an
data memory location required for a read operation by a previous stage.
Thus, a one instruction per clock cycle rate is achieved and maintained.
Um sistema e um método para eficientemente processar instruções em uma arquitetura do encanamento para um microcontrolador e manter uma execução fixa da instrução por a taxa do ciclo de pulso de disparo são divulgados. O encanamento compreende quatro estágios: uma instrução busca o estágio, um operando busca o estágio, um estágio da execução, e uma escrita para trás encena. Em uma primeira incorporação, um ciclo de pulso de disparo inteiro é dedicado à instrução busca o estágio à instrução busca o estágio para recuperar dados da instrução da memória permanente em um único ciclo de pulso de disparo. Em uma segunda incorporação, o operando busca o estágio descodifica preliminar os dados da instrução para determinar tarefas ser executado para permitir que o estágio da execução execute seus cálculos tempo-time-intensive em um único ciclo de pulso de disparo. Adicionalmente, o operando busca a novatos do estágio o desempenho das tarefas determinadas da descodificação das instruções para minimizar o tempo requerido para executar aquelas tarefas pela execução encena. Em uma incorporação, um endereço lido é responsivo gerado a determinar que uma operação lida deve ser executada pelo estágio da execução. Em uma terceira incorporação, uma memória dupla dos dados portuários é empregada para permitir o estágio da execução e a escrita para trás encena para executar lido e escrever simultaneamente operações, em um único ciclo de pulso de disparo. As incorporações adicionais são divulgadas dirigindo-se às circunstâncias em que um estágio modifica o ponteiro do endereço dos dados requerido por um outro estágio ou um estágio escreve a uma posição de memória dos dados requerida para uma operação lida por um estágio precedente. Assim, uma uma instrução por a taxa do ciclo de pulso de disparo é conseguida e mantida.