Hard-Real-Time Multithreading: A Combined Microarchitectural And Scheduling Approach.