技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2022 iThome 鐵人賽
DAY
4
0
自我挑戰組
System Software Introduction
系列 第
4
篇
System Software - Firmware
14th鐵人賽
脆脆
2022-09-15 13:15:34
7895 瀏覽
分享至
Firmware是管理hardware的software,負責在hardware上電後運作起來管理hardware。
How to Request Hardware Service
Firmware運行在hardware MCU (micro-controller unit) 或MPU (micro-processor unit)內部的CPU上
Firmware在bare metal環境下運作,MCU/MPU上電後內部CPU固定執行的PC (program counter) 就是firmware開始擺放的address,所以hardware device一上電,MCU/MPU就會開始執行firmware。
例如: SSD內部會有SSD controller,而SSD firmware會擺放在SSD controller CPU上電之後執行的PC,這樣SSD上電後SSD firmware就會開始執行
Firmware會執行邏輯判斷,並且將依照邏輯判斷對hardware進行操作
例如: 有資料要寫入SSD時,SSD firmware會負責找出有空位的flash,開始下指令把資料寫進flash
例如: SSD firmware偵測到SSD已經空閒一段時間後,不需要外部指令就會開始定時自己執行垃圾收集(garbage collection,一種讓SSD讀寫效率更好的機制)工作,執行時會下指令給hardware對flash儲存的資料座移動、複製、刪除。
How to Service Hardware
Firmware負責hardware與外部的溝通
Firmware對外溝通是透過hardware上的hardware interface: bus (匯流排)
Bus是依照protocol傳輸command與data的hardware interface ,使hardware之間可以互相交換資訊與驅動對方
- Command: hardware發出command要求收到command的hardware做事情
- Data: hardware之間交換的資料
Firmware會藉由bus接收外部hardware對所在hardware發出的command與data,將command解讀完畢之後firmware依照command、data對hardware進行操作,完成後再透過bus回覆command被執行的結果
例如: SSD對外部的bus介面是SATA (Serial Advanced Technology Attachment)。南橋晶片(Southbridge)對SSD讀取data的需求會透過SATA以SATA command的方式發送到SSD,SSD firmware收到SATA command並解讀之後得知SATA command需要的是哪一塊flash內存放的data,接著SSD firmware對SSD操作把對應flash存放的data讀出來再透過SATA回覆給Southbridge 。
Special cases
BIOS是一種firmware,專門用來協助system開機時檢查hardware是否正常,並且尋找bootable device (可開機裝置)進行開機流程的一套firmware,但提供BIOS運作的CPU並不是專用的周邊hardware CPU,而是hardware platform的CPU本身。
OpenSBI是一種對RISC-V SBI (RISC-V的CPU權限管理機制)進行實作的firmware,他會直接運作在hardware platform的CPU上。
Computer system當中,有一些CPU周邊hardware的firmware會有自己的kernel,是一套獨立的小系統
例如: Marvell Wi-Fi網路卡firmware就搭載了Thread-X的kernel
留言
追蹤
檢舉
上一篇
Types of System Software
下一篇
System Software - Device Driver
系列文
System Software Introduction
共
30
篇
目錄
RSS系列文
訂閱系列文
8
人訂閱
26
Build Environment Setup in Build System
27
System Software MISC – Benchmark
28
System Software MISC – Static Link & Dynamic Link
29
System Software MISC – Perf & PMU/HPM
30
System Software Conclusion
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19843
篇
完賽人數
529
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
如何找到電腦網路行為的觸發原因?
檔案伺服器移轉
Exchange EMS掛掉導致Q信(2016)
從資訊安全角度分析:若電子支付平台疑遭暗網販售資料,可能的技術成因與防護機制?
win11 bitlocker 除了格式化重灌外, 有解嗎?
Exchange 2016 手機無法登入
Gmail 寄件備分 一次變成 Gmail聯絡人寄出
請問要如何將github下載下來的檔案轉成dll檔
熱門回答
檔案伺服器移轉
如何找到電腦網路行為的觸發原因?
從資訊安全角度分析:若電子支付平台疑遭暗網販售資料,可能的技術成因與防護機制?
熱門文章
Microsoft Certified: Azure Administrator Associate AZ-104認證考試介紹
📨 用 n8n 自動整理信用卡帳單:從 Gmail 到 LINE 的實戰筆記
Portainer:從入門到入土心得錄01
【專案實戰】我在專案裡,用需求追溯矩陣讓 PM、工程師和法遵站在同一頁
[Day 27]隨機密碼產生器
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}