andr s amaya garc a
play

Andrs Amaya Garca aa1399@bristol.ac.uk About me About me Andrs - PowerPoint PPT Presentation

Reinventing a parallel machine from the past Andrs Amaya Garca aa1399@bristol.ac.uk About me About me Andrs Amaya Garca Graduated from the University of Bristol in 2015 MEng Computer Science


  1. Reinventing a parallel machine from the past � Andrés Amaya García � aa1399@bristol.ac.uk �

  2. About me… About me… � ▸ Andrés Amaya García � ▸ Graduated from the University of Bristol in 2015 � ▸ MEng Computer Science �

  3. “ Once upon a time, nine (rainy) months ago… �

  4. The The Transputer Transputer �

  5. Transputer � System � Transistor �

  6. Transputer Transputer applications applications �

  7. Amstrad TV set-top box contains ST20 � Transputer Transputer applications applications �

  8. Amstrad TV set-top box contains ST20 � Transputer Transputer applications applications � HETE-2 contains T805 Transputers �

  9. Project objectives Project objectives �

  10. Project objectives Project objectives � ▸ Open-source. �

  11. Project objectives Project objectives � ▸ Open-source. � ▸ Supports Transputer instruction set. �

  12. Project objectives Project objectives � ▸ Open-source. � ▸ Supports Transputer instruction set. � ▸ Different micro-architecture. �

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

  14. Project objectives Project objectives � ▸ Open-source. � ▸ Supports Transputer instruction set. � ▸ Different micro-architecture. �

  15. Project objectives Project objectives � ▸ Open-source. � ▸ Supports Transputer instruction set. � ▸ Different micro-architecture. � ▸ New external communication mechanism and I/O interface. �

  16. How does the How does the Transputer Transputer work? work? �

  17. Occam Occam � ▸ Occam is a high-level programming language developed at Inmos hand-in-hand with the Transputer. � ▸ Explicit concurrency and interprocess communication. �

  18. Occam Occam � ▸ Occam is a high-level programming language developed at Inmos hand-in-hand with the Transputer. � ▸ Explicit concurrency and interprocess communication. �

  19. Microcomputer Division Confidential Author: Roger Shepherd “ W H I L E a c t i v e YA 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 d c 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 ) = 0 v 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 The Devil is in P R I A L T (StatusReg /\ GotoSNPBit) <> 0 & SKIP S t a r t N e x t P r o c e s s ( ) (Priority = 0) AND (NOT (TNextReg[0] AFTER ClockReg[0])) AND c o m p l e t e d & S K I P HandleTlmerReguest (0) the detail � 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 HandleTlmerReguest (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 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 ) (Priority = 1) AND (NOT (TNextReg[l] AFTER ClockRog[l]))AND c 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 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 ) v a l l d P r o c e s s & S K I P I F ( S t a t u s R e g / \ Ti m e D e l B i t ) < > 0 D 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 ) < > 0 I 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 ) < > 0 B 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 SEQ B 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 r P r i m a r y ( c o d e ) c o d e = £ . o p r S 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 as defined above. In particular certain instructions are interruptable: move message // input message // output message // Restricted Document September 27,1988 Microcomputer Division Confidential 2 0

  20. Microcomputer Division Confidential Author: Roger Shepherd “ W H I L E a c t i v e YA 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 d c 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 ) = 0 v 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 The Devil is in P R I A L T (StatusReg /\ GotoSNPBit) <> 0 & SKIP S t a r t N e x t P r o c e s s ( ) (Priority = 0) AND (NOT (TNextReg[0] AFTER ClockReg[0])) AND c o m p l e t e d & S K I P HandleTlmerReguest (0) the detail � 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 HandleTlmerReguest (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 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 ) (Priority = 1) AND (NOT (TNextReg[l] AFTER ClockRog[l]))AND c 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 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 ) v a l l d P r o c e s s & S K I P I F ( S t a t u s R e g / \ Ti m e D e l B i t ) < > 0 D 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 ) < > 0 I 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 ) < > 0 B 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 SEQ B 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 r P r i m a r y ( c o d e ) c o d e = £ . o p r S 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 as defined above. In particular certain instructions are interruptable: move message // input message // output message // Restricted Document September 27,1988 Microcomputer Division Confidential 2 0

  21. Workspaces Instructions Scheduling registers Process X (queued process) Front Back Process Y (queued process) Running process registers A B Process Z (running process) C Workspace pointer Operand Instruction pointer

  22. Interprocess Interprocess communication communication � ▸ Special Transputer instructions implement Occam primitives efficiently. � ▸ Communication performed either through channel in memory or physical links. �

  23. But I want to But I want to hear about the hear about the OpenTransputer! OpenTransputer! �

  24. Processor Processor components components � 16 input link controllers Memory OpenTransputer CPU 15 I/O pin handlers Output link controllers

  25. Processor Processor components components � 16 input link controllers Memory OpenTransputer CPU 15 I/O pin handlers Output link controllers

  26. Processor Processor components components � 16 input link controllers Memory OpenTransputer CPU 15 I/O pin handlers Output link controllers

  27. Processor Processor components components � 16 input link controllers Memory OpenTransputer CPU 15 I/O pin handlers Output link controllers

  28. Processor Processor components components � 16 input link controllers Memory OpenTransputer CPU 15 I/O pin handlers Output link controllers

  29. CPU CPU � Control Unit Datapath Fetch Unit Memory (Register file, AU, LU, Memory addressing, etc.)

  30. CPU CPU � Control Unit Datapath Fetch Unit Memory (Register file, AU, LU, Memory addressing, etc.)

  31. CPU CPU � Control Unit Datapath Fetch Unit Memory (Register file, AU, LU, Memory addressing, etc.)

  32. CPU CPU � Control Unit Datapath Fetch Unit Memory (Register file, AU, LU, Memory addressing, etc.)

  33. Control unit Control unit � Inmos Transputer � Inmos Transputer OpenTransputer OpenTransputer � ▸ Microcoded control ▸ Designed with a unit. � microcode strategy. � ▸ Control signals stored ▸ Control signals in Read-Only Memory generated by (ROM). � hardwired logic. � ▸ Area savings and ▸ Potentially faster than potentially less ROM. � complex. �

  34. Control unit Control unit � Microinstructions (human-readable)

  35. Control unit Control unit � Microinstructions (human-readable) Run tools Verilog HDL (Not so human-readable)

  36. Control unit Control unit � Microinstructions (human-readable) Run tools Verilog HDL (Not so human-readable) Integrate Control Unit

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend