vak: (Default)
[personal profile] vak
Приехала ко мне вот такая штуковина:

Это Arduino-совместимая плата, построенная на микроконтроллере FE310 фирмы SiFive. Процессор имеет открытую архитектуру RISC-V. Фактически это первая реализация RISC-V в кремнии, доступная широкой публике. Плату можно заказать за $59 на сайте CrowdSupply.

Скачиваем и устанавливаем среду разработки:

git clone --recursive https://github.com/sifive/freedom-e-sdk.git
cd freedom-e-sdk
make tools
Компилируем и загружаем в плату тест Dhrystone:
make software PROGRAM=dhrystone BOARD=freedom-e300-hifive1
make upload PROGRAM=dhrystone BOARD=freedom-e300-hifive1
Подключаемся к консоли платы и жмём кнопку Reset:
core freq at 279979622 Hz

Dhrystone Benchmark, Version 2.1 (Language: C)

Program compiled without 'register' attribute

Please give the number of runs through the benchmark:
Execution starts, 100000000 runs through Dhrystone
Execution ends

Final values of the variables used in the benchmark:

Int_Glob: 5
should be: 5
Bool_Glob: 1
should be: 1
Ch_1_Glob: A
should be: A
Ch_2_Glob: B
should be: B
Arr_1_Glob[8]: 7
should be: 7
Arr_2_Glob[8][7]: 100000010
should be: Number_Of_Runs + 10
Ptr_Glob->
Ptr_Comp: -2147472312
should be: (implementation-dependent)
Discr: 0
should be: 0
Enum_Comp: 2
should be: 2
Int_Comp: 17
should be: 17
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->
Ptr_Comp: -2147472312
should be: (implementation-dependent), same as above
Discr: 0
should be: 0
Enum_Comp: 1
should be: 1
Int_Comp: 18
should be: 18
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc: 5
should be: 5
Int_2_Loc: 13
should be: 13
Int_3_Loc: 7
should be: 7
Enum_Loc: 1
should be: 1
Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING
should be: DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING
should be: DHRYSTONE PROGRAM, 2'ND STRING

Microseconds for one run through Dhrystone: 1.2
Dhrystones per Second: 775193.8
Видим, что процессор работает на частоте 280 МГц. Измеренную производительность надо поделить на 1757 (скорость VAX), чтобы получить величину DMIPS = 775193.8 / 1757 = 441.2. Для сравнения: микроконтроллер ATmega2560 16MHz даёт 7.23 DMIPS, процессор STM32F103 72MHz - 48.8 DMIPS, PIC32MX 80MHz - 92 DMIPS.

Для оценки эффективности архитектуры процессора имеет смысл поделить производительность на частоту процессора. Получим характеристику DMIPS на MHz. Результат такой:
Processor    Architecture    DMIPS/MHz
-----------------------------------------
ATmega2560 AVR 0.45
STM32F103 ARM 0.68 PIC32MX MIPS 1.15
FE310 RISC-V 1.57

контакты

Date: 2017-02-15 19:57 (UTC)
From: [personal profile] mrupor
Вопрос, что это за контакты для каких нужд и протоколов

AREF? => AD?
IOREF???