IP Library › Granted Patent US 12,399,716
Granted Patent B2
US 12,399,716 · App. 18/625,903 · Granted Aug 26, 2025

Inline data inspection for workload simplification

Inventors: Jeffrey Michael Pool (Durham, NC); Andrew Kerr (San Francisco, CA); John Tran (Denver, CO); Ming Y. Siu (Santa Clara, CA); Stuart Oberman (Sunnyvale, CA)
Assignee: NVIDIA Corporation
G06F9/30043G06F9/3001G06F9/30021G06F9/30094G06F9/30145G06F9/30098G06N20/00
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,399,716
App. No.
18/625,903
Granted
Aug 26, 2025
Kind
B2
Abstract

A method, computer readable medium, and processor are described herein for inline data inspection by using a decoder to decode a load instruction, including a signal to cause a circuit in a processor to indicate whether data loaded by a load instruction exceeds a threshold value. Moreover, an indication of whether data loaded by a load instruction exceeds a threshold value may be stored.

Claims (28)

1. A processor, comprising:

a load/store circuit to load stored data indicated by a load instruction; and

an inspection circuit to indicate to the load/store circuit whether the stored data to be loaded by the load instruction equals zero.

2. The processor of claim 1 , wherein the inspection circuit is to transmit the stored data and a predicate value to the load/store circuit, wherein the predicate value is asserted when the stored data equals zero and is negated when the stored data does not equal zero.

3. The processor of claim 1 , wherein the load/store circuit is to store the stored data in a register specified by the load instruction.

4. The processor of claim 1 , wherein the load/store circuit is to discard the stored data based, at least in part, on a predicate signal.

5. The processor of claim 1 , wherein the stored data comprises two or more operands of an arithmetic operation.

6. The processor of claim 1 , wherein a branch instruction follows the load instruction in a sequence of instructions by the processor and a predicate signal controls execution of the branch instruction.

7. The processor of claim 1 , wherein a portion of instructions after the load instruction are not executed when the stored data equals zero.

8. A method, comprising:

using a load/store circuit to load stored data indicated by a load instruction; and

using an inspection circuit to indicate to the load/store circuit whether the stored data to be loaded by the load instruction equals zero.

9. The method of claim 8 , wherein decoding of the load instruction causes the inspection circuit to compare the stored data with zero.

10. The method of claim 8 , further comprising:

using a functional circuit to discard the stored data when the stored data equals zero.

11. The method of claim 8 , further comprising:

executing a second instruction that follows the load instruction in a sequence of instructions based at least in part on the indication by the inspection circuit.

12. The method of claim 8 , wherein the indication by the inspection circuit is through a signal used to calculate a predicate value.

13. The method of claim 8 , wherein a predicate value changes execution of one or more instructions after the load instruction, the predicate value is asserted when the stored data equals zero and is negated when the stored data does not equal zero.

14. The method of claim 8 , wherein the stored data is compared with a non-zero threshold value indicated by a second load instruction.

15. A system, comprising:

a load/store circuit to load stored data indicated by a load instruction; and

an inspection circuit to indicate to the load/store circuit whether the stored data to be loaded by the load instruction equals zero.

16. The system of claim 15 , wherein the inspection circuit is to transmit the stored data and a predicate value to the load/store circuit, wherein the predicate value is asserted when the stored data equals zero and is negated when the stored data does not equal zero.

17. The system of claim 15 , wherein the load/store circuit is to discard the stored data based, at least in part, on a predicate signal.

18. The system of claim 15 , wherein the stored data comprises one or more portions representing one or more values, wherein a predicate value is shared among the one or more values.

19. The system of claim 15 , wherein a branch instruction follows the load instruction in a sequence of instructions by the system and a predicate signal controls execution of the branch instruction.

20. The system of claim 15 , wherein the inspection circuit is to indicate to the load/store circuit whether the stored data to be loaded by the load instruction equals a threshold value determined by one or more neural networks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2024
From: POOL, JEFFREY MICHAEL; KERR, ANDREW; TRAN, JOHN; SIU, MING Y.; OBERMAN, STUART
To: NVIDIA CORPORATION
Reel/Frame 066995/0847 →
Continuity (4)
Division 18112923 · Feb 22, 2023
Continuation 16708261 · Dec 9, 2019
Continuation 15693345 · Aug 31, 2017
Related Publication 20240248718A1 · Jul 25, 2024
References Cited (37)
US 5377336A · Eickemeyer et al. · 1994 [cited by applicant]
US 5751983A · Abramson et al. · 1998 [cited by applicant]
US 6173366B1 · Thayer et al. · 2001 [cited by applicant]
US 7515761B2 · Takakura et al. · 2009 [cited by applicant]
US 9182959B2 · Gonion · 2015 [cited by applicant]
US 9298456B2 · Gonion · 2016 [cited by applicant]
US 9858073B2 · Maloney · 2018 [cited by applicant]
US 11392376B2 · Liu · 2022 [cited by examiner]
US 11663001B2 · Sen · 2023 [cited by examiner]
US 11714652B2 · Kalamatianos · 2023 [cited by examiner]
US 20040193849A1 · Dundas · 2004 [cited by applicant]
US 20040205326A1 · Sindagi et al. · 2004 [cited by applicant]
US 20050198054A1 · Sankaran · 2005 [cited by applicant]
US 20060106986A1 · Bacon et al. · 2006 [cited by applicant]
US 20100088257A1 · Lu et al. · 2010 [cited by applicant]
US 20110047360A1 · Maloney · 2011 [cited by applicant]
US 20130326200A1 · Kleen et al. · 2013 [cited by applicant]
US 20170243320A1 · Gruber et al. · 2017 [cited by applicant]
US 20180107482A1 · Schlanger et al. · 2018 [cited by applicant]
US 20200159529A1 · Sen · 2020 [cited by examiner]
US 20210326144A1 · Raha et al. · 2021 [cited by applicant]
US 20230102690A1 · Srikanth · 2023 [cited by examiner]
CN 102053817A · 2011 [cited by applicant]
CN 103353834A · 2013 [cited by applicant]
CN 104272248A · 2015 [cited by applicant]
CN 105745618A · 2016 [cited by applicant]
EP 2725483A2 · 2014 [cited by applicant]
Albericio et al., “Cnvlutin: Ineffectual-Neuron-Free Deep Neural Network Computing,” IEEE, 2016, 13 pages. [cited by applicant]
Bull, “Introduction to Computer Architecture,” Mar. 2015, retrieved Feb. 10, 2020, www.archer.ac.uk/training/course-material/2015/03/thread_prog/L10-comparchitecture.pdf, 77 pages. [cited by applicant]
Chen et al., “Eyeriss: A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks,” IEEE, 2016, 13 pages. [cited by applicant]
Hastie et al., “Statistical Learning with Sparsity: The Lasso and Generalizations,” Chapman and Hall/CRC, Monographs on Statistics and Applied Probability Series No. 143, May 7, 2015, 362 pages. [cited by applicant]
IEEE, “IEEE Standard 754-2008 (Revision of IEEE Standard 754-1985): IEEE Standard for Floating-Point Arithmetic,” Aug. 29, 2008, 70 pages. [cited by applicant]
Office Action for Chinese Application No. 201810980508.0, mailed Nov. 2, 2022, 12 pages. [cited by applicant]
Stallings, “Computer Organization & Architecture,” Prentice Hall, 7th edition, 2006, 6 pages. [cited by applicant]
Wikipedia, “Test (x86 instruction),” Wikipedia the Free Encyclopedia, https://en.wikipedia.org/wiki/TEST_(x86_instruction), most recent edit May 7, 2019 (retrieved Jul. 24, 2019), 1 page. [cited by applicant]
www.6502.org, “6502 Compare Instructions,” Dec. 1, 2002, retrieved Feb. 10, 2020, www.6502.org/tutorials/compare_instructions.html, 4 pages. [cited by applicant]
Zhu et al., “Specification Language Design in C Program Exact Shape Analysis,” Small Microcomputer Systems, 37 (4): 2016, 6 pages. [cited by applicant]