240 likes | 358 Views
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
E N D
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 • 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
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
OpenDL Specification • Register Description • Instruction Set • ABI • Architecture Parameters
Instruction Set Primitive Instruction
Instruction Set Compose Instuction Side-Effect Instuction
Inheritance Mechanisms • Instruction Amalgamation • Pattern Abstraction • Common Information Extraction
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
Instruction Amalgamation Syntax Class Syntax Application
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
Pattern Abstraction Decorator Classes Decorator Application
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
Common Information Extraction Operation Class Operation Application
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