SIO有关知识
Superio概述
Super I/O芯片也叫I/O芯片。在486以上檔次的主板上都有I/O控制電路。因?yàn)樵谀蠘蜻@樣的高速設(shè)備和串行、并行接口、軟盤(pán)驅(qū)動(dòng)器及鍵盤(pán)鼠標(biāo)等大量低速設(shè)備之間必定存在資源的不匹配,而需要經(jīng)過(guò)轉(zhuǎn)換和管理。而Super I/O芯片則完成了該功能。
通常在硬件監(jiān)控芯片硬件監(jiān)控芯片中會(huì)整合超級(jí)I/O功能,可用于監(jiān)控受監(jiān)控對(duì)象的電壓、溫度、轉(zhuǎn)速等。主板在附件中會(huì)提供某種軟件,它和主板上的硬件配合使用就能實(shí)現(xiàn)對(duì)電壓、溫度、風(fēng)扇轉(zhuǎn)速等的監(jiān)控,一旦檢測(cè)到這些參數(shù)超出設(shè)定的指標(biāo)時(shí),它會(huì)自動(dòng)作出調(diào)整,以保護(hù)元件的安全。常見(jiàn)的溫度控制芯片有ADT7463等等;通用的通用硬件監(jiān)控芯片有Winbond的W83697HF和W83627HF,SMSC的LPC47M172,ITE的IT8705F、IT8703F,ASUS的AS99172F等等,這些芯片通常還整合了對(duì)于溫度的監(jiān)控需與溫度傳感元件配合;對(duì)風(fēng)扇電機(jī)轉(zhuǎn)速的監(jiān)控,則需與CPU的散熱風(fēng)扇配合使用。
SIO是一個(gè)半可定制化的芯片,怎么說(shuō)是半可定制化呢?比如上電時(shí)序,這一部分就是固化好的,而可定制化部分則是邏輯設(shè)備(Logic Device)部分。接入電源后SIO便根據(jù)固化的程序開(kāi)始運(yùn)作,等待power button觸發(fā)。按下power button后SIO開(kāi)始跑上電時(shí)序,CPU Reset后BIOS才開(kāi)始跑,此時(shí)BIOS給SIO配置的Logic Device也才生效。
?
訪問(wèn)SIO
可以通過(guò) index/data 的IO的方式訪問(wèn)SIO,端口分別是0x2E/0x2F。訪問(wèn)前需要先進(jìn)入PnP mode,之后便可以通過(guò)往0x07這里寫(xiě)入邏輯設(shè)備號(hào)切換到相應(yīng)的邏輯設(shè)備。
(1) Enter the extended function mode
(2) Configure the configuration registers
(3)?Exit the extended function mode
SIO中的IO Space(轉(zhuǎn))
邏輯設(shè)備中的256個(gè)byte寄存器對(duì)于配置一些比較復(fù)雜的功能(如Smart Fan)遠(yuǎn)遠(yuǎn)是不夠的,所以SIO還給我們提供了額外的寄存器去實(shí)現(xiàn)更加復(fù)雜的功能,那便是IO Space。要訪問(wèn)這個(gè)Space,就得知道它的Base Address,那在哪里呢?
IO Base Address一般是每個(gè)邏輯設(shè)備0x60,0x61,0x62,0x63這幾個(gè)位置的值,當(dāng)然,這段空間首先得經(jīng)過(guò)南橋decode才可以,decode的這個(gè)問(wèn)題我們暫且忽略。為了方便理解,我們舉個(gè)例子。
就拿LDN 4 EC這個(gè)設(shè)備來(lái)說(shuō),我們要訪問(wèn)他的IO Space,首先得知道它的地址是多少,從IT8625的SPEC可以知道,地址就是0x60,0x61中的值。
這里的兩個(gè)值是不能直接用的,按照說(shuō)明,需要分別給他們加上05h和06h,再用index/data的IO方式訪問(wèn)就可以了。假如0x60的值是02h,0x61的值是90h(這兩個(gè)值可以用RW看到),則:
index port address = 290h + 05h = 295h
data port address = 290h + 06h = 296h
用RW訪問(wèn)這個(gè)IO地址便可以看到結(jié)果了。
總結(jié)
- 上一篇: 06 |「链表」必刷题
- 下一篇: Modern UI for WPF 初接