US10642657B2ActiveUtilityA1

Client-server architecture for multicore computer system to realize single-core-equivalent view

41
Assignee: UNIV HONG KONG POLYTECHNICPriority: Jun 27, 2018Filed: Jun 27, 2018Granted: May 5, 2020
Est. expiryJun 27, 2038(~12 yrs left)· nominal 20-yr term from priority
G06F 21/74G06F 9/544G06F 9/3877H04L 69/321G06F 15/16G06F 12/084G06F 21/123G06F 9/48G06T 1/20G06F 9/5027H04L 67/42H04L 67/568H04L 67/01G06F 2212/1016G06F 9/52
41
PatentIndex Score
0
Cited by
15
References
20
Claims

Abstract

A client-server architecture is used in a multicore computer system to realize a single-core-equivalent (SCE) view. In the system, plural stacks, each having a core and a local cache subsystem coupled thereto, are divided into a client stack for running client threads, and server stacks each for running server threads. A shared cache having shared cache blocks, each coupled to the client stack and to one or more server stacks, is also used. The core of an individual server stack is configured such that computing resources utilizable in executing the server thread(s) are confined to the individual server stack and the shared cache block coupled thereto, isolating an inter-core interference caused by the server thread(s) to the client thread(s) to within the individual server stack, the shared cache block coupled thereto, any server stack coupled to this shared cache block, and the client stack to thereby realize the SCE view.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A multicore computer system comprising:
 a plurality of stacks, each stack comprising a processing core and a local cache subsystem coupled thereto, the local cache subsystem being configured to provide one or more levels of cache memory for caching data or programs, or both, exclusively for the said processing core, the plurality of stacks being divided into a client stack and one or more server stacks, the client stack being used for running one or more client threads, an individual server stack being used for running one or more server threads; and 
 a shared cache comprising one or more shared cache blocks, each coupled to the client stack and to the one or more server stacks, an individual shared cache block being configured to provide a next level of cache memory to both the client stack and a respective server stack so as to facilitate communication between the one or more client threads and the one or more server threads; 
 wherein: 
 the processing core of the individual server stack is configured such that computing resources utilizable in executing the one or more server threads are confined to the individual server stack and the shared cache block coupled thereto, isolating an inter-core interference caused by the one or more server threads to the one or more client threads to within the individual server stack, the shared cache block coupled thereto, any server stack coupled to this shared cache block, and the client stack to thereby realize a single-core-equivalent (SCE) view of the multicore computer system. 
 
     
     
       2. The multicore computer system of  claim 1  further comprising:
 an additional cache subsystem coupled to the client stack, the additional cache subsystem being configured to provide next one or more levels of cache memory to the client stack. 
 
     
     
       3. The multicore computer system of  claim 2 , wherein the system is formed as an integrated circuit chip. 
     
     
       4. The multicore computer system of  claim 2 , wherein the system is formed as a system-on-chip. 
     
     
       5. The multicore computer system of  claim 1 , wherein the local cache subsystem of each stack is configured to provide only one level of cache memory. 
     
     
       6. The multicore computer system of  claim 5 , wherein the system is formed as an integrated circuit chip. 
     
     
       7. The multicore computer system of  claim 5 , wherein the system is formed as a system-on-chip. 
     
     
       8. The multicore computer system of  claim 1 , wherein a scratchpad memory and/or other fast-storage is used to serve the purpose of the one or more shared cache blocks. 
     
     
       9. The multicore computer system of  claim 8 , wherein the system is formed as an integrated circuit chip. 
     
     
       10. The multicore computer system of  claim 8 , wherein the system is formed as a system-on-chip. 
     
     
       11. The multicore computer system of  claim 1 , wherein each core is a general-purpose processing unit or a specialized processing unit. 
     
     
       12. The multicore computer system of  claim 11 , wherein the specialized processing unit is a graphics processing unit (GPU) or a secure crypto processor. 
     
     
       13. The multicore computer system of  claim 11 , wherein the system is formed as an integrated circuit chip. 
     
     
       14. The multicore computer system of  claim 11 , wherein the system is formed as a system-on-chip. 
     
     
       15. The multicore computer system of  claim 1  further comprising:
 one or more additional computing resources coupled to the client stack, wherein the one or more additional computing resources may include one or more buses, main memory, and/or input/output (JO) devices. 
 
     
     
       16. The multicore computer system of  claim 15 , wherein the system is formed as a system-on-chip. 
     
     
       17. The multicore computer system of  claim 1 , wherein the system is formed as an integrated circuit chip. 
     
     
       18. The multicore computer system of  claim 1 , wherein the system is formed as a system-on-chip. 
     
     
       19. A method for forming a multicore computer system having a single-core-equivalent (SCE) view, the method comprising:
 obtaining a plurality of stacks, wherein each stack comprises a processing core and a local cache subsystem coupled thereto, the local cache subsystem being configured to provide one or more levels of cache memory for caching data and, or programs, or both, exclusively for the said processing core; 
 dividing the plurality of stacks into a client stack and one or more server stacks, wherein the client stack is used for running one or more client threads, and an individual server stack is used for running one or more server threads; 
 obtaining a shared cache comprising one or more shared cache blocks, each coupled to the client stack and to one or more server stacks; 
 configuring an individual shared cache block to provide a next level of cache memory to both the client stack and a respective server stack so as to facilitate communication between the one or more client threads and the one or more server threads; 
 integrating at least the plurality of stacks and the shared cache to form the multicore computer system; and 
 configuring the processing core of the individual server stack to confine computing resources utilizable in executing the one or more server threads to the individual server stack and the shared cache block coupled thereto, whereby an inter-core interference caused by the one or more server threads to the one or more client threads is isolated to within the individual server stack, the shared cache block coupled thereto, any server stack coupled to this shared cache block, and the client stack to thereby realize the SCE view. 
 
     
     
       20. The method of  claim 19  further comprising:
 obtaining an additional cache subsystem coupled to the client stack; 
 configuring the additional cache subsystem to provide next one or more levels of cache memory to the client stack; and 
 in forming the multicore computer system, further integrating the additional cache subsystem into the multicore computer system.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.