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:
- Ciclo de busca de instrução (IF).
- Decodificação de instrução / ciclo de busca de registro (ID).
- Ciclo de execução / endereço efetivo (EX).
- Acesso à memória (MEM).
- 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:
- Carregar (5 ciclos)
- Armazenar (4 ciclos)
- Tipo R (4 ciclos)
- Ramificação (3 ciclos)
- Salto (3 ciclos)
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
- Ciclo por segundo ( Hz )
- Instruções por ciclo (IPC)
- Instruções por segundo (IPS)
- Mito de Megahertz
- MIPS
- O artigo de referência fornece uma introdução útil à medição de desempenho do computador para os leitores interessados no tópico.