Você está na página 1de 91

Millena Almeida (maag@cin.ufpe.

br)

Aumento da Produtividade I

System Espeificao do Sistema FUNC BEH RTL GATE Nveis Abstrao


4

Subir nvel de abstrao

Circuito Integrado

Linguagens de Projeto & Tarefas


Requirements Algorithm Exploration Architecture Analysis

Text / UML
HVLs extend & accelerate the RTL design process and enable RTL designers to cross the chasm to system level design Transaction Level SystemC System Verilog Assertions PSL/SVA

C/C++ Untimed SystemC

Verification

VHDL Verilog

RTL Design

Task

Language
5

SystemC TLM Arquitetura Bsica


template < typename REQ , typename RSP > class tlm_transport_if : public virtual sc_interface { public: virtual RSP transport( const REQ & ) = 0;

tlm_transport_if
virtual RSP transport( const REQ & ) = 0;

transport() Initiator Target

transport(.)

tlm_transport_if

sc_port

transport(.)

sc_export

sc_export exports tlm_transport_if for use by outside world RSP transport( const REQ & ) is implemented in the slave tlm_transport_if is the tlm bidirectional blocking interface
6

SystemC TLM (Transaction Level Modeling)


Comunicao utilizando chamada de funes Pontos Fortes:
Simplicidade Rpido e compacto Integrao de modelos de hardware e software Suporte a reuso de design e verificao de IP Usabilidade Transparente a:
Nvel de Abstrao Diferentes arquiteturas de comunicao (barramento, NOC, ...) Diferentes protocolos

Principais conceitos:
Fluxo de dados Unidirecional x Bidirecional Requisies e respostas separadas Blocking x Nonblocking Uso de sc_port e sc_export
7

Aumento da Produtividade II
Reuso de IPs Grande parte do projeto baseado em reuso de mdulos

CPU

CPU

CPU

CPU

Uso de IPs de terceiros


Confiana no desenvolvedor do IP Problemas de integrao

Interconnection network

Memory

(IP)

(IP)

Aumento da Produtividade III


Utilizao de Plataformas Grande parte do projeto em software Flexibilidade Reuso de grande parte do circuito Desenvolvimento ou utilizao de IPs em pequena parte do projeto
9

CPU

CPU

CPU

CPU

Interconnection network

Memory

(IP)

(IP)

SPIRIT Consortium

SPIRIT Consortium

16

SPIRIT
Padro definido por um consrcio de empresas para distribuio de IPs Baseado em XML Descrio de IPs independente de linguagem

17

SPIRIT

18

SPIRIT Consortium

19

Interaes de Objetos IP-XACT

20

SPIRIT Schemas
Bus definition: descreve uma interface de barramento (nomes de sinais, direo, largura, uso) e as restries que se aplicam a estes sinais Meta Data: um modo que pode ser interpretado por ferramentas para se descrever diversos aspectos do projeto Design: descreve as instncias de um componente e as interconexes entre as instncias Gerador/Configurador: so objetos executveis utilizados para gerar os componentes ou configur-los
21

Exemplo Simples de um SoC

22

Exemplo Simples de um SoC: Design File

Nome da Biblioteca Nome do SoC

Identificador da verso

23

Exemplo Simples de um SoC: Design File

24

Exemplo Simples de um SoC: Design File

25

PDesigner

Framework

web page

SPIRIT 1.2

27

Modelagem de Plataformas
Modelagem grfica de plataformas Framework baseado no Eclipse Ambiente Grfico SPIRIT 1.2 SystemC 2.1

28

Simulao de Plataformas
Tela de Console com resultados da simulao Controle de Simulao
Parar simulao
MPSoC

execute EXE

29

Explorao de Arquiteturas
Simulao em um nico passo Integrado ao Ambiente de modelagem de plataformas (PBuilder)

Model the Platfom (Including cache analyzer component)

Platfom Simulation

Trace of referenced addresses

Single-Pass Cache Analysis


Cache miss rate report for the entire Configuration space Configure cache devices Final Platform Simulation

Cache Configuration Space

30

Modelagem de Processadores
Modelagem de Processadores ArchC 2.0 Exporta componentes para o PBuilder Descrio
Processador

proc. Structure

ISA

Generate Simulator

ISS

Export to Library

Gerao Processador

component Library

31

Modelagem de Plataformas: PBuilder

Platform View

Graphical Editor

Palette

Properties View

32

PBuilder - Views
PEditor
Editor que possibilita a modelagem de plataformas graficamente Componentes da biblioteca distribudos na paleta de componentes

33

Conexo de Componentes

SimpleBus (TLM)

SimpleBus (TLM)

Simple Bus

FastMem

ArchC (TLM)

SimpleBus (TLM)

Mips

Wrapper ArchC - SimpleBus

Simple Bus

34

PBuilder - Views
Platform View
Miniatura da plataforma modelada

Outline
Lista de componentes instanciados

35

PDBuilder - Views
Properties
Tabela editvel com as propriedades do componente/platafor ma selecionada

Console
Mostra resultado de compilao, simulao e anlise

36

Biblioteca de Componentes: PDLibrary


Adicionar Componente Remover Componente

Wrappers

Biblioteca de Componentes

SystemC TLM
37

Distribuio de IP: IPZip

TLM

Descrio do IP

IPZip (Wizards)

Biblioteca de Componentes

38

Plugin IPZip 1.0


Wizard de gerao de distribuio de componente Gera pacote de distribuio com arquivos de configurao SPIRIT a partir da descrio alto nvel do componente

39

IPZip Telas

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo do IPZip - Exemplo

sc_export<simple_bus_slave_if> bus_port

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo IPZip - Entradas


Arquivos Fonte
Arquivos SytemC TLM Contidos no mesmo diretrio
Pode existir uma estrutura de diretrios

Simple_bus_fast_mem

Fluxo IPZip - Entradas


Main
Arquivo main.cpp contendo a funo sc_main Deve definir:
Arquivos necessrios (include files) Inicializao Conexes Funes

Fluxo IPZip - Entradas


Makefile
Definir como gerar os arquivos objetos Gerar objetos necessrios No obrigatrio

Fluxo IPZip - Entradas


VLNV
Informaes sobre o fabricante e verso do produto
Vendor Library Name Version

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo IPZip Obteno dos dados


Arquivos SystemC
Onde esto informaes sobre:
Portas Parmetros Sinais Inicializao Mapeamentos Configurao ...

Fluxo IPZip Obteno de Dados


Utilizao de ferramenta para extrao de dados de arquivos SystemC
KaSCpar
Implementa o front-end de um compilador SystemC

Criao de AST
Gerao de arquivo XML com a AST

Fluxo IPZip Obteno de Dados

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo IPZip Parser


Trabalhar as informaes obtidas no AST
Manipular dados de vrios arquivos fonte a fim de obter informaes sobre a descrio, configurao e distribuio do IP

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo IPZip Configurador


Obter informaes sobre como configurar e integrar um componente Padro IP-XACT no define uma estrutura que defina como o componente ser configurado
Define apenas como realizar chamada de scripts de configurao Soluo no suficiente para sua configurao automtica em plataformas

Definio de padro de configurador


Definio de uma estrutura de um modelo de descrio de configurao de componente
Como o componente inicializado Como se conecta com demais componentes Funes de configurao ...

Fluxo IPZip - Configurador

56

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo IPZip IP-XACT 1.4


Gerao dos arquivos de distribuio
Modelo do componente Configurador Nveis de Abstrao

Fluxo do IPZip
Makefile VLNV Source Files Main.cpp

SC2AST

Parser

Configurador

XML (IP-XACT 1.4)

Arquivo Zip

Fluxo IPZip Arquivo Zip


Gerao de um arquivo zip contendo:
Cdigo Fonte Makefile Arquivos de Distribuio

Modelagem de Processador: ArchC

61

Declarao de Instrues
AC_ISA(submips) { ac_format Type_R = "%op:6 %rs:5 %rt:5 %rd:5 0x00:5 %func:6"; ac_format Type_I = "%op:6 %rs:5 %rt:5 %imm:16";

ac_instr<Type_R> add, mul; ac_instr<Type_I> lw, bne, addi;


ISA_CTOR(submips) {

Declarao de instrues

add.set_asm("add %reg, %reg, %reg, rd,rs,rt); add.set_decoder(op=0x00, func=0x20);


lw.set_asm("lw %reg, %imm(%reg), rt,imm,rs); lw.set_decoder(op=0x23); Seqncia de ... decodificao }; }; 62

Descrio do Comportamento

Acesso a dispositivo de armazenamento Acesso a campo de instruo

void ac_behavior( add ){ RB[rd] = RB[rs] + RB[rt]; }


63

Descrevendo Comportamentos
void ac_behavior( instruction ){

ac_pc = ac_pc + 4;
}

void ac_behavior( add ){ RB[rd] = RB[rs] + RB[rt]; }


64

Modelagem de Processador: PArchC

65

Modelagem de Processador: PArchC


Plugin focado na construo de Processadores

Ambiente grfico para edio de cdigo


Incluso do destaque para palavras reservadas do ArchC

Compilao e Simulao do processador


Possibilita ao usurio verificar o comportamento do componente

Distribuio de Componente
Gera automaticamente um pacote de distribuio do componente baseado no padro SPIRIT

Descrio do Processador

Biblioteca de Componentes
66

Anlise de Cache: PCacheAnalyzer


Anlise preliminar de cache
Model the Platfom (Including cache analyzer component)

Anlise de diversas configuraes de caches (+ de 50) com apenas uma simulao Gerao de relatrio, identificando:
Configurao da cache (tamanho de palavra e associatividade) Hit Rate Miss Rate

Platfom Simulation

Trace of referenced addresses

Single-Pass Cache Analysis


Cache miss rate report for the entire Configuration space Configure cache devices

Cache Configuration Space

Relatrio mostrado em formato HTML

Final Platform Simulation

67

Plugin PCacheAnalyzer

68

Plugin de Co-simulao
Co-simulao de componentes em SystemC e Verilog Comunicao Interprocessos (IPC)
Memria compartilhada Sockets

Uso de interface Verilog Procedural Interface (VPI) que permite que funes em C invoquem tarefas em Verilog

69

Documentao: Plugin do Help

70

www.pdesigner.org

71

Trabalhos Futuros e Oportunidades de melhoria

Desafios Aumentar o nvel de abstrao trabalhado Suporte a fluxo de sntese Suporte a mais mecanismos de anlise

73

Desafios Aumentar o nvel de abstrao trabalhado Suporte a fluxo de sntese Suporte a mais mecanismos de anlise

74

Aumento do Nvel de Abstrao

System Level Modeling

UML

Functional

SystemC TLM

Cycle Accurate

SystemC
RTL

75

Aumento do Nvel de Abstrao Soluo Proposta


System Level Modeling
Modelagem arquitetural do sistema
Particionamento entre elementos de computao que se comunicam por transaes

Classificao de elementos em:


Hardware Software

76

Soluo Proposta : UML-ESL Profile


Modelagem da Arquitetura
Esteritipos

Particionamento

Abstrao dos detalhes de comunicao


Servios
77

Soluo Proposta : UML-ESL Profile


Communication Modeling

Modo de Comunicao

Constraints

Transao Tipo da Comunicao

78

Aumento do Nvel de Abstrao Possibilidades de melhoria


Model Driven Architectue (MDA)
Prov uma especificao de sistema independente de plataforma (Platform Independent Model PIM) Mtodo que segue o MDA:
Executable UML (xUML) Baseado em linguagem de especificao de ao (ASL)

79

Desafios Aumentar o nvel de abstrao trabalhado Suporte a fluxo de sntese Suporte a mais mecanismos de anlise

80

Fluxo de Sntese de Comunicao

81

Fluxo de Sntese de Comunicao


Extrao das Caractersticas do Sistema

82

Fluxo de Sntese de Comunicao


Extrao das Caractersticas do Sistema

83

Fluxo de Sntese de Comunicao


Extrao das Caractersticas do Sistema

84

Fluxo de Sntese de Comunicao

85

Fluxo de Sntese de Comunicao


Mapeamento da Comunicao na Plataforma Base

Skin
Processor

Mahalanobis

Bus Memory SystemC TLM


86

Fluxo de Sntese de Comunicao

87

Fluxo de Sntese de Comunicao


Sntese de Comunicao
Gerao de componentes de comunicao
Software
Device Driver

Hardware
Device Controller Bus Controller Interface
software hardware
Controller Bus Controller Interface

C++

Processor Driver

SystemC TLM

Bus Memory
88

Fluxo de Sntese de Comunicao


Sntese de Comunicao
Device Driver
Read/Write

Device Stub
Classe C++ Nome igual ao do dispositivo Assinatura de todos os servios do dispositivo Chamada das funes do device driver

89

Fluxo de Sntese de Comunicao


Sntese de Comunicao
Device Controller
Permite a comunicao entre os elementos de hardware e o barramento Implementa todos os servios necessrios para configurar e permitir a comunicao com o dispositivo sem mudar nenhuma linha de cdigo do mesmo

90

Fluxo de Sntese de Comunicao


Sntese de Comunicao
Bus Controller Interface
Funciona como um wrapper, convertendo o protocolo do barramento para o protocolo do controlador do dispositivo

91

Fluxo de Sntese de Comunicao

92

Fluxo de Sntese de Comunicao


Gerao da Plataforma Virtual
The modules source code are implemented by the designer and obtained from the class diagram

SystemC TLM

Get base platform elements source code from platform library

Generate Communication infrastructure elements source code

Generate Modules source code from UML class diagram

The communication elements source code are generated by a component generator tool implemented in Java

SystemC TLM / C++

93

Suporte a fluco de Possibilidades de melhoria


Suporte a sntese de hardware e software
Sntese mais baixo nvel Suporte a S.O.

Sntese

Sntese que priorize diminuio de rea, e/ou diminuio de consumo e/ou aumento de desempenho

94

Desafios Aumentar o nvel de abstrao trabalhado Suporte a fluxo de sntese Suporte a mais mecanismos de anlise

95

Suporte a mais mecanismos de anlise Possibilidades de melhoria


Anlise de Comunicao
Anlise de barramento

96

Referncias
www.pdesigner.org www.archc.org www.systemc.org www.spiritconsortium.org www.eclipse.org www.greensocs.com

97

Millena Almeida (maag@cin.ufpe.br)

Você também pode gostar