System-on-Chip Design HW/SW Interfaces and Communica;ons Hao Zheng - - PowerPoint PPT Presentation

system on chip design
SMART_READER_LITE
LIVE PREVIEW

System-on-Chip Design HW/SW Interfaces and Communica;ons Hao Zheng - - PowerPoint PPT Presentation

System-on-Chip Design HW/SW Interfaces and Communica;ons Hao Zheng Comp Sci & Eng U of South Florida 1 System Structural Model Mem CPU P1 P2 Arbiter Bridge P3 P5 P4 HW HW 2 Basic Elements of HW/SW Interfaces 1. On-chip


slide-1
SLIDE 1

System-on-Chip Design

HW/SW Interfaces and Communica;ons

Hao Zheng Comp Sci & Eng U of South Florida

1

slide-2
SLIDE 2

System Structural Model

2

Bridge HW P5 HW P3 P4 P1 P2 CPU Mem Arbiter

slide-3
SLIDE 3

Basic Elements of HW/SW Interfaces

3

  • 1. On-chip communicaCon fabrics, ex. buses
slide-4
SLIDE 4

Basic Elements of HW/SW Interfaces

4

  • 2. CPU interface for SW to communicate with custom HW.
slide-5
SLIDE 5

Basic Elements of HW/SW Interfaces

5

  • 3. HW interface for custom HW to communicate with CPU.
slide-6
SLIDE 6

Basic Elements of HW/SW Interfaces

6

  • 4. SW driver converts SW IO operaCons to operaCons

supported by CPU interface.

slide-7
SLIDE 7

Basic Elements of HW/SW Interfaces

7

  • 5. Programming model where SW running CPU uses to

control custom HW module.

slide-8
SLIDE 8

Synchroniza;on Schemes

8

SynchronizaCon is necessary for effecCve communicaCons, i.e. data transferred between CPU and HW correctly. SynchronizaCon is part of interface implementaCon.

slide-9
SLIDE 9

Synchroniza;on Schemes

9

Time: how synchronizaCon is defined over Cme.

slide-10
SLIDE 10

Synchroniza;on Schemes

10

Data: how data is represented in synchronizaCon.

slide-11
SLIDE 11

Synchroniza;on Schemes

11

Control: how synchronizaCon is implemented locally in individual modules..

slide-12
SLIDE 12

Semaphores

  • Used to control of accesses to shared

resource.

  • Two ops on semaphore S:

– P(S): acquire S. – V(S): release S.

  • How can we ensure an
  • rder between thread

1 & 2?

12

thread 1: … P(S); x++; V(s); … thread 2: … P(S); x = x – 2; V(s); …

slide-13
SLIDE 13

Semaphores

13

int shared_data; semaphore S; enCty one { P(S); while (1) { short_delay(); shared_data = …; V(S); }} enCty two { short_delay(); while (1) { P(S); rd = shared_data; }}

slide-14
SLIDE 14

Semaphores

  • Semaphores can only guarantee exclusive

access to shared resources.

– Difficult to control precise data transfer – MulCple semaphores can be used, but not elegant.

  • Handshaking: a signaling protocol between

two enCCes to coordinate data transfers.

– Can handle enCCes with different speeds.

14

slide-15
SLIDE 15

One-Way Handshake

15

Assume that enCty two is slower.

slide-16
SLIDE 16

Two-Way Handshake

16

slide-17
SLIDE 17

X

Two-Way Handshake for Data Transfer

17

req ack data

X X X X X

d1 clk req ack data Src Dest

X X X

slide-18
SLIDE 18

Communica;on Constrained vs Computa;on Constrained

18

System performance should consider both computaCon performance and communicaCon overhead.

slide-19
SLIDE 19

Communica;on Constrained vs Computa;on Constrained

19

slide-20
SLIDE 20

Tight and Loose Coupling

20

Coupling: the level of interacCons between two components. Degree of coupling affects choice and implementaCon

  • f

synchronizaCon.

slide-21
SLIDE 21

Dedicated vs Shared Interfaces

21

Coprocessor Memory-mapped Factor interface interface Addressing Processor-specific On-chip bus address Connection Point-to-point Shared Latency Fixed Variable Throughput Higher Lower

Cght coupling loose coupling Nature of coupling affects the organizaCon of HW/SW interfaces

slide-22
SLIDE 22

Reading Guide

  • Chapter 9, the CoDesign book.

22