a method for designing a time - sliced and multi - threaded architecture comprises the steps of conducting a thorough analysis of a range of applications and building a specific processor to accommodate the range of applications . in one embodiment , the thorough analysis includes extracting real time aspects from each application , determining optimal granularity in the architecture based on the real time aspects of each application , and adjusting the optimal granularity based on acceptable context switching overhead .