IP Library › Granted Patent US 12,204,882
Granted Patent B2
US 12,204,882 · App. 18/089,413 · Granted Jan 21, 2025

Methodology for constructing statically reconfigurable soft-processor cores for hardware acceleration of algorithms

Inventors: Mikhail Kaiky (Minsk, BY); Alexander Ivaniuk (Minsk, BY); Siarhei Zalivaka (Minsk, BY)
Assignee: SK hynix Inc.
G06F8/4435G06F8/43
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,882
App. No.
18/089,413
Granted
Jan 21, 2025
Kind
B2
Abstract

A system and method for building a hardware accelerator. The system has at least one processor including at least one core configured to perform based on machine code an operation for a specific algorithm of the hardware accelerator. The system has a code analyzer for reconfiguring the at least one processor to execute with the machine code the specific algorithm. The code analyzer is configured to repeatedly execute at least one of a) a static analysis on a software program for performance of the specific algorithm and b) a dynamic analysis regarding the machine code on different input sets of data. The code analyzer is configured to analyze results of the static analysis or the dynamic analysis to determine a configuration of the machine code for execution of the specific algorithm on the hardware accelerator.

Claims (34)

1. A system for building a hardware accelerator, comprising:

at least one reconfigurable processor including at least one core configured to perform based on machine code an operation for a specific algorithm of the hardware accelerator; and

a code analyzer for reconfiguring the at least one reconfigurable processor to execute with the machine code for the specific algorithm,

wherein the code analyzer is configured to:

repeatedly execute at least one of a) a static analysis on a software program for performance of the specific algorithm and b) a dynamic analysis regarding the machine code on different input sets of data, and

analyze results of the static analysis or the dynamic analysis to determine a configuration of the machine code for execution of the specific algorithm on the hardware accelerator that eliminates unused resources from the at least one reconfigurable processor.

2. The system of claim 1 , wherein the code analyzer is configured to:

analyse a) the software program to determine used resources needed to execute the specific algorithm and b) the machine code to determine the used resources under the different input sets of data to the specific algorithm;

determine the configuration of the machine code without the unused resources for the execution of the specific algorithm on the hardware accelerator; and

reconfigure the at least one reconfigurable processor to execute the specific algorithm.

3. The system of claim 1 , wherein the code analyzer is configured to:

eliminate unused program instructions from the at least one reconfigurable processor.

4. The system of claim 1 , wherein the code analyzer is configured to:

eliminate unused registers from the at least one reconfigurable processor.

5. The system of claim 1 , wherein the code analyzer is configured to repeat dynamic analysis of the machine code for the different input sets of data used by the hardware accelerator in performance of the specific algorithm.

6. The system of claim 5 , wherein the different input sets of data comprise a range of ways for the input data to be supplied the hardware accelerator.

7. The system of claim 6 , wherein the range of ways for the input data to be supplied the hardware accelerator comprise all ways for the input data to be supplied the hardware accelerator.

8. The system of claim 1 , wherein the code analyzer is configured to reduce a width of a command word used by the at least one reconfigurable processor to execute the specific algorithm.

9. The system of claim 8 , wherein the code analyzer is configured to reduce a number of stored command memory bits needed to perform the specific algorithm.

10. The system of claim 9 , wherein the reduced width of the command word and the reduced number of the stored command memory bits result in an increased operating clock speed of the at least one reconfigurable processor.

11. A method for building a hardware accelerator, comprising:

developing and compiling a software program for a reconfigurable processor to perform a specific algorithm on the hardware accelerator;

repeatedly analysing using a code analyzer at least one of a) the software program to determine used resources needed to execute the specific algorithm and b) the used resources under different input sets of data the the specific algorithm;

with the code analyzer, eliminating unused resources from the reconfigurable processor and determining a configuration of the machine code with the unused resources for execution of the specific algorithm on the hardware accelerator; and

reconfiguring the reconfigurable processor to execute the specific algorithm.

12. The method of claim 11 , wherein the eliminating unused resources from the reconfigurable processor comprises eliminating unused program instructions from the reconfigurable processor.

13. The method of claim 11 , wherein the eliminating unused resources from the reconfigurable processor comprises eliminating unused registers from the reconfigurable processor.

14. The method of claim 11 , wherein the repeated analyzing comprises: repeating dynamic analysis of machine code for the different input sets of the data used by the hardware accelerator in performance of the specific algorithm.

15. The method of claim 14 , wherein the different input sets of the data comprise a range of ways for the input data to be supplied the hardware accelerator.

16. The method of claim 15 , wherein the range of ways for the input data to be supplied the hardware accelerator comprise all ways for the input data to be supplied the hardware accelerator.

17. The method of claim 11 , wherein the reconfiguring the reconfigurable processor comprises reducing a width of a command word used by the reconfigurable processor.

18. The method of claim 17 , wherein the reconfiguring the reconfigurable processor comprises reducing a number of stored command memory bits needed to perform the specific algorithm.

19. The method of claim 18 , wherein the reducing the width of a command word and the reducing the number of stored command memory bits increase an operating clock speed of the reconfigurable processor as compared to a processor without these reductions.

20. The method of claim 11 , further comprising verifying that the reconfigurable processor performs the specific algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2022
From: KAIKY, MIKHAIL; IVANIUK, ALEXANDER; ZALIVAKA, SIARHEI
To: SK HYNIX INC.
Reel/Frame 062215/0193 →
Continuity (1)
Related Publication 20240211223A1 · Jun 27, 2024
References Cited (17)
US 7278137B1 · Fuhler · 2007 [cited by examiner]
US 8327126B2 · Bell, Jr. · 2012 [cited by examiner]
US 8612950B2 · Shpeisman · 2013 [cited by examiner]
US 10719464B1 · Jain et al. · 2020 [cited by applicant]
US 10768913B2 · Howlett · 2020 [cited by examiner]
US 11126433B2 · Burger et al. · 2021 [cited by applicant]
US 20130152057A1 · Ke · 2013 [cited by examiner]
US 20220137986A1 · Teh et al. · 2022 [cited by applicant]
Lance A. Glasser et al., The Design and Analysis of VLSI Circuits, 1985, Addison-Wesley Publishing Company. [cited by applicant]
Bryon Moyer et al., Chapter 13 Hardware Accelerators, Real World Multicore Embedded Systems, 2013, Elsevier Inc. [cited by applicant]
Vivado Design Suite User Guide: Release Notes, Installation, and Licensing (UG973) (v2020.2), Feb. 3, 2021, Xilinx. [cited by applicant]
Nexys 4™ FPGA Board Reference Manual, Apr. 11, 2016, Digilent. [cited by applicant]
7 Series Product Selection Guide, 2014, Xilinx. [cited by applicant]
Andrew Waterman et al., The RISC-V Instruction Set Manual, vol. I: Unprivileged ISA, Document Version 20191213, Dec. 13, 2019. [cited by applicant]
RISC-V Options Using the GNU Compiler Collection (GCC) Available: https://gcc.gnu.org/onlinedocs/gcc/RISC-V-Options.html#RISC-V-Options. [cited by applicant]
Ashok K. Agrawala et al., Foundations of Microprogramming, Architecture, Software, and Applications 1st Edition, Jan. 1, 1976, Academic Press, Inc. Available: https://archive.org/details/foundations-of-microprogramming-… [cited by applicant]
Avdeev N. et al., Design and verification of SSD controllers, Information Technologies and Systems 2021 (ITS 2021), Nov. 24, 2021, pp. 8-16, Minsk, Belarus. [cited by applicant]