專利名稱:通過傳輸包的疊加減少接口等待時間的方法和設(shè)備的制作方法
背景技術(shù):
發(fā)明領(lǐng)域本發(fā)明是關(guān)于減少在芯片間總線上數(shù)據(jù)傳輸所需時鐘周期總數(shù)的方法和設(shè)備。
相關(guān)技術(shù)說明為了在如母板上的芯片間傳輸控制和同步信息,許多應(yīng)用中采用相對窄小的芯片間總線體系(例如4位控制總線)。舉例來說,微處理器使用的芯片集合,集成電路芯片成雙制作會更加方便,其中的第一個芯片接收來自處理器總線的地址和控制信號,另一個芯片接收來自處理器總線的數(shù)據(jù)信號。第一個芯片通過芯片間總線控制第二個芯片上的數(shù)據(jù)傳輸。
常規(guī)的控制信號傳輸協(xié)議一般用于此類芯片間總線,以將控制信號從一個發(fā)送芯片送到一個或多個接收芯片。按照這種常規(guī)協(xié)議,通過芯片間控制總線傳遞的命令按包發(fā)送,其中每個命令包中含有一個或多個由一個前同步字和一個包類型代碼字作為前導(dǎo)的命令字。控制信號的傳輸由同步信號進(jìn)行同步。當(dāng)芯片間總線沒有命令數(shù)據(jù)傳輸時,一般是在總線上插入一個空轉(zhuǎn)字,直到發(fā)送一個新的命令包。
每當(dāng)命令信號要從一個發(fā)送芯片通過芯片間總線向一個接收芯片傳送時,該發(fā)送芯片首先必須將包起始命令字發(fā)送到該總線。然后生成一個同步信號,藉以表明總線上的數(shù)據(jù)代表一個有效的命令包的開始。同步信號一般與包起始字在相同的時鐘周期內(nèi)被發(fā)送。有的時候,前同步字是在包起始字之前的時鐘周期里被發(fā)送的。這樣的話,接收芯片必須首先存儲前同步字,然后再對該命令作出響應(yīng)??梢钥闯?,每個命令包開始傳送時,在發(fā)送命令包的其它內(nèi)容之前,需要一個額外的時鐘周期來發(fā)送前同步字。
發(fā)明提要本發(fā)明人認(rèn)為,通過對接口上傳送的命令包的疊加,可以減少通信等待時間。一方面,本發(fā)明的較佳實施例描述了一種減少在芯片間通信總線上進(jìn)行信息包通信所需的時鐘周期數(shù)的方法。芯片間通信總線連接發(fā)送芯片和接收芯片。該方法的步驟是,在第一個時間間隔向芯片間總線上輸出一個第一信息字;在該第一個時間間隔內(nèi)將該第一信息字寄存在該發(fā)送芯片內(nèi),以便在緊接的一個第二個時間間隔可以訪問該第一信息字;在第一個時間間隔內(nèi)接收芯片接收該第一信息字;在第一個時間間隔將該第一信息字寄存在該接收芯片內(nèi),以便在緊接的一個第二個時間間隔可以訪問該第一信息字;在第二個時間間隔內(nèi)在發(fā)送芯片內(nèi)生成一個第二信息字;第二個時間間隔內(nèi)將所寄存的第一信息字與發(fā)送芯片內(nèi)的第二信息字進(jìn)行比較;并且如果所寄存的第一信息字與該第二信息字相同,則在第二個時間間隔內(nèi)向芯片間總線上輸出一個第三信息字,以取代該第二信息字。如果所寄存的第一信息字與該第二信息字不同,則在緊接著第二個時間間隔的一個第三個時間間隔內(nèi)發(fā)送第三信息字。
在一個優(yōu)選的實施方案中,對第一信息字進(jìn)行定義,以提高第一信息字與第二信息字相同的概率。
在另一個優(yōu)選實施例中,第一信息字含有一個命令字或空轉(zhuǎn)字,第二信息字則含有對于一個命令包事務(wù)處理的一個前同步字,第三信息字則含有一個包類型碼。
在另一個優(yōu)選實施例中,每個時間間隔的長度為一個時鐘周期。
在另一個替換的實施例中,每個時間間隔的長度為多個時鐘周期。
第二方面,本發(fā)明較佳實施例中有一個為在芯片間總線上的信息包事務(wù)處理節(jié)省時鐘周期的設(shè)備。該設(shè)備中有一個選擇電路,選擇電路有一個輸出端和第一第二兩個輸入端。輸出端與芯片間總線進(jìn)行通信,選擇電路響應(yīng)選擇信號來選擇第一輸入或第二輸入作為輸出。該設(shè)備進(jìn)一步包括一個與選擇電路輸出端通信的臨時儲存電路,儲存在第一時間間隔期間輸出到芯片間總線上的一個第一信息字;一個比較電路,它的第一輸入端與選擇電路的第一輸入端通信,第二輸入端與臨時儲存電路通信。比較電路在第二時間間隔期間將存貯在臨時儲存電路中的第一信息字與選擇電路第一輸入端的一個第二信息字進(jìn)行比較,當(dāng)?shù)谝慌c第二信息字的內(nèi)容基本相同時,比較電路進(jìn)一步控制選擇電路在第二時間間隔內(nèi)在選擇電路第二輸入端上輸出一個第三信息字,代替第二信息字。
在一個優(yōu)選的實施例中,選擇電路包含一個多路轉(zhuǎn)接器,臨時儲存電路包含一個寄存器;在另一個實施例中,當(dāng)?shù)谝慌c第二信息字的位模式完全相同時,比較電路控制選擇電路在選擇電路第二輸入端上輸出第三信息字。
在另一個優(yōu)選實施例中,每個時間間隔的長度為一個時鐘周期,或者每個時間間隔的長度也可以為多個時鐘周期。
第三個方面,本發(fā)明優(yōu)選實施例是一個用于減少完成芯片間總線上數(shù)據(jù)事務(wù)處理所需時鐘周期數(shù)的設(shè)備。該設(shè)備包含從第一第二兩個輸入中選擇一個輸出的裝置。該輸出端與芯片間總線通信。該設(shè)備還包含一個在第一時間間隔內(nèi)儲存一個第一信息字的裝置,該儲存裝置與選擇裝置的輸出端通信;最后,該設(shè)備包含一個在第二時間間隔內(nèi)將儲存裝置中儲存的第一信息字與選擇裝置第一輸入端上的一個第二信息字進(jìn)行比較的裝置,當(dāng)?shù)谝慌c第二信息字的內(nèi)容基本相同時,該比較裝置使選擇裝置第二輸入端上的一個第三信息字在第二時間間隔內(nèi)被輸出,取代第二信息字。
附圖簡要說明附
圖1是表示一個包含由芯片間命令總線連接的集成電路芯片的計算機(jī)系統(tǒng)的簡化方框圖。
附圖2是表示附圖1中發(fā)送芯片部分內(nèi)部線路的簡化方框圖,圖中表示了本發(fā)明節(jié)省芯片間通信總線上時鐘周期的機(jī)制。
附圖3A_3C是表示在芯片間通信總線上發(fā)送的命令包的有效傳輸時間的定時圖,圖中體現(xiàn)了本發(fā)明的優(yōu)點(diǎn)。
附圖4是表示附圖2中狀態(tài)機(jī)依照本發(fā)明方法提前生成前同步字的操作的狀態(tài)圖。
較佳實施例詳細(xì)說明附圖1是表示可采用本發(fā)明方法構(gòu)造的一個典型計算機(jī)系統(tǒng)100的簡化方框圖。該計算機(jī)系統(tǒng)100包含一個微處理器102,它通過微處理器總線105與芯片集合107進(jìn)行通信。芯片集合107通過PCI總線108與PCI主/從設(shè)備(PCI master and slaves)109進(jìn)行通信,此外,芯片集合107還通過存貯器總線的數(shù)據(jù)部分112和地址及控制部分114與存儲器(例如DRAM)116進(jìn)行通信。使得芯片集合107在計算機(jī)系統(tǒng)100中起著微處理器總線與存儲器總線之間橋梁的作用。熟悉本領(lǐng)域的人當(dāng)然清楚,為說明本發(fā)明簡潔起見,附圖1中的計算機(jī)系統(tǒng)100被大大地作了簡化。
如圖所示,芯片集合107包括一對集成電路(IC)芯片110和120,它們之間通過計算機(jī)系統(tǒng)100母板上的芯片間通信總線130相連。在一個實施例中,芯片間通信總線130包含一個5位控制總線,用于從發(fā)送芯片110向接收芯片120傳送命令信號。在一個實施方案中,該5位控制總線實際上包括5根導(dǎo)線,其中的4根導(dǎo)線用于傳送命令字,另外一根導(dǎo)線用于傳送同步信號。具有本領(lǐng)域一般知識的人知道,本發(fā)明的一個實施方案中使用4位總線是為了方便,在其它應(yīng)用場合可以根據(jù)需要使用更窄或更寬的總線。本實施例中,將芯片集合107分成兩塊芯片的原因是,如果用一塊芯片的話,用于將芯片集合107與PCI總線108以及微處理總線105連接所需的插接線數(shù)就多,制造成本高。芯片集合107中的芯片120接收來自微處理器總線105的數(shù)據(jù)線的數(shù)據(jù),而芯片集合107中的芯片110接收來自微處理器總線105的地址與控制線的數(shù)據(jù)。與微處理器總線105一樣,PCI總線108上的數(shù)據(jù)信號可以在芯片集合107中的芯片120上輸入輸出,而地址與控制信號則可以在芯片110上輸入輸出。與此相似,存儲器116與芯片110之間的地址與控制信息的交換通過總線114進(jìn)行,而存貯器116與芯片120之間數(shù)據(jù)信息的交換則通過總線112進(jìn)行。
系統(tǒng)工作時,數(shù)據(jù)、地址及命令信號由微處理器102向母板上的其它單元傳送或由母板上的其它單元向微處理器傳送。芯片集合107起著微處理器與存儲器之間橋梁的作用,使得從微處理器102發(fā)出的數(shù)據(jù)、地址及命令,能通過存儲器總線的112及114部分和PCI總線108,有效地傳送到存儲器116和PCI主/從設(shè)備109。同樣PCI主(PCImaster)109發(fā)出的信號要通過微處理器總線105和存儲器總線112及114被傳送到微處理器和存貯器116,芯片集合107也起著其中的接口作用。命令信號從芯片110向芯片120傳送。芯片110從微處理器總線105和PCI總線108接收地址及命令信號,而芯片120則接收來自微處理器總線105、存儲器總線數(shù)據(jù)部分112和PCI總線108的數(shù)據(jù)信號。
附圖2是芯片110和120部分內(nèi)部線路的方框簡圖,它表示了本發(fā)明一個較佳實施例中,為了減少在芯片間通信總線130上進(jìn)行數(shù)據(jù)傳輸?shù)臅r鐘周期數(shù)而采用的線路結(jié)構(gòu)。如附圖2中所示,多路轉(zhuǎn)接器電路220選擇要在芯片間總線130上傳送的包數(shù)據(jù)。
數(shù)據(jù)包中的前同步字(PREAMBLE)輸入207、包類型(PACKET TYPE)輸入240和修改字(MODIFIER)輸入212,各自獨(dú)立作為多路轉(zhuǎn)接器電路220的輸入。多路轉(zhuǎn)接器電路220根據(jù)需要來選擇輸入207、240和212,形成要在芯片間總線130上傳送的各自的命令包。多路轉(zhuǎn)接器電路220的輸出由狀態(tài)機(jī)230通過選擇總線238進(jìn)行控制。
狀態(tài)機(jī)230通過總線240接收包類型輸入,通過導(dǎo)線242接收新請求(NEW REQUEST)輸入。包類型輸入指示要在芯片間總線130上傳送的數(shù)據(jù)的類型,而新請求輸入242則指示,接收芯片120已經(jīng)準(zhǔn)備好接收下一個命令包的前同步字。新請求信號線242和一個邏輯“與”門241的輸出端相連?!芭c”門241通過導(dǎo)線243接收一個第一輸入??偩€240和導(dǎo)線243與芯片110的內(nèi)部線路通信。狀態(tài)機(jī)230也通過導(dǎo)線244向芯片110的內(nèi)部線路輸出一個就緒(RDY)信號,即準(zhǔn)備就緒接收下一個包,該信號表示狀態(tài)機(jī)230已經(jīng)準(zhǔn)備好接收和處理下一個來自芯片110內(nèi)部電路的命令包。導(dǎo)線244是與門電路241的第二個輸入。
多路轉(zhuǎn)接器220的輸出通過一個驅(qū)動器250與控制總線130進(jìn)行通信。另外,多路轉(zhuǎn)接器220的輸出還與寄存器255進(jìn)行通信。寄存器255的輸出起著比較電路260的一個第一輸入的作用。此外,前同步字207的輸入被提供作為比較電路260的一個第二輸入。比較器260的輸出通過導(dǎo)線265,作為前同步字已發(fā)送(PREAMBLE SENT)信號輸入到狀態(tài)機(jī)230。狀態(tài)機(jī)230通過驅(qū)動器270進(jìn)一步輸出一個同步信號SYNC。
如附圖2所示,接收芯片120含有一個接收寄存器280,存放(即延遲)上一個時鐘來自芯片間總線130的數(shù)據(jù)。總線290上的被延遲數(shù)據(jù)和總線295和導(dǎo)線296上的芯片間緩沖數(shù)據(jù)與芯片120的內(nèi)部電路進(jìn)行通信,使該數(shù)據(jù)起著向接收芯片120內(nèi)部電路的控制輸入的作用。
在操作中,一旦狀態(tài)機(jī)230發(fā)出一個就緒信號244(表示狀態(tài)機(jī)230準(zhǔn)備好處理下一個包)、并且芯片110內(nèi)部電路在導(dǎo)線243上發(fā)出一個新任務(wù)(NEW TASK)信號,導(dǎo)線242上就產(chǎn)生一個新請求(NEW_REQUEST)信號,表示有下一個命令包的前同步字、包類型及修改字要在芯片間總線130上輸出。
多路轉(zhuǎn)接器220在狀態(tài)機(jī)230控制下,通過選擇總線238,從前同步字輸入、包類型輸入和修改字輸入中選擇其中之一。前同步字?jǐn)?shù)據(jù)可以包括例如數(shù)據(jù)將被傳至的集成電路120內(nèi)的一個緩沖器號,而修改字則含有將要傳至接收IC芯片120內(nèi)緩沖器的控制數(shù)據(jù)。包類型中含有與正被傳送的命令相關(guān)的信息。在一個實施例中,包類型確定命令的類型(即讀PCI、寫存貯器等等)。在另一個實施例中,包類型定義包的長度(即是否包括一個前同步字以及預(yù)計有幾個修改字)。在一個較佳實施例中,最普通的操作對應(yīng)于最短的包,在另一個較佳實施例中,包類型的接收時間指示接收芯片120應(yīng)該開始還是結(jié)束一個過程。
多路轉(zhuǎn)接器220的輸出通過驅(qū)動器250被驅(qū)動到控制總線130上。隨后,芯片間總線130上出現(xiàn)的數(shù)據(jù)在下一個時鐘周期發(fā)生時被寄存到寄存器280。此外,該輸出在寄存器255中被寄存一個時鐘周期的時間。在將多路轉(zhuǎn)接器220的輸出寄存到寄存器255所需的時間內(nèi),多路轉(zhuǎn)接器220輸出另一個信號,該信號通過驅(qū)動器250將被驅(qū)動到芯片間總線130上。
在與寄存器280按時鐘定時存入芯片間總線130上數(shù)據(jù)的相同的時鐘周期內(nèi),寄存器255的輸出與前同步字輸入207進(jìn)入比較。就是說,用前同步字作為比較電路260的第一輸入,而滯后一個時鐘周期的寄存器255輸出作為比較電路260的第二輸入,使前同步字與上一個時鐘周期輸出到控制總線130上的包命令字在比較電路260中進(jìn)行比較。如果前同步字與寄存器255中存貯的數(shù)據(jù)相同,比較電路260就發(fā)出一個前同步字已發(fā)送信號,通過導(dǎo)線265到狀態(tài)機(jī)230,作為其控制輸入。
當(dāng)狀態(tài)機(jī)230接收到一個新請求信號242,并且導(dǎo)線265上表明比較結(jié)果有效(即出現(xiàn)前同步字已發(fā)送信號)時,即上一個時鐘周期的芯片間總線命令字與要被輸出到芯片間總線130上的新包的前同步字相同時,就從狀態(tài)機(jī)230通過驅(qū)動器270發(fā)出一個同步信號,并通過選擇總線238選擇包類型而不是前同步字向芯片間總線130傳送。如果狀態(tài)機(jī)230在輸入242上接收到一個新請求信號時,導(dǎo)線265上未出現(xiàn)前同步字已發(fā)送信號,且狀態(tài)機(jī)230識別輸入端240上的包類型是一種要求其命令包中包括有前同步字的類型,狀態(tài)機(jī)230就通過選擇總線238選擇前同步字207,由多路轉(zhuǎn)接器220輸出到芯片間總線130。
每當(dāng)一個同步脈沖通過驅(qū)動器270被輸出到導(dǎo)線271,芯片間總線130上就會出現(xiàn)一個包類型。該同步脈沖被芯片120作為控制信號接收,表示一個數(shù)據(jù)包事務(wù)處理已經(jīng)開始。接收到同步脈沖后,芯片120的內(nèi)部電路把寄存器280中存儲的數(shù)據(jù)當(dāng)作該數(shù)據(jù)包事務(wù)處理的前同步字,把總線295上出現(xiàn)的數(shù)據(jù)當(dāng)作包類型。這樣,由于寄存器280中的數(shù)據(jù)與寄存器255中的數(shù)據(jù)相同(原因是這兩個寄存器都存儲了在上一個時鐘周期出現(xiàn)在芯片間總線上的數(shù)據(jù)),而且由于寄存器255中的數(shù)據(jù)與前同步字相同,所以緩沖器285中的數(shù)據(jù)將與前同步字相同。按照這個邏輯,如果一個新前同步字內(nèi)的數(shù)據(jù)與芯片間總線的空閑格式(IDLEpattern)或者說與前一個包的結(jié)尾字相同時,該新包的前同步字就不必發(fā)送,這樣就為整個數(shù)據(jù)事務(wù)處理節(jié)省了一個時鐘周期。
附圖3A至附圖3C的定時圖,清楚地表示了按照本發(fā)明思想節(jié)省時鐘周期的方法。附圖3A表示未采用本發(fā)明優(yōu)點(diǎn)的芯片間總線上的常規(guī)信號定時。第一個信號302代表一個同步時鐘,用于同步芯片110、120內(nèi)的包數(shù)據(jù)字,信號304代表出現(xiàn)在芯片間總線130的四位命令部分上的包數(shù)據(jù)字信號(而不是出現(xiàn)在同步信號線上的信號)。最后,信號306表示在芯片間總線上傳送的同步信號。向芯片間總線130上輸出的每個包命令字出現(xiàn)時間占用一個完整的時鐘周期。所以,所需的時鐘周期數(shù)等于要在發(fā)送芯片110與接收芯片120間通信的包內(nèi)的命令字?jǐn)?shù)。
例如附圖3A所示,芯片間總線130空閑兩個時鐘周期,直到下一個時鐘周期內(nèi)出現(xiàn)一個前同步字(例如是確定在隨后的事務(wù)處理中數(shù)據(jù)要被傳送到的緩沖器的緩沖器號)。隨后的時鐘周期用于傳送包類型(指示命令的類型,等等)和修改字(進(jìn)一步說明該命令)。
如附圖3A所示,從輸出前同步字開始,直到最后的修改字被輸出到芯片間總線130上,一共有三個時鐘發(fā)生。當(dāng)確定前同步字之后的包類型已經(jīng)被確立在芯片間總線130上時,就確立一個同步信號306,表示該新包的出現(xiàn)。如上簡述,同步信號通知接收芯片120,前同步字和包類型已經(jīng)被接收到總線290和295上。接收芯片120此后就把總線295上隨后的數(shù)據(jù)當(dāng)作該命令包中的剩余的命令字(如果有的話)。例如附圖3A中所示,如果一個修改字跟在包類型之后,包類型指出下一個命令字屬于相同的包,于是接收芯片120在下個時鐘周期讀取總線295上的命令字,作為預(yù)期的修改字?jǐn)?shù)據(jù)。
附圖3B表示了一個按照本發(fā)明思想,其結(jié)果比附圖3A中所示常規(guī)協(xié)議節(jié)省一個時鐘周期的方法。具體來說,本發(fā)明人認(rèn)為,通過考察被傳送到芯片間總線上的命令字之間的關(guān)系,可以在單獨(dú)一個時鐘周期時間內(nèi)發(fā)送多個命令字到接收芯片。特別來說,如附圖3B所示,從上一個空轉(zhuǎn)字的結(jié)束到最后的修改字被輸出到芯片間總線130,總共發(fā)生兩個時鐘周期,僅僅發(fā)生兩個時鐘周期的原因是,當(dāng)前同步字與空轉(zhuǎn)字相同時,就沒有必要發(fā)送前同步字。如上述對附圖2的說明所述,前同步字與在芯片間總線130上發(fā)送的前一個命令字要進(jìn)行一次比較。如果該前同步字相同于前一個命令字(在此例中即是空轉(zhuǎn)字),就發(fā)送包類型字(同時發(fā)送一個同步信號)代替前同步字。按照這種方法,確立一個提前的同步信號,就使該命令包僅需兩個時鐘周期就能完成。確定空轉(zhuǎn)字與前同步字相同,意味著寄存器280中的數(shù)據(jù)與前同步字相同,這是因為接收芯片120也將上一個空轉(zhuǎn)字寄存到寄存器280中。這樣,接收芯片120的操作方式,就像在上個時鐘周期內(nèi)前同步字已經(jīng)被發(fā)送的一樣。按照這個方式,在本當(dāng)要傳送前同步字的時鐘周期之前被傳送的那個空轉(zhuǎn)字,可以用來代替該前同步字。因此,可由包類型代替前同步字,以便為整個命令包處理節(jié)省一個時鐘周期。就是說,沒有必要將前同步字207(見附圖2)指示的緩沖器號傳送到總線130,因為總線130上出現(xiàn)的空轉(zhuǎn)字已被用來代替該緩沖器號。所以,狀態(tài)機(jī)230控制多路轉(zhuǎn)接器220選擇包類型而不是緩沖器號,以便接收芯片120能在下一個時鐘周期內(nèi)處理前同步字和包類型兩個數(shù)據(jù)。
按照本發(fā)明的一個方面,最有可能被訪問的緩沖器號被定義為與空轉(zhuǎn)字(以下也稱之為缺省前同步字)有相同的位組合,這樣,每當(dāng)這個緩沖器被選定,就可以在與先頭的空轉(zhuǎn)字相同的時鐘周期內(nèi)將該緩沖器號存入接收芯片120的內(nèi)部寄存器。本發(fā)明的一個特別有利的實施方案中,空轉(zhuǎn)字碼按照缺省緩沖器號被修改,以增加前同步字與空轉(zhuǎn)字之間匹配的可能性。當(dāng)然,如果前同步字中的緩沖器號與空轉(zhuǎn)字不同,就要發(fā)生一個額外的時鐘周期才能將該緩沖器號鎖存到接收芯片120。然而如附圖3B中所示,當(dāng)緩沖器號(其含有前同步字的第一部分)與空轉(zhuǎn)字相同時,就可以在與包類型相同的時鐘周期內(nèi)確立一個同步信號,因為該空轉(zhuǎn)字可以用于代替該緩沖器號。
附圖3C表示連續(xù)發(fā)送命令包時第二個命令包的前同步字的位組合與第一個命令包的最后命令字相同的情況。如附圖3c中所示,前一個命令包的最后命令字被送到接收芯片120后,立即生成一個同步信號。因為該上一個包字的位組合與新包的前同步字相同,多路轉(zhuǎn)接器220就被控制輸出包類型而不是前同步字,與此同時,確立同步信號。其結(jié)果是, 自第一個命令包的結(jié)束至第二個包的結(jié)束,僅發(fā)生了兩個時鐘周期。要是單獨(dú)發(fā)送前同步字(而不是用第一個包的最后字作為前同步字),就需要三個時鐘周期來完成第二個命令包。
由于第一個命令包的內(nèi)容中定義了該包的長度,因此接收芯片120要確立最后的命令字出現(xiàn)在總線295上的時間并無困難。并且,一旦芯片120接收到同步信號,芯片120就把寄存器280內(nèi)的數(shù)據(jù)當(dāng)作新命令包的前同步字。這樣,總線295上的數(shù)據(jù)兩次被接收芯片120使用—一次是在前一個時鐘作為第一個命令包(于總線295上提取)的結(jié)尾字,一次是作為第二個命令包(于總線290上提取)的前同步字。
下面詳細(xì)敘述用于附圖3C中示例的芯片110內(nèi)部電路的操作過程,具體來說,當(dāng)?shù)谝粋€命令包的結(jié)尾命令字從多路轉(zhuǎn)接器220被輸出后,該命令字就被寄存到寄存器255中,并與隨后送到總線207的比較電路260上的前同步字進(jìn)行比較。如果比較電路260確定該前同步字與先頭的命令字相同,就在導(dǎo)線265上生成一個比較信號,并將其送到狀態(tài)機(jī)230,由狀態(tài)機(jī)230控制多路轉(zhuǎn)接器220輸出包類型而不是前同步字。與此同時,狀態(tài)機(jī)230通過驅(qū)動器270確立一個延續(xù)一個時鐘時間的同步信號。這樣,第一個命令包的結(jié)尾命令字就作為第二個命令包的緩沖器號。按照這種方式,就在連續(xù)的包傳送過程中節(jié)省了一個時鐘周期。
附圖4所示是按照本發(fā)明思想,狀態(tài)機(jī)230為生成一個提前的前同步字所進(jìn)行操作的狀態(tài)圖。實際應(yīng)用中,狀態(tài)機(jī)230也對發(fā)送芯片110內(nèi)部的其它單元進(jìn)行控制,但是為簡明起見,狀態(tài)機(jī)230的這個功能未在附圖4的簡化狀態(tài)圖中表示出來。
一旦復(fù)位(RESET)開始,狀態(tài)機(jī)230進(jìn)入一個空閑(IDLE)狀態(tài)400。狀態(tài)機(jī)230處于空閑狀態(tài)400時,表示狀態(tài)機(jī)230已準(zhǔn)備好接收其它命令包以輸出到四位命令總線130上。狀態(tài)機(jī)230在三種不同條件下處于空閑狀態(tài)400,狀態(tài)轉(zhuǎn)換路徑410表示三種條件使?fàn)顟B(tài)機(jī)返回到空閑狀態(tài)400的情況。
第一個條件,新請求信號(也即信號線242上的信號)未被確立時,這時,狀態(tài)機(jī)230處于空閑狀態(tài)400,多路轉(zhuǎn)接器220將缺省前同步字作為命令向總線130的四位命令總線部分輸出。就是說,當(dāng)新請求未被提出時,狀態(tài)機(jī)230選擇前同步字207,作為通過多路轉(zhuǎn)接器220和驅(qū)動器250向命令總線130的輸出。最好將前同步字設(shè)置與最常被訪問的緩沖器的內(nèi)容相等,以便下一個實際的前同步字與上一個時鐘周期發(fā)送的數(shù)據(jù)相等的可能性更高。
狀態(tài)機(jī)230處于空閑狀態(tài)400的另一個條件是,前同步字請求(PREAMBLE_REQD)信號被確立(這向狀態(tài)機(jī)230表明,將要在命令總線130上傳送的新命令包需要一個前同步字),并且前同步字已發(fā)送信號處于無用狀態(tài)(這表明,上一個時鐘周期在總線130上發(fā)送的命令字不等于總線207上的前同步字)。這樣,由于需要一個前同步字,而上一個時鐘周期總線130上的命令字不能用作該前同步字,狀態(tài)機(jī)230就由導(dǎo)線238向多路轉(zhuǎn)接器220發(fā)出一個選擇信號,選擇總線207上的前同步字輸出到命令總線130上,這樣,被發(fā)送的命令字就等于前同步字。
狀態(tài)機(jī)230處于空閑狀態(tài)400的最后條件是第一,前同步字請求信號未被確立或者前同步字已發(fā)送信號已被確立;第二,新請求信號被確立而修改字請求(MODIFIER_REQD)信號被撤銷。就是說,由于第一,不需要傳送前同步字,或者上一個時鐘周期總線130上的命令字等于要傳送的前同步字;第二,被請求的新包沒有修改字,這表明,如果當(dāng)前的包真的要求有一個前同步字的話,該前同步字在上個時鐘周期就發(fā)送了,當(dāng)前的包是以當(dāng)前的包類型命令字作為結(jié)尾。所以,狀態(tài)機(jī)230能接收一個新包在下個時鐘周期向命令總線130傳送,所以,狀態(tài)機(jī)230處于空閑狀態(tài)400。
在使?fàn)顟B(tài)機(jī)230處于空閑狀態(tài)400的最后這個條件下,狀態(tài)機(jī)230使包類型數(shù)據(jù)通過多路轉(zhuǎn)接器220和驅(qū)動器250被發(fā)送到命令總線130。此外,通過驅(qū)動器270確立一個同步信號,而信號線244上也確立一個就緒(RDY)信號。
狀態(tài)機(jī)230經(jīng)狀態(tài)轉(zhuǎn)換路徑430從空閑狀態(tài)400轉(zhuǎn)換到忙(BSY)狀態(tài)420的確定條件是第一,不需要發(fā)送前同步字或者上個時鐘周期總線130上的命令字等于要發(fā)送的前同步字,并且,第二,有一個要求發(fā)送修改字的新請求。換言之,如果第一,前同步字請求信號未被確立或者前同步字已發(fā)送信號被確立;第二,信號線242上確立新請求信號,而包類型中表明,該命令包中含有一個或多個修改字,則狀態(tài)機(jī)由空閑狀態(tài)400轉(zhuǎn)換到忙狀態(tài)420。這表明,要通過多路轉(zhuǎn)接器220和驅(qū)動器250將包類型240輸出到命令總線130,同時通過驅(qū)動器270確立一個同步信號。此外,還要將修改字指針(MODIFIER_PTR)的位置為1(修改字指針是加載到一個計數(shù)器計數(shù)當(dāng)前包中包類型數(shù)據(jù)后修改字的數(shù)目的值)。狀態(tài)機(jī)230轉(zhuǎn)換到忙狀態(tài)(該狀態(tài)表示,狀態(tài)機(jī)230在完成當(dāng)前包的傳送之前,不能處理新的請求)。
轉(zhuǎn)換路徑440表示,未確立最后修改字(LASE_MODIFIER)信號時,狀態(tài)機(jī)230的狀態(tài)保持在忙狀態(tài)420(即表示包的最后命令字已被輸出到命令總線130的最后修改字信號為假時)。每次經(jīng)路徑440進(jìn)行一次狀態(tài)轉(zhuǎn)換,下一個命令字(即總線212中的下一個修改字)就通過多路轉(zhuǎn)接器220和驅(qū)動器250被傳至命令總線130。此外,修改字指針的值每次遞增1直到當(dāng)前包的最后的修改字出現(xiàn)。一旦包的結(jié)尾字已被傳送到總線130,狀態(tài)機(jī)230就由狀態(tài)轉(zhuǎn)換路徑450從忙狀態(tài)420轉(zhuǎn)換回空閑狀態(tài)400。如附圖4中所示,經(jīng)由路徑450的狀態(tài)轉(zhuǎn)換是在最后修改字信號被確立時發(fā)生的。這使輸出到命令總線130的修改字等于當(dāng)前包中的結(jié)尾命令字,同時,狀態(tài)機(jī)230在導(dǎo)線244上確立就緒信號。
盡管以上對本發(fā)明進(jìn)行了詳細(xì)的說明,應(yīng)該清楚,上述說明是說明性的而不是限制性的。具備本領(lǐng)域一般知識的人知道,在不偏離其精神或中心特點(diǎn)的情況下可以對本發(fā)明進(jìn)行許多明顯的改進(jìn)。例如,具備本領(lǐng)域一般知識的人知道,如果實施本發(fā)明時采用命令字位數(shù)更少的芯片間總線,命令字相同的可能性會更顯著,從而有最高的效率。而按照本發(fā)明,實際上也可以采用六位或更多位級的總線。此外,本發(fā)明實施時可采用字串行方式,在芯片之間的一根導(dǎo)線上傳送包命令字。在這種情況下,同步信號提供命令字的邊界信息,還要指示新包的出現(xiàn)。另一種實施方案可以保留一個獨(dú)特的命令字模式來指示同步信號的出現(xiàn),以消除對專用同步信號線的需要。另一種實施方法可以在發(fā)送芯片和接收芯片或其中一種芯片中采用管道式寄存器(pipeline registers)來進(jìn)行時鐘頻率更高的操作。總之,本發(fā)明的范圍應(yīng)由本文中的權(quán)利要求界定。
權(quán)利要求
1.一種減少在芯片間通信總線上進(jìn)行信息包通信所需時鐘周期數(shù)的方法,所述芯片間通信總線連接一個發(fā)送芯片與一個接收芯片,所述方法包含以下步驟在一個第一時間間隔內(nèi)向所述芯片間總線上輸出一個第一信息字;在所述第一時間間隔將所述第一信息字寄存在所述發(fā)送芯片內(nèi),從而在連續(xù)的第二個時間間隔內(nèi)可以使用所述第一信息字;在所述第一時間間隔所述接收芯片接收所述第一信息字;在所述第一時間間隔將所述第一信息字寄存在所述接收芯片內(nèi),從而在連續(xù)的第二個時間間隔內(nèi)可以對其使用;在所述第二個時間間隔內(nèi)在所述發(fā)送芯片內(nèi)生成一個第二信息字;在所述第二個時間間隔內(nèi)將所述被寄存的第一信息字與所述發(fā)送芯片內(nèi)的所述第二信息字進(jìn)行比較;以及如果所述被寄存的第一信息字與所述第二信息字相同,則在所述第二個時間間隔內(nèi)向所述芯片間總線上輸出一個第三信息字來代替所述第二信息字;如果所述被寄存的第一信息字與所述第二信息字不同,則在緊接著所述第二個時間間隔的第三個時間間隔內(nèi)發(fā)送所述第三信息字。
2.如權(quán)利要求1中定義的方法,其中對該第一信息字進(jìn)行定義以提高該第一信息字與該第二信息字相同的概率。
3.如權(quán)利要求1中定義的方法,其中所述第一信息字包含一個命令字或一個空轉(zhuǎn)字,所述第二信息字包含一個命令包事務(wù)處理的前同步字,所述第三信息字包含一個包類型代碼。
4.如權(quán)利要求1中定義的方法,其中每個時間間隔的長度為一個時鐘周期。
5如權(quán)利要求1中定義的方法,其中每個時間間隔的長度為多個時鐘周期。
6.一種為在芯片間總線上的信息包事務(wù)處理期間節(jié)省時鐘周期的設(shè)備,所述設(shè)備包括一個有一個輸出端和第一第二兩個輸入端的選擇電路,其中所述輸出端與所述芯片間總線進(jìn)行通信,所述選擇電路根據(jù)一個選擇信號選擇第一第二兩個輸入端之一作為輸出;一個與所述選擇電路的所述輸出端通信的臨時儲存電路,儲存第一時間間隔內(nèi)輸出到所述芯片間總線上的一個第一信息字;一個比較電路,其第一輸入端與所述選擇電路的所述第一輸入端通信,第二輸入端與所述臨時儲存電路通信;其中所述比較電路在第二時間間隔內(nèi)將所述臨時儲存電路儲存的所述第一信息字與所述選擇電路的所述第一輸入端的一個第二信息字進(jìn)行比較;其中當(dāng)所述第一和第二信息字所含內(nèi)容基本相同時,所述比較電路促使所述選擇電路在所述第二時間間隔內(nèi)輸出上述選擇電路的所述第二輸入端上的一個第三信息字,代替所述第二信息字。
7.如權(quán)利要求6定義的一個設(shè)備,其中所述選擇電路包含一個多路轉(zhuǎn)接器。
8.如權(quán)利要求6定義的一個設(shè)備,其中所述臨時儲存電路包含一個寄存器。
9.如權(quán)利要求6定義的一個設(shè)備,其中當(dāng)所述第一和第二信息字的位模式完全相同時,所述比較電路控制所述選擇電路輸出所述選擇電路的所述第二輸入端上的所述第三信息字。
10.如權(quán)利要求6定義的一個設(shè)備,其中每個所述時間間隔的長度為一個時鐘周期。
11.如權(quán)利要求6定義的一個設(shè)備,其中每個所述時間間隔的長度為多個時鐘周期。
12.一個用于減少在芯片間總線上完成一個數(shù)據(jù)事務(wù)處理所需時鐘周期數(shù)的設(shè)備,所述設(shè)備包括從第一第二兩個輸入中選擇一個輸出的裝置,其中所述輸出與芯片間總線通信;在第一時間間隔儲存一個第一信息字的裝置,其中所述儲存裝置與所述選擇裝置的所述輸出端通信;在一個第二時間間隔將所述儲存裝置儲存的所述第一信息字與所述選擇裝置的所述第一輸入端上的一個第二信息字進(jìn)行比較的裝置,其中所述比較裝置在所述第一和第二信息字所含內(nèi)容基本相同時,在所述第二時間間隔內(nèi)控制所述選擇裝置輸出所述選擇裝置的所述第二輸入端上的一個第三信息字,代替所述第二信息字。
全文摘要
在芯片間通信總線發(fā)送端安裝的定制的電路減少在芯片間通信總線上傳送控制包所需的時鐘周期數(shù)。包事務(wù)處理協(xié)議就芯片間總線上連續(xù)傳送的命令字之間的關(guān)系規(guī)定,如果包邊界處的連續(xù)字含有相同的數(shù)據(jù),該數(shù)據(jù)可被接收芯片作為獨(dú)立的命令字在一個時鐘周期內(nèi)儲存起來。這是通過在啟動一個新包時生成一個同步信號來完成的。在一個較佳實施例中,那些從統(tǒng)計意義來說具有更常見的包的第一個和/或最后字的位組合被故意安排在相鄰的位置上,以增加連續(xù)命令字含有相同信息的概率。
文檔編號G06F9/46GK1183164SQ96193647
公開日1998年5月27日 申請日期1996年6月27日 優(yōu)先權(quán)日1996年3月1日
發(fā)明者小·L·R·莫特 申請人:三星電子株式會社