{"corpus_id":33551004,"paper_sha":"e860edf44d9b2430455118ab61b93ef606128a79","doi":"10.1155/2016/8972065","arxiv_id":null,"pmid":null,"pmcid":null,"mag_id":2294002610,"dblp_id":"journals/ijrc/SklyarovSS16","acl_id":null,"title":"On-Chip Reconfigurable Hardware Accelerators for Popcount Computations","year":2016,"publication_date":"2016-03-01","venue":"International Journal of Reconfigurable Computing","journal":{"name":"Int. J. Reconfigurable Comput.","pages":"8972065:1-8972065:11","volume":"2016"},"journal_issn":null,"journal_title":null,"publication_types":["JournalArticle"],"pubmed_pub_types":null,"s2_fields_of_study":["Computer Science","Engineering"],"reference_count":40,"citation_count":7,"influential_citation_count":0,"is_open_access":true,"arxiv_categories":null,"arxiv_license":null,"arxiv_journal_ref":null,"mesh_headings":null,"chemicals":null,"comments_corrections":null,"source_flags":1,"s2_open_access_pdf_url":"https://downloads.hindawi.com/journals/ijrc/2016/8972065.pdf","s2_open_access_landing_url":"https://www.semanticscholar.org/paper/e860edf44d9b2430455118ab61b93ef606128a79","s2_open_access_license":"CCBY","s2_open_access_status":"GOLD","pmc_open_access_pdf_url":null,"pmc_open_access_landing_url":null,"pmc_open_access_license":null,"pmc_open_access_status":null,"unpaywall_open_access_pdf_url":null,"unpaywall_open_access_landing_url":null,"unpaywall_open_access_license":null,"unpaywall_open_access_status":null,"abstract":"Popcount computations are widely used in such areas as combinatorial search, data processing, statistical analysis, and bio- and chemical informatics. In many practical problems the size of initial data is very large and increase in throughput is important. The paper suggests two types of hardware accelerators that are 1 designed in FPGAs and 2 implemented in Zynq-7000 all programmable systems-on-chip with partitioning of algorithms that use popcounts between software of ARM Cortex-A9 processing system and advanced programmable logic. A three-level system architecture that includes a general-purpose computer, the problem-specific ARM, and reconfigurable hardware is then proposed. The results of experiments and comparisons with existing benchmarks demonstrate that although throughput of popcount computations is increased in FPGA-based designs interacting with general-purpose computers, communication overheads in experiments with PCI express are significant and actual advantages can be gained if not only popcount but also other types of relevant computations are implemented in hardware. The comparison of software/hardware designs for Zynq-7000 all programmable systems-on-chip with pure software implementations in the same Zynq-7000 devices demonstrates increase in performance by a factor ranging from 5 to 19 taking into account all the involved communication overheads between the programmable logic and the processing systems.","claims":[{"public_id":"cl_7084e5e628f09ca40d3f13fac8dc247f","status":"active","text":"A three-level system architecture is proposed that combines a general-purpose computer, a problem-specific ARM processor, and reconfigurable hardware.","confidence":0.95,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_7084e5e628f09ca40d3f13fac8dc247f"},{"public_id":"cl_1043b4ce0aba246ab1610fbe1dd1b66a","status":"active","text":"FPGA-based designs increase popcount throughput when interacting with general-purpose computers, but PCI Express communication overheads are significant.","confidence":0.94,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_1043b4ce0aba246ab1610fbe1dd1b66a"},{"public_id":"cl_ec3bfcba693d7c420ca10ebcf7c14fa3","status":"active","text":"Implementing not only popcount but also other relevant computations in hardware is needed to obtain actual advantages in the FPGA-based setting.","confidence":0.86,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_ec3bfcba693d7c420ca10ebcf7c14fa3"},{"public_id":"cl_65f3650a55271bb13c70b1ba89941029","status":"active","text":"Software/hardware designs on Zynq-7000 devices outperform pure software implementations by a factor of 5 to 19 when all communication overheads are included.","confidence":0.99,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_65f3650a55271bb13c70b1ba89941029"},{"public_id":"cl_cf444333286b6fdd2848cfb199e9ef78","status":"active","text":"Two types of popcount hardware accelerators are implemented: FPGA-based designs and Zynq-7000 all programmable system-on-chip designs with algorithm partitioning between the ARM Cortex-A9 processing system and programmable logic.","confidence":0.98,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_cf444333286b6fdd2848cfb199e9ef78"}],"concepts":[{"public_id":"co_1d5baeb33ef5d2f249ebe69f69d7838b","status":"active","name":"ARM Cortex-A9 processing system","description":"The ARM-based processing subsystem used for software execution in the Zynq-7000 platform.","types":["processor"],"aliases":["ARM Cortex-A9","processing system"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_1d5baeb33ef5d2f249ebe69f69d7838b"},{"public_id":"co_3323edc11358621a1fd95290f79db4e3","status":"active","name":"FPGA-based designs","description":"Hardware implementations realized on field-programmable gate arrays.","types":["hardware design"],"aliases":["FPGA designs"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_3323edc11358621a1fd95290f79db4e3"},{"public_id":"co_35489a238a9765d7d97c8637f9e77e7a","status":"active","name":"software/hardware designs","description":"Implementations that split computation between software and dedicated hardware on the same device.","types":["design approach"],"aliases":["software-hardware designs","hardware/software designs"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_35489a238a9765d7d97c8637f9e77e7a"},{"public_id":"co_3ce698624623bdd83105374f1755e7ed","status":"active","name":"reconfigurable hardware","description":"Hardware whose logic can be programmed to implement specialized computations.","types":["hardware"],"aliases":["reconfigurable accelerator"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_3ce698624623bdd83105374f1755e7ed"},{"public_id":"co_50e066f57a9366dd803f3f2329d08a5f","status":"active","name":"pure software implementations","description":"Implementations that execute the target computations entirely in software without hardware acceleration.","types":["baseline"],"aliases":[],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_50e066f57a9366dd803f3f2329d08a5f"},{"public_id":"co_595c4625b41585937ec96b955cbbc498","status":"active","name":"general-purpose computer","description":"A conventional computer used as one tier in the proposed system architecture.","types":["computer system"],"aliases":["host computer"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_595c4625b41585937ec96b955cbbc498"},{"public_id":"co_92f4a5442259e6de4d2ff4e821050956","status":"active","name":"programmable logic","description":"The reconfigurable hardware fabric in the Zynq-7000 device used to implement accelerator logic.","types":["hardware component"],"aliases":["advanced programmable logic"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_92f4a5442259e6de4d2ff4e821050956"},{"public_id":"co_adac98df1dc5fa6741f3138cccdf2fa3","status":"active","name":"three-level system architecture","description":"An architecture that integrates a general-purpose computer, a problem-specific ARM subsystem, and reconfigurable hardware.","types":["system architecture"],"aliases":[],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_adac98df1dc5fa6741f3138cccdf2fa3"},{"public_id":"co_bbb33ce9461d9df75f5213e158588890","status":"active","name":"other relevant computations","description":"Additional computations related to popcount workloads that could also be moved into hardware acceleration.","types":["computation"],"aliases":[],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_bbb33ce9461d9df75f5213e158588890"},{"public_id":"co_bef4f7733d1964b7717e10b347bdf262","status":"active","name":"popcount computations","description":"Bit-counting operations that determine the number of set bits in a binary representation.","types":["computation"],"aliases":["population count computations","popcount"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_bef4f7733d1964b7717e10b347bdf262"},{"public_id":"co_c19b7bf91d1f9725e5a865e8d4cde657","status":"active","name":"PCI Express communication overheads","description":"The data-transfer cost associated with communication over PCI Express links between devices.","types":["communication overhead"],"aliases":["PCIe communication overheads"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_c19b7bf91d1f9725e5a865e8d4cde657"},{"public_id":"co_ea3041e82366dc180affd43ac1f4bb90","status":"active","name":"Zynq-7000 all programmable systems-on-chip","description":"A family of system-on-chip devices combining an ARM processing system with programmable logic.","types":["hardware platform"],"aliases":["Zynq-7000","all programmable systems-on-chip"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_ea3041e82366dc180affd43ac1f4bb90"}],"external_ids":{"DOI":"10.1155/2016/8972065","ArXiv":null,"PubMed":null,"PubMedCentral":null,"MAG":2294002610,"DBLP":"journals/ijrc/SklyarovSS16","ACL":null},"open_access":{"is_open_access":true,"pdf_url":"https://downloads.hindawi.com/journals/ijrc/2016/8972065.pdf","landing_url":"https://www.semanticscholar.org/paper/e860edf44d9b2430455118ab61b93ef606128a79","source":"semantic_scholar","pdf_url_source":"semantic_scholar_open_access_pdf","license":"CCBY","status":"GOLD","reason":null},"reference_availability":{"status":"available","references_indexed":true,"full_text_available":false,"full_text_source":null,"count_basis":"semantic_scholar_metadata","extraction_status":"not_applicable","reason":null},"source":{"provider":"episteme2","base_corpus":"semantic_scholar_dump","freshness_mode":"unknown","basis":["semantic_scholar_metadata","postgres_metadata"],"limits":["paper metadata is based on indexed upstream scholarly datasets","claims and concepts are available only for extracted papers","absence of claims or concepts means no extracted graph data is available in this response"],"status":"available","degraded":false,"degraded_reasons":[],"diagnostics":{"status":"available","degraded":false,"degraded_reasons":[],"metadata_status":"available","graph_status":"available","abstract_status":"available"},"source_flags":1},"paper_id":632414,"paper_uid":"228be440-00f8-4ca7-8a1a-4516d7d0b430","canonical_identity":{"paper_id":632414,"paper_uid":"228be440-00f8-4ca7-8a1a-4516d7d0b430","identity_status":"available","lookup_basis":"semantic_scholar_external_id","compatibility_path":"corpus_id"},"url":"https://sah.borca.ai/papers/33551004"}