Pull to refresh

Comments 39

Спасибо вам и «ДМК Пресс» за издание этой книги на бумаге! Помимо всего вышесказанного, мне нравится в ней четкое позиционирование глав с точки зрения уровней абстракции — самый первый рисунок в статье, не считая фото девушки. Хорошо бы к Новому году себе под ёлочку успеть получить книгу :)
Ура. Жаль пока нет предзаказа в магазинахchitai-gorod или labirint, а то идти получать посылку в филиал ада на земле, очень не хочется… :(
Интересненько… там, где рисунки не нужны, они есть (обезьянка); но там, где чертеж действительно не помешал бы (электродвигатель) — не напрягались, и просто приложили фоточки.
Это да, но образ обезьянки там фигурировал в тексте — типа она нажала на кнопку во время апертуры
О, Панчул!
Это аналог Хоровица и Хилла для компьютеров? ;)
Годно.
А «однотактный микропроцессор» — это «микропрограммное устройство», или такая терминология сейчас у нас не в ходу?
*** Это аналог Хоровица и Хилла для компьютеров? ;) ***

Первая редакция Хоровица-Хилла вышла в 1980 году, когда еще не было методологий разработке на уровне регистровых передач ( Register Transfer Level — RTL ) и логического синтеза. Вторая редакция Хоровица-Хилла вышла когда RTL методология и logic synthesis только начали использоваться (конец 1980-х). За последние 25 лет разработка на уровне RTL стала мейнстримом, и вот Харрис-энд-Харрис — это вводный учебник для эпохи RTL.

*** А «однотактный микропроцессор» — это «микропрограммное устройство» ***

Нет, совсем нет. Это полноценный (хотя и очень простой) hardwired микропроцессор без всякого микропрограммирования. Микропрограммирование — это специфиаеский способ выработки последовательностей управляющих сигналов, при котором в микрокоманде стоит набор управляющих сигналов и адрес в пзу следующей микрокоманды в завиисимости от неких входных сигналов, как описано в http://minnie.tuhs.org/CompArch/Tutes/week04.html Оно было актуально и очень популярно во времена первого издания Хоровица-Хилла, но в 1990-е его использование сошло на нет и процессоры стали hardwired, при котором контрольные сигналы вырабатываются блоком управления без дополнительного уровня микропрограммирования.

Замечу, что микропрограммирование в смысле в котором оно употреблялось в 1970-е, не стоит путать с микроинструкциями в современных x86 процессорах, в которых CISC-инструкции внутри процессора и перекодируются в RISC-образные микроинструкции, которые выполняются в конвейере.
Ну, нас учили, что микрокоманды — это просто команды, исполняемые за один такт.
Просто, без привязки к микропроцессорам или чего-либо.
Ну и дальше показывали устройство на гарвардской архитектуре — как более простое.
Соотв., ни «регистрового файла», ни «основной памяти» там явно не было — было «ОЗУ» и «ПЗУ», последнее существенно шире ОЗУ.
Ну и подразумевалась возможность дальнейшего расширения.
Микрокод же в x86 всё равно присутствует?
*** Ну, нас учили, что микрокоманды — это просто команды, исполняемые за один такт.
Просто, без привязки к микропроцессорам или чего-либо. ***

То, что вы описываете — это способ создания конечных автоматов с помощью микропрограммного управления из последовательности «команд». Он гибок, красив и удобен, но:

1. Он экономит труд, когда у вас нет под рукой технологии logic synthesis (которая стала применяться с конца 1980-х). Если же эта технология есть, то вместо пзу лучше поставить random combinational logic, потому что получившаяся схема может работать на более высокой тактовой частоте

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

Ниже я привожу простейший пример конечного автомата из H&H реализованного без пзу:





Код на Verilog из которого синтезируются схемы выше:

http://www.silicon-russia.com/public_materials/2016_11_04_one_day_mipsfpga_connected_mcu_materials_public_for_the_website/06_optional_introductory_materials_if_necessary_for_the_audience/06_exercises/exercise_3_counter_shift_fsm.html

// Smiling Snail FSM derived from David Harris & Sarah Harris

module pattern_fsm_moore
(
    input  clock,
    input  reset_n,
    input  a,
    output y
);

    parameter [1:0] S0 = 0, S1 = 1, S2 = 2;

    reg [1:0] state, next_state;

    // state register

    always @ (posedge clock or negedge reset_n)
        if (! reset_n)
            state <= S0;
        else
            state <= next_state;

    // next state logic

    always @*
        case (state)

        S0:
            if (a)
                next_state = S0;
            else
                next_state = S1;

        S1:
            if (a)
                next_state = S2;
            else
                next_state = S1;

        S2:
            if (a)
                next_state = S0;
            else
                next_state = S1;

        default:

            next_state = S0;

        endcase

    // output logic

    assign y = (state == S2);

endmodule

//----------------------------------------------------------------------------

// Smiling Snail FSM derived from David Harris & Sarah Harris

module pattern_fsm_mealy
(
    input  clock,
    input  reset_n,
    input  a,
    output y
);

    parameter S0 = 1'b0, S1 = 1'b1;

    reg state, next_state;

    // state register

    always @ (posedge clock or negedge reset_n)
        if (! reset_n)
            state <= S0;
        else
            state <= next_state;

    // next state logic

    always @*
        case (state)

        S0:
            if (a)
                next_state = S0;
            else
                next_state = S1;

        S1:
            if (a)
                next_state = S0;
            else
                next_state = S1;

        default:

            next_state = S0;

        endcase

    // output logic

    assign y = (a & state == S1);

endmodule



*** Микрокод же в x86 всё равно присутствует? ***

Я не в курсе деталей внутреннего устройства ядер x86, но из косвенных соображений скажу: При обсуждении x86 есть терминологическая путаница: изначально в 8088/8086/286/386 микропрограммная реализация (в смысле выше) наверняка была, но в некоторый момент, когда вышел Pentinum Pro, микроархитектура процессора существенно поменялась — в декодере команды CISC стали перекодировать в RISC-образные «микроинструкции», которые выполнять конвейерным способом. При этом каждая «микроинструкция» может занимать несколько циклов, чтобы выполниться, но одновременно в процессоре находится много «микроинструкций» для выполнения. Как вы видите, эти «микроинструкции» — нечто совсем другое, чем выполняемый за 1 цикл команда микрокода при микропрограммном управлении. Но из-за похожего названия в интернете часто бываю споры, когда один спорщик имеет в виду одно, а другой — другое.

Я допускаю, что в тех или иных блоках современных ядер x86 и одно, и другое. Как я указал, микропрограммирование (в вашем смысле 1) удобно, если вам не нужно конвейеризировать и если вам желательно гибко менять какие-то последовательности, загружая последовательность контролирующих сигналов в память. Как основной метод реализации процессора в x86 оно не используется — с Pentinum Pro совешенно точно. Но вот микроинструкции (в смысле 2) используются, потому что без них достигнуть высокой производительности с исходным набором команд x86 было бы трудно.

Если вы хотите узнать это с большей детализацией, я рекомендую вам бегло прочитать главы 4 и 7 H&H, потому что иначе мне прийдется их пересказать в формате «вопрос-ответ», и это будет долго.
Да, обучающие мультики — это круто
Блииин.
Я в своё время обжёгся на эксмо — тоже хотел оплатить предзаказ книги на их сайте. И опять.

У эксмо после оплаты мне вылетела «ошибка в .settings.php» и я с трудом достучался до нужных людей (поливая издательство говном в комментариях у автора книги в фэйсбуке — да, в сбер топать мне некогда за выпиской из счёта — через телебанк они нормальную выписку не дают) чтобы они (эксмо) подтвердили, что деньги от меня действительно пришли и начали обработку заказа (а то деньги сняли, а заказ был помечен как неоплаченный)

А у этого дмк-пресс вот что. У меня возникла проблема с яндекс-маркетом (была привязана карта с истекшим сроком). И теперь у меня есть «оплаченный» по мнению сайта ДМК-Пресс заказ, за который я не заплатил ни копейки. Опять куча проблем будет, чую.

Руки вырвать надо бракоделам всяким, у которых все силы уходят на нескучный дизайн, а форму оплаты нормально сделать не могут.
И задолбали эти издательства, которые себе нормальынй сайт обеспечить не могут.
Я знаю что я сделаю если они обработают мой заказ — я приду с покерфейсом забирать эту книгу в пункт выдачи, хотя не заплатил за неё. Заказали сайт у долбо*бов — ваши проблемы.
Сайт делала фирма Iris Digital. Не заказывайте у них — они бракоделы, похоже.
UPD:
Спросил в издательстве что делать — сказали создавать новый заказ.
Конечно, это неудобно.
Я посмотрел, у издательства в партнёрах есть labirint.ru, подожду выхода книги и закажу у них.
Доставка там бесплатная в пункт выдачи. Никакой почты россии и оплата при получениии в пункте выдачи.
http://dmkpress.com/nashi_partnery/portals/

Хорошая идея, лабиринт доставляют обычно за неделю.

Тоже жду, когда появится в Лабиринте. С учетом регулярных акций, есть шанс купить пусть с небольшой, но со скидкой от цены издательства. Плюс удобная и быстрая доставка в пункт самовывоза.
Добрый день!

Многократно упомянутая Ирина — разработчик или имеет какую-то другую роль в подготовке проекта?
Нет, Ирина почитывает такие книжки для общего образования, но вообще она работает финансовым контролером интернет-стартапа в Сан-Франциско и помогает мне вот с таким маркетингом.
Помнится, когда я год назад скачал эту замечательную книгу, а потом и исправленное издание, в обоих случаях там были другой шрифт и форматирование текста (судя по фотографиям в этой статье). А можно ли где-нибудь будет скачать версию книги, которая по исполнению не отличалась бы от бумажной?
С издательством Elsevier было заключено два договора — от Imagination Technologies, по которому делалась бесплатная версия для планшетов и от DMK Press, по которому делалась платная бумажная книга.

Для первого договора был изначально сырой вариант для печати, но после переформатирования его в планшентый вариант вносилось много мелких изменений, поэтому первый вариант (до переформатирования) лучше не распостранять, а распостранять только бесплатный планшетный вариант.

Детали второго договора я не совсем знаю, тут надо спрашивать DMK Press, могут ли они сделать электронную платную версию книго-образного PDF-а.
Что то во мне эти «Декодир.» и «Выполнен.» на рис. 7.45 всколыхнули ностальгию времен наколенного собственноручного перевода Volkov Commander'a на русский язык методом прямой правки COM-файла :)

Но дело нужное и правильное! Заказал. Придется-таки идти в филиал_ада (tm).
Да, COM-файлы наше все! (Вспомнил, как в 1989 году увидел первый в жизни вирус, который распостранялся через .COM-файлы, разобрал его и написал антивирус).

Спасибо!
Чудесная новость, спасибо! Книга замечательная, в свое время даже читал на планшете, хотя и не люблю это дело (бумажные лучше, но это на мой вкус). Один вопрос, а что значит «избранные места»? Создается впечатление что издание неполное, но по оглавлению вроде все на месте. В тексте об этом ни слова, не могли бы пояснить?
«Избранные места» — это значит, что в этот конкретный пост на Хабрахабре я вставил куски из страниц книги, которые мне лично нравятся больше всего (микроархитектура, метастабильность, правила RTL и т.д.). Книга переведена полностью, со всеми дополнениями.
А какую отладочную плату вы бы посоветовали к этой книге? Их конечно много разных, но интересует именно с точи зрения доступности софта для работы с ней, предпочтительней с SystemVerilog.
Днем цена была что-то около 770 рублей, вечером внезапно повысилась до 1039 рублей, с чем это связано?
Это к ДМК Пресс, они там чего-то меняют. Их представитель возможно сюда прийдет в комменты.
ок, подожду, может быть ответят тут, на сайте издательства почему-то комментарий не добавился у меня.В любом случае спасибо за перевод, заказал
При всем уважении к энтузиастам, перевод не очень хороший. Тяжёлый язык, много подстрочек с английского. Жаль, что на такой хороший проект не хватило опытного редактора-переводчика.
Проблемы с переводом есть, особенно в главе 1 (в сделали заключение по ней?)

Если бы для перевода привлекли бы опытного редактора-переводчика, то книга бы не вышла, так как она не вписалась бы в бюджет образовательных программ на страны СНГ. Менеджмент Imagination согласился выделить немного денег, чтобы выкупить права на электронную версию книги у Elsevier и дать небольшие бонусы участникам, но если бы я запросил бы еще и на опытного редактора-переводчика, то получил бы отказ.

Как говорится «инженерия — это искусство возможного».
Да, понимаю. Деньги решают все.
Поясню ситуацию — я как раз такой (бывший) редактор с опытом исправления совершенно жуткого перевода довольно занудной книги о программно-определяемых радиосистемах (SDR). Мелочи, на которые никто и внимания не обратит, режут мне глаза. Критикую как профессионал, а не как недовольный интернет-хейтер.
Хотя, с другой стороны, не нужно быть семи пядей в переводе, чтобы не нанизывать эти бесконечные «является… является...» и строить фразы более по-русски, чем по-английски. Имхо.
Спасибо! Такого рода литературу (техническую) всегда приятней читать на бумаге! Сделал предзаказ.

P.S. Цена на сайте плавает — пишут, что поднимается с течением времени.
Скажите пожалуйста, а материал на бумаге один в один как и в электронной версии по объему?
Кига появилась в лабиринте (2102 руб).
Как раз сейчас 3 дня (до 5.02) идёт акция -18%. Можно взять дешевле.
У меня там была накоплена скидка 6%, и оказалось что скидки суммируются,
мне удалось её заказать со скидкой в 24% — 1598 р.
http://www.labirint.ru/books/570643/

Спешите.

С одной стороны, спасибо за книгу.


С другой стороны, книге не хватает хорошего редактора/корректора. Очень много мелочей для издания такого уровня. Начиная от постоянных отсылок к выделению синим цветом (хотя вся книга выпущена в чб) и заканчивая смысловыми опечатками в формулах. Перепутанные рисунки. Отсутствующий рисунок на который идет отсылка в тексте. Тире, которое не соответсвует правилам русской типографики.

Sign up to leave a comment.

Articles

Change theme settings