?

Log in

No account? Create an account
11 апреля: Введение в проектирование цифровой логики, процессоров и ассемблер. С нуля. - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

11 апреля: Введение в проектирование цифровой логики, процессоров и ассемблер. С нуля. [Apr. 6th, 2015|11:02 pm]
Yuri Panchul
Господа! Я еще с 2011 года агитирую народ, в первую очередь россиян, чтобы они широко, в каждую школу, ПТУ и кулинарный техникум, ввели бы обзорный курс, на котором студенты с нулевыми начальными знаниями учились бы в ликбезных количествах 1) проектировать цифровую логику 2) проектировать процессоры и 3) программировать их на ассемблере.

Зачем? Это шикарная профориентация и мостик в проектирование систем на кристалле, таких же, как в Айфоне, на который молится российский креативный класс, и отсутствием которого в России всякие Латынины и другие люди с "нормальными открытыми человеческими лицами" постоянно укоряют придуманных ими же "ватников".

Да и для воспитания будущих проектировщиков гиганских боевых человекоподобных роботов, противостоящих провокациям на будущей донецко-киевской или российко-канадской границе (с той или иной стороны) курс не менее архиважен.

Это я все к чему: сегодня настал момент, когда вы (включая школьников 5 класса и совершенно гуманитарных людей) можете бесплатно пройти такой курс на Курсере. Курс подготовлен в Израиле и начинается 11 апреля.

http://www.coursera.org/course/nand2tetris1






Содержание:

Week 0: course introduction and overview, the roles of abstraction and implementation in systems design, the road ahead.

Week 1: Introduction to Boolean functions, gate logic, Hardware Description Language (HDL), and hardware simulation. Project: build a set of 15 elementary logic gates that will serve as the building blocks of subsequent chips.

Week 2: Binary numbers, binary addition, the two's complement methods, combinational logic. Project: build a family of adder chips leading up to an Arithmetic Logic Unit (ALU).

Week 3: Flip-flops, clocks, memory systems, sequential logic. Project: build a family of storage units from 1-bit registers to n-bit registers to Random Access Memories (RAM) of arbitrary sizes.

Week 4: Machine language, binary and symbolic instructions, input and output handling, using an assembler. Project: write some low-level assembly programs and run them on a supplied CPU emulator.

Week 5: Computer organization, the Von Neumann architecture, the fetch-execute cycle. Project: build the Hack CPU and computer system, using all the chips that were built in the previous projects.

Week 6: Assembly languages, assemblers, parsing, symbol tables, code generation, the translation process. Project: build an assembler that translates Hack symbolic programs into Hack executable (binary) code.






А что делать после прохождения такого курса?

Во-первых, через пару недель выходит русский перевод учебника Harris & Harris, который вы сможете легко сгрызть как сильно обогащенную и неигрушечную версию такого же курса. Вот мое описание Harris & Harris:


Учебник Digital Design and Computer Architecture, Second Edition by David Harris and Sarah Harris, 2012 сводит вместе мир софтвера и хардвера, являясь одновременным введением и в разработку микросхем, и в низкоуровневое программирование для студентов 1-2 курсов. Этот учебник превосходит более ранний вводный учебник Computer Organization and Design от Паттерсона и Хеннесси, причем Паттерсон сам рекомендовал учебник от Harris & Harris как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом сводится вместе logic design, computer architecture, microarchitecture (конвейерность, stalls,forwarding), программирование на ассемблере - в общем все, что между физикой и высокоуровневым программированием.

MIPS является единственной архитектурой в текущий момент, которую реально использовать одновременно и для изучения микроархитектуры, и для изучения микроконтроллерных приложений, и для изучения разработки и применений высокопроизводительных процессоров. Все другие варианты – Intel, ARM, Atmel AVR,IBM Power, ARC, Tensilica,Open RISC – либо недостаточно поддерживаются учебниками, либо являются сложными для студенческих микроархитектурных проектов, либо обременены юридическими трудностями, либо представлены только для низкопроизводительных процессоров, либо недостаточно применяются в индустрии.

Мы в Imagination Technologies купили права на русское издание учебника у Elsevier и собираемся распостранять его электронную версию в России и Украине бесплатно. Кроме этого, мы работаем с авторами учебника Дэвидом и Сарой Харрис из Harvey Mudd College в южной Калифорнии, которые также разрабатывают новый цикл лабораторных работ на основе микроконтроллера Microchip PIC32MZ.



Во-вторых, через некоторое время выйдет некая инициатива для обучения более продвинутых студентов, как проектировать системы на кристалле с коммерческими процессорными ядрами. Если вы хотите узнать об этой и других образовательных инициативах Imagination Technologies, пришлите мне e-mail на yuri.panchul@imgtec.com и я включу вас в свою русскую рассылку. Кроме этого, вы можете зарегистрироваться на http://community.imgtec.com/university/ и войти в общемировую рассылку от нашего менеджера по образовательным программам Роберта Оуэна.


Вы готовы приступить?

Да. Я из мира инвесторов. Мне интересно понять, как эта хрень работает, хотя-бы на детсадовском уровне
2(12.5%)
Да. Я красивая блондинка и хочу знать слова, как убийственно сооблазнять будущих Стивов Джобсов
2(12.5%)
Да. Я школьник и хочу найти способ, как сооблазнять красивых блондинок
1(6.2%)
Я вообще-то это все знаю, но меня заинтересовал сиквел в виде русского перевода Harris & Harris
6(37.5%)
Я вообще-то знаю и это, и Harris & Harris, но меня заинтересовал загадочный 2-й сиквел для продвинутых студентов
3(18.8%)
Я ЖЖ-юзерша neutrino и хочу, чтобы россияне импортировали Свободу! а не навыки проектирования айфонов и гигроботов!
1(6.2%)
Из-за бугра плюете?
1(6.2%)
LinkReply

Comments:
[User Picture]From: alga
2015-04-07 06:27 am (UTC)
Мне не пойдет, наверно надо что-то для слишком продвинутых далеко зашедших. Конкретно сейчас интересует: что делать дальше, когда проектирование систем с коммерческими ядрами совсем уже остоп достало? :)
(Reply) (Thread)
[User Picture]From: panchul
2015-04-07 06:57 am (UTC)
Там есть еще курс товарисча из Принстона доя тех, кто прошел Harris & Harris или подобный учебник.

Но если и это для вас слишком плоско, тогда сами напишите курс и выставите на курсере.
(Reply) (Parent) (Thread)
[User Picture]From: alexispokrovski
2015-04-07 06:38 am (UTC)
Формулировки ваших опросов великолепны. Решительно, новый жанр.
(Reply) (Thread)
[User Picture]From: ammosov
2015-04-07 06:55 am (UTC)
Вес какой?
(Reply) (Thread)
[User Picture]From: panchul
2015-04-07 06:58 am (UTC)
Вес чего? Планеты Плутон супротив звезды Бетельгейзе?
(Reply) (Parent) (Thread) (Expand)
From: raygo
2015-04-07 08:42 am (UTC)
"агитирую народ, в первую очередь россиян, чтобы они широко, в каждую школу, ПТУ и кулинарный техникум, ввели бы обзорный курс"


Юрий, а вы не боитесь что потом вам придется писать верилоговский код за еду, в свете большой конкуренции на рынке труда?
(Reply) (Thread)
[User Picture]From: panchul
2015-04-07 03:58 pm (UTC)
Ой, да ладно. Сам по себе язык - такой же инструмент, как долото и рубанок. Превращение языкового навыка в commodity skill - естественный процесс. Например я еще в 9 классе, в 1986 году выучил Си, а потом Си быстро стал commodity, работ для чисто "Си-программиста" быстро не стало, более важны стали области применения (компиляторы, операционные системы, gui итд).
(Reply) (Parent) (Thread)
[User Picture]From: maxdz
2015-04-07 10:46 am (UTC)
Кого научить хотите, Юрий? Этих?

"Гарантированным источником катастрофных геофизических процессов может быть прежде всего удар по Йеллоустонскому супервулкану. Даже одиночный наземный взрыв 5–7-тонного боеприпаса инициирует мощнейшее извержение. В результате США прекратят свое существование, хотя и для остального мира последствия окажутся катастрофическими. В наименьшей степени пострадает Россия – в силу удаленности от места извержения, размеров территории и места расположения. Также относительно невелик будет ущерб стран, расположенных на противоположных от США частях земного шара. Однако в любом случае извержение, подчеркнем, станет катастрофой для всей цивилизации. Но на то и существует подобное оружие. Оно уже возможностью своего применения должно пресекать всякую мысль об агрессии против России.

Другой вариант мегаудара – инициирование гигантских цунами. Это идея академика Сахарова. Суть состоит в том, чтобы взорвать несколько боеприпасов в расчетных точках вдоль атлантических и тихоокеанских трансформных разломов (в пределах 3–4 на каждом) на глубине полтора-два километра. В результате, по расчетам Сахарова и других ученых, сформируется волна, которая у побережья США достигнет высоты 400–500 и более метров. Обрушившись на материк, она смоет все на расстоянии более 500 километров. Если взрывы произвести на больших глубинах, вблизи дна, где земная кора в местах стыковки плит наиболее тонка, она может быть локально разрушена, и магма, вступив в контакт с океанской водой, многократно усилит силу взрыва. В этом случае высота цунами достигнет более полутора километров, а зона разрушений превысит 1500 километров от берега. Это будет исключительно «чистое» оружие – ядерная зима не наступит, так как не образуются гигантские пылевые облака, а пары воды обрушатся на землю в виде чудовищных радиоактивных ливней вблизи своего формирования, то есть на те же США. Такой удар, безусловно, инициирует тектоническую активность во всем регионе, в том числе, вполне возможно, и извержение Йеллоустонского супервулкана. Обратная волна смоет Европу. То есть весь блок НАТО. Чудовищный будет катаклизм. Но это асимметричная угроза последнего рубежа – нет каких-то регионов России, нет и всей западной цивилизации. К катастрофическим геофизическим последствиям приведет подрыв даже одного мощного боеприпаса в районе разломов Сан-Андреас, Сан-Габриель или Сан-Хосинто."


"Ядерный спецназ. Уцелеют только страны БРИКС"
http://vpk-news.ru/articles/24405

2-й сценарий, это где-то рядом с вашим калифорнийским домиком, Юрий (хотя, от 1-го сценаpия домику тоже не поздоровится). Хотите им помочь, с техническим обеспечением исполнения?

Edited at 2015-04-07 10:47 am (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2015-04-07 03:46 pm (UTC)
1. Какая, по-вашему, толщина континентальной плиты в районе Йеллоустонского hotspot?

2. Как вы думаете, можно ли сдвинуть авианосец пинком ноги?

При ответах прошу использовать только ссылки на учебники и peer-reviewed научные журналы типа Nature и Science.

(Reply) (Parent) (Thread) (Expand)
[User Picture]From: panchul
2015-04-07 03:47 pm (UTC)
С современной процессорной архитектурой - наврядли :-)
(Reply) (Parent) (Thread)
From: ostapru
2015-04-07 04:34 pm (UTC)
Вариант курса - воссоздать PC/XT: http://habrahabr.ru/post/254879/
(Reply) (Thread)
[User Picture]From: panchul
2015-04-07 07:30 pm (UTC)

Категорически против!

PC/XT - это очень мило, и я сам в свое время программировал ее и учил ассемблер Intel 8086/8088, но использовать ее для обучения студентов - это совсем неправильно. Просто абсолютно.

Intel 8088 - это процессор до-RISC-овой эпохи, который непригоден для иллюстрации для студентов конвейерной обработки, и несет в себе всякий хлам типа регистров сегментов, которые придумали в конце 1970-х в надежде, что они будут в будущем использоваться для расширения адреса до 32 бит, но будущее наступило другое.

Если использовать в качестве примера PC/XT, то вместо усвоения важных концепций студенты будут ковыряться в деталях старого хлама и тупиковых направлений - причем по всему спектру: архитектуры, микроархитектуры, интерфейсов, операционных систем и т.д.

Если уж воссоздавать старые компьютеры, то стоит выбирать те, которые сделали что-то в первый раз - как scoreboard в CDC 6600. А 8088 в этом смысле никакой - раздутый 16-битный вариант 8-битного 8080 + дурацкие сегментные регистры.


Edited at 2015-04-07 07:30 pm (UTC)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: alexey_zharikov
2015-04-07 05:44 pm (UTC)
> будущей донецко-киевской или российко-канадской границе

Хорошо, если не китайско-финской.
(Reply) (Thread)
[User Picture]From: pappadeux
2015-04-07 11:59 pm (UTC)
шо, оп'ять?
(Reply) (Parent) (Thread)
[User Picture]From: duradulova
2015-04-07 07:12 pm (UTC)

Я в шоке!

Панчул милый! Почему Вы самовыпилились из послов ЖЖ?
(Reply) (Thread)
[User Picture]From: panchul
2015-04-07 07:18 pm (UTC)

Re: Я в шоке!

Дык ЖЖ-администрация (за небольшими исключениями) устранила зарубежных по отношению к России послов. Еще несколько месяцев назад. Или я чего-то пропустил?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: petrol_head77
2015-04-08 07:00 am (UTC)
Юрий, а если серьезно: прохождение подобных базовых курсов и стремление к пониманию базовых вещей как-то могут помочь в поиске интересной работы, например? Я имею в виду, смена проф. ориентации. Вот занимался человек телекомом, а потом решил не Яву учить, а заняться процессорами, например.
Что думаете?
Спасибо.
(Reply) (Thread)
[User Picture]From: panchul
2015-04-08 07:21 am (UTC)
C Явы можно перескочить на верификацию цифровых дизайнов с помощью SystemVerilog и UVM class library. Там нужно и знание цифровой логики, и сильно пригодится знание объектно-ориентированного дизайна из Java. (Чистых RTL designer-ов учить яво-образные навороты в SystemVerilog ломает).

А потом по обстоятельствам.

См. напр. http://www.amazon.com/Getting-Started-UVM-Beginners-Guide/dp/0615819974
(Reply) (Parent) (Thread)
[User Picture]From: alexey_zharikov
2015-04-08 06:05 pm (UTC)
> Я школьник и хочу найти способ, как сооблазнять красивых блондинок

В своё время у меня был приятель, который на первом курсе соблазнял киевских блондинок, рассказывая им теорему Котельникова.
(Reply) (Thread)
[User Picture]From: ua6em
2015-04-12 01:20 pm (UTC)

RE Мы в Imagination Technologies купили права

Мы в Imagination Technologies купили права на русское издание учебника у Elsevier и собираемся распостранять его электронную версию в России и Украине бесплатно.

И когда и как можно будет получить эту электронную версию ???


(Reply) (Thread)
[User Picture]From: panchul
2015-04-12 02:15 pm (UTC)

Re: RE Мы в Imagination Technologies купили права

Через пару недель, я напишу об этом пост
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: Георгий Шипилов
2015-04-17 03:16 pm (UTC)
Посоветуйте плз про микроконтроллеры что-нибудь такое self-consist и prereq:noth.
Ну для тех кто с железом не дружит и в нормализациях БД моском застрял.
(Reply) (Thread)