CN106933510B - 一种存储控制器 - Google Patents
一种存储控制器 Download PDFInfo
- Publication number
- CN106933510B CN106933510B CN201710108035.0A CN201710108035A CN106933510B CN 106933510 B CN106933510 B CN 106933510B CN 201710108035 A CN201710108035 A CN 201710108035A CN 106933510 B CN106933510 B CN 106933510B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- controller
- host
- host interface
- 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.)
- Active
Links
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0629—Configuration or reconfiguration 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明公开了一种存储控制器,包括:主机接口模块,重构配置模块,缓存控制器,存储设备控制器,处理器,可重构模块;所述主机接口模块,用于在存储控制器与主机之间传输命令与数据;所述重构配置模块,用于在所述主机接口模块接收到重构命令后,根据配置文件对所述可重构模块进行重构配置;所述缓存控制器,用于控制设备端缓存的读写;所述存储设备控制器,用于控制各类存储设备或存储器件的读写;所述处理器,用于执行与所述主机接口模块接收的命令相关的控制程序;所述可重构模块,用于根据需求通过重构的方式进行重构配置。采用该存储控制器可以提升计算机系统性能。
Description
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种存储控制器。
背景技术
随着新型非易失存储器(Non-Volatile Memory,NVM),例如相变存储器(PhaseChange Memory,PCM)、自旋转移矩随机存储器(Spin Transfer Torque Random AccessMemory,STT-RAM)、阻变式存储器(Resistive Random Access Memory,RRAM)等的出现,为计算机系统带来了新的变革与挑战。这些新型非易失存储器利用相变效应、磁阻效应、阻变效应等机理实现数据的存储,与传统的存储器件相比具有存储密度高、读写延迟短、能耗低等优势。由于具备诸多优点,新型非易失存储器正逐步成为存储架构中最重要的组成部分。
由于新型非易失存储器在存储架构中的地位越来越重要,许多研究团队和厂商纷纷投入到新型非易失存储器的相关研究中。目前已有许多厂商推出了固态存储控制器产品。在现有的高性能固态存储控制器中大部分已经集成了数据加密、纠错功能,通过硬件加速的方式对加密、纠错功能进行加速。但是这些功能是固定的,不能根据应用的不同需求灵活地配置。除此之外,现有的固态存储控制器不具备其它的数据处理功能,例如模式匹配、键值检索等。不仅固态存储控制器有着功能固定,数据处理功能有限的问题。现有的其它的存储设备或器件的控制器也存在着这样的问题。
在使用现有的存储控制器的计算机系统中,当要进行数据处理时,需要在通过I/O将存储设备或存储器件中大量的数据读取到内存中之后,主机的中央处理器(CentralProcessing Unit,CPU)才能完成数据处理。图1所示为目前的数据处理流程示意图。当收到从主机发来的命令后,现有的存储控制器通常会将数据从存储设备或存储器件中读出,并写入主机的内存中,然后交给主机CPU处理,如果有需要最后还要再将处理后的数据写回到存储设备或存储器件中。从该流程中可以看出,在使用现有的存储控制器的计算机系统中,存在数据处理集中于主机CPU、内存与存储设备或存储器件之间数据传输量大、数据传输的I/O路径长、数据传输的功耗大的问题。这些问题的存在对计算机系统的性能造成了不良影响。特别是在大数据的环境下,这些问题造成的不良影响变得尤为严重。
目前,许多研究团队提出了各式各样的基于现场可编程门阵列(FieldProgrammable Gate Array,FPGA)的加速器。这些加速器能够作为主机CPU的协处理器,代替主机CPU完成部分特定的计算任务,并且通过硬件加速的方式对计算进行加速。虽然通过基于FPGA的加速器能够解决数据处理集中于主机CPU的问题,但是依然存在数据传输量大、I/O路径长、传输功耗大的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种存储控制器,在现有的存储控制器的基础上基于可编程器件划分出重构配置模块和可重构模块,由此解决现有的存储控制器配置不灵活、内存与存储设备或存储器件之间数据传输量大、数据传输的I/O路径长、数据传输的功耗大的技术问题,从而提升计算机系统的整体性能。
为实现上述目的,按照本发明的一个方面,提供了一种存储控制器,包括:主机接口模块,重构配置模块,缓存控制器,存储设备控制器,处理器,可重构模块;
所述主机接口模块,用于在存储控制器与主机之间传输命令与数据;
所述重构配置模块,用于在所述主机接口模块接收到重构命令后,根据配置文件对所述可重构模块进行重构配置;
所述缓存控制器,用于控制设备端缓存的读写;
所述存储设备控制器,用于控制各类存储设备或存储器件的读写;
所述处理器,用于执行与所述主机接口模块接收的命令相关的控制程序;
所述可重构模块,用于根据需求通过重构的方式进行重构配置。
优选地,所述可重构模块包括计算加速模块与近数据处理模块;
所述计算加速模块,用于对存储控制器中的计算密集型任务进行硬件加速;
所述近数据处理模块,用于执行存储控制器中的数据密集型任务。
优选地,所述重构配置模块,具体用于与所述主机接口模块、所述处理器以及所述缓存控制器配合完成对所述可重构模块进行重构配置:
所述主机接口模块,用于接收主机发送的重构命令,并从重构命令指定的主机地址中读取用于重构的配置文件;
所述处理器,用于通过所述缓存控制器将配置文件缓存在设备端缓存中,以及,通过所述缓存控制器将配置文件从设备端缓存中读出,并写入到所述重构配置模块中;
所述重构配置模块,用于使用配置文件完成对所述可重构模块的重构配置。
优选地,所述计算加速模块包括数据加密模块;
所述数据加密模块,用于与所述主机接口模块、所述处理器以及所述存储设备控制器配合完成对数据的加解密功能:
所述主机接口模块,用于接收主机发送的加密命令及加密密钥,并从主机内存中读取待加密的数据;
所述处理器,用于将待加密的数据和加密密钥写入到所述数据加密模块中;
所述数据加密模块,用于对待加密的数据进行数据加密;
所述存储设备控制器,用于将加密后的数据写入到存储设备或存储器件中;
所述主机接口模块,还用于接收主机发送的解密命令及解密密钥;
所述存储设备控制器,还用于从存储设备或存储器件中读取待解密的数据;
所述处理器,还用于将待解密的数据和解密密钥写入到所述数据加密模块中;
所述数据加密模块,还用于对待解密的数据进行数据解密;
所述主机接口模块,还用于将解密后的数据传输给主机内存。
优选地,所述近数据处理模块包括模式匹配模块;
所述模式匹配模块,用于与所述主机接口模块以及所述处理器配合完成模式匹配功能:
所述主机接口模块,用于接收从主机发送的模式匹配命令及待匹配的字符串;
所述处理器,用于将待匹配的字符串写到模式匹配模块中;
所述模式匹配模块,用于根据待匹配的字符串完成模式匹配,并得到匹配结果;
所述主机接口模块,还用于将匹配结果返回给主机。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,主要有以下的技术优点:
(1)本发明提出基于可编程器件划分出可重构模块,从而实现了存储控制器功能的灵活配置,使得存储控制器能够提供最适用于当前应用需求的功能,进而实现了计算机系统性能的提升。
(2)本发明中提出的计算加速模块,实现了对计算密集型的任务的硬件加速,从而提升了计算机系统性能。
(3)本发明中提出的近数据处理模块,实现了近数据处理功能,从而减少了内存与存储设备或存储器件之间的数据传输量、缩短了数据传输的路径、减小了数据传输的功耗,进而提升了计算机系统性能。
附图说明
图1为使用现有的存储控制器的计算机系统的数据处理流程示意图;
图2为本发明实施例的存储控制器的结构示意图;
图3为本发明实施例的存储控制器的重构过程的流程示意图;
图4(a)为本发明实施例的存储控制器执行数据加解密命令的流程示意图;
图4(b)为本发明实施例的数据加密模块中AES加密功能实施的结构示意图;
图5(a)为本发明实施例的存储控制器执行模式匹配命令的流程示意图;
图5(b)为本发明实施例的模式匹配模块实施的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先对本发明的技术术语进行解释和说明:
计算密集型任务:程序系统大部分在做计算、逻辑判断、循环导致CPU占用率很高的情况;
数据密集型任务:以数据为核心,其特点是运行过程中需要不断获取、更新、存储和共享大量数据,并支持对这些数据进行各自计算。
近数据处理(Near-Data Processing,NDP):指在距离数据尽可能近的地方进行数据处理。通过让处理靠近数据,能够减少内存与存储设备或存储器件之间的数据传输量、缩短数据传输的I/O路径、减小数据传输的功耗。
可重构计算(Reconfigurable Computing,RC):指利用可编程器件实现计算处理,通过可编程器件的可编程能力实现硬件结构的变化,来实时地适应计算任务的要求。基于可编程器件的可重构计算技术按照可重构方式可以分为静态可重构和动态可重构,按照实现的范围分为全局可重构和局部可重构。目前可重构计算技术被广泛用于数据编码、数据加密、键值检索、模式匹配等。
本发明实施例中,存储控制器可以是任何存储设备或存储器件的控制器,例如固态硬盘、磁盘、磁盘阵列、NVM芯片等,本发明实施例后续不作复述。
如图2所示,为本发明实施例的存储控制器的一种实施方式的结构示意图,包括:主机接口模块,重构配置模块,缓存控制器,存储设备控制器,处理器,可重构模块;
上述主机接口模块,用于在存储控制器与主机之间传输命令与数据;
上述重构配置模块,用于在主机接口模块接收到重构命令后,根据配置文件对可重构模块进行重构配置;
上述缓存控制器,用于控制设备端缓存的读写;
上述存储设备控制器,用于控制各类存储设备或存储器件的读写;
上述处理器,用于执行与主机接口模块接收的命令相关的控制程序,以完成命令解析和分发、队列管理、缓存管理、请求调度、地址映射、磨损均衡、垃圾回收等功能;
上述可重构模块,用于根据需求通过重构的方式进行重构配置。
作为一种可选的实施方式,上述可重构模块,包含计算加速模块和近数据处理模块,能够根据需求通过重构的方式灵活配置。其中,计算加速模块用于对存储控制器中的计算密集型任务进行硬件加速,例如数据加密、数据编码等。计算加速模块可按需进行重构,从而提供最切合需求的计算加速功能。近数据处理模块用于执行数据密集型任务,例如键值检索、模式匹配等,从而得到数据的处理结果,存储控制器可直接将处理结果返回给主机,而不用向主机传输大量未处理的原始数据。近数据处理模块可按需进行重构,从而提供最切合需求的近数据处理功能。
下面说明重构配置模块和可重构模块的一种实施方式。
重构配置模块在硬件实现上可使用Xilinx提供的HWICAP模块。重构配置模块可以与主机接口模块、处理器以及缓存控制器配合完成对可重构模块进行重构配置的功能,重构过程的具体流程如图3所示。当主机接口模块收到主机发来的重构命令后,存储控制器通过主机接口模块从重构命令指定的地址中读取用于重构的配置文件,通过缓存控制器将配置文件缓存在设备端缓存中。接着,由存储控制器的处理器通过缓存控制器将配置文件从设备端缓存中写到重构配置模块中。最后,重构配置模块使用配置文件完成对可重构模块的重构配置。
可重构模块与其它非重构模块之间通过总线宏(Bus Macro)结构进行信号连接。所谓的总线宏是一种硬宏,在重构过程中不会发生改变,故被经常用于连接动态逻辑和静态逻辑之间的信号通路。
通过重构,计算加速模块能够根据应用需求改变实施方式。在此以数据加密为例,说明计算加速模块的一种实施方式。数据加密算法种类繁多,在此以被广泛使用的高级加密标准(Advanced Encryption Standard,AES)为例说明计算加速模块中的数据加密模块的一种实施方式。数据加密模块可以与主机接口模块、处理器以及存储设备控制器配合完成对数据的加解密功能。图4(a)所示为本发明实施例的存储控制器执行数据加解密命令的流程示意图。当主机接口模块收到从主机发来的加密命令及加密密钥时,存储控制器首先通过主机接口模块从主机内存中读取待加密的数据。然后,存储控制器的处理器将待加密的数据和加密密钥写入到数据加密模块中。接着,数据加密模块进行数据加密。最后,存储控制器通过存储设备控制器将加密后的数据写入到存储设备或存储器件中。当主机接口模块收到从主机发来的解密命令及解密密钥时,存储控制器首先通过存储设备控制器从存储设备或存储器件中读取待解密的数据。然后,存储控制器的处理器将待解密的数据和解密密钥写入到数据加密模块中。接着,数据加密模块进行数据解密。最后,存储控制器通过主机接口模块将解密后的数据传输给主机内存。
其中,上述仅是计算加速模块的一种实施方式的举例,计算加速模块中还可以包括数据编码模块等,具体实施方式可以参照数据加密模块,在此不在赘述。
图4(b)所示为数据加密模块中AES加密功能实施的结构示意图。明文输入和密文输出均可看成每个元素为1字节的一维数组。迭代的中间结果是一个4*N的矩阵,其中N=分组长度/32。密钥扩展模块用于根据所给的密钥为每个按位异或操作生成不同的子密钥。选择器根据计数控制模块中的计数值判断是使用上一轮的迭代结果,还是明文经过初始按位异或的结果作为下一轮迭代的输入。如果计数值小于总共需要进行的迭代轮数,则选择上一轮的迭代结果。否则,选择明文经过初始按位异或的结果。字节替换模块对中间结果矩阵中的各个字节单位通过S盒(Substitution Box)进行变换。变换过程分为两步,首先计算在有限域上的乘法逆,然后进行仿射变换,得到变换结果。行移位模块对中间结果矩阵的每行按照不同的偏移量进行循环移位。列混合模块对中间结果矩阵的每列进行线性变换。变换过程为:将每一列的4个元素视为多项式a0+a1x+a2x2+a3x3的系数,并将此多项式与给定的多项式2+x+x2+3x3在模1+x4下相乘,所得多项式的系数即为变换结果。计数控制模块对迭代次数进行计数。如果迭代次数未达到总共需要的迭代轮数,则将当前迭代结果传输给选择器。否则,将迭代结果传输给后续的字节替换模块。
由于AES解密功能的实施方式与AES加密功能类似,只在子密钥的使用顺序及各模块的执行方式上有细微差别,故不再赘述。
通过重构,近数据处理模块能够根据应用需求改变实施方式。在此以入侵检测中常用的模式匹配技术为例,说明近数据处理模块的一种实施方式。图5(a)所示为本发明实施例的存储控制器执行模式匹配命令的流程示意图。模式匹配模块可以与主机接口模块以及处理器配合完成模式匹配功能,当存储控制器通过主机接口模块收到从主机发来的模式匹配命令及待匹配的字符串后,存储控制器的处理器将待匹配的字符串写到模式匹配模块中。接着,由模式匹配模块完成模式匹配,并得到匹配结果。最后,存储控制器通过主机接口模块将匹配结果返回给主机。由于模式匹配是在存储控制器中完成,故不需要将大量的模式信息传输给主机,只需要向主机返回匹配结果,从而减少了内存与存储设备或存储器件之间的数据传输量、缩短了数据传输的路径、减小了数据传输的功耗,进而提升了计算机系统性能。
其中,上述仅是近数据处理模块的一种实施方式的举例,近数据处理模块中还可以包括键值检索模块等,具体实施方式可以参照模式匹配模块,在此不在赘述。
图5(b)为模式匹配模块实施的结构示意图。其中,初始状态表、状态跳转表、状态信息表由模式匹配模块利用从存储设备或存储器件中读取到的模式信息进行构建。初始状态表用于根据输入的字符确定状态跳转表的初始状态。状态跳转表用于根据当前状态和输入的字符,确定下一状态的相关信息在状态信息表中的偏移地址。状态信息表被保存在设备端缓存中,用于存放模式匹配中各个状态的相关信息,例如已匹配的字符长度、匹配到的模式的编号等。地址计算逻辑中保存了位于设备端缓存中的状态信息表的基地址,并能够通过该基地址以及查找状态跳转表得到的偏移地址计算得到相应的物理地址。该物理地址是设备端缓存中下一状态的相关信息所在的地址。控制逻辑用于根据下一状态生成选择信号。选择器根据选择信号确定是将初始状态还是下一状态保存在状态寄存器中。而状态寄存器则是用于保存当前状态。
模式匹配的具体流程如下。进行模式匹配时,待匹配的字符会不断地输入到模式匹配模块之中。首先,利用输入的字符查找初始状态表得到状态跳转表的初始状态。然后,控制逻辑根据下一状态生成选择信号,如果下一状态的相关信息表示已经得到匹配结果,则无论成功还是失败均选择将初始状态保存在状态寄存器中;否则,将下一状态保存在状态寄存器中。接着,根据状态寄存器中保存的当前状态以及输入的字符查找状态跳转表,从而得到下一状态的相关信息在状态信息表中的偏移地址。地址计算逻辑使用该偏移地址以及状态信息表的基地址计算得到相应的物理地址。利用该物理地址可以从设备端缓存中得到下一状态的相关信息。如果状态信息表示匹配到某个模式,则输出匹配结果,并重复上述操作。在匹配结果中包含了匹配成功的标志、匹配到的模式的编号等信息。如果未匹配到某个模式并且待匹配的字符尚未输入完成,则重复上述操作。如果直到所有待匹配的字符均输入完成后,依然未曾匹配成功过一次,则输出匹配结果,并且匹配结果中包含了匹配失败标志。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种存储控制器,其特征在于,包括:主机接口模块,重构配置模块,缓存控制器,存储设备控制器,处理器,可重构模块;
所述主机接口模块,用于在存储控制器与主机之间传输命令与数据;
所述重构配置模块,用于在所述主机接口模块接收到重构命令后,根据配置文件对所述可重构模块进行重构配置;
所述缓存控制器,用于控制设备端缓存的读写;
所述存储设备控制器,用于控制各类存储设备或存储器件的读写;
所述处理器,用于执行与所述主机接口模块接收的命令相关的控制程序;
所述可重构模块,用于根据功能需求,通过重构的方式进行重构配置;
所述可重构模块包括计算加速模块与近数据处理模块;
所述计算加速模块,用于对存储控制器中的计算密集型任务进行硬件加速;所述近数据处理模块,用于执行存储控制器中的数据密集型任务;
所述主机接口模块,具体用于接收主机发送的数据处理任务,并根据数据处理任务,从外部存储设备、存储器件或主机内存中获取待处理数据;
所述处理器根据所述数据处理任务为计算密集型任务或数据密集型任务,控制计算加速模块或近数据处理模块以及存储设备控制器和缓存控制器,配合完成对所述待处理数据的处理,并将处理结果通过存储设备控制器保存至所述存储设备、存储器件和/或通过所述主机接口模块反馈至主机。
2.根据权利要求1所述的存储控制器,其特征在于,所述重构配置模块,具体用于与所述主机接口模块、所述处理器以及所述缓存控制器配合完成对所述可重构模块进行重构配置:
所述主机接口模块,用于接收主机发送的重构命令,并从重构命令指定的主机地址中读取用于重构的配置文件;
所述处理器,用于通过所述缓存控制器将配置文件缓存在设备端缓存中,以及,通过所述缓存控制器将配置文件从设备端缓存中读出,并写入到所述重构配置模块中;
所述重构配置模块,用于使用配置文件完成对所述可重构模块的重构配置。
3.根据权利要求1所述的存储控制器,其特征在于,所述计算加速模块包括数据加密模块;
所述数据加密模块,用于与所述主机接口模块、所述处理器以及所述存储设备控制器配合完成对数据的加解密功能:
所述主机接口模块,用于接收主机发送的加密命令及加密密钥,并从主机内存中读取待加密的数据;
所述处理器,用于将待加密的数据和加密密钥写入到所述数据加密模块中;
所述数据加密模块,用于对待加密的数据进行数据加密;
所述存储设备控制器,用于将加密后的数据写入到存储设备或存储器件中;
所述主机接口模块,还用于接收主机发送的解密命令及解密密钥;
所述存储设备控制器,还用于从存储设备或存储器件中读取待解密的数据;
所述处理器,还用于将待解密的数据和解密密钥写入到所述数据加密模块中;
所述数据加密模块,还用于对待解密的数据进行数据解密;
所述主机接口模块,还用于将解密后的数据传输给主机内存。
4.根据权利要求1所述的存储控制器,其特征在于,所述近数据处理模块包括模式匹配模块;
所述模式匹配模块,用于与所述主机接口模块以及所述处理器配合完成模式匹配功能:
所述主机接口模块,用于接收从主机发送的模式匹配命令及待匹配的字符串;
所述处理器,用于将待匹配的字符串写到模式匹配模块中;
所述模式匹配模块,用于根据待匹配的字符串完成模式匹配,并得到匹配结果;
所述主机接口模块,还用于将匹配结果返回给主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108035.0A CN106933510B (zh) | 2017-02-27 | 2017-02-27 | 一种存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108035.0A CN106933510B (zh) | 2017-02-27 | 2017-02-27 | 一种存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933510A CN106933510A (zh) | 2017-07-07 |
CN106933510B true CN106933510B (zh) | 2020-01-21 |
Family
ID=59424312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710108035.0A Active CN106933510B (zh) | 2017-02-27 | 2017-02-27 | 一种存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933510B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308280B (zh) * | 2017-07-26 | 2021-05-18 | 华为技术有限公司 | 数据处理方法和相关设备 |
US10474391B2 (en) * | 2017-09-05 | 2019-11-12 | Western Digital Technologies, Inc. | Storage system and method for executing file-based firmware commands and collecting response data |
US10884672B2 (en) | 2018-04-02 | 2021-01-05 | Samsung Electronics Co., Ltd. | NDP-server: a data-centric computing architecture based on storage server in data center |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777918A (zh) * | 2012-10-18 | 2014-05-07 | 苏州简约纳电子有限公司 | 一种硬件加速器 |
CN103984560A (zh) * | 2014-05-30 | 2014-08-13 | 东南大学 | 基于大规模粗粒度嵌入式可重构系统及其处理方法 |
CN106027510A (zh) * | 2016-05-13 | 2016-10-12 | 西南大学 | 工业以太网的通信网络的动态重构方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5785357B2 (ja) * | 2009-06-25 | 2015-09-30 | スパンション エルエルシー | リコンフィグ演算装置を備えるコンピュータシステムおよびリコンフィグ演算装置 |
-
2017
- 2017-02-27 CN CN201710108035.0A patent/CN106933510B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777918A (zh) * | 2012-10-18 | 2014-05-07 | 苏州简约纳电子有限公司 | 一种硬件加速器 |
CN103984560A (zh) * | 2014-05-30 | 2014-08-13 | 东南大学 | 基于大规模粗粒度嵌入式可重构系统及其处理方法 |
CN106027510A (zh) * | 2016-05-13 | 2016-10-12 | 西南大学 | 工业以太网的通信网络的动态重构方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106933510A (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9065654B2 (en) | Parallel encryption/decryption | |
US8402349B2 (en) | Two dimensional data randomization for a memory | |
US11082241B2 (en) | Physically unclonable function with feed-forward addressing and variable latency output | |
Fletcher et al. | A low-latency, low-area hardware oblivious RAM controller | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN106933510B (zh) | 一种存储控制器 | |
US20150169472A1 (en) | Using a memory address to form a tweak key to use to encrypt and decrypt data | |
KR102628010B1 (ko) | 가상 암호화 연산을 수행하는 암호화 회로 | |
CN110059493B (zh) | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 | |
Xie et al. | Securing emerging nonvolatile main memory with fast and energy-efficient AES in-memory implementation | |
CN105335331A (zh) | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 | |
CN114385240A (zh) | 组织可编程原子单元指令存储器的方法 | |
US10891396B2 (en) | Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same | |
EP4278264A1 (en) | Shared multi-port memory from single port | |
Tetu et al. | A standalone FPGA-Based miner for Lyra2REv2 cryptocurrencies | |
CN106021171A (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统 | |
KR101126596B1 (ko) | 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법 | |
US20230185745A1 (en) | Data flow control module for autonomous flow control of multiple dma engines | |
Azad et al. | RISE: RISC-V SoC for En/Decryption Acceleration on the Edge for Homomorphic Encryption | |
CN101783924B (zh) | 基于fpga平台和演化硬件的图像加解密系统及其方法 | |
US20180307626A1 (en) | Hardware-assisted memory encryption circuit | |
CN114385246A (zh) | 桶式多线程处理器中的可变流水线长度 | |
US20140161253A1 (en) | High performance hardware-based execution unit for performing c2 block cipher encryption/decryption | |
US20230269067A1 (en) | Homomorphic encryption operation accelerator, and operating method of homomorphic encryption operation accelerator | |
CN113849867B (zh) | 一种加密芯片 |
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 |