本公開涉及計算機(jī),尤其涉及一種指令控制電路及指令控制方法、處理器和芯片。
背景技術(shù):
1、在單指令多數(shù)據(jù)(single?instruction?multiple?data,simd)、單指令多線程(single?instruction?multiple?thread,simt)等架構(gòu)中,多個指令可組成一個組,多個組之間可進(jìn)行調(diào)度來增加并行性,由于指令之間存在依賴關(guān)系,例如某個指令會依賴另一指令的執(zhí)行結(jié)果,會隱藏執(zhí)行延遲。例如,當(dāng)某個指令的執(zhí)行結(jié)果成為后續(xù)指令的輸入時,這種依賴關(guān)系會阻止處理器進(jìn)行無依賴的并行執(zhí)行。在這種情況下,處理器可能需要暫停執(zhí)行依賴的指令,等待前一個指令完成,這會影響處理器的數(shù)據(jù)處理效率。
技術(shù)實現(xiàn)思路
1、本公開提出了一種指令控制技術(shù)方案。
2、根據(jù)本公開的一方面,提供了一種指令控制電路,所述指令控制電路包括:存儲單元、第一計分板、第二計分板、n個執(zhí)行單元、與每個執(zhí)行單元對應(yīng)的數(shù)據(jù)緩沖器,n為大于等于1的整數(shù);所述指令控制電路用于:在第二指令依賴第一指令的結(jié)果數(shù)據(jù)的情況下,響應(yīng)于執(zhí)行單元將所述第一指令的結(jié)果數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)緩沖器,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),所述第二計分板將所述第一指令的第二狀態(tài)更新為第二依賴狀態(tài);響應(yīng)于所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),執(zhí)行單元接收第二指令;響應(yīng)于所述數(shù)據(jù)緩沖器將所述第一指令的結(jié)果數(shù)據(jù)寫入存儲單元,所述第二計分板將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài);所述執(zhí)行單元在檢測出所述第二計分板將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài)的情況下,所述執(zhí)行單元根據(jù)第二指令向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求。
3、在一種可能的實現(xiàn)方式中,執(zhí)行單元連接對應(yīng)的數(shù)據(jù)緩沖器,n個數(shù)據(jù)緩沖器分別連接所述存儲單元、所述第二計分板,n個執(zhí)行單元分別連接所述第一計分板、所述第二計分板,所述存儲單元連接所述第二計分板。
4、在一種可能的實現(xiàn)方式中,所述執(zhí)行單元在檢測出所述第二計分板未將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài)的情況下,等待所述數(shù)據(jù)緩沖器將所述第一指令的結(jié)果數(shù)據(jù)寫入存儲單元。
5、在一種可能的實現(xiàn)方式中,所述指令控制電路還用于:在所述第一指令依賴第三指令的結(jié)果數(shù)據(jù),并且,所述第二指令依賴所述第一指令的結(jié)果數(shù)據(jù)的情況下,響應(yīng)于所述執(zhí)行單元接收所述第一指令,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài);響應(yīng)于所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài),并且所述第二計分板將第三指令的第二狀態(tài)更新為第二解除依賴狀態(tài),所述執(zhí)行單元根據(jù)所述第一指令向所述存儲單元發(fā)起讀取第三指令的結(jié)果數(shù)據(jù)的訪問請求;所述執(zhí)行單元根據(jù)所述第三指令的結(jié)果數(shù)據(jù)生成第一指令的結(jié)果數(shù)據(jù);響應(yīng)于所述執(zhí)行單元將第一指令的結(jié)果數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)緩沖器,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),所述第二計分板將所述第一指令的第二狀態(tài)更新為第二依賴狀態(tài),并記錄所述第一指令的結(jié)果數(shù)據(jù)的寫入地址。
6、在一種可能的實現(xiàn)方式中,所述執(zhí)行單元根據(jù)第二指令向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求,包括:所述執(zhí)行單元根據(jù)第二指令和所述第二計分板記錄的所述第一指令的結(jié)果數(shù)據(jù)的寫入地址,向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求。
7、在一種可能的實現(xiàn)方式中,所述指令控制電路還包括調(diào)度端口,所述調(diào)度端口連接n個執(zhí)行單元、第一計分板,所述調(diào)度端口用于從多條指令中選出第一指令,并將所述第一指令發(fā)送至執(zhí)行單元,所述第一指令不依賴多條指令中的任一指令;響應(yīng)于所述執(zhí)行單元接收所述第一指令,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài),包括:響應(yīng)于所述執(zhí)行單元接收所述第一指令,所述調(diào)度端口指示所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài)。
8、在一種可能的實現(xiàn)方式中,所述指令控制電路還包括仲裁器,n個數(shù)據(jù)緩沖器經(jīng)由所述仲裁器連接所述存儲單元,所述仲裁器用于對來自n個數(shù)據(jù)緩沖器的指令結(jié)果數(shù)據(jù)進(jìn)行仲裁處理,按照仲裁順序向所述存儲單元寫入指令結(jié)果數(shù)據(jù)。
9、根據(jù)本公開的一方面,提供了一種指令控制方法,所述指令控制方法應(yīng)用于指令控制電路,所述指令控制電路包括:存儲單元、第一計分板、第二計分板、n個執(zhí)行單元、與每個執(zhí)行單元對應(yīng)的數(shù)據(jù)緩沖器,n為大于等于1的整數(shù);所述指令控制方法包括:在第二指令依賴第一指令的結(jié)果數(shù)據(jù)的情況下,響應(yīng)于執(zhí)行單元將所述第一指令的結(jié)果數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)緩沖器,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),所述第二計分板將所述第一指令的第二狀態(tài)更新為第二依賴狀態(tài);響應(yīng)于所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),執(zhí)行單元接收第二指令;響應(yīng)于所述數(shù)據(jù)緩沖器將所述第一指令的結(jié)果數(shù)據(jù)寫入存儲單元,所述第二計分板將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài);所述執(zhí)行單元在檢測出所述第二計分板將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài)的情況下,所述執(zhí)行單元根據(jù)第二指令向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求。
10、在一種可能的實現(xiàn)方式中,執(zhí)行單元連接對應(yīng)的數(shù)據(jù)緩沖器,n個數(shù)據(jù)緩沖器分別連接所述存儲單元、所述第二計分板,n個執(zhí)行單元分別連接所述第一計分板、所述第二計分板,所述存儲單元連接所述第二計分板。
11、在一種可能的實現(xiàn)方式中,所述指令控制方法還包括:所述執(zhí)行單元在檢測出所述第二計分板未將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài)的情況下,等待所述數(shù)據(jù)緩沖器將所述第一指令的結(jié)果數(shù)據(jù)寫入存儲單元。
12、在一種可能的實現(xiàn)方式中,所述指令控制方法還包括:在所述第一指令依賴第三指令的結(jié)果數(shù)據(jù),并且,所述第二指令依賴所述第一指令的結(jié)果數(shù)據(jù)的情況下,響應(yīng)于所述執(zhí)行單元接收所述第一指令,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài);響應(yīng)于所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài),并且所述第二計分板將第三指令的第二狀態(tài)更新為第二解除依賴狀態(tài),所述執(zhí)行單元根據(jù)所述第一指令向所述存儲單元發(fā)起讀取第三指令的結(jié)果數(shù)據(jù)的訪問請求;所述執(zhí)行單元根據(jù)所述第三指令的結(jié)果數(shù)據(jù)生成第一指令的結(jié)果數(shù)據(jù);響應(yīng)于所述執(zhí)行單元將第一指令的結(jié)果數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)緩沖器,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),所述第二計分板將所述第一指令的第二狀態(tài)更新為第二依賴狀態(tài),并記錄所述第一指令的結(jié)果數(shù)據(jù)的寫入地址。
13、在一種可能的實現(xiàn)方式中,所述執(zhí)行單元根據(jù)第二指令向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求,包括:所述執(zhí)行單元根據(jù)第二指令和所述第二計分板記錄的所述第一指令的結(jié)果數(shù)據(jù)的寫入地址,向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求。
14、在一種可能的實現(xiàn)方式中,所述指令控制電路還包括調(diào)度端口,所述調(diào)度端口連接n個執(zhí)行單元、第一計分板,所述調(diào)度端口用于從多條指令中選出第一指令,并將所述第一指令發(fā)送至執(zhí)行單元,所述第一指令不依賴多條指令中的任一指令;響應(yīng)于所述執(zhí)行單元接收所述第一指令,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài),包括:響應(yīng)于所述執(zhí)行單元接收所述第一指令,所述調(diào)度端口指示所述第一計分板將所述第一指令的第一狀態(tài)更新為第一依賴狀態(tài)。
15、在一種可能的實現(xiàn)方式中,所述指令控制電路還包括仲裁器,n個數(shù)據(jù)緩沖器經(jīng)由所述仲裁器連接所述存儲單元,所述仲裁器用于對來自n個數(shù)據(jù)緩沖器的指令結(jié)果數(shù)據(jù)進(jìn)行仲裁處理,按照仲裁順序向所述存儲單元寫入指令結(jié)果數(shù)據(jù)。
16、根據(jù)本公開的一方面,提供了一種處理器,所述處理器包括如上所述的指令控制電路。
17、根據(jù)本公開的一方面,提供了一種芯片,所述芯片包括如上所述的處理器。
18、根據(jù)本公開的一方面,提供了一種電子設(shè)備,包括:處理器;用于存儲處理器可執(zhí)行指令的存儲單元;其中,所述處理器被配置為調(diào)用所述存儲單元存儲的指令,以執(zhí)行上述方法。
19、根據(jù)本公開的一方面,提供了一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序指令,所述計算機(jī)程序指令被處理器執(zhí)行時實現(xiàn)上述方法。
20、在本公開實施例的指令控制電路中,在第二指令依賴第一指令的結(jié)果數(shù)據(jù)的情況下,響應(yīng)于執(zhí)行單元將所述第一指令的結(jié)果數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)緩沖器,所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),所述第二計分板將所述第一指令的第二狀態(tài)更新為第二依賴狀態(tài);響應(yīng)于所述第一計分板將所述第一指令的第一狀態(tài)更新為第一解除依賴狀態(tài),執(zhí)行單元接收第二指令;響應(yīng)于所述數(shù)據(jù)緩沖器將所述第一指令的結(jié)果數(shù)據(jù)寫入存儲單元,所述第二計分板將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài);所述執(zhí)行單元在檢測出所述第二計分板將所述第一指令的第二狀態(tài)更新為第二解除依賴狀態(tài)的情況下,所述執(zhí)行單元根據(jù)第二指令向所述存儲單元發(fā)起讀取所述第一指令的結(jié)果數(shù)據(jù)的訪問請求。這樣,通過第一計分板和第二計分板的配合使用,可記錄當(dāng)前已經(jīng)產(chǎn)生結(jié)果數(shù)據(jù)但還未寫入存儲單元的第一指令,從而欺騙指令控制電路解除當(dāng)前第一指令與下一條第二指令之間的依賴關(guān)系,以便提前喚醒第二指令,可減少相互依賴的指令之間的延遲時間,提高指令執(zhí)行的效率。
21、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,而非限制本公開。根據(jù)下面參考附圖對示例性實施例的詳細(xì)說明,本公開的其它特征及方面將變得清楚。