Title :
On the Functional Test of Branch Prediction Units
Author :
Sanchez, Ernesto ; Reorda, Matteo Sonza
Author_Institution :
Dipt. di Autom. e Inf., Politec. di Torino, Turin, Italy
Abstract :
Branch prediction units (BPUs) are highly efficient modules that can significantly decrease the negative impact of branches in pipelined processors. Traditional test solutions, mainly based on Design for Testability techniques, are often inadequate to tackle specific test constraints, such as those found when incoming inspection or online test is considered. Following a functional approach based on running a suitable test program and checking the processor behavior may represent an alternative solution, provided that an effective test algorithm is available for the target unit. In this paper, a functional approach targeting the test of the BPU memory is proposed, which leads to the generation of suitable test programs whose effectiveness is independent of the specific implementation of the BPU. Two very common BPU architectures (branch history table and branch target buffer) are considered. The effectiveness of the approach is validated resorting to an open-source computer architectural simulator. Experimental results show that the proposed method is able to thoroughly test the BPU memory, allowing to transform whichever March algorithm into a corresponding test program; we also provide both theoretical and experimental proofs that the memory and execution time requirements grow linearly with the BPU size.
Keywords :
computer architecture; design for testability; pipeline processing; program compilers; BPU architectures; BPU memory; March algorithm; branch history table; branch prediction units; branch target buffer; design for testability; functional approach targeting; functional test; open-source computer architectural simulator; pipelined processors; specific test constraints; Circuit faults; Hardware; History; Memory management; Program processors; Radiation detectors; Testing; Branch history table (BHT); branch prediction unit (BPU); embedded memory test; functional test; software-based self-test (SBST);
Journal_Title :
Very Large Scale Integration (VLSI) Systems, IEEE Transactions on
DOI :
10.1109/TVLSI.2014.2356612