所述鎖定地址處于保持態(tài)時,阻止其他處理器對所述鎖定地址的讀寫操作;
[0084]執(zhí)行模塊200,用于執(zhí)行所述處理器對所述鎖定地址的讀寫操作;
[0085]保持時長設置模塊300,用于設置所述處理器對所述鎖定地址的保持時長;
[0086]解除模塊400,用于當所述鎖存地址處于保持態(tài)的時長大于所述保持時長,則解除所述鎖定地址的保持態(tài),并觸發(fā)恢復模塊500 ;
[0087]所述恢復模塊500,用于恢復與所述保持態(tài)相對應的協(xié)議狀態(tài)。
[0088]優(yōu)選的,在本發(fā)明的另一實施例中,所述協(xié)議狀態(tài)轉換模塊100,包括:
[0089]第一協(xié)議狀態(tài)轉換單元,用于當所述鎖定地址的協(xié)議初始狀態(tài)為無效態(tài)或者共享態(tài)時,所述處理器請求獨占保持態(tài);
[0090]第二協(xié)議狀態(tài)轉換單元,用于當所述鎖定地址的協(xié)議初始狀態(tài)為獨占態(tài)時,將所述獨占態(tài)轉換為獨占保持態(tài);
[0091]第三協(xié)議狀態(tài)轉換單元,用于當所述鎖定地址的協(xié)議初始狀態(tài)為修改態(tài)時,將所述修改態(tài)轉換為修改保持態(tài)。
[0092]優(yōu)選的,在本發(fā)明的另一實施例中,當所述鎖定地址處于獨占保持態(tài)時,所述執(zhí)行模塊200執(zhí)行所述處理器的讀操作,保持所述鎖定地址處于獨占保持態(tài)不變;所述執(zhí)行模塊200執(zhí)行所述處理器的寫操作,將所述鎖定地址的協(xié)議狀態(tài)變?yōu)樾薷谋3謶B(tài);
[0093]當所述鎖定地址處于修改保持態(tài)時,則所述執(zhí)行模塊200執(zhí)行所述處理器的讀操作和寫操作,所述鎖定地址的協(xié)議狀態(tài)不變。
[0094]優(yōu)選的,在本發(fā)明的另一實施例中,所述恢復模塊500,包括:
[0095]第一恢復模塊,用于當所述鎖定地址處于獨占保持態(tài),并且所述鎖存地址處于獨占保持態(tài)的時長大于所述保持時長時,將所述鎖定地址的協(xié)議狀態(tài)轉換為獨占態(tài);
[0096]第二恢復模塊,用于當所述鎖定地址處于修改保持態(tài),并且所述鎖存地址處于修改保持態(tài)的時長大于所述保持時長,將所述鎖定地址的協(xié)議狀態(tài)轉換為修改態(tài)。
[0097]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
[0098]對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【主權項】
1.一種基于緩存一致性原理的原子操作實現(xiàn)方法,其特征在于,包括: 當處理器對鎖定地址執(zhí)行原子操作時,將所述鎖定地址的協(xié)議初始狀態(tài)轉換為保持態(tài);其中,在所述鎖定地址處于保持態(tài)時,阻止其他處理器對所述鎖定地址的讀寫操作;執(zhí)行所述處理器對所述鎖定地址的讀寫操作。2.根據(jù)權利要求1所述的原子操作實現(xiàn)方法,其特征在于,將所述鎖定地址的協(xié)議初始狀態(tài)轉換為保持態(tài)之后,還包括: 設置所述處理器對所述鎖定地址的保持時長; 當所述鎖存地址處于保持態(tài)的時長大于所述保持時長時,解除所述鎖定地址的保持態(tài),恢復與所述保持態(tài)相對應的協(xié)議狀態(tài)。3.根據(jù)權利要求2所述的原子操作實現(xiàn)方法,其特征在于,將所述鎖定地址的協(xié)議初始狀態(tài)轉換為保持態(tài),包括: 若所述鎖定地址的協(xié)議初始狀態(tài)為無效態(tài)或者共享態(tài),則所述處理器請求獨占保持態(tài); 若所述鎖定地址的協(xié)議初始狀態(tài)為獨占態(tài),則將所述獨占態(tài)轉換為獨占保持態(tài); 若所述鎖定地址的協(xié)議初始狀態(tài)為修改態(tài),則將所述修改態(tài)轉換為修改保持態(tài)。4.根據(jù)權利要求3所述的原子操作實現(xiàn)方法,其特征在于, 若所述鎖定地址處于獨占保持態(tài),則執(zhí)行所述處理器的讀操作時,保持所述鎖定地址處于獨占保持態(tài)不變;執(zhí)行所述處理器的寫操作時,將所述鎖定地址的協(xié)議狀態(tài)變?yōu)樾薷谋3謶B(tài); 若所述鎖定地址處于修改保持態(tài),則執(zhí)行所述處理器的讀操作和寫操作時,所述鎖定地址的協(xié)議狀態(tài)不變。5.根據(jù)權利要求4所述的原子操作實現(xiàn)方法,其特征在于, 若所述鎖定地址處于獨占保持態(tài),并且所述鎖存地址處于獨占保持態(tài)的時長大于所述保持時長,將所述鎖定地址的協(xié)議狀態(tài)轉換為獨占態(tài); 若所述鎖定地址處于修改保持態(tài),并且所述鎖存地址處于修改保持態(tài)的時長大于所述保持時長,將所述鎖定地址的協(xié)議狀態(tài)轉換為修改態(tài)。6.一種基于緩存一致性原理的原子操作實現(xiàn)裝置,其特征在于,包括: 協(xié)議狀態(tài)轉換模塊,用于當處理器對鎖定地址執(zhí)行原子操作時,將所述鎖定地址的協(xié)議初始狀態(tài)轉換為保持態(tài);其中,在所述鎖定地址處于保持態(tài)時,阻止其他處理器對所述鎖定地址的讀寫操作; 執(zhí)行模塊,用于執(zhí)行所述處理器對所述鎖定地址的讀寫操作。7.根據(jù)權利要求6所述的原子操作實現(xiàn)裝置,其特征在于,還包括: 保持時長設置模塊,用于設置所述處理器對所述鎖定地址的保持時長; 解除模塊,用于當所述鎖存地址處于保持態(tài)的時長大于所述保持時長,則解除所述鎖定地址的保持態(tài),并觸發(fā)恢復模塊; 所述恢復模塊,用于恢復與所述保持態(tài)相對應的協(xié)議狀態(tài)。8.根據(jù)權利要求7所述的原子操作實現(xiàn)裝置,其特征在于,所述協(xié)議狀態(tài)轉換模塊,包括: 第一協(xié)議狀態(tài)轉換單元,用于當所述鎖定地址的協(xié)議初始狀態(tài)為無效態(tài)或者共享態(tài)時,所述處理器請求獨占保持態(tài); 第二協(xié)議狀態(tài)轉換單元,用于當所述鎖定地址的協(xié)議初始狀態(tài)為獨占態(tài)時,將所述獨占態(tài)轉換為獨占保持態(tài); 第三協(xié)議狀態(tài)轉換單元,用于當所述鎖定地址的協(xié)議初始狀態(tài)為修改態(tài)時,將所述修改態(tài)轉換為修改保持態(tài)。9.根據(jù)權利要求8所述的原子操作實現(xiàn)裝置,其特征在于, 當所述鎖定地址處于獨占保持態(tài)時,所述執(zhí)行模塊執(zhí)行所述處理器的讀操作,保持所述鎖定地址處于獨占保持態(tài)不變;所述執(zhí)行模塊執(zhí)行所述處理器的寫操作,將所述鎖定地址的協(xié)議狀態(tài)變?yōu)樾薷谋3謶B(tài); 當所述鎖定地址處于修改保持態(tài)時,則所述執(zhí)行模塊執(zhí)行所述處理器的讀操作和寫操作,所述鎖定地址的協(xié)議狀態(tài)不變。10.根據(jù)權利要求9所述的原子操作實現(xiàn)裝置,其特征在于,所述恢復模塊,包括: 第一恢復模塊,用于當所述鎖定地址處于獨占保持態(tài),并且所述鎖存地址處于獨占保持態(tài)的時長大于所述保持時長時,將所述鎖定地址的協(xié)議狀態(tài)轉換為獨占態(tài); 第二恢復模塊,用于當所述鎖定地址處于修改保持態(tài),并且所述鎖存地址處于修改保持態(tài)的時長大于所述保持時長,將所述鎖定地址的協(xié)議狀態(tài)轉換為修改態(tài)。
【專利摘要】本發(fā)明實施例公開了一種基于一致性原理的原子操作實現(xiàn)方法及裝置,包括當處理器對鎖定地址執(zhí)行原子操作時,將所述鎖定地址的協(xié)議初始狀態(tài)轉換為保持態(tài);其中,在所述鎖定地址處于保持態(tài)時,阻止其他處理器對所述鎖定地址的讀寫操作;執(zhí)行所述處理器對所述鎖定地址的讀寫操作,當所述鎖定地址處于保持態(tài)時,處理器的緩存一致性維護機制保證只有當前處理器能夠對所述鎖定地址執(zhí)行讀寫操作,其它處理器對所述鎖定地址的操作均需暫停等待,從而保證處理器對鎖定地址的原子操作。
【IPC分類】G06F12/02, G06F9/44
【公開號】CN105094840
【申請?zhí)枴緾N201510501567
【發(fā)明人】倪璠
【申請人】浪潮(北京)電子信息產業(yè)有限公司
【公開日】2015年11月25日
【申請日】2015年8月14日