国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于避免死鎖的方法和電路與流程

      文檔序號(hào):11450386閱讀:610來(lái)源:國(guó)知局
      用于避免死鎖的方法和電路與流程

      本公開(kāi)總體涉及集成電路(ic),更具體地,涉及數(shù)據(jù)通信。



      背景技術(shù):

      可編程集成電路(ic)是可以被編程來(lái)執(zhí)行特定邏輯功能的器件。一種類(lèi)型的可編程ic-現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)-通常包括可編程片的陣列。每個(gè)可編程片可以包括可編程互連和可編程邏輯??删幊袒ミB通常包括通過(guò)可編程互連點(diǎn)(pip)被互相連接的大量的、各種長(zhǎng)度的互連線(xiàn)??删幊踢壿嬐ㄟ^(guò)使用可包括例如函數(shù)生成器、寄存器、算術(shù)邏輯等等的可編程元件而實(shí)施用戶(hù)設(shè)計(jì)的邏輯。可編程互連和可編程邏輯通常通過(guò)將配置數(shù)據(jù)流加載到內(nèi)部配置存儲(chǔ)器單元而被編程,這些內(nèi)部配置存儲(chǔ)器單元定義了如何配置可編程元件。配置數(shù)據(jù)可以由外部設(shè)備從存儲(chǔ)器(例如,從外部prom)讀出或被寫(xiě)入到fpga。各個(gè)存儲(chǔ)器單元的集合狀態(tài)然后確定了fpga的功能。

      某些可編程ic包括能夠執(zhí)行程序代碼的嵌入式處理器。處理器被制作成包括可編程邏輯電路和可編程互連電路(也可被合稱(chēng)為ic的“可編程電路”)的相同的裸片的一部分。應(yīng)當(dāng)看到,在處理器內(nèi)執(zhí)行程序代碼是與“編程”或“配置”在ic上可提供的可編程電路可區(qū)分的。編程或配置ic的可編程電路的動(dòng)作導(dǎo)致在可編程電路內(nèi)實(shí)施由配置數(shù)據(jù)指定的不同的物理電路。

      具有嵌入式處理器系統(tǒng)的可編程ic常常包括操作存儲(chǔ)器、軟件指令存儲(chǔ)器、輸入/輸出和計(jì)算機(jī)系統(tǒng)的其它部件,它們有時(shí)被稱(chēng)為片上系統(tǒng)(soc)解決方案。設(shè)計(jì)師可以在可編程邏輯中實(shí)施復(fù)雜的功能,提高效率和吞吐量。這種架構(gòu)組合提供了串行和并行處理、靈活性和可縮放性等各種優(yōu)點(diǎn),由此使得能夠進(jìn)行最佳化的系統(tǒng)分割-特別是在智能視頻、數(shù)字通信、機(jī)器系統(tǒng)和醫(yī)療器械領(lǐng)域。

      鑒于有各種選擇可供設(shè)計(jì)師使用,一件設(shè)計(jì)可包括在軟件與一個(gè)或多個(gè)集成電路的可編程邏輯之間劃分的幾個(gè)部分。然而,實(shí)施用于不同部分之間通信的適當(dāng)?shù)陌才畔蛟O(shè)計(jì)師提出了挑戰(zhàn)。數(shù)據(jù)總線(xiàn)結(jié)構(gòu)提供了在系統(tǒng)的各個(gè)部分之間以及與外部設(shè)備通信數(shù)據(jù)的方便的方法。

      數(shù)據(jù)總線(xiàn)可以通過(guò)許多不同的數(shù)據(jù)總線(xiàn)協(xié)議(諸如外圍設(shè)備互連(pci)、pciexpress(pcie)、高級(jí)微控制器總線(xiàn)結(jié)構(gòu)(amba)等等)來(lái)實(shí)現(xiàn),設(shè)計(jì)師實(shí)施接口電路,以用與所選擇的數(shù)據(jù)總線(xiàn)協(xié)議兼容的方式傳送去往和來(lái)自數(shù)據(jù)總線(xiàn)的數(shù)據(jù)。



      技術(shù)實(shí)現(xiàn)要素:

      公開(kāi)了一種系統(tǒng),包括第一通信電路,所述第一通信電路使用第一通信協(xié)議通過(guò)第一數(shù)據(jù)端口傳送數(shù)據(jù)。系統(tǒng)還包括第二通信電路,所述第二通信電路使用第二通信協(xié)議通過(guò)第二數(shù)據(jù)端口傳送數(shù)據(jù)。第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求。橋接(bridge)電路被配置成在第一通信電路的第一數(shù)據(jù)端口與第二通信電路的第二數(shù)據(jù)端口之間傳送數(shù)據(jù)。橋接電路被配置成經(jīng)由緩沖電路將非報(bào)告的寫(xiě)入(non-postedwrite)傳送到第二通信電路,以及經(jīng)由旁路緩沖電路的通信路徑將報(bào)告的寫(xiě)入(postedwrite)傳送到第二通信電路。

      還公開(kāi)了用于數(shù)據(jù)通信的方法。使用第一通信電路,使用第一通信協(xié)議通過(guò)第一數(shù)據(jù)總線(xiàn)傳送數(shù)據(jù)。使用第二通信電路,使用第二通信協(xié)議通過(guò)第二數(shù)據(jù)總線(xiàn)傳送數(shù)據(jù),所述第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求。非報(bào)告的寫(xiě)入經(jīng)由緩沖電路從第一通信電路傳送到第二通信電路。報(bào)告的寫(xiě)經(jīng)由旁路緩沖電路的通信路徑從第一通信電路被傳送到第二通信電路。

      公開(kāi)了另一個(gè)系統(tǒng),包括第一通信電路,所述第一通信系統(tǒng)使用第一通信協(xié)議通過(guò)第一數(shù)據(jù)端口傳送數(shù)據(jù)。所述系統(tǒng)還包括第二通信電路,所述第二通信電路使用第二通信協(xié)議通過(guò)第二數(shù)據(jù)端口傳送數(shù)據(jù),所述第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求。系統(tǒng)還包括橋接電路。橋接電路具有包括緩沖電路的、在第一與第二數(shù)據(jù)端口之間的第一通信路徑。橋接電路還具有旁路緩沖電路的、在第一與第二數(shù)據(jù)端口之間的第二通信路徑。橋接電路包括輸入電路,其被配置成確定從第一通信電路接收的寫(xiě)入作業(yè)是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入。響應(yīng)于確定所述寫(xiě)入作業(yè)是非報(bào)告的寫(xiě)入,輸入電路經(jīng)由第一通信路徑將非報(bào)告的寫(xiě)入提供給第二通信電路。響應(yīng)于確定所述寫(xiě)作業(yè)是報(bào)告的寫(xiě)入,輸入電路經(jīng)由第二通信路徑將報(bào)告的寫(xiě)入提供給第二通信電路。

      通過(guò)考慮下面的具體實(shí)施方式和附圖,將了解本發(fā)明的其它特性。

      附圖說(shuō)明

      通過(guò)閱讀以下的具體實(shí)施方式和參考附圖,將更明白所公開(kāi)的方法和電路的各種方面和特性,附圖中:

      圖1示出了與一個(gè)或多個(gè)實(shí)施例一致的、具有通信橋接電路的系統(tǒng);

      圖2示出了與一個(gè)或多個(gè)實(shí)施例一致的、用于運(yùn)行第一和第二通信電路與通信橋接電路的過(guò)程;

      圖3示出了與一個(gè)或多個(gè)實(shí)施方案一致的axi-pcie橋接電路;以及

      圖4示出了可以配置為與一個(gè)或多個(gè)實(shí)施方案一致的可編程ic。

      具體實(shí)施方式

      可編程ic可包括分別使用不同的通信協(xié)議傳送數(shù)據(jù)的電路。例如,可編程ic可以使用axi通信協(xié)議在第一總線(xiàn)上在系統(tǒng)的不同部分之間傳送數(shù)據(jù),以及使用pcie通信協(xié)議而與被連接到系統(tǒng)的i/o端口的外部設(shè)備通信。當(dāng)在使用不同的通信協(xié)議的電路之間通信數(shù)據(jù)時(shí),接口電路可被用來(lái)在由每個(gè)協(xié)議所使用的數(shù)據(jù)格式之間轉(zhuǎn)換數(shù)據(jù)。

      然而,由于不同的通信協(xié)議利用的排序規(guī)則,可能會(huì)發(fā)生死鎖情形,在這種情形下,在通信電路可以繼續(xù)處理之前每個(gè)通信電路需要來(lái)自其它通信電路的數(shù)據(jù)。例如,當(dāng)從axi設(shè)備到pcie設(shè)備的數(shù)據(jù)信道變?yōu)楸环菆?bào)告的寫(xiě)入阻塞時(shí),可能發(fā)生死鎖。非報(bào)告的寫(xiě)入需要在發(fā)送設(shè)備可以繼續(xù)進(jìn)行下一個(gè)數(shù)據(jù)作業(yè)之前,接收設(shè)備用確認(rèn)來(lái)應(yīng)答,以表示作業(yè)的成功或失敗。非報(bào)告的寫(xiě)入可包括,例如,i/o寫(xiě)入和/或配置寫(xiě)入。相反,報(bào)告的寫(xiě)入是在進(jìn)行其它作業(yè)之前不需要確認(rèn)的寫(xiě)入作業(yè)。報(bào)告的寫(xiě)入可包括,例如,存儲(chǔ)器寫(xiě)入和/或數(shù)據(jù)消息。為了便于參考,報(bào)告的和非報(bào)告的讀和寫(xiě)總的被稱(chēng)為數(shù)據(jù)作業(yè)(transaction)。

      通過(guò)將來(lái)自axi設(shè)備的所有的下游數(shù)據(jù)作業(yè)緩沖到緩沖電路直至下游pcie設(shè)備準(zhǔn)備好處理附加的數(shù)據(jù)作業(yè)為止,某些方法可以防止在axi設(shè)備與pcie設(shè)備之間的死鎖。通過(guò)緩沖數(shù)據(jù)作業(yè),排序規(guī)則可被保留,而同時(shí)允許axi設(shè)備可以繼續(xù)發(fā)布新的數(shù)據(jù)作業(yè)。更具體地,axi設(shè)備可以發(fā)布數(shù)據(jù)作業(yè),這些數(shù)據(jù)作業(yè)是為了完成任何可能阻塞來(lái)自pcie設(shè)備的上游確認(rèn)的待決上游數(shù)據(jù)作業(yè)所必需的。然而,可被緩沖的下游作業(yè)的數(shù)目受到在橋接電路中可提供的緩存器限制。而且,取決于應(yīng)用,大量的下游讀/寫(xiě)作業(yè)可以被接受,同時(shí)等待非報(bào)告的寫(xiě)入完成。

      公開(kāi)了一種包括用于在使用第一通信協(xié)議(例如,axi)傳送數(shù)據(jù)的第一設(shè)備與使用第二通信協(xié)議(例如,pcie)傳送數(shù)據(jù)的第二設(shè)備之間傳送數(shù)據(jù)的防死鎖的橋接電路的系統(tǒng)。橋接電路被配置成使用第一通信協(xié)議與第一通信電路傳送數(shù)據(jù),和使用第二通信協(xié)議與第二通信電路傳送數(shù)據(jù)。這些通信協(xié)議中的至少一個(gè)通信協(xié)議被配置成以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求。橋接被配置成通過(guò)經(jīng)由緩沖器將下游非報(bào)告的寫(xiě)入傳送到第二設(shè)備而防止死鎖。其它下游讀取/寫(xiě)入請(qǐng)求被從第一設(shè)備傳送到第二設(shè)備,而不用緩沖。在這個(gè)方法中,與緩沖所有下游數(shù)據(jù)作業(yè)的方法相比,需要緩沖較少的數(shù)據(jù)作業(yè)。因此,緩沖器的尺寸可被減小——由此減少制造成本。

      所公開(kāi)的電路和方法可被使用于在使用各種通信協(xié)議的電路之間傳送數(shù)據(jù)。然而,為了便于說(shuō)明,示例和實(shí)施例主要參照在axi設(shè)備與pcie設(shè)備之間的數(shù)據(jù)通信進(jìn)行描述。

      現(xiàn)在參照附圖,圖1示出了按照一個(gè)或多個(gè)實(shí)施方案的、具有通信橋接電路120的系統(tǒng)。系統(tǒng)包括第一通信電路110,其被配置成使用第一通信協(xié)議(例如,axi)經(jīng)由第一數(shù)據(jù)端口112通信。系統(tǒng)還包括第二通信電路130,其被配置成使用第二通信協(xié)議(例如,pcie)經(jīng)由第二數(shù)據(jù)端口132通信,所述第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求。

      橋接電路120被配置成在第一通信電路的第一數(shù)據(jù)端口與第二通信電路的第二數(shù)據(jù)端口之間傳送數(shù)據(jù)。橋接電路120被配置成使用第一通信協(xié)議與第一通信電路110傳送數(shù)據(jù),以及使用第二通信協(xié)議與第二通信電路130傳送數(shù)據(jù)。

      圖2示出了根據(jù)一個(gè)或多個(gè)實(shí)施方案、用于運(yùn)行第一和第二通信電路與通信橋接電路的過(guò)程。為了便于說(shuō)明,圖1和圖2被一起討論。在塊210,數(shù)據(jù)由第一通信電路通過(guò)使用第一通信協(xié)議被傳送。在塊220,數(shù)據(jù)由第二通信電路被傳送。在塊210和220執(zhí)行的通信可以發(fā)送數(shù)據(jù)到各種電路或從各種電路接收數(shù)據(jù),所述的各種電路包括,例如,第一和第二通信電路110和130、處理電路140、存儲(chǔ)器160和/或外部電路。如果由第一和第二通信電路傳送的數(shù)據(jù)是用于在第一和第二通信電路之間的通信,則判決塊230將過(guò)程轉(zhuǎn)到塊240。否則,判決塊230把過(guò)程轉(zhuǎn)回塊210。

      在塊240,通過(guò)使用橋接電路120在第一和第二通信電路之間傳送數(shù)據(jù)。通過(guò)在由兩個(gè)通信協(xié)議使用的對(duì)應(yīng)數(shù)據(jù)格式之間轉(zhuǎn)換數(shù)據(jù)消息/數(shù)據(jù)包,橋接電路120可以傳送數(shù)據(jù)。橋接電路120根據(jù)寫(xiě)入作業(yè)是報(bào)告的寫(xiě)入作業(yè)還是非報(bào)告的寫(xiě)入作業(yè),將寫(xiě)入作業(yè)242從第一通信電路110以不同的方式傳送到第二通信電路130。對(duì)于非報(bào)告的寫(xiě)入作業(yè),判決塊244使得橋接電路120在塊246將來(lái)自第一通信電路110的非報(bào)告的寫(xiě)入作業(yè)經(jīng)由緩沖電路122傳送到第二通信電路130。對(duì)于報(bào)告的寫(xiě)入作業(yè),判決塊244使得橋接電路120在塊248通過(guò)使用旁路緩沖電路122的通信路徑將報(bào)告的寫(xiě)入傳送到第二通信電路130。如上所述,從第一通信電路110到第二通信電路130的非報(bào)告的寫(xiě)入的緩沖有助于防止第一和第二通信電路變?yōu)樗梨i。

      在各種應(yīng)用中,第一和第二通信電路可以執(zhí)行除了通信以外的功能,并且它們可以使用各種通信協(xié)議進(jìn)行通信。在一個(gè)可能的應(yīng)用中,第一通信電路110可以是高速緩存一致性互連,它被配置成保持在處理電路140的緩存150所存儲(chǔ)的數(shù)據(jù)與在存儲(chǔ)器160所存儲(chǔ)的數(shù)據(jù)之間的數(shù)據(jù)一致性。處理電路140、緩存150和存儲(chǔ)器160(用虛線(xiàn)顯示)在圖1示出,以便于示例性應(yīng)用的討論,而它們對(duì)于系統(tǒng)的某些其它實(shí)施例是不需要的。

      在示例性高速緩存一致性互連應(yīng)用中,第一通信電路可以響應(yīng)于在數(shù)據(jù)端口112接收讀取請(qǐng)求,讀出/偵聽(tīng)(snoop)、修改/寫(xiě)回緩存150和存儲(chǔ)器160中的數(shù)據(jù)值。例如,響應(yīng)于接收到指示由緩存150緩存的存儲(chǔ)器140的存儲(chǔ)器地址的讀取請(qǐng)求,第一通信電路110可以從緩存檢索(retrieve)對(duì)應(yīng)于存儲(chǔ)器地址的數(shù)據(jù)值。第一通信電路110可以使用axi一致性擴(kuò)展(ace)來(lái)與存儲(chǔ)器160和高速緩存150通信數(shù)據(jù)以及保持高速緩存一致性。

      在沒(méi)有由橋接電路120緩沖非報(bào)告的寫(xiě)入的情況下,在第一axi通信電路(例如,110)與第二pcie通信電路(例如,30)之間可能出現(xiàn)死鎖。以下的示例示出圖1所示的系統(tǒng)中死鎖是如何發(fā)生和被避免的:

      (1)存儲(chǔ)器160的存儲(chǔ)器地址(x)被緩存在緩存150中。

      (2)第二通信電路130執(zhí)行上游寫(xiě)入(a)到緩存的存儲(chǔ)器地址(x)。

      (3)處理電路140執(zhí)行下游非報(bào)告的寫(xiě)入(b)到第二通信電路130。這個(gè)非報(bào)告的寫(xiě)入(b)需要在第二通信電路130可以提供確認(rèn)以完成非報(bào)告的寫(xiě)(b)之前完成上游寫(xiě)入(a)。

      (4)第一通信電路的數(shù)據(jù)端口112變?yōu)楸蛔枞?例如,被由于非報(bào)告的寫(xiě)入(b)而不能被橋接120接受的待決下游讀/寫(xiě)入請(qǐng)求(d)阻塞)。

      (5)獨(dú)立于之前的步驟,緩存150可以觸發(fā)將緩存的地址(x)寫(xiě)回(e)到存儲(chǔ)器。

      (6)寫(xiě)回(e)被安排在非報(bào)告的寫(xiě)入(a)之后。

      (7)上游寫(xiě)入(a)使得第一通信電路110偵聽(tīng)(f)所緩存的地址(x)。

      在以上的情形中,地址(x)的偵聽(tīng)(f)將不被確認(rèn),直至地址(x)的以前的寫(xiě)回(e)完成。在非報(bào)告的寫(xiě)入(b)取得進(jìn)展之前,寫(xiě)回(e)將不會(huì)完成,所以讀取/寫(xiě)入請(qǐng)求(d)可被第一通信電路110發(fā)布。在上游寫(xiě)入(a)完成之前,非報(bào)告的寫(xiě)入(b)不會(huì)完成,而上游寫(xiě)入(a)正在偵聽(tīng)(f)上等待。由于這些作業(yè)中沒(méi)有一個(gè)取得進(jìn)展,因此通信電路處于死鎖。通過(guò)緩沖下游讀取/寫(xiě)入請(qǐng)求,橋接電路可以繼續(xù)接受新的讀取/寫(xiě)入作業(yè),而同時(shí)等待非報(bào)告的寫(xiě)入完成。因此,第一通信電路不被讀取/寫(xiě)入請(qǐng)求d阻塞,它可以執(zhí)行地址(x)的寫(xiě)回(e),并且執(zhí)行偵聽(tīng)(f)來(lái)完成上游寫(xiě)入a——由此打破死鎖。

      如以上所述,死鎖可以通過(guò)緩沖下游讀取/寫(xiě)入作業(yè)而得以避免。橋接電路120可以阻止死鎖,而不用緩沖所有的下游讀取/寫(xiě)入作業(yè)。在一個(gè)或多個(gè)實(shí)施例中,橋接電路120被配置成只將由第一通信電路130到第二通信電路170的非報(bào)告的寫(xiě)入緩沖到緩沖電路中(圖1中未示出)。非報(bào)告的寫(xiě)入可以被緩沖在例如先進(jìn)先出(fifo)緩沖器中。橋接電路120提供其它下游讀寫(xiě)作業(yè)到第二通信電路130而不進(jìn)行緩沖。與緩沖所有的下游數(shù)據(jù)作業(yè)相比較,這減少了需要被緩沖的數(shù)據(jù)作業(yè)的數(shù)目,并且允許緩沖器尺寸減小。在某些實(shí)施方例中,緩沖電路被配置成至少存儲(chǔ)最大數(shù)目的、在給定時(shí)間可能正在待決的非報(bào)告的寫(xiě)入。例如,如果橋接電路和第二通信電路被配置成在第一時(shí)間段內(nèi)完成非報(bào)告的寫(xiě)入,則緩沖電路可被配置成至少緩沖最大數(shù)目的、可以由第一通信電路在第一時(shí)間段內(nèi)發(fā)布的非報(bào)告的寫(xiě)入請(qǐng)求。由于非報(bào)告的寫(xiě)入的數(shù)目可能大大地低于報(bào)告的和非報(bào)告的寫(xiě)入的總數(shù)目,因此緩沖器尺寸可被做成小于緩沖在第一時(shí)間段內(nèi)可能發(fā)布的、最大數(shù)目的報(bào)告的和非報(bào)告的寫(xiě)入所需要的尺寸。

      橋接電路120可以使報(bào)告的寫(xiě)入優(yōu)先于被橋接電路緩沖的待決的、非報(bào)告的寫(xiě)入。這允許橋接電路保證報(bào)告的寫(xiě)入的進(jìn)展。此外,報(bào)告的寫(xiě)入可以利用其它空閑下游信道以提高吞吐量。

      應(yīng)當(dāng)看到,在各種應(yīng)用中,第一和第二通信電路110和130可能遇到其他死鎖情形,這些情形是由于下游信道被非報(bào)告的寫(xiě)入阻塞所引起的。由橋接電路120緩沖非報(bào)告的寫(xiě)入,同樣被用來(lái)避免在這樣的情形中出現(xiàn)死鎖。

      圖3示出了根據(jù)一個(gè)或多個(gè)實(shí)施方案的axi-pcie橋接電路。axi-pcie橋接電路310被配置成在axi通信電路(在圖3中未示出)和pcle接口340之間傳送數(shù)據(jù)。pcle接口340用根據(jù)pcle通信協(xié)議連接到它的pcie設(shè)備(未示出)創(chuàng)建數(shù)據(jù)作業(yè)350。pcie是包含作業(yè)層342、數(shù)據(jù)鏈路層344和物理層346的分層的協(xié)議。作業(yè)層342通過(guò)使用基于包的分離作業(yè)(帶有請(qǐng)求和應(yīng)答)而創(chuàng)建和保持基于包的作業(yè)。數(shù)據(jù)鏈路層344提供順序編號(hào)和循環(huán)冗余檢驗(yàn)(crc),以用于數(shù)據(jù)包的傳輸。物理層346通過(guò)使用許多數(shù)據(jù)通道發(fā)送和接收數(shù)據(jù),每個(gè)數(shù)據(jù)通道包括發(fā)送信號(hào)線(xiàn)對(duì)和接收信號(hào)線(xiàn)對(duì)。

      axi-pcie橋接電路310包括下游電路320,其用于將來(lái)自axi通信電路的下游數(shù)據(jù)302傳送到pcie接口340。非報(bào)告的寫(xiě)入由axi-pcie橋接電路310經(jīng)由先進(jìn)先出(fifo)緩沖器328傳送到pcie接口340。其它數(shù)據(jù)作業(yè)(報(bào)告的讀取/寫(xiě)入和非報(bào)告的讀取)由axi-pcie橋接電路310經(jīng)由旁路fifo緩沖器328的數(shù)據(jù)路徑322傳送到pcie接口340。如圖3所示,下游電路可以包括地址轉(zhuǎn)換電路326,其被配置成執(zhí)行在由axi協(xié)議使用的地址(例如,axi-pcie橋接電路310在axi數(shù)據(jù)總線(xiàn)上的地址)與被用于連接到pcie接口340的pcie設(shè)備的地址之間的轉(zhuǎn)換。應(yīng)當(dāng)指出,對(duì)于pcie,地址轉(zhuǎn)換對(duì)配置讀取/寫(xiě)入是不需要的(配置寫(xiě)入是非報(bào)告的),這是因?yàn)樗鼈冊(cè)L問(wèn)設(shè)備的配置寄存器。因此,非報(bào)告的讀取可以經(jīng)由數(shù)據(jù)路徑324旁路地址轉(zhuǎn)換電路326。

      在某些實(shí)施例中,axi-pcie橋接電路310包括輸入電路321,其識(shí)別下游數(shù)據(jù)302中的非報(bào)告的寫(xiě)入,以及將非報(bào)告的寫(xiě)入路由到fifo緩沖器328。在某些實(shí)施方案中,輸入電路321可以根據(jù)寫(xiě)入請(qǐng)求中的目標(biāo)地址確定寫(xiě)入請(qǐng)求是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入。如果目標(biāo)地址是在配置地址空間的范圍內(nèi),則寫(xiě)入請(qǐng)求被確定為是非報(bào)告的寫(xiě)入。

      axi-pcie橋接電路310還包括上游電路330,其用于將來(lái)自pcie接口340的上游數(shù)據(jù)304傳送到axi通信設(shè)備。上游電路330包括地址轉(zhuǎn)換電路336,其被配置成執(zhí)行在由pcie設(shè)備所使用的地址與由axi協(xié)議所使用的地址之間的轉(zhuǎn)換。類(lèi)似于下游電路320,轉(zhuǎn)換電路336不需要對(duì)某些上游數(shù)據(jù)執(zhí)行地址轉(zhuǎn)換,諸如中斷。不需要地址轉(zhuǎn)換的上游數(shù)據(jù)可以經(jīng)由旁路地址轉(zhuǎn)換電路336的數(shù)據(jù)路徑334傳送到axi通信電路。

      圖3并非意在顯示可被包括在axi-pcie橋接電路中的所有的電路,也不意在排除其它電路被包括在各種實(shí)施方案中。而是,本公開(kāi)的電路可以被調(diào)整以包括執(zhí)行各種其它功能的附加電路。例如,在某些實(shí)施方案中,axi-pcie橋接電路310可包括直接存儲(chǔ)器訪(fǎng)問(wèn)(dma)電路360,其可被使用來(lái)提供直接訪(fǎng)問(wèn)由一個(gè)協(xié)議使用的地址而不用地址轉(zhuǎn)換。各種實(shí)施例可以附加地或替換地包括各種其它電路。

      圖4示出了可以根據(jù)一個(gè)或多個(gè)實(shí)施例的被配置的可編程ic402。可編程ic也可以被稱(chēng)為片上系統(tǒng)(soc),它包括處理子系統(tǒng)410和可編程邏輯子系統(tǒng)430。處理子系統(tǒng)410可被編程來(lái)經(jīng)由用戶(hù)程序的執(zhí)行而實(shí)施用戶(hù)設(shè)計(jì)的軟件部分。程序可被指定為配置數(shù)據(jù)流的一部分或可以從片上或片下數(shù)據(jù)存儲(chǔ)裝置取回。處理子系統(tǒng)410可包括用于執(zhí)行一個(gè)或多個(gè)軟件程序的各種電路412、414、416和418。電路412、414、416和418可包括,例如,一個(gè)或多個(gè)處理器核心、浮點(diǎn)單元(fpu)、中斷處理單元、片上存儲(chǔ)器、存儲(chǔ)器高速緩存和/或高速緩存一致性互連。

      可編程ic402的可編程邏輯子系統(tǒng)430可被編程來(lái)實(shí)施用戶(hù)設(shè)計(jì)的硬件部分。例如,可編程邏輯子系統(tǒng)可包括許多可編程資源432,它們可被編程來(lái)實(shí)施在配置數(shù)據(jù)流中指定的一組電路??删幊藤Y源432包括可編程互連電路、可編程邏輯電路和配置存儲(chǔ)器單元??删幊踢壿嬐ㄟ^(guò)使用可編程單元來(lái)實(shí)施用戶(hù)設(shè)計(jì)的邏輯,所述可編程單元可包括,例如,函數(shù)生成器、寄存器、算術(shù)邏輯等等??删幊袒ミB電路可包括通過(guò)可編程互連點(diǎn)(pip)被互相連接的大量的、不同長(zhǎng)度的互連線(xiàn)。

      可編程資源432可以通過(guò)把配置數(shù)據(jù)流加載到配置存儲(chǔ)器單元而被編程,配置存儲(chǔ)器單元定義如何配置可編程互連電路和可編程邏輯電路。各個(gè)存儲(chǔ)器單元的集合狀態(tài)然后確定可編程資源432的功能。配置數(shù)據(jù)可以由外部設(shè)備從存儲(chǔ)器(例如,從外部prom)讀出或被寫(xiě)入到可編程ic402。在某些實(shí)施例中,配置數(shù)據(jù)可以由被包括在可編程邏輯子系統(tǒng)430中的配置控制器434加載到配置存儲(chǔ)器單元。在某些其它實(shí)施方案中,配置數(shù)據(jù)可以通過(guò)被處理器子系統(tǒng)410執(zhí)行的啟動(dòng)過(guò)程而被裝載到配置存儲(chǔ)器單元。

      可編程ic402可包括各種電路,其用來(lái)互連處理子系統(tǒng)410與在可編程邏輯子系統(tǒng)430內(nèi)所實(shí)施的電路。在這個(gè)例子中,可編程ic402包括核心交換器426,它可以在處理子系統(tǒng)410與可編程邏輯子系統(tǒng)430的各個(gè)數(shù)據(jù)端口之間路由數(shù)據(jù)信號(hào)。核心交換器426還可以在可編程邏輯或處理子系統(tǒng)410和430的任一項(xiàng)與可編程ic的各種其它電路(諸如內(nèi)部數(shù)據(jù)總線(xiàn))之間路由數(shù)據(jù)信號(hào)。替換地或另外地,處理子系統(tǒng)410可包括接口,以便與可編程邏輯子系統(tǒng)直接連接一一也即旁路核心交換器426。這樣的接口可以通過(guò)使用如由arm發(fā)布的ambaaxi協(xié)議技術(shù)規(guī)范(axi)而被實(shí)施。

      在某些實(shí)施例中,處理子系統(tǒng)410和可編程邏輯子系統(tǒng)430還可以經(jīng)由存儲(chǔ)器控制器421讀出或?qū)懭氲狡洗鎯?chǔ)器422或片下存儲(chǔ)器(未示出)的存儲(chǔ)器位置。存儲(chǔ)器控制器421可被實(shí)施來(lái)與一個(gè)或多個(gè)不同類(lèi)型的存儲(chǔ)器電路通信,所述存儲(chǔ)器電路包括但不限于,雙倍數(shù)據(jù)速率(ddr)2、ddr3、低功率(lp)ddr2類(lèi)型的存儲(chǔ)器,不管是16比特、32比特還是帶有ecc的16比特等等。存儲(chǔ)器控制器421能夠與之進(jìn)行通信的不同存儲(chǔ)器類(lèi)型的列表被提供以?xún)H僅用于說(shuō)明的目的,而不意在作為限制,或是窮盡的。如圖4中所示,可編程ic402可包括存儲(chǔ)器管理單元420和轉(zhuǎn)換旁路緩沖器424,用來(lái)將由子系統(tǒng)410和430所使用的虛擬存儲(chǔ)器地址轉(zhuǎn)換成由存儲(chǔ)器控制器421所使用的物理存儲(chǔ)器地址,以便訪(fǎng)問(wèn)具體的存儲(chǔ)器位置。

      可編程ic可包括輸入/輸出(i/o)子系統(tǒng)450,用于與外部電路進(jìn)行數(shù)據(jù)通信。i/o子系統(tǒng)450可包括各種類(lèi)型的i/o設(shè)備或接口,包括,例如閃存類(lèi)型i/o設(shè)備、較高性能i/o設(shè)備(例如,pcie)、較低性能接口、調(diào)試i/o設(shè)備和/或rami/o設(shè)備。

      i/o子系統(tǒng)450可包括一個(gè)或多個(gè)閃存接口460,其被示為460a和460b。例如,一個(gè)或多個(gè)閃存接口460可被實(shí)施為四串行外圍接口(qspi),其被配置成用于4比特通信。一個(gè)或多個(gè)閃存接口460可被實(shí)施為并行8比特nor/sram類(lèi)型的接口。一個(gè)或多個(gè)閃存接口460可被實(shí)施為nand接口,其被配置成用于8比特和/或16比特通信。應(yīng)當(dāng)看到,所描述的具體接口被提供來(lái)用于說(shuō)明而不是限制目的。可以使用具有不同比特寬度的其它接口。

      i/o子系統(tǒng)450可包括一個(gè)或多個(gè)接口462,其提供了比起存儲(chǔ)器接口460更高水平的性能。每個(gè)接口462a-462c可被分別耦接到dma控制器464a-464c。例如,一個(gè)或多個(gè)接口462可被實(shí)施為通用串行總線(xiàn)(usb)類(lèi)型的接口。一個(gè)或多個(gè)接口462可被實(shí)施為吉比特以太網(wǎng)類(lèi)型的接口。一個(gè)或多個(gè)接口462可被實(shí)施為安全數(shù)字(sd)類(lèi)型的接口。

      i/o子系統(tǒng)450還可包括一個(gè)或多個(gè)接口466,諸如提供比起接口462較低水平性能的接口466a-466d。例如,一個(gè)或多個(gè)接口466可被實(shí)施為通用i/o(gpio)類(lèi)型的接口。一個(gè)或多個(gè)接口466可被實(shí)施為通用異步接收機(jī)/發(fā)射機(jī)(uart)類(lèi)型的接口。一個(gè)或多個(gè)接口466可以以串行外設(shè)接口(spi)總線(xiàn)類(lèi)型接口的形式被實(shí)施。一個(gè)或多個(gè)接口466可以以控制器區(qū)域網(wǎng)絡(luò)(can)類(lèi)型的接口和/或12c類(lèi)型的接口形式被實(shí)施。一個(gè)或多個(gè)接口466可以以三重定時(shí)器計(jì)數(shù)器(ttc)和/或看門(mén)狗(wdt)類(lèi)型的接口形式被實(shí)施。

      i/0子系統(tǒng)450可包括一個(gè)或多個(gè)調(diào)試接口468,諸如處理器jtag(pjta6)接口468a和追蹤接口(traceinterface)468b。pjta6接口468a可以提供用于可編程ic402的外部調(diào)試接口。追蹤接口468b可以提供用來(lái)接收來(lái)自處理子系統(tǒng)410或可編程邏輯子系統(tǒng)430的調(diào)試(例如,追蹤、信息)的端口。

      如所顯示的,每個(gè)接口460、462、466和468可被耦接到多路復(fù)用器470。多路復(fù)用器470提供多個(gè)輸出,這些輸出可直接被路由到或被耦接到可編程ic402的外部引腳,例如,其中布置可編程ic402的封裝的焊球。例如,可編程ic402的i/o引腳可以在接口460、462、466、和468之間被共享。用戶(hù)可以配置多路復(fù)用器470,通過(guò)配置數(shù)據(jù)流來(lái)選擇接口460-468中的哪一個(gè)要被使用,從而經(jīng)由多路復(fù)用器470而被耦接到可編程ic402的i/o引腳。i/o子系統(tǒng)450還可以包括交織(fabric)多路復(fù)用器i/o(fmio)接口(未示出),其被用來(lái)連接接口462-468到可編程邏輯子系統(tǒng)的可編程邏輯電路。另外或替換地,可編程邏輯子系統(tǒng)430可被配置成在可編程邏輯內(nèi)實(shí)施一個(gè)或多個(gè)i/o電路。在某些實(shí)施方案中,可編程ic402還可以包括子系統(tǒng)440,其具有用于電源和/或安全管理的各種電路。例如,子系統(tǒng)440可包括電源管理單元446,其被配置成監(jiān)視和保持被用于給可編程ic402的各種子系統(tǒng)供電的一個(gè)或多個(gè)電壓域。在某些實(shí)施例中,電源管理單元446可以禁用各個(gè)子系統(tǒng)空閑時(shí)的供電,以便減小電源消耗,而不禁用正在工作的子系統(tǒng)的供電。

      子系統(tǒng)440還可包括安全電路,用來(lái)監(jiān)視子系統(tǒng)的狀態(tài),以便確保正確的運(yùn)行。例如,子系統(tǒng)440可包括一個(gè)或多個(gè)實(shí)時(shí)處理器442,其被配置成監(jiān)視各種子系統(tǒng)的(例如,在狀態(tài)寄存器444中指示的)狀態(tài)。實(shí)時(shí)處理器442可被配置成響應(yīng)于檢測(cè)到錯(cuò)誤而執(zhí)行多個(gè)任務(wù)。例如,對(duì)于某些錯(cuò)誤,實(shí)時(shí)處理器442可以響應(yīng)于檢測(cè)到錯(cuò)誤而生成報(bào)警。作為另一個(gè)例子,實(shí)時(shí)處理器442可以復(fù)位子系統(tǒng),試圖使得子系統(tǒng)還原到正確的運(yùn)行。子系統(tǒng)440包括開(kāi)關(guān)網(wǎng)絡(luò)448,它可被用來(lái)互連各種子系統(tǒng)。例如,開(kāi)關(guān)網(wǎng)絡(luò)448可被配置成連接各種子系統(tǒng)410、430和440到i/o子系統(tǒng)450的各種接口。在某些應(yīng)用中,開(kāi)關(guān)網(wǎng)絡(luò)448也可以被用來(lái)隔離實(shí)時(shí)處理器442與要被監(jiān)視的子系統(tǒng)。這樣的隔離可能是某些應(yīng)用標(biāo)準(zhǔn)(例如,iec-61508sil3或iso-26262標(biāo)準(zhǔn))所需要的,以保證實(shí)時(shí)處理器442不受其它子系統(tǒng)中發(fā)生的錯(cuò)誤影響。

      公開(kāi)了一種系統(tǒng),其包括:被配置成使用第一通信協(xié)議通過(guò)第一數(shù)據(jù)端口傳送數(shù)據(jù)的第一通信電路;被配置為使用第二通信協(xié)議通過(guò)第二數(shù)據(jù)端口傳送數(shù)據(jù)的第二通信電路,所述第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求;以及被配置成在第一通信電路的第一數(shù)據(jù)端口與第二通信電路的第二數(shù)據(jù)端口之間傳送數(shù)據(jù)的橋接電路,其中橋接電路被配置成經(jīng)由緩沖電路將非報(bào)告的寫(xiě)入傳送到第二通信電路以及經(jīng)由旁路緩沖電路的通信路徑將非報(bào)告的寫(xiě)入傳送到第二通信電路。

      某些這樣的系統(tǒng)還可以包括:被連接到第一通信電路的存儲(chǔ)器;被耦接到第一通信電路并且具有用于緩存來(lái)自存儲(chǔ)器的數(shù)據(jù)的緩存的處理電路;并且其中:第一通信電路還被配置成,響應(yīng)于在第一數(shù)據(jù)端口上接收到讀取請(qǐng)求以及指示被緩存所緩存的存儲(chǔ)器的存儲(chǔ)器地址,從緩存檢索對(duì)應(yīng)于存儲(chǔ)器地址的數(shù)據(jù)值;以及通過(guò)經(jīng)由緩存器電路將非報(bào)告的寫(xiě)入傳送到第二通信電路,防止對(duì)于來(lái)自緩存的數(shù)據(jù)值的寫(xiě)回被待決非報(bào)告的寫(xiě)阻塞的死鎖。

      在某些這樣的系統(tǒng)中,橋接電路還可以被配置成使得至第二通信電路的報(bào)告的寫(xiě)入優(yōu)先于至第二通信電路的非報(bào)告的寫(xiě)入。

      在某些這樣的系統(tǒng)中,緩沖電路可以是先進(jìn)先出(fifo)緩沖器。

      在某些這樣的系統(tǒng)中,橋接電路可被配置成使用第一通信協(xié)議與第一通信電路通信數(shù)據(jù),以及使用第二通信協(xié)議與第二通信電路通信數(shù)據(jù)。

      在某些這樣的系統(tǒng)中,橋接電路可包括地址轉(zhuǎn)換電路,地址轉(zhuǎn)換電路被配置成和安排成為第一通信電路與第二通信電路之間的報(bào)告的讀取和寫(xiě)入作業(yè)的地址轉(zhuǎn)換。

      在某些這樣的系統(tǒng)中,橋接電路可包括直接存儲(chǔ)器訪(fǎng)問(wèn)電路,直接存儲(chǔ)器訪(fǎng)問(wèn)電路被配置成通過(guò)旁路地址轉(zhuǎn)換電路的數(shù)據(jù)路徑將來(lái)自第一或第二通信電路之一的讀寫(xiě)作業(yè)提供給第一或第二通信電路的另一個(gè)通信電路。

      在某些這樣的系統(tǒng)中,橋接電路和第二通信電路可被配置成,響應(yīng)于接收到來(lái)自第一通信電路的非報(bào)告的寫(xiě)入,在第一時(shí)間段內(nèi)提供非報(bào)告的寫(xiě)入的確認(rèn);以及緩沖電路被配置成緩沖少于由第一通信電路在第一時(shí)間段內(nèi)發(fā)布的最大數(shù)目的非報(bào)告的寫(xiě)入請(qǐng)求。

      在某些這樣的系統(tǒng)中,緩沖電路可被配置成緩沖少于由第一通信電路在第一時(shí)間段內(nèi)發(fā)布的、可能的最大數(shù)目的非報(bào)告的和報(bào)告的寫(xiě)入請(qǐng)求,

      在某些這樣的系統(tǒng)中,橋接電路可包括一電路,該電路被配置成響應(yīng)于來(lái)自第一通信電路的寫(xiě)入,確定所述寫(xiě)入是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入。

      在某些這樣的系統(tǒng)中,橋接電路可包括以被配置成響應(yīng)于來(lái)自第一通信電路的寫(xiě)入,根據(jù)目標(biāo)地址確定所述寫(xiě)入是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入。

      在另一個(gè)例子中,可以提供一種用于數(shù)據(jù)通信的方法。用于數(shù)據(jù)通信的這樣的方法可包括:使用第一通信電路、使用第一通信協(xié)議通過(guò)第一數(shù)據(jù)端口傳送數(shù)據(jù);使用第二通信電路、使用第二通信協(xié)議通過(guò)第二數(shù)據(jù)端口傳送數(shù)據(jù),所述第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求;經(jīng)由緩沖電路將來(lái)自第一通信電路的非報(bào)告的寫(xiě)入傳送到第二通信電路;經(jīng)由旁路緩沖電路的通信路徑將來(lái)自第一通信電路的報(bào)告的寫(xiě)入傳送到第二通信電路。

      在某些這樣的方法中,將來(lái)自第一通信電路的報(bào)告的寫(xiě)入傳送到第二通信電路可包括在傳送被存儲(chǔ)在緩沖電路中的非報(bào)告的寫(xiě)入之前,將報(bào)告的寫(xiě)入傳送到第二通信電路。

      某些這樣的方法還可以包括使用第一通信電路來(lái)保持在被連接到第一通信電路的存儲(chǔ)器所存儲(chǔ)的數(shù)據(jù)和在被連接到第一通信電路的緩存所存儲(chǔ)的數(shù)據(jù)之間的數(shù)據(jù)一致性。

      在某些這樣的方法中,緩沖電路是先進(jìn)先出(fifo)緩沖器。

      某些這樣的方法還可以包括執(zhí)行在第一通信電路與第二通信電路之間的、用于報(bào)告的讀取和寫(xiě)入作業(yè)的地址轉(zhuǎn)換。

      某些這樣的方法還可以包括響應(yīng)于接收到來(lái)自第一通信電路的寫(xiě)入,根據(jù)目標(biāo)地址確定所述寫(xiě)入是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入。

      某些這樣的方法還可以響應(yīng)于確定所述寫(xiě)入是非報(bào)告的寫(xiě)入,將非報(bào)告的寫(xiě)入路由到緩沖電路;以及響應(yīng)于確定所述寫(xiě)入是報(bào)告的寫(xiě)入,將報(bào)告的寫(xiě)入路由到旁路緩沖電路的通信路徑。

      公開(kāi)了另一個(gè)系統(tǒng)。這樣的系統(tǒng)可包括:被配置成使用第一通信協(xié)議通過(guò)第一數(shù)據(jù)端口傳送數(shù)據(jù)的第一通信電路;被配置成使用第二通信協(xié)議通過(guò)第二數(shù)據(jù)端口傳送數(shù)據(jù)的第二通信電路,其中所述第二通信協(xié)議以讀取和寫(xiě)入請(qǐng)求被接收的次序處理讀取和寫(xiě)入請(qǐng)求;和橋接電路,包括:在第一和第二通信數(shù)據(jù)端口之間的第一通信路徑,所述第一通信路徑包括緩沖電路;在第一和第二通信數(shù)據(jù)端口之間的第二通信路徑,所述第二通信路徑旁路緩沖電路;和被配置成確定從第一通信電路接收的寫(xiě)入作業(yè)是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入的輸入電路;響應(yīng)于確定所述寫(xiě)入作業(yè)是非報(bào)告的寫(xiě)入,將所述非報(bào)告的寫(xiě)入經(jīng)由第二通信路徑提供給第二通信電路;以及響應(yīng)于確定所述寫(xiě)入作業(yè)是報(bào)告的寫(xiě)入,將所述報(bào)告的寫(xiě)入經(jīng)由第二通信路徑提供給第二通信電路。

      在某些這樣的系統(tǒng)中,輸入電路可被配置成根據(jù)在寫(xiě)入作業(yè)中所指示的目標(biāo)地址,確定寫(xiě)入作業(yè)是報(bào)告的寫(xiě)入還是非報(bào)告的寫(xiě)入。

      所述方法和電路被認(rèn)為可應(yīng)用于各種各樣的系統(tǒng)和應(yīng)用。本領(lǐng)域技術(shù)人員通過(guò)考慮本說(shuō)明書(shū),將明白其它方面和特點(diǎn)。例如,雖然這些方面和特性在某些情形下是在各附圖圖中被描述的,但將會(huì)看到,來(lái)自一個(gè)圖中的特點(diǎn)可以與另一個(gè)圖的特點(diǎn)相組合,盡管組合沒(méi)有被明顯地顯示,或明顯地作為組合被描述。本說(shuō)明書(shū)和附圖僅僅意在被作為示例,本發(fā)明的真正的范圍由所附權(quán)利要求表示。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1