{"id":"https://openalex.org/W2618077195","doi":"https://doi.org/10.1145/3055511","title":"Efficient Automated Code Partitioning for Microcontrollers with Switchable Memory Banks","display_name":"Efficient Automated Code Partitioning for Microcontrollers with Switchable Memory Banks","publication_year":2017,"publication_date":"2017-05-26","ids":{"openalex":"https://openalex.org/W2618077195","doi":"https://doi.org/10.1145/3055511","mag":"2618077195"},"language":"en","primary_location":{"id":"doi:10.1145/3055511","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3055511","pdf_url":null,"source":{"id":"https://openalex.org/S136160450","display_name":"ACM Transactions on Embedded Computing Systems","issn_l":"1539-9087","issn":["1539-9087","1558-3465"],"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 Embedded Computing Systems","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5078268065","display_name":"Micha\u0142 Ciszewski","orcid":"https://orcid.org/0000-0002-5010-9210"},"institutions":[{"id":"https://openalex.org/I4654613","display_name":"University of Warsaw","ror":"https://ror.org/039bjqg32","country_code":"PL","type":"education","lineage":["https://openalex.org/I4654613"]}],"countries":["PL"],"is_corresponding":true,"raw_author_name":"Michal Ciszewski","raw_affiliation_strings":["University of Warsaw, Warszawa, Poland"],"affiliations":[{"raw_affiliation_string":"University of Warsaw, Warszawa, Poland","institution_ids":["https://openalex.org/I4654613"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5025556487","display_name":"Konrad Iwanicki","orcid":"https://orcid.org/0000-0002-5380-6337"},"institutions":[{"id":"https://openalex.org/I4654613","display_name":"University of Warsaw","ror":"https://ror.org/039bjqg32","country_code":"PL","type":"education","lineage":["https://openalex.org/I4654613"]}],"countries":["PL"],"is_corresponding":false,"raw_author_name":"Konrad Iwanicki","raw_affiliation_strings":["University of Warsaw, Warszawa, Poland"],"affiliations":[{"raw_affiliation_string":"University of Warsaw, Warszawa, Poland","institution_ids":["https://openalex.org/I4654613"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5078268065"],"corresponding_institution_ids":["https://openalex.org/I4654613"],"apc_list":null,"apc_paid":null,"fwci":0.4506,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.59495178,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":"16","issue":"4","first_page":"1","last_page":"26"},"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.9994999766349792,"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.9994999766349792,"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/T10933","display_name":"Real-Time Systems Scheduling","score":0.9991000294685364,"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/T10904","display_name":"Embedded Systems Design Techniques","score":0.9987000226974487,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.9072757959365845},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7775919437408447},{"id":"https://openalex.org/keywords/partition","display_name":"Partition (number theory)","score":0.6943795680999756},{"id":"https://openalex.org/keywords/microcontroller","display_name":"Microcontroller","score":0.6399327516555786},{"id":"https://openalex.org/keywords/heuristic","display_name":"Heuristic","score":0.5607727766036987},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.5547265410423279},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4914590120315552},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4857838451862335},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.4231588840484619},{"id":"https://openalex.org/keywords/dead-code-elimination","display_name":"Dead code elimination","score":0.4210275113582611},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.36042505502700806},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.3463618755340576},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.3120667338371277},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.2681415379047394},{"id":"https://openalex.org/keywords/redundant-code","display_name":"Redundant code","score":0.14251533150672913}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9072757959365845},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7775919437408447},{"id":"https://openalex.org/C42812","wikidata":"https://www.wikidata.org/wiki/Q1082910","display_name":"Partition (number theory)","level":2,"score":0.6943795680999756},{"id":"https://openalex.org/C173018170","wikidata":"https://www.wikidata.org/wiki/Q165678","display_name":"Microcontroller","level":2,"score":0.6399327516555786},{"id":"https://openalex.org/C173801870","wikidata":"https://www.wikidata.org/wiki/Q201413","display_name":"Heuristic","level":2,"score":0.5607727766036987},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.5547265410423279},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4914590120315552},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4857838451862335},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.4231588840484619},{"id":"https://openalex.org/C2144512","wikidata":"https://www.wikidata.org/wiki/Q1143090","display_name":"Dead code elimination","level":5,"score":0.4210275113582611},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.36042505502700806},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3463618755340576},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.3120667338371277},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.2681415379047394},{"id":"https://openalex.org/C151578736","wikidata":"https://www.wikidata.org/wiki/Q1251793","display_name":"Redundant code","level":4,"score":0.14251533150672913},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.0},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","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},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3055511","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3055511","pdf_url":null,"source":{"id":"https://openalex.org/S136160450","display_name":"ACM Transactions on Embedded Computing Systems","issn_l":"1539-9087","issn":["1539-9087","1558-3465"],"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 Embedded Computing Systems","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":36,"referenced_works":["https://openalex.org/W194131361","https://openalex.org/W1507039213","https://openalex.org/W1566687055","https://openalex.org/W1601461406","https://openalex.org/W1668030968","https://openalex.org/W1787438180","https://openalex.org/W1851406565","https://openalex.org/W1899379166","https://openalex.org/W1969477657","https://openalex.org/W1971903460","https://openalex.org/W1977857710","https://openalex.org/W1982940311","https://openalex.org/W1992851788","https://openalex.org/W1994115836","https://openalex.org/W2002055996","https://openalex.org/W2004662500","https://openalex.org/W2009200106","https://openalex.org/W2011039300","https://openalex.org/W2036435096","https://openalex.org/W2057463094","https://openalex.org/W2105560756","https://openalex.org/W2118265154","https://openalex.org/W2121713258","https://openalex.org/W2128022558","https://openalex.org/W2130007585","https://openalex.org/W2134165468","https://openalex.org/W2157613781","https://openalex.org/W2159159552","https://openalex.org/W2168919539","https://openalex.org/W2343981581","https://openalex.org/W2752885492","https://openalex.org/W4205585032","https://openalex.org/W4210597212","https://openalex.org/W4239066401","https://openalex.org/W4245280865","https://openalex.org/W4248334552"],"related_works":["https://openalex.org/W650988184","https://openalex.org/W2162410319","https://openalex.org/W4321184925","https://openalex.org/W2050587118","https://openalex.org/W2053033210","https://openalex.org/W4244766028","https://openalex.org/W580682372","https://openalex.org/W1483618713","https://openalex.org/W60915090","https://openalex.org/W2137356287"],"abstract_inverted_index":{"Switching":[0,25],"active":[1],"memory":[2,16,27],"banks":[3,28,71,135],"at":[4,48],"runtime":[5,140],"allows":[6],"a":[7,10,87,157,161,184],"processor":[8],"with":[9,74,160,223,275],"narrow":[11],"address":[12],"bus":[13],"to":[14,42,79,116,195,201,203,210,267],"access":[15],"that":[17,137,149,256,268],"exceeds":[18],"ranges":[19],"normally":[20,93],"addressable":[21],"via":[22],"the":[23,35,49,69,80,90,128,138,143,150,177,212,220,232,253,257,279],"bus.":[24],"code":[26,133,194],"is":[29,83,92,102,145,152],"regaining":[30],"interest":[31],"in":[32,226],"microcontrollers":[33],"for":[34,186],"Internet":[36],"of":[37,55,60,130,142,188,193,199,259,269],"Things":[38],"(IoT),":[39],"which":[40,82,191,198],"have":[41],"run":[43],"continuously":[44],"growing":[45],"software,":[46],"while":[47],"same":[50],"time":[51],"consuming":[52],"ultra-small":[53],"amounts":[54],"energy.":[56],"To":[57],"make":[58],"use":[59],"bank":[61],"switching,":[62],"such":[63,136],"software":[64,101,172,243],"must":[65],"be":[66],"partitioned":[67,280],"among":[68,134,215],"available":[70],"and":[72,155,169,182,207,230,249],"augmented":[73],"bank-switching":[75],"instructions.":[76],"In":[77,122,251],"contrast":[78],"augmenting,":[81],"done":[84,94],"automatically":[85,119],"by":[86,96,262,273],"compiler,":[88],"today":[89],"partitioning":[91,131],"manually":[95,272],"programmers.":[97],"However,":[98],"since":[99],"IoT":[100,242],"cross-compiled":[103],"on":[104,235,278],"much":[105],"more":[106],"powerful":[107],"machines":[108],"than":[109],"its":[110,247],"target":[111],"microcontrollers,":[112],"it":[113,118,165],"becomes":[114],"possible":[115],"partition":[117],"during":[120],"compilation.":[121],"this":[123],"article,":[124],"we":[125],"thus":[126],"study":[127],"problem":[129,151,178],"program":[132,144],"resulting":[139,233],"performance":[141,258],"maximized.":[146],"We":[147,218],"prove":[148],"NP":[153],"-hard":[154],"propose":[156],"heuristic":[158,185],"algorithm":[159,175,264],"low":[162],"complexity,":[163],"so":[164],"enables":[166],"fast":[167],"compilation":[168],"hence":[170],"interactive":[171],"development.":[173],"The":[174],"decomposes":[176],"into":[179],"three":[180],"subproblems":[181],"introduces":[183],"each":[187],"them:":[189],"(1)":[190],"pieces":[192],"partition,":[196],"(2)":[197],"them":[200],"assign":[202],"permanently":[204],"mapped":[205],"banks,":[206],"(3)":[208],"how":[209],"divide":[211],"remaining":[213],"ones":[214],"switchable":[216],"banks.":[217],"integrate":[219],"algorithm,":[221],"together":[222],"earlier":[224],"ones,":[225],"an":[227],"open-source":[228],"compiler":[229],"test":[231],"solution":[234],"synthetic":[236],"as":[237,239],"well":[238],"actual":[240],"commercial":[241],"bases,":[244],"thereby":[245],"demonstrating":[246],"advantages":[248],"drawbacks.":[250],"particular,":[252],"results":[254],"show":[255],"partitions":[260,270],"produced":[261],"our":[263],"comes":[265],"close":[266],"created":[271],"programmers":[274],"expert":[276],"knowledge":[277],"code.":[281]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2018,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
