用于保护数字内容的装置和方法
【专利摘要】在本发明的一实施例中,一处理器包括内容存储逻辑以将数字内容解析成各部分并致使每个部分被存储到存储器的相应页中。该处理器还包括保护逻辑以接收具有存储器内的目的地地址的写指令,并且如果目的地地址与存储数字内容的一部分的存储器位置相关联,则擦除与该存储器位置相关联的页。如果目的地地址与未存储区数字内容中的任何部分的另一存储器位置相关联,则保护逻辑许可写指令的执行。描述并要求保护其他实施例。
【专利说明】用于保护数字内容的装置和方法
【技术领域】
[0001] 本发明的【技术领域】为数字内容的保护。
【背景技术】
[0002] 经加密的数字内容可能在解密以后易受攻击。例如,对经解密的数字内容的一部 分的盖写可能构成攻击。在攻击中,写入指令可能针对盖写数据类型指示符,该数据类型指 示符指示数据串中的随后的数据是元数据还是有效载荷数据。将数据类型指示符从对有效 载荷数据的指示盖写成对元数据的指示可能许可对有效载荷数据的未授权的访问。也就是 说,由于存储在数据类型指示符之后的位置处的数据被重新标记为元数据而不是有效载荷 数据,并且由于元数据通常是不受保护的,因此(未被正确标记的)有效载荷数据可能受到 可能包括盗窃有效载荷数据的未经授权的访问。
【专利附图】
【附图说明】
[0003] 图1是根据本发明实施例的系统的一部分的框图。
[0004] 图2是根据本发明实施例的另一系统的一部分的框图。
[0005] 图3是根据本发明一实施例的示出写入在存储器中的数字内容的框图。
[0006] 图4是根据本发明的实施例的保护数字内容的方法的流程图。
[0007] 图5是根据本发明的实施例的处理器核的框图。
[0008] 图6是根据本发明的实施例的处理器的框图。
[0009] 图7是根据本发明的实施例的多域处理器的框图。
[0010] 图8是根据本发明的实施例的包括多核的处理器的实施例的图示。
[0011] 图9是根据本发明的实施例的系统的框图。
[0012] 图10是根据本发明另一实施例的系统的框图。
【具体实施方式】
[0013] 例如在数字权项管理(DRM)回放期间,可以将安全增强处理器(SEP)用于安全内 容解密。内容可以被解密到隔离存储器区域(η?)中、即具有可内置于相关联的硬件中的 访问控制机制的专用存储器。頂R使用可以防止主处理器和恶意软件直接访问经解密的内 容,并且可以仅仅允许所选子系统(例如安全引擎和硬件解码器)访问存储在IMR中的内容。
[0014] 在解码器可以进行解码之前解码器可能需要关于受保护的压缩内容的信息。例 如,在解码器对压缩数据进行解码以前,可能需要关于片(slice)元数据和实际受保护内容 有效载荷的大小和位置的信息。这对例如"剪切和粘贴攻击"和"纯文本覆盖"之类的安全 漏洞开放了可能性。例如,由于数据被安全引擎解析时的攻击,整个经解密的数据(包括受 保护的有效载荷)可能被提供给主实体,因为安全引擎基于对报头信息的修改而错误地将 该数据解释成元数据。因此,受保护的有效载荷内容可能被主机中的流氓应用窃取。
[0015] 附加地,未经密码块对齐的较小分组可能作为来自内容提供者的纯文本材料到 达,并且主机可以向安全引擎指定该分组不需要解密。因此,攻击者可能将"经盖写的纯文 本部分"指定为不需要解密的内容。注意,安全引擎从主机获得位置信息(经过偏移量)。因 此,主机可以潜在地以此方式发送不正确的数据以替换实际数据。
[0016] 攻击场景对于可能发送不规则大小的未与实际视频帧对齐的分组的方案是可能 的。攻击在其解码器本身不具有解析整个流的能力的硬件平台上也是可能的。
[0017] 在一示例中,攻击可能针对已经被解密到MR中的数据。在支持MR的一些平台 中,仅仅安全引擎具有对IMR的读写访问,而例如解码器之类的其他组件限于只读访问。安 全引擎可以锁定经解密的数据,使得其仅仅被随后的安全视频路径组件消费,以潜在地消 除"盖写"攻击并且可以在消费以后复位(例如解锁)。
[0018] 然而,安全引擎可能不知道给定数据在何时被消费。此外,IMR可以在每个帧被解 码器消费以前保持多个帧。因此,例如由安全引擎进行的数据写入和例如由解码器进行的 数据读取可以以任意方式进行。
[0019] 通常,帧在其被消费以前被整体解密,并且构成帧的多个分组以连续方式被馈送 入安全引擎。也就是说,帧可以由多个分组构成,并且在另一帧的分组被解码以前,这些分 组被连续地解码到頂R中,直到整个帧被解码到頂R中。
[0020] 在本发明的一实施例中,IMR例如可以以每页(或每块)的粒度来提供写锁复位机 构。页(或块)可以按照系统需要而具有任何粒度。页可以在系统启动时配置。被写入的 页内的最后偏移量的运行OFFSET (偏移量)可以维护在与该页相关联的存储寄存器中。该 OFFSET可以按如下方式在每次写入时被更新:如果新偏移量大于OFFSET,则写入被许可并 且OFFSET可以被更新为被写入的最后位置。换言之,OFFSET被存储寄存器"锁定"。如果尝 试对该页内的比OFFSET小的偏移量进行写入,则OFFSET可以被复位为0 (页已解锁),该页 可以被擦除,并且可以许可对该页内的任何偏移量进行新的写入。在所述写入以后,OFFSET 可以再次更新。
[0021] 可以在两种情况下尝试小于OFFSET的偏移量:1)新帧正在被写入/解密到MR 中。在这种情况下,通常进行对OFFSET的复位和该页的解锁。2)恶意软件尝试修改现有数 据,在这种情况下,对OFFSET的修改和对整个页的清除(例如擦除)可以防止该修改。
[0022] 可以使页大小为可调整或可配置的以适应帧大小。在一个示例中,当例如通过将 写入偏移量与存储在存储寄存器中的OFFSET相比较而检测到攻击时,整个帧可以被清除。
[0023] 在一实施例中,可以以固件或硬件来实现锁定和复位功能。例如,运行在SEP上的 固件可以维护页属性(例如最后写入偏移量)并以软件来模仿锁定和复位功能。由于SEP固 件预期运行在安全环境中,因此在以硬件实现时结果同样有效。
[0024] 在各个实施例中,对数字内容的保护可以由处理器例如在数字内容已经被解密以 后来提供。处理器可以包括内容存储逻辑以将数字内容解析成各部分并将每个部分存储到 存储器的相应页中。处理器还可以包括保护逻辑以在经解析的数字内容被存储以后接收包 括目的地地址的写入指令,并且如果写入指令的目的地地址是去往存储该数字内容的一部 分的存储器位置,则保护逻辑可以擦除该页。如果目的地地址与未存储数字内容中的任何 部分的另一存储器位置相关联,则保护逻辑可以执行写入指令。对其存储的数字内容为写 入指令目标的页的擦除可以保护被擦除的数字内容不被未经授权方访问。
[0025] 现在参考图1,所示是根据本发明的实施例的系统100的一部分的框图。如图1中 所示,系统100可包括各个组件,包括安全增强处理器(SEP) 102。
[0026] SEP102可以包括解密逻辑112以解密传入指令。SEP102可以包括存储器控制器中 枢(MCH) 110,该存储器控制器中枢(MCH) 110可以包括内容存储逻辑114和保护逻辑116, 该保护逻辑116可以包括地址存储逻辑118、地址比较逻辑120和页擦除逻辑122。MCH110 还可以包括一个或多个存储寄存器124^124、…、124 n以存储地址偏移量,例如相应页内 的最后写入存储器位置的偏移量。注意,在图1中,SEP102是以高级别描绘的,并且应当理 解,诸如SEP102之类的处理器可以包括许多其他特性。
[0027] 系统100还可以包括存储器150,该存储器150可以是包括一个或多个隔离存储 器区域(IMR)的访问受控存储器。在各个实施例中,存储器150可以是动态随机存储存储 器(DRAM)、静态随机存取存储器(SDRAM)或另一类型的存储存储器。对IMR的访问可以由 MCH110来确定。
[0028] 存储器150可以通过MCH110耦合到解码器180。在一实施例中,解码器180可以 例如与SEP102和存储器150 -起位于主板(未示出)上。
[0029] 存储器150的一部分可以被划分成一个或多个页154^15+…、154n。在一实施例 中,每个页都可以具有相同的存储容量,例如大致4千字节(kB)或另一存储容量。在另一 实施例中,页154-15^中的一个或多个页可以在存储容量方面不同于页154-15^中的其 他页。
[0030] 在操作中,SEP102可以接收经加密的数字内容160并且解密逻辑112可以对经加 密的数字内容160解密以产生(未加密的)数字内容。
[0031] 在经加密的数字内容已经被解密以后,MCH110中的内容存储逻辑114可以将数字 内容解析成一个或多个部分,例如每个部分对应于存储器的页154^154、…、154 n之一。在 一些实施例中,这些部分可以为相同大小。在其他实施例中,至少一个部分可以在大小方面 不同于其他部分。在经解密的内容被解析成各部分以后,各部分可以由内容存储逻辑114 来存储,其中每个部分被存储到相应的页154^154、…、154 n中。
[0032] 地址存储逻辑118可以将每个页15^154、…、154n内的最后写入存储器位置的 地址作为自相应页的起始地址的偏移量存储到相应存储寄存器124^124、…、124 n中。
[0033] SEP102可以接收程序指令170。程序指令之一可以是写入指令,其针对处于页 154。、1541、...154 11之一内的目的地地址。1〇110可以确定哪个页1541包括写入指令的目 的地地址。地址比较逻辑120可以将写入指令的目的地地址的表示与对应于页151的存 储寄存器121中所存储的地址的表示相比较。例如,地址比较逻辑120可以确定与写入指 令的目的地地址相对应的偏移量小于或等于存储在与页151的最后写入地址相对应的存 储寄存器121中的偏移量。如果被执行,则写入指令将盖写页151中的所存储数据中的一 些。例如,作为目标的要盖写的所存储数据可以包括有效载荷数据的数据指示符类型。如 果数据指示符类型被盖写,则有效载荷数据可能被错误地标记为例如通常不受保护的元数 据,并且因此有效载荷数据可能受到攻击。
[0034] 如果确定目的地地址小于或等于由存储寄存器121中存储的偏移量所表示的地 址,则地址比较逻辑120可以触发页擦除逻辑122以擦除页154。页151的擦除可以保证 存储在该页中的数字内容将不会受到未经授权的访问。在一实施例中,在擦除以后,页151 可以被留为空白。
[0035] 如果所接收的写入指令的目的地地址大于存储寄存器121中所存储的地址,则写 入指令可以被执行,例如附加的数据可以被写入页151,例如页151的未被写入的部分。
[0036] 页15V154、…、154n的内容可以通过MCH110被提供给解码器180以用于解码, 并且经解码的数据例如可以作为视频、音频或其他专有内容被输出。在攻击场景中,页151 可以被擦除并被解码为噪声,并且可以作为噪声被输出,其中该噪声可用于指示数字内容 162已经被攻击。
[0037] 现在转向图2,所示是根据本发明的另一实施例的系统200的一部分的框图。如 图2所示,系统200可以包括各个组件,包括可耦合到存储器控制器中枢(MCH) 222的处理 器210。处理器210可以是可包括核211(^211^、…、211n的多核处理器。处理器210还可 以包括解密逻辑212以解密经加密的数字内容。
[0038] MCH222可以耦合到存储器220,比如动态随机存取存储器(DRAM)、静态随机存取 存储器(SRAM)或另一类型的存储器。MCH222可以包括内容存储逻辑224和保护逻辑226, 该保护逻辑226可以包括地址存储逻辑228、地址比较逻辑230和页擦除逻辑232。MCH222 还可以包括一个或多个存储寄存器、…、242 n,每个寄存器用于将存储器220中的 页的地址存储为例如自相应页的初始地址的偏移量。
[0039] 存储器220可以被划分成一个或多个页240^24(^、…、240η。在一实施例中,每 个页可以为相同的容量,例如大致4千字节(kB)。在另一实施例中,页中的一些可以在容量 方面不同于存储器220内的其他页。
[0040] 存储器220可以通过MCH222耦合到解码器280,该解码器280可以被配置为在存 储在存储器220中的数据(例如有效载荷数据)已经被存储在页240^24(^、…、240 n中以后 对所述数据进行解码。
[0041] 在操作中,处理器210可以接收经加密的数字内容260并且解密逻辑212可以 对经加密的数字内容260解密以产生(未加密的)数字内容。存储器管理控制器222内的 内容存储逻辑224可以将数字内容解析成一个或多个部分,例如每个部分对应于页240。、 24〇i、…、24(^之一。在一些实施例中,这些部分可以为相同大小。在其他实施例中,至少 一个部分可以在大小方面不同于其他部分中的至少一个部分,其中每个部分的大小被确定 为页240^24(^、…、240 n中相应的一个页。内容存储逻辑224可以将每个部分存储到相应 页 24(^24(^、…、240n 中。
[0042] 存储器管理控制器222的保护逻辑226内的地址存储逻辑228可以将每个页 240^24(^、…、240 n内的最后写入存储器位置的相应地址存储到相应的存储寄存器242。、 242i、…、242"中。在一实施例中,每个地址可以被存储为自相应页24(^24(^、…、240"的 初始地址的相应偏移量。
[0043] 处理器210可以接收程序指令270。程序指令270之一可以是写入指令,其针对处 于页24(^24(^、…、240 n之一内的目的地地址。例如,写入指令可以具有页240。内的目的 地地址。
[0044] 地址比较逻辑230可以将写入指令的目的地地址与包括该目的地地址的相应页 的存储寄存器(例如存储寄存器242J中所存储的地址相比较。例如,与该目的地地址相对 应的偏移量可以被确定并与存储寄存器24?中所存储的最后写入偏移量相比较。如果地址 比较逻辑230确定目的地地址小于或等于由存储在存储寄存器240。中的偏移量表示的地 址,则写入指令在被执行的情况下将盖写页24(^中所存储的数据中的一些。因此,地址比 较逻辑230可以触发页擦除逻辑232擦除页24(V页24(^的擦除可以保证:之前存储在该 页中的数字内容将不会受到未经授权的访问,该未经授权的访问例如可能通过盖写数据类 型指示符来进行,其中该数据类型指示符在该盖写以前指示跟在后面的是有效载荷数据。
[0045] 如果地址比较逻辑230确定写入指令的目的地地址如通过将目的地地址与存储 寄存器中的所存储的最后写入地址相比较(例如通过将所存储的偏移量与同目的地地址相 对应的偏移量相比较)所确定的那样处于最后写入地址之后,则可以对写入指令的目的地 地址执行该写入。由于目的地地址之前还未被写入,因此没有数据将会由于执行写入指令 而被盖写。
[0046] 转到图3,所示为根据本发明实施例的要存储在存储器中的数字内容的框图。经解 密的数字内容310可以包括第一数据类型指示符302、第一数据304、第二数据类型指示符 306和第二数据308。在一实施例中,第一数据类型指示符302可以指示:第一数据304为 元数据,第二数据类型指示符306可以指示:第二数据308为有效载荷数据。
[0047] 存储器320可以包括清除解锁页322。存储器管理控制器(未示出)内的内容存储 逻辑可以将数字内容310的一部分写入到页322,从而产生包含数字内容310的一部分的 页324。在对页322的写入("第一写入")完成以后,与页324内的最后写入数据地址相对 应的最后写入偏移量可以存储在相应的存储寄存器(未示出)。在第一写入完成以后,页324 可以被锁定以防止对页324的另一写入。
[0048] 随后,如果接收到对页324的附加写入指令,则与该附加写入指令的目的地地址 相对应的偏移量可以与存储在与页324相对应的存储寄存器中的最后写入偏移量相比较。 如果所述附加的写入指令的目的地地址处于页324中的在先写入的结尾以后(例如附加写 入指令的目的地地址偏移量处于所存储的最后写入偏移量之后),则被锁定的页324可以被 解锁(例如被解锁的页325)并且所述附加的写入指令可以被执行以写入附加的数据来产生 页326,该页326可以在所述附加的写入指令被执行以后被锁定。所存储的最后写入偏移量 可以在相应的存储寄存器中被更新以反映存储在页326中的附加数据。
[0049] 如果与附加写入指令的目的地地址相关联的偏移量同最后写入偏移量的比较指 示:附加写入指令针对已经被写入的页地址,则该页的内容可以被擦除(转储清除)以产生 (干净的)页328。最后写入偏移量可以被复位为0并且存储在与页328相对应的存储寄存 器中。页326中的所存储数字内容的擦除可以保证:之前存储的数字内容将不会被破坏。
[0050] 经擦除的页可以被解锁以实现对页328的随后写入,这将产生页330,该页330又 可以在该随后的写入被执行以后被锁定。所存储的偏移量可以在页330的相应存储寄存器 中被更新以反映该页的由于随后的写入被占据的部分。
[0051] 转到图4,所示是根据本发明的实施例的保护数字内容的方法的流程图。在框420 开始,传入的经加密的数字内容可以由例如安全增强处理器或者由多核处理器来解密。
[0052] 继续进行到框404,经解密的数字内容可以被例如存储器控制器中枢解析成各部 分。例如,每个部分的大小可以被确定为存储在例如隔离存储器区域(IMR)或系统存储器 (例如DRAM)的页中,或者在一个实施例中,每个页可以具有相同的存储容量(例如4kB),或 者在另一实施例中,页中一些的存储容量可以不同于其他页的存储容量。页中的一些可以 在数字内容被存储以后被部分地填充。
[0053] 前进到框406,每个部分可以被存储到IMR或系统存储器的相应页中。移动到框 408,每页内的最后写入存储器位置的最后写入偏移量(对应于页内的地址)可以存储在相 应的寄存器中,该相应的寄存器可以位于例如存储器控制中枢中或者诸如系统存储器之类 的存储器中。
[0054] 前进到410,写入指令可以被(处理器)接收,该写入指令具有页之一内的要向其存 储数字内容部分的目的地地址。继续进行到判定菱形框412,可以由处理器例如通过与所 存储的最后写入偏移量相比较来作出判断:写入指令的目的地地址是否小于或等于相应页 内的最后写入存储器位置地址。如果目的地地址大于最后写入存储器位置地址,则前进到 框414,写入指令可以被执行,例如写入指令致使附加的数据被写入相应页内的空白存储器 位置。前进到框418,相应页的所存储的最后写入偏移量可以被更新以反映附加的所存储的 数据,并且继续进行到框420,该方法结束。如果目的地地址小于或等于最后写入存储器位 置地址,则在框416,该页可以被擦除。移动到框417,存储在相应存储寄存器中的最后写入 偏移量可以被复位为例如〇以反映被擦除的页。回到框414,写入指令可以被执行。前进到 框418,相应页的所存储的最后写入偏移量可以被更新以反映附加的所存储的数据,并且继 续进行到框420,该方法结束。
[0055] 图4的方法可以由硬件、软件、固件或其组合来执行。尽管在图4的实施例中是以 高级别示出的,但是能够理解,本发明的范围不受此限制。
[0056] 各实施例可在许多不同的系统中实现。例如,实施例可在诸如多核处理器之类的 处理器中实现。现在参照图5,图5示出了根据本发明一个实施例的处理器核的框图。如图 5所示,处理器核500可以是多核处理器中的一个核,并且被示为多级流水线化的乱序处理 器。
[0057] 如图5所示,核500包括前端单元510,前端单元510可用于取得将被执行的指令 并将这些指令准备好以供以后在处理器中使用。例如,前端单元510可包括获取单元501、 指令高速缓存503和指令解码器505。在某些实现中,前端单元510可进一步包括跟踪高速 缓存、微码存储以及微操作存储。获取单元501可(例如,从存储器或指令高速缓存503)获 取宏指令并将它们馈送至指令解码器505以将它们解码为原语,即用于通过处理器执行的 微操作。
[0058] 乱序(000)引擎515耦合在前端单元510与执行单元520之间,乱序引擎515可 用于接收微指令并将它们准备好以供执行。更具体地,〇〇〇引擎515可包括多个缓冲器,用 于对微指令流重新排序并分配执行所需的各种资源,以及例如通过使用该引擎的重命名逻 辑来提供逻辑寄存器到各个寄存器文件(诸如寄存器文件530和扩展寄存器文件535)内的 存储位置上的重命名。寄存器文件530可包括用于整数和浮点操作的单独的寄存器文件。 扩展寄存器文件535可提供向量尺寸单元的存储,例如,每寄存器256或512位。
[0059] 在执行单元520中可存在多种资源,包括例如多种整数、浮点和单指令多数据 (SIMD)逻辑单元等其它专门硬件。例如,此类执行单元可包括一个或多个算术逻辑单元 (ALU) 522。当然,还可存在诸如乘法累加单元之类的其他执行单元等等。结果可以被提供 给隐退逻辑,该隐退逻辑可以实现在处理器的存储器子系统560内。例如包括执行单元和 前端逻辑的各个处理器结构可以耦合到存储器子系统560。该存储器子系统可提供处理器 结构与存储器层次的其他部分(例如芯片上或芯片外的高速缓存和系统存储器)之间的接 口。如所看见那样,各子系统具有各个组件,包括存储器排序缓冲器(M0B)540。更具体地, M0B540可包括各种阵列和逻辑以接收与被执行的指令相关联的信息。然后,通过M0B540检 查该信息以确定指令是否可以有效隐退并且结果数据是否被提交至处理器的架构状态,或 阻止指令的正常隐退的一个或多个异常是否发生。当然,M0B540可处理与隐退相关联的其 他操作。
[0060] 如图5所示,M0B540耦合至高速缓存550,在一个实施例中,该高速缓存550可以 是低级高速缓存(例如L1高速缓存)。存储器子系统560还可包括集成存储器控制器570 以提供与系统存储器(在图5中为了说明方便而未示出)的通信。存储器子系统560还可包 括存储器执行单元(MEU) 575,该存储器执行单元575处理各种操作,以发起存储器请求并 且处理数据从存储器的返回。例如,MEU575可以实施将数字内容解析成各部分、将各部分 存储到相应的页中、存储每页的最后写入偏移量、以及确定写入指令是否针对页内的包括 数字内容的存储器位置。如果写入指令针对页内的存储数字内容的存储器位置,则MEU575 可以擦除包括目的地存储器位置的页,如在此参照本发明的实施例所描述的。
[0061] 从存储器子系统560,可发生与更高级高速缓存、系统存储器等等的数据通信。虽 然在图5的实施例中用高级框图示出,但应理解本发明的范围不限于此方面。例如,虽然图 5的实现方式是参照乱序机、比如所谓的x86指令集架构(ISA)的乱序机的,但本发明的范 围在此方面不受限制。即,其他实施例可在以下处理器中实现:顺序处理器;诸如基于ARM 的处理器之类的精简指令集计算(RISC)处理器;或具有另一类型ISA的处理器,该另一类 型的ISA可经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作。
[0062] 现在参考图6,所示是根据本发明的实施例的处理器的框图。如图6所示,处理器 600可以是在核域610中包括多个核610a_610 n的多核处理器。在一个实施例中,每个核可 以包括存储器执行单元(未示出),其包括内容存储逻辑、地址存储逻辑、地址比较逻辑和页 擦除逻辑,如在此处在本发明的实施例中所描述的。如在图6中进一步示出的那样,一个或 多个图形处理单元(GPU^l^-eUu可以存在于图形域612中。这些各个计算元件可经由互 连615耦合到系统代理或非核部分620,非核部分620包括各个组件。可以看出,非核620 可以包括作为末级高速缓存的共享高速缓存器630。
[0063] 另外,非核部分可以包括集成存储器控制器640和各个接口 650。在本发明的一些 实施例中,存储器控制器640可以将经解密的数字内容解析成各部分,将这些部分存储在 系统存储器660的相应页中,并且存储每个页的最后写入偏移量。根据本发明的实施例,存 储器控制器640可以确定写入指令是否具有将所述页之一内的数字内容中的一些存储到 的存储器位置的目的地地址,并且如果是这样,则可以擦除该页。
[0064] 进一步参考图6,处理器600可(诸如经由存储器总线)与系统存储器660进行通 信。此外,通过接口 650,可连接到多种芯片外组件,诸如,外围设备、大容量存储器、等等。 尽管在图6的实施例中利用此特定实现示出的,但是,本发明的范围在这方面不受限制。 [0065] 现在参考图7,所示是根据本发明的另一个实施例的多域处理器的框图。如图7的 实施例中所示,处理器700包括多个域。具体而言,核域710可以包括多个核71(^ - 710n, 图形域720可以包括一个或多个图形引擎,并且还可以存在系统代理域750。
[0066] 注意,尽管仅仅示出为具有三个域,但是能够理解,本发明的范围不在此方面受 限,并且在其他实施例中可以存在附加的域。例如,可以存在多个核域,每个核域包括至少 一个核。
[0067] 一般而言,每个核710还可以包括除了各个执行单元之外的低级高速缓存和附加 的处理元件。各个核可以彼此耦合以及耦合到共享高速缓存存储器,其由上一级高速缓存 (1^074(^- 740"的多个单元形成。在各个实施例中,LLC740可以在各个核、图形引擎以及 各个媒体处理电路系统间共享。可以看出,环形互连730因此将各个核耦合在一起,并且提 供各个核、图形域720和系统代理电路系统750之间的互连。
[0068] 在图7的实施例中,系统代理域750可以包括显示控制器752,其可以提供对相关 联的显示器的控制和接口。可进一步看出,系统代理域750可以包括功率控制单元755。
[0069] 在图7中可进一步看出,处理器700还可以包括集成存储器控制器(頂〇770,其可 以提供到诸如动态随机存取存储器(DRAM)之类的系统存储器(未示出)的接口。根据本发 明的实施例,頂C770可以将经解密的数字内容解析成各部分,将这些部分存储在系统存储 器的相应页中,并且存储每个页的最后写入偏移量。根据本发明的实施例,頂C770可以确 定写入指令是否具有将所述页之一内的数字内容中的一些存储到的存储器位置的目的地 地址(例如通过将目的地地址的表示与该页的最后写入偏移量相比较),并且如果是这样, 则可以擦除该页。
[0070] 可以存在多个接口 780。- 780n以实现处理器与其他电路系统之间的互连。例如, 在一个实施例中,可以提供至少一个直接媒体接口(DMI)接口、以及一个或多个外围组件互 连快速(PCI EXpresSTM(PCIeTM))接口。另外,为了提供诸如附加处理器或其他电路系统之 类的其他代理之间的通信,还可以提供根据Intel ?快速路径互连(QPI)协议的一个或多 个接口。虽然在图7的实施例中以这一高级框图示出,但应理解本发明的范围不限于此方 面。
[0071] 参考图8,示出了包括多个核的处理器的实施例。处理器800包括任何处理器或 处理器件,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理 器、应用处理器、协同处理器、片上系统(S0C)、或用于执行代码的其它器件。在一个实施例 中,处理器800包括至少两个核--核801和802,它们可包括非对称核或对称核(所示实施 例)。然而,处理器800可包括可以是对称的或非对称的任何数量的处理元件。
[0072] 在一个实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示 例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核 和/或任何其它元件,这些元件能够保持处理器的诸如执行状态或架构状态之类的状态。 换言之,在一个实施例中,处理元件指的是能够独立地与代码(诸如软件线程、操作系统、应 用或其它代码)相关联的任何硬件。典型地,物理处理器指的是集成电路,该集成电路潜在 地包括任何数量的其它处理元件(诸如核或硬件线程)。
[0073] 核通常指的是位于集成电路上的能够维持独立体系结构状态的逻辑,其中每个独 立维持的体系结构状态与至少一些专用的执行资源相关联。与核相反,硬件线程典型地表 示位于集成电路上的能够维持独立体系结构状态的任何逻辑,其中被独立维持的体系结构 状态共享对执行资源的访问。如可以看到,当某些资源被共享而其它资源专属于体系结构 状态时,硬件线程与核的命名之间的界限交迭。不过,核和硬件线程通常被操作系统视为单 独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
[0074] 如图8所示的物理处理器800包括两个核--核801和802。在此,核801和802 被视为对称核,即这些核具有相同的配置、功能单元和/或逻辑。在另一个实施例中,核801 包括无序处理器核,而核802包括有序处理器核。然而,核801和802可从任何类型的核中 单独地选择,诸如原生核、受软件管理的核、适于执行原生指令集体系结构(ISA)的核、适于 执行转换ISA的核、协同设计的核或其它已知核。不过,为进一步讨论,以下将进一步详细 描述在核801中示出的功能单元,因为核802中的单元以类似方式操作。
[0075] 如所描绘,核801包括两个硬件线程801a和801b,两个硬件线程801a和801b也 可称为硬件线程槽801a和801b。因此,在一个实施例中,诸如操作系统之类的软件实体潜 在地将处理器800视为四个独立的处理器,即能够并发地执行四个软件线程的四个逻辑处 理器或处理元件。如上所述,第一线程与体系结构状态寄存器801a相关联,第二线程与体 系结构状态寄存器801b相关联,第三线程可与体系结构状态寄存器802a相关联,并且第四 线程可与体系结构状态寄存器802b相关联。在此,体系结构状态寄存器(801a、801b、802a 和802b)中的每一个可被称为如上所述的处理元件、线程槽、或线程单元。如图所示,体系结 构状态寄存器801a在体系结构状态寄存器801b中被复制,因此能够针对逻辑处理器801a 和逻辑处理器801b存储单独的体系结构状态/上下文。在核801中,也可复制用于线程 801a和801b的其它较小资源,诸如指令指针以及分配器和重命名块830中的重命名逻辑。 诸如重排序器/隐退单元835中的重排序缓冲器、ILTB820、载入/存储缓冲器、以及队列之 类的一些资源可通过分区来共享。诸如通用内部寄存器、页表基本寄存器、低级数据高速缓 存和数据TLB815、执行单元840、以及无序单元835的部分之类的其它资源潜在地被完全共 享。
[0076] 处理器800通常包括其它资源,这些其它资源可被完全共享、通过分区被共享、或 由处理元件指定/专属于处理元件。在图8中,示出了具有处理器的说明性的逻辑单元/ 资源的纯示例性处理器的实施例。注意,处理器可包括或省去这些功能单元中的任意功能 单元,且可包括未描绘的任何其它已知的功能单元、逻辑或固件。如图所示,核801包括简 化的、代表性的无序(〇〇〇)处理器核。但是有序处理器可用于不同实施例中。〇〇〇核包括用 于预测要被执行/进行的分支的分支目标缓冲器820以及用于存储指令的地址转换条目的 指令转换缓冲器(I-TLB) 820。
[0077] 核801进一步包括耦合至取出单元820以用于解码所取出的元素的解码模块825。 在一个实施例中,取出逻辑包括分别与线程槽801a、801b相关联的单独定序器。通常,核 801与第一 ISA相关联,该第一 ISA定义/指定能在处理器800上执行的指令。通常作为第 一 ISA-部分的机器码指令包括该指令的一部分(称为操作码),该指令引用/指定待执行 的指令或操作。解码逻辑825包括由这些指令的操作码来识别这些指令并在流水线上传递 所解码的指令以进行如第一 ISA所定义的处理的电路。例如,在一个实施例中,解码器825 包括被设计成或适于识别诸如事务性指令之类的特定指令的逻辑。作为解码器825识别的 结果,体系结构或核801采取特定的、预定的动作以执行与适当指令相关联的任务。重要的 是,注意到本文描述的任何任务、框、操作和方法可响应于单个或多个指令而被执行;其中 一些可以是新的或者旧的指令。
[0078] 在一个示例中,分配器和重命名器块830包括用于保留资源(诸如用于写入指令 处理结果的寄存器文件)的分配器。然而,线程801a和801b潜在地能够进行无序执行,其 中分配器和重命名器块830还保留其它资源(诸如用于跟踪指令结果的重排序缓冲器)。单 元830还可包括寄存器重命名器,用于将程序/指令引用寄存器重命名为处理器800内部 的其它寄存器。重排序/隐退单元835包括诸如上述的重排序缓冲器、加载缓冲器和存储 缓冲器之类的组件,以支持无序执行的指令的无序执行和稍后的有序隐退。
[0079] 在一个实施例中,调度器和执行单元块840包括调度器单元,用于调度执行单元 上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。也 可包括与执行单元相关联的寄存器文件,以存储信息指令处理结果。示例性的执行单元包 括:浮点执行单元、整数执行单元、跳跃执行单元、加载执行单元、存储执行单元以及其它已 知的执行单元。
[0080] 较低级的数据高速缓存和数据转换缓冲器(D-TLB)850耦合至执行单元840。数据 高速缓存用于存储最近使用/操作的元素(诸如数据操作数),这些元素在存储器一致性状 态下潜在地被保持。D-TLB用于存储最近的虚拟到物理地址转换/线性到物理地址转换。
[0081] 在此,核801和802共享对较高级或进一步的高速缓存810的访问,较高级或进 一步的高速缓存110用于缓存最近取出的元素。注意,较高级或进一步指的是高速缓存级 增加或进一步远离执行单元。在一个实施例中,较高级高速缓存810是最后级数据高速缓 存--处理器800上的存储器层次中的最后级高速缓存,诸如第二或第三级数据高速缓存。 然而,较高级高速缓存810不限于此,因为它可与指令高速缓存相关联或包括指令高速缓 存。替代地,跟踪高速缓存--一种类型的指令高速缓存--可耦合在解码器825之后,用 于存储最近解码的跟踪。
[0082] 在所描绘的配置中,处理器800还包括控制器870。根据本发明的实施例,控制器 870可以将经解密的数字内容解析成各部分并且将所述各部分存储在系统存储器875的相 应页中。根据本发明的实施例,控制器870可以确定写入指令是否具有将所述页之一内的 数字内容中的一些存储到的存储器位置的目的地地址(例如通过将目的地地址的表示与该 页的最后写入偏移量相比较),并且如果是这样,则可以擦除该页。
[0083] 在该场景中,总线接口 805与处理器800外部的设备通信,处理器800外部的设备 诸如系统存储器875、芯片组(通常包括存储器控制器中枢以连接到存储器875以及I/O控 制器中枢以连接到外围设备)、存储器控制器中枢、北桥、或其它集成电路(未示出)。并且在 该场景中,总线805可包括任何已知的互连,诸如多点总线、点对点互连、串行互连、并行总 线、一致性(例如高速缓存一致性)总线、分层协议体系结构、差分总线以及GTL总线。
[0084] 存储器875可专属于处理器800或与系统中的其它器件共享。存储器875的类型 的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。注意, 器件880可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控制器中 枢的数据存储,无线收发器,闪存器件,音频控制器,网络控制器,或其它已知器件。
[0085] 注意,在所描绘的实施例中,控制器870被示为处理器800的一部分。最近,随着 更多的逻辑和器件被集成在单个管芯上(如S0C),这些器件中的每一个可被合并在处理器 800上。例如,在一个实施例中,存储器控制器中枢870与处理器800处于同一封装和/或 管芯上。在此,核的一部分(核上部分,on-core portion)包括与诸如存储器875和图形器 件880之类的其它器件进行接口的控制器870。包括用于与此类器件进行接口的控制器和 互连的该配置通常被称为核上(或非核(un-core)配置)。作为示例,总线接口 805包括环 形互连,环形互连具有用于与存储器875进行接口的存储器控制器以及用于与图形处理器 880进行接口的图形控制器。然而,在SOC环境中,诸如网络接口、协同处理器、存储器875、 图形处理器880以及任何其它已知计算机器件/接口之类的甚至更多的器件可被集成到单 个管芯或集成电路上,以提供具有高功能性和低功耗的小外形规格。
[0086] 各实施例可以以许多不同的系统类型来实现。现在参考图9,所示是根据本发明 的实施例的系统的框图。如图9所示,多处理器系统900是点对点互连系统,并包括通过点 对点互连950而耦合的第一处理器970和第二处理器980。如图9所示,处理器970和980 中的每一个可以是多核处理器,包括第一和第二处理器核(即,处理器核974a和974b以及 处理器核984a和984b),虽然潜在地更多核可以存在于处理器中。这些处理器中的每个可 以包括相应的高速缓存。第一处理器970和第二处理器980可以分别通过P-P互连952和 954来耦合到芯片集990。如图9所示,芯片集990包括P-P接口 994和998。
[0087] 仍参考图9,第一处理器970还包括存储器控制器中枢(MCH) 972和点对点(P-P) 接口 976和978。类似地,第二处理器980包括MCH982和P-P接口 986和988。如图9所 示,MCH972和982将处理器耦合到相应的存储器,即存储器932和存储器934,这些存储器 可以是本地附连到相应处理器的系统存储器(诸如,DRAM)的诸个部分。根据本发明的实施 例,MCH972和982中的每个可以将经解密的数字内容解析成各部分并且将所述各部分存储 在相应存储器(932或934)的相应页中。根据本发明的实施例,MCH972和982可以确定写入 指令是否具有将所述页之一内的数字内容中的一些存储到的存储器位置的目的地地址(例 如通过将目的地地址的表示与该页的最后写入偏移量相比较),并且如果是这样,则可以擦 除该页。
[0088] 此外,芯片集990包括接口 992,以通过P-P互连939将芯片集990与高性能图形 引擎938耦合。芯片集990又可以通过接口 996耦合到第一总线916。如图9所示,各种输 入/输出(I/O)设备914以及总线桥接器918可以耦合到第一总线916,总线桥接器918将 第一总线916耦合到第二总线920。在一个实施例中,各个设备可以耦合到第二总线920, 包括,例如,键盘/鼠标922、通信设备926和数据存储单元928 (诸如磁盘驱动器或其他大 容量存储设备)。进一步地,音频1/0924可以耦合到第二总线920。各实施例可以被合并到 其他类型的系统中,包括诸如智能蜂窝电话、Ultrabook?、平板计算机、上网本等等之类的 移动设备。
[0089] 即,在其他实施例中,处理器架构可包括仿真特征,使得处理器可执行称为源ISA 的第一 ISA的指令,其中该架构是根据第二ISA的,该第二ISA被称为目标ISA。一般而言, 包括0S和应用程序的软件被编译至源ISA,而硬件实现针对给定硬件实现方式而特别设计 的具有特殊性能和/或能源效率特征的目标ISA。
[0090] 参考图10,示出根据本发明的另一实施例的系统1000的框图。系统1000包括处理 器1010和存储器1030。处理器1010可以是片上系统(S0C)并且可以包括:安全引擎1012 ; 核单元1014,其可包括一个或多个核、高速缓存存储器、以及用于与其他S0C组件通信的接 口;存储1016 ;以及编码/解码逻辑1018。
[0091] 在操作中,安全引擎1012可以解码传入的经加密数据1020。安全引擎1012可以 将(未加密的)数据解析成各部分并可将这些部分存储在存储器1030内的相应页中。安全 引擎1012可以将与每页的最后写入地址相对应的最后写入偏移量存储在相应存储寄存器 中。在一个实施例中,存储寄存器可以位于处理器1010内。在另一实施例中,存储寄存器 可以位于存储器1030内。
[0092] 核单元1014可以接收写入指令,所述写入指令的目的地地址处于页之一中。安全 引擎1012可以执行最后写入偏移量与同写入指令的目的地地址相关联的写入偏移量的比 较。安全引擎1012可以基于最后写入偏移量与该写入偏移量的比较来锁定或解锁对页的 写入访问。例如,如果该写入偏移量大于最后写入偏移量,则安全引擎1012可以解锁对相 应页的写入访问,而如果该写入偏移量小于或等于最后写入偏移量,则安全引擎1012可以 锁定对相应页的写入访问,将最后写入偏移量复位为〇,并且擦除(例如转储清除)相应页的 内容。
[0093] 各实施例可在许多不同类型的系统中使用。例如,在一个实施例中,通信设备可以 被安排为执行在此所述的各个方法和技术。各实施例可以被合并到其他类型的系统中,包 括诸如智能蜂窝电话、平板计算机、上网本、Ultrabook?等等之类的移动设备。当然,本发 明的范围不限于通信设备,而是其他实施例可以针对用于处理指令的其他类型的装置或者 包括指令的一个或多个机器可读介质,所述指令响应于在计算设备上被执行而致使该设备 执行在此所述的方法和技术中一个或多个。
[0094] 以下示例涉及进一步的实施例。在一实施例中,一处理器包括内容存储逻辑以将 数字内容解析成各部分并致使每个部分被存储到存储器的相应页中。处理器还包括保护逻 辑以接收具有存储器内的目的地地址的写入指令。如果目的地地址与存储数字内容中的一 些的存储器位置相关联,则保护逻辑将擦除与该存储器位置相关联的页,而如果目的地地 址与不存储数字内容中的任何部分的另一存储器位置相关联,则保护逻辑将许可该写入指 令的执行。
[0095] 在另一实施例中,处理器包括解密逻辑以解密经加密的数字内容并将数字内容输 出到内容存储逻辑。
[0096] 在一实施例中,每个页具有相同的页大小。
[0097] 在一实施例中,处理器包括一个或多个存储,每个存储用于存储相应页的最后写 入地址的表示。在一实施例中,最后写入地址的表示包括自相应页的初始地址的偏移量。
[0098] 保护逻辑可以将目的地地址的表示与存储在存储之一中的最后写入地址的表示 相比较以确定与该目的地地址相关联的存储器存储位置是否存储了数字内容中的一些,并 且如果该目的地地址大于最后写入地址,则保护逻辑可以确定与该目的地地址相关联的存 储器存储位置未存储数字内容中的任何部分,并且保护逻辑可以许可写入指令的执行。 [0099] 如果目的地地址处于特定页的开始处与最后写入地址之间,则保护逻辑可以擦除 特定页的内容并且可以复位最后写入地址的表示。
[0100] 在一实施例中,一系统包括处理器、耦合到该处理器的动态随机存取存储器 (DRAM)、耦合到该DRAM的存储器控制器以将数字内容写入到该DRAM中的多个页中。响应 于由处理器接收到具有页之一中的存储器存储位置的目的地地址的写入指令,存储器控制 器可以在该存储器存储位置未存储数字内容中的任何部分的情况下执行写入指令并且在 该存储器存储位置存储有数字内容中一些的情况下擦除该页。
[0101] 在一实施例中,存储器控制器包括多个寄存器,每个寄存器存储与相应页的最后 写入地址相对应的最后写入偏移量。
[0102] 在一实施例中,存储器控制器可以将与目的地地址相对应的目的地偏移量与存储 在寄存器之一中的偏移量相比较以确定与该目的地地址相关联的存储器存储位置是否存 储有数字内容中的一些。如果该目的地偏移量处于特定页的开始处与最后写入偏移量之 间,则存储器控制器可以确定与该目的地地址相关联的存储器存储位置存储有数字内容中 的一些。
[0103] 如果存储器存储位置存储有数字内容中的一些,则存储器控制器可以在该页被擦 除以后复位最后写入偏移量。如果该目的地偏移量大于最后写入偏移量,则存储器控制器 可以确定与该目的地地址相关联的存储器存储位置未存储数字内容中的任何部分。
[0104] 在一实施例中,一种方法包括:将数字内容解析成各部分;将每个部分存储到存 储器的相应页中;将写入指令的目的地地址与所述页之一的最后写入地址相比较以确定相 应存储器位置是否存储所述数字内容中的一些;在相应存储器存储位置存储有所述数字内 容中的一些的情况下擦除所述页中的至少一页;以及在相应存储器存储位置未存储所述数 字内容中的任何部分的情况下执行所述写入指令。
[0105] 该方法还可以包括:在解析所述数字内容以前解密所述数字内容。
[0106] 比较可以包括:确定第一页包括所述目的地地址,并且如果所述目的地地址处于 第一页的第一写入地址与第一页的最后写入地址之间,则确定相应存储器存储位置存储有 所述数字内容中的一些。
[0107] 该方法可以包括:如果目的地地址未处于第一页的第一写入地址与第一页的最后 写入地址之间,则确定相应存储器位置未存储数字内容中的任何部分。该方法还可以包括: 响应于写入指令的执行更新相应的最后写入地址。
[0108] 在一实施例中,至少一个机器可读介质包括一个或多个指令,所述指令在处理器 上被执行时将处理器配置为执行该方法的前述实施例中的一个或多个。
[0109] 在一实施例中,一种装置可以被配置为执行该方法的前述实施例中的一个或多 个。
[0110] 在一实施例中,一种设备包括用于执行该方法的前述实施例中的任何实施例的装 置。
[0111] 在一实施例中,一处理器可以包括一个或多个核和保护逻辑,该保护逻辑用于响 应于与写入指令相关联的写入偏移量同存储在第一存储中并与第一页的最后写入存储器 位置相关联的最后写入偏移量的比较来确定是否解锁对存储器的第一页的写入访问。保护 逻辑可以响应于指示该写入偏移量超过该最后写入偏移量的比较来解锁对第一页的写入 访问并许可写入指令的执行。
[0112] 该处理器可以包括更新逻辑以响应于写入指令的执行来用该写入偏移量替换第 一存储中的该最后写入偏移量。
[0113] 保护逻辑可以响应于指示该写入偏移量小于或等于该最后写入偏移量的比较来 擦除第一页。
[0114] 该处理器可以包括更新逻辑以在擦除页以后复位第一存储中的最后写入偏移量。
[0115] 各实施例可以以代码来实现,并可以存储在在其上存储了指令的非瞬时的存储介 质上,指令可以被用来对系统进行编程以执行指令。存储介质可以包括,但不仅限于,任何 类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、光盘只读存储器(固态驱动器)、光盘可重 写(CD-RW),以及磁光盘、诸如只读存储器(ROM)之类的半导体器件、诸如动态随机存取存 储器(DRAM)、和静态随机存取存储器(SRAM)之类的随机访问存储器(RAM)、可擦除编程只 读存储器(EPROM)、闪存、电可擦除编程只读存储器(EEPROM)、磁卡或光卡,或适于存储电 子指令的任何其他类型的介质。
[0116] 尽管是参考数量有限的实施例来描述本发明的,但是,那些精通本技术的人将从 其中理解很多修改和变体。所附权利要求书涵盖所有这样的修改和变体都将在本发明的真 正的精神和范围内。
【权利要求】
1. 一种用于保护内容的处理器,包括: 内容存储逻辑,其用于将数字内容解析成各部分并致使每个部分被存储到存储器的相 应页中;以及 保护逻辑,其用于: 接收具有所述存储器内的目的地地址的写入指令; 如果所述目的地地址与存储所述数字内容中的一些的存储器存储位置相关联,则擦除 与所述存储器位置相关联的页; 如果所述目的地地址与未存储所述数字内容中的任何部分的另一存储器存储位置相 关联,则许可所述写入指令的执行。
2. 如权利要求1所述的处理器,其特征在于,还包括解密逻辑,其用于解密经加密的数 字内容并将所述数字内容输出到所述内容存储逻辑。
3. 如权利要求1所述的处理器,其特征在于,每个页具有相同的页大小。
4. 如权利要求1所述的处理器,其特征在于,还包括一个或多个存储,每个存储用于存 储相应页的最后与入地址的表不。
5. 如权利要求4所述的处理器,其特征在于,所述最后写入地址的表示包括自所述相 应页的初始地址的偏移量。
6. 如权利要求4 一 5中任一项所述的处理器,其特征在于,所述保护逻辑将所述目的地 地址的表示与存储在所述存储之一中的最后写入地址的表示相比较以确定与所述目的地 地址相关联的存储器存储位置是否存储所述数字内容中的一些。
7. 如权利要求4所述的处理器,其特征在于,如果所述目的地地址小于所述页之一内 的最后写入地址,则所述保护逻辑确定与所述目的地地址相关联的存储器存储位置未存储 所述数字内容中的任何部分。
8. 如权利要求4所述的处理器,其特征在于,如果所述目的地地址处于特定页的开始 处与所述页之一内的最后写入地址之间,则所述保护逻辑确定与所述目的地地址相关联的 存储器存储位置存储所述数字内容中的一些。
9. 如权利要求8所述的处理器,其特征在于,所述处理器复位所述最后写入地址的表 /_J、1 〇
10. -种用于保护内容的处理系统,包括: 处理器; 耦合到所述处理器的动态随机存取存储器(DRAM);以及 耦合到所述DRAM的存储器控制器,所述存储器控制器用于将数字内容写入所述DRAM 中的多个页中,其中响应于由所述处理器接收到具有所述页之一中的存储器存储位置的目 的地地址的写入指令,所述存储器控制器用于: 如果所述存储器存储位置未存储所述数字内容中的任何部分,则执行所述写入指令; 以及 如果所述存储器存储位置存储所述数字内容中的一些,则擦除所述页。
11. 如权利要求10所述的系统,其特征在于,所述存储器控制器包括多个寄存器,每个 寄存器用于存储与相应页的最后写入地址相对应的最后写入偏移量。
12. 如权利要求11所述的系统,其特征在于,所述存储器控制器用于将与所述目的地 地址相对应的目的地偏移量与存储在所述寄存器之一中的偏移量相比较以确定与所述目 的地地址相关联的存储器存储位置是否存储所述数字内容中的一些。
13. 如权利要求12所述的系统,其特征在于,如果所述目的地偏移量处于特定页的开 始处与所述最后写入偏移量之间,则所述存储器控制器确定与所述目的地地址相关联的存 储器存储位置存储所述数字内容中的一些。
14. 如权利要求11所述的系统,其特征在于,如果所述存储器存储位置存储所述数字 内容中的一些,则所述存储器控制器复位所述最后写入偏移量。
15. 如权利要求12所述的系统,其特征在于,如果所述目的地偏移量大于所述最后写 入偏移量,则存储器控制器确定与所述目的地地址相关联的存储器存储位置未存储所述数 字内容中的任何部分。
16. -种保护内容的方法,包括: 将数字内容解析成各部分; 将每个部分存储到存储器的相应页中; 将写入指令的目的地地址与所述页之一的最后写入地址相比较以确定相应存储器存 储位置是否存储所述数字内容中的一些; 在所述相应存储器存储位置存储所述数字内容中的一些的情况下擦除所述页中的至 少一页;以及 在所述相应存储器存储位置未存储所述数字内容中的任何部分的情况下执行所述写 入指令。
17. 如权利要求16所述的方法,其特征在于,还包括:在解析所述数字内容以前解密所 述数字内容。
18. 如权利要求16所述的方法,其特征在于,所述比较包括: 确定第一页包括所述目的地地址; 如果所述目的地地址处于所述第一页的第一写入地址与所述第一页的最后写入地址 之间,则确定所述相应存储器存储位置存储所述数字内容中的一些;以及 如果所述目的地地址未处于所述第一页的第一写入地址与所述第一页的最后写入地 址之间,则确定所述相应存储器存储位置未存储所述数字内容中的任何部分。
19. 如权利要求16所述的方法,其特征在于,还包括:响应于所述写入指令的执行更新 相应的最后写入地址。
20. -种包括代码的机器可读介质,所述代码在被执行时致使机器执行如权利要求 16 - 19任一所述的方法。
21. -种用于保护内容的处理器,包括: 一个或多个核;以及 保护逻辑,其用于响应于与对存储器的第一页的写入指令相关联的写入偏移量同存储 在第一存储中并与所述第一页的最后写入存储器存储位置相关联的最后写入偏移量的比 较来确定是否解锁所述对第一页的写入访问。
22. 如权利要求21所述的处理器,其特征在于,所述保护逻辑响应于指示所述写入偏 移量超过所述最后写入偏移量的比较来解锁对所述第一页的写入访问并许可写入指令的 执行。
23. 如权利要求21所述的处理器,其特征在于,还包括更新逻辑,其用于响应于所述写 入指令的执行来用所述写入偏移量替换所述第一存储中的最后写入偏移量。
24. 如权利要求21所述的处理器,其特征在于,所述保护逻辑用于响应于指示所述写 入偏移量小于或等于所述最后写入偏移量的比较来擦除所述第一页。
25. 如权利要求21所述的处理器,其特征在于,还包括更新逻辑,其用于响应于指示所 述写入偏移量小于或等于所述最后写入偏移量的比较来复位所述第一存储中的最后写入 偏移量。
【文档编号】G06F21/10GK104050396SQ201410095760
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月15日
【发明者】J·曼盖拉姆帕利, R·P·班金沃 申请人:英特尔公司