Применение искинов - шоссе империализма (Стенгазета русификаторов ИТ)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Прошивать разный микрокод в рантайме

Сообщений 1 страница 4 из 4

1

Ассемблер отражает машинные команды процессора.
Обычно команды делают переменной длины,
и вроде как это разумно,
так как объем кода может быть поменьше,
чем если бы для всех команд была фиксированная длина,
но парсить код из команд переменной длины сложнее.

В идеале регистры процессора и его команды
надо разработать так,
чтобы код (один и тот же функционал) был максимально коротким по количеству байтов.
Не надеяться на терабайты современной памяти,
а стремиться к наимаксимальнейшему (предельному) сокращению объема используемой памяти.
Тогда код будет выполняться быстро хоть на процессоре сорокалетней давности.

Для повышения скорости вычислений (как минимум на 50 %)
конкретного кода нужно
создать процессор, в котором можно "на лету" менять байты команд.
Но такой процессор, как мне кажется, будет трудоемко рассчитать,
да и надо на сто раз проверить целесообразность его изготовления.
Грубо говоря, стоит ли овчинка выделки или
это влажные мечты воспаленного от жары головного мозга автора этого поста?

0

2

Современные программы состоят из большого количества фрагментов разных авторов, с разным стилем кодирования.

Под разные стили кодирования оптимальным будет разный код (разное кодирование команд).

Вызовы из одной части в другую частые, и что теперь, проводить реконфигурирование процессора прямо во время инструкции call (и обратное по ret)?

Ну, в принципе, можно для каждой загруженной библиотеки её систему кодирования команд кешировать в процессоре, тогда переключения будут быстрее (но процессор - сложнее).

> повышения скорости вычислений (как минимум на 50 %)

Не ясно, откуда взялось 50%

Отредактировано Лис (2024-06-17 09:45:54)

0

3

Лис написал(а):

Под разные стили кодирования оптимальным будет разный код (разное кодирование команд).

Я написал первый пост этой ветки
в ветке про ассемблер (машинные команды),
а не про текстовый ЯП.

Код программы, то есть машинные команды процессора,
для конкретного функционала
(например, есть несколько входных переменных,
получается одна выходная переменная)
может иметь минимальное кол-во байтов.
При этом для разных программ (записанных байтами) ОДИНАКОВОЙ длины
код будет обладать одинаковой функциональностью,
но, возможно, разной скоростью выполнения.

Тогда можно различать код по скорости и объему.

0

4

NuShaman написал(а):

Я написал первый пост этой ветки
в ветке про ассемблер (машинные команды),
а не про текстовый ЯП.

Стили кодирования это не обязательно про текстовый уровень. Можно программировать как на forth (шитым кодом), а можно P-кодом, можно не использовать рекурсию (устранять), а можно активно использовать функциональное программирование.
Код будет структурно разным в зависимости от стиля программирования, независимо от того, какие синтаксисы использовались.

0