Implementing TALT - PowerPoint PPT Presentation

About This Presentation
Title:

Implementing TALT

Description:

Low-cost supercomputing using idle cycles of Internet-connected PCs ... Many interesting ideas, let's talk about 3: Register file subtyping. Universal polymorphism ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 31
Provided by: spence2
Category:

less

Transcript and Presenter's Notes

Title: Implementing TALT


1
Implementing TALT
  • William Lovas
  • with Karl Crary

2
Grid Computing
  • Low-cost supercomputing using idle cycles of
    Internet-connected PCs
  • Cray X1 supercomputer 8.4 million
  • Pentium 4, 2.2 GHz 699 (with rebate!)
  • Getting everyone elses PCs to do your work for
    you priceless

3
Grid Computing
PCs on The Internet
Developer
4
Grid Computing
  • SETI_at_Home project at Berkeley
  • scanning radio signals for signs of intelligence
  • Folding_at_Home project at Stanford
  • studying diseases related to protein folding
  • distributed.net
  • cracking encryption algorithms since 1997

5
Grid Computing
  • Very powerful distributed.net, 22 hours to brute
    force 1 DES key out of 256 ( over 72
    quadrillion!)
  • distributed.net equivalent to 160,000 Pentium II
    266 MHz PCs

6
Grid Computing
  • Few examples, because grid computing depends on
    users trust in the code they run
  • ConCert Project to develop a framework for
    trustless grid computing

7
Roadmap
  • Motivation check!
  • Methodology of TALT the how and why
  • A taste of TALT to whet your appetite
  • My work on TALT what I accomplished, what I
    learned

8
Establishing Safety
  • How can we verify that code is safe?
  • High-level languages use type systems
  • Why cant low-level languages, too?

9
Typed Assembly Language
  • Formalizes a subset of x86 instruction set
  • Adds a type system that demonstrates safety
  • Idea employ powerful tools from type theory to
    tame the assembly language beast!
  • subtyping, polymorphism

10
TALT -- TAL Two
  • Refines and extends the ideas from TAL
  • Establishes a framework for future type systems
  • One type system wont meet everyones needs

Two type systems good gt Four type systems
better! -- Benjamin C. Pierce
11
How TALT works
  • Trusted
  • Twelf proof checker
  • and meta-theorem prover
  • Safety policy (SP)
  • safe machine states, safe transitions
  • Runtime
  • Untrusted
  • Code
  • Type system (TS)
  • Safety proof (TS(p) gt SP(p))
  • Machine-checkable, via Twelf

12
How TALT works
code
type system
Twelf
type system
safety proof
safety policy
code
runtime
13
A taste of TALT
  • Many interesting ideas, lets talk about 3
  • Register file subtyping
  • Universal polymorphism
  • Sized kinds

white lies ahead!
14
A taste of TALT
Register file subtyping
15
A taste of TALT
  • Register file type looks like
  • r0 t0, r1 t1, rn tn
  • Suppose a code-block expects
  • eax int, ebx int
  • Okay if register file actually has type
  • eax int, ebx int, ecx int
  • Because of register file subtyping!

16
A taste of TALT
Universal polymorphism
17
A taste of TALT
  • Suppose a function f leaves the stack unchanged
  • Stack pointer stored in register esp
  • How does a calling function know?
  • f has a type polymorphic in esp!
  • Just like SML

- fun id x x val id fn 'a -gt 'a
18
A taste of TALT
Sized kinds
19
A taste of TALT
  • Kinds the types of types
  • In TALT, the kind of a type specifies the size of
    that types values
  • A 4-byte word has type B4, which has kind T4
  • Pair of words has type B4B4, which has kind T8
  • Typing rules know the sizes of operands
  • Essential for complex addressing modes

20
My work on TALT
  • Implementation of infrastructure
  • Runtime
  • Certificate generator
  • Assembler
  • Creation of new code as well as
    simplification/extension of existing code

21
Runtime implementation
  • Runtime provides primitive operations, like
    malloc, exit, return
  • Works directly with machine code, so written in
    C, with some x86 assembly
  • Great care taken to adhere to specification
    runtime is trusted!

22
Certificate Generation
  • TALT binary looks like this

magic number
machine code
code
certificate
23
Certificate Generation
  • Certificate generator generates

magic number
machine code
code
certificate
24
Certificate Generation
  • When I arrived
  • Certificate was a typing derivation in the TALT
    type system
  • Partially implemented and buggy derivation
    generator
  • Discovery typing derivation too big to use as a
    practical certificate

25
Certificate Generation
  • And now
  • Certificate is an XTALT program, in a notation
    that Twelf understands
  • Certificate generator is 97 complete (and
    hopefully not buggy!)
  • Code is much simpler
  • Type system is a little simpler, too

26
Assembler
  • Next step translate XTALT programs into straight
    x86 assembly
  • Assembly can be run through a standard assembler
    to produce machine code

27
Assembler
  • Now we also have

magic number
machine code
code
certificate
28
Assembler
  • Then, only have to put the pieces together to
    produce TALT binaries!

29
Summary
  • Implemented TALT runtime in C, assembly
  • Implemented certificate generator in SML
  • Simplified typing rules
  • Simplified code
  • Hope to implement assembler by next week
  • Very close to a working system!

30
Summary
  • Didnt discover anything new, but
  • Learned a lot about type theory, and
  • Hacked on some interesting code!

Questions?
Write a Comment
User Comments (0)
About PowerShow.com