不对称存储器技术领域
本公开总体上涉及存储器,更具体地涉及一种存储器配置和一种访问该存储器的
方法。
背景技术
随着电子设备和相关能力的激增,许多日常设备如今包括具有中央处理单元、存
储器和支持特定操作的通信电路的计算设备。此外,如今的电子设备通常配对至一个或多
个网络,该网络可能连接到万维网或因特网(及其多个版本)。例如,汽车电子,家用电器,立
体声和音乐设备,家庭计算机,蜂窝电话,用于存储数据的磁盘驱动器,媒体访问播放器,手
表,遥控器,数字视频记录仪,电视,媒体播放器等等,所有这些都包括计算处理器、存储器
和被配置为支持至少一个期望功能的通信电路。此外,这些类型的电路或设备中的大多数
进一步被配置为与蓝牙TM和Wi-Fi接入点配对。接入点进而经由与因特网服务提供商网关
设备通信的调制解调器连接到因特网。
尽管十分需要联网,但是存在风险和成本。黑客和恶意程序侵入计算设备以窃取
数据,重新编程或控制设备,或者甚至仅仅是在破坏行为中毁坏数据。近期的新闻报道充满
了未经授权访问计算设备及其数据的事件。一些近期的事件聚焦于例如黑客“黑入(hack
into)”汽车电子并控制汽车操作的能力。
设备的结构配置在安全性方面可能具有有限的效果。即便对于包括微处理器的集
成电路设备,鉴于如今设备和系统的网络特性,数据和程序的安全仍是重要的考虑因素。对
于这样的任何系统,处理器不运行未经授权的代码是十分重要的,因为这削弱了设备的安
全性。由于这些原因,数据和计算设备的安全性是重要的问题。因此,禁止未经授权访问计
算设备硬件和数据的硬件设计及软件设计十分需要。
附图说明
通过参考附图,本公开可以更好地被理解,并且其许多特征和优点对本领域技术
人员而言更显而易见,其中:
图1是具有对称存储器访问的现有技术存储器结构。
图2是示出具有根据一个实施例配置的存储器结构的计算系统的部分电路图和部
分框图。
图3是示出具有根据一个实施例配置的存储器结构的计算系统的部分电路图和部
分框图。
图4是根据一个实施例配置的存储器的功能框图。
图5是示出根据一个实施例的方法的流程图。
图6是示出根据一个实施例的一种访问非对称存储器的方法的流程图。
图7是示出访问存储器的替代实施例的流程图。
在不同附图中使用相同的附图标记表示类似或相同的项目。除非另有说明,否则
“耦合”一词及其相关联的动词形式包括通过本领域已知手段的直接连接和间接电连接,并
且除非另有说明,否则对直接连接的任何描述都意味着使用间接电连接的适当形式的替代
实施例。
因此,在法律允许的最大范围内,本发明的范围通过对所附权利要求及其等同的
被允许的最宽的解释来确定,并且不应受到前述详细描述的制约或限制。
具体实施方式
图1是具有对称存储器访问的现有技术存储器结构。存储器10包括两个存储器区
域。大体以12表示的第一存储器区域是从地址0到地址m的范围的存储器区域。大体以14表
示的第二存储区域是从地址n到地址z的范围的存储器区域。该第一存储器区域12是仅安全
的设备和进程可以访问以进行读取操作和写入操作的存储器区域。该第二存储器区域14是
安全的和非安全的设备和进程均可以访问以进行读取操作和写入操作的存储器区域。在存
储器10中定义的每个区域支持读取和写入操作。两个区域之间的区别涉及不安全的设备和
进程是否可以访问该存储器区域。
图2是示出具有根据一个实施例配置的存储器结构的计算系统的部分电路图和部
分框图。计算系统20包括CPU 22,其通过总线24进行通信以检索存储在存储器26中的指令
和数据。对存储器26的访问被存储器保护单元(MPU)28控制。MPU 28包括控制器30和查找表
32。MPU 28经由总线24与处理器22通信,且经由直接连接或专用总线与存储器26通信。输
入/输出接口24也连接到总线24以允许计算系统20经由有线或无线通信协议及物理信道与
外部的网络,系统和设备通信。
继续查看图2,应当理解,将关于存储器访问的解释保持为简单的并且在物理地址
方面。存在许多不同的访问方案,包括使用虚拟寻址方案,相对寻址方案等等。例如,寻址的
存储器系统使用地址来选择正在被读取或写入的存储器单元。关联存储器考虑使用内容可
寻址存储器。关联存储器被用在许多应用中的高速缓冲存储器组中。顺序存储器访问系统
访问与自当前位置的偏移相关的存储器。尽管这些不同的寻址和访问方案,但它们涉及对
存储器的特定区域或存储器的范围访问的存储器。此外,该存储器访问请求可以由该设备
的CPU发送,或者如果支持直接存储器访问,则该存储器访问可以从另一设备经由例如连接
到相同总线的输入/输出接口接收,其中存储器(借助存储器保护单元)连接至该同一总线。
所有这些访问类型都是对称的,意味着如果设备被允许访问存储器区域,则读取和写入访
问总是被允许的。
在一种形式中,如本文的实施例所描述的计算系统包括CPU、通信总线、至少一个
存储器和存储器保护单元(MPU)。该存储器通常包括至少三个存储器区域。第一区域仅被具
有一安全标识符的块或源访问以便读取和写入操作。第二区域可以被任何块或源访问以便
读取和写入操作而不考虑安全标识符,这意味着具有安全和非安全标识符的块和源可以访
问以便读取和写入操作。第三区域是一非对称区域,其中只有具有安全标识符的块或源可
以写入,但是包括那些具有非安全标识符在内的所有块和源可以访问以读取。实施例的一
个方面是安全进程可以将数据写入到该第三和非对称区域以允许非安全块或进程访问并
读取该数据但不写入(或改变)该数据。例如,存在一种需要以从非安全源以一种不会干扰、
篡改、调整或恶意地或意外地改变任何现有安全进程的方式运行程序。在某些情况下,非安
全进程必须与安全进程交互而不能危及安全性。本实施例的存储器结构支持这种访问,因
为这样一种来自不安全源的程序可以例如访问一存储器位置以检索数据或指令,而不能改
变来自该位置或其它位置的该数据或指令,因为仅安全进程和源被允许访问。
因此,从图2可以看出,存储器26包括由在此示出为地址0到地址j的地址范围定义
的第一区域,从地址k至地址r范围的第二定义区域,和范围从地址s到地址z的第三定义区
域。该第一区域是被指定为允许具有安全或非安全的安全访问标记或标识符的设备,块和
进程访问以读取和写入的区域。该第二区域是被指定为允许仅具有安全的安全访问标记或
标识符的设备,块和进程访问以读取和写入的区域。具有非安全的安全访问标记的设备,块
和进程未被给予读取或写入的访问权限。该第三区域是被指定为允许仅具有安全的安全访
问标记或标识符的设备,块和进程访问以读取和写入,但具有不安全的安全访问标记或标
识符的设备,块和进程被允许访问以读取但不能写入的区域。
在操作中,当设备,块或进程直接或经由CPU 22生成存储器访问请求时,MPU 28接
收该访问请求。MPU 28的控制器30产生生成该存储器访问请求的该设备,块或进程的ID或
标识符,以从查找表32(或从与算法的通信)确定该设备,块或进程的安全访问标记。相应
地,将基于以下因素中的至少一个来授权或拒绝访问:
a)要访问存储器的三个定义区域中的哪一个;
b)该请求是来自安全的还是非安全的处理设备、块或进程;以及
c)请求的访问的类型。
如果要访问的存储器的区域是允许安全和非安全的设备、块或进程读取或写入的
第一区域,则访问被允许而不需要b)和c)的评估。如果要访问的存储器区域是仅允许安全
设备、块或进程读取或写入的第二区域,则仅在该源具有安全访问标记时访问才被允许。相
应地,对于这种情况,a)和b)都必须被评估。如果要访问的存储器的区域是允许仅具有安全
的安全访问标记或标识符的设备、块和进程访问以读取和写入,而具有不安全的安全访问
标记或标识符的设备、块和进程仅被允许读取的该第三区域,则在确定该访问请求是否被
准许之前a),b)和c)都必须被评估。
图3是示出具有根据一个实施例配置的存储器结构的计算系统的部分电路图和部
分框图。计算系统20包括CPU 22,其通过总线24通信以检索存储在存储器40,42或44中的指
令和数据。对存储器40,42或44的访问由MPU 28控制。MPU 28包括控制器30和查找表32。MPU
28经由总线24与处理器22通信,且经由直接连接或专用总线与存储器40,42或44通信。输
入/输出接口24也连接到总线24以允许计算系统20经由有线或无线通信协议及物理信道与
外部的网络、系统和设备通信。
在一种形式中,如本文的实施例所描述的计算系统包括CPU、通信总线、至少一个
存储器和存储器保护单元(MPU)。该存储器通常包括具有不同访问权限的至少两个不同的
存储器。在所描述的实施例中,第一存储器40仅被具有安全标识符的块或源访问以便读取
和写入操作。第二存储器42可以被任何块或源访问以便读取和写入操作而不考虑安全标识
符。换句话说,具有安全和非安全标识符的设备,块和源可以访问以便读取和写入操作。第
三存储器44是非对称存储器,其中只有具有安全标识符的设备、块或源可以写入,但是包括
那些具有非安全标识符在内的所有块和源可以访问以读取。实施例的一个方面是安全进程
可以将数据写入到该第三和非对称存储器44以允许非安全块或进程访问并读取该数据但
不写入(或改变)该数据。
在操作中,当设备、块或进程直接或经由CPU 22生成存储器访问请求时,MPU 28接
收该访问请求。MPU 28的控制器30产生生成该存储器访问请求的该设备、块或进程的ID或
标识符,以从查找表32确定所请求的设备,块或进程的安全访问标记。相应地,将基于以下
因素中的至少一个来授权或拒绝访问:
a)要访问三个定义的存储器中的哪一个;
b)该请求是来自安全的还是非安全的处理设备、块或进程;以及
c)请求访问的类型。
如果要访问的存储器是允许安全和非安全的设备、块或进程以读取或写入的第一
存储器,则访问被允许而不需要b)和c)的评估。如果要访问的存储器是仅允许安全设备、块
或进程以读取或写入的第二存储器,则仅在该源具有安全访问标记时访问才被允许。相应
地,对于这种情况,a)和b)都必须被评估。如果要访问的存储器是允许仅具有安全的安全访
问标记或标识符的设备、块和进程访问以读取和写入,但具有不安全的安全访问标记或标
识符的设备、块和进程仅被允许读取的第三存储器,则在确定该访问请求是否被准许之前
a),b)和c)都必须被评估。
图4是根据一个实施例配置的存储器的功能框图。图4所示的实施例示出了存储器
的5个区域,但是应当理解,关于图4中阐释的基本原理可以应用于具有不同数量的存储器
区域的存储器配置。正如所见,图4的存储器具有以下存储区域:
1)允许安全读取/写入,不安全读取/写入;
2)安全1读取/写入,所有其他只读;
3)安全1和安全2读取/写入,所有其他只读;
4)仅安全1读取/写入;以及
5)仅安全3和4读取/写入。
因此,可以看出存储器被更高度地分区以更好地控制何种设备、块或进程可以访
问给定存储器区域用以读取还是写入。应当理解,多个ID或一组ID可以由诸如“安全2”的标
记来表示。例如,可以允许具有安全1标记的设备、块和进程访问操作软件指令(例如,内核
类型指令),而允许具有安全2-4标记的设备、块和进程访问寄宿和存储在存储器中的应用
程序。图4实施例的一个方面在于可以为具有层级的或甚至相互排斥的访问限制的安全标
记的设备、块和进程定义多个区域。进一步,访问可以是对称的或不对称的(一些具有完全
访问,而另一些具有只读访问)。应当理解,关于安全标记的访问示出了可以布置存储器的
方式,但是实际访问规则可以变化并且仍然在本公开的范围内。
图5是示出根据一个实施例的方法的流程图。该方法开始于存储器控制器从设备、
块或进程接收存储器访问请求(100),然后确定该存储器访问请求的源标识和正在请求的
访问的类型(102)。识别所实现的设备、块或进程的任何已知形式均可被使用。该方法进一
步包括与查找表通信以确定源安全标识符以确定该源是否被允许访问(104),并且随后基
于该源标识,被访问的存储器地址的范围,以及请求是读取访问还是写入访问来允许或拒
绝访问(106)。
如前所述,存储器结构包括关于存储器的读取和写入操作的不对称布置。第一区
域中允许任何设备、块或进程进行读取和写入操作,而不管该设备、块或进程是否具有安全
或非安全的安全标记。
图6是示出根据一个实施例的一种访问非对称存储器的方法的流程图。该方法开
始于存储器访问控制器接收存储器访问请求(110)。该方法进一步包括确定生成该存储器
访问请求的设备、块或进程的源标识和正在请求的访问的类型(112)。该方法进一步包括该
控制器与查找表通信以确定源安全标识符以确定该源是否被允许访问(114)。在所描述的
实施例中,该方法包括:基于可被具有安全或非安全标记的源标识访问以便读取和写入操
作的第一地址范围来允许访问(116)。该方法进一步包括基于仅可被具有非安全标记的源
标识访问以便读取操作的第二地址范围来允许或拒绝访问(118),并且基于仅可被具有安
全标记的源标识访问以便读取和写入操作的第三地址范围来允许或拒绝访问(120)。最后,
该方法包括基于具有安全标记的源标识来允许对存储器地址的该第一,第二和第三范围的
读取和写入访问(122)。
图7是示出访问存储器的一替代实施例的流程图。该方法开始于存储器控制器接
收存储器访问请求(130),并确定该存储器访问请求的源标识和正在请求的访问的类型
(132)。该方法进一步包括该控制器与查找表通信以确定源安全标识符以确定该源是否被
允许访问(134)。因此,该方法包括确定允许所有的源访问第一地址范围以读取和写入,而
不管该设备、块或进程是否具有安全或非安全的安全标记(136)。该方法还包括仅允许具有
安全的安全标识符的所有源访问第二地址范围以读取和写入(138)。任何不具有安全标记
的设备、块或进程不允许读取或写入该第一地址范围内的任何存储器单元或寄存器。
该方法还包括仅允许具有安全的安全标识符的所有源对第三地址范围的读取和
写入访问,允许仅具有非安全的安全标识符的所有源的读取访问(140)。这里,具有非安全
的安全标记的设备、块或进程可以读取但不可以写入该地址的第三范围内的存储器单元或
寄存器。
已经描述了用于计算系统的存储器访问系统,其使用用于控制对存储器的访问的
存储器控制器来操作。上述公开的主题被认为是示意性的而非限制性的,并且所附权利要
求旨在涵盖落入该权利要求的真实范围内的所有这样的修改,增强和其他实施例。例如,可
以根据上述原理针对任意数量N个不同的安全区域和M个安全源来构建MPU。源自身可以具
有允许访问各种数量的预先配置的安全区域的多级安全优先级。此外,MPU可以基于级别优
先级提供安全区域和源的层级以进行匹配。例如,具有安全级别3所标记的安全源可以访问
任何具有大于3的安全级别标记的区域以读取/写入,可以从任何安全级别等于3的区域读
取,但不能写入安全级别等于3的任何区域,并且不能访问任何安全级别小于3的区域。任意
算法、方法或计算可以被使用以确定对各种不对称和对称区域的访问。附加的修改可以包
括通过可安全访问其具有完全访问权的任何区域的进程对存储器区域的动态重新分配。