В 2015 году скачивания первого русского издания учебника Харрис & Харрис завалили сайт британской компании Imagination Technologies. Книгу стали использовать в МФТИ, ВШЭ МИЭМ, МГУ, МИЭТ, ИТМО и других вузах. С тех пор вышло еще два издания - для ARM и для MIPS, и вот в январе 2022 года выходит новое - для RISC-V - и оно уже доступно для предзаказа.

"Цифровая схемотехника и архитектура компьютера: RISC-V" вероятно станет стандартным учебником в российских вузах, как и источником информации для тех, кто хочет попроектировать процессоры на ПЛИС. Ничего лучшего на рынке нет. Паттерсон-Хеннесси не привязан к курсам по языкам описания аппаратуры и не обсуждает тайминг цифровой логики, а Таненбаум устарел.

Кроме этого, архитектура RISC-V становится билетом в будущее для российских процессорных компаний - Ядро купило Syntacore, Байкал Электроникс инвестировал в CloudBear, Миландр выпустил микроконтроллер с архитектурой RISC-V.

Если же вы не хотите работать в российских компаниях, а хотите пройти интервью на проектировщика чипа в Apple, Intel, NVidia, то и в таком случае учебник Харрисов - это самый эффективный способ начать этот путь.

Об авторах

Дэвид Харрис учился в MIT как раз тогда, когда произошла революция в маршруте проектирования конца 1980-х - начала 1990-х годов. Вооруженный новыми методологиями Дэвид пошел работать в Intel над процессором Pentium II. После этого Дэвид защитил диссертацию в Стенфорде и стал преподавателем в частном университете Колледж Харви-Мадд в южной Калифорнии.

Колледж Харви-Мадд не особо известен широкой публике, но он находится среди топ-университетов по заработным платам выпускников, а также проценту выпускников, защищающих впоследствие диссертации. Еще Харви-Мадд известен проектами в области роботехники, которые они делают вместе с NASA. Иными словами, это практики высшего калибра.

Дэвид Харрис и его коллега Сара Харрис (они не родственники, а просто однофамильцы) в 2008 году написали первый вариант учебника, в котором в лаконичной, технически корректной и имеющей смысл форме изложили материал, который обычно входил в несколько учебников: цифровая логика, языки описания аппаратуры Verilog и VHDL, архитектура и микроархитектура компьютера, а также использование готовых чипов. Студенты получили возможность, используя только один учебник, начать с нуля, дойти до конструирования собственного небольшого процессора, а потом сравнить его с промышленным микроконтроллером.

Идея перевести учебник Харрисов на русский язык возникла на Красной Площади в 2013 году. Ее предложил сотрудник МИФИ Иван Графский. Учебник настолько хорошо вписался в нужды российских университетов, что перевод его первой версии сделали "колхозом", состоящим из группы энтузиастов: преподавателей российских и украинских университетов, русских сотрудников компаний в Silicon Valley (AMD, Synopsys, Apple, NVidia ...) и российских компаний (НИИСИ, МЦСТ, Модуль ...).

Нынешний перевод использует и материалы предыдущих переводов.

Первая глава подразумевает, что читатель не знает вообще ничего, только читать, писать, и может быть закон Ома. В первой главе вводятся двоичные числа и уровни напряжения (какое напряжение соотвествует нулю, а какое единице). Потом учебник рассказывает про транзисторы и как строить из транзисторов логические элементы - как в частном случае (NAND), так и в общем - любую логическую функцию.

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

Одновременно с логикой вводится тайминг и его исправление, а также определение максимальной тактовой частоты, на которой может работать схема:

В четвертой главе вводятся языки описания аппаратуры Verilog и VHDL. В ней есть шпаргалка, как избежать несинтезируемого кода (multiple drivers) и гонок (race conditions), которые возникают при использовании блокирующих присваиваний к элементам состояния.

Пример ошибки с race condition: always @ (posedge clk) a = b; always @ (posedge clk) c = a; В таком коде результат зависит от того, какой из always-блоков симулятор эвалюирует первым. Такие ошибки также приводят к различным результатам симуляции схемы до и после синтеза. Ошибки такого рода часто делались в 1990-е, после чего была сформулирована методология, которая кратко выражена в шпаргалке ниже. Если вы видите методичку с подобным кодом - преподавателю нужно ее исправить. В компаниях race conditions иногда приводят к очень тяжело отлаживаемым ошибкам и необходимости перевыпустить чип на фабрике, что обходится в миллионы долларов - за такой косяк можно потерять работу.

В пятой главе описываются разного рода арифметические блоки и блоки памяти - кирпичики, из которых строится проектирование на уровне регистровых передач и микроархитектура. А также описывается устройство ячейки реконфигурируемой логики ПЛИС / FPGA:

Причем, что интересно, книга описывает ячейку ровно того Intel FPGA / Altera Cyclone IV, которые стоит на платах Omdazz, которые мы используем на Сколковской Школе Синтеза Цифровых Схем. Эту плату держит в руках девушка Наташа рядом с штаб-квартирой компании Cadence Desigtn Systems - одного из трех лидирующих производителей софтвера для разработчиков микросхем:

В шестой главе описывается архитектура, вид процессор с точки зрения программиста (не путать с микроархитектурой). В архитектуру входит система команд и видимые программисту регистры. В Харрис & Харрис также показывается как код на языке высокого уровня компилируется в ассемблер:

В седьмой главе описывается микроархитектура, вид процессор с точки зрения проектировщика железа (проектировщика железа). Сначала вводится процессор с однотактовой микроархитектурой, реализующей архитектуру RISC-V. Он описывается в виде микроархитектурных диаграм и приводится его код на Verilog и VHDL. Потом микроархитектура усложняется:

1. Для повышения максимальной тактовой частоты процессор делается многотактовым. К сожалению, это не повышает производительность процессора, так как инструкции начнут выполняться по несколько тактов.

2. Затем из стадий выполнения инструкций строится конвейер. Теперь каждая инструкция выполняется несколько тактов, но новая инструкция начинает выполнение, не дожидаясь окончания предыдущих. Тем самым у процессора растет производительность.

3. Помимо многотактовой и конвейерной версии в конце главы на пальцах описываются методы, которые применяются при проектировании высокопроизводительных процессоров: предсказание переходов, суперскаляр и многопоточность.

В восьмой главе описываются кэши и аппаратная реализация поддержки виртуальной памяти. Затем в девятой главе расписывается работа с готовым RISC-V процессором от SiFive и в частности есть такое занятное упражнение по сопряжению этого готового процессора с ведомым устройством на FPGA плате, схему которого разрабатывает студент:

.

Это очень полезное упражнение, потому что на Сколковскую Школу мы принесли несколько вот таких джойстиков с SPI интерфейсами, которые будем интегрировать с схемой на FPGA плате, частью которой является процессор schoolRISCV, сделанный на основе книги Харрисов, но schoolRISCV еще проще чем процессор в книге.

Вообще слайды из Харрисов будут использоваться на мероприятии в Сколково в субботу 25 декабря 2021, которое выглядит так:

Занятие на Сколковской Школе Синтеза Цифровых Схем 25 декабря будет называться "Микроархитектура конвейерного процессора и интеграция процессора с периферией".

Несмотря на такое сухое название, его бОльшая часть будет весьма творческим, причем творческим по взрослому: мы скомбинируем процессорное ядро schoolRISCV, добавим к нему графический сопроцесор со спрайтами, и будем менять одновременно процессор, видеопроцессор, связывающую логику (все это на языке описания аппаратуры Verilog) и писать программу игры на ассемблере RISC-V.

На такой платформе уже можно творить шедевры и мы ждем неожиданных идей (потом есть идея организовать соревнование по таким играм).

Записаться можно по емейлу info@chipexpo.ru

См. подробности и как проехать

В первый час занятия преподаватель МИЭТ Александр Силантьев покажет как можно развить микроархитектуру учебного однотактового процессора schoolRISCV

После этого Дмитрий Смехов, инженер-разработчик ПЛИС, компании IRQ, ИнСис и Inline Group, покажет пример совместного проектирования программ и аппаратуры, hardware-software co-design. Дмитрий покажет, как реализовать программное управление в графической игре, которую мы разбирали на занятии 11 декабря. Для этого Дмитрий заменит аппаратный конечный автомат на комбинацию из процессорного ядра schoolRISCV с работающей на нем программой.

Дмитрий будет выступать дистанционно, в Сколково ему будут помогать в офлайне Михаил Коробков, fpga-systems.ru, и Семен Москоленко, МИРЭА.

Теперь приготавливаемся к лонгриду.

Почему RISC-V?

Лицензируемые ядра RISC-процессоров изменили индустрию в конце 1990-х - начале 2000-х годов, когда ARM стал сердцем систем на кристалле внутри сотовых телефонов от Nokia и Ericsson, а MIPS стали использовать в телевизорах Sony, игровых приставках и даже роботах. К ARM и MIPS присоединились несколько конкурентов, в частности ARC и Tensilica, которые образовали так называемую индустрию полупроводниковой интеллектуальной собственности, semiconductor IP, общим размеров в несколько миллиардов долларов.

Помимо разработчиков центральных процессоров в эту индустрию вошли Imagination Technologies - компания, которая спроектировала графический процессор PowerVR для ранних Apple iPhone, затем разработчик процессора для обработки сигналов CEVA, и уже в наше время компании, которые выпускают ускорители вычислений нейросетей.

ARM и MIPS получали доход двумя способами:

  1. Продажей лицензии на процессорные ядра - фактически на использование сотни тысяч строк на верилоге, написанных инженерами ARM и MIPS, внутри систем на кристалле заказчика. Примерами таких компаний стали Microchip, который лицензировал ядро MIPS M4K для микроконтроллеров PIC32, и ST Microelectronics, которые лицензировали ядра ARM Cortex M для линейки микроконтроллеров STM32.

  1. Вторым способом получения дохода была продажа так называемой архитектурной лицензии, права на создание процессора собственной микроархитектуры. Инженеры компании-покупателя архитектурной лицензии создавали собственную микроархитектуру и могли писать код на верилоге сами, но их ядро делалось совместимым по архитектуре (системе команд) с ARM или MIPS. Последним примером такого лицензиата является компания Apple, которая создала свое ARM-совместимое ядро для системы на кристалле Apple M1.

Хотя разделение компаний на разработчиков IP-блоков и разработчиков систем на кристалле помогло развить индустрию в 1990-2000-е годы, не все в этой схеме было идеальным:

  • Во-первых, многие компании были недовольны условиями и политикой лицензирования как ядер, так и архитектуры. Особенно сильное негативное впечатление на индустрию произвел судебный процесс MIPS против Lexra в 1999 году, в результате которого пионер IP-лицензирования компания Lexra погибла из-за довольно мелкого нарушения патента на редко используемые инструкции невыравненного обмена с памятью. (  см. напр.

  • Во-вторых, контроль архитектуры со стороны коммерческих компаний не нравился университетским исследователям. Хотя MIPS активно использовался в учебниках, а ARM давал гранты университетам, но ученым не нравилась перспектива получения писем от корпоративных юристов из-за какого-нибудь созданного ими экспериментального процессора.

  • Наконец, во всех RISC-архитектурах скопились разные черты, которые когда-то казались хорошими идеями, но стали тормозом прогресса при усложнении процессоров, повышении частоты, введении микроархитектуры с внеочередным выполнением команд, переменной длины инструкций и предсказателями перехода. У SPARС такой чертой были регистровые окна, у MIPS - слоты отложенного ветвления, у ARM - условное выполнение инструкций. Нужна была ревизия мира RISC-процессоров.

И этой ревизией стал RISC-V - архитектора, созданная в 2010 году группой того же Дэвида Паттерсона из Университета Калифорнии в Беркли, который написал два учебника и стоял у истоков архитектуры SPARC. Группа RISC-V не только синтезировала опыт процессорных компаний за предыдущие 30 лет, но и вступила в партнерства с Linux Foundation и многими крупными компаниями - Google, AMD, Western Digital.

Когда вы используете архитектуру RISC-V для проектирования своего процессора, вам не нужно платить за архитектурную лицензию. При этом сами вы можете получать за свой процессор деньги: продавать его как IP-блок, систему на кристалле, или производить на его основе чипы. Вы также можете решить сделать бесплатный процессор с открытым кодом на верилоге для исследователей - это тоже поощряется сообществом вокруг архитектуры RISC-V.

Сейчас RISC-V может сыграть большую роль в становлении российской электроники. Российские компании CloudBEAR (в которую инвестировал Байкал Электроникс) и Syntacore (приобретенная компанией Ядро) работают над процессорами собственной микроархитектуры, совместимыми по системе команд с архитектурой RISC-V. Это идеальная комбинация, которая позволяет разрабатывать свои процессоры и конкурировать по производительности, энергопотреблению и набору расширений с производителями на мировом рынке - одновременно сохраняя программную совместимость со всеми программами, которые создаются для экосистемы RISC-V во всем мире. К таким программам относятся компиляторы, операционные системы и прикладные программы по всему спектру - от программ для миниатюрных чипов для интернета вещей - до мобильных устройств, автомобильной электроники, десктопов и суперкомпьютеров.

Подводя итог

Предыдущие издания учебника Харрисов уже помогли исправить серьезный дисбаланс в преподавании цифровой электроники в России, который возник еще в 1990-е годы. Книга также стала отправной точкой для создания курса лабораторных работ на ПЛИС под эгидой ВШЭ МИЭМ, онлайн-курсов от РОСНАНО и семинаров на ChipEXPO в Сколково. Новое же издание учебника Харрисов выходит как раз тогда, когда в России разворачиваются амбицизные проекты по созданию высокопроизводительных процессорных ядер, которые совместимы с открытой международной архитектурой RISC-V, и при этом спроектированы в России.

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

Если вы дочитали до этого места - вот промокод на скидку 25% на покупку книги: Harris_bonus_2022

Комментарии (25)


  1. BigBeaver
    24.12.2021 11:26
    +3

    Что угодно, только бы английский не учить.


    1. YuriPanchul Автор
      24.12.2021 11:41
      +26

      Из практики ведения занятий по архитектуре и микроархитектуре (не только моей, но и архитектора из AMD Тимура Палташева мы сделали следующий вывод):

      целевая аудитория (старшие школьники и младшие студенты России, Украины, Казахстана итд) достаточно владеют английским, чтобы учить на английском прямолинейные вещи, например ассемблер, но перестают понимать, когда дело доходит до микроархитектуры. Там и так конвейерность встает поперек интуиции, а дополнительная нагрузка от английского это усугубляет.

      А откладывать изучение микроархитектуры до свободного английского - это безблагодатно.


    1. northzen
      24.12.2021 12:51
      +9

      Знаете ли вы то, как лет 20 назад в провицницальных школах преподавался английский? И сколько возможностей было вживую "поговорить" хоть с кем-то, кроме учителя?
      Учебник на русском всегда лучше его отсутствия. Языковой барьер отсеивает тех, кто в силу разных стартовых условий не мог нормально учить английский. Это не только молодые из самых разных уголков страны, но еще и какие-нибудь сороколетние-пятидесятилетние. Или те несчастные, у которых в школе был немецкий вместо английского.
      Знание должно быть максимально доступным.


      1. BigBeaver
        24.12.2021 13:17
        +9

        Знаю — я как раз тогда и учился. Практика такова, что роль школы пренебрежима в долгосрочной перспективе. Среди ровестников есть как те, кто выпускался почти полным нулём, а сейчас почти билингв, так и те, кто к своим 30 забыл плностью всё. Имеет значение только практика и ничего более — use it or lose it.

        Говорить не обязательно чтобы читать учебники. Ну будет у вас плохое неправильное произношение, ну и что. А документация к чипам все равно на английском, и она не особо проще, чем их устройство с точки зрения языка.


      1. stephanthe
        25.12.2021 15:50
        +2

        Почему 20 лет назад? Сейчас там нисколько не лучше. Педагогов катастрофически не хватает, и учитель труда, пройдя трехмесячную профессиональную подготовку, начинает учить ещё английскому и немецкому.


      1. AVX
        26.12.2021 16:01

        Мне почти 40, и в школе тогда, в 90хх, был только немецкий, и то, за год менялось 2-3 учителя, иногда по полгода не было просто учителей. В итоге родители меня возили к репетитору, и за пару лет я освоил английский чуть выше школьной программы и сдал экзамен экстерном. Правда, один минус - словарный запас всё-таки ниже, чем у других (это я понял позже, в институте уже, ну и подтягивал, правда, уже всё больше технический, чем разговорный).

        И всё же я так же считаю, что в сложных областях литература на русском намного удобнее, чем на английском, позволяет вникать в новую для себя область, не отвлекаясь на поиск переводов слов и выражений. А ещё удобнее иметь тот же материал на английском, чтобы при необходимости сверить что там напереводили (бывает используют перевод терминов, которые в реальности никто не употребляет, и становится непонятно немного).

        Книгу от Imagination Technologies по цифровой схемотехнике несколько лет назад скачивал - просто отлично написано! Всё по порядку, всё понятно, и может быть полезно не только новичкам.


  1. jaha33
    24.12.2021 11:38

    А можно для тех кто в танке? Эта книга будет полезна тем кто занимается микроконтроллерами? В свое время, когда начали заходить кортексы, книги по Cortex M оказались весь полезны.


    1. YuriPanchul Автор
      24.12.2021 11:47
      +3

      Для микроконтроллерщиков эта книга полезна в следующих аспектах:

      1. Если вы хотите узнать, как микроконтроллер устроен внутри - чисто для общего развития, то чтение глав 6-7 это объяснит (для случая конкретно Cortex есть вариант книги с главами 6-7 про ARM, но по большому счету это все равно).

      2. Если вы хотите узнать, как программировать микроконтроллеры на основе RISC-V, то в главе 6 здравое введение в ассемблер и связь с Си, а в последней главе - про интеграцию с внешними устройствами.

      3. Если вы хотите расширить область своих специализаций и научиться ПЛИС-ам (есть куча работ, где интегрируются микроконтроллеры и ПЛИС), то главы 1-5 дают базовую теоретическую информацию нужную для плисоведения.


      1. victor_1212
        24.12.2021 23:10
        +1

        эта книга полезна всем, самый востребованный человек в будущем тот кто одинаково хорошо знает sw и hw, то что делает Юрий с его друзьями вероятно невозможно переоценить, это не комплимент, а констатация факта,

        приведу пример из жизни молодого человека (моего соседа), он начал интересоваться sw лет в 14, (что-то связанное с .net), в 16 уже работал на полставки в известной фирме одновременно заканчивая школу, в 18 начал учиться в колледже (us rating #26), последовательно получил ms computer science, и затем ms electrical eng, в 24 начал работать в хорошей компании, в 27 уже был архитектором, сейчас ему около 30, достаточно зарабатывает чтобы купить дом за cash в хорошем районе, если понадобится думаю он найдет новую работу за 30 мин, никакой не индус или китаец, типа обычный американский парень выросший на моих глазах в хорошего профессионала, если россия хочет подняться в high tech, ей придется конкурировать (в том числе) с такими людьми, в этом смысл данной истории


    1. forthuser
      24.12.2021 12:20
      +1

      Есть некоторая вероятность, что и в контроллеры производители их смогут добавить ячейки FPGA. ????


  1. forthuser
    24.12.2021 12:17

    На сайте ДМК — издательства книги размещены дополнительные материалы к книге в виде ~200 Мб zip архива. Они тоже будут переведены на русский язык?


    1. YuriPanchul Автор
      24.12.2021 12:22

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


  1. eandr_67
    24.12.2021 15:49
    +1

    А электронная версия книги будет? Не у всех настолько хорошее зрение, чтобы без проблем разбирать текст в бумажной книге — даже в очках.


    1. BigBeaver
      24.12.2021 19:15

      Нужен микроскоп. Электронный. У нас же тут микроэлектроника)


    1. YuriPanchul Автор
      26.12.2021 12:39

      Сообщение от издателя: "Мы продаем эл. версию по той же цене что и бумажная - надо выбрать при оформлении заказа самовывоз и в комментарии указать, что нужен PDF. Сейчас программируем сайт, чтобы была отдельная продажа эл. книг. "


      1. AquariusStar
        26.12.2021 13:30
        +1

        Огромное спасибо!


  1. AKonia
    24.12.2021 18:32

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


    1. YuriPanchul Автор
      24.12.2021 18:40

      Ну здрасьте, три большие главы из 8 или 9 отправлять в приложения? Это книга станет вдвое толще. Глава 6 (архитектура) и всех трёх вариантов принципиально разная. Глава 7 (микроархитектура) похожа, но из-за постоянных ссылок на инструкции становится тоже разной. Глава 8/9 использует разные чипы (Microchip PIC32 для MIPS, малинка для ARM и SiFive для RISC-V) поэтому тоже разная, хотя материал похож, но код на Си например везде разный.


  1. ovn83
    24.12.2021 18:38
    +1

    Две книги очень неплохие, когда читал, сожалел, что 20 лет назад их не было, в ВУЗе учили по разрозненным самописным методичкам, в них систематизированно основное.

    Знание англиского конечно необходимо, но на родном языке лучше усваивается. В даташите часто и с переводчиком долго не можешь понять о чём речь и как это точно переводится, используется сленг и т.п., с китайского в этом плане переводчик переводит точно.


  1. AquariusStar
    24.12.2021 22:49
    +2

    А электронный формат книги будет? А то неохота заполнять полки книгами. Электронная книга много места не занимает.


    1. YuriPanchul Автор
      26.12.2021 12:39

      Сообщение от издателя: "Мы продаем эл. версию по той же цене что и бумажная - надо выбрать при оформлении заказа самовывоз и в комментарии указать, что нужен PDF. Сейчас программируем сайт, чтобы была отдельная продажа эл. книг. "


  1. Khort
    25.12.2021 02:05

    Нужно обязательно про многоядерность писать. Одно ядро - вчерашний день, сейчас даже микроконтроллеры стали многоядерными. При этом качественная разница между одноядерным и многоядерным процессором примерно такая же, как между однотактовой и конвеерной организацией вычислений. Для пятых рисков это наверное пока не очень актуально, а вот АРМ - да, учитывая что эппл отъело гиганский кусок рынка со своими М1 процессорами, основанными на АРМ64. Т.е. при всем многообразии организаций многоядерных вычислений появился совершенно четкий пример, как делать хорошо (архитектура М1/АРМ). Это давно уже не будущее, а настоящее (и лет 15 как прошлое), поэтому включать такой материал в учебник надо обязательно


    1. forthuser
      25.12.2021 12:27

      Да, уж, а то на рынке появляются такие решения. ????
      Память с калькулятором. Вычисления внутри DRAM становятся мейнстримом

      P.S. Хотя, возможно, в этом есть какой то ещё смысл, к примеру, для создания интерфейса эмуляции ассоциативной памяти на ячейках обычной.

      GA144 одна из архитектуры эффективного многоядерного асинхронного MISC контроллера на 144 ядрах.


      1. Khort
        25.12.2021 14:10

        Про память с калькулятором - не понял связи. Лично я писал про: когерентность кеша, совместный доступ к памяти, реализации арбитров и семафоров, а так же про специализированные интерфейсы и фабрики.

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


    1. YuriPanchul Автор
      25.12.2021 23:23
      +2

      Я совершенно согласен с вами, что отсутствие хотя-бы трех страниц по когерентность кэшей, с объяснением на пальцах MESI-протоколов и snooping versus directory-based coherence manager - это дефект книги.

      Также в ней не хватает обсуждения арбитров, банков памяти и FIFO. Если бы увеличить книгу еще страниц на 20, она была бы еще полезнее чем есть. Это наверное можно компенсировать своего рода книгой "главы, которых не хватает в Харрис & Харрис"