嵌入式Java硬件支持与Java与硬件协处理器的交互
在资源受限的嵌入式系统中运行 Java,面临着诸多挑战,如内存管理、执行速度等。为了解决这些问题,硬件支持成为了关键的研究方向。同时,Java 应用与硬件协处理器的交互也为提升系统性能提供了新的途径。
1. 嵌入式 Java 的硬件缓存支持
Java 程序大量依赖堆上分配的对象和垃圾回收机制进行自动内存管理,这使得其数据使用模式与 C 程序等有所不同。因此,为 Java 程序执行优化的系统可以从专门的缓存——对象缓存中受益。
- 对象缓存组织方式
- 基本访问方式 :对象缓存通过对象引用和字段索引进行访问。例如,在一个关联性为 2 且每个缓存行包含 4 个字段的对象缓存中,所有标签存储器会与对象引用并行比较,同时检查各个字段的有效位,字段索引用于选择有效位多路复用器,标签比较和有效位选择的输出被送入编码器,以提供选定的缓存行,行索引和字段索引连接起来构成数据缓存的地址。
- 不同的索引方式 :不同的项目提出了多种对象缓存的索引方式。例如,Mushroom 项目提出的对象缓存通过对象标识符(Java 中的句柄)和字段偏移的组合进行索引,通过探索不同的组合方式(如对两个字段进行异或操作)来优化命中率,最有效的哈希函数生成方式是将偏移的高位与对象标识符的低位进行异或。
- 缓存配置优化 :考虑命中率时,块大小为 32 和 64 字节的缓存表现最佳;但在考虑实际缺失代价的情况下,行大小为 16 和 3
超级会员免费看
订阅专栏 解锁全文
34

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



