Example #1
0
/*
 * Funkcja przeprowadzajaca pomiary szyfrowania 1 MB danych
 */
void test_wydajnosci_3des_pot()
{
	printf("Test wydajnosci potokowej realizacji szyfratora i deszyfratora Triple DES \n");
	PERF_RESET(PERFORMANCE_COUNTER_0_BASE );
	PERF_START_MEASURING(PERFORMANCE_COUNTER_0_BASE);
	int i=0;
	int j=0;
	PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE ,2); //rozpoczecie pracy 2 licznika mierzacego takty zegara
	while(i<512)
	{
		ciph_3des_pot(&blok_testowy+2048*i,&blok_testowy+1048576+2048*i,2048);


		i++;
	}
	PERF_END(PERFORMANCE_COUNTER_0_BASE ,2); //zakonczenie pracy 2 licznika mierzacego takty zegara
	i=0;
	PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE ,1);//rozpoczecie pracy 1 licznika mierzacego takty zegara
	while(i<512)
	 {
		deciph_3des_pot(&blok_testowy+2048*i,&blok_testowy+1048576+2048*i,2048);
		i++;
	 }
	PERF_STOP_MEASURING(PERFORMANCE_COUNTER_0_BASE); //zakonczenie pracy wszystkich licznikow
	perf_print_formatted_report((void* )PERFORMANCE_COUNTER_0_BASE,
			ALT_CPU_FREQ*2,2,"3Des_pot 1MB szyfr","3Des_pot 1MB deszyfr"); //generacja raportu

}
Example #2
0
/**
 * Funkcja testujaca wydajnosc modulow Triple DES przy wykorzystaniu zapisu i odczytu danych na On-Chip Memory
 */
void test_wydajnosc ()
{
 printf ("Test wydajnosci \n");
	PERF_RESET(PERFORMANCE_COUNTER_0_BASE );
	PERF_START_MEASURING(PERFORMANCE_COUNTER_0_BASE);
	int i=0;
	int j=0;
	PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE ,2); //rozpoczecie pracy 2 licznika mierzacego takty zegara
	while(i<512)
	{
		deciph_3des(dane[2*i],dane[2*i+1]);
		j--;
		j++;
		deciph_3des_read(&wyniki[2*i],&wyniki[2*i+1]);
		i++;
	}
	PERF_END(PERFORMANCE_COUNTER_0_BASE ,2); //zakonczenie pracy 2 licznika mierzacego takty zegara
	i=0;
	PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE ,1);//rozpoczecie pracy 1 licznika mierzacego takty zegara
	while(i<512)
	 {
	ciph_3des(dane[2*i],dane[2*i+1]);
	j--;
	j++;
	ciph_3des_read(&wyniki[2*i],&wyniki[2*i+1]);
	i++;
	 }
	PERF_STOP_MEASURING(PERFORMANCE_COUNTER_0_BASE); //zakonczenie pracy wszystkich licznikow
	perf_print_formatted_report((void* )PERFORMANCE_COUNTER_0_BASE,	ALT_CPU_FREQ*2,2,"3Des 32Kbit szyfr","3Des 32Kbit deszyfr"); //generacja raportu
}
int main()
{
  volatile int i,j,k; //i = row, j = column,
  int count;
  int M1[10][10]={0,0,0,0,0,0,0,0,0,0,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    19,32,33,34,32,32,33,34,32,32,                    
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    19,32,33,34,32,32,33,34,32,32};  

  int M2[10][10]={32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    19,32,33,34,32,32,33,34,32,32,                    
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    32,32,33,34,32,32,33,34,32,32,
                    19,32,33,34,32,32,33,34,32,32};
  int C[10][10]={0};

  PERF_RESET (PERFORMANCE_COUNTER_BASE);            //Reset Performance Counters to 0

  PERF_START_MEASURING (PERFORMANCE_COUNTER_BASE);  //Start the Counter

  PERF_BEGIN (PERFORMANCE_COUNTER_BASE,2);          //Start the overhead counter
    PERF_BEGIN (PERFORMANCE_COUNTER_BASE,1);        //Start the Matrix Multiplication Counter
  PERF_END (PERFORMANCE_COUNTER_BASE,2);            //Stop the overhead counter

  count = 0;
  while(count<100){
  count++;
    for (i=0;i<=9;i++){
      for (j=0;j<=9;j++){
        C[i][j] = 0;
        for (k=0;k<=9;k++){
          C[i][j]+=M1[i][k]*M2[k][j];
        }
        //printf("%f ", C[i][j]);
      }
    }
  }

  PERF_END (PERFORMANCE_COUNTER_BASE,1);            //Stop the Matrix Multiplication Counter
  PERF_STOP_MEASURING (PERFORMANCE_COUNTER_BASE);   //Stop all counters
  
  perf_print_formatted_report((void *)PERFORMANCE_COUNTER_BASE, ALT_CPU_FREQ, 2,
  "100 loops","PC overhead");  
    
  return 0;
}
Example #4
0
/*
 * Test wydajnosci szyfrowania 1MB danych z zapisem i odczytem do pamieci SRAM
 */
void test_wydajnosci_sram()
{
	PERF_RESET(PERFORMANCE_COUNTER_0_BASE );
	PERF_START_MEASURING(PERFORMANCE_COUNTER_0_BASE);
	PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE ,1); //uruchomienie 1 licznia
	przeprowadzenie_szyfrowania_sram();
	PERF_END(PERFORMANCE_COUNTER_0_BASE ,1); //wylaczenie 1 licznika
	PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE ,2); // uruchomienie 2 licznika
	przeprowadzenie_deszyfrowania_sram();
	PERF_STOP_MEASURING(PERFORMANCE_COUNTER_0_BASE); //wylaczenie wszystkich licznikow
	perf_print_formatted_report((void* )PERFORMANCE_COUNTER_0_BASE,	ALT_CPU_FREQ*2,2,"Test szyfr 3DES(1MB)","Test deszyfr 3DES(1MB)");
}
int main(void)
{
    alt_putstr("Hello from Nios II!\n");

    fill_arrays_with_random_values();

    PERF_RESET(PERFORMANCE_COUNTER_0_BASE);
    PERF_START_MEASURING(PERFORMANCE_COUNTER_0_BASE);


    PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE, 1);
    shuffle_in_c(array_for_c, ARRAY_SIZE);
    PERF_END(PERFORMANCE_COUNTER_0_BASE, 1);

    PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE, 2);
    shuffle_with_custom_instruction(array_for_custom_instr, ARRAY_SIZE);
    PERF_END(PERFORMANCE_COUNTER_0_BASE, 2);

    PERF_BEGIN(PERFORMANCE_COUNTER_0_BASE, 3);
    shuffle_with_accelerator(array_for_accelerator, ARRAY_SIZE);
    PERF_END(PERFORMANCE_COUNTER_0_BASE, 3);


    PERF_STOP_MEASURING(PERFORMANCE_COUNTER_0_BASE);
    perf_print_formatted_report((void *) PERFORMANCE_COUNTER_0_BASE, ALT_CPU_FREQ, 3, ""
    		"shuffle_with_c", "shuffle_with_custom_instruction", "shuffle_with_accelerator");

    //verify_arrays();

#ifdef SMALL_ARRAY
    alt_putstr("Shuffle with C:\t\t\t");
    print_array(array_for_c, ARRAY_SIZE);
    alt_putstr("Shuffle with custom instruction:\t");
    print_array(array_for_custom_instr, ARRAY_SIZE);
    alt_putstr("Shuffle with accelerator:\t\t");
    print_array(cache_bypass(array_for_accelerator), ARRAY_SIZE);
#endif

    return 0;
}