MIHST: A Hardware Technique for Embedded Microprocessor Functional On-line Self-Test