Processador Superescalar
- CISC: menos instruções porém mais poderosas. Facilita para o programador. Tempo de decodificação é muito grande. O tamanho das instruções varia muito.
- Na prática todos os processadores superescalares são RISC muito provavelmente pela decodificação
- Slide SuperScalars x Superpipelined
- Superpipelined: processdores RISC
- Superscalar: faz fetch de duas instruções ao invés de uma
- Depende da capacidade de executar o paralelismo
- Limitações no paralelismo:
- True Data Dependency: Quando uma segunda instrução pode ser carregada e decodificado mas não pode ser executada até que a primeira instrução seja executada (Flow-dependency ou write-read dependency)
- Procedural Dependency: ou Conflito de recursos: Presença de saltos ou de ramos
- Output Dependency: Quando duas operações tem como destino o mesmo operador
- Antidependency: Quando usamos um operador em duas instruções o que força a renomear um registrador ocioso.
- Instruction Level Parallelism: determinado pela frequência de dados verdadeiros e dependências procedurais no código
- Machine Parallelism:
- Types of ordering (ordem de execuçáo)
- ordem em que foram carregadas
- ordem em que as instruções foram executadas
- ordem no qual a mudança de registrador e alocação de memória acontecem