Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт дек 13, 2024 09:37

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Процессор 128 бит (не векторный)
СообщениеДобавлено: Сб июн 15, 2024 14:06 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Да, вот такое понадобилось. Именно 128 бит скалярных данных. Важное соображение - именно литералы в 128 бит использоваться будут нечасто, в основном загружаемые из внешних устройств. Но задача интересная...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Процессор 128 бит (не векторный)
СообщениеДобавлено: Сб июн 15, 2024 17:11 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 485
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
Дык это... Конпялятор нужОн с поддержкой 128 бит. Где скачать? :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Процессор 128 бит (не векторный)
СообщениеДобавлено: Сб июн 15, 2024 20:58 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Кусками можно и в 64-битном сделать. Адреса-то маленькие, их не надо делать как 128-битные. А разбор именно литералов в 128 бит отдельно оформить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Процессор 128 бит (не векторный)
СообщениеДобавлено: Пн июн 17, 2024 23:40 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 485
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
Правильно ли я понимаю, что числа двойной длины в 64-битном Форте/процессоре не реализованы (да и не нужны они там обычно от слова совсем)? А если бы и были реализованы, то это бы не помогло, т.к. окучивать 128-битные числа надо максимально быстро?

Кстати, забавно, я даже в 16-битных Фортах числа двойной длины ни разу не делал. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Процессор 128 бит (не векторный)
СообщениеДобавлено: Вт июн 18, 2024 01:06 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Тут даже не особо быстро, а хотя бы как-нибудь. Моделировать можно и на ПК, но со схемой в ПЛИС удобнее тем, что потом в ускорителе будет работать ровно то же самое. Особенно важно это для плавающей точки и тригонометрии, которые на x86 и в IP-ядрах для ПЛИС дают чуть разные результаты (а за пределами double и совсем отличаются). Тут проще пойти по пути hardware-in-the-loop, т.е. вместо симулятора схемы запускать код на процессоре, к которому эти разрабатываемые схемы подключены.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Процессор 128 бит (не векторный)
СообщениеДобавлено: Ср июн 19, 2024 23:41 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 485
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 24 раз.
:D Минутка юмора. 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 :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB