Systems and methods for changing memory accesses using machine learning

CN114746847BActive Publication Date: 2026-09-25MARVELL ASIA PTE LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080084479.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-04
Filing Date
2020-12-03
Publication Date
2026-09-25
Estimated Expiration
2040-12-03

Smart Images

  • Figure CN114746847B_ABST
    Figure CN114746847B_ABST
Patent Text Reader

Abstract

Systems and corresponding methods use machine learning to change memory accesses. A system includes a system controller coupled to a processing system, the processing system coupled to a memory system. The system also includes a learning system coupled to the system controller. The learning system identifies, via a machine learning process, variations related to ways to change memory accesses of the memory system to meet at least one goal. The system controller applies the identified variations to the processing system. The machine learning process employs at least one monitoring parameter to converge on a given variation of the identified and applied variations. The at least one monitoring parameter is affected by the memory accesses. The given variation enables meeting the at least one goal, such as by increasing throughput, reducing latency, reducing power consumption, reducing temperature, etc., thereby improving the processing system.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims the benefit of U.S. Provisional Application No. 62 / 943,690, filed December 4, 2019. The entire teachings of the aforementioned application are incorporated herein by reference. Background Technology

[0003] Unlike the natural intelligence exhibited by humans and animals, artificial intelligence (AI) is the intelligence displayed by machines. Machine learning is a form of AI that enables systems to learn from data such as sensor data, data from databases, or other data sources. The focus of machine learning is on automatically learning to recognize complex patterns and make intelligent decisions based on data. Machine learning seeks to build intelligent systems or machines that can automatically learn and train themselves based on data, whether explicitly programmed or requiring human intervention. Loosely mimicking neural networks in the human brain is a means of performing machine learning. Summary of the Invention

[0004] According to an exemplary embodiment, a system includes a system controller coupled to a processing system. The processing system is coupled to a memory system. The system also includes a learning system coupled to the system controller. The learning system is configured to identify variations related to the manner in which memory accesses of the memory system are altered to satisfy at least one objective via a machine learning process. The system controller is configured to apply the identified variations to the processing system. The machine learning process is configured to converge to a given variation among the identified and applied variations using at least one monitoring parameter. The at least one monitoring parameter is affected by memory accesses. The given variation enables the satisfaction of at least one objective.

[0005] At least one objective may be associated with memory utilization, memory latency, throughput, power, or temperature, or a combination thereof, within the system. However, it should be understood that at least one objective is not limited to these. For example, at least one objective may be associated with memory supply, configuration, or structure. As further disclosed below, at least one objective may be measured, for example, via at least one monitoring parameter that can be monitored by at least one monitoring circuit. Throughput, power, or temperature may be system or memory throughput, power, or temperature.

[0006] The methods may include changing at least one memory address, memory access order, memory access mode, or a combination thereof. However, it should be understood that the methods are not limited to these. The identified variations may include variations related to at least one memory address, memory access order, memory access mode, or a combination thereof. However, it should be understood that the identified variations are not limited to these.

[0007] The methods may include relocating data in the memory system or invalidating data in the memory system. However, it should be understood that the methods are not limited to these. The identified variations may include variations related to relocation, invalidation, or a combination thereof. However, it should be understood that the identified variations are not limited to these.

[0008] The method used to change memory access can be based on the architecture of the memory system. However, it should be understood that the method is not limited to being based on the architecture of the memory system.

[0009] Applying the identified variations to a processing system may include modifying the instruction flow, instruction pipeline, clock speed, voltage, idle time, field-programmable gate array (FPGA) logic, or combinations thereof. However, it should be understood that modifications are not limited to these.

[0010] The system controller can also be configured to perform modifications or transmit at least one message to the processing system, which is then configured to perform modifications.

[0011] At least one monitoring parameter may include memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, or a combination thereof. However, it should be understood that at least one monitoring parameter is not limited to these. Throughput, power, or temperature may be system or memory throughput, power, or temperature.

[0012] The system may also include at least one monitoring circuit, an example embodiment of which is configured to generate at least one monitoring parameter by periodically monitoring at least one parameter associated with memory access over time.

[0013] The system can be a physical system or a simulation model of a physical system. The simulation model can be periodically accurate relative to the physical system (e.g., in digital cycles). At least one monitoring circuit can be at least one physical monitoring circuit of the physical system or the simulation model, or at least one simulation monitoring circuit model of at least one physical monitoring circuit.

[0014] The machine learning process can be configured to employ genetic methods in combination with neural networks.

[0015] The identified variants may include the population of the corresponding experimental variants. The genetic method can be configured to evolve the population on a population-by-population basis. The learning system can also be configured to transmit the evolved population to the system controller on a population-by-population basis. To apply the identified variants, the system controller can also be configured to apply the corresponding experimental variants of the evolved population to the processing system on a population-by-population basis.

[0016] The neural network can be configured to determine the appropriate effect of applying a corresponding experimental variant to a treatment system based on at least one monitored parameter. The neural network can also be configured to assign a corresponding order to a corresponding experimental variant based on the determined effect and at least one objective. Furthermore, the neural network can be configured to transmit the corresponding order to the system controller on a per-experimental-variable basis.

[0017] The system controller can also be configured to transmit the corresponding ranking of a population to the learning system. The corresponding ranking of the population can include the corresponding ranking of the corresponding experimental variant. The ranking can be assigned by a neural network and transmitted to the system controller. The genetic method can be configured to evolve the current population into the next population based on a given ranking of the population, where the given ranking corresponds to the current population.

[0018] The identified variants can include the population of the corresponding experimental variants. The genetic method can be configured to evolve the population one population at a time. A given variant can be a given experimental variant that is consistently included in the evolved population by the genetic method. The genetic method can converge to a given variant based on the corresponding ordination assigned to it by the neural network.

[0019] The system may also include a target system and an experimental system. A system controller may be coupled to both the target system and the experimental system. The processing system may be an experimental processing system of the experimental system. The memory system may be an experimental memory system of the experimental system. The target system may include a target processing system coupled to the target memory system. The experimental processing system may be a first-cycle exact model of the target processing system. The experimental memory system may be a second-cycle exact model of the target memory system. The system controller may also be configured to apply a given variation to the target processing system.

[0020] The target processing system and the target memory system can be physical systems. The first-cycle accurate model and the second-cycle accurate model can be physical representations or simulation models of the target processing system and the target memory system, respectively.

[0021] According to another exemplary embodiment, a method includes: identifying variations related to the manner in which memory accesses of a memory system coupled to a processing system are altered via a machine learning process to satisfy at least one objective. The method further includes applying the identified variations to the processing system, and converging, via the machine learning process, on a given variation among the identified and applied variations, using at least one monitoring parameter. The at least one monitoring parameter is affected by memory accesses. The given variation enables the satisfaction of at least one objective.

[0022] Other alternative method embodiments are parallel to the method embodiments described above in conjunction with the example system embodiments.

[0023] According to yet another exemplary embodiment, a non-transitory computer-readable medium is encoded with a sequence of instructions that, when loaded and executed by at least one processor, cause the processor to perform a machine learning process. The machine learning process identifies variations related to the manner in which memory accesses of a memory system are modified to satisfy at least one objective. The memory system is coupled to a processing system. The identified variations are applied to the processing system. The instruction sequence may also cause the at least one processor to employ at least one monitoring parameter during the machine learning process to converge to a given variation among the identified and applied variations. The at least one monitoring parameter is affected by memory accesses. The given variation enables the satisfaction of at least one objective.

[0024] The alternative non-transitory computer-readable medium embodiments are parallel to those described above in conjunction with the exemplary system embodiments.

[0025] According to yet another exemplary embodiment, a system includes: means for identifying, via a machine learning process, a variation for satisfying at least one objective, the variation relating to a change in the manner of memory access of a memory system coupled to a processing system. The system further includes means for applying the identified variation to the processing system, and means for converging the machine learning process to a given variation among the identified and applied variations using at least one monitoring parameter. The at least one monitoring parameter is affected by memory access. The given variation enables the satisfaction of at least one objective.

[0026] It should be understood that the exemplary embodiments disclosed herein may be implemented in the form of a method, apparatus, system or a computer-readable medium thereon containing program code. Attached Figure Description

[0027] As illustrated in the accompanying drawings, the above will become apparent from the following more detailed description of exemplary embodiments, in which the same reference numerals denote the same parts in different views. The drawings are not necessarily drawn to scale, but rather the emphasis is on illustrating the embodiments.

[0028] Figure 1A This is a block diagram of an exemplary embodiment of a system having an exemplary embodiment of a learning system on which a machine learning process (not shown) is implemented.

[0029] Figure 1B yes Figure 1A A block diagram of an exemplary embodiment of the system.

[0030] Figure 2 This is a block diagram illustrating an exemplary embodiment of the machine learning process in the system.

[0031] Figure 3This is a block diagram of another exemplary embodiment of a system for using machine learning to modify memory access.

[0032] Figure 4 This is a flowchart of an exemplary embodiment of a method for using machine learning to modify memory access.

[0033] Figure 5 This is a block diagram of an exemplary embodiment of a system for improving a processing system.

[0034] Figure 6 This is a flowchart of an exemplary embodiment of a method for improving a processing system.

[0035] Figure 7 This is a block diagram of an exemplary internal structure of a computer, optionally within the embodiments disclosed herein. Detailed Implementation

[0036] An exemplary embodiment is described below.

[0037] It should be understood that while the exemplary embodiments disclosed herein may be described with respect to changes in memory access to improve the processing system, the embodiments disclosed herein are not limited thereto and may be used to change other aspects of the processing system to achieve its improvement.

[0038] The exemplary embodiments disclosed herein employ machine learning to modify (e.g., manipulate) memory access, thereby altering aspects such as performance, latency, or power consumption as further disclosed below. It should be understood that modifying memory access is not limited to modifying performance, latency, power consumption, or combinations thereof. According to various aspects of this disclosure, machine learning methods can encompass a wide range of approaches, including supervised and unsupervised methods. While exemplary embodiments of the machine learning methods disclosed herein may be described as employing genetic methods and neural networks, it should be understood that additional or alternative machine learning methods(s) may be employed to implement the exemplary embodiments disclosed herein, such as by using, for example, support vector machines (SVMs), decision trees, Markov models, hidden Markov models, Bayesian networks, cluster-based learning, other learning machines, or combinations thereof.

[0039] Developing methods to improve processing systems by changing memory addresses or their access patterns can be difficult and will vary over time and based on memory access patterns for a given instruction stream. Current solutions include trial-and-error techniques that are manually executed by the user and utilize the user's time and effort to study historical patterns, as well as changing the instruction stream to work better with current hardware architectures.

[0040] The exemplary embodiments disclosed herein create a system that uses machine learning and control systems to manipulate memory addresses (potentially in different ways for various ranges), manipulate memory access order, or potentially relocate (or invalidate) memory blocks. Furthermore, the learning system can provide feedback on how the processing system is modified to meet one or more targeted objectives of the system incorporated into the learning system. Such targeted objectives may include reducing latency, increasing throughput, or reducing power consumption, but are not limited to these and may include one or more other objectives considered useful for system self-optimization. For the user, identifying how to optimize a small number of variables in the past can become very difficult, as discussed below... Figure 1A The disclosed exemplary embodiments of machine learning and control systems can adapt and learn in real time to perform complex manipulations that may not be apparent to the user at all.

[0041] Figure 1A This is a block diagram of an exemplary embodiment of a system 100 having a learning system 108 on which a machine learning process (not shown) is implemented. The learning system 108 identifies and modifies memory systems (such as memory systems) via a machine learning process. Figure 1B The variations (further disclosed below) relating memory accesses by the processing system 104 to the memory system 106 in order to satisfy one or more objectives in system 100, such as increasing throughput, reducing latency, reducing power consumption, reducing temperature, etc., can be system throughput, power consumption, or temperature. By employing machine learning processes in system 100, user 90 (e.g., software / hardware engineer) can avoid trial-and-error experiments to determine how to change memory accesses to satisfy one or more objectives.

[0042] For example, user 90 does not need to spend time and effort developing and testing methods to modify memory accesses to satisfy one or more objectives. Such methods may be difficult to develop because they may need to vary over time and based on memory access patterns of a given instruction stream being executed by a processing system accessing the memory system. Furthermore, the effectiveness of such methods depends on the hardware architecture of system 100, and therefore user 90 needs to spend time customizing (and testing) each hardware architecture. Such customization may include studying historical memory access patterns and modifying the instruction stream of different hardware architectures in an effort to satisfy one or more objectives for each different hardware architecture. According to an exemplary embodiment, learning system 108 uses machine learning processes, such as those disclosed below. Figure 1BThe machine learning process 110 can adapt and learn in real time to perform complex manipulations of memory accesses that may not be apparent to the user 90 at all.

[0043] Figure 1B The above is publicly available. Figure 1A A block diagram of an exemplary embodiment of system 100. Figure 1B In an exemplary embodiment, system 100 includes a system controller 102 coupled to a processing system 104. The processing system 104 may be an embedded processor system, a multi-core processing system, a data center system, or other processing system. However, it should be understood that the processing system 104 is not limited thereto. The processing system 104 is coupled to a memory system 106. The memory system 106 includes at least one memory (not shown). System 100 also includes a learning system 108 coupled to the system controller 102. As further disclosed below, the learning system 108 may be referred to as a self-modifying learning system capable of adapting the processing system 104 to satisfy at least one objective 118 based on the effects of applying changes to it. The at least one objective 118 may be interchangeably referred to herein as at least one optimization criterion.

[0044] The learning system 108 is capable of autonomous operation; that is, the learning system 108 is free to explore and develop its own understanding of variations (i.e., changes or alterations) in the processing system 104 to enable the satisfaction of at least one objective 118 without explicit programming. The learning system 108 is configured, via a machine learning process 110, to identify variations 112 relating to the manner in which memory accesses 114 of the memory system 106 are altered to satisfy at least one objective 118. The system controller 102 is configured to apply 115 of the identified variations 112 to the processing system 104. The machine learning process 110 is configured to converge to a given variation (not shown) among the identified and applied variations 112 using at least one monitoring parameter 116. The at least one monitoring parameter 116 is affected by memory accesses 114. The given variation enables the satisfaction of at least one objective 118. The at least one monitoring parameter 116 may represent memory utilization, memory latency, throughput, power, or temperature within the system 100 affected by memory accesses 114. Throughput, power, or temperature can be the throughput, power, or temperature of a system or memory.

[0045] According to an exemplary embodiment, the machine learning process 110 can independently explore different ways to perform changes, and similarly, the machine learning process 110 can determine the manner. At least one objective 118 may be associated with memory utilization, memory latency, throughput, power, or temperature, or combinations thereof, within system 100. However, it should be understood that at least one objective 118 is not limited thereto. For example, at least one objective 118 may be associated with memory supply, configuration, or structure. As further disclosed below, at least one objective may be measured, for example, via at least one monitoring parameter 116 that may be monitored by at least one monitoring circuit. Throughput, power, or temperature may be system or memory throughput, power, or temperature. The manner may include changing at least one memory address, memory access sequence, memory access mode, or combinations thereof. However, it should be understood that the manner is not limited thereto. According to an exemplary embodiment, memory system 106 may include at least one dynamic random access memory (DRAM), and as described below regarding Figure 3 Further disclosed, the method may include changing library access to at least one DRAM bank. However, it should be understood that the method is not limited to this.

[0046] The identified variation 112 may include variations related to at least one memory address, memory access order, memory access mode, or a combination thereof. At least one memory address, memory access order, memory access mode, or a combination thereof may be associated with a sequence of instructions (not shown) executed by the processing system 104. However, it should be understood that the identified variation 112 is not limited thereto. The method may include relocating or invalidating data in the memory system 106. However, it should be understood that the method is not limited thereto. The identified variation 112 may include variations related to relocation, invalidation, or a combination thereof. However, it should be understood that the identified variation 112 is not limited thereto. The method for changing memory access 114 may be based on, as described below regarding... Figure 3 The structure of the memory system 106 is further disclosed. However, it should be understood that the approach is not limited to the structure based on the memory system 106.

[0047] Applying the identified variation 112 to the processing system 104 may include modifying the instruction stream, instruction pipeline, clock speed, voltage, idle time, field-programmable gate array (FPGA) logic, or combinations thereof, of the processing system 104. However, it should be understood that the modifications are not limited thereto. The system controller 102 may also be configured to perform the modification or transmit at least one message (not shown) to the processing system 104, which in turn is configured to perform the modification.

[0048] At least one monitoring parameter 116 may include memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, or a combination thereof. However, it should be understood that at least one monitoring parameter 116 is not limited thereto. Throughput, power, or temperature may be system or memory throughput, power, or temperature. System 100 may also include at least one monitoring circuit (not shown) configured to periodically monitor at least one parameter associated with memory access 106 over time to generate at least one monitoring parameter 116.

[0049] System 100 can be a physical system or a simulation system model of a physical system. The simulation system model can be periodically accurate relative to the physical system (e.g., on a digital cycle). See the following regarding... Figure 3 Further disclosed, at least one monitoring circuit may be at least one physical monitoring circuit of a physical system or a simulation system model, or at least one simulation monitoring circuit model of at least one physical monitoring circuit.

[0050] According to an exemplary embodiment, the machine learning process 110 can be configured to employ a genetic approach combined with a neural network, such as the following regarding... Figure 2 The disclosed genetic method 220 and neural network 222 (which may also be referred to interchangeably as inference engine) are described.

[0051] Figure 2 This is a block diagram of an exemplary embodiment of the machine learning process 210 in system 200. System 200 can be used as disclosed above. Figure 1A and Figure 1B The system 100, and similarly, the machine learning process 210 can be used as the machine learning process 110 disclosed above.

[0052] exist Figure 2 In an exemplary embodiment, system 200 includes a system controller 202 coupled to processing system 204. Processing system 204 is coupled to memory system 206. System 200 also includes a learning system 208 coupled to system controller 202. Learning system 208 is configured to identify variations 212 related to the manner in which memory accesses 214 of memory system 206 are altered to satisfy at least one objective 218 via a machine learning process 210.

[0053] System controller 202 is configured to apply 215 to the processing system 204 the identified variant 212. Machine learning process 210 is configured to converge to a given variant (not shown) among the identified and applied variants 212 using at least one monitoring parameter 216. The at least one monitoring parameter 216 is affected by memory access 214. The given variant enables at least one objective 218 to be satisfied.

[0054] The machine learning process 210 is configured to employ a genetic method 220 in combination with a neural network 222. The neural network 222 can be at least one neural network, such as a convolutional neural network (CNN), a recurrent neural network (RNN), or a combination thereof. However, it should be understood that the neural network 222 is not limited to CNNs, RNNs, or combinations thereof, and can be any suitable artificial neural network (ANN) or combination of neural networks.

[0055] According to one exemplary embodiment, genetic method 220 evolves mutations (which may be interchangeably referred to herein as alterations, modifications, or adjustments) for changing memory access 114 based on one or more specific manners (e.g., one or more methods) for such changes, and neural network 222 determines the corresponding effects of the changes, enabling genetic method 220 to evolve additional mutations based on the changes. According to one exemplary embodiment, genetic method 220 may evolve the manners into one or more new manners (e.g., one or more methods) for changing memory access 214.

[0056] The variants 212 identified by genetic method 220 include populations 224 of corresponding experimental variants, such as an initial population 224-1 including the corresponding experimental variant 226-1 in the identified variants 212 and an nth population 224-n including the corresponding experimental variants 226-n in the identified variants 212. Genetic method 220 can be configured to evolve populations 224 on a population-by-population basis.

[0057] Genetic methods, also known in the art as genetic algorithms (GA), can be considered as a stochastic search method acting on a population of possible solutions to a problem. Genetic methods are loosely based on population genetics composition and selection. Possible solutions can be thought of as being encoded as “genes,” which are members of a solution generated by “mutating” members of the current population and combining solutions to form new solutions. Solutions considered “better” (relative to other solutions) can be selected for reproduction and mutation, while other solutions, i.e., those considered “worse” (relative to other solutions), are discarded. Genetic methods can be used to search the space of potential solutions (e.g., the population) to find a space that solves the problem to be solved. According to an exemplary embodiment, neural network 222 ranks the validity of proposed solutions generated by genetic method 220, and the genetic method evolves the next set of solutions (e.g., the population) based on the ranking.

[0058] According to an exemplary embodiment, genetic method 220 can modify the current population based on the corresponding ranking (e.g., score) of its members, i.e., the corresponding experimental variants ranked by neural network 222. The current population can be a recently applied population of processing system 204 by system controller 202. Genetic method 220 can be configured to, based on the corresponding ranking, discard a given percentage or number of corresponding experimental variants of the current population, leaving a predetermined number of corresponding experimental variants unchanged, replicate corresponding experimental variants based on the corresponding ranking, and add new corresponding experimental variants, thereby evolving the current population into the next population.

[0059] For example, the manner (e.g., method) used to change memory access 214 may include rearranging the address bits used to access the memory system 206. However, it should be understood that the manner is not limited to this. Genetic method 220 may generate an initial population with corresponding mutations based on a given population of size ten, the initial population having, for example, ten times (but not limited to) rearranged memory addresses. However, it should be understood that the given population size is not limited to ten. The corresponding mutation may cause the memory addresses to be randomly rearranged ten times, but is not limited to this. Furthermore, it should be understood that the memory is not limited to being randomly rearranged.

[0060] After the corresponding mutations are applied to the processing system 204, the neural network 222 can rank each member of the initial population based on the corresponding effect determined from at least one monitoring parameter 216 and based on at least one objective 218. For example, a corresponding mutation with a higher-level corresponding effect, indicating that at least one objective 218 is satisfied, can be assigned a higher corresponding ranking relative to a corresponding mutation with a lower-level corresponding effect. Such ranking assignment of corresponding mutations produces a ranked population, such as a given-ranked population in a population 230 of a population 224.

[0061] Genetic method 220 may take, for example, the top three solutions (but not limited to), that is, the top three highest-ranking mutations (i.e., members) in the ranked population, and discard the remaining members. Genetic method 220 may copy the highest-ranking member for the first number of times, copy the next highest-ranking member for the second number of times, and add new members (e.g., mutated members) to produce a new population with the corresponding mutations, the new population having a given population size, i.e., a given number of corresponding members.

[0062] Genetic method 220 can iteratively generate new generations to be applied and sorted until a member (i.e., a given corresponding variant) is consistently (e.g., a given number of times) sorted in a given order across generations of population 224. At this point, genetic method 220 is understood to have converged to the given corresponding variant, as further disclosed below. Figure 3The given variation 336. It should be understood that the genetic approach 220 is not limited to the populations 224 disclosed herein.

[0063] The learning system 208 can also be configured to transmit the evolved population 224 to the system controller 202 on a population-by-population basis. In order to apply the identified variant 212, the system controller 202 can also be configured to apply 215 of the corresponding experimental variants (e.g., 224-1…224-n) of the evolved population 224 to the processing system 204 on a population-by-population basis.

[0064] The neural network 222 can be configured to determine, based on at least one monitoring parameter 216, the corresponding effect (not shown) of applying the corresponding experimental variant (e.g., 224-1…224-n) to the processing system 204. The neural network 222 can also be configured to assign a corresponding order 228 to the corresponding experimental variant (e.g., 224-1…224n) based on the determined effect and at least one objective 218. The neural network 222 can also be configured to transmit the corresponding order 228 to the system controller 202 on a per-experimental-variable basis.

[0065] System controller 202 can also be configured to transmit the corresponding sorts of population 230 in population 224 to learning system 208. The corresponding sorts of population 230 include the corresponding sorts of the corresponding experimental variants (i.e., members of the corresponding population). For example, corresponding sort 228 includes corresponding sort 228-1 for the corresponding experimental variant 226-1 of population 224-1. Similarly, corresponding sort 228 includes corresponding sort 228-n for the corresponding experimental variant 226-n of population 224-n. Corresponding sort 228 can be assigned by neural network 222 and transmitted to system controller 202.

[0066] Genetic method 220 can be configured to evolve the current population (e.g., 224-n) in population 224 into the next population (e.g., 224-(n+1) (not shown)) in population 224 based on a given ordered population 230-n in population 230, where the given ordered population 230-n corresponds to the current population (e.g., 224-n).

[0067] Apart from the initial population (e.g., 224-1), each population in population 224 evolves from a previous population. According to an exemplary embodiment, the initial population can be generated such that it includes a corresponding experimental variant that is a random variant related to the mode. However, it should be understood that the initial population is not limited to being generated with random variants. Since each population after the initial population evolves from a previous population, population 224 can be referred to as a generation of the population, where the corresponding experimental variant of a given generation evolves based on the corresponding experimental variant of the previous population. Therefore, the genetic method 220 is configured to evolve population 224 on a population-by-population basis.

[0068] According to one exemplary embodiment, a given variant is a given experimental variant consistently included in the evolving population 224 by a genetic method 220. The genetic method 220 can converge to the given variant based on the corresponding ordering assigned to it by the neural network 222. According to one exemplary embodiment, the given variant is applied to a target system, such as given variant 336 being applied to the following disclosed... Figure 3 The target system is 332.

[0069] Figure 3 This is a block diagram of another exemplary embodiment of a system 300 for using machine learning to modify memory access. System 300 can be used as described above. Figure 1A and Figure 1B System 100 or Figure 2 System 200. System 300 includes a target system 332 and a test system 334. According to an exemplary embodiment, the test system 334 is a test system. The test system 334 modifies memory access 314a in the test system 334 to determine a method of modifying memory access 314b in the target system 332 to satisfy at least one or more objectives 318, without affecting the operation of the target system 332 for such determination. The memory access 314a of the test system 334 is periodically precise relative to the memory access 314b of the target system 332. Memory access 314a and memory access 314b may represent multiple command streams, each containing read or write commands combined with corresponding addresses of memory access locations.

[0070] According to one exemplary embodiment, but without limitation, at least one objective 318 may be to improve the DRAM utilization of the dynamic random access memory (DRAM) in the target memory system 306b of the target system 332. For example, at least one objective 318 may include a given objective of distributing such utilization across multiple libraries of DRAM, such that threads / cores of the target processing system 304b accessing the same library do not hit (i.e., access) the same library discontinuously, and the library utilization is uniformly distributed among the libraries of DRAM. Utilization may be measured, for example, by a monitoring circuit (not shown) configured to monitor the percentage of idle cycles of a data channel (e.g., a DQ channel) and periodically send such percentage to the neural network 322 over time.

[0071] Thus, the manner in which memory access 314b of the target memory system 306b is modified can be based on the structure of the target memory system 306b (e.g., a library). A given monitoring parameter (not shown) in at least one monitoring parameter 316 can represent such utilization. However, it should be understood that the at least one monitoring parameter 316 is not limited thereto. According to an exemplary embodiment, the target processing system 304b includes at least one processor (not shown), and the target memory system 306b includes a plurality of memories that can be accessed by threads (not shown) that execute on the target processing system 304b and therefore on the experimental processing system 304a.

[0072] Another objective of at least one objective 318 may be to maintain or improve the average latency in the target processing system 304b. Such an average latency may be measured, for example, by measuring the pause time of one or more threads while waiting for data from the target memory system 306b, and system 300 includes at least one monitoring parameter 316 that can reflect the same measurement as in the experimental system 334. However, it should be understood that at least one objective 318 is not limited to the objectives disclosed herein, and at least one monitoring parameter 316 is not limited to the monitoring parameters disclosed herein. According to an exemplary embodiment, the experimental system 334 may be used to determine the optimal method for changing memory access 314b in the target system 332 to satisfy at least one objective 318.

[0073] The test system 334 is a periodically accurate representation of the target system 332, which can be referred to as the "real" system and is a physical system. Thus, the target processing system 304b and the target memory system 306b of the target system 332 are physical systems. The target system 332 can be deployed in the field and can be "in service," while the test system 334 is a test system and is considered to be in a "non-service" state. According to an exemplary embodiment, the test system 334 can be a replication system of the target system. However, it should be understood that the test system 334 is not limited thereto. The test system 334 includes a test processing system 304a, which is a first periodically accurate model of the target processing system 306b. The test system 334 also includes a test memory system 306a, which is a second periodically accurate model of the target memory system 306b of the target system 332.

[0074] The first and second cycle-accurate models can be physical or simulation models of the target processing system 304b and the target memory system 306b, respectively. According to an exemplary embodiment, an instruction stream 311 representing the instruction stream of the target processing system 304b can optionally be transmitted to the experimental processing system 304a to further ensure that the experimental system 334 is cycle-accurate relative to the target system 332. According to an exemplary embodiment, the experimental system 334 simulates the target system 332 in real time, and the experimental system 334 is interchangeably referred to herein as a shadow system of the target system 332.

[0075] exist Figure 3 In an exemplary embodiment, the system includes a system controller 302 coupled to the target system 332 and the test system 334. The test system 334 includes a test processing system 304a coupled to the test memory system 306a, and the target system 334b ​​includes a test processing system 304b coupled to the test memory system 306b. According to an exemplary embodiment, the above-disclosed Figure 1B and Figure 2 The processing systems 104 and 204 correspond to Figure 3 The test system 334 includes a test processing system 304a and a test storage system 306a. According to an exemplary embodiment, the above relates to... Figure 1B and Figure 2 A given publicly disclosed variant can be one of the following: Figure 3 The given variant is 336.

[0076] Figure 3 The system 300 also includes a learning system 308 coupled to the system controller 302. The learning system 308 can be used as disclosed above. Figure 1B and Figure 2The learning systems 108 and 208. Learning system 308 is configured via machine learning process 310 to identify variations 312 relating to the manner in which memory access 314a of the trial memory system 306a is altered to satisfy at least one objective 318. According to an exemplary embodiment, machine learning process 310 is configured to employ a genetic method 320 in combination with a neural network 322, as disclosed in further detail below. System controller 302 acts on the output from neural network 322, such as a corresponding sort 328 disclosed further below, and causes (e.g., initiates) a new population of trial variations generated by genetic method 320.

[0077] The new population can be an initial population or an (n+1)th generation population to which the corresponding experimental variants applied by the system controller 302 to the experimental treatment system 304a are generated. For example, the initial population can be initiated via a command (not shown) transmitted by the system controller 302 to the learning system 308. The (n+1)th generation population can be initiated by the system controller 302, for example, by transmitting the corresponding sorted population of the nth generation population. The genetic method 320 can use the sorted nth generation population to evolve the (n+1)th generation population from it. The sorted nth generation population represents the current population, which has had its corresponding experimental variants (i.e., population members) applied by the system controller 302 to the experimental treatment system 304a, and whose population members are sorted by the neural network 322 based on the effect of such application as reflected by at least one monitoring parameter 316.

[0078] According to an exemplary embodiment, the neural network 322 employs at least one monitoring parameter 316 to determine the corresponding effect of applying a corresponding experimental variant from variant 312 to the experimental processing system 304a. Variants 312 include a group 324 having corresponding experimental variants for changing memory access 314a. For example, a corresponding experimental variant could be a test (application) of a new address hash or address bit arrangement in an experimental system 334 for accessing the experimental memory system 306a. However, it should be understood that the corresponding experimental variant is not limited to this.

[0079] The new hash or address bit arrangement can be determined by an autonomously operable genetic method 320, i.e., the genetic method 320 is free to operate and try different ways to change memory access. According to an exemplary embodiment, the neural network 322 has been trained to recognize content that changes memory access 314a to, but is not only temporary (but it can still be temporary to some extent) (i.e., mutation or alteration), and the neural network 322 should be made for the “real” system (i.e., the target system 332) so that the target system 332 can satisfy at least one objective 318.

[0080] The neural network 322 can be further trained to identify whether the corresponding effects of the changes are sufficiently deep to be implemented in the service, or whether the target system 332 should be temporarily stopped and reconfigured to apply the given variation 336. Such training of the neural network 322 can be at least partially conducted in a laboratory setting using data from users (such as those disclosed above). Figure 1A The user-driven data (not shown) of user 90) is used for execution. Such user-driven data can be captured over time using dedicated monitoring circuitry designed to monitor specific parameters of the experimental system 334, such as memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, etc., and the user can tag the captured data with corresponding labels indicating whether one or more of the given objectives (such as memory utilization, memory latency, throughput, power, temperature, etc.) in at least one objective 318 have been met or to what extent at least one objective 318 has been met. Therefore, the neural network 322 is trained to understand at least one objective 318. Throughput, power, or temperature can be system or memory throughput, power, or temperature.

[0081] A neural network 322 can be used instead of this method because the neural network 322 can identify the effects of changes in memory access (i.e., experimental variants) over time via at least one monitoring parameter 316, and the neural network 322 can also filter out events such as spikes or system turbulence that are considered temporary and therefore not feasible improvements as represented by these effects. Thus, the neural network 322 is well-suited for ranking applied experimental variants.

[0082] The neural network 322 can be static or dynamic. For example, the neural network 322 can be initially trained and kept static. Alternatively, the neural network 322 can adapt over time, for example, by adding / removing / modifying layers (not shown) of nodes (not shown) based on effects determined via at least one monitoring parameter 316, which is related to a corresponding experimental variation generated by the genetic method 320 that causes such an effect once applied.

[0083] Memory access 314a is periodically precise relative to memory access 314b of the target memory system 306b. System controller 302 is configured to apply 315 to the identified variant 312 in the test processing system 304a. (As stated above regarding...) Figure 2 The disclosed machine learning process 310 is configured to converge to a given variant 336 among the identified and applied variants 312 using at least one monitoring parameter 316. The at least one monitoring parameter 316 is affected by memory access 314a.

[0084] A given variant 336 can be a specific variant among all variants 312 that enables at least one objective 318 to be satisfied in the experimental system 334 and therefore in the target system 332. The experimental system 334 is a periodic exact representation of the target system 332, and similarly, since the given variant 336 enables the experimental system 334 to satisfy at least one objective 318, the given variant 336 can then be applied to the target processing system 304b so that the target system 332 can satisfy at least one objective 318. However, the service of the target system 332 is not affected by the machine learning process 310 used to determine the given variant 336 that can satisfy at least one objective 318.

[0085] exist Figure 3 In an exemplary embodiment, the identified variant 312 includes a population 324 of corresponding experimental variants, such as an initial population 324-1 including a corresponding experimental variant 326-1 in the identified variant 312, and an nth population 324-n including a corresponding experimental variant 326-n in the identified variant 312. The genetic method 320 is configured to evolve population 324 on a population-by-population basis.

[0086] The learning system 308 is also configured to transmit the evolved population 324 to the system controller 302 on a population-by-population basis. In order to apply the variant 312 identified by 315, the system controller 302 is also configured to apply the corresponding experimental variant (e.g., 326-1…326-n) of the evolved population 324 (e.g., 324-1…324-n) to the processing system 304 on an experimental variant-by-experiment basis.

[0087] The neural network 322 is configured to determine, based on at least one monitoring parameter 316, the corresponding effect (not shown) of applying a corresponding experimental variant (e.g., 324-1…324-n) to the experimental treatment system 304a. The neural network 322 can also be configured to assign a corresponding order 328 to the corresponding experimental variant (e.g., 324-1…324-n) based on the determined effect and at least one objective 318. The neural network 322 can also be configured to transmit the corresponding order 328 to the system controller 302 on a per-experimental-variable basis.

[0088] System controller 302 can also be configured to transmit a group 330 of corresponding sorts from population 324 to learning system 308. The group 330 of corresponding sorts includes the corresponding sorts of the corresponding experimental variants, i.e., the corresponding sorts of the members (experimental variants) of the corresponding population. For example, corresponding sort 328 includes corresponding sort 328-1 for the corresponding experimental variant 326-1 of population 324-1. Similarly, corresponding sort 328 includes corresponding sort 328-n for the corresponding experimental variant 326-n of population 324-n. Corresponding sort 328 can be assigned by neural network 322 and transmitted to system controller 302.

[0089] The genetic method 320 is configured to evolve the current population (e.g., 324-n) in population 324 into the next population (e.g., 324-(n+1) (not shown)) in population 324 based on a given correspondingly ordered population 330-n in population 330, where the given correspondingly ordered population 330-n corresponds to the current population (e.g., 324-n).

[0090] Apart from the initial population (e.g., 324-1), each population in population 324 evolves from a previous population. According to an exemplary embodiment, the initial population can be generated such that it includes a corresponding experimental variant that is a random variant related to the mode. However, it should be understood that the initial population is not limited to being generated with random variants. Since each population after the initial population evolves from a previous population, population 324 can be referred to as a generation of the population, where the corresponding experimental variant of a given generation evolves based on the corresponding experimental variant of the previous population. Therefore, the genetic method 320 is configured to evolve population 324 on a population-by-population basis.

[0091] According to an exemplary embodiment, a given variant 336 is a given experimental variant that is consistently included in the evolved population 324 by genetic method 320 and assigned a consistent order by neural network 322. (As stated above regarding...) Figure 2 The disclosed genetic method 320 converges to a given variant 336 based on the corresponding ordering assigned to the given variant 336 by the neural network 322. The system controller 302 is also configured to apply the given variant 336 to the target processing system 304b, thereby enabling at least one objective 318 in the target system 332 to be satisfied.

[0092] Figure 4This is a flowchart 400 of an exemplary embodiment of a method for using machine learning to modify memory access. The method begins (402) and, via a machine learning process, identifies variations relating to the manner in which memory access of a memory system coupled to a processing system is modified to satisfy at least one objective (404). The method applies the identified variations to the processing system (406). The method, via the machine learning process, converges to a given variation among the identified and applied variations, the at least one monitoring parameter being affected by memory access, such that at least one objective can be satisfied (408). The method then ends in the exemplary embodiment (410).

[0093] Methods may include changing at least one memory address, memory access order, memory access mode, or a combination thereof. The identified variation may include variations related to at least one memory address, memory access order, memory access mode, or a combination thereof. Methods may include relocating or invalidating data in the memory system. The identified variation may include variations related to relocation, invalidation, or a combination thereof. The method used to change memory access may be based on the structure of the memory system.

[0094] Applying the identified variations to a processing system may include modifying the processing system’s instruction flow, instruction pipeline (e.g., adding or modifying one or more instructions), clock speed, voltage, idle time, field-programmable gate array (FPGA) logic (e.g., adding lookup tables (LUTs) to add acceleration or other modifications) or a combination thereof.

[0095] The method may also include generating at least one monitoring parameter by periodically monitoring at least one parameter associated with memory access over time. The at least one monitoring parameter may include memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, or a combination thereof. However, it should be understood that the at least one monitoring parameter is not limited to these. Throughput, power, or temperature may be system or memory throughput, power, or temperature.

[0096] The method may also include using genetic methods combined with neural networks to implement the machine learning process.

[0097] The identified variant may include a population of experimental variants, and the method may also include evolving the population on a population-by-population basis using genetic methods. The method may also include transferring the evolved population on a population-by-population basis. Applying the identified variant may include applying experimental variants of the evolved population. The application may be performed on a population-by-population basis.

[0098] The method may further include using a neural network to determine the corresponding effect of applying experimental variants to a treatment system based on at least one monitoring parameter. The method may also include using a neural network to assign corresponding rankings to experimental variants based on the determined corresponding effects and at least one objective. The method may further include transmitting the corresponding rankings based on each experimental variant to a system controller via a neural network.

[0099] The method may further include transmitting a population with a corresponding order from the system controller to the learning system implementing the machine learning process. The population with a corresponding order may include a corresponding order for the corresponding experimental mutation. The corresponding order may be assigned by a neural network and transmitted to the system controller. The method may also include, via genetic methods, evolving the current population into the next population based on a given population with a corresponding order corresponding to the current population.

[0100] The identified variants may include a population of experimental variants, and the method may also include evolving the population on a population-by-population basis using genetic methods. A given variant may be a given experimental variant that is consistently included in the evolved population by genetic methods. The method may also include converging to a given variant based on a corresponding ordination assigned to it by a neural network using genetic methods.

[0101] The processing system can be an experimental processing system of the experimental system. The memory system can be an experimental memory system of the experimental system. The experimental processing system can be a first-cycle exact model of the target processing system of the target system. The experimental memory system can be a second-cycle exact model of the target memory system of the experimental system. The method may also include applying a given variation to the target processing system of the target system.

[0102] Figure 5 This is a block diagram of an exemplary embodiment of system 500 for improving processing system 504. System 500 includes a first learning system 508a coupled to system controller 502. The first learning system 508a is configured to identify a variant 512 for changing the processing of processing system 504 to satisfy at least one objective 518. System controller 502 is configured to apply 515 of the identified variant 512 to processing system 504. System 500 also includes a second learning system 508b coupled to system controller 502. The second learning system 508b is configured to determine the corresponding effects (not shown) of the identified and applied variant 512. The first learning system 508a is also configured to converge to a given variant (not shown) in variant 512 based on the determined corresponding effects. The given variant enables the satisfaction of at least one objective 518.

[0103] The first learning system 508a can be configured to use a genetic method 520 to identify mutations 512, and the second learning system 508b can be configured to use a neural network 522 to determine the corresponding effects.

[0104] At least one objective 518 may be associated with memory utilization, memory latency, throughput, power, or temperature, or a combination thereof, within system 500. However, it should be understood that at least one objective 518 is not limited thereto. For example, at least one objective 518 may be associated with memory supply, configuration, or structure. As further disclosed below, at least one objective 518 may be measured, for example, via at least one monitoring parameter that can be monitored by at least one monitoring circuit. Throughput, power, or temperature may be system or memory throughput, power, or temperature.

[0105] The identified variation 512 can alter processing by changing at least one memory address, memory access order, memory access mode, or a combination thereof. However, it should be understood that the identified variation 512 is not limited to changing these.

[0106] As mentioned above Figure 1B , Figure 2 and Figure 3 As disclosed, the processing system 504 can be coupled to the memory system, and the identified variation 512 can alter the processing by relocating data in the memory system or invalidating data in the memory system. (As stated above regarding...) Figure 3 The disclosed, identified variant 512 can alter memory access of the memory system based on the structure of the memory system.

[0107] The identified variation 512 may alter the instruction stream, instruction pipeline, clock speed, voltage, idle time, field-programmable gate array (FPGA) logic, or combinations thereof, of the processing system 504. However, it should be understood that the identified variation 512 is not limited thereto.

[0108] The system controller 502 may also be configured to apply the identified variant 512 to the processing system 504 by modifying the processing system 504 or by transmitting at least one message (not shown) to the processing system 504, and the processing system 504 may then be configured to apply the identified variant 512.

[0109] The second learning system 508b can also be configured to use at least one monitoring parameter 516 to determine the corresponding effect. The corresponding effect may be associated with memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, or a combination thereof. However, it should be understood that the corresponding effect is not limited to these associations. Throughput, power, or temperature can be system or memory throughput, power, or temperature.

[0110] System 500 may further include at least one monitoring circuit (not shown), configured to generate at least one monitoring parameter 516 by periodically monitoring and processing at least one associated parameter over time. The second learning system 508b may also be configured to use at least one monitoring parameter 516 to determine the corresponding effect.

[0111] The identified variant 512 may include, for example, those mentioned above. Figure 2 The corresponding experimental variants of the population disclosed above. Such as the above regarding... Figure 2 Disclosed, the first learning system 508a can be configured to evolve a population on a population-by-population basis using a genetic method 520. The first learning system 508a can also be configured to transmit the evolved population to the system controller 502 on a population-by-population basis. To apply the identified mutation 512, the system controller 502 can also be configured to apply the corresponding experimental mutation of the evolved population to the processing system 504 on a population-by-population basis.

[0112] The second learning system 508b can be configured to employ a neural network 522. The neural network 522 can be configured to determine corresponding effects based on at least one monitoring parameter 516 of the processing system 504, the corresponding effects being generated by applying corresponding experimental variations to the processing system 504. Such as the above regarding... Figure 2 Disclosed, the neural network 522 can also be configured to assign corresponding ordination 528 to corresponding experimental variants based on the determined corresponding effect and at least one objective 518. The neural network 522 can also be configured to transmit the corresponding ordination 528 to the system controller 502 on a per-experimental-variable basis.

[0113] Such as the above about Figure 2 As disclosed, system controller 502 can also be configured to transmit a population (not shown) with a corresponding order from the population (not shown) to the first learning system 508a. The population with the corresponding order may include a corresponding order 528 for the corresponding experimental variant. The corresponding order 528 can be assigned by neural network 522 and transmitted to system controller 502. (As stated above regarding...) Figure 2 The disclosed genetic method 520 can be configured to evolve the current population in a population into the next population in a population based on a given corresponding sort in a population with a corresponding sort, where the given corresponding sort corresponds to the current population.

[0114] As mentioned above Figure 2The disclosed, identified variant 512 may include a population (not shown) of the corresponding experimental variant (not shown), wherein the genetic method 520 is configured to evolve the population on a population-by-population basis. A given variant may be a given experimental variant that is consistently included in the evolved population by the genetic method 520. As mentioned above regarding Figure 2 The disclosed method can converge to a given variant by genetic method 520 based on the corresponding ordering assigned to a given variant by neural network 522.

[0115] System 500 may also include the above-mentioned information. Figure 3 The disclosed target system (not shown) and test system (not shown) are described. System controller 502 can be coupled to both the target system and the test system. Processing system 504 can be a test processing system for the test system. The target system may include a target processing system. (As mentioned above regarding...) Figure 3 As disclosed, the experimental treatment system can be a periodic, accurate model of the target treatment system. The system controller 502 can also be configured to apply a given variation to the target treatment system.

[0116] The target processing system can be a physical system. The periodic accurate model can be a physical representation or simulation model of the target processing system.

[0117] Figure 6 This is a flowchart 600 of an exemplary embodiment of a method for improving a processing system (such as any of the processing systems disclosed above). The method begins (602) and identifies a variation for changing the processing of the processing system to satisfy at least one objective (604). The method applies the identified variation to the processing system (606). The method determines the corresponding effects of the identified and applied variation (608). The method converges to a given variation among the identified and applied variations, convergence based on the determined corresponding effects, the given variation enabling the satisfaction of at least one objective (610). Thereafter, the method ends in the exemplary embodiment (612).

[0118] Figure 7This is a block diagram illustrating an example of the internal structure of a computer 700 in which various embodiments of the present disclosure may be implemented. The computer 700 includes a system bus 752, where a bus is a collection of hardware lines used to transfer data between components of a computer or digital processing system. The system bus 752 is essentially a shared conduit connecting different elements of the computer system (e.g., processor, disk storage device, memory, input / output ports, network ports, etc.), enabling the transfer of information between elements. Coupled to the system bus 752 is an I / O device interface 754, which is used to connect various input and output devices (e.g., keyboard, mouse, display, printer, speakers, etc.) to the computer 700. A network interface 756 allows the computer 700 to connect to various other devices attached to a network (e.g., a global computer network, a wide area network, a local area network, etc.). Memory 758 provides volatile or non-volatile storage for computer software instructions 760 and data 762 that can be used to implement embodiments of the present disclosure, wherein volatile and non-volatile memory are examples of non-transitory media. The disk storage device 764 provides non-volatile storage for computer software instructions 760 and data 762 that can be used to implement embodiments of the present disclosure. The central processing unit 766 is also coupled to the system bus 752 and used for the execution of computer instructions.

[0119] As used herein, the term “engine” may refer individually or in any combination to any hardware, software, firmware, electronic control components, processing logic, and / or processor device, including but not limited to: application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), electronic circuits, processors and memory that execute one or more software or firmware programs, and / or other suitable components that provide the described functionality.

[0120] The exemplary embodiments disclosed herein can be configured using computer program products; for example, controls can be programmed into software for implementing the exemplary embodiments. Further exemplary embodiments may include a non-transitory computer-readable medium containing instructions executable by a processor, which, when loaded and executed, cause the processor to perform the methods described herein. It should be understood that elements of the block diagrams and flowcharts can be, as disclosed above... Figure 7 One or more arrangements of the circuit system or their equivalents, firmware, combinations thereof, or other similar implementations to be determined in the future, implemented in software or hardware.

[0121] Furthermore, the elements of the block diagrams and flowcharts described herein can be combined or divided in any way in software, hardware, or firmware. If implemented in software, the software can be written in any language capable of supporting the exemplary embodiments disclosed herein. The software can be stored in any form of computer-readable medium, such as random access memory (RAM), read-only memory (ROM), compact disk read-only memory (CD-ROM), etc. In operation, a general-purpose or special-purpose processor or processing core loads and executes the software in a manner known in the art. It should also be understood that block diagrams and flowcharts may include more or fewer elements, may be arranged or oriented differently, or may be represented differently. It should be understood that implementation may indicate the number of block diagrams, flowcharts, and / or network diagrams illustrating the execution of the embodiments disclosed herein.

[0122] The teachings of all patents, published applications and references cited in this article are incorporated herein by reference in their entirety.

[0123] While exemplary embodiments have been specifically shown and described, those skilled in the art will understand that various changes in form and detail may be made without departing from the scope of the embodiments covered by the appended claims.

Claims

1. An electronic system comprising: A system controller coupled to a processing system, which is coupled to a memory system; as well as A learning system coupled to the system controller is configured to identify, via a machine learning process, variations related to ways of altering memory accesses of the memory system to satisfy at least one objective. The machine learning process is configured to employ a genetic method, wherein the identified variations comprise a population of corresponding trial variations, and wherein the genetic method is configured to evolve the population. The machine learning process is further configured to combine the genetic method with a neural network, and the neural network is configured to: Based on at least one monitoring parameter, determine the corresponding effect of applying the corresponding experimental variation to the treatment system; Based on the determined corresponding effects and the at least one objective, the corresponding ranking is assigned to the corresponding experimental variant; and Based on each experimental variation, the corresponding sequence is transmitted to the system controller. The system controller is configured to apply the identified mutation to the processing system, the machine learning process is configured to converge to a given mutation among the identified and applied mutations using the at least one monitoring parameter, the at least one monitoring parameter being affected by the memory access, wherein the given mutation is a given trial mutation consistently included in the evolving population by the genetic method, and wherein the given mutation enables the satisfaction of the at least one objective.

2. The electronic system of claim 1, wherein the at least one objective is associated with memory utilization, memory latency, throughput, power, or temperature, or a combination thereof, within the system.

3. The electronic system of claim 1, wherein the manner comprises changing at least one memory address, memory access order, memory access mode, or a combination thereof, and wherein the identified variation includes variations relating to the at least one memory address, memory access order, memory access mode, or a combination thereof.

4. The electronic system of claim 1, wherein the manner comprises relocating data in the memory system or invalidating data in the memory system, and wherein the identified variation includes variations related to the relocation, invalidation, or a combination thereof.

5. The electronic system of claim 1, wherein the manner of changing the memory access is based on the structure of the memory system.

6. The electronic system of claim 1, wherein applying the identified variation to the processing system comprises modifying the instruction stream, instruction pipeline, clock speed, voltage, idle time, field-programmable gate array (FPGA) logic, or a combination thereof.

7. The electronic system of claim 6, wherein the system controller is further configured to perform the modification or transmit at least one message to the processing system, the processing system being further configured to perform the modification.

8. The electronic system of claim 1, wherein the at least one monitoring parameter includes memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, or a combination thereof.

9. The electronic system of claim 1, further comprising at least one monitoring circuit configured to generate the at least one monitoring parameter by periodically monitoring at least one parameter associated with the memory access over time.

10. The electronic system of claim 9, wherein the electronic system is a physical system or a simulation system model of the physical system, wherein the simulation system model is periodically accurate relative to the physical system, and wherein the at least one monitoring circuit is at least one physical monitoring circuit of the physical system or the simulation system model, or at least one simulation monitoring circuit model of the at least one physical monitoring circuit.

11. The electronic system of claim 1, wherein the genetic method is further configured to evolve the population on a population-by-population basis, wherein the learning system is further configured to transmit the evolved population to the system controller on a population-by-population basis, and wherein, in order to apply the identified mutation, the system controller is further configured to apply the corresponding experimental mutation of the evolved population to the processing system on a population-by-population basis.

12. The electronic system according to claim 1, wherein: The system controller is further configured to transmit to the learning system a population of corresponding rankings within the population, the population of corresponding rankings including the corresponding rankings of the corresponding experimental variants, the corresponding rankings being assigned by the neural network and transmitted to the system controller; and The genetic method is further configured to evolve the current population in a given corresponding sorted population into the next population in the population, the given corresponding sorted population corresponding to the current population.

13. The electronic system of claim 1, wherein the genetic method is further configured to evolve the population on a population-by-population basis, and wherein the genetic method converges to the given variant based on the corresponding ordering assigned to the given variant by the neural network.

14. The electronic system according to claim 1, further comprising a target system and a test system, wherein: The system controller is coupled to the target system and also to the test system; The processing system is the test processing system of the test system; The memory system is the test memory system of the test system; The target system includes a target processing system coupled to the target memory system; The experimental processing system is the first-cycle accurate model of the target processing system; The experimental memory system is a second-period exact model of the target memory system; and The system controller is also configured to apply the given mutation to the target processing system.

15. The electronic system according to claim 14, wherein: The target processing system and the target memory system are physical systems; and The first periodic accurate model and the second periodic accurate model are the physical representations or simulation models of the target processing system and the target memory system, respectively.

16. A method for improving a processing system, comprising: The machine learning process identifies variations related to the manner in which memory accesses of a memory system are altered to satisfy at least one objective, the memory system being coupled to the processing system, the machine learning process employing a genetic method for the identification, the identified variations comprising a population of corresponding experimental variations; The genetic method described above is used to evolve the population; Apply the identified variant to the processing system; The machine learning process is achieved by combining the genetic method with a neural network. The neural network determines the effect of applying the corresponding experimental variation to the processing system based on at least one monitoring parameter, wherein the at least one monitoring parameter is affected by memory access; The neural network assigns a corresponding ranking to the corresponding experimental variant based on the determined corresponding effect and the at least one objective; The neural network transmits the corresponding sorting to the system controller based on the mutation of each experiment; as well as The machine learning process uses at least one monitoring parameter to converge to a given variant among the identified and applied variants, wherein the given variant is a given experimental variant consistently included in the evolving population by the genetic method, and wherein the given variant enables the satisfaction of the at least one objective.

17. The method of claim 16, wherein the at least one objective is associated with memory utilization, memory latency, throughput, power, temperature, or a combination thereof.

18. The method of claim 16, wherein the manner comprises changing at least one memory address, memory access order, memory access mode, or a combination thereof, and wherein the identified variation includes variations relating to the at least one memory address, memory access order, memory access mode, or a combination thereof.

19. The method according to claim 16, wherein the manner includes relocating data in the memory system or invalidating data in the memory system, and wherein the identified variation includes variations related to the relocation, invalidation, or a combination thereof.

20. The method of claim 16, wherein the manner of changing the memory access is based on the architecture of the memory system.

21. The method of claim 16, wherein applying the identified variation to the processing system comprises modifying the instruction stream, instruction pipeline, clock speed, voltage, idle time, FPGA logic, or a combination thereof of the processing system.

22. The method of claim 16, further comprising generating the at least one monitoring parameter by periodically monitoring at least one parameter associated with the memory access over time.

23. The method of claim 16, wherein the at least one monitoring parameter includes memory utilization, temperature, throughput, latency, power, quality of service (QoS), memory access, or a combination thereof.

24. The method of claim 16, further comprising: The population is evolved from individual populations using the genetic method described above; as well as The evolved population is transmitted on a per-population basis, wherein the identified variants are applied, including the corresponding experimental variants of the evolved populations, and the application is performed on a per-experimental-variant basis.

25. The method of claim 16, further comprising: The system controller transmits the corresponding rankings of the population to the learning system implementing the machine learning process. The corresponding rankings of the population include the corresponding rankings of the corresponding experimental variants. The corresponding rankings are assigned by the neural network and transmitted to the system controller. as well as The genetic method evolves the current population in the population into the next population in the population based on a given corresponding sorted population in the corresponding sorted population, wherein the given corresponding sorted population corresponds to the current population.

26. The method of claim 16, further comprising: The population is evolved from individual populations using the genetic method described above; as well as The genetic method converges to the given variant based on the corresponding ordering assigned to the given variant by the neural network.

27. The method of claim 16, wherein: The processing system is the test processing system of the test system; The memory system is the test memory system of the test system; The experimental processing system is the first-cycle accurate model of the target system's target processing system; The experimental memory system is a second-period exact model of the target memory system; and The method further includes applying the given mutation to the target processing system of the target system.

28. An electronic system comprising: A device for identifying mutations via a machine learning process, the mutations relating to a manner of altering memory accesses of a memory system to satisfy at least one objective, the memory system being coupled to a processing system, the machine learning process being configured to employ a genetic method for the identification, the identified mutations comprising a population of corresponding experimental mutations. A device for using the genetic method to evolve the population; A means for applying the identified variation to the processing system; Apparatus for implementing the machine learning process by combining the genetic method with a neural network; A means for determining, by the neural network, the corresponding effect of applying the corresponding experimental variation to the processing system based on at least one monitoring parameter, wherein the at least one monitoring parameter is affected by memory access; A means for assigning a corresponding ranking to the corresponding experimental variant by the neural network based on the determined corresponding effect and the at least one objective; A means for transmitting the corresponding sorting from the neural network to the system controller on a trial-by-trial basis; as well as A means for converging the machine learning process with the at least one monitoring parameter to a given variant among the identified and applied variants, wherein the given variant is a given experimental variant consistently included in the evolving population by the genetic method, and wherein the given variant enables the satisfaction of the at least one objective.

29. A non-transitory computer-readable medium for improving a processing system, the non-transitory computer-readable medium having an instruction sequence encoded thereon, the instruction sequence, when loaded and executed by at least one processor, causing the at least one processor to: The identified variants are associated with the manner of altering memory access in a memory system coupled to a processing system via a machine learning process employing genetic methods. The identified variants are applied to the processing system, and the identified variants include a population of corresponding experimental variants. The genetic method described above is used to evolve the population; Apply the identified variant to the processing system; The machine learning process is achieved by combining the genetic method with a neural network. The neural network determines the effect of applying the corresponding experimental variation to the processing system based on at least one monitoring parameter, wherein the at least one monitoring parameter is affected by memory access; The neural network assigns a corresponding ranking to the corresponding experimental variant based on the determined corresponding effect and the at least one objective; The neural network transmits the corresponding sorting to the system controller based on the mutation of each experiment; as well as In the machine learning process, at least one monitoring parameter is used to converge to a given variant among the identified and applied variants, the at least one monitoring parameter being affected by the memory access, wherein the given variant is a given trial variant consistently included in the evolving population by the genetic method, and wherein the given variant enables the satisfaction of the at least one objective.

Citation Information

Patent Citations

  • System and Method for Effective Caching Using Neural Networks

    US20120041914A1