CN110383267A - 矩阵传输加速器系统和方法 - Google Patents

矩阵传输加速器系统和方法 Download PDF

Info

Publication number
CN110383267A
CN110383267A CN201880013544.8A CN201880013544A CN110383267A CN 110383267 A CN110383267 A CN 110383267A CN 201880013544 A CN201880013544 A CN 201880013544A CN 110383267 A CN110383267 A CN 110383267A
Authority
CN
China
Prior art keywords
data
ldm
edm
transferred
matrix
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.)
Granted
Application number
CN201880013544.8A
Other languages
English (en)
Other versions
CN110383267B (zh
Inventor
A·J·雷德芬
A·巴拉德瓦
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Priority to CN202410111920.4A priority Critical patent/CN117932202A/zh
Publication of CN110383267A publication Critical patent/CN110383267A/zh
Application granted granted Critical
Publication of CN110383267B publication Critical patent/CN110383267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Processing (AREA)

Abstract

矩阵传输加速器(MTA)(0111)系统/方法使用矩阵贴块和/或分组来协调外部数据存储器(EDM)(0130)和本地数据存储器(LDM)(0114)之间的数据传输。该系统利用前台/后台缓冲,该前台/后台缓冲重叠计算和数据传输操作,并允许具有或没有零填补外围矩阵填充的数据传输。该系统可以包含零填充直接存储器访问(DMA)控制器(ZDC),其基于包括数据宽度寄存器(DWR)、传输计数寄存器(TCR)、填充计数寄存器(FCR)、EDM源地址寄存器(ESR)和LDM目标地址寄存器(LTR)的DMA控制器寄存器组将数据从EDM(0130)传输到LDM(0114)。ZDC将数据从EDM(0130)ESR传输到LDM(0114)LTR,使得EDM数据基于FCR值自动地被零填充在写入到LDM矩阵的矩阵的外围周围。

Description

矩阵传输加速器系统和方法
技术领域
这通常涉及数据传输,更具体地涉及具有不同访问时间的数据存储器之间的大矩阵的移动。
发明内容
在所描述的示例中,矩阵传输加速器经由数据传输处理器将外部数据存储器与本地数据存储器接口连接。数据可以包括输入特征映射存储元件,诸如大特征映射存储元件。可以通过列贴块/瓦片(tile)过程从外部数据存储器或本地数据存储器传输数据。可以部分或整体地、逐列或逐行处理或传输数据。如果以增量方式进行,则增量可以增量步长增加,直到每个单独部分完成。也可以对不完整的或者具有不相等数据部分或存储元件的任何信息执行填补(padding)。
附图说明
图1说明了一个实施例的系统框图。
图2说明了CNN矩阵乘积计算,其中H滤波器系数乘数(FCM)、X输入特征映射滤波矩阵被乘数(IFM)和Y输出特征映射(OFM)包含在本地数据存储器(LDM)内。
图3说明了CNN矩阵乘积计算,其中H滤波器系数乘数(FCM)包含在本地数据存储器(LDM)中,并且X输入特征映射滤波矩阵被乘数(IFM)和Y输出特征映射(OFM)被处理为在本地数据存储器(LDM)内的贴块。
图4说明了CNN矩阵乘积计算,其中H滤波器系数乘数(FCM)和Y输出特征映射(OFM)被处理为包含在本地数据存储器(LDM)中的分组,并且X输入特征映射滤波矩阵被乘数(IFM)是完全地包含在本地数据存储器(LDM)中。
图5说明了大特征映射贴块的时间t=0视图,其中特征映射的2D概念视图也被描绘为存储器中的特征映射的1D存储(具有侧列填补的完整大特征映射描绘了在本地存储器中的128B块存储,具有128B对齐,用于有效的DRAM到本地存储器数据移动/从本地存储器数据移动)。
图6说明了大特征映射贴块的时间t=1视图,其中特征映射的2D概念视图也被描绘为存储器中的特征映射的1D存储(具有侧列填补的完整大特征映射描绘了在本地存储器中的128B块存储,具有128B对齐,用于有效的DRAM到本地存储器数据移动/从本地存储器数据移动)。
图7说明了大特征映射贴块的时间t=2视图,其中特征映射的2D概念视图也被描绘为存储器中的特征映射的1D存储(具有侧列填补的完整大特征映射描绘了在本地存储器中的128B块存储,具有128B对齐,用于有效的DRAM到本地存储器数据移动/从本地存储器数据移动)。
图8说明了大特征映射贴块的时间t=13视图,其中特征映射的2D概念视图也被描绘为存储器中的特征映射的1D存储(具有侧列填补的完整大特征映射描绘了在本地存储器中的128B块存储,具有128B对齐,用于有效的DRAM到本地存储器数据移动/从本地存储器数据移动)。
图9说明了描绘小特征映射无填补插入MTA系统实施例的操作的数据流程图。
图10说明了描绘小特征映射无填补插入MTA方法实施例的流程图。
图11说明了描绘第一小特征映射有填补插入MTA系统实施例的操作的数据流程图。
图12说明了描绘第一小特征映射有填补插入MTA方法实施例的流程图。
图13说明了描绘第二小特征映射有填补插入MTA系统实施例的操作的数据流程图。
图14说明了描绘第二小特征映射有填补插入MTA方法实施例的流程图。
图15说明了描绘第三小特征映射有填补插入MTA系统实施例的操作的数据流程图。
图16说明了描绘第三小特征映射有填补插入MTA方法实施例的流程图。
图17说明了用于没有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(参考图18-图21的四个数据移动象限图)。
图18说明了用于没有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(左上数据移动象限-4页中的第1页)。
图19说明了用于没有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(右上数据移动象限-4页中的第2页)。
图20说明了用于没有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的行部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(左下数据移动象限-4页中的第3页)。
图21说明了用于没有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(右下数据移动象限-4页中的第4页)。
图22说明了用于没有填补插入的大特征映射贴块的输出特征映射(OFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(参考图23-图24的两个部分数据移动图)。
图23说明了用于没有填补插入的大特征映射贴块的输出特征映射(OFM)数据移动示例图案,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(上部部分数据运动图-2页中的第1页)。
图24说明了用于没有填补插入的大特征映射贴块的输出特征映射(OFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(下部部分数据移动图-2页中的第2页)。
图25说明了用于具有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(参考图26-图29的四个数据移动象限图)。
图26说明了用于具有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(左上数据移动象限-4页中的第1页)。
图27说明了用于具有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(右上数据移动象限-4页中的第2页)。
图28说明了用于具有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(左下数据移动象限-4页中的第3页)。
图29说明了用于具有填补插入的大特征映射贴块的输入特征映射(IFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(右下数据移动象限-4页中的第4页)。
图30说明了用于具有填补插入的大特征映射贴块的输出特征映射(OFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(参考图31-图32的两个部分数据移动图)。
图31说明了用于具有填补插入的大特征映射贴块的输出特征映射(OFM)数据移动示例模式,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(上部部分数据移动图-2页中的第1页)。
图32说明了用于具有填补插入的大特征映射贴块的输出特征映射(OFM)数据移动示例图案,该填补插入结合LDM中的部分存储与128B对齐,用于有效的EDM到LDM数据移动,其减少了本地存储器需求并且结合了前台/后台数据移动/计算周期(下部部分数据移动图-2页中的第2页)。
图33说明了没有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输入特征映射(IFM)的流程图(2页中的第1页)。
图34说明了没有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输入特征映射(IFM)的流程图(2页中的第2页)。
图35说明了没有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输出特征映射(OFM)的流程图(2页中的第1页)。
图36说明了没有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输出特征映射(OFM)的流程图(2页中的第2页)。
图37说明了具有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输入特征映射(IFM)的流程图(2页中的第1页)。
图38说明了具有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输入特征映射(IFM)的流程图(2页中的第2页)。
图39说明了具有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输出特征映射(OFM)的流程图(2页中的第1页)。
图40说明了具有填补插入矩阵传输加速器(MTA)操作序列的大特征映射(LFM)输出特征映射(OFM)的流程图(2页中的第2页)。
图41说明了详细描述在一些实施例中有用的自动零填充(zero-fill)DMA控制器(ZDC)的系统框图。
图42说明了详细描述在一些实施例中有用的自动零填充DMA控制器(ZDC)的逻辑图。
图43说明了详细描述在一些实施例中有用的替代的自动零填充DMA控制器(ZDC)的逻辑图。
图44说明了描绘零填充DMA控制器(ZDC)方法的流程图。
图45说明了在一些实施例中有用的集成零填充插入DMA控制器的结构的数据流程图。
图46说明了描绘自动并行零填充DMA控制器(ZDC)方法(3个并行过程中的并行过程1)的流程图。
图47说明了描绘自动并行零填充DMA控制器(ZDC)方法(3个并行过程中的并行过程2)的流程图。
图48说明了描绘自动并行零填充DMA控制器(ZDC)方法(3个并行过程中的并行过程3)的流程图。
具体实施方式
数据宽度
在许多系统实施例中,外部存储器总线(EMB)使用的数据总线宽度将是128字节(128B),但是这不是对示例实施例的范围的限制。附加地,为了简化呈现,本文包含的示例针对128B数据对齐边界、128B最小外部数据存储器(EDM)到本地数据存储器(LDM)传输长度以及64B LDM计算长度进行说明。这些值是示例,并且所提出的技术同样适用于其他数据总线宽度。存储器可以包括任何易失性、非易失性、磁性或电子介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性RAM(NVRAM)、电可擦除可编程ROM(EEPROM)、闪存、硬盘或任何其他数字媒体。
处理数据
示例实施例可以在集成矩阵乘法单元(MMU)的上下文中操作,其中使用各种点矩阵数学原函数将矢量和/或矩阵相乘在一起,其中一些在结合本专利申请的参考文献中详述。因此,短语“处理数据”可以指代这些矩阵运算,其可以利用存储在本地数据存储器(LDM)内的数据贴块或数据分组作为这些变化的数学矩阵运算符的自变量。
矩阵行符号
本文可以使用符号MATRIX[row,*]或MATRIX(row,*)来表示矩阵行(或其部分)以表示特定行内的所有列,或者在某些情况下等效地表示给定行内的列的一部分(贴块或分组)。替代地,也可以用特定列内的所有行来指示列,或者在某些情况下等效地用给定列内的行的一部分(贴块或分组)来指示列。
FSM实施方式
可以使用有限状态机(FSM)硬件逻辑来实施示例实施例。在该说明书中,流程图详细描述了与这些FSM的各个方面相关联的操作步骤。
系统概述(0100)
图1(0100)中总体上描绘了示例实施例的应用上下文概述,其中矩阵计算引擎(MCE)(0110)经由外部数据存储器(EDM)(0130)和外部数据存储器总线(0140)被接口连接到应用控制逻辑(ACL)或CPU(0120)。矩阵传输加速器(MTA)(0111)通常包含一个或更多个数据传输处理器(DTP)(0112),它们经由内部本地存储器总线(LMB)(0113)在EDM(0130)和本地数据存储器(LDM)(0114)之间执行数据传输。矩阵传输加速器(MTA)(0111)协调DTP(0112)处理器的整体操作以及EMB(0130)和允许访问MCE(0110)内的本地数据存储器(LDM)(0114)的内部本地存储器总线(LMB)(0113)之间的接口连接。在该示例应用上下文中,EDM(0130)可以包括大量的动态随机存取存储器(DRAM),而LDM可以包括更少量的更快的静态随机存取存储器(SRAM),其在许多实施例中可以是完全的寄存式的RAM。
MCE(0110)通常在LDM(0114)和矩阵乘法器单元(MMU)(0116)或负责用于对LDM(0114)中含有的数据执行高速算术运算或其他功能的其他硬件加速器之间包含内部数据或控制路径(IDP)(0115)。整个MCE(0110)算术加速器的控制由矩阵计算/传输控制逻辑(MCT)(0117)提供,该逻辑通常使用实施一个或更多个有限状态机(FSM)(0118)的寄存式的逻辑来构造,该一个或更多个有限状态机(FSM)(0118)被配置为控制系统的整体功能,并顺序地执行与EDM(0130)和LDM(0114)之间的数据传输相关联的操作。如图1(0100)中所描绘的,在一些实施例中,MCT(0117)功能可以被集成(集成矩阵控制逻辑MCL(0150))在一个或更多个数据传输处理器(DTP)(0112)内,该一个或更多个数据传输处理器(DTP)(0112)体现在整个矩阵传输加速器(MTA)(0111)功能内。在该组合配置中,一个或更多个数据传输处理器(DTP)(0112)提供EDM(0130)和LDM(0114)之间的数据传输的总体控制。
如所指示的,MCE(0110)和/或ACL(0120)可以包含有形的非暂时性计算机可读介质(0119、0129),其含有的机器指令,诸如(便携式或内部安装的)硬盘驱动器盘、闪存驱动器、光盘、DVD、zip驱动器、软盘、光学介质、磁介质或任何其他数量的可能驱动器或盘,分别由MCE(0110)和ACL(0120)的内部逻辑来执行。
示例实施例可以在各种应用上下文中实施,其中集成电路(IC)片上系统(SOC)可以包含紧密地或松散地耦合的MTA,其接口连接到主机ACL/CPU硬件、DRAM存储器存储以及各种外围接口。
CNN应用上下文-贴块和分组(0200)-(0400)
本文依据如图2(0200)-图4(0400)中一般性描绘的应用上下文来描述示例实施例,但是示例实施例的技术不限于该应用上下文。本文描述的应用上下文涉及使用MCE来处理卷积神经网络(CNN)。
卷积神经网络(CNN)用于分类,并且可以用于与视觉、语音、健康/健身、控制和其他应用相关的各种应用(并且通常是其最佳的执行方法)。使CNN在计算设备上快速运行的关键是(a)提供大量基于矩阵的计算能力以及(b)有效的数据移动。遗憾的是,由于针对优选效率的存储器对齐和传输长度限制,以及针对数据可用性和对齐的算法要求,各种约束使得有效的数据移动变得困难。
示例实施例可以提供用于有效数据移动的系统/方法,其满足由各种算法上下文所述的存储器对齐、传输长度和算法要求,包括处理CNN数据和可以在MCE上运行的其他算法的算法上下文。在图2(0200)中提供了描绘CNN上下文中的数据移动概念的示例,其中Y输出特征映射(OFM)(0230)被计算为H滤波器系数乘数(FCM)(0210)和X输入特征映射滤波矩阵被乘数(IFM)(0220)(从X导出的输入特征映射滤波矩阵)的乘积。在该示例中,如果所有FCM(0210)或所有IFM(0220)都适合LDM,则不需要多余的数据移动,因为FCM(0210)和IFM(0220)可以被加载并且MMU被激活以产生FCM(0210)和IFM(0220)的矩阵乘积,并将乘积存储在OFM(0230)中。由于FCM(0210)或IFM(0220)的大小超过LDM的容量,因此这种方法已经不可能了,因为需要对EDM进行多次数据访问以处理OFM(0230)乘积,这可能涉及从EMB到LMB的非优选数据传输。
图3(0300)中描绘了这种情况的一种变化,其中输入特征映射IFM(0320)大于可用的LDM存储,导致大的OFM(0330)乘积也大于可用的LDM存储。如果所有FCM(0310)都适合本地存储器,则输入特征映射贴块可用于降低IFM(0320)的LDM要求。这种贴块技术对于大的IFM(0320)数据集是有用的,因为这允许IFM(0320)贴块从EDM中被顺序地加载并且重叠与MMU以及OFM(0330)乘积贴块的结果相关联的计算周期。
在图4(0400)中描绘了这种情况的另一种变化,其中FCM(0410)大于可用的LDM存储,导致大的OFM(0430)乘积也大于可用的LDM存储。如果所有输入特征映射IFM(0420)都适合本地存储器,那么输出特征映射分组可用于降低FCM(0410)的LDM要求。该分组技术对于具有许多通道的小的IFM(0420)数据集是有用的,因为这允许FCM(0410)分组从EDM被顺序地加载并且重叠与MMU以及OFM(0430)乘积分组的结果相关联的计算周期。
处理大特征映射贴块的问题(0500)-(0800)
通过检查图5(0500)-图8(0800)中提供的数据传输图来观察通常与处理特征映射矩阵(FMM)中的大特征映射贴块相关联的数据传输低效率,其中呈现了与时间t=0(图5(0500))、t=1(图6(0600))、t=2(图7(0700))以及t=13(图8(0800))的贴块处理相关联的数据传输。在这些示例的每个中,已经用零条目的左零填补/左补零(Lpad)和右零填补/右补零(Rpad)列对FMM进行了扩充。在某些情况下,使用其他非零数据值的等效填补也是可能的。在该示例中,在时间t=0(图5(0500))和t=13(图8(0800))处,Lpad列和Rpad列作为MCE计算中使用的特定数据的一部分被访问。
此处可以看出,分别表示t=0、t=1、t=2和t=13的时间戳的列(0501、0602、0703、0814)的EDM数据访问是使得它们交叉被存储在EDM中的数据的行/列128B组块(chunk)。这将导致从EDM检索的每个数据的EMB总线访问次数加倍,从而严重损害MCE的整体性能,因为数据传输相对于计算操作的优势意味着MCE计算功能将由进出EDM的数据传输所支配。虽然所提供的示例假设EMB数据宽度为128字节(128B),但这仅是许多可能的EMB总线数据宽度的一个示例。
小特征映射/无填补插入(0900)-(1000)
图9(0900)详细描述了描绘实施没有填补插入的小特征映射的示例操作的数据流程图。在该MTA实施例中,IFM可能已经或可能没有填补。在该序列中,数据和功能如下操作。执行将所有输入特征映射(IFM)从EDM到LDM进行1D至1D传输,以便将所有IFM数据加载到LDM中。
输出特征映射(OFM)矩阵乘积和滤波器系数矩阵乘数(FCM)以前台/后台ping/pong(乒乓)方式被存储在LDM中,使得当OFM-fore被填充有FCM-fore*IFM的计算乘积时,先前的矩阵乘法乘积OFM-back被存储在EDM中,并且正在从EDM读取FCM数据的下一个贴块并存储在FCM-back中。在完成计算OFM-fore=FCM-fore*IFM后,以ping-pong方式交换OFM-fore/OFM-back和FCM-fore/FCM-back的存储器指针,以允许计算/数据传输操作在下一个MMU机器周期期间重叠。以这种方式,在MMU计算周期完成之后,不会在等待存储到EDM存储器或从EDM存储器检索上浪费时间。
在生成MMU乘积之后,所产生的OFM乘积将具有需要被移除的接缝,或者替代地必须在OFM矩阵数据的边界周围插入零。如果在将来的计算中使用所得数据,则插入零可以消除在下一个计算周期期间所需的任何预处理。根据发生的条件,OFM数据在使用从LDM到EDM的OFM的1D至1D ping/pong传输被写回到EDM之前被修改/扩充。插入零存在一个小缺点,即这增加了需要从LDM移动到EDM(该层)和从EDM移动到LDM(下一层)的数据量。然而,如果在MMU架构或监督ACL/CPU中没有可用的有效方法,则此方法可能比必须进行零插入更有效。
如图10(1000)的流程图中一般描绘的,与图9(0900)中的系统数据流描述一致,一种示例方法可以广义地概括为没有填补插入MTA方法的小特征映射,该方法包括:
(1)执行将所有输入特征映射(IFM)从EDM到LDM进行1D至1D数据传输(1001);
(2)与步骤(2)-(5)同时,执行从EDM到LDM的新的或下一个滤波器系数矩阵(FCM)的1D至1D数据传输(1002);
(3)与步骤(2)-(5)同时,将先前计算的输出特征映射矩阵(OFM)(OFM-back)从LDM传输到EDM(1003);
(4)与步骤(2)-(5)同时,利用矩阵乘法器单元(MMU),计算OFM-fore=FCM-fore*IFM-fore的矩阵乘积(1004);
(5)交换前台/后台ping/pong存储器指针(1005);
(6)确定下一个OFM层是否需要填补,如果是,则进行到步骤(8)(1006);
(7)从OFM移除接缝并前进到步骤(9)(1007);
(8)在OFM中插入零(1008);
(9)确定是否已经处理了所有FCM贴块,如果否,则进行到步骤(2)(1009);以及
(10)终止MTA方法(1010)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
具有填补插入的第一小特征映射(1100)-(1200)
图11(1100)详细描述了描绘实施具有填补插入的小特征映射的第一操作的数据流程图。在该MTA实施例中,IFM可能已经或可能没有填补。在该序列中,数据和功能如下操作。执行将所有输入特征映射(IFM)从EDM到LDM进行2D至2D传输,以便将所有IFM数据加载到LDM中,在LDM中留下用于零填充的空间,这可以使用直接存储器访问(DMA)控制器和/或MMU内的功能来完成。
输出特征映射(OFM)矩阵乘积和滤波器系数矩阵乘数(FCM)以前台/后台ping/pong方式被存储在LDM中,使得当OFM-fore被填充有FCM-fore*IFM的计算乘积时,先前的矩阵乘法乘积OFM-back被存储在EDM中,并且正在从EDM读取FCM数据的下一个贴块并存储在FCM-back中。在完成计算OFM-fore=FCM-fore*IFM后,以ping-pong方式交换OFM-fore/OFM-back和FCM-fore/FCM-back的存储器指针,以允许计算/数据传输操作在下一个MMU机器周期期间重叠。以这种方式,在MMU计算周期完成之后,在等待存储到EDM存储器或从EDM存储器检索上不会浪费时间。
在生成MMU乘积之后,产生的OFM乘积将具有需要被移除的接缝,或者替代地必须在OFM矩阵数据的边界周围插入零。如果在将来的计算中使用所得的数据,则插入零可以消除在下一个计算周期期间所需的任何预处理。根据发生的条件,OFM数据在使用从LDM到EDM的OFM的1D至1D ping/pong传输被写回到EDM之前被修改/扩充。插入零存在一个小缺点,即这增加了需要从LDM移动到EDM(该层)和从EDM移动到LDM(下一层)的数据量。然而,如果在MMU架构或监督ACL/CPU中没有可用的有效方法,则此方法可能比必须进行零插入更有效。在一些情况下,由于在读取访问期间EDM中的边界交叉,从EDM到LDM的IFM的2D-2D传输可能是低效的。
如图12(1200)的流程图中大体上描绘的,并且与图11(1100)中的系统数据流描述一致,一种示例方法可以广义地概括为具有填补插入MTA方法的第二小特征映射,该方法包括:
(1)执行将所有输入特征映射(IFM)从EDM到LDM进行2D至2D数据传输,在LDM中留下用于使用DMA控制器或MMU功能来完成的零填充的空间(1201);
(2)与步骤(2)-(5)同时,执行从EDM到LDM的新的或下一个滤波器系数矩阵(FCM)的1D至1D数据传输(1202);
(3)与步骤(2)-(5)同时,将先前计算的输出特征映射矩阵(OFM)(OFM-back)从LDM传输到EDM(1203);
(4)与步骤(2)-(5)同时,利用矩阵乘法器单元(MMU),计算OFM-fore=FCM-fore*IFM-fore的矩阵乘积(1204);
(5)交换前台/后台ping/pong存储器指针(1205);
(6)确定下一个OFM层是否需要填补,如果是,则进行到步骤(8)(1206);
(7)从OFM移除接缝并前进到步骤(9)(1207);
(8)在OFM中插入零(1208);
(9)确定是否已经处理了所有FCM贴块,如果否,则进行到步骤(2)(1209);以及
(10)终止MTA方法(1210)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
具有填补插入的第二小特征映射(1300)-(1400)
图13(1300)详细描述了描绘实施具有填补插入的小特征映射的第二操作的数据流程图。在该MTA实施例中,IFM可能已经或可能没有填补。在该序列中,数据和功能如下操作。执行将所有输入特征映射(IFM)在EDM和LDM之间进行1D至1D数据传输。执行将所有输入特征映射(IFM)从LDM到LDM进行后续2D至2D传输,以便将所有IFM数据加载到LDM中,在LDM中留下空间用于零填充,这可以使用直接存储器访问(DMA)控制器和/或MMU内的功能来完成。
输出特征映射(OFM)矩阵乘积和滤波器系数矩阵乘数(FCM)以前台/后台ping/pong方式被存储在LDM中,使得当OFM-fore被填充有FCM-fore*IFM的计算乘积时,先前的矩阵乘法乘积OFM-back被存储在EDM中,并且正在从EDM读取FCM数据的下一个贴块并存储在FCM-back中。在完成计算OFM-fore=FCM-fore*IFM后,以ping-pong方式交换OFM-fore/OFM-back和FCM-fore/FCM-back的存储器指针,以允许计算/数据传输操作在下一个MMU机器周期期间重叠。以这种方式,在MMU计算周期完成之后,在等待存储到EDM存储器或从EDM存储器检索上不会浪费时间。
在生成MMU乘积之后,产生的OFM乘积将具有需要被移除的接缝,或者替代地必须在OFM矩阵数据的边界周围插入零。如果在将来的计算中使用所得的数据,则插入零可以消除在下一个计算周期期间所需的任何预处理。根据发生的条件,OFM数据在使用从LDM到EDM的OFM的1D至1D ping/pong传输被写回到EDM之前被修改/扩充。插入零存在一个小缺点,即这增加了需要从LDM移动到EDM(该层)和从EDM移动到LDM(下一层)的数据量。然而,如果在MMU架构或监督ACL/CPU中没有可用的有效方法,则此方法可能比必须进行零插入更有效。在一些情况下,由于在读/写访问期间LDM中的边界交叉,从LDM到LDM进行的IFM的2D-2D传输可能是低效的。
如图14(1400)的流程图中大体上描绘的,与图13(1300)中的系统数据流描述一致,一种示例方法可以广义地概括为具有填补插入MTA方法的第二小特征映射,该方法包括:
(1)执行将所有输入特征映射(IFM)从EDM到LDM进行1D至1D数据传输(1401);
(2)执行将所有输入特征映射(IFM)从LDM到LDM进行2D至2D数据传输,在LDM中留下用于使用DMA控制器或MMU功能来完成的零填充的空间(1402);
(3)与步骤(3)-(6)同时,执行从EDM到LDM的新的或下一个滤波器系数矩阵(FCM)的1D至1D数据传输(1403);
(4)与步骤(3)-(6)同时,将先前计算的输出特征映射矩阵(OFM)(OFM-back)从LDM传输到EDM(1404);
(5)与步骤(3)-(6)同时,利用矩阵乘法器单元(MMU),计算OFM-fore=FCM-fore*IFM-fore的矩阵乘积(1405);
(6)交换前台/后台ping/pong存储器指针(1406);
(7)确定下一个OFM层是否需要填补,如果是,则进行到步骤(9)(1407);
(8)从OFM移除接缝并前进到步骤(10)(1408);
(9)在OFM中插入零(1409);
(10)确定是否已经处理了所有FCM贴块,如果否,则进行到步骤(3)(1410);以及
(11)终止MTA方法(1411)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤3-6同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
具有填补插入的第三小特征映射(1500)-(1600)
图15(1500)详细描述了描绘实施具有填补插入的小特征映射的第二操作的数据流程图。在该MTA实施例中,IFM可能已经或可能没有填补。在该序列中,数据和功能如下操作。执行将所有输入特征映射(IFM)从EDM到LDM进行1D至1D的传输,以便将所有IFM数据加载到LDM中。这种数据传输通过自动零填充DMA控制器被扩充,当将IFM数据存储在LDM中时,该自动零填充DMA控制器自动提供用于IFM目标LDM地址的重映射和IFM边界的零填充。
输出特征映射(OFM)矩阵乘积和滤波器系数矩阵乘数(FCM)以前台/后台ping/pong方式被存储在LDM中,使得当OFM-fore被填充有FCM-fore*IFM的计算乘积时,先前的矩阵乘法乘积OFM-back被存储在EDM中,并且正在从EDM读取FCM数据的下一个贴块并存储在FCM-back中。在完成计算OFM-fore=FCM-fore*IFM后,以ping-pong方式交换OFM-fore/OFM-back和FCM-fore/FCM-back的存储器指针,以允许计算/数据传输操作在下一个MMU机器周期期间重叠。以这种方式,在MMU计算周期完成之后,在等待存储到EDM存储器或从EDM存储器检索上不会浪费时间。
在生成MMU乘积之后,产生的OFM乘积将具有需要被移除的接缝,或者替代地必须在OFM矩阵数据的边界周围插入零。如果在将来的计算中使用所得的数据,则插入零可以消除在下一个计算周期期间所需的任何预处理。根据发生的条件,OFM数据在使用从LDM到EDM的OFM的1D至1D ping/pong传输被写回到EDM之前被修改/扩充。插入零存在一个小缺点,即这增加了需要从LDM移动到EDM(该层)和从EDM移动到LDM(下一层)的数据量。然而,如果在MMU架构或监督ACL/CPU中没有可用的有效方法,则此方法可能比必须进行零插入更有效。在一些情况下,由于在读取访问期间EDM中的边界交叉,从EDM到LDM的IFM的2D-2D传输可能是低效的。
如图16(1600)的流程图中一般描绘的,与图15(1500)中的系统数据流描述一致,一种示例方法可以广义地概括为具有填补插入MTA方法的第三小特征映射,该方法包括:
(1)执行将所有输入特征映射(IFM)从EDM到LDM进行1D至1D数据传输,其中数据传输由自动零填充DMA控制器所扩充,当将IFM数据存储在LDM中时,该自动零填充DMA控制器自动提供用于IFM目标LDM地址的重映射和IFM边界的零填充(1601);
(2)与步骤(2)-(5)同时,执行将新的或下一个滤波器系数矩阵(FCM)从EDM到LDM的1D至1D数据传输(1602);
(3)与步骤(2)-(5)同时,将先前计算的输出特征映射矩阵(OFM)(OFM-back)从LDM传输到EDM(1603);
(4)与步骤(2)-(5)同时,利用矩阵乘法器单元(MMU),计算OFM-fore=FCM-fore*IFM-fore的矩阵乘积(1604);
(5)交换前台/后台ping/pong存储器指针(1605);
(6)确定下一个OFM层是否需要填补,如果是,则进行到步骤(8)(1606);
(7)从OFM移除接缝并前进到步骤(9)(1607);
(8)在OFM中插入零(1608);
(9)确定是否已经处理了所有FCM贴块,如果否,则进行到步骤(2)(1609);以及
(10)终止MTA方法(1610)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
大特征映射贴块/无填补插入(1700)-(2400)
在图17(1700)-图24(2400)中大体上描绘了用于大特征映射贴块的优化数据移动模式,其中没有填补插入以及使用128B对齐在本地存储器中的部分存储以用于有效EDM到LDM数据移动。图17(1700)-图21(2100)描绘了优化的输入特征映射数据移动示例,以及图22(2200)-图24(2400)描绘了优化的输出特征映射数据移动示例。该矩阵传输架构提供降低的LDM要求和在MCE中重叠的计算/数据传输功能。所描绘的数据传输映射目标是EDM和LDM之间的128字节数据传输,但是可以应用于任何大小的数据传输或EDM/LDM数据总线宽度。
具有填补插入的大特征映射贴块(2500)-(3200)
在图25(2500)-图32(3200)中大体上描绘了用于大特征映射贴块的优化数据移动模式,其中具有填补插入以及使用128B对齐在本地存储中的部分存储以用于有效EDM到LDM数据移动。图25(1700)-图29(2900)描绘了优化的输入特征映射数据移动示例,以及图30(3000)-图32(3200)描绘了优化的输出特征映射数据移动示例。该矩阵传输架构提供降低的LDM要求和在MCE中重叠的计算/数据传输功能。所描绘的数据传输映射目标是EDM和LDM之间的128字节数据传输,但是可以应用于任何大小的数据传输或EDM/LDM数据总线宽度。
没有填补插入的LFM数据传输(3300)-(3600)
图33(3300)-图36(3600)描绘了关于没有填补插入的一般大特征映射(LFM)数据传输的附加实施方式细节。这些操作流程图可以使用传统的硬件有限状态机(FSM)逻辑优选地在如图1(0100)中大致所描述的矩阵计算/传输控制(MCT)逻辑(0117)内实施。
没有填补插入的IFM数据移动(3300)-(3400)
图33(3300)-图34(3400)描绘了与具有对应于图17(1700)-图21(2100)中所描绘的数据移动图的无填充插入的优化的输入特征映射(IFM)数据移动相关联的示例方法。该MTA方法通常包括以下操作,这些操作可以经由硬件逻辑或经由适当配置的FSM逻辑硬件中的方法步骤来实施:
(1)初始化列贴块处理计数器(C=0)(3301);
(2)将LFM[*,C]的列贴块从EDM传输到LDM(3302);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块中的数据(3303);
(4)将LFM[*,C+1]的列贴块从EDM传输到LDM(3304);
(5)增量列贴块计数器(C=C+1)(3405);
(6)与操作步骤(7)同时,处理存储在LDM中的LFM的相邻列贴块的前半部分中的数据(LDM[*,C-1]和LDM[*,C])(3406);
(7)与操作步骤(6)同时,将LFM[*,C+1]的列贴块从EDM传输到LDM(3407);
(8)处理存储在LDM中的LFM的相邻列贴块的后半部分中的数据(LDM[*,C-1]和LDM[*,C])(3408);
(9)确定所有列贴块处理是否完成,如果否,则进行到步骤(5)(3409);以及
(10)终止MTA控制的矩阵数据传输(3410)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
没有填补插入的OFM数据移动(3500)-(3600)
图35(3500)-图36(3600)描绘了与具有对应于图22(2200)-图24(2400)中所描绘的数据移动图的无填补插入的优化的输出特征映射(OFM)数据移动相关联的示例方法。该MTA方法通常包括以下操作,这些操作可以经由硬件逻辑或经由适当配置的FSM逻辑硬件中的方法步骤来实施:
(1)初始化列贴块处理计数器(C=0)(3501);
(2)处理存储在LDM中的LFM[*,C]的第一列贴块的前半部分中的Lpad和部分数据(3502);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块的后半部分中的数据(3503);
(4)增量列贴块计数器(C=C+1)(3604);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM[*,C]的列贴块的前半部分中的数据(3605);
(6)与操作步骤(5)同时,将LFM[*,C-1]的列贴块从LDM传输到EDM(3606);
(7)处理存储在LDM中的LFM[*,C]的列贴块的后半部分中的数据(3607);
(8)确定是否已经处理了LDM中所有LFM贴块数据(包括与Rpad相邻的部分贴块数据),如果否,则进行到步骤(10)(3808);
(9)将LFM[*,C]的最后一列贴块从LDM传输到EDM(3809);
(10)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(3610);以及
(11)终止MTA控制的矩阵数据传输(3611)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
具有填补插入的LFM数据传输(3700)-(4000)
图37(3700)-图40(4000)描绘了关于具有填补插入的一般大特征映射(LFM)数据传输的附加实施方式细节。这些操作流程图可以使用传统的硬件有限状态机(FSM)逻辑在如图1(0100)中大致所描绘的矩阵计算/传输控制(MCT)逻辑(0117)内优选地实施。
具有填补插入的IFM数据移动(3700)-(3800)
图37(3700)-图38(3800)描绘了与具有对应于25(2500)-图29(2900)中描绘的数据移动图的填补插入的优化的输入特征映射(IFM)数据移动相关联的示例方法。该MTA方法通常包括以下操作,这些操作可以经由硬件逻辑或经由适当配置的FSM逻辑硬件中的方法步骤来实施:
(1)初始化列贴块处理计数器(C=0)(3701);
(2)填补存储在LDM中的LFM[*,C]的左列贴块(Lpad)(3702);
(3)将LFM[*,C]的列贴块从EDM传输到LDM(3703);
(4)增量列贴块计数器(C=C+1)(3804);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM的相邻列贴块的前半部分中的数据(LDM[*,C-1]和LDM[*,C])(3805);
(6)与操作步骤(5)同时,将LFM[*,C+1]的列贴块从EDM传输到LDM(3806);
(7)处理存储在LDM中的LFM的相邻列贴块的后半部分中的数据(LDM[*,C-1]和LDM[*,C])(3807);
(8)确定所有LFM贴块数据是否都已传输到LDM,如果否,则进行到步骤(10)(3808);
(9)填补存储在LDM中的LFM[*,C]的右列贴块(Rpad)(3809);
(10)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(3810);以及
(11)终止MTA控制的矩阵数据传输(3811)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
具有填补插入的OFM数据移动(3900)-(4000)
图39(3900)-图40(4000)描绘了与具有对应于图30(3000)-图32(3200)中描绘的数据移动图的填补插入的优化的输出特征映射(OFM)数据移动相关联的示例方法。该MTA方法通常包括以下操作,这些操作可以经由硬件逻辑或经由适当配置的FSM逻辑硬件中的方法步骤来实施:
(1)初始化列贴块处理计数器(C=0)(3901);
(2)处理存储在LDM中的LFM[*,C]的第一列贴块的前半部分中的数据(3902);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块的后半部分中的数据(3903);
(4)增量列贴块计数器(C=C+1)(4004);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM[*,C]的列贴块的前半部分中的数据(4005);
(6)与操作步骤(5)同时,将LFM[*,C-1]的列贴块从LDM传输到EDM(4006);
(7)处理存储在LDM中的LFM[*,C]的列贴块的后半部分中的数据(4007);
(8)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(4008);以及
(9)终止MTA控制的矩阵数据传输(4009)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
零填充DMA控制器(ZDC)(4100)-(4800)
概述
在示例实施例中,可以实施自动零填充DMA控制器(ZDC)以允许数据从EDM到LDM(或在LDM和LDM之间)的快速传输,使得数据可以从源EDM地址传输(或者替代地,LDM地址)到目标LDM地址,使得当最终存储在LDM中时,EDM/LDM存储中的源矩阵在其矩阵外围周围用填充数据(通常为零填充,但可以是任何固定数据模式)进行扩充。
在以下描述和附图41(4100)-图48(4800)中,系统/方法同样可以应用于矩阵被存储在LDM中然后被传输到LDM内的另一个地址并用零填充外围扩充的情况。相应地,可以实施以下任何描述的系统/方法的变体,并且这些变体在EDM/EMB被LDM/LMB替换的示例实施例的范围内,使得所有数据传输和零填充发生在LDM内。
此外,尽管ZDC主要使用LDM矩阵外围的零填充来实施,但是一些实施例可以利用非零或其他定义的填充值,并且这些变体将被称为使用填补来填充DMA控制器(PDC)实施的填补填充或填补填充实施例。这些填补填充技术可以应用于下面描述的任何实施例。
系统功能(4100)
在图41(4100)中大体上描绘了这种ZDC的示例系统框图,其中零填充DMA控制器(ZDC)(4110)在ZDC(4110)的控制下经由数据传输接口逻辑(DTL)(4140)将EDM存储装置(4120)接口连接到LDM存储装置(4130)。本文可以看出,源EDM贴块(4121)从EDM存储装置(4120)通过DTL(4140)传输并且被放置在LDM存储装置(4130)中作为用零填充(或其他固定填充)边界(4132)包围的目标LDM存储器段(4131)。
根据与源EDM地址(4114)相关的数据宽度(4111)和传输计数(4112)来描述源EDM块(4121)。从EDM(4120)到LDM(4130)的数据传输依据给定的数据宽度(4111)(数据行宽度,以字节为单位)传输来自源EDM地址(4114)的数据,并且依据具有相同的数据宽度(4111)和传输计数(4112)的LDM目标地址(4115)将计数(4112)(数据行数)传输到LDM(4130)。当将源EDM贴块(4121)从EDM(4120)传输到LDM(4130)时,零填充(或其他固定值)数据的填充计数(4112)也被写入LDM(4130),以创建围绕目标LDM贴块(4131)的固定填充数据的边界框(4132)。
逻辑实施方式(4200)
图42(4200)中大体上描绘了图41(4100)所说明的功能的示例实施方式的逻辑框图。此处可以看出,零填充DMA控制器(ZDC)(4210)被配置有数据宽度寄存器(DWR)(4211)、传输计数寄存器(TCR)(4212)、填充计数寄存器(FCR)(4213)、EDM源地址寄存器(ESR)(4214)和LDM目标地址寄存器(LTR)(4215),其可经由ACL/CPU访问,使得写入TCR(4212)触发对DWR(4211)、TCR(4212)、FCR(4213)、ESR(4214)和LTR(4215)的解释,以自动地将数据从EDM(4220)传输到LDM(4230)。
ZDC(4210)维持内部逻辑以强制在特定EDM地址(4221)处读取EDM(4220)数据,该EDM地址产生EDM总线数据(4222),其被馈送到FIFO(4241)和/或寄存器锁存器(4242)。根据ZDC(4210)多路复用器选择控制(4245)确定来自EDM(4220)贴块数据(4246)的数据或者替代地零填充(或其他固定值)数据(4247)是否将被写入LDM(4230)贴块,该寄存式的数据可以(使用并行到串行移位寄存器)可选地被串行化(4243)并且由多路复用器(4244)检查窗口。
替代逻辑实施方式(4300)
在图43(4300)中总体上描绘了ZDC的替代实施例,并且该ZDC的替代实施例包含数据多路复用器(4343),其与来自ZDC(4310)的数据选择输入(4348)一起操作,以选择存储在读数据寄存器(4342)中的一部分数据位,以便呈现给零/数据选择多路复用器(4344),该零/数据选择多路复用器(4344)确定EDM数据(4346)或者替代地零/固定数据(4347)是否应被写入LDM。
一般零填充方法(4400)
如图44(4400)的流程图中大体上描绘的,并且与图41(4100)-图43(4300)中的系统描述一致,与在LDM中创建零填充数据模式相关联的一种示例方法可以广义地概括为零填充插入DMA数据传输方法,该方法包括:
(1)等待由ACL/CPU写入传输计数寄存器(TCR)(4401);
(2)通过将DWR+2*FCR零写入LDM[LTR]处并由DWR+2*FCR更新LTR,基于数据宽度寄存器(DWR)计数,在本地目标寄存器地址(LTR)处零填充本地数据存储器(LDM)输出矩阵的第一行(4402);
(3)通过将FCR左填补零写入LDM[LTR]并通过FCR更新LTR,零填充LDM输出矩阵的左填补(4403);
(4)将DWR字节从EDM[ESR]传输到LDM[LTR]并通过DWR更新ESR和LTR(4404);
(5)通过将FCR左填补零写入LDM[LTR]并通过FCR更新LTR,零填充LDM输出矩阵的右填补(4405);
(6)减量TCR(4406);
(7)确定TCR寄存器是否为零,如果否,则进行到步骤(3)(4407);以及(8)通过将DWR+2*FCR零写入LDM[LTR]处并由DWR+2*FCR更新LTR,基于数据宽度寄存器(DWR)计数,在本地目标寄存器地址(LTR)处零填充本地数据存储器(LDM)输出矩阵的最后一行(4408)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。在某些情况下,上文描述的零填充步骤可以与从EDM到LDM的数据传输操作重叠。上文描述的方法假设将在LDM输出矩阵的顶部和底部仅插入一个零填充行。在一些实施例中,可以用其他零填充行来扩充该单行零填充。
ZDC并行圆形写入缓冲区数据流实施方式(4500)
如图45(4500)中大体描绘的,ZDC可以如在使用以ping-pong方式配置的读取数据缓冲区(4531、4532)将源数据流(EDM/LDM)(4510)传输到目标数据流(LDM)(4520)的情况中描绘的那样实施,使得一个读缓冲区(4521)正从源数据流(4510)被加载同时另一个读缓冲区(4532)基于尾指针(4541)正被写入圆形写入缓冲区(CWB)(4540)。从源数据流(4510)到第一读取数据缓冲区(4531)的数据传输和从第二读取数据缓冲区(4532)的同时数据传输的重叠允许系统中的最大EDM总线利用和最大数据传输。由于从第二读取数据缓冲区(4532)到CWB(4540)发生的数据传输和零填充操作以比源数据流(4510)到第一读取数据缓冲区(4531)的数据传输和零填充操作的速度更快的速度发生(由于EDM存储器访问比LDM存储器访问慢),可以实施零填充操作,而无需附加的数据传输速度损失。附加地,该速度差确保在将数据从源数据流(4531)传输到第一读取数据缓冲区(4531)之后,第一读取数据缓冲区(4531)和第二读取数据缓冲区(4532)的地址可以是以ping-pong方式交换并且数据可以立即从源数据流(4510)传输到第二读取数据缓冲区(4532),同时数据从第一读取数据缓冲区(4531)传输到CWB(4540)。
与CWB(4540)相关联的是用于确定源数据和/或零填充数据接下来要写入的位置的写尾指针(4541)和由从CWB(4540)获取数据并将其传输到目标数据流目的地(4520)的单独并行过程使用的读头指针(4542)。
ZDC并行圆形写入缓冲区方法(4600)-(4800)
在图46(4600)中大体上描绘的数据流可以实施为若干并行方法过程,如可以使用寄存式的逻辑和相关联的有限状态机(FSM)实施的图46(4600)-图48(4800)中大体上描绘的。这些流程图中描绘的方法实施三个并行过程。图46(4600)中描绘的第一并行过程作为步骤(4601)-(4603)将数据从源读取到可用的ping-pong读取数据缓冲区之一。图47(4700)中描绘的第二并行过程作为步骤(4704)-(4709)将数据从后台读取数据缓冲区(当前未从源数据流加载的读取数据缓冲区)传输到圆形写入缓冲区(CWB),同时插入零以解释说明零填充目标矩阵外围。图48(4800)中描绘的第三并行过程作为步骤(4810)-(4814)将数据从CWB写入目的地目标地址。所有这三个过程可以并行操作,使得与CWB相关联的零填充操作可以重叠发生的从源数据流到所选择的读取数据缓冲区之一的较慢数据传输。
MTA系统概要-大的IFM无填补
在一些实施例中,示例实施例可以广义地概括为大的IFM无填补矩阵传输加速器(MTA)系统,包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输入特征映射(IFM)存储元件;
IFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为按顺序执行以下操作在EDM和LDM之间传输数据:
(1)初始化列贴块处理计数器(C=0)(3301);
(2)将LFM[*,C]的列贴块从EDM传输到LDM(3302);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块中的数据(3303);
(4)将LFM[*,C+1]的列贴块从EDM传输到LDM(3304);
(5)增量列贴块计数器(C=C+1)(3405);
(6)与操作步骤(7)同时,处理存储在LDM中的LFM的相邻列贴块的前半部分中的数据(LDM[*,C-1]和LDM[*,C])(3406);
(7)与操作步骤(6)同时,将LFM[*,C+1]的列贴块从EDM传输到LDM(3407);
(8)处理存储在LDM中的LFM的相邻列贴块的后半部分中的数据(LDM[*,C-1]和LDM[*,C])(3408);以及
(9)确定所有列贴块处理是否完成,如果否,则进行到步骤(5)(3409)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。
MTA系统概要-大的OFM无填补
在一些实施例中,示例实施例可以广义地概括为大的IFM无填补矩阵传输加速器(MTA)系统,包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
LDM包括一个或更多个输出特征映射(OFM)存储元件;
OFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为按顺序执行以下操作在EDM和LDM之间传输数据:
(1)初始化列贴块处理计数器(C=0)(3501);
(2)处理存储在LDM中的LFM[*,C]的第一列贴块的前半部分中的左填补(Lpad)和部分数据(3502);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块的后半部分中的数据(3503);
(4)增量列贴块计数器(C=C+1)(3604);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM[*,C]的列贴块的前半部分中的数据(3605);
(6)与操作步骤(5)同时,将LFM[*,C-1]的列贴块从LDM传输到EDM(3606);
(7)处理存储在LDM中的LFM[*,C]的列贴块的后半部分中的数据(3607);
(8)确定是否已经处理了LDM中的所有LFM贴块数据(包括与右填补(Rpad)数据相邻的部分贴块数据),如果否,则进行到步骤(10)(3808);
(9)将LFM[*,C]的最后一列贴块从LDM传输到EDM(3809);以及
(10)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(3810)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。
MTA系统摘要-大的IFM有填补
在一些实施例中,示例实施例可以广义地概括为大的IFM有填补矩阵传输加速器(MTA)系统,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输入特征映射(IFM)存储元件;
IFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为按顺序执行以下操作在EDM和LDM之间传输数据:
(1)初始化列贴块处理计数器(C=0)(3701);
(2)填补存储在LDM中的LFM[*,C]的左列贴块(Lpad)(3702);
(3)将LFM[*,C]的列贴块从EDM传输到LDM(3703);
(4)增量列贴块计数器(C=C+1)(3804);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM的相邻列贴块的前半部分中的数据(LDM[*,C-1]和LDM[*,C])(3805);
(6)与操作步骤(5)同时,将LFM[*,C+1]的列贴块从EDM传输到LDM(3806);
(7)处理存储在LDM中的LFM的相邻列贴块的后半部分中的数据(LDM[*,C-1]和LDM[*,C])(3807);
(8)确定是否所有LFM贴块数据都已传输到LDM,如果否,则进行到步骤(10)(3808);
(9)填补存储在LDM中的LFM[*,C]的右列贴块(Rpad)(3809);以及
(10)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(3810)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。
MTA系统概要-大的OFM有填补
在一些实施例中,示例实施例可以广义地概括为大的IFM有填补矩阵传输加速器(MTA)系统,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
LDM包括一个或更多个输出特征映射(OFM)存储元件;
OFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为按顺序执行以下操作在EDM和LDM之间传输数据:
(1)初始化列贴块处理计数器(C=0)(3901);
(2)处理存储在LDM中的LFM[*,C]的第一列贴块的前半部分中的数据(3902);
(3)处理存储在LDM(3903)中的LFM[*,C]的第一列贴块的后半部分中的数据;
(4)增量列贴块计数器(C=C+1)(4004);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM[*,C]的列贴块的前半部分中的数据(4005);
(6)与操作步骤(5)同时,将LFM[*,C-1]的列贴块从LDM传输到EDM(4006);
(7)处理存储在LDM中的LFM[*,C]的列贴块的后半部分中的数据(4007);以及
(8)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(4008)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。
MTA系统摘要-小的IFM无填补
在一些实施例中,示例实施例可以广义地概括为小的IFM无填补矩阵传输加速器(MTA)系统,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间按顺序传输没有填补插入的小特征映射(SFM):
(1)执行将所有IFM从EDM到LDM的1D至1D数据传输(1001);
(2)与步骤(2)-(5)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1002);
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1003);
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1004);
(5)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1005);以及
(6)基于是否为OMP启用输出填补,移除接缝或在OMP中插入零填补(1006、1007、1008)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。
MTA系统概要-第一小的IFM有填补
在一些实施例中,示例实施例可以广义地概括为第一小的IFM有填补矩阵传输加速器(MTA)系统,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间按顺序传输具有填补插入的小特征映射(SFM):
(1)执行将所有IFM从EDM到LDM的2D至2D数据传输,在LDM中留下空间用于零填充(1201);
(2)对存储在LDM中的2D至2D数据执行外围零填充操作(1202);
(3)与步骤(3)-(6)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1203);
(4)与步骤(3)-(6)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1204);
(5)与步骤(3)-(6)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1205);
(6)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1206);以及
(7)基于是否为OMP启用输出填补,移除接缝或在OMP中插入零填补(1207、1208、1209)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。在替换实施例中,存储器指针的交换可以与步骤3-6同时执行。
MTA系统概要-第二IFM有填补
在一些实施例中,示例实施例可以广义地概括为第二IFM有填补矩阵传输加速器(MTA)系统,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间按顺序传输具有填补插入的小特征映射(SFM):
(1)执行将所有IFM从EDM到LDM的1D至1D数据传输(1401);
(2)执行将所有输入特征映射(IFM)从LDM到LDM的2D至2D数据传输,在LDM中留下空间用于零填充(1402);
(3)对存储在LDM中的2D至2D数据执行外围零填充操作(1403);
(4)与步骤(4)-(7)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1404);
(5)与步骤(4)-(7)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1405);
(6)与步骤(4)-(7)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1406);
(7)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1407);以及
(8)基于是否为OMP启用输出填补来移除接缝或在OMP中插入零填补(1408、1409、1410)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。在替代实施例中,存储器指针的交换可以与步骤4-7同时执行。
MTA系统概要-第三小IFM有填补
在一些实施例中,示例实施例可以广义地概括为第三IFM有填补矩阵传输加速器(MTA)系统,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间按顺序传输具有填补插入的小特征映射(SFM):
(1)执行将所有IFM从EDM到LDM的1D至1D数据传输,其中对LDM数据进行外围零填充(1601);
(2)与步骤(2)-(5)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1602);
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1603);
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1604);
(5)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1605);以及
(6)基于是否为OMP启用输出填补来移除接缝或在OMP中插入零填补(1606、1607、1608)。
该一般系统概要可以通过本文描述的各种元件来扩充,以产生与该总体设计描述一致的各种各样的实施例。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。
MTA方法概要-大的IFM无填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)大的IFM无填补方法,其包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输入特征映射(IFM)存储元件;
IFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为在EDM和LDM之间传输数据;
该方法在DTP上执行,包括以下步骤:
(1)初始化列贴块处理计数器(C=0)(3301);
(2)将LFM[*,C]的列贴块从EDM传输到LDM(3302);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块中的数据(3303);
(4)将LFM[*,C+1]的列贴块从EDM传输到LDM(3304);
(5)增量列贴块计数器(C=C+1)(3405);
(6)与操作步骤(7)同时,处理存储在LDM中的LFM的相邻列贴块的前半部分中的数据(LDM[*,C-1]和LDM[*,C])(3406);
(7)与操作步骤(6)同时,将LFM[*,C+1]的列贴块从EDM传输到LDM(3407);
(8)处理存储在LDM中的LFM的相邻列贴块的后半部分中的数据(LDM[*,C-1]和LDM[*,C])(3408);以及
(9)确定所有列贴块处理是否完成,如果否,则进行到步骤(5)(3409)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-大的OFM无填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)大的OFM无填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
LDM包括一个或更多个输出特征映射(OFM)存储元件;
OFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为在EDM和LDM之间传输数据;
该方法在DTP上执行,包括以下步骤:
(1)初始化列贴块处理计数器(C=0)(3501);
(2)处理存储在LDM中的LFM[*,C]的第一列贴块的前半部分中的左填补(Lpad)和部分数据(3502);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块的后半部分中的数据(3503);
(4)增量列贴块计数器(C=C+1)(3604);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM[*,C]的列贴块的前半部分中的数据(3605);
(6)与操作步骤(5)同时,将LFM[*,C-1]的列贴块从LDM传输到EDM(3606);
(7)处理存储在LDM中的LFM[*,C]的列贴块的后半部分中的数据(3607);
(8)确定是否已经处理了LDM中的所有LFM贴块数据(包括与右填补(Rpad)数据相邻的部分贴块数据),如果否,则进行到步骤(10)(3808);
(9)将LFM[*,C]的最后一列贴块从LDM传输到EDM(3809);以及
(10)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(3810)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-大的IFM有填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)大IFM有填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输入特征映射(IFM)存储元件;
IFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为在EDM和LDM之间传输数据;
该方法在DTP上执行,包括以下步骤:
(1)初始化列贴块处理计数器(C=0)(3701);
(2)填补存储在LDM中的LFM[*,C]的左列贴块(Lpad)(3702);
(3)将LFM[*,C]的列贴块从EDM传输到LDM(3703);
(4)增量列贴块计数器(C=C+1)(3804);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM的相邻列贴块的前半部分中的数据(LDM[*,C-1]和LDM[*,C])(3805);
(6)与操作步骤(5)同时,将LFM[*,C+1]的列贴块从EDM传输到LDM(3806);
(7)处理存储在LDM中的LFM的相邻列贴块的后半部分中的数据(LDM[*,C-1]和LDM[*,C])(3807);
(8)确定是否所有LFM贴块数据都已传输到LDM,如果否,则进行到步骤(10)(3808);
(9)填补存储在LDM中的LFM[*,C]的右列贴块(Rpad)(3809);以及
(10)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(3810)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-大的OFM有填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)大的OFM有填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
LDM包括一个或更多个输出特征映射(OFM)存储元件;
OFM包括一个或更多个大特征映射(LFM)存储元件;
DTP被配置为在EDM和LDM之间传输数据;
该方法在DTP上执行,包括以下步骤:
(1)初始化列贴块处理计数器(C=0)(3901);
(2)处理存储在LDM中的LFM[*,C]的第一列贴块的前半部分中的数据(3902);
(3)处理存储在LDM中的LFM[*,C]的第一列贴块的后半部分中的数据(3903);
(4)增量列贴块计数器(C=C+1)(4004);
(5)与操作步骤(6)同时,处理存储在LDM中的LFM[*,C]的列贴块的前半部分中的数据(4005);
(6)与操作步骤(5)同时,将LFM[*,C-1]的列贴块从LDM传输到EDM(4006);
(7)处理存储在LDM中的LFM[*,C]的列贴块的后半部分中的数据(4007);以及
(8)确定所有列贴块处理是否完成,如果否,则进行到步骤(4)(4008)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-小的IFM无填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)小的IFM无填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间传输小特征映射(SFM);
该方法在DTP上执行,并包括以下步骤:
(1)执行将所有IFM从EDM到LDM的1D至1D数据传输(1001);
(2)与步骤(2)-(5)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1002);
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1003);
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1004);
(5)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1005);以及
(6)基于是否为OMP启用输出填补,移除接缝或在OMP中插入零填补(1006、1007、1008)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-第一小IFM有填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)第一小IFM有填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间传输小特征映射(SFM);
该方法在DTP上执行,并且包括以下步骤:
(1)执行将所有IFM从EDM到LDM的2D至2D数据传输,在LDM中留下空间用于零填充(1201);
(2)对存储在LDM中的2D至2D数据执行外围零填充操作(1202);
(3)与步骤(3)-(6)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1203);
(4)与步骤(3)-(6)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1204);
(5)与步骤(3)-(6)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1205);
(6)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1206);以及
(7)基于是否为OMP启用输出填补,移除接缝或在OMP中插入零填补(1207、1208、1209)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤3-6同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-第二IFM有填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)第二小IFM有填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间传输小特征映射(SFM);
该方法在DTP上执行,并且包括以下步骤:
(1)执行将所有IFM从EDM到LDM的1D至1D数据传输(1401);
(2)执行将所有输入特征映射(IFM)从LDM到LDM的2D至2D数据传输,在LDM中留下空间用于零填充(1402);
(3)对存储在LDM中的2D至2D数据执行外围零填充操作(1403);
(4)与步骤(4)-(7)同时,经由从EDM到LDM的数据传输,执行FCM到FCM的1D至1D数据传输(1404);
(5)与步骤(4)-(7)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1405);
(6)与步骤(4)-(7)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1406);
(7)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1407);以及
(8)基于是否为OMP启用输出填补来移除接缝或在OMP中插入零填补(1408、1409、1410)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替代实施例中,存储器指针的交换可以与步骤4-7同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
MTA方法概要-第三小IFM有填补
示例实施例的方法可以广义地概括为与矩阵传输加速器(MTA)系统一起操作的矩阵传输加速器(MTA)第三小IFM有填补方法,该系统包括:
(a)外部数据存储器(EDM);
(b)本地数据存储器(LDM);以及
(c)数据传输处理器(DTP);
其中:
EDM包括一个或更多个输出特征映射(OFM)存储元件;
EDM包括一个或更多个滤波器系数乘数(FCM)存储元件;
EDM包括一个或更多个输入特征映射(IFM)存储元件;
LDM还包括前台输出特征映射(OFM-fore)存储元件;
LDM还包括后台输出特征映射(OFM-back)存储元件;
LDM还包括前台滤波器系数乘数(FCM-fore)存储元件;
LDM还包括后台滤波器系数乘数(FCM-back)存储元件;
LDM还包括前台输入特征映射(IFM-fore)存储元件;
DTP被配置为在EDM和LDM之间传输小特征映射(SFM);
该方法在DTP上执行,并且包括以下步骤:
(1)执行将所有IFM从EDM到LDM的1D至1D数据传输,其中对LDM数据进行外围零填充(1601);
(2)与步骤(2)-(5)同时,经由从EDM到LDM的数据传输,执行FCM到FCM-back的1D至1D数据传输(1602);
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵(OFM)(OFM-back)从LDM传输到EDM(1603);
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积(OMP)并将OMP存储在OFM-fore中(1604);
(5)交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针(fore/back)(1605);以及
(6)基于是否为OMP启用输出填补来移除接缝或在OMP中插入零填补(1606、1607、1608)。
可以根据若干因素大量地修改该一般方法,其中重新布置和/或添加/删除步骤在示例实施例的范围内。在替换实施例中,存储器指针的交换可以与步骤2-5同时执行。结合本文描述的各种实施例系统的该实施方式和其他实施方式的集成在示例实施例的范围内。
系统/方法变体
在示例实施例中,在构造的基本主题中有各种各样的变化是可能的。上述示例不代表可能的使用的整个范围。它们旨在引用一些几乎无限制的可能性。
该基本系统和方法可以用各种辅助实施例来扩充,包括但不限于:
·一种实施例中的MTA还包括填补-填充直接存储器访问(DMA)控制器(PDC),其包括:
(a)第一数据传输处理器(FDP);
(b)第二数据传输处理器(SDP);以及
(c)第三数据传输处理器(TDP);
其中:
FDP、SDP和TDP并行操作;
FDP将数据从EDM传输到第一读取数据缓冲区(FDB);
在SDB到CWB数据传输期间,SDP将数据从第二读取数据缓冲区(SDB)传输到具有附加的矩阵外围填补-填充的圆形写入缓冲区(CWB);
TDP路径将数据从CWB传输到LDM;
在每次完成从EDM到FDB的FDP传输之后,将到FDB的数据传输以ping-pong方式与SDB交替;以及
在每次完成从EDM到FDB的FDP传输之后,来自SDB的数据传输以ping-pong方式与FDB交替。
·一种实施例中的MTA还包括零填充直接存储器访问(DMA)控制器(ZDC),其包括:
(a)第一数据传输处理器(FDP);
(b)第二数据传输处理器(SDP);以及
(c)第三数据传输处理器(TDP);
其中:
FDP、SDP和TDP并行操作;
FDP将数据从EDM传输到第一读取数据缓冲区(FDB);
在SDB到CWB数据传输期间,SDP将数据从第二读取数据缓冲区(SDB)传输到具有附加的矩阵外围零填充的圆形写入缓冲区(CWB);
TDP路径将数据从CWB传输到LDM;
在每次完成从EDM到FDB的FDP传输之后,将到FDB的数据传输以ping-pong方式与SDB交替;以及
在每次完成从EDM到FDB的FDP传输之后,来自SDB的数据传输以ping-pong方式与FDB交替。
·一种实施例中的MTA还包括填补-填充直接存储器访问(DMA)控制器(PDC),其基于DMA控制器寄存器组的内容将数据从EDM传输到LDM,该DMA控制器寄存器组包括:
(a)数据宽度寄存器(DWR);
(b)传输计数寄存器(TCR);
(c)填充计数寄存器(FCR);
(d)EDM源地址寄存器(ESR);以及
(e)LDM目标地址寄存器(LTR);
其中:
PDC将矩阵数据从ESR地址处的EDM传输到LTR地址处的LDM;
EDM由矩阵行数据组成,该矩阵行数据具有由DWR中的宽度值定义的数据宽度;
PDC被配置为将数据从EDM传输到LDM,并基于FCR中的计数值自动地外围填补-填充写入LDM的矩阵数据。
·一种实施例中的MTA还包括零填充直接存储器访问(DMA)控制器(ZDC),其基于DMA控制器寄存器组的内容将数据从EDM传输到LDM,该DMA控制器寄存器组包括:
(a)数据宽度寄存器(DWR);
(b)传输计数寄存器(TCR);
(c)填充计数寄存器(FCR);
(d)EDM源地址寄存器(ESR);以及
(e)LDM目标地址寄存器(LTR);
其中:
ZDC将矩阵数据从ESR地址处的EDM传输到LTR地址处的LDM;
EDM由矩阵行数据组成,该矩阵行数据具有由DWR定义的数据宽度;
ZDC被配置为将数据从EDM传输到LDM,并基于FCR中的计数值自动地外围填充写入LDM的矩阵数据。
基于上文描述的元件的任何组合,其他实施例是可能的。
通用计算机可用介质
各种替代实施例可以实施为与计算机化计算系统一起使用的计算机程序产品。定义示例实施例的功能的程序可以用任何适当的编程语言编写并以多种形式传递到计算机,包括但不限于:(a)永久存储在不可写存储介质上的信息(例如,只读存储器设备诸如ROM或CD-ROM盘);(b)可变地存储在可写存储介质(例如,软盘和硬盘驱动器)上的信息;以及/或(c)通过诸如局域网、电话网络或诸如因特网的公共网络之类的通信媒体传送到计算机的信息。当携带实现方法的计算机可读指令时,这种计算机可读介质代表替代实施例。
如本文一般描述的,示例实施例可以包含各种计算机可读介质,其包括计算机可用介质,该计算机可用介质具有体现在其中的计算机可读代码装置。与本文描述的各种过程相关联的软件可以体现在从其加载和激活软件的各种计算机可访问介质中。这种类型的计算机可读介质在示例实施例的范围内,其中介质是有形的和非暂时的。
已经公开了一种矩阵传输加速器(MTA)系统/方法,其使用矩阵贴块和/或分组来协调外部数据存储器(EDM)和本地数据存储器(LDM)之间的数据传输。该系统利用重叠计算和数据传输操作的前台/后台缓冲,并允许具有或不具有零填补外围矩阵填充的EDM到LDM数据传输。该系统可以包含自动零填充直接存储器访问(DMA)控制器(ZDC),它基于DMA控制器寄存器组将数据从EDM传输到LDM,该DMA控制器寄存器组包括数据宽度寄存器(DWR)、传输计数寄存器(TCR)、填充计数寄存器(FCR)、EDM源地址寄存器(ESR)和LDM目标地址寄存器(LTR)。ZDC将矩阵数据从EDM[ESR]传输到LDM[LTR],使得DWR行数据宽度的EDM矩阵数据基于FCR值被自动地零填充在写入LDM矩阵的矩阵的外围周围。

Claims (48)

1.一种矩阵传输加速器系统即MTA系统,其包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述IFM包括一个或更多个大特征映射存储元件即LFM存储元件;以及
所述DTP被配置为按顺序执行以下操作在所述EDM和所述LDM之间传输数据:
(1)初始化列贴块处理计数器即C=0;
(2)将LFM[*,C]的列贴块从所述EDM传输到所述LDM;
(3)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块中的数据;
(4)将所述LFM[*,C+1]的列贴块从所述EDM传输到所述LDM;
(5)增量所述列贴块计数器即C=C+1;
(6)与操作步骤(7)同时,处理存储在所述LDM中的所述LFM的相邻列贴块的前半部分中的数据即LDM[*,C-1]和LDM[*,C];
(7)与操作步骤(6)同时,将所述LFM[*,C+1]的列贴块从所述EDM传输到所述LDM;
(8)处理存储在所述LDM中的所述LFM的相邻列贴块的后半部分中的数据即LDM[*,C-1]和LDM[*,C];以及
(9)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(5)。
2.根据权利要求1所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
3.根据权利要求1所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器存取即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
4.根据权利要求1所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
5.根据权利要求1所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
6.一种矩阵传输加速器系统即MTA系统,其包括:
外部数据存储器即EDM;
(a)本地数据存储器即LDM;以及
(b)数据传输处理器即DTP;
其中:
所述LDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述OFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为按顺序执行以下操作在所述EDM和所述LDM之间传输数据:
(1)初始化列贴块处理计数器即C=0;
(2)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块的前半部分中的左填补即Lpad和部分数据;
(3)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块的后半部分中的数据;
(4)增量所述列贴块计数器即C=C+1;
(5)与操作步骤(6)同时,处理存储在所述LDM中的所述LFM[*,C]的列贴块的前半部分中的数据;
(6)与操作步骤(5)同时,将所述LFM[*,C-1]的列贴块从所述LDM传输到所述EDM;
(7)处理存储在所述LDM中的所述LFM[*,C]的列贴块的后半部分中的数据;
(8)确定是否已经处理了所述LDM中的所有所述LFM贴块数据,其包括与右填补数据即Rpad数据相邻的部分贴块数据,如果否,则进行到步骤(10);
(9)将LFM[*,C]的最后一列贴块从所述LDM传输到所述EDM;以及
(10)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(4)。
7.根据权利要求6所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
8.根据权利要求6所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器存取即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
9.根据权利要求6所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
10.根据权利要求6所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
11.一种矩阵传输加速器系统即MTA系统,其包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述IFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为按顺序执行以下操作在所述EDM和所述LDM之间传输数据:
(1)初始化列贴块处理计数器即C=0;
(2)填补存储在所述LDM中的所述LFM[*,C]的左列贴块即Lpad;
(3)将所述LFM[*,C]的列贴块从所述EDM传输到所述LDM;
(4)增量所述列贴块计数器即C=C+1;
(5)与操作步骤(6)同时,处理存储在所述LDM中的所述LFM的相邻列贴块的前半部分中的数据即LDM[*,C-1]和LDM[*,C];
(6)与操作步骤(5)同时,将所述LFM[*,C+1]的列贴块从所述EDM传输到所述LDM;
(7)处理存储在所述LDM中的所述LFM的相邻列贴块的后半部分中的数据即LDM[*,C-1]和LDM[*,C];
(8)确定所有所述LFM贴块数据是否已经传输到所述LDM,如果否,则进行到步骤(10);
(9)填补存储在所述LDM中的所述LFM[*,C]的右列贴块即Rpad;以及
(10)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(4)。
12.根据权利要求11所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
13.根据权利要求11所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器存取即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
14.根据权利要求11所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
15.根据权利要求11所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
16.一种矩阵传输加速器系统即MTA系统,其包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述LDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述OFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为按顺序执行以下操作在所述EDM和所述LDM之间传输数据:
(1)初始化列贴块处理计数器即C=0;
(2)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块的前半部分中的数据;
(3)处理存储在所述LDM中的所述LFM[*,C]的所述第一列贴块的后半部分中的数据;
(4)增量所述列贴块计数器即C=C+1;
(5)与操作步骤(6)同时,处理存储在所述LDM中的所述LFM[*,C]的列贴块的前半部分中的数据;
(6)与操作步骤(5)同时,将所述LFM[*,C-1]的列贴块从所述LDM传输到所述EDM;
(7)处理存储在所述LDM中的所述LFM[*,C]的列贴块的后半部分中的数据;以及
(8)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(4)。
17.根据权利要求16所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
18.根据权利要求16所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器存取即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
19.根据权利要求16所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
20.根据权利要求16所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
21.一种矩阵传输加速器系统即MTA系统,其包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间按顺序传输没有填补插入的小特征映射即SFM:
(1)执行将所有所述IFM从所述EDM到所述LDM的1D至1D数据传输;
(2)与步骤(2)-(5)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(5)与步骤(2)-(5)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;
(6)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
22.根据权利要求21所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
23.根据权利要求21所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器存取即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
24.根据权利要求21所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
25.根据权利要求21所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
26.一种矩阵传输加速器系统即MTA系统,包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为按顺序在所述EDM和所述LDM之间传输具有填补插入的小特征映射即SFM:
(1)执行将所有所述IFM从所述EDM到所述LDM的2D至2D数据传输,在所述LDM中留下空间用于零填充;
(2)对存储在所述LDM中的所述2D至2D数据执行外围零填充操作;
(3)与步骤(3)-(6)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(4)与步骤(3)-(6)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(5)与步骤(3)-(6)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(6)与步骤(3)-(6)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;以及
(7)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
27.根据权利要求26所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
28.根据权利要求26所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
29.根据权利要求26所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
30.根据权利要求26所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
31.一种矩阵传输加速器系统即MTA系统,其包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间按顺序传输具有填补插入的小特征映射即SFM:
(1)执行将所有所述IFM从所述EDM到所述LDM的1D至1D数据传输;
(2)执行将所有输入特征映射即IFM从所述LDM到所述LDM的2D至2D数据传输,在所述LDM中留下空间用于零填充;
(3)对存储在所述LDM中的所述2D至2D数据执行外围零填充操作;
(4)与步骤(4)-(7)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(5)与步骤(4)-(7)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(6)与步骤(4)-(7)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(7)与步骤(4)-(7)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;以及
(8)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
32.根据权利要求31所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
33.根据权利要求31所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
34.根据权利要求31所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
35.根据权利要求31所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
36.一种矩阵传输加速器系统即MTA系统,其包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间按顺序传输具有填补插入的小特征映射即SFM:
(1)执行将所有所述IFM从所述EDM到所述LDM的1D至1D数据传输,其中对所述LDM数据进行外围零填充;
(2)与步骤(2)-(5)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(5)与步骤(2)-(5)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;以及
(6)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
37.根据权利要求36所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加矩阵外围填补-填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
38.根据权利要求36所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其包括:
(a)第一数据传输处理器即FDP;
(b)第二数据传输处理器即SDP;以及
(c)第三数据传输处理器即TDP;
其中:
所述FDP、所述SDP和所述TDP并行操作;
所述FDP将数据从所述EDM传输到第一读取数据缓冲区即FDB;
在所述SDB到CWB数据传输期间,所述SDP将数据从第二读取数据缓冲区即SDB传输到具有附加的矩阵外围零填充的圆形写入缓冲区即CWB;
所述TDP路径将数据从所述CWB传输到所述LDM;
在每次完成从所述EDM到所述FDB的所述FDP传输之后,到所述FDB的所述数据传输以ping-pong方式与所述SDB交替;以及
在每次完成从所述EDM到所述FDB的所述FDP传输之后,来自所述SDB的所述数据传输以ping-pong方式与所述FDB交替。
39.根据权利要求36所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括填补-填充直接存储器访问即DMA控制器即PDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述PDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR中的宽度值定义的数据宽度;
所述PDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
40.根据权利要求36所述的矩阵传输加速器系统即MTA系统,其中所述MTA还包括零填充直接存储器访问即DMA控制器即ZDC,其基于DMA控制器寄存器组的内容将数据从所述EDM传输到所述LDM,所述DMA控制器寄存器组包括:
(a)数据宽度寄存器即DWR;
(b)传输计数寄存器即TCR;
(c)填充计数寄存器即FCR;
(d)EDM源地址寄存器即ESR;以及
(e)LDM目标地址寄存器即LTR;
其中:
所述ZDC将矩阵数据从所述ESR地址处的所述EDM传输到所述LTR地址处的所述LDM;
所述EDM由矩阵行数据组成,所述矩阵行数据具有由所述DWR定义的数据宽度;
所述ZDC被配置为将数据从所述EDM传输到所述LDM,并基于所述FCR中的计数值自动地外围填补-填充写入所述LDM的矩阵数据。
41.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述IFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输数据;
所述方法在所述DTP上执行,并包括以下步骤:
(1)初始化列贴块处理计数器即C=0;
(2)将LFM[*,C]的列贴块从所述EDM传输到所述LDM;
(3)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块中的数据;
(4)将所述LFM[*,C+1]的列贴块从所述EDM传输到所述LDM;
(5)增量所述列贴块计数器即C=C+1;
(6)与操作步骤(7)同时,处理存储在所述LDM中的所述LFM的相邻列贴块的前半部分中的数据即LDM[*,C-1]和LDM[*,C];
(7)与操作步骤(6)同时,将所述LFM[*,C+1]的列贴块从所述EDM传输到所述LDM;
(8)处理存储在所述LDM中的所述LFM的相邻列贴块的后半部分中的数据即LDM[*,C-1]和LDM[*,C];以及
(9)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(5)。
42.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述LDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述OFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输数据;
所述方法在所述DTP上执行,并包括以下步骤:
(1)初始化列贴块处理计数器即C=0;
(2)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块的前半部分中的左填补即Lpad和部分数据;
(3)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块的后半部分中的数据;
(4)增量所述列贴块计数器即C=C+1;
(5)与操作步骤(6)同时,处理存储在所述LDM中的所述LFM[*,C]的列贴块的前半部分中的数据;
(6)与操作步骤(5)同时,将所述LFM[*,C-1]的列贴块从所述LDM传输到所述EDM;
(7)处理存储在所述LDM中的所述LFM[*,C]的列贴块的后半部分中的数据;
(8)确定是否已经处理了所述LDM中的所有所述LFM贴块数据,其包括与右填补数据即Rpad数据相邻的部分贴块数据,如果否,则进行到步骤(10);
(9)将LFM[*,C]的最后一列贴块从所述LDM传输到所述EDM;
(10)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(4)。
43.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述IFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输数据;
所述方法在所述DTP上执行,并包括以下步骤:
(1)初始化列贴块处理计数器即C=0;
(2)填补存储在所述LDM中的所述LFM[*,C]的左列贴块即Lpad;
(3)将所述LFM[*,C]的列贴块从所述EDM传输到所述LDM;
(4)增量所述列贴块计数器即C=C+1;
(5)与操作步骤(6)同时,处理存储在所述LDM中的所述LFM的相邻列贴块的前半部分中的数据即LDM[*,C-1]和LDM[*,C];
(6)与操作步骤(5)同时,将所述LFM[*,C+1]的列贴块从所述EDM传输到所述LDM;
(7)处理存储在所述LDM中的所述LFM的相邻列贴块的后半部分中的数据即LDM[*,C-1]和LDM[*,C];
(8)确定所有所述LFM贴块数据是否已经传输到所述LDM,如果否,则进行到步骤(10);
(9)填补存储在所述LDM中的所述LFM[*,C]的右列贴块即Rpad;
(10)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(4)。
44.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述LDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述OFM包括一个或更多个大特征映射存储元件即LFM存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输数据;
所述方法在所述DTP上执行,并包括以下步骤:
(1)初始化列贴块处理计数器即C=0;
(2)处理存储在所述LDM中的所述LFM[*,C]的第一列贴块的前半部分中的数据;
(3)处理存储在所述LDM中的所述LFM[*,C]的所述第一列贴块的后半部分中的数据;
(4)增量所述列贴块计数器即C=C+1;
(5)与操作步骤(6)同时,处理存储在所述LDM中的所述LFM[*,C]的列贴块的前半部分中的数据;
(6)与操作步骤(5)同时,将所述LFM[*,C-1]的列贴块从所述LDM传输到所述EDM;
(7)处理存储在所述LDM中的所述LFM[*,C]的列贴块的后半部分中的数据;
(8)确定所有列贴块处理是否完成,如果否,则进行到所述步骤(4)。
45.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输小特征映射即SFM;
所述方法在所述DTP上执行,并包括以下步骤:
(1)执行将所有所述IFM从所述EDM到所述LDM的1D至1D数据传输;
(2)与步骤(2)-(5)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(5)与步骤(2)-(5)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;以及
(6)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
46.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输小特征映射即SFM;
所述方法在所述DTP上执行,并包括以下步骤:
(1)执行将所有所述IFM从所述EDM到所述LDM的2D至2D数据传输,在所述LDM中留下空间用于零填充;
(2)对存储在所述LDM中的所述2D至2D数据执行外围零填充操作;
(3)与步骤(3)-(6)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(4)与步骤(3)-(6)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(5)与步骤(3)-(6)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(6)与步骤(3)-(6)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;以及
(7)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
47.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输小特征映射即SFM;
所述方法在所述DTP上执行,并包括以下步骤:
(1)执行将所有所述IFM从所述EDM到所述LDM的1D至1D数据传输;
(2)执行将所有输入特征映射即IFM从所述LDM到所述LDM的2D至2D数据传输,在所述LDM中留下空间用于零填充;
(3)对存储在所述LDM中的所述2D至2D数据执行外围零填充操作;
(4)与步骤(4)-(7)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D数据传输;
(5)与步骤(4)-(7)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(6)与步骤(4)-(7)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(7)与步骤(4)-(7)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;
(8)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
48.一种在矩阵传输加速器系统即MTA系统上操作的矩阵传输加速器方法即MTA方法,所述系统包括:
(a)外部数据存储器即EDM;
(b)本地数据存储器即LDM;以及
(c)数据传输处理器即DTP;
其中:
所述EDM包括一个或更多个输出特征映射存储元件即OFM存储元件;
所述EDM包括一个或更多个滤波器系数乘数存储元件即FCM存储元件;
所述EDM包括一个或更多个输入特征映射存储元件即IFM存储元件;
所述LDM还包括前台输出特征映射存储元件即OFM-fore存储元件;
所述LDM还包括后台输出特征映射存储元件即OFM-back存储元件;
所述LDM还包括前台滤波器系数乘数存储元件即FCM-fore存储元件;
所述LDM还包括后台滤波器系数乘数存储元件即FCM-back存储元件;
所述LDM还包括前台输入特征映射存储元件即IFM-fore存储元件;
所述DTP被配置为在所述EDM和所述LDM之间传输小特征映射即SFM;
所述方法在所述DTP上执行,并包括以下步骤:
(1)执行所有所述IFM从所述EDM到所述LDM的1D至1D数据传输,其中对所述LDM数据进行外围零填充;
(2)与步骤(2)-(5)同时,经由从所述EDM到所述LDM的数据传输,执行所述FCM到所述FCM-back的1D至1D的数据传输;
(3)与步骤(2)-(5)同时,将先前计算的输出特征矩阵即先前计算的OFM即OFM-back从所述LDM传输到所述EDM;
(4)与步骤(2)-(5)同时,经由关系OFM-fore=(FCM-fore*IFM-fore)计算输出矩阵乘积即OMP并将所述OMP存储在所述OFM-fore中;
(5)与步骤(2)-(5)同时,交换OFM-fore/OFM-back和FCM-fore/FCM-back的前台/后台ping/pong存储器指针即fore/back;以及
(6)基于是否对所述OMP启用输出填补,移除接缝或在所述OMP中插入零填补。
CN201880013544.8A 2017-02-28 2018-02-28 矩阵传输加速器系统和方法 Active CN110383267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410111920.4A CN117932202A (zh) 2017-02-28 2018-02-28 矩阵传输加速器系统和方法

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762464954P 2017-02-28 2017-02-28
US201762464964P 2017-02-28 2017-02-28
US62/464,964 2017-02-28
US62/464,954 2017-02-28
US201762465620P 2017-03-01 2017-03-01
US62/465,620 2017-03-01
US15/907,042 2018-02-27
US15/907,042 US10809933B2 (en) 2017-02-28 2018-02-27 Matrix transfer accelerator system and method
PCT/US2018/020334 WO2018160773A1 (en) 2017-02-28 2018-02-28 Matrix transfer accelerator system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410111920.4A Division CN117932202A (zh) 2017-02-28 2018-02-28 矩阵传输加速器系统和方法

Publications (2)

Publication Number Publication Date
CN110383267A true CN110383267A (zh) 2019-10-25
CN110383267B CN110383267B (zh) 2024-02-13

Family

ID=63246259

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201880014540.1A Active CN110383237B (zh) 2017-02-28 2018-02-28 可重新配置的矩阵乘法器系统和方法
CN201880013544.8A Active CN110383267B (zh) 2017-02-28 2018-02-28 矩阵传输加速器系统和方法
CN202310507791.6A Pending CN116522058A (zh) 2017-02-28 2018-02-28 可重新配置的矩阵乘法器系统和方法
CN202410111920.4A Pending CN117932202A (zh) 2017-02-28 2018-02-28 矩阵传输加速器系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201880014540.1A Active CN110383237B (zh) 2017-02-28 2018-02-28 可重新配置的矩阵乘法器系统和方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202310507791.6A Pending CN116522058A (zh) 2017-02-28 2018-02-28 可重新配置的矩阵乘法器系统和方法
CN202410111920.4A Pending CN117932202A (zh) 2017-02-28 2018-02-28 矩阵传输加速器系统和方法

Country Status (3)

Country Link
US (4) US10817587B2 (zh)
CN (4) CN110383237B (zh)
WO (2) WO2018160773A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117272893A (zh) * 2023-11-21 2023-12-22 芯来智融半导体科技(上海)有限公司 芯片信号接收电路及方法

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9841922B2 (en) * 2016-02-03 2017-12-12 SK Hynix Inc. Memory system includes a memory controller
CN118034781A (zh) 2017-03-20 2024-05-14 英特尔公司 用于矩阵加法、减法和乘法的系统、方法和装置
US11113603B1 (en) 2017-05-01 2021-09-07 Perceive Corporation Training network with discrete weight values
US10809978B2 (en) * 2017-06-02 2020-10-20 Texas Instruments Incorporated Merge sort accelerator
JP6749358B2 (ja) * 2018-03-19 2020-09-02 株式会社東芝 演算処理装置
US10621489B2 (en) * 2018-03-30 2020-04-14 International Business Machines Corporation Massively parallel neural inference computing elements
US11586910B1 (en) 2018-04-20 2023-02-21 Perceive Corporation Write cache for neural network inference circuit
US11210586B1 (en) 2018-04-20 2021-12-28 Perceive Corporation Weight value decoder of neural network inference circuit
US11049013B1 (en) 2018-04-20 2021-06-29 Perceive Corporation Encoding of weight values stored on neural network inference circuit
US11222257B1 (en) 2018-04-20 2022-01-11 Perceive Corporation Non-dot product computations on neural network inference circuit
US11501138B1 (en) 2018-04-20 2022-11-15 Perceive Corporation Control circuits for neural network inference circuit
US11568227B1 (en) 2018-04-20 2023-01-31 Perceive Corporation Neural network inference circuit read controller with multiple operational modes
US11481612B1 (en) 2018-04-20 2022-10-25 Perceive Corporation Storage of input values across multiple cores of neural network inference circuit
US11783167B1 (en) 2018-04-20 2023-10-10 Perceive Corporation Data transfer for non-dot product computations on neural network inference circuit
US10740434B1 (en) 2018-04-20 2020-08-11 Perceive Corporation Reduced dot product computation circuit
US20200073636A1 (en) * 2018-08-31 2020-03-05 Qualcomm Incorporated Multiply-accumulate (mac) operations for convolutional neural networks
US11216532B2 (en) * 2018-09-26 2022-01-04 Intel Corporation Circuitry for high-bandwidth, low-latency machine learning
US11307977B2 (en) * 2018-09-27 2022-04-19 Intel Corporation Technologies for direct matrix read and write operations
US11093580B2 (en) * 2018-10-31 2021-08-17 Advanced Micro Devices, Inc. Matrix multiplier with submatrix sequencing
US11604973B1 (en) 2018-12-05 2023-03-14 Perceive Corporation Replication of neural network layers
US10838732B2 (en) 2018-12-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for ordering bits in a memory device
US10818359B2 (en) 2018-12-21 2020-10-27 Micron Technology, Inc. Apparatuses and methods for organizing data in a memory device
US20200210517A1 (en) * 2018-12-27 2020-07-02 Intel Corporation Systems and methods to accelerate multiplication of sparse matrices
KR20200082617A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치
US11347297B1 (en) 2019-01-23 2022-05-31 Perceive Corporation Neural network inference circuit employing dynamic memory sleep
CN110147347B (zh) * 2019-03-18 2023-01-06 腾讯科技(深圳)有限公司 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质
US11941533B1 (en) 2019-05-21 2024-03-26 Perceive Corporation Compiler for performing zero-channel removal
US11675998B2 (en) * 2019-07-15 2023-06-13 Meta Platforms Technologies, Llc System and method for performing small channel count convolutions in energy-efficient input operand stationary accelerator
TWI722491B (zh) * 2019-07-16 2021-03-21 國立陽明交通大學 應用於神經網絡之四位元與八位元組合之分離式量化方法
CN110580519B (zh) * 2019-08-19 2022-03-22 中国科学院计算技术研究所 一种卷积运算装置及其方法
US11934824B2 (en) * 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
US11829729B2 (en) 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
CN110688087B (zh) * 2019-09-24 2024-03-19 上海寒武纪信息科技有限公司 数据处理器、方法、芯片及电子设备
CN112579971B (zh) * 2019-09-29 2024-04-16 广州希姆半导体科技有限公司 矩阵运算电路、矩阵运算装置及矩阵运算方法
KR20210045224A (ko) 2019-10-16 2021-04-26 삼성전자주식회사 데이터를 처리하는 방법 및 장치
KR102410166B1 (ko) * 2019-11-27 2022-06-20 고려대학교 산학협력단 이종 곱셈-누셈 유닛을 이용하는 심층 신경망의 가속기
US11568021B2 (en) 2020-02-21 2023-01-31 Alibaba Group Holding Limited Vector-vector multiplication techniques for processing systems
US11797830B2 (en) 2020-03-25 2023-10-24 Western Digital Technologies, Inc. Flexible accelerator for sparse tensors in convolutional neural networks
US11462003B2 (en) * 2020-03-25 2022-10-04 Western Digital Technologies, Inc. Flexible accelerator for sparse tensors in convolutional neural networks
CN111489313B (zh) * 2020-04-13 2023-10-31 湖南国科微电子股份有限公司 一种cfa图像去马赛克方法及装置
US11379557B2 (en) * 2020-05-07 2022-07-05 Meta Platforms, Inc. Device and method for flexibly summing matrix values
US11501151B2 (en) * 2020-05-28 2022-11-15 Arm Limited Pipelined accumulator
US11720328B2 (en) 2020-06-26 2023-08-08 Advanced Micro Devices, Inc. Processing unit with small footprint arithmetic logic unit
US20210406018A1 (en) * 2020-06-27 2021-12-30 Intel Corporation Apparatuses, methods, and systems for instructions for moving data between tiles of a matrix operations accelerator and vector registers
US11347652B2 (en) * 2020-08-31 2022-05-31 Microsoft Technology Licensing, Llc Banked memory architecture for multiple parallel datapath channels in an accelerator
US11526965B2 (en) * 2020-09-28 2022-12-13 Robert Bosch Gmbh Multiplicative filter network
US20220206989A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator
US11748251B2 (en) 2021-01-08 2023-09-05 Microsoft Technology Licensing, Llc Storing tensors in memory based on depth
CN112862091B (zh) * 2021-01-26 2022-09-27 合肥工业大学 一种基于快速卷积的资源复用型神经网络硬件加速电路
CN113077047B (zh) * 2021-04-08 2023-08-22 华南理工大学 一种基于特征图稀疏性的卷积神经网络加速器
CN113220267B (zh) * 2021-05-20 2022-04-19 西安电子科技大学 基于布斯编码位扩展的乘法器及实现方法
CN113345484A (zh) * 2021-06-24 2021-09-03 苏州兆芯半导体科技有限公司 一种数据运算电路及存算一体芯片
CN114580628A (zh) * 2022-03-14 2022-06-03 北京宏景智驾科技有限公司 一种神经网络卷积层的高效量化加速方法及硬件电路

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099447A (en) * 1990-01-22 1992-03-24 Alliant Computer Systems Corporation Blocked matrix multiplication for computers with hierarchical memory
US20040136316A1 (en) * 2002-08-20 2004-07-15 Interdigital Technology Corporation Efficient joint detection
CN101933005A (zh) * 2008-02-15 2010-12-29 飞思卡尔半导体公司 外围模块寄存器访问方法和装置
CN103714044A (zh) * 2013-12-30 2014-04-09 南京大学 一种基于片上网络的高效率矩阵转置簇以及转置方法
US20140365548A1 (en) * 2013-06-11 2014-12-11 Analog Devices Technology Vector matrix product accelerator for microprocessor integration

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4722084A (en) * 1985-10-02 1988-01-26 Itt Corporation Array reconfiguration apparatus and methods particularly adapted for use with very large scale integrated circuits
US4897717A (en) 1988-03-30 1990-01-30 Starsignal, Inc. Computer-based video compression system
US5519839A (en) 1992-10-02 1996-05-21 Compaq Computer Corp. Double buffering operations between the memory bus and the expansion bus of a computer system
US5745793A (en) 1995-06-07 1998-04-28 Seagate Technology, Inc. Apparatus having a circular buffer that maintains a one entry gap between elements written to the microprocessor and elements operated on by the clock
US5982375A (en) 1997-06-20 1999-11-09 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes single-pass stereo capability
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US20040122887A1 (en) * 2002-12-20 2004-06-24 Macy William W. Efficient multiplication of small matrices using SIMD registers
US8145785B1 (en) 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
US8533251B2 (en) 2008-05-23 2013-09-10 International Business Machines Corporation Optimized corner turns for local storage and bandwidth reduction
US8250130B2 (en) 2008-05-30 2012-08-21 International Business Machines Corporation Reducing bandwidth requirements for matrix multiplication
KR101074010B1 (ko) 2009-09-04 2011-10-17 (주)이스트소프트 블록 단위 데이터 압축 및 복원 방법 및 그 장치
US8984043B2 (en) * 2009-12-23 2015-03-17 Intel Corporation Multiplying and adding matrices
US9600281B2 (en) 2010-07-12 2017-03-21 International Business Machines Corporation Matrix multiplication operations using pair-wise load and splat operations
US9201701B2 (en) 2010-07-16 2015-12-01 Nokia Technologies Oy Method and apparatus for distributing computation closures
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
TWI489375B (zh) * 2010-12-03 2015-06-21 Via Tech Inc 無進位乘法裝置及其處理方法
US8433148B2 (en) 2011-03-31 2013-04-30 Mitsubishi Electric Research Laboratories, Inc. Method for compressing textured images
US9647731B2 (en) 2011-10-20 2017-05-09 Microelectronics Research & Development Corp. Reconfigurable network on a chip (NoC) radio through reduced instruction set computer (RISC) agents by overwriting program store for different phases of demodulation
JP5840994B2 (ja) * 2012-03-27 2016-01-06 富士通株式会社 行列演算装置
US8847798B2 (en) 2012-12-17 2014-09-30 Maxeler Technologies, Ltd. Systems and methods for data compression and parallel, pipelined decompression
US10078551B2 (en) 2013-07-15 2018-09-18 Texas Instruments Incorporated Streaming engine with error detection, correction and restart
US10073696B2 (en) 2013-07-15 2018-09-11 Texas Instruments Incorporated Streaming engine with cache-like stream data storage and lifetime tracking
US10203958B2 (en) 2013-07-15 2019-02-12 Texas Instruments Incorporated Streaming engine with stream metadata saving for context switching
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
US10061675B2 (en) 2013-07-15 2018-08-28 Texas Instruments Incorporated Streaming engine with deferred exception reporting
US10083035B2 (en) 2013-07-15 2018-09-25 Texas Instruments Incorporated Dual data streams sharing dual level two cache access ports to maximize bandwidth utilization
US9645974B1 (en) * 2015-03-11 2017-05-09 Google Inc. Optimized matrix multiplication using vector multiplication of interleaved matrix values
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
US10114613B2 (en) 2016-09-07 2018-10-30 International Business Machines Corporation Mixed-precision memcomputing system
US20190266218A1 (en) 2018-02-28 2019-08-29 Wave Computing, Inc. Matrix computation within a reconfigurable processor fabric

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099447A (en) * 1990-01-22 1992-03-24 Alliant Computer Systems Corporation Blocked matrix multiplication for computers with hierarchical memory
US20040136316A1 (en) * 2002-08-20 2004-07-15 Interdigital Technology Corporation Efficient joint detection
CN101933005A (zh) * 2008-02-15 2010-12-29 飞思卡尔半导体公司 外围模块寄存器访问方法和装置
US20140365548A1 (en) * 2013-06-11 2014-12-11 Analog Devices Technology Vector matrix product accelerator for microprocessor integration
CN103714044A (zh) * 2013-12-30 2014-04-09 南京大学 一种基于片上网络的高效率矩阵转置簇以及转置方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117272893A (zh) * 2023-11-21 2023-12-22 芯来智融半导体科技(上海)有限公司 芯片信号接收电路及方法
CN117272893B (zh) * 2023-11-21 2024-03-15 芯来智融半导体科技(上海)有限公司 芯片信号接收电路及方法

Also Published As

Publication number Publication date
WO2018160738A2 (en) 2018-09-07
CN110383237A (zh) 2019-10-25
WO2018160773A1 (en) 2018-09-07
US20180246669A1 (en) 2018-08-30
CN116522058A (zh) 2023-08-01
US10809933B2 (en) 2020-10-20
US11403025B2 (en) 2022-08-02
CN110383267B (zh) 2024-02-13
US10817587B2 (en) 2020-10-27
CN110383237B (zh) 2023-05-26
US20210034277A1 (en) 2021-02-04
US20180246855A1 (en) 2018-08-30
WO2018160738A3 (en) 2018-10-11
US20220365700A1 (en) 2022-11-17
CN117932202A (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
CN110383267A (zh) 矩阵传输加速器系统和方法
US10990410B2 (en) Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit
CN108681984A (zh) 一种3*3卷积算法的加速电路
US20210192246A1 (en) Convolutional neural network-based image processing method and device, and unmanned aerial vehicle
GB2554711A (en) Buffer addressing for a convolutional neural network
CN105843775A (zh) 片上数据划分读写方法、系统及其装置
US11030095B2 (en) Virtual space memory bandwidth reduction
US10114795B2 (en) Processor in non-volatile storage memory
US11561833B1 (en) Allocation and placement of resources for network computation
US20220179823A1 (en) Reconfigurable reduced instruction set computer processor architecture with fractured cores
WO2018194722A1 (en) Systems and methods for proactive spilling of probe records in hybrid hash join
WO2020073801A1 (zh) 一种3d图像处理中数据读写方法及系统、存储介质及终端
US20210082520A1 (en) Processor in non-volatile storage memory
CN110515872A (zh) 直接内存存取方法、装置、专用计算芯片及异构计算系统
Shahbahrami et al. FPGA implementation of parallel histogram computation
KR102326586B1 (ko) 큰 규모 분산 행렬 곱 처리 방법 및 그 장치
CN104794102A (zh) 一种加速实现Cholesky分解的嵌入式片上系统
US11475287B2 (en) Managing control data
CN108920097A (zh) 一种基于交织存储的三维数据处理方法
CN104850391B (zh) 处理多个数据集的装置及其方法
KR101827395B1 (ko) 확장성 있는 gpu기반의 대용량 obj 파일 처리 방법 및 장치
JP6360628B2 (ja) 情報処理装置およびグラフデータの書き込み装置
CN112991144B (zh) 针对神经网络的图像数据进行分块的方法和系统
US20210288650A1 (en) Semiconductor device and circuit layout method
KR102582419B1 (ko) 인 메모리 컴퓨팅을 통해 컨벌루션 뉴럴 네트워크 연산을 수행하는 방법

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
GR01 Patent grant
GR01 Patent grant