Você está na página 1de 19

Algumas caractersticas especiais

Tpicos o Medidas de desempenho o CISC versus RISC o Arquiteturas Superescalares o Arquiteturas VLIW

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Medidas de desempenho

Desempenho muito dependente da aplicao MIPS: Milhes de Instrues Por Segundo


Uma tarefa Duas mquinas: n instrues diferentes

MFLOPS: Milhes de Operaes em Ponto Flutuante por Segundo


Outras instrues consideradas overhead para as de ponto flutuante

Whetstones: Benchmark sinttico


Programa para testar desempenho em ponto flutuante

Dhrystones: Competidor do Whetstone


Desenvolvido com nfase em operaes inteiras

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Medidas de desempenho

SPEC: System Performance Evaluation Cooperative


Consrcio de empresas formado em 1987 Padro SPEC-benchmark
Um compilador Um programa de minimizao lgica Uma planilha Outros programas com nfase no processamento aritmtico

SPECint92 e SPECfp92

Todos os esforos para medir desempenho buscam dizer aos usurios quo bem um computador pode tratar sua carga de trabalho.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

CISC versus RISC

CISC: Complex Instruction Set Computer


Muitas instrues complexas e vrios modos de endereamento Algumas instrues podem gastar vrios ciclos sendo executadas Nem sempre fcil achar a melhor instruo para uma tarefa

RISC: Reduced Instruction Set Computer


Poucas instrues simples e poucos modos de endereamento Geralmente uma instruo por palavra Clculos de endereos complexos pode durar vrias instrues Geralmente acesso memria com load-store, demais instrues referem-se a dados em um banco de registradores

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Alguns fatores histricos


As mquinas CISC no correspondem a uma filosofia de projeto
O objetivo era fazer o mximo possvel com uma nica instruo

Necessidade de compactao de cdigo


Chip de memria RAM de 16K custava US$500.00 HD de 40MB custava US$55,000.00

Compatibilidade entre geraes favorece complexidade H o distanciamento semntico (semantic gap) entre cdigo de mquina e instrues de alto nvel. Acreditava-se que reduzindo esta diferena poder-se-ia melhorar o desempenho. Donald Knuth (1971) e David Patterson (1982) mostraram que no era bem assim: 85% dos programas consistiam em atribuies, testes e chamadas a procedimentos. O preo das memrias caiu significativamente e a presso passou de fazer mais para fazer mais rpido.
Adaptado do livro Computer Systems Design and Architecture 1997 V. Heuring and H. Jordan

Caractersticas de projeto de mquinas CISC

Instrues complexas capazes de executar muitas operaes


Pela complexidade a execuo de uma instruo pode durar muitos ciclos de relgio e cada instruo dura um nmero de ciclos diverso

Devido complexidade das instrues torna-se difcil implantar conceitos como o pipeline. O tamanho varivel das instrues e as vrias formas de endereamento requerem unidades de busca e decodificao bastante complexas. Mquinas deste tipo tm como meta: faa do seu jeito.
Exemplo: Instrues do VAX usavam de 0 a 3 operandos; ADD 2 ou 3 operandos em memria ou registrador.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Outras caractersticas de mquinas CISC

Devido grande variedade de modos de endereamento, muitos clculos so necessrios para determinao dos operandos. Por utilizar instrues capazes de executar vrias operaes, o trfego de instrues entre UCP e memria tende a ser pequeno. O trfego de dados em uma mquina CISC tende a ser equivalente ao de uma mquina RISC pura.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Caractersticas de projeto de mquinas RISC

Instrues simples podem ser executadas em poucos ciclos de relgio


Simplicidade pode minimizar o ciclo do relgio

Uma mquina pipeline pode ter uma instruo completada a cada ciclo de relgio Instrues de tamanho fixo simplificam os mecanismos de busca e decodificao Restries podem incluir o incio de uma instruo sem a finalizao dos resultados da instruo anterior
Executar incondicionalmente a instruo sucessora de um salto Iniciar a instruo seguinte sem completar a carga de um registrador

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Outras caractersticas de mquinas RISC

Busca prvia de instrues Execuo pipeline incio da execuo de uma instruo antes da concluso da anterior. Operao superescalar incio da execuo de mais de uma instruo simultaneamente. Saltos, armazenagem e cargas retardados Os operandos podem no estar disponveis quando uma operao tentar acessa-los. Uso de janelas de registradores capacidade de mudar o conjunto de registradores da UCP com um nico comando, para aliviar a sobrecarga com chamada e retorno de sub-rotinas.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

CISC versus RISC

Por utilizar instrues mais simples, uma determinada tarefa requer a execuo de mais instrues em mquinas RISC do que em mquinas CISC. Executando mais instrues, uma mquina puramente RISC deve ter um trfego de dados equivalente ao de uma mquina CISC para a execuo de uma mesma tarefa, mas certamente o trfego de instrues ser menor nesta que naquela. Concluso: Se uma mquina CISC tradicional no tem o melhor desempenho, o de uma mquina puramente RISC tambm deixa a desejar.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

CISC versus RISC

Exemplo:
Mquina RISC bsica sem diviso inteira Diviso inteira no cabe em um s ciclo de relgio Arquitetura tem um passo de diviso Para dividir inteiros de 32 bits inicializam-se registradores com os valores do divisor, do dividendo e do quociente e executam-se 32 passos consecutivos de diviso. Sem laos e sem saltos, tem-se uma instruo executada por ciclo de relgio. O resultado o ideal para uma RISC-pipeline, mas ser esta a melhor soluo?

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

CISC versus RISC

A soluo aumenta o tempo de execuo da diviso de alguns ciclos, em uma mquina CISC, para 32 ciclos em uma RISC. Devido ao esvaziamento do pipeline por alguns ciclos no caso CISC, o nmero de ciclos por instruo pode ser maior, mas o desempenho final ser melhor que na soluo dada ao RISC. Porque no tirar proveito de algumas solues CISC em mquinas RISC?

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

CISC versus RISC

Outro problema das mquinas RISC, mencionado, o grande trfego de instrues. A soluo utilizar o espao liberado pela lgica extra de decodificao, necessria em mquinas CISC, incluindo no seu lugar uma memria cache de instrues.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Conceitos-chave: CISC versus RISC

Uma mquina RISC geralmente tem menos instrues do que uma CISC, e elas so sempre mais simples. Operaes aritmticas que exigem vrios passos so confinadas a certas unidades especiais. Todas as mquinas RISC so do tipo load-store. Operaes aritmticas referenciam apenas valores em registradores. Formatos de instruo regulares e em pouca variedade, bem como modos de endereamento limitados, possibilitam rpidas decodificao da instruo e determinao dos operandos. Atrasos nos saltos so tpicos em mquinas RISC e tem origem no modo como um pipeline processa instrues de salto.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Paralelismo no nvel de instrues

No caso ideal, um pipeline utiliza aproximadamente um ciclo de relgio para executar cada instruo (1 CPI). Como reduzir o nmero de ciclos gastos para a execuo de cada instruo? A tecnologia atual sugere que seja possvel a execuo de cinco a dez instrues por ciclo de relgio. Abordagens fortemente pipelinezadas:
Mquinas superescalares Mquinas superpipeline Mquinas com palavra de instruo muito longa (VLIW)

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Mquinas superescalares

Origem do termo:
Mquinas seriais (escalares) x paralelas (vetoriais) Mquina superescalar seria uma mquina escalar com desempenho superior.

Decodificam vrias instrues em um nico ciclo. Executam tantas instrues por ciclo de relgio quantas forem possveis. Utilizam vrias unidades funcionais operando em paralelo, por exemplo: 1 salto, 1 UPF, 2 ULAs.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Mquinas superpipeline

Variao da superescalar na qual a decodificao e execuo de vrias instrues por ciclo de relgio baseia-se na existncia de um relgio secundrio, mais rpido que o relgio global do sistema. Para executar N instrues por ciclo, utiliza um relgio de despacho N vezes mais rpido que o relgio principal. Seu funcionamento baseia-se, tambm, na existncia de vrios pipelines internos, para onde as instrues so despachadas. Do ponto de vista do programador no h diferena entre uma superescalar e uma superpipeline.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Mquinas VLIW (Very Long Instruction Word)


Usando uma palavra longa as instrues dessas mquinas contm campos que controlam, diretamente, vrias unidades aritmticas e outros recursos da mquina. As instrues so decodificadas diretamente pelo hardware, dando ao programador controle sobre muitos recursos da mquina. Grande potencial para aumento de desempenho do cdigo normal. Apresenta problemas com saltos condicionais, pois muitos recursos podem ficar ociosos, j que as instrues de uma palavra so executadas juntas em um s ciclo da mquina.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Resumo

A relao custo/desempenho de uma mquina chave para a sua aquisio.


Desempenho pode ser medido de vrios modos: MIPS, MFLOPS, Whetstone, Dhrystone, SPEC benchmarks.

Mquinas CISC tm instrues que fazem mais.


Tamanho da palavraq de isntruo pode variar muito Modos de endereamento favorecem trfego de memria

Mquinas RISC normalmente tm:


Uma palavra por instruo Acesso memria apenas via load-store Instrues e modos de endereamento simples Perodos de relgio menores, pr-busca, etc.

Adaptado do livro Computer Systems Design and Architecture

1997 V. Heuring and H. Jordan

Você também pode gostar