IP Library › Granted Patent US 11,914,500
Granted Patent B2
US 11,914,500 · App. 17/591,888 · Granted Feb 27, 2024

Debugging of accelerator circuit for mathematical operations using packet limit breakpoint

Inventors: Liran Fishel (Raanana, IL); Danny Gal (Hod-Hasharon, IL); Nir Nissan (Atlit, IL)
Assignee: APPLE INC.
G06F11/3636G06F9/3004G06F9/30036G06F9/30145G06F9/321G06F11/3656
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 11,914,500
App. No.
17/591,888
Granted
Feb 27, 2024
Kind
B2
Abstract

Embodiments of the present disclosure relate to debugging of an accelerator circuit using a packet limit breakpoint. A vector circuit reads a subset of instruction packets from an instruction memory and receives a portion of input data from a data memory corresponding to the subset of instruction packets. The vector circuit executes a set of vector operations in accordance with multiple instruction packets from the subset using data from the received portion of input data identified in the multiple instruction packets to generate output data. A program counter control circuit coupled to the instruction memory triggers a breakpoint in a program stored in the instruction memory causing the accelerator circuit to stop executing remaining instruction packets in the program following the multiple instruction packets responsive to a number of instruction packets executed in the program from a time instant of an event reaching a predetermined number.

Claims (47)

1. An accelerator circuit comprising:

an instruction memory storing a program that includes a plurality of instruction packets;

a data memory storing input data;

a vector circuit coupled to the instruction memory and the data memory, the vector circuit configured to:

read a subset of the plurality of instruction packets from the instruction memory,

receive a portion of the input data from the data memory corresponding to the subset of the plurality of instruction packets, and

execute a set of vector operations in accordance with two or more of the plurality of instruction packets from the subset using data from the received portion of the input data identified in the two or more of the plurality of instruction packets to generate output data; and

a program counter control circuit coupled to the instruction memory, the program counter control circuit configured to trigger a breakpoint in the program causing the accelerator circuit to stop executing remaining instruction packets in the program following the two or more of the plurality of instruction packets responsive to a number of instruction packets executed in the program from a time instant of an event reaching a predetermined number.

2. The accelerator circuit of claim 1 , wherein each of the plurality of instruction packets comprises a respective plurality of instructions executed in parallel at the accelerator circuit.

3. The accelerator circuit of claim 1 , wherein debugging of a state of the accelerator circuit is performed by a debugging circuit coupled to the accelerator circuit responsive to the triggering of the breakpoint.

4. The accelerator circuit of claim 3 , wherein the state of the accelerator circuit is evaluated via an advanced extensible interface (AXI) slave port of the accelerator circuit.

5. The accelerator circuit of claim 1 , wherein the program counter control circuit is further configured to set the predetermined number of instruction packets in one or more registers of the program counter control circuit.

6. The accelerator circuit of claim 1 , wherein the event comprises a software reset of the accelerator circuit.

7. The accelerator circuit of claim 6 , wherein the program counter control circuit is further configured to trigger the breakpoint responsive to the number of instruction packets executed in the program after the software reset of the accelerator circuit being equal to a number of instruction packets in a packet limit register of the program counter control circuit.

8. The accelerator circuit of claim 1 , wherein the event comprises resetting a packet count register of the program counter control circuit.

9. The accelerator circuit of claim 8 , wherein the program counter control circuit is further configured to trigger the breakpoint responsive to the number of instruction packets executed in the program after the resetting of the packet count register being equal to a number of instruction packets in a packet limit register of the program counter control circuit.

10. The accelerator circuit of claim 1 , wherein the accelerator circuit is integrated into an image signal processor circuit or a neural processor circuit.

11. A method of operating an accelerator circuit, comprising:

storing a program that includes a plurality of instruction packets in an instruction memory of the accelerator circuit;

reading a subset of the plurality of instruction packets from the instruction memory by a vector circuit of the accelerator circuit coupled to the instruction memory;

receiving, at the vector circuit, a portion of input data from a data memory of the accelerator circuit, the portion of the input data corresponding to the subset of the plurality of instruction packets;

executing, by the vector circuit, a set of vector operations in accordance with two or more of the plurality of instruction packets from the subset using data from the received portion of the input data identified in the two or more of the plurality of instruction packets to generate output data; and

triggering, by a program counter control circuit of the accelerator circuit coupled to the instruction memory, a breakpoint in the program causing the accelerator circuit to stop executing remaining instruction packets in the program following the two or more of the plurality of instruction packets responsive to a number of instruction packets executed in the program from a time instant of an event reaching a predetermined number.

12. The method of claim 11 , wherein each of the plurality of instruction packets comprises a respective plurality of instructions executed in parallel at the accelerator circuit.

13. The method of claim 11 , further comprising:

performing debugging of a state of the accelerator circuit by a debugging circuit coupled to the accelerator circuit responsive to the triggering of the breakpoint.

14. The method of claim 13 , further comprising:

evaluating the state of the accelerator circuit via an advanced extensible interface (AXI) slave port of the accelerator circuit.

15. The method of claim 11 , wherein the event comprises a software reset of the accelerator circuit.

16. The method of claim 15 , further comprising:

triggering, by the program counter control circuit, the breakpoint responsive to the number of instruction packets executed in the program after the software reset of the accelerator circuit being equal to a number of instruction packets in a packet limit register of the program counter control circuit.

17. The method of claim 11 , wherein the event comprises resetting of a packet count register of the program counter control circuit.

18. The method of claim 17 , further comprising:

triggering, by the program counter control circuit, the breakpoint responsive to the number of instruction packets executed in the program after the resetting of the packet count register being equal to a number of instruction packets in a packet limit register of the program counter control circuit.

19. An electronic device, comprising:

a system memory storing input data; and

an accelerator circuit coupled to the system memory, the accelerator circuit including:

a data memory configured to receive and store the input data from the system memory,

an instruction memory storing a program that includes a plurality of instruction packets,

a vector circuit coupled to the instruction memory and the data memory, the vector circuit configured to:

read at least a subset of the plurality of instruction packets from the instruction memory,

receive at least a portion of the input data from the data memory corresponding to the subset of plurality of instruction packets, and

execute a set of vector operations in accordance with two or more of the plurality of instruction packets from the subset using data from the received portion of the input data identified in the two or more of the plurality of instruction packets to generate output data, and

a program counter control circuit coupled to the instruction memory, the program counter control circuit configured to trigger a breakpoint in the program causing the accelerator circuit to stop executing remaining instruction packets in the program following the two or more of the plurality of instruction packets responsive to a number of instruction packets executed in the program from a time instant of an event reaching a predetermined number.

20. The electronic device of claim 19 , wherein the program counter control circuit is further configured to:

trigger the breakpoint responsive to the number of instruction packets executed in the program after a software reset of the accelerator circuit or resetting of a packet count register of the program counter control circuit being equal to a number of instruction packets in a packet limit register of the program counter control circuit, and

each of the plurality of instruction packets comprises a respective plurality of instructions executed in parallel at the accelerator circuit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2022
From: FISHEL, LIRAN; GAL, DANNY; NISSAN, NIR
To: APPLE INC.
Reel/Frame 058878/0049 →
Continuity (1)
Related Publication 20230281106A1 · Sep 7, 2023