掌桥专利:专业的专利平台
掌桥专利
首页

模型管理方法及装置

文献发布时间:2023-06-19 12:07:15


模型管理方法及装置

技术领域

本申请涉及机器学习领域,尤其涉及一种模型管理方法及装置。

背景技术

TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。通过TensorFlow训练的模型可以借助TensorFlow-serving进行部署运行。当同时存在不同的模型需要进行版本更新时,现有技术是在不同的容器中部署不同的模型,将这些容器挂载到宿主机磁盘,通过多次登录宿主机替换容器中的模型来实现多个模型版本的更新。这一实现方式,使得更新流程过于繁琐。

发明内容

本申请实施例提供了一种模型管理方法及装置,能够批量实时更新模型,简化更新流程。

第一方面,本申请实施例提供了一种模型管理方法,所述方法包括:

获取存储资源,所述存储资源中存储有至少一个模型,所述至少一个模型的模型存储地址分别挂载在对应的容器中,每个容器中存储有一个模型;

当所述存储资源存储的至少一个模型中的第一模型由第一版本更新为第二版本时,根据预设更新频率以及所述第一模型对应的第一容器中的模型存储地址,将所述第一容器中存储的第一模型的第一版本更新为第二版本。

第二方面,本申请实施例提供了一种模型管理装置,所述装置包括:

获取模块,用于获取存储资源,所述存储资源中存储有至少一个模型,所述至少一个模型的模型存储地址分别挂载在对应的容器中,每个容器中存储有一个模型;

处理模块,用于当所述存储资源存储的至少一个模型中的第一模型由第一版本更新为第二版本时,根据预设更新频率以及所述第一模型对应的第一容器中的模型存储地址,将所述第一容器中存储的第一模型的第一版本更新为第二版本。

第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接,其中,该存储器用于存储计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用该程序指令,该程序指令当被处理器执行时使该处理器执行如第一方面所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行如第一方面所述的方法。

第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如第一方面所述的方法。

可以看出,本申请实施例中,除了在容器中存放模型外,也在存储资源中存放模型,将模型在存储资源中的存放地址挂载到存放同一模型对应的容器中,在批量更新存储资源中的模型版本时,根据预设更新频率以及挂载在容器中的模型存储地址实现容器内对应模型的同步更新,简化了更新流程。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种模型管理方法的流程示意图;

图2为本申请实施例提供的一种模型管理方法可以应用的K8s的基础架构;

图3为本申请实施例提供的一种模型管理装置的组成示意图;

图4为本申请实施例提供的一种电子设备的组成示意图。

具体实施方式

下面结合本申请实施例中的附图对本申请的实施例进行描述。

本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

电子设备可以包括终端或者服务器,本申请实施例不做限定。终端包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备(例如智能手表、智能手环、计步器等)、计算设备或连接到无线调制解调器的其他处理的精度。用户设备(User Equipment,简称UE),移动台(Mobile Station,简称MS),终端设备(terminal device)等等。为方便描述,上面提到的设备统称为电子设备。

首先介绍本申请实施例涉及的专业术语和概念。

(1)TensorFlow

TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。

(2)TensorFlow-serving

TensorFlow-serving用于将使用TensorFlow进行训练、验证和预测得到的模型直接上线并提供服务。也即,TensorFlow-serving用于部署运行通过TensorFlow训练好的模型。

(3)容器

容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置(抽象化为部署清单文件)一起打包为容器镜像。容器化应用程序可以作为一个单元进行测试,并可以作为容器镜像实例部署到主机操作系统(OS)。也就是说,一个容器包含了完整的运行时环境:除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中。通过将应用程序本身,和其依赖容器化,操作系统发行版本和其他基础环境造成的差异,都被抽象掉了。需要说明的是,若未做出特殊说明,默认本申请实施例所述的容器为Docker容器。

(4)Docker

Docker是一种创建容器的工具,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。Docker用于根据镜像创建容器,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker的应用场景包括:Web应用的自动化打包和发布、自动化测试和持续集成与发布、在服务型环境中部署和调整数据库或其他的后台应用等。通过Docker可以将应用程序与基础架构分开,从而可以实现软件的快速交付。

(5)kubernetes

kubernetes,简称K8s,是一个开源的、用于管理云平台中多个主机上的容器化的应用。Kubernetes的目标是让部署容器化的应用简单并且高效,K8s提供了应用部署,规划,更新,维护的一种机制。通过K8s可以快速部署应用、快速扩展应用、无缝对接新的应用功能以及节省资源,优化硬件资源的使用等。

(6)节点

节点是Kubernetes中最小的计算硬件单元。它是Kubernetes集群中单个机器的表示。在大多数系统中,节点包括但不限于数据中心中的物理机器,或者是托管在云平台上的虚拟机。Kubernetes上的节点包括主节点(Master节点)和计算节点(Node节点)两类。

(7)Pod

Pod是K8s最基本的操作单元,一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。Pod被用作Kubernetes的复制单元,在单个Pod实例无法承载负载的情况下,可以配置Kubernetes以在必要时将Pod的副本部署到集群中。

(8)Nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。代理是指一个代表或者说是一个渠道,涉及两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程。例如,用户到某品牌专卖店买了一件商品,这个专卖店就是代理,被代理角色就是该品牌厂家,目标角色就是用户。在讲反向代理之前,先讲正向代理。正向代理,代理的是客户端,代客户端发出请求,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。反向代理,代理的是服务端,代服务端接收请求,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。例如,多个客户端给服务器发送的请求,Nginx服务器接收到请求之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时,请求的来源,也就是客户端,是明确的,但是请求具体由哪台服务器处理的并不明确,在此过程中,Nginx扮演的就是一个反向代理角色。当Nginx作为反向代理服务器时,将Nginx接收到的客户端发送的请求数量,即负载量,按照一定的规则分发到不同的服务器进行处理的规则,就是一种均衡规则。而将服务器接受到的请求按照规则分发的过程,称为负载均衡。

(9)GPU

GPU即图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。

请参见图1,为本申请实施例提供的一种模型管理方法的流程示意图。

步骤S101:获取存储资源,所述存储资源中存储有至少一个模型,所述至少一个模型的模型存储地址分别挂载在对应的容器中,每个容器中存储有一个模型。

其中,存储资源可以是本地存储资源,例如硬盘等,也可以是网络存储资源,例如腾讯云对象存储(CloudObjectStorage,COS)、华为云对象存储服务(ObjectStorageService,OBS)以及阿里云对象存储服务(Object Storage Service,OSS)等。

如图2所示,为本申请实施例提供的一种模型管理方法可以应用的K8s的基础架构。

其中,Kubernetes203由一个主节点也就是Master节点210和至少一个计算节点也就是Node节点组成。Master节点210包括API server组件2101、Scheduler组件2102和Controller Manager组件2103。其中,API Server组件2101主要用于提供认证与授权、运行一组准入控制器以及管理API版本等功能,可以向外提供服务,也就是整个系统的对外接口,供客户端和其他组件调用,允许各类组件创建、读取、写入、更新和监视资源(例如,Pod);Scheduler组件2102用于根据集群资源和状态选择合适的Node节点创建Pod,也就是负责对集群内部的资源进行调度;Controller Manager组件2103作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)等的管理,当某个Node意外宕机时,及时发现并执行自动化修复流程。Controller Manager内部包含多个Controller,每种Controller都负责一种具体的控制流程。图2中的Node节点包括Node节点204X、Node节点204Y和Node节点204Z,本申请实施例以Node节点204X作为举例进行详细讲解。Node节点204X包括一个或多个Pod(例如,Pod205A、Pod205B)、Docker209和Kubelet211。其中,Docker209用于创建容器,Docker中有镜像仓库,镜像仓库中有一种或多种不同的Docker镜像,不同的Docker镜像用于创建不同的容器。kubelet211主要负责监视指派到Kubelet所在Node节点(此处为Node节点204X)上的Pod,包括创建、修改、监控、删除等。Pod中包括一个或多个的容器,如Pod205A中包括容器206A,Pod205B中包括容器206B。容器中包括一个或多个模型以及TensorFlow-serving,如容器206A中包括模型一208A和TensorFlow-serving207A,容器206B中包括模型二208B和TensorFlow-serving207B。容器中的TensorFlow-serving可以来自于包含有TensorFlow-serving的Docker镜像。

将存储资源201挂载在kubernetes203上,通过挂载存储资源201使得kubernetes203可以获取到存储资源201中存储的内容,例如kubernetes203可以获取到存储资源201中存储的模型一202A和模型二202B。存储资源中的模型具有与其对应的别名以及版本号。模型一202A在存储资源201中的存储地址挂载到对应的容器206A中,如挂载在容器206A的/models目录下;模型二202B在存储资源201中的存储地址挂载到对应的容器206B中,如挂载在容器206B的/models目录下。

需要说明的是,一个Node节点如Node节点204X中可以包含一个或多个Pod,如图2所示,Node节点204X包含Pod205A和Pod205B。一个Pod中可以包含一个或多个容器,一个容器中可以包含一个或多个模型。本申请实施例以一个Pod中包含一个容器、一个容器中包含一个模型作为举例,不对本申请实施例构成任何限定。

步骤S102:当所述存储资源存储的至少一个模型中的第一模型由第一版本更新为第二版本时,根据预设更新频率以及所述第一模型对应的第一容器中的模型存储地址,将所述第一容器中存储的第一模型的第一版本更新为第二版本。

当存储资源中的第一模型需要更新时,将第一模型的新版本模型也即第一模型的第二版本上传到存储资源。存储第一模型的容器中的TensorFlow-serving检测到模型版本发生变化后,根据挂载在容器中的存储资源存储的第一模型的模型存储地址将容器中存储的第一模型的第一版本也相应的更新为第二版本。

需要说明的是,若在将第一模型的第一版本更新为第二版本时,容器中存储的第一模型处于运行状态,那么在存储资源中的第一模型由第一版本更新为第二版本后,容器中存储的第一模型也由第一版本更新为了第二版本。但是此时尽管存储资源以及容器中的第一模型均已更新为第二版本,但运行中的第一模型的版本仍为第一版本。于是,可以根据预设更新频率更新正在运行的第一模型,由第一版本更新为第二版本。设置预设更新频率的方法包括设置更新频率变量的值,例如设置-file_system_poll_wait_second=60表示每间隔60秒更新一次配置。其中,更新配置包括更新模型。也就是说,根据预设更新频率,更新正在运行中的模型为容器中存储的模型,从而实现了模型的实时更新。

示例性的,若存储资源中同时存在多个模型需要更新时,可将多个模型的第二版本批量上传至存储资源。如图2所示,若模型208A和模型208B均需要更新且均处于运行状态时,可同时将模型208A的第二版本模型和模型208B的第二版本模型分别上传至存储资源201。为方便描述,此示例中将模型208A的第二版本模型记为模型208A’,将模型208B的第二版本模型记为模型208B’。模型208A’和模型208B’存储到存储资源201后,容器206A中的TensorFlow-serving207A和容器206B中的TensorFlow207B检测到模型版本发生变化,从而根据挂载在容器206A中的模型202A的存储地址更新模型208A至模型208A’,同样的,根据挂载在容器206B中的模型202B的存储地址更新模型208B至模型208B’。其中,模型208A’和模型202A’相同,模型208B’和模型202B’相同。然后根据预设更新频率将正在运行中的208A和208B更新为208A’和208B’,从而实现了多个模型的批量实时更新。通过在存储资源中也存放模型,将模型在存储资源中的存放地址挂载到存放同一模型对应的容器中,在批量更新存储资源中的模型版本时,根据预设更新频率以及挂载在容器中的模型存储地址可以实现容器内对应模型的同步更新,简化了更新流程。

在一种可能的实现方式中,当模型为GPU模型的情况下,采用携带GPU信息的Docker镜像建立对应的容器。

其中,GPU模型是指在训练、加载以及运行模型时需要用到GPU的模型。使用GPU训练、加载以及运行的模型,可以加快模型推理的速度。Docker中有镜像仓库,镜像仓库中有多种不同的Docker镜像,用户可以根据自己的需求选择不同的Docker镜像用以创建不同的容器。从而,当模型为GPU模型时,可以选择相应的携带有GPU信息的Docker镜像创建携带GPU信息的容器,从而使得容器能更好的服务于相应的模型。

示例性的,如图2所示,Docker209中有镜像仓库,镜像仓库中有多种不同的Docker镜像,若模型一为GPU模型,则在Docker209的镜像仓库中选择Docker镜像创建容器206A时将选择携带GPU信息的Docker镜像,例如,可以采用TensorFlow-Serving:1.14.0-gpu版本的Docker镜像,则表示该镜像携带GPU信息并且该镜像中包括了TensorFlow-serving。对于其他非GPU模型,除了采用携带GPU信息的Docker镜像之外,还可以采用非GPU版本,即不携带GPU信息的Docker镜像。在使用携带GPU信息的Docker镜像创建容器206A后,可以将是GPU模型的模型一208A添加到容器206A。

在一种可能的实现方式中,获取Nginx服务器的每秒查询率;基于每秒查询率与预设阈值的比较结果确定Pod处理类型,Pod处理类型包括扩容操作、缩容操作和保持不变,其中,Pod为容器的载体。

现有技术中,Node节点中可以包括HPA插件。该HPA插件用于监控内存资源以及CPU资源的使用情况,从而可以根据内存资源以及CPU资源的使用情况确定对Pod是否进行扩容、缩容或者保持不变,即弹性伸缩,从而保证系统服务的稳定性以及减少资源浪费。但是对于使用到GPU的模型,也即,对于使用到GPU的容器、Pod而言,其对于CPU资源和内存资源的需求量变化波动可以忽略不计,主要使用到的是GPU资源以及显卡内存资源,即显存资源,故监控内存资源以及CPU资源的使用情况进行Pod的弹性伸缩的方法无法满足实际需要。而现有技术中,无法直接获取GPU资源的使用情况,因此本申请实施例中,通过获取Nginx服务器的每秒查询率,即Nginx服务器每秒接收到的请求数,将该请求数与预设阈值进行比较确定Pod的操作类型。以每秒查询率间接代替GPU资源的使用情况,确定弹性伸缩操作。即当该请求数小于预设阈值或者预设阈值范围时,对Pod进行缩容操作;当该请求数大于预设阈值或者预设阈值范围时,对Pod进行扩容操作,其余情况保持Pod数量不变。

示例性的,在TensorFlow-serving的上一层增加Nginx服务器,也就是说,用户想要通过TensorFlow-serving访问某个GPU模型时需要经过Nginx服务器,从而Nginx服务器可以获取到每秒请求数并将该每秒请求数提供给HPA插件,从而HPA插件可以基于Nginx提供的每秒查询率以及预设阈值或者预设阈值范围自动的进行Pod的弹性伸缩,实现了针对GPU使用情况的弹性伸缩。

在一种可能的实现方式中,在GPU模型加载成功后,通过设置第一阈值的方式限制GPU模型使用GPU资源的资源量。

示例性的,如图2所示,模型一208A为GPU模型,设置第一阈值为GPU资源数值大小(例如,1G),则表示模型一208A最多使用K8s集群中的1G大小的GPU资源;或者设置第一阈值为GPU资源的百分占比(例如,20%),则表示运行模型一208A的TensorFlow-serving最多能使用K8s集群中GPU资源的20%。若不限制运行模型一208A的TensorFlow-serving207A使用GPU资源,则TensorFlow-serving207A将默认占用该K8s集群中的全部GPU资源,本申请实施例通过设置第一阈值限制TensorFlow-serving使用全部GPU资源,使得GPU可以同时用于部署多个TensorFlow-serving,提高了GPU资源的利用率。

在一种可能的实现方式中,在GPU模型加载成功后,通过设置第二阈值的方式限制GPU模型使用显存资源的资源量。

示例性的,如图2所示,模型一208A为GPU模型,设置第二阈值为显存资源数值大小(例如,1G),则表示模型一208A最多使用K8s集群中的1G大小的显存资源;或者设置第二阈值为显存资源的百分占比(例如,20%),则表示运行模型一208A的TensorFlow-serving最多能使用K8s集群中显存资源的20%。若不限制运行模型一208A的TensorFlow-serving207A使用显存资源,则TensorFlow-serving207A将默认占用该K8s集群中的全部显存资源,本申请实施例通过设置第二阈值限制TensorFlow-serving使用全部显存资源,使得显存可以同时用于部署多个TensorFlow-serving,提高了显存资源的利用率。

下面结合附图介绍本申请实施例涉及的装置。

请参见图3,为本申请实施例提供的一种模型管理装置的组成示意图。模型管理装置300包括:

获取模块301,用于获取存储资源,该存储资源中存储有至少一个模型,该至少一个模型的模型存储地址分别挂载在对应的容器中,每个容器中存储有一个模型;

处理模块302,用于当该存储资源存储的至少一个模型中的第一模型由第一版本更新为第二版本时,根据预设更新频率以及该第一模型对应的第一容器中的模型存储地址,将该第一容器中存储的第一模型的第一版本更新为第二版本。

可选的,在该模型为GPU模型的情况下,采用携带GPU信息的Docker镜像建立对应的容器。

可选的,获取模块301,还用于获取Nginx服务器的每秒查询率;

处理模块302,还用于基于所述每秒查询率与预设阈值的比较结果确定Pod处理类型,该Pod处理类型包括扩容操作、缩容操作和保持不变,其中,该Pod为所述容器的载体。

可选的,处理模块302,还用于在该GPU模型加载成功后,通过设置第一阈值的方式限制该GPU模型使用GPU资源的资源量。

可选的,处理模块302,还用于在该GPU模型加载成功后,通过设置第二阈值的方式限制该GPU模型使用显卡资源的资源量。

其中,模块管理装置300的具体实现功能方式可以参见图1对应的方法步骤,此处不再进行赘述。

请参见图4,为本申请实施例提供的一种电子设备的组成示意图。

电子设备100可包括:处理器110、存储器120;其中,处理器110、存储器120和通信接口130通过总线140连接,该存储器120用于存储指令,该处理器110用于执行该存储器120存储的指令,以实现如上图1对应的方法步骤。

处理器110用于执行该存储器120存储的指令,以控制通信接口130接收和发送信号,完成上述方法中的步骤。其中,所述存储器120可以集成在所述处理器110中,也可以与所述处理器110分开设置。

作为一种实现方式,通信接口130的功能可以考虑通过收发电路或者收发的专用芯片实现。处理器110可以考虑通过专用处理芯片、处理电路、处理器或者通用芯片实现。

作为另一种实现方式,可以考虑使用通用计算机的方式来实现本申请实施例提供的电子设备。即将实现处理器110,通信接口130功能的程序代码存储在存储器120中,通用处理器通过执行存储器120中的代码来实现处理器110,通信接口130的功能。

该终端所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于装置执行的方法步骤的内容的描述,此处不做赘述。

作为本实施例的另一种实现方式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的方法。

作为本实施例的另一种实现方式,提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的方法。

本领域技术人员可以理解,为了便于说明,图4中仅示出了一个存储器和处理器。在实际的电子设备中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。

应理解,在本申请实施例中,处理器可以是中央处理单元(Central ProcessingUnit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DR RAM)。

需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。

应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

该总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。

还应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请的范围。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block,简称ILB)和步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 果菜类植物和果树栽培管理装置、学习装置、果菜类植物和果树栽培管理方法、学习模型生成方法、果菜类植物和果树栽培管理程序以及学习模型生成程序
  • 表面缺陷检测方法、表面缺陷检测装置、钢材的制造方法、钢材的品质管理方法、钢材的制造设备、表面缺陷判定模型的生成方法及表面缺陷判定模型
技术分类

06120113176581