处理器、其任务处理方法和处理任务的架构与流程

文档序号:18213518发布日期:2019-07-19 22:28阅读:369来源:国知局
处理器、其任务处理方法和处理任务的架构与流程

本申请主张在2017年12月11日在韩国知识产权局提出申请的韩国专利申请第10-2017-0169551号的优先权,所述韩国专利申请的公开内容全文并入本申请供参考。

本公开涉及一种能够在多个数字信号处理器(digitalsignalprocessors,在下文中也称为dsp)中快速处理任务的任务递送方法和/或一种包括在其中实施任务递送方法的多个dsp的电子装置。



背景技术:

随着电子技术的发展,正在广泛地使用具有各种功能的电子装置,例如智能电话、平板个人计算机(personalcomputer,pc)等。

最近的电子装置往往具有主处理器(mainprocessor),所述主处理器包括多个dsp。多个dsp可用作主处理器来执行信号处理功能,例如从来源于其他内部装置的信号提取信息的功能、改变信息的详情或特性的功能、用于使语音信号数字化的语音编码功能、数字滤波器功能或处理声音或视频的功能。

根据传统的dsp技术,主dsp核(masterdspcore)可根据命令分组或数据消息分组到达队列的次序来确定执行命令且可监视从dsp(slavedsp)的运行状态并基于监视结果来执行排程以确定要接收执行命令的从dsp。

然而,根据在上述传统的dsp之间进行的任务递送方法,主dsp核收集所有任务信息且接着执行排程及任务递送。因此,当任务数目增大时,主dsp核的负担加重。因此,dsp的任务处理速度可能降低。



技术实现要素:

本发明的各种示例性实施例可提供一种能够在多个dsp中快速处理任务的任务递送方法,且还提供一种包括在其中实施上述方法的多个dsp的电子装置。

根据本发明概念的一方面,提供一种处理器,所述处理器包括:多个核,被配置成独立地执行操作;存储器;以及控制电路,电连接到所述多个核及所述存储器。所述控制电路被配置成:获取与要使用所述多个核中的至少一些核进行处理的任务相关联的一个或多个指令;基于所述一个或多个指令将与所述任务对应的数据存储在所述存储器中;将所述一个或多个指令中的至少一些指令递送到所述多个核中的所述至少一些核;检查所述至少一些核之中已对所述一个或多个指令中的所述至少一些指令作出响应的所述多个核中的一个或多个;如果所述任务被分配给所述多个核中的所述一些核之中的一个核,则阻止将所述任务分配给除所述一个核之外的所述多个核中的所述一些核;以及如果所述任务未被分配给所述核,则将所述任务分配给一个核,所述任务的所述分配包括:改变与所述分配相关联的状态信息并将所述多个核之中未被分配所述任务的其他核设定成不存取与所述任务对应的所述数据。

根据本发明概念的另一方面,提供一种处理器的任务处理方法,所述处理器包括能够独立地执行操作的多个核、存储器及电连接到所述多个核及所述存储器的控制电路,所述任务处理方法包括:获取与要使用所述多个核中的至少一些核进行处理的任务相关联的一个或多个指令;基于所述一个或多个指令将与所述任务对应的数据存储在所述存储器中;将所述一个或多个指令中的至少一些指令传送到所述多个核中的所述至少一些核;检查所述至少一些核之中已对所述一个或多个指令中的所述至少一些指令作出响应的一个或多个核;如果所述任务被分配给一个核,则阻止将所述任务分配给除所述一个核之外的所述多个核;以及将所述任务分配给所述一个核,所述任务的所述分配包括:改变与所述分配相关联的状态信息并将所述多个核之中未被分配所述任务的其他核设定成不存取与所述任务对应的所述数据。

根据本发明概念的再一个方面,提供一种处理任务的架构,所述架构包括:多个核,包括多个不同的数字信号处理器或至少一个硬件加速器;以及控制电路,电连接到所述多个核,其中所述控制电路被配置成:从所述多个核中的至少一些核接收任务处理请求;将与所述任务相关联的指令及信息存储在内部存储器中;将与所述任务相关联的所述指令中的至少一些指令以事件形式传送到所述多个核;以及将所述任务分配给所述多个核之中第一个对所述至少一些指令作出响应的一个核。

应注意,本发明的目标并非仅限于上述目标,且通过阅读以下说明,本发明的其他目标对于所属领域中的技术人员来说将显而易见。

附图说明

通过参照附图详细阐述本公开的示例性实施例,本公开的以上及其它方面及特征将变得更显而易见,在附图中:

图1是根据各种示例性实施例的网络环境中的电子装置的方块图。

图2是示出根据本发明各种示例性实施例的架构的方块图。

图3是根据本发明各种示例性实施例的控制电路的方块图。

图4是根据本发明各种示例性实施例的架构的操作流程图。

图5是示出根据本发明各种示例性实施例的架构的任务处理过程的操作流程图。

图6是示出共享命令队列(sharedcommandqueue,scq)电路将由至少一些核请求的任务分配给其他核的过程的示例图。

图7是示出scq电路考虑到任务之间的相依性来分配任务的方法的示例图。

图8示出其中scq电路设定等待任务的实例。

图9是根据各种示例性实施例的相机模块的方块图。

[符号的说明]

100:网络环境;

101、102:电子装置;

104:电子装置/外部电子装置;

108:服务器;

120:处理器;

121:主处理器;

123:辅助处理器;

130、250、950:存储器;

132:易失性存储器;

134:非易失性存储器;

136:内部存储器;

138:外部存储器;

140:程序;

142:操作系统;

144:中间件;

146:应用;

150:输入装置;

155:声音输出装置;

160:显示装置;

170:音频模块;

176:传感器模块;

177:接口;

178:连接端子;

179:触感模块;

180、980:相机模块;

188:电源管理模块;

189:电池;

190:通信模块;

192:无线通信模块;

194:有线通信模块;

196:用户识别模块;

197:天线模块;

198:第一网络;

199:第二网络;

200、600:架构;

210:控制电路/共享命令队列(scq)电路;

220:核控制集线器;

230:核/第一核/第二核;

231、631:第一核;

233、633:第二核;

235、635:第三核;

237、637:第四核;

240、320:总线;

300:控制电路/共享命令队列(scq)电路;

310:主电路;

311:特殊功能寄存器(sfr)设定电路;

312:中断请求(irq)控制电路;

313:队列控制电路;

314、622、822:队列存储装置;

315:队列排程电路;

316:队列存储器有效性检查器;

317:sram地址控制器;

318:sram接口;

350:存储器/内部存储器;

401、402、403、404、405、406、407、501、502、503、504、505、506、507、508、509:操作;

610:箭头;

620、800:共享命令队列(scq)电路;

621、821:仲裁器电路;

630:核;

711、721、722、731、741、742、743、744、751、752:方块;

832:等待任务1;

835:等待任务2;

900:方块图;

910:镜头总成;

920:闪光灯;

930:图像传感器;

940:图像稳定器;

960:图像信号处理器。

具体实施方式

图1是根据各种示例性实施例的网络环境100中的电子装置101的方块图。参照图1,在网络环境100中,电子装置101可通过第一网络198(例如,短距离无线通信)来与电子装置102进行通信,或者可通过第二网络199(例如,长距离无线通信)来与电子装置104或服务器108进行通信。根据示例性实施例,电子装置101可通过服务器108来与电子装置104进行通信。根据示例性实施例,电子装置101可包括处理器120、存储器130、输入装置150、声音输出装置155、显示装置160、音频模块170、传感器模块176、接口177、触感模块(hapticmodule)179、相机模块180、电源管理模块188、电池189、通信模块190、用户识别模块(subscriberidentitymodule)196及天线模块197。在一些示例性实施例中,可从电子装置101排除所述组件中的至少一者(例如,显示装置160或相机模块180),或者电子装置101中可另外包括另一个组件。在一些示例性实施例中,一些组件可与其他组件集成在一起。举例来说,传感器模块176(例如,指纹传感器(fingerprintsensor)、虹膜传感器(irissensor)或亮度传感器(illuminationsensor))嵌入在显示装置160(例如,显示器)中。

举例来说,通过执行软件(例如,程序140),处理器120可控制与处理器120连接的电子装置101的至少另一个组件(例如,硬件组件或软件组件),且可对各种数据进行处理并对各种数据执行操作。处理器120可将从另一个组件(例如,传感器模块176或通信模块190)接收的指令或数据加载到易失性存储器132中,处理所加载的指令或数据,并将所得数据存储在非易失性存储器134中。根据示例性实施例,处理器120可包括主处理器121(例如,中央处理器(centralprocessingunit)或应用处理器(applicationprocessor))以及独立于主处理器121运行的辅助处理器123(例如,图形处理单元(graphicsprocessingunit)、图像信号处理器(imagesignalprocessor)、传感器集线器处理器(sensorhubprocessor)或通信处理器(communicationsprocessor)),且辅助处理器123另外地或作为另外一种选择被配置成使用比主处理器121低的功率,或者专用于特定功能。此处,辅助处理器123可与主处理器分开运行或者同时嵌置在主处理器121中。

在这种情形中,当主处理器121处于非现用(inactive)(例如,睡眠)状态时,辅助处理器123可代表主处理器121来控制与电子装置101的组件中的至少一个组件(例如,显示装置160、传感器模块176或通信模块190)相关联的功能或状态中的至少一些功能或状态;或者当主处理器121处于现用(例如,正在执行应用)状态时,辅助处理器123可与主处理器121一起控制上述功能或状态中的至少一些功能或状态。根据示例性实施例,辅助处理器123(例如,图像信号处理器或通信处理器)可被实施为在功能上与辅助处理器123相关联的另一个组件(例如,相机模块180或通信模块190)的一部分。存储器130可存储由电子装置101的至少一个组件(例如,处理器120或传感器模块176)使用的各种数据,例如软件(例如,程序140)以及用于相关联的命令的输入数据或输出数据。存储器130可包括易失性存储器132或非易失性存储器134。

程序140是存储在存储器130中的软件且可包括例如操作系统(operatingsystem)142、中间件(middleware)144或应用146。

输入装置150是从电子装置101的外部(例如,用户)接收将由电子装置101的组件(例如,处理器120)使用的命令或数据的装置且可包括例如麦克风、鼠标或键盘。

声音输出装置155是用于将声音信号输出到电子装置101的外部的装置且可包括例如用于一般用途(例如,多媒体回放或录音回放)的扬声器以及仅用于呼叫接收的接收器。根据示例性实施例,接收器可与扬声器成一体地形成或者与扬声器分开形成。

显示装置160是用于以视觉方式向电子装置101的用户提供信息的装置且可包括例如显示器、全息图装置(hologramdevice)或投影仪以及用于控制对应装置的控制电路。根据示例性实施例,显示装置160可包括能够测量触摸压力强度的触摸电路或压力传感器。

音频模块170可在声音信号与电信号之间执行双向转换。根据示例性实施例,音频模块170可通过输入装置150获取声音,或者通过声音输出装置155或以有线方式或无线方式连接到电子装置101的外部电子装置(例如,电子装置102(例如扬声器或头戴耳机))来输出声音。

传感器模块176可产生与电子装置101的外部环境状态或内部运行状态(例如,功率或温度)对应的电信号或数据值。传感器模块176可包括例如手势传感器(gesturesensor)、陀螺仪传感器(gyrosensor)、气压传感器(airpressuresensor)、磁性传感器(magneticsensor)、加速度传感器(accelerationsensor)、握持传感器(gripsensor)、接近传感器(proximitysensor)、颜色传感器(colorsensor)、红外(infrared,ir)传感器、生物特征传感器(biosensor)、温度传感器(temperaturesensor)、湿度传感器(humiditysensor)或亮度传感器。

接口177可支持用于以有线方式或无线方式连接到外部电子装置(例如,电子装置102)的规定协议。根据示例性实施例,接口177可包括高清晰度多媒体接口(highdefinitionmultimediainterface,hdmi)、通用串行总线(universalserialbus,usb)接口、安全数字(securedigital,sd)卡接口或音频接口。

连接端子178可包括连接件(例如,hdmi连接件、usb连接件、sd卡连接件或音频连接件(例如,头戴耳机连接件)),所述连接件可在实体上连接电子装置101与外部电子装置(例如,电子装置102)。

触感模块179可将电信号转换成机械刺激(例如,震动或移动)或者用户可通过触觉(tactilesense)或动觉(kinestheticsense)感知的电刺激。触感模块179可包括例如马达(motor)、压电式元件(piezoelectricelement)或电刺激装置(electricalstimulationdevice)。

相机模块180可拍摄静止图像及视频。根据示例性实施例,相机模块180可包括一个或多个镜头、图像传感器、图像信号处理器或闪光灯。

电源管理模块188是用于管理向电子装置101供应的电力的模块且可例如被配置成电源管理集成电路(powermanagementintegratedcircuit,pmic)的至少一部分。

电池189是用于向电子装置101的至少一个组件供电的装置,且可包括例如不可再充电的一次电池(primarybattery)、可再充电的二次电池(secondarybattery)或燃料电池(fuelcell)。

通信模块190可在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立有线的或无线的通信信道并通过所建立的通信信道支持通信。通信模块190可包括独立于处理器120(例如,应用处理器)运行并支持有线通信或无线通信的一个或多个通信处理器。根据示例性实施例,通信模块190可包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(globalnavigationsatellitesystem,gnss)通信模块)或有线通信模块194(例如,局域网(localareanetwork,lan)通信模块或电力线通信模块(powerlinecommunicationmodule))。在以上通信模块中,可使用对应的通信模块来通过第一网络198(例如,短距离通信网络,例如蓝牙、无线保真(wifi)直接或红外数据协会(infrareddataassociation,irda))或第二网络199(例如,长距离通信网络,例如蜂窝网络、互联网或计算机网络(例如,局域网(lan)或广域网(wideareanetwork,wan)))与外部电子装置进行通信。上述各种类型的通信模块190可被实施为单个芯片或多个分开的独立芯片。

根据示例性实施例,无线通信模块192可使用存储在用户识别模块196中的用户信息来识别及认证通信网络中的电子装置101。

天线模块197可包括一个或多个天线,其用于在外部传送或接收信号或电力。根据示例性实施例,通信模块190(例如,无线通信模块192)可通过适用于通信方案的天线将信号传送到外部电子装置或从外部电子装置接收信号。

所述元件中的一些元件可通过外围之间的通信方案(例如,总线、通用输入/输出(generalpurposeinput/output,gpio)、串行外围接口(serialperipheralinterface,spi)或移动产业处理器接口(mobileindustryprocessorinterface,mipi))连接到彼此以在彼此之间交换信号(例如,命令或数据)。

根据示例性实施例,可通过连接到第二网络199的服务器108在电子装置101与外部电子装置104之间传送或接收命令或数据。电子装置102及电子装置104中的每一者可为与电子装置101相同类型或不同类型的装置。根据示例性实施例,由电子装置101执行的一些或所有动作可由另一个外部电子装置或多个外部电子装置执行。根据示例性实施例,当电子装置101应自动地或根据请求执行某一功能或服务时,替代自主地运行所述功能或服务或者除了自主地运行所述功能或服务之外,电子装置101还可从外部电子装置请求至少部分地与所述某一功能或服务相关联的功能。当接收到所述请求时,外部电子装置可执行所请求的功能或另外的功能并将所述执行的结果递送到电子装置101。电子装置101可按照原样使用所接收的结果或者在对所接收的结果进行另外地处理之后提供所请求的功能或服务。为此,举例来说,可使用云计算、分布式计算或客户机-服务器计算技术。

根据本发明各种示例性实施例的处理器可包括能够独立地执行操作的多个核(例如,图2所示230)、存储器(例如,图3所示350)及电连接到所述多个核230及存储器350的控制电路(例如,图3所示300),其中控制电路300可被配置成:获取与要使用所述多个核230中的至少一些核230进行处理的任务相关联的一个或多个指令;基于所述一个或多个指令将与所述任务对应的数据存储在存储器350中;将所述一个或多个指令中的至少一些指令递送到所述至少一些核230;检查所述至少一些核230之中已对所述至少一些指令作出响应的一个或多个核230;阻止将所述任务分配给除了已被分配所述任务的一个核之外的核;以及当所述任务未被分配给核230时将所述任务分配给核230中的一个核230,所述任务的分配包括:改变与所述分配相关联的状态信息并将所述多个核之中未被分配所述任务的其他核设定成不存取与所述任务对应的数据。控制电路300可被配置成将所述任务分配给所述至少一些核230之中第一个对所述至少一些指令作出响应的核。控制电路300可包括队列存储装置(例如,图3所示314),所述队列存储装置以先进先出(first-in-first-out,fifo)结构存储及管理任务指令。控制电路300可包括中断请求(interruptrequest,irq)控制电路312,irq控制电路312基于事件来产生中断并将所述任务递送到已对所述至少一些指令作出响应的一个或多个核。存储器350可被作为静态随机存取存储器(staticrandomaccessmemory,sram)提供并嵌置在控制电路300中。控制电路300可包括sram地址控制器(例如,图3所示317),sram地址控制器被配置成自动地分配用于存储与所述任务对应的数据的地址并响应于获取与要处理的所述任务相关联的所述一个或多个指令来将与所述任务对应的数据存储在存储器350的所分配的地址中。控制电路300可被配置成将所述任务优先分配给基于由用户设定的优先权而指定的一个或多个核。所述多个核可被作为多个不同的dsp提供。

根据本发明各种示例性实施例的架构(例如,图2所示200)可包括由多个不同的dsp或至少一个硬件加速器构成的多个核(例如,图2所示230)以及电连接到所述多个核的控制电路(例如,图3所示300),其中控制电路300被配置成:从所述多个核中的至少一些核接收任务处理请求;将与所述任务相关联的指令及信息存储在内部存储器350中;将与所述任务相关联的指令中的至少一些指令以事件形式递送到所述多个核;以及将所述任务分配给所述多个核之中第一个对所述至少一些指令作出响应的核。当所述任务被分配给所述多个核230中的一个核230时,控制电路300可被配置成不将所述任务分配给其他核230。控制电路300对任务的分配可包括改变与所述分配相关联的状态信息并阻止其他核存取与所述任务对应的数据。控制电路300可包括队列存储装置(例如,图3所示314),所述队列存储装置以fifo结构存储及管理任务指令。

图2是示出根据本发明各种示例性实施例的架构200的方块图。根据示例性实施例,图2所示架构200可相同或相似于图1所示处理器120。在一些示例性实施例中,图2所示架构200可至少为包括在图1所示处理器120中的元件。

参照图2,架构200可包括用于独立地执行操作的多个核230、存储器250以及电连接到所述多个核230及存储器250的控制电路210。根据示例性实施例,架构200还可包括将控制电路210连接到所述多个核230的核控制集线器220或者将所述多个核230连接到存储器250的总线240。

根据示例性实施例,所述多个核230可被作为多个不同的dsp或至少一个硬件加速器提供。根据示例性实施例,所述多个核230可被配置成处理从电子装置(例如,图1所示电子装置101)中所包括的其他装置(例如,图1所示音频模块170、传感器模块176、触感模块179或相机模块180)提供的信号或信息。举例来说,由所述多个核230处理的任务可包括以下功能:从由电子装置(例如,图1所示电子装置101)中所包括的其他装置(例如,图1所示音频模块170、传感器模块176、触感模块179或相机模块180)提供的信号提取信息的功能、改变信息的详情或特性的功能、用于使语音信号数字化的语音编码功能、数字滤波器功能或处理声音或视频的功能。

根据示例性实施例,所述多个核230可独立地执行操作来执行所述功能来。举例来说,所述多个核230可被作为多个不同的dsp或至少一个硬件加速器提供。在图2中,所述多个核230被示出为第一核231、第二核233、第三核235及第四核237,它们是独立地执行操作的四个核。然而,在本发明中对核的数目不存在限制。

根据示例性实施例,存储器250可被配置成存储与任务对应的数据。根据示例性实施例,存储器250可安装在控制电路210中。根据示例性实施例,存储器250可被作为sram提供。

根据示例性实施例,控制电路210可被配置成从所述多个核230接收任务处理请求并使所接收的任务分布到所述多个核230。根据示例性实施例,控制电路210可为管理由所述多个核230请求的任务的电路。

根据示例性实施例,控制电路210可将由特定核请求的任务以中断事件形式递送到多个核且可从所述多个核中的至少一些核接收对中断事件的响应。根据示例性实施例,控制电路210可将所请求的任务分配给所述多个核之中第一个作出响应的核。举例来说,控制电路210可响应于从第一核231接收到任务处理请求来将与所述任务相关联的中断事件传送到第一核到第四核231、233、235及237。当所述响应是从第一核到第四核231、233、235及237之中的第三核235第一次接收到时,控制电路210可将所述任务分配给第三核235。根据示例性实施例,控制电路210对所述任务的分配可包括:将与所述任务相关联的指令或与所述任务对应的数据传送到所述多个核230之中第一次作出响应的核。根据示例性实施例,被分配所述任务的所述核(例如,第三核235)可执行与所分配的任务相关联的功能。

根据示例性实施例,控制电路210可基于用户的设定来确定任务的优先权。举例来说,与多个任务中的其他任务相比,可能必须优先处理所述多个任务之中所指定的任务。举例来说,尽管控制电路210依序存储了从所述多个核230接收到的第一任务、第二任务及第三任务,然而控制电路210可能接收到要处理具有优先权的第四任务的请求。在这种情形中,控制电路210可对队列次序进行调整以使得第四任务在第一任务到第三任务之前被处理。

根据示例性实施例,控制电路210可使特定任务与特定核匹配。举例来说,控制电路210可将指定核设定成处理所述多个任务中的至少一些任务。

根据示例性实施例,控制电路210可考虑到各个任务之间的相依性来调整任务分配时间。举例来说,在多个任务之间可存在相依性。举例来说,第二任务可能必须在第一任务被处理之后被处理。在这种情形中,通过在处理第一任务之后指定等待任务,控制电路210可使得能够在对第一任务的处理完成之后处理第二任务。

根据本发明各种示例性实施例的控制电路210与所述多个核230共享与所述任务相关联的队列并管理所述队列。在下文中,控制电路210被定义为共享命令队列(scq)电路。

图3是根据本发明各种示例性实施例的控制电路的方块图。

参照图3,根据本发明各种示例性实施例的scq电路300(例如,图2所示scq电路210)可包括主电路310、总线320(例如,图2所示核控制集线器220)或被作为sram提供的内部存储器350,总线320被配置成将主电路310连接到多个核(例如,图2所示所述多个核230)。

根据示例性实施例,主电路310可包括:特殊功能寄存器(specialfunctionregister,sfr)设定电路311,连接到总线320以控制所述多个核230;irq控制电路312,被配置成将irq传送到所述多个核230;sram地址控制器317;sram接口318;及队列控制电路313。根据示例性实施例,队列控制电路313可包括队列存储装置314、队列排程电路315及队列存储器有效性检查器(queuememoryvaliditychecker)316。

根据示例性实施例,所述多个核230可通过scq电路300彼此共享任务。根据示例性实施例,scq电路300存储及管理从所述多个核230接收到的任务。举例来说,scq电路300可被配置成存储及管理任务。根据示例性实施例,scq电路300可存储任务指令及与任务相关联的数据(任务信息)。举例来说,scq电路300可被配置成通过队列存储装置314存储多达32个任务。根据各种示例性实施例,队列存储装置314存储的任务的数目可大于32。

根据示例性实施例,一个任务可包括一个指令或者可包括多个指令。举例来说,一个任务可包括一条任务信息或者可包括10条任务信息。

根据示例性实施例,队列存储装置314可以fifo结构存储任务指令。

根据示例性实施例,scq电路300可包括具有多达8千字节来存储任务信息的内部存储器350。举例来说,scq电路300可将从所述多个核230中的至少一个核230接收到的任务指令存储在队列存储装置314中且可将与所述任务相关联的数据(任务信息)存储在作为内部存储器350的sram中。

根据示例性实施例,scq电路300可依序存储所接收的任务指令且可以所述任务指令被存储的次序将所述任务指令分配给所述多个核230。根据另一个示例性实施例,scq电路300可被配置成基于用户设定的优先权将所述任务分配给所述多个核230。

根据示例性实施例,sram地址控制器317可被配置成基于队列控制电路313的控制将任务信息存储在内部存储器350中。举例来说,sram地址控制器317可基于队列控制电路313的控制自动地产生地址且可根据所产生的地址将任务信息存储在内部存储器350中。根据示例性实施例,sram地址控制器317可在内部存储器350中搜索未存储数据的存储空间(memoryspace)以存储任务信息且可对所述存储空间进行分配,产生存储地址并将存储地址递送到队列控制电路313。

根据示例性实施例,irq控制电路312可被配置成基于事件来产生中断并将存储在scq电路300中的任务指令及任务信息递送到所述多个核230。

根据示例性实施例,sfr设定电路311可被配置成基于用户的请求将中断请求传送到所述多个核230或者将中断请求传送到从所述多个核230之中指定的一些核。

根据本发明各种示例性实施例的处理器(包括能够独立地执行操作的多个核(例如,图2所示230)、存储器(例如,图3所示350)以及电连接到所述多个核230及存储器350的控制电路(例如,图3所示300))的任务处理方法可包括:获取与要使用所述多个核230中的至少一些核230进行处理的任务相关联的一个或多个指令;基于所述一个或多个指令将与所述任务对应的数据存储在存储器350中;将所述指令中的至少一些指令递送到所述至少一些核230;检查所述至少一些核230之中已对所述至少一些指令作出响应的一个或多个核230;阻止将所述任务分配给除了已被分配所述任务的一个核之外的核;以及当所述任务未被分配给核230时将所述任务分配给核230中的一个核230,所述任务的分配包括改变与所述分配相关联的状态信息并将其他核设定成不存取与所述任务对应的数据。再次重申,控制电路300可从第一核230以及一组第二核230接收响应。控制电路可接着阻止将所述任务分配给所述一组第二核230中的每一个核230而是将所述任务分配给第一核230。所述一组第二核230可包括除了第一核230之外的已对至少一些指令作出响应的每一个核。

任务处理方法还可包括将所述任务分配给所述至少一些核230之中第一个对所述至少一些指令作出响应的核。将与所述任务对应的数据存储在存储器350中可包括将任务指令存储在具有fifo结构的队列存储装置314中。任务处理方法可包括由控制电路300通过irq控制电路312基于事件来产生中断并将所述任务递送到已对所述至少一些指令作出响应的一个或多个核。存储器350可被作为sram提供并嵌置在控制电路300中。所述任务处理方法可包括由控制电路300通过sram地址控制器317自动地分配用于存储与所述任务对应的数据的地址并响应于所述获取与要处理的所述任务相关联的所述一个或多个指令来将与所述任务对应的数据存储在存储器350的所分配的地址中。任务处理方法可包括将所述任务优先分配给一个或多个基于由用户设定的优先权而指定的核。所述多个核可被作为多个不同的dsp提供。

图4是根据本发明各种示例性实施例的架构(图2所示200)的操作流程图。

参照图4,在操作401中,根据示例性实施例的scq电路(例如,图3所示300)可获取与要使用多个核(例如,图2所示230)中的至少一些核进行处理的任务相关联的一个或多个指令。举例来说,scq电路300可从所述多个核230中的至少一些核230接收任务处理请求。

在操作402中,根据示例性实施例的scq电路300可基于所接收任务中所包括的一个或多个指令将与所述任务对应的数据存储在存储器(例如,图3所示350)中。

在操作403中,根据示例性实施例的scq电路300可将与所接收的任务相关联的指令中的至少一些指令递送到所述至少一些核。

在操作404中,根据示例性实施例的scq电路300可检查所述至少一些核之中已对所述至少一些指令作出响应的一个或多个核。

在操作405及406中,当所述任务被分配给所述核中的一个核时,根据示例性实施例的scq电路300可不将所述任务分配给与所述多个核中的一个核不同的其他核。

在操作407中,当所述任务未被分配给所述核时,根据示例性实施例的scq电路300可将所述任务分配给所述核中的一个核。根据示例性实施例,由scq电路300对任务进行的分配可包括改变与所述分配相关联的状态信息并阻止其他核存取与所述任务对应的数据。

图5是根据本发明各种示例性实施例的架构(例如,图2所示200)的任务处理过程的操作流程图。

参照图5,在操作501中,根据示例性实施例的多个核(例如,图2所示230)中的至少一些核可产生任务并将所产生的任务递送到scq电路(例如,图3所示300)。举例来说,scq电路300可从所述多个核230中的至少一些核230接收任务处理请求。

在操作502及503中,根据示例性实施例的scq电路300可响应于从所述多个核230中的至少一些核230接收到任务处理请求来检查(确定)是否容纳对应的任务并将所述检查的结果递送到所述多个核230。举例来说,scq电路300可被配置成通过队列存储装置314存储多达32个任务并存储多达8千字节任务数据。根据示例性实施例,如上所述,当可容纳任务的数目超过指定数目时或者当指定存储器存储空间(memorystoragespace)已满时,scq电路300可确定无法容纳更多任务数据。根据示例性实施例,当确定无法容纳更多任务时,scq电路300可将对应的信息递送到所述多个核230。根据示例性实施例,所述多个核230可被配置成在从scq电路300接收到指示无法容纳更多任务的事件之后的预定时间处再次向scq电路300传送任务处理请求。根据示例性实施例,当从scq电路300接收到指示可容纳任务的事件时,所述多个核230可将任务指令及任务数据递送到scq电路300。

在操作504中,根据示例性实施例的scq电路300可依序存储所接收的任务指令。举例来说,scq电路300可将任务指令存储在具有fifo结构的队列存储装置(例如,图3所示314)中,且可使用sram地址控制器(例如,图3所示317)将任务数据存储在内部存储器(例如,图3所示350)中。

在操作505及506中,根据示例性实施例的scq电路300可将任务指令中的至少一些任务指令递送到所述多个核230中的所有核230。当接收到指令时,所述多个核230中的每一个核230可将指示是否能够处理所述任务的事件传送到scq电路300。

在操作507中,根据示例性实施例的scq电路300可检查所述多个核230中的所有核230之中已对所述至少一些指令作出响应的一个或多个核且可将所述任务分配给所述一个或多个核。根据示例性实施例,scq电路300可依序存储所接收的任务指令且可以所述任务指令被存储的次序将所述任务指令分配给所述多个核230。根据另一个示例性实施例,scq电路300可被配置成基于用户设定的优先权将所述任务分配给所述多个核230。

在操作508及509中,根据示例性实施例,被分配所述任务的所述核可从scq电路300接收任务数据且可对所接收的任务进行处理。

图6是示出scq电路将至少一些核请求的任务分配给其他核的过程的示例图。

参照图6,根据本发明示例性实施例的架构600(例如,图2所示200)可包括能够独立地执行操作的多个核630(例如,图2所示230)以及scq电路620(例如,图3所示300)。根据示例性实施例,所述多个核630可包括被作为多个不同的dsp或至少一个硬件加速器提供的第一核到第四核631、633、635及637。

根据示例性实施例,scq电路620可将由特定核请求的任务以中断事件形式递送到多个核且可从所述多个核中的至少一些核接收对中断事件的响应。根据示例性实施例,scq电路620可将所请求的任务分配给所述多个核之中第一个作出响应的核。举例来说,scq电路620将由所述至少一些核请求的任务分配给其他核的过程可被表示为图6所示箭头610。当从第三核635接收到任务处理请求时,scq电路620的仲裁器电路621(例如,图3所示队列控制电路313)可将所接收的任务依序存储在队列存储装置622(例如,图3所示314)中且可将与所述任务相关联的中断事件传送到第一核到第四核631、633、635及637。当所述响应是从第一核到第四核631、633、635及637之中的第一核631第一次接收到时,scq电路620可将所述任务分配给第一核631。被分配所述任务的核(例如,第一核631)可执行与所分配的任务相关联的功能。

图7是示出scq电路考虑到任务之间的相依性来分配任务的方法的示例图。图8示出scq电路设定等待任务的实例。

根据示例性实施例,图7可为二维(twodimensional,2d)离散傅里叶变换(discretefouriertransform,dft)算法的实例。当通过根据本发明各种示例性实施例的架构(例如,图2所示200)执行任务时,如图7所示在所述任务之间可存在相依性。举例来说,与方块721及方块722对应的任务可必须在与方块711对应的任务被处理之后被处理。作为另外一种选择,与方块731对应的任务可必须在与方块721及方块722对应的任务被处理之后被处理。作为另外一种选择,与方块741、方块742、方块743及方块744对应的任务可必须在与方块731对应的任务被处理之后被处理。作为另外一种选择,与方块751及方块752对应的任务可必须在与方块741、方块742、方块743及方块744对应的任务被处理之后被处理。

参照图7及图8,根据本发明各种示例性实施例的scq电路800(例如,图3所示300)可考虑到任务之间的相依性来设定等待任务。举例来说,scq电路800的仲裁器电路821(例如,图3所示队列控制电路313)可为队列存储装置822(例如,图3所示314)指定等待任务1832以使得在与图7所示方块711对应的任务被处理之前所述其他任务不会被处理。

作为另外一种选择,scq电路800的仲裁器电路821可为队列存储装置822指定等待任务2835以使得在与图7所示方块721及722对应的任务被处理之前所述其他任务不会被处理。

作为另外一种选择,scq电路800的仲裁器电路821可为队列存储装置822指定等待任务3以使得在与方块731对应的任务被处理之前所述其他任务不会被处理。

作为另外一种选择,scq电路800的仲裁器电路821可为队列存储装置822指定等待任务4以使得在与方块741、742、743及744对应的任务被处理之前所述其他任务不会被处理。

图9是根据各种示例性实施例的相机模块980(例如,图1所示180)的方块图900。参照图9,相机模块980可包括镜头总成910、闪光灯920、图像传感器930、图像稳定器(imagestabilizer)940、存储器950(例如,缓冲存储器)或图像信号处理器960。镜头总成910可收集从要成像的对象发出的光。镜头总成910可包括一个或多个镜头。根据示例性实施例,相机模块980可包括多个镜头总成910。在这种情形中,相机模块980可为例如双相机(dualcamera)、360度相机(360degreecamera)或球形相机(sphericalcamera)。所述多个镜头总成910可具有相同的镜头属性(例如,视角、焦距、自动聚焦、f数(fnumber)或光学变焦(opticalzoom))。作为另外一种选择,镜头总成中的至少一个镜头总成可具有至少一种与其他镜头总成不同的镜头属性。镜头总成910可包括例如广角镜头(wide-anglelens)或摄远镜头(telephotolens)。闪光灯920可发出用于加强从对象发出的光的光源。闪光灯920可包括一个或多个发光二极管(lightemittingdiode,led)(例如,红绿蓝(red-green-blue,rgb)led、白色led、红外led或紫外(ultraviolet)led)或氙气灯(xenonlamp)。

图像传感器930可将通过镜头总成910从对象递送的光转换成电信号来获取与对象对应的图像。根据示例性实施例,图像传感器930可包括选自具有不同属性的图像传感器之中的一个图像传感器,例如rgb传感器、黑白(blackandwhite,bw)传感器、红外(ir)传感器或紫外(uv)传感器、具有相同属性的多个图像传感器或具有不同属性的多个图像传感器。举例来说,图像传感器930中所包括的图像传感器中的每一者可被实施为电荷耦合装置(chargedcoupleddevice,ccd)传感器或互补金属氧化物半导体(complementarymetaloxidesemiconductor,cmos)传感器。

响应于相机模块980的移动或包括相机模块980的电子装置101的移动,图像稳定器940可在特定方向上移动或控制(例如,调整读出时序)图像传感器930或镜头总成910中所包括的至少一个镜头以使得部分地补偿因所述移动而对被拍摄的图像造成的负面影响(例如,图像模糊)。根据示例性实施例,图像稳定器940可被实施为例如光学图像稳定器。所述移动可通过位于相机模块980内部或外部的陀螺仪传感器(图中未示出)或加速度传感器(图中未示出)来探测。

为进行下一图像处理任务,存储器950可至少临时地存储通过图像传感器930获取的图像的至少一部分。举例来说,当根据快门的图像获取被延迟时或者当多个图像是以高速度获取的时,可将所获取的原始图像(例如,高分辨率图像)存储在存储器950中,且可通过显示装置160来预览对应的副本图像(例如,低分辨率图像)。接着,当满足规定条件时(例如,用户输入或系统命令),图像信号处理器960举例来说可获取及处理存储在存储器950中的至少一些原始图像。根据示例性实施例,存储器950可被作为存储器130的至少一部分提供或者作为独立运行的单独的存储器提供。

图像信号处理器960可对通过图像传感器930获取的图像或存储在存储器950中的图像执行图像处理(例如,深度图生成(depthmapcreation)、三维(threedimensional,3d)建模、全景生成(panoramacreation)、特征点提取、图像合成或图像补偿(例如,降噪、分辨率调整、明度调整、模糊、锐化或软化))。另外地或作为另外一种选择,图像信号处理器960可对相机模块980中所包括的至少一个元件(例如,图像传感器930)执行控制(例如,曝光时间控制或读出时序控制)。由图像信号处理器960处理的图像可再次存储在存储器950中以用于另外的处理,或者可被递送到相机模块980的外部元件(例如,图1所示存储器130、显示装置160、电子装置102、电子装置104或服务器108)。根据示例性实施例,图像信号处理器960可被作为处理器(例如,图1所示120)的至少一部分提供或者作为独立于处理器120运行的单独的处理器提供。当图像信号处理器960被作为单独的处理器提供时,由图像信号处理器960处理的图像可在未由处理器120执行另外的图像处理的条件下或者在由处理器120执行另外的图像处理之后通过显示装置(例如,图1所示160)显示。

根据示例性实施例,电子装置(例如,图1所示101)可包括具有不同的属性或功能的两个或更多个相机模块980。在这种情形中,举例来说,相机模块980中的至少一个相机模块980可为广角相机或前置相机,且相机模块980中的至少另一个相机模块980可为摄远相机或后置相机。

根据本发明的各种示例性实施例,可获得以下效果。

通过scq电路管理及共享来源于多个dsp的任务,可提高任务处理速度及任务管理效率。

由于不需要应用单独的锁定算法来递送任务,因此scq电路快速运行。锁定算法为不允许除了被分配任务的特定dsp核之外的核存取任务数据的算法,它会使性能劣化。

scq电路使用sram来存储任务数据,且因此由于不需要使用主存储器来递送任务而具有快速处理速度。

scq电路不具有主-从结构,且因此可向dsp核中的所有dsp核施加任务。

可提供各种类型的装置作为根据本文所公开的各种示例性实施例的电子装置。电子装置可包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、穿戴式装置或家用电器中的至少一者。根据本文所公开示例性实施例的电子装置并非仅限于上述装置。

应理解,并非旨在将本公开限制到本文所公开的特定形式;而是本公开应被视为涵盖对示例性实施例的各种修改、等效形式和/或替代形式。在描述图式时,可使用相似的参考编号指示相似的组成元件。除非上下文清楚地另外指明,否则本文所用单数形式也可包括复数形式。在本公开中,表达“a或b”、“a和/或b中的至少一者”、“a、b或c”、及“a、b、和/或c中的至少一者”可包括所列物项的所有可能组合。本文所用的例如“第一(first)”、“第二(second)”、“所述第一(thefirst)”或“所述第二(thesecond)”等表达可表示各种元件,而不论元件的次序和/或重要性。使用这些表达是为了区分各个元件,而非对对应的元件进行限制。应理解,当称元件(例如,第一元件)(可操作地或可通信地)“耦合”到或“连接到”另一元件(例如,第二元件)时,所述第一元件可直接耦合到或直接连接到第二元件或者在这两个元件之间可夹置有任何其他元件(例如,第三元件)。

本公开所用用语“模块”可指被作为硬件、软件或固件提供的单元。举例来说,用语“模块”可与例如逻辑、逻辑块、组件或电路等用语互换。模块可为集成组件或者执行一种或多种特定功能的最小单元或最小单元的一部分。举例来说,模块可被作为应用专用集成电路(application-specificintegratedcircuit,asic)提供。

本文所公开的各种示例性实施例可被实施为包括存储在可由机器(例如,计算机)读取的存储介质(例如,内部存储器136或外部存储器138)中的指令的软件(例如,程序140)。作为能够调用存储在存储介质中的指令并根据所调用的指令运行的装置的机器可包括根据所公开的示例性实施例的电子装置(例如,电子装置101)。当所述指令由处理器(例如,处理器120)执行时,处理器可直接执行与所述指令对应的功能或者通过受处理器控制的其他组件来执行与所述指令对应的功能。所述指令可包含由编译器或解释器生成或执行的代码。机器可读存储介质可以非暂时性存储介质形式提供。此处,用语“非暂时性”表示存储介质不包括信号且是有形的,而不论数据以半永久形式存储在存储介质中还是临时存储在存储介质中。

根据示例性实施例,根据本文所公开的各种示例性实施例的方法可包括在计算机程序产品中。计算机程序产品可在卖方与买方之间作为商品进行交易。计算机程序产品可以机器可读存储介质(例如,压缩盘只读存储器(compactdiscreadonlymemory,cd-rom))形式分发,或者通过应用商店(例如,playstoretm(播放商店tm)在线分发。对于在线分发而言,计算机程序产品的至少一部分可至少临时存储在存储介质(例如,制造商服务器、应用商店的服务器或中继服务器的存储器)中或可暂时地产生。

根据各种示例性实施例的组件中的每一个组件(例如,模块或程序)可由单个实体或多个实体构成,且可省略上述子组件中的一些子组件,或者在各种示例性实施例中可进一步包括其他子组件。作为另外一种选择或另外地,可将一些组件(例如,模块或程序)集成成一个实体以执行由每一个响应的组件在集成之前执行的相同或相似的功能。由根据本公开各种示例性实施例的模块、程序或其他元件执行的操作可依序地、并行地、重复地或以启发式方法执行。另外,一些操作可以不同的顺序执行或者可被省略,或者可添加其他操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1