Task scheduling method and device
By dynamically scheduling tasks in a multiprocessor system and using performance control conditions to transfer tasks to high-performance processing units, the problem of unoptimized task scheduling in a multiprocessor system is solved, and system performance and energy efficiency are improved.
Patent Information
- Application Number
- CN202011376119.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2014-01-29
- Filing Date
- 2015-01-29
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2035-01-29
AI Technical Summary
In multiprocessor systems, it is difficult for the prior art to effectively schedule tasks, resulting in unoptimized processor execution order, affecting system performance and energy consumption.
By assigning the task to the first processing unit of the functionally connected and processing based on the performance control conditions associated with the task at least partially transferring the task to the second processing unit, the scheduler unit and the performance control conditioner jointly realize dynamic scheduling of the task.
Improves system performance, reduces unnecessary energy consumption, and can optimize task allocation when performance control conditions are generated to adapt to different workload situations.
Smart Images

Figure CN112328384B_ABST
Abstract
Description
[0001] This application is a divisional application of a patent application filed with the State Intellectual Property Office on January 29, 2015, with application number 201580006490.9 and titled “Task Scheduling Method and Device”. Technical Field
[0002] The present invention relates to a method and device for scheduling tasks in a multi-processor system environment. Background Art
[0003] With the recent progress in processor technology, single-core processors have evolved into multi-core processors. Multi-processors can improve the execution performance of applications by running multiple tasks simultaneously through parallelization. Summary of the invention
[0004] Technical issues
[0005] In a multiprocessor system, an operating system handles multiple tasks by scheduling the execution order of the processors.
[0006] Technical Solution
[0007] According to one aspect of the present invention, a method for scheduling tasks using multiple processing units is provided. The method may include: assigning a task to a processing unit in a first processing unit functionally connected to an electronic device; and transferring the task to a processing unit in a second processing unit for processing based at least in part on a performance control condition associated with the task.
[0008] According to another aspect of the present invention, an electronic device is provided. The electronic device may include: a first processing unit; a second processing unit; a scheduler unit configured to assign a task to the first processing unit; and a performance control conditioner configured to detect the generation of a performance control condition associated with the task, wherein the scheduler unit transfers the task to the second processing unit for processing based at least in part on the performance control condition.
[0009] In a feature of the present invention, the task scheduling method and apparatus may, when necessary, assign or transfer tasks to high-performance processing units to process the tasks regardless of the workload of the processing units, thereby improving system performance while reducing unnecessary energy consumption.
[0010] Beneficial Effects
[0011] An aspect of the present invention provides a scheme capable of allocating a task generating a performance control condition to a preset processing unit regardless of a workload when the performance control condition is generated.
[0012] Another aspect of the present invention provides a task scheduling method and apparatus capable of improving system performance by controlling task processing when necessary in a processor environment including heterogeneous processing units. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 The configuration of a multi-processing unit system according to various embodiments is shown.
[0014] Figure 2 The configuration of a multi-processing unit system according to various embodiments is shown.
[0015] Figure 3 The overall task processing operation in a multi-processing unit system according to various embodiments is shown.
[0016] Figure 4 A method for task distribution in a multi-processing unit system according to various embodiments is shown.
[0017] Figure 5 A method for task distribution in a multi-processing unit system according to various embodiments is shown.
[0018] Figure 6 A method for task distribution in a multi-processing unit system according to various embodiments is shown.
[0019] Figure 7 A network environment including electronic devices according to various embodiments is shown.
[0020] Figure 8 is a block diagram of an electronic device according to various embodiments. DETAILED DESCRIPTION
[0021] It will be understood that the terms "include" and "may include" are used to describe the existence of disclosed functions, operations, components, etc., but do not exclude the existence of one or more functions, operations, components, etc. It will also be understood that when the terms "include" and / or "have" are used in this specification, it describes the existence of the stated features, quantities, steps, operations, components, elements, or combinations thereof, but does not exclude the existence or addition of one or more other features, quantities, steps, operations, components, elements, or combinations thereof.
[0022] In the present invention, the term "and / or" is considered to be a specific invention of each or any combination of the listed items. For example, A and / or B is considered to be a specific invention of each of A, B and the combination of A and B.
[0023] As used herein, terms such as "first", "second", etc. are used to describe various components, but do not limit the corresponding components. However, it is clear that the components should not be limited by these terms. These terms are only used to distinguish one component from another element. For example, without departing from the teachings of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.
[0024] It will be understood that when an element or layer is referred to as being “on,” “connected to,” or “coupled to” another element or layer, the element or layer may be directly on, connected or coupled to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to,” or “directly coupled to” another element or layer, there are no intervening elements or layers.
[0025] The terms used herein are for the purpose of describing detailed embodiments only and are not intended to limit the present invention. As used herein, unless the context clearly indicates otherwise, the singular form is intended to include the plural form as well.
[0026] Unless otherwise defined, all terms used herein have the same meaning as those generally understood by those skilled in the art to which the present invention belongs, and should neither be interpreted as having an overly broad meaning nor an overly narrow meaning. Common terms used herein should be interpreted according to the definitions in the dictionary or in the context, and should not be interpreted as having an overly narrow meaning.
[0027] In the following description, an electronic device may be a device having a communication function. Examples of electronic devices may include at least one of a smartphone, a personal tablet PC, a mobile phone, a video phone, an electronic book (ebook) reader, a desktop PC, a laptop PC, a netbook PC, a personal digital assistant (PAD), a portable multimedia player (PMP), an MP3 player, a mobile medical device, a camera, a wearable device (e.g., a head mounted device (HMD) such as electronic glasses), electronic clothing, electronic handcuffs, an electronic necklace, a smart accessory, an electronic tattoo, and a smart watch.
[0028] According to certain embodiments, an example of an electronic device may be a smart home appliance with a communication function. Examples of smart home appliances may include a television, a digital video disc (DVD) player, an audio player, a refrigerator, an air conditioner, a vacuum cleaner, an oven, a microwave oven, a washing machine, an air purifier, a set-top box, a TV box (e.g., Samsung HomeSync Tm , Apple TV TM and Google TV TM), at least one of a game console, an electronic dictionary, an electronic key, a portable camera and an electronic frame.
[0029] Depending on the particular embodiment, examples of electronic devices may include medical equipment (e.g., magnetic resonance angiography (MRA), magnetic resonance imaging (MRI), computed tomography (CT), cameras, and ultrasound devices), navigation devices, global positioning system (GPS) receivers, event data recorders (EDR), flight data recorders (FDR), automotive infotainment devices, marine electronic equipment (e.g., ship navigation devices and gyrocompasses), avionics devices, security devices, heads-up displays (HUD), industrial or household robots, financial institutions' automated teller machines (ATMs), and at least one of electronic payment machines (POS).
[0030] According to a specific embodiment, examples of electronic devices may include furniture or a part of a building / structure with communication functions, an electronic board, an electronic signature receiving device, a projector, and a metering device (e.g., a water, electricity, and electric wave metering device). According to an embodiment, the electronic device may be one or any combination of the devices listed above. According to an embodiment, the electronic device may be a flexible device. However, it is obvious that the electronic device of the present invention is not limited to the above-mentioned devices in the field to which the present invention belongs.
[0031] An electronic device is described according to various embodiments with reference to the following drawings. In the description of various embodiments, the term "user" may refer to a person or a device (eg, a smart electronic device) that uses an electronic device.
[0032] In various embodiments, the electronic device may include a heterogeneous multi-core processor having at least two cores of different types. The multi-core processor may be composed of different processing units such as X86, X64, ARM, GPU, and DSP.
[0033] In various embodiments, a "processor" includes at least one core and may be defined as an independent entity capable of cooperating with other components of a device.
[0034] In various embodiments, a "processor unit" may be defined as the smallest entity in a processor capable of interpreting and executing instructions, and may be used interchangeably with "core."
[0035] Next, with reference to the drawings, a multiprocessor system and an electronic device having the multiprocessing system will be described as various embodiments.
[0036] Figure 1 A configuration of a multi-processing unit system 100 according to various embodiments is shown.
[0037] Reference Figure 1, the multi-processing unit system 100 may include a multi-core processor 120 and a database 130 .
[0038] The multi-core processor 120 may include one or more first processing units 121 , one or more second processing units 122 , a scheduler unit 123 , a task manager 124 , and a performance control conditioner 125 .
[0039] The first processing unit 121 and the second processing unit 122 may process tasks assigned by the scheduler unit 123. Here, a task means an executable work having a separate program part (eg, code and stack).
[0040] The first processing unit 121 may be a high-performance large core (eg, a Cortex-A15 core), and the second processing unit 122 may be a low-power small core (eg, a Cortex-A7 core).
[0041] In various embodiments, the multi-core processor 120 may include two or more processing units of different types. For example, the multi-core processor 120 may include a first processing unit, a second processing unit, a third processing unit, and combinations thereof.
[0042] The task manager 124 may select one of the first processing unit 121 and the second processing unit 122 to process the task according to the task information and the workload, and may schedule the tasks according to their priorities. The task manager 124 may select a core for processing the task and assign the task to the selected core.
[0043] In various embodiments, the scheduler unit 123 may assign the newly created task to a low-power core (eg, one of the second processing units 122 ) for processing.
[0044] When the workload of the task processed by one of the processing units in the second processing unit 122 exceeds a threshold value, the scheduler unit 123 may transfer the task whose workload exceeds the threshold value to one of the processing units in the first processing unit 121. For example, the scheduler unit 123 may deactivate the processing unit (source core) in the second processing unit 122 to which the task to be transferred is assigned, activate one of the processing units (target core) in the first processing unit 121, and transfer the task from the deactivated source core to the activated target core.
[0045] In response to a request for execution of a task, the scheduler unit 123 may assign the task to a high-performance core (e.g., one of the processing units in the first processing unit 121) when the workload of the task is higher than a threshold, and assign the task to a low-power core (e.g., one of the processing units in the second processing unit 122) when the workload of the task is lower than the threshold.
[0046] In various embodiments, when a performance control condition is generated in executing a task or creating a task, the scheduler unit 123 may assign a task related to the performance control condition to the first processing unit 121 or transfer a task processed by the second processing unit 122 to the first processing unit 121 .
[0047] The task manager 124 may create, delete, and change tasks according to a user request or a preset schedule. The task manager 124 may monitor the task processing of the first processing unit 121 and the second processing unit 122, and store the monitoring information in the database 130. For example, when a user executes a function of an application in the electronic device, the task manager 124 may create a task corresponding to the application function and transmit the task creation information to the scheduler unit 123. The scheduler unit 123 may assign the created task to one of the first processing unit 121 and the second processing unit 122 according to the scheduling setting so that the task is processed.
[0048] The task manager 124 may monitor the workload of the first processing unit 121 and the second processing unit 122 in processing the assigned tasks and check whether the workload is higher than a threshold value due to the tasks. When the workload of the first processing unit 121 becomes less than or equal to the threshold value, the task manager 124 may notify this to the scheduler unit 123. When the workload of the second processing unit 122 becomes greater than the threshold value, the task manager 124 may notify this to the scheduler unit 123.
[0049] In various embodiments, the threshold for transferring a task from the first processing unit 121 to the second processing unit 122 (downward transfer) may be different from the threshold for transferring a task from the second processing unit 122 to the first processing unit 121 (upward transfer).
[0050] The performance control conditioner 125 may detect the generation of a performance control condition associated with a task. When a performance control condition is generated, the performance control conditioner 125 may notify the scheduler unit 123 of this. In order to detect changes in task states, the performance control conditioner 125 may monitor the task manager 124 and other components (e.g., an input interface and a power control unit). For example, the performance control conditioner 125 may monitor the startup of an operating system due to power-on, the generation of a touch input signal for an application, the issuance of an application execution request, the loading of website information, the downloading or uploading of content, the drop of a battery current below a threshold, wired or wireless data transmission, etc.
[0051] The database 130 may store task information, performance information of the first processing unit 121 and the second processing unit 122 , task processing consumption information, scheduling setting information, and the like.
[0052] Figure 2A multi-processing unit system is shown in accordance with various embodiments.
[0053] Reference Figure 2 The multi-processing unit system may include a first processor 221, a second processor 222, a scheduler unit 223, a task manager 224, and a performance control conditioner 225.
[0054] In various embodiments, the first processor 221 may include a first processing unit 221a, and the second processor 222 may include a second processing unit 222a. For example, the first processor 221 may include a plurality of high-performance large cores (e.g., Cortex-A15 cores), and the second processor 222 may include a plurality of low-power small cores (e.g., Cortex-A7 cores). However, the present invention is not limited thereto.
[0055] In various embodiments, the first processor 221 and the second processor 222 may include the same type of cores.
[0056] In various embodiments, a multi-processing unit system may also include one or more processors including heterogeneous processing units.
[0057] The cores of the first processor 221 and the second processor 222 may process tasks assigned by the scheduler unit 223 .
[0058] The scheduler unit 223 may allocate tasks to the first processor 221 and the second processor 222 according to task information and workload or may schedule tasks according to priorities. The scheduler unit 223 may select one of the cores of the processor and allocate the task to the selected core.
[0059] In terms of operation and function, the scheduler unit 223, the task manager 224 and the performance control conditioner 225 are respectively Figure 1 The described scheduler unit 123, task manager 124 and performance control conditioner 125 are the same, so their description is omitted.
[0060] Figure 3 The overall task processing operation in a multi-processing unit system according to various embodiments is shown.
[0061] Reference Figure 3 In a multi-processing unit system, the scheduler unit may allocate the task to one of the first processing unit and the second processing unit.
[0062] In various embodiments, when a task including one or more threads is created, the scheduler unit may allocate the task to the second processing unit regardless of the task information.
[0063] In various embodiments, the scheduler unit may be configured to allocate the task with a high load to the first processing unit according to the task information. The scheduler unit may be configured to allocate the task with a low load to the second processing unit.
[0064] When the workload of the task processed by the second processing unit exceeds a threshold, the scheduler unit may be configured to transfer the task whose workload exceeds the threshold to the first processing unit. When the workload of the task processed by the first processing unit becomes lower than or equal to the threshold, the scheduler unit may be configured to transfer the task whose workload is lower than or equal to the threshold to the second processing unit.
[0065] When a performance control condition is generated in a task assigned to the second processing unit, the scheduler unit may be configured to transfer the task generating the performance control condition to the first processing unit regardless of the workload.
[0066] For example, refer to Figure 3 , a first task 310 and a second task 320 (e.g., heavy tasks) having a high load and a third task 330 and a fourth task 340 (e.g., easy tasks) having a low load may exist in a multi-processing unit system. A core having an assigned task may be an activated core, and a core having no assigned task may be an idle core.
[0067] Since the first task 310 is a task with a high load, it may be allocated to one of the first processing units. Since the second task 320 is a task with a low load, it may be allocated to one of the second processing units.
[0068] The task manager can monitor the state changes of the tasks to identify the changes of the workload of the tasks. The performance control conditioner can detect the generation of the performance control conditions related to the tasks.
[0069] The second task 320 may change in load from a load lower than or equal to a threshold to a load higher than a threshold. The scheduler unit may recognize that the load of the second task 320 is higher than the threshold. Therefore, the scheduler unit may transfer the second task 320 from the second processing unit to the first processing unit.
[0070] Since the load of the third task 330 is determined to be higher than the threshold, the third task 330 may be assigned to one of the first processing units. Subsequently, the load of the third task 330 may become lower than or equal to the threshold. In this case, the scheduler unit may transfer the third task 330 from the first processing unit to the second processing unit.
[0071] The fourth task 340 having a load lower than or equal to the threshold value may be assigned to one of the second processing units. The performance control conditioner may detect the generation of a performance control condition related to the fourth task 340. The performance control conditioner may notify the scheduler unit of the generation of the performance control condition. In response to the generation of the performance control condition, the scheduler unit may transfer the fourth task 340 having a low load to one of the first processing units, regardless of the workload.
[0072] In various embodiments, when a preset time period has passed after the performance control condition is generated or the performance control condition is completed, the scheduler unit may reallocate the fourth task 340 to one of the second processing units for continuous processing.
[0073] Figure 4 A method for task distribution in a multi-processing unit system according to various embodiments is shown.
[0074] Reference Figure 4 In operation 410, the multi-processing unit system creates a task according to a user request or a preset schedule. For example, when the operating system is started by powering on the electronic device, the multi-processing unit system may create a task corresponding to the startup function. The multi-processing unit system may also create a task related to a user request for application execution.
[0075] In operation 420, the multi-processing unit system assigns the created task to the first processing unit or the second processing unit. For example, the multi-processing unit system may assign the task to one of the second processing units (cores). As another example, the multi-processing unit system may assign a task with a high load to one of the first processing units and assign a task with a low load to one of the second processing units.
[0076] At operation 430, the multi-processing unit system detects whether a performance control condition associated with a task assigned to the second processing unit is generated. The performance control condition may correspond to at least one of the startup of an operating system due to power-on of the electronic device, detection of a touch input for an application, initialization of application execution, loading of a website, downloading or uploading of content, a reduction in remaining battery power below a threshold, and wired or wireless data transmission. If a performance control condition associated with a task assigned to the second processing unit is generated, at operation 440, the multi-processing unit system transfers the task that generated the performance control condition from the second processing unit to the first processing unit. At operation 450, the multi-processing unit system causes the first processing unit and the second processing unit to process the tasks assigned to them.
[0077] Figure 5A method for task allocation in a multi-processing unit system according to various embodiments is shown.
[0078] Reference Figure 5 In operation 510, the multi-processing unit system checks whether a performance control condition related to the task is generated. For example, in the multi-processing unit system, the performance control condition may be generated in relation to a task created according to a task creation request or in relation to a running task assigned to the first processing unit or the second processing unit.
[0079] In operation 520, the multi-processing unit system assigns a task related to the generated performance control condition to the first processing unit or transfers the task from the second processing unit to the first processing unit. For example, when the operating system of the electronic device is started, multiple tasks may be generated according to a preset schedule. When the performance control condition (e.g., startup) is generated, the multi-processing unit system may assign the task generated for startup to the first processing unit so that the task is processed.
[0080] As another example, when a performance control condition (e.g., touch input) occurs in a running task assigned to a second processing unit, the multi-processing unit system may transfer the task from the second processing unit to the first processing unit to improve processing performance for the touch input.
[0081] At operation 530, the multi-processing unit system checks whether the performance control condition is completed. The completion of the performance control condition may correspond to a given time lapse, no touch input within a preset time, termination of application execution, completion of website loading, completion of content download or upload, remaining battery power above a threshold, or wired or wireless data transmission. For example, the multi-processing unit system may set a time period for the performance controlled application. When the task is assigned or transferred to the first processing unit after the performance control condition is generated, the multi-processing unit system may detect the end of the duration. When a boost is applied to a task to improve touch input performance, the multi-processing unit system may detect whether no touch input for the task is received within a preset time period.
[0082] If the performance control condition is completed, the multi-processing unit system allocates the corresponding task to the first processing unit or the second processing unit or transfers the task to the second processing unit according to the workload in operation 540. If the performance control condition is not completed, the operation process returns to operation 520.
[0083] If the performance control condition is not generated in operation 510, the operation process proceeds to operation 540 in which the multi-processing unit system performs task allocation or transfer according to the workload. For example, the multi-processing unit system may allocate a task with a high load to one of the first processing units, and allocate a task with a low load to one of the second processing units.
[0084] Figure 6 A method for task allocation in a multi-processing unit system according to various embodiments is shown.
[0085] Reference Figure 6 , in operation 610, the multi-processing unit system checks whether a performance control condition related to a task is generated. In operation 620, the multi-processing unit system assigns the task related to the generated performance control condition to the first processing unit. If the generated performance control condition is related to a running task assigned to the second processing unit, the multi-processing unit system may transfer the task from the second processing unit to the first processing unit. In operation 630, the multi-processing unit system detects whether the workload of the first processing unit is full. If the workload of the first processing unit is full, in operation 640, the multi-processing unit system transfers some of the tasks assigned to the first processing unit to the second processing unit, and assigns or transfers the task related to the generated performance control condition to the first processing unit.
[0086] If the workload of the first processing unit is not full in operation 630 , the multi-processing unit system allocates or transfers the task associated with the generated performance control condition to the first processing unit in operation 650 . Figure 7 is a diagram illustrating a network structure including electronic devices according to various embodiments of the present invention.
[0087] Reference Figure 7 The electronic device 701 includes a bus 710 , a processor 720 , a memory 730 , an input / output interface 740 , a display 750 , and a communication interface 760 .
[0088] The bus 710 may be a circuit that connects the above components to each other to transmit signals (eg, control information) therebetween.
[0089] The processor 720 receives commands from any of the above components (e.g., the memory 730, the input / output interface 740, the display 750, and the communication interface 760) through the bus 710, interprets the commands, and performs operations or data processing according to the interpreted commands. For example, the processor 720 may be implemented as Figure 1 The multi-processing unit 120 or Figure 2 Multiple processing units 220 are depicted.
[0090] The memory 730 may store commands or data received from the processor 720 or other components (e.g., input / output interface 740, display 750, communication interface 760, etc.) or generated by the processor 720 or other components. The memory 730 may store program modules including a kernel 731, middleware 732, an application programming interface (API) 733, an application program 734, etc. Each program module may be implemented as software, firmware, hardware, and any combination thereof.
[0091] The kernel 731 may control or manage system resources (e.g., bus 710, processor 720, and memory 730) used in performing operations or functions implemented using the middleware 732, API 733, or application 734. The kernel 731 may also provide an interface that allows the middleware 732, API 733, or application 734 to access components of the electronic device 701 for control or management.
[0092] The middleware 732 may operate as a relay for data communication between the API 733 or the application 734 and the kernel 731. The middleware 732 may perform control of a task request from the application 734 in a manner that a priority of using system resources (e.g., the bus 710, the processor 720, and the memory 730) of the electronic device is assigned to at least one of the application programs 734.
[0093] The API 733 is an interface for the application 734 to control functions provided by the kernel 731 or the middleware 732 and may include at least one interface or function (eg, command) for file control, window control, image control, or text control.
[0094] According to various embodiments, the application 734 may include a short message service / multimedia message service (SMS / MMS) application, an email application, a calendar application, an alarm application, a healthcare application (e.g., an application for measuring exercise volume or blood sugar level), and an environmental information application (e.g., an atmospheric pressure, humidity, and temperature application). Additionally or alternatively, the application 734 may be an application for information exchange between the electronic device 701 and other external electronic devices (e.g., the electronic device 704). Examples of information exchange applications may include a notification relay application for relaying dedicated information to the external electronic device 704 and a device management application for managing external electronic devices.
[0095] For example, the notification relay application may be provided with a function of relaying alarm information generated by other applications of the electronic device (e.g., SMS / MMS applications, email applications, healthcare applications, and environmental information applications) to an external electronic device (e.g., electronic device 704). Additionally or alternatively, the notification relay application may provide notification information received from an external electronic device (e.g., electronic device 704) to the user. The electronic device application may manage (e.g., install, delete, and update) functions of an external electronic device that communicates with the electronic device 701 (e.g., turning on / off the electronic device 704 itself (or a part of the electronic device) or adjusting the brightness (or resolution) of the display) or services provided by the external electronic device (e.g., communication or information services) or applications running on the external device.
[0096] According to various embodiments, the application 734 may include an application specified according to a property (e.g., type) of the external electronic device (electronic device 704). If the external electronic device is an MP3 player, the application 734 may include a music playback application. Similarly, if the external electronic device is a mobile medical device, the application 734 may include a health care application. According to an embodiment, the application 734 may include at least one of an application specified for the electronic device 701 or an application received from an external electronic device (e.g., the server 706 and the electronic device 704).
[0097] The input / output interface 740 transmits commands or data input by a user by using an input / output device (e.g., a sensor, a keyboard, and a touch screen) to the processor 720, the memory 730, and / or the communication interface 760 through the bus 710. For example, the input / output interface 740 may provide the processor 720 with data corresponding to a touch on the touch screen that may be made by the user. The input / output interface 740 may output commands or data (commands or data received from the processor 720, the memory 730, or the communication interface 760 through the bus 710) through an input / output device (e.g., a speaker and a display). For example, the input / output interface 740 may output voice data processed by the processor 720 to the user through a speaker.
[0098] The display 750 may present various information (eg, multimedia data and text data) to the user.
[0099] The communication interface 760 can establish a communication connection between the electronic device 701 and an external device (e.g., the electronic device 704 and the server 706). For example, the communication interface 760 is connected to the network 762 by wireless or wired connection to communicate with the external device. For example, examples of wireless communication technology may include wireless fidelity technology (Wi-Fi), Bluetooth (BT), near field communication (NFC), global positioning system (GPS), and cellular communication technology (e.g., long term evolution (LTE), LTE upgraded version (LTE-A), code division multiple access (CMDA), broadband CMDA (WCDMA), universal mobile telecommunications system (UMTS), wireless broadband (WiBro), and general system for mobile communications (GSM)). Examples of wired communication technology may include universal serial bus (USB), high-definition multimedia interface (HDMI), recommended standard 232 (RS-232), and ordinary traditional telephone service (POTS).
[0100] According to an embodiment, the network 762 may be a telecommunication network. The communication network may include at least one of a computer network, the Internet, an Internet of Things, and a telephone network. According to an embodiment, the communication protocol (e.g., a transport layer protocol, a data link layer protocol, and a physical layer protocol) between the electronic device 701 and the external device may be supported by at least one of the application 734, the API 733, the middleware 732, the kernel 731, and the communication interface 760.
[0101] Figure 8 701 is a block diagram showing a configuration of an electronic device according to various embodiments of the present invention. The electronic device 701 may be all or a part of the electronic device 701 .
[0102] Reference Figure 8 , the electronic device 801 may include an application processor (AP) 810, a communication module 820, a subscriber identity module (SIM) card 824, a memory 830, a sensor module 840, an input device 850, a display 860, an interface 870, an audio module 880, a camera module 891, a power management module 895, a battery 896, an indicator 897 and a motor 898.
[0103] The AP 810 may operate an operating system (OS) and / or an application program to control a plurality of hardware and / or software components connected to the AP 810 and perform data processing and operations on multimedia data. For example, the AP 810 may be implemented in the form of a system on a chip (SoC). According to an embodiment, the AP 810 may include a graphics processing unit (GPU) (not shown).
[0104] The communication module 820 (e.g., the communication interface 760) may perform data communication with other electronic devices (e.g., the electronic device 104 and the server 106) through a network. According to an embodiment, the communication module 820 may include a cellular module 821, a Wi-Fi module 823, a BT module 825, a GPS module 827, an NFC module 828, and a radio frequency (RF) module 829.
[0105] The cellular module 821 is responsible for voice and video communication, text communication, and Internet access services through a communication network (e.g., LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, and GSM networks). The cellular module 821 may perform identification and authentication of an electronic device in the communication network using a SIM card 824. According to an embodiment, the cellular module 821 may perform at least one of the functions of the AP 810. For example, the cellular module 821 may perform at least a portion of the multimedia control functions.
[0106] According to an embodiment, the cellular module 821 may include a communication processor (CP). The cellular module may be implemented in the form of a SOC. Although the cellular module 821 (e.g., a communication processor), the memory 830, and the power management module are described as independent components separated from the AP 810, the present invention is not limited thereto, but may be implemented in a manner that the AP includes at least one of the components (e.g., the cellular module 821).
[0107] According to an embodiment, each of the AP 810 and the cellular module 821 (e.g., a communication processor) may load a command or data received from at least one of the components onto a nonvolatile or volatile memory and process the command or data. The AP 810 or the cellular module 821 may store data received from other components or generated by at least one of the other components in a nonvolatile memory.
[0108] Each of the Wi-Fi module 823, the BT module 825, the GPS module 827, and the NFC module 828 may include a processor for processing transmitted / received data. Although the cellular module 821, the Wi-Fi module 823, the BT module 825, the GPS module 827, and the NFC module 828 are described as independent blocks, at least two of them (e.g., a communication processor corresponding to the cellular module 821 and a Wi-Fi processor corresponding to the Wi-Fi module 823) may be integrated in the form of a SoC.
[0109] The RF module 829 is responsible for data communication, for example, transmitting / receiving RF signals. Although not described, the RF module 829 may include a transceiver, a power amplifier module (PAM), a frequency filter, and a low noise amplifier (LNA). The RF module 829 may also include an element for transmitting / receiving electric waves in free space, for example, a conductor or a wire. Figure 8 This is for the case where the Wi-Fi module 823, BT module 825, GPS module 827 and NFC module 828 share the RF module 829, but the present invention is not limited to this but can be implemented in the form of at least one module among the Wi-Fi module 823, BT module 825, GPS module 827 and NFC module 828 using an independent RF module to transmit / receive RF signals.
[0110] The SIM card 824 may be designed to be inserted into a slot formed at a preset position of the electronic device. The SIM card 824 may store unique identity information (eg, an integrated circuit card identifier (ICCID)) or user information (eg, an international mobile subscriber identity (IMSI)).
[0111] The memory 830 (e.g., database 130) may include at least one of an internal memory 832 and an external memory 834. The internal memory 832 may include at least one of a volatile memory (e.g., dynamic random access memory (DRAM), static RAM (SRAM), synchronous dynamic RAM (SDRAM)) or a non-volatile memory (e.g., one-time programmable read-only memory (OTPROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), mask ROM, flash ROM, NAND flash memory, and NOR flash memory)).
[0112] According to an embodiment, the internal memory 832 may be a solid state disk (SSD). The external memory 834 may be a flash disk, such as a compact flash card (CF), a secure digital card (SD), a micro SD, an xD card, and a memory stick. The external memory 834 may be functionally connected to the electronic device 801 via various interfaces. According to an embodiment, the electronic device 801 may include a storage device (or storage medium), such as a hard disk.
[0113] The sensor module 840 may measure a physical quantity or check an operating state of the electronic device 801 and convert the measured or checked information into an electrical signal. The sensor module 840 may include a posture sensor 840A, a gyroscope sensor 840B, an air pressure sensor 840C, a magnetic sensor 840D, an acceleration sensor 840E, a grip sensor 840F, a proximity sensor 840G, a color sensor 840H (e.g., a red, green, blue (RGB) sensor), a biosensor 840I, a temperature / humidity sensor 840J, an illumination sensor 840K, and an ultraviolet (UV) sensor 840M. Additionally or alternatively, the sensor module 840 may include an electronic nose sensor (not shown), an electromyogram (EMG) sensor (not shown), an electroencephalogram (EEG) sensor (not shown), an electrocardiogram (ECG) sensor (not shown), an infrared (IR) sensor (not shown), an iris sensor (not shown), and a fingerprint sensor (not shown). The sensor module 840 may also include a control circuit for controlling at least one of the sensors included therein.
[0114] The input device 850 may include a touch panel 852, a (digital) pen sensor 854, a key 856, and an ultrasonic input device 858. The touch panel 852 may be one of a capacitive, resistive, infrared, or microwave touch panel. The touch panel 852 may include a control circuit. In the case of a capacitive touch panel, physical contact or proximity may be detected. The touch panel 852 may also include a tactile layer. In this case, the touch panel 852 may provide a tactile response to the user.
[0115] The (digital) pen sensor 854 may be implemented with a sheet or a separate recognition sheet in the same or similar manner as the user's touch input. The key 856 may include a physical button, an optical key, and a keyboard. The ultrasonic input device 858 is a device capable of checking data by detecting sound waves through a microphone 888 and may be implemented for wireless recognition. According to an embodiment, the electronic device 801 may receive user input made by means of an external device (e.g., a computer or server) connected through the communication module 820.
[0116] The display 860 (e.g., display module 150) may include a panel 862, a hologram device 864, and a projector 866. The panel 862 may be a liquid crystal display (LCD) panel or an active matrix organic light emitting diode (AMOLED) panel. The panel 862 may be implemented as flexible, transparent, and / or wearable. The panel 862 may be implemented as a module integrated with the touch panel 852. The hologram device 864 may present a three-dimensional image in the air using interference of light. The projector 866 may project an image onto a screen. The screen may be located inside or outside the electronic device. According to an embodiment, the display 860 may include a control circuit for controlling the panel 862, the hologram device 864, and the projector 866.
[0117] The interface 870 may include a high-definition multimedia interface (HDMI) 872, a universal serial bus (USB) 874, an optical interface 876, and an analog interface (D-sub) 878. The interface 870 may include, for example, Figure 7 The communication interface 760 is shown. Additionally or alternatively, the interface 870 may include a mobile high-definition link (MHL) interface, an SD / MMC card interface, and an infrared data communication (irDA) standard interface.
[0118] The audio module 880 may convert sound into an electrical signal and vice versa. At least a portion of the audio module 880 may include a Figure 1 The input / output interface 140 is shown. The audio module 880 can process audio information input or output through the speaker 882, the receiver 884, the earphone 886 and the microphone 888.
[0119] The camera module 891 is a device capable of capturing still and moving images, and includes at least one image sensor (e.g., front and rear sensors), a lens (not shown), an image signal processor (ISP) (not shown), and a flash (e.g., an LED or a xenon lamp) (not shown) depending on the embodiment.
[0120] The power management module 895 may manage power of the electronic device 801. Although not shown, the power management module 895 may include a power management integrated circuit (PMIC), a charger integrated circuit (IC), a battery, and a battery or fuel gauge.
[0121] The PMIC can be integrated into an integrated circuit or a SoC semiconductor. Charging can be divided into wireless charging and wired charging. The charger IC can charge the battery and protect the charger from overvoltage or overcurrent. According to an embodiment, the charger IC may include at least one of a wired charger IC and a wireless charger IC. Examples of wireless charging technologies include resonant wireless charging and electromagnetic wave wireless charging, and additional circuits such as coil loops, resonant circuits, and diodes are required for wireless charging.
[0122] The battery meter can measure the remaining power, charging voltage, current, and temperature of the battery 896. The battery 896 can store or generate power and provide the stored or generated power to the electronic device 801. The battery 896 may include a rechargeable battery or a solar cell.
[0123] Indicator 897 can display the operating state, startup state, message delivery state and charging state of electronic device 801 or a part of the electronic device. Motor 898 can convert electrical signals into mechanical vibrations. Although not shown, electronic device 801 may include a processing unit (e.g., GPU) for supporting mobile TV. The processing unit for supporting mobile TV can process media data that complies with broadcast standards (such as electronic multimedia broadcasting (DMB), digital video broadcasting (DVB) and media streaming).
[0124] As described above, the text display method and apparatus of an electronic device of the present invention are superior in reducing the number of page scrolling by identifying paragraphs included in a document and folding the paragraphs to the current parts of the respective paragraphs.
[0125] In addition, the text display method and apparatus of the electronic device of the present invention are superior in improving the readability of the text by enlarging the font size of the paragraph or highlighting the paragraph when the folded paragraph is extended.
[0126] The components of the electronic device of the present invention listed above may be implemented in one or more parts, and the names of the corresponding components may change according to the type of the electronic device. The electronic device of the present invention may include at least one of the above components with some components omitted or at least one of the above components with some components added. The components of the electronic device of the present invention may be selectively combined into an entity to perform functions equivalent to the components before combination.
[0127] According to an embodiment of the present invention, the term "module" represents, but is not limited to, a unit of software, hardware and firmware or any combination thereof. The term "module" may be used interchangeably with the terms "unit", "logic", "logic block", "component" or "circuit". The term "module" may represent the smallest unit of a component or a part thereof. The term "module" may be the smallest unit that performs at least one function or a part of a function thereof. The module may be implemented mechanically or electronically. For example, a module may include at least one of a known or developed application specific integrated circuit (ASIC) chip, a field programmable gate array (FPGAs) and a programmable logic device.
[0128] According to various embodiments of the present invention, the device (e.g., module or its function) or method may be implemented by computer program instructions stored in a computer-readable storage medium. When the instruction is executed by at least one processor (e.g., processor 120), the at least one processor may perform the function corresponding to the instruction. The computer-readable storage medium may be a database 130. At least a portion of the programming module may be implemented (e.g., executed) by the processor 120. At least a portion of the programming module may include a module, a program, a routine, a set of instructions, and a process for performing at least one function.
[0129] Computer readable storage media include magnetic media (such as floppy disks and tapes), optical media including compact disk (CD) ROM and digital video disk (DVD) ROM, magneto-optical media (such as floppy disks), and hardware devices designed to store and execute program commands (such as ROM, RAM, and flash memory). The program commands include language codes executed by the computer using an interpreter and machine language codes created by a compiler. The above-mentioned hardware devices can be implemented with one or more software modules for performing the operations of various exemplary embodiments of the present invention.
[0130] The modules or programming modules of the present invention may include the above-mentioned components with some components omitted or at least one component with other components added. The operations of the modules, programming modules or other components may be performed serially, in parallel, recursively, or tentatively. In addition, some operations may be performed in a different order, omitted or extended from other operations.
[0131] Although specific terms have been used to describe various embodiments of the present invention, the description and the accompanying drawings should be considered in an illustrative rather than a restrictive sense to help understand the present invention. Obviously, those skilled in the art can make various modifications and changes to the present invention without departing from the broader spirit and scope of the present invention.
Claims
1. A method for scheduling tasks in an electronic device using a heterogeneous multi-core processor including a first processing core and a second processing core, the method comprising: Generate multiple tasks based on the execution application; classifying the plurality of tasks as high workload tasks or low workload tasks based on a workload of each task, wherein the high workload tasks are assigned to a first processing core and the low workload tasks are assigned to a second processing core, and wherein the workload of the high workload tasks is above a threshold and the workload of the low workload tasks is below or equal to the threshold; detecting a touch input associated with the application while processing a high workload task in the first processing core and a low workload task in the second processing core; In response to the touch input, transferring a portion of the low workload tasks from the second processing core to the first processing core; processing the transferred portion of the low workload tasks and the high workload tasks in the first processing core; Determine whether the preset conditions are met; Based on determining that the preset condition is met, based on the workload of each task, the portion of the low workload tasks transferred to the first processing core is transferred to the second processing core, wherein the preset condition includes: no touch input is detected within a preset time, The first processing core is a high-performance processing core, and the second processing core is a low-performance processing core.
2. The method according to claim 1, wherein: Each of the first processing cores is a smallest entity having a processing capability for executing instructions of a high workload task.
3. The method according to claim 1, wherein: The low performance processing core is a low power processing core.
4. The method according to claim 1, wherein: The preset conditions also include a completion event of website loading, a completion event of content downloading or uploading, or wired / wireless data transmission.
5. The method according to claim 1, wherein: The preset condition corresponds to a low workload task.
6. An electronic device comprising: A heterogeneous multi-core processor comprises a first processing core and a second processing core, wherein the heterogeneous multi-core processor is configured as follows: Generate multiple tasks based on the execution application; classifying the plurality of tasks as high workload tasks or low workload tasks based on a workload of each task, wherein the high workload tasks are assigned to a first processing core and the low workload tasks are assigned to a second processing core, and wherein the workload of the high workload tasks is above a threshold and the workload of the low workload tasks is below or equal to the threshold; detecting a touch input associated with the application while processing a high workload task in the first processing core and a low workload task in the second processing core; In response to the touch input, transferring a portion of the low workload task from the second processing core to the first processing core; processing the transferred portion of the low workload tasks and the high workload tasks in the first processing core; Determine whether the preset conditions are met; Based on determining that the preset condition is met, based on the workload of each task, the portion of the low workload tasks transferred to the first processing core is transferred to the second processing core, wherein the preset condition includes: no touch input is detected within a preset time, The first processing core is a high-performance processing core, and the second processing core is a low-performance processing core.
7. The electronic device as claimed in claim 6, wherein: The first processing core and the second processing core constitute one or more independent processors.
8. The electronic device according to claim 6, wherein: The preset conditions also include a completion event of website loading, a completion event of content downloading or uploading, or wired / wireless data transmission.
9. The electronic device according to claim 6, wherein: Each of the first processing cores is a smallest entity having a processing capability for executing instructions of a high workload task.
10. The electronic device according to claim 6, wherein: The low performance processing core is a low power processing core.
11. The electronic device according to claim 6, wherein: The preset condition corresponds to a low workload task.
12. A non-transitory storage medium storing instructions, wherein the instructions cause an electronic device to execute a task scheduling method, wherein: When the instructions are executed by the electronic device, the instructions are configured to cause the electronic device to perform the following steps: Generate multiple tasks based on the execution application; classifying the plurality of tasks as high workload tasks or low workload tasks based on a workload of each task, wherein the high workload tasks are assigned to a first processing core and the low workload tasks are assigned to a second processing core, and wherein the workload of the high workload tasks is above a threshold and the workload of the low workload tasks is below or equal to the threshold; detecting a touch input associated with the application while processing a high workload task in the first processing core and a low workload task in the second processing core; In response to the touch input, transferring a portion of the low workload task from the second processing core to the first processing core; processing the transferred portion of the low workload tasks and the high workload tasks in the first processing core; Determine whether the preset conditions are met; Based on determining that the preset condition is met, based on the workload of each task, the portion of the low workload tasks transferred to the first processing core is transferred to the second processing core, wherein the preset condition includes: no touch input is detected within a preset time, The first processing core is a high-performance processing core, and the second processing core is a low-performance processing core.
13. The non-transitory storage medium according to claim 12, wherein: Each of the first processing cores is a smallest entity having a processing capability for executing instructions of a high workload task.
14. The non-transitory storage medium according to claim 12, wherein: The low performance processing core is a low power processing core.
15. The non-transitory storage medium according to claim 12, wherein: The preset conditions also include a completion event of website loading, a completion event of content downloading or uploading, or wired / wireless data transmission.
16. The non-transitory storage medium according to claim 12, wherein: The preset condition corresponds to a low workload task.
Citation Information
Patent Citations
Task scheduling method for heterogeneous multi-core processor
CN102707996A
Load balancing method and apparatus in symmetric multi-processor system
KR1020090005921A