CN110348249A - 一种基于存储器内计算的处理器结构 - Google Patents
一种基于存储器内计算的处理器结构 Download PDFInfo
- Publication number
- CN110348249A CN110348249A CN201910430780.6A CN201910430780A CN110348249A CN 110348249 A CN110348249 A CN 110348249A CN 201910430780 A CN201910430780 A CN 201910430780A CN 110348249 A CN110348249 A CN 110348249A
- Authority
- CN
- China
- Prior art keywords
- memory
- submodule
- storage
- module
- data
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Microcomputers (AREA)
Abstract
本发明公开了一种基于存储器内计算的处理器结构,所述处理器架构包括:存储模块、控制运算模块和存储内计算模块。所述存储模块包括指令存储器子模块和数据存储器子模块;所述控制运算模块包括取指令子模块、算术逻辑子模块、存储器控制子模块和总线接口子模块;所述存储内计算模块包括存储内计算控制子模块和具有存储内计算的存储子模块。本发明提供的改进的处理器架构,在现有处理器中引入存储内计算模块,具有功耗低、高性能的特点。
Description
技术领域
本发明涉及处理器硬件设计技术领域,具体为一种基于存储器内计算的处理器结构。
背景技术
伴随着电子学和集成电路技术的发展、智能电子设备的普及,使用电池供电的物联网设备在医疗、工业、交通、家居、金融等方面逐渐被得到广泛应用。伴随着物联网的发展,大数据等其他与之相关的技术正使物联网设备产生的数据变得越来越有价值,更容易受到黑客的窃取和破坏。为了保证数据传输时的隐私性和安全性,物联网设备除基础功能外,对其产生的数据进行加密变得十分必要。
由区块链维护的分布式数据集可有效提升物联网设备的数据隐私性和安全性,但区块链中关键的哈希算法较为复杂,且随着对安全性要求的提高,较为简单的第一代哈希算法已逐渐被淘汰,第二代哈希算法也正逐步被更复杂、冗长的第三代哈希算法替代。对于较为复杂的算法,直接通过硬件实现加密算法往往具有较大的面积代价,这将增加芯片成本,从而制约物联网的发展。
传统的加密方法一般基于通用处理器和加密软件,将数据从存储器中取出、运算后存入。这种方法具有很好的灵活性,改变存储器中的指令代码即可实现不同的算法,但在数据大量传输的过程中,时间成本和功耗代价都比较大,而这种影响对由电池供电的微型设备尤其关键。物联网设备常被应用于无人监控的环境并由电池供电,在一些场合甚至要求连续工作数年而无需充电或更换电池。对物联网设备,低功耗要求与安全性和功能的要求逐渐难以同时满足。
针对传统软件方法的问题,在传统处理器上增加由专用集成电路或协处理器担任的加速器可以在一定程度上提升速度降低功耗,但它们仍存在着问题,具体表现在:
协处理器结构复杂,引入会协处理器带来较大的面积代价,且能够带来的功耗降低不够显著;专用集成电路只能实现特定算法,缺乏灵活性。此外,采用这两种方法仍然需要将大量数据在处理器和加速器之间搬运,功耗仍有提升的空间。
与上述方法不同,存储内计算技术旨在减少数据在总线上的搬运。传统通用处理器中有大量数据在中央处理器和存储器之间的总线上搬运,导致功耗提升和性能受限。存储内计算则通过修改存储器模块,使存储器能够执行简单的逻辑功能,从而减少存储器和中央处理器之间的数据搬运,且由于需要实现的逻辑功能简单,需要的芯片面积也不大。
存储内计算技术能在保持系统灵活性的同时有效降低功耗并提升性能,而且不会有很大的面积代价。然而,存储内计算电路不同于能够直接完成复杂逻辑功能的专用集成电路或协处理器,需要和通用处理器的协同使用,而现有的处理器在与存储内计算协同工作下的技术仍不完善,无法高效工作。
发明内容
本发明的目的在于提供一种基于存储器内计算的处理器结构,包括存储模块、控制运算模块和存储器内计算模块;
所述存储模块存储处理器运行的软件指令与所需的和产生的数据;
所述控制运算模块负责处理器的逻辑功能控制并完成通用处理器的算术运算功能;
所述存储器内计算模块具有存储的存储器,能够存储数据并独立完成所存储数据的算术运算功能。
进一步的,所述存储器内计算模块包括存储内计算控制子模块和具有存储内计算的存储子模块;
所述存储内计算控制子模块用于存储器内计算子模块的时序控制,所述具有存储内计算的存储子模块用于需要进行存储内计算的数据存储和存储内计算逻辑;
所述存储内计算控制子模块的输入端与算术逻辑模块相连,存储内计算控制子模块的输出端与具有存储内计算的存储子模块相连。
进一步的,所述存储器内计算模块与控制运算模块直接相连,不以总线的形式相连。
进一步的,所述具有存储内计算的存储子模块包括存储阵列、存储内计算电路和数字辅助逻辑;
所述存储内计算电路用于对从存储阵列中取出的数据进行计算和读写逻辑,包括加法、异或、与、或运算和读写逻辑;所述数字辅助逻辑用于存储阵列的行列选择和从存储阵列中取出的数据的移位运算;所述存储阵列用于存储数据。
进一步的,所述控制运算模块包括取指令子模块、算术逻辑子模块、存储器控制子模块;
所述取指令子模块的输入端与存储模块相连,输出端与算术逻辑子模块输入端相连;所述算术逻辑子模块输出端分别与存储器控制子模块输入端和存储器内计算模块输入端相连;所述存储器控制子模块输出端与存储模块相连;
所述取指令子模块用于从存储模块中取出指令并送往算术逻辑子模块;
所述算术逻辑子模块判断指令为算术逻辑运算、存储器访问指令或存储内计算指令;若为算术逻辑运算,则算术逻辑子模块完成对应运算;若为存储器访问指令,则算术逻辑子模块处理指令并将数据送往存储器控制子模块;若为存储内计算指令,则算术逻辑子模块处理指令并将数据送往存储器内计算模块;
所述存储器控制子模块用于处理存储模块的存储器访问指令。
进一步的,所述存储模块包括数据存储器子模块和指令存储器子模块;
所述数据存储器子模块用于存储处理器运行时需要和产生的数据,所述指令存储器子模块用于存储处理器运行时需要的指令;
所述数据存储器子模块与存储器控制子模块相连;所述指令存储器子模块分别与取指令子模块和存储器控制子模块相连。
与现有技术相比,本发明的有益效果是:本发明提供的基于存储器内计算的处理器架构,在处理器运行时不需要运算模块和存储模块之间进行大量数据搬运,一方面减小了处理器完成特定算法所需的功耗,另一方面提升了处理器的性能,并且无需过大的电路面积开销。
附图说明
图1为本发明实施例的基于存储器内计算的处理器结构示意图;
图2为本发明实施例的具有存储内计算的存储模块的结构示意图;
图3为本发明实施例的带存储内计算电路的存储阵列结构示意图;
图4为本发明实施例的带有存储内计算的存储器中的数据分配示意图;
图5为本发明实施例处理器指令集架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种含有存储内计算的高性能低功耗的处理器架构。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例的基于存储器内计算的处理器结构示意图,如图1所示,具有存储内计算的存储模块包括:控制运算模块121、存储内计算模块122和存储模块123。控制运算模块121包括总线接口子模块101、取指令子模块102、算术逻辑子模块103、存储器控制子模块104、系统总线111和写回线112;所述存储内计算模块122包括存储内计算控制子模块105和具有存储内计算的存储模块106;存储模块123包括指令存储器子模块107和数据存储器子模块108。总线接口子模块101和系统总线111用于处理器和外部总线信号的连接;取指令子模块102用于从指令存储器子模块107取指令送入算术逻辑子模块103处理;算术逻辑子模块103首先进行指令译码,若指令为通用处理器需完成的运算指令则由算术逻辑子模块103一并完成,若指令为存储内计算指令则将指令交给存储内计算控制子模块105处理,若指令为通用处理器需完成的访存指令则交给存储器控制子模块104处理;存储器控制子模块104完成数据的存取、通过写回线112写回寄存器;存储内计算控制子模块105控制存储内计算指令的时序逻辑;具有存储内计算的存储模块106完成存储内计算相关指令;指令存储器子模块107用于存储处理器运行时需要的指令;数据存储器子模块108用于存储处理器运行时需要和产生的数据。
图2为本发明实施例的具有存储内计算的存储模块的结构示意图,如图2所示,具有存储内计算的存储模块包括:第一地址线201、第二地址线202、有效地址线数指示线203、功能选择线204、移位位数线205、写入数据线206、读出数据线207、二地址输入行译码器210、写入缓冲器211、带存储内计算电路的存储阵列212、移位器213、模式选择器214;带存储内计算电路的存储阵列212分别与二地址输入行译码器210、写入缓冲器211、64位移位器213相连,移位器213与模式选择器214相连,模式选择器214与写入缓冲器211相连。二地址输入行译码器210根据第一地址线201、第二地址线202和有效地址线数指示线203选择带存储内计算电路的存储阵列212中存储阵列的行地址;写入缓冲器211完成带存储内计算电路的存储阵列212中存储阵列的读写操作;带存储内计算电路的存储阵列212中的存储内计算电路根据功能选择线104完成需要的存储内计算逻辑;移位器213根据移位位数线205完成循环逻辑移位功能;模式选择器214选择当前模块需要进行的操作,如读操作或写操作。
图3为本发明实施例的带存储内计算电路的存储阵列结构示意图,如图3所示,带存储内计算电路的存储阵列包括:1S1R存储阵列331、存储内计算电路332。1S1R存储阵列331包括选择器321、323、325、327等,忆阻器322、324、326、328等,字线301、302等,位线303、304等。字线301、302等为选通线,根据忆阻器内存“1”和“0”的不同,在位线303、304等上产生不同大小的电流。同时使两个位线有效,则在对应字线上产生的电流为两个位线上的独立产生的电流的和。将位线303、304等上产生的电流和参考电流305、306、307、308比较,并在根据功能选择线311、312选择不同的门的输出信号,在输出线309、310上将得到对应的逻辑输出。
图4为本发明实施例的带有存储内计算的存储器中的数据分配示意图,如图4所示。在同一列地址401、402、403、404、405中存放相互运算频率高的数据,在同一行地址411、412、413、414、415中存放相互运算频率低的数据。在数据行411、412、413、414之后,无需存放数据的行地址421等可用于存放数据缓存,使用专用的存储内计算指令将其它位置的数据复制至缓存行地址。存储数据应遵循的基本原则如表一所示。
表一
相同行地址 | 长比特位宽的数据和无需或很少参与相互运算的数据 |
相同列地址 | 参与相互运算频繁的数据和存储内计算的数据缓存 |
图5为本发明实施例的处理器指令集架构图,如图5所示,所述处理器指令集架构包括2.2版RISC-V指令集定义的32位基础整数集501、乘法标准扩展502、原子指令扩展503、压缩指令扩展504和自定义的存储内计算指令集的算术指令511、存储内计算读取指令512、存储内计算写入指令513、存储内计算随机拷贝指令514。其中32位基础整数集501、乘法标准扩展502、原子指令扩展503和压缩指令扩展504用于完成通用处理器基础操作,存储内计算算术指令511、存储内计算读取指令512、存储内计算写入指令513和存储内计算随机拷贝指令514用于完成于存储内计算相关的扩展操作。存储内计算算术指令511完成存储内计算中的异或运算、或运算、与运算和移位运算;存储内计算读取指令512用于从带有存储内计算的存储器中向处理器读取数据;存储内计算写入指令513用于从处理器向带有存储内计算的存储器中写入数据;存储内计算随机拷贝指令514用于在带有存储内计算的存储器内的不同的地址互相搬运数据。其他需要的存储内运算均能通过上述运算组合实现。自定义的存储内计算的相关指令其具体实现如表二所示,表中A1为第一地址偏移量,A2为第二地址偏移量,BA为基地址,I/R为地址偏移量来源指示位(地址或立即数),A0为第三地址偏移量,SA为移位位数,Imm为立即数,F为搬运数指示位,Col为搬运目标列地址,Res为保留位。
表二
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (6)
1.一种基于存储器内计算的处理器结构,其特征在于,所述架构包括存储模块、控制运算模块和存储器内计算模块;
所述存储模块存储处理器运行的软件指令与所需的和产生的数据;
所述控制运算模块负责处理器的逻辑功能控制并完成通用处理器的算术运算功能;
所述存储器内计算模块具有存储的存储器,能够存储数据并独立完成所存储数据的算术运算功能。
2.根据权利要求1所述的一种基于存储器内计算的处理器结构,其特征在于,所述存储器内计算模块包括存储内计算控制子模块和具有存储内计算的存储子模块;
所述存储内计算控制子模块用于存储器内计算子模块的时序控制,所述具有存储内计算的存储子模块用于需要进行存储内计算的数据存储和存储内计算逻辑;
所述存储内计算控制子模块的输入端与算术逻辑模块相连,存储内计算控制子模块的输出端与具有存储内计算的存储子模块相连。
3.根据权利要求1所述的一种基于存储器内计算的处理器结构,其特征在于,所述存储器内计算模块与控制运算模块直接相连,不以总线的形式相连。
4.根据权利要求2所述的一种基于存储器内计算的处理器结构,其特征在于,所述具有存储内计算的存储子模块包括存储阵列、存储内计算电路和数字辅助逻辑;
所述存储内计算电路用于对从存储阵列中取出的数据进行计算和读写逻辑,包括加法、异或、与、或运算和读写逻辑;所述数字辅助逻辑用于存储阵列的行列选择和从存储阵列中取出的数据的移位运算;所述存储阵列用于存储数据。
5.根据权利要求1所述的一种基于存储器内计算的处理器结构,其特征在于,所述控制运算模块包括取指令子模块、算术逻辑子模块、存储器控制子模块;
所述取指令子模块的输入端与存储模块相连,输出端与算术逻辑子模块输入端相连;所述算术逻辑子模块输出端分别与存储器控制子模块输入端和存储器内计算模块输入端相连;所述存储器控制子模块输出端与存储模块相连;
所述取指令子模块用于从存储模块中取出指令并送往算术逻辑子模块;
所述算术逻辑子模块判断指令为算术逻辑运算、存储器访问指令或存储内计算指令;若为算术逻辑运算,则算术逻辑子模块完成对应运算;若为存储器访问指令,则算术逻辑子模块处理指令并将数据送往存储器控制子模块;若为存储内计算指令,则算术逻辑子模块处理指令并将数据送往存储器内计算模块;
所述存储器控制子模块用于处理存储模块的存储器访问指令。
6.根据权利要求1所述的一种基于存储器内计算的处理器结构,其特征在于,所述存储模块包括数据存储器子模块和指令存储器子模块;
所述数据存储器子模块用于存储处理器运行时需要和产生的数据,所述指令存储器子模块用于存储处理器运行时需要的指令;
所述数据存储器子模块与存储器控制子模块相连;所述指令存储器子模块分别与取指令子模块和存储器控制子模块相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910430780.6A CN110348249A (zh) | 2019-05-22 | 2019-05-22 | 一种基于存储器内计算的处理器结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910430780.6A CN110348249A (zh) | 2019-05-22 | 2019-05-22 | 一种基于存储器内计算的处理器结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110348249A true CN110348249A (zh) | 2019-10-18 |
Family
ID=68173922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910430780.6A Pending CN110348249A (zh) | 2019-05-22 | 2019-05-22 | 一种基于存储器内计算的处理器结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110348249A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258731A (zh) * | 2020-01-13 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种基于risc-v的多核程序调度系统及方法 |
CN113157638A (zh) * | 2021-01-27 | 2021-07-23 | 浙江大学 | 一种低功耗存储器内计算处理器和处理运算方法 |
CN117235003A (zh) * | 2023-09-26 | 2023-12-15 | 海光信息技术(苏州)有限公司 | 存储器读出电路,存储器内的数据运算方法及相关设备 |
TWI832161B (zh) * | 2021-03-12 | 2024-02-11 | 日商鎧俠股份有限公司 | 在主機與儲存裝置之間使用計算函式的資料交換 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970508A (zh) * | 2014-06-04 | 2014-08-06 | 上海航天电子通讯设备研究所 | 一种精简的微处理器ip核 |
US9092152B1 (en) * | 2013-03-14 | 2015-07-28 | Datadirect Networks, Inc. | Data storage system employing a distributed compute engine memory controller with embedded logic and arithmetic functionality and method for data migration between high-performance computing architectures and data storage devices using the same |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
-
2019
- 2019-05-22 CN CN201910430780.6A patent/CN110348249A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092152B1 (en) * | 2013-03-14 | 2015-07-28 | Datadirect Networks, Inc. | Data storage system employing a distributed compute engine memory controller with embedded logic and arithmetic functionality and method for data migration between high-performance computing architectures and data storage devices using the same |
CN103970508A (zh) * | 2014-06-04 | 2014-08-06 | 上海航天电子通讯设备研究所 | 一种精简的微处理器ip核 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
Non-Patent Citations (1)
Title |
---|
滕宇: "基于RISC-V指令集处理器的控制器研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258731A (zh) * | 2020-01-13 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种基于risc-v的多核程序调度系统及方法 |
CN113157638A (zh) * | 2021-01-27 | 2021-07-23 | 浙江大学 | 一种低功耗存储器内计算处理器和处理运算方法 |
TWI832161B (zh) * | 2021-03-12 | 2024-02-11 | 日商鎧俠股份有限公司 | 在主機與儲存裝置之間使用計算函式的資料交換 |
CN117235003A (zh) * | 2023-09-26 | 2023-12-15 | 海光信息技术(苏州)有限公司 | 存储器读出电路,存储器内的数据运算方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348249A (zh) | 一种基于存储器内计算的处理器结构 | |
US20230020571A1 (en) | Method and apparatus for distributed and cooperative computation in artificial neural networks | |
US10970247B2 (en) | Conditional operation in an internal processor of a memory device | |
CN102375800B (zh) | 用于机器视觉算法的多处理器片上系统 | |
US9141131B2 (en) | Methods and systems for performing exponentiation in a parallel processing environment | |
TWI466131B (zh) | 具有內部處理器之記憶體及在記憶體中之資料通信方法 | |
US4229801A (en) | Floating point processor having concurrent exponent/mantissa operation | |
KR20170099848A (ko) | 컨볼루션 연산을 수행하기 위한 저장 디바이스 및 방법 | |
CN107766079A (zh) | 处理器以及用于在处理器上执行指令的方法 | |
EP3035203A1 (en) | Fine-grain storage interface and method for low power accelerators | |
JPS58501560A (ja) | マイクロプロセツサ | |
CN102279818A (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
US20210082520A1 (en) | Processor in non-volatile storage memory | |
JP2024003111A (ja) | データ計算システム | |
GB2073923A (en) | Branching in computer control store | |
US7454589B2 (en) | Data buffer circuit, interface circuit and control method therefor | |
US6694407B1 (en) | Cache memory with data transfer control and method of operating same | |
CN110737612A (zh) | 一种含有存储内计算的处理器 | |
JP4060960B2 (ja) | キャッシュ記憶装置 | |
JPH06149669A (ja) | キャッシュデータ転送方式およびキャッシュデータ転送装置 | |
JPH10116191A (ja) | 圧縮命令用バッファを備えたプロセッサ | |
JP2778623B2 (ja) | プリフェッチ制御装置 | |
JP3211234B2 (ja) | 情報処理装置 | |
JPH10187659A (ja) | 積和演算器 | |
US20050188183A1 (en) | Digital signal processor having data address generator with speculative register file |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191018 |
|
RJ01 | Rejection of invention patent application after publication |