Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos o Medidas de desempenho o CISC versus RISC o Arquiteturas Superescalares o Arquiteturas VLIW
Medidas de desempenho
Medidas de desempenho
SPECint92 e SPECfp92
Todos os esforos para medir desempenho buscam dizer aos usurios quo bem um computador pode tratar sua carga de trabalho.
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
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.
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.
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
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.
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.
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?
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?
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.
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.
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)
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.
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.
Resumo