对单端口SRAM进行读写的方法、FIFO模块、芯片与流程
- 国知局
- 2024-07-31 19:21:44
本技术涉及存储,特别是涉及一种对单端口sram(single port sram,spsram)进行读写的方法、fifo模块及芯片。
背景技术:
1、在需要高带宽和低延迟的应用场景的先入先出队列(first in first out,fifo)模块中,常常使用双端口静态随机存储器(two port sram,tp sram)来实现对数据的存储,以节省面积资源,并实现读写满带宽需求。
2、如图1所示,示出了现有技术中一个典型的tp sram的fifo模块实现架构图,对于tp sram,其存在两组接口(读口和写口),这两个接口相互独立,可以独立操作,因此可以分别使用一个写控制器和读控制器来控制写地址和读地址的保存。从而tp sram可以实现同拍读写,即在同一个时钟周期内(即同拍内)进行读和写操作,也就是在同一个时钟上升沿或下降沿中同时进行读取和写入数据的操作。tp sram的这种读写方式可以减少内存访问的延迟和提高数据吞吐量,特别适用于需要高带宽和低延迟的应用场景。
3、但是,双端口sram相对于只存在一组接口的单端口sram,由于需要额外的读写电路、控制逻辑更复杂等原因,其面积和功耗都比相同规格大小的单端口sram要大很多,没法充分压缩面积资源。而对于同一个单端口sram,由于只存在一组接口,其在同一拍只能进行写操作或读操作,无法实现在同一拍同时进行读写操作。
4、故在现有技术中,对于一些需要高带宽和低延迟的应用场景的fifo模块中,如果需要节省芯片面积,现有的技术均存在不足之处。
技术实现思路
1、本技术所要解决的技术问题在于,提供一种在fifo模块中对单端口sram进行读写的方法、fifo模块及芯片,可以在实现同拍读写的同时,减少面积资源和功耗。
2、为解决上述技术问题,作为本技术的一方面,提供一种fifo模块,其至少包括选路器、数据寄存器、写控制器、读控制器、第一单端口sram和第二单端口sram;其中:
3、选路器,用于接收写使能信号及写数据,并判断本周期是否存在读写冲突,在不存在读写冲突时,将写数据传送给写控制器;在存在读写冲突时,将写数据传送给数据寄存器;
4、数据寄存器,用于寄存选路器发送的写数据,并在下一周期发送给写控制器;
5、写控制器,用于接收来自选路器或数据寄存器的写数据,并根据当前的写地址确定需要写入的第一单端口sram或第二单端口sram,进行乒乓式写操作处理;
6、读控制器,用于在接收到读使能信号的情况下,根据当前的读地址确定需要读取的第一单端口sram或第二单端口sram,进行乒乓式读取操作处理。
7、其中,所写控制器进一步包括:
8、写地址寄存器,用于保存当前的写地址;
9、写sram确定单元,用于根据写地址寄存器中当前写地址值的最后一位的值,确定本次写操作对应的第一单端口sram或第二单端口sram;
10、写入操作单元,用于将写数据写入所确定的第一单端口sram或第二单端口sram中;
11、写地址寄存器处理单元,用于在所述fifo模块收到写使能信号时,将写地址寄存器中的当前写地址值加1。
12、其中,所述读控制器进一步包括:
13、读地址寄存器,用于保存当前的读地址;
14、读sram确定单元,用于根据所述读地址寄存器中地址值的最后一位的值,确定本次读操作对应的第一单端口sram或第二单端口sram;
15、读取操作单元,用于从所确定的第一单端口sram或第二单端口sram中读出数据;
16、读地址寄存器处理单元,用于在所述fifo模块收到读使能信号时,将所述读地址寄存器中地址值加1。
17、其中,所述选路器进一步采用下述方式进行冲突判断:
18、如果本周期中同时接收到写使能和读使能信号,将当前写地址值和读地址进行比较,如果两者的最后一位相同,则判定存在读写冲突。
19、其中,所述写sram确定单元进一步包括:
20、第一确定单元,用于接收到来自选路器的写操作时,根据所述写地址寄存器中当前写地址值的最后一位的值,确定本次写操作对应的第一单端口sram或第二单端口sram;
21、第二确定单元,用于接收到来自数据寄存器的写操作时,将写地址寄存器中的当前写地址值减1,根据当前写地址值减1后得到的地址值的最后一位的值确定要写入为第一单端口sram或第二单端口sram中的一个。
22、其中,所述第一单端口sram和第二单端口sram的深度相同,均为fifo模块深度的一半;所述写地址寄存器的写地址值和读地址寄存器的读地址值均在0至fifo模块深度-1之间循环。
23、其中,在存在读写冲突时,所述读控制器优先执行读操作。
24、相应地,本技术的另一方面,还提供一种对单端口sram进行读写的方法,应用于如前述的fifo模块中,所述方法至少包括:
25、读控制器在接收到读使能信号的情况下,根据当前的读地址确定需要读取的第一单端口sram或第二单端口sram,进行乒乓式读取操作处理;
26、选路器接收写使能信号及写数据,并判断本周期是否存在读写冲突,在不存在读写冲突时,将写数据传送给写控制器;在存在读写冲突时,将写数据传送给数据寄存器;其中,所述数据寄存器寄存选路器所发送的写数据,并在下一周期发送给写控制器;
27、写控制器接收来自选路器或数据寄存器的写数据,并根据当前的写地址确定需要写入的第一单端口sram或第二单端口sram,进行乒乓式写操作处理。
28、其中,进一步包括:
29、读控制器在接收到读使能信号时,将读控制器内的读地址寄存器中当前读地址值加1;
30、所述选路器接收写使能信号时,将写控制器内的写地址寄存器中当前写地地址加1。
31、其中,所述读控制器在接收到读使能信号的情况下,根据当前的读地址确定需要读取的第一单端口sram或第二单端口sram,进行乒乓式读取操作处理,进一步包括:
32、根据所述读地址寄存器中当前读地址值的最后一位的值,确定本次读操作对应的第一单端口sram或第二单端口sram;
33、从所确定的第一单端口sram或第二单端口sram中读出数据。
34、其中,所述判断当前周期内是否存在读写冲突,进一步包括:
35、如果本周期中同时接收到写使能和读使能信号,将当前写地址值和读地址进行比较,如果两者的最后一位相同,则判定存在读写冲突。
36、其中,写控制器接收来自选路器或数据寄存器的写数据,并根据当前的写地址确定需要写入的第一单端口sram或第二单端口sram,进行乒乓式写操作处理,进一步包括:
37、当接收到来自选路器的写数据时,根据所述写地址寄存器中当前写地址值的最后一位的值,确定本次写操作对应的第一单端口sram或第二单端口sram;
38、将接收自选路器的写数据写入所确定的第一单端口sram或第二单端口sram中。
39、其中,写控制器接收来自选路器或数据寄存器的写数据,并根据当前的写地址确定需要写入的第一单端口sram或第二单端口sram,进行乒乓式写操作处理,进一步包括
40、当接收到来自数据寄存器的写数据时,将写地址寄存器中的当前写地址值减1,根据当前写地址值减1后得到的地址值的最后一位的值确定要写入为第一单端口sram或第二单端口sram中的一个;
41、将所述来自数据寄存器的写数据写入所确定的第一单端口sram或第二单端口sram中。
42、其中,所述第一单端口sram和第二单端口sram的深度相同,均为fifo模块深度的一半;所述写地址寄存器的写地址值和读地址寄存器的读地址值均在0至fifo模块深度-1之间循环。
43、作为本技术的再一方面,还提供一种芯片,其上设置有如前述的fifo模块。
44、实施本技术,具有如下的有益效果:
45、本技术提供一种对单端口sram进行读写的方法、fifo模块、芯片,通过采用两个同样深度的单端口sram,利用乒乓读/写的方式进行读写操作;且在同一周期对同一单端口sram存在读写冲突时,优先处理读操作,并将写数据寄存于数据寄存器中,而在下一周期中,将所述寄存的写数据写入上一周期所确定的单端口sram中。实施本技术,能实现同拍读写的功能,可以采用两个单端口sram替代现有技术中双端口sram,可以实现读写满带宽和低延迟性能,并能降低fifo存储器的成本;
46、同时,使用两块单端口sram相对于一块双倍深度的双端口sram,由于在该种情况下,两块单端口sram的面积之和小于双倍深度的双端口sram的面积,在达到与tp sram实现的fifo相同读写性能的情况下,能降低大规模集成电路的面积和功耗。
本文地址:https://www.jishuxx.com/zhuanli/20240731/182403.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。