View Single Post
  #55 (permalink)  
Old October 24, 2012, 03:32 AM
Generic User #2 Generic User #2 is offline
Join Date: Nov 2008
Posts: 561

Okay...this is going to be stupid, but I will try to explain the difference between 'modules' and hyperthreading:

In a fictional cafeteria, there are two rooms. One is the serving area and the other is the dining area. In the serving area, there is a 'meat bar' and a 'salad bar.' This cafeteria serves customers that eat only meat, only veggies, or both.

The fire code in this city states that because there is not much standing room in front of the 'bars', there may only be one customer in the serving area at a time.

This cafeteria is highly reminiscent of a non-SMT CPU (not a 'module' and not hyperthreaded - think C2D) in that the meat bar resembles a integer ALU and the salad bar represents a FP ALU. The 'standing room' serves as the registers needed to one thread (ala one person).

BIG NEWS! the cafeteria has realized how odd it is to only serve one customer at a time, yet have two serving stations. They've gone through a renovation to increase the amount of standing room to hold up to two customers!

Now, if one customer wants only meat and the other wants only veggies, then the cafeteria can serve TWO customers at the same time. HOWEVER, if both customers want meat or veggies OR one customer wants both, then the throughput is back down to one customer at a time. In the last scenario, the renovations would have gone to waste! :(

AHHH! but another brilliant idea comes around! Since the sales receipts show that meat sales are nearly double that of salad sales, lets just add in another meat bar. Of course, this adds quite a bit of real estate expense. As well, if the cafeteria doesn't end up getting two customers that both want meat at the same time, then the new meat bar sits there being useless, but still taking up space.
Reply With Quote