Symmetric Multiprocessing and Hyper-Threading

SMP is a type of architecture where two or more identical processors are connected to a single shared main memory. Most common multiprocessor systems today use an SMP architecture. SMP systems allow any processor to work on any task no matter where the data for that task is located in memory, with proper OS support, SMP systems can easily move tasks between processors to balance the workload efficiently.

There are numerous processors on the market and that have been on the market that support SMP. SMP support began with Intel Pentium technology supporting up to two processors. The Pentium Pro expanded SMP support to four processors, although systems with up to two thousand Pentium Pro processors were built. http://en.wikipedia.org/wiki/Symmetric_multiprocessing#Entry-level_systems

While faster clock speeds are important for any processor, getting more done during each clock cycle is critical also. A single processor supporting Hyper-Threading Technology presents itself to modern operating systems and applications as two virtual processors. The processor can work on two sets of tasks simultaneously, use resources that would otherwise go unused, and get more work done in the same amount of time.

HT takes advantage of the multithreading capability that’s built in to Windows XP and many advanced applications. Multithreaded software divides its workloads into processes and threads that can be independently scheduled and dispatched. The Pentium 4 acts as if there are two processors working in tandem. http://mmac.com/products/Niagara/hyperthreading.html

A big weakness with HT is that if the applications are not designed with HT in mind, this element is not taken to the fullest advantage. Another big disadvantage is that surfing the web I found a lot of security weaknesses and vulnerabilities that are solved simply by turning HT off. Somehow HT facilitates malicious code and users. http://secunia.com/advisories/15457/?show_all_related=1

A major security hole with hyper threading, is that it allows local information disclosure, allowing an unprivileged user to steal an RSA private key being used on the same machine.  http://kerneltrap.org/?q=node/5120


Leave a Reply