摘要 |
<p>The present invention provides a stack management unit (150) including a stack cache (155) to accelerate data transfers between the stack-based computing system and the stack (400). In one embodiment, the stack management unit (150) includes a stack cache (155), a dribble manager unit (151), and a stack control unit (152). The dribble manager unit (151) includes a fill control unit (694) and a spill control unit (698). Since the vast majority of memory accesses to the stack (400) occur at or near the top of the stack (400), the dribble manager unit (151) maintains the top portion of the stack (400) in the stack cache (155). Specifically, when the stack-based computing system is pushing data onto the stack (400) and a spill condition occurs, the spill control unit (698) transfers data from the bottom of the stack cache (155) to the stack (400) so that the top portion of the stack (400) remains in the stack cache (155). When the stack-based computing system is popping data off of the stack (400) and a fill condition occurs, the fill control unit (694) transfers data from the stack (400) to the bottom of the stack cache (155) to maintain the top portion of the stack (400) in the stack cache (155). Typically, a fill condition occurs as the stack cache (155) becomes empty and a spill condition occurs as the stack cache (155) becomes full.</p> |