欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于多核系統(tǒng)的同步處理方法及裝置的制作方法

文檔序號:6358997閱讀:182來源:國知局
專利名稱:一種基于多核系統(tǒng)的同步處理方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于多核系統(tǒng)的同步處理方法及裝置。
背景技術(shù)
多核技術(shù)的發(fā)展使得系統(tǒng)越來越復(fù)雜,多核之間的交互事件越來越多,現(xiàn)有技術(shù)在處理多核之間的同步和通訊時,通常通過中斷來完成?,F(xiàn)有技術(shù)在處理多核之間的事件同步,對于多個處理器同時申請信號量處理單元內(nèi)的同一個互斥緩存時,這里,多個處理器即為多核,上述多個處理器和信號量處理單元位于S0C(SyStem On a Chip,片上系統(tǒng))上,所述互斥緩存為緩存資源在某一時刻只能提供給一個處理器使用。通常信號量處理單元將獲取緩存資源的標識通過中斷發(fā)送給其中一個處理器A,當處理器A響應(yīng)中斷,完成事件處理后清中斷,然后信號量處理單元再將獲取緩存資源的標識通過中斷發(fā)送給其他的處理器?,F(xiàn)有技術(shù)在處理多核之間的消息同步時,對于多核中的處理器A申請IPCdnter Processor Communication,進程間通信)處理單元內(nèi)的一個消息通道X,處理器A將消息寫到消息通道X后,IPC處理單元通過中斷通知除處理器A以外的需要獲取此消息的其他處理器。這時,其他處理器響應(yīng)中斷并讀取消息通道X內(nèi)的消息,然后清中斷。然而,現(xiàn)有技術(shù)在處理多核之間的同步和通訊時,通常需要通過中斷完成同步操作,導(dǎo)致系統(tǒng)調(diào)度的效率較低,資源消耗較大。

發(fā)明內(nèi)容
本發(fā)明的實施例提供一種基于多核系統(tǒng)的同步處理方法及裝置,可以提高系統(tǒng)調(diào)度的效率,資源消耗較小。為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案一種基于多核系統(tǒng)的同步處理方法,包括接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M為所述一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù);當所述計數(shù)信號量值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。一種基于多核系統(tǒng)的同步處理裝置, 包括初始化模塊,用于接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M為所述一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);處理模塊,用于接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù); 發(fā)送模塊,用于當所述計數(shù)信號量值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備所述發(fā)送控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。本發(fā)明實施例提供的基于多核系統(tǒng)的同步處理的方法及裝置,通過接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化, 然后接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,當所述計數(shù)信號量值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息, 以便所述第二組處理設(shè)備處理所述當前任務(wù)。與現(xiàn)有技術(shù)中在處理多核之間的同步和通訊時,通常需要通過中斷完成同步操作,導(dǎo)致系統(tǒng)調(diào)度的效率較低,資源消耗較大相比,本發(fā)明實施例提供的方案通過發(fā)送控制消息處理多個處理設(shè)備之間的同步和通訊,可以提高系統(tǒng)調(diào)度的效率,資源消耗較小。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例1提供的一種基于多核系統(tǒng)的同步處理方法的流程圖;圖2為本發(fā)明實施例1提供的一種基于多核系統(tǒng)的同步處理裝置的框圖;圖3為本發(fā)明實施例2提供的一種基于多核系統(tǒng)的同步處理方法的流程圖;圖4為本發(fā)明實施例2提供的各個同步處理單元獨立處理的示意圖;圖5為本發(fā)明實施例2提供的虛擬地址映射的示意圖;圖6為本發(fā)明實施例2提供的處理設(shè)備處理任務(wù)的示意圖;圖7為本發(fā)明實施例2提供的一種基于多核系統(tǒng)的同步處理裝置的框圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例1本發(fā)明實施例提供一種基于多核系統(tǒng)的同步處理方法,需要說明的是,所述多核系統(tǒng)在本發(fā)明實施例中指存在多個處理設(shè)備的系統(tǒng),如圖1所示,該方法包括步驟101,接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M 為所述一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù); 處理設(shè)備可以為處理器,也可以為加速器,加速器可以獨立處理任務(wù),也可以協(xié)助處理器完成運算處理,以使處理器在處理任務(wù)時速度加快。具體地,通過內(nèi)部緩存的任一通道接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置;讀取所述通道對應(yīng)的內(nèi)部緩存,將內(nèi)部緩存中的內(nèi)容更新為所述初始化設(shè)置,并保存所述初始化設(shè)置。步驟102,接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù);進一步地,通過所述內(nèi)部緩存的任一通道接收所述第一組處理設(shè)備中的任一個處理設(shè)備發(fā)送的通知消息;讀取所述通道對應(yīng)的內(nèi)部緩存,并獲取內(nèi)部緩存中所述計數(shù)信號量的當前值;將所述計數(shù)信號量的當前值減1,保存所述當前內(nèi)部緩存中的計數(shù)信號量的值。步驟103,當所述計數(shù)信號量值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。本發(fā)明實施例提供的一種基于多核系統(tǒng)的同步處理的方法,通過接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,然后接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,當所述計數(shù)信號量值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。與現(xiàn)有技術(shù)中在處理多核之間的同步和通訊時,通常需要通過中斷完成同步操作,導(dǎo)致系統(tǒng)調(diào)度的效率較低,資源消耗較大相比,本發(fā)明實施例提供的方案通過發(fā)送控制消息處理多個處理設(shè)備之間的同步和通訊,可以提高系統(tǒng)調(diào)度的效率,資源消耗較小。本發(fā)明實施例提供一種基于多核系統(tǒng)的同步處理的裝置,具體地,所述裝置為多核同步處理單元,如圖2所示,該裝置包括初始化模塊201,處理模塊202,發(fā)送模塊203。初始化模塊201,用于接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M為所述一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);所述初始化模塊201包括第一接收子模塊和更新保存子模塊。所述第一接收子模塊,用于通過內(nèi)部緩存的任一通道接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置;
所述更新保存子模塊,用于讀取所述通道對應(yīng)的內(nèi)部緩存,將內(nèi)部緩存中的內(nèi)容更新為所述初始化設(shè)置,并保存所述初始化設(shè)置。處理模塊202,用于接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息, 將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所 述當前任務(wù);所述處理模塊202包括第二接收子模塊、獲取子模塊和更新子模塊。所述第二接收子模塊,用于通過所述內(nèi)部緩存的任一通道接收所述第一組處理設(shè)備中的任一個處理設(shè)備發(fā)送的通知消息;所述獲取子模塊,用于讀取所述通道對應(yīng)的內(nèi)部緩存,并獲取內(nèi)部緩存中所述計數(shù)信號量的當前值;所述更新子模塊,用于將所述計數(shù)信號量的當前值減1,保存所述當前內(nèi)部緩存中的計數(shù)信號量的值。發(fā)送模塊203,用于當所述計數(shù)信號量值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。本發(fā)明實施例提供的一種基于多核系統(tǒng)的同步處理的裝置,通過同步處理相同的當前任務(wù)的每個處理設(shè)備處理完成當前的任務(wù)時,處理模塊將計數(shù)信號量的值相應(yīng)的減1, 然后當所述計數(shù)信號量的值為0時,發(fā)送模塊向第二組處理設(shè)備發(fā)送響應(yīng)消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。與現(xiàn)有技術(shù)中在處理多核之間的同步和通訊時,通常需要通過中斷完成同步操作,導(dǎo)致系統(tǒng)調(diào)度的效率較低,資源消耗較大相比,本發(fā)明實施例提供的方案通過發(fā)送響應(yīng)控制消息處理多個處理設(shè)備之間的同步和通訊,可以提高系統(tǒng)調(diào)度的效率,資源消耗較小。實施例2需要說明的是,本發(fā)明實施例提供一種基于多核系統(tǒng)的同步處理的方法,其應(yīng)用場景為同步處理相同的當前任務(wù)的第一組處理設(shè)備中的每個處理設(shè)備需要處理當前任務(wù)中的一部分,完成當前任務(wù)時,通過發(fā)送控制消息通知第二組處理設(shè)備處理當前任務(wù)。處理設(shè)備包括處理器或加速器,在處理當前任務(wù)時,可以由處理器完成,也可以由加速器完成。 本發(fā)明實施例提供的方案以處理當前任務(wù)描述基于多核系統(tǒng)的同步處理的方法,如圖3所示,該方法包括步驟301,多核同步處理單元通過內(nèi)部緩存的任一通道,接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M為所述一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);這里,信號量是一個非負整數(shù)計數(shù),信號量用來協(xié)調(diào)對資源的訪問,其初始化為可用資源的數(shù)目,即申請值為M的計數(shù)信號量中的M為可用資源的數(shù)目,在本發(fā)明中同步處理相同的當前任務(wù)的第一組處理器中的每個處理器在處理當前任務(wù)時,需要占用一個資源, 第一組處理器同步處理相同的當前任務(wù)的次數(shù)為M,總共需要占用M個資源。具體地,所述初始化設(shè)置攜帶在申請消息中,在發(fā)送初始化設(shè)置的申請消息時,可以通過多個通道發(fā)送。另外,申請消息中還包括申請標識,申請標識用于標識此次申請到的內(nèi)部緩存中的資源,以免重復(fù)申請此資源。步驟302,所述多核同步處理單元讀取所述通道對應(yīng)的內(nèi)部緩存,將內(nèi)部緩存中的內(nèi)容更新為所述初始化設(shè)置,并保存所述初始化設(shè)置;需要說明的是,讀取所述通道對應(yīng)的內(nèi)部緩存后,還可以檢查 是否存在異常,具體地,檢查是否重復(fù)初始化設(shè)置,是否存在非法申請進行初始化設(shè)置等。需要說明的是,步驟301和步驟302,為多核同步處理單元接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化的流程,具體為所述多核同步處理單元內(nèi)的計數(shù)域值信號量單元執(zhí)行的,其中計數(shù)域值信號量單元通過配置接口接收初始化設(shè)置的申請消息,配置接口設(shè)置在多核同步處理單元上。另外,計數(shù)域值信號量單元集成在多核同步處理單元上,多核同步處理單元上還包括直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元,所述直接獲取信號量單元,用于直接向獲取信號量的處理設(shè)備發(fā)送獲取標識;所述間接獲取信號量單元,用于通過發(fā)送消息或者發(fā)送中斷向獲取信號量的處理設(shè)備發(fā)送獲取標識;所述發(fā)送消息單元,用于通過消息發(fā)送接口向處理設(shè)備發(fā)送控制消息或者通知消息;所述計數(shù)域值信號量單元,用于控制同時訪問多核同步處理單元的處理設(shè)備獲得的計數(shù)信號量。如圖4所示的示意圖,其中,直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元的處理流程與計數(shù)域值信號量單元的處理流程類似,其中,直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元,在接收到新的初始化設(shè)置后,讀取內(nèi)部緩存,并檢查內(nèi)部緩存是否存在重復(fù)申請或者是否存在非法申請等異常,然后將內(nèi)部緩存中的內(nèi)容更新為初始化設(shè)置的內(nèi)容,并保存初始化設(shè)置內(nèi)容。需要說明的是,間接獲取信號量單元、計算域值信號量單元、發(fā)送消息單元還需要發(fā)送消息或者中斷,以通知多核同步處理單元完成了此次任務(wù)。與現(xiàn)有技術(shù)無法實現(xiàn)加速器和處理器之間的消息傳遞,只能通過中斷完成相比, 本發(fā)明實施例提供的方案中新增加了計數(shù)域值信號量單元和發(fā)送消息單元,這樣,可以有效地實現(xiàn)加速器和處理器之間相互的消息傳遞,使資源消耗較小。為了實現(xiàn)所述多核同步處理單元中的所述各個單元的獨立訪問,可以通過總線配置接口控制總線的訪問流量,如圖4中,具體地,一次總線訪問結(jié)束前,總線接口控制總線的繼續(xù)操作,每次總線的操作均對應(yīng)一次內(nèi)部緩存的讀取、處理和更新操作,這樣,可以實現(xiàn)多個同步處理單元快速無沖突的同步調(diào)度機制。當申請到資源,多核同步處理單元初始化后,各個處理設(shè)備可以處理相應(yīng)的任務(wù)。步驟303,所述多核同步處理單元接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù);所述第一組處理設(shè)備中的處理設(shè)備根據(jù)任務(wù)列表中的任務(wù)順序占用計數(shù)信號量中的資源處理任務(wù),每次第一組處理設(shè)備中的一個處理設(shè)備完成當前任務(wù)時,多核同步處理單元中進行一次對應(yīng)當前任務(wù)的信號量的釋放操作,即將所述計數(shù)信號量值相應(yīng)的減1。具體地,通過所述內(nèi)部緩存的任一通道讀取內(nèi)部緩存,并獲取內(nèi)部緩存中所述計數(shù)信號量的當前值,并檢查異常;獲取內(nèi)部緩存中所述計數(shù)信號量的當前值時,再將所述計數(shù)信號量的當前值減1,保存所述當前內(nèi)部緩存中的計數(shù)信號量的值。
在讀取內(nèi)部緩存時可以通過多條通道讀取,并且多核同步處理單元上的直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元和計數(shù)域值信號量單元采用多通道訪問內(nèi)部緩存,如圖5所示的虛擬地址映射的示意圖,所述多通道訪問為將各個同步單元的訪問通過不同的地址映射到同一個內(nèi)部緩存,與現(xiàn)有技術(shù)中信號量處理單元和IPCdnter Processor Communication,進程間通信)單元是兩個獨立的單元,無法有效共享通道緩存相比,本發(fā)明實施例提供的方案可以實現(xiàn)最大限度的共享內(nèi)部緩存,節(jié)省內(nèi)部緩存資源,進一步地,內(nèi)部緩存可以采用資源較小的寄存器代替,并盡量增大通道數(shù),有效地降低了多核之間的競爭幾率。另外,對于共享通道緩存,假設(shè)有10個通道,在現(xiàn)有技術(shù)中,通過軟件可以設(shè)置這 10個通道中某些通道可以分別實現(xiàn)A、B、C、D的功能,例如,設(shè)置4個通道可以實現(xiàn)A的功能,設(shè)置2個通道可以實現(xiàn)B的功能,設(shè)置2個通道可以實現(xiàn)C的功能,設(shè)置2個通道可以實現(xiàn)D的功能;通過本發(fā)明實施例提供的方案,這10個通道都可以實現(xiàn)A、B、C、D的功能, 這樣,可以更加靈活的分配各個通道去實現(xiàn)相應(yīng)的功能。步驟304,判斷計數(shù)信號量的值是否為0 ;具體地,判斷當前內(nèi)部緩存中的計數(shù)信號量的值是否為0。步驟305,當計數(shù)信號量的值不為0時,則繼續(xù)由所述第一組處理設(shè)備處理當前任務(wù);如果計數(shù)信號量的值不為0時,表示當前需要處理的任務(wù)還沒有完成,則繼續(xù)由所述第一組處理設(shè)備中的沒有處理完成當前任務(wù)的處理設(shè)備占用計數(shù)信號量的資源處理當前任務(wù),然后執(zhí)行步驟303,當所述第一組處理設(shè)備中的某一個處理設(shè)備完成當前任務(wù)時,再將所述計數(shù)信號量值相應(yīng)的減1,判斷此時計數(shù)信號量的值是否為0。步驟306,當計數(shù)信號量的值為0時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。需要說明的是,控制消息是在步驟301中同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一個處理設(shè)備發(fā)送的申請消息中,已經(jīng)初始化設(shè)置好的。這里,當計數(shù)信號量的值為0時,說明第一組處理設(shè)備已經(jīng)將分配給各個處理設(shè)備的當前任務(wù)完成了,此時,第一組處理設(shè)備開始處理第二個任務(wù),其處理第二個任務(wù)的處理流程與處理當前任務(wù)的流程相同。如圖6所示的處理各個任務(wù)的示意圖,第一組處理設(shè)備包括處理器1,處理器2,加速器1,第二組處理設(shè)備包括加速器2,其中,處理器1處理當前任務(wù)中的A部分,處理器2處理當前任務(wù)中的B部分,加速器1處理當前任務(wù)中的C部分,加速器2處理當前任務(wù)中的D 部分,處理器1完成A部分任務(wù)的時間最短,處理器2完成B部分任務(wù)的時間最長,當處理器2完成B部分任務(wù)后,處理器1和加速器1都已完成相應(yīng)的任務(wù),此時,多核同步處理單元的計數(shù)信號量值已經(jīng)減為0,則多核同步處理單元向加速器2發(fā)送控制消息,以便加速器 2處理任務(wù)的D部分。當處理器1、處理器2和加速器1分別完成任務(wù)后,再去執(zhí)行其他的任務(wù)。例如,無線通訊中一個頻帶上承載多種信道類型,多種信 道分離后,需要不同的單元進行后續(xù)處理,例如加速器A處理完當前任務(wù)后,多核同步處理單元將控制消息分發(fā)到不同的地址,以啟動加速器B、啟動加速器C并通知處理器D處理所述當前任務(wù),與現(xiàn)有技術(shù)中,加速器A處理完當前任務(wù)后,通過中斷通知處理器D,然后處理器D通過中斷啟動加速器 B和加速器C,如果需要處理N個任務(wù)時,至少需要響應(yīng)3N次中斷相比,本發(fā)明實施例提供的方案可以有效地降低系統(tǒng)的開銷,特別是,當同步后的處理單元為加速器時,本發(fā)明實施例提供的方案不需要響應(yīng)中斷。需要說明的是,如果第二組中的處理設(shè)備為加速器時,步驟306中多核同步處理單元給第二組中的加速器發(fā)送控制消息,則不需要向第二組中的加速器發(fā)送中斷;如果第二組中的處理設(shè)備為處理器時,步驟306多核同步處理單元給處理器發(fā)送控制消息,則可以向第二組中的處理器發(fā)送中斷,也可以不發(fā)送中斷。具體地,如果向第二組中的處理器發(fā)送中斷時,具體通過中斷輸出接口發(fā)送,中斷輸出接口設(shè)置在多核同步處理單元上,中斷輸出接口用于多個所述控制消息的合并通知, 這樣,可以減少通知中斷的發(fā)送, 降低資源消耗。進一步地,所述第二組處理設(shè)備接收到所述多核同步處理單元發(fā)送的響應(yīng)消息, 處理所述當前任務(wù)。需要說明的是,如果也接收到中斷時,則需要處理中斷。當所有的處理設(shè)備需要處理N個任務(wù)時,由于各個處理設(shè)備處理任務(wù)的處理時間不定,如果第二組處理設(shè)備中的某個處理器處理任務(wù)時處理得慢,則處理全部任務(wù)的過程中僅需響應(yīng)一次中斷,如果第二組處理設(shè)備中的某個處理器處理任務(wù)時處理得快,則處理全部任務(wù)的過程中最多響應(yīng)N次中斷,這樣,有效地減少了系統(tǒng)響應(yīng)中斷的開銷。另外,現(xiàn)有技術(shù)中采用調(diào)度處理器處理同步時,調(diào)度處理器的調(diào)動速度受限制, 并且調(diào)度的效率很低,在高速業(yè)務(wù)處理時,無法滿足需求,例如,無線通訊的業(yè)務(wù)周期是毫秒量級,調(diào)度處理器的處理周期為微妙量級,處理相同的業(yè)務(wù)時,需要調(diào)度幾百次調(diào)度處理器,本發(fā)明實施例提供的方案通過采用多核同步處理單元處理同步時,可以實現(xiàn)快速同步調(diào)度多個處理設(shè)備,提高了調(diào)度的效率,節(jié)約了處理的時間。本發(fā)明實施例提供的一種基于多核系統(tǒng)的同步處理的方法,通過同步處理相同的當前任務(wù)的每個處理設(shè)備都處理完成當前的任務(wù)時,計數(shù)信號量的值減為0,然后多核同步處理單元向第二組的處理設(shè)備發(fā)送響應(yīng)消息,以便通知第二組處理器處理當前任務(wù)。與現(xiàn)有技術(shù)中在處理多核之間的同步和通訊時,通常需要通過中斷完成同步操作,導(dǎo)致系統(tǒng)調(diào)度的效率較低,資源消耗較大相比,本發(fā)明實施例提供的方案通過發(fā)送響應(yīng)控制消息處理多個處理設(shè)備之間的同步和通訊,可以提高系統(tǒng)調(diào)度的效率,降低系統(tǒng)的開銷,資源消耗較小。本發(fā)明實施例提供的一種基于多核系統(tǒng)的同步處理的裝置,該裝置可以為多核同步處理單元,多核同步處理單元位于SOC(System On a Chip,片上系統(tǒng))上。如圖7所示, 該裝置包括初始化模塊701,第一接收子模塊702,更新保存子模塊703,處理模塊704,第二接收子模塊705,獲取子模塊706,更新子模塊707,發(fā)送模塊708。初始化模塊701,用于接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M為所述一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);
處理設(shè)備為處理器或加速器,在處理當前任務(wù)時,可以由處理器完成,也可以由加速器完成。申請值為M的計數(shù)信號量中的M為可用資源的數(shù)目,在本發(fā)明中同步處理相同的當前任務(wù)的一組處理設(shè)備中的每個處理設(shè)備在處理當前任務(wù)時,需要占用一個資源,第一組處理設(shè)備同步處理相同的當前任務(wù)的次數(shù)為M,總共需要占用M個資源。具體地,所述初始化模塊701中的第一接收子模塊702,用于通過內(nèi)部緩存的任一通道接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置; 其中,所述初始化設(shè)置攜帶在申請消息中發(fā)送的,在發(fā)送初始化設(shè)置的申請消息時,可以通過多個通道發(fā)送。另外,申請消息中還包括申請標識,申請標識用于標識此次申請到的內(nèi)部緩存中的資源,以免重復(fù)申請此資源。更新保存子模塊703,用于讀取所述通道對應(yīng)的內(nèi)部緩存,將內(nèi)部緩存中的內(nèi)容更新為所述初始化設(shè)置,并保存所述初始化設(shè)置;需要說明的是,讀取所述通道對應(yīng)的內(nèi)部緩存后,還需要檢查是否存在異常,具體地,檢查是否重復(fù)初始化設(shè)置,是否存在非法申請進行初始化設(shè)置等。處理模塊704,用于接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息, 將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù);具體地,所述處理模塊704中的第二接收子模塊705,用于通過所述內(nèi)部緩存的任一通道接收所述第一組處理設(shè)備中的任一個處理設(shè)備發(fā)送的通知消息;所述通知消息中還包括釋放計數(shù)信號量的標識,即對申請消息中攜帶的申請標識進行釋放,以便再次使用釋放的資源。獲取子模塊706,用于讀取所述通道對應(yīng)的內(nèi)部緩存,并獲取內(nèi)部緩存中所述計數(shù)信號量的當前值;需要說明的是,獲取內(nèi)部緩存中所述計數(shù)信號量的當前值時,計數(shù)域值信號量單元可以通過多條通道讀取內(nèi)部緩存,并且多核同步處理單元上的直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元和計數(shù)域值信號量單元采用多通道訪問,所述多通道訪問為將各個同步單元的訪問通過不同的地址映射到同一個內(nèi)部緩存,可以實現(xiàn)最大限度的共享內(nèi)部緩存,節(jié)省內(nèi)部緩存資源,進一步地,內(nèi)部緩存可以采用資源較小的寄存器代替, 并盡量增大通道數(shù),有效地降低了多核之間的競爭幾率。另外所述直接獲取信號量單元,用于直接向獲取信號量的處理設(shè)備發(fā)送獲取標識;所述間接獲取信號量單元,用于通過發(fā)送消息或者發(fā)送中斷向獲取信號量的處理設(shè)備發(fā)送獲取標識;所述發(fā)送消息單元,用于通過消息發(fā)送接口向處理設(shè)備發(fā)送控制消息或者通知消息;所述計數(shù)域值信號量單元,用于控制同時訪問多核同步處理單元的處理設(shè)備獲得的計數(shù)信號量。具體地,直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元,在接收到新的初始化設(shè)置后,讀取內(nèi)部緩存,并檢查內(nèi)部緩存是否存在重復(fù)申請或者是否存在非法申請等異常,然后將內(nèi)部緩存中的內(nèi)容更新為初始化設(shè)置的內(nèi)容,并保存初始化設(shè)置內(nèi)容。更新子模塊707,用于將所述計數(shù)信號量的當前值減1,保存所述當前內(nèi)部緩存中的計數(shù)信號量的值;此時,判斷計數(shù)信號量的值是否為0,如果計數(shù)信號量的值不為0時,則繼續(xù)由所述第一組處理設(shè)備中的處理設(shè)備處理當前任務(wù);當所述計數(shù)信號量值為0時,發(fā)送模塊708,用于根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。

需要說明的是,現(xiàn)有技術(shù)中沒有發(fā)送模塊,即不能發(fā)送響應(yīng)消息,只能通過中斷進行同步單元之間的通訊,本發(fā)明實施例提供的方案中增加了發(fā)送模塊,同步單元的同步事件轉(zhuǎn)為消息發(fā)送,可以實現(xiàn)多個處理器和加速器之間可以互相同步和通訊。向所述第二組處理設(shè)備發(fā)送控制消息是通過消息發(fā)送接口發(fā)送的,消息發(fā)送接口設(shè)置在多核同步處理單元上。需要說明的是,如果發(fā)送模塊給加速器發(fā)送控制消息,則不需要向所述第二組處理設(shè)備發(fā)送中斷,如果發(fā)送模塊給處理器發(fā)送控制消息,則可以向所述第二組處理設(shè)備發(fā)送中斷,也可以不發(fā)送中斷。具體地,如果向第二組中的處理器發(fā)送中斷時,具體通過中斷輸出接口發(fā)送,中斷輸出接口設(shè)置在多核同步處理單元上,中斷輸出接口用于多個所述控制消息的合并通知, 這樣,可以減少通知中斷的發(fā)送,降低資源消耗。。另外,當所有的處理設(shè)備需要處理N個任務(wù)時,由于各個處理設(shè)備處理任務(wù)的處理時間不定,如果第二組處理設(shè)備中的處理器處理任務(wù)時處理得慢,則處理全部任務(wù)的過程中僅需響應(yīng)一次中斷,如果第二組處理設(shè)備中的處理器處理任務(wù)時處理得快,則處理全部任務(wù)的過程中最多響應(yīng)N次中斷,這樣,有效地減少了系統(tǒng)響應(yīng)中斷的開銷。例如,無線通訊中一個頻帶上承載多種信道類型,多種信道分離后,需要不同的單元進行后續(xù)處理,例如加速器A處理完當前任務(wù)后,多核同步處理單元將控制消息分發(fā)到不同的地址,以啟動加速器B、啟動加速器C并通知處理器D處理所述當前任務(wù),與現(xiàn)有技術(shù)中,加速器A處理完當前任務(wù)后,通過中斷通知處理器D,然后處理器D通過中斷啟動加速器 B和加速器C,如果需要處理N個任務(wù)時,至少需要響應(yīng)3N此中斷相比,本發(fā)明實施例提供的方案可以有效地降低系統(tǒng)的開銷,特別是,當同步后的處理單元為加速器時,本發(fā)明實施例提供的方案不需要響應(yīng)中斷。本發(fā)明實施例提供的一種基于多核系統(tǒng)的同步處理的裝置,通過同步處理相同的當前任務(wù)的每個處理設(shè)備處理完成當前的任務(wù)時,處理單元將計數(shù)信號量的值減1,當所述計數(shù)信號量的值為0時,發(fā)送模塊向多核同步處理單元發(fā)送控制消息,以便通知第二組處理設(shè)備處理當前任務(wù)。與現(xiàn)有技術(shù)中在處理多核之間的同步和通訊時,通常需要通過中斷完成同步操作,導(dǎo)致系統(tǒng)調(diào)度的效率較低,資源消耗較大相比,本發(fā)明實施例提供的方案通過發(fā)送響應(yīng)消息處理多核之間的同步和通訊,可以提高系統(tǒng)調(diào)度的效率,降低系統(tǒng)的開銷, 資源消耗較小。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。
權(quán)利要求
1.一種基于多核系統(tǒng)的同步處理方法,其特征在于,包括接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M 和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容,M為所述第一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù);當所述計數(shù)信號量值為O時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息, 以便所述第二組處理設(shè)備處理所述當前任務(wù)。
2.根據(jù)權(quán)利要求1所述的基于多核系統(tǒng)的同步處理方法,其特征在于,在所述接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化包括通過內(nèi)部緩存的任一通道接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置;讀取所述通道對應(yīng)的內(nèi)部緩存,將內(nèi)部緩存中的內(nèi)容更新為所述初始化設(shè)置,并保存所述初始化設(shè)置。
3.根據(jù)權(quán)利要求2所述的基于多核系統(tǒng)的同步處理方法,其特征在于,所述接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1包括通過所述內(nèi)部緩存的任一通道接收所述第一組處理設(shè)備中的任一個處理設(shè)備發(fā)送的通知消息;讀取所述通道對應(yīng)的內(nèi)部緩存,并獲取內(nèi)部緩存中所述計數(shù)信號量的當前值;將所述計數(shù)信號量的當前值減1,保存所述當前內(nèi)部緩存中的計數(shù)信號量的值。
4.一種基于多核系統(tǒng)的同步處理裝置,其特征在于,包括初始化模塊,用于接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,所述初始化設(shè)置包括設(shè)置當前多核同步處理單元的計數(shù)信號量值為M和設(shè)置所述當前多核同步處理單元啟動第二組處理設(shè)備的控制消息內(nèi)容, M為所述第一組處理設(shè)備同步處理所述當前任務(wù)的次數(shù);處理模塊,用于接收所述第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將所述計數(shù)信號量值相應(yīng)的減1,所述通知消息的內(nèi)容為發(fā)送所述通知消息的處理設(shè)備完成所述當前任務(wù);發(fā)送模塊,用于當所述計數(shù)信號量值為O時,根據(jù)設(shè)置的所述當前多核同步處理單元啟動第二組處理設(shè)備的所述控制消息內(nèi)容,通過消息發(fā)送接口向所述第二組處理設(shè)備發(fā)送所述控制消息,以便所述第二組處理設(shè)備處理所述當前任務(wù)。
5.根據(jù)權(quán)利要求4所述的基于多核系統(tǒng)的同步處理裝置,其特征在于,所述初始化模塊包括第一接收子模塊,用于通過內(nèi)部緩存的任一通道接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置;更新保存子模塊,用于讀取所述通道對應(yīng)的內(nèi)部緩存,將內(nèi)部緩存中的內(nèi)容更新為所述初始化設(shè)置,并保存所述初始化設(shè)置。
6.根據(jù)權(quán)利要求5所述的基于多核系統(tǒng)的同步處理裝置,其特征在于,所述處理模塊包括第二接收子模塊,用于通過所述內(nèi)部緩存的任一通道接收所述第一組處理設(shè)備中的任一個處理設(shè)備發(fā)送的通知消息;獲取子模塊,用于讀取所述通道對應(yīng)的內(nèi)部緩存,并獲取內(nèi)部緩存中所述計數(shù)信號量的當前值;更新子模塊,用于將所述計數(shù)信號量的當前值減1,保存所述當前內(nèi)部緩存中的計數(shù)信號量的值。
7.根據(jù)權(quán)利要求6中所述的基于多核系統(tǒng)的同步處理裝置,其特征在于,所述多核同步處理單元包括直接獲取信號量單元、間接獲取信號量單元、發(fā)送消息單元、計數(shù)域值信號量單兀;所述直接獲取信號量單元,用于直接向獲取信號量的處理設(shè)備發(fā)送獲取標識; 所述間接獲取信號量單元,用于通過發(fā)送消息或者發(fā)送中斷向獲取信號量的處理設(shè)備發(fā)送獲取標識;所述發(fā)送消息單元,用于通過消息發(fā)送接口向處理設(shè)備發(fā)送控制消息或者通知消息; 所述計數(shù)域值信號量單元,用于控制同時訪問多核同步處理單元的處理設(shè)備獲得的計數(shù)信號量。
全文摘要
本發(fā)明公開一種基于多核系統(tǒng)的同步處理方法及裝置,涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,可以提高系統(tǒng)調(diào)度的效率,資源消耗較小。本發(fā)明提供的方案接收同步處理相同的當前任務(wù)的第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的初始化設(shè)置,并進行初始化,然后接收第一組處理設(shè)備中的任一處理設(shè)備發(fā)送的通知消息,將計數(shù)信號量值相應(yīng)的減1,當計數(shù)信號量值為0時,通過消息發(fā)送接口向第二組處理設(shè)備發(fā)送控制消息。本發(fā)明實施例提供的方案適合在處理多處理模塊之間的同步和通訊時采用。
文檔編號G06F9/52GK102334104SQ201180001479
公開日2012年1月25日 申請日期2011年8月15日 優(yōu)先權(quán)日2011年8月15日
發(fā)明者杜學峰 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
扶绥县| 金昌市| 罗江县| 额济纳旗| 临清市| 铁岭市| 嘉荫县| 余干县| 南部县| 安仁县| 金沙县| 黄陵县| 温宿县| 余庆县| 马龙县| 彭阳县| 永安市| 威远县| 天祝| 云和县| 佛冈县| 稻城县| 靖西县| 长沙县| 福州市| 永嘉县| 盐津县| 麦盖提县| 益阳市| 泸州市| 化州市| 崇礼县| 阿合奇县| 托里县| 陕西省| 林西县| 海口市| 沅陵县| 漳浦县| 盖州市| 潢川县|