49
Module 10 :Architectural Integration o f SoC 김김김 김김 ( 김김김김김 )

Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

  • View
    228

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

Module 10:Architectural Integration of SoC

김재석 교수

( 연세대학교 )

Page 2: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

2Copyright 2003ⓒ

( 모듈 10) 목차 Architectural Element – Arbiter Architectural Element – Decoder Architectural Element – Wrapper Architectural Element – DMA Architectural Element – Processor Inter-Processor Communication Interface Different Communication Protocol Bus Bandwidth

Page 3: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

3Copyright 2003ⓒ

General SoC Architecture Elements of SoC Architecture

Arbiter Decoder Wrapper DMA Bridge Processors

Page 4: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

4Copyright 2003ⓒ

General SoC Architecture Typical Elements of SoC

Processor1 Processor2 ProcessorN

FunctionalUnit1

FunctionalUnit2

DMA

Communication Protocol

I/O

FunctionalUnitM

CommunicationProtocol

Bridge

Arbiter

Decoder

Wrapper Wrapper Wrapper

Wrapper Wrapper Wrapper

Page 5: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

5Copyright 2003ⓒ

Arbiter 의 정의 SoC 에서 on-chip bus 가 서로 다른 컴포넌트들을 연결

시켜줄 때 , 여러 Master 블록중 특정 블록을 선택하여 버스 사용 권한을 부여하는 블록 같은 resource 에 접근해야 하는 block 간에 충돌이 발생하지

않도록 , request 를 요청한 특정 block 에만 동적으로 우선순위를 할당하여 bus 의 master 권한 부여

Bus Components

Initiator component

Master

Target component

SlaveResponse

Request

Initiator component

Master

Target component

Slave

Slave Master

On-Chip Bus

Page 6: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

6Copyright 2003ⓒ

Arbiter 구현 예제 Arbiter Examples

Serial scheme

Parallel scheme

- bus 위의 모든 initiator (block) 는 고정된 우선순위를 가짐

- 모든 initiator 는 arbiter 에게 request 를 parallel 하게 보낼 수 있고 , request 가 먼저 도착한 순서대로 우선 순위를 가짐

Page 7: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

7Copyright 2003ⓒ

Arbiter 구현 예제 Polling scheme

Arbitration algorithm 에 따른 arbiter 의 종류 Fixed-priority arbiter : Daisy-chain arbiter

: Binary-tree arbiter Dynamic-priority arbiter : Parallel-request-sampler priority-

arbiter

- 모든 initiator 는 차례대로 우선순위를 가짐 . 만약 먼저 하나의 initiator 가 우선순위를 갖게 되면 다음 cycle 에서 그 다음 block 이 우선순위를 갖도록 하는 방식으로 모든 block 이 차례를 갖게 될 때까지 순환

Page 8: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

8Copyright 2003ⓒ

Decoder 의 정의

내부 Register 에 저장된 주소를 참조하여 , data 를 전송할 목표가 되는 Slave 장치를 선택하는 블록

Decoder 의 동작 Decoder 는 항상 연결된 bus 에서 주소의 전송을 감시 주소가 감지되면 내부 Register 를 참조해 slave 를 선택 내부 Register 에는 host processor 로 부터 지정된 slave 의

주소가 기억

Page 9: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

9Copyright 2003ⓒ

Decoder 동작 및 구조 Decoder 가 포함된 bus 의

구조

Processor1 Processor2 ProcessorN

FunctionalUnit1

FunctionalUnit2

DMA

Communication Protocol

Arbiter

Decoder

Decoder

Decoder Logic

Host processor interface

Register

Page 10: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

10Copyright 2003ⓒ

wrapper 의 정의 아키텍쳐와 설계자에 의해 주어지는 파라미터 ( 프로 세서

타입 , 프로토콜 , etc) 에 근거하여 , 상이한 프로토콜 블록 간의 통신을 중재해 주는 블록

서로 다른 인터페이스와 프로토콜을 갖는 컴포넌트 간의 통신을 위해 특별한 프로토콜과 액세스가 필요

multiprocessor SoC 의 복잡한 통신 프로토콜과 네트워크로 인한 시스템의 복잡도 감소를 위해 설계 재사용 기법 이용

컴포넌트의 physical interface 를 logical interface 로 설계 wrapper 가 서로 다른 프로토콜을 변화시켜 줌

Page 11: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

11Copyright 2003ⓒ

wrapper 의 구현 시뮬레이션 단계 – FIFO 채널과 cycle-accurate 모델간의

mixed-level co-simulation 이 가능하도록 함 합성 단계 – IP 의 통신 프로토콜을 on-chip bus 의 통신

프로토콜로 변환 A typical Multiprocessor SoC (MP SoC)

CPU

DSPMEMORY

wrapper

wrapper

wrapper

Communication network

Page 12: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

12Copyright 2003ⓒ

wrapper 의 구현 디자인의 복잡도를 감소시키기 위하여 모든 wrapper

설계를 위한 일반적인 아키텍쳐를 정의하여 공유할 수 있는 라이브러리를 만들 필요가 있음

Architectural model at different abstraction levels for SoC design Virtual architectural model Micro-architecture model

Page 13: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

13Copyright 2003ⓒ

wrapper 모델링 Virtual architectural model

wrapper 의 역할 프로토콜 변환 logical ports 와 physical ports 사이의 변환

▪ logical wires 를 통하여 연결된 각 가상 모듈은 소프트웨어 프로세서 , 하드웨어 프로세서 , 최종 아키텍쳐의 컴포넌트를 나타냄

▪ logical wires 는 fixed data types 을 전달하는 추상적인 채널이며 low-level 프로토콜을 숨김

T1

T2

M1T3

T4

M2

Memory Module

Virtual module M1 Virtual module M2

wrapper

virtual port

virtual Memory

Page 14: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

14Copyright 2003ⓒ

wrapper 모델링 Micro-architecture model

wrapper 의 역할 네트워크에 맞는 프로토콜로 변환한다 .

Module M1 implementatio

n

Module M2 implementatio

nMemory

Wrapper WrapperMemory Wrapper

Physical Communication Network

▪ 컴포넌트들은 최종 프로토콜을 맞추고 , 네트워크로부터 컴포넌트의 동작을 분리시키기 위해 wrapper 에 캡슐화됨

▪ 모듈간의 통신은 wrapper를 거쳐 최종 프로토콜을 수행하는 physical wires 를 통하여 이루어짐

▪ 이 레벨의 시간단위는 클럭 사이클이 되며 , wrapper 의 행위는 FSM 과 일치됨

Page 15: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

15Copyright 2003ⓒ

wrapper 의 구조 라이브러리에 근거하여 자동으로 wrapper 를 생성하도록

하기 위해서는 프로세서와 메모리에 공통적으로 사용될 수 있는 일반적인 wrapper 를 정의

generic wrapper architecture processor wrapper architecture memory wrapper architecture

Page 16: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

16Copyright 2003ⓒ

wrapper 의 구조 generic wrapper architecture

Module Adapter

(MA)

Channel Adapter

(CA)

Channel Adapter

(CA)

Channel Adapter

(CA)

Module side

Network side

Inte

rnal C

om

mu

nic

atio

n B

us (IB

)

▪ MA - module 이 요구하는 서비스를 실행▪ CA - 통신 프로토콜 (FIFO, DMA controller, etc) 을 수행 , 모듈과 네트워크 간의 통신을 컨트롤 .

- 통신 프로토콜 , 채널 크기 , 포트 타입 (in, out, master, slave, etc) 에 따라 역할을 실행▪ IB - 메모리 wrapper 의 2 부분 (MA, CA) 를 연결 , address, data, control 신호를 전달 - IB 의 크기는 모듈의 bus 크기와 채널 크기에 따라 달라지며 , wrapper generation 단계에서 각각의 wrapper instance 에 따라 결정된다 .

Page 17: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

17Copyright 2003ⓒ

wrapper 의 구조 processor wrapper architecture

Channel Select

Read/Write FSM

Interrupt Handler

enable

addr

data

interrupt

CA1

CA3

CA2

Network side

Inte

rnal B

us

CPU side

▪ Generic wrapper architecture 의 MA 를 프로세서로 특정화 시킨 것으로 MA 는 PA (Processor Adaptor) 가 됨

▪ 프로세서 종류에 무관하게 신명령을 실행하고 통신 상의 연산을 분리

▪ PA - address decoding 과 interrupt management 에 따라 채널을 선택

▪ PA 는 master, CA 는 slave

▪ PA 와 CA 는 address, data, enable, interrupt 를 이용하여 synchronization 프로토콜을 사용

<PA>

Page 18: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

18Copyright 2003ⓒ

wrapper 의 구조 memory wrapper architecture

Network side

Arbiter

addr

enable interrupt addr data CA

1

CA3

CA2

Inte

rnal B

us

Memory side

Address decoder

Data conversio

n

Memory CTRL

(FSM)

▪ Generic wrapper architecture 의 MA 를 메모리로 특정화 시킨 것으로 MA 는 MPA (Memory Port Adaptor) 가 됨▪ MPA - memory controller 와 control logic, address decoder, bank controller 등을 가짐 - 내부의 통신 bus 와 memory bus 간의 데이터타입을 변환 - 다수의 CA 를 병렬적으로 접근하기 위해 arbiter 를 포함▪ arbiter - 특정 시간에 하나의 CA에게만 접근 권한 부여

<MPA>

Page 19: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

19Copyright 2003ⓒ

wrapper 생성 과정 wrapper generation flow

▪ wrapper generation 알고리즘은 파라미터를 이용한 라이브러리로부터 CA 와 MA 를 만드는 것으로 구성

▪ wrapper generation flow 의 입력 - 프로세서와 메모리 라이브러리 , MA 와 CA 의 라이브러리 , 파라미터

▪ 파라미터 - MPA 의 구성 (port의 수 , 메모리 bus 크기 , 메모리 word width, 메모리 인터페이스 signal, 접근 모드 ) 를 위해 필요

Memory modules

Processor cores

wrapper generation

RTL implementation

Virtual architecture Annotated with parameters

Channel Adapters

Memory port Adapter Processor Adapter

Page 20: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

20Copyright 2003ⓒ

DMA(Direct Memory Access) 정의 Memory 와 I/O device 간의 data 전송을 조정하는 블록

memory 와 I/O device 간의 data 전송시 interrupt 처리 과정이 main processor 에서 필요함 . => 비효율적 .

main processor 가 memory 와 I/O device 간의 data 전송을 DMA 에 위임함으로써 비효율적인 process 를 줄임 .

DMA 동작 main processor 는 전송할 data 의 정보 (data 의 크기 , 쓰고 읽을

memory 주소 ) 를 시작을 알리는 acknowledge 신호와 함께 DMA 로 보내고 다른 process 수행 .

DMA 는 memory 와 I/O device 간의 data 전송을 수행함 . DMA 는 전송을 끝낸 후 main processor 로 interrupt 신호를 보냄 .

Page 21: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

21Copyright 2003ⓒ

DMA(Direct Memory Access) 구조 기본적인 구조

Data Register

Data Count

Address Register

Control Logic

Data Line

Address Line

DMA Request

DMA Acknowledge

Interrupt

Read

Write

Page 22: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

22Copyright 2003ⓒ

DMA(Direct Memory Access) 구조 DMA BUS 구조 1

Single-Bus, Attached DMA

모든 장치가 하나의 system bus 에 연결 . DMA 와 I/O device 간의 data 전송도 system bus 를 통해

이루어지므로 그만큼 processor 가 system bus 를 사용하지 못함 .

Processor DMA I/O I/O Memory

Page 23: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

23Copyright 2003ⓒ

DMA(Direct Memory Access) 구조 DMA BUS 구조 2

Single-Bus, Integrated DMA - I/O

I/O device 가 각각 DMA 의 하부 블록으로 연결 . DMA 와 I/O device 간의 명령어가 전송 될 때도 Processor 가 memo

ry 로 부터 data 를 읽을 수 있다 . I/O device 가 많을 경우 DMA 와 I/O device 간의 interface 도 많아지므로 구현에 한계가 있다 .

Processor DMADMA Memory

I/OI/O I/O

Page 24: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

24Copyright 2003ⓒ

DMA(Direct Memory Access) 구조 DMA BUS 구조 3

I/O Bus

I/O bus 를 전용으로 구성 . (I/O channel) 하나의 DMA 가 모든 I/O device 를 제어 . DMA 와 I/O 의 interface 수를 줄임 .

Processor DMA Memory

I/O I/O I/O

System bus

I/O bus

Page 25: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

25Copyright 2003ⓒ

Bridge 의 정의 2 개 이상의 버스간 데이터 교환을 위한 연결 통로 Module

2 개의 버스를 연결하며 bus size 를 변경 한 쪽은 initiator, 다른 한 쪽은 target 처럼 동작 data 가 다음 bus 로 가기 전 , 2 개의 bus 간의 데이터전송을

동기화 시킬 수 있도록 중간단계에서 storage 를 가짐 공유된 메모리를 사용하는 통신구조에서는 메모리나 data stream

을 저장하기 위한 FIFO 구조를 bridge 로 치환

ProcessorVertual Compone

nt Cores Arbiter

MemoryVertual Compone

nt CoresBridge

(FIFO)

Page 26: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

26Copyright 2003ⓒ

Embedded Processor 의 정의 SoC 내부에 내장되어 , System 내부의 일정한 명령어를

수행하거나 , data 를 처리하는 module.

SOC 에 사용되는 Processor 의 구분 . System 제어를 위한 processor

Micro Processing Unit (MPU) Micro Controller Unit (MCU)

Data flow 의 처리를 위한 Processor Digital Signal Processor (DSP)

Page 27: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

27Copyright 2003ⓒ

Processor 의 종류 Micro Processing Unit (MPU)

1개의 IC device 내에 커머셜 PC 의 중앙 처리 장치에서 RAM을 제외한 연산 장치 , 제어 장치 , 및 각종 register 를 집적한 것

system 의 제어 명령어를 처리하고 , 저장된 data 의 연산 기능을 수행함

CISC (Complex Instruction Set Computer) : 가변 길이의 다양한 명령어를 갖는 processor

RISC (Reduced Instruction Set Computer) : 자주 쓰이지 않는 명령어는 소프트웨어를 통해 처리하고 자주 쓰이는 명령어만 갖는 processor

예 ) Arm core : RISC processor 32 bit instruction set 임베디드 system(PDA, 핸드폰 등 ) 의 구현에 주로 이용됨

Page 28: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

28Copyright 2003ⓒ

Processor 의 종류 Micro Controller Unit (MCU)

MPU가 갖고 있는 제어장치 , 연산장치 외에 일정한 용량의 RAM, ROM, I/O interface 등의 LSI 를 모두 내장하고 있는 processor.

1개의 소자로 완전한 컴퓨터로서의 기능을 가짐 . 제어 system 구현시 CPU를 보조하는 장치가 칩에 내장되어

있기 때문에 사용자가 비교적 간단하게 구현할 수 있다 . 예 ) 8051

8 bit machine. 4 개의 8bit I/O interface. Ram 128kbyte. Rom 4kbyte.

Page 29: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

29Copyright 2003ⓒ

Processor 의 종류 Digital Signal Processor (DSP)

원하는 수행 목적에 맞춰서 프로그래밍이 가능한 processor. Digital signal 의 처리에 적합 .

convoultion 연산 등 , 곱하기가 많이 포함된 대수적 연산에 강함 . 신호의 filtering 이나 spectrum 분석에 적합 .

주로 audio, video, voice, modem 의 신호 처리에 사용됨 . 예 ) motorola DSP 5680x processor

Page 30: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

30Copyright 2003ⓒ

기본적인 SOC system 구조

일반적으로 SOC system 은 하나의 system 에 여러가지 기능을 수행하는 다수의 Processor 로 구성됨 .

전체적인 system 이 동작하기 위해서는 Processor 간의 communication 이 필요함 . (uP <-> DSP)

DSP Core uC core

Peripheralsintended foruse by DSP

External Memory

Peripheralsintended foruse by uC

on-chip bus

Inter Processor Communication interface

Page 31: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

31Copyright 2003ⓒ

Inter Processor Communication interface

interface 구조 1 (interrupt 사용 )

• step1 : uC 에서 control 신호를 bus 로 전송

• step2 : DSP interrupt

• step3 : DSP 동작

• step4 : DSP 가 control 신호를 bus 로 전송

• step5 : uC interrupt

• step6 : uC 는 동작하면서 DSP의 동작이 완료 된 것을 알게 됨

참고 웹페이지 www.3dsp.com

Page 32: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

32Copyright 2003ⓒ

interface 구조 2 (parameter 사용 )

Inter Processor Communication interface

• step 1a : uC 에서 parameter 전송• step 1b : parameter 는 DSP 의 memory 에 기록• step 2 : DSP interrupt• step 3a : DSP 동작• step 3b : parameter 를 읽고 할당된 기능 수행• step 4a : DSP 에서 parameter 전송• step 4b : parameter 는 uC 의 memory 에 기록• step 5 : uC interrupt• step 6 : uC 동작 . parameter 를 읽고 , DSP 의 동작 완료를 알게됨

참고 웹페이지 www.3dsp.com

Page 33: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

33Copyright 2003ⓒ

Inter Processor Communication interface

interface 구조 3 ( 외부 메모리 , pointer 이용 )• step 1a : uC 에서 parameter 전송• step 1b : parameter 는 DSP 의 memory 에 기록• step 2 : DSP interrupt• step 3a : DSP 동작• step 3b : DSP 는 parameter 로 부터 pointer 를 읽어들임• step 4a : DSP 는 pointer 의 주소로 부터 Data 를 memory 로 이동• step 4b : DSP Data 처리• step 5a : DSP 에서 parameter 전송• step 5b : parameter 는 uC 의 memory 에 기록• step 6 : uC interrupt

• step 7 : uC 동작 . parameter 를 읽고 , DSP 의 동작 완료를 알게됨참고 웹페이지 www.3dsp.com

Page 34: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

34Copyright 2003ⓒ

Inter Processor Communication interface

interface 구조 4 (scheduler 사용 )• step 1a : uC 에서 parameter 를 전송

• step 1b : parameter 는 DSP 의 memory 에 기록

• step 2 : DSP 는 scheduler 를 이용해 유효한 parameter 를 찾아냄

• step 3a : 기능 수행 후 , parameter 를 전송

• step 3b : parameter 는 uC 의 memory 에 기록

• step 4 : uC 는 scheduler 를 이용해 parameter 를 찾아내고 , DSP 의 동작 완료를 알게됨

참고 웹페이지 www.3dsp.com

Page 35: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

35Copyright 2003ⓒ

Inter Processor Communication interface

interface 구조 5 (OS 사용 )• step 1a : uC 에서 parameter 전송• step 1b : parameter 는 DSP 의 memory 에 기록• step 2 : DSP interrupt

• step 3 : DSP 에서 할당된 기능이 있는지 알기 위해 OS 로 message 보냄

• step 4 : DSP OS 는 우선순위가 높은 기능을 먼저 수행하도록 scheduling 함

• step 5 : DSP 는 그에 따른 parameter 를 받고 기능을 수행

• step 6a : DSP 는 기능 수행이 끝난 후 , 그에 해당하는 parameter 를 전송• step 6b : parameter 는 uC 의 memory 에 기록• step 7 : uC interrupt

• step 8 : uC 에서 할당된 DSP 의 기능이 완료되었다는 message 를 OS 로 보냄참고 웹페이지 www.3dsp.com

Page 36: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

36Copyright 2003ⓒ

Inter Processor Communication interface

Inter Processor Communication interface 는 전체 system에 따라 구현 가능 . bus 구조 , 허용할수 있는 latency, system 의 목적에 따라 적합한 구조로 구현 .

각각의 Processor 간의 bus 를 연결해 주는 Bridge 필요 . 주변 장치를 공유할 수 있음 .

적절한 OS 의 사용은 DSP 의 기능 수행시 scheduling 을 효과적으로 할 수 있음 .

Page 37: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

37Copyright 2003ⓒ

Bus Architecture SOC system 구현시 , 여러 구성 요소를 결합 .

구성 요소간의 communication 이 필요 .

Bus Architecture 구성 요소간의 연결 및 communication 을 위한 구조 .

Bus Architecure 의 종류 ARM AMBA IBM CoreConnect Silicore Corp. Wishbone

Page 38: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

38Copyright 2003ⓒ

Bus Architecture AMBA ( 단순한 system 구현에 적합 )

AHB : 향상된 system bus.( 고속으로 동작하는 device 들를 연결 , 32~128 bit)

ASP : 일반적인 system bus.(micro controller 와 system peripheral 을 연결 , 32~128 bit)

APB : peripheral 연결 bus.( 비교적 낮은 성능 , 32 bit까지 지원 )

CPU Memory

APB Bridge

DMA

Arbiter

PIO Timer

UARTKeyboard

AHB/ASP

APB

Page 39: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

39Copyright 2003ⓒ

Bus Architecture CoreConnect (높은 성능의 system 구현에 적합 )

PLB : Processor Local Bus. (High speed, 32~64bit) OPB : On-chip Peripheral Bus. (8~32bit) DCR : CPU의 register 와 연결된 device 의 register 사이의 data

전송 bus.(32bit)

OPB Bridge

CPU

DMA

Memory Arbiter

Externel Bus Interface

Keyboard

PIO

UART

Arbiter

Timer

AddrDataDRAMI/O

DCR busPLB

OPB

Page 40: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

40Copyright 2003ⓒ

Wishbone ( 단순한 구조로 다양한 system 에 적합 )

모든 device 를 하나의 high speed bus 로 연결 . (8~64bit) 많은 device 로 구성되는 system 의 경우 두개의 Wishbone bus

를 포함 할 수 있음 .

Bus Architecture

CPU

Arbiter DMA

MemoryWISHBONE

Page 41: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

41Copyright 2003ⓒ

Bus BandWidth BandWidth(BW)

데이터를 전송할 수 있는 최대 용량 . bus 의 최대 BW 는 clock 주파수와 bus 의 byte width 의 곱이다 . bus 내의 충돌이 발생하거나 , 모든 cycle 에서 data 전송이 일어날 수 없으므로 실제로 기대할 수 있는 BW 는 최대로 가능한 BW

보다 작다 . 각각의 data path 는 최대의 성능을 갖도록 뿐만 아니라 block

간의 balanced BW 를 갖도록 설계해야 한다 .

Page 42: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

42Copyright 2003ⓒ

Bus BandWidth Bus Taxonomy Table

Bus TypeBandwidth Utilization

Latency

Min Max Data

Transfer

Serial, asynchronous, clock-regenerate bus 5% 25% 50 200

Multiple line, asynchronous, clock-regenerated bus

5% 25% 20 100

Multiple line, combined data-address synchronous bus

10% 25% 5 25

Separate data and address synchronous bus 25% 50% 2.5 10

Single-level pipelined data and address bi-directional bus

25% 75% 2 5

Multiple-level pipelined bus with sophisticated arbitration

50% 75% 1.5 2.5

Cross-bar switch 75% 100% 1 2

Point-to-point uni-directional wire 100% 100% 0.5 1

Page 43: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

43Copyright 2003ⓒ

Bus BandWidth Bus Bandwidth 의 계산예제

From/To

PCI Block 2

Block 1

Memory

Block 3

PIO

PCI 0 4,100 6,100 200 0 0

Block 2

10,000

0 8,000 2,000 100 100

Block 1

100 10,000 0 10,000 100 100

Memory

100 6,000 6,000 0 100 100

Block 3

200 100 200 100 0 100

PIO 0 0 0 0 0 0

From/To

Bus 1 Bus 2

Bus 1 62,600 600

Bus 2 600 100

① 임의로 첫 4개의 엔트리를 하나의 block 으로 하고 , 나머지 2개의 엔트리를 또 다른 하나의 block 으로 한다 .

block 마다 모든 transaction 을 더한다 .

② 예제 - 만약 이 pattern 의 시간이 1ms 라면 가장 빠른 cluster 는 1ms 동안 63,800 bytes 의 데이터가 전송되어야 한다 . <= 1,200 bytes 는 bridge, 62,600 bytes 는 내부 bus

이러한 계산을 바탕으로 , High-speed Bus, Low-speed Bus, Bridge 등의 사용 여부를 판단한다 .

Page 44: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

44Copyright 2003ⓒ

Bus BandWidth Designing for balanced BandWidth (e.g. Radstone’s PowerPC)

Cache Memory

Main Memory

PCI

VME

BandWidth

I/OC

PU

▪ Cache memory

– 가장 최근에 접근된 명령이나 데이터를 갖고 있는

CPU내의 메모리

▪ Main memory

- cache 의 요구를 만족시키고 I/O interface 로서

작동하는데 , system speed 는 메모리의 성능에

의해 대부분 결정된다 .

▪ PCI

- Peripheral Component Interconnect Bus 의

약어로서 버스 내부의 데이터 전송을 위한

데이터버스 표준규격

▪ VME

- Versa Module Eurocard 의 약어로서 system

interconnect bus체계

Page 45: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

45Copyright 2003ⓒ

Bus BandWidth Un-balanced BandWidth (e.g. Radstone’s PowerPC)

Page 46: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

46Copyright 2003ⓒ

Bus BandWidth Balanced BandWidth (e.g. Radstone’s PowerPC)

Page 47: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

47Copyright 2003ⓒ

Summary General SoC Architecture 이해 주요 Architecture Elements 이해

정의 구현 방법 모델링 기법

Multi-processor 구조에서 Processor 간 통신 방법 이해 SoC 내에서 블록간 통신 기법 이해 Bus Bandwidth 이해

Page 48: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

48Copyright 2003ⓒ

( 모듈 10) 참고문헌 Computer Organization and Architecture, William Stalling SoC Bus Review, Rudolf Usselmann, www.opencores.org Henry Chang, Larry Cooke, Merrill Hunt, Grant Martin, And

rrew McNelly and Lee Todd, Surviving the SOC Revolution, p85~87, p101~103, p116, p119

J-B. Rigaud, J. Quartana, L. Fesquet and M. Renaudin, Modeling and design of asynchronous priority arbiters for on-chip communication systems

Richard Kirk, Product Manager, Processor Group, Radstone Technology, Balanced Bandwidth

Page 49: Module 10 :Architectural Integration of SoC 김재석 교수 ( 연세대학교 )

49Copyright 2003ⓒ

( 모듈 10) 참고문헌 Férid Gharsalli, Damien Lyonnard, Samy Meftali, Frédéric

Rousseau and Ahmed A. Jerraya, Unifying Memory and Processor Wrapper Architecture in Multiprocessor SoC Design