CN120447828A - 近存储器装置、存储器装置和电子装置 - Google Patents
近存储器装置、存储器装置和电子装置Info
- Publication number
- CN120447828A CN120447828A CN202510124328.2A CN202510124328A CN120447828A CN 120447828 A CN120447828 A CN 120447828A CN 202510124328 A CN202510124328 A CN 202510124328A CN 120447828 A CN120447828 A CN 120447828A
- Authority
- CN
- China
- Prior art keywords
- embedded vector
- memory device
- request
- embedded
- compressed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/454—Vector or matrix data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了存储器装置、电子装置和近存储器装置。该存储器装置包括近存储器装置和远存储器装置,其中,远存储器装置存储压缩嵌入矢量,近存储器装置包括:缓冲器,其接收用于对嵌入矢量进行池化的请求,并且响应于请求输出命中信号或缺失信号,其中,命中信号包括与请求对应的嵌入矢量;地址计算电路,其响应于缺失信号,计算嵌入矢量的起始存储器地址和存储器大小;解码电路,其基于起始存储器地址和存储器大小来从远存储器装置获得与请求对应的压缩嵌入矢量,并且通过对压缩嵌入矢量进行解码来输出与请求对应的嵌入矢量;以及池化电路,其通过对嵌入矢量执行池化操作来输出池化嵌入矢量。
Description
相关申请的交叉引用
本申请要求在韩国知识产权局于2024年2月6日提交的韩国专利申请No.10-2024-0018396和于2024年4月18日提交的韩国专利申请No.10-2024-0052397的优先权,所述申请的公开通过引用它们的全部并入本文中。
技术领域
本发明构思涉及一种存储器装置,并且更具体地,涉及一种包括近存储器装置和远存储器装置的存储器装置。
背景技术
电子装置通常包括执行操作的处理器和存储操作结果的存储器装置。存储器装置响应于写入请求而写入数据并且响应于读取请求而检索存储的数据。存储器装置可被分类为在电力中断时丢失存储的数据的易失性存储器装置(诸如动态随机存取存储器(DRAM)和静态RAM(SRAM))、或者即使在电力丢失时也保留数据的非易失性存储器装置(诸如闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)和电阻RAM(RRAM))。
发明内容
本发明构思的实施例提供了一种用于量化和压缩嵌入矢量元素的方法,从而有效地减少了嵌入表的数据大小。
根据本发明构思的实施例,提供了一种包括近存储器装置和远存储器装置的存储器装置,其中,远存储器装置存储压缩嵌入矢量,近存储器装置包括:缓冲器,其被配置为接收用于对嵌入矢量进行池化的请求,并且响应于请求输出命中信号或缺失信号,其中,命中信号包括与请求对应的嵌入矢量;地址计算电路,其被配置为响应于缺失信号,计算与请求对应的嵌入矢量的起始存储器地址和存储器大小;解码电路,其被配置为基于起始存储器地址和存储器大小来从远存储器装置获得与请求对应的压缩嵌入矢量,并且通过对压缩嵌入矢量进行解码来输出与请求对应的嵌入矢量;以及池化电路,其被配置为通过对嵌入矢量执行池化操作来输出池化嵌入矢量,其中,池化电路从命中信号获得嵌入矢量或从解码电路获得嵌入矢量,并且缓冲器存储所有嵌入矢量之中具有高于预设值的访问频率的嵌入矢量。
根据本发明构思的实施例,提供了一种包括近存储器装置和远存储器装置的电子装置,电子装置包括被配置为控制近存储器装置和远存储器装置的处理器,其中,远存储器装置存储压缩嵌入矢量,近存储器装置包括:缓冲器,其被配置为接收用于对嵌入矢量进行池化的请求,并且响应于请求输出命中信号或缺失信号,其中,命中信号包括与请求对应的嵌入矢量;地址计算电路,其被配置为响应于缺失信号,计算与请求对应的嵌入矢量的起始存储器地址和存储器大小;解码电路,其被配置为基于起始存储器地址和存储器大小来从远存储器装置获得与请求对应的压缩嵌入矢量,并且通过对压缩嵌入矢量进行解码来输出与请求对应的嵌入矢量;以及池化电路,其被配置为通过对嵌入矢量执行池化操作来输出池化嵌入矢量,其中,所述池化电路从缓冲器的命中信号获得嵌入矢量或者从解码电路获得嵌入矢量,并且缓冲器存储所有嵌入矢量之中具有高于预设值的访问频率的嵌入矢量。
根据本发明构思的实施例,提供了一种近存储器装置,包括:缓冲器,其被配置为接收用于对嵌入矢量进行池化的请求,并且响应于请求输出命中信号或缺失信号,其中,命中信号包括与请求对应的嵌入矢量;地址计算电路,其被配置为响应于缺失信号,计算与请求对应的嵌入矢量的起始存储器地址和存储器大小;解码电路,其被配置为基于嵌入矢量的起始存储器地址和存储器大小来从远存储器装置获得与请求对应的压缩嵌入矢量,并且通过对压缩嵌入矢量进行解码来输出与请求对应的嵌入矢量;以及池化电路,其被配置为通过对嵌入矢量执行池化操作来输出池化嵌入矢量,其中,池化电路从缓冲器的命中信号获得嵌入矢量或者从解码电路获得嵌入矢量,并且其中,缓冲器存储嵌入矢量之中具有高于预设值的访问频率的嵌入矢量。
附图说明
从下面结合附图的详细描述中,将更清楚地理解本发明构思的实施例,在附图中:
图1是根据实施例的电子装置的框图;
图2是示出根据实施例的由电子装置实现的深度神经网络(DNN)的框图;
图3是根据实施例的存储器装置的框图;
图4是示出根据实施例的电子装置在脱机部分中的操作的框图;
图5是示出根据实施例的量化操作和压缩操作的框图;
图6是根据实施例的指数表;
图7是示出根据实施例的映射表的示图;
图8是示出根据实施例的映射表地址表的示图;
图9是示出根据实施例的在联机部分中的电子装置的操作的框图;
图10是示出根据实施例的在联机部分中的近存储器装置中包括的缓冲器的操作的框图;
图11是示出根据实施例的在联机部分中的近存储器装置中包括的地址计算电路的操作的框图;
图12是示出根据实施例的在联机部分中的近存储器装置中包括的解码电路的操作的框图;以及
图13是示出根据本发明构思的实施例的电子装置的框图。
具体实施方式
图1是根据实施例的电子装置的框图。
参照图1,电子装置1可包括处理器10和存储器装置20。存储器装置20可包括近存储器装置100和远存储器装置200。电子装置1可以是被配置为处理各种信息的计算系统,诸如个人计算机(PC)、服务器、工作站、平板PC、智能电话、数码相机、仪表板摄像机等。
处理器10还可称为片上系统(SoC)。SoC可指其中执行不同操作的各种电路和模块被实现到单个集成电路中的芯片。
例如,处理器10可包括中央处理单元(CPU)和高速缓冲存储器。CPU可控制电子装置1的整体操作。高速缓冲存储器可作为用于处理器10的高速操作的缓冲器存储器。根据一些实施例,处理器10的操作速度可快于片外存储器(诸如近存储器装置100和远存储器装置200)的数据输入/输出速度。为了减少这些速度差异造成的瓶颈,高速缓冲存储器可提供支持处理器10的高速缓冲器存储器。此外,根据一些实施例,处理器10可包括协助其操作的加速器。例如,加速器可以是用于执行图形处理、机器学习、神经网络计算等的硬件装置。
处理器10可控制电子装置1的整体操作。处理器10可与近存储器装置100和远存储器装置200通信。
例如,处理器10可控制近存储器装置100的整体操作。处理器10可将数据存储在近存储器装置100中或可读取存储在近存储器装置100中的数据。此外,处理器10可控制远存储器装置200的整体操作。处理器10可将数据存储在远存储器装置200中或者可读取存储在远存储器装置200中的数据。
近存储器装置100可基于与处理器10的通信来存储数据或输出存储的数据。例如,近存储器装置100可以是诸如动态随机存取存储器(DRAM)的易失性存储器装置,并且可与处理器10封装在一起。近存储器装置100被定位为比远存储器装置200更物理地靠近处理器10,近存储器装置100提供比远存储器装置200更优越的延迟和数据输入/输出速度。
远存储器装置200可基于与处理器10的通信来存储数据或输出存储的数据。例如,远存储器装置200可以是诸如DRAM的易失性存储器装置,并且可被容纳在与处理器10分离的封装件中。远存储器装置200被定位为比近存储器装置100更远离处理器10,远存储器装置200在附加的连接性和更大的扩展容量方面可以是优越的。
根据一些实施例,可通过不同的工艺制造近存储器装置100和远存储器装置200。例如,近存储器装置100可呈现比远存储器装置200更低的延迟和更快的数据输入/输出速度,但是近存储器装置100可具有比远存储器装置200更小的存储容量。可通过逻辑工艺制造近存储器装置100。根据另一实施例,远存储器装置200可具有比近存储器装置100更大的存储容量,但是可表现出比近存储器装置100更高的延迟和更慢的数据输入/输出速度。可通过传统工艺来制造远存储器装置200。然而,本发明构思不限于此,并且可通过逻辑工艺和传统工艺的组合来制造近存储器装置100和远存储器装置200中的每一个。
此外,根据一些实施例,远存储器装置200可包括或指存储装置。存储装置可在处理器10的控制下存储数据或输出存储的数据。与高速缓冲存储器、近存储器装置100和远存储器装置200相比,存储装置可表现出相对慢的数据输入/输出速度和大的存储容量。例如,存储装置可以是非易失性存储器装置,诸如闪速存储器装置。
近存储器装置100可通过近存储器处理对嵌入矢量执行池化操作。换句话说,近存储器装置100可使用近存储器处理对嵌入矢量执行池化操作。
下面将参照图2至图12给出其详细描述。
通过执行图2至图12中描述的用于嵌入矢量分量的量化和压缩方法,可有效地减小嵌入表的数据大小。此外,通过执行图2至图12中描述的近存储器处理,可有效地减少用于嵌入表查找和池化的时间和能量消耗。
图2是示出根据实施例的由电子装置实现的深度神经网络(DNN)的框图。在下文中,DNN可被称为神经网络。
以上参照图1描述的电子装置1的近存储器处理可应用于各种神经网络。
根据一些实施例,以上参照图1描述的电子装置1的近存储器处理可应用于图2中所示的神经网络2。这里,神经网络2可指深度学习推荐模型(DLRM)。
神经网络2可包括底部多层感知器(MLP)51、嵌入层53、池化层55、交互层57和顶部MLP 59。嵌入层53和池化层55可通过以上参照图1描述的电子装置1的近存储器处理来实现。
神经网络2可用与用户偏好相关的数据来训练,使得其非常适合于基于多个用户的偏好来推荐为用户定制的产品。
训练神经网络2可包括重复地执行多个学习阶段。每个训练阶段可包括:前向传播操作,其用于针对一组给定的权重来计算损耗函数的值;计算操作,其用于针对给定的权重确定损耗函数的至少一个梯度;以及后向传播操作,其用于基于计算的梯度来更新权重。
在神经网络2的推断阶段和神经网络2的训练阶段期间的前向传播操作中,神经网络2可接收第一输入1st INPUT和第二输入2nd INPUT作为输入值。
详细地,第一输入1st INPUT可由底部MLP 51处理,并且第二输入2nd INPUT可由嵌入层53及池化层55处理。
第一输入1st INPUT可以是包括连续特征和密集特征的输入。连续特征可指通过连续值表达的特征,诸如价格、年龄、年薪等。密集特征指的是在被表示为矩阵或矢量(即,输入矩阵或输入矢量)的输入中具有值0的元素的数量小于预设数量的情况。换句话说,第一输入1st INPUT被表示为包含连续值的输入矩阵(或输入矢量),其中,输入矩阵(或输入矢量)的元素中具有值0的元素的数量可小于预设数量。
此外,第二输入2nd INPUT可以是包含分类特征和稀疏特征的输入。分类特征可指通过离散值表达的特征,诸如性别和年龄。稀疏特征指在被表示为矩阵或矢量(即,输入矩阵或输入矢量)的输入中具有值0的元素的数量大于或等于预设数量的情况。换句话说,第二输入2nd INPUT被表示为包含离散值的输入矩阵(或输入矢量),其中,在输入矩阵(或输入矢量)的元素中具有值0的元素的数量可大于或等于预设数量。
换句话说,神经网络2可接收连续特征和密集特征以及分类特征和稀疏特征二者作为输入值,并且可处理连续特征和密集特征以及分类特征和稀疏特征二者。
第一输入1st INPUT可由底部MLP 51处理。底部MLP 51可接收第一输入1st INPUT作为输入值,并且将通过对第一输入1st INPUT执行前向传播操作而处理的经处理的第一输入PROCESSED 1st INPUT提供给交互层57。
第二输入2nd INPUT可由嵌入层53和池化层55处理。第二输入2nd INPUT可包括至少一个表索引和至少一个行索引。
嵌入层53可包括多个嵌入表。当图2所示的神经网络2指深度学习推荐模型(DLRM)时,每个嵌入表可表示用户相关和/或项目相关的信息。通过访问多个嵌入表来生成池化嵌入矢量POOLED EMBEDDING VECTOR的目的是提取与特定用户、用户组、特定项目或项目组之间的交互有关的信息。
此外,一个嵌入表可包括多个嵌入矢量。在嵌入矢量中的每个嵌入矢量中包括的每个元素可以是32位单精度浮点格式。然而,本发明构思不限于此,并且在嵌入矢量中的每个嵌入矢量中包括的每个元素也可以以其它形式表达。
嵌入层53可基于表索引从多个嵌入表中识别对应的嵌入表。此外,嵌入层53可基于行索引从在对应的嵌入表中包括的多个行中识别对应的行。换句话说,嵌入层53可将与由表索引和行索引标识的嵌入表的特定行对应的嵌入矢量提供给池化层55。
换句话说,嵌入层53可基于第二输入2nd INPUT的表索引和行索引执行嵌入表查找操作,从而向池化层55提供至少一个嵌入矢量。
池化层55可接收至少一个嵌入矢量作为输入值,并对该至少一个嵌入矢量执行池化操作,从而向交互层57提供池化嵌入矢量POOLED EMBEDDING VECTOR。然而,本发明构思不限于此,并且池化操作可以是针对元素的级联运算或乘法运算。
嵌入层53和池化层55的处理操作可被实现为以上参照图1描述的电子装置1内的近存储器处理。
交互层57可接收经处理的第一输入PROCESSED 1st INPUT和池化嵌入矢量POOLEDEMBEDDING VECTOR作为输入值。然后,交互层57可通过基于特征交互函数将经处理的第一输入PROCESSED 1st INPUT与池化嵌入矢量POOLED EMBEDDING VECTOR组合来将中间输出值OUTPUT_IN提供到顶部MLP 59。
顶部MLP 59可接收中间输出值OUTPUT_IN作为输入值,并且通过对中间输出值OUTPUT_IN执行前向传播操作来输出最终输出值OUTPUT。
例如,当图2所示的神经网络2涉及DLRM时,最终输出值OUTPUT可表示预测的点进率(CTR)。
底部MLP 51、交互层57和顶部MLP 59的处理操作可由上文参照图1所述的处理器10实施。这里,由上文参照图1描述的处理器10实现的底部MLP 51和/或顶部MLP 59可对输入值执行权重应用以及乘法和累加(MAC)运算。
根据本发明构思,嵌入层53和池化层55的处理操作可被实现为以上参照图1描述的电子装置1内的近存储器处理。
图3是根据实施例的存储器装置的框图。
参照图3,近存储器装置100可包括缓冲器110、地址计算电路120、解码电路130和池化电路140。
缓冲器110可从处理器10接收请求REQUEST。此外,缓冲器110可响应于请求REQUEST输出命中信号HIT或缺失信号MISS。命中信号HIT可包括对应于请求REQUEST的嵌入矢量。
缓冲器110可存储多个嵌入表中包括的嵌入矢量之中的访问频率高于预设值的嵌入矢量。存储的嵌入矢量可被称为频繁访问矢量(FAV)31。
当与请求REQUEST对应的嵌入矢量匹配存储的嵌入矢量之一时,缓冲器110可输出命中信号HIT,当与请求REQUEST对应的嵌入矢量不匹配存储的嵌入矢量之一时,可输出缺失信号MISS。
根据一些实施例,缓冲器110可用存储器来实现。例如,缓冲器110可用易失性存储器(诸如DRAM、移动DRAM、静态RAM(SRAM)、相变RAM(PRAM)、铁电RAM(FRAM)、电阻RAM(RRAM)和/或磁RAM(MRAM))来实现。
地址计算电路120可响应于来自缓冲器110的缺失信号MISS,计算与请求REQUEST对应的嵌入矢量的起始存储器地址和存储器大小。
解码电路130可基于与请求REQUEST对应的嵌入矢量的计算的起始存储器地址和计算的存储器大小,从远存储器装置200获得与请求REQUEST对应的压缩嵌入矢量。
此外,解码电路130可通过对压缩嵌入矢量进行解码来输出与请求REQUEST对应的嵌入矢量。
解码电路130可存储指数表33。此外,地址计算电路120可存储映射表(MT)地址表35和CET地址表37。将稍后参照另一附图给出其详细描述。
池化电路140可通过对嵌入矢量执行池化操作来输出池化嵌入矢量。
池化电路140可从缓冲器110的命中信号HIT获得嵌入矢量,或响应于缓冲器110的缺失信号MISS从解码电路获得嵌入矢量。
以下,将通过将近存储器处理划分为脱机部分和联机部分来描述电子装置1的近存储器处理。详细地,将参照图4至图8描述脱机部分,并将参照图9至图12描述联机部分。
图4是示出根据实施例的电子装置在脱机部分中的操作的框图。图5是示出根据实施例的量化操作和压缩操作的框图。图6是根据实施例的指数表。图7是示出根据实施例的映射表的示图。图8是示出根据实施例的MT地址表的示图。
图4是用于描述根据实施例的电子装置1在脱机部分中的近存储器处理的框图。
脱机部分可指其中数据或任务被预先准备或处理的部分。换句话说,脱机部分指预先准备或处理数据或任务的阶段。例如,参照图2描述的训练神经网络2的过程可包括在脱机部分中。换句话说,在脱机部分中,电子装置1可基于训练数据来训练神经网络2。经训练的神经网络2可在之后的联机部分中使用。
此外,当完成神经网络2的训练时,电子装置1可生成经训练的神经网络2的嵌入矢量。此外,电子装置1可收集嵌入矢量并生成多个嵌入表ET。
根据本发明构思,电子装置1还可执行对在脱机部分中训练的神经网络2的每个嵌入矢量的元素进行量化并且对量化的元素进行压缩的处理。
参照图4,电子装置1可通过对包括在多个嵌入表ET中的嵌入矢量的元素进行量化来生成多个量化嵌入表ET_Q。
电子装置1可通过压缩多个量化嵌入表ET_Q来生成多个压缩嵌入表41。这里,电子装置1可将多个压缩嵌入表41存储在参照图1描述的远存储器装置200中。
电子装置1可通过压缩多个量化嵌入表ET_Q来生成元数据。元数据可包括参照图5和图6描述的指数表33、参照图7描述的映射表43、以及参照图8描述的MT地址表35和CET地址表37。
将参照图5描述根据实施例的量化操作和压缩操作。
参照图5,示出了多个嵌入表ET中的每个嵌入表ET中包括的每个嵌入矢量中的元素之中的一个嵌入矢量元素。换句话说,示出了来自多个嵌入表ET中的每个嵌入矢量的一个元素。
嵌入矢量中的每个嵌入矢量中包括的每个元素可以是32位单精度浮点格式。换句话说,一个嵌入矢量元素可以是32位浮点(FP32)格式的值。
参照图5,一个嵌入矢量元素可包括分配有1位的符号位S、分配有8位的指数位E和分配有23位的尾数位M。
电子装置1可通过保留来自多个嵌入表ET的每个嵌入表ET中的每个嵌入矢量中的每个元素的尾数位M的预设数量的最高有效位并去除其余尾数位M来执行量化操作。
参照图5,电子装置1可通过保留一个嵌入矢量元素的尾数位M之中的最高有效位MSB、第二最高有效位SMBS和第三最高有效位TMSB并去除尾数位M的其余位来量化该一个嵌入矢量元素。例如,电子装置1可通过从嵌入矢量元素的尾数位M中保留最高有效位MSB、第二最高有效位SMBS和第三最高有效位TMSB同时去除其余尾数位M来量化嵌入矢量元素。
换句话说,电子装置1可通过仅留下尾数位M中的三个最高有效位并去除尾数位M的其余20位来量化一个嵌入矢量元素,从而生成一个量化嵌入矢量元素。
根据本发明构思,通过仅留下尾数位M之中的三个最高有效位并去除尾数位M的其余20位,量化嵌入矢量元素可接近地逼近原始值,从而最小化其对神经网络2的影响。
电子装置1可通过保留在多个嵌入表ET中的每个嵌入表ET中包括的每个嵌入矢量的每个元素的尾数位M之中的预设数量的最高有效位并去除尾数位M的其余位来生成多个量化嵌入表ET_Q。换句话说,电子装置1可通过保留来自嵌入表ET内的嵌入矢量中的每个元素的尾数位M的预设数量的最高有效位并去除其余尾数位M来生成多个量化嵌入表ET_Q。
此外,基于在多个量化嵌入表ET_Q中的每个量化嵌入表ET_Q中包括的每个嵌入矢量的每个量化嵌入矢量元素的指数位E的位值,电子装置1可将指数位E中的每个指数位E映射到具有预设数量的位的指数位E,或者在符号位S和指数位E之间添加具有特定位值的预设数量的位。
参照图5,基于一个量化嵌入矢量元素的指数位E的位值,电子装置1可将每个指数位E映射到具有两个位的指数位E(Compress ing_case1),或者在符号位S和指数位E之间添加具有特定位值的两个位(Compressing_case2)。
具有要映射的两个位的指数位E的位值可以是00(2)、01(2)和10(2)中的任何一个。在符号位S和指数位E之间添加的两个位的值可以是11(2)。
换句话说,电子装置1可通过将每个指数位E映射到具有两个位的指数位E(Compressing_case1)或在符号位S与指数位E之间添加具有特定位值的两个位(Compressing_case2),来生成一个压缩嵌入矢量元素。
参照图5,当一个量化嵌入矢量元素的指数位E被映射到具有两个位的指数位E时(Compressing_case1),一个压缩嵌入矢量元素的大小可以是总共6位。
参照图5,当具有特定位值的两个位被添加在一个量化嵌入矢量元素的符号位S和指数位E之间时(Compresing_case2),一个压缩嵌入矢量元素的大小可以是总共14个位。
根据本发明的构思,可通过将每个指数位E映射到具有两个位的指数位E(Compressing_case1)或在符号位S与指数位E之间添加具有特定位值的两个位(Compressing_case2)来实现量化嵌入矢量元素的无损压缩。
这是因为在经训练的神经网络2的嵌入矢量中的元素的80%以上的指数位E各自具有三个值中的一个:第一位值、第二位值和第三位值。第一位值可被称为top-1,第二位值可被称为top-2,第三位值可被称为top-3。换句话说,电子装置1可通过将三个最频繁出现的指数位E分别映射为(00)2、(01)2、和(10)2的形式来压缩嵌入矢量。
此外,通过将指数位E映射到具有两个位的指数位E(Compress ing_case1),电子装置1可生成包括分别与多个嵌入表ET对应的对应第一位值、对应第二位值和对应第三位值的指数表33。
返回参照图4,元数据可包括指数表33。指数表33可以是指示分别对应于以上参照图6描述的多个嵌入表ET的top-1、top-2和top-3的位值的表。
换句话说,指数表33可包括用于指数位E的2位映射(Compress ing_case1)的元数据。
参照图4,在脱机部分中,电子装置1可将生成的指数表33储存在近存储器装置100的解码电路130中。
参照图6,可看出,示出了N个嵌入表的指数表。这里,N是正整数。
参照图6,在第0嵌入表(0)中,指数位E 01100011(2)可被映射到00(2),指数位E01100100(2)可被映射到01(2),并且指数位E01100101(2)可被映射到10(2)。在第一嵌入表(1)中,指数位E01100100(2)可被映射到00(2),指数位E 01110000(2)可被映射到01(2),指数位E01110011(2)可被映射到10(2)。在第N-1嵌入表(N-1)中,指数位E 01111000(2)可被映射到00(2),指数位E 01111100(2)可被映射到01(2),并且指数位E 01100011(2)可被映射到10(2)。
返回参照图4,元数据可包括映射表43。映射表43可表示用于计算每个嵌入矢量的起始存储器地址的元数据。
根据实施例,一个嵌入表的映射表的每个行的值可表示从映射表的第0行(即,初始行)到紧接在对应行之前的行的元素之中被压缩到14位的元素的数量(图5的Compressing_case2)。
例如,嵌入表的映射表的第0行(即,初始行)的值可以是0,第一行的值可表示从对应于第0行的元素之中被压缩到14位的元素的数量,第二行的值可表示从对应于第0行和第一行的元素之中被压缩到14位的元素的数量。
参照图7,示出N个嵌入表的映射表。这里,N是正整数。
参照图7,在第0嵌入表的第0映射表中,第0行的值可以是0。在第0嵌入表的第0映射表中,第一行的值1可表示与第0行对应的嵌入矢量的元素之中被压缩到14位的元素的数量是1,第二行的值5可表示与第0行至第一行对应的嵌入矢量(即,与第0行对应的嵌入矢量和与第一行对应的嵌入矢量)的元素之中被压缩到14位的元素的数量是5,第三行的值8可表示与第0行至第二行对应的嵌入矢量(即,与第0行对应的嵌入矢量、与第一行对应的嵌入矢量和与第二行对应的嵌入矢量)的元素之中被压缩到的14位的元素的数量是8。
此外,在脱机部分中,电子装置1可将映射表43存储在远存储器装置200中。这里,由于映射表43的大小较大,因此电子装置1可将映射表存储在远存储器装置200中。
此外,由于映射表43存储在远存储器装置200中,因此近存储器装置100可存储MT地址以访问存储在远存储器装置200中的映射表43。MT地址可指对应映射表的第一行的物理存储器地址。换句话说,MT地址可以是远存储器装置200的针对对应映射表的第一行的物理存储器地址。
返回参照图4,元数据可包括MT地址表35。MT地址表35可以是代表所有MT地址的表。
换句话说,MT地址表35可包含与所有映射表中的第一行的物理存储器地址相关的元数据。
参照图4,电子装置1可生成包括上述MT地址的MT地址表35,并且生成的MT地址表35可存储在近存储器装置100的地址计算电路120中。
换句话说,在脱机部分中,电子装置1可将MT地址表35存储在近存储器装置100的地址计算电路120中。
参照图8,示出图7的映射表的MT地址表。
参照图7和图8,对应于MT地址表的第0行的值0x00000040可表示第0映射表的第0行(即,初始行)的物理存储器。对应于MT地址表的第一行的值0x00000140可表示第一映射表的第0行(即,初始行)的物理存储器。对应于MT地址表的第(N-1)行的值0x00001040可表示第(N-1)映射表的第0行(即,初始行)的物理存储器。
近存储器装置100可存储压缩嵌入表(CET)地址以访问存储在远存储器装置200中的压缩嵌入表41。CET地址可指对应嵌入表的第一行的物理存储器地址。换句话说,CET地址可以是远存储器装置200的针对对应嵌入表的第一行的物理存储器地址。
返回参照图4,元数据可包括CET地址表37。这里,CET地址表37可以是表示所有CET地址的表。
换句话说,CET地址表37可包括与所有嵌入表的第一行的物理存储器地址有关的元数据。
参照图4,电子装置1可生成包括上述CET地址的CET地址表37,并且生成的CET地址表37可存储在近存储器装置100的地址计算电路120中。
换句话说,在脱机部分中,电子装置1可将CET地址表37存储在近存储器装置100的地址计算电路120中。
MT地址表35和CET地址表37稍后可在联机部分中由近存储器装置100的地址计算电路120使用。
返回图4,电子装置1可从多个嵌入表ET的每个嵌入表ET中包括的嵌入矢量之中提取其访问频率高于预设值的嵌入矢量,并将提取的嵌入矢量存储在近存储器装置100的缓冲器110中。这里,提取的嵌入矢量可被称为频繁访问矢量(FAV)。
上述访问是指由参照图2描述的神经网络2执行的访问。此外,上述访问频率是指相对于对相应的嵌入表中的多个嵌入矢量的访问的总数,访问表中的一个嵌入矢量的频率。根据一些实施例,访问频率可以是基于用于训练神经网络2的实际数据集的统计值。
电子装置1可通过基于各个嵌入矢量的访问频率从多个嵌入表ET中提取FAV 31来将FAV 31存储在近存储器装置100的缓冲器110中。
根据一些实施例,上述访问频率可被定义为下面的等式1。
[等式1]
这里,Covi可表示第i个嵌入矢量的访问频率,ACi可表示对第i个嵌入矢量的访问次数,并且ACtotal可表示对包括第i个嵌入矢量的嵌入表中包括的所有嵌入矢量的访问总数。此外,这里,访问频率Covi与命中率不同,因为访问频率Covi是用于特定嵌入矢量的参数,并且命中率是缓冲器110的命中信号输出频率,例如,用于缓冲器110的参数。
换句话说,电子装置1可提取访问频率Covi高于预设值的嵌入矢量,并将提取的嵌入矢量存储在近存储器装置100的缓冲器110中。
根据一些实施例,电子装置1可将一个嵌入表中包括的所有嵌入矢量之中的具有高访问频率Covi的16个嵌入矢量存储在近存储器装置100的缓冲器110中。此外,根据一些实施例,电子装置1可将一个嵌入表中包括的所有嵌入矢量中的具有高访问频率Covi的64个嵌入矢量存储在近存储器装置100的缓冲器110中。
图9是示出根据实施例的在联机部分中的电子装置的操作的框图。图10是示出根据实施例的在联机部分中的近存储器装置中包括的缓冲器的操作的框图。图11是示出根据实施例的在联机部分中的近存储器装置中包括的地址计算电路的操作的框图。图12是示出根据实施例的在联机部分中的近存储器装置中包括的解码电路的操作的框图。
这里,联机部分可指其中数据被实时处理或者任务响应于实时情况而被执行的部分。换句话说,联机部分是指数据被实时处理或者任务响应于实时情况而被执行的阶段。例如,使用参照图2描述的神经网络2对实际数据进行预测的处理可包括在联机部分中。换句话说,联机部分可包括神经网络2执行推理操作的部分。在联机部分期间,神经网络2可实时接收数据并且对该数据执行推理操作。
参照图9,处理器10可向近存储器装置100输出对于嵌入矢量的池化的请求REQUEST。这里,请求REQUEST可包括嵌入表索引,该嵌入表索引包括对应的嵌入矢量和嵌入表中的对应嵌入矢量的索引。
参照图9,缓冲器110可从处理器10接收请求REQUEST。此外,缓冲器110可响应请求REQUEST输出命中信号HIT或缺失信号MISS。命中信号HIT可包括对应于请求REQUEST的嵌入矢量。
参照图4和图9,在脱机部分中,FAV可存储在缓冲器110中。此外,在联机部分中,当对应于请求REQUEST的嵌入矢量与存储的FAV 31之一匹配时,缓冲器110输出命中信号HIT,并且当对应于请求REQUEST的嵌入矢量与存储的FAV 31中没有一个匹配时,缓冲器110输出缺失信号MISS。
图10是示出根据实施例的缓冲器110的框图。
参照图10,缓冲器110可存储标签阵列格式的FAV 31。
在标签阵列格式中,每个数据块可由包括地址的标签来标识。换句话说,标签是存储器地址的一部分,并且可指示存储在存储器中的特定位置处的数据的地址。
参照图10,缓冲器110可访问标签阵列50以确定对应的嵌入矢量是否存储在FAV缓冲器中。
请求REQUEST可包括嵌入表索引,该嵌入表索引包括对应的嵌入矢量和嵌入表中的对应嵌入矢量的索引。此外,请求REQUEST可被表示为矢量,其中,嵌入表索引的值和嵌入矢量的索引的值被级联。此外,图10所示的标签阵列50可以是一组矢量,其中,对于所有FAV,包括对应嵌入矢量的嵌入表的索引值和对应嵌入表中的对应嵌入矢量的索引值被级联。换句话说,每个标签可包括其中嵌入表编号和对应嵌入表中的嵌入矢量行索引被级联的位。
换句话说,缓冲器110可通过将包括在请求REQUEST和标签阵列50中的嵌入表索引的值与对应嵌入矢量的索引的值进行比较来输出命中信号HIT或缺失信号MISS。
当包括在请求REQUEST中的嵌入表索引的值和在嵌入表中的对应的嵌入矢量的索引的值被包括在标签阵列50中时(即,存在匹配时),缓冲器110可输出命中信号HIT。
当请求REQUEST中包括的嵌入表索引的值和嵌入表中的对应嵌入矢量的索引的值没有包括在标签阵列50中时(即,存在不匹配),缓冲器110可输出缺失信号MISS。
返回参照图9,响应于缓冲器110的命中信号HIT,池化电路140可对对应的嵌入矢量执行池化操作。
这里,池化电路140可接收命中信号HIT以及包括与请求REQUEST对应的嵌入矢量的信号EMBEDDING VECTOR。根据实施例,命中信号HIT可包括对应于请求REQUEST的嵌入矢量。
换句话说,池化电路140可接收命中信号HIT作为输入值,并通过对相应的嵌入矢量执行池化操作来输出池化嵌入矢量POOLED EMBEDDING VECTOR。
参照图9,池化电路140可向处理器10提供池化嵌入矢量POOLED EMBEDDINGVECTOR。
参照图9,响应于缓冲器110的缺失信号MISS,地址计算电路120可输出信号STARTING MEMORY ADDRESS AND MEMORY SIZE OF EMBEDDING VECTOR,该信号指示其中存储了对应嵌入矢量的远存储器装置200的对应起始存储器地址和对应存储器大小。为了使解码电路130从远存储器装置200中存储的压缩嵌入表41之中访问对应的压缩嵌入表,地址计算电路120可向解码电路130提供信号STARTING MEMORY ADDRESS AND MEMORY SIZE OFEMBEDDING VECTOR。
换句话说,地址计算电路120可接收缺失信号MISS作为输入值,并且通过计算其中存储了对应嵌入矢量的远存储器装置200的对应起始存储器地址和对应存储器大小来输出信号STARTING MEMORY ADDRESS AND MEMORY SIZE OF EMBEDDING VECTOR。
为了获得计算其中存储了对应嵌入矢量的远存储器装置200的起始存储器地址和对应存储器大小所需的值,地址计算电路120可访问远存储器装置200中存储的映射表43。
图11是生成根据实施例的地址计算电路120的框图。
参照图11,地址计算电路120可包括地址解码电路121、第一寄存器123和第二寄存器125。
为了从存储在远存储器装置200中的压缩嵌入表41中访问对应的压缩嵌入表,可能需要对应嵌入矢量的起始存储器地址和对应嵌入矢量的存储器大小。这里,起始存储器地址可以是物理存储器地址。
第一寄存器123可存储参照图4和图8描述的MT地址表35。第一寄存器123可将包括在MT地址表35中的MT地址提供给地址解码电路121。
第二寄存器125可存储参照图4描述的CET地址表37。第二寄存器125可以是CET地址寄存器。第二寄存器125可将CET地址表37中包括的CET地址提供到地址解码电路121。
响应于缺失信号MISS,地址解码电路121可计算对应压缩嵌入矢量的起始存储器地址和对应压缩嵌入矢量的存储器大小,从而输出信号STARTING MEMORY ADDRESS ANDMEMORY SIZE OF EMBEDDING VECTOR。
此外,响应于缺失信号MISS,地址解码电路121可基于与对应嵌入矢量对应的MT地址寄存器来访问存储在远存储器装置200中的映射表43。
换句话说,地址解码电路121可接收缺失信号MISS作为输入值。此外,地址解码电路121可使用与嵌入矢量对应的MT地址寄存器来访问远存储器装置200中存储的映射表43。这使得地址解码电路121能够从映射表43获得计算对应嵌入矢量的起始存储器地址和存储器大小所需的值。
根据实施例,地址解码电路121可基于下面的等式2来计算对应嵌入矢量的起始存储器地址。这里,假设对应嵌入矢量具有对应嵌入表中的索引N(即,对应嵌入矢量位于对应嵌入表中的第N行)。
[等式2]
AddrS=AddrCET+6×d+8×MT[N-1]
这里,AddrS可表示对应嵌入矢量的起始存储器地址,AddrCET可表示对应压缩嵌入表的起始存储器地址,d可表示一个嵌入矢量中包括的元素的总数,并且MT[N-1]可表示与对应嵌入表对应的映射表的第N-1行的值。
换句话说,地址解码电路121可基于对应压缩嵌入表的起始存储器地址AddrCET和紧邻在对应嵌入表对应的映射表的对应行之前的行的值MT[N-1]来计算对应压缩嵌入矢量的起始存储器地址。这里,紧邻在与嵌入表对应的映射表的对应行之前的行的值MT[N-1]可对应于在到对应行(第N行)的映射表中被压缩到14位大小的嵌入矢量的累积数量。
此外,地址解码电路121可基于下面的等式3和等式4来计算对应嵌入矢量的存储器大小。
[等式3]
AddrN=AddrCET+6×d+8×MT[N]
[等式4]
LenV=AddrN-AddrS
这里,AddrN可表示位于对应嵌入矢量的下一行的嵌入矢量(即,位于对应嵌入表的第N+1行的嵌入矢量)的起始存储器地址,AddrCET可表示对应压缩嵌入表的起始存储器地址,d可表示一个嵌入矢量中包括的元素的总数,并且MT[N]可表示与对应嵌入表对应的映射表的第N行的值。LenV可表示对应嵌入矢量的存储器大小(即,数据的长度),并且可AddrS表示对应嵌入矢量的起始存储器地址。
换句话说,地址解码电路121可基于对应嵌入矢量的起始存储器地址AddrS和对应嵌入矢量的下一个嵌入矢量的起始存储器地址AddrN来计算对应的嵌入矢量的存储器大小。
返回参照图9,响应于来自地址计算电路120的信号STARTING MEMORY ADDRESSAND MEMORY SIZE OF EMBEDDING VECTOR,解码电路130可访问存储在远存储器装置200中的压缩嵌入表41,以获得对应的压缩嵌入矢量。
换句话说,解码电路130可接收信号STARTING MEMORY ADDRESS AND MEMORY SIZEOF EMBEDDING VECTOR作为输入值,并且访问存储在远存储器装置200中的压缩嵌入表41,从而获得对应压缩嵌入表中包括的对应压缩嵌入矢量。
此后,解码电路130可通过对相应的压缩嵌入矢量进行解码来输出信号EMBEDDINGVECTOR,该信号EMBEDDING VECTOR包括与请求REQUEST对应的嵌入矢量。信号EMBEDDINGVECTOR被提供给池化电路140。
图12是示出根据实施例的解码电路130的操作的框图。
参照图12,示出了一个压缩嵌入矢量的指数表和第0压缩嵌入矢量元素CEV0、第一压缩嵌入矢量元素CEV1、以及第二压缩嵌入矢量元素CEV2的示例。
这里,解码电路130可与时钟信号同步地顺序解码嵌入矢量的元素。根据一些实施例,每个时钟周期可解码一个压缩嵌入矢量元素。
解码电路130可基于压缩嵌入矢量元素的指数位E的MSB和SMBS的位值,用指数表中包括的位值替换压缩嵌入矢量元素的指数位E的位值,或者从压缩嵌入矢量元素的指数位E中移除MSB和SMBS。
参照图12,在第0压缩嵌入矢量元素CEV0的指数位E之中,MSB是0并且SMBS是0,并且因此,第0压缩嵌入矢量元素CEV0的指数位E的位值(即00)可被01100011替换(见CYCLE1)。在第一压缩嵌入矢量元素CEV1的指数位E之中,MSB是1并且SMBS是1,并且因此,第一压缩嵌入矢量元素CEV1的指数位E的位值(即11)可被移除(见CYCLE 2)。在第二压缩嵌入矢量元素CEV2的指数位E之中,MSB是1并且SMBS是0,并且因此,第二压缩嵌入矢量元素CEV2的指数位E的位值(即10)可被01100101替换(见CYCLE 3)。
返回参照图9,解码电路130可通过对相应的压缩嵌入矢量进行解码,将包括与请求REQUEST对应的嵌入矢量的信号EMBEDDING VECTOR提供给池化电路140。
响应于解码电路130的信号EMBEEDDING VECTOR,池化电路140可对相应的嵌入矢量执行池化操作。
换句话说,池化电路140可接收信号EMBEDDING VECTOR作为输入值,并且通过对相应的嵌入矢量执行池化操作来输出池化嵌入矢量POOLED EMBEDDING VECTOR。如在命中信号HIT的情况下,池化电路140可将池化嵌入矢量POOLED EMBEDDING VECTOR提供到处理器10。
如上所述,通过执行针对嵌入矢量元素的量化和压缩方法,可有效地减小嵌入表的数据大小。
此外,通过基于上文给出的描述执行近存储器处理,可显著减少用于嵌入表查找和池化的时间和能量消耗二者。
图13是示出根据本发明构思的实施例的电子装置的框图。
参照图13,图13的系统2000可以是移动系统,诸如移动电话、智能电话、平板个人计算机(PC)、可穿戴装置、保健装置或物联网(IoT)装置。然而,图13的系统2000不一定限于移动系统,并且可包括PC、膝上型计算机、服务器、媒体播放器或诸如导航装置等汽车装置。系统2000可被称为电子装置。这里,系统2000可对应于图1的电子装置1。
参照图13,系统2000可包括主处理器2100、存储器2200a和2200b以及存储装置2300a和2300b,并且可附加地包括图像捕获装置2410、用户输入装置2420、传感器2430、通信装置2440、显示器2450、扬声器2460、供电装置2470和连接接口2480中的至少一个。主处理器2100可对应于图1的处理器10。
主处理器2100可控制系统2000的整体操作,并且更具体地,控制构成系统2000的其它组件的操作。主处理器2100可由通用处理器、专用处理器或应用处理器来实现。
主处理器2100可包括一个或多个CPU核2110,并且还可包括用于控制存储器2200a和2200b和/或存储装置2300a和2300b的控制器2120。根据实施例,主处理器2100还可包括作为用于高速数据操作(诸如人工智能(AI)数据操作)的专用电路的加速器2130。加速器2130可包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU),并且还可被实现为与主处理器2100的其它组件物理上独立的单独芯片。
存储器2200a和2200b可用作系统2000的主存储器,并且可包括诸如SRAM和/或DRAM的易失性存储器。然而,本发明构思不限于此,并且存储器2200a和2200b还可包括非易失性存储器,诸如闪速存储器、PRAM和/或RRAM。存储器2200a和2200b可在与主处理器2100相同的封装件中实现。
存储装置2300a和2300b可用作不管是否被供应电力都存储数据的非易失性存储装置,并且与存储器2200a和2200b相比可具有相对大的存储容量。存储装置2300a和2300b可包括存储控制器2310a和2310b以及在存储控制器2310a和2310b的控制下存储数据的非易失性存储器(NVM)2320a和2320b。NVM 2320a和2320b可包括具有2维(2D)结构或3维(3D)V-NAND(竖直NAND)结构的闪速存储器,但也可包括其它类型的非易失性存储器,诸如PRAM和/或RRAM。
存储装置2300a和2300b可包括在系统2000中,但是与主处理器2100物理地分离,或者可在与主处理器2100相同的封装件中实现。此外,存储装置2300a和2300b可以是固态设装置(SSD)或存储器卡,并且因此,存储装置2300a和2300b可通过诸如将在下面描述的连接接口2480的接口可拆卸地附接到系统2000的其它组件。存储装置2300a和2300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或高速非易失性存储器(NVMe)的标准协议的装置,但是不必局限于此。
这里,图1的存储器装置20可对应于存储器2200a和2200b和/或存储装置2300a和2300b。
图像捕获装置2410可捕获静止图像或运动图片,并且可包括相机、摄像机和/或网络摄像机。
用户输入装置2420可从系统2000的用户接收各种类型的数据输入,并且可包括触摸板、小键盘、鼠标和/或麦克风。
传感器2430可感测可从系统2000外部获得的各种类型的物理量,并将感测到的物理量转换成电信号。传感器2430可包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
通信装置2440可根据各种通信协议向系统2000外部的其它装置发送信号并从系统2000外部的其它装置接收信号。通信装置2440可包括天线、收发器和/或调制解调器。
显示器2450和扬声器2460可用作分别向系统2000的用户输出视觉和听觉信息的输出装置。
供电装置2470可转换从嵌入在系统2000中的电池供应的电力和/或从外部电源供应的电力,并且将经转换的电力供应给系统2000的组件。
连接接口2480可提供系统2000与外部装置之间的连接,该外部装置能够连接到系统2000并与系统2000交换数据。连接接口2480可被实现为各种接口协议(诸如高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCIe)、高速NVM(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、eMMC、通用闪存(UFS)、嵌入式UFS(eUFS)和紧凑闪存(CF)卡接口)中的一种。
尽管已经参照本发明构思的实施例具体示出和描述了本发明构思,但是将理解,在不脱离如所附权利要求中阐述的本发明构思的精神和范围的情况下,可在其中进行形式和细节上的各种改变。
Claims (20)
1.一种存储器装置,包括近存储器装置和远存储器装置,
其中,所述远存储器装置存储压缩嵌入矢量,
所述近存储器装置包括:
缓冲器,其被配置为接收用于对嵌入矢量进行池化的请求,并且响应于所述请求输出命中信号或缺失信号,其中,所述命中信号包括与所述请求对应的所述嵌入矢量;
地址计算电路,其被配置为响应于所述缺失信号,计算与所述请求对应的所述嵌入矢量的起始存储器地址和存储器大小;
解码电路,其被配置为基于所述起始存储器地址和所述存储器大小来从所述远存储器装置获得与所述请求对应的压缩嵌入矢量,并且通过对所述压缩嵌入矢量进行解码来输出与所述请求对应的所述嵌入矢量;以及
池化电路,其被配置为通过对所述嵌入矢量执行池化操作来输出池化嵌入矢量,其中,所述池化电路从所述命中信号获得所述嵌入矢量或从所述解码电路获得所述嵌入矢量,并且
所述缓冲器存储所有嵌入矢量之中具有高于预设值的访问频率的嵌入矢量。
2.如权利要求1所述的存储器装置,其中,通过保留来自尾数位的预定义数量的最高有效位并且移除其余尾数位来量化存储在所述远存储器装置中的压缩嵌入矢量的元素。
3.如权利要求1所述的存储器装置,其中,通过基于指数位的位值将指数位映射到具有两个位的指数位或者在符号位和指数位之间添加具有第一位值的两个位,来压缩存储在所述远存储器装置中的压缩嵌入矢量的元素。
4.如权利要求1所述的存储器装置,其中,所述地址计算电路还被配置为从存储在所述远存储器装置中的映射表获得计算所述起始存储器地址和所述存储器大小所需的值。
5.如权利要求4所述的存储器装置,其中,所述地址计算电路还被配置为基于与所述请求对应的压缩嵌入表的起始存储器地址和与所述请求对应的所述映射表的值,来计算与所述请求对应的所述压缩嵌入矢量的起始存储器地址。
6.如权利要求4所述的存储器装置,其中,所述地址计算电路还被配置为基于与所述请求对应的所述压缩嵌入矢量的起始存储器地址和与所述请求对应的所述压缩嵌入矢量的下一个嵌入矢量的起始存储器地址,来计算与所述请求对应的所述压缩嵌入矢量的存储器大小。
7.如权利要求1所述的存储器装置,其中,所述解码电路还被配置为基于压缩嵌入矢量元素的指数位的最高有效位和第二最高有效位,用指数表中包括的位值替换所述压缩嵌入矢量元素的所述指数位的位值,或者从所述压缩嵌入矢量元素的所述指数位中移除所述最高有效位和所述第二最高有效位。
8.一种电子装置,包括近存储器装置和远存储器装置,所述电子装置包括被配置为控制所述近存储器装置和所述远存储器装置的处理器,
其中,所述远存储器装置存储压缩嵌入矢量,
所述近存储器装置包括:
缓冲器,其被配置为接收用于对嵌入矢量进行池化的请求,并且响应于所述请求输出命中信号或缺失信号,其中,所述命中信号包括与所述请求对应的嵌入矢量;
地址计算电路,其被配置为响应于所述缺失信号,计算与所述请求对应的所述嵌入矢量的起始存储器地址和存储器大小;
解码电路,其被配置为基于所述起始存储器地址和所述存储器大小来从所述远存储器装置获得与所述请求对应的压缩嵌入矢量,并且通过对所述压缩嵌入矢量进行解码来输出与所述请求对应的所述嵌入矢量;以及
池化电路,其被配置为通过对所述嵌入矢量执行池化操作来输出池化嵌入矢量,其中,所述池化电路从所述缓冲器的所述命中信号获得所述嵌入矢量或者从所述解码电路获得所述嵌入矢量,并且
所述缓冲器存储所有嵌入矢量之中具有高于预设值的访问频率的嵌入矢量。
9.如权利要求8所述的电子装置,其中,通过保留来自尾数位的预定义数量的最高有效位并且移除其余尾数位来量化存储在所述远存储器装置中的压缩嵌入矢量的元素。
10.如权利要求8所述的电子装置,其中,通过基于指数位的位值将指数位映射到具有两个位的指数位或者在符号位和指数位之间添加具有第一位值的两个位,来压缩存储在所述远存储器装置中的压缩嵌入矢量的元素。
11.如权利要求8所述的电子装置,其中,所述地址计算电路还被配置为从存储在所述远存储器装置中的映射表获得计算所述起始存储器地址和所述存储器大小所需的值。
12.如权利要求11所述的电子装置,其中,所述地址计算电路还被配置为基于与所述请求对应的压缩嵌入表的起始存储器地址和与所述请求对应的所述映射表的值,来计算与所述请求对应的所述压缩嵌入矢量的起始存储器地址。
13.如权利要求11所述的电子装置,其中,所述地址计算电路还被配置为基于与所述请求对应的所述压缩嵌入矢量的起始存储器地址和与所述请求对应的所述压缩嵌入矢量的下一个嵌入矢量的起始存储器地址,来计算与所述请求对应的所述压缩嵌入矢量的存储器大小。
14.如权利要求8所述的电子装置,其中,所述解码电路还被配置为基于压缩嵌入矢量元素的指数位的最高有效位和第二最高有效位,用指数表中包括的位值替换所述压缩嵌入矢量元素的所述指数位的位值,或者从所述压缩嵌入矢量元素的所述指数位中移除所述最高有效位和所述第二最高有效位。
15.一种近存储器装置,其包括:
缓冲器,其被配置为接收用于对嵌入矢量进行池化的请求,并且响应于所述请求输出命中信号或缺失信号,其中,所述命中信号包括与所述请求对应的嵌入矢量;
地址计算电路,其被配置为响应于所述缺失信号,计算与所述请求对应的所述嵌入矢量的起始存储器地址和存储器大小;
解码电路,其被配置为基于所述起始存储器地址和所述存储器大小来从远存储器装置获得与所述请求对应的压缩嵌入矢量,并且通过对所述压缩嵌入矢量进行解码来输出与所述请求对应的所述嵌入矢量;以及
池化电路,其被配置为通过对所述嵌入矢量执行池化操作来输出池化嵌入矢量,其中,所述池化电路从所述缓冲器的所述命中信号获得所述嵌入矢量或者从所述解码电路获得所述嵌入矢量,并且
其中,所述缓冲器存储所有嵌入矢量之中具有高于预设值的访问频率的嵌入矢量。
16.如权利要求15所述的近存储器装置,其中,通过保留来自尾数位的预定义数量的最高有效位并且移除其余尾数位来量化存储在所述远存储器装置中的压缩嵌入矢量的元素。
17.如权利要求15所述的近存储器装置,其中,通过基于指数位的位值将指数位映射到具有两个位的指数位或者在符号位和指数位之间添加具有第一位值的两个位,来压缩存储在所述远存储器装置中的压缩嵌入矢量的元素。
18.如权利要求15所述的近存储器装置,其中,所述地址计算电路还被配置为从存储在所述远存储器装置中的映射表获得计算所述起始存储器地址和所述存储器大小所需的值。
19.如权利要求18所述的近存储器装置,其中,所述地址计算电路还被配置为基于与所述请求对应的压缩嵌入表的起始存储器地址和与所述请求对应的所述映射表的值,来计算与所述请求对应的所述压缩嵌入矢量的起始存储器地址。
20.如权利要求18所述的近存储器装置,其中,所述地址计算电路还被配置为基于与所述请求对应的所述压缩嵌入矢量的起始存储器地址和与所述请求对应的所述压缩嵌入矢量的下一个嵌入矢量的起始存储器地址,来计算与所述请求对应的所述压缩嵌入矢量的存储器大小。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20240018396 | 2024-02-06 | ||
| KR10-2024-0018396 | 2024-02-06 | ||
| KR10-2024-0052397 | 2024-04-18 | ||
| KR1020240052397A KR20250122364A (ko) | 2024-02-06 | 2024-04-18 | 니어-메모리 장치, 메모리 장치 및 전자 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120447828A true CN120447828A (zh) | 2025-08-08 |
Family
ID=96587145
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510124328.2A Pending CN120447828A (zh) | 2024-02-06 | 2025-01-26 | 近存储器装置、存储器装置和电子装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250252052A1 (zh) |
| CN (1) | CN120447828A (zh) |
| TW (1) | TW202601388A (zh) |
-
2025
- 2025-01-08 US US19/013,254 patent/US20250252052A1/en active Pending
- 2025-01-22 TW TW114102837A patent/TW202601388A/zh unknown
- 2025-01-26 CN CN202510124328.2A patent/CN120447828A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US20250252052A1 (en) | 2025-08-07 |
| TW202601388A (zh) | 2026-01-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111915001B (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
| CN110546628B (zh) | 用有向线缓冲器最小化存储器读取提高神经网络环境性能 | |
| US20220318604A1 (en) | Sparse machine learning acceleration | |
| WO2018205708A1 (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
| US9632729B2 (en) | Storage compute device with tiered memory processing | |
| CN113159284B (zh) | 一种模型训练方法及装置 | |
| CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
| US10997497B2 (en) | Calculation device for and calculation method of performing convolution | |
| CN112908384B (zh) | 可选择性操作的存储器装置 | |
| KR20200127848A (ko) | 고대역폭 메모리 및 시스템 | |
| US11669736B2 (en) | Executing neural networks on electronic devices | |
| TWI537980B (zh) | 用於寫入經遮罩資料至緩衝器之裝置及方法 | |
| US12530169B2 (en) | Electronic device and control method therefor using quantized kernel data | |
| US20250252052A1 (en) | Near memory device, memory device, and electronic device | |
| CN114819120A (zh) | 一种基于pynq平台的神经网络通用加速处理方法 | |
| Hosny et al. | Sparse bitmap compression for memory-efficient training on the edge | |
| Lim et al. | Near-memory computing with compressed embedding table for personalized recommendation | |
| KR20250122364A (ko) | 니어-메모리 장치, 메모리 장치 및 전자 장치 | |
| US12524360B1 (en) | Overhead reduction using address translation in direct memory accesses | |
| US20230004349A1 (en) | Operating method of floating point operation circuit and integrated circuit including floating point operation circuit | |
| US10152766B2 (en) | Image processor, method, and chipset for increasing intergration and performance of image processing | |
| KR20240080913A (ko) | 스토리지 장치 및 그 동작 방법 | |
| KR102722476B1 (ko) | 증가된 정밀도의 뉴럴 프로세싱 요소 | |
| CN120218257B (zh) | 大语言模型的推理服务部署方法、装置、设备和存储介质 | |
| TWI793676B (zh) | 應用於類神經網路之填充架構 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication |