Retarget Open64 with an Object-Oriented ADL
description
Transcript of Retarget Open64 with an Object-Oriented ADL
![Page 1: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/1.jpg)
Retarget Open64 with an Object-Oriented ADL
Zhen Cao
Tsinghua University
![Page 2: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/2.jpg)
Introduction
expressive, concise and high-quality architecture description languages (ADLs) desired embedded processors are growing complex describing detailed architecture information for compilers ar
e more and more complicated ADL description is tedious and error-prone to mainta
in redundancy, consistency
object-oriented ADL OpenDL reduced redundancy
![Page 3: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/3.jpg)
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
![Page 4: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/4.jpg)
OpenDL Specification
Register Description Instruction Set ABI Architecture Parameters
![Page 5: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/5.jpg)
Register Definition
![Page 6: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/6.jpg)
Instruction Set
Primitive Instruction
![Page 7: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/7.jpg)
Instruction Set
Compose Instuction Side-Effect Instuction
![Page 8: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/8.jpg)
ABI
![Page 9: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/9.jpg)
Inheritance Mechanisms
Instruction Amalgamation Pattern Abstraction Common Information Extraction
![Page 10: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/10.jpg)
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 aut
omatically generate instructions with syntax forms
![Page 11: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/11.jpg)
Instruction Amalgamation
Syntax Class Syntax Application
![Page 12: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/12.jpg)
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
![Page 13: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/13.jpg)
Pattern Abstraction
Decorator Classes Decorator Application
![Page 14: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/14.jpg)
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
![Page 15: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/15.jpg)
Common Information Extraction
Operation Class Operation Application
![Page 16: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/16.jpg)
Compression Results
![Page 17: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/17.jpg)
Backend Framework
![Page 18: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/18.jpg)
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
![Page 19: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/19.jpg)
GCC-Torture Results
![Page 20: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/20.jpg)
SPEC2000 Results
![Page 21: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/21.jpg)
Comparison of Targets
![Page 22: Retarget Open64 with an Object-Oriented ADL](https://reader036.fdocuments.in/reader036/viewer/2022062314/568149ee550346895db72156/html5/thumbnails/22.jpg)
Thanks