пункт 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 или нет?), и откуда там вообще берутся эти самые тайминги.
Некоторые слова выделены из категорий и книг, потому что они интересны в отдельности или просто хорошо звучат, кое-где указаны не все виды чего-либо, SCU это википедия, все темные углы знать не обязательно, в рамках теормина, на мой взгляд, достаточно знакомства с указанной литературой. Но я бы не отказался составить список темных углов C++, особенно если мне кто-нибудь поможет :)
Сети Петри есть ниже, я перечислил только те проблемы мультитредности, которые иллюстрируются "обедающими философами".
Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?
Arduino я привел в качестве платформы с открытой архитектурой, что делает ее весьма ценной для образования, увы, не знаю аналогов. В целом же я не особо близок к устройству аппаратного обеспечения, так что дополнения приветствуются.
Можете раскрыть пункт 6 подробнее (куда, что и в каком порядке добавить)?
> Некоторые слова выделены из категорий и книг, потому что они интересны в отдельности или просто хорошо звучат Замечательно выглядящая в отрыве от контекста фраза :-)
Я-то в курсе что такое SCU, непонятно что должен делать кандидат, которому предлагается этот вопрос на изучение. А список темных углов это вообще отдельная схоластика ;-) забиватор вон давеча попробовал - чуть не подрался ;-)
> Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86? Попробуйте ;-) Как минимум из нового - атипичная арифметика, X/Y data pointers, MACs, hardware loops. Это если экзотику не брать вроде gennum, у которого пара десятков тупых-тупых ядер, заточенных на одну задачу, и программа больше напоминает шейдер для видеокарты.
Arduino - кроме того, что у меня к ней идиосинкразия, - она вообще не про транзисторы, она про удобный софт и IDE, транзисторы там как раз не обязательны. Вы просто схватили очередной buzzword не разобравшись.
п6. расскажите сначала, зачем вы про u/v pipe написали :-)))))
Повикипедить? :) Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ :( Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)
> Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ Иными словами, отсутствие возможности применить прочитанное на практике, да? Ровно тоже самое можно сказать и про какой-нибудь метод Патриса Лумумбы из вашего списка по математике, скажем.
> Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :) Вот здесь и кроется попадалово. Тот кто вам насоветовал знать про u/v pipe, хорошо пошутил: это была такая частная особенность реализации суперскалярности в Pentium I - он мог параллелить только две инструкции, исполняя одну в u-, а вторую в v- pipe. Там еще были сложные правила одновременного сосуществования этих инструкций, зная которые можно было заметно ускорить код. Уже с появлением Pentium Pro (а тем более сейчас) все это потеряло всякий смысл - появился сильно умный декодер (или даже несколько), кормящий преобразованными в микрокод инструкциями набор execution unit'ов - осмыслению такая конструкция поддается плохо.
Короче говоря, я вас все пытаюсь подвести к мысли, что по каждому пункту нужен некий rationale, хорошо бы еще обозначить необходимый уровень знаний (на уровне "знать что бывает", "уметь настраивать если припрет" итд), иначе это все превращается в курс подготовки человека-оркестра. Это правда, работы дофига, да и внушительно выглядящий список сократится раза в три ;-), так что если целью было именно сориентировать молодого бойца, а не вызвать волну ненависти, гнева, и обожания (иными словами, потроллить) - это придется сделать.
Спасибо, убрал архаику. Очень бы хотелось не раздувать каждый пункт в даже отдаленное подобие программы, оставив просто списком ориентиров — и на составление этого ушло несколько месяцев. Что бы я горячо приветствовал, так это названия книг.
Самое смешное, что у AMD вообще не было 586 процессоров. 5x86 - это обычный 486, а K5 - уже 686. /me подозревает, что про необходимость U/V писали какие-то жертвы Cyrixов.
no subject
Date: 2011-03-24 10:52 pm (UTC)пункт 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 или нет?), и откуда там вообще берутся эти самые тайминги.
no subject
Date: 2011-03-24 11:12 pm (UTC)Сети Петри есть ниже, я перечислил только те проблемы мультитредности, которые иллюстрируются "обедающими философами".
Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?
Arduino я привел в качестве платформы с открытой архитектурой, что делает ее весьма ценной для образования, увы, не знаю аналогов. В целом же я не особо близок к устройству аппаратного обеспечения, так что дополнения приветствуются.
Можете раскрыть пункт 6 подробнее (куда, что и в каком порядке добавить)?
no subject
Date: 2011-03-24 11:31 pm (UTC)Замечательно выглядящая в отрыве от контекста фраза :-)
Я-то в курсе что такое SCU, непонятно что должен делать кандидат, которому предлагается этот вопрос на изучение. А список темных углов это вообще отдельная схоластика ;-) забиватор вон давеча попробовал - чуть не подрался ;-)
> Есть какая-то принципиальная новизна в освоении DSP-процессоров после x86?
Попробуйте ;-) Как минимум из нового - атипичная арифметика, X/Y data pointers, MACs, hardware loops. Это если экзотику не брать вроде gennum, у которого пара десятков тупых-тупых ядер, заточенных на одну задачу, и программа больше напоминает шейдер для видеокарты.
Arduino - кроме того, что у меня к ней идиосинкразия, - она вообще не про транзисторы, она про удобный софт и IDE, транзисторы там как раз не обязательны. Вы просто схватили очередной buzzword не разобравшись.
п6. расскажите сначала, зачем вы про u/v pipe написали :-)))))
no subject
Date: 2011-03-24 11:34 pm (UTC)no subject
Date: 2011-03-24 11:47 pm (UTC)Ознакомлению с новыми аппаратными платформами очень мешает отсутствие этих аппаратных платформ :(
Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)
no subject
Date: 2011-03-25 08:02 am (UTC)no subject
Date: 2011-03-25 09:50 am (UTC)Иными словами, отсутствие возможности применить прочитанное на практике, да? Ровно тоже самое можно сказать и про какой-нибудь метод Патриса Лумумбы из вашего списка по математике, скажем.
> Не вся программа составлена мной, но те, кто помогал, клялись-божились, что без Arduino и u/v pipe ну никак :)
Вот здесь и кроется попадалово. Тот кто вам насоветовал знать про u/v pipe, хорошо пошутил: это была такая частная особенность реализации суперскалярности в Pentium I - он мог параллелить только две инструкции, исполняя одну в u-, а вторую в v- pipe. Там еще были сложные правила одновременного сосуществования этих инструкций, зная которые можно было заметно ускорить код. Уже с появлением Pentium Pro (а тем более сейчас) все это потеряло всякий смысл - появился сильно умный декодер (или даже несколько), кормящий преобразованными в микрокод инструкциями набор execution unit'ов - осмыслению такая конструкция поддается плохо.
Короче говоря, я вас все пытаюсь подвести к мысли, что по каждому пункту нужен некий rationale, хорошо бы еще обозначить необходимый уровень знаний (на уровне "знать что бывает", "уметь настраивать если припрет" итд), иначе это все превращается в курс подготовки человека-оркестра. Это правда, работы дофига, да и внушительно выглядящий список сократится раза в три ;-), так что если целью было именно сориентировать молодого бойца, а не вызвать волну ненависти, гнева, и обожания (иными словами, потроллить) - это придется сделать.
no subject
Date: 2011-03-25 11:26 pm (UTC)Очень бы хотелось не раздувать каждый пункт в даже отдаленное подобие программы, оставив просто списком ориентиров — и на составление этого ушло несколько месяцев. Что бы я горячо приветствовал, так это названия книг.
no subject
Date: 2011-03-26 08:52 am (UTC)/me подозревает, что про необходимость U/V писали какие-то жертвы Cyrixов.
no subject
Date: 2011-03-25 06:00 am (UTC)