Sie sind auf Seite 1von 6

DESENVOLVIMENTO DE APLICAES MIPS MINERAO DE DADOS

Angelita Torres 10/0025323


angelitactorres@gmail.com

Wesley Ferdinando 09/0139836


wesley_ferdinando@hotmail.com Organizao e Arquitetura de Computadores Turma C Professor Dr. Flvio de Barros Vidal CiC/Universidade de Braslia Campus Darcy Ribeiro CEP 70910-900 Braslia/DF

1 1.1
Resumo: Este trabalho tem como objetivo o aprofundamento terico e prtico no projeto e criao de aplicaes baseadas em arquitetura MIPS. Nele sero explorados aspectos da linguagem Assembly MIPS, bem como sua estrutura e boas prticas de programao na elaborao de um programa para minerao de dados. Palavras Chaves: MIPS, minerao de dados, desempenho, otimizao e arquiteturas computacionais. Abstract: This work intends to deepen, both in theory and practice on project and creation of applications based on MIPS architecture. In it will explore aspects of MIPS Assembly language as well as its structure and good programming practices in developing a program for data mining. Keywords: MIPS, data mining, performance, optimization and computational architectures.

INTRODUO Minerao de Dados

Minerao de dados (tambm conhecida pelo termo ingls data mining) o processo de explorar grandes quantidades de dados procura de padres consistentes, como regras de associao ou sequncias temporais, para detectar relacionamentos sistemticos entre variveis, detectando assim novos subconjuntos de dados. A minerao de dados formada por um conjunto de ferramentas e tcnicas que atravs do uso de algoritmos de aprendizagem ou classificao baseados em redes neurais e estatstica, so capazes de explorar um conjunto de dados, extraindo ou ajudando a evidenciar padres nestes dados e auxiliando na descoberta de conhecimento. Esse conhecimento pode ser apresentado por essas ferramentas de diversas formas: agrupamentos, hipteses, regras, rvores de deciso, grafos, ou dendrogramas. O ser humano sempre aprendeu observando padres, formulando hipteses e testando-as para descobrir regras. A novidade da era do computador o volume enorme de dados que no pode mais ser examinado procura de padres em um prazo razovel. A soluo instrumentalizar o prprio computador para detectar relaes que sejam novas e teis. A minerao de dados (MD) surge para essa finalidade e pode ser aplicada tanto para a pesquisa cientifica como para impulsionar a lucratividade da empresa madura, inovadora e competitiva.

Minerao de Dados, 27 de maio de 2013

Pgina 1

Diariamente as empresas acumulam grande volume de dados em seus aplicativos operacionais. So dados brutos que dizem quem comprou o qu, onde, quando e em que quantidade. a informao vital para o dia-a-dia da empresa. Se fizermos estatstica ao final do dia para repor estoques e detectar tendncias de compra, estaremos praticando business intelligence (BI). Se analisarmos os dados com estatstica de modo mais refinado, procura de padres de vinculaes entre as variveis registradas, ento estaremos fazendo minerao de dados. Buscamos com a MD conhecer melhor os clientes, seus padres de consumo e motivaes. A MD resgata em organizaes grandes o papel do dono atendendo no balco e conhecendo sua clientela. Atravs da MD, esses dados agora podem agregar valor s decises da empresa, sugerir tendncias, desvendar particularidades dela e de seu meio ambiente e permitir aes melhor informadas aos seus gestores. Pode-se ento diferenciar o business inteligence (BI) da minerao de dados (MD) como dois patamares distintos de atuao. O primeiro busca subsidiar a empresa com conhecimento novo e til acerca do seu meio ambiente e funciona no plano estratgico. O Segundo visa obter a partir dos dados operativos brutos, informao til para subsidiar a tomada de deciso nos escales mdios e altos da empresa e funciona no plano tctico. Os passos fundamentais de uma minerao bem sucedida a partir de fontes de dados (bancos de dados, relatrios, logs de acesso, transaes, etc.) consistem de uma limpeza (consistncia, preenchimento de informaes, remoo de rudo e redundncias, etc.). Disto nascem os repositrios organizados (Data Marts e Data Warehouses). a partir deles que se pode selecionar algumas colunas para atravessarem o processo de minerao. Tipicamente, este processo no o final da histria: de forma interativa e frequentemente usando visualizao grfica, um analista refina e conduz o processo at que os padres apaream. Observe que todo esse processo parece indicar uma hierarquia, algo que comea em instncias elementares (embora volumosas) e terminam em um ponto relativamente concentrado. Encontrar padres requer que os dados brutos sejam sistematicamente "simplificados" de forma a desconsiderar aquilo que especfico e privilegiar aquilo que genrico. Faz-se isso porque no parece haver muito conhecimento a extrair de eventos isolados. Uma loja de sua rede que tenha vendido a um cliente uma quantidade impressionante de um determinado produto em uma nica data pode apenas significar que esse cliente em particular procurava grande quantidade desse produto naquele exato momento. Mas isso provavelmente no indica nenhuma tendncia de mercado.

Padres so unidades de informao que se repetem. A tarefa de localizar padres no privilgio da minerao de dados. O crebro dos seres humanos utiliza-se de processos similares, pois muito do conhecimento que temos em nossa mente , de certa forma, um processo que depende da localizao de padres. Para exemplificar esses conceitos, vamos propor um breve exerccio de induo de regras abstratas. Nosso objetivo tentar obter alguma expresso genrica para a seguinte sequncia:

Sequncia original: ABCXYABCZKABDKCABCTUABEWLABCWO

Observe atentamente essa sequncia de letras e tente encontrar alguma coisa relevante. Veja algumas possibilidades:
Passo 1: A primeira etapa perceber que existe uma

sequncia de letras que se repete bastante. Encontramos as sequncias "AB" e "ABC" e observamos que elas ocorrem com frequncia superior das outras sequncias.
Passo 2: Aps determinarmos as sequncias "ABC" e

"AB", verificamos que elas segmentam o padro original em diversas unidades independentes:
"ABCXY" "ABCZK" "ABDKC" "ABCTU" "ABEWL" "ABCWO" Passo 3: Fazem-se agora indues, que geram algumas

representaes genricas dessas unidades:


"ABC??" "ABD??" "ABE??" e "AB???",

onde '?' representa qualquer letra. No final desse processo, toda a sequncia original foi substituda por regras genricas indutivas, o que simplificou (reduziu) a informao original a algumas expresses simples. Esta explicao um dos pontos essenciais da minerao de dados, como se pode fazer para extrair certos padres de dados brutos. Contudo, mais importante do que simplesmente obter essa reduo de informao, esse processo nos permite gerar formas de predizer futuras ocorrncias de padres.
[Fonte:http://pt.wikipedia.org/wiki/Minera%C3%A7%C3%A3o_de_d ados]

Minerao de Dados, 27 de maio de 2013

Pgina 2

1.2

Assembly MIPS
2. Solicitamos ao usurio, a partir do procedimento LeNomeArquivo, o arquivo de entrada (.txt) a partir de uma interface interativa. Caso no seja possvel abrir o arquivo, ser pedido um novo nome. Se o usurio clicar em OK ou apertar a tecla Enter do teclado, o programa continuar sua execuo. Caso o usurio clique em Cancelar, o programa ser finalizado; 3. A partir da entrada de um nome vlido de arquivo, abre-se o arquivo e se realiza leitura char-a-char do arquivo texto os quais so carregados no segmento de memria .data a partir do procedimento AbreArquivo; 4. Aps se carregar todos os caracteres do arquivo .txt em memria, executa-se o procedimento MineraCaractere, que responsvel por todos os caracteres encontrados no texto os quais so iguais ao caractere passado como entrada no passo 1, empilhando o endereo do primeiro caractere de cada cadeia identificada com o smbolo a ser minerado alm de contabilizar a quantidade de smbolos encontrados no arquivo; 5. A partir do procedimento ConjuntoCadeias, cada cadeia que contm o caractere minerado carregado no segmento de memria .data, logo aps os dados j carregados do arquivo .txt aberto e carregado em memria no passo 3, utilizando-se para isso, os endereos de cada caractere inicial de cada cadeia que se encontram na pilha. Tal procedimento, tambm, contabiliza a quantidade total de caracteres contida em todas as cadeias do caractere minerado; 6. A partir do procedimento CriaArquivoSaida, cria-se o arquivo sada.txt; 7. A partir do procedimento EscreveArquivo, escreve-se no arquivo sada.txt cabealhos e todas as cadeias de caracteres que contm o caractere a ser minerado separados por o smbolo ; e um espao em branco. 8. A realizao da chamada funo IntToString serve para converter o nmero de caracteres minerados contabilizados no passo 4, que um valor inteiro, para string, assim fazendo-se possvel imprimir em arquivo esse valor. 9. A chamada ao procedimento FechaArquivo fecha o arquivo aberto no passo 3. 10. A chamada ao procedimento Exit, finaliza o programa.

MIPS uma arquitetura computacional RISC (Recuced Instruction Set Computer) com um acrnimo para Microprocessor without Interlocked Pipelines (Microproces- sador sem Estgios Interligados de Pipeline) desenvolvida pela MIPS Computer Systems. Essa arquitetura trabalha principalmente com 32 bits, sendo recentemente expandida para 64 bits. Em sua aplicao mais atual, o MIPS 32/64 foram adicionadas diversas funcionalidades, como: o MIPS-3D que um conjunto de instrues de pontoflutuante para clculos dedicados s tarefas 3D comuns, o MDMX que um conjunto de instrues que utilizam ponto-flutuante com 64 bits e o MIPS MT, tecnologia similar ao Hyper-Threading da Intel. Sua arquitetura, RISC, caracterizada por conter um nmero reduzido de instrues, execuo otimizada de chamadas de funes e modo de execuo com Pipelining. Os processadores MIPS e suas aplicaes esto distribudos no mundo da computao e do entretenimento, sendo aplicados em Videogames como o Nintendo 64, tablets, sistemas embarcados de TVs, Roteadores CISCO, sons, celulares e at em controladores de mquinas industriais.

2 2.1

MTODOS Construo do Sistema

Neste trabalho utilizamos a linguagem Assembly MIPS, o ambiente de desenvolvimento MARS e nossos conhecimentos acerca da linguagem. Os passos listados a seguir definem como o macro funcionamento de nosso sistema implementado em Assembly MIPS: 1. Solicitamos ao usurio, a partir do procedimento LeCaractere, que digite o caractere a ser minerado a partir de uma interface interativa. Se o usurio clicar em OK ou apertar a tecla Enter do teclado, o programa continuar sua execuo. Caso clique em Cancelar o programa ser finalizado;

Minerao de Dados, 27 de maio de 2013

Pgina 3

2.2

Processo de Desenvolvimento do Trabalho (Minerao de Dados)


vcvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

O diagrama abaixo descreve o processo de desenvolvimento do trabalho.

Diagrama de Fluxo - Processo de Desenvolvimento do Trabalho (Minerao de Dados) x

2.2.1 Requisito 1
Projeto de uma interface de entrada para que o usurio digite o nome do arquivo texto que ser utilizado na realizao da operao de Minerao de dados, em Assembly, no ambiente de desenvolvimento MIPS MARS.

2.2.2 Requisito 2
Projeto de uma interface de sada, de maneira tal, que seja criado um arquivo de sada com o nome saida.txt a ser gravado em disco (ex.: HD no mesmo diretrio da aplicao) contendo as informaes que foram recuperadas.

Minerao de Dados, 27 de maio de 2013

Pgina 4

2.2.3 Requisito 4
Projeto do algoritmo do procedimento "EncontraCadeiaCaractere". Para cada cadeia encontrada, escrito no arquivo de sada (sada.txt) esta cadeia completa, separadas com um smbolo ; (ponto e vrgula seguido de um espao em branco) e apresente um resumo (totalizao) do nmero de ocorrncias do smbolo/cadeia procurado no arquivo source.txt. Parmetro ALU Jump Branch Memory Other Procedimento VerificaArquivoTexto 32% 14% 22% 11% 22%
Tabela 5

2.2.4 Requisito 5
Esta implementao dever tratar problemas relacionados ao condicionamento numrico (overflow, underflow e not-a-number), bem como os valores de entradas e sada de usurio a serem requisitados. Parmetro ALU Jump Branch Memory Other

RESULTADOS

A partir da implementao e usando a ferramenta Instruction Statistics do ambiente Mars_4.1_Custom_v5, foi possvel medir o uso de alguns procedimentos do programa: Parmetro ALU Jump Branch Memory Other Procedimento OpcaoSistemaOperacional 57% 10% 10% 10% 14%
Tabela 1

Procedimento MineraCaractere 24% 4% 39% 11% 22%


Tabela 6

Parmetro ALU Jump Branch Memory Other

Procedimento ConjuntoCadeias 30% 8% 42% 19% 1%


Tabela 7

Parmetro ALU Jump Branch Memory Other

Procedimento LeCaractere 39% 12% 24% 12% 12%


Tabela 2

Parmetro ALU Jump Branch Memory Other

Procedimento RetiraCaractereNulo 34% 8% 17% 33% 9%


Tabela 8

Parmetro ALU Jump Branch Memory Other

Procedimento LeNomeArquivo 39% 12% 24% 12% 12%


Tabela 3

Parmetro ALU Jump Branch Memory Other

Procedimento CriaArquivoSaida 56% 22% 0% 0% 22%


Tabela 9

Parmetro ALU Jump Branch Memory Other

Procedimento AbreArquivo 55% 9% 5% 0% 32%


Tabela 4

Parmetro ALU Jump Branch Memory Other

Procedimento EscreveArquivoSaida 48% 2% 12% 2% 35%


Tabela 10

Minerao de Dados, 27 de maio de 2013

Pgina 5

Parmetro ALU Jump Branch Memory Other

Procedimento IntToString 56% 4% 27% 5% 8%


Tabela 11

Parmetro ALU Jump Branch Memory Other

Procedimento FechaArquivo 25% 38% 0% 0% 38%


Tabela 12

Parmetro ALU Jump Branch Memory Other

Procedimento Exit 33% 33% 0% 0% 33%


Tabela 13

MATERIAIS

Para este trabalho foram usados: Desktop Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40 GHz, 4 GB; Ambiente de desenvolvimento Mars_4.1_Custom_v5.

arquivo invlido o procedimento sempre requisitar um novo pedido de entrada de nome de arquivo ao usurio, at que o nome seja vlido ou o usurio aperte o boto Cancelar, o qual terminar a execuo do programa. Porm, ao se realizar testes, inserindo-se repedidamente nomes de arquivos de entrada invlidos para o procedimento, percebemos que a IDE acrescenta o valor -2 ao registrador $a1 de maneira no determinada no determinada pelo procedimento. Isso ocorre a partir da segunda tentativa de se inserir um nome de arquivo de entrada para o programa, ou seja, aps um primeiro nome de entrada invlido, ao tentar se escrever entradas vlidas ou no, o programa encerrar a execuo. A concluso de que esse comportamento anmalo foi provocado por algum bug da IDE, foi dada a partir de vrios testes de debug, analisando-se a execuo do cdigo linha a linha a partir dos recursos oferecidos pela prpria IDE Mars_4.1_Custom_v5. Para melhoria da performance do programa, pensamos em otimiz-lo unindo o procedimento MineraCaractere com o EscreveArquivo, no sentido de no se ter que empilhar todos os endereos dos primeiros caracteres das cadeias que possuem o caractere minerado, passando-se a se escrever diretamente no arquivo sada.txt a cada identificao de da cadeia com o caractere minerado. Isso ajudaria a promover uma reduo de custos no procedimento MineraCaractere no que se refere ao uso de branches e memria. Concluimos que obtemos um resultado satisfatrio na implementao de tal trabalho, pois, aps as modificaes de correo, anlises de requisitos e testes na realizao do mesmo, atingimos nossos objetivos no que se refere ao atendimento dos requisitos passados para sua elaborao, alm de, tambm, alcanar parmetros de qualidade estabelecidos pela equipe.

DISCUSSES E CONCLUSES

REFERNCIA BIBLIOGRFICA
1. Patterson, D.A., Hennessy, J.L., Organizao e Projeto de Computadores A Interface Hardware/Software, terceira edio, Editora Campus, 2005. Prof. Dr. Flvio Vidal - Slides de Aula OAC 1/2013.

No desenvolvimento deste trabalho, tivemos bastante desgaste em solucionar os problemas relacionados a leitura do arquivo source.txt passado para elaborao do trabalho. Na metodologia de desenvolvimento, ao invs de utilizarmos tal arquivo, criamos um arquivo prprio (source_teste.txt) no sistema operacional Windows, com um nmero reduzido de caracteres para se poder realizar pequenos testes. Ao final da implementao com tal arquivo (source_teste.txt), passamos para a fase de teste com o arquivo source.txt o qual promoveu erros no programa por conta do tipo de algoritmo adotado com o arquivo anterior (source_teste.txt). Percebemos que a criao de um arquivo .txt em um sistema Linux, acrescentado o caractere \0 (cdigo ascii 0x00 (NUL)) depois de cada caractere contido no arquivo, diferentemente de um mesmo arquivo .txt criado em Windows. Por conta deste caractere, foi necessria a realizao de vrias modificaes na primeira implementao do trabalho. Identificamos um bug de execuo da IDE Mars_4.1_Custom_v5 localizada no procedimento LeNomeArquivo. Ao tentar se escrever um nome de

2.

Minerao de Dados, 27 de maio de 2013

Pgina 6

Das könnte Ihnen auch gefallen