A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre.

Apresentações semelhantes


Apresentação em tema: "MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre."— Transcrição da apresentação:

1 MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre de 2006 Transaction Level Modeling

2 MO801: Tópicos em Arquitetura e Hardware 2 Integração de Componentes Diversos padrões disponíveis –Foco em baixo nível AMBA, CoreConnect, Avalon, OCP/IP –Úteis para descrição do modelo final –Baixo desempenho em simulação Transaction Level Model (TLM) –Chamadas de funções –Interface dos módulos muito bem definida –Distribuída junto com o SystemC

3 MO801: Tópicos em Arquitetura e Hardware 3 Terminologia para Abstração

4 MO801: Tópicos em Arquitetura e Hardware 4 Exemplo

5 MO801: Tópicos em Arquitetura e Hardware 5 Comentários É necessário expor tantos detalhes nessa fase? Como simplificar o processo? Que tal TLM? outport.write(A1, D1); outport.write(A2, D2); outport.write(A3, D3);

6 MO801: Tópicos em Arquitetura e Hardware 6 Benefícios em Tempo de Projeto Tempo necessário para escrever o TLM Verificação do SW começa mais cedo Verificação do Sistema começa mais cedo Tempo Total é reduzido !

7 MO801: Tópicos em Arquitetura e Hardware 7 TLM – Motivação Adiantar a disponibilidade de uma plataforma para desenvolvimento de software; Exploração do projeto como um todo Fornecer um modelo completo do sistema para verificação Será utlizado o padrão OSCI TLM 1.0

8 MO801: Tópicos em Arquitetura e Hardware 8 Conceitos usados pelo TLM Comunicação é modelada separado da funcionalidade Foco nas interfaces –Implementação apenas após a definição rígida das interfaces Bloqueantes x Não bloqueantes –Métodos bloqueantes podem chamar a função wait() –SC_THREAD x SC_METHOD Unidirecional x Bidirecional –Toda transação pode ser classificada de uma dessas formas ou quebrada para se enquadrar numa delas Transferência de dados é feita através de chamadas de funções

9 MO801: Tópicos em Arquitetura e Hardware 9 Nomenclaturas Para evitar conflito com outras nomenclaturas já existentes, novos nomes foram criados –Initiator ( Master) –Target ( Slave) –Put ( write) –Get ( read) –Peek

10 MO801: Tópicos em Arquitetura e Hardware 10 TLM Core Interfaces // uni-directional blocking interfaces template class tlm_blocking_get_if : public virtual sc_interface { public: virtual T get( tlm_tag *t = 0 ) = 0; virtual void get( T &t ) { t = get(); } };

11 MO801: Tópicos em Arquitetura e Hardware 11 TLM Core Interfaces // uni-directional blocking interfaces template class tlm_blocking_put_if : public virtual sc_interface { public: virtual void put( const T &t ) = 0; };

12 MO801: Tópicos em Arquitetura e Hardware 12 TLM Core Interfaces // uni-directional non blocking interfaces template class tlm_nonblocking_get_if : public virtual sc_interface { public: virtual bool nb_get( T &t ) = 0; virtual bool nb_can_get( tlm_tag *t = 0 ) const = 0; virtual const sc_event &ok_to_get( tlm_tag *t = 0 ) const = 0; };

13 MO801: Tópicos em Arquitetura e Hardware 13 TLM Core Interfaces // uni-directional non blocking interfaces template class tlm_nonblocking_put_if : public virtual sc_interface { public: virtual bool nb_put( const T &t ) = 0; virtual bool nb_can_put( tlm_tag *t = 0 ) const = 0; virtual const sc_event &ok_to_put( tlm_tag *t = 0 ) const = 0; };

14 MO801: Tópicos em Arquitetura e Hardware 14 TLM Core Interfaces // bidirectional blocking interfaces template class tlm_transport_if : public virtual sc_interface { public: virtual RSP transport( const REQ & ) = 0; }; OBS: Pode ser visto como uma união das interfaces bloqueantes de get e put.

15 MO801: Tópicos em Arquitetura e Hardware 15 Canais TLM O pacote padrão inclui três canais: –tlm_fifo : implementa todas as interfaces unidirecionais –tlm_req_resp_channel : consiste de duas fifos intiator-target (master_if): –fornece put para fila de REQ e get para fila de RSP target-initiator(slave_if): –fornece put para fila de RSP e get para fila de REQ

16 MO801: Tópicos em Arquitetura e Hardware 16 Canais TLM O pacote padrão inclui três canais: –tlm_transport_channel : cada REQ ligado a uma RSP exporta as mesmas interfaces que o tlm_req_rsp_channel implementa a interface bidirecional de transporte

17 MO801: Tópicos em Arquitetura e Hardware 17 Canais TLM RSP transport( const REQ &req ) { mutex.lock(); master_port->put( req ); rsp = master_port->get(); mutex.unlock(); return rsp; }

18 MO801: Tópicos em Arquitetura e Hardware 18 Exemplo: O Protocolo TLM de ArchC Possibilita a conexão dos simuladores gerados por ArchC a módulos externos Totalmente baseado no padrão de SystemC v1.0 Implementa a interface de transporte –bidirecional –bloqueante

19 MO801: Tópicos em Arquitetura e Hardware 19 Exemplo: O Protocolo TLM de ArchC ac_tlm_protocol.H ac_tlm_port.H ac_tlm_port.cpp

20 MO801: Tópicos em Arquitetura e Hardware 20 Modelagem em três camadas Usuário –API de conveniência, específica do protocolo Protocolo –Código específico de protocolo –Faz a ponte entre as camadas de usuário e a de transporte Transporte –Usa APIs e modelos genéricos de transporte de dados –Facilita a interoperabilidade dos modelos –Trabalho do TLM WG é definir código da camada de transporte

21 MO801: Tópicos em Arquitetura e Hardware 21 API ArchC – Modelo 3 camadas

22 MO801: Tópicos em Arquitetura e Hardware 22 Referências SystemC from the Ground-up - David C. Black e Jack Donovan, Kluwer Academic Press, 2004 Transaction Level Modeling in SystemC – Adam Rose, Stuart Swan, John Pierce, Jean-Michel Fernandez, OSCI TLM Working Group SystemC Tutorial. Forte Design Systems.


Carregar ppt "MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Sandro Rigo 2 o Semestre."

Apresentações semelhantes


Anúncios Google