CN107111553B - System and method for providing dynamic caching extension in more cluster heterogeneous processor frameworks - Google Patents
System and method for providing dynamic caching extension in more cluster heterogeneous processor frameworks Download PDFInfo
- Publication number
- CN107111553B CN107111553B CN201680005459.8A CN201680005459A CN107111553B CN 107111553 B CN107111553 B CN 107111553B CN 201680005459 A CN201680005459 A CN 201680005459A CN 107111553 B CN107111553 B CN 107111553B
- Authority
- CN
- China
- Prior art keywords
- processor
- cache
- cluster
- live load
- processor cluster
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Describe the dynamic caching extension in more cluster heterogeneous processor frameworks:System includes the first processor cluster with the first two level (L2) cache and the second processor cluster with the 2nd L2 caches.System further includes the controller communicated with the first L2 caches and the 2nd L2 caches.Controller receives the input of processor live load and the input of cache live load from first processor cluster.Based on the input of processor workload and the input of cache live load, director cache determines whether current task associated with first processor cluster is limited by the size threshold value of the first L2 caches or the performance threshold of first processor cluster.If current task is limited by the size threshold value of the first L2 caches, controller uses extension of at least part of the 2nd L2 caches as the first L2 caches.
Description
Background technology
Portable computing device (for example, cellular phone, smart mobile phone, tablet computer, portable digital-assistant (PDAs) and
Portable game host) ever-increasing series of features and service are persistently provided, and provide to the user to information, resource and
The unprecedented level of access of communication.In order to keep up with the paces of these service enhancements, these equipment become it is more powerful and
It is more complicated.Portable computing device generally includes system on chip (SoC) at present, which is embedded in including one or more
Chip assembly on single substrate is (for example, one or more central processing unit (CPU), graphics processing unit (GPU), number
Signal processor etc.).
Such portable computing device or other computer systems or equipment may include more cluster heterogeneous processor framves
One example of more cluster heterogeneous processor frameworks is known as " large and small cluster (big.LITTLE) " isomery framework by structure.It is " large and small
Cluster " and other isomery frameworks generally include one group of processor core, wherein relatively slow, the lower processor core of power
Gather and is coupled with the set of relatively more powerful processor core.For example, usually by the processor with higher executive capability
Or the collection of processor core is collectively referred to as " big cluster ", and will have minimum power consumption but be capable of providing suitable performance (but compare
The performance of big cluster is low) processor or the other collection of processor core be collectively referred to as " small cluster ".Director cache can
To be held by big cluster or small cluster according to the performance and/or power demand that can be changed based on various service conditions to dispatch
Capable task.The case where big cluster can be used for it is expected higher performance (for example, figure, game etc.), and can be by small cluster
Service condition (for example, text application) for relative low power.
However, in certain service conditions, existing more cluster heterogeneous processor frameworks cannot effectively optimize performance/work(
Rate.For example, undesirable two may be undergone by accessing the service condition of still relatively light CPU live loads with big memory
Grade (L2) cache-miss.Due to executing delay, existing framework may be by such service condition/live load
It is construed to relatively heavy CPU live loads.Therefore, if by task immigration to big cluster, system may suffer from power damage
It loses.Alternatively, it is run if task stayed on small cluster, performance may be impacted.In addition, if scheduler is by task
The big cluster with larger L2 caches is moved to from the small cluster of the L2 caches with smaller size, then system may
Consume excessive power.It, may if scheduler stays in task in the small cluster of the L2 caches with smaller size
Lead to low performance and undesirable user experience.
Therefore, this field need in more cluster heterogeneous processor frameworks scheduling and management role have optimization
The system and method for performance and power consumption.
Invention content
It discloses for providing dynamic caching in more cluster heterogeneous processor frameworks in portable computing device
The method of extension, the various embodiments of system and computer program.Method includes as a kind of:Including first processor collection
In more cluster heterogeneous processor frameworks of the second processor cluster of group and associated second cache, reception is directed to
First processor cluster and the input of the processor live load of associated first cache and cache live load are defeated
Enter.Based on processor live load input and cache live load input, determine and the first processor collection faciation
Whether associated current task is limited by the size threshold value of first cache or the performance threshold of the first processor cluster.
It, can will be related to the second processor cluster if the current task is limited by the size threshold value of first cache
At least part of second cache of connection is used as the extension of first cache.
Other embodiment be have more cluster heterogeneous processor frameworks for provide dynamic caching extension be
System.The system includes:First processor cluster including the first two level (L2) cache and including the 2nd L2 caches
Second processor cluster.The director cache communicated with the first L2 caches and the 2nd L2 caches is configured
To receive the input of processor live load and the input of cache live load from the first processor cluster.Based on the processor
Live load inputs and cache live load input, the director cache can determine and the first processor collection
Whether the associated current task of faciation is by the size threshold value of the first L2 caches or the performance threshold of the first processor cluster
Value limitation.If the current task is limited by the size threshold value of the first L2 caches, which can
To use at least part of the 2nd L2 caches associated with the second processor cluster as the first L2 high speeds
The extension of caching.
Description of the drawings
In the accompanying drawings, unless otherwise directed, the same reference numerals for otherwise spreading each view refer to same section.For
The reference numeral of alphabetic character title with such as " 102A " or " 102B ", alphabetic character title can be distinguished in same attached drawing
The two similar parts presented or element.Cover in all the appended drawings with same reference numerals when being intended to make reference numeral
When all parts, it is convenient to omit be directed to the alphabetic character title of reference numeral.
Fig. 1 is the block diagram of the embodiment for the system for including more cluster heterogeneous processor frameworks, the framework include for
The dynamic caching cache scheduler that extension is redistributed with dynamic caching is provided between processor cluster.
Fig. 2 is the block diagram for showing the data of the embodiment of the cache scheduler in the system of Fig. 1 and outputting and inputting.
Fig. 3 is the tables of data of the example data input and result data output that show the cache scheduler in Fig. 2.
Fig. 4 is to show to be used to provide dynamic caching extension and dynamic caching by what cache scheduler was realized
The flow chart of the embodiment for the method redistributed.
Fig. 5 a are the functional block diagrams of the embodiment of the system for the Fig. 1 for showing to extend for realizing dynamic caching.
Figure 5b shows that the systems of Fig. 5 a, wherein being made by using the part of the L2 caches of another processor cluster
The L2 caches of a processor cluster are extended for additional L2 caches.
The system that Fig. 5 c show Fig. 5 a, wherein being made by using the part of the L2 caches of another processor cluster
The L2 caches of a processor cluster are extended for L3 caches.
Fig. 6 is the block diagram that the physics for showing to extend for realizing dynamic caching is mapped to logical cache.
Fig. 7 be by director cache management the physics for realizing Fig. 6 to logical mappings look-up table implementation
Example.
Fig. 8 a are the function blocks of the embodiment of the system for the Fig. 1 for showing to redistribute for realizing dynamic caching
Figure.
The system that Fig. 8 b show Fig. 8 a, wherein task is re-assigned to another processor from a processor cluster
Cluster.
Fig. 9 shows the other embodiment of the system of Fig. 1, which is used for based on hit counter is monitored,
After task immigration to the destination L2 caches in other processor cluster, source L2 caches are closed.
The system and method that Figure 10 shows the Fig. 1-9 for being incorporated to illustrative portable computing device (PCD).
Specific implementation mode
Herein, word is " exemplary " for meaning " being used as example, example or illustration ".It is described herein as " showing
Any aspect of example property " is not necessarily to be construed as relative to other aspects being preferred or advantageous.
In the present specification, term " application program " or " image " can also include the file for having executable content, example
Such as:Object code, script, bytecode, making language document and patch.In addition, " application program " that is mentioned above can also wrap
Substantially not executable file is included, such as other data files that the document opened or needs may be needed to access.
Term " content " can also include the file for having executable content, such as:Object code, script, bytecode, mark
Remember language file and patch.In addition, " content " mentioned in this article can also include substantially not executable file, such as can
Other data files that the document opened or needs can be needed to access.
As used in this specification, term " component ", " database ", " module ", " system " etc. are intended to refer to count
Calculation machine related entities hardware, firmware, the combination of hardware and software, software either software in execution.For example, group
Part can be but not limited to, the process that runs on a processor, processor, object, executable file, execution thread, program and/
Or computer.As explanation, both the application program and computing device that run on the computing device can be components.One or
Multiple components may reside in process and/or execution thread, and can by component localize on a computer and/or
It can be by components distribution between two or more computers.In addition, these components can be from various with what is be stored thereon
The various computer-readable mediums of data structure execute.Component can be by such as according to one or more packets
The local process of signal and/or the mode of remote process are communicated (for example, in data and local system from a component
, the other component in distributed system interacted by way of signal and/or across such as internet network with
Other systems are interacted by way of signal).
Fig. 1 is the block diagram of the embodiment for the system 100 for including more cluster heterogeneous processor frameworks.System 100 can be
It is realized in any computing device, including personal computer, work station, server, such as cellular phone, portable digital-assistant
(PDA), the portable computing device (PCD) of portable game host, palm PC or tablet computer.More cluster heterogeneous processors
Framework includes the multiple processor clusters for being coupled to director cache 101.As known in the art, each processor cluster
May include with corresponding private cache one or more processors or processor core (for example, central processing list
First (CPU), graphics processing unit (GPU), digital signal processor (DSP) etc.).
In the embodiment in figure 1, as previously mentioned, processor cluster 102 and 104 may include " large and small cluster " isomery frame
Structure, wherein processor cluster 102 include small cluster and processor cluster 104 includes big cluster.Small processor cluster 102 includes
Multiple central processing lists relatively slow and that less power is consumed than the core cpu 114 and 116 in big processor cluster 104
First (CPU) core 108 and 110.It should be appreciated that big cluster core cpu 114 and 116 can pass through following every and small cluster CPU
Core 108 and 110 distinguishes:For example, relatively high each cycle instructs number (IPC), higher working frequency, and/or has
Make it possible the micro-architecture features of relatively more performances to consume additional power as cost.In addition, such as wrapping
The additional processor cluster for including the processor cluster 106 of GPU cores 120 and 122 may include within system 100.
Processor cluster 102,104 and 106 can have the independent high speed used by the respective processor in system 100 slow
Memory is deposited, to reduce the average time for accessing data from main memory 144.It in embodiment, can be by independent high speed
Buffer memory and main memory 144 are organized as the other level of level cache (for example, level-one (L1), two level (L2), three-level
(L3)).Processor cluster 102 may include L2 caches 112, and processor cluster 104 may include L2 caches 118,
And processor cluster 106 may include L2 caches 124.
As shown in fig. 1, director cache 101 may include cache scheduler 140, cache interconnection
111 and the performance for monitoring L2 caches 112,118 and 124 respectively multiple cache monitors 126,128 and
130.Cache interconnection 111 includes having for maintaining one between main memory 144 and L2 caches 112,118 and 124
The interconnection of the associated logic of cause property or bus.As described in more detail below, cache scheduler 140 generally include by
It is configured to monitoring processor and cache performance and is most preferably managed to place according to the power of system 100 and performance requirement
Manage the logic of the task scheduling of device cluster 101,104 and 106.
Fig. 2 is the block diagram for showing the data of the embodiment of cache scheduler 140 and outputting and inputting.Cache tune
Input data 202 and L2 caches utilization rate/miss can be used from each processor cluster reception processor by spending device 140
Rate input data 204 is inputted as data.It should be appreciated that processor can be based on using input data 202 from processor cluster
102,104 and 106 one or more of parameters below or other parameters received indicate processor live load:Often
Cycles per instruction number (IPC), million instructions per second number (MIPS), frequency, cpu activity duration percentage.L2 caches
Input data 204 can be based in the parameter below or other received via cache monitor 126,128 and 130
One or more parameters indicate L2 caches live load or performance:Every 1000 instruction cache miss numbers
(MPKI), every 1000 instruction caches access number (APKI), L2 cache miss rates (MPKI/APKI), by high speed
CPU dead times/ratio caused by cache miss or stall clock number and instruction are as caused by cache-miss
Million periodicity (MCPS) per second of CPU pause quantity.
Based on input data 202 and 204, cache scheduler 140 determine whether due to (1) processor/cpu performance or
(2) (or will) causes to handle bottleneck or the limitation of other systems the size of L2 caches.For example, cache scheduler
140 can determine that current task associated with small processor cluster 102 is limited by cpu performance.Processor uses input data
202 may indicate that CPU live loads are more than the live load that can be ideally handled by small processor cluster 102.In response,
Cache scheduler 140 (for example, dynamic caching redistributes module 152) can start task immigration pattern 208 with
Task is moved into big processor cluster 104 from small processor cluster 102, the wherein task can be by CPU 114 or CPU 116
It executes, the CPU 114 or CPU 116 execute the performance ratio of the task via performance obtained by CPU 108 or CPU 100 more
It is ideal.Alternatively, cache scheduler 140 can determine current task associated with small processor cluster 102 by L2 high
The size limitation of speed caching 112.Input data 204 can indicate that the size of L2 caches 112 is limitation (rather than CPU
Can).In response, cache scheduler 140 (for example, dynamic caching expansion module 150) can start cache
Mode of extension 206 is with via small processor cluster 102, but (it is in big processor cluster by using L2 caches 118
In 104) part handle task as the L2 caches or L3 caches of extension.If current task does not have performance to ask
Topic, then cache scheduler 140, which can start to give tacit consent to, separates L2 patterns 210 to utilize the L2 caches of small processor cluster 102
112 continue current task.
As shown in figure 3, cache scheduler 140 can access and management table 300 with determination be start cache expand
Exhibition pattern 206, or start task immigration pattern 208, or start acquiescence and separate L2 patterns 210.Table 300 can define high speed
Cache size threshold value (threshold value 2) and performance threshold (threshold value 1).Based on data input 202 and 204, cache scheduler 140 can
To determine four exemplary scenarios.In scene 4, when there is small processor cluster 102 CPU no more than threshold value 1 to use percentage
Than, but with more than threshold value 2 L2 caches utilization rate/miss rate when, cache scheduler 140 can start height
Speed caching mode of extension 206.In scene 3, when there is small processor cluster 102 CPU more than threshold value 1 to use percentage,
Regardless of L2 caches utilization rate/miss rate, cache scheduler 140 can start task immigration pattern 208.
In scene 2, when small processor cluster 102 has the CPU no more than threshold value 1 using percentage and no more than the L2 high speeds of threshold value 2
When caching utilization rate/miss rate, cache scheduler 140 can start acquiescence and separate L2 patterns 210.Scene 1 refers to general goal
Reason device cluster 104 is actively handling task and system 100 separates L2 patterns in the acquiescence for big processor cluster 104
The case where being operated in 210.
Fig. 4 is the flow chart of the embodiment for the method 400 for showing to be realized by cache scheduler 140.In square 402
Place, cache scheduler 140 receive the processor work for small processor cluster 102 and associated L2 caches 112
Make load input and the input of cache live load.Processor live load inputs and the input of cache live load can be with
Including any of the above described parameter (202 and 204- of input Fig. 2).At square 404, cache scheduler 140 determines and small processing
Whether 102 associated current task of device cluster is by the size threshold value of L2 caches 112 or the property of CPU 108 or CPU110
It can threshold restriction.Performance threshold can be defined with size threshold value in a manner of the table 300 in similar Fig. 3.It should be appreciated that can be with
Programming mode defines threshold value or defines threshold value in other ways.If cache scheduler 140 determines current task by L2 high
The size threshold value of speed caching 112 limits (decision block 406), then cache scheduler 140 can use and big processor cluster
Extension (square 408) of at least part of 104 associated L2 caches 118 as L2 caches 112.
Fig. 5 a-5c show in schematic form two exemplary embodiments for dynamic expansion L2 caches 112.Such as
Shown in Fig. 5 a, current task can be associated with the CPU 108 in small processor cluster 102.CPU 108 and L2 caches
112 are highlighted as grey square.It in figure 5b, can be by the part of L2 caches 118 (big processor cluster 104)
502 distribution are as the extension L2 caches for L2 caches 112 (small processor cluster 102).In addition Fig. 5 c are shown
Embodiment, wherein by the distribution of the parts 504 of L2 caches 118 (big processor cluster 104) as by L2 caches 112
The L3 caches that (small processor cluster 102) uses.It should be appreciated that can be according to the cache realized within system 100
The level of rank uses various cache technologies.
Fig. 6 shows that the physical cache 602 for realizing dynamic caching expansion module 150 is slow to logic high speed
Deposit 604 exemplary map.Physical cache 602 can be distributed by following content.Processor cluster A can be in L2 high speeds
It includes physical cache part A1 and A2 to cache A.Processor cluster B can include physics high speed in L2 caches B
Cache part B1, B2, B3 and B4.Processor cluster C can include physical cache part C1, C2 in L2 caches C
And C3.202 and 204 are inputted in operation and based on data, cache scheduler 140 can will come from L2 caches B
Physical cache part B1, B2 and the B3 of (processor cluster B) distribute to L2 caches A (processor cluster A).It can incite somebody to action
Physical cache part B from cache B (processor cluster B) distributes to L2 caches C (processor cluster C).
In this operates with situation, processor cluster B can be deactivated and close its power to save power consumption.Fig. 7 is shown
The mapping table 700 mapped to logical cache for realizing the physics of Fig. 6.
Referring again to FIGS. 4, if cache scheduler 140 determines current task not by the size of L2 caches 112
Threshold restriction (decision block 406), then control can flow to decision block 410 to determine current task whether by L2 caches 112
Performance threshold limitation.If being no more than performance threshold, cache scheduler 140 can use acquiescence L2 compartmented modes
210 processing current tasks (square 412).If it exceeds performance threshold, then cache scheduler can be by current task from small
Processor cluster 102 moves to big processor cluster 104 (square 414).Fig. 8 a and 8b show exemplary in schematic form
Task immigration.In Fig. 8 a, current task 802 is associated with the CPU 110 in small processor cluster 102.As shown in figure 8b,
If it exceeds performance threshold, then task 802 can be moved to CPU 114 by cache scheduler 140 from CPU 110.
According to the other exemplary embodiment of system 100, when task moves to big processor from small processor cluster 102
When cluster 104, the L2 caches 118 in big processor cluster 104 can be from the L2 caches in small processor cluster 102
112 obtain its all working collection.Alternatively, L2 caches 118 can be from the L2 caches in small processor cluster 102
112 obtain the part of its working set, while being obtained from main memory 144 or relatively low-level cache (for example, L3 caches)
New set.In this respect, can be the thread that is performed by source L2 cache definitions from the L2 high wherein migrated out
Speed caching.As long as cache scheduler 140 can be additionally configured to be able to maintain that threshold cache from source L2 caches
Ratio is hit, it is online to be maintained for source L2 caches.It, can be with when hitting ratio and dropping to hit ratio less than threshold cache
It empties and closes source L2 caches.
As shown in figure 9, system 100 can be configured as adjustment threshold cache hit rate to optimize performance and/or work(
Rate.In embodiment, scheduler 907 and low-power mode driver 901 can be implemented in software, and overtime selection algorithm
903 can be with hardware realization.For example, it is contemplated that the case where operating system 905 is frequently performed task immigration.As retouched in greater detail above
As stating, scheduler 907 can receive task and wake up input 902 and determine whether execute task immigration (decision block
904).If the determination of scheduler 907 does not execute task immigration, can be by the task scheduling in original processing at square 906
On device cluster.It, then, can be by task immigration to destination processor cluster at square 908 if necessary to migrate task.
In the exemplary embodiment, adjustment/overtime technology is indicated by step A, B, C, D and E in Fig. 9.At step A,
Task immigration can trigger the control signal for example to low-power mode driver 901.At square 910, low-power mode drives
Dynamic device 901 determines whether that the core in source processor should be closed.If source L2 caches 909 can close (decision block
910), then at step B, closing time-out can be set and monitor hit threshold.It can be based on being received by overtime selection algorithm 903
Recommendation overtime (step C) closed overtime (square 920) to be arranged.At step D, can respectively will at square 922 and 924
It monitors hit threshold and monitors hit time-out and be stored in source L2 caches 903.At step E, in response to being based on monitoring life
Middle threshold value monitors hit counter and monitors the overtime IRQ lines of hit time-out, can close 909 (square of source L2 caches
928)。
System 100 can be incorporated in any desired computing system.Figure 10 shows that being incorporated to illustrative portable calculating sets
System 100 in standby (PCD) 1000.System on chip (SoC) 103 may include cache scheduler 140 and processor cluster
102,104 and 106.Display controller 328 and touch screen controller 1006 can be coupled to one or more processors cluster.
In turn, the touch-screen display 1006 outside system on chip 103 can be coupled to display controller 328 and touch screen control
Device 330.
Figure 10 is also shown such as Phase Alternate Lines (PAL) encoder, transmission is colored in order compiles with storage (SECAM)
The video encoder 334 of code device or national television system committee (NTSC) encoder is coupled to one or more processors cluster
102,104 and 106.In addition, the video amplifier 336 is coupled to video encoder 334 and touch-screen display 1006.In addition,
Video port 338 is coupled to the video amplifier 336.As shown in Figure 10, by 340 coupling of universal serial bus (USB) controller
Close one or more processors cluster.In addition, USB port 342 is coupled to USB controller 340.It can also be by memory
144 and subscriber identity module (SIM) card 346 be coupled to processor cluster.
In addition, as shown in Figure 10, can digital camera 348 be coupled to processor cluster.In illustrative aspect, number
Word camera 348 is charge coupling device (CCD) camera or complementary metal oxide semiconductor (CMOS) camera.
In addition, as shown in Figure 10, can stereo audio coder-decoder (CODEC) 350 be coupled to processor
Cluster.Furthermore, it is possible to which audio-frequency amplifier 352 is coupled to stereo audio CODEC 350.In in illustrative aspect, by first
Boombox 354 and the second boombox 356 are coupled to audio-frequency amplifier 352.It can also be by microphone amplifier
358 are coupled to stereo audio CODEC 350.Extraly, microphone 360 can be coupled to microphone amplifier 358.In spy
In fixed aspect, frequency modulation (FM) radio tuner 362 can be coupled to stereo audio CODEC 350.Moreover, by FM antennas
364 are coupled to FM radio tuners 362.Furthermore, it is possible to which stereophone 366 is coupled to stereo audio CODEC 350.
Figure 10, which is also shown, to be coupled to processor cluster by radio frequency (RF) transceiver 368.It can be by 370 coupling of RF switches
Close RF transceivers 368 and RF antennas 372.Keyboard 204, the mono headset with microphone 376 and vibrator can be set
Standby 378 are coupled to processor cluster.
Figure 10, which is also shown, to be coupled to system on chip 103 by power supply 380.In particular aspects, power supply 380 is to need
The various assemblies of the PCD 1000 of energy are wanted to provide direct current (DC) power supply of energy.In addition, in particular aspects, power supply is can to fill
Electric DC batteries or the DC power supply derived from AC to the DC transformers for being connected to exchange (AC) energy source.
It can also include that can be used in accessing such as LAN, personal area network or any other net that PCD 1000, which is also shown, in Figure 10
The network interface card 388 of the data network of network.Network interface card 388 can be bluetooth network interface card, WiFi network interface cards, personal area network (PAN) card, personal area network it is ultralow
Power technology (PeANUT) network interface card, TV/wired/satellite tuner or any other network interface card well known in the art.In addition, network interface card
388 can be incorporated in chip, that is, network interface card 388 can be the total solution in chip, and can not be individual network interface card
388。
With reference to figure 10, it should be understood that memory 144, RAM cards 105, touch-screen display 1006, video port 338, USB
Port 342, camera 348, the first boombox 354, the second boombox 356, microphone 360, FM antennas
364, stereophone 366, RF switches 370, RF antennas 372, keyboard 374, mono headset 376, vibrator 378 and power supply
380 can be in the outside of system on chip 103.
Certain steps in the process or process flow that describe in the present specification are naturally prior to other steps so that originally
Invention is run as described.However, if such order or sequence does not change the function of the present invention, the present invention is not limited to
The sequence of described step.That is, it should be appreciated that without departing from the scope and spirit of the present invention, can
With before other steps, execute some steps later or concurrently (substantially simultaneously) execute some steps with other steps.
In some instances, without departing from the present invention, it is convenient to omit or certain steps are not executed.In addition, such as " later ",
" then ", the word of " next " etc. is not intended to be limited to the sequence of step.These words run through simply for guiding reader and show
The description of example property method.
Extraly, program field those of ordinary skill can write computer code or determine suitable hardware and/
Or circuit with based in such as this specification flow chart and associated description realize disclosed invention without difficulty.
It is thus impossible to think the disclosure of the specific collection of program code instruction or detailed hardware equipment for fully understand as
What is manufactured and is necessary using the present invention.In the foregoing description and combination can show that the attached drawing of various process flows is more detailed
Ground explains the inventive function of claimed computer implemented process.
In one or more illustrative aspects, described function can be in hardware, software, firmware, or any combination thereof
Middle realization.If realized in software, it is computer-readable that these functions can be used as one or more instructions or code to be stored in
It instructs on medium or as one or more on a computer-readable medium or code is sent.Computer-readable medium packet
It includes computer storage media and includes convenient for computer program to be transmitted to any medium in other place from a place
Both communication medias.Storage medium can be any usable medium that can be accessed by computer.As an example, not a limit, this
Kind computer-readable medium may include RAM, ROM, EEPROM, nand flash memory, NOR flash memory, M-RAM, P-RAM, R-RAM, CD-
ROM or other disk storages, magnetic disk storage or other magnetic storage apparatus can be used for instruct or data structure
Any other medium that form carries or stores desired program code and can be accessed by computer.
Furthermore, it is possible to which any connection is properly termed as computer-readable medium.For example, if using coaxial cable, light
Fiber-optic cable, twisted-pair feeder, Digital Subscriber Line (" DSL ") or the wireless technology of such as infrared, radio and microwave are from website, server
Or other remote sources send software, then coaxial cable, fiber optic cables, twisted-pair feeder, DSL or such as infrared, radio and microwave
Wireless technology be then included in the definition of medium.
As it is used herein, disk and CD include compact disk (" CD "), laser-optical disk, CD, digital multi
CD (" DVD "), floppy disk and Blu-ray Disc, wherein disk usually magnetically reproduce data, and CD using laser optics again
Existing data.Above combination should also be as being included in the range of computer-readable medium.
Without departing from the spirit and scope of the present invention, for the ordinary skill of the technical field belonging to the present invention
For personnel, alternate embodiment will become obvious.Therefore, although being illustrated in detail in and having described selected side
Face, it is to be understood that in the case where not departing from the spirit and scope of the present invention as being defined by the following claims,
It can carry out various replacements and change.
Claims (26)
1. providing dynamic caching extension in a kind of more cluster heterogeneous processor frameworks in portable computing device
Method, the method includes:
It is different in more clusters of the second processor cluster including first processor cluster and associated second cache
In structure processor architecture, receive for the first processor cluster and associated first cache for indicating to place
The processor live load of reason device live load estimated inputs and for indicating the height estimated to cache live load
Speed caching live load input;
It is to determine current task associated with the first processor cluster based on cache live load input
The no size threshold value by first cache is limited, based on processor live load input and the cache work
Make load input to determine the current task associated with the first processor cluster whether by the first processor
The performance threshold of cluster is limited and is not limited by the size threshold value of first cache;
It is limited by the size threshold value of first cache in response to the determination current task, using with described second
Extension of at least part of associated second cache of processor cluster as first cache;And
It is limited by the performance threshold of the first processor cluster in response to the determination current task and not by described
The size threshold value of one cache limits, and the current task is moved to described second from the first processor cluster
Processor cluster.
2. according to the method described in claim 1, further including:
Monitoring monitoring hit counter associated with first cache;And
If the monitoring hit counter drops below threshold value or if reaching closing time-out, first high speed is closed
Caching.
3. according to the method described in claim 1, wherein, the processor live load input includes being related in following items
One or more information:Per clock cycle instructions number, instruction number, frequency level and processor activity continue per unit time
Percentage of time and cache live load input include the one or more information being related in following items:
Cache-miss number, cache access number, cache miss rate and caused by cache-miss
Manage device dead time or processor pause number.
4. according to the method described in claim 1, wherein it is determined that associated with the first processor cluster described as predecessor
Business by the performance threshold of the first processor cluster limited including:
It determines one or more more than the performance threshold in following items:At first in the first processor cluster
It manages the associated processor activity duration percentage of device, every clock cycle instructions number, instruct number and frequency per unit time
It is horizontal.
5. according to the method described in claim 1, wherein it is determined that associated with the first processor cluster described as predecessor
Business by the size threshold value of first cache limited including:
It determines one or more more than the size threshold value in following items:Cache-miss number, cache access
Number, cache miss rate and the processor dead time caused by cache-miss or processor pause number.
6. according to the method described in claim 1, wherein, the first processor cluster includes having first processor type
One or more processors equipment, and the second processor cluster includes the one or more for having second processor type
Processor device.
7. according to the method described in claim 6, wherein, the first processor type and the second processor type include
It is one or more in following items:Multi-core processor, central processing unit (CPU), graphics processor unit (GPU) and number
Signal processor (DSP).
8. according to the method described in claim 1, wherein, more cluster heterogeneous processor frameworks include isomery framework, wherein
The first processor cluster includes the one or more processors core heart, and the power ratio of the processor core constitutes described second
The power of the one or more processors core heart of processor cluster is low, and wherein, described in the first processor cluster
Size smaller of the size of first cache than second cache in the second processor cluster.
9. according to the method described in claim 1, wherein described first cache and second cache include being directed to
Two level (L2) cache of associated processor cluster, and wherein, using associated with the second processor cluster
Described at least part of second cache include as the extension of first cache:Use described second
Cache is as three-level (L3) cache for the first processor cluster.
10. providing dynamic caching extension in a kind of more cluster heterogeneous processor frameworks in portable computing device
System, the system comprises:
For more collection in the second processor cluster including first processor cluster and associated second cache
In group's heterogeneous processor framework, receive for the first processor cluster and associated first cache for indicating
The processor live load of processor live load estimated is inputted and for indicating to estimate cache live load
Cache live load input unit;
It is determined for being inputted based on the cache live load associated with the first processor cluster as predecessor
Business whether unit limit by the size threshold value of first cache, for based on the processor live load input with
Cache live load input come determine the current task associated with the first processor cluster whether by
The list that the performance threshold of the first processor cluster is limited and do not limited by the size threshold value of first cache
Member;
For being limited by the size threshold value of first cache in response to the determination current task, using with it is described
Extension of at least part of associated second cache of second processor cluster as first cache
Unit;And
For being limited by the performance threshold of the first processor cluster in response to the determination current task and not by institute
The size threshold value limitation for stating the first cache moves to from the first processor cluster current task described
The unit of second processor cluster.
11. system according to claim 10, further includes:
For monitoring the unit for monitoring hit counter associated with first cache;And if being used for the prison
It listens hit counter to be more than threshold value or closes time-out if reached, close the unit of first cache.
12. system according to claim 10, wherein the processor live load input includes being related in following items
One or more information:Per clock cycle instructions number, instruction number, frequency level and processor activity continue per unit time
Percentage of time and cache live load input include the one or more information being related in following items:
Cache-miss number, cache access number, cache miss rate and caused by cache-miss
Manage device dead time or processor pause number.
13. system according to claim 10, wherein associated with the first processor cluster described for determining
The unit that current task is limited by the performance threshold of the first processor cluster includes:
For determining one or more units more than the performance threshold in following items:With the first processor cluster
In the associated processor activity duration percentage of first processor, per clock cycle instructions numbers, refer to per unit time
Enable number and frequency level.
14. system according to claim 10, wherein associated with the first processor cluster described for determining
The unit that current task is limited by the size threshold value of first cache includes:
For determining one or more units more than the size threshold value in following items:Cache-miss number, height
Fast cache access number, cache miss rate and processor dead time or processor caused by cache-miss stop
Pause number.
15. system according to claim 10, wherein the first processor cluster includes having first processor type
One or more processors equipment, and the second processor cluster includes one or more with second processor type
A processor device.
16. system according to claim 15, wherein the first processor type and the second processor type packet
It includes one or more in following items:Multi-core processor, central processing unit (CPU), graphics processor unit (GPU) sum number
Word signal processor (DSP).
17. system according to claim 10, wherein more cluster heterogeneous processor frameworks include isomery framework,
Described in first processor cluster include the one or more processors core heart, the power ratio of the processor core constitutes described the
The power of the one or more processors core heart of two processor clusters is low, and wherein, the institute in the first processor cluster
State size smaller of the size than second cache in the second processor cluster of the first cache.
18. system according to claim 10, wherein first cache and second cache include needle
To two level (L2) cache of associated processor cluster, and wherein, using related to the second processor cluster
Described at least part of second cache of connection includes as the extension of first cache:Use described
Two caches are as three-level (L3) cache for the first processor cluster.
19. a kind of non-transitory computer-readable medium, store instruction, described instruction can be executed following to carry out by processor
Operation extends to provide dynamic caching in more cluster heterogeneous processor frameworks in portable computing device:
It is different in more clusters of the second processor cluster including first processor cluster and associated second cache
In structure processor architecture, receive for the first processor cluster and associated first cache for indicating to place
The processor live load of reason device live load estimated inputs and for indicating the height estimated to cache live load
Speed caching live load input;
It is to determine current task associated with the first processor cluster based on cache live load input
The no size threshold value by first cache is limited;Based on processor live load input and the cache work
Make load input to determine the current task associated with the first processor cluster whether by the first processor
The performance threshold of cluster is limited and is not limited by the size threshold value of first cache;
It is limited by the size threshold value of first cache in response to the determination current task, using with described second
Extension of at least part of associated second cache of processor cluster as first cache;And
It is limited by the performance threshold of the first processor cluster in response to the determination current task and not by described
The size threshold value of one cache limits, and the current task is moved to described second from the first processor cluster
Processor cluster.
20. non-transitory computer-readable medium according to claim 19 also stores the finger operated below
It enables:
Monitoring monitoring hit counter associated with first cache;And
If the monitoring hit counter is more than threshold value or closes time-out if reached, first cache is closed.
21. non-transitory computer-readable medium according to claim 19, wherein the processor live load input
Including being related to one or more information in following items:Per clock cycle instructions number, number, frequency water are instructed per unit time
Gentle processor activity duration percentage and cache live load input include being related in following items
One or more information:Cache-miss number, cache access number, cache miss rate and by high speed
Processor dead time caused by cache miss or processor pause number.
22. non-transitory computer-readable medium according to claim 19, wherein handled with described first to determine
The described instruction packet that the associated current task of device cluster is limited by the performance threshold of the first processor cluster
Include the instruction operated below:
It determines one or more more than the performance threshold in following items:At first in the first processor cluster
It manages the associated processor activity duration percentage of device, every clock cycle instructions number, instruct number and frequency per unit time
It is horizontal.
23. a kind of system with more cluster heterogeneous processor frameworks for providing dynamic caching extension, the system
Including:
Include the first processor cluster of the first two level (L2) cache;
Include the second processor cluster of the 2nd L2 caches;And
The controller communicated with the first L2 caches and the 2nd L2 caches, the controller are configured as:
It is received from the first processor cluster for indicating defeated to the processor live load of processor live load estimated
Enter and for indicating the cache live load input estimated to cache live load;
It is to determine current task associated with the first processor cluster based on cache live load input
The no size threshold value by the first L2 caches is limited;Based on processor live load input and the cache
Live load inputs to determine whether the current task associated with the first processor cluster is handled by described first
The performance threshold of device cluster is limited and is not limited by the size threshold value of the first L2 caches;
It is limited by the size threshold value of the first L2 caches in response to the determination current task, using with described
Expansion of at least part of the associated 2nd L2 caches of two processor clusters as the first L2 caches
Exhibition;And
It is limited by the performance threshold of the first processor cluster in response to the determination current task and not by described
The size threshold values of one L2 caches limits, and the current task is moved to described the from the first processor cluster
Two processor clusters.
24. system according to claim 23, wherein the controller is additionally configured to:
Monitoring monitoring hit counter associated with the first L2 caches;And
If the monitoring hit counter is more than threshold value or closes time-out if reached, first cache is closed.
25. system according to claim 23, wherein the processor live load input includes being related in following items
One or more information:Per clock cycle instructions number, instruction number, frequency level and processor activity continue per unit time
Percentage of time and cache live load input include the one or more information being related in following items:
Cache-miss number, cache access number, cache miss rate and caused by cache-miss
Manage device dead time or processor pause number.
26. system according to claim 23, wherein determine associated with the first processor cluster described current
Task by the performance threshold of the first processor cluster limited including:
It determines one or more more than the performance threshold in following items:At first in the first processor cluster
It manages the associated processor activity duration percentage of device, every clock cycle instructions number, instruct number and frequency per unit time
It is horizontal.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/595,998 | 2015-01-13 | ||
US14/595,998 US9697124B2 (en) | 2015-01-13 | 2015-01-13 | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture |
PCT/US2016/012374 WO2016114961A1 (en) | 2015-01-13 | 2016-01-06 | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107111553A CN107111553A (en) | 2017-08-29 |
CN107111553B true CN107111553B (en) | 2018-10-12 |
Family
ID=55310902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680005459.8A Active CN107111553B (en) | 2015-01-13 | 2016-01-06 | System and method for providing dynamic caching extension in more cluster heterogeneous processor frameworks |
Country Status (6)
Country | Link |
---|---|
US (1) | US9697124B2 (en) |
EP (1) | EP3245587B1 (en) |
JP (1) | JP6355853B2 (en) |
KR (1) | KR101799253B1 (en) |
CN (1) | CN107111553B (en) |
WO (1) | WO2016114961A1 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6451538B2 (en) * | 2015-07-22 | 2019-01-16 | 富士通株式会社 | Arithmetic processing device and control method of arithmetic processing device |
US11289133B2 (en) * | 2015-09-16 | 2022-03-29 | Arm Limited | Power state based data retention |
CN105744342B (en) * | 2016-01-28 | 2019-04-12 | 腾讯科技(深圳)有限公司 | The data transmission method and device of mobile terminal |
KR101887741B1 (en) * | 2016-04-11 | 2018-09-11 | 전자부품연구원 | Adaptive Block Cache Management Method and DBMS applying the same |
US10248457B2 (en) | 2016-08-10 | 2019-04-02 | International Business Machines Corporation | Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task |
US10275280B2 (en) | 2016-08-10 | 2019-04-30 | International Business Machines Corporation | Reserving a core of a processor complex for a critical task |
US10152243B2 (en) * | 2016-09-15 | 2018-12-11 | Qualcomm Incorporated | Managing data flow in heterogeneous computing |
US10248464B2 (en) * | 2016-10-24 | 2019-04-02 | International Business Machines Corporation | Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex |
US10223164B2 (en) | 2016-10-24 | 2019-03-05 | International Business Machines Corporation | Execution of critical tasks based on the number of available processing entities |
CN108614782B (en) * | 2018-04-28 | 2020-05-01 | 深圳市华阳国际工程造价咨询有限公司 | Cache access method for data processing system |
CN111124947B (en) * | 2018-10-31 | 2023-04-18 | 阿里巴巴集团控股有限公司 | Data processing method and device |
US11360891B2 (en) * | 2019-03-15 | 2022-06-14 | Advanced Micro Devices, Inc. | Adaptive cache reconfiguration via clustering |
GB2579682B (en) * | 2019-03-25 | 2021-03-24 | Trustonic Ltd | Trusted execution environment migration method |
CN113392604B (en) * | 2021-06-04 | 2023-08-01 | 中国科学院计算技术研究所 | Dynamic capacity expansion method and system for cache under multi-CPU co-encapsulation architecture based on advanced encapsulation technology |
US11734180B2 (en) * | 2021-07-28 | 2023-08-22 | EMC IP Holding Company LLC | Memory efficient approach to extending cache |
US20230094030A1 (en) * | 2021-09-30 | 2023-03-30 | Advanced Micro Devices, Inc. | Cache resizing based on processor workload |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021466A (en) | 1996-03-14 | 2000-02-01 | Compaq Computer Corporation | Transferring data between caches in a multiple processor environment |
EP1182559B1 (en) | 2000-08-21 | 2009-01-21 | Texas Instruments Incorporated | Improved microprocessor |
US7076609B2 (en) * | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US7822105B2 (en) | 2003-09-02 | 2010-10-26 | Sirf Technology, Inc. | Cross-correlation removal of carrier wave jamming signals |
US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
US7554909B2 (en) * | 2005-03-21 | 2009-06-30 | Intel Corporation | Dynamic service management for multicore processors |
US20070294693A1 (en) * | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Scheduling thread execution among a plurality of processors based on evaluation of memory access data |
JP2008046685A (en) * | 2006-08-10 | 2008-02-28 | Fujitsu Ltd | Duplex system and system switching method |
US20080235454A1 (en) | 2007-03-22 | 2008-09-25 | Ibm Corporation | Method and Apparatus for Repairing a Processor Core During Run Time in a Multi-Processor Data Processing System |
US8725953B2 (en) * | 2009-01-21 | 2014-05-13 | Arm Limited | Local cache power control within a multiprocessor system |
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
US8392659B2 (en) * | 2009-11-05 | 2013-03-05 | International Business Machines Corporation | Extending cache capacity on multiple-core processor systems |
KR101697937B1 (en) | 2010-01-08 | 2017-02-01 | 삼성전자주식회사 | System and method for dynamic task migration on a multiprocessor system |
US8533505B2 (en) * | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
US8438338B2 (en) * | 2010-08-15 | 2013-05-07 | International Business Machines Corporation | Flexible use of extended cache using a partition cache footprint |
US8522251B2 (en) | 2011-01-10 | 2013-08-27 | International Business Machines Corporation | Organizing task placement based on workload characterizations |
US9038088B2 (en) * | 2011-03-10 | 2015-05-19 | Nec Laboratories America, Inc. | Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases |
US9311250B2 (en) * | 2011-12-19 | 2016-04-12 | Intel Corporation | Techniques for memory de-duplication in a virtual system |
US8924644B2 (en) | 2011-12-28 | 2014-12-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Extending cache in a multi-processor computer |
US8943343B2 (en) | 2012-06-20 | 2015-01-27 | Intel Corporation | Controlling an asymmetrical processor |
US9710303B2 (en) * | 2013-06-06 | 2017-07-18 | Empire Technology Development Llc | Shared cache data movement in thread migration |
WO2015070789A1 (en) * | 2013-11-14 | 2015-05-21 | Mediatek Inc. | Task scheduling method and related non-transitory computer readable medium for dispatching task in multi-core processor system based at least partly on distribution of tasks sharing same data and/or accessing same memory address (es) |
US9632958B2 (en) * | 2014-07-06 | 2017-04-25 | Freescale Semiconductor, Inc. | System for migrating stash transactions |
US20160077871A1 (en) * | 2014-09-17 | 2016-03-17 | Advanced Micro Devices, Inc. | Predictive management of heterogeneous processing systems |
-
2015
- 2015-01-13 US US14/595,998 patent/US9697124B2/en active Active
-
2016
- 2016-01-06 JP JP2017535789A patent/JP6355853B2/en active Active
- 2016-01-06 WO PCT/US2016/012374 patent/WO2016114961A1/en active Application Filing
- 2016-01-06 EP EP16703371.1A patent/EP3245587B1/en active Active
- 2016-01-06 CN CN201680005459.8A patent/CN107111553B/en active Active
- 2016-01-06 KR KR1020177018990A patent/KR101799253B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101799253B1 (en) | 2017-12-12 |
JP6355853B2 (en) | 2018-07-11 |
EP3245587A1 (en) | 2017-11-22 |
CN107111553A (en) | 2017-08-29 |
JP2018505476A (en) | 2018-02-22 |
EP3245587B1 (en) | 2020-07-15 |
KR20170093234A (en) | 2017-08-14 |
US20160203083A1 (en) | 2016-07-14 |
WO2016114961A1 (en) | 2016-07-21 |
US9697124B2 (en) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111553B (en) | System and method for providing dynamic caching extension in more cluster heterogeneous processor frameworks | |
CN107851040A (en) | For the system and method using cache requirements monitoring scheduler task in heterogeneous processor cluster framework | |
CN106170743B (en) | The method and system of efficiency perception heat management in multiprocessor systems on chips | |
KR102427067B1 (en) | Heterogeneous thread scheduling | |
CN103797437B (en) | For the system and method that the heat energy managed in heterogeneous multi-nucleus processor produces | |
CN109074331B (en) | Power reduced memory subsystem with system cache and local resource management | |
CN108182105B (en) | Local dynamic migration method and control system based on Docker container technology | |
US10862992B2 (en) | Resource cache management method and system and apparatus | |
US20160248125A1 (en) | Heterogeneous Battery Cell Switching | |
CN104067199A (en) | Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip | |
CN105359057A (en) | Setting computer parameters to operate the power supply within a range based on a peak power efficiency of the power supply | |
CN104460934A (en) | Scheduling method and device for multi central processing units (CPU) | |
CN109906421A (en) | Processor core based on thread importance divides | |
US20180167878A1 (en) | Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit | |
US20160019089A1 (en) | Method and system for scheduling computing | |
US20170212581A1 (en) | Systems and methods for providing power efficiency via memory latency control | |
CN108471385B (en) | Flow control method and device for distributed system | |
US20100211680A1 (en) | Apparatus and method to allocate limited resources | |
CN108512768B (en) | Access amount control method and device | |
CN113392863A (en) | Method and device for acquiring machine learning training data set and terminal | |
CN106802772A (en) | The method of data record, device and solid state hard disc | |
CN110795323A (en) | Load statistical method, device, storage medium and electronic equipment | |
Kumar et al. | A Hybrid Eagle’s Web Swarm Optimization (EWSO) technique for effective cloud resource management | |
CN116578422B (en) | Resource allocation method and electronic equipment | |
US8281091B2 (en) | Automatic selection of storage volumes in a data storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |