WO2011054884A1 - Dynamic management of random access memory - Google Patents

Dynamic management of random access memory Download PDF

Info

Publication number
WO2011054884A1
WO2011054884A1 PCT/EP2010/066760 EP2010066760W WO2011054884A1 WO 2011054884 A1 WO2011054884 A1 WO 2011054884A1 EP 2010066760 W EP2010066760 W EP 2010066760W WO 2011054884 A1 WO2011054884 A1 WO 2011054884A1
Authority
WO
WIPO (PCT)
Prior art keywords
instructions
memory
processor
instruction
random access
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.)
Ceased
Application number
PCT/EP2010/066760
Other languages
English (en)
French (fr)
Inventor
Michel Catrouillet
Loïc PALLARDY
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ST Ericsson SA
STMicroelectronics Grand Ouest SAS
Original Assignee
ST Ericsson SA
ST Ericsson France SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ST Ericsson SA, ST Ericsson France SAS filed Critical ST Ericsson SA
Priority to US13/504,174 priority Critical patent/US9390029B2/en
Priority to JP2012537394A priority patent/JP5671050B2/ja
Priority to EP10778961A priority patent/EP2497025A1/en
Publication of WO2011054884A1 publication Critical patent/WO2011054884A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Definitions

  • the present invention relates to computer systems. More particularly, the invention aims to improve the management of the random access memory (RAM) associated with the processors of computer systems, in order to ensure better performance in the execution of computer programs by the system.
  • RAM random access memory
  • the performance of a computer system depends in particular on the performance of its processor (particularly its computational speed) and on the performance of the random access memory it uses to carry out the operations related to the execution of the instructions it is executing (in particular the memory read and write access times).
  • the types of performance expected include the possibility of implementing real-time functionalities, such as for example the management of communication streams with increasingly large volumes of data to be processed.
  • the implementation of these functionalities must not adversely impact the implementation of other functionalities by the communication system.
  • These real-time functionalities require significant computational resources because they involve the processing of a large amount of data within a minimum amount of time.
  • One solution consists of dedicating a processor to each type of functionality: one processor for real-time applications, and one processor for the other applications. This solution has the advantage of providing access to a large amount of computational power for running all the applications.
  • Another solution consists of increasing the size of the primary memory cache (called the "L1 cache” by persons skilled in the art) in order to dedicate one part of the cache to real-time applications and the other part to the other applications.
  • L1 cache the primary memory cache
  • this solution involves increasing the size of the components on the silicon of the chip in which the system is implanted. As a corollary, this solution implies a lower clock rate for the system.
  • a first aspect of the invention proposes a method for managing random access memory in a computer system, with the computer system comprising a processor, a first static random access memory, and a second dynamic random access memory, said process comprising the steps of:
  • the memories in question can be different than a cache.
  • Dynamic random access memory can be defined as random access memory requiring the refreshing of data.
  • Static random access memory can be defined as random access memory not requiring any refresh.
  • Static random access memory is generally very fast but has a large silicon footprint. Dynamic random access memory is generally cheaper and less voluminous.
  • the first random access memory is SCRAM ("Static Column Random Access Memory")
  • the second random access memory is SDRAM ("Synchronous Dynamic Random Access Memory”).
  • SCRAM memory allows fast loading and unloading of instructions.
  • SCRAM memory can easily be included in different types of circuits.
  • the first static random access memory is memory internal to the processor
  • the second dynamic random access memory is memory external to the processor. Having the memory close to the processor allows faster data transfers.
  • instructions are dynamically loaded into and unloaded from the first and second random access memory according to the priority that is assigned to the instructions.
  • the priority assigned to the instructions can depend on the context of the execution of a particular function by the computer system.
  • the priority given to the instructions can come from the fact that these are instructions from computer code often used by a particular function.
  • the random access memory management of the invention allows increasing the computational power of the processor, and accelerating the execution of computer programs without extra costs in hardware development.
  • the method additionally comprises the steps of: - receiving a set of instructions to be executed by the processor,
  • the instructions are loaded/unloaded between the first and second random access memory as their priority level changes.
  • an instruction can change from a high priority level to a lower priority level or vice versa.
  • an instruction can be found to have a lower priority than a newly called instruction to be executed by the processor.
  • the execution of the application can be accelerated by giving priority to the instructions frequently executed by the application, making them available to the processor in the static random access memory (SCRAM memory for example).
  • SCRAM memory static random access memory
  • the instructions are associated with at least one priority parameter, and the determination of the priority level of the instructions is based on their respective priority parameters.
  • a priority parameter is representative of a processor load savings.
  • the number of clock cycles per instruction executed by the processor when the instruction is stored in the first and second memory is compared.
  • a priority parameter is representative of the amount of memory occupied by the instruction.
  • the storage of instructions in the first memory is determined by compromising between the size of the instructions and the processor load savings that they would provide.
  • the parameter associated with the instructions has a fixed value.
  • a table can be provided that stores, for each instruction, the parameters associated with it.
  • the parameter is associated with the instructions dynamically, based on a learning algorithm which assigns a priority parameter based on a processor load savings measurement associated with each instruction.
  • a dynamic measurement of the number of operations necessary to execute the instruction can be provided.
  • the storage of instructions in the first memory is done according to a learning algorithm that also optimizes usage of the first memory.
  • the algorithm is an adapting algorithm and can identify an association of instructions which, when stored together in the static random access memory, provide good optimization of the static random access memory.
  • the computer program, the system, and the integrated circuit present at least the same advantages as those provided by the process according to the first aspect of the invention.
  • FIG. 1 schematically illustrates a processing unit structure of a computer system according to an embodiment of the invention
  • FIG. 2a and 2b illustrate the architecture of a system according to embodiments of the invention
  • FIG. 3 illustrates a resource manager according to an embodiment of the invention
  • FIG. 4 illustrates the management of random access memory according to an embodiment
  • - figure 5 is a flow chart of steps implemented in a method according to an embodiment of the invention
  • - figure 6 is a flow chart of steps implemented in a method for setting a priority parameter according to an embodiment of the invention.
  • FIG. 7 is a flow chart of steps implemented in a method for setting a priority parameter according to another embodiment of the invention.
  • a processing unit structure of a computer system is described very schematically, with reference to Figure 1.
  • processor 10 in charge of executing more or less basic instructions in the context of the more general execution of a computer program.
  • the processor 10 has different types of memory available for this purpose.
  • This type of memory is used to store data temporarily that are useful for the execution of the instructions.
  • This type of memory can store data to be processed such as the operands of operations to be executed by the processor, or the identification of operations to be performed.
  • This memory has very good performance in terms of access time, and is used for copying the data used to bring them close to the processor.
  • L1 cache 11 This is the cache closest to the processor, and is also the highest performance memory in terms of access time. This type of memory is generally very costly and therefore its size is generally limited. Also among such cache memory is the static random access memory 12. This random access memory also has very good performance, although inferior to that of the L1 cache. The cost of this type of memory allows the possibility of providing more of it than in the L1 cache.
  • the processor 10 also has dynamic random access memory 13 available to it. This type of random access memory generally requires regularly refreshing the data, but takes up very little area on the silicon and is inexpensive because its structure is very simple.
  • the processing unit has read-only memory 14 for storing data in a lasting manner.
  • the processing unit copies certain parts of the computer code into the random access memory or cache in order to speed up the execution of the program.
  • a dynamic random access memory 20 and a static random access memory 21 are represented.
  • This virtual memory represents a table which comprises the addresses in the read-only memory where the instructions are stored.
  • a memory management unit MMU 23 is in charge of translating virtual addresses into physical addresses in the random access memory at the appropriate moment. This unit handles such translations for the different types of memory in the system (RAM or ROM).
  • an instruction for managing a communication on a USB port 220 an instruction for video encoding 221 , an instruction for video decoding 222, an instruction for audio encoding 223, an instruction for audio decoding 224, an instruction for managing a WiFi communication 225, an instruction for managing a stream of data 226, and an instruction for implementing telecommunications 227.
  • the processing unit is to implement the reception of a video stream.
  • the instructions critical to performing said reception are identified in the virtual memory.
  • the critical applications are for example the instructions which if their execution was accelerated would allow performing the video stream reception function faster.
  • the reception of the video stream, which in this example is judged to have priority, is thus carried out while benefiting from the performance of the static random access memory, while the other functionalities carried out by the processing unit only use the dynamic random access memory.
  • the critical instructions for implementing this function are identified. In the example illustrated by figure 2b, it is assumed that the critical instructions are the instructions 220 and 227.
  • the instructions are then loaded into the memory 21 , while the instructions 222, 224, and 226 are unloaded from the memory 21 and loaded into the memory 20. This accelerates the execution of the modem function on the USB port, which in this example is considered to have priority over the video stream reception function which previously had priority.
  • the management of the random access memory can be executed by a resource manager.
  • Such a resource manager is represented in figure 3.
  • the resource manager 30 is connected via an interface 31 to various resources 32 and 33. These resources are, for example, files storing the computer code for functions such as telecommunications, multimedia, connectivity, or other functions. For example, the instructions for the examples in figures 2a and 2b come from these resources.
  • the resource manager is in charge of storing, according to the computer program to be executed, the instructions for the resources into the static 34 and dynamic 35 memories.
  • the Memory Management Unit knows the virtual memory addresses of the instructions to be executed and is in charge of translating these virtual addresses into the physical addresses in the memories 34 and 35.
  • the Direct Memory Access Unit handles the copying of data into the dynamic random access memory and static random access memory, as well as the exchange of data between these two memories.
  • the resource manager 30 controls the Direct Memory Access Unit 36 and Memory Management Unit 37 via the respective drivers 38 and 39.
  • the random access memory management is illustrated according to one embodiment, with reference to figure 4.
  • the table 40 represents a table showing the correspondence between four groups of instructions 11 , I2, I3, and I4 (INSTR column) and their respectively associated set of priority parameters (PARAM column). With each instruction is associated a size in kilobits for example (under the SIZ column), and a processor load savings as a percentage for example (under the %SAV column).
  • the group of instructions 11 has a size of 19 kB and allows a processor load savings of 5%
  • the group of instructions I2 has a size of 5 kB and allows a processor load savings of 3%
  • the group of instructions I3 has a size of 4 kB and allows a processor load savings of 2%
  • the group of instructions I4 has a size of 5 kB and allows a processor load savings of 2%.
  • the table 41 represents a sequence of operations for optimizing the static RAM according to one embodiment.
  • This group of instructions has a size of 5 kB. However, only 1 kB remains free in the static RAM. Therefore the groups of instructions 11 and I2 are examined to see which provides the greatest processor load savings. In this example it is the group 11.
  • the group of instructions 11 is therefore kept in the static RAM, and the group of instructions I2 is stored in the dynamic RAM. Then the group of instructions I2 is copied into the dynamic RAM and the MMU is consequently reconfigured. If the groups of instructions were stored by default in the dynamic RAM as mentioned above, nothing is done.
  • This group of instructions has a size of 4 kB. However, only 1 kB remains free in the static RAM. Therefore the groups of instructions 11 and I3 are examined to see which provides the greatest processing load savings. In this example it is the group 11.
  • the group of instructions 11 is kept in the static RAM, and the group of instructions I3 is stored in the dynamic RAM.
  • This group of instructions has a size of 5 kB. However, only 1 kB remains free in the static RAM. Therefore the groups of instructions 11 and I4 are examined to see which provides the greatest processor load savings. In this example it is the group 11. Also examined is whether storing several groups of instructions from among the groups I2, I3 and I4 together in the static RAM instead of group 11 would provide better load savings. In this example such is the case, because storing these three groups provides a processor load savings of 7% (3+2+2) which is greater than the savings provided by storing the group 11 in the static RAM, which is 5%. In addition, the size of the three groups combined is 14 kB which can be accepted by the static RAM.
  • the group of instructions 11 is therefore moved from the static RAM to the dynamic RAM, the groups of instructions I2 and I3 are moved from the dynamic RAM to the static RAM, and the group of instructions I4 is stored in the static RAM.
  • the use of the static RAM is optimized according to an instruction size parameter and a processor load savings parameter, such as in the example described with reference to figure 4.
  • a first step S500 an instruction is received to be executed by the processor. It is attempted to determine whether this instruction is to be loaded into the static RAM or the dynamic RAM.
  • a parameter associated with the instruction is determined, representative of the size this instruction occupies in memory. For example, this parameter is read from a table such as was described with reference to figure 4.
  • the parameter representative of the size this instruction occupies in memory allows its direct storage in the static RAM. If such is the case, for example if there is enough space in the static RAM, the instruction is stored in the static RAM during the step S503. Otherwise, for example if there is not enough space in the static RAM, in the step S504 a parameter associated with the instruction is determined, representative of a processor load savings offered by storing the instruction in the static RAM. For example, this parameter is read from a table such as was described with reference to figure 4.
  • the instruction already present in the static RAM is unloaded during the step S507, then it is stored in the dynamic RAM during the step S508.
  • the instruction received during the step S500 is stored in the static RAM during the step S509.
  • test T505 If the test in the step T505 is negative, the process continues on to the test T510 in which it is determined whether instructions exist, in the dynamic RAM, whose parameters representative of a processor load savings when added together offer a better parameter representative of a processor load savings than the one for another instruction already stored in the static RAM.
  • the instruction is unloaded from the static RAM during the step S512 then it is stored in the dynamic RAM during the step S513.
  • step T505 the instructions found during the step T505 are unloaded from the dynamic RAM during the step S514. These instructions are then stored in the static RAM during the step S515.
  • step T510 If the test in the step T510 is negative, the instruction received during the step S500 is stored in the dynamic RAM during the step S511.
  • step S60 an instruction to be executed is identified, then during the step S61 the execution time by the processor is measured (or the number of operations for the processor to execute the instruction, as already mentioned above).
  • a value for the execution time in the static RAM (step S63) and in the dynamic RAM (step S64) is updated.
  • the execution time is an average of the time for the processor to execute the instruction.
  • the parameter representative of a processor load savings is determined.
  • the ratio is determined of the difference between the values obtained during steps S63 and S64 on the one hand, and of the value obtained during the step S64 on the other. To find this ratio, one can verify beforehand that the values were obtained under the same conditions, for example the instructions were executed in the same context (for example while running the same computer program), or if the values obtained are averages, that these averages were calculated using the same number of values.
  • the instructions are stored in the static RAM or the dynamic RAM depending on a function with which they are associated.
  • a function or code of a computer program is identified. For example, the execution of this function is to be accelerated.
  • the identified instructions are then stored in the static RAM during the step S72.
  • the step S73 it is detected that the function has been executed, or that the function is no longer to be accelerated.
  • the instructions are then unloaded from the static RAM to be for example stored in the dynamic RAM. As a further example, the instructions are simply replaced with other higher priority instructions.
  • a computer program of the invention can be realized according to a general algorithm deduced from the general flowchart in figures 5, 6, and/or 7, and the present description.
  • An integrated circuit of the invention can be realized by techniques known to a person skilled in the art, in order to be configured to implement a process of the invention.
  • a system of the invention can be realized in an integrated circuit in the form of a System on Chip (SoC).
  • SoC System on Chip
  • a system of the invention can be implanted in a terminal or other communication equipment to allow better communication performance by these devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
PCT/EP2010/066760 2009-11-04 2010-11-03 Dynamic management of random access memory Ceased WO2011054884A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/504,174 US9390029B2 (en) 2009-11-04 2010-11-03 Dynamic management of random access memory
JP2012537394A JP5671050B2 (ja) 2009-11-04 2010-11-03 ランダムアクセスメモリの動的管理
EP10778961A EP2497025A1 (en) 2009-11-04 2010-11-03 Dynamic management of random access memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0957809 2009-11-04
FR0957809 2009-11-04

Publications (1)

Publication Number Publication Date
WO2011054884A1 true WO2011054884A1 (en) 2011-05-12

Family

ID=42357885

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2010/066760 Ceased WO2011054884A1 (en) 2009-11-04 2010-11-03 Dynamic management of random access memory

Country Status (4)

Country Link
US (1) US9390029B2 (enExample)
EP (1) EP2497025A1 (enExample)
JP (1) JP5671050B2 (enExample)
WO (1) WO2011054884A1 (enExample)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016503935A (ja) * 2013-01-17 2016-02-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体
US11014985B2 (en) 2010-05-14 2021-05-25 The Board Of Trustees Of The Leland Stanford Junior University Humanized and chimeric monoclonal antibodies to CD47

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012242877A (ja) * 2011-05-16 2012-12-10 Sony Corp メモリ管理装置、メモリ管理方法、および、制御プログラム
GB2516435A (en) * 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
KR102694451B1 (ko) 2018-04-02 2024-08-13 구글 엘엘씨 대화형 클라우드 게임용 방법, 디바이스 및 시스템
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634135A (en) * 1991-12-13 1997-05-27 Texas Instruments Incorporated Microprocessor with priority determination and priority based instruction selection
US20080270758A1 (en) * 2007-04-27 2008-10-30 Arm Limited Multiple thread instruction fetch from different cache levels
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719602A (en) * 1985-02-07 1988-01-12 Visic, Inc. Memory with improved column access
US4839796A (en) * 1987-07-16 1989-06-13 Icon International, Inc. Static frame digital memory
JPH08137513A (ja) * 1994-11-10 1996-05-31 Fanuc Ltd メモリ管理方式
SE0000533D0 (sv) * 2000-02-18 2000-02-18 Ericsson Telefon Ab L M Static cache
US7657706B2 (en) * 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
JP2007026094A (ja) 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム
US7502890B2 (en) * 2006-07-07 2009-03-10 International Business Machines Corporation Method and apparatus for dynamic priority-based cache replacement
US7496711B2 (en) * 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
US20110113216A1 (en) * 2007-08-31 2011-05-12 Panasonic Corporation Information processing apparatus
JP5414305B2 (ja) * 2009-02-25 2014-02-12 キヤノン株式会社 情報処理装置、仮想記憶管理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634135A (en) * 1991-12-13 1997-05-27 Texas Instruments Incorporated Microprocessor with priority determination and priority based instruction selection
US20080270758A1 (en) * 2007-04-27 2008-10-30 Arm Limited Multiple thread instruction fetch from different cache levels
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11014985B2 (en) 2010-05-14 2021-05-25 The Board Of Trustees Of The Leland Stanford Junior University Humanized and chimeric monoclonal antibodies to CD47
US11807684B2 (en) 2010-05-14 2023-11-07 The Board Of Trustees Of The Leland Stanford Junior University Humanized and chimeric monoclonal antibodies to CD47
JP2016503935A (ja) * 2013-01-17 2016-02-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体

Also Published As

Publication number Publication date
JP5671050B2 (ja) 2015-02-18
EP2497025A1 (en) 2012-09-12
US20120215975A1 (en) 2012-08-23
US9390029B2 (en) 2016-07-12
JP2013510355A (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
CN105074666B (zh) 执行在具有不同指令集架构的处理器上的操作系统
US9390029B2 (en) Dynamic management of random access memory
US8126957B2 (en) Managing position independent code using a software framework
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
CN112559163A (zh) 优化张量计算性能的方法及装置
JP2003167737A (ja) スタック使用方法
CN114780225A (zh) 一种分布式模型训练系统、方法及装置
JPWO2011135759A1 (ja) 情報処理装置及びタスク切り替え方法
CN104932933A (zh) 一种获取自旋锁的方法及装置
Xu et al. vtensor: Flexible virtual tensor management for efficient llm serving
CN111338803A (zh) 一种线程处理方法和装置
US20220197858A1 (en) Dynamic allocation of arithmetic logic units for vectorized operations
US20130117522A1 (en) Inter-Process Memory Management
CN115617451B (zh) 一种数据处理方法和数据处理装置
US7694036B2 (en) System and product for DMA controller with multi-dimensional line-walking functionality
KR101862799B1 (ko) 메모리 컨트롤러 및 메모리 컨트롤 방법
CN115878254A (zh) 内存分配方法、装置、计算机设备、存储介质及程序产品
CN111858036A (zh) 基于FPGA设备的TensorFlow系统加速方法、装置、设备及存储介质
CN110990151A (zh) 一种基于异构计算平台的业务处理方法
JP7461433B2 (ja) リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法
CN106991058B (zh) 预取文件处理方法及装置
CN114911525A (zh) 二进制指令翻译执行方法及装置
US20250355725A1 (en) Performance tuning of a data transform accelerator
CN119847737A (zh) 一种Linux环境下的内存分配方法、系统、设备及存储介质
CN120994581A (zh) 加速设备的存储管理方法、存储映射方法、装置及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10778961

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13504174

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2012537394

Country of ref document: JP

Ref document number: 2010778961

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE