Объем памяти программы для процессора RISC

#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.