專利名稱:多突發(fā)協(xié)議設(shè)備控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及系統(tǒng),并且更具體地,涉及系統(tǒng)中的總線和設(shè)備訪問協(xié)議。
背景技術(shù):
在諸如多主控器片上系統(tǒng)(SoC)的系統(tǒng)中,諸如SRAM或者閃存控制器的從設(shè)備必須正確而有效地支持每一潛在主控器的接口協(xié)議期望。在傳統(tǒng)的基于平臺的設(shè)計中,不同的主控器對于如何終止有錯誤的突發(fā)傳輸具有不同的期望。例如,直接存儲器訪問(DMA)主控器和某些中央處理單元(CPU)期望一旦在任何突發(fā)傳輸?shù)穆蓜?beat)上被通告有錯誤時能夠中斷突發(fā)傳輸,而其它CPU設(shè)計期望盡管在特定律動存在錯誤信令,但是繼續(xù)該突發(fā)。這提出了存儲控制器的問題。傳統(tǒng)的技術(shù)使用高于MAC層(硬件級)的更高級的多個協(xié)議。這樣的技術(shù)并未解決支持總線傳輸或者多主控器協(xié)議的問題。因此希望改善的設(shè)計與實現(xiàn)存儲控制器的技術(shù)。
通過參考附圖可更好地理解本發(fā)明及其對于本領(lǐng)域技術(shù)人員顯而易見的大量目標(biāo)、特征以及優(yōu)勢。在不同的附圖中使用相同的引用標(biāo)記表示類似或相同的項目。
圖1以框圖形式表示根據(jù)本發(fā)明一個實施例的信息處理系統(tǒng)。
圖2以框圖形式表示根據(jù)本發(fā)明一個實施例的圖1系統(tǒng)的控制寄存器。
圖3以表格形式表示根據(jù)本發(fā)明一個實施例的圖2控制寄存器的字段說明。
圖4以流程圖形式表示根據(jù)本發(fā)明一個實施例的利用多突發(fā)協(xié)議處理突發(fā)請求的方法。
圖5以流程圖形式表示根據(jù)本發(fā)明一個實施例的利用多突發(fā)協(xié)議處理硬件描述語言的方法。
具體實施例方式
下面的討論是要提供至少一個本發(fā)明示例的詳細(xì)說明,以幫助本領(lǐng)域技術(shù)人員理解并實施本發(fā)明。由于下面的討論是示例性的,因此不應(yīng)當(dāng)用于限制發(fā)明本身。相反,大量的變形可落入由根據(jù)此處描述的權(quán)利要求所適當(dāng)限定的發(fā)明范圍之內(nèi)。
已經(jīng)公知,可以在硬件級將多個協(xié)議設(shè)計至狀態(tài)機(jī)設(shè)計中,并可基于突發(fā)特性,例如突發(fā)類型、當(dāng)前總線主控器標(biāo)識等,選擇適當(dāng)?shù)膮f(xié)議。例如,這使得從設(shè)備能夠支持多主控器片上系統(tǒng)(SoC)中的多個錯誤協(xié)議,并可基于發(fā)起該傳輸?shù)奶囟ㄖ骺仄饕蕴囟ǚ绞竭x擇性地終止突發(fā)傳輸。可以利用一組輸入配置引腳或者在從設(shè)備或從設(shè)備接口塊(例如,存儲控制器)中提供的可編程寄存器來選擇并控制協(xié)議選擇。在一個實施例中,說明了一種多主控器片上系統(tǒng)(SoC)存儲控制器,該存儲控制器支持每一主控器突發(fā)錯誤協(xié)議。從設(shè)備可通過主控器提供的各種信號或者主控器的外部邏輯識別主控器。每一可能的主控器通常在可編程寄存器中具有控制字段,該字段表明將要采用的適當(dāng)協(xié)議。在一個實施例中,由于握手協(xié)議可以不同,因而這些協(xié)議可被獨(dú)立編程,以進(jìn)行讀突發(fā)和寫突發(fā)。這樣,提供根據(jù)當(dāng)前總線主控器、通過可編程控制寄存器裝置有效選擇總線協(xié)議的機(jī)制,以處理諸如突發(fā)錯誤終止的事件。
圖1表示信息處理系統(tǒng)10的一個實施例。系統(tǒng)10包括各種系統(tǒng)元件,例如互連主控器12、互連主控器14、I/O電路16、外圍設(shè)備18以及其它從設(shè)備20。存儲控制器36和存儲器35代表系統(tǒng)10中的另外的從元件。存儲器35提供共享貯存單元,因為它由多于一個的互連主控器共享。存儲控制器36包括突發(fā)協(xié)議選擇邏輯50、控制寄存器38以及控制邏輯40??刂七壿?0包括終止控制邏輯42與錯誤檢測邏輯44。
系統(tǒng)互連22互連主控器12、主控器14、I/O電路16,外圍設(shè)備18、其它從設(shè)備20以及存儲控制器36。主控器12通過導(dǎo)線48雙向耦合至系統(tǒng)互連22,主控器14通過導(dǎo)線50雙向耦合至系統(tǒng)互連22,I/O電路通過導(dǎo)線52雙向耦合至系統(tǒng)互連22,外圍設(shè)備18通過導(dǎo)線54雙向耦合至系統(tǒng)互連22,其它從設(shè)備20通過導(dǎo)線56雙向耦合至系統(tǒng)互連22,存儲控制器36通過導(dǎo)線24雙向耦合至系統(tǒng)互連22。存儲器35通過導(dǎo)線33雙向耦合至存儲控制器36。
導(dǎo)線24包括各種用于向存儲控制器36傳送存儲器和/或總線訪問信息的導(dǎo)線。在示出的實施例中,這樣的信息包括主控器標(biāo)識符26、地址/數(shù)據(jù)27、R/W信號28、突發(fā)類型信號30、指令/數(shù)據(jù)信號32、錯誤信號37以及其它信號34。對于每一存儲器35的訪問實例(突發(fā)訪問),這種信息中的一些或全部可由主控器12或主控器14或者其它設(shè)備發(fā)送至存儲控制器36。對于每一類型的存儲器訪問信息,不必提供特定的物理導(dǎo)線。可以串行地或者以其它形式發(fā)送這樣的信息。
在操作中,主控器12和14請求系統(tǒng)互連22的訪問,以請求對于其它從設(shè)備20,對于外圍設(shè)備18或者通過存儲控制器36對于存儲器35的訪問。請求主控器可通過系統(tǒng)互連22向存儲控制器36提出訪問請求。該訪問請求可以是,例如,數(shù)據(jù)或指令的讀請求或者寫請求。該訪問可以是突發(fā)訪問,其中多律動讀或者寫傳輸一組數(shù)據(jù)塊。或者,非突發(fā)類型的訪問可包括單律動讀或者寫。存儲控制器36響應(yīng)于讀訪問請求,通過系統(tǒng)互連22將被請求的信息(數(shù)據(jù)或者指令)提供回至請求主控器。
主控器標(biāo)識符26被提供至存儲控制器36,該標(biāo)識符標(biāo)識哪個主控器正在請求當(dāng)前的訪問。存儲控制器36通過處理主控器標(biāo)識符26確定哪個主控器請求了突發(fā)訪問。例如,主控器12可具有標(biāo)識符0,而主控器14可具有標(biāo)識符1。因此,可向每一主控器分配唯一的標(biāo)識符。在替換實施例中,一些主控器可共享相同的標(biāo)識符。從而,該標(biāo)識符可將一類主控器標(biāo)識為唯一可標(biāo)識的主控器。另外,注意在替換實施例中,除了通過提供諸如主控器標(biāo)識符26的信號外,可通過多種方式確定請求訪問的主控器的標(biāo)識。
當(dāng)前訪問請求是讀還是寫訪問類型的指示通過R/W信號28被傳送至存儲控制器36(以及,例如,下面討論的控制邏輯40)。
通過突發(fā)類型信號30將突發(fā)類型提供至存儲控制器36。該突發(fā)類型信號表明當(dāng)前訪問為突發(fā)類型訪問還是非突發(fā)類型訪問。如果訪問是突發(fā)請求,那么突發(fā)信號30還表明突發(fā)請求的類型。例如,突發(fā)類型信號30可表示突發(fā)訪問是受限訪問還是非受限訪問?;蛘撸话l(fā)類型信號30還可表示突發(fā)訪問是遞增突發(fā)類型還是回繞突發(fā)類型。突發(fā)數(shù)據(jù)傳輸可以受限并且是預(yù)定的長度,或者非受限,在該突發(fā)內(nèi)具有動態(tài)確定的律動次數(shù)。非受限突發(fā)還稱為長度非受限突發(fā)。受限突發(fā)還稱為固定長度突發(fā)。在一個實施例中,信息處理系統(tǒng)10支持突發(fā)傳輸內(nèi)的4、8或者16個律動的受限突發(fā)。其它實施例可支持其它預(yù)定長度的受限突發(fā)。
存儲控制器36還接收對應(yīng)于當(dāng)前訪問請求的地址信息,并且通過地址/數(shù)據(jù)27提供被請求的信息。向存儲控制器36提供指令/數(shù)據(jù)信號32,以表示當(dāng)前訪問請求是針對指令還是數(shù)據(jù)。在其它信號34中可提供用于向和從存儲控制器36傳送信息所需的其它信號。
在存儲控制器36中,耦合突發(fā)協(xié)議選擇邏輯50以從突發(fā)控制信息源接收突發(fā)控制信息。在示出的實施例中,從控制寄存器38和配置引腳39中的至少一個提供突發(fā)控制信息。耦合突發(fā)協(xié)議選擇邏輯50,以根據(jù)突發(fā)控制信息向控制邏輯40提供突發(fā)協(xié)議選擇信息??刂七壿嬂猛话l(fā)協(xié)議選擇信息進(jìn)行對于存儲器35的突發(fā)請求處理。例如,在所示實施例中,終止控制邏輯42響應(yīng)于錯誤檢測邏輯44檢測到錯誤,根據(jù)突發(fā)協(xié)議選擇信息控制存儲器35的突發(fā)請求的終止。
不同類型的突發(fā)協(xié)議可由不同類型的突發(fā)特性觸發(fā),這些特性包括,例如,哪一主控器正在請求訪問,該訪問請求是否為突發(fā)訪問的一部分,該突發(fā)請求是受限、非受限、遞增或者回繞。因此,根據(jù)主控器標(biāo)識符26的值、R/W信號38以及對應(yīng)于當(dāng)前訪問請求(即,當(dāng)前突發(fā)請求)的突發(fā)類型信號30,并且根據(jù)控制寄存器38(和/或配置引腳39),突發(fā)協(xié)議選擇邏輯50確定由當(dāng)前訪問請求觸發(fā)的突發(fā)操作和伴隨其出現(xiàn)的錯誤狀況。
圖2表示控制寄存器38的一個實施例,該控制寄存器包括多個字段,為每一主控器存儲諸如突發(fā)讀錯誤(BRE)終止控制字段和突發(fā)寫錯誤(BWE)終止字段的突發(fā)請求控制信息。如圖2所示,控制寄存器38包括主控器12BRE終止字段60、主控器14BRE終止字段62、主控器12BWE終止字段64以及主控器14BWE終止字段66。因此在替換實施例中,控制寄存器38可按照需要包括更多或者更少的字段,以存儲希望的突發(fā)控制信息。還要注意,可通過來自諸如耦合至系統(tǒng)互連22的主控器12或14的主控器的指令,編程控制寄存器38??赏ㄟ^例如用戶提供這些值,或者可在設(shè)計時編程這些值。
圖3表示圖2控制寄存器38的字段定義的一個實施例。例如在一個實施例中,字段60、62、64以及66中的每一個是兩位字段,每一字段能夠具有4個值(00,01,10和11)。如圖3中所示,字段60、62、64以及66包括提供協(xié)議的主控器專用控制的信息,用于當(dāng)出現(xiàn)突發(fā)讀或者寫錯誤時終止突發(fā)請求。
在圖3的示例中,BRE字段60和62中的每一個是兩位字段,其中值00表示當(dāng)出現(xiàn)突發(fā)讀錯誤時不采取動作。例如,如果主控器12BRE字段60被設(shè)置為00,那么來自主控器12的突發(fā)讀請求的處理繼續(xù),不受錯誤的影響,并且允許完成該讀突發(fā)的其余律動。類似地,如果主控器14BRE字段62被設(shè)置為00,那么對應(yīng)于來自主控器14的突發(fā)讀的突發(fā)讀錯誤不觸發(fā)錯誤處理,例如突發(fā)終止。
BRE字段60和62的值01表示當(dāng)在數(shù)據(jù)傳輸期間出現(xiàn)突發(fā)讀錯誤時中斷該讀突發(fā)。例如,如果主控器12BRE字段60被設(shè)置為01,那么來自主控器12的突發(fā)讀請求處理被該錯誤終止,并且不允許完成該讀突發(fā)的其余律動。類似地,如果主控器14BRE字段62被設(shè)置為01,并且錯誤出現(xiàn),那么突發(fā)終止錯誤處理由對應(yīng)于來自主控器14的突發(fā)讀的突發(fā)讀錯誤觸發(fā)。
BRE字段60和62的值10表示當(dāng)在第一傳輸律動(關(guān)鍵字)期間出現(xiàn)突發(fā)讀錯誤時中斷該讀突發(fā)。例如,如果主控器12BRE字段60被設(shè)置為10,那么如果在向主控器12的第一傳輸律動期間出現(xiàn)錯誤,則由該錯誤終止來自主控器12的突發(fā)讀請求處理,并且不允許完成該讀突發(fā)的其余律動。該突發(fā)中第一律動之后的其它錯誤并不引起讀突發(fā)終止。如果相同的錯誤出現(xiàn)于向主控器12的第一傳輸律動之后,那么允許完成該讀突發(fā)的其余律動。同樣作為示例,如果主控器14BRE字段62被設(shè)置為10,并且在涉及主控器14的突發(fā)讀期間在第一律動(關(guān)鍵字)上出現(xiàn)錯誤,那么觸發(fā)突發(fā)終止錯誤處理;如果主控器14BRE字段62被設(shè)置為10,并且在關(guān)鍵字之后出現(xiàn)錯誤,那么不觸發(fā)突發(fā)終止錯誤處理。
BRE字段60和62的值11表示在非限定長度讀突發(fā)期間出現(xiàn)的錯誤導(dǎo)致該讀突發(fā)終止,而在限定長度讀突發(fā)期間出現(xiàn)的錯誤不導(dǎo)致終止。例如,如果主控器12BRE字段60被設(shè)置為11,那么如果突發(fā)類型(例如,由突發(fā)類型信號30表示)是非限定長度突發(fā)請求,則由該錯誤終止來自主控器12的突發(fā)讀請求處理。在這樣的情況下,不允許完成該讀突發(fā)的其余律動。類似地,如果主控器14BRE字段62被設(shè)置為11,并且出現(xiàn)錯誤,那么如果突發(fā)類型表示來自主控器14的非限定長度讀突發(fā),則觸發(fā)突發(fā)終止錯誤處理。
因此,可以根據(jù)BRE字段60和62確定并且控制由來自主控器12或14的突發(fā)訪問請求觸發(fā)的存儲器35的突發(fā)操作。當(dāng)主控器12與主控器14需要或者希望不同的突發(fā)處理協(xié)議時,字段60可保持與字段62不同的值。
BWE字段64和66中的每一個是兩位字段,其中值00表示當(dāng)出現(xiàn)突發(fā)寫錯誤時不采取動作。例如,如果主控器12BWE字段64被設(shè)置為00,那么主控器12的寫突發(fā)請求的處理繼續(xù),不受錯誤的影響,并且允許完成該寫突發(fā)的其余律動。類似地,如果主控器14BWE字段66被設(shè)置為00,那么對應(yīng)于來自主控器14的突發(fā)寫的突發(fā)寫錯誤不觸發(fā)錯誤處理,例如突發(fā)終止。
BWE字段64和66的值01表示當(dāng)在數(shù)據(jù)傳輸期間出現(xiàn)突發(fā)寫錯誤時中斷該寫突發(fā)。例如,如果主控器12BWE字段64被設(shè)置為01,那么主控器12的寫突發(fā)請求處理被該錯誤終止,并且不允許完成該寫突發(fā)的其余律動。類似地,如果主控器14BWE字段66被設(shè)置為01,并且錯誤出現(xiàn),那么突發(fā)終止錯誤處理由對應(yīng)于來自主控器14的突發(fā)寫的突發(fā)寫錯誤觸發(fā)。
BWE字段64和66的值10表示當(dāng)在第一傳輸律動(關(guān)鍵字)期間出現(xiàn)突發(fā)寫錯誤時中斷該寫突發(fā)。例如,如果主控器12BWE字段64被設(shè)置為10,那么如果在向主控器12的第一傳輸律動期間出現(xiàn)錯誤,則由該錯誤終止主控器12的寫突發(fā)請求處理,并且不允許完成該寫突發(fā)的其余律動。其它錯誤并不引起寫突發(fā)終止。如果相同的錯誤出現(xiàn)于向主控器12的第一傳輸律動之后,那么允許完成該寫突發(fā)的其余律動。同樣作為示例,如果主控器14BRE字段66被設(shè)置為10,并且在涉及主控器14的關(guān)鍵字傳輸期間出現(xiàn)錯誤,那么觸發(fā)突發(fā)終止錯誤處理;如果主控器14BWE字段66被設(shè)置為10,并且在第一律動(關(guān)鍵字)之后出現(xiàn)錯誤,那么不觸發(fā)突發(fā)終止錯誤處理。
BWE字段64和66的值11表示在非限定長度寫突發(fā)期間出現(xiàn)的錯誤導(dǎo)致該寫突發(fā)終止,而在限定長度寫突發(fā)期間出現(xiàn)的錯誤不導(dǎo)致終止。例如,如果主控器12BWE字段64被設(shè)置為11,那么如果突發(fā)類型(例如,由突發(fā)類型信號30表示)是非限定長度突發(fā)請求,則由該錯誤終止來自主控器12的突發(fā)寫請求處理。在這樣的情況下,不允許完成該寫突發(fā)的其余律動。類似地,如果主控器14BWE字段66被設(shè)置為11,并且出現(xiàn)錯誤,那么如果突發(fā)類型表示來自主控器14的非限定長度寫突發(fā),則觸發(fā)突發(fā)終止錯誤處理。
因此,可以根據(jù)BWE字段64和66、突發(fā)類型信號30以及主控器標(biāo)識符信號26確定并且控制通過主控器12或14觸發(fā)的存儲器35的突發(fā)操作。當(dāng)主控器12與主控器14需要或者希望不同的突發(fā)處理協(xié)議時,字段64可保持與字段66不同的值。當(dāng)主控器12對于讀突發(fā)和寫突發(fā)要求或者希望不同的突發(fā)處理協(xié)議時,字段60與字段64可保存不同的值,而當(dāng)主控器14對于讀突發(fā)和寫突發(fā)要求或者希望不同的突發(fā)處理協(xié)議時,字段62與字段66可保存不同的值。
圖4以流程圖形式表示根據(jù)本發(fā)明一個實施例的系統(tǒng)10的操作。流程開始于接收到突發(fā)請求操作72,這時接收到來自主控器的突發(fā)請求。此突發(fā)請求可以是多種不同類型的請求,例如讀請求、寫請求、數(shù)據(jù)請求、指令請求等。
接收到突發(fā)請求之后,在確定突發(fā)特性操作74期間確定接收的突發(fā)請求的突發(fā)特性。例如,確定請求主機(jī)的標(biāo)識。通過處理與接收的突發(fā)請求相關(guān)聯(lián)的主控器標(biāo)識符26完成這一操作。作為另一示例,除了或者代替確定主控器標(biāo)識,確定突發(fā)請求的類型。通過處理與接收的突發(fā)請求相關(guān)聯(lián)的突發(fā)類型信號30完成這一操作。
在確定突發(fā)特性之后,在選擇突發(fā)協(xié)議操作78期間選擇多個突發(fā)協(xié)議之一。在圖3中說明示例突發(fā)協(xié)議。這些協(xié)議取決于確定的突發(fā)特性。在圖3的情況下,突發(fā)特性對應(yīng)于請求主控器的標(biāo)識。不同的主控器可導(dǎo)致控制寄存器38的不同設(shè)置,并且甚至可導(dǎo)致這些設(shè)置的不同結(jié)果。確定突發(fā)協(xié)議最終效果的其它因素包括突發(fā)的性質(zhì)(例如,是否受限)??梢詾椴煌愋偷耐话l(fā)訪問設(shè)置不同的效果(在此情況下是終止過程),如圖3所示??梢酝ㄟ^控制寄存器38、配置引腳39或者一些其它裝置提供總線協(xié)議信息選擇的設(shè)置。注意在替換實施例中,主控器可共享一組公共的協(xié)議控制指示符。
在選擇協(xié)議操作78期間選擇突發(fā)協(xié)議之后,存儲控制器36根據(jù)所選的突發(fā)協(xié)議響應(yīng)突發(fā)請求。這種響應(yīng)的示例在上面參考圖3提供。
在一個實施例中,在電路設(shè)計期間進(jìn)行突發(fā)協(xié)議的選擇。例如參考圖5,可處理控制器的硬件描述語言(HDL)表示,以選擇并實現(xiàn)多個突發(fā)協(xié)議中的一個或多個。在提供突發(fā)可參數(shù)化HDL操作82處,提供表示控制器的HDL代碼,可利用不同的突發(fā)協(xié)議對該控制器進(jìn)行編程。一旦提供了突發(fā)可參數(shù)化HDL,就在提供突發(fā)參數(shù)操作84期間向HDL輸入突發(fā)協(xié)議,并且在評估突發(fā)協(xié)議參數(shù)操作86處評估該突發(fā)參數(shù)化的HDL。
根據(jù)評估操作86的輸出,第一值產(chǎn)生并且控制轉(zhuǎn)至生成第一HDL操作88,或者第二值產(chǎn)生并且控制轉(zhuǎn)至生成第二值HDL操作90。在生成第一HDL操作88期間,生成對應(yīng)于根據(jù)第一突發(fā)協(xié)議配置操作的控制器的第一HDL描述。在生成第二HDL操作90期間,生成對應(yīng)于根據(jù)第二突發(fā)協(xié)議配置操作的控制器的第二HDL描述。其它結(jié)果可導(dǎo)致其它類型的突發(fā)協(xié)議在生成的HDL中實現(xiàn)。可使用迭代過程評估和實現(xiàn)(以HDL形式)各種突發(fā)協(xié)議,直到對于最終的HDL實現(xiàn)選擇最終的突發(fā)協(xié)議。
一旦生成最終的HDL描述(例如,在生成HDL操作88或者99期間),那么在操作92期間利用最終生成的HDL描述最終設(shè)計或者形成控制器。
因此,可以明白如何根據(jù)各種類型的突發(fā)特性,觸發(fā)諸如錯誤處理的突發(fā)操作,使得系統(tǒng)更加靈活、性能得以提高并且系統(tǒng)設(shè)計更加有效。此處說明的實施例可用于以多種不同的方式并在各種不同的應(yīng)用中控制突發(fā)請求。
例如,在一個實施例中,一種方法包括以下步驟接收來自主控器的突發(fā)請求;確定對應(yīng)于所請求的突發(fā)的突發(fā)特性;根據(jù)突發(fā)特性選擇多個突發(fā)錯誤協(xié)議之一;以及根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)突發(fā)請求。
在另一實施例中,確定突發(fā)特性的步驟包括確定對應(yīng)于所請求的突發(fā)確定突發(fā)類型,以及根據(jù)該確定的突發(fā)類型選擇所選的突發(fā)錯誤協(xié)議。突發(fā)類型可以是讀突發(fā)類型或者寫突發(fā)類型。該突發(fā)類型可包括受限突發(fā)類型或者非受限突發(fā)類型。突發(fā)類型可包括遞增突發(fā)類型或者回繞突發(fā)類型。
在另一實施例中,確定突發(fā)特性的步驟包括對應(yīng)于所請求的突發(fā)確定主控器的標(biāo)識,以及根據(jù)該主控器的標(biāo)識選擇所選的突發(fā)錯誤協(xié)議。
在另一實施例中,根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)突發(fā)請求的步驟包括發(fā)起突發(fā)傳輸,在突發(fā)傳輸期間檢測錯誤,以及根據(jù)所選的突發(fā)錯誤協(xié)議選擇性地終止該突發(fā)傳輸。
在另一實施例中,存儲控制器包括突發(fā)協(xié)議選擇邏輯和控制邏輯。突發(fā)協(xié)議選擇邏輯確定至少一個對應(yīng)于所請求的突發(fā)傳輸?shù)耐话l(fā)特性,并且根據(jù)至少一個突發(fā)特性選擇突發(fā)錯誤協(xié)議??刂七壿嫳获詈现镣话l(fā)協(xié)議選擇邏輯??刂七壿嫺鶕?jù)所選的突發(fā)錯誤協(xié)議響應(yīng)所請求的突發(fā)。
在另一實施例中,控制邏輯響應(yīng)于所請求的突發(fā)發(fā)起被請求的突發(fā)傳輸。在此實施例中,存儲控制器進(jìn)一步包括錯誤檢測邏輯和終止控制邏輯。錯誤檢測邏輯包括在被請求的突發(fā)傳輸期間檢測錯誤。終止控制邏輯根據(jù)由突發(fā)協(xié)議選擇邏輯提供的所選的突發(fā)錯誤協(xié)議終止被請求的突發(fā)傳輸。
在另一實施例中,存儲控制器耦合至突發(fā)協(xié)議選擇邏輯的控制寄存器。突發(fā)協(xié)議選擇邏輯根據(jù)至少一個突發(fā)特性和存儲在控制寄存器中的信息選擇突發(fā)錯誤協(xié)議。在又一實施例中,存儲在控制寄存器中的信息表示多個突發(fā)錯誤協(xié)議,并且突發(fā)協(xié)議選擇邏輯從多個突發(fā)錯誤協(xié)議中選擇突發(fā)錯誤協(xié)議。在又一實施例中,多個突發(fā)錯誤協(xié)議的每一個對應(yīng)于一種突發(fā)類型,突發(fā)類型包括讀突發(fā)類型、寫突發(fā)類型、受限突發(fā)類型以及非受限突發(fā)類型中的至少一種。在又一實施例中,至少一個突發(fā)特性包括被請求的突發(fā)傳輸?shù)耐话l(fā)類型。
在另一實施例中,存儲控制器可配置為與多個主控器進(jìn)行通信。多個突發(fā)錯誤協(xié)議的每一個對應(yīng)于多個主控器中的主控器。在又一實施例中,至少一個突發(fā)特性包括請求該被請求的突發(fā)傳輸?shù)闹骺仄鞯臉?biāo)識符。
在另一實施例中,突發(fā)協(xié)議選擇邏輯根據(jù)至少一個突發(fā)特性和通過配置輸入提供的信息選擇突發(fā)錯誤協(xié)議。在另一實施例中,通過配置輸入提供的信息向突發(fā)協(xié)議選擇邏輯指示突發(fā)錯誤協(xié)議。
在又一實施例中,存儲控制器在硬件中實現(xiàn)。在另一實施例中,存儲控制器在軟件中實現(xiàn),該軟件編碼在計算機(jī)可讀介質(zhì)上。
在另一實施例中,存儲控制器包括從主控器接收突發(fā)請求的裝置;對應(yīng)于所請求的突發(fā)確定突發(fā)特性的裝置;根據(jù)突發(fā)特性選擇多個突發(fā)錯誤協(xié)議之一的裝置;以及根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)突發(fā)請求的裝置。
在另一實施例中,確定突發(fā)特性的裝置包括確定對應(yīng)于所請求的突發(fā)的突發(fā)類型的裝置。根據(jù)該突發(fā)類型選擇所選的突發(fā)錯誤協(xié)議。在又一實施例中,突發(fā)類型包括讀突發(fā)類型、寫突發(fā)類型、受限突發(fā)類型、非受限突發(fā)類型、遞增突發(fā)類型以及回繞突發(fā)類型中的至少一個。
在另一實施例中,確定突發(fā)特性的裝置包括確定對應(yīng)于所請求的突發(fā)的主控器的標(biāo)識的裝置,并且其中根據(jù)該主控器的標(biāo)識選擇所選的突發(fā)錯誤協(xié)議。
在又一實施例中,根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)突發(fā)請求的裝置包括發(fā)起突發(fā)傳輸?shù)难b置;在突發(fā)傳輸期間檢測錯誤的裝置;以及根據(jù)所選的突發(fā)錯誤協(xié)議選擇性地終止突發(fā)傳輸?shù)难b置。
在另一實施例中,從主控器(例如,在包括主控器的信息處理系統(tǒng)中)接收突發(fā)請求。確定所請求的突發(fā)類型。該突發(fā)類型包括讀突發(fā)類型和寫突發(fā)類型之一。根據(jù)該突發(fā)類型選擇多個突發(fā)協(xié)議之一。根據(jù)所選的突發(fā)協(xié)議響應(yīng)該突發(fā)請求。在又一實施例中,確定對應(yīng)于所請求的突發(fā)的主控器的標(biāo)識。根據(jù)突發(fā)類型和對應(yīng)于所請求的突發(fā)的主控器的標(biāo)識選擇所選的突發(fā)協(xié)議。
在另一實施例中,存儲控制器包括突發(fā)協(xié)議選擇邏輯和耦合至突發(fā)協(xié)議選擇邏輯的控制邏輯。突發(fā)協(xié)議選擇邏輯確定對應(yīng)于被請求的突發(fā)傳輸?shù)耐话l(fā)類型,并且根據(jù)該突發(fā)類型選擇突發(fā)協(xié)議。突發(fā)類型包括讀突發(fā)類型和寫突發(fā)類型之一??刂七壿嫺鶕?jù)所選的突發(fā)協(xié)議響應(yīng)所請求的突發(fā)。存儲控制器可在硬件或者軟件中實現(xiàn)。
在另一實施例中,存儲控制器還包括耦合至突發(fā)協(xié)議選擇邏輯的控制寄存器。突發(fā)協(xié)議選擇邏輯根據(jù)突發(fā)類型和存儲在控制寄存器中信息選擇突發(fā)協(xié)議。在又一實施例中,存儲在控制寄存器中的信息指示多個突發(fā)協(xié)議。突發(fā)協(xié)議選擇邏輯從多個突發(fā)協(xié)議選擇突發(fā)協(xié)議。
在另一實施例中,一種方法包括以下步驟接收來自主控器的突發(fā)請求;確定對應(yīng)于所請求的主控器的標(biāo)識;根據(jù)對應(yīng)于所請求的突發(fā)的主控器的標(biāo)識選擇多個突發(fā)錯誤協(xié)議之一;以及根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)突發(fā)請求。
在另一實施例中,存儲控制器可配置為與多個主控器進(jìn)行通信。該存儲控制器包括突發(fā)協(xié)議選擇邏輯和耦合至該突發(fā)協(xié)議選擇邏輯的控制邏輯。突發(fā)協(xié)議選擇邏輯確定對應(yīng)于被請求的突發(fā)傳輸?shù)亩鄠€主控器之一的標(biāo)識,并且根據(jù)該多個主控器之一的標(biāo)識選擇突發(fā)錯誤協(xié)議??刂七壿嫺鶕?jù)所選的突發(fā)錯誤協(xié)議響應(yīng)所請求的突發(fā)。該存儲控制器可在硬件或者軟件中實現(xiàn)。
在另一實施例中,存儲控制器還包括耦合至突發(fā)協(xié)議選擇邏輯的控制寄存器。突發(fā)協(xié)議選擇邏輯根據(jù)多個主控器之一的標(biāo)識和存儲在控制寄存器中的信息選擇突發(fā)協(xié)議。在另一實施例中,存儲在控制寄存器中的信息指示多個突發(fā)協(xié)議。每一協(xié)議對應(yīng)于多個主控器的主控器。突發(fā)協(xié)議選擇邏輯從多個突發(fā)協(xié)議選擇突發(fā)協(xié)議。
在另一實施例中,一種方法包括以下步驟提供突發(fā)可參數(shù)化硬件描述語言(HDL)描述;提供突發(fā)協(xié)議參數(shù)作為突發(fā)可參數(shù)化HDL描述的輸入;當(dāng)突發(fā)協(xié)議參數(shù)具有第一值時,生成對應(yīng)于根據(jù)第一突發(fā)協(xié)議配置操作的存儲控制器的第一HDL描述;當(dāng)突發(fā)協(xié)議參數(shù)具有第二值時,生成對應(yīng)于根據(jù)第二突發(fā)協(xié)議配置操作的存儲控制器的第二HDL描述。
在另一實施例中,第一突發(fā)協(xié)議和第二突發(fā)協(xié)議是不同的突發(fā)協(xié)議。在另一實施例中,第一突發(fā)協(xié)議和第二突發(fā)協(xié)議中的每一個表示是否響應(yīng)于在突發(fā)傳輸期間檢測到錯誤而終止突發(fā)傳輸。
在另一實施例中,該方法包括利用生成的第一和第二HDL描述之一設(shè)計存儲控制器的步驟。在另一實施例中,該方法包括利用生成的第一和第二HDL描述之一制造存儲控制器的步驟。
在另一實施例中,在計算機(jī)可讀介質(zhì)上編碼的突發(fā)可參數(shù)化HDL描述包括用于接收突發(fā)協(xié)議參數(shù)的第一指令集,當(dāng)突發(fā)協(xié)議參數(shù)具有第一值時用于生成第一存儲控制器的第二指令集以及當(dāng)突發(fā)協(xié)議參數(shù)具有第二值時用于生成第二存儲控制器的第三指令集。第一存儲控制器模型對應(yīng)于根據(jù)第一突發(fā)協(xié)議進(jìn)行操作的存儲控制器,而第二存儲控制器模型對應(yīng)于根據(jù)第二突發(fā)協(xié)議進(jìn)行操作的存儲控制器。
在另一實施例中,第一突發(fā)協(xié)議與第二突發(fā)協(xié)議是不同的突發(fā)協(xié)議。在又一實施例中,第一突發(fā)協(xié)議與第二突發(fā)協(xié)議的每一個指示是否響應(yīng)于在突發(fā)傳輸期間檢測到錯誤而終止突發(fā)傳輸。
在適當(dāng)時,可以利用不同的信息處理系統(tǒng)實現(xiàn)上面實施例中的一些。例如,盡管圖1及其討論說明了示例信息處理結(jié)構(gòu),但提出該示例結(jié)構(gòu)僅用于在討論本發(fā)明的各個方面時提供有用的參考。當(dāng)然,處于討論的目的,已經(jīng)簡化了該結(jié)構(gòu)的說明,并且它僅僅是可根據(jù)本發(fā)明使用的多種不同類型的適當(dāng)結(jié)構(gòu)之一。本領(lǐng)域的技術(shù)人員明白,邏輯塊之間的邊界僅僅是示例性的,而且替換實施例可合并邏輯塊或電路元件或者在各個邏輯塊或電路元件上施加功能的替代分解。
從而可以理解,此處描述的結(jié)構(gòu)僅為示例,并且實際上可實現(xiàn)許多達(dá)到相同功能的其它結(jié)構(gòu)。簡明地說,實現(xiàn)相同功能的部件的任意布置是有效“關(guān)聯(lián)”,從而實現(xiàn)希望的功能。因此,此處合并起來實現(xiàn)特定功能的任何兩個部件可被視為彼此“關(guān)聯(lián)”,從而實現(xiàn)希望的功能,而與結(jié)構(gòu)或者中間部件無關(guān)。類似地,如此關(guān)聯(lián)的任何兩個部件可被視為彼此“操作連接”或者“操作耦合”,以實現(xiàn)希望的功能。
另外例如,在一個實施例中,系統(tǒng)10的所示元件是位于集成電路上或者同一設(shè)備內(nèi)的電路。或者,系統(tǒng)10可包括任意數(shù)量的彼此互連的分離集成電路或者分離設(shè)備。例如,存儲器35可與主控器12和14位于相同的集成電路上,或者位于分離的集成電路上,或者位于與系統(tǒng)10的其它元件分離的另一外圍設(shè)備或者從設(shè)備內(nèi)。另外例如,系統(tǒng)10或其部分可為軟件或者物理電路的代碼表示,或者是可轉(zhuǎn)換為物理電路的邏輯表示。這樣,系統(tǒng)10可嵌入至任何適當(dāng)類型的硬件描述語言。
此外,系統(tǒng)10的各種元件代表它們更通常的類別。例如,總線主控器12和總線主控器14可以是能夠執(zhí)行指令的處理器,例如微處理器、處理器內(nèi)核、數(shù)字信號處理器或者任何其它類型的互連主控器,例如直接存儲器訪問(DMA)電路或者調(diào)試電路。外圍設(shè)備18可以是任何類型的外圍設(shè)備,例如通用異步收發(fā)機(jī)(UART)、實時時鐘(RTC)、鍵盤控制器。注意,其它從設(shè)備20可包括任何類型的互連從設(shè)備,例如,可由主控器12和14訪問的存儲器,以及駐留于系統(tǒng)總線上的任何類型的外圍設(shè)備等,包括與外圍設(shè)備18相同類型的外圍設(shè)備。I/O電路16可包括接收或提供系統(tǒng)10外部信息的任何類型的I/O電路。存儲器35可以是任何類型的計算機(jī)可讀介質(zhì),例如只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、非易失性存儲器(例如,閃速存儲器)、磁RAM(MRAM)等。因為除非另外說明,此處使用任何特定范例通常是要代表其類別,所以在任何特定示例列表中沒有包括的任何特定設(shè)備不應(yīng)當(dāng)作為表示希望進(jìn)行限制的表示。
系統(tǒng)互連22可實現(xiàn)為根據(jù)系統(tǒng)總線協(xié)議操作的系統(tǒng)總線,或者利用互連電路實現(xiàn),例如開關(guān)電路,該互連電路在各種設(shè)備間路由信息。此處使用的術(shù)語“總線”用于指多個信號或者導(dǎo)線,它們可用于傳輸一個或多個各種類型的信息,例如數(shù)據(jù)、地址、控制或者狀態(tài)。可以將此處討論的導(dǎo)線解釋或者說明為單個導(dǎo)線、多個導(dǎo)線、單向?qū)Ь€或者雙向?qū)Ь€。然而,不同的實施例可改變導(dǎo)線的實現(xiàn)方式。例如,可以使用分離的單向?qū)Ь€,而不是雙向?qū)Ь€,反之亦然。另外,可用串行或者以時間復(fù)用方式傳輸多個信號的單個導(dǎo)線代替多個導(dǎo)線。類似地,承載多個信號的單個導(dǎo)線可被分離為承載這些信號的子集的各種不同導(dǎo)線。因此,對于傳輸信號存在很多選擇。
替換實施例可合并特定部件的多個實例。例如,在上述實施例中,在圖1中說明了單個導(dǎo)線18。在一個實施例中,系統(tǒng)10可包括耦合至系統(tǒng)互連22的任意數(shù)量的外圍設(shè)備。類似地,任意數(shù)量的主控器和從設(shè)備可耦合至系統(tǒng)互連22,并且不限于圖1中示出的那些。存儲器35可包括各種類型的任意數(shù)量的存儲器件。
在替換實施例中,控制寄存器38針對每一主控器可包括具有更多或更少位的更多或更少字段。另外,作為示例在提供圖3中所示的控制字段38的字段設(shè)置。替換實施例可根據(jù)與圖3中所提供的不同屬性、比圖3更多的屬性以及圖3中屬性的子集確定錯誤響應(yīng)。還要注意,在替換實施例中,除了圖1中所示的信號26、28以及30之外,當(dāng)前訪問請求的特定屬性可以多種方式向控制電路40進(jìn)行指示。
進(jìn)一步地,本領(lǐng)域的技術(shù)人員將明白,上述操作功能間的界限僅為示例性的。多個操作的功能可合并至單個操作,并且/或者單個操作的功能可分布至附加的操作。此外,替換實施例可包括特定操作的多個實例,并且在各個其它實施例中可以改變操作的順序。
此處說明的軟件的全部或者一些可為系統(tǒng)10的接收元件,例如,來自計算機(jī)可讀介質(zhì),如存儲器35或者其它計算機(jī)系統(tǒng)上的其它介質(zhì)。這樣的計算機(jī)可讀介質(zhì)可永久地、可拆卸地或者遠(yuǎn)程耦合至諸如系統(tǒng)10的信息處理系統(tǒng)。計算機(jī)可讀介質(zhì)可包括,例如但不限于,下列任何介質(zhì)包括磁盤與磁帶貯存介質(zhì)的磁貯存介質(zhì);諸如壓縮光盤介質(zhì)(例如,CD-ROM、CD-R等)和數(shù)字視頻光盤的光貯存介質(zhì);包括基于半導(dǎo)體的存儲器單元的非易失性存儲器貯存介質(zhì),例如FLASH存儲器、EEPROM、EPROM、ROM;鐵磁數(shù)字存儲器;MRAM;易失性貯存介質(zhì),包括寄存器、緩沖器或者緩存器、主存儲器、RAM等;以及數(shù)據(jù)傳輸介質(zhì),包括計算機(jī)網(wǎng)絡(luò)、點(diǎn)對點(diǎn)電信設(shè)備以及載波傳輸介質(zhì),僅列舉其中一些。
在一個實施例中,系統(tǒng)10是諸如個人計算機(jī)的計算機(jī)系統(tǒng)。其它實施例可包括不同類型的計算機(jī)系統(tǒng)。計算機(jī)系統(tǒng)是設(shè)計為向一個或多個用戶提供獨(dú)立計算能力的信息處理系統(tǒng)。可以多種形式建立計算機(jī)系統(tǒng),包括但不限于,主機(jī)系統(tǒng)、微型計算機(jī)、服務(wù)器、工作站、個人計算機(jī)、筆記本計算機(jī)、個人數(shù)字助理、電子游戲機(jī)、自動化設(shè)備和其它嵌入式系統(tǒng)、蜂窩電話以及各種其它無線設(shè)備。典型的計算機(jī)系統(tǒng)包括至少一個處理單元、關(guān)聯(lián)的存儲器和多輸入/輸出(I/O)設(shè)備。
計算機(jī)系統(tǒng)根據(jù)程序處理信息,并且通過I/O設(shè)備產(chǎn)生最終的輸出。程序是一系列指令,例如特定應(yīng)用程序和/或操作系統(tǒng)。計算機(jī)程序通常內(nèi)部存儲在計算機(jī)可讀貯存介質(zhì)上,或者通過計算機(jī)可讀傳輸介質(zhì)發(fā)送至計算機(jī)系統(tǒng)。計算機(jī)進(jìn)程通常包括執(zhí)行(運(yùn)行)程序或者程序的一部分、當(dāng)前程序值和狀態(tài)信息,以及操作系統(tǒng)用來管理進(jìn)程執(zhí)行的資源。父進(jìn)程可生成其它子進(jìn)程,以幫助執(zhí)行該父進(jìn)程的整體功能。由于父進(jìn)程專門生成執(zhí)行該父進(jìn)程整體功能的一部分的子進(jìn)程,所以由子進(jìn)程(以及子子進(jìn)程等)執(zhí)行的功能有時可說明為由該父進(jìn)程執(zhí)行。
由于上述詳細(xì)說明是示例性的,當(dāng)描述“一個實施例”時,其為示例實施例。因此,在文中使用詞語“一個”并不是要表明一個且僅由一個實施例可具有所述特征。相反,許多其它實施例可以,并且確實常常具有示例的“一個實施例”的所述特征。從而如上所使用,當(dāng)在一個實施例的意義下說明本發(fā)明時,這一個實施例是本發(fā)明的多個可能實施例之一。
盡管詳細(xì)說明了關(guān)于使用詞語“一個實施例”的使用,但是本領(lǐng)域的技術(shù)人員理解,如果在下面的權(quán)利要求中故意引入特定數(shù)量的權(quán)利要求要素,那么這樣的故意將在該權(quán)利要求中將明確說明,并且如果沒有這樣的說明,則不存在或者是要進(jìn)行這樣的限制。例如,在權(quán)利要求中,當(dāng)權(quán)利要求中的權(quán)利要求要素被說明為具有“一個”特征時,并不是要限制該要素有且僅有一個所述特征。相反例如,包括“一”(“a”)特征的權(quán)利要求涉及包括一個或多個正在討論的特征的裝置或者方法。也就是,因為正在討論的裝置或者方法包括一特征,所以該權(quán)利要求涉及裝置與方法,而不管該裝置或者方法是否包括另一類似的特征。此處申請人采用將“一”用作權(quán)利要求的特征的非限定性前導(dǎo)冠詞,這與過去許多法庭采用的解釋完全相同,盡管也可以見到相反解釋的任何反常的和先前的案例。類似地,當(dāng)在下面的權(quán)利要求中將權(quán)利要求要素描述為包括或者包含前述特征(例如,“該”特征)時,就是要使該要素不限制于由伴隨使用的定冠詞(“the”)描述的一個且僅僅一個特征。
進(jìn)一步地,權(quán)利要求中前導(dǎo)短語的使用,例如“至少一個”和“一個或多個”不應(yīng)當(dāng)解釋為暗示由不定冠詞“一”引導(dǎo)的其它權(quán)利要求要素將包含這樣引導(dǎo)的權(quán)利要求要素的任何特定權(quán)利要求限制于僅包含這樣一個要素的發(fā)明,即使當(dāng)相同的權(quán)利要求包括前導(dǎo)短語“一個或多個”或者“至少一個”和諸如“一”的不定冠詞時也是如此。
盡管已經(jīng)示出并說明了本發(fā)明的特定實施例,但是本領(lǐng)域技術(shù)人員可以顯而易見,根據(jù)此處的啟示,可使用各種修改、替換構(gòu)造以及等效,而不脫離此處聲明的發(fā)明。因此,所附權(quán)利要求在它們的范圍內(nèi)包含所有這樣的改變、修改等,它們都處于本發(fā)明的真實精神與范圍內(nèi)。進(jìn)一步地應(yīng)當(dāng)理解,本發(fā)明僅由所附權(quán)利要求限定。上述說明并不是要提供本發(fā)明實施例的完全列表。除非另外明確說明,此處提供的每一示例是非限定性或者非排它的示例,不管術(shù)語是否非限定、非排它或者類似術(shù)語以每一例子同時表達(dá)。盡管已經(jīng)嘗試概述一些示例實施例及其示例變形,但是其它實施例和/或變形落入權(quán)利要求限定的發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種方法,包括從主控器接收突發(fā)請求;確定對應(yīng)于所述被請求突發(fā)的突發(fā)特性;根據(jù)所述突發(fā)特性選擇多個突發(fā)錯誤協(xié)議之一;以及根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)所述突發(fā)請求。
2.權(quán)利要求1所述的方法,其中根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)所述突發(fā)請求包括發(fā)起突發(fā)傳輸;在所述突發(fā)傳輸期間檢測錯誤;以及根據(jù)所選的突發(fā)錯誤協(xié)議選擇性地終止所述突發(fā)傳輸。
3.一種存儲控制器,包括突發(fā)協(xié)議選擇邏輯,其確定對應(yīng)于被請求的突發(fā)傳輸?shù)闹辽僖粋€突發(fā)特性,并且根據(jù)所述至少一個突發(fā)特性選擇突發(fā)錯誤協(xié)議;以及耦合至所述突發(fā)協(xié)議選擇邏輯的控制邏輯,其根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)被請求突發(fā)。
4.一種存儲控制器,包括用于從主控器接收突發(fā)請求的裝置;用于確定對應(yīng)于所述被請求突發(fā)的突發(fā)特性的裝置;用于根據(jù)所述突發(fā)特性選擇多個突發(fā)錯誤協(xié)議之一的裝置;以及用于根據(jù)所選的突發(fā)錯誤協(xié)議響應(yīng)所述突發(fā)請求的裝置。
5.一種方法,包括從主控器接收突發(fā)請求;確定所述被請求突發(fā)的突發(fā)類型,其中所述突發(fā)類型包括讀突發(fā)類型和寫突發(fā)類型之一;根據(jù)所述突發(fā)類型選擇多個突發(fā)協(xié)議之一;以及根據(jù)所選的突發(fā)協(xié)議響應(yīng)所述突發(fā)請求。
6.一種存儲控制器,包括突發(fā)協(xié)議選擇邏輯,其確定對應(yīng)于被請求的突發(fā)傳輸?shù)耐话l(fā)類型,并且根據(jù)所述突發(fā)類型選擇突發(fā)協(xié)議,其中所述突發(fā)類型包括讀突發(fā)類型和寫突發(fā)類型之一;以及耦合至所述突發(fā)協(xié)議選擇邏輯的控制邏輯,其根據(jù)所選突發(fā)協(xié)議響應(yīng)被請求的突發(fā)。
7.一種方法,包括從主控器接收突發(fā)請求;確定對應(yīng)于所述被請求突發(fā)的所述主控器的標(biāo)識;根據(jù)對應(yīng)于所述被請求突發(fā)的所述主控器標(biāo)識,選擇多個突發(fā)錯誤協(xié)議之一;以及根據(jù)所選突發(fā)錯誤協(xié)議響應(yīng)所述突發(fā)請求。
8.一種存儲控制器,配置為與多個主控器進(jìn)行通信,包括突發(fā)協(xié)議選擇邏輯,其確定對應(yīng)于被請求突發(fā)傳輸?shù)亩鄠€主控器之一的標(biāo)識,并且根據(jù)所述多個主控器之一的所述標(biāo)識選擇突發(fā)錯誤協(xié)議;以及耦合至所述突發(fā)協(xié)議選擇邏輯的控制邏輯,其根據(jù)所選突發(fā)錯誤協(xié)議響應(yīng)被請求的突發(fā)。
9.一種方法,包括提供突發(fā)可參數(shù)化硬件描述語言(HDL)描述;提供突發(fā)協(xié)議參數(shù)作為所述突發(fā)可參數(shù)化HDL描述的輸入;當(dāng)所述突發(fā)協(xié)議參數(shù)具有第一值時,生成對應(yīng)于配置為根據(jù)第一突發(fā)協(xié)議進(jìn)行操作的存儲控制器的第一HDL描述;以及當(dāng)所述突發(fā)協(xié)議參數(shù)具有第二值時,生成對應(yīng)于配置為根據(jù)第二突發(fā)協(xié)議進(jìn)行操作的存儲控制器的第二HDL描述。
10.一種在計算機(jī)可讀介質(zhì)上編碼的突發(fā)可參數(shù)化HDL描述,包括第一指令集,用于接收突發(fā)協(xié)議參數(shù);第二指令集,用于當(dāng)所述突發(fā)協(xié)議參數(shù)具有第一值時生成第一存儲控制器模型,其中所述第一存儲控制器模型對應(yīng)于根據(jù)第一突發(fā)協(xié)議進(jìn)行操作的存儲控制器;以及第三指令集,用于當(dāng)所述突發(fā)協(xié)議參數(shù)具有第二值時生成第二存儲控制器模型,其中所述第二存儲控制器模型對應(yīng)于根據(jù)第二突發(fā)協(xié)議進(jìn)行操作的存儲控制器。
全文摘要
多突發(fā)存儲器訪問處理協(xié)議可在硬件層實現(xiàn)或者在硬件設(shè)計期間評估和選擇??梢曰谕话l(fā)特性,例如突發(fā)類型(30)和當(dāng)前總線主控器(12或者14)的標(biāo)識,選擇適當(dāng)?shù)耐话l(fā)協(xié)議。這允許,例如,在多主控器片上系統(tǒng)(SoC)中的從設(shè)備支持多錯誤協(xié)議的能力,或者允許設(shè)計能夠與使用不同突發(fā)處理協(xié)議的多個主控器進(jìn)行接口的從設(shè)備。諸如可編程控制寄存器或者配置引腳或者變量的輸入可作為從設(shè)備或者從設(shè)備接口塊(例如,存儲控制器[36])的一部分而提供,以便實現(xiàn)替換突發(fā)協(xié)議。當(dāng)從主控器接收到突發(fā)請求時,確定對應(yīng)于被請求突發(fā)的突發(fā)特性,并且根據(jù)該突發(fā)特性選擇多個突發(fā)錯誤協(xié)議之一。然后根據(jù)所選的突發(fā)錯誤協(xié)議處理該突發(fā)請求。
文檔編號G06F13/38GK1926525SQ200580006512
公開日2007年3月7日 申請日期2005年1月21日 優(yōu)先權(quán)日2004年3月3日
發(fā)明者威廉·C·莫耶 申請人:飛思卡爾半導(dǎo)體公司