{"title":"硬件加速Java虚拟机的堆访问优化","authors":"Joonas Tyystjärvi, T. Säntti, J. Plosila","doi":"10.1109/ISSOC.2010.5625548","DOIUrl":null,"url":null,"abstract":"The REALJava virtual machine consists of a software partition running on a general-purpose CPU and a hardware partition containing one or more Java co-processor units. The co-processor units execute most of the bytecode, while the software partition handles complex instructions and tasks such as class loading, input and output and memory management. The software partition and the co-processors communicate using a general communication channel such as a bus. By far the most common instructions executed in the software partition are heap accesses. Because executing instructions on software is relatively slow, code-improving transformations which reduce the number of interrupts generated and the amount of communication can have a large impact on performance. An improvement on an existing technique called supersequence transformation is presented which makes the technique more general and reduces the amount of communication required between the partitions and the number of interrupts generated. The improved technique is shown to improve performance over the original in many programs.","PeriodicalId":252669,"journal":{"name":"2010 International Symposium on System on Chip","volume":"131 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2010-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Heap access optimizations for a hardware-accelerated Java virtual machine\",\"authors\":\"Joonas Tyystjärvi, T. Säntti, J. Plosila\",\"doi\":\"10.1109/ISSOC.2010.5625548\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The REALJava virtual machine consists of a software partition running on a general-purpose CPU and a hardware partition containing one or more Java co-processor units. The co-processor units execute most of the bytecode, while the software partition handles complex instructions and tasks such as class loading, input and output and memory management. The software partition and the co-processors communicate using a general communication channel such as a bus. By far the most common instructions executed in the software partition are heap accesses. Because executing instructions on software is relatively slow, code-improving transformations which reduce the number of interrupts generated and the amount of communication can have a large impact on performance. An improvement on an existing technique called supersequence transformation is presented which makes the technique more general and reduces the amount of communication required between the partitions and the number of interrupts generated. The improved technique is shown to improve performance over the original in many programs.\",\"PeriodicalId\":252669,\"journal\":{\"name\":\"2010 International Symposium on System on Chip\",\"volume\":\"131 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2010-11-09\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2010 International Symposium on System on Chip\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ISSOC.2010.5625548\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2010 International Symposium on System on Chip","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISSOC.2010.5625548","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Heap access optimizations for a hardware-accelerated Java virtual machine
The REALJava virtual machine consists of a software partition running on a general-purpose CPU and a hardware partition containing one or more Java co-processor units. The co-processor units execute most of the bytecode, while the software partition handles complex instructions and tasks such as class loading, input and output and memory management. The software partition and the co-processors communicate using a general communication channel such as a bus. By far the most common instructions executed in the software partition are heap accesses. Because executing instructions on software is relatively slow, code-improving transformations which reduce the number of interrupts generated and the amount of communication can have a large impact on performance. An improvement on an existing technique called supersequence transformation is presented which makes the technique more general and reduces the amount of communication required between the partitions and the number of interrupts generated. The improved technique is shown to improve performance over the original in many programs.