一种基于同步访问模式的多端口存储器的制作方法

文档序号:6573459阅读:258来源:国知局
专利名称:一种基于同步访问模式的多端口存储器的制作方法
技术领域
本发明涉及集成电路设计领域,具体的说提出了一种基于同步访问模式的多端口存储器。
背景技术
在测控、仪器仪表、语音信号处理和图像通信领域中往往需要多处理器分工完成数字信号处理(DSP)算法和与外部系统的通信、控制、数据采集和人机接口功能。从存储管理的角度来看,这类多处理器系统可以分为共享存储多处理器系统和消息传递多处理器系统。在消息传递多处理器系统中,每个处理器都有一个它自己才能访问的局部存储器,处理器之间的通讯必须通过显示的消息传递来进行。在共享存储多处理机系统中,所有的处理器共享主存储器,每个处理器都把数据存入主存储器,或者从主存储器里取出数据,处理机之间的通讯可以通过访问共享存储器来实现。一般来说,涉及到大量的数据交互的多处理器系统都考虑采用共享存储方式。多端口存储器通过内置硬件控制逻辑实现并行访问,常被用做多处理器系统的共享存储器。
多个端口同时访问同一存储单元存在冲突现象,称之为存储单元冲突。在一般的多处理器系统中,各个处理器工作在不同的频率,对多端口存储器进行异步访问,因此市场上的多端口存储器都是基于异步访问模式。在异步访问模式下,各个端口的读写访问请求存在一定的先后顺序,异步多端口存储器的设计普遍采用Busy逻辑控制,严格的根据访问的先后顺序来处理存储单元冲突如果连续的访问请求存在存储单元冲突,执行排在最前面的访问,放弃后面的访问请求并且给出Busy信号。Busy逻辑控制的优点是简单,缺点在于不够灵活,发生存储单元冲突后缺乏有效的处理手段。
在某些特殊的多处理系统中,各个处理器在相同的频率上工作,例如,片上多内核芯片的各个内核,它们对共享存储器的访问是同步的;其次处理器通过不同的端口访问共享存储器应该存在不同的权限,例如处理器A正在执行关键任务,它对存储器的访问不能因为和其它端口发生存储单元冲突而被打断。基于此,本文提出一种基于同步访问模式的多端口存储器。

发明内容
本发明的目的是提供一种基于同步访问模式的多端口存储器。各端口有独立的地址总线,数据总线和地址译码单元,在同一时钟的驱动下,并发的访问共享存储模块。通过硬件端口优先级和硬件读写优先设置来处理存储单元冲突。
所述的同一时钟指整个多处理器系统共用同一时钟(或者同一时钟同步),处理器在该时钟的驱动下同步的访问多端口存储器。
所述的存储单元冲突包括两类多个端口同时对同一地址单元执行写操作称为写写冲突;一个端口执行写操作,一个或者多个端口对同一地址单元执行读操作称为读写冲突。多个端口同时对同一地址单元执行读操作不存在冲突。
所述的硬件端口优先级指每个端口都具有优先级,用户可以使用静态的优先级设置,也可以在访问存储器的过程中动态修改。端口之间出现写写冲突时,优先级最高的端口获得写操作权利;其它与之冲突的端口放弃写操作并且给出写失败信号。
所述的硬件读写优先设置指端口之间出现读写冲突时,仲裁先读后写或者先写后读的依据。先读后写指先将要读出的数据锁存到输入输出模块中的锁存器中,然后在执行写操作的同时将锁存器中的数据输出到外部数据总线上;先写后读指将需要写入的数据通过输入输出模块中的读写数据总线直接锁存输出到外部数据总线上。
本发明的使用方式为共享存储器方式,利用硬件端口优先级可以实现灵活的存储管理策略。如前面提到的,某个时段某处理器执行关键任务,该处理器访问的端口在该时段具有最高的硬件端口优先级,保证该处理器对存储器的访问不被打断。
如上所述,采用本发明的效果如下本发明支持多个处理器独立并发的访问存储器,拥有高速的数据传输速率。
本发明提供硬件端口优先级处理写写冲突;提供硬件读写优先设置处理读写冲突。对于可能存在的存储单元冲突,用户可以事先给处理策略,相对于Busy逻辑控制具有一定的灵活性。


图1-以四端口为例的顶层逻辑结构。
图2-Memory array模块中的存储单元逻辑设计。
图3-I/O模块逻辑设计。
图4-flow-through模式下读操作时序。
图5-pipe-line模式下读操作时序。
图6-OE模式下,读操作切换到写操作时序。
图7-非OE模式下,读操作切换到写操作时序。
图8-读写冲突时序。
具体实施例方式
下面结合附图和具体实施方式
以四端口为例对本发明作进一步详细描述。
多端口存储器逻辑上分为4个模块Memory share模块,Addressdecode模块,I/O模块,Arbitration logic模块,如图1。4个模块之间的关系是Memory share模块提供共享存储单元阵列,Address decode模块完成地址译码,I/O模块用于控制双向数据总线数据的输入输出,Arbitration logic根据用户设定的端口优先级和读写优先级来处理存储单元冲突。
本发明中的Arbitration logic模块负责存储单元冲突检测和处理。对于写写冲突,比较发生冲突的端口之间的端口优先级,优先级高的端口获得写操作的权利,放弃写操作的端口给出操作失败信号。对于读写冲突,判断此时的读写优先级,如果写优先,在执行写操作的同时直接将要写入的数据输出到执行读操作的端口;如果读优先,先锁存要读取的数据,然后在执行写操作的同时将锁存器的数据输出到执行读操作的端口。
本发明中的Memory share模块具有多条独立的内部双向数据总线,每个存储单元都连接到多条内部双向数据总线,底层物理上提供了多端口并发访问的支持。如图2,每个存储单元包括一组用于存储数据的位寄存器,两组用于控制位寄存器和内部数据总线之间数据交互的三态门,两组产生控制三态门信号的或门,一组产生写有效信号的与门。地址选择信号(AS)包括CAS和RAS,分别为列选择信号和行选择信号。r/w为仲裁模块产生的读写信号,需要注意的是,图1和图2中的r/w读写不相同。写写冲突时必然有端口需要放弃写操作,为了不引入额外信号来表示读操作和写操作以外的空操作,仲裁模块将放弃的写操作改为对同一地址的读操作,称之为假读。引入假读将写写冲突转变成读写冲突,而读写冲突并不会影响存储单元中数据的完整性。
本发明中的I/O模块负责控制双向数据总线的输入输出,提供灵活的输出模式,如图3。每个端口都有两个寄存器分别用于锁存写入数据和锁存输出数据。执行写操作时,右边的三态门开启,左边的三态门关闭,外部总线上的数据流入内部数据总线;执行读操作时右边的三态门关闭,左边的三态门开,读出的数据流向外部数据总线。需要写入的数据都会被锁存,而读出的数据会在F/P_en信号的控制下,要么锁存输出要么绕过寄存器直接输出到外部数据总线上。当发生读写冲突且读优先时,需要写入的数据并没有直接写入目标存储单元而是先被锁存在I/O输入输出模块的寄存器中,在下一个时钟上升沿写入,读操作不会受到写操作的影响。控制数据输出到外部数据总线的三态门由out_en信号驱动,该信号可能是图1中的oe信号或者r/w信号。
硬件上提供端口之间交换数据的读写数据总线(RWB)用于解决读写冲突且写优先的情况。图3中RWB由r_en和w_en控制,这两个信号由仲裁模块产生,低电平有效。当发生读写冲突且写优先时,获得写操作权利的端口将置r_en为低电平,其它端口的r_en保持高电平,写入的数据出现在RWB上;发生读写冲突且执行读操作的端口将置w_en为低电平,使得RWB上的数据能够流向外部数据总线,直接把要写入的数据输出到执行读操作的端口。信号cell_read_en也通过仲裁模块产生。cell_read_en和w_en不能同时为低电平,其含义是,输出到外部数据总线上的数据要么是来自于存储单元,要么来自于RWB。
读写优先通过管脚rw_priority_en设定。存储器各个端口具有静态优先级设置,按照port0->port1->port2顺序优先级依此递减。管脚set_en用于选择是否采用静态优先级设置。set_en为低电平表示最高优先级的端口的id号通过管脚id_0,id_1给出。
OE管脚控制OE模式的设置。某些处理器,比如intel8051系列,分别输出rd(读信号)和wd(写信号)。在这种情况下,处理器的rd信号连接存储器的oe信号,处理器的wd信号连接存储器的r/w信号,rd信号控制读出的数据输出到外部总线,我们称这种模式为OE模式。某些处理器只输出r/w信号,高电平和低电平分别表示读操作和写操作,在这种情况下处理器的r/w信号连接存储器的r/w信号,同步后的r/w信号控制读出的数据输出到外部总线,我们称这种模式为非OE模式。
读出的数据直接输出到外部数据总线上输出为flow-through模式,读出的数据在下个周期的上升沿锁存输出到外部数据总线为pipeline模式。F/P管脚用于设置flow-through模式和pipeline模式兼容不同的处理器。
写操作在第一个周期的上升沿锁存地址,写入数据和读写信号。在第二个周期的上升沿,把数据写入相应的存储单元。我们称之为缓写。
读操作在第一个周期的上升沿锁存地址和读写信号。如果工作在flow-through模式下,数据滞后第一个周期上升沿一段时间后出现在外部数据总线上,见图4;如果工作在pipeline模式下,第二个周期的上升沿锁存输出数据,见图5。
在OE模式下,读操作切换到写操作需要插入一个读无效周期,见图6;在非OE模式下,读操作切换到写操作需要插入一个读无效周期和一个写无效周期,见图7。
在第一个周期的上升沿检测到存在读写冲突,执行写操作的端口在第二个周期的上升沿将数据写入,与此同时在第二个周期的上升沿把要写入的数据锁存输出到执行读操作的端口,见图8。
存储器进行连续的数据读取或者连续的数据写入操作,平均一个周期完成一次访问操作;在读写操作频繁交替的情况下,OE模式平均1.5个周期完成一次访问操作;非OE模式平均2个周期完成一次访问操作。
权利要求
1.一种基于同步访问模式的多端口存储器,其特征在于各端口有独立的地址总线,数据总线和地址译码单元,在同一时钟的驱动下,并发的访问共享存储模块;通过硬件端口优先级和硬件读写优先设置来处理存储单元冲突。
2.如权利要求1所述的一种基于同步访问模式的多端口存储器,其特征在于所述的同一时钟指整个多处理器系统共用同一时钟(或者同一时钟同步),处理器在该时钟的驱动下同步的访问多端口存储器。
3.如权利要求1所述的一种基于同步访问模式的多端口存储器,其特征在于所述的存储单元冲突包括两类多个端口同时对同一地址单元执行写操作称为写写冲突;一个端口执行写操作,一个或者多个端口对同一地址单元执行读操作称为读写冲突。
4.如权利要求1所述的一种基于同步访问模式的多端口存储器,其特征在于所述的硬件端口优先级指每个端口都具有优先级,用户可以使用静态的优先级设置,也可以在访问存储器的过程中动态修改。端口之间出现写写冲突时,优先级最高的端口获得写操作权利;其它与之冲突的端口放弃写操作并且给出写失败信号。
5.如权利要求1所述的一种基于同步访问模式的多端口存储器,其特征在于所述的硬件读写优先设置指端口之间出现读写冲突时,仲裁先读后写或者先写后读的依据;先读后写指先将要读出的数据锁存到输入输出模块中的锁存器中,然后在执行写操作的同时将锁存器中的数据输出到外部数据总线上;先写后读指将需要写入的数据通过输入输出模块中的读写数据总线直接锁存输出到外部数据总线上。
全文摘要
本发明涉及集成电路设计领域,具体地说提出了一种基于同步访问模式的多端口存储器。各端口有独立的地址总线,数据总线和地址译码单元,在同一时钟的驱动下,并发的访问共享存储模块;通过硬件端口优先级和硬件读写优先设置来处理存储单元冲突。
文档编号G06F15/167GK101030180SQ200710065210
公开日2007年9月5日 申请日期2007年4月6日 优先权日2007年4月6日
发明者石峰, 王佐, 薛立成 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1