欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種存儲控制器的制作方法

文檔序號:12824305閱讀:205來源:國知局
一種存儲控制器的制作方法與工藝

本發(fā)明屬于計算機存儲技術領域,更具體地,涉及一種存儲控制器。



背景技術:

隨著新型非易失存儲器(non-volatilememory,nvm),例如相變存儲器(phasechangememory,pcm)、自旋轉移矩隨機存儲器(spintransfertorquerandomaccessmemory,stt-ram)、阻變式存儲器(resistiverandomaccessmemory,rram)等的出現(xiàn),為計算機系統(tǒng)帶來了新的變革與挑戰(zhàn)。這些新型非易失存儲器利用相變效應、磁阻效應、阻變效應等機理實現(xiàn)數(shù)據(jù)的存儲,與傳統(tǒng)的存儲器件相比具有存儲密度高、讀寫延遲短、能耗低等優(yōu)勢。由于具備諸多優(yōu)點,新型非易失存儲器正逐步成為存儲架構中最重要的組成部分。

由于新型非易失存儲器在存儲架構中的地位越來越重要,許多研究團隊和廠商紛紛投入到新型非易失存儲器的相關研究中。目前已有許多廠商推出了固態(tài)存儲控制器產(chǎn)品。在現(xiàn)有的高性能固態(tài)存儲控制器中大部分已經(jīng)集成了數(shù)據(jù)加密、糾錯功能,通過硬件加速的方式對加密、糾錯功能進行加速。但是這些功能是固定的,不能根據(jù)應用的不同需求靈活地配置。除此之外,現(xiàn)有的固態(tài)存儲控制器不具備其它的數(shù)據(jù)處理功能,例如模式匹配、鍵值檢索等。不僅固態(tài)存儲控制器有著功能固定,數(shù)據(jù)處理功能有限的問題?,F(xiàn)有的其它的存儲設備或器件的控制器也存在著這樣的問題。

在使用現(xiàn)有的存儲控制器的計算機系統(tǒng)中,當要進行數(shù)據(jù)處理時,需要在通過i/o將存儲設備或存儲器件中大量的數(shù)據(jù)讀取到內存中之后,主機的中央處理器(centralprocessingunit,cpu)才能完成數(shù)據(jù)處理。圖1所示為目前的數(shù)據(jù)處理流程示意圖。當收到從主機發(fā)來的命令后,現(xiàn)有的存儲控制器通常會將數(shù)據(jù)從存儲設備或存儲器件中讀出,并寫入主機的內存中,然后交給主機cpu處理,如果有需要最后還要再將處理后的數(shù)據(jù)寫回到存儲設備或存儲器件中。從該流程中可以看出,在使用現(xiàn)有的存儲控制器的計算機系統(tǒng)中,存在數(shù)據(jù)處理集中于主機cpu、內存與存儲設備或存儲器件之間數(shù)據(jù)傳輸量大、數(shù)據(jù)傳輸?shù)膇/o路徑長、數(shù)據(jù)傳輸?shù)墓拇蟮膯栴}。這些問題的存在對計算機系統(tǒng)的性能造成了不良影響。特別是在大數(shù)據(jù)的環(huán)境下,這些問題造成的不良影響變得尤為嚴重。

目前,許多研究團隊提出了各式各樣的基于現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)的加速器。這些加速器能夠作為主機cpu的協(xié)處理器,代替主機cpu完成部分特定的計算任務,并且通過硬件加速的方式對計算進行加速。雖然通過基于fpga的加速器能夠解決數(shù)據(jù)處理集中于主機cpu的問題,但是依然存在數(shù)據(jù)傳輸量大、i/o路徑長、傳輸功耗大的問題。



技術實現(xiàn)要素:

針對現(xiàn)有技術的以上缺陷或改進需求,本發(fā)明提供了一種存儲控制器,在現(xiàn)有的存儲控制器的基礎上基于可編程器件劃分出重構配置模塊和可重構模塊,由此解決現(xiàn)有的存儲控制器配置不靈活、內存與存儲設備或存儲器件之間數(shù)據(jù)傳輸量大、數(shù)據(jù)傳輸?shù)膇/o路徑長、數(shù)據(jù)傳輸?shù)墓拇蟮募夹g問題,從而提升計算機系統(tǒng)的整體性能。

為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種存儲控制器,包括:主機接口模塊,重構配置模塊,緩存控制器,存儲設備控制器,處理器,可重構模塊;

所述主機接口模塊,用于在存儲控制器與主機之間傳輸命令與數(shù)據(jù);

所述重構配置模塊,用于在所述主機接口模塊接收到重構命令后,根據(jù)配置文件對所述可重構模塊進行重構配置;

所述緩存控制器,用于控制設備端緩存的讀寫;

所述存儲設備控制器,用于控制各類存儲設備或存儲器件的讀寫;

所述處理器,用于執(zhí)行與所述主機接口模塊接收的命令相關的控制程序;

所述可重構模塊,用于根據(jù)需求通過重構的方式進行重構配置。

優(yōu)選地,所述可重構模塊包括計算加速模塊與近數(shù)據(jù)處理模塊;

所述計算加速模塊,用于對存儲控制器中的計算密集型任務進行硬件加速;

所述近數(shù)據(jù)處理模塊,用于執(zhí)行存儲控制器中的數(shù)據(jù)密集型任務。

優(yōu)選地,所述重構配置模塊,具體用于與所述主機接口模塊、所述處理器以及所述緩存控制器配合完成對所述可重構模塊進行重構配置:

所述主機接口模塊,用于接收主機發(fā)送的重構命令,并從重構命令指定的主機地址中讀取用于重構的配置文件;

所述處理器,用于通過所述緩存控制器將配置文件緩存在設備端緩存中,以及,通過所述緩存控制器將配置文件從設備端緩存中讀出,并寫入到所述重構配置模塊中;

所述重構配置模塊,用于使用配置文件完成對所述可重構模塊的重構配置。

優(yōu)選地,所述計算加速模塊包括數(shù)據(jù)加密模塊;

所述數(shù)據(jù)加密模塊,用于與所述主機接口模塊、所述處理器以及所述存儲設備控制器配合完成對數(shù)據(jù)的加解密功能:

所述主機接口模塊,用于接收主機發(fā)送的加密命令及加密密鑰,并從主機內存中讀取待加密的數(shù)據(jù);

所述處理器,用于將待加密的數(shù)據(jù)和加密密鑰寫入到所述數(shù)據(jù)加密模塊中;

所述數(shù)據(jù)加密模塊,用于對待加密的數(shù)據(jù)進行數(shù)據(jù)加密;

所述存儲設備控制器,用于將加密后的數(shù)據(jù)寫入到存儲設備或存儲器件中;

所述主機接口模塊,還用于接收主機發(fā)送的解密命令及解密密鑰;

所述存儲設備控制器,還用于從存儲設備或存儲器件中讀取待解密的數(shù)據(jù);

所述處理器,還用于將待解密的數(shù)據(jù)和解密密鑰寫入到所述數(shù)據(jù)加密模塊中;

所述數(shù)據(jù)加密模塊,還用于對待解密的數(shù)據(jù)進行數(shù)據(jù)解密;

所述主機接口模塊,還用于將解密后的數(shù)據(jù)傳輸給主機內存。

優(yōu)選地,所述近數(shù)據(jù)處理模塊包括模式匹配模塊;

所述模式匹配模塊,用于與所述主機接口模塊以及所述處理器配合完成模式匹配功能:

所述主機接口模塊,用于接收從主機發(fā)送的模式匹配命令及待匹配的字符串;

所述處理器,用于將待匹配的字符串寫到模式匹配模塊中;

所述模式匹配模塊,用于根據(jù)待匹配的字符串完成模式匹配,并得到匹配結果;

所述主機接口模塊,還用于將匹配結果返回給主機。

總體而言,通過本發(fā)明所構思的以上技術方案與現(xiàn)有技術相比,主要有以下的技術優(yōu)點:

(1)本發(fā)明提出基于可編程器件劃分出可重構模塊,從而實現(xiàn)了存儲控制器功能的靈活配置,使得存儲控制器能夠提供最適用于當前應用需求的功能,進而實現(xiàn)了計算機系統(tǒng)性能的提升。

(2)本發(fā)明中提出的計算加速模塊,實現(xiàn)了對計算密集型的任務的硬件加速,從而提升了計算機系統(tǒng)性能。

(3)本發(fā)明中提出的近數(shù)據(jù)處理模塊,實現(xiàn)了近數(shù)據(jù)處理功能,從而減少了內存與存儲設備或存儲器件之間的數(shù)據(jù)傳輸量、縮短了數(shù)據(jù)傳輸?shù)穆窂健p小了數(shù)據(jù)傳輸?shù)墓?,進而提升了計算機系統(tǒng)性能。

附圖說明

圖1為使用現(xiàn)有的存儲控制器的計算機系統(tǒng)的數(shù)據(jù)處理流程示意圖;

圖2為本發(fā)明實施例的存儲控制器的結構示意圖;

圖3為本發(fā)明實施例的存儲控制器的重構過程的流程示意圖;

圖4(a)為本發(fā)明實施例的存儲控制器執(zhí)行數(shù)據(jù)加解密命令的流程示意圖;

圖4(b)為本發(fā)明實施例的數(shù)據(jù)加密模塊中aes加密功能實施的結構示意圖;

圖5(a)為本發(fā)明實施例的存儲控制器執(zhí)行模式匹配命令的流程示意圖;

圖5(b)為本發(fā)明實施例的模式匹配模塊實施的結構示意圖。

具體實施方式

為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。

首先對本發(fā)明的技術術語進行解釋和說明:

計算密集型任務:程序系統(tǒng)大部分在做計算、邏輯判斷、循環(huán)導致cpu占用率很高的情況;

數(shù)據(jù)密集型任務:以數(shù)據(jù)為核心,其特點是運行過程中需要不斷獲取、更新、存儲和共享大量數(shù)據(jù),并支持對這些數(shù)據(jù)進行各自計算。

近數(shù)據(jù)處理(near-dataprocessing,ndp):指在距離數(shù)據(jù)盡可能近的地方進行數(shù)據(jù)處理。通過讓處理靠近數(shù)據(jù),能夠減少內存與存儲設備或存儲器件之間的數(shù)據(jù)傳輸量、縮短數(shù)據(jù)傳輸?shù)膇/o路徑、減小數(shù)據(jù)傳輸?shù)墓摹?/p>

可重構計算(reconfigurablecomputing,rc):指利用可編程器件實現(xiàn)計算處理,通過可編程器件的可編程能力實現(xiàn)硬件結構的變化,來實時地適應計算任務的要求?;诳删幊唐骷目芍貥嬘嬎慵夹g按照可重構方式可以分為靜態(tài)可重構和動態(tài)可重構,按照實現(xiàn)的范圍分為全局可重構和局部可重構。目前可重構計算技術被廣泛用于數(shù)據(jù)編碼、數(shù)據(jù)加密、鍵值檢索、模式匹配等。

本發(fā)明實施例中,存儲控制器可以是任何存儲設備或存儲器件的控制器,例如固態(tài)硬盤、磁盤、磁盤陣列、nvm芯片等,本發(fā)明實施例后續(xù)不作復述。

如圖2所示,為本發(fā)明實施例的存儲控制器的一種實施方式的結構示意圖,包括:主機接口模塊,重構配置模塊,緩存控制器,存儲設備控制器,處理器,可重構模塊;

上述主機接口模塊,用于在存儲控制器與主機之間傳輸命令與數(shù)據(jù);

上述重構配置模塊,用于在主機接口模塊接收到重構命令后,根據(jù)配置文件對可重構模塊進行重構配置;

上述緩存控制器,用于控制設備端緩存的讀寫;

上述存儲設備控制器,用于控制各類存儲設備或存儲器件的讀寫;

上述處理器,用于執(zhí)行與主機接口模塊接收的命令相關的控制程序,以完成命令解析和分發(fā)、隊列管理、緩存管理、請求調度、地址映射、磨損均衡、垃圾回收等功能;

上述可重構模塊,用于根據(jù)需求通過重構的方式進行重構配置。

作為一種可選的實施方式,上述可重構模塊,包含計算加速模塊和近數(shù)據(jù)處理模塊,能夠根據(jù)需求通過重構的方式靈活配置。其中,計算加速模塊用于對存儲控制器中的計算密集型任務進行硬件加速,例如數(shù)據(jù)加密、數(shù)據(jù)編碼等。計算加速模塊可按需進行重構,從而提供最切合需求的計算加速功能。近數(shù)據(jù)處理模塊用于執(zhí)行數(shù)據(jù)密集型任務,例如鍵值檢索、模式匹配等,從而得到數(shù)據(jù)的處理結果,存儲控制器可直接將處理結果返回給主機,而不用向主機傳輸大量未處理的原始數(shù)據(jù)。近數(shù)據(jù)處理模塊可按需進行重構,從而提供最切合需求的近數(shù)據(jù)處理功能。

下面說明重構配置模塊和可重構模塊的一種實施方式。

重構配置模塊在硬件實現(xiàn)上可使用xilinx提供的hwicap模塊。重構配置模塊可以與主機接口模塊、處理器以及緩存控制器配合完成對可重構模塊進行重構配置的功能,重構過程的具體流程如圖3所示。當主機接口模塊收到主機發(fā)來的重構命令后,存儲控制器通過主機接口模塊從重構命令指定的地址中讀取用于重構的配置文件,通過緩存控制器將配置文件緩存在設備端緩存中。接著,由存儲控制器的處理器通過緩存控制器將配置文件從設備端緩存中寫到重構配置模塊中。最后,重構配置模塊使用配置文件完成對可重構模塊的重構配置。

可重構模塊與其它非重構模塊之間通過總線宏(busmacro)結構進行信號連接。所謂的總線宏是一種硬宏,在重構過程中不會發(fā)生改變,故被經(jīng)常用于連接動態(tài)邏輯和靜態(tài)邏輯之間的信號通路。

通過重構,計算加速模塊能夠根據(jù)應用需求改變實施方式。在此以數(shù)據(jù)加密為例,說明計算加速模塊的一種實施方式。數(shù)據(jù)加密算法種類繁多,在此以被廣泛使用的高級加密標準(advancedencryptionstandard,aes)為例說明計算加速模塊中的數(shù)據(jù)加密模塊的一種實施方式。數(shù)據(jù)加密模塊可以與主機接口模塊、處理器以及存儲設備控制器配合完成對數(shù)據(jù)的加解密功能。圖4(a)所示為本發(fā)明實施例的存儲控制器執(zhí)行數(shù)據(jù)加解密命令的流程示意圖。當主機接口模塊收到從主機發(fā)來的加密命令及加密密鑰時,存儲控制器首先通過主機接口模塊從主機內存中讀取待加密的數(shù)據(jù)。然后,存儲控制器的處理器將待加密的數(shù)據(jù)和加密密鑰寫入到數(shù)據(jù)加密模塊中。接著,數(shù)據(jù)加密模塊進行數(shù)據(jù)加密。最后,存儲控制器通過存儲設備控制器將加密后的數(shù)據(jù)寫入到存儲設備或存儲器件中。當主機接口模塊收到從主機發(fā)來的解密命令及解密密鑰時,存儲控制器首先通過存儲設備控制器從存儲設備或存儲器件中讀取待解密的數(shù)據(jù)。然后,存儲控制器的處理器將待解密的數(shù)據(jù)和解密密鑰寫入到數(shù)據(jù)加密模塊中。接著,數(shù)據(jù)加密模塊進行數(shù)據(jù)解密。最后,存儲控制器通過主機接口模塊將解密后的數(shù)據(jù)傳輸給主機內存。

其中,上述僅是計算加速模塊的一種實施方式的舉例,計算加速模塊中還可以包括數(shù)據(jù)編碼模塊等,具體實施方式可以參照數(shù)據(jù)加密模塊,在此不在贅述。

圖4(b)所示為數(shù)據(jù)加密模塊中aes加密功能實施的結構示意圖。明文輸入和密文輸出均可看成每個元素為1字節(jié)的一維數(shù)組。迭代的中間結果是一個4*n的矩陣,其中n=分組長度/32。密鑰擴展模塊用于根據(jù)所給的密鑰為每個按位異或操作生成不同的子密鑰。選擇器根據(jù)計數(shù)控制模塊中的計數(shù)值判斷是使用上一輪的迭代結果,還是明文經(jīng)過初始按位異或的結果作為下一輪迭代的輸入。如果計數(shù)值小于總共需要進行的迭代輪數(shù),則選擇上一輪的迭代結果。否則,選擇明文經(jīng)過初始按位異或的結果。字節(jié)替換模塊對中間結果矩陣中的各個字節(jié)單位通過s盒(substitutionbox)進行變換。變換過程分為兩步,首先計算在有限域上的乘法逆,然后進行仿射變換,得到變換結果。行移位模塊對中間結果矩陣的每行按照不同的偏移量進行循環(huán)移位。列混合模塊對中間結果矩陣的每列進行線性變換。變換過程為:將每一列的4個元素視為多項式a0+a1x+a2x2+a3x3的系數(shù),并將此多項式與給定的多項式2+x+x2+3x3在模1+x4下相乘,所得多項式的系數(shù)即為變換結果。計數(shù)控制模塊對迭代次數(shù)進行計數(shù)。如果迭代次數(shù)未達到總共需要的迭代輪數(shù),則將當前迭代結果傳輸給選擇器。否則,將迭代結果傳輸給后續(xù)的字節(jié)替換模塊。

由于aes解密功能的實施方式與aes加密功能類似,只在子密鑰的使用順序及各模塊的執(zhí)行方式上有細微差別,故不再贅述。

通過重構,近數(shù)據(jù)處理模塊能夠根據(jù)應用需求改變實施方式。在此以入侵檢測中常用的模式匹配技術為例,說明近數(shù)據(jù)處理模塊的一種實施方式。圖5(a)所示為本發(fā)明實施例的存儲控制器執(zhí)行模式匹配命令的流程示意圖。模式匹配模塊可以與主機接口模塊以及處理器配合完成模式匹配功能,當存儲控制器通過主機接口模塊收到從主機發(fā)來的模式匹配命令及待匹配的字符串后,存儲控制器的處理器將待匹配的字符串寫到模式匹配模塊中。接著,由模式匹配模塊完成模式匹配,并得到匹配結果。最后,存儲控制器通過主機接口模塊將匹配結果返回給主機。由于模式匹配是在存儲控制器中完成,故不需要將大量的模式信息傳輸給主機,只需要向主機返回匹配結果,從而減少了內存與存儲設備或存儲器件之間的數(shù)據(jù)傳輸量、縮短了數(shù)據(jù)傳輸?shù)穆窂健p小了數(shù)據(jù)傳輸?shù)墓?,進而提升了計算機系統(tǒng)性能。

其中,上述僅是近數(shù)據(jù)處理模塊的一種實施方式的舉例,近數(shù)據(jù)處理模塊中還可以包括鍵值檢索模塊等,具體實施方式可以參照模式匹配模塊,在此不在贅述。

圖5(b)為模式匹配模塊實施的結構示意圖。其中,初始狀態(tài)表、狀態(tài)跳轉表、狀態(tài)信息表由模式匹配模塊利用從存儲設備或存儲器件中讀取到的模式信息進行構建。初始狀態(tài)表用于根據(jù)輸入的字符確定狀態(tài)跳轉表的初始狀態(tài)。狀態(tài)跳轉表用于根據(jù)當前狀態(tài)和輸入的字符,確定下一狀態(tài)的相關信息在狀態(tài)信息表中的偏移地址。狀態(tài)信息表被保存在設備端緩存中,用于存放模式匹配中各個狀態(tài)的相關信息,例如已匹配的字符長度、匹配到的模式的編號等。地址計算邏輯中保存了位于設備端緩存中的狀態(tài)信息表的基地址,并能夠通過該基地址以及查找狀態(tài)跳轉表得到的偏移地址計算得到相應的物理地址。該物理地址是設備端緩存中下一狀態(tài)的相關信息所在的地址。控制邏輯用于根據(jù)下一狀態(tài)生成選擇信號。選擇器根據(jù)選擇信號確定是將初始狀態(tài)還是下一狀態(tài)保存在狀態(tài)寄存器中。而狀態(tài)寄存器則是用于保存當前狀態(tài)。

模式匹配的具體流程如下。進行模式匹配時,待匹配的字符會不斷地輸入到模式匹配模塊之中。首先,利用輸入的字符查找初始狀態(tài)表得到狀態(tài)跳轉表的初始狀態(tài)。然后,控制邏輯根據(jù)下一狀態(tài)生成選擇信號,如果下一狀態(tài)的相關信息表示已經(jīng)得到匹配結果,則無論成功還是失敗均選擇將初始狀態(tài)保存在狀態(tài)寄存器中;否則,將下一狀態(tài)保存在狀態(tài)寄存器中。接著,根據(jù)狀態(tài)寄存器中保存的當前狀態(tài)以及輸入的字符查找狀態(tài)跳轉表,從而得到下一狀態(tài)的相關信息在狀態(tài)信息表中的偏移地址。地址計算邏輯使用該偏移地址以及狀態(tài)信息表的基地址計算得到相應的物理地址。利用該物理地址可以從設備端緩存中得到下一狀態(tài)的相關信息。如果狀態(tài)信息表示匹配到某個模式,則輸出匹配結果,并重復上述操作。在匹配結果中包含了匹配成功的標志、匹配到的模式的編號等信息。如果未匹配到某個模式并且待匹配的字符尚未輸入完成,則重復上述操作。如果直到所有待匹配的字符均輸入完成后,依然未曾匹配成功過一次,則輸出匹配結果,并且匹配結果中包含了匹配失敗標志。

本領域的技術人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
灵武市| 肇源县| 瓦房店市| 水城县| 台中县| 福贡县| 鸡西市| 西盟| 安陆市| 梨树县| 宁夏| 平泉县| 遂昌县| 绍兴县| 会理县| 翁牛特旗| 清水河县| 开江县| 耿马| 洞头县| 武乡县| 胶南市| 炎陵县| 弥渡县| 昭平县| 景东| 新野县| 萝北县| 乌拉特前旗| 威宁| 北流市| 古田县| 肇庆市| 武鸣县| 盐池县| 仙游县| 鹤山市| 衡南县| 乌兰浩特市| 宾阳县| 巴马|