其實我不知道我對歷史的看法對不對,
我覺得歷史, 就這個主題來說, 只是了解它的發展過程而已, 是不用太認真的.
不過我是覺得我花得有點多時間來整理細節出來..
印象中其他人在報告時總是在講演進歷史, 最後還是不明白它怎麼運作的, 或是它是甚麼東西.
應該是這樣的曾經印象讓我對探討歷史不是很同意吧
---------------------------------------------------------------
1. UEFI Brief Introduction
1-1. 從何而來
在發展Itanium處理器的過程中, 所發展出的韌體介面.
在這邊有幾個硬體架構的概念先提出來, 分別是
1. 指令集架構 - Instruction Set Architecture.
2. 微架構 - Microarchitecutre.
//指令集架構, 像是一個基礎框架. 程式設計師或翻譯器撰寫所看的到的部分
除了設計有哪些指令之外, 還有暫存器個數, 定址空間等.
根據指令複雜度與長度, 常聽到的有CISC與RISC; 其他像是VLIW, EPIC.
ISA不只是指處理器的方面, 還有其他應用, 像是Java的VM則是用Bytecode作為自己的ISA. (*2)
//微架構, 則是將ISA實作出來的技術
正反器與邏輯閘的設計, 電路的規劃, 連接各區塊,
區塊所代表的則是加法器, 乘法器, 計數器, 暫存器, ALU等元件.
還有更多其他應用與介紹, 像是hardwire或是mircocode的設計方式 (*3)
至於更多增加效能的技術, 這邊就不進一步說明
如指令管線化(Instruction Pipelining), 或是超純量架構(Superscalar CPU Architecture)
現在可以先舉個例子來說, 如Intel Xeon處理器, ISA用的是x86_64指令集, 是屬於CISC類別的指令集,
微架構則是應用Sandy-bridge.
而Xeon這個名稱則是廠商對於特定市場定位所命名的市場名稱, 這邊代表是伺服器市場.
(也因此, 雖然市場名稱Xeo名稱沒變, 但隨著技術發展, 每個時期的微架構會隨之改變,
如後來的Ivy-bridge, Haswell, etc)
說明一會後, 回來介紹 Itanium是甚麼.
Itanium是一個64bit的處理器, ISA使用EPIC.
1-2. History
以下是自己整理後的時期變化:
1987年(或1989年) –
HP考量到RISC未來發展的瓶頸(最快只能一週期一指令), 另外Intel本身不看好x86指令集(CISC)的未來發展空間,
於是Intel與HP開始合作, 以PA-RISC為基礎, 開發出VLIW style的架構
(http://www.hpl.hp.com/news/2001/apr-jun/itanium.html)
//這邊提到的PA-RISC則是早期, HP開發的一種RISC指令集
//x86指令集, 通指早期CPU如8086, 80186, 80286, 80386, 80486等以86數字結尾的處理器所用的指令集
目前通指32位元指令集(嚴格說來8086是8-bit, 80186跟80286是16bit處理器)
(再多做補充: 8088, 80188是將外部資料匯流排做成8-bit的處理器, 早期16-bit還不普及, 所做的經濟型)
(87結尾的代表是台語北七的意思 作為浮點運算器用的輔助處理器)
以上補充可看另一篇補充文章: http://billy6719.pixnet.net/blog/post/125228720
1994年 –
開始IA-64指令集與處理器研發計畫,
系統的韌體架構結合了PAL與SAL(處理器及系統抽象層),
其概念從PA-RISC中承襲而來, 那時稱作processor- and I/O-dependent code (PDC-IODC)
//參考文件自503740_Broad_Use_of_UEFI_in_Hewlett_Packard_Systems.pdf - from IBL
1996年 –
公布Itanium商標
1998年 –
發表共同開發的成品, 內部代號為Merced
Intel Boot Initiative在這一年也被提出來, 為的是解決BIOS的限制
(如中斷, I/O port空間, option ROM執行空間, PCI bus number等等的限制)
(由來: 在Windows尚未推出支援Itanium的OS前, 這樣的新系統想使用當時市場龐大的x86 OS
但是有許多上述提到的BIOS限制都會連帶過來, 造成許多問題(資源重複, 不彈性等等)而讓boot device的支援也受到限制
後來HP也為此提出Enhanced Mode option rom的概念, 不過因Windows開始支援Itanium之後
也就沒完成了. 但因此, 此時也開始初步構想, 需要一個新的boot model來取代BIOS)
2000年 –
12月, EFI 1.02版 (http://www.techbang.com/posts/4361-fully-understand-uefi-bios-theory-and-actual-combat-3-liu-xiudian)
但還未解決option rom的限制問題 (503740_Broad_Use_of_UEFI_in_Hewlett_Packard_Systems.pdf from IBL)
Intel第一代Itanium工作站及伺服器也是這年Released, 使用1.1(時間沒寫清楚, 應是上述12月後, from Eng Wiki)
另外同一年, EFI 1.02已經用在Linux系統
一些資料總合, 應該是使用FreeBSD在ia-64機台上嘗試實作(The Evolution of the UEFI.pdf from IEH).
2001年 –
6月, 第一代Itanium推出.
2002年 –
12月, EFI 1.10版
加入了EFI driver model (解決了Option ROM的限制問題), 完成了針對Itanium的boot model, 也成為其系統裡唯一支援的boot model.
HP第一個Itanium 2系統, 也在這年Released, 使用1.10
2005年 –
7月, 將EFI Spec v1.10轉交給UEFI論壇, 演化成UEFI
2006年 –
1月10日, Apple推出首代使用Intel處理器(Intel Core Duo, x86處理器)的Mac電腦 (之前是用Motorola跟IBM的),
同時也應用了EFI來作為韌體介面(取代原先的Open Firmware, 用於之前的PowerPC-based系統)
而其一的GPT概念也在其中. 這系列電腦是UEFI Class 2 System
1月31日, UEFI 2.0, 定義了與x64處理器的binding
以及加入了PXE與IPv4 & IPv6 (not quite sure in this revision)
Framework這時也演化成了PI
2007年 –
1月7日, UEFI 2.1
2.2時加入 Secure boot (not quite sure in this revision and the date)
2008年 –
許多64位元電腦系統也開始支援UEFI (http://www.techbang.com/posts/4361)
2009年 –
5月, UEFI 2.3, 定義了與ARM處理器的binding
2013年 –
7月, UEFI 2.4
---------------------------------------------------------------
參考資料來源: (wiki嘛, 基礎參考來源, 哈哈)
1. Itanium
http://en.wikipedia.org/wiki/Itanium
http://www.ithome.com.tw/node/38381
(深度剖析英特爾旗艦處理器-走出隧道盡頭的Itanium) //這篇寫得很長, 像故事一樣...
2. ISA
http://en.wikipedia.org/wiki/Instruction_set
http://systw.net/note/af/sblog/more.php?id=35
(關於"指令集架構的設計", 寫得很專業)
3. Microarchitecture
...Wiki...
4. UEFI
http://www.techbang.com/posts/4356 (即將換掉傳統 BIOS 的 UEFI,你懂了嗎? 一)
http://www.techbang.com/posts/4359 (分別第二頁, 三, 四; 用google搜UEFI首先會看到的網頁)
http://www.techbang.com/posts/4361
http://www.techbang.com/posts/4363
請先 登入 以發表留言。