首页> 中国专利> 数据处理系统和用于在异类加速器之间进行切换的方法

数据处理系统和用于在异类加速器之间进行切换的方法

摘要

本发明公开了用于操作片上系统的方法,该方法包括:接收在运行应用程序时生成的加速请求信号;响应于收到加速请求信号,将中央处理单元(CPU)的当前使用率与阈值进行比较以生成比较信号;并且响应于比较信号,执行在异类加速器之间的切换以加速由应用程序运行的功能。

著录项

  • 公开/公告号CN103164215A

    专利类型发明专利

  • 公开/公告日2013-06-19

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN201210315767.4

  • 发明设计人 金富珍;高在明;申宅均;

    申请日2012-08-30

  • 分类号G06F9/44;G06F9/46;

  • 代理机构北京市柳沈律师事务所;

  • 代理人刘虹

  • 地址 韩国京畿道

  • 入库时间 2024-02-19 19:20:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-11

    授权

    授权

  • 2014-09-17

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20120830

    实质审查的生效

  • 2013-06-19

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于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)、数字摄像机(digital  video camera)、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设 备(PND)、手持游戏控制台、诸如电子书的手持设备、个人计算机、等等。

数据处理系统1包括片上系统(SoC)10、存储器21、以及显示器26。 SoC 10、存储器21、以及显示器26可以以系统印制电路板(system printed  circuit board(PCB))来实现或实现在系统印制电路板上。

SoC 10包括CPU 12、只读存储器(ROM)14、随机存取存储器16、硬 件加速器18、输入/输出(I/O)接口20、总线22、以及显示器控制器24。

CPU 12可以被称为处理器,并且可以处理或运行存储在ROM 14或RAM 16中的程序和/或数据。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。已经装载到RAM 16的加速器控制器模块(或加速器控制代码)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的默认加速器为软件加速器时,已经装载到RAM 16的软件加速器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,装载到CPU 12的加速器控制器模块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可以同时驱动多 个异类加速器(多个加速驱动),由此提高加速性能。

虽然已经参考本发明概念的示范性实施例具体地示出和描述了本发明概 念,但是本领域普通技术人员将理解,可以在其中进行各种形式和细节上的 改变,而不脱离本公开的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号