{"id":"https://openalex.org/W2149827666","doi":"https://doi.org/10.1145/1286821.1286828","title":"Optimizing indirect branch prediction accuracy in virtual machine interpreters","display_name":"Optimizing indirect branch prediction accuracy in virtual machine interpreters","publication_year":2007,"publication_date":"2007-10-01","ids":{"openalex":"https://openalex.org/W2149827666","doi":"https://doi.org/10.1145/1286821.1286828","mag":"2149827666"},"language":"en","primary_location":{"id":"doi:10.1145/1286821.1286828","is_oa":true,"landing_page_url":"https://doi.org/10.1145/1286821.1286828","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/1286821.1286828","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/1286821.1286828","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5031719253","display_name":"Kevin Casey","orcid":"https://orcid.org/0000-0001-7245-9572"},"institutions":[{"id":"https://openalex.org/I205274468","display_name":"Trinity College Dublin","ror":"https://ror.org/02tyrky19","country_code":"IE","type":"education","lineage":["https://openalex.org/I205274468"]}],"countries":["IE"],"is_corresponding":false,"raw_author_name":"Kevin Casey","raw_affiliation_strings":["Trinity College Dublin, Dublin, Ireland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Trinity College Dublin, Dublin, Ireland","institution_ids":["https://openalex.org/I205274468"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5088009807","display_name":"M. Anton Ertl","orcid":"https://orcid.org/0000-0002-1290-9444"},"institutions":[{"id":"https://openalex.org/I145847075","display_name":"TU Wien","ror":"https://ror.org/04d836q62","country_code":"AT","type":"education","lineage":["https://openalex.org/I145847075"]}],"countries":["AT"],"is_corresponding":false,"raw_author_name":"M. Anton Ertl","raw_affiliation_strings":["TU Wien"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"TU Wien","institution_ids":["https://openalex.org/I145847075"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5003800161","display_name":"David Gregg","orcid":"https://orcid.org/0000-0003-3782-4612"},"institutions":[{"id":"https://openalex.org/I205274468","display_name":"Trinity College Dublin","ror":"https://ror.org/02tyrky19","country_code":"IE","type":"education","lineage":["https://openalex.org/I205274468"]}],"countries":["IE"],"is_corresponding":false,"raw_author_name":"David Gregg","raw_affiliation_strings":["Trinity College Dublin, Dublin, Ireland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Trinity College Dublin, Dublin, Ireland","institution_ids":["https://openalex.org/I205274468"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":3.5029,"has_fulltext":true,"cited_by_count":45,"citation_normalized_percentile":{"value":0.92732141,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"29","issue":"6","first_page":"37","last_page":"37"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11181","display_name":"Advanced Data Storage Technologies","score":0.9975000023841858,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10101","display_name":"Cloud Computing and Resource Management","score":0.9861999750137329,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.9414832592010498},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.8288975358009338},{"id":"https://openalex.org/keywords/branch-predictor","display_name":"Branch predictor","score":0.6654372811317444},{"id":"https://openalex.org/keywords/virtual-machine","display_name":"Virtual machine","score":0.6330188512802124},{"id":"https://openalex.org/keywords/factor","display_name":"Factor (programming language)","score":0.6144599914550781},{"id":"https://openalex.org/keywords/generality","display_name":"Generality","score":0.5438138246536255},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5158690214157104},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5158538222312927},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.5145251154899597},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4888381361961365},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.47129786014556885},{"id":"https://openalex.org/keywords/execution-time","display_name":"Execution time","score":0.4133404791355133},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.3370473384857178}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9414832592010498},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.8288975358009338},{"id":"https://openalex.org/C168522837","wikidata":"https://www.wikidata.org/wiki/Q679552","display_name":"Branch predictor","level":2,"score":0.6654372811317444},{"id":"https://openalex.org/C25344961","wikidata":"https://www.wikidata.org/wiki/Q192726","display_name":"Virtual machine","level":2,"score":0.6330188512802124},{"id":"https://openalex.org/C2781039887","wikidata":"https://www.wikidata.org/wiki/Q1391724","display_name":"Factor (programming language)","level":2,"score":0.6144599914550781},{"id":"https://openalex.org/C2780767217","wikidata":"https://www.wikidata.org/wiki/Q5532421","display_name":"Generality","level":2,"score":0.5438138246536255},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5158690214157104},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5158538222312927},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.5145251154899597},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4888381361961365},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.47129786014556885},{"id":"https://openalex.org/C2989134064","wikidata":"https://www.wikidata.org/wiki/Q288510","display_name":"Execution time","level":2,"score":0.4133404791355133},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3370473384857178},{"id":"https://openalex.org/C15744967","wikidata":"https://www.wikidata.org/wiki/Q9418","display_name":"Psychology","level":0,"score":0.0},{"id":"https://openalex.org/C542102704","wikidata":"https://www.wikidata.org/wiki/Q183257","display_name":"Psychotherapist","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1286821.1286828","is_oa":true,"landing_page_url":"https://doi.org/10.1145/1286821.1286828","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/1286821.1286828","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},{"id":"pmh:oai:eprints.maynoothuniversity.ie:10188","is_oa":false,"landing_page_url":null,"pdf_url":null,"source":{"id":"https://openalex.org/S4306401432","display_name":"Maynooth University ePrints and eTheses Archive (Maynooth University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I157286207","host_organization_name":"National University of Ireland, Maynooth","host_organization_lineage":["https://openalex.org/I157286207"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"","raw_type":"Article"}],"best_oa_location":{"id":"doi:10.1145/1286821.1286828","is_oa":true,"landing_page_url":"https://doi.org/10.1145/1286821.1286828","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/1286821.1286828","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2149827666.pdf","grobid_xml":"https://content.openalex.org/works/W2149827666.grobid-xml"},"referenced_works_count":34,"referenced_works":["https://openalex.org/W32659762","https://openalex.org/W171573629","https://openalex.org/W1480157704","https://openalex.org/W1487893282","https://openalex.org/W1522107772","https://openalex.org/W1827267273","https://openalex.org/W1830619643","https://openalex.org/W1877858532","https://openalex.org/W1998885205","https://openalex.org/W2002325351","https://openalex.org/W2013137740","https://openalex.org/W2018960257","https://openalex.org/W2062414112","https://openalex.org/W2097971372","https://openalex.org/W2098277586","https://openalex.org/W2100045639","https://openalex.org/W2101786162","https://openalex.org/W2105454321","https://openalex.org/W2108978604","https://openalex.org/W2113045536","https://openalex.org/W2119767139","https://openalex.org/W2128242846","https://openalex.org/W2134086144","https://openalex.org/W2137299450","https://openalex.org/W2149146154","https://openalex.org/W2161646044","https://openalex.org/W2167732362","https://openalex.org/W2339802588","https://openalex.org/W2561675875","https://openalex.org/W2611071497","https://openalex.org/W2900507668","https://openalex.org/W3036097495","https://openalex.org/W4231640297","https://openalex.org/W4256018993"],"related_works":["https://openalex.org/W2122772063","https://openalex.org/W2390473631","https://openalex.org/W2072469765","https://openalex.org/W103141792","https://openalex.org/W2133076265","https://openalex.org/W2169086742","https://openalex.org/W2172093208","https://openalex.org/W2159950491","https://openalex.org/W2122666034","https://openalex.org/W2968998509"],"abstract_inverted_index":{"Interpreters":[0],"designed":[1],"for":[2,43,56,63,111],"efficiency":[3],"execute":[4],"a":[5,135,148],"huge":[6],"number":[7],"of":[8,17,35,61,73,88,97,122,137,150],"indirect":[9,22,36],"branches":[10],"and":[11,70,83,91,94,114,127,145],"can":[12,118],"spend":[13],"more":[14],"than":[15],"half":[16],"the":[18,30,58,123],"execution":[19],"time":[20],"in":[21,109,132],"branch":[23,37,125],"mispredictions.":[24],"Branch":[25],"target":[26],"buffers":[27],"(BTBs)":[28],"are":[29],"most":[31],"widely":[32],"available":[33],"form":[34],"prediction;":[38],"however,":[39],"their":[40,102],"prediction":[41,59],"accuracy":[42,60],"existing":[44],"interpreters":[45],"is":[46],"only":[47],"2%--50%.":[48],"In":[49],"this":[50],"article":[51],"we":[52,104],"investigate":[53,79],"two":[54],"methods":[55],"improving":[57],"BTBs":[62],"interpreters:":[64],"replicating":[65],"virtual":[66],"machine":[67],"(VM)":[68],"instructions":[69,75],"combining":[71],"sequences":[72],"VM":[74],"into":[76],"superinstructions.":[77],"We":[78],"static":[80],"(interpreter":[81,85],"build-time)":[82],"dynamic":[84,158],"runtime)":[86],"variants":[87],"these":[89,98,107],"techniques":[90,117,155],"compare":[92],"them":[93],"several":[95],"combinations":[96],"techniques.":[99],"To":[100],"show":[101],"generality,":[103],"have":[105,128],"implemented":[106],"optimizations":[108],"VMs":[110],"both":[112],"Java":[113],"Forth.":[115],"These":[116],"eliminate":[119],"nearly":[120],"all":[121],"dispatch":[124],"mispredictions,":[126],"other":[129],"benefits,":[130],"resulting":[131],"speedups":[133,146],"by":[134,147],"factor":[136,149],"up":[138,151],"to":[139,152],"4.55":[140],"over":[141,154],"efficient":[142],"threaded-code":[143],"interpreters,":[144],"1.34":[153],"relying":[156],"on":[157],"superinstructions":[159],"alone.":[160]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":4},{"year":2017,"cited_by_count":2},{"year":2016,"cited_by_count":3},{"year":2015,"cited_by_count":7},{"year":2014,"cited_by_count":1},{"year":2013,"cited_by_count":2},{"year":2012,"cited_by_count":3}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
