Chips, Cores, Threads, OH MY!!

I don't know about you, but the whole mess around the emerging lexicon associated with modern processors is very frustrating. Terms are frequently redefined and twisted based on each vendor's whim and fancy. But words (should) mean something and obviously it's important that we all talk the same language.

A perfect example... you might have been approached by a Jehovah's Witness in the past. Or have a friend who is a Mormon. I do. They are wonderful people in general. When they talk about their faith their words and themes sound very similar to Biblical Christianity. But dive a little deeper and you'll find the belief systems are radically different. I'm not making a statement on value or correctness or anything like that (so don't bother starting a religious debate). My point is that two people can talk and maybe even (think they) agree, when in fact they are as far from each other as heaven and hell (so-to-speak).

When it comes to the engines that power computers, people talk about CPUs, and Processors, and Cores, and Threads, and Sockets, and Chips, and n-Way, and TEUs, and CMT, and Hyper-Threading, and and and... Whew!

I like to use three terms... Chips, Cores, and Threads. Note that this is pretty much what SPEC.ORG uses: http://www.spec.org/cpu2000/results/rint2000.html

I stay away from Sockets and Processors and CPUs and n-Way, as these are confusing or ambiguous or redundant.

Here are some examples [Chips/Cores/Threads]:
V880:          8/8/8
V490:          4/8/8
p570:          8/16/32
V40z:          4/4/4
Niagara:      1/8/32  (for a system with just one of these chips)

Here are my definitions:

Chips
This refers to the laser scribed rectangle cut from a semiconductor wafer, which is then packaged in a plastic or ceramic casing with pins or contacts. A "chip" may have multiple processing "cores" in it (see: Cores). The US-IV and Niagara and Power5 and Itanium and Opteron are all single "chips".

Cores
This term refers to the number of discrete "processors" in a system or on a chip. Some chips, such as Power5, US-IV,  Niagara, etc, have more than one core per chip. A core is also know as a TEU (thread execution unit). Each "core" may also be multi-threaded (see Threads), which can support concurrent or switched execution. Some cores have more than one integer, floating point or other type of "execution unit" that supports instruction level parallelism and/or more than one concurrent thread.

Threads
Threads are really a S/W construct. These are the streams of execution scheduled by the OS to do work driven by the computer's processor(s). Some cores can handle more than one thread of execution. Some cores can execute more than one thread at the same time. Other cores can be loaded with multiple threads, but perform H/W context switching at nanosecond speeds. The Thread Count of a processors equals the number of cores multiplied by the number of threads handled by each core. The US-IV has a Thread Count of 2\*1=2. The Power5 has a Thread Count of 2\*2=4. Niagara has a TC of 8\*4=32.

Sockets (avoid)
This term is designed to communicate the number of processor "chips" in a system. However, in reality it is an ambiguous term, because IBM's MCMs (multi-chip modules) have four "chips" per motherboard "socket". And, a long time ago, some sockets were stacked with more than one chip. Regardless, this term is supposed to equate to the number of "chips", so why confuse the issue. Just use "chips".

Processors (avoid)
This is technically equal to the number of cores. However, marketing has corrupted this term and some vendors (like Sun) equate this to the number of chips (or sockets), while others equate this to the number of cores. Vendors also use the term "n-Way". But since the number "n" equals the number of processors, this means different things depending on the vendor. For example, a 4-way V490 from Sun has 8 cores, and Oracle will charge you $320,000.00 (list price) to run Oracle on it.

CPUs (avoid)
This suffers from the same marketing overload problem as Processors.

Comments:

I wouldn't call hardware threads a software construct; at the very least each hardware thread has its own architectural registers, and registers are definitely hardware.

Now if only you can convince your marketing department to adopt such sensible terminiology...

Posted by Wes Felter on January 30, 2005 at 03:48 PM EST #

Post a Comment:
Comments are closed for this entry.
About

dcb

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
News
Blogroll

No bookmarks in folder