发明名称 一种基于双端口寄存器阵列的四端口存储器
摘要 本发明公开了一种基于双端口寄存器阵列的四端口存储器,目的是解决目前使用寄存器组或四端口寄存器阵列即四端口RA实现地址缓冲区时占用芯片面积大的问题。本发明技术方案是在双端口RA上增加空闲地址计数器、空闲地址写控制模块、空闲地址读控制模块、存储器读请求生成模块、存储器写请求生成模块、第一与门、第二与门、空闲地址交换寄存器读写控制模块、空闲地址交换寄存器、空闲地址选择模块、存储器写控制模块、存储器读控制模块、存储器输出数据选择模块。本发明采用双端口RA实现了四端口存储器,采用本发明作为多VC动态共享缓冲区中的地址缓冲区时可以节省存储器占用面积,从而减少芯片面积,避免布线拥塞。
申请公布号 CN104407992A 申请公布日期 2015.03.11
申请号 CN201410782798.X 申请日期 2014.12.17
申请人 中国人民解放军国防科学技术大学 发明人 张鹤颖;徐炜遐;王克非;肖立权;庞征斌;陆平静;戴艺;刘路;张磊;曹继军;徐佳庆;肖灿文;沈胜宇;王永庆;高蕾
分类号 G06F12/08(2006.01)I 主分类号 G06F12/08(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 一种基于双端口寄存器阵列的四端口存储器,采用基于双端口寄存器阵列的四端口存储器实现的地址缓冲区提供4个访问端口:第一写端口、第二写端口、第一读端口和第二读端口;第一写端口的输入信号包括:第二写请求、第二写地址、当前空闲地址,当第二写请求有效时,将当前空闲地址写入第二写地址指向的地址缓冲区空间;第一读端口的输入信号包括:第二读请求,第一读地址,输出信号包括:下一个数据地址,如果第二读请求有效,从第一读地址指向的地址缓冲区空间读出下一个数据地址;第二写端口的输入信号包括:第三写请求、第三写地址、写入的空闲地址,如果第三写请求有效,将写入的空闲地址写到第三写地址指向的地址缓冲区空间;第二读端口的输入信号包括:第三读请求,第三读地址,输出信号包括:下一个空闲地址,如果第三读请求有效,从第三读地址指向的地址缓冲区空间读出下一个空闲地址;其特征在于基于双端口寄存器阵列的四端口存储器是在双端口寄存器阵列即双端口RA上增加空闲地址计数器、空闲地址写控制模块、空闲地址读控制模块、存储器读请求生成模块、存储器写请求生成模块、第一与门、第二与门、空闲地址交换寄存器读写控制模块、空闲地址交换寄存器、空闲地址选择模块、存储器写控制模块、存储器读控制模块、存储器输出数据选择模块形成:空闲地址计数器与第三写请求信号线、第三读请求信号线、空闲地址读控制模块、空闲地址写控制模块相连;接收第三写请求和第三读请求,如果第三写请求有效,第三读请求无效,空闲地址计数器将空闲地址计数值加一;如果第三写请求无效,第三读请求有效,空闲地址计数器将空闲地址计数值减一;否则,空闲地址计数值保持不变;将空闲地址计数值发送给空闲地址读控制模块和空闲地址写控制模块;空闲地址读控制模块与第三写请求信号线、空闲地址计数器、存储器读请求生成模块、第二与门相连;接收第三写请求和空闲地址计数值,如果第三写请求有效或者空闲地址计数值为1,生成第五读使能发送到存储器读请求生成模块和第二与门;否则,不生成第五读使能;空闲地址写控制模块与第三读请求信号线、空闲地址计数器、存储器写请求生成模块、第一与门相连;接收第三读请求和空闲地址计数值,如果空闲地址计数值为0或者第三读请求有效,生成第五写使能发送到存储器写请求生成模块和第一与门;否则,不生成第五写使能;第一与门与第三写请求信号线、空闲地址写控制模块、空闲地址交换寄存器读写控制模块、空闲地址交换寄存器相连;从空闲地址写控制模块接收第五写使能,与第三写请求做逻辑与操作,即第五写使能和第三写请求同时有效时,生成第五写请求,将第五写请求发送给空闲地址交换寄存器读写控制模块和空闲地址交换寄存器;第二与门与第三读请求、空闲地址读控制模块、空闲地址交换寄存器读写控制模块、空闲地址交换寄存器、空闲地址选择模块相连;从空闲地址读控制模块接收第五读使能,将第五读使能与第三读请求做逻辑与操作,即第五读使能和第三读请求同时有效时,生成第五读请求,将第五读请求发送给空闲地址交换寄存器读写控制模块、空闲地址交换寄存器和空闲地址选择模块;空闲地址交换寄存器读写控制模块与第一与门、第二与门、空闲地址交换寄存器相连;从第一与门接收第五写请求,从第二与门接收第五读请求,如果第五写请求有效,将第五写地址加一;如果第五读请求有效,将第五读地址加一;将生成的第五写地址和第五读地址发送到空闲地址交换寄存器;空闲地址交换寄存器由两个寄存器组成,与写入的空闲地址信号线、第一与门、第二与门、空闲地址交换寄存器读写控制模块、空闲地址选择模块相连;从第一与门接收第五写请求,从空闲地址交换寄存器读写控制模块接收第五写地址,如果第五写请求有效,将从写入的空闲地址信号线获取的写入的空闲地址保存到第五写地址指向的空闲地址交换寄存器中;从第二与门接收第五读请求,从空闲地址交换寄存器读写控制模块接收第五读地址,如果第五读请求有效,从第五读地址指向的空闲地址交换寄存器读出空闲地址作为第一空闲地址,将第一空闲地址发送到空闲地址选择模块;存储器读请求生成模块与第三读请求信号线、空闲地址读控制模块、存储器读控制模块、存储器输出数据选择模块、空闲地址选择模块相连,从空闲地址读控制模块接收第五读使能,如果第三读请求有效,第五读使能无效,生成第四读请求,将第四读请求发送到存储器读控制模块、存储器输出数据选择模块和空闲地址选择模块;否则,不生成第四读请求;存储器写请求生成模块与第三写请求信号线、空闲地址写控制模块、存储器写控制模块相连,从空闲地址写控制模块接收第五写使能,如果第三写请求有效,第五写使能无效,生成第四写请求,将第四写请求发送到存储器写控制模块;否则,不生成第四写请求;存储器写控制模块与第二写请求信号线、第二写地址信号线、当前空闲地址信号线、第三写地址信号线、写入的空闲地址信号线、存储器写请求生成模块、双端口RA相连,从存储器写请求生成模块接收第四写请求;如果第二写请求有效,第四写请求无效,生成存储器写请求,将第二写地址赋给存储器写地址,将当前空闲地址赋给存储器写数据,将存储器写请求、存储器写地址、存储器写数据发送到双端口RA;如果第二写请求无效,第四写请求有效,生成存储器写请求,将第三写地址赋给存储器写地址,将写入的空闲地址赋给存储器写数据,将存储器写请求、存储器写地址、存储器写数据发送到双端口RA;否则,不生成存储器写请求;存储器读控制模块与第二读请求信号线、第一读地址信号线、第三读地址信号线、存储器读请求生成模块、双端口RA相连,从存储器读请求生成模块接收第四读请求,如果第二读请求有效,第四读请求无效,生成存储器读请求,将第一读地址赋给存储器读地址,将存储器读请求、存储器读地址发送到双端口RA;如果第二读请求无效,第四读请求有效,生成存储器读请求,将第三读地址赋给存储器读地址,将存储器读请求、存储器读地址发送到双端口RA;否则,不生成存储器读请求;双端口RA具有一个读端口和一个写端口,与存储器写控制模块、存储器读控制模块、存储器输出数据选择模块相连;双端口RA从存储器写控制模块接收存储器写请求、存储器写地址、存储器写数据,如果存储器写请求有效,将存储器写数据写入到存储器写地址指向的双端口RA存储空间;从存储器读控制模块接收存储器读请求、存储器读地址,如果存储器读请求有效,从存储器读地址指向的双端口RA存储空间读出数据作为存储器输出数据,发送到存储器输出数据选择模块;存储器输出数据选择模块与第二读请求信号线、存储器读请求生成模块、双端口RA、空闲地址选择模块、下一个数据地址信号线相连;从存储器读请求生成模块接收第四读请求,从双端口RA接收存储器输出数据,如果第二读请求有效,第四读请求无效,将存储器输出数据赋给下一个数据地址;如果第二读请求无效,第四读请求有效,将存储器输出数据赋给第二空闲地址,将第二空闲地址发送到空闲地址选择模块;空闲地址选择模块与存储器读请求生成模块、存储器输出数据选择模块、空闲地址交换寄存器、第二与门、下一个空闲地址信号线相连;从存储器读请求生成模块接收第四读请求,从存储器输出数据选择模块接收第二空闲地址,从第二与门接收第五读请求,从空闲地址交换寄存器接收第一空闲地址;如果第四读请求有效,第五读请求无效,将第二空闲地址赋给下一个空闲地址;如果第四读请求无效,第五读请求有效,将第一空闲地址赋给下一个空闲地址。
地址 410073 湖南省长沙市开福区德雅路109号