CN110659118B - 一种用于多领域芯片设计的可配置混合异构计算核心系统 - Google Patents

一种用于多领域芯片设计的可配置混合异构计算核心系统 Download PDF

Info

Publication number
CN110659118B
CN110659118B CN201910858163.6A CN201910858163A CN110659118B CN 110659118 B CN110659118 B CN 110659118B CN 201910858163 A CN201910858163 A CN 201910858163A CN 110659118 B CN110659118 B CN 110659118B
Authority
CN
China
Prior art keywords
domain
specific
cache
processing engine
computing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910858163.6A
Other languages
English (en)
Other versions
CN110659118A (zh
Inventor
邵平平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Tiantian Smart Core Semiconductor Co ltd
Original Assignee
Shanghai Tiantian Smart Core Semiconductor Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Tiantian Smart Core Semiconductor Co ltd filed Critical Shanghai Tiantian Smart Core Semiconductor Co ltd
Priority to CN201910858163.6A priority Critical patent/CN110659118B/zh
Publication of CN110659118A publication Critical patent/CN110659118A/zh
Application granted granted Critical
Publication of CN110659118B publication Critical patent/CN110659118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Abstract

一种用于多领域芯片设计的可配置混合异构计算核心架构,包括:工作负载调度模块和处理引擎,处理引擎包括线程组调度模块和特定领域计算单元;工作负载由驱动器发送至工作负载调度模块,然后发送至线程组调度模块,线程组调度模块将工作负载拆分为若干个线程组并将各线程组发送至指定应用的特定领域计算单元执行;特定领域计算单元包括CU控制器、寄存器文件、领域特定核心和L1缓存;CU控制器用于读取着色器并且解码指令,然后将指令发送至各领域特定核心执行,每个特定领域计算单元中的一组寄存器文件和领域特定核心共享L1缓存。本发明将特定领域计算单元作为构建模块,可以缩短项目设计时间,迅速高效创建市场所需产品。

Description

一种用于多领域芯片设计的可配置混合异构计算核心系统
技术领域
本发明属于硬件、芯片架构设计领域,具体涉及一种用于多领域芯片设计的可配置混合异构计算核心系统。
背景技术
许多应用需要大计算量和高存储宽带,例如人工智能应用和HPC应用,许多芯片设计为这些应用提供解决方案。CPU通过常见的低级方式解决这些问题,因此丧失部分并行能力,无法支持海量计算。GPU可为类似计算提供极强的并行能力,比如图像创建和处理。但仍无法为人工智能应用等领域的某些特殊算法提供充足的计算能力。TPU等某些领域特定ASIC专注于定制化要求,提供极高的计算能力,同时效率也较高。这些ASIC通常用作CPU等某些主机的加速器,由于某些一般运算无法在这些ASIC中完成,因此与主机之间进行许多数据交换,所以也无法为整体应用实现高性能和高效率。定制芯片灵活性不足,无法运行相同领域中的新算法和用于其他领域的应用。
发明内容
本发明针对现有技术中的不足,提供一种用于多领域芯片设计的可配置混合异构计算核心系统。
为实现上述目的,本发明采用以下技术方案:
一种用于多领域芯片设计的可配置混合异构计算核心系统,其特征在于,包括:工作负载调度模块和处理引擎,所述处理引擎包括线程组调度模块和特定领域计算单元;工作负载由驱动器发送至工作负载调度模块,然后发送至线程组调度模块,所述线程组调度模块将工作负载拆分为若干个线程组并将各线程组发送至指定应用的特定领域计算单元执行;所述特定领域计算单元包括CU控制器、寄存器文件、领域特定核心和L1缓存;所述CU控制器用于读取着色器并且解码指令,然后将指令发送至各领域特定核心执行,每个领域特定核心都有各自的寄存器文件,每个特定领域计算单元中的一组寄存器文件和领域特定核心共享L1缓存。
为优化上述技术方案,采取的具体措施还包括:
进一步地,所述处理引擎的数量可扩展,在每个处理引擎中,按不同的领域要求配置不同数量的特定领域计算单元,在每个特定领域计算单元中,通过配置不同的领域特定核心形成针对不同算法的基础特定领域计算单元,作为计算机核心架构的构建模块。
进一步地,所述处理引擎还包括Fabric架构和L2缓存,通过Fabric架构连接各L1缓存和L2缓存,所述L2缓存通过片上网络连接最后一级缓存,所述最后一级缓存连接内存控制器。
进一步地,加载指令从L1缓存加载数据,如数据不在L1缓存内,则前往L2缓存和最后一级缓存,如所有缓存均无相关数据时,则前往DRAM;存储指令按规则存储在L1缓存、L2缓存和最后一级缓存中,或者存储在DRAM中。
进一步地,所述着色器包括多种指令语句,不同的指令语句被分配到不同的特定领域计算单元中执行,各特定领域计算单元配置有不同的领域特定核心。
进一步地,所述CU控制器根据设定的特殊指令将线程组移动至其他的特定领域计算单元,该特殊指令嵌入每个指令语句的末尾,使CU控制器完成切换。
进一步地,每个处理引擎都配置有处理引擎共享缓冲区,需要在不同的特定领域计算单元之间共享数据时,使用缓冲区存储指令将数据写入处理引擎共享缓冲区,使用缓冲区加载指令从处理引擎共享缓冲区获取数据。
本发明的有益效果是:提供了一种用于多领域芯片设计的可配置混合异构计算核心架构,每个领域都有其各自的领域特定核心,可以高效解算问题。领域特定核心专为自身的组运算设计,不存在其他开销,因此很容易按大计算量要求进行扩展。在此架构下,将特定领域计算单元作为构建模块,可以缩短项目设计时间,迅速高效创建市场所需产品。
附图说明
图1是混合异构计算机核心系统架构图。
图2是特定领域计算单元示意图。
图3a是处理引擎示意图。
图3b是混合处理引擎示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
如图1所示的一种用于多领域芯片设计的可配置混合异构计算核心系统架构,为每个领域创建高效核心。每个领域特定核心都有各自的寄存器文件(Register File),一组领域特定核心共享L1缓存(L1 Cache),将该组核心及其CU控制器(CU Controller)、寄存器文件和L1缓存称为特定领域计算单元(Domain Specific Compute Unit,DSCU)。图2是DSCU示意图。处理引擎(Processing Engine,PE)包括线程组调度模块、一些DSCU、L2缓存(L2Cache)和将DSCU中L1缓存连接到L2缓存的Fabric架构。图3a是PE示意图。在PE中,DSCU可用于不同的领域。例如,在图3b中,3个DSCU用于人工智能卷积,1个DSCU用于GPGPU运算。不同领域计算单元比例可按不同的市场要求改变,因此可以配置。如果数据需要在不同的DSCU之间共享,可以写入PE共享缓冲区(访问延迟短)或L2缓存(访问延迟大)。另一个DSCU示例是端到端数据操纵,可以设计特定核心进行数据加载、查询、连接、聚合和筛选。
这种适用于多领域应用的架构,每个领域都有其各自的核心,可以高效解算问题。领域特定核心专为组运算设计,不存在其他开销,因此很容易按大计算量要求进行扩展。每个应用或解算都有一些无法在领域特定核心内运行的一般运算(线程运算)。因此在该架构中为这些运算添加了一些通用核心。
进一步参见图1,工作负载由驱动器发送至工作负载调度模块(WorkloadDispatch),然后发送至线程组调度模块(Thread Group Dispatch)。线程组调度模块将工作负载拆分为许多线程组并将线程组发送至应用指定的DSCU。CU控制器读取着色器(Shader)、解码指令并将指令发送至各核心执行。加载指令从L1缓存加载数据,如数据不在L1缓存内,则前往L2缓存或最后一级缓存(LLC)或DRAM(所有缓存均无相关数据时)。存储指令按规则将数据存储在L1/L2/LLC或DRAM。要在DSCU间共享数据,使用缓冲区存储/加载指令将数据放入处理引擎共享缓冲区(Processing Engine Shared Buffer)或从该缓冲区获取数据。着色器有许多指令语句,不同的语句在不同的DSCU中执行。设定特殊指令通知CU控制器将线程组移至其他DSCU。此指令嵌入每个语句末尾,让CU控制器完成切换。图中L2缓存通过片上网络(NOC)连接LLC,LLC连接内存控制器(MC)。图中各模块上下表示并列关系,左右表示数据流通。
在每个DSCU中,可以配置不同的核心形成基础DSCU。在每个PE中,可按不同的领域要求配置不同数量的DSCU,然后扩展PE数量,针对不同的市场领域实现相应级别的产品。在此架构中,可以针对新兴算法,专注于新特定领域计算单元设计并添加此DSCU来创建新产品。在此架构下,将DSCU作为构建模块,可以缩短项目设计时间,迅速高效创建市场所需产品。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (5)

1.一种用于多领域芯片设计的可配置混合异构计算核心系统,其特征在于,包括:工作负载调度模块和处理引擎,所述处理引擎包括线程组调度模块和特定领域计算单元;工作负载由驱动器发送至工作负载调度模块,然后发送至线程组调度模块,所述线程组调度模块将工作负载拆分为若干个线程组并将各线程组发送至指定应用的特定领域计算单元执行;所述特定领域计算单元包括CU控制器、寄存器文件、领域特定核心和L1缓存;所述CU控制器用于读取着色器并且解码指令,然后将指令发送至各领域特定核心执行,每个领域特定核心都有各自的寄存器文件,每个特定领域计算单元中的一组寄存器文件和领域特定核心共享L1缓存;
所述处理引擎的数量可扩展,在每个处理引擎中,按不同的领域要求配置不同数量的特定领域计算单元,在每个特定领域计算单元中,通过配置不同的领域特定核心形成针对不同算法的基础特定领域计算单元,作为计算机核心架构的构建模块;
所述处理引擎还包括Fabric架构和L2缓存,通过Fabric架构连接各L1缓存和L2缓存,所述L2缓存通过片上网络连接最后一级缓存,所述最后一级缓存连接内存控制器。
2.如权利要求1所述的一种用于多领域芯片设计的可配置混合异构计算核心系统,其特征在于:加载指令从L1缓存加载数据,如数据不在L1缓存内,则前往L2缓存和最后一级缓存,如所有缓存均无相关数据时,则前往DRAM;存储指令按规则存储在L1缓存、L2缓存和最后一级缓存中,或者存储在DRAM中。
3.如权利要求1所述的一种用于多领域芯片设计的可配置混合异构计算核心系统,其特征在于:所述着色器包括多种指令语句,不同的指令语句被分配到不同的特定领域计算单元中执行,各特定领域计算单元配置有不同的领域特定核心。
4.如权利要求3所述的一种用于多领域芯片设计的可配置混合异构计算核心系统,其特征在于:所述CU控制器根据设定的特殊指令将线程组移动至其他的特定领域计算单元,该特殊指令嵌入每个指令语句的末尾,使CU控制器完成切换。
5.如权利要求1所述的一种用于多领域芯片设计的可配置混合异构计算核心系统,其特征在于:每个处理引擎都配置有处理引擎共享缓冲区,需要在不同的特定领域计算单元之间共享数据时,使用缓冲区存储指令将数据写入处理引擎共享缓冲区,使用缓冲区加载指令从处理引擎共享缓冲区获取数据。
CN201910858163.6A 2019-09-11 2019-09-11 一种用于多领域芯片设计的可配置混合异构计算核心系统 Active CN110659118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910858163.6A CN110659118B (zh) 2019-09-11 2019-09-11 一种用于多领域芯片设计的可配置混合异构计算核心系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910858163.6A CN110659118B (zh) 2019-09-11 2019-09-11 一种用于多领域芯片设计的可配置混合异构计算核心系统

Publications (2)

Publication Number Publication Date
CN110659118A CN110659118A (zh) 2020-01-07
CN110659118B true CN110659118B (zh) 2022-03-08

Family

ID=69037368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910858163.6A Active CN110659118B (zh) 2019-09-11 2019-09-11 一种用于多领域芯片设计的可配置混合异构计算核心系统

Country Status (1)

Country Link
CN (1) CN110659118B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033298A (zh) * 2022-10-21 2023-11-10 上海天数智芯半导体有限公司 一种瓦片处理器、soc芯片以及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578387B1 (en) * 2007-07-31 2013-11-05 Nvidia Corporation Dynamic load balancing of instructions for execution by heterogeneous processing engines
US9304775B1 (en) * 2007-11-05 2016-04-05 Nvidia Corporation Dispatching of instructions for execution by heterogeneous processing engines
CN107409097A (zh) * 2015-04-23 2017-11-28 思科技术公司 利用自动化结构架构的负载平衡移动性
CN107704922A (zh) * 2017-04-19 2018-02-16 北京深鉴科技有限公司 人工神经网络处理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9111325B2 (en) * 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
EP2689327B1 (en) * 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578387B1 (en) * 2007-07-31 2013-11-05 Nvidia Corporation Dynamic load balancing of instructions for execution by heterogeneous processing engines
US9304775B1 (en) * 2007-11-05 2016-04-05 Nvidia Corporation Dispatching of instructions for execution by heterogeneous processing engines
CN107409097A (zh) * 2015-04-23 2017-11-28 思科技术公司 利用自动化结构架构的负载平衡移动性
CN107704922A (zh) * 2017-04-19 2018-02-16 北京深鉴科技有限公司 人工神经网络处理装置

Also Published As

Publication number Publication date
CN110659118A (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
US9606797B2 (en) Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor
KR102526619B1 (ko) 지속적인 컴퓨팅을 위한 저 전력 및 저 대기시간 gpu 코프로세서
US20140359225A1 (en) Multi-core processor and multi-core processor system
US11586577B2 (en) Autonomous memory architecture
US9612750B2 (en) Autonomous memory subsystem architecture
US20190228308A1 (en) Deep learning accelerator system and methods thereof
CN103810111A (zh) 有源存储器件中的地址生成的方法及其处理元件
CN111324294B (zh) 存取张量数据的方法和装置
CN101833441A (zh) 并行向量处理引擎结构
US20210096747A1 (en) Ndp-server: a data-centric computing architecture based on storage server in data center
CN102279818A (zh) 支持有限共享的向量数据访存控制方法及向量存储器
US8341358B1 (en) System and method for cleaning dirty data in a cache via frame buffer logic
CN104317770A (zh) 用于众核处理系统的数据存储结构及数据访问方法
CN105393210A (zh) 用于模拟共享存储器结构的存储器单元
CN114942831A (zh) 处理器、芯片、电子设备及数据处理方法
US10152328B2 (en) Systems and methods for voting among parallel threads
US8151095B1 (en) System and method for context migration across CPU threads
CN110659118B (zh) 一种用于多领域芯片设计的可配置混合异构计算核心系统
CN101341471B (zh) 动态高速缓存管理的设备和方法
Starke et al. IBM POWER9 memory architectures for optimized systems
US20130152093A1 (en) Multi-Channel Time Slice Groups
US8321618B1 (en) Managing conflicts on shared L2 bus
US20230061711A1 (en) Inter-layer communication techniques for memory processing unit architectures
CN105718392A (zh) 细胞阵列文件存储系统及其文件存储设备与文件存储方法
CN111666253B (zh) 向具有共享存储器的共享处理元件的系统传递可编程数据

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 201100 no.1628, sushao Road, Minhang District, Shanghai

Applicant after: Shanghai Tiantian smart core semiconductor Co., Ltd

Address before: 210012 4 floor, 5 software Avenue, Yuhuatai District, Nanjing, Jiangsu, 180

Applicant before: ILUVATAR COREX Inc.

GR01 Patent grant
GR01 Patent grant