專利名稱:用pci高速標(biāo)記字段傳遞信息的制作方法
用PCI高速標(biāo)記字段傳遞信息發(fā)明領(lǐng)域 本發(fā)明涉及計(jì)算領(lǐng)域。更具體而言,本發(fā)明涉及PCI高速(PCI Express)總線通
背景技術(shù):
PCI高速總線設(shè)備典型地實(shí)現(xiàn)多個(gè)功能。這些功能通常彼此獨(dú)立地操作。即使在 單功能設(shè)備中,也可存在共用一個(gè)PCI高速功能的諸多后端實(shí)體。當(dāng)對PCI高速系統(tǒng)進(jìn)行 故障檢測時(shí),經(jīng)常很難或者不可能將PCI存儲器寫分組向后關(guān)聯(lián)到發(fā)出寫入請求的功能或 者后端實(shí)體。這是因?yàn)樵摲纸M中僅有的識別信息為目標(biāo)地址。因此,除非存儲器寫分組的 目標(biāo)地址對于始發(fā)功能或者后端實(shí)體是唯一的,否則沒有用于發(fā)現(xiàn)發(fā)送實(shí)體的已知解決方 案。因此需要至少部分克服諸如那些上述限制的系統(tǒng)。
發(fā)明內(nèi)容
上述和其他需求通過一種用于確定針對由PCI高速總線設(shè)備的后端實(shí)體發(fā)出的 PCI高速總線命令何時(shí)發(fā)送完所有數(shù)據(jù)的方法來滿足,該方法包括設(shè)置PCI高速總線分組 的PCI高速總線分組首部標(biāo)記字段,以指示首創(chuàng)PCI高速總線命令的后端實(shí)體以及該P(yáng)CI 高速總線分組是否為該P(yáng)CI高速總線命令的最后一個(gè)分組,然后檢驗(yàn)該P(yáng)CI高速總線分組 的PCI高速總線分組首部標(biāo)記字段以確定該P(yáng)CI高速總線分組是否為該P(yáng)CI高速總線命令 的最后一個(gè)分組。以此方式,檢驗(yàn)首部標(biāo)記字段的設(shè)備可確定哪個(gè)后端設(shè)備已首創(chuàng)該分組,以及該 分組是否包括該命令的最后一部分,除此之外在PCI高速總線分組中不使用該設(shè)備。在各個(gè)實(shí)施例中,后端實(shí)體設(shè)置PCI高速總線分組首部標(biāo)記字段。在一些實(shí)施例 中,PCI高速總線核或者總線分析器中的至少一個(gè)檢驗(yàn)PCI高速總線分組首部標(biāo)記字段。附圖簡述通過參考結(jié)合附圖一起考慮時(shí)的具體描述,本發(fā)明的進(jìn)一步優(yōu)勢變得顯而易見, 這些附圖沒有按照比例繪制以更清楚地示出細(xì)節(jié),其中貫穿若干視圖用類似附圖標(biāo)記指示 類似元件,且其中
圖1為PCI高速存儲器寫分組的格式的現(xiàn)有技術(shù)描繪。圖2為根據(jù)本發(fā)明一實(shí)施例的PCI高速設(shè)備的框圖。具體描述現(xiàn)在參考圖1,描繪了 PCI高速存儲器寫請求分組的格式的現(xiàn)有技術(shù)表示。PCI高 速基本規(guī)范修改版 2. 0 (PCI Express Base Specification Revision 2. 0)規(guī)定存儲器寫 請求分組的8位標(biāo)記字段未定義且可包括任意值。PCI高速設(shè)備通常將此字段置零。本發(fā) 明的各個(gè)實(shí)施例利用該未定義標(biāo)記字段來傳遞有用信息?,F(xiàn)在參考圖2,描繪了具有多個(gè)后端實(shí)體12的典型的PCI高速設(shè)備10。后端實(shí)體12通過仲裁器14向PCI高速核16發(fā)送命令。各個(gè)后端實(shí)體12可向PCI高速核16發(fā)出 多個(gè)命令。后端實(shí)體12各自指定命令標(biāo)記、命令類型、命令長度、命令地址、以及后端識別。 該命令長度可比最大PCI高速有效載荷大小或者讀請求大小大得多。在這種情況下,PCI高 速核16將命令分解成多個(gè)PCI高速請求分組。如圖1所描繪地,命令標(biāo)記與PCI高速分組首部中的標(biāo)記字段不相關(guān)。當(dāng)PCI高 速核16完成命令時(shí),其通過將命令標(biāo)記(圖2中標(biāo)示為完成標(biāo)記(Compltn Tag))和完成 標(biāo)志(圖2中標(biāo)示為完成(Completion))返回至首創(chuàng)該命令的后端實(shí)體12來指示該事實(shí)。本發(fā)明的各個(gè)實(shí)施例取決于由固件控制的寄存器允許將存儲器寫分組的PCI高 速分組首部標(biāo)記字段設(shè)置成以下三個(gè)給定值的任一個(gè){命令的最后一個(gè)分組,后端ID},{命令標(biāo)記(CmdTag)},以及{命令的最后一個(gè)分組,命令標(biāo)記(CmdTag)的3個(gè)最低有效位,后端ID0位)}對于確定針對由后端實(shí)體12所發(fā)出的命令何時(shí)發(fā)送完所有數(shù)據(jù)而言,命令的最 后一個(gè)分組的指示非常有用。本發(fā)明諸實(shí)施例的應(yīng)用使得將PCI高速存儲器寫分組向后關(guān)聯(lián)到后端實(shí)體12和 由后端實(shí)體12所發(fā)出的IO命令變得可行。這對實(shí)時(shí)系統(tǒng)的故障檢測或者對模擬環(huán)境中的 記分(scoreboarding)非常有用。記分是在測試中從設(shè)備中的一個(gè)位置移動到另一個(gè)位置 的數(shù)據(jù)的自動檢驗(yàn)。模擬環(huán)境記分大大簡化,從而提供用于簡單地通過檢查分組的首部中所指定的標(biāo) 記,確定所接收的PCI高速存儲器寫分組的后端實(shí)體12或者命令標(biāo)記的手段。在實(shí)時(shí)系統(tǒng)中,用總線分析器可容易地捕捉給定分組的PCI高速存儲器寫入分組 標(biāo)記字段。使用本文中描述的本發(fā)明的各個(gè)實(shí)施例,該標(biāo)記可向后關(guān)聯(lián)到發(fā)出設(shè)備中的命 令或者事件,從而允許以簡單直接的方式對可能的問題進(jìn)行故障檢測。存在后端實(shí)體12用 于生成命令標(biāo)記的若干種方法。一種方法是將標(biāo)記映射到后端功能。舉例而言,如果后端 實(shí)體12具有三個(gè)DMA引擎,則其可將標(biāo)記0、1、2分配給那些DMA引擎。DMA引擎1發(fā)出命 令,該命令的標(biāo)記就為1。另一種用于生成命令標(biāo)記的方法為通過使用計(jì)數(shù)器。所發(fā)出的第 一標(biāo)記為0,然后為1,依此類推。一旦該計(jì)數(shù)值超過后端實(shí)體可發(fā)出的同步命令的最大數(shù) 目,計(jì)數(shù)器翻轉(zhuǎn)(返回到0)。其他用于生成命令標(biāo)記的方法也是可行的。在一個(gè)實(shí)施例中,在生成標(biāo)記時(shí)后端實(shí)體12彼此不協(xié)調(diào)。但是,每個(gè)后端實(shí)體12 具有唯一的ID。因此,后端ID和命令標(biāo)記的組合是唯一的。在實(shí)時(shí)系統(tǒng)中,總線分析器可監(jiān)測PCI高速(PCIe)總線。使用PCIe總線分析器, 可觀察PCIe總線上的分組的所有細(xì)節(jié)。因此,如本文中所描述的本發(fā)明諸實(shí)施例在實(shí)時(shí)系 統(tǒng)中非常有用。目前,用PCIe存儲器寫命令發(fā)出的標(biāo)記都置零。沒有辦法分辨哪個(gè)后端實(shí) 體12實(shí)際上首創(chuàng)了該寫入命令。在具有多個(gè)后端實(shí)體12的設(shè)備中(一些設(shè)備具有16個(gè) 或者更多個(gè)這種實(shí)體12),知道哪個(gè)實(shí)體12首創(chuàng)與其他信息一起包含在分組中的命令是足 以對設(shè)備10中的一些問題進(jìn)行故障檢測的信息。考慮設(shè)備10的示例具有16個(gè)后端實(shí)體12,其中每個(gè)實(shí)體12具有足夠的資源來發(fā) 出多達(dá)8個(gè)同步未解決的命令。其然后可以將后端ID、命令標(biāo)記、以及命令的最后一個(gè)分組 的指示串聯(lián)來形成與各個(gè)存儲器寫分組一起發(fā)送的首部標(biāo)記??紤]何時(shí)后端ID 2發(fā)出具有命令標(biāo)記5的存儲器寫命令,后端ID 4發(fā)出具有命令標(biāo)記7的存儲器寫命令,且每個(gè)命 令需要發(fā)送4個(gè)PCIe分組。在使用PCIe總線分析器的情況下,通過查看分組中所發(fā)出的 標(biāo)記可跟蹤PCIe總線上的活動。舉例而言,可看到標(biāo)記的以下序列0,2,5(非最后一個(gè)分組,后端ID 2,命令標(biāo)記5)0,4,7(非最后一個(gè)分組,后端ID 4,命令標(biāo)記7)0,4,7(非最后一個(gè)分組,后端ID 4,命令標(biāo)記7)0,2,5(非最后一個(gè)分組,后端ID 2,命令標(biāo)記5)0,2,5(非最后一個(gè)分組,后端ID 2,命令標(biāo)記5)1,2,5 (最后一個(gè)分組,后端ID 2,命令標(biāo)記5)0,4,7(非最后一個(gè)分組,后端ID 4,命令標(biāo)記7)1,4,7 (最后一個(gè)分組,后端ID 4,命令標(biāo)記7)本發(fā)明一非測試環(huán)境實(shí)施例也是可能的,其中在總線兩端處的設(shè)備都理解所發(fā)出 的PCIe標(biāo)記攜帶信息。在多數(shù)設(shè)備中,所接收的存儲器寫分組的PCIe標(biāo)記被忽略并被丟 棄。但是,被設(shè)計(jì)成期待經(jīng)編碼標(biāo)記的設(shè)備將能夠從本實(shí)施例中獲益。在實(shí)時(shí)PCI高速系 統(tǒng)中,沒有已知替代方案將在PCI高速總線的一端處所接收的存儲器寫分組向后關(guān)聯(lián)到使 分組在PCI高速總線的另一端處發(fā)出的后端實(shí)體12。對本發(fā)明的優(yōu)選實(shí)施例的在前描述是出于說明和描述的目的而呈現(xiàn)的。它不旨在 窮盡或者將本發(fā)明限制在所公開的準(zhǔn)確的形式。根據(jù)上述教示,顯而易見的修改方案或變 體也是可行的。選擇和描述實(shí)施例是為了提供本發(fā)明的原理和其實(shí)際應(yīng)用的最佳說明,并 由此使本領(lǐng)域普通技術(shù)人員在各個(gè)實(shí)施例中利用本發(fā)明,并且構(gòu)想了適于特定用途的各種 修改。當(dāng)根據(jù)公平地、合法地并且公正地適用廣度來解釋所附權(quán)利要求時(shí),所有這樣的修改 和變體都在如所附權(quán)利要求書所確定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種用于確定針對由PCI高速總線設(shè)備的后端實(shí)體發(fā)出的給定PCI高速總線命令何 時(shí)發(fā)送完所有數(shù)據(jù)的方法,所述方法包括以下步驟設(shè)置PCI高速總線分組的PCI高速總線分組首部標(biāo)記字段以指示首創(chuàng)所述PCI高速總 線命令的后端實(shí)體,并指示所述PCI高速總線分組是否為所述PCI高速總線命令的最后一 個(gè)分組,以及檢驗(yàn)所述PCI高速總線分組的PCI高速總線分組首部標(biāo)記字段以確定所述PCI高速總 線分組是否為所述PCI高速總線命令的最后個(gè)一分組。
2.如權(quán)利要求1所述的方法,其特征在于,所述后端實(shí)體設(shè)置PCI高速總線分組首部標(biāo)記字段。
3.如權(quán)利要求1所述的方法,其特征在于,PCI高速總線核檢驗(yàn)所述PCI高速總線分組 首部標(biāo)記字段。
4.如權(quán)利要求1所述的方法,其特征在于,總線分析器檢驗(yàn)所述PCI高速總線分組首部 標(biāo)記字段。
5.一種用于確定針對由PCI高速總線設(shè)備的后端實(shí)體發(fā)出的PCI高速總線命令何時(shí)發(fā) 送完所有數(shù)據(jù)的方法,所述方法包括以下步驟設(shè)置PCI高速總線分組的PCI高速總線分組首部標(biāo)記字段以指示所述PCI高速總線分 組是否為所述PCI高速總線命令的最后個(gè)一分組,以及檢驗(yàn)所述PCI高速總線分組的PCI高速總線分組首部標(biāo)記字段以確定所述PCI高速總 線分組是否為所述PCI高速總線命令的最后一個(gè)分組。
6.如權(quán)利要求5所述的方法,其特征在于,發(fā)送所述PCI高速總線分組的所述后端實(shí)體 設(shè)置所述PCI高速總線分組首部標(biāo)記字段。
7.如權(quán)利要求5所述的方法,其特征在于,所述PCI高速總線分組首部標(biāo)記字段也設(shè)置 成指示發(fā)送所述PCI高速總線命令的所述后端實(shí)體。
8.如權(quán)利要求5所述的方法,其特征在于,PCI高速總線核檢驗(yàn)所述PCI高速總線分組 首部標(biāo)記字段。
9.如權(quán)利要求5所述的方法,其特征在于,總線分析器檢驗(yàn)所述PCI高速總線分組首部 標(biāo)記字段。
10.如權(quán)利要求5所述的方法,其特征在于,所述PCI高速總線命令為存儲器寫命令,且 所述PCI高速總線分組為PCI高速總線存儲器寫分組。
11.一種用于確定PCI高速總線設(shè)備的哪個(gè)后端實(shí)體首創(chuàng)PCI高速總線命令的方法,所 述方法包括以下步驟設(shè)置PCI高速總線分組的PCI高速總線分組首部標(biāo)記字段以指示首創(chuàng)所述PCI高速總 線命令的所述后端實(shí)體,以及檢驗(yàn)所述PCI高速總線分組的所述PCI高速總線分組首部標(biāo)記字段以確定哪個(gè)后端實(shí) 體首創(chuàng)所述PCI高速總線命令。
12.如權(quán)利要求11所述的方法,其特征在于,所述后端實(shí)體設(shè)置所述PCI高速總線分組 首部標(biāo)記字段。
13.如權(quán)利要求11所述的方法,其特征在于,PCI高速總線核檢驗(yàn)所述PCI高速總線分 組首部標(biāo)記字段。
14.如權(quán)利要求11所述的方法,其特征在于,總線分析器檢驗(yàn)所述PCI高速總線分組首 部標(biāo)記字段。
15.如權(quán)利要求11所述的方法,其特征在于,還包括設(shè)置所述PCI高速總線分組首部標(biāo) 記字段以指示所述PCI高速總線分組是否為所述PCI高速總線命令的最后一個(gè)分組。
全文摘要
本發(fā)明涉及計(jì)算領(lǐng)域。更具體而言,本發(fā)明涉及PCI高速總線通信。
文檔編號G06F13/36GK102057362SQ200980122403
公開日2011年5月11日 申請日期2009年1月7日 優(yōu)先權(quán)日2008年7月11日
發(fā)明者E·薩吉 申請人:Lsi股份有限公司