Results 1 to 8 of 8

Thread: Hyper threading all the way back from P4 to Corei7

  1. #1
    Everett Kyan is offline Member
    Join Date
    May 2009
    Posts
    95
    Rep Power
    4

    Default Hyper threading all the way back from P4 to Corei7

    They used hyper threading back in the p4, then it disappeared for a while and started to use the P3 method on the Core 2 processors.

    so i want to ask this, why did they make the corei7 hyper threading? does it by doing that gain more performance? if so then how does hyper threading help doing that.
    Last edited by Everett Kyan; 09-05-2009 at 08:08 AM.

  2. #2
    Jack Harris is offline Member
    Join Date
    May 2009
    Posts
    97
    Rep Power
    4

    Default

    I don't know all the technical details about hyper threading, but I know it creates logical cores. Back when the P4 was out, it was a single core processor but by giving it Hyperthreading it would trick the OS into thinking there was a dual core processor which improved multitasking capabilities and performance in multithreaded apps similar to what a true dual core would do, but to a lesser extent.

    I can't say for sure why they left it out of the C2 design and reimplimented it into the I7 design, but once again it is back for the purpose of creating more logical cores to improve multitasking abilities.

  3. #3
    Cecil Dumny is offline Member
    Join Date
    May 2009
    Posts
    91
    Rep Power
    4

    Default

    P4 and i7 have different microarchitecture - the P4 has a lot of very small pipeline stages that run at a (relatively) faster clock rate, while the i7 has fewer pipeline stages that do more work and run at a slower clock rate.

    Hyperthreading takes advantage of unused cycles in the execute stages of a pipeline. Modern CPUs are "superscalar" - meaning they have multiple integer and floating point adders, and memory access units in the execution stages of their pipelines. A single stream of instructions can't keep all of these units busy, so Hyperthreading fetches two streams of instructions into the same pipeline so that there's more work for the execution units to do.

    The effectiveness of Hyperthreading depends on the stages in the pipeline, their ability to decode and queue multiple instructions at once, the types of execution units in the pipeline, and other things.

  4. #4
    Everett Kyan is offline Member
    Join Date
    May 2009
    Posts
    95
    Rep Power
    4

    Default

    so what your saying is, for example P4 3.0 (hyper threading) and p4 3.0 (not hyper threading) both have the same clock speed, both have the same specs, but one is hyper the other is not.

    now when opening a program that requirs full load, with hyperthreading cpu, it will use all its core 100% to use all of its speed, but in the other cpu not hyperthreading, it will take time to get 100% and will not use all its core speed? is that what your saying?

  5. #5
    Join Date
    May 2009
    Posts
    90
    Rep Power
    4

    Default

    To give an example, suppose you have a CPU core with two integer arithmetic units and one floating point unit. With a single thread, a single program might be using just one of those integer units and the other integer and the floating point unit are idle for that clock cycle.

    If the CPU core supports two threads and the next instruction in the other thread only needs the floating point unit, or one integer unit with or without the floating point unit, then the CPU core can run instructions from both threads simultaneously. If the next instruction from the first thread then needs both integer units and the next instruction from the second thread needs one of the integer units, then the first thread will execute an instruction while the second has to wait. Consequently you get one thread running just about as fast as it would without Hyperthreading (there are issues with sharing the cache between threads) while another progresses slowly, but better than not progressing at all without Hyperthreading.

    In addition, if the first thread then accesses data that's not in the cache, the thread will stall for a number of clock cycles while it waits for data from RAM. That means that the second thread can immediately take over the CPU and run unimpeded for that period until the data is available for the first thread. This is particularly important for simple Hyperthreading CPUs like the Atom which don't have out of order execution to allow them to reorder the program to make the most the available resources of the CPU in a single thread... much of the time a thread is waiting for data or for an earlier instruction to complete, and for all that time the other thread can be executing transparently.

    Oh yeah, Hyperthreading wasn't a big win on the P4 because there wasn't enough spare capacity in the CPU for the second thread to execute on most clock cycles. i7 has been designed with more capacity so that a second thread can execute more often.

  6. #6
    Everett Kyan is offline Member
    Join Date
    May 2009
    Posts
    95
    Rep Power
    4

    Default

    So the diff between the dual core (without hyper threading) and P4 (with Hyper threading) is that Dual core have 2 cores with one stream, each core have its own cache and both can accesses ram at the same time, but P4 it only have 1 core with 2 Streams that work on one core, both share the same cache and both cant accesses the ram at the same time?

    Is this what it is basically or am i wrong?

  7. #7
    Baker Roods is offline Senior Member
    Join Date
    May 2009
    Posts
    103
    Rep Power
    4

    Default

    In single-threaded applications the HT chip may be a little slower. But it's application dependent (as is pretty much everything).

  8. #8
    Deon Kertzen is offline Member
    Join Date
    May 2009
    Posts
    84
    Rep Power
    4

    Default

    The slowdown is caused by the fact that there's still just one core, doing two threads simultaneously. Each thread gets less cache to work with, and if they both need memory or need the same resources, switching back and forth between them can cause a very minor performance loss.

    Or when one thread is a game, and the other thread is something you don't really care about, both threads will calculate faster (calcuations for A + B with HT are faster than calculations for A + B without HT, but A's calculations take longer = lower FPS). You get more work done, but if it's doing work on things you don't care about, it can hurt things you do care about. It's like doing two things at once, if you did one at a time each might take 2 hours, but if you do them together it might only take 3 hours. However, if you need the first one done in two hours, it's better to do them one at a time.

Similar Threads

  1. Replies: 1
    Last Post: 07-15-2010, 05:43 AM
  2. Hyper threading Processors
    By adolf456 in forum Hardware Jargons
    Replies: 0
    Last Post: 12-02-2009, 04:40 PM
  3. A brief introduction to hyper threading
    By clodey65 in forum General Software Terms
    Replies: 0
    Last Post: 12-18-2008, 11:51 AM
  4. Hyper- threading
    By anna26 in forum CPU & Components
    Replies: 0
    Last Post: 12-17-2008, 11:53 AM
  5. Hyper Threading Technology
    By iban555 in forum Everything Else
    Replies: 0
    Last Post: 12-13-2008, 12:34 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
SEO by SubmitEdge

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48