TWI753036B - 處理資料過程中的調度方法、裝置和系統 - Google Patents

處理資料過程中的調度方法、裝置和系統 Download PDF

Info

Publication number
TWI753036B
TWI753036B TW106136681A TW106136681A TWI753036B TW I753036 B TWI753036 B TW I753036B TW 106136681 A TW106136681 A TW 106136681A TW 106136681 A TW106136681 A TW 106136681A TW I753036 B TWI753036 B TW I753036B
Authority
TW
Taiwan
Prior art keywords
computing
engine
data processing
satisfies
operation unit
Prior art date
Application number
TW106136681A
Other languages
English (en)
Other versions
TW201826121A (zh
Inventor
張曉昱
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201826121A publication Critical patent/TW201826121A/zh
Application granted granted Critical
Publication of TWI753036B publication Critical patent/TWI753036B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)

Abstract

本發明公開了一種處理資料過程中的調度方法、裝置和系統。其中,該方法包括:計算設備從請求隊列中讀取至少一個資料處理請求;計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。本發明解決了電腦設備中運算資源利用率低的技術問題。

Description

處理資料過程中的調度方法、裝置和系統
本發明係有關一種資訊安全領域,具體而言,尤其是一種處理資料過程中的調度方法、裝置和系統。
在資料處理過程中,尤其在多任務資料處理過程中,通常會涉及到很多的運算,在進行這些運算過程中,會消耗大量的CPU資源,影響系統的性能。為了減少在資料處理過程中對CPU資源的佔用,可以採用增加硬體加速單元,將大量的運算在CPU之外運行。   以RSA公鑰加密算法為例,RSA公鑰加密算法是一種重要的非對稱簽名/加密算法,廣泛應用於現有的網路通信中(例如,HTTPS)。在RSA加密算法中涉及到大量的運算,並且其加密強度依賴於密鑰長度,即密鑰越長,破解的難度越大。隨著電腦技術的快速發展,為了增強RSA加密的安全強度,需要採用更長的密鑰,然後,採用更長的密鑰長度,會導致RSA加解密速度降低。通常,在伺服器端完成RSA算法的計算,如果利用軟體完成RSA加解密,則需要耗費大量的CPU資源,嚴重影響性能;如果利用硬體加速單元將運算密集的RSA操作在CPU之外單獨進行,則CPU能夠處理更多的協議棧和操作系統層面的請求。   由於硬體加速單元中通常都會採用多運算核心(引擎)的方案來進行運算處理,因而基於硬體加速的資料處理方案,需要解決如何在多個引擎之間調度資源、提高資源利用效率的問題。   針對上述的問題,目前尚未提出有效的解決方案。
本發明實施例提供了一種處理資料過程中的調度方法、裝置和系統,以至少解決電腦設備中運算資源利用率低的技術問題。   根據本發明實施例的一個方面,提供了一種處理資料過程中的調度方法,包括:計算設備從請求隊列中讀取至少一個資料處理請求;計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   根據本發明實施例的一個方面,還提供了一種處理資料過程中的調度系統,包括:計算設備,包括:輸入/輸出介面、一級調度器、二級調度器、多個運算引擎和多個邏輯運算單元;輸入/輸出介面,用於接收至少一個資料處理請求,並儲存至請求隊列中;一級調度器,與輸入/輸出介面連接,用於從請求隊列中讀取至少一個資料處理請求,並為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;二級調度器,與一級調度器連接,用於接收資料處理請求,並基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;其中,滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   根據本發明實施例的另一方面,還提供了一種處理資料過程中的調度裝置,包括:讀取模組,用於計算設備從請求隊列中讀取至少一個資料處理請求;分配模組,用於計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;調度模組,用於基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;處理模組,用於計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求;其中,計算設備包括多個運算引擎和多個邏輯運算單元。   根據本發明實施例的另一方面,還提供了一種用於硬體加密單元的任務調度裝置,輸入/輸出介面,用於從請求隊列中讀取至少一個資料處理請求;控制器,與輸入/輸出介面連接,用於為每個資料處理請求分配到一個滿足第一預設條件的運算引擎,以及調度滿足第二預設條件的至少一個邏輯運算單元,並使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   根據本發明實施例的另一方面,還提供了一種計算設備,包括:硬體加密單元,用於處理加密請求;儲存器,與硬體加密單元連接,用於將加密請求中的一個或多個資料處理請求儲存至請求隊列中;任務調度單元,與儲存器連接,用於從請求隊列中讀取至少一個資料處理請求,並為資料處理請求分配到一個滿足第一預設條件的運算引擎,以及調度滿足第二預設條件的至少一個邏輯運算單元;處理器,與任務調度單元連接,用於使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   根據本發明實施例的另一方面,還提供了一種處理資料過程中的兩級調度方法,包括:從請求隊列中讀取至少一個資料處理請求;執行一級調度:為每個資料處理請求分配到一個滿足預設狀態的運算引擎,其中,運算引擎在執行過程中具備多個執行狀態;執行二級調度:基於滿足預設狀態的運算引擎的狀態資料,從邏輯運算單元池中調度,選擇與預設狀態對應的可用的至少一個邏輯運算單元;使用邏輯運算單元處理資料處理請求。   根據本發明實施例的另一方面,還提供了計算設備,包括:輸入輸出介面,用於接收資料處理請求;儲存器,用於保存資料處理請求,形成請求隊列;一級調度器,用於從請求隊列中讀取至少一個資料處理請求,並分配到一個滿足預設狀態的運算引擎;二級調度器,用於基於滿足預設狀態的運算引擎的狀態資料,從邏輯運算單元池中調度,選擇與預設狀態對應的可用的至少一個邏輯運算單元處理資料處理請求;運算引擎池,包括多個運算引擎,用於向一級調度器提供預設狀態的運算引擎,其中,每個運算引擎在執行過程中具備多個執行狀態;和邏輯運算單元池,包括多個邏輯運算單元,用於向二級調度器提供邏輯運算單元。   在本發明實施例中,通過計算設備從請求隊列中讀取至少一個資料處理請求;計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求,達到了將邏輯複雜的一級調度與邏輯簡單的二級調度區分開的目的,從而實現了有效地對運算任務進行動態調整和分配運算資源的技術效果,進而解決了電腦設備中運算資源利用率低的技術問題。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基於本發明中的實施例,所屬技術領域中具有通常知識者在沒有做出進步性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。   需要說明的是,本發明的說明書和請求項書及上述圖式中的術語“第一”、“第二”等是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的資料在適當情況下可以互換,以便這裡描述的本發明的實施例能夠以除了在這裡圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。   首先,在對本申請實施例進行描述的過程中出現的部分名詞或術語適用於如下解釋:   RSA算法:一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。   ALU:Algorithm Logic Unit,算術邏輯單元,實現多組算術運算和邏輯運算的組合邏輯電路。   LRU:Least Recently Used,“近期最少使用”算法,用於為運算任務選擇相應的運算引擎。   HTTPS:全稱為“Hyper Text Transfer Protocol over Secure Socket Layer”,即加入Secure Socket Layer的HTTP,以安全為目標的HTTP通道,是HTTP的安全版。   運算引擎:在硬體加速器中用於進行運算處理的核心組件,硬體加速器通常會採用多個運算核心組件來提高處理算法的速度。 實施例1   在描述本申請的各實施例的進一步細節之前,將參考圖1來描述可用於實現本申請的原理的一個合適的硬體資源調度體系結構。   圖1是根據本發明實施例的一種硬體資源調度系統結構示意圖。出於描述的目的,所繪的體系結構僅為合適環境的一個示例,並非對本申請的使用範圍或功能提出任何局限。也不應將該硬體資源調度系統解釋為對圖1所示的任一組件或其組合具有任何依賴或需求。   如圖1所示,該硬體資源調度系統在本發明中用於實現處理資料過程中的調度系統,具體的,可以通過安全引擎來實現產生密鑰等密碼功能。上述硬體資源調度系統可以包括:客戶端設備10以及可以通過網路與客戶端設備通信的伺服器20。在本申請中,客戶端設備10與伺服器20可以建立安全通信會話,客戶端設備10可以是行動設備、電腦設備部、機上盒、數位電視、平板設備、行動網際網路設備(MID)、臺式電腦或者能夠與伺服器20進行通信的其它設備。   在客戶端設備10與伺服器20發起安全通信會話的過程中,需要進行相互之間的安全驗證,即通過交換安全密鑰來進行他們之間的會話加密。此處需要說明的是,根據本申請一個實施例,安全通信會話可以是安全套接字層(SSL)通信會話,但不限於該安全通信會話。   在本申請中,上述客戶端設備10可以被體現為具有各種部件和結構的任何類型的片上系統設備。結合圖1可知,為了實現與伺服器之間的安全通信會話,客戶端設備10可以設置有運算引擎,該運算引擎為一種加密引擎,通過加密引擎來實現產生並儲存安全密鑰等密碼功能,加密引擎可以是獨立中央處理器的安全處理器或處理電路。在一些可選實施例中,客戶端設備10還可以包括儲存器、一個或多個輸入/輸出設備等部件。   本申請基於上述安全通信會話的場景,可以實現一種處理資料過程中的調度系統,目的在於提高客戶端設備的資源利用率,進而提高系統中安全通信會話的處理效率。   為了達到上述目的,該調度系統中的客戶端設備至少包括:輸入/輸出介面、儲存器、一級調度器、二級調度器、多個運算引擎和多個邏輯運算單元,以及匯流排鏈路(圖1中顯示為鏈路)。   其中,根據本申請一個實施例,一級調度器、二級調度器封裝在一個Die中,通過主板匯流排鏈路與運算引擎進行資料連接;或者,根據本申請一個實施例,一級調度器、二級調度器、多個運算引擎和多個邏輯運算單元,以及匯流排鏈路封裝在一個Die中;或者,根據本申請一個實施例,輸入/輸出介面、儲存器、一級調度器、二級調度器、多個運算引擎和多個邏輯運算單元,以及匯流排鏈路可以封裝在一個Die中。   其中:   輸入/輸出介面,用於接收至少一個資料處理請求,並儲存至請求隊列中;其中,該資料處理請求可以為在進行加密等算法過程中涉及到的各種運算的處理請求,由外接設備或者中央處理器通過該輸入/輸出介面將資料處理請求儲存至請求隊列中。   一級調度器101,與輸入/輸出介面連接,用於從請求隊列中讀取至少一個資料處理請求,並為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;   二級調度器103,與一級調度器連接,用於接收資料處理請求,並基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;其中,滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   其中,一級調度器101,用於在接收到一個或多個資料處理請求後,根據當前運算引擎的工作狀態,為每個資料處理請求分配相應的運算引擎;該資料處理請求可以為需要調度硬體資源來進行資料處理的一個或多個請求,一種可選的實施例中,以RSA算法為例,該資料處理請求可以是RSA硬體加速方案中用於進行模冪或模乘運算的資料處理請求;上述運算引擎可以為用於計算模冪或模乘運算的加法器、乘法器等。   下面以RSA算法為例,對本實施進一步介紹,RSA算法是第一個既能用於資料加密也能用於數位簽名的算法,因此它為公用網路上資訊的加密和鑒別提供了一種基本的方法,廣泛應用於智慧IC卡和網路安全產品。RSA算法通常是先產生一對RSA密鑰,其中之一是保密密鑰,由使用者保存,另一個為公開密鑰,可對外公開,甚至可在網路伺服器中註冊,一方用公鑰加密文件發送給另一方,另一方就可以用私鑰解密接收。   為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。由於RSA密碼算法涉及大量的模冪或模乘運算,採用軟體完成,需要耗費大量的CPU資源,嚴重影響加解密的速度。而通過硬體加速方案,可以使得運算密集的RSA操作在CPU之外單獨進行,以便CPU能夠處理更多的協議棧和操作系統層面的請求。   由於RSA運算的複雜性,為了提高RSA算法的運算速度,採用硬體加速方案來進行RSA運算時,通常都會採用多運算核心(引擎)的硬體加速器來進行處理。這種情況下,可以從包含了多個資料處理請求的請求隊列中同時讀取多個資料處理請求,以並行的方式對讀取的資料處理請求進行處理。   需要說明的是,一級調度器101需要實時檢測硬體加速器中的各個運算引擎當前的工作狀態,並將當前處於空閒的運算引擎分配給每個資料處理請求。具體地,當從請求隊列中讀取到至少一個資料處理請求後,首先判斷是否存在空閒的運算引擎,如果存在空閒的運算引擎,則優先調度處於空閒狀態的運算引擎來對讀取到的資料處理請求進行處理;如果不存在處於空閒狀態的運算引擎,則繼續判斷是否存在處於後處理狀態的運算引擎,如果存在處於後處理狀態的運算引擎,則調度處於後處理狀態的運算引擎來對讀取到的資料處理請求進行處理;如果不存在處於後處理狀態的運算引擎,則判斷處於等到狀態的運算引擎中是否存在空閒狀態的運算引擎,如果處於等待狀態的運算引擎中存在處於空閒狀態的運算引擎,則調度處於空閒狀態的運算引擎來對讀取到的資料處理請求進行處理;如果處於等待狀態的運算引擎中不存在處於空閒狀態的運算引擎,則拒絕當前的資料處理請求。   可選地,如果不存在多個運算引擎中存在處於空閒狀態的運算引擎,可以根據最近最少使用算法LRU從即將進入空閒狀態的一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎。   由此可以看出,對運算引擎的調度採用的是狀態調度,即通過一級調度器101根據運算引擎當前的狀態類為各個資料處理請求分配相應的運算引擎,保證了負載均衡。   二級調度器103用於根據一級調度後的各個運算引擎當前的運算階段,從邏輯運算單元池中調度一個或多個邏輯運算單元處理資料處理請求來進行相應的計算。其中,邏輯運算單元池用於表徵包含了多個邏輯運算單元的集合。   仍以RSA算法為例,邏輯運算單元可以為算數邏輯單元ALU,由於每個運算引擎在不同的運算階段需要向CPU申請的調度的算術邏輯單元(Arithmetic Logic Unit, ALU)不同,因而,在被選出執行當前資料處理任務的運算引擎進入工作模式後,根據該運算引擎各個運算階段的不同,依次向RSA硬體加速器的二級調度器申請相應的ALU資源,二級調度器從邏輯運算單元池中調度相應的ALU資源,例如,在與計算階段就會申請ALU0資源,正式計算時申請ALU1或ALU2資源。   需要說明的是,ALU是中央處理器(CPU)的執行單元,是所有中央處理器的核心組成部分,主要功能是進行二進制的算術運算(例如,加減乘等運算)。例如,在RSA硬體加速方案中,主要涉及到三種類型的算數邏輯單元,分別為ALU0、ALU1、ALU2。其中,算術邏輯單元ALU0用於預處理/後處理步驟,算術邏輯單元ALU1、ALU2用於正式計算步驟,其中,ALU1用於平方及取模步驟,ALU2用於相乘及取模步驟。由於ALU0、ALU1和ALU2的資料位寬不同,所以一般不會複用。另外,由於同一類型的ALU的每次運算時間幾乎完全相同,所以,只要判斷ALU池中該類型的ALU是否有空閒,如有空閒則可以按照輪詢模式進行分配。   由此可以看出,對邏輯運算單元的調度採用的是無狀態調度,即通過二級調度器103根據每個運算引擎在不同的運算階段選擇相應的邏輯運算單元,從而實現無狀態調度,簡單高效。   一種可選的實施方案中,在從請求隊列中讀取一個或多個資料處理請求後,可以直接判斷多個運算引擎中處於等待狀態的運算引擎隊列中是否存在空閒狀態的運算引擎,如果運算引擎隊列中存在空閒狀態的運算引擎,則根據最近最少使用算法LRU從運算引擎隊列中存在空閒狀態一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎。   另一種可選的實施方案中,在從請求隊列中讀取一個或多個資料處理請求後,首先判斷多個運算引擎中是否存在處於空閒狀態的運算引擎,如果多個運算引擎中存在處於空閒狀態的運算引擎,則根據最近最少使用算法LRU從空閒的多個運算引擎中選擇一個或多個運算引擎,將資料處理請求分配至該運算引擎;如果多個運算引擎中不存在處於空閒狀態的運算引擎,再根據最近最少使用算法LRU從即將進入空閒狀態的一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎;如果多個運算引擎中也不存在即將進入空閒狀態的運算引擎,則從運算引擎隊列中選取處於空閒狀態的運算引擎,將資料處理請求分配至該運算引擎。   通過上述實施例,在多個運算引擎中既不存在空閒狀態的運算引擎,也不存在處於後處理狀態的運算引擎的情況下,從運算引擎隊列中選取處於空閒狀態的運算引擎,將資料處理請求分配至該運算引擎,進一步提高了運算引擎資源的調度和利用率。   此處需要說明的是,由於同一類型的ALU的每次運算時間幾乎完全相同,所以只要判斷ALU池中該類型的ALU是否有空閒,如有空閒則可以按照輪詢模式進行分配。所以二級調度器的基本調度功能由“獨熱編碼”(1-hot)的環形移位器與空閒標記的邏輯操作完成,通過請求控制實現資源分配。   基於上述實施例中,當運算引擎完成算法迭代步驟,並輸出結果後,其佔用資源被釋放,一級調度器中對該運算引擎狀態做更新,並且刷新等待隊列和LRU表項,然後等待接受下一個RSA計算請求。   可選地,圖2是根據本發明實施例的一種可選的硬體資源調度系統示意圖,如圖2所示,該系統包括:處理單元201、一級調度器203、二級調度器205、運算引擎組207、邏輯運算單元池209、配置暫存器211、儲存器213和輸入輸出介面215。   其中,處理單元201通過輸入輸出介面215接收一個或多個加/解密請求,並將該請求中的一個或多個資料處理請求儲存至儲存器213;一級調度器203從儲存器213的從請求隊列中讀取至少一個資料處理請求後,從運算引擎組207中為每個資料處理請求調度一個滿足預設工作狀態的運算引擎,並將該資料處理請求分配至相應的運算引擎;當運算引擎進入工作模式後,根據運算引擎當前所處的運算階段,從邏輯運算單元池209中調度一個相應的邏輯運算單元處理該資料處理請求。   綜上所述,採用一級調度器和二級調度器構成的硬體資源調度方案,通過一級調度對硬體加速器的運算引擎進行有狀態調度,通過二級調度對各個邏輯運算單元進行無狀態調度。很好的兼顧了調度算法的硬體實現複雜度和調度效果,各個引擎、和各個邏輯運算單元之間解耦,能實現更高效的資源利用。而現有的RSA硬體加速方案並沒有在這些運算引擎之間進行邏輯運算單元的資源調度分配,因而資源利用率較低。   需要說明的是,本申請提供的硬體資源調度系統可以廣泛應用於硬體加速領域,例如,智慧卡、IC卡、電子鑰匙USB Key中使用的RSA公開密鑰算法的硬體加速方案。與傳統的軟體加密相比,硬體加密的主要特點:一是穩定性和兼容性好,速度更快;二是安全性好,抗解密攻擊強度高,能夠較好地避免軟體實現中密鑰洩漏,記憶體被掃描等問題。 實施例2   根據本發明實施例,還提供了一種處理資料過程中的調度的方法實施例,需要說明的是,在圖式的流程圖示出的步驟可以在諸如一組電腦可執行指令的電腦系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。   本申請實施例2所提供的方法實施例可以廣泛應用於硬體加速領域,例如,智慧卡、IC卡、電子鑰匙USB Key中使用的RSA公開密鑰算法的硬體加速方案。與傳統的軟體加密相比,硬體加密的主要特點:一是穩定性和兼容性好,速度更快;二是安全性好,抗解密攻擊強度高,能夠較好地避免軟體實現中密鑰洩漏,記憶體被掃描等問題。   隨著智慧卡、IC卡、電子鑰匙USB Key等在電子商務、身份認證等許多領域越來越廣泛的應用,它們集資料加密和資料儲存兩大功能於一身,有著體積小,使用方便,功能強大,安全性好,價格便宜等特點,成為了推動電子商務發展的強大動力之一,還廣泛應用於交通、醫療、身份認證等其他領域,極大地提高了人們生活和工作的現代化程度。智慧卡、IC卡、電子鑰匙USB Key等小型硬體設備,不僅被用來實現資料加密傳輸,還用來實現數位簽名、密鑰交換等功能。人們對它安全性能的要求越來越高,不僅要求它能實現對稱密碼算法,還要求實現RSA非對稱公鑰密碼算法,相比於對稱密碼算法,RSA加密算法的計算量要大很多。   RSA算法是第一個既能用於資料加密也能用於數位簽名的算法,因此它為公用網路上資訊的加密和鑒別提供了一種基本的方法,廣泛應用於智慧IC卡和網路安全產品。RSA算法通常是先產生一對RSA密鑰,其中之一是保密密鑰,由使用者保存;另一個為公開密鑰,可對外公開,甚至可在網路伺服器中註冊,人們用公鑰加密文件發送給個人,個人就可以用私鑰解密接受。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。由於RSA密碼算法涉及大量的運算,採用軟體完成,需要耗費大量的CPU資源,嚴重影響加解密的速度。而通過硬體加速方案,可以使得運算密集的RSA操作在CPU之外單獨進行,以便CPU能夠處理更多的協議棧和操作系統層面的請求。   由於RSA運算的複雜性,其硬體加速單元中通常都會採用多運算核心(引擎)的方案來進行處理。而每個運算引擎在不同的運算階段需要向CPU申請的調度的算術邏輯單元(Arithmetic Logic Unit, ALU)不同,ALU是中央處理器(CPU)的執行單元,是所有中央處理器的核心組成部分,主要功能是進行二進制的算術運算(例如,加減乘等運算)。現有的RSA硬體加速方案並沒有在這些運算引擎之間進行資源調度分配,因而資源利用率較低。   本申請實施例將RSA引擎狀態控制與ALU池進行瞭解耦合,採用兩級調度方案,通過一級調度為當前的資料處理請求分配相應的運算引擎,並根據該運算引擎的在不同運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源。二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   以RSA算法為例,圖3(a)所示為根據本發明實施例的一種基於單個引擎的RSA硬體加速方案示意圖,如圖3(a)所示,基於單個引擎的RSA硬體加速器包括:配置暫存器、資料I/O介面、RSA引擎以及三種類型的算術邏輯單元,分別為ALU0、ALU1、ALU2;其中,算術邏輯單元ALU0用於預處理/後處理步驟,算術邏輯單元ALU1、ALU2用於正式計算步驟,其中,ALU1用於平方及取模步驟,ALU2用於相乘及取模步驟。由於ALU0與ALU1和ALU2的資料位寬不同,所以一般不會複用。而ALU1的平方取模雖然也可用ALU2的乘法取模替代,但是專用於平方取模的運算單元ALU1會經過專門的優化設計,功耗和速度要優於ALU2。   圖3(b)所示為根據本發明實施例的一種基於多個引擎的RSA硬體加速方案示意圖,如圖3(b)所示,基於多個引擎的RSA硬體加速器包括:配置暫存器、資料I/O介面、RSA運算引擎分組以及三種類型的邏輯運算單元,分別為ALU0、ALU1、ALU2。由圖3(b)可以看出,在RSA運算引擎分組中包含N個RSA運算引擎,一級調度器可以根據當前併發請求隊列中資料處理任務,為每個資料處理任務分配一個相應的RSA運算引擎;在被選出執行當前任務的運算引擎進入工作模式後,根據該運算引擎各個運算階段的不同,依次向RSA硬體加速器的二級調度器申請相應的ALU資源,二級調度器從邏輯運算單元池中調度相應的ALU資源,例如,在與計算階段就會申請ALU0資源,正式計算時申請ALU1或ALU2資源。由於同一類型的ALU的每次運算時間幾乎完全相同,所以只要判斷ALU池中該類型的ALU是否有空閒,如有空閒則可以按照輪詢模式進行分配;圖3(c)所示為根據本發明實施例的一種可選的分配ALU池資源的二級調度器示意圖,如圖3(c)所示,二級調度器的基本調度功能由“獨熱編碼”(1-hot)的環形移位器與空閒標記的邏輯操作完成,通過請求控制實現資源分配。   在上述運行環境下,本申請提供了如圖4所示的一種處理資料過程中的調度方法。圖4是根據本發明實施例的一種處理資料過程中的調度方法的流程圖,調度方法所包括如下步驟均可以在計算設備中運行,其中,該計算設備可以包括多個運算引擎和多個邏輯運算單元:   步驟S402,計算設備從請求隊列中讀取至少一個資料處理請求。   具體地,在上述步驟中,上述資料處理請求可以為需要調度硬體資源來進行資料處理的一個或多個請求,一種可選的實施例中,可以是利用硬體加速的方法來實現RSA公鑰加解密算法的資料處理請求。上述請求隊列為包含了一個或多個資料處理請求的任務隊列;基於上述步驟S402公開的方案,計算設備的一級調度模組可以從任務隊列中讀取一個或多個資料處理請求。如果採用串行的方式來處理資料處理請求,可以從請求隊列中依次讀取每個資料處理請求;如果採用並行的方式來處理資料處理請求,可以從請求隊列中每次讀取多個資料處理請求,例如,以RSA算法為例,為了提高RSA算法的運算速度,可以採用多運算核心(即,多個運算引擎)的硬體加速器來實現,這種情況下,可以從請求隊列中讀取多個資料處理請求,以並行的方式對讀取的資料處理請求進行處理。   步驟S404,計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎。   具體地,在上述步驟中,上述第一預設條件可以為預設的運算引擎能夠處理資料處理請求的條件;由於每個資料處理請求需要通過相應的運算引擎來進行處理,因而,如果並行處理多個資料處理請求,一級調度模組可以從請求隊列中同時讀取多個資料處理請求,查找當前處於空閒狀態的運算引擎,並將每個資料處理請求分配至相應的運算引擎;例如,以RSA算法為例,在通過採用多引擎的硬體加速器來對RSA算法進行加速的情況下,在從請求隊列中讀取多個資料處理請求後,可以將讀取的多個資料處理請求分配至相應的運算引擎。   在第一種實施方案中,上述第一預設條件可以為運算引擎當前處於空閒狀態;如果該運算引擎處於空閒狀態,則該運算引擎可以用於處理資料處理請求。   在第二種實施方案中,上述第一預設條件還可以為運算引擎當前處於後處理狀態(即,即將進入空閒的狀態);如果該運算引擎處於後處理狀態,則該運算引擎可以用於處理資料處理請求。   在第三種實施方案中,上述第一預設條件還可以為處於等待狀態的運算引擎進入空閒狀態;如果處於等待狀態的運算引擎進入空閒狀態,則該運算引擎可以用於處理資料處理請求。   此處需要說明的是,在一種可選的實施例中,可以依次執行上述三種實施方案,即,從請求隊列中讀取到至少一個資料處理請求後,首先判斷是否存在空閒的運算引擎,如果存在空閒的運算引擎,則優先調度處於空閒狀態的運算引擎來對讀取到的資料處理請求進行處理;如果不存在處於空閒狀態的運算引擎,則繼續判斷是否存在處於後處理狀態的運算引擎,如果存在處於後處理狀態的運算引擎,則調度處於後處理狀態的運算引擎來對讀取到的資料處理請求進行處理;如果不存在處於後處理狀態的運算引擎,則判斷處於等到狀態的運算引擎中是否存在空閒狀態的運算引擎,如果處於等待狀態的運算引擎中存在處於空閒狀態的運算引擎,則調度處於空閒狀態的運算引擎來對讀取到的資料處理請求進行處理;如果處於等待狀態的運算引擎中不存在處於空閒狀態的運算引擎,則拒絕當前的資料處理請求。   步驟S406,計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元。   具體地,在上述步驟中,上述邏輯運算單元可以為用於運算引擎對資料處理請求進行處理的過程中涉及到的各個運算單元,一種可選的實施例中,以RSA算法為例,該邏輯運算單元可以為算數邏輯單元ALU。上述第二預設條件可以為滿足運算引擎在處理資料處理請求過中不同運算階段請求的邏輯運算單元的類型。針對某一資料處理請求,在選取到滿足第一預設條件的運算引擎後,該運算引擎可以從邏輯運算單元池中調度當前運算階段請求的邏輯運算單元資源,得到滿足第二預設條件的一個或多個邏輯運算單元。   此處需要說明的是,邏輯運算單元池用於表徵包含了多個邏輯運算單元的集合。   步驟S408,計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   具體地,在上述步驟中,針對讀取到的資料處理請求,在選取到滿足第一預設條件的運算引擎從邏輯單元池中調度相應的一個或多個邏輯運算單元後,該運算引擎會通過調度的一個或多個邏輯運算單元對資料處理請求進行相應的處理。   需要說明的是,現有技術採用一級調度方案,沒有將運算過程中邏輯複雜的一級調度與邏輯簡單的二級調度區分開,也沒有針對並行的多個運算任務進行動態調整,其資源利用率不高。而本申請上述步驟S402至S408公開的方案,採用兩級調度方案,其中,步驟S404中資料處理請求分配至滿足第一預設條件的運算引擎,採用的是一級調度,通過判斷當前每個運算引擎的狀態(即,上述第一預設條件),並根據運算引擎的狀態將資料處理請求分發給相應的運算引擎,從而實現狀態調度,保證了負載均衡;步驟S404中運算引擎從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元採用的是二級調度方案,即根據每個運算引擎在不同的運算階段選擇相應的邏輯運算單元,從而實現無狀態調度,簡單高效。   由上可知,本申請上述實施例公開的方案中,採用兩級調度的方式,通過第一級調度算法對運算引擎進行狀態調度,通過第二級調度算法對邏輯運算單元進行無狀態調度,具體地,在從請求任務隊列中讀取到一個或多個資料處理請求後,將資料處理請求分配至滿足第一預設條件的運算引擎,滿足第一預設條件的運算引擎再從邏輯運算單元池中調度,得到滿足第二預設條件的一個或多個邏輯運算單元對資料處理請求進行處理。一種可選的實施例中,以RSA算法為例,每個輸入的RSA計算請求都會進入統一的併發請求隊列,然後通過一級調度和二級調度完成資源的分配、完成計算。其中,一級調度是根據當前每個RSA引擎的狀態和LRU表項完成任務分發,將請求隊列中的每個請求任務都分配到一個RSA引擎,如果沒有合適的引擎可分配,則給出拒絕回應;二級調度是根據每個RSA引擎在不同的運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源,二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   通過上述實施例公開的方案,達到了將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度的目的,實現了提高資源利用率的技術效果。   由此,本申請上述實施例解決了電腦設備中運算資源利用率低的技術問題。   在一種可選的實施例中,第一預設條件至少包括如下一個條件:運算引擎是否空閒、運算引擎是否正在做後處理和運算引擎是否處於等待狀態,其中,在第一預設條件包括多個條件的情況下,每個條件的按照預定的優先級對運算引擎進行依次判斷。   具體地,在上述實施例中,上述空閒的運算引擎是指可以用於執行當前請求任務的處於空閒狀態的運算引擎,上述正在做後處理的運算引擎是指即將進入空閒狀態的運算引擎,上述處於等待狀態的運算引擎是指當前處於運算引擎等待隊列中的運算引擎,可以從上述三種運算引擎中選擇任意一種或多種作為執行當前請求任務的引擎,一種可選的實施例中,可以優先選用當前處於空閒狀態的運算引擎,如果沒有當前處於空閒狀態的運算引擎,則選用處於後處理狀態的運算引擎,如果也沒有處於後處理狀態的運算引擎,可以選用處於等待狀態的運算引擎,直到不存在上述任意一種運算引擎,則拒絕當前請求。   在一種可選的實施例中,如圖5所示,計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎,可以包括如下步驟:   步驟S502,計算設備判斷多個運算引擎中是否存在空閒的運算引擎;   步驟S504,如果存在,計算設備根據最近最少使用算法LRU從空閒的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   具體地,在上述步驟中,上述空閒的運算引擎是指可以用於執行當前請求任務的處於空閒狀態的運算引擎;上述最近最少使用算法LRU(Least Recently Used)為“近期最少使用”算法;在從請求隊列中讀取一個或多個資料處理請求後,判斷多個運算引擎中是否存在處於空閒狀態的運算引擎,如果存在多個運算引擎中存在處於空閒狀態的運算引擎,則根據最近最少使用算法LRU從空閒的多個運算引擎中選擇一個或多個運算引擎,將資料處理請求分配至該運算引擎。   通過上述實施例,優先將資料處理請求分配至當前處於空閒狀態的運算引擎,可以實現RSA算法硬體加速方案中的多個運算引擎之間進行調度的目的。   在一種可選的實施例中,如圖6所示,計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎,包括:   步驟S602,計算設備判斷多個運算引擎中是否存在正在做後處理的運算引擎;   步驟S604,如果存在,計算設備根據最近最少使用算法LRU從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   具體地,在上述步驟中,上述正在做後處理的運算引擎可以為即將進入空閒狀態的運算引擎;一種可選的實施方案中,在從請求隊列中讀取一個或多個資料處理請求後,可以直接判斷多個運算引擎中是否存在即將進入空閒狀態的運算引擎,如果存在即將進入空閒狀態的運算引擎,則根據最近最少使用算法LRU從即將進入空閒狀態的一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎;另一種可選的實施方案中,在從請求隊列中讀取一個或多個資料處理請求後,首先判斷多個運算引擎中是否存在處於空閒狀態的運算引擎,如果多個運算引擎中存在處於空閒狀態的運算引擎,則根據最近最少使用算法LRU從空閒的多個運算引擎中選擇一個或多個運算引擎,將資料處理請求分配至該運算引擎;如果不存在多個運算引擎中存在處於空閒狀態的運算引擎,再根據最近最少使用算法LRU從即將進入空閒狀態的一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎。   通過上述實施例,優先將資料處理請求分配至當前處於空閒狀態的運算引擎,如果沒有處於空閒狀態的運算引擎,再從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎,達到了充分調度和利用運算引擎資源的目的。   在一種可選的實施例中,如圖7所示,計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎,包括:   步驟S702,計算設備判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;   步驟S704,如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從處於至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   具體地,在上述步驟中,上述處於等待狀態的運算引擎是指當前處於執行狀態加入等待隊列中的運算引擎,如果多個運算引擎中既沒有處於空閒狀態的運算引擎,也沒有處於後處理狀態的運算引擎,可以從處於等待狀態的運算引擎隊列中選取處於空閒狀態的運算引擎,並將資料處理請求分配至該運算引擎。   一種可選的實施方案中,在從請求隊列中讀取一個或多個資料處理請求後,可以直接判斷多個運算引擎中處於等待狀態的運算引擎隊列中是否存在空閒狀態的運算引擎,如果運算引擎隊列中存在空閒狀態的運算引擎,則根據最近最少使用算法LRU從運算引擎隊列中存在空閒狀態一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎。   另一種可選的實施方案中,在從請求隊列中讀取一個或多個資料處理請求後,首先判斷多個運算引擎中是否存在處於空閒狀態的運算引擎,如果多個運算引擎中存在處於空閒狀態的運算引擎,則根據最近最少使用算法LRU從空閒的多個運算引擎中選擇一個或多個運算引擎,將資料處理請求分配至該運算引擎;如果多個運算引擎中不存在處於空閒狀態的運算引擎,再根據最近最少使用算法LRU從即將進入空閒狀態的一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎;如果多個運算引擎中也不存在即將進入空閒狀態的運算引擎,則從運算引擎隊列中選取處於空閒狀態的運算引擎,將資料處理請求分配至該運算引擎。   通過上述實施例,在多個運算引擎中既不存在空閒狀態的運算引擎,也不存在處於後處理狀態的運算引擎的情況下,從運算引擎隊列中選取處於空閒狀態的運算引擎,將資料處理請求分配至該運算引擎,進一步提高了運算引擎資源的調度和利用率。   在一種可選的實施例中,如圖8所示,計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎,可以包括如下步驟:   步驟S802,計算設備判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;   步驟S804,如果不存在,則計算設備繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;   步驟S806,如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   具體地,在上述步驟中,在從請求隊列中讀取一個或多個資料處理請求後,首先判斷多個運算引擎中是否存在處於空閒狀態及/或處於正在做後處理狀態的運算引擎,如果多個運算引擎中存在處於空閒狀態及/或處於正在做後處理狀態的運算引擎,則根據最近最少使用算法LRU從處於空閒狀態及/或處於正在做後處理狀態的多個運算引擎中選擇一個或多個運算引擎,將資料處理請求分配至該運算引擎;如果多個運算引擎中不存在處於空閒狀態及/或處於正在做後處理狀態的運算引擎,則繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態,如果存在至少一個進入空閒狀態的運算引擎,根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎。   通過上述實施例,實現了RSA算法硬體加速方案中充分調度和利用運行運算引擎的目的。   在一種可選的實施例中,如圖9所示,計算設備使用滿足第一預設條件的運算引擎從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元,包括:   步驟S902,計算設備控制滿足第一預設條件的運算引擎進入工作模式;   步驟S904,計算設備根據運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;   步驟S906,計算設備根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   具體地,在上述步驟中,上述邏輯運算單元可以為用於運算引擎對資料處理請求進行處理的過程中涉及到的各個運算單元,一種可選的實施例中,以RSA算法為例,該邏輯運算單元可以為算數邏輯單元ALU。在從請求隊列中讀取一個或多個資料處理請求,通過一級調度算法從多個運算引擎中選取到至少一個符合條件的運算引擎,並將資料處理請求分配後,該運算引擎則進入工作模式,根據當前運算階段處於的狀態,確定需要申請的邏輯運算單元的類型,在確定需要申請的邏輯運算單元的類型後,根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   可選的,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元,包括:採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元。   此處需要說明的是,由於同一類型的ALU的每次運算時間幾乎完全相同,所以只要判斷ALU池中該類型的ALU是否有空閒,如有空閒則可以按照輪詢模式進行分配。所以二級調度器的基本調度功能由“獨熱編碼”(1-hot)的環形移位器與空閒標記的邏輯操作完成,通過請求控制實現資源分配。   作為一種可選的實施例,以RSA算法為例,圖3(a)所示為根據本發明實施例的一種基於單個引擎的RSA硬體加速方案示意圖,圖3(b)所示為根據本發明實施例的一種基於多個引擎的RSA硬體加速方案示意圖,如圖3(a)所示,基於單個引擎的RSA硬體加速器包括:配置暫存器、資料I/O介面、RSA引擎以及三種類型的邏輯運算單元,分別為ALU0、ALU1、ALU2;如圖3(b)所示,基於多個引擎的RSA硬體加速器包括:配置暫存器、資料I/O介面、N個RSA引擎以及三種類型的邏輯運算單元,分別為ALU0、ALU1、ALU2。   需要說明的是,ALU0用於預處理/後處理步驟,ALU1、ALU2用於正式計算步驟,ALU1用於平方及取模步驟,ALU2用於相乘及取模步驟。ALU0與ALU1/2的資料位寬不同,所以一般不會複用。而ALU1的平方取模雖然也可用ALU2的乘法取模替代,但是專用於平方取模的運算單元ALU1會經過專門的優化設計,功耗和速度要優於ALU2。在被選出執行當前任務的運算引擎進入工作模式後,根據該運算引擎每個運算階段的狀態,依次向RSA的二級調度器申請相應的ALU資源。例如,在與計算階段就會申請ALU0資源,正式計算時申請ALU1/2資源。如圖3(c)所示為根據本發明實施例的一種可選的二級調度器示意圖。   在一種可選的實施例中,如圖10所示,在計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求之後,上述方法還可以包括如下步驟:   步驟S102,計算設備釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態;   步驟S104,計算設備返回等待下一次資料處理請求。   具體地,在上述步驟中,當運算引擎完成算法迭代步驟,並輸出結果後,其佔用資源被釋放,一級調度器中對該運算引擎狀態做更新,並且刷新等待隊列和LRU表項,然後等待接受下一個RSA計算請求。   在一種可選的實施例中,在計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎之前,上述方法還可以包括:在多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求。   作為一種可選的實施方式,圖11所示為根據本發明實施例的一種可選的在多個引擎中進行資源調度的方法流程圖。如圖11所示,包括如下步驟:   步驟S112,等待請求。   具體地,在上述步驟中,上述請求為資料處理請求,在運算引擎隊列中的多個運算引擎處於等待相應的資料處理請求的狀態。   步驟S114,收到RSA計算請求。   具體地,在上述步驟中,通過資料I/O介面接收RSA算法的資料處理請求。   步驟S116,查詢各引擎權重及狀態。   具體地,在上述步驟中,在通過資料I/O介面接收RSA算法的資料處理請求後,在運算引擎隊列中查詢各個運算引擎的權重及當前所處的狀態,其狀態包括:空閒狀態、後處理狀態(即,即將進入空閒的狀態)、允許等待狀態。   步驟S118,判斷是否有空閒引擎。   具體地,在上述步驟中,判斷是否存在空閒的運算引擎,如果存在空閒的運算引擎,則執行步驟S120;如果不存在空閒的運算引擎,則執行步驟S132。   步驟S120,根據LRU選擇一個空閒引擎。   具體地,在上述步驟中,如果存在空閒的運算引擎,則根據最近最少使用算法LRU從空閒的多個運算引擎中選擇一個或多個運算引擎,將資料處理請求分配至該運算引擎。   步驟S122,申請ALU。   具體地,在上述步驟中,根據最近最少使用算法LRU從空閒的多個運算引擎中選擇一個或多個運算引擎,並將資料處理請求分配後,該運算引擎則進入工作模式,根據當前運算階段處於的狀態,確定需要申請的邏輯運算單元的類型,在確定需要申請的邏輯運算單元的類型後,根據確定的邏輯運算單元的類型,向二級調度器申請相應類型的邏輯運算單元。   步驟S124,按照申請類型輪詢ALU池。   具體地,在上述步驟中,在確定需要申請的邏輯運算單元的類型後,根據確定的邏輯運算單元的類型,採用輪詢的方式從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   步驟S126,分配和佔用ALU。   具體地,在上述步驟中,在採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元後,佔用申請得到的邏輯運算單元。   步驟S128,判斷引擎是否完成處理。   具體地,在上述步驟中,在採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元後,利用該邏輯運算單元對資料處理請求進行處理,並實時判斷該運算引擎是否完成處理。   步驟S130,釋放資源及更新狀態。   具體地,在上述步驟中,在運算引擎利用該邏輯運算單元對資料處理請求進行處理完後,釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態,返回等待下一次資料處理請求。   步驟S132,判斷是否有引擎正做後處理。   具體地,在上述步驟中,在通過資料I/O介面接收RSA算法的資料處理請求後,如果多個運算引擎中不存在處於空閒狀態的運算引擎,則判斷多個運算引擎中是否存正在做後處理的運算引擎。   步驟S134,選擇一個在做後處理的引擎。   具體地,在上述步驟中,如果多個運算引擎中存正在做後處理的運算引擎,則根據最近最少使用算法LRU從後處理狀態的一個或多個運算引擎中選擇一個運算引擎,將資料處理請求分配至該運算引擎。   步驟S136,判斷所有引擎的等待隊列是否已滿。   具體地,在上述步驟中,判斷處於等待狀態的運行引擎隊列是否已滿,如果處於等待狀態的運行引擎隊列未滿,則執行步驟S138;如果處於等待狀態的運行引擎隊列已滿,則執行步驟S142。   步驟S138,根據LRU選擇一個引擎。   具體地,在上述步驟中,如果處於等待狀態的運行引擎隊列未滿,則根據最近最少使用算法LRU選擇一個引擎加入運行引擎等待隊列中。   步驟S140,加入等待隊列。   具體地,在上述步驟中,根據最近最少使用算法LRU選擇一個引擎加入運行引擎等待隊列中,當等待隊列中的運算引擎空閒後進入步驟S132。   步驟S142,拒絕請求。   具體地,在上述步驟中,如果處於等待狀態的運行引擎隊列已滿,則拒絕資料處理請求。   本申請上述實施例中,採用二級調度算法,第一級調度算法對各個加速引擎進行有狀態調度,第二級調度算法對各個ALU單元使用無狀態調度。很好的兼顧了調度算法的硬體實現複雜度和調度效果,各個引擎、和各個ALU單元之間解耦,能實現更高效的資源利用。同時,更均衡的硬體資源調度對於抵抗側信道攻擊也有好處。通過上述實施例,採用多級調度方案,將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度。將引擎與ALU解耦合,引擎根據當前狀態進行ALU佔用請求,對引擎集合採用有狀態調度,保證負載均衡,對ALU池採用無狀態調度方案,簡單高效。   需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是所屬技術領域中具有通常知識者應該知悉,本發明並不受所描述的動作順序的限制,因為依據本發明,某些步驟可以採用其他順序或者同時進行。其次,所屬技術領域中具有通常知識者也應該知悉,說明書中所描述的實施例均屬於可選實施例,所涉及的動作和模組並不一定是本發明所必須的。   通過以上的實施方式的描述,所屬技術領域中具有通常知識者可以清楚地瞭解到根據上述實施例的方法可借助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒介(如ROM/RAM、磁碟、光碟)中,包括若干指令用以使得一台終端設備(可以是手機,電腦,伺服器,或者網路設備等)執行本發明各個實施例的方法。 實施例3   根據本發明實施例,還提供了一種用於實施上述處理資料過程中的調度方法的裝置實施例,圖12是根據本發明實施例的一種處理資料過程中的調度裝置示意圖,如圖12所示,該裝置包括:讀取模組121、分配模組123、調度模組125和處理模組127。   其中,讀取模組121,用於計算設備從請求隊列中讀取至少一個資料處理請求;   分配模組123,用於計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;   調度模組125,用於基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;   處理模組127,用於計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   此處需要說明的是,讀取模組121、分配模組123、調度模組125和處理模組127可以對應於實施例1中的步驟S402至步驟S408,四個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例2所公開的內容。   由上可知,本申請上述實施例公開的方案中,採用兩級調度的方式,通過第一級調度算法對運算引擎進行狀態調度,通過第二級調度算法對邏輯運算單元進行無狀態調度,具體地,在從請求任務隊列中讀取到一個或多個資料處理請求後,將資料處理請求分配至滿足第一預設條件的運算引擎,滿足第一預設條件的運算引擎再從邏輯運算單元池中調度,得到滿足第二預設條件的一個或多個邏輯運算單元對資料處理請求進行處理。一種可選的實施例中,以RSA算法為例,每個輸入的RSA計算請求都會進入統一的併發請求隊列,然後通過一級調度和二級調度完成資源的分配、完成計算。其中,一級調度是根據當前每個RSA引擎的狀態和LRU表項完成任務分發,將請求隊列中的每個請求任務都分配到一個RSA引擎,如果沒有合適的引擎可分配,則給出拒絕回應;二級調度是根據每個RSA引擎在不同的運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源,二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   通過上述實施例公開的方案,達到了將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度的目的,實現了提高資源利用率的技術效果。   由此,本申請上述實施例解決了電腦設備中運算資源利用率低的技術問題。   在一種可選的實施例中,第一預設條件至少包括如下一個條件:運算引擎是否空閒、運算引擎是否正在做後處理和運算引擎是否處於等待狀態,其中,在第一預設條件包括多個條件的情況下,每個條件的按照預定的優先級對運算引擎進行依次判斷。   在一種可選的實施例中,上述分配模組123可以包括:第一判斷模組,用於計算設備判斷多個運算引擎中是否存在空閒的運算引擎;第一執行模組,用於如果存在,根據最近最少使用算法LRU從空閒的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   此處需要說明的是,上述第一判斷模組和第一執行模組對應於實施例2中的步驟S502至步驟S504,兩個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。   在一種可選的實施例中,上述分配模組123可以包括:第二判斷模組,用於計算設備判斷多個運算引擎中是否存正在做後處理的運算引擎;第二執行模組,用於如果存在,計算設備根據最近最少使用算法LRU從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   此處需要說明的是,上述第二判斷模組和第二執行模組對應於實施例2中的步驟S602至步驟S604,兩個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。   在一種可選的實施例中,上述分配模組123可以包括:第三判斷模組,用於計算設備判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;第三執行模組,用於如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從處於至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   此處需要說明的是,上述第三判斷模組和第三執行模組對應於實施例2中的步驟S702至步驟S704,兩個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。   在一種可選的實施例中,上述分配模組123可以包括:第四判斷模組,用於計算設備判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;第四執行模組,用於如果不存在,則計算設備繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;第五執行模組,用於如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   此處需要說明的是,上述第四判斷模組、第四執行模組和第五執行模組對應於實施例2中的步驟S802至步驟S806,三個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。   在一種可選的實施例中,上述調度模組125可以包括:控制模組,用於計算設備控制滿足第一預設條件的運算引擎進入工作模式;確定模組,用於計算設備根據運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;選擇模組,用於計算設備根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   此處需要說明的是,上述控制模組、確定模組和選擇模組對應於實施例1中的步驟S902至步驟S906,三個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。   在一種可選的實施例中,上述選擇模組可以用於計算設備採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元。   在一種可選的實施例中,上述裝置還可以包括:更新模組,用於計算設備釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態;返回模組,用於計算設備返回等待下一次資料處理請求。   此處需要說明的是,上述更新模組和返回模組對應於實施例2中的步驟S102至步驟S104,兩個模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。   在一種可選的實施例中,上述裝置還可以包括:第六執行模組,在計算設備從多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求。   此處需要說明的是,上述第六執行模組對應於實施例2中的步驟中在多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求,該模組與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。 實施例4   根據本發明實施例,還提供了一種用於硬體加密單元的任務調度裝置實施例,圖13是根據本發明實施例的一種用於硬體加密單元的任務調度裝置示意圖,如圖13所示,該裝置包括:輸入/輸出介面131和控制器133。   其中,輸入/輸出介面131,用於從請求隊列中讀取至少一個資料處理請求;控制器133,與輸入/輸出介面連接,用於為每個資料處理請求分配到一個滿足第一預設條件的運算引擎,以及調度滿足第二預設條件的至少一個邏輯運算單元,並使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   此處需要說明的是,上述輸入/輸出介面可以是並行傳輸介面,也可以是串行傳輸介面。   此處還需要說明的是,上述任務調度裝置可以用於任何一種用於提高運算速度的硬體加速器中,一種可選的實施例中,可以用於加密設備的硬體加密單元中。   由上可知,本申請上述實施例公開的方案中,採用兩級調度的方式,通過第一級調度算法對運算引擎進行狀態調度,通過第二級調度算法對邏輯運算單元進行無狀態調度,具體地,在從請求任務隊列中讀取到一個或多個資料處理請求後,將資料處理請求分配至滿足第一預設條件的運算引擎,滿足第一預設條件的運算引擎再從邏輯運算單元池中調度,得到滿足第二預設條件的一個或多個邏輯運算單元對資料處理請求進行處理。一種可選的實施例中,以RSA算法為例,每個輸入的RSA計算請求都會進入統一的併發請求隊列,然後通過一級調度和二級調度完成資源的分配、完成計算。其中,一級調度是根據當前每個RSA引擎的狀態和LRU表項完成任務分發,將請求隊列中的每個請求任務都分配到一個RSA引擎,如果沒有合適的引擎可分配,則給出拒絕回應;二級調度是根據每個RSA引擎在不同的運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源,二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   通過上述實施例公開的方案,達到了將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度的目的,實現了提高資源利用率的技術效果。   由此,本申請上述實施例解決了電腦設備中運算資源利用率低的技術問題。   在一種可選的實施例中,第一預設條件至少包括如下一個條件:運算引擎是否空閒、運算引擎是否正在做後處理和運算引擎是否處於等待狀態,其中,在第一預設條件包括多個條件的情況下,每個條件的按照預定的優先級對運算引擎進行依次判斷。   在一種可選的實施例中,上述控制器133還用於判斷多個運算引擎中是否存在空閒的運算引擎;如果存在,根據最近最少使用算法LRU從空閒的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述控制器133還用於判斷多個運算引擎中是否存正在做後處理的運算引擎;如果存在,根據最近最少使用算法LRU從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述控制器133還用於判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,根據最近最少使用算法LRU從處於至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述控制器133還用於判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;如果不存在,則繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述控制器133還用於滿足第一預設條件的運算引擎進入工作模式;根據運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   在一種可選的實施例中,上述控制器133還用於採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元。   在一種可選的實施例中,上述控制器133還用於釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態;返回等待下一次資料處理請求。   在一種可選的實施例中,上述控制器133還用於在多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求。 實施例5   根據本發明實施例,還提供了一種計算設備實施例,圖14是根據本發明實施例的一種計算設備結構方塊圖,如圖14所示,該裝置包括:硬體加密單元141、儲存器143、任務調度單元145和處理器147。   其中,硬體加密單元141,用於處理加密請求;儲存器143,與硬體加密單元連接,用於將加密請求中的一個或多個資料處理請求儲存至請求隊列中;任務調度單元145,與儲存器連接,用於與儲存器連接,用於從請求隊列中讀取至少一個資料處理請求,並為資料處理請求分配到一個滿足第一預設條件的運算引擎,以及調度滿足第二預設條件的至少一個邏輯運算單元;處理器147,與任務調度單元連接,用於使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   此處需要說明的是,上述計算設備可以是智慧行動設備,例如、手機、平板電腦、電腦等。   由上可知,本申請上述實施例公開的方案中,採用兩級調度的方式,通過第一級調度算法對運算引擎進行狀態調度,通過第二級調度算法對邏輯運算單元進行無狀態調度,具體地,在從請求任務隊列中讀取到一個或多個資料處理請求後,將資料處理請求分配至滿足第一預設條件的運算引擎,滿足第一預設條件的運算引擎再從邏輯運算單元池中調度,得到滿足第二預設條件的一個或多個邏輯運算單元對資料處理請求進行處理。一種可選的實施例中,以RSA算法為例,每個輸入的RSA計算請求都會進入統一的併發請求隊列,然後通過一級調度和二級調度完成資源的分配、完成計算。其中,一級調度是根據當前每個RSA引擎的狀態和LRU表項完成任務分發,將請求隊列中的每個請求任務都分配到一個RSA引擎,如果沒有合適的引擎可分配,則給出拒絕回應;二級調度是根據每個RSA引擎在不同的運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源,二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   通過上述實施例公開的方案,達到了將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度的目的,實現了提高資源利用率的技術效果。   由此,本申請上述實施例解決了電腦設備中運算資源利用率低的技術問題。   在一種可選的實施例中,第一預設條件至少包括如下一個條件:運算引擎是否空閒、運算引擎是否正在做後處理和運算引擎是否處於等待狀態,其中,在第一預設條件包括多個條件的情況下,每個條件的按照預定的優先級對運算引擎進行依次判斷。   在一種可選的實施例中,上述任務調度單元145還用於判斷多個運算引擎中是否存在空閒的運算引擎;如果存在,根據最近最少使用算法LRU從空閒的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述任務調度單元145還用於判斷多個運算引擎中是否存正在做後處理的運算引擎;如果存在,根據最近最少使用算法LRU從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述任務調度單元145還用於判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,根據最近最少使用算法LRU從處於至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述任務調度單元145還用於判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;如果不存在,則繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   在一種可選的實施例中,上述任務調度單元145還用於滿足第一預設條件的運算引擎進入工作模式;根據運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   在一種可選的實施例中,上述任務調度單元145還用於採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元。   在一種可選的實施例中,上述任務調度單元145還用於釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態;返回等待下一次資料處理請求。   在一種可選的實施例中,上述任務調度單元145還用於在多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求。 實施例6   根據本發明實施例,還提供了一種處理資料過程中的兩級調度方法實施例,需要說明的是,在圖式的流程圖示出的步驟可以在諸如一組電腦可執行指令的電腦系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。   圖15是根據本發明實施例的一種處理資料過程中的兩級調度方法流程圖,如圖15所示,該方法所包括如下步驟   步驟S152,從請求隊列中讀取至少一個資料處理請求;   步驟S154,執行一級調度:為每個資料處理請求分配到一個滿足預設狀態的運算引擎,其中,運算引擎在執行過程中具備多個執行狀態;   步驟S156,執行二級調度:基於滿足預設狀態的運算引擎的狀態資料,從邏輯運算單元池中調度,選擇與預設狀態對應的可用的至少一個邏輯運算單元;和   步驟S158,使用邏輯運算單元處理資料處理請求。   由上可知,本申請上述實施例公開的方案中,採用兩級調度的方式,通過第一級調度算法對運算引擎進行狀態調度,通過第二級調度算法對邏輯運算單元進行無狀態調度,具體地,在從請求任務隊列中讀取到一個或多個資料處理請求後,將資料處理請求分配至滿足第一預設條件的運算引擎,滿足第一預設條件的運算引擎再從邏輯運算單元池中調度,得到滿足第二預設條件的一個或多個邏輯運算單元對資料處理請求進行處理。一種可選的實施例中,以RSA算法為例,每個輸入的RSA計算請求都會進入統一的併發請求隊列,然後通過一級調度和二級調度完成資源的分配、完成計算。其中,一級調度是根據當前每個RSA引擎的狀態和LRU表項完成任務分發,將請求隊列中的每個請求任務都分配到一個RSA引擎,如果沒有合適的引擎可分配,則給出拒絕回應;二級調度是根據每個RSA引擎在不同的運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源,二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   通過上述實施例公開的方案,達到了將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度的目的,實現了提高資源利用率的技術效果。   由此,本申請上述實施例解決了電腦設備中運算資源利用率低的技術問題。 實施例7   根據本發明實施例,還提供了一種計算設備實施例,圖16是根據本發明實施例的一種計算設備示意圖,如圖16所示,該計算設備包括:輸入輸出介面161、儲存器162、一級調度器163、二級調度器164、運算引擎池165和邏輯運算單元池166。   其中,輸入輸出介面161,用於接收資料處理請求;   儲存器162,用於保存資料處理請求,形成請求隊列;   一級調度器163,用於從請求隊列中讀取至少一個資料處理請求,並分配到一個滿足預設狀態的運算引擎;   二級調度器164,用於基於滿足預設狀態的運算引擎的狀態資料,從邏輯運算單元池中調度,選擇與預設狀態對應的可用的至少一個邏輯運算單元處理資料處理請求;   運算引擎池165,包括多個運算引擎,用於向一級調度器提供預設狀態的運算引擎,其中,每個運算引擎在執行過程中具備多個執行狀態;和   邏輯運算單元池166,包括多個邏輯運算單元,用於向二級調度器提供邏輯運算單元。   由上可知,本申請上述實施例公開的方案中,採用兩級調度的方式,通過第一級調度算法對運算引擎進行狀態調度,通過第二級調度算法對邏輯運算單元進行無狀態調度,具體地,在從請求任務隊列中讀取到一個或多個資料處理請求後,將資料處理請求分配至滿足第一預設條件的運算引擎,滿足第一預設條件的運算引擎再從邏輯運算單元池中調度,得到滿足第二預設條件的一個或多個邏輯運算單元對資料處理請求進行處理。一種可選的實施例中,以RSA算法為例,每個輸入的RSA計算請求都會進入統一的併發請求隊列,然後通過一級調度和二級調度完成資源的分配、完成計算。其中,一級調度是根據當前每個RSA引擎的狀態和LRU表項完成任務分發,將請求隊列中的每個請求任務都分配到一個RSA引擎,如果沒有合適的引擎可分配,則給出拒絕回應;二級調度是根據每個RSA引擎在不同的運算階段(預計算、正式計算、後處理等),根據不同的運算需求申請對應的ALU資源,二級調度器從ALU池中選擇對應類型的ALU單元,分配給相應的RSA引擎。   通過上述實施例公開的方案,達到了將RSA引擎狀態控制與ALU池進行瞭解耦合,降低了整體的設計複雜度的目的,實現了提高資源利用率的技術效果。   由此,本申請上述實施例解決了電腦設備中運算資源利用率低的技術問題。 實施例8   本發明的實施例可以提供一種電腦終端,該電腦終端可以是電腦終端群中的任意一個電腦終端設備。可選的,在本實施例中,上述電腦終端也可以替換為行動終端等終端設備。   可選的,在本實施例中,上述電腦終端可以位於電腦網路的多個網路設備中的至少一個網路設備。   圖17示出了一種電腦終端的硬體結構方塊圖。如圖17所示,電腦終端17可以包括一個或多個(圖中採用172a、172b,……,172n來示出)處理器172(處理器172可以包括但不限於微處理器MCU或可程式化邏輯器件FPGA等的處理裝置)、用於儲存資料的儲存器174、以及用於通信功能的傳輸裝置176。除此以外,還可以包括:顯示器、輸入/輸出介面(I/O介面)、通用串行匯流排(USB)端口(可以作為I/O介面的端口中的一個端口被包括)、網路介面、電源及/或相機。所屬技術領域中具有通常知識者可以理解,圖17所示的結構僅為示意,其並不對上述電子裝置的結構造成限定。例如,電腦終端17還可包括比圖17中所示更多或者更少的組件,或者具有與圖17所示不同的配置。   應當注意到的是上述一個或多個處理器172及/或其他資料處理電路在本文中通常可以被稱為“資料處理電路”。該資料處理電路可以全部或部分的體現為軟體、硬體、韌體或其他任意組合。此外,資料處理電路可為單個獨立的處理模組,或全部或部分的結合到電腦終端17中的其他元件中的任意一個內。如本申請實施例中所涉及到的,該資料處理電路作為一種處理器控制(例如與介面連接的可變電阻終端路徑的選擇)。   儲存器174可用於儲存應用軟體的軟體程式以及模組,如本發明實施例中的處理資料過程中的調度方法對應的程式指令/資料儲存裝置,處理器172通過運行儲存在儲存器174內的軟體程式以及模組,從而執行各種功能應用以及資料處理,即實現上述的應用程式的處理資料過程中的調度方法。儲存器174可包括高速隨機儲存器,還可包括非易失性儲存器,如一個或者多個磁性儲存裝置、快閃記憶體、或者其他非易失性固態儲存器。在一些實例中,儲存器174可進一步包括相對於處理器172遠程設置的儲存器,這些遠程儲存器可以通過網路連接至電腦終端17。上述網路的實例包括但不限於網際網路、企業內部網、區域網路、行動通信網及其組合。   傳輸裝置176用於經由一個網路接收或者發送資料。上述的網路具體實例可包括電腦終端17的通信供應商提供的無線網路。在一個實例中,傳輸裝置176包括一個網路適配器(Network Interface Controller, NIC),其可通過基站與其他網路設備相連從而可與網際網路進行通訊。在一個實例中,傳輸裝置176可以為射頻(Radio Frequency, RF)模組,其用於通過無線方式與網際網路進行通訊。   顯示器可以例如觸摸屏式的液晶顯示器(LCD),該液晶顯示器可使得使用者能夠與電腦終端17(或行動設備)的使用者界面進行交互。   此處需要說明的是,在一些可選實施例中,上述圖17所示的電腦設備(或行動設備)可以包括硬體元件(包括電路)、軟體元件(包括儲存在電腦可讀媒介上的電腦代碼)、或硬體元件和軟體元件兩者的結合。應當指出的是,圖17僅為特定具體實例的一個實例,並且旨在示出可存在於上述電腦設備(或行動設備)中的部件的類型。   在本實施例中,上述電腦終端可以執行應用程式的處理資料過程中的調度方法中以下步驟的程式代碼:計算設備從請求隊列中讀取至少一個資料處理請求;計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   其中,儲存器可用於儲存軟體程式以及模組,如本發明實施例中的安全漏洞檢測方法和裝置對應的程式指令/模組,處理器通過運行儲存在儲存器內的軟體程式以及模組,從而執行各種功能應用以及資料處理,即實現上述的系統漏洞攻擊的檢測方法。儲存器可包括高速隨機儲存器,還可以包括非易失性儲存器,如一個或者多個磁性儲存裝置、快閃記憶體、或者其他非易失性固態儲存器。在一些實例中,儲存器可進一步包括相對於處理器遠程設置的儲存器,這些遠程儲存器可以通過網路連接至終端A。上述網路的實例包括但不限於網際網路、企業內部網、區域網路、行動通信網及其組合。   處理器可以通過傳輸裝置調用儲存器儲存的資訊及應用程式,以執行下述步驟:計算設備從請求隊列中讀取至少一個資料處理請求;計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   可選的,預設工作狀態至少包括如下一個條件:運算引擎是否空閒、運算引擎是否正在做後處理和運算引擎是否處於等待狀態,其中,在預設工作狀態包括多種情況下,每個條件的按照預定的優先級對運算引擎進行依次判斷。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備判斷多個運算引擎中是否存在空閒的運算引擎;如果存在,計算設備根據最近最少使用算法LRU從空閒的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備判斷多個運算引擎中是否存在正在做後處理的運算引擎;如果存在,計算設備根據最近最少使用算法LRU從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從處於至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;如果不存在,則計算設備繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備控制滿足第一預設條件的運算引擎進入工作模式;計算設備根據運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;計算設備根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元。   可選的,上述處理器還可以執行如下步驟的程式代碼:計算設備釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態;計算設備返回等待下一次資料處理請求。   可選的,上述處理器還可以執行如下步驟的程式代碼:在計算設備從多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求。   所屬技術領域中具有通常知識者可以理解,圖17所示的結構僅為示意,電腦終端也可以是智慧手機(如Android手機、iOS手機等)、平板電腦、掌聲電腦以及行動網際網路設備(Mobile Internet Devices, MID)、PAD等終端設備。圖17其並不對上述電子裝置的結構造成限定。例如,電腦終端17還可包括比圖17中所示更多或者更少的組件(如網路介面、顯示裝置等),或者具有與圖17所示不同的配置。   所屬技術領域中具有通常知識者可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程式來指令終端設備相關的硬體來完成,該程式可以儲存於一電腦可讀儲存媒介中,儲存媒介可以包括:快閃隨身碟、唯讀儲存器(Read-Only Memory, ROM)、隨機存取器(Random Access Memory, RAM)、磁碟或光碟等。 實施例9   本發明的實施例還提供了一種儲存媒介。可選的,在本實施例中,上述儲存媒介可以用於保存上述實施例2所提供的處理資料過程中的調度方法所執行的程式代碼。   可選的,在本實施例中,上述儲存媒介可以位於電腦網路中電腦終端群中的任意一個電腦終端中,或者位於行動終端群中的任意一個行動終端中。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備從請求隊列中讀取至少一個資料處理請求;計算設備為每個資料處理請求分配到一個滿足第一預設條件的運算引擎;計算設備基於滿足第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;計算設備使用滿足第二預設條件的至少一個邏輯運算單元處理資料處理請求。   可選的,第一預設條件至少包括如下一個條件:運算引擎是否空閒、運算引擎是否正在做後處理和運算引擎是否處於等待狀態,其中,在第一預設條件包括多個條件的情況下,每個條件的按照預定的優先級對運算引擎進行依次判斷。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備判斷多個運算引擎中是否存在空閒的運算引擎;如果存在,計算設備根據最近最少使用算法LRU從空閒的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備判斷多個運算引擎中是否存在正在做後處理的運算引擎;如果存在,計算設備根據最近最少使用算法LRU從正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從處於至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;如果不存在,則計算設備繼續判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;如果存在至少一個進入空閒狀態的運算引擎,計算設備根據最近最少使用算法LRU從存在至少一個進入空閒狀態的運算引擎中選擇一個運算引擎作為滿足第一預設條件的運算引擎。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備控制滿足第一預設條件的運算引擎進入工作模式;計算設備根據運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;計算設備根據確定的邏輯運算單元的類型,從邏輯運算單元池中選擇對應的至少一個邏輯運算單元。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備採用輪詢的方式從邏輯運算單元池中申請與類型相同的邏輯運算單元,並佔用申請得到的邏輯運算單元。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:計算設備釋放用於處理資料處理請求的資源,並更新用於調度邏輯運算單元來處理資料處理請求的運算引擎的狀態;計算設備返回等待下一次資料處理請求。   可選的,在本實施例中,儲存媒介被設置為儲存用於執行以下步驟的程式代碼:在計算設備從多個運算引擎中沒有查詢到滿足第一預設條件的運算引擎的情況下,拒絕資料處理請求,並返回等待下一次資料處理請求。   上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。   在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。   在本申請所提供的幾個實施例中,應該理解到,所揭露的技術內容,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以整合到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,單元或模組的間接耦合或通信連接,可以是電性或其它的形式。   所述作為分離部件說明的單元可以是或者也可以不是實體上分開的,作為單元顯示的部件可以是或者也可以不是實體單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。   另外,在本發明各個實施例中的各功能單元可以整合在一個處理單元中,也可以是各個單元單獨實體存在,也可以兩個或兩個以上單元整合在一個單元中。上述整合的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。   所述整合的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀取儲存媒介中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒介中,包括若干指令用以使得一台電腦設備(可為個人電腦、伺服器或者網路設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存媒介包括:隨身碟、唯讀儲存器(ROM, Read-Only Memory)、隨機存取儲存器(RAM, Random Access Memory)、行動硬碟、磁碟或者光碟等各種可以儲存程式代碼的媒介。   以上所述僅是本發明的可選實施方式,應當指出,對於所屬技術領域中具有通常知識者來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。
10‧‧‧客戶端設備101‧‧‧一級調度器103‧‧‧二級調度器ALU0‧‧‧算術邏輯單元ALU1‧‧‧算術邏輯單元ALU2‧‧‧算術邏輯單元20‧‧‧伺服器201‧‧‧處理單元203‧‧‧一級調度器205‧‧‧二級調度器207‧‧‧運算引擎組209‧‧‧邏輯運算單元池211‧‧‧配置寄存器213‧‧‧儲存器215‧‧‧輸入輸出介面S402‧‧‧步驟S404‧‧‧步驟S406‧‧‧步驟S408‧‧‧步驟S502‧‧‧步驟S504‧‧‧步驟S602‧‧‧步驟S604‧‧‧步驟S702‧‧‧步驟S704‧‧‧步驟S802‧‧‧步驟S804‧‧‧步驟S806‧‧‧步驟S902‧‧‧步驟S904‧‧‧步驟S906‧‧‧步驟S102‧‧‧步驟S104‧‧‧步驟S112‧‧‧步驟S114‧‧‧步驟S116‧‧‧步驟S118‧‧‧步驟S120‧‧‧步驟S122‧‧‧步驟S124‧‧‧步驟S126‧‧‧步驟S128‧‧‧步驟S130‧‧‧步驟S132‧‧‧步驟S134‧‧‧步驟S136‧‧‧步驟S138‧‧‧步驟S140‧‧‧步驟S142‧‧‧步驟S152‧‧‧步驟S154‧‧‧步驟S156‧‧‧步驟S158‧‧‧步驟121‧‧‧讀取模組123‧‧‧分配模組125‧‧‧調度模組127‧‧‧處理模組131‧‧‧輸入/輸出介面133‧‧‧控制器141‧‧‧硬體加密單元143‧‧‧儲存器145‧‧‧任務調度單元147‧‧‧處理器161‧‧‧輸入輸出介面162‧‧‧儲存器163‧‧‧一級調度器164‧‧‧二級調度器165‧‧‧運算引擎池166‧‧‧邏輯運算單元池17‧‧‧電腦終端172a‧‧‧處理器172b‧‧‧處理器172n‧‧‧處理器174‧‧‧儲存器176‧‧‧傳輸裝置
此處所說明的圖式用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在圖式中:   圖1是根據本發明實施例的一種硬體資源調度系統結構示意圖;   圖2是根據本發明實施例的一種可選的硬體資源調度系統示意圖;   圖3(a)所示為根據本發明實施例的一種可選的基於單個引擎的RSA硬體加速方案示意圖;   圖3(b)所示為根據本發明實施例的一種可選的基於多個引擎的RSA硬體加速方案示意圖;   圖3(c)所示為根據本發明實施例的一種可選的二級調度器示意圖;   圖4是根據本發明實施例的一種處理資料過程中的調度方法的流程圖;   圖5是根據本發明實施例的一種可選的處理資料過程中的調度方法的流程圖;   圖6是根據本發明實施例的一種可選的處理資料過程中的調度方法的流程圖;   圖7是根據本發明實施例的一種可選的處理資料過程中的調度方法的流程圖;   圖8是根據本發明實施例的一種可選的處理資料過程中的調度方法的流程圖;   圖9是根據本發明實施例的一種可選的處理資料過程中的調度方法的流程圖;   圖10是根據本發明實施例的一種可選的處理資料過程中的調度方法的流程圖;   圖11所示為根據本發明實施例的一種可選的在多個引擎中進行資源調度的方法流程圖;   圖12是根據本發明實施例的一種處理資料過程中的調度裝置示意圖;   圖13是根據本發明實施例的一種用於硬體加密單元的任務調度裝置示意圖;   圖14是根據本發明實施例的一種計算設備結構方塊圖;   圖15是根據本發明實施例的一種處理資料過程中的兩級調度方法流程圖;   圖16是根據本發明實施例的一種計算設備示意圖;以及   圖17是根據本發明實施例的一種電腦終端的硬體結構方塊圖。

Claims (16)

  1. 一種處理資料過程中的調度系統,其特徵在於,包括:   客戶端設備,包括:輸入/輸出介面、一級調度器、二級調度器、多個運算引擎和多個邏輯運算單元;   所述輸入/輸出介面,用於接收至少一個資料處理請求,並儲存至請求隊列中;   所述一級調度器,與所述輸入/輸出介面連接,用於從所述請求隊列中讀取至少一個資料處理請求,並為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎;   所述二級調度器,與所述一級調度器連接,用於接收所述資料處理請求,並基於滿足所述第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;   其中,滿足所述第二預設條件的至少一個邏輯運算單元處理所述資料處理請求。
  2. 一種處理資料過程中的調度方法,其特徵在於,包括:   計算設備從請求隊列中讀取至少一個資料處理請求;   所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎;   所述計算設備基於滿足所述第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;   所述計算設備使用滿足所述第二預設條件的至少一個邏輯運算單元處理所述資料處理請求。
  3. 根據請求項2所述的方法,其中,所述第一預設條件至少包括如下一個條件:所述運算引擎是否空閒、所述運算引擎是否正在做後處理和所述運算引擎是否處於等待狀態,其中,在所述第一預設條件包括多個條件的情況下,每個條件的按照預定的優先級對所述運算引擎進行依次判斷。
  4. 根據請求項3所述的方法,其中,所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎,包括:   所述計算設備判斷多個運算引擎中是否存在空閒的運算引擎;   如果存在,所述計算設備根據最近最少使用算法LRU從所述空閒的至少一個運算引擎中選擇一個運算引擎作為滿足所述第一預設條件的運算引擎。
  5. 根據請求項3所述的方法,其中,所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎,包括:   所述計算設備判斷多個運算引擎中是否存在正在做後處理的運算引擎;   如果存在,所述計算設備根據最近最少使用算法LRU從所述正在做後處理的至少一個運算引擎中選擇一個運算引擎作為滿足所述第一預設條件的運算引擎。
  6. 根據請求項3所述的方法,其中,所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎,包括:   所述計算設備判斷多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;   如果存在至少一個進入所述空閒狀態的運算引擎,所述計算設備根據最近最少使用算法LRU從所述至少一個進入所述空閒狀態的運算引擎中選擇一個運算引擎作為滿足所述第一預設條件的運算引擎。
  7. 根據請求項3所述的方法,其中,所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎,包括:   所述計算設備判斷多個運算引擎中是否存在空閒的運算引擎及/或正在做後處理的運算引擎;   如果不存在,則所述計算設備繼續判斷所述多個運算引擎中處於等待狀態的運行引擎是否進入空閒狀態;   如果存在至少一個進入所述空閒狀態的運算引擎,所述計算設備根據最近最少使用算法LRU從所述至少一個進入所述空閒狀態的運算引擎中選擇一個運算引擎作為滿足所述第一預設條件的運算引擎。
  8. 根據請求項2至7中任意一項所述的方法,其中,所述計算設備使用滿足所述第一預設條件的運算引擎從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元,包括:   所述計算設備控制滿足所述第一預設條件的運算引擎進入工作模式;   所述計算設備根據所述運算引擎的當前運算階段,確定需要申請的邏輯運算單元的類型;   所述計算設備根據確定的邏輯運算單元的類型,從所述邏輯運算單元池中選擇對應的所述至少一個邏輯運算單元。
  9. 根據請求項8所述的方法,其中,從所述邏輯運算單元池中選擇對應的所述至少一個邏輯運算單元,包括:   所述計算設備採用輪詢的方式從所述邏輯運算單元池中申請與所述類型相同的邏輯運算單元,並佔用申請得到的所述邏輯運算單元。
  10. 根據請求項2所述的方法,其中,在所述計算設備使用滿足所述第二預設條件的至少一個邏輯運算單元處理所述資料處理請求之後,所述方法還包括:   所述計算設備釋放用於處理所述資料處理請求的資源,並更新用於調度邏輯運算單元來處理所述資料處理請求的運算引擎的狀態;   所述計算設備返回等待下一次資料處理請求。
  11. 根據請求項2所述的方法,其中,在所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎之前,所述方法還包括:在所述計算設備從多個運算引擎中沒有查詢到滿足所述第一預設條件的運算引擎的情況下,拒絕所述資料處理請求,並返回等待下一次資料處理請求。
  12. 一種處理資料過程中的調度裝置,其特徵在於,包括:   讀取模組,用於計算設備從請求隊列中讀取至少一個資料處理請求;   分配模組,用於所述計算設備為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎;   調度模組,用於基於滿足所述第一預設條件的運算引擎的狀態資料從邏輯運算單元池中調度,得到滿足第二預設條件的至少一個邏輯運算單元;   處理模組,用於所述計算設備使用滿足所述第二預設條件的至少一個邏輯運算單元處理所述資料處理請求。
  13. 一種用於硬體加密單元的任務調度裝置,其特徵在於,包括:   輸入/輸出介面,用於從請求隊列中讀取至少一個資料處理請求;   控制器,與所述輸入/輸出介面連接,用於為每個所述資料處理請求分配到一個滿足第一預設條件的運算引擎,以及調度滿足第二預設條件的至少一個邏輯運算單元,並使用滿足所述第二預設條件的至少一個邏輯運算單元處理所述資料處理請求。
  14. 一種計算設備,其特徵在於,包括:   硬體加密單元,用於處理加密請求;   儲存器,與所述硬體加密單元連接,用於將所述加密請求中的一個或多個資料處理請求儲存至請求隊列中;   任務調度單元,與所述儲存器連接,用於從所述請求隊列中讀取至少一個資料處理請求,並為所述資料處理請求分配到一個滿足第一預設條件的運算引擎,以及調度滿足第二預設條件的至少一個邏輯運算單元;   處理器,與所述任務調度單元連接,用於使用滿足所述第二預設條件的至少一個邏輯運算單元處理所述資料處理請求。
  15. 一種處理資料過程中的兩級調度方法,其特徵在於,包括:   從請求隊列中讀取至少一個資料處理請求;   執行一級調度:為每個所述資料處理請求分配到一個滿足預設狀態的運算引擎,其中,所述運算引擎在執行過程中具備多個執行狀態;   執行二級調度:基於滿足所述預設狀態的運算引擎的狀態資料,從邏輯運算單元池中調度,選擇與所述預設狀態對應的可用的至少一個邏輯運算單元;和   使用所述邏輯運算單元處理所述資料處理請求。
  16. 一種計算設備,其特徵在於,包括:   輸入輸出介面,用於接收資料處理請求;   儲存器,用於保存所述資料處理請求,形成請求隊列;   一級調度器,用於從請求隊列中讀取至少一個資料處理請求,並分配到一個滿足預設狀態的運算引擎;   二級調度器,用於基於滿足所述預設狀態的運算引擎的狀態資料,從邏輯運算單元池中調度,選擇與所述預設狀態對應的可用的至少一個邏輯運算單元處理所述資料處理請求;   運算引擎池,包括多個運算引擎,用於向所述一級調度器提供運算引擎,其中,每個運算引擎在執行過程中具備多個執行狀態;和   邏輯運算單元池,包括多個邏輯運算單元,用於向所述二級調度器提供邏輯運算單元。
TW106136681A 2017-01-10 2017-10-25 處理資料過程中的調度方法、裝置和系統 TWI753036B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710016528.1A CN108287759B (zh) 2017-01-10 2017-01-10 处理数据过程中的调度方法、装置和系统
CN201710016528.1 2017-01-10
??201710016528.1 2017-01-10

Publications (2)

Publication Number Publication Date
TW201826121A TW201826121A (zh) 2018-07-16
TWI753036B true TWI753036B (zh) 2022-01-21

Family

ID=62782457

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106136681A TWI753036B (zh) 2017-01-10 2017-10-25 處理資料過程中的調度方法、裝置和系統

Country Status (4)

Country Link
US (1) US10467057B2 (zh)
CN (1) CN108287759B (zh)
TW (1) TWI753036B (zh)
WO (1) WO2018132485A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108363615B (zh) * 2017-09-18 2019-05-14 清华大学 用于可重构处理系统的任务分配方法和系统
CN110941584B (zh) * 2019-11-19 2021-01-22 中科寒武纪科技股份有限公司 运算引擎和数据运算方法
CN111190733B (zh) * 2019-12-27 2023-11-17 华为技术有限公司 用于进行rsa计算的计算资源调度方法及装置
CN113449344B (zh) * 2020-03-27 2023-03-17 支付宝(杭州)信息技术有限公司 一种安全计算方法、装置、设备及介质
CN111866159A (zh) * 2020-07-28 2020-10-30 阿戈斯智能科技(苏州)有限公司 人工智能服务的调用方法、系统、设备和存储介质
WO2022036690A1 (zh) * 2020-08-21 2022-02-24 华为技术有限公司 一种图计算装置、处理方法及相关设备
CN114691590B (zh) * 2020-12-31 2024-04-05 中科寒武纪科技股份有限公司 一种用于数据传送的方法和相关产品
CN113283898A (zh) * 2021-05-27 2021-08-20 武汉天喻信息产业股份有限公司 一种基于多操作系统的智能卡调度方法及装置
CN113885945B (zh) * 2021-08-30 2023-05-16 山东云海国创云计算装备产业创新中心有限公司 一种计算加速方法、设备以及介质
CN113900828B (zh) * 2021-12-08 2022-03-04 深圳致星科技有限公司 联邦学习专用处理器、联邦学习处理芯片及芯片
CN115795522B (zh) * 2023-02-09 2023-05-30 广州万协通信息技术有限公司 多核并发的高速密码引擎数据处理方法及装置
CN115934031B (zh) * 2023-03-15 2023-09-01 紫光同芯微电子有限公司 一种计算引擎、数据处理方法、设备及存储介质
CN117667208B (zh) * 2024-02-01 2024-05-24 腾讯科技(深圳)有限公司 数据运算方法、存储器及计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611906B1 (en) * 2000-04-30 2003-08-26 Hewlett-Packard Development Company, L.P. Self-organizing hardware processing entities that cooperate to execute requests
US20050141715A1 (en) * 2003-12-29 2005-06-30 Sydir Jaroslaw J. Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US8782295B2 (en) * 2010-11-03 2014-07-15 Pmc-Sierra Us, Inc. Method and apparatus for a multi-engine descriptor controller for distributing data processing tasks across the engines
US20160077882A1 (en) * 2012-09-20 2016-03-17 Nec Corporation Scheduling system, scheduling method, and recording medium
TWI543073B (zh) * 2014-03-07 2016-07-21 凱為公司 用於多晶片系統中的工作調度的方法和系統

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US20020041683A1 (en) 2000-09-29 2002-04-11 Hopkins Dale W. Method for selecting optimal number of prime factors of a modulus for use in a cryptographic system
US7305092B2 (en) 2000-12-19 2007-12-04 Qualcomm Incorporated Method and system to accelerate cryptographic functions for secure e-commerce applications
US7305492B2 (en) 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
WO2005008999A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Hardware acceleration for diffie hellman in a wireless lan
US20050132186A1 (en) 2003-12-11 2005-06-16 Khan Moinul H. Method and apparatus for a trust processor
US20050132226A1 (en) 2003-12-11 2005-06-16 David Wheeler Trusted mobile platform architecture
US7636858B2 (en) 2003-12-11 2009-12-22 Intel Corporation Management of a trusted cryptographic processor
US7873687B2 (en) 2005-07-25 2011-01-18 International Business Machines Corporation Method for calculating a result of a division with a floating point unit with fused multiply-add
US20070055879A1 (en) 2005-08-16 2007-03-08 Jianjun Luo System and method for high performance public key encryption
US7738657B2 (en) 2006-08-31 2010-06-15 Intel Corporation System and method for multi-precision division
US7912886B2 (en) 2006-12-14 2011-03-22 Intel Corporation Configurable exponent FIFO
US7925011B2 (en) 2006-12-14 2011-04-12 Intel Corporation Method for simultaneous modular exponentiations
US8020142B2 (en) 2006-12-14 2011-09-13 Intel Corporation Hardware accelerator
US7961877B2 (en) 2006-12-14 2011-06-14 Intel Corporation Factoring based modular exponentiation
US20080148011A1 (en) 2006-12-14 2008-06-19 Intel Corporation Carry/Borrow Handling
US20090319804A1 (en) 2007-07-05 2009-12-24 Broadcom Corporation Scalable and Extensible Architecture for Asymmetrical Cryptographic Acceleration
US8781111B2 (en) 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US8281218B1 (en) * 2009-11-02 2012-10-02 Western Digital Technologies, Inc. Data manipulation engine
CN101739242B (zh) * 2009-11-27 2013-07-31 深圳中微电科技有限公司 一种流数据处理方法及流处理器
EP2367102B1 (en) 2010-02-11 2013-04-10 Nxp B.V. Computer processor and method with increased security properties
US9025767B2 (en) 2010-03-24 2015-05-05 Nokia Corporation Method and apparatus for querying content protected by identity-based encryption
CN101957780B (zh) * 2010-08-17 2013-03-20 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法
US20130332707A1 (en) 2012-06-07 2013-12-12 Intel Corporation Speed up big-number multiplication using single instruction multiple data (simd) architectures
US20140282978A1 (en) 2013-03-15 2014-09-18 Sergio Demian LERNER Method and apparatus for secure interaction with a computer service provider
US9208330B2 (en) 2014-02-03 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. System for execution of security related functions
US9600239B2 (en) 2014-08-08 2017-03-21 Texas Instruments Incorporated Cryptographic accelerator
CN105808328B (zh) * 2014-12-31 2019-05-17 杭州华为数字技术有限公司 任务调度的方法、装置和系统
CN104852860B (zh) * 2015-05-04 2019-04-23 四川大学 一种基于队列的异构资源多目标调度策略
US10089500B2 (en) 2015-09-25 2018-10-02 Intel Corporation Secure modular exponentiation processors, methods, systems, and instructions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611906B1 (en) * 2000-04-30 2003-08-26 Hewlett-Packard Development Company, L.P. Self-organizing hardware processing entities that cooperate to execute requests
US20050141715A1 (en) * 2003-12-29 2005-06-30 Sydir Jaroslaw J. Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US8782295B2 (en) * 2010-11-03 2014-07-15 Pmc-Sierra Us, Inc. Method and apparatus for a multi-engine descriptor controller for distributing data processing tasks across the engines
US20160077882A1 (en) * 2012-09-20 2016-03-17 Nec Corporation Scheduling system, scheduling method, and recording medium
TWI543073B (zh) * 2014-03-07 2016-07-21 凱為公司 用於多晶片系統中的工作調度的方法和系統

Also Published As

Publication number Publication date
CN108287759B (zh) 2021-07-09
US20180196699A1 (en) 2018-07-12
CN108287759A (zh) 2018-07-17
TW201826121A (zh) 2018-07-16
US10467057B2 (en) 2019-11-05
WO2018132485A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
TWI753036B (zh) 處理資料過程中的調度方法、裝置和系統
Pan et al. An efficient elliptic curve cryptography signature server with GPU acceleration
CN109714302B (zh) 算法的卸载方法、装置和系统
Chai et al. Task execution cost minimization-based joint computation offloading and resource allocation for cellular D2D MEC systems
TWI430102B (zh) 網路卡資源配置方法、儲存媒體、及電腦
US9575689B2 (en) Data storage system having segregated control plane and/or segregated data plane architecture
EP3716107B1 (en) Technologies for accelerated orchestration and attestation with edge device trust chains
TW526450B (en) Cryptographic processor
CN110414244A (zh) 加密卡、电子设备及加密服务方法
WO2018064006A1 (en) Securing access to cloud components
Rani et al. An implementation of modified blowfish technique with honey bee behavior optimization for load balancing in cloud system environment
JP2018525713A (ja) 極秘チャットデータの保護
CN103051455A (zh) 一种云计算环境下的可信密码模块密码功能授权代理的实现方法
CN109343972A (zh) 任务处理方法及终端设备
JP2009175910A (ja) 権限委譲システム、権限委譲方法および権限委譲プログラム
Abd Elminaam et al. SMCACC: developing an efficient dynamic secure framework for mobile capabilities augmentation using cloud computing
Huang et al. A low-complexity heterogeneous multi-core platform for security SoC
CN107493574B (zh) 无线控制器设备、并行认证处理方法、系统、组网装置
US10819780B2 (en) Protected data collection in a multi-node network
WO2018005384A1 (en) Data security in a cloud network
CN115033904A (zh) 数据处理方法、装置、系统、介质和产品
CN114710288A (zh) 基于人工智能的网络交换机安全监测方法、装置和介质
KR20180115107A (ko) 가상 사설 네트워크 서버 및 그것의 데이터 처리 방법
Ding et al. Resource allocation strategy for blockchain-enabled NOMA-based MEC networks
CN105162577B (zh) 虚拟环境下的加密解密方法和物理服务器