CN1991801A - 访问控制设备、方法和存储器访问控制设备、方法 - Google Patents
访问控制设备、方法和存储器访问控制设备、方法 Download PDFInfo
- Publication number
- CN1991801A CN1991801A CN 200610166789 CN200610166789A CN1991801A CN 1991801 A CN1991801 A CN 1991801A CN 200610166789 CN200610166789 CN 200610166789 CN 200610166789 A CN200610166789 A CN 200610166789A CN 1991801 A CN1991801 A CN 1991801A
- Authority
- CN
- China
- Prior art keywords
- data
- code
- mask
- syndrome
- address
- 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.)
- Granted
Links
Images
Abstract
一种访问控制设备,包括:奇偶校验码生成器,针对要写入存储器的原始数据,生成奇偶校验码;奇偶校验码加法器,通过把奇偶校验码添加到原始数据上,生成添加有奇偶校验码的数据;第一校正子生成器,生成第一掩码数据的第一校正子,以便对述添加有奇偶校验码的数据进行掩码。所述第一校正子是预先与第一访问代码相关联的并且写入器访问存储器时所用的值。所述设备还包括:第一掩码生成器,根据第一校正子、第一访问代码以及第一存储器地址,生成第一掩码数据;第一异或单元,通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间进行异或计算,获取第一运算后数据;写入单元,把所述第一运算后数据写入存储器。
Description
发明领域
本发明涉及可以对存储器访问予以控制的访问控制设备。本发明还涉及访问控制系统、处理器、访问控制方法、存储器访问控制设备、存储器访问控制系统以及存储器访问控制方法。
技术背景
在现代计算机系统中,采用了多道程序设计方法,通过该方法可以在几个进程(程序、任务或者工作)间切换,这样可以有效地利用计算机系统中的各种资源,如存储器或者CPU。
在这样一种系统中,存储器中由一个进程专用的数据可能会被另一个进程看见或者通过覆盖而遭到破坏。
为了解决这一问题,广泛使用的一种方法是通过把进程的关键值和要访问的存储器的存储器关键值进行比较,来判断是否应该允许访问。所述的“存储器关键值”是针对存储器的每个预定大小(比如,4KB)而记录的信息。2000年12月IBM的题为“z/ArchitecturePrinciples of Operation”的专利SA22-7832-00的3-9页到3-12页中公开了这项技术。
但是,在采用上述存储器关键值技术的存储器保护系统中,既需要提供用于存储数据的存储器,还需要提供用于存储所述存储器关键值的存储器。这样一来,就会增加硬件数量。
还有,比如,假设受保护的单元是4KB每页。当受保护的是小量的数据时,在存储器中就会剩下未使用的存储区域。这个问题可以通过为每个较小的存储区域分配一个存储器关键值来解决。但是,这样的解决方案需要更多的存储器来存储所述存储器关键值。
此外,当存储器中出现故障时,就可以对存储器进行访问,这会导致未授权的数据读取操作。
发明内容
根据本发明的一个方面,一种访问控制设备,用来控制写入器、读取器以及存储器之间的访问,包括:奇偶校验码生成器,针对要写入存储器的原始数据,生成奇偶校验码;奇偶校验码加法器,通过向原始数据添加奇偶校验码生成器生成的奇偶校验码,生成添加有奇偶校验码的数据;第一校正子生成器,生成第一校正子,即与写入器请求向存储器写入原始数据所用的第一访问代码相关联的值;第一掩码生成器,基于第一校正子、第一访问代码以及第一存储器地址,生成第一掩码数据,其中,写入器是在第一存储器地址将原始数据写入的;第一异或单元,通过在添加有奇偶校验码的数据和第一掩码数据之间执行异或运算,获取第一运算后数据;写入单元,把第一运算后数据写入存储器中;第二校正子生成器,用于生成第二校正子,即与读取器请求从存储器读取数据所用的第二访问代码相关联的值;第二掩码生成器,基于第二校正子、第二访问代码以及第二存储器地址,生成第二掩码数据,其中,读取器是从第二存储器地址读取数据的;读取单元,从存储器读取第一运算后数据;第二异或单元,通过在第二掩码数据和第一运算后数据之间执行异或运算,获取第二运算后数据;数据校正子计算器,基于第二运算后数据,计算实际数据校正子;以及输出判断单元,基于实际数据校正子,判断是否将第二运算后数据作为原始数据输出。
根据本发明的另一方面,一种访问控制系统,包括处理器、存储器控制器以及用于控制存储器访问的存储器访问控制设备,该存储器访问控制设备包括:奇偶校验码生成器,针对要写入存储器的原始数据,生成奇偶校验码;奇偶校验码加法器,通过向原始数据添加奇偶校验码生成器生成的奇偶校验码,生成添加有奇偶校验码的数据;第一校正子生成器,生成第一掩码数据的第一校正子,以便对添加有奇偶校验码的数据进行掩码,第一校正子是预先与第一访问代码相关联的值,第一访问代码是当写入器访问存储器时要使用的信息,写入器请求把原始数据写入存储器;第一掩码生成器,基于第一校正子、第一访问代码以及第一存储器地址,生成第一掩码数据,其中在第一存储器地址将原始数据写入;第一异或单元,通过在添加有奇偶校验码的数据和第一掩码数据之间执行异或运算,获取第一运算后数据;写入单元,把第一运算后数据写入存储器;第二校正子生成器,生成第二掩码数据的第二校正子,以便对第一运算后数据进行掩码,第二校正子是预先与第二访问代码相关联的值,第二访问代码是当读取器访问存储器时所用的信息,读取器请求从存储器读取数据;第二掩码生成器,基于第二校正子、第二访问代码以及第二存储器地址,生成第二掩码数据,其中从第二存储器地址读取数据;读取单元,从存储器读取第一运算后数据;第二异或单元,通过在第二掩码数据和第一运算后数据之间执行异或运算,获取第二运算后数据;数据校正子计算器,基于第二运算后数据,计算出实际的数据校正子;以及输出判断单元,基于实际数据校正子,判断是否把第二运算后数据作为原始数据输出。
根据本发明的另一个方面,一种访问控制系统包括:处理器;以及存储器访问控制设备,控制对存储器的访问。存储器访问控制设备包括:奇偶校验码生成器,针对要写入存储器的原始数据,生成奇偶校验码;奇偶校验码加法器,通过向原始数据添加奇偶校验码生成器生成的奇偶校验码,生成添加有奇偶校验码的数据;第一校正子生成器,生成第一掩码数据的第一校正子,以便对添加有奇偶校验码的数据进行掩码,第一校正子是预先与第一访问代码相关联的值,第一访问代码是当写入器访问存储器时所用的信息,写入器请求把原始数据写入存储器;第一掩码生成器,基于第一校正子、第一访问代码以及第一存储器地址,生成第一掩码数据,其中在第一存储器地址将原始数据写入;第一异或单元,通过在添加有奇偶校验码的数据和第一掩码数据之间执行异或运算,获取第一运算后数据;写入单元,把第一运算后数据写入存储器;第二校正子生成器,生成第二掩码数据的第二校正子,以便对第一运算后数据进行掩码,第二校正子是预先与第二访问代码相关联的值,第二访问代码是当读取器访问存储器时所用的信息,读取器请求从存储器读取数据;第二掩码生成器,基于第二校正子、第二访问代码以及第二存储器地址,生成第二掩码数据,其中读取器是从第二存储器地址读出数据的;读取单元,从存储器读出第一运算后数据;第二异或单元,通过在第二掩码数据和第一运算后数据之间执行异或运算,获取第二运算后数据;数据校正子计算器,基于第二运算后数据,计算出实际的数据校正子;以及输出判断单元,基于实际数据校正子,判断是否把第二运算后数据作为原始数据输出。
根据本发明的另一个方面,一种配备有存储器控制器和存储器访问控制设备的处理器,该存储器访问控制设备用于控制对存储器的访问,该处理器包括:奇偶校验码生成器,针对要写入所述存储器的原始数据,生成奇偶校验码;奇偶校验码加法器,通过向原始数据添加奇偶校验码生成器生成的奇偶校验码,生成添加有奇偶校验码的数据;第一校正子生成器,生成第一掩码数据的第一校正子,以便对添加有奇偶校验码的数据进行掩码,第一校正子是预先与第一访问代码相关联的值,第一访问代码是当写入器访问存储器时所用的信息,写入器请求把原始数据写入存储器;第一掩码生成器,基于第一校正子、第一访问代码以及第一存储器地址,生成第一掩码数据,其中在第一存储器地址写入原始数据;第一异或单元,通过在添加有奇偶校验码的数据和第一掩码数据之间执行异或运算,获取第一运算后数据;写入单元,把第一运算后数据写入存储器;第二校正子生成器,生成第二掩码数据的第二校正子,以便对第一运算后数据进行掩码,第二校正子是预先与第二访问代码相关联的值,第二访问代码是当读取器访问存储器时所用的信息,其中读取器请求从存储器读取数据;第二掩码生成器,基于第二校正子、第二访问代码以及第二存储器地址,生成第二掩码数据,其中从第二存储器地址读取数据的;读取单元,从存储器读取第一运算后数据;第二异或单元,通过在第二掩码数据和第一运算后数据之间执行异或运算,获取第二运算后数据;数据校正子计算器,基于第二运算后数据,计算出实际的数据校正子;以及输出判断单元,基于实际数据校正子,判断是否把第二运算后数据作为原始数据输出。
根据本发明的另一个方面,一种访问控制方法,包括:针对要被写入存储器的初始数据,生成奇偶校验码;通过向原始数据添加所生成的奇偶校验码,生成添加有奇偶校验码的数据;生成第一掩码数据的第一校正子,以便对添加有奇偶校验码的数据进行掩码,第一校正子是预先与第一访问代码相关联的值,第一访问代码是当写入器访问存储器时所用的信息,写入器请求把原始数据写入存储器;基于第一校正子、第一访问代码以及第一存储器地址,生成第一掩码数据,其中在第一存储器地址写入原始数据;通过在添加有奇偶校验码的数据和第一掩码数据之间执行异或运算,获取第一运算后数据;将第一运算后数据写入存储器;生成第二掩码数据的第二校正子,以便对第一运算后数据进行掩码,第二校正子是预先与第二访问代码相关联的值,第二访问代码是当读取器访问存储器时所用的信息,读取器请求从存储器读取数据;生成器基于第二校正子、第二访问代码以及第二存储器地址,生成第二掩码数据,其中数据是从第二存储器地址读取的;从存储器读取第一运算后数据;通过在第二掩码数据和第一运算后数据之间执行异或运算,获取第二运算后数据;基于第二运算后数据,计算出实际的数据校正子;以及基于实际数据校正子,判断是否把第二运算后数据作为原始数据输出。
根据本发明的另一个方面,一种存储器访问控制设备,包括:读请求获取器,获取要从存储器读取的数据以及用于读取数据的存储器地址,数据和存储器地址是从一个读取器获取的,读取器请求从存储器读取数据;缓冲存储器监控器,判断读请求获取器获取的存储器地址是否存储在缓冲存储器中,缓冲存储器将数据、数据的存储器地址以及请求方访问代码相互关联地存储,请求把数据写入存储器的写入器请求将数据写入存储器,或者读取器请求从存储器读取数据,请求方访问代码是允许访问数据的写入器或者读取器访问存储器时所用的信息;访问代码比较器,当缓冲存储器监控器确定存储器地址存储在缓冲存储器中时,将请求方访问代码跟第二访问代码进行比较,请求方访问代码与缓冲存储器中的存储器地址相关联,而第二访问代码是读取器访问存储器时所用的信息;以及输出单元,当请求方访问代码与第二访问代码相匹配时,把与缓冲存储器中的存储器地址相关联的数据输出到读取器。
根据本发明的另一方面,一种访问控制系统,包括:处理器;缓冲存储器;以及存储器访问控制设备,控制对存储器的访问,缓冲存储器存储有写入器或读取器所请求的数据、数据的存储器地址以及请求方访问代码,写入器请求把数据写入存储器,而读取器请求从存储器读取数据,请求方访问代码是当允许访问数据的写入器或者读取器访问存储器时所用的信息,数据和存储器地址是与请求方访问代码相关联的,存储器访问控制设备包括:读请求获取器,从读取器获取要从存储器读取的数据以及数据的存储器地址;缓冲存储器监控器,判断读请求获取器获取的存储器地址是否存储在缓冲存储器中;访问代码比较器,当缓冲存储器监控器确定存储器地址是存储在缓冲存储器中时,将请求方访问代码与第二访问代码进行比较,请求方访问代码与缓冲存储器中存储器地址相关联,而第二访问代码是读取器访问存储器时所用的信息;以及输出单元,当请求方访问代码与第二访问代码相匹配时,将与缓冲存储器中的存储器地址相关联的数据输出到读取器。
根据本发明的另一个方面,一种存储器访问控制方法,包括:获取要从存储器中读取的数据以及用于读取数据的存储器地址,数据和存储器地址是从请求从存储读取数据的读取器获取的;判断获取的存储器地址是否存储在缓冲存储器中,缓冲存储器将数据、数据的存储器地址以及请求方访问代码相互关联地进行存储,请求把数据写入存储器的写入器请求将数据写入存储器,或者读取器请求从存储器读取数据,请求方访问代码是有权访问数据的写入器或者读取器访问存储器时所用的信息;当存储器地址存储在缓冲存储器中时,将请求方访问代码与第二访问代码进行比较,请求方访问代码与缓冲存储器中的存储器地址相关联,而第二访问代码是读取器访问存储器时所用的信息;以及当请求方访问代码与第二访问代码相匹配时,将与缓冲存储器中的存储器地址相关联的数据输出到读取器。
附图说明
以下将结合附图和具体实施例对本发明进行详细描述,其中:
图1示出了依照本发明第一个实施例的访问控制系统;
图2示出了将数据写入存储器时要执行的操作;
图3示出了读取数据D′要执行的操作;
图4示出了在数据长度是64比特的情况下将校验矩阵和HsiaoSEC-DED码一起使用的例子;
图5示出了与图4中的校验矩阵H相对应的生成器矩阵;
图6的框图示出了访问控制设备的具体功能结构;
图7示出了从处理器看到的地址空间;
图8的框图示出了掩码值生成电路的功能结构;
图9示出了数据掩码生成电路的结构;
图10A示出了访问ID校正子生成电路;
图10B也示出了访问ID校正子生成电路;
图11示出了写操作的流程图,写操作是访问控制系统中访问控制操作的一部分;
图12示出了写操作过程中的数据流;
图13示出了访问ID设置操作所用的进程管理表;
图14示出了访问ID设置操作具体过程的流程图;
图15示出了掩码值生成电路执行的掩码值生成操作的具体过程的流程图;
图16示出了访问控制系统中从存储器读取数据的流程图;
图17示出了读取写在存储器中的数据的操作;
图18的框图示出了依照本发明的第二个实施例的访问控制设备的功能结构;
图19的框图示出了访问ID管理电路的功能结构;
图20示出了访问ID表的数据结构;
图21示出了访问ID管理电路的结构;
图22示出了依照第二个实施例的访问控制系统中访问ID获取操作的具体过程的流程图;
图23示出了依照本发明第三个实施例的访问控制系统中访问ID管理电路的访问ID表的数据结构;
图24示出了访问ID管理电路的结构;
图25示出了依照第三个实施例的访问控制系统中访问ID获取操作的具体过程的流程图;
图26示出了依照本发明的第四个实施例的访问ID表的数据结构;
图27示出了访问ID管理电路的结构;
图28示出了依照第四个实施例的访问控制系统中访问ID获取操作的具体过程的流程图;
图29的框图示出了依照本发明第五个实施例的数据掩码生成电路的功能结构;
图30示出了数据掩码生成信息表的数据结构;
图31更详细地示出了一个LFSR延迟计算电路的结构;
图32示出了一个包含在LFSR延迟计算电路中的电路;
图33示出了另一个包含在LFSR延迟计算电路中的电路;
图34的框图示出了依照本发明第六个实施例的数据掩码生成电路的功能结构;
图35的框图示出了依照本发明第七个实施例的数据掩码生成电路的功能结构;
图36示出了地址分离电路;
图37示出了依照第七个实施例的第一修正版的地址分离电路;
图38的框图示出了只包括零移位电路的数据掩码生成电路;
图39的框图示出了只包括地址分离电路的数据掩码生成电路;
图40的框图示出了依照第七个实施例的第三修正版的数据掩码生成电路;
图41的框图示出了依照第七个实施例的第四修正版的数据掩码生成电路;
图42的框图示出了依照第七个实施例的第五修正版的数据掩码生成电路;
图43的框图示出了依照本发明第八个实施例的访问控制设备的功能结构;
图44示出了地址转换设备;
图45示出了依照第八个实施例的第一修正版的地址转换设备;
图46示出了依照第八个实施例的第二修正版的地址转换设备;
图47示出了依照第八个实施例的第三修正版的地址转换设备;
图48示出了本发明的第一修正版的访问控制系统;
图49示出了第二修正版的访问控制系统;
图50示出了第三修正版的访问控制系统;
图51示出了第四修正版的访问控制系统;
图52示出了第五修正版的访问控制系统;
图53示出了第六修正版的访问控制系统;
图54示出了第七修正版的访问控制系统;
图55示出了依照本发明第九个实施例的访问控制系统;
图56的框图示出了访问控制设备的功能结构;
图57的框图示出了处理器端缓冲器控制电路的功能结构;
图58的框图示出了缓冲存储器的功能结构;
图59的框图示出了存储器端缓冲器控制电路的功能结构;
图60示出了写操作的流程图,写操作是依照本发明的第九个实施例的访问控制系统中访问控制操作的一部分;
图61示出了读操作的流程图,读操作是依照本发明的第九个实施例的访问控制系统中访问控制操作的一部分;
图62的框图示出了依照本发明第十个实施例的访问控制设备的功能结构;
图63的框图示出了依照第十个实施例的掩码值生成电路的功能结构;
图64示出了地址转换信息表的数据结构;
图65示出了一个存储器地址;
图66A示出了地址转换设备执行的地址转换操作;
图66B也示出了地址转换设备执行的地址转换操作;
图67示出了地址转换设备;
图68示出了实现图66A和图66B中地址转换功能的地址转换表;
图69示出了依照第十个实施例的访问控制系统中的写操作的流程图;
图70示出了依照第十个实施例的访问控制系统中的读操作的流程图;
图71示出了依照第十个实施例的第一修正版的地址转换设备;
图72示出了依照第十个实施例的第二修正版的数据掩码生成信息表的数据结构;
图73的框图示出了依照本发明第十一个实施例的存储器访问控制设备的功能结构;
图74示出了重排缓冲器;
图75示出了突发传递控制器向存储器写入数据时要执行的操作的流程图;
图76更详细地示出了图75中所示的写操作;
图77示出了突发传递控制器从存储器读取数据时要执行的操作的流程图;
图78更详细地示出了图77中所示的读操作;
图79的框图示出了依据第十一个实施例的修正版的存储器端缓冲器控制电路的功能结构;
图80示出了依照本发明的第十二个实施例的访问控制系统;
图81示出了存储器访问控制设备的功能结构;
图82的框图示出了总线加密设备的功能结构;
图83示出的信号示例未经过总线加密设备执行的掩码操作;
图84示出的信号示例经过了总线加密设备执行的掩码操作;
图85的框图示出了依照第十二个实施例的第二修正版的总线加密设备的功能结构;
图86的框图示出了依照第十二个实施例的第三修正版的存储器访问控制设备的功能结构;
图87的框图示出了依照第十二个实施例的第四修正版的存储器访问控制设备的功能结构;以及
图88的框图示出了依照第十二个实施例的第五修正版的存储器访问控制设备的功能结构;
具体实施方式
下面结合附图,详细描述访问控制设备、访问控制系统、处理器、访问控制方法、存储器访问控制设备、存储器访问控制系统以及存储器访问控制方法的实施例。但是,本发明不限于下面的实施例。
图1示出了依照第一个实施例的一种访问控制系统1的总体结构。访问控制系统1包括访问控制设备10、处理器20、存储器控制器30以及存储器40。
处理器20和存储器40相互连接,并与存储器控制器30和访问控制设备10相连。存储器控制器30为处理器总线22(直接从处理器延伸出来的信号线)的协议和存储器总线42的协议之间的差异提供仲裁。换句话说,存储器控制器30对用来读取或写入从处理器20传输到处理器总线22的数据的信号和用来对存储器40进行读取或写入操作的信号之间的差异进行仲裁。
比如,如果存储器40是DRAM而且处理器20指定了地址并发出了读请求,则需要把该地址划分为高位地址和低位地址,然后把它们发送到存储器40。存储器控制器30会对它们之间程序上的差异进行转换。
访问控制设备10连接存储器控制器30和存储器40之间。当从存储器40读取数据时,访问控制设备10会判断该数据的读取器是否有访问该数据的权限。处理器20通过存储器控制器30,把关于访问权限的信息设置到访问控制设备10中。更具体地说,处理器20会设置如访问ID等信息,下面还要对此进行描述。
访问控制设备10还具备ECC(纠错码或差错控制码)功能。更具体地说,访问控制设备10向处理器20要写入存储器40的数据添加ECC。访问控制设备10还检查从存储器40读取的数据所附带的ECC。通过ECC,访问控制设备10用和每个ECC单元一样大小的32比特或64比特的单元,对存储器40执行访问控制或者保护。从而,存储器40可以通过小单元得到保护。
在处理器20中管理请求访问存储器数据的资源,即数据的读取器和写入器,访问控制设备10对此进行访问权限控制。
接下来描述ECC。图2和图3示出了ECC。图2示出了向存储器40写入数据时要执行的操作。一般而言,如果将n比特大小的数据D一次写入存储器40,则将根据数据D的值计算出来的m比特的奇偶校验码添加到数据D上,如图2所示。结果,将n+m比特的数据D′写入存储器40中。
比如,如果将64(=n)比特的数据一次写入存储器40中,将根据所述64比特数据的值计算出来的8(=m)比特的奇偶校验码添加到所述64比特的数据上,然后将添加有奇偶校验码的72比特的数据写入到存储器40中。
图3示出了读取数据D′时要执行的操作。为了将数据D′从存储器40中读取出来,根据数据D′和校验矩阵“H”的转置矩阵的乘积计算出m比特数据的值。该m比特数据的值被称作是校正子(syndrome)。如果校正子是“0”,那么在这n比特数据中就没有差错。
如果校正子不是“0”,数据D′中就有差错。如果差错是可纠正的,就应该纠正它。如果差错是不可纠正的,就要通过中断或者类似的手段报告处理器20出现差错,该处理器20是请求访问存储器数据的发起者。
ECC的种类有很多。奇偶校验位的个数、计算奇偶校验位个数的方法、计算校正子所采用的检测矩阵以及根据校正子确定需要纠正的位的位置的方法随着ECC种类的不同而变化。
计算机系统的存储器中广泛采用的是SEC-DED(单错纠正和双错检测)码。当数据或奇偶校验码中有一个差错位(或者一个差错)时,可以通过SEC-DED码具体确定差错的位置。当有两个差错位(或者两个差错)时,可以通过SEC-DED码检查出有差错,但是无法具体确定差错位的位置。一般来说,将7比特的奇偶校验码作为ECC添加到32比特的数据上,将8比特的奇偶校验码作为ECC添加到64比特的数据上,以及,将9比特的奇偶校验码作为ECC添加到128比特的数据上。
根据计算奇偶校验码的方法和生成检测矩阵的方法,SEC-DED码也有很多种。其中用的最多的是扩展海明码和Hsiao码。具体而言,Hsiao SEC-DED码适合电路组装,所以得到了广泛的使用。扩展海明码是在2003年剑桥大学出版社出版的Richard E.Blahut所著“Algebraic Code for Data Transmission”的第63页中公开出来的。Hsiao码是在1970年“IBM研究与开发期刊(IBM Journal of Researchand Development)”刊登的M.Y.Hsiao所著的“A Class of OptimalMinimum Odd-weight-column SEC-DED Codes”的395到401页中公开出来的。在这两类SEC-DED码之间对校正子的值有不同的解释,但是纠错和检错按照同样的方法进行。
在依照第一个实施例的访问控制系统1中,采用的是将把8比特奇偶校验码添加到64比特数据上的Hsiao码。但是,数据长度并不限于此。可以对不同长度的数据执行相同的访问控制,如32比特数据、16比特数据以及128比特数据。此外,可以用其它SEC-DED码执行相同的访问控制,比如扩展海明码或者其它类型的纠错码。
图4示出了在数据长度是64比特的情况下将校验矩阵和HsiaoSEC-DED码一起使用的例子。该校验矩阵由8行和72列组成。从左面起第1到第64位对应于64比特存储数据各位的位置,而剩下的8位对应于奇偶校验位的位置。从右面起的第1到第8列是一个8x8的单位矩阵,对应于所述奇偶校验码。
图5示出了与图4中的校验矩阵H对应的生成器矩阵。这个生成器矩阵“G”用于计算出奇偶校验码,并将其添加到那些尚未添加奇偶校验码的原始数据上。生成器矩阵“G”由64行和72列组成。从左面起第1到第64列组成了一个64x64的单位矩阵,而从右面起的剩余8列构成了所述生成器矩阵“G”的从第1到第64列的转置矩阵。
图6的框图示出了访问控制设备10的具体功能结构。访问控制设备10包括奇偶校验码生成电路100、第一异或电路102、访问ID寄存器110、掩码值生成电路112、第二异或电路104、校正子计算电路120以及纠错电路122。
除了传统的ECC电路结构之外,访问控制设备10还包括:生成掩码值以用于检测访问权限的电路;将数据和奇偶校验码一起记录在存储器40中的电路;使用掩码值来检测关于从存储器40中读取的数据的访问权限的电路。除了第一异或电路102、访问ID寄存器110、掩码值生成电路112以及第二异或电路114之外,访问控制设备10拥有和传统ECC电路一样的电路结构。
当与访问控制设备10相连的存储器控制器30具有ECC电路时,访问控制设备10会利用存储器控制器30的ECC电路,而不包括ECC电路的功能。
奇偶校验码生成电路100针对经由存储器控制器30从处理器20获取的数据,生成奇偶校验码。然后将奇偶校验码添加到该数据上。
更具体地说,通过存储器控制器30从处理器20获取64比特的数据。然后,根据所获取的数据计算出8比特的奇偶校验码,并将其输出到第一异或电路102。用图5中所示生成器矩阵“G”来进行这一计算。
该64位的输入数据“d”用等式(1)中所示的由64个元素组成的向量来表示,而经过编码的字“x”用等式(2)中所示的由72个元素组成的向量来表示,其中包括添加给数据“d”的8比特奇偶校验码。
d=(d1,d2,d3,...d64) (1)
x=(d1,d2,d3,...d64,p1,p2,...p8) (2)
该经过编码的字(带有奇偶校验码的数据)“x”、生成器矩阵“G”、以及数据“d”之间的关系用等式(3)表示:
x=dG (3)
从而,可以通过生成器矩阵“G”与这64比特的数据相乘,获取该经过编码的字“x”。将获取的经过编码的字“x”的最后八个元素作为8比特的奇偶校验码输出。
众所周知,奇偶校验码生成电路100可以具体化为组合电路,其将上面描述的向量和矩阵相乘来计算奇偶校验码。
访问ID寄存器100通过存储器控制器30从处理器20获取访问ID。访问ID是进程(即,请求访问存储在存储器40中的数据的请求方)访问存储器40时所用的信息。在这个实施例中,把8比特的奇偶校验码添加给64比特的数据,这样可以管理128个不同的访问ID。比如,用7位来表达的数字0到127作为访问ID。
当在处理器20中运行的进程要访问存储器40时,首先把访问ID设置到访问控制设备10的访问ID寄存器110中。
图7示出了从处理器20看到的地址空间。如图7所示,访问控制设备10的访问ID寄存器110映射到可以从处理器20看到的地址空间中的输入/输出空间。当处理器20在访问ID寄存器110映射到输入/输出空间中的地址处写入访问ID时,将该访问ID写入访问ID寄存器110中。但是,也可以与上述不同的方法,将访问ID设置到访问ID寄存器110中。
当按照要在处理器20中执行的给定程序设置给定的访问ID时,这些访问权限就不再受保护。因此,通过在处理器20中运行操作系统(OS)或者硬件进行验证之后再设置访问ID是比较理想的。这样,只有当执行中的程序有访问权限时,才可以将该执行中的程序的访问ID设置到访问ID寄存器110中。这里,访问ID寄存器110作为第一访问ID获取器和第二访问ID获取器而运行。
回到图6中,掩码值生成电路112根据存在访问ID寄存器110中的访问ID和处理器20要访问的存储器40的地址值,生成掩码值。掩码值是用于对要写入存储器40的数据或者对要从存储器40读取的数据进行掩码的数据,并且可以通过访问ID和要被访问的存储器40的地址唯一地加以确定。这个实施例中的掩码值生成电路112作为第一掩码生成器和第二掩码生成器而运行。
当向存储器40写入数据时,第一异或电路102在掩码值和一组配对的数据和奇偶校验码之间执行“异或”运算。在该对中,数据是要向存储器40写入的,而奇偶校验码是根据该数据生成的。然后将这些结果的结合体写入存储器40中。更具体地说,掩码值生成电路112生成的掩码值结合所述数据和奇偶校验码,然后,将这个结合体写入存储器40中。将该值被称作第一运算后数据。
当从存储器40读取数据时,第二异或电路114在从存储器40读取的数据和掩码值之间执行“异或”运算,从而去掉该掩码值。
根据第二异或电路114的计算结果,校正子计算电路120计算出校正子。如果需要的话,依照校正子计算电路120计算出的校正子,纠错电路122执行纠错。
现在,详细描述校正子计算电路120和纠错电路122的操作。为了检测或纠正从存储器40中读取的添加有奇偶校验码的数据中的差错,就要计算校正子。更具体地说,校正子计算电路120获取从存储器40读取的64比特的数据并且根据该64比特数据计算出8比特的奇偶校验码。利用检测矩阵“H”,可以根据该64比特的数据和8比特的奇偶校验码计算出8比特的校正子。将该校正子输出到纠错电路122中。
8比特的校正子“s”用等式(4)表示,而要作为输出且由64比特数据和8比特奇偶校验码组成的向量“x”用等式(5)表示:
s=(s1,s2,...s8) (4)
x=(d1,d2,d3,...d64,p1,p2,...p8) (5)
在这种情况下,用校正子“s”、向量“x”以及检测矩阵“H”建立等式(6):
s=xHT (6)
其中,HT表示检测矩阵“H”的转置矩阵。这样,校正子计算电路120计算并输出该8比特的校正子。
如果没有差错,那么,用SEC-DED码获取的校正子的值是“0”。如果有一个差错,那么,该校正子就会显示和检测矩阵“H”的列中对应于差错位的位置的元素相同的值。如果校正子不是“0”,但是有差错,则在检测矩阵“H”中列向量相对应的位置处与校正子具有相同值的那一位(如果有的话)就是差错位。在这种情况下,将数据或奇偶校验码中与差错位位置相对应的那一位反转过来就可以纠正差错。
当该校正子不是“0”并且显示与校正子具有相同值的列向量不存在检测矩阵“H”中时,就存在不可纠正的差错。换句话说,有两个或更多个差错位。
在Hsiao码中,文本矩阵的每一列中值为“1”的元素的个数总是奇数。因此,当有奇数个差错位时,所获取的校正子中“1”的个数总是奇数,而当有偶数个差错位时,所获取的校正子中“1”的个数总是偶数。
如果有两个差错位,那么,校正子中“1”的个数总是不为0的偶数,因此一个Hsiao码应该能检测两个或更多个差错。如果有奇数个(三个或者更多)差错位,校正子中“1”的个数总是奇数,但是这个校正子可能并不能与只有一个差错的情况下获取的校正子区分开。因此,如果这个校正子和只有一个差错时获取的校正子一样,那么,检测结果就只显示一个差错位,并执行错误的纠正操作。在其它情况下,会检测到不可纠正的差错。
当有偶数个差错位时,即四个或者更多时,校正子中“1”的个数总是偶数。但是,“1”的个数可能会是0。在这样的情况下,不会检测到差错。在其它情况下,会检测到不可纠正的差错。一般而言,SEC-DED码是在假设差错位的最大个数是2的情况下使用的。
一般而言,即使在奇偶校验码中出现差错,也可以用SEC-DED码来执行纠错操作。另一方面,在这个实施例中,不使用奇偶校验码纠错之后的值,因此,不对奇偶校验码执行纠错操作。但是,在其它实施例中,完全可能对奇偶校验码执行纠错操作。
图8的框图示出了掩码值生成电路的功能结构。掩码值生成电路112生成掩码值,从而使得根据关于该掩码的已获取的访问ID生成的校正子显示出预定的值。
掩码值生成电路112包括数据掩码生成电路130、访问ID校正子生成电路132、奇偶校验码生成电路134以及异或电路136。
图9示出了数据掩码生成电路130的结构。数据掩码生成电路130针对64比特的数据输出掩码,该数据对应于输入访问ID和要访问的存储器40的地址。简而言之,数据掩码生成电路130输出一个数据掩码。事实上,数据掩码生成电路130是如图9中所示的随机数存储器。该随机数存储器用常规的存储器件形成。
在随机数存储器中,写入随机数。将访问ID和地址连接到随机数存储器的地址端子上,这样与该访问ID和地址相对应的随机值会作为一个数据掩码值从随机数存储器的数据端子输出。
数据掩码生成电路130并不限于这个实施例中的结构,只要它能输出基于地址和访问ID唯一确定的值就可以。数据掩码生成电路130作为第一数据掩码生成器和第二数据掩码生成器而运行。
图10A示出了访问ID校正子生成电路132。该访问校正子生成电路132确定奇偶校验码的校正子,该奇偶校验码是根据获取的访问ID生成的。访问ID校正子生成电路132的结构如图10A所示,所以校正子中所有“1”的个数如上面描述的那样都是奇数。
当校正子中所有“1”的个数为偶数时,访问ID校正子生成电路132的结构如图10B所示。由访问ID校正子生成电路132生成的校正子中“1”的个数将会在后面描述。
访问ID校正子生成电路132作为第一校正子生成器,生成第一掩码数据的第一校正子,以及作为第二校正子生成器,生成第二掩码数据的第二校正子。
奇偶校验码生成器134为数据掩码生成电路130生成的数据掩码确定奇偶校验码。异或电路136在奇偶校验码生成电路134生成的奇偶校验码和访问ID校正子生成电路132生成的访问ID校正子之间进行“异或”运算,并将运算结果作为奇偶校验码掩码输出。异或电路136作为第一奇偶校验码掩码生成器和第二奇偶校验码掩码生成器运行。
通常来说,给定数据和根据该数据计算出的奇偶校验码的校正子是“0”。但是,当根据一个新的奇偶校验码,即该奇偶校验码和一个给定值“x”之间的“异或”值进行运算时,校正子会变成“x”。
这是因为,与奇偶校验码相对应的检测矩阵“H”的部分是一个单位矩阵。利用上面的特性,生成奇偶校验码掩码,从而获取访问ID校正子生成电路132生成的访问ID校正子,该访问ID校正子与数据掩码生成电路130生成的数据掩码相关。
图11示出了写操作的流程图,写操作是访问控制系统1中执行的访问控制操作的一部分。首先,从访问ID寄存器110获取访问ID(步骤S102)。然后,奇偶校验码生成电路100针对要写入存储器40的数据生成并添加奇偶校验码(步骤S104)。掩码值生成电路112生成掩码值(步骤S106)。更具体地说,掩码值生成电路112生成数据掩码和奇偶校验码掩码。
然后,第一异或电路102在掩码值和一组配对的数据和奇偶校验码之间执行“异或”运算。用于“异或”运算的掩码是由掩码值生成电路112生成的(步骤S108)。更具体地说,第一异或电路102在从处理器20获取的数据和掩码值生成电路112生成的数据掩码之间执行“异或”运算。第一异或电路102还在奇偶校验码生成电路100生成的奇偶校验码和掩码值生成电路112生成的奇偶校验码掩码之间执行“异或”运算。将第一异或电路102获取的第一运算后数据写入到存储器40中(步骤S110)。于是,写操作到此结束。
图12示出了写操作过程中的数据流。当正在执行的进程要把数据D写入到存储器40时,借助于ECC把奇偶校验码添加到数据D上,这样就形成了添加有奇偶校验码的数据D′。
下面,将在添加有奇偶校验码的数据D′和掩码值生成电路112生成的掩码值“Ka”之间的异或运算结果:
D′Ka,
即第一运算后数据D″,写入到存储器40中。
现在,将详细描述把关于访问ID的信息设置到访问控制设备10中的访问ID设置操作。图13示出了访问ID设置操作中所用的进程管理表。该进程管理表是在操作系统中提供的。当两个或更多个进程要在处理器20中运行时,操作系统通常会管理这些进程。在这个过程中,要用到图13所示的进程管理表。
进程管理表包括与进程ID相关联的优先权信息、访问权限信息、程序计数器、寄存器保存区域以及页表指针。与进程ID相关联的访问ID信息也记录在进程管理表中。进程管理表管理的信息不限于上述这些,而是随着不同类型的操作系统而变化。
图14详细示出了访问ID设置操作的流程图。在操作系统切换进程时,由处理器20执行该操作。当执行中的进程停止时(步骤S120),当前已执行的进程的上下文,即执行状态,比如寄存器值和程序计数器值,都存储在进程管理表中(步骤S122)。通过查找进程管理表,将下一个要执行的进程的上下文,即寄存器值、程序计数器值以及页表都设置到处理器20中(步骤S124)。
然后,将关于下一步要执行的进程的访问ID信息也设置到访问控制设备10中(步骤S126)。访问ID信息包括进程进行访问时所用的访问ID。
然后,刷新缓冲器(步骤S128)。如果先前进程所用的数据还存留在缓冲器中,可以在没有访问权限的情况下进行访问。刷新缓冲器就是为了避免这样的意外事件。然后,就开始对下一个要执行的进程进行控制(步骤S130)。这里,访问ID设置操作就到此结束。
在这个实施例中,由操作系统执行对缓冲存储器的刷新。但是,其它部件也可以执行缓冲存储器的刷新。此外,缓冲存储器的刷新(步骤S128)可以在下一个进程开始(步骤S130)之前且已执行的进程的上下文存储(步骤S122)之后的任何时间开始。在另一个例子中,当访问ID寄存器110的设置改变时,访问控制设备10可以中断处理器20,并且,可以在中断处理例程中刷新缓冲存储器。
图15示出了掩码值生成电路112执行掩码值生成操作(步骤S106)的流程图。首先,数据掩码生成电路130根据访问ID和要访问的地址,生成数据掩码值(步骤S140)。访问ID校正子生成电路132根据访问ID,生成访问ID校正子(步骤S142)。
然后,奇偶校验码生成器134针对数据掩码生成电路130生成的数据掩码,生成奇偶校验码(步骤S144)。异或电路136对奇偶校验码生成电路134生成的奇偶校验码和访问ID校正子生成电路132生成的校正子进行异或运算。这样,异或电路136就生成了奇偶校验码掩码(步骤S146)。至此,生成掩码值的操作结束(步骤S106)。可以在奇偶校验码生成之前的任何时间生成数据掩码,但是不能在访问ID校正子生成之前生成数据掩码。
图16的流程图示出了从存储器40读取数据的操作,它是访问控制操作的一部分。首先,从访问ID寄存器110获取访问ID(步骤S102)。然后,掩码值生成电路112生成掩码值(步骤S106)。这里的掩码值生成操作(步骤S106)和结合图14和图15描述的掩码值生成操作(步骤S106)是相同的。
第二异或电路114把写在存储器40中的第一运算后数据D″读出(步骤S204)。然后,第二异或电路114对第一运算后数据D″和掩码值生成电路112生成的掩码值进行异或运算(步骤S206)。
校正子计算电路120用ECC计算出校正子(步骤S208)。如果这个校正子是“0”,或者如果没有检测出有差错(步骤S210中“YES”),那么,就读取数据D(步骤S212)。
如果这个校正子不是“0”而且校正子中“1”的个数是奇数(步骤S210中“NO”并且步骤S214中“YES”),则检测出了一个差错,于是,纠错电路122就执行纠错操作(步骤S216)。读取纠错后的数据D(步骤S212)。如果校正子不是“0”而且检测出了多于一个的差错(步骤S210“NO”并且步骤S214“NO”),则是不可纠正的差错。因此,输出“0”数据,而不是数据D(步骤S218)。这样,数据读取操作结束。
在这个实施例中,步骤S218中输出的是“0”数据。但是,在这个实施例的修正版中可以不输出数据。此外,在这个实施例的另一修正版中可以输出从存储器40读出的数据。
在另一修正版中,当检测出不可纠正的差错时,纠错电路122会输出错误检测信号来指示这个错误检测,而处理器20会根据这个信号通过中断或者其它类似方法得知这个错误检测。
图17示出了读取写在存储器40中的数据的操作。当正在运行的进程要从存储器40中读取数据时,根据
D″Kb=D′(KaKb)
计算出从存储器读取的第一运算后数据D″:D′Ka和掩码“Kb”之间的异或值,该掩码“Kb”是根据在进程执行期间设置在访问ID寄存器110中的访问ID生成的。
这个值就等价于第二运算后数据。根据校正子计算电路120的计算结果,读出执行了带有ECC的差错检测和纠错的值。
当读操作中生成的掩码和写操作中生成的掩码相同即Ka=Kb时,就可以读取出正确的数据D。当读操作中生成的掩码和写操作中生成的掩码不相同即Ka≠Kb时,从存储器40读取的第一运算后数据中存在和这个值中“1”的位数相同个数的差错KaKb。因此,在这个例子中,纠错电路120输出数据“0”。
在这个实施例的一个修正版中,如果读操作中生成的掩码和写操作中生成的掩码不相同,那么,纠错电路112可以不输出任何数据。
如上面所述,在这个实施例的访问控制系统1中,向存储器40写入数据时,数据和奇偶校验码都会写入到存储器40中,奇偶校验码是通过在待写入数据和它的奇偶校验码以及请求方的内在掩码值之间执行异或运算来获取的。当请求器从存储器40读取数据时,通过在从存储器40读取的数据和奇偶校验码以及请求方的内在掩码值之间执行异或运算,来生成该数据和奇偶校验码。然后对数据和奇偶校验码进行纠错操作,并将纠错后的数据返回给请求器。
如果请求对存储器40进行读操作的请求方和请求对存储器40进行写操作的请求方是相同的,那么它们的访问ID是相等的,它们的掩码值也是相等的。因此,在读操作中用来进行异或运算的掩码值和在写操作中用来进行异或运算的掩码值是相等的。所以,掩码效应就抵消了,于是,可以正确地读取数据。
在这个实施例中,如果请求对存储器40进行读操作的请求方和请求对存储器40进行写操作的请求方不相同,就要设置掩码值以便纠错电路122可以检测出差错。因此,在读操作中用来进行异或运算的掩码值和在写操作中用来进行异或运算的掩码值是不同的。所以,就可以防止其它请求方读数据。
为了防止其它请求方的未授权访问,选择的掩码值应该能在读操作中生成的掩码值和写操作中生成的掩码值不同时生成校正子来指示差错的不可纠正状态。更具体地说,根据写操作中的掩码值计算出的校正子值和根据读操作中的掩码值计算出的校正子值之间的“异或”值不能是“0”,并且“异或”值中“1”的个数应该是偶数。
因此,根据相应掩码值计算出来的校正子中“1”的个数应该要么都是奇数,要么都是偶数。根据“1”的个数,访问ID校正子生成电路应当有选择性地采用图10A所示的结构或者图10B所示的结构。
这样,当设置了掩码值时,可管理的请求方的个数和满足上述条件的校正子的个数是相等的。更具体地说,采用添加有8比特奇偶校验码的64比特数据的结构,无论是在校正子中“1”的个数都是奇数的情况下还是在校正子中“1”的个数都是偶数(包括0)的情况下,均可以将128个不同的请求方区分开来。
掩码是按照使每个进程都有唯一掩码值的方式来设置的。因此,如果一个进程试图读取由一个预定的进程写入的数据,那么,在这个实施例的访问控制系统1中是不能执行该读操作的。因此,可以保护数据免遭任何其它进程访问。
在保护数据免遭未授权进程访问的同时,访问控制系统1执行保护操作,从而使得只有那些最初被授权可以写数据的进程才能写数据。更具体地说,在数据写入存储器40之前,先要读取写在存储器40中的数据。于是,在每一个由于掩码不匹配而不能进行读取访问的地址,都会禁止写入数据。这样,就可以提供精确的保护来防止未授权的写操作访问。
此外,根据标识请求方进程的访问ID和要访问的存储器区域的地址,生成用在访问控制系统1中的掩码值。所以,可以针对每个请求方和针对每个要访问的存储器区域进行访问控制。
图18的框图示出了依照第二个实施例的访问控制设备10的功能结构。依照第二个实施例的访问控制设备10与依照第一个实施例的访问控制设备10的不同之处在于,用访问ID管理电路140取代了访问ID寄存器110。
图19的框图详细示出了访问ID管理电路140的具体功能结构。访问ID管理电路140包括访问ID表142和访问ID选择电路144。
图20示出了访问ID表142的数据结构。访问ID表142包括了与访问ID所标识的请求方可以访问的存储器区域的开始地址和结束地址相关联的访问ID。这个实施例中的访问ID表142作为第一访问代码获取器和第二访问代码获取器。
当处理器20中要执行的进程进行切换时,处理器20会把切换后要执行的进程保存的访问ID以及由与访问ID相对应的存储器区域开始地址和结束地址构成的必需数量的集合写入到访问ID表142中。因此,每次切换进程时,切换后要执行的进程的相关数据就会记录到访问ID表142中。
图13所示的进程管理表中的访问ID信息包含了要记录在访问ID表142中的与每次访问对应的数据。当进程切换时,在第一个实施例中结合图14描述的步骤S126中,将访问ID信息中包含的数据设置到访问ID表142中。
访问ID表142映射到从处理器20可以看到的地址空间的输入/输出空间上。因此,处理器20可以直接向访问ID表142写入。
访问ID选择电路114从处理器20获取访问存储器40的请求。该访问请求包括了要访问的存储器区域的地址。然后,访问ID选择电路114查询访问ID表142,并输出对应于该存储器区域的访问ID。这个实施例中的访问ID选择电路144作为第一访问代码指定器和第二访问代码指定器。
图21示出了访问ID管理电路140的具体结构。正如图21所示,记录起始地址、结束地址以及访问ID,并针对这些数据进行运算,以此对访问ID表142和访问ID选择电路144进行具体化。
图22详细示出了第二个实施例的访问控制系统1中获取访问ID的操作(步骤S102)的流程图。
如上所述,首先从处理器20获取地址A(步骤S150)。访问ID选择电路114查询访问ID表142并选择一个访问ID,该访问ID与这样一个起始地址和结束地址相关:地址A大于或等于该起始地址并且小于或等于该结束地址(步骤S152)。将选择的访问ID输出到掩码值生成电路112中(步骤S154)。这样,获取访问ID的操作完毕(步骤S102)。
在依照第二个实施例的访问控制系统1中,为多个存储器区域分配不同访问请求方的访问ID,这样就可以对每个存储器区域执行访问控制。
当处理器20中要执行的进程共享存储器区域时,优选把允许访问的进程分配到每个存储器区域,这样就可以检查访问权限。依照第二个实施例的访问控制系统1中的访问控制设备10可以检查每个存储器区域的访问权限。
还是在这个实施例中,访问控制设备10在访问ID表142改变之后要中断处理器20,在此时执行的中断处理例程中刷新缓冲存储器。
依照第二个实施例的访问控制系统1的操作和结构的其它方面同依照第一个实施例的访问控制系统1是相同的。
接下来要描述依照第三个实施例的访问控制系统1。和依照第二个实施例的访问控制系统1类似,这个访问控制系统1包括访问ID管理电路140。但是,依照第三个实施例的访问ID管理电路140执行的操作不同于依照第二个实施例的访问ID管理电路140执行的操作。依照这个实施例的访问ID管理电路140作为写入器ID获取单元和读取器ID获取单元。依照第三个实施例的访问ID管理电路140获取请求方ID来标识请求方,并且根据请求方ID来选择访问ID。
图23示出了依照第三个实施例的访问控制系统1中的访问ID管理电路140中提供的访问ID表142的数据结构。如图23所示,访问ID表142保存与访问ID相关联的请求方ID。依照这个实施例的访问ID表142作为第一访问代码存储器和第二访问代码保存单元。
访问ID选择电路144获取请求方ID而不是用于标识访问请求方的地址。通常,将标识哪个设备发出访问请求的信号传输到处理器总线22上,有不止一个的处理器20与该总线相连。访问ID选择电路144按照这个信号来判断请求方ID。然后,访问ID选择电路144查询访问ID表142,并且选择出与所获取的请求方ID相关联的访问ID。这个实施例中的访问ID选择电路144作为第一访问代码指定器和第二访问代码指定器。
图24示出了访问ID管理电路140的具体结构。如图24所示,预先记录了请求方ID和访问ID,并对这些数据进行运算,以此对访问ID表142和访问ID选择电路144进行具体化。
图25详细示出了第三个实施例的访问控制系统1中获取访问ID的操作(步骤S102)的流程图。
首先,从处理器总线22获取请求方ID(步骤S160)。访问ID选择电路114查询访问ID表142并选择该请求方ID对应的访问ID(步骤S162)。将选择的访问ID输出到掩码值生成电路112中(步骤S164)。这样,获取访问ID的操作(步骤S102)就结束了。
如上所述,从请求方直接获取请求方ID,而不是获取访问ID。因此,可以实现更高的安全性。比如,当不止一个处理器20或输入/输出设备连接到处理器总线22时,可以针对每个连接在处理器总线22上的设备检查其访问权限。
依照第三个实施例的访问控制系统1的操作和结构的其它方面同依照前面的实施例的访问控制系统1是相同的。
接下来要描述依照第四个实施例的访问控制系统1。依照第四个实施例的访问控制系统1中的访问ID管理电路140同时拥有依照第二个实施例的访问控制系统1中的访问ID管理电路140和依照第三个实施例的访问控制系统1中的访问ID管理电路140的功能。依照第四个实施例的访问ID管理电路140根据要访问的存储器区域的地址和访问请求方的请求方ID来确定访问ID。
图26显示了依照第四个实施例的访问ID表142的数据结构。该访问ID表142包括相互关联的请求方ID、起始地址和结束地址以及访问ID。访问ID选择电路144确定从处理器20获取的访问请求中包含的存储器区域的地址,并且从处理器总线22获取请求方ID。
图27示出了访问ID管理电路140的具体结构。正如图27所示,预先记录起始地址、结束地址、请求方ID以及访问ID,并对这些数据进行运算,以此对访问ID表142和访问ID选择电路144进行具体化。
图28详细示出了依照第四个实施例的访问控制系统1中获取访问ID的操作(步骤S102)的流程图。访问ID选择电路114从处理器20获取地址A(步骤S170)。访问ID选择电路114还从处理器总线22获取请求方ID(步骤S172)。然后,访问ID选择电路114查询访问ID表142并选择请求方ID和地址A对应的访问ID(步骤S174)。将选择的访问ID输出到掩码值生成电路112中(步骤S176)。这样,获取访问ID的操作(步骤S102)就结束了。
依照第四个实施例的访问控制系统1的操作和结构的其它方面同依照前面的实施例的访问控制系统1是相同的。
接下来要描述依照第五个实施例的访问控制系统1。依照第五个实施例的访问控制设备10在生成随机掩码的操作方面与其它任何一个实施例都不相同。
图29的框图示出了依照第五个实施例的数据掩码生成电路130的功能结构。数据掩码生成电路130包括数据掩码生成信息指定电路1301、数据掩码生成信息表1302以及LFSR(线性反馈移位寄存器)延迟计算电路1303a、1303b、1303c。
图30示出了数据掩码生成信息表1302的数据结构。数据掩码生成信息表1302包含与访问ID相关联的数据掩码生成信息。数据掩码生成信息包含根据每个访问ID生成数据掩码时要用到的各种参数。这些参数包括特征多项式系数、延迟系数以及要输入到LFSR延迟计算电路1303a、1303b以及1303c中的初始掩码。但是,在第五个实施例中并不需要记录初始掩码的数据,因为第五个实施例中的LFSR延迟计算电路1303a、1303b以及1303c并不使用初始掩码。
回到图29中,数据掩码生成信息指定电路1301首先从访问ID寄存器110或者访问ID管理电路140获取访问ID。然后,数据掩码生成信息指定电路1301查询数据掩码生成信息表1302,并且确定数据掩码生成信息,即与获取的访问ID相关联的各种参数。
把数据掩码生成信息指定电路1301确定的参数输入到LFSR延迟计算电路1303a、1303b以及1303c中。把要访问的存储器40的地址也输入到LFSR延迟计算电路1303a、1303b以及1303c中。根据这些输入数据,LFSR延迟计算电路1303a、1303b以及1303c计算出数据掩码。
一般而言,把本原多项式用作特征多项式生成的级数叫做M级数,而且,众所周知,该级数具有与伪随机数一样良好的特征。在这个实施例中,与某个特征多项式对应的LFSR把要访问的存储器40的地址设置为它的初始状态。访问ID所对应的步骤从初始状态执行预定的移位后的内部状态用作数据掩码。
在这个实施例中,采用的每个地址由24比特以及三个将24次本原多项式用作特征多项式的24步LFSR组成。每个24步LFSR的内部状态由24比特组成。因此,可以从这三个LFSR延迟计算电路1303a、1303b和1303c获取最大72比特的掩码。但是,在这个实施例中只能获取64比特。因此,从LFSR延迟计算电路1303a获取22比特,而从LFSR延迟计算电路1303b和1303c各获取21比特。
把该地址放置在LFSR延迟计算电路1303a、1303b和1303c的初始状态中,并且获取对LFSR移位之后得到的内部状态“Mx”,该移位操作是通过访问ID确定的延迟系数所对应的步骤完成的。把那些内部状态的值加起来,以便作为数据掩码输出。用于把从三个LFSR延迟计算电路1303a、1303b和1303c获取的值转换为数据掩码的信号线的排列方式并没有特别的限制。
现在更详细地描述LFSR延迟计算电路1303a的操作。要指出的是,LFSR延迟计算电路1303b和LFSR延迟计算电路1303c的操作与LFSR延迟计算电路1303a的操作相同。等式(7)表示LFSR的特征多项式:
f(x)=A0x0+A1x1+A2x2+...+A24x24 (7)
在这种情况下,要获取LFSR中d步之后输出的值,就要确定xd除以f(x)之后的余数g(x)。这里,等式(8)表示g(x):
g(x)=B0x0+B1x1+B2x2+...+B23x23 (8)
计算g(x)的系数(B0,B1,...B23)和LFSR的内部状态(移位寄存器中每一步的值构成的向量)的乘积之和,以获取d步之后出现的“1”的个数。系数B0、B1、...B23就叫做延迟系数。
数据掩码生成信息表1302包括特征多项式系数A0、A1、...An-1、延迟系数B0、B1、...Bn-1以及作为初始值的内部状态S0、S1、...Sn-1,特征多项式系数中最高次系数An总是等于1,所以不用预先保存An。
LFSR延迟计算电路1303a、1303b和1303c在由初始值和延迟系数B0、B1、...Bn-1确定的步骤之后输出值M0、M1、...Mm-1。在这个实施例中,n是24。而且,在LFSR延迟计算电路1303a、1303b和1303c中,m比特数据的值是不同的。因为要从LFSR延迟计算电路1303b和1303c各获取21比特,所以LFSR延迟计算电路1303b和1303c的m比特数据各是21比特。因为要从LFSR延迟计算电路1303a获取22比特,所以LFSR延迟计算电路1303a的m比特数据就是21比特。
图31示出了LFSR延迟计算电路1303a的更具体的结构。其它每个LFSR延迟计算电路1303b和1303c的结构和LFSR延迟计算电路1303a的结构相同。图32示出了LFSR延迟计算电路1303a中提供的一个电路200。图33示出了LFSR延迟计算电路1303a中提供的一个电路202。
图32中所示的电路200组成LFSR延迟计算电路1303a的第一级电路,它在一次延迟之后计算出由延迟系数B确定的比特M。更具体地说,第一级电路计算延迟系数B0、B1、...B23和初始值S0、S1、...Sn-1的乘积之和,并将该结果作为M0输出。
由图33中所示的电路202组成位于LFSR延迟计算电路1303a中的第二级或者更后级的电路,它在随后步骤的延迟之后计算该比特。更具体地说,根据延迟系数和上一级的特征多项式,电路202计算本级的延迟系数,然后计算并输出延迟系数和初始值的乘积之和。
按照下面的方法,根据上一级的延迟系数计算本级的延迟系数。其中,g(x)代表d步的延迟系数,g(x)·x除以f(x)获取的余数g′(x)代表d+1步的延迟系数。利用这一关系,上一级的延迟系数就被移动1位。如果最高次系数是“1”,它就大于f(x)。因此,可以通过把它除以f(x)来确定本级的延迟系数。通过在f(x)和系数之间进行异或运算来执行除以f(x)的操作。
对每个访问ID来说,要与访问ID相关联地存储在数据掩码生成信息表1302中的延迟系数都是不同的。此外,对于每个访问ID来说,与访问ID相关联的延迟系数也不相同。
应该在访问ID生成时根据随机数或者等来确定与访问ID相关联的延迟系数。这里,应该根据随机数来确定延迟步骤的数量d,而且应该计算与数量d对应的延迟系数。在一个修正版中,随机数的值本身就可以用作延迟系数。
依照第五个实施例的访问控制系统1的操作和结构的其它方面同依照前面的实施例的访问控制系统1是相同的。
现在描述依照第五个实施例的访问控制系统1的修正版。虽然在这个实施例中是根据访问ID来确定每个特征多项式的,但是也可以预先设定要使用的特征多项式。换言之,可以设置固定的特征多项式。LFSR延迟计算电路1303a、1303b和1303c要用到的特征多项式可以相同,也可以不同。
在这样的情况下,数据掩码生成信息表1302可以不保存特征多项式的系数。此外,图31中所示的LFSR延迟计算电路1303a可以具体化为一个更简单的电路。
下面,描述依照第六个实施例的访问控制系统1。除了数据掩码生成电路130执行的操作之外,依照第六个实施例的访问控制系统1与依照第五个实施例的访问控制系统1基本上是一样的。
图34的框图示出了依照第六个实施例的数据掩码生成电路130的功能结构。依照第六个实施例的数据掩码生成电路130包括数据掩码生成信息指定电路1301、数据掩码生成信息表1302、LFSR延迟计算电路1303a、1303b、1303c、1303d、1303e和1303f、以及异或电路1304a、1304b和1304c。
依照第六个实施例的数据掩码生成电路130将两个LFSR延迟计算电路1303结合起来,并且把从这两个电路中输出的值之间的异或运算结果用作数据掩码。
比如,LFSR延迟计算电路1303a和LFSR延迟计算电路1303b结合起来作为一个集合。异或电路1304a对从LFSR延迟计算电路1303a输出的值M和LFSR延迟计算电路1303b输出的值M进行异或运算。LFSR延迟计算电路1303c和LFSR延迟计算电路1303d构成的集合以及异或电路1304b也是按照上述方法工作。LFSR延迟计算电路1303e和LFSR延迟计算电路1303f构成的集合以及异或电路1304c也是按照上述方法工作。
如上所述,依照第六个实施例的数据掩码生成电路130并不是独立使用每个LFSR延迟计算电路,而是把每两个LFSR延迟计算电路结合起来并获取每两个输出之间的异或运算结果。所以,数据掩码生成电路130输出的数据掩码之间的随机性可以增大。
依照第六个实施例的访问控制系统1的操作和结构的其它方面同依照第五个实施例的访问控制系统1是一样的。
虽然在这个实施例中要对每两个LFSR延迟计算电路的输出值进行异或运算,但是可以把三个或更多个LFSR延迟计算电路结合起来作为一个集合,并且把这些LFSR延迟计算电路输出值的异或值作为数据掩码。当然,两个LFSR延迟计算电路构成的集合和三个LFSR延迟计算电路构成的集合也可以共存。
接下来,描述依照第七个实施例的访问控制系统1。除了数据掩码生成电路130执行的操作之外,依照第七个实施例的访问控制系统1与依照第五个实施例的访问控制系统1基本上是一样的。
图35的框图示出了依照第七个实施例的数据掩码生成电路130的功能结构。该数据掩码生成电路130还包括零移位电路1305a、1305b和1305c,以及地址分离电路1306a、1306b和1306c。
LFSR延迟计算电路1303a、1303b和1303c并不是把地址作为输入直接接收的,而是接收已经由零移位电路1305a、1305b和1305c进行过零移位以及由地址分离电路1306a、1306b和1306c进行过地址分离的地址。
零移位电路1305a、1305b和1305c执行相同的操作,而地址分离电路1306a、1306b和1306c也执行相同的操作。因此,下面只描述零移位电路1305a和地址分离电路1306a。
零移位电路1305a把零地址转换为另一个地址。当地址是“零”时,LFSR延迟计算电路1303a输出的总是零。因此,当地址是“零”时,就把地址原样输出,即使这个地址已经过LFSR延迟计算电路1303a的处理。因此,零移位电路1305a就把“零”值转换为另一个值。
更具体地说,零移位电路1305a把一个输出地址加上初始掩码,并输出添加结果。初始掩码记录在数据掩码生成信息表1302中。数据掩码生成信息指定电路1301读出初始掩码,并把它们分别发送到零移位电路1305a、1305b和1305c。
在一个修正版中,可以将输入地址和初始掩码之间的异或值输出。
地址分离电路1306a将具有比较接近值的地址转换为彼此相距离较远的地址。当连续输入两个地址时,两个地址中的一个地址就有可能和另一个地址在对应的位上只有一位不同。这会导致一种非预期的情况,即:相邻地址的掩码值之间可能存在相关。为了防止掩码值之间的相关性,将每两个相邻的地址转换为相距较远的地址。
图36示出了地址分离电路1306a的一个具体实例结构。地址分离电路1306a包括分离掩码存储器1307a。分离掩码存储器1307a中预先记录有一个地址分离模式。当向地址分离电路1306a输入一个地址时,依照该地址的低次序位查询分离掩码存储器1307a,并计算出该值和该地址的高次序位之间的异或值。这样,即使输入的是两个连续的地址,它们在输出前也会转换为彼此相距较远的地址。
依照第七个实施例的访问控制系统1的操作和结构的其它方面同依照第五个实施例的访问控制系统1是一样的。
现在描述依照第七个实施例的数据掩码生成电路130的第一修正版。图37示出了依照第一修正版的地址分离电路1306a的具体结构。依照第一修正版的地址分离电路1306a包括解码器1308a。解码器1308从目标地址的低次序位中选择出一个高次序地址,并且通过计算异或值将选择出的地址的值反转。和第七个实施例的地址分离电路1306a类似,依照这个修正版的地址分离电路1306a可以把两个相邻地址转换位彼此相距较远的地址。
在第二修正版中,访问控制系统1的数据掩码生成电路130可以只包括零移位电路1305a、1305b和1305c或者只包括地址分离电路1306a、1306b和1306c,尽管数据掩码生成电路130既包括零移位电路1305a、1305b和1305c也包括地址分离电路1306a、1306b和1306c。
图38的框图示出的数据掩码生成电路130只包括零移位电路1305a、1305b和1305c,而不包括地址分离电路1306a、1306b和1306c。图39的框图示出的数据掩码生成电路130只包括地址分离电路1306a、1306b和1306c,而不包括零移位电路1305、1305b和1305c。
图40的框图示出了依照第三修正版的数据掩码生成电路130。依照这个修正版的数据掩码生成电路130是依照第七个实施例的数据掩码生成电路130和依照第六个实施例的数据掩码生成电路130的结合体。如图40中所示,可以为两个LFSR延迟计算电路1303构成的每个集合提供零移位电路1305和地址分离电路1306。
在这个修正版中,如上所述,可以使用零移位电路1305,而不使用地址分离电路1306。当然,也可以使用地址分离电路1306,而不使用零移位电路1305。
图41的框图示出了依照第四修正版的数据掩码生成电路130。和图40中所示的数据掩码生成电路130类似,图41中所示的数据掩码生成电路130把每两个LFSR延迟计算电路1303用作一个集合。在每个集合中,这两个LFSR延迟计算电路1303中的一个提供零移位电路1305,而另一个提供地址分离电路1306。因此,每个LFSR延迟计算电路1303要么有零移位电路1305,或者有地址分离电路1306。
图42的框图示出了依照第五修正版的数据掩码生成电路130。和图40中所示的数据掩码生成电路130类似,图42中所示的数据掩码生成电路130把每两个LFSR延迟计算电路1303用作一个集合。在每个集合中,这两个LFSR延迟计算电路130中的一个同时提供零移位电路1305和地址分离电路1306,而另一个只提供地址分离电路1306。但是,零移位电路1305和地址分离电路1306的结合形式并不限于上面所述,而是可以随着不同情况而变。
下面,描述依照第八个实施例的访问控制系统1。图43的框图示出了依照第八个实施例的访问控制设备10的功能结构。依照第八个实施例的访问控制设备10与依照前面任何一个实施例的访问控制设备10的不同之处在于,它还包括地址转换设备150。
地址转换设备150把从处理器20获取的一个地址转换为另一个地址。掩码值生成电路112经过获取地址转换设备150转换之后的地址。根据转换后的地址,掩码值生成电路112生成掩码值。
如上所述,在依照第八个实施例的访问控制设备10中,掩码值生成电路112根据转换后的地址,生成掩码值。因此,与根据从处理器20获取的地址生成掩码值的情况相比,掩码值生成电路可以生成一个与从处理器20获取的地址具有较小相关性的掩码值。
图44示出了地址转换设备150的具体结构。地址转换设备150具有地址转换存储器151。在地址转换存储器151中,记录了一张对应表,其显示将哪个地址转换为哪个地址。对输入地址的较低次序位进行转换并将其输出。
记录在地址转换存储器151中的对应表优选应该对各访问ID是唯一的。掩码值生成电路112为每个访问ID保存对应表。更具体地说,将其存储在数据掩码生成信息表1302中。在切换访问ID时,把对应表写入到地址转换存储器151中。
依照第八个实施例的访问控制系统1的操作和结构的其它方面同依照前面的任何一个实施例的访问控制系统1是一样的。
图45示出了依照第八个实施例的第一修正版的地址转换设备150的结构。依照第一修正版的地址转换设备150计算输入地址的中间次序的位和较低次序的位之间的异或值。然后,地址转换设备150输出由初始输入地址转换而来的地址。因此,存储在地址转换存储器151中的较低次序位转换模式的数量就会增加。
图46示出了依照第八个实施例的第二修正版的地址转换设备150的结构。在这个修正版中,可以在一个输入地址的较高次序位和较低次序位之间进行异或运算。
图47示出了依照第八个实施例的第三修正版的地址转换设备150的结构。在这个修正版中,可以在中间次序位和较低次序位之间进行异或运算,然后可以在该运算结果和较高次序位之间进行异或运算。
至此,已经描述了依照从第一个到第八个实施例的访问控制系统1。但是,具有本发明特征的任何访问控制设备10都可以应用于下面描述的系统。
图48示出了依照第一修正版的访问控制系统1的总体结构。和依照前面任何实例的访问控制系统1类似,依照第一修正版的访问控制系统1包括访问控制设备10。
在依照第一修正版的访问控制系统1中,处理器20把关于访问权限的信息设置到访问控制设备10中。因此,访问控制系统1还包括专用线24。
因为通过专用线对关于访问权限的信息进行输入和输出,所以,可以防止未授权的访问。
图49示出了依照第二修正版的访问控制系统1的总体结构。依照第二修正版的访问控制系统1包括处理器20a和20b。处理器20a和20b各自都可以是访问存储器40的请求方。访问控制设备10可以通过每个处理器20a和20b来控制对存储器40的访问。更具体地说,为每个处理器20a和20b分配访问ID,以便由处理器20a和20b访问。
图50示出了依照第三修正版的访问控制系统1的完整结构。在依照第三修正版的访问控制系统1中,处理器20包括存储器控制器30。处理器20经由访问控制设备10与存储器40相连接。
图51示出了依照第四修正版的访问控制系统1的总体结构。在依照第四修正版的访问控制系统1中,处理器20包括存储器控制器30和访问控制设备10。处理器20经由访问控制设备10与存储器40相连接。
图52示出了依照第五修正版的访问控制系统1的总体结构。依照第五修正版的访问控制系统1包括处理器20、存储器40、桥32以及外围设备60a、60b和60c。
桥32与处理器总线22相连接,而且包括存储器控制器30和访问控制设备10。当与外围设备总线34相连的桥32包括外围设备的控制器时,访问控制设备10可以合并到桥32中。当然,也可以在桥32和存储器40之间提供访问控制设备10。
图53示出了依照第六修正版的访问控制系统1的总体结构。依照第六修正版的访问控制系统1在结构上是一个LSI(大规模集成)系统。如图53所示,访问控制设备10和存储器控制器30设置在系统LSI中,该存储器控制器30通过一条高速内部总线76与处理器20相连接。
图54示出了依照第七修正版的访问控制系统1的总体结构。和依照第六修正版的访问控制系统1类似,依照第七修正版的访问控制系统1在结构上也是一个系统LSI。该访问控制系统1包括一条专用于处理器20的专用线78,用来把关于访问权限的信息设置到访问控制设备10中。因此,处理器20可以经由高速内部总线76访问访问控制设备10。
当然,也可以将存储器控制器30和访问控制设备10组装成一个集成电路。
(第九个实施例)
下面,描述依照第九个实施例的访问控制系统1。依照第九个实施例的访问控制系统1对缓冲存储器执行访问控制。图55示出了依照第九个实施例的访问控制系统1的总体结构。该访问控制系统1包括处理器20a到20c、视频控制器21、存储器40以及配备了缓冲存储器的访问控制设备50。
该访问控制设备50与处理器总线22和存储器总线42相连接。访问控制设备50对从处理器20a到20c到缓冲存储器的访问进行控制,并且控制经由处理器总线22与访问控制设备50相连的视频控制器21。如果需要,访问控制设备50还可以取代处理器20a等,向存储器40写入数据或者从存储器40读取数据。这样,访问控制设备50还具有前面每个实施例中的存储器控制器30的功能。
当在第九个实施例的访问控制系统1中采用两个或更多处理器以及类似视频控制器21的输入/输出设备时,要在这些部件之间共用缓冲存储器来提高存储器访问速度。
图56的框图示出了访问控制设备50的功能结构。访问控制设备50包括处理器端的缓冲器控制电路52、缓冲存储器54以及存储器端的缓冲器控制电路56。根据处理器发出的指令,处理器端的缓冲器控制电路52向缓冲存储器54写入数据或者从中读取数据。缓冲存储器54临时将数据与储器地址等相关联地进行存储。
根据处理器端的缓冲器控制电路52发出的指令,存储器端的缓冲器控制电路52向缓冲存储器54写入数据或者从中读取数据。
图57的框图示出了处理器端的缓冲器控制电路52的功能结构。处理器端的缓冲器控制电路52包括访问ID管理电路140、访问ID检查电路522以及顺序控制器524。
访问ID管理电路140的功能结构和图19中所示第二个实施例的访问ID管理电路140的功能结构相同,并且根据地址确定访问ID。访问ID检查电路522把访问ID管理电路140确定的访问ID与存储在缓冲存储器54中的访问ID进行比较,从而判断它们是否匹配。顺序控制器524控制处理器端的缓冲器控制电路52的完整操作。
图58的框图示出了缓冲存储器54的功能结构。缓冲存储器54包括:数据区域544,用来存储过去已经访问过的数据;标签存储区域542,用来存储存储器40中数据的地址;访问ID存储区域546,用来存储允许访问数据的访问ID。在这些区域中,地址、数据以及访问ID是相互关联的。
当将数据存储到缓冲存储器54中并且有访问该数据地址的请求时,将与该地址相关联地存储在数据区域544的数据返回,这样就可以降低由于访问存储器40所带来的延迟。缓冲存储器54可以是直接映射型的,也可以是组相联(set associative)型的。但是,这个实施例的缓冲存储器54的类型并不限于此,而是可以为任何其它类型。
图59的框图示出了存储器端的缓冲器控制电路56的功能结构。存储器端的缓冲器控制电路56包括奇偶校验码生成电路100、第一异或电路102、掩码值生成电路112、第二异或电路114、校正子生成电路120、纠错电路122以及顺序控制器562。
顺序控制器562控制存储器端的缓冲器控制电路56的全部操作。奇偶校验码生成电路100、第一异或电路102、掩码值生成电路112、第二异或电路114、校正子生成电路120和纠错电路122的功能结构分别和第一个实施例的奇偶校验码生成电路100、第一异或电路102、掩码值生成电路112、第二异或电路114、校正子生成电路120和纠错电路122是相同的。
但是,在第九个实施例的存储器端的缓冲器控制电路56中,从存储器40读取的数据与对应的访问ID相关联地存储在缓冲存储器54中。当将数据写入到存储器40中时,就可以从缓冲存储器54获取该数据。
图60的流程图示出了依照第九个实施例的访问控制系统1中的写操作,即访问控制操作的一部分。首先,处理器端的缓冲器控制电路52中的访问ID管理电路140判断处理器20是否有权执行写操作(步骤S300)。更具体地说,从处理器20获取访问ID和写操作的目的地址。访问ID管理电路140判断所获取的访问ID和所获取的地址是否是在访问ID表142中相互链接。
如果该访问ID和地址是相互链接的,则可以确定该处理器20有权执行写操作。如果该处理器20无权执行写操作(步骤S300中“NO”),向处理器20报告错误(步骤S304),而该操作也结束了。
另一方面,如果处理器20有权可以进行写操作(步骤S300中“YES”),那么,将从处理器20获取的数据和访问ID相互关联地写入缓冲存储器54(步骤S302)。
然后,顺序控制器524指示存储器端的缓冲器控制电路56写入数据(步骤S310)。更具体地说,顺序控制器524以控制信号的形式发出指令。一旦收到写指令,存储器端的缓冲器控制电路56中的顺序控制器562就指示缓冲存储器54去读取数据和访问ID,并从缓冲存储器54获取该数据和访问ID(步骤S320)。
然后,掩码值生成电路112收到发送存储目的地址和访问ID并生成掩码值的指令(步骤S322)。依照该指令,掩码值生成电路112根据该地址和访问ID生成掩码值。然后,顺序控制器562发出把数据写入存储器40的指令(步骤S324)。依照该指令,通过第一异或电路102和第二异或电路114执行的操作,添加奇偶校验码以及对该数据和掩码值进行异或运算,从而获取第一运算后数据,并将第一运算后数据写到处理器20指定的地址。
完成了向存储器40写入数据的操作之后,顺序控制器562通知处理器端的缓冲器控制电路52写入操作已完成(步骤S326)。至此,写操作结束。
在采用直写式(write through)系统的情况下,处理器20优选在从缓冲存储器54向存储器40的写操作结束后接管控制权。在采用写回式(write back)系统的情况下,处理器20优选在从缓冲存储器54向存储器40的写操作结束之前就接管控制权。
在一个修正版中,允许写操作的访问ID和允许读操作的访问ID与访问ID表142中的地址相关联。这样,即使在读和写操作之间设置了不同的限制,也可以执行正确的操作。
图61的流程图示出了依照第九个实施例的访问控制系统1中的读操作,即访问控制操作的一部分。一旦从处理器20收到读数据请求,处理器端的缓冲器控制电路52中的顺序控制电路524就判断该数据是否存储在缓冲存储器54中(步骤S400)。如果该数据存储在缓冲存储器54中(步骤S400中“YES”),访问ID检查电路522判断从处理器20获取的访问ID是否正确,即处理器20是否有访问权限(步骤S402)。
如果访问ID是正确的(步骤S402中“YES”),则从缓冲存储器54读取该数据并将其送到处理器20(步骤S404)。如果访问ID不正确(步骤S402中“NO”),则向处理器20报告错误(步骤S406)。
通过对与该数据相关联的访问ID和从处理器20获取的访问ID进行比较,来确定该访问ID的正确性。如果这两个访问ID相同,就可以确定从处理器20获取的访问ID是正确的。
另一方面,如果该数据并没有存储在缓冲存储器54中(步骤S400中“NO”),则向存储器端的缓冲器控制电路56发出读取数据的指令(步骤S410)。一旦收到读取数据的指令,存储器端的缓冲器控制电路56中的顺序控制器562就把地址和访问ID送到掩码值生成电路112,并指示该掩码值生成电路112生成掩码值(S420)。依照该指令,掩码值生成电路112生成一个掩码值。
之后,发出从存储器40读取数据的指令(步骤S422)。依照该指令,从存储器40读取数据。通过第一异或电路102和第二异或电路114的操作,把此时读取的第一运算后数据转换为原始数据。
然后,发出把获取的数据、访问ID以及地址写入到缓冲存储器54中的指令,于是,该数据、访问ID以及地址存储在缓冲存储器54中(步骤S424)。所以,原始数据就存储在缓冲存储器54中。在把数据存储到缓冲存储器54的操作结束后,顺序控制器562会通知存储器端的缓冲器控制电路52读数据操作已经结束(步骤S426)。一旦收到读数据操作结束的通知,处理器端的缓冲器控制电路52就转入步骤S402。
如上所述,在第九个实施例的访问控制系统1中,所有曾经被访问过的数据都存储在缓冲存储器54中。因此,当以后再访问该数据时,就可以直接从缓冲存储器54读取该数据,从而能够提高处理速度。在从缓冲存储器54读出数据之前,只是检查访问ID是否一致。所以,同从存储器40读取数据的情况相比,可以提高处理速度。
依照第九个实施例的访问控制系统1的操作和结构的其它方面同依照第一个实施例的访问控制系统1是一样的。此外,第九个实施例的访问控制系统1特有的缓冲存储器也可以用在前面任何一个实施例中。
图62的框图示出了依照第十个实施例的访问控制设备10的功能结构。依照第十个实施例的访问控制设备10除了包括第二个实施例的存储器访问控制设备10中的功能结构,还增加了地址转换设备160。这个实施例的访问控制设备10把从处理器20获取的每个地址转换为另一个地址,并且通过转换后的地址执行数据访问。根据存储在掩码值生成电路112中的地址转换信息,地址转换设备10执行地址转换。
图63的框图详细示出了第十个实施例的掩码值生成电路112的功能结构。掩码值生成电路112包括地址转换信息表138和地址信息指定单元139,还包括数据掩码生成电路130、校正子生成电路132以及奇偶校验码生成电路134。地址信息指定单元139查询地址转换信息表138,并根据访问ID确定地址转换信息。
图64示出了地址转换信息表1 38的数据结构。地址转换信息表138把访问ID和地址转换信息联系起来。这样,为每个访问ID分配不同的地址转换信息是比较理想的。
在地址转换信息表138中转换过访问ID之后,地址转换信息指定单元139把与访问ID相关联的地址转换信息发送出去。
在地址转换设备160要执行的地址转换操作中,最基本的就是:不将某个地址转换为相同的地址,并且,不将两个或者更多个地址转换为相同的地址。只要满足这些条件,转换地址的方法并不限于这个实施例中使用的方法。
图65示出了一个存储器地址。一般而言,一个存储器地址要有固定的位数,这是访问与缓冲线大小对应的范围(s)、与存储器件的页大小对应的范围(r+s)以及与页表管理的页大小对应的范围(q+r+s)所必须的。
比如,如果存储器针对一个字使用64位并且每条缓冲线由256位组成,那么,与缓冲线大小对应的范围(s)就是2位。比如,与存储器件的页大小对应的范围(r+s)即是可以针对七个比特构成的128个字执行突发传递的范围。根据这一关系来执行地址转换操作,从而防止存储器访问速度下降。
比如,优选情况下,存储器中属于同一缓冲线的字应该转换为连续的地址,从而能够通过突发传递高速读取或者写入这些字。可以在它们之间重新排列连续的地址。
优选情况下,存储器件的一页中的字应该转换为在该页内的连续地址,从而能够通过突发传递高速读取或者写入这些字。可以在它们之间重新排列连续的地址。
地址转换设备160以满足下列条件的方式执行地址转换操作。图66A和图66B示出了地址转换设备160要执行的地址转换操作。在图66A和图66B中,每个存储器地址中只有低7位。地址转换设备160只对低七位进行转换。在这个例子中,四个字组成一条缓冲线。
如图所示,由四字构成的每个集合中的比特都随机转换,但是转换之后的地址还是在每个集合中的经过重新排列的连续地址。但是,在两条或者更多条缓冲线上的地址转换之后的地址就不连续了。因此,可以防止传递效率的下降。
图67详细示出了地址转换设备160的结构。地址转换信息存储在由存储器构成的地址转换表162中。图68示出了实现图66A和66B中所示地址转换操作的地址转换表。
在查询地址转换表162时,要用到每个地址中低7位的较高5位。所获取的13位信息中的高5位代替每个相应地址的低7位中的高5位。此外,依照每个相应地址的低2位,从余下的8位中选择2位。选出的2位代替每个相应地址中的低2位。
图69示出了依照第十个实施例的访问控制系统1要执行的写操作的流程图。进行异或运算之后(步骤S108),执行上述地址转换操作(步骤S109)。然后,把数据写入转换后的存储器地址(步骤S110)。
图70示出了依照第十个实施例的访问控制系统1要执行的读操作的流程图。生成掩码值之后(步骤S106),执行地址转换操作(S203)。从地址转换之后的存储器地址读取第一运算后数据(步骤S204)。
依照第十个实施例的访问控制系统1的操作和结构的其它方面同依照第一个实施例的访问控制系统1是一样的。
图71示出了依照第十个实施例的第一修正版的地址转换设备160的结构。在这个修正版中,可以在查询地址转换表162时利用每个地址的高位和低位的异或值实现更多种类的转换。这样,就更难估计地址转换模式。
虽然在第十个实施例中地址转换信息是存储在数据掩码生成电路130中的,但它也可以存储在一些其它部件中。在第十个实施例的第二修正版中,依照第十个实施例的地址转换操作也适用于依照第五个实施例的访问控制系统1,并且把地址转换信息存储在数据掩码生成信息表1302中。
图72示出了依照第二修正版的数据掩码生成信息表1302的数据结构。在数据掩码生成信息表1302中,地址转换信息与访问ID是相关联的。可以根据每个访问ID通过查询数据掩码生成信息表1302,确定地址转换信息。
图73的框图示出了依照第十一个实施例的存储器访问控制设备10的功能结构。依照第十一个实施例的访问控制设备10除了包括第十个实施例的存储器访问控制设备10的功能结构,还包括突发传递控制器164和重排缓冲器166。
当依照存储器40中的地址顺序要执行突发传递时,突发传递控制器164控制该突发传递。在突发传递中用到重排缓冲器166。当地址转换设备160把每条缓冲线中的字重新排列时,如果按照重新排列后的序列进行访问,就不能利用每个存储器件的突发传递功能。结果,导致无法实现更快的传递效率。为了解决这个问题,突发传递控制器164通过依照存储器40中的地址序列进行突发传递来进行访问,并且重排缓冲器166对存储器40中的地址序列和地址转换设备160转换后的地址序列进行重新排列。
图74示出了了重排缓冲器166的结构。在该结构中,每条缓冲线由256比特组成,存储器中的每个字由64比特组成,并且每四个字组成一条缓冲线。
如图74所示,重排缓冲器166包括寄存器0到寄存器3,它们对应于一条缓冲线的四个字。依照突发传递控制器164发出的指令,把从处理器20或存储器40读取的数据写入到这四个寄存器中指定的寄存器。此外,读取存储在这四个寄存器中指定寄存器内的数据,并将其发送到处理器20或者存储器40。
图75的流程图示出了突发传递控制器164向存储器40写入数据要执行的操作。如果没有突发传递指令(步骤S500中“NO”),就执行常规的写操作(步骤S510)。这里所说的“常规的写操作”是同第十个实施例中的写操作一样的,并且数据写入到由地址转换设备160获取的存储器地址。
如果有突发传递指令(步骤S500中“YES”),则把从处理器20发出的数据,即要写入存储器40的数据,临时写入重排缓冲器166中(步骤S502)。然后,从掩码值生成电路112中的地址转换信息表138获取地址转换信息(步骤S504)。然后,依照存储器地址序列通过突发传递把数据写入到存储器40中,该存储器地址序列是根据地址转换信息转换而来的(步骤S506)。该操作到此结束。
图76示出了如图75所描述的写操作。在图76所示的例子中,处理器20把数据A、B、C和D从地址的低七位是“1010000”的一个字写到四个字中。
这里,图67中所示的地址转换设备160把地址“1010000”转换为地址“0110011”。类似的,地址“1010001”转换为“0110010”,地址“1010010”转换为“0110000”,而地址“1010011”转换为“0110001”。
当要依照转换后的存储器地址序列写入数据时,无法执行突发传递。因此,突发传递控制器164把数据临时存储到重排缓冲器166中。根据地址转换信息,重排数据,从而重新生成连续地址。在图76所示的例子中,数据C写在地址“0110000”,数据D写在地址“0110001”,数据B写在地址“0110010”,而数据A写在地址“0110011”。然后,通过从地址“0110000”开始,按C、D、B和A的顺序的突发传递,执行写操作。
图77的流程图示出了突发传递控制器164从存储器40读取数据要执行的操作。如果没有突发传递指令(步骤S520中“NO”),就执行常规的写操作(步骤S530)。这里所说的“常规的写操作”是同第十个实施例中地址转换设备160按顺序从存储器地址读取数据的读操作一样的。
如果有突发传递指令(步骤S520中“YES”),则从掩码值生成电路112的地址转换信息表138中获取地址转换信息(步骤S522)。依照根据地址转换信息转换而来的存储器地址序列,从存储器40读取自最高地址开始的四个字,并且将其临时写入到重排缓冲器166中(步骤S524)。然后,依照存储器地址序列通过突发传递,把存储在重排缓冲器166中的数据返回给处理器20,该存储器地址序列是根据地址转换信息转换而来的(步骤S526)。该操作到此结束。
图78更详细地示出了上述读操作。在图78所示例子中,处理器20从地址的低七位是“1010000”的字中读取四个字。
这里,图67中所示地址转换设备160把地址“1010000”转换为地址“0110011”。类似地,地址“1010001”转换为“0110010”,地址“1010010”转换为“0110000”,而地址“1010011”转换为“0110001”。
突发传递控制器164首先从“0110000”读取四个字,“0110000”表示地址转换之后的最高地址。这四个字暂存在重排缓冲器166中。在这一时刻读取的数据是数据A、B、C和D。
根据地址转换信息,突发传递控制器164依照原始地址序列,重新排列数据。在图78所示例子中,数据D从地址“0110000”读出,数据C从地址“0110001”读出,数据A从地址“0110010”读出,而数据B从地址“0110011”读出。然后,该数据通过从地址“0110000”开始的以D、C、A和B顺序的突发传递返回给处理器20。
如上所述,在依照第十一个实施例的访问控制系统1中,修改存储器中的真实地址,从而消除真实地址和掩码值之间的相关性。这样,可以降低正确估计掩码值的可能性。因此,可以实现更高的安全性。
依照第十一个实施例的访问控制系统1的操作和结构的其它方面同依照第十个实施例的访问控制系统1是一样的。
下面,描述依照第十一个实施例的地址转换操作的一个修正版。在这个修正版中,第十一个实施例的地址转换操作也适用于第九个实施例的访问控制系统1。图79的框图示出了依照这个实施例的存储器端的缓冲器控制电路56的功能结构。依照这个实施例的存储器端的缓冲器控制电路56除了包括依照第十一个实施例的访问控制设备10的功能结构,还包括地址转换设备160。
顺序控制器562执行和突发传递控制器164相同的操作。因此,第九个实施例的访问控制系统1可以执行和第十一个实施例相同的操作,并且也可以达到相同的效果。
这个修正版中的存储器端的缓冲器控制电路56没有重排缓冲器。在该结构中,数据在突发传递时并没有在重排缓冲器中进行重新排列,但是指定缓冲存储器54可以被该字访问。这样,缓冲存储器54就可以用作重排缓冲器。
图80示出了依照第十二个实施例的访问控制系统1的总体结构。依照第十二个实施例的访问控制系统1中,存储器访问控制设备10和存储器40拥有相同的总线加密设备170和410。总线加密设备170和410共用一个密钥。利用根据该密钥生成的随机数,总线加密设备170和410对经由存储器总线42传输的信号进行加密。
图81示出了存储器访问控制设备10的功能结构。依照第十二个实施例的存储器访问控制设备10除了包括依照第一个实施例的存储器访问控制设备10的功能结构,还包括总线加密设备170。总线加密设备170生成用于对控制信号进行加密的控制信号掩码,生成用于对存储器地址进行加密的地址掩码,生成用于对数据进行加密的数据掩码,并且生成用于对奇偶校验码进行加密的奇偶校验码掩码。这些信号中的每一个都进行掩码并通过存储器总线42输出。
图82的框图详细示出了总线加密设备170的功能结构。总线加密设备170包括公共密钥处理电路171、公共密钥存储单元172、初始值计算电路173以及随机数生成电路174。
公共密钥处理电路171执行在总线加密设备170和410之间共用密钥的操作。可以采用多种方式来实现公共公钥的共用。比如,在访问控制系统1进行初始化时,把初始密钥写入每个总线加密设备170和410中。稍后,在正则区间生成一个新的密钥,然后用新的密钥代替总线加密设备170和410之间的公共密钥。
公共密钥存储单元172存储密钥。根据这个密钥,初始值计算电路173生成随机数生成电路174的初始值。最好采用单向函数,以防止正确估计出密钥。比如,通过哈希函数根据该密钥生成的值可以用作初始值。随机数生成电路174,将初始值计算电路173计算出的值用作初始值,以此生成随机数序列。
存储器40的总线加密设备410的功能结构和总线加密设备170的功能结构是相同的。这两个加密设备的公共密钥处理电路共用一个密钥。这两个加密设备的随机数生成电路根据该密钥同时生成随机数。在用生成的随机数对掩码进行加密的情况下,在传输端和接收端计算经由存储器总线42传输的信号的异或值。因此,就可以使经由存储器总线42传输的信号散播。
这样,为了检查访问权限,用访问控制设备根据地址生成掩码值对原始数据进行掩码,以及,用总线加密设备在不考虑地址的情况下通过异或操作生成的掩码值,对原始数据进行掩码。因此,估计数据和这两类掩码值会变得更难。从而,可以实现更高的安全性。
图83和图84示出了依照第十二个实施例经由存储器总线42传输的信号流。图83示出的信号示例没有经过总线加密设备170和410的掩码操作。顺序地从地址A34读取、在地址A35写入以及从地址A36读取。在这种情况中,相应的存储器地址、相应的数据以及相应的奇偶校验码都是经由存储器总线42传输的。
图84示出的信号示例经过了总线加密设备170和410的掩码操作。在图84中,Ri.c、Ri.a、Ri.d、Ri.p分别代表Ri的控制信号加密掩码、地址加密掩码、数据加密掩码以及奇偶校验码加密掩码。如图84所示,总线加密设备170和410由时钟生成用来进行掩码的随机数。通过异或操作,把经由存储器42传输的信号和用来进行掩码的随机值结合起来。
在第十二个实施例的第一修正版中,总线加密设备170没有初始值计算电路173,并且把密钥作为随机数生成电路174的初始值提供。但是,从安全的角度来看,优选采用由初始值计算电路173计算出的初始值,以避免对密钥的正确估计。
在第二修正版中,随机数生成电路174采用了LFSR。图85的框图示出了依照第二修正版的总线加密设备170的功能结构。随机数生成电路174包括随机数寄存器175和LFSR延迟计算电路176。
当前状态记录到随机数寄存器175中,并且由LFSR延迟计算电路176计算出根据当前状态经过某数量的步骤延迟后的状态。将延迟后的状态设为下一状态,并且把它的值作为加密掩码输出。
图86的框图示出了依照第三修正版的存储器访问控制设备10的功能结构。依照第三修正版的存储器访问控制设备10除了包括依照第八个实施例的存储器访问控制设备10的功能结构,还包括总线加密设备170。
图87的框图示出了依照第四修正版的存储器访问控制设备10的功能结构。依照第四修正版的存储器访问控制设备10除了包括依照第十个实施例的存储器访问控制设备10的功能结构,还包括总线加密设备170。
图88的框图示出了依照第五修正版的存储器访问控制设备10的功能结构。依照第五修正版的存储器访问控制设备10除了包括依照第九个实施例的存储器端的缓冲器控制电路56的功能结构,还包括总线加密设备170。
如上所述,第十二个实施例的总线加密设备170可以应用在其它实施例的访问控制系统1中。这样,为了检查访问权限,用访问控制设备根据地址生成掩码值对原始数据进行掩码,以及,用总线加密设备在不考虑地址的情况下通过异或操作生成的掩码值,对原始数据进行掩码。估计数据和这两类掩码值会变得更难。从而,可以实现更高的安全性。
正如前面的其它实施例中所述,第九个到第十二个实施例的访问控制系统1所特有的访问控制设备10也可以适用于图48到图54所示的其它系统。
对于本领域技术人员来说,其他优点和修改将是很容易联想到的。因此,本发明就其更宽泛方面而言,并不限于这里描述的具体细节和代表性实施例。因此,在不背离所附权利要求及其等同物所限定的总体发明构思的前提下,可以作出各种修改。
Claims (28)
1、一种访问控制设备,用于控制写入器、读取器和存储器之间的访问,包括:
奇偶校验码生成器,针对要写入所述存储器的原始数据,生成奇偶校验码;
奇偶校验码加法器,通过向所述原始数据添加所述奇偶校验码生成器生成的所述奇偶校验码,生成添加有奇偶校验码的数据;
第一校正子生成器,生成第一校正子,即与所述写入器请求向所述存储器写入所述原始数据所用的第一访问代码相关联的值;
第一掩码生成器,基于所述第一校正子、所述第一访问代码以及第一存储器地址,生成第一掩码数据,其中,所述写入器要在所述第一存储器地址将所述原始数据写入;
第一异或单元,通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间执行异或运算,获取第一运算后数据;
写入单元,把所述第一运算后数据写入所述存储器中;
第二校正子生成器,用于生成第二校正子,即与所述读取器请求从所述存储器读取数据所用的第二访问代码相关联的值;
第二掩码生成器,基于所述第二校正子、所述第二访问代码以及第二存储器地址,生成第二掩码数据,其中,所述读取器要从所述第二存储器地址读取所述数据;
读取单元,从所述存储器读取所述第一运算后数据;
第二异或单元,通过在所述第二掩码数据和所述第一运算后数据之间执行异或运算,获取第二运算后数据;
数据校正子计算器,基于所述第二运算后数据,计算实际数据校正子;以及
输出判断单元,基于所述实际数据校正子,判断是否将所述第二运算后数据作为所述原始数据输出。
2.如权利要求1所述的访问控制设备,还包括:
第一代码获取器,从所述写入器获取所述第一访问代码;以及
第二代码获取器,从所述读取器获取所述第二访问代码,其中
所述第一校正子生成器基于所述第一代码获取器获取的所述第一访问代码,生成所述第一校正子,以及
所述第二校正子生成器基于所述第二代码获取器获取的所述第二访问代码,生成所述第二校正子。
3.如权利要求2所述的访问控制设备,其中
所述第一代码获取器经由与所述写入器相连接的第一专用线,获取所述第一访问代码;以及
所述第二代码获取器经由与所述读取器相连接的第二专用线,获取所述第二访问代码。
4.如权利要求1所述的访问控制设备,还包括:
写入器ID获取器,获取用于标识所述写入器的写入器ID;
第一代码指定器,基于所述写入器ID获取器获取的所述写入器ID,确定所述第一访问代码;
读取器ID获取器,获取用于标识所述读取器的读取器ID;以及
第二代码指定器,基于所述读取器ID获取器获取的所述读取器ID,确定所述第二访问代码;其中
所述第一校正子生成器基于所述第一代码指定器确定的所述第一访问代码,生成所述第一校正子,以及
所述第二校正子生成器基于所述第二代码指定器确定的所述第二访问代码,生成所述第二校正子。
5.如权利要求4所述的访问控制设备,还包括:
第一代码存储器,存储相互关联的所述写入器ID和所述第一访问代码;以及
第二代码存储器,存储相互关联的所述读取器ID和所述第二访问代码,其中
所述第一代码指定器确定所述第一访问代码,其中,所述第一访问代码存储在所述第一代码存储器中并且与所述写入器ID获取器获取的所述写入器ID相关联,以及
所述第二代码指定器确定所述第二访问代码,其中,所述第二访问代码存储在所述第二代码存储器中并且与所述读取器ID获取器获取的所述读取器ID相关联。
6.如权利要求5所述的访问控制设备,还包括:
第一地址获取器,从所述写入器获取所述第一存储器地址;以及
第二地址获取器,从所述读取器获取所述第二存储器地址;其中
所述第一代码存储器还存储与所述第一访问代码相关联的所述第一存储器地址,
所述第一代码指定器确定所述第一访问代码,其中,所述第一访问代码存储在所述第一代码存储器中并且与所述第一地址获取器获取的第一存储器地址相关联,
所述第二代码存储器还存储与所述第二访问代码相关联的所述第二存储器地址,以及
所述第二代码指定器确定所述第二访问代码,其中,所述第二访问代码存储在所述第二代码存储器中并且与所述第二地址获取器获取的第二存储器地址相关联。
7.如权利要求1所述的访问控制设备,还包括:
第一地址获取器,从所述写入器中获取所述第一存储器地址;
第一代码存储器,存储相互关联的所述第一存储器地址和所述第一访问代码;
第一代码指定器,确定存储在所述第一代码存储器中并且与所述第一地址获取器获取的所述第一存储器地址相关联的所述第一访问代码;
第二地址获取器,从所述读取器中获取所述第二存储器地址;
第二代码存储器,存储相互关联的所述第二存储器地址和所述第二访问代码;以及
第二代码指定器,确定存储在所述第二代码存储器中并且与所述第二地址获取器获取的所述第二存储器地址相关联的所述第二访问代码,其中
所述第一校正子生成器基于所述第一代码指定器确定的所述第一访问代码,生成所述第一校正子,以及
所述第二校正子生成器基于所述第二代码指定器确定的所述第二访问代码,生成所述第二校正子。
8.如权利要求1所述的访问控制设备,其中,
所述第一掩码生成器包括:
第一数据掩码生成器,基于所述第一访问代码和所述第一存储器地址,生成用于对所述原始数据进行掩码的数据掩码;以及
第一奇偶校验码掩码生成器,生成用于对所述奇偶校验码生成器生成的所述奇偶校验码进行掩码的奇偶校验码掩码,其中,所述奇偶校验码掩码是通过在所述数据掩码生成器生成的所述数据掩码的校正子和所述第一校正子生成器生成的所述第一校正子之间进行异或运算而获得的;
所述第二掩码生成器包括:
第二数据掩码生成器,基于所述第二访问代码和所述第二存储器地址,生成用于对与所述原始数据相对应的一部分所述第一运算后数据进行掩码的数据掩码;以及
第二奇偶校验码掩码生成器,生成用于对与所述奇偶校验码相对应的一部分所述第一运算后数据进行掩码的奇偶校验码掩码,其中,所述奇偶校验码掩码是通过在所述数据掩码生成器生成的所述数据掩码的校正子和所述第二校正子生成器生成的所述第二校正子之间进行异或运算而获得的;
所述第一异或单元在所述原始数据和所述第一数据掩码生成器生成的所述数据掩码之间执行异或运算,并且在所述奇偶校验码和所述第一奇偶校验码掩码生成器生成的所述奇偶校验码掩码之间执行异或运算,以及
所述第二异或单元在所述第一运算后数据的数据部分和所述第二数据掩码生成器生成的所述数据掩码之间进行异或运算,并且,在所述第一运算后数据的奇偶校验码部分和所述第二奇偶校验码掩码生成器生成的所述奇偶校验码掩码之间执行异或运算。
9.如权利要求8所述的访问控制设备,其中所述第一数据掩码生成器和所述第二数据掩码生成器各包括线性反馈移位寄存器(LFSR)延迟计算器。
10.如权利要求9所述的访问控制设备,其中所述LFSR延迟计算器对所述第一访问代码和所述第二访问代码中的每一个采用不同的参数进行运算。
11.如权利要求8所述的访问控制设备,其中所述第一数据掩码生成器和所述第二数据掩码生成器各包括:
多个LFSR延迟计算器;以及
一个异或单元,在所述多个LFSR延迟计算器输出值中的至少两个LFSR延迟计算器输出值之间执行异或运算。
12.如权利要求11所述的访问控制设备,其中所述LFSR延迟计算器对所述第一访问代码和所述第二访问代码中的每一个采用不同的参数进行运算。
13.如权利要求12所述的访问控制设备,还包括:
数据掩码生成信息存储器,存储所述LFSR延迟计算器的参数,所述参数与所述第一访问代码或所述第二访问代码相关联,其中
所述LFSR延迟计算器利用存储在所述数据掩码生成信息存储器中并且与所述第一访问代码或所述第二访问代码相关联的所述参数进行运算。
14.如权利要求8所述的访问控制设备,其中所述第一数据掩码生成器和所述第二数据掩码生成器各包括对每个存储器地址进行移位的零移位器。
15.如权利要求8所述的访问控制设备,其中所述第一数据掩码生成器和所述第二数据掩码生成器各包括地址分离器,所述地址分离器把连续的存储器地址值转换为相距较远的值。
16.如权利要求1所述的访问控制设备,还包括:
写入器地址转换器,把所述第一存储器地址转换为不同的地址;以及
读取器地址转换器,把所述第二存储器地址转换为不同的地址,其中
所述第一校正子生成器基于所述写入器地址转换器转换后的所述第一存储器地址,生成所述第一校正子,
所述第一掩码生成器基于所述写入器地址转换器转换后的所述第一存储器地址,生成所述第一掩码数据,
所述第二校正子生成器基于所述读取器地址转换器转换后的所述第二存储器地址,生成所述第二校正子,以及
所述第二掩码生成器基于所述读取器地址转换器转换后的所述第二存储器地址,生成所述第二掩码数据。
17.如权利要求1所述的访问控制设备,其中所述写入器和所述读取器是处理器或者进程。
18.如权利要求1所述的访问控制设备,还包括:
随机数生成器,生成与所述存储器中生成的随机数相同的随机数;
随机异或单元,在所述随机数生成器生成的所述随机值和所述存储器中要访问的区域的存储器地址之间执行异或运算;以及
运算后地址传输器,传输运算后的地址,即所述随机异或单元的运算结果。
19.一种访问控制系统,包括:
处理器;
存储器控制器;以及
存储器访问控制设备,控制对存储器的访问,
所述存储器访问控制设备包括:
奇偶校验码生成器,针对要写入所述存储器的原始数据,生成奇偶校验码;
奇偶校验码加法器,通过向所述原始数据添加所述奇偶校验码生成器生成的所述奇偶校验码,生成添加有奇偶校验码的数据;
第一校正子生成器,生成第一掩码数据的第一校正子,以便对所述添加有奇偶校验码的数据进行掩码,所述第一校正子是预先与第一访问代码相关联的值,所述第一访问代码是当写入器访问所述存储器时要使用的信息,所述写入器请求把所述原始数据写入所述存储器;
第一掩码生成器,基于所述第一校正子、所述第一访问代码以及第一存储器地址,生成所述第一掩码数据,其中要在所述第一存储器地址将所述原始数据写入;
第一异或单元,通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间执行异或运算,获取第一运算后数据;
写入单元,把所述第一运算后数据写入所述存储器;
第二校正子生成器,生成第二掩码数据的第二校正子,以便对所述第一运算后数据进行掩码,所述第二校正子是预先与第二访问代码相关联的值,所述第二访问代码是当读取器访问所述存储器时要使用的信息,所述读取器请求从所述存储器读取数据;
第二掩码生成器,基于所述第二校正子、所述第二访问代码以及第二存储器地址,生成所述第二掩码数据,其中要从所述第二存储器地址读取所述数据;
读取单元,从所述存储器读取所述第一运算后数据;
第二异或单元,通过在所述第二掩码数据和所述第一运算后数据之间执行异或运算,获取第二运算后数据;
数据校正子计算器,基于所述第二运算后数据,计算出实际的数据校正子;以及
输出判断单元,基于所述实际数据校正子,判断是否把所述第二运算后数据作为所述原始数据输出。
20.一种访问控制系统,包括:
处理器;以及
存储器访问控制设备,控制对存储器的访问,
所述存储器访问控制设备包括:
奇偶校验码生成器,针对要写入所述存储器的原始数据,生成奇偶校验码;
奇偶校验码加法器,通过向所述原始数据添加所述奇偶校验码生成器生成的所述奇偶校验码,生成添加有奇偶校验码的数据;
第一校正子生成器,生成第一掩码数据的第一校正子,以便对所述添加有奇偶校验码的数据进行掩码,所述第一校正子是预先与第一访问代码相关联的值,所述第一访问代码是当写入器访问所述存储器时要使用的信息,所述写入器请求把所述原始数据写入所述存储器;
第一掩码生成器,基于所述第一校正子、所述第一访问代码以及第一存储器地址,生成所述第一掩码数据,其中要在所述第一存储器地址将所述原始数据写入;
第一异或单元,通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间执行异或运算,获取第一运算后数据;
写入单元,把所述第一运算后数据写入所述存储器;
第二校正子生成器,生成第二掩码数据的第二校正子,以便对所述第一运算后数据进行掩码,所述第二校正子是预先与第二访问代码相关联的值,所述第二访问代码是当读取器访问所述存储器时要使用的信息,所述读取器请求从所述存储器读取数据;
第二掩码生成器,基于所述第二校正子、所述第二访问代码以及第二存储器地址,生成所述第二掩码数据,其中要从所述第二存储器地址读取所述数据;
读取单元,从所述存储器读取所述第一运算后数据;
第二异或单元,通过在所述第二掩码数据和所述第一运算后数据之间执行异或运算,获取第二运算后数据;
数据校正子计算器,基于所述第二运算后数据,计算出实际的数据校正子;以及
输出判断单元,基于所述实际数据校正子,判断是否把所述第二运算后数据作为所述原始数据输出。
21.一种配备有存储器控制器和存储器访问控制设备的处理器,所述存储器访问控制设备用于控制对存储器的访问,
所述处理器包括:
奇偶校验码生成器,针对要写入所述存储器的原始数据,生成奇偶校验码;
奇偶校验码加法器,通过向所述原始数据添加所述奇偶校验码生成器生成的所述奇偶校验码,生成添加有奇偶校验码的数据;
第一校正子生成器,生成第一掩码数据的第一校正子,以便对所述添加有奇偶校验码的数据进行掩码,所述第一校正子是预先与第一访问代码相关联的值,所述第一访问代码是当写入器访问所述存储器时要使用的信息,所述写入器请求把所述原始数据写入所述存储器;
第一掩码生成器,基于所述第一校正子、所述第一访问代码以及第一存储器地址,生成所述第一掩码数据,其中要在所述第一存储器地址写入所述原始数据;
第一异或单元,通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间执行异或运算,获取第一运算后数据;
写入单元,把所述第一运算后数据写入所述存储器;
第二校正子生成器,生成第二掩码数据的第二校正子,以便对所述第一运算后数据进行掩码,所述第二校正子是预先与第二访问代码相关联的值,所述第二访问代码是当读取器访问所述存储器时要使用的信息,所述读取器请求从所述存储器读取数据;
第二掩码生成器,基于所述第二校正子、所述第二访问代码以及第二存储器地址,生成所述第二掩码数据,其中要从所述第二存储器地址读取所述数据;
读取单元,从所述存储器读取所述第一运算后数据;
第二异或单元,通过在所述第二掩码数据和所述第一运算后数据之间执行异或运算,获取第二运算后数据;
数据校正子计算器,基于所述第二运算后数据,计算出实际的数据校正子;以及
输出判断单元,基于所述实际数据校正子,判断是否把所述第二运算后数据作为所述原始数据输出。
22.一种访问控制方法,包括:
针对要被写入存储器的初始数据,生成奇偶校验码;
通过向所述原始数据添加所生成的所述奇偶校验码,生成添加有奇偶校验码的数据;
生成第一掩码数据的第一校正子,以便对所述添加有奇偶校验码的数据进行掩码,所述第一校正子是预先与第一访问代码相关联的值,所述第一访问代码是当写入器访问所述存储器时要使用的信息,所述写入器请求把所述原始数据写入所述存储器;
基于所述第一校正子、所述第一访问代码以及第一存储器地址,生成所述第一掩码数据,其中要在所述第一存储器地址写入所述原始数据;
通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间执行异或运算,获取第一运算后数据;
将所述第一运算后数据写入所述存储器;
生成第二掩码数据的第二校正子,以便对所述第一运算后数据进行掩码,所述第二校正子是预先与第二访问代码相关联的值,所述第二访问代码是当读取器访问所述存储器时要使用的信息,所述读取器请求从所述存储器读取数据;
生成器基于所述第二校正子、所述第二访问代码以及第二存储器地址,生成所述第二掩码数据,其中所述数据要从所述第二存储器地址读取;
从所述存储器读取所述第一运算后数据;
通过在所述第二掩码数据和所述第一运算后数据之间执行异或运算,获取第二运算后数据;
基于所述第二运算后数据,计算出实际的数据校正子;以及
基于所述实际数据校正子,判断是否把所述第二运算后数据作为所述原始数据输出。
23.一种存储器访问控制设备,包括:
读请求获取器,获取要从存储器读取的数据以及读取所述数据所用的存储器地址,所述数据和所述存储器地址是从一个读取器获取的,所述读取器请求从所述存储器读取所述数据;
缓冲存储器监控器,判断所述读请求获取器获取的所述存储器地址是否存储在缓冲存储器中,所述缓冲存储器将数据、所述数据的存储器地址以及请求方访问代码相互关联地存储,请求把所述数据写入所述存储器的写入器请求将所述数据写入所述存储器,或者所述读取器请求从所述存储器读取所述数据,所述请求方访问代码是允许访问所述数据的写入器或者读取器访问所述存储器时要使用的信息;
访问代码比较器,当所述缓冲存储器监控器确定所述存储器地址存储在所述缓冲存储器中时,将所述请求方访问代码跟第二访问代码进行比较,所述请求方访问代码与所述缓冲存储器中的所述存储器地址相关联,而所述第二访问代码是所述读取器访问所述存储器时要使用的信息;以及
输出单元,当所述请求方访问代码与所述第二访问代码相匹配时,把与所述缓冲存储器中的所述存储器地址相关联的所述数据输出到所述读取器。
24.如权利要求23所述的存储器访问控制设备,其中
存储在所述存储器中的所述数据是第一运算后数据,其是通过对所述读请求获取器获取的所述数据执行预定的运算而获得的,以及
所述存储器访问控制设备还包括:
第二校正子生成器,当所述缓冲存储器监控器确定所述读请求获取器获取的所述数据的所述存储器地址未存储在所述缓冲存储器中时,生成第二掩码数据的第二校正子,以便对存储在所述存储器中的所述数据进行掩码,所述第二校正子是与所述第二访问代码预先相关联的值;
第二掩码生成器,基于所述第二校正子、所述第二访问代码以及所述存储器地址,生成所述第二掩码数据;
读取单元,从所述存储器读取所述第一运算后数据;
第一异或单元,通过在所述第二掩码数据和从所述读取单元读取的所述第一运算后数据之间执行异或运算,获取第二运算后数据;
数据校正子计算器,基于所述运算后数据,计算出实际的数据校正子;以及
输出判断单元,基于所述数据校正子,判断是否把所述第二运算后数据作为所述读取器请求的所述数据输出。
25.如权利要求23所述的存储器访问控制设备,还包括:
写请求获取器,获取要写入所述存储器的数据以及写入所述数据所用的存储器地址,所述数据和所述存储器地址是从请求向存储器写入所述数据的写入器获取的;
代码存储器,将所述存储器地址与第一访问代码相关联地进行存储,所述第一访问代码是当允许在所述存储器地址写入数据的写入器访问所述存储器地址时要使用的信息;以及
数据存储器,当所述写请求获取器获取的所述存储器地址与所述访问代码存储器中所述写入器的所述第一访问代码相关联时,将所述写请求获取器获取的所述数据和所述存储器地址与所述第一访问代码相关联地进行存储,所述第一访问代码是所述写入器访问所述缓冲存储器中的所述存储器时要使用的信息。
26.如权利要求24所述的存储器访问控制设备,还包括:
奇偶校验码生成器,针对存储在所述数据存储器中的所述数据,生成奇偶校验码;
奇偶校验码加法器,通过向所述数据添加所述奇偶校验码生成器生成的所述奇偶校验码,生成添加有奇偶校验码的数据;
第一校正子生成器,生成第一掩码数据的第一校正子,以便对所述添加有奇偶校验码的数据进行掩码,所述添加有奇偶校验码的数据中添加有奇偶校验码,所述第一校正子是预先与所述第一访问代码相关联的值,所述第一访问代码是当所述写入器将所述数据写入所述存储器时所用的信息;
第一掩码生成器,基于所述第一校正子、所述第一访问代码以及所述存储器地址,生成所述第一掩码数据;
第一异或单元,通过在所述添加有奇偶校验码的数据和所述第一掩码数据之间执行异或运算,获取第一运算后数据;
写入单元,将所述第一运算后数据作为所述数据写入所述存储器。
27.一种访问控制系统,包括:
处理器;
缓冲存储器;以及
存储器访问控制设备,控制对存储器的访问,
所述缓冲存储器存储有写入器或读取器所请求的数据、所述数据的存储器地址以及请求方访问代码,所述写入器请求把所述数据写入所述存储器,而所述读取器请求从所述存储器读取所述数据,所述请求方访问代码是当允许访问所述数据的写入器或者读取器访问所述存储器时要使用的信息,所述数据和所述存储器地址与所述请求方访问代码相关联,
所述存储器访问控制设备包括:
读请求获取器,从所述读取器获取要从所述存储器读取的所述数据以及所述数据的所述存储器地址;
缓冲存储器监控器,判断所述读请求获取器获取的所述存储器地址是否存储在所述缓冲存储器中;
访问代码比较器,当所述缓冲存储器监控器确定所述存储器地址存储在所述缓冲存储器中时,将所述请求方访问代码与第二访问代码进行比较,所述请求方访问代码与所述缓冲存储器中的所述存储器地址相关联,而所述第二访问代码是所述读取器访问所述存储器时要使用的信息;以及
输出单元,当所述请求方访问代码与所述第二访问代码相匹配时,将与所述缓冲存储器中的所述存储器地址相关联的所述数据输出到所述读取器。
28.一种存储器访问控制方法,包括:
获取要从存储器中读取的数据以及读取所述数据所用的存储器地址,所述数据和所述存储器地址是从一个读取器获取的,所述读取器请求从所述存储读取所述数据;
判断获取的所述存储器地址是否存储在缓冲存储器中,所述缓冲存储器将数据、所述数据的存储器地址以及请求方访问代码相互关联地进行存储,请求把所述数据写入所述存储器的写入器请求将所述数据写入所述存储器,或者所述读取器请求从所述存储器读取所述数据,所述请求方访问代码是当有权访问所述数据的写入器或者读取器访问所述存储器时要使用的信息;
当所述存储器地址存储在所述缓冲存储器中时,将所述请求方访问代码与第二访问代码进行比较,所述请求方访问代码与所述缓冲存储器中的所述存储器地址相关联,而所述第二访问代码是所述读取器访问所述存储器时要使用的信息;以及
当所述请求方访问代码与所述第二访问代码相匹配时,将与所述缓冲存储器中的所述存储器地址相关联的所述数据输出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP346518/2005 | 2005-11-30 | ||
JP2005346518 | 2005-11-30 | ||
JP079691/2006 | 2006-03-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991801A true CN1991801A (zh) | 2007-07-04 |
CN100507878C CN100507878C (zh) | 2009-07-01 |
Family
ID=38214063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101667893A Expired - Fee Related CN100507878C (zh) | 2005-11-30 | 2006-11-30 | 访问控制设备、方法和存储器访问控制设备、方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100507878C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023884A (zh) * | 2010-11-25 | 2011-04-20 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式系统开发程序校验码自动生成的方法 |
CN102567241A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 存储器控制器及存储器访问控制方法 |
CN103890732A (zh) * | 2011-08-26 | 2014-06-25 | 牛津布鲁克斯大学 | 数字错误校正 |
CN104268483A (zh) * | 2014-09-19 | 2015-01-07 | 福州瑞芯微电子有限公司 | 一种数据保护系统、装置及其方法 |
CN105743652A (zh) * | 2014-12-11 | 2016-07-06 | 上海华虹集成电路有限责任公司 | 基于地址异或的数据总线加密方法 |
CN107436821A (zh) * | 2016-05-31 | 2017-12-05 | Arm 有限公司 | 为包括多个数据位和地址位的块生成错误码的装置和方法 |
CN108351820A (zh) * | 2015-11-20 | 2018-07-31 | 高通股份有限公司 | 在跨存储器链路传送纠正数据时保护ecc位置 |
CN110611561A (zh) * | 2018-06-15 | 2019-12-24 | 意法半导体股份有限公司 | 密码方法和电路、对应的设备 |
CN112700814A (zh) * | 2021-01-05 | 2021-04-23 | 潍柴动力股份有限公司 | Eeprom数据的读取方法、装置、电控设备及介质 |
CN113141289A (zh) * | 2021-05-18 | 2021-07-20 | 卡斯柯信号有限公司 | 一种用于轨旁安全平台的总线数据传输方法 |
CN113518988A (zh) * | 2019-03-05 | 2021-10-19 | 密码研究公司 | 嵌入式中央处理单元上的抗侧通道攻击存储器访问 |
CN115051823A (zh) * | 2021-03-09 | 2022-09-13 | 美光科技公司 | 存储器装置作为安全令牌的利用 |
-
2006
- 2006-11-30 CN CNB2006101667893A patent/CN100507878C/zh not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023884A (zh) * | 2010-11-25 | 2011-04-20 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式系统开发程序校验码自动生成的方法 |
CN102567241A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 存储器控制器及存储器访问控制方法 |
CN103890732A (zh) * | 2011-08-26 | 2014-06-25 | 牛津布鲁克斯大学 | 数字错误校正 |
CN103890732B (zh) * | 2011-08-26 | 2017-08-22 | 牛津布鲁克斯大学 | 数字错误校正 |
CN104268483A (zh) * | 2014-09-19 | 2015-01-07 | 福州瑞芯微电子有限公司 | 一种数据保护系统、装置及其方法 |
CN104268483B (zh) * | 2014-09-19 | 2017-04-19 | 福州瑞芯微电子股份有限公司 | 一种数据保护系统、装置及其方法 |
CN105743652A (zh) * | 2014-12-11 | 2016-07-06 | 上海华虹集成电路有限责任公司 | 基于地址异或的数据总线加密方法 |
CN105743652B (zh) * | 2014-12-11 | 2019-01-22 | 上海华虹集成电路有限责任公司 | 基于地址异或的数据总线加密方法 |
CN108351820A (zh) * | 2015-11-20 | 2018-07-31 | 高通股份有限公司 | 在跨存储器链路传送纠正数据时保护ecc位置 |
CN108351820B (zh) * | 2015-11-20 | 2021-06-29 | 高通股份有限公司 | 在跨存储器链路传送纠正数据时保护ecc位置 |
CN107436821A (zh) * | 2016-05-31 | 2017-12-05 | Arm 有限公司 | 为包括多个数据位和地址位的块生成错误码的装置和方法 |
CN107436821B (zh) * | 2016-05-31 | 2022-08-19 | Arm 有限公司 | 为包括多个数据位和地址位的块生成错误码的装置和方法 |
CN110611561A (zh) * | 2018-06-15 | 2019-12-24 | 意法半导体股份有限公司 | 密码方法和电路、对应的设备 |
CN113518988A (zh) * | 2019-03-05 | 2021-10-19 | 密码研究公司 | 嵌入式中央处理单元上的抗侧通道攻击存储器访问 |
CN112700814A (zh) * | 2021-01-05 | 2021-04-23 | 潍柴动力股份有限公司 | Eeprom数据的读取方法、装置、电控设备及介质 |
CN115051823A (zh) * | 2021-03-09 | 2022-09-13 | 美光科技公司 | 存储器装置作为安全令牌的利用 |
CN113141289A (zh) * | 2021-05-18 | 2021-07-20 | 卡斯柯信号有限公司 | 一种用于轨旁安全平台的总线数据传输方法 |
CN113141289B (zh) * | 2021-05-18 | 2022-07-26 | 卡斯柯信号有限公司 | 一种用于轨旁安全平台的总线数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100507878C (zh) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1991801A (zh) | 访问控制设备、方法和存储器访问控制设备、方法 | |
CN101042682A (zh) | 访问控制装置、系统和方法,处理器 | |
CN1299177C (zh) | 数据管理装置、计算机系统及数据处理方法 | |
CN1282929C (zh) | 高速缓存一致性协议的非随机分布式冲突解决 | |
CN1977531A (zh) | 程序生成装置、程序测试装置、程序执行装置及信息处理系统 | |
CN1760804A (zh) | 信息处理设备,信息处理方法,及计算机程序 | |
CN1647139A (zh) | 数据变换装置和数据变换方法 | |
CN1702634A (zh) | 便利无环境主机干预下的可分页模式虚拟环境存储管理 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1959618A (zh) | 存储系统 | |
CN1530856A (zh) | 布局系统和布局程序以及布局方法 | |
CN101047495A (zh) | 用于传送数据的方法和系统 | |
CN101038560A (zh) | 并行处理方法中的作业分配方法及并行处理方法 | |
CN1227953A (zh) | 存储器控制装置和存储器控制方法以及存储程序的媒体 | |
CN1509475A (zh) | 存储单元电路、存储设备、运动矢量检测器、和运动补偿预测编码器 | |
CN101044450A (zh) | 处理器 | |
CN1956368A (zh) | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 | |
CN1791875A (zh) | 作为信息载体的dna代码的设计方法 | |
CN1787598A (zh) | 管理装置及其控制方法、打印处理系统、程序及记录介质 | |
CN1918844A (zh) | 基于保密共享方案的保密信息管理方案 | |
CN1445679A (zh) | 多维存储器的数据传送装置、传送程序以及传送方法 | |
CN101078994A (zh) | 编译器装置、编译器方法和编译器程序 | |
CN1296825C (zh) | 模拟器及模拟方法 | |
CN1204089A (zh) | 支持缩小代码长度的常量还原型处理器 | |
CN1950803A (zh) | 非易失性存储装置和数据写入方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090701 Termination date: 20161130 |
|
CF01 | Termination of patent right due to non-payment of annual fee |