CN110888824A - 多级存储器层级结构 - Google Patents
多级存储器层级结构 Download PDFInfo
- Publication number
- CN110888824A CN110888824A CN201910840764.4A CN201910840764A CN110888824A CN 110888824 A CN110888824 A CN 110888824A CN 201910840764 A CN201910840764 A CN 201910840764A CN 110888824 A CN110888824 A CN 110888824A
- Authority
- CN
- China
- Prior art keywords
- memory
- stripes
- data
- buffer
- dividing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/025—Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Tests Of Electronic Circuits (AREA)
- Image Processing (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
一种在卷积神经网络中分层构造多级存储器的方法,包括:将存储器划分为多个部分,将该多个部分划分为多个条带,在MAC阵列中利用来自所述多个条带的输入数据,将中间结果从MAC阵列输出到结果缓冲器的多个条带中的至少一个条带,将中间结果从结果缓冲器的多个条带中的至少一个条带回送到输入数据缓冲器的多个条带中的至少一个条带,并且将最终结果从结果缓冲器的多个条带中的至少一个条带输出到输出缓冲器的多个条带中的至少一个条带。
Description
技术领域
本公开涉及卷积神经网络,并且具体地提高了乘积累加的存储器存取效率。
背景技术
卷积神经网络的核心是频繁的数据操纵器和数据存取器。通过网络的数据在连续循环中被使用和再使用(reuse)。在乘积累加层附近,这种数据的循环经常重复。使用、寻址和存储,然后寻址和提取数据,并且再使用该相同的数据,代表了在当前系统中的低效率。所寻求的是一种更有效的存储器使用和再使用的方法。寻求一种根据存取频率、带宽、操作频率和通过距离将存储器划分为层级结构的方法。还寻求一种以使系统能够更快地存取数据的方式捕获和存储数据的方法。
发明内容
一种在卷积神经网络中分层构造多级存储器的第一示例方法,包括以下步骤中的至少一个步骤:将存储器划分为多个部分;将所述多个部分划分为多个条带;在乘积累加(MAC)阵列中利用来自所述多个条带的输入数据;将中间结果从MAC阵列输出到结果缓冲器的多个条带中的至少一个条带;将中间结果从结果缓冲器的多个条带中的至少一个条带回送(loopback)到输入数据缓冲器的多个条带中的至少一个条带;以及将最终结果从结果缓冲器的多个条带中的至少一个条带输出到输出缓冲器的多个条带中的至少一个条带。
在其中一个实施例中,所述方法还包括:划分出MAC权重缓冲器部分;划分出输入数据缓冲器部分;划分出结果缓冲器部分;划分出输出缓冲器部分;划分出共享数据缓冲器部分;划分出位测试权重存储器部分;划分出位测试数据存储器部分;和划分出外部随机存取存储器部分。
在其中一个实施例中,所述方法还包括:将所述输入数据缓冲器部分划分为多个输入缓冲数据条带;将所述结果缓冲器部分划分为多个结果缓冲器条带;将所述输出缓冲器部分划分为多个输出缓冲器条带;将所述共享数据缓冲器部分划分为多个共享数据条带;和将所述位测试数据存储器部分划分为多个位测试数据存储器条带。
在其中一个实施例中,所述方法还包括从所述外部随机存取存储器部分接收权重和输入数据;对来自所述位测试权重存储器部分的权重进行解压缩;和将解压缩的权重存储在所述MAC权重缓冲器部分中。
在其中一个实施例中,所述方法还包括:将输入数据从所述位测试数据存储器部分导入到所述共享数据缓冲器部分的所述多个条带中的至少一个条带;将所述输入数据从所述共享数据缓冲器部分的所述多个条带中的至少一个条带导入到所述输入数据缓冲器部分的所述多个条带中的至少一个条带;和在所述MAC阵列处从所述MAC权重缓冲器部分和所述输入数据缓冲器部分接收权重。
在其中一个实施例中,所述方法还包括:将所述最终结果从所述输出缓冲器部分的所述多个条带中的至少一个条带输出到所述共享数据缓冲器部分的所述多个条带中的至少一个条带;将所述最终结果从所述共享数据缓冲器部分的所述多个条带中的至少一个条带输出到所述位测试数据存储器部分的所述多个条带中的至少一个条带;和将所述最终结果从所述位测试数据存储器部分的所述多个条带中的至少一个条带输出到所述外部随机存取存储器部分。
在其中一个实施例中,所述方法还包括:将所述最终结果从所述输出缓冲器部分的所述多个条带中的至少一个条带输出到所述共享数据缓冲器部分的所述多个条带中的至少一个条带;将所述最终结果从所述共享数据缓冲器部分的所述多个条带中的至少一个条带输出到所述位测试数据存储器部分的所述多个条带中的至少一个条带;和将所述最终结果从所述位测试数据存储器部分的所述多个条带中的至少一个条带输出到所述外部随机存取存储器部分。
在其中一个实施例中,所述方法还包括:存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
在其中一个实施例中,所述方法还包括:将所述多个输入缓冲数据条带划分为多个输入缓冲数据块;将所述多个结果缓冲器条带划分为多个结果缓冲器块;将所述多个输出缓冲器条带划分为多个输出缓冲器块;将所述多个输出缓冲器条带划分为多个共享数据块;和将所述多个输出缓冲器条带划分为多个位测试数据存储器块。
在其中一个实施例中,所述方法还包括:将输入数据从所述位测试数据存储器部分导入到所述共享数据缓冲器部分的所述多个块中的至少一个块;将所述输入数据从所述共享数据缓冲器部分的所述多个块中的至少一个块导入到所述输入数据缓冲器部分的所述多个块中的至少一个块;和在所述MAC阵列处从所述MAC权重缓冲器部分和所述输入数据缓冲器部分接收权重。
在其中一个实施例中,所述方法还包括:将所述最终结果从所述输出缓冲器部分的所述多个块中的至少一个块输出到所述共享数据缓冲器部分的所述多个块中的至少一个块;将所述最终结果从所述共享数据缓冲器部分的所述多个块中的至少一个块输出到所述位测试数据存储器部分的所述多个块中的至少一个块;和将所述最终结果从所述位测试数据存储器部分的所述多个块中的至少一个块输出到所述外部随机存取存储器部分。
在其中一个实施例中,所述方法还包括:存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
在其中一个实施例中,所述方法还包括:存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
在卷积神经网络中分层构造多级存储器的第二示例方法,包括以下步骤中的至少一个步骤:存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;存储数据集的高度分量,使得高度分量在存储器阵列中沿与第一地址方向正交的第二地址方向线性增加;以及存储数据集的深度分量,使得深度分量在存储器阵列中沿与第一地址方向和第二地址方向对称的第三地址方向线性增加。
在卷积神经网络中分层构造多级存储器的第三示例方法,包括以下步骤中的至少一个步骤:在第一存储器中存储三维数据集的宽度分量,使得宽度分量通过第一存储器地址空间线性增加;在第二存储器中存储三维数据集的高度分量,使得高度分量通过第二存储器地址空间线性增加;以及在第三存储器中存储三维数据集的深度分量,使得深度分量通过第三存储器地址空间线性增加。
附图说明
在附图中:
图1是根据本公开的一个实施例的第一示例系统图;
图2是根据本公开的一个实施例的第二示例系统图;
图3是根据本公开的一个实施例的示例自适应存储器层级结构;
图4是根据本公开的一个实施例的存储器条带和存储器块的第一示例;
图5是根据本公开的一个实施例的多存储器条带化的第二示例;
图6是根据本公开的一个实施例的存储器布局的第三示例;
图7是根据本公开的一个实施例的存储器布局的第四示例;
图8是根据本公开的一个实施例的形成存储器层级结构的第一示例方法;
图9是根据本公开的一个实施例的形成存储器层级结构的第二示例方法;以及
图10是根据本公开的一个实施例的形成存储器层级结构的第三示例方法。
具体实施方式
写出以下列出的实施例仅用于说明该装置和方法的应用,而不是限制范围。对该装置和方法的修改的等同形式应归入权利要求的范围内。
贯穿以下描述和权利要求使用某些术语来指代特定系统部件。如本领域技术人员将理解的,不同的公司可以以不同的名称来指代部件和/或方法。本文不打算区分名称不同但功能并非不同的部件和/或方法。
在下面的讨论和权利要求中,术语“包含(including)”和“包括(comprising)”以开放式的方式使用,并且因此可以被解释为意味着“包括,但不限于......”。此外,术语“耦合(couple)”或“耦合(第三人称)”旨在意味着间接或直接连接。因此,如果第一设备耦合至第二设备,则该连接可以是通过直接连接,或通过经由其它设备和连接件的间接连接。
图1描绘了示例混合计算系统100,其可以用于实施与过程800、900和1000的一个或多个部分或步骤的操作相关联的神经网。在该示例中,与混合系统相关联的处理器包括现场可编程门阵列(FPGA)122,图形处理器单元(GPU)120和中央处理单元(CPU)118。
处理单元118、120和122具有提供神经网的能力。CPU是可以执行许多不同功能的通用处理器,其通用性导致执行多个不同任务的能力,然而,其对多个数据流的处理是有限的并且其相对于神经网络的功能是非常有限的。GPU是具有许多能够依次处理并行任务的小处理核的一种图形处理器。FPGA是现场可编程器件,其具有被重新配置和以硬连线的电路的方式执行可编程到CPU或GPU中的任何功能的能力。由于FPGA的编程是以电路的形式,因此其速度比CPU快许多倍,并且明显快于GPU。
系统可以包含其他类型的处理器,例如加速处理单元(APU),其包括具有片上GPU元件的CPU和专用于执行高速数字数据处理的数字信号处理器(DSP)。专用集成电路(ASIC)也可以执行FPGA的硬连线功能,然而,设计和生产ASIC的前置时间大约是一年的若干个季度,而不是编程FPGA中可用的快速周转实现。
图形处理器单元120、中央处理单元118和现场可编程门阵列122彼此连接并且连接到存储器接口和控制器112。FPGA通过连接至存储器互连的可编程逻辑电路130而连接到存储器接口。由于FPGA以非常大的带宽工作的事实并且为了将FPGA中用来执行存储器任务的电子线路最小化,利用了这种附加的器件。存储器接口和控制器112被另外连接到持久性存储器磁盘110、系统存储器114和只读存储器(ROM)116。
可以利用图1的系统以对FPGA进行编程和训练。GPU可以很好地处理非结构化数据并且可以被利用以进行训练,一旦数据已经被训练,就可以找到确定性推理模型,并且CPU可以利用由GPU确定的模型数据对FPGA进行编程。
存储器接口和控制器连接到中央互连124,中央互连另外连接到GPU 120、CPU 118和FPGA 122。中央互连124另外连接到输入和输出接口128以及网络接口126。
图2描绘了可用于实施与过程600的一个或多个部分或步骤的操作相关联的神经网的第二示例混合计算系统200。在该示例中,与混合系统相关联的处理器包括现场可编程门阵列(FPGA)210和中央处理单元(CPU)220。
FPGA 210电连接到FPGA控制器212,FPGA控制器212与直接存储器存取(DMA)218接口连接。DMA连接到输入缓冲器214和输出缓冲器216,输入缓冲器214和输出缓冲器216两者都耦合到FPGA,以分别对进入FPGA和从FPGA出来的数据进行缓冲。DMA 218具有两个先进先出(FIFO)缓冲器,一个用于主CPU,另一个用于FPGA,DMA允许将数据写入适当的缓冲器以及从适当的缓冲器读取数据。
在DMA的CPU侧是主开关228,主开关228将数据和命令传送(shuttle)到DMA。DMA还连接到SDRAM控制器224,SDRAM控制器224允许将数据从CPU 220传送到FPGA和从FPGA传送到CPU 220,并且SDRAM控制器还连接到外部SDRAM 226和CPU 220。主开关228连接到外围设备接口230。闪存控制器222控制持久性存储器并且连接到CPU 220。
本公开讨论了可能的多级层级结构存储器系统。在图3所示的一个示例中,系统具有四个级别:外部随机存取存储器310,用于权重的片上共享随机存取存储器312和用于激活数据的片上共享随机存取存储器314,由多个阵列共享的共享缓冲器318,输出缓冲器320、输入数据缓冲器322和结果缓冲器324。该架构可以提供功耗和可持续存储器带宽之间的平衡。
存储器功耗与存取宽度、存取频率、操作频率、从存储器到计算元件的数据行进距离以及存储器位置成比例。片外随机存取存储器的存取的频率高并且功耗高。对大型片上共享存储器的宽数据访问是高度耗电的。
一种可能的解决方案是限制对本地随机存取存储器的高频率存取,并且将存储器与乘积累加阵列紧密耦合,以在实现高带宽的同时使功耗最小化。另一种可能的解决方案是利用智能调度来使对大存储器的存取最小化。
在图3中,元件348描绘了去往和来自外部随机存取存储器的数据通路。元件330、334和346描绘了权重读取路径。元件332、318和342描绘了激活数据输入路径。元件336、338、340和344描绘了将激活数据写回到位测试存储器(BTMEM)。
一种可能的存储器层级结构将数据/权重输入分解为多个逻辑分区以减少更昂贵的存储器存取,即随机存取存储器和/或BTMEM,并且以最小的存储器成本增加数据再使用。
网络被分为不同的部分:外部动态RAM 310、用于权重的位转移存储器(BTMEM_W)312、用于激活数据的位转移存储器(BTMEM_D)314、权重解压缩器316、共享数据缓冲器318、输出缓冲器320、输入数据缓冲器322、结果缓冲器324和乘积累加阵列328。
输入激活数据被划分为多个条带410(图4),使得条带化数据可以适合片上SRAM、位测试数据存储器(BTMEM_D)。用于条带的中间层的输出数据344被回送作为用于下一层的输入数据342,形成链接的处理顺序,这极大地减少了随机存取存储器存取。
每部分滤波器权重以高度压缩格式适配于位测试权重存储器(BTMEM_W),并且由权重解压缩器316解压缩并发送334至MAC权重缓冲器326。该部分中的条带再使用同一滤波器权重,这大大减少了外部RAM存取。
可以进一步将条带410(图4)划分为块(tile)412(图4)以增加局部累加并且削减执行延迟。在一个示例中,处理一个输入块的中间结果被保存在结果缓冲器324(图3)中,并且仅最终结果340(图3)在被写回到共享数据缓冲器318(图3)之前被发送至输出缓冲器320(图3)。
输入激活数据在一批内的每层是三维的。不同的引擎针对存储器的不同级别以及从不同的起始坐标以不同的顺序(例如深度到宽度到高度(D->W->H)或宽度到高度到深度(W->H->D))读取数据。
例如,在图5中的不同条带可以具有不同的起始坐标。图5说明了旋转偏移,示出了四个存储体。
为了支持非常高带宽的存取,示例存储器组织方案可以利用具有如图5所示的旋转偏移的多个堆积(banked)的存储器或具有如图6和图7所示的数据混合的多个堆积的存储器。
图6和7描绘了数据混合,该数据混合通过对于跨越存储体的不同地址,给予以Z->X->Y顺序读取的同一物理地址X->Y->Z,来支持不同的读取顺序。在图6和图7中示出了未对准的数据间距(data patch)。通过利用存储开销的小的存储百分比(在图6和7中被突出显示为“额外的”),实现了未对准的模式,使得通过向不同的存储体给予不同的地址来获得读取X-Y-Z、Y-X-Z或Z-X-Y顺序。
图8描绘了形成存储器层级结构的第一示例方法,包括将存储器划分810为多个部分(如图3所示):外部随机存取存储器310、用于权重的片上共享随机存取存储器312和用于激活数据的片上共享随机存取存储器314、由多个阵列共享的共享缓冲器318以及输出缓冲器320、输入数据缓冲器322和结果缓冲器324。该方法然后包括将所述多个部分划分812为多个条带410(图4),以及将所述多个条带划分814为多个块412(图4)。该方法然后包括在MAC阵列328(图3)中利用816来自所述多个块的输入数据,并将中间结果从MAC阵列输出818到结果缓冲器324(图3)的多个块中的至少一个块,以及将中间结果从所述结果缓冲器的多个块中的至少一个块回送820到输入数据缓冲器322(图3)的多个块中的至少一个块。该方法然后包括将最终结果从所述结果缓冲器的多个块中的至少一个块输出822到输出缓冲器320(图3)的多个块中的至少一个块。
图9描绘了形成如图5所示的存储器层级结构500的第二示例方法,包括:存储910数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;以及存储912数据集的高度分量,使得高度分量在存储器阵列中沿与第一地址方向正交的第二地址方向线性增加。该方法还包括存储914数据集的深度分量,使得深度分量在存储器阵列中沿与第一地址方向和第二地址方向对称的第三地址方向线性增加。
图10描绘了形成如图6和图7所示的存储器层级结构600,700的第三示例方法,包括:在第一存储器中存储1010三维数据集的宽度分量,使得宽度分量通过第一存储器地址空间线性增加;在第二存储器中存储1012三维数据集的高度分量,使得高度分量通过第二存储器地址空间线性增加;以及在第三存储器中存储1014三维数据集的深度分量,使得深度分量通过第三存储器地址空间线性增加。
本领域的技术人员将理解,本文中所描述的各种说明性的块、模块、元件、部件、方法和算法可被实施为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上面已经在功能方面对各种说明性的方框、模块、元件、部件、方法和算法进行了大致描述。将该功能实施为硬件还是软件取决于强加于整个系统的特定应用和设计约束。熟练的技术人员可以针对每个特定应用以不同方式实现所描述的功能。各种部件和块可以不同地布置(例如,以不同的顺序布置,或以不同的方式划分)而完全不脱离主题技术的范围。
应理解,所公开的过程中的步骤的特定顺序或层级是对示例方法的说明。基于设计偏好,可以理解的是,可以重新排列过程中的步骤的特定顺序或层级。一些步骤可以同时执行。所附方法权利要求以样本顺序呈现各个步骤的元素,并不意味着限制于所呈现的特定顺序或层级。
提供前面的描述是为了使本领域的技术人员能够实践本文中所描述的各个方面。前面的描述提供了主题技术的各种示例,并且主题技术不限于这些示例。对于本领域技术人员来说,对这些方面的各种修改是明显的,并且本文定义的一般原理可以应用于其他方面。因此,权利要求不旨在限于本文所示的方面,而是旨在使全部范围与权利要求的语言表述相一致,其中除非特别地如此说明,否则对单数元素的引用并非旨在表示“一个且仅一个”,而是表示“一个或多个”。除非另外特别说明,否则术语“一些”是指一个或多个。男性中的代词(例如,他的)包括女性和中性(例如,她的和它的),反之亦然。标题和副标题(如果有的话)仅用于方便而使用,并不限制本发明。谓词“被配置以”,“可操作以”和“被编程以”并不意味着对主语的任何特定的有形的或无形的修改,而是旨在可互换地使用。例如,被配置以监控和控制操作或部件的处理器,还可以意味着处理器被编程以监控和控制操作或处理器可操作以监控和控制操作。同样地,被配置以执行代码的处理器,可以被解释为被编程以执行代码或可操作以执行代码的处理器。
诸如“方面”之类的短语并不暗示这样的方面对于主题技术是必不可少的或者这样的方面适用于主题技术的所有配置。涉及一方面的公开可适用于所有配置或一个或多个配置。一个方面可提供一个或多个示例。诸如方面的短语可以指代一个或多个方面,反之亦然。诸如“实施例”之类的短语并不暗示这样的实施例对于主题技术是必不可少的或者这样的实施例适用于主题技术的所有配置。涉及一个实施例的公开可以适用于所有实施例或一个或多个实施例。实施例可以提供一个或多个示例。诸如“实施例”的短语可以指代一个或多个实施例,反之亦然。诸如“配置”之类的短语并不暗示这种配置对于主题技术是必不可少的或者这种配置适用于主题技术的所有配置。涉及一种配置的公开可以适用于所有配置或一个或多个配置。一种配置可以提供一个或多个示例。诸如“配置”的短语可以指代一个或多个配置,反之亦然。
本文使用“示例”一词来表示“用作示例或说明”。本文中描述为“示例”的任何方面或设计不必被解释为比其他方面或设计更优选或更具优势。
本领域普通技术人员已知或以后将知道的、贯穿本公开内容所描述的各个方面的元件的所有结构和功能等同物通过引用被明确地并入本文,并且旨在由权利要求所涵盖。此外,无论在权利要求中是否明确地叙述了这样的公开内容,本文所公开的内容都不旨在捐献于公众。除非使用短语“用于......的装置”明确地叙述该要素,或者在方法权利要求的情况下,使用短语“用于......的步骤”来叙述该要素,否则任何权利要求要素均不得根据35U.S.C.§112的规定进行解释。此外,关于在说明书或权利要求中使用术语“包括(include)”、“具有”或类似术语的含义,这样的术语旨在被包括在术语“包含”的方式内,类似于当“包括”在权利要求中被用作连接词时,对“包括”的解释那样。
对“一个实施例”、“实施例”、“一些实施例”、“各种实施例”或类似表述的引用指示特定元件或特性被包括在本发明的至少一个实施例中。尽管短语可能出现在各个地方,但短语不一定指的是同一实施例。结合本公开,本领域技术人员将能够设计和结合适合于实现上述功能的各种机制中的任何一种。
应当理解,本公开仅教导了说明性实施例的一个示例,并且本领域技术人员在阅读本公开之后可以容易地设计出本发明的许多变型,并且本发明的范围由以下权利要求确定。
Claims (15)
1.一种在卷积神经网络中分层构造多级存储器的方法,包括:
将存储器划分为多个部分;
将所述多个部分划分为多个条带;
在MAC阵列中利用来自所述多个条带的输入数据;
将中间结果从所述MAC阵列输出到结果缓冲器的所述多个条带中的至少一个条带;
将所述中间结果从所述结果缓冲器的所述多个条带中的至少一个条带回送到输入数据缓冲器的所述多个条带中的至少一个条带;和
将最终结果从所述结果缓冲器的所述多个条带中的至少一个条带输出到输出缓冲器的所述多个条带中的至少一个条带。
2.根据权利要求1所述的分层构造多级存储器的方法,还包括:
划分出MAC权重缓冲器部分;
划分出输入数据缓冲器部分;
划分出结果缓冲器部分;
划分出输出缓冲器部分;
划分出共享数据缓冲器部分;
划分出位测试权重存储器部分;
划分出位测试数据存储器部分;和
划分出外部随机存取存储器部分。
3.根据权利要求2所述的分层构造多级存储器的方法,还包括:
将所述输入数据缓冲器部分划分为多个输入缓冲数据条带;
将所述结果缓冲器部分划分为多个结果缓冲器条带;
将所述输出缓冲器部分划分为多个输出缓冲器条带;
将所述共享数据缓冲器部分划分为多个共享数据条带;和
将所述位测试数据存储器部分划分为多个位测试数据存储器条带。
4.根据权利要求3所述的分层构造多级存储器的方法,还包括:
从所述外部随机存取存储器部分接收权重和输入数据;
对来自所述位测试权重存储器部分的权重进行解压缩;和
将解压缩的权重存储在所述MAC权重缓冲器部分中。
5.根据权利要求4所述的分层构造多级存储器的方法,还包括:
将输入数据从所述位测试数据存储器部分导入到所述共享数据缓冲器部分的所述多个条带中的至少一个条带;
将所述输入数据从所述共享数据缓冲器部分的所述多个条带中的至少一个条带导入到所述输入数据缓冲器部分的所述多个条带中的至少一个条带;和
在所述MAC阵列处从所述MAC权重缓冲器部分和所述输入数据缓冲器部分接收权重。
6.根据权利要求5所述的分层构造多级存储器的方法,还包括:
将所述最终结果从所述输出缓冲器部分的所述多个条带中的至少一个条带输出到所述共享数据缓冲器部分的所述多个条带中的至少一个条带;
将所述最终结果从所述共享数据缓冲器部分的所述多个条带中的至少一个条带输出到所述位测试数据存储器部分的所述多个条带中的至少一个条带;和
将所述最终结果从所述位测试数据存储器部分的所述多个条带中的至少一个条带输出到所述外部随机存取存储器部分。
7.根据权利要求6所述的分层构造多级存储器的方法,还包括:
将所述最终结果从所述输出缓冲器部分的所述多个条带中的至少一个条带输出到所述共享数据缓冲器部分的所述多个条带中的至少一个条带;
将所述最终结果从所述共享数据缓冲器部分的所述多个条带中的至少一个条带输出到所述位测试数据存储器部分的所述多个条带中的至少一个条带;和
将所述最终结果从所述位测试数据存储器部分的所述多个条带中的至少一个条带输出到所述外部随机存取存储器部分。
8.根据权利要求7所述的分层构造多级存储器的方法,还包括:
存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;
存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和
存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
9.根据权利要求3所述的分层构造多级存储器的方法,还包括:
将所述多个输入缓冲数据条带划分为多个输入缓冲数据块;
将所述多个结果缓冲器条带划分为多个结果缓冲器块;
将所述多个输出缓冲器条带划分为多个输出缓冲器块;
将所述多个输出缓冲器条带划分为多个共享数据块;和
将所述多个输出缓冲器条带划分为多个位测试数据存储器块。
10.根据权利要求9所述的分层构造多级存储器的方法,还包括:
将输入数据从所述位测试数据存储器部分导入到所述共享数据缓冲器部分的所述多个块中的至少一个块;
将所述输入数据从所述共享数据缓冲器部分的所述多个块中的至少一个块导入到所述输入数据缓冲器部分的所述多个块中的至少一个块;和
在所述MAC阵列处从所述MAC权重缓冲器部分和所述输入数据缓冲器部分接收权重。
11.根据权利要求10所述的分层构造多级存储器的方法,还包括:
将所述最终结果从所述输出缓冲器部分的所述多个块中的至少一个块输出到所述共享数据缓冲器部分的所述多个块中的至少一个块;
将所述最终结果从所述共享数据缓冲器部分的所述多个块中的至少一个块输出到所述位测试数据存储器部分的所述多个块中的至少一个块;和
将所述最终结果从所述位测试数据存储器部分的所述多个块中的至少一个块输出到所述外部随机存取存储器部分。
12.根据权利要求11所述的分层构造多级存储器的方法,还包括:
存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;
存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和
存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
13.根据权利要求11所述的分层构造多级存储器的方法,还包括:
存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;
存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和
存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
14.一种在卷积神经网络中分层构造多级存储器的方法,包括:
存储数据集的宽度分量,使得宽度分量在存储器阵列中沿第一地址方向线性增加;
存储所述数据集的高度分量,使得高度分量在所述存储器阵列中沿与所述第一地址方向正交的第二地址方向线性增加;和
存储所述数据集的深度分量,使得深度分量在所述存储器阵列中沿与所述第一地址方向和所述第二地址方向对称的第三地址方向线性增加。
15.一种在卷积神经网络中分层构造多级存储器的方法,包括:
在第一存储器中存储三维数据集的宽度分量,使得所述宽度分量通过第一存储器地址空间线性增加;
在第二存储器中存储所述三维数据集的高度分量,使得所述高度分量通过第二存储器地址空间线性增加;以及
在第三存储器中存储所述三维数据集的深度分量,使得所述深度分量通过第三存储器地址空间线性增加。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862728294P | 2018-09-07 | 2018-09-07 | |
US62/728,294 | 2018-09-07 | ||
US16/287,727 US11367498B2 (en) | 2018-09-07 | 2019-02-27 | Multi-level memory hierarchy |
US16/287,727 | 2019-02-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888824A true CN110888824A (zh) | 2020-03-17 |
CN110888824B CN110888824B (zh) | 2022-04-22 |
Family
ID=69720002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910840764.4A Active CN110888824B (zh) | 2018-09-07 | 2019-09-06 | 多级存储器层级结构 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11367498B2 (zh) |
CN (1) | CN110888824B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11423284B2 (en) * | 2018-09-07 | 2022-08-23 | Black Sesame Technologies, Inc | Subgraph tile fusion in a convolutional neural network |
US11704150B2 (en) * | 2020-05-27 | 2023-07-18 | Acronis International Gmbh | Systems and methods for dynamic job performance in secure multiparty computation |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033487A1 (en) * | 2001-08-09 | 2003-02-13 | International Business Machines Corporation | Method and apparatus for managing data in a distributed buffer system |
US20110126195A1 (en) * | 2009-11-24 | 2011-05-26 | Tsirkin Michael S | Zero copy transmission in virtualization environment |
US20180032859A1 (en) * | 2016-07-27 | 2018-02-01 | Samsung Electronics Co., Ltd. | Accelerator in convolutional neural network and method for operating the same |
CN107704922A (zh) * | 2017-04-19 | 2018-02-16 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
US20180121796A1 (en) * | 2016-11-03 | 2018-05-03 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN108133270A (zh) * | 2018-01-12 | 2018-06-08 | 清华大学 | 卷积神经网络加速方法及装置 |
CN108133269A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为高速缓存存储器或神经网络单元存储器操作的存储器阵列的处理器 |
CN108133268A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为牺牲高速缓存或神经网络单元存储器操作的存储器阵列的处理器 |
CN108154228A (zh) * | 2016-12-28 | 2018-06-12 | 上海寒武纪信息科技有限公司 | 一种人工神经网络计算装置和方法 |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
US20180189229A1 (en) * | 2017-01-04 | 2018-07-05 | Stmicroelectronics S.R.L. | Deep convolutional network heterogeneous architecture |
US10049721B1 (en) * | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120121225A (ko) * | 2011-04-26 | 2012-11-05 | 에스케이하이닉스 주식회사 | 반도체 칩을 멀티테스트하기 위한 장치 및 방법 |
US8645774B2 (en) * | 2011-12-13 | 2014-02-04 | International Business Machines Corporation | Expedited memory drive self test |
US9153230B2 (en) * | 2012-10-23 | 2015-10-06 | Google Inc. | Mobile speech recognition hardware accelerator |
US11003985B2 (en) * | 2016-11-07 | 2021-05-11 | Electronics And Telecommunications Research Institute | Convolutional neural network system and operation method thereof |
US10417560B2 (en) * | 2016-12-01 | 2019-09-17 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs efficient 3-dimensional convolutions |
US11487846B2 (en) * | 2018-05-04 | 2022-11-01 | Apple Inc. | Performing multiply and accumulate operations in neural network processor |
US10411709B1 (en) * | 2018-07-25 | 2019-09-10 | Xilinx, Inc. | Circuit arrangements and methods for dividing a three-dimensional input feature map |
-
2019
- 2019-02-27 US US16/287,727 patent/US11367498B2/en active Active
- 2019-09-06 CN CN201910840764.4A patent/CN110888824B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033487A1 (en) * | 2001-08-09 | 2003-02-13 | International Business Machines Corporation | Method and apparatus for managing data in a distributed buffer system |
US20110126195A1 (en) * | 2009-11-24 | 2011-05-26 | Tsirkin Michael S | Zero copy transmission in virtualization environment |
US20180032859A1 (en) * | 2016-07-27 | 2018-02-01 | Samsung Electronics Co., Ltd. | Accelerator in convolutional neural network and method for operating the same |
US20180121796A1 (en) * | 2016-11-03 | 2018-05-03 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN108133269A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为高速缓存存储器或神经网络单元存储器操作的存储器阵列的处理器 |
CN108133268A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为牺牲高速缓存或神经网络单元存储器操作的存储器阵列的处理器 |
CN108154228A (zh) * | 2016-12-28 | 2018-06-12 | 上海寒武纪信息科技有限公司 | 一种人工神经网络计算装置和方法 |
US20180189229A1 (en) * | 2017-01-04 | 2018-07-05 | Stmicroelectronics S.R.L. | Deep convolutional network heterogeneous architecture |
US20180189641A1 (en) * | 2017-01-04 | 2018-07-05 | Stmicroelectronics S.R.L. | Hardware accelerator engine |
US10049721B1 (en) * | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
CN107704922A (zh) * | 2017-04-19 | 2018-02-16 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN108133270A (zh) * | 2018-01-12 | 2018-06-08 | 清华大学 | 卷积神经网络加速方法及装置 |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
Also Published As
Publication number | Publication date |
---|---|
US11367498B2 (en) | 2022-06-21 |
US20200082898A1 (en) | 2020-03-12 |
CN110888824B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11694066B2 (en) | Machine learning runtime library for neural network acceleration | |
US10911352B2 (en) | Multicast message delivery using a directional two-dimensional router and network | |
US11947798B2 (en) | Packet routing between memory devices and related apparatuses, methods, and memory systems | |
US11294599B1 (en) | Registers for restricted memory | |
US10515135B1 (en) | Data format suitable for fast massively parallel general matrix multiplication in a programmable IC | |
US10768856B1 (en) | Memory access for multiple circuit components | |
EP3105761B1 (en) | Memory physical layer interface logic for generating dynamic random access memory (dram) commands with programmable delays | |
CN110582745B (zh) | 存储器装置及可促进张量存储器存取的方法 | |
CN112204524A (zh) | 用于硬件加速的硬件资源的嵌入式调度 | |
WO2017156968A1 (zh) | 神经网络的计算方法、系统及其装置 | |
EP3953829A1 (en) | Domain assist processor-peer for coherent acceleration | |
US20160105494A1 (en) | Fast Fourier Transform Using a Distributed Computing System | |
CN110888824B (zh) | 多级存储器层级结构 | |
EP3827356A1 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
US20220092398A1 (en) | Method and Apparatus for Offloading Tasks to Accelerator for Enhancing System Performance Using Configurable Devices | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN117255987A (zh) | 增加合成孔径雷达的高速缓存命中 | |
US11704535B1 (en) | Hardware architecture for a neural network accelerator | |
CN111886605B (zh) | 针对多个输入数据集的处理 | |
RU2643622C1 (ru) | Вычислительный модуль | |
EP4016300A1 (en) | Low overhead memory content estimation | |
JP7152343B2 (ja) | 半導体装置 | |
Ibrahim et al. | Extending Data Flow Architectures for Convolutional Neural Networks to Multiple FPGAs | |
Medardoni et al. | Capturing the interaction of the communication, memory and I/O subsystems in memory-centric industrial MPSoC platforms | |
KR101414453B1 (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 |