TW201904236A - 串列匯流排中止之際的糾錯計算 - Google Patents

串列匯流排中止之際的糾錯計算 Download PDF

Info

Publication number
TW201904236A
TW201904236A TW107118672A TW107118672A TW201904236A TW 201904236 A TW201904236 A TW 201904236A TW 107118672 A TW107118672 A TW 107118672A TW 107118672 A TW107118672 A TW 107118672A TW 201904236 A TW201904236 A TW 201904236A
Authority
TW
Taiwan
Prior art keywords
bus
error check
serial
transmitting device
check word
Prior art date
Application number
TW107118672A
Other languages
English (en)
Inventor
雪倫 葛瑞夫
托梅爾拉法爾 班成
薩梅爾 托比亞
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW201904236A publication Critical patent/TW201904236A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)

Abstract

描述了使得能夠經由串列資料匯流排來傳遞信號的系統、方法和裝置。一種在耦合到串列資料匯流排的傳送方/發送方設備處執行的方法包括在串列資料匯流排上的傳送方處決定在串列資料匯流排上與該傳送方通訊的接收方藉此發起終止該傳送方與接收方之間的資料傳輸的狀況。該方法進一步包括在傳送方中與從該傳送方到接收方的資料傳輸同時地計算錯誤校驗字,以及在發起終止資料傳輸後暫時經由傳送方控制串列匯流排並將計算出的錯誤校驗字傳送到接收方。

Description

串列匯流排中止之際的糾錯計算
本專利申請案主張於2017年6月9日在美國專利商標局提交的臨時專利申請案第62/517,696號以及於2018年5月30日在美國專利商標局提交的非臨時申請案第15/992,701號的優先權和權益。
本案一般係關於處理電路與周邊設備之間的介面,尤其係關於在發生串列匯流排中止之際提供糾錯計算,諸如循環冗餘檢查(CRC)計算。
行動通訊設備包括各種各樣的元件,包括電路板、積體電路(IC)設備及/或片上系統(SoC)設備。各元件可包括經由串列匯流排進行通訊的處理電路、使用者介面元件、儲存和其他周邊元件。該串列匯流排可以根據標準化或專用協定來操作。
在一個實例中,積體電路間串列匯流排(亦可被稱為I2C匯流排或I²C匯流排)是意欲用於將低速周邊設備連接至處理器的串列單端電腦匯流排。在一些實例中,串列匯流排可採用多主控協定,其中一或多個設備能用作在串列匯流排上傳送的不同訊息的主設備和從設備。資料可以被序列化並在兩條雙向導線上傳送,這兩條雙向導線可攜帶資料信號(其可以被攜帶在串列資料線(SDA)上)和時鐘信號(其可以被攜帶在串列時鐘線(SCL)上)。
在另一實例中,在I3C匯流排上使用的協定從I2C協定衍生出某些實現態樣。I3C匯流排協定由移動行業處理器介面聯盟(MIPI)定義。I2C的原始實現在標準模式操作中支援最高達100千位元每秒(100 kbps)的資料訊號傳遞速率,其中較新近的標準在快速模式操作中支援400 kbps的速度,並且在快速模式+操作中支援1兆位元每秒(Mbps)的速度。其他協定(諸如I3C協定)可以經由更高的發射器時脈速率、經由在兩條或更多條導線的訊號傳遞狀態中編碼資料以及經由其他編碼技術來增加串列匯流排上的可用頻寬。I3C協定的某些態樣源自於I2C協定的相應態樣,並且I2C和I3C協定可以在同一串列匯流排上共存。
在一些一般串列匯流排中,當發送方正在資料傳輸期間主動驅動串列匯流排的導線時,接收方不能發訊號傳遞通知發送方停止傳輸。在MIPI定義的I3C標準的已知模式中,作為一個實例,高資料率(HDR)傳輸使用傳統的雙線資料傳輸,其中一條線(SCL)由主設備用來提供時鐘,而另一條線(SDA)由主設備用來攜帶資料(用於寫入(WRITE)到從設備)或由從設備用來攜帶資料(用於自從設備讀取(READ))。MIPI I3C標準包括允許資料接收方終止或中止傳輸並控制匯流排的規定。具體而言,當實體資料線由資料傳送方主動驅動時,接收方可以出於多個各種原因中的任一個原因而在傳送方正在發送資料(例如,MIPI I3C的特定實例中的前序信號位元)時經由接管資料線來中止讀取(READ)。然而,在此種情況下,資料不受循環冗餘檢查(CRC)字的保護,因為CRC字通常尚未被傳送,並因此在中止之前已經傳輸的資料在沒有此種錯誤校驗的情況下降低了可靠性。然而,在許多情況下,在中止之前接收到的資料是有用的,並因此在此種情況下提供CRC可用於防止錯誤,進而以便能夠有效地使用部分接收到的資料。因此,至少在中止傳輸的情況下需要提供CRC字或其他類似的錯誤保護,以允許使用在串列匯流排中的接收方設備中止之前傳輸的資料。
本案的某些態樣係關於提供可以在多線串列匯流排上使用的CRC機制的系統、裝置、方法和技術,該多線串列匯流排包括在雙倍資料速率(DDR)操作模式中操作的I3C匯流排。
根據一態樣,揭示一種用於在串列資料匯流排中通訊的方法。該方法包括在串列資料匯流排上的發送設備處決定在串列資料匯流排上與該發送設備通訊的接收方藉此發起終止該發送設備與接收方之間的資料傳輸的狀況。此外,該方法包括在發送設備中與從該發送設備到接收方的資料傳輸同時地計算錯誤校驗字。另外,該方法包括在發起終止資料傳輸後經由發送設備控制串列匯流排並將計算出的錯誤校驗字從該發送設備傳送到接收方。
根據另一態樣,本案提供了一種裝置,該裝置包括耦合到多線串列匯流排的第一導線的第一線驅動器、耦合到多線串列匯流排的第二導線的第二線驅動器以及介面控制器。介面控制器被配置成決定在多線串列匯流排上與該裝置通訊的接收方藉此發起終止該裝置與該接收方之間的資料傳輸的狀況。介面控制器亦被配置成與從該裝置到接收方的資料傳輸同時地計算錯誤校驗字,以及在接收方發起終止資料傳輸後經由該裝置控制多線串列匯流排,並且隨後進一步將計算出的錯誤校驗字傳送到接收方。
在所揭示的又一態樣,描述了一種用於在串列資料匯流排中通訊的裝置,該裝置包括用於在串列資料匯流排上的發送設備處決定在串列資料匯流排上與發送設備通訊的接收方藉此發起終止該發送設備與該接收方之間的資料傳輸的狀況的構件。該裝置進一步包括用於在發送設備中與從該發送設備到接收方的資料傳輸同時地計算錯誤校驗字的構件。該裝置亦包括用於在發起終止資料傳輸後經由發送設備控制串列匯流排並將計算出的錯誤校驗字傳送到接收方的構件。
在另一態樣,揭示一種處理器可讀的非瞬態儲存媒體。該媒體包括用於在串列資料匯流排上的發送設備處決定在串列資料匯流排上與該發送設備通訊的接收方藉此發起終止該發送設備與接收方之間的資料傳輸的狀況的代碼。該媒體進一步包括用於在發送設備中與從該發送設備到接收方的資料傳輸同時地計算錯誤校驗字的代碼。另外,該媒體包括用於提供在發起終止資料傳輸後經由發送設備控制串列匯流排並將計算出的錯誤校驗字從該發送設備傳送到接收方的代碼。
一種在耦合至串列匯流排的接收設備處執行的方法,包括:經由串列匯流排從發送設備接收資料;在來自發送設備的資料傳輸完成之前發起終止來自發送設備的資料傳輸;及在接收方發起終止資料傳輸後在串列匯流排上從發送設備接收計算出的錯誤校驗字。
以下結合附圖闡述的詳細描述意欲作為各種配置的描述,而無意表示可實踐本文所描述的概念的僅有配置。本詳細描述包括具體細節以提供對各種概念的透徹理解。然而,對於本領域技藝人士將顯而易見的是,沒有該等具體細節亦可實踐該等概念。在一些實例中,以方塊圖形式示出眾所周知的結構和元件以避免湮沒此類概念。
現在將參照各種裝置和方法提供本案的若干態樣。該等裝置和方法將在以下詳細描述中進行描述並在附圖中由各種方塊、模組、元件、電路、步驟、過程、演算法等(統稱為「元素」)來圖示。該等元素可使用電子硬體、電腦軟體或其任何組合來實現。此類元素是實現成硬體還是軟體取決於具體應用和加諸於整體系統上的設計約束。
本文揭示的方法和裝置係關於串列匯流排介面,其中接收方有能力在發送方正在發送資料(例如,前序信號位元)時經由接管SDA線來終止或中止資料傳輸。在許多情形中,在事務終止之前接收到的資料是有用的,例如當接收方用完緩衝器或有更高優先順序的任務要執行時。因為發送方不為被中止的事務發送CRC字,所以接收方不能可靠地使用資料及/或利用CRC字可以提供的附加保護。因此,本案的方法、裝置和系統為發送方設備提供與中止同時地或「在運行中」計算CRC字的能力。具體而言,當發送方偵測到事務中止狀況時,發送方將發送CRC字,而不是繼續其他規程,諸如MIPI I3C匯流排實例中的HDR重啟/退出模式。 概覽
包括多個SoC的設備和其他IC設備常常採用串列匯流排來將應用處理器或其他主機設備與數據機和其他周邊設備連接在一起。可以根據標準組織定義的規範和協定來操作串列匯流排。串列匯流排可以根據定義信號和傳輸之間的時序關係的標準或協定來操作,諸如I2C、I3C、串列低功率晶片間媒體匯流排(SLIMbus)、系統管理匯流排(SMB)、射頻前端(RFFE)協定。本文揭示的某些態樣係關於提供可以在根據DDR操作模式來操作的I3C匯流排上使用的流控制機制的系統、裝置、方法和技術。
例如,一種在耦合到串列匯流排的傳送設備處執行的方法包括:在串列匯流排被配置成用於DDR操作模式時在串列匯流排上傳送第一資料;傳送居於在串列匯流排上傳送的第二資料之前的一或多個前序信號位元;在傳送該一或多個前序信號位元時並且在串列匯流排的第一導線處於第一訊號傳遞狀態時禁用耦合到第一導線的驅動器;當串列匯流排的第一導線已經在傳送該一或多個前序信號位元時從第一訊號傳遞狀態轉變至第二訊號傳遞狀態時,終止串列匯流排上的資料傳輸;及在串列匯流排的第一導線在該一或多個前序信號位元的傳輸期間保持在第一訊號傳遞狀態中時,在傳送該一或多個前序信號位元後在串列匯流排上傳送第二資料。 具有串列資料連結的裝置的實例
根據某些態樣,串列資料連結可被用於互連作為裝置的子元件的電子設備,該裝置諸如蜂巢式電話、智慧型電話、對話啟動協定(SIP)電話、膝上型設備、筆記本、小筆電、智慧型電腦、個人數位助理(PDA)、衛星無線電、全球定位系統(GPS)設備、智慧家用設備、智慧照明設備、多媒體設備、視訊設備、數位音訊播放機(例如,MP3播放機)、相機、遊戲控制台、娛樂設備、車載元件、可穿戴計算設備(例如,智慧手錶、健康或健身追蹤器、眼鏡等)、電器、感測器、安全設備、自動售貨機、智慧型儀器表、遙控飛機、多旋翼直升機,或任何其他類似設備。
圖1圖示了可採用資料通訊匯流排的裝置100的實例。裝置100可包括SoC、具有可在一或多個ASIC中或在SoC中實現的多個電路或設備104、106及/或108的處理電路102。在一個實例中,裝置100可以是通訊設備,並且處理電路102可包括在ASIC 104中提供的處理設備、一或多個周邊設備106以及收發機108,收發機108使該裝置能夠經由天線124與無線電存取網路、核心存取網路、網際網路及/或另一網路通訊。
ASIC 104可具有一或多個處理器112、一或多個數據機110、板載記憶體114、匯流排介面電路116及/或其他邏輯電路或功能。處理電路102可以由可提供應用程式設計介面(API)層的作業系統來控制,該API層使得該一或多個處理器112能夠執行常駐在板載記憶體114或在處理電路102上提供的其他處理器可讀儲存122中的軟體模組。軟體模組可包括儲存在板載記憶體114或處理器可讀儲存122中的指令和資料。ASIC 104可以存取其板載記憶體114、處理器可讀儲存122,及/或在處理電路102外部的儲存。板載記憶體114、處理器可讀儲存122可包括唯讀記憶體(ROM)或隨機存取記憶體(RAM)、電子可抹除可程式設計ROM(EEPROM)、快閃記憶卡,或可以在處理系統和計算平臺中使用的任何記憶體設備。處理電路102可包括、實現或能夠存取本端資料庫或其他參數儲存,該本端資料庫或其他參數儲存可維護用於配置和操作裝置100及/或處理電路102的工作參數和其他資訊。本端資料庫可使用暫存器、資料庫模組、快閃記憶體、磁性媒體、EEPROM、軟碟或硬碟等來實現。處理電路102亦可以可操作地耦合至外部設備,諸如天線124、顯示器126、操作者控制項(諸如開關或按鈕128、130及/或整合或外部按鍵板132),以及其他組件。使用者介面模組可被配置成經由專用通訊鏈路或經由一或多個串列資料互連與顯示器126、按鍵板132等一起操作。
處理電路102可以提供使得某些設備104、106及/或108能夠進行通訊的一或多條匯流排118a、118b、120。在一個實例中,ASIC 104可包括匯流排介面電路116,其包括電路、計數器、計時器、控制邏輯和其他可配置電路或模組的組合。在一個實例中,匯流排介面電路116可被配置成根據通訊規範或協定來操作。處理電路102可包括或控制配置和管理裝置100的操作的功率管理功能。
圖2圖示了其中設備204、206、208、210、212、214和216使用串列匯流排202來連接的配置的通訊鏈路200。在一個實例中,設備204、206、208、210、212、214和216可被適配或配置成根據I3C協定來在串列匯流排202上通訊。在一些實例中,設備204、206、208、210、212、214和216中一者或多者可以替換地或附加地使用其他協定(包括例如I2C協定)來進行通訊。
主設備204可控制串列匯流排202上的通訊。在一種操作模式中,主設備204可被配置成提供控制資料信號的時序的時鐘信號。在另一操作模式中,設備204、206、208、210、212、214和216中的兩個或更多個設備可被配置成交換在符號中編碼的資料,其中時序資訊被嵌入在符號傳輸中。
圖3圖示了包括連接至串列匯流排330的多個設備302、320和322a-322n的裝置300的某些態樣。串列匯流排330可以包括第一導線316,第一導線316在某些操作模式下攜帶時鐘信號,而第二導線318攜帶資料信號。在其他操作模式中,資料可被編碼在多位元符號中,其中符號的每個位元控制導線316、318之一的訊號傳遞狀態。設備302、320和322a-322n可包括一或多個半導體IC設備,諸如應用處理器、SoC或ASIC。設備302、320和322a-322n中的每一者可包括、支援或用作數據機、信號處理設備、顯示器驅動器、相機、使用者介面、感測器、感測器控制器、媒體播放機、收發機及/或其他此類元件或設備。設備302、320和322a-322n之間在串列匯流排330上的通訊由匯流排主控方320來控制。某些類型的匯流排可支援多個匯流排主控方320。
裝置300可包括在串列匯流排330根據I2C、I3C或其他協定操作時進行通訊的多個設備302、320和322a-322n。至少一個設備302、322a-322n可被配置成作為串列匯流排330上的從設備來操作。在一個實例中,從設備302可被適配成提供感測器控制功能304。感測器控制功能304可包括支援圖像感測器的電路和模組,及/或控制量測環境狀況的一或多個感測器並與之通訊的電路和模組。從設備302可包括配置暫存器306或其他儲存324、控制邏輯312、收發機310和線驅動器/接收器314a和314b。控制邏輯312可包括處理電路,諸如狀態機、定序器、信號處理器或通用處理器。收發機310可包括接收器310a、發射器310c和共用電路310b,包括時序、邏輯和儲存電路及/或設備。在一個實例中,發射器310c基於由時鐘產生電路308提供的時序來編碼並傳送資料。
設備302、320及/或322a-322n中的兩個或更多個設備可根據本文所揭示的某些態樣和特徵被適配成支援共用匯流排上的複數種不同的通訊協定,該等通訊協定可包括SMBus協定、SPI協定、I2C協定及/或I3C協定。在一些實例中,使用一個協定(例如I2C協定)通訊的設備可以與使用第二協定(例如I3C協定)通訊的設備在同一串列匯流排上共存。在一個實例中,I3C協定可支援提供6兆位元每秒(Mbps)與16 Mbps之間的資料率的操作模式,其中有一或多個可任選的高資料率(HDR)操作模式提供更高效能。I2C協定可遵循提供範圍可在100千位元每秒(kbps)與3.2 Mbps之間的資料率的實際I2C標準。除了資料格式和匯流排控制態樣,I2C和I3C協定亦可定義在3線串列匯流排330上傳送的信號的電氣和時序態樣。在一些態樣,I2C和I3C協定可定義影響與串列匯流排330相關聯的某些信號位準的直流(DC)特性,及/或影響在串列匯流排330上傳送的信號的某些時序態樣的交流(AC)特性。 I3C串列匯流排上的高速資料傳輸
圖4包括圖示當串列匯流排在由I3C規範定義的單倍資料速率(SDR)操作模式中操作時該串列匯流排上的訊號傳遞的時序圖400。在串列匯流排的第一導線(SDA線402)上傳送的資料可使用在串列匯流排的第二導線(SCL線或時鐘線404)上傳送的時鐘信號來擷取。在資料傳輸期間,當SCL線404處於高電壓位準時,SDA線4的訊號傳遞狀態412預期在脈衝414的歷時內保持恆定。當SCL線404處於高電壓位準時SDA線402上的轉變指示開始狀況406、停止狀況408或者重複開始410。
在I3C串列匯流排上,開始狀況406被定義為准許當前匯流排主控方發訊號傳遞通知將傳送資料。開始狀況406在SCL線404為高時SDA線402從高轉變為低時發生。匯流排主控方可使用停止狀況408來發訊號傳遞通知傳輸的完成及/或終止。停止狀況408在SCL線404為高時SDA線402從低轉變為高時被指示。重複開始410可由希望在完成第一傳輸之際發起第二傳輸的匯流排主控方傳送。重複開始410被傳送以代替停止狀況408和緊隨其後的開始狀況406,並且具有停止狀況408和緊隨其後的開始狀況406的意義。重複開始410在SCL線404為高時SDA線402從高轉變為低時發生。
匯流排主控方可以在傳送從動方的位址、命令及/或資料之前傳送發起符422,發起符422可以是開始狀況406或重複開始410。圖4圖示了匯流排主控方進行的命令碼傳輸420。發起符422之後接著傳輸的可以是指示將跟隨有命令碼426的預定義命令424。命令碼426可導致串列匯流排轉變至例如期望操作模式。在一些實例中,資料428可被傳送。命令碼傳輸420之後可以接著是結束字元430,該結束字元可以是停止狀況408或重複開始410。
某些串列匯流排介面支援提供更高資料率的訊號傳遞方案。在一個實例中,I3C規範定義多個高資料率(HDR),包括高資料率、雙倍資料速率(HDR-DDR)模式,其中資料在時鐘信號的上升沿和下降沿傳輸。圖5是圖示I3C HDR-DDR模式中的傳輸的實例的時序圖500,其中在SDA線504上傳送的資料被同步至在SCL線502上傳送的時鐘信號。時鐘信號包括由上升沿516和下降沿定義的脈衝520。主設備在SCL線或時鐘線502上傳送時鐘信號,無論串列匯流排上的資料流的方向如何。傳送方在時鐘信號的每個邊沿516、518輸出一位元資料。接收方基於時鐘信號的每個邊沿516、518的時序來擷取一位元資料。
I3C HDR-DDR模式傳輸的某些其他特性在圖5的時序圖500中示出。根據某些I3C規範,以HDR-DDR模式傳輸的資料按字來組織。一個字通常包括16個有效載荷位元,其被組織為兩個8位元位元組510、512,前面是兩個前序信號位元506、508,後面跟隨兩個同位位元514,總共是在10個時鐘脈衝的各邊沿上傳送的20位元。傳輸完整性可經由傳送同位位元514來保護。
在HDR-DDR模式中,實體SDA線504由資料發送方主動驅動,並且接收方不能在SDA線504上的信號中發送請求以停止或掛起傳輸。可能需要停止或掛起傳輸的請求來實現串列鏈路的流控制能力。在缺少流控制的可用性的情況下,接收方必須吸收所有傳送資料,而不管接收方處理、儲存或轉發資料的能力。在一些實例中,在接收方的記憶體空間已經耗盡、傳送方過快地遞送資料,或者接收方忙於或承擔處置其他任務等時,流控制技術可以是有用的或合乎需要的。
在I3C標準的一些實現中,I3C HDR-DDR協定支援用於讀取規程的流控制,其中從設備正在向匯流排主設備傳輸資料。用於讀取規程的流控制使得主設備能夠終止讀取事務。根據本文揭示的某些態樣,耦合到串列匯流排的設備可被適配成提供用於I3C HDR-DDR寫入規程的流控制,其中主設備或對等從設備正向從設備傳送資料。針對I3C HDR-DDR寫入規程實現的流控制規程使得從設備能夠向主設備發訊號傳遞通知要終止寫入事務的請求。
根據本文揭示的某些態樣,從設備可經由操縱一或多個前序信號位元506、508來請求主設備終止寫入事務。經由操縱前序信號位元,資料傳輸的結束可被安全地達成。在一些實例中,主設備可取得對串列匯流排的控制權並且回應於要終止寫入事務的請求而終止當前事務。在其他實例中,發送方或者可繼續資料傳輸。事務的終止或繼續可取決於事務的類型。在一個實例中,取決於SDA事務,發送設備可繼續資料傳輸或者主設備可發起事務終止、接管事務,以及提供HDR重啟或退出模式。
圖6圖示了在SDA線504和SCL線502上傳送以發起某些模式變更的訊號傳遞600的實例。訊號傳遞600由I3C協定定義為用於從I3C HDR通訊模式發起重啟、退出及/或中斷。訊號傳遞600包括HDR退出602,其可用於導致HDR中斷或退出。HDR退出602開始於SCL線502上的下降沿604,並且結束於SCL線502上的上升沿606。當SCL線502處於低訊號傳遞狀態時,在SDA線504上傳送四個脈衝。當SCL線502上沒有提供脈衝時,I2C設備忽略SDA線504。 用於串列匯流排通訊終止的流控制和糾錯計算
首先注意,本文論述的各種實例可以基於或參考MIPI定義的I3C匯流排,以及HDR-DDR模式。MIPI I3C HDR-DDR模式和其他I3C模式的使用僅作為實例被引述,並且本文揭示的原理適用於其他上下文。亦即,本領域技藝人士將理解,該方法可以應用於I3C、I2C內的其他模式,或者甚至可以應用於其中可以採用相關功能性的其他串列匯流排通訊。另外,本文揭示的某些態樣提供了接收方可用來請求發送方終止或掛起資料傳輸的電路和技術。當所有實體線由發送方驅動時,所揭示的電路和技術可用於實現流控制機制。
圖7圖示了根據本案的各態樣的I3C匯流排中的HDR-DDR模式期間的狀態的狀態圖。如在圖7中可以看到,在I3C匯流排上的設備在狀態702進入HDR-DDR模式並且HDR訊框開始被傳送(如狀態704、706、708和710所示)之後,接收設備(例如,主設備或控制SCL線的設備)可以發起資料傳輸的終止或中止,如資料字(讀取)狀態712和狀態到狀態路徑714所示。因此,自狀態712的路徑將從完全資料傳輸狀態(參見例如CRC傳輸狀態716)改變至其中在完成之後發送CRC字(例如,CRC'字)的狀態(如狀態718所示)。在當前情形中,狀態從狀態712變為狀態718,其中發送CRC'字代替典型或正常CRC字(亦即,狀態716)。如下文將更詳細解釋的,CRC'字是在傳送方/發送方設備處與資料傳輸同時(亦即,「在運行中」)並且基於所傳送的資料來計算出的字,以使得當接收方中止傳輸時,該CRC'字可以由傳送方/發送方設備發送到接收方設備。注意,根據其他態樣,CRC'字可以經由其他手段(諸如舉例而言,查閱資料表)來推導出,但是在運行中執行的計算是用於推導出CRC'字的更直接和更簡單的實現。
亦注意,當傳送方/發送方設備偵測到讀取中止狀況時(如狀態改變714所示),該設備將在狀態718發送CRC'字,而不是簡單地直接繼續到所示的HDR重啟/退出狀態(亦即,狀態720)以及之後的彼等狀態(諸如HDR退出724或HDR重啟722)。在一態樣,亦注意,傳送方/發送方將臨時重新獲得對串列匯流排的控制以便發送CRC'字。在一個態樣,用於重新獲得控制的時間訊框可以是傳送CRC'字的所有位元所需的SCL循環的數量,這將在下文結合圖8進一步描述。另外,在另一態樣,發送方/傳送方設備被配置為在一個I3C循環內從傳送資料字切換到傳送CRC'字,以確保接收方將監聽以接收CRC'字。注意,在一態樣,從偵測到中止到驅動第一CRC'位元的匯流排交遞時間優選地小於1/2個SCL循環。在該時間期間,傳送方應停止驅動SDA線,並且接收方應開始驅動它。然而,亦注意,主控方可以延遲SCL邊沿以增加所需的時間。在又一態樣,系統可以被配置成使得CRC'字是可選的,其中僅在傳送方/發送方設備和接收方達成一致時發送CRC'字。
圖8是圖示根據本案的一態樣的示例性CRC’字800內的資料的表。如圖所示,CRC'字800可以包括18位元,包括2個前序信號位元、4個符記值位元、CRC5值(亦即,用於糾錯的CRC值)、準備HDR重啟或HDR退出的2個設置位元,以及5個保留位元。所示的多個位元和欄位僅僅是示例性的,並且本領域技藝人士將理解,可以設想仍然可操作用於執行本方法和裝置的其他變型和配置。
亦注意,在I3C HDR-DDR協定的上下文中,圖8圖示了前序信號位元與標準CRC字不同地配置(亦即,2'b10而不是2'b01),這用於區分這兩種類型的CRC字。在另一態樣,實際CRC'字可以開始於二進位「0」位元而不是典型的二進位「1」(亦即,為符記值0110/4'h6)以避免與讀取中止前序信號位元的爭用。這與一般CRC符記不同,一般CRC符記具有二進位符記值1100/4'hC,這可能在該特定場景中引起SDA線上的爭用。由於CRC'字以來自發送方的二進位「0」開始,而前序信號以來自接收方的二進位「0」結束,因此在切換驅動方時在SDA線上不存在爭用風險。在本發明的另一態樣,注意,當本方法應用於其他標準或協定時,CRC(或糾錯)字可以開始於某個預定值,該預定值將被配置成避免或緩解匯流排爭用。在使用原始I3C CRC符記4'hC的情形中,主控方將保持驅動CRC符記的開頭,並且SDA匯流排方向將在連續位元相同的位置(亦即,在CRC符記(2'b11)的前兩位元之間或在CRC符記(2'b00)的3-4兩位元之間)改變。
圖9圖示了已經根據本文所揭示的某些態樣適配的I3C介面900的實例。主設備901耦合到序列介面的SCL線902和SDA線904。從設備921亦耦合到序列介面的SCL線902和SDA線904。主設備901和從設備921包括各自的介面控制器903、930,該等介面控制器可以包括編碼器、解碼器以及流控制電路和模組。
主設備901和從設備921包括可以用於在相應的導線902、904上傳送和接收信號的收發機906、908、934和932。主設備901中的收發機906、908包括上拉電路或結構926、928,其可用於模仿耦合到SCL線902和SDA線904的開漏上拉。主設備901中的介面控制器903可以提供控制信號910、918,該等控制信號啟用或禁用相應的上拉電路或結構926、928的操作。
主設備901中的介面控制器903可以提供阻抗控制信號912、920,該等阻抗控制信號可以用於將收發機906、908中的線驅動器置於高阻抗操作模式。主設備901中的介面控制器903可以提供主SDA信號914,並從SDA線904接收SDA信號916。主設備901中的介面控制器903可以提供主SCL信號922並從SCL線902接收SCL信號924。
從設備320中的介面控制器930可以提供阻抗控制信號938、946,該等阻抗控制信號可以用於將收發機932、934中的線驅動器置於高阻抗操作模式。從設備320中的介面控制器930可以提供從SDA信號936,並從SDA線904接收SDA信號934。從設備921中的介面控制器930可以提供從SCL信號942並從SCL線902接收SCL信號940。
可以使用各種電路來實現上拉電路或結構926、928。在一個實例中,上拉電路包括上拉電阻器954,其可以經由開關952耦合到高壓源(VDD ),開關952可以包括適當配置的電晶體。在一些實例中,上拉電阻器954可以直接耦合到VDD ,並且開關將上拉結構耦合到SCL線902或SDA線904。在另一實例中,可以使用保持器電路960來實現上拉電路或結構926、928。保持器電路960可以被配置為正回饋電路,其經由高阻抗輸出來驅動SCL線902或SDA線904,並且經由低阻抗輸入來接收來自SCL線902或SDA線904的回饋。保持器電路960可以被配置為在SCL線902或SDA線904上維持最後斷言的電壓。保持器電路960可被主設備901或從設備921中的線驅動器容易地壓制。
圖10圖示了根據本文所揭示的某些態樣的可被用於提供硬體流控制的線驅動電路1000的實例。具體而言,電路1002是供在傳送方/發送方設備中使用的電路,其中電路1002被配置為執行CRC'字的計算,以及當接收方設備發起資料傳輸的終止或中止時在發送資料和CRC'字之間切換。電路1002接收資料1004以供傳輸。資料被輸入到CRC’字計算電路1006,該電路在資料傳輸的同時提供CRC’字的計算,由此提供「運行中」計算。在一態樣,CRC'字計算電路1006被配置為反覆運算地計算CRC'字反覆運算的CRC5部分,其中當在匯流排上發送位元時,該計算以每一位元或兩位元前進。作為該計算的一部分,亦可以利用移位暫存器1008。然而,注意,在其他態樣,該計算能夠以每1到16位元前進,因為在正常實現中該傳輸不在字之間中止。
資料1004和組合的CRC'字計算電路1006和移位暫存器1008的輸出皆被輸入到選擇器開關或多工器1010。如之前論述的,作為一個實例,傳送方/發送方將被配置為在小於一半(1/2)I3C循環內從資料字切換到CRC'字。此種切換可以經由多工器1010結合一些邏輯(未圖示)或控制器/處理器(例如,圖9中的控制器903)來完成,該等邏輯或控制器/處理器提供選擇信號1012以快速地將多工器1010的輸出從資料1004切換到CRC'字,以使輸出1014驅動串列資料匯流排,更具體地是SDA線(參見例如圖9中的收發機906和SDA 904)。
注意,由於CRC'字計算電路1006針對資料傳輸的每一位元(或最多16位元)計算(或更新)CRC'字,因此CRC'字內的CRC5值將始終正確。亦注意,在一些實例中,電路系統1002可以在控制器(例如,圖9中的903或930)或收發機(例如,圖9中的906或932)內實現,或者甚至可以實現為傳送方/發送方或接收方設備內的獨立電路。同樣,在一態樣中注意到,因為CRC字以來自傳送方/發送方的二進位「0」開始,並且前序信號以來自接收方的二進位「0」結束,所以在切換驅動方時在SDA線上不存在爭用風險。
如前述,匯流排上的發送或傳送設備被配置為在運行中計算CRC值,這是直接且簡單的CRC實現。如前面結合圖7中的狀態圖700進一步描述的,當發送設備偵測到事務中止狀況時,其將發送CRC'字而不是繼續HDR重啟/退出模式。在一態樣,注意到CRC符記有幾種可能性(亦即,在CRC字上的CRC值之前的半位元組)。從主設備和從設備的角度看的SDA和SCL線上出現的信號的時序在圖11-18中圖示。在該等附圖中,對於主控方讀取和從動方寫入圖示兩個示例性可能性。
圖11圖示了根據本發明的各態樣的SDA和SCL線上的信號的示例性時序圖1100。在圖11的時序圖中,所圖示的特定場景是主控方中止或結束讀取資料傳輸並且未發送或發訊號傳遞通知CRC字的場景。在圖1100中的時間1102處,在最後圖示的同位位元PAR 0後,從動方將SDA線驅動為高以用於將為1’b1的下一前序信號位元PRE 1。在該圖中的時間1104,主控方隨後(1)啟動C1時鐘脈衝的SCL上升沿;及(2)啟用SDA線上的開漏類上拉結構。
在時間1106(該時間是比經過C1的上升沿的時間tSCO 更長的時間段),從動方停止對SDA線的主動驅動並且在高阻抗(High-Z)上釋放SDA。在時間1108,其在比從動方的tSCO 更長的時間段之後,主控方開始將SDA線驅動為低。此時決定必要延遲的一種簡單方法是使用SCL時鐘的半個循環。在一個態樣,時序可以甚至是整個循環以保持驅動方邏輯區塊上的相位。所得SCL脈衝長於與舊式I2C設備共存通常所需的50ns計時器時段。信號波形可以是典型的重複開始狀況,這是可接受的,因為在混合匯流排的情形中,在其之後將會是退出模式和停止。
在與時間tSCO 類似的另一個延遲之後,主控方開始將SCL驅動為低,從而開始C1的下降沿,如時間1110處所示。隨後,從動方將寄存了被主控方驅動為低的SDA,並將第二個前序信號位元PRE0設置為1'b0。由於該狀況意味著讀取事務的結束,因此從動方在時間1112將SDA線保持在High-Z。最後在時間1114,在作為比從動方的tSCO 更長的時間段的另一個延遲之後,主控方開始將SDA線驅動為高,準備HDR重啟或退出模式。隨後SCL將為低,並且SDA將在主控方的主動驅動下變為高,而從動方使兩條線處於High-Z。因此,自從動方到主控方的讀取資料傳輸已被結束。
圖12是圖示其中主控方結束讀取資料傳輸並且發訊號傳遞通知CRC符記4'hC的場景的另一時序圖1200。如在時間1202處可以看到的,在最後的同位位元PAR0出現後,從動方將SDA線驅動為高以用於將會是1’b1的下一前序信號位元PRE1。如在時間1204處可以看到的,主控方隨後啟動C1時鐘脈衝的SCL線上升沿並且啟用SDA線上的開漏類上拉結構。
在時間1206,在經過C1的上升沿的時間tSCO 後,從動方停止對SDA線的主動驅動並且在High-Z上釋放SDA線。在時間1208,在比從動方的tSCO 更長的時間段之後,主控方開始將SDA驅動為低。在一個態樣,決定所需延遲的一種簡單方法是使用SCL時鐘的半個循環,但這亦可以甚至是整個循環,這將保持驅動方邏輯區塊上的相位。所得SCL脈衝將長於與舊式I2C設備共存通常所需的50ns時間段。信號波形是典型的重複開始狀況,這是可接受的,因為在混合匯流排的情形中,在其之後將會是退出模式和停止。
在時間1210,在類似於在時間1208描述的延遲的另一延遲之後,主控方開始將SCL線驅動為低,諸如開始C1的下降沿。隨後,在時間1212,從動方隨後將寄存了被主控方驅動為低的SDA,並將第二個前序信號位元PRE0設置為1'b0。由於該狀況意味著讀取事務的結束,因此從動方將SDA線保持在High-Z上。
在時間1214,在類似於在時間1208處描述的延遲的另一延遲之後,主控方開始將SDA線驅動為高。這甚至可以在C1的下降沿之後立即完成,因為其在主控方的控制之下。接下來在連接1216處,主控方提供了CRC字的第一個SCL(CLK_CRC1)的上升沿。由於SDA為高,因此從動方將CRC符記的第一位元評估為1'b1。在時間1218,在字CLK_CRC1的下降沿,從動方將CRC符記的第二位元評估為1'b1,因為SDA線仍由主控方驅動為高。
在時間1220,主控方隨後將SDA線驅動為低。在時間1222,在CLK_CRC2信號的上升沿,從動方將CRC符記的第三位元評估為1’b0,因為SDA已由主控方驅動為低。接下來在時間1224,在時間tSCO 之後,從動方開始與主控方並行地將SDA線驅動為低;因此沒有衝突。兩條線皆被設備驅動為低。
在時間1226,主控方隨後開始將CLK_CRC2的下降沿驅動為低,並在High-Z上釋放SDA。在時間1228,從動方(和主控方)將CRC符記的第四位元評估為1'b0,因為SDA線被從動方驅動為低。最後,在時間1230,在時間tSCO 之後,從動方開始根據計算出的CRC(例如,CRC'字)來驅動SDA線。從動方將有足夠的時間將其輸出切換到計算出的CRC,因為其有幾乎兩個SCL時鐘時間。因此,自從動方到主控方的讀取資料傳輸已進入基於CRC的結束規程。
圖13圖示了主控方結束讀取資料傳輸以及使用CRC符記4'h6信號的場景的等時線。如在等時線1300中可以看到的,在時間1302,在最後的同位位元PAR0出現後,從動方將SDA線驅動為高以用於將會是1’b1的下一前序信號位元PRE1。如在時間1304處可以看到的,主控方隨後啟動C1時鐘脈衝的SCL線上升沿並且啟用SDA線上的開漏類上拉結構。
在時間1306,在經過C1的上升沿的時間tSCO 後,從動方停止對SDA線的主動驅動並且在High-Z上釋放SDA線。移至時間1308,在比從動方的tSCO 更長的時間段之後,主控方開始將SDA驅動為低。在一個態樣,決定所需延遲的一種簡單方法是使用SCL時鐘的半個循環,但這亦可甚至以是整個循環,這將保持驅動方邏輯區塊上的相位。所得SCL脈衝將長於與舊式I2C設備共存通常所需的50ns時間段。信號波形是典型的重複開始狀況,這是可接受的,因為在混合匯流排的情形中,在其之後將會是退出模式和停止。
在時間1310,在類似於在點4描述的延遲的另一延遲之後,主控方開始將SCL線驅動為低,由此開始C1的下降沿。隨後,在時間1312,從動方隨後將寄存了被主控方驅動為低的SDA,並將第二個前序信號位元PRE0設置為1'b0。由於該狀況意味著讀取事務的結束,因此從動方將SDA線保持在High-Z上。
在時間1314,在至少時間tSCO 之後,從動方開始與主控方並行地將SDA線驅動為低。隨後在時間1316,主控方開始驅動CLK_CRC1的上升沿,在High-Z上釋放SDA,其中SDA線保持為低,因為其由從動方驅動。在時間1318處,主控方提供了CRC字的第一SCL線(CLK_CRC1)的上升沿。由於SDA為低,因此從動方將CRC符記的第一位元評估為1'b0。
在時間1320,在時間tSCO 後,從動方開始將SDA線驅動為高。接著在時間1322,在CLK_CRC1的下降沿,從動方將CRC符記的第二位元評估為1'b1,因為SDA已由從動方驅動為高。在時間1324,在CLK_CRC2的上升沿,從動方將CRC符記的第三位元評估為1’b1,因為SDA線已由從動方驅動為高。在時間1326,在時間tSCO 後,從動方開始將SDA線驅動為低。在時間1328,從動方(和主控方)將CRC符記的第四位元評估為1'b0,因為SDA線被從動方驅動為低。最後,在時間1330,在時間tSCO 之後,從動方開始根據計算出的CRC來驅動SDA線。因此,自從動方到主控方的讀取資料傳輸已進入基於CRC的結束規程。
圖14圖示了其中主控方同意繼續讀取資料傳輸信號的等時線場景1400。在時間1402,在最後的同位位元PAR 0後,從動方將SDA線驅動為高以用於是1’b1的下一前序信號位元PRE 1。在時間1404,主控方啟動C1時鐘脈衝的SCL上升沿,並啟用SDA線上的開漏類上拉結構。如在時間1406示出的,在經過C1的上升沿的時間tSCO 後,從動方停止對SDA線的主動驅動並且在High-Z上釋放SDA線。接著在時間1408,在C2的下降沿,從動方將SDA線寄存為高。
在時間1410,在至少時間tSCO 之後,從動方開始主動驅動SDA線以用於資料有效載荷的第一位元D0.7(參見例如圖5)。在時間1412,在適當的時段之後,主控方禁用SDA線上的開漏類上拉結構,並將其SDA設置為High-Z。隨後延遲至少等於從動方的tSCO ,並且在C2的上升沿開始時存在安全時間段。取決於主控方的設計,該時間段可以更短。最後,在時間1414,在至少時間tSCO 之後,從動方開始驅動SDA線以用於資料有效載荷的第二位元D06。因此,自從動方到主控方的資料傳輸繼續。
圖15圖示了其中從動方在沒有CRC信號的情況下結束寫入資料傳輸的場景的等時線1500。如在時間1502處可以看到的,在最後的同位位元PAR 0後,主控方將SDA線驅動為高以用於是1’b1的下一前序信號位元PRE 1。在時間1504,主控方啟動C1的上升沿,禁用對SDA的主動驅動,並啟用SDA線上的開漏類上拉結構。在時間tSCO 之後,從動方主動將SDA驅動為低,如在時間1506示出的。
在時間1508,主控方啟動C1的下降沿。由於主控方知道SDA線已被從動方拉低(亦即,PRE 0是1’b0),因此其開始與從動方並行地主動將SDA線驅動為低。在時間1510,在至少時間tSCO 之後,從動方在High-Z上釋放其SDA線。在如時間1512中示出的適當延遲之後,主控方開始主動將SDA線驅動為高。實現該延遲的一種方式是使用SCL時鐘循環的一半。
在時間1514,在與時間1512處的延遲相似的另一個延遲之後,SDA線為高(如已由主控方主動驅動),SCL線為低(如已由主控方主動驅動),從動方在High-Z上釋放SCL和SDA兩者,並且主控方可以啟動HDR重啟或HDR退出模式。結果,從主控方到從動方的資料傳輸已被結束。
圖16圖示了示出其中從動方結束寫入資料傳輸並利用CRC符記4’hC信號的場景的等時線1600。在等時線1600中,在時間1602處,在最後的同位位元PAR 0後,主控方將SDA線驅動為高以用於將會是1’b1的下一前序信號位元PRE1。在時間1604,主控方啟動C1的上升沿,禁用對SDA的主動驅動,並啟用SDA線上的開漏類上拉結構。在至少時間tSCO 之後,從動方主動驅動SDA線為低,如在時間1606處可以看到的。
接著在時間1608,主控方啟動C1的下降沿。因為主控方知道SDA線已被從動方拉低(亦即,PRE0是1’b0),所以主控方開始與從動方並行地主動將SDA線驅動為低。在時間1610,在至少時間tSCO 之後,從動方在High-Z上釋放其SDA線。接下來在時間1612,在某一合適延遲之後,主控方開始主動將SDA線驅動為高。在時間1614處,主控方提供了CRC字的第一SCL(CLK_CRC1)的上升沿。由於SDA為高,因此從動方將CRC符記的第一位元評估為1'b1。
在CLK_CRC1的下降沿,從動方將CRC符記的第二位元評估為1'b1,因為SDA仍由主控方驅動為高,如在時間1616處示出的。在時間1618,主控方將SDA線驅動為低。在時間1620,在CLK_CRC2的上升沿,從動方將CRC符記的第三位元評估為1’b0,因為SDA線已由主控方驅動為低。在CLK_CRC2的下降沿,從動方(和主控方)將CRC符記的第四位元評估為1'b0,因為SDA被從動方驅動為低,如在時間1622處示出的。最後,在時間1624,主控方開始根據計算出的CRC來驅動SDA線。由此,從主控方到從動方的寫入資料傳輸已進入基於CRC的結束規程。
圖17圖示了其中從動方結束寫入資料傳輸並且CRC符記4’h6被訊號傳遞通知的場景的等時線1700。在時間1702,在最後的同位位元PAR 0後,主控方將SDA線驅動為高以用於是1’b1的下一前序信號位元。在時間1704,主控方隨後啟動C1的上升沿,禁用對SDA的主動驅動,並啟用SDA線上的開漏類上拉結構。在時間1706,在至少時間tSCO 後,從動方主動將SDA線驅動為低。隨後,主控方在時間1708啟動C1的下降沿,因為其知道SDA已被從動方拉低,因此PRE 0是1'b0。主控方亦開始與從動方並行地主動將SDA線驅動為低。
在時間tSCO 後,從動方在High-Z上釋放其SDA,如時間1710所示。在時間1712,主控方保持主動將SDA線驅動為低。在時間1714處,主控方提供了CRC字的第一SCL(CLK_CRC1)的上升沿。由於SDA線為低,因此從動方將CRC符記的第一位元評估為1'b0。在時間1716,主控方開始根據推拉模式時序來將SDA線驅動為高。在CLK_CRC1的下降沿,從動方將CRC符記的第二位元評估為1'b1,因為SDA已由主控方驅動為高,如在時間1718處示出的。在時間1720,在CLK_CRC2的上升沿,從動方將CRC符記的第三位元評估為1’b1,因為SDA已由主控方驅動為高。
接著在時間1722,主控方開始根據推拉模式時序來將SDA線驅動為低。在CLK_CRC2的下降沿,從動方(和主控方)將CRC符記的第四位元評估為1'b0,因為SDA被從動方驅動為低,如在時間1724處示出的。主控方開始根據計算出的CRC字來驅動SDA線,如時間1726所示。注意,主控方有足夠的時間將其輸出切換到計算出的CRC,因為其有幾乎兩個SCL時鐘時間。由此,從主控方到從動方的寫入資料傳輸已進入基於CRC的結束規程。
圖18圖示了其中從動方同意繼續寫入資料傳輸的場景的另一等時線1800。在時間1802,在最後的同位位元PAR 0後,主控方將SDA線驅動為高以用於將會是1’b1的下一前序信號位元PRE 1。在時間1804,主控方啟動C1的上升沿,禁用對SDA的主動驅動,並啟用SDA上的開漏類上拉結構。在時間1806,主控方啟動C1的下降沿。由於主控方知道SDA被從動方留作高,因此PRE 0是1'b1,主控方開始主動將SDA線驅動為高。
在時間1808,在適當的延遲之後,主控方開始主動將SDA驅動為高或低,如第一資料有效載荷位元D0.7所需。實現該延遲的一種簡單方式是使用SCL循環的一半。在時間1810,主控方啟動SCL C2的上升沿。從動方在High-Z上釋放SCL和SDA。接著分別在時間1812和1814,從動方寄存D0.7和D0.6。因此,從主控方到從動方的資料傳輸繼續。 處理電路和方法的實例
圖19是圖示採用可被配置成執行本文所揭示的一或多個功能的處理電路1902的裝置1900的硬體實現的實例的示圖。根據本案的各種態樣,本文所揭示的元素,或元素的任何部分,或者元素的任何組合可使用處理電路1902來實現。處理電路1902可包括由硬體和軟體模組的某種組合來控制的一或多個處理器1904。處理器1904的實例包括:微處理器、微控制器、數位訊號處理器(DSP)、SoC、ASIC、現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、狀態機、定序器、閘控邏輯、個別的硬體電路,以及其他配置成執行本案中通篇描述的各種功能性的合適硬體。該一或多個處理器1904可包括執行特定功能並且可由軟體模組1916之一來配置、擴增或控制的專用處理器。該一或多個處理器1904可經由在初始化期間載入的軟體模組1916的組合來配置,並且經由在操作期間載入或卸載一或多個軟體模組1916來進一步配置。在各種實例中,處理電路1902可以使用狀態機、定序器、信號處理器及/或通用處理器,或此類設備和電路的組合來實現。
在所圖示的實例中,處理電路1902可以用由匯流排1910一般化地表示的匯流排架構來實現。取決於處理電路1902的具體應用和整體設計約束,匯流排1910可包括任何數目的互連匯流排和橋接器。匯流排1910將各種電路連結在一起,包括一或多個處理器1904,以及儲存1906。儲存1906可包括記憶體設備和大型存放區設備,並且在本文中可被稱為電腦可讀取媒體及/或處理器可讀取媒體。匯流排1910亦可連結各種其他電路,諸如時序源、計時器、周邊設備、穩壓器和功率管理電路。匯流排介面1908可提供匯流排1910與一或多個線介面電路或收發機1912之間的介面。可針對處理電路所支援的每種聯網技術來提供收發機1912。在一些實例中,多種聯網技術可共用收發機1912中出現的電路系統或處理模組中的一些或全部。每個收發機1912提供用於經由傳輸媒體與各種其他裝置通訊的手段。取決於裝置1900的本質,亦可提供使用者介面1918(例如,按鍵板、顯示器、揚聲器、話筒、操縱桿),並且該使用者介面1918可直接或經由匯流排介面1908通訊地耦合至匯流排1910。
處理器1904可負責管理匯流排1910和一般處理,包括執行儲存在電腦可讀取媒體(其可包括儲存1906)中的軟體。在這一方面,處理電路1902(包括處理器1904)可被用於實現本文所揭示的方法、功能和技術中的任何一種。儲存1906可被用於儲存由處理器1904在執行軟體時操縱的資料,並且該軟體可被配置成實現本文所揭示的方法中的任何一種。
處理電路1902中的一或多個處理器1904可執行軟體。軟體應當被寬泛地解釋成意為指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體模組、應用、軟體應用、套裝軟體、常式、子常式、物件、可執行件、執行的執行緒、規程、函數、演算法等,無論其是用軟體、韌體、仲介軟體、微代碼、硬體描述語言,還是其他術語來述及皆是如此。軟體可按電腦可讀形式常駐在儲存1906中或常駐在外部電腦可讀取媒體中。外部電腦可讀取媒體及/或儲存1906可包括非瞬態電腦可讀取媒體。作為實例,非瞬態電腦可讀取媒體包括:磁存放裝置(例如,硬碟、軟碟、磁條)、光碟(例如,壓縮光碟(CD)或數位多功能光碟(DVD))、智慧卡、快閃記憶體設備(例如,「快閃記憶體驅動器」、卡、棒或鍵式磁碟)、RAM、ROM、可程式設計唯讀記憶體(PROM)、可抹除PROM(EPROM)(包括EEPROM)、暫存器、可移除磁碟,以及任何其他用於儲存可由電腦存取和讀取的軟體及/或指令的合適媒體。作為實例,電腦可讀取媒體及/或儲存1906亦可包括載波、傳輸線,以及用於傳送可由電腦存取和讀取的軟體及/或指令的任何其他合適媒體。電腦可讀取媒體及/或儲存1906可常駐在處理電路1902中、處理器1904中、在處理電路1902外部,或跨包括該處理電路1902在內的多個實體分佈。電腦可讀取媒體及/或儲存1906可實施在電腦程式產品中。作為實例,電腦程式產品可包括封裝材料中的電腦可讀取媒體。本領域技藝人士將認識到如何取決於具體應用和加諸於整體系統上的整體設計約束來最佳地實現本案中通篇提供的所描述的功能性。
儲存1906可維持以可載入程式碼片段、模組、應用、程式等來維持及/或組織的軟體,其在本文中可被稱為軟體模組1916。軟體模組1916中的每一者可包括在安裝或載入到處理電路1902上並由一或多個處理器1904執行時有助於運行時映射1914的指令和資料,該運行時映射1914控制一或多個處理器1904的操作。在被執行時,某些指令可使得處理電路1902執行根據本文中所描述的某些方法、演算法和過程的功能。
軟體模組1916中的一些可在處理電路1902初始化期間被載入,並且該等軟體模組1916可配置處理電路1902以使得能執行本文所揭示的各種功能。例如,一些軟體模組1916可配置處理器1904的內部設備及/或邏輯電路1922,並且可管理對外部設備(諸如,收發機1912、匯流排介面1908、使用者介面1918、計時器、數學輔助處理器等)的存取。軟體模組1916可包括控制程式及/或作業系統,其與中斷處理常式和裝置驅動程式互動並且控制對由處理電路1902提供的各種資源的存取。該等資源可包括記憶體、處理時間、對收發機1912的存取、使用者介面1918等。
處理電路1902的一或多個處理器1904可以是多功能的,由此軟體模組1916中的一些被載入和配置成執行不同功能或相同功能的不同實例。該一或多個處理器1904可附加地被適配成管理回應於來自例如使用者介面1918、收發機1912和裝置驅動程式的輸入而發起的幕後工作。為了支援多個功能的執行,該一或多個處理器1904可被配置成提供多工環境,藉此複數個功能之每一個功能依須求或按期望實現為由該一或多個處理器1904服務的任務集。在一個實例中,多工環境可使用分時程式1920來實現,該分時程式1920在不同任務之間傳遞對處理器1904的控制權,由此每個任務在完成任何未決操作之際及/或回應於輸入(諸如中斷)而將對一或多個處理器1904的控制權返回給分時程式1920。當任務具有對一或多個處理器1904的控制權時,處理電路有效地專用於由與控制方任務關聯的功能所針對的目的。分時程式1920可包括作業系統、在循環法基礎上轉移控制權的主循環、根據各功能的優先順序化來分配對一或多個處理器1904的控制權的功能,及/或經由將對一或多個處理器1904的控制權提供給處置功能來對外部事件作出回應的中斷驅動式主循環。
圖20是圖示可以在耦合到串列資料匯流排或多線串列匯流排的發送或傳送設備處執行的流控制過程的流程圖2000。
在方塊2002,串列資料匯流排上的發送或傳送方設備可在此類設備處決定經由串列資料匯流排與傳送方通訊的接收方藉此發起終止該發送設備與接收方之間的資料傳輸的狀況。在一個I3C實例中,串列匯流排可以被配置用於HDR-DDR操作模式。
在方塊2004,發送設備可以在發送設備中與從該發送設備到接收方的資料傳輸同時地計算錯誤校驗字(例如,CRC’校驗字)。此外,在方塊2006,發送設備可以在發起終止資料傳輸後經由傳送方暫時控制串列匯流排,並將計算出的錯誤校驗字傳送到接收方。獲取控制的時間態樣可以與CRC'字的長度相關聯,並且該時間段可以等於傳送單個CRC'字所需的傳輸時間。
在一個實例中,發送設備是主設備,但不限於此,並且在一些態樣可以是從設備。在另一實例中,在串列匯流排上傳送資料包括在串列匯流排的第二線(例如,SCL線)上傳送的時鐘信號的脈衝的每一邊沿上傳送一個資料位元。在各種實例中,串列匯流排根據I3C協定以及具體而言根據HDR-DDR模式來操作。終止資料傳輸可包括在串列匯流排上傳送HDR退出模式或HDR重啟模式。
在其他態樣,方法2000可進一步包括發送設備在臨時向接收方傳送計算出的錯誤校驗字後放棄、撤銷或讓出對串列匯流排的控制權。在其他態樣,錯誤校驗字被配置為避免在匯流排上與來自發起終止資料傳輸的接收方的前序信號爭用。在又一態樣,錯誤校驗字被配置成避免匯流排上的爭用包括將錯誤校驗字的至少第一位元設為預定值以避免爭用。
在亦有一些其他態樣,錯誤校驗字是在發送設備中與從該發送設備到接收方的資料傳輸同時地計算的,並且包括針對由發送設備在串列資料匯流排上發送的每一位元或兩位元中的一者來反覆運算地計算錯誤校驗字。
在亦有一些其他態樣,方法2000可包括:經由發送設備暫時控制串列資料匯流排包括在一個串列匯流排時鐘循環的歷時內取得控制。在其他實例中,方法2000可以包括:根據I3C協定的高資料率(HDR)雙倍資料速率操作模式來操作串列資料匯流排,並且終止串列資料匯流排上的資料傳輸包括在串列資料匯流排上傳送HDR重啟模式。在又一態樣,錯誤校驗字包括循環冗餘檢查(CRC)字。
圖21是圖示採用處理電路2102的裝置2100的硬體實現的簡化實例的示圖。處理電路通常具有控制器或處理器2116,其可包括一或多個微處理器、微控制器、數位訊號處理器、定序器及/或狀態機。處理電路2102可以用由匯流排2120一般化地表示的匯流排架構來實現。取決於處理電路2102的具體應用和整體設計約束,匯流排2120可包括任何數目的互連匯流排和橋接器。匯流排2120將包括一或多個處理器及/或硬體模組(由控制器或處理器2116、模組或電路2104、2106和2108以及電腦可讀取儲存媒體2118表示)的各種電路連結在一起。該裝置可以使用實體層電路2114耦合至多線通訊鏈路。實體層電路2114可以操作多線通訊鏈路2112以支援根據I3C協定的通訊。匯流排2120亦可連結各種其他電路,諸如時序源、周邊設備、穩壓器和功率管理電路,該等電路在本領域中是眾所周知的,且因此將不再進一步描述。
處理器2116負責一般性處理,包括執行儲存在電腦可讀取儲存媒體2118上的軟體、代碼及/或指令。該電腦可讀取儲存媒體可包括非瞬態儲存媒體。該軟體在由處理器2116執行時使處理電路2102執行上文針對任何特定裝置描述的各種功能。電腦可讀取儲存媒體可被用於儲存由處理器2116在執行軟體時操縱的資料。處理電路2102進一步包括模組2104、2106和2108中的至少一個模組。模組2104、2106和2108可以是在處理器2116中運行的軟體模組、常駐/儲存在電腦可讀取儲存媒體2118中、是耦合至處理器2116的一或多個硬體模組,或是其某個組合。模組2104、2106和2108可包括微控制器指令、狀態機配置參數,或其某種組合。
在一種配置中,裝置2100包括介面控制器2104和線驅動器電路2114,線驅動器電路2114包括耦合到多線串列匯流排的第一導線的第一線驅動器和耦合到多線串列匯流排2112的第二導線的第二線驅動器。裝置2100可以包括模組及/或電路2104、2108、2114,該等模組及/或電路被配置成在串列匯流排2112被配置用於DDR操作模式時經由串列匯流排傳送第一資料。該裝置可以包括模組及/或電路2104、2106、2114,該等模組及/或電路被配置成決定在串列資料匯流排上與傳送方通訊的接收方藉此發起終止或中止該傳送方與接收方之間的資料傳輸的狀況。
裝置2100可以包括被配置成在傳送方中與從傳送方到接收方的資料傳輸同時地計算錯誤校驗字(例如,CRC'字)的模組及/或電路2104、2108、2114。此外,裝置2100可以包括模組及/或電路2104、2106、2108及/或2114,該等模組及/或電路被配置成使得發送設備可以在發起終止資料傳輸之後經由傳送方暫時控制串列匯流排並向接收方傳送計算出的錯誤校驗字(例如,CRC字)。
在一些實例中,該裝置是主設備並且包括耦合到串列匯流排的第一導線的上拉電路。可以經由使第一線驅動器進入高阻抗狀態並啟用上拉電路來禁用耦合到串列匯流排的第一導線的驅動器。在一個實例中,介面控制器2104被配置成在DDR操作模式中在串列匯流排2112的第二導線上傳送的時鐘信號的脈衝的每一邊沿上傳送一個資料位元。在一個實例中,串列匯流排2112根據I3C協定操作。介面控制器2104可以被配置成在終止資料傳輸時在串列匯流排2112上傳送HDR退出模式或HDR重啟模式。另外,模組2108可以包括用於在運行中計算CRC'字的模組,並且可以由圖10中的電路1002(作為一個實例)實現。
圖22是圖示可在耦合到串列匯流排的接收設備處執行的流控制過程的流程圖2200。在方塊2202,接收設備可以在串列匯流排上從發送設備接收資料。在一個實例中,串列匯流排可以被配置用於HDR-DDR操作模式。
在方塊2204,接收設備可以在來自發送設備的資料傳輸完成之前發起終止或中止來自發送設備的資料傳輸,諸如在主控方中止的情形中(參見例如圖7,從狀態704進展到708)。在方塊2206,接收設備可以在接收方發起終止資料傳輸後在串列匯流排上從發送設備接收計算出的錯誤校驗字。在一態樣,計算出的錯誤校驗字是已由發送方設備在運行中計算出的CRC’字。
在一些實例中,串列匯流排根據I3C協定操作。接收設備可以從串列匯流排接收HDR退出模式或HDR重啟模式,其中HDR退出模式和HDR重啟模式與串列匯流排上的當前資料傳輸的終止相關聯。
圖23是圖示採用處理電路2302的裝置2300的硬體實現的簡化實例的示圖。處理電路通常具有控制器或處理器2316,其可包括一或多個微處理器、微控制器、數位訊號處理器、定序器及/或狀態機。處理電路2302可以用由匯流排2320一般化地表示的匯流排架構來實現。取決於處理電路2302的具體應用和整體設計約束,匯流排2320可包括任何數目的互連匯流排和橋接器。匯流排2320將包括一或多個處理器及/或硬體模組(由控制器或處理器2316、模組或電路2304、2306和2308以及電腦可讀取儲存媒體2318表示)的各種電路連結在一起。該裝置可以使用實體層電路2314耦合至多線纜通訊鏈路。實體層電路2314可以操作多線通訊鏈路2312以支援根據I2C及/或I3C協定的通訊。匯流排2320亦可連結各種其他電路,諸如時序源、周邊設備、穩壓器和功率管理電路,該等電路在本領域中是眾所周知的,且因此將不再進一步描述。
處理器2316負責一般性處理,包括執行儲存在電腦可讀取儲存媒體2318上的軟體、代碼及/或指令。該電腦可讀取儲存媒體可包括非瞬態儲存媒體。該軟體在由處理器2316執行時使處理電路2302執行上文針對任何特定裝置描述的各種功能。電腦可讀取儲存媒體可被用於儲存由處理器2316在執行軟體時操縱的資料。處理電路2302進一步包括模組2304、2306和2308中的至少一個模組。模組2304、2306和2308可以是在處理器2316中運行的軟體模組、常駐/儲存在電腦可讀取儲存媒體2318中、是耦合至處理器2316的一或多個硬體模組,或是其某個組合。模組2304、2306和2308可包括微控制器指令、狀態機配置參數,或其某種組合。
在一種配置中,裝置2300包括耦合到多線串列匯流排的第一導線的第一線驅動器、耦合到多線串列匯流排的第二導線的第二線驅動器。裝置2300可包括被配置成在串列匯流排上從發送設備接收資料的模組及/或電路2304、2306、2314。在一個實例中,串列匯流排可以被配置用於HDR-DDR操作模式。裝置2300可包括被配置成在來自發送設備的資料傳輸完成之前發起終止或中止來自發送設備的資料傳輸的模組及/或電路2304、2306、2314,諸如在主控方中止的情形中(參見例如圖7,從狀態704進展到708)。裝置2300可包括被配置成在接收方發起終止資料傳輸後在串列匯流排上從發送設備接收計算出的錯誤校驗字的模組及/或電路2304、2306、2314。在一態樣,計算出的錯誤校驗字是已由發送方設備在運行中計算出的CRC字。
在一個實例中,裝置2300是主設備。在一個實例中,介面控制器2304經由使用在串列匯流排2312的第二導線上傳送的信號中的脈衝的每一邊沿接收資料位元來在串列匯流排2312上接收第一資料。在各種實例中,串列匯流排2312根據I3C協定操作。從串列匯流排2312接收到的HDR退出模式或HDR重啟模式可以與串列匯流排2312上的當前資料傳輸的終止相關聯。
鑒於前述內容,本領域技藝人士將理解,本發明揭示的方法、裝置和系統提供了對匯流排的更好利用,特別是對在接收方發起中止或終止資料傳輸之前傳送的資料的更好利用。由此,代替由於資料損壞風險較高而丟棄來自被中止的傳輸的資料(以及稍後重傳資料),CRC'字的傳輸提供了使用已經傳輸的資料的提高的置信度。
應理解,所揭示的過程中各步驟的具體次序或層次是示例性辦法的說明。應理解,基於設計偏好,可以重新編排該等過程中各步驟的具體次序或層次。此外,一些步驟可被組合或被略去。所附方法請求項以示例次序呈現各種步驟的要素,且並不意味著被限定於所提供的具體次序或層次。
提供之前的描述是為了使本領域任何技藝人士均能夠實踐本文中所描述的各種態樣。對該等態樣的各種修改將容易為本領域技藝人士所明白,並且在本文中所定義的普適原理可被應用於其他態樣。因此,申請專利範圍並非意欲被限定於本文中所示的態樣,而是應被授予與語言上的請求項相一致的全部範圍,其中對要素的單數形式的引述除非特別聲明,否則並非意欲表示「有且僅有一個」,而是「一或多個」。除非特別另外聲明,否則術語「一些」指的是一或多個。本案通篇描述的各個態樣的要素為本領域一般技藝人士當前或今後所知的所有結構上和功能上的等效方案經由引述被明確納入於此,且意欲被申請專利範圍所涵蓋。此外,本文中所揭示的任何內容皆並非意欲貢獻給公眾,無論此種揭示是否在申請專利範圍中被顯式地敘述。沒有任何請求項元素應被解釋為手段功能,除非該元素是使用短語「用於……的構件」來明確敘述的。
100‧‧‧裝置
102‧‧‧處理電路
104‧‧‧ASIC
106‧‧‧周邊設備
108‧‧‧收發機
110‧‧‧數據機
112‧‧‧處理器
114‧‧‧板載記憶體
116‧‧‧匯流排介面電路
118a‧‧‧匯流排
118b‧‧‧匯流排
120‧‧‧匯流排
122‧‧‧處理器可讀儲存
124‧‧‧天線
126‧‧‧顯示器
128‧‧‧開關/按鈕
130‧‧‧開關/按鈕
132‧‧‧按鍵板
200‧‧‧通訊鏈路
202‧‧‧串列匯流排
204‧‧‧主設備
206‧‧‧設備
208‧‧‧設備
210‧‧‧設備
212‧‧‧設備
214‧‧‧設備
216‧‧‧設備
300‧‧‧裝置
302‧‧‧設備
304‧‧‧感測器控制功能
306‧‧‧暫存器
308‧‧‧時鐘產生電路
310‧‧‧收發機
310a‧‧‧接收器
310b‧‧‧共用電路
310c‧‧‧發射器
312‧‧‧控制邏輯
314a‧‧‧線驅動器/接收器
314b‧‧‧線驅動器/接收器
316‧‧‧第一導線
318‧‧‧第二導線
320‧‧‧從設備/匯流排主控方
322a‧‧‧設備
322n‧‧‧設備
324‧‧‧儲存
330‧‧‧串列匯流排
400‧‧‧時序圖
402‧‧‧SDA線
404‧‧‧SCL線
406‧‧‧開始狀況
408‧‧‧停止狀況
410‧‧‧重複開始
412‧‧‧訊號傳遞狀態
414‧‧‧脈衝
420‧‧‧命令碼傳輸
422‧‧‧發起符
424‧‧‧預定義命令
426‧‧‧命令碼
428‧‧‧資料
430‧‧‧結束字元
500‧‧‧時序圖
502‧‧‧SCL線
504‧‧‧SDA線
506‧‧‧前序信號位元
508‧‧‧前序信號位元
510‧‧‧8位元位元組
512‧‧‧8位元位元組
514‧‧‧同位位元
516‧‧‧邊沿
518‧‧‧邊沿
520‧‧‧脈衝
600‧‧‧訊號傳遞
602‧‧‧HDR退出
604‧‧‧下降沿
606‧‧‧上升沿
700‧‧‧狀態圖
702‧‧‧狀態
704‧‧‧狀態
706‧‧‧狀態
708‧‧‧狀態
710‧‧‧狀態
712‧‧‧狀態
714‧‧‧狀態到狀態路徑/狀態改變
716‧‧‧狀態
718‧‧‧狀態
720‧‧‧狀態
722‧‧‧HDR重啟
724‧‧‧HDR退出
800‧‧‧CRC'字
900‧‧‧I3C介面
901‧‧‧主設備
902‧‧‧SCL線
903‧‧‧介面控制器
904‧‧‧SDA線
906‧‧‧收發機
908‧‧‧收發機
910‧‧‧控制信號
912‧‧‧阻抗控制信號
914‧‧‧主SDA信號
916‧‧‧SDA信號
918‧‧‧控制信號
920‧‧‧阻抗控制信號
921‧‧‧從設備
922‧‧‧主SCL信號
924‧‧‧SCL信號
926‧‧‧上拉電路/結構
928‧‧‧上拉電路/結構
930‧‧‧介面控制器
932‧‧‧收發機
934‧‧‧SDA信號/收發機
936‧‧‧從SDA信號
938‧‧‧阻抗控制信號
940‧‧‧SCL信號
942‧‧‧SCL信號
946‧‧‧阻抗控制信號
952‧‧‧開關
954‧‧‧上拉電阻器
960‧‧‧保持器電路
1000‧‧‧線驅動電路
1002‧‧‧電路
1004‧‧‧資料
1006‧‧‧CRC’字計算電路
1008‧‧‧移位暫存器
1010‧‧‧多工器
1012‧‧‧選擇信號
1014‧‧‧輸出
1100‧‧‧時序圖
1102‧‧‧時間
1104‧‧‧時間
1106‧‧‧時間
1108‧‧‧時間
1110‧‧‧時間
1112‧‧‧時間
1114‧‧‧時間
1200‧‧‧時序圖
1202‧‧‧時間
1204‧‧‧時間
1206‧‧‧時間
1208‧‧‧時間
1210‧‧‧時間
1212‧‧‧時間
1214‧‧‧時間
1216‧‧‧時間
1218‧‧‧時間
1220‧‧‧時間
1222‧‧‧時間
1224‧‧‧時間
1226‧‧‧時間
1228‧‧‧時間
1230‧‧‧時間
1300‧‧‧等時線
1302‧‧‧時間
1304‧‧‧時間
1306‧‧‧時間
1308‧‧‧時間
1310‧‧‧時間
1312‧‧‧時間
1314‧‧‧時間
1316‧‧‧時間
1318‧‧‧時間
1320‧‧‧時間
1322‧‧‧時間
1324‧‧‧時間
1326‧‧‧時間
1328‧‧‧時間
1330‧‧‧時間
1400‧‧‧等時線場景
1402‧‧‧時間
1404‧‧‧時間
1406‧‧‧時間
1408‧‧‧時間
1410‧‧‧時間
1412‧‧‧時間
1414‧‧‧時間
1500‧‧‧等時線
1502‧‧‧時間
1504‧‧‧時間
1506‧‧‧時間
1508‧‧‧時間
1510‧‧‧時間
1512‧‧‧時間
1514‧‧‧時間
1600‧‧‧等時線
1602‧‧‧時間
1604‧‧‧時間
1606‧‧‧時間
1608‧‧‧時間
1610‧‧‧時間
1612‧‧‧時間
1614‧‧‧時間
1616‧‧‧時間
1618‧‧‧時間
1620‧‧‧時間
1622‧‧‧時間
1624‧‧‧時間
1700‧‧‧等時線
1702‧‧‧時間
1704‧‧‧時間
1706‧‧‧時間
1708‧‧‧時間
1710‧‧‧時間
1712‧‧‧時間
1714‧‧‧時間
1716‧‧‧時間
1718‧‧‧時間
1720‧‧‧時間
1722‧‧‧時間
1724‧‧‧時間
1726‧‧‧時間
1800‧‧‧等時線
1802‧‧‧時間
1804‧‧‧時間
1806‧‧‧時間
1808‧‧‧時間
1810‧‧‧時間
1812‧‧‧時間
1814‧‧‧時間
1900‧‧‧裝置
1902‧‧‧處理電路
1904‧‧‧處理器
1906‧‧‧儲存
1908‧‧‧匯流排介面
1910‧‧‧匯流排
1912‧‧‧收發機
1914‧‧‧運行時映射
1916‧‧‧軟體模組
1918‧‧‧使用者介面
1920‧‧‧分時程式
1922‧‧‧邏輯電路
2000‧‧‧流程圖/方法
2002‧‧‧方塊
2004‧‧‧方塊
2006‧‧‧方塊
2100‧‧‧裝置
2102‧‧‧處理電路
2104‧‧‧模組/電路
2106‧‧‧模組/電路
2108‧‧‧模組/電路
2112‧‧‧多線通訊鏈路
2114‧‧‧實體層電路
2116‧‧‧處理器
2118‧‧‧電腦可讀取儲存媒體
2120‧‧‧匯流排
2200‧‧‧流程圖
2202‧‧‧方塊
2204‧‧‧方塊
2206‧‧‧方塊
2300‧‧‧裝置
2302‧‧‧處理電路
2304‧‧‧模組/電路
2306‧‧‧模組/電路
2308‧‧‧模組/電路
2312‧‧‧多線通訊鏈路/串列匯流排
2314‧‧‧實體層電路
2316‧‧‧處理器
2318‧‧‧電腦可讀取儲存媒體
2320‧‧‧匯流排
圖1圖示了在各IC設備之間採用根據複數個可用標準之一來選擇性地操作的資料連結的裝置。
圖2圖示了其中使用串列匯流排來連接設備的配置的通訊鏈路。
圖3圖示了包括連接到串列匯流排的多個設備的裝置的某些態樣。
圖4包括圖示當串列匯流排在由I3C規範定義的單倍資料速率(SDR)操作模式中操作時該串列匯流排上的訊號傳遞的時序圖。
圖5是圖示I3C高資料率(HDR)模式中的傳輸的實例的時序圖500,其中資料以雙倍資料速率(DDR)傳送。
圖6圖示了在串列匯流排的SDA線和SCL線上傳送以發起某些模式變更的訊號傳遞的實例。
圖7圖示了根據本案的各態樣的I3C匯流排中的HDR模式期間的狀態的狀態圖。
圖8是圖示根據本案的一態樣的示例性CRC’字內的資料的表。
圖9是圖示採用可根據本文所揭示的某些態樣適配的處理電路的裝置的實例的方塊圖。
圖10圖示了根據本文所揭示的某些態樣的可被用於提供硬體流控制的線驅動電路的實例。
圖11-18提供了圖示根據本文揭示的某些態樣的匯流排流控制的實例的時序圖。
圖19是圖示採用可根據本文所揭示的某些態樣適配的處理電路的裝置的實例的方塊圖。
圖20是圖示根據本文揭示的某些態樣的可以在耦合到串列匯流排的發送或傳送設備處執行的流控制過程的流程圖。
圖21圖示了根據本文揭示的某些態樣的發送或傳送裝置的硬體實現。
圖22是圖示根據本文揭示的某些態樣的可以在耦合到串列匯流排的接收設備處執行的流控制過程的流程圖。
圖23圖示了根據本文揭示的某些態樣的接收裝置的硬體實現。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (30)

  1. 一種用於在一串列資料匯流排中進行通訊的方法,包括以下步驟: 在該串列資料匯流排上的一發送設備處決定在該串列資料匯流排上與該發送設備通訊的一接收方藉此發起終止該發送設備與該接收方之間的資料傳輸的一狀況; 在該發送設備中與從該發送設備到該接收方的資料傳輸同時地計算一錯誤校驗字;及 在發起終止資料傳輸後經由該發送設備控制該串列資料匯流排並將該計算出的錯誤校驗字從該發送設備傳送到該接收方。
  2. 如請求項1所述之方法,進一步包括以下步驟: 由該發送設備在向該接收方傳送該計算出的錯誤校驗字後放棄對該串列資料匯流排的控制。
  3. 如請求項1所述之方法,其中該錯誤校驗字被配置成避免在該串列資料匯流排上與來自發起終止資料傳輸的該接收方的一前序信號爭用。
  4. 如請求項3所述之方法,其中將該錯誤校驗字配置成避免該串列資料匯流排上的爭用包括將該錯誤校驗字的至少一第一位元設為一預定值以避免爭用。
  5. 如請求項1所述之方法,其中在該發送設備中與從該發送設備到該接收方的資料傳輸同時地計算該錯誤校驗字包括針對由該發送設備在該串列資料匯流排上發送的每一位元或兩位元中的一者來反覆運算地計算該錯誤校驗字。
  6. 如請求項1所述之方法,其中經由該發送設備控制該串列資料匯流排包括在一個串列資料匯流排時鐘循環的一歷時內取得控制。
  7. 如請求項1所述之方法,其中該串列資料匯流排根據一I3C協定的一高資料率(HDR)雙倍資料速率操作模式來操作。
  8. 如請求項1所述之方法,其中終止該串列資料匯流排上的資料傳輸包括在該串列資料匯流排上傳送一HDR重啟模式。
  9. 如請求項1所述之方法,其中該錯誤校驗字包括一循環冗餘檢查(CRC)字。
  10. 一種裝置,包括: 耦合到一多線串列匯流排的一第一導線的一第一線驅動器; 耦合到該多線串列匯流排的一第二導線的一第二線驅動器;及 一介面控制器,其被配置成: 決定在該多線串列匯流排上與該裝置通訊的一接收方藉此發起終止該裝置與該接收方之間的資料傳輸的一狀況; 與從該裝置到該接收方的資料傳輸同時地計算一錯誤校驗字;及 在該接收方發起終止資料傳輸之後經由該裝置控制該多線串列匯流排並將該計算出的錯誤校驗字傳送到該接收方。
  11. 如請求項10所述之裝置,其中該介面控制器被進一步配置成: 在向該接收方傳送該計算出的錯誤校驗字後放棄對該多線串列匯流排的控制。
  12. 如請求項10所述之裝置,其中該錯誤校驗字被配置成避免在該多線串列匯流排上與來自發起終止資料傳輸的該接收方的一前序信號爭用。
  13. 如請求項12所述之裝置,其中將該錯誤校驗字配置成避免該多線串列匯流排上的爭用包括將該錯誤校驗字的至少一第一位元設為一預定值以避免爭用。
  14. 如請求項10所述之裝置,其中在該裝置中與從該裝置到該接收方的資料傳輸同時地計算該錯誤校驗字包括針對由該裝置在該多線串列匯流排上發送的每一位元或兩位元中的一者來反覆運算地計算該錯誤校驗字。
  15. 如請求項10所述之裝置,其中經由該裝置控制該多線串列匯流排包括在一個多線串列匯流排時鐘循環的一歷時內取得控制。
  16. 如請求項10所述之裝置,其中該多線串列匯流排根據一I3C協定的一高資料率(HDR)雙倍資料速率操作模式來操作。
  17. 如請求項10所述之裝置,其中終止該多線串列匯流排上的資料傳輸包括在該多線串列匯流排上傳送一HDR重啟模式。
  18. 如請求項10所述之裝置,其中該錯誤校驗字包括一循環冗餘檢查(CRC)字。
  19. 一種用於在一串列資料匯流排中進行通訊的裝置,包括: 用於在該串列資料匯流排上的一發送設備處決定在該串列資料匯流排上與該發送設備通訊的一接收方藉此發起終止該發送設備與該接收方之間的資料傳輸的一狀況的構件; 用於在該發送設備中與從該發送設備到該接收方的資料傳輸同時地計算一錯誤校驗字的構件;及 用於在發起終止資料傳輸後經由該發送設備控制該串列資料匯流排並將該計算出的錯誤校驗字傳送到該接收方的構件。
  20. 如請求項19所述之裝置,進一步包括: 用於由該發送設備在向該接收方傳送該計算出的錯誤校驗字後放棄對該串列資料匯流排的控制的構件。
  21. 如請求項19所述之裝置,其中該錯誤校驗字被配置成避免在該串列資料匯流排上與來自發起終止資料傳輸的該接收方的一前序信號爭用。
  22. 如請求項21所述之裝置,其中將該錯誤校驗字配置成避免該串列資料匯流排上的爭用包括將該錯誤校驗字的至少一第一位元設為一預定值以避免爭用。
  23. 如請求項19所述之裝置,其中在該發送設備中與從該發送設備到該接收方的資料傳輸同時地計算該錯誤校驗字包括針對由該發送設備在該串列資料匯流排上發送的每一位元或兩位元中的一者來反覆運算地計算該錯誤校驗字。
  24. 如請求項19所述之裝置,其中經由該發送設備控制該串列資料匯流排包括在一個串列資料匯流排時鐘循環的一歷時內取得控制。
  25. 如請求項19所述之裝置,其中該串列資料匯流排根據一I3C協定的一高資料率(HDR)雙倍資料速率操作模式來操作。
  26. 如請求項19所述之裝置,其中終止該串列資料匯流排上的資料傳輸包括在該串列資料匯流排上傳送一HDR重啟模式。
  27. 如請求項19所述之裝置,其中該錯誤校驗字包括一循環冗餘檢查(CRC)字。
  28. 一種用於在串列匯流排上傳遞資料的方法,該方法包括以下步驟: 在一接收設備處經由該串列匯流排從一發送設備接收資料; 在來自該發送設備的資料傳輸完成之前發起終止來自該發送設備的資料傳輸;及 在該接收方發起終止資料傳輸後在該串列匯流排上從該發送設備接收一計算出的錯誤校驗字。
  29. 如請求項28所述之方法,其中該接收設備包括控制該串列匯流排的一時鐘線的一主設備。
  30. 如請求項28所述之方法,其中該錯誤校驗字包括由該發送設備與該發送設備傳送該資料同時地計算的一循環冗餘檢查(CRC)字。
TW107118672A 2017-06-09 2018-05-31 串列匯流排中止之際的糾錯計算 TW201904236A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762517696P 2017-06-09 2017-06-09
US62/517,696 2017-06-09
US15/992,701 US20180357121A1 (en) 2017-06-09 2018-05-30 Error correction calculation upon serial bus abort
US15/992,701 2018-05-30

Publications (1)

Publication Number Publication Date
TW201904236A true TW201904236A (zh) 2019-01-16

Family

ID=64563553

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107118672A TW201904236A (zh) 2017-06-09 2018-05-31 串列匯流排中止之際的糾錯計算

Country Status (3)

Country Link
US (1) US20180357121A1 (zh)
TW (1) TW201904236A (zh)
WO (1) WO2018226505A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI787887B (zh) * 2021-03-15 2022-12-21 日商鎧俠股份有限公司 記憶體系統

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019004205A (ja) * 2017-06-12 2019-01-10 株式会社村田製作所 転送装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151689A (en) * 1992-12-17 2000-11-21 Tandem Computers Incorporated Detecting and isolating errors occurring in data communication in a multiple processor system
US7996731B2 (en) * 2005-11-02 2011-08-09 Advanced Micro Devices, Inc. Error detection in high-speed asymmetric interfaces
US7644344B2 (en) * 2007-05-15 2010-01-05 Intel Corporation Latency by offsetting cyclic redundancy code lanes from data lanes
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
CN106454696B (zh) * 2013-12-31 2019-10-01 深圳市汇顶科技股份有限公司 一种电子设备的近场通信方法和系统
JP6507470B2 (ja) * 2014-02-04 2019-05-08 富士通株式会社 情報処理装置、情報処理システム及び障害検出方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI787887B (zh) * 2021-03-15 2022-12-21 日商鎧俠股份有限公司 記憶體系統

Also Published As

Publication number Publication date
WO2018226505A1 (en) 2018-12-13
US20180357121A1 (en) 2018-12-13

Similar Documents

Publication Publication Date Title
US11010327B2 (en) I3C point to point
US10241955B2 (en) Dynamically adjustable multi-line bus shared by multi-protocol devices
US9971666B2 (en) Technique of link state detection and wakeup in power state oblivious interface
JP2017500631A (ja) 複数のスレーブデバイス識別子を有するカメラ制御スレーブデバイス
JP2018517987A (ja) 50ナノ秒スパイクフィルタ用のテスト
TWI822849B (zh) 混合模式射頻前端介面
US20190356412A1 (en) Fast termination of multilane double data rate transactions
TW201926064A (zh) 用於時間臨界資料交換之多點下傳匯流排上之位元交錯雙向傳輸
US20190171609A1 (en) Non-destructive outside device alerts for multi-lane i3c
US20190266122A1 (en) Multilane heterogenuous serial bus
US20180260357A1 (en) I2c clock stretch over i3c bus
JP2008118342A (ja) 非同期シリアル通信方法及び非同期シリアル通信装置
TW201743572A (zh) 用於線多工uart流程控制的數位訊號傳遞方案
US20200201804A1 (en) I3c device timing adjustment to accelerate in-band interrupts
US20180181532A1 (en) Data transfer ending in phase differential modes
TW201908984A (zh) 由第三方啟動之加速改良式內部積體電路停止
US10684981B2 (en) Fast termination of multilane single data rate transactions
TW201904236A (zh) 串列匯流排中止之際的糾錯計算
US10733121B2 (en) Latency optimized I3C virtual GPIO with configurable operating mode and device skip
US10402365B2 (en) Data lane validation procedure for multilane protocols
US9880895B2 (en) Serial interface with bit-level acknowledgement and error correction
TW201937378A (zh) 用於i3c匯流排的使用脈衝計數調制的資料包內關鍵信號傳遞
TW201921260A (zh) 在i3c多線匯流排上之奇偶校驗位元位置
US20170371830A1 (en) Accelerated i3c master stop
US20210173808A1 (en) Early parity error detection on an i3c bus