嵌入式Java的硬件支持与Java与硬件协处理器的交互
1. 嵌入式Java的硬件缓存支持
Java程序严重依赖堆上分配的对象以及带有垃圾回收器的自动内存管理,这导致其数据使用模式与C程序等不同。因此,为Java程序执行优化的系统可以从专门的缓存(对象缓存)中受益。
1.1 对象缓存组织
对象缓存的一种可能组织方式是通过对象引用和字段索引来访问。例如,在一个关联性为2且每个缓存行有四个字段的对象缓存中,所有标签存储器会与对象引用并行比较,同时检查各个字段的有效位,字段索引用于选择有效位多路复用器,标签比较和有效位选择的输出被送入编码器,以提供所选的缓存行,行索引和字段索引连接起来构成数据缓存的地址。
1.2 不同项目的对象缓存方案
- Mushroom项目 :该项目提出的对象缓存通过对象标识符(Java世界中的句柄)和字段偏移的组合进行索引。为优化命中率,探索了不同的组合方式,最有效的缓存索引哈希函数是上偏移位(低位用于选择缓存行中的字)与下对象标识符位的异或。仅考虑命中率时,块大小为32和64字节的缓存表现最佳,但在实际未命中惩罚的假设下,16和32字节行大小的缓存会导致每个字段访问的平均访问时间更低。对于基于间接访问的对象,研究了两种数据结构(实际对象和指向该对象的间接引用)的公共缓存和分离缓存,最佳配置是大对象缓存和小句柄间接引用缓存。
- [420]项目 :提出了面向对象的Java处理器架构支持,包括对象缓存、扩展折叠和虚拟调度缓存。对象缓存由对象引用(部分)和字段偏移索引,虚拟方法缓存旨在避免虚拟调度表以节省嵌入式设备
嵌入式Java硬件支持与协处理器交互解析
超级会员免费看
订阅专栏 解锁全文
25

被折叠的 条评论
为什么被折叠?



