Pull to refresh
0
0
Евгений Романов @solus_rex

User

Send message

Автор,нестыковочка: Архитектура IBM System/360 - в Штатах появилась в середине 60-х, в СССР - архитектурный клон ЕС ЭВМ в начале 70-х (школу заканчивал). НЦ - это конец 70-х, институт заканчивал, была одна такая на кафедре. Но тогда уже вовсю цвели СМ-4/Электроника-60 - клоны PDP-11. У НЦ была оригинальная система команд, но софт мизерный

"Однако оригинальная архитектура «Электроника НЦ» не получила большого распространения. Впоследствии советская промышленность сделала ставку на единую серию ЕС ЭВМ. За основу взяли стандартную архитектуру IBM System/360"

Сама себя переписывает в предыдущее слово - единственный в мире? вариант программы, исполняемый с декрементом счетчика команд !!!!!!

Насколько я помню, в системе команд PDP-11 (не PDP-8, про PDP-7 не знаю) операции типа *p++ для указателя можно скомпилировать в ОДНУ команду с косвенной автоинкрементной регистровой адресацией (если адрес-указатель в регистре, естественно).

статья полезная, но слишком много метафор и эмоций — для большинства, кроме совсем уж дилетантов, «оно не надо»
Проверял на двумерных массивах на Java и на С++, а также на одномерных, с искусственно реализованной двумерностью вида A[i*n+j].

C++
[][]One time 90 mcs
[][]Two time 710 mcs
[]One time 80 mcs
[]Two time 830 mcs

Во всех случаях, за исключение первого (массив массивов) имеем одну и ту же физическую модель — обычной линейной памяти (двумерный массив в Си «строгается» по строчкам). Вывод: разные скорости — эффект вытеснения из кэша хоть по LRU, хоть по FIFO. Если «прыгать» по адресам через n элементов (т.е. по столбцам), то независимо от размера подгружаемого в кэш блока периодически будет возникать ситуация, когда будет вытесняться тот блок, в которому будет СЛЕДУЮЩЕЕ обращение. Разница, похоже, соответствует отношению времени доступа к «оперативной памяти» и кэш.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity