Common Subroutine Prefetch Stack
Original Publication Date: 1984-Nov-01
Included in the Prior Art Database: 2005-Feb-05
A single level I-Shadow Directory is limited in the following situation. If A calls B and B returns to A, the second level of the I-Shadow will not contain the subsequent secondary target of A (call it C). If B is a common subroutine used by F the situation is illustrated by the figure. The problem is that A remembers B and not C; similarly B remembers A when it should be remembering F (or, more accurately, G). The problem is resolved by establishing B as a common subroutine. This determination can be done in one of several ways: (1) statically by address range (2) monitoring the subroutine linkage instructions: Branch and Link (Register) (BAL(R)), and determining multiple callers (3) combination of (1) and (2). For each B thus established one associable a stack of secondary targets based on caller ("A", "F").