校验缓存一致性的方法、装置和存储介质与流程

文档序号:29612426发布日期:2022-04-13 09:58阅读:86来源:国知局
校验缓存一致性的方法、装置和存储介质与流程

1.本技术涉及计算机软件领域,尤其涉及用于对芯片设计校验缓存一致性的方法、装置和存储介质。


背景技术:

2.当前的处理器的设计通常涉及多个内核/线程对共享缓存的读写。因此,在对处理器进行验证时,需要对处理器的缓存一致性进行校验,以确保缓存中数据的正确。
3.为了确保每一个缓存行(cache line)的数据能够被正确地写入主内存,缓存行可以有4种状态(独享、共享、修改、无效),不同的状态对应于不同的缓存读写权限。并且每个内核/线程对主内存的操作都可能导致不同缓存行的状态的改变。这导致对缓存一致性进行校验变得复杂。对于内核数量多的处理器来说,缓存一致性的校验会更为复杂。
4.如何以更为高效的方式在设计的验证过程中实现缓存一致性校验是一个亟待解决的问题。


技术实现要素:

5.有鉴于此,本技术提出了一种对处理器的缓存一致性进行校验的方法、装置、系统和存储介质。
6.本技术的第一方面提供一种对处理器的缓存一致性进行校验的方法,所述处理器包括由多个内核运行的多个线程,所述方法包括:读取缓存一致性的测试用例,所述测试用例包括施加到所述多个内核运行的多个线程的多个缓存操作;根据所述测试用例的描述生成所述多个缓存操作的执行示意图;接收在所述多个缓存操作中选择一目标缓存操作的选择指令;以及响应于所述选择指令,生成所述目标缓存操作的操作信息。
7.本技术的第二方面提供一种执行eda任务的计算装置,包括:存储器,存储用于多个指令;至少一个处理器,用于执行所述多个指令以使得所述计算系统进行如本技术的第一方面所述的方法;以及显示器,用于显示图形界面。
8.本技术的第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行如本技术的第一方面所述的方法。
附图说明
9.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
10.图1示出了根据本技术实施例的一种计算装置的示意图。
11.图2示出了根据本技术实施例的一种对处理器的缓存一致性进行校验的系统的示
意图。
12.图3a示出了根据本技术实施例的一种图形用户界面(gui)的示意图。
13.图3b示出了根据本技术实施例的又一种图形用户界面(gui)的示意图。
14.图4示出了根据本技术实施例的一种对处理器的缓存一致性进行校验的方法的流程图。
具体实施方式
15.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
16.需要说明的是,除非另外定义,本技术使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
17.图1示出了根据本技术实施例的一种计算装置100的示意图。如图1所示,计算装置100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在计算装置内部的通信连接。
18.处理器102可以是中央处理器(central processing unit,cpu)、图像处理器、神经网络处理器(npu)、微控制器(mcu)、可编程逻辑器件、数字信号处理器(dsp)、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路。处理器102可以用于执行与本技术描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
19.存储器104可以配置为存储数据(例如,指令、tcl对象的列表、计算机代码、对象的属性与属性的值等)。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本技术的显示逻辑系统设计的目标模块的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码、对象的属性与属性的值等)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘、固态硬盘(ssd)、闪存、存储棒等。
20.网络接口106可以配置为经由网络向计算装置100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、wifi、近场通信(nfc)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(nic)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
21.外围接口108可以配置为将计算装置100与一个或多个外围装置连接,以实现信息
输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
22.总线110可以被配置为在计算装置100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(usb端口、pci-e总线)等。
23.需要说明的是,尽管上述计算装置架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该计算装置架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述计算装置架构中也可以仅包含实现本技术实施例方案所必需的组件,而不必包含图中所示的全部组件。
24.图2示出了根据本技术实施例的一种对处理器的缓存一致性进行校验的系统200的示意图。处理器可以是在设计过程中的逻辑系统设计。通常处理器的设计用硬件描述语言(hdl)描述,并且包括由多个内核运行的多个线程。
25.如图2所示,系统200包括测试用例生成器202、仿真器204、缓存一致性校验器206、以及显示器208。
26.测试用例生成器202可以根据测试要求(例如,处理器的一些参数)生成一个或多个测试用例。这些测试用例可以在处理器的仿真过程中使得处理器进行一系列的缓存操作,包括施加到多个内核的多个线程的多个缓存操作(例如,读操作或写操作)。通常,测试用例的描述通常包括用c语言写的源代码。
27.在一些实施例中,用户也可以自行编写测试用例。
28.仿真器204可以用于仿真处理器以及用于验证处理器的测试环境(test bench)。仿真器204可以是软件仿真器或硬件仿真器,用于在处理器进行流片之前就模拟处理器的运行,从而尽快发现处理器的设计缺陷。测试环境可以是统一验证方法学(universal verification methodology,uvm),用于向仿真的处理器提供激励信号。在本技术中,这里的激励信号可以对缓存的各种缓存操作。
29.通过在测试环境中仿真处理器,仿真器204可以得到仿真结果(例如,每个缓存行中存储的数值)。仿真器204可以将仿真结果发送到缓存一致性校验器206用于后续处理。
30.缓存一致性校验器206可以读取测试用例,并且对测试用例进行分析,以方便用户了解测试用例将如何操作处理器以及会产生何种结果。可以理解的是,缓存一致性校验器206产生的结果缓存地址上的期望数值。
31.在一些实施例中,缓存一致性校验器206可以根据测试用例的描述生成多个缓存操作的执行示意图(后续会进一步描述)。执行示意图可以包括上述多个缓存操作和处理器的多个内核以及多个线程的关系。
32.用户可以在执行示意图中显示的多个缓存操作中选择一个目标缓存操作进行观察。例如,根据用户选择目标缓存操作的选择指令,缓存一致性校验器206可以生成目标缓存操作的操作信息。
33.缓存一致性校验器206还可以生成图形用户界面(gui),并且由显示器208显示该gui。
34.图3a示出了根据本技术实施例的一种图形用户界面(gui)300的示意图。
35.如图3a所示,gui 300包括第一窗口302、第二窗口304和第三窗口306。
36.第一窗口302可以用于显示测试用例的源代码。通过在第一窗口302显示源代码,可以方便用户随时查看测试用例的具体代码,以及在适当的时候对测试用例进行修改。
37.第二窗口304可以用于显示执行示意图。执行示意图可以包括该处理器的多个内核(图3a仅示例性地示出core1和core2)、每个内核中运行的线程(图3a中仅示例性地示出每个内核运行2个线程)以及每一个线程(thread)中运行的缓存操作。在一些实施例中,还可以在执行示意图中显示多个线程的执行顺序。例如,如图3a所示,可以用箭头表示多个线程的执行顺序。
38.用户可以在第二窗口304中显示的多个缓存操作中选择一个目标缓存操作。例如,用户可以在第二窗口304中通过点击“read_803”产生一个选择指令,从而指示缓存一致性校验器206该“read_803”被选择为目标缓存操作。
39.当用户选择该“read_803”后,第一窗口302中显示的源代码可以跳转到与该“read_803”对应的一部分源代码。例如,图3a中关于case 1的这部分代码就是与该“read_803”对应的源代码。
40.相应地,第三窗口306可以用于显示目标缓存操作的操作信息。如图3a所示,第三窗口306可以在区域306a显示操作信息,显示的操作信息可以至少包括:目标缓存操作针对的缓存地址(例如,0x8b)、缓存地址上的期望数值(例如,196)、缓存行(例如,151)、缓存操作的名称(例如,read_803)、目标缓存操作的类型(例如,read)、以及目标缓存操作的前序操作(例如,read_802)和后续操作(例如,write_804)。
41.在一些实施例中,用户可以在区域306b点击前序操作或者后续操作来跳转到当前目标缓存操作的前一个操作或后一个操作。也就是说,除了在第二窗口中直接点击缓存操作,选择指令也可以是在第三窗口306中显示的操作信息中点击前序操作或后续操作。
42.第三窗口306还可以包括一个区域306c用于显示缓存地址选择区域。该缓存地址选择区域允许用户筛选缓存地址的一个范围内的一个或多个缓存操作。例如,用户可以输入基础地址、地址的起始点或缓存操作的id来精确地选择一个或多个目标缓存操作。
43.被选择出来的一个或多个目标缓存操作可以在区域306d中显示该一个或多个目标缓存的具体信息,例如,id、处理器内核(core)、线程(thread)、操作类型(method)、地址(addr)、数值(value)等。
44.在一些实施例中,仿真器204可以将仿真结果发送到缓存一致性校验器206,用于比较仿真结果和期望数值。相应地,缓存一致性校验器206可以接收在处理器上仿真运行测试用例的仿真结果;在第二窗口中显示仿真结果;以及响应于仿真结果与期望数值不同,突出显示仿真结果。
45.图3b示出了根据本技术实施例的一种图形用户界面(gui)310的示意图。
46.如图3b所示,缓存一致性校验器206可以比较仿真结果与期望数值。对于仿真结果与期望数值不同的缓存操作,缓存一致性校验器206可以在gui310中突出显示(例如,高亮、加粗、下划线等)。例如,“read_803”操作的仿真结果与期望数值不同,缓存一致性校验器206可以在gui 310中的第二窗口304中高亮显示“read_803”,并且在第二窗口306的操作信息中体现具体的不同之处。例如,期望数值“196”被划去,而仿真结果“69”被显示。
47.通过在一个图形界面中显示图形化的执行示意图、测试用例的源代码以及缓存操作的具体操作信息并且允许源代码、执行示意图以及具体操作信息的联动联调,本技术提
供的缓存一致性校验器206以及相应的图形用户界面使得缓存一致性的校验变得直观,并且简化了缓存一致性的调试工作。
48.本技术还提供一种对处理器的缓存一致性进行校验的方法。
49.图4示出了根据本技术实施例的一种对处理器的缓存一致性进行校验的方法400的流程图。所述处理器包括由多个内核运行的多个线程。方法400可以由如图1所示的计算装置100执行。方法400可以包括如下步骤。
50.在步骤402,计算装置100可以读取缓存一致性的测试用例。所述测试用例可以由图2的测试用例生成器202生成,并且包括施加到所述多个内核(例如,图3a的core1和core2)运行的多个线程(例如,图3a的thread 0-3)的多个缓存操作(例如,图3a的“write_801”、“read_802”、“read_803”等)。
51.在步骤404,根据所述测试用例的描述(例如,图3a的窗口302中显示的源代码),计算装置100可以生成所述多个缓存操作的执行示意图(例如,图3a的窗口304中显示的示意图)。
52.在一些实施例中,计算装置100可以生成图形界面(例如,图3a的图形用户界面300);在所述图形界面中生成第一窗口(例如,图3a的窗口302),用于显示所述测试用例的源代码;在所述图形界面中生成第二窗口(例如,图3a的窗口304),用于显示所述执行示意图。所述执行示意图包括所述多个缓存操作以供用户选择目标缓存操作。
53.所述执行示意图可以包括所述多个内核、在所述多个内核中运行的多个线程、以及每一个线程中运行的缓存操作。在一些实施例中,计算装置100还可以在所述执行示意图中显示所述多个缓存操作的执行顺序。例如,如图3a所示的在多个缓存操作之间的连接箭头可以用于指示这些缓存操作的执行顺序。
54.在步骤406,计算装置100可以从用户接收在所述多个缓存操作中选择一目标缓存操作的选择指令(例如,在窗口304中点击“read_803”的操作)。
55.在一些实施例中,响应于所述选择指令,计算装置100可以在第一窗口中显示与所述目标缓存操作对应的一部分源代码;以及在所述图形界面中生成第三窗口以显示所述操作信息。所述操作信息包括:所述目标缓存操作针对的缓存地址、所述缓存地址上的期望数值、缓存行、线程的名称、所述目标缓存操作的类型、以及所述目标缓存操作的前序操作和后续操作的至少一个。在一些实施例中,所述选择指令包括在所述第三窗口中显示的操作信息中点击所述前序操作或所述后续操作。
56.在步骤408,响应于所述选择指令,计算装置100生成所述目标缓存操作的操作信息(如图3a的窗口306中所示)。
57.在一些实施例中,方法400还可以进一步包括:接收在所述处理器上仿真运行所述测试用例的仿真结果;在所述第二窗口中显示所述仿真结果;以及响应于所述仿真结果与所述期望数值不同,突出显示所述仿真结果。
58.在一些实施例中,计算装置100还可以在所述第三窗口中显示缓存地址选择区域,用于筛选缓存地址的一个范围内的一个或多个缓存操作。
59.本技术的实施例还提供一种执行eda任务的计算装置。该计算装置可以是图1的计算装置100。该计算装置可以包括:存储器,存储用于多个指令;至少一个处理器,用于执行所述多个指令以使得所述计算系统进行如上所述方法400;以及显示器,用于显示图形界
面。
60.本技术的实施例还提供一种非暂态计算机可读存储介质。所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行如上所述的方法400。
61.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
62.上述对本技术特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
63.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明它们没有在细节中提供。
64.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
65.本技术旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1