A student writes: Hi Professor Patt, Hi, Student ***********, I have a couple of questions regarding Multi-threading and Simultaneous Multi-threading. First of all, classification of level of parallelism confuses me. Do you consider MT as a thread-level parallelism or instruction-level parallelism, or both? I would call it thread-level parallelism, particularly since (if you are talking about Burton's original idea) there is nothing inherently there to achieve ILP. My other question is about hyper-threading. In hyper-threading technology you are dividing the resources between the processes (MT-mode). What does that mean? What resources are you talking about? That means you are not actually using the idle functional units to execute from different threads based on availability of operands (SMT). Why do you think that? So, do you consider hyper-threading a SMT system? So, I went to the Intel website for a definition of hyper-threading. From what I read, I see no difference between it and SMT. And my last question is, from the software point of view, what is the difference between CMP and SMT? Very good! From the software standpoint, one could argue there is no difference. One could run those threads on a single core that is multi-threaded, or multiple cores that are single threaded. Performance could matter a lot, but that is a function of the particular application and the connectivitity of the cores in a CMP machine. Yale Patt Thanks, <<name withheld to protect the student with good questions>>