Диванный эксперт
![]() ![]() |
||||||
RISC-V ISA / Почему константы так странно кодируются?27.12.2024, 00:53. Показов 1113. Ответов 14
Метки нет Все метки)
(
Изучаю архитектуру RISC-V и постоянно возникает вопрос: что ж так все запутано?
Если декодирование представить шлейфом из проводов: то на фотке, еще норм =\ Кодом приходится "шлейфы перекручивать"
Бит тут, бит там... Какой в этом смысл?
0
|
27.12.2024, 00:53 | |
Ответы с готовыми решениями:
14
Ansys почему так странно обозначаются СК Почему так странно работает калькулятор Почему мой div так странно позиционируется? |
![]() 4054 / 2606 / 432
Регистрация: 09.09.2017
Сообщений: 11,615
|
|||
27.12.2024, 22:22 | |||
Я, конечно, никогда risc-v ядра не разрабатывал. Но, раз уж там решили сделать именно такое кодирование и задокументировали на уровне стандарта, видимо, в реальных железках это имеет смысл (а для некоторых случаев смысл даже поясняется в документации). Ну там при декодировании произвольной команды можно сразу выковырять все аргументы. Например:
Добавлено через 2 минуты
0
|
Тутошний я
![]() |
|
31.12.2024, 02:35 | |
Всё там нормально кодируется.
По битам 0-1 сразу видно, 16 битная инструкция или 32 битная. И биты под регистры нормально выделены. Перепутаны только биты в инструкциях с константами. Где место было, туда биты и вставили. Добавлено через 4 минуты Да и не требуется никому особо кодировка. Я раза три всего вручную пытался раскодировать. Ассемблер и дизассемблер сами с кодировкой хорошо справляются.
0
|
![]() 4054 / 2606 / 432
Регистрация: 09.09.2017
Сообщений: 11,615
|
|||
31.12.2024, 09:45 | |||
0
|
Тутошний я
![]() |
|
31.12.2024, 11:21 | |
Тогда стоит упомянуть и порядок байт Little Endian. Как раз для чтения битов 0-1.
0
|
Диванный эксперт
![]() ![]() |
|||
31.12.2024, 17:40 [ТС] | |||
Разминка для мозга - совсем не похоже на "обычное" программирование. Добавлено через 23 минуты Для "сжатых"(16 бит) - там вот в кодировке констант полная чехарда... Добавлено через 1 час 13 минут
0
|
259 / 189 / 29
Регистрация: 26.11.2022
Сообщений: 794
|
|
31.12.2024, 17:59 | |
это потому что не надо думать в концепцциях ООП.
ООП - Это всего лишь один из многих способов, которым хорошо пользоваться только для решения определённых задач. А verilog/hdl очень хорошо выкручивают мозг в другую сторону. Поначалу больно, но потом нормально. я бы сказал что как упражнение писать ядро risc-v это перебор особенно если писать аппаратуру ещё тяжело.
0
|
Диванный эксперт
![]() ![]() |
||
31.12.2024, 18:15 [ТС] | ||
Не по теме:
ИМХО, сложнее всякие контроллеры периферии описывать(SPI / I2C / etc) В общем по теме: можно принять за ответ "так исторически сложилось".
0
|
![]() 4054 / 2606 / 432
Регистрация: 09.09.2017
Сообщений: 11,615
|
||||||
31.12.2024, 19:50 | ||||||
0
|
Диванный эксперт
![]() ![]() |
|
31.12.2024, 21:11 [ТС] | |
COKPOWEHEU, так скажем: FPGA - текущее увлечение.
* Архитектура RISC-V была выбрана по причине открытости + под неё уже есть компиляторы. * про поддержку инструкций: хз. может и не нужно это сжатие... * Переходы - это комбинация вычислений адреса с последующим чтением из памяти. * ИМХО, для "железа" нет разницы(почти), какой бит где, но описывать это - тот еще геморрой. Не по теме: С Наступающим) Добавлено через 55 минут
0
|
![]() 4054 / 2606 / 432
Регистрация: 09.09.2017
Сообщений: 11,615
|
||||
31.12.2024, 21:37 | ||||
0
|
Диванный эксперт
![]() ![]() |
||||
31.12.2024, 21:54 [ТС] | ||||
Там даже нет особой разницы 32, 64 или большая разрядность... А вот сжатие инструкций - там способ расшифровки инструкций/констант от нее зависит.
0
|
![]() 4054 / 2606 / 432
Регистрация: 09.09.2017
Сообщений: 11,615
|
|||
01.01.2025, 01:01 | |||
0
|
01.01.2025, 01:01 | |
Помогаю со студенческими работами здесь
15
Обьясните, почему код так странно считает факториалы Почему так странно обрабатывается запрос по селекции дат? Почему VBA так странно делает сравнение значений? Почему так странно срабатывает селекция дат в запросе? Почему так странно находятся углы в сферической системе координат Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Кэш REDIS и C#
UnmanagedCoder 01.06.2025
Redis (Remote Dictionary Server) - это ультраскоростное хранилище данных в оперативной памяти, работающее по принципу "ключ-значение". Суть проста: данные хранятся не на диске, а прямо в RAM, что. . .
|
Lenovo IH110CX Rev 1.0 user manual
Maks 01.06.2025
|
Размещения без повторений
VistaSV30 31.05.2025
Код возвращает список вариантов размещений
A^{k}_{n}=\frac{n!}{(n-k)!}
from itertools import permutations
def pwr(k, n): # Размещение без повторений (Placement without repetition)
if k. . .
|
Redis и Node.js с TypeScript - решения для высоконагруженных систем
Reangularity 31.05.2025
Redis (Remote Dictionary Server) — сверхбыстрое хранилище данных в памяти, способное обрабатывать операции за микросекунды. И что особенно важно для нас — с удивительно простым API. А теперь. . .
|
Unit-тестирование с моками в Go
golander 31.05.2025
Большинство разработчиков предпочитают тестировать код без использования моков. Например, при интеграции с Elasticsearch логичнее запустить контейнер локально и тестировать Go-код непосредственно с. . .
|
Как работать с PDF в C#
stackOverflow 31.05.2025
Нам приходится сталкиваться с PDF по разным причинам. Генерация счетов, создание отчетов, извлечение данных из загруженных пользователем документов, автоматизация рабочих процесов - это лишь верхушка. . .
|
Двухбуквенные коды стран в шифровании.
russiannick 31.05.2025
Человечество издревле манила возможность замены сочетаний букв вымышленными символами, делающие сообщение понятным только для посвещенных. Настала пора внести в это свой вклад. Двухбуквенные коды. . .
|
Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона.
Programma_Boinc 31.05.2025
Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона.
Хотел бы поделиться опытом в исправлении ошибки приложения в части заряда батареи смартфона. Сразу скажу, что. . .
|
Добро пожаловать на конкурс PrimeGrid, посвященный 20-летию PrimeGrid
Programma_Boinc 31.05.2025
Добро пожаловать на конкурс PrimeGrid, посвященный 20-летию PrimeGrid:
5-дневный обобщенный поиск простых чисел Ферма n = 20 с 12 июня 20:20 UTC по 17 июня 20:20 UTC.
12 июня 2005 года. . .
|
Вероятность в шансы / Шансы в вероятность
VistaSV30 31.05.2025
# Шансы -> Вероятность
def Chance_to_Probability(ch):
def gcd(a, b): # НОД - нужен для упрощения значений шансов
while b != 0:
a, b = b, a % b
return a. . .
|