TWI815777B - Dbi編碼裝置與dbi編碼方法 - Google Patents
Dbi編碼裝置與dbi編碼方法 Download PDFInfo
- Publication number
- TWI815777B TWI815777B TW112106439A TW112106439A TWI815777B TW I815777 B TWI815777 B TW I815777B TW 112106439 A TW112106439 A TW 112106439A TW 112106439 A TW112106439 A TW 112106439A TW I815777 B TWI815777 B TW I815777B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- bit
- data bus
- circuit
- inversion
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
本發明提供一種DBI(資料匯流排反轉)編碼裝置與DBI編碼方法。DBI編碼裝置包括比較器電路、第一可控反相電路以及第二可控反相電路。比較器電路檢查第一原始資料與第二原始資料之間的相異位元數量。基於相異位元數量,第一可控反相電路決定是否反相第一原始資料所對應的第一DBI位元做為第二原始資料所對應的第二DBI位元。第二可控反相電路基於第二DBI位元而決定:使用第二原始資料做為第二原始資料所對應的第二經編碼資料,或是反轉第二原始資料而產生第二經編碼資料。
Description
本發明是有關於一種資料編碼,且特別是有關於一種資料匯流排反轉(data bus inversion,DBI)編碼裝置與DBI編碼方法。
資料匯流排反轉(data bus inversion,DBI)是一種眾所周知的匯流排編碼技術。DBI編碼技術可以降低資料匯流排的資料位元轉態次數,進而降低傳送器電路為了改變資料位元邏輯態的功率消耗。DBI編碼技術使用稱為控制位元(或稱DBI位元)的額外位元對一組資料位進行DBI編碼,所述DBI位元用以指示匯流排所傳輸的當前經編碼資料是原始位元形式或是經反轉位元形式。先前技術的DBI編碼電路會比較/檢查匯流排所傳輸的當前經編碼資料(第一經編碼資料)與下一筆原始資料(第二原始資料)之間的相異位元數量。基於相異位元數量,DBI編碼電路可以決定是否反轉第二原始資料而產生下一筆經編碼資料(第二經編碼資料)。傳送器電路可以將第二經編碼資料以及DBI位元通過匯流排傳送給接收器電路。基於DBI位元,接收器電路可以知道匯流排所傳輸的當前經編碼資料(第一經編碼資料)是原始位元形式還是經反轉位元形式。若DBI位元指示第一經編碼資料是經反轉位元形式,則接收器電路可以反轉來自匯流排的第一經編碼資料而獲得第一原始資料。若DBI位元指示第一經編碼資料是原始位元形式,則接收器電路可以將來自匯流排的第一經編碼資料做為第一原始資料。
舉例來說,假設第一經編碼資料為「0000 0000」,而第二原始資料為「1111 1111」,則相異位元數量為8。基於相異位元數量「8」,DBI編碼電路決定反轉「1111 1111」而產生「0000 0000」做為第二經編碼資料。傳送器電路可以將第二經編碼資料「0000 0000」以及DBI位元「1」通過匯流排傳送給接收器電路。匯流排在第一時間傳輸第一經編碼資料「0000 0000」,而在第二時間傳輸第二經編碼資料「0000 0000」。因此,在第一時間到第二時間的期間中,匯流排的8個資料位元均沒有反轉。基於DBI位元「1」,接收器電路可以反轉來自匯流排的第二經編碼資料「0000 0000」而獲得第二原始資料「1111 1111」。接下來,假設第三原始資料為「0101 0100」,則第二經編碼資料「0000 0000」與下一筆原始資料(第三原始資料為「0101 0100」)之間的相異位元數量為3。基於相異位元數量「3」,DBI編碼電路決定使用第三原始資料為「0101 0100」做為第三經編碼資料。傳送器電路可以將第三經編碼資料「0101 0100」以及DBI位元「0」通過匯流排傳送給接收器電路。匯流排在第二時間傳輸第二經編碼資料「0000 0000」,而在第三時間傳輸第三經編碼資料「0101 0100」。因此,在第二時間到第三時間的期間中,匯流排有3個資料位元發生反轉。基於DBI位元「0」,接收器電路可以使用來自匯流排的第三經編碼資料「0101 0100」做為第三原始資料。
基於前段說明可以知道,先前技術的DBI編碼電路需要等到「第一經編碼資料與第二原始資料的比較」完成,確定第二經編碼資料後,才能進行「第二經編碼資料與第三原始資料的比較」。縱使多筆原始資料同時進入DBI編碼電路,先前技術的DBI編碼電路需要花費多個延遲時間去一級一級地進行「先前經編碼資料與目前原始資料的比較」,才能完成對所述多筆原始資料的DBI編碼操作。因此,如何快速地完成對所述多筆原始資料的DBI編碼操作,是本領域的諸多技術課題之一。
須注意的是,「先前技術」段落的內容是用來幫助了解本發明。在「先前技術」段落所揭露的部份內容(或全部內容)可能不是所屬技術領域中具有通常知識者所知道的習知技術。在「先前技術」段落所揭露的內容,不代表該內容在本發明申請前已被所屬技術領域中具有通常知識者所知悉。
本發明提供一種資料匯流排反轉(data bus inversion,DBI)編碼裝置與DBI編碼方法,以將多筆原始資料(raw data)進行DBI編碼而產生多筆經編碼資料。
在本發明的一實施例中,上述的DBI編碼裝置包括第一比較器電路、第一可控反相電路以及第二可控反相電路。第一比較器電路用以檢查這些原始資料中的第一原始資料與第二原始資料之間的第一相異位元數量,以及比較第一相異位元數量與第一參考值而獲得第一比較結果。第一可控反相電路耦接至第一比較器電路,以接收該第一比較結果。第一可控反相電路接收第一原始資料所對應的第一DBI位元,以及輸出第二原始資料所對應的第二DBI位元。第一可控反相電路基於第一比較結果而決定,使用第一DBI位元做為第二DBI位元,或是反轉第一DBI位元而產生第一經反轉位元做為第二DBI位元。第二可控反相電路耦接至第一可控反相電路,以接收第二DBI位元。第二可控反相電路接收第二原始資料,以及輸出第二原始資料所對應的第二經編碼資料。第二可控反相電路基於該第二DBI位元而決定,使用第二原始資料做為第二經編碼資料,或是反轉第二原始資料而產生第一經反轉資料做為第二經編碼資料。
在本發明的一實施例中,上述的DBI編碼方法包括:檢查這些原始資料中的第一原始資料與第二原始資料之間的第一相異位元數量;比較第一相異位元數量與第一參考值而獲得第一比較結果;基於第一比較結果而決定,使用第一原始資料所對應的第一DBI位元做為第二原始資料所對應的第二DBI位元,或是反轉第一DBI位元而產生第一經反轉位元做為第二DBI位元;以及基於第二DBI位元而決定,使用第二原始資料做為第二原始資料所對應的第二經編碼資料,或是反轉第二原始資料而產生第一經反轉資料做為第二經編碼資料。
基於上述,本發明諸實施例所述DBI編碼裝置是比較先前原始資料與目前原始資料,而不是比較先前經編碼資料與目前原始資料。因此,所述DBI編碼裝置可以不需等待先前經編碼資料的決定/編碼。當多筆原始資料同時進入DBI編碼裝置時,DBI編碼裝置可以同時比較所述多筆原始資料以便進行DBI編碼而產生多筆經編碼資料。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。本案說明書全文(包括申請專利範圍)中提及的「第一」、「第二」等用語是用以命名元件(element)的名稱,或區別不同實施例或範圍,而並非用來限制元件數量的上限或下限,亦非用來限制元件的次序。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明一實施例所繪示的一種通訊系統的電路方塊(circuit block)示意圖。圖1所示通訊系統包括傳送裝置10以及接收裝置20。本實施例並不限制傳送裝置10以及接收裝置20的產品類別。舉例來說,依照實際設計,傳送裝置10以及(或是)接收裝置20可以是晶粒(die)、晶片(chip)、積體電路、電子裝置或是其他裝置/元件。一個晶粒(例如,處理器晶粒或ASIC晶粒)可通過通訊介面與一個或多個晶粒連接。舉例來說,所述晶粒可以是處理器晶粒、特殊應用積體電路(Application-specific integrated circuit,ASIC)晶粒、串列器-解串列器(Serializer-Deserializer,SerDes)晶粒或是其他晶粒。一個ASIC晶粒可與多個SerDes晶粒連接,以用於各種週邊通訊。ASIC晶粒和SerDes晶粒可以通過設置於中介層(interposer layer)或重佈線層(redistribution layer,RDL)中的繞線結構(佈線和接觸元件)相互連接,以實現基板上晶圓上晶片(chip-on-wafer-on-substrate,CoWoS)平臺或整合扇出型(Integrated Fan-Out,InFO)平臺。
傳送裝置10可通過通訊介面IF1與接收裝置20連接。依照實際設計與應用,在傳送裝置10與接收裝置20是兩顆晶粒的實施範例中,通訊介面IF1可以是任何小裸晶互連(die-to-die interconnect)標準所規範的介面。舉例來說,通訊介面IF1可以是符合通用小芯片互連快速(Universal Chiplet Interconnect Express,UCIe)標準所規範的介面。
傳送裝置10可以經由通訊介面IF1的資料通道傳送資料單元串流給接收裝置20。一般而言,為了降低位元反轉所導致的功耗,傳送裝置10的資料匯流排反轉(data bus inversion,DBI)編碼裝置200可以將多筆原始資料(raw data)進行DBI編碼,以將多筆原始資料D_raw轉換為多筆經編碼資料D_out以及多個DBI位元DB。例如,DBI編碼裝置200可以比較第一原始資料D_raw[1]與第二原始資料D_raw[2],然後依據比較結果而決定:使用第二原始資料D_raw[2]做為第二經編碼資料D_out[2],或是反轉第二原始資料D_raw[2]而產生經反轉資料做為第二經編碼資料D_out[2]。DBI編碼裝置200是比較先前原始資料與目前原始資料,而不是比較先前經編碼資料與目前原始資料。因此,DBI編碼裝置200可以不需等待先前經編碼資料的決定/編碼。當多筆原始資料D_raw同時進入DBI編碼裝置200時,DBI編碼裝置200可以同時比較所述多筆原始資料D_raw以便進行DBI編碼而產生多筆經編碼資料D_out。
傳送裝置10的實體層電路11可以將經編碼資料D_out以及DBI位元DB傳送給接收裝置20。在接收裝置20的實體層電路21接獲來自傳送裝置10的經編碼資料D_out以及DBI位元DB後,接收裝置20的DBI解碼裝置22可以基於DBI位元DB對經編碼資料D_out進行DBI解碼以恢復原始資料D_raw。
舉例來說,下述表1是原始資料D_raw、經編碼資料D_out與DBI位元DB的一個具體範例。DBI編碼裝置200可以進行DBI編碼,以將表1所示原始資料D_raw轉換為經編碼資料D_out以及DBI位元DB。DBI位元DB可以指示匯流排(通訊介面IF1)所傳輸的當前經編碼資料是原始位元形式還是經反轉位元形式。表1所示第一經編碼資料D_out[1]的DBI位元DB[1]為「0」,其表示第一經編碼資料D_out[1]是原始位元形式(亦即第一經編碼資料D_out[1]相同於第一原始資料D_raw[1])。DBI編碼裝置200可以比較第一原始資料D_raw[1]「0000 0000」與第二原始資料D_raw[2]「1111 1111」,然後依據比較結果而決定反轉第二原始資料D_raw[2]而產生經反轉資料「0000 0000」做為第二經編碼資料D_out[2]。實體層電路11可以將第二經編碼資料D_out[2]「0000 0000」以及第二DBI位元DB[2]「1」傳送給接收裝置20,其中第二DBI位元DB[2]為“1”表示第二經編碼資料D_out[2]為經反轉位元形式。在實體層電路21接獲來自傳送裝置10的第二經編碼資料D_out[2]「0000 0000」以及第二DBI位元DB[2]「1」後,DBI解碼裝置22可以基於第二DBI位元DB[2]「1」對第二經編碼資料D_out[2]「0000 0000」進行DBI解碼(位元反轉)以產生/還原第二原始資料D_raw[2]。
表1:原始資料與經編碼資料的具體範例
D_raw | D_out | DB | |
[1] | 0000 0000 | 0000 0000 | 0 |
[2] | 1111 1111 | 0000 0000 | 1 |
[3] | 0101 0100 | 0101 0100 | 0 |
[4] | 1010 1110 | 0101 0001 | 1 |
[5] | 1011 1000 | 0100 0111 | 1 |
[6] | 0000 0000 | 1111 1111 | 1 |
[7] | 0000 0010 | 1111 1101 | 1 |
[8] | 0100 0110 | 1011 1001 | 1 |
DBI編碼裝置200可以比較第二原始資料D_raw[2]「1111 1111」與第三原始資料D_raw[3]「0101 0100」,然後依據比較結果而決定使用第三原始資料D_raw[3]「0101 0100」做為第三經編碼資料D_out[3]。實體層電路11可以將第三經編碼資料D_out[3]「0101 0100」以及第三DBI位元DB[3]「0」傳送給接收裝置20。在實體層電路21接獲來自傳送裝置10的第三經編碼資料D_out[3]「0101 0100」以及第三DBI位元DB[3]「0」後,DBI解碼裝置22可以基於第三DBI位元DB[3]「0」對第三經編碼資料D_out[3]「0101 0100」進行DBI解碼(不反轉)以產生/還原第三原始資料D_raw[3]。表1所示其他經編碼資料D_out[4]~D_out[8]以及其他DBI位元DB[4]~DB[8]可以參照經編碼資料D_out[1]~D_out[3]以及DBI位元DB[1]~DB[3]的相關說明並且加以類推,故不再贅述。
基於上述,所述DBI編碼裝置200是比較先前原始資料與目前原始資料,而不是比較先前經編碼資料與目前原始資料。因此,所述DBI編碼裝置200可以不需等待先前經編碼資料的決定/編碼。當多筆原始資料D_raw[1]~D_raw[8](或是更多筆原始資料)同時進入DBI編碼裝置200時,DBI編碼裝置200可以同時比較所述多筆原始資料D_raw[1]~D_raw[8]以便進行DBI編碼而產生多筆經編碼資料D_out[1]~D_out[8]與DBI位元DB[1]~DB[8]。
圖2是依照本發明一實施例所繪示的一種DBI編碼裝置200的電路方塊示意圖。圖2所示DBI編碼裝置200可以做為圖1所示DBI編碼裝置200的諸多實施範例之一。在圖2所示實施例中,DBI編碼裝置200包括一個或多個DBI編碼單元電路,例如圖2所示DBI編碼單元電路200_1、200_2、…。DBI編碼單元電路的具體數量可以依據實際設計來決定。這些DBI編碼單元電路可以將多筆原始資料(例如D_raw[0]、D_raw[1]、D_raw[2]、…)進行DBI編碼而產生多筆經編碼資料(例如D_out[1]、D_out[2]、…)與多個DBI位元(例如DB[0]、DB[1]、DB[2]、…)。
在圖2所示實施例中,DBI編碼裝置200的DBI編碼單元電路200_1包括比較器電路210_1、可控反相電路220_1以及可控反相電路230_1。比較器電路210_1可以檢查原始資料D_raw[0]與原始資料D_raw[1]之間的第一相異位元數量,以及比較第一相異位元數量與參考值而獲得比較結果211_1。所述參考值可以依據實際設計來決定。舉例來說,所述參考值可以是原始資料(例如D_raw[0]、D_raw[1]或D_raw[2])的位元數量的一半。若以上述表1為例,原始資料D_raw的位元數量為8,則所述參考值可以是4。當第一相異位元數量小於等於參考值時,比較結果211_1為邏輯「偽」(例如低邏輯準位)。當第一相異位元數量大於參考值時,比較結果211_1為邏輯「真」(例如高邏輯準位)。
依照不同的設計需求,在一些實施例中,上述DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的實現方式可以是硬體(hardware)電路。在另一些實施例中,DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的實現方式可以是韌體(firmware)、軟體(software,即程式)或是前述二者的組合形式。在又一些實施例中,DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的實現方式可以是硬體、韌體、軟體中的多者的組合形式。
以硬體形式而言,上述DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1可以實現於積體電路(integrated circuit)上的邏輯電路。舉例來說,DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的相關功能可以被實現於一或多個控制器、微控制器(Microcontroller)、微處理器(Microprocessor)、特殊應用積體電路(Application-specific integrated circuit,ASIC)、數位訊號處理器(digital signal processor,DSP)、場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA)及/或其他處理單元中的各種邏輯區塊、模組和電路。DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的相關功能可以利用硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為硬體電路,例如積體電路中的各種邏輯區塊、模組和電路。
以軟體形式及/或韌體形式而言,上述DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的相關功能可以被實現為編程碼(programming codes)。例如,利用一般的編程語言(programming languages,例如C、C++或組合語言)或其他合適的編程語言來實現DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1。所述編程碼可以被記錄/存放在「非臨時的電腦可讀取媒體(non-transitory computer readable medium)」中。在一些實施例中,所述非臨時的電腦可讀取媒體例如包括半導體記憶體以及(或是)儲存裝置。所述半導體記憶體包括記憶卡、唯讀記憶體(Read Only Memory,ROM)、快閃記憶體(FLASH memory)、可程式設計的邏輯電路或是其他半導體記憶體。電子設備(例如中央處理器(Central Processing Unit,CPU)、控制器、微控制器或微處理器)可以從所述非臨時的電腦可讀取媒體中讀取並執行所述編程碼,從而實現DBI編碼裝置200、DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及(或是)可控反相電路230_1的相關功能。
圖3是依照本發明一實施例所繪示的一種DBI編碼方法的流程示意圖。請參照圖2與圖3。在步驟S310中,比較器電路210_1可以檢查原始資料D_raw[0]與原始資料D_raw[1]之間的第一相異位元數量。舉例來說,假設原始資料D_raw[0]為「0000 0000」且原始資料D_raw[1]為「1111 1111」,則第一相異位元數量為8。假設原始資料D_raw[0]為「1111 1111」且原始資料D_raw[1]為「0101 0100」,則第一相異位元數量為5。假設原始資料D_raw[0]為「0000 0000」且原始資料D_raw[1]為「0000 0010」,則第一相異位元數量為1。
在步驟S320中,比較器電路210_1可以比較第一相異位元數量與參考值而獲得比較結果211_1。在此假設原始資料D_raw的位元數量為8,則所述參考值可以是4。假設原始資料D_raw[0]為「0000 0000」且原始資料D_raw[1]為「1111 1111」,則比較結果211_1為高邏輯準位(因為第一相異位元數量為8)。假設原始資料D_raw[0]為「0000 0000」且原始資料D_raw[1]為「0000 0010」,則比較結果211_1為低邏輯準位(因為第一相異位元數量為1)。
可控反相電路220_1耦接至比較器電路210_1,以接收比較結果211_1。可控反相電路220_1還接收原始資料D_raw[0]所對應的DBI位元DB[0],以及輸出原始資料D_raw[1]所對應的DBI位元DB[1]。在步驟S330中,可控反相電路220_1基於比較結果211_1而決定:使用DBI位元DB[0]做為DBI位元DB[1],或是反轉DBI位元DB[0]而產生經反轉位元做為DBI位元DB[1]。舉例來說,當比較結果211_1表示第一相異位元數量小於等於參考值時,可控反相電路220_1使用DBI位元DB[0]做為DBI位元DB[1]。當比較結果211_1表示第一相異位元數量大於參考值時,可控反相電路220_1反轉DBI位元DB[0]而產生經反轉位元做為DBI位元DB[1]。假設原始資料D_raw[0]為「0000 0000」且DBI位元DB[0]為「0」且原始資料D_raw[1]為「1111 1111」,則可控反相電路220_1反轉DBI位元DB[0]「0」而產生經反轉位元「1」做為DBI位元DB[1](因為第一相異位元數量「8」大於參考值「4」)。假設原始資料D_raw[0]為「0000 0000」且DBI位元DB[0]為「1」且原始資料D_raw[1]為「0000 0010」,則可控反相電路220_1使用DBI位元DB[0]「1」做為DBI位元DB[1](因為第一相異位元數量「1」小於等於參考值「4」)。
可控反相電路230_1耦接至可控反相電路220_1,以接收DBI位元DB[1]。可控反相電路230_1接收原始資料D_raw[1]以及輸出原始資料D_raw[1]所對應的經編碼資料D_out[1]。在步驟S340中,可控反相電路230_1基於DBI位元DB[1]而決定:使用原始資料D_raw[1]做為原始資料D_raw[1]所對應的經編碼資料D_out[1],或是反轉原始資料D_raw[1]而產生經反轉資料做為經編碼資料D_out[1]。舉例來說,當DBI位元DB[1]為第一邏輯值(例如低邏輯準位)時,可控反相電路230_1使用原始資料D_raw[1]做為經編碼資料D_out[1]。當DBI位元DB[1]為第二邏輯值(例如高邏輯準位)時,可控反相電路230_1反轉原始資料D_raw[1]而產生經反轉資料做為經編碼資料D_out[1]。假設原始資料D_raw[0]為「0000 0000」且DBI位元DB[0]為「0」且原始資料D_raw[1]為「1111 1111」,則DBI位元DB[1]為「1」(因為比較結果211_1表示第一相異位元數量「8」大於參考值「4」),以及經編碼資料D_out[1]為原始資料D_raw[1]的經反轉資料「0000 0000」(因為DBI位元DB[1]為「1」)。假設原始資料D_raw[0]為「0000 0000」且DBI位元DB[0]為「1」且原始資料D_raw[1]為「0000 0010」,則DBI位元DB[1]為「1」(因為比較結果211_1表示第一相異位元數量「1」小於等於參考值「4」),以及經編碼資料D_out[1]為原始資料D_raw[1]的經反轉資料「1111 1101」(因為DBI位元DB[1]為「1」)。
DBI編碼單元電路200_2包括比較器電路210_2、可控反相電路220_2以及可控反相電路230_2。比較器電路210_2可以檢查原始資料D_raw[1]與原始資料D_raw[2]之間的第二相異位元數量,以及比較第二相異位元數量與參考值而獲得比較結果211_2。可控反相電路220_2耦接至比較器電路210_2,以接收比較結果211_2。可控反相電路220_2耦接至可控反相電路220_1,以接收DBI位元DB[1]。可控反相電路220_2輸出原始資料D_raw[2]所對應的DBI位元DB[2]。可控反相電路220_2基於比較結果211_2而決定:使用DBI位元DB[1]做為DBI位元DB[2],或是反轉DBI位元DB[1]而產生經反轉位元做為DBI位元DB[2]。可控反相電路230_2耦接至可控反相電路220_2,以接收DBI位元DB[2]。可控反相電路230_2接收原始資料D_raw[2]以及輸出原始資料D_raw[2]所對應的經編碼資料D_out[2]。可控反相電路230_2基於DBI位元DB[2]而決定:使用原始資料D_raw[2]做為經編碼資料D_out[2],或是反轉原始資料D_raw[2]而產生經反轉資料做為經編碼資料D_out[2]。DBI編碼單元電路200_2、比較器電路210_2、可控反相電路220_2以及可控反相電路230_2可以參照DBI編碼單元電路200_1、比較器電路210_1、可控反相電路220_1以及可控反相電路230_1的相關說明並且加以類推,故在此不予贅述。
DBI編碼裝置200的其他DBI編碼單元電路(圖2未繪示)可以參照DBI編碼單元電路200_1與DBI編碼單元電路200_2的相關說明並且加以類推,故不再贅述。基於上述,所述DBI編碼裝置200的多個DBI編碼單元電路(例如200_1、200_2、…)的每一個是比較兩個原始資料,而不是比較經編碼資料與原始資料。因此,這些DBI編碼單元電路的比較器電路(例如210_1、210_2、…)可以不需等待先前經編碼資料的決定/編碼。
上述可控反相電路(例如220_1、220_2、…以及/或是230_1、230_2、…)的實現方式可以依照實際設計來決定。舉例來說,上述可控反相電路的實現方式可以參照下述圖4所示可控反相電路的相關說明,或是參照下述圖5所示可控反相電路的相關說明。
圖4是依照本發明一實施例所繪示的一種可控反相電路的電路方塊示意圖。圖4所示DBI編碼單元電路200_2可以做為圖2所示DBI編碼單元電路200_2的諸多實施範例之一。圖2所示其他DBI編碼單元電路(例如200_1)可以參照圖4所示DBI編碼單元電路200_2的相關說明並且加以類推,故不再贅述。
在圖4所示實施例中,可控反相電路220_2包括反閘221以及多工器222。反閘221的輸入端接收DBI位元DB[1]。反閘221可以基於DBI位元DB[1]產生經反轉位元DB’[1]。多工器222的第一選擇端接收DBI位元DB[1]。多工器222的第二選擇端耦接至反閘221的輸出端,以接收所述經反轉位元DB’[1]。多工器222的控制端耦接至比較器電路210_2,以接收比較結果211_2。多工器222基於比較結果211_2選擇將DBI位元DB[1]與經反轉位元DB’[1]其中一者做為DBI位元DB[2]提供給可控反相電路230_2。舉例來說,當比較結果211_2為邏輯0(表示原始資料D_raw[1]與D_raw[2]之間相異位元數量小於等於參考值)時,多工器222選擇將DBI位元DB[1]提供給可控反相電路230_2。當比較結果211_2為邏輯1(表示原始資料D_raw[1]與D_raw[2]之間相異位元數量大於參考值)時,多工器222選擇將經反轉位元DB’[1]提供給可控反相電路230_2。
在圖4所示實施例中,可控反相電路230_2包括反相電路231以及多工器電路232。反相電路231接收原始資料D_raw[2]。反相電路231基於原始資料D_raw[2]產生經反轉資料D_raw’[2]。舉例來說,假設原始資料D_raw[2]為「0000 0010」,則經反轉資料D_raw’[2]為「1111 1101」。多工器電路232耦接至反相電路231,以接收經反轉資料D_raw’[2]。多工器電路232還接收原始資料D_raw[2]。多工器電路232的控制端耦接至可控反相電路220_2,以接收DBI位元DB[2]。多工器電路232基於DBI位元DB[2]選擇原始資料D_raw[2]以及經反轉資料D_raw’[2]其中一者做為經編碼資料D_out[2]。舉例來說,當DBI位元DB[2]為邏輯0時,多工器電路232選擇原始資料D_raw[2]做為經編碼資料D_out[2]。當DBI位元DB[2]為邏輯1時,多工器電路232選擇經反轉資料D_raw’[2]做為經編碼資料D_out[2]。
圖5是依照本發明另一實施例所繪示的一種可控反相電路的電路方塊示意圖。圖5所示DBI編碼單元電路200_2可以做為圖2所示DBI編碼單元電路200_2的諸多實施範例之一。圖2所示其他DBI編碼單元電路(例如200_1)可以參照圖5所示DBI編碼單元電路200_2的相關說明並且加以類推,故不再贅述。
在圖5所示實施例中,可控反相電路220_2包括互斥或閘(exclusive-OR gate,XOR gate)223。互斥或閘223的第一輸入端接收DBI位元DB[1]。互斥或閘223的第二輸入端耦接至比較器電路210_2,以接收比較結果211_2。互斥或閘223基於DBI位元DB[1]與比較結果211_2產生DBI位元DB[2]。互斥或閘223的輸出端提供DBI位元DB[2]給可控反相電路230_2。
在圖5所示實施例中,可控反相電路230_2包括互斥或閘電路233。互斥或閘電路233接收原始資料D_raw[2]。互斥或閘電路233耦接至可控反相電路220_2,以接收DBI位元DB[2]。互斥或閘電路233基於原始資料D_raw[2]與DBI位元DB[2]產生以及輸出經編碼資料D_out[2]。
綜上所述,上述諸實施例所述DBI編碼裝置200的任何一個比較器電路是比較兩個原始資料,而不是比較經編碼資料與原始資料。因此,這些比較器電路可以不需等待經編碼資料的決定/編碼。當多筆原始資料同時進入DBI編碼裝置200時,DBI編碼裝置200的這些比較器電路可以同時比較所述多筆原始資料以便進行DBI編碼而產生多筆經編碼資料。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10:傳送裝置
11、21:實體層電路
20:接收裝置
22:資料匯流排反轉(DBI)解碼裝置
200:DBI編碼裝置
200_1、200_2:DBI編碼單元電路
210_1、210_2:比較器電路
211_1、211_2:比較結果
220_1、220_2、230_1、230_2:可控反相電路
221:反閘
222:多工器
223:互斥或閘
231:反相電路
232:多工器電路
233:互斥或閘電路
D_out、D_out[1]、D_out[2]:經編碼資料
D_raw、D_raw[0]、D_raw[1]、D_raw[2]:原始資料
D_raw’[2]:經反轉資料
DB、DB[0]、DB[1]、DB[2]:DBI位元
DB’[1]:經反轉位元
IF1:通訊介面
S310、S320、S330、S340:步驟
圖1是依照本發明一實施例所繪示的一種通訊系統的電路方塊(circuit block)示意圖。
圖2是依照本發明一實施例所繪示的一種DBI編碼裝置的電路方塊示意圖。
圖3是依照本發明一實施例所繪示的一種DBI編碼方法的流程示意圖。
圖4是依照本發明一實施例所繪示的一種可控反相電路的電路方塊示意圖。
圖5是依照本發明另一實施例所繪示的一種可控反相電路的電路方塊示意圖。
200:資料匯流排反轉(DBI)編碼裝置
200_1、200_2:DBI編碼單元電路
210_1、210_2:比較器電路
211_1、211_2:比較結果
220_1、220_2、230_1、230_2:可控反相電路
D_out[1]、D_out[2]:經編碼資料
D_raw[0]、D_raw[1]、D_raw[2]:原始資料
DB[0]、DB[1]、DB[2]:DBI位元
Claims (18)
- 一種資料匯流排反轉編碼裝置,用以將多筆原始資料進行資料匯流排反轉編碼而產生多筆經編碼資料,包括: 一第一比較器電路,用以檢查該些原始資料中的一第一原始資料與一第二原始資料之間的一第一相異位元數量,以及比較該第一相異位元數量與一第一參考值而獲得一第一比較結果; 一第一可控反相電路,耦接至該第一比較器電路以接收該第一比較結果,其中該第一可控反相電路接收該第一原始資料所對應的一第一資料匯流排反轉位元以及輸出該第二原始資料所對應的一第二資料匯流排反轉位元,以及該第一可控反相電路基於該第一比較結果而決定使用該第一資料匯流排反轉位元做為該第二資料匯流排反轉位元或是反轉該第一資料匯流排反轉位元而產生一第一經反轉位元做為該第二資料匯流排反轉位元;以及 一第二可控反相電路,耦接至該第一可控反相電路以接收該第二資料匯流排反轉位元,其中該第二可控反相電路接收該第二原始資料以及輸出該第二原始資料所對應的一第二經編碼資料,以及該第二可控反相電路基於該第二資料匯流排反轉位元而決定使用該第二原始資料做為該第二經編碼資料或是反轉該第二原始資料而產生一第一經反轉資料做為該第二經編碼資料。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中, 當該第一比較結果表示該第一相異位元數量小於等於該第一參考值時,該第一可控反相電路使用該第一資料匯流排反轉位元做為該第二資料匯流排反轉位元;以及 當該第一比較結果表示該第一相異位元數量大於該第一參考值時,該第一可控反相電路反轉該第一資料匯流排反轉位元而產生該第一經反轉位元做為該第二資料匯流排反轉位元。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中, 當該第二資料匯流排反轉位元為一第一邏輯值時,該第二可控反相電路使用該第二原始資料做為該第二經編碼資料;以及 當該第二資料匯流排反轉位元為一第二邏輯值時,該第二可控反相電路反轉該第二原始資料而產生該第一經反轉資料做為該第二經編碼資料。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中該第一參考值為該第一原始資料或該第二原始資料的一位元數量的一半。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中該第一可控反相電路包括: 一反閘,具有一輸入端接收該第一資料匯流排反轉位元;以及 一多工器,具有一第一選擇端接收該第一資料匯流排反轉位元,其中該多工器的一第二選擇端耦接至該反閘的一輸出端以接收該第一經反轉位元,該多工器的一控制端耦接至該第一比較器電路以接收該第一比較結果,以及該多工器的一共同端提供該第二資料匯流排反轉位元給該第二可控反相電路。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中該第一可控反相電路包括: 一互斥或閘,具有一第一輸入端接收該第一資料匯流排反轉位元,其中該互斥或閘的一第二輸入端耦接至該第一比較器電路以接收該第一比較結果,以及該互斥或閘的一輸出端提供該第二資料匯流排反轉位元給該第二可控反相電路。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中該第二可控反相電路包括: 一反相電路,用以接收該第二原始資料以產生該第一經反轉資料;以及 一多工器電路,用以接收該第二原始資料,其中該多工器電路耦接至該反相電路以接收該第一經反轉資料,該多工器電路的一控制端耦接至該第一可控反相電路以接收該第二資料匯流排反轉位元,以及該多工器電路基於該第二資料匯流排反轉位元選擇該第二原始資料以及該第一經反轉資料其中一者做為該第二經編碼資料。
- 如請求項1所述的資料匯流排反轉編碼裝置,其中該第二可控反相電路包括: 一互斥或閘電路,用以接收該第二原始資料,其中該互斥或閘電路耦接至該第一可控反相電路以接收該第二資料匯流排反轉位元,以及該互斥或閘電路輸出該第二經編碼資料。
- 如請求項1所述的資料匯流排反轉編碼裝置,更包括: 一第二比較器電路,用以檢查該第二原始資料與該些原始資料中的一第三原始資料之間的一第二相異位元數量,以及比較該第二相異位元數量與一第二參考值而獲得一第二比較結果; 一第三可控反相電路,耦接至該第二比較器電路以接收該第二比較結果,其中該第三可控反相電路耦接至該第一可控反相電路以接收該第二資料匯流排反轉位元,該第三可控反相電路輸出該第三原始資料所對應的一第三資料匯流排反轉位元,以及該第三可控反相電路基於該第二比較結果而決定使用該第二資料匯流排反轉位元做為該第三資料匯流排反轉位元或是反轉該第二資料匯流排反轉位元而產生一第二經反轉位元做為該第三資料匯流排反轉位元;以及 一第四可控反相電路,耦接至該第三可控反相電路以接收該第三資料匯流排反轉位元,其中該第四可控反相電路接收該第三原始資料以及輸出該第三原始資料所對應的一第三經編碼資料,以及該第四可控反相電路基於該第三資料匯流排反轉位元而決定使用該第三原始資料做為該第三經編碼資料或是反轉該第三原始資料而產生一第二經反轉資料做為該第三經編碼資料。
- 一種資料匯流排反轉編碼方法,用以將多筆原始資料進行資料匯流排反轉編碼而產生多筆經編碼資料,包括: 檢查該些原始資料中的一第一原始資料與一第二原始資料之間的一第一相異位元數量; 比較該第一相異位元數量與一第一參考值而獲得一第一比較結果; 基於該第一比較結果而決定,使用該第一原始資料所對應的一第一資料匯流排反轉位元做為該第二原始資料所對應的一第二資料匯流排反轉位元,或是反轉該第一資料匯流排反轉位元而產生一第一經反轉位元做為該第二資料匯流排反轉位元;以及 基於該第二資料匯流排反轉位元而決定,使用該第二原始資料做為該第二原始資料所對應的一第二經編碼資料,或是反轉該第二原始資料而產生一第一經反轉資料做為該第二經編碼資料。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 當該第一比較結果表示該第一相異位元數量小於等於該第一參考值時,使用該第一資料匯流排反轉位元做為該第二資料匯流排反轉位元;以及 當該第一比較結果表示該第一相異位元數量大於該第一參考值時,反轉該第一資料匯流排反轉位元而產生該第一經反轉位元做為該第二資料匯流排反轉位元。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 當該第二資料匯流排反轉位元為一第一邏輯值時,使用該第二原始資料做為該第二經編碼資料;以及 當該第二資料匯流排反轉位元為一第二邏輯值時,反轉該第二原始資料而產生該第一經反轉資料做為該第二經編碼資料。
- 如請求項10所述的資料匯流排反轉編碼方法,其中該第一參考值為該第一原始資料或該第二原始資料的一位元數量的一半。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 由一反閘基於該第一資料匯流排反轉位元產生該第一經反轉位元;以及 由一多工器基於該第一比較結果選擇將該第一資料匯流排反轉位元與該第一經反轉位元其中一者做為該第二資料匯流排反轉位元。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 由一互斥或閘基於該第一資料匯流排反轉位元與該第一比較結果產生該第二資料匯流排反轉位元,以及提供該第二資料匯流排反轉位元。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 由一反相電路基於該第二原始資料產生該第一經反轉資料;以及 由一多工器電路基於該第二資料匯流排反轉位元選擇該第二原始資料以及該第一經反轉資料其中一者做為該第二經編碼資料。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 由一互斥或閘電路基於該第二原始資料與該第二資料匯流排反轉位元產生該第二經編碼資料。
- 如請求項10所述的資料匯流排反轉編碼方法,更包括: 檢查該第二原始資料與該些原始資料中的一第三原始資料之間的一第二相異位元數量; 比較該第二相異位元數量與一第二參考值而獲得一第二比較結果; 基於該第二比較結果而決定,使用該第二資料匯流排反轉位元做為該第三原始資料所對應的一第三資料匯流排反轉位元,或是反轉該第二資料匯流排反轉位元而產生一第二經反轉位元做為該第三資料匯流排反轉位元;以及 基於該第三資料匯流排反轉位元而決定,使用該第三原始資料做為該第三原始資料所對應的一第三經編碼資料,或是反轉該第三原始資料而產生一第二經反轉資料做為該第三經編碼資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/079,001 | 2022-12-12 | ||
US18/079,001 US20240193114A1 (en) | 2022-12-12 | 2022-12-12 | Dbi encoding device and dbi encoding method |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI815777B true TWI815777B (zh) | 2023-09-11 |
TW202424770A TW202424770A (zh) | 2024-06-16 |
Family
ID=88966228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112106439A TWI815777B (zh) | 2022-12-12 | 2023-02-22 | Dbi編碼裝置與dbi編碼方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240193114A1 (zh) |
TW (1) | TWI815777B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201732623A (zh) * | 2016-01-22 | 2017-09-16 | 美光科技公司 | 用於編碼及解碼多階層通信架構之信號線之設備及方法 |
TW202030598A (zh) * | 2018-10-17 | 2020-08-16 | 美商美光科技公司 | 具有先入先出電路之半導體裝置 |
TW202147327A (zh) * | 2017-08-07 | 2021-12-16 | 美商美光科技公司 | 在具有寬系統介面之記憶體中之多位階發信 |
TW202211215A (zh) * | 2020-09-03 | 2022-03-16 | 南韓商三星電子股份有限公司 | 記憶體裝置、記憶體系統以及操作記憶體裝置的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030038681A1 (en) * | 2000-06-02 | 2003-02-27 | Masoud Djafari | System and method of digital tuning a voltage controlled oscillator |
US9087025B2 (en) * | 2009-02-05 | 2015-07-21 | Micron Technology, Inc. | Data encoding using spare channels in a memory system |
US8706958B2 (en) * | 2011-09-01 | 2014-04-22 | Thomas Hein | Data mask encoding in data bit inversion scheme |
US9922686B2 (en) * | 2016-05-19 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for performing intra-module databus inversion operations |
US10146719B2 (en) * | 2017-03-24 | 2018-12-04 | Micron Technology, Inc. | Semiconductor layered device with data bus |
US11928341B2 (en) * | 2022-02-24 | 2024-03-12 | Changxin Memory Technologies, Inc. | Sleep control method and sleep control circuit |
-
2022
- 2022-12-12 US US18/079,001 patent/US20240193114A1/en active Pending
-
2023
- 2023-02-22 TW TW112106439A patent/TWI815777B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201732623A (zh) * | 2016-01-22 | 2017-09-16 | 美光科技公司 | 用於編碼及解碼多階層通信架構之信號線之設備及方法 |
TW202147327A (zh) * | 2017-08-07 | 2021-12-16 | 美商美光科技公司 | 在具有寬系統介面之記憶體中之多位階發信 |
TW202030598A (zh) * | 2018-10-17 | 2020-08-16 | 美商美光科技公司 | 具有先入先出電路之半導體裝置 |
TW202211215A (zh) * | 2020-09-03 | 2022-03-16 | 南韓商三星電子股份有限公司 | 記憶體裝置、記憶體系統以及操作記憶體裝置的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20240193114A1 (en) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7102544B1 (en) | Method and system for improving memory interface data integrity in PLDs | |
US10635623B2 (en) | Semiconductor layered device with data bus | |
US8581755B2 (en) | Multiple word data bus inversion | |
US9621303B2 (en) | Method and apparatus for valid encoding | |
WO2019214141A1 (zh) | 编码方法、设备及可读存储介质 | |
JP3683892B2 (ja) | 改良された差動形態の遷移符号化のための方法およびシステム | |
US8799550B2 (en) | System and method for increased efficiency PCI express transaction | |
WO2016192211A1 (zh) | 片间互联的发送、接收装置及发送、接收方法及系统 | |
KR101191673B1 (ko) | 네트워크 온 칩 기반 적응적 에러 정정 장치 | |
TWI815777B (zh) | Dbi編碼裝置與dbi編碼方法 | |
WO2009137996A1 (zh) | 存储设备级联方法、存储系统及存储设备 | |
US9735778B1 (en) | Method and apparatuses for optimizing power management on an integrated circuit device | |
WO2019242180A1 (zh) | 解码方法、设备及可读存储介质 | |
CN118199650A (zh) | Dbi编码装置与dbi编码方法 | |
US11183262B2 (en) | Data verifying method, chip, and verifying apparatus | |
US9438210B1 (en) | Semiconductor devices employing a data inversion scheme for improved input/output characteristics | |
KR101370606B1 (ko) | 스위칭 횟수 및 크로스톡 지연을 최소화한 버스 인코딩 장치 | |
TWM321548U (en) | Control device for level shift of IIC | |
US7325092B2 (en) | Apparatus and methods for a static mux-based priority encoder | |
US9350355B2 (en) | Semiconductor apparatus | |
US7028120B2 (en) | Apparatus and method for reducing LDRQ input pin count of a low pin count host using serially coupled peripheral devices | |
US12026369B2 (en) | Configurable flash memory physical interface in a host device | |
WO2024050905A1 (zh) | 模式寄存器设置编码的生成电路、方法及存储器 | |
KR102684403B1 (ko) | 논리 회로, 이를 포함하는 인코더, 및 이를 이용한 제어 신호 생성 방법 | |
US20240126431A1 (en) | Configurable flash memory physical interface in a host device |