CN105843775A - 片上数据划分读写方法、***及其装置 - Google Patents

片上数据划分读写方法、***及其装置 Download PDF

Info

Publication number
CN105843775A
CN105843775A CN201610210082.1A CN201610210082A CN105843775A CN 105843775 A CN105843775 A CN 105843775A CN 201610210082 A CN201610210082 A CN 201610210082A CN 105843775 A CN105843775 A CN 105843775A
Authority
CN
China
Prior art keywords
data
sheet
chip
read
storage medium
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
CN201610210082.1A
Other languages
English (en)
Other versions
CN105843775B (zh
Inventor
陈天石
杜子东
郭崎
陈云霁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201610210082.1A priority Critical patent/CN105843775B/zh
Priority to US16/071,458 priority patent/US10496597B2/en
Priority to PCT/CN2016/094168 priority patent/WO2017173755A1/zh
Publication of CN105843775A publication Critical patent/CN105843775A/zh
Application granted granted Critical
Publication of CN105843775B publication Critical patent/CN105843775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • 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/7807System 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/781On-chip cache; Off-chip memory
    • 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
    • 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/7807System 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
    • 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
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明适用于存储技术领域,一种片上数据划分读写方法,其特征在于,包括:数据划分步骤,根据数据划分策略将片上数据存储在不同区域,分别存储在片内存储介质和片外存储介质;预先操作步骤,在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;数据拼接步骤,根据数据拼接策略将所述片内存储数据和片外输入数据拼接得到原始数据表示。同时还提供相应的片上数据划分读写***及其装置。借此,本发明重复数据高效地进行读写,从而降低访存带宽需求,同时提供良好的灵活性,从而降低片上存储开销。

Description

片上数据划分读写方法、***及其装置
技术领域
本发明涉及信息安全领域及集成电路领域,尤其涉及一种硬件安全设计,特别是涉及一种根据本发明所述片上数据划分读写***。
背景技术
随着电子设备的广泛使用,在大数据时代,越来越多的设备需要对于真实世界的实时输入进行越来越复杂的处理,如工业机器人、自动驾驶无人汽车以及移动设备等等。这些任务大多数偏向于机器学习领域,其中大部分运算为向量运算或者矩阵运算,具有极高的并行度。相较于传统通用的GPU/CPU加速方案,硬件ASIC加速器是目前最受欢迎的加速方案,一方面可以提供极高的并行度可以实现极高的性能,另外一方面具有极高的能效性。
然而这其中带宽成为限制加速器性能的一大瓶颈,常见的解决方案是他通过放置在片上的缓存来平衡带宽的不均衡性。这些常见的解决方案并没有对数据读写进行优化,从而不能很好的利用数据的特性使得片上存储开销过大,数据读写开销过大。对于目前常见的机器学习类算法,其数据大多具有重用性,也即同样的数据会被多次使用,从而数据具有相同部分,如神经网络中的权值。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种片上数据划分读写***及其实现方法,目的在于针对重复数据高效地进行读写,从而降低访存带宽需求,同时提供良好的灵活性,从而降低片上存储开销。
为了实现上述目的,本发明提供一种片上数据划分读写方法,包括:
数据划分步骤,根据数据划分策略将片上数据存储在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作步骤,在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接步骤,根据数据拼接策略将所述片内存储数据和片外输入数据拼接得到原始数据表示。
根据本发明所述片上数据划分读写方法,还包括:
数据存储步骤,搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储步骤中读写端口分离,数据的读出和写入相互独立;
所述预先操作步骤还包括:
运算处理所述片内存储数据;
运算处理外部输入数据处理;
所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
根据本发明所述片上数据划分读写方法,所述数据存储步骤还包括:
根据片内地址索引来索引所述片内存储数据;
已索引到所述片内存储数据的输出出口;
将要存储的数据根据写入地址写入相应存储位置。
根据本发明所述片上数据划分读写方法,所述数据划分步骤还包括:
地址空间划分成为片外数据空间和片内数据空间;
根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;
所述数据拼接步骤还包括:
片内片外数据传输的形式从所述原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接步骤通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI、PCIE、HT互联技术,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构;
所述片内存储介质或所述片外存储介质中的所述数据可以被一次或者多次读写,所述数据可以被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质可以被一次或者多从外部进行读写,介质可以被一次或者多次从内部读写。
本发明提供一种片上数据划分读写***,包括:
数据划分模块,用于根据数据划分策略将片内存储数据划分在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作模块,用于在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接模块,用于根据数据拼接策略将片内存储数据和片外输入数据拼接得到所述原始数据表示。
根据本发明所述片上数据划分读写***,还包括:
存储模块,用于搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储模块采用读写端口分离,数据的读出和写入相互独立;
所述预先处理模块还包括:
片上处理子模块,用于运算处理所述片内存储数据;
片外处理子模块,用于运算处理外部输入数据处理;
所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
根据本发明所述片上数据划分读写***,所述存储模块还包括:
地址索引接口,用于根据片内地址索引来索引所述片内存储数据;
数据读出接口,用于已索引到的所述片内存储数据的输出出口;
数据写入接口,用于将要存储的数据根据写入地址写入相应存储位置。
根据本发明所述片上数据划分读写***,还包括:
所述数据划分模块还包括:
地址划分子模块,用于地址空间划分成为片外数据空间和片内数据空间;
数据替换子模块,用于根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;所述数据划分模块基于芯片中的一个或多个片上计算单元实现,所述片上计算单元发起读写请求并处理拼接得到的原始数据;
所述数据拼接模块还包括:
索引拼接子模块,用于片内片外数据传输的形式从原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接模块读写通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI、PCIE、HT互联技术,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构;
所述片内存储介质或所述片外存储介质中的所述数据被一次或者多次读写,所述数据被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质被一次或者多从外部进行读写,所述片内存储介质被一次或者多次从内部读写。
本发明提供一种片上读写装置,包括根据上述任一项所述片上数据划分读写***。
根据本发明所述片上读写装置,所述片上读写装置包括静态随机存储器、动态随机存储器、增强动态随机存取存储器、寄存器堆以及非易失存储器或者3D存储器件。
本发明通过装置及其相关使用方法可以有效的提供数据的复用性和其灵活寻址的需求,有效的降低访存带宽需求,能够适用于不同场景,并不仅仅局限于机器学习类加速器。本发明同时可以通过合理调度数据,缩减片上缓存开销,从而可以提供更加高效的加速器设计支持。
附图说明
图1是本发明所述片上数据划分读写***的结构示意图;
图2是本发明优选实施例的所述片上数据划分读写***的结构示意图;
图3A是本发明所述片上数据划分策略的实现示意图之一;
图3B是本发明所述片上数据划分策略的实现示意图之二;
图4是本发明根据本发明所述片上数据划分读写***的片上数据索引实施例示意图;
图5是本发明根据本发明所述片上数据划分读写方法的物理框架示意图;
图6是本发明根据本发明所述片上数据划分读写方法一个实施例数据拼接操作的物理设计框架图;
图7是本发明中所述片上数据划分读写方法流程示意图;
图8是本发明中所述片上数据划分读写方法一个具体实施例流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有异构平台,加速器的片上能够存储的数据十分有限,需要将所有的数据划分成为大小可以存储在片上的数据块,通过片外大存储介质和片内小存储介质上的数据交互将所需数据块读入或者写出。
为了实现上述目的,图1示出了本发明提供一种片上数据划分读写***100,包括:
数据划分模块10,用于根据数据划分策略将片内存储数据划分在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作模块20,用于在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接模块30,用于根据数据拼接策略将片内存储数据和片外输入数据拼接得到所述原始数据表示。
对于异构平台来说,加速器的片上能够存储的数据十分有限,需要将所有的数据划分成为大小可以存储在片上的数据块,通过片外大存储介质和片内小存储介质上的数据交互将所需数据块读入或者写出。其间,片内数据地址通过片内地址索引按需提供给片上计算单元,物理框架如图5所示;图2和图3所示的实施例划分只为本发明所涉及的典型情况,本发明并不局限于特定的数据划分,极端情况如数据全部被在片上,或者数据全部被划分在片外,也在本发明的实现范围之内。
进一步地,本发明所述片上数据划分读写***100,还包括:
存储模块40,用于存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储模块40采用读写端口分离,数据的读出和写入相互独立;
所述预先处理模块20还包括:
片上处理子模块21,用于运算处理所述片内存储数据;
片外处理子模块22,用于运算处理外部输入数据处理,所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
进一步地,存储模块40还包括:
地址索引接口41,用于根据片内地址索引来索引所述片内存储数据;
数据读出接口42,用于已索引到所述片内存储数据的输出出口;
数据写入接口43,用于将要存储的数据根据写入地址写入相应存储位置。
所述片上数据划分读写***100,优选的是数据划分模块10还包括:
地址划分子模块11,用于地址空间划分成为片外数据空间和片内数据空间;
数据替换子模块12,用于根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;作为典型,如图3A所示即为一个定点数实施例的数据划分,这种划分将定点数据换分成为整数部分和小数部分,图3B所示一个浮点数实施例的数据划分。这种划分将浮点数划分成为指数部分和小数部分。图3A和图3B所示的实施例划分只为本发明所涉及的典型情况,本发明并不局限于特定的数据划分,极端情况,如数据全部被在片上,或者数据全部被划分在片外,片上的缓存结构包括对输入数据的缓存,也在本发明的设计范围之内,地址划分子模块11将索引的地址空间划分对应到片外数据空间和片内数据空间,有需要的时候通过数据替换子模块12进行交换,将需要加速数据处理的转移到片内。数据划分模块10基于芯片中的一个或多个片上计算单元实现,所述片上计算单元发起读写请求并处理拼接得到的原始数据。
所述数据拼接模块30还包括:
索引拼接子模块31,用于片内片外数据传输的形式从原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接模块30读写通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI(Peripheral Component Interconnect,外部控制器接口)、PCIE(总线和接口标准,Peripheral Component Interface Express)、HT互联技术(Hyper Transport,超传输,是一种全新的具有可升级性的新型、高速、高性能的端到端集成电路互联总线技术),所述片内数据通路包括FAT-TREE、H-TREE互联技术(hierarchy tree,层次树),片内片外数据连接方式包括多芯片互联结构;图1所示的片内片外数据连接并不局限于PCIE总线连接,也包涵多芯片互联结构如片上网络。图1所示的片上计算单元与片内存储介质的数据通路不局限于H-TREE,或者FAT-TREE等互联技术,通过片内片外数据通路可以在片外寻址,从而所述片上数据划分读写***100可以对准确无误地将各种需要拼接的数据还原成原始数据,可以有效的支持不同的数据划分策略,从而减少片内片外数据交换。
所述片内存储介质或所述片外存储介质中的所述数据被一次或者多次读写,所述数据被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质被一次或者多从外部进行读写,所述片内存储介质被一次或者多次从内部读写。
图4是本发明所述片上数据划分读写方法的一个具体实施例的流程图,其可通过如图1~2所示的本发明所述片上数据划分读写***100实现,如图7,所述片上数据划分读写方法包括:
步骤S701,数据划分步骤,根据数据划分策略将片上数据存储在不同区域,分别存储在片内存储介质和片外存储介质;
步骤S702,预先操作步骤,在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
步骤S703,数据拼接步骤,根据数据拼接策略将所述片内存储数据和片外输入数据拼接得到原始数据表示。
分别通过数据划分模块10、预先操作模块20和数据拼接模块30实现,将原始数据在片内进行无损恢复。
其中优选的,本发明所述片上数据划分读写方法需要实现对于存储的管理,实现拼接过程需要存储模块40的支持,所述数据划分读写方法还包括:
数据存储步骤,存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;所述存储步骤中读写端口分离,数据的读出和写入相互独立;具体地,所述数据存储步骤还包括:
第一、根据片内地址索引来索引所述片内存储数据;
第二、将已索引到数据的输出出口;
第三、将要存储的数据根据写入地址写入相应存储位置;
读写时分别由地址索引接口41、数据读出接口42、数据写入接口43提供支持,与片内片外数据通路和片内数据通路配合实现模块内外的数据通信,独立的读写接口可以实现同时读写。片上数据根据片内地址索引,该片内地址索引有可能经过预先操作模块30一定的操作(如地址偏移计算),检索片内存储得到片内存储数据,结合外部输入至片内的数据,经过拼接操作,得到最后的完整数据。
在一个具体实施例中,优选的本发明所述片上数据划分读写方法的一个优选实施例的流程图,如图8所示,所述片上数据划分读写方法步骤包括:
步骤S801,地址空间划分成为片外数据空间和片内数据空间;
步骤S802,根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;所述数据划分策略包括定点数划分、浮点数划分;
步骤S803,运算处理所述片内存储数据;
步骤S804,运算处理外部输入数据处理,所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
步骤S805,片内片外数据传输的形式从所述原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示。
经过处理过后的片内存储数据和片外输入数据拼接在一起,然后才能交由后续的模块进行原始数据的处理,实现加速器的功能。
进一步地,为便于理解,下面以图4~图6所示的一个具体实施例的物理设计框架图进行说明。
对于异构平台来说,加速器的片上能够存储的数据十分有限,需要将所有的数据划分成为大小可以存储在片上的数据块,通过片外大存储介质(即片外存储介质)和片内小存储介质(即片内存储介质)上的数据交互将所需数据块读入或者写出,在数据块大小上有区分,因而划分并存储在不同区域,根据容量需求不同增设所述片外存储介质。其间,片内数据地址通过片内地址索引按需提供给片上计算单元,如图6通过片内地址索引接口41获取索引以及得到索引对应的数据,图4所示即为一个实施例的片上数据索引过程,装置根据8-bit地址索引256个存储位置,得到32-bit的数据,并不局限于图示的地址索引位宽和片上数据存储位宽。流程的实现在硬件上还依赖于片内存储介质、片外存储介质、片内片外数据通路以及片内数据通路之间的相互通信。
如图6所示即为一个实施例的数据拼接操作过程,片内存储数据,图示为32bit位宽,经过片上数据处理子模块31处理,图示为32bit位宽。片上数据处理子模块31并不局限于寻址操作,也包括其他运算,如算术计算。片外输入数据,图示为32bit位宽,经过片外数据处理子模块32处理,图示为32bit位宽。处理过后的片内存储数据和片外输入数据拼接在一起,图示为64bit位宽,输送给后续模块处理,如片上计算单元,经过处理的片内存储数据和片外输入数据并不局限于图示的位宽,数据块并不局限于特定的数据位宽,数据处理并不局限于特定的操作,而可能包涵复杂的操作,不仅是简单的拼接,而包涵其他操作处理。
具体地,所述数据拼接步骤通过片内片外数据通路或片内数据通路进行,尤其所述片内片外数据通路包括PCI、PCIE、HT互联技术,实现内部与片外之间的数据流,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构,如片上网络。
所述片内存储介质或所述片外存储介质中的所述数据可以被一次或者多次读写,所述数据可以被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质可以被一次或者多从外部进行读写,介质可以被一次或者多次从内部读写。
本发明提供一种片上读写装置,包括所述片上数据划分读写***100,所述片上读写装置包括片内存储介质、片外存储介质、片内片外数据通路和片内数据通路,所述片上读写装置优选的是,还包括了静态随机存储器(Static RandomAccess Memory,SRAM),动态随机存储器(Dynamic Random Access Memory,DRAM),增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,eDRAM),寄存器堆(Registerfile,RF)等常见存储介质,也可以是新型的存储器件,如非易失存储器(Non-Volatile Memory,NVM)或者3D存储器件等等。
本发明将数据表示转换到索引,可以高效的进行片上地址空间内的重复寻址,也可以进行片外地址寻址;异构环境下片上重复寻址的装置及其使用策略,不同于直接对数据本身缓存进行加速,硬件支持需要包含片内存储介质,片外存储介质,地址索引器件,片内片外数据通路,片内数据通路。
最后,本发明旨在用于不同的数据划分的策略、装置和方法,根据不同的划分策略,数据被划分成为不同的部分,本发明中的装置支持不同划分策略的装置。
综上所述,本发明的装置及其相关使用方法可以有效的提供数据的复用性和其灵活寻址的需求,有效的降低访存带宽需求,能够适用于不同场景,并不仅仅局限于机器学习类加速器。本发明同时可以通过合理调度数据,缩减片上缓存开销,从而可以提供更加高效的加速器设计支持。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种片上数据划分读写方法,其特征在于,包括:
数据划分步骤,根据数据划分策略将片上数据存储在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作步骤,在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接步骤,根据数据拼接策略将所述片内存储数据和片外输入数据拼接得到原始数据表示。
2.根据权利要求1所述片上数据划分读写方法,其特征在于,还包括:
数据存储步骤,存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储步骤中读写端口分离,数据的读出和写入相互独立;
所述预先操作步骤还包括:
运算处理所述片内存储数据;
运算处理外部输入数据处理;
所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
3.根据权利要求2所述片上数据划分读写方法,其特征在于,所述数据存储步骤还包括:
根据片内地址索引来索引所述片内存储数据;
已索引到的数据的输出出口;
将要存储的数据根据写入地址写入相应存储位置。
4.根据权利要求1所述片上数据划分读写方法,其特征在于,所述数据划分步骤还包括:
地址空间划分成为片外数据空间和片内数据空间;
根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;
所述数据拼接步骤还包括:
片内片外数据传输的形式从所述原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接步骤通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI、PCIE、HT互联技术,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构;
所述片内存储介质或所述片外存储介质中的数据可以被一次或者多次读写,所述数据可以被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质可以被一次或者多从外部进行读写,介质可以被一次或者多次从内部读写。
5.一种片上数据划分读写***,其特征在于,包括:
数据划分模块,用于根据数据划分策略将片内存储数据划分在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作模块,用于在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接模块,用于根据数据拼接策略将片内存储数据和片外输入数据拼接得到所述原始数据表示。
6.根据权利要求5所述片上数据划分读写***,其特征在于,还包括:
存储模块,用于存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储模块采用读写端口分离,数据的读出和写入相互独立;
所述预先处理模块还包括:
片上处理子模块,用于运算处理所述片内存储数据;
片外处理子模块,用于运算处理外部输入数据处理;
所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
7.根据权利要求6所述片上数据划分读写***,其特征在于,所述存储模块还包括:
地址索引接口,用于根据片内地址索引来索引所述片内存储数据;
数据读出接口,用于已索引到的所述片内存储数据的输出出口;
数据写入接口,用于将要存储的数据根据写入地址写入相应存储位置。
8.根据权利要求5所述片上数据划分读写***,其特征在于,所述数据划分模块还包括:
地址划分子模块,用于地址空间划分成为片外数据空间和片内数据空间;
数据替换子模块,用于根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;所述数据划分模块基于芯片中的一个或多个片上计算单元实现,所述片上计算单元发起读写请求并处理拼接得到的原始数据;
所述数据拼接模块还包括:
索引拼接子模块,用于片内片外数据传输的形式从原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接模块读写通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI、PCIE、HT互联技术,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构;
所述片内存储介质或所述片外存储介质中的数据被一次或者多次读写,所述数据被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质被一次或者多从外部进行读写,所述片内存储介质被一次或者多次从内部读写。
9.一种片上读写装置,其特征在于,包括根据权利要求5~8任一项所述片上数据划分读写***。
10.根据权利要求9所述片上读写装置,其特征在于,所述片上读写装置包括静态随机存储器、动态随机存储器、增强动态随机存取存储器、寄存器堆以及非易失存储器或者3D存储器件。
CN201610210082.1A 2016-04-06 2016-04-06 片上数据划分读写方法、***及其装置 Active CN105843775B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610210082.1A CN105843775B (zh) 2016-04-06 2016-04-06 片上数据划分读写方法、***及其装置
US16/071,458 US10496597B2 (en) 2016-04-06 2016-08-09 On-chip data partitioning read-write method, system, and device
PCT/CN2016/094168 WO2017173755A1 (zh) 2016-04-06 2016-08-09 片上数据划分读写方法、***及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610210082.1A CN105843775B (zh) 2016-04-06 2016-04-06 片上数据划分读写方法、***及其装置

Publications (2)

Publication Number Publication Date
CN105843775A true CN105843775A (zh) 2016-08-10
CN105843775B CN105843775B (zh) 2018-12-04

Family

ID=56596831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610210082.1A Active CN105843775B (zh) 2016-04-06 2016-04-06 片上数据划分读写方法、***及其装置

Country Status (3)

Country Link
US (1) US10496597B2 (zh)
CN (1) CN105843775B (zh)
WO (1) WO2017173755A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109978155A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109992542A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 一种数据搬运方法、相关产品及计算机存储介质
CN110018784A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
CN110321296A (zh) * 2018-03-31 2019-10-11 深圳忆联信息***有限公司 数据写入方法及固态硬盘
CN110597559A (zh) * 2017-07-20 2019-12-20 上海寒武纪信息科技有限公司 计算装置以及计算方法
CN111045963A (zh) * 2019-12-15 2020-04-21 苏州浪潮智能科技有限公司 一种高位宽总线读写的方法及装置
CN111105024A (zh) * 2017-12-14 2020-05-05 中科寒武纪科技股份有限公司 神经网络处理器板卡及相关产品
CN111258653A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和***
CN111881071A (zh) * 2019-05-01 2020-11-03 三星电子株式会社 高带宽存储器和***
CN114996205A (zh) * 2022-07-21 2022-09-02 之江实验室 辅助3d架构近存计算***的片内数据调度控制器及方法
CN117369733A (zh) * 2023-12-07 2024-01-09 上海励驰半导体有限公司 集成电路、数据处理***和车辆
CN118070865A (zh) * 2024-04-25 2024-05-24 北京壁仞科技开发有限公司 人工智能模型的优化方法及装置、电子设备与存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11095556B2 (en) * 2017-06-30 2021-08-17 Intel Corporation Techniques to support multiple protocols between computer system interconnects
CN112446497B (zh) * 2019-09-02 2024-02-27 中科寒武纪科技股份有限公司 数据块拼接方法、相关设备及计算机可读介质
CN112540936A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 面向异构众核架构的离散访存读写方法
KR20210072524A (ko) 2019-12-09 2021-06-17 삼성전자주식회사 뉴럴 네트워크 장치 및 그 동작 방법
US11442643B2 (en) * 2020-02-13 2022-09-13 Samsung Electronics Co., Ltd. System and method for efficiently converting low-locality data into high-locality data
CN114979041B (zh) * 2022-05-18 2024-03-08 芯河半导体科技(无锡)有限公司 一种提升片上缓存利用效率的拼包方法
CN115130675B (zh) * 2022-09-02 2023-01-24 之江实验室 一种量子随机电路的多振幅模拟方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034384A (zh) * 2007-04-26 2007-09-12 北京中星微电子有限公司 一种能同时进行读写操作的dma控制器及传输方法
CN101452422A (zh) * 2007-11-29 2009-06-10 大唐移动通信设备有限公司 一种芯片的数据读写方法、相应装置和***
CN102025634A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN104699630A (zh) * 2015-03-16 2015-06-10 清华大学 共享片上缓存划分装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006059626A1 (de) * 2006-12-14 2008-06-19 Robert Bosch Gmbh Verfahren zum Auslesen von Daten aus einem Speichermedium
US8595437B1 (en) * 2008-11-21 2013-11-26 Nvidia Corporation Compression status bit cache with deterministic isochronous latency
CN104346285B (zh) * 2013-08-06 2018-05-11 华为技术有限公司 内存访问处理方法、装置及***
WO2015120825A1 (en) * 2014-02-17 2015-08-20 Mediatek Inc. Data access methods and data access devices utilizing the same
CN104035903B (zh) * 2014-07-02 2017-06-16 东南大学 一种基于可重构技术的二维数据访问动态自适应方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034384A (zh) * 2007-04-26 2007-09-12 北京中星微电子有限公司 一种能同时进行读写操作的dma控制器及传输方法
CN101452422A (zh) * 2007-11-29 2009-06-10 大唐移动通信设备有限公司 一种芯片的数据读写方法、相应装置和***
CN102025634A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN104699630A (zh) * 2015-03-16 2015-06-10 清华大学 共享片上缓存划分装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597559B (zh) * 2017-07-20 2021-10-19 上海寒武纪信息科技有限公司 计算装置以及计算方法
CN110597559A (zh) * 2017-07-20 2019-12-20 上海寒武纪信息科技有限公司 计算装置以及计算方法
CN110688157B (zh) * 2017-07-20 2022-02-22 上海寒武纪信息科技有限公司 一种计算装置及计算方法
CN110688157A (zh) * 2017-07-20 2020-01-14 上海寒武纪信息科技有限公司 一种计算装置及计算方法
CN111105024A (zh) * 2017-12-14 2020-05-05 中科寒武纪科技股份有限公司 神经网络处理器板卡及相关产品
CN111105024B (zh) * 2017-12-14 2024-03-01 中科寒武纪科技股份有限公司 神经网络处理器板卡及相关产品
CN109978155A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109992542A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 一种数据搬运方法、相关产品及计算机存储介质
CN109992542B (zh) * 2017-12-29 2021-11-30 深圳云天励飞技术有限公司 一种数据搬运方法、相关产品及计算机存储介质
CN110018784B (zh) * 2018-01-09 2023-01-10 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
CN110018784A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
US11294592B2 (en) 2018-01-09 2022-04-05 Alibaba Group Holding Limited Method and device for data processing, and computer device
CN110321296A (zh) * 2018-03-31 2019-10-11 深圳忆联信息***有限公司 数据写入方法及固态硬盘
CN111258653A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和***
CN111258653B (zh) * 2018-11-30 2022-05-24 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和***
CN111881071A (zh) * 2019-05-01 2020-11-03 三星电子株式会社 高带宽存储器和***
CN111045963A (zh) * 2019-12-15 2020-04-21 苏州浪潮智能科技有限公司 一种高位宽总线读写的方法及装置
CN114996205B (zh) * 2022-07-21 2022-12-06 之江实验室 辅助3d架构近存计算***的片内数据调度控制器及方法
CN114996205A (zh) * 2022-07-21 2022-09-02 之江实验室 辅助3d架构近存计算***的片内数据调度控制器及方法
CN117369733A (zh) * 2023-12-07 2024-01-09 上海励驰半导体有限公司 集成电路、数据处理***和车辆
CN117369733B (zh) * 2023-12-07 2024-02-23 上海励驰半导体有限公司 集成电路、数据处理***和车辆
CN118070865A (zh) * 2024-04-25 2024-05-24 北京壁仞科技开发有限公司 人工智能模型的优化方法及装置、电子设备与存储介质

Also Published As

Publication number Publication date
US20190026246A1 (en) 2019-01-24
WO2017173755A1 (zh) 2017-10-12
CN105843775B (zh) 2018-12-04
US10496597B2 (en) 2019-12-03

Similar Documents

Publication Publication Date Title
CN105843775A (zh) 片上数据划分读写方法、***及其装置
CN110688157B (zh) 一种计算装置及计算方法
CN107203807B (zh) 神经网络加速器的片上缓存带宽均衡方法、***及其装置
CN107301455B (zh) 用于卷积神经网络的混合立方体存储***及加速计算方法
WO2020047823A1 (en) Convolution over sparse and quantization neural networks
CN105678378A (zh) 间接访问样本数据以在并行处理***中执行多卷积操作
US20180247182A1 (en) Information Processing Apparatus, Image Recognition Apparatus, and Parameter Setting Method for Convolutional Neural Network
US10684946B2 (en) Method and device for on-chip repetitive addressing
CN111465943A (zh) 芯片上计算网络
WO2020073801A1 (zh) 一种3d图像处理中数据读写方法及***、存储介质及终端
Nakano Optimal parallel algorithms for computing the sum, the prefix-sums, and the summed area table on the memory machine models
CN112396072A (zh) 基于asic与vgg16的图像分类加速方法及装置
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
CN105830160A (zh) 用于将经屏蔽数据写入到缓冲器的设备及方法
WO2020118713A1 (zh) 位宽匹配电路、数据写入装置、数据读出装置和电子设备
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
Shahbahrami et al. FPGA implementation of parallel histogram computation
CN101341471A (zh) 动态高速缓存管理的设备和方法
WO2012131426A1 (en) Processor system with predicate register, computer system, method for managing predicates and computer program product
US11467973B1 (en) Fine-grained access memory controller
CN111694513A (zh) 包括循环指令存储器队列的存储器器件和方法
US11830114B2 (en) Reconfigurable hardware acceleration method and system for gaussian pyramid construction
CN112486904A (zh) 可重构处理单元阵列的寄存器堆设计方法及装置
CN102930898A (zh) 一种构建多端口异步存储模块的方法
CN117149671B (zh) 缓存实现方法、***、介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant