本公開涉及計算系統(tǒng),并且特別(但不排他地)涉及設(shè)備的片上互連。
附圖說明
圖1是根據(jù)本發(fā)明的一實施例的芯片上網(wǎng)絡(luò)(noc)的至少一部分的框圖。
圖2是根據(jù)本發(fā)明的一實施例的路由器的其它細(xì)節(jié)的框圖。
圖3是根據(jù)本發(fā)明的一實施例的下轉(zhuǎn)換邏輯的框圖。
圖4是根據(jù)本發(fā)明的一實施例的上轉(zhuǎn)換邏輯的框圖。
圖5是根據(jù)本發(fā)明的一實施例的用于編碼分組的方法的流程圖。
圖6是根據(jù)本發(fā)明的一實施例的用于處理目的地位置的分組的命令部分的方法的流程圖。
圖7是根據(jù)本發(fā)明的一實施例的用于執(zhí)行下轉(zhuǎn)換鏈路寬度操作的方法的流程圖。
圖8是根據(jù)本發(fā)明的一實施例的用于執(zhí)行上轉(zhuǎn)換鏈路寬度操作的方法的流程圖。
圖9是根據(jù)本發(fā)明的一實施例的芯片上系統(tǒng)(soc)的一部分的框圖。
圖10是根據(jù)本發(fā)明的一實施例的soc的框圖。
圖11是根據(jù)一實施例的代表性調(diào)制解調(diào)器的框圖。
圖12是根據(jù)本發(fā)明的一實施例的系統(tǒng)的框圖。
圖13是可以使用實施例的示例系統(tǒng)的框圖。
圖14是可以使用實施例的另一示例系統(tǒng)的框圖。
圖15是根據(jù)一實施例的芯片上系統(tǒng)的框圖。
具體實施方式
在各種實施例中,可以使用獨立于數(shù)據(jù)(例如,字)寬度的用于基于分組的通信的突發(fā)命令編碼,且因此可以在整個系統(tǒng)(例如芯片上網(wǎng)絡(luò)(noc))上發(fā)送分組(所述芯片上網(wǎng)絡(luò)具有不同鏈路寬度的鏈路),而不需要對命令編碼進(jìn)行任何改變,只要在芯片上網(wǎng)絡(luò)中引起鏈路寬度的放大和縮小。因此,通過合并或解剖分組單元(例如,流控制單元或flit),從源到目的地通過芯片上網(wǎng)絡(luò)的分組可以被放大和縮小鏈路寬度。雖然當(dāng)收集多個較小的flit以形成較寬的flit時可以出現(xiàn)固有的存儲和時延,實施例能夠在沒有任何重新編碼的情況下實現(xiàn)這種寬度改變,而不需要額外的存儲或時延來適應(yīng)改變的鏈路寬度。
根據(jù)實施例,突發(fā)命令編碼可以包括最少兩個正交信息片段,兩者獨立于鏈路寬度。第一個信息是突發(fā)尺寸。該突發(fā)尺寸以靜態(tài)或固定數(shù)量(比特、字節(jié)、半字節(jié)等)保持,獨立于網(wǎng)絡(luò)通信的字段的字、flit或具體鏈路寬度的實際尺寸。第二個信息是環(huán)繞邊界信息(wrappingborderinformation)(如果有的話),其中地址序列在結(jié)束邊界處停止遞增并跳回到起始邊界,再次使用固定數(shù)量(地址比特、字節(jié)地址、...),獨立于flit寬度來表示邊界。以這種方式,實現(xiàn)了芯片上網(wǎng)絡(luò)(或其它互連解決方案)內(nèi)的鏈路寬度變化的放大和縮小功能的復(fù)雜度降低,因為在任何寬度變化的網(wǎng)絡(luò)內(nèi)部不需要命令重新編碼。此外,可以實現(xiàn)例如使用蟲洞路由的基于分組的noc的設(shè)計的減小的面積,因為在放大或縮小功能內(nèi)部不需要收集儲存設(shè)備中的分組的多個第一flit以能夠改變分組內(nèi)容。此外,可以實現(xiàn)基于分組的noc的減少的時延,因為在任何放大或縮小功能期間,在分組檢查和修改命令編碼上都沒有花費時間。注意到,在一些實施例中,鏈路寬度越小,節(jié)省越突出,因為在小鏈路寬度下,存儲和檢查以獲得對命令編碼的訪問的flit數(shù)量高于寬鏈路寬度,其中所有該信息可能存在于第一flit中。
在文中所述的實施例中,突發(fā)的編碼獨立于當(dāng)前字寬。可以使用不同的方法來實現(xiàn)這樣的編碼。雖然本發(fā)明的范圍在這方面不受限制,但是示例編碼包括:突發(fā)描述基于在系統(tǒng)中使用的最小數(shù)據(jù)傳送量(例如位、字節(jié)、半字或字);突發(fā)描述基于啟動器代理的本地字寬度(并將原始字寬度作為突發(fā)描述的一部分傳送);突發(fā)描述基于目標(biāo)或目的地部件的本地字寬度且潛在地在啟動器代理處執(zhí)行編碼轉(zhuǎn)換;或者突發(fā)描述基于可配置數(shù)量,并將該數(shù)量信息與該消息一起傳送。
在所有這些情況下,用于從啟動器到目標(biāo)的路徑上的鏈路寬度改變的任何尺寸轉(zhuǎn)換操作可以避免檢查分組并修改突發(fā)編碼。相反,這樣的尺寸轉(zhuǎn)換操作采取flit重排的形式(例如,在各個尺寸調(diào)整部件上平行或串行)。所有編碼/解碼轉(zhuǎn)換都要在啟動器或目標(biāo)側(cè)上進(jìn)行,或者僅在兩者上進(jìn)行。
通常,可以在工業(yè)標(biāo)準(zhǔn)總線或其它總線中通過起始地址來描述突發(fā),在單個時鐘周期(一個節(jié)拍)中傳送的數(shù)據(jù)量(也稱為節(jié)拍尺寸)、節(jié)拍次數(shù)、以及地址序列機(jī)制。在不同情況下,地址序列機(jī)制可以遞增,其中各個節(jié)拍在存儲空間中鄰近其前一節(jié)拍遞增;固定,其中各個節(jié)拍被發(fā)送到相同的地址(起始地址);或環(huán)繞,其中當(dāng)已經(jīng)到達(dá)多個節(jié)拍尺寸乘以節(jié)拍數(shù)的地址時,突發(fā)在節(jié)拍尺寸的下一個較低整數(shù)倍乘以節(jié)拍數(shù)處繼續(xù)。因此,典型的總線突發(fā)描述基于節(jié)拍尺寸,其是鏈路的字寬的函數(shù)。
分組的命令部分可以按與如上所述不同的方式獨立于鏈路寬度編碼。在表1中,示出將系統(tǒng)的最小數(shù)據(jù)傳送粒度假設(shè)為一個字節(jié)的實施示例。如表1中所示,突發(fā)描述包括作為字節(jié)地址的起始地址;總長度(以字節(jié)為單位)(由節(jié)拍尺寸乘以節(jié)拍數(shù)計算);指定為字節(jié)的二次方的環(huán)繞邊界;以及區(qū)分不同突發(fā)類型(例如,環(huán)繞、固定和遞增突發(fā))的方式。對于固定的地址突發(fā),可以將環(huán)繞邊界設(shè)置為啟動器的節(jié)拍尺寸,使得固定突發(fā)是跨越約束地址空間多次的環(huán)繞突發(fā)的特殊情況。對于增量突發(fā),可以將環(huán)繞邊界設(shè)置為對于固定或環(huán)繞突發(fā)(例如,可能大于最大可編碼突發(fā)長度的最大可編碼環(huán)繞邊界值)無意義的特殊尺寸。否則,報頭的命令部分的編碼可以包括第四參數(shù)值,以區(qū)分遞增、環(huán)繞和固定突發(fā)。
表1
方法a):基于字節(jié)粒度的編碼
規(guī)則:用*標(biāo)記的所有值以字節(jié)為單位
32->64比特:
放大輸入
放大輸出
64->32比特:
縮小輸入
縮小輸出
在表1的方法中,可以改進(jìn)編碼的密度,其中,環(huán)繞邊界不直接給定為當(dāng)繞回時對字節(jié)地址計數(shù)的整數(shù)值,而是給定為僅表示限制于二次方的值的邊界的整數(shù)指數(shù)。注意到這種限制是合理的,因為現(xiàn)代soc中的大多數(shù)成分具有二次方的寬度的總線接口,且將環(huán)繞突發(fā)長度限制為二次方。
在表2中,示出基于啟動器數(shù)據(jù)寬度的突發(fā)描述的實現(xiàn)示例。如表2中所示,該編碼包括已知數(shù)量(不一定是字節(jié))的起始地址;啟動器的節(jié)拍尺寸(init-size);節(jié)拍數(shù)量;和突發(fā)種類的指示符(例如,遞增、環(huán)繞或固定)。
表2
方法b):基于啟動器數(shù)據(jù)寬度的編碼
規(guī)則:尺寸可能大于當(dāng)前數(shù)據(jù)寬度
32->64比特:
放大輸入
放大輸出
64->32比特
縮小輸入
縮小輸出
如表2中的編碼非常類似于公共總線協(xié)議編碼。因此,啟動器側(cè)上的事務(wù)編碼可以相當(dāng)簡單。在這種情況下,目標(biāo)代理可以配置成能夠?qū)⒉煌妮斎刖幋a轉(zhuǎn)換到目標(biāo)總線寬度,這可增加目標(biāo)網(wǎng)絡(luò)接口的解碼邏輯的復(fù)雜性。
在表3中,示出突發(fā)編碼基于目標(biāo)數(shù)據(jù)寬度的實現(xiàn)示例。如表3中所示,突發(fā)描述包括已知數(shù)量(不一定是字節(jié))的起始地址;傳送中的目標(biāo)的節(jié)拍尺寸(可以省略(在表3中以斜體顯示)),因為目標(biāo)隱含地知道該尺寸,且路徑上的所有其它部件不需要這樣的信息,除了計算突發(fā)編碼的單元);節(jié)拍數(shù)量;和突發(fā)種類的指示符(例如遞增、環(huán)繞或固定)。
注意到,節(jié)拍尺寸可能大于當(dāng)前數(shù)據(jù)寬度,且地址不需要正確對準(zhǔn):它將在目標(biāo)網(wǎng)絡(luò)接口處固定;且消息中的目標(biāo)數(shù)據(jù)寬度傳送是可選的,因為它將僅在目標(biāo)中用于轉(zhuǎn)換(和用于對準(zhǔn)的潛在事務(wù)分割)到總線協(xié)議。
表3
方法c):基于目標(biāo)數(shù)據(jù)寬度的編碼
規(guī)則:尺寸可能大于當(dāng)前數(shù)據(jù)寬度;地址不需要正確對準(zhǔn):它將在目標(biāo)網(wǎng)絡(luò)接口處固定;消息中的目標(biāo)數(shù)據(jù)寬度傳送是可選的,因為只需要在目標(biāo)中轉(zhuǎn)換(和用于對準(zhǔn)的潛在事務(wù)分割)到總線協(xié)議。
32->64比特:
放大輸入
放大輸出
64->32比特
縮小輸入
縮小輸出
如表3中所示的編碼允許從分組格式中去除目標(biāo)總線尺寸的編碼的可能性,且因此允許從針對通過網(wǎng)絡(luò)的消息傳送的帶寬要求去除目標(biāo)總線尺寸的編碼的可能性。然而,啟動器網(wǎng)絡(luò)接口可以配置成理解目標(biāo)接口總線寬度且對于所有這些情況具有適當(dāng)?shù)木幋a邏輯,這可能增加啟動器接口的復(fù)雜性。注意到通過這樣的編碼,目標(biāo)接口可以配置成以減小的數(shù)據(jù)寬度分段或分割始發(fā)自啟動器的未對準(zhǔn)突發(fā)。這些可能最終在目標(biāo)側(cè)上分割成較小突發(fā)的序列。
在表4中,示出用于基于配置的數(shù)據(jù)寬度的突發(fā)描述的實現(xiàn)示例。如表4中所示,該編碼包括已知數(shù)量(不一定是字節(jié))的起始地址;所選粒度的節(jié)拍尺寸;節(jié)拍數(shù)量;和突發(fā)種類的指示符(例如,遞增、環(huán)繞或固定)。
表4
方法d):基于配置的數(shù)據(jù)寬度的編碼
規(guī)則:cfg-size可能大于當(dāng)前數(shù)據(jù)寬度;用*標(biāo)記的所有值以cfg-size量為單位
32->64比特:
放大輸入
放大輸出
64->32比特:
縮小輸入
縮小輸出
如表4中的具有可配置的數(shù)據(jù)寬度的編碼非常接近表1的用于那些情況的方法,其中配置的數(shù)據(jù)寬度遍及所有網(wǎng)絡(luò)中相同,不同之處在于粒度不是字節(jié)而是另一個單位,這可以改進(jìn)編碼密度。如果另一方面,各個啟動器代理使用私有可配置數(shù)據(jù)寬度,則對目標(biāo)協(xié)議轉(zhuǎn)換器的影響可能與表2的方法大致相同,在表2的方法中可以在轉(zhuǎn)換中支持存在的所有組合。
為了實現(xiàn)防止對于放大和縮小成分的分組檢查和修改的目的,分組格式編碼還可以具有獨立于flit寬度的有效載荷尺寸編碼,以及獨立于flit寬度的包尾檢測。
在各種實施例中,有效載荷尺寸編碼可以通過將利用的有效載荷參數(shù)添加到消息中來實現(xiàn),該消息的尺寸是突發(fā)尺寸(例如,上述示例中的長度參數(shù),其規(guī)定傳送的數(shù)據(jù)的量為固定數(shù)量尺寸的倍數(shù))。利用的有效載荷參數(shù)僅給出實際有效載荷數(shù)據(jù)的尺寸,不包括報頭、命令或填充。報頭和命令長度從分組格式已知,且是固定的或取決于分組格式的數(shù)量。那么甚至潛在需要有效載荷的填充來填充放大的寬flit也不重要,因為利用的有效載荷參數(shù)指示哪些有效載荷字節(jié)是可以被忽略的填充字節(jié)??梢酝ㄟ^包括包尾指示符來實現(xiàn)消息編碼的結(jié)束,該包尾指示符可以使用伴隨各個flit的一個或多個標(biāo)記比特來實現(xiàn),以區(qū)分消息的最后flit與其它,或者通過以某種方式編碼分組flit使得專門編碼的尾flit可以唯一地完成消息。
下面的表5和6描述了其它示例突發(fā)描述。
表5
備選方案1):各個flit中的包尾(eop)指示符(使用編碼方法(d)為例,但將與所有其它方法相同)
規(guī)則:cfg-size可能大于當(dāng)前數(shù)據(jù)寬度;用*標(biāo)記的所有值以cfg-size量為單位
32->64比特:
放大輸入
放大輸出
放大功能僅操控flit的eop列,而不需要分組檢查。
64->32比特:
縮小輸入
縮小輸出
在這個示例中,縮小功能僅操控flit的eop列,而不需要分組檢查。
在消息(通常攜帶附加信息(如校驗和))之后使用專門編碼的尾flit的分組格式中,代替eop列,可以在放大和縮小功能中操控現(xiàn)有的flit類型指示符。
表6
備選方案2):在各個flit中的flit類型指示符,具有尾flit的特殊代碼(編碼方法(d)用作示例,但將與所有其它方法相同)。例如,注意到消息的第一flit將被標(biāo)記為報頭(hdr),中間flit標(biāo)記為有效負(fù)載(payload),且存在作為含有作為信息的校驗和的尾flit(tail)附加的最后一個flit。
規(guī)則:cfg-size可能大于當(dāng)前數(shù)據(jù)寬度;用*標(biāo)記的所有值以cfg-size量為單位
32->64比特:
放大輸入
放大輸出
在這個示例中,放大功能僅操控flit的flit類型列,而不需要分組檢查。如果尾flit中存在校驗和,則可能會重新計算,這取決于校驗和算法。
64->32比特:
縮小輸入
縮小輸出
在這個示例中,縮小功能只操控flit的flit類型列,而不需要進(jìn)行分組檢查。如果尾flit中存在校驗和,則可能重新計算,這取決于校驗和算法。
雖然表1-6示出編碼信息的特定編碼和排序,應(yīng)當(dāng)理解,根據(jù)本發(fā)明的一實施例的命令編碼可以采取許多不同的形式。
注意到,在上述所有實施備選方案中,鏈路的當(dāng)前數(shù)據(jù)寬度不是突發(fā)編碼的一部分。因此,突發(fā)編碼在放大和縮小成分上保持不變,且對于任何放大或縮小操作都不發(fā)生分組檢查。
現(xiàn)在參考圖1,示出根據(jù)本發(fā)明的一實施例的noc的至少一部分的框圖。如圖1所示,soc10包括多個路由器200-203。如所看到的,路由器對經(jīng)由相應(yīng)的互連40耦合在一起,各個互連40可以對應(yīng)于點對點互連(即互連40a-40c)。
在圖1的上下文中,注意到不同的路由器20配置成以不同的鏈路寬度操作。例如,路由器200配置成以128比特寬度操作,路由器201和202配置成以64比特寬度操作,且路由器203配置成以32比特寬度操作。因此,各個互連40具有不同于一個或多個耦合的路由器的鏈路寬度是可能的。因此,各個路由器可以包括轉(zhuǎn)換邏輯或與轉(zhuǎn)換邏輯相關(guān),例如上轉(zhuǎn)換和/或下轉(zhuǎn)換邏輯,以使得能夠以適當(dāng)?shù)逆溌穼挾冉?jīng)由相應(yīng)的互連進(jìn)行通信,而不管路由器配置為操作的本地比特寬度。
仍然參考圖1,各個路由器20耦合到多個網(wǎng)絡(luò)接口(ni)30。由于noc的配置,可以將不同數(shù)量的ni耦合到各個路由器。此外,如圖1所示,ni可以采用不同的形式,包括專用的主ni例如ni300,0、專用從ni例如nl303,1和多功能ni(例如,主/從ni)例如300,5。注意到,這些網(wǎng)絡(luò)接口30各自可以耦合到soc或包括noc的其它設(shè)備的一個或多個知識產(chǎn)權(quán)(ip)邏輯。為了便于說明,然而,ip邏輯或網(wǎng)絡(luò)接口耦合的其它端點未示出。此外,應(yīng)當(dāng)理解,為了本文討論目的,這些ni各自獨立示出,在一些實現(xiàn)方案中,可以將ni包括在特定端點或其它ip邏輯中。
由于其中不同鏈路可以按不同鏈路寬度操作的noc布置,合適的轉(zhuǎn)換電路例如上轉(zhuǎn)換和/或下轉(zhuǎn)換邏輯可以包括在單個路由器20和/或ni30(如對于具體配置適當(dāng)?shù)模﹥?nèi)和/或與其相關(guān)。
現(xiàn)在參考圖2,示出根據(jù)本發(fā)明的一實施例的路由器的其它細(xì)節(jié)的框圖。如圖2所示,路由器20配置成8端口路由器。在某些情況下,各個單獨端口(由入口端口22和出口端口24組成)耦合到相應(yīng)的網(wǎng)絡(luò)接口(圖2中為了便于說明而未示出),給定的互連或在具體配置中可以未連接。
進(jìn)一步參考路由器20,提供了多個入口端口220-227,各自配置成從源位置接收輸入信息,并經(jīng)由交叉開關(guān)28將信息提供到目的地位置,在一個實施例中交叉開關(guān)28可以是稀疏填充的交叉開關(guān),使其適合路由器不同端口之間的連接。還提供多個出口端口240-247,各自配置成從相應(yīng)的仲裁器250-257接收信息,并將這些信息輸出到目的地位置。注意到各個仲裁器25可以接收多個信息流且從相應(yīng)的出口端口選擇適當(dāng)?shù)牧鱽磔敵?。注意到,每對入口端?2和出口端口24可以與特定網(wǎng)絡(luò)接口、互連或其它代理相關(guān)(或保持未連接)。
在某些情況下,由于不同代理操作的本地比特寬度的變化,可能會發(fā)生鏈路寬度變化。因此,如圖2中所示,相應(yīng)的縮小邏輯50(此處也稱為下轉(zhuǎn)換邏輯)和放大邏輯60(此處也稱為上轉(zhuǎn)換邏輯)可以與相應(yīng)的入口端口22和出口端口24相關(guān)。在圖2中顯示的具體實施例中,第一縮小邏輯501耦合到入口端口221,且相應(yīng)的第一放大邏輯601耦合到出口端口241。在所示的具體實施例中,輸入到縮小邏輯501的信息以128比特寬度接收,并被下轉(zhuǎn)換到64比特。提供到放大邏輯601的輸入信息以64比特寬度接收,并被上轉(zhuǎn)換以128比特寬度輸出。類似地,第二縮小邏輯502耦合到入口端口222,且相應(yīng)的第二放大邏輯602耦合到出口端口242。在所示的具體實施例中,到縮小邏輯502的輸入信息以64比特寬度接收,并被下轉(zhuǎn)換到32比特。提供到放大邏輯602的輸入信息以32比特寬度接收,且被上轉(zhuǎn)換以64比特寬度輸出。應(yīng)當(dāng)理解,盡管在圖2的實施例中以該高等級示出,但許多變化和替代方案是可能的。
現(xiàn)在參考圖3,示出根據(jù)本發(fā)明的一實施例的下轉(zhuǎn)換邏輯50的框圖。如圖3中所示,下轉(zhuǎn)換邏輯50包括選擇邏輯52,其在一實施例中可以是復(fù)用器或其它邏輯。如所看到的,輸入信息以第一比特寬度(例如,128比特)接收,且從選擇邏輯以第二比特寬度(例如,64比特)輸出。雖然描述該具體示例,但各種比特寬度輸入和輸出是可能的。如所看到的,選擇邏輯52在控制邏輯54的控制之下,控制邏輯54選擇輸入信息的適當(dāng)?shù)囊粋€或多個部分作為流控制單元輸出(dout[n-1:0])。如進(jìn)一步看出的,控制邏輯54還輸出非空指示信號(empty_n),以指示經(jīng)尺寸調(diào)整的字可用于消耗/傳播。在下轉(zhuǎn)換邏輯50中,各個輸入字在該字的所有片段已被消耗且另一個已經(jīng)在流水線中可用或empty_n下降之前,會產(chǎn)生empty_n的多個周期。
noc內(nèi)的下轉(zhuǎn)換邏輯50的各個實例可以具有可配置的輸入比特寬度和輸出比特寬度,如適合于在不同本地比特寬度下操作的不同邏輯、代理和/或互連之間的互連。注意到,控制邏輯54不需要檢查輸入信息或其任何部分(例如報頭部分或命令部分)來確定分組的類型或者執(zhí)行其中任何信息的任何類型的重新編碼。相反,控制邏輯54簡單地控制選擇邏輯52以將一個流控制單元尺寸的輸入信息尺寸調(diào)整為不同流控制單元尺寸的輸出信息。
現(xiàn)在參考圖4,示出根據(jù)本發(fā)明的一實施例的上轉(zhuǎn)換邏輯60的框圖。如圖4中所示,上轉(zhuǎn)換邏輯60包括選擇邏輯66,其在一實施例中可以是解復(fù)用器或其它邏輯。如所看到的,輸入信息以第一比特寬度(例如,64比特)接收,且從選擇邏輯66以第二比特寬度(例如,128比特)輸出。更具體地,由選擇邏輯66輸出的信息提供到一組存儲元件640-64x。在所示的實施例中,存在四個這樣的存儲元件。在不同的實施例中,存儲元件可以采取寄存器、雙緩沖寄存器等的形式。在實施例中,單寄存器設(shè)計可以引入一個時鐘周期的空泡,當(dāng)組合的字被消耗時,且在寄存器被排出之后,允許下一個字片段進(jìn)入。使用雙緩沖寄存器設(shè)計,一個緩沖器用于組裝片段,而另一個緩沖器用于存儲組裝的片段,直到它們被消耗。
仍然參考圖4,當(dāng)由控制邏輯66控制時,輸出信息以作為dout[mxn-1:0]的第二比特寬度(例如,128比特)輸出。如進(jìn)一步看到的,控制邏輯66接收輸入控制指示符pop,它指示何時已經(jīng)發(fā)送全輸出字,使得新的flit可以開始被合并。且如上所述,控制邏輯66輸出非空指示符empty_n。注意到,在上轉(zhuǎn)換邏輯60中,empty_n信號將在幾個周期內(nèi)為低,而寬輸出字從窄輸入片段收集。雖然在圖4的實施例中以該高水平示出,但應(yīng)當(dāng)理解,許多變化和替代方案是可能的。
noc內(nèi)的上轉(zhuǎn)換邏輯60的各個實例可以具有可配置的輸入比特寬度和輸出比特寬度,如適合于在不同本地比特寬度下操作的不同邏輯、代理和/或互連之間的互連。注意到,控制邏輯64不需要檢查輸入信息或其任何部分(例如報頭部分或命令部分)來確定分組的類型或執(zhí)行其中任何信息的任何類型的重新編碼。相反,控制邏輯66簡單地控制選擇邏輯62以將一個流控制單元尺寸的輸入信息尺寸調(diào)整為不同流控制單元尺寸的輸出信息。在flit信息中,可以僅操控eop或flit類型比特列以產(chǎn)生合法的分組幀。
現(xiàn)在參考圖5,示出根據(jù)本發(fā)明的一實施例的用于編碼分組的方法的流程圖。如圖5中所示,方法100可以通過noc的部件的硬件、軟件和/或固件的組合來執(zhí)行。例如,soc的代理的編碼邏輯可以執(zhí)行方法100。在其它情況下,方法100可以通過在給定代理和例如路由器等的另一位置之間耦合的網(wǎng)絡(luò)接口的編碼邏輯來執(zhí)行。在所示的實施例中,方法100通過編碼具有至少獨立的突發(fā)尺寸信息和獨立的環(huán)繞邊界信息的分組的命令部分(框110)開始。也就是說,雖然具體命令編碼可以包括附加信息,但至少存在這種尺寸和環(huán)繞邊界信息。在不同的實現(xiàn)中,編碼可以根據(jù)上述關(guān)于表1-4的方法之一。注意到關(guān)于突發(fā)尺寸和環(huán)繞邊界信息的術(shù)語“獨立”意味著該信息與編碼器代理的本地比特寬度無關(guān)。此外,這個信息在其穿過網(wǎng)絡(luò)時也是“獨立的”或靜態(tài)的,使得在從源到目的地的路徑上不執(zhí)行重新編碼操作。
仍然參考圖5,控制接下來傳遞到塊120,其中可以生成第一寬度的分組。更具體地,該分組包括報頭部分、命令部分和有效載荷部分。接下來,在框130,分組可以作為一個或多個流控制單元注入到網(wǎng)絡(luò)中。例如,在網(wǎng)絡(luò)接口所耦合的源代理和路由器兩者以64比特的本地比特寬度進(jìn)行操作的情況下,流控制單元也可以是64比特,使得單個flit從網(wǎng)絡(luò)接口注入到路由器。在其它情況下,可以使用不同的flit尺寸,例如32比特或另一比特。雖然在圖5的實施例中以該高水平示出,應(yīng)當(dāng)理解,很多變化和替代方案是可能的。
現(xiàn)在參考圖6,示出根據(jù)本發(fā)明的一實施例的用于處理目的地位置的分組的命令部分的方法的流程圖。如圖6所示,方法150可以通過soc的部件的硬件、軟件和/或固件的組合來執(zhí)行,例如分組的給定目的地的解碼邏輯。
方法150通過提取和處理分組的報頭信息(框160)開始。理解,如果存在不同長度的多種格式和命令信息內(nèi)容、服務(wù)質(zhì)量(qos)指示等,這樣的報頭信息可以包括各種信息,包括源和目的地信息以及其它這樣的信息,例如分組格式。接下來,控制傳遞到塊170,其中分組的命令信息可以被提取和處理。該命令信息可以對應(yīng)于上面關(guān)于圖5生成且包括表1-4的各種命令編碼方法的給定一個的編碼突發(fā)命令?;谔崛〉男畔ⅲ梢垣@得突發(fā)尺寸、環(huán)繞邊界和潛在其它信息。然后使用該信息,可以消耗分組的有效載荷部分(框180)。例如,有效載荷的數(shù)據(jù)可以存儲在適當(dāng)?shù)奈恢貌⒂赡康牡卮硐?。理解,盡管在圖6的實施例中以該高水平示出,但許多變化和替代方案是可能的。
現(xiàn)在參考圖7,示出根據(jù)本發(fā)明的一實施例的用于執(zhí)行下轉(zhuǎn)換鏈路寬度操作的方法的流程圖。如圖7中所示,當(dāng)在源和目的地之間的路徑上發(fā)生鏈路寬度改變時,方法200可以由下轉(zhuǎn)換邏輯執(zhí)行。如所看到的,方法200通過接收第二寬度的分組的流控制單元(框210)開始。假設(shè)為了討論的目的,這個第二寬度是128比特,且流控制單元也是128比特。在這種情況下,接收的流控制單元可以分成第一寬度(例如,64比特)的多個流控制單元(框220)。因此,在這種情況下,進(jìn)入的flit可以分成2個不同的flit。然而注意到不執(zhí)行輸入分組的分析或重新編碼??刂平酉聛韨鬟f到框230,其中在第一寬度的這些多個流控制單元之間可能發(fā)生仲裁或選擇過程。此后,控制傳遞到框240,其中可以輸出所選擇的流控制單元。接下來,在菱形250確定是否剩下第一寬度的任何流控制單元。如果是這樣,則控制返回到上面討論的框230。否則,對于具體分組,方法200結(jié)束。因此執(zhí)行這樣的下轉(zhuǎn)換方法,其中不會發(fā)生命令或其它信息的重新編碼;相反,分組僅從一個寬度縮小到另一個寬度,且包尾信息被推遲到縮小的分組的最后flit。
現(xiàn)在參考圖8,示出根據(jù)本發(fā)明的一實施例的用于執(zhí)行上轉(zhuǎn)換鏈路寬度操作的方法的流程圖。如圖7中所示,當(dāng)在源和目的地之間的路徑上發(fā)生鏈路寬度改變時,方法260可以由上轉(zhuǎn)換邏輯執(zhí)行。如所看到的,方法260通過接收第一寬度的分組的流控制單元(框270)開始。假設(shè)出于討論的目的,該第二寬度是32比特,且流控制單元也是32比特。在這種情況下,接收的流控制單元可以被合并到第二寬度的單個流控制單元(假設(shè)出于討論的目的是128比特)。為此,接收的流控制單元可以存儲在緩沖器中(框275)。接下來,確定緩沖器是否存儲等于第二寬度的流控制單元(菱形280)。如果不,則控制返回到框270。
否則,當(dāng)已經(jīng)接收到合適數(shù)量的流控制單元時,控制傳遞到框285,其中多個flit(例如,4個)可以合并到第二flit的單個流控制單元中(框285)。然而,注意到不會執(zhí)行輸入分組分析或重新編碼。控制接下來傳遞到框290,其中可以輸出第二寬度的流控制單元。在這一點,方法260對于要上轉(zhuǎn)換和輸出的具體分組結(jié)束。因此執(zhí)行這種上轉(zhuǎn)換方法,其中不發(fā)生命令或其它信息的編碼;相反,分組僅從一個寬度放大到另一個寬度,只有包尾信息被給予放大的分組的最后flit。
現(xiàn)在參考圖9,示出根據(jù)本發(fā)明的一實施例的soc的一部分的框圖。如圖9所示,ip塊300耦合到網(wǎng)絡(luò)接口330。繼而,在網(wǎng)絡(luò)接口和路由器之間發(fā)生鏈路寬度變化的情況下,網(wǎng)絡(luò)接口330耦合到路由器和/或轉(zhuǎn)換邏輯(例如,上轉(zhuǎn)換和下轉(zhuǎn)換邏輯)。理解,雖然網(wǎng)絡(luò)接口330示出僅耦合到單個ip塊,但在其它情況下,網(wǎng)絡(luò)接口可以耦合到多個ip塊,例如域的多個核或電路的其它部分,例如,配置成在獨立的電壓和/或頻率下工作。
在圖9的高等級圖示中,ip塊300包括ip邏輯310,其可以對應(yīng)于核或其它處理單元。在一些情況下,ip邏輯310可以是要在soc內(nèi)適配的第三方設(shè)計的ip塊。因此,soc供應(yīng)商可以接收包括表示ip邏輯310的數(shù)據(jù)和/或指令的一個或多個數(shù)據(jù)文件。在圖9的高等級視圖中,ip邏輯310耦合到協(xié)議邏輯320。在一實施例中,協(xié)議邏輯320可以充當(dāng)接口以將ip邏輯310連接到網(wǎng)絡(luò)接口330。在所示的具體實現(xiàn)中,協(xié)議邏輯320包括編碼邏輯/解碼邏輯322,其可以響應(yīng)于來自ip邏輯310的信息(例如,事務(wù))的接收將信息編碼為包括報頭部分、命令部分和有效載荷部分的基于分組的格式。
對于本文所述的實施例,編碼邏輯322可以將如上所述的突發(fā)命令編碼到分組的命令部分。繼而,分組生成邏輯324從編碼邏輯322接收各種部分,并由此生成分組。該分組然后可以經(jīng)由網(wǎng)絡(luò)接口330傳送到期望的目的地位置。應(yīng)理解,在接收方向上,從網(wǎng)絡(luò)接口330接收的輸入分組提供到邏輯324的分組解析邏輯部分,其中所述分組可以解析成其組成部分,這些組成部分被提供到邏輯322的解碼邏輯部分,使得這些部分可以被解碼和合適信息提供到ip邏輯310(例如,分組內(nèi)的事務(wù))。應(yīng)理解,雖然在圖9的實施例中以該高等級示出,許多變化和替代方案是可能的。
因為ip塊300及其相關(guān)的網(wǎng)絡(luò)接口可以用與soc的其它部分不同的本地比特寬度操作,所以應(yīng)理解插入在網(wǎng)絡(luò)接口330和路由器或其它目的地之間的可以是本文所述的合適的上轉(zhuǎn)換和/或下轉(zhuǎn)換邏輯。當(dāng)然,在其它實現(xiàn)中,這種轉(zhuǎn)換邏輯可以存在于網(wǎng)絡(luò)接口本身內(nèi),路由器或soc的其它網(wǎng)絡(luò)元件內(nèi),且在某些情況下,這種轉(zhuǎn)換邏輯可能存在于ip塊本身內(nèi)。
現(xiàn)在參考圖10,示出根據(jù)本發(fā)明的一實施例的soc的框圖。如圖10中所示,soc400可以是用于包括在通信設(shè)備例如智能電話、蜂窩電話、平板計算機(jī)等中的soc。在所示的實施例中,soc400包括中央處理單元(cpu)410,其可以是soc的主處理器,且可以包括多個核,例如具有不同功耗水平的混合的多個同構(gòu)和/或異構(gòu)核。繼而,cpu410可以經(jīng)由互連(例如,管芯中互連(idi))耦合到系統(tǒng)代理415。通常,系統(tǒng)代理415可以包括soc的各種非核電路,例如高速緩存存儲器、功率管理電路、接口電路等。
如圖10進(jìn)一步說明的,系統(tǒng)代理415可以耦合到存儲器控制器420,存儲器控制器420繼而耦合到存儲器425,存儲器425在一實施例中可以是soc的內(nèi)部存儲器,例如,在具有其它電路的單個半導(dǎo)體管芯上配置,或存在于單獨管芯上的soc封裝中。在某些情況下,存儲器425可實現(xiàn)為動態(tài)隨機(jī)存取存儲器(dram)。
進(jìn)一步參考圖10,集成設(shè)備430耦合到系統(tǒng)代理415。這種集成設(shè)備可以采取許多不同的形式,但是可以是例如soc制造商或第三方的具體ip塊。仍然參考圖10,調(diào)制解調(diào)器450還耦合到系統(tǒng)代理415。在各種實施例中,調(diào)制解調(diào)器450可以包括多個單獨處理元件,各自配置成處理具體通信協(xié)議例如給定蜂窩通信協(xié)議、無線局域網(wǎng)協(xié)議等的調(diào)制解調(diào)器功能(調(diào)制和解調(diào)功能)。在各種實施例中,調(diào)制解調(diào)器450可以包括noc,其利用本文描述的命令編碼以無縫地實現(xiàn)在調(diào)制解調(diào)器450內(nèi)部和外部的各種部件之間的基于分組的通信,而不在鏈路寬度改變下執(zhí)行重新編碼。
現(xiàn)在參考圖11,示出根據(jù)一實施例的代表性調(diào)制解調(diào)器的框圖。如圖11中所示,調(diào)制解調(diào)器450可以對應(yīng)于圖10的調(diào)制解調(diào)器450。如所看到的,調(diào)制解調(diào)器450本身可以包括可以實現(xiàn)為多個核的cpu部分455。cpu455繼而耦合到noc460,該noc460提供用于在調(diào)制解調(diào)器內(nèi)的各個ip塊之間的交互的通信結(jié)構(gòu)。在所示的圖示中,這些ip塊包括3g加速器465、lte加速器470、2g子系統(tǒng)475、連通性模塊480、系統(tǒng)控制器485和3g配置/ipc模塊490以及l(fā)te配置/ipc模塊495。應(yīng)理解,各種這些ip塊可以用不同的本地比特寬度操作,因此,各自可以通過具體比特寬度的鏈路連接到noc460。為了在該基于分組的系統(tǒng)中實現(xiàn)高效的通信,各種ip塊可以配置成編碼如本文所述的基于分組的通信方案的命令,允許上轉(zhuǎn)換和下轉(zhuǎn)換在noc460中無縫地和低時延、低功率方式出現(xiàn)。應(yīng)理解,雖然在圖11的視圖中以該高等級示出,但許多變化和替代方案是可能的。
應(yīng)理解,包括本文所述的noc的soc(或其它集成電路)可以在許多不同的系統(tǒng)中使用,從小型便攜式設(shè)備到高性能計算系統(tǒng)和網(wǎng)絡(luò)?,F(xiàn)在參考圖12,示出根據(jù)本發(fā)明的一實施例的系統(tǒng)的框圖。在圖12的實施例中,系統(tǒng)900可以是包括多個域的soc,各個域可以被控制以在獨立的操作電壓和操作頻率下操作。注意到這些域各自可以是包括網(wǎng)絡(luò)交換機(jī)且如本文所述互連的異構(gòu)島。作為具體的說明性示例,系統(tǒng)900可以是基于intel?architecturecore?的soc,例如i3、i5、i7或可從intelcorporation獲得的另一種此類處理器。然而,其它低功率soc或處理器(如可從ca的sunnyvale的advancedmicrodevices,inc.(amd)獲得)、來自armholdings,ltd.的基于arm的設(shè)計或其授權(quán)商或來自ca的sunnyvale的mipstechnologiesinc.的基于mlps的設(shè)計或其授權(quán)商或采用者可能替代存在于其它實施例中,例如applea7處理器、qualcommsnapdragon處理器或texasinstrumentsomap處理器。這樣的soc可以在低功率系統(tǒng)例如智能電話、平板計算機(jī)、平板手機(jī)計算機(jī)、ultrabooktm計算機(jī)、lot設(shè)備、可穿戴式或其它便攜式計算設(shè)備中使用。
在圖12中所示的高等級視圖中,soc900包括核單元910,其可以包括一個或多個指令集的一個或多個處理器核(例如,x86指令集(具有已經(jīng)添加較新版本的一些擴(kuò)展);mips指令集;arm指令集(具有可選附加擴(kuò)展,如neon))或其它指令集或其組合。注意到,一些核單元可以是異構(gòu)資源(例如,具有不同設(shè)計)。另外,各個這樣的核可以耦合到高速緩存存儲器(未示出),其在一個實施例中可以是共享級(l2)高速緩存存儲器。非易失性儲存設(shè)備930可以用于存儲各種程序和其它數(shù)據(jù)。例如,該儲存設(shè)備可以用于存儲微代碼的至少一部分、啟動信息例如bios、其它系統(tǒng)軟件等。
核單元910還可以包括接口例如網(wǎng)絡(luò)接口,以實現(xiàn)與soc的附加電路的互連。在一實施例中,核單元910耦合到由管芯上互連形成的一致性結(jié)構(gòu),其實現(xiàn)本文所述的命令編碼,且可以充當(dāng)主高速緩存一致性管芯上互連,該管芯上互連繼而耦合到存儲器控制器935。繼而,存儲器控制器935控制與例如dram的存儲器的通信(圖12中為了便于說明,未示出)。
除了核單元之外,處理器內(nèi)還存在其它處理引擎,包括調(diào)制解調(diào)器915(其可以包括實現(xiàn)所述命令編碼的noc)、至少一個圖形單元920,其可以包括一個或多個圖形處理單元(gpu),以執(zhí)行圖形處理以及可能在圖形處理器上執(zhí)行一般目的操作(所謂的gpgpu操作)。此外,可以存在至少一個圖像信號處理器925。信號處理器925可以配置成處理從soc內(nèi)部或片外的一個或多個捕獲設(shè)備接收的輸入圖像數(shù)據(jù)。
也可以存在其它加速器。如圖12的圖示中,視頻編碼器950可以執(zhí)行包括視頻信息的編碼和解碼的碼處理操作,例如為高分辨率視頻內(nèi)容提供硬件加速支持。還可以提供顯示控制器955以加速顯示操作,包括提供對系統(tǒng)的內(nèi)部和外部顯示的支持。此外,可以存在安全處理器945以執(zhí)行安全操作。各個單元可以具有經(jīng)由功率管理器940控制的其功耗,功率管理器940可以包括執(zhí)行各種功率管理技術(shù)的控制邏輯。
在一些實施例中,soc900還可以包括耦合到一致性結(jié)構(gòu)的非一致性結(jié)構(gòu),各種外圍設(shè)備可以耦合到一致性結(jié)構(gòu)。一個或多個接口960a-960d允許與一個或多個片外設(shè)備通信。這種通信可以根據(jù)各種通信協(xié)議,例如pcietm、gpio、usb、i2c、uart、mipi、sdio、ddr、spi、hdmi等,以及其它類型的通信協(xié)議。雖然在圖12的實施例中以該高等級示出,但應(yīng)理解,本發(fā)明的范圍不限于此。
現(xiàn)在參考圖13,示出可以使用實施例的示例系統(tǒng)的框圖。如所看到的,系統(tǒng)1200可以是智能電話或其它無線通信器?;鶐幚砥?205配置成對要從系統(tǒng)傳送或由系統(tǒng)接收的通信信號執(zhí)行各種信號處理。繼而,除了用戶應(yīng)用例如許多眾所周知的社交媒體和多媒體應(yīng)用之外,基帶處理器1205耦合到應(yīng)用處理器1210,應(yīng)用處理器1210可以是系統(tǒng)的主soc,以執(zhí)行os和其它系統(tǒng)軟件。應(yīng)用處理器1210還可以配置成對設(shè)備執(zhí)行各種其它計算操作,且可以包括使用本文所述的命令編碼的互連結(jié)構(gòu)。
繼而,應(yīng)用處理器1210可以耦合到用戶界面/顯示器1220,例如觸摸屏顯示器。此外,應(yīng)用處理器1210可以耦合到包括非易失性存儲器,即閃存1230和系統(tǒng)存儲器即動態(tài)隨機(jī)存取存儲器(dram)1235的存儲器系統(tǒng)。如進(jìn)一步看到的,應(yīng)用處理器1210進(jìn)一步耦合到捕獲設(shè)備1240,例如可以記錄視頻和/或靜止圖像的一個或多個圖像捕獲設(shè)備。
仍然參考圖13,包括訂戶身份模塊和可能的安全儲存設(shè)備和密碼處理器的通用集成電路卡(uicc)1240也耦合到應(yīng)用處理器1210。系統(tǒng)1200還可以包括可以耦合到應(yīng)用處理器1210的安全處理器1250。多個傳感器1225可以耦合到應(yīng)用處理器1210,以便能夠輸入各種感測信息,例如加速度計和其它環(huán)境信息。音頻輸出設(shè)備1295可以提供接口,例如以語音通信、播放或流播音頻數(shù)據(jù)等形式輸出聲音。
如進(jìn)一步說明的,提供近場通信(nfc)非接觸式接口1260,其經(jīng)由nfc天線1265在nfc近場中通信。雖然在圖13中示出單獨的天線,但應(yīng)理解,在一些實現(xiàn)中,可以提供一個天線或不同的天線組,以實現(xiàn)各種無線功能性。
功率管理集成電路(pmic)1215耦合到應(yīng)用處理器1210以執(zhí)行平臺級功率管理。為此,pmic1215可以向應(yīng)用處理器1210發(fā)出功率管理請求,以根據(jù)需要輸入某些低功率狀態(tài)。此外,基于平臺限制,pmic1215還可以控制系統(tǒng)1200的其它部件的功率水平。
為了能夠傳送和接收通信,各種電路可以在基帶處理器1205和天線1290之間耦合。具體地,可以存在射頻(rf)收發(fā)器1270和無線局域網(wǎng)(wlan)收發(fā)器1275。通常,rf收發(fā)器1270可以用于根據(jù)給定無線通信協(xié)議例如3g或4g無線通信協(xié)議來接收和傳送無線數(shù)據(jù)和呼叫,例如根據(jù)碼分多址(cdma)、全球移動系統(tǒng)通信(gsm)、長期演進(jìn)(lte)或其它協(xié)議。此外,可以存在gps傳感器1280。還可以提供其它無線通信,例如無線電信號(例如am/fm和其它信號)的接收或傳送。此外,經(jīng)由wlan收發(fā)器1275,還可以實現(xiàn)本地?zé)o線通信,例如根據(jù)bluetoothtm標(biāo)準(zhǔn)或ieee802.11標(biāo)準(zhǔn)例如ieee802.11a/b/g/n。
現(xiàn)在參考圖14,示出可以使用實施例的另一示例系統(tǒng)的框圖。在圖14的圖示中,系統(tǒng)1300可以是移動低功率系統(tǒng),例如平板計算機(jī)、2:1平板電腦、平板手機(jī)或其它可轉(zhuǎn)換或獨立平板系統(tǒng)。如所示,存在soc1310且可以配置成作為設(shè)備的應(yīng)用處理器來操作。soc1310可以包括使用本文所述的命令編碼的互連架構(gòu)。
各種設(shè)備可以耦合到soc1310。在所示的圖示中,存儲器子系統(tǒng)包括耦合到soc1310的閃存1340和dram1345。另外,觸摸面板1320耦合到soc1310以提供顯示能力和經(jīng)由觸摸的用戶輸入,包括在觸摸面板1320的顯示器上提供虛擬鍵盤。為了提供有線網(wǎng)絡(luò)連接,soc1310耦合到以太網(wǎng)接口1330。外圍集線器1325耦合到soc1310,以便能夠與各種外圍設(shè)備對接,例如可以通過各種端口或其它連接器中的任一個耦合到系統(tǒng)1300。
除了soc1310內(nèi)的內(nèi)部功率管理電路和功能之外,pmic1380耦合到soc1310以提供基于平臺的功率管理,例如,基于該系統(tǒng)是由電池1390還是經(jīng)由ac適配器1395的ac電源供電。除了該基于電源的功率管理之外,pmic1380還可以基于環(huán)境和使用條件進(jìn)一步執(zhí)行平臺功率管理活動。此外,pmic1380可以將控制和狀態(tài)信息傳遞到soc1310,以引起soc1310內(nèi)的各種功率管理動作。
仍然參考圖14,為了提供無線能力,wlan單元1350耦合到soc1310,并且繼而耦合到天線1355。在各種實現(xiàn)中,wlan單元1350可以提供根據(jù)一種或多種無線協(xié)議的通信,包括ieee802.11協(xié)議、bluetooth?協(xié)議或任何其它無線協(xié)議。
如進(jìn)一步說明的,多個傳感器1360可以耦合到soc1310。這些傳感器可以包括各種加速計、環(huán)境和其它傳感器,包括用戶姿勢傳感器。最后,音頻編解碼器1365耦合到soc1310以提供到音頻輸出設(shè)備1370的接口。當(dāng)然應(yīng)理解,雖然用圖14中的這種具體實現(xiàn)示出,但許多變化和替代方案是可能的。
接下來轉(zhuǎn)到圖15,示出根據(jù)一實施例的soc設(shè)計的實施例。作為具體的說明性示例,soc2000包括在用戶設(shè)備(ue)中。在一個實施例中,ue指由終端用戶使用的任何設(shè)備,例如可穿戴的、手持式電話、智能電話、平板電腦、超薄筆記本、筆記本電腦、lot設(shè)備或任何其它類似設(shè)備。通常,ue連接到基站或節(jié)點,其本質(zhì)上潛在地對應(yīng)于gsm網(wǎng)絡(luò)中的移動站(ms)。
在此,soc2000包括2個核,即2006和2007。與上述討論類似,核2006和2007可以符合指令集架構(gòu),例如基于intel?architecturecore?的處理器、advancedmicrodevices,inc.(amd)處理器、基于mlps的處理器、基于arm的處理器設(shè)計或其客戶,以及其授權(quán)商或采用者。核2006和2007耦合到與總線接口單元2009和l2高速緩存2010相關(guān)的高速緩存控制2008,以與系統(tǒng)2000的其它部分通信。互連2010包括片上互連,且其可以實現(xiàn)本文所述的命令編碼。
互連2010為其它部件提供通信信道,例如啟動rom2035以保持用于由核2006和2007執(zhí)行的用以初始化和啟動soc2000的啟動代碼、sdram控制器2040以與外部存儲器(例如dram2060)對接、閃存控制器2045以與非易失性存儲器(例如,閃存2065)對接、外圍控制器2050(例如串行外圍接口)以與外圍設(shè)備對接、視頻編解碼器2020和視頻接口2025以經(jīng)由mipi或hdmi/dp接口之一顯示和接收輸入(例如,啟用觸摸的輸入)、gpu2015以執(zhí)行圖形相關(guān)計算等。
另外,該系統(tǒng)示出用于通信的外圍設(shè)備,例如藍(lán)牙模塊2070、3g調(diào)制解調(diào)器2075、gps2080和wifi2085。系統(tǒng)中還包括功率控制器2055。
以下示例涉及另外的實施例。
在一個示例中,noc包括:包括至少一個處理元件以對數(shù)據(jù)執(zhí)行操作的ip邏輯;生成要從ip邏輯發(fā)送的事務(wù)的協(xié)議邏輯,以及將分組插入到網(wǎng)絡(luò)中的分組插入邏輯。在一實施例中,協(xié)議邏輯包括:編碼與事務(wù)相關(guān)的分組的命令部分的編碼邏輯,所述命令部分具有獨立于寬度的編碼,且包括指示突發(fā)尺寸的第一字段和指示環(huán)繞邊界以在起始邊界和結(jié)束邊界之間描繪的第二字段;以及用于生成包括報頭部分、命令部分和有效載荷部分的分組的分組生成邏輯。
在一示例中,noc還包括上轉(zhuǎn)換邏輯以接收第一寬度的第二分組,并將所述第二分組上轉(zhuǎn)換到第二寬度,其中上轉(zhuǎn)換邏輯要保持第一分組的命令部分的原始編碼,所述第二寬度大于所述第一寬度。
在一示例中,上轉(zhuǎn)換邏輯要將作為所述第一寬度的多個流控制單元的第二分組的多個流控制單元合并成所述第二寬度的一個或多個流控制單元,且保持所述命令部分的原始編碼。
在一示例中,上轉(zhuǎn)換邏輯包括:接收多個流控制單元的選擇邏輯;控制所述選擇邏輯的控制邏輯;以及耦合到選擇邏輯以存儲所述第二寬度的一個或多個流控制單元的緩沖器。
在一示例中,上述示例中的一個或多個示例的noc還包括下轉(zhuǎn)換邏輯以接收第二寬度的分組,并將分組下轉(zhuǎn)換到第一寬度,其中所述下轉(zhuǎn)換邏輯要保持所述分組的命令部分的原始編碼,所述第二寬度大于所述第一寬度。
在一示例中,下轉(zhuǎn)換邏輯要將作為第二寬度的流控制單元的分組的流控制單元分離成第一寬度的多個流控制單元,且保持所述命令部分的原始編碼。
在一示例中,所述下轉(zhuǎn)換邏輯包括:接收多個流控制單元的選擇邏輯;以及控制所述選擇邏輯的控制邏輯。
在一示例中,所述編碼邏輯還將地址序列類型編碼到命令部分中。
在一示例中,分組可以在從分組插入邏輯傳送到耦合到目的地ip邏輯的目的地網(wǎng)絡(luò)接口中重新分組一次或多次,發(fā)生重新分組,其中保持命令部分的獨立于寬度的編碼。
注意到,可以使用各種方式來實現(xiàn)上述noc。
在一示例中,noc可以在soc中實現(xiàn),繼而并入啟用用戶設(shè)備觸摸的設(shè)備中。
在另一示例中,系統(tǒng)包括顯示器和存儲器,且包括具有上述示例中的一個或多個示例的noc的處理器。
在另一示例中,裝置包括:源代理,其包括執(zhí)行指令的至少一個邏輯單元;編碼分組的突發(fā)命令部分的編碼器,該分組具有指示突發(fā)尺寸的第一字段和指示源代理和目的地代理之一的數(shù)據(jù)寬度的第二字段,其中在分組從源代理到目的地代理傳送期間被尺寸調(diào)整一次或多次時,突發(fā)尺寸和數(shù)據(jù)寬度保持固定;以及傳送包括突發(fā)命令部分的分組的傳送邏輯,其中所述分組還包括數(shù)據(jù)部分。
在一示例中,所述裝置還包括第一路由器,該第一路由器經(jīng)由具有第一鏈路寬度的第一鏈路耦合到源代理且經(jīng)由具有第二鏈路寬度的第二鏈路將所述分組從所述源代理路由到所述目的地代理,所述第一鏈路寬度不同于所述第二鏈路寬度。
在一示例中,所述裝置還包括第一上轉(zhuǎn)換邏輯,以接收第一鏈路寬度的分組和輸出第二鏈路寬度的分組,所述第二鏈路寬度大于所述第一鏈路寬度,其中所述第一上轉(zhuǎn)換邏輯耦合到第一路由器的入口端口,且包括接收第一鏈路寬度的多個流控制單元的選擇邏輯、控制所述選擇邏輯的控制邏輯、以及耦合到所述選擇邏輯以存儲第二鏈路寬度的一個或多個流控制單元的緩沖器。
在一示例中,所述裝置還包括第一下轉(zhuǎn)換邏輯,以接收第二鏈路寬度的分組并輸出第三鏈路寬度的分組,所述第三鏈路寬度小于所述第二鏈路寬度,其中所述第一下轉(zhuǎn)換邏輯耦合到第一路由器的出口部分,且包括接收第二鏈路寬度的至少一個流控制單元的選擇邏輯和控制所述選擇邏輯的控制邏輯。
在一示例中,上述示例之一的編碼器將突發(fā)命令部分編碼為獨立于源代理的本地數(shù)據(jù)寬度。
在一示例中,所述編碼器要根據(jù)網(wǎng)絡(luò)內(nèi)的代理的最小數(shù)據(jù)傳送量編碼第一字段。
在一示例中,所述編碼器將根據(jù)源代理和目的地代理的所選之一的最小數(shù)據(jù)傳送量編碼第一字段。
在另一示例中,一種機(jī)器可讀介質(zhì)具有存儲于其上的數(shù)據(jù),如果由至少一個機(jī)器使用,它使至少一個機(jī)器構(gòu)造至少一個集成電路,以執(zhí)行一種方法,所述方法包括:編碼具有獨立突發(fā)尺寸信息和獨立環(huán)繞邊界信息的分組的命令部分;生成包括報頭部分、命令部分和有效載荷部分的第一寬度的分組;以及將所述分組作為一個或多個流控制單元注入到網(wǎng)絡(luò)中,其中當(dāng)所述分組的寬度在從源代理到目的地代理的通信中被修改一次或多次時,獨立突發(fā)尺寸信息和獨立環(huán)繞邊界信息將不被修改。
在一示例中,所述方法還包括:接收第一寬度的第二分組并將所述第二分組上轉(zhuǎn)換到第二寬度,所述第二寬度大于所述第一寬度,包括將作為所述第一寬度的多個流控制單元的第二分組的多個流控制單元合并成所述第二寬度的一個或多個流控制單元。
在一示例中,所述方法還包括:接收第二寬度的分組并將分組下轉(zhuǎn)換到第一寬度,所述第二寬度大于所述第一寬度,包括將作為所述第二寬度的流控制單元的所述分組的流控制單元分離成第一寬度的多個流控制單元。
在一示例中,所述方法還包括將獨立的環(huán)繞邊界信息編碼為2的冪。
在一示例中,所述方法還包括根據(jù)源代理和目的地代理的所選之一的最小數(shù)據(jù)傳送量編碼獨立的突發(fā)尺寸信息。
在另一示例中,一種計算機(jī)可讀介質(zhì),包括執(zhí)行上述示例的任何一個的方法的指令。
在另一示例中,裝置包括用于執(zhí)行上述示例中任一個的方法的部件。
應(yīng)理解,上述示例的各種組合是可能的。
實施例可以在許多不同類型的系統(tǒng)中使用。例如,在一個實施例中,通信設(shè)備可布置成執(zhí)行本文所述的各種方法和技術(shù)。當(dāng)然,本發(fā)明的范圍不限于通信設(shè)備,而是其它實施例可以涉及用于處理指令的其它類型的裝置,或一個或多個機(jī)器可讀介質(zhì),包括響應(yīng)于在計算設(shè)備上執(zhí)行的指令,使得設(shè)備執(zhí)行本文描述的一種或多種方法和技術(shù)。
實施例可以用代碼實現(xiàn),且可以存儲在其上存儲指令的非暫時性存儲介質(zhì)上,所述指令可用于對系統(tǒng)編程以執(zhí)行指令。實施例還可以用數(shù)據(jù)實現(xiàn),且可以存儲在非暫時性存儲介質(zhì)上,如果由至少一個機(jī)器使用時,其使得至少一個機(jī)器構(gòu)造至少一個集成電路以執(zhí)行一個或多個操作。存儲介質(zhì)可以包括但不限于任何類型的盤,包括軟盤、光盤、固態(tài)驅(qū)動器(ssd)、光盤只讀存儲器(cd-rom)、可重寫光盤(cd-rw)和磁光盤,半導(dǎo)體設(shè)備例如只讀存儲器(rom)、隨機(jī)存取存儲器(ram)(例如動態(tài)隨機(jī)存取存儲器(dram)、靜態(tài)隨機(jī)存取存儲器(sram))、可擦除可編程只讀存儲器(eprom)、閃存、電可擦除可編程只讀存儲器(eeprom)、磁或光卡、或適用于存儲電子指令的任何其它類型的介質(zhì)。
雖然已經(jīng)針對有限數(shù)量的實施例描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解從其的許多修改和變化。所附權(quán)利要求旨在涵蓋落入本發(fā)明的真實精神和范圍內(nèi)的所有這些修改和變化。