metaclass: (Default)
[personal profile] metaclass
Все, что должен знать программист, чтобы его после 40 лет не выбросили на Помойку, Где Бомжи.

Date: 2011-03-24 10:52 pm (UTC)
From: [personal profile] ex0_planet
ну так, навскидку:

пункт 2: linkage бывает не только статической и динамической, манглинг тесно с ней связан, так что нет смысла выделять его отдельно, да и вообще это деталь реализации. Single compilation unit - это чево? Тогда уж стадии компиляции надо было описывать. Ну static inline туда же, если уж мы заговорили об темных углах C++.

пункт 3: livelock, priority inversion, сети Петри.

пункт 4: как бы на x86 свет клином не сошелся, как минимум надо RISC и DSP.

пункт 5: NOR, NAND и транзисторы - это хорошо, а вот должен ли кандидат на теорминимум знать какие вообще типы логики бывают? Ардуина вообще там в хуй не уперлась, pardon my Klatch. Нет ни одного упоминания про параллельные и последовательные шины: ISA, PCI, PCI-e, HyperTransport, FC... чего там еще бывает...

в пункте 6 за каким-то хером упомянуты u/v pipe, но не упомянуты модели памяти, параллельные топологии (SMP, SMT, NUMA и другие), упомянуты тайминги памяти, но не написано какие вообще интерфейсы памяти бывают (просто для размышлений - должен ли отличаться интерфейс NAND flash от DDR-3 или нет?), и откуда там вообще берутся эти самые тайминги.

Date: 2011-03-24 11:12 pm (UTC)
From: [identity profile] sharpc.livejournal.com
Некоторые слова выделены из категорий и книг, потому что они интересны в отдельности или просто хорошо звучат, кое-где указаны не все виды чего-либо, SCU это википедия, все темные углы знать не обязательно, в рамках теормина, на мой взгляд, достаточно знакомства с указанной литературой. Но я бы не отказался составить список темных углов C++, особенно если мне кто-нибудь поможет :)

Сети Петри есть ниже, я перечислил только те проблемы мультитредности, которые иллюстрируются "обедающими философами".

Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?

Arduino я привел в качестве платформы с открытой архитектурой, что делает ее весьма ценной для образования, увы, не знаю аналогов. В целом же я не особо близок к устройству аппаратного обеспечения, так что дополнения приветствуются.

Можете раскрыть пункт 6 подробнее (куда, что и в каком порядке добавить)?

Date: 2011-03-24 11:31 pm (UTC)
From: [personal profile] ex0_planet
> Некоторые слова выделены из категорий и книг, потому что они интересны в отдельности или просто хорошо звучат
Замечательно выглядящая в отрыве от контекста фраза :-)

Я-то в курсе что такое SCU, непонятно что должен делать кандидат, которому предлагается этот вопрос на изучение. А список темных углов это вообще отдельная схоластика ;-) забиватор вон давеча попробовал - чуть не подрался ;-)

> Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?
Попробуйте ;-) Как минимум из нового - атипичная арифметика, X/Y data pointers, MACs, hardware loops. Это если экзотику не брать вроде gennum, у которого пара десятков тупых-тупых ядер, заточенных на одну задачу, и программа больше напоминает шейдер для видеокарты.

Arduino - кроме того, что у меня к ней идиосинкразия, - она вообще не про транзисторы, она про удобный софт и IDE, транзисторы там как раз не обязательны. Вы просто схватили очередной buzzword не разобравшись.

п6. расскажите сначала, зачем вы про u/v pipe написали :-)))))

Date: 2011-03-24 11:34 pm (UTC)
From: [identity profile] avnik.livejournal.com
Кстати устройство шейдеров в GPU какого нибудь r300 хорошо иллюстрирует ;) Я где-то с полгода назад полюбопытствовал

Date: 2011-03-24 11:47 pm (UTC)
From: [identity profile] sharpc.livejournal.com
Повикипедить? :)
Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ :(
Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)

Date: 2011-03-25 08:02 am (UTC)
From: [identity profile] nealar.livejournal.com
Это ничего, что "U/V pipe" есть только в 586? В 486- и 686+ их нет. :)

Date: 2011-03-25 09:50 am (UTC)
From: [personal profile] ex0_planet
> Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ
Иными словами, отсутствие возможности применить прочитанное на практике, да? Ровно тоже самое можно сказать и про какой-нибудь метод Патриса Лумумбы из вашего списка по математике, скажем.

> Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)
Вот здесь и кроется попадалово. Тот кто вам насоветовал знать про u/v pipe, хорошо пошутил: это была такая частная особенность реализации суперскалярности в Pentium I - он мог параллелить только две инструкции, исполняя одну в u-, а вторую в v- pipe. Там еще были сложные правила одновременного сосуществования этих инструкций, зная которые можно было заметно ускорить код. Уже с появлением Pentium Pro (а тем более сейчас) все это потеряло всякий смысл - появился сильно умный декодер (или даже несколько), кормящий преобразованными в микрокод инструкциями набор execution unit'ов - осмыслению такая конструкция поддается плохо.

Короче говоря, я вас все пытаюсь подвести к мысли, что по каждому пункту нужен некий rationale, хорошо бы еще обозначить необходимый уровень знаний (на уровне "знать что бывает", "уметь настраивать если припрет" итд), иначе это все превращается в курс подготовки человека-оркестра. Это правда, работы дофига, да и внушительно выглядящий список сократится раза в три ;-), так что если целью было именно сориентировать молодого бойца, а не вызвать волну ненависти, гнева, и обожания (иными словами, потроллить) - это придется сделать.

Date: 2011-03-25 11:26 pm (UTC)
From: [identity profile] sharpc.livejournal.com
Спасибо, убрал архаику.
Очень бы хотелось не раздувать каждый пункт в даже отдаленное подобие программы, оставив просто списком ориентиров — и на составление этого ушло несколько месяцев. Что бы я горячо приветствовал, так это названия книг.

Date: 2011-03-26 08:52 am (UTC)
From: [identity profile] nealar.livejournal.com
Самое смешное, что у AMD вообще не было 586 процессоров. 5x86 - это обычный 486, а K5 - уже 686.
/me подозревает, что про необходимость U/V писали какие-то жертвы Cyrixов.

Date: 2011-03-25 06:00 am (UTC)
From: [identity profile] metaclass.livejournal.com
У всякого не-x86 могут быть не фон-неймановские архитектуры, или хуже того - вообще реализовать на FPGA алгоритмы.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 26th, 2025 04:30 am
Powered by Dreamwidth Studios