Vladislav
они еще и 36-битные
там вообще все очень весело:
Fixed-point, either integer or fraction
Whole word – 36-bit (ones' complement)
Half word – two 18-bit fields per word (unsigned or ones' complement)
Third word – three 12-bit fields per word (ones' complement)
Quarter word – four 9-bit fields per word (unsigned)
Sixth word – six 6-bit fields per word (unsigned)
Floating point
Single precision – 36 bits: sign bit, 8-bit characteristic, 27-bit mantissa
Double precision – 72 bits: sign bit, 11-bit characteristic, 60-bit mantissa
Alphanumeric
FIELDATA – UNIVAC 6-bit code variant[2] (no lower case characters) six characters in each 36-bit word.[3] (FIELDATA was originally a seven-bit code of which only 64 code positions (occupying six bits) were formally defined.[4])
ASCII – 9 bits per character (right-most eight used for an ASCII character) four characters in each 36-bit word
Правда очень сомневаюсь что там были компиляторы C++
Berkus
Berkus
я думаю знаковый ноль насильственно приравнивается беззнаковому и на этом история заканчивается
Berkus
траблы только со сложением и вычитанием
Aleksey
Как проверить, кэшируемость памяти? Что определенные участки памяти кэшируются, а другие - нет?
Aleksander
а как можно применить такие знания?
Arseny
Кешируемость где?
Aleksey
Это для применения во встраиваемой системе. Есть процессор, и есть желаемая задача: запрет кэшируемости участка памяти озу и в идеале вместо того, чтобы данные уходили в кэш, они должны уходить во внешнюю память.
Aleksander
повторю вопрос: а как можно применить такие знания?
Aleksander
и причём здесь C++ ?
Никита
+ Какая ОС)
Aidar
Aleksey
Это может помочь в отладке программ.
Я надеюсь, что такое можно реализовать на с++, а не лезть в ассемблер. Но уже понял, что нет.
Никита
Aleksey
Если процессор встанет, можно посмотреть, что скэшировалось во внешнюю память. Это может помочь в определении места, где произошла ошибка.
Aidar
можете чекнуть как на вашей платформе реализованы барьеры памяти
Aidar
возможно их хватит
Aidar
но нельзя сказать что это ожидаемое поведение
Aidar
Aleksey
Опыта нет, но начальник требует разобраться именно с такой функциональностью.
Спасибо всем за помощь.
Oleg
Aleksander
@aesee какая ОС?
Aleksey
Aleksander
C++ будет сложно запустить, а использовать тем более
Aleksey
Никита
Никита
Aleksander
Berkus
Berkus
Aleksey
Никита
Какие ещё условия важны?
Я о том, что задал вопрос без описания текущих условий. Например, если ты работаешь через ОС или у тебя есть прямой доступ к процессору. Просто разные вещи и проблемы. Опиши все сначала. И да, бери Си
Aleksey
Окей, на си перейти вполне возможно, но я все еще не совсем понимаю, какую именно искать информацию, чтобы реализовать запрет кэшируемости
Berkus
Aleksander
Berkus
если ARM based то ARM ARM, там есть несколько MCR
Aleksey
Мне ставили требование писать на с++, но это решаемый вопрос, я думаю
Berkus
в эмбеддеде все делается прямым доступом к регистрам и прочим управляющим тумблерам
Berkus
так что можешь это в с++ завернуть, никто не против
Berkus
try catch тебе там не нужен особо
Berkus
это будет очень low-level C++ как, например, в Pistachio
Aleksey
Тогда вот такой вопрос: какие ключевые слова на английском мне искать в документации?
На русский перевода нет, и с английским я в общем-то дружу, но есть масса терминов, которые ещё не знаю
Aleksander
ага, никаких new (вернее с большими оговорками). Никаких исключений. Не смотреть в std:: и всякие либы
Berkus
Никита
Berkus
опять же, если это нужно
Berkus
в ++ можно и без кучи спокойно прожить
Berkus
placement new завезли
Berkus
Aleksander
Berkus
как человек, написавший кусок ОСи на С++, я тебе говорю - можно без проблем писать лоу левел код на плюсах, это гораздо удобнее чем си
Berkus
На архитектуре riscv
https://github.com/riscv/riscv-wiki/wiki/RISC-V-Cores-and-SoCs который из?
Aleksey
На рокете
Aleksander
http://scmrtos.sourceforge.net/ScmRTOS
Aleksander
Ну я тоже в эмбеддед пишу, на крестах и FreeRTOS. Когда начинал, зассал scmRTOS освоить, теперь жалею.
Maksim
Доброе утро. Подскажите, пожалуйста, легален ли подобный код https://godbolt.org/g/cdi4Mz в рамках C++17? Отказывается компилироваться на gcc (trunk) и clang (trunk), но компилируется на последнем MSVC.
Aleksei
Maksim
Я так и написал (что ругается).
Berkus
На рокете
надо еще посмотреть как у него сделан MMU, возможно там есть perpage управление кэшированием, например
Aleksei
Мне тут из соседнего отдела коллега рассказал, что у него студия игнорировала delete на конструкторе копирования. Нормально собирался проект, а gcc ошибку в нужном месте выдавал. Забыл только версию спросить
Maksim
А так уже работает: https://godbolt.org/g/8rWu9V
Berkus
Anatoly
Anatoly
Vladislav
Aleksei