61
Andrés Amaya García Reinventing a parallel machine from the past [email protected]

transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Andrés Amaya García!

transputer.orgReinventing a parallel machine from the past!

[email protected]!

Page 2: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

About me…!▸  Andrés Amaya García!

▸  Graduated from the University of Bristol in 2015!

▸  MEng Computer Science!

Page 3: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

“Once upon a time, nine (rainy) months ago…!

Page 4: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

The Transputer!

Page 5: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Transistor! Transputer! System!

Page 6: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Transputer applications!

Page 7: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Transputer applications!

Amstrad TV set-top box contains ST20!

Page 8: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Transputer applications!

Amstrad TV set-top box contains ST20!

HETE-2 contains T805 Transputers!

Page 9: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Project objectives!

Page 10: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Project objectives!▸  Open-source.!

Page 11: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Project objectives!▸  Open-source.!

▸  Supports Transputer instruction set.!

Page 12: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Project objectives!▸  Open-source.!

▸  Supports Transputer instruction set.!

▸  Different micro-architecture.!

Page 13: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

The Internet of Things (IoT) is all about connectivity!!

Page 14: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Project objectives!▸  Open-source.!

▸  Supports Transputer instruction set.!

▸  Different micro-architecture.!

Page 15: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Project objectives!▸  Open-source.!

▸  Supports Transputer instruction set.!

▸  Different micro-architecture.!

▸  New external communication mechanism and I/O interface.!

Page 16: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

How does the Transputer work?!

Page 17: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Occam!

▸  Occam is a high-level programming language developed at Inmos hand-in-hand with the Transputer.!

▸  Explicit concurrency and interprocess communication.!

Page 18: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Occam!

▸  Occam is a high-level programming language developed at Inmos hand-in-hand with the Transputer.!

▸  Explicit concurrency and interprocess communication.!

Page 19: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

“Microcomputer Division Confidential Author: Roger Shepherd

W H I L E a c t i v eYA L I N T i n t e r r u p t a b l e I S G o t o S N P B i t \ / ( l O B i t \ / ( M o v e B i t \ /

( T i m e l n s B i t \ / T i m e D e l B i t ) ) ) :S E Q

— c o m p l e t e d i n d i c a t e s 1 £ c u r r e n t I n s t r u c t i o n h a s t e r m i n a t e dc o m p l e t e d : = ( S t a t u s R e g / \ I n t e r r u p t a b l e ) = 0v a l l d P r o c e s s : = W p t r < > N o t P r o c e s s . p

P R I A L T

(S ta tusReg / \ Go toSNPBi t ) <> 0 & SKIPS t a r t N e x t P r o c e s s ( )

(P r i o r i t y = 0 ) AND (NOT (TNex tReg [0 ] AFTER C lockReg [0 ] ) ) ANDc o m p l e t e d & S K I P

H a n d l e T l m e r R e g u e s t ( 0 )

A L T h e = 0 F O R L l n k C h a n s( P r i o r i t y = 0 ) A N D c o m p l e t e d & F r o m C h a n [ h c ] [ 0 ] ? t o k e n

H a n d l e C h a n n e l R e q u e s t ( t o k e n , h e )

( P r i o r i t y = 1 ) A N D(NOT (TNextRegCO] AFTER ClockReg[0])) & SKIP

H a n d l e T l m e r R e g u e s t ( 0 )

A L T h e = 0 F O R L l n k C h a n s

( P r i o r i t y = 1 ) & F r o m C h a n [ h c ] [ 0 ] ? t o k e nH a n d l e C h a n n e l R e q u e s t ( t o k e n , h e )

( P r i o r i t y = 1 ) A N D ( N O T ( T N e x t R e g [ l ] A F T E R C l o c k R o g [ l ] ) ) A N Dc o m p l e t e d & S K I P

H a n d l e T l m e r R e g u e s t ( 1 )

A L T h e = 0 F O R L l n k C h a n s

( P r i o r i t y = 1 ) A N D c o m p l e t e d & F r o m C h a n [ h c ] [ 1 ] ? t o k e nH a n d l e C h a n n e l R e q u e s t ( t o k e n , h e )

v a l l d P r o c e s s & S K I PI F

( S t a t u s R e g / \ T i m e D e l B i t ) < > 0D e l e t e M l d d l e S t e p ( B r e g , C r e g )

( S t a t u s R e g / \ T l m e l n s B l t ) < > 0I n s e r t M l d d l e S t e p ( A r e g , B r e g , C r e g )

( S t a t u s R e g / \ M o v e B i t ) < > 0B l o c k M o v e M l d d l e S t e p ( C r e g , B r e g , A r e g )

T R U E

SEQB u l l d N e x t I n s t r u c t i o n ( I p t r R e g , O r e g , c o d e )I F

c o d e < > f . o p rP r i m a r y ( c o d e )

c o d e = £ . o p rS e c o n d a r y ( O r e g )

Oreg : =s 0

Prioritised scheduiing

The execution of a low priority process can be interrupted when a high priority process becomes runnable asdefined above. In particular certain instructions are interruptable:

move message // input message // output message //

Microcomputer Division Confidential 2 0 Restricted Document September 27,1988

The Devil is in the detail!

Page 20: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

“Microcomputer Division Confidential Author: Roger Shepherd

W H I L E a c t i v eYA L I N T i n t e r r u p t a b l e I S G o t o S N P B i t \ / ( l O B i t \ / ( M o v e B i t \ /

( T i m e l n s B i t \ / T i m e D e l B i t ) ) ) :S E Q

— c o m p l e t e d i n d i c a t e s 1 £ c u r r e n t I n s t r u c t i o n h a s t e r m i n a t e dc o m p l e t e d : = ( S t a t u s R e g / \ I n t e r r u p t a b l e ) = 0v a l l d P r o c e s s : = W p t r < > N o t P r o c e s s . p

P R I A L T

(S ta tusReg / \ Go toSNPBi t ) <> 0 & SKIPS t a r t N e x t P r o c e s s ( )

(P r i o r i t y = 0 ) AND (NOT (TNex tReg [0 ] AFTER C lockReg [0 ] ) ) ANDc o m p l e t e d & S K I P

H a n d l e T l m e r R e g u e s t ( 0 )

A L T h e = 0 F O R L l n k C h a n s( P r i o r i t y = 0 ) A N D c o m p l e t e d & F r o m C h a n [ h c ] [ 0 ] ? t o k e n

H a n d l e C h a n n e l R e q u e s t ( t o k e n , h e )

( P r i o r i t y = 1 ) A N D(NOT (TNextRegCO] AFTER ClockReg[0])) & SKIP

H a n d l e T l m e r R e g u e s t ( 0 )

A L T h e = 0 F O R L l n k C h a n s

( P r i o r i t y = 1 ) & F r o m C h a n [ h c ] [ 0 ] ? t o k e nH a n d l e C h a n n e l R e q u e s t ( t o k e n , h e )

( P r i o r i t y = 1 ) A N D ( N O T ( T N e x t R e g [ l ] A F T E R C l o c k R o g [ l ] ) ) A N Dc o m p l e t e d & S K I P

H a n d l e T l m e r R e g u e s t ( 1 )

A L T h e = 0 F O R L l n k C h a n s

( P r i o r i t y = 1 ) A N D c o m p l e t e d & F r o m C h a n [ h c ] [ 1 ] ? t o k e nH a n d l e C h a n n e l R e q u e s t ( t o k e n , h e )

v a l l d P r o c e s s & S K I PI F

( S t a t u s R e g / \ T i m e D e l B i t ) < > 0D e l e t e M l d d l e S t e p ( B r e g , C r e g )

( S t a t u s R e g / \ T l m e l n s B l t ) < > 0I n s e r t M l d d l e S t e p ( A r e g , B r e g , C r e g )

( S t a t u s R e g / \ M o v e B i t ) < > 0B l o c k M o v e M l d d l e S t e p ( C r e g , B r e g , A r e g )

T R U E

SEQB u l l d N e x t I n s t r u c t i o n ( I p t r R e g , O r e g , c o d e )I F

c o d e < > f . o p rP r i m a r y ( c o d e )

c o d e = £ . o p rS e c o n d a r y ( O r e g )

Oreg : =s 0

Prioritised scheduiing

The execution of a low priority process can be interrupted when a high priority process becomes runnable asdefined above. In particular certain instructions are interruptable:

move message // input message // output message //

Microcomputer Division Confidential 2 0 Restricted Document September 27,1988

The Devil is in the detail!

Page 21: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Front

Back

A

B

C

Workspace pointer

Instruction pointer

Operand

Scheduling registers

Running process registers

Process X(queued process)

Process Y(queued process)

Process Z(running process)

Workspaces

Instructions

Page 22: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Interprocess communication!

▸  Special Transputer instructions implement Occam primitives efficiently.!

▸  Communication performed either through channel in memory or physical links.!

Page 23: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

But I want to hear about the OpenTransputer!!

Page 24: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Processor components!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Page 25: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Processor components!

Page 26: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Processor components!

Page 27: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Processor components!

Page 28: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Processor components!

Page 29: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

CPU!Control Unit

Fetch UnitDatapath

(Register file, AU, LU,Memory addressing, etc.)

Memory

Page 30: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control Unit

Fetch UnitDatapath

(Register file, AU, LU,Memory addressing, etc.)

Memory

CPU!

Page 31: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control Unit

Fetch UnitDatapath

(Register file, AU, LU,Memory addressing, etc.)

Memory

CPU!

Page 32: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

CPU!Control Unit

Fetch UnitDatapath

(Register file, AU, LU,Memory addressing, etc.)

Memory

Page 33: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control unit!

▸  Microcoded control unit.!

▸  Control signals stored in Read-Only Memory (ROM).!

▸  Area savings and potentially less complex.!

▸  Designed with a microcode strategy.!

▸  Control signals generated by hardwired logic.!

▸  Potentially faster than ROM.!

Inmos Transputer! OpenTransputer!

Page 34: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control unit!Microinstructions (human-readable)

Page 35: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control unit!Microinstructions (human-readable)

Verilog HDL (Not so human-readable)

Run tools

Page 36: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control unit!Microinstructions (human-readable)

Verilog HDL (Not so human-readable)

Control Unit

Run tools

Integrate

Page 37: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer microinstructions!

CJ0  ROMp0(0)          CmpconstfromA          Condall(CJ1,CJ2);  

CJ1  AfromB          BfromC          OfromClear          Gotoplus1;  

Page 38: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Control Unit

Fetch UnitDatapath

(Register file, AU, LU,Memory addressing, etc.)

Memory

CPU!

Page 39: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Inmos Transputer datapath!

Page 40: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer datapath!

Page 41: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer datapath!

‘Wider’ datapath

Page 42: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer datapath!

More parallelism

Page 43: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer datapath!Shadow registers

Page 44: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Processor components!

Page 45: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

External!communication!Inmos Transputer! OpenTransputer!

Transputer Transputer Transputer

Transputer

TransputerTransputer

TransputerTransputer

Transputer

OpenTransputer

OpenTransputer

OpenTransputer

OpenTransputer

Page 46: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

▸  There are 16 input ports and a single output port.!!▸  Extended the original Transputer controllers to

support virtual channels allowing an arbitrary number of processes to be queued to perform output operations.!

Autonomous link controllers!

Page 47: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Message routing!

Route towards edge (RTE)Route towards core (RTC)

OpenTransputer(receiver)

OpenTransputer(sender)

Turning point

Layer: 3RTE: 10RTC: 00

Layer: 2RTE: 10RTC: 00

Layer: 1RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

0 1

0131

0000

4

10

515

00

1626

0011

2730

Initial address

Page 48: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Message routing!

Route towards edge (RTE)Route towards core (RTC)

OpenTransputer(receiver)

OpenTransputer(sender)

Turning point

Layer: 3RTE: 10RTC: 00

Layer: 2RTE: 10RTC: 00

Layer: 1RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

0 1

0131

0000

4

10

515

00

1626

0011

2730

Initial address

Input port

Page 49: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Message routing!

Route towards edge (RTE)Route towards core (RTC)

OpenTransputer(receiver)

OpenTransputer(sender)

Turning point

Layer: 3RTE: 10RTC: 00

Layer: 2RTE: 10RTC: 00

Layer: 1RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

0 1

0131

0000

4

10

515

00

1626

0011

2730

Initial address

RTE and RTC

Page 50: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Message routing!

Route towards edge (RTE)Route towards core (RTC)

OpenTransputer(receiver)

OpenTransputer(sender)

Turning point

Layer: 3RTE: 10RTC: 00

Layer: 2RTE: 10RTC: 00

Layer: 1RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

0 1

0131

0000

4

10

515

00

1626

0011

2730

Initial address

Depth

Page 51: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Message routing!

Route towards edge (RTE)Route towards core (RTC)

OpenTransputer(receiver)

OpenTransputer(sender)

Turning point

Layer: 3RTE: 10RTC: 00

Layer: 2RTE: 10RTC: 00

Layer: 1RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

Layer: 0RTE: 10RTC: 00

0 1

0131

0000

4

10

515

00

1626

0011

2730

Initial address

Page 52: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

OpenTransputer CPU

16 input link controllers

Output link controllers

15 I/O pin handlers

Memory

Processor components!

Page 53: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

▸  I/O pins expose the same interface as communication links.!

!▸  Introduced an instruction (confio) that can be

used to configure the I/O pins.!

OpenTransputer I/O interface!

Page 54: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

So… what about performance?!

Page 55: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Synthesis!Synthesised design for both the ZedBoard XC7Z020-CLG484 FPGA and a 180nm manufacturing process.!

Page 56: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Inmos Transputer OpenTransputer

Area 64 mm2! 3.69 mm2!

Manufacturing technology 1000 nm! 180 nm!

Comparing synthesis results!

Page 57: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Inmos Transputer OpenTransputer

Area 64 mm2! 3.69 mm2!

Manufacturing technology 1000 nm! 180 nm!

Comparing synthesis results!

5.6

Page 58: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Inmos Transputer OpenTransputer

Area 64 mm2! 3.69 mm2!

Manufacturing technology 1000 nm! 180 nm!

Comparing synthesis results!

5.6

4.22

Page 59: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

Instruction Inmos Transputer OpenTransputer

ldl! 2! 1!

startp! 12! 3-5!

endp! 13! 3!

move! 8 + 2w*! 6 + 5w*!

Comparing cycle counts!

* w is the number of words to copy.!

Page 60: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

ü  OpenTransputer based on the Transputer architecture.!

!ü  Different micro-architecture to take advantage of

modern manufacturing technologies!!ü  New external communication mechanism.!!ü  New I/O interface.!

Conclusion!

Andrés Amaya Garcí[email protected]!

Page 61: transputer - WoTUG · Transputer applications! Amstrad TV set-top box contains ST20! HETE-2 contains T805 Transputers!

ü  OpenTransputer based on the Transputer architecture.!

!ü  Different micro-architecture to take advantage of

modern manufacturing technologies!!ü  New external communication mechanism.!!ü  New I/O interface.!

Conclusion!

Thank you!!Andrés Amaya García!

[email protected]!