Архитектура (система команд и т. п. вещи) не меняется уже скоро четверть века и называется AMD64. А перечисленные в этом переписывании других источников изменения -- это микроархитектура, т. е. внутреннее устройство процессора.
Почитал вику про этот самый SIMT. Не сказать, чтоб какие-то кардинальные отличия от обычного SIMD были:
The key difference between SIMT and SIMD lanes is that each of the SIMT cores may have a completely different Stack Pointer (and thus perform computations on completely different data sets), whereas SIMD lanes are simply part of an ALU that knows nothing about memory per se.
Такое, в общем-то, и на обычном SIMD сделать можно, если подготовить данные должным образом.
Ага, но позже. Ну а я вообще люблю придираться к терминологии и т.п. -- а то иногда пишут уж очень вольно (до такой степени, что перестаёшь понимать, о чём речь).
Вообще, в FAT содержатся не номера секторов, а номера кластеров, и не в формате LBA, поскольку последний относится к адресации секторов на диске, а не кластеров на томе FAT.
Ну, я начал работать с компами с 13 лет, английский реально не знал (обычная советская школа с весьма посредственным, скажем так, уровнем преподавания). Но это абсолютно никак не мешало мне (и не только мне) освоить на Агате сначала Бейсик, а затем Ассемблер. Робик с Рапирой даже не пробовали смотреть -- интереса никакого они для нас не представляли. А через пару лет, когда уже я вёл кружок в нашей же школе для 5-6-классников (половина из которых была "немцами" -- это сейчас английский обязательный, но не в 1980-х), они тоже без проблем всё усваивали. Знание английского для того, чтобы выучить десяток-другой команд, НЕ ТРЕБУЕТСЯ от слова совсем. Ну а кто на такое не способен -- тому нечего делать не только в плане компьютеров, но и вообще в чём угодно, где требуется хотя бы капля мозгов.
Ну, настоящей виртуализации (не программной эмуляции чужой системы команд) без железной поддержки на IA-32 быть не может из-за наличия команд, которые являются непривилегированными, но работают с системной информацией (считывают содержимое каких-то системных регистров, если склероз не изменяет). Соответственно, либо делать неполноценную "обычную" виртуализацию, которая работать будет лишь в случае, если гостевая ОС эти команды никогда не использует (а соответственно, не требуется их перехватывать и эмулировать средствами гипервизора), либо как-то разбираться с машинным кодом гостевой системы перед его выполнением, обнаруживать такие команды, заменять их чем-то, вызывающим прерывание... Ну, думаю, Вы поняли. Оба подхода не дают 100% надёжности работы, а второй, к тому же, очень сложен и временами вызывает сильные тормоза. Ну а как делали эти самые VMware/Connectix -- понятия не имею, честно говоря.
Ну, для СССР вполне себе супер была, выдавая 200 или сколько там млн. оп/с -- как раз за счёт параллелизма. Плюс, она была достаточно мобильной, в отличие от типичных высокопроизводительных машин что у нас, что у них, которые были чисто стационарными.
TLB имелся во всех IBMовских мэйнфреймах с виртуальной памятью -- т.е. почти во всех машинах Системы 370, появившейся в 1970-м. Насчёт SIMT не понял, если честно. Если речь о SIMD, то в СССР в самом начале 1980-х уже была супер-ЭВМ ПС-2000, которая, по сути, SIMD. В Штатах первый Cray появился в 1975-м
Одно другому не мешает. Техническое совершенство побеждает очень редко, поскольку пользователю, вообще говоря, плевать, что там под капотом.
А архитекторы в Интел -- именно что идиоты. Полные и абсолютные. Совместимость, кстати, придумали не они. Первыми пообещали совместимость в IBM -- в 1964 году, и своё обещание блюдут до сих пор. Можете взять прикладную программу, написанную в середине 1960-х для мэйнфрейма Системы 360, и благополучно запустить её на современном мэйнфрейме z/Architecture.
DEC тоже порядка 20 лет блюла совместимость в своей линейке PDP-11, и погубила её не красивая архитектура (настолько удачная, что к концу 1970-х она стала, пожалуй, самой распространённой архитектурой в мире), а полные и абсолютные идиоты в руководстве компании. Вместо того, чтобы превратить чрезвычайно удачную мини-машину в хорошую персоналку, для чего в 1980-е уже были технические возможности (даже мы в начале 1980-х смогли запустить в производство свои собственные микропроцессоры с этой системой команд -- сначала К1801ВМ1, потом ВМ2 и ВМ3), по всем статьям превосходящую ублюдскую IBM PC, они сделали машину, совместимую по системе команд, но специально совершенно несовместимую по периферии, чем исключили возможность использования штатных ОС и всей кучи ПО, уже наработанного за 1970-е и начало 1980-х, да ещё заломили за это поделие деньги как за самолёт. Естественно, с таким подходом оно провалилось. Минимашины продолжали производиться и продаваться ещё какое-то время, но, очевидно, рынку была нужна именно персоналка (ну или мэйнфрейм, но там уже безраздельно доминировала IBM)
Растут длины линий связи, а значит, не только "прямолинейное" время распространения сигнала, но и паразитные индуктивности и ёмкости. Это сильно ограничивает возможность увеличивать геометрические размеры схемы, а начиная с определённого предела потребует лепить размножители (повторители) сигналов и т.п. промежуточную логику, которая тоже вносит свои задержки. В этом плане вычислительные блоки сильно проще: там связи почти всегда локальные, между близко расположенными транзисторами, а число приёмников у каждого источника невелико. Ну, это грубо, конечно, но все эти факторы и ограничивают возможность увеличения объёма кэша без снижения его частоты.
Совершенно прямых в природе не существует и вряд ли существовать может (из-за противоречивости требований). Но намного более прямые, конечно, имеются -- в частности, та же Система 360 и последовавшая за ней Система 370, про виртуализацию на которой здесь говорилось. DECовские PDP-11 (как по мне, лучшая 16-разрядная архитектура в истории), VAX-11 (вероятно, лучшая 32-разрядная система команд -- но системная архитектура, в общем и целом, хуже IBMовских мэйнфреймов), микропроцессорные -- Z8000, 68000, классический ARM... Везде есть свои странности и ограничения, но в целом все они -- весьма стройные архитектуры без серьёзного количества костылей и тем более откровенных уродств. Ну а 8086 -- прямая противоположность; кажется, Интел смогла в нём собрать все грабли, какие только возможно, а потом ещё добавила новых в 80286 и расширила их в 80386.
Ну, на гитхабе нельзя по политическим причинам: мало ли, обрубят нахрен интернет (ну или МС решит позакрывать -- тем более, что могут иметь место формальные нарушения авторских прав и т.п.). Но вообще, правильно было бы, конечно, иметь нормальный форум или нечто в этом роде. Но решать не мне :)
В 64-разрядном режиме, если память не изменяет, строковые операции выпилены.
Архитектура (система команд и т. п. вещи) не меняется уже скоро четверть века и называется AMD64. А перечисленные в этом переписывании других источников изменения -- это микроархитектура, т. е. внутреннее устройство процессора.
Почитал вику про этот самый SIMT. Не сказать, чтоб какие-то кардинальные отличия от обычного SIMD были:
Такое, в общем-то, и на обычном SIMD сделать можно, если подготовить данные должным образом.
Во-первых, надо не читать, надо писать :)
А во-вторых, сравните кодирование команд в PDP-11 и в 8086.
Ну, пока что ничто не мешает использовать хоть Виваду, хоть Квартус с "коммунистической системой лицензирования"...
Ага, но позже. Ну а я вообще люблю придираться к терминологии и т.п. -- а то иногда пишут уж очень вольно (до такой степени, что перестаёшь понимать, о чём речь).
Вообще, в FAT содержатся не номера секторов, а номера кластеров, и не в формате LBA, поскольку последний относится к адресации секторов на диске, а не кластеров на томе FAT.
Отечественные ПЛИС есть, но те, о которых мне известно, являются клонами древних Альтер, ну и, как обычно, их фиг достанешь :)
Ну, я начал работать с компами с 13 лет, английский реально не знал (обычная советская школа с весьма посредственным, скажем так, уровнем преподавания). Но это абсолютно никак не мешало мне (и не только мне) освоить на Агате сначала Бейсик, а затем Ассемблер. Робик с Рапирой даже не пробовали смотреть -- интереса никакого они для нас не представляли. А через пару лет, когда уже я вёл кружок в нашей же школе для 5-6-классников (половина из которых была "немцами" -- это сейчас английский обязательный, но не в 1980-х), они тоже без проблем всё усваивали. Знание английского для того, чтобы выучить десяток-другой команд, НЕ ТРЕБУЕТСЯ от слова совсем. Ну а кто на такое не способен -- тому нечего делать не только в плане компьютеров, но и вообще в чём угодно, где требуется хотя бы капля мозгов.
Ну, настоящей виртуализации (не программной эмуляции чужой системы команд) без железной поддержки на IA-32 быть не может из-за наличия команд, которые являются непривилегированными, но работают с системной информацией (считывают содержимое каких-то системных регистров, если склероз не изменяет). Соответственно, либо делать неполноценную "обычную" виртуализацию, которая работать будет лишь в случае, если гостевая ОС эти команды никогда не использует (а соответственно, не требуется их перехватывать и эмулировать средствами гипервизора), либо как-то разбираться с машинным кодом гостевой системы перед его выполнением, обнаруживать такие команды, заменять их чем-то, вызывающим прерывание... Ну, думаю, Вы поняли. Оба подхода не дают 100% надёжности работы, а второй, к тому же, очень сложен и временами вызывает сильные тормоза. Ну а как делали эти самые VMware/Connectix -- понятия не имею, честно говоря.
Ну, для СССР вполне себе супер была, выдавая 200 или сколько там млн. оп/с -- как раз за счёт параллелизма. Плюс, она была достаточно мобильной, в отличие от типичных высокопроизводительных машин что у нас, что у них, которые были чисто стационарными.
Разговор был о том, что, дескать, Интел всех задоминировала, а значит, её архитектура крута -- а эти вещи вообще никак не связаны.
Это Вы Кобол на русском ещё не видели :) А у меня где-то советский ГОСТ лежит, где Кобол на английском и на русском параллельно.
TLB имелся во всех IBMовских мэйнфреймах с виртуальной памятью -- т.е. почти во всех машинах Системы 370, появившейся в 1970-м. Насчёт SIMT не понял, если честно. Если речь о SIMD, то в СССР в самом начале 1980-х уже была супер-ЭВМ ПС-2000, которая, по сути, SIMD. В Штатах первый Cray появился в 1975-м
Ещё и настоящий конвейер, если память не изменяет, с эффективным временем выполнения простых команд в один такт.
Одно другому не мешает. Техническое совершенство побеждает очень редко, поскольку пользователю, вообще говоря, плевать, что там под капотом.
А архитекторы в Интел -- именно что идиоты. Полные и абсолютные. Совместимость, кстати, придумали не они. Первыми пообещали совместимость в IBM -- в 1964 году, и своё обещание блюдут до сих пор. Можете взять прикладную программу, написанную в середине 1960-х для мэйнфрейма Системы 360, и благополучно запустить её на современном мэйнфрейме z/Architecture.
DEC тоже порядка 20 лет блюла совместимость в своей линейке PDP-11, и погубила её не красивая архитектура (настолько удачная, что к концу 1970-х она стала, пожалуй, самой распространённой архитектурой в мире), а полные и абсолютные идиоты в руководстве компании. Вместо того, чтобы превратить чрезвычайно удачную мини-машину в хорошую персоналку, для чего в 1980-е уже были технические возможности (даже мы в начале 1980-х смогли запустить в производство свои собственные микропроцессоры с этой системой команд -- сначала К1801ВМ1, потом ВМ2 и ВМ3), по всем статьям превосходящую ублюдскую IBM PC, они сделали машину, совместимую по системе команд, но специально совершенно несовместимую по периферии, чем исключили возможность использования штатных ОС и всей кучи ПО, уже наработанного за 1970-е и начало 1980-х, да ещё заломили за это поделие деньги как за самолёт. Естественно, с таким подходом оно провалилось. Минимашины продолжали производиться и продаваться ещё какое-то время, но, очевидно, рынку была нужна именно персоналка (ну или мэйнфрейм, но там уже безраздельно доминировала IBM)
Растут длины линий связи, а значит, не только "прямолинейное" время распространения сигнала, но и паразитные индуктивности и ёмкости. Это сильно ограничивает возможность увеличивать геометрические размеры схемы, а начиная с определённого предела потребует лепить размножители (повторители) сигналов и т.п. промежуточную логику, которая тоже вносит свои задержки. В этом плане вычислительные блоки сильно проще: там связи почти всегда локальные, между близко расположенными транзисторами, а число приёмников у каждого источника невелико. Ну, это грубо, конечно, но все эти факторы и ограничивают возможность увеличения объёма кэша без снижения его частоты.
Совершенно прямых в природе не существует и вряд ли существовать может (из-за противоречивости требований). Но намного более прямые, конечно, имеются -- в частности, та же Система 360 и последовавшая за ней Система 370, про виртуализацию на которой здесь говорилось. DECовские PDP-11 (как по мне, лучшая 16-разрядная архитектура в истории), VAX-11 (вероятно, лучшая 32-разрядная система команд -- но системная архитектура, в общем и целом, хуже IBMовских мэйнфреймов), микропроцессорные -- Z8000, 68000, классический ARM... Везде есть свои странности и ограничения, но в целом все они -- весьма стройные архитектуры без серьёзного количества костылей и тем более откровенных уродств. Ну а 8086 -- прямая противоположность; кажется, Интел смогла в нём собрать все грабли, какие только возможно, а потом ещё добавила новых в 80286 и расширила их в 80386.
Ну, на гитхабе нельзя по политическим причинам: мало ли, обрубят нахрен интернет (ну или МС решит позакрывать -- тем более, что могут иметь место формальные нарушения авторских прав и т.п.). Но вообще, правильно было бы, конечно, иметь нормальный форум или нечто в этом роде. Но решать не мне :)
Если есть дока -- почему б не справиться? Вот если ничего нет, тады проблематично, конечно :)