CN101667448B - 存储器存取控制装置及其相关控制方法 - Google Patents

存储器存取控制装置及其相关控制方法 Download PDF

Info

Publication number
CN101667448B
CN101667448B CN200810213779XA CN200810213779A CN101667448B CN 101667448 B CN101667448 B CN 101667448B CN 200810213779X A CN200810213779X A CN 200810213779XA CN 200810213779 A CN200810213779 A CN 200810213779A CN 101667448 B CN101667448 B CN 101667448B
Authority
CN
China
Prior art keywords
access
storer
memory access
memory
signal
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.)
Expired - Fee Related
Application number
CN200810213779XA
Other languages
English (en)
Other versions
CN101667448A (zh
Inventor
林良达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ILITEK TECHNOLOGY Co Ltd
ILI Techonology Corp
Original Assignee
ILITEK TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ILITEK TECHNOLOGY Co Ltd filed Critical ILITEK TECHNOLOGY Co Ltd
Priority to CN200810213779XA priority Critical patent/CN101667448B/zh
Publication of CN101667448A publication Critical patent/CN101667448A/zh
Application granted granted Critical
Publication of CN101667448B publication Critical patent/CN101667448B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)

Abstract

存储器存取控制装置及其相关控制方法。本发明公开一种存储器存取控制装置,该存储器存取控制装置包含有多个存储器存取要求产生模块以及一仲裁器。当该多个存储器存取要求产生模块中的一存储器存取要求产生模块在一存储器正依据对应一第一存储器存取事件的一第一存储器存取要求而进行一第一数据存取操作中接收到一第二存储器存取事件时,在一延迟时间后输出对应该第二存储器存取事件的一第二存储器存取要求至该存储器。该仲裁器仲裁该多个存储器存取要求产生模块输出的存储器存取要求。

Description

存储器存取控制装置及其相关控制方法
技术领域
本发明涉及一种存储器存取控制装置及其相关控制方法,尤其涉及一种当一单端口存储器的一第一写入要求与一第一读取要求发生重迭时选择性地延迟一后续的第二写入要求发出的时间,以使该第二写入要求得以正常发出至该单端口存储器的存取仲裁装置及其相关控制方法。
背景技术
随着科技的演进和使用者对信息系统的功能需求激增,各种信息的读取、传输、存储、运用、与显示的速度及正确性都必须不断随之增进,而其中影响信息系统的效能最显著的即是系统内相关的存储器存取运作。
因此,如何控制存储器的存取效率,以使存储器的效能得以不断提升即为一个重要的课题。随着科技的进步以及对产品功能多样化的需求,系统的设计亦因而越来越繁复。当一存储器存取要求控制装置在同一时间点接收到不同种类的存取数据的要求指令(亦即写入以及读取数据的要求指令)时,存储器存取要求控制装置需适当地安排执行不同存取指令的顺序,确保每一不同的存储器写入/读取的存取指令皆得以顺利的进行,以避免存取指令被忽略/重复执行的情况发生。
已知存储器存取控制装置内包含有一存储器写入要求产生模块、一存储器读取要求产生模块、一对应于该存储器写入要求模块的脉冲宽度控制(pulse width control)模块、一对应于该存储器读取要求产生模块的脉冲宽度控制模块,以及一仲裁器(Arbitrator)。
当信息系统对一单端口(Single Port)存储器发出一存储器读取/写入指令(亦即一读取/写入事件)时,已知存储器存取控制装置内的该存储器读取/写入控制要求产生模块即根据所接收到的存取事件的种类来产生对应的存取要求。换句话说,信息系统对该单端口存储器发出一存取指令(亦即存取事件)Event_WR/Event_RD时,须通过已知存储器存取控制装置发出存储器写入/读取准许信号(Grant_WR/Grant_RD)来控制该单端口存储器的存取运作。
当信息系统发出存储器写入指令(事件)Event_WR给该单端口存储器装置时,该写入要求产生模块即依据存储器写入事件Event_WR产生一相对应的存储器写入要求Req_WR至该仲裁器,而此存储器写入要求对应至该存储器写入事件;同样地,当信息系统发出一存储器读取指令(事件)Event_RD给该单端口存储器时,该读取要求产生装置即产生对应该存储器读取事件Event_RD的一存储器读取要求Req_RD至该仲裁器。接着,仲裁器即根据由该存储器读取/写入要求产生模块所传送的存储器写入/读取要求(亦即Req_WR/Req_RD)来仲裁出该存储器读取指令的优先权(priority)以产生相对应的存储器存取准许信号(Grant Signal);例如GrantRD和GrantWR给该单端口存储器,使得信息系统能依据存储器写入/读取准取信号Grant_RD和Grant_WR来执行存储器读取或存储器写入。
该单端口存储器花费在执行存储器写入以及存储器读取指令上所需耗费的时间则分别由该存储器存取控制装置的该存储器写入/读取的脉冲宽度控制模块来控制,而存储器写入/读取的时间长短由写入/读取的脉冲宽度控制单元依据单端口存储器的硬件规格来加以适当决定。
请参阅图1,图1为已知存储器存取控制装置在执行数据存取时信号的时序图。请注意到,在已知存储器存取控制装置中,每一个存储器存取事件(Event_WR以及Event_RD)与相对应的每一个存储器存取事件(Event_WR/Event_RD)的存取要求(Req_WR/Req_RD)彼此同步。
也就是说,在同一个时间轴上若有一个写入事件产生,此时必有一个写入要求同时产生。图1所示的时序图显示一个同时读写的例子。如图1所示,当一存储器读取要求Req_RD为高逻辑电平“1”时,由于该单端口存储器并没有其他存取运作与其冲突,该仲裁器便控制一存储器读取准许信号Grant_RD,使其成为高逻辑电平“1”(也就是说,当存储器读取准许信号Grant_RD在高逻辑电平“1”的期间,表示该单端口存储器正在进行读取动作),但是当存储器写入要求REQ_WR由低逻辑电平“0”变为高逻辑电平“1”时,因为单端口存储器在同一时间内只能允许存储器读取或写入动作中的其中一种,所以该仲裁器必须等到存储器读取准许信号Grant_RD转变成低逻辑电平“0”之后(表示单端口存储器已经执行完前述的读取运作),才会将该存储器写入准取信号Grant_WR由低逻辑电平“0”拉成高逻辑电平“1”,也就是让该单端口存储器可执行存储器写入运作。
于是,在对应该写入存储器存取控制单元的脉冲宽度控制单元结束存储器写入的准许动作之前(亦即,在存储器写入准许信号Grant_WR由高逻辑电平“1”拉到低逻辑电平“0”之前),后续的存储器写入要求Req_WR将无法发出。
因此,在已知存储器存取控制装置中,存储器最快写入周期P_WR被限制为一个读取准许信号Grant_RD保持于高逻辑电平“1”的时间长度T_RD,再加上一个写入准取信号Grant_WR保持于高逻辑电平“1”的时间长度T_WR。如果用一数学式表示之,即:P_WR>=T_WR+T_RD。
很明显地,存储器最快写入周期P_WR影响整体存储器的数据写入效能。因此如何有效地缩短存储器最快写入周期P_WR便成为提高存储器写入速度的一个重要课题。
发明内容
因此本发明的目的之一是提供了一种存储器存取控制装置,其通过每一次收到一存储器写入/事件时,皆先参考一存储器写入准许信号的状态,直至确认存储器写入准许信号重置为一预定逻辑电平(例如低逻辑电平“0”)时,才产生与该写入事件相对应之一写入要求。如此一来,便可以减少单端口存储器于写入时所耗费的时间,并因此提升该单端口存储器的存取效能。
依据本发明的实施例,其公开一种存储器存取控制装置。该存储器存取控制装置包含有:一第一存储器存取要求产生模块、一第二存储器存取要求产生模块以及一仲裁器。该第一存储器存取要求产生模块用来在一存储器正依据对应一第一存储器存取事件的一第一存储器存取要求而进行一第一数据存取操作中接收到一第二存储器存取事件时,在为完成第一数据存取操作而延迟时间之后输出对应该第二存储器存取事件的一第二存储器存取要求至该存储器以进行一第二数据存取操作。该第二存储器存取要求产生模块用来依据一第三存储器存取事件产生一第三存储器存取要求至该存储器以进行一第三数据存取操作,其中该第一及第二数据存取操作为存储器读取与存储器写入中的一个,以及该第三数据存取操作为存储器读取与存储器写入中的另一个。该仲裁器耦接至该第一、第二存储器存取要求产生模块与该存储器,用来仲裁该第一、第二存储器存取要求产生模块所输出的存储器存取要求以依序产生相对应存储器存取准许信号至该存储器,
其中,该第一存储器存取要求产生模块包含有:
一第一脉冲宽度控制单元,耦接至该延迟控制模块的该多个延迟级与该仲裁器,用来在该仲裁器允许该第一存储器存取要求来存取该存储器的一第一存取运作时间之后产生该重置信号,
一延迟控制模块,包含有串接的多个延迟级,其中每一延迟级包含有:
一延迟单元,用来以一相对应延迟量来延迟所接收的该第二存储器存取事件并将延迟后的该第二存储器存取事件传递至下一延迟级;以及
一存储器存取要求控制单元,用来依据一重置信号选择性地清除该第一存储器存取要求,以及依据该延迟单元所接收的该第二存储器存取事件的触发来选择性地控制该延迟控制模块维持该第一存储器存取要求或输出该第二存储器存取要求,其中当该第一存储器存取要求所对应的一第一存储器存取准许要求在该第二存储器存取事件触发该存储器存取要求控制单元时已清除,则该存储器存取要求控制单元控制该延迟控制模块输出该第二存储器存取要求,以及当该第一存储器存取要求所对应的该第一存储器存取准许要求在该第二存储器存取事件触发该存储器存取要求控制单元时尚未清除,则该存储器存取要求控制单元控制该延迟控制模块维持该第一存储器存取要求;以及
该第一存储器存取要求产生模块还包含有:
一第一脉冲宽度控制单元,耦接至该延迟控制模块的该多个延迟级与该仲裁器,用来在该仲裁器允许该第一存储器存取要求来存取该存储器的一第一存取运作时间之后产生该重置信号,
其中该第二存储器存取要求产生模块包含有:
一控制模块,用来于接收到该第三存储器存取事件时产生该第三存储器存取要求;以及
一第二脉冲宽度控制单元,耦接至该控制模块与该仲裁器,用来根据该仲裁器所产生的对应该第三存储器存取要求的一第三存储器存取准许信号产生另一重置信号至该控制模块来清除该第三存储器存取要求,其中该第一、第二存储器存取事件的时间间隔与该多个延迟级的一延迟总量的总和大于该第一存取运作时间、一第二存取运作时间的总和。
依据本发明的实施例,每一存储器存取要求控制单元包含有:
一触发器,具有用来接收该重置信号的一重置端,用来接收该第二存储器存取事件的一时钟端,用来接收一存储器运作状态信号的一输入端,以及用来依据该时钟端的触发来输出该存储器运作状态信号的一输出端;
一多工器,具有一第一输入端、一第二输入端、一输出端与一控制端,该多工器的该第一输入端耦接至该触发器的该输出端,该多工器依据该控制端所接收的一存储器存取准许信号来选择性地将该第一输入端所接收的一第一输入信号或该第二输入端所接收的一第二输入信号输出至该多工器的该输出端以作为该存储器运作状态信号,该多工器的该输出端耦接于该触发器的该输入端;
一第一逻辑门,具有一第一输入端、一第二输入端与一输出端,该第一逻辑门的该第一输入端用来接收一存储器存取要求信号,该第一逻辑门的该第二输入端耦接于该触发器的该输出端,该第一逻辑门依据该存储器存取要求信号与该存储器运作状态信号进行一第一逻辑运算来产生下一延迟级的存储器存取要求控制单元的存储器存取要求信号;以及
一第二逻辑门,具有一第一输入端、一第二输入端与一输出端,该第二逻辑门的该第一输入端耦接于该多工器的该控制端并用来接收该存储器存取准许信号,该第二逻辑门的该第二输入端耦接于该触发器的该输出端,该第二逻辑门依据该存储器存取准许信号与该触发器所输出的该存储器运作状态信号进行一第二逻辑运算来产生下一延迟级的存储器存取要求控制单元的存储器存取准许信号。
依据本发明的实施例,该第二输入信号为一预设逻辑值。
依据本发明的实施例,该第一、第二逻辑门均为OR逻辑门。
依据本发明的实施例,该多个延迟级的一延迟总量小于该第一存取运作时间。
依据本发明的实施例,该第一、第二存储器存取事件的时间间隔大于该第一存取运作时间与一预设余裕时间的总和。
依据本发明的实施例,该存储器是一单端口存储器。
依据本发明的实施例,其另公开一种存储器存取控制方法。该方法包含有:在一存储器正依据对应一第一存储器存取事件的一第一存储器存取要求而进行一第一数据存取操作中接收到一第二存储器存取事件时,在为完成第一数据存取操作而延迟时间之后输出对应该第二存储器存取事件的一第二存储器存取要求至该存储器以进行一第二数据存取操作;依据一第三存储器存取事件产生一第三存储器存取要求至该存储器以进行一第三数据存取操作,其中该第一及第二数据存取操作为存储器读取与存储器写入中的一个,以及该第三数据存取操作为存储器读取与存储器写入中的另一个;以及仲裁对应存储器读取的一存储器存取要求与对应存储器写入的另一存储器存取要求以依序产生相对应的存取准许信号至该存储器。
附图说明
图1为已知存储器存取控制装置在执行数据存取时信号的时序图。
图2是本发明存储器存取控制装置的一实施例的功能方块图。
图3为图2所示的延迟控制模块的示意图。
图4为图3所示的延迟级的电路架构示意图。
图5为图2所示的存储器存取控制装置在执行数据存取运作控制时的第一操作实施例的时序图。
图6为图2所示的存储器存取控制装置在执行数据存取运作控制时的第二操作实施例的时序图。
【主要元件符号说明】
145  触发器
146  重置端
147  时钟端
148  输入端
149、158、168、178  输出端
155  多工器
156、166、176 第一输入端
157、167、177 第二输入端
159  控制端
165  第一逻辑门
175  第二逻辑门
200  存储器存取控制装置
201  单端口存储器
210  第一存储器存取要求产生模块
212  延迟控制模块
214  第一脉冲宽度控制单元
216_1~216_N  延迟级
218  存储器存取要求控制单元
219  延迟单元
220  第二存储器存取要求产生模块
222  控制模块
224  第二脉冲宽度控制单元
230  仲裁器
具体实施方式
在本专利说明书及后续的权利要求书当中使用了某些词汇来指称特定的元件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及后续的权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及权利要求书当中所提及的「包含」为一开放式的用语,故应解释成「包含但不限定于」。以外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,如果文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其他装置或连接手段间接地电气连接至该第二装置。
图2是本发明存储器存取控制装置200的一实施例的功能方块图。存储器存取控制装置200耦接至一单端口(single port)存储器201(例如随机存取存储器),存储器存取控制装置200用以接收存储器写入事件Event_WR以及存储器读取事件Event_RD,并根据所接收的存储器写入事件Event_WR以及存储器读取事件Event_RD分别发出相对应的存储器存取准许信号(亦即,存储器写入准许信号Grant_WR以及存储器读取准许信号Grant_RD)至单端口存储器201。
请注意到,对于本实施例中的存储器存取控制装置200而言,对应存储器存取事件的存储器存取要求,其两者之间不再限定于接收到存储器存取事件同步发出存储器存取要求,而是在单端口存储器201目前正在进行数据存取(例如数据写入)时接收到另一存储器存取事件(例如存储器写入事件)时,经由多个延迟级所提供的延迟效果以便在单端口存储器完成目前的存取操作之后,迅速地在后续的一适当时间点发出存储器存取请求,因而可缩短不必要的等待时间来大幅提升存储器存取效能,相关运作系详细说明如下。
存储器存取控制装置200包含有:第一存储器存取要求产生模块210、第二存储器存取要求产生模块220以及仲裁器230。第一存储器存取要求产生模块210以及第二存储器存取要求产生模块220分别对应到存储器读取或存储器写入的其中一种存储器存取处理。
而为了简单说明起见,在接下来的叙述中,第一存储器存取要求产生模块210为一存储器写入要求产生模块,而第二存储器存取要求产生模块220为一存储器读取要求产生模块。换句话说,在本实施例中的存储器存取控制装置200,第一存储器存取要求产生模块210用以接收一存储器写入事件Event_WR并选择性地延迟/立即产生相对应的存储器写入要求Req_WR至仲裁器230。相似地,第二存储器存取要求产生模块220(亦即存储器读取要求产生模块)用以接收存储器读取事件Event_RD,以产生相对应的存储器读取要求Req_RD给仲裁器230。
如图2所示,第一存储器存取要求产生模块210内包含有延迟控制模块212以及第一脉冲宽度控制单元214;而在第二存储器存取要求产生模块220中,则包含有一控制模块222以及一第二脉冲宽度控制单元224。延迟控制模块212耦接至仲裁器230以及第一脉冲宽度控制单元214,其根据所接收的存储器写入事件Event_WR(例如依据时间先后而包含有第一存储器存取事件Event_1与第二存储器存取事件Event_2)、存储器写入准许信号Grant_WR(例如依据时间先后而包含有第一存储器存取准许信号Grant_1与第二存储器存取准许信号Grant_2)以及存储器写入重置信号Reset_WR来动态输出存储器写入要求(例如依据时间先后而包含有Req_1以及Req_2)。
如图2所示,第一脉冲宽度控制单元214耦接至仲裁器230,并接收由仲裁器230所发出的存储器写入准许信号(例如Grant_1或Grant_2)来产生存储器写入重置信号Reset_WR至延迟控制模块212。
在本实施例中,第二存储器存取要求产生模块220的控制模块222可简单地使用一寄存器(register)来加以实施,例如触发器(flip-flop),因此,控制模块222耦接至第二脉冲宽度控制单元224,控制模块222具有一第一输入端用以接收一高电平逻辑值“1”作为输入信号、用以接收存储器读取事件Event_RD的一时钟端、用以接收存储器读取重置信号Reset_RD的一负沿触发(negative trigger)端以及一输出端。
控制模块222根据所接收的信号产生出存储器读取要求Req_RD至仲裁器230,而第二存储器存取要求产生模块220的第二脉冲宽度控制单元224则耦接至控制模块222以及仲裁器230,用以依据对应至单端口存储器201的硬件规格的存储器读取准许信号Grant_RD来产生相对应的存储器读取重置信号Reset_RD给第二存储器存取要求产生模块220的控制模块222。
仲裁器230根据第一存储器存取要求产生模块210产生的存储器写入要求(例如依据时间先后所产生的第一存储器存取要求Req_1与第二存储器存取要求Req_2),以及第二存储器存取要求产生模块220产生的存储器读取要求(例如图2所示的第三存储器读取要求Req_3)来依序产生相对应的第一、第二、第三存储器存取准许信号Grant_1、Grant_2、Grant_3给单端口存储器201,使其得以依据存储器存取信号来执行相关存储器存取运作。
然而请注意到,以随机存取存储器来实作单端口存储器201仅作为一实施例说明,并非用来作为本发明的限制条件,此外,上述的第一存储器存取要求产生模块210与第二存储器要求产生模块220所对应的存储器存取指令处理并非为本发明的限制条件,也就是说,随着设计需要以及相关的电路变化,第一存储器存取要求产生模块210可用以产生存储器读取要求Req_RD,而第二存储器存取要求产生模块220则可用以产生存储器写入要求Req_WR,此一设计变化亦属本发明的范围。再者,用个别的功能方块来表示这些元件只是为了说明之用,亦即图2所示的元件并不限定要分别设置于存储器存取控制装置200之中,也可能有符合本发明精神的其他硬件配置方式,而这些设计变化皆落于本发明的范围内。
请同时参照图2以及图3,图3所示为图2所示的延迟控制模块212的电路架构示意图。如图3所示,延迟控制模块212中具有多个串接的延迟级216_1~216_N,每一个延迟级216_1~216_N内包含有一存储器存取要求控制单元218以及一延迟单元219。倘若当单端口存储器201正在执行对应第一存储器写入事件Event_1的第一存储器写入操作中(也就是此时存储器写入准许信号Grant_WR处于高逻辑电平“1”),第一存储器存取要求产生模块210接收到一第二存储器写入事件Event_2时,延迟单元218将会把所接收的第二存储器存取事件往后延迟一延迟量Td(此延迟时间的大小可随着不同的设计需求而改变,一般而言为1~2ns左右),并将延迟后的第二存储器写入事件Event_2传递给下一个延迟级218。存储器存取要求控制单元218的运作方式将在下面进一步详细说明。
请同时参照图2至图4。图4为图3所示的单一延迟级的电路架构示意图。以多个延迟级中的第k个延迟级216_k为例,图4所示的选择信号SEL(k-1)即对应至一存储器写入准许信号Grant_WR,而时钟信号CK_DLY(k-1)则对应至一存储器写入事件Event_WR,此外,延迟级216_k所输出的选择信号SEL(k)与时钟信号CK_DLY(k)则作为下一延迟级所接收的选择信号与时钟信号。
对延迟级216_k而言,存储器存取要求控制单元218包含有一触发器(flip-flop)145、一多工器(multiplexer)155、一第一逻辑门165以及一第二逻辑门175。触发器145具有用来接收一存储器写入事件Event_WR(亦即CK_DLY(k-1))的触发的时钟端147、用来接收对应一存储器写入重置信号Reset_WR的触发的重置端146(亦即负沿触发端)、一输入端148,以及一输出端149。本实施例中,输入端148耦接至多工器155的一输出端158。触发器145依据存储器写入事件Event_WR以及存储器写入重置信号Reset的触发而将多工器155所输出的一存储器运作状态信号经由输出端149输出,举例来说,如果时钟信号CK_DLY(k-1)因为一存储器写入事件Event_WR输入至延迟控制模块212而由低逻辑电平“0”转变成高逻辑电平“1”时,则触发器145将被触发进而输出输入端148所接收的数值。
另一方面,当第一脉冲宽度控制单元214产生一存储器写入重置信号Reset_WR时,则触发器145会重置为低逻辑电平“0”。请注意到,在本实施例中,触发器145的输出端149耦接至多工器155的输入端156以及第一逻辑门165的第二输入端167以及第二逻辑门175的第二输入端177。
如图4所示,多工器155的第一输入端156接收由触发器145的输出端149所输出的存储器运作状态信号,而多工器155的一第二输入端157系固定接收一高逻辑电平“1”,且存储器写入准许信号Grant_WR用来设定多工器155的一控制端159所接收的选择信号SEL(k-1),亦即多工器155依据控制端159所接收的存储器写入准许信号Grant_WR所对应的逻辑值来决定输出端158的输出为何。
举例来说,如果存储器写入准许信号Grant_WR为高逻辑电平“1”时,多工器155将输出第一输入端156所接收的信号;反之,则输出第二输入端157所接收的高逻辑电平“1”。换句话说,多工器155根据存储器写入准许信号Grant_WR的状态而选择出的信号来做为输入至触发器145的存储器运作状态信号。
对于第一逻辑门165以及第二逻辑门175而言,在本实施例中,两逻辑门165、175均为一OR逻辑门。如图所示,第一逻辑门165的第一输入端166用以接收存储器写入要求信号Req(k-1),而第一逻辑门165的第二输入端167则接收由触发器145的输出端149所输出的存储器运作状态信号。最后,第一逻辑门165便根据第一输入端166以及第二输入端167所接收的信号,作一OR逻辑运算后于一输出端168将所运算结果输出,并作为串接的下一个延迟级中的存储器存取要求控制单元218的存储器写入要求信号Req(k)。
举例来说,延迟级216_1中第一逻辑门165的输出端168输出的信号即为下一延迟级216_2的存储器写入要求信号Req(1)。请注意,在本实施例中,对于第一个延迟级216_1而言,其所接收的存储器写入要求信号Req(0)系为一固定逻辑值“0”。第二逻辑门175的第一输入端176接收前一延迟级所传来的存储器写入准许信号Grant_WR及前面所有延迟级的触发器145输出端149所输出的存储器运作状态(亦即SEL(k-1)),第二逻辑门175的第二输入端177则接收由触发器145输出端149所输出的存储器运作状态信号,最后,第二逻辑门175对第一输入端176以及第二输入端177所接收信号作一OR逻辑运算并产生一输出信号(亦即SEL(k))。如图3所示,延迟级216_1中第二逻辑门175的输出端178输出的信号将作为下一延迟级216_2所接收的选择信号SEL(1)。
在这里请注意到,延迟单元219所延迟的延迟量Td用以决定两连续延迟级中触发器145被触发的间隔,而延迟量Td的大小可为1~2ns左右,且Td的时间长短可随设计需求而改变。请注意,如果延迟量Td过大,则会使得执行完一存储器写入要求的存储器写入操作到发出下一存储器写入要求之间的时间间隔过长,并因而影响到存储器写入效率。相反地,倘若延迟量Td的时间长度过小,则在存储器延迟模块212中便需要设置较多的延迟级。
请同时参阅图2至图5,图5为图2所示的存储器存取控制装置200在执行数据存取运作控制时的第一操作实施例的时序图。如图5所示,在时间T1时,存储器存取控制装置200接收到一存储器读取事件Event_RD,因此,控制模块222便将存储器读取要求Req_RD由低逻辑电平“0”拉至高逻辑电平“1”而输出至仲裁器230。因此,由在此时单端口存储器201并未有任何存取操作执行中,故仲裁器230便将存储器读取准许信号Grant_RD由低逻辑电平“0”拉至高逻辑电平“1”。
之后,在时间T2时,存储器存取控制装置200接收到一存储器写入事件Event_WR。因此,对于延迟控制模块212中第一个延迟级216_1而言,Req(0)=“0”,SEL(0)=“0”,以及CK_DLY(0)=“1”,因此,延迟级216_1中的多工器155会输出“1”,而触发器145会因为CK_DLY(0)的触发而输出“1”,所以,Req(k+1)会因为OR逻辑运算而成为“1”,因而造成最后一个延迟级216N会输出“1”。亦即存储器写入要求Req_WR于时间T2时会由低逻辑电平“0”转变成高逻辑电平“1”。同时,虽然仲裁器230收到存储器写入要求Req_WR,然而由在单端口存储器201目前正进行数据读取操作中,故仲裁器230并不会将存储器写入准许信号Grant_WR由低逻辑电平“0”拉高至高逻辑电平“1”。在时间T3时,因为单端口存储器201已依据其硬件规格而于所需时间内完成数据读取操作,因此仲裁器230便重置存储器读取准许信号Grant_RD并将存储器写入准许信号Grant_WR由低逻辑电平“0”拉高至高逻辑电平“1”。
在时间T4时,此时单端口存储器201仍进行数据写入中,然而,存储器存取控制装置200接收到另一存储器写入事件Event_WR,对于延迟控制模块212中第一个延迟级216_1而言,由于前一存储器写入事件Event_WR于时间T3才开始执行的相对应写入操作尚未完成,因此,还未接收到因为存储器写入准许信号Grant_WR重置所造成的存储器写入重置信号Reset_WR,故由于Req(0)=“0”,SEL(0)=“1”,CK_DLY(0)=“1”,以及触发器145的输出端149仍维持高逻辑电平“1”,因此,延迟级216_1中的多工器155会输出“1”,而触发器145会因为CK_DLY(0)的触发而输出“1”,所以,Req(k+1)会因为OR逻辑运算而仍然维持“1”,因而造成最后一个延迟级216N会输出“1”,亦即存储器写入要求Req_WR于时间T4时仍维持目前的高逻辑电平“1”(请注意,此一高逻辑电平“1”由于前一存储器写入事件Event_WR所造成,而非目前于时间T4所接收的存储器写入事件Event_WR所造成)。之后,在时间T4所接收的存储器写入事件Event_WR会经由每一延迟级来加以延迟,如图5所示的时钟信号CK_DLY(1)~CK_DLY(6),对于后续每一延迟级而言,在时间T5之前,其Req(k+1)均会因为OR逻辑运算而仍然维持“1”,故不会影响最后一个延迟级216_N所输出的Req(k+1)。
在时间T5时,因为单端口存储器201已依据其硬件规格而于所需时间内完成数据写入操作,因此仲裁器230便重置存储器写入准许信号Grant_WR,因此,第一脉冲宽度控制单元214便会依据存储器写入准许信号Grant_WR的重置而触发产生一存储器写入重置信号Reset_WR,此时,由于第一个延迟级216_1的Req(0)与SEL(0)均为“0”,且每一延迟级216_1~216_N中的触发器145均被重置,故每一延迟级216_1~216_N所输出的Req(k)与SEL(k)亦均为“0”。在时间T6时,第3个延迟级中的触发器145被时钟信号CK_DLY(3)所触发,因此依据上述说明可知存储器写入要求信号Req_WR会由重置后的低逻辑电平“0”再次拉至高逻辑电平“1”,因此,仲裁器230于收到存储器写入要求信号Req_WR的触发之后便将存储器写入准许信号Grant_WR由重置后的低逻辑电平“0”再次拉至高逻辑电平“1”,如图5所示。
本发明存储器存取控制装置200在设计上需符合几项限制前提。第一项前提为:所有延迟级216_1~216_N具有的延迟量Td构成的一总延迟量(也就是说,信号在经过延迟控制模块212中N个延迟级216_1~216_N中所构成的总延迟时间N*Td,请注意,本实施例中系各个延迟级系具有相同的延迟量Td,故总延迟量即等于N*Td,然而,本发明并未限定各个延迟级均需具有相同的延迟量),必须小在单端口存储器201执行一个存储器写入指令所需要花费的时间T_WR。如果以一数学式表示,即是:N*Td<T_WR。倘若违背此一要求,例如每个延迟级216中延迟单元的延迟量Td构成的总延迟时间N*Td比单端口存储器201执行一写入运算的时间还长,将会使得同样一个存储器写入指令对单端口存储器201发出两次存储器写入要求Req_WR。举例来说,假设使用者需要在单端口存储器201中写入一笔数据,当总延迟量N*Td过大时,将会使得单端口存储器201重复地写入该笔数据。
除了前述的设计条件之外,另一项设计条件为:存储器两次存储器写两事件之间的间隔P_WR与控制模块212中N个延迟级216_1~216_N中所构成的总延迟时间(例如N*Td)两者的总和必须要大在单端口存储器201执行一次存储器写入运作(例如,Grant_WR维持高逻辑电平的时间长度)与一次存储器读取运作(例如,Grant_RD维持高逻辑电平的时间长度)的总和。请参阅图6,图6为图2所示的存储器存取控制装置200在执行数据存取运作控制时的第二操作实施例的时序图。以一数学式表示,即是:P_WR+N*Td>T_WR+T_RD,其中T_WR为单端口存储器201执行一次存储器写入的时间,而T_RD则是单端口存储器201执行一次存储器读取的时间。在这样的操作条件之下,当一次存储器写入要求Req_WR与一次存储器读取要求Req_RD间发生冲突时,由于所采用的存储器装置为一单端口存储器的缘故,由于其无法同时执行读取与写入动作,因而造成其中一存取动作被延后。
举例来说,如图6所示,当一存储器读取事件Event_RD为高逻辑电平“1”时,存储器存取装置200接收到一存储器写入事件Event_WR,因此,存储器写入要求Req_WR必须等到存储器读取准许信号Grant_RD由高逻辑电平“1”重置为低逻辑电平“0”之后才容许让存储器写入事件Event_WR相对应的存储器写入要求Req_WR发出并传送至仲裁器230。如果当单端口存储器201正在执行与存储器写入要求Req_WR相对应的存储器写入运作时,存储器存取装置200在时间T1(如图6所示)又收到一个新的存储器写入事件Event_WR,如前所述,这一笔尚未处理的存储器写入事件会经由延迟控制模块212中多个延迟级216_1~216_N来逐一延迟以产生时钟信号Ck_DLY来在不同时间点触发各个延迟级。必须要有其中一个时钟信号在目前的存储器写入运作结束(亦即Grant_WR由高逻辑电平“H”重置成低逻辑电平“L”)后触发一个延迟级中的触发器145才能将存储器写入要求Req_WR由重置后的低逻辑电平再次拉至高逻辑电平;否则将造成这一个尚未被处理的存储器写入事件Event_WR永远无法产生相对应的存储器写入要求Req_WR而使得这个尚未被处理的存储器写入事件被忽略而无法执行。举例来说,假设当单端口存储器201正在执行写入一笔数据的指令时,系统又发出一笔新的写入指令,如果两笔写入指令的产生时序不符合以下的数学式:P_WR+N*Td>T_WR+T_RD,则此时系统所后续发出的写入指令在目前的数据写入运作完成后并不会执行,因此造成单端口存储器201于数据写入上的错误。
此外,除了前述的操作条件之外,在设计本发明存储器存取控制装置200时,尚有一设计条件需加以考量。此设计前提以数学式表示即为:P_WR>T_WR+T_margin。就实际意义来说,P_WR系代表系统所要求的存储器两次写入事件之间的间隔时间,而T_WR即为单端口存储器201依据其硬件规格而执行一次写入指令所需要花费的时间(亦即Grant_WR维持高逻辑电平“H”的时间长度)。在设计存储器存取控制装置时,在存储器本身所需花费的写入运作时间之外尚会保留一个预设的余欲时间T_margin,以确保单端口存储器201得以顺利运作。
上述是针对存储器周期性写入的频率高于存储器周期性读取的频率的例子来说明,亦即图2所示的延迟控制模块212应用于处理存储器写入事件Event_WR以产生存储器写入要求Req_WR,然而,本领域技术人员在阅读上述说明之后应可轻易地了解到相同的概念亦可应用于存储器周期性读取的频率高于存储器周期性写入的频率的架构中。例如经由上述实施例的简单变化,图2所示的延迟控制模块212可应用于处理存储器读取事件Event_RD以产生存储器读取要求Req_RD,而控制模块222则应用于处理存储器写入事件Event_WR以产生存储器写入要求Req_WR,此一设计变化亦属本发明的范围。
综上所述,本发明的存储器存取控制装置使单端口存储器执行存储器写入指令的周期时间缩短,而增进存储器存取运作的速率,更因此提升单端口存储器存取装置的效能。任何一个通过延迟存储器存取要求发出的时间使其与相对应的存储器存取事件于时序上不同步发生的控制装置皆属于本发明的范围。
以上所述仅为本发明的优选实施例,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (8)

1.一种存储器存取控制装置,包含有:
一第一存储器存取要求产生模块,用来在一存储器正依据对应一第一存储器存取事件的一第一存储器存取要求而进行一第一数据存取操作中接收到一第二存储器存取事件时,在为完成第一数据存取操作而延迟时间之后输出对应该第二存储器存取事件的一第二存储器存取要求至该存储器以进行一第二数据存取操作;
一第二存储器存取要求产生模块,用来依据一第三存储器存取事件产生一第三存储器存取要求至该存储器以进行一第三数据存取操作,其中该第一及第二数据存取操作为存储器读取与存储器写入中的一个,以及该第三数据存取操作为存储器读取与存储器写入中的另一个;以及
一仲裁器,耦接至该第一、第二存储器存取要求产生模块与该存储器,用来仲裁该第一、第二存储器存取要求产生模块所输出的存储器存取要求以依序产生相对应存储器存取准许信号至该存储器,
其中,该第一存储器存取要求产生模块包含有:
一延迟控制模块,包含有串接的多个延迟级,其中每一延迟级包含有:
一延迟单元,用来以一相对应延迟量来延迟所接收的该第二存储器存取事件并将延迟后的该第二存储器存取事件传递至下一延迟级;以及
一存储器存取要求控制单元,用来依据一重置信号选择性地清除该第一存储器存取要求,以及依据该延迟单元所接收的该第二存储器存取事件的触发来选择性地控制该延迟控制模块维持该第一存储器存取要求或输出该第二存储器存取要求,其中当该第一存储器存取要求所对应的一第一存储器存取准许要求在该第二存储器存取事件触发该存储器存取要求控制单元时已清除,则该存储器存取要求控制单元控制该延迟控制模块输出该第二存储器存取要求,以及当该第一存储器存取要求所对应的该第一存储器存取准许要求在该第二存储器存取事件触发该存储器存取要求控制单元时尚未清除,则该存储器存取要求控制单元控制该延迟控制模块维持该第一存储器存取要求;以及
该第一存储器存取要求产生模块还包含有:
一第一脉冲宽度控制单元,耦接至该延迟控制模块的该多个延迟级与该仲裁器,用来在该仲裁器允许该第一存储器存取要求来存取该存储器的一第一存取运作时间之后产生该重置信号,
其中该第二存储器存取要求产生模块包含有:
一控制模块,用来于接收到该第三存储器存取事件时产生该第三存储器存取要求;以及
一第二脉冲宽度控制单元,耦接至该控制模块与该仲裁器,用来根据该仲裁器所产生的对应该第三存储器存取要求的一第三存储器存取准许信号产生另一重置信号至该控制模块来清除该第三存储器存取要求,其中该第一、第二存储器存取事件的时间间隔与该多个延迟级的一延迟总量的总和大于该第一存取运作时间、一第二存取运作时间的总和。
2.如权利要求1所述的存储器存取控制装置,其中每一存储器存取要求控制单元包含有:
一触发器,具有用来接收该重置信号的一重置端,用来接收该第二存储器存取事件的一时钟端,用来接收一存储器运作状态信号的一输入端,以及用来依据该时钟端的触发来输出该存储器运作状态信号的一输出端;
一多工器,具有一第一输入端、一第二输入端、一输出端与一控制端,该多工器的该第一输入端耦接至该触发器的该输出端,该多工器依据该控制端所接收的一存储器存取准许信号来选择性地将该第一输入端所接收的一第一输入信号或该第二输入端所接收的一第二输入信号输出至该多工器的该输出端以作为该存储器运作状态信号,该多工器的该输出端耦接于该触发器的该输入端;
一第一逻辑门,具有一第一输入端、一第二输入端与一输出端,该第一逻辑门的该第一输入端用来接收一存储器存取要求信号,该第一逻辑门的该第二输入端耦接于该触发器的该输出端,该第一逻辑门依据该存储器存取要求信号与该存储器运作状态信号进行一第一逻辑运算来产生下一延迟级的存储器存取要求控制单元的存储器存取要求信号;以及
一第二逻辑门,具有一第一输入端、一第二输入端与一输出端,该第二逻辑门的该第一输入端耦接于该多工器的该控制端并用来接收该存储器存取准许信号,该第二逻辑门的该第二输入端耦接于该触发器的该输出端,该第二逻辑门依据该存储器存取准许信号与该触发器所输出的该存储器运作状态信号进行一第二逻辑运算来产生下一延迟级的存储器存取要求控制单元的存储器存取准许信号。
3.如权利要求2所述的存储器存取控制装置,其中该第二输入信号为一预设逻辑值。
4.如权利要求2所述的存储器存取控制装置,其中该第一、第二逻辑门均为OR逻辑门。
5.如权利要求1所述的存储器存取控制装置,其中该多个延迟级的一延迟总量小于该第一存取运作时间。
6.如权利要求1所述的存储器存取控制装置,其中该第一、第二存储器存取事件的时间间隔大于该第一存取运作时间与一预设余裕时间的总和。
7.如权利要求1所述的存储器存取控制装置,其中该存储器是一单端口存储器。
8.一种存储器存取控制方法,包含有:
在一存储器正依据对应一第一存储器存取事件的一第一存储器存取要求而进行一第一数据存取操作中接收到一第二存储器存取事件时,在为完成第一数据存取操作而延迟时间之后输出对应该第二存储器存取事件的一第二存储器存取要求至该存储器以进行一第二数据存取操作;
依据一第三存储器存取事件产生一第三存储器存取要求至该存储器以进行一第三数据存取操作,其中该第一及第二数据存取操作为存储器读取与存储器写入中的一个,以及该第三数据存取操作为存储器读取与存储器写入中的另一个;以及
仲裁对应存储器读取的一存储器存取要求与对应存储器写入的另一存储器存取要求以依序产生相对应的存取准许信号至该存储器。
CN200810213779XA 2008-09-04 2008-09-04 存储器存取控制装置及其相关控制方法 Expired - Fee Related CN101667448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810213779XA CN101667448B (zh) 2008-09-04 2008-09-04 存储器存取控制装置及其相关控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810213779XA CN101667448B (zh) 2008-09-04 2008-09-04 存储器存取控制装置及其相关控制方法

Publications (2)

Publication Number Publication Date
CN101667448A CN101667448A (zh) 2010-03-10
CN101667448B true CN101667448B (zh) 2012-11-07

Family

ID=41804029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810213779XA Expired - Fee Related CN101667448B (zh) 2008-09-04 2008-09-04 存储器存取控制装置及其相关控制方法

Country Status (1)

Country Link
CN (1) CN101667448B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110592B2 (en) * 2013-02-04 2015-08-18 Microsoft Technology Licensing, Llc Dynamic allocation of heterogenous memory in a computing system
CN111221573B (zh) * 2018-11-26 2022-03-25 深圳云天励飞技术股份有限公司 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1866230A (zh) * 2005-08-11 2006-11-22 威盛电子股份有限公司 具等待机制的存储器仲裁器
CN101258476A (zh) * 2005-09-09 2008-09-03 先进微装置公司 延迟的存储器访问请求仲裁

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1866230A (zh) * 2005-08-11 2006-11-22 威盛电子股份有限公司 具等待机制的存储器仲裁器
CN101258476A (zh) * 2005-09-09 2008-09-03 先进微装置公司 延迟的存储器访问请求仲裁

Also Published As

Publication number Publication date
CN101667448A (zh) 2010-03-10

Similar Documents

Publication Publication Date Title
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
US6356987B1 (en) Microprocessing device having programmable wait states
CN107924375B (zh) 用于高速存储器接口的命令仲裁
KR20210021302A (ko) 메모리 제어기에서의 리프레시 방식
US20130094271A1 (en) Connection of multiple semiconductor memory devices with chip enable function
KR910017296A (ko) 멀티-마스터 버스 파이프라이닝 실행방법 및 장치
JP2010501915A (ja) メモリ用モジュールコマンド構造およびメモリシステム
US20210149434A1 (en) Clock control circuit and clock control method
TW201009575A (en) Memory access controlling apparatus and control method thereof
US8914612B2 (en) Data processing with time-based memory access
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
TWI533135B (zh) 記憶體存取方法、記憶體存取控制方法、記憶體裝置與記憶體控制器
CN101667448B (zh) 存储器存取控制装置及其相关控制方法
CN116225995B (zh) 一种总线系统及芯片
KR101334111B1 (ko) 쿼드 데이터 레이트(qdr) 제어기 및 그의 실현방법
JPH0390942A (ja) 主記憶装置の制御方式
WO2009030169A1 (en) Method for controlling sram data read-write, integrated circuit and liquid crystal display device with the integrated circuit
JPH08249267A (ja) Dmaコントローラ
JPS5931740B2 (ja) 記憶装置制御方式
US20070234098A1 (en) Self-timed clock-controlled wait states
JPH0143392B2 (zh)
JPH09311812A (ja) マイクロコンピュータ
CN111868677B (zh) 用于具有高速缓冲存储器及多个独立阵列的存储器的接口
CN117634385A (zh) 在fpga上仿真ic设计的方法、系统及存储介质
JPH07146814A (ja) メモリ装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121107

Termination date: 20140904

EXPY Termination of patent right or utility model