Комментарии 36
>> "четыре четырехбитных канала памяти DDR4-3200" ??? Там ещё много такого :-)
Похоже, входит в добрую традицию не только гнать гуглопереводы под видом статей, но и не читать их перед публикацией.
Мдааа, а я вот слышал в 2009 году из первых уст, как продажники в MIPS Technologies уламывали Loongson купить официальную архитектурную лицензию (о разнице архитектурной лицензии и лицензии на ядра у меня есть хабрапост https://habr.com/ru/post/664740/ ). Это была эпопея, потому что Loongson в то время архитектурно был MIPS64 с небольшими модификациями (кстати у меня в гараже лежат три компьютера с Loongson-ом, одним из которых я пользовался полтора года как главным домашним компьютером). Но микроархитектурно (то есть по устройству конвейера и коду на Verilog-е) это была их собственная разработка.
Так вот. Сначала люди в Loonson-е говорили, что они ничего не знают и вообще, но потом они решили высунуться из КНР и произвести чип на фабе ST Microelectronics по-моему в Малайзии, и ST сказали им: а давайте ка вы утрясете ваши разногласия с MIPS, а то внутри Китая вас никто не засудит, а вот вне Китая они будут судить ваших партнеров.
Поэтому Loonson (ICT) и китайское правительство подумали и купили архитектурные лицензии. Но эта была только одна серия из длинного сериала.
Интересно, насколько их нынешняя "уникальная архитектура, не имеющая ничего общего с Arm, MIPS, x86, Risc-v" далеко ушла от своих MIPS корней? Сдаётся мне, лукавят тут китайцы, тем более что возникает вопрос с обратной совместимостью . Вряд ли их нынешние клиенты будут в восторге от того, что им надо будет весь софт переносить заново. Ну если эти клиенты есть, конечно )
Их поддержка вроде в LLVM есть. Если интересно, можно код почитать.
Часть спецификации выложена в открытом виде
https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
Почитал Ваш хабропост и возник вопрос. У вас написано: " Продавец архитектурной лицензии заботится, что процессор покупателя будет действительно соответствовать архитектуре (системе команд)". Получается, что покупка лицензии была чистой формальностью(только деньги) ? Ведь Loonson формально и реально уже непонятно какой MIPS.
Там же вторая часть и есть ответ на данный вопрос: "Сначала люди в Loonson-е говорили, что они ничего не знают и вообще, но потом они решили высунуться из КНР и произвести чип на фабе ST Microelectronics по-моему в Малайзии, и ST сказали им: а давайте ка вы утрясете ваши разногласия с MIPS, а то внутри Китая вас никто не засудит, а вот вне Китая они будут судить ваших партнеров "
Это была почти формальность, но не 100% в то время (в районе 2010 года). Во-первых тогдашний Loongson был очень близок к MIPS (кучу всяких дополнительных инструкций они наплодили потом). MIPS еще передавал им набор тестов для проверки архитектурной совместимости, но я не уверен в какой степени китайцы из Loonson эти тесты использовали.
Кроме это, лицензирование было выгодно с маркетинговой стороны и для Loongson, и для MIPS. Для Loonson это улучшало их легитимность для определенных рынков (гарантия совместимости всякого линуксного софтвера), а для MIPS, помимо денег, это был еще и сигнал другим нарушителям архитектурых лицензий (китайскому Ingenic, российскому НПЦ ЭЛВИС и российскому НИИСИ (Комдив-64)), что если те захотят поговорить с MIPS, то их не съедят и с воплями в суды не потащат, а будут о чем-то договариваться.
Еще один вопрос по поводу отслеживания нарушений лицензии. Если кто-то, например, самостоятельно разработал процессор с ARM ISA и сделал на основе своего решения законченное изделие, в котором никак не рекламируется ARM (пишется просто RISC :) ) и не требуется никакого перепрограммирования встроенного процессора, то как отслеживается такое нарушение?
то как отслеживается такое нарушение?Тяжело ли инженерам на TSMC понять «что там используется ARM», если в заказе от разработчиков написано «разместите столько то ядер ARM на...»?
"разработал процессор с ARM ISA" - значит использовал архитектуру и семейство команд ARM. ISA - это и есть набор команд, регистров и принципы их взаимодействия. Это сразу видно в datasheet на процессор. Без этого документа использование процессора невозможно.
Думаю, каждый патентодержатель ISA имеет в своем штате юротдел, который и занимается анализом всех новинок и дает по ним свое заключение.
Вообще говоря, не обязательно. Это может быть какое-нибудь вспомогательное ядро, использующееся в каком-нибудь акселераторе и исполняющее зашифрованый бинарный блоб. В таком случае вряд ли такое нарушение будет зафиксировано.
Это другой тип лицензии - Юрий выше об этом писал.
Почему другой? ISA чужая, микроархитектура своя.
Потому что вы не продаете СPU на базе этой ISA, а используете её для своих внутренних нужд.
Ну то есть если я проектирую свою снк и использую ее только сам в рамках некоторого продукта, который я продаю, но при этом его экосистема полностью закрыта (скажем, весь пользовательский код исполняется в какой-нибудь виртуальной машине), то мне можно архитектуру не лицензировать?
Если вы незаконно используете чужую интеллектуальную собственность - вы нарушаете закон. Если вы используете ее вышеописанным образом, доказать это будет очень сложно, но не сделает это законным.
ISA не патентуется. Это как с API. Могут патентоваться какие-то конкретные способы реализации, но это уже другой вопрос. Тот же х86 полухардаврно в эльбрус емнип эмулировался.
isa по факту патентуется
Поддержка x86 в Эльбрусе делалась как раз таким образом, чтобы избежать патентныех проблем. Т.е. там используются некоторые команды, которые ведут себя "очень схожим с x86 образом", но по кодировкам никак не связаны с x86
Вы ошибаетесь (точнее путаете теоретические намерения и реальную практику). ISA не просто патентуется, а был известный случай MIPS vs Lexra, описанный в https://www.probell.com/lexra/ Речь шла о патенте на инструкции невыровненного доступа к памяти - Load Word Left / Load Word Right / Store Word Left / Store Word Right - LWL/LWR/SWL/SWR
Ваша ссылка подтверждает сказанное мною.
Though you can not patent an instruction set, you can patent techniques that are necessary to implement a particular unusual instruction that is part of the instruction set.
Ну и то, что правовые суды - это способ богатых/монополий нагибать всех остальных, без относительно законности сего действа, не для кого не секрет, надеюсь. Да даже особо богатым быть не надо, см. пат. троллей.
Да, я с вами совершенно согласен, как и с автором текста, что то, что произошло в том суде - так быть не должно. Но это реально происходит, иначе не было бы оснований для рынка архитектурных лицензий (права на создание архитектурно-совместимого процессора со своей собственной микроархитектурой (структурой конвейера)).
Прежде всего, никакого особого ноу-хау для реализации невыровненных load и store нет - как это делать очевидно любому студенту который вмательно читал учебник Харрис & Харрис или там комбинацию Паттерсона-Хеннесси с учебником по верилогу.
То есть оснований нет - а суд был. Более того, когда Lexra реализацию этих инструкций из процессора убрали, их продолжили судить - уже за то, что они эмулировали эти инструкции в софтвере: когда процессор натыкается на illegal инструкцию, он идет на обработчик exception, смотрит на эту инструкцию и выполняет вместо нее выровненную инструкцию с сдвигом и слиянием по маске.
У MIPS было просто значительно больше денег на суды и они затягивали дело, просто дожидаясь, когда у Lexra закончатся деньги, что и произошло.
Совершенно аналогично ARM при попытках в университетах создавать ARM-совместимые процессоры, высылал им письма от юристов с требованиями немедленно прекратить. Собственно RISC-V (архитектура с бесплатной архитектурной лицензией но платными микроархитектурными реализациями) возник именно как реакция академического и индустриального сообщества на эти акции MIPS и ARM.
Важный момент: патент такого рода истекает через 17 лет, то есть сейчас использовать инструкции LWR, LWL, SWR, SWL из-за чего был весь сыр-бор - совершенно легально, если не нарушать при этом трейдмарку.
С моей точки зрения как инженера, работающего и с ISA, и с микроархитектурной реализацией - ничем не отличается. ISA - это API к микроархитектуре и точка.
Но у юристов есть некая своя неинженерная реальность, в которой они обменимаются друг с другом фразами, которые инженеру кажутся немножко бредом, но которыми они сражаются. Например запатентовать софтвер теоретически нельзя, но можно запатентовать "аппарат, который состоит из компьютера, используемого с софтвером, который делает то-то".
Понять их логику можно только будучи юристом. Я провел несколько месяцев с патентным адвокатом, на которого мои инвесторы потратили более 20 тысяч долларов и я понял, что это просто некая игра с определенными правилами защиты территории: поставить широкий патентный claim (утверждение) чтобы покрыть большую территорию и обставить его мелкими claims, как минами, чтобы юристы противоположной стороны в нем завязли и чтобы им было труднее бороться с широким claim-ом который они без мелких могут просто объявить невалидным (типа это и коню понятно. Ну не коню а "недавнему выпускнику вуза знакомому с state of art то бишь состоянием текущей технической области).
В этом списке ядер процессоров реализаций в рамках FPGA есть и обширный список реализаций MIPS ядер.
На фабрике есть определённый контроль IP. Если вы сами разработали ARM-ядро и всё остальное IP, которое вы использовали, не имеет лицензионных проблем, то по идее фабрика без проблем ваш чип произведёт.
Дальше вопрос в том, когда выяснится, что вы нарушили лицензию. Если ваш чип уйдёт к пользователям и оттуда просочится инфа, что вы использовали нелицензионно ARM isa, к вам придёт юр отдел ARM Ltd., Inc, а ещё он нужным лицам (включая фабы ) разошлёт соответствующее уведомление. После этого вы в рамках юридического поля, до которого дотянется ARM, функционировать как компания не сможете. Как-то так.
Если на чипе конечного изделия можно запускать программки на ассемблере (или на Си с вставками __asm ) , то это не просто, а очень просто. Если чип читает что-то из внешней памяти, просто подсоединить его ножки к памяти с проверочной программкой, которая в эту же память и пишет, перещелкнуть сброс и смотреть как оно извлекает инструкции и что по этому поводу пишет в память. Конечно там много возни (reset sequence, эффекты кэша), но ничего экстраординарного. Если производитель будет все шифровать - тогда сложнее - нужен доступ к внутренним сигналам чипа перед декодированием, там я не уверен что делать.
В ролике только, так сказать, практически винтажный Loongson 2F - это еще тот что был MIPS, одноядерный и очень слабый и старый (ему более 10 лет).
На aliexpress'е несложно и не так дорого прикупить mini-ITX плату на 3A5000 (правда я за магазин не ручаюсь, сам рискнул, но оформил заказ буквально недавно и мне его даже не отправили пока что). Говорят на taobao есть и ноутбуки на нем же и судя по видео - вдвое дороже чем плата выше.
Mips там внутри, это давно не секрет
И снова китайские процессоры: возможности и перспективы 12-нм чипа Loongson 3A6000 на собственной архитектуре