IP Library › Granted Patent US 12,204,824
Granted Patent B2
US 12,204,824 · App. 17/138,914 · Granted Jan 21, 2025

Compiler plugin for special-purpose computer processors with dual support for design verification and release packaging

Inventors: Shushan Wen (Pleasant Hill, CA); Linna Mai (San Jose, CA)
Assignee: Fortinet, Inc.
G06F30/20G06F8/37G06F9/547
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,204,824
App. No.
17/138,914
Granted
Jan 21, 2025
Kind
B2
Abstract

A compiler (CPL) plugin comprises a TC to, responsive to a new DV test, read configuration settings and selects appropriate plugin processes based on the configuration settings. An API interface can generate images that control the special purpose processor during a stage of a plurality of stages for a CPL-related design verification (DV) test and call selected plugin processes. A common compiler module comprising a common function codebase. A DV specialized support module comprising a DV function only codebase, wherein the DV has access to the common compiler module. An RP specialized support module can comprise an RP function only codebase, wherein the codebase is common for both DV and RP, and wherein top-level APIs are designed for both DV and RP. Responsive to completing the DV test, TC disables the plugins and injects traffic for the DV test, and wherein TC reports testing results.

Claims (33)

1. A design verification test system comprising a compiler (CPL) plugin to, in a network processor, execute a CPL-related design verification test, while maintaining dual compiler support of design verification (DV) and resource packaging (RP), the CPL plugin comprising:

a testcase (TC) to, responsive to a new DV test, read configuration settings and select appropriate plugin processes based on the configuration settings;

an API interface, to generate images that control the special-purpose processor during a stage of a plurality of stages for the new DV test and call the selected plugin processes;

a common compiler module comprising a common function codebase with top-level APIs;

a DV specialized support module comprising a DV function only codebase, wherein the DV has access to the common compiler module; and

an RP specialized support module comprising an RP function only codebase, wherein the RP function only codebase is common for both DV and RP, and wherein the top-level APIs are designed for both DV and RP,

wherein, responsive to completing the new DV test, the TC disables the selected plugin processes and injects traffic for the DV test, and wherein TC reports testing results.

2. The CPL plugin of claim 1 , wherein the special-purpose processor is disposed within a network device.

3. The CPL plugin of claim 1 , wherein at least a portion of the compiler is implemented in microcode.

4. The CPL plugin of claim 1 , wherein the design verification test system interoperates with a specialized driver for networking.

5. The CPL plugin of claim 1 , wherein the design verification test system comprises a system on a chip (SOC).

6. The CPL plugin of claim 1 , wherein the special-purpose processor comprises an ASIC for networking.

7. A method in a special-purpose processor, for executing a compiler (CPL)-related design verification (DV) test, while maintaining dual compiler support of DV and resource packaging (RP), the method comprising the steps of:

detecting a new DV test;

responsive to the new DV test, reading configuration settings to a TC and selecting appropriate plugin processes based on the configuration settings;

generating images that control the special purpose processor, by an API interface, during a stage of a plurality of stages for a CPL-related DV test and call selected plugin processes;

wherein, a common compiler module comprises a common function codebase, a DV specialized support module comprises a DV function only codebase, wherein the DV has access to the common compiler module; an (RP) specialized support module comprises an RP function only codebase, wherein the codebase is common for both DV and RP, and wherein top-level APIs are designed for both DV and RP, and

responsive to completing the DV test, disabling the plugins, injecting traffic and reporting results for the DV test, by the TC, and

responsive to completing the DV test, disabling the plugins, injecting traffic and reporting results for the DV test, by the TC.

8. A non-transitory computer-readable media for, when executed by a special-purpose processor, for executing a CPL-related design verification (DV) test, while maintaining dual compiler support of design verification and resource packaging, the method comprising the steps of:

detecting a new DV test;

responsive to the new DV test, reading configuration settings to a TC and selecting appropriate plugin processes based on the configuration settings;

generating images that control the special purpose processor, by an API interface, during a stage of a plurality of stages for a CPL-related DV test and call selected plugin processes;

wherein, a common compiler module comprises a common function codebase, a DV specialized support module comprises a DV function only codebase, wherein the DV has access to the common compiler module; a resource packaging (RP) specialized support module comprises an RP function only codebase, wherein the codebase is common for both DV and RP, and wherein top-level APIs are designed for both DV and RP, and

responsive to completing the DV test, disabling the plugins, injecting traffic and reporting results for the DV test, by the TC, and

responsive to completing the DV test, disabling the plugins, injecting traffic and reporting results for the DV test, by the TC.

9. The CPL plugin of claim 1 , wherein a TP comprises a TP object which provides information needed by TC, and a TP pointer which is a variable to provide an address for the CPL plugin to find the TP object.

10. The CPL plugin of claim 1 , wherein the TC engages the TP with a call to TP enable and disengages the TP with a call to TC disable.

11. The CPL plugin of claim 1 , wherein the CPL plugin maintains only one codebase for DV and RP.

12. The CPL plugin of claim 1 , wherein APIs of the CPL plugin are designed for both DV and RP.

13. The CPL plugin of claim 1 , wherein functions carrying out workload only for DV should be maintained in a DV database and not in a CPL database.

14. The CPL plugin of claim 1 , wherein functions carrying out workload only for RP should stay in an RP database and not in a CPL database.

15. The CPL plugin of claim 1 , wherein the DV taps into the CPL plugin without breaking up CPL functionality or requiring CPL rebuild.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: WEN, SHUSHAN; MAI, LINNA
To: FORTINET, INC.
Reel/Frame 054805/0508 →
Continuity (1)
Related Publication 20220207210A1 · Jun 30, 2022
References Cited (29)
US 5535815A · Hyman · 1996 [cited by examiner]
US 7177311B1 · Hussain · 2007 [cited by examiner]
US 8904320B2 · Korthikanti · 2014 [cited by examiner]
US 9432284B2 · Goyal · 2016 [cited by examiner]
US 9965419B1 · Wen · 2018 [cited by examiner]
US 10073938B2 · Arunagiri · 2018 [cited by examiner]
US 10819682B1 · Deepak · 2020 [cited by examiner]
US 10984158B1 · Wen · 2021 [cited by examiner]
US 20030093764A1 · Devins · 2003 [cited by examiner]
US 20090222777A1 · Shen · 2009 [cited by examiner]
US 20110096506A1 · Huang · 2011 [cited by examiner]
US 20120084759A1 · Candea · 2012 [cited by examiner]
US 20120136635A1 · Hung · 2012 [cited by examiner]
US 20120278675A1 · Qiang · 2012 [cited by examiner]
US 20120311121A1 · Shafrir · 2012 [cited by examiner]
US 20130091382A1 · Segall · 2013 [cited by examiner]
US 20140334321A1 · Sanivsky · 2014 [cited by examiner]
US 20150128267A1 · Gupta · 2015 [cited by examiner]
US 20160285992A1 · Katsev · 2016 [cited by examiner]
US 20160378646A1 · Zare · 2016 [cited by examiner]
US 20190340327A1 · Ghosh · 2019 [cited by examiner]
US 20190370158A1 · Rivoir · 2019 [cited by examiner]
US 20200104443A1 · Biswas · 2020 [cited by examiner]
US 20210067453A1 · Cui · 2021 [cited by examiner]
US 20210204152A1 · Vasudevan · 2021 [cited by examiner]
US 20220207210A1 · Wen · 2022 [cited by examiner]
Callanan et al. (“Compiler-Assisted Software Verification Using Plug-Ins”, IEEE, 2006, pp. 1-8) (Year: 2006). [cited by examiner]
Gorsky et al. (Orlando Tools: Supporting High-performance Computing in Distributed Environments, 2020, IEEE, pp. 1-6) (Year: 2020). [cited by examiner]
Hall et al. (Secure ASIC Architecture for Optimized Utilization of a Trusted Supply Chain for Common Architecture A&D Applications , 2017, GlobalFoundries, pp. 492-495) (Year: 2017). [cited by examiner]