Skip to main content

Hardware Algorithms

  • Chapter
  • First Online:
Principles and Structures of FPGAs

Abstract

Just implementing with hardware is almost nothing to contribute to achieve high performance. The performance of FPGA computing is depends on how to use efficient hardware algorithms for the target application. This chapter introduces various types of hardware algorithms useful for FPGA implementation. First, pipelining is the most popularly used technique. Recently, it is often automatically formed with HLS design tool. Then, general parallel processing techniques are introduced along Flynn’s classic taxonomy. Systolic algorithms and data-flow models are also classic methods researched in 1970s’ and 1980s’, but they have been practically used after large-scale FPGAs are available for computation. Then, stream processing, simple but powerful framework, is introduced with a practical example. Next, cellular automaton, hardware sorting and pattern matching which are important in network processing a killer application of FPGAs are introduced.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 199.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. D.A. Patterson, J.L. Hennessy, Computer Organization and Design, Fourth Edition: The Hardware/Software Interface (Morgan Kaufmann Publishers Inc., 2008)

    Google Scholar 

  2. H.S. Stone, High-Performance Computer Architecture (Addison-Wesley Publishing Company, 1990)

    Google Scholar 

  3. M.J. Flynn, Some computer organizations and their effectiveness. IEEE Trans. Comput. 21(9), 948–960 (1972)

    Article  Google Scholar 

  4. A. Peleg, U. Weiser, MMX technology extension to the intel architecture. IEEE Micro 16(4), 42–50 (1996)

    Article  Google Scholar 

  5. M. Hassaballah, S. Omran, Y.B. Mahdy, A review of SIMD multimedia extensions and their usage in scientific and engineering applications. Comput. J. 51(6) 630–649 (2008)

    Google Scholar 

  6. A. Downton, D. Crookes, Parallel architectures for image processing. Electron. Commun. Eng. J. 10(3), 139–151 (1998)

    Article  Google Scholar 

  7. A.P. Reeves, Parallel computer architectures for image processing. Comput. Vis. Gr. Image Process. 25(1), 68–88 (1984)

    Article  Google Scholar 

  8. H.T. Kung, Why systolic architecture? IEEE Comput. 15(1), 37–46 (1982)

    Article  Google Scholar 

  9. J. MaCanny, Systolic Array Processors (Prentice Hall, 1989)

    Google Scholar 

  10. K.T. Johnson, A.R. Hurson, B. Shirazi, General-purpose systolic arrays. IEEE Comput. 26(11), 20–31 (1993)

    Article  Google Scholar 

  11. S.-Y. Kung, K.S. Arun, R.J. Gal-Ezer, D.V. Bhaskar Rao, Wavefront array processor: language, architecture, and applications. IEEE Trans. Comput. C-31(11), 1054–1066 (1982)

    Google Scholar 

  12. K. Sano, Y. Kono, FPGA-based connect6 solver with hardware-accelerated move refinement. Comput. Archit. News 40(5), 4–9 (2012)

    Article  Google Scholar 

  13. K. Sano, T. Iizuka, S. Yamamoto, Systolic architecture for computational fluid dynamics on FPGAs, in Proceeding of IEEE Symposium on Field-Programmable Custom Computing Machines (2007), pp. 107–116

    Google Scholar 

  14. K. Sano, W. Luzhou, Y. Hatsuda, T. Iizuka, S. Yamamoto, FPGA-array with bandwidth-reduction mechanism for scalable and power-efficient numerical simulations based on finite difference methods. ACM Trans. Reconfig. Technol. Syst. 3(4), Article No. 21, (2010), https://doi.org/10.1145/1862648.1862651

  15. K. Sano, FPGA-based systolic computational-memory array for scalable stencil computations, in High-Performance Computing Using FPGAs (Springer, 2013), pp. 279–304

    Google Scholar 

  16. A.H. Veen, Dataflow machine architecture. ACM Comput. Surv. 18(4), 365–396 (1986)

    Article  Google Scholar 

  17. K. Hwang, F.A. Briggs, Computer Architecture and Parallel Processing (McGraw-Hill, Inc., 1984)

    Google Scholar 

  18. J.B. Dennis, Dataflow supercomputer. IEEE Comput. 13(4), 48–56 (1980)

    Article  Google Scholar 

  19. A.V. Kathail, A multiple processor dataflow machine that supports generalized procedures, in Proceeding of ISCA81, pp. 291–296, May 1981

    Google Scholar 

  20. G.L. Gaudiot, Advanced Dataflow Computing (Prentice Hall, 1991)

    Google Scholar 

  21. J.L. Perterson, Petrinet Theory and the Modeling of Systems (Prentice Hall, 1981)

    Google Scholar 

  22. S. Hauck, A. DeHon, Reconfigurable Computing (Morgan Kaufmann Publishers Inc., 2008)

    Google Scholar 

  23. R. Stephens, A survey of stream processing. Acta Inform. 34(7), 491–541 (1997)

    Article  MathSciNet  Google Scholar 

  24. A. Das, W.J. Dally, P. Mattson, Compiling for stream processing, in Proceeding International Conference on Parallel Architectures and Compilation Techniques (2006), pp. 33–42

    Google Scholar 

  25. K. Sano, Y. Hatsuda, S. Yamamoto, Multi-FPGA accelerator for scalable stencil computation with constant memory-bandwidth. IEEE Trans. Parallel Distrib. Syst. 25(3), 695–705 (2014)

    Article  Google Scholar 

  26. K. Sano, R. Chiba, T. Ueno, H. Suzuki, R. Ito, S. Yamamoto, FPGA-based custom computing architecture for large-scale fluid simulation with building cube method. Comput. Archit. News 42(4), 45–50 (2014)

    Article  Google Scholar 

  27. J. von Neumann, The general and logical theory of automata, in Cerebral Mechanisms in Behavior? The Hixon Symposium ed. by L.A. Jeffress (Wiley, New York, 1951), pp. 1–31

    Google Scholar 

  28. S. Wolfram, Statistical mechanics of cellular automata. Rev. Mod. Phys. 55(3), 601–644 (1983)

    Article  MathSciNet  Google Scholar 

  29. J. von Neumann, A.W. Burks, Theory of Self Reproducing Automata (University of Illinois Press, 1966)

    Google Scholar 

  30. A. Bandyopadhyay et al., Massively parallel computing on an organic molecular layer. Nat. Phys. 6, 369–375 (2010)

    Article  Google Scholar 

  31. D.E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching (Addison Wesley Longman Publishting Co., Inc., Redwood City, CA, USA, 1998)

    Google Scholar 

  32. K.E. Batcher et al., Sorting Networks and Their Applications (Spring Joint Computer Conference, AFIPS, 1968), pp. 307–314

    Google Scholar 

  33. D. Koch et al., FPGA sort, in Proceedings of FPGA (2011), pp. 45–54

    Google Scholar 

  34. J. Casper, K. Olukotun, Hardware acceleration of database operations, in Proceedings of FPGA (2014), pp. 151–160

    Google Scholar 

  35. T. Kohonen, Content-Addressable Memories, vol. 1, Springer Series in Information Sciences (Springer, Berlin Heidelberg, 1987)

    MATH  Google Scholar 

  36. H. Nakahara, T. Sasao, M. Matsuura, A regular expression matching circuit: decomposed non-deterministic realization with prefix sharing and multi-character transition. Microprocess. Microsyst. 36(8), 644–664 (2012)

    Article  Google Scholar 

  37. H. Nakahara, T. Sasao, M. Matsuura, H. Iwamoto, Y. Terao, A memory-based IPv6 lookup architecture using parallel index generation units. IEICE Trans. Inf. Syst. E98-D(2), 262–271 (2015)

    Google Scholar 

  38. H. Nakahara, T. Sasao, M. Matsuura, A virus scanning engine using an MPU and an IGU based on row-shift decomposition. IEICE Trans. Inf. Syst. E96-D(8), 1667–1675 (2013)

    Google Scholar 

  39. A.V. Aho, M.J. Corasick, Efficient string matching: an aid to bibliographic search. Commun. ACM 18(6), 333–340 (1975)

    Article  MathSciNet  Google Scholar 

  40. L. Tan, T. Sherwood, A high throughput string matching architecture for intrusion detection and prevention, in Proceedings of 32nd Int’l Symposium on Computer Architecture (ISCA 2005) (2005), pp. 112–122

    Google Scholar 

  41. R. Baeza-Yates, G.H. Gonnet, A new approach to text searching. Commun. ACM 35(10), 74–82 (1992)

    Google Scholar 

  42. R. Sidhu, V.K. Prasanna, Fast regular expression matching using FPGA, in Proceedings of the 9th Annual IEEE Symposium on Field-programmable Custom Computing Machines (FCCM 2001) (2001), pp. 227–238

    Google Scholar 

  43. C. Lin, C. Huang, C. Jiang, S. Chang, Optimization of regular expression pattern matching circuits on FPGA, in Proceeding of the Conference on Design, Automation and Test in Europe (DATE 2006) (2006), pp. 12–17

    Google Scholar 

  44. J. Bispo, I. Sourdis, J.M.P. Cardoso, S. Vassiliadis, Regular expression matching for reconfigurable packet inspection, in Proceeding IEEE International Conference on Field Programmable Technology (FPT 2006) (2006), pp. 119–126

    Google Scholar 

  45. T.F. Smith, M.S. Waterman, Identification of common molecular subsequences. J. Mol. Biol. 147(1), 195–197 (1981)

    Article  Google Scholar 

  46. S.B. Needleman, C.D. Wunsch, A general method applicable to the search for similarities in the Amino-Acid sequence of two Proteins. J. Mol. Biol. 48, 443–453 (1970)

    Article  Google Scholar 

  47. L.J. Guibas, H.T. Kung, C.D. Thompson, Direct VLSI implementation of combinatorial algorithms, in Proceedings of the Conference VLSI: Architecture, Design, Fabrication (1979), pp. 509–525

    Google Scholar 

  48. Y. Yamaguchi, T. Maruyama, A. Konagaya, High speed homology search with FPGAs, in Proceedings of Pacific Symposium on Biocomputing (2002), pp. 271–282

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kentaro Sano .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Singapore Pte Ltd.

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Sano, K., Nakahara, H. (2018). Hardware Algorithms. In: Amano, H. (eds) Principles and Structures of FPGAs. Springer, Singapore. https://doi.org/10.1007/978-981-13-0824-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-981-13-0824-6_6

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-13-0823-9

  • Online ISBN: 978-981-13-0824-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics