2014年1月19日 星期日

Eason老大開示:IRQ routing 疑問

Q:為何IRQ不一直線到底要拐彎抹角?
A:若配成一直線,只要PCI1在使用PCI2~4的INA也會被Trigger,要停下來等。

  • 像如果單一function的PCI device就只會用到INT#A,就等到天荒地老了。

Eason老大開示:WinXP底下裝置管理員的奇異現象(OS與BIOS不同步)與IRQ編號

舊時代的眼淚還在卡位:

在目前的系統中,仍有些device是legacy的部分,已經沒在使用甚至是不存在系統上。但BIOS仍然有回報給OS,正常情況下不影響系統運作,但是這樣的問題在BIOS設計時必須避免。

EX:在裝置管理員>檢視>資源(依類型)中,可以找到一些舊時代的眼淚:COM1、COM2、LPT1(印表機)都還在,同時也顯示正常運作中,但是實際上我的PC主機板上根本沒有這些port!



IRQ編號在Windows OS底下(有ACPI)

  1. 0~15是獨立的分給舊時代的legacy device
    • 這16個IRQ號碼不重複,僅分配給一個人使用(有點像固定IP)
  2. 16之後則分配給PCI使用
    • 在16之後的IRQ常重複出現,share給很多人,且為動態配置



2014年1月8日 星期三

新手村的BIOS任務 ─ 基本裝置

Super I/O:

  1. 中低速率介面
  2. 包含了2S1P1G1FD連接port:
    • 2S:serial port (COM1、COM2)
    • 1P:parallel port 平行列印埠(用於印表機)
    • 1G:game port
    • 1FD:FDC controller (軟碟機控制)
  3. 後期有紅外線傳輸介面(IR interface),可以選擇占用COM1或2,必須關掉一組serial port。(在開機時期就要先決定好)。
  4. 硬體監控:偵測CPU溫度及工作電壓(in analog format)、散熱風扇馬達轉速。
  5. 有些甚至具備IDE介面。
  6. 早期藉由ISA(Industry Standard Architecture) Bus與CPU溝通,現在則由LPC(Low Pin Count) Bus取代ISA與CPU溝通。
  7. 2000年後"南橋"多半將super I/O(2S1P1G)做整合。

LPC(Low Pin Count) 介面:

  1. 取代傳統的ISA(Industry Standard Architecture) Bus。
  2. 最大bandwidth約16MB/s,資料寬度為4 bit,frequence約33MHz,定址空間為2^32=4GB。
  3. Clock由PCI Bus trigger。
  4. 如果要接ISA Bus就要犧牲一組PCI插槽的驅動能力。

SMBUS:

  1. 基於I2C的低速率system bus,提供一些基本的系統資訊。
  2. 從spd上抓取DRAM的參數(vender、size、clock...)。
  3. CPU溫度、電壓(in digital format)、風扇轉速。

SMLINK:

  • 支援AOL、AOL2及其附加功能。
    • AOL(Alert On LAN):用來遠端管理網路上的PC,需要一個"Wake on LAN"的adaptor。

TCO timer:


  • detect system locks(in the NM10 chipset)


    1. 產生一個SMI#來從lock回復
    2. 發出system reset來從hardware lock回復

CHAP:


  • Challenge-Handsharke Authentication Protocol認證,用來驗證用戶或網路提供者的協議。

vs. 相對簡單的PAP(Password Authentication Protocol,用帳號密碼驗證)



2014年1月1日 星期三

新手村的BIOS任務 ─ ACPI


ACPI (Advanced Configuration and Power Interface)

在過去Windows 98/SE/Me/2000/XP都支持兩種形式的電源管理,它們分別是

  1. APM(Advanced Power Management,高級電源管理)
  2. ACPI(Advanced Configuration and Power Interface, 進階組態與電源介面)
但APM有先天不足:
  • APM經由BIOS所主導控制,每種BIOS都有它自己的電源管理方案,無法隨著作業程序的變遷而有效地運用調整電力。使得每個不同的系統間缺乏一致性,每個BIOS開發者必須精制和維護自己的APM BIOS代碼和功能。
  • 無法覺察到用戶行為,只有通過監視中斷IRQ和I/O port來猜測使用者的活動,頂多做到設定幾分鐘之後某某裝置shut down,省電效率並不高。
  • 早期版本的APM(1.0、1.1)不提供任何系統性能信息,唯一決定機器是否支持睡眠狀態的方法就是嘗試將系統轉入睡眠模式。如果BIOS不支持睡眠模式,那將導致死機。(但在APM 1.2解決了這個缺陷。)
  • 對於USB設備、加插的電腦配件卡和IEEE 1394設備不認識,會導致當這些設備沒有進入空閑狀態,而BIOS卻認為系統已經進入空閑狀態。

在系統實際開機後,真正主導、掌握整個系統並實際接觸周邊裝置調度的是OS,因此power management的重心需要由BIOS轉移到OS,才會有更好的耗電管理。

ACPI既不是軟體的spec,也不是硬體的spec,它在OS與hardware peripheral間多了一個軟體/硬體中介層:

                              

周邊裝置(硬碟、網卡...)隨時將本身的耗電情形以及開關狀況記錄在ACPI中介層的register中;sensor也隨時將最新的電壓、溫度等參數透過ACPI、SMBUS回傳給OS。而OS則是透過AML(ACPI Machine Language)語言解譯程式,對符合ACPI規範設計的peripheral做控制。


ACPI讓作業系統可以直接的管理各種裝置利用電源的狀況:
Sleep狀態,如S1~5等,可以在Sleep狀態被Device喚醒,Sleep狀態數字愈高表示睡得越深、耗的電量越少,需要被喚醒的時間也越長。
  • G0(S0)正常工作狀態:
  • G1 睡眠 細分為從S1到S4這四種狀態。
    • 系統從這幾種狀態被喚醒到G0執行〈喚醒等待時間)所需的時間最短的是S1,最長是S4。
      • S1:最耗電的睡眠模式。
        • 處理器的所有暫存器被重新整理,並且CPU停止執行指令。CPU和內部記憶體的電源一直維持著,裝置如果沒有被使用那麼就會被停止供電。
        • 這種模式通常指上電待機或者簡單叫做POS(Power on Suspend)。一些新式的電腦不再支援S1;老式的電腦對S1支援可能要比S3好。
        • 某些CPU降温軟件就是利用這種工作原理。
        • 喚醒時間:0秒。
      • S2:
        • 這時CPU處於停止運作狀態,Bus Clock也被關閉,但其餘的設備仍然運轉。
        • 喚醒時間:0.1秒。
      • S3:
        • 稱STR(Suspend to RAM)
        • 除了記憶體(RAM)需要電源來保持資料以外,其它的設備、裝置全部停止供電。
        • 因為RAM仍然有電源供給,作業系統、所有應用程式和被開啟的文檔等等的狀態都是保存在主記憶體中,電腦從S3狀態回來時主記憶體的內容和它進入S3狀態時候的內容是相同象的。
        • 喚醒時間:0.5秒。
      • S4: 
        • 稱STD(Suspend to  Disk)
        • 即是把 windows 記憶體中的資料完整的存在硬碟中。等開機時就直接從存這些資料的地方直接完整的讀到記憶體,不需要跑一堆應用程式。
        • 使用這種模式的話,硬碟一定要騰出一個完整的連續空間。
        • 再進入系統時需重跑BIOS。
        • 喚醒時間:30秒。
  • G2
      • S5:關閉

其他:

Google看來的,ACPI的一項特色:用軟體電源開關來控制電源。

電源供應器的開關按鈕並不接往電源供應器本身,而是連接到主機板上;電源供應器無法啟動電腦的電源,而是直接由主機板控制,大部分多配合ATX電源系統一起使用。

這可使電腦供應低電壓、讓電腦處於並非完全關掉電源的睡眠狀態(Idle);這也可使電腦快速開機,即便關機後亦有5V電壓隨時待命。再者於使用隨插即用(Plug-and-Play)周邊設備時,ACPI可在裝置插入系統即偵知並管理設備的電源。

ACPI亦具備NB的OnNow特性,可使電腦立即恢復到原先工作狀態,不需等候漫長的開機過程。ACPI 還提供一個便利親近的視窗,讓使用者可由圖形介面,設定及管理電源的使用狀況,達到較佳的電源管理目的。

ACPI統整了系統、周邊設備、中央處理器、各類嵌入式微控制器、匯流排本身及相互的電源效能管理、溫度監控、儲備電能供應管理。簡丹說,ACPI讓OS、CPU與peripheral三方面整合起來,互相交換用電訊息,更加簡便而有效益地共同管理電源。

Reference:

http://www.hope.com.tw/culture/showbox-tw.asp?o=HJQ1HA8NHJ6CU-0SAH
http://www.lis186.com/posts/7584
http://stenlyho.blogspot.com/2009/02/acpiapic.html