#memory #microprocessors #risc
#память #микропроцессоры #risc
Вопрос:
Как я могу протестировать объем памяти программ, написанных для процессоров RISC и CISC?
Какой из них потребует больше памяти и почему?
Ответ №1:
Итак, я бы сделал это с помощью экспериментов. Я бы скомпилировал двоичные файлы для обоих типов архитектур, а затем использовал инструменты gcc, чтобы посмотреть, каковы объемы памяти. В следующих примерах я буду сравнивать архитектуры x86_64 и RISCV. Первый метод, который я бы использовал, — это инструмент size, который разбивает различные части elf и сообщает размер.
# riscv64-unknown-elf-size Test.elf
Который выведет что-то вроде этого
text data bss dec hex filename
XXXXXX XXX XXXXXXX XXXXXXX XXXXXX Test.elf
Затем сравните это с версией x86:
# size Test.exe
Который выведет что-то вроде этого
text data bss dec hex filename
XXXXXX XXX XXXXXXX XXXXXXX XXXXXX Test.exe
Другой метод заключается в преобразовании вашего elf в прямой двоичный файл, который будет бит за битом соответствовать тому, что помещено в вашу память (это может быть неверно для более сложных архитектур памяти, но мы предположим простой случай, когда все это хранится и выполняется из ОЗУ). Инструментом для этого является objcopy.
# riscv64-unknown-elf-objcopy -O binary Test.elf Test.elf.bin
# objcopy -O binary Test.exe Test.exe.bin
Затем проверьте размеры двух результирующих файлов bin.