優(yōu)先權(quán)要求
本申請要求于2014年12月17日提交的題為“programminghardwareregistersusingapipelinedregisterbus,andrelatedmethods,systems,andapparatuses(使用流水線寄存器總線對硬件寄存器進(jìn)行編程以及相關(guān)方法、系統(tǒng)和裝置)”的美國專利申請s/n.14/573,328的優(yōu)先權(quán),該申請通過援引全部納入于此。
背景
i.公開領(lǐng)域
本公開的技術(shù)一般涉及經(jīng)由寄存器總線來讀和寫硬件寄存器。
ii.
背景技術(shù):
現(xiàn)代計算機(jī)處理器利用各種總線標(biāo)準(zhǔn)和機(jī)制來提供各主控設(shè)備之間以及主控設(shè)備與從動設(shè)備之間的連通性。一種類型的總線標(biāo)準(zhǔn)提供寄存器總線,它可由在處理器上執(zhí)行的計算機(jī)指令用來對硬件寄存器進(jìn)行編程(例如,讀或?qū)懹布拇嫫饕詫⑻幚砥髂K置于所需配置中)。對硬件寄存器進(jìn)行編程的請求可由寄存器總線主控器接收,它隨后負(fù)責(zé)將該請求經(jīng)由寄存器總線路由到適當(dāng)?shù)挠布拇嫫鳌?/p>
然而,隨著更多新近處理器包括更大數(shù)目的硬件寄存器,可能需要寄存器總線處置對應(yīng)的增加的總線負(fù)載。為應(yīng)付增加的總線負(fù)載可能引入的定時問題,一些常規(guī)處理器可按低于數(shù)據(jù)總線的時鐘頻率的時鐘頻率來操作寄存器總線。然而,將較低時鐘頻率用于寄存器總線可增加與跨時鐘域相關(guān)聯(lián)的開銷。例如,跨時鐘域可使可測性設(shè)計(dft)插入復(fù)雜化,這可導(dǎo)致需要附加測試時間來驗(yàn)證硬件設(shè)計。另外,一些操作(諸如數(shù)據(jù)的動態(tài)讀取)可能需要附加邏輯,并且可能必需更復(fù)雜的定時約束。
用于處置寄存器總線上增加的負(fù)載的另一常規(guī)解決方案是將各硬件寄存器集中在連接到寄存器總線主控器的單個寄存器總線從動器處。通過這樣做,寄存器總線可按數(shù)據(jù)總線的更高時鐘頻率來操作。然而,在這一辦法下,將集中的各硬件寄存器與分布式處理器模塊進(jìn)行關(guān)聯(lián)可能需要每一處理器模塊的輸入/輸出(i/o)端口是非統(tǒng)一的且因模塊而異的。此外,由于分層分區(qū),這樣的辦法可能需要附加路由面積。
公開概述
本詳細(xì)描述中公開的各方面包括使用流水線寄存器總線對硬件寄存器進(jìn)行編程。還公開了相關(guān)方法、系統(tǒng)和裝置。就此,在一些方面,寄存器總線可連接寄存器總線主控器以及一個或多個寄存器總線從動器。在各示例性方面,每一寄存器總線從動器可以與包括模塊核以及一個或多個可編程硬件寄存器的處理器模塊相關(guān)聯(lián)。寄存器總線主控器經(jīng)由寄存器總線向第一寄存器總線從動器發(fā)送包括地址的請求(例如,用于編程硬件寄存器)。與第一寄存器總線從動器相關(guān)聯(lián)的處理器模塊的模塊核解碼該地址,并確定該地址是否對應(yīng)于該處理器模塊(通過例如確定該地址是否被包含在指派給該處理器模塊的地址空間內(nèi))。如果是,則該請求由該模塊核處理,并且相同的請求被第一寄存器總線從動器原樣傳遞到第二寄存器總線從動器。如果該地址不對應(yīng)于該處理器模塊,則第一寄存器總線從動器將相同的請求原樣傳遞到第二寄存器總線從動器。以此方式,對硬件寄存器的編程可在時間上跨各模塊核擴(kuò)散,這可使寄存器總線以數(shù)據(jù)總線的較高時鐘頻率來操作,同時提供統(tǒng)一的模塊輸入/輸出接口。在一些方面,寄存器總線主控器和寄存器總線從動器可被布置成菊花鏈配置。根據(jù)一些方面,如果請求是寫請求,則第一寄存器總線從動器不將任何數(shù)據(jù)傳遞到寄存器總線上。如果請求是讀請求,則第一寄存器總線從動器可以將所請求的數(shù)據(jù)連同數(shù)據(jù)有效性信號傳遞到寄存器總線上。在后一情形中,所請求的數(shù)據(jù)可結(jié)合該請求一起被傳遞到第二寄存器總線從動器,或者該請求可在將所請求的數(shù)據(jù)傳遞到第二寄存器總線從動器之后發(fā)送。
在另一方面,提供了一種用于在寄存器總線上通信的方法。該方法包括在寄存器總線主控器處發(fā)起包括地址的請求。該方法進(jìn)一步包括經(jīng)由寄存器總線將該請求從寄存器總線主控器傳遞到處理器模塊的第一寄存器總線從動器。該方法另外包括在該處理器模塊的模塊核處解碼該地址。該方法還包括確定該地址是否對應(yīng)于該處理器模塊。該方法進(jìn)一步包括響應(yīng)于確定該地址對應(yīng)于該處理器模塊而由該模塊核處理該請求,并由第一寄存器總線從動器將相同的請求原樣傳遞到第二寄存器總線從動器。該方法另外包括響應(yīng)于確定該地址不對應(yīng)于該處理器模塊,由第一寄存器總線從動器將相同的請求原樣傳遞到第二寄存器總線從動器。
在另一方面,提供了一種用于在寄存器總線上通信的系統(tǒng)。該系統(tǒng)包括寄存器總線,該寄存器總線將寄存器總線主控器通信地耦合到處理器模塊的第一寄存器總線從動器并進(jìn)一步將第一寄存器總線從動器通信地耦合到第二寄存器總線從動器。寄存器總線主控器被配置成:發(fā)起包括地址的請求;以及經(jīng)由寄存器總線將該請求傳遞到處理器模塊的第一寄存器總線從動器。該處理器模塊被配置成:在該處理器模塊的模塊核處解碼該地址;以及確定該地址是否對應(yīng)于該處理器模塊。該處理器模塊被進(jìn)一步配置成響應(yīng)于確定該地址對應(yīng)于該處理器模塊,由該模塊核處理該請求。第一寄存器總線從動器被配置成經(jīng)由寄存器總線由第一寄存器總線從動器將相同的請求原樣傳遞到第二寄存器總線從動器。
在另一方面,提供了一種包括寄存器總線上的寄存器從動設(shè)備的裝置。寄存器從動設(shè)備包括配置成接收來自寄存器總線的請求的第一總線接口。寄存器從動設(shè)備進(jìn)一步包括通信地耦合到第一總線接口的地址解碼器。地址解碼器被配置成從該請求提取地址并解碼該地址。寄存器從動設(shè)備進(jìn)一步包括通信地耦合到第一總線接口的第二總線接口。第二總線接口被配置成將來自第一總線接口的該請求傳遞回寄存器總線。寄存器從動設(shè)備另外包括通信地耦合到第一總線接口且被配置成處理請求的模塊核。
在另一方面,提供了一種操作寄存器從動設(shè)備的方法。該方法包括在寄存器從動設(shè)備處接收第一時鐘信號。該方法進(jìn)一步包括在第一時鐘周期經(jīng)由寄存器總線在寄存器從動設(shè)備的第一總線接口處接收請求,該請求包括地址。該方法另外包括在第二時鐘周期將該請求傳遞到寄存器從動設(shè)備的第二總線接口。該方法還包括在第二時鐘周期之后的第三時鐘周期將該請求返回寄存器總線。該方法進(jìn)一步包括解碼該地址并確定該地址是否對應(yīng)于該寄存器從動設(shè)備。該方法另外包括響應(yīng)于確定該地址對應(yīng)于寄存器從動設(shè)備,在該寄存器從動設(shè)備的模塊核中處理該請求,以及在后續(xù)第四時鐘周期將來自模塊核的數(shù)據(jù)提供到寄存器總線。
附圖簡述
圖1是可包括流水線寄存器總線的計算設(shè)備的簡化視圖;
圖2是可包括流水線寄存器總線的移動終端的透視圖;
圖3是圖2的移動終端的組件的框圖;
圖4是解說包括寄存器總線主控器和處理器模塊的示例性流水線寄存器總線拓?fù)涞目驁D,處理器模塊包括模塊核和寄存器總線從動器;
圖5a-5c是解說圖4的處理器模塊與寄存器總線從動器之間使用流水線寄存器總線的示例性通信流的框圖;以及
圖6是解說用于通過圖4的流水線寄存器總線進(jìn)行通信的示例性過程的流程圖。
詳細(xì)描述
現(xiàn)在參照附圖,描述了本公開的若干示例性方面。措辭“示例性”在本文中用于表示“用作示例、實(shí)例或解說”。本文中描述為“示例性”的任何方面不必被解釋為優(yōu)于或勝過其他方面。將理解,雖然術(shù)語“第一”、“第二”等等可在本文中用來描述各種元素,但這些元素不應(yīng)受這些術(shù)語的限制。這些術(shù)語只被使用來區(qū)分一個元素與另一元素。例如,第一設(shè)備可被稱為第二設(shè)備,并且類似地,第二設(shè)備可被稱為第一設(shè)備,而不背離本公開的教導(dǎo)。
本詳細(xì)描述中公開的各方面包括使用流水線寄存器總線對硬件寄存器進(jìn)行編程。還公開了相關(guān)方法、系統(tǒng)和裝置。就此,在一些方面,寄存器總線可連接寄存器總線主控器以及一個或多個寄存器總線從動器。在各示例性方面,每一寄存器總線從動器可以與包括模塊核以及一個或多個可編程硬件寄存器的處理器模塊相關(guān)聯(lián)。寄存器總線主控器經(jīng)由寄存器總線向第一寄存器總線從動器發(fā)送包括地址的請求(例如,用于編程硬件寄存器)。與第一寄存器總線從動器相關(guān)聯(lián)的處理器模塊的模塊核解碼該地址,并確定該地址是否對應(yīng)于該處理器模塊(通過例如確定該地址是否被包含在指派給該處理器模塊的地址空間內(nèi))。如果是,則該請求由該模塊核處理,并且相同的請求被第一寄存器總線從動器原樣傳遞到第二寄存器總線從動器。如果該地址不對應(yīng)于該處理器模塊,則第一寄存器總線從動器將相同的請求原樣傳遞到第二寄存器總線從動器。以此方式,對硬件寄存器的編程可在時間上跨各模塊核擴(kuò)散,這可使寄存器總線以數(shù)據(jù)總線的較高時鐘頻率來操作,同時提供統(tǒng)一的模塊輸入/輸出接口。在一些方面,寄存器總線主控器和寄存器總線從動器可被布置成菊花鏈配置。根據(jù)一些方面,如果請求是寫請求,則第一寄存器總線從動器不將任何數(shù)據(jù)傳遞到寄存器總線上。如果請求是讀請求,則第一寄存器總線從動器可以將所請求的數(shù)據(jù)連同數(shù)據(jù)有效性信號傳遞到寄存器總線上。在后一情形中,所請求的數(shù)據(jù)可結(jié)合該請求一起被傳遞到第二寄存器總線從動器,或者該請求可在將所請求的數(shù)據(jù)傳遞到第二寄存器總線從動器之后發(fā)送。
在討論使用流水線寄存器總線對硬件寄存器進(jìn)行編程之前,首先參考圖1-3描述可在其中實(shí)現(xiàn)本公開的各方面的示例性設(shè)備。圖1和2分別解說了計算設(shè)備和移動終端,而圖3更詳細(xì)地解說了圖2的組件。本公開的各示例性方面隨后在以下從圖4開始討論。
盡管本公開的示例性方面構(gòu)想了移動終端(諸如蜂窩電話)中的實(shí)現(xiàn),但是本公開不被如此限定。就此而言,圖1解說了耦合到網(wǎng)絡(luò)102的計算設(shè)備100,在一示例性方面,網(wǎng)絡(luò)102是因特網(wǎng)。計算設(shè)備100可包括其中具有中央處理單元(cpu)(未示出)的外殼104。用戶(未示出)可通過由輸入/輸出元件(諸如監(jiān)視器(有時被稱為顯示器)106、鍵盤108、和/或鼠標(biāo)110)形成的用戶接口與計算設(shè)備100交互。在一些方面,監(jiān)視器106可被納入到外殼104中。盡管解說了鍵盤108和鼠標(biāo)110,但是監(jiān)視器106在一些方面可以是觸摸屏顯示器,其可補(bǔ)充或取代鍵盤108和/或鼠標(biāo)110。其他輸入/輸出設(shè)備也可能存在,這結(jié)合臺式或膝上型計算設(shè)備是很好理解的。
除了計算設(shè)備100以外,本公開的諸示例性方面還可在移動計算設(shè)備上實(shí)現(xiàn)。就此而言,圖2中解說了移動終端200的示例性方面。移動終端200可以是智能電話(諸如samsunggalaxytm或
參照圖3提供了對圖2的移動終端200的諸組件的更詳細(xì)描繪。就此而言,解說了移動終端200的一些元件的框圖。移動終端200可包括接收機(jī)路徑300、發(fā)射機(jī)路徑302、天線304、開關(guān)306、基帶處理器(bbp)308、控制系統(tǒng)310、頻率合成器312、用戶接口314和其中存儲有軟件318的存儲器316。
接收機(jī)路徑300接收來自由圖2的bs204提供的一個或多個遠(yuǎn)程發(fā)射機(jī)的承載信息的射頻(rf)信號。低噪聲放大器(未示出)放大該信號。濾波器(未示出)使收到信號中的寬帶干擾最小化,同時下變頻和數(shù)字化電路系統(tǒng)(未示出)將經(jīng)濾波的收到信號下變頻成中頻信號或基頻信號,其隨后被數(shù)字化成一個或多個數(shù)字流。接收機(jī)路徑300通常使用由頻率合成器312生成的一個或多個混頻頻率。bbp308處理經(jīng)數(shù)字化的收到信號以提取該信號中傳達(dá)的信息或數(shù)據(jù)比特。如此,通常在一個或多個數(shù)字信號處理器(dsp)中實(shí)現(xiàn)bbp308。
繼續(xù)參照圖3,作為非限定性示例,在傳送側(cè),bbp308從控制系統(tǒng)310接收表示語音、數(shù)據(jù)或控制信息的經(jīng)數(shù)字化的數(shù)據(jù)。bbp308編碼經(jīng)數(shù)字化的數(shù)據(jù)以供傳送并將經(jīng)編碼的數(shù)據(jù)輸出到發(fā)射機(jī)路徑302,其中該經(jīng)編碼的數(shù)據(jù)被調(diào)制器(未示出)用來調(diào)制處于期望傳送頻率的載波信號。rf功率放大器(未示出)將經(jīng)調(diào)制的載波信號放大到適于傳送的電平,并且將該經(jīng)放大且經(jīng)調(diào)制的載波信號通過開關(guān)306遞送給天線304。接收機(jī)路徑300、發(fā)射機(jī)路徑302和頻率合成器312可被共同認(rèn)為是無線調(diào)制解調(diào)器320。
繼續(xù)參照圖3,用戶可以經(jīng)由用戶接口314(作為非限定性示例,諸如經(jīng)由話筒、揚(yáng)聲器、鍵盤和/或顯示器)與移動終端200交互。編碼在收到信號中的音頻信息由bbp308恢復(fù),并且被轉(zhuǎn)換成適于驅(qū)動揚(yáng)聲器的模擬信號。鍵盤和顯示器使得用戶能夠與移動終端200交互。例如,鍵盤和顯示器可以使得用戶能夠輸入要撥打的號碼,訪問地址簿信息或者類似信息,以及監(jiān)視呼叫進(jìn)度信息。存儲器316中可具有如以上所提及的軟件318,它可生成由本公開的各示例性方面處理的請求。盡管未解說,但是將理解,移動性較低的計算設(shè)備100可具有類似的元件,但代替無線調(diào)制解調(diào)器320,計算設(shè)備100可提供具有基于有線的接口的網(wǎng)絡(luò)接口控制器(nic)來實(shí)現(xiàn)通信。
圖3中解說的組件中的一者或多者可包括多個處理器模塊,每一處理器模塊包括一個或多個可編程硬件寄存器并通過寄存器總線相連接。為使寄存器總線能夠以較高時鐘頻率(例如,數(shù)據(jù)總線的時鐘頻率)來操作并同時支持統(tǒng)一的處理器模塊輸入/輸出(i/o)端口,可提供流水線寄存器總線。就此,圖4解說了根據(jù)本文公開的一些方面的流水線寄存器總線400拓?fù)?。在圖4中,流水線寄存器總線400將寄存器總線主控器402與一個或多個處理器模塊404(0)-404(15)通信地耦合。
處理器模塊404(0)-404(15)中的每一者可以表示負(fù)責(zé)實(shí)現(xiàn)特定處理功能性的分立處理元件。作為非限制性的示例,處理器模塊404(0)-404(15)中的每一者可以是圖像信號處理器(isp)的功能元件。將理解,圖4只是出于解說目的示出了總共16個處理器模塊404(0)-404(15),并且本文公開的流水線寄存器總線400拓?fù)涞囊恍┓矫婵砂ǜ嗷蚋偬幚砥髂K404(0)-404(15)。因?yàn)樘幚砥髂K404(0)-404(15)接收并響應(yīng)來自寄存器總線主控器402的請求,所以處理器模塊404(0)-404(15)在本文中可被稱為“寄存器從動設(shè)備404(0)-404(15)”。
處理器模塊404(0)-404(15)包括相應(yīng)模塊核406(0)-406(15)和寄存器總線從動器408(0)-408(15)。模塊核406(0)-406(15)為對應(yīng)的處理器模塊404(0)-404(15)執(zhí)行處理任務(wù),作為非限制性的示例包括地址解碼和硬件寄存器讀和/或?qū)?。相?yīng)地,如在下文參考圖5a-5c更詳細(xì)地討論的,作為非限制性示例,模塊核406(0)-406(15)可包括諸如地址解碼器(未示出)以及一個或多個硬件寄存器410(0)-410(15)等元件。寄存器總線從動器408(0)-408(15)是對應(yīng)處理器模塊404(0)-404(15)的經(jīng)由流水線寄存器總線400接收和轉(zhuǎn)發(fā)通信(例如,硬件寄存器讀和/或?qū)懙恼埱?的元件。
在一些方面,流水線寄存器總線400按菊花鏈配置將寄存器總線主控器402與寄存器總線從動器408(0)-408(15)相連接。例如,在圖4的示例中,寄存器總線主控器402被連接到寄存器總線從動器408(0),寄存器總線從動器408(0)進(jìn)而連接到寄存器總線從動器408(1),以此類推。最后一個寄存器總線從動器408(15)隨后連接到寄存器總線主控器402,從而完成菊花鏈。
在示例性操作中,寄存器總線主控器402可以發(fā)起對處理器模塊404(0)-404(15)之一的硬件寄存器410(0)-410(15)進(jìn)行編程的請求(未示出)。作為非限制性示例,對硬件寄存器410(0)-410(15)進(jìn)行編程的請求可包括讀取硬件寄存器值的請求和/或?qū)⒅祵懙接布拇嫫鞯恼埱?。如此,對硬件寄存?10(0)-410(15)進(jìn)行編程的請求可包括用于執(zhí)行該請求所需的信息,諸如地址。該請求還可伴有附加數(shù)據(jù),諸如要被寫到寄存器的數(shù)據(jù)值和/或數(shù)據(jù)有效指示符。作為非限制性示例,該請求可由寄存器總線主控器402響應(yīng)于圖3的軟件318的指令(未示出)而被發(fā)起。
該請求隨后經(jīng)由流水線寄存器總線400傳遞到連接到寄存器總線主控器402的處理器模塊404(0)的寄存器總線從動器408(0)。寄存器總線從動器408(0)提取該請求的地址,并將它轉(zhuǎn)發(fā)給模塊核406(0)以供處理。該地址隨后由模塊核406(0)解碼并被評估以確定該地址是否對應(yīng)于處理器模塊404(0)(例如,該地址是否落入與處理器模塊404(0)相關(guān)聯(lián)的地址空間內(nèi))。如果該地址不對應(yīng)于處理器模塊404(0),則處理器模塊404(0)的寄存器總線從動器408(0)將相同的請求原樣轉(zhuǎn)發(fā)給菊花鏈中的下一處理器模塊404(在該示例中是處理器模塊404(1))的寄存器總線從動器408(1)。
然而,如果該地址被確定為對應(yīng)于處理器模塊404(0),則該請求被模塊核406(0)處理以對硬件寄存器410(0)-410(15)進(jìn)行編程。在一些方面,處理該請求以對硬件寄存器410(0)-410(15)進(jìn)行編程可包括將伴隨該請求的數(shù)據(jù)值寫到硬件寄存器410(0)-410(15)和/或?qū)碜杂布拇嫫?10(0)-410(15)的響應(yīng)輸出到流水線寄存器總線400。處理器模塊404(0)的寄存器總線從動器408(0)隨后將相同的請求原樣連同該請求的處理結(jié)果(如果有的話)轉(zhuǎn)發(fā)給菊花鏈中的下一處理器模塊404(在這一示例中是處理器模塊404(1))的寄存器總線從動器408(1)。將理解,將相同請求以及對應(yīng)結(jié)果(如果有的話)轉(zhuǎn)發(fā)到菊花鏈中的下一處理器模塊404發(fā)生在同一個處理器時鐘周期處(未示出)。
為解說用于提供流水線寄存器總線的寄存器總線從動器內(nèi)的示例性通信流,提供了圖5a-5c。圖5a-5c示出了處理器模塊500,根據(jù)一些方面它可對應(yīng)于圖4的處理器模塊404(0)-404(15)之一。具體而言,圖5a解說了處理器模塊500經(jīng)由寄存器總線從寄存器總線主控器接收用于對硬件寄存器進(jìn)行編程的請求。圖5b示出了對該請求的處理,而圖5c解說了該請求和響應(yīng)(如果有的話)被輸出到寄存器總線。
如在圖5a中看到的,處理器模塊500包括模塊核502,它提供處理器模塊500的處理功能性。具體而言,模塊核502包括地址解碼器504、可編程硬件寄存器505、讀寄存器506、以及讀數(shù)據(jù)有效性指示符508。模塊核502的上述元件的操作在下文更詳細(xì)地討論。
處理器模塊500進(jìn)一步包括用于經(jīng)由寄存器總線514通信的寄存器總線從動器512。在圖5a-5c的示例中,處理器模塊500具有兩(2)個時鐘周期的處理等待時間。相應(yīng)地,處理器模塊500的寄存器總線從動器512包括總線接口516(0)-516(x),它們中的每一者接收來自數(shù)據(jù)時鐘源520的數(shù)據(jù)時鐘信號518。將理解,總線接口516的數(shù)目與處理器模塊500的處理等待時間相對應(yīng)。例如,在其中處理器模塊500具有三(3)個處理器時鐘周期的處理等待時間的方面,可提供總線接口516(1)。在圖5a-5c的示例中,處理器模塊500具有兩(2)個處理器時鐘周期的處理等待時間,并且因而不需要總線接口516(1)且出于簡明起見從圖5b和5c中省略。根據(jù)一些方面,處理器模塊500的處理等待時間可完全或部分地取決于地址解碼器504解碼地址所需的時鐘周期的數(shù)目。
總線接口516(0)-516(x)包括用于經(jīng)由寄存器總線514傳達(dá)請求524的相應(yīng)請求寄存器522(0)-522(x)??偩€接口516(0)-516(x)還包括用于接收來自寄存器總線514的數(shù)據(jù)值528的相應(yīng)數(shù)據(jù)寄存器526(0)-526(x)以及用于接收與來自寄存器總線514的數(shù)據(jù)值528相對應(yīng)的數(shù)據(jù)有效性指示符532的相應(yīng)數(shù)據(jù)有效性指示符寄存器530(0)-530(x)。另外,總線接口516(x)進(jìn)一步包括邏輯或(or)門534和536,它們的操作在下文更詳細(xì)地描述。
在圖5a中,由寄存器總線主控器(諸如圖4的寄存器總線主控器402)發(fā)起的請求524被寄存器總線514傳遞到寄存器總線從動器512的總線接口516(0)。在一些方面,請求524包括對硬件寄存器(諸如模塊核502的硬件寄存器505)進(jìn)行編程的請求。請求524包括目標(biāo)硬件寄存器的地址538,并且可進(jìn)一步包括分別指示對硬件寄存器505進(jìn)行編程的該請求是寫請求和/或讀請求的寫啟用指示符540和/或讀啟用指示符542。在寫請求的情形中,可由寄存器總線主控器402使用要寫的數(shù)據(jù)值來設(shè)置數(shù)據(jù)值528,而數(shù)據(jù)有效性指示符532可被設(shè)置成一(1)以指示該數(shù)據(jù)值是有效的。對于讀請求,數(shù)據(jù)值528和數(shù)據(jù)有效性指示符532兩者都可被寄存器總線主控器402設(shè)置成零(0)。
現(xiàn)在參考圖5b,寄存器總線從動器512的總線接口516(0)將請求524、數(shù)據(jù)值528、以及數(shù)據(jù)有效性指示符532轉(zhuǎn)發(fā)給模塊核502。總線接口516(0)還將相同的請求524原樣連同數(shù)據(jù)值528和數(shù)據(jù)有效性指示符532傳遞到總線接口516(x)。在模塊核502中,請求524的地址538被提取。模塊核502隨后確定請求524的地址538是否對應(yīng)于處理器模塊500。作為非限制性示例,模塊核502可以確定地址538是否落入指派給處理器模塊500的地址空間,諸如硬件寄存器505的地址。
圖5c解說了模塊核502確定地址538是否對應(yīng)于處理器模塊500的結(jié)果。如果地址538不對應(yīng)于處理器模塊500,則請求524被寄存器總線從動器512的總線接口516(x)原樣傳遞到寄存器總線514。在一些方面,在地址538不對應(yīng)于處理器模塊500時和/或如果請求524表示寫操作,則模塊核502可以向邏輯或門534和536輸出零(0)值。通過向邏輯或門534和536輸出零(0)值,數(shù)據(jù)值528和數(shù)據(jù)有效性指示符532的原始值可不改變地穿過寄存器總線從動器512,作為響應(yīng)544和輸出數(shù)據(jù)有效性指示符546。
如果地址538的確對應(yīng)于處理器模塊500,則模塊核502根據(jù)請求524的寫啟用指示符540和/或讀啟用指示符542是否被置位來處理請求524。如果寫啟用指示符540被置位,則模塊核502可以將請求524的數(shù)據(jù)值528寫到由地址538所指示的硬件寄存器505。因?yàn)閷懖僮髟跀?shù)據(jù)值528被寫到硬件寄存器505時完成,所以寫操作的等待時間可被計算為處理器模塊500以及在處理器模塊500之前接收并傳遞請求524的任何在前處理器模塊(未示出)的個體等待時間的總和。
如果讀啟用指示符542被置位,則模塊核502可以讀取由地址538指示的硬件寄存器505的值,并經(jīng)由讀寄存器506將硬件寄存器505的值輸出到總線接口516(x)的邏輯或門534。模塊核502還可讀取讀數(shù)據(jù)有效性指示符508的值,并將讀數(shù)據(jù)有效性指示符508的值輸出到總線接口516(x)的邏輯或門536。根據(jù)一些方面,在讀啟用指示符542被置位時,傳遞到圖5a中的寄存器總線從動器512的數(shù)據(jù)值528和數(shù)據(jù)有效性指示符532兩者被設(shè)置成零(0)。因而,從總線接口516(x)的邏輯或門534輸出的響應(yīng)544具有讀寄存器506的值,而從邏輯或門536輸出的輸出數(shù)據(jù)有效性指示符546具有讀數(shù)據(jù)有效性指示符508的值。響應(yīng)544和輸出數(shù)據(jù)有效性指示符546由寄存器總線從動器512輸出到寄存器總線514,將被傳遞到后續(xù)處理器模塊(未示出)或圖4的寄存器總線主控器402(如果處理器模塊500是寄存器總線514上的最后一個處理器模塊的話)。因?yàn)樽x操作直至響應(yīng)544到達(dá)寄存器總線主控器402才完成,所以讀操作的等待時間可被計算為處理器模塊500與寄存器總線514上的每一其他處理器模塊(未示出)的個體等待時間的總和。
圖6是提供用于解說用于通過圖4的流水線寄存器總線400進(jìn)行通信的示例性過程的流程圖。在描述圖6時,為清楚起見而引述圖4和圖5a-5c的元件。在圖6中,在一些方面,操作始于寄存器總線主控器402、第一寄存器總線從動器512、以及第二寄存器總線從動器408(15)被布置成菊花鏈配置(框600)。數(shù)據(jù)時鐘信號518可被提供給第一寄存器總線從動器512(框602)。
隨后在寄存器總線主控器402處發(fā)起包括地址538的請求524(框604)。經(jīng)由寄存器總線514將請求524從寄存器總線主控器402傳遞到處理器模塊500的第一寄存器總線從動器512(框606)。接著在處理器模塊500的模塊核502處解碼請求524的地址538(框608)。模塊核502隨后確定地址538是否對應(yīng)于處理器模塊500(框610)。如果否,則第一寄存器總線從動器512就將相同的請求524原樣傳遞到第二寄存器總線從動器408(15)(框612)。
然而,如果模塊核502在判定框610確定地址538對應(yīng)于處理器模塊500,則由模塊核502處理請求524(框614)。在一些方面,用于處理請求524的框614的操作可包括以與數(shù)據(jù)時鐘信號518相關(guān)聯(lián)的時鐘速率來對模塊核502的硬件寄存器505進(jìn)行編程(框616)。第一寄存器總線從動器512隨后可在模塊核502中處理請求524之后輸出響應(yīng)544(框618)。請求524隨后可從第二寄存器總線從動器408(15)傳遞到寄存器總線主控器402(框620)。
根據(jù)本文所公開的各方面使用流水線寄存器總線對硬件寄存器進(jìn)行編程可在任何基于處理器的設(shè)備中提供或被集成到任何基于處理器的設(shè)備中。不作為限定的示例包括機(jī)頂盒、娛樂單元、導(dǎo)航設(shè)備、通信設(shè)備、固定位置數(shù)據(jù)單元、移動位置數(shù)據(jù)單元、移動電話、蜂窩電話、計算機(jī)、便攜式計算機(jī)、臺式計算機(jī)、個人數(shù)字助理(pda)、監(jiān)視器、計算機(jī)監(jiān)視器、電視機(jī)、調(diào)諧器、無線電、衛(wèi)星無線電、音樂播放器、數(shù)字音樂播放器、便攜式音樂播放器、數(shù)字視頻播放器、視頻播放器、數(shù)字視頻碟(dvd)播放器、以及便攜式數(shù)字視頻播放器。
本領(lǐng)域技術(shù)人員將進(jìn)一步領(lǐng)會,結(jié)合本文所公開的諸方面描述的各種解說性邏輯塊、模塊、電路和算法可被實(shí)現(xiàn)為電子硬件、存儲在存儲器中或另一計算機(jī)可讀介質(zhì)中并由處理器或其它處理設(shè)備執(zhí)行的指令、或這兩者的組合。作為示例,本文描述的主控設(shè)備和從動設(shè)備可用在任何電路、硬件組件、集成電路(ic)、或ic芯片中。本文所公開的存儲器可以是任何類型和大小的存儲器,且可配置成存儲所需的任何類型的信息。為清楚地解說這種可互換性,各種解說性組件、框、模塊、電路和步驟在上文已經(jīng)以其功能性的形式一般性地作了描述。此類功能性如何被實(shí)現(xiàn)取決于具體應(yīng)用、設(shè)計選擇、和/或加諸于整體系統(tǒng)上的設(shè)計約束。技術(shù)人員可針對每種特定應(yīng)用以不同方式來實(shí)現(xiàn)所描述的功能性,但此類實(shí)現(xiàn)決策不應(yīng)被解讀為致使脫離本公開的范圍。
結(jié)合本文中公開的諸方面描述的各種解說性邏輯塊、模塊、以及電路可用設(shè)計成執(zhí)行本文中描述的功能的處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或其他可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其任何組合來實(shí)現(xiàn)或執(zhí)行。處理器可以是微處理器,但在替換方案中,處理器可以是任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計算設(shè)備的組合,例如dsp與微處理器的組合、多個微處理器、與dsp核心協(xié)同的一個或多個微處理器、或任何其它此類配置。
本文所公開的各方面可被體現(xiàn)為硬件和存儲在硬件中的指令,并且可駐留在例如隨機(jī)存取存儲器(ram)、閃存、只讀存儲器(rom)、電可編程rom(eprom)、電可擦可編程rom(eeprom)、寄存器、硬盤、可移動盤、cd-rom、或本領(lǐng)域中所知的任何其它形式的計算機(jī)可讀介質(zhì)中。示例性存儲介質(zhì)被耦合到處理器,以使得處理器能從/向該存儲介質(zhì)讀取/寫入信息。在替換方案中,存儲介質(zhì)可以被整合到處理器。處理器和存儲介質(zhì)可駐留在asic中。asic可駐留在遠(yuǎn)程站中。在替換方案中,處理器和存儲介質(zhì)可作為分立組件駐留在遠(yuǎn)程站、基站或服務(wù)器中。
還注意到,本文任何示例性方面中描述的操作步驟是為了提供示例和討論而被描述的。所描述的操作可按除了所解說的順序之外的眾多不同順序來執(zhí)行。此外,在單個操作步驟中描述的操作實(shí)際上可在多個不同步驟中執(zhí)行。另外,示例性方面中討論的一個或多個操作步驟可被組合。將理解,如對本領(lǐng)域技術(shù)人員顯而易見地,在流程圖中解說的操作步驟可進(jìn)行眾多不同的修改。本領(lǐng)域技術(shù)人員還將理解,可使用各種不同技術(shù)和技藝中的任何一種來表示信息和信號。例如,貫穿上面說明始終可能被述及的數(shù)據(jù)、指令、命令、信息、信號、比特、碼元、和碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子、或其任何組合來表示。
提供對本公開的先前描述是為使得本領(lǐng)域任何技術(shù)人員皆能夠制作或使用本公開。對本公開的各種修改對本領(lǐng)域技術(shù)人員而言將容易是顯而易見的,并且本文中所定義的普適原理可被應(yīng)用到其他變型而不會脫離本公開的精神或范圍。由此,本公開并非旨在被限定于本文中所描述的示例和設(shè)計,而是應(yīng)被授予與本文中所公開的原理和新穎特征一致的最廣義的范圍。