CN103777894A - 解决存储器读写冲突的方法及装置 - Google Patents
解决存储器读写冲突的方法及装置 Download PDFInfo
- Publication number
- CN103777894A CN103777894A CN201210411865.8A CN201210411865A CN103777894A CN 103777894 A CN103777894 A CN 103777894A CN 201210411865 A CN201210411865 A CN 201210411865A CN 103777894 A CN103777894 A CN 103777894A
- Authority
- CN
- China
- Prior art keywords
- read
- conflict
- write operation
- write
- clock
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本发明公开了一种解决存储器读写冲突的方法及装置,该方法包括:当检测到读写操作冲突时,优先处理冲突的写操作,处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭,冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。该装置包括冲突检测模块和冲突处理模块。本发明只是在处理时间上增加一个时钟周期,使用很少的硬件资源就可以完成冲突的处理,不需要通过软件的方式规避读写冲突,实现起来比较方便。
Description
技术领域
本发明涉及微电子技术领域,尤其涉及一种解决存储器读写冲突的方法及装置。
背景技术
现有的处理器多采用流水线架构,其读写操作都有其固定的时序。存储器分为双口存储器和单口存储器。双口存储器有两个读写端口,可同时对存储器进行读写操作。单口存储器只有一个读写端口,同一时刻只能允许一个读操作或者写操作。处理器中应用双口存储器时,可同时对存储器进行读写,不会出现读写冲突的问题。应用单口存储器时,若对存储器同时进行读写操作,就会产生冲突。
目前现有的解决冲突的方法是让读写操作在时间上间隔开,或者是通过延时器件让写时钟的上升比读时钟晚一些时间,来保证了数据从存储器读出后再写入新的数据。但是上述解决存储器读写冲突的方法还有待进一步提高。
发明内容
鉴于上述的分析,本发明旨在提供一种解决存储器读写冲突的方法及装置,更好的解决存储器读写冲突的问题。
本发明的目的主要是通过以下技术方案实现的:
一种解决存储器读写冲突的方法,该方法包括:
当检测到读写操作冲突的同时,优先处理冲突的写操作,处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭,冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
优选地,当发生读写操作冲突时,在所述处理器时钟关闭前,如果所述处理器已经向存储器发送了其他读写操作,将所述处理器发送的其他读写操作暂存在寄存器中,当冲突的读写操作处理完后,打开所述处理器时钟,先处理所述寄存器中的读写操作,再继续处理所述处理器发出的读写操作。
优选地,当发生读写操作冲突时,在所述处理器时钟关闭前,如果所述处理器已经向存储器发送了其他读写操作,处理冲突的读写操作的步骤具体包括:
当检测到读写操作冲突的同时,优先处理冲突的写操作,接着处理冲突的读操作,同时把处理器后续发送的读写操作暂存在寄存器中,并关闭所述处理器时钟。
本发明还提供了一种解决存储器读写冲突的装置,该装置包括:
冲突检测模块,用于检测存储器的读写操作冲突,当检测到读写操作冲突时,触发冲突处理模块;
所述冲突处理模块,用于优选处理冲突的写操作,处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭,冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
优选地,还包括寄存器模块;
所述寄存器模块用于,当发生读写操作冲突时,在所述处理器时钟关闭前,所述处理器已经向存储器发送了其他读写操作,暂存所述处理器发送的其他读写操作;
所述冲突处理模块还用于,当冲突的读写操作处理完后,打开处理器时钟,先处理所述寄存器中的读写操作,再继续处理所述处理器发出的读写操作。
优选地,所述冲突处理模块具体用于,当检测到读写操作冲突的同时,优先处理冲突的写操作,,接着处理冲突的读操作,处理冲突的读操作的同时将后续发送的其它读写操作暂存在寄存器中,并关闭所述处理器时钟,将冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
本发明有益效果如下:
本发明实施例提供的一种解决存储器读写冲突的方法及装置,当检测到读写操作冲突时,将处理器的时钟暂停一下,在暂停的过程中处理冲突的读写操作,处理完后再将处理器的时钟打开,继续处理所述处理器发出的读写操作。通过该方法有效解决了存储器的读写冲突,而且该方法只是在处理时间上增加一个时钟周期,,使用很少的硬件资源就可以完成冲突的处理,且不需要通过软件的方式让读写操作在时序上隔开,实现起来比较方便。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本发明实施例1的解决存储器读写冲突的方法的流程图;
图2为本发明实施例2的解决存储器读写冲突的方法的流程图;
图3为本发明实施例3的解决存储器读写冲突的装置示意图;
图4为本发明实施例4的解决存储器读写冲突的装置示意图;
图5为本发明实施例5的是处理器同时产生了读写操作的电路信号示意图;
图6为本发明实施例5的冲突解决装置检测到冲突的电路信号示意图;
图7为本发明实施例5的冲突解决装置进行阻塞状态的电路信号示意图;
图8为本发明实施例5的冲突解决装置重新恢复到正常状态的电路信号示意图;
图9为本发明实施例5的第二次的读操作被更新的电路信号示意图;
图10为本发明实施例5的第三次的写操作被发射的电路信号示意图;
图11为本发明实施例5的第三次的读操作被发射的电路信号示意图;
图12为本发明实施例5的第三次读操作在存储器的电路信号示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
实施例1
本发明实施例提供了一种解决存储器读写冲突的方法,参见图1,该方法包括:
S101、当检测到读写操作冲突时,优先处理冲突的写操作;
其中,本发明实施例中写操作的优先级高于读操作的优先级。
S102、处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭;
S103、冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
本发明实施例提供的一种解决存储器读写冲突的方法,当检测到读写操作冲突时,将处理器的时钟暂停一下,在暂停的过程中处理冲突的读写操作,处理完后再将处理器的时钟打开,继续处理所述处理器发出的读写操作。通过该方法有效解决了存储器的读写冲突,而且该方法只是增加一个时钟周期,实现的硬件代价小,且不需要通过软件的方式规避读写冲突,实现起来比较方便。
实施例2
本发明实施例提供了一种解决存储器读写冲突的方法,参见图2,该方法包括:
S201、当检测到读写操作冲突的同时,优先处理冲突的写操作;
其中,本发明实施例中写操作的优先级高于读操作的优先级。当然本领域技术人员也可以根据实际需要设定读的优先级高于写的优先级。
S202、处理完冲突的写操作之后,再处理冲突的读操作,在处理读操作的同时把后续发送的其它读写操作暂存在寄存器中,并将处理器的时钟关闭;
本发明实施例通过设置一个寄存器,当检测到读写操作冲突时,将处理器关闭时钟前发送来的读写操作暂存在寄存器中,当解决完读写操作冲突时,寄存器内的读写操作可以及时的发送到储存器,大大节约了总的处理时间。
S203、将冲突的读写操作处理完后,打开所述处理器的时钟,先处理所述寄存器中的读写操作,再继续处理所述处理器发出的读写操作。
本发明实施例提供的一种解决存储器读写冲突的方法,当检测到读写操作冲突时,将处理器的时钟暂停一下,在暂停的过程中处理冲突的读写操作,通过该方法有效解决了存储器的读写冲突,而且该方法只是增加一个时钟周期,不需要增加其它硬件和软件,实现起来比较方便。并且本发明实施例设置一个寄存器,当检测到读写操作冲突时,将处理器关闭时钟前发送来的读写操作暂存在寄存器中,当解决完读写操作冲突时,寄存器内的读写操作可以及时的发送到储存器,从而节约了总的处理时间。
实施例3
本发明实施例提供了一种解决存储器读写冲突的装置,参见图3,该装置包括:
冲突检测模块31,用于检测存储器的读写操作冲突,当检测到读写操作冲突时,触发冲突处理模块32;
所述冲突处理模块32,用于优选处理冲突的写操作,处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭,冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
其中,本发明实施例中写操作的优先级高于读操作的优先级。当然本领域技术人员也可以根据实际需要设定读的优先级高于写的优先级。
实施例4
本发明实施例提供了一种解决存储器读写冲突的装置,参见图4,该装置包括:
冲突检测模块41,用于检测存储器的读写操作冲突,当检测到读写操作冲突时,触发冲突处理模块;
冲突处理模块42,用于当检测到读写操作冲突的同时,优先处理冲突的写操作,然后处理冲突的读操作,处理冲突的读操作的同时将后续发送的其他读写操作暂存在寄存器中,并关闭所述处理器时钟,将冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
其中,本发明实施例中写操作的优先级高于读操作的优先级。当然本领域技术人员也可以根据实际需要设定读的优先级高于写的优先级。
寄存器模块43,用于当发生读写操作冲突时,在所述处理器时钟关闭前,所述处理器已经向存储器发送了其他读写操作,暂存所述处理器发送的其他读写操作。
实施例5
本发明实施例提供了一种解决存储器读写冲突的方法及装置,冲突解决装置的电路图如图5-12所示,该冲突解决装置包括依次连接的寄存器和选择器,具体电路连接详见冲突解决装置示意图。
本发明实施例以三个连续读写操作并行发射为例,详述解决存储器读写冲突的方法,其他发射情况,解决存储器读写冲突的方法与此类似:
在第一个时钟周期,读写操作同时被处理器发射,具体如图5所示。
第二个时钟周期,第一次的读(load)写(store)操作同时被更新至冲突解决装置的发射端口,此时冲突解决装置判断出现了冲突,根据预设的优先级写的优先级高,写先发送至存储器(memory)。同时冲突(conflict)信号有效,则下一周期装置将进入阻塞状态。处理器产生第二次读写操作请求更新至st_en和ld_en端,具体如图6所示。
第三个时钟周期,第一次的读操作发送到存储器,同时装置进入阻塞状态,处理器第二次发送的读写操作被暂存到st_enb和ld_enb,第三次发送的写和读请求更新至st_en和ld_en端,此时装置没有检测到冲突,下一时钟周期装置将进入正常状态,第一次冲突将使fclk_en无效,下一个周期处理器的时钟将关闭,具体如图7所示。
第四个时钟周期,装置处于正常状态,第二次的写和读操作将会从st_enb和ld_enb更新至装置的发射端口,同时由于写的优先级要高,写操作发送至存储器.此时冲突产生,装置在下一周期将会进入阻塞状态,第一次读操作数据将会从存储器读出,本周期处理器的时钟将会关闭,第三次发射的写和读操作仍然会保留在处理器的发射端口,具体如图8所示。
第五个时钟周期,装置处于阻塞状态,本周期第二次的读操作被发送至存储器,同时conflict无效,下一周期进入正常状态,处理器第三次发射的读,写操作被暂存于st_enb和ld_enb,由于上周检测到第二次的冲突,fclk_en无效,处理器三次写和读并行发射均已经完毕,处理器发射端口st_en和ld_en将置为无效,具体如图9所示。
第六个时钟周期,装置处于正常状态,第三次的读写操作将会从st_enb和ld_enb更新至装置的发射端口,同时写操作将会发送至存储器,第二次的读操作,数据将会从存储器读出,Conflict信号有效,下周期将会进入阻塞状态,本周期处理器的时钟关闭,具体如图10所示。
第七个时钟周期,装置处于阻塞状态,第三次发射的读操作将会发送至存储器,Conflict信号无效,下周将进入正常状态,由于上周检测到第三次冲突,fclk_en将无效,下一个周期,处理器时钟将关闭,具体如图11所示。
第八个时钟周期,装置处理正常状态,处理器时钟关闭,最后一次的读操作,数据从存储器读出,具体如图12所示。
从处理器的角度来看,本发明实施例中的处理器只是连续发射了三次并行的读写操作,没有多余的时间开销,从整个过程来看,相比于处理器的运行,整个处理过程只增加了3个时钟周期,时间上的增加并不大,有效解决了单口存储器的存储冲突的问题,且该冲突解决装置的结构简单,使用方便。
综上所述,本发明实施例提供了一种解决存储器读写冲突的方法,当检测到读写操作冲突时,将处理器的时钟暂停一下,在暂停的过程中处理冲突的读写操作,处理完后再将处理器的时钟打开,继续处理所述处理器发出的读写操作。通过该方法有效解决了存储器的读写冲突,而且该方法只是增加一个时钟周期,不需要增加其它硬件和软件,实现起来比较方便。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种解决存储器读写冲突的方法,其特征在于,包括:
当检测到读写操作冲突时,优先处理冲突的写操作,处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭,冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
2.根据权利要求1所述的方法,其特征在于,当发生读写操作冲突时,在所述处理器时钟关闭前,如果所述处理器已经向存储器发送了其他读写操作,将所述处理器发送的其他读写操作暂存在寄存器中,当冲突的读写操作处理完后,打开所述处理器时钟,先处理所述寄存器中的读写操作,再继续处理所述处理器发出的读写操作。
3.根据权利要求2所述的方法,其特征在于,当发生读写操作冲突时,在所述处理器时钟关闭前,如果所述处理器已经向存储器发送了其他读写操作,处理冲突的读写操作的步骤具体包括:
当检测到读写操作冲突时,优先处理冲突的写操作,然后处理冲突的读操作,在处理读操作的同时把后续发送的其它读写操作暂存在寄存器中,并关闭所述处理器时钟。
4.一种解决存储器读写冲突的装置,其特征在于,包括:
冲突检测模块,用于检测存储器的读写操作冲突,当检测到读写操作冲突时,触发冲突处理模块;
所述冲突处理模块,用于优选处理冲突的写操作,处理完冲突的写操作后再处理冲突的读操作,处理冲突的读操作的同时,将处理器的时钟关闭,冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
5.根据权利要求4所述的装置,其特征在于,还包括寄存器模块;
所述寄存器模块用于,当发生读写操作冲突时,在所述处理器时钟关闭前,所述处理器已经向存储器发送了其他读写操作,暂存所述处理器发送的其他读写操作;
所述冲突处理模块还用于,当冲突的读写操作处理完后,打开处理器时钟,先处理所述寄存器中的读写操作,再继续处理所述处理器发出的读写操作。
6.根据权利要求5所述的装置,其特征在于,
所述冲突处理模块具体用于,优先处理冲突的写操作,然后处理冲突的读操作,处理冲突的读操作的同时将后续发送的其它读写操作暂存在寄存器中,并关闭所述处理器时钟,将冲突的读写操作处理完后,打开所述处理器的时钟,继续处理所述处理器发出的读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210411865.8A CN103777894A (zh) | 2012-10-25 | 2012-10-25 | 解决存储器读写冲突的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210411865.8A CN103777894A (zh) | 2012-10-25 | 2012-10-25 | 解决存储器读写冲突的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103777894A true CN103777894A (zh) | 2014-05-07 |
Family
ID=50570193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210411865.8A Pending CN103777894A (zh) | 2012-10-25 | 2012-10-25 | 解决存储器读写冲突的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103777894A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326145A (zh) * | 2015-06-26 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种存储器的控制方法和装置 |
CN107480081A (zh) * | 2016-06-07 | 2017-12-15 | 旺宏电子股份有限公司 | 具有可中断指令序列的存储器及其操作方法 |
CN110196687A (zh) * | 2019-05-20 | 2019-09-03 | 杭州宏杉科技股份有限公司 | 数据读写方法、装置、电子设备 |
CN111340460A (zh) * | 2020-03-25 | 2020-06-26 | 江苏安泰信息科技发展有限公司 | 安全和职业健康技术服务机构的管理系统和运行方法 |
WO2024017337A1 (zh) * | 2022-07-22 | 2024-01-25 | 芯海科技(深圳)股份有限公司 | 一种fifo存储控制电路、方法、芯片及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517657A (en) * | 1994-03-30 | 1996-05-14 | Intel Corporation | Segment register file read and write pipeline |
TW200514080A (en) * | 2003-08-22 | 2005-04-16 | Nec Electronics Corp | Semiconductor memory device |
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN102024492A (zh) * | 2009-09-23 | 2011-04-20 | 北京芯技佳易微电子科技有限公司 | 伪静态存储器及其写操作与刷新操作的控制方法 |
CN102571314A (zh) * | 2012-02-02 | 2012-07-11 | 矽恩微电子(厦门)有限公司 | 一种spram全双工通信控制电路 |
-
2012
- 2012-10-25 CN CN201210411865.8A patent/CN103777894A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517657A (en) * | 1994-03-30 | 1996-05-14 | Intel Corporation | Segment register file read and write pipeline |
TW200514080A (en) * | 2003-08-22 | 2005-04-16 | Nec Electronics Corp | Semiconductor memory device |
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN102024492A (zh) * | 2009-09-23 | 2011-04-20 | 北京芯技佳易微电子科技有限公司 | 伪静态存储器及其写操作与刷新操作的控制方法 |
CN102571314A (zh) * | 2012-02-02 | 2012-07-11 | 矽恩微电子(厦门)有限公司 | 一种spram全双工通信控制电路 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326145A (zh) * | 2015-06-26 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种存储器的控制方法和装置 |
CN107480081A (zh) * | 2016-06-07 | 2017-12-15 | 旺宏电子股份有限公司 | 具有可中断指令序列的存储器及其操作方法 |
CN107480081B (zh) * | 2016-06-07 | 2020-05-12 | 旺宏电子股份有限公司 | 具有可中断指令序列的存储器及其操作方法 |
CN110196687A (zh) * | 2019-05-20 | 2019-09-03 | 杭州宏杉科技股份有限公司 | 数据读写方法、装置、电子设备 |
CN111340460A (zh) * | 2020-03-25 | 2020-06-26 | 江苏安泰信息科技发展有限公司 | 安全和职业健康技术服务机构的管理系统和运行方法 |
WO2024017337A1 (zh) * | 2022-07-22 | 2024-01-25 | 芯海科技(深圳)股份有限公司 | 一种fifo存储控制电路、方法、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103777894A (zh) | 解决存储器读写冲突的方法及装置 | |
CN101324869B (zh) | 一种基于axi总线的多路复用器 | |
CN106371807B (zh) | 一种扩展处理器指令集的方法及装置 | |
JP5431003B2 (ja) | リコンフィギュラブル回路及びリコンフィギュラブル回路システム | |
US8880745B2 (en) | Efficient scheduling of transactions from multiple masters | |
CN105988970B (zh) | 共享存储数据的处理器和芯片 | |
CN103077147B (zh) | 一种基于链表的全功能1553b总线ip核 | |
CN102662634A (zh) | 非阻塞发射和执行的存储器访问执行装置 | |
US20170046102A1 (en) | Flexible interface for nand flash memory | |
CN101989193A (zh) | 微控制器及其指令执行方法 | |
CN102636987B (zh) | 双重化控制装置 | |
KR20180019603A (ko) | 구성 가능한 메일 박스 데이터 버퍼 장치 | |
US20160124878A1 (en) | Data transfer | |
CN104239232A (zh) | 一种基于fpga内dpram的乒乓缓存操作结构 | |
US8886844B2 (en) | Efficient scheduling of read and write transactions in dynamic memory controllers | |
CN102388359B (zh) | 信号保序方法和装置 | |
CN104268274A (zh) | 一种记录数据库日志的方法、装置及系统 | |
CN102646071A (zh) | 单周期执行高速缓存写命中操作的装置及方法 | |
CN102799419A (zh) | 寄存器写冲突检测方法及装置、以及处理器 | |
CN102708079A (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
CN105320637A (zh) | Flash数据读取电路 | |
CN102646073B (zh) | 数据处理方法及装置 | |
CN103593148A (zh) | 一种cdf侧离线话单数据快速存取的方法及装置 | |
CN104468039A (zh) | 一种基于fpga的帧解析方法及装置 | |
CN109271333A (zh) | 一种sram控制方法及控制器、控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140507 |
|
RJ01 | Rejection of invention patent application after publication |