專利名稱::降低計算機系統中i/o功率的方法和裝置,以及計算機系統的制作方法
技術領域:
:本發明涉及計算機技術,更具體地說,涉及降低計算機系統中I/O功率的技術。
背景技術:
:在計算機設計領域,人們不斷追求的目標是降低芯片級到系統級的功率。隨著功耗的增加,為系統供電和進行冷卻的成本以更高的速率增加。計算機系統的功率包括核心功率和I/O(輸^/輸出)功率。目前,具有許多降低計算機系統功率的方法,例如芯片級設計或選擇低功率芯片組;系統級通過DVFS(DynamicVoltageandFrequencyScaling,動態電壓和頻率調節)動態降^f氐系統的工作電壓和工作頻率;編譯級選擇低功率指令;OS(操作系統)級進行任務調度,在系統閑置時關閉一些功能單元;網絡級NIC(NetworkInterfaceCard,網卡)在不工作時切換到待機或休眠模式。具體的例子包括Intel的按需配電(DemandBasedswitching,DBS)功率管理系統,其具有一個核心功率調整邏輯,它能夠根據CPU的工作負荷調整核心的電壓,IntelDBS的具體細節參見Intelwhitepaper:AddressingPowerandThermalChallengesintheDatacenter,www.intel.com/products/services/intelsolutionservices/success/techdocs/wp/thermal.pdf。但是,Intel的DBS功率管理系統著眼于處理器本身而沒有有效地降低I/O功耗。例如,在MaheshMamidipaka,DanHirschberg,NikilDutt的文章"LowPowerAddressEncodingusingSelf-OrganizingLists",Proceedingsofthe2001internationalsymposiumonLowpowerelectronicsanddesignISLPED'01中報道,對于已經為低功耗優化過的系統,1/0功率與系統總功率的比例在10-80%之間,通常為50%。因此,需要在降低計算機系統核心功率的同時降低計算機系統的I/O功率。在M.Madhu,V.Srinivasa和V.Kamakoti的文章"DynamicCodingTechniqueForLow-PowerDataBus",ProceedingoftheIEEEComputerSocietyAnnualSymposiumonVLSI,2003中公開了一種降低計算機系統的I/0功率的方法,其特征是根據前次數據和當前數據的特征分布,計算最小漢明(hamming)距離的碼型用于傳輸。由此可見,該方法需要采用動態編碼方案對數據進行編碼,并需要實時監視和比較前次數據和當前數據,因此開銷大,效率低。因此,需要一種能夠有效地降低計算機系統中的I/O功率的方法。
發明內容為了解決上述現有技術中存在的問題,本發明提供了降低計算機系統中I/O功率的方法,降低計算機系統中1/0功率的裝置,以及計算機系統。根據本發明的一個方面,提供了一種降低計算機系統中1/0功率的方法,包括以下步驟緩存要發送到總線上的各^t據;對緩存的各路數據按照編碼規則進行n位至n+m位編碼,其中n和m均是大于等于1的整數,所述編碼規則用于降低碼型的切換頻率;以及將編碼的各路數據發送到所述總線上。根據本發明的另一個方面,提供了一種降低計算機系統中I/O功率的裝置,包括原始數據緩存器,用于緩存要發送到總線上的各路數據;編碼器,對緩存的各i^t據按照編碼規則進行n位至n+m位編碼,其中n和m均是大于等于1的整數,所述編碼規則用于降低碼型的切換頻率;以及編碼數據緩存器,用于緩存編碼的各皿據,以將其發送到所述總線上。根據本發明的另一個方面,提供了一種計算機系統,包括CPU;I/O設備;用于在CPU和I/O設備之間傳輸數據的總線;以及上述降低計算機系統中!/0功率的裝置。相信通過以下結合附圖對本發明具體實施方式的說明,能夠使人們更好地了解本發明上述的特點、優點和目的,其中圖1示出了根據本發明的一個實施例的降低計算機系統中I/O功率的方法的流程對比圖3示出了根據本發明的實施例的對數據進行n位至n+m位編碼的一個實例;圖4示出了根據本發明的實施例的對數據進行n位至n+m位編碼的另一個實例;圖5示出了根據本發明的一個實施例的降低計算機系統中I/O功率的裝置的方框圖6示出了根據本發明的實施例的降低計算機系統中I/O功率的裝置的硬件結構示意圖;以及圖7示出了根據本發明的一個實施例的計算機系統的方框圖。具體實施例方式為了便于對后面實施例的理解,首先簡要介紹一下影響計算機系統中1/0功率的幾個因素。眾所周知,1/0功率可以由如下的z^式(1)所限定Pi/o=CLNswVDD2.f(1)其中,CL是等效電容,Nsw是切換動作(switchingaction)與系統時鐘的比率,即切換頻率,Vmj是工作電壓,f是工作頻率。也就是說,I/O功率正比于工作電壓Vdd的平方,并正比于切換頻率Nsw。本發明將致力于通過降低切換頻率來降低i/o功率,具體地說,由于系統時鐘通常保持不變,本發明將通過降低切換動作來降低i/o功率。圖1示出了根據本發明的一個實施例的降低計算機系統中I/O功率的方法的流程圖。在描述圖1的方法實施例之前,首先參考圖2和表1說明通過對要發送到總線上的數據進行臨時編碼來降低切換頻率從而降低I/O功率的原理。次數,即切換次數的對比圖。如圖2所示,對于一個8位數據10101010,其切換次數為7次,而對于與該8位數據對應的10位數據1111101110,其切換次數為3次。因此,如果將該8位lt據編碼為該10位數據,則可以將最大切換次數從7次降低到3次,從而可以減低切換頻率,進而降低I/O功率。下面的表1詳細示出了8位空間與10位空間對照的碼^J^切換次數。表l<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>下面詳細描i^1的碼表的生成規則和流程。(1)將需要轉換的碼空間(8位)所有的碼字按照切換次數的高低排列;(2)將目標碼空間(10位)所有的碼字按照切換次數的高低排列;(3)在兩個順序排列的碼表之間做一一映射,映射的原則是(3.1)高切換的對應高切換的碼,低切換的對應低切換的碼;(3.2)8位空間轉換到IO位空間后,切換率不能提高,也就是說,8位的總切換次數(比如表1中的896次)必須大于等于映射后的10位總切換次數(比如表1中的654次);(3.3)相同切換次數的碼,可以存在任意的對應關系,例如l個切換6次的8位碼(比如11010101),可以對應變換成一個任意的切換3次的10位碼。中可以計算得出,8位空間的總切換次數為896,然而896這個數值只是用來統計平均意義上的功耗性能增益,當輸入的數據集具有其它特征的時候,這個數值可能會變高也可能會變低。IO位空間的總切換次數為654,這個數值是10位空間的最優值,因為切換次數小于等于2的都被包括在這個碼表中了,切換次數等于3的10位碼中的一部分被包括在表1中,另外還有一些沒有被包括在表l中(也就是沒有被使用),但是不可能將654這個總切換次數繼續減小。因此,如果將8位數據編碼為10位數據,可以將總的切換次數從896降低到654,從而可以將I/O功率降低27%。另外,由于本發明的實現需要一定開銷,如果扣去開銷,I/O功率可以降低約20%。此外,本領域的普通技術人員應該理解,以上雖然以8位空間至10位空間的轉換為例說明了本發明的編碼規則,但A^1中的編碼規則并不構成8位空間到IO位空間的唯一編碼規則,而僅僅是優選實施例之一,在保證將總切換此處降低位654次的條件下,還可以選擇其它的編碼規則,比如使用其它的切換次數等于3的編碼與8位空間中的編碼進行對應。此夕卜,也可以利用上述編碼規則進行任何n位至n+m位的編碼,其中n和m均是大于等于1的整數,從而通過降低切換頻率來降低計算機系統的I/O功率。下面就結合附圖對本發明的各個優選實施例進行詳細的說明。降低計算機系統中I/O功率的方法圖1示出了根據本發明的一個實施例的降低計算機系統中I/O功率的方法的流程圖。如圖1所示,首先,可選地,在步驟101,監視計算機系統中總線上的工作負荷。具體地,可以利用總線監視器或本領域的技術人員公知的任何模塊或技術,監視總線上的工作負荷,例如,通過計算機的操作系統不斷讀取寄存器中數據排隊情況,從而獲得有關總線工作情況的信息,來監視總線上的工作負荷。此外,也可以當需要在CUP和I/O設備之間傳輸數據時,即時獲得總線上的工作負荷,本發明對此沒有任何限制,只要能夠在需要的時候獲取總線上的工作負荷情況即可。可以理解,這里所述的I/O設備包括但不限于顯示設備、如只讀存儲器和隨MM儲器等的系統存儲器、硬盤、光驅、如鼠標和鍵盤等的輸入設備、如路由器等的網絡設備、以及其他公知的或未來開發的設備,本發明對i/o設備沒有任何限制,只要是通過總線與CPU進行輸入/輸出的設備都可以作為這里的I/0設備。應該理解,上述對總線上的工作負荷進行監視的步驟只是本實施例的可選步驟,其目的是更好地平衡總線輸入/輸出數據的效率與I/O功率之間的關系,本實施例也可以不對總線進行監視,而直接進行下面的步驟。接著,在步驟102,緩存要發送到所述總線上的各路數據。在本實施例中,可以使用計算機系統中的任何存儲器來緩存要發送到總線上的各路數據,例如使用移位寄存器來進行緩存,本發明對此沒有任何限制。接著,在步驟103,對步驟102中緩存的各iM:據根據n位至n+m位的編碼規則進行編碼,其中n和m均是大于等于1的整數。這里的編碼規則即是上述參考圖2和表1描述的編碼規則,利用該編碼規則可以降^f氐碼型的切換頻率。下面將參考圖3和圖4并以n=8,m=2為例對本實施例的編碼過禾呈進行詳細描述。圖3示出了根據本發明的實施例的對數據進行8位至10位編碼的一個實例。如圖3所示,當總線不忙時,將待發送到總線上的四路數據M路8位的形式緩存在原始數據緩存器中,然后利用四路數據共享的編碼器將各路8位數據分別編碼為10位數據,并將編碼后的10位數據緩存在編碼數據緩存器中。具體地,該共享的編碼器可以利用預先存儲的如圖3所示的碼表,將各路8位數據編碼為與其對應的IO位數據。應該理解,雖然這里示例性示出了四路數據,但是本發明并不限于此,本發明可以根據具體應用進行改變。圖4示出了根據本發明的實施例的對數據進行8位至10位編碼的另一個實例。在該實例中,各路數據具有自己的編碼器,編碼過程與上述參考圖3的實例相同,在此不再贅述。應該理解,雖然這里示例性示出了每路數據具有單獨的編碼器,但是本發明并不限于此,本發明可以根據實際需要為任意路數據提餘f壬意個編碼器,只要能夠將各路的8位數據編碼為10位數據即可。此夕卜,應該理解,雖然這里才艮據8位至10位編碼描述了本發明的編碼規則,但是本發明并不限于此,本發明可以將任意的n位數據編碼為n+m位數據,只要能夠根據上述編碼規則降低切換頻率即可。在本實施例中,可選地,可以在步驟103中對緩存的各皿據進行編碼的步驟設定一個閾值,該閣值可以是在步驟101中所監視到的工作負荷,例如,可以將該閾值"&定為0.6,即將總線上的工作負荷大于等于60%的情況設定為總線繁忙,將總線上的工作負荷小于60%的情況設定為不忙。可以理解,0.6這個閾值只是一個示例,可以根據實際情況將總線忙與不忙的閾值設定為O-l之間的任何值,本發明對閾值的設定沒有任何限制。也就是說,當監^f見到總線上的工作負荷低于上述闊值,例如0.6時,即當總線不忙時,在步驟103中對已緩存的、要發送到總線上的各^^t據進行上述n位至n+m位編碼,本發明對此沒有任何限制。此外,在本實施例中,可以將總線上的工作負荷設定為若干個區間,例如80-100%、60-80%、40-60%、20-40%、0-20%,并分別為不同的工作負荷水平,選擇不同的編碼規則。例如如果在步驟IOI中監視到總線上的工作負荷在80-100°/。之間,則選擇8位至10位的編碼規則;如果在步驟101中監視到總線上的工作負荷在60-80%之間,則選擇8位至12位的編碼規則;如果在步驟IOI中監視到總線上的工作負荷在40-60%之間,則選擇8位至14位的編碼規則;如果在步驟101中監視到總線上的工作負荷在20-40%之間,則選擇8位至16位的編碼規則;如果在步驟101中監視到總線上的工作負荷在0-20%之間,則選擇8位至18位的編碼規則。應該理解,上述工作負荷區間和相應的編碼規則只是示例性的,本發明可以根據實際需要i殳定任意的工作負荷區間和相應的編碼規則。最后,在步驟104,將編碼的各,據進行緩存,并將緩存的數據發送到總線上,并由總線將編碼的數據傳送給CPU或I/0設備。在本實施例中,可以使用計算機系統中的任何存儲器來緩存要發送到總線上的各,據,例如使用移位寄存器來進行緩存,本發明對此沒有任何限制。此外,本實施例的方法還可以在步驟103進行上述編碼之前,當在步驟IOI中所監視到總線上的工作負荷低于一閾值時,將上述編碼規則通知給CPU側I/O控制器和/或I/Oi殳備側I/O控制器。CPU側I/O控制器和/或I/O設備側I/O控制器根據接收到的編碼規則,控制相應的編碼器進行步驟103中的編碼。此外,在將來自總線的編碼的n+m位數據發送給CPU或I/O設備之前,本實施例的方法還包括根據上述編碼規則,將編碼的n+m位數據解碼為n位數據,解碼的過程與上述編碼的過程相反,即首先將來自總線的編碼的各路n+m位數據緩存,然后根據上述編碼規則將緩存的n+m位數據解碼為n位數據,然后將解碼的各路n位數據緩存,最后將緩存的n位數據發送給CPU或I/O設備。此外,在本實施例中,上述編/解碼可以通過石更件,例如集成電路等實現。具體地,可以將編/解碼器直接集成在計算機系統中,或者也可以將編/解碼器集成在計算機系統的i/o控制器中。此外,也可以通過軟件實現,所謂的軟件實現,就是CPU在輸出數據的時候,經由軟件程序將輸出的數據進行編/解碼后輸出。本發明對此沒有任何限制,只要能夠在n位數據和n+m位數據之間進行編/解碼即可。再次強調,在本實施例中,雖然在步驟103進行編碼之前在步驟101對總線上的工作負荷進行監視,但是步驟101的監視過程是可選的,其目的是為了平衡數據輸入/輸出效率與1/0功率之間的關系,也可以不對總線進行監^L,而直接緩存要發送到總線上的各#據,然后進4亍編碼。通過使用本實施例的降低計算機系統中1/0功率的方法,可以根據計算機系統的總線上的工作負荷水平,有效地降低i/o功率,從而極大地節約了能源。本發明的發明人在仿真系統中實現了一個8位-10位編/解碼系統。具體地,發明人完成了一個編/解碼器的硬件設計,然后,在仿真軟件中,模擬隨機輸入數據,計算編/解碼器的功耗和未編碼狀態下數據輸出造成的IO功耗(均為仿真過程),所添加的編/解碼電路造成的功耗約占IO輸出功耗的5%左右,具體的數值和仿真軟件,系統輸入輸出,編/解碼器i殳計等都有關系。因此,相比于通過上述編碼獲得的27%的I/O功率降寸氐,最終可以獲得大于20%的凈增益。降低計算機系統中I/O功率的裝置在同一發明構思下,圖5示出了根據本發明的另一個實施例的降低計算機系統中I/O功率的裝置的方框圖。下面就結合該圖,對本實施例進行描述。對于那些與前面實施例相同的部分,適當省略其說明。如圖5所示,本實施例的降低計算機系統中I/O功率的裝置600包括總線監視器601,用于監浮見計算機系統中總線上的工作負荷。具體地,總線監視器601可以利用本領域的技術人員公知的任何模塊或技術,監視總線上的工作負荷,例如,通過計算機的操作系統不斷讀取寄存器中數據排隊情況,從而獲得有關總線工作情況的信息,來監視總線上的工作負荷。此外,總線監視器601也可以當需要在CUP705和I/O設備800之間傳輸數據時,即時獲得監視總線上的工作負荷,本發明對此沒有任何限制,只要能夠在需要的時候獲取總線上的工作負荷情況即可。順便提及,上M總線上的工作負荷進行監^L的總線監視器601只是本實施例的裝置600可選部件,其目的是更好地平衡總線輸yV/輸出數據的效率與I/O功率之間的關系,本實施例也可以不對總線進行監視,即裝置600不包括總線監視器601。在本實施例中,I/O設備800包括但不限于顯示設備、如只讀存儲器和隨^M!"取存儲器等的系統存儲器、硬盤、光驅、如鼠標和鍵盤等的輸入設備、如路由器等的網絡設備、以及其他公知的或未來開發的設備,本發明對I/O設備沒有任何限制,只要是通過總線與CPU701進行輸/V/輸出的設備都可以作為這里的I/O設備800。本實施例的降低計算機系統中I/O功率的裝置600還包括原始數據緩存器610和/或630,其對要發送到總線上的各i^lt據進行緩存。在本實施例中,原始數據緩存器610和/或630可以是計算機系統中的任何存儲器,例如移位寄存器,本發明對此沒有任何限制。此外,本實施例的降低計算機系統中I/O功率的裝置600通過將n位至n+m位的編碼規則通知給CPU側編/解碼器615和/或I/O設備側編/解碼器635,來進行n位至n+m位編碼,其中n和m均是大于等于1的整數。此外,也可以將n位至n+m位的編碼規則通知給CPU側I/0控制器605和/或I/O設備側I/O控制器625。CPU側I/O控制器605和/或I/O設備側I/O控制器625,在接收到上述編碼規則后,控制相應的編/解碼器615和/或635對已緩存在原始數據緩存器610和/或630中的數據進行n位至n+m位編碼。這里描述的編碼規則即是上述參考圖2和表1描迷的編碼規則,利用該編碼規則可以降低碼型的切換頻率。在本實施例中,可選地,可以為編/解碼器615和/或635是否對緩存的各^t據進行編碼設定一個閾值,該閾值可以是總線監視器601監視到總線上的工作負荷,例如,可以將值設定為0.6,即將總線上的工作負荷大于等于60%的情況設定為總線繁忙,將總線上的工作負荷小于60%的情況設定為不忙。可以理解,0.6這個閾值只是一個示例,可以根據實際情況將總線忙與不忙的閾值設定為0-1(即大于等于0,并且小于等于1)之間的任何值,本發明對閾值的設定沒有任何限制。本實施例的編/解碼器615和/或635的編碼過程與上述實施例中參考圖3和圖4描述的編碼過程類似,在此省略其說明。在編/解碼器615和/或635進行編碼后,將編碼的各路數據緩存在編碼數據緩存器620和/或640中。然后,將緩存在編碼教:據緩存器620和/或640中的數據發送到總線上,并由總線將編碼的數據傳送給CPU701或I/O設備800。在將來自總線的編碼的n+m位數據發送給CPU701或I/O設備800之前,本實施例的編/解碼器615和/或635根據上述編碼規則,將編碼的n+m位數據解碼為n位數據,解碼的過程與上述實施例中參考圖3和圖4描述的編碼過程相反,即首先利用編碼數據緩存器620和/或640將來自總線的編碼的各路n+m位數據緩存,然后才艮據上述編碼規則將^存的n+m位數據解碼為n位數據,然后將解碼的各路n位數據緩存在原始數據緩存器610和/或630中,最后將緩存的n位數據發送給CPU701或I/O設備800。可選地,在本實施例中,可以將總線上的工作負荷設定為若干個區間,例如80-100%、60-80%、40-60%、20-40%、0-20%,并分別為不同的工作負荷水平,選擇不同的編碼規則。例如如果總線監視器601監視到總線上的工作負荷在80-100%之間,則選擇8位至IO位的編碼規則;如果總線監視器601監視到總線上的工作負荷在60-80%之間,則選擇8位至12位的編碼規則;如果總線監視器601監視到總線上的工作負荷在40-60%之間,則選擇8位至14位的編碼規則;如果總線監視器601監視到總線上的工作負荷在20-40%之間,則選擇8位至16位的編碼規則;如果總線監視器601監視到總線上的工作負荷在0-20%之間,則選擇8位至18位的編碼規則。應該理解,上述工作負荷區間和相應的編碼規則只是示例性的,本發明可以根據實際需要設定任意的工作負荷區間和相應的編碼規則。此外,在本實施例中,上述編/解碼器615和/或635可以通過硬件,例如集成電路等實現。具體地,可以將編/解碼器615和/或635直接集成在計算機系統中,或者也可以將編/解碼器615和/或635集成在計算機系統的1/0控制器中。此外,也可以通過軟件實現,所謂的軟件實現,就是CPU在輸出數據的時候,經由軟件程序將輸出的數據進行編/解碼后輸出。本發明對此沒有任何限制,只要能夠在n位數據和n+m位數據之間進行編/解碼即可。應該理解,在本實施例中,雖然在編/解碼器615和/或635進行編碼之前利用總線監視器601對總線上的工作負荷進行監視,但是總線監視器601是可選的,其目的是為了平衡數據輸"輸出效率與I/O功率之間的關系,也可以直接緩存要發送到總線上的各路數據,然后進行編碼。下面參考圖6更加詳細地描述本實施例的降低計算機系統中I/O功率的裝置600的硬件結構與實現過程。如圖6所示,實際的硬件電路主要包括四個模塊移位寄存器陣列A,8位-10位編碼器,移位寄存器陣列B以^^控制邏輯。這里以圖3和4所示的4#據為例,則移位寄存器陣列A為8x4的移位寄存器矩陣,移位寄存器陣列B為10x4的移位寄存器矩陣,每個移位寄存器可以向右或者向下移位數據,由控制邏輯和移位計數器來控制具體的操作。首先,從CPU傳來的數據(8位)在移位寄存器陣列A的橫向移位計數器的控制下向右位移,當橫向移位計數器計滿8個數據時,數據在縱向移位計數器的控制下向下移出,則輸出的數據就是待編碼數據。然后,8位-10位編碼器將接收到的待編碼數據轉換成10位的碼輸出至移位寄存器陣列B,在縱向移位計數器的控制下依次往下方移動,當縱向移位計數器計滿4個數據時,在^f黃向移位計數器的控制下,依次向右移出,移出的數據輸送至管腳發送到總線。用于解碼的石更件結構與上述編碼的多更件結構類似,只是先利用10x4的移位寄存器矩陣緩存待解碼的IO位數據,然后將待解碼的數據解碼為8位數據,然后將解碼后的數據移位緩存在8x4的移位寄存器矩陣中輸出。應該理解,圖6所示的硬件結構只是本實施例的降低計算機系統中I/O功率的裝置600的一個實例,本發明并不限于此,可以通過任何現有或將來開發的硬件結構的組合來實現本實施例的降低計算機系統中I/O功率的裝置600,只要能夠通過裝置600對緩存的各^t據進行n位至n+m位編/解碼,從而有效地降低切換頻率,進而降低i/o功率即可。通過使用本實施例的降低計算機系統中I/O功率的裝置600,可以根據計算機系統的總線上的工作負荷水平,有效地降低i/o功率,從而極大地節約了能源。例如,本發明的發明人通過仿真系統實現8位-10位編/解碼系統計算,所添加的編/解碼電路造成的功耗約占IO輸出功耗的5%左右,相比于通過上述編碼獲得的27%的1/0功率降低,最終可以獲得大于20%的凈增益。計算機系統在同一發明構思下,圖7示出了根據本發明的另一個實施例的計算機系統的方框圖。下面就結合該圖,對本實施例進行描述。對于那些與前面實施例相同的部分,適當省略其說明。如圖7所示,本實施例的計算機系統700包括中央處理器(CPU)701;1/O控制器708;系統總線710,用于在CPU701和1/0設備之間傳輸數據;以及通過I/O控制器708和系統總線710與CPU701相連接的I/O設備,1/0設備包括但不限于通過顯示適配器709連接的顯示設備721、系統存儲器702、通過硬盤控制器711連接的硬盤716、通過光盤控制器712連接的光驅717、通過串行/并行端口713連接的鼠標718和鍵盤719等輸入設備、通過網,口714連接的路由器720等網絡設備、以及公知的或未來開發的其他設備715。其中,1/0控制器708包括上述降低計算機系統中I/O功率的裝置600,用于在所述系統總線710的工作負荷低于一閾值時降低所述計算機系統700的I/O功率.其中,系統存儲器702包括只讀存儲器(ROM)703和隨M取存儲器(RAM)705。只讀存儲器703中包含計算機的基本輸入輸出系統(BIOS)704。隨;tM^:^儲器705中包含已加載的操作系統706和應用程序708。通過使用本實施例的計算機系統700,可以才艮據計算機系統700的總線上的工作負荷水平,有效地降低i/o功率,從而極大地節約了能源。例如,本發明的發明人通過仿真系統實現8位-10位編/解碼系統計算,所添加的編/解碼電路造成的功耗約占IO輸出功耗的5%左右,相比于通過上述編碼獲得的27%的I/O功率降低,最終可以獲得大于20%的凈增益。以上雖然通過一些示例性的實施例對本發明的降低計算機系統中I/O功率的方法,降低計算機系統中I/O功率的裝置,以及計算機系統進行了詳細的描述,但是以上這些實施例并不是窮舉的,本領域技術人員可以在本發明的精神和范圍內實現各種變化和修改。因此,本發明并不限于這些實施例,本發明的范圍僅由所附權利要求為準。權利要求1.一種降低計算機系統中I/O功率的方法,包括以下步驟緩存要發送到總線上的各路數據;對緩存的各路數據按照編碼規則進行n位至n+m位編碼,其中n和m均是大于等于1的整數,所述編碼規則用于降低碼型的切換頻率;以及將編碼的各路數據發送到所述總線上。2.根據權利要求1所述的方法,還包括在進行所述編碼之前,監視所述計算機系統中總線上的工作負荷,并且在監視到所述總線上的工作負荷低于一閾值時,對緩存的各iWt據進行所述編碼。3.根據權利要求1所述的方法,還包括在接收到來自所述總線的編碼的n+m位數據后,才艮據所述編碼規則,將所述編碼的n+m位數據解碼為n位數據。4.根據權利要求3所述的方法,其中,所述編/解碼通過多更件實現。5.根據權利要求3所述的方法,其中,所述編/解碼通過軟件實現。6.根據權利要求2所述的方法,其中,所述監視總線上的工作負荷的步驟包括當需要在CUP和I/O設備之間傳輸數據時即時獲取所述總線上的工作負荷。7.根據權利要求2所述的方法,還包括根據所監視到的總線上的工作負荷水平,選擇相應的編碼規則。8.根據權利要求3所述的方法,其中,所述多^t據的編/解碼通過各自的編/解碼器進行。9.根據權利要求3所述的方法,其中,所述多皿據的編/解碼通過共享的編/解碼器進行。10.根據權利要求l-9中任意一項所述的方法,其中,所述編碼規則包括n位空間與n+m位空間對照的碼表,在所述碼表中n位空間的所有碼字與n+m位空間的碼字--對應。11.根據權利要求10所述的方法,其中,所述n位空間的所有碼字的每一個的切換次數大于等于與其對應的n+m位空間的碼字的切換次數。12.—種降低計算機系統中I/0功率的裝置,包括原始數據緩存器,用于緩存要發送到總線上的各^t據;編碼器,對緩存的各路數據按照編碼規則進行n位至n+m位編碼,其中n和m均是大于等于1的整數,所述編碼規則用于降低碼型的切換頻率;以及編碼數據緩存器,用于緩存編碼的各路數據,以將其發送到所述總線上。13.根據權利要求12所述的裝置,還包括總線監視器,用于監視所述計算機系統中總線上的工作負荷,并且在監視到所述總線上的工作負荷低于一闊值時,所述編碼器對緩存的各5^t據進行所述編碼。14.根據權利要求12所述的裝置,還包括解碼器,用于在接收到來自所述總線的編碼的n+m位數據后,根據所述編碼規則,將所述編碼的n+m位數據解碼為n位數據。15.根據權利要求14所述的裝置,其中,所述編/解碼器通過硬件實現。16.根據權利要求14所述的裝置,其中,所述編/解碼器通過軟件實現。17.根據權利要求13所述的裝置,其中,所述總線監視器當需要在CUP和I/O設備之間傳輸數據時即時獲取所述總線上的工作負荷。18.根據權利要求13所述的裝置,其中,所述總線監視器根據所監視到的總線上的工作負荷水平,選擇相應的編碼規則。19.根據權利要求14所述的裝置,其中,所述編碼器包括多個編/解碼器,分別用于所述多路數據的編/解碼。20.根據權利要求14所述的裝置,其中,所述多路數據共享所述編/解碼器。21,根據權利要求12-20中任意一項所述的裝置,其中,所述編碼規則包括n位空間與n+m位空間對照的碼表,在所述碼表中n位空間的所有碼字與n+m位空間的碼字--對應。22.根據權利要求21所述的裝置,其中,所述n位空間的所有碼字的每一個的切換次數大于等于與其對應的n+m位空間的碼字的切換次數。23.根據權利要求12所述的裝置,其中,所述原始數據緩存器和所述編碼數據緩存器通過移位寄存器和移位計數器實現。24.—種計算機系統,包括CPU;I/O設備;總線,用于在所述CPU和所述I/0設備之間傳輸數據;以及根據權利要求12-23中任意一項所述的降低計算機系統中I/O功率的裝置。全文摘要本發明提供了降低計算機系統中I/O功率的方法,降低計算機系統中I/O功率的裝置,以及計算機系統。根據本發明的一個方面,提供了一種降低計算機系統中I/O功率的方法,包括以下步驟緩存要發送到總線上的各路數據;對緩存的各路數據按照編碼規則進行n位至n+m位編碼,其中n和m均是大于等于1的整數,所述編碼規則用于降低碼型的切換頻率;以及將編碼的各路數據發送到所述總線上。文檔編號G06F1/32GK101419495SQ200710166839公開日2009年4月29日申請日期2007年10月22日優先權日2007年10月22日發明者彧李,楊雨東,沈文博,王艷琦申請人:國際商業機器公司