Как стать автором
Обновить

Китайская компания Loongson Technology разработала с нуля новую процессорную архитектуру

Время на прочтение4 мин
Количество просмотров35K
Всего голосов 68: ↑64 и ↓4+60
Комментарии56

Комментарии 56

LoongArch содержит около 2000 проприетарных инструкций.
Это как? ISA к этому процу будет под грифом секретности?
Может так же как у Эльбруса?
Вероятно, это значит, что без лицензии использовать нельзя. Т.е. это не открытая разработка, как RISC-V
Лицензия = разрешение. Т.е. если это так, то вполне можно опубликовать спецификации, но запретить их без дозволения использовать. Либо это не лицензия совсем.
Конечно, я был неосторожен в формулировках. Использовать нельзя без лицензирования, т.е. без приобретения лицензии у правообладателя.
В Китае уже формируют альянс «Автономных командных систем». Члены альянса смогут использовать набор инструкций LoongArch бесплатно. Члены альянса могут получить проекты ядра процессора Loongson бесплатно.
А руководство по процессору Loongson 3A4000 на китайском лежит в открытом доступе.
LoongArch содержит около 2000 проприетарных инструкций

Записывать программы так и просится иероглифами.

Если придется придумывать новый язык да еще и с иероглифами, то тогда надо и новую парадигму изобрести.
Основанную на конфуцианстве и принципах маоизма.
НЛО прилетело и опубликовало эту надпись здесь
Вообще-то просто создать процессор с собственной системой команд это не очень трудно. У нас команда была 4 человека и мы это сделали в FPGA. Другое дело сделать для него MMU, FPU, SIMD трансляцию команд и оптимизировать производительность и энергопотребление. Ну и очень немаловажный шаг — компилятор c/c++ и далее загрузчик ОС. Вот это вот все в комплексе очень сложно.
В качестве компилятора взять LLVM и дописать backend. Он умеет кучу архитектур, поэтому достаточно гибкий, чтобы по аналогии прикрутить новую.

А в чём проблема «загрузчика ОС»? Это же программа размером в 1 сектор (ну ладно, пусть современные занимают килобайт 8). Написать на ассемблере, задачка на пару дней.
LLVM можно адаптировать если ваш процессор «типовой», то есть принципиально такой же как и другие процессоры. Если же он начнет использовать хоть немного иные принципы, то адаптировать его почти не получится.
Под загрузчиком ОС я подразумевал нечто большее — инициализация и программирование MMU.
Не представляю, что в современном процессоре может быть супер «не такого». Различия в числе и ширине регистров, комбинациях операций с регистрами и памятью и в том, как это всё кодируется в опкодах. Всё.

Лет сколько-то назад я спрашивал примерно то же самое у ребят, которые пилят MultiClet. Насколько я помню, там дали довольно развернутое объяснение. На тот момент они не предоставляли поддержки для LLVM, я спрашивал в чем подвох.


UPD: Если не путаю то вот этот тред: https://habr.com/ru/post/269287/#comment_17603599

Ребята, которые пилят мультиклет, нахамили мне в лицо, когда я предложил запилить компилятор на LLVM. В их поделии нет ничего такого, что нельзя было бы запилить в LLVM. Если вы посмотрите в существующие бэкенды LLVM, там есть действительно нетипичные архитектуры, и ничего, всё работает.

Да мы обсуждали это уже. Я ссылку дал как раз на ту дискуссию.

Похоже, что Мультиклет помер — на сайте последние обновления от 2016-го года
Раздел новости вроде обновляется.
Даже пару недель назад статью тут выкладывали
habr.com/ru/post/550434
то же самое у ребят, которые пилят MultiClet
Тут я могу поверить, что архитектура совершенно другая. Но у китайцев LoongArch я думаю самая обычная калька с проверенных архитектур, просто без legacy и со всеми авторскими правами.

LLVM под капотом имеет виртуальную RISC машину. Поэтому поддержку всего, что не похоже на RISC процессор, будет очень сложно впихнуть в LLVM так, чтобы это работало более или менее эффективно. Например Эльбрус, который VLIW.

Один сектор — потому что BIOS уже все проинициализировал. А в эмбеддед или аналог bios загружается с флешки бутромом. Или полноценный UEFI. Вот это загрузчик второго уровня (первый в бутром). Он инитит оборудование, а потом читает и запускает загрузчик ОС.

Такого уровня софт пишут уже на C++
В комменте, на который я отвечал, проблема выделена в том, чтобы написать загрузчик (самый начальный, на асме) И компилятор, а дальше уже легче.

Я открою страшную тайну — в современных SoC даже BootROM загрузчик написан на Си. Плюс АСМ, разумеется, но не целиком на АСМе.


И размер у него не чета бутсектору, порядка 80-256кб. При этом он даже ДДР не инициализирует.

В качестве компилятора взять LLVM и дописать backend. Он умеет кучу архитектур, поэтому достаточно гибкий, чтобы по аналогии прикрутить новую.
только все специфичные для конкретно вашей архитектуры оптимизации в бекенде компилятора придется писать с нуля.
Не все так просто. То на что вы ссылаетесь — это MBR-загрузчик. И он только первое звено в достаточно длинной цепочке загрузчиков и компонентов инициализации системы. Но как вы верно заметили, основные трудозатраты пойдут не на загрузчики, а на саму ОС. На ее адаптацию под новый набор команд. В ядре всегда есть куча ассемблера и всяческих интринсиков, так как оно по-умолчанию процессоро-зависимо. И вот перенастроить это все на новую архитектуру не так-то легко.
Не то чтобы трудно. Я бы сказал, что это очень трудоёмко и кто-то должен оплатить все эти работы. Есть более наглядный пример — Linux и Windows. И системы команд одинаковые и компиляторы есть и многое другое. Но как они начали развиваться в разные сегменты использования, так и по сей день слабо смешиваются.
Loongson смогли сделать на уровне процессора двоичную трансляцию команд «на лету». Судя по их заверениям, программы MIPS транслируются без потери производительности, ARM — 90% производительности, а x86 — 60-70%.
Кроме того, они выпусти специально для своих ЦП Loongnix — на основе Fedora 21.
> Вообще-то просто создать процессор с собственной системой команд это не очень трудно.

Вообще-то просто создать никому не нужный процессор с собственной системой команд это не очень трудно. С этим и один человек справится. :)
Добавлю немного подробностей про LoongArch:

LoongArch — это совершенно новый набор инструкций, а не расширение MIPS. Он включает 337 базовых инструкций, 10 инструкций поддержки виртуализации, 176 инструкций двоичной трансляции (с MIPS, ARM и x86), 1024 128-битных векторных инструкций и 1018 256-битных векторных инструкций, всего 2565 машинных инструкций. По сравнению с MIPS, некоторые инструкции, не подходящие для современных процессоров, были отброшены, и было сделано множество улучшений и расширений. Например, непосредственные данные, поддерживаемые одной инструкцией, расширяются с максимальных 16 бит MIPS до максимальных 24 бит, смещение перехода ветвления также увеличивается с 64 КБ до 1 МБ, а пространство адресации изменяется с фиксированного сегмента на единое и т. д.
LoongArch по-прежнему представляет собой набор команд RISC, 32-битные инструкции фиксированной длины, 32 регистра общего назначения и 32 регистра с плавающей запятой / векторных регистров.

А можно немного подробностей для тех, кто китайским не владеет? например


  • condition codes, команды сравнения с переходом, или предикатные регистры?
  • наличие комбинированных функций типа ARMовских BFM, MADD?
  • что это за "инструкции двоичной трансляции" (там что, вшит разбор конкретных инструкций других ISA?)
  • что значит аж 1024 векторных инструкций, откуда такая огромная и подозрительно круглая цифра?
  • "пространство адресации изменяется с фиксированного сегмента на единое" — как достигается при сохранении ограничения длины смещения? (тем более в 64-битке?)

Вопросов в общем много (и, кстати, вполне тянет на серию статей...)

condition codes, команды сравнения с переходом, или предикатные регистры

Не понял вопроса, это вообще откуда?
наличие комбинированных функций типа ARMовских BFM, MADD

LoongArch базируется на MIPS. Соответственно были полностью реализованы команды MIPS64 Release 3 (MADD там присутствует, а BFM — нет). Дополнительно к ним были созданы расширения:
LoongBT — вспомогательные инструкции, ускоряющие двоичную трансляцию кода x86 и ARM
LoongVM — расширения для виртуальных машин
LoongSIMD — векторные расширения для 128- и 256-битных векторов
что это за «инструкции двоичной трансляции» (там что, вшит разбор конкретных инструкций других ISA?)

Подробностей о LoongBT мало, говорится, что есть инструкции поддерживающие двоичную трансляцию для ARM и x86
что значит аж 1024 векторных инструкций, откуда такая огромная и подозрительно круглая цифра?

Просто посчитали за разное команды с разными вариантами адресации
«пространство адресации изменяется с фиксированного сегмента на единое» — как достигается при сохранении ограничения длины смещения? (тем более в 64-битке?)

Сложно сказать, известно только что пространство адресации у них не 64, а 48 бит.

condition codes, команды сравнения с переходом, или предикатные регистры


Не понял вопроса, это вообще откуда?

Эээ… я думал, очевидно написал, но ладно:


8080->x86, ARM, PDP-11->VAX, M68k, тысячи их: команды cmp, add, и прочие выставляют биты condition codes (N, Z, V, C) и есть команды перехода по их состоянию (beq = jz = je, bcc = bhis = jae = jnc, и так далее).
System/Z: не 4 бита, а 2, с комбинациями значений типа =0, <0, >0, переполнение, а дальше снова переходы по ним (16 возможных вариантов, включая "всегда" и "никогда"). (Есть и небольшая группа немедленных сравнений с переходами.)
POWER: 4 бита в каждой группе, но другие, а дальше снова переходы.
С другой стороны:
MIPS, Alpha, RISC-V: condition codes нет вообще. Есть команды типа "перейти, если rs1 < rs2", "перейти, если rs1 != 0" и "выставить rd в 1, если rs1 < rs2, иначе в 0".
Наконец, IA-64 и, насколько увидел вскользь, NVidia видяхи: как в MIPS с компанией, но регистры с условиями — отдельная группа однобитовых регистров — т.наз. предикатные; команды операций над предикатными значениями (and/or/not).


А у Loongson как именно?


LoongArch базируется на MIPS.

Ага. Ну тогда предполагаю, что подход как второй из описанных, ну и остальное яснее. А что тогда выкинуто из известного для MIPS-R, и как решается "без глобального сегмента"?


Подробностей о LoongBT мало, говорится, что есть инструкции поддерживающие двоичную трансляцию для ARM и x86

А, просто "они есть, о мы вам пока не покажем"… ook, ждём.


Сложно сказать, известно только что пространство адресации у них не 64, а 48 бит.

Это может быть такой же промежуточной ступенью, как 48-битная виртуальная адресация в раннем x86-64 (хотя позже добавили и 57 бит).

System/Z: не 4 бита, а 2, с комбинациями значений типа =0, <0, >0, переполнение

Это еще в IBM/360 они сделали…
А что тогда выкинуто из известного для MIPS-R, и как решается «без глобального сегмента»?

LoongArch это переработанный формат инструкций: до 10 доступных форматов вместо 3 у MIPS. Хотя двоичный код MIPS отличается от LoongArch, большинство базовых инструкций LoongArch по-прежнему похожи на MIPS, поэтому накладные расходы на трансляцию очень малы.
А еще они специально провели аудит, чтоб доказать что чистоту своей разработки. Похоже немного изменили формат команд MIPS плюс добавили свои расширения. Точнее сказать пока сложно, пока информация о Loongson 3A5000 у них на сайте не выложена.
LoongArch содержит около 2000 проприетарных инструкций

Памятуя о склонности азиатских товарищей пихать во все свои железки (ну или по крайней мере доступные для экспорта) бэкдорчик-другой, нельзя не спросить — автоматическая отправка интересной информации на серверы любимой КПК из коробки есть?
Памятуя о склонности азиатских товарищей пихать во все свои железки

Я бы больше беспокоился о наличии фонарика и fm-приемника.
Я бы больше беспокоился о наличии фонарика и fm-приемника.

Спорим, за эти деньги там будет поддержка эфирного телевидения?
Памятуя о склонности азиатских товарищей пихать во все свои железки (ну или по крайней мере доступные для экспорта) бэкдорчик-другой,

Посколько, все пытаются сделать «бэкдорчик-другой», так что отправка будет через «бэкдорчик-другой» от Cisco\Intel и т.д. :)))
Не то чтобы трудно. Я бы сказал, что это очень трудоёмко и кто-то должен оплатить все эти работы.

Можно вкладывать в поиск и защиту «бэкдорчика» от западного производителя, а можно просто избавиться от оборудования с «бэкдорами». Двойная выгода — и противнику сложнее будет вломиться и свои кормить выгоднее.
Посколько, все пытаются сделать «бэкдорчик-другой», так что отправка будет через «бэкдорчик-другой» от Cisco\Intel и т.д. :)))

Ну, Циско/Интел хотя бы не ставят во главу угла полнейшее наплевательство на интеллектуальные права, промышленный шпионаж и махровый протекционизм рука об руку с национализацией абсолютно всего крупного бизнеса.

Всегда смеюсь, когда говорят, что «в Китае, конечно, тоталитаризм — но зато коррупции нет». А зачем ей, собственно, быть, когда обогащение происходит совершенно официально и прозрачно? Работай, пожалуйста, зарабатывай деньги, развивай компанию — просто налоги плати, сотрудничай, когда попросят (ЯВПОЧЯ) и молча следуй курсу партии, а иначе ёк.
Не совсем про процессоры — но вот всегда удивляли заявления про «коррупции нет» в сочетании с заявлениями «за вчерашний день, расстреляно 143 коррупционера». Не совсем понятно, в какой именно момент их нет )
НЛО прилетело и опубликовало эту надпись здесь

Не Шрёдингера, а Дирака. Отрицательное число коррупционеров

Мнимое число коррупционеров — их вроде бы нет, но если надо кого-то показательно наказать, тут же можно накопать несколько с помощью нехитрой алгебры.

Есть перед расстрелом, нет после. Что непонятного?
Ну, Циско/Интел хотя бы не ставят во главу угла полнейшее наплевательство на интеллектуальные права, промышленный шпионаж и махровый протекционизм рука об руку с национализацией абсолютно всего крупного бизнеса.

Давайте не будем валить в кучу политику компании, политику государства. Все таки немного разные «уровни». Частная компания не занимается национализацией — это работа государства. И многие государства такие механизмы используют.
временная национализация
Власти Германии не исключают временной национализации важных для государства компаний, если те будут испытывать трудности в связи с распространением коронавирусной инфекции COVID-19. Об этом в интервью Der Spiegel заявил министр экономики и энергетики ФРГ Петер Альтмайер.

Власти Франции не исключили национализации наиболее пострадавших в результате кризиса предприятий, если другие меры поддержки не сработают. Об этом заявил министр финансов республики Бруно Ле Мэр, сообщает Financial Times.

Франция стала уже второй в Европе страной, после Германии, в которой заговорили о такой возможности. При этом в Берлине сразу же уточнили, что рассматривают эту меру как временную.

Насчет промышленного шпионажа — не знаю, но как насчет интеллектуальной собственности?
Суд обязал Cisco выплатить $1,9 млрд за нарушение патентов
Бэкдоры — это скорее государственный уровень Cisco CEO Chambers Asks Obama to Curb NSA Surveillance
Протекционизм — как раз государственная политика. Китай лишают чипов — китай делает свои чипы. Впихивают OS, которая делает черти что внутри себя и при необходимости «превращается в тыкву»? Китай делает и использует свои OS.
Злой Huawei занимается прослушкой ?
Стало известно о том, что китайская телекоммуникационная компания Huawei в прошлом имела доступ к мобильной сети нидерландского оператора связи KPN Mobile и могла прослушивать разговоры абонентов. Об этом пишет издание De Volkskrant со ссылкой на данные секретного отчёта за 2010 год.

Источник говорит о том, что у Huawei была возможность прослушки разговоров всех абонентов оператора связи, включая тогдашнего премьер-министра Нидерландов, других высокопоставленных чиновников и китайских диссидентов, находящихся на территории страны. Кроме того, у Huawei была информация о том, какие номера телефонов прослушиваются голландской полицией и спецслужбами.

Согласно имеющимся данным, компания KPN использовала технологии Huawei в 2009 году. В том же году поставщик услуг связи обратился в консалтинговую компанию Capgemini с просьбой проанализировать любые риски, связанные с китайским телекоммуникационным гигантом. Полученные в результате расследования выводы оказались настолько тревожными, что отчёт специалистов был засекречен.


Просто взяли лучшие практики их коллег :
В четверг на пресс-конференции представителей правительства выяснилось, что с весны 2004 года прослушивались около 100 номеров мобильной связи руководителей страны.
03.02.2006 00:45:00
Крупный политический скандал обсуждает вся Греция. В четверг на пресс-конференции представителей правительства выяснилось, что с весны 2004 года прослушивались около 100 номеров мобильной связи руководителей страны. В списке владельцев этих телефонов кроме премьер-министра оказались 4 министра (Обороны, Общественного порядка, Иностранных дел и Юстиции), один замминистра, мэр Афин.
Также в списке известные деятели антиглобалистских, левых и антиамериканских организаций, некоторые представители арабского сообщества, проживающие в Афинах, включая и корреспондентов «Альджазиры» и ливанского СМИ.
Анализируя список, эксперты обнаружили, что это были люди, отвечающие за охрану Олимпиады, за военные заказы Греции, за важные политические решения. Кроме того, в нем оказались и те, кто руководил акциями антиглобалистов и другими антиамериканскими выступлениями.
Многие уверены, что все это было организовано иностранной спецслужбой не в результате взлома информационной системы оператора связи, а при поддержке кого-то из сотрудников компании Vodafone, которая является греческим филиалом международной телекоммуникационной корпорации.


Немецкая прокуратура расследует дело о незаконном прослушивании телефонов сотрудников компании и журналистов
Одна из крупнейших европейских телекоммуникационных компаний, Deutsche Telekom (DT) оказалась в центре нового скандала. Немецкая прокуратура расследует дело о незаконном прослушивании телефонов сотрудников компании и журналистов. Доказаны нарушения, совершенные в 2005-2006 годах, однако не исключено, что компания прослушивала телефоны и раньше, примерно с 2000 года.

Все делают «это» — дело то житейское. Просто кого-то ловят раньше, кого-то позже. :)
Каждый защищается как умеет. Китайцы пошли по пути «мы попробуем сами»
Давайте не будем валить в кучу политику компании, политику государства. Все таки немного разные «уровни».

Я бы с удовольствием не валил, но, как показывает практика — Китай с вами не согласен, там не существует никаких «политик компаний». А значит — и рассматривать действия компаний в отрыве от государственной политики бессмысленно.

Если условный Эйпл или Гугл могут себе позволить отказать ФБР во взломе айфона в соответствии с законодательной базой — и после этого владельцы компаний не пропадают на пару месяцев, а потом возвращаются с уже висящим на них уголовным делом, то в Китае подобные факты неповиновения в принципе не рассматриваются. Даже критиковать нельзя.
Я бы с удовольствием не валил, но, как показывает практика — Китай с вами не согласен, там не существует никаких «политик компаний». А значит — и рассматривать действия компаний в отрыве от государственной политики бессмысленно.

Есть Государство со своими политиками-целями и законами для их реализации.
Если в США условно компании «сделали» Государство и позволяют себе применять «бан» для действующего Президента, то почему нельзя Китаю «сделать» компании и при необходимости «банить» компании?
Если США для экспансии Компании применяет Государство, то почему Китаю для экспансии государства нельзя применять Компанию или наоборот? Вы не найдете четкой границы «государство-компания» ни в одной стране мира.
«Что хорошо для Дженерал Моторс, то хорошо для Америки». Почему Китай не может принять такую-же стратегию относительно Huawei и т.д.?
Внешне эти цели и стратегии одинаковые — меньше зависимость и уязвимость от конкурента, при одновременном навязывании контроля и зависимости конкуренту.
Цели у Государств одинаковые, при разных внутренних механизмах и стратегиях.
Пока «китайская» модель себя вполне успешно показывает, «американская» тоже не собирается сдаваться. Или вы хотите что бы везде была одна модель развития? Так до Мирового Правительства еще очень далеко.
Китайская компания Loongson Technology разработала с нуля новую процессорную архитектуру

Чтобы разработать с нуля новую архитектуру после работы с десяток+ лет с MIPS — нужно уволить весь R&D и взять людей, ничего о MIPS не знающих.

Либо не делать заголовок «жёлтым» ;)
Вот что сами китайцы пишут:
Loongson Zhongke придает большое значение работе с интеллектуальной собственностью, связанной с архитектурой Loongson, и поручило известному отечественному независимому агентству по оценке интеллектуальной собственности провести углубленную и детальную оценку интеллектуальной собственности в инфраструктуре Loongson.
Начиная со второго квартала 2020 года обе стороны привлекли сотни людей для проведения углубленного сравнения и анализа LoongArch и ALPHA, ARM, MIPS, POWER, RISC-V, X86 и других основных международных систем управления и десятков тысяч патентов.
В январе 2021 года для оцениваемой версии инфраструктуры оценочное агентство считает, что:
1) LoongArch независимо разработала дизайн системы инструкций, формат инструкций, кодировку инструкций, режим адресации и т.д.
2) Руководство по системе инструкций LoongArch, очевидно, отличается от вышеупомянутых основных международных систем с точки зрения структуры глав, структуры описания инструкций и выражения содержания инструкций.
3) Не было обнаружено риска нарушения инфраструктуры LoongArch китайских патентов вышеупомянутых основных международных систем управления.

Правда не понятно, какая компания делала аудит, но ключевое для ни — это п.3
Думаю, что аудит делал тот же тип компании, который ранее подтвердил, например, разработку китайского вооружения с нуля и отсутствие совпадения с советским вооружением, начиная с 1950х, в диапазоне от пушек и до авианосцев ;) Или автомобилей с японскими или немецкими;)
Так это MIPS или не MIPS?
если сравнить ISA ARM v9 и ARM v4 то очень трудно сравнивается, но это все же ARM.
а вот если v4 у одной компании, а v9 уже у другой, то поди разберись какими буквами это назвать.
Ладно, дай бог в открытом доступе появиться описание этой китайской ISA, тогда и прикинем что к чему подходит, и на что походит.
Так, а зачем, если RISC-V полностью «свободный»?
Китайцы не любят полностью свободное.
Дай им волю, всё закроют под свои права. Тот же Huawei/Honor не даёт разблокировать загрузчики на Android, хотя казалось бы, это для Android очень важно.
Начали разработку до распространения RISC-V. КПК платит за оформленные патенты и лицензии.
RISC-V, как и этот LoongArch, можно назвать разновидностями MIPS. Основное отличие — освобождение от интеллектуальной собственности MIPS. Вроде как MIPS уже владеют китайцы. Но MIPS уже не нужен особо — есть RISC-V, на который перейдут все кому надо, кроме США.
Компания HSMC разорилась. Статья — для жёлтой прессы.

Wuhan Hongxin Semiconductor Manufacturing Co (HSMC)


Помнится недели 2-3 назад писали что эта компания банкрот и полная подстава, а управляет ей чуть ли не школьник. Кого там она теперь ищет, квалифицированных инженеров?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий