![]() Another case is when code can't continue until a task like I/O or dependent code with long latency is finished (some instructions can take dozens of clock cycles to complete). When thread 1 hits main memory to fetch program code (say the code is large and jumps around a lot in a less than predictable manner) or data, it introduces a stall in that thread while the CPU waits for memory access to finish. ![]() Task 1 (thread 1) may be running a task that has data and code available nearly immediately (in the L1/L2 caches) or fetching data and code from main memory that isn't currently cached. The point is to keep the CPU's resources busy.įor a simple example, say you are running 2 applications on a single core chip with hyperthreading, and to keep it simple as possible, that each application is only using 1 thread each and are not idle. Click to expand.It makes more sense to look at the reasoning behind hyperthreading.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |