專利名稱:內(nèi)存插槽時(shí)鐘脈沖的控制方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種時(shí)鐘脈沖的控制方法,且特別是有關(guān)于一種內(nèi)存插槽時(shí) 鐘脈沖的控制方法。
背景技術(shù):
近年來(lái),電子產(chǎn)品的使用率越來(lái)越高,導(dǎo)致電子產(chǎn)品之間的電磁干擾
(Electromagnetic Interference, EMI)影響增加。其中,個(gè)人電腦的使用日異 普遍,無(wú)論是工作上的需求,或是生活上的娛樂(lè),個(gè)人電腦已經(jīng)進(jìn)駐人類日常生活 中,而為一般環(huán)境中最常產(chǎn)生電磁干擾的設(shè)備之一。為了提高運(yùn)算性能,個(gè)人電腦 的時(shí)鐘脈沖信號(hào)(clock)的設(shè)計(jì)便越來(lái)越高,其內(nèi)部?jī)叭怀蔀楦哳l的數(shù)字信號(hào)在 元件間進(jìn)行傳輸,導(dǎo)致電磁干擾日益嚴(yán)重。
一般而言,個(gè)人電腦上的時(shí)鐘脈沖產(chǎn)生器會(huì)提供時(shí)鐘脈沖信號(hào)至所有內(nèi)存插 槽。然而,當(dāng)內(nèi)存模塊無(wú)法正常運(yùn)行時(shí),即使將時(shí)鐘脈沖信號(hào)提供給內(nèi)存插槽,內(nèi) 存模塊同樣無(wú)法產(chǎn)生任何做動(dòng),僅是徒增電磁干擾而已。而內(nèi)存模塊無(wú)法運(yùn)行的常 見(jiàn)范例如下所述
范例l,內(nèi)存模塊未插入內(nèi)存插槽。范例2,內(nèi)存插槽上雖己插入內(nèi)存模塊, 但是若內(nèi)存模塊內(nèi)的序列存在檢測(cè)(Serial Presence Detect, SPD)數(shù)據(jù)的錯(cuò)誤 檢查碼(checksum)不正確,則表示此內(nèi)存模塊有問(wèn)題。范例3,內(nèi)存模塊插入方 法錯(cuò)誤。范例4,內(nèi)存插槽上已插入內(nèi)存模塊且其序列存在檢測(cè)數(shù)據(jù)的錯(cuò)誤檢査碼 亦正確,但若序列存在檢測(cè)數(shù)據(jù)中的某一參數(shù)不被內(nèi)存控制器(Memory Control Hub, MCH)所支持,表示內(nèi)存模塊的規(guī)格與芯片組不符合。范例5,內(nèi)存模塊測(cè)試失敗, 即存取數(shù)據(jù)時(shí)失敗。
綜上所述,當(dāng)內(nèi)存模塊沒(méi)有在運(yùn)行時(shí),持續(xù)提供其時(shí)鐘脈沖信號(hào)是無(wú)意義的, 只會(huì)增加電磁干擾,連帶影響到電腦其他元件的運(yùn)行。因此,如何能夠自動(dòng)檢測(cè)內(nèi) 存模塊的運(yùn)行狀態(tài),而適時(shí)關(guān)閉時(shí)鐘脈沖信號(hào),即是本發(fā)明所欲解決的主要課題。
發(fā)明內(nèi)容
本發(fā)明提供一種內(nèi)存插槽時(shí)鐘脈沖的控制方法,能夠根據(jù)內(nèi)存模塊的運(yùn)行狀 態(tài),自動(dòng)將提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉。
本發(fā)明提出一種內(nèi)存插槽時(shí)鐘脈沖的控制方法,適用于控制提供給多個(gè)內(nèi)存 插槽之時(shí)鐘脈沖信號(hào),其中這些內(nèi)存插槽是用以插入內(nèi)存模塊。此方法首先提供時(shí) 鐘脈沖信號(hào)給所有內(nèi)存插槽。接著,讀取存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù),并判斷規(guī) 格數(shù)據(jù)的讀取是否發(fā)生錯(cuò)誤,當(dāng)讀取發(fā)生錯(cuò)誤時(shí),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存 插槽的時(shí)鐘脈沖信號(hào)。
在本發(fā)明一實(shí)施例中,還包括當(dāng)讀取沒(méi)有發(fā)生錯(cuò)誤時(shí),判斷規(guī)格數(shù)據(jù)的錯(cuò)誤
檢査碼(checksum)是否正確。當(dāng)錯(cuò)誤檢查碼不正確時(shí),關(guān)閉提供給讀取發(fā)生錯(cuò)誤 的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)。另一方面,當(dāng)錯(cuò)誤檢查碼正確時(shí),檢査內(nèi)存模塊上的 規(guī)格數(shù)據(jù)是否均被讀取,若仍有規(guī)格數(shù)據(jù)未讀取,則繼續(xù)讀取其他內(nèi)存模塊上的規(guī) 格數(shù)據(jù),并重復(fù)上述步驟,直到所有內(nèi)存模塊上的規(guī)格數(shù)據(jù)均讀取完畢為止。
在本發(fā)明一實(shí)施例中,上述的讀取存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù)的步驟包括 讀取內(nèi)存插槽的配置數(shù)據(jù),而配置數(shù)據(jù)記錄內(nèi)存插槽的硬件地址。并且,依照硬件 地址讀取存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù)。
在本發(fā)明一實(shí)施例中,上述的關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈 沖信號(hào)的步驟包括將配置數(shù)據(jù)中對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的開(kāi)關(guān)欄位設(shè)定 為關(guān)閉。并且,根據(jù)配置數(shù)據(jù),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信 號(hào)。
在本發(fā)明一實(shí)施例中,上述的將配置數(shù)據(jù)中對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的內(nèi)存插槽 的開(kāi)關(guān)欄位設(shè)定為關(guān)閉的步驟之前,還包括執(zhí)行內(nèi)存模塊的初始化程序,而在初始 化程序執(zhí)行的過(guò)程中,設(shè)定配置數(shù)據(jù)。接下來(lái),在初始化程序執(zhí)行完畢后,才根據(jù) 配置數(shù)據(jù),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)。
在本發(fā)明一實(shí)施例中,上述的關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈 沖信號(hào)的步驟包括直接控制時(shí)鐘脈沖產(chǎn)生器(clock generator)關(guān)閉時(shí)鐘脈沖信 號(hào)。或者,通過(guò)芯片組(chipset)關(guān)閉時(shí)鐘脈沖信號(hào)。
在本發(fā)明一實(shí)施例中,上述的關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)的步驟包括通過(guò)外圍部件互連(Peripheral Component Interconnect, PCI) 組態(tài)(configuration)、內(nèi)集成電路(Inter Integrated Circuit, I2C)、輸入 輸出端口 (Input Output port, 10 port)以及內(nèi)存映射輸入輸出(Memory Mapped I叩ut Output, MMI0)其中之一的關(guān)閉方式關(guān)閉時(shí)鐘脈沖信號(hào)。其中,關(guān)閉方式記 錄于配置數(shù)據(jù)的關(guān)閉方式欄位中。
在本發(fā)明一實(shí)施例中,上述的關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈 沖信號(hào)的步驟包括通過(guò)設(shè)定關(guān)閉方式所對(duì)應(yīng)的寄存器為關(guān)閉,以關(guān)閉提供給讀取發(fā) 生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)。其中,關(guān)閉方式所對(duì)應(yīng)的寄存器的地址記錄于 配置數(shù)據(jù)的寄存器地址欄位中。
在本發(fā)明一實(shí)施例中,上述的規(guī)格數(shù)據(jù)存儲(chǔ)于內(nèi)存模塊上的電可擦可編程只 讀存儲(chǔ)器(Electrically Erasable Programmable Read Only, EEPR0M)。而規(guī)格 數(shù)據(jù)為序列存在檢測(cè)(Serial Presence Detect, SPD)數(shù)據(jù)。
本發(fā)明在判斷讀取內(nèi)存模塊上的規(guī)格數(shù)據(jù)發(fā)生錯(cuò)誤時(shí),便即時(shí)將提供給對(duì)應(yīng) 的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉,因此可減少產(chǎn)生非必要的時(shí)鐘脈沖信號(hào),進(jìn)一步 降低電磁干擾(Electromagnetic Interference, EMI)。
為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合 附圖作詳細(xì)說(shuō)明如下。
圖1是依照本發(fā)明一實(shí)施例所繪示的內(nèi)存插槽時(shí)鐘脈沖的控制方法流程圖。 圖2是依照本發(fā)明一實(shí)施例所繪示的內(nèi)存插槽時(shí)鐘脈沖的控制系統(tǒng)方塊圖。 圖3是依照本發(fā)明另一實(shí)施例所繪示的內(nèi)存插槽時(shí)鐘脈沖的控制方法流程圖。 圖4是依照本發(fā)明一實(shí)施例所繪示的內(nèi)存模塊的數(shù)據(jù)傳輸系統(tǒng)的方塊圖。 圖5是依照本發(fā)明一實(shí)施例所繪示的配置數(shù)據(jù)的示意圖。
具體實(shí)施例方式
一般而言,時(shí)鐘脈沖產(chǎn)生器(clock generator)會(huì)提供時(shí)鐘脈沖信號(hào)(clock) 至所有內(nèi)存插槽(slot)。然而,在內(nèi)存模塊插入內(nèi)存插槽發(fā)生錯(cuò)誤而無(wú)法正常運(yùn) 行時(shí),提供時(shí)鐘脈沖信號(hào)至內(nèi)存插槽并無(wú)意義,此時(shí)即可將時(shí)鐘脈沖信號(hào)關(guān)閉,避免產(chǎn)生不必要的電磁干擾。本發(fā)明即是根據(jù)上述概念所發(fā)展出來(lái)的一套內(nèi)存插槽時(shí) 鐘脈沖的控制方法,能夠自動(dòng)將提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān) 閉。為了使本發(fā)明的內(nèi)容更為明了,以下特舉實(shí)施例作為本發(fā)明確實(shí)能夠據(jù)以實(shí)施 的范例。
圖1是依照本發(fā)明一實(shí)施例所繪示的內(nèi)存插槽時(shí)鐘脈沖的控制方法流程圖。 請(qǐng)參照?qǐng)Dl,本方法適用于控制提供給多個(gè)內(nèi)存插槽的時(shí)鐘脈沖信號(hào),其中內(nèi)存插 槽用以插入內(nèi)存模塊。而內(nèi)存模塊例如是雙列直插式存儲(chǔ)器模塊(dual in-line memory module, DIMM)。
首先,步驟S101為執(zhí)行開(kāi)機(jī)自我測(cè)試(Power On Self Test, POST)。當(dāng)電 腦主機(jī)的啟動(dòng)鍵被按下時(shí),電腦內(nèi)的基本輸入輸出系統(tǒng)(Basic Input Output System, BIOS)將會(huì)對(duì)電腦內(nèi)的硬件設(shè)備進(jìn)行完整的檢驗(yàn)和測(cè)試。
接著,在步驟S102中,由時(shí)鐘脈沖產(chǎn)生器提供時(shí)鐘脈沖信號(hào)給各個(gè)內(nèi)存插槽, 此時(shí)鐘脈沖信號(hào)例如是提供給內(nèi)存模塊進(jìn)行信號(hào)同步之用。詳細(xì)地說(shuō),內(nèi)存模塊的 存取動(dòng)作,必須與系統(tǒng)的時(shí)鐘脈沖信號(hào)同步,以確保數(shù)據(jù)進(jìn)行存取的正確性。
以下舉例說(shuō)明內(nèi)存插槽時(shí)鐘脈沖的控制路徑。圖2是依照本發(fā)明一實(shí)施例所 繪示的內(nèi)存插槽時(shí)鐘脈沖的控制系統(tǒng)方塊圖。請(qǐng)參照?qǐng)D2,此系統(tǒng)包括時(shí)鐘脈沖產(chǎn) 生器201以及內(nèi)存插槽202 209。本實(shí)施例是由時(shí)鐘脈沖產(chǎn)生器201直接控制內(nèi) 存插槽202 209的時(shí)鐘脈沖信號(hào)的開(kāi)關(guān),每當(dāng)系統(tǒng)開(kāi)機(jī)時(shí),時(shí)鐘脈沖產(chǎn)生器201 便會(huì)提供時(shí)鐘脈沖信號(hào)至內(nèi)存插槽202 209。
另外,亦可通過(guò)芯片組(未繪示), 一般為北橋芯片,將內(nèi)存插槽202 209 的時(shí)鐘脈沖信號(hào)的開(kāi)關(guān)。換言之,時(shí)鐘脈沖產(chǎn)生器201將時(shí)鐘脈沖信號(hào)傳送至芯片 組,再通過(guò)控制芯片組將時(shí)鐘脈沖信號(hào)傳送內(nèi)存插槽202 209。
請(qǐng)繼續(xù)參照?qǐng)Dl,步驟S103讀取存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù)。在步驟S103 中,BIOS將直接去讀取內(nèi)存模塊上的規(guī)格數(shù)據(jù),以取得內(nèi)存模塊的相關(guān)數(shù)據(jù)。因 此,系統(tǒng)便可根據(jù)規(guī)格數(shù)據(jù),充份運(yùn)用內(nèi)存模塊。
其中,規(guī)格數(shù)據(jù)例如是燒錄在內(nèi)存模塊上的電可擦可編程只讀存儲(chǔ)器 (Electrically Erasable Programmable Read Only, EEPROM)中的序列存在檢測(cè) (Serial Presence Detect, SPD)數(shù)據(jù),是用來(lái)記錄內(nèi)存模塊的種類、容量、速 度、所需電壓等信息。
8一般電腦在啟動(dòng)之后,BIOS便會(huì)直接去讀取SPD數(shù)據(jù)。接著,芯片組(一般 為北橋芯片)便可根據(jù)SPD數(shù)據(jù)來(lái)配置相對(duì)應(yīng)的內(nèi)存模塊的工作時(shí)序(timing)與 寄存器,以使內(nèi)存模塊能夠正常運(yùn)行。
然后,在步驟S104中,當(dāng)讀取發(fā)生錯(cuò)誤時(shí),則將提供給讀取發(fā)生錯(cuò)誤的內(nèi)存 插槽的時(shí)鐘脈沖信號(hào)關(guān)閉。也就是說(shuō),當(dāng)無(wú)法讀取到存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù) 時(shí),代表內(nèi)存模塊與內(nèi)存插槽間的連結(jié)或是內(nèi)存模塊與系統(tǒng)間的相容性發(fā)生問(wèn)題, 此時(shí)便可將提供至其對(duì)應(yīng)的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉。
值得一提的是,上述關(guān)閉時(shí)鐘脈沖信號(hào)的方式例如可直接控制時(shí)鐘脈沖產(chǎn)生 器,通過(guò)外圍部件互連(Peripheral Component Interconnect, PCI)組態(tài) (configuration)的關(guān)閉方式來(lái)關(guān)閉時(shí)鐘脈沖信號(hào);或者,可通過(guò)芯片組發(fā)送一 個(gè)內(nèi)集成電路(Inter Integrated Circuit, I2C)指令,而關(guān)閉時(shí)鐘脈沖信號(hào)。
以下再舉一實(shí)施例以更詳細(xì)地說(shuō)明內(nèi)存插槽時(shí)鐘脈沖的控制方法各步驟。圖3
是依照本發(fā)明另一實(shí)施例所繪示的內(nèi)存插槽時(shí)鐘脈沖的控制方法流程圖。請(qǐng)參照?qǐng)D 3,步驟S301與步驟S302與上述實(shí)施例的步驟S101與步驟S102相同,均是通過(guò)
BIOS執(zhí)行開(kāi)機(jī)自我測(cè)試,然后由時(shí)鐘脈沖產(chǎn)生器提供時(shí)鐘脈沖信號(hào)至各個(gè)內(nèi)存插槽。
在BIOS正常執(zhí)行且內(nèi)存插槽正常運(yùn)行的狀況下,步驟S303為執(zhí)行內(nèi)存模塊 的初始化程序。初始化程序例如是依據(jù)芯片組的技術(shù)文件規(guī)格,進(jìn)行寄存器填值、 改位元的動(dòng)作,使得內(nèi)存模塊得以正常運(yùn)行。
接著,在步驟S304中,系統(tǒng)便會(huì)讀取內(nèi)存插槽的配置數(shù)據(jù),以取得內(nèi)存插槽 的硬件地址,此配置數(shù)據(jù)例如是存儲(chǔ)于BI0S中,其中記錄了各個(gè)內(nèi)存插槽的硬件 地址。詳細(xì)地說(shuō),硬件工程師在設(shè)計(jì)主機(jī)板時(shí),便會(huì)依各個(gè)內(nèi)存插槽在主機(jī)板上的 位置及屬性給予一個(gè)硬件地址(例如是I2C地址),并將此硬件地址記錄于配置數(shù) 據(jù)中。由上述可知,步驟S304的動(dòng)作其實(shí)就是要讓系統(tǒng)知道目前要讀取哪一個(gè)內(nèi)
存插槽上的內(nèi)存模塊。
然后,步驟S305為依照硬件地址讀取存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù),并判斷 規(guī)格數(shù)據(jù)的讀取是否發(fā)生錯(cuò)誤。舉例來(lái)說(shuō),假設(shè)內(nèi)存插槽的硬件地址為A0,此硬 件地址A0則記錄在配置數(shù)據(jù)中。若有內(nèi)存模塊插入此內(nèi)存插槽,BI0S便可根據(jù)此 硬件地址A0,通過(guò)系統(tǒng)管理總線(System Management Bus, SMBus)找到此內(nèi)存插槽,并與安插其上的內(nèi)存模塊溝通而讀取規(guī)格數(shù)據(jù)。
詳細(xì)地說(shuō),芯片組可通過(guò)系統(tǒng)管理總線或是rc總線傳輸時(shí)鐘脈沖信號(hào)、數(shù)據(jù)
以及指令(instruction)等。圖4是依照本發(fā)明一實(shí)施例所繪示的內(nèi)存模塊的數(shù) 據(jù)傳輸系統(tǒng)的方塊圖。請(qǐng)參照?qǐng)D4,此系統(tǒng)包括處理單元401、芯片組402及內(nèi)存 模塊404。其中,芯片組402例如是北橋芯片或南橋芯片,其中則包括主控器(master controller) 403;內(nèi)存模塊404中包括受控器(slave controller) 405及電可 擦可編程只讀存儲(chǔ)器(EEPR0M) 406。
處理單元401是用以傳送指令通知芯片組402去讀取規(guī)格數(shù)據(jù)。主控器403 通過(guò)系統(tǒng)管理總線407與受控器405進(jìn)行溝通。所有的指令均由主控器403發(fā)出, 而由受控器405來(lái)接收并回復(fù)數(shù)據(jù)給主控器403。EEPR0M 406是用來(lái)存放規(guī)格數(shù)據(jù)。
芯片組402根據(jù)處理單元401所傳送的指令,通過(guò)系統(tǒng)管理總線407以自內(nèi) 存模塊404的EEPROM 406中讀取規(guī)格數(shù)據(jù)。此時(shí),通過(guò)系統(tǒng)管理總線407,主控 器403將去檢測(cè)受控器405的回應(yīng)訊息。當(dāng)主控器403無(wú)法檢測(cè)到受控器405的回 應(yīng)訊息時(shí),表示內(nèi)存模塊404可能沒(méi)有插入內(nèi)存插槽。因此,受控器405便不會(huì)發(fā) 送回應(yīng)訊息。
請(qǐng)繼續(xù)參照?qǐng)D3,在步驟S305中,當(dāng)無(wú)法讀取到規(guī)格數(shù)據(jù),便判斷讀取發(fā)生 錯(cuò)誤。此時(shí),執(zhí)行步驟S306,設(shè)定配置數(shù)據(jù)中對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的 開(kāi)關(guān)欄位為關(guān)閉,以根據(jù)開(kāi)關(guān)欄位將提供至對(duì)應(yīng)的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉。 舉例來(lái)說(shuō),定義開(kāi)關(guān)欄位為l表示開(kāi)啟;反之,開(kāi)關(guān)欄位為0表示關(guān)閉。這也就是 說(shuō),在步驟S302中,當(dāng)把時(shí)鐘脈沖信號(hào)提供給各個(gè)內(nèi)存插槽時(shí),配置數(shù)據(jù)中的開(kāi) 關(guān)欄位均被設(shè)定為1;而在步驟S306中,配置數(shù)據(jù)中對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的內(nèi)存 插槽的開(kāi)關(guān)欄位將被設(shè)定為0。
在步驟S305中,當(dāng)讀取沒(méi)有發(fā)生錯(cuò)誤時(shí),執(zhí)行步驟S307,判斷規(guī)格數(shù)據(jù)的錯(cuò) 誤檢查碼(checksum)是否正確。若錯(cuò)誤檢查碼不正確,執(zhí)行步驟S306,將配置 數(shù)據(jù)中對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的開(kāi)關(guān)欄位設(shè)定為關(guān)閉。也就是說(shuō),對(duì)規(guī)格 數(shù)據(jù)做錯(cuò)誤檢查碼的檢査,檢查錯(cuò)誤檢査碼是否與預(yù)設(shè)相符。舉例來(lái)說(shuō),假設(shè)SPD[O] + [1]+... +[62] 二SPD[63],表示錯(cuò)誤檢査碼正確;否貝IJ,若SPD
+[1] +... +[62] ^SPD[63],則表示錯(cuò)誤檢査碼不正確。
另一方面,若錯(cuò)誤檢查碼正確,則執(zhí)行步驟S308,檢査所有內(nèi)存模塊上的規(guī)格數(shù)據(jù)是否均被讀取。若仍有規(guī)格數(shù)據(jù)未讀取,則執(zhí)行步驟S304以繼續(xù)讀取其他 內(nèi)存模塊上的規(guī)格數(shù)據(jù),并重復(fù)上述步驟S304 S308,直到所有內(nèi)存模塊上的規(guī) 格數(shù)據(jù)皆讀取完畢為止。
而在步驟S306之后,同樣執(zhí)行步驟S308,檢查所有內(nèi)存模塊上的規(guī)格數(shù)據(jù)是 否均被讀取,直到所有內(nèi)存模塊上的規(guī)格數(shù)據(jù)皆讀取完畢為止。也就是說(shuō),在配置 數(shù)據(jù)中所有的硬件地址讀取完畢后,才執(zhí)行步驟S309。
在步驟S309中,結(jié)束內(nèi)存模塊的初始化程序。當(dāng)讀取存儲(chǔ)在內(nèi)存模塊上的規(guī) 格數(shù)據(jù)發(fā)生錯(cuò)誤時(shí),便將發(fā)生錯(cuò)誤的內(nèi)存模塊對(duì)應(yīng)于配置數(shù)據(jù)的開(kāi)關(guān)欄位設(shè)定為關(guān) 閉。
接下來(lái),步驟S310即根據(jù)配置數(shù)據(jù),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的 時(shí)鐘脈沖信號(hào)。通過(guò)對(duì)應(yīng)的關(guān)閉方式,將對(duì)應(yīng)的寄存器設(shè)定為關(guān)閉,以關(guān)閉提供給 讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)。其中,例如是通過(guò)外圍部件互連(PCI) 組態(tài)、內(nèi)集成電路(I2C)、輸入輸出端口 (I叩ut Output port, 10 port)以及 內(nèi)存映射輸入輸出(Memory Mapped I叩ut Output,顧IO)其中之一的關(guān)閉方式來(lái) 關(guān)閉時(shí)鐘脈沖信號(hào)。關(guān)閉方式記錄于配置數(shù)據(jù)的關(guān)閉方式欄位中。
圖5是依照本發(fā)明一實(shí)施例所繪示的配置數(shù)據(jù)的示意圖。請(qǐng)參照?qǐng)D5,配置數(shù) 據(jù)中包括硬件地址欄位、關(guān)閉方式欄位、寄存器地址欄位、數(shù)值欄位以及開(kāi)關(guān)欄位。 其中,硬件地址欄位記錄內(nèi)存插槽的硬件地址,關(guān)閉方式欄位記錄關(guān)閉內(nèi)存插槽的 時(shí)鐘脈沖信號(hào)的關(guān)閉方式,寄存器地址欄位記錄關(guān)閉方式所對(duì)應(yīng)的寄存器的地址及 其位元,數(shù)值欄位記錄寄存器地址的位元所要寫(xiě)入的數(shù)值,開(kāi)關(guān)欄位記錄對(duì)應(yīng)的內(nèi) 存插槽為關(guān)閉或開(kāi)啟。
另外,關(guān)閉方式欄位定義為0代表PCI組態(tài)關(guān)閉方式、定義為1代表I2C關(guān)閉 方式、定義為2代表I0 port關(guān)閉方式、定義為3代表MMI0關(guān)閉方式。數(shù)值欄位 為根據(jù)所使用的時(shí)鐘脈沖產(chǎn)生(控制)器來(lái)定義寫(xiě)入寄存器地址的位元的數(shù)值,例 如關(guān)閉方式為PCI組態(tài),因此定義開(kāi)啟的數(shù)值(Vlaue.0n)為0,關(guān)閉的數(shù)值 (Vlaue.0ff)則定義為1。而開(kāi)關(guān)欄位例如定義1為開(kāi)啟時(shí)鐘脈沖信號(hào),定義O 為關(guān)閉時(shí)鐘脈沖信號(hào)。
以硬件地址欄位"AO"而言。在判斷讀取失敗后,即將開(kāi)關(guān)欄位設(shè)定為0 (關(guān) 閉)。接著,根據(jù)開(kāi)關(guān)欄位的設(shè)定,將對(duì)應(yīng)的數(shù)值欄位所定義的關(guān)閉的數(shù)值1(Vlaue.0ff)寫(xiě)入對(duì)應(yīng)的寄存器地址"8Ch"的位元"0"內(nèi)。接著,通過(guò)關(guān)閉方 式欄位中選擇的PCI組態(tài)關(guān)閉方式,將提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖 信號(hào)關(guān)閉。
詳細(xì)地說(shuō),請(qǐng)繼續(xù)參照?qǐng)D5,首先設(shè)定一變數(shù)"temp",用以存放數(shù)值欄位定 義的數(shù)值(Vlaue.0n、 Vlaue. Off)。假設(shè)開(kāi)關(guān)欄位等于1 (開(kāi)啟),則"terop" 等于"Vl維.0n";否則,"terap"等于"Vlaue. Off"。接著,根據(jù)對(duì)應(yīng)的關(guān)閉 方式欄位選擇關(guān)閉方式。
以開(kāi)關(guān)欄位為關(guān)閉而言,則依據(jù)對(duì)應(yīng)的數(shù)值欄位,將"temp"設(shè)定為所定義 的"Vlaue. Off"。當(dāng)關(guān)閉方式欄位定義為0時(shí),通過(guò)PCI組態(tài)關(guān)閉方式將"te即" 之值(temp=l),寫(xiě)入PCI組態(tài)空間的寄存器地址。當(dāng)關(guān)閉方式欄位定義為1時(shí), 通過(guò)fC關(guān)閉方式將"temp"之值(temp二0)寫(xiě)入對(duì)應(yīng)的寄存器地址。當(dāng)關(guān)閉方式 欄位定義為2時(shí),通過(guò)10 port關(guān)閉方式將"temp"之值(temp=l)寫(xiě)入對(duì)應(yīng)的寄 存器地址。當(dāng)關(guān)閉方式欄位定義為3時(shí),通過(guò)MMIO關(guān)閉方式將"te即"之值(te即i) 寫(xiě)入對(duì)應(yīng)的寄存器地址。以此類推。
在將提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉后,請(qǐng)繼續(xù)參照?qǐng)D 3,步驟S311為繼續(xù)其他開(kāi)機(jī)自我測(cè)試,以將操作系統(tǒng)載入。因此,便可將不必要 的時(shí)鐘脈沖信號(hào)關(guān)閉。
綜上所述,本發(fā)明的內(nèi)存插槽時(shí)鐘脈沖的控制方法至少具有下列優(yōu)點(diǎn)
1. 可自動(dòng)將提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉,以降低電 磁干擾。
2. 關(guān)閉不必要的時(shí)鐘脈沖信號(hào),以節(jié)省功率消耗。
雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何所屬技 術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許更動(dòng)與潤(rùn)
飾,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定的為準(zhǔn)。
權(quán)利要求
1. 一種內(nèi)存插槽時(shí)鐘脈沖的控制方法,適用于控制提供給多個(gè)內(nèi)存插槽的一時(shí) 鐘脈沖信號(hào),其中各該些內(nèi)存插槽適于插入一內(nèi)存模塊,該方法包括下列步驟提供該時(shí)鐘脈沖信號(hào)至各該些內(nèi)存插槽;讀取存儲(chǔ)在各該些內(nèi)存模塊上的一規(guī)格數(shù)據(jù),并判斷該規(guī)格數(shù)據(jù)的讀取是否 發(fā)生錯(cuò)誤;以及當(dāng)讀取發(fā)生錯(cuò)誤時(shí),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖
2. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,讀取存儲(chǔ)在各該些內(nèi)存模塊上的該規(guī)格數(shù)據(jù)的步驟包括讀取該些內(nèi)存插槽的一配置數(shù)據(jù),該配置數(shù)據(jù)記錄各該些內(nèi)存插槽的一硬件 地址;以及依照該硬件地址讀取存儲(chǔ)在各該些內(nèi)存模塊上的該規(guī)格數(shù)據(jù)。
3. 如權(quán)利要求2所述的時(shí)鐘脈沖控制方法,其特征在于,關(guān)閉提供給讀取發(fā)生 錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)的步驟包括-設(shè)定該配置數(shù)據(jù)中對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的該內(nèi)存插槽的一開(kāi)關(guān)欄位為關(guān)閉;以及根據(jù)該配置數(shù)據(jù),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)。
4. 如權(quán)利要求3所述的時(shí)鐘脈沖控制方法,其特征在于,在設(shè)定該配置數(shù)據(jù)中 對(duì)應(yīng)于讀取發(fā)生錯(cuò)誤的該內(nèi)存插槽的該開(kāi)關(guān)欄位為關(guān)閉的步驟之前還包括執(zhí)行該內(nèi)存模塊的一初始化程序,而在該初始化程序執(zhí)行的過(guò)程中,設(shè)定該配置數(shù)據(jù)。
5. 如權(quán)利要求4所述的時(shí)鐘脈沖控制方法,其特征在于,根據(jù)該配置數(shù)據(jù),關(guān) 閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)的步驟包括在該初始化程序執(zhí)行完畢后,才根據(jù)該配置數(shù)據(jù),關(guān)閉提供給讀取發(fā)生錯(cuò)誤 的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)。
6. 如權(quán)利要求2所述的時(shí)鐘脈沖控制方法,其特征在于,關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)的步驟包括通過(guò)外圍部件互連組態(tài)、內(nèi)集成 電路、輸入輸出端口以及內(nèi)存映射輸入輸出其中之一的一關(guān)閉方式關(guān)閉該時(shí)鐘脈沖 信號(hào)。
7. 如權(quán)利要求6所述的時(shí)鐘脈沖控制方法,其特征在于,該關(guān)閉方式包括記錄 于該配置數(shù)據(jù)的一關(guān)閉方式欄位中。
8. 如權(quán)利要求6所述的時(shí)鐘脈沖控制方法,其特征在于,關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)的步驟包括通過(guò)設(shè)定該關(guān)閉方式所對(duì)應(yīng)的一寄存器為關(guān)閉,以關(guān)閉提供給讀取發(fā)生錯(cuò)誤 的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)。
9. 如權(quán)利要求8所述的時(shí)鐘脈沖控制方法,其特征在于,該關(guān)閉方式所對(duì)應(yīng)的 該寄存器的地址包括記錄于該配置數(shù)據(jù)的一寄存器地址欄位中。
10. 如權(quán)利要求2所述的時(shí)鐘脈沖控制方法,其特征在于,該硬件地址為根據(jù) 該些內(nèi)存插槽的硬件設(shè)計(jì)而設(shè)定。
11. 如權(quán)利要求2所述的時(shí)鐘脈沖控制方法,其特征在于,該配置數(shù)據(jù)存儲(chǔ)于基本輸入輸出系統(tǒng)。
12 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,還包括 當(dāng)讀取沒(méi)有發(fā)生錯(cuò)誤時(shí),判斷該規(guī)格數(shù)據(jù)的一錯(cuò)誤檢査碼是否正確;以及 當(dāng)該錯(cuò)誤檢査碼不正確時(shí),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)。
13. 如權(quán)利要求12所述的時(shí)鐘脈沖控制方法,其特征在于,判斷該規(guī)格數(shù)據(jù)的 該錯(cuò)誤檢査碼是否正確的步驟之后,還包括當(dāng)該錯(cuò)誤檢査碼正確時(shí),檢查各該些內(nèi)存模塊上的該規(guī)格數(shù)據(jù)是否均被讀取, 若仍有該規(guī)格數(shù)據(jù)未讀取,則繼續(xù)讀取其他內(nèi)存模塊上的該規(guī)格數(shù)據(jù),并重復(fù)上述 步驟,直到所有內(nèi)存模塊上的該規(guī)格數(shù)據(jù)均讀取完畢為止。
14. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)的步驟包括直接控制一時(shí)鐘脈沖產(chǎn)生器關(guān)閉該時(shí)鐘脈沖信號(hào)。
15. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,關(guān)閉提供給讀取發(fā)生錯(cuò)誤的該些內(nèi)存插槽的該時(shí)鐘脈沖信號(hào)的步驟包括通過(guò)一芯片組關(guān)閉該時(shí)鐘脈沖信號(hào)。
16. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,該規(guī)格數(shù)據(jù)包括存 儲(chǔ)于該內(nèi)存模塊上的一 電可擦可編程只讀存儲(chǔ)器。
17. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,該內(nèi)存模塊包括雙 列直插式存儲(chǔ)器模塊。
18. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,該規(guī)格數(shù)據(jù)為序列存在檢測(cè)數(shù)據(jù)。
19. 如權(quán)利要求1所述的時(shí)鐘脈沖控制方法,其特征在于,該規(guī)格數(shù)據(jù)包括該 內(nèi)存模塊的種類、容量、速度、所需電壓。
全文摘要
本發(fā)明公開(kāi)了一種內(nèi)存插槽時(shí)鐘脈沖的控制方法。此方法首先提供時(shí)鐘脈沖信號(hào)給所有內(nèi)存插槽。接著,讀取存儲(chǔ)在內(nèi)存模塊上的規(guī)格數(shù)據(jù),并判斷規(guī)格數(shù)據(jù)的讀取是否發(fā)生錯(cuò)誤。當(dāng)讀取發(fā)生錯(cuò)誤時(shí),關(guān)閉提供給讀取發(fā)生錯(cuò)誤的內(nèi)存插槽的時(shí)鐘脈沖信號(hào)。因此,本發(fā)明能夠根據(jù)內(nèi)存模塊的運(yùn)行狀況,適時(shí)地將提供給內(nèi)存插槽的時(shí)鐘脈沖信號(hào)關(guān)閉,而降低電磁干擾。
文檔編號(hào)G06F1/10GK101311870SQ20071010409
公開(kāi)日2008年11月26日 申請(qǐng)日期2007年5月22日 優(yōu)先權(quán)日2007年5月22日
發(fā)明者盧盈志 申請(qǐng)人:英業(yè)達(dá)股份有限公司