CN104050396B - 用于保护数字内容的装置和方法 - Google Patents

用于保护数字内容的装置和方法 Download PDF

Info

Publication number
CN104050396B
CN104050396B CN201410095760.5A CN201410095760A CN104050396B CN 104050396 B CN104050396 B CN 104050396B CN 201410095760 A CN201410095760 A CN 201410095760A CN 104050396 B CN104050396 B CN 104050396B
Authority
CN
China
Prior art keywords
address
page
destination
digital content
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410095760.5A
Other languages
English (en)
Other versions
CN104050396A (zh
Inventor
J·曼盖拉姆帕利
R·P·班金沃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104050396A publication Critical patent/CN104050396A/zh
Application granted granted Critical
Publication of CN104050396B publication Critical patent/CN104050396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

在本发明的一实施例中,一处理器包括内容存储逻辑以将数字内容解析成各部分并致使每个部分被存储到存储器的相应页中。该处理器还包括保护逻辑以接收具有存储器内的目的地地址的写指令,并且如果目的地地址与存储数字内容的一部分的存储器位置相关联,则擦除与该存储器位置相关联的页。如果目的地地址与未存储区数字内容中的任何部分的另一存储器位置相关联,则保护逻辑许可写指令的执行。描述并要求保护其他实施例。

Description

用于保护数字内容的装置和方法
技术领域
本发明的技术领域为数字内容的保护。
背景技术
经加密的数字内容可能在解密以后易受攻击。例如,对经解密的数字内容的一部分的盖写可能构成攻击。在攻击中,写入指令可能针对盖写数据类型指示符,该数据类型指示符指示数据串中的随后的数据是元数据还是有效载荷数据。将数据类型指示符从对有效载荷数据的指示盖写成对元数据的指示可能许可对有效载荷数据的未授权的访问。也就是说,由于存储在数据类型指示符之后的位置处的数据被重新标记为元数据而不是有效载荷数据,并且由于元数据通常是不受保护的,因此(未被正确标记的)有效载荷数据可能受到可能包括盗窃有效载荷数据的未经授权的访问。
附图说明
图1是根据本发明实施例的系统的一部分的框图。
图2是根据本发明实施例的另一系统的一部分的框图。
图3是根据本发明一实施例的示出写入在存储器中的数字内容的框图。
图4是根据本发明的实施例的保护数字内容的方法的流程图。
图5是根据本发明的实施例的处理器核的框图。
图6是根据本发明的实施例的处理器的框图。
图7是根据本发明的实施例的多域处理器的框图。
图8是根据本发明的实施例的包括多核的处理器的实施例的图示。
图9是根据本发明的实施例的系统的框图。
图10是根据本发明另一实施例的系统的框图。
具体实施方式
例如在数字权项管理(DRM)回放期间,可以将安全增强处理器(SEP)用于安全内容解密。内容可以被解密到隔离存储器区域(IMR)中、即具有可内置于相关联的硬件中的访问控制机制的专用存储器。IMR使用可以防止主处理器和恶意软件直接访问经解密的内容,并且可以仅仅允许所选子系统(例如安全引擎和硬件解码器)访问存储在IMR中的内容。
在解码器可以进行解码之前解码器可能需要关于受保护的压缩内容的信息。例如,在解码器对压缩数据进行解码以前,可能需要关于片(slice)元数据和实际受保护内容有效载荷的大小和位置的信息。这对例如“剪切和粘贴攻击”和“纯文本覆盖”之类的安全漏洞开放了可能性。例如,由于数据被安全引擎解析时的攻击,整个经解密的数据(包括受保护的有效载荷)可能被提供给主实体,因为安全引擎基于对报头信息的修改而错误地将该数据解释成元数据。因此,受保护的有效载荷内容可能被主机中的流氓应用窃取。
附加地,未经密码块对齐的较小分组可能作为来自内容提供者的纯文本材料到达,并且主机可以向安全引擎指定该分组不需要解密。因此,攻击者可能将“经盖写的纯文本部分”指定为不需要解密的内容。注意,安全引擎从主机获得位置信息(经过偏移量)。因此,主机可以潜在地以此方式发送不正确的数据以替换实际数据。
攻击场景对于可能发送不规则大小的未与实际视频帧对齐的分组的方案是可能的。攻击在其解码器本身不具有解析整个流的能力的硬件平台上也是可能的。
在一示例中,攻击可能针对已经被解密到IMR中的数据。在支持IMR的一些平台中,仅仅安全引擎具有对IMR的读写访问,而例如解码器之类的其他组件限于只读访问。安全引擎可以锁定经解密的数据,使得其仅仅被随后的安全视频路径组件消费,以潜在地消除“盖写”攻击并且可以在消费以后复位(例如解锁)。
然而,安全引擎可能不知道给定数据在何时被消费。此外,IMR可以在每个帧被解码器消费以前保持多个帧。因此,例如由安全引擎进行的数据写入和例如由解码器进行的数据读取可以以任意方式进行。
通常,帧在其被消费以前被整体解密,并且构成帧的多个分组以连续方式被馈送入安全引擎。也就是说,帧可以由多个分组构成,并且在另一帧的分组被解码以前,这些分组被连续地解码到IMR中,直到整个帧被解码到IMR中。
在本发明的一实施例中,IMR例如可以以每页(或每块)的粒度来提供写锁复位机构。页(或块)可以按照系统需要而具有任何粒度。页可以在系统启动时配置。被写入的页内的最后偏移量的运行OFFSET(偏移量)可以维护在与该页相关联的存储寄存器中。该OFFSET可以按如下方式在每次写入时被更新:如果新偏移量大于OFFSET,则写入被许可并且OFFSET可以被更新为被写入的最后位置。换言之,OFFSET被存储寄存器“锁定”。如果尝试对该页内的比OFFSET小的偏移量进行写入,则OFFSET可以被复位为0(页已解锁),该页可以被擦除,并且可以许可对该页内的任何偏移量进行新的写入。在所述写入以后,OFFSET可以再次更新。
可以在两种情况下尝试小于OFFSET的偏移量:1)新帧正在被写入/解密到IMR中。在这种情况下,通常进行对OFFSET的复位和该页的解锁。2)恶意软件尝试修改现有数据,在这种情况下,对OFFSET的修改和对整个页的清除(例如擦除)可以防止该修改。
可以使页大小为可调整或可配置的以适应帧大小。在一个示例中,当例如通过将写入偏移量与存储在存储寄存器中的OFFSET相比较而检测到攻击时,整个帧可以被清除。
在一实施例中,可以以固件或硬件来实现锁定和复位功能。例如,运行在SEP上的固件可以维护页属性(例如最后写入偏移量)并以软件来模仿锁定和复位功能。由于SEP固件预期运行在安全环境中,因此在以硬件实现时结果同样有效。
在各个实施例中,对数字内容的保护可以由处理器例如在数字内容已经被解密以后来提供。处理器可以包括内容存储逻辑以将数字内容解析成各部分并将每个部分存储到存储器的相应页中。处理器还可以包括保护逻辑以在经解析的数字内容被存储以后接收包括目的地地址的写入指令,并且如果写入指令的目的地地址是去往存储该数字内容的一部分的存储器位置,则保护逻辑可以擦除该页。如果目的地地址与未存储数字内容中的任何部分的另一存储器位置相关联,则保护逻辑可以执行写入指令。对其存储的数字内容为写入指令目标的页的擦除可以保护被擦除的数字内容不被未经授权方访问。
现在参考图1,所示是根据本发明的实施例的系统100的一部分的框图。如图1中所示,系统100可包括各个组件,包括安全增强处理器(SEP)102。
SEP102可以包括解密逻辑112以解密传入指令。SEP102可以包括存储器控制器中枢(MCH)110,该存储器控制器中枢(MCH)110可以包括内容存储逻辑114和保护逻辑116,该保护逻辑116可以包括地址存储逻辑118、地址比较逻辑120和页擦除逻辑122。MCH110还可以包括一个或多个存储寄存器1240、1241、…、124n以存储地址偏移量,例如相应页内的最后写入存储器位置的偏移量。注意,在图1中,SEP102是以高级别描绘的,并且应当理解,诸如SEP102之类的处理器可以包括许多其他特性。
系统100还可以包括存储器150,该存储器150可以是包括一个或多个隔离存储器区域(IMR)的访问受控存储器。在各个实施例中,存储器150可以是动态随机存储存储器(DRAM)、静态随机存取存储器(SDRAM)或另一类型的存储存储器。对IMR的访问可以由MCH110来确定。
存储器150可以通过MCH110耦合到解码器180。在一实施例中,解码器180可以例如与SEP102和存储器150一起位于主板(未示出)上。
存储器150的一部分可以被划分成一个或多个页1540、1541…、154n。在一实施例中,每个页都可以具有相同的存储容量,例如大致4千字节(kB)或另一存储容量。在另一实施例中,页1540-154n中的一个或多个页可以在存储容量方面不同于页1540-154n中的其他页。
在操作中,SEP102可以接收经加密的数字内容160并且解密逻辑112可以对经加密的数字内容160解密以产生(未加密的)数字内容。
在经加密的数字内容已经被解密以后,MCH110中的内容存储逻辑114可以将数字内容解析成一个或多个部分,例如每个部分对应于存储器的页1540、1541、…、154n之一。在一些实施例中,这些部分可以为相同大小。在其他实施例中,至少一个部分可以在大小方面不同于其他部分。在经解密的内容被解析成各部分以后,各部分可以由内容存储逻辑114来存储,其中每个部分被存储到相应的页1540、1541、…、154n中。
地址存储逻辑118可以将每个页1540、1541、…、154n内的最后写入存储器位置的地址作为自相应页的起始地址的偏移量存储到相应存储寄存器1240、1241、…、124n中。
SEP102可以接收程序指令170。程序指令之一可以是写入指令,其针对处于页1540、1541、…154n之一内的目的地地址。MCH110可以确定哪个页154i包括写入指令的目的地地址。地址比较逻辑120可以将写入指令的目的地地址的表示与对应于页154i的存储寄存器124i中所存储的地址的表示相比较。例如,地址比较逻辑120可以确定与写入指令的目的地地址相对应的偏移量小于或等于存储在与页154i的最后写入地址相对应的存储寄存器124i中的偏移量。如果被执行,则写入指令将盖写页154i中的所存储数据中的一些。例如,作为目标的要盖写的所存储数据可以包括有效载荷数据的数据指示符类型。如果数据指示符类型被盖写,则有效载荷数据可能被错误地标记为例如通常不受保护的元数据,并且因此有效载荷数据可能受到攻击。
如果确定目的地地址小于或等于由存储寄存器124i中存储的偏移量所表示的地址,则地址比较逻辑120可以触发页擦除逻辑122以擦除页154i。页154i的擦除可以保证存储在该页中的数字内容将不会受到未经授权的访问。在一实施例中,在擦除以后,页154i可以被留为空白。
如果所接收的写入指令的目的地地址大于存储寄存器124i中所存储的地址,则写入指令可以被执行,例如附加的数据可以被写入页154i,例如页154i的未被写入的部分。
页1540、1541、…、154n的内容可以通过MCH110被提供给解码器180以用于解码,并且经解码的数据例如可以作为视频、音频或其他专有内容被输出。在攻击场景中,页154i可以被擦除并被解码为噪声,并且可以作为噪声被输出,其中该噪声可用于指示数字内容162已经被攻击。
现在转向图2,所示是根据本发明的另一实施例的系统200的一部分的框图。如图2所示,系统200可以包括各个组件,包括可耦合到存储器控制器中枢(MCH)222的处理器210。处理器210可以是可包括核2110、2111、…、211n的多核处理器。处理器210还可以包括解密逻辑212以解密经加密的数字内容。
MCH222可以耦合到存储器220,比如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或另一类型的存储器。MCH222可以包括内容存储逻辑224和保护逻辑226,该保护逻辑226可以包括地址存储逻辑228、地址比较逻辑230和页擦除逻辑232。MCH222还可以包括一个或多个存储寄存器2420、2421、…、242n,每个寄存器用于将存储器220中的页的地址存储为例如自相应页的初始地址的偏移量。
存储器220可以被划分成一个或多个页2400、2401、…、240n。在一实施例中,每个页可以为相同的容量,例如大致4千字节(kB)。在另一实施例中,页中的一些可以在容量方面不同于存储器220内的其他页。
存储器220可以通过MCH222耦合到解码器280,该解码器280可以被配置为在存储在存储器220中的数据(例如有效载荷数据)已经被存储在页2400、2401、…、240n中以后对所述数据进行解码。
在操作中,处理器210可以接收经加密的数字内容260并且解密逻辑212可以对经加密的数字内容260解密以产生(未加密的)数字内容。存储器管理控制器222内的内容存储逻辑224可以将数字内容解析成一个或多个部分,例如每个部分对应于页2400、2401、…、240n之一。在一些实施例中,这些部分可以为相同大小。在其他实施例中,至少一个部分可以在大小方面不同于其他部分中的至少一个部分,其中每个部分的大小被确定为页2400、2401、…、240n中相应的一个页。内容存储逻辑224可以将每个部分存储到相应页2400、2401、…、240n中。
存储器管理控制器222的保护逻辑226内的地址存储逻辑228可以将每个页2400、2401、…、240n内的最后写入存储器位置的相应地址存储到相应的存储寄存器2420、2421、…、242n中。在一实施例中,每个地址可以被存储为自相应页2400、2401、…、240n的初始地址的相应偏移量。
处理器210可以接收程序指令270。程序指令270之一可以是写入指令,其针对处于页2400、2401、…、240n之一内的目的地地址。例如,写入指令可以具有页2400内的目的地地址。
地址比较逻辑230可以将写入指令的目的地地址与包括该目的地地址的相应页的存储寄存器(例如存储寄存器2420)中所存储的地址相比较。例如,与该目的地地址相对应的偏移量可以被确定并与存储寄存器2420中所存储的最后写入偏移量相比较。如果地址比较逻辑230确定目的地地址小于或等于由存储在存储寄存器2400中的偏移量表示的地址,则写入指令在被执行的情况下将盖写页2400中所存储的数据中的一些。因此,地址比较逻辑230可以触发页擦除逻辑232擦除页2400。页2400的擦除可以保证:之前存储在该页中的数字内容将不会受到未经授权的访问,该未经授权的访问例如可能通过盖写数据类型指示符来进行,其中该数据类型指示符在该盖写以前指示跟在后面的是有效载荷数据。
如果地址比较逻辑230确定写入指令的目的地地址如通过将目的地地址与存储寄存器中的所存储的最后写入地址相比较(例如通过将所存储的偏移量与同目的地地址相对应的偏移量相比较)所确定的那样处于最后写入地址之后,则可以对写入指令的目的地地址执行该写入。由于目的地地址之前还未被写入,因此没有数据将会由于执行写入指令而被盖写。
转到图3,所示为根据本发明实施例的要存储在存储器中的数字内容的框图。经解密的数字内容310可以包括第一数据类型指示符302、第一数据304、第二数据类型指示符306和第二数据308。在一实施例中,第一数据类型指示符302可以指示:第一数据304为元数据,第二数据类型指示符306可以指示:第二数据308为有效载荷数据。
存储器320可以包括清除解锁页322。存储器管理控制器(未示出)内的内容存储逻辑可以将数字内容310的一部分写入到页322,从而产生包含数字内容310的一部分的页324。在对页322的写入(“第一写入”)完成以后,与页324内的最后写入数据地址相对应的最后写入偏移量可以存储在相应的存储寄存器(未示出)。在第一写入完成以后,页324可以被锁定以防止对页324的另一写入。
随后,如果接收到对页324的附加写入指令,则与该附加写入指令的目的地地址相对应的偏移量可以与存储在与页324相对应的存储寄存器中的最后写入偏移量相比较。如果所述附加的写入指令的目的地地址处于页324中的在先写入的结尾以后(例如附加写入指令的目的地地址偏移量处于所存储的最后写入偏移量之后),则被锁定的页324可以被解锁(例如被解锁的页325)并且所述附加的写入指令可以被执行以写入附加的数据来产生页326,该页326可以在所述附加的写入指令被执行以后被锁定。所存储的最后写入偏移量可以在相应的存储寄存器中被更新以反映存储在页326中的附加数据。
如果与附加写入指令的目的地地址相关联的偏移量同最后写入偏移量的比较指示:附加写入指令针对已经被写入的页地址,则该页的内容可以被擦除(转储清除)以产生(干净的)页328。最后写入偏移量可以被复位为0并且存储在与页328相对应的存储寄存器中。页326中的所存储数字内容的擦除可以保证:之前存储的数字内容将不会被破坏。
经擦除的页可以被解锁以实现对页328的随后写入,这将产生页330,该页330又可以在该随后的写入被执行以后被锁定。所存储的偏移量可以在页330的相应存储寄存器中被更新以反映该页的由于随后的写入被占据的部分。
转到图4,所示是根据本发明的实施例的保护数字内容的方法的流程图。在框420开始,传入的经加密的数字内容可以由例如安全增强处理器或者由多核处理器来解密。
继续进行到框404,经解密的数字内容可以被例如存储器控制器中枢解析成各部分。例如,每个部分的大小可以被确定为存储在例如隔离存储器区域(IMR)或系统存储器(例如DRAM)的页中,或者在一个实施例中,每个页可以具有相同的存储容量(例如4kB),或者在另一实施例中,页中一些的存储容量可以不同于其他页的存储容量。页中的一些可以在数字内容被存储以后被部分地填充。
前进到框406,每个部分可以被存储到IMR或系统存储器的相应页中。移动到框408,每页内的最后写入存储器位置的最后写入偏移量(对应于页内的地址)可以存储在相应的寄存器中,该相应的寄存器可以位于例如存储器控制中枢中或者诸如系统存储器之类的存储器中。
前进到410,写入指令可以被(处理器)接收,该写入指令具有页之一内的要向其存储数字内容部分的目的地地址。继续进行到判定菱形框412,可以由处理器例如通过与所存储的最后写入偏移量相比较来作出判断:写入指令的目的地地址是否小于或等于相应页内的最后写入存储器位置地址。如果目的地地址大于最后写入存储器位置地址,则前进到框414,写入指令可以被执行,例如写入指令致使附加的数据被写入相应页内的空白存储器位置。前进到框418,相应页的所存储的最后写入偏移量可以被更新以反映附加的所存储的数据,并且继续进行到框420,该方法结束。如果目的地地址小于或等于最后写入存储器位置地址,则在框416,该页可以被擦除。移动到框417,存储在相应存储寄存器中的最后写入偏移量可以被复位为例如0以反映被擦除的页。回到框414,写入指令可以被执行。前进到框418,相应页的所存储的最后写入偏移量可以被更新以反映附加的所存储的数据,并且继续进行到框420,该方法结束。
图4的方法可以由硬件、软件、固件或其组合来执行。尽管在图4的实施例中是以高级别示出的,但是能够理解,本发明的范围不受此限制。
各实施例可在许多不同的系统中实现。例如,实施例可在诸如多核处理器之类的处理器中实现。现在参照图5,图5示出了根据本发明一个实施例的处理器核的框图。如图5所示,处理器核500可以是多核处理器中的一个核,并且被示为多级流水线化的乱序处理器。
如图5所示,核500包括前端单元510,前端单元510可用于取得将被执行的指令并将这些指令准备好以供以后在处理器中使用。例如,前端单元510可包括获取单元501、指令高速缓存503和指令解码器505。在某些实现中,前端单元510可进一步包括跟踪高速缓存、微码存储以及微操作存储。获取单元501可(例如,从存储器或指令高速缓存503)获取宏指令并将它们馈送至指令解码器505以将它们解码为原语,即用于通过处理器执行的微操作。
乱序(OOO)引擎515耦合在前端单元510与执行单元520之间,乱序引擎515可用于接收微指令并将它们准备好以供执行。更具体地,OOO引擎515可包括多个缓冲器,用于对微指令流重新排序并分配执行所需的各种资源,以及例如通过使用该引擎的重命名逻辑来提供逻辑寄存器到各个寄存器文件(诸如寄存器文件530和扩展寄存器文件535)内的存储位置上的重命名。寄存器文件530可包括用于整数和浮点操作的单独的寄存器文件。扩展寄存器文件535可提供向量尺寸单元的存储,例如,每寄存器256或512位。
在执行单元520中可存在多种资源,包括例如多种整数、浮点和单指令多数据(SIMD)逻辑单元等其它专门硬件。例如,此类执行单元可包括一个或多个算术逻辑单元(ALU)522。当然,还可存在诸如乘法累加单元之类的其他执行单元等等。结果可以被提供给隐退逻辑,该隐退逻辑可以实现在处理器的存储器子系统560内。例如包括执行单元和前端逻辑的各个处理器结构可以耦合到存储器子系统560。该存储器子系统可提供处理器结构与存储器层次的其他部分(例如芯片上或芯片外的高速缓存和系统存储器)之间的接口。如所看见那样,各子系统具有各个组件,包括存储器排序缓冲器(MOB)540。更具体地,MOB540可包括各种阵列和逻辑以接收与被执行的指令相关联的信息。然后,通过MOB540检查该信息以确定指令是否可以有效隐退并且结果数据是否被提交至处理器的架构状态,或阻止指令的正常隐退的一个或多个异常是否发生。当然,MOB540可处理与隐退相关联的其他操作。
如图5所示,MOB540耦合至高速缓存550,在一个实施例中,该高速缓存550可以是低级高速缓存(例如L1高速缓存)。存储器子系统560还可包括集成存储器控制器570以提供与系统存储器(在图5中为了说明方便而未示出)的通信。存储器子系统560还可包括存储器执行单元(MEU)575,该存储器执行单元575处理各种操作,以发起存储器请求并且处理数据从存储器的返回。例如,MEU575可以实施将数字内容解析成各部分、将各部分存储到相应的页中、存储每页的最后写入偏移量、以及确定写入指令是否针对页内的包括数字内容的存储器位置。如果写入指令针对页内的存储数字内容的存储器位置,则MEU575可以擦除包括目的地存储器位置的页,如在此参照本发明的实施例所描述的。
从存储器子系统560,可发生与更高级高速缓存、系统存储器等等的数据通信。虽然在图5的实施例中用高级框图示出,但应理解本发明的范围不限于此方面。例如,虽然图5的实现方式是参照乱序机、比如所谓的x86指令集架构(ISA)的乱序机的,但本发明的范围在此方面不受限制。即,其他实施例可在以下处理器中实现:顺序处理器;诸如基于ARM的处理器之类的精简指令集计算(RISC)处理器;或具有另一类型ISA的处理器,该另一类型的ISA可经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作。
现在参考图6,所示是根据本发明的实施例的处理器的框图。如图6所示,处理器600可以是在核域610中包括多个核610a-610n的多核处理器。在一个实施例中,每个核可以包括存储器执行单元(未示出),其包括内容存储逻辑、地址存储逻辑、地址比较逻辑和页擦除逻辑,如在此处在本发明的实施例中所描述的。如在图6中进一步示出的那样,一个或多个图形处理单元(GPU)6120-612n可以存在于图形域612中。这些各个计算元件可经由互连615耦合到系统代理或非核部分620,非核部分620包括各个组件。可以看出,非核620可以包括作为末级高速缓存的共享高速缓存器630。
另外,非核部分可以包括集成存储器控制器640和各个接口650。在本发明的一些实施例中,存储器控制器640可以将经解密的数字内容解析成各部分,将这些部分存储在系统存储器660的相应页中,并且存储每个页的最后写入偏移量。根据本发明的实施例,存储器控制器640可以确定写入指令是否具有将所述页之一内的数字内容中的一些存储到的存储器位置的目的地地址,并且如果是这样,则可以擦除该页。
进一步参考图6,处理器600可(诸如经由存储器总线)与系统存储器660进行通信。此外,通过接口650,可连接到多种芯片外组件,诸如,外围设备、大容量存储器、等等。尽管在图6的实施例中利用此特定实现示出的,但是,本发明的范围在这方面不受限制。
现在参考图7,所示是根据本发明的另一个实施例的多域处理器的框图。如图7的实施例中所示,处理器700包括多个域。具体而言,核域710可以包括多个核7100–710n,图形域720可以包括一个或多个图形引擎,并且还可以存在系统代理域750。
注意,尽管仅仅示出为具有三个域,但是能够理解,本发明的范围不在此方面受限,并且在其他实施例中可以存在附加的域。例如,可以存在多个核域,每个核域包括至少一个核。
一般而言,每个核710还可以包括除了各个执行单元之外的低级高速缓存和附加的处理元件。各个核可以彼此耦合以及耦合到共享高速缓存存储器,其由上一级高速缓存(LLC)7400–740n的多个单元形成。在各个实施例中,LLC740可以在各个核、图形引擎以及各个媒体处理电路系统间共享。可以看出,环形互连730因此将各个核耦合在一起,并且提供各个核、图形域720和系统代理电路系统750之间的互连。
在图7的实施例中,系统代理域750可以包括显示控制器752,其可以提供对相关联的显示器的控制和接口。可进一步看出,系统代理域750可以包括功率控制单元755。
在图7中可进一步看出,处理器700还可以包括集成存储器控制器(IMC)770,其可以提供到诸如动态随机存取存储器(DRAM)之类的系统存储器(未示出)的接口。根据本发明的实施例,IMC770可以将经解密的数字内容解析成各部分,将这些部分存储在系统存储器的相应页中,并且存储每个页的最后写入偏移量。根据本发明的实施例,IMC770可以确定写入指令是否具有将所述页之一内的数字内容中的一些存储到的存储器位置的目的地地址(例如通过将目的地地址的表示与该页的最后写入偏移量相比较),并且如果是这样,则可以擦除该页。
可以存在多个接口7800–780n以实现处理器与其他电路系统之间的互连。例如,在一个实施例中,可以提供至少一个直接媒体接口(DMI)接口、以及一个或多个外围组件互连快速(PCI ExpressTM(PCIeTM))接口。另外,为了提供诸如附加处理器或其他电路系统之类的其他代理之间的通信,还可以提供根据Intel快速路径互连(QPI)协议的一个或多个接口。虽然在图7的实施例中以这一高级框图示出,但应理解本发明的范围不限于此方面。
参考图8,示出了包括多个核的处理器的实施例。处理器800包括任何处理器或处理器件,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协同处理器、片上系统(SOC)、或用于执行代码的其它器件。在一个实施例中,处理器800包括至少两个核——核801和802,它们可包括非对称核或对称核(所示实施例)。然而,处理器800可包括可以是对称的或非对称的任何数量的处理元件。
在一个实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其它元件,这些元件能够保持处理器的诸如执行状态或架构状态之类的状态。换言之,在一个实施例中,处理元件指的是能够独立地与代码(诸如软件线程、操作系统、应用或其它代码)相关联的任何硬件。典型地,物理处理器指的是集成电路,该集成电路潜在地包括任何数量的其它处理元件(诸如核或硬件线程)。
核通常指的是位于集成电路上的能够维持独立体系结构状态的逻辑,其中每个独立维持的体系结构状态与至少一些专用的执行资源相关联。与核相反,硬件线程典型地表示位于集成电路上的能够维持独立体系结构状态的任何逻辑,其中被独立维持的体系结构状态共享对执行资源的访问。如可以看到,当某些资源被共享而其它资源专属于体系结构状态时,硬件线程与核的命名之间的界限交迭。不过,核和硬件线程通常被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
如图8所示的物理处理器800包括两个核——核801和802。在此,核801和802被视为对称核,即这些核具有相同的配置、功能单元和/或逻辑。在另一个实施例中,核801包括无序处理器核,而核802包括有序处理器核。然而,核801和802可从任何类型的核中单独地选择,诸如原生核、受软件管理的核、适于执行原生指令集体系结构(ISA)的核、适于执行转换ISA的核、协同设计的核或其它已知核。不过,为进一步讨论,以下将进一步详细描述在核801中示出的功能单元,因为核802中的单元以类似方式操作。
如所描绘,核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的部分之类的其它资源潜在地被完全共享。
处理器800通常包括其它资源,这些其它资源可被完全共享、通过分区被共享、或由处理元件指定/专属于处理元件。在图8中,示出了具有处理器的说明性的逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省去这些功能单元中的任意功能单元,且可包括未描绘的任何其它已知的功能单元、逻辑或固件。如图所示,核801包括简化的、代表性的无序(OOO)处理器核。但是有序处理器可用于不同实施例中。OOO核包括用于预测要被执行/进行的分支的分支目标缓冲器820以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)820。
核801进一步包括耦合至取出单元820以用于解码所取出的元素的解码模块825。在一个实施例中,取出逻辑包括分别与线程槽801a、801b相关联的单独定序器。通常,核801与第一ISA相关联,该第一ISA定义/指定能在处理器800上执行的指令。通常作为第一ISA一部分的机器码指令包括该指令的一部分(称为操作码),该指令引用/指定待执行的指令或操作。解码逻辑825包括由这些指令的操作码来识别这些指令并在流水线上传递所解码的指令以进行如第一ISA所定义的处理的电路。例如,在一个实施例中,解码器825包括被设计成或适于识别诸如事务性指令之类的特定指令的逻辑。作为解码器825识别的结果,体系结构或核801采取特定的、预定的动作以执行与适当指令相关联的任务。重要的是,注意到本文描述的任何任务、框、操作和方法可响应于单个或多个指令而被执行;其中一些可以是新的或者旧的指令。
在一个示例中,分配器和重命名器块830包括用于保留资源(诸如用于写入指令处理结果的寄存器文件)的分配器。然而,线程801a和801b潜在地能够进行无序执行,其中分配器和重命名器块830还保留其它资源(诸如用于跟踪指令结果的重排序缓冲器)。单元830还可包括寄存器重命名器,用于将程序/指令引用寄存器重命名为处理器800内部的其它寄存器。重排序/隐退单元835包括诸如上述的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件,以支持无序执行的指令的无序执行和稍后的有序隐退。
在一个实施例中,调度器和执行单元块840包括调度器单元,用于调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。也可包括与执行单元相关联的寄存器文件,以存储信息指令处理结果。示例性的执行单元包括:浮点执行单元、整数执行单元、跳跃执行单元、加载执行单元、存储执行单元以及其它已知的执行单元。
较低级的数据高速缓存和数据转换缓冲器(D-TLB)850耦合至执行单元840。数据高速缓存用于存储最近使用/操作的元素(诸如数据操作数),这些元素在存储器一致性状态下潜在地被保持。D-TLB用于存储最近的虚拟到物理地址转换/线性到物理地址转换。
在此,核801和802共享对较高级或进一步的高速缓存810的访问,较高级或进一步的高速缓存110用于缓存最近取出的元素。注意,较高级或进一步指的是高速缓存级增加或进一步远离执行单元。在一个实施例中,较高级高速缓存810是最后级数据高速缓存——处理器800上的存储器层次中的最后级高速缓存,诸如第二或第三级数据高速缓存。然而,较高级高速缓存810不限于此,因为它可与指令高速缓存相关联或包括指令高速缓存。替代地,跟踪高速缓存——一种类型的指令高速缓存——可耦合在解码器825之后,用于存储最近解码的跟踪。
在所描绘的配置中,处理器800还包括控制器870。根据本发明的实施例,控制器870可以将经解密的数字内容解析成各部分并且将所述各部分存储在系统存储器875的相应页中。根据本发明的实施例,控制器870可以确定写入指令是否具有将所述页之一内的数字内容中的一些存储到的存储器位置的目的地地址(例如通过将目的地地址的表示与该页的最后写入偏移量相比较),并且如果是这样,则可以擦除该页。
在该场景中,总线接口805与处理器800外部的设备通信,处理器800外部的设备诸如系统存储器875、芯片组(通常包括存储器控制器中枢以连接到存储器875以及I/O控制器中枢以连接到外围设备)、存储器控制器中枢、北桥、或其它集成电路(未示出)。并且在该场景中,总线805可包括任何已知的互连,诸如多点总线、点对点互连、串行互连、并行总线、一致性(例如高速缓存一致性)总线、分层协议体系结构、差分总线以及GTL总线。
存储器875可专属于处理器800或与系统中的其它器件共享。存储器875的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。注意,器件880可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控制器中枢的数据存储,无线收发器,闪存器件,音频控制器,网络控制器,或其它已知器件。
注意,在所描绘的实施例中,控制器870被示为处理器800的一部分。最近,随着更多的逻辑和器件被集成在单个管芯上(如SOC),这些器件中的每一个可被合并在处理器800上。例如,在一个实施例中,存储器控制器中枢870与处理器800处于同一封装和/或管芯上。在此,核的一部分(核上部分,on-core portion)包括与诸如存储器875和图形器件880之类的其它器件进行接口的控制器870。包括用于与此类器件进行接口的控制器和互连的该配置通常被称为核上(或非核(un-core)配置)。作为示例,总线接口805包括环形互连,环形互连具有用于与存储器875进行接口的存储器控制器以及用于与图形处理器880进行接口的图形控制器。然而,在SOC环境中,诸如网络接口、协同处理器、存储器875、图形处理器880以及任何其它已知计算机器件/接口之类的甚至更多的器件可被集成到单个管芯或集成电路上,以提供具有高功能性和低功耗的小外形规格。
各实施例可以以许多不同的系统类型来实现。现在参考图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。
仍参考图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可以确定写入指令是否具有将所述页之一内的数字内容中的一些存储到的存储器位置的目的地地址(例如通过将目的地地址的表示与该页的最后写入偏移量相比较),并且如果是这样,则可以擦除该页。
此外,芯片集990包括接口992,以通过P-P互连939将芯片集990与高性能图形引擎938耦合。芯片集990又可以通过接口996耦合到第一总线916。如图9所示,各种输入/输出(I/O)设备914以及总线桥接器918可以耦合到第一总线916,总线桥接器918将第一总线916耦合到第二总线920。在一个实施例中,各个设备可以耦合到第二总线920,包括,例如,键盘/鼠标922、通信设备926和数据存储单元928(诸如磁盘驱动器或其他大容量存储设备)。进一步地,音频I/O924可以耦合到第二总线920。各实施例可以被合并到其他类型的系统中,包括诸如智能蜂窝电话、UltrabookTM、平板计算机、上网本等等之类的移动设备。
即,在其他实施例中,处理器架构可包括仿真特征,使得处理器可执行称为源ISA的第一ISA的指令,其中该架构是根据第二ISA的,该第二ISA被称为目标ISA。一般而言,包括OS和应用程序的软件被编译至源ISA,而硬件实现针对给定硬件实现方式而特别设计的具有特殊性能和/或能源效率特征的目标ISA。
参考图10,示出根据本发明的另一实施例的系统1000的框图。系统1000包括处理器1010和存储器1030。处理器1010可以是片上系统(SOC)并且可以包括:安全引擎1012;核单元1014,其可包括一个或多个核、高速缓存存储器、以及用于与其他SOC组件通信的接口;存储1016;以及编码/解码逻辑1018。
在操作中,安全引擎1012可以解码传入的经加密数据1020。安全引擎1012可以将(未加密的)数据解析成各部分并可将这些部分存储在存储器1030内的相应页中。安全引擎1012可以将与每页的最后写入地址相对应的最后写入偏移量存储在相应存储寄存器中。在一个实施例中,存储寄存器可以位于处理器1010内。在另一实施例中,存储寄存器可以位于存储器1030内。
核单元1014可以接收写入指令,所述写入指令的目的地地址处于页之一中。安全引擎1012可以执行最后写入偏移量与同写入指令的目的地地址相关联的写入偏移量的比较。安全引擎1012可以基于最后写入偏移量与该写入偏移量的比较来锁定或解锁对页的写入访问。例如,如果该写入偏移量大于最后写入偏移量,则安全引擎1012可以解锁对相应页的写入访问,而如果该写入偏移量小于或等于最后写入偏移量,则安全引擎1012可以锁定对相应页的写入访问,将最后写入偏移量复位为0,并且擦除(例如转储清除)相应页的内容。
各实施例可在许多不同类型的系统中使用。例如,在一个实施例中,通信设备可以被安排为执行在此所述的各个方法和技术。各实施例可以被合并到其他类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、UltrabookTM等等之类的移动设备。当然,本发明的范围不限于通信设备,而是其他实施例可以针对用于处理指令的其他类型的装置或者包括指令的一个或多个机器可读介质,所述指令响应于在计算设备上被执行而致使该设备执行在此所述的方法和技术中一个或多个。
以下示例涉及进一步的实施例。在一实施例中,一处理器包括内容存储逻辑以将数字内容解析成各部分并致使每个部分被存储到存储器的相应页中。处理器还包括保护逻辑以接收具有存储器内的目的地地址的写入指令。如果目的地地址与存储数字内容中的一些的存储器位置相关联,则保护逻辑将擦除与该存储器位置相关联的页,而如果目的地地址与不存储数字内容中的任何部分的另一存储器位置相关联,则保护逻辑将许可该写入指令的执行。
在另一实施例中,处理器包括解密逻辑以解密经加密的数字内容并将数字内容输出到内容存储逻辑。
在一实施例中,每个页具有相同的页大小。
在一实施例中,处理器包括一个或多个存储,每个存储用于存储相应页的最后写入地址的表示。在一实施例中,最后写入地址的表示包括自相应页的初始地址的偏移量。
保护逻辑可以将目的地地址的表示与存储在存储之一中的最后写入地址的表示相比较以确定与该目的地地址相关联的存储器存储位置是否存储了数字内容中的一些,并且如果该目的地地址大于最后写入地址,则保护逻辑可以确定与该目的地地址相关联的存储器存储位置未存储数字内容中的任何部分,并且保护逻辑可以许可写入指令的执行。
如果目的地地址处于特定页的开始处与最后写入地址之间,则保护逻辑可以擦除特定页的内容并且可以复位最后写入地址的表示。
在一实施例中,一系统包括处理器、耦合到该处理器的动态随机存取存储器(DRAM)、耦合到该DRAM的存储器控制器以将数字内容写入到该DRAM中的多个页中。响应于由处理器接收到具有页之一中的存储器存储位置的目的地地址的写入指令,存储器控制器可以在该存储器存储位置未存储数字内容中的任何部分的情况下执行写入指令并且在该存储器存储位置存储有数字内容中一些的情况下擦除该页。
在一实施例中,存储器控制器包括多个寄存器,每个寄存器存储与相应页的最后写入地址相对应的最后写入偏移量。
在一实施例中,存储器控制器可以将与目的地地址相对应的目的地偏移量与存储在寄存器之一中的偏移量相比较以确定与该目的地地址相关联的存储器存储位置是否存储有数字内容中的一些。如果该目的地偏移量处于特定页的开始处与最后写入偏移量之间,则存储器控制器可以确定与该目的地地址相关联的存储器存储位置存储有数字内容中的一些。
如果存储器存储位置存储有数字内容中的一些,则存储器控制器可以在该页被擦除以后复位最后写入偏移量。如果该目的地偏移量大于最后写入偏移量,则存储器控制器可以确定与该目的地地址相关联的存储器存储位置未存储数字内容中的任何部分。
在一实施例中,一种方法包括:将数字内容解析成各部分;将每个部分存储到存储器的相应页中;将写入指令的目的地地址与所述页之一的最后写入地址相比较以确定相应存储器位置是否存储所述数字内容中的一些;在相应存储器存储位置存储有所述数字内容中的一些的情况下擦除所述页中的至少一页;以及在相应存储器存储位置未存储所述数字内容中的任何部分的情况下执行所述写入指令。
该方法还可以包括:在解析所述数字内容以前解密所述数字内容。
比较可以包括:确定第一页包括所述目的地地址,并且如果所述目的地地址处于第一页的第一写入地址与第一页的最后写入地址之间,则确定相应存储器存储位置存储有所述数字内容中的一些。
该方法可以包括:如果目的地地址未处于第一页的第一写入地址与第一页的最后写入地址之间,则确定相应存储器位置未存储数字内容中的任何部分。该方法还可以包括:响应于写入指令的执行更新相应的最后写入地址。
在一实施例中,至少一个机器可读介质包括一个或多个指令,所述指令在处理器上被执行时将处理器配置为执行该方法的前述实施例中的一个或多个。
在一实施例中,一种装置可以被配置为执行该方法的前述实施例中的一个或多个。
在一实施例中,一种设备包括用于执行该方法的前述实施例中的任何实施例的装置。
在一实施例中,一处理器可以包括一个或多个核和保护逻辑,该保护逻辑用于响应于与写入指令相关联的写入偏移量同存储在第一存储中并与第一页的最后写入存储器位置相关联的最后写入偏移量的比较来确定是否解锁对存储器的第一页的写入访问。保护逻辑可以响应于指示该写入偏移量超过该最后写入偏移量的比较来解锁对第一页的写入访问并许可写入指令的执行。
该处理器可以包括更新逻辑以响应于写入指令的执行来用该写入偏移量替换第一存储中的该最后写入偏移量。
保护逻辑可以响应于指示该写入偏移量小于或等于该最后写入偏移量的比较来擦除第一页。
该处理器可以包括更新逻辑以在擦除页以后复位第一存储中的最后写入偏移量。
各实施例可以以代码来实现,并可以存储在在其上存储了指令的非瞬时的存储介质上,指令可以被用来对系统进行编程以执行指令。存储介质可以包括,但不仅限于,任何类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、光盘只读存储器(固态驱动器)、光盘可重写(CD-RW),以及磁光盘、诸如只读存储器(ROM)之类的半导体器件、诸如动态随机存取存储器(DRAM)、和静态随机存取存储器(SRAM)之类的随机访问存储器(RAM)、可擦除编程只读存储器(EPROM)、闪存、电可擦除编程只读存储器(EEPROM)、磁卡或光卡,或适于存储电子指令的任何其他类型的介质。
尽管是参考数量有限的实施例来描述本发明的,但是,那些精通本技术的人将从其中理解很多修改和变体。所附权利要求书涵盖所有这样的修改和变体都将在本发明的真正的精神和范围内。

Claims (25)

1.一种用于保护内容的处理器,包括:
多个存储寄存器,各自都用于存储从存储器的页的起始地址的偏移值,其中每一个偏移值对应于相应页内的相应的最后写入地址,所述偏移值将由相应的存储寄存器锁定;
内容存储逻辑单元,耦合至所述多个存储寄存器,用于:将数字内容解析成各部分,将每个部分存储到存储器的相应页中,以及将相应的偏移值存储在所述多个存储寄存器中相应的存储寄存器;以及
保护逻辑单元,响应于接收到由写入指令指定的目的地地址而用于以下操作,所述目的地地址与所述存储器的第一页内的存储器存储位置相关联以存储所述数字内容的被解析内容:
基于所述目的地地址的表示与所述相应的存储寄存器的偏移值的比较来确定与所述目的地地址相关联的所述存储器存储位置是否存储所述数字内容中的一些;以及
如果与所述目的地地址相关联的所述存储器存储位置存储所述数字内容中的一些,则擦除所述第一页;以及如果与所述目的地地址相关联的所述存储器存储位置未存储所述数字内容中的任何数字内容,则许可所述写入指令的执行。
2.如权利要求1所述的处理器,其特征在于,还包括解密逻辑单元,其用于解密经加密的数字内容并将所述数字内容输出到所述内容存储逻辑单元。
3.如权利要求1所述的处理器,其特征在于,每个页具有相同的页大小。
4.如权利要求1所述的处理器,其特征在于,如果所述目的地地址小于所述页之一内的最后写入地址,则所述保护逻辑单元确定与所述目的地地址相关联的存储器存储位置未存储所述数字内容中的任何部分。
5.如权利要求1所述的处理器,其特征在于,如果所述目的地地址处于特定页的开始处与所述页之一内的最后写入地址之间,则所述保护逻辑单元确定与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些。
6.如权利要求5所述的处理器,其特征在于,所述处理器复位所述最后写入地址的表示。
7.一种用于保护内容的处理系统,包括:
处理器;
耦合到所述处理器的动态随机存取存储器(DRAM);以及
耦合到所述DRAM的存储器控制器,所述存储器控制器用于将数字内容写入所述DRAM中的多个页中,其中所述存储器控制器包括:
多个存储寄存器,每一个存储寄存器都用于存储对应于相应页的最后写入地址的最后写入偏移,其中相应的存储寄存器用于锁定所述最后写入偏移;
保护逻辑单元,所述保护逻辑单元响应于由所述处理器接收到具有目的地地址的写入指令而用于以下操作,所述目的地地址与所述页中的第一页内的存储器存储位置相关联以存储所述数字内容的被解析内容:
基于所述目的地地址的表示与所述相应的存储寄存器的最后写入偏移的比较来确定与所述目的地地址相关联的存储器存储位置是否存储所述数字内容中的一些;以及
如果与所述目的地地址相关联的所述存储器存储位置未存储所述数字内容中的任何部分,则执行所述写入指令;以及
如果与所述目的地地址相关联的所述存储器存储位置存储所述数字内容中的一些,则擦除所述第一页。
8.如权利要求7所述的系统,其特征在于,如果所述目的地偏移量处于特定页的开始处与所述最后写入偏移量之间,则所述保护逻辑单元确定与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些。
9.如权利要求7所述的系统,其特征在于,如果所述存储器存储位置存储所述数字内容中的一些,则所述保护逻辑单元复位所述最后写入偏移量。
10.如权利要求7所述的系统,其特征在于,如果所述目的地偏移量大于所述最后写入偏移量,则所述保护逻辑单元确定与所述目的地地址相关联的存储器存储位置未存储所述数字内容中的任何部分。
11.一种用于保护内容的方法,包括:
将数字内容解析成各部分;
将每个部分存储到存储器的相应页中,并且对于每一页,将对应于所述相应页的相应的最后写入地址的相应的最后写入偏移值存储到多个存储寄存器中的相应存储寄存器中,其中所述相应存储寄存器用于锁定所述最后写入偏移值;
将由写入指令指定的目的地地址的表示与存储在所述相应存储寄存器中的最后写入偏移地址相比较以确定与所述目的地地址相关联的存储器存储位置是否存储所述数字内容中的一些,其中所述目的地地址与所述存储器的第一页内的存储器存储位置相关联以存储所述数字内容的被解析部分;
在与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些的情况下,擦除特定页;以及
在与所述目的地地址相关联的存储器存储位置未存储所述数字内容中的任何部分的情况下,执行所述写入指令。
12.如权利要求11所述的方法,其特征在于,还包括:在解析所述数字内容以前解密所述数字内容。
13.如权利要求11所述的方法,其特征在于:
确定与所述目的地地址相关联的存储器存储位置是否存储所述数字内容中的一些包括:
如果与所述目的地地址相关联的存储器存储位置处于所述第一页的第一写入地址与所述第一页的最后写入地址之间,则确定与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些;以及
如果与所述目的地地址相关联的存储器存储位置未处于所述第一页的第一写入地址与所述第一页的最后写入地址之间,则确定与所述目的地地址相关联的存储器存储位置未存储所述数字内容中的任何部分。
14.如权利要求11所述的方法,其特征在于,还包括:响应于所述写入指令的执行更新相应的最后写入地址。
15.一种用于保护内容的装置,包括:
多个存储寄存器,每一个存储寄存器都用于存储对应于相应页的相应最后写入地址的相应最后写入偏移值,其中相应的存储寄存器用于锁定所述最后写入偏移值;
内容存储逻辑单元,耦合至所述多个存储寄存器,用于将数字内容解析成各部分并将每个部分存储到存储器的相应页中;
保护逻辑单元,与所述内容存储逻辑单元耦合,所述保护逻辑单元包括:
地址比较逻辑单元,用于将由写入指令指定的目的地地址的表示与所述相应的存储寄存器中存储的最后写入偏移值相比较以确定与所述目的地地址相关联的存储器存储位置是否存储所述数字内容中的一些,其中所述目的地地址与所述第一页内的存储器存储位置相关联以存储所述数字内容的被解析部分;
页擦除逻辑单元,用于在与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些的情况下擦除所述第一页;以及
地址存储逻辑单元,用于在与所述目的地地址相关联的存储器存储位置未存储所述数字内容中的任何部分的情况下执行所述写入指令。
16.如权利要求15所述的装置,其特征在于,还包括解密逻辑单元,用于在解析所述数字内容以前解密所述数字内容。
17.如权利要求15所述的装置,其特征在于,所述地址比较逻辑单元用于确定与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些包括地址比较以:
如果所述目的地地址处于所述第一页的第一写入地址与所述第一页的最后写入地址之间,则确定与所述目的地地址相关联的存储器存储位置存储所述数字内容中的一些;以及
如果所述目的地地址未处于所述第一页的第一写入地址与所述第一页的最后写入地址之间,则确定与所述目的地地址相关联的存储器存储位置未存储所述数字内容中的任何部分。
18.如权利要求15所述的装置,其特征在于,还包括更新逻辑单元,用于响应于所述写入指令的执行更新相应的最后写入地址。
19.一种用于保护内容的处理器,包括:
一个或多个核;
多个存储寄存器,每一个存储寄存器都用于存储对应于相应页的最后写入地址的最后写入偏移,其中相应的存储寄存器用于锁定所述最后写入偏移;以及
保护逻辑单元,用于基于由对存储器的第一页的写入指令指定的目的地地址的写入偏移量同存储在第一存储中并与所述第一页的最后写入存储器存储位置相关联的最后写入偏移量的比较以:
确定与所述目的地地址相关联的存储器存储位置是否存储数字内容中的一些;以及
确定是否解锁对所述存储器的第一页的写入访问。
20.如权利要求19所述的处理器,其特征在于,所述保护逻辑单元响应于指示所述写入偏移量超过所述最后写入偏移量的比较来解锁对所述第一页的写入访问并许可写入指令的执行。
21.如权利要求19所述的处理器,其特征在于,还包括更新逻辑单元,其用于响应于所述写入指令的执行来用所述写入偏移量替换所述第一存储中的最后写入偏移量。
22.如权利要求19所述的处理器,其特征在于,所述保护逻辑单元用于响应于指示所述写入偏移量小于或等于所述最后写入偏移量的比较来擦除所述第一页。
23.如权利要求19所述的处理器,其特征在于,还包括更新逻辑单元,其用于响应于指示所述写入偏移量小于或等于所述最后写入偏移量的比较来复位所述第一存储中的最后写入偏移量。
24.一种机器可读介质,包括存储在所述机器可读介质上的多条指令,所述多条指令当被执行时使计算设备执行如权利要求11-14中任一项所述的方法。
25.一种用于保护内容的设备,包括用于执行如权利要求11-14中任一项所述的方法的装置。
CN201410095760.5A 2013-03-15 2014-03-14 用于保护数字内容的装置和方法 Active CN104050396B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/833,119 2013-03-15
US13/833,119 US9411983B2 (en) 2013-03-15 2013-03-15 Apparatus and method to protect digital content

Publications (2)

Publication Number Publication Date
CN104050396A CN104050396A (zh) 2014-09-17
CN104050396B true CN104050396B (zh) 2018-11-06

Family

ID=50634704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410095760.5A Active CN104050396B (zh) 2013-03-15 2014-03-14 用于保护数字内容的装置和方法

Country Status (7)

Country Link
US (2) US9411983B2 (zh)
JP (1) JP5789320B2 (zh)
KR (1) KR101632235B1 (zh)
CN (1) CN104050396B (zh)
BR (1) BR102014006230A2 (zh)
DE (1) DE102014003687A1 (zh)
GB (1) GB2513982B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
FR3030827B1 (fr) 2014-12-19 2017-01-27 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de traitement securise de donnees cryptees
US9614666B2 (en) * 2014-12-23 2017-04-04 Intel Corporation Encryption interface
US9852072B2 (en) * 2015-07-02 2017-12-26 Netapp, Inc. Methods for host-side caching and application consistent writeback restore and devices thereof
US10346641B2 (en) * 2016-09-23 2019-07-09 Intel Corporation Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101185067A (zh) * 2005-05-23 2008-05-21 松下电器产业株式会社 存储器控制器、非易失性存储装置、非易失性存储系统及存储器控制方法
CN101901129A (zh) * 2004-12-02 2010-12-01 英特尔公司 以高性能方式从cpu或处理单元中访问物理存储器的方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026478A (en) * 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6646646B2 (en) * 2000-12-13 2003-11-11 Micron Technology, Inc. Memory system having programmable multiple and continuous memory regions and method of use thereof
JP4375935B2 (ja) * 2002-01-22 2009-12-02 スパンション エルエルシー 不正読み出し防止機能付き半導体不揮発性メモリ
US7444682B2 (en) 2002-07-03 2008-10-28 Macronix International Co., Ltd. Security memory device and method for making same
KR20050023248A (ko) * 2002-08-01 2005-03-09 마츠시타 덴끼 산교 가부시키가이샤 암호화된 데이터를 해독하고 해독된 데이터를 실행을 위해사용되는 메모리 공간에 로케이트시키는 장치 및 방법
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US20060029102A1 (en) * 2004-08-03 2006-02-09 Fujitsu Limited Processing method of fragmented packet
JP4490331B2 (ja) * 2004-08-03 2010-06-23 富士通株式会社 断片パケット処理方法及びこれを用いるパケット転送装置
KR100827227B1 (ko) * 2005-06-24 2008-05-07 삼성전자주식회사 저성능 저장장치의 drm 권리 객체를 효율적으로관리하는 방법 및 장치
US7797463B2 (en) * 2005-06-30 2010-09-14 Intel Corporation Hardware assisted receive channel frame handling via data offset comparison in SAS SSP wide port applications
JP4787055B2 (ja) * 2006-04-12 2011-10-05 富士通株式会社 情報分割記録機能を持つ情報処理装置
WO2007138599A2 (en) * 2006-05-31 2007-12-06 Storwize Ltd. Method and system for transformation of logical data objects for storage
US8514886B2 (en) * 2007-11-23 2013-08-20 International Business Machines Corporation Method and user device for receiving digital transmissions
US8370644B2 (en) 2008-05-30 2013-02-05 Spansion Llc Instant hardware erase for content reset and pseudo-random number generation
US8213618B2 (en) * 2008-12-30 2012-07-03 Intel Corporation Protecting content on client platforms
US8413253B2 (en) 2009-12-30 2013-04-02 Intel Corporation Protecting persistent secondary platform storage against attack from malicious or unauthorized programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901129A (zh) * 2004-12-02 2010-12-01 英特尔公司 以高性能方式从cpu或处理单元中访问物理存储器的方法和装置
CN101185067A (zh) * 2005-05-23 2008-05-21 松下电器产业株式会社 存储器控制器、非易失性存储装置、非易失性存储系统及存储器控制方法

Also Published As

Publication number Publication date
JP5789320B2 (ja) 2015-10-07
JP2014183579A (ja) 2014-09-29
BR102014006230A2 (pt) 2018-02-14
US20160285637A1 (en) 2016-09-29
US9673985B2 (en) 2017-06-06
KR101632235B1 (ko) 2016-06-21
GB2513982A (en) 2014-11-12
CN104050396A (zh) 2014-09-17
DE102014003687A1 (de) 2014-09-18
US20140281584A1 (en) 2014-09-18
US9411983B2 (en) 2016-08-09
KR20140113578A (ko) 2014-09-24
GB201404484D0 (en) 2014-04-30
GB2513982B (en) 2015-09-02

Similar Documents

Publication Publication Date Title
CN104050396B (zh) 用于保护数字内容的装置和方法
CN104951697B (zh) 来自过程指令的返回-目标限制性返回、处理器、方法及系统
US11281562B2 (en) Method and system for cache agent trace and capture
CN104620254B (zh) 用于低开销的存储器重播保护的并行化的计数器攀树
KR101461378B1 (ko) 동기화 simd 벡터
CN102906720B (zh) 启用/禁用计算环境的适配器
TWI808869B (zh) 硬體處理器及處理器
CN108351830A (zh) 用于存储器损坏检测的硬件装置和方法
TW201713096A (zh) 用以支援保護容器的即時遷移之處理器、方法、系統和指令
CN112041837A (zh) 用于政策执行处理的系统及方法
CN108292221A (zh) 事务结束加上持续性提交指令、处理器、方法和系统
KR20170033891A (ko) 보호 영역에서의 메모리 초기화
CN105453030B (zh) 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统
CN109690552A (zh) 用于判定是否将受保护容器页的加密副本加载到受保护容器存储器中的处理器、方法、系统和指令
CN110472444A (zh) 防止对加密存储器的未授权访问
CN104246694B (zh) 聚集页错误信令和处理
US20220004668A1 (en) Lockable partition in nvme drives with drive migration support
CN108369553A (zh) 用于范围保护的系统、方法和装置
CN105027137B (zh) 用于针对增强型安全检查的页走查扩展的装置和方法
US20190156015A1 (en) Smm protection utilizing ring separation and smi isolation
US11868306B2 (en) Processing-in-memory concurrent processing system and method
WO2014122554A1 (en) Key-based data security management
US20220414022A1 (en) Apparatus, system, and method for secure memory access control
US20230259294A1 (en) Systems, methods, and apparatus for copy destination atomicity in devices
Maas et al. A high-performance oblivious RAM controller on the convey HC-2ex heterogeneous computing platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant