ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
736214 Топик полностью
Ксения (14.02.2017 06:15 - 06:20, просмотров: 955) ответил Evgeny_CD на Спасибо! Еще про ECC рядом с DDR контроллером тоже интересно.
Специально для вас (раз уж вы проявляете к этому живой интерес) популярно поясню ситуацию с разными AVX-ами, т.к. статьи написаны так, что в пору запутаться в терминологии: Прежде всего главное - у Intel-процессоров AVX128 никогда не было! Т.е. у Intel'а AVX (без циферки!) сразу родился 256-разрядным! Тем не менее, он допускает операции как с 256-разрядными ymm-регистрами, так и с их младшими половинками - 128-разрядными xmm-регистрами. Тем самым, он оказался способным с успехом заменить большинство SSE2-SSE4 инструкций, которые прежде работали с этими же 128-разрядными xmm-регистрами. И ныне рекомендуется (с чем я совершенно согласна) забыть про SSE2-SSE4, как дурной сон, если есть возможность использовать AVХ. О причине этой рекомендации я сейчас распространяться не стану, чтобы не загромождать объяснение второстепенными подробностями. Следующий по счету - AVX2 (на этот раз с циферкой), это все тот же 256-разрядный AVX (!), к которому добавили целочисленные операции и какую-то еще непонятую муть, но самое главное, что именно здесь появились инструкции FMA3, в которых умножение совмещено с накоплением произведений. Строго говоря, отождествлять AVX2 и FMA3 не положено - самоидентификация процессора по команде CPUID имеет для них раздельные битовые флаги, но я глубоко в отличиях не разбиралась, а просто считаю, что AVX2=AVX+FMA3 :), т.к. целочисленной арифметикой на этих регистрах не пользуюсь. Будущий AVX-512 (иногда его называют AVX3), является очередным расширением FPU-регистров до 512-ти бит, получивших имя zmm. Сильно радует, что мнемоника у AVX128/256/512 одна и та же. И если редких команд не использовать, то на ассемблере все команды выглядят совершенно одинаково, с той лишь разницей, что в аргументах используют разные регистры (xmm, ymm или zmm) - и только от этого зависит то, к какому AVX'у будет относиться команда. Причем смешивать аргументы разного типа в одной команде нельзя, и это понятно почему - они относятся к разным поколениям AVX'ов. Отсюда у меня и такой энтузиазм в ожидании AVX-512, т.к. его даже осваивать не надо - заменяешь в командах регистры ymm на вдвое более длинные zmm, и дело в шляпе. Причем у них даже бинарная кодировка отличается лишь в одном бите префикса, т.е. там хватило бы еще битов не только на 1024-разрядные регистры, но и на 2048- и 4096-разрядные. Проблема лишь в том, что буква z в алфавите последняя. Надо было им регистры не с буквы "x" обзывать, а с буквы "a", тогда бы букв им хватило надолго. А теперь возникает путаница с AVX, который произвела AMD, и который является 128-разрядным. Хорошо хоть, когда его называют AVX128, а то и запутаться не мудрено. Тот ZEN/Ryzen, который только что народился, формально обрел 256-разрядные команды, которые его создатели называют AVX256, однако на физическом уровне это фикция - старшие и младшие половинки ymm-регистров обслуживаются по очереди. Причем, полноценный AVX256 обещают в течение 4-х лет, когда появится ZEN+. На мой взгляд, это совершенно недопустимое отставание, т.к. я свой процессор 2-го поколения Sandy Bridge (тогда как в этом году обещают уже 8-ое - Cafe Lake) купила еще в 2012-году, ровно через год после его выпуска, когда он подешевел в связи с выпуском процессоров следующего 3-го поколения. И он благополучно пролежал у меня в коробке 3 года, пока мой любимый Pentium-4 не сгорел. Так вот на нем уже был AVX с 256 разрядами (!), хотя FMA3 еще не было. И вот теперь Intel обещает к концу этого года Cannon Lake (то самое 8-ое поколение по технологии 10 нм), для которого обещано наличие AVX-512. Хотя есть серьезные опасения, что младшие модели (Core i3 и i5) и мобильные модели AVX-512 не получат. Причем с выпуском десктопных моделей они спешить не хотят - перенесут их выпуск на 2018-ый год, и хорошо, если не на самый конец.