IP Library Granted Patent US 11,947,979
Granted Patent B2
US 11,947,979 · App. 17/736,399 · Granted Apr 2, 2024

Systems and devices for accessing a state machine

Inventors: Harold B Noyes (Boise, ID); David R. Brown (Lucas, TX); Paul Glendenning (Woodside, CA)
Assignee: Micron Technology, Inc.
G06F9/4498G06F13/126G06F13/1673G06F13/28G06F13/38G06F13/4282
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,947,979
App. No.
17/736,399
Granted
Apr 2, 2024
Kind
B2
Abstract

A device, includes an instruction buffer. The instruction buffer is configured to store instructions related to at least a portion of a data stream to be analyzed by a state machine engine as the device. The state machine engine includes configurable elements configured to analyze the at least a portion of a data stream and to selectively output the result of the analysis. Additionally, the instruction buffer is configured to receive the indications as part of a direct memory access (DMA) transfer.

Claims (33)

1. A system, comprising:

a processor;

a plurality of devices arranged in a rank; and

a direct memory access (DMA) controller coupled to the processor and the plurality of devices, wherein the processor is configured to determine variable data length portions of a data stream for transfer between the DMA controller and at least one device of the plurality of devices and structure DMA transfers between the DMA controller and the at least one device of the plurality of devices as having variable data lengths based on the variable data length portions of the data stream, wherein the processor is configured to structure a size of DMA transfers from the plurality of devices to the DMA controller as corresponding to a greatest buffer byte count received from the plurality of devices.

2. The system of claim 1 , wherein the at least one device of the plurality of devices comprises a buffer configured to store at least a portion of the data stream, wherein the at least one device of the plurality of devices is configured to accept writes to a fixed address on a DDR bus and place the at least a portion of the data stream into a translated variable location in the buffer.

3. The system of claim 2 , wherein the at least one device of the plurality of devices is configured to accept writes to a second fixed address on the DDR bus and place at least a second portion of the data stream into a second translated variable location in the buffer, wherein the second translated variable location corresponds to a second at least one device of the plurality of devices.

4. The system of claim 3 , wherein the buffer comprises an input buffer configured to be divided into pieces that correspond to the at least one device of the plurality of devices and the second at least one device of the plurality of devices, respectively.

5. The system of claim 4 , wherein the input buffer is configured to store the at least a portion of the data stream in a first piece of the input buffer and to store the at least a second portion of the data stream in a second piece of the input buffer.

6. The system of claim 2 , comprising a second at least one device of the plurality of devices comprising a second buffer, wherein the at least one device of the plurality of devices and the second at least one device of the plurality of devices are configured to provide a respective count of a number of bytes in their respective buffer to the DMA controller as its buffer count.

7. The system of claim 6 , wherein the at least one device of the plurality of devices and the second at least one device of the plurality of devices are configured to output all zeroes as end padding zero data for any subsequent DDR DMA read cycles when the buffer of the at least one device or the buffer of the second at least one device is empty.

8. The system of claim 7 , wherein the DMA controller is configured to recognize and separate the end padding zero data received from the at least one device of the plurality of devices or the at least one device of the plurality of devices.

9. A system, comprising:

a plurality of devices arranged in a rank, wherein a first device of the plurality of devices comprises a first buffer, wherein a second device of the plurality of devices comprises a second buffer; and

a processor coupled to the plurality of devices, wherein the processor is configured to:

read a buffer byte count of each of the first buffer and the second buffer from each of the first device and the second device;

determine which byte count has a greatest value;

set a burst boundary value by rounding up the byte count having the greatest value to a nearest byte value greater than the byte count having the greatest value when the byte count having the greatest value does not equal a byte value having a set interval; and

set the burst boundary value as the byte value of the set interval when the burst boundary value does equal the byte value of the set interval.

10. The system of claim 9 , comprising a direct memory access (DMA) controller coupled to the processor and the plurality of devices, wherein the processor is configured to set a read operation of the DMA controller to the burst boundary value.

11. The system of claim 10 , wherein the DMA controller is configured to perform the read operation of a number of bits in each of the first buffer and the second buffer equal to the burst boundary value.

12. The system of claim 11 , wherein the first device when in operation outputs first dummy bits in conjunction with the read operation when a number of data bits in the first buffer is less than the burst boundary value.

13. The system of claim 12 , wherein the first device when in operation outputs a determined number of the first dummy bits as a difference between the number of data bits in the first buffer and the burst boundary value.

14. The system of claim 13 , wherein the processor is configured to separate valid data from the first dummy bits based upon the buffer byte count from the first buffer.

15. The system of claim 13 , wherein the second device when in operation outputs second dummy bits in conjunction with the read operation when a second number of data bits in the second buffer is less than the burst boundary value.

16. The system of claim 15 , wherein the second device when in operation outputs a second determined number of the second dummy bits as a difference between the second number of data bits in the second buffer and the burst boundary value.

17. The system of claim 16 , wherein the processor is configured to separate valid data from the second dummy bits based upon the buffer byte count from the first buffer.

18. The system of claim 9 , wherein the first buffer when in operation stores data related a state of operation of the first device.

19. The system of claim 9 , wherein the first buffer when in operation stores data related a result generated by the first device.

20. The system of claim 9 , comprising a state machine engine as the first device.

21. A device, comprising:

a buffer that when in operation stores data related to a state of operation of the device or a result generated by the device; and

a register that when in operation stores a buffer byte count corresponding to a first number of bytes of the data to facilitate a DMA transfer of the data through configuration of a DMA controller to receive DMA transfers having data of a variable lengths based on the buffer byte count, wherein the device outputs dummy bits in conjunction with the DMA transfer when the buffer byte count is lesser than a burst boundary value as a second number of bytes to be transferred in conjunction with the DMA transfer, wherein the device outputs the first number of bytes of the data in conjunction with the DMA transfer when the buffer byte count is equal to the burst boundary value.

22. The device of claim 21 , wherein the device when in operation generates a determined number of dummy bits as the dummy bits as a difference between the buffer byte count and the burst boundary value.

Continuity (4)
Continuation 16525187 · Jul 29, 2019
Continuation 15534978
Provisional Application 62098165 · Dec 30, 2014
Related Publication 20220261257A1 · Aug 18, 2022