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