CN103946824B - 一种用于非易失性随机访问存储器的访问控制方法、装置及系统 - Google Patents
一种用于非易失性随机访问存储器的访问控制方法、装置及系统 Download PDFInfo
- Publication number
- CN103946824B CN103946824B CN201180074963.0A CN201180074963A CN103946824B CN 103946824 B CN103946824 B CN 103946824B CN 201180074963 A CN201180074963 A CN 201180074963A CN 103946824 B CN103946824 B CN 103946824B
- Authority
- CN
- China
- Prior art keywords
- nvram
- agency
- band
- random access
- access 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
Links
- 238000000034 method Methods 0.000 title claims description 24
- 238000003860 storage Methods 0.000 claims abstract description 81
- 239000013598 vector Substances 0.000 claims description 19
- 239000000758 substrate Substances 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims 3
- 229920000682 polycarbomethylsilane Polymers 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 18
- 239000003795 chemical substances by application Substances 0.000 description 14
- 230000005291 magnetic effect Effects 0.000 description 13
- 238000005538 encapsulation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 239000011229 interlayer Substances 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- JWZQBEUBJXSDPP-UHFFFAOYSA-N 5-cyclohexyl-6-methylpyrimidine-2,4-diamine Chemical compound CC1=NC(N)=NC(N)=C1C1CCCCC1 JWZQBEUBJXSDPP-UHFFFAOYSA-N 0.000 description 2
- 101100072002 Arabidopsis thaliana ICME gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000005387 chalcogenide glass Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000001786 chalcogen compounds Chemical class 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000001483 mobilizing effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种控制器被用于计算机系统中以控制对NVRAM的访问。计算机系统包括耦合到非易失性随机访问存储器(NVRAM)的处理器。NVRAM是字节可重写且字节可擦除的。NVRAM存储要被包括带内代理和带外代理的一组代理所使用的数据。带内代理在具有一个或多个核的处理器上运行,并且带外代理在非主机处理元件上运行。当控制器从带外代理接收到访问请求时,控制器基于与带外代理关联的属性来确定NVRAM中的区域是否可由带外代理和至少一个带内代理共享。
Description
技术领域
本发明的实施例大体上涉及计算机系统的领域。更特别地,本发明的实施例涉及用于计算机系统中的非易失性随机访问存储器的访问控制机制。
背景技术
在常规的计算机系统中,系统存储器(也称为主存储器、初级存储器、可执行存储器)通常由动态随机访问存储器(DRAM)来实现。因为基于DRAM的存储器不断对内部电容器进行再充电,所以其即使在不发生存储器读或写时也消耗功率。基于DRAM的存储器是易失性的,这意味着一旦断开电源,就会丢失在DRAM存储器中存储的数据。对于许多计算机系统特别是移动平台而言,功率利用率在成本和性能方面是关键问题。
相变存储器(PCM)(有时也称为相变随机访问存储器(PRAM或PCRAM)、PCME、双向统一存储器、或硫属化合物RAM(C-RAM))是利用硫属化合物玻璃的独特特性的一种类型的非易失性计算机存储器。由于由电流的经过而产生的热量,所以硫属化合物玻璃能够在两个状态之间切换:晶体和非晶体。PCM的近期版本能够实现两个附加的不同状态。因而,显著地提高了储存密度和容量。
PCM提供比闪速存储器(也称为“闪速”)更高的性能,原因在于PCM的存储元件能够切换得更快,写(将单独的位变为1或0)能够在不需要首先擦除整个单元块的情况下完成,并且从写的退化更慢(PCM设备可以幸存大约1亿个写周期;PCM退化是由于编程期间的热膨胀、金属(和其它材料)迁移、以及其它机制)。
发明内容
在本发明的一方面,提供了一种用于非易失性随机访问存储器的访问控制方法,包括:由计算机系统的控制器从在非主机处理元件上运行的带外代理接收用以访问非易失性随机访问存储器(NVRAM)的访问请求,所述非易失性随机访问存储器(NVRAM)是字节可重写且字节可擦除的,所述非易失性随机访问存储器(NVRAM)在其上存储了要被包括带内代理和所述带外代理的一组代理所使用的数据,其中所述带内代理在具有一个或多个核的处理器上运行;以及由所述控制器基于与所述带外代理关联的属性来确定所述非易失性随机访问存储器(NVRAM)中的区域是否可由所述带外代理和至少一个所述带内代理共享。
在本发明的另一方面,提供了一种用于非易失性随机访问存储器的访问控制装置,包括:处理器,包括一个或多个核以执行计算机系统中的多个带内代理的操作;非主机处理 元件,执行所述计算机系统中的带外代理的操作;非易失性随机访问存储器(NVRAM),是字节可重写且字节可擦除的,所述非易失性随机访问存储器(NVRAM)在其上存储了要被包括所述带内代理和所述带外代理的一组代理所使用的数据;以及控制器,耦合到所述非易失性随机访问存储器(NVRAM)以控制由所述代理对所述非易失性随机访问存储器(NVRAM)的访问,所述控制器从所述带外代理接收访问请求,并且基于与所述带外代理关联的属性来确定所述非易失性随机访问存储器(NVRAM)中的区域是否可由所述带外代理和至少一个所述带内代理共享。
在本发明的还有另一方面,一种用于非易失性随机访问存储器的访问控制系统,包括:计算机系统中的基板上的网络接口;处理器,包括一个或多个核以执行所述计算机系统中的多个带内代理的操作;非主机处理元件,执行所述计算机系统中的带外代理的操作,微控制器耦合到所述网络接口;非易失性随机访问存储器(NVRAM),是字节可重写且字节可擦除的,所述非易失性随机访问存储器(NVRAM)在其上存储了要被包括所述带内代理和所述带外代理的一组代理所使用的数据;以及控制器,耦合到所述非易失性随机访问存储器(NVRAM)以控制由所述代理对所述非易失性随机访问存储器(NVRAM)的访问,所述控制器从所述带外代理接收访问请求,并且基于与所述带外代理关联的属性来确定所述非易失性随机访问存储器(NVRAM)中的区域是否可由所述带外代理和至少一个所述带内代理共享。
本发明的实施例在允许多个不同的代理访问相同的存储设备的同时保护在存储设备中存储的重要数据。在一些实施例中,该存储设备由非易失性随机访问存储器(NVRAM)来实现,诸如相变存储器(PCM)、具有开关的PCM(PCMS)、或相关的存储器技术。本发明的实施例提供代理特定的访问控制,以使得基于代理的身份来使所指定的NVRAM区域对于该代理而言可访问。例如,高权限的代理(例如,在处理器上运行的核微码)能够访问整个NVRAM,而低权限的代理(例如,在处理器上运行的应用)仅能够访问NVRAM的部分。基于可配置的访问控制向量(ACV),代理能够具有对所指定的NVRAM区域的排他或共享的访问。可由代理访问的NVRAM区域被称为由该代理“拥有”的区域。排他访问允许代理保护其拥有的区域中的数据,从而防止另一个代理(可以是第三方代理)修改该区域中存储的数据。例如,在微码拥有的区域中存储的数据能够是包含微码开发者想要保护以免受第三方影响的专有信息的微码补丁。通过将存储微码补丁的区域指定为不可共享,其它代理(例如,操作系统(OS))将不能访问专有信息。
在常规的计算机系统中,排他访问通常通过为不同的代理使用单独的存储设备来实 行;例如,基本输入/输出系统(BIOS)使用闪速存储设备,管理引擎(ME)使用另一个闪速存储设备,并且OS使用动态随机访问存储器(DRAM)。为了系统集成和成本降低,对于这些代理而言使用具有容纳代理的所有数据的充足容量的相同存储设备是有益的。然而,在典型的计算机系统中,核微码能够由处理器制造商来开发,而引导固件、OS、和应用等中的一些能够由一个或多个第三方厂商来提供。为它们使用相同的存储设备会造成数据安全问题。为了使平台代码与第三方扩展代码隔离,本发明的实施例提供用于控制对该公共存储设备的访问的访问控制机制。在一个实施例中,该公共存储设备是NVRAM(例如,PCMS),并且访问控制机制由耦合到NVRAM的控制器来执行。计算机系统能够是服务器计算机或移动计算系统。
本发明的实施例还允许对NVRAM区域的共享访问,以使得由一个代理在NVRAM区域中所存储的关键数据能够由另一个代理共享。共享访问能够有益于诊断和错误恢复。例如,NVRAM区域能够被用来存储由系统引导过程中的核微码所使用的数据。该NVRAM区域能够被指定为在核微码和ME之间“可共享”。在一个实施例中,ME是即使在处理器核不可操作时也能够进行操作的微控制器。如果该共享区域的内容被损害而使得致使核微码不可操作,那么ME能够访问被损害的内容并且更新或恢复该内容。作为另一个示例,基板管理控制器(BMC)和BIOS能够共享对相同的NVRAM区域的访问,所述NVRAM区域存储被用于引导平台的BIOS映像更新。如果BIOS映像更新被损害或以其它方式致使不可操作,那么BMC能够远程地更新被损害的映像以解决任何错误的状况并允许平台引导。
附图说明
以下描述和附图被用来图示本发明的实施例。在所述附图中:
图1图示根据本发明的一个实施例的用于非易失性随机访问存储器(NVRAM)的访问控制机制。
图2图示根据本发明的一个实施例的计算机系统中的带内和带外代理的配置。
图3A图示根据本发明的一个实施例的中央处理单元(CPU)封装上的NVRAM控制器。
图3B图示根据本发明的可替代实施例的NVRAM卡/立管/夹层上的NVRAM控制器。
图4图示根据本发明的一个实施例的在其中可以实现本发明的实施例的计算机系统。
图5是根据本发明的一个实施例的图示用于NVRAM的访问控制的方法的流程图。
具体实施方式
在以下描述中,阐述了许多特定细节(诸如,逻辑实现、操作码、规定操作数的方法、资源划分/共享/复制实现、系统组件的类型和相互关系、以及逻辑划分/集成选择),以便提供对本发明的更透彻的理解。然而,本领域技术人员将会领会的是,本发明可以在不具有此类特定细节的情况下实施。在其它实例中,未详细地示出控制结构、门级电路和全软件指令序列,以免使本发明晦涩难懂。本领域一般技术人员利用所包括的描述将能够在不进行过度实验的情况下,实现适当的功能。
本说明书中对“一个实施例”、“实施例”、“示例性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构、或特性,但每个实施例可以不必包括该特定的特征、结构、或特性。此外,此类短语不必指代相同的实施例。进一步地,当结合实施例来描述特定的特征、结构、或特性时,无论是否明确地描述,都主张在本领域技术人员的知识内,结合其它实施例来实现此类特征、结构、或特性。
在以下描述和权利要求中,可以使用术语“耦合”和“连接”以及其派生词。应该理解,这些术语不意为针对彼此的同义词。“耦合”被用来指示可以或可以不处于彼此直接物理或电气接触的两个或更多元件彼此进行协作或交互。“连接”被用来指示彼此耦合的两个或更多元件之间的通信的建立。
本文有时使用加括号的文本和具有虚线边(例如,大的虚线、小的虚线、点虚线、点)的块来图示将附加特征添加到本发明实施例的可选操作/组件。然而,此类注释不应该视为意味着这些是仅有的选项或可选的操作/组件,和/或具有实线边的块在本发明的某些实施例中不是可选的。
本文中术语“代理”指代能够访问在计算机系统的NVRAM中存储的数据的硬件、软件、或固件实体。代理能够是带内代理或带外代理。带内代理在处理器核(“核”)上运行。带外代理在非主机处理元件(例如,不是所述核之一并且能够独立于所述核而操作的微控制器)上运行,并且能够通过网络接口与系统管理员或远程服务器进行通信。在以上的描述中,OS、核微码、以及BIOS是带内代理的示例;ME和BMC是带外代理的示例。本发明的实施例允许NVRAM区域由两个或更多代理共享;例如,带内代理和带外代理,以使得由带内代理所拥有的NVRAM区域中的错误能够由带外代理来解决,原因在于运行带外代理的微控制器能够独立于运行带内代理的核而操作。
图1是图示在其中本发明的实施例能够操作的计算机系统的所选择的方面的高级框图。在一个实施例中,计算机系统100包括多个代理(例如,代理118)。代理118能够包 括任何数量的带内代理和任何数量的带外代理。带内代理的示例包括但不限于核微码、CPU/芯片集状态机、引导固件、BIOS、操作系统、管理程序(hypervisor)、用户域过程/应用、OS客户、以及系统管理模式(SMM)操作。这些带内代理中的一些能够被看作具有相同的代理类型,并且由相同的代理身份来标识;例如,能够将微码和CPU/芯片集状态机标识为代理A,能够将引导固件和BIOS标识为代理B,能够将操作系统和管理程序标识为代理C,能够将用户域过程/应用和OS客户标识为代理D,并且能够将SSM操作标识为代理E。带内代理在一个或多个核上运行。带外代理的示例包括但不限于BMC、ME、服务处理器、安全引擎、和系统控制单元。带外代理在能够位于处理器管芯(die)上、CPU封装上、耦合到处理器管芯的芯片集上、或耦合到处理器封装的基板上的非主机处理元件(例如,微控制器)上运行。微控制器能够独立于核而操作;也就是说,即使核未能正常地操作,微控制器也能够继续执行其功能。
在一个实施例中,代理118耦合到执行用于NVRAM 130的访问控制功能的NVRAM控制器132。NVRAM 130能够被分成许多区域,其中每个区域可由代理118中的一个或多个访问。一些区域(例如,区域1和其它区域)能够重叠,并且一些(例如,区域2和区域3)不重叠。在图1的示例中,区域1可以由代理A可访问,区域2由代理B,区域3由代理C等。在一个实施例中,NVRAM 130耦合到范围映射逻辑157。当代理118之一尝试访问NVRAM 130中的数据时,代理向NVRAM控制器132断言代理身份。范围映射逻辑157对代理身份解码以确定哪个NVRAM区域对于做出请求的代理而言可访问。
在一个实施例中,范围映射逻辑157通过查看访问控制向量(ACV)表158来执行范围映射。在一个实施例中,ACV表158被存储在NVRAM控制器132的内部存储器中。可替代地,ACV表158可以被存储在NVRAM控制器132之外并且可由NVRAM控制器132访问。ACV表158中的每个条目是描述与代理身份关联的属性的N元组向量(被称为ACV)。例如,ACV能够包括(代理身份、读(Y/N)、写(Y/N)、可执行(Y/N)、范围基、范围长度、加密(Y/N)、可共享(Y/N)、锁定(Y/N))。ACV的可替代实施例可以包括更多或更少的属性。例如,具有(代理A、Y、N、Y、Addr、Len、Y、Y、Y)的属性的ACV指示了地址范围(Addr,Addr+Len)中的NVRAM区域是只读的并且可由代理A执行,在将数据存储于其中之前要求加密,可与其它代理(例如,诸如BMC或ME之类的带外代理)共享,并且被锁定而免于其它代理的写访问。
在一个实施例中,代理身份是标识代理的唯一标识符。对于带内代理而言,该唯一标识符能够是代理的类型(例如,代理A-E)。对于带外代理而言,该唯一标识符能够是总 线地址(例如,串行外围接口(SPI)总线),其能够与代理的访问请求一起由计算机系统100的I/O子系统中的平台控制器中枢(PCH)(未示出)传递到NVRAM控制器132。在一个实施例中,属性“可共享”能够进一步指示其是否为读可共享、写可共享、或这二者的组合。在一个实施例中,属性“锁定”能够进一步指示NVRAM区域是能够被永久地锁定还是非永久地锁定。永久的锁定一旦锁定,就跨功率周期保持锁定。非永久锁定能够每当重置系统时被重置(即,解锁)。
在一个实施例中,NVRAM控制器132也耦合到在数据被存储到NVRAM 130中之前对所述数据进行加密的加密逻辑146。加密防止由恶意方的未授权访问。例如,恶意方可以将盖子揭离集成在处理器封装上的NVRAM封装,将NVRAM封装与系统板解除焊接,或者从系统移除NVRAM双列直插式存储模块(DIMM)。对NVRAM内容进行加密防止恶意方在平台硬件上发动Cyber 9-1-1(网络9-1-1)或day-0(零日漏洞)攻击。在一个实施例中,加密能够是可选的。ACV中的属性“加密”指示是否对NVRAM区域中存储的数据进行加密。
在一个实施例中,ACV表158能够由RAM或其它高速可编程存储器来实现。代理118能够具有不同的权限级别。具有高权限的代理(例如,核微码)能够在计算机系统100第一次启动时配置ACV表158。为了配置ACV表158,代理需要通过提供其证书来向NVRAM控制器132证明其身份。证书能够是能够由NVRAM控制器132使用对应的公开密钥来验证的秘密密钥,诸如私人密钥。如果验证了代理的证书,那么NVRAM控制器132执行管理动作来填充ACV表158。在可替代的实施例中,ACV表158能够由可重新编程ROM(例如,电可擦除可编程ROM(EEPROM))或其它可编程硬件来实现,并且能够由经授权的服务器在系统启动时间远程地编程。经授权的服务器可以由计算机系统100的制造商、第三方权威机构、或持有配置ACV表158的权利的任何权威机构来控制或拥有。在一个实施例中,微控制器(例如,ME)能够经由网络连接向经授权的服务器发送系统的证书,并且在成功认证时接收配置数据。当计算机系统100第一次引导时,其BIOS能够使用从经授权的服务器接收到的配置数据来对ACV表158进行编程。
图2是图示根据本发明的一个实施例的计算机系统200中的带内代理221和带外代理222的配置的框图。计算机系统200包括处理器110、NVRAM 130、和芯片集250位于其上的基板220。带内代理221在处理器110上运行;也就是说,其操作由处理器核来执行。在图2的实施例中,带内代理221包括代理A-E(例如,核微码、CPU/芯片集状态机、引导固件、BIOS、操作系统、管理程序、用户域处理/应用、OS客户、和系统管理模式 (SMM)操作)。在可替代的实施例中,计算机系统200能够包括更多或更少的带内代理。带外代理222在耦合到处理器110的非主机处理元件(例如,非主机处理元件270)上运行。带外代理222能够位于基板222(例如,BMC 230)上、芯片集250(例如,ME 135)上、和/或处理器110(例如,处理器管芯或CPU封装)上。例如,在可替代的实施例中,ME能够位于片上系统(SOC)配置中的CPU封装中。在一个实施例中,带外代理222还能够包括具有使用串行接口(例如,平台环境控制接口(PECI))来与处理器110通信的智能微控制器的插入式模块(例如,卡)。带外代理222(和它们在其上运行的微控制器)能够耦合到网络接口240以供经由网络260对远程资源进行访问。
在图2的实施例中,NVRAM控制器132被示出为位于处理器110上。在可替代的实施例中,如图3B中所示,NVRAM控制器132能够与NVRAM 130一起放置在卡/立管/夹层上。
图3A和3B是图示两个可替代实施例中的NVRAM控制器132的位置的框图。图3A示出其中NVRAM控制器132与集成存储器控制器(IMC)131一起放置在与处理器110相同的管芯或封装(被称为CPU封装201)上的实施例。NVRAM控制器132能够利用存储器总线或其它类型的总线而连接到NVRAM 130。例如,在一个实施例中,总线能够是NVRAM控制器132通过其来实现事务协议以与NVRAM 130通信的存储器总线(例如,DDR3、DDR4等)。NVRAM控制器132还可以通过诸如PCI高速(PCI-E)总线、桌面管理接口(DMI)总线、或利用事务协议的任何其它类型的总线之类的支持本地事务协议的总线来与NVRAM 130通信。
在图3B中所示的可替代实施例中,NVRAM控制器132可以位于管芯外或CPU封装外,通过诸如存储器总线(像DDR总线(例如,DDR3、DDR4等))、PCI高速总线、桌面管理接口(DMI)总线、或任何其它类型的总线之类的总线而耦合到处理器110或CPU封装201。在一个实施例中,NVRAM控制器132能够位于与NVRAM 130相同的物理模块(例如,卡、立管、夹层、双列直插式存储模块(DIMM)等)上。在这两个实施例中,来自带内代理和带外代理的所有访问请求在针对访问NVRAM 130的请求能够被准予之前通过NVRAM控制器132。在一些实施例中,NVRAM 130能够经由遵循与处理器间协议(例如,超传输3.0、快速路径互连(QPI)1.1和其变体等)相同的协议的高速链路而耦合到处理器110。在这些实施例中,NVRAM控制器132能够使用为这些高速链路而定义的协议来与NVRAM 130通信。
图4是图示根据本发明的一个实施例的访问控制的方法400的流程图。在一个实施 例中,NVRAM控制器132从计算机系统中的代理之一接收访问请求(块401)。访问请求指示代理身份、所请求的要访问的地址范围、和所请求的访问的类型(例如,读、写、执行等)。NVRAM控制器132首先确定做出请求的代理的身份是否匹配于ACV表158中所存储的代理身份(块402)。如果在ACV表158中不能找到代理身份,则拒绝该访问请求(块407)。一旦ACV被识别具有做出请求的代理的身份,NVRAM控制器132就进一步确定所请求的地址范围是否落入针对该代理的许可范围内(块403)。如果所请求的地址范围未落入许可范围内,则拒绝该访问请求(块407)。如果所请求的地址范围落入许可范围内,那么NVRAM控制器132基于所识别的ACV的属性(例如,可读、可写、可执行等)来确定是否允许所请求的访问类型(块404)。如果不允许所请求的访问类型,则拒绝该访问请求(块407)。如果允许所请求的访问类型并且其是写访问,那么NVRAM控制器132基于所识别的ACV的“加密”属性来在写操作之前确定加密是否必要。类似地,如果允许所请求的访问类型并且其是读访问,那么NVRAM控制器132基于所识别的ACV的“加密”属性来在所请求的数据被读之后确定解密是否必要。如果加密属性是“是”(例如,如由被置为“1”的位所指示的),那么NVRAM控制器132执行对写加密或对读解密(块405)。然后NVRAM控制器132执行所请求的访问(块406),并且方法400从块401继续。
图5是图示在平台储存层级的一个或多个层中使用字节可寻址的NVRAM 130的计算机系统500的框图。本文中术语“平台储存层级”指代被计算机系统500用于存储数据、指令、状态、以及其它持久和非持久信息的整个储存介质。在一个实施例中,计算机系统500中的所有持久储存器能够采用可配置的方式合并成一个NVRAM 130。另外,NVRAM 130中的某一部分能够被分派为用于系统存储器的DRAM替换。NVRAM 130的多功能性促进技术从具有在持久的块导向文件系统上操作的OS的常规平台迁移到理解完全持久且字节可寻址的单级数据储存的OS。
在一个实施例中,NVRAM 130能够被配置成将典型平台储存层级中的角色实现为以下中的一个或多个:高速缓存、系统存储器(也称为主存储器、初级存储器、可执行存储器)、储存器(也称为辅储存器和大容量储存器)、和固件存储器(诸如,引导存储器(也称为BIOS闪速)、可信平台模块(TPM)存储器等)。还考虑具有不同角色的平台储存层级,并且NVRAM 130的应用不限于以上所描述的角色。
NVRAM 130根据其在平台储存层级中的特性和/应用而可与其它指令和数据存储器/储存器技术相区分。例如,NVRAM 130与以下不同:
1)静态随机访问存储器(SRAM),应用为专用于处理器核或由多个处理器核所共享的高速 缓存;
2)更高速存储器(例如,动态随机访问存储器(DRAM)),应用为处理器内部(例如,在与处理器相同的管芯上)和/或处理器外部(例如,在与处理器相同或不同的封装上)的一个或多个高速缓存;
3)闪速存储器/磁盘/光盘,应用为驱动储存器;以及诸如闪速存储器或只读存储器(ROM)之类的存储器,应用为引导ROM。
本发明的一个实施例中的NVRAM(例如,NVRAM 130)具有以下特性:
1)非易失性(即使断开电源,其也保持其内容,与被用于固态磁盘(SSD)中的闪速存储器相类似,并且与易失性的SRAM和DRAM不同);
2)比诸如SRAM和DRAM之类的易失性存储器更低的功耗;
3)随机访问(也称为随机可寻址);
4)以比SSD中找到的闪速(一次仅能够重写和擦除一“块”——在大小方面最小为对于NOR闪速而言64Kbyte并且对于NAND闪速而言16Kyte)更低的粒度级别(例如,字节级别)而可重写且可擦除;
5)可用作系统存储器并且被分配系统地址空间的全部或部分;
6)能够通过使用事务协议(支持事务标识符(ID)以区分不同事务以使得能够无序地完成那些事务的协议)的总线而耦合到处理器,并且允许以小到足以支持将NVRAM作为系统存储器来操作的粒度级别(例如,诸如64或128字节的高速缓存线大小)的访问。例如,总线可以是通过其来运行与通常所使用的非事务协议相对的事务协议的存储器总线(例如,诸如DDR3、DDR4等的DDR总线)。作为另一个示例,总线可以是足够小的事务有效载荷大小(例如,诸如64或128字节的高速缓存线大小)以及通常通过其来运行事务协议(本地事务协议)的总线,诸如PCI高速(PCIE)总线、桌面管理接口(DMI)总线、或利用事务协议的任何其它类型的总线;以及
7)以下中的一个或多个:
(a)比当前的非易失性存储器/储存器技术(诸如,闪速)更快的写速度;
(b)非常高的读速度(比闪速更快,并且接近或等价于DRAM读速度);
(c)直接可写(不同于像被用于SSD中的闪速存储器那样的在写数据之前需要进行擦除(利用1来改写));和/或
(d)故障之前的数量级(例如,2或3)更高的写耐久性(比被用于SSD中的引导ROM和闪速更久)。
如以上所提到的,对比于一次必须重写和擦除一个完整的“块”的闪速存储器,任何给定实现中的NVRAM被访问的粒度级别可以依赖于特定的存储器控制器和特定的存储器总线或NVRAM耦合到其的其它类型的总线。例如,在其中NVRAM 130被用作系统存储器的一些实现中,尽管固有能力是以字节的粒度而被访问,但NVRAM也可以以高速缓存线(例如,64字节或128字节高速缓存线)的粒度而被访问,原因在于高速缓存线是存储器子系统访问存储器的级别。因而,当在存储器子系统内部署NVRAM时,其可以以与被用于相同的存储器子系统中的DRAM(例如,“近存储器”)相同的粒度级别而被访问。即使如此,由存储器控制器和存储器总线或其它类型的总线对NVRAM访问的粒度级别也小于由闪速所使用的块大小和I/O子系统的控制器和总线的访问大小的粒度级别。
NVRAM 130可以被用作具有充分短的访问时间要求而对处理器引起较少影响的指令和数据储存器。本文,程序指令和数据可以在被处理器执行之前,从更深的闪速/磁/光大容量储存器152加载到NVRAM 130中。此外,如以下详细描述的,NVRAM 130可以被置于存储器总线上,并且可以与继而与处理器直接通信的存储器控制器直接通信。
用于NVRAM 130的新存储器技术的出现提供了很多新的可能性。尽管以下进一步以大得多的长度来讨论,但就在以下快速地突显了这些可能性中的一些。
根据一个可能的实现,NVRAM 130充当用于系统存储器中的传统DRAM技术的全部的替换或补充。在一个实施例中,NVRAM 130表示第二级系统存储器(例如,系统存储器作为DRAM 140和部分或全部NVRAM 130的组合)的引入。照此,系统存储器可以被视为具有近存储器部分NM 141A和远存储器部分FM 142。要领会的是,在不同的实施例中,近存储器能够充当存储器侧的高速缓存(例如,充当高速缓存的近存储器141B)、高速暂存、和与系统存储器不同的其它角色。
根据一些实施例,NVRAM 130提供NVRAM储存器150,其充当针对传统大容量储存器(例如,闪速/磁/光大容量储存器152)的全部的替换或补充。本申请中的术语“传统大容量储存器”指代基于光、磁和/或闪速技术的大容量储存器,诸如磁盘和闪速存储器。为了讨论的简单,闪速/磁/光大容量储存器152也称为传统大容量储存器152。因而,用于计算系统500的非易失性大容量储存器可以使用NVRAM、闪速存储器、磁储存器、或其任何组合来实现。在其中NVRAM储存器150充当用于传统大容量储存器152的全部的替换的实施例中,不必将储存器驱动器用于块可寻址储存器访问。从储存器访问移除储存器驱动器开销能够提高访问速度并节约功率。在其中期望NVRAM储存器150对于OS和/或应用而言看起来像块可访问和不可与传统大容量储存器152区分的可替代实施例中,模拟的储存 器驱动器能够被用来向软件暴露块可访问接口(例如,通用串行总线(USB)单批量(BOT)1.0、串行高级技术附件(SATA)3.0等)以供访问NVRAM储存器150。也就是说,在这些可替代实施例中,NVRAM 130的字节可寻址性能够被储存器驱动器用来在不引发I/O接口的成本的情况下,移动NVRAM储存器150的块并且模拟块可访问的大容量储存器。
根据一些实施例,NVRAM 130提供固件存储器160(例如,用于BIOS、TPM 134、ME 135等的固件存储器)。固件存储器160能够充当用于诸如BIOS闪速162和TPM闪速172之类的固件存储器的全部的替换或补充。固件存储器160通常利用闪速技术来实现,并且通常存储由处理器执行以在引导过程期间对关键系统组件进行初始化的初始指令(例如,BIOS)。固件存储器还能够存储被TPM 134用来保护敏感系统信息(例如,加密密钥)的系统持久状态。在一个实施例中,将NVRAM 130用于固件存储器160消除了对于第三方闪速部分存储对系统操作而言关键的代码和数据的需要。
应该理解,NVRAM 130能够包括比图5中所示的更多或更少的分区。存储和储存设备的选择可以依赖于设备被用于其上的平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、移动设备(例如,智能电话或PDA)中,非易失性大容量储存器可以单独使用NVRAM储存器150或结合闪速/磁储存器而使用NVRAM储存器150来实现。在其它实现(例如,大规模服务器)中,非易失性大容量储存器可以使用磁储存器(例如,硬盘驱动器)或磁储存器、闪速、和NVRAM储存器150的任何组合来实现。在此类情况下,负责储存的计算机系统硬件和/或软件可以实现各种智能型持久储存分配技术,以采用高效或其它方式有用的方式来在FM 142/NVRAM储存器150和传统大容量储存器152之间分配持久程序代码和数据的块。在一些实施例中,NVRAM 130可以变为芯片外(即,处理器芯片外)的单独的存储/储存设备。在一些实施例中,作为芯片外DRAM 140的代替或附加,可以在芯片上作为近存储器而提供DRAM 140;例如,作为充当高速缓存的NV 141B。这些实施例能够特别地与很小的平台(例如,智能电话或PDA)相关,其中多种存储器类/技术可能是成本过高的,并且更多的晶体管(包括储存器)能够被置于芯片上。
NVRAM 130可以包含“耗损均衡”算法以考虑以下事实:远存储器级别处的储存单元在太多次写访问之后开始耗尽。因为高周期计数块最可能以该方式而耗尽,所以耗损均衡通过将高周期计数块与低周期计数块的地址交换而跨远存储单元来散布写。注意,通常大多数地址交换对终端用户而言透明,原因在于其由硬件、软件(例如,低级别驱动器或操作系统)、或其组合来处理。
在一个实施例中,NVRAM 130能够利用非易失性随机访问存储器来实现,诸如PCM、或更具体地PCMS(也称为(PRAM或PCRAM)、双向统一存储器(OUM)、(CRAM))。用于远存储器的其它可能的技术选择包括但不限于字节可寻址持久存储器(BPRAM)、储存类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻式存储器(RRAM)、RESET(重置)(非晶体)单元、SET(设置)(晶体)单元、PCME、奥弗辛斯基、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子、SPRAM(自旋扭矩转换RAM)、STRAM(自旋隧道RAM)、磁阻、磁存储器、和磁随机访问存储器(MRAM))、以及半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称为介电存储器)。
为了解释的方便,本文的描述依照针对NVRAM 130的技术选择而有时提到“PCM”或“PCMS”。照此,术语“NVRAM”、“PCM”和“PCMS”可以可互换地使用。然而,如以上所讨论的,应该认识到不同的技术也可以被用于NVRAM 130。
然后继续图4的系统的讨论,尽管为了简单而在图4中图示了单个处理器110,但在一些实施例中,计算机系统500的架构可以包括多个处理器。处理器110可以是任何类型的数据处理器,包括通用或专用中央处理单元(CPU)、专用集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器110可以是通用处理器,诸如CoreTMi3、i5、i7、2双核和四核、XeonTM、或ItaniumTM处理器,所有的这些都可从加利福尼亚州圣克拉拉市的因特尔公司获得。可替代地,处理器110可以来自另一个公司,诸如加拿大森尼维尔市的ARM持股有限公司、加拿大森尼维尔市的MIPS科技公司等。处理器110可以是专用处理器,诸如,例如网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。处理器110可以在被包括在一个或多个封装内的一个或多个芯片上实现。处理器110可以属于和/或可以使用多种工艺技术(诸如,例如BiCMOS、COMS、或NMOS)中的任何一个而实现在一个或多个衬底上。
在一个实施例中,处理器110包括集成图形单元111,其包括用于执行诸如3D或2D图形命令之类的图形命令的逻辑。虽然本发明的实施例不限于任何特定的集成图形单元111,但在一个实施例中,图形单元111能够执行行业标准图形命令,诸如由OpenGL和/或Direct X应用编程接口(API)(例如,OpenGL 4.1和Direct X 11)所规定的那些。
尽管再次为了清楚起见而在图5中图示了单个核112,但处理器110可以包括一个或多个核112。在许多实施例中,核112包括内部功能块,诸如一个或多个执行单元、回收单元、一组通用和特定寄存器等。如果核112是多线程或超线程的,那么每个硬件线程也可以 视为“逻辑”核。核112可以在架构和/或指令集方面是同质或异质的。例如,一些核可以是有序的,而其它是无序的。作为另一个示例,两个或更多的核可以能够执行相同的指令集,而其它可以仅能够执行该指令集的子集或不同的指令集。
处理器110还可以包括可以被实现为SRAM和/或DRAM的一个或多个高速缓存,诸如高速缓存113。在未示出的许多实施例中,不同于高速缓存113的附加的高速缓存被实现成使得在一个或多个核112中的执行单元与存储设备141A和142之间存在多个级别的高速缓存。例如,该组共享高速缓存单元可以包括上级高速缓存(诸如级别1(L1)高速缓存)、中级高速缓存(诸如级别2(L2)、级别3(L3)、级别4(L4)、或其它级别的高速缓存)、末级高速缓存(LLC)、和/或其不同的组合。在不同的实施例中,高速缓存113可以采用不同的方式来分派,并且在不同的实施例中可以是许多不同的大小之一。例如,高速缓存113可以是8兆字节(MB)高速缓存、16MB高速缓存等。另外地,在不同的实施例中,高速缓存可以是直接映射的高速缓存、全关联的高速缓存、多路组关联的高速缓存、或具有另一种类型的映射的高速缓存。在包括多个核的其它实施例中,高速缓存113可以包括所有核之间共享的一个大部分,或者可以被分成若干单独功能片(例如,每个核一片)。高速缓存113还可以包括所有核之间共享的一个部分以及对于每核而言单独功能片的若干其它部分。在一个实施例中,高速缓存113可以包括充当高速缓存的DRAM NM 141B。
处理器110还可以包括归属代理114,其包括协调和操作一个或多个核112的那些组件。归属代理单元114可以包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括对于调节一个或多个核112和集成图形单元111的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
在一些实施例中,处理器110包括集成存储器控制器(IMC)131以提供用于与存储和储存子系统580通信的接口。更具体地,在一个实施例中,IMC 131包含对于从DRAM140读、向DRAM 140写、和刷新DRAM 140而言必要的逻辑。IMC 131能够处于与处理器110相同的芯片上,或连接到处理器110的单独的芯片和/或封装上。
在一些实施例中,处理器110耦合到I/O子系统115。I/O子系统115能够实现处理器110和以下串行或并行I/O设备之间的通信:一个或多个网络136(诸如,局域网、广域网、或因特网)、储存I/O设备(诸如,闪速/磁/光大容量储存器152、BIOS闪速162、TPM闪速172)、以及一个或多个非储存I/O设备137(诸如,显示器、键盘、扬声器、基板管理控制器(BMC)等)。I/O子系统115可以包括平台控制器中枢(PCH)(未示出),其进一步包括若干I/O适配器138和其它I/O电路以提供对储存及非储存I/O设备和网络的访问。 为了实现此,I/O子系统115可以具有用于所利用的每个I/O协议的至少一个集成I/O适配器138。I/O子系统115能够处于与处理器110相同的芯片上,或者连接到处理器110的单独的芯片/封装上。
I/O适配器138将处理器110内利用的主机通信协议转换为与特定的I/O设备兼容的协议。对于传统大容量储存器152而言,I/O适配器138可以转换的协议中的一些除其它之外尤其包括外围组件互连(PCI)-高速3.0、通用串行总线(USB)3.0、串行高级技术附件(SATA)3.0、小型计算机系统接口(SCSI)、廉价磁盘冗余阵列(RAID)和1394“火线”。对于BIOS闪速162而言,I/O适配器138可以转换的协议中的一些除其它之外尤其包括串行外围接口(SPI)、微总线。另外地,可以存在一个或多个无线协议I/O适配器。无线协议的示例除其它之外尤其是基于蓝牙4.0、IEEE 802.11的无线协议、和蜂窝协议。
在一些实施例中,I/O子系统115还包括管理引擎(ME)135,其是允许系统管理员监视、维护、更新、升级、和修复计算机系统500的微处理器(等价地是微控制器)。在一个实施例中,系统管理员能够经由网络136通过ME 135来远程地配置计算机系统500。在一个实施例中,配置能够被存储在处理器110内的解码表133中。解码表133能够由然后决定来自核112的数据访问请求应该被指向何处的IMC 131和I/O子系统115来读。
在一些实施例中,计算机系统500包括可信平台模块(TPM)134以控制对诸如安全数据、加密密钥、平台配置信息等之类的系统持久状态的访问。在一个实施例中,这些系统持久状态能够被存储在能够利用诸如PCMS之类的基于PCM的存储器而实现的NVRAM固件160中。
在一个实施例中,TPM 134是具有密码功能的安全微控制器。TPM 134具有多个信任相关的能力;例如,用于确保由TPM所保护的数据仅可用于相同的TPM的“密封”能力。TPM 134能够使用其加密能力来保护数据和密钥(例如,秘密)。在一个实施例中,TPM 134具有允许其认证硬件设备和平台的唯一且秘密的RSA密钥(其基于由Ron Rivest、Adi Shamir和Leonard Adleman所开发的RSA算法来生成)。例如,TPM 134能够验证寻求对计算机系统500中存储的数据的访问的系统是所预期的系统。TPM 134还能够报告平台(例如,计算机系统500)的完整性。这允许外部资源(例如,网络上的服务器)确定平台的可信度,但不防止由用户对平台的访问。
在一个实施例中,ME 135和TPM 134能够位于处理器管芯外的一个或多个芯片集上,但位于相同的CPU封装上(如利用将I/O子系统115与处理器110分离的点线而示出的)。该芯片集配置能够适于服务器平台。在可替代的实施例中,ME 135和TPM 134能够 位于片上系统(SOC)配置中的处理器管芯内。SOC配置适于移动平台和其它便携式系统。
应该理解,即使计算机系统的处理器不具有处理器110的以上所描述的组件的所有或者具有比处理器110更多的组件,所述计算机系统也能够将NVRAM 130用于系统存储器、大容量储存器、固件存储器和/或其它存储和储存目的。
在一个实施例中,如以上在图1-4中所描述的,计算机系统500包括NVRAM控制器132以控制对NVRAM 130的数据访问。NVRAM控制器132耦合到IMC 131和I/O子系统115。NVRAM控制器132能够从解码表133读配置数据,或者可替代地,能够依赖于从IMC 131和I/O子系统115传递的解码结果。在其中NVRAM 130利用PCMS来实现的实施例中,NVRAM控制器132是利用与PCMS技术一致的协议来执行字节级别的访问的PCMS控制器。
尽管IMC 131和NVRAM控制器132能够是两个分立的控制器(如在图5中利用将该两个控制器分离的点线而示出的),在一些实施例中,这两个控制器能够被实现为一个组合的控制器以控制对存储器和储存器的访问。在可替代的实施例中,NVRAM控制器132能够与NVRAM 130(如图3B中所示)放置在一起以控制对NVRAM存储单元的访问。在这些可替代的实施例中,能够在处理器110上提供NVRAM接口(未示出),以与NVRAM130对接。
在一些实施例中,NVRAM 130可以是芯片外(即,处理器芯片外)的单独的存储/储存设备。在一些实施例中,作为芯片外DRAM 140的代替,DRAM可以被用来提供芯片上高速缓存(例如,充当高速缓存的NM 141B)。这些实施例能够特别地与很小的平台(例如,智能电话或PDA)相关,其中多个存储器类/技术可能是成本过高的,并且更多的晶体管(包括储存器)能够被置于芯片上。
应该理解,流程图图4的操作能够由图1-3和5的实施例以及不同于这些图中所示出的那些的实施例来执行。另外地,参考图1-3和5而讨论的实施例能够执行与参考图4的流程图而讨论的那些不同的操作。
图4的流程图中所示出的技术能够使用在诸如非临时机器可读或计算机可读储存介质(例如,磁盘;光盘;随机访问存储器;只读存储器;闪速存储设备;和相变存储器)之类的非临时机器可读或计算机可读介质上存储的指令和数据来实现。
本发明的实施例还可以被提供为可以包括非临时机器可读介质的计算机程序产品,所述非临时机器可读介质在其上存储了可以被用来对计算机(或其它电子设备)编程以执行过程的指令。非临时机器可读介质可以包括但不限于软盘、光盘、CD-ROM、和磁光盘、 ROM、RAM、EPROM、EEPROM、磁或光卡、传播介质或适于存储电子指令的其它类型的介质/机器可读介质。本发明的实施例还可以作为计算机程序产品而下载,其中程序可以经由通信链路(例如,调制解调器或网络连接)通过体现在载波或其它传播介质中的数据信号的方式从远程计算机(例如,服务器)转移到做出请求的计算机(例如,客户端)。
虽然本发明已经根据若干实施例来描述,但本领域技术人员将意识到本发明不限于所描述的实施例,而能够利用所附权利要求的精神和范围内的修改和更改来实施。因而,本说明书应视为说明性而不是限制性。
Claims (21)
1.一种用于非易失性随机访问存储器的访问控制方法,包括:
由计算机系统的控制器从在非主机处理元件上运行的带外代理接收用以访问非易失性随机访问存储器(NVRAM)的访问请求,所述非易失性随机访问存储器(NVRAM)是字节可重写且字节可擦除的,所述非易失性随机访问存储器(NVRAM)在其上存储了要被包括带内代理和所述带外代理的一组代理所使用的数据,其中所述带内代理在具有一个或多个核的处理器上运行;以及
由所述控制器基于与所述带外代理关联的属性来确定所述非易失性随机访问存储器(NVRAM)中的区域是否可由所述带外代理和至少一个所述带内代理共享。
2.根据权利要求1所述的方法,其中所述非易失性随机访问存储器(NVRAM)包括相变存储器(PCM)。
3.根据权利要求1所述的方法,进一步包括:
检查存储用于每个所述代理的一个或多个访问控制向量的访问控制向量(ACV)表,以定位与所述带外代理关联的属性,其中每个访问控制向量规定NVRAM区域的地址范围和针对所述非易失性随机访问存储器(NVRAM)区域的许可访问类型。
4.根据权利要求3所述的方法,其中每个所述访问控制向量具有指示可由所述代理之一访问的给定非易失性随机访问存储器(NVRAM)区域是否可与所述代理中的另一个共享的属性。
5.根据权利要求1所述的方法,进一步包括:
如果在所述属性之一中规定了加密,那么在将数据写到所述区域中之前对所述数据进行加密。
6.根据权利要求1所述的方法,进一步包括:
从一组访问控制向量之一识别所述属性,所述访问控制向量在所述计算机系统第一次启动时是可配置的。
7.根据权利要求1所述的方法,进一步包括:
准予所述带外代理对所述区域的访问,以解决致使所述带内代理中的至少一个不可操作的所述区域中的错误。
8.一种用于非易失性随机访问存储器的访问控制装置,包括:
处理器,包括一个或多个核以执行计算机系统中的多个带内代理的操作;
非主机处理元件,执行所述计算机系统中的带外代理的操作;
非易失性随机访问存储器(NVRAM),是字节可重写且字节可擦除的,所述非易失性随机访问存储器(NVRAM)在其上存储了要被包括所述带内代理和所述带外代理的一组代理所使用的数据;以及
控制器,耦合到所述非易失性随机访问存储器(NVRAM)以控制由所述代理对所述非易失性随机访问存储器(NVRAM)的访问,所述控制器从所述带外代理接收访问请求,并且基于与所述带外代理关联的属性来确定所述非易失性随机访问存储器(NVRAM)中的区域是否可由所述带外代理和至少一个所述带内代理共享。
9.根据权利要求8所述的装置,其中,所述非易失性随机访问存储器(NVRAM)包括相变存储器(PCM)。
10.根据权利要求8所述的装置,进一步包括:
存储访问控制向量(ACV)表的存储器,其包含用于每个所述代理的一个或多个访问控制向量,其中每个访问控制向量规定非易失性随机访问存储器(NVRAM)区域的地址范围和针对所述非易失性随机访问存储器(NVRAM)区域的许可访问类型。
11.根据权利要求10所述的装置,其中每个所述访问控制向量具有指示可由所述代理之一访问的给定非易失性随机访问存储器(NVRAM)区域是否可与所述代理中的另一个共享的属性。
12.根据权利要求8所述的装置,进一步包括:
加密逻辑,用于如果在所述属性之一中规定了加密,则在将数据写到所述区域中之前对所述数据进行加密。
13.根据权利要求8所述的装置,进一步包括:
存储一组访问控制向量的存储器,其中所述访问控制向量在所述计算机系统第一次启动时是可配置的。
14.根据权利要求8所述的装置,其中所述非主机处理元件包括能够独立于所述处理器而操作的微控制器。
15.一种用于非易失性随机访问存储器的访问控制系统,包括:
计算机系统中的基板上的网络接口;
处理器,包括一个或多个核以执行所述计算机系统中的多个带内代理的操作;
非主机处理元件,执行所述计算机系统中的带外代理的操作,微控制器耦合到所述网络接口;
非易失性随机访问存储器(NVRAM),是字节可重写且字节可擦除的,所述非易失性随机访问存储器(NVRAM)在其上存储了要被包括所述带内代理和所述带外代理的一组代理所使用的数据;以及
控制器,耦合到所述非易失性随机访问存储器(NVRAM)以控制由所述代理对所述非易失性随机访问存储器(NVRAM)的访问,所述控制器从所述带外代理接收访问请求,并且基于与所述带外代理关联的属性来确定所述非易失性随机访问存储器(NVRAM)中的区域是否可由所述带外代理和至少一个所述带内代理共享。
16.根据权利要求15所述的系统,其中所述非易失性随机访问存储器(NVRAM)包括相变存储器(PCM)。
17.根据权利要求15所述的系统,进一步包括:
存储访问控制向量(ACV)表的存储器,其包含用于每个所述代理的一个或多个访问控制向量,其中每个访问控制向量规定非易失性随机访问存储器(NVRAM)区域的地址范围和针对所述非易失性随机访问存储器(NVRAM)区域的许可访问类型。
18.根据权利要求17所述的系统,其中每个所述访问控制向量具有指示可由所述代理之一访问的给定非易失性随机访问存储器(NVRAM)区域是否可与所述代理中的另一个共享的属性。
19.根据权利要求15所述的系统,进一步包括:
加密逻辑,用于如果在所述属性之一中规定了加密,那么在将数据写到所述区域中之前对所述数据进行加密。
20.根据权利要求15所述的系统,进一步包括:
存储一组访问控制向量的存储器,其中所述访问控制向量在所述计算机系统第一次启动时是可配置的。
21.根据权利要求15所述的系统,其中所述非主机处理元件包括能够独立于所述处理器而操作的微控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/061921 WO2013077867A1 (en) | 2011-11-22 | 2011-11-22 | Access control for non-volatile random access memory across platform agents |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103946824A CN103946824A (zh) | 2014-07-23 |
CN103946824B true CN103946824B (zh) | 2016-08-24 |
Family
ID=48470169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180074963.0A Active CN103946824B (zh) | 2011-11-22 | 2011-11-22 | 一种用于非易失性随机访问存储器的访问控制方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9298607B2 (zh) |
CN (1) | CN103946824B (zh) |
TW (1) | TWI512492B (zh) |
WO (1) | WO2013077867A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176670B2 (en) * | 2011-04-26 | 2015-11-03 | Taejin Info Tech Co., Ltd. | System architecture based on asymmetric raid storage |
US9146855B2 (en) * | 2012-01-09 | 2015-09-29 | Dell Products Lp | Systems and methods for tracking and managing non-volatile memory wear |
CN104081722B (zh) * | 2012-01-13 | 2018-05-22 | 英特尔公司 | SoC构造中的高效对等通信支持 |
US8943302B2 (en) * | 2012-08-07 | 2015-01-27 | American Megatrends, Inc. | Method of flashing bios using service processor and computer system using the same |
KR101992934B1 (ko) * | 2012-11-14 | 2019-06-26 | 삼성전자주식회사 | 메모리 시스템 및 이의 동작 방법 |
US20140137119A1 (en) * | 2012-11-15 | 2014-05-15 | Elwha LLC, a limited liability corporation of the State of Delaware | Multi-core processing in memory |
US9442854B2 (en) | 2012-11-15 | 2016-09-13 | Elwha Llc | Memory circuitry including computational circuitry for performing supplemental functions |
US9582465B2 (en) | 2012-11-15 | 2017-02-28 | Elwha Llc | Flexible processors and flexible memory |
US9323499B2 (en) | 2012-11-15 | 2016-04-26 | Elwha Llc | Random number generator functions in memory |
US9489316B2 (en) * | 2013-03-15 | 2016-11-08 | Freescale Semiconductor, Inc. | Method and device implementing execute-only memory protection |
EP3097489B1 (en) * | 2014-01-22 | 2020-07-01 | Hewlett-Packard Development Company, L.P. | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region |
US9697141B2 (en) * | 2014-10-17 | 2017-07-04 | Sk Hynix Memory Solutions Inc. | LBA blocking table for SSD controller |
US10126950B2 (en) * | 2014-12-22 | 2018-11-13 | Intel Corporation | Allocating and configuring persistent memory |
CN104636275B (zh) * | 2014-12-30 | 2018-02-23 | 北京兆易创新科技股份有限公司 | 一种mcu芯片的信息保护方法和装置 |
US11983138B2 (en) | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US9942631B2 (en) * | 2015-09-25 | 2018-04-10 | Intel Corporation | Out-of-band platform tuning and configuration |
US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US11144496B2 (en) | 2016-07-26 | 2021-10-12 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US10346041B2 (en) * | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
US10372659B2 (en) | 2016-07-26 | 2019-08-06 | Samsung Electronics Co., Ltd. | Multi-mode NMVE over fabrics devices |
US10762023B2 (en) | 2016-07-26 | 2020-09-01 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices |
US10148444B2 (en) * | 2016-08-04 | 2018-12-04 | Dell Products L.P. | Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor |
US10521216B2 (en) * | 2017-01-17 | 2019-12-31 | Oracle International Corporation | Unified extensible firmware interface updates |
WO2019041272A1 (zh) * | 2017-08-31 | 2019-03-07 | 华为技术有限公司 | 一种计算机内存数据加解密的方法及装置 |
CN108134717B (zh) * | 2017-10-26 | 2021-02-02 | 同济大学 | 基于有界模型检验的片上网络固定型故障在线测试方法 |
US11016665B2 (en) * | 2018-01-23 | 2021-05-25 | Seagate Technology Llc | Event-based dynamic memory allocation in a data storage device |
US11650795B2 (en) * | 2019-08-23 | 2023-05-16 | SK Hynix Inc. | Raw read based physically unclonable function for flash memory |
CN112182548B (zh) * | 2020-09-23 | 2024-04-16 | 博流智能科技(南京)有限公司 | 一种芯片系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWM298188U (en) * | 2006-01-23 | 2006-09-21 | Genesys Logic Inc | Control device for accessing Non-Volatile memory |
CN102035651A (zh) * | 2009-09-25 | 2011-04-27 | 英特尔公司 | 具有反恶意软件的计算机系统和方法 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US6934853B2 (en) * | 2001-01-18 | 2005-08-23 | International Business Machines Corporation | Method, system and program for sharing the ability to set configuration parameters in a network environment |
US6567897B2 (en) | 2001-03-01 | 2003-05-20 | International Business Machines Corporation | Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US7987356B2 (en) * | 2004-11-29 | 2011-07-26 | Broadcom Corporation | Programmable security platform |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
KR101275752B1 (ko) | 2005-12-06 | 2013-06-17 | 삼성전자주식회사 | 메모리 시스템 및 그것의 부팅 방법 |
US8230153B2 (en) * | 2006-01-20 | 2012-07-24 | Broadcom Corporation | Method and system for HBA assisted storage virtualization |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
DE102006035610B4 (de) * | 2006-07-31 | 2012-10-11 | Infineon Technologies Ag | Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US20080244212A1 (en) * | 2007-03-29 | 2008-10-02 | Rothman Michael A | System and method to enable hierarchical data spilling |
US8775450B2 (en) * | 2007-04-19 | 2014-07-08 | Sap Ag | Systems and methods for information exchange using object warehousing |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US8250310B2 (en) | 2008-07-31 | 2012-08-21 | International Business Machines Corporation | Assigning data to NVRAM of shared access hybrid hard drives |
WO2010041852A2 (ko) * | 2008-10-06 | 2010-04-15 | Noh Sam Hyuk | 비휘발성 램을 이용한 영속적 컴퓨팅 방법 및 시스템 |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US8156306B1 (en) * | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8868848B2 (en) | 2009-12-21 | 2014-10-21 | Intel Corporation | Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US9298606B2 (en) | 2011-09-30 | 2016-03-29 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
-
2011
- 2011-11-22 CN CN201180074963.0A patent/CN103946824B/zh active Active
- 2011-11-22 US US13/997,943 patent/US9298607B2/en active Active
- 2011-11-22 WO PCT/US2011/061921 patent/WO2013077867A1/en active Application Filing
-
2012
- 2012-11-08 TW TW101141556A patent/TWI512492B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWM298188U (en) * | 2006-01-23 | 2006-09-21 | Genesys Logic Inc | Control device for accessing Non-Volatile memory |
CN102035651A (zh) * | 2009-09-25 | 2011-04-27 | 英特尔公司 | 具有反恶意软件的计算机系统和方法 |
Non-Patent Citations (1)
Title |
---|
流处理器相变存储器主存的性能优化;郝秀蕊;《中国优秀硕士学位论文全文数据库 信息科技辑 》;20110915(第9期);I137-21 * |
Also Published As
Publication number | Publication date |
---|---|
TWI512492B (zh) | 2015-12-11 |
CN103946824A (zh) | 2014-07-23 |
US20130304979A1 (en) | 2013-11-14 |
WO2013077867A1 (en) | 2013-05-30 |
TW201333721A (zh) | 2013-08-16 |
US9298607B2 (en) | 2016-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103946824B (zh) | 一种用于非易失性随机访问存储器的访问控制方法、装置及系统 | |
TWI468938B (zh) | 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 | |
KR101779723B1 (ko) | 영구 저장소로의 라이트백을 요구하는 비 트랜잭션 코드 영역의 시작과 끝을 마킹하는 명령어들 | |
CN103975287B (zh) | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 | |
CN103946814B (zh) | 计算机系统中的非易失性随机存取存储器的自主初始化 | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
TWI596474B (zh) | 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片 | |
CN104115136A (zh) | 非易失性随机访问存储器中存储bios的装置、方法和系统 | |
TW201329994A (zh) | 支援近記憶體及遠記憶體存取的記憶體通道 | |
CN103999161A (zh) | 用于相变存储器漂移管理的设备和方法 | |
TW201324148A (zh) | 實施具有不同操作模式之多階記憶體階層的設備與方法 | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
CN104106057A (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
CN104115230A (zh) | 高效pcms刷新机制背景 | |
US10296467B2 (en) | Securing writes to memory modules having memory controllers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |