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