发明内容
有鉴于此,有必要针对以上技术问题,提供一种覆盖率过滤文件生成方法、装置、设备及介质。
根据本发明的第一方面,提供了一种覆盖率过滤文件生成方法,所述方法包括:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
在一些实施例中,所述创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中的步骤包括:
对每个功能模块执行以下操作:
获取模块设计代码的第一文件名称、模块设计代码对应的覆盖率过滤文件的第二文件名称、模块设计代码修改前后的两个版本号、模块设计代码的存储路径、以及模块设计代码的修改备注信息,其中,所述修改备注信息包括已知修改类型备注和未知修改类型备注,所述已知修改类型备注包括:注释修改、监测信号修改、层级关系修改;
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一行的多个连续列中;或者
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一列的多个连续行中。
在一些实施例中,所述在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件的步骤包括:
基于所述第一文件名称对每个功能模块执行以下操作:
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为注释修改或监测信号修改,则采用所述第一文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为层级关系修改,则采用所述第二文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于未知修改类型备注,则采用所述第三文件生成策略生成新覆盖率过滤文件。
在一些实施例中,所述采用所述第一文件生成策略生成新覆盖率过滤文件的步骤包括:
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中。
在一些实施例中,所述采用所述第二文件生成策略生成新覆盖率过滤文件的步骤包括:
获取所述修改备注信息中记录的新层级关系;
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中;
获取所述修改备注信息中记录的新层级关系,并将所述新覆盖率过滤文件中记录的层级关系替换为所述新层级关系。
在一些实施例中,所述采用所述第三文件生成策略生成新覆盖率过滤文件的步骤包括:
比对修改前后的两个版本号;
若修改前后的两个版本号不同,则基于所述存储路径和所述第二文件名称读取所述覆盖率过滤文件中的全部过滤原因注释;
将所读取的过滤原因注释与若干预设过滤原因注释进行比对以从所述覆盖率过滤文件中筛选出可用部分;
创建新覆盖率过滤文件,并将所述可用部分复制到所述新覆盖率过滤文件中。
在一些实施例中,所述目标项目为知识产权核或片上系统,且所述知识产权核和片上系统均包括多个功能模块。
根据本发明的第二方面,提供了一种覆盖率过滤文件生成装置,所述装置包括:
获取模块,配置用于获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
添加模块,配置用于创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
选择模块,配置用于在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的覆盖率过滤文件生成方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的覆盖率过滤文件生成方法。
上述一种覆盖率过滤文件生成方法,通过在代码修改过程中采用列表文件记录存在修改的模块设计代码的属性信息和修改备注信息,进而在代码修改完成后利用列表文件中记录的信息从三种文件生成策略中选择其中一种策略生成新覆盖率过滤文件,只需跑一次回归得到覆盖率过滤文件,当设计代码修改后可以全部或部分复用之前得到的覆盖率过滤文件,避免了反复执行回归测试和重复性覆盖率分析,极大的减少验证工程师工作量,有助于提高验证效率,验证工程师可以用此方法快速得到过滤后的覆盖率数据,为其后续验证工作的开展提供便利进而缩短研发周期。
此外,本发明还提供了一种覆盖率过滤文件生成装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图1所示,本发明提供了一种覆盖率过滤文件生成方法100,具体来说所述方法包括以下步骤:
步骤101,获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
步骤102,创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
步骤103,在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
上述一种覆盖率过滤文件生成方法,通过在代码修改过程中采用列表文件记录存在修改的模块设计代码的属性信息和修改备注信息,进而在代码修改完成后利用列表文件中记录的信息从三种文件生成策略中选择其中一种策略生成新覆盖率过滤文件,只需跑一次回归得到覆盖率过滤文件,当设计代码修改后可以全部或部分复用之前得到的覆盖率过滤文件,避免了反复执行回归测试和重复性覆盖率分析,极大的减少验证工程师工作量,有助于提高验证效率,验证工程师可以用此方法快速得到过滤后的覆盖率数据,为其后续验证工作的开展提供便利进而缩短研发周期。
在一些实施例中,前述步骤102,创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中具体包括:
对每个功能模块执行以下操作:
获取模块设计代码的第一文件名称、模块设计代码对应的覆盖率过滤文件的第二文件名称、模块设计代码修改前后的两个版本号、模块设计代码的存储路径、以及模块设计代码的修改备注信息,其中,所述修改备注信息包括已知修改类型备注和未知修改类型备注,所述已知修改类型备注包括:注释修改、监测信号修改、层级关系修改;
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一行的多个连续列中;或者
将所述第一文件名称、所述第二文件名称、修改前后的两个版本号、所述存储路径和所述代码修改类型分别填入所述列表文件的同一列的多个连续行中。
在一些实施例中,前述步骤103,在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件具体包括:
基于所述第一文件名称对每个功能模块执行以下操作:
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为注释修改或监测信号修改,则采用所述第一文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于已知修改类型备注,且所述已知修改类型备注为层级关系修改,则采用所述第二文件生成策略生成新覆盖率过滤文件;
响应于所述修改备注信息属于未知修改类型备注,则采用所述第三文件生成策略生成新覆盖率过滤文件。
在一些实施例中,所述采用所述第一文件生成策略生成新覆盖率过滤文件的步骤包括:
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中。
在一些实施例中,所述采用所述第二文件生成策略生成新覆盖率过滤文件的步骤包括:
获取所述修改备注信息中记录的新层级关系;
基于所述存储路径和所述第二文件名称获取并复制所述覆盖率过滤文件的全部内容;
创建新覆盖率过滤文件,并将所复制的所述覆盖率过滤文件的全部内容粘贴到所述新覆盖率过滤文件中;
获取所述修改备注信息中记录的新层级关系,并将所述新覆盖率过滤文件中记录的层级关系替换为所述新层级关系。
在一些实施例中,所述采用所述第三文件生成策略生成新覆盖率过滤文件的步骤包括:
比对修改前后的两个版本号;
若修改前后的两个版本号不同,则基于所述存储路径和所述第二文件名称读取所述覆盖率过滤文件中的全部过滤原因注释;
将所读取的过滤原因注释与若干预设过滤原因注释进行比对以从所述覆盖率过滤文件中筛选出可用部分;
创建新覆盖率过滤文件,并将所述可用部分复制到所述新覆盖率过滤文件中。
在一些实施例中,所述目标项目为知识产权核(即IP核)或片上系统(即SoC系统),且所述知识产权核和片上系统均包括多个功能模块。
在一些实施例中,为了便于理解的本发明的技术方案,下面以目标项目为大规模SoC为例进行详细说明,主要的原理是通过比较新旧两个版本的设计代码,判断修改的内容是否影响旧版覆盖率过滤文件,若不影响,则旧版覆盖率文件可直接复用;若影响,则提取旧版覆盖率文件中可复用的部分,作为新版覆盖率文件。验证工程师只需要给出新旧版本的设计代码、旧版本过滤文件等信息,就可以快速得到新版本的覆盖率文件,本发明方法使用简单,适用于批量操作、项目迭代可复用性高,后续可扩展性高。请结合图2所示,本实施例中覆盖率过滤文件生成方法包括以下三部分:
第一部分:定义列表文件,本实施例规定了一系列条目来描述各个功能模块内模块设计代码的信息。在实际使用时验证工程师可以根据实际情况完成这个列表文件内信息的填写。例如,所需验证的SoC的列表文件中列表信息可参照表1填写:
表1列表文件的内容
列表信息包含模块设计代码名、旧版本覆盖率过滤文件名、模块设计代码旧版本号、模块设计代码新版本号、模块设计代码路径、修改类型。模块设计代码名指明需要处理的模块设计代码。旧版本覆盖率过滤文件提供过滤文件的路径、文件名。设计旧版本号和新版本号用于比较两个版本模块设计代码的不同之处。模块设计代码路径提供模块设计代码所在路径。修改类型一栏只能填以下四种中的一种:注释修改即COMMENT_ONLY、监测信号修改即MONITOR_ONLY、层级关系修改即TO_SOC或空,COMMENT_ONLY表示针对当前模块设计代码,验证人员已经确定新版本相较于对旧版本的修改只包括注释的增加、删减或修改;MONITOR_ONLY表示针对当前模块设计代码,验证人员已经确定新版本相较于对旧版本的修改只包括监测信号的增加、删减或修改,监测信号指不影响设计功能也不关心其覆盖率的作为监测或调试功能的信号;TO_SOC表示当前module级覆盖率过滤文件要复用到SoC级,后面跟的就是SoC级的层次结构;空表示验证人员并不清楚新旧版本对当前模块设计代码有哪些修改,此时脚本会自行分析修改类型是否为COMMENT_ONLY或MONITOR_ONLY。
第二部分:基于列表文件判断是否能够直接复用原覆盖率过滤文件;具体来说是根据第一部分填写的列表文件给出的信息判断,若修改类型为COMMENT_ONLY或MONITOR_ONLY,则旧版本的覆盖率过滤文件可直接复用;若修改类型为TO_SOC,则将覆盖率过滤文件中的层次结构替换为SoC级的层次结构即可;若修改类型为空,比较新旧版本设计代码的不同之处,分析修改类型:若类型为COMMENT_ONLY或MONITOR_ONLY,则旧版本覆盖率过滤文件可直接复用;否则,需要利用第三部分提取原有覆盖率过滤文件中可用部分。
第三部分:提取原覆盖率过滤文件中可用部分;具体来说是据旧版本覆盖率过滤文件的注释中的标识信息,提取其中的可复用部分输出新的覆盖率过滤文件,同时输出旧版覆盖率文件中可以过滤而新版不能过滤的旧版本独有过滤信息文件供参考。这要求验证工程师在旧版本覆盖率过滤文件中为需要复用的过滤内容添加带有标识的注释,在本专利中规定以_REUSE结尾的注释所指的过滤内容就是可复用的部分。常见的可复用的过滤内容比如标准接口协议中未用到的信号、地址位、数据位,实际应用场景中不存在的情况等。
请参照图3所示,下面结合表1中填入的信息和以上列举的四种修改类型说明新覆盖率过滤文件生成方式:
步骤一,依次遍历列表文件,将列表文件中内容按行存储在一个数据结构中,为后续处理做准备。
步骤二,判断数据结构中当前模块设计代码的修改类型是否为COMMENT_ONLY或MONITOR_ONLY,若是,则模块设计代码的修改并不影响覆盖率过滤文件,将旧版本覆盖率过滤文件直接作为新的覆盖率过滤文件输出;若否,则进入下一步。
步骤三,判断数据结构中当前模块设计代码的修改类型是否为TO_SOC,若是,将覆盖率过滤文件中的层次结构替换为SoC级的层次结构作为新的覆盖率过滤文件输出;若否,则进入下一步。
步骤四,根据模块设计代码的路径、名称、新旧版本号,比较两者的差异,并将差异输出到一个文件中,供后续步骤使用。
步骤五,根据步骤四输出的差异文件,检查差异是否只限于注释的增加、删减、修改,若是,则模块设计代码的修改并不影响覆盖率过滤文件,将旧版本覆盖率过滤文件直接作为新的覆盖率过滤文件输出;若否,则进入下一步。
步骤六,根据步骤四输出的差异文件,检查差异是否只限于monitor信号的增加、删减、修改,若是,则模块设计代码的修改并不影响覆盖率过滤文件,将旧版本覆盖率过滤文件直接作为新的覆盖率过滤文件输出;若否,则根据旧版本覆盖率过滤文件的路径、名称访问该过滤文件,遍历每一行提取其中可重用的部分打印到新的覆盖率过滤文件中。VCS的标准过滤文件格式实例如下:
//This file contains the Exclude objects
//……
CHECKSUM:““
INSTANCE:
ANNOTATION:““
Toggle/Branch/Condition/FSM/Block/Transition
……
ANNOTATION:““
Toggle/Branch/Condition/FSM/Block/Transition
……
CHECKSUM:““
INSTANCE:
ANNOTATION:““
……
在具体实施过程中,相关实现代码示例如下:
在具体实施过程中提取原覆盖率过滤文件中可用部分代码参考如下:
在本实施例中,上述一种覆盖率过滤文件生成方法针对传统的覆盖率收集和覆盖率过滤文件定义做了两点改进,首先通过定义一个列表文件来管理存在修改的模块设计代码的信息,通过脚本对其进行批量比较,减少验证工程师工作量;其次通过在覆盖率过滤文件中添加后缀的方式来标识后续版本可以重用的部分,这样验证工程师每一个版本的覆盖率分析都是有意义的,在下次分析时可以通过脚本快速提取这些内容,减少不必要的重复工作,大大降低重复性工作量,减少时间和人力的消耗,提高工作效率,生成新覆盖率过滤文件的速度快,适用于大规模SoC和IP的覆盖率过滤文件复用。
在又一个实施例中,请参照图4所示,本发明还提供了一种覆盖率过滤文件生成装置200,所述装置包括:
获取模块201,配置用于获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
添加模块202,配置用于创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
选择模块203,配置用于在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
上述一种覆盖率过滤文件生成装置,通过在代码修改过程中采用列表文件记录存在修改的模块设计代码的属性信息和修改备注信息,进而在代码修改完成后利用列表文件中记录的信息从三种文件生成策略中选择其中一种策略生成新覆盖率过滤文件,只需跑一次回归得到覆盖率过滤文件,当设计代码修改后可以全部或部分复用之前得到的覆盖率过滤文件,避免了反复执行回归测试和重复性覆盖率分析,极大的减少验证工程师工作量,有助于提高验证效率,验证工程师可以用此方法快速得到过滤后的覆盖率数据,为其后续验证工作的开展提供便利进而缩短研发周期。
需要说明的是,关于覆盖率过滤文件生成装置的具体限定可以参见上文中对覆盖率过滤文件生成方法的限定,在此不再赘述。上述覆盖率过滤文件生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的覆盖率过滤文件生成方法,具体来说,所述方法包括以下步骤:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的覆盖率过滤文件生成方法,具体来说,包括执行以下步骤:
获取目标项目中每个功能模块对应的模块设计代码,以及每个模块设计代码对应的覆盖率过滤文件,其中,所述覆盖率过滤文件中记录有若干过滤代码段以及过滤原因注释;
创建列表文件并在对所述目标项目执行代码修改操作时将存在修改的模块设计代码的属性信息和修改备注信息按照预设规则添加到所述列表文件中;
在对所述目标项目执行完代码修改操作后读取并解析所述列表文件,并基于所述属性信息和所述修改备注信息从第一文件生成策略、第二文件生成策略和第三文件生成策略中选择一种策略为修改后的模块设计代码生成对应的新覆盖率过滤文件;
其中,所述第一文件生成策略为全部复用所述覆盖率过滤文件、所述第二文件生成策略为基于所述修改备注信息对所述覆盖率过滤文件进行修改后复用修改后的覆盖率过滤文件,所述第三文件生成策略为基于所述覆盖率过滤文件中记录的所述过滤原因注释部分复用所述覆盖率过滤文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。