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

通用处理器核心与向量部件的协同方法、接口及处理器

文献发布时间:2023-06-19 13:45:04


通用处理器核心与向量部件的协同方法、接口及处理器

技术领域

本发明涉及通用处理器核心与向量部件的协同接口设计技术,具体涉及一种通用处理器核心与向量部件的协同方法、接口及处理器。

背景技术

随着计算机技术的不断发展,针对不同的计算需求也不断增强,而通用处理器由于设计目标等原因,在向量计算或神经网络计算等方面的应用效率一般较低,无法提供向量计算或神经网络计算所需要的计算速度或数据规模。同时,向量计算或神经网络计算的计算需求中实际仍有大量的通用计算操作,而向量部件一般不提供通用计算能力,或只能提供很弱的通用计算能力。于是出现了通用处理器核心与专用图形加速器协同(如CPU-GPU)的解决方案,但不同的向量部件厂商通常仅仅提供对于自己设备编程的实现。对于异构系统一般很难用同种风格的编程语言来实现机构编程,而且将不同的设备作为统一的计算单元来处理的难度也是非常大的,以GPU加速为例,两大主要厂商NVIDIA和AMD就分别开发和维护了独立的GPU编程组件CUDA SDK和AMD APP(ATI STREAM)。因此,这种显式异构解决方案对编程和异构协调的要求较高,特别是对于内存的管理,需要程序员显式地声明、显式地在主存和设备的存储器之间进行移动,在实际应用中面临的难度都较大。

为了在通用处理器中提供面向向量计算的计算能力,使用独立的向量部件是一种高效的方案。在指令集设计中预留专用指令,通用处理器核心中预留专用接口,向量部件与通用处理器部件采用接口协议进行交互。这种方案完全保留了通用处理器的通用处理能力,同时可以将向量计算中的可加速计算部分分配到向量部件中,实现了向量计算和通用计算两部分运算效率的同时最大化。但目前已有的实现设计方案中,存在控制和数据信号交互过于频繁,流水线时序紧张;向量部件中特定资源不足,而通用处理器资源空闲并浪费等问题。

发明内容

本发明要解决的技术问题:针对现有技术的上述问题,提供一种通用处理器核心与向量部件的协同方法、接口及处理器,本发明针对通用处理器核心与向量部件,能以高效松耦合专用接口实现与控制部件、寄存器部件、数据缓存部件、浮点计算部件和页表转换等相关部件的直接交互,提高了向量部件的数据读写和指令执行效率。

为了解决上述技术问题,本发明采用的技术方案为:

一种通用处理器核心与向量部件的协同方法,包括:

1)向量部件接收来自通用处理器核心发送的向量请求;

2)向量部件判断向量请求是否需要访问缓存数据,若需要访问缓存数据,则向通用处理器核心的处理器数据缓存部件发送访存请求,使处理器数据缓存部件处理访存请求并返回访存请求的数据或状态;向量部件判断向量请求是否需要寄存器访问,若需要寄存器访问,则向通用处理器核心的处理器寄存器部件发送寄存器请求,使处理器寄存器部件处理寄存器请求并返回寄存器请求的数据或状态;向量部件判断向量请求是否需要浮点计算,若需要浮点计算,则向通用处理器核心的处理器浮点计算部件发送浮点计算请求,使处理器浮点计算部件处理浮点计算请求并返回浮点计算结果;向量部件判断向量请求是否需要页表转换,若需要页表转换,则向通用处理器核心的处理器页表转换部件发送页表转换请求,使处理器页表转换部件处理页表转换请求并返回页表转换结果;

3)判断是否完成操作,如果尚未完成操作,则跳转执行步骤2);否则向量部件向通用处理器核心返回最终的向量计算结果。

可选地,步骤1)包括:1.1)向量部件通过控制通路接收来自通用处理器核心发送的向量请求,且接收的向量请求包括通过向量计算请求类型、向量计算请求编号、向量计算请求源操作数A、向量计算请求源操作数B、向量计算请求源操作数C、向量计算请求结果寄存器编号端口发送的操作类型、请求编号、源操作数A、B、C和结果寄存器编号,且上述断口发送的信号由向量计算请求有效位标识有效;1.2)向量部件在完成向量请求的接收和保存后,通过控制通路的向量请求接收反馈位端口通知通用处理器核心的处理器控制部件。

可选地,步骤2)中向通用处理器核心的处理器数据缓存部件发送访存请求包括:2.1A)针对需要访问缓存数据,需要获取的访存操作类型、访存请求编号、访存请求物理地址、访存请求写数据,分别通过访存通路的访存请求类型、访存请求编号、访存请求物理地址、访存请求写数据端口发送到处理器缓存数据部件,上述信号由向量部件访存请求有效位标识有效;2.2A)处理器缓存数据部件在完成访存请求的接收和保存后,通过向量部件访存请求接收反馈位通知向量部件;2.3A)若访存操作类型为读取数据,处理器缓存数据部件在完成数据读取操作后,将获取的数据、数据状态和对应的访存请求编号,通过访存请求返回数据、访存请求返回数据状态、访存请求返回数据编号端口发送到向量部件,上述信号由向量部件访存请求返回数据有效位标识有效;2.4A)若访存操作类型为写入数据,处理器缓存数据部件在完成将访存写数据写入指定位置后,将数据状态和对应的访存请求编号,通过访存请求返回数据状态、访存请求返回数据编号端口发送到向量部件,上述信号由向量部件访存请求返回数据有效位标识有效。

可选地,步骤2)中向通用处理器核心的处理器寄存器部件发送寄存器请求包括:2.1B)针对需要寄存器访问获取的寄存器操作类型、寄存器编号、寄存器写数据,分别通过寄存器通路的寄存器请求类型、寄存器请求寄存器编号、寄存器请求写数据端口发送到通用处理器核心的处理器寄存器部件,上述信号由向量部件寄存器请求有效位标识有效;2.2B)处理器寄存器部件在完成寄存器请求的接收和保存后,通过寄存器通路的向量部件寄存器请求接收反馈位端口通知向量部件;2.3B)若寄存器操作类型为读取数据,处理器寄存器部件在完成寄存器数据读取操作后,将获取的数据、数据状态和对应的寄存器编号,通过寄存器请求返回数据、寄存器请求返回数据状态、寄存器请求返回数据寄存器编号端口发送到向量部件,上述信号由向量部件寄存器请求返回数据有效位标识有效;2.4B)若寄存器操作类型为写入数据,处理器寄存器部件在完成将寄存器写数据写入指定寄存器后,将寄存器状态和对应的寄存器编号,通过寄存器请求返回数据状态、寄存器请求返回数据寄存器编号端口发送到向量部件,上述信号由向量部件寄存器请求返回数据有效位标识有效。

可选地,步骤2)中向通用处理器核心的处理器浮点计算部件发送浮点计算请求包括:2.1C)针对浮点计算需要处理的浮点计算类型、浮点计算请求编号、源操作数A、B、C,分别通过浮点计算通路的浮点计算请求类型、浮点计算请求编号、浮点计算请求源操作数A、浮点计算请求源操作数B、浮点计算请求源操作数C端口发送到处理器浮点计算部件,上述信号由向量部件浮点计算请求有效位标识有效;2.2C)处理器浮点计算部件在完成浮点计算请求的接收和保存后,通过浮点计算通路的浮点计算请求接收反馈位通知向量部件;2.3C)处理器浮点计算部件在完成对应浮点计算后,将获取的浮点计算结果数据、浮点计算结果状态和对应的浮点计算结果编号,通过浮点计算通路的浮点计算结果数据、浮点计算结果状态、浮点计算结果编号端口发送到向量部件,上述信号由浮点计算结果有效位标识有效。

可选地,步骤2)中向通用处理器核心的处理器页表转换部件发送页表转换请求包括:2.1D)针对需要页表转换的向量地址页表转换虚地址、地址页表转换请求编号,分别通过页表转换通路的向量访存地址页表转换请求虚地址、向量访存地址页表转换请求编号端口发送到处理器页表转换部件,上述信号由向量地址页表转换请求有效位标识有效;2.2D)处理器页表转换部件在完成对应向量访存地址页表转换后,将获取的返回物理地址、返回物理地址状态和对应的返回物理地址响应编号,通过页表转换通路的页表转换请求返回物理地址、向量访存地址页表转换请求返回物理地址状态、向量访存地址页表转换返回物理地址响应编号端口发送到向量部件,上述信号由向量访存地址页表转换请求返回物理地址有效位标识有效。

可选地,步骤3)中向量部件向通用处理器核心返回最终的向量计算结果包括:向量部件在完成向量请求Vec_Inst0对应的所有需要的操作后,将最后的向量计算结果状态、向量计算结果编号和向量部件状态,通过控制通路的向量计算结果状态、向量计算结果编号、向量部件状态端口发送到处理器控制部件,上述信号由向量计算结果有效位标识有效。

此外,本发明还提供一种用于应用前述通用处理器核心与向量部件的协同方法的通用处理器核心与向量部件的协同接口,所述协同接口包括:控制通路,用于实现通用处理器核心的处理器控制部件与向量部件传递操作指令和状态;寄存器通路,用于实现通用处理器核心的处理器寄存器部件与向量部件传递寄存器请求和数据;访存通路,用于实现向量部件与通用处理器核心的处理器缓存数据部件传递访存请求和数据;浮点计算通路,用于向量部件与通用处理器核心的处理器浮点部件传递浮点操作的请求和数据;页表转换通路,用于向量部件与通用处理器核心的处理器页表转换部件传递页表转换操作的请求和数据;所述控制通路、寄存器通路、访存通路、浮点计算通路和页表转换通路分别连接布置于通用处理器核心与向量部件之间。

可选地,所述控制通路包括向量请求有效位、向量请求类型、向量请求编号、向量请求源操作数A、向量请求源操作数B、向量请求源操作数C、向量请求结果寄存器编号、向量请求接收反馈位、向量计算结果有效位、向量计算结果状态、向量计算结果编号、向量部件状态,其中:所述向量请求有效位,由通用处理器发出,用于表征向量请求发送;所述向量请求类型,由通用处理器发出,用于表征向量请求的操作类型;所述向量请求编号,由通用处理器发出,用于表征向量请求在通用处理器中的编号;所述向量请求源操作数A,由通用处理器发出,用于表征向量请求的操作数A的数据或寄存器编号;所述向量请求源操作数B,由通用处理器发出,用于表征向量请求的操作数B的数据或寄存器编号;所述向量请求源操作数C,由通用处理器发出,用于表征向量请求的操作数C的数据或寄存器编号;所述向量请求结果寄存器编号,由通用处理器发出,用于表征向量请求将要使用的结果寄存器编号;所述向量请求接收反馈位,由向量部件发出,用于表征向量请求被向量部件成功接收;所述向量计算结果有效位,由向量部件发出,用于表征向量请求的结果有效标志位;所述向量计算结果状态,由向量部件发出,用于表征向量请求的结果数据的状态;所述向量计算结果编号,由向量部件发出,用于表征生成向量计算结果数据的请求在通用处理器中的编号;所述向量部件状态,由向量部件发出,用于表征向量部件的运行状态;

所述寄存器通路包括向量部件寄存器请求有效位、向量部件寄存器请求类型、向量部件寄存器请求寄存器编号、向量部件寄存器请求写数据、向量部件寄存器请求接收反馈位、向量部件寄存器请求返回数据有效位、向量部件寄存器请求返回数据、向量部件寄存器请求返回数据状态、向量部件寄存器请求返回数据寄存器编号,其中:所述向量部件寄存器请求有效位,由向量部件发出,用于表征向量部件寄存器请求发送标志位;所述向量部件寄存器请求类型,由向量部件发出,用于表征向量部件寄存器请求的操作类型;所述向量部件寄存器请求寄存器编号,由向量部件发出,用于表征向量部件寄存器请求对应的寄存器编号;所述向量部件寄存器请求写数据,由向量部件发出,用于表征向量部件寄存器请求写数据;所述向量部件寄存器请求接收反馈位,由处理器寄存器部件发出,用于表征向量部件寄存器请求被寄存器部件成功接收;所述向量部件寄存器请求返回数据有效位,由处理器寄存器部件发出,用于表征向量部件寄存器请求返回数据有效标志位;所述向量部件寄存器请求返回数据,由处理器寄存器部件发出,用于表征向量部件寄存器请求的返回数据;所述向量部件寄存器请求返回数据状态,由处理器寄存器部件发出,用于表征向量部件寄存器请求的返回数据的状态;所述向量部件寄存器请求返回数据寄存器编号,由处理器寄存器部件发出,用于表征向量部件寄存器请求的返回数据对应的寄存器编号;

所述访存通路包括向量部件访存请求有效位、向量部件访存请求类型、向量部件访存请求编号、向量部件访存请求物理地址、向量部件访存请求写数据、向量部件访存请求接收反馈位、向量部件访存请求返回数据有效位、向量部件访存请求返回数据、向量部件访存请求返回数据状态、向量部件访存请求返回数据编号,其中:所述向量部件访存请求有效位,由向量部件发出,用于表征向量部件访存请求发送标志位;所述向量部件访存请求类型,由向量部件发出,用于表征向量部件访存请求的操作类型;所述向量部件访存请求编号,由向量部件发出,用于表征向量部件访存请求的编号;所述向量部件访存请求物理地址,由向量部件发出,用于表征向量部件访存请求的物理地址;所述向量部件访存请求写数据,由向量部件发出,用于表征向量部件访存请求写数据;所述向量部件访存请求接收反馈位,由处理器缓存数据部件发出,用于表征向量部件访存请求被缓存数据部件成功接收;所述向量部件访存请求返回数据有效位,由处理器缓存数据部件发出,用于表征向量部件访存请求返回数据有效标志位;所述向量部件访存请求返回数据,由处理器缓存数据部件发出,用于表征向量部件访存请求的返回数据;所述向量部件访存请求返回数据状态,由处理器缓存数据部件发出,用于表征向量部件访存请求的返回数据的状态;所述向量部件访存请求返回数据编号,由处理器缓存数据部件发出,用于表征向量部件访存请求的返回数据对应的访存请求编号;

所述浮点计算通路包括浮点计算请求有效位、浮点计算请求类型、浮点计算请求编号、浮点计算请求源操作数A、浮点计算请求源操作数B、浮点计算请求源操作数C、浮点计算请求接收反馈位、浮点计算结果有效位、浮点计算结果数据、浮点计算结果状态、浮点计算结果编号,其中:所述浮点计算请求有效位,由向量部件发出,用于表征浮点计算请求发送标志位;所述浮点计算请求类型,由向量部件发出,用于表征浮点计算请求的操作类型;所述浮点计算请求编号,由向量部件发出,用于表征浮点计算请求编号;所述浮点计算请求源操作数A,由向量部件发出,用于表征浮点计算请求的操作数A的数据;所述浮点计算请求源操作数B,由向量部件发出,用于表征浮点计算请求的操作数B的数据;所述浮点计算请求源操作数C,由向量部件发出,用于表征浮点计算请求的操作数C的数据;所述浮点计算请求接收反馈位,由处理器浮点计算部件发出,用于表征浮点计算请求被浮点部件成功接收;所述浮点计算结果有效位,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据有效标志位;所述浮点计算结果数据,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据;所述浮点计算结果状态,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据的状态参数;所述浮点计算结果编号,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据对应的浮点计算编号;

所述页表转换通路包括向量地址页表转换请求有效位、向量访存地址页表转换请求虚地址、向量访存地址页表转换请求编号、向量访存地址页表转换请求返回物理地址有效位、向量访存地址页表转换请求返回物理地址、向量访存地址页表转换请求返回物理地址状态、向量访存地址页表转换返回物理地址响应编号,其中:所述向量访存地址页表转换请求有效位,由向量部件发出,用于表征向量访存地址页表转换请求发送标志位;所述向量访存地址页表转换请求地址,由向量部件发出,用于表征向量访存地址页表转换请求虚地址;所述向量访存地址页表转换请求类型,由向量部件发出,用于表征向量访存地址页表转换请求类型;所述向量访存地址页表转换请求编号,由向量部件发出,用于表征向量访存地址页表转换请求对应的加速计算请求编号;所述向量访存地址页表转换请求返回物理地址有效位,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址有效标志位;所述向量访存地址页表转换请求返回物理地址,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址;所述向量访存地址页表转换请求返回数据状态,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址的状态;所述向量访存地址页表转换返回物理地址编号,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址对应的加速计算请求编号。

此外,本发明还提供一种处理器,包括通用处理器核心、接口部件与向量部件,所述通用处理器核心通过接口部件与向量部件相连,所述接口部件为前述的通用处理器核心与向量部件的协同接口。

和现有技术相比,本发明具有下述优点:

1、本发明针对通用处理器核心与向量部件,能以高效松耦合专用接口实现与控制部件、寄存器部件、数据缓存部件、浮点计算部件和页表转换等相关部件的直接交互,提高了向量部件的数据读写和指令执行效率。

2、本发明中交互部件之间采用自主流控的方式,不需要处理器控制部件的实时介入,因此具有高效交互的特点。

3、本发明向量计算中的部分浮点计算和页表转换等操作交由通用处理器的相应部件完成,降低了向量部件的资源实现代价的效果。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例中控制通路的实现示意图。

图3为本发明实施例中访存通路的实现示意图。

图4为本发明实施例中寄存器通路的实现示意图。

图5为本发明实施例中浮点计算通路的实现示意图。

图6为本发明实施例中页表转换通路的实现示意图。

图7为本发明实施例中协同接口的结构示意图。

具体实施方式

如图1所示,本实施例通用处理器核心与向量部件的协同方法包括:

1)向量部件接收来自通用处理器核心发送的向量请求;

2)向量部件判断向量请求是否需要访问缓存数据,若需要访问缓存数据,则向通用处理器核心的处理器数据缓存部件发送访存请求,使处理器数据缓存部件处理访存请求并返回访存请求的数据或状态;向量部件判断向量请求是否需要寄存器访问,若需要寄存器访问,则向通用处理器核心的处理器寄存器部件发送寄存器请求,使处理器寄存器部件处理寄存器请求并返回寄存器请求的数据或状态;向量部件判断向量请求是否需要浮点计算,若需要浮点计算,则向通用处理器核心的处理器浮点计算部件发送浮点计算请求,使处理器浮点计算部件处理浮点计算请求并返回浮点计算结果;向量部件判断向量请求是否需要页表转换,若需要页表转换,则向通用处理器核心的处理器页表转换部件发送页表转换请求,使处理器页表转换部件处理页表转换请求并返回页表转换结果;

3)判断是否完成操作,如果尚未完成操作,则跳转执行步骤2);否则向量部件向通用处理器核心返回最终的向量计算结果。

如图2所示,本实施例中的步骤1)包括:

1.1)向量部件通过控制通路接收来自通用处理器核心发送的向量请求,且接收的向量请求包括通过向量计算请求类型、向量计算请求编号、向量计算请求源操作数A、向量计算请求源操作数B、向量计算请求源操作数C、向量计算请求结果寄存器编号端口发送的操作类型(Vec_Type0)、请求编号(Vec_req_ID0)、源操作数A、B、C(Vec_req_SrcA0、Vec_req_SrcB0、Vec_req_SrcC0)和结果寄存器编号(Vec_req_Result_Reg_ID0),且上述断口发送的信号由向量计算请求有效位标识有效;

1.2)向量部件在完成向量请求的接收和保存后,通过控制通路的向量请求接收反馈位端口通知通用处理器核心的处理器控制部件。

此步骤目的在于通过简化的接口内容和握手响应,快速完成向量请求的发送和接收,而不同于传统处理器核心内部接口信号和响应信号的严格的时间间隔要求,本实施例方法和接口放松了接口模块之间的严格时间间隔要求,即呈现松耦合的特征。

如图3所示,本实施例中步骤2)中向通用处理器核心的处理器数据缓存部件发送访存请求包括:

2.1A)针对需要访问缓存数据,需要获取的访存操作类型(Mem_Req_Type0)、访存请求编号(Mem_Req_ID0)、访存请求物理地址(Mem_Req_PA0)、访存请求写数据(Mem_Req_Wr_Data0),分别通过访存通路的访存请求类型、访存请求编号、访存请求物理地址、访存请求写数据端口发送到处理器缓存数据部件,上述信号由向量部件访存请求有效位标识有效;

2.2A)处理器缓存数据部件在完成访存请求的接收和保存后,通过向量部件访存请求接收反馈位通知向量部件;

2.3A)若访存操作类型为读取数据,处理器缓存数据部件在完成数据读取操作后,将获取的数据(Mem_Rsp_Data0)、数据状态(Mem_Rsp_State0)和对应的访存请求编号(Mem_Rsp_ID0),通过访存请求返回数据、访存请求返回数据状态、访存请求返回数据编号端口发送到向量部件,上述信号由向量部件访存请求返回数据有效位标识有效;

2.4A)若访存操作类型为写入数据,处理器缓存数据部件在完成将访存写数据写入指定位置后,将数据状态(Mem_Rsp_State0)和对应的访存请求编号(Mem_Rsp_ID0),通过访存请求返回数据状态、访存请求返回数据编号端口发送到向量部件,上述信号由向量部件访存请求返回数据有效位标识有效。

如图4所示,本实施例中步骤2)中向通用处理器核心的处理器寄存器部件发送寄存器请求包括:

2.1B)针对需要寄存器访问获取的寄存器操作类型(Reg_Req_Type0)、寄存器编号(Reg_Req_Reg_ID0)、寄存器写数据(Reg_Req_Wr_Data0),分别通过寄存器通路的寄存器请求类型、寄存器请求寄存器编号、寄存器请求写数据端口发送到通用处理器核心的处理器寄存器部件,上述信号由向量部件寄存器请求有效位标识有效;

2.2B)处理器寄存器部件在完成寄存器请求的接收和保存后,通过寄存器通路的向量部件寄存器请求接收反馈位端口通知向量部件;

2.3B)若寄存器操作类型为读取数据,处理器寄存器部件在完成寄存器数据读取操作后,将获取的数据(Reg_Rsp_Data0)、数据状态(Reg_Rsp_State0)和对应的寄存器编号(Reg_Rsp_ID0),通过寄存器请求返回数据、寄存器请求返回数据状态、寄存器请求返回数据寄存器编号端口发送到向量部件,上述信号由向量部件寄存器请求返回数据有效位标识有效;

2.4B)若寄存器操作类型为写入数据,处理器寄存器部件在完成将寄存器写数据写入指定寄存器后,将寄存器状态(Reg_Rsp_State0)和对应的寄存器编号(Reg_Rsp_ID0),通过寄存器请求返回数据状态、寄存器请求返回数据寄存器编号端口发送到向量部件,上述信号由向量部件寄存器请求返回数据有效位标识有效。

如图5所示,本实施例步骤2)中向通用处理器核心的处理器浮点计算部件发送浮点计算请求包括:

2.1C)针对浮点计算需要处理的浮点计算类型(Fp_Req_Type0)、浮点计算请求编号(Mem_Req_ID0)、源操作数A、B、C(Fp_Req_SrcA0、Fp_Req_SrcB0、Fp_Req_SrcC0),分别通过浮点计算通路的浮点计算请求类型、浮点计算请求编号、浮点计算请求源操作数A、浮点计算请求源操作数B、浮点计算请求源操作数C端口发送到处理器浮点计算部件,上述信号由向量部件浮点计算请求有效位标识有效;

2.2C)处理器浮点计算部件在完成浮点计算请求的接收和保存后,通过浮点计算通路的浮点计算请求接收反馈位通知向量部件;

2.3C)处理器浮点计算部件在完成对应浮点计算后,将获取的浮点计算结果数据(Fp_Result_Data0)、浮点计算结果状态(Fp_Result_State0)和对应的浮点计算结果编号(Fp_Result_ID0),通过浮点计算通路的浮点计算结果数据、浮点计算结果状态、浮点计算结果编号端口发送到向量部件,上述信号由浮点计算结果有效位标识有效。

如图6所示,本实施例步骤2)中向通用处理器核心的处理器页表转换部件发送页表转换请求包括:

2.1D)针对需要页表转换的向量地址页表转换虚地址(Tbw_Req_Va0)、地址页表转换请求编号(Tbw_Req_ID0),分别通过页表转换通路的向量访存地址页表转换请求虚地址、向量访存地址页表转换请求编号端口发送到处理器页表转换部件,上述信号由向量地址页表转换请求有效位标识有效;

2.2D)处理器页表转换部件在完成对应向量访存地址页表转换后,将获取的返回物理地址(Tbw_Result_Pa0)、返回物理地址状态(Tbw_Result_State0)和对应的返回物理地址响应编号(Tbw_Result_ID0),通过页表转换通路的页表转换请求返回物理地址、向量访存地址页表转换请求返回物理地址状态、向量访存地址页表转换返回物理地址响应编号端口发送到向量部件,上述信号由向量访存地址页表转换请求返回物理地址有效位标识有效。

如图2所示,本实施例中步骤3)中向量部件向通用处理器核心返回最终的向量计算结果包括:向量部件在完成向量请求Vec_Inst0对应的所有需要的操作后,将最后的向量计算结果状态(Vec_Result_State0)、向量计算结果编号(Vec_Result_ID0)和向量部件状态(Vec_Status),通过控制通路的向量计算结果状态、向量计算结果编号、向量部件状态端口发送到处理器控制部件,上述信号由向量计算结果有效位标识有效。

上述步骤2)所述的操作,目的均为向量部件根据实际向量请求的操作需要,向通用处理器核心的处理器数据缓存部件、处理器寄存器部件、处理器浮点计算部件和处理器页表转换部件,通过简化的接口内容和握手响应,快速完成对应操作请求的发送和接收,同时快速地接收指定的操作结果或反馈。除放松了接口模块之间的严格时间间隔要求,即呈现松耦合的特征外,相较于传统的独立向量加速器(如GPU),减少了部分附加功能部件的实现,这些附加功能部件在通用处理器核心中均有实现,且在遇到向量请求时,实际上大部分时间处于闲置状态,本实施例方法和接口,可提升上述通用处理器核心相关功能部件的利用率。

如图7所示,本实施例还提供一种用于应用前述通用处理器核心与向量部件的协同方法的通用处理器核心与向量部件的协同接口,该协同接口包括:

控制通路,用于实现通用处理器核心的处理器控制部件与向量部件传递操作指令和状态;

寄存器通路,用于实现通用处理器核心的处理器寄存器部件与向量部件传递寄存器请求和数据;

访存通路,用于实现向量部件与通用处理器核心的处理器缓存数据部件传递访存请求和数据;

浮点计算通路,用于向量部件与通用处理器核心的处理器浮点部件传递浮点操作的请求和数据;

页表转换通路,用于向量部件与通用处理器核心的处理器页表转换部件传递页表转换操作的请求和数据;所述控制通路、寄存器通路、访存通路、浮点计算通路和页表转换通路分别连接布置于通用处理器核心与向量部件之间。

控制通路用于处理器控制部件与向量部件传递操作指令和状态。参见图2,本实施例中的控制通路包括向量请求有效位(core_vec_req_vld)、向量请求类型(core_vec_req_type)、向量请求编号(core_vec_req_id)、向量请求源操作数A(core_vec_req_srca)、向量请求源操作数B(core_vec_req_srcb)、向量请求源操作数C(core_vec_req_srcc)、向量请求结果寄存器编号(core_vec_req_result_reg_id)、向量请求接收反馈位(vec_core_req_ack)、向量计算结果有效位(vec_core_result_vld)、向量计算结果状态(vec_core_result_state)、向量计算结果编号(vec_core_result_id)、向量部件状态(vec_core_state),其中:所述向量请求有效位,由通用处理器发出,用于表征向量请求发送;所述向量请求类型,由通用处理器发出,用于表征向量请求的操作类型;所述向量请求编号,由通用处理器发出,用于表征向量请求在通用处理器中的编号;所述向量请求源操作数A,由通用处理器发出,用于表征向量请求的操作数A的数据或寄存器编号;所述向量请求源操作数B,由通用处理器发出,用于表征向量请求的操作数B的数据或寄存器编号;所述向量请求源操作数C,由通用处理器发出,用于表征向量请求的操作数C的数据或寄存器编号;所述向量请求结果寄存器编号,由通用处理器发出,用于表征向量请求将要使用的结果寄存器编号;所述向量请求接收反馈位,由向量部件发出,用于表征向量请求被向量部件成功接收;所述向量计算结果有效位,由向量部件发出,用于表征向量请求的结果有效标志位;所述向量计算结果状态,由向量部件发出,用于表征向量请求的结果数据的状态;所述向量计算结果编号,由向量部件发出,用于表征生成向量计算结果数据的请求在通用处理器中的编号;所述向量部件状态,由向量部件发出,用于表征向量部件的运行状态;

访存通路用于向量部件与处理器缓存数据部件传递访存请求和数据。参见图3,本实施例中的访存通路包括向量部件访存请求有效位(vec_core_mem_req_vld)、向量部件访存请求类型(vec_core_mem_req_type)、向量部件访存请求编号(vec_core_mem_req_id)、向量部件访存请求物理地址(vec_core_mem_req_pa)、向量部件访存请求写数据(vec_core_mem_req_wr_data)、向量部件访存请求接收反馈位(core_vec_mem_req_ack)、向量部件访存请求返回数据有效位(core_vec_mem_rsp_vld)、向量部件访存请求返回数据(core_vec_mem_rsp_data)、向量部件访存请求返回数据状态(core_vec_mem_rsp_state)、向量部件访存请求返回数据编号(core_vec_mem_rsp_mem_id),其中:所述向量部件访存请求有效位,由向量部件发出,用于表征向量部件访存请求发送标志位;所述向量部件访存请求类型,由向量部件发出,用于表征向量部件访存请求的操作类型;所述向量部件访存请求编号,由向量部件发出,用于表征向量部件访存请求的编号;所述向量部件访存请求物理地址,由向量部件发出,用于表征向量部件访存请求的物理地址;所述向量部件访存请求写数据,由向量部件发出,用于表征向量部件访存请求写数据;所述向量部件访存请求接收反馈位,由处理器缓存数据部件发出,用于表征向量部件访存请求被缓存数据部件成功接收;所述向量部件访存请求返回数据有效位,由处理器缓存数据部件发出,用于表征向量部件访存请求返回数据有效标志位;所述向量部件访存请求返回数据,由处理器缓存数据部件发出,用于表征向量部件访存请求的返回数据;所述向量部件访存请求返回数据状态,由处理器缓存数据部件发出,用于表征向量部件访存请求的返回数据的状态;所述向量部件访存请求返回数据编号,由处理器缓存数据部件发出,用于表征向量部件访存请求的返回数据对应的访存请求编号;

浮点计算通路用于向量部件与处理器浮点部件传递浮点操作的请求和数据。参见图4,本实施例中的寄存器通路包括向量部件寄存器请求有效位(vec_core_reg_req_vld)、向量部件寄存器请求类型(vec_core_reg_req_type)、向量部件寄存器请求寄存器编号(vec_core_reg_req_reg_id)、向量部件寄存器请求写数据(vec_core_reg_req_wr_data)、向量部件寄存器请求接收反馈位(core_vec_reg_req_ack)、向量部件寄存器请求返回数据有效位(core_vec_reg_rsp_vld)、向量部件寄存器请求返回数据(core_vec_reg_rsp_data)、向量部件寄存器请求返回数据状态(core_vec_reg_rsp_state)、向量部件寄存器请求返回数据寄存器编号(core_vec_reg_rsp_reg_id),其中:所述向量部件寄存器请求有效位,由向量部件发出,用于表征向量部件寄存器请求发送标志位;所述向量部件寄存器请求类型,由向量部件发出,用于表征向量部件寄存器请求的操作类型;所述向量部件寄存器请求寄存器编号,由向量部件发出,用于表征向量部件寄存器请求对应的寄存器编号;所述向量部件寄存器请求写数据,由向量部件发出,用于表征向量部件寄存器请求写数据;所述向量部件寄存器请求接收反馈位,由处理器寄存器部件发出,用于表征向量部件寄存器请求被寄存器部件成功接收;所述向量部件寄存器请求返回数据有效位,由处理器寄存器部件发出,用于表征向量部件寄存器请求返回数据有效标志位;所述向量部件寄存器请求返回数据,由处理器寄存器部件发出,用于表征向量部件寄存器请求的返回数据;所述向量部件寄存器请求返回数据状态,由处理器寄存器部件发出,用于表征向量部件寄存器请求的返回数据的状态;所述向量部件寄存器请求返回数据寄存器编号,由处理器寄存器部件发出,用于表征向量部件寄存器请求的返回数据对应的寄存器编号;

浮点计算通路用于向量部件与处理器浮点部件传递浮点操作的请求和数据。参见图5,本实施例中的浮点计算通路包括浮点计算请求有效位(vec_core_fp_req_vld)、浮点计算请求类型(vec_core_fp_req_type)、浮点计算请求编号(vec_core_fp_req_id)、浮点计算请求源操作数A(vec_core_fp_req_srca)、浮点计算请求源操作数B(vec_core_fp_req_srcb)、浮点计算请求源操作数C(vec_core_fp_req_srcc)、浮点计算请求接收反馈位(core_vec_fp_req_ack)、浮点计算结果有效位(core_vec_fp_result_vld)、浮点计算结果数据(core_vec_fp_result)、浮点计算结果状态(core_vec_fp_result_state)、浮点计算结果编号(core_vec_fp_result_id),其中:所述浮点计算请求有效位,由向量部件发出,用于表征浮点计算请求发送标志位;所述浮点计算请求类型,由向量部件发出,用于表征浮点计算请求的操作类型;所述浮点计算请求编号,由向量部件发出,用于表征浮点计算请求编号;所述浮点计算请求源操作数A,由向量部件发出,用于表征浮点计算请求的操作数A的数据;所述浮点计算请求源操作数B,由向量部件发出,用于表征浮点计算请求的操作数B的数据;所述浮点计算请求源操作数C,由向量部件发出,用于表征浮点计算请求的操作数C的数据;所述浮点计算请求接收反馈位,由处理器浮点计算部件发出,用于表征浮点计算请求被浮点部件成功接收;所述浮点计算结果有效位,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据有效标志位;所述浮点计算结果数据,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据;所述浮点计算结果状态,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据的状态参数;所述浮点计算结果编号,由处理器浮点计算部件发出,用于表征浮点计算请求的结果数据对应的浮点计算编号;

页表转换通路用于向量部件与处理器页表转换部件传递页表转换操作的请求和数据。参见图6,本实施例中的页表转换通路包括向量地址页表转换请求有效位(vec_core_tbw_req_vld)、向量访存地址页表转换请求虚地址(vec_core_tbw_req_va)、向量访存地址页表转换请求编号(vec_core_tbw_req_id)、向量访存地址页表转换请求返回物理地址有效位(core_vec_tbw_rsp_vld)、向量访存地址页表转换请求返回物理地址(core_vec_tbw_rsp_pa)、向量访存地址页表转换请求返回物理地址状态(core_vec_tbw_rsp_state)、向量访存地址页表转换返回物理地址响应编号(core_vec_tbw_rsp_id),其中:所述向量访存地址页表转换请求有效位,由向量部件发出,用于表征向量访存地址页表转换请求发送标志位;所述向量访存地址页表转换请求地址,由向量部件发出,用于表征向量访存地址页表转换请求虚地址;所述向量访存地址页表转换请求类型,由向量部件发出,用于表征向量访存地址页表转换请求类型;所述向量访存地址页表转换请求编号,由向量部件发出,用于表征向量访存地址页表转换请求对应的加速计算请求编号;所述向量访存地址页表转换请求返回物理地址有效位,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址有效标志位;所述向量访存地址页表转换请求返回物理地址,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址;所述向量访存地址页表转换请求返回数据状态,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址的状态;所述向量访存地址页表转换返回物理地址编号,由通用处理器发出,用于表征向量访存地址页表转换请求的返回物理地址对应的加速计算请求编号。

此外,本实施例还提供一种处理器,包括通用处理器核心、接口部件与向量部件,所述通用处理器核心通过接口部件与向量部件相连,所述接口部件为前述的通用处理器核心与向量部件的协同接口,该通用处理器核心可以为单个核心,也可以是多个核心。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 通用处理器核心与向量部件的协同方法、接口及处理器
  • 支持多MAC运算部件向量处理器的分块矩阵乘法向量化方法
技术分类

06120113792905