專利名稱:處理器模塊的制作方法
技術領域:
本申請涉及處理器通信,并且特別地但不排他地涉及用于控制共享存儲器數據流的處理器通信。主要應用是用于控制訪問在單個集成電路封裝上的共享存儲器的多處理器數據傳送,但是也可以在任何共享存儲器控制器中使用。
背景技術:
基于微處理器的系統越來越多地包含需要彼此通信的多個中央處理器單元(CPU)或者核。用于實現CPU核之間的這一通信的方案要使用共享存儲器的區域。然而,使用共享存儲器需要控制通過共享存儲器區域的數據流。例如,需要控制共享存儲器區域,以使得接收處理器在發送方已經將數據放置到存儲器中之前不會試圖讀取數據,從而避免接收處理器訪問舊數據的寫后讀(read after write,RAW)風險。另外,應當對共享存儲器進行控制,以使得發送處理器在接收方讀取存儲器上的數據之前不會試圖重寫共享存儲器中的數據,從而避免接收方無法訪問舊數據的讀后寫(write after read, WAR)風險。已經對這些風險進行了研究,并且所提出的解決方案已經在實現作為循環緩存的共享存儲器中的流控制中有所涉及,其中發送方發送寫指針(WP),其指示要由發送方向接收方發送數據的下一存儲器位置,并且接收方發送讀指針(RP),其指示從接收方向發送方讀取的下一存儲器位置。在此類示例中,發送方將數據放置在緩存中,更新其本地寫指針,并且向接收方發送新的指針值。接收方接收經更新的寫指針,將該寫指針與其讀指針進行比較,并且該比較使得接收方能夠確定其是否可以從當前讀指針地址讀取數據(換言之,接收方在檢測到讀指針與寫指針之間的差值大于閾值時,使得讀操作發生)。當在共 享存儲器上執行讀操作時,接收方繼而可以向發送方發送回經更新的讀指針。發送方在接收到經更新的讀指針之后,具有了接收方已經從緩存讀取數據的信息,并且由此可以“清除”存儲器空間,這使得假如發送方寫操作不會造成寫指針趕上或者經過讀指針,則發送方能夠再次寫入數據。然而,處理器之間的這樣的指針通信需要足夠大的能夠尋址整個緩存的指針。例如,具有256個位置的緩存需要每指針最少8比特。另外,流控制可以將指針實現為(相對于緩存基址的)相對地址或者絕對地址。由此,讀指針和寫指針通常可能需要32比特尋址能力(或者甚至每指針更高數目的比特)。另外,在發送方和接收方在隔開顯著的布線距離的分離的芯片(或者相同的芯片)上時,此類的通信是有問題的。在此類示例中,在發送方和接收方之間傳送多條線路的開銷可能會高得不可接受。但是,已經有這樣的建議,其他共享存儲器位置可以用于存儲讀指針和寫指針的值,并且由此不需要在中央處理單元之間傳送寫指針和讀指針,附加共享存儲器空間的使用將不同的通信負載放置到發送方和接收方二者上,以便輪詢經更新的指針值的指針位置。另外,在發送方和接收方在分離的時鐘域的情況下,讀指針和寫指針的通信需要附加的硬件來保證指針安全地通信而不會由于時鐘域邊界錯誤而遭到損壞。另外,流控制設計確定發送方與接收方之間的公共傳送大小,使得發送方能夠維持本地讀指針和寫指針,并且使得接收方能夠維持本地讀指針。此類示例還配置為允許發送方包含存儲器映射寄存器,其驅動對接收方的請求信號。另外,在此類示例中,允許接收方包含另外的存儲器映射寄存器,該寄存器向發送方驅動確認信號。在此類示例中,發送方可以將數據放置到緩存中,更新發送方寫指針,繼而將讀指針和寫指針進行比較,以使得在發送方確定緩存中的數據量大于所同意的傳送大小時,發送方通過向存儲器映射寄存器寫入來置位請求信號。接收方看到所聲明的請求信號,并且從共享存儲器緩存讀取所同意的數據量。一旦接收方已經讀取了數據,接收方就使用接收方存儲器映射寄存器將確認信號反相。發送方繼而檢測確認信號的邊沿,并且更新發送方讀指針,以便考慮從共享存儲器緩存讀取的數據。繼而,基于共享存儲器緩存的當前填充水平,發送方可以選擇清除或者聲明請求信號。流控制的這些示例允許維持流控制,因為除非請求被聲明,接收方將不會試圖從緩存讀取數據。而且,如果在確認信號上的邊沿的序列保證發送方的讀指針的復制保持最新時,寫指針通過讀指針,則發送方將不會將數據寫入到緩存中。在這樣的示例中,在發送方和接收方之間僅需要兩條線,請求寫線和確認線。然而,請求和確認信號需要在發送方和接收方之間非常快速的傳播。當傳播較慢時,接收方可能在先前確認邊沿已經傳播通過以將請求解聲明之前輪詢了該請求,從而使得單個請求被發送方服務兩次。
實用新型內容本申請的目的是提供一種在兩個獨立時鐘的處理器之間通過共享存儲器區域的共享存儲器通信系統,該共享存儲器區域將被用作循環緩存,同時使連接信號的數目最小化,并且容忍這些信號的高傳播延遲。本申請的實施方式的目的是解決以上問題。根據本申請的第一方面,提供了一種處理器模塊,包括:處理器,配置用于與至少一個另一處理器模塊處理器共享數目;以及存儲器映射外圍設備,配置用于與至少一個另一處理器存儲器映射外圍設備通信,以控制數據的共享,特征在于,存儲器映射外圍設備包括發送方部分,該發送方部分包括:數據請求生成器,配置用于根據來自處理器的數據請求寄存器寫信號而向另一處理器模塊輸出數據請求指示符;以及確認等待信號生成器,配置用于根據來自另一處理器模塊的數據確認信號而向處理器輸出確認等待信號,特征在于,數據請求生成器數據請求指示符另外取決于數據確認信號,并且確認等待信號生成器確認等待信號另外取決于確認等待寄存器寫信號。數據請求生成器可以包括第一觸發器,配置用于接收作為置位輸入的數據請求寄存器寫信號、作為主控清除輸入的確認等待信號,并且輸出第一臨時數據請求信號。[0020]數據請求生成器還可以包括AND邏輯組合器,配置用于接收作為第一輸入的第一臨時數據請求信號、作為第二輸入的反相確認等待信號,并且輸出第二臨時數據請求信號。數據請求生成器還可以包括XOR邏輯組合器,配置用于接收作為第一輸入的第二臨時數據請求信號和取決于數據確認信號的第二輸入,并且輸出第三臨時數據請求信號。數據請求生成器還可以包括第二觸發器,配置用于輸出經同步的第三臨時數據請求信號作為數據請求指示符。確認等待信號生成器可以包括第一觸發器,配置用于接收作為主控置位輸入的邊沿檢測確認信號、作為清除輸入的來自處理器的確認等待寄存器寫信號,并且向處理器輸出確認等待信號。確認等待信號生成器還可以包括邊沿檢測器,配置用于檢測來自另一處理器模塊的數據確認信號的邊沿改變。確認等待信號生成器還可以包括數據確認同步器,配置用于將來自另一處理器模塊的數據確認信號同步到處理器模塊的時鐘域中。處理器可以配置用于經由存儲器與至少一個另一處理器模塊處理器共享數據。根據本申請的第二方面,提供了一種處理器模塊,包括:處理器,配置用于與至少一個另一處理器模塊處理器共享數據;以及存儲器映射外圍設備,配置用于與至少一個另一處理器存儲器映射外圍設備通信,以控制數據的共享,特征在于,存儲器映射外圍設備包括接收方部分,該接收方部分包括:數據確認生成器,配置用于根據來自處理器的數據確認寄存器寫信號而向另一處理器模塊輸出數據確認信號;以及數據請求等待信號生成器,配置用于根據來自另一處理器模塊的數據請求信號和數據確認信號而向處理器輸出數據請求等待信號。數據確認生成器可以包括翻轉觸發器,配置用于接收作為輸入的來自處理器的數據確認寄存器寫信號,并且向另一處理器模塊輸出數據確認信號。數據請求等待信號生成器可以包括XOR邏輯組合器,配置用于接收作為第一輸入的翻轉觸發器輸出,作為第二輸入的來自另一處理器模塊的數據請求信號,并且向處理器輸出數據請求等待信號。數據請求等待信號生成器還可以包括數據請求同步器,配置用于將來自另一處理器模塊的數據請求信號同步到處理器模塊的時鐘域中。 處理器可以配置用于經由存儲器與至少一個另一處理器模塊處理器共享數據。根據本申請的第三方面,提供了一種處理器模塊,包括:用于與至少一個另一處理器模塊共享數據的裝置;以及用于與至少一個另一處理器通信以控制數據的共享的裝置,特征在于,用于與至少一個另一處理器存儲器映射處理器通信的裝置包括用于控制向處理器模塊發送數據的裝置,包括:用于根據來自處理器的數據請求寄存器寫信號向另一處理器模塊輸出數據請求指示符的裝置;以及,用于根據來自另一處理器模塊的數據確認信號而向處理器輸出確認等待信號的裝置,特征在于,用于輸出數據請求指示符的裝置還取決于數據確認信號,并且用于輸出確認等待信號的裝置還取決于數據確認等待寄存器寫信號。用于輸出數據請求指示符的裝置可以包括第一觸發器,配置用于接收作為置位輸入的數據請求寄存器寫信號、作為主控清除輸入的確認等待信號,并且數據第一臨時數據請求信號。用于輸出數據請求指示符的裝置還可以包括AND邏輯組合器,配置用于接收作為第一輸入的第一臨時數據請求信號、作為第二輸入的反相確認等待信號,并且輸入第二臨時數據請求信號。用于輸出數據請求指示符的裝置還可以包括XOR邏輯組合器,配置用于接收作為第一輸入的第二臨時數據請求信號和取決于數據確認信號的第二輸入,并且輸出第三臨時數據請求信號。用于輸出數據請求指示符的裝置還可以包括第二觸發器,配置用于輸出經同步的第三臨時數據請求信號,作為數據請求指示符。用于輸出確認等待信號的裝置可以包括第一觸發器,配置用于接收作為主控置位輸入的邊沿檢測確認信號、作為清除輸入的來自處理器的數據確認等待寄存器寫信號,并且向處理器輸出確認等待信號。用于輸出確認等待信號的裝置還可以包括邊沿檢測器,配置用于檢測來自另一處理器模塊的數據確認信號的邊沿改變。用于輸出確認等待信號的裝置還可以包括用于將來自另一處理器模塊的數據確認信號同步到處理器模塊的時鐘域中的裝置。處理器可以配置用于經由存儲器與至少一個另一處理器模塊處理器共享數據。根據本申請的第四方面,提供了一種處理器模塊,包括:用于與至少一個另一處理器模塊處理器共享數據的裝置;以及,用于與至少一個另一處理器通信以控制數據的共享的裝置,特征在于,用于與至少一個另一處理器存儲器映射處理器通信的裝置包括用于控制接收數據的裝置,包括:用于根據來自處理器的數據確認寄存器寫信號而向另一處理器模塊輸出數據確認信號的裝置;以及,用于根據來自另一處理器模塊的數據請求信號和數據確認信號而向處理器輸出數據請求等待信號的裝置。用于輸出數據確認信號的裝置可以包括翻轉觸發器,配置用于接收作為輸入的來自處理器的數據確認寄存器寫信號,并且向另一處理器模塊輸出數據確認信號。用于輸出數據請求等待信號的裝置可以包括XOR邏輯組合器,配置用于接收作為第一輸入的翻轉觸發器輸出、作為第二輸入的來自另一處理器模塊的數據請求信號,并且向處理器輸出數據請求等待信號。用于輸出數據請求等待信號的裝置還可以包括用于將來自處理器模塊的數據請求信號同步到處理器模塊的時鐘域中的裝置。處理器可以配置用于經由存儲器與至少一個另一處理器模塊處理器共享數據。
為了更好地理解本申請,現在將通過示例的方式參考附圖,在附圖中:圖1示意性地示出了適于采用本申請的一些實施方式的共享存儲器系統;圖2示意性地更詳細地示出了根據本申請的一些實施方式的發送方MMP ;圖3示意性地更加詳細地示出了根據本申請的一些實施方式的接收方MMP ;圖4示出了根據本申請的一些實施方式的針對發送方請求操作的共享存儲器控制器的流程圖;[0051]圖5示出了根據本申請的一些實施方式的針對接收方請求和確認操作的共享存儲器控制器的流程圖;以及圖6示出了根據本申請的一些實施方式的針對發送方確認操作的共享存儲器控制器的流程圖。
具體實施方式
下文更加詳細地描述了提供共享存儲器控制的適合的裝置和可能的機制。參照圖1,示出了其中可以實現本申請的實施方式的示例系統、設備或者裝置。該系統被示出為包括第一設備10(設備I)、發送方,該發送方在以下示例中被配置為向存儲器發送數據的設備。系統還示出為包括第二設備20 (設備2)、接收方,該接收方在以下示例中被配置為從共享存儲器接收或者讀取數據的設備。該系統還示出為包括共享存儲器30,該共享存儲器30包括共享環形緩存部分31,其配置為可訪問第一設備和第二設備二者。可以理解,第一設備10和第二設備20可以是任何適當的電子處理單元,諸如在相同或者不同硅結構上裝配的處理核,或者與相同或者不同集成電路封裝一起封裝。在一些實施方式中,第一設備10、第二設備20和共享存儲器30制造在相同的硅結構上、或者封裝在相同的集成電路封裝內。在一些實施方式中,第一設備20通過第一時鐘域信號同步,并且第二設備20通過第二時鐘域信號同步。在一些實施方式中,第一時鐘域信號和第二時鐘域信號是相同的信號,然而,描述了以下示例,其中第一時鐘域信號與第二時鐘域信號不同,例如具有相位差或者頻率差。另外,雖然以下示例將第一設備和第二設備分別示出為發送方和接收方,但是可以理解,在一些實施方式中,每個設備可以配置用于發送和接收。另夕卜,在一些實施方式中,系統可以包括不止兩個配置用于彼此通信的設備。在此類實施方式中,每個設備通信配對可以包括發送方和接收方的配對,如在此描述的示例所示。在一些實施方式中,發送方設備10包括中央處理單兀(CPU) 11,其配置用于生成數據并且使得能夠向存儲器30共享環形緩存31發送數據。CPU 11可以配置為任何適當的處理器。發送方設備10還可以包括發送方存儲器映射外圍設備(發送方MMP) 13。發送方存儲器映射外圍設備可以配置用于輔助控制發送方與接收方設備之間的數據流。在一些實施方式中,發送方MMP 13可以配置用于從CPU 11接收數據請求(DREQ)寄存器寫信息,并且向接收方輸出數據請求(DREQ),以便指示發送方請求向接收方傳送數據(換言之,共享存儲器中存在數據用于獲取)。在一些實施方式中,發送方MMP 13可以配置用于從接收方MMP接收數據確認(DACK)信號,該信號指示請求已經由接收方設備確認,并且向發送方CPU11輸出數據確認等待寄存器信號。在一些實施方式中,發送方MMP還可以配置用于接收數據確認(DACK)寄存器寫信號。在一些實施方式中,發送方設備10還可以包括寄存器15,適于存儲將要由CPU使用的值。在一些實施方式中,發送方寄存器15包括發送方寫指針S:WP和發送方讀指針S:RP。發送方寫指針S:WP和發送方讀指針S:RP定義共享環形緩存31內的寫和讀地址,其詳述發送方設備向其寫入(寫指針)和從其讀取(讀指針RP)的共享存儲器的當前地址。在一些實施方式中,指針可以是絕對指針或者相對指針。在一些實施方式中,接收方設備20可以包括中央處理單元(CPU)21。在一些實施方式中,中央處理單元21可以是類似于發送方CPU 11的CPU,然而,在其他實施方式中,接收方CPU 21可以不同于發送方CPU 11。接收方CPU 21可以配置用于適于從共享存儲器讀取。在一些實施方式中,接收方設備20包括存儲器映射外圍設備(接收方MMP) 23。接收方MMP可以配置用于從接收方CPU 21接收數據確認(DACK)寄存器寫信號,并且向發送方輸出確認信號(DACK)。另外,接收方MMP 23可以配置用于從發送方設備接收數據請求(DREQ)信號,并且還配置用于向接收方CPU 21輸出請求等待信號(DREQ等待)。在一些實施方式中,接收方設備20還可以包括寄存器25,其包括接收方讀指針(R:RP)。如在此描述的,接收方讀指針(R:RP)可以配置用于包含共享存儲器30的地址值,該地址值詳述從其進行讀取的下一位置的位置。參照圖2,更加詳細地示出了發送方存儲器映射外圍設備(發送方MMP)13。在一些實施方式中,發送方MMP 13包括第一觸發器(觸發器A)101。第一觸發器101配置有清除(CLR)數據輸入、置位(SET)數據輸入、數據輸出(Q)和同步時鐘輸入( > )。在以下示例中,清除輸入優先于置位輸入。第一觸發器101接收作為置位輸入的數據請求(DREQ)寄存器寫信號。另外,第一觸發器101配置用于接收數據確認(DACK)等待寄存器信號作為清除輸入。第一觸發器101可以配置用于向第一 AND門103輸出數據輸出(Q)。在一些實施方式中,發送方MMP 13可以包括AND門103。AND門103配置用于接收作為第一輸入的第一觸發器101的數據輸出、以及作為第二輸入的反相的數據確認(DACK)等待寄存器信號。AND門103的輸出被傳遞至第一 XOR門105。在一些實施方式中,發送方MMP 13包括第一 XOR門105。第一 XOR門105配置用于接收作為第一輸入的AND門103的輸出,并且還配置用于接收作為第二輸入的第五觸發器113 (觸發器E)的輸出。第一 XOR門105還配置用于向第二觸發器107輸出經過XOR的
邏輯組合。在一些實施方式中,發送方存儲器映射外圍設備13還包括第二觸發器107 (觸發器B),其配置用于接收作為數據輸入的第一 XOR門105輸出。第二觸發器107還配置用于輸出輸入的同步版本,該輸入是傳送至接收方設備20的數據請求(DREQ)信號。在一些實施方式中,發送方MMP 13還包括第三觸發器109 (觸發器C)。該第三觸發器109配置用于接收作為數據輸入的來自接收方的數據確認信號(DACK)。第三觸發器109配置用于向第四觸發器111輸出輸入信號的同步版本或者定時版本。在一些實施方式中,發送方MMP 13包括第四觸發器(觸發器D) 111。第四觸發器111配置用于接收作為數據輸入的第三觸發器109的輸出,并且還配置用于向第五觸發器113以及第二 XOR門115輸出輸入信號的同步版本或者定時版本。在一些實施方式中,發送方MMP 13包括第五觸發器113(觸發器E),其配置用于接收作為數據輸入的第四觸發器111的輸出,并且配置用于向第一 XOR門105和第二 XOR門115輸出輸入信號的同步版本或者定時版本。在一些實施方式中,發送方MMP 13還包括第二XOR門115,其配置用于接收第四觸發器111的輸出作為第一輸入,并且接收第五觸發器113的輸出作為第二輸入。第二 XOR門115配置用于向第六觸發器117輸出經過XOR的組合。[0071]在一些實施方式中,發送方MMP 13還包括第六觸發器117 (觸發器F)。第六觸發器117配置用于接收作為置位輸入(SET)的第二XOR門115的輸出,并且配置用于接收作為清除輸入(CLR)的數據確認等待寄存器寫信號(DACK等待寄存器寫)。第六觸發器117配置有比清除輸入優先的置位輸入。第六觸發器117的輸出(Q)被輸出作為數據確認(DACK)等待寄存器信號,該信號被輸出至CPU、第一觸發器101,并且作為AND門103的反相輸入。參照圖3,詳細示出了示例接收方存儲器映射外圍設備(接收方MMP) 23。在一些實施方式中,接收方MMP 23包括第一或者翻轉觸發器201 (觸發器G)。翻轉觸發器201可以配置用于接收作為其翻轉輸入的、從接收方CPU 21接收的數據確認寄存器寫信號(DACK寄存器寫)。翻轉觸發器201的輸出可以被輸出作為去往發送方的確認信號(DACK)和去往XOR門207的輸入。在一些實施方式中,接收方MMU 23還可以包括第二觸發器203(觸發器H),其配置用于從發送方10接收請求(DREQ)信號,并且向第三觸發器205輸出定時版本。在一些實施方式中,接收方MMU 23還可以包括第三觸發器205(觸發器I),其配置用于接收作為數據輸入的第二觸發器203的輸出,并且配置用于向XOR門207輸出定時版本。在一些實施方式中,接收方MMU 23還包括XOR門207,其配置用于接收作為第一輸入的翻轉觸發器201的輸出,以及作為第二輸入的第三觸發器205的輸出。XOR門207可以配置用于向接收方CPU 21輸出數據請求等待(DREQ等待)信號。在發送方和接收方MMU觸發器的示例中,為了清楚起見省略了時鐘和復位連接。另外,在此處描述的示例中,所有的觸發器在接電時被復位為O。在此類實施方式中,如上文所述,觸發器輸入(置位、清除和翻轉)被視為同步輸入。在這些示例中,所有的發送方觸發器另外使用相同的“發送方”時鐘源定時,并且所有的接收方觸發器使用相同的“接收方”時鐘源定時。在一些實施方式中,發送方和接收方時鐘源可以是相同或者基本上相同的時鐘源。然而,可以理解,在此處描述的一些實施方式中,時鐘源可以不同,并且具有相位差或者頻率差。參照圖4、圖5和圖6,詳細地描述了根據本申請的實施方式的設備之間的通信的操作。參照圖4,描述了設備之間的通信以及發送方數據請求的傳送的操作。在一些實施方式中,發送方CPU 11可以配置用于將數據寫入到循環緩存(或者共享環形緩存)中。例如,發送方CPU 11可以使用發送方寫指針S:WP將數據寫入到循環緩存中。發送方CPU 11還可以配置用于通過檢查寫指針S:WP不會經過讀指針S:RP而確定數據傳送大小,來保證數據不會從緩存溢出。在圖4中通過步驟301示出將數據寫到循環緩存上的操作。一旦發送方CPU 11已經將數據寫入到循環緩存中,發送方CPUll就可以配置用于確定或者計算緩存中剩余多少數據。換言之,發送方CPU 11確定緩存容量。當數據的容量或者可用量大于傳送閾值時,CPU 11可以配置用于寫入數據請求寄存器以便向接收方20發送請求。傳送閾值可以是任何適當的值,諸如零,換言之,發送方CPU可以配置用于在緩存不為空的任何時候發送請求。在圖4中,通過步驟303示出確定緩存容量的操作,以及在檢查到容量大于傳送閾值時,向數據請求寄存器寫入以便發送請求的操作。在數據請求寄存器寫信號等于I時,被聲明的數據請求寄存器寫信號將發送方MMP第一觸發器101設置為值I。在圖4中,通過步驟305示出了被聲明的數據請求寄存器寫信號將觸發器101設置為I的操作。該信號繼而經由AND門103和XOR門傳播,以使得第二觸發器107的輸入被反相,并且繼而在下一時鐘信號時傳播,以便以輸出的DREQ信號的形式向接收方輸出請求。在圖4中,通過步驟307示出了向接收方輸出信號DREQ的操作。參照圖5,更加詳細地示出了根據本申請的一些實施方式的從DREQ信號的輸出到DACK信號的輸出的設備之間的通信的操作。接收方MMP 23可以配置用于從發送方10接收數據請求(DREQ)信號,其中第二觸發器203和第三觸發器205將請求同步到接收方時鐘域中。可以理解,根據用于發送方(CPU)和接收方(CPU)的時鐘頻率,同步請求所需要的觸發器的數目可以大于或者小于兩個觸發器。在一些實施方式中,接收方MMP 23可以配置為不包括重新同步觸發器,換言之,DREQ信號直接傳遞至XOR門207,其中發送方和接收方在相同的時鐘域內,或者處理技術足以允許自動同步。在圖5中,通過步驟309示出了將從發送方接收的數據請求同步到接收方時鐘域中的操作。接收方MMP 23繼而可以配置用于將接收方確認(DACK)輸出與經重新同步的來自發送方的請求進行比較。如圖3所示,該比較可以通過XOR門207執行。當兩個信號(即接收方確認(DACK)輸出和經重新同步的來自發送方的請求)不同時,接收方MMP 23尤其是XOR門207可以配置用于聲明DREQ等待信號,以指示來自發送方的請求等待被服務。在一些實施方式中,該DREQ等待信號可以被傳輸至CPU 21。然而,數據請求等待信號可以用于中斷接收方CPU 21,使得其在寄存器中可用于讀取,或者使得其可用作分支的標記。在圖5中,通過步驟311示出了將接收方確認信號與同步的數據請求信號進行比較以生成DREQ等待信號。接收方CPU 21可以配置用于接收請求通知(DREQ等待),并且通過使用接收方讀指針(R:RP)從共享存儲器區域中讀取約定的數據量而作出反應。接收方CPU 21繼而可以配置用于更新接收方讀指針(R:RP),以便將已經讀取的數據量納入考慮,并且寫入數據確認寄存器,以便向發送方發送確認。在圖5中,通過步驟313示出了接收請求等待通知、讀取約定的數據量、更新讀指針以及寫入數據確認寄存器以發送確認的操作。寫入DACK寄存器以向發送方發送確認,這使得數據確認寄存器寫信號得到聲明,在一些實施方式中,該數據確認寄存器寫信號被翻轉觸發器201接收,使得觸發器的值翻轉。在圖5中,通過步驟315示出了聲明翻轉觸發器201以及寄存器寫信號中的數據的操作。觸發器201的翻轉使得輸出值與來自發送方的經重新同步的請求相同,將數據請求等待信號解聲明。[0098]在圖5中,通過步驟317示出了數據請求等待信號的解聲明。另外,翻轉觸發器201配置用于向發送方發送確認信號(DACK)。在圖5中,通過步驟319示出了向發送方輸出觸發器201輸出的確認信號。參照圖6,更加詳細地示出了從確認信號的輸出到通信循環的完成的設備之間的通信的操作。發送方MMP 13可以配置用于從接收方接收確認信號(DACK)。在一些實施方式中,通過第三觸發器109和第四觸發器111將確認信號重新同步到發送方時鐘域中。可以理解,在一些實施方式中,根據發送方和接收方的時鐘頻率,重新同步觸發器的數目可以大于或者小于兩個觸發器。另外,如在此描述的,發送方可以不配置重新同步觸發器,其中,在本申請的一些實施方式中,相同的時鐘域用于發送方和接收方二者,或者處理技術允許不進行重新同步。在圖6中,通過步驟321示出了將確認信號同步到發送方時鐘域中的操作。另外,將經重新同步的確認信號傳遞通過第五觸發器113,并且繼而可以通過第二XOR門115將第五觸發器113的輸入和輸出進行比較。第二 XOR門115繼而可以配置用于檢測正在接收的確認信號的上升沿或者下降沿。在圖6中,通過步驟323示出了確認上升沿或者下降沿的檢測或者確定。上升沿或者下降沿檢測輸出繼而置位第六觸發器117。在圖6中通過步驟325示出了將觸發器117置位的操作。觸發器117的置位導致輸出值的聲明,換言之,第六觸發器的輸出被設置為I。該輸出值使得第一觸發器101的輸出被清除,從而消除第一觸發器101處的原始數據請求寄存器寫(DREQ寄存器寫)信號的影響,該信號被傳播至向接收方輸出的DREQ信號。在圖6中,通過步驟327示出了 DREQ值的清除,換言之,消除請求操作。還從第六觸發器117輸出數據確認等待寄存器信號。換言之,在一些實施方式中,發送方MMP 13向發送方CPU 11聲明第六觸發器的值,以指示確認已經被接收到。根據一些實施方式,以類似于接收方處接收的數據請求信號的相似的方式,該確認可以用作中斷、寄存器值或者標記。在圖6中,通過步驟329示出了向發送方CPU 11輸出數據確認等待觸發器信號的操作。在一些實施方式中,發送方CPU 11通過更新發送方讀指針S:RP而對確認等待信號作出反應。換言之,發送方CPU 11釋放被接收方已經讀取的數據占據的共享存儲器空間。在圖6中,通過步驟331示出了更新S:RP的操作。在一些實施方式中,發送方CPU 11還可以重新計算緩存填充水平。在緩存中的數據量大于傳送閾值時,發送方CPU 11可以配置用于寫入數據請求(DREQ)寄存器,以便重新聲明數據請求。在圖6中,通過步驟333示出了重新計算緩存容量以及在容量大于傳送閾值時寫ADREQ寄存器的操作。該操作支持生成DREQ和DACK信號的另一循環。本申請的這些實施方式的優點在于,使得所需要的連接的數目最小化(每個方向僅一個信號)。另外,在一些實施方式中,操作可以容許請求或者確認信號的任何量的延遲。[0117]在這些實施方式中,假設緩存足夠大,則發送方可以將很多值得傳送的數據放置到緩存中,而不需要接收方移除任何數據。另外,在一些實施方式中,多個請求不會相互抵消。根據一些實施方式,還可以允許發送方CPU在任何時刻安全地重新計算和重新聲明請求,而不會使得接收方接收假請求。例如,在發送方試圖重新聲明請求同時確認正在等待時,請求被忽略,因為等待確認覆蓋了請求。可以理解,在可以通過CPU上運行的軟件執行讀指針和寫指針管理時,本申請的實施方式可以擴展為包括自動指針管理硬件。另外,雖然以上說明描述了執行共享存儲器的控制,但是也可以使用本申請的實施方式實現從一個CPU向另一 CPU傳送預定命令。一般地,本實用新型的各種實施方式可以實現為硬件或者專用電路、軟件、邏輯或者其任意組合。例如,一些方面可以實現為硬件,而其他方面可以實現為固件或者軟件,軟件可以由控制器、微處理器或者其他計算設備執行,但是本實用新型不限于此。雖然本實用新型的各種方面可以示出和描述為框圖、流程圖,或者使用某些其他圖形表示,但是可以理解,作為非限制性的示例,在此描述的這些框、裝置、系統、技術或者方案可以實現為硬件、軟件、固件專用電路或者邏輯、通用硬件或者控制器或者其他計算設備,或者其某些組合。本申請的實施方式可以通過計算機軟件來實現,該計算機軟件可由(諸如處理器實體中的)移動設備的數據處理器、硬件或者軟件和硬件的組合執行。另外,在這個方面,應當注意,附圖中所示的邏輯流的任何框可以表示程序步驟或者互連的邏輯電路、框和功能,或者程序步驟與邏輯電路、框和功能的組合。軟件可以存儲在物理介質、磁性介質和光學介質上,物理介質諸如存儲器芯片或者在處理器內實現的存儲器塊,磁性介質諸如硬盤或者軟盤,光學介質例如DVD及其數據變體CD。存儲器可以是適于本地技術環境的任何類型,并且可以使用任何適當的數據存儲技術來實現,諸如基于半導體的存儲器設備、磁性存儲器設備和系統、光學存儲器設備和系統、固定存儲器和可移除存儲器。數據處理器可以是適于本地技術環境的任何類型,并且作為非限制性的示例,可以包括以下一種或多種:通用計算機、專用計算機、微處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、門級電路和基于多核處理器架構的處理器。本實用新型的實施方式可以在諸如集成電路模塊的各種組件中實現。集成電路的設計總體來說是高度自動化的過程。復雜和強大的軟件工具可用于將邏輯級設計轉換為半導體電路設計,該半導體電路設計準備在半導體襯底上刻蝕和形成。諸如加利福尼亞Mountain View的Synopsys, Inc.和加利福尼亞San Jose的Cadence Design提供的程序可以對導體進行自動布線,并且使用已經建好的設計規則以及預先存儲的設計模塊庫將組件定位在半導體芯片上。一旦已經完成半導體電路的設計,就可以將所產生的標準化電子格式(例如,Opus、GDSII等)的設計傳輸至半導體制造廠或者“代工廠”用于制造。以上描述已經通過示例性方式和非限制性示例提供了本實用新型的示例性實施方式的完整和告知性的描述。然而,當結合附圖和所附權利要求閱讀時,考慮到以上描述,各種修改和調試將對本領域技術人員變得易見。然而,本實用新型的教導的所有此類和相似的修改都將落入所附權利要求限定的本實用新型的范圍內。
權利要求1.一種處理器模塊,特征在于包括: 處理器,其配置用于與至少一個另一處理器模塊處理器共享數據;以及 存儲器映射外圍設備,其配置用于與至少一個另一處理器存儲器映射外圍設備通信,以控制所述數據的共享,其中,所述存儲器映射外圍設備包括發送方部分,該發送方部分包括: 數據請求生成器,配置用于根據來自所述處理器的數據請求寄存器寫信號而向所述另一處理器模塊輸出數據請求指示符;以及 確認等待信號生成器,配置用于根據來自所述另一處理器模塊的數據確認信號而向所述處理器輸出確認等待信號,其中,所述數據請求生成器數據請求指示符還取決于所述數據確認信號,并且所述確認等待信號生成器確認等待信號還取決于所述確認等待寄存器寫信號。
2.根據權利要求1所述的處理器模塊,特征在于,所述數據請求生成器包括:第一觸發器,配置用于接收作為置位輸入的所述數據請求寄存器寫信號、作為主控清除輸入的所述確認等待信號,并且輸出第一臨時數據請求信號。
3.根據權利要求2所述的處理器模塊,特征在于,所述數據請求生成器包括:AND邏輯組合器,配置用于接收作為第一輸入的所述第一臨時數據請求信號、作為第二輸入的反相確認等待信號,并且輸出第二臨時數據請求信號。
4.根據權利要求3所述的處理器模塊,特征在于,所述數據請求生成器還包括:XOR邏輯組合器,配置用于接收作為第一輸入的所述第二臨時數據請求信號、以及取決于所述數據確認信號的第二輸入,并且輸出第三臨時數據請求信號。
5.根據權利要求4所述的處理器模塊,特征在于,所述數據請求生成器還包括:第二觸發器,用于輸出經同步的第三臨時數據請求信號作為所述數據請求指示符。
6.根據權利要求1至5中任一項所述的處理器模塊,特征在于,所述確認等待信號生成器包括:第一觸發器,配置用于接收作為主控置位輸入的邊沿檢測確認信號、作為清除輸入的來自處理器的確認等待寄存器寫信號,并且向所述處理器輸出所述確認等待信號。
7.根據權利要求6所述的處理器模塊,特征在于,所述確認等待信號生成器還包括:邊沿檢測器,配置用于檢測來自所述另一處理器模塊的所述數據確認信號的邊沿改變。
8.根據權利要求7所述的處理器模塊,特征在于,所述確認等待信號生成器還包括:數據確認同步器,配置用于將來自所述另一處理器模塊的所述數據確認信號同步到所述處理器模塊的時鐘域中。
9.根據權利要求1至5中任一項所述的處理器模塊,特征在于,所述處理器配置用于經由存儲器與所述至少一個另一處理器模塊處理器共享數據。
10.一種處理器模塊,特征在于包括: 處理器,其配置用于與至少一個另一處理器模塊處理器共享數據;以及 存儲器映射外圍設備,配置用于與至少一個另一處理器存儲器映射外圍設備通信,以控制所述數據的共享,其中,所述存儲器映射外圍設備包括接收方部分,該接收方部分包括: 數據確認生成器,配置用于根據來自所述處理器的數據確認寄存器寫信號而向所述另一處理器模塊輸出數據確認信號; 以及數據請求等待信號生成器,配置用于根據來自所述另一處理器模塊的數據請求信號以及所述數據確認信號而向所述處理器輸出數據請求等待信號。
11.根據權利要求10所述的處理器模塊,特征在于,所述數據確認生成器包括:翻轉觸發器,配置用于接收作為輸入的來自所述處理器的所述數據確認寄存器寫信號,并且向所述另一處理器模塊輸出所述數據確認信號。
12.根據權利要求11所述的處理器模塊,特征在于,所述數據請求等待信號生成器包括:XOR邏輯組合器,配置用于接收作為第一輸入的所述翻轉觸發器輸出、作為第二輸入的來自所述另一處理器模塊的所述數據請求信號,并且向所述處理器輸出所述數據請求等待信號。
13.根據權利要求12所述的處理器模塊,特征在于,所述數據請求等待信號生成器還包括:數據請求同步器,配置用于將來自所述另一處理器模塊的所述數據請求信號同步到所述處理器模塊的時鐘域中。
14.根據權利要求10至13中任一項所述的處理器模塊,特征在于,所述處理器配置用于經由存儲器與所述至少一個另一處理器模塊處理器共享數據。
15.—種處理器模塊,包括: 用于與至少一個另一處理器模塊處理器共享數據的裝置;以及 用于與所述至少一個另一處理器通信以控制所述數據的共享的裝置,其中,用于與所述至少一個另一處理器存儲器映射處理器通信的裝置包括用于控制向所述處理器模塊發送數據的裝置,包括: 用于根據來自所述處理器的數據請求寄存器寫信號而向所述另一處理器模塊輸出數據請求指示符的裝置;以及 用于根據來自所述另一處理器模塊的數據確認信號而向所述處理器輸出確認等待信號的裝置,其中,所述用于輸出數據請求指示符的裝置還取決于所述數據確認信號,并且所述用于輸出確認等待信號的裝置還取決于所述確認等待寄存器寫信號。
16.根據權利要求15所述的處理器模塊,特征在于,所述用于輸出數據請求指示符的裝置包括:第一觸發器,配置用于接收作為置位輸入的所述數據請求寄存器寫信號、作為主控清除輸入的所述確認等待信號,并且輸出第一臨時數據請求信號。
17.根據權利要求16所述的處理器模塊,特征在于,所述用于輸出數據請求指示符的裝置包括:AND邏輯組合器,配置用于接收作為第一輸入的所述第一臨時數據請求信號、作為第二輸入的反相確認等待信號,并且輸出第二臨時數據請求信號。
18.根據權利要求17所述的處理器模塊,特征在于,所述用于輸出數據請求指示符的裝置還包括:XOR邏輯組合器,配置用于接收作為第一輸入的所述第二臨時數據請求信號以及取決于所述數據確認信號的第二輸入,并且輸出第三臨時數據請求信號。
19.根據權利要求18所述的處理器模塊,特征在于,所述用于輸出數據請求指示符的裝置還包括:第二觸發器,配置用于輸出經同步的第三臨時數據請求信號作為所述數據請求指示符。
20.根據權利要求15至19中任一項所述的處理器模塊,特征在于,所述用于輸出確認等待信號的裝置包括:第一觸發器, 配置用于接收作為主控置位輸入的邊沿檢測確認信號、作為清除輸入的來自處理器的數據確認等待寄存器寫信號,并且向所述處理器輸出所述確認等待信號。
21.根據權利要求20所述的處理器模塊,特征在于,所述用于輸出確認等待信號的裝置還包括:邊沿檢測器,配置用于檢測來自所述另一處理器模塊的所述數據確認信號的邊沿改變。
22.根據權利要求21所述的處理器模塊,特征在于,所述用于輸出確認等待信號的裝置還包括:用于將來自所述另一處理器模塊的所述數據確認信號同步到所述處理器模塊的時鐘域中的裝置。
23.根據權利要求15至19中任一項所述的處理器模塊,特征在于,所述處理器配置用于經由存儲器與所述至少一個另一處理器模塊處理器共享數據。
24.—種處理器模塊,特征在于包括: 用于與至少一個另一處理器模塊處理器共享數據的裝置;以及 用于與所述至少一個另一處理器通信以控制所述數據的共享的裝置,其中,用于與所述至少一個另一處理器存儲器映射處理器通信的裝置包括用于控制接收數據的裝置,包括: 用于根據來自所述處理器的數據確認寄存器寫信號而向所述另一處理器模塊輸出數據確認信號的裝置;以及 用于根據來自所述另一處理器模塊的數據請求信號以及所述數據確認信號而向所述處理器輸出數據請求等待信號的裝置。
25.根據權利要求24所述的處理器模塊,特征在于,所述用于輸出數據確認信號的裝置包括:翻轉觸發器,配置用于接收作為輸入的來自所述處理器的所述數據確認寄存器寫信號,并且向所述另一處理器模塊輸出所述數據確認信號。
26.根據權利要求25所述的處理器模塊,特征在于,所述用于輸出數據請求等待信號的裝置:包括XOR邏輯組合器,配置用于接收作為第一輸入的所述翻轉觸發器輸出、作為第二輸入的來自所述另一處理器模塊的所述數據請求信號,并且向所述處理器輸出所述數據請求等待信號。
27.根據權利要求26所述的處理器模塊,特征在于,所述用于輸出數據請求等待信號的裝置還包括:用于將來自所述另一處理器模塊的所述數據請求信號同步到所述處理器模塊的時鐘域中的裝置。
28.根據權利要求24至27中任一項所述的處理器模塊,特征在于,所述處理器配置用于經由存儲器與所述 至少一個另一處理器模塊處理器共享數據。
專利摘要本實用新型的實施方式涉及處理器模塊。具體地,涉及一種處理器模塊,包括處理器,配置用于與至少一個另一處理器模塊處理器共享數據;存儲器映射外圍設備,配置用于與至少一個另一處理器存儲器映射外圍設備通信,以控制數據的共享,其中,存儲器映射外圍設備包括發送方部分,該發送方部分包括數據請求生成器,其配置用于根據來自處理器的數據請求寄存器寫信號而向另一處理器模塊輸出數據請求指示符;確認等待信號生成器,配置用于根據來自另一處理器模塊的數據確認信號而向處理器輸出確認等待信號,其中,數據請求生成器數據請求指示符還取決于數據確認信號,并且確認等待信號生成器確認等待信號還取決于確認等待寄存器寫信號。
文檔編號G06F13/38GK203012705SQ20122063449
公開日2013年6月19日 申請日期2012年11月21日 優先權日2011年12月12日
發明者D·史密斯 申請人:意法半導體(R&D)有限公司