利用辅助存储器来访问存储器的方法和系统的制作方法

文档序号:6568600阅读:213来源:国知局
专利名称:利用辅助存储器来访问存储器的方法和系统的制作方法
技术领域
本发明涉及用于访问存储器的方法和系统,更具体地,本发明 涉及利用辅助存储器来访问存储器的方法和系统。本发明还涉及用于 将源程序编译成机器程序的方法。
背景技术
微处理器在现代生活方式下的日常活动的自动化中扮演着一个 重要的角色,业界正不懈地努力以使得自动化的进程变得更快。当前,在得到用于执行的数据之后,微处理器可用于高速地执 行命令。为了访问用于执行的数据,处理器必须与存储器进行通信。 由于存储器速度的提高落后于处理器,于是这就形成了一个瓶颈。由 于速度的不匹配,存储器访问步骤通常会造成处理器暂停。传统上,处理器配置有主存储器和用于更快访问存储器的辅助 存储器。辅助存储器通常被称为缓冲器或者回写缓冲器,它被用作临 时存储主存储器(数据必须存储在其中)中的数据和存储器位置的地 址的中间存储器。这样,即使主存储器正被同一处理器的其它指令访 问或者正被其它处理器访问或者正进行刷新动作,处理器也可以快速 地写入数据。 -处理器通过加载或者存储指令来访问存储器。传统上,每个存 储指令通过辅助存储器将数据传送至主存储器,并且每个加载指令包 括在辅助存储器中寻找存储器地址。如果地址位于辅助存储器,那么 数据就可以从辅助存储器中取出。否则,数据就要从指定地址的主存 储器中获取。这种技术通过临时地在辅助存储器中存储数据和地址使得加载 指令的执行可以优先于存储指令。这就允许处理器在到达其在主存储 器中的位置之前从辅助存储器中加载数据。此外,它允许处理器从主存储器加载数据的同时其它数据仍然存储在主存储器中等待;然而, 这种惯例基本上要求每个加载指令在其可访问主存储器之前在辅助 存储器中搜寻地址,这就需要额外的时间。另一方面,在机器程序的 部分包括多个连续存储操作的情况下,为了避免由于辅助存储器尺寸 的限制导致的数据丢失,(多个)存储操作可采用高于(多个)加载 操作的优先级。这会造成处理器额外的暂停。发明内容因此,本发明的一个目的在于提供能减少处理器暂停周期数的 访问存储器的系统和方法。该目的通过提供编译方法实现,所述方法包括以下步骤.-识别存储指令;识别被所述存储指令访问的存储器位置;识别 第一加载指令,所述第一加载指令之后跟随着访问同一存储器位置的 所述存储指令,在下文中第一加载指令还被称为存储指令的第一相关 加载指令;为所述存储操作提供指示了所述加载指令和所述存储指令 之间的时钟周期数的标记。本发明还提供了一种访问存储器的方法,其包括以下步骤 读取机器程序;根据由所述编译器提供的标记来识别第一类型 存储指令和第二类型存储指令;选择性地,将被所述第一类型存储指 令识别的数据通过辅助存储器传送至主存储器,并且将被所述第二类 型存储指令识别的数据直接地传送至主存储器。本发明还提供了一种 用于访问存储器的系统,其包括用于执行存储指令的处理器;用于 存储被所述存储指令寻址的数据的主存储器和辅助存储器;所述系统 特征在于,所述处理器被布置用于执行第一类型存储指令和第二类型 存储指令,其中被所述第一类型存储指令识别的数据通过辅助存储器 被传送至主存储器,并且被所述第二类型存储指令识别的数据被直接 地传送至主存储器。根据从用于在给定存储器位置存储数据的存储指令被执行的时 刻直到数据从所述存储器位置被加载的时刻为止流逝的时间,这种方 法和系统实现了不同的数据存储方法。这种技术提供了这样一种机制,利用与在存储指令和它们的第 一相关加载指令之间的时间流逝(也称为流逝时间)有关的信息来对 存储指令区分优先级。第一类型存储指令和第二类型存储指令可具有两种不同的操作 码。可替换地,两种指令可具有相同的操作码,但是却具有这样的操 作数,该操作数确定了该指令是作为第一类型存储指令还是作为第二 类型存储指令被执行。操作数可以是二进制的,但是可替换地,操作 数也可以是大于二的范围内的数,例如,操作数可代表存储指令和第 一相关加载指令之间的指令数,或者操作数可代表所述存储指令和加 载指令之间的时钟周期数。在两种情况下,如果操作数标识了一个小 于预定阈值的数,那么存储指令将作为第二类型存储指令被执行。这种方法和系统根据期望的时间流逝实现了对存储操作的识 另ij;并且据此仅仅在存储指令的操作码或操作数指示了将被存储的数 据被要求处于预定时间内的时候,将数据直接地传送至主存储器。实 际上,根据这种方法和系统,存储指令被识别并给予直接访问主存储 器的优先级。此外,这种方法和系统还确保在处理器要求数据之前数 据已经从辅助存储器到达主存储器。这就确保了,当执行加载指令时, 处理器要求的任何数据都可从主存储器中得到而不需要搜索辅助存 储器,于是这样就能更快地执行加载指令。根据加载指令,需要的数 据可直接从主存储器中取出。本发明尤其有利于应用于这样的多处理器系统,其包括连接至 所述主存储器的一个或者更多处理器,其中每个处理器均具有第二辅 助存储器;和用于在所述处理器之间判断对所述主存储器的访问优先 级的判优器。


通过参考下文中利用以下附图加以描述的实施例,本发明的上 述或者其他方面将变得明显并被说明,图中图1示出了适合实现本发明的一个处理器结构。 图2示出了适合实现本发明的多处理器结构。图3示出了编译中的步骤。
具体实施方式
对本发明的方法和系统的多个实施例的描述的顺序并不是强制 的,而仅仅用于说明。本发明的范围并不限于所描述的实施例。本领 域技术人员可以在不偏离本发明思想的情况下利用线程模型、多处理 器系统或者多处理器来同时地改变步骤或者执行步骤的顺序。任何这 种实施例都将落入本发明的范围即要求保护的主题之内。应该注意,上述实施例说明了而不是限制了本发明,并且本领 域技术人员将能在不偏离所附权利要求的范围的情况下设计出多种 替换实施例。在权利要求中,括号中的标号不应该被解释为限制权利 要求。词语"包括"及类似词语的使用并不排除除了权利要求中所陈 述的元件和步骤之外其它元件和步骤的存在。放在元件之前的冠词 "一"或者"一个"的使用并不排除多个该元件的存在。本发明可通 过包括多个不同元件的硬件实现,或者通过合适地编程了的计算机实 现。在列举了多个装置的系统权利要求中,这些装置中的多个可通过 同一个硬件实现。事实仅仅在于,在相互不同的从属权利要求中陈述 的某些方法并不表示这些方法的结合不能用作优选实施例。现在参考图l,其示出了包括连接至主存储器101和辅助存储器 103的处理器102的处理器结构100。编译器104将源代码编译成机 器代码。编译器程序104可被处理器102或者外部处理器执行。为了 说明,图1示出了处于处理器102内的编译器从而表示其是被该处理 器执行的。在那种情况下,处理器102将接收源代码并且使其被编译 器104编译。然而,当编译器104被外部处理器执行时,该处理器接 收编译后的机器代码。当对源代码进行编译时,编译器104识别存储 指令并且确定被所述指令访问的存储器位置。此外,编译器104还确 定在该存储指令之前访问相同存储器位置的加载指令,并且计算存储 指令和加载指令之间的时钟周期数。随后,编译器104为存储指令提 供标记,该标记指示了直至被存储指令访问的存储器位置再次被加载 指令访问时流逝的时钟周期数。标记可能是一个绝对标记,例如精确的时钟周期数或者精确的指令数。可替换地,它还可以是相对标记,例如少于或者多于20个时钟周期或者指令。编译完成时,处理器102 执行代码中的每一条指令。当执行存储指令时,处理器102对提供给 存储指令的标记进行检查。如果存储指令的标记指示流逝时间相对较 大,即,以相对较低的优先级处理所述存储指令,那么处理器102 将与存储指令相关联的数据和地址传送至辅助存储器103。此外,处 理器可将所述地址和数据与一个标志一起存储至辅助存储器,该标志 指出了在将数据传送至主存储器101之前所述数据可在辅助存储器 103中被存储的最大时钟周期数,这有效地定义了数据在辅助存储器 103中的时效。可替换地,辅助存储器中的所有数据具有固定的时效。 在后一种情况下,用于指示时效的标志就是多余的了。所述标志可以 从所述标记中计算出来或者与标记本身一样;同样,在二进制标记的 情况下,辅助存储器103中出现的任何数据可具有预定时效,并且没 有必要将标志传送至辅助存储器103。于是,只要当主存储器101可 访问时,辅助存储器103就将数据传送至主存储器101,但是这不能 迟于数据在辅助存储器103中的最大时效。处理器102可被编程成包 括任何定义第一类型存储指令和第二类型存储指令的标准。换句话说,本发明可以按照下面这样理解。根据本发明,具有 标记(即采用操作码或操作数形式)的存储指令被引入处理器102 的指令集,其中标记规定了存储指令被执行的等待时间。被编译器分 配的标记取决于存储器位置被存储指令访问的时刻与它首先被加载指 令访问的时刻之间流逝的时间。例如,源代码中存在着具有短等待时间(比如2个时钟周期) 的存储指令并且还可以存在具有长等待时间(比如30个时钟周期) 的存储指令。当编译器104将源代码编译成机器代码时,编译器104 确定存储指令的等待时间并且为每个存储指令提供指示了存储指令 类型的标记。编译器104根据从输入的源代码中获取的加载操作和存 储操作之间的关系来作出这个决定。在本例中,具有2个时钟周期等 待时间的存储指令可被认定为短等待时间指令,而具有30个时钟周 期等待时间的存储指令可被认定为长等待时间指令。在编译器生成时间安排表(schedule)之后,如果它从所述关系中推断出同样的存储 器地址在30分钟内没被访问,那么它可以用具有长等待时间的存储 指令替换具有短等待时间的存储指令。执行指令时,对于长等待时间 存储指令,处理器102将地址和数据写入辅助存储器103。分配给存 储指令的标记不仅仅规定了允许的等待时间是"短"还是"长",而 且其中可存储这样一个数值,它指示了直到数据必须被送入主存储器 为止的时钟周期数。进一步参见图2,图2示出了可实施本发明的多处理器结构200。 这种结构具有被多处理器202a、 202b通过总线206共享的主存储器 201a、 201b等等。每个处理器202a、 202b等等具有辅助存储器203a、 203b等等。为了对主存储器201a、 201b的访问进行判优,提供了判 优器204a、 204b。判优器204确保了每个处理器202a、 202b等等可 以在预定时间量内访问这个共享的存储器201,从而限制了任务的执 行时间。可提供开关205a、 205b以使得数据和控制能在数据总线上 传送。任务的执行时间可被限定,例如被实时系统的典型要求所限定, 在这种实时系统中,必须确保应用的最小处理量和最大等待时间。通 过应用时分多址(TDMA)判优策略或者其它最适合特定应用的时分策 略,'就可以得到预定的存储器访问时间的 一 个可能例子。现在参见图3,图3示出了编译器300中的步骤。根据该图释, 在第一步骤301和第二步骤302中,存储指令和被所述存储指令访问 的存储器位置被识别出来。随后,在步骤303中,访问同一存储器位 置的第一加载指令被识别出来。在下一个步骤304中,指示了所述加 载指令和所述存储指令之间的时钟周期数的标记被提供至所述存储 指令。随后,在步骤305中的控制转移到"A"以重复步骤301至304 直到所有存储指令都被识别并都提供了所述标记。在只有单个指令流时(无任何条件),编译器可通过识别访问同一存储器位置的存储指令和加载指令并且通过确定所述指令之间 的时间间隔来将标记提供给存储指令。然而,在指令流分成一个或者多个分支的情况下,(条件指令 流的)每个分支之间可具有不同时间间隔。在那种情况下,存储指令在流分开之前发出并且加载指令在指令流的分成的多个分支中发出, 几乎所有的加载指令与存储指令访问同一存储器地址,编译器可确定 所述存储指令和所述加载指令中最早的一个之间的最短时间差并且 据此将标记分配给所述存储指令。上面讨论的方法和系统仅仅用于说明,本领域技术人员可以理 解的是,本发明还可以应用到主存储器形成分级存储器体系的一部分 的系统中,例如,除了主存储器之外还具有一个或多个高速缓冲存储 器。在那种情况下,将被存储至主存储器中的数据可根据各种高速缓 冲存储策略来进行处理,例如直写、回写、写分配、以及非写分配等 己知的策略。在本发明的实施例中,高速缓冲存储器可作为辅助存储 器。本领域技术人员还可以理解的是,仅仅对步骤的顺序进行改变或 者仅仅排列或者重新排列模块将会产生与上述相类似的结果,任何这 种变型或者重新排列都将落入本发明的范围。
权利要求
1.一种用于将源程序编译成机器程序的方法,其包括以下步骤识别存储指令;识别被所述存储指令访问的存储器位置;识别其后跟随着对同一存储器位置进行访问的所述存储指令的第一加载指令,以及;为所述存储指令提供指示了所述加载指令和所述存储指令之间的时钟周期数的标记。
2. —种访问存储器的方法,其包括以下步骤读取机器程序;在所述机器程序中识别第一类型存储指令和第二类型存储指 令,以及;选择性地将被所述第一类型存储指令识别的数据通过辅助存储 器传送至主存储器,并且将被所述第二类型存储指令识别的数据直接 地传送至主存储器。
3. —种用于访问存储器的系统,其包括处理器,其用于执行机器程序中的存储指令;主存储器和辅助存储器,其存储被所述存储指令寻址的数据;其特征在于,所述处理器被布置用于执行第一类型存储指令和 第二类型存储指令,其中被所述第一类型存储指令识别的数据通过辅 助存储器被传送至主存储器,而被所述第二类型存储指令识别的数据 被直接地传送至主存储器。
4. 如权利要求3所述的用于访问存储器的系统,其中所述系统 进一步包括一个或者更多处理器,其被连接至所述主存储器,其中每个处理器均具有第二辅助存储器,禾口;判优器,用于在所述处理器之间判断对所述主存储器的访问优 先级。
全文摘要
提出了利用辅助存储器来访问存储器的方法和系统。根据本发明,访问同一存储器位置的存储指令和随后的加载指令被识别,并且时间差被确定。存储指令包括一个标记,该标记用于指示直到被存储指令存储的数据元素第一次被加载操作加载为止流逝的时间间隔。根据该标记,存储指令可以直接访问主存储器或者通过辅助存储器被传送至主存储器。
文档编号G06F9/45GK101243394SQ200680029842
公开日2008年8月13日 申请日期2006年8月11日 优先权日2005年8月16日
发明者马尔科·J·G·贝库埃 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1