CN103164215A - 数据处理系统和用于在异类加速器之间进行切换的方法 - Google Patents
数据处理系统和用于在异类加速器之间进行切换的方法 Download PDFInfo
- Publication number
- CN103164215A CN103164215A CN2012103157674A CN201210315767A CN103164215A CN 103164215 A CN103164215 A CN 103164215A CN 2012103157674 A CN2012103157674 A CN 2012103157674A CN 201210315767 A CN201210315767 A CN 201210315767A CN 103164215 A CN103164215 A CN 103164215A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- cpu
- hardware
- acquiescence
- control device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000001133 acceleration Effects 0.000 claims abstract description 216
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 230000000052 comparative effect Effects 0.000 description 5
- 230000006837 decompression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Power Sources (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了用于操作片上系统的方法,该方法包括:接收在运行应用程序时生成的加速请求信号;响应于收到加速请求信号,将中央处理单元(CPU)的当前使用率与阈值进行比较以生成比较信号;并且响应于比较信号,执行在异类加速器之间的切换以加速由应用程序运行的功能。
Description
相关申请的交叉引用
本申请要求于2011年8月30日提交的韩国专利申请第10-2011-0087411号的优先权,其公开通过引用整体结合于此。
技术领域
本发明概念的实施例涉及用于选择加速器(accelerator)的技术,更具体地说,涉及用于在硬件加速器和软件加速器之间进行选择的片上系统及其操作方法。
背景技术
支持包括图形、音频、视频、动画、游戏、以及文本的多媒体的数据处理系统包括各种类型的加速器,如音频编解码器、视频编解码器、二维(2D)加速器和/或三维(3D)加速器。
这些加速器可以工以硬件或软件来实现。硬件加速器使用专用硬件或专用硬件设备来比中央处理单元(CPU)更快地执行一些功能。换句话说,硬件加速器可以将一定功能的处理加速到高速而不会增加CPU的负担。然而,硬件加速器需要单独的(separate)硬件,这增加了制造成本。
软件加速器能够以较低的功率消耗来加速功能的处理,并且不需要单独的硬件。然而,软件加速器可以降低以较大负荷操作的数据处理系统的操作速度或响应速度。
发明内容
根据本发明概念的示范性实施例,一种用于操作片上系统的方法包括:接收在运行应用程序时生成的加速请求信号;响应于收到加速请求信号,将中央处理单元(CPU)的当前使用率(usage)与阈值进行比较以生成比较信号;并且响应于比较信号,执行在异类加速器之间的切换(switch)以加速由应用程序运行的多媒体功能。
异类加速器可以包括实现为硬件设备的硬件加速器和实现为程序代码的软件加速器,该程序代码被配置为由CPU运行,并且软件加速器从存储器装载到CPU,然后运行。
所述比较和生成可以发生在应用程序的默认加速器是硬件加速器并且硬件加速器当前正在操作时。
或者,所述比较可以发生在应用程序的默认加速器是软件加速器时。
当前使用率可以是CPU的空闲时间。
或者,当前使用率可以是CPU的操作电压和CPU的操作频率之一。
根据本发明概念的示范性实施例,一种用于操作片上系统的方法包括:接收在运行应用程序时生成的加速请求信号;响应于加速请求信号确定用于加速由应用程序运行的功能的默认加速器是硬件加速器还是软件加速器,软件加速器被实现为可由CPU运行的程序;当确定默认加速器是软件加速器或当前正在加速不同功能的硬件加速器时,将CPU的当前使用率与阈值进行比较以生成比较信号;并且根据比较信号用非默认加速器调换默认加速器。
所述确定可以基于存储在表格中的加速器信息来执行。
根据本发明概念的示范性实施例,一种片上系统包括:异类加速器;以及被配置为运行加速器控制器模块的CPU,该加速器控制器模块生成用于在异类加速器之间进行转换的比较信号,异类加速器用于加速由应用程序运行的功能。
加速器控制器模块可以将CPU的当前使用率与阈值进行比较以输出比较信号。异类加速器可以包括实现为硬件设备的硬件加速器和实现为计算机程序代码的软件加速器,该计算机程序代码被配置为由CPU运行。软件加速器可以从存储器装载到CPU,然后运行。
当硬件加速器被设定为用于加速功能的默认加速器并且正在加速不同功能时,加速器控制器模块基于在对应于当前使用率的CPU的空闲时间大于阈值时生成的比较信号,用软件加速器调换硬件加速器以加速功能。
当软件加速器被设定为用于加速功能的默认加速器时,加速器控制器模块可以基于在对应于当前使用率的CPU的空闲时间小于阈值时生成的比较信号,用硬件加速器调换软件加速器以加速功能。
或者,当硬件加速器被设定为用于加速功能的默认加速器并且当前正在加速不同的功能时,加速器控制器模块可以基于在对应于当前使用率的CPU的操作频率低于阈值时生成的比较信号,用软件加速器调换硬件加速器以加速功能。
或者,当软件加速器被设定为用于加速功能的默认加速器时,加速器控制器模块可以基于在对应于当前使用率的CPU的操作频率高于阈值时生成的比较信号,用硬件加速器调换软件加速器以加速功能。
当前使用率可以是CPU的空闲时间,或者可以是CPU的操作电压和CPU的操作频率之一。
根据本发明概念的示范性实施例,一种便携设备包括:非易失性存储器,其被配置为存储多媒体数据;显示器;异类加速器;以及CPU,其被配置为运行加速器控制器模块,该加速器控制器模块生成用于在异类加速器之间进行切换的比较信号,异类加速器用于加速由应用程序运行的多媒体的处理。
加速器控制器模块将CPU的当前使用率与阈值进行比较,以输出比较信号。所选择的加速器通过显示器显示加速的多媒体数据。异类加速器可以包括实现为硬件设备的硬件加速器和实现为计算机程序代码的软件加速器,该计算机程序代码可以在CPU中运行。软件加速器可以从存储器装载到CPU,然后运行。
根据本发明概念的示范性实施例,一种片上系统包括:硬件加速器;存储器,其被配置为存储应用程序、加速器控制器模块和软件加速器;以及CPU,其被配置为控制硬件加速器和存储器,并运行应用程序、加速器控制模块和软件加速器。当加速器控制器模块收到由应用程序生成的加速请求信号时,加速器控制器模块确定用于加速由应用程序运行的功能的默认加速器是硬件加速器还是软件加速器。当确定默认加速器是软件加速器或当前正在加速不同功能的硬件加速器时,加速器控制器模块将CPU的当前使用率与阈值进行比较以生成比较信号,并且根据比较信号用非默认加速器调换默认加速器。
加速器控制器模块可以基于关于默认加速器的加速器信息确定默认加速器。
加速器控制器模块可以基于从用户输入接口输入的信息来调整阈值。
根据本发明概念的示范性实施例,一种用于操作片上系统的方法包括:在加速器控制器模块处接收在运行应用程序时生成的加速请求信号;响应于加速请求信号在加速器控制器模块处从表格读取加速器信息;并且由加速器控制器模块基于加速器信息选择性地驱动实现为硬件设备的硬件加速器或实现为计算机程序代码的软件加速器之一,以加速由应用程序运行的功能。加速器信息指示硬件加速器和软件加速器中的哪一个具有较短的加速时间。
根据本发明概念的示范性实施例,一种用于操作片上系统的方法包括:接收改变信号;确定改变信号是选择基于功率消耗选择的默认加速器的指令还是选择基于性能选择的默认加速器的指令;基于确定结果,参考存储在表格中的加速器信息;并且基于加速器信息驱动被设定为默认加速器的硬件加速器或软件加速器之一,硬件加速器实现为硬件设备,而软件加速器实现为可由CPU运行的计算机程序代码。
该方法还可以包括:当改变信号是选择基于功率消耗选择的默认加速器的指令时,将CPU的当前使用率与阈值进行比较以生成比较信号;并且基于比较信号用非默认加速器调换默认加速器。
根据本发明概念的示范性实施例的片上系统(SoC)包括:总线;CPU,与总线接口(interfaced);硬件加速器,与总线接口并被配置为使用硬件来加速功能;以及存储器,与总线接口。存储器包括软件加速器和加速器控制模块。软件加速器被配置为使用软件来加速相同功能。加速器控制模块被配置为响应于应用程序的加速请求选择硬件加速器和软件加速器之一,以加速应用程序的功能。如果SoC内的默认参数被设定到硬件加速器,并且硬件加速器当前并未操作,则加速器控制模块选择硬件加速器,否则基于CPU的使用率参数与阈值的比较来选择硬件加速器和软件加速器之一。
在实施例中,使用率参数是CPU空闲的时间量。在此实施例中,当该量小于阈值时,加速器控制模块选择硬件加速器,否则选择软件加速器。
在实施例中,使用率参数是CPU的操作频率。在此实施例中,当操作频率大于阈值时,加速器控制模块选择硬件加速器,否则选择软件加速器。
在实施例中,使用率参数是CPU的操作电压。在此实施例中,当操作电压大于阈值时,加速器控制模块选择硬件加速器,否则选择软件加速器。
附图说明
通过参考附图详细描述本发明概念的示范性实施例,本发明概念的实施例将变得更加清楚。在附图中:
图1是根据本发明概念的示范性实施例的数据处理系统的框图;
图2是用于解释在图1中示出的数据处理系统的操作的框图;
图3是根据本发明概念的示范性实施例的用于解释在硬件加速器和软件加速器之间的切换的概念图;
图4是根据本发明概念的示范性实施例的基于功率消耗选择应用程序的默认加速器的方法的流程图;
图5示出了包括根据在图4中示出的方法为应用程序设定的默认加速器的选择信息的表格的示例;
图6是根据本发明概念的示范性实施例的在图1中示出的数据处理系统的操作方法的流程图;
图7是根据本发明概念的示范性实施例的在图1中示出的数据处理系统的操作方法的流程图;
图8是根据本发明概念的示范性实施例的在图1中示出的数据处理系统的操作方法的流程图;
图9是根据本发明概念的示范性实施例的基于性能选择应用程序的默认加速器的方法的流程图;
图10是根据本发明概念的示范性实施例的在图1中示出的数据处理系统的操作方法的流程图。
具体实施方式
现在将参考示出本发明概念的示范性实施例的附图在下面更全面地描述本发明概念。然而,本发明概念可以以多种不同的形式来具体体现,而不应当被解释为限于这里所阐述的实施例。在附图中,为了清楚,层和区域的大小和相对大小可能被夸大。相似的标号始终指代相似的元素。
应当理解,当元素被称为“连接”或“耦接”到另一个元素时,它可以直接地连接或耦接到另一个元素,或者也可以存在插入其间的元素。如这里所使用的,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文清楚地指出另外的情况。
这里使用的加速器可以是如下所述的任何加速器。
在本发明概念的至少一个实施例中,可以实现为硬件加速器或软件加速器的视频编解码器指示能够压缩和/或解压缩数字视频的设备或软件。
在本发明概念的至少一个实施例中,可以实现为软件加速器的音频编解码器指示实现根据给定的音频文件格式或流(streaming)音频格式压缩和/或解压缩数字音频数据的算法的计算机程序。
在本发明概念的至少一个实施例中,可以实现为硬件加速器的音频编解码器指示可以将模拟音频编码为数字信号以及将数字信号解码为模拟音频的设备。
在本发明概念的至少一个实施例中,可以实现为软件加速器的下载加速器或下载管理器指示用于下载的专用软件。
在本发明概念的至少一个实施例中,可以实现为硬件加速器的图形处理单元或图形加速器指示专用图形绘制(rendering)设备。在本发明概念的至少一个实施例中,可以实现为软件加速器的加速器或储存库(library)指示用于存储图形处理单元的功能(function)或程序的储存库。
在本发明概念的至少一个实施例中,可以实现为硬件加速器或软件加速器的密码加速器(cryptographic accelerator)指示能够执行加密和/或解密的设备或软件。在本发明概念的至少一个实施例中,可以实现为硬件加速器的网络加速器(web accelerator)指示能够快速访问网站的代理服务器。
MP3播放器或MP4播放器可以以硬件或软件来实现。二维(2D)加速器或三维(3D)加速器也可以以硬件或软件来实现。
除了如上所述的加速器,能够加速多媒体数据的处理或显示的加速器可以以硬件或软件来实现。此外,加速器的示例还可以包括音频编码器、音频解码器、视频编码器、以及视频解码器。
在本发明概念的至少一个实施例中,数据处理系统包括异类加速器(heterogeneous accelerator),例如,至少一个硬件加速器和至少一个软件加速器,并且基于比较信号在异类加速器之前进行切换,该比较信号指示CPU的当前使用率与参考使用率(例如,阈值)比较的结果。例如,如果软件加速器当前正用于加密数据,则系统可以基于当前使用率与阈值的比较结果如何来切换到使用硬件加速器进行加密。
图1是根据本发明概念的示范性实施例的数据处理系统1的框图。数据处理系统1可以是蜂窝电话、智能电话、平板个人电脑、个人数字助理(PDA)、企业数字助理(EDA)、数字照相机(digital still camera)、数字摄像机(digitalvideo camera)、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持游戏控制台、诸如电子书的手持设备、个人计算机、等等。
数据处理系统1包括片上系统(SoC)10、存储器21、以及显示器26。SoC 10、存储器21、以及显示器26可以以系统印制电路板(system printedcircuit board(PCB))来实现或实现在系统印制电路板上。
SoC 10包括CPU 12、只读存储器(ROM)14、随机存取存储器16、硬件加速器18、输入/输出(I/O)接口20、总线22、以及显示器控制器24。
CPU 12可以被称为处理器,并且可以处理或运行存储在ROM 14或RAM16中的程序和/或数据。CPU 12可以响应于从时钟信号发生器(未示出)输出的时钟信号来处理或运行程序和/或数据。
CPU 12可以实现为多核处理器。多核处理器是实质上(substantially)包括两个或更多的独立处理器(被称为内核(core))的单一计算组件,每个独立处理器能够读取和运行程序指令。多核处理器可以同时驱动多个加速器。因此,包括多核处理器的数据处理系统可以执行多个加速(multi-acceleration)。
存储在ROM 14或RAM 16中的程序和/或数据可以被装载到CPU 12的存储器,例如,高速缓冲存储器。
ROM 14可以存储永久程序和/或数据。ROM 14可以通过可擦除可编程ROM(EPROM)或电可擦除可编程ROM(EEPROM)来实现。
RAM 16可以临时存储程序、数据或指令。例如,存储在存储器14或21中的程序和/或数据可以在CPU 12或存储在ROM 14中的引导(booting)代码的控制下临时存储在RAM 16中。RAM 16可以通过动态RAM(DRAM)或静态RAM(SRAM)来实现。
硬件加速器18可以是能够改善处理多媒体(或多媒体数据)的性能的硬件设备或协处理器(co-processor),所述多媒体比如文本、音频、静态图像、动画、视频、2D数据或3D数据等。
为了描述清楚,在图1中只示出了一个硬件加速器18,但是SoC 10可以包括一个或多个硬件加速器。例如,当多个硬件加速器可用时,每个应用程序可用使用其自己的一个硬件加速器或几个硬件加速器。
SoC 10和存储器21通过I/O接口20互相传送数据。存储器21可以存储将由CPU 12处理的程序、功能、和/或多媒体数据。存储器21可以通过非易失性存储器来实现。非易失性存储器可以是闪存或电阻式存储器。在实施例中,I/O接口20被实现为存储器控制器。SoC 10的元素12、14、16、18、20和24可以通过总线22互相通信。
显示控制器24可以控制显示器26的操作,并且可以显示已经由装载到CPU 12的软件加速器或者硬件加速器18加速(或处理)的多媒体数据。
图2是用于解释在图1中示出的数据处理系统1的操作的框图。图3是根据本发明概念的示范性实施例的用于解释在硬件加速器和软件加速器之间的切换的概念图。参考图1到图3,CPU 12的操作系统(OS)控制CPU 12的总体操作。例如,当应用程序(或多媒体播放器)12-1被装载到CPU 12的存储器然后被运行时,应用程序12-1生成加速请求信号ACC_REQ。在至少一个实施例中,当应用程序12-1被用户运行或选择时,应用程序12-1被装载到RAM 16然后被装载到CPU 12的存储器。
程序12-1到12-6可以从存储器14或21装载到RAM 16。已经装载到RAM16的加速器控制器模块(或加速器控制代码)12-2通过总线22装载到CPU 12的存储器。已经装载到RAM 16的表格12-3被装载到CPU 12的存储器。
响应于加速请求信号ACC_REQ,加速器控制器模块12-2确定被设定为默认加速由应用程序12-1运行的功能(例如,处理多媒体数据、加密数据、解密数据、绘制图形、加快网络浏览等的功能)的默认加速器是由硬件设备实现的硬件加速器还是被实现为可由CPU 12运行的计算机程序的软件加速器。在实施例中,加速器控制器模块12-2参考存储在表格12-3中的加速器信息确定默认加速器。
例如,当被设定用于应用程序12-1的默认加速器为硬件加速器18时,已经装载到RAM 16的硬件加速器驱动器12-5基于加速器控制器模块12-2的控制(或控制信号)ACC_CTR被装载到CPU 12。硬件加速器18根据硬件加速器驱动器12-5的控制而操作。因此,硬件加速器18加速应用程序12-1所请求(或运行)的功能,并通过显示器控制器24将加速的数据(例如,加速的多媒体数据)传送到显示器26。
然而,当应用程序12-1的默认加速器为软件加速器时,已经装载到RAM16的软件加速器12-4基于加速器控制器模块12-2的控制ACC_CTR被装载到CPU 12。装载到CPU 12的软件加速器12-4基于加速器控制器模块12-2的控制(或控制信号)ACC_CTR来运行或驱动。因此,软件加速器12-4加速应用程序12-1所请求(或运行)的功能,并通过显示器控制器24将加速的数据传送到显示器26。
图4是根据本发明概念的示范性实施例的基于功率消耗选择应用程序的默认加速器的方法的流程图。图5示出了包括根据在图4中示出的方法为应用程序设定的默认加速器的选择信息的表格12-3的示例。
参考图4和图5,当加速器设定(setting)开始时,在操作S10,装载到CPU 12的加速器控制器模块12-2测量(或估计)在分配给第一应用程序APP1的硬件加速器运行时所消耗的功率Phw。在操作S20,加速器控制器模块12-2还测量(或估计)在分配给第一应用程序APP1的软件加速器运行时所消耗的功率Psw。在图4中示出的实施例中,操作S10在操作S20之前执行,但是在其它实施例中,操作S20可以在操作S10之前执行。
硬件加速器的功率消耗可以从硬件加速器中使用的硬件的功率消耗参数以及硬件加速器运行(run)的时间量中确定。例如,如果一种类型的硬件加速器每秒使用1瓦特,并且在加速第一应用程序APP1时典型地运行1秒,则1瓦特将是估计的功率消耗Phw。在另一个实施例中,其中运行加速器的计算机系统包括感测器(sensor),该感测器检测在给定时间段期间由计算机系统消耗的功率量。例如,如果在加速器没有运行的1秒时段期间消耗1瓦特功率,并且在随后有加速器运行的1秒时段消耗1.5瓦特,则可以推断出加速器导致了0.5瓦特的功率消耗。加速器控制器模块12-2可以被配置为访问由感测器记录的数据以估计功率消耗。然而,本发明概念的实施例不限于任何特定的计算功率消耗的方法。
在操作S30,加速器控制器模块12-2将分配给第一应用程序APP1的硬件加速器的功率消耗Phw与分配给第一应用程序APP1的软件加速器的功率消耗Psw进行比较。例如,当在操作S30中软件加速器的功率消耗Psw大于硬件加速器的功率消耗Phw时,在操作S40,加速器控制器模块12-2选择硬件加速器(即,第一应用程序APP1的ACChw),作为默认加速器(即,ACCdef_pow)。
然而,当在操作S30中软件加速器的功率消耗Psw不大于软件加速器的功率消耗Phw时,在操作S50,加速器控制器模块12-2选择软件加速器(即,第一应用程序APP1的ACCsw),作为默认加速器ACCdef_pow。
换句话说,加速器控制器模块12-2选择软件加速器和硬件加速器中消耗较少功率的加速器,作为第一应用程序APP1的默认加速器。
在操作S60,加速器控制器模块12-2在表格12-3中存储关于在操作S40或S50中选择的加速器的信息SI。
当在图1中示出的SoC 10包括“n”个应用程序(其中,“n”是自然数)、“n”个硬件加速器和“n”个软件加速器时,如参考图4所描述的,加速器控制器模块12-2可以基于功率消耗为“n”个应用程序中的每一个选择默认加速器,并将关于所选择的加速器的信息SI存储在表格12-3中。
如图5中所示,加速器控制器模块12-2选择硬件加速器ACChw作为第一应用程序APP1的默认加速器,并将加速器信息SI(例如,1)存储在表格12-3中。
加速器控制器模块12-2选择硬件加速器ACChw作为第二应用程序APP2的默认加速器,并将加速器信息SI(例如,1)存储在表格12-3中。加速器控制器模块12-2选择软件加速器ACCsw作为第三应用程序APP3的默认加速器,并将加速器信息SI(例如,0)存储在表格12-3中。加速器控制器模块12-2选择软件加速器ACCsw作为第n应用程序APPn的默认加速器,并将加速器信息SI(例如,0)存储在表格12-3中。
包括加速器信息SI的表格12-3可以存储在ROM 14或存储器21中。每当引导SoC 10或运行特定应用程序时,存储在ROM 14或存储器21中的表格12-3可以被装载到RAM 16,然后装载到CPU 12的存储器,以便表格12-3可以被加速器控制器模块12-2参考。
图6是根据本发明概念的示范性实施例的在图1中示出的数据处理系统1的操作方法的流程图。在图6中示出的操作方法涉及在其中硬件加速器或软件加速器中的任一个已经基于功率消耗被设定为默认加速器的状态下,基于每个加速器的性能,用非默认加速器调换(switch)默认加速器。
参考图1、2、5和6,当运行第一应用程序APP1(即,12-1)时,在操作S110,加速器控制器模块12-2接收由第一应用程序12-1生成的加速请求信号ACC_REQ。
响应于加速请求信号ACC_REQ,加速器控制器模块12-2从表格12-3读取第一应用程序12-1的加速器信息SI,并且因此,加速器控制器模块12-2基于加速器信息SI检测或确定可以加速由第一应用程序12-1运行的功能的默认加速器。
在操作S112,响应于加速请求信号ACC_REQ,加速器控制器模块12-2将CPU 12的当前使用率(工作负荷(workload))与参考使用率(工作负荷(workload))进行比较,并根据比较结果生成比较信号。比较信号可以用作用于在异类加速器(即,硬件加速器18和软件加速器12-4)之间进行切换的信号(例如,ACC_CTR)。
根据比较信号,加速器控制器模块12-2可以在操作S114用第一应用程序12-1的非默认加速器(例如,软件加速器ACCsw)调换被设定为默认用于第一应用程序12-1的默认加速器(例如,硬件加速器ACChw),并且在操作S 116驱动非默认加速器。因此,非默认加速器加速与第一应用程序12-1相对应的多媒体数据的功能或处理。
在另一个实施例中,当运行第三应用程序APP3时,在操作S110,加速器控制器模块12-2接收由第三应用程序APP3生成的加速请求信号。
响应于加速请求信号,加速器控制器模块12-2从表格12-3读取第三应用程序APP3的加速器信息SI,并且因此,加速器控制器模块12-2基于加速器信息SI检测或确定可以加速由第三应用程序APP3运行的功能的默认加速器。
响应于加速请求信号,加速器控制器模块12-2在操作S112将CPU 12的当前使用率(工作负荷)与参考使用率(工作负荷)进行比较。根据比较结果,加速器控制器模块12-2在操作S114用第三应用程序APP3的非默认加速器(例如,硬件加速器ACChw)调换被设定为默认用于第三应用程序APP3的默认加速器(例如,软件加速器ACCsw),并且在操作S116驱动非默认加速器。因此,非默认加速器加速与第三应用程序APP3相对应的功能。换句话说,加速器控制器模块12-2将加速器18和12-4的性能相互比较,并在操作S114基于比较结果在异类加速器18和12-4之间进行切换。
所述当前使用率和参考使用率可以是CPU 12的空闲时间,或者可以是CPU 12的操作电压和CPU 12的操作频率中的至少一个。
在图6中示出的操作方法将参考图7和图8来详细描述。图7是根据本发明概念的示范性实施例的在图1中示出的数据处理系统1的操作方法的流程图。如上所述,默认加速器ACCdef是已经基于比较硬件加速器的功率消耗与软件加速器的功率消耗的结果而决定的加速器。
参考图1、图2和图7,当加速器控制器模块12-2在操作S210接收到由请求者(例如第一应用程序12-1)生成的加速请求信号ACC_REQ时,加速器控制器模块12-2在操作S212基于存储在表格12-3中的加速器信息SI检测用于加速由第一应用程序12-1运行的功能的默认加速器ACCdef是硬件加速器ACChw(即,硬件加速器18)还是软件加速器ACCsw(即,软件加速器12-4)。
当默认加速器ACCdef是硬件加速器ACChw时,加速器控制器模块12-2在操作S214确定硬件加速器ACChw的当前状态,也就是,确定硬件加速器ACChw是否正在加速其它功能。例如,硬件加速器ACChw当前可能正在加速另一个应用程序的功能(例如,用于绘制图形、网络浏览等的功能)。
当硬件加速器ACChw此时并未在操作时,加速器控制器模块12-2在操作S216使用硬件加速器驱动器12-5驱动硬件加速器ACChw。然而,如果硬件加速器ACChw当前正在进行操作,也就是,当硬件加速器ACChw正在加速与不同的应用程序相对应的功能时,加速器控制器模块12-2在操作S218判断CPU 12的当前使用率,并根据判断结果确定使用硬件加速器ACChw还是软件加速器ACCsw。
在示范性实施例中,加速器控制器模块12-2在操作S220检查或计算与CPU 12的当前使用率相对应的当前空闲时间Idle_cur。当空闲时间减少时,CPU 12上的负荷增加。
在操作S222,加速器控制器模块12-2将当前空闲时间Idle_cur与对应于参考使用率的阈值(或参考)空闲时间Idle_thr进行比较。
在当前空闲时间Idle_cur小于阈值空闲时间Idle_thr时,加速器控制器模块12-2在操作S224等待硬件加速器ACChw的操作完成,然后运行硬件加速器驱动器12-5。换句话说,加速器控制器模块12-2不选择软件加速器ACCsw而是选择硬件加速器ACChw来避免CPU 12过载。因此,硬件加速器驱动器12-5在操作S216启动硬件加速器ACChw来加速与第一应用程序12-1相对应的功能。
然而,在操作S222,在当前空闲时间Idle_cur不小于阈值空闲时间Idle_thr时,加速器控制器模块12-2确定软件加速器ACCsw当前是否正在操作。
当确定软件加速器ACCsw当前并未在操作时,加速器控制器模块12-2在操作S228启动软件加速器ACCsw。然而,当确定软件加速器ACCsw当前正在操作时,也就是,当软件加速器ACCsw正在加速与不同的应用程序相对应的功能时,加速器控制器模块12-2在操作S230等待软件加速器ACCsw完成当前操作。此后,根据加速器控制器模块12-2的控制ACC_CTR,软件加速器ACCsw在操作S228加速与第一应用程序12-1相对应的功能。
图8是根据本发明概念的示范性实施例的在图1中示出的数据处理系统1的操作方法的流程图。如上所述,默认加速器ACCdef是已经根据比较硬件加速器的功率消耗与软件加速器的功率消耗的结果而决定的加速器。参考图1、图2和图8,当功率(或电压)被提供给SoC 10时,已经存储在存储器14或21中的动态电压和频率调整(dynamic voltage and frequency scaling,DVFS)程序12-6被装载到RAM 16,然后装载到CPU 12的存储器。DVFS程序12-6可以考虑到CPU 12的负荷(或工作负荷)来控制或确定CPU 12的操作电压和操作频率。
当在操作S310加速器控制器模块12-2接收由请求者(例如第一应用程序12-1)生成的加速请求信号ACC_REQ时,在操作S312加速器控制器模块12-2基于存储在表格12-3中的加速器信息SI检测或确定第一应用程序12-1的默认加速器ACCdef是硬件加速器ACChw(即,硬件加速器18)还是软件加速器ACCsw(即,软件加速器12-4)。
当默认加速器ACCdef是硬件加速器ACChw 18时,加速器控制器模块12-2在操作S314确定硬件加速器ACChw的当前状态,也就是,确定硬件加速器ACChw 18当前是否正在操作。
当硬件加速器ACChw 18此时并未在操作时,加速器控制器模块12-2在操作S316使用硬件加速器驱动器12-5驱动硬件加速器ACChw 18。
然而,如果硬件加速器ACChw 18当前正在进行操作时,也就是,当硬件加速器ACChw 18正在处理与不同的应用程序相对应的功能时,加速器控制器模块12-2在操作S318基于比较CPU 12的当前使用率与参考使用率的结果确定使用硬件加速器ACChw还是软件加速器ACCsw。
参考使用率可以预先确定并存储在存储器14或21中。此外,加速器控制器模块12-2可以基于通过用户输入接口(未示出)输入的信息来调整参考使用率,加速器控制器模块12-2可以通过总线22与该用户输入接口通信。
在示范性实施例中,加速器控制器模块12-2在操作S320确定DVFS程序12-6是否正在运行。当确定DVFS程序12-6正在运行时,加速器控制器模块12-2从DVFS程序12-6获得关于CPU 12的当前操作电压的信息和关于CPU 12的当前操作频率的信息,并检查CPU 12的负荷。
加速器控制器模块12-2在操作S322将对应于CPU 12的当前使用率的操作频率Fre_cur与对应于参考使用率的阈值频率Fre_thr进行比较,并输出比较信号。
在操作S322,当操作频率Fre_cur大于阈值频率Fre_thr时,加速器控制器模块12-2在操作S324响应于比较信号等待硬件加速器ACChw的操作完成,然后运行硬件加速器驱动器12-5。换句话说,加速器控制器模块12-2不选择软件加速器ACCsw而是选择硬件加速器ACChw以减少CPU 12上的负荷。
因此,硬件加速器驱动器12-5在操作S316驱动硬件加速器ACChw来加速与第一应用程序12-1相对应的多媒体。
然而,在操作S322,当操作频率Fre_cur不大于阈值频率Fre_thr时,响应于比较信号,加速器控制器模块12-2在操作S326确定软件加速器ACCsw的当前状态,也就是,确定软件加速器ACCsw当前是否正在操作。
当确定软件加速器ACCsw当前并未在操作时,加速器控制器模块12-2在操作S328启动或运行软件加速器ACCsw。然而,当确定软件加速器ACCsw当前正在操作时,也就是,当软件加速器ACCsw正在处理与不同的应用程序相对应的多媒体时,加速器控制器模块12-2在操作S330等待软件加速器ACCsw完成当前操作。此后,根据加速器控制器模块12-2的控制(或控制信号)ACC_CTR,软件加速器ACCsw在操作S328加速与第一应用程序12-1相对应的功能。
在操作S320,当确定DVFS程序12-6并未在运行时,加速器控制器模块12-2在操作S332检查CPU 12的当前空闲时间Idle_cur。当空闲时间减少时,在CPU 12的负荷增加。
在操作S334,加速器控制器模块12-2将对应于CPU 12的当前使用率的当前空闲时间Idle_cur与对应于参考使用率的阈值空闲时间Idle_thr进行比较。
在操作S334,在当前空闲时间Idle_cur小于阈值空闲时间Idle_thr时,加速器控制器模块12-2在操作S324等待硬件加速器ACChw的操作完成,然后运行硬件加速器驱动器12-5。因此,硬件加速器驱动器12-5在操作S316启动或驱动硬件加速器ACChw来加速与第一应用程序12-1相对应的功能。
然而,在操作S334,在当前空闲时间Idle_cur不小于阈值空闲时间Idle_thr时,加速器控制器模块12-2在操作S326确定软件加速器ACCsw当前是否正在操作。
当确定软件加速器ACCsw当前并未在操作时,加速器控制器模块12-2在操作S328启动或运行软件加速器ACCsw。然而,当确定软件加速器ACCsw当前正在操作时,也就是,当软件加速器ACCsw正在处理与不同的应用程序相对应的功能时,加速器控制器模块12-2在操作S330等待软件加速器ACCsw完成当前操作。此后,在操作S328,软件加速器ACCsw根据加速器控制器模块12-2的控制ACC_CTR而启动,以加速与第一应用程序12-1相对应的功能。
如上所述,加速器控制器模块12-2可以基于功率消耗在异类加速器之间动态地切换已经设定用于每个应用程序的默认加速器、和/或基于默认加速器的当前状态和CPU 12的当前使用率实时地切换已经设定用于每个应用程序的默认加速器。
换句话说,加速器控制器模块12-2可以基于作为确定数据处理系统1或SoC 10的质量的因素的功率消耗,选择异类加速器之一作为默认加速器,然后比较默认加速器的性能与非默认加速器的性能,并且然后根据比较结果将默认加速器切换或改变到非默认加速器。
例如,当MP3播放器和视频播放器在给定时间期间操作时,可以执行多个加速,也就是,用于MP3播放器的MP3解码器加速器和在运行视频播放器时用于播放音频的另一个MP3解码器加速器可以被同时驱动。
图9是根据本发明概念的示范性实施例的基于性能选择应用程序的默认加速器的方法的流程图。在图9中示出的方法中,基于硬件加速器性能与软件加速器性能的比较结果确定默认加速器。
参考图1、图2和图9,当计数器设定开始时,在操作S410,装载到CPU12的加速器控制器模块12-2测量(或估计)分配给应用程序的硬件加速器ACChw执行加速所需要的加速时间Thw。
在操作S420,加速器控制器模块12-2还测量(或估计)分配给应用程序的软件加速器ACCsw执行加速所需要的加速时间Tsw。在图9中示出的实施例中,操作S410在操作S420之前执行,但是在其它实施例中,操作S420可以在操作S410之前执行。
例如,如果软件加速器ACCsw先用1秒然后用2秒来加速两个不同图像的绘制,则加速时间Tsw可以被估计为1.5秒。其中运行加速器的计算机系统可以记录每个应用程序的软件和/或硬件加速器的运行时段。加速器控制器模块12-2可以被配置为访问这个历史数据以估计加速时间。然而,加速时间的计算不限于此,因为各种其它方法可以用于测量或估计加速时间。
在操作S430,加速器控制器模块12-2比较硬件加速器ACChw的加速时间Thw与软件加速器ACCsw的加速时间Tsw。例如,当硬件加速器ACChw的加速时间Thw比软件加速器ACCsw的加速时间Tsw长时,加速器控制器模块12-2在操作S440选择应用程序的软件加速器ACCsw作为默认加速器ACCdef_perf。
然而,当硬件加速器ACChw的加速时间Thw不比软件加速器ACCsw的加速时间Tsw长时,加速器控制器模块12-2在操作S450选择应用程序的硬件加速器ACChw作为默认加速器ACCdef_perf。换句话说,加速器控制器模块12-2选择软件加速器和硬件加速器中具有较短的加速时间的加速器,作为应用程序的默认加速器。
在操作S460,加速器控制器模块12-2将关于在操作S440或S450选择的加速器的信息存储在表格中。例如,该表格可以是表格12-3或不同的一个表格。该表格可以存储在存储器14或21中,然后装载到RAM 16,并且然后装载到CPU 12。
例如,当在图1中示出的SoC 10包括“n”("n"是自然数)个应用程序、“n”个硬件加速器和“n”个软件加速器时,加速器控制器模块12-2可以基于性能(例如,加速时间)为“n”个应用程序中的每一个选择默认加速器,并将关于所选择的加速器的信息存储在与表格12-3相同或不同的表格中。
因此,即使在硬件加速器已经基于功率消耗被设定为第一应用程序APP1的默认加速器时,第一应用程序APP1的默认加速器也可以基于性能而改变为软件加速器。
图10是根据本发明概念的示范性实施例的在图1中示出的数据处理系统1的操作方法的流程图。参考图1到图10,加速器控制器模块12-2可以根据程序或用户的请求信号选择基于图4中的功率消耗设定的默认加速器或基于图9中的性能设定的默认加速器。
例如,在操作S510,加速器控制器模块12-2接收改变信号ACC_fac。改变信号ACC_fac可以是通过用户接口输入的信号或从CPU 12输出的信号。
在操作S520,加速器控制器模块12-2响应于改变信号ACC_fac确定默认加速器是基于功率消耗设定还是基于性能设定的。
关于默认加速器是否基于功率消耗设定还是基于性能设定的信息可以存储在存储器14或21中。因此,当引导数据处理系统1或运行应用程序时,在操作S520,加速器控制器模块12-2可以参考存储在存储器14或21中的信息确定所述应用程序的默认加速器是基于功率消耗设定的还是基于性能设定的。
例如,在操作S520,当改变信号ACC_fac是选择基于功率消耗设定的默认加速器的指令时,加速器控制器模块12-2参考表格选择基于功率消耗设定的默认加速器ACCdef_pow。
然而,在操作S520,当改变信号ACC_fac是选择基于性能设定的默认加速器的指令时,加速器控制器模块12-2参考表格选择基于性能设定的默认加速器ACCdef_perf。
如参考图7或图8所描述的,可以用非默认加速器来调换默认加速器ACCdef_pow或ACCdef_perf。
根据本发明概念的示范性实施例,加速器控制器模块12-2可以执行以下操作,诸如:i)基于功率消耗选择默认加速器ACCdef_pow;ii)基于性能选择默认加速器ACCdef_perf;iii)切换(或改变)基于功率消耗选择的默认加速器ACCdef_pow;以及iv)切换(或改变)基于性能选择的默认加速器ACCdef_perf。例如,模块12-2可以根据硬件加速器的性能和软件加速器的性能在使用硬件加速器和使用软件加速器之间进行切换,并且模块12-2可以根据硬件加速器的功率消耗和软件加速器的功率消耗在使用硬件加速器和使用软件加速器之间进行切换。
当CPU 12是包括多个独立的内核的多核处理器时,如上所述,可以通过每个内核的功率消耗或性能来确定对于每个内核在硬件加速器和软件加速器之间进行选择以作为默认加速器的方法。在这个示例中,加速器控制器模块12-2可以执行如上所述的四个操作。
如上所述,在本发明概念的至少一个实施例中,方法以及执行该方法的SoC使用加速器控制器模块在异类加速器之间进行切换,以加速应用程序所运行的多媒体。在包括异类加速器的SoC中,基于功率消耗和/或性能来执行切换,由此降低SoC的功率消耗并提高其性能。此外,SoC可以同时驱动多个异类加速器(多个加速驱动),由此提高加速性能。
虽然已经参考本发明概念的示范性实施例具体地示出和描述了本发明概念,但是本领域普通技术人员将理解,可以在其中进行各种形式和细节上的改变,而不脱离本公开的精神和范围。
Claims (26)
1.一种用于操作片上系统的方法,该方法包括:
接收在运行应用程序时生成的加速请求信号;
响应于收到所述加速请求信号,将中央处理单元(CPU)的当前使用率与阈值进行比较以生成比较信号;并且
响应于所述比较信号,执行在异类加速器之间的切换以加速由所述应用程序运行的功能。
2.如权利要求1所述的方法,其中,所述异类加速器包括实现为硬件设备的硬件加速器和实现为程序代码的软件加速器,该程序代码被配置为由CPU运行,并且所述软件加速器从存储器装载到CPU,然后被运行。
3.如权利要求2所述的方法,其中,所述比较发生在所述应用程序的默认加速器是硬件加速器并且所述硬件加速器当前正在操作时。
4.如权利要求2所述的方法,其中,所述比较发生在所述应用程序的默认加速器是软件加速器时。
5.如权利要求1所述的方法,其中,所述当前使用率是CPU的空闲时间。
6.如权利要求1所述的方法,其中,所述当前使用率是CPU的操作电压和CPU的操作频率之一。
7.一种用于操作片上系统的方法,该方法包括:
接收在运行应用程序时生成的加速请求信号;
响应于所述加速请求信号确定用于加速由所述应用程序运行的功能的默认加速器是硬件加速器还是软件加速器,其中,软件加速器被实现为计算机程序,该计算机程序被配置为由中央处理单元(CPU)运行;
当确定所述默认加速器是软件加速器或当前正在加速不同功能的硬件加速器时,将CPU的当前使用率与阈值进行比较以生成比较信号;并且
根据所述比较信号用非默认加速器调换所述默认加速器。
8.如权利要求7所述的方法,其中,基于存储在表格中的加速器信息执行所述确定。
9.一种片上系统(SoC),包括:
异类加速器;以及
中央处理单元(CPU),其被配置为运行加速器控制器模块,该加速器控制器模块生成用于在所述异类加速器之间进行切换的比较信号,所述异类加速器用于加速由应用程序运行的功能,
其中,所述加速器控制器模块将CPU的当前使用率与阈值进行比较,以输出所述比较信号,
其中,所述异类加速器包括实现为硬件设备的硬件加速器和实现为计算机程序代码的软件加速器,该计算机程序代码被配置为由CPU运行,并且
其中,所述软件加速器从存储器装载到CPU,然后被运行。
10.如权利要求9所述的SoC,其中,当所述硬件加速器被设定为用于加速所述功能并且当前正在加速不同功能的默认加速器时,所述加速器控制器模块基于在对应于当前使用率的CPU的空闲时间大于所述阈值时生成的比较信号,用所述软件加速器调换所述硬件加速器以加速所述功能。
11.如权利要求9所述的SoC,其中,当所述软件加速器被设定为用于加速所述功能的默认加速器时,所述加速器控制器模块基于在对应于当前使用率的CPU的空闲时间小于所述阈值时生成的比较信号,用所述硬件加速器调换所述软件加速器以加速所述功能。
12.如权利要求9所述的SoC,其中,当所述硬件加速器被设定为用于加速所述功能并且当前正在加速不同功能的默认加速器时,所述加速器控制器模块基于在对应于当前使用率的CPU的操作频率低于所述阈值时生成的比较信号,用所述软件加速器调换所述硬件加速器以加速所述功能。
13.如权利要求9所述的SoC,其中,当所述软件加速器被设定为用于加速所述功能的默认加速器时,所述加速器控制器模块基于在对应于当前使用率的CPU的操作频率高于所述阈值时生成的比较信号,用所述硬件加速器调换所述软件加速器以加速所述功能。
14.如权利要求9所述的SoC,其中,所述当前使用率是CPU的空闲时间。
15.如权利要求9所述的SoC,其中,每个当前使用率是CPU的操作电压和CPU的操作频率之一。
16.一种便携设备,包括:
非易失性存储器,其被配置为存储多媒体数据;
显示器;
异类加速器;以及
中央处理单元(CPU),其被配置为运行加速器控制器模块,该加速器控制器模块生成用于在所述异类加速器之间进行选择的比较信号,所述异类加速器用于加速由应用程序运行的所述多媒体数据的处理,
其中,所述加速器控制器模块将CPU的当前使用率与阈值进行比较,以输出所述比较信号,
其中,所选择的加速器通过显示器显示加速的多媒体数据,
其中,所述异类加速器包括实现为硬件设备的硬件加速器和实现为计算机程序代码的软件加速器,该计算机程序代码被配置为由CPU运行,并且
其中,所述软件加速器从存储器装载到CPU,然后被运行。
17.一种片上系统(SoC),包括:
硬件加速器;
存储器,其被配置为存储应用程序、加速器控制器模块和软件加速器;
以及
中央处理单元(CPU),其被配置为控制所述硬件加速器和所述存储器,并运行所述应用程序、所述加速器控制器模块和所述软件加速器,
其中,当所述加速器控制器模块收到由所述应用程序生成的加速请求信号时,响应于所述加速请求信号,所述加速器控制器模块确定用于加速由所述应用程序运行的功能的默认加速器是所述硬件加速器还是所述软件加速器,
其中,当确定所述默认加速器是软件加速器或当前正在加速不同功能的硬件加速器时,所述加速器控制器模块将CPU的当前使用率与阈值进行比较以生成比较信号,并且
其中,所述加速器控制器模块根据所述比较信号用非默认加速器调换所述默认加速器。
18.如权利要求17所述的SoC,其中,所述加速器控制器模块存储在所述存储器中,并且基于关于所述默认加速器的加速器信息确定所述默认加速器。
19.如权利要求17所述的SoC,其中,所述加速器控制器模块根据从用户输入接口输入的信息调整所述阈值。
20.一种用于操作片上系统的方法,该方法包括:
在加速器控制器模块处接收在运行应用程序时生成的加速请求信号;
响应于所述加速请求信号在所述加速器控制器模块处从表格读取加速器信息;并且
由所述加速器控制器模块基于所述加速器信息选择性地驱动实现为硬件设备的硬件加速器或实现为计算机程序代码的软件加速器之一,以加速由所述应用程序运行的功能,
其中,所述加速器信息指示所述硬件加速器和所述软件加速器中的哪一个具有较短的加速时间。
21.一种用于操作片上系统的方法,该方法包括:
接收改变信号;
确定所述改变信号是选择基于功率消耗选择的默认加速器的指令还是选择基于性能选择的默认加速器的指令;
基于确定的结果,参考存储在表格中的加速器信息;并且
基于加速器信息驱动被设定为所述默认加速器的硬件加速器或软件加速器之一,所述硬件加速器实现为硬件设备,而所述软件加速器实现为中央处理单元(CPU)可运行的计算机程序代码。
22.如权利要求21所述的方法,还包括:
当所述改变信号是选择基于所述功率消耗选择的所述默认加速器的指令时,将CPU的当前使用率与阈值进行比较以生成比较信号;并且
基于所述比较信号用非默认加速器调换所述默认加速器。
23.一种片上系统(SoC),包括:
总线;
中央处理单元(CPU),与所述总线接口;
硬件加速器,与所述总线接口,并被配置为使用硬件来加速功能;以及
存储器,与所述总线接口,并包括:
软件加速器,其被配置为使用软件来加速相同的功能;以及
加速器控制模块,其被配置为响应于应用程序的加速请求选择所述硬件加速器和所述软件加速器之一,以加速所述应用程序的功能,
其中,如果SoC内的默认参数被设定到硬件加速器,并且硬件加速器当前并未操作,则所述加速器控制模块选择所述硬件加速器,否则基于CPU的使用率参数与阈值的比较来选择硬件加速器和软件加速器之一。
24.如权利要求23所述的片上系统,其中,所述使用率参数是CPU空闲的时间量,其中,当所述量小于阈值时,所述加速器控制模块选择所述硬件加速器,否则选择所述软件加速器。
25.如权利要求23所述的片上系统,其中,所述使用率参数是CPU的操作频率,其中,当所述操作频率大于阈值时,所述加速器控制模块选择所述硬件加速器,否则选择所述软件加速器。
26.如权利要求23所述的片上系统,其中,所述使用率参数是CPU的操作电压,其中,当所述操作电压大于阈值时,所述加速器控制模块选择所述硬件加速器,否则选择所述软件加速器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2011-0087411 | 2011-08-30 | ||
KR1020110087411A KR101861742B1 (ko) | 2011-08-30 | 2011-08-30 | 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164215A true CN103164215A (zh) | 2013-06-19 |
CN103164215B CN103164215B (zh) | 2017-08-11 |
Family
ID=47665337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210315767.4A Active CN103164215B (zh) | 2011-08-30 | 2012-08-30 | 数据处理系统和用于在异类加速器之间进行切换的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9223581B2 (zh) |
JP (1) | JP6207818B2 (zh) |
KR (1) | KR101861742B1 (zh) |
CN (1) | CN103164215B (zh) |
DE (1) | DE102012106830A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592287A (zh) * | 2016-07-07 | 2018-01-16 | 深圳市中兴微电子技术有限公司 | 一种报文加速方法及装置 |
CN107636615A (zh) * | 2015-06-24 | 2018-01-26 | 英特尔公司 | 基于运行时功率效率判定的自适应硬件加速器 |
CN107750357A (zh) * | 2015-04-17 | 2018-03-02 | 微软技术许可有限责任公司 | 具有硬件加速平面和软件平面的数据处理系统 |
CN109426529A (zh) * | 2017-08-16 | 2019-03-05 | 龙芯中科技术有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN111865657A (zh) * | 2015-09-28 | 2020-10-30 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
US11099906B2 (en) | 2015-04-17 | 2021-08-24 | Microsoft Technology Licensing, Llc | Handling tenant requests in a system that uses hardware acceleration components |
CN114185837A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和调节电压和频率的方法 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140380025A1 (en) * | 2013-01-23 | 2014-12-25 | Empire Technology Development Llc | Management of hardware accelerator configurations in a processor chip |
US8782265B1 (en) | 2013-03-14 | 2014-07-15 | Dmitry Bokotey | Network visualization system and method of using same |
KR102114388B1 (ko) * | 2013-10-18 | 2020-06-05 | 삼성전자주식회사 | 전자 장치의 메모리 압축 방법 및 장치 |
CN104795072A (zh) * | 2015-03-25 | 2015-07-22 | 无锡天脉聚源传媒科技有限公司 | 一种音频数据的编码方法及装置 |
KR102402672B1 (ko) * | 2015-09-01 | 2022-05-26 | 삼성전자주식회사 | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법 |
US9911417B2 (en) * | 2016-04-01 | 2018-03-06 | Tai-An Lu | Internet of things system with voice-controlled functions and method for processing information of the same |
US10417012B2 (en) * | 2016-09-21 | 2019-09-17 | International Business Machines Corporation | Reprogramming a field programmable device on-demand |
US10599479B2 (en) | 2016-09-21 | 2020-03-24 | International Business Machines Corporation | Resource sharing management of a field programmable device |
US10572310B2 (en) | 2016-09-21 | 2020-02-25 | International Business Machines Corporation | Deploying and utilizing a software library and corresponding field programmable device binary |
US10355945B2 (en) | 2016-09-21 | 2019-07-16 | International Business Machines Corporation | Service level management of a workload defined environment |
US10740152B2 (en) * | 2016-12-06 | 2020-08-11 | Intel Corporation | Technologies for dynamic acceleration of general-purpose code using binary translation targeted to hardware accelerators with runtime execution offload |
US20190250957A1 (en) * | 2016-12-12 | 2019-08-15 | Hitachi, Ltd. | System and method of dynamic allocation of hardware accelerator |
KR102034660B1 (ko) * | 2017-07-31 | 2019-10-21 | 서울대학교산학협력단 | 이종 시스템의 가속기 제어 방법 및 이를 수행하기 위한 이종 시스템 |
EP3707572B1 (en) * | 2017-11-10 | 2023-08-23 | Nvidia Corporation | Systems and methods for safe and reliable autonomous vehicles |
US11210537B2 (en) | 2018-02-18 | 2021-12-28 | Nvidia Corporation | Object detection and detection confidence suitable for autonomous driving |
US10997433B2 (en) | 2018-02-27 | 2021-05-04 | Nvidia Corporation | Real-time detection of lanes and boundaries by autonomous vehicles |
DE112019000048T5 (de) | 2018-03-15 | 2020-01-16 | Nvidia Corporation | Bestimmung eines befahrbaren freiraums für autonome fahrzeuge |
WO2019216797A1 (en) * | 2018-05-08 | 2019-11-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and node for managing a request for hardware acceleration by means of an accelerator device |
US11144357B2 (en) * | 2018-05-25 | 2021-10-12 | International Business Machines Corporation | Selecting hardware accelerators based on score |
US10892944B2 (en) | 2018-11-29 | 2021-01-12 | International Business Machines Corporation | Selecting and using a cloud-based hardware accelerator |
US11182916B2 (en) | 2018-12-28 | 2021-11-23 | Nvidia Corporation | Distance to obstacle detection in autonomous machine applications |
CN113811886B (zh) | 2019-03-11 | 2024-03-19 | 辉达公司 | 自主机器应用中的路口检测和分类 |
US11713978B2 (en) | 2019-08-31 | 2023-08-01 | Nvidia Corporation | Map creation and localization for autonomous driving applications |
US11978266B2 (en) | 2020-10-21 | 2024-05-07 | Nvidia Corporation | Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications |
KR102559658B1 (ko) * | 2020-12-16 | 2023-07-26 | 한국과학기술원 | 스케줄링 방법 및 장치 |
CN114860353A (zh) * | 2022-05-31 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种程序执行方法、系统、设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925641B1 (en) * | 2000-02-04 | 2005-08-02 | Xronix Communications, Inc. | Real time DSP load management system |
US20070283128A1 (en) * | 2006-06-06 | 2007-12-06 | Matsushita Electric Industrial Co., Ltd. | Asymmetric multiprocessor |
CN101441564A (zh) * | 2008-12-04 | 2009-05-27 | 浙江大学 | 为程序定制的可重构加速器实现方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04367337A (ja) | 1991-06-11 | 1992-12-18 | Raiden:Kk | 鋼板コイルの口開き装置 |
JP4212676B2 (ja) * | 1998-02-12 | 2009-01-21 | 富士ゼロックス株式会社 | 情報処理システムおよび情報処理方法 |
US9195784B2 (en) * | 1998-08-31 | 2015-11-24 | Cadence Design Systems, Inc. | Common shared memory in a verification system |
KR20000032335A (ko) | 1998-11-13 | 2000-06-15 | 구자홍 | 휴대용 컴퓨터의 디스플레이 성능 향상방법 |
JP4367337B2 (ja) | 2004-12-28 | 2009-11-18 | セイコーエプソン株式会社 | マルチメディア処理システム及びマルチメディア処理方法 |
JP2009122925A (ja) | 2007-11-14 | 2009-06-04 | Toshiba Corp | データ処理プログラム、データ処理方法およびデータ処理システム |
US8055872B2 (en) * | 2008-02-21 | 2011-11-08 | Arm Limited | Data processor with hardware accelerator, accelerator interface and shared memory management unit |
US8432405B2 (en) | 2008-06-26 | 2013-04-30 | Microsoft Corporation | Dynamically transitioning between hardware-accelerated and software rendering |
US8368702B2 (en) | 2010-01-06 | 2013-02-05 | Apple Inc. | Policy-based switching between graphics-processing units |
KR101115708B1 (ko) | 2010-01-26 | 2012-03-06 | 한국원자력연구원 | 단결정 성장용 앰플 및 이를 포함하는 단결정 성장장치 |
US20110249022A1 (en) * | 2010-04-08 | 2011-10-13 | Rajesh Poornachandran | Techniques for managing power use |
US8839256B2 (en) * | 2010-06-09 | 2014-09-16 | International Business Machines Corporation | Utilization of special purpose accelerators using general purpose processors |
WO2012124125A1 (ja) * | 2011-03-17 | 2012-09-20 | 富士通株式会社 | システムおよびスケジューリング方法 |
-
2011
- 2011-08-30 KR KR1020110087411A patent/KR101861742B1/ko active IP Right Grant
-
2012
- 2012-07-27 DE DE102012106830A patent/DE102012106830A1/de active Pending
- 2012-08-30 US US13/599,042 patent/US9223581B2/en active Active
- 2012-08-30 CN CN201210315767.4A patent/CN103164215B/zh active Active
- 2012-08-30 JP JP2012189619A patent/JP6207818B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925641B1 (en) * | 2000-02-04 | 2005-08-02 | Xronix Communications, Inc. | Real time DSP load management system |
US20070283128A1 (en) * | 2006-06-06 | 2007-12-06 | Matsushita Electric Industrial Co., Ltd. | Asymmetric multiprocessor |
CN101441564A (zh) * | 2008-12-04 | 2009-05-27 | 浙江大学 | 为程序定制的可重构加速器实现方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107750357A (zh) * | 2015-04-17 | 2018-03-02 | 微软技术许可有限责任公司 | 具有硬件加速平面和软件平面的数据处理系统 |
CN107750357B (zh) * | 2015-04-17 | 2021-08-06 | 微软技术许可有限责任公司 | 具有硬件加速平面和软件平面的数据处理系统 |
US11099906B2 (en) | 2015-04-17 | 2021-08-24 | Microsoft Technology Licensing, Llc | Handling tenant requests in a system that uses hardware acceleration components |
CN107636615A (zh) * | 2015-06-24 | 2018-01-26 | 英特尔公司 | 基于运行时功率效率判定的自适应硬件加速器 |
CN111865657A (zh) * | 2015-09-28 | 2020-10-30 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
CN111865657B (zh) * | 2015-09-28 | 2022-01-11 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
US11579907B2 (en) | 2015-09-28 | 2023-02-14 | Huawei Technologies Co., Ltd. | Acceleration management node, acceleration node, client, and method |
CN107592287A (zh) * | 2016-07-07 | 2018-01-16 | 深圳市中兴微电子技术有限公司 | 一种报文加速方法及装置 |
CN109426529A (zh) * | 2017-08-16 | 2019-03-05 | 龙芯中科技术有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN109426529B (zh) * | 2017-08-16 | 2023-03-21 | 龙芯中科技术股份有限公司 | 基于x窗口系统图形绘制的方法、装置及终端 |
CN114185837A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和调节电压和频率的方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102012106830A1 (de) | 2013-02-28 |
KR20130024155A (ko) | 2013-03-08 |
JP6207818B2 (ja) | 2017-10-04 |
US9223581B2 (en) | 2015-12-29 |
JP2013050953A (ja) | 2013-03-14 |
US20130061033A1 (en) | 2013-03-07 |
KR101861742B1 (ko) | 2018-05-30 |
CN103164215B (zh) | 2017-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164215A (zh) | 数据处理系统和用于在异类加速器之间进行切换的方法 | |
CN107851042B (zh) | 使用命令流提示来表征gpu工作负载和电力管理 | |
US8166323B2 (en) | Thread migration to improve power efficiency in a parallel processing environment | |
US8316255B2 (en) | Method and apparatus for responding to signals from a disabling device while in a disabled state | |
US8806491B2 (en) | Thread migration to improve power efficiency in a parallel processing environment | |
US10740154B2 (en) | Method and apparatus for allocating computing resources of processor based on processor load, and terminal | |
CN102866934B (zh) | 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统 | |
US20100295852A1 (en) | Graphics processing system with power-gating control function, power-gating control method, and computer program products thereof | |
US8810584B2 (en) | Smart power management in graphics processing unit (GPU) based cluster computing during predictably occurring idle time | |
US20120032957A1 (en) | Data processing unit with multi-graphic controller and method for processing data using the same | |
US7624287B2 (en) | Adaptive power state management | |
US20190235615A1 (en) | Modified sleep state graphics processing system | |
US10209758B2 (en) | Graphics processing system and power gating method thereof | |
US11043158B2 (en) | Video bandwidth optimization for multi-monitor systems | |
CN113134234B (zh) | 信息显示方法、装置、终端及存储介质 | |
CN111104114B (zh) | 自带状态的可控制轮播图组件实现方法及系统、设备 | |
JP2004177725A (ja) | 電子機器及び省電力制御方法 | |
CN110908736A (zh) | 一种3d场景加载方法、装置、设备及存储介质 | |
Johnson et al. | Optimising energy management of mobile computing devices | |
US11238772B2 (en) | Methods and apparatus for compositor learning models | |
CN103135964A (zh) | 跨指令集调用函数的方法和电子设备 | |
WO2021196175A1 (en) | Methods and apparatus for clock frequency adjustment based on frame latency | |
KR20210022850A (ko) | 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치 | |
KR20220155422A (ko) | 정보 디스플레이 방법 및 장치, 단말기, 저장 매체 및 컴퓨터 프로그램 제품 | |
Chu et al. | Program-based dynamic precision selection framework with a dual-mode unified shader for mobile GPUs |
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 |