September 29th, 2013

Yuri Panchul 1994

(no subject)

Еду на поезде по мосту через реку Сакраменто. На горизонте - местные крейсеры Авроры - несколько десятков  старых военных кораблей

 

Не этими ли кораблями воевали с японцами? А вот на заднем плане - древние корабли, а на переднем - куча импортированных из Японии автомобилей. Японцы победили.

 

Запись сделана с помощью приложения LiveJournal для Android.

Yuri Panchul 1994

Архетипичная Калифорния

Перед нами супертипичный калифорнийский пейзаж области Сан-Францисского Залива. На переднем плане - соленые топи. На заднем плане - выгоревшие за лето холмы с рощицами вечнозеленых калифорнийских дубов

 

Запись сделана с помощью приложения LiveJournal для Android.

Yuri Panchul 1994

Что изучать российским призывникам в Научные Роты?

natalya_polyakovaМесяц назад Русская Интеллигенция (фото справа) возмущалась, что я не протестую против заведенных недавно в России "Научных Рот", в частности для программистов. Я же говорил, что это лучше, чем обычная служба в армии и не похоже на "шарашки". А также, что изолированные от компьютерных игр и интернета молодые люди могли бы сосредоточенно выучить какое-нибудь полезное для гражданки ремесло:


Yuri Panchul: Я читал про туполевские шарашки. Но это похоже другое. Туполевская шарашка была все-таки формой тюрьмы, пусть даже с хорошим питанием и творческой работой. А эти "научные роты" - замена обычной службы в армии. От практики такого рода студенту может быть даже польза, если ее правильно организовать.

Yuri Panchul: где я написал, что шарашки - это хорошо? Покажите мне мои слова. Давайте формулировать мысли точно. Шарашки - плохо. Обязательная армия - плохо. Но если обязательная армия в России присутствует и с этим фактом ничего нельзя сделать, то есть три выхода: 1) заплакать; 2) попросить Обаму оккупировать Россию; 3) попытаться каким-либо образом компенсировать недостатки ситуации и/или по возможности извлечь из нее пользу для ее участников. Вариант (1) ни к чему не ведет. Вариант (2) не одобрит Конгресс. Остается вариант (3). Или я чего-то пропустил?


Сегодня я решил написать пост, какого рода материал могли бы изучать призывники "Научных Рот", чтобы получить от него пользу для Шойгу, призывников и западных компаний. В негативе останется только русская интеллигенция, но они стерпят, ибо были в меланхолии еще со времен "Курсистки" Ярощенко.

Пример занятия Научной Роты в области программирования микроконтроллеров

Майор Строгов: Рота! Равняйсь! Смирно! ... Товарищи призывники, сегодня мы проведем учения по оптимизации производительности микроконтроллеров вероятностного противника PIC32MX320128H. ... Призывник Иванов!

Призывник Иванов: Я!

Майор Строгов: Объявите цель сегодняшних маневров.

Призывник Иванов: Согласно сведениям нашей разведки, вероятностный противник поставляет изделие PIC32MX320128H с конфигурацией для наиболее консервативного сценария использования, в обстановке критических боевых температур и с минимумом включенных устройств. С помощью компиляторных оптимизаций и простой манипуляции содержимых контрольных регистров кэша и префетчера можно повысить скоростре... то бишь производительность изделия для некоторых приложений более чем в 20 раз.

Майор Строгов: Отлично. Призывник Петров!

Призывник Петров: Я!

Майор Строгов: Вас призвали из МИФИ?

Призывник Петров: Так точно!

Майор Строгов: Вот и отлично. Зачитайте объяснение о функционировании кэша из методички профессора Московского Инженерно-Физического Института И.И.Шагурина.

Призывник Петров: Есть!

Collapse )

Майор Строгов: Вольно, садись. Но, как вам известно, товарищи призывники, текст товарища Шагурина относится к отечественному изделию 1890ВМ2Т, которое с середины 1980-х используется для оперативно-тактических комплексов, авиационных и других объектов. А сегодня мы изучем что, призывник Сидоров?

Призывник Сидоров: Я! Микроконтроллер вероятностного противника PIC32MX320128H. Разрешите доложить?

Майор Строгов: Докладывайте.

Призывник Сидоров: Кэш, описанный в методичке профессора Шагурина - это двухканальный множественно-ассоциативный кэш (на языке вероятностного противника two-way set associative cache), предназначенный для ускорения работы с медленной оперативной памятью. Изделие 1890ВМ2Т содержит два таких кэша размером по 8 Кбайт, один для работы с памятью программ, другой для работы с памятью данных. Эти похожи на двухканальные множественно-ассоциативные кэши изделия вероятностного противника семейства PIC32MZ, но не PIC32MX320128H.

Майор Строгов: Правильное замечание. А что из себя представляет кэш PIC32MX, мы попросим рассказать Сунь Ли, призывницу по студенческому обмену из Китайской Народной Республики.

Призывница по студенческому обмену из Китайской Народной Республики Сунь Ли: Есть, майор Строгов! Кэш PIC32MX320128H представляет собой небольшой полностью ассоциативный кэш (на языке вероятностного противника fully associative cache), предназначенный для ускорения работы с флэш-памятью. Так как полностью ассоциативный кэш - дорогое удовольствие в смысле хардверных ресурсов, то он имеет небольшой размер - всего 16 линий по 4 32-битных слова. Кэш скомбинирован с префетчером, который механически подгружает в специальный буфер линию из слов, следущую по адресам программы за текущей.

Майор Строгов: Зачем это нужно? Почему вероятностный противник не поставил в микроконтроллер флэш-память, работающую с тактовой частотой процессора?


Призывница Сунь Ли: Инженерное дело - искусство компромисса. Быстрая флэш память потребляет много электроэнергии. Вы же не хотите, чтобы у вас в полевых условиях закончилась батарейка? Что тогда подумает о вас противник?

Майор Строгов: Это верно, призывница Сунь Ли. Есть ли у кого вопросы, дополнения?

Призывник Щаранский: Разрешите доложить!

Майор Строгов: Докладывайте.




Collapse )


Майор Строгов: Рота! Равняйсь! Смирно! ... Продолжим наши занятия. Призывник Радуллов!

Призывник Радуллов: Я!

Майор Строгов: Хм, интересная фамилия. А зовут тебя как?

Призывник Радуллов: Осмелюсь доложить, Абдулла!

Майор Строгов: Абдулла Радуллов. А кто у тебя маменька?

Collapse )

pushkin
Майор Строгов: А кто знает, Пушкин?

Призывник Пушкин: Я!

Майор Строгов: Призывник Пушкин, объясните призывнику Радуллову про линии данных в кэше PIC32MX.

Призывник Пушкин: Есть!

Призывник Пушкин: Программист может контролировать кэш изделия PIC32MX320128H с помощью нескольких контрольных регистров. Поле DCSZ регистра CHECON позволяет выделить одну, две или четыре линии кэша для данных:
    CHECONbits.DCSZ = 3;  // Выделить 4 линии кэша для данных
    CHECONbits.DCSZ = 2;  // Выделить 2 линии кэша для данных
    CHECONbits.DCSZ = 1;  // Выделить 1 линию кэша для данных
    CHECONbits.DCSZ = 0;  // Запретить кэширование данных флэша


Collapse )


Майор Строгов: Хорошо, садитесь. ... Призывник Лермонтов!

Призывник Лермонтов: Я!

Майор Строгов: Вы можете наглядно продемонстрировать линии кода, находящиеся в кэше?

Призывник Лермонтов: Так точно! Возьмем нашу программу с циклом и посмотрим на листинг ее компиляции c ассемблерными инструкциями и словами команд:

39:                  int program_in_flash_data_in_flash__loop (void)
9D000030  24E50040   ADDIU A1, A3, 64
40:                  {
41:                      const volatile int * a = array_in_flash;
42:                  
43:                      int i, k, n = 0;
9D000024  00001021   ADDU V0, ZERO, ZERO
44:                  
45:                      for (k = 0; k < times_to_repeat; k ++)
9D000020  00003021   ADDU A2, ZERO, ZERO
9D000028  3C079D00   LUI A3, -25344
9D00002C  24E73884   ADDIU A3, A3, 14468
9D000034  0B400016   J 0x9D000058
9D000038  240803E8   ADDIU T0, ZERO, 1000
9D00004C  24C60001   ADDIU A2, A2, 1
9D000050  10C80003   BEQ A2, T0, 0x9D000060
9D000054  00000000   NOP
9D000058  0B40000F   J 0x9D00003C
9D00005C  00E01821   ADDU V1, A3, ZERO
46:                      {
47:                          for (i = 0; i < n_array_elements; i ++)
9D000044  1465FFFD   BNE V1, A1, 0x9D00003C
9D000048  00441021   ADDU V0, V0, A0
48:                              n += a [i];
9D00003C  8C640000   LW A0, 0(V1)
9D000040  24630004   ADDIU V1, V1, 4
49:                      }
50:                  
51:                      return n;
52:                  }
9D000060  03E00008   JR RA
9D000064  00000000   NOP


Майор Строгов: И что?

Collapse )


Майор Строгов: Призывник Тургенев!

Призывник Тургенев: Ммммм.....

Майор Строгов: Вы в порядке? Что с вами?


Призывник Маяковский: Разрешите доложить! Призывник Тургенев - немой!

Майор Строгов: Хм, это не помешает ему проходить службу в нашей роте. ... Хотя я честно говоря не знал, что в нашей армии могут служить люди с особенностями этого типа.

Призывник Маяковский: Это все вероятностный противник! Наш президент встретил ихнего президента в Санкт-Петербурге, и они заключили сделку: мы вводим политкорректность и reasonable accommodations в нашей армии, а они ослабляют экспортный контроль!

Майор Строгов: Надо же! Иногда меня приятно удивляет государственная мудрость нашего политического руководства! Что ж, призывник Тургенев и этот джентлемен справа...

Призывник Маяковский: Это призывник Безруков!

Майор Строгов: Да, призывники Тургенев и Безруков - выходите к доске, Тургенев будет рисовать диаграммы, а Безруков их объяснять. Объясните вот эту диаграмму.

Collapse )

olshansky_931182_586072238080265_1788933928_n

Майор Строгов: Спасибо, призывник Безруков! Можете садится. Теперь призывнику Тургеневу поможет призывник Ольшанский.

Призывник Ольшанский: Я протестую! Я не призывник! Меня случайно схватили на улице и забрали в армию, когда я шел к инвестору искать деньги на издание своего литературного журнала! Я против армии для себя и тем более этих "научных рот"! Я получал в школе колы по математике и только по Русской Речи был отличником! И России "научные роты" не нужны!

Майор Строгов: Призывник Ольшанский, вы хотите, чтобы наша Родина Россия экспортировала на мировой рынок только нефть и женщин?

Призывник Ольшанский: Нет, не только! Еще художественную литературу! Мы будем экспортировать Русскую Художественную Литературу! Мои эротические рассказы например! И журнал "Русская Жизнь" про нацию, которая их читает!

Майор Строгов: Понятно. Сейчас мы вас перевоспитаем. Призывник Ольшанский! Ровняйсь! Смирно! Вольно! Разъясните вот эту диаграмму:



Призывник Ольшанский, надрывно: Вынужден повиноваться, наступить на горло моей внутренней Толоконниковой!

Призывник Ольшанский, после паузы, разглядывая диаграмму: Ой, я по-моему понимаю! Мы сравниваем две функции, которые находятся в флэш-памяти и работают с данными во флэш-памяти. Одна функция имплементирована с помощью компактного цикла, а другая - с помощью длинной последовательности инструкций без условного перехода.

Сначала цикл медленнее простой последовательности из-за дополнительной инструкции перехода.

Потом мы видим, что префетч дает относительно лучший эффект на последовательности, так как он всегда "смотрит" вперед, а в цикле часто происходит переход назад.

А вот кэш дает гораздо бОльший эффект на компактный цикл, который помещается в кэш полностью.

На меня нашло просветление! Я понял Дао префетч кэша устройства PIC32MX320128H! Я должен бежать домой, устроить костер из этих бессмысленных Набоковых и Гумилевых, чтобы они не мешали моему развитию!

Майор Строгов: Только не надо экстремизма! Я рад, призывник Ольшанский, что вы все поняли!

Майор Строгов: Товарищи призывники! Ровняйсь! Смирно! Объявляю всем благодарность!

Призывники, хором: Служу России!

Майор Строгов: Вольно! Разойдись! ... Сегодня на обед будут свиные ребра, прямо как у вероятностного противника в Аризоне.

Collapse )

Кто из персонажей повествования вам больше всего понравился?

Майор Строгов
6(15.8%)
Призывник Иванов
0(0.0%)
Призывник Петров
0(0.0%)
Призывник Сидоров
0(0.0%)
Призывник Щаранский
0(0.0%)
Призывница по студенческому обмену из Китайской Народной Республики Сунь Ли
15(39.5%)
Призывник Абдулла Радуллов
4(10.5%)
Призывник Пушкин
0(0.0%)
Призывник Лермонтов
0(0.0%)
Призывник Островский
0(0.0%)
Призывник Тургенев
0(0.0%)
Призывник Маяковский
2(5.3%)
Призывник Безруков
1(2.6%)
Призывник Ольшанский
2(5.3%)
Из-за бугра плюете?
8(21.1%)