Forth http://www.fforum.winglion.ru/ |
|
Процессор 128 бит (не векторный) http://www.fforum.winglion.ru/viewtopic.php?f=3&t=3397 |
Страница 1 из 1 |
Автор: | Hishnik [ Сб июн 15, 2024 14:06 ] |
Заголовок сообщения: | Процессор 128 бит (не векторный) |
Да, вот такое понадобилось. Именно 128 бит скалярных данных. Важное соображение - именно литералы в 128 бит использоваться будут нечасто, в основном загружаемые из внешних устройств. Но задача интересная... |
Автор: | Total Vacuum [ Сб июн 15, 2024 17:11 ] |
Заголовок сообщения: | Re: Процессор 128 бит (не векторный) |
Дык это... Конпялятор нужОн с поддержкой 128 бит. Где скачать? |
Автор: | Hishnik [ Сб июн 15, 2024 20:58 ] |
Заголовок сообщения: | Re: Процессор 128 бит (не векторный) |
Кусками можно и в 64-битном сделать. Адреса-то маленькие, их не надо делать как 128-битные. А разбор именно литералов в 128 бит отдельно оформить. |
Автор: | Total Vacuum [ Пн июн 17, 2024 23:40 ] |
Заголовок сообщения: | Re: Процессор 128 бит (не векторный) |
Правильно ли я понимаю, что числа двойной длины в 64-битном Форте/процессоре не реализованы (да и не нужны они там обычно от слова совсем)? А если бы и были реализованы, то это бы не помогло, т.к. окучивать 128-битные числа надо максимально быстро? Кстати, забавно, я даже в 16-битных Фортах числа двойной длины ни разу не делал. |
Автор: | Hishnik [ Вт июн 18, 2024 01:06 ] |
Заголовок сообщения: | Re: Процессор 128 бит (не векторный) |
Тут даже не особо быстро, а хотя бы как-нибудь. Моделировать можно и на ПК, но со схемой в ПЛИС удобнее тем, что потом в ускорителе будет работать ровно то же самое. Особенно важно это для плавающей точки и тригонометрии, которые на x86 и в IP-ядрах для ПЛИС дают чуть разные результаты (а за пределами double и совсем отличаются). Тут проще пойти по пути hardware-in-the-loop, т.е. вместо симулятора схемы запускать код на процессоре, к которому эти разрабатываемые схемы подключены. |
Автор: | Total Vacuum [ Ср июн 19, 2024 23:41 ] |
Заголовок сообщения: | Re: Процессор 128 бит (не векторный) |
Минутка юмора. 128-битный DEADBEEF бегает по не менее 128-битному замкнутому кругу. Код: int n = 0xDEAD << 16 | 0xBEEF ; void main ( ) { * ( int * ) UARTBRR = 173 ; for ( int i = 0 ; i < 33 ; i ++ ) { printf ( "%X%n" , n ) ; n = ( n << 4 ) | ( ( n >> 124 ) & 0b1111 ) ; } while ( 1 ) ; } http://totalvacuum.ru/deadbeef.jpg http://totalvacuum.ru/deadbeef2.jpg Самое забавное здесь то, что 128-битное процессорное ядро (память/стек тоже 128-битные) без проблем уживается с 16-битной периферией и выполняет код, который был сгенерирован 16-битными компиляторами Си и Форт. Т.е. код для 16-битного и 128-битного (да и любого другого) процессора практически не отличается, ну, пожалуй, за исключением операций сравнения, т.к. знаковый бит ползает в зависимости от разрядности, но это легко лечится правками в подключаемых библиотеках, пересобирать трансляторы не требуется. Ну и умножением с накоплением пока пришлось пожертвовать (заменил на обычное сложение), т.к. штатных 18-битных умножителей на борту Tang Nano 9K для реализации моих хотелок не хватило. Поэтому умножение сейчас программное, но в теории можно будет вернуться к аппаратному, если сделать его не за такт, а за несколько. Ну а вообще 128 бит - это прошлый век, пора переходить на 129 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |