发明名称 随机存取快取记忆体的快速弹出装置与方法以及电脑可读取的储存媒体
摘要 本发明是关于随机存取快取记忆体的快速弹出。以装置为例,此装置包括一堆叠以接收推入指令资料的列与栏。在执行弹出指令时,此装置使用堆叠最顶端的列与栏数值存取快取记忆体。顶端的列与栏数值所指定的目前快取线之最近推入资料的位移值(offset)会被记录。此位移值在每次执行推入或弹出指令时都会更新。如果弹出指令造成此位移值溢位(overflow),堆叠最顶端的记录单位就会弹出。如果推入指令造成此位移值欠位(underflow),列数值与栏数值会被推入堆叠。上述的列数值、栏数值、与位移值稍后会与真实的弹出位址作比较,以决定猜测提供的资料正确与否。
申请公布号 TWI294569 申请公布日期 2008.03.11
申请号 TW094100032 申请日期 2005.01.03
申请人 智权第一公司 发明人 罗德尼 伊. 霍克儿
分类号 G06F12/02(2006.01) 主分类号 G06F12/02(2006.01)
代理机构 代理人 詹铭文 台北市中正区罗斯福路2段100号7楼之1;萧锡清 台北市中正区罗斯福路2段100号7楼之1
主权项 1.一种随机存取快取记忆体的快速弹出装置,包括: 一后进先出记忆体,储存复数个列数値,该后进先 出记忆体包括储存一最新列数値的一最顶端记录 单位;以及 一多工器,包括: 一第一输入端,自该最顶端记录单位接收该最新列 数値; 一第二输入端,接收存取该随机存取快取记忆体的 一指令之一记忆体位址的一列选取部份; 一输出端,提供一数値以选取该随机存取快取记忆 体的其中一列;以及 一选取输入端,指定该指令的种类,若该选取输入 端指定的种类为弹出指令,则该多工器选取该第一 输入端以提供于该输出端。 2.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,其中若该选取输入端指定的种 类为载入指令,则该多工器选取该第二输入端以提 供于该输出端。 3.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,其中若该选取输入端指定的种 类并非为弹出指令,则该多工器选取该第二输入端 以提供于该输出端。 4.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,其中存放于该后进先出记忆体 的每一个该些列数値各包含一推入指令的目标位 址的一部分。 5.如申请专利范围第4项所述之随机存取快取记忆 体的快速弹出装置,其中该推入指令的目标位址隐 含于该推入指令,作为一堆叠指标暂存器的内容値 的一相对位址形式。 6.如申请专利范围第4项所述之随机存取快取记忆 体的快速弹出装置,其中该最新列数値包含该后进 先出记忆体中的一最新推入指令的目标位址的一 部分。 7.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,其中该记忆体位址包含存取该 随机存取快取记忆体之一载入指令的一来源位址 。 8.如申请专利范围第7项所述之随机存取快取记忆 体的快速弹出装置,其中该载入指令的该来源位址 是由该载入指令明确指定。 9.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,更包括: 一储存阵列,接收该多工器的输出,包含复数个列, 其中每一个列各储存至少一个资料快取线;其中该 多工器的输出数値指定该些列其中之一。 10.如申请专利范围第9项所述之随机存取快取记忆 体的快速弹出装置,其中该多工器的输出数値所指 定的该列所储存的该些资料快取线其中之至少一 包含一最新推入指令的目标资料。 11.如申请专利范围第10项所述之随机存取快取记 忆体的快速弹出装置,其中该最新推入指令为最近 执行且资料尚未从一堆叠记忆体弹出的一推入指 令,且该堆叠记忆体系耦接于包含该随机存取快取 记忆体的一微处理机。 12.如申请专利范围第9项所述之随机存取快取记忆 体的快速弹出装置,其中该随机存取快取记忆体在 决定该弹出指令的一来源位址是否击中该随机存 取快取记忆体之前,会输出该多工器的输出数値所 指定的该列所储存的该些资料快取线的其中至少 之一。 13.如申请专利范围第9项所述之随机存取快取记忆 体的快速弹出装置,其中该储存阵列包含至少一个 栏,其中每一个栏各储存该些资料快取线其中至少 之一。 14.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,更包括: 一第二后进先出记忆体,储存多数个栏数値,该第 二后进先出记忆体包含储存一最新栏数値的一最 顶端记录单位。 15.如申请专利范围第14项所述之随机存取快取记 忆体的快速弹出装置,更包括: 一第二多工器,包括: 一第一输入端,自该第二后进先出记忆体的该最顶 端记录单位接收该最新栏数値; 一第二输入端,接收一栏选取数値; 一输出端,提供一数値以选取该随机存取快取记忆 体的一栏;以及 一选取输入端,指定存取该随机存取快取记忆体的 该指令的种类,若该选取输入端指定的种类为弹出 指令,则该第二多工器选取该第一输入端以提供于 该输出端。 16.如申请专利范围第15项所述之随机存取快取记 忆体的快速弹出装置,其中若该第二多工器的选取 输入端指定的种类为载入指令,则该第二多工器选 取该第二输入端以提供于该输出端。 17.如申请专利范围第16项所述之随机存取快取记 忆体的快速弹出装置,其中该栏选取数値包含一栏 ,在此该栏之位址标签等于该载入指令的一来源位 址的一标签部分。 18.如申请专利范围第15项所述之随机存取快取记 忆体的快速弹出装置,其中若该第二多工器的选取 输入端指定的种类并非为弹出指令,则该第二多工 器选取该第二输入端以提供于该输出端。 19.如申请专利范围第15项所述之随机存取快取记 忆体的快速弹出装置,其中该第二后进先出记忆体 所储存的每一个该些栏数値各指定该随机存取快 取记忆体当中,储存推入指令目标资料的一个栏。 20.如申请专利范围第15项所述之随机存取快取记 忆体的快速弹出装置,其中该第一与该第二多工器 的输出数値所分别选取的该列与该栏,系指定该随 机存取快取记忆体所储存之一快取线以供给该指 令,其中该快取线含有该指令之来源资料。 21.如申请专利范围第20项所述之随机存取快取记 忆体的快速弹出装置,其中若该选取输入端指定的 种类为弹出指令,则该随机存取快取记忆体会在决 定该弹出指令的来源位址是否击中该随机存取快 取记忆体之前,输出该列与该栏所指定的该快取线 。 22.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,更包括:一位移値,指定该随机 存取快取记忆体当中,该多工器的输出数値所指定 的该列的一快取线当中的一资料位置。 23.如申请专利范围第22项所述之随机存取快取记 忆体的快速弹出装置,其中该位移値会回应于一弹 出指令而递增。 24.如申请专利范围第23项所述之随机存取快取记 忆体的快速弹出装置,其中若该位移値的递增造成 该位移値溢位,则该随机存取快取记忆体从该后进 先出记忆体弹出该最新列数値。 25.如申请专利范围第22项所述之随机存取快取记 忆体的快速弹出装置,其中该位移値会回应于一推 入指令而递减。 26.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,更包括: 一比较逻辑电路,耦接至该最顶端记录单位以接收 该最新列数値,并比较该最新列数値与该记忆体位 址的一部分,其中该记忆体位址包含该弹出指令的 一来源资料位址。 27.如申请专利范围第26项所述之随机存取快取记 忆体的快速弹出装置,更包括: 一例外事件输出端,耦接至该比较逻辑电路,于该 最新列数値不符合该记忆体位址的该部分时,指示 一例外事件状况。 28.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,其中该快速弹出装置是由一电 脑程式产品造成,该电脑程式产品包含载有电脑可 读取的程式码的一电脑可使用媒体,其中该电脑程 式产品是为了配合一计算装置使用。 29.如申请专利范围第1项所述之随机存取快取记忆 体的快速弹出装置,其中该快速弹出装置是由内含 于一传输媒体的一电脑资料讯号提供,且该电脑资 料讯号包含电脑可读取的程式码。 30.一种随机存取快取记忆体的快速弹出方法,包括 下列步骤: 存放一推入指令的资料至该随机存取快取记忆体 当中,一列数値所指定的一列; 在该存放之后,推入该列数値至一后进先出记忆体 的一最顶端记录单位;以及 在该推入之后,接收一请求以读取该随机存取快取 记忆体,其中该请求指定一请求种类。 31.如申请专利范围第30项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤之某一者: 若该请求种类为弹出指令,则根据该后进先出记忆 体的该最顶端记录单位所储存的该列数値读取该 随机存取快取记忆体;以及若该请求种类为载入指 令,则根据该请求指定的一记忆体位址读取该随机 存取快取记忆体。 32.如申请专利范围第30项所述之随机存取快取记 忆体的快速弹出方法,其中存放该推入指令的资料 的步骤更包括: 将该推入指令的资料存放至该随机存取快取记忆 体的该列的其中一栏,其中该栏是由一栏数値所指 定。 33.如申请专利范围第32项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 在存放该推入指令的资料至该栏之后,将该栏数値 推入一第二后进先出记忆体的一最顶端记录单位 。 34.如申请专利范围第33项所述之随机存取快取记 忆体的快速弹出方法,其中该第一与该第二后进先 出记忆体为同一个后进先出记忆体。 35.如申请专利范围第33项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 若该请求种类为弹出指令,则根据该第二后进先出 记忆体的该最顶端记录单位所储存的该栏数値读 取该随机存取快取记忆体。 36.如申请专利范围第31项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 决定读取该随机存取快取记忆体的步骤所使用的 该栏数値,是否正确指定该随机存取快取记忆体当 中,储存该弹出指令所指定的资料的一栏。 37.如申请专利范围第36项所述之随机存取快取记 忆体的快速弹出方法,其中决定的步骤更包括: 比较该弹出指令的一来源资料位址的一部分与该 随机存取快取记忆体提供的一标签数値,其中该标 签数値是根据该栏数値选取。 38.如申请专利范围第30项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 于存放的步骤之后递减一位移値,其中该位移値指 定该随机存取快取记忆体的一快取线其中的一资 料位置,其中该快取线位于该随机存取快取记忆体 当中,该列数値所指定的该列。 39.如申请专利范围第38项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 若该请求种类为弹出指令,则根据该位移値读取该 随机存取快取记忆体。 40.如申请专利范围第31项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 决定用于读取步骤的该列数値,是否正确指定该随 机存取快取记忆体中,储存该弹出指令所指定资料 的一列。 41.如申请专利范围第40项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 若用于读取步骤的该列数値,未能正确指定该随机 存取快取记忆体当中,储存该弹出指令所指定的资 料的该列,则提供正确资料给该弹出指令。 42.如申请专利范围第40项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 若用于读取步骤的该列数値,未能正确指定该随机 存取快取记忆体当中,储存该弹出指令所指定的资 料的该列,则产生一例外事件状况。 43.如申请专利范围第40项所述之随机存取快取记 忆体的快速弹出方法,其中决定的步骤更包括: 比较该弹出指令的一来源资料位址的一部分与该 列数値。 44.如申请专利范围第30项所述之随机存取快取记 忆体的快速弹出方法,其中推入的步骤只在该推入 指令与上一个推入指令的资料位于不同快取线时 执行。 45.如申请专利范围第31项所述之随机存取快取记 忆体的快速弹出方法,更包括下列步骤: 若读取的步骤包含自该列数値指定的一快取线当 中,读取处于一位移値的位置的资料,而且该位移 値指定该快取线的最后资料,则自该后进先出记忆 体的该最顶端记录单位弹出该列数値。 46.一种电脑可读取的储存媒体,包括: 一电脑可读取程式码,提供一随机存取快取记忆体 的一快速弹出装置,该电脑可读取程式码包括: 一第一程式码,提供一后进先出记忆体,以储存多 数个列数値,该后进先出记忆体包括储存一最新列 数値的一最顶端记录单位;以及 一第二程式码,提供一多工器,包括: 一第一输入端,自该最顶端记录单位接收该最新列 数値; 一第二输入端,接收存取该随机存取快取记忆体的 一指令的一记忆体位址的一列选取部份; 一输出端,提供一数値以选取该随机存取快取记忆 体的其中一列;以及 一选取输入端,指定该指令的种类,若该选取输入 端指定的种类为弹出指令,则该多工器选取该第一 输入端以提供于该输出端。 图式简单说明: 图1为根据本发明的管线式微处理机的方块图。 图2为根据本发明,绘示图1的堆叠快取的方块图。 图3为根据本发明,绘示图1的堆叠快取的额外元件 的方块图。 图4为根据本发明,绘示图1的第一级资料快取的多 工选取逻辑电路的方块图。 图5为根据本发明,绘示从图1的堆叠快取进行快速 弹出程序的流程图。 图6为根据本发明,进行推入程序至图1的堆叠快取 的流程图。 图7为根据本发明,绘示图1微处理机执行堆叠指标 加法指令的流程图。 图8为根据本发明的,绘示从图1堆叠快取进行载入 程序的流程图。 图9为根据本发明的,进行存放程序至图1的第一级 资料快取的流程图。 图10为根据本发明,从图1的堆叠快取进行图5的快 速弹出程序的时序图。 图11为根据本发明,从堆叠快取进行图8的猜测载入 程序的时序图。 图12为根据本发明,从堆叠快取进行图8的正常载入 ,即非猜测载入程序的时序图。 图13为根据本发明,从非堆叠快取进行图8的载入程 序的时序图。 图14为根据本发明的管线式微处理机的方块图。 图15为根据本发明,绘示图14的第一级资料快取的 方块图。 图16为根据本发明,从图15的资料快取进行快速弹 出程序的流程图。 图17为根据本发明,进行推入程序至图15的资料快 取的流程图。 图18为根据本发明,绘示图14的微处理机执行堆叠 指标加法指令的流程图。 图19为根据本发明,从图15的资料快取进行图16的快 速弹出程序的时序图。
地址 美国