An on-line software-based self-test framework for microprocessor cores