Ciclos por instrução - Cycles per instruction

Na arquitetura de computador , ciclos por instrução (também conhecidos como ciclos de clock por instrução , relógios por instrução ou CPI ) é um aspecto do desempenho de um processador : o número médio de ciclos de clock por instrução para um programa ou fragmento de programa. É o inverso multiplicativo das instruções por ciclo .

Definição

A média de ciclos por instrução em um determinado processo é definida pelo seguinte:

Onde é o número de instruções para um determinado tipo de instrução , são os ciclos do relógio para esse tipo de instrução e é a contagem total de instruções. A soma soma todos os tipos de instrução para um determinado processo de benchmarking.

Explicação

Vamos supor um pipeline RISC clássico , com os cinco estágios a seguir:

  1. Ciclo de busca de instrução (IF).
  2. Decodificação de instrução / ciclo de busca de registro (ID).
  3. Ciclo de execução / endereço efetivo (EX).
  4. Acesso à memória (MEM).
  5. Ciclo de write-back (WB).

Cada estágio requer um ciclo de clock e uma instrução passa pelos estágios sequencialmente. Sem pipelining , em um processador multi-ciclo , uma nova instrução é buscada no estágio 1 somente após a instrução anterior terminar no estágio 5, portanto, o número de ciclos de clock necessários para executar uma instrução é cinco (CPI = 5> 1). Nesse caso, o processador é considerado subescalar . Com o pipelining, uma nova instrução é buscada a cada ciclo de clock, explorando o paralelismo de nível de instrução , portanto, uma vez que se poderia teoricamente ter cinco instruções nos cinco estágios do pipeline de uma vez (uma instrução por estágio), uma instrução diferente completaria o estágio 5 em cada ciclo de clock e, em média, o número de ciclos de clock necessários para executar uma instrução é 1 (CPI = 1). Nesse caso, o processador é escalar .

Com um processador de unidade de execução única , o melhor CPI atingível é 1. No entanto, com um processador de unidade de execução múltipla, pode-se obter valores de CPI ainda melhores (CPI <1). Nesse caso, o processador é considerado superescalar . Para obter melhores valores de CPI sem pipelining, o número de unidades de execução deve ser maior que o número de estágios. Por exemplo, com seis unidades de execução, seis novas instruções são buscadas no estágio 1 somente após as seis instruções anteriores terminarem no estágio 5, portanto, em média, o número de ciclos de clock que leva para executar uma instrução é 5/6 (CPI = 5 / 6 <1). Para obter melhores valores de CPI com pipelining, deve haver pelo menos duas unidades de execução. Por exemplo, com duas unidades de execução, duas novas instruções são buscadas a cada ciclo de clock, explorando o paralelismo de nível de instrução, portanto, duas instruções diferentes completariam o estágio 5 em cada ciclo de clock e, em média, o número de ciclos de clock necessários para executar uma instrução é 1/2 (CPI = 1/2 <1).

Exemplos

Exemplo 1

Para o MIPS multi-ciclo , existem cinco tipos de instruções:

Se um programa tem:

  • 50% de instruções de carregamento
  • 25% instruções de armazenamento
  • 15% instruções tipo R
  • 8% instruções de filial
  • 2% instruções de salto

então, o CPI é:

Exemplo 2

Um processador de 400 MHz foi usado para executar um programa de benchmark com a seguinte combinação de instruções e contagem de ciclo de clock :

Instrução TIPO Contagem de instrução Contagem do ciclo do relógio
Aritmética Inteira 45000 1
Transferência de dados 32000 2
Ponto flutuante 15.000 2
Transferência de controle 8000 2

Determine o CPI efetivo, a taxa MIPS (milhões de instruções por segundo) e o tempo de execução para este programa.

desde: e

Portanto:

Veja também

Referências