為什麼BIOS晶片要做小顆? - 3C

Elma avatar
By Elma
at 2019-07-14T07:37

Table of Contents

沒營養又愛吃餌的閒聊仔又來啦


剛好幾位版友問到的是關於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快, 開機卻比較慢的原因如上

--
Tags: 3C

All Comments

Hardy avatar
By Hardy
at 2019-07-17T23:37
Ethan avatar
By Ethan
at 2019-07-21T07:54
趕快推,免得樓下發現我看不懂
Tristan Cohan avatar
By Tristan Cohan
at 2019-07-22T20:52
快推避免人家以為我看不懂
Liam avatar
By Liam
at 2019-07-24T23:00
推 這篇專業
Jacky avatar
By Jacky
at 2019-07-27T02:54
嗯嗯 跟我想的差不多
Freda avatar
By Freda
at 2019-07-28T20:01
我打的文都白打了,算惹
Poppy avatar
By Poppy
at 2019-07-29T22:59
推 嗯嗯原來如此
Olga avatar
By Olga
at 2019-07-31T09:35
snc表示
Steve avatar
By Steve
at 2019-08-03T21:51
看不懂但還是推一下
Jessica avatar
By Jessica
at 2019-08-07T08:34
Edith avatar
By Edith
at 2019-08-11T01:51
幹,真專業,不推都對不起自己
Carol avatar
By Carol
at 2019-08-14T20:03
原po 知道 intrl or amd DDR calibration程式碼是in
tel amd 寫好提供的嗎?
Elma avatar
By Elma
at 2019-08-18T00:16
看到tianocore就知道值得看了
Rebecca avatar
By Rebecca
at 2019-08-22T20:49
Freda avatar
By Freda
at 2019-08-26T19:00
好專業 @@
Joseph avatar
By Joseph
at 2019-08-29T18:22
求翻譯
Suhail Hany avatar
By Suhail Hany
at 2019-09-03T05:49
Catherine avatar
By Catherine
at 2019-09-06T13:10
Kama avatar
By Kama
at 2019-09-07T01:36
趕快推,但還是被發現我看不懂
Doris avatar
By Doris
at 2019-09-10T05:37
DRAM init大多是vendor寫的(I/A) 但會提供客製介面
Enid avatar
By Enid
at 2019-09-13T14:35
Zen開始甚至初始化交給PSP去做 根本看不到原始碼
Iris avatar
By Iris
at 2019-09-16T14:39
Ula avatar
By Ula
at 2019-09-19T23:09
鄉民不是很強? 連這都看不懂喔?

AMD 回應 Ryzen 3代處理器 idle voltage 正確測法

Candice avatar
By Candice
at 2019-07-14T07:36
Reddit 討論串 The final word on idle voltages for 3rd Gen ryzen https://bit.ly/2Y64onb ( https://www.reddit.com/r/Amd/comments/cbls9g/the_final_word_on_idle_ ...

最多15K購買顯卡如何選擇?

Sierra Rose avatar
By Sierra Rose
at 2019-07-14T05:57
目前的顯卡是RX480 8G, 現有的螢幕是XG2730-GS, 前幾天舊的主機板掛了, https://i.imgur.com/GfVwtsk.jpg 昨天馬上去帶回了3600X、 https://i.imgur.com/0z1tTiZ.jpg RM650X、 https://i.imgur.com ...

AMD 下封殺令 - 300 / 400 系列主機板即

Mia avatar
By Mia
at 2019-07-14T05:29
AMD 下封殺令 - 300 / 400 系列主機板即將被封印 PCI-E 4.0 功能 https://hk.xfastest.com/31989/amd-300-400-disable-pcie-4/ - 軒仔 - 2019-07-14 AMD Ryzen 3000 系列 CPU 搭配 X570 晶片 ...

微星300/400系列主板重生 昇級32MB BIOS

Susan avatar
By Susan
at 2019-07-14T03:17
最近發現微星官網上釋出了一批Beta版BIOS X370 B350 ...等 一些舊主機板都有更新 連之前謠傳放生的 B350 Gaming Plus 都有得更新 之前網拍購入這片二手主板 爬文才得知可能被放生 難怪價格大跳水 雖然本打算用來組2600沒差 不過老板子能得到更新支援還是值得讚許的 新BIO ...

50k 香香機

Doris avatar
By Doris
at 2019-07-14T02:14
可參考本板菜單(20190707) https://www.ptt.cc/bbs/PC_Shopping/M.1481269090.A.A10.html 已買/未買/已付訂金(元):未買 預算/用途:50k左右 抱歉剛剛手機發文 排版太亂 重新用電腦發 主要想玩大作 也會玩nba 2K 還有手遊模擬器( ...