存储器存取确定的制作方法

文档序号:23589881发布日期:2021-01-08 14:25阅读:86来源:国知局
存储器存取确定的制作方法

本公开总体上涉及存储器,且更具体地涉及与确定对存储器的存取特权相关联的设备和方法。



背景技术:

存储装置通常作为计算机或其它电子装置中的内部半导体集成电路提供。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电源来维护其数据,并且包含随机存取存储器(ram)、动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)等。非易失性存储器可以通过在断电时保留存储的数据来提供持久数据,并且可以包含nand闪存、nor闪存、只读存储器(rom)、电可擦可编程rom(eeprom)、可擦可编程rom(eprom),以及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻随机存取存储器(rram)和磁阻随机存取存储器(mram),等等。

存储器还用作各种电子应用程序的易失性和非易失性数据存储。非易失性存储器可用于例如个人计算机、便携式存储棒、数码相机、蜂窝式电话、诸如mp3播放器的便携式音乐播放器、电影播放器和其它电子装置。存储单元可以布置成阵列,所述阵列用于存储装置中。

各种计算系统包含耦合到存储器(例如,存储器系统)的数个处理资源,所述存储器与执行一组指令(例如,程序、应用程序等)相关联地被存取。可以利用计算机体系结构特征来存取存储在存储器中的数据,这通常是出于恶意目的,而不管寻求存取数据的应用程序或程序是否被授权或预期这样做。

附图说明

图1a是根据本公开的数个实施例的计算系统形式的设备的框图,所述计算系统包含存储器系统并能够验证存储器存取特权。

图1b是根据本公开的数个实施例的计算系统形式的设备的框图,所述计算系统包含存储器系统并能够验证存储器存取特权。

图1c是根据本公开的数个实施例的计算系统形式的设备的框图,所述计算系统包含高速缓存系统并能够验证存储器存取特权。

图2是根据本公开的数个实施例的能够验证存储器存取特权的存储器系统的框图。

图3a是根据本公开的数个实施例的存储器存取验证逻辑的框图。

图3b是根据本公开的数个实施例的存储器存取验证逻辑的框图。

图4示出根据本公开的用于存储器存取验证的方法的实例流程图。

图5示出根据本公开的用于存储器存取验证的方法的实例流程图。

具体实施方式

本公开包含与存储器存取验证有关的设备和方法。如本文所描述的,可利用存储器体系结构来避免在计算机(例如,中央处理单元(cpu))体系结构的特征被用于对数据的无特权存取时所产生的问题。存储器系统可以包含特权和非特权数据。特权数据是经由特权保护的数据,而非特权数据不经由特权保护。处理资源可存取特权数据和非特权数据。处理资源可在推测执行期间存取特权数据和非特权数据。如本文所描述,可在存储器系统处或与存储器系统一起使用工具及技术来帮助控制或限制对特权数据的存取。

实例方法可以包含接收包括存储器命令和多个特权位的请求,并标识与对应于该存储器命令的存储器地址相关联的特权级别。该方法还可以包含使用多个特权位和特权级别来确定对应于存储器命令的存储器操作是否能够存取存储器地址,以及响应于确定存储器操作能够存取存储器地址而处理存储器操作。

计算系统可以利用分支预测和/或推测执行来提高性能。分支预测是试图减轻分支成本的计算机体系结构的一种方法。如本文所使用的,分支是条件语句的可能执行流。条件语句可以包含一或多个分支,所述一或多个分支可以基于条件语句的结果将程序的执行引导到不同的流。条件语句可以包含例如if-then-else语句或case语句,以及其它类型的条件语句。条件语句可以包含可用于选择分支以供进一步执行的布尔条件。

在分支预测中,处理资源可以选择分支并执行所述分支,其中所述分支取决于正被执行的操作。例如,处理资源在等待操作(例如,读取操作)完成时可以选择分支并处理对应于所述分支的命令。在完成操作后,处理资源可丢弃预测的分支或提交与预测分支相关联的推测性计算。

可以被称为推测执行或推测计算的推测是一种优化技术,其中处理资源执行当前不需要的命令。命令的执行是在知道是否实际需要该命令之前执行的,以便防止在知道需要该命令之后执行它所引起的延迟。例如,在分支被预测为最可能被选择的分支之后,推测性计算可以包含从分支的选择中导出的执行任务。推测性计算指的是指令的无序执行(例如,命令/操作)。如本文所使用的,处理资源可以向存储器资源发出命令。存储器资源可以处理命令并执行对应于命令的存储器操作。

在各种实例中,推测执行可能导致安全漏洞。例如,推测执行可以为无特权实体(例如,用户)提供存取特权数据的机会。如本文所使用的,特权数据指的是这样的数据,所述数据经由特定特权级别受到保护并且被设计成对于未被授予存取具有特定特权级别的数据的权限的实体(例如,无特权用户)不可存取。推测性计算可以通过将特权数据移动到高速缓存而不验证用于存取特权数据的特权级别来为无特权实体提供通过间接信道或“侧信道”存取特权数据的机会。

由物理装置执行的计算会在计算的标称输出之外留下可观察到的副作用。边信道攻击利用该副作用来提取原本不可用的特权数据。例如,分支预测和推测性计算可以包含将特权数据移动到处理资源可用的高速缓存和/或寄存器。丢弃预测可以不包含丢弃(例如清除)存储在高速缓存中的数据。边信道攻击可以包含存取存储在高速缓存中的特权数据。

利用分支预测和推测执行的漏洞的边信道攻击的两个实例包含称为熔毁的一种类型攻击和称为幽灵的一种类型攻击。熔毁攻击是一种边信道攻击,它使得能够从高速缓存未命中辨别数据值。幽灵攻击允许推测执行指令以执行泄漏信息的特权操作。虽然在这两种攻击中利用的漏洞最终可以被识别和解决,但这些攻击执行指令以存取特权信息。

熔毁类型的攻击依赖于推测执行来揭示存储器位置(例如,地址)的内容。处理资源可以将内核映射到用户的地址空间,以促进更快的俘获和存取。然而,处理资源可能不具有存取(例如,在其上操作)内核地址空间的许可。处理资源能够在验证待选择的分支时发出原本无特权(例如,非法)的存储器命令。在恢复对应于存储器命令的一或多个非法存储器操作时,处理资源可发出或返回(例如,抛出)异常。通过处理资源,恶意代码可以通过抑制异常并确定哪个阵列高速缓存行当前在高速缓存中来允许对特权数据的存取。

幽灵类型的攻击可利用推测执行并对处理资源的分支目标缓冲器(btb)进行误训练。btb是处理资源的一部分,其在由处理资源的执行单元计算分支指令的目标之前预测所采取的条件分支或无条件分支指令的目标。再次,在幽灵类型的攻击中,处理资源可被配置成将特权数据放置在高速缓存中,所述特权数据接着可由无特权实体从高速缓存提取。

数个不同的方法可用于解决与分支预测和推测执行相关联的漏洞。例如,可禁用分支预测和/或推测执行,或者可以提供规则以防止跨页错误的推测。然而,这两种选择都限制了执行分支预测和推测执行的能力,这可能对系统提供显著的性能影响。

在数个实施例中,可以在存储装置处强制执行特权以确定是否要执行存储器操作。例如,可以使用本文描述的各种实施例来强制执行特权。

在本公开的以下详细描述中,参考形成其一部分的附图,并且在附图中通过图示的方式示出了可以如何实践本公开的数个实施例。足够详细地描述了这些实施例以使本领域的一般技术人员能够实践本公开的实施例,并且应当理解,可以在不脱离本公开的范围的情况下利用其它实施例并做出过程、电气和/或结构改变。如本文所使用的,指示符“n”指示这样指定的数个特定特征可以包含在本公开的数个实施例中。

如本文所使用的,“数个”事物可以指这样的事物中的一或多个。例如,数个存储装置可以指存储装置中的一或多个。“多个”某物意指两个或两个以上。另外,如本文所使用的,具体地关于附图中的附图标记的诸如“n”的指示符指示这样指定的数个特定特征可以包含在本公开的数个实施例中。

本文中的附图遵循编号惯例,其中首位或前几位数字对应于附图编号,并且其余数字标识图中的元素或部件。可以通过使用类似数字表示不同附图之间的类似元件或部件。应当理解,在本文的各种实施例中示出的元件可以被添加、交换和/或消除,以便提供本公开的数个附加实施例。另外,附图中提供的元件的比例和相对比例旨在说明本公开的各种实施例,而不是用于限制的意义。

图1a是根据本公开的数个实施例的计算系统160形式的设备的框图,所述计算系统160包含存储器系统120并能够验证存储器存取特权。如本文所使用的,“设备”可以指但不限于各种结构或结构的组合,诸如电路或电路系统、管芯或裸片、一或多个模块、一或多个装置、或者一或多个系统。例如,主机102和/或存储器系统120可单独称为“设备”。

存储器系统120可以包括多个信道,每一信道具有与其对应的数个装置(例如,芯片、管芯等等)。所述装置中的每一个可以包括多个(例如,存储单元的)存储体。尽管图1a中未示出,但存储器系统120可以包含可服务于数个存储信道的控制器。或者,控制器可实施为多个单独的控制器(例如,多个信道中的每一个的一个控制器)。例如,存储器系统120可以包括多个模块(例如,双列直插式存储模块(dimm))。

主机102可以通过适当接口与存储器系统120通信(例如,经由控制器)。计算系统160可为膝上型计算机、个人计算机、数码相机、数字记录和回放装置、移动电话、pda、存储卡读取器、接口集线器、传感器、启用物联网(iot)的装置及其它系统,且主机102可以包含能够(例如经由控制器)存取存储器系统120的数个处理资源(例如,一或多个处理器)。主机102可负责执行操作系统(os)和/或可(例如,从存储器系统120)加载到其上的各种应用程序。

控制器可以从主机102接收存储器存取请求(例如,呈读取和写入命令的形式,其可以分别称为加载命令和存储命令)。控制器可以通过一或多个接口在主机102与存储器系统120之间传送命令和/或数据,所述接口可以包括例如采用适当协议的总线等物理接口。这样的协议可以是定制的或专有的,或者一或多个接口可以采用标准化的协议,例如ddr4、ddr5、hmc、hbm(或类似的/后续的存储接口标准),高速外围部件互连(pcie)、gen-z、ccix、基于ddr的同步存储协议等。

例如,接口可以包括组合的地址、命令和数据总线或者用于各自的地址、命令和数据信号的单独的总线。控制器可以包括控制电路,其为硬件、固件或软件或这三者的任意组合的形式。例如,控制器可以包括状态机、定序器和/或某种其它类型的控制电路,其可以以耦合到印刷电路板的专用集成电路(asic)的形式实施。在数个实施例中,控制器可以与主机102位置相同(例如,以片上系统(soc)配置)。此外,控制器可与存储器系统120位置相同。

存储器系统120可以包含数个存储装置。存储装置可以包括数个物理存储“芯片”或裸片,其可各自包含数个存储单元阵列(例如,存储体)和对应的与存取阵列相关联的(例如,从阵列读取数据和将数据写入阵列)支持电路(例如,地址电路、i/o电路、控制电路、读取/写入电路等)。例如,存储装置可以包含数个dram装置、sram装置、pcram装置、rram装置、feram、相变存储器、3dxp和/或闪存装置。在数个实施例中,存储器系统120可充当计算系统的主存储器。

主机102可将命令134和/或凭证提供到存储器系统120。命令134可以包含地址信息。在一些实例中,主机102经由命令/地址总线发送包含存储器命令和存储器地址信息的信令,且在存储器系统120的各个或对应引脚处接收存储器命令和存储器地址信息。根据双数据速率协议规范(例如,ddr4、ddr5等)操作的系统可以采用这样的方案。凭证可以包含定义命令134和/或对应操作的特权级别的特权位。命令134可具有将在存储器系统120中执行的对应存储器操作。从主机102提供到存储器系统120的命令可以包含特权级别。特权级别可以描述通过主机102提供命令134的应用程序和/或线程的特权级别。如本文所使用的,应用程序可描述可被执行以执行协调的功能、任务和/或活动的计算机可读指令。线程可描述对应于处理资源的寄存器的值。存储在寄存器中的值可用于控制一或多个应用程序或所述一或多个应用程序的部分的执行。可以使用对应于存储器命令134的存储器操作来执行功能、任务和/或活动以读取数据和/或将数据写入到存储器。例如,功能、任务和/或活动可以包含读取操作和/或写入操作,以及对应于命令134的其它操作,例如使用存储器系统中存储的数据在存储器系统120中执行的逻辑操作。可以使用数个特权位来描述特权级别。

特权位可以与提供给存储器系统120的每个命令一起提供。例如,主机102可被配置成生成特权位并向每个存储器命令134提供特权位。在一些实例中,特权位可以与通过存储器命令134提供的存储器操作集成。例如,可以使用与用于提供存储器命令的引脚相对应的引脚来提供特权位。特权位可以独立于存储器命令134。例如,可以与命令134分开地提供特权位。可以使用与用于提供命令的引脚不对应的引脚来提供特权位。

存储器系统120还可以被配置成接收特权位和存储器操作。可以以请求和/或命令134的形式接收特权位和存储器操作。例如,存储器命令134可以包括存储器操作和/或特权位。在其它实例中,可以基于接收的命令134来选择/生成存储器操作。命令134可以包含与存储器操作相关联的存储器地址。例如,如果存储器命令134是读取命令且对应的存储器操作是读取操作,那么存储器地址可以是待读取的基地址。存储器操作还可以包含与存储器操作相关联的多个存储器地址。多个存储器地址可以定义要读取或写入的存储器地址的范围。多个存储器地址可以是连续的(例如,连序的)地址和/或非连续的地址。在一些实例中,可以利用单个存储器操作和/或命令134来提供多个存储器地址,以请求使用多个存储器地址中的每一个来单独地重复存储器操作。例如,如果随存储器操作提供了两个存储器地址,则可以在第一存储器地址处第一次执行存储器操作,并且在第二存储器地址处第二次执行存储器操作。

可以为存储器命令134提供的存储器地址标识特权级别。特权级别可以指示存取存储器地址所需的特权级别。可将与存储器地址相关联的特权级别和与存储器操作相关联的特权位进行比较,以确定存储器操作是否具有存取存储器地址所需的适当特权级别。例如,与存储器操作相对应的特权位可以是第一数目的特权位,且与存储器地址相对应的特权级别可用于生成第二数目的特权位。第一数目的特权位可以与第二数目的特权位相比较。可以响应于确定第一数目的特权位与第二数目的特权位匹配来执行存储器操作。例如,可以响应于确定存储器操作能够存取存储器地址而执行存储器操作。如果第一数目的特权位与第二数目的特权位匹配,则存储器操作能够存取存储器地址。在各种实例中,响应于确定第一数目的特权位与第二数目的特权位不匹配,防止执行存储器操作。

在一些实施例中,存储器系统120可以响应于确定存储器操作不能够存取存储器地址(例如,由于特权级别不足)而通过存储器存取验证逻辑生成异常。这可以称为“抛出异常”,且可以暂停一或多个存储器操作的执行。如本文所使用的,异常可以指示由异常程序控制流引起的错误条件或状态。即,异常可以中断存储器操作中的一或多个的执行流。主机102可以响应于生成和/或接收异常而通过处理资源执行预先注册的异常处理程序。在一些实例中,存储器系统120的处理资源可以生成异常且可以执行异常处理程序。主机102的处理资源可以接收异常且可以执行异常处理程序。

例如,可以在将数据从存储器系统120移动到主机102之前抛出并处理所述异常。例如,异常可以防止数据从存储器系统移动到对应于主机102的高速缓存。

在一些实例中,存储器系统120可以通过提供不同于正由存储器操作存取的特权数据的预定数据来中断存储器操作的执行。例如,响应于确定随存储器操作提供的特权位不对应于与存储器地址相对应的特权级别,存储器系统120可以提供包含所有“零”和/或所有“一”的数据模式。提供数据模式可允许与存储器操作相关联的执行流继续而不提供特权数据。

与存储于存储器系统120中的特权数据相关联的特权级别可作为特权位存储于特权寄存器137中和/或存储器系统120的存储装置(例如,存储单元阵列)中。在一些实例中,可以从随存储器命令134提供的存储器地址导出特权级别。例如,存储器系统120可被配置成在不从特权寄存器137和/或存储装置存取位的情况下将地址标识为享有特权和特权级别。例如,存储器系统120可以从存储器地址生成特权位。

数据模式可以标识该存储器操作不能够存取存储器地址。例如,处理资源可被配置成通过分析存储器系统120提供的数据来确定存储器操作是否能够存取存储器地址。处理资源可以基于存储器系统120提供的数据模式从存储器系统120提供的数据中标识故障和/或元数据。例如,第一数据模式可以将存储器操作描述为不能够存取地址范围,且第二数据模式可以将存储器操作描述为不能够存取地址范围的一部分而不是整个地址范围。本文描述的实例不受模式类型和/或可能与数据模式类型相关联的元数据的限制。

包括存储器操作和/或许可位的命令134(例如,请求)可以是预测分支的一部分并且可以是推测性的。例如,btb可以预测分支且处理资源可以选择对应于所述分支的推测性存储器操作和/或存储器命令134。处理资源可以生成包括存储器操作和默认特权位的请求。默认特权位可以是最低特权级别和/或可以对应于正由处理资源执行的线程。存储器系统120可以使用如上所述的默认特权位来确定存储器操作是否能够存取存储器地址。

图1b是根据本公开的数个实施例的计算系统形式的设备的框图,所述计算系统包含存储器系统并能够验证存储器存取特权。在图1b的实例中,与命令138相关联的特权级别可以在单独的消息和/或特殊命令136-1中提供。

特殊命令136-1可以是从主机102提供到存储器系统120的消息,其界定与特殊命令136-1分开提供的数个存储器命令138的特权级别。特殊命令136-1可以提供要存储在存储器系统120的模式寄存器(例如,模式寄存器139)中的特权级别。可以使用特殊命令136-2来重置特权级别。特殊命令136-2还可以从主机102提供到存储器系统120。存储器系统120可以响应于接收到特殊命令136-2而重置系统120的模式寄存器139。

在接收到特殊命令136-1时,存储器系统120可以通过存储器存取验证逻辑提取随特殊命令136-1提供的特权位。例如,特权位可以标识跟随特殊命令136-1的任何存储器命令的特权级别。存储器系统120可以将特权位存储在存储器系统120的模式寄存器139中。模式寄存器139可以定义可用于标识存储器命令138的特权级别的特权模式。

存储器系统120可以包含可为单独或集成的多个模式寄存器139。例如,存储器系统120可以包含多个连续寄存器(例如,模式寄存器139),其被划分成提供对应于特定线程和/或处理资源的模式寄存器的部分。存储器系统120还可以包含不连续的多个模式寄存器139,其中多个模式寄存器139中的每一个对应于线程和/或处理资源中的一或多个。存储器系统120可利用多个模式寄存器139来以特权位的形式为多个不同线程和/或处理资源存储特权模式。例如,存储器系统120可以在对应于第一线程和/或处理资源的第一特权寄存器中存储第一特权模式,并且存储器系统120可以在对应于第二线程和/或处理资源的第二特权寄存器中存储第二特权模式。在一些实例中,这样做允许存储器系统120跟踪不同线程和/或处理资源的特权模式,并允许存储器系统120实施对与不同特权模式相对应的存储器资源的存取的基于特权的限制。

实施对应于不同线程和/或处理资源的特权模式可以包含使用线程id和/或处理资源id来标识特权模式,或确定对应的线程id和/或处理id不存在特权模式。在这样的实例中,特殊命令136-1可以包含特权模式和标识(id)。特权模式可以利用id存储在模式寄存器139中。例如,第一id和第一特权模式可以存储在第一模式寄存器中,且第二id和第二特权模式可以存储在第二模式寄存器中。

在一些实施例中,模式寄存器139可以与不同的id相关联。例如,第一模式寄存器可以存储对应于第一id(例如,线程id和/或处理资源id)的特权模式,而第二模式寄存器可以存储对应于第二id的特权模式。将模式寄存器139与id相关联可以通过消除存储对应于特权模式的id的需要来减少所存储的数据量。例如,第一模式寄存器可以存储对应于第一id的特权模式而不存储第一id,且第二模式寄存器可以存储对应于第二id的特权模式而不存储第二id。虽然特权模式和id被描述为存储在模式寄存器139中,但是特权模式和id也可以存储在诸如存储装置的存储器系统120的存储器资源中。

响应于接收到包括存储器操作并且在一些实例中包括id的存储器命令138,存储器系统120可以确定是否利用存储的特权模式来处理存储器命令138。例如,存储器系统120可以响应于接收到存储器命令138而从模式寄存器139检索特权模式。检索到的特权模式可以对应于存储器命令138。例如,如果多个特权模式存储在模式寄存器139中,则存储器系统120可以利用随存储器命令138提供的id来检索特权模式。如果单个特权模式存储在模式寄存器139中,则存储器系统120可以不利用id而检索特权模式。

存储器系统120可以将从主机102接收的特权模式与对应于存储器地址的特权模式进行比较。如果对应于存储器命令138的特权模式标识与由对应于存储器地址的特权模式标识的特权级别相同的特权级别,则存储器系统可以通过处理随存储器命令138提供的对应的存储器操作来处理存储器命令。如果对应于存储器命令138的特权模式没有标识与对应于存储器地址的特权模式所标识的特权级别相同的特权级别,则存储器系统120可以制止处理随存储器命令138提供的存储器操作。

存储器系统120可以利用通过特殊命令136-1接收的特权模式来验证多个特权命令138的特权级别。通过特殊命令136-1传送特权模式提供了在不改变主机102和存储器系统120之间的通信协议的情况下传送特权模式的能力。也就是说,在线程中由主机102的处理资源执行的应用程序而不是主机102可以负责通过特殊命令136-1提供特权级别。

模式寄存器139可使用特殊命令136-2重置。例如,在提供利用特权模式的存储器命令138时,应用程序可以通过主机102提供特殊命令136-2来重置从主机102提供的未来存储器命令的特权级别。

例如,特殊命令136-2可以包含表示特权模式的数个位。在一些实例中,特殊命令136-2可以包含表示特权模式的第一数目的位和表示对应于特权模式的id(例如,线程id和/或处理器id)的第二数目的位。

在一些实例中,可以在不接收特殊命令136-2的情况下重置模式寄存器139。例如,存储器系统120可以在自主机102提供存储器命令138以来已过去预定持续时间之后将模式寄存器139重置。在一些实例中,存储器系统120可以在自主机102提供具有与模式寄存器139相对应的id的存储器命令138以来已过去预定持续时间之后将模式寄存器139重置。

在一些实施例中,主机102在执行分支预测和/或推测时可以提供存储器命令138而不提供特殊命令136-1。特殊命令136-1可以是比较操作的一部分,并且因此如果在比较操作完成之前生成存储器命令138,则可以不执行特殊命令136-1。在这些实例中,主机102可以提供存储器命令138,并且存储器系统120可以确定没有提供特殊命令136-1和/或可以确定在模式寄存器139中没有设置特权模式。存储装置120可以在模式寄存器139中未标识出特权模式的情况下利用默认特权模式来确定存储器命令138是否能够存取存储在包含于存储器命令138中的存储器地址范围中的特权数据。

在一些实例中,存储器系统120可以从模式寄存器139存取与在存储器命令138中提供的存储器地址相关联的第一特权级别。存储器系统120可以存取与请求相关联的第二特权级别(例如,特殊命令136-1)。可以从存储器系统120的存储装置、寄存器和/或存储器资源存取第二特权级别。第二特权级别可以被存储为特权模式,但也可以用作特权级别。存储器系统120可以比较第一特权级别和第二特权级别,以确定通过存储器命令138提供的存储器操作是否能够存取存储器地址。存储器系统120可以利用第一特权级别和第二特权级别执行比较。

响应于确定存储器操作能够存取存储器地址,存储器系统120可以处理存储器操作以执行存储器操作。响应于确定存储器操作不能够存取存储器地址,存储器系统120可以制止处理存储器操作。第二特权级别可以对应于发出存储器命令138的线程、发出存储器命令138的处理器和/或发出存储器命令138的应用程序的特权级别。在一些实例中,与存储器命令138相关联的第二特权级别可以是操作系统(os)、管理程序或发出请求的特权系统应用程序的特权级别。

将第一特权级别与第二特权级别进行比较可以包含将存储在模式寄存器139中的第一数目的特权位与存储在存储器系统120中的第二数目的特权位进行比较。比较第一特权级别和第二特权级别可以进一步包括确定第一特权级别是否等于第二特权级别。响应于确定第一特权级别等于第二特权级别,存储器系统120可以确定存储器操作能够存取存储器地址。

图1c是根据本公开的数个实施例的计算系统形式的设备的框图,该计算系统包含高速缓存系统162并能够验证存储器存取特权。高速缓存系统162包括称为高速缓存146的高速缓存146-1至146-n(例如一级高速缓存、2级高速缓存、……、末级高速缓存)。图1c还包含称为处理资源144的处理资源144-1和144-2。

高速缓存系统162可以是存储器系统。因此,使用图1a和1b中的存储器系统120提供的实例可应用于高速缓存系统162。高速缓存系统162可以包括存储数据的硬件或软件部件,以便可以更快地服务对数据的进一步请求。高速缓存146-1和146-2可以包括一级高速缓存。高速缓存146-1可以对应于处理资源144-1,且高速缓存146-2可对应于处理资源144-2。处理资源144中的每一个可利用其对应的高速缓存。例如,处理资源144-1可利用高速缓存146-1而不利用高速缓存146-2,而处理资源144-2可利用高速缓存146-2而不利用高速缓存146-1。高速缓存146-2至146-n可以是公共高速缓存。即,高速缓存146-2至146-n可由处理资源144两者利用。

来自高速缓存146的数据可基于使用在高速缓存146之间移动。例如,可以将频繁存取的数据存储在高速缓存146中,而不频繁存取的数据可以存储在高速缓存146-n中。

可以将数据从存储器系统120复制到高速缓存系统162。在一些实例中,处理资源144-1和144-2可以从存储器系统检索数据。从存储器系统检索的数据可以存储在高速缓存146中。因此,高速缓存146可以包括特权数据。

特权数据可以存储在高速缓存146中的任一个中。例如,特权数据可存储在高速缓存146-1、高速缓存146-2、高速缓存146-3、……、和/或高速缓存146-n中。这样,可以验证对任何高速缓存的存取,以确定存储器操作是否具有足以存取存储在高速缓存146中的数据的特权级别。

高速缓存系统162可以包含如图2所述的存储器存取验证逻辑。高速缓存系统162可以利用例如与图1a所述的每个存储器操作和/或存储器命令一起提供的特权位来验证存储器存取。高速缓存系统162可以利用例如在特殊命令中提供的特权位来验证存储器存取。

在一些实例中,对数据的存取可以包含将数据从高速缓存146中的一个移动到高速缓存146中的另一个。例如,如果数据从高速缓存146-n移动到高速缓存146-1、146-2和/或146-3,则可以验证存取。如果数据从高速缓存146-1移动到高速缓存146-2、146-3和/或146-n,那则也可验证数据。

在一些实例中,高速缓存系统162可以在存储器存取验证逻辑处接收命令。该命令可以包括存储器操作和第一特权级别。命令和/或存储器操作可以包括存储器操作存取的多个地址。第一特权级别可以使用特权位来表示。

高速缓存系统162可以标识与高速缓存的多个存储器地址相关联的第二特权级别,其中多个存储器地址与存储器操作相关联。高速缓存系统162可以使用第一特权级别和第二特权级别来确定存储器操作是否能够存取多个存储器地址。响应于确定存储器操作能够存取多个存储器地址,高速缓存系统162可以处理存储器操作以提供对高速缓存146的多个存储器地址的存取。

在一些实例中,高速缓存系统163可以使用特权级别的层次结构、第一特权级别和第二特权级别来确定存储器操作是否能够存取多个存储器地址。特权级别的层次结构可以定义多个特权级别以及多个特权级别之间的关系。例如,许可级别的层次结构可以定义具有最高特权级别的存储器操作可以存取具有较低特权级别的数据,且具有最低特权级别的存储器操作不能够存取具有较高特权级别的数据。因此,特权级别的层次结构可以区分存储器操作的特权级别和数据的特权级别的优先级。特权级别的层次结构可以应用于图1a和1b的实例,使得存储器系统120可以实施特权级别的层次结果来确定存储器操作和/或存储器命令是否能够存取数据。

高速缓存系统162可以使用特权级别的层次结构来确定第一特权级别是否具有与第二特权级别相等的特权级别或高于第二特权级别的特权级别。高速缓存系统162还可以使用特权级别的层次结构来确定第一特权级别是否具有低于第二特权级别的特权级别。

响应于确定第一特权级别具有与第二特权级别相等的特权级别还是高于第二特权级别的特权级别,高速缓存系统162可以确定存储器操作能够存取多个存储器地址。响应于确定第一特权级别具有低于第二特权级别的特权级别,高速缓存系统162还可以确定存储器操作不能够存取多个存储器地址。

高速缓存系统162还可以利用图1b中描述的特殊命令136-1和特殊命令136-2来评估特权。例如,可以利用特殊命令来提供存储器命令的特权级别,使得单个特权级别可以对应于包含存储器操作的多个存储器命令。与多个存储器命令和/或存储器操作相关联的特权级别可被描述为特权模式。高速缓存146可以将特权模式和/或优先级别存储在存储装置或存储器系统中、高速缓存146中和/或对应于处理资源144和/或高速缓存系统162的寄存器中。

例如,高速缓存系统162可以接收对高速缓存执行多个存储器操作的命令(例如,请求)。可以标识与多个存储器操作相关联的高速缓存的多个存储器地址。可以从高速缓存146、处理资源144的寄存器和/或高速缓存系统162的寄存器存取与多个存储器地址相关联的第一特权级别。可以存取与该请求相关联的第二特权级别。第二特权级别可以存储在高速缓存146中、处理资源144的寄存器中和/或高速缓存系统162的寄存器中。

高速缓存系统162可以使用第一特权级别和第二特权级别来确定多个存储器操作是否能够存取多个存储器地址。响应于确定多个存储器操作能够存取多个存储器地址,高速缓存系统162可以处理多个存储器操作以提供对高速缓存146的多个存储器地址的存取。

图2是根据本公开的数个实施例的能够验证存储器存取特权的存储器系统220的框图。存储器系统220包含存储器存取验证逻辑202、行解码器204、列解码器206和存储页面208。

为清楚起见,已对存储器系统220进行简化来集中于与本公开特定相关的特征。存储阵列208可以是例如dram阵列、sram阵列、sttram阵列、pcram阵列、tram阵列、rram阵列、nand闪存阵列和/或nor闪存阵列。阵列208可以包括布置成通过存取线(其在本文中可称为字线或选择线)耦合的行及通过感测线耦合的列的存储单元。虽然在图2中示出了单个阵列208,但是实施例不限于此。例如,存储器系统220可以包含多个存储装置,每一存储装置包含数个阵列208(例如,数个dram单元存储体)。

存储器系统220包含地址电路,以锁存通过i/o电路在i/o总线(例如,数据总线)上提供的地址信号。地址信号由行解码器204和列解码器206接收并解码,以存取存储阵列208。可以通过使用感测电路感测数据线上的电压和/或电流变化来从存储阵列208读取数据。感测电路可读取并锁存来自存储阵列206的数据页(例如,行)。i/o电路可用于通过i/o总线与主机进行双向数据通信。

控制器对由控制总线从主机提供的信号进行解码。这些信号可以包含芯片启用信号、写入启用信号和地址锁存信号,这些信号被用来控制对存储阵列208执行的操作,包含数据读取、数据写入和数据擦除操作。在各种实施例中,控制器负责执行来自主机的指令。控制器可以是状态机、定序器或某种其它类型的控制器。

存储器存取验证逻辑202可以耦合到行解码器204和/或列解码器206以执行对存储阵列208执行的存储器操作。存储器存取验证逻辑202还可以为状态机、定序器或某种其它类型的的控制器,且可以称为处理资源。存储器存取验证逻辑202可以验证对存储在存储阵列208中的数据的存取。存储器存取验证逻辑202可以执行图1a至1c中所描述的实例。

当验证存取时,存储器存取验证逻辑202可以通过向行解码器204和/或列解码器206提供与存储器命令一致的信号来处理存储器操作和/或存储器命令。如果存取未被验证,则存储器存取验证逻辑202可以通过输出流抛出异常和/或提供的预定数据,其中预定数据不是请求的数据。

在一些实例中,可以在控制器和/或存储器存取验证逻辑202中执行图1a至1c中所描述的实例的部分。例如,控制器可以确定是否准许存取,并将所述确定提供给存储器存取验证逻辑202。存储器存取验证逻辑可以处理存储器操作和/或抛出异常和/或提供预定数据。可以使用控制器和/或存储器存取验证逻辑202来实施图1a至1c中提供的实例的其它部分。

存储器存取验证逻辑202可以包含如图3a和3b中所描述的判定逻辑。判定逻辑可以实施图1a至1c中所描述的实例的部分。

图3a是根据本公开的数个实施例的存储器存取验证逻辑302的框图。存储器存取验证逻辑302可以包含判定逻辑310、元数据描述模块312、当前模式模块314和寄存器316。

判定逻辑310可以确定是否准许存取。例如,判定逻辑310可以接收地址。判定逻辑310可经由元数据描述模块312存取与地址相关联的元数据。其中,与地址相关联的元数据可以包含与地址相关联的特权级别等。元数据描述模块312可以从存储器系统的寄存器和/或存储阵列存取元数据。

元数据可以包括数个比特。例如,元数据可以包括提供特权级别的单个位。0位可以表示用户特权级别,且1位可以表示内核特权级别。元数据还可以包括多于一个位。例如,元数据可以包括多个位,其中多个位的一部分是表示特权级别或特权模式的特权位。

判定逻辑310还可以利用模式模块314检索与存储器操作相关联的特权位。在一些实例中,特权位可以表示特权级别。特权位还可以被视为特权模式。模式模块314可以从寄存器316检索特权位。寄存器316可以是特权寄存器和/或模式寄存器。

寄存器316可以位于存储器系统或主机本地。例如,如果判定逻辑310在主机中实施,则寄存器316可以位于主机本地。如果判定逻辑310实施于存储器系统中,则寄存器316可位于存储器系统本地。

判定逻辑310可以将元数据与特权模式进行比较,以确定是否准许存取该地址。

图3b是根据本公开的数个实施例的存储器存取验证逻辑302的框图。在一些实例中,存储器存取验证逻辑302可以包含判定逻辑310。判定逻辑310可以包含基模块320和界限模块322。

判定逻辑310可以确定接收的地址或接收的地址范围是否受到保护。判定逻辑310可以利用基模块320和界限模块322来确定地址是否受到保护。

判定逻辑310可以从基模块320请求基地址。基模块320可以存储单个基地址或多个基地址。基模块320可以返回基地址。判定逻辑310可以将地址与基地址进行比较,以确定地址是否大于或等于基地址。

在一些实例中,判定逻辑310可以将地址提供到基模块320。基模块320可以将地址(例如,由判定逻辑310接收的地址)与一或多个基地址进行比较,以确定地址是否大于或等于所述基地址中的一者。基模块320可以返回该确定。如果基模块320存储多个基地址,则基模块320可以返回确定和基地址。例如,基模块320可以返回地址大于或等于基地址的确定,并且还可以返回基地址。

判定逻辑310还可以确定地址是否小于或等于界限地址。例如,判定逻辑310可以使用基地址来请求界限地址。界限模块322可以接收基地址并可以提供对应的界限地址。在界限模块322存储单个界限地址的实例中,界限模块322可以提供界限地址而不接收基地址。界限模块322可以利用基地址作为索引来存取相应的界限地址。判定逻辑310可以将从界限模块322接收的界限地址与该地址进行比较,以确定该地址是否小于或等于该界限地址。

在一些实例中,判定逻辑310可以向界限模块322提供地址和/或基地址。界限模块322可以将地址与界限地址进行比较以确定地址是否小于或等于界限地址。界限模块322可以将确定提供给判定逻辑310。界限模块322可利用基地址来检索界限地址。例如,界限模块322可以利用基地址作为索引来检索界限地址。

判定逻辑310可以确定地址是否大于或等于基地址且小于或等于界限地址以确定地址是否受到保护。如果地址大于或等于基地址且小于或等于界限地址,则地址受到保护。如果地址小于基地址或大于界限地址,则该地址不受保护。

在一些实例中,判定逻辑310和/或界限模块322还可以确定地址是否小于或等于基地址和界限的组合。该界限可以是界限大小。可以根据基地址和界限来生成界限地址。例如,可以将界限添加到基地址以生成界限地址。该界限可以从界限模块322接收和/或可以与基地址一起接收并提供给界限模块322。在一些实例中,判定逻辑310可以确定地址是否大于或等于基地址且小于或等于基地址与界限(例如,界限地址)的组合以确定地址是否受到保护。

图4示出根据本公开的用于存储器存取验证的方法的实例流程图。存储为计算机可读指令的方法可由处理资源执行。处理资源可并入主机和/或存储器系统中。在框471处,方法470包含接收包括存储器命令和存储器地址的信令。在框472处,方法470包含标识指示与存储器地址相关联的第一特权级别的第一值。在框473处,方法470包含标识指示与存储器命令相关联的第二特权级别的第二值。在框474处,方法470包含至少部分地基于将第一值与第二值进行比较来在存储器地址处执行存储器命令或制止执行存储器命令。

方法470还可以包含:响应于确定存储器操作不能够存取存储器地址,制止处理存储器操作。方法470还可以包含:响应于确定存储器操作能够存取存储器地址,处理存储器操作。

与存储器命令相关联的第二特权级别可以是向存储器命令提示了存储器地址的线程的特权级别。在一些实例中,与存储器命令相关联的第二特权级别是提供对存储器地址处的数据的请求的应用程序的特权级别。与存储器命令相关联的第二特权级别还可以是向存储器命令提示了存储器地址的操作系统、系统管理程序或特权系统软件中的至少一者的特权级别。

在一些实例中,将第一值与第二值进行比较可以包含确定第一特权级别等于第二值,并且其中在存储器地址处执行存储器命令。在一些实例中,如果不同的电荷/电压表示相同的值,那么即使第一值和第二值具有不同的电荷/电压,第一值和第二值也可以是等效的。

在一些实例中,标识指示第二特权级别的第二值包括从多个寄存器中读取一或多个寄存器。在其它实例中,标识指示第二特权级别的第二值包括读取包括阵列的一或多个单元,所述阵列包括与接收信令的存储器地址相关联的单元。

图5示出根据本公开的用于存储器存取验证的方法的实例流程图。在框581处,方法580包含在与高速缓存相关联的存储器存取验证逻辑处接收命令,其中该命令包括存储器操作和第一特权级别。在框582处,方法580包含标识与高速缓存的多个存储器地址相关联的第二特权级别,其中多个存储器地址与存储器操作相关联。在框583处,方法580包含使用第一特权级别和第二特权级别来确定存储器操作是否能够存取多个存储器地址。在框584处,方法580包含:响应于确定存储器操作能够存取多个存储器地址,处理存储器操作以提供对高速缓存的多个存储器地址的存取。

方法580可以进一步包括使用许可级别的层次结构、第一特权级别和第二特权级别来确定存储器操作是否能够存取多个存储器地址。在一些实例中,确定存储器操作是否能够存取多个存储器地址进一步包括使用许可级别的层次结构来确定第一特权级别是否具有与第二特权级别相等的特权级别或高于第二特权级别的特权级别,并且使用许可级别的层次结构来确定第一特权级别是否具有低于第二特权级别的特权级别。

方法580可以进一步包括:响应于确定第一特权级别具有与第二特权级别相等的特权级别或高于第二特权级别的特权级别,确定存储器操作能够存取多个存储器地址。该方法还可以进一步包括:响应于确定第一特权级别具有低于第二特权级别的特权级别,确定存储器操作不能够存取多个存储器地址。

尽管本文已经示出和描述了具体实施例,但是本领域普通技术人员将理解,可以用被计算来实现相同结果的布置来代替所示的具体实施例。本公开旨在覆盖本公开的各种实施例的改编或变型。应当理解,以上描述是以说明性的而不是限制性的方式进行的。通过阅读以上描述,以上实施例的组合以及本文中未具体描述的其它实施例对于本领域技术人员将是显而易见的。本公开的各种实施例的范围包含使用以上结构和方法的其它应用应用程序。因此,本公开的各种实施例的范围应当参考所附权利要求以及这些权利要求所享有的等同物的全部范围来确定。

在前面的详细描述中,出于简化本公开的目的,在单个实施例中将各种特征分组在一起。本公开的方法不应被解释为反映以下意图:本公开的实施例必须使用比每个权利要求中明确记载的特征更多的特征。相反,如以下权利要求所反映的,本发明主题在于少于单个公开的实施例的所有特征。因此,特此将所附权利要求并入具体实施方式中,其中每一权利要求独立地作为单独实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1