專利名稱:請求控制裝置、請求控制方法及相關(guān)的處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,更具體地說,涉及請求控制裝置、請求控制方法及相關(guān)的處理器。
背景技術(shù):
一種常見的多處理器協(xié)作架構(gòu)是,所述多個處理器具有不同的類型。例如,一個通用處理器作為主處理器,加上多個與該通用處理器對應的專用處理器作為協(xié)處理器。所述專用處理器針對某些特殊應用進行了特別的優(yōu)化,從而在處理所述特殊應用時具有比通用處理器更高的性能。所述應用可以是,例如,加密/解密、壓縮/解壓縮、編碼/解碼、模式匹配或XML解析等。圖1給出了這種架構(gòu)的示意圖。通用處理器將需要進行處理的數(shù)據(jù)通過請求存儲單元發(fā)送給專用處理器,專用處理器將處理得到的結(jié)果通過結(jié)果存儲單元發(fā)送給通用處理器。一般來說,請求存儲單元或結(jié)果存儲單元設置在專用處理器的芯片內(nèi)部,由于芯片面積的限制,請求存儲單元或結(jié)果存儲單元的容量通常都比較小,例如典型的請求存儲單元只能容納8個或16個請求。為了解決這一問題,可以在外部存儲器開辟存儲區(qū),從而對芯片內(nèi)部的請求存儲單元或結(jié)果存儲單元進行擴展。以下為了描述的方便,將請求存儲單元位于芯片內(nèi)部的部分稱為首要請求存儲區(qū),將請求存儲單元位于外部存儲器中的擴展部分稱為輔助請求存儲區(qū)。首要請求存儲區(qū)和輔助請求存儲區(qū)都是請求存儲單元的一部分。類似地,將結(jié)果存儲單元位于芯片內(nèi)部的部分稱為首要結(jié)果存儲區(qū),將結(jié)果存儲單元位于外部存儲器中的擴展部分稱為輔助結(jié)果存儲區(qū)。首要結(jié)果存儲區(qū)和輔助結(jié)果存儲區(qū)都是結(jié)果存儲單元的一部分。下面示例性地說明輔助請求存儲區(qū)的工作原理,本領(lǐng)域技術(shù)人員可以容易地推知輔助結(jié)果存儲區(qū)的工作方式。此外,本領(lǐng)域技術(shù)人員也可以理解,這里所謂的外部存儲器指的是除了芯片內(nèi)部的存儲單元以外的其他存儲器,例如高速緩存(cache), 內(nèi)存、硬盤等。本領(lǐng)域技術(shù)人員可以設計出很多方法來決定在何種外部存儲器中開辟所述輔助請求存儲區(qū)。輔助請求存儲區(qū)是外部存儲器中的一塊存儲區(qū),芯片內(nèi)部的請求存儲單元存取裝置可以記錄該輔助請求存儲區(qū)的首地址。所述請求存儲單元存取裝置可以是芯片內(nèi)部的請求控制裝置的一部分。在芯片內(nèi)部的首要請求存儲區(qū)處于填滿狀態(tài)的情況下,如果接收到新的請求,請求存儲單元存取裝置會將該新的請求送入外部存儲器中的輔助請求存儲區(qū), 并且記錄該新的請求在輔助請求存儲區(qū)中的位置,即相對于輔助請求存儲區(qū)首地址的偏移量。當然,請求存儲單元存取裝置也可以以其他方式記錄該請求在外部存儲器中的位置,而不僅限于此處所描述的用輔助請求存儲區(qū)的首地址加上該請求相對于輔助請求存儲區(qū)首地址的偏移量的方式。在所述首要請求存儲區(qū)不再處于填滿狀態(tài)時,請求存儲單元存取裝置可以將輔助請求存儲區(qū)中的請求讀出并放入首要請求存儲區(qū)中。上述方法解決了芯片內(nèi)部的請求存儲單元或結(jié)果存儲單元容量小的問題。但是仍然存在需要進一步改進請求存儲單元存取裝置和輔助結(jié)果存儲區(qū)管理裝置以便適應實際應用中的復雜情況的需要。
發(fā)明內(nèi)容
本發(fā)明提供了請求控制裝置、請求控制方法以及相關(guān)的處理器。所述請求控制設備,連接到由首要請求存儲區(qū)和輔助請求存儲區(qū)構(gòu)成的請求存儲單元,包括隊列單元保存標識符記錄區(qū),配置為記錄與所述請求存儲單元中的隊列單元對應的保存標識符;比較裝置,配置為判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;和置標裝置,配置為在所述第一隊列單元與所述已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述隊列單元保存標識符記錄區(qū)中與所述已經(jīng)在請求存儲單元中的隊列單元對應的保存標識符設置為指示不保存與該消息相關(guān)的狀態(tài)。連接到上述請求存儲單元的處理器還包括讀標裝置,配置為根據(jù)所述隊列單元保存標識符記錄區(qū)中記錄的與隊列單元對應的保存標識符確定在處理完該隊列單元后是否保存與隊列單元相關(guān)的消息狀態(tài)。根據(jù)本發(fā)明實施例的用于控制由首要請求存儲區(qū)和輔助請求存儲區(qū)構(gòu)成的請求存儲單元的請求控制方法包括在隊列單元保存標識符記錄區(qū)中記錄與所述請求存儲單元中的隊列單元對應的保存標識符;判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;和在所述第一隊列單元與所述已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述隊列單元保存標識符記錄區(qū)中與所述已經(jīng)在請求存儲單元中的隊列單元對應的保存標識符設置為指示不保存與該隊列單元相關(guān)的消息狀態(tài)。根據(jù)本發(fā)明的技術(shù)方案,可以減少由于不必要的保存/加載狀態(tài)引起的外部存儲器訪問,還可以減少設置隊列單元的保存標識符時所需的外部存儲器訪問,從而提高處理器的處理速度。進一步,根據(jù)本發(fā)明的某些實施例,還可以減少比較兩個隊列單元是否對應于相同消息時所需的外部存儲器訪問。
圖1示出了典型的多處理器協(xié)作架構(gòu)。圖2示出了結(jié)合預處理的消息發(fā)送-接收流程。圖3是專用處理器的請求存儲單元和相應的消息狀態(tài)切換的示意。圖4A示出了根據(jù)本發(fā)明一個實施例的多處理器協(xié)作架構(gòu)。圖4B示出了圖4A的實施例所對應的專用處理器的請求存儲單元和相應的消息狀態(tài)切換的示意。圖5示出了根據(jù)本發(fā)明另一個實施例的多處理器協(xié)作架構(gòu)。圖6A示出了根據(jù)本發(fā)明又一個實施例的多處理器協(xié)作架構(gòu)。圖6B示出了圖6A的實施例所對應的專用處理器的請求存儲單元和相應的消息狀態(tài)切換的示意。圖7示出了根據(jù)本發(fā)明再一個實施例的多處理器協(xié)作架構(gòu)。
具體實施方式
以下參照
本發(fā)明提供的處理器和調(diào)度處理器的方法的具體實施方式
。在下面的說明中,闡述了許多具體細節(jié)以便更全面地了解本發(fā)明。但是,本技術(shù)領(lǐng)域技術(shù)人員容易理解,本發(fā)明的實現(xiàn)可不具有這些具體細節(jié)中的一些,并且本發(fā)明并不限于所介紹的特定實施例。相反,可以考慮用下面的特征和要素的任意組合來實施本發(fā)明,而無論它們是否涉及不同的實施例。因此,下面的方面、特征、實施例和優(yōu)點僅作說明之用而不應被看作是所附權(quán)利要求的要素或限定,除非權(quán)利要求中明確提出。還需要說明的一點是,為了避免因不必要的細節(jié)而模糊了本發(fā)明,在附圖中僅僅示出了與根據(jù)本發(fā)明的方案密切相關(guān)的裝置結(jié)構(gòu)和/或處理步驟,而省略了與本發(fā)明關(guān)系不大的其他細節(jié)。此外,除非刻意地使用 “直接”或者“間接”加以限定,否則本申請文件中的連接既包括直接連接,也包括間接地連接。在網(wǎng)絡環(huán)境下,原始消息在發(fā)送端被包裝成多個數(shù)據(jù)包,每個數(shù)據(jù)包包括一個原始消息段;這些數(shù)據(jù)包然后通過網(wǎng)絡發(fā)送到接收端,由接收端將這些數(shù)據(jù)包包括的原始消息段組合起來從而恢復原始消息。圖2示出了一種常見的結(jié)合預處理的消息發(fā)送-接收流程。圖2所示的流程針對需要發(fā)送端和接收端進行對稱處理的情況。如圖2所示,發(fā)送端的通用處理器可以利用發(fā)送端的專用處理器對原始消息進行預處理,例如壓縮或者加密, 形成變形消息,然后再將所述變形消息分成多個變形消息段包裝到多個數(shù)據(jù)包。在這里,原始消息和變形消息是相同消息的兩種形式。由于網(wǎng)絡環(huán)境的不穩(wěn)定性,雖然發(fā)送端連續(xù)地發(fā)送所述多個數(shù)據(jù)包,但是接收端可能并不能連續(xù)地收到所述多個數(shù)據(jù)包。根據(jù)一種稱為無狀態(tài)處理的方案,接收端的通用處理器可以在收到并解包對應于一個消息的所有數(shù)據(jù)包后,得到完整的變形消息,再利用接收端的專用處理器對所述變形消息進行逆處理,從而恢復原始消息。根據(jù)一種稱為有狀態(tài)處理的方案,接收端的通用處理器也可以每收到并解包一個數(shù)據(jù)包,就將該數(shù)據(jù)包所包括的變形消息段發(fā)送給接收端的專用處理器,得到原始消息段;然后在收到、解包、逆處理對應于一個消息的所有數(shù)據(jù)包后,將各個原始消息段組合起來,從而恢復原始消息。在接收端,對應于不同消息的數(shù)據(jù)包可能彼此交織地到達接收端。在有狀態(tài)處理的情況下,接收端的通用處理器解包每個消息包,將所得到的變形消息段按照一定格式封裝成隊列單元后放入專用處理器的首要請求存儲區(qū)。首要請求存儲區(qū)是請求存儲單元的一部分。專用處理器在處理隊列單元時需要頻繁地保存和加載消息狀態(tài)。圖3給出了專用處理器的首要請求存儲區(qū)和相應的消息狀態(tài)切換的示例。如圖3左側(cè)所示,每一行表示一個隊列單元,其至少包括兩部分的內(nèi)容,一部分是消息ID,另一部分是需要處理的數(shù)據(jù)或指向該數(shù)據(jù)的指針。在該首要請求存儲區(qū)中的各隊列單元封裝了對應于三個消息的變形消息段,即消息A的變形消息段、消息B的變形消息段和消息C的變形消息段。如圖3右側(cè)所示,在處理完封裝了消息C變形消息段Cl的隊列單元后,需要保存與消息C相關(guān)的消息狀態(tài);在準備處理封裝了消息C的變形消息段C2的隊列單元時,又需要加載與消息C相關(guān)的消息狀態(tài)。更糟的是,專用處理器并不知道前后兩個隊列單元是否對應于相同消息,因此如圖3所示,每次處理完一個隊列單元都需要保存對應于該隊列單元的消息狀態(tài),并且每次準備處理一個隊列單元時都需要加載所述消息狀態(tài),除非之前沒有保存過所述消息狀態(tài)。 這樣,頻繁地保存和加載所述消息狀態(tài)就會引起頻繁的外部存儲器訪問,從而大大增加處理延時。
作為替代地,可以判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;如果到來的第一隊列單元與已經(jīng)位于請求存儲單元中的隊列單元對應于相同消息,則將所述已經(jīng)位于請求存儲單元中的隊列單元的保存標識符設置為指示不保存與該隊列單元對應的消息狀態(tài)。這樣,處理器在處理完所述已經(jīng)位于請求存儲單元中的所述隊列單元后,就可以不用保存消息狀態(tài),從而減少對外部存儲器的訪問。在以下的描述中,判斷甲隊列單元是否與乙隊列單元對應于相同消息可以是直接判斷甲隊列單元對應的消息與乙隊列單元對應的消息是否相同;如果已經(jīng)判斷出丙隊列單元與乙隊列單元對應于相同的消息,那么判斷甲隊列單元是否與乙隊列單元對應于相同消息也可以是判斷甲隊列單元對應的消息與丙隊列單元對應的消息是否相同。圖4A示出了根據(jù)本發(fā)明一個實施例的多處理器協(xié)作架構(gòu)。如前面參照圖3所進行的描述,專用處理器并不知道前后兩個隊列單元是否對應于相同消息,因此導致每次處理完一個隊列單元都需要保存對應于該隊列單元的消息狀態(tài),并且每次準備處理一個隊列單元時都需要加載所述消息狀態(tài),除非之前沒有保存過所述消息狀態(tài)。根據(jù)圖4A所示的架構(gòu),可以通知專用處理器前后兩個隊列單元是否對應于相同消息。如圖4A所示,通用處理器和專用處理器之間通過請求存儲單元和結(jié)果存儲單元通信。已經(jīng)說明,請求存儲單元包括位于芯片內(nèi)部的首要請求存儲區(qū)和位于外部存儲器中的輔助請求存儲區(qū);結(jié)果存儲單元包括位于芯片內(nèi)部的首要結(jié)果存儲區(qū)和位于外部存儲器中的輔助結(jié)果存儲區(qū)。如果通用處理器和專用處理器位于不同的芯片上,首要請求存儲區(qū)或首要結(jié)果存儲區(qū)可以與通用處理器設置在相同芯片上,也可以與專用處理器設置在相同芯片上。在通用處理器和專用處理器是相同芯片的不同單元的情況下,所述首要請求存儲區(qū)或首要結(jié)果存儲區(qū)就是芯片上的特定單元。比較裝置和置標裝置是請求控制裝置的一部分,其優(yōu)選地和首要請求存儲區(qū)設置在相同位置。請求控制裝置還包括請求存儲單元存取裝置(未示出),其用于將隊列單元寫入到請求存儲單元,以及從請求存儲單元讀取之前寫入的隊列單元。輔助請求存儲區(qū)的隊列單元的數(shù)據(jù)結(jié)構(gòu)可以與首要請求存儲區(qū)的隊列單元的數(shù)據(jù)結(jié)構(gòu)相同也可以不同。為了簡單起見,以下的描述主要針對輔助請求存儲區(qū)的隊列單元的數(shù)據(jù)結(jié)構(gòu)與首要請求存儲區(qū)的隊列單元的數(shù)據(jù)結(jié)構(gòu)相同的情況。圖4A所示的比較裝置用于判斷當前到來的第一隊列單元是否與前一個進入請求存儲單元的第二隊列單元對應于相同的消息。本領(lǐng)域技術(shù)人員可以理解,前一個進入請求存儲單元的第二隊列單元位于請求存儲單元的隊列尾。如果判斷出所述第一隊列單元與所述第二隊列單元對應于相同的消息,那么置標裝置根據(jù)該判斷結(jié)果設置所述第二隊列單元數(shù)據(jù)結(jié)構(gòu)中的保存標識符。這樣,專用處理器在處理所述第二隊列單元時,通過讀標裝置讀取所述保存標識符,就知道接下來要處理的所述第一隊列單元對應于相同消息,因此不必進行消息狀態(tài)的保存。根據(jù)本實施例的隊列單元的數(shù)據(jù)結(jié)構(gòu)包括消息ID,用于表示該隊列單元對應于哪個消息。比較裝置通過比較兩個隊列單元中的消息ID,就可以確定這兩個隊列單元是否對應于相同消息。隊列單元的數(shù)據(jù)結(jié)構(gòu)還包括所述保存標識符,用于指示專用處理器在處理完當前隊列單元后是否需要保存消息狀態(tài)??梢詫⑺霰4鏄俗R符的默認值設置為指示需要保存消息狀態(tài),這樣,只有在比較裝置判斷出第一隊列單元和第二隊列單元對應于相同的消息時,置標裝置才將所述保存標識符的值設置為指示不需要保存消息狀態(tài)。隊列單元的數(shù)據(jù)結(jié)構(gòu)中所包括的其他內(nèi)容是本領(lǐng)域的公知常識,在此不再贅述。所述判斷操作和置標操作可以與第一隊列單元進入首要請求存儲區(qū)或輔助請求存儲區(qū)的操作并行地進行,如何將新的隊列單元放入芯片內(nèi)部首要請求存儲區(qū)或外部存儲器中的輔助請求存儲區(qū)的中是本領(lǐng)域的公知常識,在此也不再贅述。比較裝置和置標裝置可以通過簡單的組合電路實現(xiàn),從而不僅提高了處理速度, 還降低了處理的復雜度。例如,比較裝置可以通過異或電路實現(xiàn),在兩個消息ID相同的情況下輸出1,不同的情況下輸出0,假設所述保存標識符的默認值是0,指示需要保存相關(guān)的消息狀態(tài),那么置標裝置只要將比較裝置的輸出寫入到第二隊列單元的保存標識符即可。圖4B示出了圖4A的實施例所對應的專用處理器的首要請求存儲區(qū)和相應的消息狀態(tài)切換的示意。本領(lǐng)域技術(shù)人員可以理解,圖4B所示的情況是處理器在處理隊列單元時的情況,而不是隊列單元到來時的情況。在圖4B左側(cè),同樣每一行表示一個隊列單元,每個隊列單元至少包括三部分,第一部分是消息ID,第二部分是需要處理的數(shù)據(jù)或指向該數(shù)據(jù)的指針,第三部分是所述保存標識符。注意虛線所環(huán)繞的部分。封裝了消息C變形消息段 C4的隊列單元在進入請求存儲單元時,根據(jù)上面的描述,置標裝置將封裝了消息C變形消息段C3的隊列單元的保存標識符設置為指示不保存消息狀態(tài)。雖然在圖4B中,封裝了消息 C變形消息段C3的隊列單元和封裝了消息C變形消息段C4的隊列單元位于隊列中部而不是隊列尾,但是本領(lǐng)域技術(shù)人員可以理解,在封裝了消息C變形消息段C4的隊列單元到來的時候,封裝了消息C變形消息段C3的隊列單元是位于隊列尾的。專用處理器處理完封裝了消息C變形消息段C3的隊列單元后,就不用為了保存消息狀態(tài)進行外部存儲器的訪問; 同樣,專用處理器在封裝了處理消息C變形消息段C4的隊列單元時,也不用為了加載消息狀態(tài)而進行外部存儲器的訪問。如果所述第二隊列單元位于設置在外部存儲器中的輔助請求存儲區(qū)中,雖然按照上述方法可以減少保存消息狀態(tài)所需的外部存儲器訪問,但是卻會增加在判斷第一隊列單元和第二隊列單元是否對應于相同的消息時的外部存儲器訪問,以及增加修改第二隊列單元的保存標識符時的外部存儲器訪問。具體而言,當?shù)谝魂犃袉卧絹淼臅r候,請求存儲單元存取裝置需要從外部存儲器中的輔助請求存儲區(qū)讀取位于隊列尾的第二隊列單元,以便比較裝置比較第二隊列單元與第一隊列單元是否對應于相同消息。在將所述第二隊列單元的保存標識符設置為指示不保存消息狀態(tài)后,請求存儲單元存取裝置還需要將所述第二隊列單元寫回到外部存儲器中的輔助請求存儲區(qū),進一步增加了外部存儲器訪問的次數(shù)。圖5示出了根據(jù)本發(fā)明另外一個實施例的多處理器協(xié)作架構(gòu)。在圖5所示的架構(gòu)中,相對于圖4A所示的架構(gòu),在請求控制裝置中包括隊列單元保存標識符記錄區(qū),并且可選地進一步包括了隊列單元消息ID記錄區(qū),以便減少外部存儲器訪問的次數(shù)。其中,所述隊列單元消息ID記錄區(qū)記錄所述請求存儲單元中隊列尾的所述第二隊列單元對應的消息ID,所述隊列單元保存標識符記錄區(qū)針對已經(jīng)在請求存儲單元中的隊列單元記錄在處理完該隊列單元以后,是否需要保存與該隊列單元對應的消息狀態(tài)。如前所述,在如圖4A所示的架構(gòu)中,如果所述位于請求存儲單元隊列尾的第二隊列單元位于輔助請求存儲區(qū)中,增加的外部存儲器訪問主要來自兩個方面從外部存儲器讀取第二隊列單元,和在第二隊列單元和第一隊列單元對應于同一消息的情況下將具有修改后的保存標識符的第二隊列單元寫回到外部存儲器中。針對第一個方面,在圖5所示的結(jié)構(gòu)中,由于存在隊列單元消息ID記錄區(qū),因此比較裝置只需要比較第一隊列單元的消息ID與隊列單元消息ID記錄區(qū)中記錄的消息ID是否相同,就可以判斷出第一隊列單元與位于請求存儲單元隊列尾的第二隊列單元是否對應于相同的消息,而不用再從外部存儲器中讀取所述第二隊列單元。具體而言,比較裝置在第一隊列單元到來的時候,將該隊列單元的消息ID與保存在隊列單元消息ID記錄區(qū)中的消息ID進行比較。此時所述隊列單元消息ID記錄區(qū)中記錄的是第二隊列單元的消息ID。比較結(jié)束后,比較裝置將比較結(jié)果輸出到置標裝置,并且將到來的第一隊列單元的消息ID寫入隊列單元消息ID記錄區(qū)中。比較圖4A中的比較裝置和圖5中的比較裝置的連接關(guān)系可以看出在圖4A中,比較裝置需要對請求存儲單元進行訪問;而在圖5中,比較裝置不需要對請求存儲單元進行訪問,而只需要對隊列單元消息ID記錄區(qū)進行訪問。本領(lǐng)域技術(shù)人員可以理解,這里所謂的對請求存儲單元進行訪問是通過請求存儲單元存取裝置進行的。針對第二個方面,在圖5所示的結(jié)構(gòu)中,存在隊列單元保存標識符記錄區(qū)。相應地,所述隊列單元的數(shù)據(jù)結(jié)構(gòu)可以省略保存標識符這一數(shù)據(jù)域。比較圖4A中的置標裝置和圖5中的置標裝置的連接關(guān)系可以看出在圖4A中,置標裝置要對請求存儲單元進行訪問;而在圖5中,置標裝置不需要對請求存儲單元進行訪問,而只需要對隊列單元保存標識符記錄區(qū)進行訪問。相應地,專用處理器中的讀標裝置可以從所述隊列單元保存標識符記錄區(qū)讀取與某隊列單元對應的保存標識符,從而確定是否需要在處理完該隊列單元后保存與該隊列單元對應的消息的相關(guān)消息狀態(tài)。本領(lǐng)域技術(shù)人員可以理解,隊列單元消息ID記錄區(qū)的比特數(shù)通常可以和隊列單元消息ID的比特數(shù)一致。如前所述,每個隊列單元的保存標識符實際上只需要一個比特來實現(xiàn),因此隊列單元保存標識符記錄區(qū)的比特數(shù)通??梢院洼o助請求存儲區(qū)中所能容納的隊列單元的數(shù)目一致。這對應于隊列單元保存標識符記錄區(qū)僅針對輔助請求存儲區(qū)中所能容納的隊列單元進行記錄的情況。在這種情況下,首要請求存儲區(qū)中的隊列單元的數(shù)據(jù)結(jié)構(gòu)需要進一步包括保存標識符。隊列單元保存標識符記錄區(qū)也可以針對首要請求存儲區(qū)和輔助請求存儲區(qū)中所能容納的隊列單元均進行記錄。在這種情況下,首要請求存儲區(qū)中的隊列單元和輔助請求存儲區(qū)中的隊列單元均不包含保存標識符。在這種情況下,隊列單元保存標識符記錄區(qū)的比特數(shù)通??梢院洼o助請求存儲區(qū)中所能容納的隊列單元的數(shù)目與首要請求存儲區(qū)中所能容納的隊列單元的數(shù)目之和相一致。以下的描述中,為了簡單起見,假設首要請求存儲區(qū)中的隊列單元和輔助請求存儲區(qū)中的隊列單元的數(shù)據(jù)結(jié)構(gòu)中均不包含保存標識符,即隊列單元保存標識符記錄區(qū)可以針對首要請求存儲區(qū)和輔助請求存儲區(qū)中所能容納的隊列單元均進行記錄。此外,在芯片內(nèi)部資源受限制的情況下,即使只設置隊列單元消息ID記錄區(qū)和隊列單元保存標識符記錄區(qū)中的一個,也可以減少外部存儲器訪問的次數(shù)。圖6A示出了根據(jù)本發(fā)明又一個實施例的多處理器協(xié)作架構(gòu)。根據(jù)本實施例,可以設置輔助請求存儲區(qū)組,其包括兩個以上的輔助請求存儲區(qū)。 在本實施例中,輔助請求存儲區(qū)的數(shù)目等于首要請求存儲區(qū)所能同時容納的隊列單元的總數(shù),即等于首要請求存儲區(qū)的單位硬件存儲單元的總數(shù)。這樣,為首要請求存儲區(qū)中的每個隊列單元設置相應的輔助請求存儲區(qū),可以在處理完首要請求存儲區(qū)中的某個隊列單元后,連續(xù)處理多個與該隊列單元對應于同一消息的位于輔助請求存儲區(qū)中的隊列單元,從而進一步減少為了保存消息狀態(tài)而進行的外部存儲器訪問。本領(lǐng)域技術(shù)人員可以理解,輔助請求存儲區(qū)的數(shù)目也可以小于首要請求存儲區(qū)的單位硬件存儲單元的總數(shù),即只為某幾個單位硬件存儲單元設置輔助請求存儲單元。在這種情況下,下述討論中的單位硬件存儲單元只針對設置了輔助請求存儲單元的單位硬件存儲單元。在圖6A示出的實施例中,為首要請求存儲區(qū)中的每一個單位硬件存儲單元設置專用的輔助請求存儲區(qū)。一個輔助請求存儲區(qū)對應于或者專用于首要請求存儲區(qū)中的一個單位硬件存儲單元,表示該輔助請求存儲區(qū)中專用于存儲與首要請求存儲區(qū)中的該單位硬件存儲單元中存儲的隊列單元對應于相同消息的隊列單元。在下面的描述中,提到一個隊列單元設置有輔助請求存儲區(qū)或者對應于輔助請求存儲區(qū),指的是該隊列單元所在的單位硬件存儲單元設置有輔助請求存儲區(qū)或者對應于輔助請求存儲區(qū)。比較裝置判斷到來的第一隊列單元是否與已經(jīng)在首要請求存儲區(qū)中的隊列單元對應于相同的消息。如果比較裝置判斷到來的第一隊列單元與已經(jīng)在首要請求存儲區(qū)中的隊列單元,稱為第三隊列單元,對應于相同的消息,則合并裝置將第一隊列單元放入與第三隊列單元對應的輔助請求存儲區(qū)中。為了比較第一隊列單元是否與第三隊列單元對應于相同的消息,可以直接將第一隊列單元數(shù)據(jù)結(jié)構(gòu)中的消息ID與第三隊列單元數(shù)據(jù)結(jié)構(gòu)中的消息ID進行比較。容易理解,由于第三隊列單元位于芯片內(nèi)部的首要請求存儲區(qū)中,因此只需要與首要請求存儲區(qū)中的隊列單元進行比較,并不需要訪問外部存儲器。相應地,在圖 6A所示的結(jié)構(gòu)中,相對于圖5A所示的結(jié)構(gòu)省去了隊列單元消息ID記錄區(qū)。如果第一隊列單元是進入與第三隊列單元對應的輔助請求存儲區(qū)中的第一個隊列單元,即在第一隊列單元到來時與第三隊列單元對應的輔助請求存儲區(qū)為空,則置標裝置設置與所述第三隊列單元對應的保存標識符。由于之前已經(jīng)假設首要請求存儲區(qū)中的隊列單元和輔助請求存儲區(qū)中的隊列單元的數(shù)據(jù)結(jié)構(gòu)中均不包含保存標識符,即隊列單元保存標識符記錄區(qū)針對首要請求存儲區(qū)和輔助請求存儲區(qū)中所能容納的隊列單元均進行記錄,因此置標裝置設置與所述第三隊列單元對應的保存標識符實際上是設置隊列單元保存標識符記錄區(qū)中與第三隊列單元對應的保存標識符。本領(lǐng)域技術(shù)人員可以理解,由于第三隊列單元位于首要請求存儲區(qū)中,即使所述保存標識符設置在第三隊列單元的數(shù)據(jù)結(jié)構(gòu)中,也不會增加外部存儲器訪問的次數(shù)。因此置標裝置設置與所述第三隊列單元對應的保存標識符可以是設置包含在第三隊列單元的數(shù)據(jù)結(jié)構(gòu)中的保存標識符。如果第一隊列單元不是進入與第三隊列單元對應的輔助請求存儲區(qū)中的第一個隊列單元,即在第一隊列單元到來時輔助請求存儲區(qū)不為空,那么置標裝置設置在第一隊列單元之前進入與第三隊列單元對應的輔助請求存儲區(qū)的隊列單元的保存標識符。此后稱在第一隊列單元之前進入與第三隊列單元對應的輔助請求存儲區(qū)的隊列單元為第四隊列單元。由于第四隊列單元位于外部存儲器中,因此置標裝置優(yōu)選地設置隊列單元保存標識符記錄區(qū)中與所述第四隊列單元對應的保存標識符。圖6B示出了在針對首要請求存儲區(qū)中每一個隊列單元設置一個輔助請求存儲區(qū)的情況下,專用處理器的首要請求存儲區(qū)、輔助請求存儲區(qū)和相應的消息狀態(tài)切換。其中虛線表示所連接的兩個隊列單元在物理位置上是相鄰的,但是從處理時間上來說卻是隔開的。本領(lǐng)域技術(shù)人員可以理解,圖6B所示的情況是處理器在處理隊列單元時的情況,而不是隊列單元到來時的情況。為了簡單起見,圖6B將輔助請求存儲區(qū)的隊列單元示出為與首要請求存儲區(qū)的隊列單元具有相同的數(shù)據(jù)結(jié)構(gòu)。需要說明的是,在圖6B中,為了清楚地示出在處理完各隊列單元后是否保存消息狀態(tài),將各隊列單元的保存標識符顯示為與隊列單元的數(shù)據(jù)結(jié)構(gòu)并排。如前所述,隊列單元保存標識符記錄區(qū)針對首要請求存儲區(qū)和輔助請求存儲區(qū)中所能容納的隊列單元均進行記錄。因此,對于第一輔助請求存儲區(qū)、第二輔助請求存儲區(qū)、第三輔助請求存儲區(qū)和首要請求存儲區(qū)中的隊列單元而言,所述保存標識符實際上均由隊列單元保存標識符記錄區(qū)記錄。圖6B所示的首要請求存儲區(qū)和輔助請求存儲區(qū)是如下這樣形成的。通用處理器發(fā)出隊列單元的順序和圖3、圖4B以及圖5B —樣,因此,封裝了消息C變形消息段Cl的隊列單元、封裝了消息A變形消息段Al的隊列單元、封裝了消息B變形消息段Bl的隊列單元依次進入隊列單元。封裝了消息C變形消息段C2的隊列單元到來時,按照本發(fā)明的實施例, 合并裝置將其放入了第一輔助請求存儲區(qū),即對應于封裝了消息C變形消息段Cl的隊列單元的輔助請求存儲區(qū),并且置標裝置將封裝了消息C變形消息段Cl的隊列單元的保存標識符設置為指示不進行消息狀態(tài)保存。封裝了消息A變形消息段A2的隊列單元到來時,按照本發(fā)明的實施例,合并裝置將其放入第二輔助請求存儲區(qū),即對應于封裝了消息A變形消息段Al的隊列單元的輔助請求存儲區(qū),并且置標裝置將封裝了消息A變形消息段Al的隊列單元的保存標識符設置為指示不進行消息狀態(tài)保存。封裝了消息C變形消息段C3的隊列單元、封裝了消息C變形消息段C4的隊列單元依次到來,根據(jù)本發(fā)明的實施例,合并裝置將其放入第一輔助請求存儲區(qū)并相應地設置相關(guān)的保存標識符。封裝了消息B變形消息段 B2的隊列單元到來時,按照本發(fā)明的實施例,合并裝置將其放入第三輔助請求存儲區(qū),即對應于封裝了消息B變形消息段Bl的隊列單元的輔助請求存儲區(qū)。比較圖6B和圖4B,可以看出保存/加載消息狀態(tài)的數(shù)目被進一步減少了。同時, 由于到來的第一隊列單元只需要與首要請求存儲區(qū)中的隊列單元進行比較,所以在比較兩個隊列單元是否對應于相同消息時并不增加額外的外部存儲器訪問。又由于設置了芯片內(nèi)部的隊列單元保存標識符記錄區(qū)來記錄在處理完各隊列單元后是否需要進行消息狀態(tài)保存,因此在修改隊列單元的保存標示符時也不會增加額外的外部存儲器訪問。圖7示出了根據(jù)本發(fā)明又一個實施例的多處理器協(xié)作架構(gòu)。在圖6A所示的架構(gòu)中,隊列單元保存標識符記錄區(qū)是采用與各隊列單元一一對應的比特來實現(xiàn)的。在圖7所示的架構(gòu)中,用計數(shù)器來實現(xiàn)所述隊列單元保存標識符記錄區(qū)。所述計數(shù)器與輔助請求存儲區(qū)對應地設置,用于指示各輔助請求存儲區(qū)中隊列單元的數(shù)目。具體而言,當針對第三隊列單元設置的輔助請求存儲區(qū)為空時,與所述第三隊列單元對應的計數(shù)器的值為0 ;每有一個隊列單元進入針對第三隊列單元設置的輔助請求存儲區(qū),與所述第三隊列單元對應的計數(shù)器的值加1 ;每處理完與第三隊列單元對應的輔助請求存儲區(qū)中的一個隊列單元,與所述第三隊列單元對應的計數(shù)器的值減1。本領(lǐng)域技術(shù)人員還可以容易地規(guī)定其他方式來設置所述計數(shù)器的值。所述與所述第三隊列單元對應的計數(shù)器可以將第一隊列單元與第三隊列單元相同時置標裝置輸出的信號作為自加1的信號。如果到來的第一隊列單元與第三隊列單元對應與相同的消息,如前所述,第一隊列單元進入與第三隊列單元對應的輔助請求存儲區(qū)。相應地,置標裝置向與第三隊列單元對應的計數(shù)器發(fā)送加1的信號。專用處理器在處理完第三隊列單元后,通過讀標裝置判斷所述計數(shù)器的值是否為0。如何判斷計數(shù)器的值是否為0 有很多方法,例如可以判斷計數(shù)器的各個位的“或”運算結(jié)果是否為零。如果不為0,說明在與第三隊列對應的輔助請求存儲區(qū)中存在隊列單元,從而專用處理器不保存消息狀態(tài),繼續(xù)處理與第三隊列單元對應的輔助請求存儲區(qū)中的第一個隊列單元,以后稱為第五隊列單元。專用處理器處理完第五隊列單元后,向與所述第三隊列單元對應的計數(shù)器發(fā)送減1的信號。然后再次通過讀標裝置判斷所述計數(shù)器的值是否為0。如果不為0,說明在與第三隊列對應的輔助請求存儲區(qū)中還存在隊列單元,從而專用處理器仍然不保存消息狀態(tài),繼續(xù)處理與第三隊列單元對應的輔助請求存儲區(qū)中的第二個隊列單元。如此類推,直到處理完與第三隊列單元對應的輔助請求存儲區(qū)中的所有隊列單元。采用計數(shù)器實現(xiàn)所述隊列單元保存標識符記錄區(qū)可以減少指示輔助請求存儲區(qū)中的隊列單元是否需要保存消息狀態(tài)所需的比特數(shù)。例如,對于一個能夠容納16個隊列單元的輔助請求存儲區(qū),如果用與隊列單元一一對應的比特來實現(xiàn)所述隊列單元保存標識符記錄區(qū),則需要16個比特;如果用計數(shù)器來實現(xiàn)所述隊列單元保存標識符記錄區(qū),則需要4 個比特。對于圖6A和圖7所示的實施例,參照圖6B中的首要請求存儲區(qū)和輔助隊列示意, 如果對應于消息C的請求單元不停地進入圖6B中的第一輔助請求存儲區(qū),那么對應于消息 A和消息B的請求單元就總是得不到處理。為了克服這一問題,可以在請求控制裝置中設置門限裝置,檢查在一個輔助請求存儲區(qū)中連續(xù)放入對應于相同消息的隊列單元的個數(shù)是否超過第一閾值。如果超過該第一閾值,則即使比較裝置發(fā)現(xiàn)到來的第一隊列單元與已經(jīng)在首要請求存儲區(qū)或輔助請求存儲區(qū)中的某隊列單元對應于相同消息,合并裝置也仍然將該第一隊列單元放在首要請求存儲區(qū)的隊列尾。假定設該第一閾值為3,那么在圖6B中,即使再來一個對應于消息C的隊列單元,合并裝置也不會將其放入第一輔助請求存儲區(qū),而置標裝置也不進行相應的置標操作。第一隊列單元到來的時候,有可能首要請求存儲區(qū)并沒有被填滿,并且與第一隊列單元對應于同一消息的第三隊列單元位于首要請求存儲區(qū)的隊列尾。在這種情況下,可以將第一隊列單元放入與所述第三隊列單元所在的單位硬件存儲單元對應的輔助請求存儲區(qū),也可以將第一隊列單元放入首要請求存儲區(qū)。將第一隊列單元放入首要請求存儲區(qū)可以避免將第一隊列單元放入輔助請求存儲區(qū)時和專用處理器在處理第一隊列單元時對外部存儲器的訪問。除了與首要請求存儲區(qū)中的單位硬件存儲單元對應地設置輔助請求存儲區(qū)之外, 還可以設置額外輔助請求存儲區(qū)。這樣如果到來的第一隊列單元不與首要請求存儲區(qū)中設置有輔助請求存儲區(qū)的任何一個隊列單元對應于相同的消息,并且首要請求存儲區(qū)已經(jīng)處于填滿狀態(tài),就可以將到來的隊列單元放入所述額外輔助請求存儲區(qū)中??梢栽O置兩個以上的額外輔助請求存儲區(qū),一個額外輔助請求存儲區(qū)中存放對應于一個消息的隊列單元。
當然,所述額外輔助請求存儲區(qū)也可以動態(tài)地設置,從而所述請求控制裝置進一步包括額外輔助請求存儲區(qū)設置裝置。如果到來的第一隊列單元不與首要請求存儲區(qū)中設置有輔助請求存儲區(qū)的任何一個隊列單元對應于相同的消息,并且首要請求存儲區(qū)已經(jīng)處于填滿狀態(tài),則進一步比較第一隊列單元是否與某個已經(jīng)設置的額外輔助請求存儲區(qū)中的隊列單元對應于同一消息。如果第一隊列單元與某個已經(jīng)設置的額外輔助請求存儲區(qū)中的隊列單元對應于同一消息,則將第一隊列單元放入該已經(jīng)設置的額外輔助請求存儲區(qū),并且將與在第一隊列單元之前進入該已經(jīng)設置的額外輔助請求存儲區(qū)中的隊列單元對應的保存標識符設置為指示不保存消息狀態(tài)。如果第一隊列單元不僅不與首要請求存儲區(qū)中設置有輔助請求存儲區(qū)的任何一個隊列單元對應于相同的消息,也不與任何一個已經(jīng)設置的額外輔助請求存儲區(qū)中的隊列單元對應于同一消息,則新設置一個額外輔助請求存儲區(qū), 以第一隊列單元作為該新設置的額外輔助請求存儲區(qū)的第一個隊列單元。如前所述,額外輔助請求存儲區(qū)位于外部存儲器中,因此為了避免在比較第一隊列單元與額外輔助請求存儲區(qū)中的隊列單元是否對應于同一消息時進行外部存儲器訪問, 在請求控制裝置內(nèi)部進一步針對各額外輔助請求存儲區(qū)設置隊列單元消息ID記錄區(qū)。同樣,為了避免在修改與隊列單元對應的保存標識符時進行外部存儲器訪問,所述保存標識符由設置在請求控制裝置內(nèi)部的隊列單元保存標識符記錄區(qū)記錄。由于額外輔助請求存儲區(qū)是動態(tài)地設置地,其所能容納的隊列單元數(shù)目也可以因此優(yōu)選地所述隊列單元保存標識符記錄區(qū)由計數(shù)器實現(xiàn),而不是由與各隊列單元對應的比特來實現(xiàn)。根據(jù)本發(fā)明實施例的用于控制由首要請求存儲區(qū)和輔助請求存儲區(qū)構(gòu)成的請求存儲單元的請求控制方法包括在隊列單元保存標識符記錄區(qū)中記錄與所述請求存儲單元中的隊列單元對應的保存標識符;判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;和在所述第一隊列單元與所述已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述隊列單元保存標識符記錄區(qū)中與所述已經(jīng)在請求存儲單元中的隊列單元對應的保存標識符設置為指示不保存與該隊列單元相關(guān)的消息狀態(tài)。以上參照通用處理器和專用處理器的架構(gòu)描述了本發(fā)明的優(yōu)選實施方式。在這種架構(gòu)中,專用處理器作為協(xié)處理器,在作為主處理器的通用處理器的請求下完成一定數(shù)據(jù)處理,并且將處理結(jié)果發(fā)送給通用處理器。本領(lǐng)域技術(shù)人員可以理解,本發(fā)明可以應用于其他架構(gòu)。例如,架構(gòu)中的至少兩個處理器可以均為通用處理器,其中至少一個處理器為主處理器,另外至少一個為協(xié)處理器。在這種架構(gòu)中,主處理器和協(xié)處理器是相對的,甚至是可以互相轉(zhuǎn)換的。因此,所述請求存儲單元應該理解為需要保存狀態(tài)的一方用來接收數(shù)據(jù)的單元。本領(lǐng)域技術(shù)人員還可以理解,所述主處理器和協(xié)處理器可以是不同的處理器芯片,也可以是相同芯片中的不同單元。本領(lǐng)域的普通技術(shù)人員可以理解上述的方法和系統(tǒng)可以使用計算機可執(zhí)行指令和/或包含在處理器控制代碼中來實現(xiàn),例如在諸如磁盤、⑶或DVD-ROM的載體介質(zhì)、諸如只讀存儲器(固件)的可編程的存儲器或者諸如光學或電子信號載體的數(shù)據(jù)載體上提供了這樣的代碼。本實施例的用于控制移動設備能耗的系統(tǒng)及其組件可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設備等的可編程硬件設備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實現(xiàn),也可以由上述硬件電路和軟件的結(jié)合例如固件來實現(xiàn)。
雖然已經(jīng)圖示和描述了本發(fā)明的若干示例性實施例,不過本領(lǐng)域技術(shù)人員可以理解的是,在不偏離本發(fā)明原則和精神的前提下,可以對這些實施例進行改變,本發(fā)明的范圍由權(quán)利要求書及其等價變換所限定。
權(quán)利要求
1.一種請求控制裝置,連接到由首要請求存儲區(qū)和輔助請求存儲區(qū)構(gòu)成的請求存儲單元,所述請求控制裝置包括隊列單元保存標識符記錄區(qū),配置為記錄與所述請求存儲單元中的隊列單元對應的保存標識符;比較裝置,配置為判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;和置標裝置,配置為在所述第一隊列單元與所述已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述隊列單元保存標識符記錄區(qū)中與所述已經(jīng)在請求存儲單元中的隊列單元對應的保存標識符設置為指示不保存與該隊列單元相關(guān)的消息狀態(tài)。
2.如權(quán)利要求1所述的請求控制裝置,其中所述比較裝置判斷所述第一隊列單元是否與所述請求存儲單元的隊列尾處的第二隊列單元對應于相同消息。
3.如權(quán)利要求1所述的請求控制裝置,其中所述輔助請求存儲區(qū)與所述首要請求存儲區(qū)的至少一個單位硬件存儲單元對應地設置。
4.如權(quán)利要求1所述的請求控制裝置,進一步包括額外輔助請求存儲區(qū)設置裝置,配置為在所述第一隊列單元與已經(jīng)在請求存儲單元中的隊列單元均對應于不同消息,并且首要請求存儲區(qū)已經(jīng)處于填滿狀態(tài)的情況下,新設置一個額外輔助請求存儲區(qū),并且以所述第一隊列單元作為該新設置的額外輔助請求存儲區(qū)的第一個隊列單元。
5.如權(quán)利要求3或4所述的請求控制裝置,進一步包括合并裝置,配置為在所述第一隊列單元與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述第一隊列單元放入與所述已經(jīng)在請求存儲單元中的隊列單元對應的輔助請求存儲區(qū)中。
6.如權(quán)利要求1到4中任意一項所述的請求控制裝置,進一步包括隊列單元消息ID記錄區(qū),用于記錄最后進入輔助請求存儲區(qū)的隊列單元的消息ID。
7.如權(quán)利要求1到4中任意一項所述的請求控制裝置,其中所述隊列單元保存標識符記錄區(qū)由與隊列單元對應的比特實現(xiàn)。
8.如權(quán)利要求3或4所述的請求控制裝置,其中所述隊列單元保存標識符記錄區(qū)由與各輔助請求存儲區(qū)對應的計數(shù)器實現(xiàn),其中所述計數(shù)器的值表示所述輔助請求存儲區(qū)中隊列單元的數(shù)目。
9.如權(quán)利要求5所述的請求控制裝置,進一步包括 門限裝置,配置為檢查在一個輔助請求存儲區(qū)中連續(xù)放入對應于相同消息的隊列單元的數(shù)目是否超過了第一閾值;所述置標裝置在所述數(shù)目不超過所述第一閾值的情況下才將所述已經(jīng)在請求存儲單元中的隊列單元的保存標識符設置為指示不保存與該隊列單元相關(guān)的消息狀態(tài);所述合并裝置在所述數(shù)目不超過所述第一閾值的情況下才將第一隊列單元放入所述輔助請求存儲區(qū)中。
10.一種連接到請求存儲單元的處理器,所述請求存儲單元連接到如權(quán)利要求1-9中任意一項所述的請求控制裝置,所述處理器包括讀標裝置,配置為根據(jù)所述隊列單元保存標識符記錄區(qū)中記錄的與隊列單元對應的保存標識符確定在處理完該隊列單元后是否保存與隊列單元相關(guān)的消息狀態(tài)。
11. 一種請求控制方法,用于控制由首要請求存儲區(qū)和輔助請求存儲區(qū)構(gòu)成的請求存儲單元,所述請求控制方法包括在隊列單元保存標識符記錄區(qū)中記錄與所述請求存儲單元中的隊列單元對應的保存標識符;判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;和在所述第一隊列單元與所述已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述隊列單元保存標識符記錄區(qū)中與所述已經(jīng)在請求存儲單元中的隊列單元對應的保存標識符設置為指示不保存與該隊列單元相關(guān)的消息狀態(tài)。
全文摘要
本發(fā)明提供了請求控制裝置以及相關(guān)的處理器。所述請求控制裝置連接到由首要請求存儲區(qū)和輔助請求存儲區(qū)構(gòu)成的請求存儲單元,包括隊列單元保存標識符記錄區(qū),配置為記錄與所述請求存儲單元中的隊列單元對應的保存標識符;比較裝置,配置為判斷到來的第一隊列單元是否與已經(jīng)在請求存儲單元中的隊列單元對應于相同消息;和置標裝置,配置為在所述第一隊列單元與所述已經(jīng)在請求存儲單元中的隊列單元對應于相同消息的情況下,將所述隊列單元保存標識符記錄區(qū)中與所述已經(jīng)在請求存儲單元中的隊列單元對應的保存標識符設置為指示不保存與該消息相關(guān)的狀態(tài)。根據(jù)本發(fā)明的技術(shù)方案,可以減少不必要的外部存儲器訪問,從而提高處理器的處理速度。
文檔編號G06F13/16GK102385558SQ201010271150
公開日2012年3月21日 申請日期2010年8月31日 優(yōu)先權(quán)日2010年8月31日
發(fā)明者H·弗蘭克, 于浩, 常曉濤, 梅小露, 王鯤 申請人:國際商業(yè)機器公司