用于安全地址重映射的方法和装置的制作方法

文档序号:6418994阅读:155来源:国知局
专利名称:用于安全地址重映射的方法和装置的制作方法
技术领域
本发明涉及计算机系统的安全,尤其涉及安全地址重映射。
地址解码器经常用于计算机系统里的存储器映射。例如,在使用高级微控制器总线结构(AMBA)的系统里,地址解码器的主要功能是对主设备提供的地址进行中心解码和选择合适的总线从设备。为得到关于AMBA和AMBA系统总线(ASB)的更多信息,参见高级风险机器(Advanced Risk Machines)有限公司的网站,WWW.ARM.com。
尽管集成电路经常包括为防止窃密或误用的安全部件,但是通常没有给地址解码器建立安全部件。
根据本发明的优选实施例,地址解码器包括多个地址解码器模块。每一地址解码器模块有用于多个设备中的每一个设备的选择线。多个异或组合电路中的每一个为多个设备中的单一设备执行所有选择线的一个逻辑异或功能。地址解码器里的状态控制一次激活一个地址解码器模块。
在优选实施例中,每一个地址解码器模块连接到AMBA系统总线(ASB)的地址总线部分。例如,当为一个AMBA系统总线(ASB)实现地址解码器时,每一个地址解码器模块可以作为一个标准的ASB地址解码器实现。
在优选实施例中,状态控制确立所有未被激活的地址解码器模块的复位信号。访问一个设备需要的允许访问级和用于访问一个设备的基地址可以根据哪一个地址解码器模块被激活而改变。例如,可以这样访问用于一个处理器的不同引导地址,使得在最初软件可以从高速存储器(flash memory)引导(位置0),然后复制到随机存取存储器(RAM)以便执行,使得RAM现在使用引导地址(位置0)。
本发明允许给地址解码器增加安全部件。如本发明叙述的,多地址解码器模块的使用允许重利用标准模块以形成一个安全地址解码器。这样,除了增加安全性外,本发明还在地址解码器需要考虑状态变化时允许简单的设计。


图1是简化的方框图,表示用于解码总线上的地址的模块地址解码器,以便根据本发明的优选实施例来选择设备。
图2是如图1所示根据本发明优选实施例的具有安全部件的模块地址解码器的简化方框图。
图3表示根据本发明的优选实施例用于地址解码器模块的简化的输入/输出(I/O)。
图4是根据本发明优选实施例的地址解码器模块的简化方框图。
图1是一个简化的方框图,表示用于解码总线30上的地址的模块地址解码器10,以便选择用设备11、设备12、设备13表示的许多设备中的一个。虽然以示例方式表示出三个设备,但是可以使用任何数目的设备。
当总线30上的地址指示要选择设备11时,地址解码器10将确立设备选择线37上的信号。当总线30上的地址指示要选择设备12时,地址解码器10将确立设备选择线38上的信号。当总线30上的地址指示要选择设备13时,地址解码器10将确立设备选择线39上的信号。
例如,总线30根据高级微控制器总线结构(AMBA)操作。
图2是地址解码器10的方框图。地址解码器10包括多个地址解码器模块。这些地址解码器模块用地址解码器模块21、地址解码器模块22和地址解码器模块23表示。虽然以示例方式表示出三个地址解码器摸地,但是本发明只需要存在至少两个地址解码器模块。可以接受两个以上的任意数目。
每一个地址解码器模块有用于每一设备的唯一的设备选择线。例如,地址解码器模块21有用于第一设备的设备选择线41、用于第二设备的设备选择线44、用于第三设备的设备选择线47。地址解码器模块22有用于第一设备的设备选择线42、用于第二设备的设备选择线45、用于第三设备的设备选择线48。地址解码器模块23有用于第一设备的设备选择线43、用于第二设备的设备选择线46、用于第三设备的设备选择线49。
状态控制块20用于一次只选择一个地址解码器模块。状态控制块20将确立没有被选择的地址解码器模块的复位信号。
例如,当没有选择地址解码器模块21时,状态控制块20将使用复位线31来确立到地址解码器模块21的复位信号。当没有选择地址解码器模块22时,状态控制块20将使用复位线32来确立到地址解码器模块22的复位信号。当没有选择地址解码器模块23时,状态控制块20将使用复位线33来确立到地址解码器模块23的复位信号。
逻辑异或电路24用于为第一设备选择要传送到设备选择线37的有效选择信号。异或电路24保证在用于第一设备的有效选择信号被传送到设备选择线37之前,确立设备选择线41、42、43中的一个且仅只一个设备选择线。如果同时确立设备选择线41、42、43中多于一个的设备选择线,则这指示多于一个的地址解码器模块同时激活;因此,异或电路24将不确立选择线37,并产生一个总线错误。
逻辑异或电路25用于为第一设备选择要传送到设备选择线38的有效选择信号。异或电路25保证在用于第一设备的有效选择信号被传送到设备选择线38之前,确立设备选择线44、45、46中的一个且仅只一个设备选择线。如果同时确立设备选择线44、45、46中多于一个的设备选择线,则这指示多于一个的地址解码器模块同时激活;因此,异或电路25将不确立选择线38,并产生一个总线错误。
逻辑异或电路26用于为第一设备选择要传送到设备选择线39的有效选择信号。异或电路26保证在用于第一设备的有效选择信号被传送到设备选择线39之前,确立设备选择线47、48、49中的一个且仅只一个设备选择线。如果同时确立设备选择线47、48、49中多于一个的设备选择线,则这指示多于一个的地址解码器模块同时激活;因此,异或电路26将不确立选择线39,并产生一个总线错误。
地址解码器模块对于每一设备可以各自有唯一的允许和基地址。状态控制块20检测状态变化,例如通过监视寄存器中的值,或者通过逻辑检测处理器中的状态变化。例如,状态变化可以从正常状态到安全状态,或者从正常状态到测试状态。
多地址解码器模块的使用允许重新使用标准块以形成安全地址解码器。这增加安全性,允许当地址解码器需要考虑状态变化时进行简单的设计。
图3表示用于地址解码器模块50的简化输入/输出(I/O),地址解码器模块50是图2所示地址解码器模块的代表。地址解码器模块50设计为与AMBA系统总线(ASB)一起工作。地址解码器模块50为两个或更多个ASB从外围设备提供中心的地址解码。地址解码器模块50提供默认传输响应以及能被配置为高速和低速操作。地址解码器模块50也能被配置用作保护单元。这通过下述方式实现通过允许一个地址区域被读/写、只读、或只写;通过只允许在监视方式下对一个地址区域访问;通过允许一个地址区域只存储操作码或只存储数据;通过报告不正确对齐的存储器存取;通过允许或不允许字节、半字和字存取;以及通过报告对未定义存储区的存取。
当被确立为高电平时,扫描测试方式(Scan Test Mode)输入管脚51使地址解码器模块50进入测试状态。在测试状态下,地址解码器模块50的传输响应三态被禁止,从设备选择(dsel)输出管脚64将一直选择一个且只选择一个从设备。还是在测试状态下,地址解码器模块50内的解码器使能(DecEnable)锁存器一直透明,而内部测试点被使能。
两位传输型(btran[1:0])输入总线管脚52接收指示下一总线事务处理的传输类型的输入。总线事务处理的三种类型有只地址型(ATRAN,btran=00),顺序型(STRAN,btran=11)和非顺序型(NTRAN,btran=10)。
32位地址(ba[31:0])输入总线管脚53接收AMBA系统总线地址。
传输方向(bwrite)输入管脚54接收传输方向的指示。当bwrite为低时,这指示一个读周期。当bwrite为高时,这指示写周期。
两位传输长度(bsize[1:0])输入总线管脚55指示要传输的数据字的长度。三种可能的长度为32位(bsize=00),16位(bsize=01)和8位(bsize=10)。
两位保护控制(bprot[1:0])输入总线管脚56提供关于转换类型的信息以实现基本传输保护。信息包括数据是操作码还是数据和存取方式是用户还是监视程序。
总线时钟(bclk)输入管脚57接收系统总线时钟。
非总线时钟(nbclk)输入管脚58接收反相系统总线时钟。
复位(bnres)输入管脚59接收复位信号,当复位信号为低时,复位地址解码器模块50。
等待响应(bwait)双向管脚60承载一个信号,当其为高时,指示为完成总线事务处理至少需要一个另外的周期,当其为低时,指示应该在当前周期内完成事务处理。
错误响应(berror)双向管脚61承载一个信号,当其为高时,指示发生传输错误,当其为低时,指示传输正确进行。错误响应(berror)双向管脚61还与上一响应(blast)双向管脚62一起使用以指示一个总线撤销。
上一响应(blast)双向管脚62承载一个信号,当其为高时,指示地址解码需要另一周期,当其为低时,指示一个脉冲串序列可以继续。上一响应(blast)双向管脚62还与错误响应(berror)双向管脚61一起使用以指示总线撤销。
从设备选择(dsel[y:0])输出总线管脚64为由每一个从设备的使能所组成的总线产生信号。在一个给定的时间准确选择一个从设备或不选择从设备。当从设备选择(dsel[y:0])输出总线管脚64的单一管脚(dsel[x])为高时,这指示从设备x被选择。当从设备选择(dsel[y:0])输出总线管脚64的单一管脚(dsel[x])为低时,这指示没有选择从设备x。
图4是地址解码器模块50的简化方框图。地址区72、存储器传输响应块75、收发器71、一组逻辑与门78和控制块76为地址解码器模块50提供地址解码功能。地址解码功能中心解码一个地址和选择一个合适的从设备。
如果地址范围是单一地址或是大小2n并从2n的倍数开始,那么地址解码仅包括高阶位标记比较。如果地址区不是2的幂,那么按标签比较相同的高阶位。然后,除了以0开始或以0×FFFFFFFF结束的地址范围,使用两个比较器比较不匹配的低阶位。对于在0开始的退化区(degenerate region),只由a≤A决定范围0到A。同样,只由a≥A决定范围A到0×FFFFFFFF。
地址区72检测错误并当用户访问一个不包含从设备的地址区时通过逻辑或门77确立到控制76的错误输入85,产生一个错误响应。
包括一个存储器边界检查块74,以便当地址解码器模块50正在解码该地址时,它也决定在有效地址区内是否仍然存在顺序存取。为了做到这一点,存储器边界检查块74对所有地址区相对于上边界检查当前地址。地址(ba[31:0])输入总线的低阶地址位(A
)对于字和半字传输而被忽略。地址(ba[31:0])输入总线的次低阶地址位(A[1])对于字传输而被忽略。如果当前地址与上边界之一匹配,则确立线84上的DecLast信号,地址解码器模块50插入一个等待状态。
除了由地址区72提供的错误检测外,地址解码器模块50提供另外的存取保护。这一另外的保护由保护单元73来提供。保护单元73产生错误信号,它经由逻辑或门77传送到控制块76的错误输入85。
如果用户存取一个后缀不是00的地址处的数据字或者存取一个后缀不是0的地址处的半字,则保护单元73检测到存取对齐违反错误。在这种场合,保护单元73产生一个错误信号。可以禁止这一违反类型的检测。
如果试图从只写区读或对只读区写,则保护单元73检测到一个读/写违反错误,将产生一个错误响应。在这种场合,保护单元73产生一个错误信号。
当用户存取标记为只有监视程序才能存取的区时,保护单元73检测到监视程序区存取错误。在这种场合,保护单元73产生一个错误信号。
如果用户以不支持的传输长度(字节,半字或字)存取一个地址,则保护单元73检测到不正确传输长度错误。在这种场合,保护单元73产生一个错误信号。
当试图从标记为数据的区取操作码或试图对标记为操作码的区存取数据时,保护单元73检测到数据类型错误。无论哪一种情况,保护单元73都产生一个错误信号。
前述讨论只是公开和描述了本发明的示例方法和实施例。熟悉本技术领域的人理解,本发明可以以其它特殊形式实施而不离开其精神或基本特征。因此,本发明的公开意在说明本发明的范围,而不是限制它。这一范围在下述权利要求中阐述。
权利要求
1.地址解码器,包括多个地址解码器模块,所述多个地址解码器模块中的每一个地址解码器模块都有一条用于多个设备中的每一个设备的选择线;多个异或组合电路,对于多个设备中的单一设备所述多个异或组合电路中的每一个异或组合电路执行所有选择线的逻辑异或功能;状态控制装置,用于一次驱动多个地址解码器模块中的一个地址解码器模块。
2.如权利要求1所述地址解码器,其中,所述多个地址解码器模块中的每一地址解码器模块连接到一条地址总线。
3.如权利要求1所述地址解码器,其中,状态控制装置确立多个地址解码器模块中未被驱动的所有地址解码器模块的复位信号。
4.如权利要求1所述地址解码器,其中,访问一个设备所需要的允许访问级根据哪一个地址解码器模块被驱动而改变。
5.如权利要求1所述地址解码器,其中,用于访问一个设备的基地址根据哪一个地址解码器模块被驱动而改变。
6.一种解码地址的方法,包括下述步骤(a)从多个地址解码器模块中一次驱动一个地址解码器模块,该多个地址解码器模块中的每一个地址解码器模块都有一条用于多个设备中的每一设备的选择线;(b)用多个地址解码器模块中的一个地址解码器模块驱动用于多个设备中的第一设备的第一选择线;(c)对于多个设备中的每一设备执行为该设备的所有选择线的逻辑异或功能。
7.如权利要求6所述方法,其中,在步骤(a),多个地址解码器模块中的每一地址解码器模块连接到一条地址总线。
8.如权利要求6所述方法,其中,步骤(a)包括下面的子步骤(a.1)通过状态控制块确立多个地址解码器模块中未被驱动的所有地址解码器模块的复位信号。
9.如权利要求6所述方法,其中,访问一个设备所需要的允许访问级根据哪一个地址解码器模块被驱动而改变。
10.如权利要求6所述方法,其中,用于访问一个设备的基地址根据哪一个地址解码器模块被驱动而改变。
全文摘要
一个地址解码器包括多个地址解码器模块。每一地址解码器模块都有一条用于多个设备中的每一设备的选择线。多个异或组合电路中的每一个执行为多个设备中的单一设备的所有选择线的逻辑异或功能。地址解码器内的状态控制一次驱动一个地址解码器模块。
文档编号G06F21/24GK1304508SQ99806916
公开日2001年7月18日 申请日期1999年11月30日 优先权日1999年2月1日
发明者M·L·布尔 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1