Re: [閒聊] 為什麼BIOS晶片要做小顆?

看板PC_Shopping作者 (Shark Bay)時間5年前 (2019/07/14 07:37), 5年前編輯推噓15(1617)
留言24則, 22人參與, 5年前最新討論串2/5 (看更多)
沒營養又愛吃餌的閒聊仔又來啦 剛好幾位版友問到的是關於PI (Platform Initialization)的問題 https://github.com/tianocore/tianocore.github.io/wiki/PI-Boot-Flow https://uefi.org/sites/default/files/resources/PI_Spec_1_7_final_Jan_2019.pdf 請先簡單翻過這兩本文件(真的有難度只看圖也行),我只提出跟大小(size)有關的部分 1. SEC 階段 這裡的程式都是純組合語言編譯的 這個階段需要劃定CAR (Cache As RAM)的位置跟大小. 除非特別指定, CAR通常等量拆半. A. HOB(Hand-off block), 待會緊接著PEI模組彼此交換資料之用 B. Stack, 執行C語言程式編譯的PEI模組群需要一塊堆疊空間 最後跳往PEI的頭(entry point)結束這回合 2. PEI 階段 從這個階段之後都是用C做為主要編寫語言(99.9%). 這個階段主要任務是 A. 完成記憶體初始化(就是知道裝多大的RAM) B. 把壓縮過的DXE模組群解壓縮到RAM C. 跳往DXE的頭(entry point)結束這回合 PEI模組群的執行速度差異極大, 跟是否曾經執行過且保留在在Cache有關. 剩下的DXE之後就不談了. 舉個例子好了, 假定PEI模組群要2.5MB, CAR畫0.5MB, 其他功能保留0.5MB. 這樣的配置在3/4MB Cache的CPU上面會發生開機速度差異 +------+ | .... | +------+ | Base | 基本服務(例如字串拷貝等等 基本共用程式) +------+ | | ^ | | | | | | | | | 整個PEI階段CPU會持續地在兩個子群內跳來跳去, | | | | 當CACHE過小的時候, CPU會持續地發生Cache miss, | | | | 既然東西丟了就重讀吧, 從SPI讀東西就慢了. | | | | | | | v +------+ | Curr | 平台程式(例如替暫存器填值) +------+ | .... | +------+ 有人會說, 那把PEI畫小不就好了? 那我說,砍支援度(CPU+RAM的組合)你要不要? 砍功能(IO速度組合)你要不要? 最終, 當然整個ROM大小不會只有受限PEI, 現實情況可能更複雜. 還是有豹頭廠(我全都要)(都是市面買不到小廠), 那就只好花時間開導開導. 這邊連帶解釋買賽揚/core i在同一塊板子上的開機速度差異. 通常賽揚有比較多的機會時脈比core i快, 開機卻比較慢的原因如上 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.34.9 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1563061075.A.09B.html ※ 編輯: sharkbay (106.1.34.9 臺灣), 07/14/2019 07:48:08

07/14 07:58, 5年前 , 1F
07/14 07:58, 1F

07/14 08:21, 5年前 , 2F
趕快推,免得樓下發現我看不懂
07/14 08:21, 2F

07/14 08:37, 5年前 , 3F
快推避免人家以為我看不懂
07/14 08:37, 3F

07/14 08:37, 5年前 , 4F
推 這篇專業
07/14 08:37, 4F

07/14 08:39, 5年前 , 5F
嗯嗯 跟我想的差不多
07/14 08:39, 5F

07/14 08:39, 5年前 , 6F
我打的文都白打了,算惹
07/14 08:39, 6F

07/14 09:58, 5年前 , 7F
推 嗯嗯原來如此
07/14 09:58, 7F

07/14 10:13, 5年前 , 8F
snc表示
07/14 10:13, 8F

07/14 10:39, 5年前 , 9F
看不懂但還是推一下
07/14 10:39, 9F

07/14 11:03, 5年前 , 10F
07/14 11:03, 10F

07/14 11:47, 5年前 , 11F
幹,真專業,不推都對不起自己
07/14 11:47, 11F

07/14 13:19, 5年前 , 12F
原po 知道 intrl or amd DDR calibration程式碼是in
07/14 13:19, 12F

07/14 13:19, 5年前 , 13F
tel amd 寫好提供的嗎?
07/14 13:19, 13F

07/14 15:11, 5年前 , 14F
看到tianocore就知道值得看了
07/14 15:11, 14F

07/14 15:13, 5年前 , 15F
07/14 15:13, 15F

07/14 15:49, 5年前 , 16F
好專業 @@
07/14 15:49, 16F

07/14 16:20, 5年前 , 17F
求翻譯
07/14 16:20, 17F

07/14 16:51, 5年前 , 18F
07/14 16:51, 18F

07/14 17:32, 5年前 , 19F
07/14 17:32, 19F

07/14 21:00, 5年前 , 20F
趕快推,但還是被發現我看不懂
07/14 21:00, 20F

07/14 21:56, 5年前 , 21F
DRAM init大多是vendor寫的(I/A) 但會提供客製介面
07/14 21:56, 21F

07/14 21:57, 5年前 , 22F
Zen開始甚至初始化交給PSP去做 根本看不到原始碼
07/14 21:57, 22F

07/15 05:37, 5年前 , 23F
07/15 05:37, 23F

07/19 09:09, 5年前 , 24F
鄉民不是很強? 連這都看不懂喔?
07/19 09:09, 24F
文章代碼(AID): #1TAcjJ2R (PC_Shopping)
文章代碼(AID): #1TAcjJ2R (PC_Shopping)