以复制写入请求用于一致性存储器拷贝的方法及设备.pdf

上传人:32 文档编号:1036712 上传时间:2018-03-27 格式:PDF 页数:18 大小:625.31KB
返回 下载 相关 举报
摘要
申请专利号:

CN200980157214.7

申请日:

2009.12.16

公开号:

CN102326153A

公开日:

2012.01.18

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/02申请日:20091216|||公开

IPC分类号:

G06F12/02; G06F1/32; G06F12/10

主分类号:

G06F12/02

申请人:

ATI技术无限责任公司

发明人:

S·M·加德拉布

地址:

加拿大安大略省

优先权:

2008.12.19 US 12/340,120

专利代理机构:

北京戈程知识产权代理有限公司 11314

代理人:

程伟;王锦阳

PDF下载: PDF下载
内容摘要

一致性存储器拷贝逻辑可操作成从来源存储器位置拷贝数据至目标存储器位置以及复制对于来源存储区的写入请求以产生复制写入请求。一致性存储器拷贝逻辑也可操作成执行复制写入请求以从外部存储区拷贝内容至目标存储区。在内部存储器正被使用时,则可降低来源存储器的功率以节省电力。因此,一种“硬件存储器移动器”不需要使用任何复杂的软件同步并且在存储器移动期间不会导致任何服务中断。该一致性存储器拷贝逻辑以对于应用程序软件及使用者是透明的方式,重新分配例如由外部存储器至芯片内之内部存储器的应用存储器空间。本发明也提出数种对应的方法。

权利要求书

1: 一种用于重新分配存储器内容的方法, 其包含下列步骤 : 从一存储器位置拷贝数据至另一存储器位置 ; 复制对于来源存储区的写入请求以产生复制写入请求 ; 以及 执行该复制写入请求以从该来源存储区拷贝内容至该目标存储区。
2: 如权利要求 1 所述的方法, 其中该来源存储器为外部存储器, 以及其中该目标存储 器为内部存储器, 以及其中该方法包含下列步骤 : 通过储存信息的子集或修改子集至内部转译后备缓冲区来产生该内部转译后备缓冲 区, 该信息来自位于含有数个实体地址的该外部存储器的外部转译后备缓冲区 ; 对于该目标存储区的地址转译, 只使用该内部转译后备缓冲区 ; 中止对于该来源存储器的存取 ; 以及 通过使该来源存储器处于低功率模式来减少该来源存储器的耗电量。
3: 如权利要求 2 所述的方法, 其中使该来源存储器处于低功率模式的步骤包含下列步 骤: 使该来源存储器处于自刷新模式或将该来源存储器的电源移除。
4: 如权利要求 1 所述的方法, 其包含下列步骤 : 判断哪些存储器分页比其它分页被处理器更频繁地存取 ; 拷贝这些使用更频繁的存储器分页至内部目标存储器 ; 以及 通过储存信息的子集或修改子集来产生内部转译后备缓冲区, 该信息来自位于含有数 个实体地址的该外部来源存储器的外部转译后备缓冲区 ; 在查找该外部转译后备缓冲区之前, 查找该内部转译后备缓冲区以决定地址转译。
5: 如权利要求 1 所述的方法, 其包含下列步骤 : 判断对于该来源存储器是否有同一地址对应至基于产生该复制写入请求步骤的写入 请求的搁置读取请求 ; 以及 若成立, 设定该项目的丢弃旗标为有效。
6: 如权利要求 5 所述的方法, 其包含下列步骤 : 立即执行该复制写入。
7: 如权利要求 5 所述的方法, 其包含下列步骤 : 将来自该复制写入的数据插入该搁置 数据队列。
8: 如权利要求 1 所述的方法, 其中该拷贝步骤包含下列步骤 : 从一搁置数据队列读取 一项目, (a) 在备妥旗标有效、 丢弃旗标无效以及写入到该目标存储区时, 或者是 (b) 在该 备妥旗标有效、 读取丢弃旗标有效且其中该复制写入的内容已预先置入该搁置数据队列 时。
9: 一种用于重新分配存储器内容的方法, 其包含下列步骤 : 通过以下步骤来提供存取外部来源存储区的连续读取及写入以及从该外部来源存储 区拷贝数据至内部目标存储区 : 继续运行对于该外部来源存储区引起存储器写入的当前应用程序 ; 复制对于该来源存储区的该写入请求以产生复制写入请求 ; 以及 执行该复制写入请求以确保来自该来源存储区的内容与该目标存储区的内容相同 ; 以 及 降低含有该外部存储区的该外部存储器的功率以响应拷贝内容至该内部目标存储区 的步骤。 2
10: 如权利要求 9 所述的方法, 其包含下列步骤 : 在减少该外部存储器的耗电量之前, 通过储存整个转译后备缓冲区信息的子集或修改子集至内部转译后备缓冲区来产生该内 部转译后备缓冲区, 该整个转译后备缓冲区信息位于含有数个实体地址的该外部来源存储 器中。
11: 如权利要求 10 所述的方法, 其中在降低该外部存储器的功率之前产生该内部转译 后备缓冲区的步骤包含下列步骤 : 储存该实体地址的子集作为硬件查找树或杂凑表的至少 一者。
12: 一种用于重新分配存储器内容的方法, 其包含下列步骤 : 从外部存储器转移操作至芯片的内部存储器 ; 在降低该外部存储器的功率之前, 通过储存信息的子集或修改子集至内部转译后备缓 冲区来产生该内部转译后备缓冲区, 该信息在位于含有数个实体地址的该外部来源存储器 的整个转译后备缓冲区 (TLB) 中 ; 以及 降低该外部存储器的功率。
13: 如权利要求 12 所述的方法, 其中在降低该外部存储器的功率之前产生该内部转译 后备缓冲区的步骤包含下列步骤 : 储存该实体地址的子集或修改子集作为硬件查找树或杂 凑表中的至少一者。
14: 一种集成电路, 其包含 : 一致性存储器拷贝逻辑, 其可操作成从一来源存储区拷贝数据至一目标存储区, 以及 可操作成复制进入写入请求至来源存储区以产生复制写入请求 ; 以及 执行该复制写入请求以使该来源存储区及该目标存储区的内容同步。
15: 如权利要求 14 所述的集成电路, 其中该一致性存储器拷贝逻辑包含输入请求路由 器逻辑与拷贝写入逻辑, 该输入请求路由器逻辑可操作成拦截对于来源存储器且正被拷贝 至该目标存储器的目标存储区的存储器写入请求, 以及该拷贝写入逻辑可操作成比较被拦 截的该存储器写入请求的地址与在搁置数据队列中的项目以促进拷贝一致性。
16: 如权利要求 15 所述的集成电路, 其中该搁置数据队列暂时储存待拷贝自该来源存 储区的数据以及至少暂时储存表示该搁置数据队列中的项目备妥被拷贝至该目标存储器 的数据及表示项目已被拷贝至该目标存储区的数据。
17: 如权利要求 14 所述的集成电路, 其包含储存信息的子集或修改子集的内部转译 后备缓冲区, 该信息来自位于含有数个实体地址的该外部来源存储器的外部转译后备缓冲 区, 以及包含使用该内部转译后备缓冲区转译只储存于该内部存储器的分页的实体地址及 虚拟地址的存储器接口逻辑。
18: 如权利要求 14 所述的集成电路, 其中该一致性存储器拷贝逻辑包含含有搁置数据 队列的拷贝逻辑、 可操作地耦合至该搁置数据队列的拷贝写入逻辑, 其中该拷贝写入逻辑 可操作成 : 从该搁置数据队列判断对于来源存储器是否有同一地址对应至基于产生该复制写入 请求步骤的写入请求的搁置读取请求 ; 以及 若成立, 设定该项目的丢弃旗标为有效。
19: 如权利要求 18 所述的集成电路, 其中该一致性存储器拷贝逻辑可操作成立即执行 该复制写入。 3
20: 如权利要求 18 所述的集成电路, 其包含可操作成将来自该复制写入的数据插入该 搁置数据队列的拷贝写入逻辑。
21: 如权利要求 14 所述的集成电路, 其中该拷贝步骤包含下列步骤 : 从一搁置数据队 列读取一项目, (a) 在备妥旗标为有效、 丢弃旗标无效以及写入到该目标存储区时, 或者是 (b) 在该备妥旗标有效、 读取丢弃旗标有效且其中该复制写入的内容已预先置入该搁置数 据队列时。
22: 一种包含如权利要求 14 所述的集成电路的装置。
23: 一种装置, 其包含 : 集成电路, 包含内部存储器于其上 ; 外部存储器, 位在该集成电路外 ; 逻辑, 其可操作成从该外部存储器转移操作至该内部存储器, 以及在降低该外部存储 器的功率之前, 可操作成通过储存信息的子集或修改子集至内部转译后备缓冲区来产生该 内部转译后备缓冲区, 该信息在位于含有数个实体地址的该外部来源存储器的整个转译后 备缓冲区中 ; 以及, 可操作成降低该外部存储器的功率。
24: 如权利要求 23 所述的装置, 其中该逻辑包含含有输入请求路由器逻辑及拷贝写入 逻辑的一致性存储器拷贝逻辑, 该输入请求路由器逻辑可操作成拦截对于来源存储器且正 被拷贝至该目标存储区的存储器写入请求, 以及该拷贝写入逻辑可操作成比较被拦截的该 存储器写入请求的地址与搁置数据队列中的项目以促进拷贝一致性。
25: 如权利要求 24 所述的装置, 其中该搁置数据队列暂时储存待拷贝自该来源存储区 的数据以及至少暂时储存表示该搁置数据队列中的项目备妥被拷贝至该目标存储器的数 据及表示项目已被拷贝至该目标存储区的数据。
26: 如权利要求 24 所述的装置, 其中该拷贝写入逻辑可操作成判断对于该来源存储器 是否有同一地址对应至基于产生该复制写入请求步骤的写入请求的搁置读取请求 ; 以及 若成立, 设定该项目的丢弃旗标为有效。
27: 一种计算机可读取媒体, 其包含 : 储存于其上的数个可执行指令, 在执行这些指令时造成集成电路设计系统所制成的集 成电路可操作成通过下列步骤来重新分配存储器内容 : 从一存储器位置拷贝数据至另一存储器位置 ; 复制对于来源存储区的写入请求以产生复制写入请求 ; 以及 执行该复制写入请求以从该来源存储区拷贝内容至该目标存储区。
28: 如权利要求 27 所述的计算机可读取媒体, 其中这些可执行指令为硬件描述符语言 指令。

说明书


以复制写入请求用于一致性存储器拷贝的方法及设备

    技术领域 本揭示内容大体有关于用以由来源存储器重新分配存储器内容至目标存储器的 方法, 且更特别的是, 有关于数种用于重新分配在集成电路 ( 例如, 芯片 ) 外的外部存储器 与位于芯片上的内部存储器之间的存储器内容的方法及设备。
     背景技术 手持装置 ( 例如, 智能手机、 多媒体播放器、 数字音频播放器及其它手持装置 ) 需 要改良电池寿命。手持芯片 ( 位于手持装置里的集成电路 ) 的低功率操作对于长电池寿命 是不可或缺的。在这些芯片启动应用程序 ( 例如, 音频播放应用程序 ) 时, 尝试分配存储器 空间给在内部芯片存储器结构里的应用程序。 如果内部存储器结构已经被其它应用程序使 用, 该芯片分配存储器给在芯片外的新的应用程序存储器结构。 不过, 使用外部存储器会增 加手持装置的电力消耗而缩短电池寿命。
     在芯片上的内部存储器有空时, 当前手持装置通常无法让应用程序由外部存储器 移到内部存储器, 因为基于软件的存储器分页 (memory page) 迁移既复杂又不可靠。因此, 即使有内部存储器结构可供使用, 该装置通常继续使用外部存储器。这会导致不必要的电 力消耗。
     使用外部存储器需要会耗费额外电力的外部通信针脚。 如果手持装置进入低功率 模式以及正在执行的应用程序可驻留在内部存储器中, 则需要较少的操作, 然而该应用程 序通常是驻留在外部存储器。 其它系统, 例如, 可能允许正在执行的所有应用程序由外部存 储器移到内部存储器或者在移动最大数目的应用程序的同时允许某个最小数目的应用程 序从外部存储器开始执行。不过, 这些通常利用软件同步与转移操作。
     此外, 在移动应用程序时, 操作系统中止应用程序并且将数据由外部存储器移到 内部存储器。不过, 中止应用程序会中断使用者服务因而是不可接受的。
     企图使应用程序于来源及目标存储器 ( 例如, 外部存储器与内部存储器 ) 之间移 动的一个已知解决方案是以软件为基础的。它们通常需要复杂的软件同步技术。以软件为 基础的转移操作造成应用程序在转移应用程序期间完全或部份无法使用。 不论持续时间多 短, 这种中断对于多媒体应用程序 ( 例如, 音频及视讯播放 ) 是不可接受的。
     使信息由外部存储器移到内部存储器的已知硬件技术可包含, 例如已知由来源存 储器拷贝数据至目标存储器的 “存储器拷贝引擎” 或直接存储器存取拷贝引擎 (DMA 引擎 )。 此类拷贝引擎的问题是来源存储器中已拷贝至目标存储器之特定位置的任何更新不会反 映至目标存储器。因此, 没有实施存储器一致性。
     在直接存储器存取引擎操作时, 必需中止该应用程序以便中断服务。 此外, 直接存 储器存取引擎通常不晓得虚拟地址。 例如在主机处理器上执行的软件应用程序会告诉直接 存储器存取拷贝引擎要移动数据。该软件应用程序必须请求虚拟至实体存储器的转译。因 此, 期望能有一种基于硬件的系统在进行由来源存储器拷贝或移动内容至目标存储器时允 许应用程序继续运行。
     附图说明
     由下文伴随以下附图的说明可更加明白本发明, 图中类似的组件用相同的组件符号表示。 图 1 的方块图根据陈述于本揭示内容之一实施例图示集成电路之一部份, 其系包 含可操作以移动存储器内容的逻辑 ;
     图 2 的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容 之方法的一实施例 ;
     图 3 的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容 之方法的一实施例 ;
     图 4 的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容 之方法的一实施例 ;
     图 5 的方块图根据陈述于本揭示内容之一实施例图示陈述于第 1 图的一拷贝引擎 实施例 ;
     图 6 的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容 之方法的一实施例 ; 以及
     图 7 的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容 之方法的一实施例。具体实施方式
     一般而言, 作为存储器拷贝处理的一部份, 存储器拷贝逻辑可操作成复制对于来 源存储区的写入请求来产生复制写入请求。 一致性存储器拷贝逻辑也可操作成执行该复制 写入请求来确保写入请求更新来源存储器的任何内容在目标存储器也被更新。 在内部存储 器正被使用时, 则可降低来源存储器的功率以节省电力。 因此, 一种 “硬件存储器移动器” 不 需要使用任何复杂的软件同步以及在存储器移动期间不会导致任何服务中断。 该一致性存 储器拷贝逻辑以对于应用软件及使用者是透明的方式, 重新分配例如由外部存储器至芯片 内之内部存储器的应用存储器空间。 在由来源区移动数据至目标区时提供一致性的另一实 施例包含使用一致性存储器拷贝引擎把存储器中之一区的内容重新分配到同一实体存储 器 ( 例如, 非内部及外部存储器 ) 内的新位置 ( 区域 )。这允许重整装置在正常操作期间可 能已支离破碎的存储区。熟谙此艺者会明白其它的优点。
     该一致性存储器拷贝逻辑可包含输入请求路由器逻辑 ( 其拦截对于正被拷贝至 目标存储区之来源存储区的存储器写入请求 ), 以及拷贝写入控制器逻辑 ( 其可操作成比 较被拦截的存储器写入请求的地址与搁置数据队列 (pending data queue) 的项目 (entry) 以促进拷贝一致性 )。该搁置数据队列暂时储存待拷贝自外部存储器来源区的数据及表示 搁置数据队列中之项目备妥被拷贝至内部存储器的数据。 搁置数据队列的每个项目暂时储 存由来源存储器读出但是尚未写入目标存储器的数据片段。 该搁置数据队列也包含与正被 拷贝至目标存储区之数据片段关联的数据。 此类关联数据可包含来源及目标存储器中之数 据片段的实体地址, 指示此数据片段备妥被写入目标存储器的旗标, 以及指示应丢弃此数 据片段的丢弃旗标 (discard flag)。在另一实施例中, 该一致性存储器拷贝逻辑包含内部转译后备缓冲区 (internal translation look aside buffer) 用以储存来自位在外部或来源存储器之外部转译后备 缓冲区中含有实体地址的信息之子集 ( 例如, 少于所有分页的所有转译 ) 或修改子集。外 部 TLB 经修改成可指向内部位置而不是外部位置。存储器控制器区块存储器接口 116、 110 使用内部转译后备缓冲区 136 只转译储存于内部存储器之分页中的实体地址及虚拟地址。
     以下也描述包含集成电路的手持装置与对应方法。
     图 1 显示手持装置 100( 例如但不受限于, 智能手机 ) 中之一部份的实施例, 然而 图中不包括标准组件, 例如显示器、 无线蜂巢式子系统、 相机及其它习知组件。图 1 的处理 器 102( 例如, 图形处理单元, 例如但不受限于微处理器集成电路 102) 包含为处理器 102 之内部存储器的目标存储器 104。图中也有例如可为动态 RAM(DRAM) 的来源存储器 106 与 可为 SRAM 的目标存储器 107, 不过应了解到也可使用任何适当的存储器类型。来源存储 器 106 图示成为在集成电路 102 外部的外部存储器。手持装置 100 也可包含可在同一个 集成电路或个别集成电路上的另一处理器 108( 例如, 中央处理核心 )。处理器 102 包含经 由适当总线 112 与内部存储器 104 通信的内部存储器接口 110, 以及也包含经由适当总线 118 与外部存储器 106 通信的外部存储器接口 116。仅为了图解说明, 也在椭圆形内显示经 由总线 112 及总线 118 来通信的个别通信路径。处理器 102 也包含作为存储器控制器区 块 122 之一部份或个别区块的一致性存储器拷贝逻辑 124、 复用仲裁逻辑 (multiplexing arbitration logic)126、 以及与其它客户端及处理器 102 内之电路通信的一个或多个存储 器客户端 128、 130。 一 致 性 存 储 器 拷 贝 逻 辑 124 为 包 含 分 页 拷 贝 工 作 队 列 (page copy work queue)132、 拷贝逻辑 134、 视需要之内部存储器转译后备缓冲区 136 及拷贝流引擎 (copy flow engine)138 的硬件逻辑。一致性存储器拷贝逻辑 124 经由适当通信总线 140 与处理 器 108 通信。如以下的进一步描述, 处理器 108 可包含适当程序, 在执行它时可用作操作成 填入 (populate) 分页拷贝工作队列 132 的逻辑 142。 如本技艺所习知, 复用及仲裁逻辑 126 经由适当总线 150、 152 与各种客户端接口 128 至 130 通信。
     拷贝引擎 134 可操作地经耦合成可通过适当链路 154 与分页拷贝工作队列 132 通 信, 以及通过适当链路 156 与拷贝流引擎 138 通信。拷贝流引擎 138( 例如, 状态机 ) 通过 适当通信链路 158 与内部存储器 TLB 136 通信, 以及通过链路 160 与分页拷贝工作队列通 信。内部存储器 TLB 136 通过适当通信链路 999 与不同的存储器接口 ( 内部或外部的 ) 通 信。
     也参考图 2, 操作时, 一致性存储器拷贝逻辑 124 可操作成由一存储器位置拷贝数 据至另一存储器位置 ( 参考区块 204 及 206)。仅供举例说明, 拷贝可包含依序地用读取请 求 182 来读取来源存储区 164 的数据片段以及用写入请求 184 写入数据片段于目标存储区 180。这图示于区块 204、 206。一致性存储器拷贝逻辑 124 也可操作成复制来自存储器客 户端 130-128 中任一者的写入请求 162, 其指示写入来源存储器 106, 例如写入区域 164( 例 如, 可为存储器中的分页 ), 以产生复制写入请求 170 以写入在目标存储器 104 中的对应目 标存储区 180。这图示于区块 200。直线 163 表示读取。如区块 202 所示, 一致性存储器拷 贝逻辑 124 也可操作成执行复制写入请求 170 以由来源存储器 106 拷贝内容至目标存储器 104 中的目标存储区 180。链路 171 表示正常操作期间的读取及写入。对于所有的读取及
     写入请求, 拷贝逻辑 134( 也被称作拷贝引擎 ) 可操作虚拟地址 ( 图 1 中以 VA 表示 ) 或者 是实体地址 ( 图 2 中以 PA 表示 )。如果存储器客户端 128 至 130 或分页拷贝工作队列 132 提供实体地址, 则拷贝逻辑 134 使用它们所提供的实体地址。 如果存储器客户端 128 至 130 或分页拷贝工作队列 132 提供虚拟地址, 则拷贝逻辑 134 会把虚拟地址转译成实体地址。 熟谙此艺者会晓得有许多已开发及了解的方法可用于存储器之虚拟及实体地址的转译。 此 外, 直线 186 显示可读取来源存储器之信息的存储器客户端请求以及来源存储器 106 用直 线 188 显示作为客户端读取之参考依据的信息。 在此实施例中, 一致性存储器拷贝逻辑 124 操作成提供存取外部存储器 106 的连续读取及写入同时利用它的拷贝功能并且产生及使 用复制写入请求 170, 从来源区拷贝数据片段至目标存储区 180, 其中这些片段的总合形成 一个或多个存储器分页。在不必中止正在处理器 108 上执行之应用的操作下, 可完成此事。
     为了进行存储器分页由来源存储器 106 至目标存储器 104 的一致性拷贝, 一致性 存储器拷贝逻辑 124 例如经由分页拷贝工作队列 132 接收来自正在处理器 108 上执行之应 用程序的命令。存储器分页可具有虚拟基地址, 图中为对应至实体基地址 PA-1 的 VA-1。或 者, 处理器 108 可提供该分页的实体基地址 PA-1。处理器 108 也可提供待通过分页拷贝工 作队列 132 来拷贝的数个分页的基地址 (VA-11, VA-111…、 等等或 PA-11, PA-111…等等 )。 对于每个待拷贝自来源存储器的存储器分页, 处理器 108 也提供目标存储区的基地址, 在 此一致性拷贝引擎会拷贝当下位于来源存储器的数据至该基地址。 目标存储区的基地址可 为实体地址 (PA-2) 或者是虚拟地址 (VA-2)。通过分页拷贝工作队列 132 内的队列或通过 基于缓存器的简单命令, 也可发生此命令的接收。拷贝流引擎 138 读取分页拷贝工作队列 132 的内容以及通过适当总线 156 发出拷贝命令给拷贝逻辑 134。拷贝逻辑 134 拷贝基地 址为 PA-1 的分页以及将它写到基底为 PA-2 的分页同时在拷贝操作期间维持一致性。在拷 贝操作期间应该能以对于所有客户端区块是透明的方式来维持一致性。 下文有进一步的说 明。
     除了或视需要地, 也可利用可在虚拟地址及实体地址之间转译或可在一实体地址 及另一实体地址之间转译的内部存储器转译后备缓冲区 136 的维护 (maintenance)。 例如, 在虚拟至实体分页转译表储存于外部或来源存储器时会遇到困难是因为外部存储器必须 仍可存取存储器存取单元用以将虚拟地址转译成实体地址, 甚至是在要求的分页被转移到 内部存储器之后。在处于仅内部存储器模式 (IMOM) 时, 利用只针对内部存储器分页的内部 存储器 TLB 的维护。
     请参考图 3, 维护内部存储器 TLB 及降低功率以允许利用内部存储器分页的方法, 如区块 300 所示, 包含由外部存储器或来源存储器转移操作至处理器 102 的内部存储器。 如 区块 302 所示, 此方法包含在降低来源存储器 106 的功率之前, 藉由储存 ( 例如, 拷贝 ) 信息 的子集至内部转译后备缓冲区来产生该内部转译后备缓冲区 136, 该信息来自位于含有实 体地址之外部来源存储器的整个转译后备缓冲区。例如, 这可用拷贝逻辑 134 来完成。只 对于储存于内部存储器的分页, 存储器接口 110、 118 用内部 TLB 136 转译来自存储器客户 端 128 至 130 的地址。这可在执行时当作逻辑 142 之软件模块的控制下完成。在进入仅内 部存储器模式之前, 内部存储器 TLB 可用逻辑 142 构成。内部存储器 TLB 的实体大小为内 部存储器大小的函数, 但是通常比内部存储器的大小小一个数量级。因此, 内部存储器 TLB 136 为允许关电源从而节省电力可藉由切断外部存储器 106 来提供的可扩展解决方案。如区块 304 所示, 该方法则可包含中止外部存储器 106 的存取以降低功率。使来 源存储器处于低功率模式包含使来源存储器处于自刷新模式 (self refresh mode) 或将来 源存储器的电源移除。
     应用程序的进一步操作是单独通过使用内部存储器 104 来完成。内部存储器 TLB 136 可为 RAM 中与内部存储器 104 分开的一片或为存储器中之一部份。 不过, 内部存储器转 译后备缓冲区 136 最好在 SRAM 中以降低整体功率。 图示于区块 304 的中止存取来源存储器 106 允许减少来源存储器 106 的耗电量。然后, 使来源存储器处于低功率模式, 如本技艺所 习知。例如, 这可用处理器 102 或处理器 108 或其它适当电源控制模块来完成。可将内部 存储器转译后备缓冲区 136 制作成为二元或 M 元查找树 (M-ary search tree)。可用基于 硬件的简单方法来查找该结构。M 元查找树可受益于广泛的 RAM 接口而减少查找时间。或 者, IM TLB 136 可为杂凑表 (hash table)。当处于仅内部存储器模式时, 内部存储器接口 110 藉由提供进入交易 (incoming transaction) 的地址来发出查找命令给 TLB。内部存储 器 TLB 136 查找其内容以及送回内部存储器 104 的对应地址。不过, 使用杂凑查找方法有 一个比较不合意的结果是杂凑表的碰撞 (collision)。此种碰撞可能造成长时间的查找以 及可能使表格的实际建构复杂化。因此, 查找树的办法可能比较合乎需要。
     再参考一致性存储器拷贝逻辑 124 中与其相关的复制写入请求及操作, 也参考图 4 至图 7。图 5 显示拷贝逻辑 134 的一个实施例, 其包含来源读取控制器 500、 耦合至该来源 读取控制器的搁置数据队列 502、 也耦合至该搁置数据队列及该来源读取控制器的拷贝读 取控制器 504、 耦合至该外部来源存储器接口 116 及拷贝写入控制器 508 和内部存储器接口 110 的输入请求路由器 506。输入请求路由器 506 处理在拷贝逻辑 134 外的请求, 例如来自 在拷贝逻辑 134 外之存储器客户端 128 至 130 的读取或写入请求, 以及使用适当总线 ( 例 如, 510 及 512) 提供读取响应。搁置数据队列 502 包含构造成为数据队列项目 516 的存储 器。每一数据队列项目含有表示读取数据 518、 备妥旗标 520、 来源地址 522、 目标地址 524 及读取丢弃旗标 526 的数据。
     再参考图 1、 图 4 及图 5, 描述一种用于由来源存储器 ( 例如, 外部存储器 ) 转移内 容至目标存储区或存储器 ( 例如, 内部存储器 104) 的方法。如区块 400 所示, 判断分页拷 贝工作队列 132 是否存在任何项目。例如, 这可用拷贝流引擎 138 来完成。如果分页拷贝 工作队列 132 中没有待完成的项目, 处理包含等待由来源存储器位置至目标位置搁置于分 页拷贝工作队列 132 的拷贝请求, 例如分页拷贝请求。这图示于区块 402。如果分页拷贝工 作队列 132 有分页拷贝请求, 该方法包含用例如退出队列 (dequeuing) 及队列的项目来处 理请求。分页拷贝工作队列 132 的项目可包含目标起始地址、 来源起始地址、 分页长度及步 距 (stride)。这图示于区块 404。此处理也可包含设定目标地址计数器为起始目标地址、 设定来源地址计数器为起始来源地址、 以及设定最终来源地址为起始来源地址加上分页长 度。 例如, 这可藉由让拷贝流引擎 138 设定这些计数器的数值于拷贝读取控制器 504 中。 除 了提及的项目信息以外, 若有需要, 该项目也可包含每个读取请求的读取数。
     如区块 406 所示, 该方法包含判断来源地址计数器是否等于最终来源地址计数 器。 这可用拷贝读取控制器 504 来完成。 如果来源地址计数器等于最终来源地址, 则该方法 包含, 如区块 408 所示, 等待搁置数据队列变空。一旦空了, 该方法包含, 如区块 410 所示, 更新拷贝工作队列 132。 这可在每当拷贝逻辑 134 通知拷贝完成时, 利用拷贝流引擎 138 来完成。也如区块 410 所示, 该方法包含用目标存储器中之分页的新位置更新来源存储器的 转译后备缓冲区。可用拷贝流引擎 138 或处理器 108 来完成此操作。
     再参考区块 406, 如果来源地址计数器不等于最终来源地址, 则该方法包含判断搁 置数据队列 520 是否没空位, 如区块 412 所示。如果搁置数据队列 502 没空位, 如区块 414 所示, 该方法包含等待搁置数据队列有空位。如果搁置数据队列 502 有空位, 如区块 416 所示, 该方法包含取得搁置数据队列的下一个空项目的编号, 例如队列写入槽编号 (queue write slot number)。这可由拷贝读取控制器 504 来完成。如区块 418 所示, 该方法包含 插入搁置数据队列 502 的队列项目, 其以已知的写入槽编号的数字标示, 来源地址必须等 于来源地址计数器, 目标地址必须等于目标地址计数器, 备妥旗标必须设定成无效, 以及读 取丢弃旗标设定成无效。如区块 420 所示, 该方法包含使来源地址计数器增加步距量以及 使目标地址计数器增加步距量。区块 418 及 420 可用例如拷贝流引擎 138 执行, 且更特别 的是用拷贝读取控制器 504。然后, 方法继续到区块 406。
     此外, 该方法包含如区块 422 所示, 在取得搁置数据队列的下一个空项目的编号 ( 写入槽编号 ) 后, 用若干参数发出读取请求给来源读取控制器 500。这些参数包含必须等 于来源地址计数器的读取地址、 步距及队列写入槽编号。如区块 424 所示, 该方法也包含等 待由来源存储器 106 返回的读取数据。例如, 这可用来源读取控制器 500 来完成。如区块 426 所示, 该方法包含针对一队列写入槽编号, 判断读取丢弃旗标是否有效。如果该读取丢 弃旗标有效, 该方法包含设定对应队列写入槽编号的备妥旗标为有效, 如区块 428 所示。不 过, 若是读取丢弃旗标无效, 该方法包含, 如区块 430 所示, 写入来自来源存储器的读取数 据至搁置数据队列中以队列写入槽编号识别之项目的读取数据栏。然后, 该方法继续到区 块 428。 请参考图 6, 描述一种在进行勾画图 4 的拷贝操作时维持来源及目标存储器中的 内容一致性的方法。如区块 600 所示, 一旦读取或写入请求从拷贝引擎 134 以外收到后, 如 区块 602 所示, 该方法包含判断该请求是否为读取请求。此判断可用输入请求路由器 506 来完成。若成立, 路由该读取请求至适当的存储器接口 ( 内部或者外部存储器接口 ), 如区 块 604 所示。在此实施例中, 所有的存储器存取请求都通过拷贝逻辑 134 以及用输入请求 路由器 506 检查以及拿地址位置与当下正被拷贝的区域做比较。
     输入请求路由器 506 拦截存储器写入请求, 如区块 606 所示, 在此该请求为写入请 求。输入请求路由器 506 拦截正被拷贝至内部目标存储区之外部存储区 ( 或来源区 ) 的存 储器写入请求。如果该写入请求的目标不是当下正被拷贝的区域, 则路由该写入请求至适 当的存储器接口, 如区块 608 所示。针对正从来源存储器拷贝至目标存储器的区域, 拦截 被拦截的存储器请求。因此, 如果写入请求的目标是当下正被拷贝的区域, 如区块 610 所 示, 则该方法包含将写入请求送到来源存储器, 亦即写入拷贝请求 162。同样地, 将原始写 入请求送到来源存储器。输入请求路由器 506 提供数据 550 给指示需要复制写入请求的拷 贝写入控制器 508。如区块 620 所示, 该方法包含一种飞行中操作一致性检查 (in flight operation coherence check), 其包含判断写入请求的地址是否等于搁置数据队列中其备 妥旗标设定为零之项目的来源地址。如果不等于, 则该方法包含, 如区块 622 所示, 用拷贝 写入控制器 508 将写入请求的拷贝送到目标存储器, 如 170 所示。
     如果写入请求的地址等于搁置数据队列中之项目的来源地址, 则该方法继续, 如
     区块 624 所示, 在此拷贝写入控制器识别搁置数据队列 502 内对应至写入操作之来源地址 的项目编号。如区块 626 所示, 该方法包含由拷贝写入控制器 508 执行将写入请求的数据 写到搁置数据队列中经识别之项目编号的读取数据栏。如区块 628 所示, 该方法包含拷贝 写入逻辑 508 经由搁置数据队列中经识别之项目编号的讯号 552 来设定读取丢弃旗标为有 效。同样地, 防止写入来源读取控制器写入搁置数据队列中之该项目。图 7 显示用于移除 搁置数据队列 502 之数据的一方法实施例, 在此实施例中, 可用拷贝写入逻辑 508 完成。如 区块 700 所示, 该方法包含等待直到搁置数据队列 502 中之项目有被设定为有效的备妥旗 标。如区块 702 所示, 该方法包含写入来自队列项目中备妥旗标为有效之读取数据栏的数 据至目标存储器。这可包含, 例如目标存储器写入要等于队列项目中备妥旗标为有效之目 标地址栏的地址。如区块 704 所示, 该方法包含标示该项目的备妥旗标为无效以及标示该 读取丢弃旗标为无效。然后, 每当搁置数据队列中有数据时, 可重复该方法。
     换言之, 在正常操作期间, 拷贝读取控制器 504 发出读取给来源存储器位置以及 使该请求在搁置数据队列 502 中排队, 其中将备妥旗标 520 设定成无效、 读取丢弃旗标 526 设定成无效。外部存储器 106 通常有长延迟 (long latency)。在延迟期后, 外部存储器接 口 116 送回发出读取请求的读取结果。来源读取控制器 500 写入由搁置数据队列项目之读 取操作送达的数据以及设定备妥旗标 520 为有效。拷贝写入控制器 508 发现搁置数据队列 中有备妥旗标为有效的项目, 而因此将在搁置队列之项目中的数据写入至目标存储器。 为了促进一致性, 拷贝读取控制器 504 发出读取给来源存储器位置以及使该请求 在搁置数据队列 520 中排队。 该外部存储器有长延迟, 如上述。 在数据从外部存储器回来之 前, 如果有新的写入操作送达以同一个存储器位置为目标的输入请求路由器 506, 则输入请 求路由器 506 复制此写入请求以及送到拷贝写入控制器 508 作为数据 550。拷贝写入控制 器 508 查找搁置数据队列 502 以及判断同一个位置有来自外部来源存储器的搁置读取。如 果搁置数据队列 520 中之项目的来源地址与复制写入请求的来源地址匹配, 拷贝写入控制 器 508 将复制写入请求含有的数据放入该项目的读取数据栏 518 以及也设定搁置数据队列 502 中之该项目的读取丢弃旗标 526 为有效, 使得当读取结果随后由来源存储器送达时, 它 不会触发过时数据 (stale data) 至搁置数据队列项目的写入。当外部存储器接口接收因 读取请求而产生的读取信息时, 只有在读取丢弃旗标 526 为无效时, 将读取数据写入搁置 数据队列。当外部存储器接口接收因读取请求而产生的读取信息时, 将备妥旗标设定成有 效, 而不管读取丢弃旗标 526 的数值为何。拷贝写入控制器发现搁置数据队列中备妥旗标 设定成有效的项目以及写入来自该搁置数据队列项目 ( 其备妥旗标 520 为有效 ) 的数据, 已确保不会有来自来源读取控制器的过时数据覆写搁置数据队列 520 的任何复制数据。此 时, 当前的项目不持有可被拷贝读取控制器 504 取得再利用的数据。同样地, 该拷贝写入逻 辑可操作成比较被拦截之存储器写入请求的地址与搁置数据队列中所有项目的地址以促 进拷贝一致性。搁置数据队列 520 暂时储存拷贝自外部或来源存储区的数据及表示项目直 到拷贝写入逻辑 508 能够由搁置数据队列 520 拷贝数据至目标存储区时的数据。与使用搁 置数据队列 502 作为一种缓冲器以暂时储存待拷贝数据的方式相反, 可使用将数据立即写 入目标存储器而不需暂时储存于搁置数据队列的方式, 但是仍然使用读取丢弃旗标。在可 促进一致性的替代方法中, 拷贝读取控制器 504 发出读取给来源存储器位置以及使该请求 在搁置数据队列 520 中排队。该外部存储器有长延迟, 如上述。在数据从外部存储器回来
     之前, 如果有新的写入操作送达以同一个存储器位置为目标的输入请求路由器 506, 输入请 求路由器 506 复制此写入请求以及送到拷贝写入控制器 508 作为数据 550 以及送到显示于 162 的来源存储器接口。然后, 拷贝写入控制器 508 送出复制写入 170 给目标或内部存储 器接口 110。拷贝写入控制器 508 也查找搁置数据队列 502 以及判断同一个位置有来自外 部来源存储器的搁置读取。拷贝写入控制器 508 设定搁置数据队列 502 中之该项目的读取 丢弃旗标 526 为有效, 使得当读取结果随后从来源存储器进来时, 它不会触发将过时数据 写入至目标存储器 104 的动作。当外部存储器接口接收因读取请求而产生的读取信息时, 将备妥旗标设定成有效, 而不管读取丢弃旗标 526 的数值为何。拷贝写入控制器发现搁置 数据队列中备妥旗标设定成有效以及读取丢弃旗标也设定成有效的项目。 这意谓已经完成 内部目标存储器的复制写入, 因此搁置数据队列中之项目的数据是过时的。 因此, 拷贝写入 控制器 508 丢弃搁置数据队列中之该项目的数据以及重设备妥及读取丢弃旗标 520 及 526。 此时, 当前项目不持有可被拷贝读取控制器 504 取得再利用的数据。同样地, 该拷贝写入逻 辑可操作成比较被拦截之存储器写入请求的地址与搁置数据队列中所有项目的地址以促 进拷贝一致性。搁置数据队列 520 暂时储存拷贝自外部或来源存储区的数据以及表示项目 直到拷贝写入逻辑 508 能够由搁置数据队列 520 拷贝数据至目标存储区时或者是能够丢弃 表示读取丢弃旗标 526 已设定而且备妥旗标 520 也已设定之项目的数据时的数据。 如上述, 拷贝写入逻辑 508 可操作成从该搁置数据队列判断对于来源存储器是否 有同一地址对应至基于产生该复制写入请求步骤之写入请求的一搁置读取请求, 若成立, 设定该项目的丢弃旗标为有效。
     该一致性存储器拷贝逻辑可操作成立即执行复制写入或拷贝写入逻辑将来自复 制写入的数据插入搁置数据队列。 此外, 在拷贝数据时, 拷贝包含在以下两种情况时从搁置 数据队列读出项目 : (a) 在备妥旗标有效、 丢弃旗标无效以及写入到目标存储区时, 或者是 (b) 在备妥旗标有效、 读取丢弃旗标有效时以及其中复制写入的内容已预先置入搁置数据 队列。
     也可使用仅部份内部存储器模式 (partial internal memory only mode), 在此例 如软件应用程序可能因为内部存储器太小而无法移动所有需要进入内部存储器的分页。 就 此情形而言, 藉由把使用最频繁的分页移入内部存储器仍可减少外部存储器使用率。在处 于此仅部份内部存储器模式时, 把经常被处理器 108 存取的存储器分页放入内部存储器。 这可减少处理器的存取延迟同时减少存取外部存储器的次数。同样地, 该方法可包含判断 哪些存储器分页比其它分页被处理器更频繁地存取, 例如, 这可使用在处理器 108 上执行 的软件以及拷贝使用更频繁的存储器分页至内部目标存储器来完成。此外, 该方法包含藉 由储存来自位于外部来源存储器之外部转译后备缓冲区的信息之子集来产生内部转译后 备缓冲区以及在查找外部 TLB 之前查找内部 TLB 来决定地址转译。可用数种方法完成虚拟 至实体的转译。选项之一是使用用于地址转译的外部存储器分页表。另一选项是使用内部 存储器转译后备缓冲区与外部存储器分页表两者。在使用此一选项时, 首先查找内部存储 器 TLB。如果内部存储器 TLB 不包含需要的转译, 则用外部存储器分页表来进行查找。
     在 CPU 上 执 行 的 软 件 模 块 可 用 基 于 用 例 (use case) 的 先 验 方 式 (apriori manner) 来识别内部存储器中为合适储存候选者的分页。或者, 动态分页历史缓冲器 ( 未 图示 ) 可放入存储器控制器区块 122 以识别及计数在给定时段内最常用的存储器分页。然
     后, 可用逻辑或执行中的软件模块 142 以用分页历史缓冲器的内容来发出拷贝操作给一致 性存储器拷贝逻辑。
     如果分页拷贝工作队列为循环缓冲器 (circular buffer) 会是有用的, 这使得若 需要的话可使用批次操作。在通知软件层之前, 该一致性存储器拷贝逻辑也可以顺序方式 拷贝数个分页。若需要, 也可并行进行拷贝多个分页以及取决于应用程序来执行丛发读取 (burst reads) 或丛发写入 (burst writes)。
     如前述, 用于重新分配存储器内容之方法包含下列步骤 : 提供存取外部来源存储 区的连续读取及写入, 同时拷贝外部来源存储区的数据, 例如, 此系藉由继续运行引起外部 来源存储区之存储器写入的当前应用程序。 当应用程序正在运行时, 该方法包含下列步骤 : 复制对于外部来源存储区的写入请求以产生复制写入请求。该方法包含下列步骤 : 执行该 复制写入请求以从该外部来源存储区拷贝内容至该内部目标存储区。 该方法也包含下列步 骤: 降低包含该外部存储区的外部存储器的功率以响应拷贝内容至该内部目标存储区的步 骤。本技艺一般技术人员会了解, 尽管此时以前描述了手持或可携式装置的示范具体实施 例, 然而本发明的具体实施例可包括例如笔记本计算机、 游戏机、 其它可携式装置 ( 例如, 可携式游戏系统 )、 桌上计算机、 工作站及服务器计算机等等。
     此外, 已知集成电路设计系统 ( 例如, 工作站 ) 是基于储存于计算机可读取存储 器 ( 例如但不受限于, CDROM、 RAM、 其它形式的 ROM、 硬盘、 分布式存储器等等 ) 上的可执行 指令而制作集成电路。可用任何适当语言表示这些指令, 例如但不受限于硬件描述符语言 (hardware descriptor language) 或其它适当语言。同样地, 用此类系统也可将描述于本 文的逻辑 ( 例如, 电路 ) 制作成集成电路。例如, 可制作集成电路用于使用储存于计算机可 读取媒体上的指令的显示器, 在执行这些指令时造成集成电路设计系统所制成的集成电路 可操作成向图像来源提供者指示广色域 RGB 指示信息及用于待接收于多刺激颜色空间的 广色域 RGB 颜色数据的广色域颜色格式定义信息 ; 从该图像来源提供者接收广色域确认信 息; 以及, 显示因应广色域 RGB 指示信息及格式定义信息而收到的广色域 RGB 颜色数据。也 可适当地产生具有可执行其它本文所述操作之逻辑的集成电路。
     已描述一种用以提供存储器内容一致性的新型 DMA 逻辑及方法作为存储器拷贝 操作之一部份。以上提出的详细说明及描述于本文的实施例仅供图解说明而非限制。因 此, 希望本发明涵盖落入以上所揭示的基本原理及以下权利要求书的精神及范畴内的任何 及所有修改、 变异或等价陈述。

以复制写入请求用于一致性存储器拷贝的方法及设备.pdf_第1页
第1页 / 共18页
以复制写入请求用于一致性存储器拷贝的方法及设备.pdf_第2页
第2页 / 共18页
以复制写入请求用于一致性存储器拷贝的方法及设备.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《以复制写入请求用于一致性存储器拷贝的方法及设备.pdf》由会员分享,可在线阅读,更多相关《以复制写入请求用于一致性存储器拷贝的方法及设备.pdf(18页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102326153A43申请公布日20120118CN102326153ACN102326153A21申请号200980157214722申请日2009121612/340,12020081219USG06F12/02200601G06F1/32200601G06F12/1020060171申请人ATI技术无限责任公司地址加拿大安大略省72发明人SM加德拉布74专利代理机构北京戈程知识产权代理有限公司11314代理人程伟王锦阳54发明名称以复制写入请求用于一致性存储器拷贝的方法及设备57摘要一致性存储器拷贝逻辑可操作成从来源存储器位置拷贝数据至目标存储器位置以及复制对于来源存。

2、储区的写入请求以产生复制写入请求。一致性存储器拷贝逻辑也可操作成执行复制写入请求以从外部存储区拷贝内容至目标存储区。在内部存储器正被使用时,则可降低来源存储器的功率以节省电力。因此,一种“硬件存储器移动器”不需要使用任何复杂的软件同步并且在存储器移动期间不会导致任何服务中断。该一致性存储器拷贝逻辑以对于应用程序软件及使用者是透明的方式,重新分配例如由外部存储器至芯片内之内部存储器的应用存储器空间。本发明也提出数种对应的方法。30优先权数据85PCT申请进入国家阶段日2011081986PCT申请的申请数据PCT/CA2009/0018552009121687PCT申请的公布数据WO2010/0。

3、69071EN2010062451INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书9页附图5页CN102326166A1/3页21一种用于重新分配存储器内容的方法,其包含下列步骤从一存储器位置拷贝数据至另一存储器位置;复制对于来源存储区的写入请求以产生复制写入请求;以及执行该复制写入请求以从该来源存储区拷贝内容至该目标存储区。2如权利要求1所述的方法,其中该来源存储器为外部存储器,以及其中该目标存储器为内部存储器,以及其中该方法包含下列步骤通过储存信息的子集或修改子集至内部转译后备缓冲区来产生该内部转译后备缓冲区,该信息来自位于含有数个实体地址的该外部存储器的外部。

4、转译后备缓冲区;对于该目标存储区的地址转译,只使用该内部转译后备缓冲区;中止对于该来源存储器的存取;以及通过使该来源存储器处于低功率模式来减少该来源存储器的耗电量。3如权利要求2所述的方法,其中使该来源存储器处于低功率模式的步骤包含下列步骤使该来源存储器处于自刷新模式或将该来源存储器的电源移除。4如权利要求1所述的方法,其包含下列步骤判断哪些存储器分页比其它分页被处理器更频繁地存取;拷贝这些使用更频繁的存储器分页至内部目标存储器;以及通过储存信息的子集或修改子集来产生内部转译后备缓冲区,该信息来自位于含有数个实体地址的该外部来源存储器的外部转译后备缓冲区;在查找该外部转译后备缓冲区之前,查找该。

5、内部转译后备缓冲区以决定地址转译。5如权利要求1所述的方法,其包含下列步骤判断对于该来源存储器是否有同一地址对应至基于产生该复制写入请求步骤的写入请求的搁置读取请求;以及若成立,设定该项目的丢弃旗标为有效。6如权利要求5所述的方法,其包含下列步骤立即执行该复制写入。7如权利要求5所述的方法,其包含下列步骤将来自该复制写入的数据插入该搁置数据队列。8如权利要求1所述的方法,其中该拷贝步骤包含下列步骤从一搁置数据队列读取一项目,A在备妥旗标有效、丢弃旗标无效以及写入到该目标存储区时,或者是B在该备妥旗标有效、读取丢弃旗标有效且其中该复制写入的内容已预先置入该搁置数据队列时。9一种用于重新分配存储器。

6、内容的方法,其包含下列步骤通过以下步骤来提供存取外部来源存储区的连续读取及写入以及从该外部来源存储区拷贝数据至内部目标存储区继续运行对于该外部来源存储区引起存储器写入的当前应用程序;复制对于该来源存储区的该写入请求以产生复制写入请求;以及执行该复制写入请求以确保来自该来源存储区的内容与该目标存储区的内容相同;以及降低含有该外部存储区的该外部存储器的功率以响应拷贝内容至该内部目标存储区的步骤。权利要求书CN102326153ACN102326166A2/3页310如权利要求9所述的方法,其包含下列步骤在减少该外部存储器的耗电量之前,通过储存整个转译后备缓冲区信息的子集或修改子集至内部转译后备缓冲。

7、区来产生该内部转译后备缓冲区,该整个转译后备缓冲区信息位于含有数个实体地址的该外部来源存储器中。11如权利要求10所述的方法,其中在降低该外部存储器的功率之前产生该内部转译后备缓冲区的步骤包含下列步骤储存该实体地址的子集作为硬件查找树或杂凑表的至少一者。12一种用于重新分配存储器内容的方法,其包含下列步骤从外部存储器转移操作至芯片的内部存储器;在降低该外部存储器的功率之前,通过储存信息的子集或修改子集至内部转译后备缓冲区来产生该内部转译后备缓冲区,该信息在位于含有数个实体地址的该外部来源存储器的整个转译后备缓冲区TLB中;以及降低该外部存储器的功率。13如权利要求12所述的方法,其中在降低该外。

8、部存储器的功率之前产生该内部转译后备缓冲区的步骤包含下列步骤储存该实体地址的子集或修改子集作为硬件查找树或杂凑表中的至少一者。14一种集成电路,其包含一致性存储器拷贝逻辑,其可操作成从一来源存储区拷贝数据至一目标存储区,以及可操作成复制进入写入请求至来源存储区以产生复制写入请求;以及执行该复制写入请求以使该来源存储区及该目标存储区的内容同步。15如权利要求14所述的集成电路,其中该一致性存储器拷贝逻辑包含输入请求路由器逻辑与拷贝写入逻辑,该输入请求路由器逻辑可操作成拦截对于来源存储器且正被拷贝至该目标存储器的目标存储区的存储器写入请求,以及该拷贝写入逻辑可操作成比较被拦截的该存储器写入请求的地。

9、址与在搁置数据队列中的项目以促进拷贝一致性。16如权利要求15所述的集成电路,其中该搁置数据队列暂时储存待拷贝自该来源存储区的数据以及至少暂时储存表示该搁置数据队列中的项目备妥被拷贝至该目标存储器的数据及表示项目已被拷贝至该目标存储区的数据。17如权利要求14所述的集成电路,其包含储存信息的子集或修改子集的内部转译后备缓冲区,该信息来自位于含有数个实体地址的该外部来源存储器的外部转译后备缓冲区,以及包含使用该内部转译后备缓冲区转译只储存于该内部存储器的分页的实体地址及虚拟地址的存储器接口逻辑。18如权利要求14所述的集成电路,其中该一致性存储器拷贝逻辑包含含有搁置数据队列的拷贝逻辑、可操作地耦。

10、合至该搁置数据队列的拷贝写入逻辑,其中该拷贝写入逻辑可操作成从该搁置数据队列判断对于来源存储器是否有同一地址对应至基于产生该复制写入请求步骤的写入请求的搁置读取请求;以及若成立,设定该项目的丢弃旗标为有效。19如权利要求18所述的集成电路,其中该一致性存储器拷贝逻辑可操作成立即执行该复制写入。权利要求书CN102326153ACN102326166A3/3页420如权利要求18所述的集成电路,其包含可操作成将来自该复制写入的数据插入该搁置数据队列的拷贝写入逻辑。21如权利要求14所述的集成电路,其中该拷贝步骤包含下列步骤从一搁置数据队列读取一项目,A在备妥旗标为有效、丢弃旗标无效以及写入到该目。

11、标存储区时,或者是B在该备妥旗标有效、读取丢弃旗标有效且其中该复制写入的内容已预先置入该搁置数据队列时。22一种包含如权利要求14所述的集成电路的装置。23一种装置,其包含集成电路,包含内部存储器于其上;外部存储器,位在该集成电路外;逻辑,其可操作成从该外部存储器转移操作至该内部存储器,以及在降低该外部存储器的功率之前,可操作成通过储存信息的子集或修改子集至内部转译后备缓冲区来产生该内部转译后备缓冲区,该信息在位于含有数个实体地址的该外部来源存储器的整个转译后备缓冲区中;以及,可操作成降低该外部存储器的功率。24如权利要求23所述的装置,其中该逻辑包含含有输入请求路由器逻辑及拷贝写入逻辑的一致。

12、性存储器拷贝逻辑,该输入请求路由器逻辑可操作成拦截对于来源存储器且正被拷贝至该目标存储区的存储器写入请求,以及该拷贝写入逻辑可操作成比较被拦截的该存储器写入请求的地址与搁置数据队列中的项目以促进拷贝一致性。25如权利要求24所述的装置,其中该搁置数据队列暂时储存待拷贝自该来源存储区的数据以及至少暂时储存表示该搁置数据队列中的项目备妥被拷贝至该目标存储器的数据及表示项目已被拷贝至该目标存储区的数据。26如权利要求24所述的装置,其中该拷贝写入逻辑可操作成判断对于该来源存储器是否有同一地址对应至基于产生该复制写入请求步骤的写入请求的搁置读取请求;以及若成立,设定该项目的丢弃旗标为有效。27一种计算。

13、机可读取媒体,其包含储存于其上的数个可执行指令,在执行这些指令时造成集成电路设计系统所制成的集成电路可操作成通过下列步骤来重新分配存储器内容从一存储器位置拷贝数据至另一存储器位置;复制对于来源存储区的写入请求以产生复制写入请求;以及执行该复制写入请求以从该来源存储区拷贝内容至该目标存储区。28如权利要求27所述的计算机可读取媒体,其中这些可执行指令为硬件描述符语言指令。权利要求书CN102326153ACN102326166A1/9页5以复制写入请求用于一致性存储器拷贝的方法及设备技术领域0001本揭示内容大体有关于用以由来源存储器重新分配存储器内容至目标存储器的方法,且更特别的是,有关于数种。

14、用于重新分配在集成电路例如,芯片外的外部存储器与位于芯片上的内部存储器之间的存储器内容的方法及设备。背景技术0002手持装置例如,智能手机、多媒体播放器、数字音频播放器及其它手持装置需要改良电池寿命。手持芯片位于手持装置里的集成电路的低功率操作对于长电池寿命是不可或缺的。在这些芯片启动应用程序例如,音频播放应用程序时,尝试分配存储器空间给在内部芯片存储器结构里的应用程序。如果内部存储器结构已经被其它应用程序使用,该芯片分配存储器给在芯片外的新的应用程序存储器结构。不过,使用外部存储器会增加手持装置的电力消耗而缩短电池寿命。0003在芯片上的内部存储器有空时,当前手持装置通常无法让应用程序由外部。

15、存储器移到内部存储器,因为基于软件的存储器分页MEMORYPAGE迁移既复杂又不可靠。因此,即使有内部存储器结构可供使用,该装置通常继续使用外部存储器。这会导致不必要的电力消耗。0004使用外部存储器需要会耗费额外电力的外部通信针脚。如果手持装置进入低功率模式以及正在执行的应用程序可驻留在内部存储器中,则需要较少的操作,然而该应用程序通常是驻留在外部存储器。其它系统,例如,可能允许正在执行的所有应用程序由外部存储器移到内部存储器或者在移动最大数目的应用程序的同时允许某个最小数目的应用程序从外部存储器开始执行。不过,这些通常利用软件同步与转移操作。0005此外,在移动应用程序时,操作系统中止应用。

16、程序并且将数据由外部存储器移到内部存储器。不过,中止应用程序会中断使用者服务因而是不可接受的。0006企图使应用程序于来源及目标存储器例如,外部存储器与内部存储器之间移动的一个已知解决方案是以软件为基础的。它们通常需要复杂的软件同步技术。以软件为基础的转移操作造成应用程序在转移应用程序期间完全或部份无法使用。不论持续时间多短,这种中断对于多媒体应用程序例如,音频及视讯播放是不可接受的。0007使信息由外部存储器移到内部存储器的已知硬件技术可包含,例如已知由来源存储器拷贝数据至目标存储器的“存储器拷贝引擎”或直接存储器存取拷贝引擎DMA引擎。此类拷贝引擎的问题是来源存储器中已拷贝至目标存储器之特。

17、定位置的任何更新不会反映至目标存储器。因此,没有实施存储器一致性。0008在直接存储器存取引擎操作时,必需中止该应用程序以便中断服务。此外,直接存储器存取引擎通常不晓得虚拟地址。例如在主机处理器上执行的软件应用程序会告诉直接存储器存取拷贝引擎要移动数据。该软件应用程序必须请求虚拟至实体存储器的转译。因此,期望能有一种基于硬件的系统在进行由来源存储器拷贝或移动内容至目标存储器时允许应用程序继续运行。说明书CN102326153ACN102326166A2/9页6附图说明0009由下文伴随以下附图的说明可更加明白本发明,图中类似的组件用相同的组件符号表示。0010图1的方块图根据陈述于本揭示内容之。

18、一实施例图示集成电路之一部份,其系包含可操作以移动存储器内容的逻辑;0011图2的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容之方法的一实施例;0012图3的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容之方法的一实施例;0013图4的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容之方法的一实施例;0014图5的方块图根据陈述于本揭示内容之一实施例图示陈述于第1图的一拷贝引擎实施例;0015图6的流程图根据陈述于本揭示内容之一实施例图示用于重新分配存储器内容之方法的一实施例;以及0016图7的流程图根据陈述于本揭示内容之一实施例图示用于重新分配。

19、存储器内容之方法的一实施例。具体实施方式0017一般而言,作为存储器拷贝处理的一部份,存储器拷贝逻辑可操作成复制对于来源存储区的写入请求来产生复制写入请求。一致性存储器拷贝逻辑也可操作成执行该复制写入请求来确保写入请求更新来源存储器的任何内容在目标存储器也被更新。在内部存储器正被使用时,则可降低来源存储器的功率以节省电力。因此,一种“硬件存储器移动器”不需要使用任何复杂的软件同步以及在存储器移动期间不会导致任何服务中断。该一致性存储器拷贝逻辑以对于应用软件及使用者是透明的方式,重新分配例如由外部存储器至芯片内之内部存储器的应用存储器空间。在由来源区移动数据至目标区时提供一致性的另一实施例包含使。

20、用一致性存储器拷贝引擎把存储器中之一区的内容重新分配到同一实体存储器例如,非内部及外部存储器内的新位置区域。这允许重整装置在正常操作期间可能已支离破碎的存储区。熟谙此艺者会明白其它的优点。0018该一致性存储器拷贝逻辑可包含输入请求路由器逻辑其拦截对于正被拷贝至目标存储区之来源存储区的存储器写入请求,以及拷贝写入控制器逻辑其可操作成比较被拦截的存储器写入请求的地址与搁置数据队列PENDINGDATAQUEUE的项目ENTRY以促进拷贝一致性。该搁置数据队列暂时储存待拷贝自外部存储器来源区的数据及表示搁置数据队列中之项目备妥被拷贝至内部存储器的数据。搁置数据队列的每个项目暂时储存由来源存储器读出。

21、但是尚未写入目标存储器的数据片段。该搁置数据队列也包含与正被拷贝至目标存储区之数据片段关联的数据。此类关联数据可包含来源及目标存储器中之数据片段的实体地址,指示此数据片段备妥被写入目标存储器的旗标,以及指示应丢弃此数据片段的丢弃旗标DISCARDFLAG。说明书CN102326153ACN102326166A3/9页70019在另一实施例中,该一致性存储器拷贝逻辑包含内部转译后备缓冲区INTERNALTRANSLATIONLOOKASIDEBUFFER用以储存来自位在外部或来源存储器之外部转译后备缓冲区中含有实体地址的信息之子集例如,少于所有分页的所有转译或修改子集。外部TLB经修改成可指向内。

22、部位置而不是外部位置。存储器控制器区块存储器接口116、110使用内部转译后备缓冲区136只转译储存于内部存储器之分页中的实体地址及虚拟地址。0020以下也描述包含集成电路的手持装置与对应方法。0021图1显示手持装置100例如但不受限于,智能手机中之一部份的实施例,然而图中不包括标准组件,例如显示器、无线蜂巢式子系统、相机及其它习知组件。图1的处理器102例如,图形处理单元,例如但不受限于微处理器集成电路102包含为处理器102之内部存储器的目标存储器104。图中也有例如可为动态RAMDRAM的来源存储器106与可为SRAM的目标存储器107,不过应了解到也可使用任何适当的存储器类型。来源存。

23、储器106图示成为在集成电路102外部的外部存储器。手持装置100也可包含可在同一个集成电路或个别集成电路上的另一处理器108例如,中央处理核心。处理器102包含经由适当总线112与内部存储器104通信的内部存储器接口110,以及也包含经由适当总线118与外部存储器106通信的外部存储器接口116。仅为了图解说明,也在椭圆形内显示经由总线112及总线118来通信的个别通信路径。处理器102也包含作为存储器控制器区块122之一部份或个别区块的一致性存储器拷贝逻辑124、复用仲裁逻辑MULTIPLEXINGARBITRATIONLOGIC126、以及与其它客户端及处理器102内之电路通信的一个或多。

24、个存储器客户端128、130。0022一致性存储器拷贝逻辑124为包含分页拷贝工作队列PAGECOPYWORKQUEUE132、拷贝逻辑134、视需要之内部存储器转译后备缓冲区136及拷贝流引擎COPYFLOWENGINE138的硬件逻辑。一致性存储器拷贝逻辑124经由适当通信总线140与处理器108通信。如以下的进一步描述,处理器108可包含适当程序,在执行它时可用作操作成填入POPULATE分页拷贝工作队列132的逻辑142。如本技艺所习知,复用及仲裁逻辑126经由适当总线150、152与各种客户端接口128至130通信。0023拷贝引擎134可操作地经耦合成可通过适当链路154与分页拷贝。

25、工作队列132通信,以及通过适当链路156与拷贝流引擎138通信。拷贝流引擎138例如,状态机通过适当通信链路158与内部存储器TLB136通信,以及通过链路160与分页拷贝工作队列通信。内部存储器TLB136通过适当通信链路999与不同的存储器接口内部或外部的通信。0024也参考图2,操作时,一致性存储器拷贝逻辑124可操作成由一存储器位置拷贝数据至另一存储器位置参考区块204及206。仅供举例说明,拷贝可包含依序地用读取请求182来读取来源存储区164的数据片段以及用写入请求184写入数据片段于目标存储区180。这图示于区块204、206。一致性存储器拷贝逻辑124也可操作成复制来自存储器。

26、客户端130128中任一者的写入请求162,其指示写入来源存储器106,例如写入区域164例如,可为存储器中的分页,以产生复制写入请求170以写入在目标存储器104中的对应目标存储区180。这图示于区块200。直线163表示读取。如区块202所示,一致性存储器拷贝逻辑124也可操作成执行复制写入请求170以由来源存储器106拷贝内容至目标存储器104中的目标存储区180。链路171表示正常操作期间的读取及写入。对于所有的读取及说明书CN102326153ACN102326166A4/9页8写入请求,拷贝逻辑134也被称作拷贝引擎可操作虚拟地址图1中以VA表示或者是实体地址图2中以PA表示。如果。

27、存储器客户端128至130或分页拷贝工作队列132提供实体地址,则拷贝逻辑134使用它们所提供的实体地址。如果存储器客户端128至130或分页拷贝工作队列132提供虚拟地址,则拷贝逻辑134会把虚拟地址转译成实体地址。熟谙此艺者会晓得有许多已开发及了解的方法可用于存储器之虚拟及实体地址的转译。此外,直线186显示可读取来源存储器之信息的存储器客户端请求以及来源存储器106用直线188显示作为客户端读取之参考依据的信息。在此实施例中,一致性存储器拷贝逻辑124操作成提供存取外部存储器106的连续读取及写入同时利用它的拷贝功能并且产生及使用复制写入请求170,从来源区拷贝数据片段至目标存储区180。

28、,其中这些片段的总合形成一个或多个存储器分页。在不必中止正在处理器108上执行之应用的操作下,可完成此事。0025为了进行存储器分页由来源存储器106至目标存储器104的一致性拷贝,一致性存储器拷贝逻辑124例如经由分页拷贝工作队列132接收来自正在处理器108上执行之应用程序的命令。存储器分页可具有虚拟基地址,图中为对应至实体基地址PA1的VA1。或者,处理器108可提供该分页的实体基地址PA1。处理器108也可提供待通过分页拷贝工作队列132来拷贝的数个分页的基地址VA11,VA111、等等或PA11,PA111等等。对于每个待拷贝自来源存储器的存储器分页,处理器108也提供目标存储区的基。

29、地址,在此一致性拷贝引擎会拷贝当下位于来源存储器的数据至该基地址。目标存储区的基地址可为实体地址PA2或者是虚拟地址VA2。通过分页拷贝工作队列132内的队列或通过基于缓存器的简单命令,也可发生此命令的接收。拷贝流引擎138读取分页拷贝工作队列132的内容以及通过适当总线156发出拷贝命令给拷贝逻辑134。拷贝逻辑134拷贝基地址为PA1的分页以及将它写到基底为PA2的分页同时在拷贝操作期间维持一致性。在拷贝操作期间应该能以对于所有客户端区块是透明的方式来维持一致性。下文有进一步的说明。0026除了或视需要地,也可利用可在虚拟地址及实体地址之间转译或可在一实体地址及另一实体地址之间转译的内部存。

30、储器转译后备缓冲区136的维护MAINTENANCE。例如,在虚拟至实体分页转译表储存于外部或来源存储器时会遇到困难是因为外部存储器必须仍可存取存储器存取单元用以将虚拟地址转译成实体地址,甚至是在要求的分页被转移到内部存储器之后。在处于仅内部存储器模式IMOM时,利用只针对内部存储器分页的内部存储器TLB的维护。0027请参考图3,维护内部存储器TLB及降低功率以允许利用内部存储器分页的方法,如区块300所示,包含由外部存储器或来源存储器转移操作至处理器102的内部存储器。如区块302所示,此方法包含在降低来源存储器106的功率之前,藉由储存例如,拷贝信息的子集至内部转译后备缓冲区来产生该内部。

31、转译后备缓冲区136,该信息来自位于含有实体地址之外部来源存储器的整个转译后备缓冲区。例如,这可用拷贝逻辑134来完成。只对于储存于内部存储器的分页,存储器接口110、118用内部TLB136转译来自存储器客户端128至130的地址。这可在执行时当作逻辑142之软件模块的控制下完成。在进入仅内部存储器模式之前,内部存储器TLB可用逻辑142构成。内部存储器TLB的实体大小为内部存储器大小的函数,但是通常比内部存储器的大小小一个数量级。因此,内部存储器TLB136为允许关电源从而节省电力可藉由切断外部存储器106来提供的可扩展解决方案。说明书CN102326153ACN102326166A5/9。

32、页90028如区块304所示,该方法则可包含中止外部存储器106的存取以降低功率。使来源存储器处于低功率模式包含使来源存储器处于自刷新模式SELFREFRESHMODE或将来源存储器的电源移除。0029应用程序的进一步操作是单独通过使用内部存储器104来完成。内部存储器TLB136可为RAM中与内部存储器104分开的一片或为存储器中之一部份。不过,内部存储器转译后备缓冲区136最好在SRAM中以降低整体功率。图示于区块304的中止存取来源存储器106允许减少来源存储器106的耗电量。然后,使来源存储器处于低功率模式,如本技艺所习知。例如,这可用处理器102或处理器108或其它适当电源控制模块来。

33、完成。可将内部存储器转译后备缓冲区136制作成为二元或M元查找树MARYSEARCHTREE。可用基于硬件的简单方法来查找该结构。M元查找树可受益于广泛的RAM接口而减少查找时间。或者,IMTLB136可为杂凑表HASHTABLE。当处于仅内部存储器模式时,内部存储器接口110藉由提供进入交易INCOMINGTRANSACTION的地址来发出查找命令给TLB。内部存储器TLB136查找其内容以及送回内部存储器104的对应地址。不过,使用杂凑查找方法有一个比较不合意的结果是杂凑表的碰撞COLLISION。此种碰撞可能造成长时间的查找以及可能使表格的实际建构复杂化。因此,查找树的办法可能比较合乎需。

34、要。0030再参考一致性存储器拷贝逻辑124中与其相关的复制写入请求及操作,也参考图4至图7。图5显示拷贝逻辑134的一个实施例,其包含来源读取控制器500、耦合至该来源读取控制器的搁置数据队列502、也耦合至该搁置数据队列及该来源读取控制器的拷贝读取控制器504、耦合至该外部来源存储器接口116及拷贝写入控制器508和内部存储器接口110的输入请求路由器506。输入请求路由器506处理在拷贝逻辑134外的请求,例如来自在拷贝逻辑134外之存储器客户端128至130的读取或写入请求,以及使用适当总线例如,510及512提供读取响应。搁置数据队列502包含构造成为数据队列项目516的存储器。每一。

35、数据队列项目含有表示读取数据518、备妥旗标520、来源地址522、目标地址524及读取丢弃旗标526的数据。0031再参考图1、图4及图5,描述一种用于由来源存储器例如,外部存储器转移内容至目标存储区或存储器例如,内部存储器104的方法。如区块400所示,判断分页拷贝工作队列132是否存在任何项目。例如,这可用拷贝流引擎138来完成。如果分页拷贝工作队列132中没有待完成的项目,处理包含等待由来源存储器位置至目标位置搁置于分页拷贝工作队列132的拷贝请求,例如分页拷贝请求。这图示于区块402。如果分页拷贝工作队列132有分页拷贝请求,该方法包含用例如退出队列DEQUEUING及队列的项目来处。

36、理请求。分页拷贝工作队列132的项目可包含目标起始地址、来源起始地址、分页长度及步距STRIDE。这图示于区块404。此处理也可包含设定目标地址计数器为起始目标地址、设定来源地址计数器为起始来源地址、以及设定最终来源地址为起始来源地址加上分页长度。例如,这可藉由让拷贝流引擎138设定这些计数器的数值于拷贝读取控制器504中。除了提及的项目信息以外,若有需要,该项目也可包含每个读取请求的读取数。0032如区块406所示,该方法包含判断来源地址计数器是否等于最终来源地址计数器。这可用拷贝读取控制器504来完成。如果来源地址计数器等于最终来源地址,则该方法包含,如区块408所示,等待搁置数据队列变空。

37、。一旦空了,该方法包含,如区块410所示,更新拷贝工作队列132。这可在每当拷贝逻辑134通知拷贝完成时,利用拷贝流引擎138来说明书CN102326153ACN102326166A6/9页10完成。也如区块410所示,该方法包含用目标存储器中之分页的新位置更新来源存储器的转译后备缓冲区。可用拷贝流引擎138或处理器108来完成此操作。0033再参考区块406,如果来源地址计数器不等于最终来源地址,则该方法包含判断搁置数据队列520是否没空位,如区块412所示。如果搁置数据队列502没空位,如区块414所示,该方法包含等待搁置数据队列有空位。如果搁置数据队列502有空位,如区块416所示,该方。

38、法包含取得搁置数据队列的下一个空项目的编号,例如队列写入槽编号QUEUEWRITESLOTNUMBER。这可由拷贝读取控制器504来完成。如区块418所示,该方法包含插入搁置数据队列502的队列项目,其以已知的写入槽编号的数字标示,来源地址必须等于来源地址计数器,目标地址必须等于目标地址计数器,备妥旗标必须设定成无效,以及读取丢弃旗标设定成无效。如区块420所示,该方法包含使来源地址计数器增加步距量以及使目标地址计数器增加步距量。区块418及420可用例如拷贝流引擎138执行,且更特别的是用拷贝读取控制器504。然后,方法继续到区块406。0034此外,该方法包含如区块422所示,在取得搁置数。

39、据队列的下一个空项目的编号写入槽编号后,用若干参数发出读取请求给来源读取控制器500。这些参数包含必须等于来源地址计数器的读取地址、步距及队列写入槽编号。如区块424所示,该方法也包含等待由来源存储器106返回的读取数据。例如,这可用来源读取控制器500来完成。如区块426所示,该方法包含针对一队列写入槽编号,判断读取丢弃旗标是否有效。如果该读取丢弃旗标有效,该方法包含设定对应队列写入槽编号的备妥旗标为有效,如区块428所示。不过,若是读取丢弃旗标无效,该方法包含,如区块430所示,写入来自来源存储器的读取数据至搁置数据队列中以队列写入槽编号识别之项目的读取数据栏。然后,该方法继续到区块428。

40、。0035请参考图6,描述一种在进行勾画图4的拷贝操作时维持来源及目标存储器中的内容一致性的方法。如区块600所示,一旦读取或写入请求从拷贝引擎134以外收到后,如区块602所示,该方法包含判断该请求是否为读取请求。此判断可用输入请求路由器506来完成。若成立,路由该读取请求至适当的存储器接口内部或者外部存储器接口,如区块604所示。在此实施例中,所有的存储器存取请求都通过拷贝逻辑134以及用输入请求路由器506检查以及拿地址位置与当下正被拷贝的区域做比较。0036输入请求路由器506拦截存储器写入请求,如区块606所示,在此该请求为写入请求。输入请求路由器506拦截正被拷贝至内部目标存储区之。

41、外部存储区或来源区的存储器写入请求。如果该写入请求的目标不是当下正被拷贝的区域,则路由该写入请求至适当的存储器接口,如区块608所示。针对正从来源存储器拷贝至目标存储器的区域,拦截被拦截的存储器请求。因此,如果写入请求的目标是当下正被拷贝的区域,如区块610所示,则该方法包含将写入请求送到来源存储器,亦即写入拷贝请求162。同样地,将原始写入请求送到来源存储器。输入请求路由器506提供数据550给指示需要复制写入请求的拷贝写入控制器508。如区块620所示,该方法包含一种飞行中操作一致性检查INFLIGHTOPERATIONCOHERENCECHECK,其包含判断写入请求的地址是否等于搁置数据。

42、队列中其备妥旗标设定为零之项目的来源地址。如果不等于,则该方法包含,如区块622所示,用拷贝写入控制器508将写入请求的拷贝送到目标存储器,如170所示。0037如果写入请求的地址等于搁置数据队列中之项目的来源地址,则该方法继续,如说明书CN102326153ACN102326166A7/9页11区块624所示,在此拷贝写入控制器识别搁置数据队列502内对应至写入操作之来源地址的项目编号。如区块626所示,该方法包含由拷贝写入控制器508执行将写入请求的数据写到搁置数据队列中经识别之项目编号的读取数据栏。如区块628所示,该方法包含拷贝写入逻辑508经由搁置数据队列中经识别之项目编号的讯号55。

43、2来设定读取丢弃旗标为有效。同样地,防止写入来源读取控制器写入搁置数据队列中之该项目。图7显示用于移除搁置数据队列502之数据的一方法实施例,在此实施例中,可用拷贝写入逻辑508完成。如区块700所示,该方法包含等待直到搁置数据队列502中之项目有被设定为有效的备妥旗标。如区块702所示,该方法包含写入来自队列项目中备妥旗标为有效之读取数据栏的数据至目标存储器。这可包含,例如目标存储器写入要等于队列项目中备妥旗标为有效之目标地址栏的地址。如区块704所示,该方法包含标示该项目的备妥旗标为无效以及标示该读取丢弃旗标为无效。然后,每当搁置数据队列中有数据时,可重复该方法。0038换言之,在正常操作。

44、期间,拷贝读取控制器504发出读取给来源存储器位置以及使该请求在搁置数据队列502中排队,其中将备妥旗标520设定成无效、读取丢弃旗标526设定成无效。外部存储器106通常有长延迟LONGLATENCY。在延迟期后,外部存储器接口116送回发出读取请求的读取结果。来源读取控制器500写入由搁置数据队列项目之读取操作送达的数据以及设定备妥旗标520为有效。拷贝写入控制器508发现搁置数据队列中有备妥旗标为有效的项目,而因此将在搁置队列之项目中的数据写入至目标存储器。0039为了促进一致性,拷贝读取控制器504发出读取给来源存储器位置以及使该请求在搁置数据队列520中排队。该外部存储器有长延迟,如。

45、上述。在数据从外部存储器回来之前,如果有新的写入操作送达以同一个存储器位置为目标的输入请求路由器506,则输入请求路由器506复制此写入请求以及送到拷贝写入控制器508作为数据550。拷贝写入控制器508查找搁置数据队列502以及判断同一个位置有来自外部来源存储器的搁置读取。如果搁置数据队列520中之项目的来源地址与复制写入请求的来源地址匹配,拷贝写入控制器508将复制写入请求含有的数据放入该项目的读取数据栏518以及也设定搁置数据队列502中之该项目的读取丢弃旗标526为有效,使得当读取结果随后由来源存储器送达时,它不会触发过时数据STALEDATA至搁置数据队列项目的写入。当外部存储器接口。

46、接收因读取请求而产生的读取信息时,只有在读取丢弃旗标526为无效时,将读取数据写入搁置数据队列。当外部存储器接口接收因读取请求而产生的读取信息时,将备妥旗标设定成有效,而不管读取丢弃旗标526的数值为何。拷贝写入控制器发现搁置数据队列中备妥旗标设定成有效的项目以及写入来自该搁置数据队列项目其备妥旗标520为有效的数据,已确保不会有来自来源读取控制器的过时数据覆写搁置数据队列520的任何复制数据。此时,当前的项目不持有可被拷贝读取控制器504取得再利用的数据。同样地,该拷贝写入逻辑可操作成比较被拦截之存储器写入请求的地址与搁置数据队列中所有项目的地址以促进拷贝一致性。搁置数据队列520暂时储存拷。

47、贝自外部或来源存储区的数据及表示项目直到拷贝写入逻辑508能够由搁置数据队列520拷贝数据至目标存储区时的数据。与使用搁置数据队列502作为一种缓冲器以暂时储存待拷贝数据的方式相反,可使用将数据立即写入目标存储器而不需暂时储存于搁置数据队列的方式,但是仍然使用读取丢弃旗标。在可促进一致性的替代方法中,拷贝读取控制器504发出读取给来源存储器位置以及使该请求在搁置数据队列520中排队。该外部存储器有长延迟,如上述。在数据从外部存储器回来说明书CN102326153ACN102326166A8/9页12之前,如果有新的写入操作送达以同一个存储器位置为目标的输入请求路由器506,输入请求路由器506。

48、复制此写入请求以及送到拷贝写入控制器508作为数据550以及送到显示于162的来源存储器接口。然后,拷贝写入控制器508送出复制写入170给目标或内部存储器接口110。拷贝写入控制器508也查找搁置数据队列502以及判断同一个位置有来自外部来源存储器的搁置读取。拷贝写入控制器508设定搁置数据队列502中之该项目的读取丢弃旗标526为有效,使得当读取结果随后从来源存储器进来时,它不会触发将过时数据写入至目标存储器104的动作。当外部存储器接口接收因读取请求而产生的读取信息时,将备妥旗标设定成有效,而不管读取丢弃旗标526的数值为何。拷贝写入控制器发现搁置数据队列中备妥旗标设定成有效以及读取丢弃。

49、旗标也设定成有效的项目。这意谓已经完成内部目标存储器的复制写入,因此搁置数据队列中之项目的数据是过时的。因此,拷贝写入控制器508丢弃搁置数据队列中之该项目的数据以及重设备妥及读取丢弃旗标520及526。此时,当前项目不持有可被拷贝读取控制器504取得再利用的数据。同样地,该拷贝写入逻辑可操作成比较被拦截之存储器写入请求的地址与搁置数据队列中所有项目的地址以促进拷贝一致性。搁置数据队列520暂时储存拷贝自外部或来源存储区的数据以及表示项目直到拷贝写入逻辑508能够由搁置数据队列520拷贝数据至目标存储区时或者是能够丢弃表示读取丢弃旗标526已设定而且备妥旗标520也已设定之项目的数据时的数据。。

50、0040如上述,拷贝写入逻辑508可操作成从该搁置数据队列判断对于来源存储器是否有同一地址对应至基于产生该复制写入请求步骤之写入请求的一搁置读取请求,若成立,设定该项目的丢弃旗标为有效。0041该一致性存储器拷贝逻辑可操作成立即执行复制写入或拷贝写入逻辑将来自复制写入的数据插入搁置数据队列。此外,在拷贝数据时,拷贝包含在以下两种情况时从搁置数据队列读出项目A在备妥旗标有效、丢弃旗标无效以及写入到目标存储区时,或者是B在备妥旗标有效、读取丢弃旗标有效时以及其中复制写入的内容已预先置入搁置数据队列。0042也可使用仅部份内部存储器模式PARTIALINTERNALMEMORYONLYMODE,在此。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1