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

一种配置方法、数据处理方法、芯片和电子设备

文献发布时间:2023-06-19 12:00:51


一种配置方法、数据处理方法、芯片和电子设备

技术领域

本申请涉及计算机技术,具体涉及一种配置方法、数据处理方法、芯片和电子设备。

背景技术

共享存储,是指为多个进程或线程提供数据共享服务的存储器。在人工智能等高性能计算任务中,需要利用线程执行大量的数据存取操作,为了保证计算效率,需要提高芯片的数据存取效率。

目前,提升芯片数据存取效率的方式包括根据芯片执行的任务需要的最大带宽和容量或平均带宽和容量来设计芯片架构,这将导致芯片架构不够灵活,适应性不强,执行某些低带宽和低容量任务时会带来资源的浪费等问题。

发明内容

有鉴于此,本申请公开一种配置方法。所述方法可以包括:根据针对芯片的配置请求包括的第一对应关系,将所述芯片包括的若干存储块划分为若干存储分组;所述芯片包括若干存储块,以及对所述若干存储块中存储的数据进行数据处理操作的若干线程组;基于所述配置请求包括的第二对应关系为所述若干线程组分别配置对应的存储分组;其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

在示出的一些实施例中,所述存储分组的工作模式包括第一模式与第二模式;其中,所述第一模式表征所述若干存储分组中的各存储分组相互独立;所述第二模式表征所述若干存储分组中的各存储分组存储的数据相同;所述配置请求还包括工作模式标识;所述方法还包括:根据所述配置请求包括的工作模式标识,确定所述若干存储分组的工作模式。

本申请还提出一种数据处理方法,包括:芯片的控制器接收至少一个数据处理请求;其中,所述至少一个数据处理请求包括发起对应请求的线程所属的线程组号;分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组;分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

在示出的一些实施例中,所述方法还包括:根据配置请求,对所述芯片进行配置;其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

在示出的一些实施例中,响应于所述至少一个数据处理请求中的部分数据处理请求针对同一存储分组进行数据处理操作,所述分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作,包括:确定所述部分数据处理请求对应的执行顺序;根据确定的执行顺序,分别针对所述部分数据处理请求,对所述同一存储分组执行指示的数据处理操作。

在示出的一些实施例中,所述数据处理请求还包括发起该请求的线程的访问地址;所述控制器还存储了存储分组和所述存储分组内包括的存储块之间的第一对应关系;响应于确定了各数据处理请求对应的存储分组,所述方法还包括:分别针对各数据处理请求包括的访问地址,该数据处理请求对应的存储分组以及所述第一对应关系,确定各数据处理请求对应的存储块;所述分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作,包括:分别针对各数据处理请求,对其对应的存储块执行指示的数据处理操作。

在示出的一些实施例中,所述芯片还包括与所述线程组和存储分组连接的数据发送器;所述至少一个数据处理请求中的第一数据处理请求包括读取数据请求;所述第一数据处理请求还包括发起该请求的线程号;所述分别针对各数据处理请求,对其对应的存储块执行指示的数据处理操作,包括:从与所述第一数据处理请求对应的存储块中获取数据,并将获取到的数据发送至所述数据发送器;所述数据发送器获取所述第一数据处理请求中携带的线程号与线程组号,并根据所述线程号与线程组号确定接收数据的线程,以及将获取的数据发送至确定的线程以完成数据读取。

在示出的一些实施例中,所述控制器维护了所述存储分组的工作模式;其中,所述存储分组的工作模式包括第一模式;其中,所述第一模式表征所述芯片的各存储分组相互独立;在分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组之前,所述方法还包括:所述控制器确定所述存储分组的工作模式;响应于所述工作模式为所述第一模式,执行分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组的步骤。

在示出的一些实施例中,所述控制器维护了所述存储分组的工作模式;其中,所述存储分组的工作模式包括第二模式;所述第二模式表征所述芯片的各存储分组存储的数据相同;响应于所述工作模式为所述第二模式,所述方法还包括:分别针对各数据处理请求,响应于所述各数据处理请求中的第二操作请求为数据写入请求,将所述第二操作请求广播至各存储分组以使各存储分组执行与所述第二操作请求对应的数据写入操作;以及,响应于所述各数据处理请求中的第三操作请求为数据读取请求,从所述各存储分组中,确定当前未被其他线程访问的目标存储分组,从所述目标存储分组中获取数据,并将获取的数据返回至发起所述第三操作请求的线程。

在示出的一些实施例中,所述各线程组内包括的线程数量相同;所述芯片的各存储分组中至少部分存储分组内的存储块数量不相同;所述存储块包括静态随机存取存储器。

本申请还提出一种芯片,包括:若干存储块,对所述若干存储块中存储的数据进行数据处理操作的若干线程组以及控制器;其中,所述控制器,用于根据针对所述芯片的配置请求包括的第一对应关系,将所述芯片包括的若干存储块划分为若干存储分组;以及,基于所述配置请求包括的第二对应关系为所述若干线程组分别配置对应的存储分组;

其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

在示出的一些实施例中,所述存储分组的工作模式包括第一模式与第二模式;其中,所述第一模式表征所述芯片的各存储分组相互独立;所述第二模式表征所述芯片的各存储分组存储的数据相同;所述配置请求还包括工作模式标识;所述控制器,用于根据所述配置请求包括的工作模式标识,确定所述若干存储分组的工作模式。

本申请还提出一种芯片,包括:控制器,用于接收至少一个数据处理请求;其中,所述至少一个数据处理请求包括发起对应请求的线程所属的线程组号;分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组;分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

在示出的一些实施例中,所述控制器,用于根据配置请求,对所述芯片进行配置;其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

在示出的一些实施例中,响应于所述至少一个数据处理请求中的部分数据处理请求针对同一存储分组进行数据处理操作,所述控制器,用于确定所述部分数据处理请求对应的执行顺序;根据确定的执行顺序,分别针对所述部分数据处理请求,对所述同一存储分组执行指示的数据处理操作。

在示出的一些实施例中,所述数据处理请求还包括发起该请求的线程的访问地址;响应于确定了各数据处理请求对应的存储分组,所述控制器,用于分别针对各数据处理请求包括的访问地址,该数据处理请求对应的存储分组以及所述第一对应关系,确定各数据处理请求对应的存储块;所述分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作,包括:分别针对各数据处理请求,对其对应的存储块执行指示的数据处理操作。

在示出的一些实施例中,所述芯片还包括与所述线程组和存储分组连接的数据发送器;所述至少一个数据处理请求中的第一数据处理请求包括读取数据请求;所述第一数据处理请求还包括发起该请求的线程号;所述控制器,用于从与所述第一数据处理请求对应的存储块中获取数据,并将获取到的数据发送至所述数据发送器;所述数据发送器,用于获取所述第一数据处理请求中携带的线程号与线程组号,并根据所述线程号与线程组号确定接收数据的线程,以及将获取的数据发送至确定的线程以完成数据读。

在示出的一些实施例中,所述控制器维护了所述存储分组的工作模式;其中,所述存储分组的工作模式包括第一模式;其中,所述第一模式表征所述芯片的各存储分组相互独立;所述控制器,用于响应于所述工作模式为所述第一模式,执行分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组的步骤。

在示出的一些实施例中,所述控制器维护了所述存储分组的工作模式;其中,所述存储分组的工作模式包括第二模式;所述第二模式表征所述芯片的各存储分组存储的数据相同;响应于所述工作模式为所述第二模式,所述控制器用于分别针对各数据处理请求,响应于所述各数据处理请求中的第二操作请求为数据写入请求,将所述第二操作请求广播至各存储分组以使各存储分组执行与所述第二操作请求对应的数据写入操作;以及,响应于所述各数据处理请求中的第三操作请求为数据读取请求,从所述各存储分组中,确定当前未被其他线程访问的目标存储分组,从所述目标存储分组中获取数据,并将获取的数据返回至发起所述第三操作请求的线程。

在示出的一些实施例中,所述各线程组内包括的线程数量相同;所述若干存储分组中至少部分存储分组内的存储块数量不相同;所述存储块包括静态随机存取存储器。

本申请还提出一种电子设备,包括如前述任一实施例示出的芯片。

本申请还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被控制器执行时实现如前述任一实施例示出的方法。

在本申请提出的配置方法中,一方面,该方法通过配置线程组与存储分组之间的对应关系,可以并发调用多个线程组内的线程对存储分组进行数据处理操作,从而提高访存带宽,进而提升芯片数据处理操作效率。

另一方面,在该方法中,可以响应配置请求对存储分组情况,以及存储分组与线程分组之间的对应关系进行配置,从而可以根据待执行的任务需要的带宽与容量等信息,对芯片存储分组进行合理配置,使得所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强芯片对各种任务的适应性,避免存储资源浪费。

在本申请提出的数据处理方法中,可以接收至少一条数据处理请求,并分别根据各数据处理请求包括的线程组号,以及所述第二对应关系,确定各数据处理请求对应的存储分组,然后分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

因此,一方面,可以并发调用多个线程组内的线程对存储分组进行相关操作,从而并发处理多个数据处理请求,提高访存带宽,进而提升数据处理操作效率。另一方面,可以响应于配置信息对存储分组情况,以及存储分组与线程分组之间的对应关系进行配置,从而可以根据待执行的任务需要的带宽与容量等信息,对存储分组进行合理配置,使得既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强对各种任务的适应性,避免存储资源浪费。

在本申请提出的芯片中,可以执行前述配置方法和/或前述数据处理方法,一方面,所述芯片可以提升数据处理操作效率。另一方面,所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强对各种任务的适应性,避免存储资源浪费。

在本申请提出的电子设备中,由于可以采用前述任一实施例示出的芯片,因此一方面,可以提升数据处理操作效率,另一方面,可以增强对各种任务的适应性,避免存储资源浪费。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

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

图1为本申请示出的一种芯片结构示意图;

图2为本申请示出的一种配置方法的方法流程图;

图3为本申请示出的一种数据处理方法的方法流程图;

图4为本申请示出的一种AI芯片的结构示意图。

具体实施方式

下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。

有鉴于此,本申请提出一种配置方法。一方面,该方法通过配置线程组与存储分组之间的对应关系,可以并发调用多个线程组内的线程对存储分组进行数据处理操作,从而提高访存带宽,进而提升芯片数据处理操作效率。

另一方面,在该方法中,可以响应配置请求对存储分组情况,以及存储分组与线程分组之间的对应关系进行配置,从而可以根据待执行的任务需要的带宽与容量等信息,对芯片存储分组进行合理配置,使得所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强芯片对各种任务的适应性,避免存储资源浪费。

本申请公开的芯片可以是指需要进行数据存取操作的任意类型的芯片。例如,所述芯片可以是人工智能芯片、GPU(Graphics Processing Unit,图形处理器)、CPU(centralprocessing unit,中央处理器)、FPGA(Field Programmable Gate Array,可编程逻辑器件)等。

请参见图1,图1为本申请示出的一种芯片结构示意图。图1示出的芯片结构仅为示意性说明,在实际情形中可以存在其他结构类。本申请不对芯片结构进行特别限定。

如图1所示,所述芯片可以包括若干线程组,以及若干存储分组。可选地,所述芯片还可以包括与线程组和存储分组连接的控制器,用于为线程组提供数据处理操作接口以及对存储分组进行存取控制。

所述线程组,可以包括若干线程。所述线程为芯片中的最小执行器,可以响应于进程任务执行诸如数据存取的数据处理操作。在一些实施例中,在设计芯片架构时,可以设计线程组与线程之间的对应关系,从而在芯片维护若干线程组。当某一进程执行数据存储任务时,可以通过调用各线程组内的线程执行相关操作。

在一些实施例中,所述各线程组内包含的线程数量可以相同。由此可以便于对线程的管理。

所述存储分组,可以包括若干存储块。所述存储块为芯片采用的存储器件,可以用于存储数据。在一些实施例中,可以根据带宽容量等需求,对存储块进行组合,得到若干存储分组,由此可以将存储分组视为对外提供存储服务的存储器。在一些实施例中,所述存储分组内的各存储块可以以数据interleave(交织)的方式排列,由此提供更高的访存带宽。

在一些实施例中,所述存储分组内的各存储块可以独立进行数据存储,由此提供更大的存储容量。

在一些实施例中,各存储分组中的至少部分存储分组内的存储块数量可以不同,由此可以提供多种存储容量与存储带宽,进一步提升芯片针对不同任务场景的适应性。

在一些实施例中,所述存储块可以采用SRAM(Static Random-Access Memory,静态随机存取存储器)。由于SRAM芯片具有体积小,功耗低等特点,因此所述芯片的体积也不会太大,功耗也会较低。

所述控制器,可以起承上启下的作用。该控制器可以为线程或线程组提供接口,以使线程或线程组可以对存储分组进行数据处理操作。该控制器还可以维护线程组与存储分组的对应关系,由此当接收到线程组内线程发起的数据处理请求后,可以控制对应的存储分组提供相关服务。

以图1示出的芯片为例,请参见图2,图2为本申请示出的一种配置方法的方法流程图。

如图2所示,所述方法可以包括:

S202,根据针对芯片的配置请求包括的第一对应关系,将所述芯片包括的若干存储块划分为若干存储分组。所述芯片包括若干存储块,以及对所述若干存储块中存储的数据进行数据处理操作的若干线程组。

S204,基于所述配置请求包括的第二对应关系为所述若干线程组分别配置对应的存储分组。

所述配置请求,可以是所述芯片可以解析的信息。在一些实施例中,所述配置请求可以通过编码器进行编码,所述芯片在获取所述配置请求后可以通过解码器进行解码,并根据解码后得到的信息完成相关配置。

在一些实施例中,所述配置请求可以由用户发起。与用户对应的客户端可以为用户提供芯片配置界面。用户可以根据芯片要执行的任务,通过该配置界面填入配置信息。所述客户端可以响应于用户填入配置信息的操作,通过烧录的形式将配置请求写入所述芯片,所述芯片可以通过与烧录器连接的引脚获取所述配置请求并完成相关配置。由此可以通过配置信息实现对芯片存储分组的配置以适应多种任务。

在一些实施例中,芯片对应的外部或内部存储器中可以存储与多种复杂度的执行任务分别对应的多种芯片配置信息。所述芯片在接收到执行的任务时,可以基于预设指标(例如,容量与带宽)对所述任务进行复杂度判断,并根据判断结果从存储器中获取与该任务对应的配置信息。之后所述芯片可以基于获取的配置信息生成配置请求并发送至控制器以完成相关配置。由此,所述芯片可以根据将要执行的任务对自身存储分组进行合理配置,从而灵活适应多种任务。

所述配置请求中可以包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

其中,所述第一对应关系与所述第二对应关系可以是根据实际任务需求设定的对应关系。通过所述对应关系可以进行存储分组的维护,以及存储分组与线程组对应关系的维护。

以图1为例,所述芯片可以包括存储块0至存储块m。如果根据业务需求需要将存储块分为G个存储分组。在所述第一对应关系可以维护每个存储分组与其包含的存储块之间的包含关系。在一些实施例中,可以通过数组的形式维护所述第一对应关系。

根据所述的第一对应关系可知所述芯片可以包括G个存储分组。所述第二对应关系可以维护芯片包括的各线程组可以访问的存储分组。例如,线程组0可以访问存储分组0-3。线程组1可以访问存储分组1-4。以此类推。

所述芯片在接收到所述配置信息后,则可以根据所述配置信息包括的第一对应关系,将所述若干存储块划分为若干存储分组;并将所述第二对应关系存储起来,基于所述第二对应关系为所述若干线程组分别配置对应的存储分组。

在一些实施例中,所述芯片可以将所述第一对应关系与所述第二对应关系可以存储至控制器中,以使所述控制器在接收到线程发起的数据处理请求后,可以根据所述第一对应关系与所述第二对应关系确定与数据处理请求对应的存储分组,完成数据处理操作。

在所述方案中,一方面,由于所述芯片可以根据所述配置请求包括的第一对应关系,形成若干存储分组,以及为所述若干线程组配置的存储分组,因此所述芯片可以并发调用多个线程组内的线程对存储分组进行相关操作,从而提高访存带宽,进而提升芯片数据处理操作效率。另一方面,可以响应配置请求对存储分组情况,以及存储分组与线程分组之间的对应关系进行配置,从而可以根据待执行的任务需要的带宽与容量等信息,对芯片存储分组进行合理配置,使得所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强芯片对各种任务的适应性,避免存储资源浪费。

在一些实施例中,所述存储分组的工作模式还可以包括第一模式与第二模式;其中,所述第一模式表征所述芯片的各存储分组相互独立;所述第二模式表征所述芯片的各存储分组可以互相镜像,即镜像的存储分组中存储的数据相同;所述配置请求还包括工作模式标识。在一些实施例中,可以在所述控制器中维护存储分组的工作模式。

在进行芯片配置时,所述配置请求还包括工作模式标识。所述芯片在接收到所述配置请求后,还可以根据所述配置请求包括的工作模式标识,确定所述若干存储分组的工作模式。

如果所述存储分组的工作模式为第一模式,则各存储分组可以独立的为线程提供数据服务,因此可以提供更大的存储容量,并且,可以并发调用多个线程组分别对不同的存储分组进行访问,进而提升访存带宽。

如果所述存储分组的工作模式为第二模式(相当于镜像模式),则各存储分组通过镜像使得存储的数据相同。此时当多个线程组需要获取相同的数据(即需要访问同一存储分组)时,由于各存储分组内的数据均相同,因此可以使多个线程组分别访问不同的存储分组,避免由于多个线程组访问同一存储分组带来的带宽受限,进而提高了读取数据带宽,提升了芯片数据处理操作效率。

在所述例子中,通过对存储分组工作模式的配置,可以使芯片适应更多的计算任务,进而提升芯片适应性与灵活性。

以下对本申请示出的芯片内部数据处理方法进行说明。

所述方法可以针对芯片内部数据进行处理。所述芯片可以包括控制器。

在一些实施例中,在进行数据处理之前,可以根据配置请求,对所述芯片进行配置。其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。所述第一对应关系与所述第二对应关系可以存储至芯片的控制器中。

在一些实施例中,可以根据待执行的任务的带宽容量等信息生成针对芯片的配置信息,然后基于该配置信息,向所述芯片发起配置请求,以使芯片可以完成存储配置。由此可以根据待执行的任务需要的带宽与容量等信息,对芯片存储分组进行合理配置,使得所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强芯片对各种任务的适应性,避免存储资源浪费。

请参见图3,图3为本申请示出的一种数据处理方法的方法流程图。

如图3所示,所述方法可以包括:

S302,芯片的控制器接收至少一个数据处理请求;其中,所述至少一个数据处理请求包括发起对应请求的线程所属的线程组号。

S304,分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组。

S306,分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

所述数据处理请求,可以是指线程发起的数据处理请求。所述数据处理请求可以包括发起该请求的线程所属的线程组号。例如,当需要调用多个线程进行数据处理操作时,可以基于所述多个线程分别对应的线程组号,构建多个数据处理请求,然后通过调用访存接口发送各数据处理请求。

所述控制器在获取到数据处理请求后,可以执行S304与S306。在一些实施例中,所述控制器可以为芯片内核。在一些实施例中,为了释放内核的工作强度,所述控制器可以是独立于所述内核的控制芯片。所述控制器中可以存储所述第二对应关系。

所述控制器可以分别根据各数据处理请求包括的线程组号,以及所述第二对应关系,确定各数据处理请求对应的存储分组。

之后,所述控制器可以分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

所述数据处理操作可以包括数据写入操作与所述读取操作。

在一些实施例中,所述存储分组内的各存储块采用多通道interleave方式进行排列。此时,在确定存储分组后,可以采用数据交织的方式完成数据写入与读取,由此可以提供更高的访存带宽,提升芯片数据处理操作效率。

在一些实施例中,所述存储分组内的各存储块独立运行。此时,所述控制器中维护了存储分组和所述存储分组内包括的存储块之间的第一对应关系,所述数据处理请求还包括发起该请求的线程的访问地址。

在确定线程组对应的存储分组后,还可以分别针对各数据处理请求包括的访问地址,该数据处理请求对应的存储分组以及所述第一对应关系,确定各数据处理请求对应的存储块。然后分别针对各数据处理请求,对其对应的存储块执行指示的数据处理操作。由此即可确定线程想要访问的存储块,并完成相应的数据处理操作。由于各存储块可以独立运行因此可以提供更大的存储容量。

在前述公开的方案中,所述控制器可以接收至少一条数据处理请求,并分别根据各数据处理请求包括的线程组号,以及所述第二对应关系,确定各数据处理请求对应的存储分组,然后分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

因此,一方面,可以并发调用多个线程组内的线程对存储分组进行相关操作,从而并发处理多个数据处理请求,提高访存带宽,进而提升数据处理操作效率。另一方面,可以响应于配置信息对存储分组情况,以及存储分组与线程分组之间的对应关系进行配置,从而可以根据待执行的任务需要的带宽与容量等信息,对存储分组进行合理配置,使得既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强对各种任务的适应性,避免存储资源浪费。

在一些实施例中,可能出现多个线程对同一存储分组进行访问的情形,此时所述控制器可以响应于所述若干数据处理请求中的部分数据处理请求针对同一存储分组进行数据处理操作,确定所述部分数据处理请求对应的执行顺序;然后再根据确定的执行顺序,分别针对所述部分数据处理请求,对所述同一存储分组执行指示的数据处理操作。

在一些实施例中,所述控制器可以根据发起数据处理请求的线程编号由小到大或由大到小的顺序确定各数据处理请求执行的顺序。之后可以按照执行顺序进行数据处理操作。由此即可避免针对同一存储分组同时执行多个数据处理请求带来的数据混乱的情形。可以理解的是,本申请不对确定所述执行顺序所依据的规则进行特别限定。在实际情形中,还可以根据线程执行结果的依赖规则,或者线程发起数据处理请求的时间等,来确定所述执行顺序。

在一些实施例中,当所述若干数据处理请求中的第一数据处理请求包括读取数据请求时,所述第一数据处理请求还包括发起该请求的线程号。此时,可以从与所述第一数据处理请求对应的存储块中获取数据。然后获取所述第一数据处理请求中携带的线程号与线程组号,并根据所述线程号与线程组号确定接收数据的线程。之后将获取的数据发送至确定的线程以完成数据读取。

所述第一数据处理请求,具体是指所述若干数据处理请求中,操作类型为数据读取操作的数据处理请求。

在一些实施例中,所述芯片还可以包括与所述线程组和存储分组连接的数据发送器。在本例中,所述数据发送器可以接收从存储块中获取的数据;然后获取所述第一数据处理请求中携带的线程号与线程组号,并根据所述线程号与线程组号确定接收数据的线程,以及将获取的数据发送至确定的线程以完成数据读取。由此,在进行数据读取过程中,可以将发起所述第一数据处理请求的线程号和线程组号在访存通路中进行传递,进而可以确保发起数据读取请求的线程可以正确获取所需的数据。

在一些实施例中,所述控制器维护了所述存储分组的工作模式。其中,所述存储分组的工作模式包括第一模式。所述第一模式表征所述若干存储分组中的各存储分组相互独立。此时在执行S304之前,还可以获取所述存储分组的工作模式,并根据不同的工作模式执行不同的存储逻辑。

在一些实施例中,响应于所述工作模式为所述第一模式,可以执行S304-S306。由此,所述控制器包括的各存储分组可以独立的为线程提供数据服务,因此可以提供更大的存储容量,并且,可以并发调用多个线程组分别对不同的存储分组进行访问,进而提升访存带宽。

在一些实施例中,所述存储分组的工作模式还包括第二模式。所述第二模式表征所述若干存储分组中的各存储分组以镜像的方式存储数据。响应于所述工作模式为所述第二模式,分别针对各数据处理请求,响应于所述各数据处理请求中的第二操作请求为数据写入请求,将所述第二操作请求广播至各存储分组以使各存储分组执行与所述第二操作请求对应的数据写入操作;以及,

响应于所述各数据处理请求中的第三操作请求为数据读取请求,从所述若干存储分组中,确定当前未被其他线程访问的目标存储分组,从所述目标存储分组中获取数据,并将获取的数据返回至发起所述第三操作请求的线程。

所述第二操作请求,具体是指所述若干数据处理请求中,操作类型为数据写入操作的数据处理请求。所述第三操作请求,具体是指所述若干数据处理请求中,操作类型为数据读取操作的数据处理请求。

在一些实施例中,存储分组的工作模式可以维护在芯片包括的控制器中,通过控制器即可实现前述步骤,在此不作详述。

由此,在第二工作模式中,当待处理的第二操作请求为数据写入请求时,可以通过将所述第二操作请求广播至各存储分组,以使各存储分组存储相同的数据。当待处理的第三操作请求为数据读取请求时,如果多个线程组需要获取相同的数据(即需要访问同一存储分组),由于各存储分组内的数据均相同,因此可以使多个线程组分别访问不同的存储分组,避免由于多个线程组访问同一存储分组带来的带宽受限,进而提高了读取数据带宽,提升了芯片数据处理操作效率。

以下结合AI芯片为例进行实施例说明。

请参见图4,图4为本申请示出的一种AI芯片的结构示意图。

可以理解的是,在利用该AI芯片执行AI任务时,可以先根据AI任务对带宽和存储容量的需求,生成配置请求,对AI芯片完成配置。由此可以根据任务灵活配置AI芯片,使芯片适应不同的带宽和容量需求。

图4示出的完成配置后的所述AI芯片可以包括若干线程组与若干存储分组,以及与线程组和存储器连接的控制器和数据发送器。

其中,所述控制器可以维护存储分组与所述存储分组内存储块之间的第一对应关系,存储分组与线程组之间的第二对应关系,以及存储分组的工作模式。假设当前存储分组的工作模式为第一模式。

所述数据发送器用于将从存储分组读取出的数据发送至对应线程。

可以理解的是,图4中示出的用于发送数据处理操作指令的线程组和接收数据的线程组可以是同一线程组。当线程组发起数据处理操作指令时,即为图4中上半部分示出的线程组,当接收到从存储块中读取到的数据后,即为图4中下半部分示出的线程组。图4中示意性的将同一线程组分为发送数据处理操作指令与接收数据两个线程组是为了更方便的示意出访存通路。

以下以并发执行以下两个任务为例进行说明。其中任务1:线程组0中的线程0,读取存储分组0中的存储块1中的第一数据;任务2:线程组1中的线程1,将第二数据写入存储分组G的存储块m。

所述线程0可以根据线程号0,所属线程组号0以及第一数据存储地址,生成第一指令。

所述线程1可以根据线程号1,所属线程组号1以及存储块m的地址(前述访问地址),生成第二指令。

所述线程0和线程1可以通过调用访存接口将生成的指令发送至所述控制器。

所述控制器在接收到第一指令与第二指令后,可以确定当前存储分组的工作模式。以下假设工作模式为第一模式。

所述控制器可以根据维护的所述第二对应关系与所述第一对应关系,确定出线程0需要访问存储分组0中的存储块0,以及线程1需要访问存储分组G中的存储块m。然后所述控制器可以将第一指令发送至存储块0,并将第二指令发送至存储块m。

存储块m可以响应于所述第二指令,完成第二数据的写入。

存储块0可以响应于所述第一指令,读取出第一数据,并将第一数据以及第一指令中的线程号0和线程组号0一并发送至所述数据发送器。

所述数据发送器可以根据第一指令中的线程号0和线程组号0,将所述第一数据发送至线程组0中的线程0以完成数据读取。

在所述例子中,所述AI芯片可以并发的处理多个数据处理操作指令,由此可以提升数据处理操作效率。

本申请还提出一种芯片,该芯片中,可以执行前述任一实施例示出的配置方法。一方面,所述芯片可以提升数据处理操作效率。另一方面,所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强对各种任务的适应性,避免存储资源浪费。

所述芯片可以包括:

若干存储块,对所述若干存储块中存储的数据进行数据处理操作的若干线程组以及控制器;其中,所述控制器,用于根据针对所述芯片的配置请求包括的第一对应关系,将所述芯片包括的若干存储块划分为若干存储分组;以及,基于所述配置请求包括的第二对应关系为所述若干线程组分别配置对应的存储分组;

其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

在示出的一些实施例中,所述存储分组的工作模式包括第一模式与第二模式;其中,所述第一模式表征所述芯片的各存储分组相互独立;所述第二模式表征所述芯片的各存储分组存储的数据相同;所述配置请求还包括工作模式标识;所述控制器,用于根据所述配置请求包括的工作模式标识,确定所述若干存储分组的工作模式。

本申请还提出一种芯片,该芯片中,可以执行前述任一实施例示出的数据处理方法。一方面,所述芯片可以提升数据处理操作效率。另一方面,所述芯片既可以实现低带宽低容量需求的任务,也可以实现高带宽高容量需求对存储容量和带宽要求较高的任务,从而增强对各种任务的适应性,避免存储资源浪费。

所述芯片可以包括:

控制器,用于接收至少一个数据处理请求;其中,所述至少一个数据处理请求包括发起对应请求的线程所属的线程组号;分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组;分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作。

在示出的一些实施例中,所述控制器,用于根据配置请求,对所述芯片进行配置;其中,所述配置请求包括存储分组和所述存储分组内包括的存储块之间的第一对应关系,以及线程组与为线程组配置的存储分组之间第二对应关系。

在示出的一些实施例中,响应于所述至少一个数据处理请求中的部分数据处理请求针对同一存储分组进行数据处理操作,所述控制器,用于确定所述部分数据处理请求对应的执行顺序;根据确定的执行顺序,分别针对所述部分数据处理请求,对所述同一存储分组执行指示的数据处理操作。

在示出的一些实施例中,所述数据处理请求还包括发起该请求的线程的访问地址;响应于确定了各数据处理请求对应的存储分组,所述控制器,用于分别针对各数据处理请求包括的访问地址,该数据处理请求对应的存储分组以及所述第一对应关系,确定各数据处理请求对应的存储块;所述分别针对各数据处理请求,对其对应的存储分组执行指示的数据处理操作,包括:分别针对各数据处理请求,对其对应的存储块执行指示的数据处理操作。

在示出的一些实施例中,所述芯片还包括与所述线程组和存储分组连接的数据发送器;所述至少一个数据处理请求中的第一数据处理请求包括读取数据请求;所述第一数据处理请求还包括发起该请求的线程号;所述控制器,用于从与所述第一数据处理请求对应的存储块中获取数据,并将获取到的数据发送至所述数据发送器;所述数据发送器,用于获取所述第一数据处理请求中携带的线程号与线程组号,并根据所述线程号与线程组号确定接收数据的线程,以及将获取的数据发送至确定的线程以完成数据读。

在示出的一些实施例中,所述控制器维护了所述存储分组的工作模式;其中,所述存储分组的工作模式包括第一模式;其中,所述第一模式表征所述芯片的各存储分组相互独立;所述控制器,用于响应于所述工作模式为所述第一模式,执行分别根据各数据处理请求包括的线程组号,以及线程组与为线程组配置的存储分组之间的第二对应关系,确定各数据处理请求对应的存储分组的步骤;

在示出的一些实施例中,所述控制器维护了所述存储分组的工作模式;其中,所述存储分组的工作模式包括第二模式;所述第二模式表征所述芯片的各存储分组存储的数据相同;响应于所述工作模式为所述第二模式,所述控制器用于分别针对各数据处理请求,响应于所述各数据处理请求中的第二操作请求为数据写入请求,将所述第二操作请求广播至各存储分组以使各存储分组执行与所述第二操作请求对应的数据写入操作;以及,响应于所述各数据处理请求中的第三操作请求为数据读取请求,从所述各存储分组中,确定当前未被其他线程访问的目标存储分组,从所述目标存储分组中获取数据,并将获取的数据返回至发起所述第三操作请求的线程。

在示出的一些实施例中,所述各线程组内包括的线程数量相同;所述若干存储分组中至少部分存储分组内的存储块数量不相同;所述存储块包括静态随机存取存储器。

本申请还提出一种电子设备,包括如前述任一实施例示出的芯片。由此,一方面,可以提升数据处理操作效率,另一方面,可以增强对各种任务的适应性,避免存储资源浪费。

例如,该电子设备可以是手机等智能终端,或者也可以是具有摄像头并可以进行图像处理的其他设备。示例性的,当该电子设备执行模型训练任务时,可以先对本申请示出的芯片进行存储分组配置,由此可以使设备可以存储分组配置更适合所述任务,避免存储资源浪费。之后可以采用配置完成的芯片执行模型训练任务,由于配置完成的芯片可以并发调用多个线程组内的线程对存储分组进行相关操作,从而并发处理多个数据处理请求,提高访存带宽。因此所述设备提升数据处理操作效率。

本申请还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被控制器执行时实现如前述示出的配置方法或数据处理方法。

本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。

本申请中记载的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”包括三种方案:A、B、以及“A和B”。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

所述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。

本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。

适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理系统。通常,中央处理系统将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理系统以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及0xCD_00ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

虽然本申请包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本申请内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,所述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上所述仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。

相关技术
  • 一种配置方法、数据处理方法、芯片和电子设备
  • 一种射频输出功率配置方法、装置、电子芯片和电子设备
技术分类

06120113135961