瀏覽單個文章
沒問題
Major Member
 

加入日期: Dec 2015
文章: 208
pipelining:
it is a technique for a cpu to perform every single instruction with a fixed clock-cycle and fixed execution-stages.

superscalar:
with a capability of pipelining, a cpu is able to execute, at least, two or more instructions at the same time.

hyper-threading:
it is a kind of technique of duplicating a register file inside of cpu in order to make the cpu be able to execute two programs at the same time if the execution unit is available. [it does not matter how many instruction cpu has to perform.]

it pretends that there are two cpus inside of a chip. because there are two register file inside of cpu.
it can perform two program at the same time if there is an execution unit which is available.
this method is almost the same as multi-core. however, it can not replace a real multi-cored cpu if all the execution units are unavailable.
once the circumstance happened, the performance of program will degrade. further, it will waste more time on switching program. usually it will stall and held rest of other programs that perform in background and it only performs one program which is in foreground. yes, it is. only single one program.

remember: all the program may probably have their own sub-procedures or functions.
that is the key we do not treat hyper-threading is equal to threading.

multi-core:
it is a technique to bundle multiple cpus inside a chip in order to be able to execute multiple program at the same time.

for example: there are two games. one is GTA5. another is age of empire 3.
both games are allocated separately in different core. it will greatly improve the performance of both games.
it is because of every game executes in different core with no interference.

threading:
a tricky technique derived from time-sharing operating system.
it allows a program divided into multiple sub-procedures or functions. each sub-procedures or functions can be duplicated infinitely.

let us assume a DVD player software is a program. and it includes a function called video screen.
you can play two DVD movies within the DVD player software but creating two windowed screens by calling function video screen for each DVD movie.

for example: there is a DVD player software that is playing a movie. however, you want to see two movies at the same time. all you need to do is just to open another DVD iso file inside of the DVD player software. and let the DVD player software have two windowed screens of the movie you played.
then, you can see the movies in one DVD player software with two windowed screens inside at the same time.

most of time, we can treat hyper-threading and threading are the same in some aspects.
it depends on how the architecture of operating system will be designed and organized.
舊 2018-11-05, 08:29 AM #33
回應時引用此文章
沒問題離線中