Máquinas de Pilha

Luís Nogueira - luis@dei.isep.ipp.pt

Departamento de Engenharia Informática
Instituto Superior de Engenharia do Porto
Abril 2001


Resumo:

As características fundamentais que distinguem as máquinas de pilha dos desenhos convencionais são a utilização de múltiplas pilhas, um conjunto de operações com 0 operandos e uma rápida capacidade de resposta nas chamadas a rotinas. Estas características traduzem-se em elevada performance sem pipelining, processador com uma lógica bastante simples, baixa complexidade do sistema, tamanho reduzido do programa, rápida execução destes programas, baixo overhead na resposta a interrupções, consistência na execução dos programas ao longo do tempo e baixo custo nas mudanças de contexto.

Muitos dos desenhos das máquinas de pilha têm as suas raízes na linguagem de programação Forth, uma vez que esta linguagem é simultaneamente uma linguagem de alto nível e uma linguagem assembly para máquinas com duas pilhas: uma para avaliação de expressões/passagem de parâmetros e outra para endereços de retorno.

O tipo de programas que as máquinas de pilha processam de forma bastante eficiente inclui programas com uso intensivo de subrotinas, programas com um elevado número de estruturas de controlo, programas desenhados para lidar com interrupções frequentes e programas desenhados para uma quantidade limitada de memória.

Apesar de não serem processadores de uso em larga escala em PC's e workstations são extremamente úteis em várias aplicações, especialmente aquelas que exigem pouco espaço, boa resposta a eventos externos e um uso eficiente de recursos limitados, como é o caso de sistemas embutidos de controlo em tempo real.

Este texto pretende descrever a arquitectura das máquinas de pilha e a sua evolução ao longo do tempo. Começa-se por analisar uma máquina de pilha genérica, modelo teórico donde derivam todas as máquinas de pilha. Seguindo esta linha de evolução e sofisticação são estudados os processadores de 16 bits e com especial detalhe o Harris RTX2000. No capítulo seguinte são descritos os processadores de 32 bits, com destaque para o Harris RTX32P e para o Patriot PSC1000, uma das mais recentes máquinas de pilha. Os últimos capítulos são dedicados à comparação das máquinas de pilha às filosofias CISC e RISC e à descrição das vantagens das máquinas de pilha em sistemas embutidos de controlo em tempo real.