一种实现ssd主控raid的sram访问装置
技术领域
1.本发明涉及存储领域,具体是一种实现ssd主控raid的sram访问装置。
背景技术:
2.如表1所示,根据一12nm片上sram的datasheet统计数据(4kb和8kb)可得以下结论:面积方面,spsram(single port sram,单口sram)的面积远远小于同样尺寸的dpsram(dual port sram,双口sram),使用dpsram时使得所占芯片面积接近翻倍,性价比极低;时序方面,spsram的最小时钟周期小于dpsram,即可以支持更高频率的数据访问;功耗方面,spsram的静态电流也远小于同尺寸的dpsram。
3.tcyc minimum clkcycletime
4.tcd clk to valid q(data out put)
5.wake up时间使用了:
6.tslpwk wake up time for switching back to normal mode from slp mode slp
→
ceb
7.tdslpwk wake up time for switching back to normal mode from dslp mode dslp
→
ceb
8.tsdwk wake up time for switching back to normal mode from shut down mode sd
→
dslp
[0009][0010][0011]
表1
[0012]
实现ssd主控raid的一种方式就是需要对sram进行频繁读写,其时序要求是:对上一拍从sram中读出的数据与外部数据进行异或运算并且当拍写入sram上一拍的读出
地址中;当拍从sram中读出的数据与外部数据进行异或运算下一拍写入sram当拍的读出地址中。既每一拍都有对sram的连续两个地址有读写操作。当外部数据连续进入时,sram可以连续写入及读出中间parity,保证流水效率。一种简单的实现方式是使用dpsram,因其有两套读写地址及数据接口,可以支持在一个clock cycle内对sram既读又写。
[0013]
对dpsram的操作可参考表2:
[0014][0015][0016]
表2
[0017]
上表中,a0指代总条目为n的dpsram的第0地址,a(n-1)指代dpsram的第n-1地址),d(n-1)
wr
表示第n-1地址的写数据,d(n-1)
rd
表示第n-1地址的读数据。
[0018]
但这种方式耗费sram面积功耗都较大,且最高频率受限,进而影响芯片成本及性能。
技术实现要素:
[0019]
针对现有双口sram实现raid面积功耗较大且最高频率受限的缺陷,本发明提供一种实现ssd主控raid的sram访问装置,使用两片spsram以及相应的控制逻辑电路,在保证功能的前提下使芯片面积减小、功耗降低、频率提高。
[0020]
为了解决所述技术问题,本发明采用的技术方案是:一种实现ssd主控中raid的sram访问装置,其特征在于:包括两块单口sram以及与单口sram相连的逻辑控制电路,逻辑控制电路控制两块单口sram在同一时钟周期分别进行读或写操作,并且两块单口sram交替作为奇偶地址sram,作为奇地址sram时,进行奇地址数据的读或写,作为偶地址sram时,进行偶地址数据的读或写;逻辑控制电路包括奇偶标志逻辑电路、使能逻辑电路、写使能逻辑电路、地址多选器、读数据多路
选择器和读数据缓存电路;
[0021]
奇偶标志逻辑电路用于标志单口sram用作偶地址sram还是奇地址sram,奇偶标志逻辑电路的输入端连接start信号和init信号,受start信号触发翻转,并根据是否为init数据调整标志,奇偶标志逻辑电路的输出端连接至使能逻辑电路;使能逻辑电路的输入端与奇偶标志逻辑电路的输出信号、系统en信号、start信号相连,使能逻辑电路的输出端与
单口sram的使能端口相连,用于根据系统en信号、start信号及奇偶标志决定是否使能单口sram;
[0022]
写使能逻辑电路的输入端与奇偶标志逻辑电路的输出信号、写地址最低位信号、写使能信号相连,写使能逻辑电路的输出端与单口sram的写使能端口相连,用于根据奇偶标志和是否第一次进数选择是否对单口sram写使能;
[0023]
地址多选器用于根据写使能信号选择系统写地址还是系统读地址作为sram的地址信号;
[0024]
读数据缓存电路与单口sram读数据输出端相连,用于缓存从单口sram中读出的数据;
[0025]
读数据多路选择器与两块单口sram读数据输出端、读数据缓存电路的输出端相连,用于从单口sram读数据、单口sram读数据缓存中选择一路数据输出,该数据即为当前系统地址所对应的上一轮数据校验计算结果(temp parity)。
[0026]
进一步的,奇偶标志逻辑电路有
两路,分别用于标志两块单口sram用作偶地址sram还是奇地址sram;
[0027]
一路奇偶标志逻辑电路包括两路选择器mux00、两路选择器mux01、奇偶标志
寄存器sram0_flag、两路选择器mux02,两路选择器mux00的输入端x0接上拉电源,两路选择器mux00的输入端x1接地,两路选择器mux00的选择信号端sel接init信号,两路选择器mux00的输出端连接至两路选择器mux01的输入端x1,两路选择器mux01的输入端x0连接两路选择器mux02的输出端,两路选择器mux01的选择信号端sel接起始信号start,两路选择器mux01的输出端连接至奇偶标志寄存器sram0_flag的输入端,奇偶标志寄存器sram0_flag的输出端q连接至两路选择器mux02的输入端x0和写使能逻辑电路,奇偶标志寄存器sram0_flag的输出端连接至两路选择器mux02的输入端x1和使能逻辑电路,两路选择器mux02的选择信号端sel接结束信号finish;
[0028]
另一路奇偶标志逻辑电路包括两路选择器mux10、两路选择器mux11、奇偶标志寄存器sram1_flag、两路选择器mux12,两路选择器mux10的输入端x0接上拉电源,两路选择器mux10的输入端x1接地,两路选择器mux10的选择信号端sel接init信号,两路选择器mux10的输出端连接至两路选择器mux11的输入端x1,两路选择器mux11的输入端x0连接两路选择器mux12的输出端,两路选择器mux11的选择信号端sel接起始信号start,两路选择器mux11的输出端连接至奇偶标志寄存器sram1_flag的输入端,奇偶标志寄存器sram1_flag的输出端q连接至使能逻辑电路、写使能逻辑电路和两路选择器mux12的输入端x0,奇偶标志寄存器sram1_flag的输出端连接至两路选择器mux12输入端x1,两路选择器mux12的选择信号端sel接结束信号finish。
[0029]
进一步的,使能逻辑电路有两路,分别用于使能两块单口sram,两路使能逻辑电路由与门and00和或门or00、与门and10和或门or10实现,与门and00的一个输入端与奇偶标志寄存器sram0_flag的输出端连接,与门and10的一个输入端与奇偶标志寄存器sram1_flag的输出端q连接,与门and00、与门and10的另一个输入端均连接起始信号start,与门and00的输出端连接或门or00的一个输入端,与门and10的输出端连接或门or10的一个输入端,或门or00、或门or10的另一个输入端均连接使能信号en,或门or00的输出端连接至单口
sram0的使能端口,或门or10的输出端连接至单口sram1的使能端口。
[0030]
进一步的,写使能逻辑电路有两路,分别用于写使能两块单口sram,一路写使能逻辑电路包括异或门xor0和与门and01,异或门xor0的一个输入端连接写地址信号的最低位,异或门xor0的另一个输入端连接奇偶标志寄存器sram0_flag的输出端q,异或门xor0的输出端连接至与门and01的一个输入端,与门and01的另一个输入端连接系统写使能信号,与门and01的输出端连接至单口sram0的写使能端口;
[0031]
另一路写使能逻辑电路包括同或门xnor1和与门and11,同或门xnor1的一个输入端连接写地址信号的最低位,同或门xnor1的另一个输入端连接奇偶标志寄存器sram1_flag的输出端q,同或门xnor1的输出端连接至与门and11的一个输入端,与门and11的另一个输入端连接系统写使能信号,与门and11的输出端连接单口sram1的写使能端口。
[0032]
进一步的,地址多选器有两个,用于决定两块单口sram的地址信号,两个地址多选器为两路选择器mux03和两路选择器mux13,两路选择器mux03的两个输入端分别连接写地址和读地址,两路选择器mux03的选择信号端sel连接一路写使能电路的输出,两路选择器mux03的输出端连接sram0的地址输入端口;两路选择器mux13的两个输入端分别连接写地址和读地址,两路选择器mux13的选择信号端sel连接另一路写使能电路的输出,两路选择器mux13的输出端连接sram1的地址输入端口。
[0033]
进一步的,读数据缓存电路有两路,分别用于缓存两块单口sram的读数据,两路读数据缓存电路由读数据寄存器sram0_rdata_r、读数据寄存器sram1_rdata_r组成,读数据寄存器sram0_rdata_r与单口sram0的读数据输出端口相连,用于缓存单口sram0的读数据,读数据寄存器sram1_rdata_r与单口sram1的读数据输出端口相连,用于缓存单口sram1的读数据。
[0034]
进一步的,读数据多路选择器包括两路选择器mux04及其选择逻辑电路、两路选择器mux05及其逻辑选择电路、两路选择器mux14及其选择逻辑电路、两路选择器mux15及其选择逻辑电路;
[0035]
两路选择器mux04的选择逻辑电路包括与门and02、首笔偶地址标识寄存器even_1st和或门or01,与门and02的输入端分别连接sram0的写使能信号、sram1的写使能信号取反,与门and02的输出端连接至首笔偶地址标识寄存器even_1st的输入端,首笔偶地址地址标识寄存器even_1st的输出端q连接至或门or01的一个输入端,或门or01的另一个输入端连接系统写使能信号;
[0036]
两路选择器mux05的选择逻辑电路包括读地址最低位寄存器rdaddr_lsb_r0和同或门xnor0,读地址最低位寄存器rdaddr_lsb_r0的输入端连接读地址中的最低位,读地址最低位寄存器rdaddr_lsb_r0的输出端q连接至同或门xnor0的一个输入端,同或门xnor0的另一个输入端连接奇偶标志信号sram0_flag/q;
[0037]
两路选择器mux14的选择逻辑电路包括与门and12、首笔奇地址标识寄存器odd_1st、或门or11,与门and12的输入端分别连接sram0的写使能信号取反、sram1的写使能信号,与门and12的输出端连接至首笔奇地址标识寄存器odd_1st的输入端,首笔奇地址标识寄存器odd_1st的输出端q连接至或门or11的一个输入端,或门or11的另一个输入端连接系统写使能信号;
[0038]
两路选择器器mux14的选择逻辑电路包括读地址最低位寄存器rdaddr_lsb_r1和
异或门xor1,读地址最低位寄存器rdaddr_lsb_r1的输入端连接读地址中的最低位,读地址最低位寄存器rdaddr_lsb_r1的输出端q连接至异或门xor1的一个输入端,异或门xor1的另一个输入端连接奇偶标志信号sram1_flag/q;两路选择器mux04的输入端x1连接sram0的数据输出端口sram0_rdata,两路选择器mux04的输入端x0连接读数据寄存器sram0_rdata_r的输出端,两路选择器mux04的信号选择端sel连接或门or01的输出端;两路选择器mux04的输出端连接两路选择器mux05的输入端x1,两路选择器mux05的输入端x0接地,两路选择器mux05的信号选择端sel连接同或门xnor0的输出端;
[0039]
两路选择器mux14的输入端x1连接sram1的数据输出端口sram1_rdata,两路选择器mux14的输入端x0连接读数据寄存器sram1_rdata_r的输出端q,两路选择器mux14的信号选择端sel连接或门or11的输出端;两路选择器mux14的输出端连接两路选择器mux15的输入端x1,两路选择器mux15的输入端x0接地,两路选择器mux15的信号选择端sel连接异或门xor1的输出端;
[0040]
两路选择器mux05、两路选择器mux15的输出端分别连接至或门rddata_or的输入端,或门rddata_or的输出既对应当前系统读地址的读出数据(上一笔数据校验计算结果temp parity)。本发明的有益效果:本发明使用两片单口sram替换掉原来的双口sram,并增加硬件控制逻辑电路实现raid功能中对sram的访问使用,控制逻辑电路由少量寄存器和多选器组成,面积远小于相同尺寸dpsram与spsram的面积差值。由此可知,本发明在保证功能的前提下在整体上有使芯片面积减小,功耗降低,频率提高的突出效果。
附图说明
[0041]
图1为本sram访问装置的电路图1;
[0042]
图2为本sram访问装置的电路图2;
[0043]
图3为本sram访问装置的电路图3。
具体实施方式
[0044]
下面结合附图和具体实施例对本发明作进一步的说明。
[0045]
实施例1
[0046]
本实施例公开一种实现ssd主控raid的sram访问装置,本装置由图1、2、3所示电路组成,包括两块单口sram以及与单口sram相连的逻辑控制电路,下面称两块单口sram为sram0和sram1,逻辑控制电路控制两块单口sram在同一时钟周期分别进行读或写操作,并且两块单口sram交替作为奇偶地址sram,作为奇地址sram时,进行奇地址数据的读或写,作为偶地址sram时,进行偶地址数据的读或写,从而实现raid功能中对sram的访问使用。
[0047]
逻辑控制电路包括奇偶标志逻辑电路、使能逻辑电路、写使能逻辑电路、地址多选器、读数据多路选择器和读数据缓存电路。
[0048]
奇偶标志逻辑电路用于标志单口sram用作偶地址sram还是奇地址sram,奇偶标志逻辑电路的输入端连接start信号和init信号,受start信号触发翻转,并根据是否为init数据调整标志,init信号表示是否为第一轮,第一轮只是铺数,即对sram的操作只有写没有读,奇偶标志逻辑电路的输出端连接至使能逻辑电路。
[0049]
使能逻辑电路的输入端与奇偶标志逻辑电路的输出信号、系统使能信号en、起始
信号start相连,使能逻辑电路的输出端与单口sram的使能端口相连,用于根据系统使能信号en、起始信号start及奇偶标志决定是否使能单口sram。
[0050]
写使能逻辑电路的输入端与奇偶标志逻辑电路的输出信号、写地址最低位信号、写使能信号相连,写使能逻辑电路的输出端与单口sram的写使能端口相连,用于根据奇偶标志和是否第一次进数选择是否对单口sram写使能。
[0051]
地址多选器用于根据写使能信号选择系统写地址还是系统读地址作为sram的地址信号。
[0052]
读数据缓存电路与单口sram读数据输出端相连,用于缓存从单口sram中读出的数据。
[0053]
读数据多路选择器与两块单口sram读数据输出端、读数据缓存电路的输出端相连,用于从单口sram读数据、单口sram读数据缓存中选择一路数据输出,该数据即为当前系统地址所对应的上一轮数据校验计算结果(temp parity)。
[0054]
如图1所示,奇偶标志逻辑电路有两路,分别用于标志sram0、sram1用作偶地址sram还是奇地址sram。
[0055]
一路奇偶标志逻辑电路包括两路选择器mux00、两路选择器mux01、奇偶标志寄存器sram0_flag、两路选择器mux02,两路选择器mux00的输入端x0接上拉电源,两路选择器mux00的输入端x1接地,两路选择器mux00的选择信号端sel接init信号,两路选择器mux00的输出端连接至两路选择器mux01的输入端x1,两路选择器mux01的输入端x0连接两路选择器mux02的输出端,两路选择器mux01的选择信号端sel接起始信号start,两路选择器mux01的输出端连接至奇偶标志寄存器sram0_flag的输入端,奇偶标志寄存器sram0_flag的输出端q连接至两路选择器mux02的输入端x0和sram0的写使能逻辑电路,奇偶标志寄存器sram0_flag的输出端连接至两路选择器mux02的输入端x1和sram0的使能逻辑电路,两路选择器mux02的选择信号端sel接结束信号finish。
[0056]
另一路奇偶标志逻辑电路包括两路选择器mux10、两路选择器mux11、奇偶标志寄存器sram1_flag、两路选择器mux12,两路选择器mux10的输入端x0接上拉电源,两路选择器mux10的输入端x1接地,两路选择器mux10的选择信号端sel接init信号,两路选择器mux10的输出端连接至两路选择器mux11的输入端x1,两路选择器mux11的输入端x0连接两路选择器mux12的输出端,两路选择器mux11的选择信号端sel接起始信号start,两路选择器mux11的输出端连接至奇偶标志寄存器sram1_flag的输入端,奇偶标志寄存器sram1_flag的输出端q连接至两路选择器mux12的输入端x0、sram1的写使能逻辑电路以及sram1的使能逻辑电路,奇偶标志寄存器sram1_flag的输出端连接至两路选择器mux12的输入端x1,两路选择器mux12的选择信号端sel接结束信号finish。
[0057]
如图1所示,使能逻辑电路有两路,分别用于使能sram0、sram1,两路使能逻辑电路由与门and00和或门or00、与门and10和或门or10实现,与门and00的一个输入端与奇偶标志寄存器sram0_flag的输出端连接,与门and10的一个输入端与奇偶标志寄存器sram1_flag的输出端q连接,与门and00、与门and10的另一个输入端均连接起始信号start,与门and00的输出端连接或门or00的一个输入端,与门and10的输出端连接或门or10的一个输入端,或门or00、或门or10的另一个输入端均连接使能信号en,或门or00的输出端连接至单口
sram0的使能端口sram0_en,或门or10的输出端连接至单口sram1的使能端口sram1_en。
[0058]
如图1、2所示,写使能逻辑电路有两路,分别用于写使能sram0、sram1,一路写使能逻辑电路包括异或门xor0和与门and01,异或门xor0的一个输入端连接写地址信号的最低位,异或门xor0的另一个输入端连接奇偶标志寄存器sram0_flag的输出端q,即信号sram0_flag/q,异或门xor0的输出端连接至与门and01的一个输入端,与门and01的另一个输入端连接系统写使能信号wr_en,与门and01的输出端连接至单口sram0的写使能端口sram0_wr_en;另一路写使能逻辑电路包括同或门xnor1和与门and11,同或门xnor1的一个输入端连接写地址信号的最低位,同或门xnor1的另一个输入端连接奇偶标志寄存器sram1_flag的输出端q,即信号sram1_flag/q,,同或门xnor1的输出端连接至与门and11的一个输入端,与门and11的另一个输入端连接系统写使能信号wr_en,与门and11的输出端连接单口sram1的写使能端口sram1_wr_en。
[0059]
如图2所示,地址多选器有两个,用于决定sram0、sram1的地址信号,两个地址多选器为两路选择器mux03和两路选择器mux13,两路选择器mux03的两个输入端分别连接写地址和读地址,两路选择器mux03的选择信号端sel连接一路写使能电路即与门and01的输出,两路选择器mux03的输出端连接sram0的地址输入端口sram0_addr;两路选择器mux13的两个输入端分别连接写地址和读地址,两路选择器mux13的选择信号端sel连接另一路写使能电路即与门and11的输出,两路选择器mux13的输出端连接sram1的地址输入端口sram1_addr。
[0060]
如图2、3所示,读数据缓存电路有两路,分别用于缓存sram0、sram1的读数据,两路读数据缓存电路由读数据寄存器sram0_rdata_r、读数据寄存器sram1_rdata_r组成,读数据寄存器sram0_rdata_r与单口sram0的读数据输出端口sram0_rdata相连,用于缓存单口sram0的读数据,读数据寄存器sram1_rdata_r与单口sram1的读数据输出端口sram1_rdata相连,用于缓存单口sram1的读数据。
[0061]
如图2、3所示,读数据多路选择器包括两路选择器mux04及其选择逻辑电路、两路选择器mux05及其逻辑选择电路、两路选择器mux14及其选择逻辑电路、两路选择器mux15及其选择逻辑电路。
[0062]
两路选择器mux04的选择逻辑电路包括与门and02、首笔偶地址标识寄存器even_1st和或门or01,与门and02的输入端分别连接sram0的写使能信号、sram1的写使能信号取反,与门and02的输出端连接至首笔偶地址标识寄存器even_1st的输入端,首笔偶地址地址标识寄存器even_1st的输出端q连接至或门or01的一个输入端,或门or01的另一个输入端连接系统写使能信号。
[0063]
两路选择器mux05的选择逻辑电路包括读地址最低位寄存器rdaddr_lsb_r0和同或门xnor0,读地址最低位寄存器rdaddr_lsb_r0的输入端连接读地址中的最低位,读地址最低位寄存器rdaddr_lsb_r0的输出端q连接至同或门xnor0的一个输入端,同或门xnor0的另一个输入端连接奇偶标志信号sram0_flag/q。
[0064]
两路选择器mux14的选择逻辑电路包括与门and12、首笔奇地址标识寄存器odd_1st、或门or11,与门and12的输入端分别连接sram0的写使能信号取反、sram1的写使能信号,与门and12的输出端连接至首笔奇地址标识寄存器odd_1st的输入端,首笔奇地址标识寄存器odd_1st的输出端q连接至或门or11的一个输入端,或门or11的另一个输入端连接系
统写使能信号。
[0065]
两路选择器器mux15的选择逻辑电路包括读地址最低位寄存器rdaddr_lsb_r1和异或门xor1,读地址最低位寄存器rdaddr_lsb_r1的输入端连接读地址中的最低位,读地址最低位寄存器rdaddr_lsb_r1的输出端q连接至异或门xor1的一个输入端,异或门xor1的另一个输入端连接奇偶标志信号sram1_flag/q。
[0066]
两路选择器mux04的输入端x1连接sram0的数据输出端口sram0_rdata,两路选择器mux04的输入端x0连接读数据寄存器sram0_rdata_r的输出端,两路选择器mux04的信号选择端sel连接或门or01的输出端;两路选择器mux04的输出端连接两路选择器mux05的输入端x1,两路选择器mux05的输入端x0接地,两路选择器mux05的信号选择端sel连接同或门xnor0的输出端。
[0067]
两路选择器mux14的输入端x1连接sram1的数据输出端口sram1_rdata,两路选择器mux14的输入端x0连接读数据寄存器sram1_rdata_r的输出端q,两路选择器mux14的信号选择端sel连接或门or11的输出端;两路选择器mux14的输出端连接两路选择器mux15的输入端x1,两路选择器mux15的输入端x0接地,两路选择器mux15的信号选择端sel连接异或门xor1的输出端;两路选择器mux05、两路选择器mux15的输出端分别连接至或门rddata_or的输入端,或门rddata_or的输出既对应当前系统读地址的读出数据(上一笔数据校验计算结果temp parity)。
[0068]
读数据多路选择器用于从sram0读数据/sram0读数据缓存/sram1读数据/sram1读数据缓存四路中选择一路数据给系统作为当前系统地址读出的临时parity(数据校验计算结果)。因为sram0和sram1交替作为奇偶地址sram,也可以描述为:从奇地址sram读数据/奇地址sram读数据缓存/偶地址sram读数据/偶地址sram读数据缓存四路中选择一路数据给系统作为当前系统地址读出的临时parity(数据校验计算结果)。
[0069]
基于本访问装置实现ssd存储中raid访问spsram的方案如下:
[0070]
首先在系统中对两块spsram进行混合交叉编址,即将系统地址的最低位lsb用来区分奇地址sram和偶地址sram,以下所述a0、a1等均是将系统地址去掉lsb之后某个spsram的实际地址。
[0071]
其次,对于相同的系统地址,先发送读命令读出old temp parity(上一拍数据校验计算结果),再发送写命令写入将读出数据与外部数据异或后的new temp parity(新数据校验计算结果),相同地址的读写命令中间间隔一个时钟周期clock cycle(因为sram是写命令和写数据在同一拍,而读数据是在发出读命令的下一拍才有效)。对于奇数地址或者偶数地址sram中的任意地址,也要先读出才能再写入,否则上一笔的临时parity就被覆盖掉,出现功能错误。系统同时访问两个sram的时候,操作是1r1w(一读一写),这样才能做到数据连续读入写出。偶数地址sram和奇数地址sram各自的读写顺序有如下差别:偶数地址sram在第一个时钟周期发送读0地址命令,第二个时钟周期clock cycle读出0地址数据暂存在读数据缓存中,第三个时钟周期开始读写命令交叉进行;奇数地址sram第一个时钟周期空闲,从第二个时钟周期开始读写命令交叉进行。最终实现,相同地址(不看lsb)的数据从奇数地址sram读出经异或计算后写入到偶数地址sram中,反之从偶数地址sram中读出经运算写入到奇数地址sram中,读写之间间隔一个时钟周期。
[0072]
再次,在将两块sram中的数据依序更新一遍之后,将两块sram在系统当中的编址
彼此互换,再进行下一轮数据的raid运算(这样相当于new temp parity放在了与old temp parity完全相同的系统地址上)。互换方式即finish信号拉高使得各自的奇偶标志寄存器翻转。原来的奇数地址sram变为偶数地址sram,原来的偶数地址sram变为奇数地址sram。系统根据奇偶标志寄存器控制每块sram进行新一轮的读写操作。
[0073]
当init为1时,代表是第一轮数据进入sram,此时只需要写sram,不读sram。
[0074]
具体时序信息如表3所示,即奇数地址sram之某地址的数据被读出后,其与外部数据的异或结果写入到偶数地址sram的相同地址(曲线箭头所示),反之亦然。
[0075][0076]
表3
[0077]
e0、o0分别指偶数地址sram的0地址、奇数地址sram的0地址;
[0078]
d(0)
wr
~d(2m)
wr
是系统地址0~2m所对应的写数据(raid当中新计算出来的临时parity);
[0079]
d(0)
rd
~d(2m)
rd
是系统地址0~2m所对应的读数据(raid当中上一次的临时parity)。
[0080]
与dpsram的时序图表(表2)相对比,n=2m,dpsram size为n,两块spsram size均为m。前者完成一轮emp parity刷新所用的clock cycle数为n+3,后者完成一轮temp parity刷新所用的时钟周期数为2m+3,二者完全相同。即本装置完全不影响ssd raid工作的效率。
[0081]
本发明使用sp sram替换掉dp sram,增加一小部分硬件控制逻辑,在保证功能的
前提下在整体上有使芯片面积减小,功耗降低,频率提高的突出效果。是ssd主控中raid实现上一项有意义的突破。
[0082]
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
技术特征:
1.一种实现ssd主控中raid的sram访问装置,其特征在于:包括两块单口sram以及与单口sram相连的逻辑控制电路,逻辑控制电路控制两块单口sram在同一时钟周期分别进行读或写操作,并且两块单口sram交替作为奇偶地址sram,作为奇地址sram时,进行奇地址数据的读或写,作为偶地址sram时,进行偶地址数据的读或写;逻辑控制电路包括奇偶标志逻辑电路、使能逻辑电路、写使能逻辑电路、地址多选器、读数据多路选择器和读数据缓存电路;奇偶标志逻辑电路用于标志单口sram用作偶地址sram还是奇地址sram,奇偶标志逻辑电路的输入端连接start信号和init信号,受start信号触发翻转,并根据是否为init数据调整标志,奇偶标志逻辑电路的输出端连接至使能逻辑电路;使能逻辑电路的输入端与奇偶标志逻辑电路的输出信号、系统en信号、start信号相连,使能逻辑电路的输出端与单口sram的使能端口相连,用于根据系统en信号、start信号及奇偶标志决定是否使能单口sram;写使能逻辑电路的输入端与奇偶标志逻辑电路的输出信号、写地址最低位信号、写使能信号相连,写使能逻辑电路的输出端与单口sram的写使能端口相连,用于根据奇偶标志和是否第一次进数选择是否对单口sram写使能;地址多选器用于根据写使能信号选择系统写地址还是系统读地址作为sram的地址信号;读数据缓存电路与单口sram读数据输出端相连,用于缓存从单口sram中读出的数据;读数据多路选择器与两块单口sram读数据输出端、读数据缓存电路的输出端相连,用于从单口sram读数据、单口sram读数据缓存中选择一路数据输出,该数据即为当前系统地址所对应的上一轮数据校验计算结果。2.根据权利要求1所述的实现ssd主控中raid的sram访问装置,其特征在于:奇偶标志逻辑电路有两路,分别用于标志两块单口sram用作偶地址sram还是奇地址sram;一路奇偶标志逻辑电路包括两路选择器mux00、两路选择器mux01、奇偶标志寄存器sram0_flag、两路选择器mux02,两路选择器mux00的输入端x0接上拉电源,两路选择器mux00的输入端x1接地,两路选择器mux00的选择信号端sel接init信号,两路选择器mux00的输出端连接至两路选择器mux01的输入端x1,两路选择器mux01的输入端x0连接两路选择器mux02的输出端,两路选择器mux01的选择信号端sel接起始信号start,两路选择器mux01的输出端连接至奇偶标志寄存器sram0_flag的输入端,奇偶标志寄存器sram0_flag的输出端q连接至两路选择器mux02的输入端x0和写使能逻辑电路,奇偶标志寄存器sram0_flag的输出端连接至两路选择器mux02的输入端x1和使能逻辑电路,两路选择器mux02的选择信号端sel连接结束信号finish;另一路奇偶标志逻辑电路包括两路选择器mux10、两路选择器mux11、奇偶标志寄存器sram1_flag、两路选择器mux12,两路选择器mux10的输入端x0接上拉电源,两路选择器mux10的输入端x1接地,两路选择器mux10的选择信号端sel接init信号,两路选择器mux10的输出端连接至两路选择器mux11的输入端x1,两路选择器mux11的输入端x0连接两路选择器mux12的输出端,两路选择器mux11的选择信号端sel接起始信号start,两路选择器mux11的输出端连接至奇偶标志寄存器sram1_flag的输入端,奇偶标志寄存器sram1_flag的输出
端q连接至使能逻辑电路、写使能逻辑电路、两路选择器mux12的输入端x0,奇偶标志寄存器sram1_flag的输出端连接至两路选择器mux12的输入端x1,两路选择器mux12的选择信号端sel接结束信号finish。3.根据权利要求2所述的实现ssd主控中raid的sram访问装置,其特征在于:使能逻辑电路有两路,分别用于使能两块单口sram,两路使能逻辑电路由与门and00和或门or00、与门and10和或门or10实现,与门and00的一个输入端与奇偶标志寄存器sram0_flag的输出端连接,与门and10的一个输入端与奇偶标志寄存器sram1_flag的输出端q连接,与门and00、与门and10的另一个输入端均连接起始信号start,与门and00的输出端连接或门or00的一个输入端,与门and10的输出端连接或门or10的一个输入端,或门or00、或门or10的另一个输入端均连接使能信号en,或门or00的输出端连接至单口sram0的使能端口,或门or10的输出端连接至单口sram1的使能端口。4.根据权利要求2所述的实现ssd主控中raid的sram访问装置,其特征在于:写使能逻辑电路有两路,分别用于写使能两块单口sram,一路写使能逻辑电路包括异或门xor0和与门and01,异或门xor0的一个输入端连接写地址信号的最低位,异或门xor0的另一个输入端连接奇偶标志寄存器sram0_flag的输出端q,异或门xor0的输出端连接至与门and01的一个输入端,与门and01的另一个输入端连接系统写使能信号,与门and01的输出端连接至单口sram0的写使能端口;另一路写使能逻辑电路包括同或门xnor1和与门and11,同或门xnor1的一个输入端连接写地址信号的最低位,同或门xnor1的另一个输入端连接奇偶标志寄存器sram1_flag的输出端q,同或门xnor1的输出端连接至与门and11的一个输入端,与门and11的另一个输入端连接系统写使能信号,与门and11的输出端连接单口sram1的写使能端口。5.根据权利要求2所述的实现ssd主控中raid的sram访问装置,其特征在于:地址多选器有两个,用于决定两块单口sram的地址信号,两个地址多选器为两路选择器mux03和两路选择器mux13,两路选择器mux03的两个输入端分别连接写地址和读地址,两路选择器mux03的选择信号端sel连接一路写使能电路的输出,两路选择器mux03的输出端连接sram0的地址输入端口;两路选择器mux13的两个输入端分别连接写地址和读地址,两路选择器mux13的选择信号端sel连接另一路写使能电路的输出,两路选择器mux13的输出端连接sram1的地址输入端口。6.根据权利要求1或2所述的实现ssd主控中raid的sram访问装置,其特征在于:读数据缓存电路有两路,分别用于缓存两块单口sram的读数据,两路读数据缓存电路由读数据寄存器sram0_rdata_r、读数据寄存器sram1_rdata_r组成,读数据寄存器sram0_rdata_r与单口sram0的读数据输出端口相连,用于缓存单口sram0的读数据,读数据寄存器sram1_rdata_r与单口sram1的读数据输出端口相连,用于缓存单口sram1的读数据。7.根据权利要求6所述的实现ssd主控中的raid的sram访问装置,其特征在于:读数据多路选择器包括两路选择器mux04及其选择逻辑电路、两路选择器mux05及其逻辑选择电路、两路选择器mux14及其选择逻辑电路、两路选择器mux15及其选择逻辑电路;两路选择器mux04的选择逻辑电路包括与门and02、首笔偶地址标识寄存器even_1st和或门or01,与门and02的输入端分别连接sram0的写使能信号、sram1的写使能信号取反,与
门and02的输出端连接至首笔偶地址标识寄存器even_1st的输入端,首笔偶地址地址标识寄存器even_1st的输出端q连接至或门or01的一个输入端,或门or01的另一个输入端连接系统写使能信号;两路选择器mux05的选择逻辑电路包括读地址最低位寄存器rdaddr_lsb_r0和同或门xnor0,读地址最低位寄存器rdaddr_lsb_r0的输入端连接读地址中的最低位,读地址最低位寄存器rdaddr_lsb_r0的输出端q连接至同或门xnor0的一个输入端,同或门xnor0的另一个输入端连接奇偶标志信号sram0_flag/q;两路选择器mux14的选择逻辑电路包括与门and12、首笔奇地址标识寄存器odd_1st、或门or11,与门and12的输入端分别连接sram0的写使能信号取反、sram1的写使能信号,与门and12的输出端连接至首笔奇地址标识寄存器odd_1st的输入端,首笔奇地址标识寄存器odd_1st的输出端q连接至或门or11的一个输入端,或门or11的另一个输入端连接系统写使能信号;两路选择器器mux14的选择逻辑电路包括读地址最低位寄存器rdaddr_lsb_r1和异或门xor1,读地址最低位寄存器rdaddr_lsb_r1的输入端连接读地址中的最低位,读地址最低位寄存器rdaddr_lsb_r1的输出端q连接至异或门xor1的一个输入端,异或门xor1的另一个输入端连接奇偶标志信号sram1_flag/q;两路选择器mux04的输入端x1连接sram0的数据输出端口sram0_rdata,两路选择器mux04的输入端x0连接读数据寄存器sram0_rdata_r的输出端,两路选择器mux04的信号选择端sel连接或门or01的输出端;两路选择器mux04的输出端连接两路选择器mux05的输入端x1,两路选择器mux05的输入端x0接地,两路选择器mux05的信号选择端sel连接同或门xnor0的输出端;两路选择器mux14的输入端x1连接sram1的数据输出端口sram1_rdata,两路选择器mux14的输入端x0连接读数据寄存器sram1_rdata_r的输出端q,两路选择器mux14的信号选择端sel连接或门or11的输出端;两路选择器mux14的输出端连接两路选择器mux15的输入端x1,两路选择器mux15的输入端x0接地,两路选择器mux15的信号选择端sel连接异或门xor1的输出端;两路选择器mux05、两路选择器mux15的输出端分别连接至或门rddata_or的输入端,或门rddata_or的输出既对应当前系统读地址的读出数据。
技术总结
本发明公开一种实现SSD主控中RAID的SRAM访问装置,包括两块单口SRAM以及与单口SRAM相连的逻辑控制电路,逻辑控制电路控制两块单口SRAM在同一时钟周期分别进行读或写操作,并且两块单口SRAM交替作为奇偶地址SRAM,作为奇地址SRAM时,进行奇地址数据的读或写,作为偶地址SRAM时,进行偶地址数据的读或写;逻辑控制电路包括奇偶标志逻辑电路、使能逻辑电路、写使能逻辑电路、地址多选器、读数据多路选择器和读数据缓存电路。本发明使用两片SPSRAM以及相应的控制逻辑电路,在保证功能的前提下使芯片面积减小、功耗降低、频率提高。频率提高。频率提高。
技术研发人员:
王运哲 姚香君 衣瑞刚 王帅 夏丽煖 沈艺 刘奇浩
受保护的技术使用者:
山东华芯半导体有限公司
技术研发日:
2022.10.31
技术公布日:
2023/2/3