Re: [閒聊] 為什麼BIOS晶片要做小顆?
沒營養又愛吃餌的閒聊仔又來啦
剛好幾位版友問到的是關於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
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
07/14 13:19, 12F
→
07/14 13:19,
5年前
, 13F
07/14 13:19, 13F
推
07/14 15:11,
5年前
, 14F
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
07/14 21:56, 21F
→
07/14 21:57,
5年前
, 22F
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 5 篇):
閒聊
11
79