BIOS與EC之間關係

來源:互聯網
上載者:User

標籤:工作原理   開機   超過   而在   技術   apt   特定   傳統   api   

最近在看BIOS的相關內容,冒出了一個EC的概念。上網搜尋了相關內容,整理了下,BIOS與EC的關係 

        BIOS(基本輸出入系統 (BIOS))在整個系統中的地位是非常重要的,它實現=了底層硬體和上層作業系統的橋樑。比如你現在從光碟片拷貝一個檔案到硬碟,您只需知道“複製、粘貼”的指令就行了,您不必知道它具體是如何從光碟片讀取,然後如何寫入硬碟。對於作業系統來說也只需要向BIOS發出指令即可,而不必知道光碟片是如何讀,硬碟是如何寫的。BIOS構建了作業系統和底層硬體的橋樑。而我們平時說的BIOS設定僅僅是談到了其軟體的設定,比如設定啟動順序、禁用/啟用一些功能等等。但這裡有一個問題,在硬體上,BIOS是如何?的呢?畢竟,軟體是運行在硬體平台上的吧?這裡我們不能不提的就是EC。 


        EC(Embed Controller,內嵌控制器)是一個16位單片機,它內部本身也有一定容量的Flash來儲存EC的代碼。EC在系統中的地位絕不次於南北橋,在系統開啟的過程中,EC控制著絕大多數重要訊號的時序。在筆記本中,EC是一直開著的,無論你是在開機或者是關機狀態,除非你把電池和Adapter完全卸載。在關機狀態下,EC一直保持運行,並在等待使用者的開機資訊。而在開機後,EC更作為鍵盤控制器,充電指示燈以及風扇和其他各種指示燈等裝置的控制,它甚至控制著系統的待機、休眠等狀態。主流筆記本系統中


        現在的EC有兩種架構,比較傳統的,即BIOS的FLASH通過X-BUS接到EC,然後EC通過LPC接到南橋,一般這種情況下EC的代碼也是放在FLASH中的,也就是和BIOS共用一個FLASH。右邊的則是比較新的架構,EC和FLASH共同接到LPC匯流排上,一般它只使用EC內部的ROM。至於LPC匯流排,它是INTEL當初為了取代低速落後的X-BUS而推出的匯流排標準。 EC上一般都含有鍵盤控制器,所以也稱KBC。那EC和BIOS在系統中的工作到底有什麼牽連呢?在這裡我們先簡單的分析一下。在系統關機的時候,只有RTC部分和EC部分在運行。RTC部分維持著電腦的時鐘和CMOS設定資訊,而EC則在等待使用者按開機鍵。在檢測到使用者按開機鍵後,EC會通知整個系統把電源開啟,CPU被RESET後,會去讀BIOS內一個特定地址內的指令(其實是一個跳轉指令,這個地址是由CPU硬體設定的)。這裡開始分兩種情況,1 CPU發出的這個地址通過FSB到北橋,然後通過HUB-LINK到南橋,通過LPC到EC,再通過X-BUS一直到達BIOS。在CPU讀到所發出的地址內的指令後,執行它被RESET後的第一個指令。在這個系統中,EC起到了橋接BIOS和南橋(或者說整個系統)的作用,在CPU發出的地址到南橋後,會直接通過LPC到BIOS,不需要EC的橋接。     
        這裡需要說明的是,對於台式機而言,一般是不需要EC的。這裡原因有很多:比如台式機本身的ATX電源就具有一定的智能功能,他已經能受作業系統控制來實現待機、休眠的狀態;其次由於筆記本的鍵盤不能直接接到PS/2介面,而必須接到EC之上;還有就是筆記本有更多的小功能,比如充電指示燈、WIFI指示燈、Fn等很多特殊的功能,而且筆記本必須支援電池的充放電等功能,而智能充放電則需要EC的支援;另外,筆記本TFT螢幕的開關時序也必須由EC控制。這些原因導致了筆記本使用EC來做內部管理的必要性。     
        總體來說,EC和BIOS都處於機器的最底層。EC是一個單獨的處理器,在開機前和開機過程中對整個系統起著全域的管理。而BIOS是在等EC把內部的實體環境初始化後才開始啟動並執行。     
        看到這裡,我想大家也明白EC到底是呵方神聖。如果說BIOS 是底層系統的話,那EC 似乎更加底層。   

       在南橋上還有一個功能塊就是電源管理單元(PM,Power Management),一般來說,他和EC來共同配合完成。這裡包括從開機鍵按下後,啟動,待機,休眠,關機的全部功能。還包括對背光亮度,聲音等的控制等等。至於現在Intel的Speed Step技術,也有部分功能是透過南橋來實現的(南橋發送SLP、STPCLK(sleep,Stop Clock)來實現睡眠、深睡眠等)。 
        這部分的設計比較簡單,只需要點到點的串連南橋和CPU即可。

        邏輯上的開機過程: 
        開機過程對於電腦設計是至關重要的。在膝上型電腦打好PCB後第一次開機時,如果電源的時序正確了,其他的問題都比較好解(一般來說時序正確的話機器都能開起來)。最怕的就是電源時序不對,機器開不起來,這才是最要命的。在筆記本內部的電壓有好幾種, 首先是RTC電源,這部分電力是永遠不關閉的,除非電池(紐扣電池)沒電並且沒接任何外部電源(比如電池和電來源配接器)。RTC用以保持機器內部時鐘的運轉和保證CMOS配置資訊在斷電的情況下不丟失;其次,在你插上電池或者電來源配接器。

          但還沒按power鍵的時候(S5),機器內部的開啟的電稱為ALWAYS電,主要用以保證EC的正常運行;
          再次,你開機以後,所有的電力都開啟,這時候,我們稱為MAIN電(S0),以供整機的運行;
          在你進待機的時候(S3),機器內部的電成為SUS電,主要是DDR的電力供應,以保證RAM內部的資料不丟失;
          而休眠(S4)和關機(S5)的電是一樣的,都是Always電。其中,上文中括弧內的是表示電腦的狀態(S0-開機,S3-待機,S4-休眠,S5-關機)。 

        現在我們假設沒有任何的電力裝置在供電(沒電池和電源),這時候,機器內部只有RTC電路在運作,南橋上會接有一個3V的紐扣電池來供給RTC電力,以保持內部時間的運行和CMOS資訊。 

        南橋的啟動時序 

        根據前面的Power Status,我們來分析一下開機的過程。在插上電池或者電源的時候,機器內部的單片機EC就Reset並開始工作,等待使用者按下Power鍵。在此期間的時序是:ALWAYS電開啟以後,EC Reset並開始運行,隨後發給南橋一個稱為‘RSMRST#’的訊號。這時候南橋的部分功能開始初始化並等待開機訊號。這裡要注意,這時候的南橋並沒有開啟全部電源,只有很少一部分的功能可用,比如供檢測開機訊號的PWRBTN#訊號。 
      在使用者按下Power鍵的時候,EC檢測到一個電平變化(一般時序是:高-低-高),然後發送一個開機訊號(PWRBTN#)給南橋,南橋收到PWRBTN#訊號後依次拉高SLP_S5#,SLP_S4#,SLP_S3#訊號,開啟了所有的外圍電壓,主要是+3V,+5V以及DDR2.5V等,並發送PM PWROK訊號,這訊號表明外圍電源正常開啟。 
        PM PWROK將作為一個使能訊號發送到CPU外圍VCCP的電壓Generator,並開啟VCCP。在此之後,VCCP Generator會發出CORE_VR_ON來開啟CORE VR(即CPU的核心電壓)。至此,整機的電壓已經全部開啟。 
        在用VR_PWRGD_ICH這個訊號通知南橋CORE VR成功開啟後,南橋會發出PCI RST#訊號到PCI匯流排,於是匯流排上的裝置都被初始化(包括北橋),並同時發出H_PWRGD來通知CPU它的核心電壓已經成功開啟。然後北橋發出H_CPURST#訊號給CPU,CPU被RESET,並正式開始工作。 
        在使用者需要進入待機模式(S3)的時候,系統的ACPI和windows同時運作,拉低SLP_S3#,並保持SLP_S4#和SLP_S5#被拉高,以關閉了MAIN電,系統則進入待機模式。

        而在需要進入休眠或者關機模式時,同時拉低SLP_S3#、SLP_S4#和SLP_S5#,關閉除了RTC以外的電源。當然,在這一系列的過程中,需要作業系統和BIOS的共同協作,對硬體來說,只需要保證在特定的狀態保證特定的電壓供給即可。 
        當機器要要從S0進入S5,即關機的時候,也會有一定的時序進行,基本上就是前面時序的逆運行。 

       以上就是整個硬體的開機、進入S3,S5的過程,當然不同的硬體有不同的開機過程,這裡說的不過是最普通、最為常見的一種ACPI就是Advanced Configuration and Power Interface的縮寫,意思是“進階配置與電源介面”。這是英特爾、微軟和東芝共同開發的一種電源管理標準。
 ACPI可實現以下功能:   
 1、使用者可以使外設在指定時間開關;   
 2、使用膝上型電腦的使用者可以指定電腦在低電壓的情況下進入低功耗狀態,以保證重要的應用程式運行;   
 3、作業系統可以在應用程式對時間要求不高的情況下降低時鐘頻率;
 4、作業系統可以根據外設和主板的具體需求為它分配能源;
 5、在無人使用電腦時可以使電腦進入休眠狀態,但保證一些通訊裝置開啟;
 6、隨插即用裝置在插入時能夠由ACPI來控制。
 不過,ACPI和其他的電源管理方式一樣,要想享受到上面這些功能,必須要有軟體和硬體的支援。在軟體方面,Windows 98及其後續產品和Windows 2000都對ACPI給予了全面的支援;而Linux的核心目前對此支援得並不是太理想。硬體方面比較麻煩,除了要求主板、顯卡和網卡等外設要支援ACPI外,還需要機箱電源的配合。電源在提供5伏電壓給主板的同時,還必須使電流穩定在720毫安以上才可以,這樣它才能夠實現電腦的“睡眠”和“喚醒”。
 ACPI共有六種狀態,分別是S0到S5,它們代表的含義分別是:
 S0--實際上這就是我們平常的工作狀態,所有裝置全開,功耗一般會超過80W;
 S1--也稱為POS(Power on Suspend),這時除了通過CPU時鐘控制器將CPU關閉之外,其他的組件仍然正常工作,這時的功耗一般在30W以下;(其實有些CPU降溫軟體就是利用這種工作原理)
 S2--這時CPU處於停止運作狀態,匯流排時鐘也被關閉,但其餘的裝置仍然運轉;
 S3--這就是我們熟悉的STR(Suspend to RAM),這時的功耗不超過10W;
 S4--也稱為STD(Suspend to Disk),這時系統主電源關閉,但是硬碟仍然帶電並可以被喚醒;
 S5--這種狀態是最乾脆的,就是連電源在內的所有裝置全部關閉,功耗為0。
 我們最常用到的是S3狀態,即Suspend to RAM(掛起到記憶體)狀態,簡稱STR。顧名思義,STR就是把系統進入STR前的工作狀態資料都存放到記憶體中去。在STR狀態下,電源仍然繼續為記憶體等最必要的裝置供電,以確保資料不丟失,而其他裝置均處於關閉狀態,系統的耗電量極低。一旦我們按下Power按鈕(主機電源開關),系統就被喚醒,馬上從記憶體中讀取資料並恢複到STR之前的工作狀態。記憶體的讀寫速度極快,因此我們感到進入和離開STR狀態所花費的時間不過是幾秒鐘而已;而S4狀態,即 STD(掛起到硬碟)與STR的原理是完全一樣的,只不過資料是儲存在硬碟中。由於硬碟的讀寫速度比記憶體要慢得多,因此用起來也就沒有STR那麼快了。 STD的優點是只通過軟體就能實現,比如Windows 2000就能在不支援STR的硬體上實現STD。
之前的電源管理是APM(Advanced Power Management),那麼ACPI和APM相比有什麼區別呢?

2、ACPI與APM比較
APM 1.0&1.1:由BIOS執行電源管理;
APM 1.2:作業系統定義電源管理時間,由BIOS負責執行;
ACPI:BIOS收集硬體資訊,定義電源管理方案;由作業系統負責執行。
APM是一種軟體解決方案,因此是與作業系統有關的, 而ACPI是工業標準,包括了軟體和硬體方面的規範。

APIC (進階可程式化插斷控制器)對電腦來講有兩個作用,
一是管理IRQ的分配,可以把傳統的16個IRQ擴充到24個(傳統的管理方式叫PIC),以適應更多的裝置。
二是管理多CPU。由於Nf2主板並不支援多CPU,所以,APIC關閉直接的影響是減少了可用的IRQ。
不過,如果板卡不是非常多的話,關閉 APIC對系統是沒有什麼影響的。
要實現SMP功能,我們使用的CPU必須具備以下要求:
CPU內部必須內建APIC單元。Intel 多處理規範的核心就是進階可程式化插斷控制器(Advanced Programmable Interrupt Controllers--APICs)的使用。CPU通過彼此發送中斷來完成它們之間的通訊。通過給中斷附加動作(actions),不同的CPU可以在某種程度上彼此進行控制。每個CPU有自己的APIC(成為那個CPU的本地APIC),並且還有一個I/O APIC來處理由I/O裝置引起的中斷,這個I/O APIC是安裝在主板上的,但每個CPU上的APIC則不可或缺,否則將無法處理多CPU之間的中斷協調。
APIC可能遇到的問題,很多這類問題可以通過BIOS更新來解決。
下面的是通過更改HAL類型來解決
  CPU實際運行頻率與BIOS設定頻率不符
  NF2的使用者大約有10%的會出現CPU實際運行頻率與BIOS設定頻率不符的問題。我們稱之為“頻率不對”。
  這種現象帶來的直接後果就是在測試3dmark或跑3D遊戲的時候,會感覺不流暢,也稱之為“頓”。
  一般在更改BIOS設定後、更新驅動後重啟時,用測試軟體如Aida32、MBM5等可以看到CPU的運行頻率和你在BIOS裡設定得不一樣,而且差距很大。這個時候,用super pi測試CPU速度,會比平常花費時間長好幾秒,用3dmark跑測試,會比平常低幾百分甚至上千分。在3dmark中看到的CPU頻率,也與BIOS設定不符合。
  如果出現這種情況,則屬於我們所討論的“頻率不對”的問題。
  不過,不是所有的3D遊戲“頓”都是這個原因。判斷的方法是:如果你只有個別遊戲“頓”,或者用上述軟體測試頻率正確,就不是此問題。
  如果判斷確實屬此問題,解決的方法也很簡單,經過網友討論,只要關閉APIC功能即可。(注意,是APIC,不是ACPI)。

BIOS與EC之間關係

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.