CN105975407B - Memory address mapping method and device - Google Patents

Memory address mapping method and device Download PDF

Info

Publication number
CN105975407B
CN105975407B CN201610164190.XA CN201610164190A CN105975407B CN 105975407 B CN105975407 B CN 105975407B CN 201610164190 A CN201610164190 A CN 201610164190A CN 105975407 B CN105975407 B CN 105975407B
Authority
CN
China
Prior art keywords
memory
address
service process
virtual
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610164190.XA
Other languages
Chinese (zh)
Other versions
CN105975407A (en
Inventor
唐贵金
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610164190.XA priority Critical patent/CN105975407B/en
Publication of CN105975407A publication Critical patent/CN105975407A/en
Application granted granted Critical
Publication of CN105975407B publication Critical patent/CN105975407B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

The embodiment of the invention discloses a mapping method and mapping equipment of a memory address. In the embodiment of the application, when mapping the memory address, the first service process obtains the physical memory through application, determines the virtual memory address corresponding to the physical memory address from the predetermined virtual memory space through the precomputed physical memory address and the offset value of the virtual memory address, establishes a mapping relationship, and creates a shared memory area, and the second service process obtains the same memory size and the same memory area identifier as those of the first service process to create the same shared memory area, so that mapping of the memory address is realized.

Description

Memory address mapping method and device
Technical Field
The present invention relates to the field of computer technologies, and in particular, to a method and an apparatus for mapping a memory address.
Background
In a Linux operating system or a Unix operating system, the mmap interface can map a file or other objects into the memory, and the operation on the file or other objects can be as convenient as operating the memory. The method is generally used for scenes such as interprocess data sharing, copy-free data sharing between a user mode and a kernel mode, direct operation of equipment by a user program and the like.
And a software process in the operating system calls the mmap interface to map a section of physical memory space, and returns a starting virtual memory address corresponding to the section of physical memory space after the mapping is finished, and the software establishes the mapping relation between the physical memory address and the virtual memory address. When software interacts with a Field-Programmable Gate Array (FPGA) device, the FPGA needs to be told to store a physical memory address of data to be processed, the FPGA returns after processing, and when the software reads a processing result, the physical memory address storing the processing result needs to be converted into a virtual memory address.
When a plurality of processes need to interact with the FPGA device, due to FPGA resource limitation, one-to-one interaction queues cannot be provided with each process (for example, 1000 processes interact with the FPGA, if a pair of queues needs to be provided for each process, 2000 queues are required, and each process has 1 receive queue and 1 transmit queue). Therefore, a process sharing queue mode is generally adopted, as shown in fig. 1, a service process processes a specific service, and sends a message to be processed to an FPGA through a request queue; after the FPGA finishes processing, putting a processing result into a result queue; and the forwarding process reads the result from the result queue, analyzes the service process to which the message belongs according to the result, and forwards the message to the corresponding service process or directly processes the result.
Therefore, the forwarding process must be able to identify the content of the result queue, analyze and process the information of the content, and request the physical memory space applied by each business process to be shared with the forwarding process. In the sharing scenario, the forwarding process has an address mapping relationship of multiple memory areas, if there are many service processes or many memory areas created by each service process, the entry of the mapping table is larger, the conversion between the virtual memory address and the physical memory address needs table lookup, and the conversion efficiency is low.
Disclosure of Invention
The embodiment of the invention provides a memory address mapping method and device, which improve the conversion efficiency of a physical memory address and a virtual memory address.
In one aspect, an embodiment of the present application provides a memory address mapping method, where the method is applied to a target device, where the target device is a terminal or a server, an operating system is installed in the target device, the operating system includes at least one service process, and the at least one service process includes a first service process and a second service process, and the method includes:
generating a first memory application request through the first service process, wherein the first memory application request comprises an application memory size and a memory area identifier;
allocating a first physical memory address from a reserved physical memory space through the first service process according to the memory application request, and allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated offset value of the physical memory address and the virtual memory address, wherein the virtual memory space is determined through the physical memory space;
establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses through the first service process, and establishing a first shared memory area;
acquiring the applied memory size and the memory area identifier through the second service process;
and creating the first shared memory area according to the applied memory size and the memory area identifier through the second service process.
In the embodiment of the application, when mapping the memory address, the service process obtains the physical memory through application, determines the virtual memory address corresponding to the physical memory address from the predetermined virtual memory space through the precomputed offset value of the physical memory address and the virtual memory address, establishes the mapping relationship, creates the shared memory area, and simultaneously informs the memory size and the memory area identifier to the second service process, so that the second service process creates the same shared memory area, mapping of the memory address is realized, and because the conversion between the physical memory address and the virtual memory address can be obtained only through the precomputed offset value, the conversion efficiency of the physical memory address and the virtual memory address is improved.
In one possible design, before the first virtual memory address corresponding to the first physical memory address is calculated according to the pre-calculated offset values of the physical memory address and the virtual memory address, the offset value between the physical memory address and the virtual memory address may be pre-calculated to be used as a reference value for calculation between the physical memory address and the virtual memory address.
At this time, that is, before the calculating the first virtual memory address corresponding to the first physical memory address according to the pre-calculated offset values of the physical memory address and the virtual memory address, the method may further include:
calculating the offset value of the physical memory address and the virtual memory address, wherein the offset value of the physical memory address and the virtual memory address can be the offset value between the starting address (such as phy _ start) of the reserved physical memory space and the starting address (such as vir _ start) of the pre-allocated virtual memory address space: i.e., for example, the offset value offset is phy _ start-vir _ start.
In another possible design, the calculating the offset value of the physical memory address and the virtual memory address may include:
acquiring a starting address of the physical memory space and the size of the physical memory space;
allocating the virtual memory space according to the initial address of the reserved physical memory space and the size of the physical memory space;
and calculating the offset values of the physical memory address and the virtual memory address according to the initial address of the physical memory space and the initial address of the virtual memory space.
In another possible design, the right is set to be inaccessible before the virtual memory address in the virtual memory space is not allocated;
after allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space, the method further comprises:
and setting the first virtual memory address in the virtual memory space to be only accessed by the first business process.
Therefore, the process can only access the memory space allocated to the process, but can not access the memory spaces of other processes or unallocated memory spaces, thereby achieving the effects of memory isolation and protection.
In another possible design, the obtaining the application memory size and the memory area identifier through the second service process may include:
sending a notification message to the second service process through the first service process, wherein the notification message comprises the application memory size and the memory area identifier;
and receiving the notification message through the second service process to acquire the application memory size and the memory area identifier.
In this case, the service process notifies the second service process of the applied memory size and the memory area identifier by sending a notification message, so that the second service process creates a shared memory area identical to the service process, and implements mapping of memory addresses, and it can be understood that obtaining the applied memory size and the memory area identifier by the second service process may also be: the size of the application memory and the memory area identifier are obtained by pre-appointing the same rule in a second service process and a service process, for example, the size of the application memory and the memory area identifier are pre-appointed in the second service process and the service process, and the second service process and the service process obtain the appointed size of the application memory and the memory area identifier.
In another possible design, in this embodiment of the present application, a shared memory area may be created between a plurality of service processes and a second service process, where at least one of the service processes may further include a third service process, and the method may further include:
generating a second memory application request through the third business process, wherein the second memory application request comprises the size of an application memory and a memory area identifier;
allocating a second physical memory address from the physical memory space through the third business process according to the memory application request, and allocating a second virtual memory address corresponding to the second physical memory address from the virtual memory space according to a pre-calculated offset value of the physical memory address and the virtual memory address;
establishing a mapping relation between second virtual memory addresses corresponding to the second physical memory address through the third business process, and establishing a second shared memory area;
the second service process acquires the applied memory size and the memory area identifier in the second application request;
and creating the second shared memory area according to the application memory size and the memory area identification in the second application request through the second service process.
At this time, in the embodiment of the present application, a shared memory area may be created between a plurality of service processes and a second service process, so as to implement mapping of a plurality of memory addresses.
In another possible design, the at least one business process further includes a fourth business process, and the method further includes:
acquiring the size of the applied memory and the memory area identification;
and creating the first shared memory area according to the applied memory size and the memory area identifier through the fourth service process.
In this case, no matter what process or how many processes, only the same memory area identifier and the same memory size information are acquired, and the memory areas created according to the memory area identifier and the memory size are the same shared memory area, so that the memory areas are reasonably used.
In a second aspect, an embodiment of the present application provides an apparatus, where the apparatus is a terminal or a server, and the apparatus includes at least one processor and a memory, where the memory stores an operating system, the operating system includes at least one service process, and the at least one service process includes a first service process and a second service process; the first business process comprises a business module and a memory module, and the second business process comprises a business module and a memory module;
the at least one processor is configured to execute the processes stored in the memory to perform the steps of:
generating a first memory application request through a service module of the first service process, wherein the first memory application request comprises an application memory size and a memory area identifier;
allocating a first physical memory address from a reserved physical memory space through a memory module of the first service process according to the memory application request, and allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated physical memory address and an offset value of the virtual memory address, wherein the virtual memory space is determined through the physical memory space;
establishing a first shared memory area through the memory module of the first service process, wherein the memory module of the first service process is also used for establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses;
acquiring the applied memory size and the memory area identifier through a service module of the second service process;
and creating the first shared memory area through the memory module of the second service process according to the applied memory size and the memory area identifier.
In one possible design, before the memory module of the first business process calculates the first virtual memory address corresponding to the first physical memory address according to the pre-calculated offset values of the physical memory address and the virtual memory address, the at least one processor is specifically configured to calculate the offset values of the physical memory address and the virtual memory address through the memory module of the first business process.
In another possible design, the at least one processor is specifically configured to obtain, by a memory module of the first business process, a starting address of the physical memory space and a size of the physical memory space; allocating the virtual memory space according to the initial address of the reserved physical memory space and the size of the physical memory space; and calculating the offset values of the physical memory address and the virtual memory address according to the initial address of the physical memory space and the initial address of the virtual memory space.
In another possible design, the right is set to be inaccessible before the virtual memory address in the virtual memory space is not allocated;
after allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space, the at least one processor is further configured to set the first virtual memory address in the virtual memory space to be accessed only by the first business process through the memory module of the first business process.
In another possible design, the at least one processor is specifically configured to send a notification message to the service module of the second service process through the service module of the first service process, where the notification message includes the application memory size and the memory area identifier;
the at least one processor is further specifically configured to receive the notification message through the service module of the second service process, and obtain the application memory size and the memory area identifier.
In another possible design, the at least one service process further includes a third service process, where the third service process includes a service module and a memory module;
the at least one processor is further configured to generate a second memory application request through the service module of the third service process, where the second memory application request includes a memory size and a memory area identifier;
the at least one processor is further configured to allocate, by the memory module of the third service process, a second physical memory address from the reserved physical memory space according to the memory application request, and allocate, according to the pre-calculated physical memory address and the offset value of the virtual memory address, a second virtual memory address corresponding to the second physical memory address from the predetermined virtual memory space, where the virtual memory space is determined by the physical memory space;
the at least one processor is further configured to establish a mapping relationship between second virtual memory addresses corresponding to the second physical memory address through a memory module of the third service process, and establish a second shared memory area;
the at least one processor is further configured to obtain, through the service module of the second service process, the application memory size and the memory area identifier in the second application request;
the at least one processor is further configured to create the second shared memory area through the memory module of the second service process according to the application memory size in the second application request and the memory area identifier.
In another possible design, the at least one service process further includes a fourth service process, and the fourth service process includes a service module and a memory module;
the at least one processor is further configured to execute the processes stored in the memory to perform the steps of:
acquiring the applied memory size and the memory area identifier through a service module of the fourth service process;
and creating the first shared memory area through the memory module of the fourth service process according to the applied memory size and the memory area identifier.
According to the technical scheme, the embodiment of the invention has the following advantages:
in the embodiment of the application, when mapping the memory address, the first service process obtains the physical memory through application, determines the virtual memory address corresponding to the physical memory address from the predetermined virtual memory space through the precomputed physical memory address and the offset value of the virtual memory address, establishes a mapping relationship, creates a shared memory area, and simultaneously informs the memory size and the memory area identifier to the second service process, so that the second service process creates the same shared memory area, and mapping of the memory address is realized.
Drawings
FIG. 1 is a system framework diagram of a prior art memory address mapping method;
FIG. 2 is a block diagram of a first business process and a second business process in an embodiment of the present invention;
fig. 3 is a schematic diagram of an embodiment of a mapping method for memory addresses in an embodiment of the present invention;
fig. 4 is a schematic diagram of another embodiment of a mapping method of a memory address in the embodiment of the present invention;
fig. 5 is a schematic diagram of another embodiment of the apparatus in the embodiment of the present invention.
Detailed Description
The embodiment of the invention provides a memory address mapping method and device, which improve the conversion efficiency of a physical memory address and a virtual memory address.
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The terms "first," "second," and the like in the description and in the claims, as well as in the drawings, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
The application is applied to a target device, wherein the target device can be a terminal or a server, an operating system is installed in the target device, the operating system may be a Linux operating system or a Unix operating system, the operating system including at least one business process, the at least one business process includes a first business process and a second business process, and the relationship between the second business process and the first business process may be as shown in figure 2, wherein, each service process can comprise a service module and a memory module, the service module is used for receiving or sending message, the memory module is used for managing and distributing physical memory space and virtual memory space, the service module of the second service process and the service module of the first service process are connected, and information can be exchanged between the service module and the memory module in each of the first service process and the second service process.
The following describes a mapping method of memory addresses in this embodiment.
Referring to fig. 3, an embodiment of a mapping method of a memory address according to an embodiment of the present invention includes:
301. generating a first memory application request through the first business process;
the first memory application request comprises an application memory size and a memory area identifier;
302. allocating a first physical memory address from a reserved physical memory space according to the memory application request through the first service process;
303. allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated offset value of the physical memory address and the virtual memory address;
wherein the virtual memory space is determined by the physical memory space;
in this embodiment, before the first virtual memory address corresponding to the first physical memory address is calculated according to the pre-calculated offset values of the physical memory address and the virtual memory address, the offset value between the physical memory address and the virtual memory address may be pre-calculated to be used as a reference value for calculation between the physical memory address and the virtual memory address.
At this time, that is, before the calculating the first virtual memory address corresponding to the first physical memory address according to the pre-calculated offset values of the physical memory address and the virtual memory address, the method may further include:
calculating the offset value of the physical memory address and the virtual memory address, wherein the offset value of the physical memory address and the virtual memory address can be the offset value between the starting address (such as phy _ start) of the reserved physical memory space and the starting address (such as vir _ start) of the pre-allocated virtual memory address space: i.e., for example, the offset value offset is phy _ start-vir _ start.
Specifically, the calculating the offset values of the physical memory address and the virtual memory address may include:
acquiring a starting address of the physical memory space and the size of the physical memory space;
allocating the virtual memory space according to the initial address of the reserved physical memory space and the size of the physical memory space;
and calculating the offset values of the physical memory address and the virtual memory address according to the initial address of the physical memory space and the initial address of the virtual memory space.
304. Establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses through the first service process, and establishing a first shared memory area;
305. acquiring the applied memory size and the memory area identifier through the second service process;
optionally, the obtaining of the application memory size and the memory area identifier through the second service process may be performed in various ways, specifically as follows:
(1) the obtaining the application memory size and the memory area identifier through the second service process includes: sending a notification message to the second service process through the first service process, wherein the notification message comprises the application memory size and the memory area identifier; and receiving the notification message through the second service process to acquire the application memory size and the memory area identifier.
(2) The size of the application memory and the memory area identifier are obtained by pre-appointing the same rule in a second service process and a service process, for example, the size of the application memory and the memory area identifier are pre-appointed in the second service process and the service process, and the second service process and the service process obtain the appointed size of the application memory and the memory area identifier.
306. And creating the first shared memory area according to the applied memory size and the memory area identifier through the second service process.
In the embodiment of the application, when mapping the memory address, the service process obtains the physical memory through application, determines the virtual memory address corresponding to the physical memory address from the predetermined virtual memory space through the precomputed offset value of the physical memory address and the virtual memory address, establishes the mapping relationship, creates the shared memory area, and simultaneously informs the memory size and the memory area identifier to the second service process, so that the second service process creates the same shared memory area, mapping of the memory address is realized, and because the conversion between the physical memory address and the virtual memory address can be obtained only through the precomputed offset value, the conversion efficiency of the physical memory address and the virtual memory address is improved.
Optionally, the right is set to be inaccessible before the virtual memory address in the virtual memory space is not allocated; after allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space, the method further comprises:
and setting the first virtual memory address in the virtual memory space to be only accessed by the first business process.
Therefore, the process can only access the memory space allocated to the process, but can not access the memory spaces of other processes or unallocated memory spaces, thereby achieving the effects of memory isolation and protection.
Optionally, in this embodiment of the present application, a shared memory area may be created between a plurality of service processes and a second service process, where at least one service process may further include a third service process, and the method may further include:
generating a second memory application request through the third business process, wherein the second memory application request comprises the size of an application memory and a memory area identifier;
allocating a second physical memory address from the physical memory space through the third business process according to the memory application request, and allocating a second virtual memory address corresponding to the second physical memory address from the virtual memory space according to a pre-calculated offset value of the physical memory address and the virtual memory address;
establishing a mapping relation between second virtual memory addresses corresponding to the second physical memory address through the third business process, and establishing a second shared memory area;
the second service process acquires the applied memory size and the memory area identifier in the second application request;
and creating the second shared memory area according to the application memory size and the memory area identification in the second application request through the second service process.
The at least one business process further comprises a fourth business process, and the method further comprises:
acquiring the size of the applied memory and the memory area identification;
and creating the first shared memory area according to the applied memory size and the memory area identifier through the fourth service process.
In this case, no matter what process or how many processes, only the same memory area identifier and the same memory size information are acquired, and the memory areas created according to the memory area identifier and the memory size are the same shared memory area, so that the memory areas are reasonably used.
In order to facilitate better understanding of the technology, the following embodiments describe the memory address method described in the foregoing embodiments in a specific application scenario.
As shown in fig. 4, the linux system of a terminal has three business processes: the method comprises the following steps that a service process 1, a service process 2 and a service process 3 are respectively provided, each process comprises a service module and a memory module, and when each process is initialized, the memory module of each process acquires a starting physical address, phy _ start ═ 0x3c8000000 and a size, phy _ size ═ 0x40000000, of a system reserved memory; then, calling an open interface to create a new file with the file name "mem _ vap", such as fd — open ("mem _ vap", O _ RDONLY | O _ credit); after the file is created successfully, a mmap interface is called to apply for a virtual memory, the size of the mmap interface is 0x40000000 of the size of the physical memory, such as mmap (NULL,0x40000000, PROT _ NONE, MAP _ PRIVATE, fd, 0).
The three business processes respectively return the initial virtual memory addresses allocated by the system as follows:
vir_start_1=0x7fffb0000000;
vir_start_2=0x7fffa0000000;
vir_start_3=0x7fff00000000。
the offset values calculated by the processes are offset _1 ═ 0x7ffbe8000000, offset _2 ═ 0x7ffbd8000000, and offset _3 ═ 0x7ffb38000000, respectively, according to the start virtual memory address at Step 1.
A service module of a service process 1 applies for a 32MB shared memory, and calls an application function shm _ alloc (0x2000000, shared, "p 1_ share _ 1") of a memory module; the memory module obtains a physical address of 0x3c8000000 according to an allocation algorithm, and calculates that the corresponding virtual memory is 0x3c8000000+0x7ffbe8000000 ═ 0x7fffb 0000000.
The memory module of the service process 1 calls a munmap function to release the memory space applied by the Step1, wherein the size of the memory space is 32MB and the size of the munmap function is 0x7fffb0000000 and 0x 2000000.
And the memory module of the business process 1 calls a mmap function to establish a mapping relation between the allocated physical memory address and the virtual memory address. First the device fd is turned on (open ("/dev/mem", O _ RDWR, S _ IRUSR | S _ IWUSR) and then mmap is called (0x7fffb0000000,0x2000000, PROT _ READ | PROT _ WRITE, MAP _ SHARED | MAP _ FIXED,0x3c 8000000).
The memory module of business process 1 returns 0x7fffb0000000 to the business module of business process 1.
The service module of the service process 1 sends a notification message to the service module of the service process 3, and the parameter is 0x2000000, shared, "p 1_ share _ 1".
After receiving the message, the service module of the service process 3 calls the memory module of the service process 3 to apply for the shared memory, for example, shm _ alloc (0x2000000, shared, "p 1_ share _ 1").
The memory module of the business process 3 determines that the physical memory of the memory area corresponding to the name is 0x3c8000000 according to the applied name "p 1_ share _ 1". The corresponding virtual memory is calculated to be 0x3c8000000+0x7ffb38000000 ═ 0x7fff 00000000.
The memory module of the service process 3 calls the munmap to release the memory space applied by the Step1, wherein the size of the memory space is 32MB and the size of the munmap is 0x7fff00000000 and 0x 2000000.
And the memory module of the business process 3 calls mmap to establish the mapping relation between the allocated physical memory address and the virtual memory address. First the device fd is turned on (open ("/dev/mem", O _ RDWR, S _ IRUSR | S _ IWUSR), and then mmap is called (0x7fff00000000,0x2000000, PROT _ READ | PROT _ WRITE, MAP _ SHARED | MAP _ FIXED,0x3c 8000000).
And the memory module of the service process 3 returns 0x7fff00000000 to the service module of the service process 3.
Thus, a shared memory area is established between the service process and the service process 3, and the virtual address of the established shared memory area is obtained by adding the allocated physical address and the offset value determined during initialization. The service process 1 or another service process may establish a plurality of shared memory areas by repeating the above steps, as shown in the memory area map of fig. 4, the service process 1 establishes two shared memory areas, and the service process 2 establishes one shared memory area.
An embodiment of the apparatus of the present invention is described below.
Referring to fig. 5, an embodiment of a device 500 in this embodiment of the present application is shown, where the device is a terminal or a server, the device includes at least one processor and a memory, the memory stores an operating system, the operating system includes at least one service process, and the at least one service process includes a first service process (service process 1) and a second service process (service process 2); the first business process comprises a business module and a memory module, and the second business process comprises a business module and a memory module; those skilled in the art will appreciate that the configuration of the device shown in fig. 5 is not intended to limit the present invention, and may be a bus configuration, a star configuration, a combination of more or fewer components than those shown, or a different arrangement of components.
The at least one processor is configured to execute the processes stored in the memory to perform the steps of:
generating a first memory application request through a service module of the first service process, wherein the first memory application request comprises an application memory size and a memory area identifier;
allocating a first physical memory address from a reserved physical memory space through a memory module of the first service process according to the memory application request, and allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated physical memory address and an offset value of the virtual memory address, wherein the virtual memory space is determined through the physical memory space;
establishing a first shared memory area through the memory module of the first service process, wherein the memory module of the first service process is also used for establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses;
acquiring the applied memory size and the memory area identifier through a service module of the second service process;
and creating the first shared memory area through the memory module of the second service process according to the applied memory size and the memory area identifier.
Optionally, before the memory module of the first service process calculates the first virtual memory address corresponding to the first physical memory address according to the pre-calculated offset values of the physical memory address and the virtual memory address, the at least one processor is specifically configured to calculate the offset values of the physical memory address and the virtual memory address through the memory module of the first service process.
Optionally, the at least one processor is specifically configured to obtain, by using the memory module of the first service process, a starting address of the physical memory space and a size of the physical memory space; allocating the virtual memory space according to the initial address of the reserved physical memory space and the size of the physical memory space; and calculating the offset values of the physical memory address and the virtual memory address according to the initial address of the physical memory space and the initial address of the virtual memory space.
Optionally, the right is set to be inaccessible before the virtual memory address in the virtual memory space is not allocated;
after allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space, the at least one processor is further configured to set, in the virtual memory space, the first virtual memory address to be only accessible to the first business process through a memory module of the first business process.
Optionally, the at least one processor is specifically configured to send a notification message to the service module of the second service process through the service module of the first service process, where the notification message includes the application memory size and the memory area identifier;
the at least one processor is further specifically configured to receive the notification message through the service module of the second service process, and obtain the application memory size and the memory area identifier.
Optionally, the at least one service process further includes a third service process, where the third service process includes a service module and a memory module;
the at least one processor is further configured to generate a second memory application request through the service module of the third service process, where the second memory application request includes a memory size and a memory area identifier;
the at least one processor is further configured to allocate, by the memory module of the third service process, a second physical memory address from the reserved physical memory space according to the memory application request, and allocate, according to the pre-calculated physical memory address and the offset value of the virtual memory address, a second virtual memory address corresponding to the second physical memory address from the predetermined virtual memory space, where the virtual memory space is determined by the physical memory space;
the at least one processor is further configured to establish a mapping relationship between second virtual memory addresses corresponding to the second physical memory address through a memory module of the third service process, and establish a second shared memory area;
the at least one processor is further configured to obtain, through the service module of the second service process, the application memory size and the memory area identifier in the second application request;
the at least one processor is further configured to create the second shared memory area through the memory module of the second service process according to the application memory size in the second application request and the memory area identifier.
Optionally, the at least one service process further includes a fourth service process, where the fourth service process includes a service module and a memory module;
the at least one processor is further configured to execute the processes stored in the memory to perform the steps of:
acquiring the applied memory size and the memory area identifier through a service module of the fourth service process;
and creating the first shared memory area through the memory module of the fourth service process according to the applied memory size and the memory area identifier.
In the embodiment of the present application, the processor may be composed of an Integrated Circuit (IC), for example, a single packaged IC, or a plurality of packaged ICs connected with the same function or different functions. For example, the processor may include only a Central Processing Unit (CPU), or may be a combination of a GPU, a Digital Signal Processor (DSP), and a control chip (e.g., a baseband chip) in the communication management module. In the embodiment of the present invention, the CPU may be a single operation core, or may include multiple operation cores.
As shown in fig. 5, in some embodiments of the present application, the apparatus in the embodiments of the present application may further include a communication device, an input device, an output device, a peripheral interface, a power supply, and the like, which are not limited herein.
The input device is used for realizing interaction between a user and the equipment and/or inputting information into the equipment. For example, an input device may receive numeric or character information input by a user to generate a signal input related to a user setting or function control. In the embodiment of the present invention, the input device may be a touch panel, other human-computer interaction interfaces such as physical input keys and a microphone, or other external information capturing devices such as a camera. A touch panel, also referred to as a touch screen or touch screen, may collect an operation action on which a user touches or approaches. For example, the user uses any suitable object or accessory such as a finger, a stylus, etc. to operate on or near the touch panel, and drives the corresponding connection device according to a preset program. Alternatively, the touch panel may include two parts, a touch detection device and a touch controller. The touch detection device detects touch operation of a user, converts the detected touch operation into an electric signal and transmits the electric signal to the touch controller; the touch controller receives the electrical signal from the touch sensing device and converts it to touch point coordinates, which are then fed to the processor unit. The touch controller can also receive and execute commands sent by the processing unit. In addition, the touch panel may be implemented in various types, such as resistive, capacitive, Infrared (Infrared), and surface acoustic wave. In other embodiments of the present invention, the physical input keys employed by the input device may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, a joystick, and the like. An input device in the form of a microphone may collect speech input by a user or the environment and convert it into commands executable by the processing unit in the form of electrical signals.
In some other embodiments of the present application, the input device may also be various sensing devices, such as hall devices, for detecting physical quantities of the equipment, such as force, moment, pressure, stress, position, displacement, speed, acceleration, angle, angular velocity, number of rotations, rotational speed, and time of change of working state, and converting the physical quantities into electric quantities for detection and control. Other sensing devices may include gravity sensors, three-axis accelerometers, gyroscopes, electronic compasses, ambient light sensors, proximity sensors, temperature sensors, humidity sensors, pressure sensors, heart rate sensors, fingerprint identifiers, and the like.
The output device includes, but is not limited to, an image output device and an audio output device. The image output device is used for outputting characters, pictures and/or videos. The image output device may include a display panel, such as a display panel configured in the form of an LCD (Liquid crystal display), an OLED (Organic Light-Emitting Diode), a Field Emission Display (FED), and so on. Alternatively, the image output device may include a reflective display, such as an electrophoretic (electrophoretic) display, or a display using an Interferometric Modulation of Light (Interferometric Modulation). The image output device may include a single display or a plurality of displays of different sizes. In an embodiment of the present invention, the touch panel used in the input device can also be used as a display panel of the output device. For example, when the touch panel detects a gesture operation of touch or proximity thereon, the gesture operation is transmitted to the processing unit to determine the type of the touch event, and then the processing unit provides a corresponding visual output on the display panel according to the type of the touch event. Although in fig. 5 the input means and the output means are two separate components to implement the input and output functions of the device, in some embodiments, the touch panel may be integrated with the display panel to implement the input and output functions of the device. For example, the video output device may display various Graphical User Interfaces (GUI) as virtual control elements, including but not limited to windows, scroll bars, icons, and scrapbooks, for a User to operate in a touch manner.
In an embodiment of the present invention, the image output device includes a filter and an amplifier for filtering and amplifying the video output by the processing unit. The audio output device includes a digital-to-analog converter for converting the audio signal output by the processing unit from a digital format to an analog format.
The communication device may be configured to establish a communication channel, so that the apparatus performs voice communication, text communication, and data communication with a remote electronic apparatus or a server through the communication channel. The communication device may include a Wireless Local Area Network (WLAN) module, a bluetooth module, a baseband (Base Band) module, and other communication modules, and a Radio Frequency (RF) circuit corresponding to the communication module, and is configured to perform WLAN communication, bluetooth communication, infrared communication, and/or cellular communication system communication, such as Wideband Code Division Multiple Access (WCDMA) and/or High Speed Downlink Packet Access (HSDPA). The communication module is used for controlling communication of each component in the device, and can support Direct memory access (Direct memory access).
In different embodiments of the present invention, the various communication modules in the communication device are generally in the form of Integrated Circuit chips (Integrated Circuit chips), and can be selectively combined without including all the communication modules and the corresponding antenna groups. For example, the communication device may include only a baseband chip, a radio frequency chip, and a corresponding antenna to provide communication functions in a cellular communication system. The device may be connected to a Cellular Network (Cellular Network) or the Internet (Internet) via a wireless communication connection established by the communication means, such as a wireless local area Network access or a WCDMA access.
The radio frequency circuit is used for receiving and sending signals in the process of information transceiving or conversation. For example, after receiving the downlink information of the base station, the downlink information is processed by the processing unit; in addition, the data for designing uplink is transmitted to the base station. Typically, the radio frequency circuitry includes well-known circuitry for performing these functions, including but not limited to an antenna system, a radio frequency transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a Codec (Codec) chipset, a Subscriber Identity Module (SIM) card, memory, and so forth. In addition, the radio frequency circuitry may also communicate with networks and other devices via wireless communications. The wireless communication may use any communication standard or protocol, including but not limited to GSM (Global System for mobile communications), GPRS (General Packet Radio Service), CDMA (Code Division Multiple Access), WCDMA (Wideband Code Division Multiple Access), High Speed Downlink Packet Access (HSDPA), LTE (Long Term Evolution), e-mail, SMS (Short Messaging Service), etc.
An embodiment of the present invention further provides a computer storage medium, where the computer storage medium may store a program, and when the program is executed, the program includes some or all of the steps of the method for mapping at least a memory address described in the foregoing method embodiments.
It will be clear to those skilled in the art that for convenience and brevity of description, in the above embodiments, the description of each embodiment has a respective emphasis, and for parts not described in detail in a certain embodiment, reference may be made to the related description of other embodiments.
It should be noted that, for simplicity of description, the above-mentioned method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the order of acts, as some steps may occur in other orders or concurrently in accordance with the invention. Further, those skilled in the art should also appreciate that the embodiments described in the specification are preferred embodiments and that the acts and modules referred to are not necessarily required by the invention.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.
The above-mentioned embodiments are only used for illustrating the technical solutions of the present invention, and not for limiting the same; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (15)

1. A mapping method of a memory address is applied to a target device, wherein the target device is a terminal or a server, an operating system is installed in the target device, the operating system includes at least one service process, the at least one service process includes a first service process and a second service process, and the method includes:
generating a first memory application request through the first service process, wherein the first memory application request comprises an application memory size and a memory area identifier;
allocating a first physical memory address from a reserved physical memory space through the first service process according to the memory application request, and allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated physical memory address and an offset value of the virtual memory address, wherein the virtual memory space is determined through the physical memory space, and the offset value is used as a reference value calculated between the physical memory address and the virtual memory address;
establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses through the first service process, and establishing a first shared memory area;
acquiring the applied memory size and the memory area identifier through the second service process;
and creating the first shared memory area according to the applied memory size and the memory area identifier through the second service process.
2. The method of claim 1, wherein before the calculating a first virtual memory address corresponding to the first physical memory address according to the pre-calculated offset values of the physical memory address and the virtual memory address, the method further comprises:
offset values for the physical memory address and the virtual memory address are calculated.
3. The method of claim 2, wherein calculating the offset values for the physical memory address and the virtual memory address comprises:
acquiring a starting address of the physical memory space and the size of the physical memory space;
allocating the virtual memory space according to the initial address of the reserved physical memory space and the size of the physical memory space;
and calculating the offset values of the physical memory address and the virtual memory address according to the initial address of the physical memory space and the initial address of the virtual memory space.
4. The method according to any one of claims 1 to 3, wherein the virtual memory address in the virtual memory space is set to be inaccessible until the virtual memory address is not allocated;
after allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space, the method further comprises:
and setting the first virtual memory address in the virtual memory space to be only accessed by the first business process.
5. The method according to any one of claims 1 to 3,
the obtaining the application memory size and the memory area identifier through the second service process includes:
sending a notification message to the second service process through the first service process, wherein the notification message comprises the application memory size and the memory area identifier;
and receiving the notification message through the second service process to acquire the application memory size and the memory area identifier.
6. The method according to any one of claims 1 to 3,
the at least one business process further comprises a third business process, and the method further comprises:
generating a second memory application request through the third business process, wherein the second memory application request comprises the size of an application memory and a memory area identifier;
allocating a second physical memory address from the physical memory space through the third business process according to the memory application request, and allocating a second virtual memory address corresponding to the second physical memory address from the virtual memory space according to a pre-calculated offset value of the physical memory address and the virtual memory address;
establishing a mapping relation between second virtual memory addresses corresponding to the second physical memory address through the third business process, and establishing a second shared memory area;
the second service process acquires the applied memory size and the memory area identifier in the second memory application request;
and creating the second shared memory area according to the application memory size in the second memory application request and the memory area identifier through the second service process.
7. The method according to any one of claims 1 to 3,
the at least one business process further comprises a fourth business process, and the method further comprises:
acquiring the size of the applied memory and the memory area identification;
and creating the first shared memory area according to the applied memory size and the memory area identifier through the fourth service process.
8. A terminal is characterized in that the terminal comprises at least one processor and a memory, wherein an operating system is stored in the memory, the operating system comprises at least one business process, and the at least one business process comprises a first business process and a second business process; the first business process comprises a business module and a memory module, and the second business process comprises a business module and a memory module;
the at least one processor is configured to execute the processes stored in the memory to perform the steps of:
generating a first memory application request through a service module of the first service process, wherein the first memory application request comprises an application memory size and a memory area identifier;
allocating a first physical memory address from a reserved physical memory space through a memory module of the first service process according to the memory application request, and allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated physical memory address and an offset value of the virtual memory address, wherein the virtual memory space is determined through the physical memory space, and the offset value is used as a reference value calculated between the physical memory address and the virtual memory address;
establishing a first shared memory area through the memory module of the first service process, wherein the memory module of the first service process is also used for establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses;
acquiring the applied memory size and the memory area identifier through a service module of the second service process;
and creating the first shared memory area through the memory module of the second service process according to the applied memory size and the memory area identifier.
9. The terminal according to claim 8, wherein the at least one processor is specifically configured to calculate the offset values of the physical memory address and the virtual memory address through the memory module of the first business process before the memory module of the first business process calculates the first virtual memory address corresponding to the first physical memory address according to the pre-calculated offset values of the physical memory address and the virtual memory address.
10. The terminal according to claim 9, wherein the at least one processor is specifically configured to obtain a starting address of the physical memory space and a size of the physical memory space through a memory module of the first service process; allocating the virtual memory space according to the initial address of the reserved physical memory space and the size of the physical memory space; and calculating the offset values of the physical memory address and the virtual memory address according to the initial address of the physical memory space and the initial address of the virtual memory space.
11. The terminal according to any one of claims 8 to 10, wherein the virtual memory address in the virtual memory space is set to be inaccessible until the virtual memory address is not allocated;
after allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space, the at least one processor is further configured to set, in the virtual memory space, the first virtual memory address to be only accessible to the first business process through a memory module of the first business process.
12. The terminal according to any of the claims 8 to 10,
the at least one processor is specifically configured to send a notification message to the service module of the second service process through the service module of the first service process, where the notification message includes the application memory size and the memory area identifier;
the at least one processor is further specifically configured to receive the notification message through the service module of the second service process, and obtain the application memory size and the memory area identifier.
13. The terminal according to any of claims 8 to 10, wherein the at least one service process further comprises a third service process, and the third service process comprises a service module and a memory module;
the at least one processor is further configured to generate a second memory application request through the service module of the third service process, where the second memory application request includes a memory size and a memory area identifier;
the at least one processor is further configured to allocate, by the memory module of the third service process, a second physical memory address from the reserved physical memory space according to the memory application request, and allocate, according to the pre-calculated physical memory address and the offset value of the virtual memory address, a second virtual memory address corresponding to the second physical memory address from the predetermined virtual memory space, where the virtual memory space is determined by the physical memory space;
the at least one processor is further configured to establish a mapping relationship between second virtual memory addresses corresponding to the second physical memory address through a memory module of the third service process, and establish a second shared memory area;
the at least one processor is further configured to obtain, through the service module of the second service process, the memory application size and the memory area identifier in the second memory application request;
the at least one processor is further configured to create the second shared memory area through the memory module of the second service process according to the application memory size in the second memory application request and the memory area identifier.
14. The terminal according to any of claims 8 to 10, wherein the at least one service process further comprises a fourth service process, and the fourth service process comprises a service module and a memory module;
the at least one processor is further configured to execute the processes stored in the memory to perform the steps of:
acquiring the applied memory size and the memory area identifier through a service module of the fourth service process;
and creating the first shared memory area through the memory module of the fourth service process according to the applied memory size and the memory area identifier.
15. A server is characterized in that the server comprises at least one processor and a memory, wherein an operating system is stored in the memory, the operating system comprises at least one business process, and the at least one business process comprises a first business process and a second business process; the first business process comprises a business module and a memory module, and the second business process comprises a business module and a memory module;
the at least one processor is configured to execute the processes stored in the memory to perform the steps of:
generating a first memory application request through a service module of the first service process, wherein the first memory application request comprises an application memory size and a memory area identifier;
allocating a first physical memory address from a reserved physical memory space through a memory module of the first service process according to the memory application request, and allocating a first virtual memory address corresponding to the first physical memory address from a predetermined virtual memory space according to a pre-calculated physical memory address and an offset value of the virtual memory address, wherein the virtual memory space is determined through the physical memory space, and the offset value is used as a reference value calculated between the physical memory address and the virtual memory address;
establishing a first shared memory area through the memory module of the first service process, wherein the memory module of the first service process is also used for establishing a mapping relation between first virtual memory addresses corresponding to the first physical memory addresses;
acquiring the applied memory size and the memory area identifier through a service module of the second service process;
and creating the first shared memory area through the memory module of the second service process according to the applied memory size and the memory area identifier.
CN201610164190.XA 2016-03-22 2016-03-22 Memory address mapping method and device Active CN105975407B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610164190.XA CN105975407B (en) 2016-03-22 2016-03-22 Memory address mapping method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610164190.XA CN105975407B (en) 2016-03-22 2016-03-22 Memory address mapping method and device

Publications (2)

Publication Number Publication Date
CN105975407A CN105975407A (en) 2016-09-28
CN105975407B true CN105975407B (en) 2020-10-09

Family

ID=56988695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610164190.XA Active CN105975407B (en) 2016-03-22 2016-03-22 Memory address mapping method and device

Country Status (1)

Country Link
CN (1) CN105975407B (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649133B (en) * 2016-12-29 2019-12-06 杭州迪普科技股份有限公司 Method and equipment for optimizing PCI (peripheral component interconnect) memory space
CN107329790B (en) * 2017-06-30 2021-01-15 联想(北京)有限公司 Data processing method and electronic equipment
CN109669784B (en) 2017-10-13 2021-06-22 华为技术有限公司 Method and system for interprocess communication
CN107861888B (en) * 2017-11-08 2020-03-24 郑州云海信息技术有限公司 DDR method, system and device for FPGA card and readable storage medium
CN107908475B (en) * 2017-11-09 2021-11-26 深圳市创维软件有限公司 Memory capacity judging method, server and storage medium
CN108334413A (en) * 2017-12-22 2018-07-27 天津麒麟信息技术有限公司 Information transmitting methods between a kind of firmware and operating system based on platform of soaring
CN110096453B (en) * 2019-04-11 2020-01-03 北京华三通信技术有限公司 Data processing method and device
CN110231989A (en) * 2019-05-14 2019-09-13 深圳市亿联智能有限公司 A kind of embedded intelligent terminal dynamic memory optimization method
CN110287044B (en) * 2019-07-02 2021-08-03 广州虎牙科技有限公司 Lock-free shared memory processing method and device, electronic equipment and readable storage medium
CN111221758B (en) * 2019-09-30 2023-06-27 华为技术有限公司 Method and computer device for processing remote direct memory access request
CN111679921B (en) * 2020-06-09 2023-08-01 Oppo广东移动通信有限公司 Memory sharing method, memory sharing device and terminal equipment
CN112148229B (en) * 2020-10-12 2024-01-30 北京计算机技术及应用研究所 Method for accelerating read-write efficiency of nonvolatile memory under Feiteng server platform
CN114006859B (en) * 2021-09-18 2023-05-30 深圳震有科技股份有限公司 Message forwarding method, terminal and computer readable storage medium
CN117914860A (en) * 2022-10-12 2024-04-19 华为技术有限公司 Collective communication method and computing cluster
CN116185565A (en) * 2022-12-29 2023-05-30 芯动微电子科技(武汉)有限公司 Memory data isolation and sharing system and method
CN117492933B (en) * 2023-12-28 2024-03-22 苏州元脑智能科技有限公司 Data exchange method, device, electronic equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747827A1 (en) * 1995-06-07 1996-12-11 International Business Machines Corporation System and method for providing shared memory using shared virtual segment identification in a computer system
CN102253855A (en) * 2011-06-17 2011-11-23 北京书生国际信息技术有限公司 Method and device for transferring shared memory
CN103414535A (en) * 2013-07-31 2013-11-27 华为技术有限公司 Data sending method, data receiving method and relevant devices
CN104636260A (en) * 2013-11-06 2015-05-20 深圳市风景智联科技有限公司 Data management method and system for charging services

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9343185B2 (en) * 2013-09-26 2016-05-17 International Business Machines Corporation Electronic circuit for fitting a virtual address range to a physical memory containing faulty address

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0747827A1 (en) * 1995-06-07 1996-12-11 International Business Machines Corporation System and method for providing shared memory using shared virtual segment identification in a computer system
CN102253855A (en) * 2011-06-17 2011-11-23 北京书生国际信息技术有限公司 Method and device for transferring shared memory
CN103414535A (en) * 2013-07-31 2013-11-27 华为技术有限公司 Data sending method, data receiving method and relevant devices
CN104636260A (en) * 2013-11-06 2015-05-20 深圳市风景智联科技有限公司 Data management method and system for charging services

Also Published As

Publication number Publication date
CN105975407A (en) 2016-09-28

Similar Documents

Publication Publication Date Title
CN105975407B (en) Memory address mapping method and device
CN106062763B (en) Method and device for displaying application and picture and electronic equipment
EP2940579A1 (en) Electronic device and method for converting source code into machine code
CN106658489B (en) Terminal application processing method and device and mobile terminal
EP3190763B1 (en) Screen sharing method and sharing device
JP2019536554A (en) Object display method, terminal device, and computer storage medium
US20200278775A1 (en) Managing a Plurality of Free Windows in Drop-Down Menu of Notification Bar
US10452165B2 (en) Input device, method, and system for electronic device
US20160328764A1 (en) Item transfer apparatus, system and method
KR102140290B1 (en) Method for processing input and an electronic device thereof
CN107870666B (en) Terminal control method and terminal
CN106375478B (en) A kind of synchronous method of mobile terminal data, apparatus and system
CN106105168B (en) Call forwarding method, terminal and portable electronic equipment
WO2019184631A1 (en) Information processing method and apparatus, computer-readable storage medium, and terminal
AU2018399177A1 (en) Electronic transaction method and terminal
WO2018095216A1 (en) Relationship chain processing method, terminal and storage medium
CN107766548A (en) Method for information display, device, mobile terminal and readable storage medium storing program for executing
MX2015003710A (en) Client information acquisition method, server and storage medium.
KR20150086976A (en) Method for controlling a displaying an object and an electronic device
CN109117037B (en) Image processing method and terminal equipment
CN111026457B (en) Hardware configuration method and device, storage medium and terminal equipment
CN111931155A (en) Verification code input method, verification code input equipment and storage medium
CN112163194A (en) Authorization method of application permission, mobile terminal and computer storage medium
CN106411681B (en) Information processing method, initiating device, server and participating device
CN109033773B (en) Dual-screen terminal operation authority management method, terminal and computer readable storage medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211224

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.