Pull to refresh

Comments 15

Отличная статья.
Тут вот ещё wiki.psxdev.ru/index.php/Main_Page хотели PS1 зареверсить, жалко что последние новости от 2016 года, тоже интересно могло бы получится.
PS1 люди «честно реверсят», вскрывают микросхемы, шлифуют, фотографируют, векторизуют, это очень много работы. А упомянутый в статье симулятор ARM1 сделан на базе готовых файлов фотошаблонов, полученных от самой компании ARM. Что, впрочем, не делает симулятор менее интересным.
Не увидел в разделе «История» в чем же принципиальное отличие «Acorn (или Advanced) RISC Machine» от просто RISC.
Ну, был RISC. Инженеры Acorn решили: а давайте сделаем свой, с карточными играми и поэтессами.
Насколько мне известно, изначально — RISC — это общее название, акроним от Reduced Instruction Set Computer. Т.е. принципиально только одно: команды маленькие, фиксированной длины, их просто декодировать и просто исполнить. В Стэнфорде, например, RISC процессоры звались MIPS, а у Acorn — ARM.
В то же время, CISC — это совершенно необязательно x86, просто он является самым известным представителем Complex Instruction Set Computer.

Смотрю я на систему команд АРМ и хочу спросить, а где она, собственно, простая?

UFO just landed and posted this here

Вы thumb? Помню когда первый раз знакомился с АРМ поразило, что все команды условные. И все 32 бита. Расточительно. Потом thumb сделали и переключение режима на ходу (вроде джамп на нечетный адрес). А сейчас и вовсе Thumb2, который уже вполне разумно выглядит, но вот ничего рискового в нем не вижу

Простота Ограниченность состоит не в том, что нет команды деления (её, кстати, часто нет), а в том, что команды принимают только сильно ограниченный тип аргументов. То есть если это операция сложения, то она складывает только регистр с регистром, причём регистры не любые, а из определённого диапазона. В итоге то, что в x86 без особых раздумий выполняется одной инструкцией, в ARM распадается на три.
Reduced это не simple. Так как команд мало, декодер получается простым (что видно на картинке).
В ARM1 — несколько десятков команд. Вообще весь процессор концептуально даже проще чем 8-битники. Это позволило создать его командой из нескольких человек.
Помню когда первый раз знакомился с АРМ поразило, что все команды условные. И все 32 бита. Расточительно.

Когда все условные и 32 бита — так проще. Сдвигатель, работающий в большинстве инструкций это опять же RISC подход.
Thumb2, который уже вполне разумно выглядит, но вот ничего рискового в нем не вижу

Это просто схема кодирования. Команды в Thumb2 и ARM одни и те же.
Где вы потеряли RISC-овость?
Уточните, пожалуйста. Инструкции для выполнения попадают в процессор и в схему декодирования команд также по линиям передачи данных?

Да, через шину данных: https://en.wikichip.org/wiki/acorn/microarchitectures/arm1#Core


Данная статья — перевод
Reverse engineering the ARM1, ancestor of the iPhone's processor — http://www.righto.com/2015/12/reverse-engineering-arm1-ancestor-of.html, есть еще несколько заметок по тегу http://www.righto.com/search/label/arm



Также Dave Mugridge's series of posts http://daveshacks.blogspot.ru/search/label/arm:


Интересно, а в СССР смогли бы скопировать? 25 тыс транзисторов, это не сложней 8086, а его успешно скопировали.

Sign up to leave a comment.

Articles