Abstract
Memories play an essential role in computer systems as they store and retrieve data that may include instructions required for system operation. In the case of an assembler, the memory stores instructions such as the Opcode table (OPTAB), which contains the instructions in the form of machine language to implement the desired program. A search operation is required for the Opcode table to obtain the desired instruction. To improve the speed of search operations and overall system efficiency, there are various search operation algorithms and techniques available, including linear, binary, and hashing algorithms. However, they all share one critical aspect which is they rely on software-based techniques that counter difficulties with the von Neumann Model. In this paper, we introduce a hardware-based approach to enhance the search operation for OPTAB in assemblers, which is usually performed using software-based techniques. Our proposed method involves replacing the conventional Random Access Memory (RAM) with Binary Content-Addressable Memory (BiCAM), which enables parallel search operation within a single clock cycle. To demonstrate the effectiveness of our approach, we utilize the BZK.SAU.FPGA assembler as a case study. We provide a comparison of our proposed method with the RAM-based searching algorithm used in BZK.SAU.FPGA assembler. Time complexity analysis and a comparison of resource utilization and power efficiency are provided. Our results showed that the proposed method has a fixed time complexity of O(1) under all conditions, regardless of memory size or input size. An increase in both resource utilization and power efficiency has been observed in the BiCAM due to its hardware structure. However, it could still be considered a reasonable trade-off for time-sensitive applications.
Similar content being viewed by others
Availability of Data and Materials
The datasets generated during and/or analyzed during the current study are available from the corresponding author on reasonable request.
References
Streib TJ (2011) Guide to assembly language a concise introduction. Springer, London
Austerlitz H (2003) Data acquisition techniques using PCs. Elsevier Science, USA
Fortier PJ, Michel EH (2003) Computer systems performance evaluation and prediction. Elsevier Science, USA
Page A, Waters D (2016) Complete computer science for Cambridge IGCSERG and O level revision guide. Oxford University Press, UK
Jiang W, Prasanna VK (2009) Large-scale wire-speed packet classification on FPGAs. In: Symposium on Field Programmable Gate Arrays, pp 219–228. https://doi.org/10.1145/1508128.1508162
Jiang W, Prasanna VK (2008) Parallel IP lookup using multiple SRAMbased pipelines. In: IEEE International Symposium on Parallel and Distributed Processing, pp 1–14. https://doi.org/10.1109/IPDPS.2008.4536259
Ullah Z, Jaiswal MK, Chan YC, Cheung RCC (2012) FPGA Implementation of SRAM-based Ternary Content Addressable Memory. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum, pp 383–389. https://doi.org/10.1109/IPDPSW.2012.47
Fan X, Ghonem A, Gemmeke T (2018) Content-addressable memory-overview and outlook of an enabler for modern day applications. In: ANALOG 2018, 16th GMM/ ITG-Symposium, pp 1–6
Pagiamtzis K, Sheikholeslami A (2006) Content-addressable memory (CAM) circuits and architectures: a tutorial and survey. IEEE J Solid-State Circuits 41(3):712–727. https://doi.org/10.1109/JSSC.2005.864128
Lin CS, Chang JC, Liu BD (2003) A low-power precomputation-based fully parallel content-addressable memory. IEEE J Solid-State Circuits 38(4):654–662. https://doi.org/10.1109/JSSC.2003.809515
Boutros A, Betz V (2021) FPGA architecture: principles and progression. IEEE Circuits Syst Mag 21(2):4–29. https://doi.org/10.1109/MCAS.2021.3071607
Kasivinayagam G, Skanda R, Burli AG, Jadon S, Sidhu R (2022) Hardware description language enhancements for high level synthesis of hardware accelerators. Adv Computi Data Sci 1613:1–12. https://doi.org/10.1007/978-3-031-12638-3_1
Salomon D (1992) Assemblers and loaders. Ellis Horwood, USA
Oztekin H, Temurtas F, Gulbag A (2011) BZK.SAU.FPGA10.1: A modular approach to FPGA-based micro computer architecture design for educational purpose.Comput Appl Eng Education 22(2):272–282.https://doi.org/10.1002/cae.20553
Mashimo S, Fujita A, Matsuo R, Akaki S et al (2019) An Open Source FPGA-Optimized Out-of-Order RISC-V Soft Processor. International Conference on Field- Programmable Technology (ICFPT) 2019:63–71. https://doi.org/10.1109/ICFPT47387.2019.00016
Mazurek P (2020) BOSON - Application-specific instruction set processor (ASIP) for educational purposes. In: 2020 16th International Conference on Control, Automation, Robotics and Vision (ICARCV) 1323–1328. https://doi.org/10.1109/ICARCV50220.2020. 9305396
McGrew T, Schonauer E (2019) Framework and tools for undergraduates designing RISC-V processors on an FPGA in computer architecture education. In: International Conference on Computational Science and Computational Intelligence (CSCI), pp 778–781. https://doi.org/10.1109/CSCI49370.2019.00148
Harris SL, Harris DM, Chaver D, Owen R, Kakakhel ZL, Sedano E, Panchul Y, Ableidinger B (2017) MIPSfpga: using a commercial MIPS soft-core in computer architecture education. IET Circuits Devices Syst 11:283–291. https://doi.org/10.1109/EWME.2016.7496470
Markov D, Romanov A (2022) Implementation of the RISC-V Architecture with the extended Zbb instruction set. In: International Ural Conference on Electrical Power Engineering (UralCon), pp 80–184. https://doi.org/10.1109/UralCon54942.2022.9906776
Kostadinov N, Bencheva N (2022) LCP: FPGA based processors for education. In: 2022 31st Annual Conference of the European Association for Education in Electrical and Information Engineering (EAEEIE), pp 1–4. https://doi.org/10.1109/EAEEIE54893.2022.9820.271
Romanov AY, Zhelnio S,Izmailova LG, Ryazanova AE (2022) The usage of a simple SchoolMIPS Soft-Processor core for teaching students the computer microarchitecture. In: 2022 International Conference on Quality Management, Transport and Information Security, Information Technologies (IT&QM&IS), pp 382–387. https://doi.org/10.1109/ITQMIS56172.2022.9976796
Rehman NU, Mujahid O,Ullah Z, Hafeez A, Fouzder T, Ibrahim M (2020) Power Efficient FPGA-based TCAM Architecture by using Segmented Matchline Strategy. In: 2019 International Conference on Advances in the Emerging Computing Technologies (AECT), Al Madinah Al Munawwarah, Saudi Arabia, pp 1–4. https://doi.org/10.1109/AECT47998.2020.9194189
Oztekin H, Temurtas F, Gulbag A (2018) On the improvement of the teaching quality and learning effectiveness in the computer organization course through FPGA and modular centered microcomputer design.Special Issue: Twenty‐Fifth Anniversary Special Issue of Computer Applications in Engineering Education Innovation in Engineering Education with Digital Technologies 26(5):1825–1840. https://doi.org/10.1002/cae. 21956
Öztekin H (2012) Embedded Operation on Configurable Modular Hardware for Educational Purposes System Design. PhD Dissertation, Sakarya University
Öztekin H, Gülbağ A, Temurtas F (2017) Assembler Design for BZK.SAU.FPGA Micro Computer Architecture. Electron Lett Sci Eng 13(1):1–9
Knuth DE (1973) The art of computer programming, Vol. 3 (Sorting and Searching), Addison-Wesley, USA
Mano MM (1993) Computer system architecture. Pearson, USA
Levitin A (2012) Introduction of the design & analysis of algorithms. Addison-Wesley, USA
Sultana N, Paira S, Chandra S, Alam SS (2017) A brief study and analysis of different searching algorithms. In: Second International Conference on Electrical, Computer and Communication Technologies (ICECCT), pp 1–4. https://doi.org/10.1109/ICECCT.2017.81178 21
Nowak R (2008) Generalized binary search. In: 46th Annual Allerton Conference on Communication, Control, and Computing, pp 568–574. https://doi.org/10.1109/ALLERTON.2008.4797609.
Fukac T, Korenek J (2019) Hash-based Pattern Matching for High Speed Networks. In: IEEE 22nd International Symposium on Design and Diagnostics of Electronic Circuits & Systems (DDECS), pp 1–5. https://doi.org/10.1109/DDECS.2019.8724652
Cao Y, Qi H, Zhou W, Kato J, Li K, Liu X, Gui J (2018) Binary hashing for approximate nearest neighbor search on big data: a survey. IEEE Access 6:2039–2054. https://doi.org/10.1109/ACCESS.2017.2781360
Irmayana A, Sy H, Paulus YT, Aini N, Aryasa KB (2021) A Systematic Comparative Study of Linear, Binary and Interpolation Search Algorithms. In: 3rd International Conference on Cybernetics and Intelligent System (ICORIS), pp 1–5. https://doi.org/10.1109/ICORIS52787.2021.9649479
Garro DV, Calderon CV, Yeung CS (2016) Using a programmable network switch TCAM to find the best alignment of two DNA sequences. In: 2016 IEEE 36th Central American and Panama Convention (CONCAPAN XXXVI), pp 1–5. https://doi.org/10.1109/CONCAPAN.2016.7942372.
Öztekin H (2022) BiCAM-based automated scoring system for digital logic circuit diagrams. Open Chem 20(1):1548–1556. https://doi.org/10.1515/chem-2022-0258
Irfan M, Sanka AI, Ullah Z, Cheung RCC (2021) Reconfigurable content-addressable memory (CAM) on FPGAs: A tutorial and survey. Future Generation Comp Syst 128:451–465. https://doi.org/10.1016/j.future.2021.09.037
Cho S, Martin JR, Xu R, Hammoud MH, Melhem R (2007) CA-RAM: a high-performance memory substrate for search-intensive applications. In: IEEE International Symposium on Performance Analysis of Systems & Software, pp 230–241. https://doi.org/10.1109/ISPASS.2007.363753
Trinh N, Kim ALT, Nguyen H, Tran L (2021) Algorithmic TCAM on FPGA with data collision approach. Indonesian J Electrical Eng Comp Sci 22(1):89–96. https://doi.org/10.11591/ijeecs.v22.i1.pp89-96
Satyanarayana SVV, Sridevi S (2019) Design of TCAM architecture for low power and high performance applications. Gazi Univ J Sci 32(1):164–173
Kim H, Cho M, Lee S, Kwon HS, Choi WY, Kim Y (2022) Content-addressable memory system using a nanoelectromechanical memory switch. Electronics 11:481–496. https://doi.org/10.3390/electronics11030481
Lázaro J, Bidarte U, Muguira L, Cuadrado C, Jiménez J (2021) Fast and efficient address search in System-on-a-Programmable-Chip using binary trees. Comp Electric Eng 96(B):107403–107416. https://doi.org/10.1016/j.compeleceng.2021.107403.
Huntley C, Antonova G, Guinand P (2006) Effect of hash collisions on the performance of LAN switching devices and networks. In: Proceedings. 2006 31st IEEE Conference on Local Computer Networks, pp 280–2084. https://doi.org/10.1109/LCN.2006.322112
Cali DS, Kalsi GS, Bingöl Z, Firtina C et al (2020) GenASM: a high-performance, low-power approximate string matching acceleration framework for genome sequence analysis. In: 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pp 951–966. https://doi.org/10.1109/MICRO50266.2020.00081
Ibrahim M, Mujahid O, Rehman NU, Qazi A, Ullah Z, Fouzder T (2021) An FPGA-based accelerated mutation detection system for the tumor suppressor gene. IEEE Access 9:164542–164550. https://doi.org/10.1109/ACCESS.2021.3134284
Garzón E, Golman R, Jahshan Z, Hanhan R et al (2022) Hamming distance tolerant content-addressable memory (HD-CAM) for DNA classification. IEEE Access 10:28080–28093. https://doi.org/10.1109/ACCESS.2022.3158305
Hanhan R, Garzón E, Jahshan Z, Teman A, Lanuzza M, Yavits L (2022) EDAM: edit distance tolerant approximate matching content addressable memory. In: Proceedings of the 49th Annual International Symposium on Computer Architecture (ISCA '22), pp 495–507. https://doi.org/10.1145/3470496.3527424
Irfan M, Yantır HE, Ullah Z, Cheung RCC (2022) Comp-TCAM: an adaptable composite ternary content-addressablememory on FPGAs. IEEE Embed Syst Lett 14(2):63–66. https://doi.org/10.1109/LES.2021.3124747
Majeed AH, Zainal MS, Alkaldy E,Nor DMD (2020) A content-addressable memory structure using novel majority gate with 5-input in quantum-dot cellular automata. Int J Integr Eng 12(4):28–38. https://doi.org/10.30880/ijie.2020.12.04.003
Park CS, Jeon JC (2020) Design of QCA content-addressable memory cell for quantum computer environment. J Converg Cult Technol 6(2):521–527. https://doi.org/10.1016/j.mee.2016.06.009
Song Z, Xie G, Cheng X, Wang L, Zhang Y (2020) An ultra-low cost multilayer RAM in quantum-dot cellular automata. IEEE Trans Circ Syst II Express Briefs 67(12):3397–3401. https://doi.org/10.1109/TCSII.2020.2988046
Mubarakali A, Ramakrishnan J, Mavaluru D, Elsir A, Elsier O, Wakil K (2019) A new efcient design for random access memory based on quantum dot cellular automata nanotechnology. Nano Commun Netw 21:100252. https://doi.org/10.1016/j.nancom.2019.100252
Hashemi S, Navi K (2012) New robust QCA D flip flop and memory structures. Microelectron J 43(12):929–940. https://doi.org/10.1016/j.mejo.2012.10.007
Sadoghifar A, Heikalabad SR (2018) A content-addressable memory structure using quantum cells in nanotechnology with energy dissipation analysis. Phys B Condens Matter 537:202–206. https://doi.org/10.1016/j.physb.2018.02.024
Angizi S, Sarmadi S, Sayedsalehi S, Navi K (2015) Design and evaluation of new majority gate-based RAM cell in quantum-dot cellular automata. Microelectron J 46(1):43–51. https://doi.org/10.1016/j.mejo.2014.10.003
Heikalabad SR, Navin AH, Hosseinzadeh M (2016) Content addressable memory cell in quantum-dot cellular automata. Microelectron Eng 163:140–150. https://doi.org/10.1016/j.mee.2016.06.009
Majeed AH, Salih B, bin Zainal MS, Nor DB (2019) Power Efcient optimal structure CAM-cell in QCA technology. Indian J Sci Technol 12(37):1–6. https://doi.org/10.17485/ijst/2019/v12i37/147461
Enayati M, Rezai A, Karimi A (2021) Efficient circuit design for content-addressable memory in quantum-dot cellular automata technology. SN Applied Sciences 3:804–814. https://doi.org/10.1007/s42452-021-04788-x
Garzón E, Yavits L, Teman A, Lanuzza M (2023) Approximate content-addressable memories: a review. Chips 2(2):70–82. https://doi.org/10.3390/chips2020005
Garzón E, Lanuzza M, Teman A, Yavits L (2023) AM4: MRAM crossbar based CAM/TCAM/ACAM/AP for in-memory computing. IEEE J Emerg Select Topics Circuits Syst 13(1):408–421. https://doi.org/10.1109/JETCAS.2023.3243222
Brelet JL (2002) Methods for implementing CAM functions using dual-port RAM. Patent No. US 6,353,332 B1
Ullah Z, Ilgon K, Baeg S (2012) Hybrid partitioned SRAM-based ternary content addressable memory. EEE Trans Circuits and Syst I: Regular Papers 59(12):2969–2979. https://doi.org/10.1109/TCSI.2012.2215736
Ullah Z, Jaiswal MK, Cheung RCC (2015) Z-TCAM: An SRAM-based architecture for TCAM. IEEE Trans Very Large Scale Integration (VLSI) Syst 23(2):402–406. https://doi.org/10.1109/TVLSI.2014.2309350
Ullah Z, Jaiswal MK, Cheung RCC (2014) E-TCAM: an efficient SRAM-based architecture for TCAM. Circuits Syst Signal Process 33(10):3123–3144. https://doi.org/10.1007/s00034-014-9796-3
Ullah Z, Jaiswal MK, Cheung RCC, So HK (2015) UE-TCAM: An ultra efficient SRAM-based TCAM. TTENCON 2015–2015 IEEE Region 10 Conference, pp 1–6. https://doi.org/10.1109/TENCON.2015.7372837
Ullah I, Ullah Z, Lee JA (2018) EE-TCAM: an energy-efficient SRAM-based TCAM on FPGA. Electronics 7(9):186–201. https://doi.org/10.3390/electronics7090186
Yu W, Sivakumar S, Pao D (2019) Pseudo-TCAM: SRAM-based architecture for packet classification in one memory access. IEEE Netw Lett 1(2):89–92. https://doi.org/10.1109/LNET.2019.2897934
Ullah I, Ullah Z, Afzaal U, Lee J (2019) DURE: An Energy- and Resource-Efficient TCAM Architecture for FPGAs With Dynamic Updates. IEEE Trans Very Large Scale Integration(VLSI) Syst 27(6):1298–1307. https://doi.org/10.1109/TVLSI.2019.2904105
Reviriego P, Ullah A, Pontarelli S (2019) PR-TCAM: Efficient TCAM Emulation on Xilinx FPGAs Using Partial Reconfiguration. IEEE Trans Very Large Scale Integration (VLSI) Syst 27(8):1952–1956. https://doi.org/10.1109/TVLSI.2019.2903980
Irfan M, Ullah Z, Cheung RCC (2019) Zi-CAM: a power and resource efficient binary content-addressable memory on FPGAs. Electronics 8(5):584–596. https://doi.org/10.3390/ELECTRONICS8050584
Irfan M, Ullah Z, Cheung RCC (2019) D-TCAM: A High-Performance Distributed RAM Based TCAM Architecture on FPGAs. IEEE Access 7:96060–96069. https://doi.org/10.1109/ACCESS.2019.2927108
Ullah Z (2017) LH-CAM: logic-based higher performance binary CAM architecture on FPGA. IEEE Embed Syst Lett 9(2):29–32. https://doi.org/10.1109/LES.2017.2664378
Irfan M, Ullah Z (2017) G-AETCAM: Gate-Based Area-Efficient Ternary Content-Addressable Memory on FPGA. IEEE Access 5:20785–20790. https://doi.org/10.1109/ACCESS.2017.2756702
Mahmood H, Ullah Z, Mujahid O, Ullah I, Hafeez A (2018) Beyond the limits of typical strategies: resources efficient FPGA-based TCAM. IEEE Embed Syst Lett 11(3):89–92. https://doi.org/10.1109/LES.2018.2888889
Mohammad K, Qaroush A, Washha M, Mohammad B (2017) Low-power content addressable memory (CAM) array for mobile devices. Microelectron J 67:10–18. https://doi.org/10.1016/j.mejo.2017.07.001
Sivakumar SA, Swedha A, Naveen R (2018) Survey of content addressable memory. Int J Creat Res Thoughts 6(1):1516–1526
Wasmir SH, Venkata TM, Sandeep S, Anup D (2020) Low-power content addressable memory design using two-layer P-N match-line control and sensing. Integration 75:73–84. https://doi.org/10.1016/j.vlsi.2020.06.001
Chang YJ, Tsai K, Cheng YC, Lu MR (2020) Low-power ternary content-addressable memory design based on a voltage self-controlled fin field-effect transistor segment. Comp Electrical Eng 81:106528. https://doi.org/10.1016/j.compeleceng.2019.106528
Jiang S, Yan P, Sridhar R (2015) A high speed and low power content-addressable memory (CAM) using pipelined scheme. In: 2015 28th IEEE International System-on-Chip Conference 345–349. https://doi.org/10.1109/SOCC.2015.7406979
Liu AX, Meiners CR, Torng E (2016) Packet classification using binary content addressable memory. IEEE/ACM Trans Netw 24(3):1295–1307. https://doi.org/10.1109/TNET.2016.2533613
Mujahid O, Ullah Z, Mahmood H, Hafeez A (2018) Fast pattern recognition through an LBP driven CAM on FPGA. IEEE Access 6:39525–39531. https://doi.org/10.1109/ACCESS.2018.2854306
Imani M, Peron Di, Kim Y, Rahimi A, Rosing T (2017) Efficient neural network acceleration on GPGPU using content addressable memory. In: Design, Automation & Test in Europe Conference & Exhibition, pp 1026–1031. https://doi.org/10.23919/DATE.2017.79271 41
Yang H, Wang X, Yang C, Cong X, Zhang Y (2019) Securing content-centric networks with content-based encryption. J Netw Comput Appl 128:21–32. https://doi.org/10.1016/j.jnca.2018.12.005
Le DH, Tran BT, Inoue K, Pham CK (2014) A CAM-based information detection hardware system for fast image matching on FPGA. IEICE Trans Electron 97:65–76. https://doi.org/10.1587/transele.E97.C.65
Jothi D, Sivakumar R (2018) Design and analysis of power efficient binary content addressable memory (PEBCAM) core cells. Circuits Syst Signal Process 37(6):1422–1451. https://doi.org/10.1007/s00034-017-0628-0
Karthik M, Jegan RR, Venkatesan GKDP (2014) Content addressable memory with efficient power consumption and throughput. Int J Emerg Trends Sci Technol 1(3):399–404
RAM Megafunction User Guide (2008) Altera Corporation
Anuradha AP (2020) Analysis and design of algorithms. Technical Publications, India
Funding
Not applicable.
Author information
Authors and Affiliations
Contributions
HÖ, AL and İP– conceptualization, methodology, formal analysis, investigation, supervision, validation, visualization, writing—original draft and writing—review and editing.
Corresponding author
Ethics declarations
Conflict of interest
The authors declare no conflict of interest.
Ethical Approval
Not applicable.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Öztekin, H., Lazzem, A. & Pehlivan, İ. Using FPGA-based content-addressable memory for mnemonics instruction searching in assembler design. J Supercomput 79, 17386–17418 (2023). https://doi.org/10.1007/s11227-023-05357-2
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-023-05357-2