亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: 塑料袋
打印 上一主題 下一主題

滅哈哈,想了多半年的時間,終于明白多核編程的實質(zhì)了~!@#$%^&*( [復(fù)制鏈接]

論壇徽章:
11
未羊
日期:2013-12-16 12:45:4615-16賽季CBA聯(lián)賽之青島
日期:2016-04-11 19:17:4715-16賽季CBA聯(lián)賽之廣夏
日期:2016-04-06 16:34:012015亞冠之卡爾希納薩夫
日期:2015-11-10 10:04:522015亞冠之大阪鋼巴
日期:2015-07-30 18:29:402015亞冠之城南
日期:2015-06-15 17:56:392015亞冠之卡爾希納薩夫
日期:2015-05-15 15:19:272015亞冠之山東魯能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16賽季CBA聯(lián)賽之八一
日期:2016-07-22 09:41:40
11 [報告]
發(fā)表于 2011-09-13 00:51 |只看該作者
那么如果如下序列 從內(nèi)存加載數(shù)據(jù)到寄存器 寄存器2加載寄存器的值并加一, 寄存器2寫回寄存器1 寄布存器3執(zhí)行同樣過程, 如何避免23竟爭 cpu一定會知道2的結(jié)果是3的操作數(shù)嗎

論壇徽章:
4
戌狗
日期:2013-08-15 18:22:43技術(shù)圖書徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39處女座
日期:2013-12-25 11:26:10
12 [報告]
發(fā)表于 2011-09-13 10:00 |只看該作者
那么如果如下序列 從內(nèi)存加載數(shù)據(jù)到寄存器 寄存器2加載寄存器的值并加一, 寄存器2寫回寄存器1 寄布存器3執(zhí) ...
zylthinking 發(fā)表于 2011-09-13 00:51



    你再描述得清楚點。


    另外,這個圖是能說明實質(zhì)的,出自<super scalar processor design> :

論壇徽章:
11
未羊
日期:2013-12-16 12:45:4615-16賽季CBA聯(lián)賽之青島
日期:2016-04-11 19:17:4715-16賽季CBA聯(lián)賽之廣夏
日期:2016-04-06 16:34:012015亞冠之卡爾希納薩夫
日期:2015-11-10 10:04:522015亞冠之大阪鋼巴
日期:2015-07-30 18:29:402015亞冠之城南
日期:2015-06-15 17:56:392015亞冠之卡爾希納薩夫
日期:2015-05-15 15:19:272015亞冠之山東魯能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16賽季CBA聯(lián)賽之八一
日期:2016-07-22 09:41:40
13 [報告]
發(fā)表于 2011-09-13 10:39 |只看該作者
你再描述得清楚點。


    另外,這個圖是能說明實質(zhì)的,出自 :
塑料袋 發(fā)表于 2011-09-13 10:00


我自己似乎想明白了, 又不確定。。。。。。。
亂序的基本原理就是“取指”,“譯碼”都是順序的; 雖然指令的“執(zhí)行”是亂序的
又讓我糊涂了, 如果執(zhí)行是亂序的, 那么怎么保證執(zhí)行的結(jié)果是正確的呢?
比如我上面的疑問:
1. r1 存儲原始值
2. r2 load r1
3. r2 加1
4. r2 寫回 r1

5. r3 load r1
6. r3 加1
7. r3 寫回 r1

如果第6步先于第3步, cpu如何不犯錯誤呢。。。。。
應(yīng)該完全是基礎(chǔ)問題, 但我就是開不了竅。

另外, “取指”,“譯碼”都是順序的 會對亂序起什么作用呢? 取指順序不足夠cpu得到亂序執(zhí)行的足夠的信息嗎?

論壇徽章:
11
未羊
日期:2013-12-16 12:45:4615-16賽季CBA聯(lián)賽之青島
日期:2016-04-11 19:17:4715-16賽季CBA聯(lián)賽之廣夏
日期:2016-04-06 16:34:012015亞冠之卡爾希納薩夫
日期:2015-11-10 10:04:522015亞冠之大阪鋼巴
日期:2015-07-30 18:29:402015亞冠之城南
日期:2015-06-15 17:56:392015亞冠之卡爾希納薩夫
日期:2015-05-15 15:19:272015亞冠之山東魯能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16賽季CBA聯(lián)賽之八一
日期:2016-07-22 09:41:40
14 [報告]
發(fā)表于 2011-09-13 10:45 |只看該作者
圖沒有相應(yīng)文字資料, 看不懂。。。。。。。

論壇徽章:
0
15 [報告]
發(fā)表于 2011-09-13 11:04 |只看該作者
難得的好帖。

論壇徽章:
4
戌狗
日期:2013-08-15 18:22:43技術(shù)圖書徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39處女座
日期:2013-12-25 11:26:10
16 [報告]
發(fā)表于 2011-09-13 11:05 |只看該作者
你看到了:

上邊的圖中有一個reorder buffer,你的這7條指令在解碼后,會順序的進入這個reorder buffer,同時我們假定他們分別對應(yīng)ID號1~7。

上邊的圖中在ALU,shifter,branch這三個大框上邊,都有8個小框,這8個小框框喚作reservation station。你的這7條指令在解碼后,會順序的進入reservation station。




好,現(xiàn)在每一條指令都存儲于兩個地方: reorder buffer, reservation station。


reorder buffer里,最關(guān)鍵的內(nèi)容是 指令的ID號<===> 指令的執(zhí)行結(jié)果 <===> 指令的目的寄存器,這個對應(yīng)關(guān)系

reservation station里,存放的是真正的指令,這些指令的源操作數(shù)是ID號,目的操作數(shù)也是ID號。



reservation station里的指令在執(zhí)行完畢后,會根據(jù)目的操作數(shù)的ID號:

1) 將ID號及結(jié)果發(fā)送給reorder buffer,更新reorder buffer中對應(yīng)的指令執(zhí)行結(jié)果,

2) 將ID號及結(jié)果廣播給各個reservation station,更新reservation station中,有些指令的源操作數(shù)也是ID號,而且等于剛廣播的這個ID號。




reorder buffer中,不僅順序入,也是順序出的。

當頂部的“ID號<===> 指令的執(zhí)行結(jié)果 <===> 指令的目的寄存器”這個對應(yīng)關(guān)系中,指令的執(zhí)行結(jié)果已確定,即指令真的已經(jīng)執(zhí)行完畢時,才能從reorder buffer中出來。出來的時候會根據(jù)“指令的執(zhí)行結(jié)果 <===> 指令的目的寄存器”這個關(guān)系,來修改register file,即真正的回寫到寄存器中。


reservation station中,是順序入,亂序出的。

未收到廣播,即源操作數(shù)還是ID號時,就不能發(fā)射;

已收到廣播,將源操作數(shù)的ID號替換為前邊指令的執(zhí)行結(jié)果后,就能發(fā)射。




象你的例子中,

指令5是這樣的 :  load   目的ID是5   源ID是4

僅只當指令4執(zhí)行完畢后,指令5才可能發(fā)射。

論壇徽章:
11
未羊
日期:2013-12-16 12:45:4615-16賽季CBA聯(lián)賽之青島
日期:2016-04-11 19:17:4715-16賽季CBA聯(lián)賽之廣夏
日期:2016-04-06 16:34:012015亞冠之卡爾希納薩夫
日期:2015-11-10 10:04:522015亞冠之大阪鋼巴
日期:2015-07-30 18:29:402015亞冠之城南
日期:2015-06-15 17:56:392015亞冠之卡爾希納薩夫
日期:2015-05-15 15:19:272015亞冠之山東魯能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16賽季CBA聯(lián)賽之八一
日期:2016-07-22 09:41:40
17 [報告]
發(fā)表于 2011-09-13 11:27 |只看該作者
本帖最后由 zylthinking 于 2011-09-13 11:42 編輯

請問發(fā)射的含義是什么: 真正執(zhí)行? 如果不是真正執(zhí)行, 那么對指令I(lǐng)D做加法, 而不是對數(shù)據(jù)做加法, 不明白怎么做的出;
如果是真正執(zhí)行, 那么 “reservation station里的指令在執(zhí)行完畢后,會根據(jù)目的操作數(shù)的ID號”  中的執(zhí)行做何理解?

似乎給我的理解就是cpu根據(jù)指令I(lǐng)D就能執(zhí)行似的, 而不需要數(shù)據(jù)。。。。。。。
哦, 是不是亂序含義其實就是: 等源操作數(shù)確定后, 就可以進行運算了, 而不需要目的操作數(shù)ready? 亂序亂就亂在兩個源操作數(shù)不相干的兩條指令可以并發(fā)(???), 而目的操作數(shù)為另一指令源操作數(shù)的2條指令需要順序執(zhí)行

論壇徽章:
11
未羊
日期:2013-12-16 12:45:4615-16賽季CBA聯(lián)賽之青島
日期:2016-04-11 19:17:4715-16賽季CBA聯(lián)賽之廣夏
日期:2016-04-06 16:34:012015亞冠之卡爾希納薩夫
日期:2015-11-10 10:04:522015亞冠之大阪鋼巴
日期:2015-07-30 18:29:402015亞冠之城南
日期:2015-06-15 17:56:392015亞冠之卡爾希納薩夫
日期:2015-05-15 15:19:272015亞冠之山東魯能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16賽季CBA聯(lián)賽之八一
日期:2016-07-22 09:41:40
18 [報告]
發(fā)表于 2011-09-13 11:47 |只看該作者
我現(xiàn)在的理解; 進入 record buffer 是批進入的, 需要本次進入的指令完全執(zhí)行的一個不剩, 下一批才被允許進入?

亂序是在本批進入的指令內(nèi)部的亂序, 不同批次間的指令還是循序執(zhí)行的?

論壇徽章:
4
戌狗
日期:2013-08-15 18:22:43技術(shù)圖書徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39處女座
日期:2013-12-25 11:26:10
19 [報告]
發(fā)表于 2011-09-13 11:47 |只看該作者
請問發(fā)射的含義是什么: 真正執(zhí)行? 如果不是真正執(zhí)行, 那么對指令I(lǐng)D做加法, 而不是對數(shù)據(jù)做加法, 不明白怎么做的出;
如果是真正執(zhí)行, 那么 “reservation station里的指令在執(zhí)行完畢后,會根據(jù)目的操作數(shù)的ID號”  中的執(zhí)行做何理解?

似乎給我的理解就是cpu根據(jù)指令I(lǐng)D就能執(zhí)行似的, 而不需要數(shù)據(jù)。。。。。。。
哦, 是不是亂序含義其實就是: 等源操作數(shù)確定后, 就可以進行運算了, 而不需要目的操作數(shù)ready?
zylthinking 發(fā)表于 2011-09-13 11:27



    發(fā)射就是指從reservation station扔到ALU中去,或者從reservation station扔到shifter中去......這就叫發(fā)射了。

   CPU依靠ID號來維持指令之間的依賴關(guān)系,比如 1)  a = 5 + 3 ;  2) b = a+1 :
  
   那么b=a+1就譯碼為   2) = 1) + 1 ;  

   
   僅只當a=5+3完成后,CPU會將" ID號為1)的指令,其結(jié)果為8 " 這個消息廣播給reservation station。

   這時, “2) = 1) + 1” 就會變?yōu)椤?) = 8 + 1”

   于是,ID號為2的指令就可以發(fā)射了。2)完成后,同樣將廣播“ID號為2)的指令,其結(jié)果為9” 給reservation station。

論壇徽章:
4
戌狗
日期:2013-08-15 18:22:43技術(shù)圖書徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39處女座
日期:2013-12-25 11:26:10
20 [報告]
發(fā)表于 2011-09-13 11:54 |只看該作者
我現(xiàn)在的理解; 進入 record buffer 是批進入的, 需要本次進入的指令完全執(zhí)行的一個不剩, 下一批才被允許 ...
zylthinking 發(fā)表于 2011-09-13 11:47



    否

   
   reorder buffer的理想狀態(tài),是時刻都是滿的。


  因為reorder buffer中的entry,和reservation station中的entry,是一一對應(yīng)的。

  而且reservation station中的entry越多,發(fā)射那條指令的可選余地就越大。




  reorder buffer中的entry :        指令I(lǐng)D <==> 指令的目的寄存器 <==> 指令的結(jié)果

  reservation station中的entry :  指令I(lǐng)D <==> 指令的邏輯,以及指令的源操作數(shù)。這里源操作數(shù)并不是某個寄存器,它只可能是兩種情況

  1) 前邊某條指令的ID
  
   2) 不是前邊某條指令的ID,因為前邊某條指令已經(jīng)完成,所以已經(jīng)將其ID替換為真正的執(zhí)行結(jié)果,即一個立即數(shù)。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP