提供容錯性和增強的穩定性的數據通信模塊的製作方法
2023-07-16 12:55:16 3
專利名稱:提供容錯性和增強的穩定性的數據通信模塊的製作方法
技術領域:
本發明涉及一種包括信號或數據總線的系統,特別涉及在使用容錯碼的高速、高密度集成電路的總線中減少切換活動(activity)。
隨著集成電路技術被提高以在晶片上提供增加的密度,片上互連往往會變得越來越窄。這導致鄰近線路之間耦合電容的增加,其又導致線路之間幹擾或串擾的增加。
對於集成電路技術,特別是對於深亞微米和高速的設計而言,一個問題在於「接地反彈」。與片外晶片互連相連接的輸出緩衝器的驅動器必須提供大電流以對高電容負載進行充電。當驅動器同時切換時,所引起的大電流導致電源電壓降低。同樣,當緩衝器必須對外部線路放電時,大量電荷被轉儲(dump)在接地面上。這會導致接地面的電壓上升。電源與接地面之間減小的電壓差導致噪聲容限減小和速度減小。因此出現綜合性問題。
本領域已知的是,通過增加電路的AC和DC穩定性可以減少「接地反彈」。當從第一狀態到第二狀態轉換的數量等於從第二狀態到第一狀態轉換的數量時,獲得了AC穩定性。當第一狀態的數量等於第二狀態的數量時,獲得了DC穩定性。
文獻「Balanced LVD SCSI Drivers and Receivers」by the SCSITrade Association from Computer Technology Review,September 1997示出了一種平衡的LVD驅動器,其具有減少的接地反彈和減小的同時切換電流。
如果在其中總線或通信信道將數據傳送到電路的環境易於出錯,那麼期望提供用於校正所發送的數據中的差錯的裝置。可選擇地,可以提供用於檢測差錯的裝置,然後可以請求數據的重發。這種總線或通信信道被認為是容錯的。
圖1示出典型容錯總線結構1的示意圖。總線結構1包括用於在編碼器5和解碼器7之間傳送數據的通信總線3。總線3從編碼器5接收輸出數據9,並且將輸入數據11提供給解碼器7。
一種容錯方法被稱為「雙軌(dual-rail)編碼」。在雙軌編碼中,數據位被複製,並且當檢測到數據位中的差錯時,可以使用該副本(copy)。為了能夠校正數據位中的差錯,識別數據位是否包含差錯是必要的,並且提供奇偶校驗位來實現這點。順便提一句,當數據位和副本位相同時,將消除在攜帶數據和副本位的兩個線路之間的串擾。
圖2示出現有技術的雙軌總線結構。輸入數據位d0、d1、d2和d3是提供給編碼器22的信號。產生了數據位d0、d1、d2和d3的相應副本c0、c1、c2和c3。使用包括例如異或門26、28和30的奇偶校驗樹24來計算將要發送的數據位的奇偶校驗位dparity。
經由通信總線32將數據奇偶校驗位dparity、數據位d0、d1、d2和d3及其副本c0、c1、c2和c3發送到解碼器34。
在發送期間,所發送的數據位及其副本可能變為「有錯誤的」,也就是,所發送的位可能被檢測為「1」而不是「0」,反之亦然。因此,在解碼器34處接收到的數據位D0、D1、D2和D3以及副本C0、C1、C2和C3可能與由編碼器22發送的數據位d0、d1、d2和d3以及副本位c0、c1、c2和c3相同或者可能不同。由奇偶校驗樹36對從通信總線32接收到的數據位D0、D1、D2和D3計算數據奇偶校驗位Rparity,該奇偶校驗樹36在結構上與編碼器22中的奇偶校驗樹24相同。通過將數據奇偶校驗位Rparity與在通信總線32上接收到的數據奇偶校驗位進行比較來確定多路復用器控制位s0。在所說明的該系統中,通過異或門38執行比較。
多路復用器控制位s0被饋入充當校正電路的多個多路復用器Mux0、Mux1、Mux2和Mux3。每個多路復用器Mux0、Mux1、Mux2和Mux3接收相應接收到的數據信號D0、D1、D2或D3以及相應接收到的數據信號的副本C0、C1、C2或C3。多路復用器控制位s0控制每個多路復用器是輸出所接收到的數據信號還是輸出所接收到的數據信號的副本。
當所接收到數據的奇偶校驗Rparity與所接收到的數據奇偶校驗位相同時,多路復用器控制位s0是「0」,其指示多路復用器Mux0、Mux1、Mux2和Mux3輸出所接收到的數據位D0、D1、D2和D3。當該數據奇偶校驗位Rparity與所接收到的數據奇偶校驗位不同時,多路復用器控制位s0是「1」,其指示多路復用器Mux0、Mux1、Mux2和Mux3輸出所接收到的被發送的數據位的副本C0、C1、C2和C3。
然而,與單軌系統相比,在雙軌編碼系統中,在任一時刻存在兩倍的線路切換,因此增加了接地反彈的問題。
因此需要在使用雙軌編碼以經由數據總線發送數據的集成電路中減少切換活動,同時減少或消除接地反彈。
根據本發明的第一方面,提供一種經由通信總線將數據位組發送到另一模塊的模塊,該模塊包括總線反轉編碼裝置,用於當模塊工作時減少通信總線上轉換的數量,該總線反轉編碼裝置適於將一組數據位與在前的一組數據位進行比較,以確定發送該組數據位所需的轉換的數量的指示,如果確定發送該組數據位所需的轉換數量大於該組數據位中位的總數的一半,則在發送之前反轉該組數據位,以及提供該組數據位是否被反轉的指示;適於產生該組數據位中數據位的相應副本的裝置;以及適於經由通信總線將該組數據位、它們相應的副本和該組數據位是否被反轉的指示發送到另一模塊的裝置。
在本發明的一個實施例中,適於產生數據位的相應副本的裝置進一步適於反轉相應的副本。
優選的是,提供了適於根據該組數據位產生第一奇偶校驗位的裝置,並且適於發送的所述裝置進一步適於將該第一奇偶校驗位發送到另一模塊。
優選的是,適於產生第一奇偶校驗位的裝置包括一個或多個邏輯門。
優選的是,提供了適於產生第一奇偶校驗位的副本的裝置,並且適於發送的所述裝置進一步適於將第一奇偶校驗位的副本發送到另一模塊。
在一個實施例中,適於產生第一奇偶校驗位的副本的裝置進一步適於反轉第一奇偶校驗位的副本。
在優選的實施例中,在第一奇偶校驗位及其相應的副本中對該組數據位是否被反轉的指示進行編碼。
優選的是,如果總線反轉編碼裝置對該組數據位進行反轉,那麼在發送之前將第一奇偶校驗位及其相應的副本進行反轉。
可選擇地,如果總線反轉編碼裝置沒有對該組數據位進行反轉,那麼在發送之前將第一奇偶校驗位及其相應的副本進行反轉。
在可選擇的實施例中,所述指示包括反轉信號。
優選的是,提供了用於產生所述反轉信號的副本的裝置;並且適於發送的所述裝置進一步適於將反轉信號的副本發送到另一模塊。
優選的是,適於產生反轉信號的副本的裝置進一步適於將反轉信號的副本反轉。
根據本發明的第二方面,提供了一種經由通信總線從另一模塊接收數據位組的模塊,該模塊包括適於接收一組數據位、該組數據位的相應副本、以及該組數據位是否被反轉的指示的裝置;適於在該組數據位是否被反轉的指示表明該組數據位沒有被反轉的情況下選擇所接收到的數據位以作為該模塊的輸出、以及在所述指示表明該組數據位被反轉的情況下選擇所接收到的數據位的反轉(inverse)以作為該模塊的輸出的裝置。
在一個實施例中,該組數據位的相應副本是被反轉的該組數據位的副本。
優選的是,該模塊包括用於檢測在所接收到的該組數據位中一個或多個差錯的存在的裝置。
優選的是,適於接收的所述裝置進一步適於從另一模塊接收第一奇偶校驗位,並且該模塊進一步包括適於根據所接收到的該組數據位產生第二奇偶校驗位的裝置。適於檢測在所接收到的該組數據位中一個或多個差錯的存在的裝置適於將第一和第二奇偶校驗位進行比較。
在一個實施例中,該模塊進一步包括用於校正所接收到的該組數據位中的差錯的裝置,所述用於校正差錯的裝置適於輸出所接收到的數據位或其相應副本以響應於由適於檢測的裝置所輸出的控制信號。
優選的是,適於接收的裝置進一步適於從另一模塊中接收第一奇偶校驗位的副本。
在優選的實施例中,在接收到的第一奇偶校驗位及其副本中對該組數據位是否被反轉的指示進行編碼。
優選的是,該模塊進一步包括適於根據該組數據位的相應副本產生第三奇偶校驗位的裝置以及適於比較所接收到的第一奇偶校驗位、所接收到的第一奇偶校驗位的副本、第二奇偶校驗位和第三奇偶校驗位以確定該組數據位是否被反轉的裝置。
在可選擇的實施例中,所述指示包括反轉信號。
優選的是,適於接收的裝置進一步適於從另一模塊中接收反轉信號的副本。
優選的是,反轉信號的副本是被反轉的反轉信號的副本。
優選的是,該模塊進一步包括用於檢測在所接收到的反轉信號或其相應副本中的差錯的存在的裝置。
優選的是,用於檢測在所接收到的反轉信號或其相應副本中的差錯的存在的裝置將所接收到的反轉信號和其相應副本進行比較。
根據本發明的第三方面,提供一種包括如上所述的用於發送的模塊和如上所述的用於接收的模塊的系統,所述模塊經由通信總線連接。
為了更好地理解本發明,並且為了更清楚地示出其可以如何被實現,現在將通過實例來對後面的附圖進行參考,其中圖1是典型容錯總線結構的示意圖。
圖2示出現有技術的雙軌總線結構。
圖3示出使用具有減少的接地反彈的雙軌編碼的系統。
圖4示出使用具有減少的接地反彈的雙軌編碼的可選系統。
圖5示出使用具有減少的接地反彈的雙軌編碼的另一系統。
圖6示出根據本發明第一實施例的發送模塊。
圖7示出根據本發明第一實施例的接收模塊。
圖8示出根據本發明第二實施例的發送模塊。
圖9示出根據本發明第二實施例的接收模塊。
圖10示出根據本發明第二實施例的發送模塊的可選配置。
在上述現有技術的雙軌編碼器中,在發送模塊中產生輸入數據位d0、d1、d2和d3的副本,並且這些副本用於校正由接收模塊在所接收到的數據位D0、D1、D2和D3中檢測到的差錯。
由於從發送模塊的輸出到通信總線的每條數據線具有攜帶該數據線上信號的相同副本的對應線,因此相對於不使用數據位的副本的系統增加了接地反彈以及同時切換的問題。
例如,考慮一種每條數據線具有高信號(即1 1 1 1)的四線總線。如果在每條數據線上存在到低信號的轉換(即需要四個轉換),那麼大量的電荷將被轉儲到接地面上,從而導致「接地反彈」。
現在,如果四線總線使用雙軌編碼,那麼對於四條數據線的每條數據線而言將存在附加的線路,每條附加線路攜帶它們相應數據線上的信號的副本。因此,如果每條數據線攜帶高信號(因此每條副本線也攜帶高信號),那麼每條數據線從高信號到低信號的轉換將導致8條線向接地面放電,從而引起兩倍的「接地反彈」,並且需要正常四線總線中的轉換的兩倍。
為了在使用雙軌編碼的結構中減少接地反彈的問題,增加了用於發送數據的代碼的AC和DC穩定性。也就是,當從高信號到低信號轉換的線路的數量與從低信號到高信號轉換的線路的數量相同並且攜帶高信號的線路的數量與攜帶低信號的線路的數量相同時,獲得了AC和DC穩定性。
圖3示出使用具有減少的接地反彈的雙軌編碼系統。在系統50中,存在攜帶數據位d0、d1、d2和d3的四個輸入數據軌。
如上所述,除了攜帶數據位d0、d1、d2和d3的數據線之外,還提供了攜帶數據位的副本的線。
然而,在通過通信總線54發送數據之前,通過對攜帶數據位的相應副本的線上的信號進行反轉,增加了系統50的AC和DC穩定性。
因此,數據位的副本被相應的反相器56、57、58和59反轉,並且被表示為c0、c1、c2和c3(注意從圖3起,c0、c1、c2和c3表示數據線上傳送的位的反轉副本,而不是如圖2中所述的非反轉副本)。
由於到通信總線54的攜帶數據位的每條線具有攜帶數據位的反轉副本的相應線,所以攜帶高信號的線的數量將與攜帶低信號的線的數量相同。因此,發送模塊52的輸出是DC穩定的。當轉換發生時,由於從第一狀態轉換到第二狀態的任一數據位將伴隨有從第二狀態轉換到第一狀態的其相應的反轉副本(反之亦然),所以從高信號到低信號的轉換數量將與從低信號到高信號的轉換數量相同。因此,發送模塊52的輸出是AC穩定的。因此,減少了由數據線上的轉換引起的通信總線54中的接地反彈問題。
形成發送模塊52的輸出的數據位d0、d1、d2和d3及其相應的反轉副本c0、c1、c2和c3經由通信總線54被發送到接收模塊60。
應該注意,雖然發送模塊52和接收模塊60可能不是與通信總線54分離的電路部件,但是它們可以形成單個集成單元。具體而言,發送模塊52可以是通信總線54的驅動器,以及模塊60可以是接收器。
在通信總線54上的傳輸期間,所發送的數據位及其相應的反轉副本可能變為「有錯誤的」,也就是,所發送的位可能被檢測為「1」而不是「0」,反之亦然。因此,在接收模塊60中接收到的數據位D0、D1、D2和D3及其相應的反轉副本C0、C1、C2和C3可能與由發送模塊52發送的數據位d0、d1、d2和d3及其相應的反轉副本c0、c1、c2、c3相同或者可能不同。
為了接收模塊60檢測到在所接收到的數據位D0、D1、D2和D3中的差錯,由發送模塊52計算奇偶校驗位dparity並將其提供給接收模塊60。通過使用奇偶校驗樹62在發送模塊52中對於將要發送的數據位計算該奇偶校驗位,該奇偶校驗樹在所說明的該系統中包括三個異或門。然而將會理解,奇偶校驗樹62可以包括邏輯門的其他組合。
發送模塊52然後經由通信總線54將奇偶校驗位dparity連同數據位d0、d1、d2和d3及其相應的反轉副本c0、c1、c2和c3一起發送到接收模塊60。
接收模塊60計算所接收到的數據位D0、D1、D2和D3的奇偶校驗位Rparity。使用奇偶校驗樹64來計算數據奇偶校驗位Rparity,所述奇偶校驗樹64在結構上與發送模塊52中的奇偶校驗樹62相同。
接收模塊60然後將數據奇偶校驗位Rparity與經由通信總線54接收的奇偶校驗位進行比較。在所說明的該系統中,由異或門66執行所述比較。然而將會理解,可以通過其他類型的邏輯門來執行所述比較。異或門66的輸出是多路復用器控制位s0。
多路復用器控制信號s0被饋入多個雙輸入多路復用器Mux0、Mux1、Mux2和Mux3,它們充當接收模塊60的校正電路。每個多路復用器Mux0、Mux1、Mux2和Mux3接收相應接收到的數據位D0、D1、D2或D3以及相應接收到的數據位的反轉副本C0、C1、C2或C3。
按照慣例,多路復用器控制位s0確定輸入到多路復用器中的哪個信號將用作多路復用器的輸出。當多路復用器控制位是低(即「0」)時,多路復用器的輸出將是接收到的數據位。然而,當多路復用器控制位是高(即「1」)時,多路復用器的輸出將是接收到的相關數據位的反轉副本。
然而將會理解,為了由多路復用器Mux0、Mux1、Mux2和Mux3校正所接收到的數據位D0、D1、D2和D3中的差錯,必須相對於所接收到數據位來對所接收到的數據位的反轉副本C0、C1、C2和C3進行反轉。
圖3示出用於實現這點的第一結構。這裡,每個接收到的數據位D0、D1、D2和D3在它們被輸入到相應的多路復用器Mux0、Mux1、Mux2和Mux3之前被相應的反相器68、69、70和71反轉。由於多路復用器的輸出現在是期望信號的反轉,所以另外的反相器72、73、74和75對多路復用器Mux0、Mux1、Mux2和Mux3的輸出分別進行反轉以形成接收模塊60的輸出信號,也就是信號out0、out1、out2和out3。
圖4示出用於相對於接收到的數據位來反轉所接收到的數據位的反轉副本的可選擇結構。這裡,每個接收到的反轉副本C0、C1、C2和C3在它們被輸入到相應的多路復用器Mux0、Mux1、Mux2和Mux3之前被相應的反相器76、77、78和79反轉。
因此,在這兩種結構中,當所接收的數據的奇偶校驗位Rparity與所接收的數據奇偶校驗位相同時,多路復用器控制位s0是「0」,其指示多路復用器Mux0、Mux1、Mux2和Mux3輸出所接收到的數據位D0、D1、D2和D3。然而,當所接收的數據的奇偶校驗位Rparity與所接收到的數據奇偶校驗位不同時,(因此所接收到的數據位D0、D1、D2和/或D3與所發送的數據位d0、d1、d2和d3不同)多路復用器控制位s0是「1」,其指示多路復用器Mux0、Mux1、Mux2和Mux3輸出所接收到的被發送的數據位的副本C0、C1、C2和C3。
在該系統中,假定了單差錯模型。也就是,假定在所接收到的數據或奇偶校驗位中僅出現一個差錯。因此,在所接收到的數據位、所接收到的副本位或所接收到的奇偶校驗位中可能存在差錯。所以,當所接收到的奇偶校驗位與從所接收到的數據位中產生的奇偶校驗位不同時,或者在數據位中存在差錯,或者在所接收到的奇偶校驗位中存在差錯。這意味著,如果所接收到的數據是正確的而所接收到的奇偶校驗位是錯誤的,那麼所述副本位將被用作接收模塊的輸出(當假定了單差錯模型時,副本位是正確的)。
將會理解,在上述的雙軌編碼系統中,如果奇偶校驗位連同數據位及其相應的反轉副本一起被發送到接收模塊60,那麼該發送不是理想地AC和DC穩定的。
為了實現理想的AC和DC穩定性,發送模塊產生數據奇偶校驗位的反轉副本,並且將其連同數據位、它們相應的反轉副本以及數據奇偶校驗位dparity一起發送到接收模塊。
圖5示出具有理想的AC和DC穩定性的系統。在圖5中,與圖3和4中所示的系統共同的特徵被給予相同的參考數字。
如上所述,為了實現經由通信總線54的發送時理想的AC和DC穩定性,所發送的數據奇偶校驗位dparity被反相器76複製、反轉,並且經由通信總線54被發送到接收模塊60。因此,由於每條數據線具有反轉副本,並且奇偶校驗位dparity具有反轉副本dparity』,所以該發送理想地是AC和DC穩定的。因此,消除了由在通信總線54處的轉換引起的接地反彈的問題。
在接收模塊60中,所接收到的數據奇偶校驗位的反轉副本經由電阻器78向接地面放電。
儘管已經減少了由在通信總線54處的轉換引起的接地反彈的問題,但是該系統的切換活動仍然比單軌系統高得多。
因此,根據本發明的第一方面,當總線中多於一半的數據線要切換時,使用總線反轉編碼來減少轉換的數量。在接收端,可以檢測到總線上數據的反轉狀態,並且可以讀出正確的數據。該技術意味著,不多於一半的線路將需要在任一時刻進行切換,從而減少了系統中的總切換活動。
作為總線反轉編碼的實例,考慮第一數據字1100經由總線被發送。經由總線要被發送的下一字是0010,這意味著在常規系統中,在頭三條線的每條線上將存在轉換。
然而,當多於一半的線路在任一時刻進行切換時,如在該實例中那樣,使用了總線反轉編碼,這意味著期望字的反轉經由總線被發送。因此在上面的實例中,總線的內容將被反轉以使第二字作為1101被發送。這然後在接收器中被反轉以獲得期望的字(0010)。因此,該技術將在總線上的三個轉換減少為(第四線上的)僅僅一個。
圖6示出根據本發明的第一方面的發送模塊的實施例。
發送模塊102具有用於接收要經由通信總線104進行發送的數據的四個輸入軌103。當然將會理解,發送模塊可以具有多於或少於四個的輸入軌。
當發送模塊102在工作時,數據位正被輸出到通信總線104。在合適的時間間隔之後,發送模塊102向通信總線104輸出一組新的數據位。
在圖6中,當前正在總線104上發送的數據位被表示為d0、d1、d2和d3。根據本發明,由於在總線104上正在發送的數據位可以被反轉,所以經由通信總線104而正在各個線105上發送的數據位(d0、d1、d2和d3)可以與由發送模塊102在其輸入軌103上最初所接收到的數據位不同。在輸入軌103上最初所接收到的數據位已被相應的鎖存器106所存儲,並且被分別表示為din0、din1、din2和din3。在此,這些數據位(din0、din1、din2和din3)將被共同稱為「第一數據字」。
在進行發送第一數據字(d0、d1、d2和d3)的同時,在輸入軌103上接收在第一數據字之後要由發送模塊102發送的下一組數據位,並且該組中的數據位被分別表示為din4、din5、din6和din7。在此,這些數據位(din4、din5、din6和din7)將被共同稱為「第二數據字」。
因此,根據所說明的本發明的該實施例,發送模塊102包括用於接收待發送的數據位的輸入軌103,並且這些軌103被連接到相應的鎖存器106。這些鎖存器存儲當前正在通信總線104上傳送的字的原始數據位(din0、din1、din2和din3)。每個鎖存器106的輸出被連接到相應異或門108的一個輸入。每個異或門108的另一輸入接收data_invert信號,該信號指示數據是否應該被反轉以發送當前數據字。
雖然在本領域中是公知的,但還是在下面示出異或門108之一的真值表
可以看出,當確定數據將不被反轉(即data_invert是「0」)時,數據線105上異或門的(以及因此發送模塊102的)輸出d與在輸入軌103上最初接收到的數據位din相同。然而,當確定數據應該被反轉(即data_invert是「1」)時,異或門的(以及因此發送模塊102的)輸出d與在輸入軌103上最初接收到的數據位din相反。
如上面參考圖3、4和5所述,經由線105正在傳送的數據位(d0、d1、d2和d3)的副本被產生,並且由相應的反相器110進行反轉以減少雙軌系統的接地反彈。在圖6中所示的模塊中,將這些數據位再次分別表示為c0、c1、c2和c3。
為了確定第二字的數據位(din4、din5、din6和din7)在傳送時是否應該被反轉,有必要將第二字的數據位與前一數據字的位進行比較。該比較確定了傳送第一組之後的第二組數據位所需的轉換的數量是否大於數據字中位的總數的一半。如果轉換的數量大於數據位的總數的一半,那麼下一數據字在發送之前應該被反轉。
在所說明的該實施例中,通過異或門112和比較電路114來執行所述比較。每個異或門112具有作為一個輸入的當前發送的數據位(d0、d1、d2或d3)、以及作為另一輸入的將被發送的下一數據位(din4、din5、din6或din7)。
因此,在當前發送的數據位與將被發送的下一數據位不同時,異或門112的輸出將是「1」。然而,如果當前發送的數據位與將被發送的下一數據位相同,該輸出將是「0」。
異或門112的輸出被饋入比較電路114。當發生第二數據字的傳送時,該比較電路114確定是否多於一半的線將改變。用於執行此的一種電路在圖6中被示出,並且包括三個或門和四個與門。將會理解,該配置(包括異或門112)是示例的,並且可以使用許多其他電路來比較兩個連續的數據字。
如果比較電路114確定多於一半的線將在下一總線轉換時改變(即異或門112的多於的一半的輸出是「1」),那麼該示例的比較電路的輸出將是「1」(指示數據應該在發送之前被反轉)。然而,如果比較電路114確定等於或小於一半的線將在下一總線轉換時改變,那麼該比較電路114的輸出將是「0」(指示數據不應該被反轉)。應該注意,該信號是用於第二數據字的data_invert信號。
在比較電路114的輸出處提供鎖存器116,在通信總線104上正傳送第一數據字的同時,該鎖存器116存儲第一數據字的data_invert信號。應該注意,從第一數據字位(din0、din1、din2和din3)與在發送第一數據字之前在總線104上所傳送的位之間的比較而導出了第一數據字的data_invert信號。
如上所述,鎖存器116的輸出即data_invert信號被提供給異或門108的第二輸入,如果要對數據進行反轉,那麼該異或門108在發送之前將位(din0、din1、din2和din3)進行反轉。
另外,為了在接收端讀出正確的數據,第二數據字是否被反轉的指示經由通信總線104被發送到接收模塊。在所說明的該實施例中,data_invert信號是該指示,並且經由通信總線104被發送到線118上的接收模塊。
優選的是,為了保持系統的AC和DC穩定性,以及因此通過對正經由通信總線104傳送的數據位的副本進行反轉而獲得的接地反彈的減少,data_invert信號的副本在發送模塊102中被產生,被反相器120反轉以形成信號data_invert』,並且經由通信總線104在線122上被發送。
優選的是,為了允許接收模塊校正所接收到的數據位中的差錯,通過奇偶校驗樹124產生奇偶校驗信號dparity。如上面參考圖2-5所述,從正被傳送的數據位(d0、d1、d2和d3)中產生奇偶校驗信號dparity。
將會理解,也可以根據構成第一數據字的位(din0、din1、din2和din3)來產生奇偶校驗信號。奇偶校驗信號daprity在兩種情況中將是相同的,因為對數據字進行反轉不改變奇偶校驗(從一組信號中產生的奇偶校驗與從這些信號的反轉副本中產生的奇偶校驗相同)。
再次如上所述,奇偶校驗信號的反轉副本由反相器126產生,並且經由通信總線104傳送,以維持系統的AC和DC穩定性。
還將會理解,當確定是否反轉數據時,可以考慮奇偶校驗信號dparity的轉換。例如,在該情況中(圖6中未示出),可以以與數據線上的信號相同的方式來處理當前正被傳送的數據字的奇偶校驗信號。也就是,當前的奇偶校驗信號能夠與下一數據字的奇偶校驗信號進行比較,並且能夠將該比較結果輸入到比較電路114。
此外,考慮data_invert信號的轉換以及當確定是否對傳送的數據進行反轉時考慮它們也是可能的。
本領域的技術人員將會理解,存在將這些選項實施為如圖6所示的系統的許多不同的方式。
圖7示出根據本發明第一方面的接收模塊的實施例。
接收模塊128被連接到通信總線104,並且接收所發送的數據位D0、D1、D2和D3以及它們各自的反轉副本C0、C1、C2和C3。
接收模塊128包括相應的反相器76、77、78和79,如上面參考圖4所述,它們用於反轉所接收到的數據位的副本以輸入到多路復用器(Mux0、Mux1、Mux2和Mux3)。接收模塊128也包括用於從所接收的數據位中產生奇偶校驗位Rparity的奇偶校驗樹64。如上所述,該奇偶校驗位與所接收到的奇偶校驗位Dparity相比較,並且確定多路復用器的控制位s0。
如上所述,當多於一半的線在開始傳送數據字時將進行切換時,所有的信號在總線104上進行傳送之前被反轉。因此,為了接收模塊128在其輸出(out0、out1、out2和out3)上提供正確的數據,每個多路復用器的輸出被連接到相應的異或門130。每個異或門130的第二輸入由所接收到的總線反轉信號Data_invert來提供。
因此,當總線上的數據被反轉(即Data_invert信號是「1」)並且多路復用器的輸出是正確的信號的反轉時,異或門130將對該信號進行反轉以提供正確的輸出。如果總線上的數據未被反轉(即Data_invert信號是「0」),那麼異或門130將輸出在多路復用器的輸出端上的信號。
所接收到的被反轉的數據奇偶校驗位Dparity』以及所接收到的被反轉的反轉信號Data_invert』經由電阻器被接地。
可選擇地,可以使用所接收到的被反轉的反轉信號Data_invert』來檢查所接收到的反轉信號Data_invert的差錯。在所接收到的反轉信號和所接收到的被反轉的反轉信號中不存在差錯的情況中,所述信號將是彼此相反的。然而,當在任一信號中出現差錯時,所接收到的反轉信號和所接收到的被反轉的反轉信號將是相同的。因此,在該情況中,必須請求重發所述數據,因為不可能確定哪個反轉信號包含差錯。
將會理解,根據本發明第一方面的上述實施例提供了一種具有減少的切換活動的雙軌編碼結構。
上述系統的一個缺點在於,需要附加的線來將反轉指示信號及其反轉傳送到接收模塊。
因此,根據本發明的第二方面,將第二組數據位是否被反轉的指示編碼為奇偶校驗信號及其副本。
圖8示出根據本發明第二方面的發送模塊的實施例。
圖8所示的模塊具有與圖6所示的模塊相同的許多部件,並且這些部件已被給予相同的參考數字。
在所說明的該實施例中,將奇偶校驗信號dparity和dparity』看作信號對,並且當總線104上的數據信號被反轉時,將奇偶校驗信號dparity和dparity』反轉。
使用鎖存器116的輸出(當前正在總線104上傳送的數據的數據反轉信號)來控制如上所述的異或門108的操作。另外,data_invert信號連同由奇偶校驗樹124產生的奇偶校驗信號一起被輸入到異或門132。如果總線104上的數據被反轉,那麼異或門132用來反轉奇偶校驗信號,或者如果總線104上的數據未被反轉,那麼異或門132用來傳送未被反轉的奇偶校驗信號。門132的輸出被表示為dparity,並且這在總線上的數據未被反轉的情況下等於數據的奇偶校驗,或者在總線上的數據被反轉的情況下等於數據的奇偶校驗的反轉。該奇偶校驗信號經由總線104而在線134上傳送。
dparity的反轉副本由反相器136產生,並且還經由數據總線104而在線138上傳送。應該注意,dparity』是dparity的反轉副本,而不是奇偶校驗樹124的輸出的反轉。
因此,當總線104上的數據被反轉時,所發送的奇偶校驗和被反轉的奇偶校驗是它們期望值的反轉。
圖9示出根據本發明第二實施例的接收器。將會注意,該系統不再能夠校正所接收到的信號中的差錯,因為使用奇偶校驗位來指示總線上數據的反轉。然而,有可能檢測所接收到的數據中的差錯,並且必要時請求重發。
接收模塊被連接到通信總線104,並且分別接收所發送的數據位D0、D1、D2和D3,它們各自的反轉副本C0、C1、C2和C3,以及奇偶校驗信號Dparity和反轉的奇偶校驗信號Dparity』。
與圖7所示的接收模塊對比,因為根據本發明該實施例的接收模塊128不能夠校正差錯,所以所接收到的數據位D0、D1、D2和D3被直接連接到相應的異或門130。如前所述,如果確定總線上的數據被反轉以進行傳送,那麼這些門用來反轉所接收到的數據。
為了接收模塊128確定總線104上的數據是否被反轉(以及因此其輸出應該被反轉以獲得正確的數據),所接收到的奇偶校驗信號必須與所接收到的數據進行比較。如上所述,根據一組數據位而計算的奇偶校驗將與根據被反轉的該組數據位而計算的奇偶校驗相同。因此,當接收模塊128比較所接收到的數據的奇偶校驗與所接收到的奇偶校驗時,在接收到的每個奇偶校驗與所計算的奇偶校驗間的不同將指示總線104上的數據被反轉以進行傳送,並且接收模塊128的輸出應該被反轉以獲得正確的數據。
因此,通過奇偶校驗樹64計算所接收到的數據的奇偶校驗位Rparity,並且通過異或門66將其與所接收到的奇偶校驗位Dparity進行比較。門66的輸出被表示為s0。當根據所接收到的數據位而計算的奇偶校驗Rparity與所接收到的奇偶校驗Dparity相同時,s0將是「0」。然而,當Rparity與Dparity不同時,s0將是「1」。
第二奇偶校驗樹140根據所接收到的數據位的副本C0、C1、C2和C3來計算奇偶校驗位Cparity。該奇偶校驗位被反相器142反轉,並通過異或門144與所接收到的被反轉的奇偶校驗Dparity』進行比較。門144的輸出被表示為t0。當根據所接收到的數據位的反轉副本而計算的奇偶校驗的反轉(Cparity的反轉)與所接收到的被反轉的奇偶校驗Dparity』相同時,t0將是「0」。然而,當Cparity的反轉與Dparity』不同時,t0將是「1」。
由與門146執行信號s0與t0的比較,其輸出被連接到每個異或門130。因此,當s0和t0都是「1」時,(即它們指示Rparity不等於Dparity,並且Cparity』不等於Dparity』),與門146的輸出是「1」,從而使異或門130反轉所接收到的數據位D0、D1、D2和D3。當s0和t0都是「0」時,(即它們指示Rparity等於Dparity,並且Cparity』等於Dparity』),與門146的輸出是「0」,從而使異或門130傳遞所接收到的未被反轉的數據位D0、D1、D2和D3。
然而,如果s0和t0中的一個為「1」,同時另一個為「0」,那麼在所接收到的數據位、所接收到的被反轉的副本或所接收到的奇偶校驗中在傳送時出現差錯。
因此,提供了具有作為輸入的s0和t0的異或門148,並且其輸出一個指示傳送是否包含差錯的信號(status_signal)。因此,當s0和t0不同時,異或門148的輸出將是「1」,從而指示差錯。然後這能夠被用來刪除當前接收到的數據並且請求重發。當s0和t0相同時,門148的輸出將是「0」,從而指示沒有檢測到差錯。
當status_signal指示差錯時存在若干可能的原因(應該注意在該系統中假定了單差錯模型)。
第一個原因可能是所接收到的奇偶校驗Dparity和Dparity』相等。在該情況中,確定哪個奇偶校驗包含差錯是不可能的,因為不知道總線104上的數據的狀態(即不知道在傳送之前數據是否被反轉)。
第二個原因可能是在所接收到的數據位(D0、D1、D2或D3)或所接收到的數據位的反轉副本(C0、C1、C2或C3)中存在差錯。如果用於所接收到的數據位的奇偶校驗(Rparity)與用於所接收到的數據位的反轉副本的奇偶校驗(Cparity)不同,那麼這指示在數據位或數據位的反轉副本中存在差錯。然而,校正該差錯是不可能的,並且需要重發。
將會理解,本發明的第二方面具有以下優點,即減少雙軌編碼結構中的切換活動,而不需要專用總線反轉信號。
圖10示出根據本發明第二方面的發送模塊的可選配置。
在該發送模塊102中,將異或門108放置在它們各自的鎖存器106之前。這意味著在將數據存儲在鎖存器中並經由總線104發送之前出現數據的反轉。被反轉的第二數據字位被表示為d4、d5、d6和d7。現在直接從比較電路114的輸出中取得控制異或門108的數據反轉信號。
該配置的優點在於避免了由於鎖存器106與反轉信號之間的定時失配而引起的總線104上的假信號。而且,先前通過鎖存器106切換並且然後通過門108反轉所切換的信號(例如在圖8所示的模塊中)而引起總線104上出現差錯的機會減少。
還將會理解,可以在例如圖2所示的常規雙軌系統中使用總線反轉編碼。在該情況中,既能夠通過在獨立的總線線路上所發送的數據反轉信號來指示在通信總線上正在傳送的數據的狀態,也能夠通過以與圖8和圖10所示系統類似的方式對奇偶校驗信號及其相應副本中的數據的狀態進行編碼來指示在通信總線上正在傳送的數據的狀態。
在後一情況中,如果接收模塊中所接收到的奇偶校驗信號都具有與根據接收到的數據位所計算的奇偶校驗相反的值,那麼在發送之前反轉數據,並且所接收到的數據位應該被反轉以獲得正確的數據字。如果所述奇偶校驗具有期望值(即它們都等於根據所接收到的數據位所計算的奇偶校驗),那麼在發送之前不反轉數據。如果所接收到的奇偶校驗不同,那麼在奇偶校驗位之一中出現差錯。
再者,當數據位的狀態被編碼成奇偶校驗信號及其副本時,校正所接收到的數據中的差錯是不可能的,但是仍然可能檢測到差錯。
本發明的另一優點在於,當沒有必要減少通信總線上的切換活動時,可以斷開總線反轉編碼電路。這可以通過將data_invert信號「固定」為單個值來實現,從而防止數據被反轉。
雖然參考了使用雙軌編碼的系統描述和說明了本發明,但是將會理解,本發明不限於所述系統,並且本發明的許多其他的應用對於本領域技術人員來說將是顯而易見的。
因此,提供了一種減少通信總線中的接地反彈並且最小化切換活動的方法和系統。
應該注意,上述實施例是說明而非限制本發明,並且本領域的技術人員將能夠在不脫離所附權利要求書的範圍的情況下設計許多可選實施例。詞「包括」並不排除不同於在權利要求中所列的元件或步驟的存在。
權利要求
1.一種經由通信總線(104)將數據位組發送到另一模塊的模塊(102),該模塊(102)包括-總線反轉編碼裝置(106、108、112、114、116),用於當模塊(102)工作時減少通信總線(104)上轉換的數量;該總線反轉編碼裝置(106、108、112、114、116)適於-將一組數據位與在前的一組數據位進行比較,以確定發送該組數據位所需的轉換的數量的指示;-如果確定發送該組數據位所需的轉換的數量大於該組數據位中位的總數的一半,那麼在發送之前反轉該組數據位;以及-提供該組數據位是否被反轉的指示;-適於產生該組數據位中數據位的相應副本的裝置;以及-適於經由通信總線將該組數據位、它們相應的副本以及該組數據位是否被反轉的指示發送到另一模塊的裝置。
2.如權利要求1所述的模塊,其中適於產生數據位的相應副本的裝置(110)進一步適於反轉相應的副本。
3.如權利要求1或2所述的模塊,進一步包括-適於根據該組數據位產生第一奇偶校驗位的裝置(124);其中適於發送的裝置進一步適於將第一奇偶校驗位發送到另一模塊。
4.如權利要求3所述的模塊,其中適於產生第一奇偶校驗位的裝置(124)包括一個或多個邏輯門。
5.如權利要求3或4所述的模塊,進一步包括-適於產生第一奇偶校驗位的副本的裝置,其中適於發送的裝置進一步適於將第一奇偶校驗位的副本發送到另一模塊。
6.如從屬於權利要求2的權利要求5所述的模塊,其中適於產生第一奇偶校驗位的副本的裝置(126)進一步適於反轉第一奇偶校驗位的副本。
7.如權利要求5或6所述的模塊,其中在第一奇偶校驗位及其相應的副本中對該組數據位是否被反轉的指示進行編碼。
8.如權利要求7所述的模塊,其中如果總線反轉編碼裝置(106、108、112、114、116)對該組數據位進行了反轉,那麼在發送之前將第一奇偶校驗位及其相應的副本進行反轉。
9.如權利要求7所述的模塊,其中如果總線反轉編碼裝置(106、108、112、114、116)沒有對該組數據位進行反轉,那麼在發送之前將第一奇偶校驗位及其相應的副本進行反轉。
10.如任何一項前述權利要求所述的模塊,其中總線反轉編碼裝置(106、108、112、114、116)包括一個或多個邏輯門。
11.如權利要求1至6之一所述的模塊,其中所述指示包括反轉信號。
12.如權利要求11所述的模塊,進一步包括-適於產生所述反轉信號的副本的裝置;其中適於發送的所述裝置進一步適於將反轉信號的副本發送到另一模塊。
13.如權利要求12所述的模塊,其中適於產生反轉信號的副本的裝置(120)進一步適於將反轉信號的副本進行反轉。
14.一種經由通信總線(104)從另一模塊接收數據位組的模塊(128),該模塊(128)包括-適於接收一組數據位、該組數據位的相應副本、以及該組數據位是否被反轉的指示的裝置;-適於在該組數據位是否被反轉的指示表明該組數據位沒有被反轉的情況下選擇所接收到的數據位以作為該模塊的輸出、以及在所述指示表明該組數據位已被反轉的情況下選擇所接收到的數據位的反轉以作為該模塊的輸出的裝置。
15.如權利要求14所述的模塊,其中該組數據位的相應副本是被反轉的該組數據位的副本。
16.如權利要求14或15所述的模塊,進一步包括用於檢測所接收到的該組數據位中一個或多個差錯的存在的裝置(64、66)。
17.如權利要求16所述的模塊,其中適於接收的裝置進一步適於從另一模塊接收第一奇偶校驗位;以及其中該模塊(128)進一步包括-適於根據所接收到的該組數據位產生第二奇偶校驗位的裝置(64);以及其中適於檢測所接收到的該組數據位中一個或多個差錯的存在的裝置(64、66)適於比較第一和第二奇偶校驗位。
18.如權利要求17所述的模塊,其中適於產生第二奇偶校驗位的裝置(64)包括一個或多個邏輯門。
19.如權利要求16、17或18所述的模塊,其中適於檢測所接收到的該組數據位中一個或多個差錯的存在的裝置(64、66)包括邏輯門。
20.如權利要求16至19之一所述的模塊,其中模塊(128)進一步包括用於校正所接收到的該組數據位中的差錯的裝置,所述用於校正差錯的裝置適於輸出所接收到的數據位或其相應副本以響應於由適於檢測的裝置(64、66)所輸出的控制信號。
21.如權利要求17、18或19中的一項所述的模塊,其中適於接收的裝置進一步適於從另一模塊中接收第一奇偶校驗位的副本。
22.如權利要求21所述的模塊,其中在所接收到的第一奇偶校驗位及其副本中對該組數據位是否被反轉的指示進行編碼。
23.如權利要求22所述的模塊,其中該模塊進一步包括-適於根據該組數據位的相應副本產生第三奇偶校驗位的裝置(140);-適於比較所接收到的第一奇偶校驗位、所接收到的第一奇偶校驗位的副本、第二奇偶校驗位和第三奇偶校驗位以確定該組數據位是否被反轉的裝置(66、144、146)。
24.如權利要求14至21之一所述的模塊,其中所述指示包括反轉信號。
25.如權利要求24所述的模塊,其中適於接收的裝置進一步適於從另一模塊中接收反轉信號的副本。
26.如權利要求25所述的模塊,其中反轉信號的副本是被反轉的反轉信號的副本。
27.如權利要求25或26所述的模塊,進一步包括用於檢測所接收到的反轉信號或其相應副本中差錯的存在的裝置。
28.如權利要求27所述的模塊,其中用於檢測所接收到的反轉信號或其相應副本中差錯的存在的裝置對所接收到的反轉信號與其相應副本進行比較。
29.一種系統,包括如權利要求1至13之一所述的用於發送的模塊(102)和如權利要求14至28之一所述的用於接收的模塊(128),所述模塊經由通信總線(104)進行連接。
全文摘要
提供了一種使用雙軌編碼以經由通信總線將數據位組發送到另一模塊的模塊,其具有減少的切換活動。該模塊包括總線反轉編碼裝置,其適於將一組數據位與在前的一組數據位進行比較以確定發送該組數據位所需的轉換的數量的指示,如果確定發送該組數據位所需的轉換的數量大於該組數據位中位的總數的一半,那麼在發送之前反轉該組數據位,以及提供該組數據位是否被反轉的指示;該模塊還包括適於產生該組數據位中數據位的相應副本的裝置;以及適於經由通信總線將該組數據位、它們相應的副本以及該組數據位是否被反轉的指示發送到另一模塊的裝置。
文檔編號G06F13/40GK1926528SQ200580006689
公開日2007年3月7日 申請日期2005年2月23日 優先權日2004年3月3日
發明者A·K·紐瓦蘭德 申請人:皇家飛利浦電子股份有限公司