<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>Virtualization Instruction Set Architecture</title><link>http://visa.codeplex.com/Project/ProjectRss.aspx</link><description>A virtualiza&amp;#231;&amp;#227;o &amp;#233; uma t&amp;#233;cnica importante para a execu&amp;#231;&amp;#227;o paralela de sistemas operacionais em um mesmo processador. Monitores de m&amp;#225;quinas virtuais &amp;#40;MMVs&amp;#41; s&amp;#227;o utilizados para suporte e gerenciamento...</description><item><title>Updated Wiki: Plano de Atividades</title><link>http://visa.codeplex.com/Wiki/View.aspx?title=Plano de Atividades&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Plano de Atividades
&lt;/h1&gt; &lt;br /&gt;&lt;h2&gt;
2007 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Fevereiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Pesquisar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Conclu&amp;#237;do &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Utilizar o ArchC e o System C para simular e testar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Conclu&amp;#237;do em parte. Foram encontradas dificuldades em modelar certas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria utilizando o ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudar o c&amp;#243;digo de um Monitor de M&amp;#225;quinas Virtuais real &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt;, &lt;b&gt;Fevereiro&lt;/b&gt; e &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Modelar diferentes configura&amp;#231;&amp;#245;es de processadores multi-core com configura&amp;#231;&amp;#245;es de mem&amp;#243;ria &lt;/td&gt;&lt;td&gt; &lt;i&gt;Parcialmente Conclu&amp;#237;do&lt;/i&gt;: ficou faltando implementar a tabela de p&amp;#225;ginas extendida / Tamb&amp;#233;m foi iniciada a implementa&amp;#231;&amp;#227;o de nanobenchmarks para m&amp;#225;quinas virtuais descritos no artigo citado no BLOG. &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt;  e &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Implementa&amp;#231;&amp;#227;o de nanobechmarks para m&amp;#225;quinas virtuais descritos no artigo citado no blog / Realizar testes com nanobechmarks no MIPS-vt / Publica&amp;#231;&amp;#227;o do c&amp;#243;digo fonte utilizando SVN &lt;/td&gt;&lt;td&gt; &lt;i&gt;Em andamento&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avalia&amp;#231;&amp;#227;o e publica&amp;#231;&amp;#227;o de resultados em um artigo &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Mon, 06 Apr 2009 17:53:34 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Plano de Atividades 20090406055334P</guid></item><item><title>Updated Wiki: Blog</title><link>http://visa.codeplex.com/Wiki/View.aspx?title=Blog&amp;version=54</link><description>&lt;div class="wikidoc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;25/03/2009 - Rebuilding nanobechmarks&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Desculpem a falta de atualiza&amp;#231;&amp;#227;o. Muitas coisas aconteceram no m&amp;#234;s de mar&amp;#231;o.&lt;br /&gt;Bem, houve algumas modifica&amp;#231;&amp;#245;es no &lt;a href="http://visa.codeplex.com/Wiki/View.aspx?title=Plano%20de%20Atividades&amp;amp;referringTitle=Home" class="externalLink"&gt;Plano de Atividades&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Como n&amp;#227;o foram encontrados &amp;#224; disposi&amp;#231;&amp;#227;o os nanobechmarks comentados no &amp;#250;ltimos post, a partir das descri&amp;#231;&amp;#245;es feitas no artigo, tamb&amp;#233;m citado no &amp;#250;ltimo post, estamos recriando os nanobechmarks.&lt;br /&gt;A id&amp;#233;ia &amp;#233; ter esses nanobechmarks prontos para que, a cada novo acr&amp;#233;scimo no modelo do MIPS-vt, possamos testar a nova vers&amp;#227;o e comparar seu desemprenho com a antiga vers&amp;#227;o. &lt;br /&gt;No momento estamos dando prioridade para a implementa&amp;#231;&amp;#227;o dos nanobechmarks.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;04/02/2009 - Virtualization nanobenchmarks&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Terminanda a modelagem do suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o da mem&amp;#243;ria, chega o esperado momento de testar. &lt;br /&gt;Inicialmente foi solicitado a um fabricante de MMV que compartilhasse conosco alguns trechos de c&amp;#243;digo com cargas de trabalho caracter&amp;#237;sticas de um MMV, mas parece que isso n&amp;#227;o ser&amp;#225; poss&amp;#237;vel. Assim, estamos procurando novas fontes de benchmarks para sistemas virtualizados. &lt;br /&gt;A dificuldade de encontrar benchmarks completos com caracter&amp;#237;sticas de aplica&amp;#231;&amp;#245;es virtualizadas reais, como os dispon&amp;#237;veis para sistemas n&amp;#227;o virtualizados, &amp;#233; grande. Ent&amp;#227;o, resolvemos nos voltar para nanobenchmarks citados em &amp;quot;&lt;i&gt;Adams, K, Agesen, O. A Comparision of Software an Hardware Techniques for x86 Virtualization,2006&lt;/i&gt;&amp;quot;.  Cada um desses nanobechmarks estressa uma caracter&amp;#237;stica diferente de sistemas virtualizado. Em breve teremos os resultados.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/01/2009 - A new year&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Depois das festas de fim de ano, recome&amp;#231;am os trabalhos. Breve novos releases.&lt;br /&gt;Com a disponibiliza&amp;#231;&amp;#227;o de SVN feita pelo Codeplex, em breve o projeto estar&amp;#225; dispon&amp;#237;vel nesse sistema e ficar&amp;#225; mais f&amp;#225;cil para pessoas que desejam colaborar.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;16/12/2008 - Multi-core implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou enfrentando algumas dificuldades para implementar a tabela de p&amp;#225;ginas extendida, pois n&amp;#227;o &amp;#233; t&amp;#227;o claro como os modelos do ArchC acessam a tabela j&amp;#225; existente. Acredito que para sanar esses problemas terei que implementar novas fun&amp;#231;&amp;#245;es do ArchC, isso demora um pouco, mas &amp;#233; poss&amp;#237;vel.&lt;br /&gt;Para n&amp;#227;o ficar somente tentando implementar a tabela de p&amp;#225;ginas extendida, resolvi retomar a implementa&amp;#231;&amp;#227;o do sistema com m&amp;#250;ltiplos n&amp;#250;cleos, ou seja, colocar o que j&amp;#225; est&amp;#225; pronto modelado em um sistema com v&amp;#225;rios n&amp;#250;cleos. J&amp;#225; estou compilando um modelo com 2 n&amp;#250;cleos que possui em cada n&amp;#250;cleo o suporte de virtualiza&amp;#231;&amp;#227;o modelado at&amp;#233; o momento: instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, estruturas de virtualiza&amp;#231;&amp;#227;o (VMCS) e o VPID. Logo que realizar alguns testes para validar esse modelo e garantir que est&amp;#225; tudo ocorrendo como deve ser, irei diponibiliz&amp;#225;-lo.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;06/11/2008 - Extended Page Table implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o, semana passada muitos de n&amp;#243;s do projeto de interoperabilidade est&amp;#225;vamos em Campo Grande participando do SBAC-PAD (veja descri&amp;#231;&amp;#227;o &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20SBAC-PAD%20e%20WSCAD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;Essa semana retomamos os trabalhos para a implementa&amp;#231;&amp;#227;o de tabela de p&amp;#225;ginas extendida (veja mais detalhes &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Suporte%20%u00e0%20Virtualiza%u00e7%u00e3o%20da%20Mem%u00f3ria%3a%20Extended%20Page%20Table%20e%20VPID&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;30/10/2008 - SBAC-PAD/WSCAD participation and VPID implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou aqui em Campo Grande, Mato Grosso do Sul, assistindo ao &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=133" class="externalLink"&gt;SBAC-PAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; e &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=136" class="externalLink"&gt;WSCAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Em breve divulgarei descri&amp;#231;&amp;#227;o completa do evento, mas posso adiantar que est&amp;#225; sendo muito produtivo.&lt;br /&gt;Sobre o trabalho com Virtualiza&amp;#231;&amp;#227;o da Mem&amp;#243;ria, o VPID j&amp;#225; foi implementado. Agora estou trabalhando para acrescentar a nova TLB, para isso ser&amp;#225; necess&amp;#225;rio adicionar uma nova Tabela de P&amp;#225;ginas (&lt;i&gt;Extended Page Table&lt;/i&gt;).&lt;br /&gt;Em breve terei mais novidades.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;02/10/2008 - WSPPD and VPID Implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;As novidades s&amp;#227;o que o artigo para o WSPPD foi aceito e apresentado no dia 19 de setembro, veja &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20WSPPD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; o artigo, em ingl&amp;#234;s, a apresenta&amp;#231;&amp;#227;o, em portugu&amp;#234;s, e uma breve descri&amp;#231;&amp;#227;o de como foi o evento.&lt;br /&gt;Bem, esse artigo fala justamente do suporte de virtualiza&amp;#231;&amp;#227;o &amp;#224; mem&amp;#243;ria fornecido atualmente pelos processadores. S&amp;#227;o abordados principalmente dois aspectos desse suporte:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;uma nova TLB, que traduz o endere&amp;#231;o virtual do sistema operacional hospedado para o endere&amp;#231;o f&amp;#237;sico do hipervisor&lt;/li&gt;&lt;li&gt;o VPID (&lt;i&gt;Virtual Processor Identifier&lt;/i&gt;) que identifica a quais processadores virtuais os endere&amp;#231;os guardados na TLB e na cache pertencem, evitando a necessidade de limpar essas mesmas TLB e cache a cada VM-entry ou VM-exit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Iniciamos com a implementa&amp;#231;&amp;#227;o do VPID. Ele ser&amp;#225; um novo campo de dados do VMCS, e todos os endere&amp;#231;os traduzidos dever&amp;#227;o ser prefixados pelos VPID de seus respectivos processadores virtuais.&lt;br /&gt;Tivemos alguns problemas com in&amp;#237;cio da modelagem pois n&amp;#227;o conseguiamos fazer o download dos modelos com hiearquia de mem&amp;#243;ria do portal do ArchC. Parece que eles est&amp;#227;o com algumas dificuldades, mas j&amp;#225; est&amp;#227;o ajeitando. Sem poder baixar os modelos do site, procuramos alternativas e encontramos &lt;a href="http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/ar/archc/" class="externalLink"&gt;esse link&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; com todos os modelos e ferramentas do ArchC, a &amp;#250;nica coisa que n&amp;#227;o encontramos foi os &lt;i&gt;benchmarks&lt;/i&gt; (cargas de trabalho), se algu&amp;#233;m souber um lugar de onde possamos baixar, por favor, comente aqui.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;27/08/2008 - Memory Virtualization&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O in&amp;#237;cio deste semestre foi dedicado ao estudo das t&amp;#233;cnicas de mem&amp;#243;ria utilizadas nos processadores com suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o. O acesso &amp;#224; mem&amp;#243;ria &amp;#233; sempre um momento cr&amp;#237;tico no desempenho dos sistemas, inclusive dos sistemas virtualizados. O fato de realizar constantes trocas de contexto entre diversas m&amp;#225;quinas virtuais pode levar a um baixo desempenho dos sistemas de cache, por exemplo, pois, na aus&amp;#234;ncia de recursos de hardware, as caches devem ser limpas cada vez que &amp;#233; trocada a M&amp;#225;quina Virtual em execu&amp;#231;&amp;#227;o. &lt;br /&gt;Pretendemos estender o modelo que j&amp;#225; possui as instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o para tamb&amp;#233;m incluir algumas t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria em hardware.&lt;br /&gt;Nas &amp;#250;ltimas 2 semanas escrevemos um artigo para submiss&amp;#227;o em mais um &lt;a href="http://gppd.inf.ufrgs.br/wsppd/2008/" class="externalLink"&gt;WSPPD (Workshop de Processamento Paralelo e Distribu&amp;#237;do)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, o de 2008. Este artigo versa justamente sobre as t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria utilizadas na tecnologia Intel VT. Depois da divulga&amp;#231;&amp;#227;o da avalia&amp;#231;&amp;#227;o do artigo e de eventuais corre&amp;#231;&amp;#245;es sugeridas pelos avaliadores, disponibilizaremos ele aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/07/2008 - WCAE Presesentation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o fomos para apresentar o artigo no WCAE 2008 e participar do ISCA 2008, em Beijing, China. Viajamos dia 18 e voltamos dia 28. Logo darei um depoimento mais detalhado na se&amp;#231;&amp;#227;o Participa&amp;#231;&amp;#245;es e Eventos. &lt;br /&gt;Por enquanto queremos dizer que voltamos e, apesar das correrias de final de semestre e para mim, Manuela, final de curso, trabalho de conclus&amp;#227;o entre outros, colocaremos assim que poss&amp;#237;vel novas informa&amp;#231;&amp;#245;es aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/05/2008 - Paper Accepted in WCAE&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, sabem aquele material sobre como utilizar o MIPS-vt (MIPS com instru&amp;#231;&amp;#245;es de vitualiza&amp;#231;&amp;#227;o) para a educa&amp;#231;&amp;#227;o? Foi feito um artigo para submiss&amp;#227;o no &lt;a href="http://www.cs.ucsb.edu/~franklin/wcae08/WCAE08.html" class="externalLink"&gt;WCAE 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; que ocorre junto com o &lt;a href="http://isca2008.cs.princeton.edu/" class="externalLink"&gt;ISCA 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; em Beijing, China. &lt;br /&gt;E o artigo foi ACEITO!!!! Estamos preparando a apresenta&amp;#231;&amp;#227;o do trabalho que ser&amp;#225; feita no dia 23 de junho.&lt;br /&gt;Assim que ocorrer o evento, divulgaremos o artigo e a apresenta&amp;#231;&amp;#227;o aqui no portal.&lt;br /&gt; &lt;br /&gt;Outra coisa, agora o portal do VISA tem uma &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=English%20version&amp;amp;referringTitle=Home" class="externalLink"&gt;vers&amp;#227;o em ingl&amp;#234;s&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Essa vers&amp;#227;o possui um resumo do que j&amp;#225; est&amp;#225; presente na vers&amp;#227;o em portugu&amp;#234;s.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;28/04/2008 - Using MIPS-vt to Understanding the Hardware Virtualization Support&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Passei as &amp;#250;ltimas semanas terminando o material que mostra como utilizar o modelo de MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o (MIPS-vt) para ensinar em sala de aula. O material ficou t&amp;#227;o bom que estamos tentando submeter para algum evento, por esse motivo ainda n&amp;#227;o foi divulgado aqui.&lt;br /&gt;Com o MIPS-vt implementado usando ArchC2.0 &amp;#233; poss&amp;#237;vel come&amp;#231;ar a modelagem em m&amp;#250;ltiplos n&amp;#250;cleos. Vou fazer isso seguindo as dicas dadas em &amp;quot;&lt;a href="http://www.sbc.org.br/bibliotecadigital/download.php?paper=643" class="externalLink"&gt; R. Azevedo, S. Rigo e G. Ara&amp;#250;jo, Projeto e Desenvolvimento de Sistemas Dedicados Multiprocessados &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&amp;quot;, que explica como modelar com m&amp;#250;ltiplos n&amp;#250;cleos usando o ArchC em conjunto com o SystemC e tem um exemplo passo-a-passo.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;7/04/2008 - Upgrading the model to ArchC 2.0&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Essa semana terminei a implementa&amp;#231;&amp;#227;o do modelo do MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o baseadas na Intel VT-x utilizando ArchC 2.0. Esse novo modelo &amp;#233; monociclo (sem pipeline). Essa tradu&amp;#231;&amp;#227;o foi feita para facilitar a implementa&amp;#231;&amp;#227;o do modelo em m&amp;#250;ltiplos n&amp;#250;cleos, pois o ArchC 2.0 fornece op&amp;#231;&amp;#245;es melhores e mais f&amp;#225;ceis para a modelagem de m&amp;#250;ltiplos n&amp;#250;cleos.&lt;br /&gt; &lt;br /&gt;Ainda estou escrevendo o material para utiliza&amp;#231;&amp;#227;o do modelo no ensino.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/03/2008 - A New Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Com a inten&amp;#231;&amp;#227;o de comparar o tempo necess&amp;#225;rio para fazer as trocas de contexto entre m&amp;#225;quinas virtuais no MIPS original e no MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, foi definido um teste com as seguintes cararcter&amp;#237;sticas:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;3 m&amp;#225;quinas virtuais com cargas de trabalho diferentes&lt;/li&gt;&lt;li&gt;diversas trocas de contexto entre as diferentes m&amp;#225;quinas virtuais ser&amp;#227;o realizadas ao longo da execu&amp;#231;&amp;#227;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Esse teste ser&amp;#225; executado nas duas vers&amp;#245;es do MIPS para comparar os resultados. Abaixo est&amp;#225; o corpo do teste:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=29581" alt="teste.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;15/02/2008 - Caracterization for Virtualization Benchmarking&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Em rela&amp;#231;&amp;#227;o &amp;#224;s caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor, encontrei o artigo: Casazza, J. P., Greenfield, M., Shi, K. (2006)  &lt;i&gt;&amp;quot;Redefining Server Performance Characterization for Virtualization Benchmarking&amp;quot;&lt;/i&gt;, Intel Technology Journal. Nesse artigo os autores esclarecem que n&amp;#227;o &amp;#233; poss&amp;#237;vel analisar m&amp;#225;quinas virtualizadas utilizando somente os benchmarks comuns, pois eles n&amp;#227;o levam em considera&amp;#231;&amp;#227;o a divis&amp;#227;o dos recursos reais entre as diversas m&amp;#225;quinas virtuais, assim, o artigo fornece uma metodologia para criar uma carga de trabalho para um benchmark.&lt;br /&gt; &lt;br /&gt;A documenta&amp;#231;&amp;#227;o para auxiliar professores em aula est&amp;#225; sendo elaborada.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/01/2008 - Running the test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O modelo est&amp;#225; funcionando perfeitamente. Executei algumas instru&amp;#231;&amp;#245;es que geraram as seguintes estat&amp;#237;sticas:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=25923" alt="fig_estatisticas.jpg" /&gt;&lt;br /&gt;Nas estat&amp;#237;ticas pode-se ver nas linhas 5, 6 e 7, informa&amp;#231;&amp;#245;es sobre a execu&amp;#231;&amp;#227;o total, em seguida, as estat&amp;#237;sticas referentes &amp;#224;s instru&amp;#231;&amp;#245;es executadas. Por &amp;#250;ltimo, h&amp;#225; detalhes sobre a utiliza&amp;#231;&amp;#227;o dos bancos de registradores e dos registradores contidos no pipeline.&lt;br /&gt; &lt;br /&gt;Atualmente estou procurando caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor (instru&amp;#231;&amp;#245;es mais executadas) sem a utiliza&amp;#231;&amp;#227;o de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o para formular um benchmark.&lt;br /&gt; &lt;br /&gt;Em paralelo, estou elaborando um documento que auxilie professores na utiliza&amp;#231;&amp;#227;o do modelo produzido em ArchC para demonstrar e exercitar os conceito de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/12/2007 - Write/Submit a peper in ERAD&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Dediquei esta semana para escrever um artigo para o &lt;a href="http://www.unisc.br/universidade/eventos/erad2008/" class="externalLink"&gt; ERAD 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. O artigo descrever as modifica&amp;#231;&amp;#245;es feitas no MIPS R3000 para que ele oferecesse suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o inspirado na tecnologia Intel VT-x. Esse artigo foi submetido e espera aceita&amp;#231;&amp;#227;o.&lt;br /&gt;Amanh&amp;#227; ser&amp;#225; a viagem de integra&amp;#231;&amp;#227;o do grupo do projeto para a Microsoft em S&amp;#227;o Paulo, na volta pretendo ter mais coisas para contar.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;07/12/2007 - Model Finished&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Acrecentei o registrador de estado de privil&amp;#233;gio da CPU no MIPS e para poder acess&amp;#225;-lo, acrescencei a instru&amp;#231;&amp;#227;o MOV, pois esses registradores n&amp;#227;o podem ser acessados pelas instru&amp;#231;&amp;#245;es lw (load) e sw (store). &lt;br /&gt;Agora o modelo est&amp;#225; funcionando corretamente com as instru&amp;#231;&amp;#245;es VT-x. O que est&amp;#225; faltando &amp;#233; fazer os &lt;i&gt;benchmarks&lt;/i&gt; para comparar a execu&amp;#231;&amp;#227;o da carga de trabalho de um hipervisor no MIPS original em rela&amp;#231;&amp;#227;o ao MIPS com as instru&amp;#231;&amp;#245;es VTX.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;20/11/2007 - Adjusting the Model&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ao fazer a implementa&amp;#231;&amp;#227;o dos teste, reparei que seria necess&amp;#225;rio acrescentar alguns registradores de controle, tais como registradores de n&amp;#237;vel de privil&amp;#233;gio e de base da tabela de p&amp;#225;ginas. Esses registradores devem ser acrescentados porque h&amp;#225; algumas instru&amp;#231;&amp;#245;es que s&amp;#227;o sens&amp;#237;veis (veja em Documenta&amp;#231;&amp;#227;o &lt;i&gt;Conceitos de Virtualiza&amp;#231;&amp;#227;o&lt;/i&gt;) somente se estiverem fazendo acesso a esses registradores de controle.&lt;br /&gt;Esses registradores existem na especifica&amp;#231;&amp;#227;o do MIPS, eles apenas n&amp;#227;o estavam no modelo disponibilizado no site do &lt;a href="http://www.archc.org" class="externalLink"&gt;ArchC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, pois esse modelo &amp;#233; simplificado.&lt;br /&gt;Estou agora fazendo essas altera&amp;#231;&amp;#245;es no modelo de processador. &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;17/10/2007 - Design a Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, terminei a implementa&amp;#231;&amp;#227;o do subconjunto de instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x, e acrescentei 2 instru&amp;#231;&amp;#245;es ao subconjunto inicial: &lt;b&gt;VMPTRLD&lt;/b&gt; e &lt;b&gt;VMPTRST&lt;/b&gt;. Al&amp;#233;m das instru&amp;#231;&amp;#245;es, foram adicionados alguns registradores para indicar quando o processador est&amp;#225; executando em VMXON entre outras coisas (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt; &lt;br /&gt;Agora estou elaborando os testes. A id&amp;#233;ia &amp;#233; fazer dois c&amp;#243;digos assembly:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;1) Um n&amp;#227;o utiliza as instru&amp;#231;&amp;#245;es VT-x e para toda a instru&amp;#231;&amp;#227;o executada, testa se essa instru&amp;#231;&amp;#227;o &amp;#233; sens&amp;#237;vel e s&amp;#243; pode ser executada pelo hipervisor. Nesse caso, &amp;#233; feita a troca de contexto da m&amp;#225;quina virtual hospedada para o hipervisor, tudo em assembly.&lt;/li&gt;&lt;li&gt;2) O segundo c&amp;#243;digo utiliza as instru&amp;#231;&amp;#245;es VT-x, assim as instru&amp;#231;&amp;#245;es quando executadas em modo VMXON s&amp;#227;o automaticamente testadas para verificar se s&amp;#227;o ou n&amp;#227;o instru&amp;#231;&amp;#245;es sens&amp;#237;veis. Caso sejam sens&amp;#237;veis, a troca de contexto da m&amp;#225;quina virtual para o hipervisor &amp;#233; feita automaticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Em resumo, a id&amp;#233;ia &amp;#233; testar a &lt;b&gt;troca de contexto e monitoramento de instru&amp;#231;&amp;#245;es feito em assembly (sem utilizar as instru&amp;#231;&amp;#245;es Intel VT-x)&lt;/b&gt; contra a &lt;b&gt;troca de contexto e monitoramento feita utilizando as instru&amp;#231;&amp;#245;es e estruturas da tecnologia Intel VT-x (que realizam a troca de contexto com uma instru&amp;#231;&amp;#227;o s&amp;#243;)&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/09/2007 - Modeling Intel VT-x for the MIPS: Instructions&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Esta semana estou terminando a implementa&amp;#231;&amp;#227;o das principais instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x: &lt;b&gt;VMXON, VMXOFF, VMLAUNCH, VMRESUME, VMCALL&lt;/b&gt; e &lt;b&gt;VMCLEAR&lt;/b&gt; (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt;Por enquanto o n&amp;#250;mero de m&amp;#225;quinas virtuais &amp;#233; fixo, mas futuramente isso ser&amp;#225; modificado para fazer a aloca&amp;#231;&amp;#227;o din&amp;#226;mica de mem&amp;#243;ria das regi&amp;#245;es do VMCS de cada m&amp;#225;quina virtual.&lt;br /&gt;Acredito que at&amp;#233; o final desta semana estarei simulando alguns programas de teste.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/09/2007 - Modeling Intel VT-x for the MIPS: VMCS&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estamos come&amp;#231;ando uma fase nova do projeto, e, para comemorar, resolvemos montar um blog. O objetivo &amp;#233; que em per&amp;#237;odos onde n&amp;#227;o h&amp;#225; muita documenta&amp;#231;&amp;#227;o a ser publicada, pois estamos trabalhando na parte de implementa&amp;#231;&amp;#227;o, seja poss&amp;#237;vel fazer uma publica&amp;#231;&amp;#227;o informal das atividades da semana.&lt;br /&gt; &lt;br /&gt;Bem, durante essa semana, ent&amp;#227;o, estou fazendo a adapta&amp;#231;&amp;#227;o da tecnologia Intel VT-x para o modelo do MIPS R3000 que est&amp;#225; publicado no site da ferramenta ArchC. Essa adapta&amp;#231;&amp;#227;o n&amp;#227;o tem sido muito f&amp;#225;cil, pois o modelo que estou utilizando do MIPS est&amp;#225; bastante simplificado, o que est&amp;#225; exigindo uma simplifica&amp;#231;&amp;#227;o dos conceitos da tecnologia tamb&amp;#233;m. &lt;br /&gt;As principais simplifica&amp;#231;&amp;#245;es s&amp;#227;o em rela&amp;#231;&amp;#227;o ao VMCS (&lt;i&gt;Virtual Machine Control Structure&lt;/i&gt;), &amp;#233; nele onde ficam armazenados os estados do hospedeiro e do convidado quando &amp;#233; feita a troca de contexto deles no processador. Na vers&amp;#227;o para o MIPS haver&amp;#225; somente um VMCS por m&amp;#225;quina virtual, e haver&amp;#225; um processador virtual para cada m&amp;#225;quina virtual. Originalmente na tecnologia Intel VT-x uma m&amp;#225;quina virtual pode ter v&amp;#225;rios processadores l&amp;#243;gicos.&lt;br /&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Mon, 06 Apr 2009 17:43:54 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Blog 20090406054354P</guid></item><item><title>Updated Wiki: Blog</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Blog&amp;version=53</link><description>&lt;div class="wikidoc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;04/02/2009 - Virtualization nanobenchmarks&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Terminanda a modelagem do suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o da mem&amp;#243;ria, chega o esperado momento de testar. &lt;br /&gt;Inicialmente foi solicitado a um fabricante de MMV que compartilhasse conosco alguns trechos de c&amp;#243;digo com cargas de trabalho caracter&amp;#237;sticas de um MMV, mas parece que isso n&amp;#227;o ser&amp;#225; poss&amp;#237;vel. Assim, estamos procurando novas fontes de benchmarks para sistemas virtualizados. &lt;br /&gt;A dificuldade de encontrar benchmarks completos com caracter&amp;#237;sticas de aplica&amp;#231;&amp;#245;es virtualizadas reais, como os dispon&amp;#237;veis para sistemas n&amp;#227;o virtualizados, &amp;#233; grande. Ent&amp;#227;o, resolvemos nos voltar para nanobenchmarks citados em &amp;quot;&lt;i&gt;Adams, K, Agesen, O. A Comparision of Software an Hardware Techniques for x86 Virtualization,2006&lt;/i&gt;&amp;quot;.  Cada um desses nanobechmarks estressa uma caracter&amp;#237;stica diferente de sistemas virtualizado. Em breve teremos os resultados.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/01/2009 - A new year&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Depois das festas de fim de ano, recome&amp;#231;am os trabalhos. Breve novos releases.&lt;br /&gt;Com a disponibiliza&amp;#231;&amp;#227;o de SVN feita pelo Codeplex, em breve o projeto estar&amp;#225; dispon&amp;#237;vel nesse sistema e ficar&amp;#225; mais f&amp;#225;cil para pessoas que desejam colaborar.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;16/12/2008 - Multi-core implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou enfrentando algumas dificuldades para implementar a tabela de p&amp;#225;ginas extendida, pois n&amp;#227;o &amp;#233; t&amp;#227;o claro como os modelos do ArchC acessam a tabela j&amp;#225; existente. Acredito que para sanar esses problemas terei que implementar novas fun&amp;#231;&amp;#245;es do ArchC, isso demora um pouco, mas &amp;#233; poss&amp;#237;vel.&lt;br /&gt;Para n&amp;#227;o ficar somente tentando implementar a tabela de p&amp;#225;ginas extendida, resolvi retomar a implementa&amp;#231;&amp;#227;o do sistema com m&amp;#250;ltiplos n&amp;#250;cleos, ou seja, colocar o que j&amp;#225; est&amp;#225; pronto modelado em um sistema com v&amp;#225;rios n&amp;#250;cleos. J&amp;#225; estou compilando um modelo com 2 n&amp;#250;cleos que possui em cada n&amp;#250;cleo o suporte de virtualiza&amp;#231;&amp;#227;o modelado at&amp;#233; o momento: instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, estruturas de virtualiza&amp;#231;&amp;#227;o (VMCS) e o VPID. Logo que realizar alguns testes para validar esse modelo e garantir que est&amp;#225; tudo ocorrendo como deve ser, irei diponibiliz&amp;#225;-lo.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;06/11/2008 - Extended Page Table implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o, semana passada muitos de n&amp;#243;s do projeto de interoperabilidade est&amp;#225;vamos em Campo Grande participando do SBAC-PAD (veja descri&amp;#231;&amp;#227;o &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20SBAC-PAD%20e%20WSCAD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;Essa semana retomamos os trabalhos para a implementa&amp;#231;&amp;#227;o de tabela de p&amp;#225;ginas extendida (veja mais detalhes &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Suporte%20%u00e0%20Virtualiza%u00e7%u00e3o%20da%20Mem%u00f3ria%3a%20Extended%20Page%20Table%20e%20VPID&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;30/10/2008 - SBAC-PAD/WSCAD participation and VPID implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou aqui em Campo Grande, Mato Grosso do Sul, assistindo ao &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=133" class="externalLink"&gt;SBAC-PAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; e &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=136" class="externalLink"&gt;WSCAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Em breve divulgarei descri&amp;#231;&amp;#227;o completa do evento, mas posso adiantar que est&amp;#225; sendo muito produtivo.&lt;br /&gt;Sobre o trabalho com Virtualiza&amp;#231;&amp;#227;o da Mem&amp;#243;ria, o VPID j&amp;#225; foi implementado. Agora estou trabalhando para acrescentar a nova TLB, para isso ser&amp;#225; necess&amp;#225;rio adicionar uma nova Tabela de P&amp;#225;ginas (&lt;i&gt;Extended Page Table&lt;/i&gt;).&lt;br /&gt;Em breve terei mais novidades.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;02/10/2008 - WSPPD and VPID Implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;As novidades s&amp;#227;o que o artigo para o WSPPD foi aceito e apresentado no dia 19 de setembro, veja &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20WSPPD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; o artigo, em ingl&amp;#234;s, a apresenta&amp;#231;&amp;#227;o, em portugu&amp;#234;s, e uma breve descri&amp;#231;&amp;#227;o de como foi o evento.&lt;br /&gt;Bem, esse artigo fala justamente do suporte de virtualiza&amp;#231;&amp;#227;o &amp;#224; mem&amp;#243;ria fornecido atualmente pelos processadores. S&amp;#227;o abordados principalmente dois aspectos desse suporte:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;uma nova TLB, que traduz o endere&amp;#231;o virtual do sistema operacional hospedado para o endere&amp;#231;o f&amp;#237;sico do hipervisor&lt;/li&gt;&lt;li&gt;o VPID (&lt;i&gt;Virtual Processor Identifier&lt;/i&gt;) que identifica a quais processadores virtuais os endere&amp;#231;os guardados na TLB e na cache pertencem, evitando a necessidade de limpar essas mesmas TLB e cache a cada VM-entry ou VM-exit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Iniciamos com a implementa&amp;#231;&amp;#227;o do VPID. Ele ser&amp;#225; um novo campo de dados do VMCS, e todos os endere&amp;#231;os traduzidos dever&amp;#227;o ser prefixados pelos VPID de seus respectivos processadores virtuais.&lt;br /&gt;Tivemos alguns problemas com in&amp;#237;cio da modelagem pois n&amp;#227;o conseguiamos fazer o download dos modelos com hiearquia de mem&amp;#243;ria do portal do ArchC. Parece que eles est&amp;#227;o com algumas dificuldades, mas j&amp;#225; est&amp;#227;o ajeitando. Sem poder baixar os modelos do site, procuramos alternativas e encontramos &lt;a href="http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/ar/archc/" class="externalLink"&gt;esse link&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; com todos os modelos e ferramentas do ArchC, a &amp;#250;nica coisa que n&amp;#227;o encontramos foi os &lt;i&gt;benchmarks&lt;/i&gt; (cargas de trabalho), se algu&amp;#233;m souber um lugar de onde possamos baixar, por favor, comente aqui.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;27/08/2008 - Memory Virtualization&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O in&amp;#237;cio deste semestre foi dedicado ao estudo das t&amp;#233;cnicas de mem&amp;#243;ria utilizadas nos processadores com suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o. O acesso &amp;#224; mem&amp;#243;ria &amp;#233; sempre um momento cr&amp;#237;tico no desempenho dos sistemas, inclusive dos sistemas virtualizados. O fato de realizar constantes trocas de contexto entre diversas m&amp;#225;quinas virtuais pode levar a um baixo desempenho dos sistemas de cache, por exemplo, pois, na aus&amp;#234;ncia de recursos de hardware, as caches devem ser limpas cada vez que &amp;#233; trocada a M&amp;#225;quina Virtual em execu&amp;#231;&amp;#227;o. &lt;br /&gt;Pretendemos estender o modelo que j&amp;#225; possui as instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o para tamb&amp;#233;m incluir algumas t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria em hardware.&lt;br /&gt;Nas &amp;#250;ltimas 2 semanas escrevemos um artigo para submiss&amp;#227;o em mais um &lt;a href="http://gppd.inf.ufrgs.br/wsppd/2008/" class="externalLink"&gt;WSPPD (Workshop de Processamento Paralelo e Distribu&amp;#237;do)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, o de 2008. Este artigo versa justamente sobre as t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria utilizadas na tecnologia Intel VT. Depois da divulga&amp;#231;&amp;#227;o da avalia&amp;#231;&amp;#227;o do artigo e de eventuais corre&amp;#231;&amp;#245;es sugeridas pelos avaliadores, disponibilizaremos ele aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/07/2008 - WCAE Presesentation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o fomos para apresentar o artigo no WCAE 2008 e participar do ISCA 2008, em Beijing, China. Viajamos dia 18 e voltamos dia 28. Logo darei um depoimento mais detalhado na se&amp;#231;&amp;#227;o Participa&amp;#231;&amp;#245;es e Eventos. &lt;br /&gt;Por enquanto queremos dizer que voltamos e, apesar das correrias de final de semestre e para mim, Manuela, final de curso, trabalho de conclus&amp;#227;o entre outros, colocaremos assim que poss&amp;#237;vel novas informa&amp;#231;&amp;#245;es aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/05/2008 - Paper Accepted in WCAE&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, sabem aquele material sobre como utilizar o MIPS-vt (MIPS com instru&amp;#231;&amp;#245;es de vitualiza&amp;#231;&amp;#227;o) para a educa&amp;#231;&amp;#227;o? Foi feito um artigo para submiss&amp;#227;o no &lt;a href="http://www.cs.ucsb.edu/~franklin/wcae08/WCAE08.html" class="externalLink"&gt;WCAE 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; que ocorre junto com o &lt;a href="http://isca2008.cs.princeton.edu/" class="externalLink"&gt;ISCA 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; em Beijing, China. &lt;br /&gt;E o artigo foi ACEITO!!!! Estamos preparando a apresenta&amp;#231;&amp;#227;o do trabalho que ser&amp;#225; feita no dia 23 de junho.&lt;br /&gt;Assim que ocorrer o evento, divulgaremos o artigo e a apresenta&amp;#231;&amp;#227;o aqui no portal.&lt;br /&gt; &lt;br /&gt;Outra coisa, agora o portal do VISA tem uma &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=English%20version&amp;amp;referringTitle=Home" class="externalLink"&gt;vers&amp;#227;o em ingl&amp;#234;s&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Essa vers&amp;#227;o possui um resumo do que j&amp;#225; est&amp;#225; presente na vers&amp;#227;o em portugu&amp;#234;s.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;28/04/2008 - Using MIPS-vt to Understanding the Hardware Virtualization Support&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Passei as &amp;#250;ltimas semanas terminando o material que mostra como utilizar o modelo de MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o (MIPS-vt) para ensinar em sala de aula. O material ficou t&amp;#227;o bom que estamos tentando submeter para algum evento, por esse motivo ainda n&amp;#227;o foi divulgado aqui.&lt;br /&gt;Com o MIPS-vt implementado usando ArchC2.0 &amp;#233; poss&amp;#237;vel come&amp;#231;ar a modelagem em m&amp;#250;ltiplos n&amp;#250;cleos. Vou fazer isso seguindo as dicas dadas em &amp;quot;&lt;a href="http://www.sbc.org.br/bibliotecadigital/download.php?paper=643" class="externalLink"&gt; R. Azevedo, S. Rigo e G. Ara&amp;#250;jo, Projeto e Desenvolvimento de Sistemas Dedicados Multiprocessados &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&amp;quot;, que explica como modelar com m&amp;#250;ltiplos n&amp;#250;cleos usando o ArchC em conjunto com o SystemC e tem um exemplo passo-a-passo.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;7/04/2008 - Upgrading the model to ArchC 2.0&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Essa semana terminei a implementa&amp;#231;&amp;#227;o do modelo do MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o baseadas na Intel VT-x utilizando ArchC 2.0. Esse novo modelo &amp;#233; monociclo (sem pipeline). Essa tradu&amp;#231;&amp;#227;o foi feita para facilitar a implementa&amp;#231;&amp;#227;o do modelo em m&amp;#250;ltiplos n&amp;#250;cleos, pois o ArchC 2.0 fornece op&amp;#231;&amp;#245;es melhores e mais f&amp;#225;ceis para a modelagem de m&amp;#250;ltiplos n&amp;#250;cleos.&lt;br /&gt; &lt;br /&gt;Ainda estou escrevendo o material para utiliza&amp;#231;&amp;#227;o do modelo no ensino.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/03/2008 - A New Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Com a inten&amp;#231;&amp;#227;o de comparar o tempo necess&amp;#225;rio para fazer as trocas de contexto entre m&amp;#225;quinas virtuais no MIPS original e no MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, foi definido um teste com as seguintes cararcter&amp;#237;sticas:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;3 m&amp;#225;quinas virtuais com cargas de trabalho diferentes&lt;/li&gt;&lt;li&gt;diversas trocas de contexto entre as diferentes m&amp;#225;quinas virtuais ser&amp;#227;o realizadas ao longo da execu&amp;#231;&amp;#227;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Esse teste ser&amp;#225; executado nas duas vers&amp;#245;es do MIPS para comparar os resultados. Abaixo est&amp;#225; o corpo do teste:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=29581" alt="teste.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;15/02/2008 - Caracterization for Virtualization Benchmarking&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Em rela&amp;#231;&amp;#227;o &amp;#224;s caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor, encontrei o artigo: Casazza, J. P., Greenfield, M., Shi, K. (2006)  &lt;i&gt;&amp;quot;Redefining Server Performance Characterization for Virtualization Benchmarking&amp;quot;&lt;/i&gt;, Intel Technology Journal. Nesse artigo os autores esclarecem que n&amp;#227;o &amp;#233; poss&amp;#237;vel analisar m&amp;#225;quinas virtualizadas utilizando somente os benchmarks comuns, pois eles n&amp;#227;o levam em considera&amp;#231;&amp;#227;o a divis&amp;#227;o dos recursos reais entre as diversas m&amp;#225;quinas virtuais, assim, o artigo fornece uma metodologia para criar uma carga de trabalho para um benchmark.&lt;br /&gt; &lt;br /&gt;A documenta&amp;#231;&amp;#227;o para auxiliar professores em aula est&amp;#225; sendo elaborada.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/01/2008 - Running the test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O modelo est&amp;#225; funcionando perfeitamente. Executei algumas instru&amp;#231;&amp;#245;es que geraram as seguintes estat&amp;#237;sticas:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=25923" alt="fig_estatisticas.jpg" /&gt;&lt;br /&gt;Nas estat&amp;#237;ticas pode-se ver nas linhas 5, 6 e 7, informa&amp;#231;&amp;#245;es sobre a execu&amp;#231;&amp;#227;o total, em seguida, as estat&amp;#237;sticas referentes &amp;#224;s instru&amp;#231;&amp;#245;es executadas. Por &amp;#250;ltimo, h&amp;#225; detalhes sobre a utiliza&amp;#231;&amp;#227;o dos bancos de registradores e dos registradores contidos no pipeline.&lt;br /&gt; &lt;br /&gt;Atualmente estou procurando caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor (instru&amp;#231;&amp;#245;es mais executadas) sem a utiliza&amp;#231;&amp;#227;o de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o para formular um benchmark.&lt;br /&gt; &lt;br /&gt;Em paralelo, estou elaborando um documento que auxilie professores na utiliza&amp;#231;&amp;#227;o do modelo produzido em ArchC para demonstrar e exercitar os conceito de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/12/2007 - Write/Submit a peper in ERAD&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Dediquei esta semana para escrever um artigo para o &lt;a href="http://www.unisc.br/universidade/eventos/erad2008/" class="externalLink"&gt; ERAD 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. O artigo descrever as modifica&amp;#231;&amp;#245;es feitas no MIPS R3000 para que ele oferecesse suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o inspirado na tecnologia Intel VT-x. Esse artigo foi submetido e espera aceita&amp;#231;&amp;#227;o.&lt;br /&gt;Amanh&amp;#227; ser&amp;#225; a viagem de integra&amp;#231;&amp;#227;o do grupo do projeto para a Microsoft em S&amp;#227;o Paulo, na volta pretendo ter mais coisas para contar.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;07/12/2007 - Model Finished&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Acrecentei o registrador de estado de privil&amp;#233;gio da CPU no MIPS e para poder acess&amp;#225;-lo, acrescencei a instru&amp;#231;&amp;#227;o MOV, pois esses registradores n&amp;#227;o podem ser acessados pelas instru&amp;#231;&amp;#245;es lw (load) e sw (store). &lt;br /&gt;Agora o modelo est&amp;#225; funcionando corretamente com as instru&amp;#231;&amp;#245;es VT-x. O que est&amp;#225; faltando &amp;#233; fazer os &lt;i&gt;benchmarks&lt;/i&gt; para comparar a execu&amp;#231;&amp;#227;o da carga de trabalho de um hipervisor no MIPS original em rela&amp;#231;&amp;#227;o ao MIPS com as instru&amp;#231;&amp;#245;es VTX.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;20/11/2007 - Adjusting the Model&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ao fazer a implementa&amp;#231;&amp;#227;o dos teste, reparei que seria necess&amp;#225;rio acrescentar alguns registradores de controle, tais como registradores de n&amp;#237;vel de privil&amp;#233;gio e de base da tabela de p&amp;#225;ginas. Esses registradores devem ser acrescentados porque h&amp;#225; algumas instru&amp;#231;&amp;#245;es que s&amp;#227;o sens&amp;#237;veis (veja em Documenta&amp;#231;&amp;#227;o &lt;i&gt;Conceitos de Virtualiza&amp;#231;&amp;#227;o&lt;/i&gt;) somente se estiverem fazendo acesso a esses registradores de controle.&lt;br /&gt;Esses registradores existem na especifica&amp;#231;&amp;#227;o do MIPS, eles apenas n&amp;#227;o estavam no modelo disponibilizado no site do &lt;a href="http://www.archc.org" class="externalLink"&gt;ArchC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, pois esse modelo &amp;#233; simplificado.&lt;br /&gt;Estou agora fazendo essas altera&amp;#231;&amp;#245;es no modelo de processador. &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;17/10/2007 - Design a Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, terminei a implementa&amp;#231;&amp;#227;o do subconjunto de instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x, e acrescentei 2 instru&amp;#231;&amp;#245;es ao subconjunto inicial: &lt;b&gt;VMPTRLD&lt;/b&gt; e &lt;b&gt;VMPTRST&lt;/b&gt;. Al&amp;#233;m das instru&amp;#231;&amp;#245;es, foram adicionados alguns registradores para indicar quando o processador est&amp;#225; executando em VMXON entre outras coisas (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt; &lt;br /&gt;Agora estou elaborando os testes. A id&amp;#233;ia &amp;#233; fazer dois c&amp;#243;digos assembly:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;1) Um n&amp;#227;o utiliza as instru&amp;#231;&amp;#245;es VT-x e para toda a instru&amp;#231;&amp;#227;o executada, testa se essa instru&amp;#231;&amp;#227;o &amp;#233; sens&amp;#237;vel e s&amp;#243; pode ser executada pelo hipervisor. Nesse caso, &amp;#233; feita a troca de contexto da m&amp;#225;quina virtual hospedada para o hipervisor, tudo em assembly.&lt;/li&gt;&lt;li&gt;2) O segundo c&amp;#243;digo utiliza as instru&amp;#231;&amp;#245;es VT-x, assim as instru&amp;#231;&amp;#245;es quando executadas em modo VMXON s&amp;#227;o automaticamente testadas para verificar se s&amp;#227;o ou n&amp;#227;o instru&amp;#231;&amp;#245;es sens&amp;#237;veis. Caso sejam sens&amp;#237;veis, a troca de contexto da m&amp;#225;quina virtual para o hipervisor &amp;#233; feita automaticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Em resumo, a id&amp;#233;ia &amp;#233; testar a &lt;b&gt;troca de contexto e monitoramento de instru&amp;#231;&amp;#245;es feito em assembly (sem utilizar as instru&amp;#231;&amp;#245;es Intel VT-x)&lt;/b&gt; contra a &lt;b&gt;troca de contexto e monitoramento feita utilizando as instru&amp;#231;&amp;#245;es e estruturas da tecnologia Intel VT-x (que realizam a troca de contexto com uma instru&amp;#231;&amp;#227;o s&amp;#243;)&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/09/2007 - Modeling Intel VT-x for the MIPS: Instructions&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Esta semana estou terminando a implementa&amp;#231;&amp;#227;o das principais instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x: &lt;b&gt;VMXON, VMXOFF, VMLAUNCH, VMRESUME, VMCALL&lt;/b&gt; e &lt;b&gt;VMCLEAR&lt;/b&gt; (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt;Por enquanto o n&amp;#250;mero de m&amp;#225;quinas virtuais &amp;#233; fixo, mas futuramente isso ser&amp;#225; modificado para fazer a aloca&amp;#231;&amp;#227;o din&amp;#226;mica de mem&amp;#243;ria das regi&amp;#245;es do VMCS de cada m&amp;#225;quina virtual.&lt;br /&gt;Acredito que at&amp;#233; o final desta semana estarei simulando alguns programas de teste.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/09/2007 - Modeling Intel VT-x for the MIPS: VMCS&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estamos come&amp;#231;ando uma fase nova do projeto, e, para comemorar, resolvemos montar um blog. O objetivo &amp;#233; que em per&amp;#237;odos onde n&amp;#227;o h&amp;#225; muita documenta&amp;#231;&amp;#227;o a ser publicada, pois estamos trabalhando na parte de implementa&amp;#231;&amp;#227;o, seja poss&amp;#237;vel fazer uma publica&amp;#231;&amp;#227;o informal das atividades da semana.&lt;br /&gt; &lt;br /&gt;Bem, durante essa semana, ent&amp;#227;o, estou fazendo a adapta&amp;#231;&amp;#227;o da tecnologia Intel VT-x para o modelo do MIPS R3000 que est&amp;#225; publicado no site da ferramenta ArchC. Essa adapta&amp;#231;&amp;#227;o n&amp;#227;o tem sido muito f&amp;#225;cil, pois o modelo que estou utilizando do MIPS est&amp;#225; bastante simplificado, o que est&amp;#225; exigindo uma simplifica&amp;#231;&amp;#227;o dos conceitos da tecnologia tamb&amp;#233;m. &lt;br /&gt;As principais simplifica&amp;#231;&amp;#245;es s&amp;#227;o em rela&amp;#231;&amp;#227;o ao VMCS (&lt;i&gt;Virtual Machine Control Structure&lt;/i&gt;), &amp;#233; nele onde ficam armazenados os estados do hospedeiro e do convidado quando &amp;#233; feita a troca de contexto deles no processador. Na vers&amp;#227;o para o MIPS haver&amp;#225; somente um VMCS por m&amp;#225;quina virtual, e haver&amp;#225; um processador virtual para cada m&amp;#225;quina virtual. Originalmente na tecnologia Intel VT-x uma m&amp;#225;quina virtual pode ter v&amp;#225;rios processadores l&amp;#243;gicos.&lt;br /&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 14:25:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Blog 20090204022520P</guid></item><item><title>Updated Wiki: Blog</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Blog&amp;version=52</link><description>&lt;div class="wikidoc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;04/02/2009&lt;/b&gt; - Virtualization nanobenchmarks*&lt;/li&gt;
&lt;/ul&gt;Terminanda a modelagem do suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o da mem&amp;#243;ria, chega o esperado momento de testar. &lt;br /&gt;Inicialmente foi solicitado a um fabricante de MMV que compartilhasse conosco alguns trechos de c&amp;#243;digo com cargas de trabalho caracter&amp;#237;sticas de um MMV, mas parece que isso n&amp;#227;o ser&amp;#225; poss&amp;#237;vel. Assim, estamos procurando novas fontes de benchmarks para sistemas virtualizados. &lt;br /&gt;A dificuldade de encontrar benchmarks completos com caracter&amp;#237;sticas de aplica&amp;#231;&amp;#245;es virtualizadas reais, como os dispon&amp;#237;veis para sistemas n&amp;#227;o virtualizados, &amp;#233; grande. Ent&amp;#227;o, resolvemos nos voltar para nanobenchmarks citados em &amp;quot;&lt;i&gt;Adams, K, Agesen, O. A Comparision of Software an Hardware Techniques for x86 Virtualization,2006&lt;/i&gt;&amp;quot;.  Cada um desses nanobechmarks estressa uma caracter&amp;#237;stica diferente de sistemas virtualizado. Em breve teremos os resultados.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/01/2009 - A new year&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Depois das festas de fim de ano, recome&amp;#231;am os trabalhos. Breve novos releases.&lt;br /&gt;Com a disponibiliza&amp;#231;&amp;#227;o de SVN feita pelo Codeplex, em breve o projeto estar&amp;#225; dispon&amp;#237;vel nesse sistema e ficar&amp;#225; mais f&amp;#225;cil para pessoas que desejam colaborar.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;16/12/2008 - Multi-core implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou enfrentando algumas dificuldades para implementar a tabela de p&amp;#225;ginas extendida, pois n&amp;#227;o &amp;#233; t&amp;#227;o claro como os modelos do ArchC acessam a tabela j&amp;#225; existente. Acredito que para sanar esses problemas terei que implementar novas fun&amp;#231;&amp;#245;es do ArchC, isso demora um pouco, mas &amp;#233; poss&amp;#237;vel.&lt;br /&gt;Para n&amp;#227;o ficar somente tentando implementar a tabela de p&amp;#225;ginas extendida, resolvi retomar a implementa&amp;#231;&amp;#227;o do sistema com m&amp;#250;ltiplos n&amp;#250;cleos, ou seja, colocar o que j&amp;#225; est&amp;#225; pronto modelado em um sistema com v&amp;#225;rios n&amp;#250;cleos. J&amp;#225; estou compilando um modelo com 2 n&amp;#250;cleos que possui em cada n&amp;#250;cleo o suporte de virtualiza&amp;#231;&amp;#227;o modelado at&amp;#233; o momento: instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, estruturas de virtualiza&amp;#231;&amp;#227;o (VMCS) e o VPID. Logo que realizar alguns testes para validar esse modelo e garantir que est&amp;#225; tudo ocorrendo como deve ser, irei diponibiliz&amp;#225;-lo.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;06/11/2008 - Extended Page Table implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o, semana passada muitos de n&amp;#243;s do projeto de interoperabilidade est&amp;#225;vamos em Campo Grande participando do SBAC-PAD (veja descri&amp;#231;&amp;#227;o &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20SBAC-PAD%20e%20WSCAD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;Essa semana retomamos os trabalhos para a implementa&amp;#231;&amp;#227;o de tabela de p&amp;#225;ginas extendida (veja mais detalhes &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Suporte%20%u00e0%20Virtualiza%u00e7%u00e3o%20da%20Mem%u00f3ria%3a%20Extended%20Page%20Table%20e%20VPID&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;30/10/2008 - SBAC-PAD/WSCAD participation and VPID implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou aqui em Campo Grande, Mato Grosso do Sul, assistindo ao &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=133" class="externalLink"&gt;SBAC-PAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; e &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=136" class="externalLink"&gt;WSCAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Em breve divulgarei descri&amp;#231;&amp;#227;o completa do evento, mas posso adiantar que est&amp;#225; sendo muito produtivo.&lt;br /&gt;Sobre o trabalho com Virtualiza&amp;#231;&amp;#227;o da Mem&amp;#243;ria, o VPID j&amp;#225; foi implementado. Agora estou trabalhando para acrescentar a nova TLB, para isso ser&amp;#225; necess&amp;#225;rio adicionar uma nova Tabela de P&amp;#225;ginas (&lt;i&gt;Extended Page Table&lt;/i&gt;).&lt;br /&gt;Em breve terei mais novidades.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;02/10/2008 - WSPPD and VPID Implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;As novidades s&amp;#227;o que o artigo para o WSPPD foi aceito e apresentado no dia 19 de setembro, veja &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20WSPPD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; o artigo, em ingl&amp;#234;s, a apresenta&amp;#231;&amp;#227;o, em portugu&amp;#234;s, e uma breve descri&amp;#231;&amp;#227;o de como foi o evento.&lt;br /&gt;Bem, esse artigo fala justamente do suporte de virtualiza&amp;#231;&amp;#227;o &amp;#224; mem&amp;#243;ria fornecido atualmente pelos processadores. S&amp;#227;o abordados principalmente dois aspectos desse suporte:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;uma nova TLB, que traduz o endere&amp;#231;o virtual do sistema operacional hospedado para o endere&amp;#231;o f&amp;#237;sico do hipervisor&lt;/li&gt;&lt;li&gt;o VPID (&lt;i&gt;Virtual Processor Identifier&lt;/i&gt;) que identifica a quais processadores virtuais os endere&amp;#231;os guardados na TLB e na cache pertencem, evitando a necessidade de limpar essas mesmas TLB e cache a cada VM-entry ou VM-exit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Iniciamos com a implementa&amp;#231;&amp;#227;o do VPID. Ele ser&amp;#225; um novo campo de dados do VMCS, e todos os endere&amp;#231;os traduzidos dever&amp;#227;o ser prefixados pelos VPID de seus respectivos processadores virtuais.&lt;br /&gt;Tivemos alguns problemas com in&amp;#237;cio da modelagem pois n&amp;#227;o conseguiamos fazer o download dos modelos com hiearquia de mem&amp;#243;ria do portal do ArchC. Parece que eles est&amp;#227;o com algumas dificuldades, mas j&amp;#225; est&amp;#227;o ajeitando. Sem poder baixar os modelos do site, procuramos alternativas e encontramos &lt;a href="http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/ar/archc/" class="externalLink"&gt;esse link&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; com todos os modelos e ferramentas do ArchC, a &amp;#250;nica coisa que n&amp;#227;o encontramos foi os &lt;i&gt;benchmarks&lt;/i&gt; (cargas de trabalho), se algu&amp;#233;m souber um lugar de onde possamos baixar, por favor, comente aqui.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;27/08/2008 - Memory Virtualization&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O in&amp;#237;cio deste semestre foi dedicado ao estudo das t&amp;#233;cnicas de mem&amp;#243;ria utilizadas nos processadores com suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o. O acesso &amp;#224; mem&amp;#243;ria &amp;#233; sempre um momento cr&amp;#237;tico no desempenho dos sistemas, inclusive dos sistemas virtualizados. O fato de realizar constantes trocas de contexto entre diversas m&amp;#225;quinas virtuais pode levar a um baixo desempenho dos sistemas de cache, por exemplo, pois, na aus&amp;#234;ncia de recursos de hardware, as caches devem ser limpas cada vez que &amp;#233; trocada a M&amp;#225;quina Virtual em execu&amp;#231;&amp;#227;o. &lt;br /&gt;Pretendemos estender o modelo que j&amp;#225; possui as instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o para tamb&amp;#233;m incluir algumas t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria em hardware.&lt;br /&gt;Nas &amp;#250;ltimas 2 semanas escrevemos um artigo para submiss&amp;#227;o em mais um &lt;a href="http://gppd.inf.ufrgs.br/wsppd/2008/" class="externalLink"&gt;WSPPD (Workshop de Processamento Paralelo e Distribu&amp;#237;do)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, o de 2008. Este artigo versa justamente sobre as t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria utilizadas na tecnologia Intel VT. Depois da divulga&amp;#231;&amp;#227;o da avalia&amp;#231;&amp;#227;o do artigo e de eventuais corre&amp;#231;&amp;#245;es sugeridas pelos avaliadores, disponibilizaremos ele aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/07/2008 - WCAE Presesentation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o fomos para apresentar o artigo no WCAE 2008 e participar do ISCA 2008, em Beijing, China. Viajamos dia 18 e voltamos dia 28. Logo darei um depoimento mais detalhado na se&amp;#231;&amp;#227;o Participa&amp;#231;&amp;#245;es e Eventos. &lt;br /&gt;Por enquanto queremos dizer que voltamos e, apesar das correrias de final de semestre e para mim, Manuela, final de curso, trabalho de conclus&amp;#227;o entre outros, colocaremos assim que poss&amp;#237;vel novas informa&amp;#231;&amp;#245;es aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/05/2008 - Paper Accepted in WCAE&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, sabem aquele material sobre como utilizar o MIPS-vt (MIPS com instru&amp;#231;&amp;#245;es de vitualiza&amp;#231;&amp;#227;o) para a educa&amp;#231;&amp;#227;o? Foi feito um artigo para submiss&amp;#227;o no &lt;a href="http://www.cs.ucsb.edu/~franklin/wcae08/WCAE08.html" class="externalLink"&gt;WCAE 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; que ocorre junto com o &lt;a href="http://isca2008.cs.princeton.edu/" class="externalLink"&gt;ISCA 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; em Beijing, China. &lt;br /&gt;E o artigo foi ACEITO!!!! Estamos preparando a apresenta&amp;#231;&amp;#227;o do trabalho que ser&amp;#225; feita no dia 23 de junho.&lt;br /&gt;Assim que ocorrer o evento, divulgaremos o artigo e a apresenta&amp;#231;&amp;#227;o aqui no portal.&lt;br /&gt; &lt;br /&gt;Outra coisa, agora o portal do VISA tem uma &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=English%20version&amp;amp;referringTitle=Home" class="externalLink"&gt;vers&amp;#227;o em ingl&amp;#234;s&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Essa vers&amp;#227;o possui um resumo do que j&amp;#225; est&amp;#225; presente na vers&amp;#227;o em portugu&amp;#234;s.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;28/04/2008 - Using MIPS-vt to Understanding the Hardware Virtualization Support&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Passei as &amp;#250;ltimas semanas terminando o material que mostra como utilizar o modelo de MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o (MIPS-vt) para ensinar em sala de aula. O material ficou t&amp;#227;o bom que estamos tentando submeter para algum evento, por esse motivo ainda n&amp;#227;o foi divulgado aqui.&lt;br /&gt;Com o MIPS-vt implementado usando ArchC2.0 &amp;#233; poss&amp;#237;vel come&amp;#231;ar a modelagem em m&amp;#250;ltiplos n&amp;#250;cleos. Vou fazer isso seguindo as dicas dadas em &amp;quot;&lt;a href="http://www.sbc.org.br/bibliotecadigital/download.php?paper=643" class="externalLink"&gt; R. Azevedo, S. Rigo e G. Ara&amp;#250;jo, Projeto e Desenvolvimento de Sistemas Dedicados Multiprocessados &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&amp;quot;, que explica como modelar com m&amp;#250;ltiplos n&amp;#250;cleos usando o ArchC em conjunto com o SystemC e tem um exemplo passo-a-passo.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;7/04/2008 - Upgrading the model to ArchC 2.0&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Essa semana terminei a implementa&amp;#231;&amp;#227;o do modelo do MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o baseadas na Intel VT-x utilizando ArchC 2.0. Esse novo modelo &amp;#233; monociclo (sem pipeline). Essa tradu&amp;#231;&amp;#227;o foi feita para facilitar a implementa&amp;#231;&amp;#227;o do modelo em m&amp;#250;ltiplos n&amp;#250;cleos, pois o ArchC 2.0 fornece op&amp;#231;&amp;#245;es melhores e mais f&amp;#225;ceis para a modelagem de m&amp;#250;ltiplos n&amp;#250;cleos.&lt;br /&gt; &lt;br /&gt;Ainda estou escrevendo o material para utiliza&amp;#231;&amp;#227;o do modelo no ensino.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/03/2008 - A New Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Com a inten&amp;#231;&amp;#227;o de comparar o tempo necess&amp;#225;rio para fazer as trocas de contexto entre m&amp;#225;quinas virtuais no MIPS original e no MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, foi definido um teste com as seguintes cararcter&amp;#237;sticas:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;3 m&amp;#225;quinas virtuais com cargas de trabalho diferentes&lt;/li&gt;&lt;li&gt;diversas trocas de contexto entre as diferentes m&amp;#225;quinas virtuais ser&amp;#227;o realizadas ao longo da execu&amp;#231;&amp;#227;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Esse teste ser&amp;#225; executado nas duas vers&amp;#245;es do MIPS para comparar os resultados. Abaixo est&amp;#225; o corpo do teste:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=29581" alt="teste.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;15/02/2008 - Caracterization for Virtualization Benchmarking&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Em rela&amp;#231;&amp;#227;o &amp;#224;s caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor, encontrei o artigo: Casazza, J. P., Greenfield, M., Shi, K. (2006)  &lt;i&gt;&amp;quot;Redefining Server Performance Characterization for Virtualization Benchmarking&amp;quot;&lt;/i&gt;, Intel Technology Journal. Nesse artigo os autores esclarecem que n&amp;#227;o &amp;#233; poss&amp;#237;vel analisar m&amp;#225;quinas virtualizadas utilizando somente os benchmarks comuns, pois eles n&amp;#227;o levam em considera&amp;#231;&amp;#227;o a divis&amp;#227;o dos recursos reais entre as diversas m&amp;#225;quinas virtuais, assim, o artigo fornece uma metodologia para criar uma carga de trabalho para um benchmark.&lt;br /&gt; &lt;br /&gt;A documenta&amp;#231;&amp;#227;o para auxiliar professores em aula est&amp;#225; sendo elaborada.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/01/2008 - Running the test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O modelo est&amp;#225; funcionando perfeitamente. Executei algumas instru&amp;#231;&amp;#245;es que geraram as seguintes estat&amp;#237;sticas:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=25923" alt="fig_estatisticas.jpg" /&gt;&lt;br /&gt;Nas estat&amp;#237;ticas pode-se ver nas linhas 5, 6 e 7, informa&amp;#231;&amp;#245;es sobre a execu&amp;#231;&amp;#227;o total, em seguida, as estat&amp;#237;sticas referentes &amp;#224;s instru&amp;#231;&amp;#245;es executadas. Por &amp;#250;ltimo, h&amp;#225; detalhes sobre a utiliza&amp;#231;&amp;#227;o dos bancos de registradores e dos registradores contidos no pipeline.&lt;br /&gt; &lt;br /&gt;Atualmente estou procurando caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor (instru&amp;#231;&amp;#245;es mais executadas) sem a utiliza&amp;#231;&amp;#227;o de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o para formular um benchmark.&lt;br /&gt; &lt;br /&gt;Em paralelo, estou elaborando um documento que auxilie professores na utiliza&amp;#231;&amp;#227;o do modelo produzido em ArchC para demonstrar e exercitar os conceito de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/12/2007 - Write/Submit a peper in ERAD&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Dediquei esta semana para escrever um artigo para o &lt;a href="http://www.unisc.br/universidade/eventos/erad2008/" class="externalLink"&gt; ERAD 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. O artigo descrever as modifica&amp;#231;&amp;#245;es feitas no MIPS R3000 para que ele oferecesse suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o inspirado na tecnologia Intel VT-x. Esse artigo foi submetido e espera aceita&amp;#231;&amp;#227;o.&lt;br /&gt;Amanh&amp;#227; ser&amp;#225; a viagem de integra&amp;#231;&amp;#227;o do grupo do projeto para a Microsoft em S&amp;#227;o Paulo, na volta pretendo ter mais coisas para contar.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;07/12/2007 - Model Finished&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Acrecentei o registrador de estado de privil&amp;#233;gio da CPU no MIPS e para poder acess&amp;#225;-lo, acrescencei a instru&amp;#231;&amp;#227;o MOV, pois esses registradores n&amp;#227;o podem ser acessados pelas instru&amp;#231;&amp;#245;es lw (load) e sw (store). &lt;br /&gt;Agora o modelo est&amp;#225; funcionando corretamente com as instru&amp;#231;&amp;#245;es VT-x. O que est&amp;#225; faltando &amp;#233; fazer os &lt;i&gt;benchmarks&lt;/i&gt; para comparar a execu&amp;#231;&amp;#227;o da carga de trabalho de um hipervisor no MIPS original em rela&amp;#231;&amp;#227;o ao MIPS com as instru&amp;#231;&amp;#245;es VTX.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;20/11/2007 - Adjusting the Model&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ao fazer a implementa&amp;#231;&amp;#227;o dos teste, reparei que seria necess&amp;#225;rio acrescentar alguns registradores de controle, tais como registradores de n&amp;#237;vel de privil&amp;#233;gio e de base da tabela de p&amp;#225;ginas. Esses registradores devem ser acrescentados porque h&amp;#225; algumas instru&amp;#231;&amp;#245;es que s&amp;#227;o sens&amp;#237;veis (veja em Documenta&amp;#231;&amp;#227;o &lt;i&gt;Conceitos de Virtualiza&amp;#231;&amp;#227;o&lt;/i&gt;) somente se estiverem fazendo acesso a esses registradores de controle.&lt;br /&gt;Esses registradores existem na especifica&amp;#231;&amp;#227;o do MIPS, eles apenas n&amp;#227;o estavam no modelo disponibilizado no site do &lt;a href="http://www.archc.org" class="externalLink"&gt;ArchC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, pois esse modelo &amp;#233; simplificado.&lt;br /&gt;Estou agora fazendo essas altera&amp;#231;&amp;#245;es no modelo de processador. &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;17/10/2007 - Design a Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, terminei a implementa&amp;#231;&amp;#227;o do subconjunto de instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x, e acrescentei 2 instru&amp;#231;&amp;#245;es ao subconjunto inicial: &lt;b&gt;VMPTRLD&lt;/b&gt; e &lt;b&gt;VMPTRST&lt;/b&gt;. Al&amp;#233;m das instru&amp;#231;&amp;#245;es, foram adicionados alguns registradores para indicar quando o processador est&amp;#225; executando em VMXON entre outras coisas (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt; &lt;br /&gt;Agora estou elaborando os testes. A id&amp;#233;ia &amp;#233; fazer dois c&amp;#243;digos assembly:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;1) Um n&amp;#227;o utiliza as instru&amp;#231;&amp;#245;es VT-x e para toda a instru&amp;#231;&amp;#227;o executada, testa se essa instru&amp;#231;&amp;#227;o &amp;#233; sens&amp;#237;vel e s&amp;#243; pode ser executada pelo hipervisor. Nesse caso, &amp;#233; feita a troca de contexto da m&amp;#225;quina virtual hospedada para o hipervisor, tudo em assembly.&lt;/li&gt;&lt;li&gt;2) O segundo c&amp;#243;digo utiliza as instru&amp;#231;&amp;#245;es VT-x, assim as instru&amp;#231;&amp;#245;es quando executadas em modo VMXON s&amp;#227;o automaticamente testadas para verificar se s&amp;#227;o ou n&amp;#227;o instru&amp;#231;&amp;#245;es sens&amp;#237;veis. Caso sejam sens&amp;#237;veis, a troca de contexto da m&amp;#225;quina virtual para o hipervisor &amp;#233; feita automaticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Em resumo, a id&amp;#233;ia &amp;#233; testar a &lt;b&gt;troca de contexto e monitoramento de instru&amp;#231;&amp;#245;es feito em assembly (sem utilizar as instru&amp;#231;&amp;#245;es Intel VT-x)&lt;/b&gt; contra a &lt;b&gt;troca de contexto e monitoramento feita utilizando as instru&amp;#231;&amp;#245;es e estruturas da tecnologia Intel VT-x (que realizam a troca de contexto com uma instru&amp;#231;&amp;#227;o s&amp;#243;)&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/09/2007 - Modeling Intel VT-x for the MIPS: Instructions&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Esta semana estou terminando a implementa&amp;#231;&amp;#227;o das principais instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x: &lt;b&gt;VMXON, VMXOFF, VMLAUNCH, VMRESUME, VMCALL&lt;/b&gt; e &lt;b&gt;VMCLEAR&lt;/b&gt; (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt;Por enquanto o n&amp;#250;mero de m&amp;#225;quinas virtuais &amp;#233; fixo, mas futuramente isso ser&amp;#225; modificado para fazer a aloca&amp;#231;&amp;#227;o din&amp;#226;mica de mem&amp;#243;ria das regi&amp;#245;es do VMCS de cada m&amp;#225;quina virtual.&lt;br /&gt;Acredito que at&amp;#233; o final desta semana estarei simulando alguns programas de teste.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/09/2007 - Modeling Intel VT-x for the MIPS: VMCS&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estamos come&amp;#231;ando uma fase nova do projeto, e, para comemorar, resolvemos montar um blog. O objetivo &amp;#233; que em per&amp;#237;odos onde n&amp;#227;o h&amp;#225; muita documenta&amp;#231;&amp;#227;o a ser publicada, pois estamos trabalhando na parte de implementa&amp;#231;&amp;#227;o, seja poss&amp;#237;vel fazer uma publica&amp;#231;&amp;#227;o informal das atividades da semana.&lt;br /&gt; &lt;br /&gt;Bem, durante essa semana, ent&amp;#227;o, estou fazendo a adapta&amp;#231;&amp;#227;o da tecnologia Intel VT-x para o modelo do MIPS R3000 que est&amp;#225; publicado no site da ferramenta ArchC. Essa adapta&amp;#231;&amp;#227;o n&amp;#227;o tem sido muito f&amp;#225;cil, pois o modelo que estou utilizando do MIPS est&amp;#225; bastante simplificado, o que est&amp;#225; exigindo uma simplifica&amp;#231;&amp;#227;o dos conceitos da tecnologia tamb&amp;#233;m. &lt;br /&gt;As principais simplifica&amp;#231;&amp;#245;es s&amp;#227;o em rela&amp;#231;&amp;#227;o ao VMCS (&lt;i&gt;Virtual Machine Control Structure&lt;/i&gt;), &amp;#233; nele onde ficam armazenados os estados do hospedeiro e do convidado quando &amp;#233; feita a troca de contexto deles no processador. Na vers&amp;#227;o para o MIPS haver&amp;#225; somente um VMCS por m&amp;#225;quina virtual, e haver&amp;#225; um processador virtual para cada m&amp;#225;quina virtual. Originalmente na tecnologia Intel VT-x uma m&amp;#225;quina virtual pode ter v&amp;#225;rios processadores l&amp;#243;gicos.&lt;br /&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 13:59:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Blog 20090204015918P</guid></item><item><title>Updated Wiki: Blog</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Blog&amp;version=51</link><description>&lt;div class="wikidoc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;04/02/2009&lt;/b&gt; - Virtualization nanobenchmarks*&lt;/li&gt;
&lt;/ul&gt;Terminando, ent&amp;#227;o, essa parte de modelar o suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o da mem&amp;#243;ria, chega o esperado momento de testar. &lt;br /&gt;Inicialmente foi solicitado a um fabricante de MMV que compartilhasse conosco alguns trechos de c&amp;#243;digo com cargas de trabalho caracter&amp;#237;sticas de um MMV, mas parece que isso n&amp;#227;o ser&amp;#225; poss&amp;#237;vel. Assim, estamos procurando novas fontes de benchmarks para sistemas virtualizados. &lt;br /&gt;A dificuldade de encontrar benchmarks completos com caracter&amp;#237;sticas de aplica&amp;#231;&amp;#245;es virtualizadas reais, como os dispon&amp;#237;veis para sistemas n&amp;#227;o virtualizados, &amp;#233; grande. Ent&amp;#227;o, resolvemos nos voltar para nanobenchmarks citados em &amp;quot;&lt;i&gt;Adams, K, Agesen, O. A Comparision of Software an Hardware Techniques for x86 Virtualization,2006&lt;/i&gt;&amp;quot;. &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/01/2009 - A new year&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Depois das festas de fim de ano, recome&amp;#231;am os trabalhos. Breve novos releases.&lt;br /&gt;Com a disponibiliza&amp;#231;&amp;#227;o de SVN feita pelo Codeplex, em breve o projeto estar&amp;#225; dispon&amp;#237;vel nesse sistema e ficar&amp;#225; mais f&amp;#225;cil para pessoas que desejam colaborar.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;16/12/2008 - Multi-core implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou enfrentando algumas dificuldades para implementar a tabela de p&amp;#225;ginas extendida, pois n&amp;#227;o &amp;#233; t&amp;#227;o claro como os modelos do ArchC acessam a tabela j&amp;#225; existente. Acredito que para sanar esses problemas terei que implementar novas fun&amp;#231;&amp;#245;es do ArchC, isso demora um pouco, mas &amp;#233; poss&amp;#237;vel.&lt;br /&gt;Para n&amp;#227;o ficar somente tentando implementar a tabela de p&amp;#225;ginas extendida, resolvi retomar a implementa&amp;#231;&amp;#227;o do sistema com m&amp;#250;ltiplos n&amp;#250;cleos, ou seja, colocar o que j&amp;#225; est&amp;#225; pronto modelado em um sistema com v&amp;#225;rios n&amp;#250;cleos. J&amp;#225; estou compilando um modelo com 2 n&amp;#250;cleos que possui em cada n&amp;#250;cleo o suporte de virtualiza&amp;#231;&amp;#227;o modelado at&amp;#233; o momento: instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, estruturas de virtualiza&amp;#231;&amp;#227;o (VMCS) e o VPID. Logo que realizar alguns testes para validar esse modelo e garantir que est&amp;#225; tudo ocorrendo como deve ser, irei diponibiliz&amp;#225;-lo.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;06/11/2008 - Extended Page Table implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o, semana passada muitos de n&amp;#243;s do projeto de interoperabilidade est&amp;#225;vamos em Campo Grande participando do SBAC-PAD (veja descri&amp;#231;&amp;#227;o &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20SBAC-PAD%20e%20WSCAD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;Essa semana retomamos os trabalhos para a implementa&amp;#231;&amp;#227;o de tabela de p&amp;#225;ginas extendida (veja mais detalhes &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Suporte%20%u00e0%20Virtualiza%u00e7%u00e3o%20da%20Mem%u00f3ria%3a%20Extended%20Page%20Table%20e%20VPID&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;30/10/2008 - SBAC-PAD/WSCAD participation and VPID implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou aqui em Campo Grande, Mato Grosso do Sul, assistindo ao &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=133" class="externalLink"&gt;SBAC-PAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; e &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=136" class="externalLink"&gt;WSCAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Em breve divulgarei descri&amp;#231;&amp;#227;o completa do evento, mas posso adiantar que est&amp;#225; sendo muito produtivo.&lt;br /&gt;Sobre o trabalho com Virtualiza&amp;#231;&amp;#227;o da Mem&amp;#243;ria, o VPID j&amp;#225; foi implementado. Agora estou trabalhando para acrescentar a nova TLB, para isso ser&amp;#225; necess&amp;#225;rio adicionar uma nova Tabela de P&amp;#225;ginas (&lt;i&gt;Extended Page Table&lt;/i&gt;).&lt;br /&gt;Em breve terei mais novidades.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;02/10/2008 - WSPPD and VPID Implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;As novidades s&amp;#227;o que o artigo para o WSPPD foi aceito e apresentado no dia 19 de setembro, veja &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20WSPPD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; o artigo, em ingl&amp;#234;s, a apresenta&amp;#231;&amp;#227;o, em portugu&amp;#234;s, e uma breve descri&amp;#231;&amp;#227;o de como foi o evento.&lt;br /&gt;Bem, esse artigo fala justamente do suporte de virtualiza&amp;#231;&amp;#227;o &amp;#224; mem&amp;#243;ria fornecido atualmente pelos processadores. S&amp;#227;o abordados principalmente dois aspectos desse suporte:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;uma nova TLB, que traduz o endere&amp;#231;o virtual do sistema operacional hospedado para o endere&amp;#231;o f&amp;#237;sico do hipervisor&lt;/li&gt;&lt;li&gt;o VPID (&lt;i&gt;Virtual Processor Identifier&lt;/i&gt;) que identifica a quais processadores virtuais os endere&amp;#231;os guardados na TLB e na cache pertencem, evitando a necessidade de limpar essas mesmas TLB e cache a cada VM-entry ou VM-exit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Iniciamos com a implementa&amp;#231;&amp;#227;o do VPID. Ele ser&amp;#225; um novo campo de dados do VMCS, e todos os endere&amp;#231;os traduzidos dever&amp;#227;o ser prefixados pelos VPID de seus respectivos processadores virtuais.&lt;br /&gt;Tivemos alguns problemas com in&amp;#237;cio da modelagem pois n&amp;#227;o conseguiamos fazer o download dos modelos com hiearquia de mem&amp;#243;ria do portal do ArchC. Parece que eles est&amp;#227;o com algumas dificuldades, mas j&amp;#225; est&amp;#227;o ajeitando. Sem poder baixar os modelos do site, procuramos alternativas e encontramos &lt;a href="http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/ar/archc/" class="externalLink"&gt;esse link&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; com todos os modelos e ferramentas do ArchC, a &amp;#250;nica coisa que n&amp;#227;o encontramos foi os &lt;i&gt;benchmarks&lt;/i&gt; (cargas de trabalho), se algu&amp;#233;m souber um lugar de onde possamos baixar, por favor, comente aqui.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;27/08/2008 - Memory Virtualization&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O in&amp;#237;cio deste semestre foi dedicado ao estudo das t&amp;#233;cnicas de mem&amp;#243;ria utilizadas nos processadores com suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o. O acesso &amp;#224; mem&amp;#243;ria &amp;#233; sempre um momento cr&amp;#237;tico no desempenho dos sistemas, inclusive dos sistemas virtualizados. O fato de realizar constantes trocas de contexto entre diversas m&amp;#225;quinas virtuais pode levar a um baixo desempenho dos sistemas de cache, por exemplo, pois, na aus&amp;#234;ncia de recursos de hardware, as caches devem ser limpas cada vez que &amp;#233; trocada a M&amp;#225;quina Virtual em execu&amp;#231;&amp;#227;o. &lt;br /&gt;Pretendemos estender o modelo que j&amp;#225; possui as instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o para tamb&amp;#233;m incluir algumas t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria em hardware.&lt;br /&gt;Nas &amp;#250;ltimas 2 semanas escrevemos um artigo para submiss&amp;#227;o em mais um &lt;a href="http://gppd.inf.ufrgs.br/wsppd/2008/" class="externalLink"&gt;WSPPD (Workshop de Processamento Paralelo e Distribu&amp;#237;do)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, o de 2008. Este artigo versa justamente sobre as t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria utilizadas na tecnologia Intel VT. Depois da divulga&amp;#231;&amp;#227;o da avalia&amp;#231;&amp;#227;o do artigo e de eventuais corre&amp;#231;&amp;#245;es sugeridas pelos avaliadores, disponibilizaremos ele aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/07/2008 - WCAE Presesentation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o fomos para apresentar o artigo no WCAE 2008 e participar do ISCA 2008, em Beijing, China. Viajamos dia 18 e voltamos dia 28. Logo darei um depoimento mais detalhado na se&amp;#231;&amp;#227;o Participa&amp;#231;&amp;#245;es e Eventos. &lt;br /&gt;Por enquanto queremos dizer que voltamos e, apesar das correrias de final de semestre e para mim, Manuela, final de curso, trabalho de conclus&amp;#227;o entre outros, colocaremos assim que poss&amp;#237;vel novas informa&amp;#231;&amp;#245;es aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/05/2008 - Paper Accepted in WCAE&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, sabem aquele material sobre como utilizar o MIPS-vt (MIPS com instru&amp;#231;&amp;#245;es de vitualiza&amp;#231;&amp;#227;o) para a educa&amp;#231;&amp;#227;o? Foi feito um artigo para submiss&amp;#227;o no &lt;a href="http://www.cs.ucsb.edu/~franklin/wcae08/WCAE08.html" class="externalLink"&gt;WCAE 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; que ocorre junto com o &lt;a href="http://isca2008.cs.princeton.edu/" class="externalLink"&gt;ISCA 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; em Beijing, China. &lt;br /&gt;E o artigo foi ACEITO!!!! Estamos preparando a apresenta&amp;#231;&amp;#227;o do trabalho que ser&amp;#225; feita no dia 23 de junho.&lt;br /&gt;Assim que ocorrer o evento, divulgaremos o artigo e a apresenta&amp;#231;&amp;#227;o aqui no portal.&lt;br /&gt; &lt;br /&gt;Outra coisa, agora o portal do VISA tem uma &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=English%20version&amp;amp;referringTitle=Home" class="externalLink"&gt;vers&amp;#227;o em ingl&amp;#234;s&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Essa vers&amp;#227;o possui um resumo do que j&amp;#225; est&amp;#225; presente na vers&amp;#227;o em portugu&amp;#234;s.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;28/04/2008 - Using MIPS-vt to Understanding the Hardware Virtualization Support&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Passei as &amp;#250;ltimas semanas terminando o material que mostra como utilizar o modelo de MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o (MIPS-vt) para ensinar em sala de aula. O material ficou t&amp;#227;o bom que estamos tentando submeter para algum evento, por esse motivo ainda n&amp;#227;o foi divulgado aqui.&lt;br /&gt;Com o MIPS-vt implementado usando ArchC2.0 &amp;#233; poss&amp;#237;vel come&amp;#231;ar a modelagem em m&amp;#250;ltiplos n&amp;#250;cleos. Vou fazer isso seguindo as dicas dadas em &amp;quot;&lt;a href="http://www.sbc.org.br/bibliotecadigital/download.php?paper=643" class="externalLink"&gt; R. Azevedo, S. Rigo e G. Ara&amp;#250;jo, Projeto e Desenvolvimento de Sistemas Dedicados Multiprocessados &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&amp;quot;, que explica como modelar com m&amp;#250;ltiplos n&amp;#250;cleos usando o ArchC em conjunto com o SystemC e tem um exemplo passo-a-passo.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;7/04/2008 - Upgrading the model to ArchC 2.0&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Essa semana terminei a implementa&amp;#231;&amp;#227;o do modelo do MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o baseadas na Intel VT-x utilizando ArchC 2.0. Esse novo modelo &amp;#233; monociclo (sem pipeline). Essa tradu&amp;#231;&amp;#227;o foi feita para facilitar a implementa&amp;#231;&amp;#227;o do modelo em m&amp;#250;ltiplos n&amp;#250;cleos, pois o ArchC 2.0 fornece op&amp;#231;&amp;#245;es melhores e mais f&amp;#225;ceis para a modelagem de m&amp;#250;ltiplos n&amp;#250;cleos.&lt;br /&gt; &lt;br /&gt;Ainda estou escrevendo o material para utiliza&amp;#231;&amp;#227;o do modelo no ensino.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/03/2008 - A New Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Com a inten&amp;#231;&amp;#227;o de comparar o tempo necess&amp;#225;rio para fazer as trocas de contexto entre m&amp;#225;quinas virtuais no MIPS original e no MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, foi definido um teste com as seguintes cararcter&amp;#237;sticas:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;3 m&amp;#225;quinas virtuais com cargas de trabalho diferentes&lt;/li&gt;&lt;li&gt;diversas trocas de contexto entre as diferentes m&amp;#225;quinas virtuais ser&amp;#227;o realizadas ao longo da execu&amp;#231;&amp;#227;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Esse teste ser&amp;#225; executado nas duas vers&amp;#245;es do MIPS para comparar os resultados. Abaixo est&amp;#225; o corpo do teste:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=29581" alt="teste.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;15/02/2008 - Caracterization for Virtualization Benchmarking&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Em rela&amp;#231;&amp;#227;o &amp;#224;s caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor, encontrei o artigo: Casazza, J. P., Greenfield, M., Shi, K. (2006)  &lt;i&gt;&amp;quot;Redefining Server Performance Characterization for Virtualization Benchmarking&amp;quot;&lt;/i&gt;, Intel Technology Journal. Nesse artigo os autores esclarecem que n&amp;#227;o &amp;#233; poss&amp;#237;vel analisar m&amp;#225;quinas virtualizadas utilizando somente os benchmarks comuns, pois eles n&amp;#227;o levam em considera&amp;#231;&amp;#227;o a divis&amp;#227;o dos recursos reais entre as diversas m&amp;#225;quinas virtuais, assim, o artigo fornece uma metodologia para criar uma carga de trabalho para um benchmark.&lt;br /&gt; &lt;br /&gt;A documenta&amp;#231;&amp;#227;o para auxiliar professores em aula est&amp;#225; sendo elaborada.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/01/2008 - Running the test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O modelo est&amp;#225; funcionando perfeitamente. Executei algumas instru&amp;#231;&amp;#245;es que geraram as seguintes estat&amp;#237;sticas:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=25923" alt="fig_estatisticas.jpg" /&gt;&lt;br /&gt;Nas estat&amp;#237;ticas pode-se ver nas linhas 5, 6 e 7, informa&amp;#231;&amp;#245;es sobre a execu&amp;#231;&amp;#227;o total, em seguida, as estat&amp;#237;sticas referentes &amp;#224;s instru&amp;#231;&amp;#245;es executadas. Por &amp;#250;ltimo, h&amp;#225; detalhes sobre a utiliza&amp;#231;&amp;#227;o dos bancos de registradores e dos registradores contidos no pipeline.&lt;br /&gt; &lt;br /&gt;Atualmente estou procurando caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor (instru&amp;#231;&amp;#245;es mais executadas) sem a utiliza&amp;#231;&amp;#227;o de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o para formular um benchmark.&lt;br /&gt; &lt;br /&gt;Em paralelo, estou elaborando um documento que auxilie professores na utiliza&amp;#231;&amp;#227;o do modelo produzido em ArchC para demonstrar e exercitar os conceito de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/12/2007 - Write/Submit a peper in ERAD&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Dediquei esta semana para escrever um artigo para o &lt;a href="http://www.unisc.br/universidade/eventos/erad2008/" class="externalLink"&gt; ERAD 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. O artigo descrever as modifica&amp;#231;&amp;#245;es feitas no MIPS R3000 para que ele oferecesse suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o inspirado na tecnologia Intel VT-x. Esse artigo foi submetido e espera aceita&amp;#231;&amp;#227;o.&lt;br /&gt;Amanh&amp;#227; ser&amp;#225; a viagem de integra&amp;#231;&amp;#227;o do grupo do projeto para a Microsoft em S&amp;#227;o Paulo, na volta pretendo ter mais coisas para contar.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;07/12/2007 - Model Finished&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Acrecentei o registrador de estado de privil&amp;#233;gio da CPU no MIPS e para poder acess&amp;#225;-lo, acrescencei a instru&amp;#231;&amp;#227;o MOV, pois esses registradores n&amp;#227;o podem ser acessados pelas instru&amp;#231;&amp;#245;es lw (load) e sw (store). &lt;br /&gt;Agora o modelo est&amp;#225; funcionando corretamente com as instru&amp;#231;&amp;#245;es VT-x. O que est&amp;#225; faltando &amp;#233; fazer os &lt;i&gt;benchmarks&lt;/i&gt; para comparar a execu&amp;#231;&amp;#227;o da carga de trabalho de um hipervisor no MIPS original em rela&amp;#231;&amp;#227;o ao MIPS com as instru&amp;#231;&amp;#245;es VTX.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;20/11/2007 - Adjusting the Model&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ao fazer a implementa&amp;#231;&amp;#227;o dos teste, reparei que seria necess&amp;#225;rio acrescentar alguns registradores de controle, tais como registradores de n&amp;#237;vel de privil&amp;#233;gio e de base da tabela de p&amp;#225;ginas. Esses registradores devem ser acrescentados porque h&amp;#225; algumas instru&amp;#231;&amp;#245;es que s&amp;#227;o sens&amp;#237;veis (veja em Documenta&amp;#231;&amp;#227;o &lt;i&gt;Conceitos de Virtualiza&amp;#231;&amp;#227;o&lt;/i&gt;) somente se estiverem fazendo acesso a esses registradores de controle.&lt;br /&gt;Esses registradores existem na especifica&amp;#231;&amp;#227;o do MIPS, eles apenas n&amp;#227;o estavam no modelo disponibilizado no site do &lt;a href="http://www.archc.org" class="externalLink"&gt;ArchC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, pois esse modelo &amp;#233; simplificado.&lt;br /&gt;Estou agora fazendo essas altera&amp;#231;&amp;#245;es no modelo de processador. &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;17/10/2007 - Design a Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, terminei a implementa&amp;#231;&amp;#227;o do subconjunto de instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x, e acrescentei 2 instru&amp;#231;&amp;#245;es ao subconjunto inicial: &lt;b&gt;VMPTRLD&lt;/b&gt; e &lt;b&gt;VMPTRST&lt;/b&gt;. Al&amp;#233;m das instru&amp;#231;&amp;#245;es, foram adicionados alguns registradores para indicar quando o processador est&amp;#225; executando em VMXON entre outras coisas (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt; &lt;br /&gt;Agora estou elaborando os testes. A id&amp;#233;ia &amp;#233; fazer dois c&amp;#243;digos assembly:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;1) Um n&amp;#227;o utiliza as instru&amp;#231;&amp;#245;es VT-x e para toda a instru&amp;#231;&amp;#227;o executada, testa se essa instru&amp;#231;&amp;#227;o &amp;#233; sens&amp;#237;vel e s&amp;#243; pode ser executada pelo hipervisor. Nesse caso, &amp;#233; feita a troca de contexto da m&amp;#225;quina virtual hospedada para o hipervisor, tudo em assembly.&lt;/li&gt;&lt;li&gt;2) O segundo c&amp;#243;digo utiliza as instru&amp;#231;&amp;#245;es VT-x, assim as instru&amp;#231;&amp;#245;es quando executadas em modo VMXON s&amp;#227;o automaticamente testadas para verificar se s&amp;#227;o ou n&amp;#227;o instru&amp;#231;&amp;#245;es sens&amp;#237;veis. Caso sejam sens&amp;#237;veis, a troca de contexto da m&amp;#225;quina virtual para o hipervisor &amp;#233; feita automaticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Em resumo, a id&amp;#233;ia &amp;#233; testar a &lt;b&gt;troca de contexto e monitoramento de instru&amp;#231;&amp;#245;es feito em assembly (sem utilizar as instru&amp;#231;&amp;#245;es Intel VT-x)&lt;/b&gt; contra a &lt;b&gt;troca de contexto e monitoramento feita utilizando as instru&amp;#231;&amp;#245;es e estruturas da tecnologia Intel VT-x (que realizam a troca de contexto com uma instru&amp;#231;&amp;#227;o s&amp;#243;)&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/09/2007 - Modeling Intel VT-x for the MIPS: Instructions&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Esta semana estou terminando a implementa&amp;#231;&amp;#227;o das principais instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x: &lt;b&gt;VMXON, VMXOFF, VMLAUNCH, VMRESUME, VMCALL&lt;/b&gt; e &lt;b&gt;VMCLEAR&lt;/b&gt; (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt;Por enquanto o n&amp;#250;mero de m&amp;#225;quinas virtuais &amp;#233; fixo, mas futuramente isso ser&amp;#225; modificado para fazer a aloca&amp;#231;&amp;#227;o din&amp;#226;mica de mem&amp;#243;ria das regi&amp;#245;es do VMCS de cada m&amp;#225;quina virtual.&lt;br /&gt;Acredito que at&amp;#233; o final desta semana estarei simulando alguns programas de teste.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/09/2007 - Modeling Intel VT-x for the MIPS: VMCS&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estamos come&amp;#231;ando uma fase nova do projeto, e, para comemorar, resolvemos montar um blog. O objetivo &amp;#233; que em per&amp;#237;odos onde n&amp;#227;o h&amp;#225; muita documenta&amp;#231;&amp;#227;o a ser publicada, pois estamos trabalhando na parte de implementa&amp;#231;&amp;#227;o, seja poss&amp;#237;vel fazer uma publica&amp;#231;&amp;#227;o informal das atividades da semana.&lt;br /&gt; &lt;br /&gt;Bem, durante essa semana, ent&amp;#227;o, estou fazendo a adapta&amp;#231;&amp;#227;o da tecnologia Intel VT-x para o modelo do MIPS R3000 que est&amp;#225; publicado no site da ferramenta ArchC. Essa adapta&amp;#231;&amp;#227;o n&amp;#227;o tem sido muito f&amp;#225;cil, pois o modelo que estou utilizando do MIPS est&amp;#225; bastante simplificado, o que est&amp;#225; exigindo uma simplifica&amp;#231;&amp;#227;o dos conceitos da tecnologia tamb&amp;#233;m. &lt;br /&gt;As principais simplifica&amp;#231;&amp;#245;es s&amp;#227;o em rela&amp;#231;&amp;#227;o ao VMCS (&lt;i&gt;Virtual Machine Control Structure&lt;/i&gt;), &amp;#233; nele onde ficam armazenados os estados do hospedeiro e do convidado quando &amp;#233; feita a troca de contexto deles no processador. Na vers&amp;#227;o para o MIPS haver&amp;#225; somente um VMCS por m&amp;#225;quina virtual, e haver&amp;#225; um processador virtual para cada m&amp;#225;quina virtual. Originalmente na tecnologia Intel VT-x uma m&amp;#225;quina virtual pode ter v&amp;#225;rios processadores l&amp;#243;gicos.&lt;br /&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 13:46:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Blog 20090204014603P</guid></item><item><title>Updated Wiki: English version</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=English version&amp;version=16</link><description>&lt;div class="wikidoc"&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=33260" alt="usa.png" /&gt; &lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This project consists on the research and evaluation of virtualization features on multi-core processors through the design of a Virtualization ISA (Instruction Set Architecture), easing the control by virtual machine monitors available for Windows and Linux platforms. &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=More%20Details&amp;amp;referringTitle=English%20version"&gt;More Details&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Work%20Plan&amp;amp;referringTitle=English%20version"&gt;Work Plan&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scientific Publications&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=WSPPD%202007&amp;amp;referringTitle=English%20version"&gt;WSPPD 2007&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=ERAD%202008&amp;amp;referringTitle=English%20version"&gt;ERAD 2008&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=WCAE%202008&amp;amp;referringTitle=English%20version"&gt;WCAE 2008&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=WSPPD%202008&amp;amp;referringTitle=English%20version"&gt;WSPPD 2008&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Source codes&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=visa&amp;amp;ReleaseId=13239" class="externalLink"&gt;Sources of MIPS-vt&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 12:58:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: English version 20090204125818P</guid></item><item><title>Updated Wiki: Work Plan</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Work Plan&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;October&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the different memory configurations in a multi-core &lt;/td&gt;&lt;td&gt; Complete &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;November&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Use ArchC and SystemC to simulate and test different memory configurations in a multi-core system &lt;/td&gt;&lt;td&gt; Incomplete. There ware difficulties to model some memory configuration using ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;December&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the real Virtual Machine Monitor source &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt;   We beginning to model the multi-core system using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;January&lt;/b&gt;, &lt;b&gt;February&lt;/b&gt; and &lt;b&gt;March&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research and test using real Virtual Machine Monitor sources to compare the results with normal processors.  Publish the source using SVN &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt; We beginning to model the multi-core system using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;April&lt;/b&gt;  and &lt;b&gt;May&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Model a multi-core using the new memory configurations &lt;/td&gt;&lt;td&gt; &lt;i&gt;Working&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;June&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avaluation and paper publication describing the results of research &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 12:56:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Work Plan 20090204125619P</guid></item><item><title>Updated Wiki: Work Plan</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Work Plan&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;October&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the different memory configurations in a multi-core &lt;/td&gt;&lt;td&gt; Complete &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;November&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Use ArchC and SystemC to simulate and test different memory configurations in a multi-core system &lt;/td&gt;&lt;td&gt; Incomplete. There ware difficulties to model some memory configuration using ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;December&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the real Virtual Machine Monitor source &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt;   We beginning to model the multi-core system using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;January&lt;/b&gt;, &lt;b&gt;February&lt;/b&gt; e &lt;b&gt;March&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research and test using real Virtual Machine Monitor sources to compare the results with normal processors.  Publish the source using SVN &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt; We beginning to model the multi-core system using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;April&lt;/b&gt;  and &lt;b&gt;May&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Model a multi-core using the new memory configurations &lt;/td&gt;&lt;td&gt; &lt;i&gt;Working&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;June&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avaluation and paper publication describing the results of research &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 12:55:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Work Plan 20090204125542P</guid></item><item><title>Updated Wiki: Work Plan</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Work Plan&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;October&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the different memory configurations in a multi-core &lt;/td&gt;&lt;td&gt; Complete &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;November&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Use ArchC and SystemC to simulate and test different memory configurations in a multi-core system &lt;/td&gt;&lt;td&gt; Incomplete. There ware difficulties to model some memory configuration using ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;December&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the real Virtual Machine Monitor source &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt;   We beginning to model the multi-core using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;January&lt;/b&gt;, &lt;b&gt;February&lt;/b&gt; e &lt;b&gt;March&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research and test using real Virtual Machine Monitor sources to compare the results with normal processors.  Publish the source using SVN &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt; We beginning the multi-core model using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;April&lt;/b&gt;  and &lt;b&gt;May&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Model a multi-core using the new memory configurations &lt;/td&gt;&lt;td&gt; &lt;i&gt;Working&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;June&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avaluation and paper publication describing the results of research &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 12:54:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Work Plan 20090204125456P</guid></item><item><title>Updated Wiki: Work Plan</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Work Plan&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;October&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the different memory configurations in a multi-core &lt;/td&gt;&lt;td&gt; Complete &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;November&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Use ArchC and SystemC to simulate and test different memory configurations in a multi-core system &lt;/td&gt;&lt;td&gt; Incomplete. There ware difficulties to model some memory configuration using ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;December&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research the real Virtual Machine Monitor source &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt; We beginning the multi-core model using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Months &lt;/th&gt;&lt;th&gt; Activities Planned &lt;/th&gt;&lt;th&gt; Activities Performed &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;January&lt;/b&gt;, &lt;b&gt;February&lt;/b&gt; e &lt;b&gt;March&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Research and test using real Virtual Machine Monitor sources to compare the results with normal processors.  Publish the source using SVN &lt;/td&gt;&lt;td&gt; &lt;i&gt;Waiting source / Postponed&lt;/i&gt; We beginning the multi-core model using the new memory configurations, planned for April and May of 2009 &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;April&lt;/b&gt;  and &lt;b&gt;May&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Model a multi-core using the new memory configurations &lt;/td&gt;&lt;td&gt; &lt;i&gt;Working&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;June&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avaluation and paper publication describing the results of research &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 12:53:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Work Plan 20090204125319P</guid></item><item><title>Updated Wiki: English version</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=English version&amp;version=15</link><description>&lt;div class="wikidoc"&gt;
&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=33260" alt="usa.png" /&gt; &lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This project consists on the research and evaluation of virtualization features on multi-core processors through the design of a Virtualization ISA (Instruction Set Architecture), easing the control by virtual machine monitors available for Windows and Linux platforms. &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=More%20Details&amp;amp;referringTitle=English%20version"&gt;More Details&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Work%20Plan&amp;amp;referringTitle=English%20version"&gt;Work Plan&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scientific Publications&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=WSPPD%202007&amp;amp;referringTitle=English%20version"&gt;WSPPD 2007&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=ERAD%202008&amp;amp;referringTitle=English%20version"&gt;ERAD 2008&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=WCAE%202008&amp;amp;referringTitle=English%20version"&gt;WCAE 2008&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=WSPPD%202008&amp;amp;referringTitle=English%20version"&gt;WSPPD 2008&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Source codes&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=visa&amp;amp;ReleaseId=13239" class="externalLink"&gt;Sources of MIPS-vt&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 04 Feb 2009 12:27:44 GMT</pubDate><guid isPermaLink="false">Updated Wiki: English version 20090204122744P</guid></item><item><title>New Post: Novidades?</title><link>http://www.codeplex.com/visa/Thread/View.aspx?ThreadId=45007</link><description>&lt;div style="line-height: normal;"&gt;Boas,&lt;br&gt;
&lt;br&gt;
Este projecto parece bastante interesante. Há novidades?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Cumprimentos 
&lt;/div&gt;</description><author>vilaca</author><pubDate>Thu, 22 Jan 2009 23:45:05 GMT</pubDate><guid isPermaLink="false">New Post: Novidades? 20090122114505P</guid></item><item><title>Updated Wiki: Plano de Atividades</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Plano de Atividades&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Plano de Atividades
&lt;/h1&gt; &lt;br /&gt;&lt;h2&gt;
2007 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Fevereiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Pesquisar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Conclu&amp;#237;do &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Utilizar o ArchC e o System C para simular e testar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Conclu&amp;#237;do em parte. Foram encontradas dificuldades em modelar certas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria utilizando o ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudar o c&amp;#243;digo de um Monitor de M&amp;#225;quinas Virtuais real &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt;, &lt;b&gt;Fevereiro&lt;/b&gt; e &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudo e teste utilizando c&amp;#243;digo real de M&amp;#225;quinas Virtuais para comparar com resultados de processadores normais. Publica&amp;#231;&amp;#227;o do c&amp;#243;digo fonte utilizando SVN &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt;  e &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Modelar diferentes configura&amp;#231;&amp;#245;es de processadores multi-core com configura&amp;#231;&amp;#245;es de mem&amp;#243;ria &lt;/td&gt;&lt;td&gt; &lt;i&gt;Em andamento&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avalia&amp;#231;&amp;#227;o e publica&amp;#231;&amp;#227;o de resultados em um artigo &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 21 Jan 2009 13:39:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Plano de Atividades 20090121013949P</guid></item><item><title>Updated Wiki: Blog</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Blog&amp;version=50</link><description>&lt;div class="wikidoc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;16/12/2008 - A new year&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Depois das festas de fim de ano, recome&amp;#231;am os trabalhos. Breve novos releases.&lt;br /&gt;Com a disponibiliza&amp;#231;&amp;#227;o de SVN feita pelo Codeplex, em breve o projeto estar&amp;#225; dispon&amp;#237;vel nesse sistema e ficar&amp;#225; mais f&amp;#225;cil para pessoas que desejam colaborar.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;16/12/2008 - Multi-core implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou enfrentando algumas dificuldades para implementar a tabela de p&amp;#225;ginas extendida, pois n&amp;#227;o &amp;#233; t&amp;#227;o claro como os modelos do ArchC acessam a tabela j&amp;#225; existente. Acredito que para sanar esses problemas terei que implementar novas fun&amp;#231;&amp;#245;es do ArchC, isso demora um pouco, mas &amp;#233; poss&amp;#237;vel.&lt;br /&gt;Para n&amp;#227;o ficar somente tentando implementar a tabela de p&amp;#225;ginas extendida, resolvi retomar a implementa&amp;#231;&amp;#227;o do sistema com m&amp;#250;ltiplos n&amp;#250;cleos, ou seja, colocar o que j&amp;#225; est&amp;#225; pronto modelado em um sistema com v&amp;#225;rios n&amp;#250;cleos. J&amp;#225; estou compilando um modelo com 2 n&amp;#250;cleos que possui em cada n&amp;#250;cleo o suporte de virtualiza&amp;#231;&amp;#227;o modelado at&amp;#233; o momento: instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, estruturas de virtualiza&amp;#231;&amp;#227;o (VMCS) e o VPID. Logo que realizar alguns testes para validar esse modelo e garantir que est&amp;#225; tudo ocorrendo como deve ser, irei diponibiliz&amp;#225;-lo.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;06/11/2008 - Extended Page Table implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o, semana passada muitos de n&amp;#243;s do projeto de interoperabilidade est&amp;#225;vamos em Campo Grande participando do SBAC-PAD (veja descri&amp;#231;&amp;#227;o &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20SBAC-PAD%20e%20WSCAD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;Essa semana retomamos os trabalhos para a implementa&amp;#231;&amp;#227;o de tabela de p&amp;#225;ginas extendida (veja mais detalhes &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Suporte%20%u00e0%20Virtualiza%u00e7%u00e3o%20da%20Mem%u00f3ria%3a%20Extended%20Page%20Table%20e%20VPID&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;). &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;30/10/2008 - SBAC-PAD/WSCAD participation and VPID implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estou aqui em Campo Grande, Mato Grosso do Sul, assistindo ao &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=133" class="externalLink"&gt;SBAC-PAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; e &lt;a href="http://www.cpcx.ufms.br/union/index.php?cp=136" class="externalLink"&gt;WSCAD&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Em breve divulgarei descri&amp;#231;&amp;#227;o completa do evento, mas posso adiantar que est&amp;#225; sendo muito produtivo.&lt;br /&gt;Sobre o trabalho com Virtualiza&amp;#231;&amp;#227;o da Mem&amp;#243;ria, o VPID j&amp;#225; foi implementado. Agora estou trabalhando para acrescentar a nova TLB, para isso ser&amp;#225; necess&amp;#225;rio adicionar uma nova Tabela de P&amp;#225;ginas (&lt;i&gt;Extended Page Table&lt;/i&gt;).&lt;br /&gt;Em breve terei mais novidades.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;02/10/2008 - WSPPD and VPID Implementation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;As novidades s&amp;#227;o que o artigo para o WSPPD foi aceito e apresentado no dia 19 de setembro, veja &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=Participa%u00e7%u00e3o%20no%20WSPPD%202008&amp;amp;referringTitle=Home" class="externalLink"&gt;aqui&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; o artigo, em ingl&amp;#234;s, a apresenta&amp;#231;&amp;#227;o, em portugu&amp;#234;s, e uma breve descri&amp;#231;&amp;#227;o de como foi o evento.&lt;br /&gt;Bem, esse artigo fala justamente do suporte de virtualiza&amp;#231;&amp;#227;o &amp;#224; mem&amp;#243;ria fornecido atualmente pelos processadores. S&amp;#227;o abordados principalmente dois aspectos desse suporte:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;uma nova TLB, que traduz o endere&amp;#231;o virtual do sistema operacional hospedado para o endere&amp;#231;o f&amp;#237;sico do hipervisor&lt;/li&gt;&lt;li&gt;o VPID (&lt;i&gt;Virtual Processor Identifier&lt;/i&gt;) que identifica a quais processadores virtuais os endere&amp;#231;os guardados na TLB e na cache pertencem, evitando a necessidade de limpar essas mesmas TLB e cache a cada VM-entry ou VM-exit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Iniciamos com a implementa&amp;#231;&amp;#227;o do VPID. Ele ser&amp;#225; um novo campo de dados do VMCS, e todos os endere&amp;#231;os traduzidos dever&amp;#227;o ser prefixados pelos VPID de seus respectivos processadores virtuais.&lt;br /&gt;Tivemos alguns problemas com in&amp;#237;cio da modelagem pois n&amp;#227;o conseguiamos fazer o download dos modelos com hiearquia de mem&amp;#243;ria do portal do ArchC. Parece que eles est&amp;#227;o com algumas dificuldades, mas j&amp;#225; est&amp;#227;o ajeitando. Sem poder baixar os modelos do site, procuramos alternativas e encontramos &lt;a href="http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/ar/archc/" class="externalLink"&gt;esse link&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; com todos os modelos e ferramentas do ArchC, a &amp;#250;nica coisa que n&amp;#227;o encontramos foi os &lt;i&gt;benchmarks&lt;/i&gt; (cargas de trabalho), se algu&amp;#233;m souber um lugar de onde possamos baixar, por favor, comente aqui.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;27/08/2008 - Memory Virtualization&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O in&amp;#237;cio deste semestre foi dedicado ao estudo das t&amp;#233;cnicas de mem&amp;#243;ria utilizadas nos processadores com suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o. O acesso &amp;#224; mem&amp;#243;ria &amp;#233; sempre um momento cr&amp;#237;tico no desempenho dos sistemas, inclusive dos sistemas virtualizados. O fato de realizar constantes trocas de contexto entre diversas m&amp;#225;quinas virtuais pode levar a um baixo desempenho dos sistemas de cache, por exemplo, pois, na aus&amp;#234;ncia de recursos de hardware, as caches devem ser limpas cada vez que &amp;#233; trocada a M&amp;#225;quina Virtual em execu&amp;#231;&amp;#227;o. &lt;br /&gt;Pretendemos estender o modelo que j&amp;#225; possui as instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o para tamb&amp;#233;m incluir algumas t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria em hardware.&lt;br /&gt;Nas &amp;#250;ltimas 2 semanas escrevemos um artigo para submiss&amp;#227;o em mais um &lt;a href="http://gppd.inf.ufrgs.br/wsppd/2008/" class="externalLink"&gt;WSPPD (Workshop de Processamento Paralelo e Distribu&amp;#237;do)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, o de 2008. Este artigo versa justamente sobre as t&amp;#233;cnicas de virtualiza&amp;#231;&amp;#227;o de mem&amp;#243;ria utilizadas na tecnologia Intel VT. Depois da divulga&amp;#231;&amp;#227;o da avalia&amp;#231;&amp;#227;o do artigo e de eventuais corre&amp;#231;&amp;#245;es sugeridas pelos avaliadores, disponibilizaremos ele aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/07/2008 - WCAE Presesentation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ent&amp;#227;o fomos para apresentar o artigo no WCAE 2008 e participar do ISCA 2008, em Beijing, China. Viajamos dia 18 e voltamos dia 28. Logo darei um depoimento mais detalhado na se&amp;#231;&amp;#227;o Participa&amp;#231;&amp;#245;es e Eventos. &lt;br /&gt;Por enquanto queremos dizer que voltamos e, apesar das correrias de final de semestre e para mim, Manuela, final de curso, trabalho de conclus&amp;#227;o entre outros, colocaremos assim que poss&amp;#237;vel novas informa&amp;#231;&amp;#245;es aqui no portal.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/05/2008 - Paper Accepted in WCAE&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, sabem aquele material sobre como utilizar o MIPS-vt (MIPS com instru&amp;#231;&amp;#245;es de vitualiza&amp;#231;&amp;#227;o) para a educa&amp;#231;&amp;#227;o? Foi feito um artigo para submiss&amp;#227;o no &lt;a href="http://www.cs.ucsb.edu/~franklin/wcae08/WCAE08.html" class="externalLink"&gt;WCAE 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; que ocorre junto com o &lt;a href="http://isca2008.cs.princeton.edu/" class="externalLink"&gt;ISCA 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; em Beijing, China. &lt;br /&gt;E o artigo foi ACEITO!!!! Estamos preparando a apresenta&amp;#231;&amp;#227;o do trabalho que ser&amp;#225; feita no dia 23 de junho.&lt;br /&gt;Assim que ocorrer o evento, divulgaremos o artigo e a apresenta&amp;#231;&amp;#227;o aqui no portal.&lt;br /&gt; &lt;br /&gt;Outra coisa, agora o portal do VISA tem uma &lt;a href="http://www.codeplex.com/visa/Wiki/View.aspx?title=English%20version&amp;amp;referringTitle=Home" class="externalLink"&gt;vers&amp;#227;o em ingl&amp;#234;s&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Essa vers&amp;#227;o possui um resumo do que j&amp;#225; est&amp;#225; presente na vers&amp;#227;o em portugu&amp;#234;s.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;28/04/2008 - Using MIPS-vt to Understanding the Hardware Virtualization Support&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Passei as &amp;#250;ltimas semanas terminando o material que mostra como utilizar o modelo de MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o (MIPS-vt) para ensinar em sala de aula. O material ficou t&amp;#227;o bom que estamos tentando submeter para algum evento, por esse motivo ainda n&amp;#227;o foi divulgado aqui.&lt;br /&gt;Com o MIPS-vt implementado usando ArchC2.0 &amp;#233; poss&amp;#237;vel come&amp;#231;ar a modelagem em m&amp;#250;ltiplos n&amp;#250;cleos. Vou fazer isso seguindo as dicas dadas em &amp;quot;&lt;a href="http://www.sbc.org.br/bibliotecadigital/download.php?paper=643" class="externalLink"&gt; R. Azevedo, S. Rigo e G. Ara&amp;#250;jo, Projeto e Desenvolvimento de Sistemas Dedicados Multiprocessados &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&amp;quot;, que explica como modelar com m&amp;#250;ltiplos n&amp;#250;cleos usando o ArchC em conjunto com o SystemC e tem um exemplo passo-a-passo.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;7/04/2008 - Upgrading the model to ArchC 2.0&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Essa semana terminei a implementa&amp;#231;&amp;#227;o do modelo do MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o baseadas na Intel VT-x utilizando ArchC 2.0. Esse novo modelo &amp;#233; monociclo (sem pipeline). Essa tradu&amp;#231;&amp;#227;o foi feita para facilitar a implementa&amp;#231;&amp;#227;o do modelo em m&amp;#250;ltiplos n&amp;#250;cleos, pois o ArchC 2.0 fornece op&amp;#231;&amp;#245;es melhores e mais f&amp;#225;ceis para a modelagem de m&amp;#250;ltiplos n&amp;#250;cleos.&lt;br /&gt; &lt;br /&gt;Ainda estou escrevendo o material para utiliza&amp;#231;&amp;#227;o do modelo no ensino.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;10/03/2008 - A New Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Com a inten&amp;#231;&amp;#227;o de comparar o tempo necess&amp;#225;rio para fazer as trocas de contexto entre m&amp;#225;quinas virtuais no MIPS original e no MIPS com instru&amp;#231;&amp;#245;es de virtualiza&amp;#231;&amp;#227;o, foi definido um teste com as seguintes cararcter&amp;#237;sticas:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;3 m&amp;#225;quinas virtuais com cargas de trabalho diferentes&lt;/li&gt;&lt;li&gt;diversas trocas de contexto entre as diferentes m&amp;#225;quinas virtuais ser&amp;#227;o realizadas ao longo da execu&amp;#231;&amp;#227;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Esse teste ser&amp;#225; executado nas duas vers&amp;#245;es do MIPS para comparar os resultados. Abaixo est&amp;#225; o corpo do teste:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=29581" alt="teste.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;15/02/2008 - Caracterization for Virtualization Benchmarking&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Em rela&amp;#231;&amp;#227;o &amp;#224;s caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor, encontrei o artigo: Casazza, J. P., Greenfield, M., Shi, K. (2006)  &lt;i&gt;&amp;quot;Redefining Server Performance Characterization for Virtualization Benchmarking&amp;quot;&lt;/i&gt;, Intel Technology Journal. Nesse artigo os autores esclarecem que n&amp;#227;o &amp;#233; poss&amp;#237;vel analisar m&amp;#225;quinas virtualizadas utilizando somente os benchmarks comuns, pois eles n&amp;#227;o levam em considera&amp;#231;&amp;#227;o a divis&amp;#227;o dos recursos reais entre as diversas m&amp;#225;quinas virtuais, assim, o artigo fornece uma metodologia para criar uma carga de trabalho para um benchmark.&lt;br /&gt; &lt;br /&gt;A documenta&amp;#231;&amp;#227;o para auxiliar professores em aula est&amp;#225; sendo elaborada.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/01/2008 - Running the test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;O modelo est&amp;#225; funcionando perfeitamente. Executei algumas instru&amp;#231;&amp;#245;es que geraram as seguintes estat&amp;#237;sticas:&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=visa&amp;amp;DownloadId=25923" alt="fig_estatisticas.jpg" /&gt;&lt;br /&gt;Nas estat&amp;#237;ticas pode-se ver nas linhas 5, 6 e 7, informa&amp;#231;&amp;#245;es sobre a execu&amp;#231;&amp;#227;o total, em seguida, as estat&amp;#237;sticas referentes &amp;#224;s instru&amp;#231;&amp;#245;es executadas. Por &amp;#250;ltimo, h&amp;#225; detalhes sobre a utiliza&amp;#231;&amp;#227;o dos bancos de registradores e dos registradores contidos no pipeline.&lt;br /&gt; &lt;br /&gt;Atualmente estou procurando caracter&amp;#237;sticas da carga de trabalho habitual de um hipervisor (instru&amp;#231;&amp;#245;es mais executadas) sem a utiliza&amp;#231;&amp;#227;o de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o para formular um benchmark.&lt;br /&gt; &lt;br /&gt;Em paralelo, estou elaborando um documento que auxilie professores na utiliza&amp;#231;&amp;#227;o do modelo produzido em ArchC para demonstrar e exercitar os conceito de suporte &amp;#224; virtualiza&amp;#231;&amp;#227;o. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;18/12/2007 - Write/Submit a peper in ERAD&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Dediquei esta semana para escrever um artigo para o &lt;a href="http://www.unisc.br/universidade/eventos/erad2008/" class="externalLink"&gt; ERAD 2008&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. O artigo descrever as modifica&amp;#231;&amp;#245;es feitas no MIPS R3000 para que ele oferecesse suporte de hardware &amp;#224; virtualiza&amp;#231;&amp;#227;o inspirado na tecnologia Intel VT-x. Esse artigo foi submetido e espera aceita&amp;#231;&amp;#227;o.&lt;br /&gt;Amanh&amp;#227; ser&amp;#225; a viagem de integra&amp;#231;&amp;#227;o do grupo do projeto para a Microsoft em S&amp;#227;o Paulo, na volta pretendo ter mais coisas para contar.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;07/12/2007 - Model Finished&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Acrecentei o registrador de estado de privil&amp;#233;gio da CPU no MIPS e para poder acess&amp;#225;-lo, acrescencei a instru&amp;#231;&amp;#227;o MOV, pois esses registradores n&amp;#227;o podem ser acessados pelas instru&amp;#231;&amp;#245;es lw (load) e sw (store). &lt;br /&gt;Agora o modelo est&amp;#225; funcionando corretamente com as instru&amp;#231;&amp;#245;es VT-x. O que est&amp;#225; faltando &amp;#233; fazer os &lt;i&gt;benchmarks&lt;/i&gt; para comparar a execu&amp;#231;&amp;#227;o da carga de trabalho de um hipervisor no MIPS original em rela&amp;#231;&amp;#227;o ao MIPS com as instru&amp;#231;&amp;#245;es VTX.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;20/11/2007 - Adjusting the Model&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Ao fazer a implementa&amp;#231;&amp;#227;o dos teste, reparei que seria necess&amp;#225;rio acrescentar alguns registradores de controle, tais como registradores de n&amp;#237;vel de privil&amp;#233;gio e de base da tabela de p&amp;#225;ginas. Esses registradores devem ser acrescentados porque h&amp;#225; algumas instru&amp;#231;&amp;#245;es que s&amp;#227;o sens&amp;#237;veis (veja em Documenta&amp;#231;&amp;#227;o &lt;i&gt;Conceitos de Virtualiza&amp;#231;&amp;#227;o&lt;/i&gt;) somente se estiverem fazendo acesso a esses registradores de controle.&lt;br /&gt;Esses registradores existem na especifica&amp;#231;&amp;#227;o do MIPS, eles apenas n&amp;#227;o estavam no modelo disponibilizado no site do &lt;a href="http://www.archc.org" class="externalLink"&gt;ArchC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, pois esse modelo &amp;#233; simplificado.&lt;br /&gt;Estou agora fazendo essas altera&amp;#231;&amp;#245;es no modelo de processador. &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;17/10/2007 - Design a Test&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Bem, terminei a implementa&amp;#231;&amp;#227;o do subconjunto de instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x, e acrescentei 2 instru&amp;#231;&amp;#245;es ao subconjunto inicial: &lt;b&gt;VMPTRLD&lt;/b&gt; e &lt;b&gt;VMPTRST&lt;/b&gt;. Al&amp;#233;m das instru&amp;#231;&amp;#245;es, foram adicionados alguns registradores para indicar quando o processador est&amp;#225; executando em VMXON entre outras coisas (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt; &lt;br /&gt;Agora estou elaborando os testes. A id&amp;#233;ia &amp;#233; fazer dois c&amp;#243;digos assembly:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;1) Um n&amp;#227;o utiliza as instru&amp;#231;&amp;#245;es VT-x e para toda a instru&amp;#231;&amp;#227;o executada, testa se essa instru&amp;#231;&amp;#227;o &amp;#233; sens&amp;#237;vel e s&amp;#243; pode ser executada pelo hipervisor. Nesse caso, &amp;#233; feita a troca de contexto da m&amp;#225;quina virtual hospedada para o hipervisor, tudo em assembly.&lt;/li&gt;&lt;li&gt;2) O segundo c&amp;#243;digo utiliza as instru&amp;#231;&amp;#245;es VT-x, assim as instru&amp;#231;&amp;#245;es quando executadas em modo VMXON s&amp;#227;o automaticamente testadas para verificar se s&amp;#227;o ou n&amp;#227;o instru&amp;#231;&amp;#245;es sens&amp;#237;veis. Caso sejam sens&amp;#237;veis, a troca de contexto da m&amp;#225;quina virtual para o hipervisor &amp;#233; feita automaticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Em resumo, a id&amp;#233;ia &amp;#233; testar a &lt;b&gt;troca de contexto e monitoramento de instru&amp;#231;&amp;#245;es feito em assembly (sem utilizar as instru&amp;#231;&amp;#245;es Intel VT-x)&lt;/b&gt; contra a &lt;b&gt;troca de contexto e monitoramento feita utilizando as instru&amp;#231;&amp;#245;es e estruturas da tecnologia Intel VT-x (que realizam a troca de contexto com uma instru&amp;#231;&amp;#227;o s&amp;#243;)&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;26/09/2007 - Modeling Intel VT-x for the MIPS: Instructions&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Esta semana estou terminando a implementa&amp;#231;&amp;#227;o das principais instru&amp;#231;&amp;#245;es da tecnologia Intel VT-x: &lt;b&gt;VMXON, VMXOFF, VMLAUNCH, VMRESUME, VMCALL&lt;/b&gt; e &lt;b&gt;VMCLEAR&lt;/b&gt; (&lt;i&gt;veja em Documenta&amp;#231;&amp;#227;o &amp;quot;Detalhes da Tecnologia Intel VT-x&lt;/i&gt;).&lt;br /&gt;Por enquanto o n&amp;#250;mero de m&amp;#225;quinas virtuais &amp;#233; fixo, mas futuramente isso ser&amp;#225; modificado para fazer a aloca&amp;#231;&amp;#227;o din&amp;#226;mica de mem&amp;#243;ria das regi&amp;#245;es do VMCS de cada m&amp;#225;quina virtual.&lt;br /&gt;Acredito que at&amp;#233; o final desta semana estarei simulando alguns programas de teste.&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;14/09/2007 - Modeling Intel VT-x for the MIPS: VMCS&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;Estamos come&amp;#231;ando uma fase nova do projeto, e, para comemorar, resolvemos montar um blog. O objetivo &amp;#233; que em per&amp;#237;odos onde n&amp;#227;o h&amp;#225; muita documenta&amp;#231;&amp;#227;o a ser publicada, pois estamos trabalhando na parte de implementa&amp;#231;&amp;#227;o, seja poss&amp;#237;vel fazer uma publica&amp;#231;&amp;#227;o informal das atividades da semana.&lt;br /&gt; &lt;br /&gt;Bem, durante essa semana, ent&amp;#227;o, estou fazendo a adapta&amp;#231;&amp;#227;o da tecnologia Intel VT-x para o modelo do MIPS R3000 que est&amp;#225; publicado no site da ferramenta ArchC. Essa adapta&amp;#231;&amp;#227;o n&amp;#227;o tem sido muito f&amp;#225;cil, pois o modelo que estou utilizando do MIPS est&amp;#225; bastante simplificado, o que est&amp;#225; exigindo uma simplifica&amp;#231;&amp;#227;o dos conceitos da tecnologia tamb&amp;#233;m. &lt;br /&gt;As principais simplifica&amp;#231;&amp;#245;es s&amp;#227;o em rela&amp;#231;&amp;#227;o ao VMCS (&lt;i&gt;Virtual Machine Control Structure&lt;/i&gt;), &amp;#233; nele onde ficam armazenados os estados do hospedeiro e do convidado quando &amp;#233; feita a troca de contexto deles no processador. Na vers&amp;#227;o para o MIPS haver&amp;#225; somente um VMCS por m&amp;#225;quina virtual, e haver&amp;#225; um processador virtual para cada m&amp;#225;quina virtual. Originalmente na tecnologia Intel VT-x uma m&amp;#225;quina virtual pode ter v&amp;#225;rios processadores l&amp;#243;gicos.&lt;br /&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 21 Jan 2009 13:36:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Blog 20090121013643P</guid></item><item><title>Updated Wiki: Plano de Atividades</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Plano de Atividades&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Plano de Atividades
&lt;/h1&gt; &lt;br /&gt;&lt;h2&gt;
2007 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Fevereiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Pesquisar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Conclu&amp;#237;do &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Utilizar o ArchC e o System C para simular e testar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Conclu&amp;#237;do em parte. Foram encontradas dificuldades em modelar certas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria utilizando o ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudar o c&amp;#243;digo de um Monitor de M&amp;#225;quinas Virtuais real &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt;, &lt;b&gt;Fevereiro&lt;/b&gt; e &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudo e teste utilizando c&amp;#243;digo real de M&amp;#225;quinas Virtuais para comparar com resultados de processadores normais &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt;  e &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Modelar diferentes configura&amp;#231;&amp;#245;es de processadores multi-core com configura&amp;#231;&amp;#245;es de mem&amp;#243;ria &lt;/td&gt;&lt;td&gt; &lt;i&gt;Em andamento&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avalia&amp;#231;&amp;#227;o e publica&amp;#231;&amp;#227;o de resultados em um artigo &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 21 Jan 2009 12:55:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Plano de Atividades 20090121125521P</guid></item><item><title>Updated Wiki: Plano de Atividades</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Plano de Atividades&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Plano de Atividades
&lt;/h1&gt; &lt;br /&gt;&lt;h2&gt;
2007 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Fevereiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Pesquisar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Feito &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Utilizar o ArchC e o System C para simular e testar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Feito em parte. Foram encontradas dificuldades em modelar certas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria utilizando o ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudar o c&amp;#243;digo de um Monitor de M&amp;#225;quinas Virtuais real &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;h2&gt;
2009 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt;, &lt;b&gt;Fevereiro&lt;/b&gt; e &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudo e teste utilizando c&amp;#243;digo real de M&amp;#225;quinas Virtuais para comparar com resultados de processadores normais &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; Foi iniciado a tarefa seguinte que &amp;#233; modelar essas novas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em m&amp;#250;ltiplos n&amp;#250;cleos, prevista para Abril e Maio &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt;  e &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Modelar diferentes configura&amp;#231;&amp;#245;es de processadores multi-core com configura&amp;#231;&amp;#245;es de mem&amp;#243;ria &lt;/td&gt;&lt;td&gt; &lt;i&gt;Em andamento&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Avalia&amp;#231;&amp;#227;o e publica&amp;#231;&amp;#227;o de resultados em um artigo &lt;/td&gt;&lt;td&gt; --- &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 21 Jan 2009 12:39:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Plano de Atividades 20090121123957P</guid></item><item><title>Updated Wiki: Plano de Atividades</title><link>http://www.codeplex.com/visa/Wiki/View.aspx?title=Plano de Atividades&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Plano de Atividades
&lt;/h1&gt; &lt;br /&gt;&lt;h2&gt;
2007 
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
2008
&lt;/h2&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Meses &lt;/th&gt;&lt;th&gt; Atividades Previstas &lt;/th&gt;&lt;th&gt; Atividades Realizadas &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Janeiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Fevereiro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Mar&amp;#231;o&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Abril&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Maio&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Junho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Julho&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Agosto&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Setembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;&lt;td&gt; Atividades &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Outubro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Pesquisar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Feito &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Novembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Utilizar o ArchC e o System C para simular e testar diferentes configura&amp;#231;&amp;#245;es de mem&amp;#243;ria em processadores multi-core &lt;/td&gt;&lt;td&gt; Feito em parte. Foram encontradas dificuldades em modelar certas configura&amp;#231;&amp;#245;es de mem&amp;#243;ria utilizando o ArchC&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Dezembro&lt;/b&gt; &lt;/td&gt;&lt;td&gt; Estudar o c&amp;#243;digo de um Monitor de M&amp;#225;quinas Virtuais real &lt;/td&gt;&lt;td&gt; &lt;i&gt;Esperando c&amp;#243;digo / Adiado&lt;/i&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description><author>mkferreira</author><pubDate>Wed, 21 Jan 2009 12:32:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Plano de Atividades 20090121123242P</guid></item><item><title>Source code checked in, #29991</title><link>http://www.codeplex.com/visa/SourceControl/ListDownloadableCommits.aspx</link><description>nomsg</description><author>mkferreira</author><pubDate>Wed, 07 Jan 2009 16:05:40 GMT</pubDate><guid isPermaLink="false">Source code checked in, #29991 20090107040540P</guid></item><item><title>Source code checked in, #29990</title><link>http://www.codeplex.com/visa/SourceControl/ListDownloadableCommits.aspx</link><description>nomsg</description><author>mkferreira</author><pubDate>Wed, 07 Jan 2009 15:59:53 GMT</pubDate><guid isPermaLink="false">Source code checked in, #29990 20090107035953P</guid></item><item><title>Source code checked in, #29989</title><link>http://www.codeplex.com/visa/SourceControl/ListDownloadableCommits.aspx</link><description>Novamente</description><author>mkferreira</author><pubDate>Wed, 07 Jan 2009 15:49:51 GMT</pubDate><guid isPermaLink="false">Source code checked in, #29989 20090107034951P</guid></item></channel></rss>