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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
D.A. Patterson, J.L. Hennessy, Computer Organization and Design, Fourth Edition: The Hardware/Software Interface (Morgan Kaufmann Publishers Inc., 2008)
H.S. Stone, High-Performance Computer Architecture (Addison-Wesley Publishing Company, 1990)
M.J. Flynn, Some computer organizations and their effectiveness. IEEE Trans. Comput. 21(9), 948–960 (1972)
A. Peleg, U. Weiser, MMX technology extension to the intel architecture. IEEE Micro 16(4), 42–50 (1996)
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)
A. Downton, D. Crookes, Parallel architectures for image processing. Electron. Commun. Eng. J. 10(3), 139–151 (1998)
A.P. Reeves, Parallel computer architectures for image processing. Comput. Vis. Gr. Image Process. 25(1), 68–88 (1984)
H.T. Kung, Why systolic architecture? IEEE Comput. 15(1), 37–46 (1982)
J. MaCanny, Systolic Array Processors (Prentice Hall, 1989)
K.T. Johnson, A.R. Hurson, B. Shirazi, General-purpose systolic arrays. IEEE Comput. 26(11), 20–31 (1993)
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)
K. Sano, Y. Kono, FPGA-based connect6 solver with hardware-accelerated move refinement. Comput. Archit. News 40(5), 4–9 (2012)
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
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
K. Sano, FPGA-based systolic computational-memory array for scalable stencil computations, in High-Performance Computing Using FPGAs (Springer, 2013), pp. 279–304
A.H. Veen, Dataflow machine architecture. ACM Comput. Surv. 18(4), 365–396 (1986)
K. Hwang, F.A. Briggs, Computer Architecture and Parallel Processing (McGraw-Hill, Inc., 1984)
J.B. Dennis, Dataflow supercomputer. IEEE Comput. 13(4), 48–56 (1980)
A.V. Kathail, A multiple processor dataflow machine that supports generalized procedures, in Proceeding of ISCA81, pp. 291–296, May 1981
G.L. Gaudiot, Advanced Dataflow Computing (Prentice Hall, 1991)
J.L. Perterson, Petrinet Theory and the Modeling of Systems (Prentice Hall, 1981)
S. Hauck, A. DeHon, Reconfigurable Computing (Morgan Kaufmann Publishers Inc., 2008)
R. Stephens, A survey of stream processing. Acta Inform. 34(7), 491–541 (1997)
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
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)
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)
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
S. Wolfram, Statistical mechanics of cellular automata. Rev. Mod. Phys. 55(3), 601–644 (1983)
J. von Neumann, A.W. Burks, Theory of Self Reproducing Automata (University of Illinois Press, 1966)
A. Bandyopadhyay et al., Massively parallel computing on an organic molecular layer. Nat. Phys. 6, 369–375 (2010)
D.E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching (Addison Wesley Longman Publishting Co., Inc., Redwood City, CA, USA, 1998)
K.E. Batcher et al., Sorting Networks and Their Applications (Spring Joint Computer Conference, AFIPS, 1968), pp. 307–314
D. Koch et al., FPGA sort, in Proceedings of FPGA (2011), pp. 45–54
J. Casper, K. Olukotun, Hardware acceleration of database operations, in Proceedings of FPGA (2014), pp. 151–160
T. Kohonen, Content-Addressable Memories, vol. 1, Springer Series in Information Sciences (Springer, Berlin Heidelberg, 1987)
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)
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)
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)
A.V. Aho, M.J. Corasick, Efficient string matching: an aid to bibliographic search. Commun. ACM 18(6), 333–340 (1975)
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
R. Baeza-Yates, G.H. Gonnet, A new approach to text searching. Commun. ACM 35(10), 74–82 (1992)
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
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
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
T.F. Smith, M.S. Waterman, Identification of common molecular subsequences. J. Mol. Biol. 147(1), 195–197 (1981)
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)
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
Y. Yamaguchi, T. Maruyama, A. Konagaya, High speed homology search with FPGAs, in Proceedings of Pacific Symposium on Biocomputing (2002), pp. 271–282
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Singapore Pte Ltd.
About this chapter
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)