CN115630013A - 基于空间可重构阵列的便笺式缓存架构构建方法及系统 - Google Patents
基于空间可重构阵列的便笺式缓存架构构建方法及系统 Download PDFInfo
- Publication number
- CN115630013A CN115630013A CN202211345052.3A CN202211345052A CN115630013A CN 115630013 A CN115630013 A CN 115630013A CN 202211345052 A CN202211345052 A CN 202211345052A CN 115630013 A CN115630013 A CN 115630013A
- Authority
- CN
- China
- Prior art keywords
- access
- array
- data
- cache architecture
- steps
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于空间可重构阵列的便笺式缓存架构构建方法及系统,包括:针对任意划分粒度的任务,采用列地址重映射;对拥有不同访存步长的多个数组进行分区存放,以流和数组绑定进行多数组并发访问;使用静态配置降低配置频次,采用配置参数进行地址转换。本发明通过轻量级、可扩展、参数化的列地址重映射机制,达到片上内存无浪费、计算阵列和DDR与片上内存的交互均无冲突的效果。本发明根据多数组并行访存且跨步访问步长各异的特点,按照流的方式组织多数组访存过程,并通过片上分区,逻辑和物理地址空间的转换,达到多数组并发、无冲突访问的效果。
Description
技术领域
本发明涉及可重构阵列的片上缓存技术领域,具体地,涉及一种基于空间可重 构阵列的便笺式缓存架构构建方法及系统,尤其是涉及一种基于空间可重构阵列的 计算密集向应用的便笺式缓存架构。
背景技术
粗粒度可重构阵列(Coarse-grained reconfigurable array,CGRA)是一种通 过配置重新构建数据流来适应不同计算任务和利用数据流高效的特点的新型处理 器,具有通用性和高算力的特点。粗粒度可重构阵列可以保持和专用集成电路(ASIC) 相同数量级别的算力,也可以像FPGA(Field Programmable Gate Array)一样通过 重构来适应不同的计算任务,兼具高算力和通用性。粗粒度可重构阵列通过在执行 计算任务之前进行配置,将数据流的计算模式和布局情况配置到阵列中,在静态配 置之后,计算阵列会按照配置好的流程进行计算和访存。
粗粒度可重构阵列指的是阵列中的基本单元是处理数据的粒度是一个较宽的 范围,常见的有32bit,对应到算法中的INT32和FP32数据类型。CGRA由于其本 身高算力和通用性的特点,可以处理计算密集型和访存密集型的应用算法。由于高 算力带来的高带宽需求,一个高性能,高吞吐量的片上缓存系统是必要的。
在通用处理器领域,片上高速缓存(Cache)由于其易用性,软件透明性,得到 了广泛的应用。Cache使用的是全局地址,间接寻址,需要进行地址转换,同时为 了确定数据是否在Cache中,还需要进行tag比对的过程,比对不成功的话,还会 发生Cache缺失,从主存中获取数据,这往往需要几十个周期。如果是组相联设计 的Cache,在tag比对之后,要将多个组的数据取出进行比较,通过选择器选择正 确的结果。同时,Cache为了实现高带宽,往往采用多组(Multi-Bank)设计,将 Cache分成多个bank,每个bank都可以独立的响应访问请求。但是如果同一bank 上不同地址的数据在同一时间内被请求,就会发生bank冲突,该bank需要多个周 期才能处理完落在该bank上的这些请求。由于可能会发生的bank冲突以及Cache 缺失的问题,处理器想要访问的数据很难在一个确切的时间后返回。而粗粒度可重 构架构属于一种计算访存高度耦合的设计,计算单元只有等到访存单元都给出数据 后才能开始运算,如果在运行的时候发生bank冲突或者Cache缺失,那么计算阵 列只能停顿,然后等待访存单元,这会造成很大的性能损失。
由于可重构阵列计算访存高度耦合的特点以及对于高数据通量的需求,一个可以编程的由程序员管理的片上缓存系统被提出。在英伟达设计的GPU,一些实时系 统和加速器中使用了暂存器。这种暂存器可以通过软件的方式,显式的指定数据排 放的位置。暂存器可以显式的进行数据搬运,由于显式搬运保证了数据都在片上, 所以不会出现数据缺失的问题,同时也不需要进行tag比对,减少了这部分电路和 能耗开销。节约了约34%的面积,反而可以设计更大的SRAM。但是暂存器使用的是 独立的地址空间,暂存器和主存之间没有硬件去处理地址映射,必须要显式的移动 数据,反而导致不必要的能耗开销。
当然可编程的暂存器也可以一定程度上降低访问数据时候的bank冲突,以GPU 上的shared memory为例,shared memory可以视作一个多bank设计的SRAM,通 过很多个流将数据并行的从主存到shared memory中相互搬运。当处理器核心在访 问数据出现bank冲突的时候,可以通过对数据进行memory padding,通过在原本 的数据中添加一些空的数据位置,修改原本的数据布局,这样就使得原本交叠的访 问请求被转移到了不同的bank,从而避免了bank冲突。这样的好处就是提供了一 种易于编程的方式描述数据搬运的过程,通过申请一个更大的数组空间,进行显式 的数据搬移。但是其用空的padding数据来移动原始的数据,会导致SRAM空间的 浪费。而且使用memory padding的方式来解决bank冲突的方式并不灵活,由于 memory padding只考虑了从处理器发起访问的bank冲突,没有考虑从主存写入 shared memory这个过程,而在这个过程中也可能会发生bank冲突。
数据的命中率,多bank设计下的bank冲突率,地址转换的方式,SRAM空间的 利用率,缓存控制逻辑的大小都是影响片上缓存系统性能的重大因素,其中数据的 命中率和bank冲突率更大程度上决定了可重构阵列的性能。
可重构处理器上这样的异构处理器有着高数据吞吐量,计算访存强耦合等问题,传统的Cache难以提供高效的数据吞吐,同时bank冲突以及数据缺失导致访存延 时使得难以即时地将数据传递给阵列,同时Cache的Tag比对,多路选择浪费了大 量功耗和面积。而现有的便笺式缓存方案通过预取手段消除数据缺失,同时用memory padding来进行数据偏移,减少bank冲突。但是此方式第一只着眼于解决 计算阵列访问片上内存的冲突,忽视了DRAM读写片上内存的冲突;其次,此方式 受硬件幂次化资源的限制,导致片上空间分配面临非幂次任务划分时,仍面临访问 冲突或更大程度的资源浪费;最后,该方式无法面多数组跨步访问步长各异导致的 访问冲突。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于空间可重构阵列的便笺式缓存架构构建方法及系统。
根据本发明提供的一种基于空间可重构阵列的便笺式缓存架构构建方法,包括:针对任意划分粒度的任务,采用列地址重映射;对拥有不同访存步长的多个数组进行分 区存放,以流和数组绑定进行多数组并发访问;使用静态配置降低配置频次,采用配置 参数进行地址转换。
优选地,所述列地址重映射采用对数据进行分块,块内的数据共享一个偏移参数,块间通过偏移错开访问的地址。
优选地,通过分析和归纳应用的跨步访问特征,为非2幂次跨步访问,可变2幂次跨步访问以及其他跨步访问设计对应的分块策略和地址偏移策略。
优选地,数组分区存放,以流和数组绑定进行多数组并发访问包括:
对不同访存特性的规律数组在SPM中分区存放,通过逻辑空间到物理空间的映射实 现分区,将处理器端/DRAM端到片上一个分区的访存定义为流,通过片上分区和按照流的方式组织访存,在分区内只访问一个数组,确保数组间的访问没有交叠。
优选地,使用静态配置的方式,采用配置参数来实现地址转换,包括:在计算任务开始时写入静态配置,降低配置频次,通过预取将数据进行重排,计算任务中,利用相 同的配置进行处理器端的访存,实现配置共享。
根据本发明提供的一种基于空间可重构阵列的便笺式缓存架构构建系统,包括:针 对任意划分粒度的任务,采用列地址重映射;对拥有不同访存步长的多个数组进行分区存放,以流和数组绑定进行多数组并发访问;使用静态配置降低配置频次,采用配置参 数进行地址转换。
优选地,所述列地址重映射采用对数据进行分块,块内的数据共享一个偏移参数,块间通过偏移错开访问的地址。
优选地,通过分析和归纳应用的跨步访问特征,为非2幂次跨步访问,可变2幂次跨步访问以及其他跨步访问设计对应的分块策略和地址偏移策略。
优选地,数组分区存放,以流和数组绑定进行多数组并发访问包括:
对不同访存特性的规律数组在SPM中分区存放,通过逻辑空间到物理空间的映射实 现分区,将处理器端/DRAM端到片上一个分区的访存定义为流,通过片上分区和按照流的方式组织访存,在分区内只访问一个数组,确保数组间的访问没有交叠。
根据本发明提供的一种可重构处理器,所述可重构处理器包含便笺式缓存架构,所 述便笺式缓存架构设计时上述的基于空间可重构阵列的便笺式缓存架构构建方法。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过轻量级、可扩展、参数化的列地址重映射机制,达到片上内存 无浪费、计算阵列和DDR与片上内存的交互均无冲突的效果。
2、本发明根据多数组并行访存且跨步访问步长各异的特点,按照流的方式组 织多数组访存过程,并通过片上分区,逻辑和物理地址空间的转换,达到多数组并 发、无冲突访问的效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本典型异构可重构阵列示意图;
图2为本发明中的数据在SPM中分区存储示意图;
图3为本发明片上可配置便笺式缓存结构图;
图4为本发明地址转换逻辑示意图;
图5为本发明不同应用在Cache和可配置便笺式缓存下的执行周期数;
图6为本发明通过地址重映解决处理器访问和DRAM访问中bank冲突示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人 员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于 本发明的保护范围。
实施例1:
本发明提供一种基于空间可重构阵列的便笺式缓存架构构建方法,针对的是典型的 粗粒度可重构阵列。图1为单个阵列的示意图,图中的PE为计算单元,LSE为地址生成 单元。该阵列在开始执行计算任务之前,通过配置控制器(configure controller)以 扫描链的形式,将所有计算单元和地址生成单元的功能配置以及互连配置写入。这个过 程相当于把算法硬化在电路上,在配置完成之后,已经形成了固定的数据通路。计算任 务开始时,部分计算单元控制地址生成单元产生地址访问请求,地址访问请求发送到片 上缓存,得到的数据返回到地址生成单元,地址生成单元将数据传递给其余计算单元。 访存单元访存得到的数据直接传递给计算阵列,两者之间就形成了强耦合关系。
本发明以图1所示的粗粒度可重构阵列为基础设计,该阵列上可以映射不同类型的 应用。本发明中设计的片上存储系统可以解决传统便笺式存储器中不能完全消除bank冲突的问题,同时也能解决Cache中数据缺失等问题。通过对该片上存储系统进行配置 来实现对数据的重新排布,针对不同类型的应用,使用不同的配置。
本发明提供一种便笺式缓存(Scratchpad Memory,SPM)架构构建方法,SPM通过流的方式组织整个访存的过程,在静态配置整个流的参数后,无需在运行时进行修改。
由于粗粒度可重构处理器属于空间结构,其配置一旦配置,对于任务所需的所有访 存都会开始,也就是说会同时访存arrayA、arrayB、arrayC、arrayD这四个数组,为 了防止数组之间在空间上发生交叠,需要对数组进行分区存放,数据存储在SPM中的示 意图如图2所示。通过对SPM的空间进行分区,每个分区占据一个宽度为P个bank,高 度为Q行的空间。由于要同时满足DRAM读写每个SPM分区时候充分利用DRAM的访存带 宽,所以对分区的最小宽度有着限制。
SPM的结构示意图如图2所示。由于将原有的LSE以流的方式进行组织,将从处理器端/DRAM端访问SPM的一个分区定义成一个流,流内包括数个LSE。该示意的SPM结 构图中只有四个流和对应的可配置参数,即Config0~3。LSE将对于逻辑空间的地址请 求发出,每个LSE都会连接到一个地址转换逻辑,地址转换逻辑根据其所处的流来选择 一组对应的配置读入,通过配置的参数实现从逻辑地址到SPM物理地址的转换,最后通 过一个互联网络(Cross bar)将对应bank的请求依次送入到不同的bank中。地址转换 逻辑在任务开始的时候就将配置读入,在任务完成后读入新的任务,对寄存器的读写次 数较少,相应的能耗开销也较小。
地址转换逻辑负责将原本有冲突的地址请求转换成没有冲突的地址请求,地址转换 逻辑在计算任务开始之前读入对应的配置参数,配置参数如表1所示,其中灰色的部分属于配置好的参数,配置的参数和应用的访存特性有关。地址转换逻辑的结构图4所示, 地址转换逻辑通过将逻辑的三维地址in0~in2读入,SPM每个分区中将数行数据以数据 块的方式组织起来,地址转换逻辑将通过行地址得到所属数据块的位置,根据数据块的 偏移参数和原本数据块的列地址相加,得到SPM的逻辑列地址。将数据块的编号乘以数 据块占据的行数加上块内偏移的前几bit得到SPM的逻辑行地址。最后将逻辑的行列地 址加上该SPM分区物理起始的行列地址,则得到最后的物理行列地址。
表1静态显式可配置的便笺式缓存中参数汇总
SPM接受的地址最高是三维的逻辑地址,原本LSE负责将三维地址转化成一维地址, 而且由于LSE只能实现一个MAC,在将三维地址转换成一维地址的过程中还需要一个PE辅助计算。SPM通过地址转换逻辑将三维地址转化成二维的物理地址,解放了原本LSE 和部分PE的功能,这样同时也提高了阵列上PE的算力。
同时SPM在做预取和写回的时候,在给出DRAM基地址和访问的数据量后可以复用计算时候的配置和逻辑,即处理器端和DRAM端访存同个数组可以共用同个流的配置参 数和数据通路,大大降低了配置的参数量。利用DRAM突发特性,将数据提前预取到SPM 中,并进行了地址重排布。最后通过写回将排布好的结果顺序地写回到DRAM中,由于 本发明设计下,DRAM访问SPM没有bank冲突,这样可以充分利用DRAM的访存带宽,降 低存储墙的限制。
综上,本发明新提出的片上可配置便笺式缓存的技术特点主要体现在以下两点:
1、面向任意粒度的任务划分,借助轻量级的列地址偏移转换,替代memorypadding 的形式,在不浪费片上内存空间的前提下,使计算阵列和DDR与片上数据交互时均无读 写冲突,读写请求平均响应时间短,实现了高效的流水;
2、对拥有不同访问步长的多个结构化数组进行分区,将流和数组绑定,通过流上的配置参数支持不同的地址转换规则,达到多数组并发访问均无冲突的效果;
3、使用静态配置的方式,实现低频次配置效果,降低了配置的能量消耗,通过流内复用参数,处理器访存和DRAM访存复用参数,实现了使用低开销、轻量级的配置参 数来实现地址转换,组建片上可配置便笺式缓存。
下面通过对比试验验证本发明的技术优势。
本发明主要提出一种面向粗粒度可重构阵列的显式静态可配置的便笺式片上存储架 构。对比一:将卷积、通用矩阵乘法、快速傅里叶变换等应用映射在使用本发明提出的使用16bank显式静态可配置的便笺式片上存储架构和16bank的Cache的粗粒度可重构 阵列处理器上,获得不同片上访存架构上算法执行的周期数。对比二:将本发明提出的 静态可配置的便笺式片上存储架构和Cache以及使用memory Padding的Shared Memory 对比来体现本发明的技术效果:
本文的测试应用用例包括了几个YOLOv3-tiny中典型的卷积层,卷积层的参数如表 2所示。稠密通用矩阵乘法计算两个宽和高均为512的矩阵相乘,单个任务处理矩阵的一个分块,通过多个阵列并行执行。快速傅里叶变换以256通道1维1024点的情况作 为测试用例。
表2典型卷积层尺寸
由于常规的Cache没有预取机制,其第一次访问会发生数据缺失,这对性能的影响非常严重,所以本文对比的Cache加入了预取和写回机制,主要是对比本发明提出的SPM 在消除多bank设计下bank冲突率所带来的性能提升。
通过执行时间来体现本发明的技术效果:使用上述配置方式,本文使用误差率在5% 以内的周期精确的模拟器仿真使用缓存和使用可配置便笺式存储器时不同应用的执行 时间。图5给出了不同应用在使用缓存时和使用本发明提出的可配置便笺式缓存时执行时间对比,根据统计,在卷积中,平均有20%左右的性能提升,对于通用矩阵乘法,有 着约15%的性能提升,而对于快速傅里叶变化,有着2.35倍的性能提升,这表明本发明 提出的可配置便笺式缓存在消除bank冲突上有着显著的效果,对于访存冲突严重的应 用,其性能提升的幅度越大。
通过和其他架构对比体现本发明的技术特点:Cache以缓存行的方式和DRAM进行数 据交互,所以任何情况下都没有访问上的bank冲突,但是在各种跨步访问下,其往往 都有bank冲突,在各种跨步访问情况下性能较差。Shared Memory通过memory padding 的方式来解决bank冲突,但是只能解决单一跨步访问的情况,在跨步可变的情况下, 会有处理器端到片上的缓存冲突,同时在非2幂次跨步的时候,由于padding导致了连 续的数据被分隔到不同行上,DRAM访问会有bank冲突。同时由于memory padding导致 了有一部分片上的空间是被浪费的,空间利用率低。本文提出的专利通过对数据分块和 数据块间偏移实现了各种跨步下都没有访存冲突(具体展示在第六节给出),同时不浪 费片上的空间,具体如表3所示。
表3 Cache,Shared Memory以及本文专利之间的对比
实施例2
本发明提出的可配置的便笺式存储器核心技术主要包括:以流的方式组织地址请求, 以显式可配置的方式来实现静态的地址重映射,通过将数据分块,对数据块间做偏移来 消除bank冲突。根据不同应用的访存特性,提出了对应的数据分块以及数据块间偏移方案来解决bank冲突的问题。
下面通过三个例子来说明本发明的通用性。
如图6所示,当使用系统计算卷积的时候,假设卷积的输入的特征图像的宽度和高度都为6,图像以行主序的方式存储在主存中,异构的计算系统采用的数据流需要同时 访问该输入特征图像的前四行,即数据的访问跨度为6。如图6的(a)中所示,左边的 图片展示了数据在Cache中的布局以及处理器想要的数据布局,如果采用传统的Cache, 将数据搬移到Cache中,其数据布局和主存中是一样的,而处理器想要访问的是数据的 前四行,其希望数据是以列主序的方式组织的。可以看到处理器想要的数据布局和Cache 能够提供的数据布局是冲突的,以访问数据3,9,15,21为例(图中灰色的数据),即 访问前四行的第3列的数据,在Cache的数据布局中,数据3和数据15,数据9和数据 21发生了bank冲突。
图的右边为本发明提出的数据布局方式,对于这样的跨步访问方式,可以观察到对 于Cache中数据的访问,数据两两发生冲突,将数据通过三行组织成一个数据块,第0 个数据块不移动,第1个数据块向右平移1格,超出右边界的数据补齐到原本的左边界 处。通过这样的移动,将对于数据3,9,15,21的请求偏移到了不同bank上,即该类 型的请求无bank冲突。同时可以看到将数据从主存顺序搬移到SPM中的时候,以连续 数据4,5,6,7为例,其分布在四个不同的bank上,即数据从主存中读取,然后写入 到SPM的过程中无bank冲突。
基于该数据布局,数据从主存顺序搬移到SPM中,处理器以跨度为6访问SPM中的数据的过程中都没有bank冲突,多bank设计的访存效率最高,所有数据的请求延时都 很短,在计算访存强耦合的异构计算处理器中保证了计算的进行。
而当使用处理器计算FFT的时候,假设FFT只包含32个点的数据,FFT通过5层蝶 形计算遍历访问32点的数据。FFT算法一次访问两个数据,更新两个数据,假设做了一 次展开,使其一次访问4个数据,那么第一次蝶形计算的跨度为8,第二次蝶形计算的 跨度为4。如图6b)中所示,以第一次蝶形计算中访问数据2,10,18,26为例,第二 次蝶形计算中访问数据0,4,8,12为例。使用传统的Cache的时候,在访问数据2, 10,18,26的时候,4个数据都在同一个bank的不同地址上,发生了bank冲突。而访 问数据0,4,8,12的时候,同样也发生了bank冲突。
图6(b)的右边为本发明提出的数据布局,对于跨步为8的跨步访问方式,我们将四行数据视作一个数据块,即前四行视作数据块0,后四行视作数据块1,将数据块1向 右平移一格可以解决。而对于跨步为4的跨步访问方式,我们将一行数据视作一个数据 块,对数据块0不做操作,对数据块1向右平移1格,对数据块2向右平移2格,对数 据块3向右平移3格。将这两种数据平移的方式结合起来,以更小的数据块粒度为基准, 其对应的移动的格数如列表中所示。可以看到,当访问数据2,10,18,26的时候,分 别分布在bank2,0,3,1上,没有bank冲突。当访问数据0,4,8,12的时候,其分 别分布在bank0,1,2,3上,没有bank冲突。这样的数据布局可以支持可变跨步的情 况,通过异址写回(处理器以跨度为8,4的数据布局访问,以跨度为4,2的数据布局 写回)可以在所有的蝶形计算中都做到没有bank冲突。同时从图中可以看到从主存顺 序搬移的数据也是落在不同的bank上,无bank冲突。
用处理器计算stencil-jacobi的时候,对于数据的访问不是简单的跨步访问。假设 该模板计算访问一个8×4的矩阵,矩阵的元素为从0递增的序列,每次访问矩阵中一 个点的上,下,左,右四个点的数据。如图6c)所示,以访问数据点5的周围数据1,4, 6,9为例,当使用Cache的数据布局时,访问数据1和9发生了bank冲突,而处理器 想要以一种没有bank冲突的方式的访问这四个数据。
图6(c)的右边为本发明提出的数据布局,以两行为一个数据块,数据块0不平移,数据块1向右平移1格,之后的数据块重复这样的循环。可以看到这样的平移方式可以 将对数据1和数据9的访问错开bank,同时和数据4,6也错开bank。这样对于数据1, 4,6,9的访问实现了无bank冲突。同时对于DRAM顺序写入到SPM的数据,以图中的 16,17,18,19为例,其写入的过程也没有bank冲突。
基于上述几种显式的地址重排布的方式,SPM支持以卷积和FFT为典型的任意跨步访问以及类似Stencil这样的特殊的访问方式。通过对地址请求的简单观察,总是可以 发现一种对数据块的划分和数据块的偏移规律。通过观察到的规律进行显式的地址重映 射,可以满足数据搬移到SPM和处理器访问SPM这两个过程中都没有bank冲突。这样 的显式地址重映射的方式有着很好的灵活性和扩展性,可以支持多种访存的模式。同时 该方案保证了SPM可以实现访存效率的最大化,对于计算访存高度耦合的异构处理器来 说,其减少了访存的延时以及保证了访存延时的一致性,使得粗粒度可重构阵列的计算 性能大大提升。综上,使用本发明提出的显式静态可配置的便笺式缓存使得缓存的访存 效率最大化,减少了每个访存请求的响应时间,提升了粗粒度可重构阵列的计算性能。
本发明提供了一种基于空间可重构阵列的便笺式缓存架构构建系统,包括:针对任 意划分粒度的任务,采用列地址重映射;对拥有不同访存步长的多个数组进行分区存放, 以流和数组绑定进行多数组并发访问;使用静态配置降低配置频次,采用配置参数进行 地址转换。
所述列地址重映射采用对数据进行分块,块内的数据共享一个偏移参数,块间通过 偏移错开访问的地址。通过分析和归纳应用的跨步访问特征,为非2幂次跨步访问,可变2幂次跨步访问以及其他跨步访问设计对应的分块策略和地址偏移策略。
数组分区存放,以流和数组绑定进行多数组并发访问包括:对不同访存特性的规律 数组在SPM中分区存放,通过逻辑空间到物理空间的映射实现分区,将处理器端/DRAM端到片上一个分区的访存定义为流,通过片上分区和按照流的方式组织访存,在分区内 只访问一个数组,确保数组间的访问没有交叠。
本发明还提供了一种可重构处理器,所述可重构处理器包含便笺式缓存架构,所述 便笺式缓存架构设计时采上述的基于空间可重构阵列的便笺式缓存架构构建方法。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改, 这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的 特征可以任意相互组合。
Claims (10)
1.一种基于空间可重构阵列的便笺式缓存架构构建方法,其特征在于,包括:针对任意划分粒度的任务,采用列地址重映射;对拥有不同访存步长的多个数组进行分区存放,以流和数组绑定进行多数组并发访问;使用静态配置降低配置频次,采用配置参数进行地址转换。
2.根据权利要求1所述的基于空间可重构阵列的便笺式缓存架构构建方法,其特征在于:所述列地址重映射采用对数据进行分块,块内的数据共享一个偏移参数,块间通过偏移错开访问的地址。
3.根据权利要求2所述的基于空间可重构阵列的便笺式缓存架构构建方法,其特征在于:通过分析和归纳应用的跨步访问特征,为非2幂次跨步访问,可变2幂次跨步访问以及其他跨步访问设计对应的分块策略和地址偏移策略。
4.根据权利要求1所述的基于空间可重构阵列的便笺式缓存架构构建方法,其特征在于:数组分区存放,以流和数组绑定进行多数组并发访问包括:
对不同访存特性的规律数组在SPM中分区存放,通过逻辑空间到物理空间的映射实现分区,将处理器端/DRAM端到片上一个分区的访存定义为流,通过片上分区和按照流的方式组织访存,在分区内只访问一个数组,确保数组间的访问没有交叠。
5.根据权利要求1所述的基于空间可重构阵列的便笺式缓存架构构建方法,其特征在于:使用静态配置的方式,采用配置参数来实现地址转换,包括:在计算任务开始时写入静态配置,降低配置频次,通过预取将数据进行重排,计算任务中,利用相同的配置进行处理器端的访存,实现配置共享。
6.一种基于空间可重构阵列的便笺式缓存架构构建系统,其特征在于:包括:针对任意划分粒度的任务,采用列地址重映射;对拥有不同访存步长的多个数组进行分区存放,以流和数组绑定进行多数组并发访问;使用静态配置降低配置频次,采用配置参数进行地址转换。
7.根据权利要求所述6的基于空间可重构阵列的便笺式缓存架构构建系统,其特征在于:所述列地址重映射采用对数据进行分块,块内的数据共享一个偏移参数,块间通过偏移错开访问的地址。
8.根据权利要求7所述的基于空间可重构阵列的便笺式缓存架构构建系统,其特征在于:通过分析和归纳应用的跨步访问特征,为非2幂次跨步访问,可变2幂次跨步访问以及其他跨步访问设计对应的分块策略和地址偏移策略。
9.根据权利要求6所述的基于空间可重构阵列的便笺式缓存架构构建系统,其特征在于:数组分区存放,以流和数组绑定进行多数组并发访问包括:
对不同访存特性的规律数组在SPM中分区存放,通过逻辑空间到物理空间的映射实现分区,将处理器端/DRAM端到片上一个分区的访存定义为流,通过片上分区和按照流的方式组织访存,在分区内只访问一个数组,确保数组间的访问没有交叠。
10.一种可重构处理器,其特征在于:所述可重构处理器包含便笺式缓存架构,所述便笺式缓存架构设计时采用权利要求1-5任一项所述的基于空间可重构阵列的便笺式缓存架构构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211345052.3A CN115630013A (zh) | 2022-10-31 | 2022-10-31 | 基于空间可重构阵列的便笺式缓存架构构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211345052.3A CN115630013A (zh) | 2022-10-31 | 2022-10-31 | 基于空间可重构阵列的便笺式缓存架构构建方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115630013A true CN115630013A (zh) | 2023-01-20 |
Family
ID=84909112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211345052.3A Pending CN115630013A (zh) | 2022-10-31 | 2022-10-31 | 基于空间可重构阵列的便笺式缓存架构构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115630013A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312330A (zh) * | 2023-11-29 | 2023-12-29 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
-
2022
- 2022-10-31 CN CN202211345052.3A patent/CN115630013A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312330A (zh) * | 2023-11-29 | 2023-12-29 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
CN117312330B (zh) * | 2023-11-29 | 2024-02-09 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107657581B (zh) | 一种卷积神经网络cnn硬件加速器及加速方法 | |
US11775802B2 (en) | Neural processor | |
CN111178519B (zh) | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 | |
Song et al. | C-Brain: A deep learning accelerator that tames the diversity of CNNs through adaptive data-level parallelization | |
KR100990902B1 (ko) | 멀티-프로세서 시스템을 위한 메모리 배열 | |
US8560795B2 (en) | Memory arrangement for multi-processor systems including a memory queue | |
Nakano | Simple memory machine models for GPUs | |
CN108733415B (zh) | 支持向量随机访存的方法及装置 | |
Carvalho | The gap between processor and memory speeds | |
CN111124675B (zh) | 一种面向图计算的异构存内计算设备及其运行方法 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
US7246215B2 (en) | Systolic memory arrays | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
CN112905530B (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
CN110705702A (zh) | 一种动态可扩展的卷积神经网络加速器 | |
CN115630013A (zh) | 基于空间可重构阵列的便笺式缓存架构构建方法及系统 | |
US9329834B2 (en) | Intelligent parametric scratchap memory architecture | |
CN103760525A (zh) | 一种补齐式原地矩阵转置方法 | |
CN109840306B (zh) | 一种基于递归的并行快速傅里叶变换通信优化方法和系统 | |
US20210255793A1 (en) | System and method for managing conversion of low-locality data into high-locality data | |
Langemeyer et al. | Using SDRAMs for two-dimensional accesses of long 2 n× 2 m-point FFTs and transposing | |
CN105373497A (zh) | 基于dsp芯片的矩阵转置装置 | |
CN104391676A (zh) | 一种低成本高带宽的微处理器取指方法及其取指结构 | |
US11816025B2 (en) | Hardware acceleration | |
CN113312285A (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 |