Tutoriais e Programação
AoA - Capítulo 3 - ORGANIZAÇÃO DE SISTEMAS
Ter 13 Fev 2007 21:09 |
- Detalhes
- Categoria: Art of Assembly
- Atualização: Sábado, 18 Abril 2009 20:35
- Autor: vovó Vicki
- Acessos: 6620
Para escrever até mesmo um modesto programa em linguagem Assembly 80x86 é preciso estar bastante familiarizado com a família de processadores 80x86. Bons programas em linguagem Assembly requerem um sólido conhecimento do hardware subjacente. Infelizmente, as bases de hardware não são consistentes. Técnicas cruciais para programas do 8088 podem ser inúteis em sistemas 80486. Da mesma forma, técnicas de programação que geram grandes aumentos de performance em chips 80486 podem não ajudar muito em chips 80286. Felizmente algumas técnicas de programação funcionam bem independentemente do microprocessador que estiver sendo utilizando. Este capítulo discute o efeito do hardware no desempenho do software de computador.
O capítulo 3 descreve os componentes básicos que formam um sistema de computador: CPU, memória, E/S e o barramento que os conecta. Embora seja possível escrever software que ignore estes conceitos, um bom desempenho de software requer o entendimento completo destes tópicos.
O capítulo começa discutindo a organização do barramento e a organização da memória. Estes dois componentes de hardware provavelmente terão maior impacto na performance de seu software do que a velocidade da CPU. Entender a organização do barramento do sistema permitirá que você desenvolva estruturas de dados que operem em velocidade máxima. Da mesma forma, conhecer as características de performance da memória, localização dos dados e operações em cache podem ajudá-lo a desenvolver software que rode o mais rápido possível.
Infelizmente os microprocessadores da família 80x86 constituem um grupo complexo e frequentemente assustam principiantes. É por isto que este capítulo descreve quatro membros hipotéticos da família 80x86: os microprocessadores 886, 8286, 8486 e o 8686. Eles são versões simplificadas dos chips 80x86 e permitem a discussão de várias características da arquitetura sem nos afogar com o extenso conjunto de instruções CISC. Este texto utiliza processadores hipotéticos x86 para descrever os conceitos de codificação de instruções, modos de endereçamento, execução sequencial, pipelining, carregamento da pilha e operação superescalar. Se você quiser apenas escrever software corretamente, estes conceitos não são absolutamente necessários. Contudo, se além de escrever corretamente, você também quer escrever softwares rápidos, especialmente para processadores avançados como o Pentium (e até para os que ainda virão), você vai precisar destes conceitos.
Fonte
- Art of Assembly de Randall Hyde.
- Tradução meio que livre da vovó Vicki.