Checked Load: Architectural support for JavaScript type-checking on mobile processors

High Performance Computer Architecture(2011)

引用 36|浏览12
暂无评分
摘要
Dynamic languages such as Javascript are the de-facto standard for web applications. However, generating efficient code for dynamically-typed languages is a challenge, because it requires frequent dynamic type checks. Our analysis has shown that some programs spend upwards of 20% of dynamic instructions doing type checks, and 12.9% on average. In this paper we propose Checked Load, a low-complexity architectural extension that replaces software-based, dynamic type checking. Checked Load is comprised of four new ISA instructions that provide flexible and automatic type checks for memory operations, and whose implementation requires minimal hardware changes. We also propose hardware support for dynamic type prediction to reduce the cost of failed type checks. We show how to use Checked Load in the Nitro JavaScript just-in-time compiler (used in the Safari 5 browser). Speedups on a typical mobile processor range up to 44.6% (with a mean of 11.2%) in popular JavaScript benchmarks. While we have focused our work on JavaScript, Checked Load is sufficiently general to support other dynamically-typed languages, such as Python or Ruby.
更多
查看译文
关键词
Java,instruction sets,mobile computing,program compilers,program diagnostics,Checked Load,ISA instructions,JavaScript architectural support,Nitro JavaScript just-in-time compiler,Web applications,dynamic instructions,dynamic languages,dynamic type checking,dynamic type checks,dynamically-typed languages,low-complexity architectural extension,memory operations,mobile processors,software-based checking,type-checking
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要