1 / 22

Retarget Open64 with an Object-Oriented ADL

Retarget Open64 with an Object-Oriented ADL. Zhen Cao Tsinghua University. Introduction. expressive, concise and high-quality architecture description languages (ADLs) desired embedded processors are growing complex

artan
Download Presentation

Retarget Open64 with an Object-Oriented ADL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Retarget Open64 with an Object-Oriented ADL Zhen Cao Tsinghua University

  2. Introduction • expressive, concise and high-quality architecture description languages (ADLs) desired • embedded processors are growing complex • describing detailed architecture information for compilers are more and more complicated • ADL description is tedious and error-prone to maintain • redundancy, consistency • object-oriented ADL OpenDL • reduced redundancy

  3. Related Work • Structural • MIMOLA (MSSQ) • HDL-like, as a netlist of register-transfer modules • Behavioral • nML (CHESS), ISDL (AVIV) • instruction-set level, no explicit pipeline • Mixed • MDes, Expression (Trimaran) • LISP-like, split description into instruction-set and structural • LISA (CoSy), RADL • C-like, extension works add semantics to structural behavior • ArchC (SystemC and C++) • storage-based consistency coverification • No object-oriented mechanism supported

  4. OpenDL Specification • Register Description • Instruction Set • ABI • Architecture Parameters

  5. Register Definition

  6. Instruction Set Primitive Instruction

  7. Instruction Set Compose Instuction Side-Effect Instuction

  8. ABI

  9. Inheritance Mechanisms • Instruction Amalgamation • Pattern Abstraction • Common Information Extraction

  10. Instruction Amalgamation • instructions of a group perform much like each other except for routine behaviors • syntax form, i.e. add, add., addo, addo. • . form affects LT, GT, EQ, SO of CR0 • o form affects SO, OV of XER • define a class to describe the four syntax forms • describe primitive instructions • apply syntax form class to primitive instruction to automatically generate instructions with syntax forms

  11. Instruction Amalgamation Syntax Class Syntax Application

  12. Pattern Abstraction • instructions of the same operation type usually form a decorator pattern • add, addc, adde, addi, addic, addis • carrying, extended, immediate • decorators apply to mul, and, etc • abstract decorators as semantic classes • designate decorators to primitive instructions to generate decorated instructions

  13. Pattern Abstraction Decorator Classes Decorator Application

  14. Common Information Extraction • instructions can be sorted into a few classes • integer and float-point arithmetic, bit-operation, memory access, SIMD, data transfer between gp and control registers • and, or, nand, nor, xor • extract common information out as operation classes • instructions inherit operation classes

  15. Common Information Extraction Operation Class Operation Application

  16. Compression Results

  17. Backend Framework

  18. Experiments • Apple iBook G4 • PowerPC 7447A 1.33GHz • 1GB Memory • Ubuntu 8.04 • kernel version 2.6.24-23-powerpc • GCC 4.1.3 • Open64 4.2

  19. GCC-Torture Results

  20. SPEC2000 Results

  21. Comparison of Targets

  22. Thanks

More Related