Обзор книги Structured Computer Organization

Structured-Computer-Organization-Tanenbaum-Andrew-S-9780132916523

Данная книга написана довольно известным человеком – Эндрю Таненбаумом(Andrew S. Tanenbaum) в 2012 году. Если же вам это имя незнакомо, то скорее всего вы слишком мало провели в ИТ отрасли. Хотя я давно слышал о Таненбауме, но, ранее, его книг мне читать не доводилось. Находясь в поисках книги, с помощью которой можно лучше понять внутреннее устройство компьютера, я и наткнулся на данный труд(6-е издание); выбрал же я его именно в силу известности имени Таненбаума.

Сразу хочется сказать несколько слов о Таненбауме и языке, которым написана книга: они великолепны. Таненбаум пишет довольно просто о не самых простых вещах, периодически приправляя это всё разумным, в том или ином контексте, юмором. Хотя книга и является, по сути, учебником для студентов, она написана простым и живым языком и не страдает академической сухостью.

Книга разделена на 8 частей, 5 из которых являются последовательным представлением того как работает компьютер с самого низкого уровня(цифровой логики), до высокого представления – ассемблера. Каждая глава снабжена задачами для самопроверки, которые позволяют закрепить материал. Ничего не могу сказать о качестве заданий - я их проигнорировал Улыбка Помимо теоретических аспектов архитектуры компьютера, книга содержит примеры того, как тот или иной уровень абстракции реализован в реальных, современных компьютерах. В качестве примеров используются x86, AVR и ARM архитектуры, что позволяет охватить довольно широкий класс современных устройств.  

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

Дальше настаёт черёд, собственно, компьютера – 5 глав посвященных различным уровням абстракции, которые можно выделить в любом современном компьютере. Книга знакомит читателя с интегральными схемами, понимание которых позволяет понять как на самом деле работает компьютер и как же он, на самом деле, сложен. В книге описаны различные аспекты применения интегральных схем: для построения ЦП, шин процессора(и не только), ОЗУ и различных других видов памяти.

Поднимаясь выше уровнем мы узнаём о том как же машина извлекает и выполняет команды, что она для этого делает и как это может быть реализовано с применением интегральных схем. Так как мы поднялись на уровень выше, то и интегральных схем, как таковых, здесь уже не будет. Будут просто их высокоуровневые модели. Данная глава поясняет такие важные вещи как кэш, конвейер ЦПУ, предсказание ветвления и т.п. вещи, без которых не обойдётся ни один ЦП.

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

Нужно понимать, что ~700 страничную книгу вложить всю информацию по архитектуре компьютера просто немыслимо. Я думаю, что на каждую из глав нужно написать книгу не меньшего размера, чтобы более подробно раскрыть те или иные аспекты. Книга является хорошим обзорным материалом и, на мой взгляд, адресована программистам и прочим интересующимся ИТ людям. Эта книга будет весьма слаба для инженеров, которые уже заняты в разработке микропроцессоров, т.к. даёт довольно мало деталей. С другой стороны, программисту эта книгу будет в самый раз, т.к. позволяет построить целостную картину того, как же компьютер работает изнутри, не погрязая в мелких деталях, которые могут быть избыточны для программиста. Именно поэтому я считаю, что если по каким-то причинам, вы, являясь программистом, не знаете, что такое конвейер ЦПУ, супер-скалярная архитектура, а так же не можете отличить RISC от CISC – эта книга для вас.

P.S. На Амазон у данного издания выставлены весьма низкие оценки. Я прочитал все отзывы там и так и не понял, с чем это связано: одним книга слишком проста, другим слишком сложна. На мой взгляд отзывы на Амазоне не соответствуют качеству книги: это именно обзорная книга для людей знакомых с компьютером, но не для экспертов в устройстве оных.