CN116149554A - 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 - Google Patents
一种基于risc-v及其扩展指令的数据存储处理系统及其方法 Download PDFInfo
- Publication number
- CN116149554A CN116149554A CN202310083012.4A CN202310083012A CN116149554A CN 116149554 A CN116149554 A CN 116149554A CN 202310083012 A CN202310083012 A CN 202310083012A CN 116149554 A CN116149554 A CN 116149554A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- unit
- register
- expansion
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 188
- 238000012545 processing Methods 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000015654 memory Effects 0.000 claims abstract description 194
- 238000003860 storage Methods 0.000 claims abstract description 169
- 238000004891 communication Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 45
- 238000009826 distribution Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 28
- 238000004064 recycling Methods 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 15
- 238000011084 recovery Methods 0.000 claims description 15
- 238000003672 processing method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- 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/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0626—Reducing size or complexity of storage systems
-
- 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种基于RISC‑V及其扩展指令的数据存储处理系统及其方法,包括RISC‑V架构CPU、第一和第二存储模块、缓存模块、总线、第一和第二控制模块以及直接存储访问器。CPU用于对读取到的程序指令的类型进行判断,对储存数据进行相应的读取和写入;第一存储模块用于存放程序指令和数据;缓存模块用于缓存CPU的读写数据;总线用于各模块进行通信;第一控制模块用于控制外部主控的接口和外部的快闪存储器;第二存储模块用于存放各模块数据、各模块运行的中间结果、预设程序以及重要信息;直接存储访问器用于在CPU的控制下完成数据搬运,以及从某个地址读取数据再写到另一个地址;第二控制模块用于控制各模块的复位和时钟。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种基于RISC-V及其扩展指令的数据存储处理系统及其方法。
背景技术
数据存储器是指可多次重复读写的非易失性存储器,该类型非易失性存储器包括eMMC存储卡、UFS存储卡、SSD存储盘、USB存储盘、SD存储卡等。
随着大数据和人工智能应用的发展,数据量呈现爆发式增长,因此对数据存储的需求日益加剧。传统内存技术的容量已经接近其物理存储密度的极限,而非易失性存储器具有按字节寻址、能耗低、读写速度快等优良特性,有望替代传统的动态随机存储器和磁盘。另外非易失性存储器作为非易失的存储介质,不需要动态刷新,因此不会引起大量的能量消耗;此外,非易失性存储器的读性能与动态随机存储器相近,而且非易失性存储器单个存储单元的容量具有较强的可扩展性。传统的动态随机存储器作为内存介质掉电后数据会自动丢失,即数据不会在存储介质中驻留较长时间,而当非易失性内存作为非易失性存储介质时,数据可以保留相对较久的时间。
CPU是数据存储器中的核心模块,CPU的处理能力直接影响到数据存储器的性能。目前数据存储器中使用的主要是基于ARM和ARC指令集的CPU,这些指令集是私有指令集,不能自定义扩展指令,而ARM和ARC指令集中也没有没有符合数据存储特点的指令。因此在面对存储处理性能要求的提升时,只能通过提高CPU频率和增加更多CPU核心的方法满足,但上述方法带来了数据存储器功耗的增高和数据存储器面积的增加。
发明内容
为了克服现有技术的不足,本发明提供一种基于RISC-V及其扩展指令的数据存储处理系统及其方法,用于解决现有的数据储存器在提升其存储处理性能时带来功耗和面积增加的技术问题,从而达到以较低的数据存储器功耗和较少的数据存储器面积即可大幅提高数据储存器的存储处理性能的目的。
为解决上述问题,本发明所采用的技术方案如下:
一种基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,包括:
RISC-V架构CPU,用于对读取到的程序指令的类型进行判断,并根据判断结果执行所述程序指令,对储存数据进行相应的读取和写入;
第一存储模块:用于存放程序指令和程序数据;
缓存模块:用于缓存所述RISC-V架构CPU的读写数据;
总线,用于各模块通过一致的总线协议进行通信;
第一控制模块,用于控制外部主控的接口和外部的快闪存储器;
第二存储模块:用于存放各模块数据、各模块运行的中间结果、预设的程序以及重要信息;
直接存储访问器,用于在所述RISC-V架构CPU的控制下完成数据搬运,以及从某个地址读取数据再写到另一个地址;
第二控制模块,用于控制各模块的复位和时钟。
作为本发明优选的实施方式,所述RISC-V架构CPU,包括:
指令获取单元,用于根据程序起始地址和PC指针,从所述RISC-V架构CPU外部关联模块读取程序指令;
指令译码单元,用于对指令进行译码,并识别出不同功能的程序指令、程序指令中的寄存器号以及立即数数据;
寄存器堆,包括若干指令架构定义的寄存器,用于程序指令执行过程中的数据交互;
分发单元,用于判断所述程序指令属于RISC-V指令集指令或数据存储扩展指令,并根据判断结果将所述RISC-V指令集指令或所述数据存储扩展指令分发给执行单元或数据存储扩展处理单元;
执行单元,用于执行所述分发单元分发的RISC-V指令集指令,并返回执行结果;
数据访问接口,用于从所述RISC-V架构CPU外部关联模块读取数据或向所述RISC-V架构CPU外部关联模块写入数据;
数据存储扩展处理单元,用于执行所述分发单元分发的数据存储扩展指令,并返回执行结果。
作为本发明优选的实施方式,所述数据存储扩展处理单元,包括:
控制与状态寄存器,用于根据接收到的数据存储扩展指令对寄存器进行设置,控制所述数据存储扩展处理单元的功能,以及对寄存器进行读取,获得所述数据存储扩展处理单元的状态;
寄存器数据暂存单元,包括目的寄存器,用于存储所述分发单元分发的程序数据以及所述数据存储扩展处理单元处理完成的数据;
扩展指令分发和回收单元,用于根据所述数据存储扩展指令的操作类型,分发给寄存器操作执行单元、存储数据操作执行单元以及存储高级功能执行单元的其中一个执行,并接收返回的执行数据和结果,再经由扩展接口返回给所述分发单元;
扩展接口,为与所述分发单元进行交互的接口,用于接收待处理的数据存储扩展指令和数据,以及获取所述控制与状态寄存器、所述寄存器数据暂存单元以及所述扩展指令分发和回收单元返回的执行数据和结果;
寄存器操作执行单元,用于接收到所述数据存储扩展指令后,从所述寄存器数据暂存单元获取源数据,从所述控制与状态寄存器读取辅助信息,根据所述数据存储扩展指令的操作类型,对寄存器数据进行对应的操作,在完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,并向所述扩展指令分发和回收单元发出完成响应;
存储数据操作执行单元,用于接收到所述数据存储扩展指令后,通过数据读取单元自存储空间的源地址开始,从存储空间读取数据,并进行对应的数据功能操作,在完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,并向所述扩展指令分发和回收单元发出完成响应;
存储高级功能执行单元,用于接收到所述数据存储扩展指令后,通过数据读取单元自存储空间的源地址和比较数据源地址开始,从存储空间读取数据,进行对应的高级功能操作,在完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,并向所述扩展指令分发和回收单元发出完成响应;
数据读取单元,用于产生地址和数据长度,并经扩展单元数据访问接口从存储空间读取指定数据长度的数据;
数据写出单元,用于产生地址和数据长度,并经扩展单元数据访问接口向存储空间写入指定数据长度的数据;
扩展单元数据访问接口,用于将数据读写请求转换成符合总线协议的数据访问请求。
作为本发明优选的实施方式,所述第一存储模块,包括:
低延时指令存储器,为用于存放程序指令的静态随机存储器,并被所述RISC-V架构CPU直接访问;
低延时数据存储器,为用于存放程序数据的静态随机存储器,并被所述RISC-V架构CPU直接访问。
作为本发明优选的实施方式,所述第二存储模块,包括:
系统存储器,用于存放各模块的数据和运行的中间结果;
只读存储器,用于存储预设的程序,在上电时,所述RISC-V架构CPU从所述只读存储器中读取所述预设的程序并执行;
非易失性存储器,用于存放重要信息。
作为本发明优选的实施方式,所述缓存模块,包括:
指令缓存,用于缓存所述RISC-V架构CPU从所述系统存储器或所述只读存储器读取的部分指令;
数据缓存,用于缓存所述RISC-V架构CPU读写所述系统存储器的部分数据。
作为本发明优选的实施方式,所述第一控制模块,包括:
主控接口控制器,用于控制外部主控的接口,并对接口协议进行处理;
快闪存储接口控制器,用于控制外部的快闪存储器;
所述第二控制模块,包括:
复位控制单元,用于对各模块进行复位控制;
时钟控制单元,用于对各模块的时钟进行控制。
一种基于RISC-V及其扩展指令的数据存储处理方法,包括以下步骤:
对数据存储处理系统进行上电复位,RISC-V架构CPU从只读存储器中读取和执行启动程序指令;
所述RISC-V架构CPU初始化快闪存储接口控制器,并向所述快闪存储接口控制器发送读取命令,从外部的快闪存储器中读取运行程序指令,并设置存储运行程序的位置;
所述RISC-V架构CPU根据读取到的运行程序指令,从启动程序跳转到执行运行程序,并从低延时指令存储器中依次读取程序指令;
所述RISC-V架构CPU对读取到的程序指令的类型进行判断,并根据判断结果执行所述程序指令,对储存数据进行相应的读取和写入,得到一处理结果并返回后,执行下一程序指令;
其中,所述数据存储处理系统包括RISC-V架构CPU、只读存储器、快闪存储接口控制器以及低延时指令存储器,所述只读存储器用于存储预设的程序,所述快闪存储接口控制器用于控制外部的快闪存储器,所述低延时指令存储器为用于存放程序指令的静态随机存储器。
作为本发明优选的实施方式,在所述RISC-V架构CPU从低延时指令存储器中依次读取程序指令时,包括:
所述RISC-V架构CPU通过指令获取单元计算程序指令的位置并进行读取,并发送给指令译码单元;
所述指令译码单元对读取到的程序指令进行解析,得到相应的解析结果,并将所述解析结果存放在寄存器堆;
分发单元从所述寄存器堆中读取到相应的解析结果,并根据所述解析结果获取到所述程序指令的指令类型;
若所述程序指令属于RISC-V指令集指令,则将所述RISC-V指令集指令分发给执行单元,所述执行单元执行所述RISC-V指令集指令,并将执行结果通过数据访问接口写回所述寄存器堆、系统存储器以及低延时数据存储器中的至少一种;
若所述程序指令属于数据存储扩展指令,则将所述数据存储扩展指令分发给数据存储扩展处理单元,所述数据存储扩展处理单元执行所述数据存储扩展指令,并将执行结果通过数据访问接口写回所述寄存器堆、系统存储器以及低延时数据存储器中的至少一种;
其中,所述数据存储处理系统还包括系统存储器和低延时数据存储器,所述系统存储器用于存放各模块的数据和运行的中间结果,所述低延时数据存储器为用于存放程序数据的静态随机存储器;所述RISC-V架构CPU包括指令获取单元、指令译码单元、寄存器堆、分发单元、执行单元、数据访问接口以及数据存储扩展处理单元;所述解析结果包括指令类型、操作类型、程序指令所用到的寄存器标识号以及立即数。
作为本发明优选的实施方式,在所述数据存储扩展处理单元执行所述数据存储扩展指令时,包括:
所述分发单元将读取到的数据存储扩展指令分发给数据存储扩展处理单元;
所述数据存储扩展处理单元通过扩展接口接收数据存储扩展指令以及判断所述数据存储扩展指令的类型;
若所述数据存储扩展指令的类型是控制与状态寄存器访问,则所述扩展接口对所述控制与状态寄存器进行读或写,并返回指令完成的响应信息;
若所述数据存储扩展指令的类型是执行类,则所述扩展接口将所述数据存储扩展指令中的操作类型和立即数发给扩展指令分发和回收单元,同时将所述数据存储扩展指令中的源寄存器数据和目的寄存器标识号写入寄存器数据暂存单元;
所述扩展指令分发和回收单元对所述数据存储扩展指令的操作类型进行判断;
若所述数据存储扩展指令为寄存器操作扩展指令,则寄存器操作执行单元从所述寄存器数据暂存单元中获取源寄存器数据,从所述控制与状态寄存器读取相应的辅助信息,并根据操作类型对寄存器数据进行对应的操作,完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,向扩展指令分发和回收单元发出完成响应;
若所述数据存储扩展指令为存储数据操作扩展指令,则存储数据操作执行单元从所述寄存器数据暂存单元获取相应的信息,从所述控制与状态寄存器读取相应的辅助信息后,所述存储数据操作执行单元自存储空间的源地址开始,经数据读取单元从存储空间读取数据,进行对应的数据功能操作,经数据写出单元,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成后,返回信息给所述寄存器数据暂存单元,向所述扩展指令分发和回收单元发出完成响应;
若所述数据存储扩展指令为存储高级功能扩展指令,则存储高级功能执行单元从所述寄存器数据暂存单元获取相应的信息,从所述控制与状态寄存器读取相应的辅助信息后,所述存储高级功能执行单元自存储空间的源地址和比较数据源地址开始,经数据读取单元从存储空间读取数据,进行对应的高级功能操作,经数据写出单元,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成后,返回信息给所述寄存器数据暂存单元,向所述扩展指令分发和回收单元发出完成响应;
其中,所述数据存储扩展处理单元包括控制与状态寄存器、寄存器数据暂存单元、扩展指令分发和回收单元、扩展接口、寄存器操作执行单元、存储数据操作执行单元、存储高级功能执行单元、数据读取单元以及数据写出单元。
相比现有技术,本发明的有益效果在于:
(1)本发明提出了基于RISC-V和RISC-V扩展指令的数据存储处理方法,通过对数据存储处理领域和RISC-V处理器系统架构的深入研究,本发明设计出符合数据存储处理特征的RISC-V扩展指令,以及基于RISC-V和RISC-V扩展指令的数据存储处理系统,从而填补RISC-V在数据存储器领域应用的空白;
(2)现有数据存储器中使用的是基于ARM或ARC指令的系统,不具备开放性,不能支持自定义的指令扩展,而本发明所提供的基于RISC-V和RISC-V扩展指令的数据存储处理系统可进行拓展,灵活性更强;
(3)本发明设计的基于RISC-V和RISC-V扩展指令的数据存储处理系统,充分利用其可扩展的特点,完全符合数据存储应用特点。相比使用普通的CPU,采用扩展指令的处理,可获得10倍以上的性能提升,从而大幅提升数据存储器的整体处理性能;在同等性能下,相比使用普通的CPU,采用扩展指令的处理系统可以降低功耗、节省芯片面积,给用户带来极佳的使用体验,同时提升数据存储器产品的竞争力。
下面结合附图和具体实施方式对本发明作进一步详细说明。
附图说明
图1-是本发明实施例的基于RISC-V及其扩展指令的数据存储处理系统组成示意图;
图2-是本发明实施例的RISC-V架构CPU组成及交互示意图;
图3-是本发明实施例的数据存储扩展处理单元组成及交互示意图;
图4-是本发明实施例的基于RISC-V及其扩展指令的数据存储处理方法步骤图;
图5-是本发明实施例的基于RISC-V数据存储扩展指令的系统处理流程图;
图6-是本发明实施例的RISC-V指令集和数据存储扩展指令的组成示意图;
图7-是本发明实施例的指令在RISC-V架构CPU中执行的流程图;
图8-是本发明实施例的数据存储扩展指令在数据存储扩展处理单元中执行的流程图。
附图标号说明:1、RISC-V架构CPU;2、总线;3、直接存储访问器;4、低延时指令存储器;5、低延时数据存储器;6、系统存储器;7、只读存储器;8、非易失性存储器;9、指令缓存;10、数据缓存;11、主控接口控制器;12、快闪存储接口控制器;13、复位控制单元;14、时钟控制单元;15、指令获取单元;16、指令译码单元;17、寄存器堆;18、分发单元;19、执行单元;20、数据访问接口;21、数据存储扩展处理单元;22、控制与状态寄存器;23、寄存器数据暂存单元;24、扩展指令分发和回收单元;25、扩展接口;26、寄存器操作执行单元;27、存储数据操作执行单元;28、存储高级功能执行单元;29、数据读取单元;30、数据写出单元;31、扩展单元数据访问接口。
具体实施方式
本发明所提供的基于RISC-V及其扩展指令的数据存储处理系统,如图1所示,包括RISC-V架构CPU1、第一存储模块、缓存模块、总线2、第一控制模块、第二存储模块、直接存储访问器3以及第二控制模块。RISC-V架构CPU1用于对读取到的程序指令的类型进行判断,并根据判断结果执行程序指令,对储存数据进行相应的读取和写入;第一存储模块用于存放程序指令和程序数据;缓存模块用于缓存RISC-V架构CPU1的读写数据;总线2用于各模块通过一致的总线协议进行通信;第一控制模块用于控制外部主控的接口和外部的快闪存储器;第二存储模块用于存放各模块数据、各模块运行的中间结果、预设的程序以及重要信息;直接存储访问器3用于在RISC-V架构CPU1的控制下完成数据搬运,以及从某个地址读取数据再写到另一个地址;第二控制模块用于控制各模块的复位和时钟。
具体地,总线2是芯片内部数据和控制传输的通道,各模块遵循一致的总线协议进行通信。直接存储访问器3(DMA),RISC-V架构CPU1控制DMA完成数据搬运的任务,DMA从某个地址读取数据,再写到另一个地址。本发明还可应用于具有快闪存储接口、可连接快闪存储器芯片的电子设备中,如通过ONFIIO或ToggleIO协议外接快闪存储芯片的手机、平板电脑、OTT电视盒子、摄像头、智能硬件、嵌入式电子设备等。
进一步地,如图2所示,RISC-V架构CPU1包括指令获取单元15、指令译码单元16、寄存器堆17、分发单元18、执行单元19、数据访问接口20以及数据存储扩展处理单元21。指令获取单元15用于根据程序起始地址和PC指针,从RISC-V架构CPU1外部关联模块读取程序指令;指令译码单元16用于对指令进行译码,并识别出不同功能的程序指令、程序指令中的寄存器号以及立即数数据;寄存器堆17包括若干指令架构定义的寄存器,用于程序指令执行过程中的数据交互;分发单元18用于判断程序指令属于RISC-V指令集指令或数据存储扩展指令,并根据判断结果将RISC-V指令集指令或数据存储扩展指令分发给执行单元19或数据存储扩展处理单元21;执行单元19用于执行分发单元分发的RISC-V指令集指令,并返回执行结果;数据访问接口20用于从RISC-V架构CPU1外部关联模块读取数据或向RISC-V架构CPU1外部关联模块写入数据;数据存储扩展处理单元21用于执行分发单元18分发的数据存储扩展指令,并返回执行结果。
具体地,数据存储扩展处理单元21可以使用RISC-V架构CPU1的数据访问接口,经由数据缓存10读取或写入系统存储器6中的数据,或直接访问低延时数据存储器5。指令获取单元15所读取的外部关联模块包括低延时指令存储器4、指令缓存9、系统存储器6,上述模块用于存放指令。寄存器堆17为CPU内部模块,包含指令架构定义的一定数量的寄存器,如32个寄存器,用于指令执行过程中数据交互。分发单元18为CPU内部模块,负责根据指令功能,将指令和数据发送给执行者,比如合适的执行单元19或数据存储扩展处理单元21。数据访问接口20所读取的外部关联模块包括低延时数据存储器5、数据缓存10、系统存储器6,上述模块用于存放数据。数据存储扩展处理单元21为CPU内部模块,对本发明自定义的数据存储指令进行处理,具体如图3所示。
更进一步地,数据存储扩展处理单元21包括控制与状态寄存器22、寄存器数据暂存单元23、扩展指令分发和回收单元24、扩展接口、寄存器操作执行单元、存储数据操作执行单元、存储高级功能执行单元28、数据读取单元29、数据写出单元30以及扩展单元数据访问接口31。控制与状态寄存器22用于根据接收到的数据存储扩展指令对寄存器进行设置,控制数据存储扩展处理单元21的功能,以及对寄存器进行读取,获得数据存储扩展处理单元21的状态;寄存器数据暂存单元23包括目的寄存器,用于存储分发单元18分发的程序数据以及数据存储扩展处理单元21处理完成的数据;扩展指令分发和回收单元24用于根据数据存储扩展指令的操作类型,分发给寄存器操作执行单元26、存储数据操作执行单元27以及存储高级功能执行单元28的其中一个执行,并接收返回的执行数据和结果,再经由扩展接口25返回给分发单元18;扩展接口25为与分发单元18进行交互的接口,用于接收待处理的数据存储扩展指令和数据,以及获取控制与状态寄存器22、寄存器数据暂存单元23以及扩展指令分发和回收单元24返回的执行数据和结果;寄存器操作执行单元26用于接收到数据存储扩展指令后,从寄存器数据暂存单元23获取源数据,从控制与状态寄存器22读取辅助信息,根据数据存储扩展指令的操作类型,对寄存器数据进行对应的操作,在完成后将结果数据写到寄存器数据暂存单元23的目的寄存器中,并向扩展指令分发和回收单元24发出完成响应;存储数据操作执行单元27用于接收到数据存储扩展指令后,通过数据读取单元29自存储空间的源地址开始,从存储空间读取数据,并进行对应的数据功能操作,在完成后将结果数据写到寄存器数据暂存单元23的目的寄存器中,并向扩展指令分发和回收单元24发出完成响应;存储高级功能执行单元28用于接收到数据存储扩展指令后,通过数据读取单元29自存储空间的源地址和比较数据源地址开始,从存储空间读取数据,进行对应的高级功能操作,在完成后将结果数据写到寄存器数据暂存单元23的目的寄存器中,并向扩展指令分发和回收单元24发出完成响应;数据读取单元29用于产生地址和数据长度,并经扩展单元数据访问接口31从存储空间读取指定数据长度的数据;数据写出单元30用于产生地址和数据长度,并经扩展单元数据访问接口31向存储空间写入指定数据长度的数据;扩展单元数据访问接口31用于将数据读写请求转换成符合总线协议的数据访问请求。
具体地,扩展接口25为与RISC-V架构CPU1中分发单元18交互的接口,传输待处理的指令和数据,以及用于访问控制与状态寄存器22、寄存器数据暂存单元23或扩展指令分发和回收单元24,以及从这三个模块中获取返回处理完成的数据和结果。控制与状态寄存器22是数据存储扩展处理单元21的寄存器模块,包括可配置信息,程序通过指令设置寄存器对数据存储扩展处理单元21的功能进行控制,还包括状态信息的存放,程序通过指令读取寄存器可获得数据存储扩展处理单元21的状态。扩展指令分发和回收单元24根据指令类型,分发给合适的执行对象,并接收执行对象返回的数据和结果,再经由扩展接口25返回给RISC-V架构CPU1。寄存器数据暂存单元23作为扩展内部使用的寄存器,存储RISC-V架构CPU1传输来的数据和数据存储扩展处理单元21完成处理后的数据。寄存器操作执行单元26从寄存器数据暂存单元23获取源数据,从控制与状态寄存器22读取其它的辅助信息,如部分位的起始位、部分位的位数,根据操作类型,对寄存器数据进行对应的操作,比如部分位比较、部分位加减、计1操作、计0操作等,完成后将结果数据写到寄存器数据暂存单元23的目的寄存器中,并向扩展指令分发和回收单元24发出完成响应。存储数据操作执行单元27自存储空间的源地址开始,经数据读取单元29从存储空间读取数据,进行对应的数据功能操作,如复制存储空间、重设存储空间、存储空间设定值计数、存储空间第一个设定值位置搜索等,如有目的地址,经数据写出单元30,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成,如有目的寄存器标识,返回得到的处理信息到寄存器数据暂存单元23的目的寄存器,向扩展指令分发和回收单元24发出完成响应。存储高级功能执行单元28从寄存器数据暂存单元23获取源地址、数据长度、目的地址(如该操作类型有)或目的寄存器标识(如该操作类型有),从控制与状态寄存器22读取其它的辅助信息,如比较源地址、搜索条件。数据读取单元29用于产生地址和数据长度,经扩展单元数据访问接口31,从存储空间(包括系统存储器6、低延时数据存储器5、非易失性存储器和快闪存储器等的地址空间)读取指定数据长度的数据。数据写出单元30用于产生地址和数据长度,经扩展单元数据访问接口31,向存储空间包括系统存储器6、低延时数据存储器5、非易失性存储器和快闪存储器等的地址空间)写入指定数据长度的数据。
进一步地,如图1所示,第一存储模块包括低延时指令存储器4和低延时数据存储器5。低延时指令存储器4为用于存放程序指令的静态随机存储器,并被RISC-V架构CPU直接访问;低延时数据存储器5为用于存放程序数据的静态随机存储器,并被RISC-V架构CPU直接访问。
具体地,低延时指令存储器4是存放程序指令的静态随机存储器(SRAM,芯片掉电时数据会丢失),RISC-V架构CPU直接访问,延时短;低延时数据存储器5是存放程序数据的静态随机存储器(SRAM,芯片掉电时数据会丢),RISC-V架构CPU直接访问,延时短。
进一步地,如图1所示,第二存储模块,包括系统存储器6、只读存储器7以及非易失性存储器8。系统存储器6用于存放各模块的数据和运行的中间结果;只读存储器7用于存储预设的程序,在上电时,RISC-V架构CPU1从只读存储器7中读取预设的程序并执行;非易失性存储器8用于存放重要信息。
具体地,系统存储器6是芯片内部提供给系统中各模块使用的静态随机存储器(SRAM,芯片掉电时数据会丢),或者是用途相同的芯片外部的动态随机存储器(DRAM)或芯片外部的其它形式的存储器,用于存放数据和运行的中间结果等;只读存储器7(ROM)在芯片制造时写入特定的数据到ROM中,芯片工作过程中只能从ROM读取数据,不能再写入,系统掉电时数据保持不变,一般用来存放芯片上电启动时的程序,RISC-V架构CPU1从中读取程序指令并执行;非易失性存储器8在系统掉电时数据保持不变,但存储容量比较小,用于存放少量的重要信息。
进一步地,系统存储器6是以地址映射作为访问形式的存储,都能实现相近的功效,包括但不限于静态随机存储器(SRAM),动态随机存储器(DRAM),非易失性存储器,新型存储器(如MRAM)等。
更进一步地,如图1所示,缓存模块包括指令缓存9和数据缓存10。指令缓存9用于缓存RISC-V架构CPU1从系统存储器6或只读存储器7读取的部分指令;数据缓存10用于缓存RISC-V架构CPU读写系统存储器的部分数据。
具体地,RISC-V架构CPU1从系统存储器6或只读存储器7读取的指令,部分会缓存在指令缓存9;RISC-V架构CPU1读写系统存储器6的数据,部分会缓存在数据缓存10。指令缓存9和数据缓存10可以是一级、二级或多级的结构。
进一步地,如图1所示,第一控制模块包括主控接口控制器11和快闪存储接口控制器12。主控接口控制器11用于控制外部主控的接口,并对接口协议进行处理;快闪存储接口控制器12用于控制外部的快闪存储器。
具体地,快闪存储接口控制器12控制外部的NANDFlash存储芯片,NAND Flash是大容量的数据存储芯片。
进一步地,如图1所示,第二控制模块包括复位控制单元13和时钟控制单元14。复位控制单元13用于对各模块进行复位控制;时钟控制单元14用于对各模块的时钟进行控制。
具体地,复位控制单元13对芯片内部各个模块进行复位控制;时钟控制单元14对芯片内部各个时钟进行控制,如分频,时钟关断等。
本发明所提供的基于RISC-V及其扩展指令的数据存储处理方法,如图4所示,包括以下步骤:
步骤S1:对数据存储处理系统进行上电复位,RISC-V架构CPU1从只读存储器7中读取和执行启动程序指令;
步骤S2:RISC-V架构CPU1初始化快闪存储接口控制器12,并向快闪存储接口控制器12发送读取命令,从外部的快闪存储器中读取运行程序指令,并设置存储运行程序的位置;
步骤S3:RISC-V架构CPU1根据读取到的运行程序指令,从启动程序跳转到执行运行程序,并从低延时指令存储器4中依次读取程序指令;
步骤S4:RISC-V架构CPU1对读取到的程序指令的类型进行判断,并根据判断结果执行所述程序指令,对储存数据进行相应的读取和写入,得到一处理结果并返回后,执行下一程序指令;
其中,数据存储处理系统包括RISC-V架构CPU1、只读存储器7、快闪存储接口控制器12以及低延时指令存储器4,只读存储器7用于存储预设的程序,快闪存储接口控制器12用于控制外部的快闪存储器,低延时指令存储器4为用于存放程序指令的静态随机存储器。
具体地,如图5所示,上述数据存储处理方法的具体流程如下:
(1)系统上电后,RISC-V架构CPU1从只读存储器7或其它非易失性存储器中读取启动程序指令,并执行指令;
(2)RISC-V架构CPU1初始化快闪存储接口控制器12;
(3)RISC-V架构CPU1向快闪存储接口控制器12发送命令,从快闪存储器中读取运行程序指令,或其它非易失性存储器读取运行程序指令,并设置存储运行程序的位置;
(4)(可选)一般地,将运行程序指令通过总线2传输,写入系统存储器6或其它低延时指令存储器4;
(5)RISC-V架构CPU1从启动程序跳转到执行运行程序,从系统存储器6或其它低延时指令存储器4读取指令,指令分为RISC-V指令集指令和数据存储扩展指令,数据存储扩展指令包括寄存器操作扩展指令、存储数据操作扩展指令和存储高级功能扩展指令;
(6)在指令集指令的执行过程中,有时需经由数据缓存10读取或写入系统存储器6的数据,或者直接写入或读取低延时数据存储器5的数据;
(7)在扩展指令的执行过程中,数据存储扩展处理单元21有时需通过扩展单元数据访问接口31读取或写入系统存储器6中读取数据;
(8)指令执行完成后,返回处理结果给RISC-V架构CPU1,RISC-V架构CPU1继续处理下一个或下多个指令;
(9)在RISC-V架构CPU1运行过程中,如果出现RISC-V架构CPU1掉电,则结束运行程序。
具体地,本发明所涉及的RISC-V指令集指令和数据存储扩展指令具体如图6所示。实施例中展示的数据存储扩展指令只需做格式上的修改,也可以用于其他指令集和系统,同样能起到大幅提升数据存储处理的性能,降低功耗,节省面积的作用。
在上述步骤S3中,在RISC-V架构CPU1从低延时指令存储器4中依次读取程序指令时,包括:
RISC-V架构CPU1通过指令获取单元15计算程序指令的位置并进行读取,并发送给指令译码单元16;
指令译码单元16对读取到的程序指令进行解析,得到相应的解析结果,并将解析结果存放在寄存器堆17;
分发单元18从寄存器堆17中读取到相应的解析结果,并根据解析结果获取到程序指令的指令类型;
若程序指令属于RISC-V指令集指令,则将RISC-V指令集指令分发给执行单元19,执行单元19执行RISC-V指令集指令,并将执行结果通过数据访问接口20写回寄存器堆17、系统存储器6以及低延时数据存储器5中的至少一种;
若程序指令属于数据存储扩展指令,则将数据存储扩展指令分发给数据存储扩展处理单元21,数据存储扩展处理单元21执行数据存储扩展指令,并将执行结果通过数据访问接口写回寄存器堆17、系统存储器6以及低延时数据存储器5中的至少一种;
其中,数据存储处理系统还包括系统存储器6和低延时数据存储器5,系统存储器6用于存放各模块的数据和运行的中间结果,低延时数据存储器5为用于存放程序数据的静态随机存储器;RISC-V架构CPU1包括指令获取单元15、指令译码单元16、寄存器堆17、分发单元18、执行单元19、数据访问接口20以及数据存储扩展处理单元21;解析结果包括指令类型、操作类型、程序指令所用到的寄存器标识号以及立即数。
具体地,如图7所示,上述读取程序指令的具体流程如下:
(1)指令获取单元15计算下一条指令的位置,经由指令缓存9读取系统存储器6的指令,或者直接读取低延时数据存储器5的指令;
(2)在指令进入RISC-V架构CPU1后,经过指令译码单元16,解析得到指令类型、操作类型、指令所用到的寄存器标识号、立即数等;
(3)从寄存器堆17中读取相应的寄存器数据;
(4)分发单元18根据指令类型是RISC-V基本指令还是扩展指令,将译码后的指令信息,包括操作类型、寄存器标识号、读取的寄存器数据、立即数等分发给执行单元19处理或通过扩展接口25发送给数据存储扩展处理单元21处理;
(5)执行单元19处理RISC-V基本指令,完成后,将执行结果写回寄存器堆17,或通过数据访问接口20从系统存储器6或低延时数据存储器5中加载数据后再写回寄存器堆17,或通过数据访问接口20将数据写入系统存储器6或低延时数据存储器5中;
(6)数据存储扩展处理单元21执行数据存储扩展指令的操作,处理完成后,通过扩展接口25返回指令完成的响应信息,将执行结果通过扩展接口25写回寄存器堆17,或通过数据访问接口20从系统存储器6或低延时数据存储器5中加载数据后再经扩展接口25写回寄存器堆17,或通过扩展单元数据访问接口31将数据写入系统存储器6或低延时数据存储器5中。
进一步地,在数据存储扩展处理单元21执行数据存储扩展指令时,包括:
分发单元18将读取到的数据存储扩展指令分发给数据存储扩展处理单元21;
数据存储扩展处理单元21通过扩展接口25接收数据存储扩展指令以及判断数据存储扩展指令的类型;
若数据存储扩展指令的类型是控制与状态寄存器22访问,则扩展接口25对控制与状态寄存器22进行读或写,并返回指令完成的响应信息;
若数据存储扩展指令的类型是执行类,则扩展接口25将数据存储扩展指令中的操作类型和立即数发给扩展指令分发和回收单元24,同时将数据存储扩展指令中的源寄存器数据和目的寄存器标识号写入寄存器数据暂存单元23;
扩展指令分发和回收单元24对数据存储扩展指令的操作类型进行判断;
若数据存储扩展指令为寄存器操作扩展指令,则寄存器操作执行单元26从寄存器数据暂存单元23中获取源寄存器数据,从控制与状态寄存器22读取相应的辅助信息,并根据操作类型对寄存器数据进行对应的操作,完成后将结果数据写到寄存器数据暂存单元23的目的寄存器中,向扩展指令分发和回收单元24发出完成响应;
若数据存储扩展指令为存储数据操作扩展指令,则存储数据操作执行单元27从寄存器数据暂存单元23获取相应的信息,从控制与状态寄存器22读取相应的辅助信息后,存储数据操作执行单元27自存储空间的源地址开始,经数据读取单元29从存储空间读取数据,进行对应的数据功能操作,经数据写出单元30,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成后,返回信息给寄存器数据暂存单元23,向扩展指令分发和回收单元24发出完成响应;
若数据存储扩展指令为存储高级功能扩展指令,则存储高级功能执行单元28从寄存器数据暂存单元23获取相应的信息,从控制与状态寄存器22读取相应的辅助信息后,存储高级功能执行单元28自存储空间的源地址和比较数据源地址开始,经数据读取单元29从存储空间读取数据,进行对应的高级功能操作,经数据写出单元30,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成后,返回信息给寄存器数据暂存单元23,向扩展指令分发和回收单元24发出完成响应;
其中,数据存储扩展处理单元21包括控制与状态寄存器22、寄存器数据暂存单元23、扩展指令分发和回收单元24、扩展接口25、寄存器操作执行单元26、存储数据操作执行单元27、存储高级功能执行单元28、数据读取单元29以及数据写出单元30。
具体地,如图8所示,数据存储扩展处理单元21执行数据存储扩展指令的具体流程如下:
(1)扩展接口25接收数据存储扩展指令信息,扩展接口25判断指令信息的操作类型,分别访问扩展指令分发和回收单元24、寄存器数据暂存单元23和控制与状态寄存器22;
(2)如果指令的操作类型是执行类,扩展接口25将指令信息中的操作类型和立即数发给扩展指令分发和回收单元24,同时将指令信息中的源寄存器数据和目的寄存器标识号写入寄存器数据暂存单元23,寄存器暂存单元23具有一定的暂存深度,可以暂存若干条扩展指令的寄存器数据;
(3)如果指令的操作类型是控制与状态寄存器22访问,扩展接口25将读或写控制与状态寄存器22,并返回指令完成的响应信息;
(4)扩展指令分发和回收单元24判断指令的操作类型,分别将指令的操作类型、立即数分发给寄存器操作执行单元26、存储数据操作执行单元27或存储高级功能执行单元28;
(5)寄存器操作执行单元26从寄存器数据暂存单元23获取源数据,从控制与状态寄存器22读取其它的辅助信息,如部分位的起始位、部分位的位数,根据操作类型,对寄存器数据进行对应的操作,比如部分位比较、部分位加减、计1操作、计0操作等,完成后将结果数据写到寄存器数据暂存单元23的目的寄存器中,向扩展指令分发和回收单元24发出完成响应;
(6)存储数据操作执行单元27根据操作类型,从寄存器数据暂存单元23获取源地址、数据长度、目的地址(如该操作类型有)或目的寄存器标识(如该操作类型有),从控制与状态寄存器22读取其它的辅助信息,如复制样式、设定值的数值;
(7)存储数据操作执行单元27自存储空间的源地址开始,经数据读取单元29从存储空间读取数据,进行对应的数据功能操作,如复制存储空间、重设存储空间、存储空间设定值计数、存储空间第一个设定值位置搜索等,如有目的地址,经数据写出单元30,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成,如有目的寄存器标识,返回得到的处理信息到寄存器数据暂存单元23的目的寄存器,向扩展指令分发和回收单元24发出完成响应;
(8)存储高级功能执行单元28,从寄存器数据暂存单元23获取源地址、数据长度、目的地址(如该操作类型有)或目的寄存器标识(如该操作类型有),从控制与状态寄存器22读取其它的辅助信息,如比较源地址、搜索条件;
(9)存储高级功能执行单元28自存储空间的源地址和比较数据源地址(如该操作类型有)开始,经数据读取单元29从存储空间读取指定数据长度的数据,进行对应的高级功能操作,如两个存储空间数据比较、两个存储空间数据加减、存储空间条件搜索等,如有目的地址,经数据写出单元30,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成,如有目的寄存器标识,返回得到的处理信息到寄存器数据暂存单元23的目的寄存器,向扩展指令分发和回收单元24发出完成响应。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (10)
1.一种基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,包括:
RISC-V架构CPU,用于对读取到的程序指令的类型进行判断,并根据判断结果执行所述程序指令,对储存数据进行相应的读取和写入;
第一存储模块:用于存放程序指令和程序数据;
缓存模块:用于缓存所述RISC-V架构CPU的读写数据;
总线,用于各模块通过一致的总线协议进行通信;
第一控制模块,用于控制外部主控的接口和外部的快闪存储器;
第二存储模块:用于存放各模块数据、各模块运行的中间结果、预设的程序以及重要信息;
直接存储访问器,用于在所述RISC-V架构CPU的控制下完成数据搬运,以及从某个地址读取数据再写到另一个地址;
第二控制模块,用于控制各模块的复位和时钟。
2.根据权利要求1所述的基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,所述RISC-V架构CPU,包括:
指令获取单元,用于根据程序起始地址和PC指针,从所述RISC-V架构CPU外部关联模块读取程序指令;
指令译码单元,用于对指令进行译码,并识别出不同功能的程序指令、程序指令中的寄存器号以及立即数数据;
寄存器堆,包括若干指令架构定义的寄存器,用于程序指令执行过程中的数据交互;
分发单元,用于判断所述程序指令属于RISC-V指令集指令或数据存储扩展指令,并根据判断结果将所述RISC-V指令集指令或所述数据存储扩展指令分发给执行单元或数据存储扩展处理单元;
执行单元,用于执行所述分发单元分发的RISC-V指令集指令,并返回执行结果;
数据访问接口,用于从所述RISC-V架构CPU外部关联模块读取数据或向所述RISC-V架构CPU外部关联模块写入数据;
数据存储扩展处理单元,用于执行所述分发单元分发的数据存储扩展指令,并返回执行结果。
3.根据权利要求2所述的基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,所述数据存储扩展处理单元,包括:
控制与状态寄存器,用于根据接收到的数据存储扩展指令对寄存器进行设置,控制所述数据存储扩展处理单元的功能,以及对寄存器进行读取,获得所述数据存储扩展处理单元的状态;
寄存器数据暂存单元,包括目的寄存器,用于存储所述分发单元分发的程序数据以及所述数据存储扩展处理单元处理完成的数据;
扩展指令分发和回收单元,用于根据所述数据存储扩展指令的操作类型,分发给寄存器操作执行单元、存储数据操作执行单元以及存储高级功能执行单元的其中一个执行,并接收返回的执行数据和结果,再经由扩展接口返回给所述分发单元;
扩展接口,为与所述分发单元进行交互的接口,用于接收待处理的数据存储扩展指令和数据,以及获取所述控制与状态寄存器、所述寄存器数据暂存单元以及所述扩展指令分发和回收单元返回的执行数据和结果;
寄存器操作执行单元,用于接收到所述数据存储扩展指令后,从所述寄存器数据暂存单元获取源数据,从所述控制与状态寄存器读取辅助信息,根据所述数据存储扩展指令的操作类型,对寄存器数据进行对应的操作,在完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,并向所述扩展指令分发和回收单元发出完成响应;
存储数据操作执行单元,用于接收到所述数据存储扩展指令后,通过数据读取单元自存储空间的源地址开始,从存储空间读取数据,并进行对应的数据功能操作,在完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,并向所述扩展指令分发和回收单元发出完成响应;
存储高级功能执行单元,用于接收到所述数据存储扩展指令后,通过数据读取单元自存储空间的源地址和比较数据源地址开始,从存储空间读取数据,进行对应的高级功能操作,在完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,并向所述扩展指令分发和回收单元发出完成响应;
数据读取单元,用于产生地址和数据长度,并经扩展单元数据访问接口从存储空间读取指定数据长度的数据;
数据写出单元,用于产生地址和数据长度,并经扩展单元数据访问接口向存储空间写入指定数据长度的数据;
扩展单元数据访问接口,用于将数据读写请求转换成符合总线协议的数据访问请求。
4.根据权利要求1所述的基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,所述第一存储模块,包括:
低延时指令存储器,为用于存放程序指令的静态随机存储器,并被所述RISC-V架构CPU直接访问;
低延时数据存储器,为用于存放程序数据的静态随机存储器,并被所述RISC-V架构CPU直接访问。
5.根据权利要求1所述的基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,所述第二存储模块,包括:
系统存储器,用于存放各模块的数据和运行的中间结果;
只读存储器,用于存储预设的程序,在上电时,所述RISC-V架构CPU从所述只读存储器中读取所述预设的程序并执行;
非易失性存储器,用于存放重要信息。
6.根据权利要求5所述的基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,所述缓存模块,包括:
指令缓存,用于缓存所述RISC-V架构CPU从所述系统存储器或所述只读存储器读取的部分指令;
数据缓存,用于缓存所述RISC-V架构CPU读写所述系统存储器的部分数据。
7.根据权利要求1所述的基于RISC-V及其扩展指令的数据存储处理系统,其特征在于,所述第一控制模块,包括:
主控接口控制器,用于控制外部主控的接口,并对接口协议进行处理;
快闪存储接口控制器,用于控制外部的快闪存储器;
所述第二控制模块,包括:
复位控制单元,用于对各模块进行复位控制;
时钟控制单元,用于对各模块的时钟进行控制。
8.一种基于RISC-V及其扩展指令的数据存储处理方法,其特征在于,包括以下步骤:
对数据存储处理系统进行上电复位,RISC-V架构CPU从只读存储器中读取和执行启动程序指令;
所述RISC-V架构CPU初始化快闪存储接口控制器,并向所述快闪存储接口控制器发送读取命令,从外部的快闪存储器中读取运行程序指令,并设置存储运行程序的位置;
所述RISC-V架构CPU根据读取到的运行程序指令,从启动程序跳转到执行运行程序,并从低延时指令存储器中依次读取程序指令;
所述RISC-V架构CPU对读取到的程序指令的类型进行判断,并根据判断结果执行所述程序指令,对储存数据进行相应的读取和写入,得到一处理结果并返回后,执行下一程序指令;
其中,所述数据存储处理系统包括RISC-V架构CPU、只读存储器、快闪存储接口控制器以及低延时指令存储器,所述只读存储器用于存储预设的程序,所述快闪存储接口控制器用于控制外部的快闪存储器,所述低延时指令存储器为用于存放程序指令的静态随机存储器。
9.根据权利要求8所述的基于RISC-V及其扩展指令的数据存储处理方法,其特征在于,在所述RISC-V架构CPU从低延时指令存储器中依次读取程序指令时,包括:
所述RISC-V架构CPU通过指令获取单元计算程序指令的位置并进行读取,并发送给指令译码单元;
所述指令译码单元对读取到的程序指令进行解析,得到相应的解析结果,并将所述解析结果存放在寄存器堆;
分发单元从所述寄存器堆中读取到相应的解析结果,并根据所述解析结果获取到所述程序指令的指令类型;
若所述程序指令属于RISC-V指令集指令,则将所述RISC-V指令集指令分发给执行单元,所述执行单元执行所述RISC-V指令集指令,并将执行结果通过数据访问接口写回所述寄存器堆、系统存储器以及低延时数据存储器中的至少一种;
若所述程序指令属于数据存储扩展指令,则将所述数据存储扩展指令分发给数据存储扩展处理单元,所述数据存储扩展处理单元执行所述数据存储扩展指令,并将执行结果通过数据访问接口写回所述寄存器堆、系统存储器以及低延时数据存储器中的至少一种;
其中,所述数据存储处理系统还包括系统存储器和低延时数据存储器,所述系统存储器用于存放各模块的数据和运行的中间结果,所述低延时数据存储器为用于存放程序数据的静态随机存储器;所述RISC-V架构CPU包括指令获取单元、指令译码单元、寄存器堆、分发单元、执行单元、数据访问接口以及数据存储扩展处理单元;所述解析结果包括指令类型、操作类型、程序指令所用到的寄存器标识号以及立即数。
10.根据权利要求9所述的基于RISC-V及其扩展指令的数据存储处理方法,其特征在于,在所述数据存储扩展处理单元执行所述数据存储扩展指令时,包括:
所述分发单元将读取到的数据存储扩展指令分发给数据存储扩展处理单元;
所述数据存储扩展处理单元通过扩展接口接收数据存储扩展指令以及判断所述数据存储扩展指令的类型;
若所述数据存储扩展指令的类型是控制与状态寄存器访问,则所述扩展接口对所述控制与状态寄存器进行读或写,并返回指令完成的响应信息;
若所述数据存储扩展指令的类型是执行类,则所述扩展接口将所述数据存储扩展指令中的操作类型和立即数发给扩展指令分发和回收单元,同时将所述数据存储扩展指令中的源寄存器数据和目的寄存器标识号写入寄存器数据暂存单元;
所述扩展指令分发和回收单元对所述数据存储扩展指令的操作类型进行判断;
若所述数据存储扩展指令为寄存器操作扩展指令,则寄存器操作执行单元从所述寄存器数据暂存单元中获取源寄存器数据,从所述控制与状态寄存器读取相应的辅助信息,并根据操作类型对寄存器数据进行对应的操作,完成后将结果数据写到所述寄存器数据暂存单元的目的寄存器中,向扩展指令分发和回收单元发出完成响应;
若所述数据存储扩展指令为存储数据操作扩展指令,则存储数据操作执行单元从所述寄存器数据暂存单元获取相应的信息,从所述控制与状态寄存器读取相应的辅助信息后,所述存储数据操作执行单元自存储空间的源地址开始,经数据读取单元从存储空间读取数据,进行对应的数据功能操作,经数据写出单元,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成后,返回信息给所述寄存器数据暂存单元,向所述扩展指令分发和回收单元发出完成响应;
若所述数据存储扩展指令为存储高级功能扩展指令,则存储高级功能执行单元从所述寄存器数据暂存单元获取相应的信息,从所述控制与状态寄存器读取相应的辅助信息后,所述存储高级功能执行单元自存储空间的源地址和比较数据源地址开始,经数据读取单元从存储空间读取数据,进行对应的高级功能操作,经数据写出单元,自存储空间的目的地址开始,将处理后的数据写出到存储空间,反复执行,直到数据长度范围内的全部数据处理完成后,返回信息给所述寄存器数据暂存单元,向所述扩展指令分发和回收单元发出完成响应;
其中,所述数据存储扩展处理单元包括控制与状态寄存器、寄存器数据暂存单元、扩展指令分发和回收单元、扩展接口、寄存器操作执行单元、存储数据操作执行单元、存储高级功能执行单元、数据读取单元以及数据写出单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310083012.4A CN116149554B (zh) | 2023-02-08 | 2023-02-08 | 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310083012.4A CN116149554B (zh) | 2023-02-08 | 2023-02-08 | 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116149554A true CN116149554A (zh) | 2023-05-23 |
CN116149554B CN116149554B (zh) | 2023-11-24 |
Family
ID=86350246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310083012.4A Active CN116149554B (zh) | 2023-02-08 | 2023-02-08 | 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149554B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008972A (zh) * | 2023-09-27 | 2023-11-07 | 武汉深之度科技有限公司 | 一种指令分析方法、装置、计算设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287522A (en) * | 1990-06-29 | 1994-02-15 | Bull Hn Information Systems, Inc. | External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip |
CN112015522A (zh) * | 2020-11-02 | 2020-12-01 | 鹏城实验室 | 系统功能扩展方法、装置及计算机可读存储介质 |
CN112099853A (zh) * | 2020-09-17 | 2020-12-18 | 广东高云半导体科技股份有限公司 | 基于fpga实现的risc-v处理器、fpga芯片及片上系统 |
CN112860320A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 |
-
2023
- 2023-02-08 CN CN202310083012.4A patent/CN116149554B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287522A (en) * | 1990-06-29 | 1994-02-15 | Bull Hn Information Systems, Inc. | External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip |
CN112099853A (zh) * | 2020-09-17 | 2020-12-18 | 广东高云半导体科技股份有限公司 | 基于fpga实现的risc-v处理器、fpga芯片及片上系统 |
CN112015522A (zh) * | 2020-11-02 | 2020-12-01 | 鹏城实验室 | 系统功能扩展方法、装置及计算机可读存储介质 |
CN112860320A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008972A (zh) * | 2023-09-27 | 2023-11-07 | 武汉深之度科技有限公司 | 一种指令分析方法、装置、计算设备及存储介质 |
CN117008972B (zh) * | 2023-09-27 | 2023-12-05 | 武汉深之度科技有限公司 | 一种指令分析方法、装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116149554B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907538B2 (en) | Extended utilization area for a memory device | |
US20180275921A1 (en) | Storage device | |
KR101391270B1 (ko) | Mram을 이용하는 비휘발성 메모리 시스템 | |
US8677051B2 (en) | Memory system, control method thereof, and information processing apparatus | |
US11210020B2 (en) | Methods and systems for accessing a memory | |
US7386653B2 (en) | Flash memory arrangement | |
US8825946B2 (en) | Memory system and data writing method | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
CN102279712A (zh) | 一种适用于互联网存储系统的存储控制方法、系统和装置 | |
US20130238859A1 (en) | Cache with scratch pad memory structure and processor including the cache | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
US20130132704A1 (en) | Memory controller and method for tuned address mapping | |
WO2016138785A1 (zh) | 一种运行进程的方法及装置 | |
CN111475425A (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
CN116149554B (zh) | 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 | |
CN111026325B (zh) | 闪存控制器、闪存控制器的控制方法及相关的电子装置 | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
CN107861884B (zh) | 一种提高nand闪存中跨页存储地址映射效率的方法 | |
CN109471819A (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN110568918A (zh) | 停电时减少功耗的数据存储方法及数据存储设备 | |
US20120254499A1 (en) | Program, control method, and control device | |
US11922062B2 (en) | Controller and operating method thereof | |
US20040250006A1 (en) | Method of accessing data of a computer system | |
KR20090046568A (ko) | 플래시 메모리 시스템 및 그것의 쓰기 방법 | |
US20090182938A1 (en) | Content addressable memory augmented memory |
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 |