{"id":158725,"date":"2009-11-01T00:00:00","date_gmt":"2009-11-01T00:00:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/msr-research-item\/compiler-assisted-hybrid-operand-communication\/"},"modified":"2018-10-16T19:59:55","modified_gmt":"2018-10-17T02:59:55","slug":"compiler-assisted-hybrid-operand-communication","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/compiler-assisted-hybrid-operand-communication\/","title":{"rendered":"Compiler-Assisted Hybrid Operand Communication"},"content":{"rendered":"

Communication of operands among in-flight instructions can be
\npower intensive, especially in superscalar processors where all result
\ntags are broadcast to a small number of consumers through a
\nmulti-entry CAM. Token-based point-to-point communication of
\noperands in dataflow architectures is highly efficient when each
\nproduced token has only one consumer, but inefficient when there
\nare many consumers due to the construction of software fanout
\ntrees. Placing operands in registers is efficient for broadcasting the
\nvalues which have consumers spread over a long lifetime, but inefficient
\nfor shorter-lived operations. This paper evaluates a compilerassisted
\nhybrid instruction communication model that combine tokens
\ninstruction communication with statically assigned broadcast
\ntags. Each fixed-size block of code is given a small number of
\narchitectural broadcast identifiers, which the compiler can assign
\nto producers that have many consumers. Producers with few consumers
\nrely on point-to-point communication through tokens. Producers
\nwhose result is live past the instruction block communicate
\nwith distant consumers through a register. Selecting the mechanism
\nstatically by the compiler relieves the hardware from categorizing
\ninstructions at runtime. At the same time, a compiler can categorize
\ninstructions better than dynamic selection does because the
\ncompiler analyzes a larger range of instructions. Furthermore, compiler
\ncould perform complex optimizations without hardware cost
\nand execution-time penalty. We propose a compiler optimization to
\nreuse broadcast tags for instructions with non-overlapping broadcast
\nlive ranges, the speedup is further improved without spending
\nmore power . The results show that this compiler-assisted hybrid
\ntoken\/broadcast model requires only eight architectural broadcasts
\nper block, enabling highly efficient CAMs. This hybrid model reduces
\ninstruction communication energy by 28% compared to a
\nstrictly token-based dataflow model (and by over 2.7X compared
\nto a hybrid model without compiler support), while simultaneously
\nincreasing performance by 8% on average across the SPECINT and
\nEEMBC benchmarks, running as single threads on 16 composed,
\ndual-issue EDGE cores.<\/p>\n","protected":false},"excerpt":{"rendered":"

Communication of operands among in-flight instructions can be power intensive, especially in superscalar processors where all result tags are broadcast to a small number of consumers through a multi-entry CAM. Token-based point-to-point communication of operands in dataflow architectures is highly efficient when each produced token has only one consumer, but inefficient when there are many […]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"msr-content-type":[3],"msr-research-highlight":[],"research-area":[13547],"msr-publication-type":[193718],"msr-product-type":[],"msr-focus-area":[],"msr-platform":[],"msr-download-source":[],"msr-locale":[268875],"msr-post-option":[],"msr-field-of-study":[],"msr-conference":[],"msr-journal":[],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-158725","msr-research-item","type-msr-research-item","status-publish","hentry","msr-research-area-systems-and-networking","msr-locale-en_us"],"msr_publishername":"UT-Austin, Department of Computer Science","msr_edition":"","msr_affiliation":"","msr_published_date":"2009-11-01","msr_host":"","msr_duration":"","msr_version":"","msr_speaker":"","msr_other_contributors":"","msr_booktitle":"","msr_pages_string":"","msr_chapter":"","msr_isbn":"","msr_journal":"","msr_volume":"","msr_number":"TR-09-33","msr_editors":"","msr_series":"","msr_issue":"","msr_organization":"","msr_how_published":"","msr_notes":"","msr_highlight_text":"","msr_release_tracker_id":"","msr_original_fields_of_study":"","msr_download_urls":"","msr_external_url":"","msr_secondary_video_url":"","msr_longbiography":"","msr_microsoftintellectualproperty":1,"msr_main_download":"","msr_publicationurl":"ftp:\/\/ftp.cs.utexas.edu\/pub\/techreports\/TR-1933.pdf","msr_doi":"","msr_publication_uploader":[{"type":"url","title":"ftp:\/\/ftp.cs.utexas.edu\/pub\/techreports\/TR-1933.pdf","viewUrl":false,"id":false,"label_id":0}],"msr_related_uploader":"","msr_attachments":[{"id":0,"url":"ftp:\/\/ftp.cs.utexas.edu\/pub\/techreports\/TR-1933.pdf"}],"msr-author-ordering":[{"type":"text","value":"Dong Li","user_id":0,"rest_url":false},{"type":"text","value":"Madhu Saravana Sibi Govindan","user_id":0,"rest_url":false},{"type":"user_nicename","value":"aasmith","user_id":30783,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=aasmith"},{"type":"user_nicename","value":"dburger","user_id":31582,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=dburger"},{"type":"text","value":"Steve Keckler","user_id":0,"rest_url":false}],"msr_impact_theme":[],"msr_research_lab":[],"msr_event":[],"msr_group":[144666],"msr_project":[],"publication":[],"video":[],"download":[],"msr_publication_type":"techreport","related_content":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/158725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-research-item"}],"version-history":[{"count":3,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/158725\/revisions"}],"predecessor-version":[{"id":517754,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/158725\/revisions\/517754"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=158725"}],"wp:term":[{"taxonomy":"msr-content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-content-type?post=158725"},{"taxonomy":"msr-research-highlight","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-highlight?post=158725"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=158725"},{"taxonomy":"msr-publication-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publication-type?post=158725"},{"taxonomy":"msr-product-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-product-type?post=158725"},{"taxonomy":"msr-focus-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-focus-area?post=158725"},{"taxonomy":"msr-platform","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-platform?post=158725"},{"taxonomy":"msr-download-source","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-download-source?post=158725"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=158725"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=158725"},{"taxonomy":"msr-field-of-study","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-field-of-study?post=158725"},{"taxonomy":"msr-conference","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-conference?post=158725"},{"taxonomy":"msr-journal","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-journal?post=158725"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=158725"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=158725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}