TWI506397B - 非同步時鐘領域之間的資料傳送 - Google Patents
非同步時鐘領域之間的資料傳送 Download PDFInfo
- Publication number
- TWI506397B TWI506397B TW101148753A TW101148753A TWI506397B TW I506397 B TWI506397 B TW I506397B TW 101148753 A TW101148753 A TW 101148753A TW 101148753 A TW101148753 A TW 101148753A TW I506397 B TWI506397 B TW I506397B
- Authority
- TW
- Taiwan
- Prior art keywords
- clock
- clock domain
- signal
- synchronization signal
- domain
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Description
本發明之若干實施例大體上關於系統或諸如處理器之裝置中的非同步時鐘領域。更特別地,本發明之若干實施例關於促進具有非同步時鐘領域之系統測試的系統或裝置組態。
積體電路傳統上使用同步協定進行資料傳送。現有測試及驗證技術倚重逐一週期確定性同步模型。
在大規模並行架構或平台級設計中,互動時鐘領域之數量及多樣性增加。因為工程成本、電力消耗、及項目級風險,可禁止所有時鐘領域同步化。因此,愈多該等架構及設計利用多非同步時鐘領域。然而,難以使用產業標準驗證硬體及軟體來驗證或仿真完全非同步架構。
大型積體電路及其他系統,包括處理器及其他裝置,愈多使用多非同步時鐘領域。非同步時鐘領域通常經由可從不同時鐘領域存取之中間緩衝器而相互通訊。
在發展期間,可監控裝置及邏輯以確認其如所希望操作並產生預期結果。然而,可用測試及診斷裝備典型地未設計用於以非同步時鐘領域作業。而是,該等測試及診斷裝備典型地依賴組件及子系統之間的確定性關係。在上下
文中確定性係指對於其上發生處理器事件之時鐘週期的肯定。其確保事件的重複性,其為包含此事件之大多數大批量製造實驗的基礎。非同步時鐘領域之非確定性性質呈現挑戰,尤其當開發者希望記錄及後續再生引發檢測之故障或錯誤的狀況及事件時。
以下說明之範例提供用於測試裝備的方式,以記錄及再生非同步時鐘領域之間的運行時間互動。在某實施例中,第一時鐘領域及第二時鐘領域傳送資料以回應於與第一時鐘領域之時鐘同步產生的同步信號。在同步信號的每一時期,文中稱為同步週期,第二時鐘領域中時鐘週期的數量可改變。然而,以下說明之實施產生報告輸出以指出同步週期及第二時鐘領域之週期之間的對應。報告輸出可藉由測試裝備記錄,並允許測試裝備回應於實際作業狀況而決定每一同步時期期間第一及第二時鐘領域中發生的時鐘週期數量。此允許裝置作業的後續仿真及記錄之事件的重新創造。
圖1描繪具有第一時鐘領域102及第二時鐘領域104的裝置或系統100。作為範例,系統100可為處理器或類似類型裝置。
第一時鐘領域102具有產生第一時鐘信號CLOCK1之第一時鐘106或與其相關聯。第二時鐘領域104具有或與產生第二時鐘信號CLOCK2之第二時鐘108相關。第一及第二時鐘信號CLOCK1及CLOCK2為非同步,因此可不具有確定性頻率或相位關係。
第一及第二時鐘領域102及104可各具有各式組件及/或元件(未顯示),其操作以回應於各個時鐘信號CLOCK1及CLOCK2。
系統100可具有同步時鐘110,其回應於第一時鐘信號CLOCK1以產生同步信號或脈衝SYNC。在若干實施例中同步時鐘110可實施為分頻器,使得同步脈衝SYNC係以低於第一時鐘信號CLOCK1之頻率發生,同時具有與第一時鐘信號CLOCK1之固定相位關係。例如,同步時鐘110可產生相應於第一時鐘信號CLOCK1之每N週期的單一同步脈衝,其中N為整數。藉由同步信號界定之時期文中將稱為同步時期或週期。
系統100亦可具有資料傳送邏輯112以在第一及第二時鐘領域102及104之間傳送資料。資料傳送邏輯112可包含一或多個中間暫存器或緩衝器,並可回應於同步脈衝SYNC以啟動及/或實施資料傳送或交換。在交換週期期間,資料可從第一時鐘領域102傳送至第二時鐘領域104,及/或從第二時鐘領域104傳送至第一時鐘領域102。以下將結合圖4之說明來說明傳送邏輯112之更具體實施。
系統100可包括報告邏輯114其產生相應於每一同步週期的時鐘計數信號COUNT。可回應於同步脈衝SYNC及第二時鐘信號CLOCK2而產生時鐘計數信號COUNT。時鐘計數信號COUNT可針對每一SYNC脈衝或相應同步週期指出第二時鐘信號CLOCK2之發生週期的數量。請注
意,因為第一及第二時鐘領域之間的非同步關係,發生於SYNC脈衝之間的CLOCK2週期數量可不確定,並可隨時間改變。時鐘計數信號COUNT指出實際發生相應於個別同步時期之CLOCK2週期的數量。
時鐘計數信號COUNT可與第一時鐘信號CLOCK1、第二時鐘信號CLOCK2、及/或同步脈衝SYNC同步而產生及輸出。
時鐘計數信號COUNT提供用於相關聯,並報告第一時鐘領域102及第二時鐘領域104之運行時間作業之機構,其可藉由測試及驗證裝備記錄及使用,以再生錯誤狀況之前的狀況及序列。因為SYNC脈衝係產生自第一時鐘信號CLOCK1,每一SYNC脈衝之CLOCK1週期的數量為已知。因為第二時鐘領域104與第一時鐘領域102為非同步,每一SYNC脈衝之CLOCK1週期的數量可能可變。然而,報告邏輯114監控實際觀察之性能,並提供時鐘計數信號COUNT作為有多少CLOCK2週期實際發生用於每一SYNC脈衝的指示。因而,可允許二時鐘領域非同步運行,同時其作業可藉由驗證及測試裝備監控、記錄、及相關聯於彼此:對每一SYNC脈衝而言,可決定及記錄實際發生之相應CLOCK1及CLOCK2週期的數量。
圖2描繪系統100中之信號關係。請注意,在此描繪中,考量之信號於其上升邊緣成為活動。圖2顯示圖1之CLOCK1、SYNC、CLOCK2、及COUNT信號之間的關係。
CLOCK1信號可為週期性、重複性、及/或定期性信號,諸如所描繪之方波。同步脈衝SYNC可類似於週期性、重複性、或定期性信號,諸如重複或定期發生脈衝。如以上所說明,同步脈衝SYNC可與CLOCK1信號同步,並可以較CLOCK1信號低之頻率。在所描繪之範例中,同步脈衝SYNC為每二週期CLOCK1信號重複一次。更一般地,同步脈衝SYNC可於每N週期CLOCK1信號發生一次,其中N為整數。每一同步脈衝SYNC相應於各個同步週期。
CLOCK2信號可為週期性、重複性、及/或定期性信號,諸如所描繪之方波。CLOCK2信號可具有與CLOCK1信號不同頻率,並可具有與CLOCK1信號及SYNC信號不確定或可變相位關係。
在此範例中,CLOCK2信號之頻率使其於SYNC脈衝之每一重複、時期、或週期發生一次或二次。在每一SYNC脈衝之上升邊緣,COUNT信號更新以指出CLOCK2週期之實際數量(藉由圖2中x指出),其係發生於先前SYNC時期期間,其中同步時期係藉由SYNC信號之上升邊緣界定(藉由圖2中虛垂直線指出)。在此範例中,計數信號之低值相應於CLOCK2信號之一週期,且COUNT信號之高值相應於CLOCK2信號之二週期。在CLOCK1及CLOCK2信號之正常頻率與所示不同之情況下,COUNT信號當然可用以指出不同CLOCK2計數。此外,COUNT信號可處於若干情況,包含多位元信號或值。
圖3描繪裝置或系統300範例,其中中間儲存元件或緩衝器302用於在第一時鐘領域304及非同步第二時鐘領域306之間非同步傳送資料。裝置或系統300範例使用以上說明之技術,以在第一及第二時鐘領域304及306之間傳送緩衝器指標。
中間儲存緩衝器302可包含諸如先進先出(FIFO)緩衝器之彈性緩衝器。在特定範例中,第一時鐘領域304與第一時鐘信號CLOCK1同步將資料寫入FIFO緩衝器302。第二時鐘領域306與第二時鐘信號CLOCK2同步從FIFO緩衝器讀取資料。第一及第二時鐘信號CLOCK1及CLOCK2可為非同步。
為協調第一及第二時鐘領域304及306之間的寫入及讀取,寫入及讀取指標維持在第一及第二時鐘領域304及306內。更具體地,第一時鐘領域304維持寫入指標308,其指出將被寫入之FIFO緩衝器302之下一位置的位址。在第一時鐘領域304寫入FIFO緩衝器302之此位置後,寫入指標308遞增。
第二時鐘領域306維持讀取指標310,其指出將被讀取之FIFO緩衝器302之下一位置的位址。在第二時鐘領域306從FIFO緩衝器302之此位置讀取後,讀取指標310遞增。
第一時鐘領域304亦可具有陰影或複製讀取指標312,其不時更新以反映第二時鐘領域306之讀取指標310的值。為避免第二時鐘領域306覆寫尚未讀取之資料,第
一時鐘領域304未對超過陰影讀取指標312指出之位址的位置實施寫入。
類似地,第二時鐘領域306可具有陰影或複製寫入指標314,其不時更新以反映第一時鐘領域304之寫入指標308的值。為避免讀取無效資料,第二時鐘領域306未從超過陰影寫入指標314指出之位址的位置實施讀取。
系統100可具有同步時鐘316,其經類似於圖1之同步時鐘110之組配,以產生依據第一時鐘信號CLOCK1之同步信號或脈衝SYNC。在此實施例中,SYNC脈衝用以更新陰影讀取指標312及陰影寫入指標314。更具體地,SYNC脈衝用以計時或閂鎖來自讀取指標310之資料進入陰影讀取指標312,及計時或閂鎖來自寫入指標308之資料進入陰影寫入指標314。
陰影讀取指標312可包含閂鎖或暫存器,其接收來自第二時鐘領域306之讀取指標310的目前值。此值係在接收SYNC脈衝後或回應於接收SYNC脈衝而藉由閂鎖或暫存器312捕捉。類似地,陰影寫入指標314可包含閂鎖或暫存器經組配以接收來自第一時鐘領域304之寫入指標308的目前值。此值係回應於接收SYNC脈衝而藉由閂鎖或暫存器314捕捉。
類似於圖1之實施例,系統300可具有報告邏輯318以報告於SYNC信號之每一重複或時期期間發生的CLOCK2週期數量。報告邏輯318可產生時鐘計數信號COUNT以指出第一時鐘領域304之時鐘週期及第二時鐘
領域306之時鐘週期之間的相關。如以上所說明,計數信號可由測試及驗證裝備用以記錄及之後仿真錯誤狀況之前的狀況及序列。
陰影讀取指標312及陰影寫入指標314可藉由SYNC脈衝直接計時,或可回應於各個SYNC脈衝而與各個時鐘領域同步計時。例如,讀取指標312可藉由回應於每一SYNC脈衝之CLOCK1信號計時。類似地,寫入指標314可藉由回應於每一SYNC脈衝之CLOCK2信號計時。
圖4描繪系統400之實施範例,其演示以上說明之概念。系統400具有第一時鐘領域402及第二時鐘領域404。第一時鐘領域402操作以回應於第一時鐘信號CLOCK1。第二時鐘領域404操作以回應於非同步第二時鐘信號CLOCK2。
第一及第二時鐘領域402及404使用中間彈性緩衝器或FIFO(未顯示)傳送資料,其可類似於圖3之FIFO緩衝器302。如參照圖3所說明,緩衝器係藉由指標定址。具體地,第一時鐘領域402維持寫入指標406及陰影讀取指標408。第二時鐘領域404維持讀取指標410及陰影寫入指標412。陰影寫入指標412係定期性更新以反映寫入指標406之值。陰影讀取指標408係定期性更新以反映讀取指標410之值。
在此範例中,同步時鐘可實施為藉由第一時鐘領域402內之N分頻器414劃分。分頻器414產生SYNC信號作為第一時鐘信號CLOCK1之功能。SYNC信號可包含定
期性或重複性脈衝,其係以低於CLOCK1信號之頻率發生,同時亦與CLOCK1信號同步。
SYNC信號係從第一時鐘領域402傳達或傳播至第二時鐘領域404,接著返回至第一時鐘領域402。更具體地,SYNC信號係從第一時鐘領域402經由第一介穩硬化正反器416傳輸至第二時鐘領域404。正反器416產生寫入SYNC信號,其可為SYNC信號之延遲版本。寫入SYNC信號係從第二時鐘領域404經由第二介穩硬化正反器418傳輸返回至第一時鐘領域402。正反器418產生讀取SYNC信號,其可為寫入SYNC信號之延遲版本。
在此實施例中,DQ閂鎖用以回應於同步信號之各式版本或例子,其包括SYNC信號、寫入SYNC信號、及讀取SYNC信號,而傳送第一及第二時鐘領域402及404之間的指標。
第一時鐘領域402內之第一閂鎖或傳送暫存器420於其輸入處接收第一時鐘領域402之寫入指標406的值。同步週期係藉由SYNC信號啟動,其閂鎖寫入指標值進入閂鎖420,使得其可藉由第二時鐘領域404被接收及讀取。
第二時鐘領域404內之第二閂鎖或傳送暫存器422回應於寫入SYNC信號,接收來自第一閂鎖420之寫入指標值,以閂鎖該值。
第二時鐘領域404內之第三閂鎖或傳送暫存器424於其輸入處接收第二時鐘領域404之讀取指標410的值。回應於寫入SYNC信號,該值被閂鎖進入第三閂鎖424,使
得該值可藉由第一時鐘領域402被接收及讀取。
第一時鐘領域402內之第四閂鎖或傳送暫存器426接收來自第三閂鎖424之讀取指標值,並回應於讀取SYNC信號以閂鎖來自第三閂鎖424之讀取指標值。
該些事件可總結為下列動作序列,其在本實施例中可統稱為同步週期:‧SYNC啟動同步週期並閂鎖寫入指標進入輸出閂鎖420;‧寫入SYNC閂鎖來自輸出閂鎖420之寫入指標進入輸入閂鎖422;‧寫入SYNC亦閂鎖讀取指標410進入輸出閂鎖424;以及‧讀取SYNC閂鎖來自輸出閂鎖424之讀取指標進入輸入閂鎖426。
第二時鐘領域404可具有報告邏輯428,類似於以上說明之報告邏輯。報告邏輯428回應於寫入SYNC信號及第二時鐘CLOCK2,並產生COUNT輸出,針對寫入SYNC之每一週期或脈衝指出先前寫入SYNC週期或同步週期期間發生之相應CLOCK2週期的數量。
N之值可依據第一時鐘信號CLOCK1及第二時鐘信號CLOCK2之比例,以資料覆寫及/或資料飢餓之可能性最小的方式選取。若藉由SYNC信號界定之同步步調過快,第一時鐘領域可在第二時鐘領域有機會處理先前同步週期之前啟動同步週期。若藉由SYNC信號界定之同步步調過
慢,第二時鐘領域可有時資料飢餓,即使FIFO緩衝器中存在未讀取資料。
虛線框430內之元件可視為或稱為寫入指標傳送邏輯。虛線框432內之元件可視為或稱為讀取指標傳送邏輯。寫入及讀取指標邏輯430及432代表圖1中所示之傳送邏輯112的實施範例。
圖5描繪實施例500範例,其係圖4之實施例的變化。在圖5中,寫入及讀取指標邏輯430及432各複製K次以產生多暫存器寫入緩衝器502及多暫存器讀取緩衝器504。該些緩衝器之每一可經組配而以FIFO方式操作,允許第一及第二時鐘領域402及404以不同速率處理同步週期。例如,此可允許第一時鐘領域402以較第二時鐘領域404可處理同步週期之速率更快的速率啟動同步週期。
圖5之實施例包括K相位時鐘產生器506,其回應於單一位元SYNC信號以產生多位元SYNCK信號。SYNCK信號包含K個信號位元,其係用以計時寫入指標邏輯430及讀取指標邏輯432之各個例子。
圖6描繪SYNCK信號之個別位元相對於單一位元SYNC信號之關係。此範例假定K=4。SYNCK信號包含K個個別位元或信號,稱為SYNC1、SYNC2、SYNC3、及SYNC4。個別SYNCK信號之每一者係藉由K個劃分SYNC信號所產生。此外,個別SYNCK信號相互錯開,使得針對SYNC信號的每一發生而產生單一SYNCK信號。
再次參照圖5,寫入傳送邏輯狀況430之每一者可相應於及回應於個別SYNCK信號位元之一個不同者。類似地,讀取傳送邏輯狀況432之每一者可回應於個別SYNCK信號位元之一個不同者。此配置有效地針對傳送之指標實施FIFO邏輯,允許其藉由第一及第二時鐘領域402及404以不同步調寫入及讀取。
圖7描繪用於在非同步時鐘領域之間傳送資料的方法700範例。動作702包含以第一週期性時鐘信號計時第一時鐘領域。動作704包含以第二週期性時鐘信號計時第二時鐘領域。如以上所討論,第一及第二週期性時鐘信號可為非同步。
動作706包含產生同步信號。同步信號可與第一時鐘信號同步,並可藉由整數N劃分第一時鐘信號之頻率予以產生。因而,第一時鐘信號可具有頻率,其為同步信號之固定整數倍。
動作708可包含從第一時鐘領域傳播同步信號至第二時鐘領域,接著從第二時鐘領域返回至第一時鐘領域。
動作710可包含回應於同步信號而對齊第一及第二時鐘領域之間的指標。回應於從第一時鐘領域傳播同步信號至第二時鐘領域,可從第一時鐘領域傳送第一緩衝器指標至第二時鐘領域。回應於從第二時鐘領域傳播同步信號返回至第一時鐘領域,可從第二時鐘領域傳送第二緩衝器指標至第一時鐘領域。
動作712可包含指出及/或報告同步信號及第二時鐘
信號之週期之間的對應。例如,動作710可包含針對同步信號之每一發生而指出第二時鐘信號的相應週期數量。
圖8為方塊圖,描繪可實施以上說明之技術之系統800的架構。系統800可包括一或多個處理器802-1、...、802-N(其中N為正整數1),其每一者可包括一或多個處理器核心804-1、...、804-M(其中M為正整數1)。在若干實施中,處理器802可為單一核心處理器,同時在其他實施中,處理器802可具有許多處理器核心,其每一者可包括圖8中所描繪之若干或全部組件。
處理器802及處理器核心804可經由整合記憶體控制器(IMC)810結合局部互連816操作以讀取及寫入記憶體812。處理器802及處理器核心804亦可執行儲存於記憶體812或其他電腦可讀取媒體中之電腦可讀取指令。記憶體812可包括以任何類型技術實施的揮發性及非揮發性記憶體及/或可移動及不可移動媒體,用以儲存資訊,諸如電腦可讀取指令、資料結構、程式模組或其他資料。該等記憶體可包括但不侷限於RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術。在若干實施中,若存在多處理器核心804,多處理器核心804可共用高速緩衝儲存器814,其可經由局部互連816存取。
儲存器818可提供用於儲存資料、碼、程式、登錄等。儲存器818可包括固態儲存器、磁碟儲存器、RAID儲存系統、儲存陣列、網路附加儲存器、儲存區域網路、雲端儲存器、CD-ROM、數位影音光碟(DVD)或其他光
學儲存器、盒式磁帶、磁帶、或可用以儲存所欲資訊並可藉由計算裝置存取的任何其他媒體。根據系統800之組態,記憶體812及/或儲存器818可為一種電腦可讀取儲存媒體並可為非暫時性媒體。
在各式實施例中,局部互連816亦可與圖形控制器或圖形處理單元820通訊,以提供圖形處理。此外,在若干實施例中,局部互連816可與系統代理器822通訊。系統代理器822可與集線器824通訊,其連接顯示引擎826、週邊組件互連裝置(PCIe)828、及桌面管理介面(DMI)830。
記憶體812可儲存可藉由處理器802執行之功能組件。在若干實施中,該些功能組件包含指令或程式832,其可藉由處理器802執行。圖8中所描繪之功能組件範例進一步包括作業系統(OS)834以管理系統800之作業。
系統800可包括一或多個通訊裝置836,其可包括一或多個介面及硬體組件用於透過通訊鏈路,諸如一或多個網路838,而致能與各式其他裝置通訊。例如,通訊裝置836可促進經由網際網路、纜線網路、蜂巢式網路、無線網路(例如Wi-Fi、蜂巢式組件)及有線網路之一或多者通訊。用於通訊之組件可至少部分取決於所選取之網路及/或環境類型。用於經由該等網路通訊之協定及組件為已知,文中將不詳細討論。
系統800可進一步裝配各式輸入/輸出(I/O)裝置840。該I/O裝置840可包括顯示器、各式使用者介面控
制(例如按鈕、搖桿、鍵盤、觸控螢幕等)、音頻揚聲器、連接埠等。可提供互連824,其可包括系統匯流排、點對點介面、晶片組、或其他適當連接及組件,以致能處理器802、記憶體812、儲存器818、通訊裝置836、及I/O裝置840之間的通訊。
儘管已以結構特徵及/或方法論動作之專用語言說明標的,在申請專利範圍中所界定之標的不侷限於以上說明之特徵或動作。而是,以上說明之特徵或動作係以實施申請專利範圍之範例形式揭露。此揭露希望涵蓋所揭露之實施的任何或所有調適或改變,且下列申請專利範圍不應解譯為侷限於說明書中所揭露之特定實施。相反地,本文件之範圍完全藉由下列申請專利範圍連同該等申請專利範圍賦予之等效論述的所有範圍界定。
100、300、400、500、800‧‧‧系統
102、304、402‧‧‧第一時鐘領域
104、306、404‧‧‧第二時鐘領域
106‧‧‧第一時鐘
108‧‧‧第二時鐘
110、316‧‧‧同步時鐘
112‧‧‧資料傳送邏輯
114、318、428‧‧‧報告邏輯
302‧‧‧緩衝器
308、406‧‧‧寫入指標
310、410‧‧‧讀取指標
312、408‧‧‧陰影讀取指標
314、412‧‧‧陰影寫入指標
414‧‧‧分頻器
416‧‧‧第一介穩硬化正反器
418‧‧‧第二介穩硬化正反器
420‧‧‧第一閂鎖或傳送暫存器
422‧‧‧第二閂鎖或傳送暫存器
424‧‧‧第三閂鎖或傳送暫存器
426‧‧‧第四閂鎖或傳送暫存器
430‧‧‧寫入指標傳送邏輯
432‧‧‧讀取指標傳送邏輯
502‧‧‧多暫存器寫入緩衝器
504‧‧‧多暫存器讀取緩衝器
506‧‧‧K相位時鐘產生器
700‧‧‧方法
702、704、706、708、710、712‧‧‧動作
802、802-1、...、802-N‧‧‧處理器
804、804-1、...、804-M‧‧‧處理器核心
810‧‧‧整合記憶體控制器
812‧‧‧記憶體
814‧‧‧共用之高速緩衝儲存器
816‧‧‧局部互連
818‧‧‧儲存器
820‧‧‧圖形控制器或圖形處理單元
822‧‧‧系統代理器
824‧‧‧集線器
824‧‧‧互連
826‧‧‧顯示引擎
828‧‧‧週邊組件互連裝置
830‧‧‧桌面管理介面
832‧‧‧指令或程式
834‧‧‧作業系統
836‧‧‧通訊裝置
838‧‧‧網路
840‧‧‧輸入/輸出裝置
CLOCK1‧‧‧第一時鐘信號
CLOCK2‧‧‧第二時鐘信號
COUNT‧‧‧時鐘計數信號
SYNC‧‧‧同步脈衝
參照圖式提出詳細說明。在圖中,元件符號之最左數字識別該編號首次出現之圖。不同圖中使用相同元件符號指出類似或相同項目或特徵。
圖1為方塊圖,描繪依據若干實施之在非同步時鐘領域之間傳送資料的範例。
圖2為時序圖,描繪藉由圖1所描繪之系統中的時序關係。
圖3-5為方塊圖,描繪依據若干實施之在非同步時鐘領域之間傳送資料的進一步範例。
圖6為時序圖,描繪圖5之SYNC及SYNCK信號之間的時序關係。
圖7為流程圖,描繪依據若干實施之在非同步時鐘領域之間傳送資料的程序範例。
圖8為系統之描繪架構的方塊圖,其中可實施說明之技術。
100‧‧‧系統
102‧‧‧第一時鐘領域
104‧‧‧第二時鐘領域
106‧‧‧第一時鐘
108‧‧‧第二時鐘
110‧‧‧同步時鐘
112‧‧‧資料傳送邏輯
114‧‧‧報告邏輯
Claims (27)
- 一種處理器,包含:藉由彼此間為非同步之第一時鐘信號及第二時鐘信號計時的第一時鐘領域及第二時鐘領域;第一邏輯,用以回應於同步信號,在該第一時鐘領域及該第二時鐘領域之間傳送資料;以及第二邏輯,用以指出相應於該同步信號之該第二時鐘信號的週期。
- 如申請專利範圍第1項之處理器,其中,該同步信號包含單一位元。
- 如申請專利範圍第1項之處理器,其中,該同步信號包含重複脈衝。
- 如申請專利範圍第1項之處理器,其中:該同步信號包含多位元;以及該第一邏輯包含相應於該同步信號之該多位元的傳送暫存器。
- 如申請專利範圍第1項之處理器,進一步包含藉由該第一時鐘領域及該第二時鐘領域非同步存取之彈性緩衝器,其中,該第一時鐘領域及該第二時鐘領域之間交換的資料包含該彈性緩衝器的一或多個指標。
- 如申請專利範圍第1項之處理器,進一步包含藉由該第一時鐘領域及該第二時鐘領域非同步存取之彈性緩衝器,其中,該第一時鐘領域及該第二時鐘領域之間交換的該資料包含與該彈性緩衝器相關之讀取指標及寫入指標。
- 如申請專利範圍第1項之處理器,其中,該同步信號從該第一時鐘領域傳播至該第二時鐘領域,及接著從該第二時鐘領域傳播至該第一時鐘領域。
- 如申請專利範圍第1項之處理器,其中,該同步信號從該第一時鐘領域傳播至該第二時鐘領域以將緩衝器寫入指標從該第一時鐘領域傳送至該第二時鐘領域,及接著從該第二時鐘領域傳播至該第一時鐘領域以將緩衝器讀取指標從該第二時鐘領域傳送至該第一時鐘領域。
- 如申請專利範圍第1項之處理器,其中,該同步信號與該第一時鐘信號同步。
- 如申請專利範圍第1項之處理器,進一步包含分頻器,用以回應於該第一時鐘信號產生該同步信號。
- 如申請專利範圍第1項之處理器,其中,該同步信號之每一週期相應於該第一時鐘信號週期之固定倍數。
- 一種系統,包含:緩衝器,用以在第一時鐘領域及第二時鐘領域之間傳送資料,其中,該第一時鐘領域及該第二時鐘領域係分別藉由第一週期性時鐘信號及第二週期性時鐘信號計時,且其中,該緩衝器係藉由一或多個緩衝器指標指出索引;同步時鐘,用以至少部分依據該第一時鐘信號產生同步信號;同步邏輯,用以回應於該同步信號,在該第一時序領域及該第二時序領域之間傳送該一或多個緩衝器指標;以及 報告邏輯,用以指出該第二時鐘信號與該同步信號之相關。
- 如申請專利範圍第12項之系統,其中,該同步信號包含單一位元。
- 如申請專利範圍第12項之系統,其中,該同步邏輯包含多傳送暫存器。
- 如申請專利範圍第12項之系統,其中,該同步信號包含脈衝,且其中,該報告邏輯用以指出該第二時鐘信號有多少週期相應於該脈衝之每一者。
- 如申請專利範圍第12項之系統,其中,該緩衝器包含先進先出緩衝器,且該緩衝器指標包含讀取指標及寫入指標。
- 如申請專利範圍第12項之系統,其中,該同步時鐘包含分頻器以回應於至少該第一時鐘信號產生該同步信號。
- 如申請專利範圍第12項之系統,其中,該同步信號從該第一時鐘領域傳播至該第二時鐘領域,接著從該第二時鐘領域傳播至該第一時鐘領域。
- 如申請專利範圍第12項之系統,其中,該同步信號從該第一時鐘領域傳播至該第二時鐘領域以將第一緩衝器指標從該第一時鐘領域傳送至該第二時鐘領域,及接著從該第二時鐘領域傳播至該第一時鐘領域以將第二緩衝器指標從該第二時鐘領域傳送至該第一時鐘領域。
- 如申請專利範圍第12項之系統,其中,該同步信 號與該第一時鐘信號同步。
- 如申請專利範圍第12項之系統,其中,該同步信號之每一週期相應於該第一時鐘信號週期之固定倍數。
- 一種方法,包含:以第一週期性時鐘信號計時第一時鐘領域;以第二週期性時鐘信號計時第二時鐘領域,其中,該第一週期性時鐘信號及該第二週期性時鐘信號為非同步;產生同步信號;回應於該同步信號,在該第一時鐘領域及該第二時鐘領域之間傳送資料;以及報告該同步信號及該第二時鐘信號之週期之間的對應。
- 如申請專利範圍第22項之方法,進一步包含至少部分依據該第一時鐘信號產生該同步信號。
- 如申請專利範圍第22項之方法,進一步包含與該第一時鐘信號同步地產生該同步信號。
- 如申請專利範圍第22項之方法,進一步包含劃分該第一時鐘信號以產生該同步信號。
- 如申請專利範圍第22項之方法,其中,該同步信號包含與該第一時鐘信號同步的週期,且該報告包含指出該第二時鐘信號有多少週期發生於該同步信號的每一週期。
- 如申請專利範圍第22項之方法,進一步包含:從該第一時鐘領域傳播該同步信號至該第二時鐘領 域,並返回至該第一時鐘領域;回應於從該第一時鐘領域傳播該同步信號至該第二時鐘領域,從該第一時鐘領域傳送第一緩衝器指標至該第二時鐘領域;以及回應於傳播該同步信號返回至該第一時鐘領域,從該第二時鐘領域傳送第二緩衝器指標至該第一時鐘領域。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067612 WO2013100976A1 (en) | 2011-12-28 | 2011-12-28 | Data transfer between asynchronous clock domains |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201346487A TW201346487A (zh) | 2013-11-16 |
TWI506397B true TWI506397B (zh) | 2015-11-01 |
Family
ID=48698219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101148753A TWI506397B (zh) | 2011-12-28 | 2012-12-20 | 非同步時鐘領域之間的資料傳送 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10025343B2 (zh) |
TW (1) | TWI506397B (zh) |
WO (1) | WO2013100976A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229010A (zh) * | 2016-03-25 | 2017-10-03 | 精工爱普生株式会社 | 电路、检测装置、振荡器、电子设备、移动体及检测方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3014797B1 (en) * | 2013-06-27 | 2017-02-01 | Napatech A/S | An apparatus and a method for determining a point in time |
EP3015971B1 (en) | 2014-10-28 | 2019-07-31 | Napatech A/S | A system and a method of deriving information |
US9577820B2 (en) * | 2015-02-03 | 2017-02-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Elastic gear first-in-first-out buffer with frequency monitor |
US10775836B2 (en) * | 2015-06-16 | 2020-09-15 | Synopsys, Inc. | Method for cycle accurate data transfer in a skewed synchronous clock domain |
US10168731B2 (en) | 2016-07-13 | 2019-01-01 | Advanced Micro Devices, Inc. | Managing frequency changes of clock signals across different clock domains |
JP6734536B2 (ja) * | 2016-07-29 | 2020-08-05 | 富士通株式会社 | 情報処理装置及びメモリコントローラ |
US10877509B2 (en) | 2016-12-12 | 2020-12-29 | Intel Corporation | Communicating signals between divided and undivided clock domains |
US20190050020A1 (en) * | 2017-08-10 | 2019-02-14 | Qualcomm Incorporated | Clock Signal Staggering with Clock Frequency Adjustment |
US10241938B1 (en) * | 2017-12-20 | 2019-03-26 | Sandisk Technologies Llc | Output data path for non-volatile memory |
JP6734962B1 (ja) * | 2019-04-17 | 2020-08-05 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置 |
US10990120B2 (en) * | 2019-06-26 | 2021-04-27 | Advanced Micro Devices, Inc. | Low latency FIFO with auto sync |
US20210223815A1 (en) * | 2020-09-21 | 2021-07-22 | Intel Corporation | First-In First-Out Buffer with Lookahead Performance Booster |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105607A1 (en) * | 2001-08-17 | 2003-06-05 | Jones Michael F. | Circuit testing with ring-connected test instrument modules |
US20030123588A1 (en) * | 2002-01-02 | 2003-07-03 | Rupal Parikh | Synchronizing data or signal transfer across clocked logic domains |
TWI221976B (en) * | 2000-12-15 | 2004-10-11 | Intel Corp | Method, apparatus and system for synchronizing data for a test access port |
TW201007425A (en) * | 2008-07-25 | 2010-02-16 | Advantest Corp | Clock conversion circuit and test device using the same |
TW201015090A (en) * | 2008-09-17 | 2010-04-16 | Advantest Corp | Test device and synchronization method between domains |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5113522A (en) * | 1989-05-17 | 1992-05-12 | International Business Machines Corporation | Data processing system with system resource management for itself and for an associated alien processor |
SG47976A1 (en) * | 1994-05-10 | 1998-04-17 | Intel Corp | Method and apparatus for providing synchronous data transmission between digital devices operating at frequencies having a p/q integer ratio relationship |
US5781765A (en) * | 1995-11-03 | 1998-07-14 | Motorola, Inc. | System for data synchronization between two devices using four time domains |
US6226698B1 (en) * | 1997-11-10 | 2001-05-01 | Sun Microsystems, Inc. | Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO |
US6055285A (en) * | 1997-11-17 | 2000-04-25 | Qlogic Corporation | Synchronization circuit for transferring pointer between two asynchronous circuits |
JP3707960B2 (ja) * | 1999-07-23 | 2005-10-19 | 富士通株式会社 | 半導体装置 |
ATE376211T1 (de) * | 2000-02-09 | 2007-11-15 | Texas Instruments Inc | Gerät zur signalsynchronisierung zwischen zwei taktbereichen |
US6738917B2 (en) * | 2001-01-03 | 2004-05-18 | Alliance Semiconductor Corporation | Low latency synchronization of asynchronous data |
US6963991B2 (en) * | 2002-05-31 | 2005-11-08 | Intel Corporation | Synchronizing and aligning differing clock domains |
US7310396B1 (en) * | 2003-03-28 | 2007-12-18 | Xilinx, Inc. | Asynchronous FIFO buffer for synchronizing data transfers between clock domains |
US7194650B2 (en) * | 2003-05-09 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | System and method for synchronizing multiple synchronizer controllers |
US7623482B2 (en) * | 2003-05-10 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | System and method for effectuating the transfer of data blocks including a header block across a clock boundary |
US7134035B2 (en) * | 2003-05-30 | 2006-11-07 | Sun Mircosystems, Inc. | Method for generating a synchronization signal based on the clock ratio between two clock domains for data transfer between the domains |
TWI245178B (en) * | 2004-01-16 | 2005-12-11 | Realtek Semiconductor Corp | Clock generation method and apparatus |
US7290159B2 (en) * | 2004-05-25 | 2007-10-30 | International Business Machines Corporation | Fixed latency data computation and chip crossing circuits and methods for synchronous input to output protocol translator supporting multiple reference oscillator frequencies |
US7436917B2 (en) * | 2004-07-29 | 2008-10-14 | Hewlett-Packard Development Company, L.P. | Controller for clock synchronizer |
JP4417807B2 (ja) * | 2004-08-25 | 2010-02-17 | 株式会社東芝 | エラスティックバッファ |
US7116601B2 (en) * | 2004-12-28 | 2006-10-03 | Via Technologies, Inc. | Pseudo-synchronization of the transportation of data across asynchronous clock domains |
US20080234848A1 (en) * | 2007-03-23 | 2008-09-25 | Kaczynski Brian J | Frequency-tracked synthesizer employing selective harmonic amplification |
US7984351B2 (en) * | 2008-04-10 | 2011-07-19 | Advanced Micro Devices, Inc. | Data transfer device and method thereof |
US8301932B2 (en) * | 2009-11-16 | 2012-10-30 | Arm Limited | Synchronising between clock domains |
-
2011
- 2011-12-28 WO PCT/US2011/067612 patent/WO2013100976A1/en active Application Filing
- 2011-12-28 US US13/991,602 patent/US10025343B2/en not_active Expired - Fee Related
-
2012
- 2012-12-20 TW TW101148753A patent/TWI506397B/zh active
-
2018
- 2018-07-16 US US16/036,419 patent/US10599178B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI221976B (en) * | 2000-12-15 | 2004-10-11 | Intel Corp | Method, apparatus and system for synchronizing data for a test access port |
US20030105607A1 (en) * | 2001-08-17 | 2003-06-05 | Jones Michael F. | Circuit testing with ring-connected test instrument modules |
US20030123588A1 (en) * | 2002-01-02 | 2003-07-03 | Rupal Parikh | Synchronizing data or signal transfer across clocked logic domains |
TW201007425A (en) * | 2008-07-25 | 2010-02-16 | Advantest Corp | Clock conversion circuit and test device using the same |
TW201015090A (en) * | 2008-09-17 | 2010-04-16 | Advantest Corp | Test device and synchronization method between domains |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229010A (zh) * | 2016-03-25 | 2017-10-03 | 精工爱普生株式会社 | 电路、检测装置、振荡器、电子设备、移动体及检测方法 |
CN107229010B (zh) * | 2016-03-25 | 2021-08-27 | 精工爱普生株式会社 | 电路、检测装置、振荡器、电子设备、移动体及检测方法 |
Also Published As
Publication number | Publication date |
---|---|
US10025343B2 (en) | 2018-07-17 |
US20190056761A1 (en) | 2019-02-21 |
US10599178B2 (en) | 2020-03-24 |
US20130254583A1 (en) | 2013-09-26 |
WO2013100976A1 (en) | 2013-07-04 |
TW201346487A (zh) | 2013-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI506397B (zh) | 非同步時鐘領域之間的資料傳送 | |
US11281562B2 (en) | Method and system for cache agent trace and capture | |
US7484192B2 (en) | Method for modeling metastability decay through latches in an integrated circuit model | |
US11226922B2 (en) | System, apparatus and method for controlling duty cycle of a clock signal for a multi-drop interconnect | |
EP3105761A1 (en) | Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays | |
JP6655028B2 (ja) | 高位合成におけるシステムアーキテクチャの抽出 | |
US8751853B2 (en) | Quad-data rate controller and implementing method thereof | |
US20180150379A1 (en) | Method and system of verifying software | |
WO2011109971A1 (zh) | 微控制器在线调试电路及方法、微控制器 | |
JP2011039781A (ja) | 協調シミュレーション装置及びシミュレーション方法 | |
US8397189B2 (en) | Model checking in state transition machine verification | |
US11301414B1 (en) | Systems and methods for communicating with clients with non-deterministic response delay over a communication interface | |
Huemer et al. | Timing domain crossing using Muller pipelines | |
US11106846B1 (en) | Systems and methods for emulation data array compaction | |
JP6318976B2 (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
US8756543B2 (en) | Verifying data intensive state transition machines related application | |
US11144687B1 (en) | Method and system providing visualization of sub-circuit iterations based on handshake signals | |
US11048843B1 (en) | Dynamic netlist modification of compacted data arrays in an emulation system | |
JP2014106591A (ja) | 消費電力見積り装置および消費電力見積り方法 | |
US10742216B1 (en) | Clock domain crossing for an interface between logic circuits | |
JP2006227668A (ja) | メモリモデルとプログラムと論理回路検証方法 | |
JP5392862B2 (ja) | ソフトウェアシミュレーション装置、及びシミュレーション方法 | |
CN117331884A (zh) | 一种基于硬件封装的系统芯片设计控制方法及装置 | |
JP2007241836A (ja) | マルチサイクルパス検証方法 | |
Greskamp et al. | Designing Hardware that Supports Cycle-Accurate Deterministic Replay |