1 2 3 4 5 6
x 104 Limite de Complexidade com N = 8
Número de usuários, K
Ciclos em DSP, DSP
cycles
Limite de Processamento para Taxa de Informação de 8Kb/s 1−opt LS−MuD
CD
Figura 7.9: N´umero m´aximo de usu´arios ativos, indicado pelo limite de complexidade em DSP para transmiss˜ao de voz, 8 Kb/s e N = 8.
seria o aumento de usu´arios com a utiliza¸c˜ao do otimizador de c´odigos, que ´e uma fer- ramenta do CCS. Contudo, acredita-se que o aumento n˜ao seria substancial, devido `a existˆencia de um n´umero m´ınimo de opera¸c˜oes imprescind´ıveis que devem ser realizadas na implementa¸c˜ao do 1-LS-MuD. Complementarmente, pode-se empregar um DSP com capacidade de processamento mais elevada, o que ´e compat´ıvel com a implementa¸c˜ao do receptor multiusu´ario no canal reverso, i.e., na esta¸c˜ao r´adio-base, situa¸c˜ao em que se disp˜oe de maior recurso de energia/potˆencia.
Na pr´oxima se¸c˜ao ser´a abordada uma segunda forma de an´alise da complexidade em DSP realizando uma contagem do n´umero de opera¸c˜oes matem´aticas efetuadas durante a implementa¸c˜ao dos receptores CD e 1-LS-MuD.
7.6
Complexidade em DSP atrav´es do N´umero de
Opera¸c˜oes Matem´aticas
Uma abordagem da complexidade computacional mais comum ´e atrav´es do n´umero de opera¸c˜oes matem´aticas realizadas durante a implementa¸c˜ao proposta. Visando a sim- plifica¸c˜ao deste m´etodo, considera-se que a complexidade envolvida em uma soma ou diferen¸ca seja da mesma ordem, da mesma forma que uma opera¸c˜ao de multiplica¸c˜ao ter´a complexidade equivalente a uma divis˜ao.
7.6 Complexidade em DSP atrav´es do N´umero de Opera¸c˜oes Matem´aticas 61 1 1.5 2 2.5 3 1.5 2 2.5 3 3.5 4 4.5 5 5.5
x 104 Limite de Complexidade com N = 12
Número de usuários, K
Ciclos em DSP, DSP
cycles
Limite de Processamento para Taxa de Informação de 8Kb/s 1−opt LS−MuD
CD
Figura 7.10: N´umero m´aximo de usu´arios ativos, indicado pelo limite de complexidade em DSP para transmiss˜ao de voz, 8 Kb/s e N = 12.
Como foi explicado no cap´ıtulo 4, criou-se uma biblioteca com as opera¸c˜oes matriciais realizadas na implementa¸c˜ao dos receptores. Para cada uma das opera¸c˜oes fez-se uma fun¸c˜ao requisitando os parˆametros necess´arios, como dimens˜ao da matriz, linha ou coluna a ser calculada, entre outras; dependendo da funcionalidade da opera¸c˜ao.
Logo, o primeiro passo para realiza¸c˜ao da contagem do n´umero de opera¸c˜oes realizadas no receptor CD e heur´ıstico foi dado efetuando-se a contagem de opera¸c˜oes de soma e multiplica¸c˜ao em cada uma das fun¸c˜oes que executam as opera¸c˜oes matriciais e outras inclu´ıdas no bloco de detec¸c˜ao CD e 1-LS-MuD. Esta primeira contagem foi feita da forma que o n´umero de opera¸c˜oes de soma e multiplica¸c˜ao ficaram relacionados aos parˆametros de entrada fun¸c˜ao. Desta forma, ao se executar esta fun¸c˜ao dentro do bloco do receptor CD ou 1-LS-MuD, o n´umero de opera¸c˜oes matem´aticas podia ser relacionado aos parˆametros desejados: K e N .
A complexidade computacional da implementa¸c˜ao em DSP do CD atrav´es do n´umero de opera¸c˜oes de somas e multiplica¸c˜oes em fun¸c˜ao do n´umero de usu´arios ativos, K, e ganho de processamento, N , pode ser expressa por:
NsomCD = 36KN + 4K; e NprodCD = 28KN + 2K (7.13)
A complexidade computacional da implementa¸c˜ao em DSP do 1-LS-MuD atrav´es do n´umero de opera¸c˜oes de somas e multiplica¸c˜oes foi realizada de maneira similar `a
7.6 Complexidade em DSP atrav´es do N´umero de Opera¸c˜oes Matem´aticas 62
apresentada na subse¸c˜ao 7.2. Inicialmente, foi realizado a contagem para a etapa Fun¸c˜ao- Custo Inicial, ou seja, c´alculos dos termos F(1) e F(2) seguidos pelo c´alculo da fun¸c˜ao-
custo utilizando o vetor `a sa´ıda do decisor abrupto. A complexidade atrav´es do n´umero de opera¸c˜oes de somas e multiplica¸c˜oes da etapa Fun¸c˜ao-Custo Inicial pode ser expressa por:
NsomLS−Inicial= 20K3+ 27K2+ 50K + 11
NprodLS−Inicial= 18K3+ 19K2+ 31K (7.14)
A segunda etapa consiste no la¸co de cada itera¸c˜ao do algoritmo 1-LS. A complexidade atrav´es do n´umero de opera¸c˜oes de somas e multiplica¸c˜oes da etapa Itera¸c˜ao pode ser expressa por:
NsomLS−Iter= (4K3+ 14K2+ 14K + 1) .Mt
NprodLS−Iter= (3K3+ 11K2) .M t
(7.15)
Utilizando o mesmo crit´erio da subse¸c˜ao 7.2, a simplifica¸c˜ao da equa¸c˜ao (7.15) pode ser feita considerando o n´umero de itera¸c˜oes, Mt, realizadas em m´edia no receptor heur´ıstico
1-LS para a convergˆencia igual a K/2. Desta forma, a equa¸c˜ao (7.15) ´e simplificada para equa¸c˜ao (7.16).
NsomLS−Iter = 2K4+ 7K3+ 7K2+ 0, 5K; e Nprod
LS−Iter = 1, 5K4+ 5, 5K3 (7.16)
Desta forma, a complexidade computacional em DSP do algoritmo 1 − opt LS atrav´es do n´umero de opera¸c˜oes de somas e multiplica¸c˜oes pode ser obtida somando-se o n´umero de opera¸c˜oes obtido nas etapas Inicial e Itera¸c˜ao conforme a equa¸c˜ao (7.17).
Nsom1−LS = NsomLS−Inicial+ NsomLS−Iter= 2K4+ 27K3+ 34K2+ 50, 5K + 11
Nprod1−LS = NprodLS−Inicial+ NLS−Iterprod = 1, 5K4+ 23, 5K3+ 19K2 + 31K (7.17)
Finalmente, a complexidade para implementa¸c˜ao em DSP do receptor 1-LS-MuD completo em banda base atrav´es do n´umero de opera¸c˜oes de somas e multiplica¸c˜oes ´e obtida pela soma da quantidade de opera¸c˜oes realizadas pelo CD, equa¸c˜ao (7.13), e pelo algoritmo 1-LS,equa¸c˜ao (7.17) , conforme mostrado na equa¸c˜ao abaixo:
Nsom1−LS−MuD = Nsom
CD + Nsom1−LS
Nsom1−LS−MuD = 2K4+ 27K3+ 34K2 + 54, 5K + 36KN + 11
Nprod1−LS−MuD = NprodCD + Nprod1−LS
Nprod1−LS−MuD = 1, 5K4+ 23, 5K3+ 19K2+ 33K + 28KN
7.6 Complexidade em DSP atrav´es do N´umero de Opera¸c˜oes Matem´aticas 63
Nota-se a concordˆancia entre as complexidades apresentadas nesta se¸c˜ao e na se¸c˜ao 7.3, realizada atrav´es da ferramenta Profile do CCS, por serem ambas relacionadas a K4.
64
8
Principais Conclus˜oes
A implementa¸c˜ao em DSP do sistema DS/CDMA em banda base proposto aconteceu de forma satisfat´oria, pois, os processamentos corresponderam aos valores esperados que foram previamente simulados atrav´es do Matlab. Apesar das limita¸c˜oes em rela¸c˜ao ao n´umero de usu´arios ativos, pˆode-se efetuar os principais testes que validam a funcionali- dade do sistema DS/CDMA implementado dentro das condi¸c˜oes de canal adotadas.
Houve certa dificuldade de manipula¸c˜ao da plataforma utilizada, uma vez que, n˜ao h´a na gradua¸c˜ao uma disciplina que aborde situa¸c˜oes e problemas pr´aticos relativos `as plataformas de processadores digital de sinais. Logo, necessitou-se de um estudo pr´evio sobre o funcionamento te´orico e pr´atico do processador DSP TMS320C6713 utilizado neste trabalho. Outras dificuldades aconteceram na conex˜ao da plataforma com o computador atrav´es do pacote RTDX. Para seu funcionamento e, consequentemente, transmiss˜ao de dados entre Matlab e CCS, ´e necess´ario que o projeto na linguagem C em CCS esteja compilado, seja carregado e o DSP esteja em processamento. Por´em, algumas vari´aveis necessitavam da quantidade de usu´arios ativos e o ganho de processamento do sistema e estando o projeto compilado, n˜ao h´a como alterar as dimens˜oes declaradas na cria¸c˜ao das vari´aveis, ent˜ao, optou-se para cria¸c˜ao de vari´aveis adimensionais que eram dimensionadas durante a execu¸c˜ao do c´odigo atrav´es da aloca¸c˜ao dinˆamica na mem´oria. Infelizmente, este procedimento n˜ao foi funcional, pois algumas vari´aveis tinham seus valores alterados aleatoriamente. A solu¸c˜ao se deu atrav´es da cria¸c˜ao de um arquivo de inicializa¸c˜ao na linguagem C que pode ser escrito em ambiente Matlab e, em seguida, compila-se o mesmo junto ao projeto do CCS como um arquivo de biblioteca; as vari´aveis contidas neste arquivo podem ser usadas para declara¸c˜ao das vari´aveis restantes utilizadas no projeto.
Um grande obst´aculo enfrentado durante a implementa¸c˜ao em DSP se deu em rela¸c˜ao as opera¸c˜oes matriciais com n´umeros reais e complexos. N˜ao foi encontrada uma bi- blioteca adequada que servisse para as opera¸c˜oes necess´arias na recep¸c˜ao heur´ıstica do sistema DS/CDMA abordado. Desta forma, fez-se necess´ario o desenvolvimento de uma biblioteca pr´opria com praticamente todas opera¸c˜oes matriciais utilizadas no projeto em
8.1 Trabalhos Futuros 65
CCS. Na manipula¸c˜ao de n´umeros complexos, foi seguido o mesmo procedimento. Ap´os a escolha de uma forma de declara¸c˜ao e atribui¸c˜ao de n´umeros complexos, todas opera¸c˜oes envolvendo-os foram desenvolvidas atrav´es de fun¸c˜oes contidas em um arquivo em lingua- gem C adicionado, como biblioteca, ao projeto.
Por se tratar de um dos mais poderosos processadores da Texas Instruments Inc., n˜ao foram encontrados problemas em rela¸c˜ao `a velocidade do DSP. Apesar de mais lento que uma simula¸c˜ao realizada em Matlab no computador, a velocidade de processamento em DSP foi satisfat´oria ficando dentro de margens de tempo de processamento aceit´aveis, ou seja, tomando-se como base o tempo dispon´ıvel para obten¸c˜ao dos resultados e a instabilidade nos computadores ap´os alguns dias de uso ininterruptos, o tempo m´aximo de processamento deveria ser de cinco dias (120 horas). Com uma otimiza¸c˜ao do c´odigo implementado, h´a possibilidade de redu¸c˜ao nos tempos de processamento em DSP, permi- tindo conjecturar sobre o aumento do n´umero m´aximo de usu´arios de voz que podem ser processados pelo DSP, tanto empregando algoritmo para o receptor convencional quanto para o receptor multiusu´ario heur´ıstico.
8.1
Trabalhos Futuros
Como trabalhos futuros alguns direcionamentos s˜ao sugeridos:
• Expans˜ao da an´alise e caracteriza¸c˜ao de outros algoritmos heur´ısticos mais sofisti- cados, com estrat´egicas de escape de m´aximos locais, tais como algoritmo gen´etico, e/ou empregando canais mais realistas, ou seja, canais ass´ıncrono e/ou com desva- necimento Rayleigh plano ou multipercurso;
• Otimiza¸c˜ao do c´odigo em linguagem C implementado no CCS, pois h´a ferramen- tas pr´oprias dentro do CCS que possibilitam esta otimiza¸c˜ao e, consequentemente, redu¸c˜ao do tempo de processamento no DSP associado a um aumento do n´umero m´aximo de usu´arios detectados simultaneamente e em tempo real;
• Utiliza¸c˜ao mais eficiente e expans˜ao da capacidade da plataforma DSP; poss´ıveis pro- cedimentos incluem a utiliza¸c˜ao de mem´orias externas, entrada de sinais anal´ogicos vindos de uma antena com demodula¸c˜ao externa `a plataforma criando, desta forma, estimativas reais do canal.
66
Anexo A -- Plataforma do DSK C6713
A utiliza¸c˜ao de software para simula¸c˜oes computacionais como o Matlab n˜ao imp˜oe um determinado tempo para que tal simula¸c˜ao ocorra. Por´em, ao se trabalhar com aplica¸c˜oes em tempo real, faz-se necess´ario a utiliza¸c˜ao de um processador digital de sinais, conhecido como DSP (Digital Signal Processor ) que implementar´a tais processamentos de uma determinada amostra, antes que novos dados cheguem para serem processados.
Os DSP’s podem ser empregados em diversas ´areas como tamb´em para processamentos espec´ıficos, onde deseja-se encontrar solu¸c˜oes adaptativas para um determinado problema. A simula¸c˜ao em tempo real ´e uma ´area que tem sido bastante estudada ao longo dos anos, existindo diversos trabalhos de programa¸c˜ao para controle de processos.
Assim, a quest˜ao da limita¸c˜ao de tempo tornou-se um problema a ser solucionado, pois garantir uma resposta certa em tempo real em alto n´ıvel torna-se complexo, especi- almente para DSP’s onde sistemas com determinada taxas de dados devem ser analisados (MARWEDEL, 1995).
A figura A.1 mostra o diagrama de blocos da plataforma do kit DSK C6713 da Spec- trum Digital Inc (TEXAS INSTRUMENTS INC., 2005).
Figura A.1: Diagrama de blocos da plataforma do kit de desenvolvimento DSK C6713
A fam´ılia de processadores digitais de sinal TMS320 ´e utilizada em uma ampla gama de aplica¸c˜oes, como em comunica¸c˜oes, controles de processamento de voz, e assim por
A.1 Ferramentas de suporte do DSK 67
diante. Tamb´em s˜ao utilizados em telefones celulares, cˆameras digitais, televis˜ao de alta defini¸c˜ao (HDTV), r´adio, transmiss˜ao de fax, modems e outros dispositivos.
Estes dispositivos tamb´em podem ser utilizados em projetos experimentais, pois for- necem uma maneira econˆomica de apresentar em tempo real o processamento de sinais.
O DSP procura trabalhar principalmente com o processamento de sinal em tempo real (real-time).
Sistemas anal´ogicos com componentes eletrˆonicos, como resistores, podem ser mais sens´ıveis `a mudan¸cas de temperatura por exemplo, j´a sistemas baseados em DSP s˜ao menos afetados pelas condi¸c˜oes ambientais. Eles tamb´em tˆem uma vantagem de utilizar microprocessadores, sendo de f´acil utiliza¸c˜ao, flex´ıveis e econˆomicos.
A fam´ılia de processadores TMS320C6x (C6x) s˜ao microprocessadores com uma alta velocidade de processamento contendo um tipo especializado de arquitetura e um conjunto de instru¸c˜oes adequadas para o processamento de sinais.
A nota¸c˜ao C6x ´e utilizada para designar a fam´ılia de DSP da Texas Instruments (TI fam´ılia TMS320C6000), onde a arquitetura deste processador digital de sinal est´a adap- tada para c´alculos num´ericos intensivos baseado na arquitetura VLIW, senso considerado um dos melhores processadores da TI.
A fam´ılia C6x da TI pode realizar diferentes tarefas, uma vez que permite a repro- grama¸c˜ao facilmente para diversas aplica¸c˜oes, tendo tido muito sucesso devido ao desen- volvimento de baixo custo do software e hardware.
Processadores da fam´ılia C6x incluem tanto dispositivos de ponto fixo (por exemplo, C62x, C64x) e de ponto flutuante (por exemplo, C67x). O processador utilizado no trabalho foi o C6713 de ponto flutuante muito ´util em aplica¸c˜oes que requerem c´alculos intensivos.
A.1
Ferramentas de suporte do DSK
Desenvolvido pela Spectrum Digital Inc., o kit DSK6713 consiste em uma plataforma de integra¸c˜ao entre o DSP TMS320C6713 e diversos componentes.
Para realizar a implementa¸c˜ao de programas no DSP ´e necess´ario a comunica¸c˜ao do kit com um computador atrav´es de uma porta USB, possibilitando a implementa¸c˜ao de diversas aplica¸c˜oes no processador.
A.1 Ferramentas de suporte do DSK 68
Para realiza¸c˜ao do projeto foram utilizadas as seguintes ferramentas:
• Kit da TI - DSP (DSK). O pacote inclui o Code Composer Studio (CCS), que fornece o software necess´ario e ferramentas de apoio com um ambiente de desenvolvimento integrado (IDE), que re´une um compilador C, assembler, linker e debugger.
• A placa, mostrada na figura A.2 (TEXAS INSTRUMENTS INC., 2005), cont´em o pro- cessador TMS320C6713 (C6713) de ponto flutuante, bem como um codec stereo de 32-bits para entrada e sa´ıda de dados.
Figura A.2: Placa do kit de desenvolvimento DSK6713
• A conex˜ao da placa do kit DSK se conecta `a porta USB do PC atrav´es de um cabo.
O pacote DSK inclui tamb´em conversores AD e DA, 16MB de mem´oria SDRAM e 256KB de mem´oria flash. Quatro conectores de entrada e sa´ıda de dados: MIC IN para entrada de microfone, LINE IN, LINE OUT para sa´ıda de linha e uma entrada para fone de ouvido(multiplexado com sa´ıda de linha). O processador opera com uma freq¨uˆencia de 225MHz.
Existem na placa do kit reguladores de tens˜ao que fornecem uma tens˜ao de 1,26 V para o C6713 e 3,3 V para a sua mem´oria e perif´ericos.
A.1.1
DSP TMS320C6713
O TMS320C6713 (C6713) ´e baseado na arquitetura VLIW, que est´a muito bem adap- tado para algoritmos numericamente intensivos. A mem´oria de programa interno est´a estruturada de modo que um total de oito instru¸c˜oes podem ser buscadas a cada ciclo.
A.1 Ferramentas de suporte do DSK 69
Outra caracter´ıstica do DSP C6713 ´e sua mem´oria interna de 264 kB (8kb como L1P e L1D e 256kB de mem´oria cache L2 compartilhado entre o programa e os dados), seis unidades de l´ogica aritm´etica (ULA) e duas unidades de multiplicadores, um barramento de 32 bits de endere¸co de 4 GB e dois conjuntos de registradores de 32 bits. Na figura A.3 (TEXAS INSTRUMENTS INC., 2005) ´e mostrado o diagrama interno do DSP TMS320C6713.
70
Anexo B -- Real-Time Data Exchange
(RTDX)
Real-Time Data Exchange (RTDX) fornece, em tempo real, a visibilidade cont´ınua nas opera¸c˜oes realizadas numa plataforma de destino. RTDX transfere dados entre um computador, “host ”, e dispositivos de destino,“target ”, sem interferir nas aplica¸c˜oes rea- lizadas no “target ”, ou seja, sem interrup¸c˜ao de processamento no “target”. Vocˆe pode analisar e visualizar os dados no computador utilizando a interface fornecida pelo COM RTDX. Aplicativos-cliente como o Visual Basic, Visual C + +, Excel, LabView, Matlab, e outros podem facilmente usar a interface COM. Esta representa¸c˜ao realista de seu funci- onamento do sistema pode encurtar o tempo de desenvolvimento (TEXAS INSTRUMENTS INC., 2005).
RTDX forma dois canais para caminho de dados entre um aplicativo-cliente no compu- tador e a plataforma de destino atrav´es de uma combina¸c˜ao de componentes de hardware e software, como mostrado na figura B.1 (TEXAS INSTRUMENTS INC., 2005):
Anexo B -- Real-Time Data Exchange (RTDX) 71
Os dados podem ser enviados a partir do aplicativo da plataforma de destino para o aplicativo-cliente no computador e vice-versa. Esses canais, atrav´es do qual os dados trafegam, s˜ao unidirecionais; os fluxos de dados trafegam a partir do aplicativo da plata- forma de destino para o aplicativo-cliente no computador e vice-versa em canais distintos. Os dados podem ser inseridos nesses canais de forma ass´ıncrona, ou seja, a qualquer momento.
O dispositivo de destino envia dados para o computador no computador chamando fun¸c˜oes da biblioteca RTDX localizada na plataforma de destino, chamada “RTDX Target Library”. Estas fun¸c˜oes imediatamente armazenam os dados em um buffer de dados e ent˜ao retornam. A “RTDX Target Library”, em seguida, transmite os dados do buffer para o computador, sem interferir no dispositivo de destino. O computador registra estes dados ou em um buffer de mem´oria ou um arquivo de log RTDX, dependendo do modo de grava¸c˜ao no computador especificado na configura¸c˜ao do RTDX. Os dados gravados podem ser recuperados por qualquer aplicativo-cliente no computador que esteja interfaceado com o Code Composer Studio (CCS) via RTDX. Computadores de plataforma Windows oferecem uma interface COM que ´e usada entre um aplicativo-cliente e o CCS.
Do mesmo modo, um aplicativo-cliente no computador pode enviar dados para o dispositivo de destino. A biblioteca RTDX localizada no CCS, chamada “RTDX Host Library”, armazena no buffer todos os dados enviados para o dispositivo de destino. Se a “RTDX Host Library”receber um pedido de dados do dispositivo de destino e os dados no buffer do host forem suficientes para atender `a solicita¸c˜ao, a “RTDX Host Library”envia os dados para o dispositivo de destino. Os dados s˜ao gravados para o local solicitado sem interferir com o dispositivo de destino. O host notifica o “RTDX Host Library”ap´os a conclus˜ao de opera¸c˜ao.
Na figura B.2 ilustra-se a sintaxe dos comandos de escrita e recebimento de dados no CCS, a vari´avel a ser enviada ou recebida ´e “arraydata”; “ichan”significa o canal RTDX de entrada de dados e “ochan”significa o canal RTDX de sa´ıda de dados, ambos j´a devem ter sido criados e habilitados quando se d´a a execu¸c˜ao deste comando de transferˆencia de dados.
Anexo B -- Real-Time Data Exchange (RTDX) 72
A configura¸c˜ao e habilita¸c˜ao do RTDX devem ser feitas antes do in´ıcio do proces- samento no DSP. As figura B.3 e figura B.4 ilustram, respectivamente, as janelas de configura¸c˜ao e ativa¸c˜ao do RTDX.
Figura B.3: Janela para configura¸c˜ao do RTDX.
73
Anexo C -- Ferramenta Profile do Code
Composer Studio
O Code Composer Studio fornece uma ferramenta que possibilita o profile do seu c´odigo em execu¸c˜ao, ou seja, o monitoramento de alguns parˆametros desejados no proces- sador DSP durante a execu¸c˜ao do seu c´odigo ou parte dele. Os parˆametros que podem ser monitorados podem ser vistos atrav´es da aba “Custom”do “Setup”do Profile como mostra a figura C.1. Muitos parˆametros podem ser monitorados, sendo o mais comum “Cycles”que se refere aos ciclos do DSP.
Figura C.1: Parˆametros que podem ser monitorados pelo Code Composer Profiler.
Dentro do seu c´odigo, pode-se escolher fun¸c˜oes, loops ou linhas de c´odigo que, durante